summaryrefslogtreecommitdiff
path: root/systems/texlive/tlnet/tlpkg
diff options
context:
space:
mode:
Diffstat (limited to 'systems/texlive/tlnet/tlpkg')
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm15
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/xz/xz.aarch64-linuxbin191176 -> 265240 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/xz/xz.amd64-netbsdbin179944 -> 198272 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/xz/xz.i386-netbsdbin191124 -> 215920 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/xz/xz.universal-darwinbin451744 -> 484992 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/xz/xz.x86_64-linuxbin183552 -> 203784 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb11134
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2553548 -> 2558136 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/README.TEXLIVE8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/libgcc_s_seh-1.dllbin76288 -> 0 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/libstdc++-6.dllbin1424384 -> 0 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/libwinpthread-1.dllbin52224 -> 0 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/perl534.dllbin3459584 -> 0 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/perl538.dllbin0 -> 3208704 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140.dllbin0 -> 87888 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140_1.dllbin0 -> 49560 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist3428
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm148
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm94
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm55
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm17
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm418
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm104
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h11
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h202
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h119
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/charclass_invlists.h31784
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h350
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h1045
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h67
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h91
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h54
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h4202
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h718
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h145
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h1633
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h136
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h129
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h1578
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h154
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h137
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h1878
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h510
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h1540
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/libperl534.abin971944 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h3
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h26
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h93
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h851
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h823
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h116
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h15
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h2614
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl538.libbin0 -> 274948 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h13
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h13
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h3
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlstatic.h33
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h121
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h204
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h60
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h619
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h16331
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h634
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h986
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp_internal.h1261
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h457
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reginline.h64
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h4356
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h81
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h228
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope_types.h151
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h1501
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv_inline.h1002
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h131
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h434
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h15198
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unicode_constants.h70
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h40
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h852
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h309
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h15
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h20
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h150
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h141
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h173
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h19
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm31
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm114
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm204
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm42
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm3
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm28
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm63
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Zlib.pm23
-rwxr-xr-x[-rw-r--r--]systems/texlive/tlnet/tlpkg/tlperl/lib/Config.orig.pm (renamed from systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm.orig)222
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm31
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod897
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm48
-rwxr-xr-x[-rw-r--r--]systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.orig.pl (renamed from systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl.orig)2977
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl364
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm51
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm131
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm3094
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm3
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm23
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm52
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm52
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm1797
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm45
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm31
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm19
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm38
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm69
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm44
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/PL2Bat.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm230
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm81
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/typemap60
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm5
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Basename.pm10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm40
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm966
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm89
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm284
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm34
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm20
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm33
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm29
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm114
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm23
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm21
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm91
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm48
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm11
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm23
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm19
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm21
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm38
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm398
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm83
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm49
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod74
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm3873
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm60
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm4335
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm1056
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm148
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm236
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm60
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm902
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat/Trace.pm76
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm94
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm401
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm48
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm80
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireFile.pm52
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireTest.pm49
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm85
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm80
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm45
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pm3190
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList/Utils.pm275
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm34
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm15
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm44
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Functions.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm820
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html/Util.pm282
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm1576
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Checker.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Methody.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/RTF.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Text.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm561
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm30
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm42
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm78
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm5
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm30
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm29
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Session.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm21
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness/Env.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Object.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Source.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm29
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm27
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Formatter.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm45
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm9
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Event.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Facet.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Hub.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Squasher.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Exception.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm9
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/About.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Control.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Error.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info/Table.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Render.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm6
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm5
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Balanced.pm317
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm74
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm81
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm72
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm200
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm30
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cu.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm69
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/UCD.pm44
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm70
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm13
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm53
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/attributes.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dllbin82432 -> 80896 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.pdbbin0 -> 741376 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dllbin107520 -> 66560 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.pdbbin0 -> 774144 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dllbin139776 -> 97280 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.pdbbin0 -> 790528 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dllbin24064 -> 18432 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.pdbbin0 -> 577536 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dllbin65536 -> 31744 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.pdbbin0 -> 618496 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dllbin24064 -> 18944 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.pdbbin0 -> 561152 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dllbin25088 -> 20480 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.pdbbin0 -> 577536 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dllbin47616 -> 41984 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.pdbbin0 -> 602112 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dllbin179200 -> 165376 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.pdbbin0 -> 618496 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dllbin1073664 -> 1038336 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.pdbbin0 -> 782336 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dllbin30720 -> 25600 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.pdbbin0 -> 528384 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dllbin67072 -> 35840 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.pdbbin0 -> 651264 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dllbin1297408 -> 1266176 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.pdbbin0 -> 790528 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dllbin1200128 -> 1162240 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.pdbbin0 -> 823296 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dllbin37376 -> 31232 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.pdbbin0 -> 544768 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dllbin1062912 -> 1030144 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.pdbbin0 -> 782336 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dllbin26112 -> 18432 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.pdbbin0 -> 528384 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dllbin23552 -> 18432 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.pdbbin0 -> 544768 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dllbin15872 -> 10752 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.pdbbin0 -> 512000 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dllbin30208 -> 25088 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.pdbbin0 -> 626688 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dllbin19968 -> 14848 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.pdbbin0 -> 536576 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dllbin23040 -> 18944 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.pdbbin0 -> 561152 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dllbin25088 -> 22528 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.pdbbin0 -> 577536 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dllbin19456 -> 13824 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.pdbbin0 -> 544768 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dllbin25088 -> 20480 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.pdbbin0 -> 593920 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dllbin56320 -> 45568 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.pdbbin0 -> 626688 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dllbin22016 -> 16384 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.pdbbin0 -> 536576 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dllbin22016 -> 17920 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.pdbbin0 -> 536576 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dllbin26112 -> 21504 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.pdbbin0 -> 577536 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dllbin132096 -> 75264 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.pdbbin0 -> 815104 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dllbin29184 -> 22016 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.pdbbin0 -> 569344 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dllbin15360 -> 10240 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.pdbbin0 -> 512000 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dllbin20992 -> 15360 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.pdbbin0 -> 536576 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dllbin26112 -> 19968 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.pdbbin0 -> 585728 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dllbin31744 -> 26112 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.pdbbin0 -> 634880 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dllbin35840 -> 32768 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.pdbbin0 -> 618496 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.dllbin125952 -> 94208 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.pdbbin0 -> 724992 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dllbin15872 -> 10752 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.pdbbin0 -> 520192 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dllbin28672 -> 22016 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.pdbbin0 -> 569344 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dllbin50176 -> 23552 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.pdbbin0 -> 634880 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dllbin852480 -> 982016 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.pdbbin0 -> 4059136 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dllbin386560 -> 386048 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.pdbbin0 -> 987136 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dllbin71680 -> 48128 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.pdbbin0 -> 815104 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.dllbin75776 -> 65536 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.pdbbin0 -> 659456 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.dllbin18432 -> 13312 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.pdbbin0 -> 520192 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.dllbin26112 -> 20480 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.pdbbin0 -> 552960 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dllbin780800 -> 664576 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.pdbbin0 -> 1437696 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.dllbin37888 -> 30720 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.pdbbin0 -> 593920 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.dllbin35840 -> 28672 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.pdbbin0 -> 610304 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception/system.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/hints.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/bigfloat.pm851
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm906
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm1111
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm914
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/builtin.pm323
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/charnames.pm8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/encoding/warnings.pm30
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/experimental.pm70
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm715
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/meta_notation.pm1
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/mro.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm21
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm731
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/overload/numbers.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl163
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod320
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm49
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm143
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/stable.pm159
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/threads/shared.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt37
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/CombiningClass.pl31
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Decomposition.pl125
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl3451
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm35
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/NamedSequences.txt43
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/SpecialCasing.txt10
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/TestNorm.pl19134
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl114
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl85
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl252
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Digit.pl674
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl33
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Fold.pl1553
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl47
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl189
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identif2.pl160
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identifi.pl42
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl46
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl13
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl51
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl163
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lower.pl1428
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl166
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl11
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl139
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl152
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl165
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Title.pl1447
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Upper.pl1520
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl459
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl108
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl152
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl165
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl5366
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V110.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V120.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V130.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V140.pl170
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V150.pl78
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl136
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl20
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl88
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl52
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl50
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl78
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl32
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl36
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl28
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl32
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl50
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EBase/Y.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EComp/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EPres/Y.pl34
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl48
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl48
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Emoji/Y.pl36
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/ExtPict/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl60
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl210
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl124
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl40
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl34
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl26
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl78
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl58
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl20
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl22
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl58
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl52
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl200
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrExt/Y.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl152
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl124
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Allowed.pl66
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Restrict.pl66
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/DefaultI.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Exclusio.pl64
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Inclusio.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/LimitedU.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotChara.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotNFKC.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotXID.pl80
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Obsolete.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Recommen.pl64
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Technica.pl32
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Uncommon.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/11_0.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_0.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_1.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/13_0.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/14_0.pl1426
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/15_0.pl1444
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/BottomAn.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl32
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona7.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl20
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl20
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Geminati.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl40
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/HanifiRo.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl16
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Noon.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Tah.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl18
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/L.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl64
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl128
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl60
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NU.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl166
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl50
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl16
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_6.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80000.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90000.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl142
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl152
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl22
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl32
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl152
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl124
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl152
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl124
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIsI.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl58
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl90
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl50
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl24
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl160
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl28
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl10
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gong.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gonm.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl16
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl26
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl52
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl26
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Diak.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl10
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gong.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmnp.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khoj.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kthi.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl26
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nko.pl26
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl8
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tang.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Vith.pl30
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl56
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl212
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl24
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/VS/Y.pl22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl16
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl58
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl10
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl16
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl102
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl12
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/WSegSpac.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl142
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl152
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl124
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/unicore/uni_keywords.pl2608
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/version2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/version/regex.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm469
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/warnings/register.pm5
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove.pm817
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State.pm548
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result.pm233
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result/Test.pm152
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm66
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Digest/SHA.pm18
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Config.pm114
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers.pm131
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Unix.pm86
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/VMS.pm117
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Windows.pm70
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/InstallPaths.pm625
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/File/Listing.pm18
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Entities.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Filter.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/HeadParser.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/LinkExtor.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Parser.pm158
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/PullParser.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/TokeParser.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Daemon.pm78
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Date.pm13
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP.pm671
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm86
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm80
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm183
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/ConnCache.pm350
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug.pm112
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm29
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/DebugFile.pm7
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm48
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol.pm313
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm72
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm52
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm147
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm555
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm213
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm523
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm27
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm184
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm150
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm25
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/RobotUA.pm312
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm267
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/UserAgent.pm2179
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Math/Int64.pm22
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Module/Build/Tiny.pm349
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA.pm21
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem1274
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/mk-ca-bundle.pl625
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTPS.pm4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Socket.pm1143
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Base.pm133
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Base.pm490
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Color.pm116
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console.pm100
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/ParallelSession.pm201
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/Session.pm205
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File.pm56
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File/Session.pm95
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Session.pm220
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness.pm1072
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Beyond.pod426
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Env.pm215
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Object.pm155
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser.pm1931
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Aggregator.pm414
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Grammar.pm590
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator.pm162
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Array.pm100
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Process.pm381
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Stream.pm116
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/IteratorFactory.pm339
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Multiplexer.pm196
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result.pm297
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Bailout.pm62
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Comment.pm60
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Plan.pm119
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Pragma.pm62
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Test.pm271
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Unknown.pm48
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Version.pm62
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/YAML.pm61
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/ResultFactory.pm183
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler.pm448
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Job.pm127
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Spinner.pm61
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Source.pm381
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler.pm191
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Executable.pm187
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/File.pm136
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Handle.pm124
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Perl.pm372
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/RawTAP.pm130
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Reader.pm347
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Writer.pm263
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Fatal.pm30
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/HACKING.pod264
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Harness.pm618
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Needs.pm8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Warnings.pm587
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI.pm202
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Escape.pm45
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Heuristic.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/IRI.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/QueryParam.pm190
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Split.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/URL.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/WithBase.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_foreign.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_generic.pm33
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_idna.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_ldap.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_login.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_punycode.pm22
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_query.pm99
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_segment.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_server.pm9
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_userpass.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/data.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file.pm23
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Base.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/FAT.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Mac.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/OS2.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/QNX.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Unix.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Win32.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ftp.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/geo.pm418
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/gopher.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/http.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/https.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icap.pm76
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icaps.pm76
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldap.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldapi.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldaps.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mailto.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mms.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/news.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntp.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntps.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/pop.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rlogin.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rsync.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtsp.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtspu.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sftp.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sip.pm42
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sips.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/snews.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ssh.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/telnet.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/tn3270.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/isbn.pm2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/oid.pm2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist15
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dllbin103936 -> 67072 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.expbin0 -> 909 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.libbin0 -> 1708 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.pdbbin0 -> 733184 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist78
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist11
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dllbin47616 -> 41984 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.expbin0 -> 887 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.libbin0 -> 1694 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.pdbbin0 -> 602112 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Config/.packlist1
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Helpers/.packlist4
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/InstallPaths/.packlist1
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Which/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist19
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dllbin51200 -> 41472 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.expbin0 -> 902 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.libbin0 -> 1736 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.pdbbin0 -> 643072 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist6
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist20
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/String/.packlist2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist13
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dllbin61440 -> 51712 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.expbin0 -> 893 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.libbin0 -> 1718 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.pdbbin0 -> 675840 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Module/Build/Tiny/.packlist1
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist5
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/.packlist5
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.dllbin0 -> 35840 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.expbin0 -> 870 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.libbin0 -> 1706 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.pdbbin0 -> 618496 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Harness/.packlist52
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist2
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Warnings/.packlist1
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist2
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/URI/.packlist111
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist20
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.dllbin30720 -> 17920 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.expbin0 -> 879 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.libbin0 -> 1688 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.pdbbin0 -> 331776 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dllbin47616 -> 14848 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.expbin0 -> 959 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.libbin0 -> 1800 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.pdbbin0 -> 315392 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist7
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dllbin70144 -> 42496 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.expbin0 -> 919 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.libbin0 -> 1756 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.pdbbin0 -> 675840 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist7
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dllbin53248 -> 23040 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.expbin0 -> 928 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.libbin0 -> 1774 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.pdbbin0 -> 733184 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist4
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist9
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dllbin158720 -> 134656 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.expbin0 -> 946 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.libbin0 -> 1790 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.pdbbin0 -> 815104 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist33
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwpcook.pod310
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwptut.pod820
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/bin/tcl86.dllbin1619470 -> 1892862 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/bin/tk86.dllbin1476110 -> 1805823 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/bin/zlib1.dllbin116736 -> 134656 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.abin0 -> 2162 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/tcldde14.dllbin129727 -> 73966 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl422.dllbin560070 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/pkgIndex.tcl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl.tcl)0
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl423.dllbin0 -> 367016 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclConfig.sh (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclConfig.sh)44
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclHullCmds.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclHullCmds.tcl)0
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclWidget.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclWidget.tcl)0
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/libitclstub423.abin0 -> 1778 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/pkgIndex.tcl14
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/libtcl86.dll.abin0 -> 569374 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/libtclstub86.abin0 -> 5318 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/libtk86.dll.abin0 -> 389106 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/libtkstub86.abin0 -> 4022 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/libtclreg13.dll.abin0 -> 2212 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/tclreg13.dllbin122475 -> 66840 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/pkgIndex.tcl12
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/sqlite3360.dllbin1510998 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/pkgIndex.tcl12
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/sqlite3400.dllbin0 -> 1457722 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/init.tcl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Bahia_Banderas156
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Chihuahua158
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Hermosillo2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Matamoros2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mazatlan156
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Merida154
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mexico_City156
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Monterrey154
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Nipigon265
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Ojinaga158
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Punta_Arenas13
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Rainy_River265
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Santiago18
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Thunder_Bay273
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Tijuana2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Antarctica/Vostok7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Arctic/Longyearbyen6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Amman156
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Brunei8
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Damascus156
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Gaza312
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Hebron312
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Ho_Chi_Minh4
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Kuala_Lumpur14
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Tehran165
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Jan_Mayen6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Reykjavik74
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/East-Saskatchewan5
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Amsterdam311
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Copenhagen265
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Dublin4
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev252
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kyiv251
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Luxembourg314
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Monaco316
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Oslo272
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Simferopol20
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Stockholm251
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Uzhgorod255
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Zaporozhye253
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Iceland6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Christmas7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Cocos7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Kerguelen7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Mahe7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Reunion7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Chuuk12
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Easter2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Fiji155
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Funafuti7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Majuro13
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Pohnpei13
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Ponape6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Truk6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wake7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wallis7
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Yap6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific-New5
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.19.tm (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.18.tm)13
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.5.tm (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.3.tm)28
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/http-2.9.8.tm (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/http-2.9.5.tm)188
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.5.tm (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.3.tm)2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tclConfig.sh26
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc113.dllbin112404 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/libtdbcstub115.abin0 -> 1914 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/pkgIndex.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/pkgIndex.tcl)8
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc.tcl)0
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc115.dllbin0 -> 56715 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbcConfig.sh (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbcConfig.sh)56
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql113.dllbin302415 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/pkgIndex.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/pkgIndex.tcl)8
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql.tcl)0
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql115.dllbin0 -> 115477 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc113.dllbin314312 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/pkgIndex.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/pkgIndex.tcl)8
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc.tcl)39
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc115.dllbin0 -> 128761 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres113.dllbin521373 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/pkgIndex.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/pkgIndex.tcl)8
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres.tcl)0
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres115.dllbin0 -> 150897 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/thread287.dllbin566936 -> 0 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/pkgIndex.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/pkgIndex.tcl)8
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/thread288.dllbin0 -> 198248 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/ttrace.tcl (renamed from systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/ttrace.tcl)40
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/clrpick.tcl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/console.tcl244
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/cscroll.tcl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/entry2.tcl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/floor.tcl264
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/goldberg.tcl6
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/images/earth.gifbin51712 -> 51559 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/items.tcl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menu.tcl5
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menubu.tcl3
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/puzzle.tcl2
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/entry.tcl1
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/fontchooser.tcl255
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/iconlist.tcl23
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/menu.tcl41
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/eo.msg70
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/fi.msg89
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/ru.msg24
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/zh_cn.msg92
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/pkgIndex.tcl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/scale.tcl17
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/spinbox.tcl15
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/text.tcl13
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tk.tcl11
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tkfbox.tcl19
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/cursors.tcl33
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/entry.tcl1
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/menubutton.tcl13
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/panedwindow.tcl12
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/utils.tcl4
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/xmfbox.tcl18
-rw-r--r--systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh20
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/cs.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/da.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/de.po298
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/es.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/fr.po284
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/it.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/ja.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/messages.pot264
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/nl.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/pl.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/pt_BR.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/ru.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sk.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sl.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sr.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/uk.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/vi.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/zh_CN.po262
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/zh_TW.po262
1718 files changed, 161917 insertions, 88101 deletions
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
index 4bdd97d9f2..16bd0c5a60 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
@@ -1,4 +1,4 @@
-# $Id: TLConfig.pm 70589 2024-03-11 17:04:23Z karl $
+# $Id: TLConfig.pm 69783 2024-02-10 22:46:34Z karl $
# TeXLive::TLConfig.pm - module exporting configuration values
# Copyright 2007-2024 Norbert Preining
# This file is licensed under the GNU General Public License version 2
@@ -7,7 +7,7 @@
use strict; use warnings;
package TeXLive::TLConfig;
-my $svnrev = '$Revision: 70589 $';
+my $svnrev = '$Revision: 69783 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
@@ -62,7 +62,7 @@ BEGIN {
# the year of our release, will be used in the location of the
# network packages, and in menu names, and other places.
-our $ReleaseYear = 2023;
+our $ReleaseYear = 2024;
# users can upgrade from this year to the current year; might be the
# same as the release year, or any number of releases earlier.
@@ -182,7 +182,7 @@ our %TLPDBConfigs = (
"container_format" => $DefaultCompressorFormat,
"minrelease" => $MinRelease,
"release" => $ReleaseYear,
- "frozen" => 1,
+ "frozen" => 0,
);
# definition of the option strings and their value types
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
index 4ab6f87426..73590a2b0f 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
@@ -1,13 +1,13 @@
-# $Id: TLPDB.pm 69653 2024-01-31 21:52:46Z karl $
+# $Id: TLPDB.pm 70573 2024-03-10 21:37:05Z karl $
# TeXLive::TLPDB.pm - tlpdb plain text database files.
-# Copyright 2007-2023 Norbert Preining
+# Copyright 2007-2024 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
use strict; use warnings;
package TeXLive::TLPDB;
-my $svnrev = '$Revision: 69653 $';
+my $svnrev = '$Revision: 70573 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
index 49fd0c8ee2..169685ff31 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm
@@ -1,4 +1,4 @@
-# $Id: TLUtils.pm 69653 2024-01-31 21:52:46Z karl $
+# $Id: TLUtils.pm 69980 2024-02-19 17:40:52Z karl $
# TeXLive::TLUtils.pm - the inevitable utilities for TeX Live.
# Copyright 2007-2024 Norbert Preining, Reinhard Kotucha
# This file is licensed under the GNU General Public License version 2
@@ -8,7 +8,7 @@ use strict; use warnings;
package TeXLive::TLUtils;
-my $svnrev = '$Revision: 69653 $';
+my $svnrev = '$Revision: 69980 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
@@ -4864,29 +4864,30 @@ sub report_tlpdb_differences {
if (defined($ret{'removed_packages'})) {
info ("removed packages from A to B:\n");
- for my $f (@{$ret{'removed_packages'}}) {
+ for my $f (sort @{$ret{'removed_packages'}}) {
info (" $f\n");
}
}
if (defined($ret{'added_packages'})) {
info ("added packages from A to B:\n");
- for my $f (@{$ret{'added_packages'}}) {
+ for my $f (sort @{$ret{'added_packages'}}) {
info (" $f\n");
}
}
if (defined($ret{'different_packages'})) {
info ("different packages from A to B:\n");
- for my $p (keys %{$ret{'different_packages'}}) {
+ for my $p (sort keys %{$ret{'different_packages'}}) {
info (" $p\n");
- for my $k (keys %{$ret{'different_packages'}->{$p}}) {
+ for my $k (sort keys %{$ret{'different_packages'}->{$p}}) {
if ($k eq "revision") {
info(" revision differ: $ret{'different_packages'}->{$p}->{$k}\n");
} elsif ($k eq "removed" || $k eq "added") {
info(" $k files:\n");
- for my $f (@{$ret{'different_packages'}->{$p}->{$k}}) {
+ for my $f (sort @{$ret{'different_packages'}->{$p}->{$k}}) {
info(" $f\n");
}
} else {
+ # e.g., fmttriggers; don't bother making a nice report.
info(" unknown differ $k\n");
}
}
diff --git a/systems/texlive/tlnet/tlpkg/installer/xz/xz.aarch64-linux b/systems/texlive/tlnet/tlpkg/installer/xz/xz.aarch64-linux
index 7267484b4d..c8c33eb06c 100755
--- a/systems/texlive/tlnet/tlpkg/installer/xz/xz.aarch64-linux
+++ b/systems/texlive/tlnet/tlpkg/installer/xz/xz.aarch64-linux
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/xz/xz.amd64-netbsd b/systems/texlive/tlnet/tlpkg/installer/xz/xz.amd64-netbsd
index e02282684e..c4311ec823 100755
--- a/systems/texlive/tlnet/tlpkg/installer/xz/xz.amd64-netbsd
+++ b/systems/texlive/tlnet/tlpkg/installer/xz/xz.amd64-netbsd
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/xz/xz.i386-netbsd b/systems/texlive/tlnet/tlpkg/installer/xz/xz.i386-netbsd
index e2973cb664..824513a506 100755
--- a/systems/texlive/tlnet/tlpkg/installer/xz/xz.i386-netbsd
+++ b/systems/texlive/tlnet/tlpkg/installer/xz/xz.i386-netbsd
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/xz/xz.universal-darwin b/systems/texlive/tlnet/tlpkg/installer/xz/xz.universal-darwin
index d32e92f96a..7f35a29f62 100755
--- a/systems/texlive/tlnet/tlpkg/installer/xz/xz.universal-darwin
+++ b/systems/texlive/tlnet/tlpkg/installer/xz/xz.universal-darwin
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/xz/xz.x86_64-linux b/systems/texlive/tlnet/tlpkg/installer/xz/xz.x86_64-linux
index 25b4318a55..ee83c45574 100755
--- a/systems/texlive/tlnet/tlpkg/installer/xz/xz.x86_64-linux
+++ b/systems/texlive/tlnet/tlpkg/installer/xz/xz.x86_64-linux
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 4303436e50..b8cdd588ff 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -23,14 +23,14 @@ longdesc 00texlive.installation(.tlpsrc)
depend container_format/xz
depend container_split_doc_files/1
depend container_split_src_files/1
-depend frozen/1
+depend frozen/0
depend minrelease/2016
-depend release/2023
-depend revision/70616
+depend release/2024
+depend revision/70630
name 00texlive.image
category TLCore
-revision 70583
+revision 70626
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -40,7 +40,7 @@ longdesc IgnorePatterns in the check_files routine in tlmgr.pl augment
longdesc this list. Those are not included in the source/ tarball. For
longdesc information on the 00texlive prefix see
longdesc 00texlive.installation(.tlpsrc)
-runfiles size=14451
+runfiles size=14455
.mkisofsrc
autorun.inf
texmf-dist/README
@@ -110,6 +110,7 @@ runfiles size=14451
tlpkg/bin/tl-update-tlnet
tlpkg/bin/tl-update-tlpdb
tlpkg/bin/tl-update-txi
+ tlpkg/bin/tlcom
tlpkg/bin/tlcritical-diff
tlpkg/bin/tlgpg
tlpkg/bin/tlgpg-verify
@@ -1243,6 +1244,7 @@ runfiles size=14451
tlpkg/tlpsrc/conteq.tlpsrc
tlpkg/tlpsrc/context-calendar-examples.tlpsrc
tlpkg/tlpsrc/context-collating-marks.tlpsrc
+ tlpkg/tlpsrc/context-companion-fonts.tlpsrc
tlpkg/tlpsrc/context-cyrillicnumbers.tlpsrc
tlpkg/tlpsrc/context-filter.tlpsrc
tlpkg/tlpsrc/context-gnuplot.tlpsrc
@@ -4484,6 +4486,7 @@ runfiles size=14451
tlpkg/tlpsrc/typicons.tlpsrc
tlpkg/tlpsrc/typoaid.tlpsrc
tlpkg/tlpsrc/typogrid.tlpsrc
+ tlpkg/tlpsrc/typstfun.tlpsrc
tlpkg/tlpsrc/tzplot.tlpsrc
tlpkg/tlpsrc/uaclasses.tlpsrc
tlpkg/tlpsrc/uafthesis.tlpsrc
@@ -4826,9 +4829,9 @@ runfiles size=14451
name 00texlive.installation
category TLCore
-revision 54074
+revision 69982
shortdesc TeX Live configuration settings
-longdesc This package serves on an installed system as configuration
+longdesc This package serves on an installed system as a configuration
longdesc file. We have to remember these settings for additional package
longdesc installation, removal, etc. There are two types here: 1) If the
longdesc key starts with opt_ this is an option that can be set by the
@@ -4866,7 +4869,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 70585
+revision 70616
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -4894,12 +4897,12 @@ runfiles size=801
tlpkg/installer/wtestopenfiles.exe
tlpkg/tltcl/tlmgr.gif
tlpkg/tltcl/tltcl.tcl
-binfiles arch=aarch64-linux size=47
+binfiles arch=aarch64-linux size=65
tlpkg/installer/xz/xz.aarch64-linux
binfiles arch=amd64-freebsd size=206
tlpkg/installer/wget/wget.amd64-freebsd
tlpkg/installer/xz/xz.amd64-freebsd
-binfiles arch=amd64-netbsd size=165
+binfiles arch=amd64-netbsd size=170
tlpkg/installer/wget/wget.amd64-netbsd
tlpkg/installer/xz/xz.amd64-netbsd
binfiles arch=armhf-linux size=42
@@ -4909,27 +4912,25 @@ binfiles arch=i386-freebsd size=179
tlpkg/installer/xz/xz.i386-freebsd
binfiles arch=i386-linux size=51
tlpkg/installer/xz/xz.i386-linux
-binfiles arch=i386-netbsd size=172
+binfiles arch=i386-netbsd size=178
tlpkg/installer/wget/wget.i386-netbsd
tlpkg/installer/xz/xz.i386-netbsd
binfiles arch=i386-solaris size=162
tlpkg/installer/wget/wget.i386-solaris
tlpkg/installer/xz/xz.i386-solaris
-binfiles arch=universal-darwin size=111
+binfiles arch=universal-darwin size=119
tlpkg/installer/xz/xz.universal-darwin
-binfiles arch=windows size=17010
+binfiles arch=windows size=27042
install-tl-windows.bat
tlpkg/installer/tar.exe
tlpkg/installer/wget/wget.exe
tlpkg/installer/xz/xz.exe
- tlpkg/tlperl/README.TEXLIVE
- tlpkg/tlperl/bin/libgcc_s_seh-1.dll
- tlpkg/tlperl/bin/libstdc++-6.dll
- tlpkg/tlperl/bin/libwinpthread-1.dll
tlpkg/tlperl/bin/perl.exe
- tlpkg/tlperl/bin/perl5.34.0.exe
- tlpkg/tlperl/bin/perl534.dll
+ tlpkg/tlperl/bin/perl5.38.2.exe
+ tlpkg/tlperl/bin/perl538.dll
tlpkg/tlperl/bin/perlglob.exe
+ tlpkg/tlperl/bin/vcruntime140.dll
+ tlpkg/tlperl/bin/vcruntime140_1.dll
tlpkg/tlperl/bin/wperl.exe
tlpkg/tlperl/lib/.packlist
tlpkg/tlperl/lib/AnyDBM_File.pm
@@ -4983,7 +4984,6 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/CORE/iperlsys.h
tlpkg/tlperl/lib/CORE/keywords.h
tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
- tlpkg/tlperl/lib/CORE/libperl534.a
tlpkg/tlperl/lib/CORE/malloc_ctl.h
tlpkg/tlperl/lib/CORE/metaconfig.h
tlpkg/tlperl/lib/CORE/mg.h
@@ -5002,6 +5002,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/CORE/parser.h
tlpkg/tlperl/lib/CORE/patchlevel.h
tlpkg/tlperl/lib/CORE/perl.h
+ tlpkg/tlperl/lib/CORE/perl538.lib
tlpkg/tlperl/lib/CORE/perl_inc_macro.h
tlpkg/tlperl/lib/CORE/perl_langinfo.h
tlpkg/tlperl/lib/CORE/perl_siphash.h
@@ -5010,6 +5011,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/CORE/perlio.h
tlpkg/tlperl/lib/CORE/perliol.h
tlpkg/tlperl/lib/CORE/perlsdio.h
+ tlpkg/tlperl/lib/CORE/perlstatic.h
tlpkg/tlperl/lib/CORE/perlvars.h
tlpkg/tlperl/lib/CORE/perly.h
tlpkg/tlperl/lib/CORE/pp.h
@@ -5018,11 +5020,15 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/CORE/reentr.h
tlpkg/tlperl/lib/CORE/regcharclass.h
tlpkg/tlperl/lib/CORE/regcomp.h
+ tlpkg/tlperl/lib/CORE/regcomp_internal.h
tlpkg/tlperl/lib/CORE/regexp.h
+ tlpkg/tlperl/lib/CORE/reginline.h
tlpkg/tlperl/lib/CORE/regnodes.h
tlpkg/tlperl/lib/CORE/sbox32_hash.h
tlpkg/tlperl/lib/CORE/scope.h
+ tlpkg/tlperl/lib/CORE/scope_types.h
tlpkg/tlperl/lib/CORE/sv.h
+ tlpkg/tlperl/lib/CORE/sv_inline.h
tlpkg/tlperl/lib/CORE/sys/errno2.h
tlpkg/tlperl/lib/CORE/sys/socket.h
tlpkg/tlperl/lib/CORE/thread.h
@@ -5103,14 +5109,14 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
tlpkg/tlperl/lib/Compress/Zlib.pm
+ tlpkg/tlperl/lib/Config.orig.pm
tlpkg/tlperl/lib/Config.pm
- tlpkg/tlperl/lib/Config.pm.orig
tlpkg/tlperl/lib/Config.pod
tlpkg/tlperl/lib/Config/Extensions.pm
tlpkg/tlperl/lib/Config/Perl/V.pm
tlpkg/tlperl/lib/Config_git.pl
+ tlpkg/tlperl/lib/Config_heavy.orig.pl
tlpkg/tlperl/lib/Config_heavy.pl
- tlpkg/tlperl/lib/Config_heavy.pl.orig
tlpkg/tlperl/lib/Cwd.pm
tlpkg/tlperl/lib/DB.pm
tlpkg/tlperl/lib/DBM_Filter.pm
@@ -5343,13 +5349,12 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/Math/BigInt/Lib.pm
tlpkg/tlperl/lib/Math/BigInt/Trace.pm
tlpkg/tlperl/lib/Math/BigRat.pm
+ tlpkg/tlperl/lib/Math/BigRat/Trace.pm
tlpkg/tlperl/lib/Math/Complex.pm
tlpkg/tlperl/lib/Math/Trig.pm
tlpkg/tlperl/lib/Memoize.pm
tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm
tlpkg/tlperl/lib/Memoize/Expire.pm
- tlpkg/tlperl/lib/Memoize/ExpireFile.pm
- tlpkg/tlperl/lib/Memoize/ExpireTest.pm
tlpkg/tlperl/lib/Memoize/NDBM_File.pm
tlpkg/tlperl/lib/Memoize/SDBM_File.pm
tlpkg/tlperl/lib/Memoize/Storable.pm
@@ -5398,6 +5403,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/Pod/Escapes.pm
tlpkg/tlperl/lib/Pod/Functions.pm
tlpkg/tlperl/lib/Pod/Html.pm
+ tlpkg/tlperl/lib/Pod/Html/Util.pm
tlpkg/tlperl/lib/Pod/Man.pm
tlpkg/tlperl/lib/Pod/ParseLink.pm
tlpkg/tlperl/lib/Pod/Perldoc.pm
@@ -5718,55 +5724,104 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/_charnames.pm
tlpkg/tlperl/lib/attributes.pm
tlpkg/tlperl/lib/auto/B/B.dll
+ tlpkg/tlperl/lib/auto/B/B.pdb
tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
+ tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.pdb
tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
+ tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.pdb
tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
+ tlpkg/tlperl/lib/auto/Cwd/Cwd.pdb
tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
+ tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.pdb
tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
+ tlpkg/tlperl/lib/auto/Devel/Peek/Peek.pdb
tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
+ tlpkg/tlperl/lib/auto/Digest/MD5/MD5.pdb
tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
+ tlpkg/tlperl/lib/auto/Digest/SHA/SHA.pdb
tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
+ tlpkg/tlperl/lib/auto/Encode/Byte/Byte.pdb
tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
+ tlpkg/tlperl/lib/auto/Encode/CN/CN.pdb
tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
+ tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.pdb
tlpkg/tlperl/lib/auto/Encode/Encode.dll
+ tlpkg/tlperl/lib/auto/Encode/Encode.pdb
tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
+ tlpkg/tlperl/lib/auto/Encode/JP/JP.pdb
tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
+ tlpkg/tlperl/lib/auto/Encode/KR/KR.pdb
tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
+ tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.pdb
tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
+ tlpkg/tlperl/lib/auto/Encode/TW/TW.pdb
tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
+ tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.pdb
tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
+ tlpkg/tlperl/lib/auto/Fcntl/Fcntl.pdb
tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
+ tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.pdb
tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
+ tlpkg/tlperl/lib/auto/File/Glob/Glob.pdb
tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
+ tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.pdb
tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
+ tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.pdb
tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
+ tlpkg/tlperl/lib/auto/Hash/Util/Util.pdb
tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll
+ tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.pdb
tlpkg/tlperl/lib/auto/IO/IO.dll
+ tlpkg/tlperl/lib/auto/IO/IO.pdb
tlpkg/tlperl/lib/auto/List/Util/Util.dll
+ tlpkg/tlperl/lib/auto/List/Util/Util.pdb
tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
+ tlpkg/tlperl/lib/auto/MIME/Base64/Base64.pdb
tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
+ tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.pdb
tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
+ tlpkg/tlperl/lib/auto/Opcode/Opcode.pdb
tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
+ tlpkg/tlperl/lib/auto/POSIX/POSIX.pdb
tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
+ tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.pdb
tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
+ tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.pdb
tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
+ tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.pdb
tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
+ tlpkg/tlperl/lib/auto/PerlIO/via/via.pdb
tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
+ tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.pdb
tlpkg/tlperl/lib/auto/Socket/Socket.dll
+ tlpkg/tlperl/lib/auto/Socket/Socket.pdb
tlpkg/tlperl/lib/auto/Storable/Storable.dll
+ tlpkg/tlperl/lib/auto/Storable/Storable.pdb
tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
+ tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.pdb
tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
+ tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.pdb
tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
+ tlpkg/tlperl/lib/auto/Time/Piece/Piece.pdb
tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
+ tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.pdb
tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
+ tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.pdb
tlpkg/tlperl/lib/auto/Win32/Win32.dll
+ tlpkg/tlperl/lib/auto/Win32/Win32.pdb
tlpkg/tlperl/lib/auto/Win32API/File/File.dll
+ tlpkg/tlperl/lib/auto/Win32API/File/File.pdb
tlpkg/tlperl/lib/auto/Win32CORE/extralibs.ld
tlpkg/tlperl/lib/auto/attributes/attributes.dll
+ tlpkg/tlperl/lib/auto/attributes/attributes.pdb
tlpkg/tlperl/lib/auto/mro/mro.dll
+ tlpkg/tlperl/lib/auto/mro/mro.pdb
tlpkg/tlperl/lib/auto/re/re.dll
+ tlpkg/tlperl/lib/auto/re/re.pdb
tlpkg/tlperl/lib/auto/threads/shared/shared.dll
+ tlpkg/tlperl/lib/auto/threads/shared/shared.pdb
tlpkg/tlperl/lib/auto/threads/threads.dll
+ tlpkg/tlperl/lib/auto/threads/threads.pdb
tlpkg/tlperl/lib/autodie.pm
tlpkg/tlperl/lib/autodie/Scope/Guard.pm
tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
@@ -5777,10 +5832,12 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/autodie/skip.pm
tlpkg/tlperl/lib/autouse.pm
tlpkg/tlperl/lib/base.pm
+ tlpkg/tlperl/lib/bigfloat.pm
tlpkg/tlperl/lib/bigint.pm
tlpkg/tlperl/lib/bignum.pm
tlpkg/tlperl/lib/bigrat.pm
tlpkg/tlperl/lib/blib.pm
+ tlpkg/tlperl/lib/builtin.pm
tlpkg/tlperl/lib/bytes.pm
tlpkg/tlperl/lib/bytes_heavy.pl
tlpkg/tlperl/lib/charnames.pm
@@ -5814,6 +5871,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/re.pm
tlpkg/tlperl/lib/sigtrap.pm
tlpkg/tlperl/lib/sort.pm
+ tlpkg/tlperl/lib/stable.pm
tlpkg/tlperl/lib/strict.pm
tlpkg/tlperl/lib/subs.pm
tlpkg/tlperl/lib/threads.pm
@@ -5825,16 +5883,15 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/Name.pm
tlpkg/tlperl/lib/unicore/NamedSequences.txt
tlpkg/tlperl/lib/unicore/SpecialCasing.txt
+ tlpkg/tlperl/lib/unicore/TestNorm.pl
tlpkg/tlperl/lib/unicore/To/Age.pl
tlpkg/tlperl/lib/unicore/To/Bc.pl
tlpkg/tlperl/lib/unicore/To/Bmg.pl
tlpkg/tlperl/lib/unicore/To/Bpb.pl
tlpkg/tlperl/lib/unicore/To/Bpt.pl
tlpkg/tlperl/lib/unicore/To/Cf.pl
- tlpkg/tlperl/lib/unicore/To/Digit.pl
tlpkg/tlperl/lib/unicore/To/Ea.pl
tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl
- tlpkg/tlperl/lib/unicore/To/Fold.pl
tlpkg/tlperl/lib/unicore/To/GCB.pl
tlpkg/tlperl/lib/unicore/To/Gc.pl
tlpkg/tlperl/lib/unicore/To/Hst.pl
@@ -5847,7 +5904,6 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/To/Jt.pl
tlpkg/tlperl/lib/unicore/To/Lb.pl
tlpkg/tlperl/lib/unicore/To/Lc.pl
- tlpkg/tlperl/lib/unicore/To/Lower.pl
tlpkg/tlperl/lib/unicore/To/NFCQC.pl
tlpkg/tlperl/lib/unicore/To/NFDQC.pl
tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
@@ -5862,9 +5918,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/To/Sc.pl
tlpkg/tlperl/lib/unicore/To/Scx.pl
tlpkg/tlperl/lib/unicore/To/Tc.pl
- tlpkg/tlperl/lib/unicore/To/Title.pl
tlpkg/tlperl/lib/unicore/To/Uc.pl
- tlpkg/tlperl/lib/unicore/To/Upper.pl
tlpkg/tlperl/lib/unicore/To/Vo.pl
tlpkg/tlperl/lib/unicore/To/WB.pl
tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
@@ -5876,6 +5930,8 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/Age/V110.pl
tlpkg/tlperl/lib/unicore/lib/Age/V120.pl
tlpkg/tlperl/lib/unicore/lib/Age/V130.pl
+ tlpkg/tlperl/lib/unicore/lib/Age/V140.pl
+ tlpkg/tlperl/lib/unicore/lib/Age/V150.pl
tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
@@ -6025,6 +6081,8 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/In/12_0.pl
tlpkg/tlperl/lib/unicore/lib/In/12_1.pl
tlpkg/tlperl/lib/unicore/lib/In/13_0.pl
+ tlpkg/tlperl/lib/unicore/lib/In/14_0.pl
+ tlpkg/tlperl/lib/unicore/lib/In/15_0.pl
tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
@@ -6067,6 +6125,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
+ tlpkg/tlperl/lib/unicore/lib/InSC/Geminati.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
@@ -6091,10 +6150,12 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
+ tlpkg/tlperl/lib/unicore/lib/Jg/Noon.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
+ tlpkg/tlperl/lib/unicore/lib/Jg/Tah.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
@@ -6319,6 +6380,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl
+ tlpkg/tlperl/lib/unicore/lib/Scx/Nko.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl
@@ -6335,6 +6397,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
+ tlpkg/tlperl/lib/unicore/lib/Scx/Vith.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
@@ -6344,6 +6407,7 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
+ tlpkg/tlperl/lib/unicore/lib/VS/Y.pl
tlpkg/tlperl/lib/unicore/lib/Vo/R.pl
tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl
tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl
@@ -6373,6 +6437,10 @@ binfiles arch=windows size=17010
tlpkg/tlperl/lib/vmsish.pm
tlpkg/tlperl/lib/warnings.pm
tlpkg/tlperl/lib/warnings/register.pm
+ tlpkg/tlperl/site/lib/App/Prove.pm
+ tlpkg/tlperl/site/lib/App/Prove/State.pm
+ tlpkg/tlperl/site/lib/App/Prove/State/Result.pm
+ tlpkg/tlperl/site/lib/App/Prove/State/Result/Test.pm
tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Boolean.pm
tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Type.pm
@@ -6419,6 +6487,12 @@ binfiles arch=windows size=17010
tlpkg/tlperl/site/lib/Encode/compat/5006001.pm
tlpkg/tlperl/site/lib/Encode/compat/Alias.pm
tlpkg/tlperl/site/lib/Encode/compat/common.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Config.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers/Unix.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers/VMS.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers/Windows.pm
+ tlpkg/tlperl/site/lib/ExtUtils/InstallPaths.pm
tlpkg/tlperl/site/lib/File/Listing.pm
tlpkg/tlperl/site/lib/File/Which.pm
tlpkg/tlperl/site/lib/HTML/Entities.pm
@@ -6448,45 +6522,70 @@ binfiles arch=windows size=17010
tlpkg/tlperl/site/lib/IO/HTML.pm
tlpkg/tlperl/site/lib/IO/String.pm
tlpkg/tlperl/site/lib/JSON/MaybeXS.pm
- tlpkg/tlperl/site/lib/LWP.pm
- tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
- tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
- tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
- tlpkg/tlperl/site/lib/LWP/ConnCache.pm
- tlpkg/tlperl/site/lib/LWP/Debug.pm
- tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
- tlpkg/tlperl/site/lib/LWP/DebugFile.pm
tlpkg/tlperl/site/lib/LWP/MediaTypes.pm
- tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
- tlpkg/tlperl/site/lib/LWP/Protocol.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/data.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
- tlpkg/tlperl/site/lib/LWP/RobotUA.pm
- tlpkg/tlperl/site/lib/LWP/Simple.pm
- tlpkg/tlperl/site/lib/LWP/UserAgent.pm
tlpkg/tlperl/site/lib/LWP/media.types
tlpkg/tlperl/site/lib/Math/Int64.pm
tlpkg/tlperl/site/lib/Math/Int64/die_on_overflow.pm
tlpkg/tlperl/site/lib/Math/Int64/native_if_available.pm
tlpkg/tlperl/site/lib/Math/UInt64.pm
+ tlpkg/tlperl/site/lib/Module/Build/Tiny.pm
tlpkg/tlperl/site/lib/Mozilla/CA.pm
tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem
- tlpkg/tlperl/site/lib/Mozilla/mk-ca-bundle.pl
tlpkg/tlperl/site/lib/Net/HTTP.pm
tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
tlpkg/tlperl/site/lib/Net/HTTPS.pm
+ tlpkg/tlperl/site/lib/Socket.pm
+ tlpkg/tlperl/site/lib/TAP/Base.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Base.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Color.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Console.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Console/ParallelSession.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Console/Session.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/File.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/File/Session.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Session.pm
+ tlpkg/tlperl/site/lib/TAP/Harness.pm
+ tlpkg/tlperl/site/lib/TAP/Harness/Beyond.pod
+ tlpkg/tlperl/site/lib/TAP/Harness/Env.pm
+ tlpkg/tlperl/site/lib/TAP/Object.pm
+ tlpkg/tlperl/site/lib/TAP/Parser.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Aggregator.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Grammar.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Array.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Process.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Stream.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/IteratorFactory.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Multiplexer.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Bailout.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Comment.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Plan.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Pragma.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Test.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Unknown.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Version.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/YAML.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/ResultFactory.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Scheduler.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Job.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Spinner.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Source.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Executable.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/File.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Handle.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Perl.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/RawTAP.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Reader.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Writer.pm
tlpkg/tlperl/site/lib/Test/Fatal.pm
+ tlpkg/tlperl/site/lib/Test/HACKING.pod
+ tlpkg/tlperl/site/lib/Test/Harness.pm
tlpkg/tlperl/site/lib/Test/Needs.pm
tlpkg/tlperl/site/lib/Test/RequiresInternet.pm
+ tlpkg/tlperl/site/lib/Test/Warnings.pm
tlpkg/tlperl/site/lib/Tie/Registry.pm
tlpkg/tlperl/site/lib/Time/Zone.pm
tlpkg/tlperl/site/lib/TimeDate.pm
@@ -6519,9 +6618,12 @@ binfiles arch=windows size=17010
tlpkg/tlperl/site/lib/URI/file/Unix.pm
tlpkg/tlperl/site/lib/URI/file/Win32.pm
tlpkg/tlperl/site/lib/URI/ftp.pm
+ tlpkg/tlperl/site/lib/URI/geo.pm
tlpkg/tlperl/site/lib/URI/gopher.pm
tlpkg/tlperl/site/lib/URI/http.pm
tlpkg/tlperl/site/lib/URI/https.pm
+ tlpkg/tlperl/site/lib/URI/icap.pm
+ tlpkg/tlperl/site/lib/URI/icaps.pm
tlpkg/tlperl/site/lib/URI/ldap.pm
tlpkg/tlperl/site/lib/URI/ldapi.pm
tlpkg/tlperl/site/lib/URI/ldaps.pm
@@ -6560,15 +6662,27 @@ binfiles arch=windows size=17010
tlpkg/tlperl/site/lib/Win32API/Registry/cRegistry.pc
tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
+ tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.exp
+ tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.lib
+ tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.pdb
tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist
tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dll
+ tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.exp
+ tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.lib
+ tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.pdb
tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
+ tlpkg/tlperl/site/lib/auto/ExtUtils/Config/.packlist
+ tlpkg/tlperl/site/lib/auto/ExtUtils/Helpers/.packlist
+ tlpkg/tlperl/site/lib/auto/ExtUtils/InstallPaths/.packlist
tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
tlpkg/tlperl/site/lib/auto/File/Which/.packlist
tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
+ tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.exp
+ tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.lib
+ tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.pdb
tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
@@ -6581,27 +6695,50 @@ binfiles arch=windows size=17010
tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
+ tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.exp
+ tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.lib
+ tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.pdb
+ tlpkg/tlperl/site/lib/auto/Module/Build/Tiny/.packlist
tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
+ tlpkg/tlperl/site/lib/auto/Socket/.packlist
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.exp
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.lib
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.pdb
tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
+ tlpkg/tlperl/site/lib/auto/Test/Harness/.packlist
tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
+ tlpkg/tlperl/site/lib/auto/Test/Warnings/.packlist
tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
tlpkg/tlperl/site/lib/auto/URI/.packlist
tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
+ tlpkg/tlperl/site/lib/auto/Win32/API/API.exp
+ tlpkg/tlperl/site/lib/auto/Win32/API/API.lib
+ tlpkg/tlperl/site/lib/auto/Win32/API/API.pdb
tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
+ tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.exp
+ tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.lib
+ tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.pdb
tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
+ tlpkg/tlperl/site/lib/auto/Win32/Console/Console.exp
+ tlpkg/tlperl/site/lib/auto/Win32/Console/Console.lib
+ tlpkg/tlperl/site/lib/auto/Win32/Console/Console.pdb
tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
+ tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.exp
+ tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.lib
+ tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.pdb
tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
- tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
- tlpkg/tlperl/site/lib/libwww/lwpcook.pod
- tlpkg/tlperl/site/lib/libwww/lwptut.pod
+ tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.exp
+ tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.lib
+ tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.pdb
tlpkg/tltcl/bin/tcl86.dll
tlpkg/tltcl/bin/tclsh.exe
tlpkg/tltcl/bin/tclsh86.exe
@@ -6609,18 +6746,25 @@ binfiles arch=windows size=17010
tlpkg/tltcl/bin/wish.exe
tlpkg/tltcl/bin/wish86.exe
tlpkg/tltcl/bin/zlib1.dll
+ tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.a
tlpkg/tltcl/lib/dde1.4/pkgIndex.tcl
tlpkg/tltcl/lib/dde1.4/tcldde14.dll
- tlpkg/tltcl/lib/itcl4.2.2/itcl.tcl
- tlpkg/tltcl/lib/itcl4.2.2/itcl422.dll
- tlpkg/tltcl/lib/itcl4.2.2/itclConfig.sh
- tlpkg/tltcl/lib/itcl4.2.2/itclHullCmds.tcl
- tlpkg/tltcl/lib/itcl4.2.2/itclWidget.tcl
- tlpkg/tltcl/lib/itcl4.2.2/pkgIndex.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/itcl.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/itcl423.dll
+ tlpkg/tltcl/lib/itcl4.2.3/itclConfig.sh
+ tlpkg/tltcl/lib/itcl4.2.3/itclHullCmds.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/itclWidget.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/libitclstub423.a
+ tlpkg/tltcl/lib/itcl4.2.3/pkgIndex.tcl
+ tlpkg/tltcl/lib/libtcl86.dll.a
+ tlpkg/tltcl/lib/libtclstub86.a
+ tlpkg/tltcl/lib/libtk86.dll.a
+ tlpkg/tltcl/lib/libtkstub86.a
+ tlpkg/tltcl/lib/reg1.3/libtclreg13.dll.a
tlpkg/tltcl/lib/reg1.3/pkgIndex.tcl
tlpkg/tltcl/lib/reg1.3/tclreg13.dll
- tlpkg/tltcl/lib/sqlite3.36.0/pkgIndex.tcl
- tlpkg/tltcl/lib/sqlite3.36.0/sqlite3360.dll
+ tlpkg/tltcl/lib/sqlite3.40.0/pkgIndex.tcl
+ tlpkg/tltcl/lib/sqlite3.40.0/sqlite3400.dll
tlpkg/tltcl/lib/tcl8.6/auto.tcl
tlpkg/tltcl/lib/tcl8.6/clock.tcl
tlpkg/tltcl/lib/tcl8.6/encoding/ascii.enc
@@ -7217,7 +7361,6 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tcl8.6/tzdata/CST6CDT
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Atlantic
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Central
- tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/East-Saskatchewan
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Eastern
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Mountain
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Newfoundland
@@ -7291,6 +7434,7 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kaliningrad
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kirov
+ tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kyiv
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Lisbon
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Ljubljana
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/London
@@ -7443,7 +7587,6 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Michigan
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Mountain
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific
- tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific-New
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Samoa
tlpkg/tltcl/lib/tcl8.6/tzdata/UTC
tlpkg/tltcl/lib/tcl8.6/tzdata/Universal
@@ -7451,30 +7594,31 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tcl8.6/tzdata/WET
tlpkg/tltcl/lib/tcl8.6/tzdata/Zulu
tlpkg/tltcl/lib/tcl8.6/word.tcl
- tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.18.tm
+ tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.19.tm
tlpkg/tltcl/lib/tcl8/8.4/platform/shell-1.1.4.tm
tlpkg/tltcl/lib/tcl8/8.5/msgcat-1.6.1.tm
- tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.3.tm
- tlpkg/tltcl/lib/tcl8/8.6/http-2.9.5.tm
- tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.3.tm
+ tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.5.tm
+ tlpkg/tltcl/lib/tcl8/8.6/http-2.9.8.tm
+ tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.5.tm
tlpkg/tltcl/lib/tclConfig.sh
tlpkg/tltcl/lib/tclooConfig.sh
- tlpkg/tltcl/lib/tdbc1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbc1.1.3/tdbc.tcl
- tlpkg/tltcl/lib/tdbc1.1.3/tdbc113.dll
- tlpkg/tltcl/lib/tdbc1.1.3/tdbcConfig.sh
- tlpkg/tltcl/lib/tdbcmysql1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql.tcl
- tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql113.dll
- tlpkg/tltcl/lib/tdbcodbc1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc.tcl
- tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc113.dll
- tlpkg/tltcl/lib/tdbcpostgres1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres.tcl
- tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres113.dll
- tlpkg/tltcl/lib/thread2.8.7/pkgIndex.tcl
- tlpkg/tltcl/lib/thread2.8.7/thread287.dll
- tlpkg/tltcl/lib/thread2.8.7/ttrace.tcl
+ tlpkg/tltcl/lib/tdbc1.1.5/libtdbcstub115.a
+ tlpkg/tltcl/lib/tdbc1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbc1.1.5/tdbc.tcl
+ tlpkg/tltcl/lib/tdbc1.1.5/tdbc115.dll
+ tlpkg/tltcl/lib/tdbc1.1.5/tdbcConfig.sh
+ tlpkg/tltcl/lib/tdbcmysql1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql.tcl
+ tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql115.dll
+ tlpkg/tltcl/lib/tdbcodbc1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc.tcl
+ tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc115.dll
+ tlpkg/tltcl/lib/tdbcpostgres1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres.tcl
+ tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres115.dll
+ tlpkg/tltcl/lib/thread2.8.8/pkgIndex.tcl
+ tlpkg/tltcl/lib/thread2.8.8/thread288.dll
+ tlpkg/tltcl/lib/thread2.8.8/ttrace.tcl
tlpkg/tltcl/lib/tk8.6/bgerror.tcl
tlpkg/tltcl/lib/tk8.6/button.tcl
tlpkg/tltcl/lib/tk8.6/choosedir.tcl
@@ -7597,6 +7741,7 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tk8.6/msgs/en_gb.msg
tlpkg/tltcl/lib/tk8.6/msgs/eo.msg
tlpkg/tltcl/lib/tk8.6/msgs/es.msg
+ tlpkg/tltcl/lib/tk8.6/msgs/fi.msg
tlpkg/tltcl/lib/tk8.6/msgs/fr.msg
tlpkg/tltcl/lib/tk8.6/msgs/hu.msg
tlpkg/tltcl/lib/tk8.6/msgs/it.msg
@@ -7605,6 +7750,7 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tk8.6/msgs/pt.msg
tlpkg/tltcl/lib/tk8.6/msgs/ru.msg
tlpkg/tltcl/lib/tk8.6/msgs/sv.msg
+ tlpkg/tltcl/lib/tk8.6/msgs/zh_cn.msg
tlpkg/tltcl/lib/tk8.6/obsolete.tcl
tlpkg/tltcl/lib/tk8.6/optMenu.tcl
tlpkg/tltcl/lib/tk8.6/palette.tcl
@@ -7647,12 +7793,12 @@ binfiles arch=windows size=17010
tlpkg/tltcl/lib/tk8.6/unsupported.tcl
tlpkg/tltcl/lib/tk8.6/xmfbox.tcl
tlpkg/tltcl/lib/tkConfig.sh
-binfiles arch=x86_64-cygwin size=46
+binfiles arch=x86_64-cygwin size=52
tlpkg/installer/xz/xz.x86_64-cygwin.exe
binfiles arch=x86_64-darwinlegacy size=169
tlpkg/installer/wget/wget.x86_64-darwinlegacy
tlpkg/installer/xz/xz.x86_64-darwinlegacy
-binfiles arch=x86_64-linux size=45
+binfiles arch=x86_64-linux size=50
tlpkg/installer/xz/xz.x86_64-linux
binfiles arch=x86_64-linuxmusl size=431
tlpkg/installer/wget/wget.x86_64-linuxmusl
@@ -9718,7 +9864,7 @@ binfiles arch=x86_64-solaris size=1
name adigraph
category Package
-revision 70427
+revision 70422
shortdesc Augmenting directed graphs
relocated 1
longdesc This LaTeX package provides the means to easily draw augmenting
@@ -9726,10 +9872,10 @@ longdesc oriented graphs, as well as cuts on them, to demonstrate steps
longdesc of algorithms for solving max-flow min-cut problems. This
longdesc package requires the other LaTeX packages fp, xparse, xstring,
longdesc and TikZ (in particular the TikZ calc library).
-containersize 5628
-containerchecksum 38a89fee26ed097a2395e43a86ddeb8d9b652e758f72413ae0f3a35b3130a1a742a94c65324708112f3d27b7317e01c8da2cf0ff86fe56d7221b92a60e7ff809
-doccontainersize 586664
-doccontainerchecksum c154996a4370d31e2f596a0a463189ae64c7f1b829b5269b8bb6c229ebbea888e6153d43f12577df7ad9feca4af2d3dddb23af7e03a63e44dcb88693873f546b
+containersize 5624
+containerchecksum a556d38f280f96dfc3d3ef466c59e6316e374d3ba765f2e5810864e791969adbdfeb45eb6727d44f4e26199db35ae312dc5e60f9912d6a10d348814416108dd8
+doccontainersize 586676
+doccontainerchecksum f07ec2fff9c40c93847c7f2cfc3b305a3b531cee45fcaff6ea1340dcbfa41a51856983b6efb1c9aa7b5cbcf69616d354ad34cf692c20e878c366f6ee2d89aafb
docfiles size=185
RELOC/doc/latex/adigraph/LICENSE
RELOC/doc/latex/adigraph/README.md details="Readme"
@@ -10643,137 +10789,137 @@ runfiles size=24
name afm2pl.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of afm2pl
-containersize 40284
-containerchecksum 5659556ce026fa201daad739ab5100e710f69dab2cb0c37158a38fff4a55b58cd5e2b7e66e625e35ede3cc645415dc5f1366b6ac220265808740a87c471dafbf
+containersize 40684
+containerchecksum 55da62654557db1462c5d69d94d9c3532eca9974f5e5741bdd02fdc8259474aae4e860f5b4756b588d42c9d730a5d1d19d51a1a804eeac67a60c854e4ed803ed
binfiles arch=aarch64-linux size=26
bin/aarch64-linux/afm2pl
name afm2pl.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of afm2pl
-containersize 44524
-containerchecksum 06cef46a04417da8fcf5b31cb9f6703074ea07ee2b6a3bb1cf8e0458c521db48fd1671cafde1a4f682c9ed5da4eed1bc471f970d435000d0b7bd78859487cea3
-binfiles arch=amd64-freebsd size=27
+containersize 39620
+containerchecksum d702cabcddf316b097fdaae1f19040fe9258dcf374b121053df536d1d867e0df12a120588ec08bb41f646bdf523d9f4ec7287fff6944684f34b76830996b51a7
+binfiles arch=amd64-freebsd size=30
bin/amd64-freebsd/afm2pl
name afm2pl.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of afm2pl
-containersize 38180
-containerchecksum e3124dec6876c59c25a1066e2accd2e4c635ea8996541f0ca13302304d2185adc58f9774bc2002d1db86ea0b5c7fbc25ad82fb39ad407240627af98633826235
+containersize 38636
+containerchecksum 8aa0caae252f6af5c81e035c021ff7bed4f1c08d141ea198a675274a615cf63e82d35c82655ea46a9127bc77c2ae1fdecf2e973783c22c45a00cfcf290b7be35
binfiles arch=amd64-netbsd size=30
bin/amd64-netbsd/afm2pl
name afm2pl.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of afm2pl
-containersize 34160
-containerchecksum e90c1503fbb149d83e2de64df55dfe8a87c75fd655e1b76f3e3dad67b7aa5f3dc55338465cff6c0e451920ecbc3e9d2b95fcefdfa41823bc804189179f74b41b
+containersize 34492
+containerchecksum a8b573c89388495a55c7717649643c3e1ff7047f27cba272df5c3c8cfb3b415ecc137f603a408008c173fd411eb58dc8cab6b6517aa39418a87044a75c38de5e
binfiles arch=armhf-linux size=21
bin/armhf-linux/afm2pl
name afm2pl.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of afm2pl
-containersize 40164
-containerchecksum 290b5375c5be9ce5f1bd00c2e79339e9d2308baeebdf4c9d46bdf7c0e9a8722601a36202e17b505fbffe20efc57dff054f71d9288eed6dc97b0916a1e60d6546
-binfiles arch=i386-freebsd size=24
+containersize 39616
+containerchecksum d3043c0fedf015aedd23c47d2bd89cc6554b0e92b80c1e3dc4cef9e8e67e0f8ba304141ba71e9a6adc4f7a0214738d61960ece3fc8bcfde690912963480097b1
+binfiles arch=i386-freebsd size=30
bin/i386-freebsd/afm2pl
name afm2pl.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of afm2pl
-containersize 44672
-containerchecksum 0f1c53440728f752bde92f9b2006ae09c0f97ad9e610c688ce7996fec8ade736602ff758bcbd3970d41cd9f1d7b09cc1a21a4f7b1e3092216190eb1c3fd56436
-binfiles arch=i386-linux size=27
+containersize 45188
+containerchecksum 373734bb6a2234c59e0c1ee0a77de8917e852c542a2b169468f0f91633beb91b45d849318de84ad481d4b3f9571ab075cb5ce43253273e937c8451585e860c73
+binfiles arch=i386-linux size=28
bin/i386-linux/afm2pl
name afm2pl.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of afm2pl
-containersize 35076
-containerchecksum 4b93a36e79187cae56c405c8a08a64e22224444e5131aa832053642dba672aa2263c2d7420ad2860b78eeffd0203d16d151dd4dc81c0b886763b6f538c8154a1
+containersize 35392
+containerchecksum b87ea07939d51cc6af9f61eb1efa0ee9c43fe2a058030823d19fa5bf917243370ca2e415a5c58da22cd23621a0282cad034f152174c61a80a8caf9d22cf83317
binfiles arch=i386-netbsd size=27
bin/i386-netbsd/afm2pl
name afm2pl.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of afm2pl
-containersize 40332
-containerchecksum 9f7b30a7b6ba3b08918b6db2a33b4a213783cf36068fd92d4262576d623a8802651b7b0255a7ae0c7645086a6800b4ed4ed2bb71919f96af8e9eb3db8446e20d
-binfiles arch=i386-solaris size=22
+containersize 41780
+containerchecksum 96527eb07bd13c8d0c8db5d6f1d108e4d417fcb5cd497221d8605dcbdb097da8d18ae7d85560204a70301de308b0344a10cc3d3e14f3adef33f2cc274c0f32b9
+binfiles arch=i386-solaris size=24
bin/i386-solaris/afm2pl
name afm2pl.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of afm2pl
-containersize 83444
-containerchecksum 6a7df69ec13387dca63dd635a26a4e1d9d05fde67af2fde16e2c60aa24f1003ecad13b7a6a64ba44a51e19358f4d345032cdcd1fd0ef3a6cbb8a6b166711fba2
+containersize 84640
+containerchecksum 402ade07479e5e9fc6a27f936687a30ae989dfe8ce40c3a4644f3408e6475bddf5c5bd3c33e7df995b33a2a232d5eedf28f8df87f7e21b6d97ca99757add5623
binfiles arch=universal-darwin size=75
bin/universal-darwin/afm2pl
name afm2pl.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of afm2pl
-containersize 17200
-containerchecksum b3396895aa8a998b8eaab999c0ff04a77686c87ad5ebe2e629618c26ab2e828b1578a22bde3bcd4d465312e05953743925262f9448c20b0555f210fc6294e48e
+containersize 17208
+containerchecksum c1197685e67f183d0da194b80ab656ed6f3800d1670aed9d73139d78d568e5b320dc049f1f0fb97ec40e883e0c9692fee395b46044444fcf448dea2e14f060a2
binfiles arch=windows size=9
bin/windows/afm2pl.exe
name afm2pl.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of afm2pl
-containersize 14428
-containerchecksum 66c15f9396dc2b38414e8c4b9a63366b36f3c04a75b414ade04d1bffac2369d644f6c6e857c2ba76bbb1b62e478f281255f10cacfb593306a6c8c66a7850dd26
+containersize 14372
+containerchecksum 4027f615c7b22464e57ffe8448df47764a55c1c47c3184a63fd61bdc05e20eb2d055f517b2d65fa78327aaf090478b43e2084a5fe5fbf96e1710f7f06256f13b
binfiles arch=x86_64-cygwin size=8
bin/x86_64-cygwin/afm2pl.exe
name afm2pl.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of afm2pl
-containersize 40616
-containerchecksum c6ae77eb62b0932896db52ab7297c429290e1fc65ad03d9a040a7fd94109af83e3b2111880dc782781a6dc93c50fb1e5a7873da3ddb5e31fdfbcd2d292c8c3d1
+containersize 41168
+containerchecksum 235a2a330022d726289dca32bcd7674cb44f542e30542d9acd14c6184148a04a95fd9db5a0c4fd00badd2cbfed43aff88100937c021348748df6f01f0fad0bda
binfiles arch=x86_64-darwinlegacy size=24
bin/x86_64-darwinlegacy/afm2pl
name afm2pl.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of afm2pl
-containersize 42236
-containerchecksum cfc406a41aecf0fcc50a27ddc3d1572d68c35ed4d44a0f06f0a1b0fbaf08bf7e8f15c3dc1d5d64c43d0aa898ca80a55dda820716da49da712e59465991b5dc89
+containersize 42652
+containerchecksum e84c8a962736d4e15a0a56891f2c83aad598be7e5117f2e9448076c3972405ed6c019abc2071500a9a09d182dac31f7aa7a38b6f348c7322f2e025975fa79044
binfiles arch=x86_64-linux size=25
bin/x86_64-linux/afm2pl
name afm2pl.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of afm2pl
-containersize 43600
-containerchecksum 600ae6bcd712915411a8226ce52c05d2596a0e84a66a94490f9bec7b25a98cf3e6339ba8335857aed79532f69295d2a3fd70db96b3acdbd9b28fb0265d58fc38
-binfiles arch=x86_64-linuxmusl size=25
+containersize 44128
+containerchecksum 5e9a2ebfc41028edc8a9d7e56effec5f975341e1803fb5d88388ebc76888aaaee0bed4d7303019908d868c654c734761ac849e1de090e64260851fa117cb7acb
+binfiles arch=x86_64-linuxmusl size=26
bin/x86_64-linuxmusl/afm2pl
name afm2pl.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of afm2pl
-containersize 44324
-containerchecksum d1120a44620026ca87eb6ea7b13bba3c0c4aa63d7982af56311248360b328e379800be81c622dc944d3e3872b16c026ec1b37cdb945ca80e2c34b49fb4a4d705
-binfiles arch=x86_64-solaris size=26
+containersize 46240
+containerchecksum b6f60d59f9528d6ebd37ba6e1c487079b099bb21f05ddb070752658735353fb52487c3b15bfafe2d17beb1616dfa78cbe5efb9e975894422ee0d0dc59c4edda3
+binfiles arch=x86_64-solaris size=28
bin/x86_64-solaris/afm2pl
name afparticle
@@ -11081,15 +11227,15 @@ catalogue-version 0.2
name albatross
category Package
-revision 69879
+revision 69832
shortdesc Find fonts that contain a given glyph
longdesc This is a command line tool for finding fonts that contain a
longdesc given (Unicode) glyph. It relies on Fontconfig.
depend albatross.ARCH
-containersize 5011008
-containerchecksum 6bb925eff84c6d3fc3ab1b81ae50cf5fcafbc8dcadd5ae6076bc1280c427ed03896e8dcc5ccefe05e911b513a5da470312128c488a694c602a2cd9b3a94148b2
+containersize 5010736
+containerchecksum c501ca3b1479ef25462d4f4af6b525a980a51800fc2e13bc0a16058830df1d0dbb020c1db7d51eaeebd9f49ebe4e23bbd082ec354b8c2577414f10377db25800
doccontainersize 109164
-doccontainerchecksum d78c18b44d3eb60d6e991df864aeafd97366023aac7a732bbf7c67d0d677a76e0a89fadfba515cdfae1f1f7705323413bfd27100a3c09dbefa41918c3e29fd57
+doccontainerchecksum 6cd6a3122e7f43ff57b5407ed426d88666d45ea55681d1ff1f324040b92d9a127a6f44b630ea442ff2d220d420a655642872cb9f0cb382aa21302850d83c3093
docfiles size=46
texmf-dist/doc/man/man1/albatross.1
texmf-dist/doc/man/man1/albatross.man1.pdf
@@ -11098,7 +11244,7 @@ docfiles size=46
texmf-dist/doc/support/albatross/albatross-manual.tex
texmf-dist/doc/support/albatross/version.tex
srccontainersize 11296
-srccontainerchecksum 49ef73f529b8484def315efb0f9bef230697f532fd8138b42404ab5e98a880ea3d7e4ab660a9b3e83be73690f0a762ca09b1b9c964f9d461a0022853006d76be
+srccontainerchecksum accc7087241aebabf2f34c13a432875257fe32ec606d093ae6abd4aa3ade986e919c2e5f9a50332b6448bde521a1d5d73a90a0b83c908b50e2630bd8f27bc6d0
srcfiles size=4
texmf-dist/source/support/albatross/albatross-0.5.1-src.zip
runfiles size=1325
@@ -15853,7 +15999,7 @@ catalogue-topics font font-body font-serif font-sans font-proportional font-t1en
name aleph
category Package
-revision 66203
+revision 70015
shortdesc Extended TeX
longdesc An development of omega, using most of the extensions of TeX
longdesc itself developed for e-TeX.
@@ -15866,9 +16012,9 @@ depend latex
depend plain
execute AddFormat name=aleph engine=aleph options=*aleph.ini fmttriggers=cm,hyphen-base,knuth-lib,plain
containersize 540
-containerchecksum 326c0c2327ec391a2e6caa5b7bed74af44be58df05b58dd2d2ed68ac96151282f63cc51dcfad7b84f3fa716b9df1d9fe97e27e4ebefe81d40a1e0ddf06be48e4
-doccontainersize 33756
-doccontainerchecksum 33dbdb3fc2ed1cb698b1b3a1826771475b27e33c19ab102b5f0f403f670abd10330dbdb4223d9f5b96cff001a14dc8d25ecc9a084a612b9db8a1cc6a70bec090
+containerchecksum 675a2176dc82d1f4762714e5338712d05e563550df56ac9c34b97c0909c9ad779d250ecfcbea2ff4b91ad7d9760a6fcfec2e80ecead6809bbd8aa12e62e043cd
+doccontainersize 33628
+doccontainerchecksum 96fac93da3fa972776f179d3a40b7a00235ccb10f9dfa704f3b96f9deb5fc6a80c9b8494bebde7c6628f951e3c1e005597a5aeb57279152bce4f07bfc69b5d73
docfiles size=15
texmf-dist/doc/aleph/base/ChangeLog
texmf-dist/doc/aleph/base/News
@@ -15883,138 +16029,138 @@ catalogue-topics engine omega
name aleph.aarch64-linux
category Package
-revision 66237
+revision 70276
shortdesc aarch64-linux files of aleph
-containersize 244480
-containerchecksum fe4724df475cfec10d4702c42d2bda2c3cb1fba2e52ff6b1a5f0d039baa27a57b1ce0b40fc724228f724741608fde327426e4a33de8677b894175b9771f2c6d7
+containersize 245120
+containerchecksum 25f41f039df9a2fe09b98c6a311e50e67131d00074df9bb0138c87e79215ef2bd120631051dafe5197e513a43dd00025d6483181ced5f9f040d519c11c7cdc40
binfiles arch=aarch64-linux size=162
bin/aarch64-linux/aleph
name aleph.amd64-freebsd
category Package
-revision 66084
+revision 70276
shortdesc amd64-freebsd files of aleph
-containersize 295852
-containerchecksum 5ea961820f29c8009d893d9ad53e62d3c5e25e2dd2a626347a453cd9ac5b87c8c3130718204a4eac4b42de59b3055afecda13207b8e3953fb8f40a9a0d5d9fe9
-binfiles arch=amd64-freebsd size=191
+containersize 220372
+containerchecksum 1c03c24b249d0c79a008c2480beeb097609d2dc52adbe2775029ed25b6c07c7dd195821f3b4bd817c87983c6591bd6e99e8602fa849a82c2dbf3ec758b79760e
+binfiles arch=amd64-freebsd size=187
bin/amd64-freebsd/aleph
name aleph.amd64-netbsd
category Package
-revision 66083
+revision 70286
shortdesc amd64-netbsd files of aleph
-containersize 220292
-containerchecksum 3227174f0a6121c7aec29276011dd84660de9a3aee2ae4dee5a47e025f4a9222f83cbdc1d614ddb5af86efd3b27ab59c768bbedf846e586789bc96d234843dd6
+containersize 220788
+containerchecksum cd0b3d21c620e94e21e7c8b49505e62c35356f80355244b1db275a19247c51cc04f937a6072c0cfcd0dc03bda2c1095e9485803348d0e5b05be5d2c7dd626c3c
binfiles arch=amd64-netbsd size=193
bin/amd64-netbsd/aleph
name aleph.armhf-linux
category Package
-revision 66237
+revision 70489
shortdesc armhf-linux files of aleph
-containersize 205912
-containerchecksum 480aac7501a18507dddc988463ab11e0b7c2829fe185559a6e46dae11c56f5be8e972d3518a2311f44bddbe265da2e7606ec74db08fe47c7cef5e02a9d487de3
+containersize 206328
+containerchecksum e3defe9e8ee43e1328422a002d2402c258912d137b2f6763a8672a329abd2065ea8c7edcd028571875fca2f52681cd6116bf7e9bddfb1bbe623e1ef875cee7cd
binfiles arch=armhf-linux size=123
bin/armhf-linux/aleph
name aleph.i386-freebsd
category Package
-revision 66084
+revision 70276
shortdesc i386-freebsd files of aleph
-containersize 222312
-containerchecksum edb22dc72cbcdfad783d676dcffadff063534a416aae1447db53fe1e9c01e77be6eef03c32022435eab6cb9c50e604d33a341be504d95985fdd792eff44dfacb
-binfiles arch=i386-freebsd size=171
+containersize 220340
+containerchecksum 38bf38995c3f59cca3aa393483a4300b75bec3a4d76b4d9dd71065730b7767d1acc6e3efc56222cea956fb9baf4bf2187b99ea0fb2918bd48d461e7d5878c01b
+binfiles arch=i386-freebsd size=187
bin/i386-freebsd/aleph
name aleph.i386-linux
category Package
-revision 66084
+revision 70276
shortdesc i386-linux files of aleph
-containersize 231180
-containerchecksum dc2a095df5a82cf00b67705fbf64d2ae2e8f98e4e2ef534d1a00da262261ae70af6c0938577d11308f6967ec9ae6af9e6f336e1a8f709e0acb66b1357dd4a3c9
-binfiles arch=i386-linux size=148
+containersize 231812
+containerchecksum 41aaf67f34cde23118182ae979e1752488050a0b924eee5c5b19486b035e3e0208295c73cc52ac8a8e12c99b5678296cc35f4adc85798f3f4491dc046080cac1
+binfiles arch=i386-linux size=149
bin/i386-linux/aleph
name aleph.i386-netbsd
category Package
-revision 66083
+revision 70286
shortdesc i386-netbsd files of aleph
-containersize 164856
-containerchecksum 6fd5a794a62b0de98db803e6fdb18e3e4db58aad611a482e18437547971d1cd449bcd85347088f297ad34accc6dab0f2cc5c991a2af5acce618b6b450e645faa
+containersize 165352
+containerchecksum cc154eeac67c041e14d8f451fd18e19661bad99e2f84acd2e442c7866f2318567ae86f87c3a2d85971092a9855cb8af2996a440aaf6073c3f3aecd16c185f751
binfiles arch=i386-netbsd size=169
bin/i386-netbsd/aleph
name aleph.i386-solaris
category Package
-revision 66145
+revision 70276
shortdesc i386-solaris files of aleph
-containersize 222228
-containerchecksum 2408c08935d2378e06d56904a114f96e1d463d91c9c49258bbc6d9b4cb25a79e0fc67e0989bbbd5785131e395f4bfdb77ac2c7a3838b4ae80a36fcaee00cf299
-binfiles arch=i386-solaris size=136
+containersize 225016
+containerchecksum a1d74111a78d28ecaa4c1f3fed3533892bb47facaaeebb2bce06ef4f8f55dfae6b743513b105d25c3033c82bdf5a7e5ff650426e8bbfb98d3a9ff2800c3bbd9e
+binfiles arch=i386-solaris size=138
bin/i386-solaris/aleph
name aleph.universal-darwin
category Package
-revision 66107
+revision 70274
shortdesc universal-darwin files of aleph
-containersize 564048
-containerchecksum 89419b82dc5f5f78ce5006f7aadc0e5204d7e491dc4862b840eeefa466be51cba05fe63c3a32836219791a87c26ad48426ec0fa35bfac3d77847570e7679a6d0
+containersize 566108
+containerchecksum 4cdf5ae86b7604498d86c84a4c4ff5e9b432887058826e1a2784c0622e2515f7582a31eb054e828036156788d205b3e4c04dc73a065b67151310b77e70dbbd76
binfiles arch=universal-darwin size=425
bin/universal-darwin/aleph
name aleph.windows
category Package
-revision 66043
+revision 70576
shortdesc windows files of aleph
-containersize 221640
-containerchecksum 1e03f4e637676c0ca987caef91a3c31c308261f47b05586bb76ba36ca29db8adfcb3d1f6e6f250dbe0dc1c2b2b337be2d0a0d2c4b7f026c20db14ae4115ef373
+containersize 221752
+containerchecksum 77f017e653425051d8cd87960becd2e9fe1402e7dc1eb0a67f50385ee13638d8067b43471f0d4a2d7ad522aa77845fb860be5c8f10dacad360c970588cafef89
binfiles arch=windows size=130
bin/windows/aleph.dll
bin/windows/aleph.exe
name aleph.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of aleph
-containersize 225364
-containerchecksum 138afc5f7855cda80508135e823426f328b6d6e35e9df672175bc3565bdd0e8d0c45729a65ceab074035887cef7f995bfb97dc5c4295833e9a00ca8bb205bbd6
+containersize 225520
+containerchecksum 196791071753c501d401017e83d3c57d31a62b047d3ce9371d674a96848b413662c31d2ca5f0d1aa30fffd56c07a3c01e07a2fbb1e374aeafddcd9e030a0d6b0
binfiles arch=x86_64-cygwin size=127
bin/x86_64-cygwin/aleph.exe
name aleph.x86_64-darwinlegacy
category Package
-revision 66084
+revision 70380
shortdesc x86_64-darwinlegacy files of aleph
-containersize 230592
-containerchecksum dd62a4b9cb31ba46ebef779c8dbea16c28c5eab66b0f15dac1aa6fa9aa6d4b785d47233285e5fe795730d5bac33bdad79ce808638f1b96892f77127ea3c269a2
+containersize 231204
+containerchecksum 805f2cf88b6e78966f70ee140929c2d7251053dbf0089161a3b3b1a58878b8e3ac2630bc555cdc2b26350b9485d255ef21b3dc0d597e5f82802c35a8f39a9dfb
binfiles arch=x86_64-darwinlegacy size=132
bin/x86_64-darwinlegacy/aleph
name aleph.x86_64-linux
category Package
-revision 66084
+revision 70276
shortdesc x86_64-linux files of aleph
-containersize 249996
-containerchecksum 271f4bfce170792c851fb305a5684272b7851daa2b9a88c031349d351bf9cba1ee4e36a5eb9a97717aba59a5a8df474be46f5288d21bf9e6f4b0e437aeb06b20
+containersize 250588
+containerchecksum 38ae5fd40da44b970e891174c8db59d4e5176ec5df7529663b16a1bdf98c009210a8c137d62f2dc62cba8d8ad528f7741a8c944ed8bfba82f609bbb658e849f7
binfiles arch=x86_64-linux size=138
bin/x86_64-linux/aleph
name aleph.x86_64-linuxmusl
category Package
-revision 66084
+revision 70276
shortdesc x86_64-linuxmusl files of aleph
-containersize 258724
-containerchecksum 797c165ac76da716ed4324f191c16a44f15c007ec8b22d98a9ef6da407b59bbe09fca0fa10652433acd10065405f6eb099f0cef7bbc4d8ec8e73cddd79a87d48
+containersize 259400
+containerchecksum bdc1f00ab79992ca743efdef8fa3119495a3aad8d6a4069c25bfed9a32c1ce78001354200b31b100d90e8a7c6b6c0c2e2c7fe09d666f2e333260128e5709d40a
binfiles arch=x86_64-linuxmusl size=146
bin/x86_64-linuxmusl/aleph
name aleph.x86_64-solaris
category Package
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of aleph
-containersize 264020
-containerchecksum 48d7d90b0fa2256c4f3a9f87dd14308a64fb4967dd55f6ff7552b6c6eecc72a83793864dc2a21010ac492ee598b69f436068232d080002695d515eef9dad7a07
-binfiles arch=x86_64-solaris size=150
+containersize 267552
+containerchecksum 3c573ebd3b19a8e3d6f2b9bdf35b5096ddef091c93b98021a8205bd04c4d82dc538b62d668b3a3214ebf707571aa1ecc871cb1bc9acd996df75185ee9ebe218f
+binfiles arch=x86_64-solaris size=153
bin/x86_64-solaris/aleph
name alertmessage
@@ -18703,7 +18849,7 @@ catalogue-version 2.14
name amstex
category Package
-revision 67930
+revision 70015
shortdesc American Mathematical Society plain TeX macros
longdesc AMS-TeX is a TeX macro package, originally written by Michael
longdesc Spivak for the American Mathematical Society (AMS) during
@@ -18732,10 +18878,10 @@ depend pdftex
depend plain
depend tex
execute AddFormat name=amstex engine=pdftex options="-translate-file=cp227.tcx *amstex.ini" fmttriggers=amsfonts,cm,hyphen-base,knuth-lib,plain
-containersize 38380
-containerchecksum 4f380f6c67b3c92d4be1b3a9ddec3b464e91ccc632762d6bf28f47dabf6e2e096471dd64804deb370349fe14ddffc3b4d37be195cb63f87e47a2345ebbdbd7fb
-doccontainersize 410788
-doccontainerchecksum 94b3f6ac9f2314cf5e3335ea517bd23e0c08ef10e5edcc032bc5907fb69b04525ad434eb896ef8d5b149033148da55703039d5481242c2f5bf791c1b32c85388
+containersize 38376
+containerchecksum 46855d571108da3b409cfe14ed58a8cf37b17ca26589378623cf309a4ed8766c1a4be999ebabf2d1ca459575919c5a5fd821fa839fd90065fc608b7289e1d64b
+doccontainersize 410728
+doccontainerchecksum 9d85b318459f5fd9b55bb88a898804762d8d09ee25db93123d566d9db7a1135c33cce392474660c960d3a1d2b19596a7612ef16b4bdf3fe341fa486eb996893a
docfiles size=203
texmf-dist/doc/amstex/base/README details="Readme"
texmf-dist/doc/amstex/base/amsguide.pdf details="User's guide and installation details"
@@ -21587,7 +21733,7 @@ catalogue-version 1.0
name arara
category Package
-revision 69878
+revision 69831
shortdesc Automation of LaTeX compilation
longdesc Arara is comparable with other well-known compilation tools
longdesc like latexmk and rubber. The key difference is that arara
@@ -21595,10 +21741,10 @@ longdesc determines its actions from metadata in the source code, rather
longdesc than relying on indirect resources, such as log file analysis.
longdesc Arara requires a Java virtual machine.
depend arara.ARCH
-containersize 15171176
-containerchecksum c18444518e8cb66b44e49cdcd944895b0667d934460d0146940c87813e0c9a372fb273882ea1de78d4fc869d69ffb2ec1a41d863cd977891ce7937134464df73
-doccontainersize 4998844
-doccontainerchecksum 372e1053717395e960e2447622d262ee2b07594823f39fb845f5640d730a3590441aa5dd509e1f61be00abaa6df3ad20e953c66b7c27829d25b9ac68d0aa4423
+containersize 15171016
+containerchecksum e2b68c1b73cb6770c27207d3c6dd6e5e91e1674b04194ded8afa9843d3685922e358550b4b6aad6590ebc7fcad0599c1b074d1cbf866ff1b6b3fe56c9ed03191
+doccontainersize 5000208
+doccontainerchecksum 47c5eaf0c987856ff99d4e391c85ad3ec076e357f2c2dc1b579ee7bb48625a738761e3b2aa2a4e21673ea198e2318c5b4f165024e0a7238e005484ba8d7bbeac
docfiles size=1994
texmf-dist/doc/man/man1/arara.1
texmf-dist/doc/man/man1/arara.man1.pdf
@@ -21623,8 +21769,8 @@ docfiles size=1994
texmf-dist/doc/support/arara/resources/gitlab-icon.svg
texmf-dist/doc/support/arara/resources/manual.css
texmf-dist/doc/support/arara/resources/version.txt
-srccontainersize 116424
-srccontainerchecksum 0cd47d01d950c9ab685264027ae92c978a5539dc67b937d25e36a60e2a1ae50760f1da73be7e39132d74e5e4ea751c0a7ad9e9e00097bdfe270d235d87b64502
+srccontainersize 116432
+srccontainerchecksum 25d18881c724a38e3954b76bd06b388c1c004feffa8cde20a1ab540c4f18f147b57c2666d7b20fa59e8f37c7437d472a67fc4b5ece90af67510c20fa750a868f
srcfiles size=40
texmf-dist/source/support/arara/arara-7.1.3-src.zip
runfiles size=4156
@@ -25569,7 +25715,7 @@ catalogue-version 0.1c
name asymptote
category TLCore
-revision 70583
+revision 70502
shortdesc 2D and 3D TeX-Aware Vector Graphics Language
longdesc Asymptote is a powerful descriptive vector graphics language
longdesc for technical drawing, inspired by MetaPost but with an
@@ -25577,11 +25723,11 @@ longdesc improved C++-like syntax. Asymptote provides for figures the
longdesc same high-quality level of typesetting that LaTeX does for
longdesc scientific text.
depend asymptote.ARCH
-containersize 380096
-containerchecksum 8c147b714c3e57c569d9d93815ab6ebbabbd9be3a24b0dab724c32075d51e42f49f326de2babdfa6894056948e5904ed1b86cef88742d000e8b4e6244be868f9
-doccontainersize 2364552
-doccontainerchecksum a81d20288e4c7b30c50fc32e5e28a30b5fa81ad01564c5935489c2b8e4749bc13871d7551927345452315d18f81102232ba35dc3de2a7415bbfb14d7fff12d83
-docfiles size=1309
+containersize 380428
+containerchecksum 099ce81cfa03a825838c7f5c185a543b28a4574b33377dfe6c50200a5cd1d0ef16fad38d2f235c7cab972d7e9c274a93edefd73b0f3f7676006ce0bbaa131a80
+doccontainersize 2345048
+doccontainerchecksum 8ce030a455a07bcb2cf4d46aa8462f38d47e99588d6b03d11a60badc121dbf7d4c8d6933ebd27c7267cc325edb45d9df9049396668cbc862b152a394666c8174
+docfiles size=1308
texmf-dist/doc/asymptote/CAD.pdf details="Using Asymptote for 2D CAD"
texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf
texmf-dist/doc/asymptote/asy-latex.pdf
@@ -25925,7 +26071,7 @@ docfiles size=1309
texmf-dist/doc/man/man1/asy.man1.pdf
texmf-dist/doc/man/man1/xasy.1
texmf-dist/doc/man/man1/xasy.man1.pdf
-runfiles size=664
+runfiles size=666
texmf-dist/asymptote/CAD.asy
texmf-dist/asymptote/GUI/ContextWindow.py
texmf-dist/asymptote/GUI/CustMatTransform.py
@@ -26043,6 +26189,7 @@ runfiles size=664
texmf-dist/asymptote/labelpath3.asy
texmf-dist/asymptote/lmfit.asy
texmf-dist/asymptote/map.asy
+ texmf-dist/asymptote/mapArray.asy
texmf-dist/asymptote/markers.asy
texmf-dist/asymptote/math.asy
texmf-dist/asymptote/metapost.asy
@@ -26311,21 +26458,21 @@ catalogue-topics chinese-doc
name asymptote.aarch64-linux
category TLCore
-revision 66665
+revision 70572
shortdesc aarch64-linux files of asymptote
-containersize 1107144
-containerchecksum 18dc297680fda140e8303c08b8d89118fb3b1d6561ed3091967966cf0c6a92b0c60ed0783f006e3aa7bd13fa259d26efa24c05cde3bec185e13cf53f6ff6f51d
-binfiles arch=aarch64-linux size=975
+containersize 989500
+containerchecksum a4a5e5aa8f5adf974f68ef0b99b2ea36e3b9a88ec53e8a946bd4b60f938ceaf8b14a94589899a14e3ab3907a087ab12ecddcd208ace45811111ef2f2ba47f6d8
+binfiles arch=aarch64-linux size=860
bin/aarch64-linux/asy
bin/aarch64-linux/xasy
name asymptote.amd64-freebsd
category TLCore
-revision 66574
+revision 70569
shortdesc amd64-freebsd files of asymptote
-containersize 1720396
-containerchecksum 44eda9c4609007de74b037a245af1f71cea213d5a1b6e7cb43cec9536a139c2417482c6f8f6ba073382d858127b29bd304bb16f214442c01e22bd5f0773acb02
-binfiles arch=amd64-freebsd size=1401
+containersize 1482700
+containerchecksum 7b8a42eaaf7edea1a5810ac98d591956e8da521b164d94fbf3a6fce0ca309f67b29a9c8a7f8643e4ec0929b333b0fcccc8041f2762ef758ea4eebb276a78c8dd
+binfiles arch=amd64-freebsd size=1715
bin/amd64-freebsd/asy
bin/amd64-freebsd/xasy
@@ -26338,110 +26485,94 @@ containerchecksum 51fa1df2ad99846fe953d45b317b62c3b86f60fb4c8d464d4d8c5f377c0195
binfiles arch=amd64-netbsd size=1
bin/amd64-netbsd/xasy
-name asymptote.armhf-linux
-category TLCore
-revision 62706
-shortdesc armhf-linux files of asymptote
-containersize 1034648
-containerchecksum 04c4d83b069c9ba82829e85a33189fa27cf9434286e08bbaa96d8e5fc7787e594e9db806be1f1af651fed1bfd90df256a8f338467f8b80a5913b36ed67d278f9
-binfiles arch=armhf-linux size=868
- bin/armhf-linux/asy
- bin/armhf-linux/xasy
-
name asymptote.i386-freebsd
category TLCore
-revision 66575
+revision 70569
shortdesc i386-freebsd files of asymptote
-containersize 1600020
-containerchecksum c01c8f234511c3e907604cbf0a442f728889c67dcc0b7e8319e41487919a859b92b44ad807f9da78d9a9d5b7e28aedffc1b1f765ea8554e507ab83080f734f7b
-binfiles arch=i386-freebsd size=1714
+containersize 1482440
+containerchecksum c244146371e2241d69717caacfee89dc960f4b1ee171844584f44f4adf7e2644833bfdf487cf0896f7c399af9cba969669a392800436015b511e3f6cb90bb1c0
+binfiles arch=i386-freebsd size=1715
bin/i386-freebsd/asy
bin/i386-freebsd/xasy
name asymptote.i386-linux
category TLCore
-revision 66003
+revision 70569
shortdesc i386-linux files of asymptote
-containersize 1728852
-containerchecksum 3900bf315ed06c8bca126e81f1cc2cddeb5cc58e88f2323013639ca5db0eae329de56552a7a7ef7c256171d36d366181c23d845d13bab2924ede78d27a9d3687
-binfiles arch=i386-linux size=1528
+containersize 1743144
+containerchecksum 833aa808c3276d20e9f654c2819360c669143ffb280140b70e0ce573ec52fb607e1a11d526659af7b23ce5ddfa7bace7a66bd9467b82b504db438ebd36816334
+binfiles arch=i386-linux size=1538
bin/i386-linux/asy
bin/i386-linux/xasy
name asymptote.i386-solaris
category TLCore
-revision 62823
+revision 70582
shortdesc i386-solaris files of asymptote
-containersize 1428832
-containerchecksum c2ad867eb097e36fa3e79588b915250b488c7297c9c3e4984273ef482b552e2f9572238c80f292209e77c984c161cb1d082c3c57206db16217631432f8a46d57
-binfiles arch=i386-solaris size=1366
+containersize 1443008
+containerchecksum f358a9b0774637c5a57fa14ae1b136d793836fe17e6dabbd9836ac951b223ad493dd25c1daf102e48125da1e5de24b2a641afcda4cef9dae08395aeb3461eea4
+binfiles arch=i386-solaris size=1375
bin/i386-solaris/asy
bin/i386-solaris/xasy
name asymptote.universal-darwin
category TLCore
-revision 66529
+revision 70570
shortdesc universal-darwin files of asymptote
-containersize 5478100
-containerchecksum dfcd11484a502d688747d2c7eeda8b4534364d913ff326343fd09ce2367d2572b56c7c84af63f83d53d7b11b0cd11cdcf244f3a0ced0339b3773bc000f1e1061
-binfiles arch=universal-darwin size=10732
+containersize 5583936
+containerchecksum edff4fc714c5793d6480ed59d26e1a443b8aa41f1819e9bf2e8824df042f7e8d9bae684db11dc1ea716b3fd38d19bbd8a7269101f88ba7f50a08c33e1980d904
+binfiles arch=universal-darwin size=10862
bin/universal-darwin/asy
bin/universal-darwin/xasy
name asymptote.windows
category TLCore
-revision 65920
+revision 70502
shortdesc windows files of asymptote
-containersize 7544148
-containerchecksum b8be2612ea21fe663e774b1bbd2b8f4c27edbddd3aeb32e3f7e72cee295367bf9d1cc4c3f1ad92ac3aa23754fa786e9e469bb7be4ff1c772ee5ccb1d2a658e23
-binfiles arch=windows size=6581
+containersize 3444488
+containerchecksum 37bec1b10de4f103379c19c46b869ad6f582530ff91e7545c8bd4ead76c6b127c3eeda8a4df6a5f453e32e2c75670f70aa7af7fa32d2d6dbff6bac595f14f3c9
+binfiles arch=windows size=2805
bin/windows/asy.exe
- tlpkg/asymptote/asy.exe
- tlpkg/asymptote/cygwin1.dll
- tlpkg/asymptote/freeglut.dll
- tlpkg/asymptote/glu32.dll
- tlpkg/asymptote/opengl32.dll
tlpkg/asymptote64/asy.exe
tlpkg/asymptote64/cygwin1.dll
- tlpkg/asymptote64/freeglut.dll
name asymptote.x86_64-cygwin
category TLCore
-revision 65963
+revision 70539
shortdesc x86_64-cygwin files of asymptote
-containersize 1239116
-containerchecksum d03466607311632ffd4aab1729416be67ca959b1bf647f748b3f617b73db8ad3b0e2e258d903ce934d225724e517dbfc2df8a1381b01e8d1155b25c52b7b7140
-binfiles arch=x86_64-cygwin size=1071
+containersize 1251084
+containerchecksum 399adf2242a1608b6d256a9bd523bcdeb9da53ef56935d55224dae0bb24ae1c22a56a6bdf53fcdb889037159d02d39e1ee885dfe8070b79ffb30c48d9f25e612
+binfiles arch=x86_64-cygwin size=1079
bin/x86_64-cygwin/asy.exe
bin/x86_64-cygwin/xasy
name asymptote.x86_64-darwinlegacy
category TLCore
-revision 62849
+revision 70574
shortdesc x86_64-darwinlegacy files of asymptote
-containersize 2020168
-containerchecksum fe37accc3983975fe071235a20dd748c6bcd145bdf2375722e559390a8c9bd7a0d8100d736e29fba41b6251a93c2844b0411917c454a284cc14e8504c18086df
-binfiles arch=x86_64-darwinlegacy size=1890
+containersize 2461040
+containerchecksum bc15a12163f565f834cf175fbe0b3c58ffdf10e0c7074cc435ab3c67147c5fc5fb4e51f55899a0e4a209a6729176d8e68f261fd84b64a51fc4fd9331b558ff19
+binfiles arch=x86_64-darwinlegacy size=3379
bin/x86_64-darwinlegacy/asy
bin/x86_64-darwinlegacy/xasy
name asymptote.x86_64-linux
category TLCore
-revision 66003
+revision 70569
shortdesc x86_64-linux files of asymptote
-containersize 1431512
-containerchecksum 61e35d63e20498bb51b7ac1ac2027cc66403a3a789d1c248d25bec0e3cb1165c218b89671fb305779b0f641688d36e1a1894308653593ec40cc511638cb5f273
-binfiles arch=x86_64-linux size=1208
+containersize 1681076
+containerchecksum b0d38bfec6f7247897b340ffd65bbcf46fa9d01641ed465d3a8dc58176c8dcc047d8cb924ff333bebeb8305e39439c7695ecf3d7b558a8d6fa3d166935af4920
+binfiles arch=x86_64-linux size=1451
bin/x86_64-linux/asy
bin/x86_64-linux/xasy
name asymptote.x86_64-solaris
category TLCore
-revision 62823
+revision 70582
shortdesc x86_64-solaris files of asymptote
-containersize 1461968
-containerchecksum e8feea4ab4d170df74d3648da8c4ad39de5fb0fda8ec8a69ff4e22e2e4c4804fd49ce392831e8340c673fa448305f0e254cff3137a81b44e7bf186ec0e9fe027
-binfiles arch=x86_64-solaris size=1383
+containersize 1478240
+containerchecksum 55525a03d90c39152a5761da7fa42f21200b4b7c299764923ecccf48f9ae7b9df767da78984c7c80bd6cf290cbf5c67bce9fbe8b29b0bfcc73dbc2324818e039
+binfiles arch=x86_64-solaris size=1393
bin/x86_64-solaris/asy
bin/x86_64-solaris/xasy
@@ -27845,7 +27976,7 @@ catalogue-topics luatex
name autosp
category Package
-revision 58211
+revision 69814
shortdesc A Preprocessor that generates note-spacing commands for MusiXTeX scores
longdesc This program simplifies the creation of MusiXTeX scores by
longdesc converting (non-standard) commands of the form \anotes ... \en
@@ -27857,10 +27988,10 @@ longdesc note-spacing changes within the part or spacing requirements of
longdesc other parts. For example, \anotes\qa J\qa K&\ca l\qa m\ca n\en
longdesc generates \Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en .
depend autosp.ARCH
-containersize 696
-containerchecksum 67587e8b456257be9b924a5bb8c8f4def22fa9aa9678663975ef74e346dc186ae7848a9dc043733cf1244f254750ef4f34204575f62195d4b966ed8336781bce
-doccontainersize 282136
-doccontainerchecksum 2905669b9e2b61749cb7b1eaa02be889c4e8d8adbd78b126e7ee6d894f24f623c888a24abac1d163f3332c5cfa9cd1f64d0de95200350b88a7f47faeacb841a6
+containersize 692
+containerchecksum 6ab6466ec011bf518ce35f70535279394ec89931aa37f0ebb3c8846bd421610d7ca969825c30ea6e9f29f1576972f7da3374ceef0322b88dd0d2ab073dc36ba7
+doccontainersize 288724
+doccontainerchecksum b345d9f1779d87ca901235b8f5601aec11e5cc6eefab3646510a62bc73f81c99afb36d8a86edc099baa90882e86e8f6427a37e9c8d65a456e849253d2374f994
docfiles size=106
texmf-dist/doc/generic/autosp/README details="Readme"
texmf-dist/doc/generic/autosp/barsant2.aspc
@@ -27886,151 +28017,151 @@ catalogue-topics music
name autosp.aarch64-linux
category Package
-revision 65927
+revision 69782
shortdesc aarch64-linux files of autosp
-containersize 21032
-containerchecksum 058b9b6265aa6a9611de8659baef01322a317c210686bdceeb7069bcf147ff40402463d5933c22c31236c554d8408a6eed05f7c197174070c26572ae22c657e6
+containersize 21104
+containerchecksum e96a3b56010bd0183975a829bbd11ea8237710ae4be08d0125b242bb99f67cf5f48503d2defaab8a3a13f448a63eea87d0b9f020d6ab528c6b6101da14e7c7bb
binfiles arch=aarch64-linux size=17
bin/aarch64-linux/autosp
bin/aarch64-linux/tex2aspc
name autosp.amd64-freebsd
category Package
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of autosp
-containersize 21680
-containerchecksum 5b9165da422e7d0b920977b95daf85f1bd00d1cc6e8c495baf58b21d19e86b8242f35c0458e9f7c3fda9ecb8eb2349e9449401a72ab82f66f4cca41f326068dc
-binfiles arch=amd64-freebsd size=15
+containersize 18680
+containerchecksum a39715c273a8fcb65e68464f56f3b422b20b45cf9eca37fa3867d7a8cc01b6aab7218817b156305a1b71830106667bfb1148a50831bafa800ec67b7f634993ba
+binfiles arch=amd64-freebsd size=16
bin/amd64-freebsd/autosp
bin/amd64-freebsd/tex2aspc
name autosp.amd64-netbsd
category Package
-revision 65923
+revision 69797
shortdesc amd64-netbsd files of autosp
-containersize 18372
-containerchecksum 76e81dd7e2772ce477e3d3358c25f2087c4c13d9deb2c6cb4b27a349838e7998a022df3f5bc31e7cb90e754d7ec4d22024bad8d406773729acfd89a27421b962
+containersize 18476
+containerchecksum ab24b1a5551f293e73b5d2e5c818008aaa79cfbc3e6e6e14c00d4c67f47a0c6eb11927077bdb856e439af10968b68c12b7abfc21d0b9d4dc97167c382a1ad551
binfiles arch=amd64-netbsd size=16
bin/amd64-netbsd/autosp
bin/amd64-netbsd/tex2aspc
name autosp.armhf-linux
category Package
-revision 63092
+revision 70489
shortdesc armhf-linux files of autosp
-containersize 18244
-containerchecksum f02ab816e9ee0aaf693f999cb6a946079a23b99c6d7bedfe711fd9914064dabc408d57b0b650e7624eb08270d740b8358daec1e68c122f97f6a528f9584c907e
-binfiles arch=armhf-linux size=13
+containersize 18332
+containerchecksum f307f48f545f1798dbeaed81bc3e251d2c656a798a57b8363ca23c474ad1ed4fea78ec57776d32f7b01911029f9d8064e9230600938011f8f7c52605e3d0066b
+binfiles arch=armhf-linux size=14
bin/armhf-linux/autosp
bin/armhf-linux/tex2aspc
name autosp.i386-freebsd
category Package
-revision 62206
+revision 69782
shortdesc i386-freebsd files of autosp
-containersize 19280
-containerchecksum fcf84cc59cd8b2b444a9b3f8661e26e5ea20e14125e4fea8b7b8c5a8ec4da2c4db2a8ce4b4977cf87b244f9720bf65fb42a6f45e9eebce3a410948d441048285
-binfiles arch=i386-freebsd size=13
+containersize 18704
+containerchecksum beb404664b97dd92534166947f1734645a51d998ff6fc9ddb8ae1ed00f1d86a709fdc27948a38c755c089736f1cc8739e4f837c3f6a692679adfe1a42b1daa2f
+binfiles arch=i386-freebsd size=16
bin/i386-freebsd/autosp
bin/i386-freebsd/tex2aspc
name autosp.i386-linux
category Package
-revision 62210
+revision 69782
shortdesc i386-linux files of autosp
-containersize 20500
-containerchecksum 5d617aeaac826dec04d9c4dfe4f6bda72d52888d485fed7b30583b295d5117bf649bed61f57a8046d4392d616592e3eba88341613047703ae8c5cc2a407375d2
-binfiles arch=i386-linux size=16
+containersize 20628
+containerchecksum 5fff7c1dc4bee8475ff902485b0375c63b36d95d5af11d969f445c27bf9d8e6019ec3502d75db9fa1d70140486c938f1efac7eb83c5ac4657f874994cde10a46
+binfiles arch=i386-linux size=17
bin/i386-linux/autosp
bin/i386-linux/tex2aspc
name autosp.i386-netbsd
category Package
-revision 65923
+revision 69797
shortdesc i386-netbsd files of autosp
-containersize 17048
-containerchecksum ac317da7448400c8a1764ccb86a7538d42963e829a60dc822dace79b1b1530535de333d5eeeea974553f84f08302edcf8ce1f1d39e05e4cbe9219e203fc3d061
+containersize 17140
+containerchecksum e3cb4783e09909e95de964e4a2109001a5bb5b682163c7e819a3520bcbac22a19efac25e4ae6b8cb70b751d297624b96c3b0bb7d75e880705581f5c321ca30e1
binfiles arch=i386-netbsd size=16
bin/i386-netbsd/autosp
bin/i386-netbsd/tex2aspc
name autosp.i386-solaris
category Package
-revision 57938
+revision 69782
shortdesc i386-solaris files of autosp
-containersize 20372
-containerchecksum 3ae82cfcd517a59879ac5dc3748b7c8290fd96150c53cad5cf57c0a836b190ccb6fab0a77f95f0114df706b8923d3a4c3120f540efa7c06c8d790a8e64946f1f
+containersize 20460
+containerchecksum f2856aeb58fd36fa4b891c1fb6d0491121a959c90660ee38405db3b0cff8f6e0a5e96de2619b5e0fd2e969537c189c25319479fb4cf9e9ea934b33917ec4ebeb
binfiles arch=i386-solaris size=14
bin/i386-solaris/autosp
bin/i386-solaris/tex2aspc
name autosp.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of autosp
-containersize 47020
-containerchecksum 967d8fecdf402781829d69a7b66494d53b0185ae52356c96bdc3dde88dcc87ca1cde08823b94c6ad3c96339624d0a0ea59dec157d14ab0267e1ad9a757f48656
+containersize 47284
+containerchecksum 0b870380d91ebdcec3c1140bfabb7601442b39306b0f4fcad560c80f45ca9da79234bedbf259aada34f0dd67ba52fe32aa880ff3ae5e48594396fa3f21fad149
binfiles arch=universal-darwin size=79
bin/universal-darwin/autosp
bin/universal-darwin/tex2aspc
name autosp.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of autosp
-containersize 20864
-containerchecksum 9288a7ea666a5ab11cd76a0ca07937ce5abf1851028694c7699f910aa0d51e953e58c0ecdb0a4a5d70119a93d4ca9ebe3c51bbcbae81427eea790c1b32380d75
+containersize 20940
+containerchecksum 5491f25529e817da37e3cfef58653c7e697a84ba11ffacd5d9cfdb8a252b8031e903122e83a0f48ced8be442404558bddd848944dd6446d8c3b45d98e17ff674
binfiles arch=windows size=15
bin/windows/autosp.exe
bin/windows/tex2aspc.exe
name autosp.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of autosp
-containersize 21068
-containerchecksum af134a4a59e8e1e468bc62115260b94a18f348a7039ae49fa159bd5b390abe373fc655db3e2ad478b1678fabf81b63e898ba82add9d81b84a2ecb7ab660bd778
+containersize 21088
+containerchecksum 9edc23aa3c657c9b330d85470eb4e97b268c6f179758159a93b937642d71adddb1e0b57d6e5fbcea1e057a09f7d68cb4c8eed7e21d589b4c057c7b67180493cb
binfiles arch=x86_64-cygwin size=16
bin/x86_64-cygwin/autosp.exe
bin/x86_64-cygwin/tex2aspc.exe
name autosp.x86_64-darwinlegacy
category Package
-revision 58231
+revision 69782
shortdesc x86_64-darwinlegacy files of autosp
-containersize 19792
-containerchecksum a0438fdafa3ea75a1e7c1c200a280af7c43e9adc074137e4f8aad8ae70083925d6a17737c463edcd8f4cdfc530ebddc4b5d3e2682160796ea7a634eb33dd4904
+containersize 19992
+containerchecksum 7ca96bc0bb33f7785697dc4fe75c83ecf5a28ae3218c6c04971eb9251f3a2723278b991d3ddd23370991cd09edf8efbba077aedba5246a23349385e7eb602da3
binfiles arch=x86_64-darwinlegacy size=15
bin/x86_64-darwinlegacy/autosp
bin/x86_64-darwinlegacy/tex2aspc
name autosp.x86_64-linux
category Package
-revision 62187
+revision 69782
shortdesc x86_64-linux files of autosp
-containersize 19972
-containerchecksum afff7047fa0686cd6e27e9c62ac409cc1894426fe01a695807d54214fdb64484cc3f9be3d4202979b7c6ad7c137d30d17c04ff7bcdbeeeb3a12b789dd5a3d206
+containersize 20060
+containerchecksum 9f1a515e87e20e8fd06013f18e975cdc15c88c179cb4166d47d9ee8a1b0f43fce819eee75d320728b73ee7b80b81c294835260902a0f9e03a4efd6492cb24278
binfiles arch=x86_64-linux size=15
bin/x86_64-linux/autosp
bin/x86_64-linux/tex2aspc
name autosp.x86_64-linuxmusl
category Package
-revision 62210
+revision 69784
shortdesc x86_64-linuxmusl files of autosp
-containersize 20636
-containerchecksum 4913384c3350b15bd787020d2c40aec531da4b25c1be3192730322d668093504f92575e5e7d67d598e02ff5108c88d4ac2b912eb760bf6981b27063bff808d30
+containersize 20680
+containerchecksum 60a1eb8a3797250642f2656ac522027a3ccb48f929f4a6e6a38b5ad4bc868c4e1ded71e3b51efa3dcf83a9618a310bc7b9e16cfc8e9a83ee33ab6dba49f3dd22
binfiles arch=x86_64-linuxmusl size=15
bin/x86_64-linuxmusl/autosp
bin/x86_64-linuxmusl/tex2aspc
name autosp.x86_64-solaris
category Package
-revision 57938
+revision 69782
shortdesc x86_64-solaris files of autosp
-containersize 21748
-containerchecksum ecd2323ca91dd15df872b351a2c28e73c03adcb62059d56f06f92241396cf410765021161baca120352744dbd3a53eb4992067b667dc38be6919c7429773d419
-binfiles arch=x86_64-solaris size=15
+containersize 22308
+containerchecksum ac29e1663725b4a3423ebd9d2082e001c5d14d9689d2e1c3bbc57953347978260019e61359c986470523055178cf12f7dddb8e69ef947a90bf1737be8b39b6dd
+binfiles arch=x86_64-solaris size=16
bin/x86_64-solaris/autosp
bin/x86_64-solaris/tex2aspc
@@ -28482,10 +28613,10 @@ binfiles arch=aarch64-linux size=15
name axodraw2.amd64-freebsd
category Package
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of axodraw2
-containersize 28800
-containerchecksum 8361a17acc90816cfeecc0fceb4ab7e862ef6229a1944d9707ba7a41c0b3985cce43e2beb9f1ab734a97b3d8ee680ec41e4aa9e372ec5414c48eb8e4fe3ffadb
+containersize 20184
+containerchecksum 53c230f069d21202d80a72c9b4d663db75e015cf7fb1e06955b6de4c1a3424dcd8c4c76504cb3c1a8749ae8af6af1133039e7e826ecc71ae98f1bb9f97b43fc8
binfiles arch=amd64-freebsd size=20
bin/amd64-freebsd/axohelp
@@ -28500,28 +28631,28 @@ binfiles arch=amd64-netbsd size=19
name axodraw2.armhf-linux
category Package
-revision 63092
+revision 70489
shortdesc armhf-linux files of axodraw2
-containersize 17684
-containerchecksum 59054805aaf5151c03795f6ed3433c477d8f3f07f60d09b00e202a0e28a718f600fbcb3c1c357278350e2189079640f90aeefbbec691bcb40244700de4e80458
+containersize 17688
+containerchecksum 72b99fb78aefd09c01fa9444b2751ed57968f9cde1bed8ac06c4619aa5da75b4faf09308d00640b62789fd9ad8d1cfeb5395ac501d58a0f8927c1b0ab031cf0d
binfiles arch=armhf-linux size=11
bin/armhf-linux/axohelp
name axodraw2.i386-freebsd
category Package
-revision 62206
+revision 69782
shortdesc i386-freebsd files of axodraw2
-containersize 23500
-containerchecksum 696a899f6f35ebc8b0faad84cb89ee235cc5d5a4d5992960d9feef67dbcf9bcf7a13747912754880f77f9d66268990a0990400279ab9beeeaeee87d927263834
+containersize 20188
+containerchecksum 0c4c2018a9099d673d4362bcbdfed07d861f09c2b7c0aa4a72e52f536370f36c5396861c7956a7686427c4273570f8a5d13112a99b5bc50548744cea0381f0c7
binfiles arch=i386-freebsd size=20
bin/i386-freebsd/axohelp
name axodraw2.i386-linux
category Package
-revision 62210
+revision 69782
shortdesc i386-linux files of axodraw2
-containersize 23596
-containerchecksum deff2dffa5a1e8db3fde20739af1f89eecf0bec629e62293cf9daee8e00e94602ef4a73cf2eb39289b76a917a8ee98c29c4158eb1e2b9ffc5645f87f081b800b
+containersize 23592
+containerchecksum f3a4eabb09ead142d50c9893286b8b795a66b3453c1530495d4dd5c136594aaa518739a858b1ae3fcb1a50bcdafbc63f8d7e7662fa50e5c3158f59f9b09347c1
binfiles arch=i386-linux size=17
bin/i386-linux/axohelp
@@ -28536,19 +28667,19 @@ binfiles arch=i386-netbsd size=16
name axodraw2.i386-solaris
category Package
-revision 58388
+revision 69782
shortdesc i386-solaris files of axodraw2
-containersize 20772
-containerchecksum 0fb855ffa0a911cef130311e08a47e5afb8813e07cb0b3c789b2fc6df64de5f9f6e5d2753dbd8593911b3d4bb1244c409a6ffe6cbfb134f18cb030b0530aaf7f
+containersize 20852
+containerchecksum fa38d2fe90c04ae3c3e1ec0905e01338582a9c3017848490f020ecdfb777884ce64c95603857f691f6e79f98364dc1b76d95d65920786fa34c1820ccb947adad
binfiles arch=i386-solaris size=14
bin/i386-solaris/axohelp
name axodraw2.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of axodraw2
-containersize 57212
-containerchecksum 1a1a7b9e85c9f200ed203a17316d291d0bc5504f900111a0b7aa89b65a5e082f582bdaa3e70786a736cadd43bff4c25634d25a061a2b5c0d8a85fa51ac48cc66
+containersize 57260
+containerchecksum daa72f16ed5ac20e91c5d1c49da79ca4d9cdd4ccb6b08da9b48016b7af95f9d32f5a98f805699e41c4b79a2e98657292f2153913594c1bc8b44d2123b93c7f7c
binfiles arch=universal-darwin size=62
bin/universal-darwin/axohelp
@@ -28563,10 +28694,10 @@ binfiles arch=windows size=54
name axodraw2.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of axodraw2
-containersize 28604
-containerchecksum 31b29a76eb9c70c2e10f12aed4d791802adf64c61a995fe25e3e1ead1e0a741fb3d85824b0ab7cae94a1d28f59aad866a7d0c29e405e738ee58a681f7363eb76
+containersize 28540
+containerchecksum f694cc191658d1946609bbdae112f68dd9dc182d04022e13283858725a59fb047727df5009536e825e9d6147d37339da132fc568d9d7dc2b9f758e16e670e035
binfiles arch=x86_64-cygwin size=20
bin/x86_64-cygwin/axohelp.exe
@@ -28581,10 +28712,10 @@ binfiles arch=x86_64-darwinlegacy size=14
name axodraw2.x86_64-linux
category Package
-revision 62187
+revision 69782
shortdesc x86_64-linux files of axodraw2
-containersize 24260
-containerchecksum 2b6b1f23b8771515b1f2caac44aec3c75cd8119ecb82f90fce10a388283ad98ab326a793448c779ff07562e834060e702095574422de9c828a8e0bc32c527c1b
+containersize 24240
+containerchecksum 0b0d391056f78bedd87709d2f6eebc9139c49371f73fcc10a64b3abe5bd681c71984340ec0089da7e70f6ae1f908f30049af9c896dfb2d68acf19e8a9867bcfd
binfiles arch=x86_64-linux size=17
bin/x86_64-linux/axohelp
@@ -28599,10 +28730,10 @@ binfiles arch=x86_64-linuxmusl size=16
name axodraw2.x86_64-solaris
category Package
-revision 58388
+revision 69782
shortdesc x86_64-solaris files of axodraw2
-containersize 25612
-containerchecksum 1579603c0180c1a673403ed7a8411738fe5d21439889491e4c6fbbae8d0c247b41accf38c39dd6417fe84feb4b73cd87ad2cfc5f4492ce58677e28e711f461dd
+containersize 25952
+containerchecksum 677f750c048f20b7b07e80a363fb4df9e11fb2536d84d1d31987e39870ee4681f79c9adcf978755734bf4a0a49ce338e4280ea31cf74265c9b3da144af41689a
binfiles arch=x86_64-solaris size=17
bin/x86_64-solaris/axohelp
@@ -30080,23 +30211,23 @@ catalogue-version 1.3s
name babel-french
category Package
-revision 70261
+revision 70254
shortdesc Babel contributed support for French
relocated 1
longdesc The package, formerly known as frenchb, establishes French
longdesc conventions in a document (or a subset of the conventions, if
longdesc French is not the main language of the document).
-containersize 15772
-containerchecksum 5a0ad21862209980813cf8b6a89884ca977bbd2036b3e9c6217d2ae0f69f4c0e9567bf07afa4c9e75cdc6959b3169f270de38c9307c531a44b5ba07707c2e1e0
-doccontainersize 519476
-doccontainerchecksum 2af045bb96ec288d4c314da7a3ffe82c3bb3e82ca0919a272fc43cfd5946a379f951c4a019c93f0af07da647c852f25af2f026310a435a82c0888f96c84cc263
+containersize 15768
+containerchecksum 31cbe61104877dd2c0bd47e06f96462174534714490285faa981ac2181a8377331a333e14a8d7de86d0aa722615090d2694442c64dfe42feb448606c683812a2
+doccontainersize 519480
+doccontainerchecksum 3eca89ee85e6e7ecfee3f145294c46b1af7e5cf3e37b4c727acaf1bd001724b9bbafe011022634aa59c64f124344d0a004e62a77e90dc821ee7f679712c669c3
docfiles size=163
RELOC/doc/generic/babel-french/README.md details="Readme"
RELOC/doc/generic/babel-french/frenchb-doc.pdf details="User manual" language="fr"
RELOC/doc/generic/babel-french/frenchb-doc.tex
RELOC/doc/generic/babel-french/frenchb.pdf details="Package documentation"
-srccontainersize 56168
-srccontainerchecksum a03e25b8f02430e117584880e2ca29802459a98dde97b380b71ffd4d2eb4c6db92cff33aea9c2bced5823fb5ec4d06b5ea428c99da85fadf9f16f3a3e5793c8c
+srccontainersize 56184
+srccontainerchecksum 3b34d3a0209e8dbaeef6ae6041f3ca1143bba7080da66e99fce96a1eacff514c66c461abf0f7fce391162d2c2abb5186d354481274c9bab8555217a01943338f
srcfiles size=60
RELOC/source/generic/babel-french/frenchb.dtx
runfiles size=24
@@ -34694,7 +34825,7 @@ catalogue-version 1.9
name beamertheme-arguelles
category Package
-revision 70209
+revision 70200
shortdesc Simple, typographic beamer theme
relocated 1
longdesc Arguelles is a beamer theme that helps you create beautiful
@@ -34704,10 +34835,10 @@ longdesc elegant but subtle, so as to keep the audience's attention on
longdesc your content. This is brought to life by Alegreya, one of the
longdesc 53 Fonts of the Decade selected by the Association
longdesc Typographique Internationale (2011).
-containersize 3040
-containerchecksum aac91e94a49c87b99e888542cb1d0ca043f6dd1513087daedd538d755989dc19f7c7201698573d3c3d9919a434b0d39d56ba6d33e22c240fd6579ecec6f215f6
-doccontainersize 2206080
-doccontainerchecksum 23219c4b8718a1d4c247ae2a733a3b371f3c96796ca0e020088fcb47b4d136670377a4f4b746e9ae260e6e32ef58e86edbea80f71716963272204df312072583
+containersize 3032
+containerchecksum beba18a99e1acc1434752cc618f41c5e77c0e35031287fbc41258104ce0d475717ddb46c9f1311f5003c2d696da7d496caecc689ac1c5e5091e7bdeb63d4ec43
+doccontainersize 2206064
+doccontainerchecksum 27d3e14040c9bebdb11648e6d2191b9a95d38300a665fbf9c6215a384cced16d512b87464f1e3c492d8a7d1a384a66be649a3932316b357a7af57b21c857d338
docfiles size=820
RELOC/doc/latex/beamertheme-arguelles/LICENSE
RELOC/doc/latex/beamertheme-arguelles/README.md details="Readme"
@@ -35505,7 +35636,7 @@ catalogue-version 0.2
name beaulivre
category Package
-revision 70050
+revision 70049
shortdesc Write your books in a colorful way
relocated 1
longdesc This package provides a LaTeX class for typesetting books with
@@ -35519,9 +35650,9 @@ longdesc "beaulivre" is taken from the French words "beau" (=
longdesc "beautiful") and "livre" (= "book").
depend colorist
containersize 5236
-containerchecksum e8566d352bb39bbe6256dabb57d6743db7dfc98e491683eab76ffa86ae9d6d0cf53726999620920b4845015bbbaa6cf48e8d4c82dbffd841d00d55bd2f2cb464
-doccontainersize 8548
-doccontainerchecksum efb52d0b4df908a4425fb9d5f2767c54dd7b2d614076374d81b15f53322528a24231feb9145de9bf1f0086a6ffcff37d529a925fca879984b4c5860b00b12a1d
+containerchecksum 13c6a365d586b72380c64f9c6be263668e65d4426649367f9110a4a39988b0a4a12c9b09462453ccde8c89eeadeee3817545f8ddb0361c6cd6ce838c1eb1c76f
+doccontainersize 8564
+doccontainerchecksum c5b3071c811828756bd2c8de1a8158682de897360d1eee1507946262cbf97526b7bf684bb0506a0912f10068c9da274ab1cf8399efc3437b1fd212702dfefe18
docfiles size=8
RELOC/doc/latex/beaulivre/DEPENDS.txt
RELOC/doc/latex/beaulivre/LICENSE
@@ -35605,16 +35736,16 @@ catalogue-topics book-pub class doc-templ expl3
name beautynote
category Package
-revision 70166
+revision 70155
shortdesc A package designed to meet the publication of books and the production of LaTeX templates, with elegant chapter
relocated 1
longdesc The package is a specially designed to meet the publication of
longdesc books and the production of LaTeX templates, with elegant
longdesc chapter styles and unique page styles.
-containersize 5128
-containerchecksum 637e51a355d5f89c2e0241140780b221fabbb4685830c1ce9ccb5cb185c53f1cc4c3ffafe737df25445ef885958c1b5f6ba96a4a3de1169de7f2cf28095eea43
-doccontainersize 858720
-doccontainerchecksum 36e71d750df5b5e5d8d05251a4be60214c09027a10c77551ff6261464729004fe0e3be586687af23db115b7cb4c99086dbe9278da0b8d6292b57005019628fc3
+containersize 5132
+containerchecksum 53f958bf7d21c4d6a75be83e81832a7360ddb357ac6dca55400d70431828742f311445478c3b1cd1f8959e245c3265b47cfb244f1b500e56ecb779dec3d20357
+doccontainersize 858696
+doccontainerchecksum 20429b0e1887c337227705f2c0279ff25ce6aeca165f7e67be8c164fda0a77b18f92b54f6aa7385f0715e2b9143fa9537c534d13781c646b847af56f4015f769
docfiles size=405
RELOC/doc/latex/beautynote/README.md details="Readme"
RELOC/doc/latex/beautynote/beautynote.pdf details="Package documentation"
@@ -35635,15 +35766,15 @@ catalogue-topics book-pub class doc-templ expl3
name beebe
category Package
-revision 70064
+revision 70062
catalogue biblio
shortdesc A collection of bibliographies
relocated 1
longdesc A collection of BibTeX bibliographies on TeX-related topics
longdesc (including, for example, spell-checking and SGML). Each
longdesc includes a LaTeX wrapper file to typeset the bibliography.
-containersize 922500
-containerchecksum ff133e38a475bba0e8aea3a8a98d20ff1aa17eef7c0d0f5a6d404d51b1062c2a5957d3261e844d956f9a5e97fcc2d8a438beb5b724f84f8f3734091551e7aba0
+containersize 922480
+containerchecksum 76bc0ec514a5bfa3f54c28942dbdddcf3f8993835efc73acae57327b8be88530dbd70773c6afa0636d21df38fe39733fc5ec357fc2f77d234db1b4f16cde7c54
runfiles size=2267
RELOC/bibtex/bib/beebe/epodd.bib
RELOC/bibtex/bib/beebe/font.bib
@@ -36515,7 +36646,7 @@ catalogue-version 1.4
name bfh-ci
category Package
-revision 68828
+revision 70623
shortdesc Corporate Design for Bern University of Applied Sciences
relocated 1
longdesc This bundle provides possibilities to use the Corporate Design
@@ -36548,10 +36679,10 @@ depend translations
depend url
depend xcolor
depend zref
-containersize 25884
-containerchecksum 8aacc57f0eb40e83a6331cf86b076b287787672421648df65814214b60e739697d97fea5d8d18f112c27ea60cd2f2b9a26c31fb6074b9c1f1cba4522e96a11af
-doccontainersize 238708
-doccontainerchecksum fc7e441fac29da849714c79ed0f68e94059d09c1472b4c56b3f100f0e1af730963e9d0bedeb3bcbb87512ef68535321d6df13370cd9be3d5399cbc05e7f1cee7
+containersize 25928
+containerchecksum 5a765b2bb9eeb1a82163af6ed56db8bee00c8b445fd1f13988376e1916b14fbf50e7e6656eb3b58ca9d44674b5e013a6f6fc0a31e18bff694e12ffff8a5f1106
+doccontainersize 237612
+doccontainerchecksum 899e99f8022a62f3db8e6972b741ec2b11db4d9fc760d32d831cb60873987594989860a05ba35691114c429a014c656cfc6e87711782ff7dd2ee663c64417d1a
docfiles size=121
RELOC/doc/latex/bfh-ci/DEMO-BFHBeamer-Sidebar.pdf details="Example presentation (2)"
RELOC/doc/latex/bfh-ci/DEMO-BFHBeamer-Sidebar.tex
@@ -36572,7 +36703,7 @@ docfiles size=121
RELOC/doc/latex/bfh-ci/DEMO-BFHThesis.tex
RELOC/doc/latex/bfh-ci/DEPENDS.txt
RELOC/doc/latex/bfh-ci/README.md details="Readme"
- RELOC/doc/latex/bfh-ci/bfhhkb-doc.cfg
+ RELOC/doc/latex/bfh-ci/bfh-hkb-doc.cfg
runfiles size=54
RELOC/tex/latex/bfh-ci/beamercolorthemeBFH.sty
RELOC/tex/latex/bfh-ci/beamerfontthemeBFH.sty
@@ -36614,7 +36745,7 @@ catalogue-contact-repository https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
catalogue-ctan /macros/latex/contrib/bfh-ci
catalogue-license lppl1.3c
catalogue-topics class doc-templ letter dissertation presentation poster std-conform expl3
-catalogue-version 2.2.0
+catalogue-version 2.2.1
name bgteubner
category Package
@@ -39055,16 +39186,16 @@ catalogue-version 0.02
name biblatex-caspervector
category Package
-revision 70496
+revision 70491
shortdesc A simple citation style for Chinese users
relocated 1
longdesc The package provides a simple and easily extensible
longdesc biblography/citation style for Chinese LaTeX users, using
longdesc BibLaTeX.
-containersize 4508
-containerchecksum 74ece2007520241b51a8518613401ceb2c37da921126f78ccfc6bb3a81765e186793a94197138cc6e52610d87a5a81a3b5159370aedd32190da2fed22346b1aa
-doccontainersize 612868
-doccontainerchecksum f21b4c77c21f6a288bc7ea64e6959ae179117336e079ff4ef7ecf373b248ec2ad4b5c1499ecb39b18471ed33eec0fe11a0409e61761aff17ab73a7f01727ed11
+containersize 4504
+containerchecksum 73ea6561762c73da8634ac0cde94b4be8f204313e312028081419488686f72413e4cfae19c23d4021fe63a0088630792a38fac02dfa7f95478e661a71218c001
+doccontainersize 612860
+doccontainerchecksum 5805b6b13ff87e31ad13127ca762e54c45532ecdd32825f914135ce460dba2718031d6d2150cf4a3c1e953e9ceb6492898b6a1d8dfac83284f91a77ceda345c6
docfiles size=167
RELOC/doc/latex/biblatex-caspervector/ChangeLog.txt
RELOC/doc/latex/biblatex-caspervector/README.txt details="Readme"
@@ -39543,7 +39674,7 @@ catalogue-version 1.7
name biblatex-gb7714-2015
category Package
-revision 69775
+revision 69790
shortdesc A BibLaTeX implementation of the GBT7714-2015 bibliography style for Chinese users
relocated 1
longdesc This package provides an implementation of the GBT7714-2015
@@ -39551,10 +39682,10 @@ longdesc bibliography style. This implementation follows the
longdesc GBT7714-2015 standard and can be used by simply loading
longdesc BibLaTeX with the appropriate option. A demonstration database
longdesc is provided to show how to format input for the style.
-containersize 53340
-containerchecksum 1390d40d1a34caa69d4b25d18e0f01c81974ade6b778f6daa85bfccd17a4e749145640ea66a565e2919d61c642a1c0c24e6403b3e7a3b5622e1b644b559902ca
-doccontainersize 1437908
-doccontainerchecksum 18fd12ee1c680ba5e4fcbbfbe4e43f0d9163f7cf813ad20a0f264b37e252898b704a15c33c00559941d7b445b91b9652d97e46abf611ceee0885a96007279d69
+containersize 53304
+containerchecksum 8748ac578d4781c7220b7ac7012d22b23d982d298706e9eedccdc431ae858c6dd83a446d36c34b4dbb376789da83b5ad3c6af911a3c0725252d31e5218f7ea6e
+doccontainersize 1437872
+doccontainerchecksum 9a93f40b6c92ceb86f0106884ae797dad05b27c94a2e2dd3fa24cea5182bdc73497525fbce1892390a2c7f2486a6b7e02571348b645018e1558a1fbd2da5e36d
docfiles size=557
RELOC/doc/latex/biblatex-gb7714-2015/README.md details="Readme"
RELOC/doc/latex/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex
@@ -40778,7 +40909,7 @@ catalogue-version 1.1b
name biblatex-publist
category Package
-revision 70515
+revision 70508
shortdesc BibLaTeX bibliography support for publication lists
relocated 1
longdesc The package provides a BibLaTeX bibliography style file (*.bbx)
@@ -40787,10 +40918,10 @@ longdesc authoryear style, but provides some extra features often
longdesc desired for publication lists, such as the omission of the
longdesc author's own name from author or editor data. At least version
longdesc 3.4 of biblatex is required.
-containersize 12568
-containerchecksum 6c93da7da5d847fedc4e383e759a8132053ba71bd3e5d33d300f1e31893b6f0c9e528e731e4973814cdaf597da2d22ba6ac4eaf9f75d82f47b46d41899e11906
-doccontainersize 428472
-doccontainerchecksum 83c98481b654b9a905d4ff6b3ec0419dad60ef428fd2b5d8a4602b73f3b061864435be3f0259f5e74b14b7c5887c7a722c223baf519bc07ac46554de58746a60
+containersize 12564
+containerchecksum a111b1291b10f4daccf12015cdd37cdefcecfc3f1f9c0bbf6251e673c3b6afac361d2ccf6ae34799fc8c97b2e616ef5525e3e9152bc9eaaa2844f03a2659978a
+doccontainersize 428476
+doccontainerchecksum 460443e7eba4bcffa76b2c17861dd97caa10b7030f1494b0500c35f93176a5c4788cf4680eb0384446c2c3f58b394e9de56fe2cdd5b6074cbe421a7118e4795f
docfiles size=120
RELOC/doc/latex/biblatex-publist/README details="Readme"
RELOC/doc/latex/biblatex-publist/biblatex-publist.pdf details="Package documentation"
@@ -41577,7 +41708,7 @@ catalogue-topics bibtex-util
name bibtex
category Package
-revision 66186
+revision 70015
shortdesc Process bibliographies (bib files) for LaTeX or other formats
longdesc BibTeX allows the user to store his citation data in generic
longdesc form, while printing citations in a document in the form
@@ -41593,9 +41724,9 @@ longdesc package to typeset its output.
depend bibtex.ARCH
depend kpathsea
containersize 14880
-containerchecksum 568a72b269dbcb0d5c723e346e8118a0ed923273460d9518891616cbf7b174b17cd75acff02f092176d71b6020483de75df20994bfb66c2cd46432c33d5ade3d
-doccontainersize 398224
-doccontainerchecksum 4f95c010ded89688791e1115ce4e167740b43e9e48d596b2621e6c18b4529479da9441351b463946e7efa1e428cba3d60112c5f7a5e008733a00fc64050723a9
+containerchecksum 7f80818c043085e2f15654017a8df99f28efd79f92c9138bdaf97fa60057d45f10ad248c68c05d5f2706e6aefbcc25ec0c273f0133577f5801fd65c502e03647
+doccontainersize 398288
+doccontainerchecksum 76a828f85818e0e1349e40bf0fd8ada07cc928d24328c170a7a7d59d0481094ffe1a142b7c5463e23e2fb188877b4275bd2424117b099139fbd795dffcac3107
docfiles size=133
texmf-dist/doc/bibtex/base/README
texmf-dist/doc/bibtex/base/btxbst.doc
@@ -41629,137 +41760,137 @@ catalogue-version 0.99d
name bibtex.aarch64-linux
category Package
-revision 65927
+revision 70276
shortdesc aarch64-linux files of bibtex
-containersize 75804
-containerchecksum 22102515702f73b40ecc26ac1738121f28c78ee3acb987772aca8c2f2cf1a85cca581ec1e63225629ad8e3ff3682284e8a26e3eb37fe3e222ef6db35a0e29aed
-binfiles arch=aarch64-linux size=50
+containersize 76356
+containerchecksum 67d3d4adf95e53dd02c449cbce5b84e9eded33c7dca33f2fed3f1e43d6ec47d56b7529c511c5801bce69d9005e6df685174273e2ef5cc1bc01c7ff99c2d52829
+binfiles arch=aarch64-linux size=51
bin/aarch64-linux/bibtex
name bibtex.amd64-freebsd
category Package
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of bibtex
-containersize 94824
-containerchecksum 253ae273220c5c16e45a16298cc00b605b809444155747a4e4ca13b5e7e86495eca4069915f54b5b968a1e7e16f92ffaac655126b786ea186c26da95c79764df
-binfiles arch=amd64-freebsd size=57
+containersize 71204
+containerchecksum 8b7277b373f20f2f2b3e08411d30e4cf4b942304421290a4978f32a9ddf0121b1acc15427acb9f9eb715fb178b376ed7506401ecc729a8a7388ab1970e628e6f
+binfiles arch=amd64-freebsd size=54
bin/amd64-freebsd/bibtex
name bibtex.amd64-netbsd
category Package
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of bibtex
-containersize 69612
-containerchecksum 1a8bc602a5eb728951f5bfa28d238841cdf60f428cb35799244e57c25b3ef93cd54ecc4e97fc95732865bf8715189887a11f685ae01a4b8c8129ad8e0f2abfd8
+containersize 69996
+containerchecksum c55af3627cceb7c6210dfa38f59ebce64c172c529c376659cf658eab27fa3f2739b1bb9d3fba7379e98a389ace37fe0f9fa1c52dfa40310d3b99e0d7a699baae
binfiles arch=amd64-netbsd size=53
bin/amd64-netbsd/bibtex
name bibtex.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of bibtex
-containersize 60240
-containerchecksum a5ea0b0285992648765751990afd5c28bc93e200e28fad2eb4919ec3f358995b9b46da980d8366926637e65bba9d5dcc145ab92befdc46d1a6550ec4207228af
+containersize 60596
+containerchecksum e77002847694b2ff2ae558763afd31454cd62edb630c00fd6bcd0780e348fe0b649c3f0e1b5de8b43b8ce0cb7ee31b73a91f654621166df0aa6b21b3048ccc79
binfiles arch=armhf-linux size=38
bin/armhf-linux/bibtex
name bibtex.i386-freebsd
category Package
-revision 65877
+revision 70276
shortdesc i386-freebsd files of bibtex
-containersize 71904
-containerchecksum 38fec7e385447a714bdb43c1d1df5074ad44c7eb174674eeb3f54e9643abb946d49f8ef2301448e82b9863e868a1ed11c7d6c4a8f3dabcc5ad3b196e5cfa75a5
-binfiles arch=i386-freebsd size=48
+containersize 71188
+containerchecksum dbb65431d38245cf8c2be8e8571d62ec52a06e9ccf20a0f332a3dfb0064565f215baa605420cc69baeb594f8e5395c9430b65c090cefb090dfd62a5c8488c26d
+binfiles arch=i386-freebsd size=54
bin/i386-freebsd/bibtex
name bibtex.i386-linux
category Package
-revision 65877
+revision 70276
shortdesc i386-linux files of bibtex
-containersize 73200
-containerchecksum deeabc1a2291da694342adb197e6f00bb5ab0d952240569f141a953507d21ae7b8cfe051e1b75e7aa21152c362b3d2223e20d730f5084a3d7ed8ad0332dbfa51
-binfiles arch=i386-linux size=48
+containersize 73636
+containerchecksum 70ce9d9937f2d71e54f979bfe4f2c777301f8c6795f67ae7a9ab7db1f4dff3f0d6d71ba0b13861548d9a2d28881f0f02c2ee12f90a2dce8d51123bf0255b8e9a
+binfiles arch=i386-linux size=49
bin/i386-linux/bibtex
name bibtex.i386-netbsd
category Package
-revision 65923
+revision 70286
shortdesc i386-netbsd files of bibtex
-containersize 56048
-containerchecksum 148b981c9eaab83d838f9f9cb1bf3dcf13b0fb02b267f395fb0bfc44328abb7a8b6aa15a2d000ef09c5b959fb30c886a46cc6d33f0298d44f455144bbcb6e5c5
+containersize 56460
+containerchecksum 97bd31c763770264c7e78c4cb5c654bc3efaba6b75c2ee4872ccfb9cb4797265921ff7040ccf697b4089bce9d01199f631a0086e5a07750c06e7ed4e00f5d06f
binfiles arch=i386-netbsd size=50
bin/i386-netbsd/bibtex
name bibtex.i386-solaris
category Package
-revision 65877
+revision 70276
shortdesc i386-solaris files of bibtex
-containersize 71404
-containerchecksum b07ad6d3163447a7253dac5b1d858dd8a173a531da9b236c4ade9c464b0cc71b5a6f49e7a59899da359b2d50c73d85b50eaf01a57cfebcdf35113432a61290ea
-binfiles arch=i386-solaris size=43
+containersize 73400
+containerchecksum 627fb2d59937f28f073e5610a08b45413bf67c00354e6b3f5e27023732d3d7977e0ea7bfeb5bb8212d61561233d6bc906baa572cd4afb332472f3958b429e313
+binfiles arch=i386-solaris size=45
bin/i386-solaris/bibtex
name bibtex.universal-darwin
category Package
-revision 65895
+revision 70274
shortdesc universal-darwin files of bibtex
-containersize 178384
-containerchecksum 26cdad3336ef1232e1b88506ab041d4e18e11a4bd7b096b64f9b4c754c3d483cd21b72b672ffe30e55e40d264cb68d097a413ad5044258e9c55008526084d457
+containersize 179252
+containerchecksum a6b910c32cd5fb610802fcddef19dbeb54cf2fb9ccbe6d832192aed70b02169370effdbf0c14c4cca3d720f63654ee41c4e490ffe3191120208907df26856f83
binfiles arch=universal-darwin size=138
bin/universal-darwin/bibtex
name bibtex.windows
category Package
-revision 65891
+revision 70576
shortdesc windows files of bibtex
-containersize 49668
-containerchecksum 8cbea33c56170ea6639892e652891fd33242e83e7271092e4aee8264ca4a7234d5dce79d1b71e041bb1f43b4e1d8471ed438504e6a7fbc14d5a962c9c5d3c050
+containersize 49684
+containerchecksum 22783df0bf484017cff3bec09c7e22427ca5fc8df1d52ad0cbea243c7dccdf75e6361a72c9344884f4e9f091da1d8831adecca053552101b3f1c2dbdb1f6c8d2
binfiles arch=windows size=29
bin/windows/bibtex.exe
name bibtex.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of bibtex
-containersize 49156
-containerchecksum ea61bcc319a56a8ff285fb4c4e86838e176e35d7bf7925a3b4f9e203fedf03520b2267868feba6f5171c01168ad1f07ea3c0de6d082cec83724c7e36b8e83b9f
-binfiles arch=x86_64-cygwin size=29
+containersize 49100
+containerchecksum 799f1fd1ff2729e37f2aca4614a1eb07b70e9a2f885599385359169c3d8297205fa880258eb94a355675f622cfa0d59407ef20a3575a49796f20af4f1f1b8a71
+binfiles arch=x86_64-cygwin size=28
bin/x86_64-cygwin/bibtex.exe
name bibtex.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of bibtex
-containersize 75584
-containerchecksum 901610beac4af25b1246aaa1e48683000c3e823df233ea773c599e32cc33d4f2fef2024e3174a0d1ff8025fd98f8213ada5c0087aa5958863413193b629f51eb
+containersize 76092
+containerchecksum a0a6af5802a6e3b834d528ea32d2a806a67a416cd7f4a053851d1554dff64f7149f4afeb942a3671d031deefa70d1f94fcc45d60c66314e7638e66fa03ac7493
binfiles arch=x86_64-darwinlegacy size=44
bin/x86_64-darwinlegacy/bibtex
name bibtex.x86_64-linux
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linux files of bibtex
-containersize 74784
-containerchecksum de2e518a5494816bcef5bc5df8940f89e616dfe6ce3f1367509b54b50c7ad164edf8204ff5646d7117d4a51b79958b9f80a46895598e24c6a060bbb9c4e75a95
+containersize 75184
+containerchecksum d93a5abe67e7f0729b773da746e8b2834216d13aba8d0f240f768e0023ac6e231bc6cd1a1d640efbe180eea4bd3a62e5e6afa84ce1f88554c92490cb55ac6728
binfiles arch=x86_64-linux size=43
bin/x86_64-linux/bibtex
name bibtex.x86_64-linuxmusl
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of bibtex
-containersize 79960
-containerchecksum 3a21ab9fa5210eab1da3946b433ca9c7cd9042b50348fe3aac7f5ef235511391da68a397c7f902338b8341455a3ecb126665694443cc7efdaf864bfb5054fd30
+containersize 80472
+containerchecksum 46357a5b3772dd645fd6e3eccfa0868c48d1c944de9beab8d959835ae87481a205ada41e445561c6fdfedd1f4a1933846a21b3368670779b709d6aeacfaf8554
binfiles arch=x86_64-linuxmusl size=45
bin/x86_64-linuxmusl/bibtex
name bibtex.x86_64-solaris
category Package
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of bibtex
-containersize 85092
-containerchecksum 6e70145da12859b106ea862ecf635df1497a3cf60e7fb6d4aad2418ce11f31f7d5e8ff58b347387a1702bbac2646c13a20755295b19f32a98f5c801c534500be
-binfiles arch=x86_64-solaris size=51
+containersize 87356
+containerchecksum 54ed7657999e1d3ad5252af468847995ce4b8e3c2b0239fea9a34dc01674be605e154b6c9eda1256b9dbf99b8d34d36c0aec88174c2802e80b9dd3bc5031a2b0
+binfiles arch=x86_64-solaris size=53
bin/x86_64-solaris/bibtex
name bibtex8
@@ -41810,137 +41941,137 @@ catalogue-version 3.72
name bibtex8.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of bibtex8
-containersize 81984
-containerchecksum 170aa09a57e1dae3a420685c68a135929355fd18b70aa626f9881515e909039b78256ced0056735849c098a6319d422072cc22132d9d42f2fec8d07cbb255f15
-binfiles arch=aarch64-linux size=57
+containersize 82112
+containerchecksum 5b63d4bee0679286949d5db71b7e2c5c7b9ec05eb36cba322f3590a812e5270b5a06daeaa22a9aa7b00414288a59124bd6d7618b4eae710029b7cdf80d162412
+binfiles arch=aarch64-linux size=56
bin/aarch64-linux/bibtex8
name bibtex8.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of bibtex8
-containersize 86628
-containerchecksum fe584e3911b5ed6cbb8b8a7d20f018a7ad57837360d6a41384baafcb1d85dc181f1dc70151c015a55123f063f2ee98be9073c87bcf5fee243728cb337dd9aa3d
-binfiles arch=amd64-freebsd size=52
+containersize 80580
+containerchecksum 09a2d5e2f72e516dcf0e2dc852b004820227ee7e4f70f175470d16b106addcc20aeb2b78a2bd300bfb7a5b790f885471d31b202fbd9b9e554996c9e488d762c3
+binfiles arch=amd64-freebsd size=63
bin/amd64-freebsd/bibtex8
name bibtex8.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of bibtex8
-containersize 78352
-containerchecksum 56d339990baae57d6d73506f34489b64d85a44c092b864866f2515a8a758c1dbbc90d3abefbff9ecf663c5050987f4a6721ac92aa6f7c328698b9e4e1be5ea22
-binfiles arch=amd64-netbsd size=61
+containersize 78820
+containerchecksum 0d99c1e8daa6104a1a5affa5ccd324b85e755d3e045f5ba6090134c92306284a64b2dd31a28da9e0590818b9221bc5181ca950b773f87c021b2615c71e02c737
+binfiles arch=amd64-netbsd size=62
bin/amd64-netbsd/bibtex8
name bibtex8.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of bibtex8
-containersize 67152
-containerchecksum 0ee9440d63538f3e38023dbe30ababe4d306e11787b54d0dcdef7e480383263fb0f28e45de51d7d27ee73353d30c88bfd3641584944a514489e70a841098d2c8
-binfiles arch=armhf-linux size=43
+containersize 67568
+containerchecksum d7ebd46d54ed9561dae2f33f3d70b5accfc60da39e78b68c0e3c41fca031640268ce32ac206f52251a0662cadf1bc339424d4cc13ac45a2a44614e38e45921e8
+binfiles arch=armhf-linux size=44
bin/armhf-linux/bibtex8
name bibtex8.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of bibtex8
-containersize 71600
-containerchecksum 609d09fb21b5c0d3ddf35ca2b2901be63aff8660ab8e7959cf757fd623949b0518ff3bb1f25278ff6a0e75eff590dc84337e9608dba910d9ca26d3d2dd20e020
-binfiles arch=i386-freebsd size=46
+containersize 80620
+containerchecksum 86c54777ff3d4fc45df90d38cec232711cb625c715437b4ed0259d33e6bb796533102f9fa6fbf186a2985d0fc45ea5db10df989a953ecad3f2945d600338e92c
+binfiles arch=i386-freebsd size=63
bin/i386-freebsd/bibtex8
name bibtex8.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of bibtex8
-containersize 80216
-containerchecksum 95af3ddd6ddc8f55055f3f0f2f9a805c428afbc530821d260f46ca91a8c3a7bd2c15881626a6b0c6233c45d2a9c56153d03365126b34de9d1f76323d64e67718
-binfiles arch=i386-linux size=55
+containersize 80600
+containerchecksum 4eb57aa0e61de46900a31a8932a3037c15d3b980b30b7aee673228109485227c92d74de18ab82e472470266eb0b10d4c019cfe77aad01f32752837e7bccbc6f3
+binfiles arch=i386-linux size=56
bin/i386-linux/bibtex8
name bibtex8.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of bibtex8
-containersize 62640
-containerchecksum 260b9bf41cf6f09c8892bcb8fa344cb5010e9112112f20823f0a7c1aa3c16b77956b67ac0991881ea3162e941169940bec2a11c69145549a8b5c2c2db29a6897
+containersize 62984
+containerchecksum 979fd1d7090da809cebb690fc846c30d3823c0b7f0ce0a4c4d99ee7e1553f5e67b4970f0239d195bdf1adc1e083869e740166aa7910ae924881fbed450a7c7db
binfiles arch=i386-netbsd size=58
bin/i386-netbsd/bibtex8
name bibtex8.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of bibtex8
-containersize 77292
-containerchecksum 76c054cb286595d1829e2026f140bf6a9c73b48076b78558b90e077cbe81d3013b73bd6dd5825bd86bce6c6982d8c810ecebf6bc34e37c4df6a09a11c1821963
-binfiles arch=i386-solaris size=48
+containersize 79108
+containerchecksum f48eab06961b035343f64843762769d465f14fa70a56ceaa0cd86a5b1f02c8b67c0352b64894b57ce2dc052f6a73155da34e777d0193a0df5906396e61330b23
+binfiles arch=i386-solaris size=50
bin/i386-solaris/bibtex8
name bibtex8.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of bibtex8
-containersize 165704
-containerchecksum 4ba22431c51eb97d9fd1a3cec4881e415681400e75b279c5e58698ed39c1e8798328cc4802b4e9c9f9de43c7671f815c1a5ad207af50ee1f7aa766eebba3cb1e
+containersize 166600
+containerchecksum 85673a290d2c3183e45558ef675d60ee3c5e415e0864be61d867ba36d86a33f5ed909f7c282c5330a60ee0b44db8ed97f9c35d3891815f91d7b47247f2ee7a35
binfiles arch=universal-darwin size=130
bin/universal-darwin/bibtex8
name bibtex8.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of bibtex8
-containersize 169276
-containerchecksum 49cbce1a439581952c9f4089662388fc003cc521ac0a710e71a137580e69ef53adf08b8de7e189c70acd50b802631c73414a9b6f628d1dbbc11acd779e6cacb5
-binfiles arch=windows size=95
+containersize 180516
+containerchecksum eb02e7cac944962ff0567894e96b1ac02119562dadb44b45cec71a547ebf41ef2d47d41e923baf27a721adf81768ebbc8f7c681789bd4de3611d2f81639a8638
+binfiles arch=windows size=101
bin/windows/bibtex8.exe
name bibtex8.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of bibtex8
-containersize 53400
-containerchecksum daf2afe6af3aea55c26d7a48f1a20c2202cf18fbcd36d87c4980f32ce3dc695a9d1788bc1933066be118fb76fb5350d9c0a8d77861f97e9660d2a2c5bcd921c2
+containersize 53384
+containerchecksum 96e6a3d3b2d4e9e3aefefd2f2a778febd3a74c5031c62b09d43b4924e992b84349ab75366e33d22ccedac518288200b4407b556c3e684899d498daa16b258061
binfiles arch=x86_64-cygwin size=34
bin/x86_64-cygwin/bibtex8.exe
name bibtex8.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of bibtex8
-containersize 83212
-containerchecksum 8912c15d767db5d357c3bb1000fdf65af630ce8ddecdac386e3c968ce92d0a8ff1d684ca86c9401289fcaa4ce5d17a8a58d25e536795166b0927c4d3ddcdfc7f
-binfiles arch=x86_64-darwinlegacy size=50
+containersize 83828
+containerchecksum 552d2f3932eda2696ca56ce109c3a8c9ad5dcb433503385fc137479d4500deaa4b571300e29fd9bd13a796cf14df6a6f1f6a8f8b813e31c45cb89e8718ae9130
+binfiles arch=x86_64-darwinlegacy size=51
bin/x86_64-darwinlegacy/bibtex8
name bibtex8.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of bibtex8
-containersize 81384
-containerchecksum f0e7d7d9e3a82bab2a1f228dc4c8f7087e8bbca54afe33922b6bea7ec0e7d60de258dc3c3b45a133f50459a9e3fdc3086a2c7e69d8ea22cc4c37ef5258a7b68d
-binfiles arch=x86_64-linux size=49
+containersize 81852
+containerchecksum 7796416e6b725654de0017db9aaf46b8cce35d51c011b8c87c00c5d0e867007f6ff7ae0613575cb6be55a8c58d50b3c958ca86fd43e62cc2bcfccfb1db6339d4
+binfiles arch=x86_64-linux size=50
bin/x86_64-linux/bibtex8
name bibtex8.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of bibtex8
-containersize 86896
-containerchecksum 5f386ab384a2e6b5d79595f2f833e6c77688a3b2ed15accab32f87d67961232432c51e75ff0c81b5e88c24e6c62fb7c34af3de4987dc98cc6f9db1a3e33b4b71
+containersize 87456
+containerchecksum 2fb1b1fc7278f62700746fa461d70b504933d1219f770b8253056ce7f9058299474327bc7c7b8290a0880a67941414c4b69588e56b216bf9f44fac4214bb412b
binfiles arch=x86_64-linuxmusl size=51
bin/x86_64-linuxmusl/bibtex8
name bibtex8.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of bibtex8
-containersize 90364
-containerchecksum 6460a649ee67b9a121482fd921158d8881d9759cf0e060b4254dec07c3fb2314f7a2582712d188bd2e3c6810fbb88aea04e85a7a8a3e196a061d792c9705bb4f
-binfiles arch=x86_64-solaris size=57
+containersize 93020
+containerchecksum a40cfce44b284eeeadba063d7bea0982d12b7982490324ea900fd7243f6eff4d38a3de3e614842d9df71da9fe39a9a4e711992adb0fdbfb30c69c6030c284194
+binfiles arch=x86_64-solaris size=59
bin/x86_64-solaris/bibtex8
name bibtexperllibs
@@ -42204,137 +42335,137 @@ catalogue-version 3.72
name bibtexu.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of bibtexu
-containersize 5926808
-containerchecksum eacdd930c9f265a4675ea6f3614f194db8e40e0a591600f99b0d85c2d57bac4f4a8f3681af79cff677015c1bf5440c123682c652a2a693ddd310eaf536682516
-binfiles arch=aarch64-linux size=5521
+containersize 5940180
+containerchecksum abac1565f0ff833104f8f6bfa419cb7b4ed3251a60dfdfc83459836b7d47f8689f3a74156f69f9b9ab378aaf4504630567b917c51a8fe1f7224881d677a5873a
+binfiles arch=aarch64-linux size=5412
bin/aarch64-linux/bibtexu
name bibtexu.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of bibtexu
-containersize 5919080
-containerchecksum 2f4b82e40dacda708ee04f2ae504d65ec8a3fb8c979045bce024b43f094cac39531bd1ecee6c0e46a092fce576f7ce2a01026f21a1ea30ee02774213f25e9530
-binfiles arch=amd64-freebsd size=5469
+containersize 5919356
+containerchecksum ec77d38c2838abecd2b7427c6e00d152205101525da463ee050d96d5991d869b173e5aba22a294e7255f9ff333459b35d696583fba70a85741885b6d5aadcf04
+binfiles arch=amd64-freebsd size=5460
bin/amd64-freebsd/bibtexu
name bibtexu.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of bibtexu
-containersize 5900888
-containerchecksum 82cd36ac11000a41687d724608e51f1360e515247bfc1237a780f5617cfb1d48bbf874b4875ff56f76c67820fe2f427e281b93da39c1c6222c57829ae4518038
-binfiles arch=amd64-netbsd size=5560
+containersize 5906332
+containerchecksum d0b5f463a772b140703f789b401f0b0f4578a23248c7bd5a02e852bc2d599c8fb357d6e0bdf0da31c14140480d623fe91557ea6ee652d0b341cf3632a7d1031f
+binfiles arch=amd64-netbsd size=5452
bin/amd64-netbsd/bibtexu
name bibtexu.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of bibtexu
-containersize 5840128
-containerchecksum 61268d38722551b9335c8caec820f579b492d3498953081c2e2ea6608159730e5b728d6a5820e51dfb5b6f6ee6f59f7c95a0c696734dbece8c747df462224c93
-binfiles arch=armhf-linux size=5423
+containersize 5849284
+containerchecksum 656d9d2939c2873a40dd6d48ab0dfd937b88affe22fa24750729bbecb337df83af473dbcf0f2316b3d077a9b495a322bcff7d34bd215c5fcf398bd18da005c1b
+binfiles arch=armhf-linux size=5314
bin/armhf-linux/bibtexu
name bibtexu.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of bibtexu
-containersize 5881184
-containerchecksum 5e8e5786c43f98611c0e5d5e463f81d880653022e3fdcb5ce6259d4586c7ef6c634204ac23ff8d88997f704d6360ee32bd5bc15e6518bd62aa0f87afe8260bf8
-binfiles arch=i386-freebsd size=5436
+containersize 5917944
+containerchecksum 9590e00cb8903f11b8f9f06976d0dc78bd09467afa77c87a8d4e79eb227eef646f19b863e7653a8a62b50f8aae1bcefde1021cbde1cf46967126866bcdc75361
+binfiles arch=i386-freebsd size=5460
bin/i386-freebsd/bibtexu
name bibtexu.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of bibtexu
-containersize 6141816
-containerchecksum 2d7afe4dec55e4c0aa0405e5b5bf5fce6945ddbcc9c66efcf5797d37bb7e7492ae8345eba3c82f4bb2f0d1c82e1a0b613c58c29378514b7dbd33bd2f7e89a3f3
-binfiles arch=i386-linux size=5671
+containersize 6152200
+containerchecksum c2fc73751cba628cf08e54129b9624ba27fb9fffb59453149ba5ada3752d8aaa08954317c411f00e6459d2a11f8019658f0f85e81ed41790e9bdbd5232133468
+binfiles arch=i386-linux size=5564
bin/i386-linux/bibtexu
name bibtexu.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of bibtexu
-containersize 5863892
-containerchecksum d00786d2163a4cc826846bbcf3682190d35653758685d086617b343611ff9b7dfecff6fd0df94968df5aae290b5b7f8b1c33fda954e74edcc6b16cf8b397851f
-binfiles arch=i386-netbsd size=5521
+containersize 5867460
+containerchecksum 1f759848e204240c06be905a89e423c7fd2d8852d28e4674729fd3ff27050939851b1fdfed605cb5048ba900dba2b14c8e356a4308eaabdd4f6d234ff5598b0f
+binfiles arch=i386-netbsd size=5412
bin/i386-netbsd/bibtexu
name bibtexu.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of bibtexu
-containersize 6230404
-containerchecksum b67861985e576d7838030954ef8f15e7122dca0db57083c0ccc9d39bf87da05d53b7c4ee39956b9b05b952e09b3766f42e20a39f46488e1e546d3337753b16d7
-binfiles arch=i386-solaris size=5838
+containersize 5981392
+containerchecksum 9ddcfa144d6d7028408b1b02b9e12ea081c0403d4006e33fb5d34ce5efbb588c726b362ba406a623712c8a6601879dc0ceb2d0c2bc35aa5865f6a40d462fde4d
+binfiles arch=i386-solaris size=5451
bin/i386-solaris/bibtexu
name bibtexu.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of bibtexu
-containersize 12129212
-containerchecksum 308b0c1a7fdaeeef4e924c08d94496ea1dd1d4ba000d45902bd65200d91435b16ee5ae704da8ad28172b508a7f8b685f2ba7269798bd16ddcc8b3a66fb98c630
-binfiles arch=universal-darwin size=11018
+containersize 12164344
+containerchecksum 6431fe966a21b4465e74d1e0462739c9c69c68ec6ecc09a3e4b6e767baee7a15b7fa923164774bae77987861d87ee8104615d95f14104f07ac80867dc1c99e91
+binfiles arch=universal-darwin size=10794
bin/universal-darwin/bibtexu
name bibtexu.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of bibtexu
-containersize 536776
-containerchecksum e3e5a40889465e0ba1e24632571823e2d5f63e8ddaf40b630857dd2f50418efb2db62cce2d6596f3fcd7a05288ceaba861734500e2bc357843beaba6ce2dbc40
-binfiles arch=windows size=353
+containersize 552228
+containerchecksum d6ed741b530bf92919e21332994164743de21b50f2c78b25e79ad938bee62ad898e8f91ba3fec8714794a25458c8b4367b4ae8411b4a40472062de10739c0bac
+binfiles arch=windows size=364
bin/windows/bibtexu.exe
name bibtexu.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of bibtexu
-containersize 5893492
-containerchecksum b497f96614bbb3714ffd1096cb9c76da660e853861df5bbb53e99906b149a71ec18a9a2a04fddbb58e3ea1b3369deb28b702f6e1d3cdd2b59990074ce54ab5b5
-binfiles arch=x86_64-cygwin size=5457
+containersize 5901344
+containerchecksum 35cadbcf83bbcaed5361926879fa8970ac7172a64657b430584c644c294fd55e4781089cfee77d8bdaa905755e0218a9470d240ca6534ce9c2cbba7d42b10365
+binfiles arch=x86_64-cygwin size=5346
bin/x86_64-cygwin/bibtexu.exe
name bibtexu.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of bibtexu
-containersize 5883124
-containerchecksum f9e0a00c385656c4d60331a3cd13be13ad78d6d2b9a1915674206ae36f9e3a122b48e4effe91101f645da5920fddf4472929c5d81e492788a644fb3f2a67b347
-binfiles arch=x86_64-darwinlegacy size=5441
+containersize 5887284
+containerchecksum cd8d9a7a56ca2781eb0e75e5442c0545f6499e8c6cbb13d822907f74f81dce8251b6632c6a729d2673c5abc4067629832320820e4bab0588ee4579437aee3ffe
+binfiles arch=x86_64-darwinlegacy size=5333
bin/x86_64-darwinlegacy/bibtexu
name bibtexu.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of bibtexu
-containersize 6166456
-containerchecksum 511f5442ea88a795e635aac6de826a3eed908ae4ab291227d8a71cb8b0cb9689b66cf53722d2e9b44181c41ac2516f9d1b542cc6cfe8f2d1df5e0d28d3ff9590
-binfiles arch=x86_64-linux size=5695
+containersize 6173864
+containerchecksum c7d4e0334379adf20bc283579a2c99f3ffbf176236f2c08b4965a24ee52b0372b3f3a7cc9770c20fb8f94bb88b63d3c62c52b5718afb2ebb49381ce41d0dc1f9
+binfiles arch=x86_64-linux size=5586
bin/x86_64-linux/bibtexu
name bibtexu.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of bibtexu
-containersize 6066520
-containerchecksum aa5ae5c71b9a2e26806042a27cef263dad1b75d71c17753f2709be6ce282aa128a511e6fa5550874c5b53f08e6fb98c85fc8e8ac875a22656b2461da5f58ea51
-binfiles arch=x86_64-linuxmusl size=5622
+containersize 6078244
+containerchecksum 62b23c80527428d042c4761d1a6272ea5fde0896077c962bb4b3d9b86f161fca1e386132ba53ac676beb93a7d956c3db8797a11c800cd129d6525d4224230ffe
+binfiles arch=x86_64-linuxmusl size=5515
bin/x86_64-linuxmusl/bibtexu
name bibtexu.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of bibtexu
-containersize 6243548
-containerchecksum 04920b82aac87b9f65d35ffa20a97a101d9be2c1fc7fb0ac4887bb6e6decdb946767bc2e2a988a4d4478637aeb79abb8943676b601c0dea9f682dcbcdf01e44f
-binfiles arch=x86_64-solaris size=5869
+containersize 6014920
+containerchecksum d964bc2944a131ef996d91614706760d2a67713d5f975baafc075e60415c46b8d5c3ced60b3c3bc35631160562f20aaa8813de1a5160de7bda76345e7b7f115f
+binfiles arch=x86_64-solaris size=5493
bin/x86_64-solaris/bibtexu
name bibtools
@@ -43197,24 +43328,24 @@ catalogue-version 0.1
name bithesis
category Package
-revision 70136
+revision 70133
shortdesc Templates for the Beijing Institute of Technology
relocated 1
longdesc This package establishes a simple and easy-to-use LaTeX
longdesc template for Beijing Institute of Technology dissertations,
longdesc including general undergraduate theses and master theses.
-containersize 19196
-containerchecksum d5b2a6bc2fc272a452a3e8f7e7c05244b701d77d409d026456826d63d11d7f5c0296f00980ab06326d0334c47fe1b2ba4f8397379e35ba3a8a64e7ca1071a3be
-doccontainersize 732456
-doccontainerchecksum 8c31242c162f0d0927b95385cad88d9214294c270674ae5d1674f03e825e9d09cb93b26aa480ca7e38043038b9bfdfd7f50acd14e2f5644f038db451c2dc09a0
+containersize 19184
+containerchecksum 94979f461307eee8186e9412c0c0792c8f1b440fb271620911cc777813a6044f16e794a2be604af6ef4a2af28f6ebae14cbdd97fd6d2b493cbd3eb9a44f25800
+doccontainersize 732464
+doccontainerchecksum 94b46d60cda8bac6d05dce8790171bd3d44f1d8b76c3374f4a4b901b713198b7f9d45429871ed02efd899589fb16e47dfe854c9c51882d1e76c26130ac4869dd
docfiles size=185
RELOC/doc/latex/bithesis/README.md details="Readme"
RELOC/doc/latex/bithesis/bithesis.pdf details="Package documentation" language="zh"
RELOC/doc/latex/bithesis/contributing-zh.md
RELOC/doc/latex/bithesis/contributing.md
RELOC/doc/latex/bithesis/dtx-style.sty
-srccontainersize 25864
-srccontainerchecksum 0d35711be0c9f09810429a72611892e2d0ee4d9bba4af3ea59379dec238509c057cc7ae1efdec4b531e78cfc7a96ef18309c374bc48408ff066ff7462253de4d
+srccontainersize 25880
+srccontainerchecksum ca5bd6f1798ea98a8046a9ea1c08eccb91014b8d84e8ad93cd7de732a021798394062c2d64c0a9880a67560a751e632945f7023c6e605f759ffa8611b2c66345
srcfiles size=32
RELOC/source/latex/bithesis/bithesis.dtx
RELOC/source/latex/bithesis/bithesis.ins
@@ -56030,16 +56161,16 @@ catalogue-version 0.8
name checkcites
category Package
-revision 70398
+revision 70397
shortdesc Check citation commands in a document
longdesc The package provides a lua script written for the sole purpose
longdesc of detecting undefined and unused references from LaTeX
longdesc auxiliary or bibliography files.
depend checkcites.ARCH
-containersize 6916
-containerchecksum 4782a9fb2223102492071b20efa40bdfaf9447165a108f680d2148c057507349a0c14f9274265ee2954b75e5f6fc8b1457115f60324e4b6598954babc565dedb
-doccontainersize 301404
-doccontainerchecksum dceee4bd22f760a6bc1a48fa49b0c68a0579123dbbb7422ce71db2eff910156425a0d90f62b9d62c4f4763d657c552f0cc5298a8627dbe98f0d5b6bca782b8db
+containersize 6920
+containerchecksum a6d0b8d35bd19cae661d081c76e48d3de40c277c5c5c40907130b7396f179ddda52c76288fe6bcf440f014bab2a5e5ce94831d9527b566579e283142a0faf7e2
+doccontainersize 301392
+doccontainerchecksum e92c0fe91d5ae9a1e0810123599fc516355280fe7736af904a3bc7e6e38101eadb49ea0b5bc0db706f02892a0b75d3b52d9db524643dd18090dcf1c5a913f00b
docfiles size=80
texmf-dist/doc/support/checkcites/README details="Readme"
texmf-dist/doc/support/checkcites/checkcites-doc.pdf details="Package documentation"
@@ -56622,7 +56753,7 @@ catalogue-version 4.17
name chemformula-ru
category Package
-revision 70357
+revision 70350
shortdesc Using the chemformula package with babel-russian settings
relocated 1
longdesc The chemformula package and babel-russian settings
@@ -56631,10 +56762,10 @@ longdesc chemformula-ru undefines babel's macro to prevent an error when
longdesc both packages are loaded together. Optionally it redefines the
longdesc \cosh macro to print the hyperbolic cosine in Russian notation
longdesc and/or defines a new macro \Ch for that purpose.
-containersize 1168
-containerchecksum ee12aadfaee03282e1cf9fcde69bf141abf0bcc5ed5a35ea78a54111494c5cb65f97a3bcdf8838a536128b05de1039a9caae7ef5078188811a54d12ec4f41855
-doccontainersize 156928
-doccontainerchecksum 290b509e2eacd081d690f857ed2a2ba3f860ec25788150af8da5f3eedc5291bbfeea84e117d04959b1a30775ebe72e88f2c0a4a4dc89517ac81b239e3c001d39
+containersize 1172
+containerchecksum d14218a5f9fc8f87bc29bff486c1c46206efdbe422d198b01bcaa4c4da5b4b8176c9a4a8b09d056e5fe766656916d52e9de5bf79a09ba7ca663dcababf34110e
+doccontainersize 156900
+doccontainerchecksum b4a3360897c2cfb457c3e8a9901bad95e967374edf12d125064cc4f0e47cb3d2a0f8b7e691707e12af34d6f3940a45ce6a544fb4be6e9351871e2fd39e9a5deb
docfiles size=44
RELOC/doc/latex/chemformula-ru/README.md details="Readme (English)"
RELOC/doc/latex/chemformula-ru/README.ru details="Readme (Russian)" language="ru"
@@ -57297,12 +57428,12 @@ catalogue-topics bibtex-sty bibtex-annote
name chicagolinks
category Package
-revision 70566
+revision 70554
relocated 1
-containersize 7036
-containerchecksum 191bdc3b9a732cf2153dd6d31a94dcf2a306cf1af9d1505bff28b47456a90c01a4d20717faa09b2a6875ba47852479c14e1de887a4f4b1165fa1aa9d648f3ccc
-doccontainersize 1140
-doccontainerchecksum 9bd3e34a2d897859be082969ef65e8bbbff71e318ad5a1891b1b84334b80f29b1d16d29c318e7bccffd62121a62039cb89093e72163651d1ab84db0ddb279cef
+containersize 7024
+containerchecksum 63b2e5448d59cceaac0ddb3b047460ab81d24503d8b05de589943f6e4cf1f64cb7153095fa2b89892182e1ad44c1bc9ac214c7f2d7b7cfdd5c9415244cd930f6
+doccontainersize 1132
+doccontainerchecksum d6ced71c8a678125357a9ac660849dfa8fe63ba97c33cf5f15c7fb6391817f043c5047c351a43672668b38d4aff25b0113ec5973db7c6133db4b282e559ddecb
docfiles size=2
RELOC/doc/bibtex/chicagolinks/LICENSE
RELOC/doc/bibtex/chicagolinks/README
@@ -59287,16 +59418,16 @@ binfiles arch=x86_64-solaris size=1
name chktex
category TLCore
-revision 64797
+revision 69783
shortdesc Check for errors in LaTeX documents
longdesc The program reports typographic and other errors in LaTeX
longdesc documents. Filters are also provided for checking the LaTeX
longdesc parts of CWEB documents.
depend chktex.ARCH
-containersize 9920
-containerchecksum 7c28847e87e788d0f50c07c1c3140962a70173d2a36997720f3066755740744060ecd03272662aff563de39102052e91a4582a4bb63e35f918ad8f517dff55e6
+containersize 10232
+containerchecksum 49aeda17fe91741232a260b47b02a2c5cb0700091045d23728472c22429eaac722285bf4ed330279d91e68dc1a3dfac3ba517b90e8b5285917f13230c219ed9f
doccontainersize 425796
-doccontainerchecksum 28df4bed075d66d9f25bcbe332731f1d5f0bb0f7f92bd2f3618c84adf788d0f429bd0c6e75381ebf7bbeac98409d94f85d17ebd752f9e4af707d9e3373d45f97
+doccontainerchecksum 06c4e1a983d9c3c3d0e08e341492727a4c99bf6a7d9c9f85b2562e9a77260aaa0429bff53886dad508e22db5a8f1ea2261b97ee800774d8ba7abedad18189867
docfiles size=112
texmf-dist/doc/chktex/ChkTeX.pdf details="System documentation"
texmf-dist/doc/man/man1/chktex.1
@@ -59317,43 +59448,43 @@ catalogue-version 1.7.8
name chktex.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of chktex
-containersize 53420
-containerchecksum 8f30eb675a360fc8cd1b010acbdbd48b6fd946fa289251f8677f85ac06d7a7203a053f9e96a7fcc4e2788989a42e94287d75b47b2f2cf337ce4e7c278f3e875b
-binfiles arch=aarch64-linux size=38
+containersize 54056
+containerchecksum 4cedbbda61f0c8d7c767824656e9b0d6d73685c812c4fd4e1c5ea91cbdc862bbf41106995515d003384dee30114f5ac1ca2b4d949af59f719fb83b933c527462
+binfiles arch=aarch64-linux size=39
bin/aarch64-linux/chktex
bin/aarch64-linux/chkweb
bin/aarch64-linux/deweb
name chktex.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of chktex
-containersize 58712
-containerchecksum b062c0e98e1560d44f9fe909099efbf91529b4dcc36be4292ceb5ba6e442fd1529e501e538a6b8588b88f1721ca62ea4c38ba7b1cf324eec16a418a1e23eb27e
-binfiles arch=amd64-freebsd size=38
+containersize 53816
+containerchecksum cce31a79cd7ccc408a0912c12d92f6f672c247ed751fb87ee0f787321378d8bed92ab0f5a1a0b031b782719726202f8965cdd319af3d9528cbf281502cdfd624
+binfiles arch=amd64-freebsd size=45
bin/amd64-freebsd/chktex
bin/amd64-freebsd/chkweb
bin/amd64-freebsd/deweb
name chktex.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of chktex
-containersize 52280
-containerchecksum 4f4b6ef32b4d78d2c2d50404b751312bb56ee150ac23a7216b8e70d8f071f62b65afac22aeca038c7a02272631ae0a2c459c6290e48e143402b67eb29249d54f
-binfiles arch=amd64-netbsd size=43
+containersize 52592
+containerchecksum 27018ad80a82c3d242ec9491bf0c3140dc3f2aa000159afc2fe5e87d49474b1e81d7e00d80eac36f5eec06591645d5c4b0fafdfe47967c7c2aa5d794fb751eaf
+binfiles arch=amd64-netbsd size=44
bin/amd64-netbsd/chktex
bin/amd64-netbsd/chkweb
bin/amd64-netbsd/deweb
name chktex.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of chktex
-containersize 44580
-containerchecksum e901dab7067924eeaf7881a26ab8deccee4fd258f857b60c98cd78e0653348c5de292f306d66c150fdb648498235b468726dc094b7387f6d067b13bc457d7a02
+containersize 44892
+containerchecksum 5b06283f70a061699afd431b01c822fb9e61ce3f138a9f7e2cc1439f20591edd1f2a4a8e3bb20dea95f64017306968c5ed911414b8d2ec6f6f036d4212709e0f
binfiles arch=armhf-linux size=31
bin/armhf-linux/chktex
bin/armhf-linux/chkweb
@@ -59361,21 +59492,21 @@ binfiles arch=armhf-linux size=31
name chktex.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of chktex
-containersize 52716
-containerchecksum c57363c3f5897972772f096b85ccd051015b45c50b9585ee474e32a420109fa2f1fb7ec639d7afd65f19ad22c0f67e9ea9d8089bc6c93c56607cac468a2ad244
-binfiles arch=i386-freebsd size=34
+containersize 53780
+containerchecksum d188c518bbac6bdc896b45b873bab42756cd545884d14a4eb17fe8c03e5c079f19a99d245201bcfe3c6aa45c63a31d3968690db117a23c6f4ee64e48625447ab
+binfiles arch=i386-freebsd size=45
bin/i386-freebsd/chktex
bin/i386-freebsd/chkweb
bin/i386-freebsd/deweb
name chktex.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of chktex
-containersize 59112
-containerchecksum 826ee2c046fb7e72d581de7af21f38f9a78eeabfcf51ba4fb22c80b32e3e252b0b39344fea2de03647ed42cc0efa35eb48bc6fc0dd1a27f4e6528ae0e0aed3bc
+containersize 59576
+containerchecksum c4695934e0df80e0a76bb6b335b69fd8ea794a625b61aaa7dd0c3fcd687147f8e3d3400d933437d5dd4fd08dad61c848beb8064066beefba29d5a298f7d6e4af
binfiles arch=i386-linux size=40
bin/i386-linux/chktex
bin/i386-linux/chkweb
@@ -59383,32 +59514,32 @@ binfiles arch=i386-linux size=40
name chktex.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of chktex
-containersize 47092
-containerchecksum fbc2bef7610b0f71207ee7a0a878011c12e91bfc501d36fe734bbc47328739f7123b123675e05b1cee4986bf417a6de0d89ab494f9b9628f52e9a32ba075a5f3
-binfiles arch=i386-netbsd size=40
+containersize 47504
+containerchecksum b7a549f88509351b337486b51ee9ec574323dbaadb507e7bc79f30e5ac91fcc6ba5fc485c3b5fc47daf2dd6ffb5f723cc0f99160857ec0896f6bc7a42926e652
+binfiles arch=i386-netbsd size=41
bin/i386-netbsd/chktex
bin/i386-netbsd/chkweb
bin/i386-netbsd/deweb
name chktex.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of chktex
-containersize 55260
-containerchecksum 3a83f9aecb40ce2f70b90005eadff8be64b8551e799dd6d2a24187189555db5fca048f4a11869ec692bb9ddda179df10536ddb77e67b2c4c19fe1515abe21b16
-binfiles arch=i386-solaris size=34
+containersize 56800
+containerchecksum 7336102a1b8c9e87f4af191519cdd5487b5a436b30ece71dbc1b91f1b93e255a5b819662a247fe85df12f611d9a8f5aa635bceb98b79d184237436ac74daf3dd
+binfiles arch=i386-solaris size=36
bin/i386-solaris/chktex
bin/i386-solaris/chkweb
bin/i386-solaris/deweb
name chktex.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of chktex
-containersize 108296
-containerchecksum df4905d7e9b43bb74068fe702a7c65205c698697cacb987cd4a1854721c45721a2b0dcb6bab824d3fca027de964d68e6c63e14b93ed97e7091eed621adb928cb
+containersize 109132
+containerchecksum 044d3e5b9f9ee20323cfb514df064dff43474e9ab8221a3902aabf2baee430f94a291d62e0dbb3d34b4f6403b64ddef1240024456c7c2d264a4029c162e37d74
binfiles arch=universal-darwin size=90
bin/universal-darwin/chktex
bin/universal-darwin/chkweb
@@ -59416,20 +59547,20 @@ binfiles arch=universal-darwin size=90
name chktex.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of chktex
-containersize 54244
-containerchecksum 5625beb5736cecb7713b9d9769ac77c067677368fd828b913f0ac796149e4814af1865878cbae34766d38de0a5e8bd692b3b4786c7f8d43d1e14d5b9db019e3e
+containersize 54236
+containerchecksum 80f33bdc1a8e09c9a3a286374e9918b5156f82ef65a49417dde7ebe3628cd6831b402ab7212d9de5e4e6970f7076682f3a0ee5dce06bf0648b8e54da70a54860
binfiles arch=windows size=31
bin/windows/chktex.exe
bin/windows/deweb.exe
name chktex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of chktex
-containersize 28604
-containerchecksum d3a8ed1e925aa68ce74c122af999f42f7c303d2c499dc375c727a0ac15bbafb4047f4fb1ea936668a18629781feb0741f31379733fe78020202df78b95e08740
+containersize 28592
+containerchecksum a539f9221c671f5836125ce5ae7fdedd6a391fc7b198ee47b9b2ecea8f1f9750b5b8e32b51874a1f96aa3aa57be43db40ef109ad49c03bad3e65a4987e55b392
binfiles arch=x86_64-cygwin size=20
bin/x86_64-cygwin/chktex.exe
bin/x86_64-cygwin/chkweb
@@ -59437,44 +59568,44 @@ binfiles arch=x86_64-cygwin size=20
name chktex.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of chktex
-containersize 56048
-containerchecksum f4fc1ff3ea8826380a27245c86b6a6d5ccebfc63b8f23400082c98b19a251d27726c72c88ac42bad8ea5f9ac2425c3a5c402d1f9924746bc7cfe073623ad5337
-binfiles arch=x86_64-darwinlegacy size=36
+containersize 56632
+containerchecksum bc14694e16b2e333887df15251c97b155fb8fa0734a8bae9b17c2e2287d2fecb00fa50d66ec97348e8a7f0815b9970976f073376239edb8bb13a5b3cdbb5cb60
+binfiles arch=x86_64-darwinlegacy size=37
bin/x86_64-darwinlegacy/chktex
bin/x86_64-darwinlegacy/chkweb
bin/x86_64-darwinlegacy/deweb
name chktex.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of chktex
-containersize 57000
-containerchecksum c48f8b492de2e4e703d2df4e756ea2d6dc8f721a96f4aff446da9cf93151fa6ccb894c5166984ac5f1b69a209de866d6e06a9d049639577c479615a26a5fcdcc
-binfiles arch=x86_64-linux size=37
+containersize 57376
+containerchecksum a157ea2409d7a04cd0d9360e98b26c7649af29914748ae3c962879d070dcce2060cb54306062176c24954316583711a162e0af6e94b78812e3d6c448c0d3d1c2
+binfiles arch=x86_64-linux size=38
bin/x86_64-linux/chktex
bin/x86_64-linux/chkweb
bin/x86_64-linux/deweb
name chktex.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of chktex
-containersize 61012
-containerchecksum 664ea2c4962beb5b6f54763030f4a7b5935e04c26314c887334917e9cc07a5e3595d00808f5da268c7f8ba3525c03767de878c23635e834f32655fc101c2961c
-binfiles arch=x86_64-linuxmusl size=39
+containersize 61428
+containerchecksum 71cea1ce1db2e2e6da96a42b20dad8c600020281c5230c21cc82e3fb64bf46643b5fd35f51c61d2c2d7e4723a42c3bfca0f08a019b9deae82d8fe94bdeaa1f1e
+binfiles arch=x86_64-linuxmusl size=40
bin/x86_64-linuxmusl/chktex
bin/x86_64-linuxmusl/chkweb
bin/x86_64-linuxmusl/deweb
name chktex.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of chktex
-containersize 61588
-containerchecksum c7979a7e6b0599a16ca88da644a67fada62689441c068779a997dc78deea3962d48b8baca2845222d2acef2ec4bf2b8a3617e11fc1a4fd856722ee0c94a7ffe2
-binfiles arch=x86_64-solaris size=40
+containersize 63640
+containerchecksum d74aac3fe578dc769d60e1c18c04d4b646a76dd4e7eb1223cc46022240acd712fef4b7e4933d4ff33114203128caae3464ba1be2ab46666a6035cf6ad085c237
+binfiles arch=x86_64-solaris size=42
bin/x86_64-solaris/chktex
bin/x86_64-solaris/chkweb
bin/x86_64-solaris/deweb
@@ -59535,7 +59666,7 @@ catalogue-version 1.1a
name chordbars
category Package
-revision 70402
+revision 70392
shortdesc Print chord grids for pop/jazz tunes
relocated 1
longdesc This Tikz-based music-related package is targeted at pop/jazz
@@ -59545,9 +59676,9 @@ longdesc patterns with "one square per bar", with the chord shown inside
longdesc the square. It also handles the song structure by showing the
longdesc bar count and the repetitions of the patterns.
containersize 4184
-containerchecksum 4049c18bc34bddb954779d2b534a84791967e6d9d5c246136a046e4358f3d2b7a0127705db5cb5ebcc0e822241dbb3c17dea23d194ea71ac6d7ca40d59b9b37e
-doccontainersize 342152
-doccontainerchecksum 1a405a02e3fb813c7abd4c3925b0ccfe38129857ed5d23041ef2eab47f51206ac476727558cd50ac49b6eae3c8f67fdbfca6de252db0d95a951fc28add5a0a41
+containerchecksum 8f0e2619e35b40852f8c7f9d7e20cf47ff8c62cc12f1f5e132f0609033fdeb59fab4c9f04361b5f71f2192feaeb554565a0a2dbcc1db586445775c87d8bba4a2
+doccontainersize 342132
+doccontainerchecksum bab572050139cb08a95551d575d77fac97fb551ff2ff60107a9bdcd97d64ba92a8af66528d116ef7ffe06f4afb2536b7de1c2d55b6f12d7ad65f8d40001cccb3
docfiles size=92
RELOC/doc/latex/chordbars/README.md details="Readme"
RELOC/doc/latex/chordbars/chordbars_manual.pdf details="Package documentation"
@@ -60625,7 +60756,7 @@ catalogue-version 0.1.1
name citation-style-language
category Package
-revision 70583
+revision 70622
shortdesc Bibliography formatting with Citation Style Language
longdesc The Citation Style Language (CSL) is an XML-based language that
longdesc defines the formats of citations and bibliography. There are
@@ -60647,10 +60778,10 @@ depend lualibs
depend luatex
depend luaxml
depend url
-containersize 2822296
-containerchecksum 76f5e35db0ad1ad5a2bc01a6680fc27f5721bdca3f7fb2d10c19e77583947f5fbdd7ea79b8ac63d322418eff0f48b2d45384d0be195eb43b502548773f0da291
-doccontainersize 246908
-doccontainerchecksum 3a432364b82ccbbe402e5aa10e2c17ff5a9d6e9e8611c8ac0e8385fbcc43418adf9a3d2237d10fe9f98e8b60336945fa5ade19583f35c9224a5ec3885932559b
+containersize 2822648
+containerchecksum d4ca295d9e73d2eb640ed256ae92e79681d2eb09ba174cc3409c2a127827543892989b9f23fa6d8b81793d0a317334ff1afc954526a132117f54eeb8fd50ec44
+doccontainersize 247064
+doccontainerchecksum ef5bab4566cbb5e5b72a5a508d1e721e52a84d868373d68f03c3d8c013e8935c37c0a54615ac832e82fd04030134ee65558702a6d27db119337b5fde1fc29a83
docfiles size=70
texmf-dist/doc/latex/citation-style-language/CHANGELOG.md
texmf-dist/doc/latex/citation-style-language/DEPENDS.txt
@@ -60772,7 +60903,7 @@ catalogue-contact-repository https://github.com/zepinglee/citeproc-lua
catalogue-ctan /biblio/citation-style-language
catalogue-license mit cc-by-sa-3
catalogue-topics biblio use-lua expl3
-catalogue-version 0.4.7
+catalogue-version 0.4.8
name citation-style-language.aarch64-linux
category Package
@@ -61675,7 +61806,7 @@ binfiles arch=x86_64-solaris size=1
name cjk-ko
category Package
-revision 70332
+revision 70300
shortdesc Extension of the CJK package for Korean typesetting
relocated 1
longdesc The package supports typesetting UTF-8-encoded modern Korean
@@ -61684,10 +61815,10 @@ longdesc some enhanced features focused on Korean typesetting culture,
longdesc one of them being allowing line-break between Latin and CJK
longdesc characters. The package requires nanumtype1 fonts.
depend cjk
-containersize 8716
-containerchecksum e5b28f36f37e407cdcebf10dbbcc34b4a286b6bf04e6722c1821ca9cde7037893109a81e5195622b5c57de726c408371734aa69b0e1cebef25508794e86a1422
-doccontainersize 161688
-doccontainerchecksum cbd60b19403c80674b3d2954dbc2728529b81c38fdf84ad25607e188aec9aa14c5496b73d5c998773ebc9a4825748f85a5b6f37f53fcf8fdccd99f7288f6f426
+containersize 8732
+containerchecksum 5b1b4a5a72b1c6be632e52586c42e9761476fba7f8e365bfe4433c640ac139ce53044eda22e1110f2bff9ea0d1299fa265485d500fa9f9c0949dd37b8baecde8
+doccontainersize 161668
+doccontainerchecksum 0a7d2f1871c39edac742f7178f0c66274620736fa73fb692d93c8c3bbfa220edb0f277fe3cd1440f70bd5560c349f9f99892096837d5d116c0e1d4aed5ab09de
docfiles size=49
RELOC/doc/latex/cjk-ko/ChangeLog
RELOC/doc/latex/cjk-ko/README details="Readme"
@@ -61797,10 +61928,10 @@ catalogue-version 4.8.5
name cjkutils.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of cjkutils
-containersize 47944
-containerchecksum 9e337cb66cce9047fd0f4218e5389cfcc81f0fd3894cc5a113134ac04cbcc880a5fa9d793c1f06732a53a055052ed444170aea277617293b1c5f840329f55aa2
+containersize 48256
+containerchecksum c54203535e20df2aa8c40fa8775fe739319df850dcbb12da22bebb935817fde87db9aa59e7a231c2990790499324eb0eb1c70b00d845fc28d57c52501f360998
binfiles arch=aarch64-linux size=57
bin/aarch64-linux/bg5+latex
bin/aarch64-linux/bg5+pdflatex
@@ -61826,11 +61957,11 @@ binfiles arch=aarch64-linux size=57
name cjkutils.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of cjkutils
-containersize 50704
-containerchecksum 02771b23c70b7cf435058c8414e928f971796d7fb236bbba9eb316980355f14f320a8c672bcaec3ba8928607ed13d176cf0d55da22552ff44bf47b85c5008a2b
-binfiles arch=amd64-freebsd size=54
+containersize 46772
+containerchecksum 58895d729b25158b9b4f05649368498aa5b0343d90ea3ab0af190c383d4fd8777d3b0889332f58c5d02e87287d52cd4dc41d132e2dc96ed91792473160e7577b
+binfiles arch=amd64-freebsd size=61
bin/amd64-freebsd/bg5+latex
bin/amd64-freebsd/bg5+pdflatex
bin/amd64-freebsd/bg5conv
@@ -61855,11 +61986,11 @@ binfiles arch=amd64-freebsd size=54
name cjkutils.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of cjkutils
-containersize 44760
-containerchecksum c488ab43fc438b022dc05c521daecb8bc04aa6faa3ce9fb066d8c1e87c2831145b676e9d1339b3924ce0556e5414318b34449b5495b4515b3de9504263df7fd1
-binfiles arch=amd64-netbsd size=60
+containersize 45180
+containerchecksum 7e77332c103c0d0e51bef4f41266698e698bf944746f02a25548223dc93f01a11722e50b2e4f2b173d4f32e5ed14fa648ae08172de737aebfd0992e8f6907f29
+binfiles arch=amd64-netbsd size=61
bin/amd64-netbsd/bg5+latex
bin/amd64-netbsd/bg5+pdflatex
bin/amd64-netbsd/bg5conv
@@ -61884,11 +62015,11 @@ binfiles arch=amd64-netbsd size=60
name cjkutils.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of cjkutils
-containersize 40224
-containerchecksum 141b7133496bc26c14f9fd0913f8952ea2ef8f330349acb17d07e00e2157fe1f791cfd684d51a9f386f479a8f78d5d118a73004422a87e9dc4dcb2150ea759ff
-binfiles arch=armhf-linux size=48
+containersize 40516
+containerchecksum 5cfcb0f72aee728e8c7c6be2ff731422ebb321721eca1d81cf56a365a5a5b0608fde1ddf7d20ab027f23707ec53db7c8f13ffcef9b06fa2d8811be1a18455a1b
+binfiles arch=armhf-linux size=49
bin/armhf-linux/bg5+latex
bin/armhf-linux/bg5+pdflatex
bin/armhf-linux/bg5conv
@@ -61913,11 +62044,11 @@ binfiles arch=armhf-linux size=48
name cjkutils.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of cjkutils
-containersize 46084
-containerchecksum 58ea62c67596d004a8c36f5ae81908f5808ae35362a9371057bd4a0c76042132bed705f9b9301f0d46340189abf3ea7050707b94d13c616f3df3b18dc85d2261
-binfiles arch=i386-freebsd size=50
+containersize 46776
+containerchecksum 7c89f7d4bfb5d77d1189350e018201a2add9b60091d833a693ed0fab42126f7fd42e50f33bc3f9bb62036cbcf936438a16ae6bbf2a14dd67fc6cb98dbc0f2336
+binfiles arch=i386-freebsd size=61
bin/i386-freebsd/bg5+latex
bin/i386-freebsd/bg5+pdflatex
bin/i386-freebsd/bg5conv
@@ -61942,10 +62073,10 @@ binfiles arch=i386-freebsd size=50
name cjkutils.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of cjkutils
-containersize 51780
-containerchecksum 1a63d00cb420d9774ffee8a20eca9d2201076dec86daa6b2f89806973f52a803d806db22a944e83aa8d590d36b321ccaec222cb70cee3130319b9a0e8f3c1643
+containersize 52212
+containerchecksum a6b471950dfca6a3ec00502c35e5561a457ab8a5ad2d834915e061f384333520f6920e647bdaa57bb7d5ea6acfc47522763bb0fb086a919df38709de94528ce1
binfiles arch=i386-linux size=56
bin/i386-linux/bg5+latex
bin/i386-linux/bg5+pdflatex
@@ -61971,10 +62102,10 @@ binfiles arch=i386-linux size=56
name cjkutils.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of cjkutils
-containersize 41392
-containerchecksum d0275dd5248d891672497aac2ea74ef56676c6c75ccfc2e13a87b83ef22d4214610b216f7a411847b2f99c34c80f8c44a1e9b30f98f0cc597a2c0abe30dbe6b5
+containersize 41744
+containerchecksum bac816cc195c064382e7a595c927ef8bb6a29715502f7f49887367d5e40360d33e4af48ec29ea8ecbfea135a2e73bc3712bcc67b0f1b0b655ccd5aec16187d3e
binfiles arch=i386-netbsd size=55
bin/i386-netbsd/bg5+latex
bin/i386-netbsd/bg5+pdflatex
@@ -62000,11 +62131,11 @@ binfiles arch=i386-netbsd size=55
name cjkutils.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of cjkutils
-containersize 48084
-containerchecksum ee5097ff4964b4063c0d7411da9b61b213748570fe64257531b49fcd11429ae01fc4de7718eccfa096ccc41664f5b005cff344b526e0654cd036606d71790dc8
-binfiles arch=i386-solaris size=51
+containersize 49704
+containerchecksum 4062e87cd458a63c0f87ad27d267e1159556a77ec7a48786288842bd4eae63ddcfd4360702404eb920b75885fc49241fe0c441b167f6802ed8d4626b3bd866cf
+binfiles arch=i386-solaris size=52
bin/i386-solaris/bg5+latex
bin/i386-solaris/bg5+pdflatex
bin/i386-solaris/bg5conv
@@ -62029,10 +62160,10 @@ binfiles arch=i386-solaris size=51
name cjkutils.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of cjkutils
-containersize 102980
-containerchecksum 2001342bfbe896f6ce3e6366bc6baa455c25131ef60af578a6172cc46ccfe7dea4109ea93958591161bc165a309b09d9f167d394ac814efeb117cbd2f9471670
+containersize 103960
+containerchecksum fe72db5955a05481890f9adb09ac37bd081cee1572872b92591eaf01b7105c016165cd61958d7037f63016ae5ce34ac81b92da834bf4f2f2039acec26b1a1fb1
binfiles arch=universal-darwin size=264
bin/universal-darwin/bg5+latex
bin/universal-darwin/bg5+pdflatex
@@ -62058,10 +62189,10 @@ binfiles arch=universal-darwin size=264
name cjkutils.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of cjkutils
containersize 24992
-containerchecksum 6e03f7578219d390ad192e4c4ef463f1dcb964c100eb8a72b157eb46c5980e0cfe683bb7f58362ce8cec8b8accfbc3e33a90b564ade34ef0a2087cd1b4aab7ba
+containerchecksum 183a3e9c5a0aa3be9702e13e029621eb37d23d3d25850c38fc0a2396cc973f92b39e395d0b47d3b4b05e21cce51ae3743ac280ca6103b223ab897524931d1b7a
binfiles arch=windows size=57
bin/windows/bg5conv.exe
bin/windows/bg5latex.exe
@@ -62085,10 +62216,10 @@ binfiles arch=windows size=57
name cjkutils.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of cjkutils
-containersize 20144
-containerchecksum 0bb3c331ea72d5d607ef82784b11692a4c359ac61b614302e6b33edf55e4836633b0b1b7f434db15aaedd96c06237439b9919263173c524d9d72cfef2cfde372
+containersize 20108
+containerchecksum e27bb42858182a0ebd05f5a86689d87a118f7a5ed9e2548ae6ff3ecdb51f1c2124a84a5ae5d7016af4b469c6339a98fb80e6b1dd4d248825a2cae102c6e8b23b
binfiles arch=x86_64-cygwin size=42
bin/x86_64-cygwin/bg5+latex
bin/x86_64-cygwin/bg5+pdflatex
@@ -62114,10 +62245,10 @@ binfiles arch=x86_64-cygwin size=42
name cjkutils.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of cjkutils
-containersize 46708
-containerchecksum 2adce84dc2bde606c4432c4a8f4481e3be449ae622f484ec9838fa93ece0d8102cf522bbde722513ae37e5a38ecc77875199a9aa6ce3e7712dd7d940c3aa7fb9
+containersize 47236
+containerchecksum d93a3dc9aa7a875ca04bfafe3cf779ab0ef81480e5e20b1a21e0b04be0434e2b9270b1667002e34eddbcfd07088373ec53f0d5e0d25b921440e6aa123c1aebbe
binfiles arch=x86_64-darwinlegacy size=58
bin/x86_64-darwinlegacy/bg5+latex
bin/x86_64-darwinlegacy/bg5+pdflatex
@@ -62143,11 +62274,11 @@ binfiles arch=x86_64-darwinlegacy size=58
name cjkutils.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of cjkutils
-containersize 48984
-containerchecksum 8f67af53d2a12529eb5d47bfde9da0a70f7515b59fd115756ddff8f25b96e304e4940fd01c8fd3254f38bedef7855222042d8444796b9b6a180e5434f4ebeec3
-binfiles arch=x86_64-linux size=64
+containersize 49452
+containerchecksum f0570529b6da4d082d539bdaac16ab5d9a7c3c69fc259f3498bada33b0f91e9d573af9f12824c930aa9dede6f5aeace0e4ed00e44c9d0affd6edd2d6a6cea303
+binfiles arch=x86_64-linux size=66
bin/x86_64-linux/bg5+latex
bin/x86_64-linux/bg5+pdflatex
bin/x86_64-linux/bg5conv
@@ -62172,10 +62303,10 @@ binfiles arch=x86_64-linux size=64
name cjkutils.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of cjkutils
-containersize 50476
-containerchecksum c1a2be0a1b447ab1ce74fd0e7d9797faa91b4d888cf3c55b3a9ddec11922c8f615d643573f96838d33072fe0bd9bc9df066f23760175c0289ea4693708fc69db
+containersize 51016
+containerchecksum 017b296b4178e06d884ddefa4a87ea7f64bcfdd0d85e7c32b3283e8694fa989aecc7c6015c256ad4f8ce516743be91fba6fecce8c2fe19059bd8d65cfc2a9c10
binfiles arch=x86_64-linuxmusl size=56
bin/x86_64-linuxmusl/bg5+latex
bin/x86_64-linuxmusl/bg5+pdflatex
@@ -62201,11 +62332,11 @@ binfiles arch=x86_64-linuxmusl size=56
name cjkutils.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of cjkutils
-containersize 52276
-containerchecksum 3c4537b1588df936d3b51689a12f5955fd7fdbb3e8db30af04d673d599f5ea8249ccd8807003f30c340508d25c1425cf714ea560bbceca26af0ecf2847b27473
-binfiles arch=x86_64-solaris size=58
+containersize 54632
+containerchecksum 389bf1453c4e0dbc98b46b0bc6de20edd5c2dcc821f2e2852a97c1997c269949ec4e3fb75ba6207b703221b17fa44b044ebdfc032bd2777ec10a1d096f6c8a0b
+binfiles arch=x86_64-solaris size=59
bin/x86_64-solaris/bg5+latex
bin/x86_64-solaris/bg5+pdflatex
bin/x86_64-solaris/bg5conv
@@ -62970,16 +63101,16 @@ catalogue-version 0.21.4
name cleveref-forward
category Package
-revision 70181
+revision 70176
shortdesc Forward-referencing functionality for cleveref
relocated 1
longdesc This package aims at providing the forward-referencing
longdesc functionality for the package cleveref. It is derived from the
longdesc package cleveref-usedon, with several fixes and enhancements.
-containersize 5948
-containerchecksum bf65342e8e5d0a1299e160611044f17a6f68df342ec9bdcfe64c09ed766a7fe72b39a4d1915011b077a42261686a066b8b435f36ec6d2e0b72324cc4bc9e1381
+containersize 5952
+containerchecksum 7e928e84bf97dc55c8bc1300f29887b5ec6a50702564529b48d98c068cfc80ae6ea2417f3bd0a9fa0310dc878fc9073ae960bdc1f31cb13c8fa674845be86149
doccontainersize 75248
-doccontainerchecksum b89360c16f6f77ed7386f51afcf4e46aacdb6d1f567fa5dbd4d05e46953d1a0cfba24af687abae59a72189ad84eb475d80ffb6c613ba8b3a88a91c9008a1ffea
+doccontainerchecksum 681ddc0ccf8c6b6fc14bcbe165e3cccc7f6b49b690db6a73401737241ece6867a93be2f670ea5baa950bed4bdb7c8b3ca581dcd9eee3da8b2eed28174181328b
docfiles size=26
RELOC/doc/latex/cleveref-forward/LICENSE
RELOC/doc/latex/cleveref-forward/README.md details="Readme"
@@ -62994,7 +63125,7 @@ catalogue-topics label-ref expl3
name cleveref-usedon
category Package
-revision 70496
+revision 70491
shortdesc Adds forward-referencing functionality to the cleveref package
relocated 1
longdesc Imagine you are reading a long mathematical text such as a text
@@ -63017,15 +63148,15 @@ longdesc \cref[UsedOn]{<LabelName>}. If you use \cref without this
longdesc optional argument, this reference won't be recorded in this
longdesc page list.
containersize 4004
-containerchecksum 2703d610437ab3f244f0e627310d4cb5b5a6a29e29d04458eb7a566bc97a62882e3a5e14bd4717baa77b9062338d91fcbb0b0b05fbc257579b94d8ff550c96e1
-doccontainersize 619860
-doccontainerchecksum 7b967ed70196eca0537012c97dfe91613e9e54a387c0365acece66132cf513c2c1fb7ffd030e0f18c2ca079be4fd5f7ae8f47959ed1d127251febc3b4f422454
+containerchecksum ef67e50ab2da6b16e97a99959f2b53a53844f2f408d265191a561dd0691f17466d14a54b24ad6fcc9a520f151901d8fff5809be92f48e580bd049a6e21e189ee
+doccontainersize 619856
+doccontainerchecksum 6938b89110b209139d6cf1af024976a688233ef5ca074754572aa5d9d2782a6748377fa13983db0c55c363e86532d1d8241c5b6e1c433b5e75c8bebc108c2244
docfiles size=158
RELOC/doc/latex/cleveref-usedon/CHANGES.md
RELOC/doc/latex/cleveref-usedon/README.md details="Readme"
RELOC/doc/latex/cleveref-usedon/cleveref-usedon.pdf details="Package documentation"
-srccontainersize 10508
-srccontainerchecksum c082df105534c961fb1e28065aecebaec2a8d03f2d450d7ba96871f06c9eff232b61b5a4e2ea142f62a720f04d776b6a3ae21f11bdab77dc6c2a95f4db6ce4e6
+srccontainersize 10504
+srccontainerchecksum d8dec440fabe3de88fabcf1abe3e542d28d631afd3a4cb3d9709fbc81cbd6f33d95af15dfb324128abc17c2607964623b5df66162364e47c98224df76d980b16
srcfiles size=10
RELOC/source/latex/cleveref-usedon/cleveref-usedon.dtx
RELOC/source/latex/cleveref-usedon/cleveref-usedon.ins
@@ -67762,16 +67893,16 @@ catalogue-version 1.1
name cnbwp
category Package
-revision 69931
+revision 69910
shortdesc Typeset working papers of the Czech National Bank
relocated 1
longdesc The package supports proper formatting of Working Papers of the
longdesc Czech National Bank (WP CNB). The package was developed for CNB
longdesc but it is also intended for authors from outside CNB.
-containersize 10092
-containerchecksum 1e52436349c9f43a04b40ded7f35092d644ea056b5be1f91ce9efc20a5c47211017cb000ba5b3734d29fcf0553e61193cfa141ea945367362c924a061392b2a8
-doccontainersize 686436
-doccontainerchecksum 685c09924feb372af74ff578a74c4a4ed24a7b9ddbac65d8f8e2c17ba4b80e7f34d49d71ef9251b619b363a83dbbe12114aed547bff6e29d7053261cae169d22
+containersize 10112
+containerchecksum c5f35424e63c3cf16eb2a71380917e1e8e33d1ebf62a4472b989c4e4df8b9f84d45bb6220e92eeb614aa40d0bdf977a47a905389072d066dc93b009856deff17
+doccontainersize 686408
+doccontainerchecksum 300c9fa3a5b23001c03c2bd2e0db994e2f9168068afb39185064a70b85d5da9a62ca652959b2dc8a71735cbbe96d029b10fed51bb22ba6a386d9b555905925e4
docfiles size=244
RELOC/doc/latex/cnbwp/README details="Readme"
RELOC/doc/latex/cnbwp/biblio.tex
@@ -68205,7 +68336,7 @@ catalogue-version 0.3
name cochineal
category Package
-revision 70537
+revision 70528
shortdesc Cochineal fonts with LaTeX support
relocated 1
longdesc Cochineal is a fork from the Crimson fonts (Roman, Italic,
@@ -68223,10 +68354,10 @@ longdesc adding about 2000 additional glyphs, which I could not even
longdesc contemplate. The fonts are provided in OpenType and PostScript
longdesc formats.
execute addMap Cochineal.map
-containersize 2586640
-containerchecksum c8468bf472552dbbcbb84a5134a5ddc84405aab0d3b98015aba60d6da0e02896d929582778bfecf3694a7a0174d31214c9231a1da11284af6fdf3362b95e179b
-doccontainersize 387980
-doccontainerchecksum 43f7de109858a3e9a120b51022d3cab77dd0ae4ee2dd5e2d032ed3f9ba669ce2f5280bd359d8dbf158181727442e1e00ac8914d8cbe3edb93c40ab01362a2dbf
+containersize 2586384
+containerchecksum 41af2ebf59705b60c9713bf814b15f1d0b9613d2ee04d8b45764d06ccd479ea9a5050858c9a5c536bfe85595ec4c7f7dd186624436bbcb388a37c7f9ee35111a
+doccontainersize 387952
+doccontainerchecksum f76599d36e9c3650cd20b678ae699942de3380141018e9db74b342ac8fca6b50f4ae75abf4957727b37cdacd24a5a4df4b728aa9b2eb2886a3049e002e548032
docfiles size=121
RELOC/doc/fonts/cochineal/OFL-FAQ.txt
RELOC/doc/fonts/cochineal/OFL.txt
@@ -69081,7 +69212,7 @@ catalogue-version 1.0.4
name codedescribe
category Package
-revision 69944
+revision 69943
shortdesc LaTeX code description and documentation
relocated 1
longdesc This package aims to document both document level (i.e. final
@@ -69090,10 +69221,10 @@ longdesc fully implemented using expl3 syntax and structures, in
longdesc particular l3coffins, l3seq and l3keys. Besides those the
longdesc scontents and listing packages are used to typeset code
longdesc snippets.
-containersize 11100
-containerchecksum 5c3fa3c2843820575d28e1c9adced0cabf0f19fc4ae8022eef4fe18f18cf9cffe8582cb4d8b2f5d064bb5f836641f2229a6f0b6976556a9bec4ae66739b48c00
-doccontainersize 240104
-doccontainerchecksum 305c4b68a7011697c750789cbffcf09a45b3704ded67538efd6ef134c499cf42c50ff3a6503350b75cdac07574360941f66ccb67044a5f5db4ba6f050604c3f5
+containersize 11108
+containerchecksum 90b1ecf44f47686ae877cfaf822d298dacfa4ccdb23fbba52809bb95d34015223d014d49adb2ca54408bd2e99536bcfd28a0e78bcd7f7c8d106d42235d57d6ca
+doccontainersize 240096
+doccontainerchecksum b216586a47e207f374d9ab248cc1f14cedbba9c1237ccbd0afc77471ce320a6832f77cdc2b6f537110164183b6ec611456be5b3612ed947d0de97de3e8f52b5e
docfiles size=69
RELOC/doc/latex/codedescribe/README.md details="Readme"
RELOC/doc/latex/codedescribe/codedescribe.pdf details="Package documentation"
@@ -70123,7 +70254,7 @@ containerchecksum 4241bc3a3ef21502faa9a2e0b16295126c357fc15813a625306552b40f9da8
name collection-bibtexextra
category Collection
-revision 70566
+revision 70554
shortdesc BibTeX additional styles
relocated 1
longdesc Additional BibTeX styles and bibliography data(bases), notably
@@ -70295,7 +70426,7 @@ depend windycity
depend xcite
depend zootaxa-bst
containersize 1300
-containerchecksum 8a96e8a580846ea80c0be60ba037e761f5d695eb184c72da71709bf528368ac18464cbf955ba5fc6e6b574aa9ad76d2e26797907f141753716c0deccf625d6d8
+containerchecksum d138eb5208d32746217d4dc99612553585d8c9eef2b492f92300a63c83d992c5aecb46b67a3003d690c086f9a17be43e864b5cd97430568ea86e9dfbfaeb3172
name collection-binextra
category Collection
@@ -70452,7 +70583,7 @@ containerchecksum a8426893d3b9cfbddfffa383dc7898f7abe48271695dc6835abb2cda70ca19
name collection-fontsextra
category Collection
-revision 69663
+revision 70142
shortdesc Additional fonts
relocated 1
depend aboensis
@@ -70544,6 +70675,7 @@ depend comfortaa
depend comicneue
depend concmath-fonts
depend concmath-otf
+depend context-companion-fonts
depend cookingsymbols
depend cooperhewitt
depend cormorantgaramond
@@ -70811,8 +70943,8 @@ depend yfonts-t1
depend yinit-otf
depend ysabeau
depend zlmtt
-containersize 2020
-containerchecksum 307728e63dab6f629ac955def8049a9c513fed366ebbf6896bfe21adbe3379941a85ac01dce0647393801ed1d6e4a95d6831e476d4d9805e815ba197f006b99b
+containersize 2032
+containerchecksum 78b762753c3751d4b3fbf8467ee282ddd3dfa870ed246ca291414f1e2c47769052806bedd3c49b85f4354c7158d9069ef7f7dfce6767e68811af9615cc7aa94d
name collection-fontsrecommended
category Collection
@@ -70926,7 +71058,7 @@ containerchecksum 6c7f0a1829789edea6a42d45f13f482abc0aa1ecc66b0ba4b70197efff349d
name collection-games
category Collection
-revision 70179
+revision 70178
shortdesc Games typesetting
relocated 1
longdesc Setups for typesetting various games, including chess.
@@ -70987,7 +71119,7 @@ depend wordle
depend xq
depend xskak
containersize 636
-containerchecksum 005e7e6ea5401369c09bdbb94a1bf6a2f8f35223d5a10ffee524481bfe4033c544aea2142a8af721ea62f6f0d37db84874c3214c857003b82a8ee2c191d0cb5c
+containerchecksum b7ca78361832d066c476fe7100ba67efd57b9deb9b9a337223bf92363d4c168edc2a35a7ba920d982176fc58f046262dc17b6f35958c29e8f0841847827d2c91
name collection-humanities
category Collection
@@ -71256,7 +71388,7 @@ containerchecksum 719c321173ca12660891080dae509080934f72d13a9417b2c40a22add963c7
name collection-langenglish
category Collection
-revision 68790
+revision 70018
shortdesc US and UK English
relocated 1
longdesc Support for, and documentation in, English.
@@ -71327,13 +71459,14 @@ depend titlepages
depend tlc2
depend tlc3-examples
depend tlmgrbasics
+depend typstfun
depend undergradmath
depend visualfaq
depend webguide
depend xetexref
depend yet-another-guide-latex2e
-containersize 888
-containerchecksum 49f20b883df99755070b68d3eacb29c297e76a05b3151d632c26fcf2864d996e4873bbab27429db915f93995923d5b7e680a3c901b28cac888ffa021bc629b74
+containersize 892
+containerchecksum af25a5206f9d54f8a29f80c5053be392f7505502e88428e350da2b5fc639b69556bcd48399d5962d9f672f0df1206b3f1baa9b08d3ce9c254adbe3cdcea25868
name collection-langeuropean
category Collection
@@ -71594,7 +71727,7 @@ containerchecksum 6ec5e8a62e3c1ed8e3c23542381091d38c77af507af7088a55e44f1e34b85d
name collection-langjapanese
category Collection
-revision 69967
+revision 69966
shortdesc Japanese
relocated 1
longdesc Support for Japanese; additional packages are in
@@ -71665,7 +71798,7 @@ depend wadalab
depend zxjafbfont
depend zxjatype
containersize 680
-containerchecksum 18296a73452e8d346ba10b8241adfdb6b0a258dd443517a566e415f418e7c158c6d179f20c5818a36fcb12bce816571c0d317120f033ca1f20c5acfcfa00074d
+containerchecksum 638a309f4be1b7db635cfb701cc54ac7e1a4ab05058ec7e88356e5681131557992db87a22bd2a9c2485fd90ae104a840a6127a3839dae7f041fe2dc390ca4205
name collection-langkorean
category Collection
@@ -71909,7 +72042,7 @@ containerchecksum 889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a0
name collection-latexextra
category Collection
-revision 70534
+revision 70533
shortdesc LaTeX additional packages
relocated 1
longdesc A very large collection of add-on packages for LaTeX.
@@ -73453,12 +73586,12 @@ depend zref-clever
depend zref-vario
depend zwgetfdate
depend zwpagelayout
-containersize 7144
-containerchecksum 98a00a699b249cc95f5466322fff70b07b94a3e3941b10dbb2a052491e23e733f902c9281a76279363b55a5b59c0d5afb84017c4bba48459525e22c431876dd9
+containersize 7148
+containerchecksum ba3c2a1bd32a405a2e2e95d2f2536787e8920a277db620bfcd2aa76347d0fc0cee1c5f42b57965aaf3d2fb09d485537a94170c22008ef3d9c4e3502ebd77d03e
name collection-latexrecommended
category Collection
-revision 69888
+revision 69841
shortdesc LaTeX recommended packages
relocated 1
longdesc A collection of recommended add-on packages for LaTeX which
@@ -73537,7 +73670,7 @@ depend xkeyval
depend xltxtra
depend xunicode
containersize 740
-containerchecksum edaa03608bca82f73cc7ac7114443536570bd6774cee90ba4058996096f3f461a2198cf89d90c3e749bc5305447f32b3facff5c26fa56a5ac5a3eee71cf30222
+containerchecksum 3b8c139a85a7c4361513da6bfd6bbda95c13c17732e96a1cc3e0a5c91a614cb3908c936706b1294381986e2c8fdb036c463061c8f01f97e27f6963eb56ed655c
name collection-luatex
category Collection
@@ -73656,7 +73789,7 @@ containerchecksum d03b9242340be7be8c32e87c2773bb8aecd4a6b7e1594fe755d9955f111dad
name collection-mathscience
category Collection
-revision 70357
+revision 70350
shortdesc Mathematics, natural sciences, computer science packages
relocated 1
depend 12many
@@ -73922,7 +74055,7 @@ depend yquant
depend ytableau
depend zx-calculus
containersize 1728
-containerchecksum 1fbc1238b2017d8c2a75c86a654308e02c004309d1c64b994b9f1dcc7dfb9bc62736c999773277288f0a6b391bd447252274f49d2168b70302b4ac2ca8a3c00c
+containerchecksum 8e9557925fdfed14481dde1d136df1c71cbd64d45383c82fafa8c54749619c87cbe6ded8c994e5694279883f468bb8bbfb9307c9990b1ecce021f3e8de6211d0
name collection-metapost
category Collection
@@ -74029,7 +74162,7 @@ containerchecksum 26100feabd6d95d8b29f0160f7e9b86d06e5055387acc63fe6e47fa0e68156
name collection-pictures
category Collection
-revision 70538
+revision 70530
shortdesc Graphics, pictures, diagrams
relocated 1
longdesc Including TikZ, pict, etc., but MetaPost and PStricks are
@@ -74294,8 +74427,8 @@ depend worldflags
depend xistercian
depend xpicture
depend xypic
-containersize 1688
-containerchecksum 1851e3e460f1d5fc2c1f8e04e209f800f9ac27337fef200b3f200cee3580b4ff816784f00aa2dec1d7d7f36711d8cc043033ba2f512dce2933d078aa5c72d5b2
+containersize 1684
+containerchecksum ee382a695fc29f8906fff420944140baaeab0b712c79bb3bf88585dfff619d3e82d2f72a163f8e01274442583c214b07ede64877b9c89f993a7a4aa99760ca54
name collection-plaingeneric
category Collection
@@ -75153,7 +75286,7 @@ catalogue-version 0.2
name colorist
category Package
-revision 70101
+revision 70100
shortdesc Write your articles or books in a colorful way
relocated 1
longdesc This package offers you a LaTeX style file and two classes to
@@ -75169,10 +75302,10 @@ longdesc simplified and traditional), English, French, German, Italian,
longdesc Japanese, Portuguese (European and Brazilian), Russian and
longdesc Spanish typesetting, and also use more beautiful fonts.
depend projlib
-containersize 11644
-containerchecksum 5ff0c8affd4c3fe364bf9832811f5536316c383c212a85d78cbff62af4155092f6602b3a82d6a1bdadfa5bfb60c257a3b066658ec1704b31e24e1844c61f2a2d
-doccontainersize 7424
-doccontainerchecksum 133f8e9e5e504aa069ed60e7549579064664bb375af27e9e6457bc0347201a5902c1a3c699c4eecec5485fa905c7f026af9fe8a2de3aa8d5d2daac8c95efac83
+containersize 11636
+containerchecksum 4f35c4a502ab1d59a798f12015ad37b53f351118fbf0e2f46294c39654642f7fba389280ab03cd4315810092595de73f4994829be95598d774b08058d6d36404
+doccontainersize 7436
+doccontainerchecksum 1aad731c120e8a6339f97df7805be8b56d88dd86d6d134f647483c247843c35d28723678c90f6842e9e0aae6223c369206ef684b04724cc846f591b896509fdd
docfiles size=7
RELOC/doc/latex/colorist/DEPENDS.txt
RELOC/doc/latex/colorist/LICENSE
@@ -75284,22 +75417,22 @@ catalogue-version 1.0
name colortbl
category Package
-revision 70034
+revision 70019
shortdesc Add colour to LaTeX tables
relocated 1
longdesc The package allows rows and columns to be coloured, and even
longdesc individual cells.
containersize 3644
-containerchecksum 3f1e703d76afea29b9cb9a2e1aed6e130b4be09982898260ef0e40f41eb99e9b948e89307c2d8b605777983bd8be46e874fd40080803d5b724f99f00c7b7a11f
-doccontainersize 643940
-doccontainerchecksum 412e8399bc8aadaf131fdc07de0148c7fefa1e207788a8e9c4a82914bb99f75a3c352f60f958913ea351d31571a17c8e3b539917e72fd2b9b83b0c04f0e3675d
+containerchecksum 9efd1cceb9c00873f3564fdd7aa0985099f683a0f517c0194753597af32e92a7bef2efcef3b990b7417ec396e8679b797b0133b2f57db65ad2b4a2fb2f0144e0
+doccontainersize 643956
+doccontainerchecksum 63d07515c9cdd053f1cbfed0d374c0cd9cf44e773185ee74d38e053a8c425990d26cd7f390f717354bd3fb55d8ceb34a09b78e0c79302e0a9717f14a21051810
docfiles size=169
RELOC/doc/latex/colortbl/README.txt details="Readme"
RELOC/doc/latex/colortbl/colortbl-DE.pdf details="Package manual (German)" language="de"
RELOC/doc/latex/colortbl/colortbl-DE.tex
RELOC/doc/latex/colortbl/colortbl.pdf details="Package manual (English)" language="en"
-srccontainersize 12880
-srccontainerchecksum 05de4cb9140c7abf6be215a1485e392cdf12108d64716407e6605ce87b946c062e568fa264d3e78934a685d91f5bee38ff737a86d9a4ba54c9c9f77c7418a349
+srccontainersize 12888
+srccontainerchecksum d31ade173fd67fa81e4617d21f3f23c55b282b25f3ecde6948cbbb2d14af9570ad3e4d5ba0cbc8a74ee4aa2f72b7ad33a41834455a18edc277db93d74f17fbcc
srcfiles size=13
RELOC/source/latex/colortbl/colortbl.dtx
RELOC/source/latex/colortbl/colortbl.ins
@@ -76603,17 +76736,17 @@ catalogue-topics font font-mf font-maths
name concmath-otf
category Package
-revision 70337
+revision 70294
shortdesc Concrete based OpenType Math font
relocated 1
longdesc This package provides an OpenType version of the Concrete Math
longdesc font created by Ulrik Vieth in Metafont. "concmath-otf.sty" is
longdesc a replacement for the original "concmath.sty" package to be
longdesc used with LuaTeX or XeTeX engines.
-containersize 255244
-containerchecksum 87b99735bef0cb6583b153794c64f9b4d76a65da57ca6bf7fcfd6f702bdb32c1cc690be32dbbf2247cb45ede15045d892121794ebc0887eb0f4804990be1172f
-doccontainersize 1935740
-doccontainerchecksum 6faa741f424a42088e336ff5300daa2dbd28cd71eed6d4047230c7ac7ecfad5e8de3e881216721f89f9b706397247c01abd99ea4d0a7ed097aa6d63c8e2a89dd
+containersize 255476
+containerchecksum 4279c715bd6126cb4cba3733f55fb585faa81feafadc8b0fb4bd7140320a65cb651d3029e45456e452fa25b437d64995cf35b2bf3f210847c495b514e5c70aab
+doccontainersize 1935736
+doccontainerchecksum 0254cf4e959c65864e3281576b6c95d0afbd03b25874bd087d90738e365aee9db928d0ccd4d863a44959c8df0f83229c0319c56fbc734b568462370e5b59c59d
docfiles size=505
RELOC/doc/fonts/concmath-otf/README.md details="Readme"
RELOC/doc/fonts/concmath-otf/concmath-otf.ltx
@@ -76951,12 +77084,13 @@ catalogue-version 0.1.1
name context
category Package
-revision 69665
+revision 70360
shortdesc The ConTeXt macro package
longdesc A full featured, parameter driven macro package, which fully
longdesc supports advanced interactive documents. See the ConTeXt garden
longdesc for a wealth of support information.
depend amsfonts
+depend context-companion-fonts
depend context-texlive
depend context.ARCH
depend lm
@@ -76967,12 +77101,12 @@ depend manfnt-font
depend mflogo-font
depend stmaryrd
execute addMap original-context-symbol.map
-containersize 8275472
-containerchecksum 8951a79ae04a0bbcf7ec5f4d5f68e0f6ad3f79cfcce7379523b9bc74dc6ce3d0f07f628f3e182198ff37d313ca549b7b2512eeb28ce4a9c5460ec20ed7f2d2e7
-doccontainersize 84867548
-doccontainerchecksum b2558db5417c5c1ca10dd80be258fca33d9e5fd1b16c3f1baa7c871bb4d65e42a75c95336ae988864e7c4dd350c722eaa96c446839ca6d147949b38fa78461d9
-docfiles size=26903
- texmf-dist/doc/context/README.adoc
+containersize 9053812
+containerchecksum 29a167a4883c11d2524917bcea61bd465cacf366f54330a44e445dbb5406aac27ebfa444b635de9c569ffb614eba9f3319c8abbfdd48cd578312ea97f75f3f86
+doccontainersize 88499172
+doccontainerchecksum 13c42ef56f667c66229c83610dc4cc2d9c68300e2cee7b22e9dd5aff3b8b76774f6badd511d56a618fd37ef629ddae72261876c48a93dc4634fd919eee46e3b5
+docfiles size=28441
+ texmf-dist/doc/context/context-readme.txt
texmf-dist/doc/context/documents/general/leaflets/leaflet-context.pdf
texmf-dist/doc/context/documents/general/leaflets/leaflet-luametatex.pdf
texmf-dist/doc/context/documents/general/leaflets/leaflet-mixing.pdf
@@ -77006,6 +77140,7 @@ docfiles size=26903
texmf-dist/doc/context/documents/general/manuals/interaction.pdf
texmf-dist/doc/context/documents/general/manuals/languages-mkiv.pdf
texmf-dist/doc/context/documents/general/manuals/libraries-mkiv.pdf
+ texmf-dist/doc/context/documents/general/manuals/lowlevel-accuracy.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-alignments.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-boxes.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-buffers.pdf
@@ -77014,6 +77149,7 @@ docfiles size=26903
texmf-dist/doc/context/documents/general/manuals/lowlevel-expansion.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-grouping.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-inserts.pdf
+ texmf-dist/doc/context/documents/general/manuals/lowlevel-lines.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-localboxes.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-loops.pdf
texmf-dist/doc/context/documents/general/manuals/lowlevel-macros.pdf
@@ -77044,6 +77180,7 @@ docfiles size=26903
texmf-dist/doc/context/documents/general/manuals/onandon.pdf
texmf-dist/doc/context/documents/general/manuals/ontarget.pdf
texmf-dist/doc/context/documents/general/manuals/pagecolumns.pdf
+ texmf-dist/doc/context/documents/general/manuals/pdfmerge.pdf
texmf-dist/doc/context/documents/general/manuals/primitives.pdf
texmf-dist/doc/context/documents/general/manuals/rules-mkiv.pdf
texmf-dist/doc/context/documents/general/manuals/spacing-mkiv.pdf
@@ -77262,9 +77399,6 @@ docfiles size=26903
texmf-dist/doc/context/scripts/mkiv/context.html
texmf-dist/doc/context/scripts/mkiv/context.man
texmf-dist/doc/context/scripts/mkiv/context.xml
- texmf-dist/doc/context/scripts/mkiv/luatools.html
- texmf-dist/doc/context/scripts/mkiv/luatools.man
- texmf-dist/doc/context/scripts/mkiv/luatools.xml
texmf-dist/doc/context/scripts/mkiv/mtx-babel.html
texmf-dist/doc/context/scripts/mkiv/mtx-babel.man
texmf-dist/doc/context/scripts/mkiv/mtx-babel.xml
@@ -77289,6 +77423,12 @@ docfiles size=26903
texmf-dist/doc/context/scripts/mkiv/mtx-context.html
texmf-dist/doc/context/scripts/mkiv/mtx-context.man
texmf-dist/doc/context/scripts/mkiv/mtx-context.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-convert.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-convert.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-convert.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-ctan.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-ctan.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-ctan.xml
texmf-dist/doc/context/scripts/mkiv/mtx-dvi.html
texmf-dist/doc/context/scripts/mkiv/mtx-dvi.man
texmf-dist/doc/context/scripts/mkiv/mtx-dvi.xml
@@ -77301,6 +77441,9 @@ docfiles size=26903
texmf-dist/doc/context/scripts/mkiv/mtx-fcd.html
texmf-dist/doc/context/scripts/mkiv/mtx-fcd.man
texmf-dist/doc/context/scripts/mkiv/mtx-fcd.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.xml
texmf-dist/doc/context/scripts/mkiv/mtx-flac.html
texmf-dist/doc/context/scripts/mkiv/mtx-flac.man
texmf-dist/doc/context/scripts/mkiv/mtx-flac.xml
@@ -77310,9 +77453,18 @@ docfiles size=26903
texmf-dist/doc/context/scripts/mkiv/mtx-grep.html
texmf-dist/doc/context/scripts/mkiv/mtx-grep.man
texmf-dist/doc/context/scripts/mkiv/mtx-grep.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-install.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-install.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-install.xml
texmf-dist/doc/context/scripts/mkiv/mtx-interface.html
texmf-dist/doc/context/scripts/mkiv/mtx-interface.man
texmf-dist/doc/context/scripts/mkiv/mtx-interface.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-kpse.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-kpse.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-kpse.xml
texmf-dist/doc/context/scripts/mkiv/mtx-metapost.html
texmf-dist/doc/context/scripts/mkiv/mtx-metapost.man
texmf-dist/doc/context/scripts/mkiv/mtx-metapost.xml
@@ -77346,12 +77498,12 @@ docfiles size=26903
texmf-dist/doc/context/scripts/mkiv/mtx-spell.html
texmf-dist/doc/context/scripts/mkiv/mtx-spell.man
texmf-dist/doc/context/scripts/mkiv/mtx-spell.xml
+ texmf-dist/doc/context/scripts/mkiv/mtx-synctex.html
+ texmf-dist/doc/context/scripts/mkiv/mtx-synctex.man
+ texmf-dist/doc/context/scripts/mkiv/mtx-synctex.xml
texmf-dist/doc/context/scripts/mkiv/mtx-texworks.html
texmf-dist/doc/context/scripts/mkiv/mtx-texworks.man
texmf-dist/doc/context/scripts/mkiv/mtx-texworks.xml
- texmf-dist/doc/context/scripts/mkiv/mtx-timing.html
- texmf-dist/doc/context/scripts/mkiv/mtx-timing.man
- texmf-dist/doc/context/scripts/mkiv/mtx-timing.xml
texmf-dist/doc/context/scripts/mkiv/mtx-tools.html
texmf-dist/doc/context/scripts/mkiv/mtx-tools.man
texmf-dist/doc/context/scripts/mkiv/mtx-tools.xml
@@ -77595,6 +77747,7 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/followingup/followingup-whatsits.tex
texmf-dist/doc/context/sources/general/manuals/followingup/followingup.tex
texmf-dist/doc/context/sources/general/manuals/fonts/fonts-appendix.tex
+ texmf-dist/doc/context/sources/general/manuals/fonts/fonts-compact.tex
texmf-dist/doc/context/sources/general/manuals/fonts/fonts-demo-rule.lua
texmf-dist/doc/context/sources/general/manuals/fonts/fonts-environment.tex
texmf-dist/doc/context/sources/general/manuals/fonts/fonts-extensions.tex
@@ -77697,6 +77850,7 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/languages/languages-sorting.tex
texmf-dist/doc/context/sources/general/manuals/libraries/ecmascript-mkiv.tex
texmf-dist/doc/context/sources/general/manuals/libraries/libraries-mkiv.tex
+ texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-accuracy.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-alignments.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-boxes.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-buffers.tex
@@ -77705,6 +77859,7 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-expansion.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-grouping.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-inserts.tex
+ texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-lines.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-localboxes.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-loops.tex
texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex
@@ -77974,12 +78129,20 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/mk/mk-xml.xml
texmf-dist/doc/context/sources/general/manuals/mk/mk-zapfino.tex
texmf-dist/doc/context/sources/general/manuals/mk/mk.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/eutypon-gr-e-blog-21-02-13-why-i-do-not-like-luatex.png
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-assumptions.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-children.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-contents.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-deserved.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-dontusetex.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-history.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-hownotto.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-introduction.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-manuals.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-names.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-perception.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-perfection.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-performance.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-plain.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-roadmap.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-speed.tex
@@ -77989,6 +78152,7 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/musings/musings-texlive.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-titlepage.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-toocomplex.tex
+ texmf-dist/doc/context/sources/general/manuals/musings/musings-treasures.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-unicode.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings-whytex.tex
texmf-dist/doc/context/sources/general/manuals/musings/musings.tex
@@ -78029,21 +78193,34 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/onandon/onandon-speed-012.tex
texmf-dist/doc/context/sources/general/manuals/onandon/onandon-variable.tex
texmf-dist/doc/context/sources/general/manuals/onandon/onandon.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-accuracy.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-active.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-alsomath.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-anchoring.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-bars.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-binary.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-constants.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-contents.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-dk.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-envelopes.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-eventually.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-fairphone.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-gettingridof.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-green.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-jmn.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-makesnosense.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-makessense.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-math.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-mathfonts.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-metapost.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-nostalgic-pgc.pdf
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-nostalgic.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-profiles.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-radicals.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-registers.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-ridofjit.tex
+ texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-standardize.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-style.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-titlepage.tex
texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget.tex
@@ -78056,6 +78233,8 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/pagecolumns/pagecolumns-006.tex
texmf-dist/doc/context/sources/general/manuals/pagecolumns/pagecolumns-007.tex
texmf-dist/doc/context/sources/general/manuals/pagecolumns/pagecolumns.tex
+ texmf-dist/doc/context/sources/general/manuals/pdfmerge/pdfmerge-testfiles.zip
+ texmf-dist/doc/context/sources/general/manuals/pdfmerge/pdfmerge.tex
texmf-dist/doc/context/sources/general/manuals/primitives/primitives.tex
texmf-dist/doc/context/sources/general/manuals/publications/122176.pdf
texmf-dist/doc/context/sources/general/manuals/publications/124484.mol
@@ -78273,8 +78452,6 @@ docfiles size=26903
texmf-dist/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex
texmf-dist/doc/man/man1/context.1
texmf-dist/doc/man/man1/context.man1.pdf
- texmf-dist/doc/man/man1/luatools.1
- texmf-dist/doc/man/man1/luatools.man1.pdf
texmf-dist/doc/man/man1/mtx-babel.1
texmf-dist/doc/man/man1/mtx-babel.man1.pdf
texmf-dist/doc/man/man1/mtx-base.1
@@ -78291,6 +78468,10 @@ docfiles size=26903
texmf-dist/doc/man/man1/mtx-colors.man1.pdf
texmf-dist/doc/man/man1/mtx-context.1
texmf-dist/doc/man/man1/mtx-context.man1.pdf
+ texmf-dist/doc/man/man1/mtx-convert.1
+ texmf-dist/doc/man/man1/mtx-convert.man1.pdf
+ texmf-dist/doc/man/man1/mtx-ctan.1
+ texmf-dist/doc/man/man1/mtx-ctan.man1.pdf
texmf-dist/doc/man/man1/mtx-dvi.1
texmf-dist/doc/man/man1/mtx-dvi.man1.pdf
texmf-dist/doc/man/man1/mtx-epub.1
@@ -78299,14 +78480,22 @@ docfiles size=26903
texmf-dist/doc/man/man1/mtx-evohome.man1.pdf
texmf-dist/doc/man/man1/mtx-fcd.1
texmf-dist/doc/man/man1/mtx-fcd.man1.pdf
+ texmf-dist/doc/man/man1/mtx-fixpdf.1
+ texmf-dist/doc/man/man1/mtx-fixpdf.man1.pdf
texmf-dist/doc/man/man1/mtx-flac.1
texmf-dist/doc/man/man1/mtx-flac.man1.pdf
texmf-dist/doc/man/man1/mtx-fonts.1
texmf-dist/doc/man/man1/mtx-fonts.man1.pdf
texmf-dist/doc/man/man1/mtx-grep.1
texmf-dist/doc/man/man1/mtx-grep.man1.pdf
+ texmf-dist/doc/man/man1/mtx-install-modules.1
+ texmf-dist/doc/man/man1/mtx-install-modules.man1.pdf
+ texmf-dist/doc/man/man1/mtx-install.1
+ texmf-dist/doc/man/man1/mtx-install.man1.pdf
texmf-dist/doc/man/man1/mtx-interface.1
texmf-dist/doc/man/man1/mtx-interface.man1.pdf
+ texmf-dist/doc/man/man1/mtx-kpse.1
+ texmf-dist/doc/man/man1/mtx-kpse.man1.pdf
texmf-dist/doc/man/man1/mtx-metapost.1
texmf-dist/doc/man/man1/mtx-metapost.man1.pdf
texmf-dist/doc/man/man1/mtx-modules.1
@@ -78329,10 +78518,10 @@ docfiles size=26903
texmf-dist/doc/man/man1/mtx-server.man1.pdf
texmf-dist/doc/man/man1/mtx-spell.1
texmf-dist/doc/man/man1/mtx-spell.man1.pdf
+ texmf-dist/doc/man/man1/mtx-synctex.1
+ texmf-dist/doc/man/man1/mtx-synctex.man1.pdf
texmf-dist/doc/man/man1/mtx-texworks.1
texmf-dist/doc/man/man1/mtx-texworks.man1.pdf
- texmf-dist/doc/man/man1/mtx-timing.1
- texmf-dist/doc/man/man1/mtx-timing.man1.pdf
texmf-dist/doc/man/man1/mtx-tools.1
texmf-dist/doc/man/man1/mtx-tools.man1.pdf
texmf-dist/doc/man/man1/mtx-unicode.1
@@ -78349,7 +78538,7 @@ docfiles size=26903
texmf-dist/doc/man/man1/mtx-youless.man1.pdf
texmf-dist/doc/man/man1/mtxrun.1
texmf-dist/doc/man/man1/mtxrun.man1.pdf
-runfiles size=13945
+runfiles size=14451
texmf-dist/context/data/scite/context/documents/scite-context-readme.pdf
texmf-dist/context/data/scite/context/documents/scite-context-readme.tex
texmf-dist/context/data/scite/context/documents/scite-context-visual.pdf
@@ -78464,6 +78653,7 @@ runfiles size=13945
texmf-dist/fonts/enc/dvips/context/q-8r.enc
texmf-dist/fonts/enc/dvips/context/teff-trinite.enc
texmf-dist/fonts/map/dvips/context/contnav.map
+ texmf-dist/fonts/map/luatex/context/demo-font.lum
texmf-dist/fonts/map/pdftex/context/8r-base.map
texmf-dist/fonts/map/pdftex/context/ec-base.map
texmf-dist/fonts/map/pdftex/context/ec-os-public-lm.map
@@ -78588,10 +78778,11 @@ runfiles size=13945
texmf-dist/scripts/context/lua/mtx-epub.lua
texmf-dist/scripts/context/lua/mtx-evohome.lua
texmf-dist/scripts/context/lua/mtx-fcd.lua
+ texmf-dist/scripts/context/lua/mtx-fixpdf.lua
texmf-dist/scripts/context/lua/mtx-flac.lua
texmf-dist/scripts/context/lua/mtx-fonts.lua
texmf-dist/scripts/context/lua/mtx-grep.lua
- texmf-dist/scripts/context/lua/mtx-install-tikz.lua
+ texmf-dist/scripts/context/lua/mtx-install-modules.lua
texmf-dist/scripts/context/lua/mtx-install.lua
texmf-dist/scripts/context/lua/mtx-interface.lua
texmf-dist/scripts/context/lua/mtx-kpse.lua
@@ -78627,12 +78818,6 @@ runfiles size=13945
texmf-dist/scripts/context/perl/pdftrimwhite.pl
texmf-dist/scripts/context/perl/texfind.pl
texmf-dist/scripts/context/perl/texfont.pl
- texmf-dist/scripts/context/stubs-mkiv/unix/contextjit
- texmf-dist/scripts/context/stubs-mkiv/unix/luatools
- texmf-dist/scripts/context/stubs-mkiv/unix/mtxrunjit
- texmf-dist/scripts/context/stubs-mkiv/win64/contextjit.cmd
- texmf-dist/scripts/context/stubs-mkiv/win64/luatools.cmd
- texmf-dist/scripts/context/stubs-mkiv/win64/mtxrunjit.cmd
texmf-dist/tex/context/base/context-version.pdf
texmf-dist/tex/context/base/context-version.png
texmf-dist/tex/context/base/context.rme
@@ -79018,6 +79203,8 @@ runfiles size=13945
texmf-dist/tex/context/base/mkiv/lang-hyp.mkiv
texmf-dist/tex/context/base/mkiv/lang-imp-indic.lua
texmf-dist/tex/context/base/mkiv/lang-imp-serbian.lua
+ texmf-dist/tex/context/base/mkiv/lang-imp-simpleascii-data.lgz
+ texmf-dist/tex/context/base/mkiv/lang-imp-simpleascii.lua
texmf-dist/tex/context/base/mkiv/lang-ini.lua
texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
texmf-dist/tex/context/base/mkiv/lang-lab.lua
@@ -79737,6 +79924,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/buff-ini.lmt
texmf-dist/tex/context/base/mkxl/buff-ini.mkxl
texmf-dist/tex/context/base/mkxl/buff-par.mklx
+ texmf-dist/tex/context/base/mkxl/buff-ver.lmt
texmf-dist/tex/context/base/mkxl/buff-ver.mkxl
texmf-dist/tex/context/base/mkxl/catc-act.mkxl
texmf-dist/tex/context/base/mkxl/catc-def.mkxl
@@ -79782,6 +79970,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/cont-run.lmt
texmf-dist/tex/context/base/mkxl/cont-run.mkxl
texmf-dist/tex/context/base/mkxl/context.mkxl
+ texmf-dist/tex/context/base/mkxl/core-con.lmt
texmf-dist/tex/context/base/mkxl/core-con.mkxl
texmf-dist/tex/context/base/mkxl/core-ctx.mkxl
texmf-dist/tex/context/base/mkxl/core-dat.lmt
@@ -79841,7 +80030,9 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/font-imp-braille.lmt
texmf-dist/tex/context/base/mkxl/font-imp-checks.lmt
texmf-dist/tex/context/base/mkxl/font-imp-digits.lmt
+ texmf-dist/tex/context/base/mkxl/font-imp-dimensions.lmt
texmf-dist/tex/context/base/mkxl/font-imp-effects.lmt
+ texmf-dist/tex/context/base/mkxl/font-imp-italics.lmt
texmf-dist/tex/context/base/mkxl/font-imp-ligatures.lmt
texmf-dist/tex/context/base/mkxl/font-imp-math.lmt
texmf-dist/tex/context/base/mkxl/font-imp-quality.lmt
@@ -79871,6 +80062,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/font-pre.mkxl
texmf-dist/tex/context/base/mkxl/font-sel.mklx
texmf-dist/tex/context/base/mkxl/font-set.mklx
+ texmf-dist/tex/context/base/mkxl/font-shp.lmt
texmf-dist/tex/context/base/mkxl/font-sol.mklx
texmf-dist/tex/context/base/mkxl/font-sty.mklx
texmf-dist/tex/context/base/mkxl/font-sym.mklx
@@ -79902,6 +80094,8 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/grph-trf.mkxl
texmf-dist/tex/context/base/mkxl/hand-ini.mkxl
texmf-dist/tex/context/base/mkxl/java-ini.mkxl
+ texmf-dist/tex/context/base/mkxl/l-bit32.lmt
+ texmf-dist/tex/context/base/mkxl/l-lua.lmt
texmf-dist/tex/context/base/mkxl/l-number.lmt
texmf-dist/tex/context/base/mkxl/l-unicode.lmt
texmf-dist/tex/context/base/mkxl/lang-def.mkxl
@@ -79941,6 +80135,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/libs-imp-mujs.lmt
texmf-dist/tex/context/base/mkxl/libs-imp-mujs.mkxl
texmf-dist/tex/context/base/mkxl/libs-imp-mysql.lmt
+ texmf-dist/tex/context/base/mkxl/libs-imp-openssl.lmt
texmf-dist/tex/context/base/mkxl/libs-imp-postgress.lmt
texmf-dist/tex/context/base/mkxl/libs-imp-sqlite.lmt
texmf-dist/tex/context/base/mkxl/libs-imp-zint.lmt
@@ -79954,9 +80149,11 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt
texmf-dist/tex/context/base/mkxl/lpdf-enc.lmt
texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt
+ texmf-dist/tex/context/base/mkxl/lpdf-fix-imp-contents.lmt
+ texmf-dist/tex/context/base/mkxl/lpdf-fix-imp-fonts.lmt
+ texmf-dist/tex/context/base/mkxl/lpdf-fix.lmt
texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt
texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt
- texmf-dist/tex/context/base/mkxl/lpdf-fnt.lmt
texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt
texmf-dist/tex/context/base/mkxl/lpdf-img.lmt
texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt
@@ -79965,6 +80162,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt
texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt
texmf-dist/tex/context/base/mkxl/lpdf-rul.lmt
+ texmf-dist/tex/context/base/mkxl/lpdf-sig.lmt
texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt
texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt
texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt
@@ -79983,9 +80181,11 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/luat-soc.mkxl
texmf-dist/tex/context/base/mkxl/luat-usr.lmt
texmf-dist/tex/context/base/mkxl/luat-usr.mkxl
+ texmf-dist/tex/context/base/mkxl/lxml-css.lmt
texmf-dist/tex/context/base/mkxl/lxml-css.mkxl
texmf-dist/tex/context/base/mkxl/lxml-ctx.mkxl
texmf-dist/tex/context/base/mkxl/lxml-ini.mkxl
+ texmf-dist/tex/context/base/mkxl/lxml-mms.lmt
texmf-dist/tex/context/base/mkxl/lxml-sor.mkxl
texmf-dist/tex/context/base/mkxl/m-mkivmkxl.mkxl
texmf-dist/tex/context/base/mkxl/math-acc.mklx
@@ -80028,6 +80228,9 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/math-toy.mkxl
texmf-dist/tex/context/base/mkxl/math-ttv.lmt
texmf-dist/tex/context/base/mkxl/math-twk.mkxl
+ texmf-dist/tex/context/base/mkxl/math-txt-imp-chemistry.lmt
+ texmf-dist/tex/context/base/mkxl/math-txt-imp-default.lmt
+ texmf-dist/tex/context/base/mkxl/math-txt.lmt
texmf-dist/tex/context/base/mkxl/math-vfu.lmt
texmf-dist/tex/context/base/mkxl/meta-blb.mkxl
texmf-dist/tex/context/base/mkxl/meta-fig.mkxl
@@ -80079,6 +80282,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/mlib-pos.lmt
texmf-dist/tex/context/base/mkxl/mlib-pps.lmt
texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl
+ texmf-dist/tex/context/base/mkxl/mlib-ptr.lmt
texmf-dist/tex/context/base/mkxl/mlib-ran.lmt
texmf-dist/tex/context/base/mkxl/mlib-run.lmt
texmf-dist/tex/context/base/mkxl/mlib-scn.lmt
@@ -80194,9 +80398,11 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/page-var.mkxl
texmf-dist/tex/context/base/mkxl/phys-dim.lmt
texmf-dist/tex/context/base/mkxl/phys-dim.mkxl
+ texmf-dist/tex/context/base/mkxl/publ-aut.lmt
texmf-dist/tex/context/base/mkxl/publ-inc.mkxl
texmf-dist/tex/context/base/mkxl/publ-ini.mkxl
texmf-dist/tex/context/base/mkxl/publ-old.mkxl
+ texmf-dist/tex/context/base/mkxl/publ-oth.lmt
texmf-dist/tex/context/base/mkxl/publ-xml.mkxl
texmf-dist/tex/context/base/mkxl/regi-ini.lmt
texmf-dist/tex/context/base/mkxl/regi-ini.mkxl
@@ -80217,6 +80423,8 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/sort-ini.mkxl
texmf-dist/tex/context/base/mkxl/spac-ali.lmt
texmf-dist/tex/context/base/mkxl/spac-ali.mkxl
+ texmf-dist/tex/context/base/mkxl/spac-brk.lmt
+ texmf-dist/tex/context/base/mkxl/spac-brk.mkxl
texmf-dist/tex/context/base/mkxl/spac-chr.lmt
texmf-dist/tex/context/base/mkxl/spac-chr.mkxl
texmf-dist/tex/context/base/mkxl/spac-def.mkxl
@@ -80224,10 +80432,13 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/spac-grd.mkxl
texmf-dist/tex/context/base/mkxl/spac-hor.lmt
texmf-dist/tex/context/base/mkxl/spac-hor.mkxl
+ texmf-dist/tex/context/base/mkxl/spac-imp-tests.mkxl
texmf-dist/tex/context/base/mkxl/spac-lin.mkxl
texmf-dist/tex/context/base/mkxl/spac-pag.mkxl
texmf-dist/tex/context/base/mkxl/spac-par.lmt
texmf-dist/tex/context/base/mkxl/spac-par.mkxl
+ texmf-dist/tex/context/base/mkxl/spac-pas.lmt
+ texmf-dist/tex/context/base/mkxl/spac-pas.mkxl
texmf-dist/tex/context/base/mkxl/spac-prf.lmt
texmf-dist/tex/context/base/mkxl/spac-prf.mklx
texmf-dist/tex/context/base/mkxl/spac-ver.lmt
@@ -80250,7 +80461,6 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/strc-lnt.mklx
texmf-dist/tex/context/base/mkxl/strc-lst.lmt
texmf-dist/tex/context/base/mkxl/strc-lst.mklx
- texmf-dist/tex/context/base/mkxl/strc-mar-old.lmt
texmf-dist/tex/context/base/mkxl/strc-mar-old.mkxl
texmf-dist/tex/context/base/mkxl/strc-mar.lmt
texmf-dist/tex/context/base/mkxl/strc-mar.mkxl
@@ -80287,6 +80497,7 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/syst-aux.lmt
texmf-dist/tex/context/base/mkxl/syst-aux.mkxl
texmf-dist/tex/context/base/mkxl/syst-cmp.mkxl
+ texmf-dist/tex/context/base/mkxl/syst-con.lmt
texmf-dist/tex/context/base/mkxl/syst-con.mkxl
texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl
texmf-dist/tex/context/base/mkxl/syst-ini.mkxl
@@ -80295,8 +80506,11 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/syst-mac.lmt
texmf-dist/tex/context/base/mkxl/syst-pln.mkxl
texmf-dist/tex/context/base/mkxl/syst-rtp.mkxl
+ texmf-dist/tex/context/base/mkxl/tabl-ali.lmt
+ texmf-dist/tex/context/base/mkxl/tabl-ali.mkxl
texmf-dist/tex/context/base/mkxl/tabl-com.mkxl
texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl
+ texmf-dist/tex/context/base/mkxl/tabl-itm.mkxl
texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl
texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl
texmf-dist/tex/context/base/mkxl/tabl-ntb.lmt
@@ -80317,13 +80531,20 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/toks-ini.mkxl
texmf-dist/tex/context/base/mkxl/toks-scn.lmt
texmf-dist/tex/context/base/mkxl/toks-scn.mkxl
+ texmf-dist/tex/context/base/mkxl/trac-bld.lmt
+ texmf-dist/tex/context/base/mkxl/trac-bld.mkxl
+ texmf-dist/tex/context/base/mkxl/trac-brk.lmt
+ texmf-dist/tex/context/base/mkxl/trac-brk.mkxl
texmf-dist/tex/context/base/mkxl/trac-ctx.mkxl
texmf-dist/tex/context/base/mkxl/trac-deb.lmt
texmf-dist/tex/context/base/mkxl/trac-deb.mkxl
texmf-dist/tex/context/base/mkxl/trac-inf.lmt
texmf-dist/tex/context/base/mkxl/trac-jus.lmt
texmf-dist/tex/context/base/mkxl/trac-jus.mkxl
+ texmf-dist/tex/context/base/mkxl/trac-riv.lmt
+ texmf-dist/tex/context/base/mkxl/trac-riv.mkxl
texmf-dist/tex/context/base/mkxl/trac-set.lmt
+ texmf-dist/tex/context/base/mkxl/trac-tex.lmt
texmf-dist/tex/context/base/mkxl/trac-tex.mkxl
texmf-dist/tex/context/base/mkxl/trac-tim.lmt
texmf-dist/tex/context/base/mkxl/trac-vis.lmt
@@ -80416,7 +80637,9 @@ runfiles size=13945
texmf-dist/tex/context/base/mkxl/unic-ini.mkxl
texmf-dist/tex/context/base/mkxl/util-deb.lmt
texmf-dist/tex/context/base/mkxl/util-fil.lmt
+ texmf-dist/tex/context/base/mkxl/util-jsn.lmt
texmf-dist/tex/context/base/mkxl/util-pck.lmt
+ texmf-dist/tex/context/base/mkxl/util-prs.lmt
texmf-dist/tex/context/base/mkxl/util-sac.lmt
texmf-dist/tex/context/base/mkxl/util-sbx.lmt
texmf-dist/tex/context/colors/icc/context/colorprofiles.lua
@@ -80443,7 +80666,10 @@ runfiles size=13945
texmf-dist/tex/context/fonts/mkiv/erewhon-math.lfg
texmf-dist/tex/context/fonts/mkiv/erewhon-text.lfg
texmf-dist/tex/context/fonts/mkiv/euler-math.lfg
+ texmf-dist/tex/context/fonts/mkiv/fira-math.lfg
+ texmf-dist/tex/context/fonts/mkiv/fontawesome.lfg
texmf-dist/tex/context/fonts/mkiv/generic-math.lfg
+ texmf-dist/tex/context/fonts/mkiv/gfsneohellenic-math.lfg
texmf-dist/tex/context/fonts/mkiv/hanbatanglvt.lfg
texmf-dist/tex/context/fonts/mkiv/husayni.lfg
texmf-dist/tex/context/fonts/mkiv/hvmath-math.lfg
@@ -80497,8 +80723,10 @@ runfiles size=13945
texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-euler.mkiv
+ texmf-dist/tex/context/fonts/mkiv/type-imp-fira.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-firacode.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-gentium.mkiv
+ texmf-dist/tex/context/fonts/mkiv/type-imp-gfsneohellenic.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-ghz.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-gofonts.mkiv
texmf-dist/tex/context/fonts/mkiv/type-imp-hcrfonts.mkiv
@@ -81060,10 +81288,10 @@ runfiles size=13945
texmf-dist/tex/context/modules/mkxl/m-gimmicks.mkxl
texmf-dist/tex/context/modules/mkxl/m-gnuplot.mkxl
texmf-dist/tex/context/modules/mkxl/m-json.mkxl
- texmf-dist/tex/context/modules/mkxl/m-mathfun.mkxl
texmf-dist/tex/context/modules/mkxl/m-oldmath.mkxl
texmf-dist/tex/context/modules/mkxl/m-openstreetmap.lmt
texmf-dist/tex/context/modules/mkxl/m-openstreetmap.mkxl
+ texmf-dist/tex/context/modules/mkxl/m-polynomial.mkxl
texmf-dist/tex/context/modules/mkxl/m-svg.mkxl
texmf-dist/tex/context/modules/mkxl/m-system-readers.mkxl
texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplots.tex
@@ -81074,22 +81302,38 @@ runfiles size=13945
texmf-dist/tex/context/modules/mkxl/s-characters-combinations.lmt
texmf-dist/tex/context/modules/mkxl/s-characters-combinations.mkxl
texmf-dist/tex/context/modules/mkxl/s-colors-show.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-fonts-outlines.mkxl
texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-games-2023.mkxl
texmf-dist/tex/context/modules/mkxl/s-languages-goodies.lmt
texmf-dist/tex/context/modules/mkxl/s-languages-goodies.mkxl
texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl
texmf-dist/tex/context/modules/mkxl/s-math-atoms.mkxl
texmf-dist/tex/context/modules/mkxl/s-math-definitions.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-math-show.mkxl
texmf-dist/tex/context/modules/mkxl/s-math-tests.mkxl
texmf-dist/tex/context/modules/mkxl/s-math-tweaks.mkxl
texmf-dist/tex/context/modules/mkxl/s-publications-show.mkxl
texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl
texmf-dist/tex/context/modules/mkxl/s-system-macros.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-system-syntax.lmt
+ texmf-dist/tex/context/modules/mkxl/s-system-syntax.mkxl
texmf-dist/tex/context/modules/mkxl/s-system-tokens.lmt
texmf-dist/tex/context/modules/mkxl/s-system-tokens.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-system-units.mkxl
texmf-dist/tex/context/modules/mkxl/s-text-tests.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-tugboat-columns.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-tugboat-exceptions.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-tugboat-logos.mkxl
+ texmf-dist/tex/context/modules/mkxl/s-tugboat.mkxl
+ texmf-dist/tex/context/modules/mkxl/x-asciimath.lmt
+ texmf-dist/tex/context/modules/mkxl/x-asciimath.mkxl
+ texmf-dist/tex/context/modules/mkxl/x-calcmath.lmt
+ texmf-dist/tex/context/modules/mkxl/x-calcmath.mkxl
texmf-dist/tex/context/modules/mkxl/x-mathml.lmt
texmf-dist/tex/context/modules/mkxl/x-mathml.mkxl
+ texmf-dist/tex/context/modules/third/mtx-install-imp-modules.lua
+ texmf-dist/tex/context/modules/third/mtx-install-imp-tikz.lua
texmf-dist/tex/context/patterns/common/lang-af.rme
texmf-dist/tex/context/patterns/common/lang-agr.rme
texmf-dist/tex/context/patterns/common/lang-ala.rme
@@ -81113,6 +81357,8 @@ runfiles size=13945
texmf-dist/tex/context/patterns/common/lang-hi.rme
texmf-dist/tex/context/patterns/common/lang-hr.rme
texmf-dist/tex/context/patterns/common/lang-hu.rme
+ texmf-dist/tex/context/patterns/common/lang-hy.rme
+ texmf-dist/tex/context/patterns/common/lang-id.rme
texmf-dist/tex/context/patterns/common/lang-is.rme
texmf-dist/tex/context/patterns/common/lang-it.rme
texmf-dist/tex/context/patterns/common/lang-kn.rme
@@ -81166,6 +81412,8 @@ runfiles size=13945
texmf-dist/tex/context/patterns/mkiv/lang-hi.lua
texmf-dist/tex/context/patterns/mkiv/lang-hr.lua
texmf-dist/tex/context/patterns/mkiv/lang-hu.lua
+ texmf-dist/tex/context/patterns/mkiv/lang-hy.lua
+ texmf-dist/tex/context/patterns/mkiv/lang-id.lua
texmf-dist/tex/context/patterns/mkiv/lang-is.lua
texmf-dist/tex/context/patterns/mkiv/lang-it.lua
texmf-dist/tex/context/patterns/mkiv/lang-kn.lua
@@ -81214,6 +81462,7 @@ runfiles size=13945
texmf-dist/tex/context/sample/common/demo-mps.tex
texmf-dist/tex/context/sample/common/demo-tex.tex
texmf-dist/tex/context/sample/common/demo-xml.tex
+ texmf-dist/tex/context/sample/common/dijkstra.tex
texmf-dist/tex/context/sample/common/douglas.tex
texmf-dist/tex/context/sample/common/gray.tex
texmf-dist/tex/context/sample/common/greenfield.tex
@@ -81221,7 +81470,9 @@ runfiles size=13945
texmf-dist/tex/context/sample/common/hawking.tex
texmf-dist/tex/context/sample/common/jojomayer.tex
texmf-dist/tex/context/sample/common/klein.tex
+ texmf-dist/tex/context/sample/common/knuth-gpt.tex
texmf-dist/tex/context/sample/common/knuth.tex
+ texmf-dist/tex/context/sample/common/knuthmath.tex
texmf-dist/tex/context/sample/common/linden.tex
texmf-dist/tex/context/sample/common/lorem.tex
texmf-dist/tex/context/sample/common/materie.tex
@@ -81244,7 +81495,10 @@ runfiles size=13945
texmf-dist/tex/context/sample/common/weisman.tex
texmf-dist/tex/context/sample/common/welcome-to-context.tex
texmf-dist/tex/context/sample/common/zapf.tex
+ texmf-dist/tex/context/sample/math/math-knuth-dt.tex
+ texmf-dist/tex/context/sample/math/math-kontinuitet-sv.tex
texmf-dist/tex/context/sample/third/aesop-de.tex
+ texmf-dist/tex/context/sample/third/alfredsson-sv.tex
texmf-dist/tex/context/sample/third/aristotle-grc.tex
texmf-dist/tex/context/sample/third/capek-cz.tex
texmf-dist/tex/context/sample/third/capek-vlnka-cz.tex
@@ -81252,6 +81506,7 @@ runfiles size=13945
texmf-dist/tex/context/sample/third/dequincey.tex
texmf-dist/tex/context/sample/third/dyrynk-cz.tex
texmf-dist/tex/context/sample/third/dyrynk-vlnka-cz.tex
+ texmf-dist/tex/context/sample/third/falstaff-sv.tex
texmf-dist/tex/context/sample/third/herbert-en.tex
texmf-dist/tex/context/sample/third/herbert-es.tex
texmf-dist/tex/context/sample/third/hviezdoslav-sk.tex
@@ -81266,6 +81521,7 @@ runfiles size=13945
texmf-dist/tex/context/sample/third/komensky-vlnka-cz.tex
texmf-dist/tex/context/sample/third/krdel-sk.tex
texmf-dist/tex/context/sample/third/kun-cz.tex
+ texmf-dist/tex/context/sample/third/lansburgh-letterspacing-sv.tex
texmf-dist/tex/context/sample/third/pope-en.tex
texmf-dist/tex/context/sample/third/pope-es.tex
texmf-dist/tex/context/sample/third/quevedo-es.tex
@@ -81401,6 +81657,24 @@ catalogue-ctan /macros/context/contrib/context-collating-marks
catalogue-license pd
catalogue-topics book-pub context
+name context-companion-fonts
+category Package
+revision 70149
+shortdesc companion fonts with fixes for ConTeXt
+relocated 1
+longdesc From
+longdesc https://github.com/contextgarden/context-distribution-fonts/tre
+longdesc e/main/fonts/data/cms/companion Should be on CTAN eventually.
+containersize 3468
+containerchecksum 444cefa697c0e98880a7f7be39f350651adfe3baed76fed4743786cce1e593d167667e62f7b6d8a729fa0083e65a6e5f8a50e11eee1f29148a54707ac346882b
+runfiles size=12
+ RELOC/fonts/opentype/public/context-companion-fonts/LatinModernMath-Companion.otf
+ RELOC/fonts/opentype/public/context-companion-fonts/RalphSmithsFormalScript-Companion.otf
+ RELOC/fonts/opentype/public/context-companion-fonts/TeXGyreBonumMath-Companion.otf
+ RELOC/fonts/opentype/public/context-companion-fonts/TeXGyrePagellaMath-Companion.otf
+ RELOC/fonts/opentype/public/context-companion-fonts/TeXGyreTermesMath-Companion.otf
+ RELOC/fonts/opentype/public/context-companion-fonts/XITSMath-Companion.otf
+
name context-cyrillicnumbers
category ConTeXt
revision 47085
@@ -81491,16 +81765,16 @@ catalogue-topics graphics-inline
name context-handlecsv
category ConTeXt
-revision 70074
+revision 70065
shortdesc Data merging for automatic document creation
relocated 1
longdesc The package handles csv data merging for automatic document
longdesc creation.
depend context
-containersize 16012
-containerchecksum b4a38aa0e04812e328e3d6225462078ddf45d8791d789e2730461630db55b397754ca192acf37b9ae7f1fc10c61d412022a9e56d3465d19ceca7f5875e3d580f
-doccontainersize 950836
-doccontainerchecksum 763f75ab94a317788d9d96b88f1b7e25847ed316b4dcd84158719ef1c3cc48c90c884ec3158412d574839adf1ce8bcb12f9c0cefb6650338afa424fbd0213be3
+containersize 16028
+containerchecksum 62b6fb7fdbaf14497001f35abbee2db8619c669e1167a2fb8ddc113a49e0c76f4e428a1f9cc8311e450a63e856380d27ef2f43f824c0112372b1ec580510f85e
+doccontainersize 950848
+doccontainerchecksum 5245237491be65447d10a3514aa912839bda4f6a5ac8aa6e028db5d183f00dbd58aa25d44cacfc7997a061e02cfc8c99278206f5b06933163809d40e9f0bb8c4
docfiles size=244
RELOC/doc/context/third/handlecsv/VERSION
RELOC/doc/context/third/handlecsv/handlecsv.epub
@@ -81518,7 +81792,11 @@ catalogue-topics context csv-support
name context-legacy
category Package
-revision 69173
+revision 70191
+shortdesc The ConTeXt macro package, MkII
+longdesc In TeX Live, ConTeXt MkII is split from current ConTeXt (MkIV
+longdesc and newer.) See https://contextgarden.net and
+longdesc https://pragma-ade.com for information about ConTeXt.
depend context
depend context-legacy.ARCH
depend metapost
@@ -81527,11 +81805,11 @@ depend pdftex
depend xetex
execute AddFormat name=cont-en engine=pdftex options="-8bit *cont-en.mkii"
execute AddFormat name=cont-en engine=xetex options="-8bit *cont-en.mkii"
-containersize 2459260
-containerchecksum 79783a6096e3bbe21eff5967fa3ed4edffc573567bd027a59c40fbd1f5e3cfc7d0c213ddc9fabcdecd596bcbc9946cf4255edc4237f0148c89dbae7744f3f508
-doccontainersize 24576
-doccontainerchecksum 6fbf5f1194771c9dc4a19b49aa343656bdcad3620e14a68a0bf9d05cad8f8c813f717b66b12526c2f11a87d4ded75e1cab56d3e72ca1cabe81c9818aa11399a7
-docfiles size=52
+containersize 2460784
+containerchecksum 029a95eb3c328e59ccf4eb5e8813ae45c2db1cbb717f7cd9bdc077ced8f2221d65d56a3659ff262182c9df0bdbc2f4f2ff10bcae05853459d3b3717b3ad7f403
+doccontainersize 35676
+doccontainerchecksum 41e7edc72f6d8710563fa4869a866f4ca2b157075bc0ae1bcf75ed70d8e098b488ee1be82db9ea8d65079e14cdbcd35112ecbe78f277db793b700a66c17c1682
+docfiles size=58
texmf-dist/doc/context/scripts/mkii/ctxtools.html
texmf-dist/doc/context/scripts/mkii/ctxtools.man
texmf-dist/doc/context/scripts/mkii/ctxtools.xml
@@ -81565,9 +81843,11 @@ docfiles size=52
texmf-dist/doc/context/scripts/mkii/xmltools.html
texmf-dist/doc/context/scripts/mkii/xmltools.man
texmf-dist/doc/context/scripts/mkii/xmltools.xml
+ texmf-dist/doc/man/man1/texexec.1
+ texmf-dist/doc/man/man1/texexec.man1.pdf
texmf-dist/doc/man/man1/texmfstart.1
texmf-dist/doc/man/man1/texmfstart.man1.pdf
-runfiles size=4395
+runfiles size=4397
texmf-dist/bibtex/bst/context/mkii/cont-ab.bst
texmf-dist/bibtex/bst/context/mkii/cont-au.bst
texmf-dist/bibtex/bst/context/mkii/cont-no.bst
@@ -81638,14 +81918,6 @@ runfiles size=4395
texmf-dist/scripts/context/ruby/texutil.rb
texmf-dist/scripts/context/ruby/tmftools.rb
texmf-dist/scripts/context/ruby/xmltools.rb
- texmf-dist/scripts/context/stubs/unix/ctxtools
- texmf-dist/scripts/context/stubs/unix/pstopdf
- texmf-dist/scripts/context/stubs/unix/texexec
- texmf-dist/scripts/context/stubs/unix/texmfstart
- texmf-dist/scripts/context/stubs/win64/ctxtools.cmd
- texmf-dist/scripts/context/stubs/win64/pstopdf.cmd
- texmf-dist/scripts/context/stubs/win64/texexec.cmd
- texmf-dist/scripts/context/stubs/win64/texmfstart.cmd
texmf-dist/tex/context/base/mkii/anch-bar.mkii
texmf-dist/tex/context/base/mkii/anch-pgr.mkii
texmf-dist/tex/context/base/mkii/anch-pos.mkii
@@ -82277,6 +82549,10 @@ runfiles size=4395
texmf-dist/tex/context/patterns/mkii/lang-hr.pat
texmf-dist/tex/context/patterns/mkii/lang-hu.hyp
texmf-dist/tex/context/patterns/mkii/lang-hu.pat
+ texmf-dist/tex/context/patterns/mkii/lang-hy.hyp
+ texmf-dist/tex/context/patterns/mkii/lang-hy.pat
+ texmf-dist/tex/context/patterns/mkii/lang-id.hyp
+ texmf-dist/tex/context/patterns/mkii/lang-id.pat
texmf-dist/tex/context/patterns/mkii/lang-is.hyp
texmf-dist/tex/context/patterns/mkii/lang-is.pat
texmf-dist/tex/context/patterns/mkii/lang-it.hyp
@@ -82341,90 +82617,90 @@ runfiles size=4395
name context-legacy.aarch64-linux
category Package
-revision 69173
+revision 70338
shortdesc aarch64-linux files of context-legacy
-containersize 384
-containerchecksum 95563b884a49d6e5cb884139ddbafc1796b9c2d7a35cf08e0a20f05464417f0359fd566634285e6ae027755dfb353c3ec9665cbf2e3544f53af81775a8becf38
+containersize 388
+containerchecksum 9e641067dcc3e3aa90ef3e945cd88231b422e4a92617230dd56db5f6f9b4317d490022a675254d0f10ee65306d0452a0d661e6e6639a07d702c72f5a95d03171
binfiles arch=aarch64-linux size=2
bin/aarch64-linux/texexec
bin/aarch64-linux/texmfstart
name context-legacy.amd64-freebsd
category Package
-revision 69173
+revision 70338
shortdesc amd64-freebsd files of context-legacy
-containersize 388
-containerchecksum 21a8a1412a0c0ec56277acf0faf4a9ed96bddc0e766e269abfa7d02e9fe9405a3433dc8e6e482f8ef39366fd3702cf766ce88748857676f4469715766b6da050
+containersize 392
+containerchecksum 62ede50cd59f33fb44bece54efcd32722f6dc078d37f11b78f81479fce9e6d30d7b4ef9d86671e313c9a3cf91837cee2ad699a965b7271d949789564639271b1
binfiles arch=amd64-freebsd size=2
bin/amd64-freebsd/texexec
bin/amd64-freebsd/texmfstart
name context-legacy.amd64-netbsd
category Package
-revision 69173
+revision 70338
shortdesc amd64-netbsd files of context-legacy
-containersize 388
-containerchecksum 80718af813e454495300841983f7437bccc6df7b3c3545f88b77170fc5c201de77d61cabe38013ad48023a24c157e428965553bee60457f5ace7feca69960ebf
+containersize 392
+containerchecksum 52edd931e9f08774e4137a21bac2b6adf1c59692f8e3d2e4e467bca1ac4bb2b53a45b7974607cd98ae832e6c8d8b9d3b88efd3c68058c21d4db707d4a40c1d50
binfiles arch=amd64-netbsd size=2
bin/amd64-netbsd/texexec
bin/amd64-netbsd/texmfstart
name context-legacy.armhf-linux
category Package
-revision 69173
+revision 70338
shortdesc armhf-linux files of context-legacy
-containersize 384
-containerchecksum 35b369c9186a7b7e2d8aab7931322896d42ffc35c51574d522da43ade0d5b5875e2a4a6f0e65b12e5bc9fb0dc72d77fc4af468a7d75998085658fbbdb6074b1a
+containersize 388
+containerchecksum a159fdad5d55f4e9cf14aff527684afe1c342b241d01f1eaa06268ef822aac1b5cdeb479d4645fc1a843179fe490ce6bf492d42cc09aa3a6bb39d299f932b5a0
binfiles arch=armhf-linux size=2
bin/armhf-linux/texexec
bin/armhf-linux/texmfstart
name context-legacy.i386-freebsd
category Package
-revision 69173
+revision 70338
shortdesc i386-freebsd files of context-legacy
-containersize 388
-containerchecksum 000afd31b99898a5318cfcd6b535b4d36f005e32ba8bbf74a4e345fbb3cff4c3fdff8e03269bfe349944bd325838d550baf433d3acd01909c314bc29a91ef75b
+containersize 392
+containerchecksum b9cb7a9f5cc80d92082b82aeb0b6ac62817ebda1075db307cd6dcc814e8df1c0e80b50b6f6da9cc1ff8184e49e9b924d23fb72976f518f78f74fbf987e5b8df7
binfiles arch=i386-freebsd size=2
bin/i386-freebsd/texexec
bin/i386-freebsd/texmfstart
name context-legacy.i386-linux
category Package
-revision 69173
+revision 70338
shortdesc i386-linux files of context-legacy
-containersize 384
-containerchecksum 9d6482caa88210d00e8ccf20026de601b729743864f3c40cc25fc25d279c77a72f1c863e2c65aee5b5012ad0c5491ca1b7be4f7e22787d9bc4d4bd0b58074f01
+containersize 392
+containerchecksum e37f6a60125f5102210cfea8707e7636c78e2a7c6557786a80ce12270706b31179b56ec04ee70bee2bda92a31f46a8e1b3f1caece6595cf5a99113d1c5e142ba
binfiles arch=i386-linux size=2
bin/i386-linux/texexec
bin/i386-linux/texmfstart
name context-legacy.i386-netbsd
category Package
-revision 69173
+revision 70338
shortdesc i386-netbsd files of context-legacy
-containersize 388
-containerchecksum 4b9703dbe3221dbb4aaf6ebdbfd9dd86554b985123c4df6e41c858e028c0e23827efd54736cd9f93befae60c9fa7032dc3bd1b8efc742c88530ba62154368ef6
+containersize 392
+containerchecksum 9743720589d909df7b1d382d5b2c4b0205d9ac92f6a97cb7ff4561e7c0b8ba9dec6b582d54bcc9ee0dd8b6af077e4f4b95a0c6946d6cf5ed72e3979e91d080d2
binfiles arch=i386-netbsd size=2
bin/i386-netbsd/texexec
bin/i386-netbsd/texmfstart
name context-legacy.i386-solaris
category Package
-revision 69173
+revision 70338
shortdesc i386-solaris files of context-legacy
-containersize 384
-containerchecksum 1a3675b200548248ff6a7f5104be175fb0059faf55d304444cbe5bb117beea09e18d2b3337e83707c7cf95a9162940df2703d232fd8dfc1340d7bda4232d4d7a
+containersize 388
+containerchecksum 91819e44b370781d93b8d933bedd30826357afd6d31e41f23ff2b0cfe3bac26d7b9c7c7fe7afef747c8cc48d7302c44f4c16742927fb27266cac9042022e312b
binfiles arch=i386-solaris size=2
bin/i386-solaris/texexec
bin/i386-solaris/texmfstart
name context-legacy.universal-darwin
category Package
-revision 69173
+revision 70338
shortdesc universal-darwin files of context-legacy
containersize 388
-containerchecksum a297f575ef6090eb63b77280aee3357baced2e411148b442f895a3008409895511984f143e2819572d22e4febf0fec52b266178f5fd8fd83f5a4cc2b09870e7d
+containerchecksum c3624711aa85dc7a102796df8e9218f859c161667ec20d15534e6c6f06971651aafedd85f4566342a95fc16cf1a0b5488c1645f21aced7e20ea8e0bfd15c8175
binfiles arch=universal-darwin size=2
bin/universal-darwin/texexec
bin/universal-darwin/texmfstart
@@ -82441,10 +82717,10 @@ binfiles arch=windows size=4
name context-legacy.x86_64-cygwin
category Package
-revision 69173
+revision 70338
shortdesc x86_64-cygwin files of context-legacy
-containersize 2400
-containerchecksum 2e815cef6c0bb25f400dc849511d8bb8f56dbba24dad4983373c2e4df9001044b5cb8bf7f7d877b58b721262e3698877ea0de49df79944f8f8caada0962bb16d
+containersize 2404
+containerchecksum eca00fc9f71d2d10a0e7658ffe7557826681378d742895c5f860ce70ff8a049d8fc7985c980504f0ed426241b5b4a3f6bf6389d3b4bbd46157aad834aab5662e
binfiles arch=x86_64-cygwin size=4
bin/x86_64-cygwin/texexec
bin/x86_64-cygwin/texmfstart
@@ -82452,40 +82728,40 @@ binfiles arch=x86_64-cygwin size=4
name context-legacy.x86_64-darwinlegacy
category Package
-revision 69173
+revision 70338
shortdesc x86_64-darwinlegacy files of context-legacy
-containersize 392
-containerchecksum 33f7bd414249766a8b752d745b475732d55725cb1a88a764959707fd9cddf04a32de407ee5a9909fa65f9b5d0d8eef019b7fc11f453e3b6b5578ddcc9d7109de
+containersize 396
+containerchecksum 22f2dd60ca6f78f65bb4b5371a18cebe734fd16fcaee2f20d93613670664a1c4051e3f0baf5449f65506fb8593a0f73347a92d8e7e72893ad1c53d650d398f00
binfiles arch=x86_64-darwinlegacy size=2
bin/x86_64-darwinlegacy/texexec
bin/x86_64-darwinlegacy/texmfstart
name context-legacy.x86_64-linux
category Package
-revision 69173
+revision 70338
shortdesc x86_64-linux files of context-legacy
-containersize 388
-containerchecksum 614dd656416b2ce8de0dc7e94f462621ec574fe827cac5e7876803303168cc04b3be4dc6c39d3660f23905026384c8fdd7d52914ed9de7c235b0914f7249072f
+containersize 392
+containerchecksum 78b3d83506a4a8245c496ad5738a7cdd980af16dd6c9b2130d6e0386d10dedc9da92a47f5091c6010dc17600c05e83a9c7a42304c58157fbbd4f45a68b95f25a
binfiles arch=x86_64-linux size=2
bin/x86_64-linux/texexec
bin/x86_64-linux/texmfstart
name context-legacy.x86_64-linuxmusl
category Package
-revision 69173
+revision 70338
shortdesc x86_64-linuxmusl files of context-legacy
-containersize 388
-containerchecksum 837d65d9aff2d8cce81012ed2a6987d140fa90fbbb5243c647a9e0d54a4014573fa7acc7f82ea83eedc098d75e011cbe2e96c9a10a088ed1fe1bdbd1f2ebffd4
+containersize 392
+containerchecksum 4cd9515bdce303c5e89464251ad4ae51f8ee702a2845a3421c18111429c86b506d1fd22bb304c9802a17eeedc9ac2fe80842bff773604500efade83a0a92b56c
binfiles arch=x86_64-linuxmusl size=2
bin/x86_64-linuxmusl/texexec
bin/x86_64-linuxmusl/texmfstart
name context-legacy.x86_64-solaris
category Package
-revision 69173
+revision 70338
shortdesc x86_64-solaris files of context-legacy
-containersize 388
-containerchecksum da8d6aebe70fe25a210748c92c7c15e0c38f6fc9c3f173d16be134a9b6b6ea2909f63a1a9e43da579af4c704bc78ad5d162357063150de2b478fb6c9f83fc16b
+containersize 392
+containerchecksum 1968929c650754e69504f606264e03a4b4cf659f3a9c2fbc69d6bb3ddfe1cef9bcf522e4c7290b2007f0bf625dbacf6781ea6adea9838c6078b0d08c03cfeb8f
binfiles arch=x86_64-solaris size=2
bin/x86_64-solaris/texexec
bin/x86_64-solaris/texmfstart
@@ -82837,15 +83113,15 @@ catalogue-topics context
name context-squares
category ConTeXt
-revision 70141
+revision 70128
shortdesc Typesetting Magic and Latin squares
relocated 1
longdesc The package provides typesetting of magic and latin squares.
depend context
containersize 3600
-containerchecksum 1ff4b50cf1bf75c6908b968c0fa35bdbd3571ef680ccf591ce5b0bd65370bc1dbd3bbb54b55c881d4d76ad09aa36a496248560874ad6e14e39b5f94cdec5ee23
-doccontainersize 2000
-doccontainerchecksum 08b652e69c1719991daf36b9d9360b5736c25283ef10bdb5859bdfaecf1dd3a47d7417b9884d7bf51a32b073f99e08f35d8f172ff0d6a4817923c00f81dd6dfc
+containerchecksum fdb194b57a51d1ff127b23a45fc07f43844b4bf5c8ae5cd7a2dd73cf7b75ecc2bb842a26f88c23fcbaaf060c8f496e11fa6967553944fd46939936eeef29e22c
+doccontainersize 1984
+doccontainerchecksum dcc3aa45d04a4e2cdb6719d7fdea1f0d761814a232a027ea97fd2cae12bc510bf1b66bdabe0c31752060db91e62ec2b16b6faaf714ac42ee181adff2a94cb9c4
docfiles size=4
RELOC/doc/context/third/squares/CHANGELOG.md
RELOC/doc/context/third/squares/LICENSE
@@ -82888,15 +83164,164 @@ catalogue-topics context games
name context-texlive
category Package
-revision 66924
-shortdesc TeX Live-specific helpers for ConTeXt (caches, papersize)
-relocated 1
-longdesc The code is in the directory texmf-dist/tex/context/texlive.
-containersize 1052
-containerchecksum 64abf080ecfd9cf68f2ef12123ca6ee976d6fe3cb8382d34b32f424a1bfcf9165142bab2c1a9a1f394e1ed4bd53aaf2875363e7f357eae48ba00ddfc894e5d1f
-runfiles size=2
- RELOC/tex/context/texlive/cont-sys.mkiv
- RELOC/tex/context/texlive/cont-sys.mkxl
+revision 70437
+shortdesc TL-specific helpers for ConTeXt (caches, papersize)
+longdesc TL distributes cont-sys.mkxl and cont-sys.mkiv files to update
+longdesc the ConTeXt filename cache if the system ls-R files are
+longdesc modified (typically by mktexlsr). It also sets the default
+longdesc paper size from the context-papersize.tex file which TeX Live
+longdesc creates/updates (in tlpkg/TLPaper.pm). TL also includes stubs
+longdesc to run the luatools, contextjit, and mtxrunjit scripts.
+depend context-texlive.ARCH
+containersize 1696
+containerchecksum f905235df295bbcd2883f9494aa585fed37ab3d7ce2d3aa4f49650e9bf19d69dcb87d6e3e6aed3f8b82c54127f1d6864f26b1bc5d2b0c37ceaf896cef0022d44
+doccontainersize 34592
+doccontainerchecksum fbf3b8624c7c0513f030d7c8053820d7a4403f0e2c192f8925a63643e76855fc780a8fc0d7d5cbf13d8172083fb7a43823b7547922b4c7838c479e1c12095e84
+docfiles size=20
+ texmf-dist/doc/man/man1/contextjit.1
+ texmf-dist/doc/man/man1/contextjit.man1.pdf
+ texmf-dist/doc/man/man1/luatools.1
+ texmf-dist/doc/man/man1/luatools.man1.pdf
+ texmf-dist/doc/man/man1/mtxrunjit.1
+ texmf-dist/doc/man/man1/mtxrunjit.man1.pdf
+runfiles size=16
+ texmf-dist/scripts/context-texlive/stubs-mkiv/unix/contextjit
+ texmf-dist/scripts/context-texlive/stubs-mkiv/unix/luatools
+ texmf-dist/scripts/context-texlive/stubs-mkiv/unix/mtxrunjit
+ texmf-dist/scripts/context-texlive/stubs-mkiv/win64/contextjit.cmd
+ texmf-dist/scripts/context-texlive/stubs-mkiv/win64/luatools.cmd
+ texmf-dist/scripts/context-texlive/stubs-mkiv/win64/mtxrunjit.cmd
+ texmf-dist/scripts/context-texlive/stubs/unix/ctxtools
+ texmf-dist/scripts/context-texlive/stubs/unix/pstopdf
+ texmf-dist/scripts/context-texlive/stubs/unix/texexec
+ texmf-dist/scripts/context-texlive/stubs/unix/texmfstart
+ texmf-dist/scripts/context-texlive/stubs/win64/ctxtools.cmd
+ texmf-dist/scripts/context-texlive/stubs/win64/pstopdf.cmd
+ texmf-dist/scripts/context-texlive/stubs/win64/texexec.cmd
+ texmf-dist/scripts/context-texlive/stubs/win64/texmfstart.cmd
+ texmf-dist/tex/context/texlive/cont-sys.mkiv
+ texmf-dist/tex/context/texlive/cont-sys.mkxl
+
+name context-texlive.aarch64-linux
+category Package
+revision 70338
+shortdesc aarch64-linux files of context-texlive
+containersize 412
+containerchecksum 21e9c80ed0c4228d67e88ba2f509f8420b3ee4986deab7720149e1927a5a6a46023bb054936c8884c9776731fb076e109c05283516fad627721ce8a593d58ce5
+binfiles arch=aarch64-linux size=3
+ bin/aarch64-linux/contextjit
+ bin/aarch64-linux/luatools
+ bin/aarch64-linux/mtxrunjit
+
+name context-texlive.amd64-freebsd
+category Package
+revision 70338
+shortdesc amd64-freebsd files of context-texlive
+containersize 412
+containerchecksum 0fcebdf0ad7256da09f5c39ca45c432865a2ae44ccd047988d5461514f239ad1a552d59d722b57a24da773b4489f5a7b5ac23db62afe795f92cd762343579dca
+binfiles arch=amd64-freebsd size=3
+ bin/amd64-freebsd/contextjit
+ bin/amd64-freebsd/luatools
+ bin/amd64-freebsd/mtxrunjit
+
+name context-texlive.amd64-netbsd
+category Package
+revision 70338
+shortdesc amd64-netbsd files of context-texlive
+containersize 408
+containerchecksum 00ce1b20b159a907c99f7987851cb886468168498386d942c66035f498f5618eb9c107ee25d4f303f0faa9f91a65a1ed30bdf338ea07ba6693f155e17c5d4a80
+binfiles arch=amd64-netbsd size=3
+ bin/amd64-netbsd/contextjit
+ bin/amd64-netbsd/luatools
+ bin/amd64-netbsd/mtxrunjit
+
+name context-texlive.i386-freebsd
+category Package
+revision 70338
+shortdesc i386-freebsd files of context-texlive
+containersize 412
+containerchecksum 1efec82fa949af449f3684fd8f519cfc652142638ba5eb7743343d2d86a1949b36784e821c98af750cf6869144dcea4124dbd56e6ea5993ead5f59e781a04dd3
+binfiles arch=i386-freebsd size=3
+ bin/i386-freebsd/contextjit
+ bin/i386-freebsd/luatools
+ bin/i386-freebsd/mtxrunjit
+
+name context-texlive.i386-linux
+category Package
+revision 70338
+shortdesc i386-linux files of context-texlive
+containersize 408
+containerchecksum 118fb36fb1578a4d21562605a7864837792f15bc0bd22014fbf3c39901c7f7ac9c650ace6ad97b818d68c6126f8db656a35a1bf8b99d80ab0ea4483b20e3784b
+binfiles arch=i386-linux size=3
+ bin/i386-linux/contextjit
+ bin/i386-linux/luatools
+ bin/i386-linux/mtxrunjit
+
+name context-texlive.universal-darwin
+category Package
+revision 70338
+shortdesc universal-darwin files of context-texlive
+containersize 408
+containerchecksum 13f0ff06909b946c06709fabb777437b4d3268e9c41ee10e89a3b5fa8d5c77fa98f837e31f1ecd2825e395b40d4a9f59c3896dbd7a4ac69fe0cca73917a26b17
+binfiles arch=universal-darwin size=3
+ bin/universal-darwin/contextjit
+ bin/universal-darwin/luatools
+ bin/universal-darwin/mtxrunjit
+
+name context-texlive.windows
+category Package
+revision 69108
+shortdesc windows files of context-texlive
+containersize 2400
+containerchecksum c6596ea465f615e26d17dbf414a49dd2a2a23ec6a542fd9ea96b95bf1e64aaf27d37f95a4effd881f7fd041eacba2bd82f3a29e0b090c67baa66d3f4c1f13679
+binfiles arch=windows size=6
+ bin/windows/contextjit.exe
+ bin/windows/luatools.exe
+ bin/windows/mtxrunjit.exe
+
+name context-texlive.x86_64-cygwin
+category Package
+revision 70338
+shortdesc x86_64-cygwin files of context-texlive
+containersize 412
+containerchecksum f9ff8607cc328f0ff73726013fe3345521987a6f9ee4c21546db6153bc5488c7d577d3e365de606cb990d24bea0492515073fb918be03a73d7643e2590ce3194
+binfiles arch=x86_64-cygwin size=3
+ bin/x86_64-cygwin/contextjit
+ bin/x86_64-cygwin/luatools
+ bin/x86_64-cygwin/mtxrunjit
+
+name context-texlive.x86_64-darwinlegacy
+category Package
+revision 70338
+shortdesc x86_64-darwinlegacy files of context-texlive
+containersize 420
+containerchecksum 690e251128c891748bc4cc27b4d759030543602e88f604f9258de39869e5f50063e4a587029ddc9e00716d65377d898415fbc6291d614a264536023792056c8a
+binfiles arch=x86_64-darwinlegacy size=3
+ bin/x86_64-darwinlegacy/contextjit
+ bin/x86_64-darwinlegacy/luatools
+ bin/x86_64-darwinlegacy/mtxrunjit
+
+name context-texlive.x86_64-linux
+category Package
+revision 70338
+shortdesc x86_64-linux files of context-texlive
+containersize 412
+containerchecksum 8b6c1045a30764d1cf68832af78925225a516abd7d8f84b8506db07ce8811c9412b6929d07434787445750c744d830d570c0230c2369428cf73b87f1aeffb01f
+binfiles arch=x86_64-linux size=3
+ bin/x86_64-linux/contextjit
+ bin/x86_64-linux/luatools
+ bin/x86_64-linux/mtxrunjit
+
+name context-texlive.x86_64-linuxmusl
+category Package
+revision 70338
+shortdesc x86_64-linuxmusl files of context-texlive
+containersize 412
+containerchecksum 4c2318b46db05f9b3bffa8b94714e19cdeb3c3774f45817a12cd7d523681b64d3b8af97ab47249ec53d154a17e2cc6781844e867bde5edecc6c996a12fe55c7a
+binfiles arch=x86_64-linuxmusl size=3
+ bin/x86_64-linuxmusl/contextjit
+ bin/x86_64-linuxmusl/luatools
+ bin/x86_64-linuxmusl/mtxrunjit
name context-transliterator
category ConTeXt
@@ -83056,227 +83481,146 @@ catalogue-topics context
name context.aarch64-linux
category Package
-revision 69108
+revision 70189
shortdesc aarch64-linux files of context
-containersize 1000840
-containerchecksum 3e189ea9f739ef0a62e0134e4d8864101eb127ccc007937c86b48cb42235c2af2a719d0f6d33323bc1a3b322345091150b7c267afb6e9add3812e5c6eb0615ac
-binfiles arch=aarch64-linux size=780
+containersize 1032248
+containerchecksum 64920e33f651707bb5a99b31dd25a420b2a2da2f48b1dc84703c1cc703ce118fa4625b898e5878c2333cb19d4cfaf67764cc5d3519359f3b2e08723e2a793ea4
+binfiles arch=aarch64-linux size=794
bin/aarch64-linux/context
bin/aarch64-linux/context.lua
- bin/aarch64-linux/contextjit
bin/aarch64-linux/luametatex
- bin/aarch64-linux/luatools
bin/aarch64-linux/mtxrun
bin/aarch64-linux/mtxrun.lua
- bin/aarch64-linux/mtxrunjit
name context.amd64-freebsd
category Package
-revision 69108
+revision 70189
shortdesc amd64-freebsd files of context
-containersize 992004
-containerchecksum e75596ec5a35d125b4b6d84b70acfa3958c0c58a63231ffb971c533cf892a04926139b398bced59fc020038de2768ffbedb8410785e157f493f415ccbfe3467e
-binfiles arch=amd64-freebsd size=751
+containersize 984792
+containerchecksum 0bc34a7331dd3b260f8621d587e88ea4670b8db582c91b9a8225cd96cf20b74a3fde9dac3077ffb02fb3a254b29c4e34350ee8cf56be977f85b37433222fbe70
+binfiles arch=amd64-freebsd size=709
bin/amd64-freebsd/context
bin/amd64-freebsd/context.lua
- bin/amd64-freebsd/contextjit
bin/amd64-freebsd/luametatex
- bin/amd64-freebsd/luatools
bin/amd64-freebsd/mtxrun
bin/amd64-freebsd/mtxrun.lua
- bin/amd64-freebsd/mtxrunjit
name context.amd64-netbsd
category Package
-revision 69108
+revision 70242
shortdesc amd64-netbsd files of context
-containersize 1095172
-containerchecksum d3c184317a2e79570616850b1ce9177a59fd53004d3709a13c57bcb079ccc6aae218338ebbcfcebddebfdd27cf38c27b3fde7cf98e928920d74f7d2c329d2fa2
-binfiles arch=amd64-netbsd size=804
+containersize 1126024
+containerchecksum 83b3c6cdba9d2f329867e643c8bfd67a28c756182e3ba4e64065101865c34596c17bf88917105d5f4c7297476d129bb08b6f03d755ea3a9ec17be357b4ec8ce7
+binfiles arch=amd64-netbsd size=808
bin/amd64-netbsd/context
bin/amd64-netbsd/context.lua
- bin/amd64-netbsd/contextjit
bin/amd64-netbsd/luametatex
- bin/amd64-netbsd/luatools
bin/amd64-netbsd/mtxrun
bin/amd64-netbsd/mtxrun.lua
- bin/amd64-netbsd/mtxrunjit
-
-name context.armhf-linux
-category Package
-revision 69108
-shortdesc armhf-linux files of context
-containersize 806640
-containerchecksum 737ca495005acb7b028f149080a43af8c8128d6792b74b4864e4ffd6a4834282e446368b206b98779e59d74422f827abc9d20fc981d54477f94b0c2f28a03626
-binfiles arch=armhf-linux size=597
- bin/armhf-linux/context
- bin/armhf-linux/context.lua
- bin/armhf-linux/contextjit
- bin/armhf-linux/luametatex
- bin/armhf-linux/luatools
- bin/armhf-linux/mtxrun
- bin/armhf-linux/mtxrun.lua
- bin/armhf-linux/mtxrunjit
name context.i386-freebsd
category Package
-revision 69108
+revision 70189
shortdesc i386-freebsd files of context
-containersize 902212
-containerchecksum 4a8a84f9acd1e3a75b99906c4702b1197ee6cf3ac82e12b9f9568d16792951491e4b6b452535d5c10fc3da28556dd6bebb93bd00a315417ea9107d2a467a26ef
-binfiles arch=i386-freebsd size=670
+containersize 906900
+containerchecksum 6276db9fbe55a3fe973b0efb9be7bbffcdd29bc670aba7cd35230ffc85b75c488186510770a7befaa6a4937ba31b45ff62eb355329296aee229f2b8714f36d2f
+binfiles arch=i386-freebsd size=647
bin/i386-freebsd/context
bin/i386-freebsd/context.lua
- bin/i386-freebsd/contextjit
bin/i386-freebsd/luametatex
- bin/i386-freebsd/luatools
bin/i386-freebsd/mtxrun
bin/i386-freebsd/mtxrun.lua
- bin/i386-freebsd/mtxrunjit
name context.i386-linux
category Package
-revision 69108
+revision 70189
shortdesc i386-linux files of context
-containersize 1240172
-containerchecksum 830a098d2bb9f53958094fce2d2a9ed9955b84470a66a01530f511f8b16240ea82754ed40d2ef20c7942d1c1f2c8166c58a7bf3ca9f7b313a3fafea479a24d6f
-binfiles arch=i386-linux size=966
+containersize 1272152
+containerchecksum edd4f44cdd45854b590446c175e23aeeacb051bdf6773f7c4d37e9b3297ccb6f180e070ba8184d5b091a3614ccac619740a7b2f11bd416fd38a723980c4e7218
+binfiles arch=i386-linux size=982
bin/i386-linux/context
bin/i386-linux/context.lua
- bin/i386-linux/contextjit
bin/i386-linux/luametatex
- bin/i386-linux/luatools
bin/i386-linux/mtxrun
bin/i386-linux/mtxrun.lua
- bin/i386-linux/mtxrunjit
-
-name context.i386-solaris
-category Package
-revision 69108
-shortdesc i386-solaris files of context
-containersize 1004000
-containerchecksum 0f27ce690cb6d37de365bffe5433e187e74d28df54826e35aaedf64aae8e1315cd63712098a4b979049fb0cf01638ddcb70398e5bfc0c8bdbf1f534bfe2dc8ce
-binfiles arch=i386-solaris size=726
- bin/i386-solaris/context
- bin/i386-solaris/context.lua
- bin/i386-solaris/contextjit
- bin/i386-solaris/luametatex
- bin/i386-solaris/luatools
- bin/i386-solaris/mtxrun
- bin/i386-solaris/mtxrun.lua
- bin/i386-solaris/mtxrunjit
name context.universal-darwin
category Package
-revision 69108
+revision 70214
shortdesc universal-darwin files of context
-containersize 1726796
-containerchecksum ab629023a1bcbdaf630263875101b680f390d93f9a649c4a6826ae4bbda0c4839b0967406572ce11c1067f557a136f0c32083c92cb8b4330493997432726f151
-binfiles arch=universal-darwin size=1403
+containersize 1755788
+containerchecksum ca5f2b437a531949b81fa9748932178f999e119b65caf77a4fc1abe81153945d765a6b91e663520be5a4752c26f136d54b964b5f2d6cb60ce0a68351991616a4
+binfiles arch=universal-darwin size=1398
bin/universal-darwin/context
bin/universal-darwin/context.lua
- bin/universal-darwin/contextjit
bin/universal-darwin/luametatex
- bin/universal-darwin/luatools
bin/universal-darwin/mtxrun
bin/universal-darwin/mtxrun.lua
- bin/universal-darwin/mtxrunjit
name context.windows
category Package
-revision 69108
+revision 70215
shortdesc windows files of context
-containersize 1122828
-containerchecksum 99513deca14adf1f7f0c661b5c6ac1d11cb5f642d763e70a6d3f62e9a2b5464cd0e65726fab6eed9f62e6975a16a2438aa206d1be801afc6ef17d62cafa66fea
-binfiles arch=windows size=2293
+containersize 1180240
+containerchecksum 57efeb0f1f2e05fd99749dec48aa726132e7b7f050cba285a3b7004971ddf537d9719daedb5d8dfe425cf23cb716db54e4d15b8c8ea949a758b79d28cf1a5c6d
+binfiles arch=windows size=2408
bin/windows/context.exe
bin/windows/context.lua
- bin/windows/contextjit.exe
bin/windows/luametatex.exe
- bin/windows/luatools.exe
bin/windows/mtxrun.exe
bin/windows/mtxrun.lua
- bin/windows/mtxrunjit.exe
name context.x86_64-cygwin
category Package
-revision 69108
+revision 70250
shortdesc x86_64-cygwin files of context
-containersize 1048268
-containerchecksum 2dbc679c0bb02a07be6fe024cc33c82cf19e12eaa752b32e80f35fe30daf11749094b7e0e8cb78984409674aee404d30743a74b1c36803257df250e03dff2150
-binfiles arch=x86_64-cygwin size=736
+containersize 1115372
+containerchecksum f44e5c9054a9c6c23862b81d2b96295c34291b772f04a8919a514eb71009529e3269c48700ced8477dcbdbcc2bbe31d49192bd90ccf9427bf7ac0503295b209a
+binfiles arch=x86_64-cygwin size=775
bin/x86_64-cygwin/context
bin/x86_64-cygwin/context.lua
- bin/x86_64-cygwin/contextjit
bin/x86_64-cygwin/luametatex.exe
- bin/x86_64-cygwin/luatools
bin/x86_64-cygwin/mtxrun
bin/x86_64-cygwin/mtxrun.lua
- bin/x86_64-cygwin/mtxrunjit
name context.x86_64-darwinlegacy
category Package
-revision 69108
+revision 70189
shortdesc x86_64-darwinlegacy files of context
-containersize 947476
-containerchecksum 0dfe75e195b610cf8df03a5c7d138188f4b6f13d741d95bc797cd29c2873a267d4f3008e70ebb2f29c2a385ba43e99cbba385e7ee26cea107d6ab91164d454ce
-binfiles arch=x86_64-darwinlegacy size=713
+containersize 1009040
+containerchecksum ddc099a89beaa7b44d87ebe5b1056df08b7b10c8180dc8a103ea4eb792fa1cb090f29e0f180199e686ed9de88ea09efaee5a1c631804dd7a62dbf04d8a464046
+binfiles arch=x86_64-darwinlegacy size=750
bin/x86_64-darwinlegacy/context
bin/x86_64-darwinlegacy/context.lua
- bin/x86_64-darwinlegacy/contextjit
bin/x86_64-darwinlegacy/luametatex
- bin/x86_64-darwinlegacy/luatools
bin/x86_64-darwinlegacy/mtxrun
bin/x86_64-darwinlegacy/mtxrun.lua
- bin/x86_64-darwinlegacy/mtxrunjit
name context.x86_64-linux
category Package
-revision 69108
+revision 70189
shortdesc x86_64-linux files of context
-containersize 1102488
-containerchecksum afc2f27105cf75633b8e5b7a9e25f61e2ba31f79d3f1a56cf9db931884630c27e074d3ed78f2e34f1f2b842858e8da05ad569d4229aeb474ddebe72cf8482388
-binfiles arch=x86_64-linux size=784
+containersize 1206096
+containerchecksum 30c04a73762fb1e2a7b3db1ce0d7c4593577f407340476d06434ba4a6fe54c199e5af5bfc8a76340e9cbdb06b20cb90ba16712939695bf998184ff4d288d0880
+binfiles arch=x86_64-linux size=852
bin/x86_64-linux/context
bin/x86_64-linux/context.lua
- bin/x86_64-linux/contextjit
bin/x86_64-linux/luametatex
- bin/x86_64-linux/luatools
bin/x86_64-linux/mtxrun
bin/x86_64-linux/mtxrun.lua
- bin/x86_64-linux/mtxrunjit
name context.x86_64-linuxmusl
category Package
-revision 69108
+revision 70189
shortdesc x86_64-linuxmusl files of context
-containersize 1010480
-containerchecksum ddc732787f9196fa31ea75c379c97eb0ba50149a2de14f55ace979ec62e9449c28b7a2bc26d370f09e6102a412020fd156253cf627d4bb6a6bc18eb8adc906c5
-binfiles arch=x86_64-linuxmusl size=779
+containersize 991756
+containerchecksum 6cc30ca107df701cc79752089f781b584baeb27268be30d38154a996f0129dc75ecabada99e1f7156dce57adb0c59d111d5404a92f085e6b9dbc360c98b7f40f
+binfiles arch=x86_64-linuxmusl size=738
bin/x86_64-linuxmusl/context
bin/x86_64-linuxmusl/context.lua
- bin/x86_64-linuxmusl/contextjit
bin/x86_64-linuxmusl/luametatex
- bin/x86_64-linuxmusl/luatools
bin/x86_64-linuxmusl/mtxrun
bin/x86_64-linuxmusl/mtxrun.lua
- bin/x86_64-linuxmusl/mtxrunjit
-
-name context.x86_64-solaris
-category Package
-revision 69108
-shortdesc x86_64-solaris files of context
-containersize 1126536
-containerchecksum cc8f8c86ce17a16c1d782a39f825eca5f3b40b423f1916c6da2a112551c19d59936f913c6d9d5677bafb2f83fb843c7298e81c8547a346de4aab5113130d2d57
-binfiles arch=x86_64-solaris size=857
- bin/x86_64-solaris/context
- bin/x86_64-solaris/context.lua
- bin/x86_64-solaris/contextjit
- bin/x86_64-solaris/luametatex
- bin/x86_64-solaris/luatools
- bin/x86_64-solaris/mtxrun
- bin/x86_64-solaris/mtxrun.lua
- bin/x86_64-solaris/mtxrunjit
name continue
category Package
@@ -86097,7 +86441,7 @@ catalogue-version 0.1
name create-theorem
category Package
-revision 70180
+revision 70177
shortdesc Initializing and configuring theorem-like environments, with multilingual support
relocated 1
longdesc This package provides commands for naming, initializing and
@@ -86107,10 +86451,10 @@ longdesc multilingual documents, allowing the easy declaration of
longdesc theorem-like environments that can automatically adapt to the
longdesc language settings.
depend crefthe
-containersize 15512
-containerchecksum b65a610bb508fc169db8447d234e656fb3b63647ccc7a6656bb015fd871c762ed2b8bd59304808f5db1ce528f8227283a6172aafee9cb84f24c5fd41041acd9f
-doccontainersize 104968
-doccontainerchecksum 4ce2d32999518c46478fb6563da42d073a04fcda76391ca722e20a4b0651819722fe62325c7bc858162368645c259de2407bf6b67681a7990e225195459c54af
+containersize 15524
+containerchecksum dac43c96419036f99183477bac728ce237563df359f95a1dd7f15dec3be4f08a7f429c8e6b5a58335e27a71364d72c0af6494978b092578158f2dae6c84bb1ce
+doccontainersize 104972
+doccontainerchecksum 451cc00bd9e9d0e07ab88003ec6be2f8bb7ea2829b4f1164147dcbb816625459acc14a3ae7101f0540b40bf5ecd0349e714c1be9781ac6ab0a11780a3c68479c
docfiles size=40
RELOC/doc/latex/create-theorem/DEPENDS.txt
RELOC/doc/latex/create-theorem/LICENSE
@@ -86154,7 +86498,7 @@ catalogue-version 0.1.0
name crefthe
category Package
-revision 70165
+revision 70156
shortdesc Cross referencing with proper definite articles and declensions
relocated 1
longdesc By default, when using cleveref's \cref to reference
@@ -86165,9 +86509,9 @@ longdesc purpose, the current package offers \crefthe, which handles the
longdesc definite articles properly (especially for the article
longdesc contractions in many European languages).
containersize 5000
-containerchecksum e3d8ee83d5c8eeb35885ac852e64df8c3e0950855b1860fd1013358626aa5968e02175e0873dadeff69eafcf14dc85bddfbe78fccbe9c784748c5e09b599a27a
+containerchecksum ef1eeac158bf07d1251365e98d1068f684529d43461fe1e894b61cef20cad61eeeed135b34e1b961288af68578196095406e11863b0852143c44841ca67471a7
doccontainersize 81312
-doccontainerchecksum 35d45eb3ad323dc4699ee103a7efedbfb4fac371632d82e5e449a49e89ff6ee25ba9b7d86ee2ebe76c5094dbc24c0813d2a89328d28414b04ba2d20c513cdf3e
+doccontainerchecksum 3f1257cc68b73400e57812009f27b96914872be2275c2217864df0ed44bcff62748ab1b99522a073c45aba843b6ec1a57a3eaaf5d785439873449d38f640d773
docfiles size=30
RELOC/doc/latex/crefthe/LICENSE
RELOC/doc/latex/crefthe/README.md details="Readme"
@@ -88636,10 +88980,10 @@ binfiles arch=universal-darwin size=3
name csplain.windows
category Package
-revision 65891
+revision 70525
shortdesc windows files of csplain
-containersize 2428
-containerchecksum 79e9feb35f8ea722a02ecbdd2880991c72be04cbaf2ab16a7ca85d62db8df8257ab1cd44998e0901a1d530fde32ce3495cf6fe1709676a392c6d1c9a5e11e280
+containersize 2800
+containerchecksum d0584e7b43fcaa7af02ab0472d2066dd62aa31c99026d45840e7415eda060c67e773eb03d49fcf5bfa2402d0eaf061654cd0e7477a8bb6d6ceda402052650296
binfiles arch=windows size=6
bin/windows/csplain.exe
bin/windows/luacsplain.exe
@@ -89937,15 +90281,15 @@ catalogue-topics tibetan
name ctie
category TLCore
-revision 66186
+revision 70015
shortdesc C version of tie (merging Web change files)
longdesc This is a version of tie converted for use with cweb.
depend ctie.ARCH
depend kpathsea
containersize 380
-containerchecksum 0180080c48fea7b717ff0ad27e060ad4564841fe2929b8db919aa0402886a00e0fa40f1398ef82bbf9e983343c9f9f6c797606045d55ed07e572e006588c7353
-doccontainersize 16972
-doccontainerchecksum 178a88260131781b6678ee63b1b35ecc0734525309b99c0d5bd4498127970bd67e30c23072392b6678186532a845c7e27188b1902b5dca52180720bc98fe3dd6
+containerchecksum 26c10cade1d83c9468a0726c12cdf39fead8b3cc077608f153f70121d6ae74a67b22a3186aebda3ba41eeba3398ff92891dca8ced386a048dddedbb22a6a7f17
+doccontainersize 17028
+doccontainerchecksum 4128f05ee8ee513adfaa13656d50f9c768a043d17120ac2740363f549f7b61c81b0e4671d7a84ae034133f92dc90e7cc6b1c88fe3dab25199a15f17bf506c797
docfiles size=6
texmf-dist/doc/man/man1/ctie.1
texmf-dist/doc/man/man1/ctie.man1.pdf
@@ -89956,137 +90300,137 @@ catalogue-version 1.1
name ctie.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of ctie
-containersize 34260
-containerchecksum 7c755e114fa281ad238e36307442ea871bcfb92a84375c52fdf896589c1fe903fe18d56b6ae4e8db30d4c57ffe49e8ec264f6ca398999cd298354ec593ba2d2b
+containersize 34620
+containerchecksum 83e11b3dee0a793445585deb4762bf28c1c9cc6bbf51cf03c1acb4f4f2839b9f01b0acf33b6302e17132d4c05265fb118c8b6eeda6cb25a33c7a454dfa799388
binfiles arch=aarch64-linux size=22
bin/aarch64-linux/ctie
name ctie.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of ctie
-containersize 35872
-containerchecksum 99f5a06849bac63a784a5f431e1a2068e934a5f90eb815facffbe56df2b81fa8d97d4f8e609dea0370cc35dd00cba00932bde85aae6459f472582334c0d58fbd
-binfiles arch=amd64-freebsd size=21
+containersize 33992
+containerchecksum 77d74e81fa2e6e522eca6858989fef28018293896ce86a2af778a709041a66d3ae491b75fe4ef15098517b90c23d54817eabd3712d4b143480e8379666f719fd
+binfiles arch=amd64-freebsd size=27
bin/amd64-freebsd/ctie
name ctie.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of ctie
-containersize 32236
-containerchecksum 7e96fc560fd461fa877a4ee5253cf796829321b4047370e8938b6df2e08da1d016f9c14bc1fc6f8dd204047a8b62831cbbd535ff49cf9f37c7442ea9e2479dda
-binfiles arch=amd64-netbsd size=25
+containersize 32712
+containerchecksum 472a6544d06a17e532180077fc8bf4381381a5a36dce5aeb51021971792ebfdf0c5ca038b31aecad7268610f67d559fbec19349988cb5995aafda1fc5d91c81f
+binfiles arch=amd64-netbsd size=26
bin/amd64-netbsd/ctie
name ctie.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of ctie
-containersize 28712
-containerchecksum 3cab47f6494e3eaf70c3297208c5a6e49b831d9ac9280e402e8fb067a559201ffe68eb70fed6c6635abdeae43cc71c60720ccb01f9ddfc95b07899aeb1d9f292
+containersize 29052
+containerchecksum 46bcbca45e39d6b08c5b93d4036d39073cc4ce8263ec61349edbdc7aeaf2ac1a131a711b064e4d8d8f41478fe8450fdd7f0ce8eecf29cba7379b629588b1c7ef
binfiles arch=armhf-linux size=18
bin/armhf-linux/ctie
name ctie.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of ctie
-containersize 33004
-containerchecksum 51242384d73cb702ed43d308309bdc1814acf8eea959ebdf809b9ff26a8d59fd4765555b7ca0c63ebbaad20827837ba79821f29f7f478136bee513f7a84bac77
-binfiles arch=i386-freebsd size=19
+containersize 33872
+containerchecksum 0b3e70d8a67af1c99b8f0c5d9ebcde039dba1fe459bf4be2534271c136bf98e9bf036a380c9c5b2d63e8e4f812d0a870469eca0fb0c98fdd287de25a47117f32
+binfiles arch=i386-freebsd size=27
bin/i386-freebsd/ctie
name ctie.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of ctie
-containersize 38580
-containerchecksum 2c83837c6f7e6fa50a1db31156a94d2d0a1badd352adc77be962d4ff6d6c0b849c64a482d713ede05d902639c8a876e096d8b26fc65ce8b0d012a1ee72c10a00
-binfiles arch=i386-linux size=24
+containersize 39072
+containerchecksum 33e8664f37140b8cb37f3fb8b8d2ae62f634f62641ecbc3b34f8263f56e0f9296ec652bc04ceff7fe062c05fdf75cda16240637d1be62fbd2a4205be22b50936
+binfiles arch=i386-linux size=25
bin/i386-linux/ctie
name ctie.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of ctie
-containersize 29792
-containerchecksum ce0af13049c97c91bef7fecfd9cdb66899135bf24177dd9e3dec47810ff16016362bc63e871ecb6e70d867bc663cffc7d8562496b01fe1de572de594eb7aef84
+containersize 30140
+containerchecksum c4f35d2a7fdaf2f27d4b991072a1fdd0a2c06221c0bd8f28bee921d692d4d9c7076bde8a853f2ef25b2f6f18f481bed25ae59b0c29139cec4fcc9491e5cac7b4
binfiles arch=i386-netbsd size=24
bin/i386-netbsd/ctie
name ctie.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of ctie
-containersize 34324
-containerchecksum 59f93c39eeaa8ecb14bcc7efab50d2c44b48f08f589a9c6b496b900d87e84d08b46907205f9ec1f37d4011f791edad6795704d2b6237e39295578ab0be8dd726
-binfiles arch=i386-solaris size=19
+containersize 35532
+containerchecksum 10e832836d057083ff738954cce7f17876a1f835a403331251aeed59592ec596748f15d2608e93a8e1762215a98c7915d3ac0a9c08e9fe1df7acb10dd795add6
+binfiles arch=i386-solaris size=21
bin/i386-solaris/ctie
name ctie.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of ctie
-containersize 66276
-containerchecksum 9fcf39802581b89be2f59f95a193b587488e8d7367715006b54cce6188df21f68ddc75e39f70eece53f38077d01c061f5f0f3abd5bb40f5f34a87acd9b650236
+containersize 66492
+containerchecksum e1bccf7b897e5f5a713546c11ab63e66954abd4a47f4c9fb316407b07b234de2aa6a0c35e58d9c5ec0d01f8d0f5a05924ef30ab7c1e515605242a830a5dfcb4a
binfiles arch=universal-darwin size=63
bin/universal-darwin/ctie
name ctie.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of ctie
-containersize 6792
-containerchecksum 19a7a9e88125c6785e86f81f00e35e450bebc71a39abdf3618acc6aff352c75357363ef0ab6ddeec8caaaa2d96d47dcda59995704f4f948818f58a852da2d9f8
+containersize 6812
+containerchecksum e5e3328af2e8b19ae141ab83b2706b0665ba493a19daf5d5462e420be5fe901eb77c7fe8e5313ed751432bb0f77a447ff8c2f23bd5c289bc59bd86e94eb4c7ea
binfiles arch=windows size=4
bin/windows/ctie.exe
name ctie.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of ctie
-containersize 6816
-containerchecksum 56831dcbf0decf1486f1fa63aa9e00b93f1710880d5ec2f41659b36b35c758ca4584b0a49aefb2d9c42b3826180ff4976cf22fd83e8e5d4bc6c6fe3aba749d65
+containersize 6780
+containerchecksum bb1fcf564a90aa9a38428ca92987ab5f4d7b567e119365e0aa3af2ed76933c2b57fe0fde3712559b66a06e6fee616f180c14ca899e8ea8825beb2fe3bb76f549
binfiles arch=x86_64-cygwin size=5
bin/x86_64-cygwin/ctie.exe
name ctie.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of ctie
-containersize 33716
-containerchecksum c87e7576395492a39e05fd4b17547cbbdf48c01cf5715c9c4ee4c91d623921b58c977e311c8ddee1817d320429f954c0628b818fa9e3d69d1c6c84ac2d1b8a7f
-binfiles arch=x86_64-darwinlegacy size=20
+containersize 34312
+containerchecksum 6e0be613f7cc78daffa29be034499006fe4304fd328c2b3ec4de007dee16598b0433a4046b25a3caec4e6b55dcd5ec60d219c1da42857281dda4fc59d26eef8e
+binfiles arch=x86_64-darwinlegacy size=21
bin/x86_64-darwinlegacy/ctie
name ctie.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of ctie
-containersize 35896
-containerchecksum aabd21df909de1035e1e307494511f4eea7a834abe71c8d199ab001ebc118ab6330f08ccb0adfdaed1780a8bde30e85e462933d71803a5692b2d9a3f0514a8bd
-binfiles arch=x86_64-linux size=22
+containersize 36376
+containerchecksum e2ce40f5dcfd50f3eb049ed6de966892d93fef07553510baee841ff608b4fbc59d3ef4e1aaebd76037312b8c0f0fed4f938fe0f8861d2377258483dcda6182dd
+binfiles arch=x86_64-linux size=23
bin/x86_64-linux/ctie
name ctie.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of ctie
-containersize 36756
-containerchecksum 1fab2e0ffb05913ccb4aef91c7cb3591c083536fdd4fff8a1ef62568d754555eba79e5da44364a8112d3257ab9a34c0b179bc7f46ade861cdd6a5c27be7912a5
+containersize 37220
+containerchecksum 0838f89085cfbce5bd78036ca01e1cdf9d917cf242d221571931ac26f1a432a76c48d3868dbb1f4b6cb34c5b0ee2267f68b92f7b28ae1efce36f45b97eb4f4f0
binfiles arch=x86_64-linuxmusl size=22
bin/x86_64-linuxmusl/ctie
name ctie.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of ctie
-containersize 37044
-containerchecksum ed567b0a59040aacf19cf6d588662460d1b3fc80ba2ea4a33a70699d688e7d2dc8b8e0340bc3b00da6ef64356e71767e0ec282846bae7c997901ca111abb455e
-binfiles arch=x86_64-solaris size=23
+containersize 38660
+containerchecksum fe4a38e4c9d9b6b5f80d71779cdb37d914d3011e8507dcf8eb46c0e89af8196eb07720c76a48c0aa362efe3a527d5cf36c000e82a8f92663826f7fc394d18c88
+binfiles arch=x86_64-solaris size=24
bin/x86_64-solaris/ctie
name cuisine
@@ -91099,7 +91443,7 @@ catalogue-version 1.1.0
name cweb
category Package
-revision 69586
+revision 70629
catalogue cwebbin
shortdesc CWEB for ANSI-C/C++ compilers
longdesc A highly portable and extended version of Levy/Knuth CWEB 3.64c
@@ -91117,13 +91461,15 @@ longdesc version and adding new features from CWEBbin. As of November
longdesc 2019 CTAN no longer holds a copy of this material. Please go to
longdesc the package's github repository for more information.
depend cweb.ARCH
-containersize 26688
-containerchecksum 6ba6d7e560abe642d30e4b9eab349eeb0135666a8f6f27d1e0e12d825048ec772305e0870edbe85dd3b977fb3e3ea0c7d3de84d9c6a02316be9691092c6b34bd
-doccontainersize 73552
-doccontainerchecksum 306eb00fed91a6a7ec679b9ffa46a9f5a8747817cdb3230accc5f322505aa928bb670eac09c77b508186cb3e308ac347bea3107ea0a5dafa2aa6075555e0c61d
-docfiles size=64
+containersize 26696
+containerchecksum c8b40ad2ad248ea2b4bd98cfa2d13b9cb1d9ee8904ac7cffdca5eecd104af14916b425c939fc760b20c6879fbd9f57401bf8ced8d19e93b3e92861a30e4e1653
+doccontainersize 77276
+doccontainerchecksum a2799c04ef1329dbf1f5a1e39293567da94c1a9b8e8c0e5dd6da594106b226fd48d401b689b23bf2bc5e85ecdd060bac859cc98a74cbc82c336346dcfe3b25b9
+docfiles size=84
texmf-dist/doc/man/man1/ctangle.1
texmf-dist/doc/man/man1/ctangle.man1.pdf
+ texmf-dist/doc/man/man1/ctwill-proofsort.1
+ texmf-dist/doc/man/man1/ctwill-proofsort.man1.pdf
texmf-dist/doc/man/man1/ctwill-refsort.1
texmf-dist/doc/man/man1/ctwill-refsort.man1.pdf
texmf-dist/doc/man/man1/ctwill-twinx.1
@@ -91134,6 +91480,8 @@ docfiles size=64
texmf-dist/doc/man/man1/cweave.man1.pdf
texmf-dist/doc/man/man1/cweb.1
texmf-dist/doc/man/man1/cweb.man1.pdf
+ texmf-dist/doc/man/man1/twill-refsort.1
+ texmf-dist/doc/man/man1/twill-refsort.man1.pdf
texmf-dist/doc/man/man1/twill.1
texmf-dist/doc/man/man1/twill.man1.pdf
runfiles size=64
@@ -91278,213 +91626,245 @@ runfiles size=16
name cweb.aarch64-linux
category Package
-revision 65927
+revision 70577
shortdesc aarch64-linux files of cweb
-containersize 148724
-containerchecksum 08240d3b21ad4f7bb62213eb8c9bc9598e713755c51bb889b722e3ff82c9d201e8cab359d8af181013b17410d3167cbb88f480cd2bbabe430789a2f88f281200
-binfiles arch=aarch64-linux size=157
+containersize 151148
+containerchecksum 89bc74aa42fa338babf98bb813cd208550416bd8518e918dde592bb8e2644a48851ce59f8e9129cb9c79a8704471e2ecf7d2dab088fdb5a0d081d1e0f96bae43
+binfiles arch=aarch64-linux size=158
bin/aarch64-linux/ctangle
bin/aarch64-linux/ctwill
+ bin/aarch64-linux/ctwill-proofsort
bin/aarch64-linux/ctwill-refsort
bin/aarch64-linux/ctwill-twinx
bin/aarch64-linux/cweave
bin/aarch64-linux/twill
+ bin/aarch64-linux/twill-refsort
name cweb.amd64-freebsd
category Package
-revision 65877
+revision 70571
shortdesc amd64-freebsd files of cweb
-containersize 177276
-containerchecksum e4aab3b9022019a5529738c790bce4f0460ecce531aaa390d8c90a4c0b2ae25d7b99ad31c52e263fedd07d8a75f54ab1182e32a0af4e1043ef182b00c00b2f4f
-binfiles arch=amd64-freebsd size=175
+containersize 155424
+containerchecksum 76fea14d329c415a24e02244c824989487d7f9d637d1cc03484d4070e08a2b77f5cf4d79527ff8c4d5e64ad8d63b3a93c0754d5f2fd59bae979a3410fea01209
+binfiles arch=amd64-freebsd size=182
bin/amd64-freebsd/ctangle
bin/amd64-freebsd/ctwill
+ bin/amd64-freebsd/ctwill-proofsort
bin/amd64-freebsd/ctwill-refsort
bin/amd64-freebsd/ctwill-twinx
bin/amd64-freebsd/cweave
bin/amd64-freebsd/twill
+ bin/amd64-freebsd/twill-refsort
name cweb.amd64-netbsd
category Package
-revision 65923
+revision 70553
shortdesc amd64-netbsd files of cweb
-containersize 147836
-containerchecksum be48eed57a8d4923b56050a967f6569fc93d16c08fbaba725681859fa9a714182cc3df7f019bff31ba76fbe17523d5797b4e74387c4c157416e8ce3aad957d99
-binfiles arch=amd64-netbsd size=177
+containersize 151156
+containerchecksum 8a6c0cbb2fdb1ae98641a11f37bcccb6a4bf4eebf46b4b04a585af6de9ef7a6f745874774030a1bb0664c54abf7d843b1145a81942da7d63aea184fdfd989e79
+binfiles arch=amd64-netbsd size=182
bin/amd64-netbsd/ctangle
bin/amd64-netbsd/ctwill
+ bin/amd64-netbsd/ctwill-proofsort
bin/amd64-netbsd/ctwill-refsort
bin/amd64-netbsd/ctwill-twinx
bin/amd64-netbsd/cweave
bin/amd64-netbsd/twill
+ bin/amd64-netbsd/twill-refsort
name cweb.armhf-linux
category Package
-revision 65877
+revision 70588
shortdesc armhf-linux files of cweb
-containersize 118596
-containerchecksum b988d8da37304ba67a608bf2016cbb7c01c7d937ea5708818359237f32444f5464e9a76246e38e7acdf43483e3acbeb23e59786bac84a3090b35e6fa6ff8faf0
-binfiles arch=armhf-linux size=126
+containersize 121472
+containerchecksum a1d2182d3f4c661a61c4afddbe556267539f24ae24966ab8649866b532ab09b003076619967c4c523593c269f1124ff95a96874f5116234b9cd8b89cc0e7f90a
+binfiles arch=armhf-linux size=128
bin/armhf-linux/ctangle
bin/armhf-linux/ctwill
+ bin/armhf-linux/ctwill-proofsort
bin/armhf-linux/ctwill-refsort
bin/armhf-linux/ctwill-twinx
bin/armhf-linux/cweave
bin/armhf-linux/twill
+ bin/armhf-linux/twill-refsort
name cweb.i386-freebsd
category Package
-revision 65877
+revision 70571
shortdesc i386-freebsd files of cweb
-containersize 140668
-containerchecksum a67a1718f1b6b11095d8cad57e71e8d8bc140a074870aa21a2470a208df9676bb04f0cf21a62333deaf6944dd8d7751f0c85356cd03c6d306577d7a9ec97d755
-binfiles arch=i386-freebsd size=149
+containersize 155404
+containerchecksum 78a5a722f2b0f6e2e19f03b0fd29f000cf7febf5b4a4082576739f24d462dd50887f0d165959c7e5507580af061a0138c4612fe0b9ad1f7e88dbaea40385ca7d
+binfiles arch=i386-freebsd size=182
bin/i386-freebsd/ctangle
bin/i386-freebsd/ctwill
+ bin/i386-freebsd/ctwill-proofsort
bin/i386-freebsd/ctwill-refsort
bin/i386-freebsd/ctwill-twinx
bin/i386-freebsd/cweave
bin/i386-freebsd/twill
+ bin/i386-freebsd/twill-refsort
name cweb.i386-linux
category Package
-revision 65877
+revision 70571
shortdesc i386-linux files of cweb
-containersize 144220
-containerchecksum f5cc6ebb91ec0639811c2cdd0268b428ffd2dbbd9335af720a92ad0a30993602c2eeff0b3bead222f92717f2673775701f5c99eee7466a8b43edac9d03e91a33
-binfiles arch=i386-linux size=156
+containersize 148020
+containerchecksum c9be1cbde73f06a63a15cd9f632ea16d3f678a639452964916a53ec2e62d169b7ba69d5f0c57b75c0272f4d90031fb0643d9c2f761752c9f1cf73e96a0cf57d2
+binfiles arch=i386-linux size=159
bin/i386-linux/ctangle
bin/i386-linux/ctwill
+ bin/i386-linux/ctwill-proofsort
bin/i386-linux/ctwill-refsort
bin/i386-linux/ctwill-twinx
bin/i386-linux/cweave
bin/i386-linux/twill
+ bin/i386-linux/twill-refsort
name cweb.i386-netbsd
category Package
-revision 65923
+revision 70553
shortdesc i386-netbsd files of cweb
-containersize 117724
-containerchecksum 83f5364a35b778953ec603c49b959ec552e7d659376c1040c207616ec62e0a6a412c9c1d47356b653170528bb5817c995c24901090265a28439a828c96d4d632
-binfiles arch=i386-netbsd size=161
+containersize 120104
+containerchecksum bd8013318443051c16f605ef62071b935b4420f57a85f3972e3861c91fd33c6da13741ba4168c0b4e98d7661e0cb3a9e93ba8f9b6052fd24d0c6502e9e29faeb
+binfiles arch=i386-netbsd size=166
bin/i386-netbsd/ctangle
bin/i386-netbsd/ctwill
+ bin/i386-netbsd/ctwill-proofsort
bin/i386-netbsd/ctwill-refsort
bin/i386-netbsd/ctwill-twinx
bin/i386-netbsd/cweave
bin/i386-netbsd/twill
+ bin/i386-netbsd/twill-refsort
name cweb.i386-solaris
category Package
-revision 65877
+revision 70571
shortdesc i386-solaris files of cweb
-containersize 141700
-containerchecksum e79f75767e451c828cee36b2d2e3c6c17b13136c0e0cea3840cb2114fb37c4abcd8072c43b35e90cac22ece3d47a47696e86ca6b39d07da7a224710e6039e7db
-binfiles arch=i386-solaris size=135
+containersize 148064
+containerchecksum 8c96580dd3cf2307d7f4d98db1ea1da4c259d524393d131da1b3e6befa80a558b15126b22e426db089aae8cb05326c36db1ba747846f6c33f8ee60a140dd6c3f
+binfiles arch=i386-solaris size=143
bin/i386-solaris/ctangle
bin/i386-solaris/ctwill
+ bin/i386-solaris/ctwill-proofsort
bin/i386-solaris/ctwill-refsort
bin/i386-solaris/ctwill-twinx
bin/i386-solaris/cweave
bin/i386-solaris/twill
+ bin/i386-solaris/twill-refsort
name cweb.universal-darwin
category Package
-revision 65895
+revision 70570
shortdesc universal-darwin files of cweb
-containersize 332852
-containerchecksum 2ab78ebea0f0c4dfdfd877cb5492e33a47fde7f68d6ec09bfc8c523f357b7f2792bd77a204c7319b4254f6bd6bebaf800001a637f1b7c5c7f18e751a9bd996f5
-binfiles arch=universal-darwin size=467
+containersize 342540
+containerchecksum adc2873195e2f3725514ab83b004f370bf961bf635efb0a37939cf1afcebb9990bbdf37c0501539db9fc160d2aa1b5821a81da99f6188acd6f939c1d3b450331
+binfiles arch=universal-darwin size=478
bin/universal-darwin/ctangle
bin/universal-darwin/ctwill
+ bin/universal-darwin/ctwill-proofsort
bin/universal-darwin/ctwill-refsort
bin/universal-darwin/ctwill-twinx
bin/universal-darwin/cweave
bin/universal-darwin/twill
+ bin/universal-darwin/twill-refsort
name cweb.windows
category Package
-revision 65891
+revision 70576
shortdesc windows files of cweb
-containersize 110408
-containerchecksum 72c6697d7eca1018dcf05ab09e1e01a476375b5a07e55fbb90940cd20f4462b0d4c2e2fe830e5e18214d2eaa566023aa6365b9fb532bd1abbdd49eb8f4eec9e3
-binfiles arch=windows size=77
+containersize 112664
+containerchecksum fb111b7631e62483fd186cdc9134ef94c044b215129cba30ee732be6cd480e6e47b7ef0853db288567770a1a005697382878bb737f2c7e610efa7660574e5598
+binfiles arch=windows size=84
bin/windows/ctangle.exe
+ bin/windows/ctwill-proofsort.exe
+ bin/windows/ctwill-proofsort.pl
bin/windows/ctwill-refsort.exe
bin/windows/ctwill-twinx.exe
bin/windows/ctwill.exe
bin/windows/cweave.exe
+ bin/windows/twill-refsort.exe
+ bin/windows/twill-refsort.pl
bin/windows/twill.exe
name cweb.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of cweb
-containersize 111940
-containerchecksum 92948c60cd59a9fc852f41900dfdf6f7c5f10cbeece2cbfaae13f15cb6407d74508405e1e4634864f8669463cfcdeeccd0c0bd0c6f04af6e0ad241eaf5169b55
+containersize 114432
+containerchecksum 8a567a8873595b12baa49d0f8f03942d96c30a2f02b04741f05584d46b53684d0e00d786700f164c02318446495a96b54e517934e0dcfb5bf0ad93cc88609f9b
binfiles arch=x86_64-cygwin size=84
bin/x86_64-cygwin/ctangle.exe
+ bin/x86_64-cygwin/ctwill-proofsort
bin/x86_64-cygwin/ctwill-refsort.exe
bin/x86_64-cygwin/ctwill-twinx.exe
bin/x86_64-cygwin/ctwill.exe
bin/x86_64-cygwin/cweave.exe
+ bin/x86_64-cygwin/twill-refsort
bin/x86_64-cygwin/twill.exe
name cweb.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70577
shortdesc x86_64-darwinlegacy files of cweb
-containersize 141536
-containerchecksum 007f9e35ac699bc5f59699b9e555cc2e3a01c6afebe65aad2b4ce756f227ec2c965d24153a6360b60f9cfdea5c4b7c02e1e34aad77890eec7fe1a16fb4689c81
-binfiles arch=x86_64-darwinlegacy size=139
+containersize 145760
+containerchecksum 71b0d990b2f32868a60d60ecdc91d9e6606e3f20dba1959c739533d73c9be05756a800b6b2a0ae15179422590b8e81ebf0787c14e220fdbaa0f30ae9b749d364
+binfiles arch=x86_64-darwinlegacy size=144
bin/x86_64-darwinlegacy/ctangle
bin/x86_64-darwinlegacy/ctwill
+ bin/x86_64-darwinlegacy/ctwill-proofsort
bin/x86_64-darwinlegacy/ctwill-refsort
bin/x86_64-darwinlegacy/ctwill-twinx
bin/x86_64-darwinlegacy/cweave
bin/x86_64-darwinlegacy/twill
+ bin/x86_64-darwinlegacy/twill-refsort
name cweb.x86_64-linux
category Package
-revision 65877
+revision 70571
shortdesc x86_64-linux files of cweb
-containersize 157688
-containerchecksum 051804cb61392e6c5e71461cbe442a088989f3a72423904a9a27c7cdea02f7f9df5f0ec95600a2129d6d929d457214a6cb7ec0acab6d4e6355b2dfa04e57b0e5
-binfiles arch=x86_64-linux size=152
+containersize 161204
+containerchecksum 6dc55794c13a9d0d370a42a9d3343cc0e738fb3fc4db6cdebb251e1688791f4695660155b374a936bcbc5eefe8af59f331f6e4683447d7f6e2eb6d60f5c96231
+binfiles arch=x86_64-linux size=157
bin/x86_64-linux/ctangle
bin/x86_64-linux/ctwill
+ bin/x86_64-linux/ctwill-proofsort
bin/x86_64-linux/ctwill-refsort
bin/x86_64-linux/ctwill-twinx
bin/x86_64-linux/cweave
bin/x86_64-linux/twill
+ bin/x86_64-linux/twill-refsort
name cweb.x86_64-linuxmusl
category Package
-revision 65877
+revision 70571
shortdesc x86_64-linuxmusl files of cweb
-containersize 163420
-containerchecksum 791eb45dc2d89ac156c49c6fb967bfcf621d195856a0db9e6b9d7385ee2652321b7486e228c97f05239640c86ff58681912c05e3fa70393b3ee43cf213c8b022
-binfiles arch=x86_64-linuxmusl size=150
+containersize 166844
+containerchecksum 019e87cd3df1a5fdd15c80669d16d827e4f0bd319350008abaf0b38725e1d5610913e5e4108db5b28a155ae25015a55016483fe6c7b8d72ae25728a14e40ab26
+binfiles arch=x86_64-linuxmusl size=153
bin/x86_64-linuxmusl/ctangle
bin/x86_64-linuxmusl/ctwill
+ bin/x86_64-linuxmusl/ctwill-proofsort
bin/x86_64-linuxmusl/ctwill-refsort
bin/x86_64-linuxmusl/ctwill-twinx
bin/x86_64-linuxmusl/cweave
bin/x86_64-linuxmusl/twill
+ bin/x86_64-linuxmusl/twill-refsort
name cweb.x86_64-solaris
category Package
-revision 65877
+revision 70571
shortdesc x86_64-solaris files of cweb
-containersize 165744
-containerchecksum f619b7436ebea0f26d30d30b4dc138375bd0d8e2429827ad7f4a51e1f3b95e09619f8ddea6eaa098a7a906c1cf771ad074a3e9bb6f373f6ae0d65321e7c20361
-binfiles arch=x86_64-solaris size=157
+containersize 173680
+containerchecksum c25da2466a711c51d6097f95251ea83799adcef15cd4131455f10496f5fb0afef6963b2ad4f7fc1a5214dcc077ea002039c5140a9062663f31972383124b42ce
+binfiles arch=x86_64-solaris size=168
bin/x86_64-solaris/ctangle
bin/x86_64-solaris/ctwill
+ bin/x86_64-solaris/ctwill-proofsort
bin/x86_64-solaris/ctwill-refsort
bin/x86_64-solaris/ctwill-twinx
bin/x86_64-solaris/cweave
bin/x86_64-solaris/twill
+ bin/x86_64-solaris/twill-refsort
name cyber
category Package
@@ -94543,7 +94923,7 @@ catalogue-topics german hyphenation
name dehyph-exptl
category Package
-revision 70496
+revision 70233
shortdesc Experimental hyphenation patterns for the German language
relocated 1
longdesc The package provides experimental hyphenation patterns for the
@@ -94557,13 +94937,13 @@ longdesc reformierten Rechtschreibung ab und konnen mit den Paketen
longdesc Babel und hyphsubst aus dem Oberdiek-Bundel verwendet werden.
depend hyph-utf8
depend hyphen-base
-execute AddHyphen name=german-x-2023-03-06 synonyms=german-x-latest lefthyphenmin=2 righthyphenmin=2 file=dehypht-x-2023-03-06.tex file_patterns=hyph-de-1901.pat.txt file_exceptions=
-execute AddHyphen name=ngerman-x-2023-03-06 synonyms=ngerman-x-latest lefthyphenmin=2 righthyphenmin=2 file=dehyphn-x-2023-03-06.tex file_patterns=hyph-de-1996.pat.txt file_exceptions=
-containersize 134348
-containerchecksum 3bf6178cdff605d289bd5b035416953b26911b636786340fb08eeedebc8a0a6ab45712547f6b6eb312751514216aadf36357b344e38fb3bf1dac84bdd6fe97a7
-doccontainersize 145184
-doccontainerchecksum 3e41d2581f5b96afbea332529ee3d9523d935fec0e517a1a39ce04a405328241cc3bff97a00af3ac363a2a413c4dd70c9e38102d1ecd65ab8aae994abc46e4ca
-docfiles size=56
+execute AddHyphen name=german-x-2024-02-28 synonyms=german-x-latest lefthyphenmin=2 righthyphenmin=2 file=dehypht-x-2024-02-28.tex file_patterns=hyph-de-1901.pat.txt file_exceptions=
+execute AddHyphen name=ngerman-x-2024-02-28 synonyms=ngerman-x-latest lefthyphenmin=2 righthyphenmin=2 file=dehyphn-x-2024-02-28.tex file_patterns=hyph-de-1996.pat.txt file_exceptions=
+containersize 134300
+containerchecksum 8c3b5b3f8d02094c3ac0028c5983f0a04ba8dfbe07c99003d27fd39263960d0347d0c26499b52d7d9e182a6e771b01a200fcfb56c2b5ba675d661ebe9191ef38
+doccontainersize 145688
+doccontainerchecksum f57b785a92c950d808f4f29d1024264620bfecb223331295773bb0c74d02e787234910350b98e059f270445750e5b0832e04e1001400e92f2241c32bb94af64c
+docfiles size=57
RELOC/doc/generic/dehyph-exptl/CHANGES
RELOC/doc/generic/dehyph-exptl/INSTALL
RELOC/doc/generic/dehyph-exptl/LICENSE.data
@@ -94573,12 +94953,12 @@ docfiles size=56
RELOC/doc/generic/dehyph-exptl/dehyph-exptl.pdf details="Package documentation" language="de"
RELOC/doc/generic/dehyph-exptl/dehyph-exptl.tex
runfiles size=206
- RELOC/tex/generic/dehyph-exptl/dehyphn-x-2023-03-06.pat
- RELOC/tex/generic/dehyph-exptl/dehyphn-x-2023-03-06.tex
- RELOC/tex/generic/dehyph-exptl/dehypht-x-2023-03-06.pat
- RELOC/tex/generic/dehyph-exptl/dehypht-x-2023-03-06.tex
- RELOC/tex/generic/dehyph-exptl/dehyphts-x-2023-03-06.pat
- RELOC/tex/generic/dehyph-exptl/dehyphts-x-2023-03-06.tex
+ RELOC/tex/generic/dehyph-exptl/dehyphn-x-2024-02-28.pat
+ RELOC/tex/generic/dehyph-exptl/dehyphn-x-2024-02-28.tex
+ RELOC/tex/generic/dehyph-exptl/dehypht-x-2024-02-28.pat
+ RELOC/tex/generic/dehyph-exptl/dehypht-x-2024-02-28.tex
+ RELOC/tex/generic/dehyph-exptl/dehyphts-x-2024-02-28.pat
+ RELOC/tex/generic/dehyph-exptl/dehyphts-x-2024-02-28.tex
catalogue-contact-home https://projekte.dante.de/Trennmuster/WebHome
catalogue-contact-repository https://repo.or.cz/w/wortliste.git
catalogue-contact-support mailto:trennmuster@dante.de
@@ -95378,22 +95758,22 @@ catalogue-version 1.0.1beta
name denisbdoc
category Package
-revision 70611
+revision 70592
shortdesc A personal dirty package for documenting packages
relocated 1
longdesc A personal dirty package for documenting packages.
-containersize 15760
-containerchecksum ffae3c7f741d9a6c53ad3681d929d26d1ac7679477cb66d3bb3e7cb4bb81966137aa191810526b322f13c52aac31111ee4fc4bebdc49f8be78b40b26bb4f3e6e
-doccontainersize 14720
-doccontainerchecksum 1bd19497dd7fcbc7df9416a43e09dd68a825fcff6411f81b9a19b100915296f094898a8b746ff7dce263a7facf5b776c08d93e4d70052b26e180a58079e62cf5
+containersize 15772
+containerchecksum 760e5ad1a11a2fcc9249611a4c24e1abc640e87ed928dfc3db7234ed95f499cedfd6aad42f6c3aeb5cd099e08396e167feb74e0000454350b42e4067f25854c5
+doccontainersize 14732
+doccontainerchecksum d5fd445862e08a95f4d4cad1e0f3a4ddf65b82b0119039c9642848b8be524b54a1d0264f1e6c9f46643791bcd5272aeb443075e9de5247e96557bb4d09c86f2f
docfiles size=8
RELOC/doc/latex/denisbdoc/README.md details="Readme"
RELOC/doc/latex/denisbdoc/denisbdoc-chng.xdy
RELOC/doc/latex/denisbdoc/denisbdoc.pdf
RELOC/doc/latex/denisbdoc/denisbdoc.pkg
RELOC/doc/latex/denisbdoc/denisbdoc.xdy
-srccontainersize 22900
-srccontainerchecksum 437387ebdf81424660fb88dbd758720ce709b1c771a979b83b462f08fe923b393cd6235f373aa20c91aca43e1cff850e19c6abb8dc34cfbcd42902fadd479754
+srccontainersize 22892
+srccontainerchecksum 9454c052f589ba17f10e1e6698399f78bcf5f042e30b970c72e92de1a03f891ccb3a08e5e8920c6092c2aba1a60257f2c18154eaa1de4728d8742ac9702a2144
srcfiles size=23
RELOC/source/latex/denisbdoc/denisbdoc.dtx
runfiles size=16
@@ -95442,7 +95822,7 @@ catalogue-version 1.4
name detex
category TLCore
-revision 66186
+revision 70015
shortdesc Strip TeX from a source file
longdesc Detex is a program to remove TeX constructs from a text file.
longdesc It recognizes the \input command. The program assumes it is
@@ -95451,10 +95831,10 @@ longdesc in the text. In this case, it also recognizes the \include and
longdesc \includeonly commands. The author now considers this program to
longdesc be "retired" and Piotr Kubowicz's OpenDetex as its successor.
depend detex.ARCH
-containersize 592
-containerchecksum e258d80d1509831132c4f70df81b8e93cfc9d92ee74c5d39e7f35bd4f71a3eb93fe3594afbd5ab0e33cf0b6f45c816506e32ca8f41427f3c3fe661f3086100d1
-doccontainersize 21900
-doccontainerchecksum 3d5a3b371e007bda61441460479a208062fd0d477d1fc9ab9a6764c1969fd383acec9e336e8d0b16aab5606444f5d87335320e010657cf088e9caeb18d6dddf5
+containersize 596
+containerchecksum b40f3a846a2fef1086002be944f0c44362709f171257afaba51c88a4ad250da1602fab4287757a42c172eb6d5596530222ea59df61bc0466de4c52bdb8166547
+doccontainersize 22120
+doccontainerchecksum f68cf4e1dc48fe4b6130e0c6a7cfca9cc997b435a0a638feba093f94dbc43d018aa9173dacd57976d6d5540f9f72c2fb4e90e3a555a7b8b7a62e98eaecaf42ef
docfiles size=8
texmf-dist/doc/man/man1/detex.1
texmf-dist/doc/man/man1/detex.man1.pdf
@@ -95464,137 +95844,137 @@ catalogue-topics plain-text obsolete
name detex.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of detex
-containersize 46664
-containerchecksum 764c0369642a4ae08c812803e64ab1f4facab072e6983d1a48f91c4e4cefeabbed414cc57fe9cb479a542189e45cc8308d55ea485b4840a8cb052a164bf194a6
-binfiles arch=aarch64-linux size=31
+containersize 46912
+containerchecksum fa50bbccaded8c5afaa10ec008640b1d8b4d1c81fb0be864cb16ecb8360792e5d4791351350b1700a3ae37b35cab960025683e534e3f9cebfb0e824e2160d6e9
+binfiles arch=aarch64-linux size=32
bin/aarch64-linux/detex
name detex.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of detex
-containersize 49376
-containerchecksum d2277e902675ec63f49af86938347f16c066da5e7bb6ec7516a15b3dcbc401d8b963d7a406bfd4d0ed4f0376c5088aa039ee943348c6cfef53dc42f6a33257b4
-binfiles arch=amd64-freebsd size=30
+containersize 45836
+containerchecksum e77c102fef9f228a6bb814f32fcdb2838eac346446fc40d57a01db6737eb44bd66ba2c9951bdd955c5d4f8fd50f24379be202e74f2db55f3656be13c0dd46626
+binfiles arch=amd64-freebsd size=35
bin/amd64-freebsd/detex
name detex.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of detex
-containersize 44048
-containerchecksum 47dd3c61ca926a24780a6f418fdcb4183efd039be2d57e7897c5be2197c247e7c33caebe06a48953bd066847f8445ffc3b9c1109f814ae871537a1e971da2bd1
+containersize 44448
+containerchecksum 249438875e2b01cb132a10c3ded728570d85f3a135121376f7634e747d12ed61f714784e2d269ca49aaac61145b40141d08cabd341c0125f4f7d995833354093
binfiles arch=amd64-netbsd size=34
bin/amd64-netbsd/detex
name detex.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of detex
-containersize 40176
-containerchecksum a784612830493d746dcfb82d0e633f349182418848edb3ab0d96798647d8f6a4b4c33fd1debf285ef4e37420ad1f6e2d6fca8f288874fe1bb563e15f4578fcab
-binfiles arch=armhf-linux size=26
+containersize 40440
+containerchecksum 082a1bc0e0bc68466063152c25c7cd8ebdcf54ff66991e538352ee68c489df669168ffb53de13f545912e50d795d4e11277ed65643ea579a1fe26bde143a6a2b
+binfiles arch=armhf-linux size=27
bin/armhf-linux/detex
name detex.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of detex
-containersize 44568
-containerchecksum 6382ee5a6151a3e97a0c12a197846d4492906fc4709e621af79edeecad7a5aaf26fdb942704fd4dfbd1117d8a466de012f0bda2b3d2f055a6747e42fec01e0ed
-binfiles arch=i386-freebsd size=27
+containersize 45800
+containerchecksum 1fa2a317037bd68c48a063632c018b40edbd0aff287ae7cf88bbd4fcec9f45b78b9860b1f1085ea083b0d86972366043cddf8c5939df6323328907f586c71d0f
+binfiles arch=i386-freebsd size=35
bin/i386-freebsd/detex
name detex.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of detex
-containersize 51456
-containerchecksum 350728e23a86db10b7943e8f3f0ad299f7208c1894ac88219c7bec275ba4aaab38ba20ee28e059e08b0f2be4248dde151bfce75750ee9a049b912c9a1065156f
-binfiles arch=i386-linux size=34
+containersize 51888
+containerchecksum d8c40e09bf490b86b582ec7d7ab44f161af84eb0bf3ddf428c02d1530a8c0c987e5be7edbf78cbbb3b34daf437a49798b074a05974715f9645f7d94e32682e42
+binfiles arch=i386-linux size=35
bin/i386-linux/detex
name detex.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of detex
-containersize 40416
-containerchecksum 18f6f68ce3f6979fd5e32c804c8b1b4290bb72fb1c896c0d6a0a065da7d0fa27e893498f34dfc67ce51d8731b85c285479c7775f7f474001e5bd358b4c44bc3b
-binfiles arch=i386-netbsd size=31
+containersize 40784
+containerchecksum b6c21e26b4d7ddbf826ba54bfc07dadc9c6f932d35342cb25c37e6c14ace66fe37eb245a9a81b277669aed44423b5892c67d20ea94c5aa3a8321e13f8551ee75
+binfiles arch=i386-netbsd size=32
bin/i386-netbsd/detex
name detex.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of detex
-containersize 47132
-containerchecksum 4159cbd0984c19e184665876f0160c586cdfec76b4bef362c87396618aabe2fb6ffdbaa9d6b550e951d51bb07775af99cfd70f0632865fba14db9c86bc6789da
-binfiles arch=i386-solaris size=30
+containersize 48508
+containerchecksum d5bb03675e563e01d24710ce1c618116cf0615f8e7878e96315bb8e7fa8adc38bdaf4f0ed0d4d8c22eb612f12fbb4a30210d322f929b8516a15ab6508201b756
+binfiles arch=i386-solaris size=31
bin/i386-solaris/detex
name detex.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of detex
-containersize 86016
-containerchecksum e3811ccef5db2f71235577697facf8ca6e9343501d588f4a0b3da48f5641fb86d8f0a68ad782381fea220d24357c8c5dd84e17cbe56a6ad9c413fa7b1051e174
-binfiles arch=universal-darwin size=79
+containersize 87164
+containerchecksum 5eafc6693830583124f3f08d4777a06e1941b37a9d1697dfeb0b373755be4fd16f7da37000a7468589fee0261a4813f027b9d63acedecd31f5ddf0a67373fb77
+binfiles arch=universal-darwin size=83
bin/universal-darwin/detex
name detex.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of detex
-containersize 18192
-containerchecksum a6bbc24e5a816006f0e59ea0ea42dd19dbb9d1a1281e732f8dd5d5117ff527d3881b42b70c7a3e529ef14d0a5d0ccbc925751813b2181bbec191f32d4e6a41da
+containersize 18240
+containerchecksum 36645a5692d9da659ef149bbaf1e82c1b000244d48bca0a393249e7d04cf16af3669f4ba7c924607f0aece93b7ec6091d87d6ffb2352d60baddc85dd728b4153
binfiles arch=windows size=11
bin/windows/detex.exe
name detex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of detex
-containersize 21528
-containerchecksum 936a12f1ad9c4f5cfe9d9a3655709f923580b648c93abd3169a0b0b289341bae89e514fe3bbdfe1ed21a58550182b688d43f7ffb6ee510ede59ae1f5d6b32bf0
+containersize 21452
+containerchecksum ecdf60b064dfd5e5192b7c035cd21901bbd8826633bbd9e35546e3d67716268da44cc2ae068d3167fef4d0439913c28eac21211fff56f55d8f2947c469766199
binfiles arch=x86_64-cygwin size=14
bin/x86_64-cygwin/detex.exe
name detex.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of detex
-containersize 45520
-containerchecksum 4a22994df1da0be1d621598cbba2435aa1fd374006390f05582c1ed6c33d583d6406e7bfd7c464435053dce90f83bd964a15706ac5f4e72f23c2077843cddc68
+containersize 46160
+containerchecksum 49d2b88c0f8368c5ff0db26dcff1a67d451e48ab022cbe32f7a4781ba3a3b5a303c44348d33de6e14a5eec685e9bcad5d9ff44d78c61994796e99d9514864f30
binfiles arch=x86_64-darwinlegacy size=29
bin/x86_64-darwinlegacy/detex
name detex.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of detex
-containersize 50512
-containerchecksum fe4f535624011d75ef0a92fbe1d3a81331a3590a8cabb3b2792972058920ab6933b82f378d5577e4cd9ca41167ee955f72a6f671ebb3839992dad6aaf72ae6da
+containersize 50944
+containerchecksum 3e9e455e8e347872b3718918c1b4e957b28ad181673d27c6ecf16788e8823dd266fe80f1729f2c696c71b472c11b01b0b89ad71f8b2d2b57ef96cb97b05910f4
binfiles arch=x86_64-linux size=33
bin/x86_64-linux/detex
name detex.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of detex
-containersize 52156
-containerchecksum 1c9a7a1894c0224030456a55ba1b8f6bce50b5479af6850913f1989bb87f05563b9f03a6b2886482b976aa3e06e0ed7aa5d35deab065a448292e41bb1215ee80
+containersize 52664
+containerchecksum f4bbcac0bfcb1ed2c2caa00da0975fef61e2409949e2bd14aec1105b589c1d5ebb71bfbda9fb545d1a1352fbcf3574070924e15bf5643535126ee392b3ed6dd3
binfiles arch=x86_64-linuxmusl size=32
bin/x86_64-linuxmusl/detex
name detex.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of detex
-containersize 52844
-containerchecksum b62644ae6d171fc5a7b82dc0bfee7b70b60f64475d945d312ba082ab32a5ec2c0442f11732f67745e197cd54ba0d4dd4b0e5527f9b14774f86679c2a10ea975e
-binfiles arch=x86_64-solaris size=34
+containersize 54740
+containerchecksum 23f2ffa42296575b4c53f01c905c9fc08341cbba0fb28fdb90779c5f26240fbd8c1bd050c1d075453f874e44974d3a7f43ab4e5bad8f43cf8371b4d38eb61256
+binfiles arch=x86_64-solaris size=36
bin/x86_64-solaris/detex
name dhua
@@ -96248,7 +96628,7 @@ catalogue-topics font font-symbol font-type1 linguistic
name didec
category Package
-revision 70237
+revision 70229
shortdesc Fixed-point arithmetic with two decimal places
relocated 1
longdesc This package supports fixed-point arithmetic with two decimal
@@ -96256,9 +96636,9 @@ longdesc places (di-decimal) which is typical for financial transactions
longdesc in many currencies. The intended use case is (personal)
longdesc bookkeeping.
containersize 4856
-containerchecksum ed59a87d35b2ace9bf525634d1993400348a114669c9a358aa18836a152c5d973584a10f9514014336ca0a90a2050abd5cbf69d305cbae547d644f17c0873d64
-doccontainersize 487364
-doccontainerchecksum a6a46f0b9e57e3e3e124ec719026e75516722d32d9b0e29d49a736b57123c7d916551a5ddc26a60d972932a2134a236efce0147d13ce645ba5c198bee574ff39
+containerchecksum c6f5cfdedeb4d07fdee5123216af3c5c0ce9fddf487d79e8d35df72977c96f7551a89e65fce81c42f64a3485034ecc1ce662c3ea49962b115b169a18defca9e8
+doccontainersize 487352
+doccontainerchecksum d77796a1758476848d0274694ae9e0ef3abe439f61e1ab2b7c6a9181d2f4c80925c4824f211ad6a8c5bd277c251eeee8d725f9dcb9bd50af5ca5cd5617084dca
docfiles size=136
RELOC/doc/latex/didec/CHANGES.md
RELOC/doc/latex/didec/README.md details="Readme"
@@ -97482,7 +97862,7 @@ catalogue-version 0.4.3
name docsurvey
category Package
-revision 70449
+revision 70442
shortdesc A survey of LaTeX documentation
relocated 1
longdesc A survey of programming-related documentation for LaTeX.
@@ -97492,9 +97872,9 @@ longdesc distributions, programming-related packages, users groups and
longdesc online communities, and information on creating packages and
longdesc documentation.
containersize 552
-containerchecksum ce94e7c797ec87694ab4df4ad3eba18586c0251d6cf4a5ef3d615062125a1cbd46ac2e9b7d822cfa07e44961d5354fec093cadbbd48cef403f9ac2c0ca665fed
-doccontainersize 276436
-doccontainerchecksum 4edd65ee2c7c910fc8bcfec3f33bc1f390ab1bb67bd06a84e84eea8421775b28c519615b23d2c25fe4524f79e8e295778fef6868d741f4484f42b1265d49eef0
+containerchecksum 33503f17ce64bd6ef6e27972baa3f545693b8f9c3d1c3f24534f28f8a10771bef74b8583701626d630b1bbd4608cf0bc882914cbcc8e2d0606f5bd58ac9c2ab1
+doccontainersize 276424
+doccontainerchecksum 5c54fae5feb0fc8013f6db989a100f651a60e63b318f33d7c0d51f77481df9c61556c323339d275afab89ceeadf8ad3226fb56e86ded48bdae8265e77ce1618c
docfiles size=88
RELOC/doc/latex/docsurvey/README.txt details="Readme"
RELOC/doc/latex/docsurvey/docsurvey.pdf details="The document itself"
@@ -99232,7 +99612,7 @@ catalogue-version 0.2
name draftwatermark
category Package
-revision 70401
+revision 70393
shortdesc Put a grey textual watermark on document pages
relocated 1
longdesc The package provides a means to add a watermark (typically a
@@ -99248,9 +99628,9 @@ longdesc automatically loaded, currently being at release 2.3) which
longdesc relies on the everypage package. Note that this legacy version
longdesc will progressively lag behind in terms of features.
containersize 2848
-containerchecksum 39bff239cd08c6c57c445944ba3fca6af408b2ae32212555c9e9dd64c8d7fead3eebd35a48e6c68f139d65ac5404efb60182993ab751df8d8670e646f06cc97d
+containerchecksum b71db5f292b57de2d6149a5ce7ddbdf281b3d7304e2eb59575a3be6ac302f79aef4430c39df89115c0b72d66cb4de6c68a4253acb1b474c75a4d78586fdb358b
doccontainersize 153040
-doccontainerchecksum 1783cd72d65658df483c8c3f4b0b27b7a5e354e8686d08f08ece7cf6e15947bbab6ec9a07efa233144eca4ce3c015027093b4d502c39d2057555fab9ab07fd8d
+doccontainerchecksum 61dcb253a71bb10206120be8ee5d4309b651438a2c78748e19faabbe8bf59a95118107da36e197928cce632673af1c3332bb5e1e77d40d63a6dd34f3d7054366
docfiles size=44
RELOC/doc/latex/draftwatermark/README.md details="Readme"
RELOC/doc/latex/draftwatermark/draftwatermark.pdf details="Package documentation"
@@ -99259,8 +99639,8 @@ docfiles size=44
RELOC/doc/latex/draftwatermark/test_draftwatermark-3.tex
RELOC/doc/latex/draftwatermark/test_draftwatermark-4.tex
RELOC/doc/latex/draftwatermark/test_draftwatermark-5.tex
-srccontainersize 12740
-srccontainerchecksum 7c58ad08143158711945af36d5d9b77a32cc4b800144a7cf55b777047c08f7267731344997354bce0fcafd9b3eae17cd39659660784c9a1a47b307708b6f45dc
+srccontainersize 12752
+srccontainerchecksum b06c64e358db6627bc4afff503b941238a8b1301a9db0673e6b4feaaf42c3f52c76798322ce104a6c7cc3ec851cfd158eba802b8b4d001ab8042a75fb26ee91f
srcfiles size=14
RELOC/source/latex/draftwatermark/draftwatermark.dtx
RELOC/source/latex/draftwatermark/draftwatermark.ins
@@ -102239,7 +102619,7 @@ catalogue-version 1.031
name dtk
category Package
-revision 70117
+revision 70112
shortdesc Document class for the journal of DANTE
relocated 1
longdesc The bundle provides a class and style file for typesetting "Die
@@ -102247,10 +102627,10 @@ longdesc TeXnische Komodie" -- the communications of the German TeX
longdesc Users Group DANTE e.V. The arrangement means that the class may
longdesc be used by article writers to typeset a single article, as well
longdesc as to produce the complete journal.
-containersize 14716
-containerchecksum c9f59b7a80c40d4a1a9749ab3b5c48ab7dcbf213166454edcef30226f001d37724967e0306486892a64e1b16fcfd45f9d507f4e467642150ef90a75a5296471f
-doccontainersize 83404
-doccontainerchecksum 2cbf434924fe1b7ce9ed50f647069ab8a278f4be1f65981e7d9f6027f6f0f6b7465e7f2f169e860314f84fe38032ce0cdb0d96b55f281a04b7f830216498b46b
+containersize 14720
+containerchecksum eb6ed571885633bc9b10cfbaf1b4635fd4037694e64a508b8fd154b9f605bf24f4f710457af84bf18b2817207461dd59a9d85e53dbf1c4a68906090c27e8fd20
+doccontainersize 83384
+doccontainerchecksum b19af9dbdb084df9e4883d06b6f5ee7a43a0b13ef25ec2dd97591fe0b0e304297abdced83f70838f813438c43a698480514faa64c731f3341c849bd1d8388275
docfiles size=29
RELOC/doc/latex/dtk/README.md details="Readme"
RELOC/doc/latex/dtk/doc/beispiel.bib
@@ -102279,16 +102659,16 @@ catalogue-version 2.10e
name dtk-bibliography
category Package
-revision 70517
+revision 70506
shortdesc Bibliography of "Die TeXnische Komodie"
relocated 1
longdesc This package contains the bibliography for "Die TeXnische
longdesc Komodie", the journal of the German-speaking TeX User Group. It
longdesc is updated on a quarterly basis.
-containersize 54072
-containerchecksum c6e8940feb04015e068e70a80b1b7058b451f324a2b7ad87644e011364077630b2fae6f8b292bd7cf426b3b4036279bc4ab449f182326b84016b39d66ae62f05
-doccontainersize 282372
-doccontainerchecksum 9fbbf62c28b5dd4f561e3aef62c033b7cf11eb8276ee1137752d36bd0b018e40cb477f0ea0dabad277ca5c541ef2fe84a968affe606da0cc3fb9123c246ce337
+containersize 54084
+containerchecksum ed89a958b5aad9680b4c469bbec296971043417655deb081ff709b532bf5820bcde7fc3b30a74bff423e60bddf5d5fa2372b0fa38157c56a8cde30709c7b88a7
+doccontainersize 282368
+doccontainerchecksum 168ffecaf706e2cf95ed08b761fa3f1a0e442b3a914f3f8fc62abdad45e6c509e72d1ed86c6e48e58893f329c615229a1991fbdd2db54de503bdf5cef878a612
docfiles size=73
RELOC/doc/bibtex/dtk-bibliography/README.md details="Readme"
RELOC/doc/bibtex/dtk-bibliography/dtk-bibliography.pdf details="The document itself"
@@ -102333,150 +102713,150 @@ catalogue-version 0.6.1
name dtl.aarch64-linux
category TLCore
-revision 65927
+revision 69782
shortdesc aarch64-linux files of dtl
-containersize 20520
-containerchecksum 1f4b1acd4fbf547972788bb9a06781c153ce99c97675bd1a2a694cddd04908962799a5dd55743af11e29fdced120666b855a2b1e8d1ba79914ff08bd595464d8
+containersize 20532
+containerchecksum a946dfc8799f597e3ff81fe5f8837ddb3173651f1a8e2889593746dbaa6d8586ba2150b3bc6ffcacf83c30fd92037e6dea702341bf3987d622bf7a906ae08740
binfiles arch=aarch64-linux size=20
bin/aarch64-linux/dt2dv
bin/aarch64-linux/dv2dt
name dtl.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of dtl
-containersize 21928
-containerchecksum 31473c6d8015aec7711c100f362728785f65b53ac094948a0c52afb5aa712d9d620758033ca40682b5ba062cfbbd6d9f3032e270a6f7e92d3504e9ad84da566b
+containersize 19976
+containerchecksum 90c5e5712658ec7f4627a37e2beebd5418e2b7c77fe7978ff3e4efc1c22141010235934554d9425ed0c280f738318247266c565266ca4cbd8cfc752c72ab90fd
binfiles arch=amd64-freebsd size=19
bin/amd64-freebsd/dt2dv
bin/amd64-freebsd/dv2dt
name dtl.amd64-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc amd64-netbsd files of dtl
-containersize 19268
-containerchecksum e4f07dc6abb73e7b67cba90ed1446adf3d94a16539577cd024657f8c0c30f83777ceceb4403a0b5fcd1a26bae10d222b63b8326dc18bdad2289dcd46511af933
+containersize 19220
+containerchecksum cfe7873cda52211444b184f461705281c8bea319dad675f83339c98eef71bfe530b5a9fdfc0acc189e3006561338abcdcfca2979297bbb5a726284cac89bee9d
binfiles arch=amd64-netbsd size=19
bin/amd64-netbsd/dt2dv
bin/amd64-netbsd/dv2dt
name dtl.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dtl
-containersize 15984
-containerchecksum 8122f347d0a4f854148b957065207dce2087d036f34ff58fb5f0938220c9b689b19feaeac5a86d84aae53a90416631791ade95600e45232c5d89c75f528d4e14
+containersize 16008
+containerchecksum 75227b3cc68d7907ebceeea0dd3f528ea0946e438500dd604dd0772e97dff76220d4a4cd546eaea7657cee58c288913b8602860264c30da66f49c6c327a6c119
binfiles arch=armhf-linux size=14
bin/armhf-linux/dt2dv
bin/armhf-linux/dv2dt
name dtl.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of dtl
-containersize 20136
-containerchecksum 74a9d36f80826282572ca9d25d2165a5a32593c4bcc5355553f0c20b8ab22552b4f387f14679c63e25087cc2c771e951c31715783f0a3d20ae6c774118f01a90
-binfiles arch=i386-freebsd size=16
+containersize 20052
+containerchecksum b3d8d228c1ec857c1c50d1c4304bfd5edf9212d4883c16bfb133cdda3985cbed3f659623d6ed312e00db7d52f43aa29b3db430e676e998c7c1453d16581755c3
+binfiles arch=i386-freebsd size=19
bin/i386-freebsd/dt2dv
bin/i386-freebsd/dv2dt
name dtl.i386-linux
category TLCore
-revision 65877
+revision 69782
shortdesc i386-linux files of dtl
-containersize 21856
-containerchecksum 7ba5f38245ebb38ebf261c9a8b50f5c9e32b5e931e82ea2b70bce84b63f81326682f2441b736c8b6f31b1e80c5747a18cb8d0af0f3d56684675562a0669338f3
+containersize 21868
+containerchecksum 12ecfa70d9e9df3490f29180346f9dd24264db76a28ee6f81485fffab643a88275efdd00a122072e9040304e886e4ed776acf8a87a29ceaa477f71c3f88560c8
binfiles arch=i386-linux size=19
bin/i386-linux/dt2dv
bin/i386-linux/dv2dt
name dtl.i386-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc i386-netbsd files of dtl
-containersize 18064
-containerchecksum 5ad744772d64a39dda031f08d2c98f081b8dc8cbbb76a2868b2621e7c4c623b5d767d3b8749b0b89a8bc609fa221bb1f97b8556374d702fd60aec4382ade1bd4
+containersize 18068
+containerchecksum a6529622ed1887fd840f61875334dfc0ae861d98d8d08ad8d1f735e740e7d45bceacef482083b13f2fa1fcb701c19f090aa1bdb0406e97a158bec9eb8e1703af
binfiles arch=i386-netbsd size=17
bin/i386-netbsd/dt2dv
bin/i386-netbsd/dv2dt
name dtl.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of dtl
-containersize 20480
-containerchecksum 86cac2c1e1f3082c19965213e7a8d1ba56f62c308d3c8025289f876ef0d70af2f9da1b71e18594796548ed8cd9eceeda5c2c8efa8714362140c5eb763c7ce249
+containersize 20728
+containerchecksum 9667f099bc2a37a8282f35d05bddcda838a50640e7e3de9f62c228e586fb09df21621d2a71cd766eff300ceae450f716f798cc70937497bd6f19f68880c6c0cf
binfiles arch=i386-solaris size=16
bin/i386-solaris/dt2dv
bin/i386-solaris/dv2dt
name dtl.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of dtl
-containersize 45824
-containerchecksum d04f5455b6909fe220a8906ea89b0373158c547dfe0214f2d7b89bff22eba62181e98325ca2d4a7970005c3561d4d941e53783098f4d93e6da7d653c4b9e0bc7
+containersize 45876
+containerchecksum f79967c199b696af67b779b2663ce141efef8e0cb82ac7c983c1e379fc17cbd2f0a19cc09a927a77a865c9d4b1c916dd564fe887e3269fab962e14b94c4d9336
binfiles arch=universal-darwin size=80
bin/universal-darwin/dt2dv
bin/universal-darwin/dv2dt
name dtl.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of dtl
-containersize 17396
-containerchecksum 461f78e366327dfc9af6b6a0c35e7a2a791b93cc5c66342e4c7b0b2274194fb12122e90909a5ca52ae9d85b86c87b82332c081e101914bfc0dbea1337d9b3e5d
+containersize 17400
+containerchecksum c246b2ad66c48327f6849782c77f26d59c37b6c32ec304cd5af6743e91a148598285d563d943d13c07f743568c2a34c4ceb4fea6cb5003993a1ed48b4ec0efdf
binfiles arch=windows size=14
bin/windows/dt2dv.exe
bin/windows/dv2dt.exe
name dtl.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dtl
-containersize 17872
-containerchecksum 9c8dc51ae07aee1990d5d485f8c30af5ae3d4aa1bd199a0023e892e3f225790bd7e65bf281070b4d333c447c11f437b55527b57983a9d809bdec4c0410a85fb2
+containersize 17840
+containerchecksum 2b52e6c2597ae7307420880133d28799785319f8c0ed65444d9dcdee773de4e515119e724af1e934c43ab7aeb37df08e60b5c260897fc3f54d64c8c11d86be52
binfiles arch=x86_64-cygwin size=15
bin/x86_64-cygwin/dt2dv.exe
bin/x86_64-cygwin/dv2dt.exe
name dtl.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-darwinlegacy files of dtl
-containersize 20424
-containerchecksum 2a67736e32de6006cb442a121aecfad4996d578d034ee18b63ecb6cd60bedfaaff3d4c13d6d5af5072d118e2db2e3d5bb59d33a08ab0416f6b7496db4707a6cb
+containersize 20440
+containerchecksum 66b150b15b542fff29f1be7b73868d53a0c9f5a25e5f1ca0bce967d4ba53e2f27eb554bff965660678ed6ec58c1e227d2cc0d156eead7fe33b117b5c7e627abe
binfiles arch=x86_64-darwinlegacy size=19
bin/x86_64-darwinlegacy/dt2dv
bin/x86_64-darwinlegacy/dv2dt
name dtl.x86_64-linux
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-linux files of dtl
-containersize 20904
-containerchecksum 4462c6f5bd8b45df554fdc58b95e0da8e966b00d54c20910d84ebf3a9a893cd01e33466f7fb9e9346d42172462d34bbf64e96ac376efd0627498d5d9af543912
+containersize 20916
+containerchecksum 34d847e32fd4800e20cb8b9f00c0e409436455684237e253bfc85ef707106b280409d38fce61208c74013f5c6d65e00ab5fc09c0c36331c0942b3a17f2b5993f
binfiles arch=x86_64-linux size=19
bin/x86_64-linux/dt2dv
bin/x86_64-linux/dv2dt
name dtl.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 69784
shortdesc x86_64-linuxmusl files of dtl
-containersize 21776
-containerchecksum b37e6515ff4d4ff120c1cced84d818d99089b3e79b953d3c301ae8e3f681ae2a67cc87a7c12f6d7fda31d0ebbb2f0bc4fc9ec32523fae8541ac04a693f9df6f8
+containersize 21756
+containerchecksum 5d2fe03db8cdf01e7bd9ffb0ed631812155464702828d6fbd2d0012f1b9dbef55e92404b6cce3928be27142a623fcda8da3003f031282281dced774ba9104e2f
binfiles arch=x86_64-linuxmusl size=19
bin/x86_64-linuxmusl/dt2dv
bin/x86_64-linuxmusl/dv2dt
name dtl.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of dtl
-containersize 23060
-containerchecksum 197aed0a6ef8af8042a68bdbeee762e2ba7deba3277e1372d5f322ac637969e2ee3ac397ea2af7cd4cfc9118f501cea644dc9f2bdfb076bd2d48f97cf919f4bc
+containersize 23808
+containerchecksum a2e846071065895cdc23de01051d7a80803c8024022455e3c88143525930a4c93e48d9847ce4dc0a4dc3310c0e1814fe51d4a7c3392363893b12c912da6f0768
binfiles arch=x86_64-solaris size=21
bin/x86_64-solaris/dt2dv
bin/x86_64-solaris/dv2dt
@@ -103048,151 +103428,151 @@ catalogue-version 6.0.0
name dvi2tty.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of dvi2tty
-containersize 78456
-containerchecksum 4457170b9fe8eeb73d991e11e364a75d994011181288273a62997df4ec4c3cd7d79855ab03da0b73b5268801141f6026c4629bbfc5f1ca080fb714bbb7ab78df
-binfiles arch=aarch64-linux size=69
+containersize 79788
+containerchecksum bafc1e0abfbef2c053c038d4341858bed39853b9778b6fd355f0c40be9ffe8c47ef63f1af61f2f8f5547db9e5b874beef127b77b75f7ad1b481f4b0fe3064aee
+binfiles arch=aarch64-linux size=71
bin/aarch64-linux/disdvi
bin/aarch64-linux/dvi2tty
name dvi2tty.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of dvi2tty
-containersize 86224
-containerchecksum f4446e7aca97c4d367fcb3fa8a00c2e2a001a3830db19c20dc7a4b71fdb49434e7835b4c31a918ece59e7226dab0d465660ef586640080861fde9043a79ae946
-binfiles arch=amd64-freebsd size=74
+containersize 76672
+containerchecksum 3802a57fd834d92ee2cbc505e27756433d2b2a05ca7bbe875683a0c18c1ef90346310f8e585cc11f51c2752566ec114dd40acc1398575d32ee61a6c372573a00
+binfiles arch=amd64-freebsd size=80
bin/amd64-freebsd/disdvi
bin/amd64-freebsd/dvi2tty
name dvi2tty.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dvi2tty
-containersize 73100
-containerchecksum 62555daee83d1daaf81fa7b61ffde6c8870d1e88e47a4af867710aabb2466b0745cf5fb718476c63bb95caa08405a677a731a504c47d3a45e0ac7d4e439a23bd
-binfiles arch=amd64-netbsd size=78
+containersize 74308
+containerchecksum d2878524b9146d8143c0d2be385d68819220e9e6553bc248380badf9b3e13e10263af8cdf49134697b0e13c06710252b46fdcc6937ed617fe3c4f9e3b2ae73e4
+binfiles arch=amd64-netbsd size=79
bin/amd64-netbsd/disdvi
bin/amd64-netbsd/dvi2tty
name dvi2tty.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dvi2tty
-containersize 64844
-containerchecksum cd3ad91225973628005dd04272cc9600156b7d1983a9a9133efb62ce202014fa01f96b32d043a147f97c0e233fbcf8049e78baa846f5c7e83e2cb77ee7474a60
-binfiles arch=armhf-linux size=58
+containersize 65552
+containerchecksum 51a53311144f05cdb401b4b5d432854ab46aab2e43f02e76f02adddb0118821d5e1c6ba94c7aa344ba895bca66e7c9fb15b60017d79808102ce86fd3fb85d3b8
+binfiles arch=armhf-linux size=59
bin/armhf-linux/disdvi
bin/armhf-linux/dvi2tty
name dvi2tty.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of dvi2tty
-containersize 79596
-containerchecksum a5fd774b25f88e3f91832d56a63ea60a8b5506066f9dd2c6184cad54dc9f90503db94f2d6e38d23dcab4ac5012aaf41b101d6d1810fac152821d8c6f568cf11f
-binfiles arch=i386-freebsd size=67
+containersize 76908
+containerchecksum 1ca99d5ee006967de97e6ef59bf328ab8525d0163321db8799d924b42da2267a8a0cb6afa7857b7ef02ead93ef0c1e05fee42c3c924fa3f6515420cc88df000d
+binfiles arch=i386-freebsd size=80
bin/i386-freebsd/disdvi
bin/i386-freebsd/dvi2tty
name dvi2tty.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of dvi2tty
-containersize 82780
-containerchecksum 7992f8759378d7a0cfa8a33bc97bafbe75b1697575f6d4d4dc4872565c5feb8d5ea5d8c1d21add53571e4427f906f352793ef551d0ac70b5f4d51cee4fd0a490
-binfiles arch=i386-linux size=75
+containersize 84160
+containerchecksum d23ced75bd99970ee5aa1f8b8fd12e17355643565c8ce79bde22aba3d5940173b86f40028d39bdd224dc289d33874f90adb224b89855efa91cb132a7abf28255
+binfiles arch=i386-linux size=77
bin/i386-linux/disdvi
bin/i386-linux/dvi2tty
name dvi2tty.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dvi2tty
-containersize 68092
-containerchecksum bba056be363b34ae61de73d5f87544419d9e43ef4e5dec35950f73db725025cc74927535c3ba1948ee67d5351454caeef8aeaf03b68fc8a6738f6bdf4bf29f9a
-binfiles arch=i386-netbsd size=71
+containersize 69180
+containerchecksum d48ed631568e6a67a0e749d8fece679b0561b56ee13182a31c637cec2c04cf6f80894cc6619f4204cad8e034925d6d826af6919087c40686b0ada41d8ef5ea1a
+binfiles arch=i386-netbsd size=72
bin/i386-netbsd/disdvi
bin/i386-netbsd/dvi2tty
name dvi2tty.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of dvi2tty
-containersize 78404
-containerchecksum 964f23fc1a5cb7c6826f40eee93627c2f0aa0bfb42ccbfedeedab86c97b4b3713a91462016e026d131265bb4b559f09428568d0ed9b901f5d60b28f200648284
-binfiles arch=i386-solaris size=64
+containersize 80892
+containerchecksum 3217b94a63b35070a1ca2aea08f2f7fdae3133a48bde57b2d20da0b9e8e7012920fac624c75686b3d7f3c1c980f9ae95770476452757f70c6ada1aae7b0b109e
+binfiles arch=i386-solaris size=66
bin/i386-solaris/disdvi
bin/i386-solaris/dvi2tty
name dvi2tty.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of dvi2tty
-containersize 146188
-containerchecksum 5bef807c6d55fa57b00a9f417d67a12486013ec2ba14ddfa43ccb03478e094887ed0ea12d02ca619298b3652b2d7f018c6837bbea9b064beb590d2e70a39540a
+containersize 148732
+containerchecksum 322dbd60b2946a4a606de11befd864fa776112eed2c9f3861d2bf9ce4f706340dcb9b8fe093cd34d975e8f230a8b46211954c13a1bdceb0085c68cd8550d639e
binfiles arch=universal-darwin size=179
bin/universal-darwin/disdvi
bin/universal-darwin/dvi2tty
name dvi2tty.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of dvi2tty
-containersize 38872
-containerchecksum d7ddd21e849fa5a64ec257d28fc427ff946545e4306622a3f3cfd8b8a54949787b971ca7bb92e1e9aa098d53848407ac5dae74e095af06c5c84adb5ceeaf968c
+containersize 38904
+containerchecksum 74b641e66b32d5d0c5e749e59b4fbde8b407d785f875e0048bbebea10590ead5392303a181b8e6f03e958021fc0865f26bbb347026a75d8d6c733bd553ec54b4
binfiles arch=windows size=21
bin/windows/disdvi.exe
bin/windows/dvi2tty.exe
name dvi2tty.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvi2tty
-containersize 25836
-containerchecksum df8cae687c5f6f4e0b6b291ebd5af08dba26d667ac7e0b9e8f5979d6507f9fa94404788af0c2d26823da166c4639f83e7e86c29117b029b4c07ae4f21f6aa658
+containersize 25796
+containerchecksum c11be15389ac037d5c9f4dd7441fa7093db9bea039935609eab45a74cefb8539e9955845a3f4c6cdc50e0fa126228097df222b2e12b82072164efc5e15b96d31
binfiles arch=x86_64-cygwin size=21
bin/x86_64-cygwin/disdvi.exe
bin/x86_64-cygwin/dvi2tty.exe
name dvi2tty.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of dvi2tty
-containersize 77460
-containerchecksum 3e8f09955a5d57528e4abe031615ebb4729c24657b7cbc8451992569c0c6526045002e13bc966e37ffbc6b85d516b30d78b845af175586793ae6be257425fc83
-binfiles arch=x86_64-darwinlegacy size=65
+containersize 79116
+containerchecksum 51a30a7346ef0d7f30bab0f1574a57577cfe14ac1285c42ca3ea3c0ffe7db2c5711a7ee328894ab25876b17de13778030fe1961eded62e42d16fc23e145bbaba
+binfiles arch=x86_64-darwinlegacy size=67
bin/x86_64-darwinlegacy/disdvi
bin/x86_64-darwinlegacy/dvi2tty
name dvi2tty.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of dvi2tty
-containersize 81336
-containerchecksum 03923ee2577599b2a2eb3d98d4a63b84857bec5af4aad912de41101aa527f88e6a4efb05b83e7d7e7b45e4f40242526a97a7940727be3b3751fdf0a038df377c
+containersize 82840
+containerchecksum af16067288c312c4a8bde5a9c5cca40030715ee0212065fd653f1ee66e844872c2f99e3be3283d38addb44d349c762159c269fe72f7a5c891cc65b977fc1ffdb
binfiles arch=x86_64-linux size=73
bin/x86_64-linux/disdvi
bin/x86_64-linux/dvi2tty
name dvi2tty.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of dvi2tty
-containersize 82124
-containerchecksum 6c7dd7e29d140c0e5583a09a7d503b21100db62824104595fe8cde65890db0d122ebd7f1cb2163ab303bef1462f2319714b5534c82dbbe5402d5dc628841c07f
-binfiles arch=x86_64-linuxmusl size=69
+containersize 83232
+containerchecksum 918b44d90f85ca31e1d8631765245a4ea9c088606cbe3d109fcec8b30652c157f732b1dfc104700d7732cd90f428478ff75219adf35e217d92983a2bad91f0b1
+binfiles arch=x86_64-linuxmusl size=71
bin/x86_64-linuxmusl/disdvi
bin/x86_64-linuxmusl/dvi2tty
name dvi2tty.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of dvi2tty
-containersize 86352
-containerchecksum e846b35647cf05f65259666aa1e54c790342ee6fd47fbdc940f62988e3639fd0d0bbc8ceec0a62c1ca4291d01e2e4c1cb5a36617db57aa7f1b91b8c324c5d318
-binfiles arch=x86_64-solaris size=75
+containersize 90032
+containerchecksum 9211c3aca91acad727224cc1daf1e72f5382d16aa3ffd54318fe43e0dcb08b3d3cd7a90556e0caa5fb74c9ec3bfbda301bbaeed1d14576b2b36da818e14c9974
+binfiles arch=x86_64-solaris size=79
bin/x86_64-solaris/disdvi
bin/x86_64-solaris/dvi2tty
@@ -103359,7 +103739,7 @@ binfiles arch=x86_64-solaris size=1
name dvicopy
category TLCore
-revision 66186
+revision 70015
shortdesc Copy DVI files, flattening VFs
longdesc DVICOPY is a utility program that allows one to take a DVI file
longdesc that references composite fonts (VF) and convert it into a DVI
@@ -103367,9 +103747,9 @@ longdesc file that does not contain such references. It also serves as a
longdesc basis for writing DVI drivers (much like DVItype).
depend dvicopy.ARCH
containersize 588
-containerchecksum 60f44492a3d1af9686de3118af37f1d054068527f50765e21773f76ec406b4ec0f419d6298dab6b5d33e2fb740bd740f2037f711e8993bf9d3ab8f611bebb2d0
-doccontainersize 18460
-doccontainerchecksum 40dd53fe878937846f003d3b72b7d474c13ad07156e78679501d01c020380a3fcc450aee7a72c0155a950429c258b8fab253a7ce3043d58d88300d0c1037da56
+containerchecksum 94060296bb998bafc8458a00418d1f6d377717a2bd7fa3c51e7f1f17f5c19c394d10b5fc28ec1a8b5a492fe66454b85f76edf8c561a60d2a27341457a382611d
+doccontainersize 18320
+doccontainerchecksum 12f0c20a68f416fc325e0e4109ee8139ba1deff73e14dc5cdb78eb262288311eb28e961f8e168cd1f11c861ed257d0e618598f644059216005101cbd2de70708
docfiles size=7
texmf-dist/doc/man/man1/dvicopy.1
texmf-dist/doc/man/man1/dvicopy.man1.pdf
@@ -103383,137 +103763,137 @@ catalogue-version 1.5
name dvicopy.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of dvicopy
-containersize 54296
-containerchecksum 2181984a36ad6af44143dec249aa73bf5c6201c415ed3fc87ad9e249451ce1007205049649628c49773d196c235587e7550ea537e4e5cf4d847385555cc87255
-binfiles arch=aarch64-linux size=35
+containersize 54692
+containerchecksum 26facb7843b6b41f220346f3cb668e6652e18a3a5470b4483a8adbb80996061af3232bce08ab9a81b8f18d5b188a20f1d864dc0e65cef958384fcc841eb27734
+binfiles arch=aarch64-linux size=36
bin/aarch64-linux/dvicopy
name dvicopy.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of dvicopy
-containersize 60416
-containerchecksum a7c836f8e391ce04772395f728efb643e4bafbe4284c043c573dae4f20bf16c6f337ecf6def793c146ee0a292b26c1ccb992180e77717bcfbebdcf64be5ac77c
-binfiles arch=amd64-freebsd size=35
+containersize 54100
+containerchecksum 754fd24ef5222a8919edc67b6505a53835651f56b3345d9ad100c1c9de7e6a40d62897753be41a6ecc9bd4daff4579f24f8afa427ce66a1bde2cf3a933ac5f27
+binfiles arch=amd64-freebsd size=42
bin/amd64-freebsd/dvicopy
name dvicopy.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dvicopy
-containersize 51236
-containerchecksum b867a5215501ac672c54e1bef8d74bc4714536de84a56db41fd424439624cc0f0e00e42c04ac807cb1e358e8321c2540bbbcc9fbc855a34a5db1024c4db19ef9
-binfiles arch=amd64-netbsd size=39
+containersize 51664
+containerchecksum efbfdcdecf6bfd80953d2b232c84ca01412e5c344b211b230ee71387ccc60186ec09ce39698a941c9f72ec766dab1d6a3a4117f0bc443e3a9a2cbe70e2b6ab11
+binfiles arch=amd64-netbsd size=40
bin/amd64-netbsd/dvicopy
name dvicopy.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of dvicopy
-containersize 43764
-containerchecksum 2130ed27daf21835384e847272b0aa5951dcf1c7eb58b5accee928fed95a0ab8b7d15ac9804af0267444489abcf13b539c6e52f0d1e098ceb15e9176f6d43cae
-binfiles arch=armhf-linux size=26
+containersize 44112
+containerchecksum 37a3b130a4ac4155ffaa049c2c6181f3e7435b95d98f637853981f0605f5156d5bb03c59f625e74253da02ff91b226717966434884f3d3a00319422d551c8b7c
+binfiles arch=armhf-linux size=27
bin/armhf-linux/dvicopy
name dvicopy.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of dvicopy
-containersize 51440
-containerchecksum 449a6ee1fd31b2cb19b4e5b271d566c3570fd10d91a66ea7e0af1817c27bfb309ac2b8b8fc1d4f63f3227401784376a4f836b991a15d6abda8ba7cf2f23a5984
-binfiles arch=i386-freebsd size=31
+containersize 54124
+containerchecksum 5d640011e35575f6c0899609dc567f2d3eecddbdccac1182dd364d8af285c6e415460804a5d53ad35743d35f403c676e71324187ba453766224e002027374ff2
+binfiles arch=i386-freebsd size=42
bin/i386-freebsd/dvicopy
name dvicopy.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of dvicopy
-containersize 54884
-containerchecksum ecdce35e3e4a46654c7561c61045d3db8f72ebcaf12c43a4f3d24774688c08a2d3f0f23cf4a062f2e27218605c2e5a387eabd51bc0df08cb1a57e7c2a3d115b9
+containersize 55380
+containerchecksum b6d0f30b154f9955859da4008882a3856b57087f6d215d2116ee1ffd669f9106701f5415ff7219914ef04d0229a54c5f07eadd9385461c33fed44b2aed6826b0
binfiles arch=i386-linux size=35
bin/i386-linux/dvicopy
name dvicopy.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dvicopy
-containersize 43768
-containerchecksum e736d1caef9eda12d6931de8fdc9af37e48d1cbe1c950b57f1b90d744d703f8629cb99a8dbb32957c41910cecc0fdf85e7706d8cb65cc199b2063edc4b72b5e0
+containersize 44104
+containerchecksum beab6d497e50bd2984a89cc6d7bb744d7c8f5086e182db201d89a461a80fcc530474cdeb870453564a09caed1ecfefc403bab8209ab8e93f46c288bb214dff4d
binfiles arch=i386-netbsd size=37
bin/i386-netbsd/dvicopy
name dvicopy.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of dvicopy
-containersize 53544
-containerchecksum 7e7d8fe75cb3965e7628e3c57f6a3b8b53b2006e57678307043333729c1f5f701a4ca1ec45dc4e61a8c04fbeaec4153859b99b2f2f29e2c938876f5d278445c2
-binfiles arch=i386-solaris size=31
+containersize 55172
+containerchecksum 717d609c63666ebe2a837f407873ba419db13f609aa59eeb974285aacbebcaa1af2f97ad71faa48410f44ca36d059781d50f1d750d151a467e5c5de4fe1257e7
+binfiles arch=i386-solaris size=33
bin/i386-solaris/dvicopy
name dvicopy.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of dvicopy
-containersize 111796
-containerchecksum 5e7ccafa83957385544c888341697305293f2596ad55a5bb0ad0b8d75445df6bdf03de8ff88a42346b1dbe3a68f74e4c4bd2edb6d03fc6aa528e584600fa9ef3
+containersize 112740
+containerchecksum 99c0defc22402254657555de44dca04ae2d908846a4b8f79d1d584ab38a0fbe07a52ec55772db71853353d62d6213d2c47588c416b9353008ce91577f3d51013
binfiles arch=universal-darwin size=92
bin/universal-darwin/dvicopy
name dvicopy.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of dvicopy
-containersize 28252
-containerchecksum d69d71cd6c1957fdd3bb4d76c5f1045615b9668cdd3dc8b9dcc9877c0a37ebe57026d57b2e108040cfff2bb0358d1c6bcc641687aaf3ea961b99434431c12be0
+containersize 28240
+containerchecksum f8e5860e0bc94235385b920aaad6ff854097db8cb803ce0cd22cfacaa538083a6512fcd5e93a80f1c1d6f6b8a47c29eb8b9848c3845bb917daa84fd148ddd045
binfiles arch=windows size=15
bin/windows/dvicopy.exe
name dvicopy.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvicopy
-containersize 26252
-containerchecksum f137b6071a0b3a6cebf36c337f57f9e6888250fb4db5caac8bfaef62939da69709c4136f84d7f104229b01a3814277bc1e0ecadee05e3913481a3e24d4f104ee
+containersize 26220
+containerchecksum becfde3b6d2f1592e0db9353bba89caab882bdb983c021415ddc6114de1ec520959ca42f2b413656f1a5872c025067b5cac6f8350a60baa140a4e6c8146cc4f1
binfiles arch=x86_64-cygwin size=14
bin/x86_64-cygwin/dvicopy.exe
name dvicopy.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of dvicopy
-containersize 54908
-containerchecksum e2b8c897b6dd6537cac93d1be287de74b89df89a73d3021fd83a3d8a07c51ae9e2653ab5767582f1c1889c0873124c961f610fc82a1530284ad319af165faae6
+containersize 55516
+containerchecksum acfdb39570afc4d201b6937646481aca7964674d2b28ef9b44a70b8e5468b987cd839165999ba754d55cb1efc2d49fced6a4931fecd8c7a99e0de6b8d3362574
binfiles arch=x86_64-darwinlegacy size=31
bin/x86_64-darwinlegacy/dvicopy
name dvicopy.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of dvicopy
-containersize 54296
-containerchecksum 855aaabffa05c7e2382db42823e1793e00a5ffeb26a2e86403541bb5f63ea778d2aa1fd6244ca82e8694d372a9afbd4c6d868369a00c8d74eed51aa960cb123c
-binfiles arch=x86_64-linux size=31
+containersize 54740
+containerchecksum 8f934eae225e742e7db54dbd44b25e9cb591e475e9e8bda309b236817dd3ce5cfbb9889f322cae7a57f61c291095a22e618573d8c669b02a3d96ef2fe169cd65
+binfiles arch=x86_64-linux size=32
bin/x86_64-linux/dvicopy
name dvicopy.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of dvicopy
-containersize 59072
-containerchecksum c695f28649346ab9ed65f99d4912f9cef25a7af38ac7780255d53cfd264e80d48c6d27fab899f276c007d6df896383d4a5f1fb186a3779f8bb28ca86f4839edb
+containersize 59560
+containerchecksum 746bab206c44e7b90cc1cce4ef4af11ea3353c64e951a6451808c5eb0fc4f5c1f2e3fff1e702f2bb8110e6c6c5541ee18539437c544ae869c96bf5552ba6e721
binfiles arch=x86_64-linuxmusl size=33
bin/x86_64-linuxmusl/dvicopy
name dvicopy.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of dvicopy
-containersize 60208
-containerchecksum ad9212734767b468ffad1d0723a79dfbe20f527c370c21d8acb3f48659e0ba8d6f5f997ec902271d87dd6f854b2ca9530cb2143e46af1a04171212cea598b4ac
-binfiles arch=x86_64-solaris size=36
+containersize 62228
+containerchecksum 8a221ef82e9b5297b423af69e3b68c96b020a2f7c6f78a081048fcf9a211361fa04ac541c66211bbb5d6c38a8e29e1b8246c6553cd360ed74a17b50c919f1e46
+binfiles arch=x86_64-solaris size=38
bin/x86_64-solaris/dvicopy
name dvidvi
@@ -103537,136 +103917,136 @@ catalogue-topics dvi-proc
name dvidvi.aarch64-linux
category TLCore
-revision 65927
+revision 69782
shortdesc aarch64-linux files of dvidvi
containersize 8592
-containerchecksum 677f44343cffeee48462bd22d5b8ce4a68c302bbc138ed915a96e49896b7ccf6595d219d550882c82fdbc09559ef78d5a8938eb6920f91b459d20fcacad1cba4
+containerchecksum 94f36aaf0bf2ac716b631f782002f1ae026cab7b9d6e245fee551fa4051003bf5fbf9c17b413d1c1f87c5a6e8401f0d24f38ed5c2e1f4ab2fcf4a7413e1c32f0
binfiles arch=aarch64-linux size=6
bin/aarch64-linux/dvidvi
name dvidvi.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of dvidvi
-containersize 10004
-containerchecksum 47aec8aa33c279334ef7dfc285fdf6e789305517b1726bc3471c0f144c93cdf4d2e22689fa4789c5a671141d423364cdbe2c969a36192f3dba70d4bcbcbbb7fe
-binfiles arch=amd64-freebsd size=7
+containersize 8472
+containerchecksum f75c7a0d6f901c0da8c1b7cd510a7b2292a6f7c20734a5b07c2e0e3ee64ee1b4e5495bba9e516c8c7d129acc931324dd721fd121ebb6a564e940c95a2b01b167
+binfiles arch=amd64-freebsd size=6
bin/amd64-freebsd/dvidvi
name dvidvi.amd64-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc amd64-netbsd files of dvidvi
-containersize 8688
-containerchecksum 0185a26149dbb4dd638f6fd90b77fd301112410d62ec39fe2303356caf7a636a5d78edef045e0ae3652d4df307570aa3fccc835b57837ef39d304821516dc0ce
+containersize 8692
+containerchecksum 478cb3e902bab2ec4c5698d2bce1310477fd8498f7fd2c6a97737ec814631fe8e93776c366a304c666dfd42c16d249784a4500e0d0f4185d7641686d8d73fb35
binfiles arch=amd64-netbsd size=6
bin/amd64-netbsd/dvidvi
name dvidvi.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dvidvi
-containersize 7596
-containerchecksum 43e7a59289445da33e8910d6979a9cd52b322c823db3777e9e22cd355a0e92241aeabc0f66d4a4b4bc01e059b385f25d092a81546039db4ec413e5fb00ae2c7d
+containersize 7600
+containerchecksum 9d64f449a4f48abecf9b0303d376ae3aad76671ee672768b5c67bc9088066559d02ee1cd5905f9ebedfeaa859ac4c357af6603ce2981d991aabe8ceab6c2eeb1
binfiles arch=armhf-linux size=5
bin/armhf-linux/dvidvi
name dvidvi.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of dvidvi
-containersize 8940
-containerchecksum 7c06360427101af4d70ce472d436f272e17bd8a06347a2410d97035bff7dfc0e03180ab2c3f68f0b4227d2c0f989b1e91ddcc13dbc534f15951544573ea29389
+containersize 8476
+containerchecksum 5d07a79ce899c61abf0b2e76c8669d0e82ea355975d2e89426e461edd938779f4ebdf382d469e68e627e2a1840b8f3b2ddc92f1e8902be796656aa71c8381c87
binfiles arch=i386-freebsd size=6
bin/i386-freebsd/dvidvi
name dvidvi.i386-linux
category TLCore
-revision 65877
+revision 69782
shortdesc i386-linux files of dvidvi
-containersize 8208
-containerchecksum 06bcc539a80de0c528f835c3113894493c957ed4de7271e132394ea960ad5431fbbf126a3eff489329377e46335758dd54756ddf02daf8c1ffe526d2c5a0d152
+containersize 8212
+containerchecksum dab2df7fc786e7863f9fb2ab2960e3aca924a344f91f072c6a874a5233867061d45075e22fd6392562aa4846530720aebd1e20b4e811ffaf8bbb13af45d67b2d
binfiles arch=i386-linux size=5
bin/i386-linux/dvidvi
name dvidvi.i386-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc i386-netbsd files of dvidvi
-containersize 8048
-containerchecksum 8ebe8cf6e93f0519a4bc4bfb46ba64db1c89f129a09f47213160b17bbfdca01057f81c3370d4c9acae3fcfff4a39dd03102f045885c578b3b50f0d24f8bf9386
+containersize 8040
+containerchecksum 75e4923fc164535fbd9eccb048d2b0fa2718d3ac6df4add6e2c65fdfca07b52a559ae5dcf6973592f030c3f1c83b1bb87915a972f5fc3012689f5ac1b7211336
binfiles arch=i386-netbsd size=5
bin/i386-netbsd/dvidvi
name dvidvi.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of dvidvi
-containersize 8900
-containerchecksum 24767bcd3532c0da0391f8df761f00d0fde2e10b9f7dc83e39661a4bfa8f1951097fd2a7674f255a3c132a7b6376251301249eac5951fb5d6fdc453b3f35ad78
+containersize 8956
+containerchecksum a5ec46087f98248f033720f7ccc6e359d11c9c852cbb73962925c4eba8196d4b082e3047cbd9d4f10f547d925864be3cfb6f0824739c51b8b1dce608be8752be
binfiles arch=i386-solaris size=5
bin/i386-solaris/dvidvi
name dvidvi.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of dvidvi
-containersize 22384
-containerchecksum 3f58f84b35211ec3e9b39eb0e82d5f2eb67aa37e5643a8b14f015c3c432096f91343c1079a46b0e6ce04ade54a4207457690a599424bc75a0ceaa9b72734ff63
+containersize 22432
+containerchecksum a45e15ab5b11d9e166593fdb3d3a8657e50f35584eece80f8cff9ae1e9de696d5ecf10b868cbcf8c77329253cdd2c83d97cce1f4409e189f3a64ba7841273785
binfiles arch=universal-darwin size=38
bin/universal-darwin/dvidvi
name dvidvi.windows
category TLCore
-revision 66045
+revision 70269
shortdesc windows files of dvidvi
-containersize 9792
-containerchecksum e86b35e429d33f4408a62d6997addfd6d59498d46896f1f5647c972503370e8764fb166e321921a4efb38d46f0fa8274ea8bfc430a04cf90bbf19aa1649113b6
+containersize 9808
+containerchecksum 072003c5c4e8c9ba8664d987af632433b5da3c728589411b6ea8bf203b1b1d9963b193cd770fe7ace51efbfd57574e158dc0512088db993ea5e72511606185ab
binfiles arch=windows size=6
bin/windows/dvidvi.exe
name dvidvi.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvidvi
-containersize 9440
-containerchecksum 370aa3157f72abed19882055f4fc9820a260a7a619c1d2bab859121b0a69103b3ff54c1c2f68be0f93b788042772a6f75fb52178f0c1744a2f5fc23d3e80b601
+containersize 9400
+containerchecksum 0ba4043021b7d183db7e5475ea559992bf1a4f8a42a3973e7f0c6f5517a7d1d0ce31f5b4f1b5af76bf592dd6d6796ed2e02fca7486ec8b5f3ef1f0839cac87df
binfiles arch=x86_64-cygwin size=6
bin/x86_64-cygwin/dvidvi.exe
name dvidvi.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-darwinlegacy files of dvidvi
-containersize 7972
-containerchecksum 7b4bb7e40faa4ee04fc730b777b776ad9f10f7ebadf17c4200cad1ed6ddc5fa4c72b1cc5a136d1231b56f089eee382a7d28cdc2c8a1a22032ca1bccf9e34340e
+containersize 7976
+containerchecksum 7a7176ef156bb1ae232c5a0b2d6b9466ed616a8e957d8a7763f03e74a591e165d4bcad088737c6f4814f7bc39dcae7932199eb1928afda92ddcf1863b404f2d3
binfiles arch=x86_64-darwinlegacy size=6
bin/x86_64-darwinlegacy/dvidvi
name dvidvi.x86_64-linux
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-linux files of dvidvi
containersize 8324
-containerchecksum a12043a5babed6caeaab813df5395d134c70fb0241bd46939b01579d777d8cf95b14304b563b3d7fe5cdd61545c927fb0be3677843f4a89ff005837db59ec7e5
+containerchecksum d816bd3ecc3bf6639207aeedd8f34a9ca4946f9c641cbe7a99fdaa94ce9874ce697cc076b7f5dba91cbc17242fe0228d2afacd17bb1a6b4a099fe9d10ddeb6b2
binfiles arch=x86_64-linux size=6
bin/x86_64-linux/dvidvi
name dvidvi.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 69784
shortdesc x86_64-linuxmusl files of dvidvi
-containersize 8380
-containerchecksum 1836f87d1d0dec6b291038f38589c2c45114bec665fd4087c6aa5c943db01d2d77d261a0ebb7f71eca6abd03a520ca7d310fc460b92df04bbd49094b571c2d6a
+containersize 8388
+containerchecksum 7f91ae29f763192633fcd8171582e6df1bc21b8300ac4e275c64cde39b8c640181e20d1491b9924ce53a229b3da38cc2b46b61255dbf89454021788ece601e0b
binfiles arch=x86_64-linuxmusl size=5
bin/x86_64-linuxmusl/dvidvi
name dvidvi.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of dvidvi
-containersize 9404
-containerchecksum a1b684a430584d277757e1093cef8815ea447642873934c45cdb0b6d03ef7514846f962aa903d52c5f89502e1ab189353be1dd7db34fe5af91abb43d8f06d1fa
+containersize 9812
+containerchecksum f232dbef4d22cba58c1fd3905e1f9f51e440f71fb7858d6978b7fa3cd3dd0f58aae14864662b736a0734552cf38a9183596d2cf2a43f14faf9249b2229a8e796
binfiles arch=x86_64-solaris size=6
bin/x86_64-solaris/dvidvi
@@ -103892,10 +104272,10 @@ catalogue-topics dvi-print
name dviljk.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of dviljk
-containersize 78260
-containerchecksum 58eca806a4fbcd7c81e0cdf507fa6dcec68425dc3785272c0151a72015031b520b1f7d09f612e00ba0c363f5584c4997a7a8c8bdb2801e7b5f85cc52b0d63d5f
+containersize 78772
+containerchecksum a954db141db94a13bf70da74f979bc2d0965389e582ea1a76b6fa4a8bd94e3cecc097e333539877b1b0ddb387623be3b69fcea83f8dd42e97c5aa99507d6363f
binfiles arch=aarch64-linux size=131
bin/aarch64-linux/dvihp
bin/aarch64-linux/dvilj
@@ -103906,11 +104286,11 @@ binfiles arch=aarch64-linux size=131
name dviljk.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of dviljk
-containersize 88336
-containerchecksum 6788944f4ab52fa12dc2600d912f7845128690d216d5c0ba04e03b78524673617ee0d235e9f294a4e8a4db2237d85947a7d13312374bbe8c660e17a2759715eb
-binfiles arch=amd64-freebsd size=137
+containersize 81032
+containerchecksum 16d2256624f8f0aa588a0531b7d649e900190b9f947a44ae5d50a3a20f800c28676a98095a2084241020e8a615029ebd33045777a98067f4be72a9bcadb74605
+binfiles arch=amd64-freebsd size=153
bin/amd64-freebsd/dvihp
bin/amd64-freebsd/dvilj
bin/amd64-freebsd/dvilj2p
@@ -103920,11 +104300,11 @@ binfiles arch=amd64-freebsd size=137
name dviljk.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dviljk
-containersize 78108
-containerchecksum 4435648eea6a7dde66007b898caefa35d085e3a0350e7b83469fcc6522e18048b611e03c1ed6e5c06aa0289321309034b5cb10d437ea4bbde4a33b87cec01b78
-binfiles arch=amd64-netbsd size=151
+containersize 78872
+containerchecksum dc3a194692d5b3f5601d6337cdc31edf3da12e131a13effb40bdb24401e941144ee21ae46986c091425146dc45a51c7e08271cbc72d14fa7bfef2f5d017b6a9c
+binfiles arch=amd64-netbsd size=155
bin/amd64-netbsd/dvihp
bin/amd64-netbsd/dvilj
bin/amd64-netbsd/dvilj2p
@@ -103934,11 +104314,11 @@ binfiles arch=amd64-netbsd size=151
name dviljk.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dviljk
-containersize 64036
-containerchecksum 2b6f835424f8d341d8f6ab11282858c84c1ff06d2fa5d0fab9e2ad49f86189274aff7f4743f6a7bb3fa416fced0343ed318a41e04b58e57ba4e4b2c82566c3f2
-binfiles arch=armhf-linux size=107
+containersize 64556
+containerchecksum 3db9d347e267c52364417cbca0b67dad31b1d4f8408b7590f704995b7e16ad4b78cd7120a04d1e6716b293e8386260fb64d648573dcf2224c04c162510c9240f
+binfiles arch=armhf-linux size=109
bin/armhf-linux/dvihp
bin/armhf-linux/dvilj
bin/armhf-linux/dvilj2p
@@ -103948,11 +104328,11 @@ binfiles arch=armhf-linux size=107
name dviljk.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of dviljk
-containersize 78944
-containerchecksum 0c92cc2d88cc13a5e3b33445ef0b816238aab4dfe2d1b0292e31241e765eb205764cd7506c2da0a86dc68d342f0d32ed18acc5506f96637ef1db78f89f3d4543
-binfiles arch=i386-freebsd size=119
+containersize 81044
+containerchecksum 9fc4020209464e6791daa04724cb1be1144ed631a673167ff71510628dae5706d1f8533269ad16a5d5e4501d0604adb6ec1ce18627451f671ff06d96c91c277f
+binfiles arch=i386-freebsd size=153
bin/i386-freebsd/dvihp
bin/i386-freebsd/dvilj
bin/i386-freebsd/dvilj2p
@@ -103962,11 +104342,11 @@ binfiles arch=i386-freebsd size=119
name dviljk.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of dviljk
-containersize 88776
-containerchecksum 81e32389b95086cbed14013d166750514274d8ae68fd6371425d42e6fbef67af6d93ca48e48e991b7fbd0adcb9d6a471251afab428baf587144eef1a9cdbb01d
-binfiles arch=i386-linux size=143
+containersize 89844
+containerchecksum b9e2bddb2f9c91f3db5cd3eaa1441a14b8a40d4766a07374f08513ed2334eb14e84b24a82cb5aed65028408a8b2156ecbf963b98a5a6bfe719c22973973a6b9c
+binfiles arch=i386-linux size=147
bin/i386-linux/dvihp
bin/i386-linux/dvilj
bin/i386-linux/dvilj2p
@@ -103976,11 +104356,11 @@ binfiles arch=i386-linux size=143
name dviljk.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dviljk
-containersize 69912
-containerchecksum c296c5201f35ce5a5552466a73e5f7b7d2c1d372ec3096082b4e474ceea295d9c6e298759cd9f2f490c06fc36ce8921acd71602cdd96a10539c626d2fe4fce87
-binfiles arch=i386-netbsd size=139
+containersize 73020
+containerchecksum 6c4c6271b876233b6172d1efb4f9544fbe5b08b22fc405de6a7d8f32eb4b9bff2b6490c272394e9aba1e261ce87860890b2a5a8f117aae4df0a6536c5f6f9091
+binfiles arch=i386-netbsd size=141
bin/i386-netbsd/dvihp
bin/i386-netbsd/dvilj
bin/i386-netbsd/dvilj2p
@@ -103990,11 +104370,11 @@ binfiles arch=i386-netbsd size=139
name dviljk.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of dviljk
-containersize 87132
-containerchecksum 48dafd974ae5b39e9911a809cdb398da3f8737df8ff05d9eaeb83e6be0fe49ac557c37d9c8f5d8f437671f81213fa34cd069ca387536dd610ddf682d14fbabbe
-binfiles arch=i386-solaris size=119
+containersize 92612
+containerchecksum e36cd2e13b667044b28d03f03654481a3622aeefa8ffbdfdce36f61fc243cc6759c116a14abdf056ab0e78ef249e325ff774486413776f69a4b67e3f2712d989
+binfiles arch=i386-solaris size=123
bin/i386-solaris/dvihp
bin/i386-solaris/dvilj
bin/i386-solaris/dvilj2p
@@ -104004,11 +104384,11 @@ binfiles arch=i386-solaris size=119
name dviljk.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of dviljk
-containersize 175760
-containerchecksum fbeaa1268bf10544b43044f458a86c20b3056109c88471ef2da26f096b017d6abb9162a91c7acce00f125e51cb2462c8762eb8b36082212dd3bf5a0e8a93ba12
-binfiles arch=universal-darwin size=347
+containersize 174000
+containerchecksum 470812870d519079a3df0048b318bf8eef8572f626394144ffdab30ac41a1a2772825240c3449839e0406aba895bac12b2c95f74bbfb4caf00a01c48e058cdee
+binfiles arch=universal-darwin size=355
bin/universal-darwin/dvihp
bin/universal-darwin/dvilj
bin/universal-darwin/dvilj2p
@@ -104018,10 +104398,10 @@ binfiles arch=universal-darwin size=347
name dviljk.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of dviljk
-containersize 48240
-containerchecksum abd437841b54b17d70276e62701e5f963b86ac1704a06b8388c29c23b030a8872f08443147e5e23a51b3313fe8900144e41f8925cf608bd17ed24b87c520cbe2
+containersize 48268
+containerchecksum d1f2c2e25c68418348eda36c02055cf01c6c0d6720d9ec320ba5539d2197a8650d9bda01c9e4707c861c10797d176567689dfb3ab1c65878e798c45047640562
binfiles arch=windows size=58
bin/windows/dvihp.exe
bin/windows/dvilj.exe
@@ -104032,10 +104412,10 @@ binfiles arch=windows size=58
name dviljk.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dviljk
-containersize 42896
-containerchecksum 787701c87bc4d21389072733025e57a7a6d6fa85eee612367cb94acae9689ffc98073a5f0266bfaaaddc095b054179d2f65d2752e961bdc018adcd8886597595
+containersize 42864
+containerchecksum 42f017abaa74638264ff30dee0690cd1b775bf0aa8859c189e095fcff368e80b69b9b150e1202ef5ab7a22cdccb9d3d96f8839431e6f53877cd9536d45e18586
binfiles arch=x86_64-cygwin size=57
bin/x86_64-cygwin/dvihp
bin/x86_64-cygwin/dvilj.exe
@@ -104046,10 +104426,10 @@ binfiles arch=x86_64-cygwin size=57
name dviljk.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of dviljk
-containersize 83212
-containerchecksum 393e9c122c78c978240e28371ec9ee980450882367410c4bfcbf087447c3dd29fdaaedf448c06aec3c2ac00d86bafb426fde751b31feec2aba3e01062430dada
+containersize 81596
+containerchecksum c3b52f90573b5b1f126ed4e8930a962ed6721bd851e08c1257886420c3cc461c08c4edbc661536795d9e25fe6faaa5c8dcf3bc73308b50e7fddf08a0085dc721
binfiles arch=x86_64-darwinlegacy size=123
bin/x86_64-darwinlegacy/dvihp
bin/x86_64-darwinlegacy/dvilj
@@ -104060,10 +104440,10 @@ binfiles arch=x86_64-darwinlegacy size=123
name dviljk.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of dviljk
-containersize 83700
-containerchecksum 38175b463e0db8ed6901df4fcaf1e254e04252d2dc970972a38d5f775e830047fb5ba2e454b445424bcdd578051538ed8097a9970fce118db8e02e1aac6912d7
+containersize 84548
+containerchecksum 1062a9c100a0b2c42cb3a13daeb293c747bd0718e084a0a7349980d47d0906c288a98aa5c159b2b68a488d2e3f2dcdad4c9ba98556f61ce6cc2f7ce125ee772a
binfiles arch=x86_64-linux size=131
bin/x86_64-linux/dvihp
bin/x86_64-linux/dvilj
@@ -104074,10 +104454,10 @@ binfiles arch=x86_64-linux size=131
name dviljk.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of dviljk
-containersize 85496
-containerchecksum 23849a13ae83ffc9ead5e9060ba67729ec181595d94805daaf13bb859710067a190585078cfd3597560351055f2ec8b082fae3da950ac8df7693d2f4f39df063
+containersize 86320
+containerchecksum 25c49729fe2437eee0b4f426658a77502f3ddb8b16fc0510c147a1b748c62c63ebf39274315fea42ecde836c771d92666276fbfc9b63a0b74701c8e4e239ffb1
binfiles arch=x86_64-linuxmusl size=131
bin/x86_64-linuxmusl/dvihp
bin/x86_64-linuxmusl/dvilj
@@ -104088,11 +104468,11 @@ binfiles arch=x86_64-linuxmusl size=131
name dviljk.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of dviljk
-containersize 94152
-containerchecksum a4db39a85035f2724b4d97bbb98a760488bb44b87841bc3e8275a73e40ed2042c0b10414f0120003a35930be3e7b4b5d910c0edec81dc5c0c1ec00554e579c0f
-binfiles arch=x86_64-solaris size=139
+containersize 103004
+containerchecksum 6742fcbaf5151d34b9707144bf6f8afb9c2104a387f2f1b9a560c1a6a2944002e651330f1103c905799f200d16610805cf596c436d3d08056f9e4167582d7019
+binfiles arch=x86_64-solaris size=147
bin/x86_64-solaris/dvihp
bin/x86_64-solaris/dvilj
bin/x86_64-solaris/dvilj2p
@@ -104116,151 +104496,151 @@ docfiles size=14
name dviout-util.aarch64-linux
category Package
-revision 65927
+revision 70276
shortdesc aarch64-linux files of dviout-util
-containersize 72296
-containerchecksum 7c1c774a5695871b3a3ef3a89e3cba14fa92b4fb85bffccfc92672f52a803b14efda08a76d5e78e3cc92cde2dce6dee8bf91b9d15786a419014775811076e122
-binfiles arch=aarch64-linux size=45
+containersize 73288
+containerchecksum f3248a17a4af8c5049bd820cf07927719335dbb64bae22329b59f93b43d8b7050658ade056ee537f0ddfdbb41616c1ebc53246e674510bec85178ffd7d4b072b
+binfiles arch=aarch64-linux size=46
bin/aarch64-linux/chkdvifont
bin/aarch64-linux/dvispc
name dviout-util.amd64-freebsd
category Package
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of dviout-util
-containersize 79128
-containerchecksum 2fbc72dac362afa8c57be4d75e798eee172b2d88a0efcc9d9cf9625e586a16ae8c2eae9b80623a9d256924e1dd8c08a044db3b59d6cccd9d02de2edc957ac3bd
-binfiles arch=amd64-freebsd size=45
+containersize 70800
+containerchecksum fe49d5432d34ea86ece4a26a879bf3a3aef835c7155cfd77f7dbba5e871b71c871d59070c271c7aaebc0b0a9640a816791d379a7f6ed9b1af66692620e976ed8
+binfiles arch=amd64-freebsd size=51
bin/amd64-freebsd/chkdvifont
bin/amd64-freebsd/dvispc
name dviout-util.amd64-netbsd
category Package
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dviout-util
-containersize 67096
-containerchecksum 35199b82c73fc49fb81dfd1c38f895d8d1fddaea6594b7b61992d71035cd542bb03c4b9bc995bd2b1efd1ad3ceb8429b7094ecdb89e1a0f115c9c92350725556
-binfiles arch=amd64-netbsd size=48
+containersize 67980
+containerchecksum b39b7c2f8b49c976e710d6ddfc372416ec6fbaffc52d20e86177ded241a666d29e3788c15ea2e29e48313e7de992324ecf199da7fa8ab8482b52dee6b5d1ff3b
+binfiles arch=amd64-netbsd size=49
bin/amd64-netbsd/chkdvifont
bin/amd64-netbsd/dvispc
name dviout-util.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of dviout-util
-containersize 61864
-containerchecksum c6c89150409f89a0b196dbe8613387750fd322cdbf2b31a770148c5d8f09af10aede71f5d2e6ce3c92da7e3f7a136fa55a4c16ffc7373f5f23c92aab588f8080
-binfiles arch=armhf-linux size=35
+containersize 62948
+containerchecksum 719cd41e20b57fb2c4bfecf9746e28fe7915f3a35c4ef4a1d7078d6efec0f00115f3731c26c96fe3abaacaf0eba8f69bf3e1d7f17219a3340802bd066fbc879a
+binfiles arch=armhf-linux size=36
bin/armhf-linux/chkdvifont
bin/armhf-linux/dvispc
name dviout-util.i386-freebsd
category Package
-revision 65877
+revision 70276
shortdesc i386-freebsd files of dviout-util
-containersize 73516
-containerchecksum bb530f023790e03a46177edc66e1800a4ef1758f75706de262b601e043ca880c79760ab1289273f149905b29a07a1f12e36f1fefd84dae6e72de28fffe48b933
-binfiles arch=i386-freebsd size=40
+containersize 70848
+containerchecksum 06316d7ea19c5ba538b492fcb8cc1d4e8a9924d1b093572492913a6d0940c73b54f8c9d7995324378778032552d80901a1076e31a60374d60c14f29511a3b3e5
+binfiles arch=i386-freebsd size=51
bin/i386-freebsd/chkdvifont
bin/i386-freebsd/dvispc
name dviout-util.i386-linux
category Package
-revision 65877
+revision 70276
shortdesc i386-linux files of dviout-util
-containersize 78016
-containerchecksum 2989a69c51ccf78120a4a68d07701f2b3b2da1b286b078714357e90567bb4cc6082076c611ec8c3deb4c790367f68a5f8a300d7d810f21913597018c87b1c1b1
+containersize 79172
+containerchecksum bf690ce48b8a09a5900992824a516873fbf83c567872734e18b5671642879162af77779d9b2f4dc73fb83c3f7f070ca4c1ed457bd3dded227ca9f1d938bda681
binfiles arch=i386-linux size=46
bin/i386-linux/chkdvifont
bin/i386-linux/dvispc
name dviout-util.i386-netbsd
category Package
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dviout-util
-containersize 62136
-containerchecksum 962b0e89dcc2d8e4bee20818a9af73d7594977ee0b8f2b32ae91d95fc77746459ec9b052fb324fd74c4d6205e52d9325f298ee25bf1de2d67798a2886d6d500a
-binfiles arch=i386-netbsd size=44
+containersize 63084
+containerchecksum 14d0846555c43d323bd0996523b81a5872e2d575ee350fe4ae6976f3eff66a8a4836d9ccae3c061d7c340dba605dab9d60b278fd409a7ebb25b518cf04558844
+binfiles arch=i386-netbsd size=45
bin/i386-netbsd/chkdvifont
bin/i386-netbsd/dvispc
name dviout-util.i386-solaris
category Package
-revision 65877
+revision 70276
shortdesc i386-solaris files of dviout-util
-containersize 74904
-containerchecksum 9661e8d4de76f3f26be12d08d1eb184776ef4d88dfaa80c59383a166ceaf6169628672f5adc181131be9ff807ba2ccf6c93417933d50ed600a82211080914df0
-binfiles arch=i386-solaris size=41
+containersize 76988
+containerchecksum 996053a5b771fd3b0c06583d12a2ce0e64ae80c09b25dc8ea343bc3926b470dc24f15721e707dc54614696f6098832ecb80fba3691fa092ae292b44fb893a081
+binfiles arch=i386-solaris size=42
bin/i386-solaris/chkdvifont
bin/i386-solaris/dvispc
name dviout-util.universal-darwin
category Package
-revision 65895
+revision 70274
shortdesc universal-darwin files of dviout-util
-containersize 135632
-containerchecksum 6309f14f25c40bdae789cd9604e8dbc4580b6ad515d2b7fbb60536f33053268beb70cb9c1d50034fa42ed76fc4417711bf1a862d5a222c8713a027b57a575070
-binfiles arch=universal-darwin size=134
+containersize 137912
+containerchecksum d8ae5660c51b8ab6ccbd4728083611fb4313fc6af4d7074ecdfa323546658eb92ca4bf2fab631ebfc6d91f66117ca29c243ed8e5356d0e623af5926b0230b7c3
+binfiles arch=universal-darwin size=138
bin/universal-darwin/chkdvifont
bin/universal-darwin/dvispc
name dviout-util.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of dviout-util
-containersize 41852
-containerchecksum 6b57728f379b1f390c60d4f2e159d339c239cc29f160f036f25286386e75648d6002e333ccedfea83b0a45b47cf0527b617e57d971a837f1ef53cee64e99e23f
+containersize 41908
+containerchecksum 985271fbd3212195f51b012bdd4ddfd6b19b33e58a700ba1b4d3b8ab69d76d7ae4093fd4af6aa82347f79b5baefb9b32c5da2689a260079fa18d0cc021d221a8
binfiles arch=windows size=22
bin/windows/chkdvifont.exe
bin/windows/dvispc.exe
name dviout-util.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dviout-util
-containersize 27676
-containerchecksum f68e65a248a281ed00a357304e1aff69fefc08c8c9817387401716cfe982bf7d88e8a380467a6b83c7b91f2192a7a3a6942b5d9b7ab60c15fe8b654caeb73cbf
+containersize 27780
+containerchecksum ede6704b9a6c41c8bae1d3f4420585d4d922e100aecb4096dd192911a80244bb460aa48aa1e1b6d3956dc08029bbfcf04359eb19151218d1850603fba9ca1724
binfiles arch=x86_64-cygwin size=18
bin/x86_64-cygwin/chkdvifont.exe
bin/x86_64-cygwin/dvispc.exe
name dviout-util.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of dviout-util
-containersize 72284
-containerchecksum 55acea6994188c4879bb10fe912ecbbf3e7598aa07b92131dbd5343950b80fe3901438fc19b08da516d0eecec8e0d1ab009dd370ca0e596316ec06ca0b6fdbd1
+containersize 73656
+containerchecksum 82cf32cc30d7fbed42eb80e562cd2b1a30f9398530e2f0ea2c81d57de9c816d0ce308c69e849aca20197d033272dde3cedd16e1be5d51c2bb688f7802ff06fb7
binfiles arch=x86_64-darwinlegacy size=41
bin/x86_64-darwinlegacy/chkdvifont
bin/x86_64-darwinlegacy/dvispc
name dviout-util.x86_64-linux
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linux files of dviout-util
-containersize 75440
-containerchecksum 09934d2ffc9cb529d0a4478d075ea2f1667d0873b23d74cb4fdb6a624873afd8366eff6d2e222b469f15b3416dd1c686dea9cba0ea6032b5da1106b258b9b111
-binfiles arch=x86_64-linux size=44
+containersize 76408
+containerchecksum db39580b032c991051fcbcd307637fafdc8b9f521d589e3f736bd90e9c9e581c0afb83f0868d3bb7da7068a9021a76e172abb789beb32af32e185eaf4bafac8d
+binfiles arch=x86_64-linux size=45
bin/x86_64-linux/chkdvifont
bin/x86_64-linux/dvispc
name dviout-util.x86_64-linuxmusl
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of dviout-util
-containersize 77000
-containerchecksum 02c80b00aa280a02be1f287002bfb8fcb882a3f3c3881059b94d7dd7a3aa3ce883e49c337c44956c8e4adb453681c73c4ffd87c3a036baefade4a2fd87e056d0
-binfiles arch=x86_64-linuxmusl size=43
+containersize 78352
+containerchecksum 5788da984717d34b9af3ae853009c287e1bfb82030008a35fced748328f9933012d6d42a096fe4b055f69ef97bd91ff9e00bcbda4fa2ca3ac72f8f6b3485eb6a
+binfiles arch=x86_64-linuxmusl size=44
bin/x86_64-linuxmusl/chkdvifont
bin/x86_64-linuxmusl/dvispc
name dviout-util.x86_64-solaris
category Package
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of dviout-util
-containersize 78996
-containerchecksum c55b6b8079dfb21dbb68fd7e16430bec203c2263ea85881f527651cf665e95aa91bb45f1d6c286bc94f470a352622ffe448c8c5e35480658a1dbc1c1e7294a41
-binfiles arch=x86_64-solaris size=45
+containersize 81960
+containerchecksum 6a725fbd117a89a3b51fc5983c9c775574613c5ca991692cc1c1bbbd5b83679afae6ca3ccf0201ed37fbcc0ff76bfa747a88f1c2451e8ae122c72a3ee82643d8
+binfiles arch=x86_64-solaris size=48
bin/x86_64-solaris/chkdvifont
bin/x86_64-solaris/dvispc
@@ -104580,11 +104960,11 @@ catalogue-topics dvi-pdf
name dvipdfmx.aarch64-linux
category TLCore
-revision 65927
+revision 70489
shortdesc aarch64-linux files of dvipdfmx
-containersize 407620
-containerchecksum 7220211e7fd17bcf77d86fe7e100046418de3157085df28feb98d189a611f0adc7fbc55404cf0afb384b79496074f2e55b33de02d4d9723c7afb967e8f03de00
-binfiles arch=aarch64-linux size=273
+containersize 412872
+containerchecksum 869f12ecd59645f8b310e2e5bd76a48d80a0a80847e40b714d3d1feae8312957a4fda4bed4f43ef1a937c3a547398db87934fa6fbdc823d056784b260c39d2b3
+binfiles arch=aarch64-linux size=277
bin/aarch64-linux/dvipdfm
bin/aarch64-linux/dvipdfmx
bin/aarch64-linux/dvipdft
@@ -104594,11 +104974,11 @@ binfiles arch=aarch64-linux size=273
name dvipdfmx.amd64-freebsd
category TLCore
-revision 65877
+revision 70489
shortdesc amd64-freebsd files of dvipdfmx
-containersize 454048
-containerchecksum 0415ba0fad276cd3f589a62208c7a4a0f0eda21b5629e7e7a100136e74fc7e54aad4fe8e6f2bc89148924784fbf2efcdcf77b69078386069e135313e7f8ec654
-binfiles arch=amd64-freebsd size=277
+containersize 398084
+containerchecksum 7fe9a8a03a1a56f7a8a88a5622878b5632772f5be68c4e9538fed2aaeaa427743adaa2ee804c81df92274c5962dd7048d316c3a3eda92da727ed14adf4fecd80
+binfiles arch=amd64-freebsd size=347
bin/amd64-freebsd/dvipdfm
bin/amd64-freebsd/dvipdfmx
bin/amd64-freebsd/dvipdft
@@ -104608,11 +104988,11 @@ binfiles arch=amd64-freebsd size=277
name dvipdfmx.amd64-netbsd
category TLCore
-revision 65923
+revision 70499
shortdesc amd64-netbsd files of dvipdfmx
-containersize 390372
-containerchecksum a65d2f9e976e9c74821c13c498643a9f34a411d8e28a610a9a38563482982386ca490153d26a215553f7e87167cf7b07a3a36d584dcfbb31f9838e81847df013
-binfiles arch=amd64-netbsd size=340
+containersize 395992
+containerchecksum 13fb3be5d9ec80ee0fa0e12b766f6d2ff1326f46f809940c793a837859415f62e19db72fefb96ed8dfaed283cd61be954b8e11f9478d9ac89a631b21ec47c1fb
+binfiles arch=amd64-netbsd size=346
bin/amd64-netbsd/dvipdfm
bin/amd64-netbsd/dvipdfmx
bin/amd64-netbsd/dvipdft
@@ -104622,11 +105002,11 @@ binfiles arch=amd64-netbsd size=340
name dvipdfmx.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dvipdfmx
-containersize 344184
-containerchecksum 8a273a17f3164a4931395d6adefe88edfa4c56c5dfdc886304e2cd4050aae112f27527c177dd5caab040c3e96cb722f9bfeae48abc0d3b4c4987afa70c840b73
-binfiles arch=armhf-linux size=214
+containersize 349384
+containerchecksum 98c4232a93f5c7e49eb1a9beeb6c351b2e876e20fafd7aa62cf33693279bc78d6c7aa64d81afc6ad5e1cb10701f6ead0ec6dfbb1e6268857f31b1d8df41ba039
+binfiles arch=armhf-linux size=218
bin/armhf-linux/dvipdfm
bin/armhf-linux/dvipdfmx
bin/armhf-linux/dvipdft
@@ -104636,11 +105016,11 @@ binfiles arch=armhf-linux size=214
name dvipdfmx.i386-freebsd
category TLCore
-revision 65877
+revision 70489
shortdesc i386-freebsd files of dvipdfmx
-containersize 406340
-containerchecksum c70caa4499289cc6b89625251542af9aa4d327535c617b129429de22bb2c4c545a7add4e0170e6b6babe799d7a110221030e30a03b160047281aebbe1db4ec64
-binfiles arch=i386-freebsd size=249
+containersize 399344
+containerchecksum 22c24ecc118a3ef34ebdb312fd14336f04c5d180ec82508a90cf737a1f945d916889a3d6d5213d2a09c355fa41fda2d3cac2da30fb438aea921fd015a389d15a
+binfiles arch=i386-freebsd size=347
bin/i386-freebsd/dvipdfm
bin/i386-freebsd/dvipdfmx
bin/i386-freebsd/dvipdft
@@ -104650,11 +105030,11 @@ binfiles arch=i386-freebsd size=249
name dvipdfmx.i386-linux
category TLCore
-revision 65877
+revision 70489
shortdesc i386-linux files of dvipdfmx
-containersize 464008
-containerchecksum 497bb15e79b45a2ea89f6e2ddeaf6f04f1e31b3c8e964b717ec7a3fe7f15b563f5588d8ae2a1879e181d3f11d97080fd163adc5c7180136796aaa18cc62b1ea9
-binfiles arch=i386-linux size=295
+containersize 469944
+containerchecksum e0be25b2194b3c0f7e627dc388fb7b21485a639555ef11a4627feec80fe1857f5e0103d76bc1fe807323671fedbed318f7dcc50d0bd4b12561724f5cc988acff
+binfiles arch=i386-linux size=300
bin/i386-linux/dvipdfm
bin/i386-linux/dvipdfmx
bin/i386-linux/dvipdft
@@ -104664,11 +105044,11 @@ binfiles arch=i386-linux size=295
name dvipdfmx.i386-netbsd
category TLCore
-revision 65923
+revision 70499
shortdesc i386-netbsd files of dvipdfmx
-containersize 362396
-containerchecksum 98eb00440f3b1e63e9942e584843206c29354e5a8f3a0ecd3bd7ad7d0b68fe0289a4a12f1249c9933a13437230a976e984db5fcb0365b687172047b766bc18b8
-binfiles arch=i386-netbsd size=313
+containersize 368092
+containerchecksum 42c2525ad523572a2c3074749577049260b50e50c93fef70e09e3024223184182173978804d85d7c592e413ed337ac883ca3c7a3d0d7310b8c606494eaae1b92
+binfiles arch=i386-netbsd size=318
bin/i386-netbsd/dvipdfm
bin/i386-netbsd/dvipdfmx
bin/i386-netbsd/dvipdft
@@ -104678,11 +105058,11 @@ binfiles arch=i386-netbsd size=313
name dvipdfmx.i386-solaris
category TLCore
-revision 65877
+revision 70489
shortdesc i386-solaris files of dvipdfmx
-containersize 411028
-containerchecksum 972622aa085491f82c831023896e1cf6dc2f66d68f33a63a6b58808b4768b756cfa18ecfd6389aae2b35eae593c4ac018de55a73a2ace61def0d67713efa1344
-binfiles arch=i386-solaris size=240
+containersize 427836
+containerchecksum 540a103a0a4da58013044de2eed655dadd3a2e07a6d90149ab5fb3e6aa7a6f739b04194c143fab406a54ea77d1ac07fda464407a70bd1a5939e5d351cd51119c
+binfiles arch=i386-solaris size=254
bin/i386-solaris/dvipdfm
bin/i386-solaris/dvipdfmx
bin/i386-solaris/dvipdft
@@ -104692,11 +105072,11 @@ binfiles arch=i386-solaris size=240
name dvipdfmx.universal-darwin
category TLCore
-revision 65895
+revision 70520
shortdesc universal-darwin files of dvipdfmx
-containersize 799100
-containerchecksum 7d01ae316f40dff3f9ec62a54e2201588adbf1fb115d48cb877634ce1058b12f3dd2e8ea027a7754b587a85d64968ddbe17d5be87bc79137f7fb422e41b24bcf
-binfiles arch=universal-darwin size=527
+containersize 805944
+containerchecksum 8e1fdb27229c951a0bf0954141cafa7bda5507f5384db4895eb59a0a2c9726b4f58a297abfae66e048169865c076161ceb782fca7c19832589f52a9238929fee
+binfiles arch=universal-darwin size=535
bin/universal-darwin/dvipdfm
bin/universal-darwin/dvipdfmx
bin/universal-darwin/dvipdft
@@ -104706,11 +105086,11 @@ binfiles arch=universal-darwin size=527
name dvipdfmx.windows
category TLCore
-revision 65891
+revision 70450
shortdesc windows files of dvipdfmx
-containersize 349000
-containerchecksum c5ca4d9570e615e452b3074837288c7311d97dd5d0cdb9fa7764eebf00ee9852877b056f9b13b7826d051d46dece4e62a29ff193e7df23630b95bcb98b1bc3c1
-binfiles arch=windows size=295
+containersize 353704
+containerchecksum c0564ea9e6d0830505d42e1bc47ff184ba9d15b43e14141a2f1b21a1a3ad4c75f681d719553cdf66d2540c3a4854f1f0b73bf183116c97d9e667fd2f59d01cb2
+binfiles arch=windows size=300
bin/windows/dvipdfm.exe
bin/windows/dvipdfmx.dll
bin/windows/dvipdfmx.exe
@@ -104720,11 +105100,11 @@ binfiles arch=windows size=295
name dvipdfmx.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvipdfmx
-containersize 405336
-containerchecksum 72fe5b14aa417be4b7b46798388168247b014652722ec049db60363f11867de169515af77a75e7eeb4471a2ba4e2784b063303e631b3072ef590e77d1a1e5d64
-binfiles arch=x86_64-cygwin size=245
+containersize 410760
+containerchecksum f2fb7a81828fac071db3fcaed75860e7156c8293afb672bdc60e8617541b4fd6560487fb13747b24276a65165a87f817cabbbbfeee43cfba23e04fd0dbf2017e
+binfiles arch=x86_64-cygwin size=249
bin/x86_64-cygwin/dvipdfm
bin/x86_64-cygwin/dvipdfmx
bin/x86_64-cygwin/dvipdft
@@ -104734,11 +105114,11 @@ binfiles arch=x86_64-cygwin size=245
name dvipdfmx.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70489
shortdesc x86_64-darwinlegacy files of dvipdfmx
-containersize 406960
-containerchecksum 0452646e5bc17f36bfec509b7a0c784e1d282d9202d6c15721d778622cfbe503629f8b591f8b3c1c4124c7cc5c7cdbe95a3ee202835422a6b017d83ee1d5a11c
-binfiles arch=x86_64-darwinlegacy size=241
+containersize 412704
+containerchecksum ba15f57f5f6f3e32de3f9bfd6e86cc9648cea38d0f179fdcf670c33c6322079350d268aad13bdbba954e19461549dc86cad39af2d578f13a7c6f032b1306d9e7
+binfiles arch=x86_64-darwinlegacy size=246
bin/x86_64-darwinlegacy/dvipdfm
bin/x86_64-darwinlegacy/dvipdfmx
bin/x86_64-darwinlegacy/dvipdft
@@ -104748,11 +105128,11 @@ binfiles arch=x86_64-darwinlegacy size=241
name dvipdfmx.x86_64-linux
category TLCore
-revision 65877
+revision 70489
shortdesc x86_64-linux files of dvipdfmx
-containersize 432180
-containerchecksum 7209b576dfa31575b4d51c7dced1615b5d56886b2e57eff82dfda5cb67f84eb5a018364f916efa31324723a8920063e1927af97b9c9b3f8250f330d09e9496b1
-binfiles arch=x86_64-linux size=260
+containersize 438496
+containerchecksum 7f115f9a206382c239ff082d6313000da028f5375723c3423f205f68ebf4cdf925b71dbf5830d0e1cfcc7bf53e5880918691ec34ae0ed030860abc8956680bb4
+binfiles arch=x86_64-linux size=264
bin/x86_64-linux/dvipdfm
bin/x86_64-linux/dvipdfmx
bin/x86_64-linux/dvipdft
@@ -104762,11 +105142,11 @@ binfiles arch=x86_64-linux size=260
name dvipdfmx.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70489
shortdesc x86_64-linuxmusl files of dvipdfmx
-containersize 454084
-containerchecksum af9cef76404e008dc5cbff17423ff217aef8ec826d9510eba9c21ef93d01dff2fc8f7ddadb8173dd2f030ea0e772383ef064c23f9a046126d1e8ffb26d0f269b
-binfiles arch=x86_64-linuxmusl size=282
+containersize 460516
+containerchecksum 9dbc0017181032733eb16a53f61dec557028d3baf6a1e24167c5dd4d8966ffe8450529cde7d3330157c2be6b0066165808d5980813df3748e7eda2df5b31acf4
+binfiles arch=x86_64-linuxmusl size=287
bin/x86_64-linuxmusl/dvipdfm
bin/x86_64-linuxmusl/dvipdfmx
bin/x86_64-linuxmusl/dvipdft
@@ -104776,11 +105156,11 @@ binfiles arch=x86_64-linuxmusl size=282
name dvipdfmx.x86_64-solaris
category TLCore
-revision 65877
+revision 70489
shortdesc x86_64-solaris files of dvipdfmx
-containersize 446980
-containerchecksum ff995065fdf0d82ad433ef55ca4a37314863f7b873c4aaab49afc968ae38d5238739c6c62ac1d90478a87a484b951351bafc70b2b5548550449b78232a5d22c3
-binfiles arch=x86_64-solaris size=273
+containersize 464940
+containerchecksum eaa185eea12ee04cf747f1e890da2495c0dcc8d5d9e2f559c673deee975eeb1ba958d8daf359a04fa2daa6d487cc5092a89bab3c73fff783113ca1355f430cf2
+binfiles arch=x86_64-solaris size=289
bin/x86_64-solaris/dvipdfm
bin/x86_64-solaris/dvipdfmx
bin/x86_64-solaris/dvipdft
@@ -104790,7 +105170,7 @@ binfiles arch=x86_64-solaris size=273
name dvipng
category TLCore
-revision 66203
+revision 70015
shortdesc A fast DVI to PNG/GIF converter
longdesc This program makes PNG and/or GIF graphics from DVI files as
longdesc obtained from TeX and its relatives. Its benefits include:
@@ -104807,10 +105187,10 @@ longdesc input file through this interface. Support for PK, VF,
longdesc PostScript Type1, and TrueType fonts, colour specials, and
longdesc inclusion of PostScript, PNG, JPEG or GIF images.
depend dvipng.ARCH
-containersize 920
-containerchecksum a1693423389d56570a3fa1ac1eb45bffdef5fa9bf26d738adae1ac2361fc9aa7985d4ed0908b5f8aa49e2425da9821989a61a3ac925ac4432c9caa49f66a95dc
-doccontainersize 287292
-doccontainerchecksum a4473f728047cdf06743520a5cd4c79d7aa41818c44291abf4781f04b87822b03fe5db9f42d489d7542ca259070f71a3f255507f3dc8fbe772e30da8cc88722e
+containersize 916
+containerchecksum dcb2fe47e5cdfc6d21f4fff6880e6fe8d4c9444c7e1f859a215518a06400535be129f31ab44bb47de11b131aabe5ee9d0cde8251c63f85f349bf319ce1c29073
+doccontainersize 287028
+doccontainerchecksum 333d44ac56c93e4142d3b6f7b05c432698433a886dd6eadeefb14374d3808b4be9fed9fd1c8c07f0c9dda42b2499cca7ad676acb3b61e7d21f58ccb7ffa418cf
docfiles size=121
texmf-dist/doc/dvipng/dvipng.html
texmf-dist/doc/dvipng/dvipng.pdf details="Package documentation"
@@ -104828,151 +105208,151 @@ catalogue-version 1.17
name dvipng.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of dvipng
-containersize 462524
-containerchecksum a604e747cce2dd4d6806a38585ce1de5b5b4d1d883333f60625237c5bb7354d5d328b159cea42acdc33d8fb366d06d2d968a92db48232b8ae8e23b524ec48ee3
-binfiles arch=aarch64-linux size=272
+containersize 463612
+containerchecksum f6efa820ab93ae1db436715e96758a951997805391b457705dd857f77df5633b6cec11bee9ad3b949a6bd878b2b3dd60f1228936341ae16d3899be02572ba2da
+binfiles arch=aarch64-linux size=273
bin/aarch64-linux/dvigif
bin/aarch64-linux/dvipng
name dvipng.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of dvipng
-containersize 520528
-containerchecksum 706f906cf55240c676b31ef103021f37c82d9bd337b994a27d134ca4878619a8d2ef23c041dab7e570b72f57cee30d0a9936c01f144a2c526af8d61fe44b76ec
-binfiles arch=amd64-freebsd size=297
+containersize 440424
+containerchecksum d5934ed0502dc101c412fce7a1ed82ff9f7fc69cc2397195c5d1dfe6f9c426d6a90ee2fa5b608c0fcb337a172aca37dac1797b13c6f3e2a62dda88ce641ff47f
+binfiles arch=amd64-freebsd size=378
bin/amd64-freebsd/dvigif
bin/amd64-freebsd/dvipng
name dvipng.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dvipng
-containersize 437028
-containerchecksum 991258f77ed36434daf7f10c7bb2cb5cef696ee06c2a13a7293a702d883d8244b3199b8e73f9b469a3b306b0ad13f07032f68c58e17afbda0665b6e28032d350
-binfiles arch=amd64-netbsd size=377
+containersize 437212
+containerchecksum b690541389bd5334bd078489025dbb44d3369673f89712d518a1b3750b6e4419cc56e672355c027f3d3ccd582db1a2d44c78692d9563e12db5f3558bf4f6eeb2
+binfiles arch=amd64-netbsd size=379
bin/amd64-netbsd/dvigif
bin/amd64-netbsd/dvipng
name dvipng.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dvipng
-containersize 392912
-containerchecksum ab6036df702258543d17357f1996ae524b60e84e5fe42824848bbaad9e670547bb13fa7ee0e20c7661c5149b55d555117e9c30b1d77a2ee2010a236c87b60480
-binfiles arch=armhf-linux size=223
+containersize 393492
+containerchecksum c849becf3b3b1db852e7edc55774c8abc3284d7e0e74e2fb2d9d939504ea52a59cba10f95e99ebdb7cc431a717d5cbcc535483d8d2ce7bb87a7816a46c6ef80e
+binfiles arch=armhf-linux size=224
bin/armhf-linux/dvigif
bin/armhf-linux/dvipng
name dvipng.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of dvipng
-containersize 467512
-containerchecksum eaa3ead8d9b04ab88241a31bd6fa7275e9d7541cb4afacf9d82158f9bec5a6b47fafa8655b5883fd80b71bf854755cc957f9ebd6d20dd04d20fe63a59e52db10
-binfiles arch=i386-freebsd size=259
+containersize 440300
+containerchecksum e9e4cc8b1c2d305fcf50f2efb27c2294738585d118a88df003cef5f8f849146de9ea32e3974eb9dee4a4d5d60f085979d2fc555980c47e979d579a90c42ce7dd
+binfiles arch=i386-freebsd size=378
bin/i386-freebsd/dvigif
bin/i386-freebsd/dvipng
name dvipng.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of dvipng
-containersize 509304
-containerchecksum e38023bb9c5824da4e67746b4825340fd87440c95231e093f86de430c49ce7ed698c32c5782436aca9776554568506c143f74c074f5b6a98c9d041e54cddb582
-binfiles arch=i386-linux size=294
+containersize 510396
+containerchecksum 8e9e89c5d08f506919689bd7489e02616cd02c8a67865e8aba0624c5d2ab3f2d1b40a49617fd298e2a8ae202ef6d4946cf7f92208f889f969d120174e9421f66
+binfiles arch=i386-linux size=295
bin/i386-linux/dvigif
bin/i386-linux/dvipng
name dvipng.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dvipng
-containersize 391928
-containerchecksum 0eeada5ac554cb1d569e72c49308214d4bdae44993155be4d87df4b762f3e67445f8a3e2ac0f9dfa020aa940606da5474a0604d36cdbc9149fe3f459569817dd
-binfiles arch=i386-netbsd size=327
+containersize 393324
+containerchecksum 946a7b16e055638e2422ff99cf694107ace1758a870d2f5272c5673ffea0e57858899a2abac1b900cd675038d29b1bb64317bc20af2c03f0b25e49011063a814
+binfiles arch=i386-netbsd size=329
bin/i386-netbsd/dvigif
bin/i386-netbsd/dvipng
name dvipng.i386-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc i386-solaris files of dvipng
-containersize 455412
-containerchecksum c4fbec479ea47be1eee126663be4f37aa259e9c625250b8ebb5c3bf11a8848fd00b918036a0f59acbded957bd277a1144c8197eabb20cb1870c58cc902f26cc8
-binfiles arch=i386-solaris size=239
+containersize 475908
+containerchecksum b71cb0eaa115b963ad51b0c2597a83ce98b39806dbbad5068295858429bb02db1b95656a6a27fcbc22332758cfa0205b1f75991e5acd72cee1356fb5cc6447f6
+binfiles arch=i386-solaris size=257
bin/i386-solaris/dvigif
bin/i386-solaris/dvipng
name dvipng.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of dvipng
-containersize 906612
-containerchecksum 68c715049d35f7d06aa762cdbf7ebea46f3483ac218257734ab57f064f4d19da92fe0fac2990e83c0dc514dd69c3fb99170b0cc3b82a661d2a842dd6c8d64b09
+containersize 908832
+containerchecksum f45f4bb0bf5f3eec34a4491ba0f469ccc15e86527cd5657cb3fd5b41bf390f424487aa86322ba48e29fe9b8b37f011920d4c2d6353e89882607242991915c31f
binfiles arch=universal-darwin size=561
bin/universal-darwin/dvigif
bin/universal-darwin/dvipng
name dvipng.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of dvipng
-containersize 451244
-containerchecksum 59b4c26574bdd65a8eec53ebfdd5a28da490bbed05cc02037a7af700da38d66d3e3a3472bad949e5efcc9af4a2f5e10d7a541cd6a46955736a0259244e428520
+containersize 450268
+containerchecksum defa487f9d411bf73c2128cdd0f51a2b64bdb855ba3ece58d15cb8d90cba6f558667602463cb568bbb59e9190e5323be218bad848006c2ebbffb6b74b319570b
binfiles arch=windows size=267
bin/windows/dvigif.exe
bin/windows/dvipng.exe
name dvipng.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvipng
-containersize 452668
-containerchecksum cfa33ef4c414b7a85ffafd26216b00430c0f09f2d1723d9be450c3766ce296c42d262c6e61099f201b80385a733ea180ebd6089f5881ef996a72791a16af2506
-binfiles arch=x86_64-cygwin size=249
+containersize 453264
+containerchecksum 2675cf95d0057c38a2eb9a76f0bbd5f030338c74f7bd0dd95e266085097c05c63eaebf084ce5aa40ca0beeec8211f94f1d4c8f6ccfde89a06ea20e1744a692bd
+binfiles arch=x86_64-cygwin size=250
bin/x86_64-cygwin/dvigif
bin/x86_64-cygwin/dvipng.exe
name dvipng.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of dvipng
-containersize 454416
-containerchecksum 70897fa2cab08cc645ab9d60f8da7415644e2b289a603d073bba3a786156966ebea64a60a0757504fe59f9da2394f64bc581f7fb45a88898a64cbe3eea4de97d
-binfiles arch=x86_64-darwinlegacy size=250
+containersize 456372
+containerchecksum b20f66dd76209140d7240190b3fa638cc5d34da0a22d183be3609a04d119921a5dbd6e97e4098d0698ce4eb1965e9fe93647cd982b07eb8cac3ed3f8c1437e8d
+binfiles arch=x86_64-darwinlegacy size=252
bin/x86_64-darwinlegacy/dvigif
bin/x86_64-darwinlegacy/dvipng
name dvipng.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of dvipng
-containersize 491928
-containerchecksum 9c25d48a6d33d137700acd2b87ee5553cd332a9463f4806237129fb7dd961a042191942e65a2171a886e8f62f47c683d7e27698fd562315358693016718cf36c
-binfiles arch=x86_64-linux size=273
+containersize 493384
+containerchecksum 30c9996f6e1e4de3c03d6ac5df8a9a9ec78f7acd07fe9587a5caa2639d5c715c043aea4c25037b634b5099aee94507aa305d073a0e270882a8eca2f037a44811
+binfiles arch=x86_64-linux size=275
bin/x86_64-linux/dvigif
bin/x86_64-linux/dvipng
name dvipng.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of dvipng
-containersize 507704
-containerchecksum f6d972a8b0c833f061d1a97f05cc2987f5d4fd48f1691520b3ab1b1c74174c0db885d7b18fa06b47846c5d4e5995a435b280c8dc14e7c4cdcdd5d3ba1589a499
-binfiles arch=x86_64-linuxmusl size=289
+containersize 508824
+containerchecksum e4e8cd9c01b4ad17cf043e693de1f82b3a6d4c4dd78d96172f7440d77858af69dbc410dae11b2a01de3c9cee660963d71e8d238a5dcc02c646e6b553375d5e77
+binfiles arch=x86_64-linuxmusl size=291
bin/x86_64-linuxmusl/dvigif
bin/x86_64-linuxmusl/dvipng
name dvipng.x86_64-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of dvipng
-containersize 501692
-containerchecksum f9871915e035908d16374b750640f265dcc5cc45ec81acba22eed7bbf9fe6c5adc4a1b0e7ceec92a8b9d0e640bdb017ac71e348da5bc44e4a10f8c652eb5d860
-binfiles arch=x86_64-solaris size=279
+containersize 522888
+containerchecksum e0218bfae4d78d9bdff7c288ca2207575824349d58e3499566013744b6dae656ede610a6de0cc2bf7e558581c9a213f29d5c166886948e038c2acc4d46429f93
+binfiles arch=x86_64-solaris size=302
bin/x86_64-solaris/dvigif
bin/x86_64-solaris/dvipng
@@ -104991,142 +105371,142 @@ docfiles size=9
name dvipos.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of dvipos
-containersize 43740
-containerchecksum fc2bb304757fab42f4886c0d1aa62770bb31ce7c0a4c20fcfb8628f14377b43406398d1963797d3ac9574f22718efbe72865926542627b94530ee0a5f3a313c9
+containersize 44152
+containerchecksum 64ce5b008de37f7b182b09758f4a1aed251483550b5c6d9d2625440aa083676ab8c564f92e9d9b671a3246eb1a4fbbbd14c9f11819dcce5ddb6a2e12d6415cf8
binfiles arch=aarch64-linux size=29
bin/aarch64-linux/dvipos
name dvipos.amd64-freebsd
category TLCore
-revision 62206
+revision 70276
shortdesc amd64-freebsd files of dvipos
-containersize 49248
-containerchecksum b2a2384eff5f696ae32e3548818c3340306b5202e69f01b69d003a08befedd64cbef88fcd416bf6b71789454a1508a8a0cfa4761ddc5e25e6056661e0357d845
-binfiles arch=amd64-freebsd size=30
+containersize 46416
+containerchecksum 6d5c3ca5f1badb8805a0f3234f55e12b11b32e4a6899233d7d0ba021e6860c73bb122cf8a0d5e252ea8c148134e873515d0db10a3ba9e67bd650f68bd297718c
+binfiles arch=amd64-freebsd size=37
bin/amd64-freebsd/dvipos
name dvipos.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dvipos
-containersize 44660
-containerchecksum ff0e30378606f41ee0cbd7fdd108443770e467a697dd6a592233fbc763fd641dcf1c0a62598eed4017f989ef8bca384d40a02ab2ed1b46b0d144d914d98624a0
+containersize 45064
+containerchecksum 7104fae5553df9d19f6e9569e6c8a23a7f3a99e3c57370df7c3c3cd6b69e149b2819cabb64c7fad8af7e848ac4bfe56411363759cd5986e7208ec495140fa181
binfiles arch=amd64-netbsd size=37
bin/amd64-netbsd/dvipos
name dvipos.armhf-linux
category TLCore
-revision 63092
+revision 70489
shortdesc armhf-linux files of dvipos
-containersize 37148
-containerchecksum 6e102cf44333e5e8800f376a9f9b6d1ec1a276194a441c6d14c8d966de0f381d202abe964b962f237ea41741394ba94fb3be4dd7ed3b45573d89d7ba6d0d2403
-binfiles arch=armhf-linux size=23
+containersize 37428
+containerchecksum 54606122df224ee9d6630a608f4dce3ea31b6125d4c0cfc8c8f2e9c31757445ad69447731dc32c1871619459e35e429836175a3e21c0bf01fb4a11c33c1a18c4
+binfiles arch=armhf-linux size=24
bin/armhf-linux/dvipos
name dvipos.i386-freebsd
category TLCore
-revision 62206
+revision 70276
shortdesc i386-freebsd files of dvipos
-containersize 43628
-containerchecksum a1eae704490d8fd3ef362fe35fe80a27a5f5d5c6b3517305eb2f2fd315275cf188b3c8bc922ffe986139aecd4f7950dbf4f3307ba022d6e742805d82fa09469c
-binfiles arch=i386-freebsd size=26
+containersize 46280
+containerchecksum ad5407943d36eb7923e218ec25cfddb9892f4f13536496eb0fdc604c31b28e57cc5ac3e72ff9fab04cbaaa46d6173f7eba9d5751e05d1173a78d118164586524
+binfiles arch=i386-freebsd size=37
bin/i386-freebsd/dvipos
name dvipos.i386-linux
category TLCore
-revision 62210
+revision 70276
shortdesc i386-linux files of dvipos
-containersize 49336
-containerchecksum b47c2631eb0022851227320165973e162235add85d3d7fd52a0c60cca40284857939245cae871f10442342c8e0179c4d6306e4fe449207237c504663ee4ccee6
+containersize 49772
+containerchecksum 83fcaff9f34f2dd2ce77c63e63d5c863673c0077ad2e24b057bc0ca2dbcc7d65f7af2bb2e8d33b520d3c899e1c0b82931d51a536167c99535757c68435668949
binfiles arch=i386-linux size=32
bin/i386-linux/dvipos
name dvipos.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dvipos
-containersize 40036
-containerchecksum 57e93a8f311315dffc938d45b7f895144d77de9def91521c691974f7b730ff421d2cf22f3d66312efc156a209ce41b6b755aa0046ad2adf2f20060376c5d14e2
+containersize 40424
+containerchecksum fb0ffff4c750c234523b6e1fd37b31d0f45a61fb4ac3e2ca3179c0ed3d14dee181dbba2d3de6596dbfeed2759bf55af72610be6c33293adb019eb40b0593fea1
binfiles arch=i386-netbsd size=33
bin/i386-netbsd/dvipos
name dvipos.i386-solaris
category TLCore
-revision 62206
+revision 70276
shortdesc i386-solaris files of dvipos
-containersize 45468
-containerchecksum 3242a2396ac15771963d5739553085151460642d217134aee8d226f7207414b142847783005b6c1f48588b9a58cd1a1612b5d131288349c70b9de588d8343344
-binfiles arch=i386-solaris size=26
+containersize 46940
+containerchecksum 0f15221b11ad15768055163a0b46e0d766316c9700eda74dc9e0409abb0f79d1ff551b27aa3be841f732e51622fca10d1a463e30a1e770a74b2893e66448f72a
+binfiles arch=i386-solaris size=28
bin/i386-solaris/dvipos
name dvipos.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of dvipos
-containersize 90264
-containerchecksum 353d412cea2341f73972d5c51eb455a7d8ab93f62136840b1a1e13a44e008ff2d5f626bb20a92e243a11babf20744c6ad1d59ecca77a9438446c10e2771cecb3
+containersize 91180
+containerchecksum 1ee13088d73271cfbe4bb7adc331dc3da5889660fb9e28cb51db1a92053ca3a90af8c009588745f9eb1fa37a094266bc7445e051bd305deba9059b8f4202af47
binfiles arch=universal-darwin size=79
bin/universal-darwin/dvipos
name dvipos.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of dvipos
containersize 18212
-containerchecksum 3fcf020bd971b948d2debe846c3d0e157ffca2d5b70d48743b3d82f87367e0ccad2e9db0c1bd46beefcee87180797f5bccd6e2659c4a0dbe676f4e547fc36779
+containerchecksum 7faa1bf1327db5905abf305cf2d77519e46b1fe5329af680387f487e22408d9e591324331f70dbef4b9896b019ecbbdd5b127655d121c376efd7280f8d4c7c7c
binfiles arch=windows size=11
bin/windows/dvipos.exe
name dvipos.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvipos
-containersize 18408
-containerchecksum d37d05f778e734c756c5967b21c4c1c68e9fd5af8a30a1056f049c03d1dac15808ef63720f069dd52a4829a5a7213b31afb40ca83234a787e41a87b2f1a1ed13
+containersize 18360
+containerchecksum acafadbda381209d7c8e58524f459df81085c1f9bb8e6da9a3f1324421531631ea23aafaba613cfabdd9996a9147c0eff443fe70fe5e2d99b6439b7fb3ae8c28
binfiles arch=x86_64-cygwin size=12
bin/x86_64-cygwin/dvipos.exe
name dvipos.x86_64-darwinlegacy
category TLCore
-revision 62206
+revision 70380
shortdesc x86_64-darwinlegacy files of dvipos
-containersize 46024
-containerchecksum 7d2c15b4d19aea6c8f917c885580c5b312a6c707884b20436957098913ab1aedd2082742c87eb44b0246a76d38313cdf0d1fbe12377f6a19ebd400b29e3f3be6
-binfiles arch=x86_64-darwinlegacy size=28
+containersize 46568
+containerchecksum 93aad2a1d8660aa99901d40f60d5698fe2c367984ba7219815b1b7a5189943c6f4a7d3e068769aa48af346d8e2927318870045bf8c733f0d0da977d4d91cf24f
+binfiles arch=x86_64-darwinlegacy size=29
bin/x86_64-darwinlegacy/dvipos
name dvipos.x86_64-linux
category TLCore
-revision 62187
+revision 70276
shortdesc x86_64-linux files of dvipos
-containersize 47140
-containerchecksum 70cb48792897b5efc90a0679c9d2121aa948550fb144fc496fd409bd4c5c5e6750f38ead9314e8335dc24f49b86b9bb824efd776730e0281debb1786cf6cc580
+containersize 47528
+containerchecksum d88a6315b5b0ee6687b48a17b4290de7e70d74a106185f5e1c6fb5d85cbd4d47ce84f068ff976334c9c0d40e09ecb830bbbad4666ecd8b28bdd77f4e09871d70
binfiles arch=x86_64-linux size=29
bin/x86_64-linux/dvipos
name dvipos.x86_64-linuxmusl
category TLCore
-revision 62210
+revision 70276
shortdesc x86_64-linuxmusl files of dvipos
-containersize 50120
-containerchecksum f488016ecb5057a7ede21405945ea7e8bd4691b5642986bab99c907adb5416f78c87e8000a31af3e90d8c36b4f83fb2153bf8e76541ec2c8bfd08e3499031c75
+containersize 50624
+containerchecksum cc4e67a36ef3b6f11a7a7b832db5a0e9db7521af7937a77c9dc3df20394205453d7214d036d995f1d2fabb92174552e6654111d0433a82b75045071a8b32515a
binfiles arch=x86_64-linuxmusl size=30
bin/x86_64-linuxmusl/dvipos
name dvipos.x86_64-solaris
category TLCore
-revision 62206
+revision 70276
shortdesc x86_64-solaris files of dvipos
-containersize 50996
-containerchecksum 88632c216f5f12b0930042dbe0ccce49faa97a2bf13a8aa88fda405b0791f0d1989f83be8547d9f0d85e9008c906c1bf3640806dde8bf5e75a16725b15fc1f0a
-binfiles arch=x86_64-solaris size=31
+containersize 52668
+containerchecksum 688611637ae9c29b6daa178e7a9c48107b518a2ff5f1c4af0e68ed420153bb5261eae20839c35e81e92d060a1123086ab423625879d9dffe0f33ff73ee38fe98
+binfiles arch=x86_64-solaris size=33
bin/x86_64-solaris/dvipos
name dvips
category TLCore
-revision 66203
+revision 70015
shortdesc A DVI to PostScript driver
longdesc This package has been withdrawn from CTAN, and bundled into the
longdesc distributions' package sets. Development now takes place within
@@ -105135,10 +105515,10 @@ longdesc separate package. For download, support, and other information,
longdesc please see TeX Live.
depend dvips.ARCH
containersize 58076
-containerchecksum fbaf1dd979ceed4f7146d8aebc31ba7d770a8389b4ac214086db5951c485a2a3e3a62b2772394c8053444dfb8de0d22b3501c2ee3ee1e4e7493a1df5a34cc275
-doccontainersize 531004
-doccontainerchecksum ac2518c20c26dcda42df79be79ed24e2c021af2084ede43f51a5589b1023c9c94a307bd0a4742880e2c89d7620b2889f3a675e30a449d699d15db98922b0da71
-docfiles size=308
+containerchecksum de67e590b11913c3f783dfa7a0af743017b3de5f37158b9faa69e44845abeae5c36a3fc34b730eb0bc7ef955b020c66baea45c0e977a46659f5070fb211f063f
+doccontainersize 531092
+doccontainerchecksum c9bf52288e085f141d2e7b3e6f5a2c6e4bf47b1609ada10294939f957b8108f39c0d7bddf0b3a1a16644b22b053a90007f6e419b2c08227dcefa0f669956c2af
+docfiles size=307
texmf-dist/doc/dvips/NEWS
texmf-dist/doc/dvips/README details="Readme"
texmf-dist/doc/dvips/dvips.html
@@ -105235,151 +105615,151 @@ catalogue-topics dvi-print
name dvips.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of dvips
-containersize 144176
-containerchecksum 6f69ea832717165b87128aa742f58d164a6207c9dcf002733531094f07f1e19790072eed58d56a17ebba396c182ad7c078c1bcd5ab152d6104b00bd878643902
-binfiles arch=aarch64-linux size=106
+containersize 144968
+containerchecksum ac7b6410d8eb591a0dbde9e05bca58e6f5264bcfa6c97a9ed8275ee51bf24c77953a45dfa3f66945480cecf2ba24a90c46b42be8041654dd118c14306a176082
+binfiles arch=aarch64-linux size=107
bin/aarch64-linux/afm2tfm
bin/aarch64-linux/dvips
name dvips.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of dvips
-containersize 159964
-containerchecksum 342eb13a100f8673601f29d4ac657b2752a9127149fa09cad5599fbbca629a3c15eef860c30e6263119e5f1e88359a92e54fc8ad8ca73eb642812b9c404c593a
-binfiles arch=amd64-freebsd size=107
+containersize 138708
+containerchecksum 5d813a9eb09a0ab7597d46e22fbb9cdb93612bba5d0a18d3a887ec6f4d28ad825d4481c44da39c36e825da63e583e9aa716126aff854b06616ae7a9ba4e6fe5c
+binfiles arch=amd64-freebsd size=116
bin/amd64-freebsd/afm2tfm
bin/amd64-freebsd/dvips
name dvips.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of dvips
-containersize 134804
-containerchecksum dab3ed3ad60ba43682763366c0f8c07d5478227d6fb52a8d8830382f89e5514bcc3be72221a96222656c5aa2dd6d6b60ce3951044f60a5b3c8f18cbd7f33a425
-binfiles arch=amd64-netbsd size=113
+containersize 135724
+containerchecksum f816387385eb59588186ffc5cf2a527e72a182ed731e6f526b7dcc03fcd709fedf4763b4e36c7923047a85cc32d4d1485c4f3bcda6903f1f6962eb417400ba5d
+binfiles arch=amd64-netbsd size=114
bin/amd64-netbsd/afm2tfm
bin/amd64-netbsd/dvips
name dvips.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of dvips
-containersize 120108
-containerchecksum 9962954d65b956abbfd97a91fd825dc2ece5184589fa013e8f784e05358b49e2f83dfd76e63c585d91d27d1cb04d6fc86b3eb0fb46530d8b5bb89812a6822ce2
-binfiles arch=armhf-linux size=81
+containersize 120864
+containerchecksum cc662ba33c8751899da5e088eb463647bc6890534a09b01f6cfc17d85886496e4d5a55116d8462e665273e0c4fd9d23294c1cc8616f618910198b87c2b4e888d
+binfiles arch=armhf-linux size=83
bin/armhf-linux/afm2tfm
bin/armhf-linux/dvips
name dvips.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of dvips
-containersize 140172
-containerchecksum 494c48c6614b1c260875b361fe1d0f52d75d565797e80aa704e53793af80b3406434c9c6e8719d8617af3dbe54dec68c32470423cc7c8acebbb6bfa8ca5692f2
-binfiles arch=i386-freebsd size=93
+containersize 138720
+containerchecksum 0df8191d3cbb2ae3ae72375350b781819b58994ec67cde603f8a47726535476a9069996ca88e0ba090ff10f6ddfc9b31f16c85c68f07ba907fbf925d1cc9efd8
+binfiles arch=i386-freebsd size=116
bin/i386-freebsd/afm2tfm
bin/i386-freebsd/dvips
name dvips.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of dvips
-containersize 150260
-containerchecksum 3e316c450dcd1432a512d917a03dc9e568aae50955b3d2fe242f3e302a9948e0577456792c689c4a825e245f891531b45a93a4620f49094223fabf0e358d041a
-binfiles arch=i386-linux size=104
+containersize 151016
+containerchecksum 09cee3d6ccb978746d8fe471e022b23f848eebd4dec15545a167ac126751c8a31961185ab2a3ef8dd7c5002fd2952758041556036923d355ef150d9869fd344a
+binfiles arch=i386-linux size=105
bin/i386-linux/afm2tfm
bin/i386-linux/dvips
name dvips.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of dvips
-containersize 119244
-containerchecksum 188439d009635f996753533a5159cd78da48849eacc4a74c726cd273eb082bf9de55004d311621b6c345ec8909377b3f924f070d62a603a2069d0381d5394c50
-binfiles arch=i386-netbsd size=104
+containersize 120088
+containerchecksum 29ac995f70b7f9fec6fae7edeaaf2dbdfb7af4a4772d87ec1fecb4a282fcbc650f1c7b490bae7152f5b214fafd599393b7bd3866fc167d8f3e040bce5de205b8
+binfiles arch=i386-netbsd size=105
bin/i386-netbsd/afm2tfm
bin/i386-netbsd/dvips
name dvips.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of dvips
-containersize 141024
-containerchecksum 9ee8083cc78b9ca3318f3e9d5553012e56866e1de7b9e7d291bad0e4c303558649f015b4c7b6324c6177595ecc4563009df1fa12ce666b69d3237a347d46c8c3
-binfiles arch=i386-solaris size=89
+containersize 145096
+containerchecksum 3ebda297d2493fdf24881e65c432a60712bc9094536a495508697c64d58f95cdc41d38c8aee8d32f59bcbd929565d5b8b14b95e5aa871d495873c01378ca95a0
+binfiles arch=i386-solaris size=93
bin/i386-solaris/afm2tfm
bin/i386-solaris/dvips
name dvips.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of dvips
-containersize 296520
-containerchecksum 0be671b3d39f8a805428cd28f72a1eab64df00dc9bdfb6dbc9e845896f000289335dbb258fa06d072009e84690f5e6e2293940d26d17af6d1a2d274266346e3f
-binfiles arch=universal-darwin size=244
+containersize 297288
+containerchecksum 6b3e73295a47c21bb71ef685b90213f619517e26077435678cbb2f854a9bd2f55dbe26b490e0e1dcd6a6734cd32153859f54d79a129c05c22127a46996e93bf3
+binfiles arch=universal-darwin size=248
bin/universal-darwin/afm2tfm
bin/universal-darwin/dvips
name dvips.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of dvips
-containersize 109652
-containerchecksum c92282cf65d8328b70b8ae12a67b1557c1082b23056be6ec7d9a1db1b11eb04fc4f3a65af478676ff2b0371ce99d7a90473dc9461317a1f07337c6b787008cfb
-binfiles arch=windows size=60
+containersize 110048
+containerchecksum 9f8553c50df8800b8b92b0759fc2f517dabcbf34468721ee980f4b897629585d0cd0dc4ff5e5766cee49a573d8b23c23551fbaf4e8db4649af8e5b7de08ee2b5
+binfiles arch=windows size=61
bin/windows/afm2tfm.exe
bin/windows/dvips.exe
name dvips.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvips
-containersize 117860
-containerchecksum 8ad05ac6a5fd0f259c71d0ea30e64dd4e4f42ddfa0c02ddead671fae6b40f8e58aebb210e7aa2a9025f4045c8d5d2d5b62bfbb46ca8c0e0f311354a925cd1924
+containersize 118196
+containerchecksum 52567213af13e2eb437f38759e05d459a09cf0798ffe8732ab055e13f9dd0af3cd6ac3b36a82be2d8ebbd4010ac150c3739fc777fe94bf70f49a46d367136222
binfiles arch=x86_64-cygwin size=65
bin/x86_64-cygwin/afm2tfm.exe
bin/x86_64-cygwin/dvips.exe
name dvips.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of dvips
-containersize 143024
-containerchecksum 54095b16ea99d8675a03f1a465397a9c5eb9f9192e97b3aae5020e87cbe93397d8f7305c3a09c68f591bce7c587880e3dac1cd8fcbd11a3b077a81bf2cbb9f2a
-binfiles arch=x86_64-darwinlegacy size=90
+containersize 144172
+containerchecksum d6efbf7a51f8e1056c74e745522870ea5f6d3a18d72b9e3eae39867ba1b08bac9a9c1e28a24d7255c73c4bbd3bcb0ce030c0f9e2797ebac1d8e46b9ffea3568a
+binfiles arch=x86_64-darwinlegacy size=92
bin/x86_64-darwinlegacy/afm2tfm
bin/x86_64-darwinlegacy/dvips
name dvips.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of dvips
-containersize 150708
-containerchecksum 0d14f44a1c7678c5116c4785b9a2874860484c568bc3da3a85427ca0a42fe1df6cd5ff224b90ac77e15ad98d829130c528e5e2e1d19e2ffbbe59c6a2c1a0f6ba
+containersize 151668
+containerchecksum cc724785344309295613a6e829423f5389d0d310f0027f2c258d2a647d397663505b38009a2b3aa992d102abaecf4af5db6c724a9405e0e306f685f5456aa987
binfiles arch=x86_64-linux size=98
bin/x86_64-linux/afm2tfm
bin/x86_64-linux/dvips
name dvips.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of dvips
-containersize 156172
-containerchecksum f400aae50fa1cd1ebeee2276394cde324cff1b7838da7063ff3fce45964d32fca19765d1e81cf20f17c4448b26fb22bb7c60af11c99f896a63db2771b2dadfe2
-binfiles arch=x86_64-linuxmusl size=101
+containersize 157300
+containerchecksum 7ab52d07c1ec9a915aae423d5606aedf8acc57d4d926e25bc4a82b2006c0f20f0d58484851c54962d30284c37aa5525ad7af2c0ed4967d199a12469a6959c2ec
+binfiles arch=x86_64-linuxmusl size=102
bin/x86_64-linuxmusl/afm2tfm
bin/x86_64-linuxmusl/dvips
name dvips.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of dvips
-containersize 157836
-containerchecksum 1f5451ca04598c4c96f0c6395e8cab8c6a369c21d21eca33e0838a881757228c2fa28b13ae3f9fd5be685439cb36c9eb934871115be52dddbe1ef2b11f22e15a
-binfiles arch=x86_64-solaris size=103
+containersize 162888
+containerchecksum 1d5767acc6f2becc97f42dd768c911b892fdb1f19134d7edf9f56afee0e4d484ead916fc6c34be202c4314369292579229891786f273487e86be3424bed496fc
+binfiles arch=x86_64-solaris size=107
bin/x86_64-solaris/afm2tfm
bin/x86_64-solaris/dvips
@@ -105439,7 +105819,7 @@ catalogue-version 1.6
name dvisvgm
category TLCore
-revision 70496
+revision 70501
shortdesc Convert DVI, EPS, and PDF files to Scalable Vector Graphics format (SVG)
longdesc Dvisvgm is a command line utility that converts TeX DVI as well
longdesc as EPS and PDF files to the XML-based Scalable Vector Graphics
@@ -105456,10 +105836,10 @@ longdesc the kpathsea library. For more detailed information, see the
longdesc project page.
depend dvisvgm.ARCH
containersize 888
-containerchecksum 94bcb0d873e30ca7d876eb28dc9951462fc28d6961beb11dd8b33fdb0c265614f506d27abfce6b8a540bee55bc489ce2243690341eaa509ba329c88ebcdc28ff
-doccontainersize 109784
-doccontainerchecksum eee54ef41b2962cad615be1b6082e99087a3790ac057d280481ab1fbc50f3c525c732cb038dd324b757c0cc738e0a26a0193faa79637125858ffea285be61196
-docfiles size=43
+containerchecksum 03f0c9875a710b4dc3b74ca05fec67305709387331af8b68b89751ec57143b319d8f05bd5f78af251230060d809dc0a3b030ed59292df5a4bfd6be12776b56a6
+doccontainersize 113876
+doccontainerchecksum 5645360b0bd65c51e852191d9f44f863bff22401b792999efcfc5cb68a0b9e5730a08ec59d800f25c65a4ab2151a42b51e67b4baf8b8d4380205bf71558d8724
+docfiles size=45
texmf-dist/doc/man/man1/dvisvgm.1
texmf-dist/doc/man/man1/dvisvgm.man1.pdf
catalogue-contact-announce https://dvisvgm.de/News
@@ -105473,137 +105853,137 @@ catalogue-version 3.2.2
name dvisvgm.aarch64-linux
category TLCore
-revision 66547
+revision 70577
shortdesc aarch64-linux files of dvisvgm
-containersize 1702680
-containerchecksum b582c8d2ee5860faf97ba646cda3c096aa3191d3ab8859b13f096ad8b5787b907c51dd9d0d808df131b9de7064837fccec2d81da46035bbe37298aed3f737065
-binfiles arch=aarch64-linux size=1130
+containersize 1731212
+containerchecksum 51362e25499612bc892541fdffa47f09a8c3731373e5f22dd4da3ebfe03b79eb58fc29fa89af8b5e0fb8876f5a5ff8eaab01b613aef801a8b82d352753a55c6d
+binfiles arch=aarch64-linux size=1155
bin/aarch64-linux/dvisvgm
name dvisvgm.amd64-freebsd
category TLCore
-revision 66547
+revision 70489
shortdesc amd64-freebsd files of dvisvgm
-containersize 1549368
-containerchecksum 968dfab05f46298216749d6d39222d80f89ae22cfb4d35ec011db234ac81ffea3fb9f764f89d33e3052f3fb37ca0d0c4cb9c58a96c62724d97aea8b44d4f1774
-binfiles arch=amd64-freebsd size=930
+containersize 1960204
+containerchecksum d094696e3b0e578dd2c421d08d22b39e750a00b7a7abd1bd004f796ebf0d7e661c9ee85ddca3261d71fa5022006f381c387d92fd9fdeb77c9247939a6f12635d
+binfiles arch=amd64-freebsd size=2468
bin/amd64-freebsd/dvisvgm
name dvisvgm.amd64-netbsd
category TLCore
-revision 66541
+revision 70499
shortdesc amd64-netbsd files of dvisvgm
-containersize 1869496
-containerchecksum ee28fb53090b219eaa300bc71bd61043e4f23dafacc7af1e4949a557208d89258b74650419d45d72eb1a0c713ea6e35fc5c468ee22d34ec3ba7dfa927e2ec73c
-binfiles arch=amd64-netbsd size=2316
+containersize 1896944
+containerchecksum 5a27a05cf5a9bd618d6f15ad092b5325408d0c3b673fdf8d6aaf372aca67f745ebbf1c0c9b9ea5e3bf494ca54e1ff97b364f660c820caed908423c4131c2b22f
+binfiles arch=amd64-netbsd size=2412
bin/amd64-netbsd/dvisvgm
name dvisvgm.armhf-linux
category TLCore
-revision 66547
+revision 70588
shortdesc armhf-linux files of dvisvgm
-containersize 1543056
-containerchecksum 95a315e69a9de0a1aa057cca856a6419ba7e2e8ee3f028280c4baf24cccf189b74a5954b32eef705bda7cbfbb9898b0527806e00d4cbceab8fb968a234dd15bc
-binfiles arch=armhf-linux size=964
+containersize 1568560
+containerchecksum 9ecc33c4ae62284648a9d7871ec18c6629d50bbe45c76dd54dba7e7ca9c0aa86ca16e96f064686e86aa4fbbbdf0373639dcfe1e45d960050a42a87d6979ce057
+binfiles arch=armhf-linux size=990
bin/armhf-linux/dvisvgm
name dvisvgm.i386-freebsd
category TLCore
-revision 66547
+revision 70489
shortdesc i386-freebsd files of dvisvgm
-containersize 1523772
-containerchecksum 2c2d8a90ef620dafde823670e0c04608b95039e4968efaf35f132e3d03dbddd89dea95402e6a375dc220db7f7c5ed8ab5c2c7c9dcecd5bdb0afe24349693af0a
-binfiles arch=i386-freebsd size=893
+containersize 1963232
+containerchecksum 64ff587affe279f062cb46313c81e91a45f336ca879da34383aaaf7cd7f7ac9528d71287b2df97a4e473c90b3f46aa36b545768077a99662e0bdd4aa21d41225
+binfiles arch=i386-freebsd size=2468
bin/i386-freebsd/dvisvgm
name dvisvgm.i386-linux
category TLCore
-revision 66547
+revision 70489
shortdesc i386-linux files of dvisvgm
-containersize 1857212
-containerchecksum d0e0920667876e15e1a18476bf88eaaaac5e40963fa02e5e2670258da632e81ded8b48ebfa76ff8e108994702a5751760c4ad551e23e7d5947f23e645ba7d074
-binfiles arch=i386-linux size=1176
+containersize 1887320
+containerchecksum ea140dff99c1da6ea122468c841f1f8127394676df46698d7344004d9e684132e5abb094d0e4b7b729f9531cdfbb6cf2b8d4b15d11d6bbbc0e9b2a2b1d842121
+binfiles arch=i386-linux size=1201
bin/i386-linux/dvisvgm
name dvisvgm.i386-netbsd
category TLCore
-revision 66541
+revision 70499
shortdesc i386-netbsd files of dvisvgm
-containersize 1841364
-containerchecksum a09400b31128725cc190d73d6e17c18ef9a1dee3f585bf4d501e16fcee210ab1480f38b60ef70eea25d62f7944964dab5deb0adc4997a555971f1b99faf42e2c
-binfiles arch=i386-netbsd size=2200
+containersize 1872116
+containerchecksum acf0a355543bd7469e589d126bc8c35d2a8ac3b49f50ed2a156d7b4b262dba1935361f65fb20fcf4be428e834b36691a89b5c664c154ed61ce2d8e28f85c3438
+binfiles arch=i386-netbsd size=2292
bin/i386-netbsd/dvisvgm
name dvisvgm.i386-solaris
category TLCore
-revision 66547
+revision 70489
shortdesc i386-solaris files of dvisvgm
-containersize 1629000
-containerchecksum 106406a60e24cc0eef64882013ada67d98fa888ef45ac164b589a8cc983230b803e79200bb110e53c3c2dac6563ad6a8ac32b91f5e89335ef2f9d1f388278084
-binfiles arch=i386-solaris size=1007
+containersize 1655388
+containerchecksum eda3413c086ba95e7d06608b9efba1b67401aa2078cfcb86493c386952512af4aaf0a17d913c913d0183cee4e16aa91c0da89ed50602da2da3b7b9f1e901ad61
+binfiles arch=i386-solaris size=1056
bin/i386-solaris/dvisvgm
name dvisvgm.universal-darwin
category TLCore
-revision 66560
+revision 70520
shortdesc universal-darwin files of dvisvgm
-containersize 2374020
-containerchecksum 921bfc9843d18fb9938735ba05ed183bec8e653f65adf36f317a40486d6f533bba3cd7a214732c81789203510f5b3db67e857799fa033d3e5313ab9e91f05b49
-binfiles arch=universal-darwin size=1832
+containersize 2415432
+containerchecksum 3f014344a83ac55ca8375a9fee126bf37bef48f103d917156cdca48da9803845cb1aecb7fa6fa243a033237d8b3b565b4c0242edc4c4823a675529655e3498f4
+binfiles arch=universal-darwin size=1869
bin/universal-darwin/dvisvgm
name dvisvgm.windows
category TLCore
-revision 66566
+revision 70490
shortdesc windows files of dvisvgm
-containersize 1612556
-containerchecksum d623952c87a761738ce3277ad7e41663961da67d3252473fb8d61c4d199f6f083acecba0344b3b34e4d89ec6faf611aabda09a6a257a87b4d73fef252f16a297
-binfiles arch=windows size=1532
+containersize 1627724
+containerchecksum c70aa8fdaa3fca6d49e8943871e36dc8cc91ce53c5a902e8c0bf4466942d1ed48cb3712beb7a6e9f9a8abda416163bb0e6b63796aa004a9b1140b7eeb3e0b31a
+binfiles arch=windows size=1604
bin/windows/dvisvgm.exe
name dvisvgm.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of dvisvgm
-containersize 1719404
-containerchecksum 120e8ad0d6ceaec7c5f55da44abcff64b39febeaef40cd204503dd92f954ee42b325f8b6795f1d6897295f636a8c9d4f32954c51b88484bda1a181b9ad74ab7c
-binfiles arch=x86_64-cygwin size=1090
+containersize 1747232
+containerchecksum 85fa43f8f072448edb7e53cb4aff9a10aeee77625b5f6d8d90ec1b0c1083a517eed187fe8f27d4425eae13a87acbf5d2b939eddcfdfb3354574223107f9ebed8
+binfiles arch=x86_64-cygwin size=1114
bin/x86_64-cygwin/dvisvgm.exe
name dvisvgm.x86_64-darwinlegacy
category TLCore
-revision 66547
+revision 70577
shortdesc x86_64-darwinlegacy files of dvisvgm
-containersize 1467104
-containerchecksum 471d5d6fe26bd502f583e7c2ceaa5175cc52b3b8288dce69faaa9e9e242452e8ff237e8b263634cd42d5feaaf6616006f70a85e48a0fe04b038dbd3cabbbba9c
-binfiles arch=x86_64-darwinlegacy size=869
+containersize 1497068
+containerchecksum 5f1d63d03cf787e65b0685eace0cc3bb3e3e39780f2dcfb738b2d19da1254703955048995a1437c171c0756da6a95c9315b4922b21ffc8a4353ccea05e08ad2d
+binfiles arch=x86_64-darwinlegacy size=888
bin/x86_64-darwinlegacy/dvisvgm
name dvisvgm.x86_64-linux
category TLCore
-revision 66547
+revision 70489
shortdesc x86_64-linux files of dvisvgm
-containersize 1790804
-containerchecksum 27d7fd2d32c35f95a1f7dcdeca914d27bfd86ad3283aee67f00b7a638f93ce28bcaafae3274c4f140d635a19cacc5b0f60df0dffdaddd273b9b411a607a697d8
-binfiles arch=x86_64-linux size=1166
+containersize 1819456
+containerchecksum 23db5b113384209208eea63a83c6a0727862dcfd048bfa9a1ea3180cf627315e1acb12f4ed72e3f3897a0550057c9f3284054f8c301692d52614b282a4c73408
+binfiles arch=x86_64-linux size=1190
bin/x86_64-linux/dvisvgm
name dvisvgm.x86_64-linuxmusl
category TLCore
-revision 66547
+revision 70489
shortdesc x86_64-linuxmusl files of dvisvgm
-containersize 1774284
-containerchecksum 490e66c4d3d354badd4e4c0dd1087ac6627f62ef87c3bb5a541bcb362dbb1791d143a9b78e905f32f31f01f9fe143fa22d5962e381cb890e15ec5cb2d9436bdb
-binfiles arch=x86_64-linuxmusl size=1143
+containersize 1801020
+containerchecksum d08a0f2b15e9c9a8dac2c4988db79d57e2bb11ce8ce6bf162f42bab5255aaf9de86a4c3768c3f0c98510435bce0fff9acc27bac5cb246209007ac7ca98a4e214
+binfiles arch=x86_64-linuxmusl size=1166
bin/x86_64-linuxmusl/dvisvgm
name dvisvgm.x86_64-solaris
category TLCore
-revision 66547
+revision 70489
shortdesc x86_64-solaris files of dvisvgm
-containersize 1642620
-containerchecksum 27d93bb2995ff233083902e98364c396b411554ef979a3f73346ddf30cb3153805736c83585c794ee1caf2383fea0bbc559baf5854ee4533e8ef96b631c59502
-binfiles arch=x86_64-solaris size=1060
+containersize 1692404
+containerchecksum 56adfc730f66f4a90404c0a3038da3999ad5ae05bf38ed58447bc4b7f6515fb00c09a92689e8e8b9327acfbebde723aaa548f4776d6d9137c6ea142a0e2df319
+binfiles arch=x86_64-solaris size=1135
bin/x86_64-solaris/dvisvgm
name dynamicnumber
@@ -105995,7 +106375,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 70236
+revision 70230
shortdesc Easily typesetting Chinese theses or books
relocated 1
longdesc easybook is a pure academic template created based on the
@@ -106006,16 +106386,16 @@ longdesc providing multiple commands and interfaces allows users to
longdesc easily customize the thesis template. Its basic macro package
longdesc easybase can also be used with CTeX and standard document
longdesc classes.
-containersize 16828
-containerchecksum b4abd45311a400ba7812dba5ff6ca299326b1e062c4dfc301ba5e5733fbaf6ab131cc285314396003dc616f40ffb98987279e80575326d4b3258023ec6a8e577
-doccontainersize 629184
-doccontainerchecksum 01d8ce41bae5faa8f818b3a0f95c37827d6a7aa50fe5a74e7ad5e57bd40159b77351467d0c7c71f9513bef32739786078c2295ce3cf62207891f3bdba660ebaf
+containersize 16820
+containerchecksum e379230943e4ed217f76eb8c8001bcdf383e7fe0d2faa7781febc603e68200cf3d1c7dc98b85b726a6e9c3ed07d74d9ed4e1aeea438661f223672a951dddcc9f
+doccontainersize 629180
+doccontainerchecksum 16daf4464e6e21948a78c8f0424aa69e6e7b2233496130ad42c211bfa89ed40484492cee9516b14c66254f672ab5fd929eb9fb56a81dc4357bac112abff5baa9
docfiles size=172
RELOC/doc/latex/easybook/README.md details="Readme"
RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
RELOC/doc/latex/easybook/easybook.tex
-srccontainersize 16720
-srccontainerchecksum 3789d9428ff0ecb54b113d61160db88cbe86f40e097dc17d386ad471af388188a189008bc5000a27cf0643634c1bc7c8df59130c82388f1cadeb4b1ac506bb1f
+srccontainersize 16716
+srccontainerchecksum c5dccff636415dfafa129b14e32197a825302ce3985838ef9309e89a68125b00bbae13930a6814cb7cab8d774a80223bc497cc08ac231ef50783f8a411c2c8b5
srcfiles size=20
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -110865,7 +111245,7 @@ catalogue-topics collection
name einfart
category Package
-revision 70318
+revision 70313
shortdesc Write your articles in a simple and clear way
relocated 1
longdesc This package provides a LaTeX class for typesetting articles
@@ -110880,9 +111260,9 @@ longdesc word "einfach" ("simple"), combined with the first three
longdesc letters of "Artikel" ("article").
depend minimalist
containersize 5376
-containerchecksum 5e15f55394c35e033661c00295fcde0ccd424532ecdcf3c55f134ba7f990ee95961fe9b620a1addb2cfaddc97b030296b4ec9dae29a1d025aa2944d7130574e0
-doccontainersize 252568
-doccontainerchecksum 56b8b1415b0526af7610502a65d13f304f05f18def4fd4c2870be9adaacefbd6e9cf34d318f135d358a85d56eb57f4f2fb583a529c43d4ffe9bed729310ce4ca
+containerchecksum b3b34a0331f3f9096d6d3d0e37586471c2f298bf6eed4d0805b24d05d64efbaf1dfc2ea65eadfebcd1866c7d493cac92535f4b23ef13f798ef06582b251abaca
+doccontainersize 252500
+doccontainerchecksum e89f45dec8eead7063a433ff33869bbb1482841c641630435cbb28663e938eb6f83e59b7c2a9c87da4fafc37524a9203eb36d2b1302a7d68d053ffe698ccd964
docfiles size=94
RELOC/doc/latex/einfart/DEPENDS.txt
RELOC/doc/latex/einfart/LICENSE
@@ -112354,7 +112734,7 @@ catalogue-version 0.3
name emotion
category Package
-revision 69881
+revision 69834
shortdesc Make emojis more easy to use in XeLaTeX and LuaLaTeX
relocated 1
longdesc There are many emojis with long names, and we cannot remember
@@ -112363,10 +112743,10 @@ longdesc see what it looks like in text editor. Now, you do not need to
longdesc remember the emoji name, just select it from the keyboard and
longdesc wrap it with \emotion. Unlike other emoji packages, you can
longdesc thus use emojis more easily and flexibly.
-containersize 1136
-containerchecksum 17516f0c2ffee5a1045fbb11b4f49f09b3cb14ae0dd223c8427a107a625b7910ffc4085ec3937a28a4cdc58614ae41512ed1059edb0835007b8b19d6ca1526e0
-doccontainersize 35060
-doccontainerchecksum 5cf42cff3b1730fa8fe9bf5268018a2ec7d39fa599528794eb01d5906f2dc6a85be5508651d5828c014b06fa4b1efd24821fd68a6d454649b1a8d0b1aec669e5
+containersize 1140
+containerchecksum 2340b46372b5b7cf8e5066794abed29b9737caaadaabab4f9c8970a6212af8197d3e8a31f954aacab8940f87746849a35fed8c3518940dd97d5ad93dd4bfba7f
+doccontainersize 35072
+doccontainerchecksum 3c6f5c92a6f299b76c4ce5d6c08c519ab1c69c882e85f542425fcfcbf3326d857afd0eeb7511cc152b85fe9b554bcd90dc0cfb4218d3ba56ff6416d1303bd0f1
docfiles size=13
RELOC/doc/latex/emotion/LICENSE
RELOC/doc/latex/emotion/README.md details="Readme"
@@ -113072,7 +113452,7 @@ catalogue-version 1.2
name eolang
category Package
-revision 69868
+revision 69857
shortdesc Formulas and graphs for the EO programming language
longdesc This LaTeX package helps you write [?] -calculus formulas and
longdesc SODG graphs for the EO programming language.
@@ -113084,10 +113464,10 @@ depend iexec
depend pgf
depend pgfopts
depend stmaryrd
-containersize 9104
-containerchecksum 67a51c2a83fed799f07eaa226c21a50b38cf5109bfb06f7adae4933f2f9fd474bc8ac6e8528f1134273550a9834b4da6d42dd7d8274d6d76a80880b4cf221c4f
-doccontainersize 1454312
-doccontainerchecksum 752cf6a65326027af32d69cd86e1d1c703cb8f506b686cbb2964593c505813b0785352399752802358e10d6fab1e55e09554b34b3b928f43afa3c5724c1eec88
+containersize 9096
+containerchecksum 3581c5da5a97d8158e4fba0d6c6260a39e3b1141dacb63eeba9b4aac26ecf7a8e08bafa9f212bb997527a45a4a45aee051bda0c85e9d9e055a6069b946ccb267
+doccontainersize 1454980
+doccontainerchecksum 6ce37139c0e96fa0516a870e028a80033b878a2651ff36b31e03edfd5f426100eb16513566f6bd970e7b6405baaca65cec31e94e52b453e42b29ff5ee28c6d0d
docfiles size=495
texmf-dist/doc/latex/eolang/DEPENDS.txt
texmf-dist/doc/latex/eolang/LICENSE.txt
@@ -113097,8 +113477,8 @@ docfiles size=495
texmf-dist/doc/latex/eolang/eolang.pdf details="Package documentation"
texmf-dist/doc/man/man1/eolang.1
texmf-dist/doc/man/man1/eolang.man1.pdf
-srccontainersize 16984
-srccontainerchecksum dc0992ad4576ec3e4eafcbf0a4039ad3b15bc97e18dd0a9dadce418d9e2b9c29b24dbe3900142692c1248f898744bfbb6b4c59237c2df4d62fa454f535d0c6c8
+srccontainersize 16988
+srccontainerchecksum fb1f8d04a0aeb14a2151304a894fc10c150fedf510427949f2080e94cf124f22f8810a6a39acf884e28ca44357bce6ffab4f8f360e1ead841e59234c44ea68a9
srcfiles size=17
texmf-dist/source/latex/eolang/eolang.dtx
texmf-dist/source/latex/eolang/eolang.ins
@@ -113432,7 +113812,7 @@ catalogue-topics font font-type1 font-archaic
name eplain
category Package
-revision 64721
+revision 70002
shortdesc Extended plain TeX macros
longdesc An extended version of the plain TeX format, adding support for
longdesc bibliographies, tables of contents, enumerated lists, verbatim
@@ -113442,31 +113822,27 @@ longdesc Eplain can also load some of the more useful LaTeX packages,
longdesc notably graphics, graphicx (an extended version of graphics),
longdesc color, autopict (a package instance of the LaTeX picture code),
longdesc psfrag, and url.
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend dehyph
depend eplain.ARCH
-depend everyshi
depend firstaid
depend hyph-utf8
depend hyphen-base
depend knuth-lib
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-fonts
depend pdftex
depend plain
depend tex-ini-files
depend unicode-data
-execute AddFormat name=eplain engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *eplain.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,knuth-lib,plain
-containersize 43160
-containerchecksum fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29
+execute AddFormat name=eplain engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *eplain.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,knuth-lib,plain
+containersize 43132
+containerchecksum 835e20843644716fbe545a2521f504d4cb126603ca586c95b8d480c29fa25d17404d04329404a79f660b7cc96ef66e5e2e737e918261b85bbe25c0ff1a2433c6
doccontainersize 1048452
-doccontainerchecksum 60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed
+doccontainerchecksum c68ab3013ffbf2de40c8bd360d8ab0ff1c64ec60ac623e83b2ab80fc1883b1ca9823a55d731ea4491482a9892bc32681217ad59395d041bb0cdc56930c1da6f4
docfiles size=537
texmf-dist/doc/eplain/AUTHORS
texmf-dist/doc/eplain/COPYING
@@ -113487,7 +113863,7 @@ docfiles size=537
texmf-dist/doc/man/man1/eplain.1
texmf-dist/doc/man/man1/eplain.man1.pdf
srccontainersize 287948
-srccontainerchecksum 015de2eeeaec99bd15882a190f9ef3f2112520f8c591c7e6d2351c52d8690b024750adea426bcf95f438aaa20c97dd321881ac7212ff181e148337b57f6d386c
+srccontainerchecksum 42b9cc0b1489619f626b2642272576691735c35828f45a056d371b42be9c7de8a6d9d22b89e198d25bc4b6a1aa3d7b10f755ea8cecc501cb43446bc1c84a408b
srcfiles size=110
texmf-dist/source/eplain/eplain-source-3.13.zip
texmf-dist/source/eplain/xeplain.tex
@@ -115776,15 +116152,15 @@ catalogue-version 1.12
name erewhon-math
category Package
-revision 70336
+revision 70295
shortdesc Utopia based OpenType Math font
relocated 1
longdesc OpenType version of the fourier Type1 fonts designed by Michel
longdesc Bovani.
-containersize 294320
-containerchecksum f92ccc2cbb8edcdfcaa5d4c27192aeebe75cfbaa3d42077d3a1e87309b381798d8bd6836082e4302006e51d0a79e8676d0f831a790aa7436e0b992d4bdc78d8c
-doccontainersize 2004048
-doccontainerchecksum ccf0b4ee3b6914e26e485c8c292bf421da30a76a1e0dfc03f61a290186920f37163b0ff2ad1102b30049b58844f06c888d70d2f6e506ad7ddc2a0ed45ccdc711
+containersize 294188
+containerchecksum 0fe28ddc1bfafb6e274a79989f36845f02eef9fe8287dc4b3e9b74323eb8fbc5401047daf52a5171ab6de5dcb4f9684bd88c57b3b0c8850b10ba7224fc2188f2
+doccontainersize 2004056
+doccontainerchecksum 92a1bc2a4683d61c35c94a414a365e4cdecacd7a790ccf335d4d536e9592422925615d6eca3d334ca45e84e28fcffbb31666e35fb730c82b1f48529d21ebfacb
docfiles size=526
RELOC/doc/fonts/erewhon-math/Erewhon-Math.ltx
RELOC/doc/fonts/erewhon-math/Erewhon-Math.pdf details="Package documentation"
@@ -117470,7 +117846,7 @@ catalogue-version 2.6
name etex
category Package
-revision 70496
+revision 70440
shortdesc An extended version of TeX, from the NTS project
relocated 1
longdesc An extended version of TeX (capable of running as if it were
@@ -117484,12 +117860,13 @@ longdesc source for e-TeX is the TeX Live source repository, although
longdesc further extensions have taken place in the pdftex and other
longdesc engine sources, keeping e-TeX stable.
containersize 11576
-containerchecksum 3ed4f77ffb42e86877ae448acbc84d4ecc7003b9ac4f4c80e88bacd23d729db991c115a736e798245d4b81825f12247ea68ae35e4a9ec3dc6fc147b6153d0a98
-doccontainersize 194600
-doccontainerchecksum 1b5225821ea6faf8721f6ec6ebfba649d2d14496274b625daf8374ca50e72f94030fd8570e0bdef0bd8ad249f378bd4cfc4d46c1d959eec2d1af01335631c15d
-docfiles size=134
+containerchecksum 02072c3d80bb5d505c58e45b76e0aa40d0de9ad5dd79e72b0d1f5b44d9143fd280c335c7147d1330a48aa119b4dea408a9ae5fc6dc0adcaf6b2466c51fd524b2
+doccontainersize 327272
+doccontainerchecksum b909bbcf3a65593cec1588c879f1c7086d58328ee830f1cdc5ae60fec53e74e7f9c13e49cbffa86f13ccdb773432c2f9b77c1d30620fa6d3395333cb207badf7
+docfiles size=126
RELOC/doc/etex/base/ChangeLog
RELOC/doc/etex/base/NTS-FAQ
+ RELOC/doc/etex/base/README details="Readme"
RELOC/doc/etex/base/etex_gen.tex
RELOC/doc/etex/base/etex_man.pdf details="System documentation (v2.0)"
RELOC/doc/etex/base/etex_man.sty
@@ -118254,7 +118631,7 @@ catalogue-version 2.5
name euler-math
category Package
-revision 70335
+revision 70296
shortdesc OpenType version of Hermann Zapf's Euler maths font
relocated 1
longdesc Euler-Math.otf (formerly named 'Neo-Euler.otf') is an OpenType
@@ -118263,10 +118640,10 @@ longdesc continuation of the Euler project initiated by Khaled Hosny in
longdesc 2009 and abandoned in 2016. A style file euler-math.sty is
longdesc provided as a replacement of the eulervm package for LuaLaTeX
longdesc and XeLaTeX users.
-containersize 262948
-containerchecksum 331055a1c53976130824f826da975e7ec49d84b993be8a2e4330dba4ee8a48df209140879405307a3d635eb264831b790b05850ed00e8eec98d9f649443e650b
-doccontainersize 1581824
-doccontainerchecksum 31b74c70d914e16a7e4f0bf4a6d94bccdb7656b71eb5024dbe01d25f72612c22577248b3d8ab695a32e58377f315f59ad679b30ceee23f2d7b66444710062f5b
+containersize 262704
+containerchecksum cc418feea95dd9c32327dec2807e5515cdf38df533ffb237df65613557499abba1cd1983576a94a544d01833b4d71dd6434f508ff2f9d4ba2e9450267d9ce7d9
+doccontainersize 1581832
+doccontainerchecksum bbb713b3b4aec1d9cf97ba17234b8dbb5c029264519ba7f87a22e4151d0c5a2198d41dc847dd87389a93eea071737e2ffd16eb9940f023348a9207335ee5e602
docfiles size=416
RELOC/doc/fonts/euler-math/Euler-Math.ltx
RELOC/doc/fonts/euler-math/Euler-Math.pdf details="Package documentation"
@@ -119063,7 +119440,7 @@ catalogue-version 0.2
name exam-zh
category Package
-revision 69920
+revision 69917
shortdesc LaTeX template for Chinese exams
relocated 1
longdesc Although there are already several excellent exam packages or
@@ -119079,9 +119456,9 @@ longdesc separate the format and the content very well; use the choices
longdesc environment to typeset choice items easily and automatically;
longdesc design the seal line easily; and more (see manual).
containersize 39868
-containerchecksum d4d15c90b4718be8deec3042d4fcbe8ec497417a3761d8e203f6e17079c613a3ec621d58ce388f26353a5d4d668546aae40ab7d0248ae577e1609e18186b19a0
-doccontainersize 2708656
-doccontainerchecksum b00e5d88a1d801e38b3ab2fa8286b880348e99ac0f9daf8b28174a6d04b862c995331136a3236801812e05b9bf15e1288268414753b99545abed856141868215
+containerchecksum fcfcc8fceb74b8fadbda2a0f13df071f6a3e6c5c997f6feae07f8f2460f79b77f2fd6045c7c6aa32efdcadcf9fb527328d5f6d6522b988854f404827de676039
+doccontainersize 2708776
+doccontainerchecksum 59a1cd83a32d6ad024cfb6148e6e818a0a454d079af4edd45c6ddfbc5e93e8bd6e800ec84b84f679c06367fbf86e37c7ae9d130207299d40a97988e27908233e
docfiles size=796
RELOC/doc/xelatex/exam-zh/CHANGELOG.md
RELOC/doc/xelatex/exam-zh/LICENSE
@@ -119581,7 +119958,7 @@ catalogue-version 1.1
name exesheet
category Package
-revision 69885
+revision 69838
shortdesc Typesetting exercise or exam sheets
relocated 1
longdesc The exesheet package is designed for typesetting exercise or
@@ -119596,15 +119973,15 @@ longdesc and grading instructions in the margins which can be displayed
longdesc or hidden. Additionally, the exesheet class loads the
longdesc schooldocs package which manages the page layout, the main
longdesc title, headers and footers.
-containersize 6320
-containerchecksum 80b24d8740ff9d633b852fd27c2bf6c6ba00465c620780a0184fdd2c0944a3d84fb467561602cff66c96657d6feb983225f529c72419c81579aefe2a10885735
-doccontainersize 262012
-doccontainerchecksum b6e1f6534deaaf685428d83ca76716309c33f9bba4799a59d9a5223d1594989c81bdb568b4591ef3c58fece8cf4b9849c309e34b2b482478d1b4994d3edf3455
+containersize 6324
+containerchecksum 85122ce81519a49329c26797d0e44f0c52cbacf29a1ebb6f71684beda6b0e1d9b5ef23b8275419f4e788173cf6bc6d1fddd52662127e22d865c15be894a56032
+doccontainersize 262020
+doccontainerchecksum a01bf5c297629bc7a74db56f45bfeac4a78825ba20e885d2b26c5264c842236fe204923a44d7975effc99a023625849fec03c69feacf80bf1da23334c4e413cd
docfiles size=85
RELOC/doc/latex/exesheet/README.md details="Readme"
RELOC/doc/latex/exesheet/exesheet.pdf details="Package documentation"
-srccontainersize 27368
-srccontainerchecksum efe535af2043be2f2328b52c2c5fccd3aaaa1e84b839d0b793f1fddaf18b277b9cd1f325f94fd9cdd87159b28928b4ec2085830a5a1bac0daa2b31d98b165a2b
+srccontainersize 27364
+srccontainerchecksum 3e285c073c10b5c0551be6f9544c9e21df44e39c8ed89f08693bfcdea40628eb6f2da25a4b545a378ebc9596fa2295190f5ec015028b8c00f8dbbea422da6dad
srcfiles size=29
RELOC/source/latex/exesheet/exesheet.dtx
RELOC/source/latex/exesheet/exesheet.ins
@@ -119783,7 +120160,7 @@ catalogue-version 0.0.3
name expex-glossonly
category Package
-revision 69923
+revision 69914
shortdesc Help gb4e, linguex, and covington users use the ExPex glossing macros
relocated 1
longdesc The ExPex package by John Frampton provides very fine-grained
@@ -119802,9 +120179,9 @@ longdesc users to keep using those packages for basic example numbering
longdesc and formatting, but also allows them to use the glossing macros
longdesc that ExPex provides.
containersize 2348
-containerchecksum 367021fd290eda11945ba892fee935bb6c86d10427c86232acc000e409d254f410fe7a1012f1870f9c6911a2e1172dd27eae3ee922daf5804433120ccba46015
+containerchecksum 2014fc075fab46dc109a290838b9aa5e52bd0a33c370bf822ad6fb74a8d492b58b5ec1adcdf1d0532cf8a53ed3de3eec80a87e550508675e2bebc048f3e89bde
doccontainersize 75040
-doccontainerchecksum fe033244e38a76c3dc6cd3da6189980184e0dd95d74b006011881218e6a385e468c7e59c6dd0da60967f3a8a31c030a1ab70e209c054f89ff1d90e802519edd9
+doccontainerchecksum 13b1ea6059e50c1b13ce83b7723f88a78b349d442494898002bb0069efdb209055b3bdc04de73ba70fed1adc63ba87a4185526724624fd3cce15a23ddd2c4927
docfiles size=26
RELOC/doc/latex/expex-glossonly/README.md details="Readme"
RELOC/doc/latex/expex-glossonly/expex-glossonly.pdf details="Package documentation"
@@ -120443,7 +120820,7 @@ catalogue-version 2.1
name fadingimage
category Package
-revision 70610
+revision 70593
shortdesc Add full width fading pictures at the top or bottom of a page
relocated 1
longdesc This package provides two commands for adding full width fading
@@ -120451,9 +120828,9 @@ longdesc pictures at the top or bottom of a page. It is based on TikZ
longdesc with the fadings library. Welcome to feedback bugs or ideas via
longdesc email to xiamyphys@gmail.com.
containersize 1292
-containerchecksum c86ff2a9387a4a1e0713a42a6a95bfac953bdbdcd2d0a5b1de918d7f5bbdc39a00950ad7e9ad1705245a7f8f6021a4b3a676540930c81d9cddb7f87fd9bc8477
-doccontainersize 139652
-doccontainerchecksum 1350c995bc94b4d5c8a0d8c0e88dbbe1dadc82cf5b75be09be3a0c3fee90ee6451934154488d5c2a21ce8451fcc7ae8544f7938aa692f96bb133766a05b49730
+containerchecksum 796d2d66619bcff1f8ce758ae8b7b27a88e4719696273e7be3104ae0ce189fd020b02aa4ce93c76da9c78da6ed3bb052472baa7d815f1445e89e967c1dcb3124
+doccontainersize 139628
+doccontainerchecksum bf21af083b85c9f79d35a2d85ac993820aa18e8ed900a5215f0aa75b9b4fcce6cf24e73563072992239bcda2685f7adc66de0c2515dd5148c49b226a3d9ffa88
docfiles size=64
RELOC/doc/latex/fadingimage/Beautiful-realities.jpeg
RELOC/doc/latex/fadingimage/License
@@ -127753,7 +128130,7 @@ catalogue-topics tut-latex
name firstaid
category Package
-revision 70324
+revision 70308
catalogue latex-firstaid
shortdesc First aid for external LaTeX files and packages that need updating
relocated 1
@@ -127763,16 +128140,16 @@ longdesc LaTeX kernel that are not yet reflected in the package's or
longdesc class's code. The file latex2e-first-aid-for-external-files.ltx
longdesc provided by this package is meant to be loaded during format
longdesc generation and not by the user.
-containersize 3320
-containerchecksum 610aa5b4c12511436b7b26145f24c294a3c98e75a9b4211198c144e8c0cd58142853d0d581ea0bd620a4f01f48bcc186c40db1d0a27ecc559bc5ba012508bf59
-doccontainersize 259792
-doccontainerchecksum 36a0180f0ea5410157c03fa26a7c185229f5a6fefe517659f6cd1d5cce7425ee18c58909f985f500987bdf1d9993bb0d24d58dbac21121cd0bfedc384b3de57d
+containersize 3328
+containerchecksum 884653f9c67d3cc7d9139856b9e773d652e649c666cdbfb1dcaaf0642ad2efad5808d333bd61d197fcbcdb1b9f371c21d27337397e5b5c5784ce531c33f39c2c
+doccontainersize 259812
+doccontainerchecksum 4dc37e149949753b3adf0d981f60aacceb4c7ee5af7d1d2e89d71686d1310c028aba40452da0dcc1b027aa1ce31e27d64e511fd3f08e9aa836410f0602e5899d
docfiles size=68
RELOC/doc/latex/firstaid/README.md details="Readme"
RELOC/doc/latex/firstaid/changes.txt
RELOC/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf details="Package documentation"
-srccontainersize 7712
-srccontainerchecksum 374f4edef549e60798f9a44ba2e795f2b4145acf7164fab9ea170baf294670878499ab9770dd3c0a1d1df49396db17b827076b3e5049437e0d8d7ea1e7686f64
+srccontainersize 7716
+srccontainerchecksum 62fb7b01dd169b7396ea67299233e4f7ef2f699ce87fd685bc42bb0c0da96fb033c4b776423833e36fdd919faa75ce69c469050e7335f54720f4737eaeb4e1f7
srcfiles size=7
RELOC/source/latex/firstaid/firstaid.ins
RELOC/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx
@@ -127788,7 +128165,7 @@ catalogue-version 1.1c
name fistrum
category Package
-revision 66461
+revision 70187
shortdesc Access to 150 paragraphs of Lorem Fistrum very dummy text
relocated 1
longdesc Fistrum is a LaTeX package forked from lipsum that produces
@@ -127798,25 +128175,25 @@ longdesc Fistrum es un paquete de LaTeX derivado de lipsum que produce
longdesc texto de ejemplo para usarlo en documentos y ejemplos. Los
longdesc parrafos se han tomado con permiso de
longdesc https://www.chiquitoipsum.com/.
-containersize 3984
-containerchecksum 7e0a92affb0fbe23b9d08e525f6e2878e3bfc10133fc95b41bbdeebca5c02c988b2c4033e50969212b5889dda4f9e2f043dd65688ea33d81b5bd138d49af5777
-doccontainersize 655340
-doccontainerchecksum 15b50530a68fbb2b330aa972640fd85207dedc0b0e640f830940cd712a16fb001e60b59c22ff81890ed810a7aba9f1e150deb3f91ad1fc4bf52680d9d1735342
-docfiles size=272
+containersize 33616
+containerchecksum 407f4a0434eab6324fe4ff9912d0a559bda3b468c0a1061bb6d1e864bb84cfc890ddf4a5b342d505aafd71de75ec7122d46de51f409dc2af8e2ca93178705edd
+doccontainersize 652572
+doccontainerchecksum 0f0a9ed0864c87540b2150d5e845314bc28be541ed832f3ba026972358a381e347c0fca41e26d94d6bc0e1a91b6faf9961bfdc6cf30e13a60278a5a91593a68f
+docfiles size=215
RELOC/doc/latex/fistrum/CHANGELOG.md
RELOC/doc/latex/fistrum/DEPENDS.txt
RELOC/doc/latex/fistrum/README.md details="Readme"
- RELOC/doc/latex/fistrum/fistrum-es.ftd.tex
RELOC/doc/latex/fistrum/fistrum-es.txt
- RELOC/doc/latex/fistrum/fistrum-la.ftd.tex
RELOC/doc/latex/fistrum/fistrum-la.txt
RELOC/doc/latex/fistrum/fistrum.pdf details="Package documentation"
srccontainersize 15556
-srccontainerchecksum 88fcdc104594951933fee790a45efde2cfe3665673b2589bd4f2972f15e8dc1f91b85c5e04dde3866688fc2b76d2692caa2f4dfd3353ca9416002126be408cda
+srccontainerchecksum 5cbd93d9c1650618c64addf8521caacd01582829c5aaa26f89971e3e498d9f6bff646b436798ec38b81e990ecc10cd47caf6ca4bd033adba71c1acc2b54b92d6
srcfiles size=15
RELOC/source/latex/fistrum/fistrum.dtx
RELOC/source/latex/fistrum/fistrum.ins
-runfiles size=4
+runfiles size=61
+ RELOC/tex/latex/fistrum/fistrum-es.ftd.tex
+ RELOC/tex/latex/fistrum/fistrum-la.ftd.tex
RELOC/tex/latex/fistrum/fistrum.sty
catalogue-contact-announce https://github.com/daviddavo/fistrum/releases
catalogue-contact-bugs https://github.com/daviddavo/fistrum/issues
@@ -127895,22 +128272,22 @@ catalogue-version 1.0
name fithesis
category Package
-revision 70536
+revision 70531
shortdesc Thesis class and template for Masaryk University (Brno, Czech Republic)
relocated 1
longdesc A document class for the typesetting of theses at the Masaryk
longdesc University (Brno, Czech Republic). The class has been designed
longdesc for easy extensibility by style and locale files of other
longdesc academic institutions.
-containersize 792112
-containerchecksum 09bbae20efbe651a7cc5ec01c0a3f2b97aec3af24efaf21935992c7ee63841916cb29ea81ce7a916bb6ac4cee74cbbd3b02629b9c8c7467397dfb871e863fe54
-doccontainersize 735820
-doccontainerchecksum 4a476ca775b7571d4bf88e20e76f0acd8d36778a516ce5c778682b92f0de92eaafcd671d8ee756b9ce18f136855752963e994eb8f6e37611517b68abc9a6737f
+containersize 791456
+containerchecksum 088245eb520dbfb56e3fabc45ddea3635d1a6ddbf89ebc22ce9db7b5b9ec298f7e3380ace09d62070a01a8599a7d27274b9476ba18339ead51fcc0cf8d9c5a37
+doccontainersize 735832
+doccontainerchecksum dec0cd8c5099001343b6a3020765facb7a94aaccb2b6dc166e1dbe827c4ad6cccdd4112a1ad1c1f9d140222ce72898ef2c1a3d3ae2b3f1a600d8ac6c171330b2
docfiles size=190
RELOC/doc/latex/fithesis/README.md details="Readme"
RELOC/doc/latex/fithesis/fithesis.pdf details="Package documentation"
-srccontainersize 45620
-srccontainerchecksum 51b654e9880727283aaa5ea262dadaaf95f801980bfa2bf43c495e9315e60684566bf6972934ee95863c31e9e827462200527e1df26251cdb62caf0e660f2fc8
+srccontainersize 45624
+srccontainerchecksum 2859bd571919bf71ca11ad2c8b7eb74c596d28d411769f0808c46844e58660d463583b97d8cf734d96564fda7963ebca7f9ac1e49dd4006fbc78923f2883c9ec
srcfiles size=94
RELOC/source/latex/fithesis/LICENSE.tex
RELOC/source/latex/fithesis/VERSION.tex
@@ -131385,15 +131762,15 @@ catalogue-version 0.7.3
name fontscale
category Package
-revision 70541
+revision 70540
shortdesc A flexible interface for setting font sizes
relocated 1
longdesc This package provides an interface for selecting (arbitrary)
longdesc font sizes and associated values.
-containersize 6056
-containerchecksum 95ac9aaa5ff2ff9b9108bea483b23ef415e825beaea1b1573b1869d441c9ce34188b47241c5eed9b5762931823f015c0f05897d7085b2462f1f401c98ddcbaa3
-doccontainersize 134936
-doccontainerchecksum 28eb33adf132aed909f74211c538ab82f4cd5a958692a20a4692f9774a60c44e984fea28949366e3ae28d507088eeb1584592fefa1abced2b7bbf29bf9c56c41
+containersize 6060
+containerchecksum c7974e6557f882305c44a24df1ed2963c42b3ec996f5f502a1c0620ee3d9536e7e95d6c3053ad15f3f1447d6b4a655ae3a1b06445ebdfb6d0749b3fd2782b262
+doccontainersize 134920
+doccontainerchecksum 5bca4615a94f47636ebb2ea183aadbb424ec2fbebcb9774977e0fe2f7a46966cbbe49f2425be66e32cea3dfb842ef03656779d67ba64aa1fe97398dd5dc4c821
docfiles size=43
RELOC/doc/latex/fontscale/README.txt details="Readme"
RELOC/doc/latex/fontscale/beery.cls
@@ -131413,16 +131790,16 @@ catalogue-version 1.0.1
name fontsetup
category Package
-revision 70135
+revision 70134
shortdesc A front-end to fontspec, for selected fonts with math support
relocated 1
longdesc This package facilitates the use of fontspec for users who do
longdesc not wish to bother with details, with a special focus on
longdesc quality fonts supporting Mathematics.
-containersize 8092
-containerchecksum e599ae4f458be9375343dc4eade6c4ea56175224b785e48193af974d0b8f4a0d1f9426f8bd0fa22b15c962b7e10ef856f938699324c4b51e46d3e06602952e02
-doccontainersize 598456
-doccontainerchecksum 18c8d669b19274eda6e8daffe5fa3e6906a98026052ac668ef51e97e2e49e73b749dba7ac369d532020faccff121d210b5c1ec3540f353a98fe276f4aebd4c2f
+containersize 8068
+containerchecksum 108c67a4f698fb4c30648f63cec69be832a27725e181100a72fd8aeaf2e91f839e827fe92b402e8fe5d6ddbae6541d00f57806def0a5a8a8e62e2839408aa159
+doccontainersize 598444
+doccontainerchecksum f04b777913d8dbf9db27e2d0ebfd2fcb8ee5769652bb16d338cffa4bcc2fee79ea935492db6194c3d07ecbe4eba5de8044c7dedfdd9388388ced006e0fd9c8c4
docfiles size=290
RELOC/doc/latex/fontsetup/README details="Readme"
RELOC/doc/latex/fontsetup/fontsetup-doc.pdf details="Package documentation"
@@ -131506,7 +131883,7 @@ catalogue-version 0.8.5
name fontspec
category Package
-revision 69880
+revision 69833
shortdesc Advanced font selection in XeLaTeX and LuaLaTeX
relocated 1
longdesc Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an
@@ -131520,10 +131897,10 @@ depend l3kernel
depend l3packages
depend lm
depend xunicode
-containersize 27076
-containerchecksum 3d49ce69d6830cb4bcc16b0df3fe86335761d71fc8b930470ecb4e38f4131c40c534d8c613a252d552b1d298d61968e5bc2aa574b0299a9f7b9e79b63711d442
-doccontainersize 1206788
-doccontainerchecksum 1ae04a6e17c2ef6413e9cf21ec7934502a3fff3324bbd274dec1837916accc6da5f09a25816d99abc5cd0a431b0e652c44a2f570ecd69f400f56421ed172e58f
+containersize 27100
+containerchecksum b9c202a5367cd63b9d0070644fe1950bdcc8bcdb65ee4a11eed794f987eb48f64c13c0bfae493589f074375c0121bf1badf5037788dc24bce33ce7795de06dd7
+doccontainersize 1206468
+doccontainerchecksum a42fbcd48bf2d8e0f9e2b055f1c312644c3b896f1d40849940d222cedea107f15051667e3272382c85473103892d1f879a2070651de76823ca0cc472202ef323
docfiles size=320
RELOC/doc/latex/fontspec/CHANGES.md
RELOC/doc/latex/fontspec/LICENSE
@@ -131531,8 +131908,8 @@ docfiles size=320
RELOC/doc/latex/fontspec/fontspec-code.pdf
RELOC/doc/latex/fontspec/fontspec-example.tex
RELOC/doc/latex/fontspec/fontspec.pdf details="Package documentation"
-srccontainersize 84820
-srccontainerchecksum 48177f9500a5248dafb333965cd640e600aff2591a4e53f17b9b32a6c7042559e32d907ae5e2e6978389caaf13dddcd0827503fffba35b647974dd67d13f5c4f
+srccontainersize 84836
+srccontainerchecksum de52b99f86ab2dcd28379a86d8a88aa50c476ed70868818fb34ad7a3421da78077d2a4808d9475c1efaad4ce5ac90733962571d984a58c6ca123c10860e84b21
srcfiles size=121
RELOC/source/latex/fontspec/fontspec-code-api.dtx
RELOC/source/latex/fontspec/fontspec-code-closing.dtx
@@ -131618,7 +131995,7 @@ catalogue-version 1.6c
name fontware
category TLCore
-revision 66186
+revision 70015
catalogue vfware
shortdesc Tools for virtual font metrics
longdesc Virtual font metrics are usually created in a textual form, the
@@ -131629,10 +132006,10 @@ longdesc takes a VPL file and generates a VF file and a TFM file; -
longdesc vftovp takes a VF file and a TFM file and generates a VPL file.
longdesc The programs are to be found in every distribution of TeX.
depend fontware.ARCH
-containersize 652
-containerchecksum 7cec7df72b76ed64b864401c809b48e51f69338c7cb3ed05ac4ea69899a077983763c728543f99130f18afdd2a03c955d848066a239c97547ab0240d87c97d7e
-doccontainersize 69200
-doccontainerchecksum ccd22e262e5fa2cccd5da0ff016447d2df04aefcdd6960f226762667ea2e81b4afd406ea9f822b74d07c8f93cbe70ef90cfcc4040cae2820cf5ace94ce8d1113
+containersize 656
+containerchecksum 6877d3b4de6f9e07fb63f1d13dcc48b82c5954dd6a79bdd3dbc21a36fc72a7359b96ef4d77936fdae9e0998fc2a0b5c04f9b853e25ccca808ee020e84d9a44f0
+doccontainersize 68784
+doccontainerchecksum 183e1f700d6ae37024c0eb7427a715a07a86eb70f9281b86c884a88231a24765a71fe7de6a66a01f0f3d12be6cf964b13ae87096d6ed32cd7843006767b7dc6c
docfiles size=27
texmf-dist/doc/man/man1/pltotf.1
texmf-dist/doc/man/man1/pltotf.man1.pdf
@@ -131651,11 +132028,11 @@ catalogue-topics font-supp
name fontware.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of fontware
-containersize 99016
-containerchecksum d366e21c2dec3e5b41159469eca81f832a4c6375ed1fa1b06a19073ebecfd15b8058477de2703757a5e9f1eefb4a815bd03b60a8be56ff89ed81305710e7c93e
-binfiles arch=aarch64-linux size=98
+containersize 99632
+containerchecksum a58a23d7bca0e0c29c3afbd0cb8dc498584cf824d3359076dc3f659cd37712930d0cbd8e5cf4519fd73efcbcab690c373f729ef3cbe08b42e2c1563238e16bd8
+binfiles arch=aarch64-linux size=99
bin/aarch64-linux/pltotf
bin/aarch64-linux/tftopl
bin/aarch64-linux/vftovp
@@ -131663,11 +132040,11 @@ binfiles arch=aarch64-linux size=98
name fontware.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of fontware
-containersize 115760
-containerchecksum b141b2fb605abdf04618f715ec3fa085430e54be69461eaa3e6ceef59b64a8e927e51b4fae4b74976d5390189aea9482ab2c6f82c6c19409f3aaf31a463a6591
-binfiles arch=amd64-freebsd size=108
+containersize 113676
+containerchecksum 1f7b861e65c4c572818dd078fd31d05bf6a89d954ee279b5060d9233a073f2d6e05739d2327594a7457fa171bd440c1f6cc70d33ff620a044e4e9945fe0c8487
+binfiles arch=amd64-freebsd size=123
bin/amd64-freebsd/pltotf
bin/amd64-freebsd/tftopl
bin/amd64-freebsd/vftovp
@@ -131675,10 +132052,10 @@ binfiles arch=amd64-freebsd size=108
name fontware.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of fontware
-containersize 99964
-containerchecksum 3adc41fa42c81a331fe9e6b7112b282e49a4c910e756c60c191c9b17069dee92ecf46210b3f5ff754a4414b5a832068cc585f6b35e5f7bb90a398a5ce12417a1
+containersize 100692
+containerchecksum f0b82e9e84d23acae084dcb8a84d2c9123c945c26c21176b3d90a4011d0fa289b4f1d855c12075801c4aaf5c38a59633d478301baa0c3b56474531fa037a1c16
binfiles arch=amd64-netbsd size=114
bin/amd64-netbsd/pltotf
bin/amd64-netbsd/tftopl
@@ -131687,10 +132064,10 @@ binfiles arch=amd64-netbsd size=114
name fontware.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of fontware
-containersize 80032
-containerchecksum 4d3e9c7a20ff1d53ac26593a78c0a7f589f5ce64e82c7756fbd6e76531ea64ff3a4ec5141544761047cbbd9f65736f9f2ce7ff4c77df152b7ac9d1442d9c3d37
+containersize 80480
+containerchecksum c33e92e67ae19f760be6f2f83e2247731581c291dabbcca97d4020c9729e1b90bbd25ff5fde24e064340b91349fa2c54e67ce1b148fb158f829a1a15469117f7
binfiles arch=armhf-linux size=78
bin/armhf-linux/pltotf
bin/armhf-linux/tftopl
@@ -131699,11 +132076,11 @@ binfiles arch=armhf-linux size=78
name fontware.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of fontware
-containersize 98376
-containerchecksum 58bc06d95ac342204f4b87e9c1d2e0541673d453f9949ba7d04ab96b19bdec7ee1ded3ae6a49919271a6e7e021998426e416a5871dc9de24e64552428cc255b5
-binfiles arch=i386-freebsd size=95
+containersize 113844
+containerchecksum 325f15295e541ff725b5f3444cbd7e92ac8510d1ef4003141a50d0e1cdceff5b66aebfec736044048c31a502aa63288efa183e1db1aefdb04aca79e41553f0ed
+binfiles arch=i386-freebsd size=123
bin/i386-freebsd/pltotf
bin/i386-freebsd/tftopl
bin/i386-freebsd/vftovp
@@ -131711,11 +132088,11 @@ binfiles arch=i386-freebsd size=95
name fontware.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of fontware
-containersize 98416
-containerchecksum b08438864e662960071ea394772ba54f935e6f2d61a87eb04805915570d753ae9c8c3386e5f81adb1a7838043ed94cea087d7767062637fe37154c6e648276db
-binfiles arch=i386-linux size=100
+containersize 98992
+containerchecksum 24457fb8df78fd182a3518126db4e353d075319ecfd49948e7c83e8057322538bcc3031ff2e30d6b354a92a433e51083a0c6dba8e7ccbcf861a2b9857e2014cf
+binfiles arch=i386-linux size=101
bin/i386-linux/pltotf
bin/i386-linux/tftopl
bin/i386-linux/vftovp
@@ -131723,11 +132100,11 @@ binfiles arch=i386-linux size=100
name fontware.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of fontware
-containersize 84800
-containerchecksum a40f94b796d713dd618d8c1ac543aa099cf28636ae6b06236e1f4c82c208d8c94111bfdba15a596eeef8aecec9eb2577bba29129572fc6cf8a4309be4e686b53
-binfiles arch=i386-netbsd size=107
+containersize 85412
+containerchecksum 288027abd01f248eb0c210889b5e3db0280033b3d754b37319887b044e963083c08be10464f18d0fbbf7800ba638e29445645c99e5dafcdde0ff309c6f153bc4
+binfiles arch=i386-netbsd size=108
bin/i386-netbsd/pltotf
bin/i386-netbsd/tftopl
bin/i386-netbsd/vftovp
@@ -131735,11 +132112,11 @@ binfiles arch=i386-netbsd size=107
name fontware.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of fontware
-containersize 104220
-containerchecksum a5cd427d3b286565e713a46cc4b3f0e1d761608aaaf86a3120e64b679ffbc3d40353ee35d10ec0eec8af78235f59dcc734e97176bb3102f3c0024e7129dba494
-binfiles arch=i386-solaris size=95
+containersize 107084
+containerchecksum 74e5ae6e8f01cb70ba9ce3292bd3b45285044b46198aa1d44987623f7e1c5e004bb382258a08e9340442af6b8fc6ae5185cfc1023d5e8f50afe43801e9f19724
+binfiles arch=i386-solaris size=99
bin/i386-solaris/pltotf
bin/i386-solaris/tftopl
bin/i386-solaris/vftovp
@@ -131747,11 +132124,11 @@ binfiles arch=i386-solaris size=95
name fontware.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of fontware
-containersize 209408
-containerchecksum 1c072fa94450de39d8865a8a658621ef1c2205c8c639faebf828c422af6049b844e650e776834f5da81fd0562d7ccc4ffdc0a04375920f6c92cbd6e798322b22
-binfiles arch=universal-darwin size=292
+containersize 210620
+containerchecksum 1944286fb976890d31a678e1d29ca422b0e2da521f1dc6f0260528ecdde77da1e3ef3fed7faab66a3d0eb012a62d8ea22d876be687146caa18273048fcb45107
+binfiles arch=universal-darwin size=297
bin/universal-darwin/pltotf
bin/universal-darwin/tftopl
bin/universal-darwin/vftovp
@@ -131759,10 +132136,10 @@ binfiles arch=universal-darwin size=292
name fontware.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of fontware
-containersize 69280
-containerchecksum 5a339398c336577723de4f5c0a540f1b8ea18a66222d977f80290ac8fde49073730b636fade115842375015d4920c9c6f25c50fd2b14ca36b068079573ccb17b
+containersize 69184
+containerchecksum a79c4d7edb899c76de98150686de67faebdbca064a40e6d58433333b8b5a9e5d0567d6560c92e0bba1d3e14f26b82f613ac02100582d7093791fd89972bfeda5
binfiles arch=windows size=53
bin/windows/pltotf.exe
bin/windows/tftopl.exe
@@ -131771,11 +132148,11 @@ binfiles arch=windows size=53
name fontware.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of fontware
-containersize 65196
-containerchecksum 9164bb2f317db10c0129c9b4d8552627767434979882558d811b9ee620659706c174769867747f37cace6ac8c7aab95340fc8264661c76b79a5094d1fd0a25f2
-binfiles arch=x86_64-cygwin size=53
+containersize 65100
+containerchecksum 50c8dfce46bdfba10a148abc46872761afff2ec804075fb0bb90c69f23cc6cf59d1eca19395ae45630a01f447879d37940d5f8a2e80866e83faa17cad831dfe4
+binfiles arch=x86_64-cygwin size=52
bin/x86_64-cygwin/pltotf.exe
bin/x86_64-cygwin/tftopl.exe
bin/x86_64-cygwin/vftovp.exe
@@ -131783,11 +132160,11 @@ binfiles arch=x86_64-cygwin size=53
name fontware.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of fontware
-containersize 100864
-containerchecksum c75b20d3bc20b7613ac734a3bfdc8177edaba176029b3d0588a4fe59273c15060e375f9d24277e153cd39da66ae91fcdadb16f10fb3872d7604ccb8e178269a4
-binfiles arch=x86_64-darwinlegacy size=92
+containersize 101712
+containerchecksum bf12642615968b16c1052fe03f933e171b635874d8d6e156535bac1bdf12e2aea342956ed6aae2d5e4649811d4ec7d9295b4c1d4548889e76dcaca5b8175a5a9
+binfiles arch=x86_64-darwinlegacy size=94
bin/x86_64-darwinlegacy/pltotf
bin/x86_64-darwinlegacy/tftopl
bin/x86_64-darwinlegacy/vftovp
@@ -131795,11 +132172,11 @@ binfiles arch=x86_64-darwinlegacy size=92
name fontware.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of fontware
-containersize 101864
-containerchecksum 260d8e50a316522edae071bfd74189a142d9d65fc80e3d2fcf2d831fa1857cb5808cf5ec50257737701d4997c07b019bca4dc5d87687a2cccfe416a6c30bae15
-binfiles arch=x86_64-linux size=89
+containersize 102584
+containerchecksum 05a2157564dc27610ec78305727c8c79f4de3fbf0471086ad0425103f9c126b1de8a8ba1c91fe3eee791d3f723452b8883deef2ba64863129e9c2a1f1625997c
+binfiles arch=x86_64-linux size=90
bin/x86_64-linux/pltotf
bin/x86_64-linux/tftopl
bin/x86_64-linux/vftovp
@@ -131807,11 +132184,11 @@ binfiles arch=x86_64-linux size=89
name fontware.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of fontware
-containersize 110536
-containerchecksum f5c63d00fc9f0f732a0ca7196a2f1d43384ec38c5ea7bf44bfa9e9cc8617c74777af07ef05460bc068b3654149d7771a99101c5217c913a9156babfe4c4368dd
-binfiles arch=x86_64-linuxmusl size=95
+containersize 111088
+containerchecksum fc855b230b65d89385c42f8e3283f46c26ccec5f05fb58543afb0e8b4068efb38b1910c2f42f3a14c8106621841ca97fedf6d0b35593cb8591ac543a4b92b3d6
+binfiles arch=x86_64-linuxmusl size=97
bin/x86_64-linuxmusl/pltotf
bin/x86_64-linuxmusl/tftopl
bin/x86_64-linuxmusl/vftovp
@@ -131819,11 +132196,11 @@ binfiles arch=x86_64-linuxmusl size=95
name fontware.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of fontware
-containersize 115496
-containerchecksum 8c9e058c103536eb2bc81f5cf2824016c46ac54b268c784796f091457bf78c30898c7a5c4313a2ecb9d5a64eca0c85ab9ff34219f8ad7ef1c920ac1b8d06f53a
-binfiles arch=x86_64-solaris size=102
+containersize 119108
+containerchecksum d974f2bfbd9fad89a46eabcbf205516a5e37efde4004c41cd179d9f6d250c2b93ec6dd928d007cab7d314092976b2eabfda2394eda975b99f65e8f0625ac3d9c
+binfiles arch=x86_64-solaris size=106
bin/x86_64-solaris/pltotf
bin/x86_64-solaris/tftopl
bin/x86_64-solaris/vftovp
@@ -131891,7 +132268,7 @@ catalogue-version 2.0.7
name footmisc
category Package
-revision 69729
+revision 69890
shortdesc A range of footnote options
relocated 1
longdesc A collection of ways to change the typesetting of footnotes.
@@ -131909,11 +132286,10 @@ longdesc packages, though those are both also portmanteau packages.
longdesc (Don't be seduced by fnpara, whose implementation is improved
longdesc by the present package.) The perpage option is also offered by
longdesc footnpag and by the rather more general-purpose perpage
-depend bigfoot
-containersize 7692
-containerchecksum 7e205e392bbc933c6592f91afa053573f174ea83b07d81a17a144b29bc3837ba4e6639c56f5b07a9840e141e408163cbc2edbcee5fb7b159264ebc54f4a09645
+containersize 7688
+containerchecksum 605a5492200c6988794ae1ab4a2d683a77b017359256dee549052b99682a3c48b6b52cabad8a62443e2123f67dd51f0ceedbfca8dde664c2974361d7ae9622f0
doccontainersize 514744
-doccontainerchecksum 93d3ca6476356b7a0ed955edbe442764740d32db58dba91276f6bd891ca4009c3731872a703f1621e344a69c401cd70a7cd9e5fe2845d7667a8e0dc61e2ad2a5
+doccontainerchecksum b547237bf9d48a5796a650c2c83ba71f17e93e5689769e7e6d1b7d5b91f082cc928a4c327d05755883c772eb20e19f91e4e87501fa3dc0a3bdc82167c4c211cd
docfiles size=156
RELOC/doc/latex/footmisc/README.md details="Readme"
RELOC/doc/latex/footmisc/changes.txt
@@ -131922,7 +132298,7 @@ docfiles size=156
RELOC/doc/latex/footmisc/footmisc-doc.pdf details="Package documentation"
RELOC/doc/latex/footmisc/footmisc-doc.tex
srccontainersize 22408
-srccontainerchecksum 6b2960dd45ec7ff85cbeeac863a068c3eae5d161b19811f447fe31b572a7a11006c3608ddd34a677ade6c69e781bcd7938dbe451b0dbebb6c82708b393d363e6
+srccontainerchecksum 04aefe5e4c5ab1bdcc6f282dea6a9ca97d3f543e7607244e0dae042fe1de51ecfcd2f662d7def9b761e77ac274622059ab975082f96b9daf8d62f508cc151477
srcfiles size=22
RELOC/source/latex/footmisc/footmisc.dtx
RELOC/source/latex/footmisc/footmisc.ins
@@ -132305,16 +132681,16 @@ catalogue-version 1.2
name formation-latex-ul
category Package
-revision 70516
+revision 70507
shortdesc Introductory LaTeX course in French
relocated 1
longdesc This package contains the supporting documentation, slides,
longdesc exercise files, and templates for an introductory LaTeX course
longdesc (in French) prepared for Universite Laval, Quebec, Canada.
-containersize 532
-containerchecksum f5f29f4a61b1c7145d03985079bdb3fb26a4a627a6f839b3c9020569388abacf501e9a285d29de66e7e3d6287d255c5549aa389c5fe42fe0093315b01bf963ab
-doccontainersize 2558720
-doccontainerchecksum 2a64b940b37d3c460db5c31434a650cbe5d61d361ecb6d3ced250c65a4d817eff324fd296c137fb26a144fab77cdb2c93132bbab11a3f50f3cd0acff87812178
+containersize 536
+containerchecksum 3ed218145d84e0c087600ba6caa00036cdf3f78032ce6ce0e355166eafa1a26192bf1df044f9f205a6e1b73a851caa454b37fd9df0c76048810fcb699e9a0174
+doccontainersize 2558768
+doccontainerchecksum b6d9c9c49d445a8d30bd4d415f6edeb9888668f0174f5c8b3161273dc7ff443b8cf10ea0c9f8ce5c7479b5f9cf72514155cd764ee7eba5f8bbaa1cec64e0c923
docfiles size=702
RELOC/doc/latex/formation-latex-ul/CONTRIBUTING.md
RELOC/doc/latex/formation-latex-ul/LICENSE
@@ -132339,8 +132715,8 @@ docfiles size=702
RELOC/doc/latex/formation-latex-ul/formation-latex-ul.pdf details="The course itself (Manual)" language="fr"
RELOC/doc/latex/formation-latex-ul/pagetitre.tex
RELOC/doc/latex/formation-latex-ul/rpresentation.tex
-srccontainersize 1933364
-srccontainerchecksum d2c09f1700193814485fd25ef4a119875821a39a54a52429ef2f3889d276a9a50d74cab2df73e77c4ee62d96a413a5a8b488e216f9f11e5d6410fc0337662156
+srccontainersize 1933352
+srccontainerchecksum 189db1882f8992626431e7e6f3f47bd0a808ae0ec0f4fd4746e721487e48a17957f479566d4195fe567c5ee632e9aa14999dca2641892cce5ee85f6e86b5f577
srcfiles size=618
RELOC/source/latex/formation-latex-ul/apparence-diapos.tex
RELOC/source/latex/formation-latex-ul/apparence.tex
@@ -133355,7 +133731,7 @@ catalogue-version 0.96
name francais-bst
category Package
-revision 69866
+revision 69854
shortdesc Bibliographies conforming to French typographic standards
relocated 1
longdesc The package provides bibliographies (in French) conforming to
@@ -133364,14 +133740,14 @@ longdesc Quebec Amerique, 1996. ISBN 978-2-8903-7875-9). The BibTeX
longdesc styles were generated using custom-bib and they are compatible
longdesc with natbib.
containersize 7864
-containerchecksum 02581d45d6d205f0251c216435e068a44b7733ca23dd8f47df119a7aaf6db8efd9eef892e71219219713ab8031a77c373826c8b259e5c7f4f54f6b6edb2d8f5c
-doccontainersize 44696
-doccontainerchecksum 1f4a474fa1b953e9809315509c664fba06490dcef123ff8d1de32f05831fccafe45788a8754bcc70d6df687a1b75645d6f36ccfbe56958166e51a471e6c703bf
+containerchecksum 5eb0feca4aea4188d443ded6c275e81e4317ceb80a00d862485c159b7151b0e320a1e2e5506e64ea18dd0b17b6d26f732e1a96ee33c96e2099cff2cf2bbdd9cf
+doccontainersize 44692
+doccontainerchecksum e5bc1ae1ca3eec6c150b21e21ba1e44bbbb46830e13bea8e9f2df9cce440c1ef3a20a44eb649d4a74cf2a2b6e5d0eff7916edd2e903f2362b6b92ce72b5743e5
docfiles size=13
RELOC/doc/bibtex/francais-bst/README.md details="Readme" language="en,fr"
RELOC/doc/bibtex/francais-bst/francais-bst.pdf details="Package documentation" language="fr-ca"
-srccontainersize 54200
-srccontainerchecksum 3125847740194c77fd502d723fccdcc69e5ef93a1997ae46f1dac1b5a7b2a2978fe8a8f55346b67f2bc5b5c442f562a4ec3dd39466663750c7af7bfbd17f216e
+srccontainersize 54180
+srccontainerchecksum 88ef7f30aba7a118f6fd57fc478a64028e3bb26d63ad1a04383e471d6b51936215c26a7f7da579e6679943e1bdc7ecbbf81ede8f87a9c3282bf6d2faaa0af934
srcfiles size=72
RELOC/source/bibtex/francais-bst/francais-bst.ins
RELOC/source/bibtex/francais-bst/francais-bst.mbs
@@ -133677,7 +134053,7 @@ catalogue-version 1.3
name frenchmath
category Package
-revision 70163
+revision 70158
shortdesc Typesetting mathematics according to French rules
relocated 1
longdesc The package provides: capital letters in roman (upright shape)
@@ -133688,15 +134064,15 @@ longdesc useful macros and aliases for symbols used in France: \infeg,
longdesc \supeg, \paral, ... several macros for writing french operator
longdesc names like pgcd, ppcm, Card, rg, Vect, ... optionally lowercase
longdesc Greek letters in upright shape,
-containersize 2956
-containerchecksum dc8bfa123818c5e3ae96194158cccee72c29bae0b59dac01014750d1907039eed6ef3f24f08a32f08f15320c28e03bac3a9f052010e4609108bb5b4a4ff97397
-doccontainersize 580696
-doccontainerchecksum 1a1146f868e4d68014b080462cfce94f0f8362d23ccd42fe2a16fc526834850939aa10bc60dc65e5a66c35d40632f7c7b1fc607548b966424ebcda59104264bf
+containersize 2960
+containerchecksum ab4922e2fd68c2fe2636fab30eed29523fa6f60d0197a1682d098ccf39b3bc59d07c2a4bfa2c6136a1e55f595e8beb5933d746df598bdd2b44d7dee1c9da71f1
+doccontainersize 580692
+doccontainerchecksum 393d9f80f9bfdde4b4f0b34309c888ee95fab2a2b4faf9bb33d76e1cb162160b98f522cb799f3522dac262d0405f240b02c8fb455b09fe092fb4eb6d35279c35
docfiles size=143
RELOC/doc/latex/frenchmath/README.md details="Readme"
RELOC/doc/latex/frenchmath/frenchmath.pdf details="Package documentation" language="fr"
-srccontainersize 15456
-srccontainerchecksum 9a3c55e4d175635953917751c57b9f762a20046f1967c47a022703249a0fdedae4264810b16bc4188d6b19ec3836835e2d911c78fa7769bc1701b906b8898f65
+srccontainersize 15448
+srccontainerchecksum 0cf50c15e208170ab61f332b2cf7b794b948476bc48b54a0b32209471917d32d00d71a5532f241621c05accc84e8ac55d0759891286493ac6e949510504cc28a
srcfiles size=13
RELOC/source/latex/frenchmath/frenchmath.dtx
RELOC/source/latex/frenchmath/frenchmath.ins
@@ -134079,7 +134455,7 @@ catalogue-topics maths
name functional
category Package
-revision 69929
+revision 69908
shortdesc Provide an intuitive functional programming interface for LaTeX2
relocated 1
longdesc This package provides an intuitive functional programming
@@ -134090,10 +134466,10 @@ longdesc evaluation of them is from outside to inside. With this
longdesc package, the evaluation of functions is from inside to outside,
longdesc which is the same as other programming languages such as Lua.
longdesc In this way, it is rather easy to debug code too.
-containersize 10976
-containerchecksum efd3de1e1944193caa18069a1478e19bf602f1110c880ea14d9d7af146d4ef0da5c84078afcda4a26a326f01978240f6c011212424f029c491148317a9b60e43
-doccontainersize 730356
-doccontainerchecksum 1943c1451b357fe05d2586651cf52e8593927847ad3f88ab21d89626c8dba63e0bdac8e702dc79f7a8fc4ea8ea73c7b6fd05e19e57caac28adf5f1d53acbafb1
+containersize 10956
+containerchecksum cacdbda8a87e523931a71781558f230c6e0b83a5bb20bf42fddd8c613bb61e307386d58ac41088caf4aceecf109985e58ff76e3e1f217c708c21b90f92c01e57
+doccontainersize 730332
+doccontainerchecksum 547252209555b45bed443a18fc3ac85c7a43304adfcde8e960afc78ba8c3681c8c2d380817d7242bbab08d4ec6dadb3a14934401739c8e9d3840d65adc0d44c3
docfiles size=245
RELOC/doc/latex/functional/README.txt details="Readme"
RELOC/doc/latex/functional/functional.pdf details="Package documentation"
@@ -135050,16 +135426,16 @@ runfiles size=6
name gastex
category Package
-revision 69877
+revision 69842
shortdesc Graphs and Automata Simplified in TeX
relocated 1
longdesc GasTeX is a set of LaTeX macros which enable the user to draw
longdesc graphs, automata, nets, diagrams, etc., very easily, in the
longdesc LaTeX picture environment.
-containersize 18732
-containerchecksum 1716d7e7a0327fbde392a435b783da48382adc8e5751f06730dabe655422b2bedbe6d6ddb589de67d3d15df0b97354bae10aaff81df1795f01e44d6c7f90681d
-doccontainersize 129728
-doccontainerchecksum 417c7ac005a4d754dc5d6082e5453f400aea53f61848efd244e97a3c6449346d2fb77989598113b15d16d81d70a9abaaa06f39ebccb542fdb88265e1dbf170ab
+containersize 18736
+containerchecksum 65fecfcad7e50343ede8355a001e9beaba47fa24c65054c1ebdec5a1be6dda7ed2adfa2fc4854b38f984dde448f535a48f8dce0c07fa1bc4854fc38dc315403d
+doccontainersize 129720
+doccontainerchecksum 7c1edea3ca7d049e6f8c8c4ebe34b0d1fd3cacbe6dfccd8107c8be78fd6b1e138ead62b5424d3a8fd11e348d0240a58b178be58b70250a51586f22bf4f41cab3
docfiles size=36
RELOC/doc/latex/gastex/README details="Package Readme"
RELOC/doc/latex/gastex/gastex-doc.pdf details="Package documentation"
@@ -138834,7 +139210,7 @@ catalogue-version 1.0
name gitinfo-lua
category Package
-revision 70117
+revision 70112
shortdesc Display git project information in your LaTeX projects
relocated 1
longdesc This project aims to display git project information in PDF
@@ -138845,10 +139221,10 @@ longdesc for you, you could try gitinfo2 instead. For LaTeX, a set of
longdesc standard macros is provided for displaying basic information or
longdesc setting the project directory, and a set of advanced macros for
longdesc formatting commits and tags.
-containersize 5016
-containerchecksum cbc201f194a95f27ed11a12f555b8296dc68b4b0895ec2eec65d4f22dbc005716bfb92f46b342acddf023475a9eb7571ce3410efca50755589b6513e025cab8b
-doccontainersize 117724
-doccontainerchecksum b5b284e2d6abc36e97aab127592c6c928d737b8d94178201191905b7179786cc6a5520364d1ce0ff92551de5ecf89aafc4ed336b145591b747d43d6380bf8815
+containersize 5012
+containerchecksum 72e0f9516545c408ffbdaf8698e8b3aa75e4c9f8ca12dd00750ebf3fae95f5a4142b9c35a2ba64b807ef1d3237bffd10ed6abb7f72d2e7364126024b87daee32
+doccontainersize 117708
+doccontainerchecksum 1ab2362be311407316d30bd147527af6b021bea4b1645fb16eace02ac5622e3e4809b169d34e81ced4b4aaf10ca787bef55e821a777e8e8f6669776682c8fc5c
docfiles size=36
RELOC/doc/lualatex/gitinfo-lua/README.md details="Readme"
RELOC/doc/lualatex/gitinfo-lua/git-scenario.sh
@@ -142743,137 +143119,137 @@ catalogue-version 6.0.0
name gregoriotex.aarch64-linux
category Package
-revision 65927
+revision 70276
shortdesc aarch64-linux files of gregoriotex
-containersize 118760
-containerchecksum ebbc293daa59542c2b73d62767366265bb727f49dd4152741bc60e9b4414b7eaa802a430e973bd7e9844d0b952d6c46692228bc3eba08a6519cb2d687b2664f5
-binfiles arch=aarch64-linux size=184
+containersize 119052
+containerchecksum 5f307ffb198093f529f15fa8f68d578374523429563182d4eaf58045334fc24a1f86afdb7eef60008ea7bb183c9639ce4450b2046d42aa1bee870a70b60eb27c
+binfiles arch=aarch64-linux size=185
bin/aarch64-linux/gregorio
name gregoriotex.amd64-freebsd
category Package
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of gregoriotex
-containersize 129424
-containerchecksum 349dddd8244b5469b9897b39cd41fc1f9fc47937f012067c1917be4630f443b9f765e328dee3412444335d56628437a6bda114f31f222730c5024ddf08f5ddd4
-binfiles arch=amd64-freebsd size=183
+containersize 114092
+containerchecksum 0a2f4e700fb7fb80741103bb485a4c7ff891c18247afa4a8cda75f642e557ef7f6792215c6007743c20b45f5a3a8ae01a94a1317ce46d61c90b49731e0e9a57e
+binfiles arch=amd64-freebsd size=194
bin/amd64-freebsd/gregorio
name gregoriotex.amd64-netbsd
category Package
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of gregoriotex
-containersize 112236
-containerchecksum 92ac38de5a3740358381082a3758662735ae30c72fcf80d5898a2c96f29e0dbdde9c1f8ea8d49904cb58ff0a074890e30061cb4a475b833377b95f22dbd5bb7f
+containersize 112740
+containerchecksum f4a9747f3db709418b35bfdc35175845198e449ea5e9138e0fddafdb33a6e074a623d882f7b38ce77e679f0bae8efc3b58df2016227b4bb56910e27aeceb1011
binfiles arch=amd64-netbsd size=194
bin/amd64-netbsd/gregorio
name gregoriotex.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of gregoriotex
-containersize 104020
-containerchecksum e9a8fdbc9e70cef21f734a1b2002dbaec04e8adea73e7918dda877d7cda9d6899a4b6220294f03b9a08253a520d5a3802f94aea8d90db2dd60a6dff6c8e925e5
-binfiles arch=armhf-linux size=173
+containersize 104308
+containerchecksum eef6a197f7e4d69ee95ca3ca560a26e08260efacfa1987d21b2bf177666bf9b5d6e43bd0b01becde907cf97acf0d15669f0d9d40138e85176b7349a3d674685c
+binfiles arch=armhf-linux size=174
bin/armhf-linux/gregorio
name gregoriotex.i386-freebsd
category Package
-revision 65877
+revision 70276
shortdesc i386-freebsd files of gregoriotex
-containersize 112412
-containerchecksum cbb98e33ddb7d320c924e0bc4b86caa9dfec6b44ace171d1d4d7bd4966f675dca57948c6ecf99b968d5eba9c6d355d7977213a0447e99b535f8761b99ee71c21
-binfiles arch=i386-freebsd size=174
+containersize 114056
+containerchecksum d5dac7ef480f1213fda088931d9827227297851378563dc5961077c51156869d6b37ea0c588def69e84ca6797d180fa9bb78503e510aa809befd3d84be01d3bd
+binfiles arch=i386-freebsd size=194
bin/i386-freebsd/gregorio
name gregoriotex.i386-linux
category Package
-revision 65877
+revision 70276
shortdesc i386-linux files of gregoriotex
-containersize 132508
-containerchecksum 8d31456af91c775571208e9e928ea8f104d6377671e26e62601d0bd82a82942f36b372638b3c3bb556d301496dc6675513ecac56b15c0e3d08b115763e652db9
-binfiles arch=i386-linux size=191
+containersize 132924
+containerchecksum bca22e92007c8f2630ccc5849927c681fd5e42698884a01ff5251241ed49c1843f1a1256a2b5a3613d0ddf090ac1a64009645a6c52107343dc1b53673e6dcbb5
+binfiles arch=i386-linux size=192
bin/i386-linux/gregorio
name gregoriotex.i386-netbsd
category Package
-revision 65923
+revision 70286
shortdesc i386-netbsd files of gregoriotex
-containersize 102212
-containerchecksum c083cdff657183f3d63b46c0ba1b811d750b2f8103ebccbfe1a28703a77236b3dd1170b39a740657b61494e6a71f7f99ef4b342992a5ec20afa5c34d21334948
+containersize 102612
+containerchecksum 9e21dad1f9140e32cee9e718095ba8cab3b7c5a777f260e8eac7353e67038d1e2048bbdb63904067655449248bbdac548a7604e4d56db56eb641354f687da552
binfiles arch=i386-netbsd size=187
bin/i386-netbsd/gregorio
name gregoriotex.i386-solaris
category Package
-revision 65877
+revision 70276
shortdesc i386-solaris files of gregoriotex
-containersize 123824
-containerchecksum d91a86fb3840075aa8f7e6456d19b9ff13ae9da73ac18e1ee57063c64505f765d3b9e8dc3d87c1304e52e48461627cd9715e2ceecfdc11f0c4026a3589f976bc
-binfiles arch=i386-solaris size=182
+containersize 125424
+containerchecksum 3f8bde9b73a3a9f052f2ee1458e8809281c7b839b287edbef3946c1b6245987afa337c92e4780c4604005456172445cb1f5bf6ea0f5aa315601bb13e2dbdb48b
+binfiles arch=i386-solaris size=183
bin/i386-solaris/gregorio
name gregoriotex.universal-darwin
category Package
-revision 65895
+revision 70274
shortdesc universal-darwin files of gregoriotex
-containersize 235384
-containerchecksum 9501677eed8a2c06e1398b2f5fae865534b0b6265dd0839d74904866df3f91ec0b10997b9c3d3bc563ab553cd6bdb65359c5eba0ac3696c013e3e7dec75b65e5
+containersize 237052
+containerchecksum 6a55224c18d06e56acfa99a013ce2a72f29d01e472a6543438f3dceac3da78cf3d032868aa81474ad74ee86fe2701b898ce4ed34f670e3b65d7a6dbde2216d93
binfiles arch=universal-darwin size=382
bin/universal-darwin/gregorio
name gregoriotex.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of gregoriotex
-containersize 323832
-containerchecksum 33dabeba2f751b135464864fbc1c7b6ddd4498cb67a2c6240c370134431ac3ab80eeda4cdef08666c162e6e23936dcd9d753afa0423ff2e92213bd0c71632d7b
-binfiles arch=windows size=303
+containersize 328304
+containerchecksum 91d132e73a5a60a352886a296f14abe515d208926f44fc07670666108e9ba9c94003d7a62576b963d9fafcb14e89ce5b355ae312d920ffa722f7bd18c9007e8c
+binfiles arch=windows size=306
bin/windows/gregorio.exe
name gregoriotex.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of gregoriotex
-containersize 103100
-containerchecksum 837af6f58fe98812d29055f3307d64477a7bded51505229abc3cbc1690f708f78e70115c2253e4dd43c68cce803415b5e7d38230feac7b0e758d9d9228778aea
+containersize 103232
+containerchecksum 689e67f2e03b636d7de48be2b892f02e462e0daaf7372b5a8e7c0391f8339b3a146580684fe7b588f9f29a0c382a6c048e2af344b1c29c1edb95b5ae69ec3af0
binfiles arch=x86_64-cygwin size=167
bin/x86_64-cygwin/gregorio.exe
name gregoriotex.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of gregoriotex
-containersize 123312
-containerchecksum 39ef53bb554a3de20ebadae589f96cee690a6de42767dc5d83a63584c074a0b1e6f92637eedbd09daf09203db4777bce5adae4ee988d029a0c0069d25fd0af46
+containersize 123716
+containerchecksum 9b3eab9e2f1676ab03f571ec30d7765f814aee552750c60fba178cd6d884e828c20a53191c5f518eb9585292bdc93b2b9a3c40eccb17703dec4bfd4a03548763
binfiles arch=x86_64-darwinlegacy size=178
bin/x86_64-darwinlegacy/gregorio
name gregoriotex.x86_64-linux
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linux files of gregoriotex
-containersize 132568
-containerchecksum f3a5f132be4a72878a2b68cca6caf624a8291538ede01233f82c088e5126caeefaa41338c4d68a0670694674d5bc86081d317ac4392c533ba23055ebb1a93492
-binfiles arch=x86_64-linux size=185
+containersize 132964
+containerchecksum b407352659c444adf81fa8b75063791064d92d232d977cca6f9cb4e09c62ebe89c9bc7103722e2af3016a130e7860de63ce93fc2c37794221597abb3fa275596
+binfiles arch=x86_64-linux size=186
bin/x86_64-linux/gregorio
name gregoriotex.x86_64-linuxmusl
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of gregoriotex
-containersize 143052
-containerchecksum d524ad6f7ba88e921059567728fb612d31a3ead1c07166168969a46c71e8d49b2075f6b81f132ca7c917d41f0e952b9579a2bb346af6fd4a3ca8c8a9312c1397
-binfiles arch=x86_64-linuxmusl size=187
+containersize 143748
+containerchecksum 02621d4160d95ab4c9c25ba13c175ee36484ba66cd6dc40e5a7a0e7a033ef248c91440701b3c5997e31eed3e5300ca9392d110234c4dfa0e442617a9e537bc63
+binfiles arch=x86_64-linuxmusl size=188
bin/x86_64-linuxmusl/gregorio
name gregoriotex.x86_64-solaris
category Package
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of gregoriotex
-containersize 143400
-containerchecksum 078586aaf3a964c07682ae68153490ccff24986e15e73a1e525d9266e10a4773ab48010da92649e295b9c22b615f0be1fd32081d018f76fbbb411d4d4f79ef26
-binfiles arch=x86_64-solaris size=194
+containersize 145464
+containerchecksum 1778c6617a3ad028ded485b460e18ff345878e10c2e1ebb5e50b099b11b384f4a03cf1c3b3665631c8e562018ea532cfe56c6de4219181a29c2735bb475ad6d2
+binfiles arch=x86_64-solaris size=195
bin/x86_64-solaris/gregorio
name grfext
@@ -143318,137 +143694,137 @@ catalogue-version 1.19.2
name gsftopk.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of gsftopk
-containersize 39416
-containerchecksum 9a651729a93a916bf4399be4b23e63763c7ace15b9697c6a1cd0d2b81d6915452f45cb32147a0ea7f0128c9e2b19863e8340987588dbc6e18162a90860aec3f3
+containersize 39848
+containerchecksum a40cfdbe1113638994eaf4ee4e54e08dbddb1d08820591e42ce76503ec671f90e4afc06d84c61e0f5abf4a2c068545997e2e255a9dd7aa01e418aa8311fd62ab
binfiles arch=aarch64-linux size=25
bin/aarch64-linux/gsftopk
name gsftopk.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of gsftopk
-containersize 43484
-containerchecksum 322d533b903815002f3a9c030fa537755a089ba00a0b83ce01aa7ce2868b9228dc5b83272c4346ce8319b897e6dc14e369fe10ce749dd7658f5d34bc462bb336
-binfiles arch=amd64-freebsd size=25
+containersize 39044
+containerchecksum 57f831b53cf8a678a3f87fe85f845785da7fedd5d4e88b3d6a5a625458839964518f3ee98581c1dfa70e0d001b7f2a4f337dce23cfd2bfa7c09fe0b1dd90c190
+binfiles arch=amd64-freebsd size=30
bin/amd64-freebsd/gsftopk
name gsftopk.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of gsftopk
-containersize 37268
-containerchecksum d3525cee5b081f150d7cf5f8b29e04038dd71f9ceaaa198be923db550b2319116f8bafcf2e4990e7f38cd6a45fcbc6a29107dbf407aac9a0c95298a443484529
+containersize 37692
+containerchecksum 60389651d76c0111d2c0b4396403bb680320f7e892c977b88f31e7f06b8b3c02faf75f16e882a61bcbe3902402e6c562d9114f7bf5cf4306427f67024d36150b
binfiles arch=amd64-netbsd size=29
bin/amd64-netbsd/gsftopk
name gsftopk.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of gsftopk
-containersize 33592
-containerchecksum 7234f92ae97cc8e33e17dd4b18572a8393d5b318bb61e9eac4eed991927496cdcc6381ea7409234881b92821355265e6acbe8123e25500d08a318727005e2b1c
+containersize 33992
+containerchecksum 2a6a59fcc27a56c52992bcfd49df5aea2b240b16d44ecfee21e4f51b75b9659fa39ae43bffbe549444eb252de72cdd3a83cd024740828d09129af84c1a599138
binfiles arch=armhf-linux size=20
bin/armhf-linux/gsftopk
name gsftopk.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of gsftopk
-containersize 38964
-containerchecksum 544dfcded276fe20c1a654cf655c4baee4744a7fe9c401526d19f6aa7f92824b2c2a85fb7fe4a55a73d6b3de25bc2f06631de397beb19d007be387b96274ee39
-binfiles arch=i386-freebsd size=22
+containersize 39040
+containerchecksum 38d462441410c1874856fe900d4e50ab63c143412c4922502a97966b82cab276fc988b1287d40fa9d8e7628c33e18cdbd04db4ac6d218306096682c242686052
+binfiles arch=i386-freebsd size=30
bin/i386-freebsd/gsftopk
name gsftopk.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of gsftopk
-containersize 43748
-containerchecksum edbb2a3da3653520b53d3aa44089ab37627045f92006b8bd8797c18c96b50b7d323556e52a9e826e25967ba58485922ac3cac2e1f471047da2771fb6bd7d1f85
+containersize 44216
+containerchecksum 3525ae7e41d5adacbb914b9f9883efe03f2f50862d2d1b9d1dcfdc3bd24e5a27a54e18ce5f7ff47197ecc003b63dd994762af83c4d9e2efbbea7de68ff27f06a
binfiles arch=i386-linux size=27
bin/i386-linux/gsftopk
name gsftopk.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of gsftopk
-containersize 34188
-containerchecksum 065d2cf1f7fb46cadf1e80a217ea8be88f6cc9780e1184515479d6904021c8eae28119d7e4e94f11e627d75297ac6c9c944f7862f3a7e0aaa3749f0aa17b1d71
-binfiles arch=i386-netbsd size=26
+containersize 34524
+containerchecksum 7fa505d1f0dc168f52b9c8c9fe6a59b72b8d6ac77c9e7e89a1a02451e75d0712d0774dad9ce1ce88d3cf7ff48f0992500c6a54951647a5e23a3c813e21371f86
+binfiles arch=i386-netbsd size=27
bin/i386-netbsd/gsftopk
name gsftopk.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of gsftopk
-containersize 39960
-containerchecksum 75bbffda1c8ecd3256651cb98e69a7f4d332a49d7b941c964d93fbeef14d2f1e04aa68e0fcbff5e8e1591c3a74a836a3af6a9af50fb1c4af7eb6443b1073fc0d
-binfiles arch=i386-solaris size=22
+containersize 41404
+containerchecksum 9f9c1ee42aa4e5de26455a184ced26c1fe56789f4e04b8d52e13e1ee7206e9ed38f86205af1029e80fec2b6a59b9930b79a090a96620415a1df825e5f7160f48
+binfiles arch=i386-solaris size=23
bin/i386-solaris/gsftopk
name gsftopk.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of gsftopk
-containersize 80720
-containerchecksum 3caf84e800927c5fcfc29d49a3355b2ad8484c862ebc404417049fe6046fca962fec21e8d6bcb646a16cec37eb6a40bb2cfc3c1d70c61b6adec8f450eb1a06c5
-binfiles arch=universal-darwin size=67
+containersize 81756
+containerchecksum adca4950f1e6705a80f9602395226e20ad09a6b3cd85dd6ae262577c55d7452f92881109eee1bd987baf000a20eed8a161a58bf6e9fde0d885f293edc0126eaa
+binfiles arch=universal-darwin size=71
bin/universal-darwin/gsftopk
name gsftopk.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of gsftopk
containersize 13512
-containerchecksum aac1ba13addf31274f1bf305d6316f5263d15849f2a0827de49b9a0b0c01cffef9b79a79f5ceec3a7bd1c3c4d5e75d231c737946d12434257f3958db70b98e0c
+containerchecksum fed130d83760b6632a4448e65a49a2421f8a37793e596bcda27d5d85f421ce43331bf1295f8fc4a3ec4965c4478d51285b3e74136703594a9f68c109f0d48624
binfiles arch=windows size=7
bin/windows/gsftopk.exe
name gsftopk.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of gsftopk
-containersize 12288
-containerchecksum 07590cb489ef67b74c59ff2d1752cae1b3341d0e7dd72b55146f3cbbb7a8d09dcdcfc850819bf712273c8fb8af72222a045160dc8084a2eee3ef243cfc2846f8
+containersize 12220
+containerchecksum 00643e84065d4b0ad4ebcd38f722e938c5a6cc89c81031daa9ca186e900617f48d354b577044cc372abffe0ccc67cd02920225db1370fa93f4db0f7e7a9bc218
binfiles arch=x86_64-cygwin size=7
bin/x86_64-cygwin/gsftopk.exe
name gsftopk.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of gsftopk
-containersize 39608
-containerchecksum fc2e26b8ab95df6f590db1882f364ad03c3167f5b39beb461a337568a6b4e28130aac4bd1d685b4967454bd293fb3372d131ad972437bb49b194088d235cfbc2
+containersize 40164
+containerchecksum d54c25d2ea9f334ad043b223384e377c28dd3c4504ebccf29fb6d258e0b1b7274d734a5063f9b3093199f9090781dd97a4c6a767c27beee305965c8fa9e5045f
binfiles arch=x86_64-darwinlegacy size=24
bin/x86_64-darwinlegacy/gsftopk
name gsftopk.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of gsftopk
-containersize 41252
-containerchecksum ba01e745c62a3af2234f6bb448593ba02e3bfe89b2b534e64b8132428e49cd2aa8d7911ad593e1833badd13a3d2967aabb699dd017bdd0bcfaf10cae4c968c5c
-binfiles arch=x86_64-linux size=24
+containersize 41712
+containerchecksum 012743d01623df635b978b34a5c8604dd86ead03eb4502023bd1c25c2ef9f2735255bf773d22c783d33420eaf22d924d3d73ea7f4f829356a567d585dc17ba7d
+binfiles arch=x86_64-linux size=25
bin/x86_64-linux/gsftopk
name gsftopk.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of gsftopk
-containersize 42104
-containerchecksum 36078a43c04cb055713146e844a84838ec5a65a4ac2545e950beca7d334c2ff05ad01b55c06eee237e2bfde18c9a1a5324b51ecaa014cfa39d575ccd4323733d
-binfiles arch=x86_64-linuxmusl size=24
+containersize 42684
+containerchecksum 8d2519f0ffefd990b7e5f66e0941cf8501d8597333f41b61bc76492bb69c7a245258ea491ac746bd09c39a7498e324676b7535384232d4e9754f8ddf0cd84633
+binfiles arch=x86_64-linuxmusl size=25
bin/x86_64-linuxmusl/gsftopk
name gsftopk.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of gsftopk
-containersize 43032
-containerchecksum 48858c3f1d3172388dab57ef0342120eab22c50e81d493c332cc95f50a29d906da3fbba05d4e7ae87c4300949679a98aee2313b350520590660923586b63dd5b
-binfiles arch=x86_64-solaris size=26
+containersize 44964
+containerchecksum c1c410309dfacc8df83ea50357aa42b6455875049b40a36a5c9e1e6a114f970e7e5f3ad8095e7595f0ad1a9c25bee0b60c7200ff8163f16e6907c5181a254b2e
+binfiles arch=x86_64-solaris size=27
bin/x86_64-solaris/gsftopk
name gtl
@@ -143964,7 +144340,7 @@ docfiles size=82
name gzt
category Package
-revision 70535
+revision 70532
shortdesc Bundle of classes for "La Gazette des Mathematiciens"
relocated 1
longdesc This bundle provides two classes and BibLaTeX styles for the
@@ -143977,10 +144353,10 @@ longdesc to work their document in actual conditions, and provide a
longdesc number of tools (commands and environments) to facilitate the
longdesc drafting of documents, in particular those containing
longdesc mathematical formulas.
-containersize 34652
-containerchecksum 8c6cf2243e7539b0ba4f84e36a634e46f6a59d57a5d5c58df0ab77ceb031301048800c35c092e3cdfa4ee08d1d61a1a5ca27a6648f9be5e658deb3ca16cf6698
-doccontainersize 1181052
-doccontainerchecksum 08272184765997826e89cba2ef02c4695956f14ed603e32f602884dc191b1a81b60e654abad20cf50bb377b96ca50f39fd89234deaa81cf3a66a311445c98f07
+containersize 34672
+containerchecksum 1299ce5c1c01bbb8349a86857be34a56c536d735975adcd1271cc36f656f2d77aa49778691ed8fbef8a1d9d9b062bb0acb4c8e3a4e01faa2d833d03bf3e5b676
+doccontainersize 1181044
+doccontainerchecksum a210ee250e3b36ca6a4f0880369ee0e7d075b85e47c2aec8d7c62a96e8eaa1e1b912d047b7c5fefe0eb007357b3601fb1baab11b18c88181700c4ee60c2b3bf6
docfiles size=321
RELOC/doc/latex/gzt/CHANGELOG.md
RELOC/doc/latex/gzt/README.md details="Readme"
@@ -143996,8 +144372,8 @@ docfiles size=321
RELOC/doc/latex/gzt/french/sections/notations.tex
RELOC/doc/latex/gzt/french/sections/packages-charges.tex
RELOC/doc/latex/gzt/french/sections/todo.tex
-srccontainersize 43920
-srccontainerchecksum 6654412d1c9eafad470db5dcc6045f2872f1b505e498d1243a9f26ba76e3b3af11567af78e242268d3d338bf7ddc9e5f2546b730b0772718bb0afbe1cae99827
+srccontainersize 43936
+srccontainerchecksum 61d9c98a87ee41889837749fd1dfe52c32c1a8f00124303b4318ece1958bf17bca1b37036e3dc47c11f8ef2b49c7ab591e947d12ec0fdf4d89016929cd091134
srcfiles size=58
RELOC/source/latex/gzt/gzt.dtx
runfiles size=69
@@ -147765,7 +148141,7 @@ catalogue-version 0.0(beta)
name hitex
category TLCore
-revision 66924
+revision 70015
shortdesc A TeX extension writing HINT output for on-screen reading
longdesc An extension of TeX which generates HINT output. The HINT file
longdesc format is an alternative to the DVI and PDF formats which was
@@ -147779,31 +148155,27 @@ longdesc alternating between landscape (few long lines) and portrait
longdesc (more short lines) mode. The HINT format supports variable and
longdesc varying screen sizes, leveraging the ability of TeX to format a
longdesc document for nearly-arbitrary values of \hsize and \vsize.
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend etex
-depend everyshi
depend firstaid
depend hitex.ARCH
depend hyphen-base
depend knuth-lib
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-fonts
depend plain
depend tex-ini-files
depend unicode-data
-execute AddFormat name=hilatex engine=hitex patterns=language.dat options="-etex -ltx hilatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data
+execute AddFormat name=hilatex engine=hitex patterns=language.dat options="-etex -ltx hilatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data
execute AddFormat name=hitex engine=hitex patterns=language.def options="-etex -ltx hitex.ini" fmttriggers=cm,hyphen-base,etex,knuth-lib,plain
-containersize 5572
-containerchecksum b831998a078c61be41f376c73a63d2996ebbb128aa90dcc9f21e1e80d2e834d6628d150d9e98819defb4b38fcfd9e1ddd0239fd0ddea19d0086c7187d3d80a7b
-doccontainersize 2670660
-doccontainerchecksum f278d0d4a4b37e4489ba46ee3325a9af5bd7205359b55f30a3de10de36182c754974e0b7a0f506ac233280ee395bfdb5a8f7f5c3ee1cbcb0c30480338968e0f9
-docfiles size=835
+containersize 5540
+containerchecksum 286229cdc2af5a0daee9e94d013996245e3c69a0e3f70fab4e87532646a6ad03bb6136ff18126d697b524b2dc89a476b4d5a3030d2972aea79bfd3080427b9e2
+doccontainersize 2644972
+doccontainerchecksum c7e762db68d9a007f0ea037aafef3bc6a4af4c436c6723bad676d9ee98b8d9a0b0eb0c103fa2225fba875cdec9ea99f5b2b9ed226498b7589705e72abafe78c8
+docfiles size=828
texmf-dist/doc/hitex/base/hiformat.hnt
texmf-dist/doc/hitex/base/hiformat.pdf
texmf-dist/doc/hitex/base/hintmac.tex
@@ -147836,11 +148208,11 @@ catalogue-topics engine
name hitex.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of hitex
-containersize 278676
-containerchecksum dd71a09ff660e5d169ee0b6dd41aa5b5eff748830de0683b3c1fd1c77e22b249e1ed600f9fb98a5d8dc00fc2a02f2f1d1bd46e114a6bc012697d9b0ade066d36
-binfiles arch=aarch64-linux size=196
+containersize 280224
+containerchecksum 3aee0ce1a91aa0f70acde31fea64badce4c59c015e138cc878d588af5f6940588dd2a4f2e6f7ea1fd24eb2af36cd99616912887143054414b7f19525aaf3e501
+binfiles arch=aarch64-linux size=194
bin/aarch64-linux/hilatex
bin/aarch64-linux/hishrink
bin/aarch64-linux/histretch
@@ -147848,11 +148220,11 @@ binfiles arch=aarch64-linux size=196
name hitex.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of hitex
-containersize 326880
-containerchecksum b4a610205bc65125bc9c4d1ee178cf1fc71212b06f25f55842fe0a0dad803bc74b310fdce90bbf2458ae1d5e0407184d72fb77ad5f6cf9d1deee005247364fca
-binfiles arch=amd64-freebsd size=220
+containersize 287596
+containerchecksum 45b53ea934349593a17a7c19675599d3769f109ec672376dc3f776abbb86690cfc1849489b94840889264524595be98e79bb4c351865cc74ad55ea0c636d14be
+binfiles arch=amd64-freebsd size=264
bin/amd64-freebsd/hilatex
bin/amd64-freebsd/hishrink
bin/amd64-freebsd/histretch
@@ -147860,11 +148232,11 @@ binfiles arch=amd64-freebsd size=220
name hitex.amd64-netbsd
category TLCore
-revision 65957
+revision 70286
shortdesc amd64-netbsd files of hitex
-containersize 284832
-containerchecksum 89e609dc4caf4ae4b930ac1f8bc2ad8d4d201d399d78ddeff474e0e44ae43c94b3b014a9bb53c3b3120f64f19ab0ae18898b02255aed3956f61d6331b70b3809
-binfiles arch=amd64-netbsd size=263
+containersize 286248
+containerchecksum 11c1eb2a7d7c2c912b549af75c1ff8c4de6046636c2dd06e1a5f09ada4a2a8325ac16d1754bbf75d54d5a0fd30c9b651b1ab63d54aa9cdea8b6d429a0000ab6c
+binfiles arch=amd64-netbsd size=264
bin/amd64-netbsd/hilatex
bin/amd64-netbsd/hishrink
bin/amd64-netbsd/histretch
@@ -147872,10 +148244,10 @@ binfiles arch=amd64-netbsd size=263
name hitex.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of hitex
-containersize 235884
-containerchecksum 76176aa73c2a82cd2fd4a5d8683158920159cdf30c25e1ddda517cbb4b56c4540795569bd66c0da25a05fd7e770a5aa36b4752990b81d7ed465718b0edf72001
+containersize 237340
+containerchecksum ebd9d3ff6d90878a60e49568bed7af2ea5c7ed9864f40188775dc45ad93e40957dbd169fd14b7233f25cb30757e4951c508ca509b2c882fa605c58357a4ecb8a
binfiles arch=armhf-linux size=159
bin/armhf-linux/hilatex
bin/armhf-linux/hishrink
@@ -147884,11 +148256,11 @@ binfiles arch=armhf-linux size=159
name hitex.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of hitex
-containersize 265908
-containerchecksum 9d9c533a034e43850f3b46c67020247bb7c11da7f54fd7e62a6344e13dab8d479ba5bdff3677ea92c053382a0bc7deeed97af0982a49fefcc468d4f21ea0d273
-binfiles arch=i386-freebsd size=198
+containersize 288000
+containerchecksum 8eeaeb50fff029f508799ef9b91ba5e9ec13878069919ea5830a6b96a1a454e690c33cfc5345cbe17577d356ddd1eb8e8b4377f5e26df1639ef7317bceb83148
+binfiles arch=i386-freebsd size=264
bin/i386-freebsd/hilatex
bin/i386-freebsd/hishrink
bin/i386-freebsd/histretch
@@ -147896,11 +148268,11 @@ binfiles arch=i386-freebsd size=198
name hitex.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of hitex
-containersize 263624
-containerchecksum 6b82c721a171db7ae4a06dff1f153702f4f598fd74f1862cd6d438f6fa45a91e10ef3d48c14f77eacb1338cc14b56cd628b5fe4b78dc2850c3bd4b7f14359304
-binfiles arch=i386-linux size=190
+containersize 265356
+containerchecksum 8e2423be40636fc10b71aa589dcb36d2173fe787d2a643675e9d0e273d60512a8fcc3eca5096e97873edb906980e8d7ab76d2633f78c2cca328dbc73e5225723
+binfiles arch=i386-linux size=192
bin/i386-linux/hilatex
bin/i386-linux/hishrink
bin/i386-linux/histretch
@@ -147908,10 +148280,10 @@ binfiles arch=i386-linux size=190
name hitex.i386-netbsd
category TLCore
-revision 65957
+revision 70286
shortdesc i386-netbsd files of hitex
-containersize 227568
-containerchecksum 56b70ae2705f67578680b8ee759296c257b5c90fa1a2d99a59f323413e6ae76ce2faadbd0e4e334853a843ec7990b409330691b5d7dbfe216751a387419e618f
+containersize 228876
+containerchecksum 1f4da766b4af0a320e7cfae0aa354f08227f13b475a36c5ead0320d68fc1f2c629774ac07c34bf66adcc32bbddcdfd4847c127d886b061c5e8d9647dcb666549
binfiles arch=i386-netbsd size=233
bin/i386-netbsd/hilatex
bin/i386-netbsd/hishrink
@@ -147920,11 +148292,11 @@ binfiles arch=i386-netbsd size=233
name hitex.i386-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc i386-solaris files of hitex
-containersize 248460
-containerchecksum efd46c599e7929481d513b0677ad5a037760c61b8e1fb631845e218227044f318aee7353ab5f1706e8dbe7ca746e0cc2ffc18e21f93db73f51c45b19f0a7f887
-binfiles arch=i386-solaris size=166
+containersize 256192
+containerchecksum 09ad7c6f1606ffe31e9203bdc60d6e4774417aa504e682f3a1a748f6f9b42be68fff525d1ae0b46b50f782c9425779dbe4df2ec9f026a068b6894f4c3a3820c6
+binfiles arch=i386-solaris size=172
bin/i386-solaris/hilatex
bin/i386-solaris/hishrink
bin/i386-solaris/histretch
@@ -147932,11 +148304,11 @@ binfiles arch=i386-solaris size=166
name hitex.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of hitex
-containersize 618380
-containerchecksum 5c84e3313e12582f6c7dbdce643a8b6700bc9addf8d361155225d3d25b3010abca421e5f04dc412e1def6253c7e2449c750c1be29e64a238954c77515df577c1
-binfiles arch=universal-darwin size=483
+containersize 621744
+containerchecksum 7f3d98ab191ae02720ff65fbc9106c5849b9f67af5462a3457fcdcd70c3f3e77d5a2838701c2c3c8271287b7c782144c74c2cd85c92e8c268d22db0a5861f4bc
+binfiles arch=universal-darwin size=487
bin/universal-darwin/hilatex
bin/universal-darwin/hishrink
bin/universal-darwin/histretch
@@ -147944,11 +148316,11 @@ binfiles arch=universal-darwin size=483
name hitex.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of hitex
-containersize 279996
-containerchecksum 585804401ec49d3221e9bec608ea1586c32b259febb2e47b001171c932c7ef65a826d20bd3e073446ca8494dfaed338be957b3f9acc1a22ce31a5bd1265c474f
-binfiles arch=windows size=176
+containersize 281004
+containerchecksum 3de63e263b5d67c656b668dfb43d574794c7cff145aad1dda272a6e2d97d007e28c0df035699bf449da7cccd4f05ecfa9c394d8851d6bc1f75ac85ceb24c0d5b
+binfiles arch=windows size=177
bin/windows/hilatex.exe
bin/windows/hishrink.exe
bin/windows/histretch.exe
@@ -147956,11 +148328,11 @@ binfiles arch=windows size=176
name hitex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of hitex
-containersize 278608
-containerchecksum bef62caf0560482ff87e61254558725accde5b06663d245b08e49c31d55e07781f20360e5442a210279729c77e3322d44bd7ea61405efd9585d9d8a101fd05af
-binfiles arch=x86_64-cygwin size=176
+containersize 279632
+containerchecksum 991d24f2c484681904d16d79335d4ce4ae1157317ed68eaac55c69c9c18b5d94121683a44323bc48d088c4e044c3b9b432cfb204d49c0b447356768a83c9ab27
+binfiles arch=x86_64-cygwin size=177
bin/x86_64-cygwin/hilatex
bin/x86_64-cygwin/hishrink.exe
bin/x86_64-cygwin/histretch.exe
@@ -147968,11 +148340,11 @@ binfiles arch=x86_64-cygwin size=176
name hitex.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of hitex
-containersize 267836
-containerchecksum 8c7f070b7cebfa54fe4c3c5911e7b1357a66bcb1dc0fdc2e44b6866a7736d9f6e6ef5a8fc664e7f861c335c7ea101ae9faf301ba210a786a5f6734357c996b47
-binfiles arch=x86_64-darwinlegacy size=163
+containersize 269536
+containerchecksum 420c0a8501973341eaee765a90a52cbed573334cd6ab42f3ae081cec6ea15e2451b599f9be24adbfead272273d44759e3e5c82f0ba1e8d6d921383a49ba2eb8a
+binfiles arch=x86_64-darwinlegacy size=164
bin/x86_64-darwinlegacy/hilatex
bin/x86_64-darwinlegacy/hishrink
bin/x86_64-darwinlegacy/histretch
@@ -147980,11 +148352,11 @@ binfiles arch=x86_64-darwinlegacy size=163
name hitex.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of hitex
-containersize 290076
-containerchecksum a01a1e36862a28ac790be573ce948d9b7f950cb7e752d1eb8b081202f35c9434a1353f309e2cecb3d661598c6de9a19eabf261388316f426d4ba391695eb8b3a
-binfiles arch=x86_64-linux size=191
+containersize 291824
+containerchecksum dadc575fc3ba55ca4393e3bc5f8e21d5ed97d1de8406f0a4cd558db2d83cd170632aba0c046bc92eb1f9ddd170cec2380d83fca55bc365893b9b2ed9fc77826e
+binfiles arch=x86_64-linux size=192
bin/x86_64-linux/hilatex
bin/x86_64-linux/hishrink
bin/x86_64-linux/histretch
@@ -147992,10 +148364,10 @@ binfiles arch=x86_64-linux size=191
name hitex.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of hitex
-containersize 306664
-containerchecksum ebc06a5302664a1cac743b583f609eb9f75e8fa752d1de78ce799774ce9ba8512927237b39cb2d5644ab34292570ceb919a8030cf1bf183f98f8c90659fd72cb
+containersize 308088
+containerchecksum 60616fc941ede6f69c6feb249c2812b8a0c9a24642f9470c2c4b22316f3908c7f122a7b39790bf3c0c4491183c2e1cac5b8268f1e43350cef7c4f8ea4576a3d5
binfiles arch=x86_64-linuxmusl size=192
bin/x86_64-linuxmusl/hilatex
bin/x86_64-linuxmusl/hishrink
@@ -148004,11 +148376,11 @@ binfiles arch=x86_64-linuxmusl size=192
name hitex.x86_64-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of hitex
-containersize 297788
-containerchecksum 5057a15e00a3ba441783d1ae977195d9b27fd414a152edc6e4ae4f7503c66644e3f42bf445e382dddc812cd1881ba260755add173fed94b9f59d1a185a99842e
-binfiles arch=x86_64-solaris size=194
+containersize 307040
+containerchecksum 5e5cf13effd4646bbcea976093e58611605f45c1d2266946a1ee24fac5386cf416adbeb243adee6eec265ec264e9bfbe21ef100c190dd157a46db791ebd81fed
+binfiles arch=x86_64-solaris size=201
bin/x86_64-solaris/hilatex
bin/x86_64-solaris/hishrink
bin/x86_64-solaris/histretch
@@ -148467,7 +148839,7 @@ catalogue-version 1.15
name homework
category Package
-revision 70050
+revision 70044
shortdesc A LaTeX class for writing your homework
relocated 1
longdesc The current document class is for writing homework. It has the
@@ -148483,9 +148855,9 @@ longdesc respectively. You can mark the unfinished parts, and a report
longdesc shall be generated at the end of your document for reminding.
depend einfart
containersize 3792
-containerchecksum df7e3907150a637b948ead1db86158058a096ca1df98789f012a6e2ad2aef2d4b84c17dbe0d11ef2a459f1fcf9708d5775bbdee25c4542eb3f5439b95c346c89
-doccontainersize 375304
-doccontainerchecksum 6dbf5889b71e0022f87c59008b884b49c7e882d99dc2e7dd39a2e04d8429a71064b71ea389279dcbe919b1d04da9dd3bb6a4998c066aa507ae64f96e95c1e94c
+containerchecksum 790aacb35b88c63a9b27c2a54d5d471fa78c807df8ff23d1951b260b102ca5dfce1a0b9ee3af7ff157493c081e3154a51f83964ab1cf4f352df1bb9cfd1e144f
+doccontainersize 375312
+doccontainerchecksum fafcd7f35bafd422a5136e396b0c2aef27e9d8d2fdc8f24cb6607a9fbef9fe299d17e5ebb34bb3f7f13666e3d2e1223bfccab483d598352864b2f17a3eb7b73f
docfiles size=156
RELOC/doc/latex/homework/DEPENDS.txt
RELOC/doc/latex/homework/LICENSE
@@ -148781,7 +149153,7 @@ catalogue-version 1.1.2
name huawei
category Package
-revision 69871
+revision 69858
shortdesc Template for Huawei documents
relocated 1
longdesc This unofficial package provides a class for creating documents
@@ -148825,17 +149197,17 @@ depend transparent
depend trimspaces
depend wrapfig
depend xcolor
-containersize 260380
-containerchecksum 0678b16b3fd681a0d1b8da43f87ee2d0d42510de15fa84733c008c8e8298de0f9172ed0046ca58862539564e960b94b3786233f277734320e74678492e5bb3a4
-doccontainersize 781868
-doccontainerchecksum 640d3b244481aed907025fce0271a81cf31a55ba991f599c87e146c005c6349078993b43df7d8260475c82d5abd6d23e77988cead11f0b74422c6bb231bf3595
+containersize 260384
+containerchecksum c57715198c323fbb05cf7de78d8e13da2e9788e17ab6de09d4429b5600a77607e1b1d2efe09bea94612f430924712913e15b490829c8f984e2bddfda2c2fbdf2
+doccontainersize 781880
+doccontainerchecksum 3e2b19faf7f7df0cd09d0caa0bc36f44b54fc430752328c68e82ad0708f71976152b99e45dc106bd97ace20d1c45d5fb08fb08ff97a4608b29e5eb9d4b7f09ec
docfiles size=201
RELOC/doc/latex/huawei/DEPENDS.txt
RELOC/doc/latex/huawei/LICENSE.txt
RELOC/doc/latex/huawei/README.md details="Readme"
RELOC/doc/latex/huawei/huawei.pdf details="Package documentation"
-srccontainersize 10600
-srccontainerchecksum dcf0989d3769ff2e43580953f009efa4d9372e58d45af5821e81e8766096568a59ebb1ec21e68e2b1696edd5e2cb6f9fa4ee39daf3e2d46d10c56a2f0dcb0e5f
+srccontainersize 10596
+srccontainerchecksum 0a3589898efde6f3e48827fa65a3f98ac034c37c09a3d0a5d091e13ca956f2b6ba2f600ee7b43e4445afe05962b5d5a687c450dc96f056e33a53bbb4d0eb4b38
srcfiles size=10
RELOC/source/latex/huawei/huawei.dtx
RELOC/source/latex/huawei/huawei.ins
@@ -149028,7 +149400,7 @@ catalogue-version 0.39
name hvfloat
category Package
-revision 70400
+revision 70394
shortdesc Controlling captions, fullpage and doublepage floats
relocated 1
longdesc This package defines a macro to place objects (tables and
@@ -149040,10 +149412,10 @@ longdesc \hvFloat{figure}{\includegraphics{rose}}{Caption}{fig:0}.
longdesc Options are provided to place captions to the right or left,
longdesc and rotated. Setting nonFloat=true results in placing the float
longdesc here.
-containersize 14676
-containerchecksum dd24119659fc1b0d359488451218cabba05b226469c9a56997f6ae491fea42cf58d7b131f7e6ddbd576ae98d94575a9518aa4bb5d10a97875c0e19b647f0c250
-doccontainersize 18175912
-doccontainerchecksum 98b26dee51f787d82e49f37fda6e902c39af3c5e0618090bd78e2577d0a080b7cd511064d7b41aa4e356d4ff176e87c9b68399d1e06532e20b6d392d3e714851
+containersize 14664
+containerchecksum 8070c71e7f3fd29e4d8b53eef32e90efe4ccc39d877a208c4c6d680c37494bdb51786ad0db7ad98b449b6f279509de2c52c162cf78a4679413a319907554507e
+doccontainersize 18175924
+doccontainerchecksum 702499225f4d2d6dfcf7a6e60512ddcb7c88f77859b4eb9e22a646fc7d656f67830972c96f4ed4bbbbc2354ec12f88c28d32713974ea9c9b7160e0dd7a90fd0b
docfiles size=8679
RELOC/doc/latex/hvfloat/CTAN.png
RELOC/doc/latex/hvfloat/Changes
@@ -150035,15 +150407,15 @@ runfiles size=8
name hyphen-base
category TLCore
-revision 68321
+revision 70247
shortdesc core hyphenation support files
relocated 1
longdesc Includes Knuth's original hyphen.tex, zerohyph.tex to disable
longdesc hyphenation, language.us which starts the autogenerated files
longdesc language.dat and language.def (and default versions of those),
longdesc etc.
-containersize 22604
-containerchecksum d3f2749cc6946702ff0d51c1d823531bc92b77c1106aec252c84cc8649aa56048556c90e9792f1b0749bba0b86b7c34aa2b04fe2946d1226315dbc73add36913
+containersize 22596
+containerchecksum 4a3c458a0ed0fc0300adedc233a4a5eb7302952cd507d666682caf74910476534b1bff9c86f6352da0c89d4ef2ee0dfc8e7b6c732a3b649f95659eb410a5651c
runfiles size=24
RELOC/tex/generic/config/language.dat
RELOC/tex/generic/config/language.dat.lua
@@ -160890,13 +161262,11 @@ catalogue-version 2.7
name jadetex
category Package
-revision 69742
+revision 70002
shortdesc Macros supporting Jade DSSSL output
longdesc Macro package on top of LaTeX to typeset TeX output of the Jade
longdesc DSSSL implementation.
depend amsfonts
-depend atbegshi
-depend atveryend
depend auxhook
depend babel
depend bigintcalc
@@ -160907,7 +161277,6 @@ depend cyrillic
depend dehyph
depend ec
depend etoolbox
-depend everyshi
depend fancyhdr
depend firstaid
depend gettitlestring
@@ -160927,7 +161296,6 @@ depend kvoptions
depend kvsetkeys
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-fonts
depend latexconfig
@@ -160953,12 +161321,12 @@ depend uniquecounter
depend url
depend wasysym
depend zapfding
-execute AddFormat name=jadetex engine=pdftex patterns=language.dat options="*jadetex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,amsfonts,auxhook,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,latex,latexconfig,letltxmacro,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
-execute AddFormat name=pdfjadetex engine=pdftex patterns=language.dat options="*pdfjadetex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,amsfonts,auxhook,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,latex,latexconfig,letltxmacro,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
-containersize 29932
-containerchecksum 7406670d136a018d8cc7a7e39d4ce6a2b4b58e48c8947eb257a2d014cf69e923fe770f8fd8b38c726b66f6924d36adbaadf59dd9b6f1638a598dcb812a84f926
+execute AddFormat name=jadetex engine=pdftex patterns=language.dat options="*jadetex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,amsfonts,auxhook,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,latex,latexconfig,letltxmacro,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
+execute AddFormat name=pdfjadetex engine=pdftex patterns=language.dat options="*pdfjadetex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,amsfonts,auxhook,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,latex,latexconfig,letltxmacro,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
+containersize 29908
+containerchecksum 4f61c4919b20bcae81cd5a9eaaae6c1a68f106959f342dd15e278da48019fe06c347839b8cf89590bbe756a088201db17e615d8b6959f9a8586ab329274c5311
doccontainersize 31788
-doccontainerchecksum 16e2a21e6e724d194f4af66dd67e66fa294332f05222384ba63d5ec76a52d0da12e6381b60735111078cbab8129bb7f7f039487a7a0fda61466e2409f4ce3428
+doccontainerchecksum d3422a9e31485b2d280760ace278dfcf4bf1e8790daac8a8f84c62555b68d2d989ee1a128a9ae7a703d7298ce9af9b61d845c418c8bd1254265f204ff48279fd
docfiles size=34
texmf-dist/doc/man/man1/jadetex.1
texmf-dist/doc/man/man1/jadetex.man1.pdf
@@ -160977,7 +161345,7 @@ docfiles size=34
texmf-dist/doc/otherformats/jadetex/base/releasenotes.dsl
texmf-dist/doc/otherformats/jadetex/base/releasenotes.xml
srccontainersize 19312
-srccontainerchecksum 7e28b294c84333b5c8b4ab769fd0907b6ee3b05e8cc6f729c8925029c9a9d03f5b81b000abd26a5b6d7158ed7465efc2f403a7c5a28786f2a23592e0deeea6cf
+srccontainerchecksum 0b048315cf74de4c7af1ef42d3dc81c4f3e566ea5611fbc1d0969fe7d6b42358c356193b8a9a86cd2f67415bb5274a1b9d95009623ffda72f8530e4b19424977
srcfiles size=21
texmf-dist/source/jadetex/base/Makefile
texmf-dist/source/jadetex/base/jadetex.dtx
@@ -165963,17 +166331,17 @@ catalogue-topics labels
name jlreq
category Package
-revision 69932
+revision 69911
shortdesc Japanese document class based on requirements for Japanese text layout
relocated 1
longdesc This package provides a Japanese document class based on
longdesc requirements for Japanese text layout. The class file and the
longdesc JFM (Japanese font metric) files for LuaTeX-ja / pLaTeX /
longdesc upLaTeX are provided.
-containersize 153484
-containerchecksum a6ed1fc8706d9aa3bb759bfbf85f451db0f5f941b46c607217a0d1af653e617e56c50d4b82e0f376d212dfff5e4fc46f922e5397940931cdf2acc191f7c34ce6
-doccontainersize 535608
-doccontainerchecksum 01b804ec9c3447f50666e5bea40a3142c29b66aca69f69b2ea5cc7f4696b569744e55b148da26f6dd9698ad4cf580a738196c5b09fe0a0b831105251ebcf1855
+containersize 137500
+containerchecksum 3dad554b8bec221758fa403786cf2876b21043e66edff20fc9ffd56b1a5b2d25d1031a38d64299057dfbbfa078079e619b39636d28a614fadc891744f950ea2e
+doccontainersize 535612
+doccontainerchecksum fef618ffd7ec89c70daf52140a8d4630724866635827e4388c23061377ffc10f51b3cd2e26fd47cb590ce0ddea64e9b757fa1592f714cec4434832d55bbf993a
docfiles size=176
RELOC/doc/latex/jlreq/LICENSE
RELOC/doc/latex/jlreq/README-ja.md details="Readme" language="ja"
@@ -165986,8 +166354,8 @@ docfiles size=176
RELOC/doc/latex/jlreq/jlreq-trimmarks.md
RELOC/doc/latex/jlreq/jlreq.html
RELOC/doc/latex/jlreq/jlreq.pdf details="Package documentation"
-srccontainersize 8292
-srccontainerchecksum e6f452eaebc5b9a3b7a257dc1754f6aac822a92acac243b3301475f38828787972f8c15a34d92117c3036fd38f6a3c0b8895979234a52f3a65f518b129a601f0
+srccontainersize 8316
+srccontainerchecksum a689d346d882a4f849febc1c6faae968b399d7190f439970335879810114158e04708f8dcfc79c42304a77f5c9bd78b035a072114ef41dfe6351f4c70927b689
srcfiles size=10
RELOC/source/latex/jlreq/Makefile
RELOC/source/latex/jlreq/README-template.html
@@ -166110,15 +166478,15 @@ catalogue-topics japanese font-cjk class std-conform expl3
name jlreq-deluxe
category Package
-revision 69971
+revision 69961
shortdesc Multi-weight Japanese font support for the jlreq class
relocated 1
longdesc This package provides multi-weight Japanese font support for
longdesc the jlreq class.
-containersize 21860
-containerchecksum bf50a2ffb569202f6bf182637482005543ec24ac214287c3dcab234b6613430f4cb0e8d7a987bbd674e1c3442d57f03bee2df5cd1384eb29298b9f304a07099e
+containersize 22328
+containerchecksum 816031a5002bb54b75259287e100e5731202b47f15d9b746645e9e42c6ed4c81422d115416e0e7846df87cf547938edb8a55a76fefd6b432bb0f5cbb7e4b7515
doccontainersize 66496
-doccontainerchecksum 8a8dc59a0db9128c3d4db9a207beae6fca412ff9da59b7dfa32741f3cb770ecfe2d5ac1dd02521a938d82c5c15735f8e42ac56906ad59a097a5a150bdde1bc57
+doccontainerchecksum 0bc8b5bfaaecf32dacfef16f00de5196ae8400f3c0e04d419406843d1d768d205b3f7c2d81e3eb69fdd7e45cf6f8da02dceeab3de8c23d711461db51caff03e4
docfiles size=20
RELOC/doc/platex/jlreq-deluxe/LICENSE
RELOC/doc/platex/jlreq-deluxe/README-ja.md details="Readme (Japanese)"
@@ -167403,15 +167771,15 @@ catalogue-version 1.00
name jnuexam
category Package
-revision 70117
+revision 69968
shortdesc Exam class for Jinan University
relocated 1
longdesc The package provides an exam class for Jinan University
longdesc (China).
containersize 12684
-containerchecksum bb4bd96084b70e0808ee15cf23f0ab721b6268074cc5544aa80c9a8b3f6c8a1784591859215e17846a606d7ca76d93ce103c70a8805a321d5833d59061e71192
-doccontainersize 356480
-doccontainerchecksum 45b3a04be31cb9fd778a2a264575a536750bf0c73b0ccb0fb68fb83d99fbe370a70c119e962a1dfbfdcc3da4056439e271aea0e06d7b7289e0c97f3bfff1d6e4
+containerchecksum 9a5c05e867e399cb89203d934b82fea99e8f06f287dacddddd79c4992ac2247b3d6c26dcc7a6746661e6c19bbe9e6040750f35600e5e2260a110396c663f3d95
+doccontainersize 356484
+doccontainerchecksum 720bb9036e8921177a694d2f76a4c9eed2f6e1c658de1a7dba1936959b2265072bd40b706570ce159686d76784a9b8934de6bf1f65aaa07d4fc673f2425e9133
docfiles size=133
RELOC/doc/latex/jnuexam/README details="Readme"
RELOC/doc/latex/jnuexam/exam-a-answer.pdf
@@ -167948,7 +168316,7 @@ catalogue-topics japanese class
name jslectureplanner
category Package
-revision 70448
+revision 70443
shortdesc Creation and management of university course material
relocated 1
longdesc The jslectureplanner package facilitates the generation and
@@ -167961,10 +168329,10 @@ longdesc date of the first lecture is specified. Moreover, the package
longdesc can be used to generate a sectioned course bibliography via
longdesc BibLaTeX. The bundle also includes a package jsmembertable.sty
longdesc that helps in generating course member and presence lists.
-containersize 13360
-containerchecksum 8a94f190abadb4e8d4293782984f94b17f5d3c352d4a0c4f9368327df0e27a416d2f584ee44c4829f05afebeb8a4bba2770086d8094c54cdee887f11620da808
-doccontainersize 1219516
-doccontainerchecksum 0907581fac47177633defd0f55a6a8373078224e2edc62b0c8f5e2521464d179833b9a50d513ca52ae1994465f75b129fc34cf81ff54fa904fc7a7622b4a0128
+containersize 13364
+containerchecksum 80a89168832795b095eea58b2219895bd21a4959653420955057653173fdc4cc3cb739937bd01f8845238a2db5af7640848b8a64d70ee28939631f9c478b9a5e
+doccontainersize 1219548
+doccontainerchecksum dadb7116ae9fc7943dd060b261bc81a3c9f0222bf2e231e588d54ffbc9cf4b21c2aed513683a145dd4b03de5b7f604147c44c93a480ace509fe377f7f3342e42
docfiles size=424
RELOC/doc/latex/jslectureplanner/README details="Readme"
RELOC/doc/latex/jslectureplanner/examples/English/lecpresbody-english.tex
@@ -172398,7 +172766,7 @@ catalogue-topics numbers
name kaytannollista-latexia
category Package
-revision 69876
+revision 69843
shortdesc Practical manual for LaTeX (Finnish)
relocated 1
longdesc "Kaytannollista Latexia" is a practical manual for LaTeX
@@ -172406,10 +172774,10 @@ longdesc written in the Finnish language. The manual covers most of the
longdesc topics that a typical document author needs. So it can be a
longdesc useful guide for beginners as well as a reference manual for
longdesc advanced users.
-containersize 592
-containerchecksum e7b939930e9c0952cf67e402b363a00a7aba9ad226bf4301650553ab8117a78dc415f81c31e8ca6a8eeaefffcf3fe95a57cd93164df01b63f74c0513f0e8469d
-doccontainersize 1043224
-doccontainerchecksum f44779f63f301091ac2119f6c5002c29d2969509775acc752ca4aefeca8b16bbc02f352c36e3b869ea6070f3fd70bacecf3e7d41d00bc5007d0176e5cc489f3e
+containersize 588
+containerchecksum 932c080f92e1e97e6a942ed15388b581a2534531cf1a2fe13327433f1ce744c48b0d17742a0ce7cbd69ffb5708737fc9d06eb368275e0e412ac2f1d0b92cc731
+doccontainersize 1043148
+doccontainerchecksum 1f9bfc8b71f9f748976c7ca61d4d658dc493911adb9c1254d523a5e7f9d446bd68eb4c289df8b7ce708aaa9714c235967e5fbe3638a9e40f78899b738855cd63
docfiles size=390
RELOC/doc/latex/kaytannollista-latexia/README.md details="Readme"
RELOC/doc/latex/kaytannollista-latexia/kaytannollista-latexia.pdf details="The document itself" language="fi"
@@ -174412,7 +174780,7 @@ catalogue-topics diagram
name knowledge
category Package
-revision 70609
+revision 70594
shortdesc Displaying, hyperlinking, and indexing notions in a document
relocated 1
longdesc The package offers a systematic way to handle
@@ -174420,18 +174788,18 @@ longdesc notions/concepts/terms throughout a document. It helps building
longdesc an index. In combination with hyperref it makes it easy to have
longdesc every reference of a concept linked to its introduction. It
longdesc also offers simple notations.
-containersize 22796
-containerchecksum 8c97dc4a8a0ab5fcd2ae59da3b4217fd1e6171d788197c3755577a89fb86c6d7d7075778c669bdee8c0ff8157583695dd20c1186b54f80b87c968add98970f99
-doccontainersize 830620
-doccontainerchecksum a0058b7065a25ced7469000536321cd830503fc3e3f1bdc00d44ec4dcd7eded837f62ccca4ea49d46c9262c7bf8accb2f29d6564f39e9c3acedb163817098da9
+containersize 22792
+containerchecksum 7d12b779220ae4905a74717f2244e32f35f7f6323778a3ef3ad2da074c6d325a42f4efc9c1569101479448d1ef81c587e3a6cd807d56609d90bbe7ed83003691
+doccontainersize 830636
+doccontainerchecksum ae37ddbdd67bb60587605be85a5974f522ee7e89af2aeb76dad3cef24646379d9fd0b3c927fd5e0676027ca231b068e68ad2c56287a3cf3cf1ededd9518f410b
docfiles size=245
RELOC/doc/latex/knowledge/README.md details="Readme"
RELOC/doc/latex/knowledge/knowledge-example.tex
RELOC/doc/latex/knowledge/knowledge.pdf details="Package documentation"
RELOC/doc/latex/knowledge/knowledge.tex
RELOC/doc/latex/knowledge/makefile
-srccontainersize 42516
-srccontainerchecksum f7586aa134293da41c4920402aba230c12e5f14fa9e7675206fd270203bedfa42426e1ffd56f4289980b5a49877f8179cacf4ecba8f2a5fb857fc891087a2531
+srccontainersize 42576
+srccontainerchecksum 83278472c7e50e986901da91f4b36a1582faaa6b4ed6d95fbc7f5de9321e99f921e73386c0eb9cf2e97b8f70d827d23b0220e4f6f3e8f021ef9f27df1882bf4a
srcfiles size=57
RELOC/source/latex/knowledge/knowledge-code.dtx
RELOC/source/latex/knowledge/knowledge-configuration.dtx
@@ -175443,7 +175811,7 @@ catalogue-version 1.0
name kotex-oblivoir
category Package
-revision 70496
+revision 70491
shortdesc A LaTeX document class for typesetting Korean documents
relocated 1
longdesc The class is based on memoir, and is adapted to typesetting
@@ -175452,10 +175820,10 @@ longdesc belongs to the ko.TeX bundle. It depends on memoir and
longdesc kotex-utf to function.
depend kotex-utf
depend memoir
-containersize 46556
-containerchecksum 7a4d61b5e5c20b3ef673eae06b95403b7e3f65808f8bd1163f8d6a5fb33004a86991b5941da88cdd89b74ffb40bbfe14d0a51f062b51c7567b03609cfaf6ddc3
-doccontainersize 852404
-doccontainerchecksum 42c6dd702f21cfda0a1857f42832a53c0d936280e07c0a3700e39d614569bc5bdd0dd50daf4e01fcb0c3ab94c747645a1ee7298966b5c3ce16281b402bd1ca97
+containersize 46600
+containerchecksum 11cab6c1073761692a2dbb2ce4e2f4fe2a2f7ce4594b5a9633b4f482bbca5edfed3682a16b8e9d598a3663219291d3a5962a6b00e07ad9cafd50d9fb96cf3776
+doccontainersize 852372
+doccontainerchecksum c8faf9be789aa61c3ef06bc8fd858dde210b194818ed06a89c8d4c521101900f5cd33aee8483a0cdcddffa26bda8b5ddab2db5b40b708519567738121db7f660
docfiles size=275
RELOC/doc/latex/kotex-oblivoir/ChangeLog
RELOC/doc/latex/kotex-oblivoir/README details="Readme"
@@ -175792,7 +176160,7 @@ binfiles arch=x86_64-solaris size=3
name kpathsea
category TLCore
-revision 69121
+revision 70348
shortdesc Path searching library for TeX-related files
longdesc Kpathsea is a library and utility programs which provide path
longdesc searching facilities for TeX file types, including the
@@ -175801,11 +176169,11 @@ longdesc layered on top of a general search mechanism. It is not
longdesc distributed separately, but rather is released and maintained
longdesc as part of the TeX Live sources.
depend kpathsea.ARCH
-containersize 32636
-containerchecksum 08b2ebc546de9615927f9933937c81a5fbae702e20e389055c62f13b70ce81a87995dcf402d8b94d0025eea80f9fbc1500270b615fe3f26f1e9c12a245dbd1d4
-doccontainersize 1040296
-doccontainerchecksum 17687e289d912120a0dc0b79829145521dcb660fee024f249153235bb2591936bedae9370ff20d8eb137d54d40d73d2854e4312651eff8a6763bf70040e0bf47
-docfiles size=577
+containersize 32856
+containerchecksum 86c875557a05e4a5a1f37303d1ffce4c739f8302fd4a3e7057d79d09508b9cf7eaeec756ddbde74b2f20cdc3be90b05abc2ee45569c507e10a6ddfe82ba01f2e
+doccontainersize 1057480
+doccontainerchecksum b1ae8416a5f97f9bd619d7de84f7ee0788fae299d80027def1eb8b896c0956f45c6f0f2afcbd76f55c2a72226c92111fed321985c4a54691f6f7390ceaefdcf6
+docfiles size=584
texmf-dist/doc/info/dir
texmf-dist/doc/info/kpathsea.info
texmf-dist/doc/info/web2c.info
@@ -175863,11 +176231,11 @@ catalogue-topics sys-supp
name kpathsea.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of kpathsea
-containersize 38524
-containerchecksum 454d20198a55449cb9cf54e328dc29e129dd452ae5b867c04e24c9bce9b6056e647aa1ac419026dcfe269682ae867a0cf317ecc2e8ac63846e64bdca42aaaef6
-binfiles arch=aarch64-linux size=32
+containersize 38780
+containerchecksum 58e145fb9e73ec1cd4744b9e6af9baf8c5da42f02f869ed68ddbd6f5557a0301ffd8220c8dc6400cba75d0417706115a92733478ddd836b472b89177c2473e10
+binfiles arch=aarch64-linux size=33
bin/aarch64-linux/kpseaccess
bin/aarch64-linux/kpsereadlink
bin/aarch64-linux/kpsestat
@@ -175875,11 +176243,11 @@ binfiles arch=aarch64-linux size=32
name kpathsea.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of kpathsea
-containersize 43256
-containerchecksum 7c11662b4b647b2edf76471366efd8b47cb4cd604f28796492ffb5c0e46237432d520817dbf3ae15cb7202b53524e3087de4d5ab89d2064465569ad21e1eb257
-binfiles arch=amd64-freebsd size=30
+containersize 40108
+containerchecksum 719e55a5ee2088bb2f75030206ed21f3035970ca1484a9b3765a9be6a967cacfa3fd8c141ff657a78549bfcf290792229abb8117fe2f66f0bff36e52b518eba3
+binfiles arch=amd64-freebsd size=36
bin/amd64-freebsd/kpseaccess
bin/amd64-freebsd/kpsereadlink
bin/amd64-freebsd/kpsestat
@@ -175887,10 +176255,10 @@ binfiles arch=amd64-freebsd size=30
name kpathsea.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of kpathsea
-containersize 38760
-containerchecksum 8e445c587c44adbd7716b98e64148a0fc4d93b36c6be5c2922679b96934434bfa05ac67f396f1b08fa7ebe60d733d74009c397a68bde727cf1de32ad0afb4d7c
+containersize 39344
+containerchecksum 931214fc1397858db662ac46b5102976f134a1892aba523c767b0fa95a7f22d06431cff1d8795ad0fbdea4ce33238d5acf3097ebc90f6795f8d2801c05334495
binfiles arch=amd64-netbsd size=36
bin/amd64-netbsd/kpseaccess
bin/amd64-netbsd/kpsereadlink
@@ -175899,10 +176267,10 @@ binfiles arch=amd64-netbsd size=36
name kpathsea.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of kpathsea
-containersize 32400
-containerchecksum f8b1e3088006644155fa79173e9327306003b8fc963a43749f15803bf1c18b20c7ee5e00ce742461691e08f8c381275a30961abcbef03e35ea0c048db721d322
+containersize 32816
+containerchecksum e8f39559495d772107f29d804355221869865de768c17d22f14911234755b31a2633d28564f3940ebfcf72473f9b427ba88b07581248abbd3da974f75031589f
binfiles arch=armhf-linux size=25
bin/armhf-linux/kpseaccess
bin/armhf-linux/kpsereadlink
@@ -175911,11 +176279,11 @@ binfiles arch=armhf-linux size=25
name kpathsea.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of kpathsea
-containersize 39536
-containerchecksum adf1c4482b2541736fdb72091f2542c8802f542ebb4a0c97f9317075b299f49b0875c76641fa6c578101ecd88ef4eb41e56ef60f74346a9199eea62815974832
-binfiles arch=i386-freebsd size=27
+containersize 40120
+containerchecksum 2ae493d96dc1387e7f5a5967989161ec179638369703bbff436b3488e0829b3bb8b57ab8f851c99341c306953285568d3fbd29c317f00b6a311aa61b096cbfb5
+binfiles arch=i386-freebsd size=36
bin/i386-freebsd/kpseaccess
bin/i386-freebsd/kpsereadlink
bin/i386-freebsd/kpsestat
@@ -175923,11 +176291,11 @@ binfiles arch=i386-freebsd size=27
name kpathsea.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of kpathsea
-containersize 43088
-containerchecksum 14a4c730b2d287e0768f11d2897f25dfdf40dbdd426df28225d55e8f81489cc14be53633a30211a379dcaaa1092fc403e5085046b04c71e44e24bd0b18cf46e9
-binfiles arch=i386-linux size=31
+containersize 43684
+containerchecksum 37760c1ffced4957152a0f69f578a398b0344603853bbc46d4692bc39a0644becad55e3ccd0ffa731959f1f66a67fe21003a2078ba1e9891600053b5d3b5465f
+binfiles arch=i386-linux size=32
bin/i386-linux/kpseaccess
bin/i386-linux/kpsereadlink
bin/i386-linux/kpsestat
@@ -175935,10 +176303,10 @@ binfiles arch=i386-linux size=31
name kpathsea.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of kpathsea
-containersize 35528
-containerchecksum 5274fffd61472ea469f05f10c1a43d62bb687bc24847df64b71eb35ecdb5ec2b00e947970d0ce28d6a63f01c642645aa40b9e122a225266c95a4fbdcc7807731
+containersize 35988
+containerchecksum 69cea935f87e1601b17e6e7660c883e892fed33495e7a022975e2d91e5efaeb4f65fbbd3ba0b3eed93cf5e4ef2777d5ea0ee8defbe6a820fcd4fb3fbe4e94c79
binfiles arch=i386-netbsd size=33
bin/i386-netbsd/kpseaccess
bin/i386-netbsd/kpsereadlink
@@ -175947,11 +176315,11 @@ binfiles arch=i386-netbsd size=33
name kpathsea.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of kpathsea
-containersize 41308
-containerchecksum 1aa8b73ab0610c63101bc73a57a68c03660c578491400e63d63bbd21b6cacda754ee1cd9273f55c964f74502504bc5c3450af4a691978f0bdf3092296e1ea70f
-binfiles arch=i386-solaris size=28
+containersize 42628
+containerchecksum 4b2b82cf1840d6a169b91d8fa872067df712c68ad6c50054c017b2db0c834787d5359cd0dadb50f8922dc420190ef1e34e19942aa79bdc7830dd411995299e87
+binfiles arch=i386-solaris size=29
bin/i386-solaris/kpseaccess
bin/i386-solaris/kpsereadlink
bin/i386-solaris/kpsestat
@@ -175959,10 +176327,10 @@ binfiles arch=i386-solaris size=28
name kpathsea.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of kpathsea
-containersize 83868
-containerchecksum 0bf2bc7996eba6c1e81dcb52230a86f9f115bec474232a14e7fbd8a46e25260e16d3f03dd29f80b801b9a31948dee887cc9adff2ebd10bbf9ca46f77957bed6c
+containersize 84952
+containerchecksum a07fa56adb2929ab6629932c15347b1264dacdaafaeb2ccfbe1ca81c59c2e692c0fc56e014cd79fcf70ab6a4e99c7ad9bc73ef4b44f7e30c5a9f5a5e6699b67a
binfiles arch=universal-darwin size=154
bin/universal-darwin/kpseaccess
bin/universal-darwin/kpsereadlink
@@ -175971,11 +176339,11 @@ binfiles arch=universal-darwin size=154
name kpathsea.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of kpathsea
-containersize 518324
-containerchecksum 1272a57eaca59d7310a8a39177afe41c9f861f14bead19543010dc52afae69560b93fbcae26196ecf936bb5ef3a4afd6d51b753d8af3bd14679b9f4414227c60
-binfiles arch=windows size=400
+containersize 518896
+containerchecksum bfe709bd77312316e231624a07eae49db6ae246d427510274cc6120ad9679cc3d91689392377ad73393f679ce446ca397b1cab0254c8ce50bbf6e05873e41828
+binfiles arch=windows size=401
bin/windows/kpathsealibw64.dll
bin/windows/kpseaccess.exe
bin/windows/kpsereadlink.exe
@@ -175987,10 +176355,10 @@ binfiles arch=windows size=400
name kpathsea.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of kpathsea
-containersize 45896
-containerchecksum 01219b752f9e9265bfa7d8a4bc3ea081ec8f5748254cb01ebb670858c17f8ca5ff94e138b010c6cd28196dfd4bfa9b7a122f01d944837f6fdca0531451fe06e1
+containersize 46436
+containerchecksum 0740ed13fba8a5aa99287f3216b39ccf29b36e713550511b98fb81c6ac65d0d31101495f4af0f1ef0b1422cbb15ad9a436abff254a2ea9428d6f90f3bb532ba1
binfiles arch=x86_64-cygwin size=38
bin/x86_64-cygwin/cygkpathsea-6.dll
bin/x86_64-cygwin/kpseaccess.exe
@@ -176000,11 +176368,11 @@ binfiles arch=x86_64-cygwin size=38
name kpathsea.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of kpathsea
-containersize 39468
-containerchecksum b8d85dd8e5df697de75dee4fc2ebb443038c5e75318ea09ab71ae4721a9de9fc11b224fa86f1772b4a1f804bcfe63d8fd6e4b99d2fb536ec1b787bdcb128c20b
-binfiles arch=x86_64-darwinlegacy size=31
+containersize 40144
+containerchecksum a364d0efb100544028d7df1967e7668becf6f51bccf9e0483114310feba7ab1b047f14a22833a947285303a7129e6074da171f968d431bf90e19e15cb1d0c3dc
+binfiles arch=x86_64-darwinlegacy size=32
bin/x86_64-darwinlegacy/kpseaccess
bin/x86_64-darwinlegacy/kpsereadlink
bin/x86_64-darwinlegacy/kpsestat
@@ -176012,11 +176380,11 @@ binfiles arch=x86_64-darwinlegacy size=31
name kpathsea.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of kpathsea
-containersize 40136
-containerchecksum da2e629dfa2b0d8831bc1509d2fed8138a8c458d3da6ab9cb969e3d99201ade08f63ae0e7388acbfe3c3aea581148b0d49075d2306ffa4fc963e4c107ea9bcce
-binfiles arch=x86_64-linux size=35
+containersize 40708
+containerchecksum f499f1d96a8e375b88e7c0f29d2372ffb807af739619813751dd0307413febce5e97680d16740db98249782154d2d101af4965782e752533db3b6cda6a6c215d
+binfiles arch=x86_64-linux size=36
bin/x86_64-linux/kpseaccess
bin/x86_64-linux/kpsereadlink
bin/x86_64-linux/kpsestat
@@ -176024,11 +176392,11 @@ binfiles arch=x86_64-linux size=35
name kpathsea.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of kpathsea
-containersize 43576
-containerchecksum b3edc790fa566d65ab0caddd18ba5fe8d539911473f79dbe7f9ec61c432765f146b735998cf90a6d28fc13429388f7637d84e2153e312c1d3c8fb4866a9aacbe
-binfiles arch=x86_64-linuxmusl size=31
+containersize 44096
+containerchecksum 6cec726b6f2ad6e71203da442f6c36a426f2458d4f724d5709cb20e7190e712355455ff113f314f9acc9e2f9a0f7e84a189db0de402600b553187c9daca58394
+binfiles arch=x86_64-linuxmusl size=32
bin/x86_64-linuxmusl/kpseaccess
bin/x86_64-linuxmusl/kpsereadlink
bin/x86_64-linuxmusl/kpsestat
@@ -176036,11 +176404,11 @@ binfiles arch=x86_64-linuxmusl size=31
name kpathsea.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of kpathsea
-containersize 44616
-containerchecksum fdcdf115d1a317a186461a00bb6c6b9c675ce0c2121434f089b5b3151f3d75c3ac3c0e5181d92c91a26ebc96b2aa0d8573e62edcc3388c8f478d3e2aecf0ed9f
-binfiles arch=x86_64-solaris size=33
+containersize 46528
+containerchecksum 4db1a69b0f902233cc4cdfecd76bf2a68e9cf15ad0d20d67f8cdb8c371eea1705d78c1031871a665775e7f118dc0e1e3f35f348a16380c85af1f3d17ea03d064
+binfiles arch=x86_64-solaris size=36
bin/x86_64-solaris/kpseaccess
bin/x86_64-solaris/kpsereadlink
bin/x86_64-solaris/kpsestat
@@ -179113,7 +179481,7 @@ catalogue-version 1.1
name l3backend
category Package
-revision 70027
+revision 70026
shortdesc LaTeX3 backend drivers
relocated 1
longdesc This package forms parts of expl3, and contains the code used
@@ -179122,17 +179490,17 @@ longdesc The functions here are defined differently depending on the
longdesc engine in use. As such, these are distributed separately from
longdesc l3kernel to allow this code to be updated on an independent
longdesc schedule.
-containersize 16236
-containerchecksum b0fa82d3f6ad4ece3ce1e0b254ee52c97f30b143e458ad4a2f96d530f787650ae2cafa20801b865e696fb4deaed2fdba3e82ab938e09d563569ab13d6abb331f
-doccontainersize 865460
-doccontainerchecksum 68c69840f18a1f2c0442a008d632d5bd1295390a11208b8b94391564cdd0095aced7ecd3ae59035ec55faf267266115c76adf3839eb22f084ae348fd051547f9
+containersize 16252
+containerchecksum bada6075641f8e932d8a9b23764536269792277906efe526bb906bb593148bf91092e802ef71649ca1d1962841747e379da078326d783d2201c2cd09dababc28
+doccontainersize 865468
+doccontainerchecksum 3a09a62cc0f8cba00d4d817d8d76ac763e6016715483d61214d7031819bd6bb90cb76b33a755ec549b2039008aad41f41c6553711eafae0256caf2a37aa40dc9
docfiles size=228
RELOC/doc/latex/l3backend/CHANGELOG.md
RELOC/doc/latex/l3backend/README.md details="Readme"
RELOC/doc/latex/l3backend/l3backend-code.pdf details="Package documentation"
RELOC/doc/latex/l3backend/l3backend-code.tex
-srccontainersize 33908
-srccontainerchecksum 4fc5659fefbcdb53f30f6852b38ebe2e05238637ebbcf9885fef6496c5f4e54749f341bc492bc65c17e268c71bdfd6ee5add0bdcde9baf8e527ae48a4915fc14
+srccontainersize 33912
+srccontainerchecksum 5ae5d6e073834eb8e6ed1b5d9b483f76a161ffd02bedb837cb18c146ec553f6b859adeb3572167d463ba2109c8735031da599a7199b643b882f9a248026fd5f2
srcfiles size=58
RELOC/source/latex/l3backend/l3backend-basics.dtx
RELOC/source/latex/l3backend/l3backend-box.dtx
@@ -179352,7 +179720,7 @@ binfiles arch=x86_64-solaris size=1
name l3experimental
category Package
-revision 70027
+revision 70026
shortdesc Experimental LaTeX3 concepts
relocated 1
longdesc The l3experimental packages are a collection of experimental
@@ -179371,10 +179739,10 @@ longdesc allows the alignment of boxes using a series of 'handle'
longdesc positions, supplementing the simple TeX reference point;
longdesc xgalley, which controls boxes receiving text for typesetting.
depend l3kernel
-containersize 22784
-containerchecksum c25e7d14f3208e59bca4da786df9f63bf64455e9adf3517438e4065e99dc0e89fdfdc0325f7aa26aec7e9622b99029a370a5d0fed6bcc780a62094cf26b1a03b
-doccontainersize 3139592
-doccontainerchecksum 4606266a1a8d5022594e7239821afc9d02b735b68bab4da681699851f748c0893763cb1943fe20eb7484f16ba955ee193e961b7f6235710f8d813198529245db
+containersize 22760
+containerchecksum 03d60516a12314946a46c7b7139e4c2b72a467abf87e0640cf4cc874c2f0f98350c529df7180fdfad9bc1485a1f6541f57c3439fb49ca63575202ddf4ea10917
+doccontainersize 3139524
+doccontainerchecksum ad1c868c140b9f65549ab06f04120742f1117482b5744d226e77615a7bd47b29df92ed95b723e941257d562147b4b8390955762fe696214bcac076f7a44df171
docfiles size=982
RELOC/doc/latex/l3experimental/CHANGELOG.md
RELOC/doc/latex/l3experimental/README.md details="Readme"
@@ -179389,8 +179757,8 @@ docfiles size=982
RELOC/doc/latex/l3experimental/xcoffins/xcoffins.pdf details="xcoffins documentation"
RELOC/doc/latex/l3experimental/xgalley/l3galley.pdf
RELOC/doc/latex/l3experimental/xgalley/xgalley.pdf details="xgalley documentation"
-srccontainersize 77300
-srccontainerchecksum 834b404c08acc25cdcc1124512d527e7f094c18ca6283ddecf85bebe25ed8bbcd40f2c9dbf56c19280f8dc1db3a2f35a6bb996175ef2a85a15280c9be6cd3ce2
+srccontainersize 77308
+srccontainerchecksum f2e4cf15753dd3b3131fcf3dca99f564d9950c4fe6c0d7e234313ec8aa87fe303bd6023f98c78d60cce1c9b42495d47c683d9f1b06dbb507f56fdb51cb941f11
srcfiles size=127
RELOC/source/latex/l3experimental/l3benchmark/l3benchmark.dtx
RELOC/source/latex/l3experimental/l3benchmark/l3benchmark.ins
@@ -179435,7 +179803,7 @@ catalogue-topics macro-supp layout latex3 pre-release
name l3kernel
category Package
-revision 70027
+revision 70026
shortdesc LaTeX3 programming conventions
relocated 1
longdesc The l3kernel bundle provides an implementation of the LaTeX3
@@ -179445,10 +179813,10 @@ longdesc LaTeX3 kernel and other future code are built: it is an API for
longdesc TeX programmers. The packages are set up so that the LaTeX3
longdesc conventions can be used with regular LaTeX2e packages.
depend l3backend
-containersize 179384
-containerchecksum 0908782021ed4318ee3d43eedd7b0a9b83621fc04f9e6ad3d540d2f87b24cda8bd69accdb9691495bb3f7320808b976d1b798b3c4c95778b9b2804f4401ff893
-doccontainersize 11970752
-doccontainerchecksum d57cc53087b1a164c9cf7586313acc176a4de52b3da6734df1e36603b5ccfdae9fb19542e46246474936363020ecfa65e12f024b1fb50097c3205bb6b6aa2961
+containersize 179472
+containerchecksum d5bed0434cc905753922f6cac87495c3c702ae31e4f41edab907cea6a3f8065e05b295711a6a267b206791f2d901ebdeb715443c3cc71626651ff6034dda610b
+doccontainersize 11970108
+doccontainerchecksum ee5dfbf0c70d46689099ad9f48082812c08452dde6fce9af937e3adfb19faef62e894beb18e990bc7d3d5cc6e93627e1789bdf32076958b796b7923b51c5c37a
docfiles size=3492
RELOC/doc/latex/l3kernel/CHANGELOG.md
RELOC/doc/latex/l3kernel/README.md details="Readme"
@@ -179496,8 +179864,8 @@ docfiles size=3492
RELOC/doc/latex/l3kernel/source3.pdf
RELOC/doc/latex/l3kernel/source3.tex
RELOC/doc/latex/l3kernel/source3body.tex
-srccontainersize 619476
-srccontainerchecksum e9b7b0e179fb168106277716bc8519b6a39d8062e3dce86212d582d42680ff7bb594542210a8ed1ee969226485db1d4055df071da898234cfeb9edad92d675fe
+srccontainersize 619832
+srccontainerchecksum 30714d157055b30cb20b631541f79f05b65c2d0b6240c887e3718edfc21ea7153b4d41e3c3ec0312ffff78ba7cb847bfd20288ac1f3d4cd97187d3661ac9422c
srcfiles size=956
RELOC/source/latex/l3kernel/expl3.dtx
RELOC/source/latex/l3kernel/l3.ins
@@ -179595,7 +179963,7 @@ catalogue-topics format latex3 pre-release
name l3packages
category Package
-revision 69992
+revision 69983
shortdesc High-level LaTeX3 concepts
relocated 1
longdesc This collection deals with higher-level ideas such as the
@@ -179606,10 +179974,10 @@ longdesc appropriate LaTeX kernel releases incorporating the ideas from
longdesc the packages here are l3keys2e 2022-06-01 xfp 2022-06-01 xparse
longdesc 2020-10-01 xtemplate 2024-06-01
depend l3kernel
-containersize 20312
-containerchecksum 906dd058afdec3fdc416e1a39e3cddc0b8c8079dea35bc1dc453ca4f287b849aef55b71bf9d8fac9a0c428d1ea3c6f0bccb0dfb9e895a2511cf31852024e3cb5
-doccontainersize 1454172
-doccontainerchecksum 49e8d52bf64ccd22827ca9faf65dfbe3a4af727feb089509fb512aa5ca8263be2c10294485e6da5bdd6a3426215ec5c83a434322ead9604aa029414b1047cf33
+containersize 20324
+containerchecksum f0650d99d39adc050877b2ba601bdfed7fb656a336dd13bfd2a9f94f5bffbe9cb9015be8540b3d17b6d3f462247b030f8dbae5a9625cf62da7fe6dab028b34eb
+doccontainersize 1454156
+doccontainerchecksum e7f7910921b9c7e91a6c9bd8291f4b13f4ab770871323772d93933e91a7f95647e3aed9f593bfb5a9bdd765d0980969cf1e1900206a15e4e240b34769d5c5e0f
docfiles size=428
RELOC/doc/latex/l3packages/CHANGELOG.md
RELOC/doc/latex/l3packages/README.md details="Readme"
@@ -179618,8 +179986,8 @@ docfiles size=428
RELOC/doc/latex/l3packages/xfp/xfp.pdf details="xfp documentation"
RELOC/doc/latex/l3packages/xparse/xparse.pdf details="xparse documentation"
RELOC/doc/latex/l3packages/xtemplate/xtemplate.pdf details="xtemplate documentation"
-srccontainersize 27148
-srccontainerchecksum 9afaf6e363b3a1a3402b64bbd6ef2236dd062c933583ab8be5f57217d90196b456aa477f5c9c830fe6fffcb79d2e0f2dc3ad51ab3c9cc764b61b5252cb211aa2
+srccontainersize 27132
+srccontainerchecksum 04c78212e5ce0039a340807f901b6fa61036e68553630aba2bb9b4a2bc03f499ad7d43f2aea4f5cab9a221fa6cfa1c02bae70eb4a972d57e175c6885b44ed6f8
srcfiles size=32
RELOC/source/latex/l3packages/l3keys2e/l3keys2e.dtx
RELOC/source/latex/l3packages/l3keys2e/l3keys2e.ins
@@ -179859,11 +180227,11 @@ binfiles arch=aarch64-linux size=16
name lacheck.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of lacheck
-containersize 22292
-containerchecksum d3cfdd4891c155f006da666b10c528a5678b8d30908712b03857f3cde568e214d7f8ce7f6d2238349abffb062bc9229989175c00ec0ebb9416d02ec1167ea9fe
-binfiles arch=amd64-freebsd size=16
+containersize 21580
+containerchecksum 0b9f140cccdd16a7883679af2a401c3f66c2bd57f720cc1446e4fdb175eb9d3bf1f0c21546e28e0b357db3e572f92072b60c947cf90d54dfe74c2420d2625539
+binfiles arch=amd64-freebsd size=17
bin/amd64-freebsd/lacheck
name lacheck.amd64-netbsd
@@ -179877,28 +180245,28 @@ binfiles arch=amd64-netbsd size=17
name lacheck.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of lacheck
-containersize 18840
-containerchecksum 0dc105f9530747524f8832629d63edbe608872dadf5706c39107ce42cfc9f4f7e3e5a1deadfb9fd466d4d7e7f807d8439f6e436c5605c6de88b0ec03b2e4f9bc
+containersize 18856
+containerchecksum fb90fd0d6649efbc1a802decbecee3ae5d589c99988846d0bd4b563b004abdb34a9a3262a86d51e3bd45e081e422ab44f1edb65181a42c67179dcb0dc50e7875
binfiles arch=armhf-linux size=15
bin/armhf-linux/lacheck
name lacheck.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of lacheck
-containersize 19240
-containerchecksum e02d67e9ccedc48e63904fb059773002ad1938acbdea6e9f537712e485759100fca8b5a51b88a098de1c852a9cbe258153e85f2f76682189cec95f7b427acf77
-binfiles arch=i386-freebsd size=14
+containersize 21584
+containerchecksum 0b9437f13ccbae62bad9f101e65aad7b3878015d4c33bc4fa9f90439e2f7d6720b1eef94725c244357ecec6b624b59b5ca5ea7363395b3c15baebde9ba8ad0d5
+binfiles arch=i386-freebsd size=17
bin/i386-freebsd/lacheck
name lacheck.i386-linux
category TLCore
-revision 65877
+revision 69782
shortdesc i386-linux files of lacheck
-containersize 20472
-containerchecksum 46b8a9b1dae62f978b4ed413fd14546b61c6b347da1d6709da4a3fb23c6a94cd6c7d03aeeb7c86107dbd7e6975940f3ac0c08a0ad3fea4e86f20be77276d67a4
+containersize 20492
+containerchecksum c68d78430f52fbf87df58ed4ab326491db9ff76caa9841571f681c4308aa3a7167a22bffd4dd4ab543d954795542be28246d5423847046eb8434272cb5a85672
binfiles arch=i386-linux size=16
bin/i386-linux/lacheck
@@ -179913,37 +180281,37 @@ binfiles arch=i386-netbsd size=16
name lacheck.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of lacheck
-containersize 20404
-containerchecksum 6523503db5df6964b6c1dced706c30a19dd7f32790811b1ec6e1e3d541350577182b102657f844f63a30562a642b1f8a3ccffd4a73194c3c3739d5726eb71434
-binfiles arch=i386-solaris size=15
+containersize 20580
+containerchecksum d6868bbbc43d0addc8bebb3703351ae00c56e97ecc2bd1f699de00932748e8fc3a7c866ee6e6363bc4e40fd63420191522cb026ebf8ef3124596e7fd93684488
+binfiles arch=i386-solaris size=16
bin/i386-solaris/lacheck
name lacheck.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of lacheck
-containersize 37416
-containerchecksum caabcb8ee75e202cc6d7c0ed3e5b7b304f915953728abac730909ec70cc44079ed01b617627860768f6bf47a165d5c4a4dbed62fdc8d41ab1a725db0a23af8cf
+containersize 37436
+containerchecksum d3a9e73a6d698e9c692b263e7adaa36bdc207cb11e92d921a65c0ca8948c172648991b17dc83d913c9ef03a03d774d2fc613cb317ca17f4d9de0f59057b0278b
binfiles arch=universal-darwin size=58
bin/universal-darwin/lacheck
name lacheck.windows
category TLCore
-revision 65891
+revision 69788
shortdesc windows files of lacheck
-containersize 21764
-containerchecksum 15dd0d512fb5dcc3f73207e975d1f7b5027ca4f7c2505a1815e0e60164c40c0619fe414b228f7c110cec70b308c1cb3d47ace78bf760498b4501d3dfe3d1b2b4
+containersize 21772
+containerchecksum e906ee03f0d0cc707efb4f9347a1148df2ff686b2a7ccea044cc6a3afe41ec8fc33ecaced3b55780ffb717f3e3644e889435fdd4399016111fac9ac43748340c
binfiles arch=windows size=17
bin/windows/lacheck.exe
name lacheck.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of lacheck
-containersize 22808
-containerchecksum ebae91d08a39d268a22c526b3687ae4f71c21d51be8e3aad3b7543284b2ca938251149e65f9766be6c1d0cf7b69c9d8c34385c7d3ead03e91c40de54ec1f5ea2
+containersize 22780
+containerchecksum a5b591759f806984579bdc379ce9830d5d2b8544d111d82ff4c9b267ae05d87b8eecba26d02ee3c224c11dc0c5c01e42186d04ea57953aac2f27a09ba23052e8
binfiles arch=x86_64-cygwin size=16
bin/x86_64-cygwin/lacheck.exe
@@ -179958,10 +180326,10 @@ binfiles arch=x86_64-darwinlegacy size=15
name lacheck.x86_64-linux
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-linux files of lacheck
containersize 22460
-containerchecksum 5f21460ab690e9fda2a6d7c3c897e5f0ad03af0052914b095512670a89f3ef7d053e7d4a5b7ec7927178eb79cb0d2e6a83d237eb6e9d80c3b86771abe38c59cc
+containerchecksum ee978f5cbeb3cfba5cf87b17104a02ba4fc5f03d6a6acdfaf24dfbc26abf5e1a93f787a7943360b134c55a51c754a8c3168473318ed1303fc28b45bffe5c20c9
binfiles arch=x86_64-linux size=17
bin/x86_64-linux/lacheck
@@ -179976,10 +180344,10 @@ binfiles arch=x86_64-linuxmusl size=16
name lacheck.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of lacheck
-containersize 24164
-containerchecksum 9f2c1f05221420fd605c8f2d9f0b041709723ecf5b9a70d41fd2dce841f5c0d10b00f709756f14079c1efbae53add7dbf6b748fc637fbd8a0ab37b7aa26fccb1
+containersize 24600
+containerchecksum dae7110260ba13946a55f67192ca19ecbbc8d16803e67b2dd7c9d06a36f3f53f2c3f93717f3d0059d4a2074cce46fe95e90c6e2abbaa9fdb7741509d82f1bda6
binfiles arch=x86_64-solaris size=17
bin/x86_64-solaris/lacheck
@@ -180173,7 +180541,7 @@ catalogue-version 3.0.0
name langsci
category Package
-revision 70028
+revision 70025
shortdesc Typeset books for publication with Language Science Press
relocated 1
longdesc This package allows you to typeset monographs and edited
@@ -180182,10 +180550,10 @@ longdesc (https://www.langsci-press.org). It includes all necessary
longdesc files for title pages, frontmatter, main content, list of
longdesc references and indexes. Dust jackets for BoD and Createspace
longdesc (print-on-demand service providers) can also be produced.
-containersize 65964
-containerchecksum 02e572eac6731aae4dbf7db5c1e4652dc34cea9dd6a43f0f63b7d7e4aa79113ca5ba4122758303d33c94f33e42513e4d7b51d22e4b7c17fa8b7ebacf8e5024b7
-doccontainersize 274596
-doccontainerchecksum 05c1231243e03156ffa01cb84f16708542598fcd5349c858913c2d0c6f0962871ee70034fe8c2255ee6338d7d659ef0262a408650a262ea8c6c1e8e173ca4e12
+containersize 65968
+containerchecksum af3100e7254ba029b82bc7ffb1fe5134cd76bbfae5b3d5c10b002d8d450d8ffdf5441c849ba7c64914889d6d40939dd8f848bad02bf94fe2cf8c9c11f1bf28d2
+doccontainersize 274584
+doccontainerchecksum 6018bfc249de196227395bc67c75a3e42eb1e2d6a3445959721a696e6d608ac4bf3291803d7f38f2295980a45a79cabe54638b663a8c7a7ffe7103ef7034b367
docfiles size=88
RELOC/doc/xelatex/langsci/README.md details="README.md"
RELOC/doc/xelatex/langsci/documentation/langsci-doc.pdf details="Package documentation"
@@ -180384,15 +180752,15 @@ catalogue-version 1.1
name lastbib
category Package
-revision 70377
+revision 70376
shortdesc Record the number of citations in a document
relocated 1
longdesc The package records the number of citations in a document, and
longdesc provides a command (\LastBib) to print the number.
-containersize 1004
-containerchecksum e2648c74401833e4be62ba616e146bd662626b1e6d9dd3e6fb3b1c371634e3cc022dbd1b4f670d957d239ca9ae776dec94ff63306d54b9dc571ab6d701850c8a
-doccontainersize 612
-doccontainerchecksum 45ce82d5721d79e26e1d7f034764b526315add13e6943fcfcd6105b9040b7ff4951e7c8482be15d2366880286e1caea8ef47aa8a6fce92941e9f19be1e7003b0
+containersize 1000
+containerchecksum aac7ebe21097f6ede979305107e42e3eafb003cb3f3d4500ea7ca9964f47eb1b1e210a0a35ecdf5d235dbfbaf21f8688cfab9d9d0ece209dc9591cd9b54b7ca7
+doccontainersize 608
+doccontainerchecksum 319360285ea3007d421703b20e7eed830831d6fdcb8373e6dd58773dc8206fa6a2cd807c7c3580075ac171142adb76293b0e5e31690b939021eb2c60d632c6a4
docfiles size=1
RELOC/doc/latex/lastbib/README details="Readme"
runfiles size=1
@@ -180469,7 +180837,7 @@ catalogue-version 2.0e
name latex
category Package
-revision 69443
+revision 69959
shortdesc A TeX macro package that defines LaTeX
relocated 1
longdesc LaTeX is a widely-used macro package for TeX, providing many
@@ -180487,14 +180855,10 @@ longdesc user commands, font selection and control, class and package
longdesc writing, font encodings, configuration options and modification
longdesc of LaTeX. For downloading details, see the linked catalogue
longdesc entries above.
-depend latex-fonts
-depend latexconfig
-depend luatex
-depend pdftex
-containersize 238228
-containerchecksum b6696892356c87acc788255f0023f081078878f4f76408be138b8b9b62f0fe01f8dd8bb68c8049fea319b41dfe4dafadb3237869fcde797ff5580ba94d68a473
+containersize 238204
+containerchecksum 3ab86cdf4674057dcb9ad870b6130d79187543dcbe7f441a95e4939362ad1544f4d94fe08c02fbf96307e50ee8c8cf69f168a96eaac7756532d2e346d3fed0e3
doccontainersize 34918312
-doccontainerchecksum d599e1fb7c4433658aa65df89ca318467b3c6689d3e4e2d16bddd9397968888052937900d382fdd43fe627813e40d242d7728325a1bc15c8ab5658fd6ea4c912
+doccontainerchecksum 9b385109a587ca7193a88d1a1084085a7d53bf7edc8e23471a181e127eef18c8abf2bd3727dc9a547369bfdf0514389499d868575c84619e2f0b159bfae83013
docfiles size=11016
RELOC/doc/latex/base/README.md
RELOC/doc/latex/base/alltt.pdf
@@ -180676,8 +181040,8 @@ docfiles size=11016
RELOC/doc/latex/base/utf8ienc.pdf
RELOC/doc/latex/base/webcomp.err
RELOC/doc/latex/base/webcomp.pdf
-srccontainersize 750220
-srccontainerchecksum 4b156445e50bd24dc3ab2f90088b0ae5e25930818fa14b7db3ccc1aec4642cb3172f07c57bf0dab3e17f91cf22e1b5d5fa08e705e392635328fd366514da7a24
+srccontainersize 750224
+srccontainerchecksum 050c974eb0e7c1ce5f5609df323af000f6a2a28cd786bb3487e12c65b08feabbd88d71d8f543a1dda7a6ebd89eb99a1fb3f33e9ab495f20925b77203e4e2ec8d
srcfiles size=1107
RELOC/source/latex/base/alltt.dtx
RELOC/source/latex/base/alltt.ins
@@ -181027,7 +181391,7 @@ catalogue-version 2024-06-01 pre-release 0
name latex-base-dev
category Package
-revision 69872
+revision 69860
shortdesc Development pre-release of the LaTeX kernel
relocated 1
longdesc This package provides a testing release for upcoming LaTeX2e
@@ -181037,10 +181401,10 @@ longdesc users is required by adding these changes to the release LaTeX
longdesc kernel. Typically, the code here will be used by a TeX system
longdesc to create dedicated formats, for example pdflatex-dev, which
longdesc can then be used explicitly for testing.
-containersize 246992
-containerchecksum d24b56bb77ada497449c501c549cb6fd06246f899d4f3a2d979292ffe85f80f532c5cbb8b3e49b6d1bc0f8098d56c34e87f15e8123247ed7af59c9a33b815a64
-doccontainersize 35243768
-doccontainerchecksum 4ec2405d8d3e3c92666bbab01cdb065b174f82bb9c3b91f0bd7af23dd2fe3e8cda98060cf1e08df349ea32386da911ee4c7a28dc29bc52ec6ac02a46cab98b66
+containersize 247060
+containerchecksum e97a741d721beeb950c8d16dc3fd2a470b380225ea93fdb6071db8c95b6023a59a859d2f343ab1845a44217588783edf57f4ec9df4b2a8443ba316e3473def7f
+doccontainersize 35244196
+doccontainerchecksum 98c37a26bfe160993d83e3267f091c693a47de4112373f2ef27e2080da876dfa273f9dbdb7426c94df6b89bb971c75f2593fedea5ad48836c3f262d1186d4645
docfiles size=11169
RELOC/doc/latex-dev/base/README.md details="Readme"
RELOC/doc/latex-dev/base/alltt.pdf
@@ -181224,8 +181588,8 @@ docfiles size=11169
RELOC/doc/latex-dev/base/utf8ienc.pdf
RELOC/doc/latex-dev/base/webcomp.err
RELOC/doc/latex-dev/base/webcomp.pdf
-srccontainersize 778216
-srccontainerchecksum 83f7103d961f186fadd6feaf63cfb4f9fd6cc2aae0d5c04b6ffbd0c0eee2d51cad4b2458491cab7760a29155682d806fcc3c1ca1dc8d788ad248a58dc071a361
+srccontainersize 778112
+srccontainerchecksum e0d9dd1343187bb2ca1245e1e5d0fddac46573f3e61ba66f0f17d4026de654fda6c076f0c160165600654bb15af0a32373777843c9941381c7baf567c1cd31d6
srcfiles size=1147
RELOC/source/latex-dev/base/alltt.dtx
RELOC/source/latex-dev/base/alltt.ins
@@ -181510,21 +181874,17 @@ catalogue-version 2024-06-01 pre-release 1
name latex-bin
category TLCore
-revision 66186
+revision 70501
shortdesc LaTeX executables and man pages
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend dehyph
-depend everyshi
depend firstaid
depend graphics
depend hyph-utf8
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-bin.ARCH
depend latex-fonts
@@ -181536,14 +181896,14 @@ depend luatex
depend pdftex
depend tex-ini-files
depend unicode-data
-execute AddFormat name=dvilualatex engine=luatex patterns=language.dat,language.dat.lua options="dvilualatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex,lm,luaotfload
-execute AddFormat name=latex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex,dehyph,hyph-utf8,latexconfig
-execute AddFormat name=lualatex engine=luahbtex patterns=language.dat,language.dat.lua options="lualatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex,lm,luaotfload
-execute AddFormat name=pdflatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex,dehyph,hyph-utf8,latexconfig
-containersize 620
-containerchecksum 4067db41ccc58892a4683c2ce5e15784e9aeebea88a9d9302dffc36fedf48f51c469bb1e99035ebafc58aa0a8a442c12b06457898a71e492ce778e58122a6a62
-doccontainersize 53812
-doccontainerchecksum 763c7e3df586a275b2a756b591c96ae98ca1a2b5f0c694e9b502d55e7c4a0ad1d40b15ff4987e2be6a06f2f11afe99a4f7fcace22c45877dc54741383a55df25
+execute AddFormat name=dvilualatex engine=luatex patterns=language.dat,language.dat.lua options="dvilualatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex,lm,luaotfload
+execute AddFormat name=latex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex,dehyph,hyph-utf8,latexconfig
+execute AddFormat name=lualatex engine=luahbtex patterns=language.dat,language.dat.lua options="lualatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex,lm,luaotfload
+execute AddFormat name=pdflatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex,dehyph,hyph-utf8,latexconfig
+containersize 592
+containerchecksum bdf854f19390c341cb0079c0f98b1f334511e090d3346349083d38d54d1f5955858fed6965b8defd3227d3e98b79073aafb945c6592019ac8350461f049119e5
+doccontainersize 53680
+doccontainerchecksum 684159d65fa27343508ddc31730400d489e1f3b4c1e2b88a4772a5a9e72b261a142d28715cb93ff3906d1666e2c1dd85263c8c91eca17ed79b6e7f3077742c1f
docfiles size=32
texmf-dist/doc/man/man1/dvilualatex.1
texmf-dist/doc/man/man1/dvilualatex.man1.pdf
@@ -181556,21 +181916,17 @@ docfiles size=32
name latex-bin-dev
category TLCore
-revision 66186
+revision 70015
shortdesc LaTeX pre-release executables and formats
longdesc See the latex-base-dev package for information.
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend dehyph
-depend everyshi
depend firstaid
depend hyph-utf8
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-base-dev
depend latex-bin-dev.ARCH
@@ -181585,14 +181941,14 @@ depend luatex
depend pdftex
depend tex-ini-files
depend unicode-data
-execute AddFormat name=dvilualatex-dev engine=luatex patterns=language.dat,language.dat.lua options="dvilualatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,lm,luaotfload
-execute AddFormat name=latex-dev engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,dehyph,hyph-utf8,latexconfig,pdftex
-execute AddFormat name=lualatex-dev engine=luahbtex patterns=language.dat,language.dat.lua options="lualatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,lm,luaotfload
-execute AddFormat name=pdflatex-dev engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,dehyph,hyph-utf8,latexconfig,pdftex
-containersize 676
-containerchecksum 56988a74dc1969af32a87890a930eae5d1c41cc7d78d84d5293836c139885e1bca3103304d0083583e0a9d9ad1ebd76b11f86df67887de6ebec7b36137755075
-doccontainersize 14104
-doccontainerchecksum 2166531c752eb0295b643f0e20f518011d2c3063a9a5de5e7e913b2cdf8efcb382a9460ef95a711420e9a9f49fc2ac77a538361c4cdc7d730af5acb43f15f2ab
+execute AddFormat name=dvilualatex-dev engine=luatex patterns=language.dat,language.dat.lua options="dvilualatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,lm,luaotfload
+execute AddFormat name=latex-dev engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,dehyph,hyph-utf8,latexconfig,pdftex
+execute AddFormat name=lualatex-dev engine=luahbtex patterns=language.dat,language.dat.lua options="lualatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,lm,luaotfload
+execute AddFormat name=pdflatex-dev engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,dehyph,hyph-utf8,latexconfig,pdftex
+containersize 644
+containerchecksum 23f4e23403a095d1d0751f3528a6570916d665e0d5fd91b0badbdeea60fd1de159212e89ed2e98a82f66cf7fe07171d82993a261a8c57dd03498fa72ece55ef6
+doccontainersize 14000
+doccontainerchecksum c34cc9efbd2f8f61a3b05761ed67cbc8f85a2201bc32bcd03e29947444f4913814fcc28dacd47899a87bb8f0231a304efb5b625e55b62d8d4df77592b623e327
docfiles size=35
texmf-dist/doc/man/man1/dvilualatex-dev.1
texmf-dist/doc/man/man1/dvilualatex-dev.man1.pdf
@@ -181719,10 +182075,10 @@ binfiles arch=universal-darwin size=4
name latex-bin-dev.windows
category TLCore
-revision 65891
+revision 70525
shortdesc windows files of latex-bin-dev
-containersize 2568
-containerchecksum a711a169cbc2b6838921016b6222eb4f9dda29f0d720a5e6b116ed0ae621c86777a950cdd02ba4a85a7fb133277fc2108ff1a9a7c86115d0693f802b0804c64f
+containersize 2936
+containerchecksum 386ae7897a056341d029aa01895fc51386320bb2059cd00c79a9b5ca43f01019c530633bdde57717b7c0f17b21e62323f70496441e3aea22d0bde1bf078121bf
binfiles arch=windows size=8
bin/windows/dvilualatex-dev.exe
bin/windows/latex-dev.exe
@@ -181899,10 +182255,10 @@ binfiles arch=universal-darwin size=4
name latex-bin.windows
category TLCore
-revision 65891
+revision 70525
shortdesc windows files of latex-bin
-containersize 2560
-containerchecksum 117f39fc9434ede20150010c03fe512338f26e8ff969d0d5533f49eaed80aae1113554a7cdc4c82dd615460cfead5299d06a9bdb4f8c94f85a0c399b9d5efd5b
+containersize 2932
+containerchecksum 2dc3b91102a813d6af405e069d0efc8256be22feaeaf29713d7d2ada73f0700d658886b744c281f599aabef5b3e584cdd02636618c40b74367dd1e35ca69cd9b
binfiles arch=windows size=8
bin/windows/dvilualatex.exe
bin/windows/latex.exe
@@ -182202,7 +182558,7 @@ catalogue-topics font font-symbol font-mf
name latex-for-undergraduates
category Package
-revision 70210
+revision 70199
shortdesc A tutorial aimed at introducing undergraduate students to LaTeX
relocated 1
longdesc A tutorial aimed at introducing undergraduate students to
@@ -182210,9 +182566,9 @@ longdesc LaTeX, including an introduction to LaTeX Workshop in Visual
longdesc Studio Code and an example package of user-defined LaTeX
longdesc commands.
containersize 456
-containerchecksum bc5dd03127625a8440ce605d8f4e8de65615f330dc9194e0e096175095263eec3ce2790dcccd96d32118492fa71483645510675f4868580fa00daf95f12f1aa1
-doccontainersize 2370072
-doccontainerchecksum b21b7a6a759eba0ae086ba3492266b9784aa651a727b22b671b3e3668197727118f35095245ad8d4b99a40f6c5c00500f7791b3cb6a6237493b7656a17abdf3c
+containerchecksum 4225afbc614894e3efc0d60f18919f8901f211bac851bb03b1a9b68cd2e9702f36bb78c4cbab8e84ddf974322a23154136721624a329128499ad87dccadb38a4
+doccontainersize 2370052
+doccontainerchecksum e85f543895142d01492cfdfbfabfdaf6127cc1b7c32460edd2b9a7216ca13f166d80964b6f798cab1819ac6be92af2989bcfcceaa0cc2aa9592ea23c4616e8dd
docfiles size=1016
RELOC/doc/latex/latex-for-undergraduates/LaTeX_for_Undergraduates.pdf details="The tutorial itself"
RELOC/doc/latex/latex-for-undergraduates/LaTeX_for_Undergraduates.tex
@@ -183052,7 +183408,7 @@ catalogue-topics format latex-devel
name latex-lab-dev
category Package
-revision 69872
+revision 69860
shortdesc LaTeX laboratory: Development pre-release
relocated 1
longdesc This package provides a testing release for upcoming changes to
@@ -183060,10 +183416,10 @@ longdesc the latex-lab bundle, which provides a route for additions to
longdesc the LaTeX kernel to be stablised. It accompanies the
longdesc pre-testing kernel code (latex-base-dev), and is intended for
longdesc testing by knowledgeable users.
-containersize 41800
-containerchecksum 7812684eb2629b139e5871b5b916e2344b85d8bb88bb983d57d292d9873147d51b60177733e61180d86b95d185e456710acc5037f56fbfeea52ab1d3e04433fe
-doccontainersize 8366492
-doccontainerchecksum 7750fea3ff6ed1352db54674844367b3ecb400cd4e306e3c130acabcdbe59b3abdc7508dd12e5febea2381cd74407aa3cb3bcc25f5d7b34401e75e1eebde2529
+containersize 41840
+containerchecksum 9d1540e88792f802710a0960458deebd558db8fb68099ad500abffa2bb91c3dd23e63ee49e2d5681c0e58935d9c3a99d3cd5f3f9e13ae6294caf67a782d455a3
+doccontainersize 8366512
+doccontainerchecksum abbdab0228218eaeb299338c02a4f33d14516ed8e4a55eabf19939e7305b958873a14173be249a2df8aa3358fc0a0ca3300c592771c8e1a316b40a80577b0949
docfiles size=3049
RELOC/doc/latex-dev/latex-lab/README.md details="Readme"
RELOC/doc/latex-dev/latex-lab/blocks-code.pdf
@@ -183098,8 +183454,8 @@ docfiles size=3049
RELOC/doc/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.pdf
RELOC/doc/latex-dev/latex-lab/latex-lab-toc-kernel-changes.pdf
RELOC/doc/latex-dev/latex-lab/latex-lab-toc.pdf
-srccontainersize 117332
-srccontainerchecksum d1ea2349dde66988f51b9d1f37875a2d02a4b44499f3551152ce3bf38460d31e5cbd423e17ac72dade53eaac00720d547b460bda25f29821875605b02c51ccd0
+srccontainersize 117344
+srccontainerchecksum 370fa1744a7f9a63c50d3247f19009322b3fcc6f3c1a6a8afdb52204c7fb338f0495339ebd865e8f1b9d023faf4d82e784ab8677f7bd1374af1f10a57de8143a
srcfiles size=157
RELOC/source/latex-dev/latex-lab/documentmetadata-support.dtx
RELOC/source/latex-dev/latex-lab/latex-lab-amsmath.dtx
@@ -183523,7 +183879,7 @@ catalogue-version 1.2
name latex-tools-dev
category Package
-revision 69872
+revision 69860
shortdesc Development pre-release of the LaTeX tools bundle
relocated 1
longdesc This is a pre-release version of the standard LaTeX tools
@@ -183531,9 +183887,9 @@ longdesc bundle. It accompanies the pre-testing kernel code
longdesc (latex-base-dev), and is intended for testing by knowledgeable
longdesc users.
containersize 44676
-containerchecksum 04828515f6eb9382d3c3d9c2ae8fa52bfe42fcb511b36840add979901b4a7535ec5a40d75113f0240299ec3bb07b59fc54fa65539389467f402a7ff15714ccf2
-doccontainersize 5704792
-doccontainerchecksum 7136ae8556c19d2eaab7891981cb10b52e4538d10fd82073843744996de3ba2919b07ca63d5fc2100d093b9e9db862dc1a4f7d19615f96d164aa2431ee2f9b8f
+containerchecksum 4551725fe39fce9bb000fb65ab5e887b0c8f11f52ff2b443d24bf7212d691dd488cc7180ca41f44f76bd03b2c239f3bc53ed4954b6c595d12088355c6cadeb5b
+doccontainersize 5704832
+doccontainerchecksum 8db72574c2cd44f204f0af41981a2af2fd0e25bc59a401d20944a295260e767edef89d83e8e17438a0188aee6f452f78a7ee9004661aa637ef81aa2650e0d352
docfiles size=1846
RELOC/doc/latex-dev/tools/README.md details="Readme"
RELOC/doc/latex-dev/tools/afterpage.pdf
@@ -183566,8 +183922,8 @@ docfiles size=1846
RELOC/doc/latex-dev/tools/verbatim.pdf
RELOC/doc/latex-dev/tools/xr.pdf
RELOC/doc/latex-dev/tools/xspace.pdf
-srccontainersize 234464
-srccontainerchecksum 2073e38c2dc81da1d79fe6567bb99cc5f2649a8352b5e4164ae21cb0efa9d7697a1e9e8e71b5d3ae636eb215ce14c5b202cca88ebc6ba18c15524d0f566568b6
+srccontainersize 234468
+srccontainerchecksum 88658d8102b0dbd9e011295dc3f3083693fd6c27b31469961f54035c7a1a0203c8402c78ec6b70924e2968a37f61be5b94912e0b9b6673ad2c696f5da5bc3332
srcfiles size=276
RELOC/source/latex-dev/tools/afterpage.dtx
RELOC/source/latex-dev/tools/afterpage.ins
@@ -187962,7 +188318,7 @@ catalogue-version 0.3
name lcdftypetools
category TLCore
-revision 52851
+revision 70015
catalogue lcdf-typetools
shortdesc A bundle of outline font manipulation tools
longdesc This bundle of tools comprises: Cfftot1, which translates a
@@ -187985,11 +188341,11 @@ longdesc you specify; and T1testpage, which creates a PostScript proof
longdesc for a Type 1 font. It is preliminary software.
depend glyphlist
depend lcdftypetools.ARCH
-containersize 1004
-containerchecksum 3f3cc8f7cce233eb36315b21db408847a267ff393d6d4118de61c4b03ec408f3f29b2d41fdcf84995bfbf5d07bcb25984d7ffc76458d4f2dc12fdb6dfb85e23f
-doccontainersize 258904
-doccontainerchecksum 5a1dd1e2fd79351afc65d6786b24aebd9681a2b9e92755b44a836b47da5ceb1817f085483f306991a113dc0c26edfcd84839dec93bb46a003034536f31b31e5f
-docfiles size=105
+containersize 976
+containerchecksum 2ffb6d34d77006a71eb493198bc0624d02c85286ebea9b2105090d3f09d30f425aa812c344c056890a7b35fb114756a33e36e6210fd5015c1d917dced5cfc615
+doccontainersize 257848
+doccontainerchecksum b3cce0b14931361b1d9f10f9aeb0a691aa4f81623e6306219bc4beeb6837a4f9e7ed9a889bd94725247a844b6dc85d29f4563e7a1193d96cb181d4ab5eb6bd61
+docfiles size=103
texmf-dist/doc/man/man1/cfftot1.1
texmf-dist/doc/man/man1/cfftot1.man1.pdf
texmf-dist/doc/man/man1/mmafm.1
@@ -188019,11 +188375,11 @@ catalogue-topics font-devel
name lcdftypetools.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of lcdftypetools
-containersize 666080
-containerchecksum c7f0ecdd1eb30f8827f1c185f33aa38a41669c3c0e7d0f644b60491cddaf22bbad775ca7926e5625f9ac9e6d930de22785de2b8e8acd342ded6e42ec1e1f4bbf
-binfiles arch=aarch64-linux size=1225
+containersize 672012
+containerchecksum d2468cabac22e79a52addcd6ed94dfa57551a5f71b6bd18b52e5653c3916eae1a0383dddddd575f5a9efad1c551683674bf795e69df45dc4a5682594cc3df031
+binfiles arch=aarch64-linux size=1237
bin/aarch64-linux/cfftot1
bin/aarch64-linux/mmafm
bin/aarch64-linux/mmpfb
@@ -188038,11 +188394,11 @@ binfiles arch=aarch64-linux size=1225
name lcdftypetools.amd64-freebsd
category TLCore
-revision 62206
+revision 70276
shortdesc amd64-freebsd files of lcdftypetools
-containersize 635192
-containerchecksum c74fe1ca41e4945ac959503e788f3802c28929cda7c5e49f06b24ce45d8d34f1e13938fc426935cf102b3e3fc2e56e70bded4799d22a98961bb326ec68a8f435
-binfiles arch=amd64-freebsd size=935
+containersize 707188
+containerchecksum f2191f3424e67efbf9f57069df6bc9ac5d749b1aa7341d7ab254290cf608afc249a56c274f381d482f602054f1440fbe7fdb9fd9c8246d0350bc57b55fd92c78
+binfiles arch=amd64-freebsd size=1277
bin/amd64-freebsd/cfftot1
bin/amd64-freebsd/mmafm
bin/amd64-freebsd/mmpfb
@@ -188057,11 +188413,11 @@ binfiles arch=amd64-freebsd size=935
name lcdftypetools.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of lcdftypetools
-containersize 684756
-containerchecksum 78beb0d20f7e58318c4ce168619eef9295a70f11a2c016bafa830ec14295388c7984fbcf15d29d283b61ce24ebae2f46aabe42f8a610a52ad3b57907d5c5dc98
-binfiles arch=amd64-netbsd size=1258
+containersize 693032
+containerchecksum b4cfffe31b098c6aa04bf20aa82a91f2911b54bc6ed55dbafd0c038c9b43078339e43f0c4a3fe5b1d06dd747892199d6b5eb21800efa97835af5299d4ff14ad9
+binfiles arch=amd64-netbsd size=1270
bin/amd64-netbsd/cfftot1
bin/amd64-netbsd/mmafm
bin/amd64-netbsd/mmpfb
@@ -188076,11 +188432,11 @@ binfiles arch=amd64-netbsd size=1258
name lcdftypetools.armhf-linux
category TLCore
-revision 63092
+revision 70489
shortdesc armhf-linux files of lcdftypetools
-containersize 498056
-containerchecksum 2cf0ad15a030dcd2eb2b0eff790a9533a959144bd1a2b693435ffad091e2dc7af44528b22d29f2d580e1910102fa6816c12bc245fbb37355859961b1d5b73bed
-binfiles arch=armhf-linux size=914
+containersize 503284
+containerchecksum 472b884b2e9d61efe34d1c52a7fdaf099c56207438bbcdcbc207ea69d61a335d51a12636c6cec5d812d565beaf6a5e68ca3030ea9291b3f3caf8c7e64d94d589
+binfiles arch=armhf-linux size=920
bin/armhf-linux/cfftot1
bin/armhf-linux/mmafm
bin/armhf-linux/mmpfb
@@ -188095,11 +188451,11 @@ binfiles arch=armhf-linux size=914
name lcdftypetools.i386-freebsd
category TLCore
-revision 62206
+revision 70276
shortdesc i386-freebsd files of lcdftypetools
-containersize 632260
-containerchecksum dd0b5d8080c9d43f8a39ad4e5c956dfda15729095b9216fc117c0deaf1f71ec71799f951aa73f5de140a0465cd5eb95f07bcc52482ad0999f7d4806cb572d1e3
-binfiles arch=i386-freebsd size=861
+containersize 709344
+containerchecksum 36b3ec0d98930f8d20da8277b839b9297e8b89675001b78a15458a3a5d9271d9c53ff82a411409db7d3a3613c6d063962fb336f95324ad61b1c48580efdcb9b7
+binfiles arch=i386-freebsd size=1277
bin/i386-freebsd/cfftot1
bin/i386-freebsd/mmafm
bin/i386-freebsd/mmpfb
@@ -188114,11 +188470,11 @@ binfiles arch=i386-freebsd size=861
name lcdftypetools.i386-linux
category TLCore
-revision 62210
+revision 70276
shortdesc i386-linux files of lcdftypetools
-containersize 704304
-containerchecksum bf76fa6a78ebf0330a3bc1a7ed15104304e271a1a6bbc9876c7fe9d93b897b7563309765d13698b0b72e95be1bde41b219701d29d87552f856a5df79069dfe46
-binfiles arch=i386-linux size=1155
+containersize 705184
+containerchecksum a12ad27d37e421d2c9c316fcb2a1995efc6c2bf39509580acaba7fc01e159b2a79f3eef5a70e1097b820aeb4cc5a767e56f3bbbbdb225bd43758dec6aab10dfc
+binfiles arch=i386-linux size=1160
bin/i386-linux/cfftot1
bin/i386-linux/mmafm
bin/i386-linux/mmpfb
@@ -188133,11 +188489,11 @@ binfiles arch=i386-linux size=1155
name lcdftypetools.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of lcdftypetools
-containersize 659188
-containerchecksum 75aebb2dd1cdb6238383ce0aa13a8b640c6a4a9a41825b96edc8be1f7ef3a485ad2cf7f7f06ff0186cb7f3d0bf4c092876d441d603cd2a7cc6fd0f68a42e05b8
-binfiles arch=i386-netbsd size=1153
+containersize 664616
+containerchecksum 08109fc1d3895e705b4680f596e3323a133ba44911af51648df66d92d548a9d4e63b5608bcd175e7f2d768c66c3bd40aada39887e8a85059d20c07d03c5622f9
+binfiles arch=i386-netbsd size=1160
bin/i386-netbsd/cfftot1
bin/i386-netbsd/mmafm
bin/i386-netbsd/mmpfb
@@ -188152,11 +188508,11 @@ binfiles arch=i386-netbsd size=1153
name lcdftypetools.i386-solaris
category TLCore
-revision 62206
+revision 70276
shortdesc i386-solaris files of lcdftypetools
-containersize 824340
-containerchecksum 9bdf3db7c78bec5766b630178067a985f0c684b833f54f8fdff881eb760a2c82cde31962467d9b45ab6270cb25f556f90441d2c8c9d855972582a67425f49431
-binfiles arch=i386-solaris size=1297
+containersize 708332
+containerchecksum 7f1d7a4af84078c8d979eacdc5f4e6a5ae2d5b3daf6ed88bd25787bc155e232a1c58eb548665c848dbf76d15f8da9b6b50d1359cc77ae7cf2fa0aa4261849570
+binfiles arch=i386-solaris size=1040
bin/i386-solaris/cfftot1
bin/i386-solaris/mmafm
bin/i386-solaris/mmpfb
@@ -188171,11 +188527,11 @@ binfiles arch=i386-solaris size=1297
name lcdftypetools.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of lcdftypetools
-containersize 1294980
-containerchecksum 4aeec7593e1bbb4acf8836dcfb8cc2f2ec1ddd94b27dee525d192ef9652c7a9799a190499c7b448db0fdb91df1d57d0c2c5216a949075bfc8a1e8dbba7626550
-binfiles arch=universal-darwin size=2103
+containersize 1340196
+containerchecksum afbe1f73c7e5630a35c12639a910e22b15e97f15e0aa93a19116f635141a550077f247cc89374a93c5e4d73260d3313e311e3b5fc8a9c8e06a545ba6bc54219d
+binfiles arch=universal-darwin size=2179
bin/universal-darwin/cfftot1
bin/universal-darwin/mmafm
bin/universal-darwin/mmpfb
@@ -188190,11 +188546,11 @@ binfiles arch=universal-darwin size=2103
name lcdftypetools.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of lcdftypetools
-containersize 819000
-containerchecksum 1063db5cd5dfbaafe1a3f74241f9b8718c50ad2bc8ce46f7985071a1ecfd667f9e0624299a430bc7d78698dc99146c7f9aac8e1e4b0bb3cdbb9d5f50601580b2
-binfiles arch=windows size=1187
+containersize 842108
+containerchecksum 820d69f7a39e2beb0db10b7ab5cb5a767737a990a81e57105fbc706e8baf0df81d171125ae9930e110e7a0d730f2149c2df0351cf0c6aead74374d400a0075bb
+binfiles arch=windows size=1242
bin/windows/cfftot1.exe
bin/windows/mmafm.exe
bin/windows/mmpfb.exe
@@ -188209,11 +188565,11 @@ binfiles arch=windows size=1187
name lcdftypetools.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of lcdftypetools
-containersize 593356
-containerchecksum ce87ab21880186f92e629fc150c639d5100aec03c454bd3cf2c15b49f94b76fddc7282cfe61dc8335cbdd66f0b263219ad1ca9eb6700370d05cfd04774b30e2c
-binfiles arch=x86_64-cygwin size=1032
+containersize 599256
+containerchecksum 81bd7aa1198c0bcf8e04eca25744a1d9b8a0770333a3fbaf54ef535f30719c968ce7946aba1a379cfb58a04ba9b6f379b05f025f819ec82ec31de7f3bb54573a
+binfiles arch=x86_64-cygwin size=1040
bin/x86_64-cygwin/cfftot1.exe
bin/x86_64-cygwin/mmafm.exe
bin/x86_64-cygwin/mmpfb.exe
@@ -188228,11 +188584,11 @@ binfiles arch=x86_64-cygwin size=1032
name lcdftypetools.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of lcdftypetools
-containersize 630916
-containerchecksum 01fff667300baffd65cca700726e903669dba475479364015af9e261aabbdbdc9b815ee0f24b0a25206d5a7aeba347acd71275a19e0d03709f7c0af419ba818c
-binfiles arch=x86_64-darwinlegacy size=864
+containersize 640128
+containerchecksum 3120e7dbe4f34f19f9ae299d541650eff10b152e0defb63326f37083471977a43cad141c4a360625661a1bf85ca82000e83323803a9b1be6edd8c5416157f41f
+binfiles arch=x86_64-darwinlegacy size=874
bin/x86_64-darwinlegacy/cfftot1
bin/x86_64-darwinlegacy/mmafm
bin/x86_64-darwinlegacy/mmpfb
@@ -188247,11 +188603,11 @@ binfiles arch=x86_64-darwinlegacy size=864
name lcdftypetools.x86_64-linux
category TLCore
-revision 62187
+revision 70276
shortdesc x86_64-linux files of lcdftypetools
-containersize 702320
-containerchecksum 794fef87bb025008f1b9f08525efb0bf4fade5a2bf0c4e774a262962378143f4ba3e7562e07e3ad33167a53c8b4270bdee207e6b33f12110394ea8fa690ae5a3
-binfiles arch=x86_64-linux size=1151
+containersize 709672
+containerchecksum 484d8f2cfea7a35beceb90e3434056b9d4843e825c1494eabe6e3582e56c98ad47c438c188666a0099461346cd3d7bfea77b84c8539d1e212c653c1c5d0e14c8
+binfiles arch=x86_64-linux size=1157
bin/x86_64-linux/cfftot1
bin/x86_64-linux/mmafm
bin/x86_64-linux/mmpfb
@@ -188266,11 +188622,11 @@ binfiles arch=x86_64-linux size=1151
name lcdftypetools.x86_64-linuxmusl
category TLCore
-revision 62210
+revision 70276
shortdesc x86_64-linuxmusl files of lcdftypetools
-containersize 729388
-containerchecksum b8f766bd1b69f56979815b008e54d3837e6c844af011cab8b934ec34fe9d724895b6599f376f452ac6a0144a41babc846bf7fafa9ae0290e016348a0883c6993
-binfiles arch=x86_64-linuxmusl size=1145
+containersize 739568
+containerchecksum beacce8ccdefeb2313f2eac176ae77a2368066d40b1299c95445e81e27cd67dcd1d47172e401c566f25421dbf6b1268ca30cf487f15f6955607fc2a02cafd966
+binfiles arch=x86_64-linuxmusl size=1155
bin/x86_64-linuxmusl/cfftot1
bin/x86_64-linuxmusl/mmafm
bin/x86_64-linuxmusl/mmpfb
@@ -188285,11 +188641,11 @@ binfiles arch=x86_64-linuxmusl size=1145
name lcdftypetools.x86_64-solaris
category TLCore
-revision 62206
+revision 70276
shortdesc x86_64-solaris files of lcdftypetools
-containersize 841204
-containerchecksum d0211cdb0acf18a2360b37ec472b2736bdbc907e48c89151eb912a40c70cc0071d5a2e502ebf0526136c070d2632e4f0d5823f6a4e8304d393343ccaeced4151
-binfiles arch=x86_64-solaris size=1403
+containersize 744112
+containerchecksum b9a65837b85d422fac2d4992b4faad3ab5391ed835e48d2fd0af586fcd3dd475815fc008dcf986d5c9f78e470f06793f1a6c839dbec9d5e85a045ebef0cf6678
+binfiles arch=x86_64-solaris size=1129
bin/x86_64-solaris/cfftot1
bin/x86_64-solaris/mmafm
bin/x86_64-solaris/mmpfb
@@ -188469,7 +188825,7 @@ catalogue-version 2.1a
name lebhart
category Package
-revision 70050
+revision 70049
shortdesc Write your articles in a colorful way
relocated 1
longdesc This package provides a LaTeX class for typesetting articles
@@ -188482,10 +188838,10 @@ longdesc on colorist.sty from the colorist package. The package name
longdesc "lebhart" is taken from the German word "lebhaft" ("vivid"),
longdesc combined with the first three letters of "Artikel" ("article").
depend colorist
-containersize 5244
-containerchecksum 693591f7f1316f2e04408500a958db59528cf12e9c93bc38b9fb88edad1e3bea01d8adbe00546cfe8d448c30e1f34144b53ab9182f81a18c4b30b2167fc86306
-doccontainersize 8552
-doccontainerchecksum 9932c964d79640a85a28dcbf523625c4b291f9a2a6f89be6a4c416c7318a7e55c15923406457ad5ccac8ab4257aba21b1f97ca3e2acba6339178c7307895ee10
+containersize 5252
+containerchecksum a1b6a5afba1edce9d3bbb35698ab4bafbdbe71b392e8e8b0561810fba33616d0770799c398984a770fe7b9c1ef61e23fabd3bf66e6aff9c36f3bb4da5d1e8c73
+doccontainersize 8564
+doccontainerchecksum 5496b03fdca7fa8d08b7d7fec514f1d34438b15caffc97e37e3094e6546b18994cb2dbd030eeda394a03ffe2a28b3d8affe293cb6aaf40a690873162e44fe64b
docfiles size=8
RELOC/doc/latex/lebhart/DEPENDS.txt
RELOC/doc/latex/lebhart/LICENSE
@@ -188791,7 +189147,7 @@ catalogue-version 1.0a
name letgut
category Package
-revision 70496
+revision 70491
shortdesc Class for the newsletter "La Lettre GUTenberg" of the French TeX User Group GUTenberg
relocated 1
longdesc The French TeX User Group GUTenberg has been publishing "The
@@ -188817,10 +189173,10 @@ longdesc d'Administration de l'association, elu en novembre 2020, a
longdesc souhaite fournir une classe mieux structuree, davantage perenne
longdesc et documentee, a meme d'etre publiee sur le CTAN. C'est
longdesc desormais chose faite avec la presente classe letgut.
-containersize 53292
-containerchecksum 26c67af52a69cf3c9eff59e1e3af2cdf1450caba17938ded0c6c8d090cba120809d4eaa981c2934a62e9bcc78a0430053f55e1c4ac241770c779c4a5a8cbcce0
-doccontainersize 1324920
-doccontainerchecksum 13fca9f0e879d4838cb7e05e2978c5a63bff21b14f7da80e82030916218d49c870f97037f88ff4316bd220e5c318d2f7d568ddda9f787618aab31478e1a0ad63
+containersize 53324
+containerchecksum c15fd728d7bf9bca8f39cd954e591eeea3a9ede3c7e3c8251c21980b045a34422b306bb99ee916d612ee7e2c02c2c999f885c6f842c0f466ae9648b511317056
+doccontainersize 1324816
+doccontainerchecksum 33e37b14346a8a434dfd0c089e4db5df60d2a24ad6ba4e0095fc8770ca8a098414a0486919f7b1258137c68b00e5d9e97bd9583cd299261fb048cb33d1738c78
docfiles size=434
RELOC/doc/lualatex/letgut/CHANGELOG.md
RELOC/doc/lualatex/letgut/README.md details="Readme"
@@ -188837,8 +189193,8 @@ docfiles size=434
RELOC/doc/lualatex/letgut/listings-conf.tex
RELOC/doc/lualatex/letgut/localconf.tex
RELOC/doc/lualatex/letgut/xindex-letgut.lua
-srccontainersize 67920
-srccontainerchecksum 5057d1ddea61c0fc43a4b7cdf3f749b08bf14e443eb29a315d74a3f7a2de9ba3a41fad379c62cce83d15984c0d9ae484d738d6a875627cc4706bb708a2cac290
+srccontainersize 67936
+srccontainerchecksum c54b533d70d9fbd540c5ca1096f014bcd65801563ef58b2777ff517791d0a51a67453b0a934ae901d751f7d202bf8e63bd80a1fbb82f0e6a31553911d58a33d7
srcfiles size=88
RELOC/source/lualatex/letgut/HOWTO.md
RELOC/source/lualatex/letgut/letgut-banner.org
@@ -197780,7 +198136,7 @@ catalogue-version 1.2
name listings
category Package
-revision 70052
+revision 70624
shortdesc Typeset source code listings using LaTeX
relocated 1
longdesc The package enables the user to typeset programs (programming
@@ -197797,31 +198153,32 @@ longdesc the form appropriate for the current language. Short (in-line)
longdesc listings are also available, using either \lstinline|...| or
longdesc |...| (after defining the | token with the \lstMakeShortInline
longdesc command).
-containersize 146668
-containerchecksum 233399d89e14afdf7c8f8856e61e3d5bd81781a795087447b7332353a3a71b5c9514c39bea39a851fccadce2234e0fb9af537dfa10fc4be2c25051261f7c67de
-doccontainersize 2740452
-doccontainerchecksum 7fe88b4098e5edb4a7e548688e3b12f66714e6cafd35492e816385563039ed81e03b25406a9aa1dd231cf89d2b4616cc838ee352ad1468a756ee00aa291c297c
-docfiles size=792
+containersize 146880
+containerchecksum bff2fff75e305885b5726b3aaf897535d856618b322b86678a258b6e467583c06c132e88be5ab7e6b611cc386cd582e6ebd7d0f4361712d198bbadc509e4a2db
+doccontainersize 2745184
+doccontainerchecksum 5254197f9d815e10038cf62a93a43669764f0dd4af2fa2d4e2779fb05c296c3f0c494e70dd9faf0b44e7621dde5f8106bb8c27eba7ee69a1c41c5086c737244c
+docfiles size=793
RELOC/doc/latex/listings/README details="Package Readme"
RELOC/doc/latex/listings/listings-devel.pdf
RELOC/doc/latex/listings/listings.pdf details="Package documentation"
RELOC/doc/latex/listings/lstdrvrs.pdf details="Language drivers details"
-srccontainersize 270800
-srccontainerchecksum 185f23319d2509c9eef88dd36edf55b7f144711c9836b6ea9072dbbdfe62908f4d556957fd62eee5d50a82f7635216d7069be0c9fcaf646de84a330f56011719
-srcfiles size=277
+srccontainersize 271416
+srccontainerchecksum b8b71870667ee0f941f8b406eed7c17afab4a900e363cbc700affcdab57bd020e0e2d8aa960eb3af64b33f1d6381288f36ff28451dc03522188696ebae073076
+srcfiles size=278
RELOC/source/latex/listings/Makefile
RELOC/source/latex/listings/listings.dtx
RELOC/source/latex/listings/listings.ins
RELOC/source/latex/listings/lstdrvrs.dtx
RELOC/source/latex/listings/lstdrvrs.ins
RELOC/source/latex/listings/ltxdoc.cfg
-runfiles size=147
+runfiles size=149
RELOC/tex/latex/listings/listings-acm.prf
RELOC/tex/latex/listings/listings-bash.prf
RELOC/tex/latex/listings/listings-fortran.prf
RELOC/tex/latex/listings/listings-hansl.prf
RELOC/tex/latex/listings/listings-lua.prf
RELOC/tex/latex/listings/listings-python.prf
+ RELOC/tex/latex/listings/listings-rexx.prf
RELOC/tex/latex/listings/listings.cfg
RELOC/tex/latex/listings/listings.sty
RELOC/tex/latex/listings/lstdoc.sty
@@ -197834,7 +198191,7 @@ catalogue-also listing
catalogue-ctan /macros/latex/contrib/listings
catalogue-license lppl1.3c
catalogue-topics listing verbatim synt-hlt macro-demo
-catalogue-version 1.10
+catalogue-version 1.10a
name listings-ext
category Package
@@ -198102,7 +198459,7 @@ catalogue-topics list table
name listofitems
category Package
-revision 70583
+revision 70579
shortdesc Grab items in lists using user-specified sep char
relocated 1
longdesc This simple package is designed to read a list of items whose
@@ -198116,10 +198473,10 @@ longdesc different from the parent list, paving the way for nesting and
longdesc employing a syntax reminiscent of an array of several
longdesc dimensions of the type \foo[3,2] to access the item #2 of the
longdesc list contained within the item #3 of the top-tier list.
-containersize 7752
-containerchecksum d6262c85d8df67b4e85e8d80caf776f723dbf68f71e604c012965ddb1469c2cc3d965f84fe26ef245b6788de4c5e9e5b6f2b97938a0b1c5c67ce8661877a2295
-doccontainersize 406416
-doccontainerchecksum a1a5cfc935658cd452b08ec422b6530a2d7fa49685b226a27760976ae652fcc0e7c6a239050d2a70aa34b0933b5e5c14c072b6ef7ec294182c274412d830703f
+containersize 7760
+containerchecksum 808395fdb8c7b9ec738e26eb582fbcf4555291695dff70558d415b34c640cbc4362be358ec35582be18066ff419718f70ca2be65ee30aee85d2fd57d7cd7b6a0
+doccontainersize 406384
+doccontainerchecksum 57cbb93175df4f4766d3a00ffdd6701ed4c14efe8d33ce831412f93fd5fb025ae4cca4e1ec16ec6172da12dff830c61c9d888450f9b84197d45566309ba6eac3
docfiles size=123
RELOC/doc/generic/listofitems/README details="Readme"
RELOC/doc/generic/listofitems/listofitems-en.pdf details="Package documentation (English)" language="en"
@@ -198174,7 +198531,7 @@ catalogue-version 0.2
name litebook
category Package
-revision 70583
+revision 70579
shortdesc A fresh cover and chapter design for books
relocated 1
longdesc This template provides a fresh cover and chapter design for
@@ -198184,10 +198541,10 @@ longdesc from
longdesc https://github.com/xiamyphys/LaTeX-General-Relativity-R.Wald
longdesc Welcome to feedback bugs or ideas via email
longdesc xiamyphys@gmail.com.
-containersize 3060
-containerchecksum 46946e4546edce653f21a71689352b8a582f76bd61fa91da3178ac09860a878b38a3fbf72d6a57f6bd94120fe5ded01b598e6516d5f8a2acaabaf6b2ebde4680
-doccontainersize 725152
-doccontainerchecksum 4b91e32193a2fce61dfd96feffc2f7cf5211982d7676c37ed44e32cd03665bce80911f636eecfa6039263875e81f1cf5135b06faae57134d88372156b5576abb
+containersize 3056
+containerchecksum 785eb9746d3eab60039865bb983072d87708d7788fa6e2d4ba0639629b81bd5a4e50cad4482e37aa9e0110232b158e283de58c55d94c7bfea5958d672802c88f
+doccontainersize 725120
+doccontainerchecksum d96f3cb79bf1b816d83cf68be2bd61c5810defbb7a5c01958492b8cb231412f49ac9c57033801cd885d40e53dd26734d2d148dc41324e0bb542ebe82765af54a
docfiles size=210
RELOC/doc/latex/litebook/License
RELOC/doc/latex/litebook/README.md details="Readme"
@@ -198208,17 +198565,17 @@ catalogue-version 0.1c
name litesolution
category Package
-revision 70608
+revision 70595
shortdesc A template providing a light design for solutions of test papers
relocated 1
longdesc This template provides a fresh design for typesetting solutions
longdesc of midterm or final exams, textbooks and other exercises.
longdesc Welcome to feedback bugs or ideas via email
longdesc xiamyphys@gmail.com.
-containersize 3128
-containerchecksum 15a900b8789ed60364c2c8880522963484d9397f0774c1b945b109c0e320ff191e600e0db7878186444707582bf1411db18145c6ce2545f141be9491ff9335f2
-doccontainersize 547660
-doccontainerchecksum fe0ff414190a8d2c9bd9752df294007f4681360bdc07cd23547d519e0f7db0972900a2420bb761e28ca54e0a49eeda1d7cb1a2f20f3d3c6eb0cb3e5b09da9938
+containersize 3124
+containerchecksum f1a4712652a80774f12c646d7d838ead65ebe662750931a30288c708cbfdbfa52abf67c1e05f65b5cf673a2e86ad8a87d8397a479d6a15cabe2a280dd2829b96
+doccontainersize 547656
+doccontainerchecksum b392211d65bf44491c688d21aa2679412ef9a890e0087bb9011afefa6d0c0abff6286bd8467dfc7f60e5044753afd580d8c3932dec05d7f8deb3bdcb5961a3b6
docfiles size=164
RELOC/doc/latex/litesolution/Beautiful-realities.jpeg
RELOC/doc/latex/litesolution/License
@@ -198238,7 +198595,7 @@ catalogue-version 2.0a
name litetable
category Package
-revision 70355
+revision 70352
shortdesc Class schedules with colorful course blocks
relocated 1
longdesc This template provides a beautiful design of class schedule
@@ -198248,9 +198605,9 @@ longdesc to participate in the development of the template or other
longdesc templates by me, welcome to contact me via email
longdesc xiamyphys@gmail.com.
containersize 3840
-containerchecksum a77145b829bfb5ff6d943f11e687f54ccb3abb3784ce9e3bdf145bb66e5c808a46a802eaec1f6932a2917683d64df41cb44b8ec90499a8e93928b46913d099bf
-doccontainersize 425176
-doccontainerchecksum b4080e8d6243b8e6353f12b090c481cc63fafa7c1c20596467dec79340a8fc1060431f9576d9742c901e45cc1d7285686356bd64cf0d274a7a8bc2c0de8162f6
+containerchecksum b2838afd3ae85b0fc75d1dec31f37643058a9fde62e585820a6d3196cfca1250d582fa5febbc7621dbb1343dc54b034be5eef31d7e9a516aae2923d7ab4ec483
+doccontainersize 425180
+doccontainerchecksum 2b1f0c9a75390272820db65e6eb6c82aa8618e7217e8a81b6c4343502a772f776d966aad11a0cc18cf701482975651f2805f0767982302f2ee2c06801ecb815b
docfiles size=167
RELOC/doc/latex/litetable/License
RELOC/doc/latex/litetable/README.md details="Readme"
@@ -201492,16 +201849,16 @@ catalogue-version 0.1.9
name lt3luabridge
category Package
-revision 69867
+revision 69856
shortdesc Execute Lua code in any TeX engine that exposes the shell
relocated 1
longdesc This is an expl3(-generic) package for plain TeX, LaTeX, and
longdesc ConTeXt that allows you to execute Lua code in LuaTeX or any
longdesc other TeX engine that exposes the shell.
containersize 3024
-containerchecksum 132009434c830ebc5d78978cd1258861c86d53529cd0cfd30e26ed0516767b6dfd7f4a8f9252610394a87a1e42e011499c4f7bcbc7bf6748c9b4ca9eb09b2168
-doccontainersize 490200
-doccontainerchecksum ff386128898be97c5388c4a3265d7c22c83def095d37aa0c27c167cba95d2e176da519878d53d60b0c7ed60a8b8fe8b5aa987c583dbe87138c54a0533eaeae69
+containerchecksum b17c503509b0e382224e1218b1e85c006ddd02de439e04ea7f5f3023ef848c2c067a762f2601bf513aea9a05f0de27e2e6e6b35915340f0311c7c1717c08fa52
+doccontainersize 490220
+doccontainerchecksum 0efd0b006e25319063caff0804ee007562643a95586e27ef4ea803b1a687ced127d1c3cdad1bfa25503aa8f72d542f9a4758409b8569a512a4c7942aad9cd3c9
docfiles size=132
RELOC/doc/generic/lt3luabridge/LICENSE
RELOC/doc/generic/lt3luabridge/README.md details="Readme"
@@ -201510,8 +201867,8 @@ docfiles size=132
RELOC/doc/generic/lt3luabridge/example.latex
RELOC/doc/generic/lt3luabridge/example.plaintex
RELOC/doc/generic/lt3luabridge/lt3luabridge.pdf details="Package documentation"
-srccontainersize 4284
-srccontainerchecksum 45e1698f7b0cae5dc127d3cada726333878fa39a753c62f6762c5fec55d95d21e4e05fa8fbedeaf7d8861ebe030a6c99ebbf66cf367921a3320443efb0115da5
+srccontainersize 4296
+srccontainerchecksum c280f2f418593d86ac8976f832275c74d326331710ba4a6c1b9d996cfbd53f9d42256d3a8ab06cae5c0a82fd85fc18fda52d2658bf6965ccc955c0b2537b23fd
srcfiles size=5
RELOC/source/generic/lt3luabridge/lt3luabridge.dtx
RELOC/source/generic/lt3luabridge/lt3luabridge.ins
@@ -202273,7 +202630,7 @@ catalogue-version 1.0.5
name lua-placeholders
category Package
-revision 70055
+revision 70048
shortdesc Specifying placeholders for demonstration purposes
relocated 1
longdesc This package is meant for setting parameters in a LuaLaTeX
@@ -202284,10 +202641,10 @@ longdesc values. From thereon, the placeholders can be displayed in the
longdesc document and an "example" document can be created. An "actual
longdesc copy" document can be created by loading additional "payload"
longdesc files, which all must correspond to a recipe file.
-containersize 5580
-containerchecksum 480d898d4c0e03776fbbb45243cf813a1a7d87b041b70566d74a1b89601602b8b3890f6d0395bead0cc6e9a876f5e154883035e1318ed0781302c2aabdc4a1b7
-doccontainersize 268132
-doccontainerchecksum 13fd2c68dbe7f3672dd6e4d560db81f4b1583cad137ff6b38b82f73ec4e8d20c5b1ca87d10d05b9566805a4f06aa97725d0aa12d5838e4ca146890c824eb57d6
+containersize 5592
+containerchecksum 3a659504c7ad120ce306deb1db91fdb97f7c17597cd4d9bc5fc80b13f5d3017b520eb95f6d016ededcb4719cea19dd9206a7738a4f6cc2e99c6c0939c1df9afd
+doccontainersize 268152
+doccontainerchecksum 3660ca68b6343af8e3263714f5aed920ff9565d33ed87cf0051ddfc56d5c8a0e3badd18d8c58a25fcfc4d2f356b4c54604194fa8eec41a7f701d855637d87e9a
docfiles size=93
RELOC/doc/lualatex/lua-placeholders/README.md details="Readme"
RELOC/doc/lualatex/lua-placeholders/lua-placeholders-deps.bib
@@ -202410,7 +202767,7 @@ catalogue-version 0.1b
name lua-ul
category Package
-revision 70206
+revision 70203
shortdesc Underlining for LuaLaTeX
relocated 1
longdesc This package provides underlining, strikethough, and
@@ -202420,14 +202777,14 @@ longdesc is not affected, the underlined text can use arbitrary
longdesc commands, hyphenation works etc. The package requires LuaTeX
longdesc version [?] 1.12.0.
containersize 7464
-containerchecksum 158abe2f05bc7e00e6b7876023a0763e4a4f4178b5816fc4c5509342cb0b5db0a96fe16083b10f9150e1a7f089a64ade43fe1059a5c970b484d6b0e58adc1691
-doccontainersize 107672
-doccontainerchecksum 3c5c4cac2c17c2eb31af2602b73d3be28928ce72e84b1b84fdb5165463d9f563b20a741a1934f9587e2235ba2f4755cee4767b32fb02b09631cc2afd6af622dc
+containerchecksum 1098046e3849a10fdf25dc6d89598cd246353495404ea4f4cbab11fe9f79602e686ab87b593e3e31f082d64ede1173ab66340a64ffb83c6dc9ab347ce3d38f53
+doccontainersize 107676
+doccontainerchecksum a9a1f28fdc93c53da5f5fccef52cf6a77d60bba97dba6917450859c60f87f68e901049ffae37f427429ecc1ca56cd2ec6ec7bdc09a7a063122631a015738f40b
docfiles size=29
RELOC/doc/lualatex/lua-ul/README.md details="Readme"
RELOC/doc/lualatex/lua-ul/lua-ul.pdf details="Package documentation"
-srccontainersize 11704
-srccontainerchecksum 0e2b2664b7f5fc711ee8213cf5790dd0bed5c9961af0f7abc2bd32c331e3d852cb80fcc350e8d9ff5878ab299063a96774f175c7ff24eef65636713bf240902d
+srccontainersize 11712
+srccontainerchecksum 0df7a0934e455f2dbf7bf7afe2b68dba686aa074aaa26930dbc101440fa7a5adbcd6581e1300995c33da45ad1911edbf21ea916ebd785d475e96caa9e5035226
srcfiles size=11
RELOC/source/lualatex/lua-ul/lua-ul.dtx
runfiles size=10
@@ -202516,7 +202873,7 @@ catalogue-version 0.9
name lua-widow-control
category Package
-revision 70602
+revision 70601
shortdesc Automatically remove widows and orphans from any document
relocated 1
longdesc Unmodified TeX has very few ways of preventing widows and
@@ -202537,17 +202894,17 @@ longdesc package at the start of your document. To load: Plain LuaTeX:
longdesc \input lua-widow-control LuaLaTeX:
longdesc \usepackage{lua-widow-control} ConTeXt:
longdesc \usemodule[lua-widow-control] OpTeX: \load[lua-widow-control]
-containersize 19972
-containerchecksum 1e489f819959a321b0baf60420dc25a217b0ed380067bc440307e500295b059f450c961072c001708affec4ad353477627095e71b75ff961f69c7d1f00fd8953
-doccontainersize 1157112
-doccontainerchecksum dc01e75eccbd0650ee0126348ba38c25fbe0a303a8317f7255c7f6efdeff66cc1603fa181bccf4371b0f4c56fa664d2ea99822914c1db9bf6e282f74c4c79f5d
+containersize 19976
+containerchecksum c6fd343d0d6ec48c2b097e1214f0e323ca8146d042767ae37d326f07489e41d72afae032959eadfee97e5c261535d1cc319ee806ccf71fa64c883c9f1321af80
+doccontainersize 1157084
+doccontainerchecksum 22bac26d8b353226d3887451e14719ce3ce22df4bafd90d4ab9693d2ff57d8c16ea17360f1fe1b321a8bcbb772ae2259af69dc4e8698bc1a04f1b1b8e714a6ea
docfiles size=362
RELOC/doc/luatex/lua-widow-control/README.md details="Readme"
RELOC/doc/luatex/lua-widow-control/lua-widow-control.pdf details="Package documentation"
RELOC/doc/luatex/lua-widow-control/lwc-zpravodaj.pdf details="Zpravodaj article"
RELOC/doc/luatex/lua-widow-control/tb133chernoff-widows.pdf details="TUGboat article"
-srccontainersize 59824
-srccontainerchecksum 3add66b2dc968e7ce1b56ea4efced89e04f388b7f37f8be8d8d935df42c60fbceddbca6142a168f2a83493ed1fac3617971b7e342d9cf29f793a12ba429e5ab1
+srccontainersize 59796
+srccontainerchecksum 97a99d1e2f6ab74fd99636bde603a92ee4bdeeb6b3b935821fa049939e659910b9c2f223c3e98aaf2c9b88677fb659809a38b6a2873aeb5dbf731d9a08fe77de
srcfiles size=79
RELOC/source/luatex/lua-widow-control/CHANGELOG.md
RELOC/source/luatex/lua-widow-control/lwc-manual-samples.tex
@@ -203089,7 +203446,7 @@ catalogue-version 1.1
name luahbtex
category TLCore
-revision 66186
+revision 70015
shortdesc LuaTeX with HarfBuzz library for glyph shaping
depend cm
depend etex
@@ -203103,147 +203460,147 @@ depend tex-ini-files
depend unicode-data
execute AddFormat name=luahbtex engine=luahbtex patterns=language.def,language.dat.lua options="luatex.ini" fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
containersize 460
-containerchecksum 30b1fcd361cff27688c65ecffbcffc65053696200abfccd543a14253b53a35de2af53b37f7ed1580510a8c63293d2d002cf4d9fd2d44f86678e2ecb09f02e4b8
-doccontainersize 30240
-doccontainerchecksum 3016c12de8386af715932819701a6da1b106c504a7d13ba9bb5a04999737709f474b50c08311c1d4c23b5532ba7c1546cb0585e5375babbcd2091adf52d05664
+containerchecksum b1c78727ecda90057331e0e465f5d0f17cac3ecd4102f55743c070af23b10daf783e00c15edf70362708cf2dfd947623183cc433742d090d6314c71401019b0c
+doccontainersize 30236
+doccontainerchecksum 026039bf8a112e331289adc92dc73cb38787d32455bcb39ac5eef040e8bebf7ac399c961db7cff13dd28f35afb0e7533700319854a840c98778c89a9887ee12b
docfiles size=10
texmf-dist/doc/man/man1/luahbtex.1
texmf-dist/doc/man/man1/luahbtex.man1.pdf
name luahbtex.aarch64-linux
category TLCore
-revision 67024
+revision 70276
shortdesc aarch64-linux files of luahbtex
-containersize 2203408
-containerchecksum 1f325dca6900c77480fca564be17acc3228fdedd64f8f29f2080263895844e98acb15bf34582235d4752990e267be53f1d66718696475cd285a0e592faed3851
-binfiles arch=aarch64-linux size=2077
+containersize 2236952
+containerchecksum c0e0053a67ed69441786d879c8ffccba0472adbf9187dbc94c63da93f2e8ee108961eb61a920588ac10ba4fb6ecac6098fbdd1b34a5c46b9452d6ef3c16bdcd2
+binfiles arch=aarch64-linux size=2098
bin/aarch64-linux/luahbtex
name luahbtex.amd64-freebsd
category TLCore
-revision 67024
+revision 70276
shortdesc amd64-freebsd files of luahbtex
-containersize 2291440
-containerchecksum b53550c1d8622c474e5a00ad6a4313441027031c9436dcea3f1db7de1f9d18edf7e5a30524ec4ac7c8249745f27270a961029ed4f3e548fe43cea222b6e50900
-binfiles arch=amd64-freebsd size=1992
+containersize 2216580
+containerchecksum 9e596cebe373a03a18bcf77a9970883dd0b9a21541bf9fdd4874fbf6e73eceea9d2120a60aaf4bd8dbdc2ab1ed719e37ea7a4ece9e73fb96a68c883fdc154d5d
+binfiles arch=amd64-freebsd size=2822
bin/amd64-freebsd/luahbtex
name luahbtex.amd64-netbsd
category TLCore
-revision 66987
+revision 70286
shortdesc amd64-netbsd files of luahbtex
-containersize 2202928
-containerchecksum 38eb16c89dfb6a4b0e91961031e0e8edcfb993cf919c02a1c52430dc5f3d7083a5ec42ed320b86c1226ba7c8c4207877401f00d94695b972830dbbedb46493ae
-binfiles arch=amd64-netbsd size=2836
+containersize 2237004
+containerchecksum af7094317ff3c63dee67cb8bab7896dd0220eb300980dc1bfccc2e1c8711543ff7d0a26c17cc1971994754627be20b9a58393db5b35252dab4b9ad116f078cb1
+binfiles arch=amd64-netbsd size=2907
bin/amd64-netbsd/luahbtex
name luahbtex.armhf-linux
category TLCore
-revision 67024
+revision 70489
shortdesc armhf-linux files of luahbtex
-containersize 1926836
-containerchecksum fab31efe0ca15a41b9ace81a9519e47aa60d6c2c4ec480eba2529d184d12ef6afd7564dbd6f5a59747f6cb82daa5c6bf3db6b181baa93032d09bbdafbe386b9d
-binfiles arch=armhf-linux size=1711
+containersize 1946616
+containerchecksum d955ba3f832f5d829f9f5cadc835a999f11a0c495cac47a8b9cf9c01e8fbd7aa77835fc71108c0adaaf08754a509cf4458de704fb349cac1b1a9014adacd1c1a
+binfiles arch=armhf-linux size=1731
bin/armhf-linux/luahbtex
name luahbtex.i386-freebsd
category TLCore
-revision 67024
+revision 70276
shortdesc i386-freebsd files of luahbtex
-containersize 2162860
-containerchecksum ef18c23c9421a40d2ff884be94a0dedcc76f042cca11a5b2abd355d0fe4087379f1ac780d0e7a715f8e7e59ebf146cf361636bd6e71330e803796069634df892
-binfiles arch=i386-freebsd size=1860
+containersize 2214556
+containerchecksum 3b6fe52206ee8ca88f6dec613d6210ffc841664d1c9dbf5c0926ec6cb551c591ef77b34ec39c7342a54608ec111970b424b72c88c5426ac2a4ad9a5d2487ac4e
+binfiles arch=i386-freebsd size=2822
bin/i386-freebsd/luahbtex
name luahbtex.i386-linux
category TLCore
-revision 67047
+revision 70276
shortdesc i386-linux files of luahbtex
-containersize 2415832
-containerchecksum 3f05aae950e82f42174950e92bb2003eb1ecd8d2a3368f71f6d603364641cc26df19a338814742b70a12972fc5b77172cc564790255208fdb7806cb890a8b37d
-binfiles arch=i386-linux size=2093
+containersize 2438240
+containerchecksum 7d9f8d34968b6458cfbc07dedd094acac2bf0753aba458eb9148da3ce748392cc4dfede5ba1c9ba7677423f98b503bb0d04eb7b2d5647e0e0580d41028c996eb
+binfiles arch=i386-linux size=2120
bin/i386-linux/luahbtex
name luahbtex.i386-netbsd
category TLCore
-revision 66987
+revision 70286
shortdesc i386-netbsd files of luahbtex
-containersize 2036544
-containerchecksum 16e0b21f66c1f63f2be3c12f18164a2f2ae27ba61f1b9baa4e85f9978af0472b8af47125ff3e810468d9bf7c1acaa5514a666e6364bed276f24c54f7f403e3fb
-binfiles arch=i386-netbsd size=2611
+containersize 2075220
+containerchecksum f405ce9c5ea6e483f88dddd787ddf32c185a548b96183dfe1d08c32df2d38a1219684336dcfeb2bf8fe01fa0fd88c6181c366ca283e1457bcf2e63d65d77e4b7
+binfiles arch=i386-netbsd size=2685
bin/i386-netbsd/luahbtex
name luahbtex.i386-solaris
category TLCore
-revision 67024
+revision 70276
shortdesc i386-solaris files of luahbtex
-containersize 2110032
-containerchecksum 01da849da64889082d1604d0d0fe71b2af39cd9d8eb662040f0f8feb08cbcc24a0e7d9c673078d808d5d2863e43a10c5086416c5c5c9e83ad46a824e8b7f0539
-binfiles arch=i386-solaris size=1774
+containersize 2183768
+containerchecksum fcc8fa09211467d5a35e93a9653bb8b6183bc63fab9a7fe2ac9920e9fdf36ed521c5b9618436ea38d1f410b5a59cc771a095eceab37a21ac2c5d806da8392ac2
+binfiles arch=i386-solaris size=1845
bin/i386-solaris/luahbtex
name luahbtex.universal-darwin
category TLCore
-revision 67006
+revision 70274
shortdesc universal-darwin files of luahbtex
-containersize 3680412
-containerchecksum 26e49097e5e1638ce1e43ec67704a042fe20eb8f924a5667d4df60135ae4356ca69b7440af16f84930648e21983592a0690da77a9ff2bbc6becf7a6f7a50859a
-binfiles arch=universal-darwin size=3653
+containersize 3692816
+containerchecksum 7cbcd4a49750f526b3bcefffcf276483e58bdc15c92597c47369858348eb8df39496649285df24019b999f5251168317e183c64da56d172e5816b6ad8eeabfa3
+binfiles arch=universal-darwin size=3673
bin/universal-darwin/luahbtex
name luahbtex.windows
category TLCore
-revision 70418
+revision 70586
shortdesc windows files of luahbtex
-containersize 1906396
-containerchecksum bf7f553992f1539ace362bf0f2fa0b91a051f3facd05e81f88c7f89c0af335a3783a0f72c9dc191fbf8b2f69cc42c3f622188597c89b3ed67798cc8b9f706429
-binfiles arch=windows size=1710
+containersize 1933476
+containerchecksum 223dbb3c208f3c2b059353f4f7a96e7fcaa403c0810f4775a361757274b60813becd0d8217c739882e48c5711953d00f3db2107fdd6fa845d6a2ab518ac90230
+binfiles arch=windows size=1736
bin/windows/luahbtex.dll
bin/windows/luahbtex.exe
name luahbtex.x86_64-cygwin
category TLCore
-revision 66997
+revision 70560
shortdesc x86_64-cygwin files of luahbtex
-containersize 2110468
-containerchecksum 0c06ecab1f9b1800a4e6d0e51ce709bf3cb3712145bce5a9dff56fa1f2e76ec7ba7e29ba9b6d58854b63810a94a2183be6a75c02c59338368cdb1e27b38ad7ad
-binfiles arch=x86_64-cygwin size=1865
+containersize 2139576
+containerchecksum 99609a1c61fc9476109a0b7395e6ce1d7806144a6c88cebecbbe3feac4c334d38fe24b3b26e8c66752bc405aa8efe9518897e8b34e0ce6243c971daccbbf3159
+binfiles arch=x86_64-cygwin size=1893
bin/x86_64-cygwin/luahbtex.exe
name luahbtex.x86_64-darwinlegacy
category TLCore
-revision 67024
+revision 70380
shortdesc x86_64-darwinlegacy files of luahbtex
-containersize 1928428
-containerchecksum 7fc5acc14ee6ed1f635aac56cdd3084ae3c1a69267f8bed1e41b0361dad3968615edf00f8fb2fd55a7d62dd63e0196591f1fd5f734ad4514bf0e3ef41707a019
-binfiles arch=x86_64-darwinlegacy size=1704
+containersize 1936604
+containerchecksum 967dc1f030683def0838641fb767ce7f2a4e71eaced610be82634fc3461bc0c0cca3ca916d07abd8f8911a12f5fada33c5f8b1fb5e6472a2a7da8e435dcab201
+binfiles arch=x86_64-darwinlegacy size=1711
bin/x86_64-darwinlegacy/luahbtex
name luahbtex.x86_64-linux
category TLCore
-revision 68135
+revision 70276
shortdesc x86_64-linux files of luahbtex
-containersize 2357464
-containerchecksum 68e5b53a6855a36772eb24318383f1b32278036fff694750141d6ee74438abd5515e71270aabe2a15629bb55549e4556ac7b4927251e0a6023f0b7121a5d2985
-binfiles arch=x86_64-linux size=1967
+containersize 2370540
+containerchecksum 108fec38785d907b49a582d83dd7cdc5a077896b2afdc4b025ee6288849984f725c87dff6f6114a588faeb8dc4b68baaefdfc7b92c420b2ff21ac6d08e2805bc
+binfiles arch=x86_64-linux size=1989
bin/x86_64-linux/luahbtex
name luahbtex.x86_64-linuxmusl
category TLCore
-revision 67047
+revision 70276
shortdesc x86_64-linuxmusl files of luahbtex
-containersize 2459080
-containerchecksum 48daa8e0681abb2f6c65691f60625e764b56c9ecd5609b8cd6dfde37fdd7af72b7f41b869acb6f82322a5f3e663cfd2bc14a85e6f2684f666fadf0cb9e3116b6
-binfiles arch=x86_64-linuxmusl size=2122
+containersize 2478304
+containerchecksum 4300aec5c1dfefc0313c12d70f2e97c87ad63bd0e6906297d689b9475477695a6bddf8d2b11b3ee321f511d96782dd55667d1bfdc613ea96fae9a56e19558126
+binfiles arch=x86_64-linuxmusl size=2148
bin/x86_64-linuxmusl/luahbtex
name luahbtex.x86_64-solaris
category TLCore
-revision 67024
+revision 70276
shortdesc x86_64-solaris files of luahbtex
-containersize 2338308
-containerchecksum 0d624e595779f94ca55c77e12f360967417076c7178978697e110b5c4104b6ce52a8000b93f4eea8489b99262fb60faad5f38a494e01cda7cb0274afaaada56c
-binfiles arch=x86_64-solaris size=1988
+containersize 2409776
+containerchecksum 562d3521476513853cfb703cc39f248f124b08afe2258052f8b5d0e98907576a9e11df3df3a8bf43f13a63caf70ebe88b51e20d20c9d18945d09c7f9cf040187
+binfiles arch=x86_64-solaris size=2072
bin/x86_64-solaris/luahbtex
name luahttp
@@ -203395,7 +203752,7 @@ catalogue-version 0.973
name luajittex
category TLCore
-revision 66186
+revision 70015
shortdesc LuaTeX with just-in-time (jit) compiler, with and without HarfBuzz
depend cm
depend etex
@@ -203410,9 +203767,9 @@ depend unicode-data
execute AddFormat name=luajithbtex engine=luajithbtex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
execute AddFormat name=luajittex engine=luajittex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
containersize 484
-containerchecksum 21313a5786f2bea08ce55db3a7beedabaf66f3331bd0eac1f8f3d7b926f68e103b14b1a5beaa271c37b60fc56735cc180e424f91db62f6e740530a65495d8e82
+containerchecksum f2df7fc782948042eb49abb8a2c099871277aef96c2ab7ed7ef6fc6db4ffb154c1504719c6c34a11b203a45f1abdf2d50d7107b72d1c62d18f0788e2f14c8d98
doccontainersize 30360
-doccontainerchecksum 7637835fae934f4fb1aea954270281a986733d0e0592204346edc290f2cd7d5200ee2fa0d9e15a27be8221c3c990a8c3d4654e314f96441a65c197d3bd259129
+doccontainerchecksum 1573cf044205a49869527252335173c93dea300154444dc72a66c13e6d6a4e96b10fda7ab0c5a92290a72215be0ac94e39c7c78d1c4cd66e1b197d0fba46d1f3
docfiles size=20
texmf-dist/doc/man/man1/luajithbtex.1
texmf-dist/doc/man/man1/luajithbtex.man1.pdf
@@ -203421,11 +203778,11 @@ docfiles size=20
name luajittex.aarch64-linux
category TLCore
-revision 67024
+revision 70276
shortdesc aarch64-linux files of luajittex
-containersize 3594156
-containerchecksum 915fe66513ea19bd81fd62f2e308589d4b926697b5c9bae900881fbd6e944fd106d56b17e6255203d5d3a943ed57e5d06aa1a071a52f674396984b2434930471
-binfiles arch=aarch64-linux size=3911
+containersize 3628356
+containerchecksum d3e1e7de14f3bf23ec9e14131da176d9d8ebc351cd8ae35ac1ada4dee43bc955c48e107fde67f27334fe8c59eed00464cf88f14d07a621dbb8a49e8dcb621e7f
+binfiles arch=aarch64-linux size=3934
bin/aarch64-linux/luajithbtex
bin/aarch64-linux/luajittex
bin/aarch64-linux/texluajit
@@ -203433,11 +203790,11 @@ binfiles arch=aarch64-linux size=3911
name luajittex.amd64-freebsd
category TLCore
-revision 67024
+revision 70276
shortdesc amd64-freebsd files of luajittex
-containersize 2834420
-containerchecksum 46c86735a3ff6a0f09c74a8dbad99ba64ed997d8a5cd998de2fab0698b21041d74d2bd69984cfd19ba505a8aedeeac82397bca506337bc123e6e44663e2639f7
-binfiles arch=amd64-freebsd size=3820
+containersize 4046856
+containerchecksum e2fdf18314f4f2a10ef6c82f3166094d9ea0e304683e74ba3082d93b30ea3af97aa4049dab89e89395adaf3421fe9b8a22d527e9060ad069cce73e430b7f5268
+binfiles arch=amd64-freebsd size=5002
bin/amd64-freebsd/luajithbtex
bin/amd64-freebsd/luajittex
bin/amd64-freebsd/texluajit
@@ -203445,11 +203802,11 @@ binfiles arch=amd64-freebsd size=3820
name luajittex.amd64-netbsd
category TLCore
-revision 66987
+revision 70286
shortdesc amd64-netbsd files of luajittex
-containersize 4022648
-containerchecksum c66fcfdc569c6679317d160bcf720fba6395adcc3b4e15269d113b19136c8f0b42e3472b3fff4d7bfc8b0596804e8b6f77f4ed2456f9b74c9b485e3d75eaec73
-binfiles arch=amd64-netbsd size=5011
+containersize 4060108
+containerchecksum 915d130d983c600a50dc09bffd265482b3d26b806ab763c5e49dccf7d36c5beeb446c712c4d6e9f5d6532d8666594b9bafd6ce4f0bf19539d47309ae3fe91c3e
+binfiles arch=amd64-netbsd size=5087
bin/amd64-netbsd/luajithbtex
bin/amd64-netbsd/luajittex
bin/amd64-netbsd/texluajit
@@ -203457,11 +203814,11 @@ binfiles arch=amd64-netbsd size=5011
name luajittex.armhf-linux
category TLCore
-revision 67024
+revision 70489
shortdesc armhf-linux files of luajittex
-containersize 2208360
-containerchecksum d22a9a3666e4e1babaae9da947fbbd573cee7d7a4d3019f0bc42d44319f1cf30ca870d51ed80a2f16411c9b27001135b7feaaef281ef3aa9f9f0298db6d33be1
-binfiles arch=armhf-linux size=3191
+containersize 2219816
+containerchecksum e1e7ec60193db615d3cab92704d7ca258a473f8f4fc816b2d65c13cdbc4f0f02aeaecec2c8d3b48d49ffcec66fae4822d938fb359c32bfcbfa700af76445045f
+binfiles arch=armhf-linux size=3215
bin/armhf-linux/luajithbtex
bin/armhf-linux/luajittex
bin/armhf-linux/texluajit
@@ -203469,11 +203826,11 @@ binfiles arch=armhf-linux size=3191
name luajittex.i386-freebsd
category TLCore
-revision 67024
+revision 70276
shortdesc i386-freebsd files of luajittex
-containersize 2640812
-containerchecksum d9e7cbe4ac8f2d68d02cafdce2e2ede54c29629701ce99b11f259ba512aaede157a21185522fa6e8b922808a6ee37627f1034374568446a36ebb41d277ef58d7
-binfiles arch=i386-freebsd size=3560
+containersize 4042128
+containerchecksum a84431dc1e052fe69bf52109831a8814ab91b617347c84c4771386e7d3282ea81b62468c79e8a6b0dac23cc1924da29e1551aa9b455e24aec6b48091fa510deb
+binfiles arch=i386-freebsd size=5002
bin/i386-freebsd/luajithbtex
bin/i386-freebsd/luajittex
bin/i386-freebsd/texluajit
@@ -203481,11 +203838,11 @@ binfiles arch=i386-freebsd size=3560
name luajittex.i386-linux
category TLCore
-revision 67047
+revision 70276
shortdesc i386-linux files of luajittex
-containersize 3838452
-containerchecksum 9137d9844b6aa1b627c686b00c0cd0d798d7f6afca09f533d2618976db14d9875ba63dc1a7fd1233e87320ca23cd7bf6ec1312526fce0762b7b490c937814c11
-binfiles arch=i386-linux size=3861
+containersize 3860532
+containerchecksum 9846fe034629fb145a6a0439aae8c5d11bda1aabb0651fc20799b9f4f0019a06a5b1a0d6d1409e1722025b115f7e78c449a0afaf56ba2f39b81bdc911fea7558
+binfiles arch=i386-linux size=3891
bin/i386-linux/luajithbtex
bin/i386-linux/luajittex
bin/i386-linux/texluajit
@@ -203493,11 +203850,11 @@ binfiles arch=i386-linux size=3861
name luajittex.i386-netbsd
category TLCore
-revision 66987
+revision 70286
shortdesc i386-netbsd files of luajittex
-containersize 3591804
-containerchecksum 0abaabd0f6b142f6e7c0dd74bc54989c9f5db2f33eeb07aea8f36acd1091acce510d61037671e2bca2ab7a738be69ee98f2e30b4c7cb14fa67db21df3babf7ed
-binfiles arch=i386-netbsd size=4581
+containersize 3631268
+containerchecksum ff3f05e50d5dd8ee4f423e776b7090ba66083b132930d6cee7d5cdbd1a794423aa953507d4d5f9c01cd29ab101dbab91b8b034300117acec21a2287b2cd1ac52
+binfiles arch=i386-netbsd size=4660
bin/i386-netbsd/luajithbtex
bin/i386-netbsd/luajittex
bin/i386-netbsd/texluajit
@@ -203505,11 +203862,11 @@ binfiles arch=i386-netbsd size=4581
name luajittex.universal-darwin
category TLCore
-revision 67006
+revision 70274
shortdesc universal-darwin files of luajittex
-containersize 6664880
-containerchecksum c6c60ad9c7ad29577c70cf9cbaac47f43ac8242c9a645bdb5012ad959812de27607f1ced58859412a02e05bc412cc1ac9cf7137588de78843fe905b73971511d
-binfiles arch=universal-darwin size=6941
+containersize 7003888
+containerchecksum ac02de52949a4064c459ea75740e801e9f87be9c4e789b26d2fe8ba8bb3b2ae7d7326f94fe3b59ac61dd69f5186f7e1597de951595e2535a60f876569e48a5b0
+binfiles arch=universal-darwin size=6973
bin/universal-darwin/luajithbtex
bin/universal-darwin/luajittex
bin/universal-darwin/texluajit
@@ -203517,11 +203874,11 @@ binfiles arch=universal-darwin size=6941
name luajittex.windows
category TLCore
-revision 70418
+revision 70586
shortdesc windows files of luajittex
-containersize 3901624
-containerchecksum a290c430f8001cb8e88a6a5a1cf0bafcd1777e41657be6e47ce64c3c2dd5eda57388fc662bf11657f2071fd7a37c5964eb1e2892b72197fd5df1c5cc4104891d
-binfiles arch=windows size=3884
+containersize 3935876
+containerchecksum f3d6059f90ef2949579e3c64edce638cd26a3df92a293fb78e926adb0afaf2bc8c53bbac43c71ead955b649073dca97ad4c0373f4647c935fa0e2c8d1c0739ca
+binfiles arch=windows size=3947
bin/windows/luajit51w64.dll
bin/windows/luajithbtex.dll
bin/windows/luajithbtex.exe
@@ -203532,11 +203889,11 @@ binfiles arch=windows size=3884
name luajittex.x86_64-cygwin
category TLCore
-revision 66997
+revision 70560
shortdesc x86_64-cygwin files of luajittex
-containersize 2564004
-containerchecksum 69e57adc31910e20abd5474e7314aa95f023e165cb885ab6b0d90df32a38fcb7dd9aa6b386ae3d81897ccfeb6e20b16c0706ca8ba3c021556475959134a63937
-binfiles arch=x86_64-cygwin size=3498
+containersize 2577200
+containerchecksum 7d0d067124c29e206c6fea2705e76308da50825c1a5e4ee2af7feec3a8dacd1811b0e0e15fa24047b849f13392f719ec9bd70922e604652f56446f1ac7c294d3
+binfiles arch=x86_64-cygwin size=3531
bin/x86_64-cygwin/cygtexluajit-2.dll
bin/x86_64-cygwin/luajithbtex.exe
bin/x86_64-cygwin/luajittex.exe
@@ -203545,11 +203902,11 @@ binfiles arch=x86_64-cygwin size=3498
name luajittex.x86_64-darwinlegacy
category TLCore
-revision 67024
+revision 70380
shortdesc x86_64-darwinlegacy files of luajittex
-containersize 2302172
-containerchecksum 9dd35bdb699f55055ecfa3dc2bea7786afce333426de3f6c10e54f085b7514695d069395a3329593e833d6979d6534a2389474895c412578ab80a0ac6fc5d5e1
-binfiles arch=x86_64-darwinlegacy size=3251
+containersize 2301520
+containerchecksum ea12b53fb917824dc30979428d1c6281f73be44c63d29d88c467654333eced71d9d0ab3e7c738c079219625bc6542193986a3ece15bef125a9feed1de8a5e92c
+binfiles arch=x86_64-darwinlegacy size=3260
bin/x86_64-darwinlegacy/luajithbtex
bin/x86_64-darwinlegacy/luajittex
bin/x86_64-darwinlegacy/texluajit
@@ -203557,11 +203914,11 @@ binfiles arch=x86_64-darwinlegacy size=3251
name luajittex.x86_64-linux
category TLCore
-revision 68135
+revision 70276
shortdesc x86_64-linux files of luajittex
-containersize 2816908
-containerchecksum 89730319ddb673e255f4ce1f809dade6267b17827b42d3324b0c3bb48407e553dbf441e3cef462003f8171a88a11917b5efaceaa01bca9b7c4bde9f4ebe041de
-binfiles arch=x86_64-linux size=3665
+containersize 2838700
+containerchecksum 8d11ad7c7ce85a1c55ed9f3b5beee61d438bcf53aa4f6d6605849590756d3425a1c48332a67002ed9f3cb97fb5c911cef6a64ae6d7f119e9621250900a14cd90
+binfiles arch=x86_64-linux size=3690
bin/x86_64-linux/luajithbtex
bin/x86_64-linux/luajittex
bin/x86_64-linux/texluajit
@@ -203569,11 +203926,11 @@ binfiles arch=x86_64-linux size=3665
name luajittex.x86_64-linuxmusl
category TLCore
-revision 67047
+revision 70276
shortdesc x86_64-linuxmusl files of luajittex
-containersize 4032388
-containerchecksum 97439bc0c8d781b05fe1341c4a7e5dc4a82011acf0ffe8a4c68c3320b29825526fc1ed308eed8d8248e6bedea44cd43cbb45f7e57a1f57253fd6174f8a39728f
-binfiles arch=x86_64-linuxmusl size=3966
+containersize 4064256
+containerchecksum 11202814c13d6334394c3669ea090aa17db1f165a486e00215aa6c6d2a15fc50c0ac4f7c4b1535ba802c44766df964176a1344f15de2b088fd63f1dc61d6d253
+binfiles arch=x86_64-linuxmusl size=3994
bin/x86_64-linuxmusl/luajithbtex
bin/x86_64-linuxmusl/luajittex
bin/x86_64-linuxmusl/texluajit
@@ -203945,25 +204302,25 @@ catalogue-version 1.1
name luamplib
category Package
-revision 70583
+revision 70579
shortdesc Use LuaTeX's built-in MetaPost interpreter
relocated 1
longdesc The package enables the user to specify MetaPost diagrams
longdesc (which may include colour specifications from the color or
longdesc xcolor packages) into a document, using LuaTeX's built-in
longdesc MetaPost library. The facility is only available in PDF mode.
-containersize 12600
-containerchecksum 97551597042f2b609abfb7c275e3f371a57aa6948b4085017926ff8a8adba02ee68dcbc84d3cfcf4eb3ccb93ff1c61157c9dab2e2b3bc945707ce106e17d169b
-doccontainersize 160708
-doccontainerchecksum 6c366637d27c498cedbeb6222ea8b48a807ce806bcee89cbbba7f7fb5d6b3bacc7fa4ffb3c1288a02b803bfd7b96725b12fd46eb2e9ec965e2b69f057b1c2c03
+containersize 12596
+containerchecksum bd9bc82022f1f6e289727be07484e54ea2f5f0cacf3014c5ac1b5a117ff0e2e5b0171e3392fea84eabe4fec4195ba752e89e1195077333c256b58ca4efe079ea
+doccontainersize 160724
+doccontainerchecksum a43d480d90100308f8d2b0729c24771316cd27efb478ee74d599f85af8de7ccc63b9c546143809285568b211bbe6a2de2cdc4953f9e5564a0f436fa2ee792f97
docfiles size=46
RELOC/doc/luatex/luamplib/NEWS
RELOC/doc/luatex/luamplib/README details="Readme"
RELOC/doc/luatex/luamplib/luamplib.pdf details="Package documentation"
RELOC/doc/luatex/luamplib/test-luamplib-latex.tex
RELOC/doc/luatex/luamplib/test-luamplib-plain.tex
-srccontainersize 28092
-srccontainerchecksum 546d9403d20ed58a470b9e2fbd5b34c1863c4ef69e90156a6c0071f09ff425f6bbd9d39813b870f55997cafa520caa9326b79e31708630f9b3a44b0b0ceddc3d
+srccontainersize 28120
+srccontainerchecksum 66ac9e842db1d0997145f5976723c75bdf9630ef637aaf9e999cfbf58f7ea7557953dc5c2e865f2ae8c05adb7e05871c1c74c7257cbb1a15c7dc7419dfc18514
srcfiles size=26
RELOC/source/luatex/luamplib/Makefile
RELOC/source/luatex/luamplib/luamplib.dtx
@@ -204058,7 +204415,7 @@ catalogue-version 0.8
name luaotfload
category Package
-revision 70234
+revision 70232
shortdesc OpenType 'loader' for Plain TeX and LaTeX
longdesc The package adopts the TrueType/OpenType Font loader code
longdesc provided in ConTeXt, and adapts it to use in Plain TeX and
@@ -204068,10 +204425,10 @@ depend lua-alt-getopt
depend lua-uni-algos
depend lualibs
depend luaotfload.ARCH
-containersize 623148
-containerchecksum 3882508595c12b7eedd7bd657e28e33d1d1ffc546ba6b281e6e212b1f9492a124e06b0d27da28b5ddaaff05728b231fe044be581bf001ed1441fedc284b2f436
+containersize 623560
+containerchecksum 72d27376dc6c6b6795df234f8744b403f6972f77424b898dd1dff1e3c42c702fbde2acf810c8af569f394c94dcb949ceef3ee331b8ded4db1101c7c396874efb
doccontainersize 637452
-doccontainerchecksum bcb4147d4713fcbc28094209d9234aa95e5bceaae53acb97674cc4a458daa8ed3db4685a8d2dcf7da29218e06daaa4a727c3ed2c9c5d991904054fbd1a023459
+doccontainerchecksum 676e4238eb0a8914800f2ed1878d2af8a295932a2e6a6863cf78f607ce24033edf05fc753980276b1a7a6a412eaff3b51213aa583ae20baf01af52a55f31a84d
docfiles size=276
texmf-dist/doc/luatex/luaotfload/COPYING
texmf-dist/doc/luatex/luaotfload/NEWS
@@ -204096,8 +204453,8 @@ docfiles size=276
texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
texmf-dist/doc/man/man5/luaotfload.conf.5
texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf
-srccontainersize 7292
-srccontainerchecksum 5ff132658ec2fab529595dc150674f19fcb266f87b6f294f42de04c4aa2c067091cec7a416c201b5970e56dfa3adb6772ed4276370aef7bd97eb6bf661bf2e8a
+srccontainersize 7300
+srccontainerchecksum 36a6412bd1efc7ffe89f2e2d53e8d24d52dd0c2e16b88dc5477db063e1a28f798e2f44023bff8640dc87dbb9a694f3088ec3c76587ecbd9845ca73e3cd51e60d
srcfiles size=6
texmf-dist/source/luatex/luaotfload/fontloader-reference-load-order.lua
texmf-dist/source/luatex/luaotfload/fontloader-reference-load-order.tex
@@ -204569,7 +204926,7 @@ catalogue-topics maths luatex
name luatex
category TLCore
-revision 69182
+revision 70263
shortdesc The LuaTeX engine
longdesc LuaTeX is a greatly extended version of pdfTeX using Lua as an
longdesc embedded scripting language. The LuaTeX project's main
@@ -204589,11 +204946,11 @@ depend tex-ini-files
depend unicode-data
execute AddFormat name=dviluatex engine=luatex options="dviluatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
execute AddFormat name=luatex engine=luatex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
-containersize 13432
-containerchecksum 5ddb75ca2e358bea261363cc19d39a37a9e467f9cbf4f8006f036a96fea61cb00f86c4000c09d7dd07f71f9b9a01ec165ddefb862aa84f0bc3da6a387ca1f42b
-doccontainersize 1956816
-doccontainerchecksum 36a5dfb6b7ca09adad807d2fa74df854363107eb3fb514977e3ed8c69eeb1181a19a55a49eb8c001a3532601c0a222a3ae9d130827caa19864df03705af7271c
-docfiles size=752
+containersize 13448
+containerchecksum e8ee5df83a597e6a187a9e2df5fe6e7e2267dd2036d17f0f55b8d911258cc5fbb8ceb0fe646b41107399af61ec4a4be2c4e9d1b61fcaec8a2955d7225e07e35e
+doccontainersize 1962912
+doccontainerchecksum eb9b099186202946b0fa3483b576e8a50fa47484120b20ddf9b2aaae389bb536193802cac4f8c6af4d3e611ff05f1714cb65e0cea48a5b78627a563f81e808c3
+docfiles size=753
texmf-dist/doc/luatex/base/NEWS
texmf-dist/doc/luatex/base/graphics/luaharfbuzz.pdf
texmf-dist/doc/luatex/base/luatex-backend.tex
@@ -204641,10 +204998,10 @@ catalogue-topics engine
name luatex.aarch64-linux
category TLCore
-revision 67024
+revision 70276
shortdesc aarch64-linux files of luatex
-containersize 1725316
-containerchecksum ae51fba65145c5ed368666563c5c33e0b27821613d9802d00bfe3d97677f7e8075758e9cc193ce8d9e4c909fbfc83e197fd4d498115b8bab003e947f29c159d0
+containersize 1731312
+containerchecksum 82d4f812981036c0d5a1093bc2904b05e8c10de91d190a1fb687fa544eb5f66921e8cae4db9264ff19f4c5c0c28d5188b3414b599de0d38215eff0bf5741cc3c
binfiles arch=aarch64-linux size=1744
bin/aarch64-linux/dviluatex
bin/aarch64-linux/luatex
@@ -204653,11 +205010,11 @@ binfiles arch=aarch64-linux size=1744
name luatex.amd64-freebsd
category TLCore
-revision 67024
+revision 70276
shortdesc amd64-freebsd files of luatex
-containersize 1891424
-containerchecksum 025b365106d9b49457f909d7a20531504c50dac2bc62f9cdac4f09225fb5fc9f11437d7731be21b098f32b924adf81f6f7ab04d3fc0cb7e523209f75f52e90e7
-binfiles arch=amd64-freebsd size=1713
+containersize 1612244
+containerchecksum a5cb8d7ee13521a6217a29820f1e02210183fcb3d81f4913f5cc9c890a3f1005e9c0b6b841cd683be26038b4cb9239288fd18369fbc3bfc7b779b1380bd018e2
+binfiles arch=amd64-freebsd size=1982
bin/amd64-freebsd/dviluatex
bin/amd64-freebsd/luatex
bin/amd64-freebsd/texlua
@@ -204665,11 +205022,11 @@ binfiles arch=amd64-freebsd size=1713
name luatex.amd64-netbsd
category TLCore
-revision 66987
+revision 70286
shortdesc amd64-netbsd files of luatex
-containersize 1596260
-containerchecksum 03cc5b82d661fe483d5fb2c1c785c6708caef82928efb532743a794c803114413199891ae87adb6d88d9353ecc31fe00667d2be196988feec990cf667794a20d
-binfiles arch=amd64-netbsd size=1976
+containersize 1610900
+containerchecksum 0c041661f7b26e1d11a2e0f7c3c71ea6c77c00da6017a87cd5feec14f69b57d4ee7d3daf91f14c2eadcdd6c779f21c0abbc4687ff46639c29e1c127a1ef63558
+binfiles arch=amd64-netbsd size=1980
bin/amd64-netbsd/dviluatex
bin/amd64-netbsd/luatex
bin/amd64-netbsd/texlua
@@ -204677,11 +205034,11 @@ binfiles arch=amd64-netbsd size=1976
name luatex.armhf-linux
category TLCore
-revision 67024
+revision 70489
shortdesc armhf-linux files of luatex
-containersize 1474148
-containerchecksum 9c490f66c508e9cfd064306b53a7c030afd569f0a6f9f5ba2f2179b79b2801886730e454db49d7a85a11b1043f02b764c82e28d279a77d173913f4d2f215ee55
-binfiles arch=armhf-linux size=1401
+containersize 1489616
+containerchecksum 8dcfde487efff64b37820b8f1320dc7cd78db6504cedf18d3ee3b6c445dfb4112dba61f93a37fcc166f01d4cca065d221acb75507f5da441d41340a55c8ecbfe
+binfiles arch=armhf-linux size=1405
bin/armhf-linux/dviluatex
bin/armhf-linux/luatex
bin/armhf-linux/texlua
@@ -204689,11 +205046,11 @@ binfiles arch=armhf-linux size=1401
name luatex.i386-freebsd
category TLCore
-revision 67024
+revision 70276
shortdesc i386-freebsd files of luatex
-containersize 1795500
-containerchecksum 334b2877c0aa6a2d47bf3ec97b2f139a29d6899765bc11c08c3db0b1194f44ae0d5d285f1b19f2ca90fb36cb71786bec6a7bbd1f0c50354e124b3abc1a29fe3e
-binfiles arch=i386-freebsd size=1599
+containersize 1612160
+containerchecksum 4ae73910ed2a513b88615540a7a125ace1fb85e5550e5fde69f53e8b99e25512085961e24bb9086f85a8933c7cd675bb5cbb75a2748e2d5200328797a2c8389f
+binfiles arch=i386-freebsd size=1982
bin/i386-freebsd/dviluatex
bin/i386-freebsd/luatex
bin/i386-freebsd/texlua
@@ -204701,11 +205058,11 @@ binfiles arch=i386-freebsd size=1599
name luatex.i386-linux
category TLCore
-revision 67047
+revision 70276
shortdesc i386-linux files of luatex
-containersize 1883936
-containerchecksum 85688183242698c34a1f272dd5c6c0318a25d0c0c1b0ba71340653942115383579c2bfa040833e321d88e2572cc83e24e267838b0e8c6c34ef934b43bfd194e4
-binfiles arch=i386-linux size=1715
+containersize 1869764
+containerchecksum 6b30034d04514d6a13873bdca5329697a5510cab48676287b71ef120b5581ef9e35f0d66701e499cd8b1c71768189f3f52e517fe73607d7c4c818c717eb084e9
+binfiles arch=i386-linux size=1718
bin/i386-linux/dviluatex
bin/i386-linux/luatex
bin/i386-linux/texlua
@@ -204713,11 +205070,11 @@ binfiles arch=i386-linux size=1715
name luatex.i386-netbsd
category TLCore
-revision 66987
+revision 70286
shortdesc i386-netbsd files of luatex
-containersize 1457072
-containerchecksum 3c0155e0124adb56847ae0d4a0c7df1c6cc0752e28f9a0098d76321ef2534c6ca4440a24ecd60d29f84479bd4ce8a9fc0be0aae82c3a8217d0d3f108b469f1b6
-binfiles arch=i386-netbsd size=1813
+containersize 1459712
+containerchecksum 712c792321df356a5acb3397db0b6e5f833f41dbc9b5eb6a09c5dd32730d18292f449d21a01ac718cbba2dc62a5cd0937fc1e6e28cb2be2f7d275b99cc9f99bc
+binfiles arch=i386-netbsd size=1817
bin/i386-netbsd/dviluatex
bin/i386-netbsd/luatex
bin/i386-netbsd/texlua
@@ -204725,11 +205082,11 @@ binfiles arch=i386-netbsd size=1813
name luatex.i386-solaris
category TLCore
-revision 67024
+revision 70276
shortdesc i386-solaris files of luatex
-containersize 1619368
-containerchecksum a6048ae0491ed0918b8ca0a70770566922ea91cf0f80a344c38a67c0b6e6736b901f6e997c60b744e439b2dadd93f7a0b94ef246ab91efdb7bd616ca00818e55
-binfiles arch=i386-solaris size=1438
+containersize 1681692
+containerchecksum a262c9d20f7b91461b77b29c3008fe54ec9c489c5ddb21377c7ab5e30cc3992c3619ad4d31b6cc320eeeb718fdc0f761422665906f60964161fbda54b82babb1
+binfiles arch=i386-solaris size=1481
bin/i386-solaris/dviluatex
bin/i386-solaris/luatex
bin/i386-solaris/texlua
@@ -204737,11 +205094,11 @@ binfiles arch=i386-solaris size=1438
name luatex.universal-darwin
category TLCore
-revision 67006
+revision 70274
shortdesc universal-darwin files of luatex
-containersize 3035812
-containerchecksum 4052a74012e4aa7c9fd353d458ea5378021c558b432fd46cfc410f75263afed8f60532f409faeec10cf2bdbc9cdcad72fc6d558f8934bab7c624d2629445fb6f
-binfiles arch=universal-darwin size=3147
+containersize 3047772
+containerchecksum d15f5472b855615f76419c529017743a2b30741de05fde87e85f51b0294d459669be46280afa69ba954c64c283b607f2933460f4ff97a03cb6623ee34701b7e6
+binfiles arch=universal-darwin size=3159
bin/universal-darwin/dviluatex
bin/universal-darwin/luatex
bin/universal-darwin/texlua
@@ -204749,11 +205106,11 @@ binfiles arch=universal-darwin size=3147
name luatex.windows
category TLCore
-revision 70418
+revision 70586
shortdesc windows files of luatex
-containersize 2081984
-containerchecksum 95330244fe553ae1540a8d16267a276c5a25528ff6df18f2587ec5fdce23929ac7374a3f17e670a8209038d571a3e2dd7f961bf9fd70baa8ded9234dde87fd00
-binfiles arch=windows size=1912
+containersize 2106328
+containerchecksum 036c6236e44899ad78443f4a7084ce657b2aa479dbbf8b3bd2aa40ae5d23322827817f7c3461b0006ce9612a874491bf41fa0054185da426479b992ec4f65258
+binfiles arch=windows size=1931
bin/windows/api-ms-win-core-file-l1-2-0.dll
bin/windows/api-ms-win-core-file-l2-1-0.dll
bin/windows/api-ms-win-core-localization-l1-2-0.dll
@@ -204782,14 +205139,15 @@ binfiles arch=windows size=1912
bin/windows/texluac.exe
bin/windows/ucrtbase.dll
bin/windows/vcruntime140.dll
+ bin/windows/vcruntime140_1.dll
name luatex.x86_64-cygwin
category TLCore
-revision 66997
+revision 70560
shortdesc x86_64-cygwin files of luatex
-containersize 1746216
-containerchecksum a9145234ff00545043c23267b83d998590a1abd7158ffdbb12306d58d75765971aeb169725ccf3ecc5a05807dff0c330ceb397e0a00900dfc777e7f54daf5b47
-binfiles arch=x86_64-cygwin size=1603
+containersize 1750408
+containerchecksum 5f46b408fbbce6fdd24f4301e8e9869c04057b3b920a25731486a8b4fda0868adc180923b30c3b7204ba0a88aaf5570b3fd86e938ca51395e396ed2d415fd7e5
+binfiles arch=x86_64-cygwin size=1606
bin/x86_64-cygwin/cygtexlua53-5.dll
bin/x86_64-cygwin/dviluatex
bin/x86_64-cygwin/luatex.exe
@@ -204798,11 +205156,11 @@ binfiles arch=x86_64-cygwin size=1603
name luatex.x86_64-darwinlegacy
category TLCore
-revision 67024
+revision 70380
shortdesc x86_64-darwinlegacy files of luatex
-containersize 1600900
-containerchecksum 2015380ced5750ca32f42010416ee4008a1dc85264064d588fd844e727024b304885aa3b9f0c36daf95e28a00b6c761993998d78114df91a67112cd2cd672597
-binfiles arch=x86_64-darwinlegacy size=1472
+containersize 1621156
+containerchecksum 3228e4d40c7595b9fa6cb6b27111fff10065d28b8b1d7b9572f76b01fd41bdecbd7487f29d402e5479c300768939ef6a6ff7c1156ece719896b1f8bf2b4a6c82
+binfiles arch=x86_64-darwinlegacy size=1475
bin/x86_64-darwinlegacy/dviluatex
bin/x86_64-darwinlegacy/luatex
bin/x86_64-darwinlegacy/texlua
@@ -204810,11 +205168,11 @@ binfiles arch=x86_64-darwinlegacy size=1472
name luatex.x86_64-linux
category TLCore
-revision 68135
+revision 70276
shortdesc x86_64-linux files of luatex
-containersize 1813852
-containerchecksum dfb1f30677d8b35a8c1d1e56b66c57f334c845eaee259c53b490dcb42d1c7d48818d788f48e712d20ef0bfc3d2e3f0bf1e4e7b8916f74b61612f28f39ab16b56
-binfiles arch=x86_64-linux size=1615
+containersize 1837252
+containerchecksum 66d9168333f825c0279b660193821f21e8d8eb49a9cc2df8c64bb72c4cfa2e7a9eb10ecc1977b55be469b620aaa7afcf0c0a9b3a10c71f6f333c03b62d4c8a8c
+binfiles arch=x86_64-linux size=1619
bin/x86_64-linux/dviluatex
bin/x86_64-linux/luatex
bin/x86_64-linux/texlua
@@ -204822,11 +205180,11 @@ binfiles arch=x86_64-linux size=1615
name luatex.x86_64-linuxmusl
category TLCore
-revision 67047
+revision 70276
shortdesc x86_64-linuxmusl files of luatex
-containersize 1919548
-containerchecksum ebaa2c6079380570ae25d7459fe6fa4e14d5d7ee5362a3288c93158f9a869ee74b3e5289be2b7c5fa451aa7c734f815e5035a96c6be357d39b4bb8cd3ae7749f
-binfiles arch=x86_64-linuxmusl size=1762
+containersize 1912404
+containerchecksum 1e2350869fc71d6105540e55a8e07b292b148a6ef072c36955ed97d2d4334524038728758121d1be2af02273cf2cc9cada4b11e04b18beba85d159eea8200ce3
+binfiles arch=x86_64-linuxmusl size=1766
bin/x86_64-linuxmusl/dviluatex
bin/x86_64-linuxmusl/luatex
bin/x86_64-linuxmusl/texlua
@@ -204834,11 +205192,11 @@ binfiles arch=x86_64-linuxmusl size=1762
name luatex.x86_64-solaris
category TLCore
-revision 67024
+revision 70276
shortdesc x86_64-solaris files of luatex
-containersize 1781048
-containerchecksum 1d5415fc62f8ed354c9fb9ff67a72fbf5317350989b5fef186457678aa3d2629ae1845ecd9e8a069a62e414d9378018ea712cb1a68603eb91a5752303d9cb551
-binfiles arch=x86_64-solaris size=1615
+containersize 1860728
+containerchecksum ab1272c40743f3833757645e7621580f0155d8e09c8ecea48a0f959a4a7bacfae2936bdca108682bf0bb23e3969f1adbd1c88bc713787acee8e594a251a289c7
+binfiles arch=x86_64-solaris size=1667
bin/x86_64-solaris/dviluatex
bin/x86_64-solaris/luatex
bin/x86_64-solaris/texlua
@@ -204913,17 +205271,17 @@ catalogue-version 1.3
name luatexja
category Package
-revision 69988
+revision 69987
shortdesc Typeset Japanese with Lua(La)TeX
relocated 1
longdesc The package offers support for typesetting Japanese documents
longdesc with LuaTeX. Either of the Plain and LaTeX2e formats may be
longdesc used with the package.
depend luatexbase
-containersize 193268
-containerchecksum 07d0f7ff77fd6f59561c176e6fc25d4b1d4860696aa728c0f9586921f1f32c5a3e01a2f463d5ad3830648fb19ebf6899857259cfa042263f3f17a66b1ec6e0de
-doccontainersize 3242928
-doccontainerchecksum bf01874cca52c561a4ce76d7111596b5a0a20dc0c6f7c383f8bbc9149f4fbe31aaf652d4902ab0b8d10f4719811fd16b9e8d5cfc97740429dd67f3c6a8bdf312
+containersize 193296
+containerchecksum bc8388cb11f1ecc8b38755952900f4369222545916a23378abcdc61ecd562c4b3f026844ba4be957413b19cf1f62b0aa3d0c58feee1898c86b5758b61a908a0b
+doccontainersize 3242944
+doccontainerchecksum 59a1ac6b5c683a3725776f4609abb2e2bc226b12a0d2a4dbb1774052b4d21219af8443a307f2882da6ca12c3b3c32e6d9e26620430c9f0ee63493f52f7017c22
docfiles size=977
RELOC/doc/luatex/luatexja/COPYING
RELOC/doc/luatex/luatexja/README details="Readme"
@@ -204941,8 +205299,8 @@ docfiles size=977
RELOC/doc/luatex/luatexja/luatexja-ruby.tex
RELOC/doc/luatex/luatexja/luatexja.dtx
RELOC/doc/luatex/luatexja/luatexja.ins
-srccontainersize 83852
-srccontainerchecksum 5a92e1abd52c044957a160e41b74b15094b3a85bd8d29ac06ad35b8117ab9ece4d98b93e988994811846ba8bfa4d56f27b41708776489fd9957ecb0ae783ade8
+srccontainersize 83900
+srccontainerchecksum ce649fcf18f0845e4f1d70cb3db8a2c303239261a58f7783f857f28d19efe101e869b342202ef1395302d5fa58476a82ae6036dafc757490b5362b05b5a8495d
srcfiles size=119
RELOC/source/luatex/luatexja/ltjclasses.dtx
RELOC/source/luatex/luatexja/ltjclasses.ins
@@ -205248,17 +205606,17 @@ catalogue-version 0.1l
name luaxml
category Package
-revision 70117
+revision 70112
shortdesc Lua library for reading and serialising XML files
relocated 1
longdesc LuaXML is a pure Lua library for reading and serializing XML
longdesc files. The current release is aimed mainly at support for the
longdesc odsfile package. The documentation was created by automatic
longdesc conversion of original documentation in the source code.
-containersize 41424
-containerchecksum d337c443f09a8fed88a3530e94326660ebee59260e873e7581226aadc622fabfb37ace31ee105fc321b6633d4fd8c8117739ba6884b367cdaf708f81f686f3ce
+containersize 41468
+containerchecksum 8eda20c1812000fe1892fcb2b092321376567c1195e0f90199683df41fb1ef77304f58e3b588680918d287f40e0568bd2b809cb64f8c3d814d6297eca15fa602
doccontainersize 124480
-doccontainerchecksum ad30466499514af7dbb5425f560953c23e94f6af468b2e693a560de249eec4b5db913371884fdaa36c22693b5175d40da297fa98e22906fc4c501b9f3b7de2d4
+doccontainerchecksum 75b70643698ea33b175f1b260c3a5f9384526566e6b96b87b0d10b3069ecc410d981aab1cd6829cd73692a61b47cf93888770321b462ba2bf078889b17f19f29
docfiles size=39
RELOC/doc/luatex/luaxml/README details="Readme"
RELOC/doc/luatex/luaxml/luaxml.pdf details="Package documentation"
@@ -205309,7 +205667,7 @@ catalogue-topics luatex table
name lwarp
category Package
-revision 70072
+revision 70067
shortdesc Converts LaTeX to HTML
longdesc This package converts LaTeX to HTML by using LaTeX to process
longdesc the user's document and generate HTML tags. External utility
@@ -205329,16 +205687,16 @@ longdesc utilities, and Perl. Detailed installation instructions are
longdesc included for each of the major operating systems and TeX
longdesc distributions. A quick-start tutorial is provided.
depend lwarp.ARCH
-containersize 222432
-containerchecksum db403b10401780ea2e7db5d849627e3ce5ff4ddbf3fe9c4e0251c29da5e49f7cfda768c9ea8c397e7c8ccef2c25b3db88db0c406a4fff4ddef081a7bbd32b88a
-doccontainersize 3323860
-doccontainerchecksum 1f818d8419e2e7d986fb35ef662f95a3ec24c6a3f439c3ee08f9ca9d8917871d4d21a8ba8f960346479bccf8c926b32751604912fa0274786bfdca641f83b803
+containersize 222792
+containerchecksum 500ca024e4894b1e1806be4dbc18d7a244c0194ec7e358c2da075ddfd597c1dd7aa01690afd50e288092f776bae5fa0cc87c355d3597373172f17fd37c3f1ced
+doccontainersize 3324092
+doccontainerchecksum f52a445b50bfe27b9e2ea913b2f324272ddcb74c6da51fd762dc78098b69da86cbe9bed7e5b3e1fefdb52e53104ee348939bc23e93ef9005ed27dcceebb12d24
docfiles size=850
texmf-dist/doc/latex/lwarp/README.txt details="Readme"
texmf-dist/doc/latex/lwarp/lwarp.pdf details="Package documentation"
texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt details="Quick-start tutorial"
-srccontainersize 474932
-srccontainerchecksum 70fbe22a77b4494f2dff7e09448a1dbba42d115ef1a8739a305dabba55f8bcdf47cc3e632f09285c6de0442a5050551f7f13d15f573c88459ef8bec2f29a5f70
+srccontainersize 474808
+srccontainerchecksum 722ab7abe5522dcb6c2c32b8b400d4900b1e73a1ae893808b2bfb688ea4b942ef6181dc3028d09f25465c6eafbaa6875b34c49f5e40edea2414fe5d98d2eaa8b
srcfiles size=724
texmf-dist/source/latex/lwarp/lwarp.dtx
texmf-dist/source/latex/lwarp/lwarp.ins
@@ -206439,11 +206797,11 @@ binfiles arch=aarch64-linux size=33
name m-tx.amd64-freebsd
category Package
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of m-tx
-containersize 42800
-containerchecksum e06a011730e9cbb78e8cb7542c59edca33c2ef7df3197e46004455eb7e562793cbe2df75d7818b62b283eb20570fcc4e0a95d9db11651ecd578629dcc806fdda
-binfiles arch=amd64-freebsd size=32
+containersize 39748
+containerchecksum 226a8725363a1a50720924609e4ca051ae1c864533650014c2024acafb750012e092f5d09833f5aa4310c87a52d6c614e1b9b73ca8399d292832d477ea034bd9
+binfiles arch=amd64-freebsd size=37
bin/amd64-freebsd/m-tx
bin/amd64-freebsd/prepmx
@@ -206459,30 +206817,30 @@ binfiles arch=amd64-netbsd size=37
name m-tx.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of m-tx
-containersize 35440
-containerchecksum 3aae601feb44ff9a0e53c04d46d854750529125904386610e6caea29172934a3b76f5cc4f1385aaeee85652619e3e5deeeeb8cdd9ff956560f6db9b9c4aa1cb1
+containersize 35460
+containerchecksum d198129028a79a5e2d3ffb3507f11f7c43bd26f847e1339bf1c049576f0a11a503df56e846194a70bd46b555285edcb76e644b24e57774b9a0db6d4f19595940
binfiles arch=armhf-linux size=28
bin/armhf-linux/m-tx
bin/armhf-linux/prepmx
name m-tx.i386-freebsd
category Package
-revision 65877
+revision 69782
shortdesc i386-freebsd files of m-tx
-containersize 39816
-containerchecksum 4ae3f2acb86bca5e0cb21d46ac620358901b046fc8ddc80759181115f354938cf4191e2f44d615d98dd5811704fe2346447b41aec25187e654b770ad3e101ae0
-binfiles arch=i386-freebsd size=30
+containersize 39760
+containerchecksum 5b633cb7736c08f413801438394062bf8452507eaca5dc800bd73a3747751a7cd0558c770cace35f2ddc673c862a0ef020d92fa7cca4e0b691d4ff5c13e3b189
+binfiles arch=i386-freebsd size=37
bin/i386-freebsd/m-tx
bin/i386-freebsd/prepmx
name m-tx.i386-linux
category Package
-revision 65877
+revision 69782
shortdesc i386-linux files of m-tx
-containersize 48232
-containerchecksum 36a70c0663813e07e3a2f087efe88476eb8e86e0a767ee936d59dc63445c13deeefe7a0ee1ff9e60adaffbbc44b7ac36486f4d70b29f5ed3d9a8b18aa32b58d4
+containersize 48236
+containerchecksum 45328f8aa71d514862cbd1cfad6ccf498e00a058f17a5436f0f4c65aeffb7f66c62e06e3bcc9f8c7abb9dde8aa51064ff6abc6ef661a8211fe8be811bebed44d
binfiles arch=i386-linux size=36
bin/i386-linux/m-tx
bin/i386-linux/prepmx
@@ -206499,40 +206857,40 @@ binfiles arch=i386-netbsd size=35
name m-tx.i386-solaris
category Package
-revision 65877
+revision 69782
shortdesc i386-solaris files of m-tx
-containersize 43428
-containerchecksum a2434e0888ad96efd697ec8645df0268e63aedc86a057d31062a93e5010678b61a77c761514ce5ecfc285bec5f4f6573a274feef68dfc10dbd790743c3833ba3
-binfiles arch=i386-solaris size=31
+containersize 44204
+containerchecksum f779c027afcfea3e96bedbeefd4e615fbd50fd9ca05ecb4f58806a6e91454a492fe58482fd6774e831cf95cb0af34c54d6f56cdd3dcf02ba00cab21a01a728e7
+binfiles arch=i386-solaris size=32
bin/i386-solaris/m-tx
bin/i386-solaris/prepmx
name m-tx.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of m-tx
-containersize 86628
-containerchecksum 02a4480241cec2e24cbc088ca93864d97ee12ee00bafc0b7abcfb1cca6c145100fbc5e296b35e6cde6880e99eca0df23e65e485987af312603c424cd7f6ddf3a
+containersize 87224
+containerchecksum de50110560e4bfc30f0bdef3a2ec6077da08eda190563f5c87422a87d0a68f995896a4104fd6b9c2c49c581f870e41b0d860b5ac92f8ab5427b6b0799c741e47
binfiles arch=universal-darwin size=84
bin/universal-darwin/m-tx
bin/universal-darwin/prepmx
name m-tx.windows
category Package
-revision 65891
+revision 69788
shortdesc windows files of m-tx
-containersize 46548
-containerchecksum b996791a38ebfc9004c3ce2d25bc4c31496283056d69b7a7241a286c91e9fc9836a9451e2366412f1f3ce7f3c9f9224054e4cbb6f38fa16cd70cd1a179e84ed8
+containersize 46560
+containerchecksum aa713a049f65d4c3bf2e004c1066822b465ec2fa3919c42b3672eed6cb878fcde22aafc56a6ca81ce2419f6dec24f043d7f9f06641d8f99f0bfa1a50a72d696e
binfiles arch=windows size=34
bin/windows/m-tx.exe
bin/windows/prepmx.exe
name m-tx.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of m-tx
-containersize 44636
-containerchecksum 9e120b4c01e63556795b5757f1bd035b5ea28f4f0239a80b26a48965a3cac2737f685d0b6eb5da6d7203d0fce07613e39a92d4e07b6e7263c904c81500fb294f
+containersize 44572
+containerchecksum 42f5734ea2411a71411d9857e30b561da6f3f3a6b7189039499f556f29a139d4c434b1f5061a20d1be9aefc3c6f5204c425f9ea3b6d7c9864c4c492188086064
binfiles arch=x86_64-cygwin size=32
bin/x86_64-cygwin/m-tx
bin/x86_64-cygwin/prepmx.exe
@@ -206549,10 +206907,10 @@ binfiles arch=x86_64-darwinlegacy size=32
name m-tx.x86_64-linux
category Package
-revision 65877
+revision 69782
shortdesc x86_64-linux files of m-tx
-containersize 43816
-containerchecksum 5ad966dfd2519770017fb873cbba9618840f8436acea11781b6d24901320ee306632e97606e7903aeb0e7052affbbd0a65118feb8ed8b35524ce13b1a1aedbe8
+containersize 43824
+containerchecksum 4b87dbc5baec8284a4f71657ece44bcc5a0a014635bc1742e0dc68fbd4684fca3f3f3829f5124b540e2bd77e3a32d3f26c9de2ddfa41b4d698076213f746289d
binfiles arch=x86_64-linux size=32
bin/x86_64-linux/m-tx
bin/x86_64-linux/prepmx
@@ -206569,10 +206927,10 @@ binfiles arch=x86_64-linuxmusl size=33
name m-tx.x86_64-solaris
category Package
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of m-tx
-containersize 47656
-containerchecksum 46a823ca76468812894fafefe29fd1996d3a8af8ed05e9155af8eb1d53dd846e1c09975b5f837666e56d0ca15dcfe331b1b4630b392663a3bacfb4f3c8d576fb
+containersize 48792
+containerchecksum f7c78d68504a42fb37149c27be9f3a07d6094ea00e499f948dcc71f891fea162772db5ece63ebbbb59d8b5ce2f940b5417c5071ac919fbd6f104946516f3fc35
binfiles arch=x86_64-solaris size=36
bin/x86_64-solaris/m-tx
bin/x86_64-solaris/prepmx
@@ -206979,7 +207337,7 @@ catalogue-version 1.0
name make4ht
category Package
-revision 70117
+revision 70112
shortdesc A build system for tex4ht
longdesc make4ht is a simple build system for tex4ht, a TeX to XML
longdesc converter. It provides a command line tool that drives the
@@ -206987,10 +207345,10 @@ longdesc conversion process. It also provides a library which can be
longdesc used to create customized conversion tools.
depend make4ht.ARCH
depend tex4ht
-containersize 57564
-containerchecksum f16c8062b72932b24673df223850f58521ee5766536c9c210eed123b62c77efa3829f7cd38e2f9f7b62a516dd8fca860def52599be702f22e2d60a8683b52138
-doccontainersize 186184
-doccontainerchecksum f7f45fcbf92488c2c97fd2b8916b1715cbf76512f43f7e60d29293ae7553416f9a7969e1b5a9e29c88319a5d0ecf6b8fb8a2254b201cafba597122a6d594ff11
+containersize 57732
+containerchecksum 6c8a62a134c17879bbb6d4d1970a48a0f5cb3ee0bf9a61808bfecaf90a97268a527a4527f4e70cd5582ce6b427d3bde9cd3cf890a7f23325de4be61d9c9a8bf7
+doccontainersize 186176
+doccontainerchecksum 8d465fae374029e1785e913fc738299ac7bb442930be8d3e7759bee9b2a06b3600698e1c0d168ae663dc06242a7193f624bf07ad1d75f752dc074744b599fba2
docfiles size=77
texmf-dist/doc/support/make4ht/README details="Readme"
texmf-dist/doc/support/make4ht/changelog.tex
@@ -207663,150 +208021,150 @@ catalogue-topics index
name makeindex.aarch64-linux
category Package
-revision 65927
+revision 70276
shortdesc aarch64-linux files of makeindex
-containersize 47848
-containerchecksum 6eae8f15e7b4e42df33ca062b2a0cbc2d52d2b68dd7406ecae5b6326502e87f54a659c5c7d90607bf190b2c9d390c850778dd0947a012c1a395ac4d5fc5acafc
+containersize 48164
+containerchecksum 5aa339c25f533e3f93880663342a8bef375e9b6063c3e7788c36670969783c7a6ebd4ae89f711a9131ab7ba8b3a5f2d9997750328641e59a084d14eb40581cc7
binfiles arch=aarch64-linux size=39
bin/aarch64-linux/makeindex
bin/aarch64-linux/mkindex
name makeindex.amd64-freebsd
category Package
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of makeindex
-containersize 49180
-containerchecksum 78673146e5dab6c5a73265857f68b376e88422b7bb4784cdf8da406f7e4bf287b3e893cc617604ba338ca957a244e30641e969bf8a852e008979686178ab450e
-binfiles arch=amd64-freebsd size=38
+containersize 46136
+containerchecksum c3908d09172769eef867fd04cd7c57f795426b7a58a97c38fbef875313c3881b468030226f0b5e45b759793fbbf9977041d7d82fb2657c271c2afe77b8864311
+binfiles arch=amd64-freebsd size=45
bin/amd64-freebsd/makeindex
bin/amd64-freebsd/mkindex
name makeindex.amd64-netbsd
category Package
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of makeindex
-containersize 44576
-containerchecksum 68ec38df071aeb59de4354b961c33405855dbc1563da025af87112ae425f163fc61aac5e9214ef6b2f3932c5e5f39de12845eeaaa7eb3a79d45f1fc7938ed715
-binfiles arch=amd64-netbsd size=43
+containersize 45000
+containerchecksum 6b04c703d3ff12f7c2dbe9701b31c2f78bc20f0c78f435eb7cae6b06519a388e57b321374fabe4beaf46001396388476e3292dba5e029552553cab1845dc4dd9
+binfiles arch=amd64-netbsd size=44
bin/amd64-netbsd/makeindex
bin/amd64-netbsd/mkindex
name makeindex.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of makeindex
-containersize 40712
-containerchecksum c19b05ed04379c7f2c7099a5e2fed097a77e7dbc3490a8c16806e2d74f4d267d8f470b7c49adee9310981550809fa0ab211a013c2b99a19b85c850b870ee5363
-binfiles arch=armhf-linux size=33
+containersize 41036
+containerchecksum 131e37157ecf804ce426d0b2b34edd224064ce250758d48e3b0baab7587fe845e44f29ae6624d3b848ca91aea2cc16d239e863711ef42cf912c15e3f9cc0f54c
+binfiles arch=armhf-linux size=34
bin/armhf-linux/makeindex
bin/armhf-linux/mkindex
name makeindex.i386-freebsd
category Package
-revision 65877
+revision 70276
shortdesc i386-freebsd files of makeindex
-containersize 42864
-containerchecksum 309cd857adadebced05d6a3b1e6d414b245e4d5f872ebf299f60411fad122c19b8911c64f09ee863965556f088bb223aa791109adf65ec137591f16f66f89dd5
-binfiles arch=i386-freebsd size=34
+containersize 46152
+containerchecksum ff374c1d928c3c2b14ffb5508de0778b8e3c610f1e8ab71968e1a61ba46a01be05c142b203a09a8c93f60618720f63fa588686ea7c2312ee56457b09b89284c5
+binfiles arch=i386-freebsd size=45
bin/i386-freebsd/makeindex
bin/i386-freebsd/mkindex
name makeindex.i386-linux
category Package
-revision 65877
+revision 70276
shortdesc i386-linux files of makeindex
-containersize 51708
-containerchecksum 7fe43beb66ac83464162bda099735b8e8195c3fa128217a25f6f0952e0f24a43cdc7ea2c130bf2f4ff1d6bb1c23bdbfec68bebcfaa231ddd1468092fbfa9fd1c
+containersize 52152
+containerchecksum 9691bf3d2c3ec226ec89787bc1abcacfe7cd5cd83408c09c2974bd69f30fb60fa2e644fddc807ef2fad0460cc568b45961b541e43c887091ce24073368411b15
binfiles arch=i386-linux size=42
bin/i386-linux/makeindex
bin/i386-linux/mkindex
name makeindex.i386-netbsd
category Package
-revision 65923
+revision 70286
shortdesc i386-netbsd files of makeindex
-containersize 39276
-containerchecksum 1bd94c053789099e64e848f4edb4296c41ffafa2b21225384da8c1a8f5fc9b6981c1bd04a7637a4c2d3152bf322ea69b2dcd4c0f9525e5c880b9d061a05433a9
-binfiles arch=i386-netbsd size=41
+containersize 39676
+containerchecksum 6ea46cdf711430ac52ed267a8b835868d10d39a416efdeb509fb0727ed5650a3f2c08aa1ebc975cc5bcac5d1ecd9caad2da79fa4dcfac8d68d8fc52d6102c6a6
+binfiles arch=i386-netbsd size=42
bin/i386-netbsd/makeindex
bin/i386-netbsd/mkindex
name makeindex.i386-solaris
category Package
-revision 65877
+revision 70276
shortdesc i386-solaris files of makeindex
-containersize 46412
-containerchecksum 6caf76055326e86cd23fe869e54862dac626f98af8d70dfd2d3a4858be0521d305e451aa72ad0b062a7d19b880991dd67367c6ddd23458aa66e317344ce371d9
-binfiles arch=i386-solaris size=35
+containersize 47768
+containerchecksum bdc98892e8e773ddb09e3ec4f07aff7d40ee849c4762f9c3e7793e77c6717c667273296054b86a6176474e94672e6d1efe23bd05ba415dd0ac2526418d15271c
+binfiles arch=i386-solaris size=37
bin/i386-solaris/makeindex
bin/i386-solaris/mkindex
name makeindex.universal-darwin
category Package
-revision 65895
+revision 70274
shortdesc universal-darwin files of makeindex
-containersize 94216
-containerchecksum 344a009d9933ca858a98e95512297b8dff799d90fccb616ccba19be1f2c66e8f32e357a94828ac399a9f8e2006af2391ca8ed8c741091f46a0b81ff42dab285c
+containersize 94560
+containerchecksum a1489a57b59f2ba8f43bf239b6d38570f0a5287060e749c1af54acc1d68e079925456b45478a79726d3dd0bef171e80aeb0abdb28d154b0af2ecf03330e7680e
binfiles arch=universal-darwin size=88
bin/universal-darwin/makeindex
bin/universal-darwin/mkindex
name makeindex.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of makeindex
-containersize 20712
-containerchecksum c1c8095a54fdd8017043abff3db31f04a8ba22ec6594e4015e2324e901e546fd516f9d396599517c48d7fc9a0c2148507b638cb0650964cd7ecc3daf6253a538
+containersize 20740
+containerchecksum 6306d1eb452f223a61f7901eb2a3b30ddfe744112da50ef48cd089ef619183e46ecb16467ba27195bdff0a02e8c70b42e632557bef9e3aeb251e1bc9d2b11a28
binfiles arch=windows size=23
bin/windows/makeindex.exe
name makeindex.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of makeindex
containersize 22396
-containerchecksum e62f440bd6828b122e4200172547416c7ea3d8ed486e2c178401153fa495f93691a05ab083c30fe44c28fde003252d81c1d969335a3c57494c8901b85c0b7188
+containerchecksum c36a2b680ec1dbcd3210ba2a26db189807d9fd30c302e80868f7a2e6c720580062175f31250971e3f862392bca14395c5b4c3475049f74d5e190f8f516df6615
binfiles arch=x86_64-cygwin size=21
bin/x86_64-cygwin/makeindex.exe
bin/x86_64-cygwin/mkindex
name makeindex.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of makeindex
-containersize 46652
-containerchecksum 6dda40261b1e837bcbd6a12316f6a32f141e91a7f23ad742a9eabf43939742023a4cfc9412ca756cb574d30a0b352e637408f4b45cb449e7c82280dd0147384f
+containersize 47192
+containerchecksum 2fb57331db238f002a7369a35a734473559999dca4b7fbd8fb1c9476af92964b018ebec315a4519c604fa184b6dcc7d9a0614f9a483464d0216eadb9ee3e8437
binfiles arch=x86_64-darwinlegacy size=36
bin/x86_64-darwinlegacy/makeindex
bin/x86_64-darwinlegacy/mkindex
name makeindex.x86_64-linux
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linux files of makeindex
-containersize 50628
-containerchecksum 192b3336fb74285ff9fe2faaf5200a033fb509c27e58cfb78a54ec6be17b222c573b658aab5ed13e987b57ab18d32af8db468d9d14703286647965243a74053c
-binfiles arch=x86_64-linux size=38
+containersize 51112
+containerchecksum e9952041742f1321095c63dc3430b32a35c174863b556c1fe2f8df717ed90359fcf12710bb950a1682eca1990c0f3a177ffeb2f6d3bf77f3c230b509094c5e14
+binfiles arch=x86_64-linux size=39
bin/x86_64-linux/makeindex
bin/x86_64-linux/mkindex
name makeindex.x86_64-linuxmusl
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of makeindex
-containersize 51900
-containerchecksum de232dad92a800d34bafff68bf055adea1757ef23127f7ce3263f2a9c3984a4ea595ac5b6058df4ea9420532562a25834cb8fec8402564db9d9f2d93a309dbb9
-binfiles arch=x86_64-linuxmusl size=38
+containersize 52388
+containerchecksum 22d7dad16f7115ae951ab64e4409f59823d2fc935b71eb59511b311be66de7ff08f8047a6b78c1e57559addffdd31a7169a3a80a4d5481ab18f3d3997a59386c
+binfiles arch=x86_64-linuxmusl size=39
bin/x86_64-linuxmusl/makeindex
bin/x86_64-linuxmusl/mkindex
name makeindex.x86_64-solaris
category Package
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of makeindex
-containersize 51944
-containerchecksum f39318355ed9640daa5988b20fe7fe46b2243ea3a107069d941a7d570ffc8a594c993007e33ae7429ae72547203825da8b38fc6e95ec426baafe3d8f55806632
-binfiles arch=x86_64-solaris size=40
+containersize 53920
+containerchecksum 428e28560d20efd850e6971937e7533dbdaa2ca58eb800e3354d97ecaef4dae56b0003324f913e1d485fdeb54bbd853ae688f8f70e1abc07d231348b965dd157
+binfiles arch=x86_64-solaris size=41
bin/x86_64-solaris/makeindex
bin/x86_64-solaris/mkindex
@@ -207978,7 +208336,7 @@ catalogue-version 2.1
name mandi
category Package
-revision 70235
+revision 70231
shortdesc Macros for introductory physics and astronomy
relocated 1
longdesc The package contains commands for students and teachers of
@@ -207987,16 +208345,16 @@ longdesc intelligently handle SI units so the user need not do so. There
longdesc are other features that should make LaTeX easy for introductory
longdesc physics students. The name of the package can be pronounced as
longdesc "M&I" and refers to the physics textbook Matter & Interactions.
-containersize 11264
-containerchecksum e5c8cb0ca16c5b34097aef6e3bd00e452bf6382f6f9f5c3213a42463181a4b7f17df8025d479559b281dde7eb61ed2f79f4b9b6c3a37bed6cb3ea1bb9b428eed
-doccontainersize 500184
-doccontainerchecksum b1d5662645562102719eebb2d349f8a0a2a047ff3303abd076bff1b5888dc897e39034d027eadfd9ba03f1de26b0e0e6c8ccd226ee7f3a7b8545320023e47fbc
+containersize 11244
+containerchecksum 98e2db10d6085060781c713c9a69a272e5b9da920dc27a1b4f828385ad1a312f4bb33363b5492dd8f543874a6424c80080ff6ddf2403477d3914735e40aab6b5
+doccontainersize 500192
+doccontainerchecksum f31ce2066d06e3fdf16f73e8c43b0547624e1a649b06b5286d2fddb76d4b4c2cdf2b2dab4a6cd18b15b8d3cc0863549c48eb2f7d0de97d5d23e89ea0286d39e8
docfiles size=129
RELOC/doc/latex/mandi/README.md details="Readme"
RELOC/doc/latex/mandi/mandi.pdf details="Package documentation"
RELOC/doc/latex/mandi/vdemo.py
-srccontainersize 31188
-srccontainerchecksum e1bffb5b494059bb194496a17957b8adde0247178ee32baa9771ad47616f4dc101c7ad4423c62c50c94f7e62ac59d4ba7b7fa3983dd5503b441b882565db808e
+srccontainersize 31164
+srccontainerchecksum 4b7f366674dacfe36aaef07170d76bca92e5d81e1fe24b18b22d82cb4580f122b688b67e1f8afcca5994ce4573b28f6d10a326213ba088ad6c610982a743bb5a
srcfiles size=50
RELOC/source/latex/mandi/mandi.dtx
RELOC/source/latex/mandi/mandi.ins
@@ -208361,7 +208719,7 @@ catalogue-topics notes
name markdown
category Package
-revision 70583
+revision 70529
shortdesc Converting and rendering markdown documents inside TeX
relocated 1
longdesc The package provides facilities for the conversion of markdown
@@ -208369,11 +208727,11 @@ longdesc markup to plain TeX. These are provided both in form of a Lua
longdesc module and in form of plain TeX, LaTeX, and ConTeXt macro
longdesc packages that enable the direct inclusion of markdown documents
longdesc inside TeX documents.
-containersize 53536
-containerchecksum 0b133a8f7a4d9315365569698cf2f6897b46ac0c49eb6f6a7697735e209e6a45354101cbeafe7504aa18a39cd514332db204b4b53051a4a9e7380ec581be6d23
-doccontainersize 1179280
-doccontainerchecksum ca199c02ee60ebe597bc0c7324b910d78c58457e614bc23be98720e301bd501540b52325fda4a0b6eaed15859820f5eba4e4749dd4163057c6731c1d1643f27c
-docfiles size=540
+containersize 63992
+containerchecksum 59ce3cf27966ca295aa3ce335e4e09a7d826090adafb4f007f4974c08b71c0d3971031f580b017bd637b2317a6e816ad14a28ba68aecb6ca0764be81e5ca0a01
+doccontainersize 1261800
+doccontainerchecksum 6a3462c21b690da5c29e91b52d8a99c710980cdc44fc74185e8860451956dcec784b9a6d3698a619782e96ea9f8917a88d4dd8e72445bb680fa03d768eb1f5e8
+docfiles size=589
RELOC/doc/context/third/markdown/examples/context-mkiv.tex
RELOC/doc/context/third/markdown/examples/example.md
RELOC/doc/context/third/markdown/examples/scientists.csv
@@ -208390,20 +208748,26 @@ docfiles size=540
RELOC/doc/latex/markdown/examples/latex-tex4ht.tex
RELOC/doc/latex/markdown/examples/latex-xetex.tex
RELOC/doc/latex/markdown/examples/scientists.csv
-srccontainersize 112904
-srccontainerchecksum b33cf8d6604aa6acd27a67ee5ec5ec1a84fb91c77a0d5f830f6dcbc78343420036175bfcc1cf1665f23804ee9d06e58029fbf4e533a75dae29e8d7b1ee6297cf
-srcfiles size=204
+ RELOC/doc/optex/markdown/examples/example.md
+ RELOC/doc/optex/markdown/examples/optex.tex
+ RELOC/doc/optex/markdown/examples/scientists.csv
+srccontainersize 127640
+srccontainerchecksum 87d36175f86ba977e714242d5f1be5cbd4b3fb38b92ea3ddfa608970e0186f8cee90c08ee39574cb6a024ac3829b5a6c86bf1ee218caead550e16993d70c7820
+srcfiles size=236
RELOC/source/generic/markdown/docstrip.cfg
RELOC/source/generic/markdown/markdown.dtx
RELOC/source/generic/markdown/markdown.ins
-runfiles size=92
+runfiles size=116
RELOC/scripts/markdown/markdown-cli.lua
RELOC/tex/context/third/markdown/t-markdown.tex
+ RELOC/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex
RELOC/tex/generic/markdown/markdown.tex
+ RELOC/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex
+ RELOC/tex/generic/markdown/markdownthemewitiko_tilde.tex
RELOC/tex/latex/markdown/markdown.sty
RELOC/tex/latex/markdown/markdownthemewitiko_dot.sty
RELOC/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty
- RELOC/tex/latex/markdown/markdownthemewitiko_tilde.sty
+ RELOC/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty
RELOC/tex/luatex/markdown/markdown-tinyyaml.lua
RELOC/tex/luatex/markdown/markdown.lua
catalogue-contact-announce https://github.com/Witiko/markdown/releases
@@ -211046,7 +211410,7 @@ binfiles arch=x86_64-solaris size=1
name mathtools
category Package
-revision 70607
+revision 70596
shortdesc Mathematical tools to use with amsmath
relocated 1
longdesc Mathtools provides a series of packages designed to enhance the
@@ -211065,17 +211429,17 @@ longdesc for specifying the column alignment; More building blocks:
longdesc multlined, cases-like environments, new gathered environments;
longdesc Maths versions of \makebox, \llap, \rlap etc.; Cramped math
longdesc styles; and more... Mathtools requires mhsetup.
-containersize 20520
-containerchecksum 68ed026c12d7fc07b1d7881654a197e1fabd7bfeae278c3243bbde9449aeef3ecb4e7606e24e964f2cd488e475f39cbb9a632ba077c1229067df883e853186cd
-doccontainersize 1044784
-doccontainerchecksum fa3bbad3d9fa4bf678cbb2254cd2329c515cac6387d17953e66f273a48500f1a04b25b4de4c8a8a94cf79d86572be56bd2ceba01de8c9a72a92844a127b3c8ad
+containersize 20532
+containerchecksum 7715d1ae985a85d65e2ab5877e262c7ce80e476c5acde56bbed802138e31ec7f873386b1886fd95bba8acdd1151644d2f02dd1a019b2f856794678a128202fdb
+doccontainersize 1044788
+doccontainerchecksum 5afcddb4b610ccd062672c20dfd1ecf798bce30b990baef024f81da2939a0027ca6c04395c01ecbbf40a3571424b209cc033329b5d9cd3761d17dbe0c1745657
docfiles size=269
RELOC/doc/latex/mathtools/README.md details="Package README"
RELOC/doc/latex/mathtools/empheq.pdf
RELOC/doc/latex/mathtools/mathtools.pdf details="Package documentation"
RELOC/doc/latex/mathtools/mhsetup.pdf
-srccontainersize 91160
-srccontainerchecksum edcb96fc22f68a3cc78b13fbac2f73fa54aea36b6e57b0af12eb7b21a449044eeaca9157caaf9770b0d93f9c2511926452919fda5d03903f36fb5b4e3540b2af
+srccontainersize 91180
+srccontainerchecksum 5cb4192dcbc1ff860ff9f1a5907cd170a6f0179ca1b60bbe7ea8eb712d70b7a6d87d1b61c02410aa573d08a27749c5a665faf6b36fa215aa54424d44f41ea8e4
srcfiles size=110
RELOC/source/latex/mathtools/empheq.dtx
RELOC/source/latex/mathtools/mathtools.dtx
@@ -211329,16 +211693,16 @@ catalogue-version 0.5
name mcf2graph
category Package
-revision 70167
+revision 70154
shortdesc Draw chemical structure diagrams with MetaPost
relocated 1
longdesc The Molecular Coding Format (MCF) is a linear notation for
longdesc describing chemical structure diagrams. This package converts
longdesc MCF to graphic files using MetaPost.
containersize 448
-containerchecksum 4e243f8410b3ff8688365ff1fc90da5c81adc1a3ea426d2ba92c18a1378f76e5f00bf2f7aa97c39387caec9b1803fe0603632d1197f31fcad4a860dc3b93b579
-doccontainersize 1062288
-doccontainerchecksum ddc7500877bf459121a7ffe242618efdabe2e201da58f9038fe863451456a013816d66b807df74735a6bd1701cb72341bce771489e186b21c404d623d58b8205
+containerchecksum 874f8ce694389ee39142c58af623ffb5156f2ff469b21f6b38f34b48dd40d689f054636bfcc86e2375e2d7c26e10728b7532d46e879f28c1ac04c8c384245ff4
+doccontainersize 1062240
+doccontainerchecksum 9fc974b475090a83d9999f8832d19ef553873c73f257d7e9cf327e24483dec8ca68a56af4b840071edaeb6615a41c01128c917a6d95b5ce0a2618d967f86d012
docfiles size=342
RELOC/doc/metapost/mcf2graph/CHANGELOG
RELOC/doc/metapost/mcf2graph/README details="Readme"
@@ -212122,7 +212486,7 @@ catalogue-version 1.7e
name memoize
category Package
-revision 69522
+revision 70015
shortdesc Externalization of graphics and memoization of compilation results in general
longdesc Memoize is a package for externalization of graphics and
longdesc memoization of compilation results in general, allowing the
@@ -212138,10 +212502,10 @@ longdesc major engines and formats, and (vi) is adaptable to any
longdesc workflow.
depend memoize.ARCH
containersize 27708
-containerchecksum ebe8082704f8276468b392fb0efa92ccd65616fe48296160669ce10b99b31a6d73ccbd9078ecc9c8fa520c31130bc57f3dc8561267ed64d9d6ea14b28a32f909
-doccontainersize 2501620
-doccontainerchecksum 635e985c02d8867acebf493cead0e80ea7b481c98c5615cfde781ad850bfbfbf606d2dad5579dfe22085f7947b2976d9e26b397b8509e31fc5018e074f852848
-docfiles size=869
+containerchecksum 997cb8ffd854370badffe653a9e169452e8b5326d7f5813e08fe188001a1f6f597a6fc4c139afd22f58d9d4a440f3346508eea90abf99ddff63f50f1e884db4a
+doccontainersize 2501456
+doccontainerchecksum 97e3f9b8c1e9cda40e74627d50364bb5294032fdfb58bf61465d3c4b3d5ddcb07366c51ff3e3062ba2d6199bb2b1d87da6f1f0e0c61ce1b5d1f45c193a0b2b28
+docfiles size=889
texmf-dist/doc/generic/memoize/CHANGELOG.md
texmf-dist/doc/generic/memoize/FILES
texmf-dist/doc/generic/memoize/INSTALL.md
@@ -212172,8 +212536,8 @@ docfiles size=869
texmf-dist/doc/man/man1/memoize-extract.pl.man1.pdf
texmf-dist/doc/man/man1/memoize-extract.py.1
texmf-dist/doc/man/man1/memoize-extract.py.man1.pdf
-srccontainersize 38896
-srccontainerchecksum 06f1c38900d1daf52ceef138a658937dd85e1cae8280afdaa44e32eb9049ce444970becd3e0936a9f8f732ec8b32120cb55a343f5c8c523e217d8b7172de763d
+srccontainersize 38892
+srccontainerchecksum 856b99dfde2a10c5b09c3faaff494d18b988dd2f23a9ee5ec5ac83415953aae0978f6e8f20490b889b5bd4e8c60ac75b3680c7fb61a735f7d43364b5acc7c4d6
srcfiles size=39
texmf-dist/source/generic/memoize/Makefile
texmf-dist/source/generic/memoize/memoize.edtx
@@ -214031,7 +214395,7 @@ catalogue-version 1.2
name metafont
category Package
-revision 66186
+revision 70015
shortdesc A system for specifying fonts
longdesc The program takes a programmatic specification of a font, and
longdesc produces a bitmap font (whose properties are defined by a set
@@ -214051,9 +214415,9 @@ depend metafont.ARCH
depend modes
execute AddFormat name=mf engine=mf-nowin options="-translate-file=cp227.tcx mf.ini" fmttriggers=modes
containersize 8824
-containerchecksum 2ba715c32631b3ce24aba65e7e1df90a7beabc52b855f5e81cd383f94399e439a344f8a8a21f38648d34d546ca8f1890a74922836557cae5cd05ac945013d71e
-doccontainersize 53096
-doccontainerchecksum 48b1def32bfba5ab1123712fe41d69f979e33a77456801c21f030de8a39b37fcae179db44a517d7b194d7e6e6eb93d770e179ca49db9014cd433c86ef91b07d0
+containerchecksum e5a520963ba61bd96d4cf1c8713c37584f96ac4003c0b0943b9540781da2fb397077c1f6266d8b2f417a3dc71ca23300e3eae2081e5a7f7819d3d85281cb6cd5
+doccontainersize 53000
+doccontainerchecksum cbd85c718df58c2807d0911064c49ba799a0ebcec800766ae98ac20935eeb79cb624559650ab6f2f241b36c148c3c1b73fe555228ad293144d1f4dfc92805269
docfiles size=36
texmf-dist/doc/man/man1/inimf.1
texmf-dist/doc/man/man1/inimf.man1.pdf
@@ -214102,32 +214466,32 @@ catalogue-topics mf-doc
name metafont.aarch64-linux
category Package
-revision 65927
+revision 70276
shortdesc aarch64-linux files of metafont
-containersize 187392
-containerchecksum 67a5bf727f3291c6e7fdbf212220479a2eb6f6281a9f2af16ea3b487957736347530631a295c6f52b6e3de33cbfe53d0c22ccf79c0787b76f3785533692a3d57
-binfiles arch=aarch64-linux size=206
+containersize 188764
+containerchecksum cba40257cc811e8fb789520b6aa418edda82be9229f420abb723675d599c49e1be362ea09a63a374dd2b3d232f42321794831c573aa35a38583a93e43be56fbb
+binfiles arch=aarch64-linux size=207
bin/aarch64-linux/inimf
bin/aarch64-linux/mf
bin/aarch64-linux/mf-nowin
name metafont.amd64-freebsd
category Package
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of metafont
-containersize 262084
-containerchecksum eeb1fd438e18541c190c331d206f3488e8f65a30b517381127a6f55d4a1b2f97cb247d6726001c3226322a91672d80917ec02508762cfe69ca8b7c5738e81470
-binfiles arch=amd64-freebsd size=259
+containersize 196996
+containerchecksum 819e0c811d78bad483d877bbf688d00c26b847bc2cf5cee37f557781e22d334b01361cd673c0da7927de2688a2d8d259cb6ea5f81b064acbf8e4be4231b308d4
+binfiles arch=amd64-freebsd size=229
bin/amd64-freebsd/inimf
bin/amd64-freebsd/mf
bin/amd64-freebsd/mf-nowin
name metafont.amd64-netbsd
category Package
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of metafont
-containersize 196168
-containerchecksum 29225bdf511f129f4f066e68315101403833f88d85a3e3f3ab8fbb7fa47b5e8faaca4556904868422aad5879ee650f9fd340f0b184ac05727c8a8646a85548dd
+containersize 196552
+containerchecksum 6f304ca783df765af0012d42d79ee7f13e03686abe6691ecb8fd4422a56ed4a291ebaae4fc52f27ed15652df1b36c9b7e251ecf8ac2c2cef179dd05d90cca5e3
binfiles arch=amd64-netbsd size=226
bin/amd64-netbsd/inimf
bin/amd64-netbsd/mf
@@ -214135,65 +214499,65 @@ binfiles arch=amd64-netbsd size=226
name metafont.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of metafont
-containersize 146900
-containerchecksum 550d803749ea3966bc03fd2fc8bf3612f53124d3f1c596cd9af401086082839b14258f8e7638d710b7596ecdfc6f066b2cbb8005b0541803db8db7e1ef118e62
-binfiles arch=armhf-linux size=154
+containersize 147208
+containerchecksum d1a6aa7648e6abe89646d6b4ff9e9336a82ad6caac45b988dd9f0db1fab8afe0c848286aaf215b7204348ad9ceb853b7bfe29bea83b9d9182950b6e4d0d322dc
+binfiles arch=armhf-linux size=155
bin/armhf-linux/inimf
bin/armhf-linux/mf
bin/armhf-linux/mf-nowin
name metafont.i386-freebsd
category Package
-revision 65877
+revision 70276
shortdesc i386-freebsd files of metafont
-containersize 197636
-containerchecksum 9b760e812a4923ca019b3b91eeaad3bfd01303728d5ffa58f286e6d464c7935be026231268c9c7c1d0e8264322ea498f0d2f6c92196022b422952336c1e3a516
-binfiles arch=i386-freebsd size=230
+containersize 197380
+containerchecksum 48ab8b39fc262ad3d07f88c3dd6e35d3676260fd118657118503b457f6223b1ccb53fbe52baf578c5a89276c91f0cc8ae0cc84dd51ad48b203466029a0b9b765
+binfiles arch=i386-freebsd size=229
bin/i386-freebsd/inimf
bin/i386-freebsd/mf
bin/i386-freebsd/mf-nowin
name metafont.i386-linux
category Package
-revision 65877
+revision 70276
shortdesc i386-linux files of metafont
-containersize 185356
-containerchecksum 305a1eab23f02aafc17ae07b7438e37f60dc9935f5015c726882c6498c2f0fc1d174ceae982068f85bfcd0a553d0b0050a7f122af25fddb6711fd620ea42e08b
-binfiles arch=i386-linux size=191
+containersize 186920
+containerchecksum cb0eba92e8cea575fc1e802ba9ab6c972d7fa48cfc7a19da64ab052e589c9159d0c426eb43c20b8ac692754eed642dad42430e51390852e95e2592120f498261
+binfiles arch=i386-linux size=192
bin/i386-linux/inimf
bin/i386-linux/mf
bin/i386-linux/mf-nowin
name metafont.i386-netbsd
category Package
-revision 65923
+revision 70286
shortdesc i386-netbsd files of metafont
-containersize 150932
-containerchecksum 741108f9523ab638fb29b50d3c43a7f79c28becb29a036dc944319b918a7c9f47687ae4c448f875a95e746ab2b989a022d3910a36b922cee62cee1dc63248142
-binfiles arch=i386-netbsd size=203
+containersize 151196
+containerchecksum c728e20b6c6bc0c36f3963c471c60882980341ff1cf3b0b49b10ed13dace875b66ad350bf3af57dcf8d0cbf36f35892b65d562581b347f511a7d95547103dbe1
+binfiles arch=i386-netbsd size=204
bin/i386-netbsd/inimf
bin/i386-netbsd/mf
bin/i386-netbsd/mf-nowin
name metafont.i386-solaris
category Package
-revision 65877
+revision 70276
shortdesc i386-solaris files of metafont
-containersize 185112
-containerchecksum b1cc461b256b19b913a9399984a5f0414202671f7175996c974a59485a04c9dc7078301963eebf949a0cbff51d1fe118aa0b98b869079aa74c446e19b032a1da
-binfiles arch=i386-solaris size=170
+containersize 188880
+containerchecksum a9aef2bb291ec726d910530628925437dfd50cc21333ce6f5aa15a81267ef0ec99640679fef2fa785f46f9a9d8ebff33ee4bb0e30199fcb37455a104a97e30e2
+binfiles arch=i386-solaris size=174
bin/i386-solaris/inimf
bin/i386-solaris/mf
bin/i386-solaris/mf-nowin
name metafont.universal-darwin
category Package
-revision 65895
+revision 70274
shortdesc universal-darwin files of metafont
-containersize 472616
-containerchecksum 3843e03c8bd877847c26916f3f16b942c0776a551405c1c4533a025111e5f9f0515a9e043292ac91486c5ae293fae06870fb02b2edefb66421347ce7f6e51aa7
+containersize 478496
+containerchecksum cd773aab51dffe48bec7ace0f6f416dfad2f614f6353f12569ab5c1f5dbbdd27884e7623f33b3e5b3c55a63de3f2747fe55464b6c623bf7e2f1a13d249571b69
binfiles arch=universal-darwin size=567
bin/universal-darwin/inimf
bin/universal-darwin/mf
@@ -214201,10 +214565,10 @@ binfiles arch=universal-darwin size=567
name metafont.windows
category Package
-revision 65891
+revision 70576
shortdesc windows files of metafont
-containersize 187208
-containerchecksum ecdd03ca2bb4347526b7675d75ac931fd0e3bca5d415d8df0909ece8ee56b4cf2bd84ae7d6ae103449581959f7b57614b63adcf9c2fcc4beeca4c1e37c7c785c
+containersize 187416
+containerchecksum 956e26bd617290160ed311253b274c1311164214e80e1981cf01af4aeef07e9308b2cc0792c0f6b145af17c3c52ca528b4a08610ec2ecf6b90347ae1cecdbd8f
binfiles arch=windows size=161
bin/windows/inimf.exe
bin/windows/mf-nowin.exe
@@ -214212,21 +214576,21 @@ binfiles arch=windows size=161
name metafont.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of metafont
-containersize 187276
-containerchecksum dbb208e483a69797b67351521ce66ada85eefabcb9dd0d0d28a0d357e3d2d423b8870625d97bb9ab38e2158611218cf77c6e2a8ca23c56073c18d2f53b1a6e0a
-binfiles arch=x86_64-cygwin size=187
+containersize 187372
+containerchecksum 94ab83f364ac98f884fce47b66a211cf6a011e9abed32071f93d542c4d1fd49204f36e265b1952b3657ada44c0482f837d5486c48047411c9aef7ec0b313e547
+binfiles arch=x86_64-cygwin size=186
bin/x86_64-cygwin/inimf
bin/x86_64-cygwin/mf-nowin.exe
bin/x86_64-cygwin/mf.exe
name metafont.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of metafont
-containersize 154700
-containerchecksum b72e72d267d4c03540496a3d6e15e856fc767570920463df8d6e1ad2247ccf49a8a20a1d4634f9ae5127e615cc97a590bb9b388c03362169c26c6c491c4409dc
+containersize 155404
+containerchecksum d53dfaf1715a4c59ecb0e0b2a0c6c6399c8ef611b4931841915e9f346dfa8dd444b0f242572a3c775845ce5b9e5b9db6cb0dda17f1efeee881ae2c7d3d0488f1
binfiles arch=x86_64-darwinlegacy size=167
bin/x86_64-darwinlegacy/inimf
bin/x86_64-darwinlegacy/mf
@@ -214234,10 +214598,10 @@ binfiles arch=x86_64-darwinlegacy size=167
name metafont.x86_64-linux
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linux files of metafont
-containersize 188152
-containerchecksum b7d91612ecf567f38ea2fc265b8e3c965a04c61a215e74dddc89631b01d49e514365c1671e844abc238d9fcf2882164092bdcde2a37195ade7283a8b5b6e6823
+containersize 188712
+containerchecksum b1e1cba7473201964b95d1dcdcb17d6c1a9ba19bc3e5c84c3988120b2f856d6698440a82c133ab96b8afee251007883f398579e068634678e23e37d62c80f9aa
binfiles arch=x86_64-linux size=176
bin/x86_64-linux/inimf
bin/x86_64-linux/mf
@@ -214245,10 +214609,10 @@ binfiles arch=x86_64-linux size=176
name metafont.x86_64-linuxmusl
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of metafont
-containersize 212324
-containerchecksum 52d0dc5ce2d256fedcf183837dcdc233f35680a84c19f4298d105c30c39ede0fb2aecf9d3ad7734df569da89d0ce564d47202e6169fd430217707e0d2df0c114
+containersize 213108
+containerchecksum 67ae6b0559d2bc032dd924c79ddaa1d3346f4c1e05b9653eae261cb43255d2f819863cad18625e92816c9bf730e7203b72587900058a7fa6fe1b35f4aa28e0cb
binfiles arch=x86_64-linuxmusl size=188
bin/x86_64-linuxmusl/inimf
bin/x86_64-linuxmusl/mf
@@ -214256,11 +214620,11 @@ binfiles arch=x86_64-linuxmusl size=188
name metafont.x86_64-solaris
category Package
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of metafont
-containersize 218740
-containerchecksum 09bfb34569e9d69a02667c7a3bdd8344d1806b659a8d93a130a3cacbc05bfffadad73ff6bf0dc4a78c31304266cfa32350a7de9d3383f39b23be4659887ae56e
-binfiles arch=x86_64-solaris size=194
+containersize 224660
+containerchecksum a6ab11fab8e0409b491087e6cc6590e9c5f145f83538afb3ccce4ef3ac9c34d9a2cb08792a97e74aab7fb79c0a0c0d614705f6ad72249444a82ae79c7a3dcb5e
+binfiles arch=x86_64-solaris size=198
bin/x86_64-solaris/inimf
bin/x86_64-solaris/mf
bin/x86_64-solaris/mf-nowin
@@ -214332,7 +214696,7 @@ catalogue-version 0.12
name metalogox
category Package
-revision 70496
+revision 70491
shortdesc Adjust TeX logos, with font detection
relocated 1
longdesc This package extends the metalogo package to automatically
@@ -214342,14 +214706,14 @@ longdesc option given to metalogox. Most of the serif and sans fonts
longdesc listed at The LaTeX Font Catalogue are supported. The package
longdesc also supports the hologo and hvlogos packages.
containersize 5028
-containerchecksum b78976ad7e84e59ecca68c0e7ecb496f99f4e50ed5e1636b5675bb0c290f3f4d4d00b02dfe55c78ff4c5ae936e19c8110cdbc1fa76fefc1ee8b31a2c481625bb
+containerchecksum cda2155a27f6edc225d749c5f92fd37a662ff1ad60eef3cf26528b8eb1eb609bc4241438fd77f2586cc2872d9b89beb15ae92a406b8b6b4ecbdd4c552543a7b9
doccontainersize 586008
-doccontainerchecksum 64211eefedc7175e4859deefaaf89d021763b76cfa3509c8f6da27017993012471b3b894949d3c70eb1f5286bbbc545c712b041440e05df46bbe0ea82eb090fe
+doccontainerchecksum f473c412ba92d4bcf8290680e310dad580f9dd5a57340bbe4ff1d92f7141b1b1eef98b235f5eff9fd9c0d1ec6ba4b850714efc923c55cb10bfb12be463f1fe4a
docfiles size=147
RELOC/doc/latex/metalogox/README.txt details="Readme"
RELOC/doc/latex/metalogox/metalogox.pdf details="Package documentation"
-srccontainersize 9868
-srccontainerchecksum 89d9eb81eb883c8aec531117b0a62b838e8a1b0b9396eff4ad690aff37363aad31d6ef045621736e2961977c40e96fc54b4a72aa291863465318fc89b9c5006b
+srccontainersize 9872
+srccontainerchecksum 7e9db056ba2468041cf71e1540f6bb5d330a85e70da25f1d0e695004311b00f537bfa3a3258191ee78fb57e8c8089da5ca9ba6ac6047e89f2dc4c4d902021c14
srcfiles size=13
RELOC/source/latex/metalogox/metalogox.dtx
RELOC/source/latex/metalogox/metalogox.ins
@@ -214476,7 +214840,7 @@ catalogue-version 0.91
name metapost
category Package
-revision 66815
+revision 70041
shortdesc A development of Metafont for creating graphics
longdesc MetaPost uses a language based on that of Metafont to produce
longdesc precise technical illustrations. Its output is scalable
@@ -214484,16 +214848,16 @@ longdesc PostScript or SVG, rather than the bitmaps Metafont creates.
depend kpathsea
depend metapost.ARCH
execute addMap troff-updmap.map
-containersize 73764
-containerchecksum fb50b9d45a36cbe11d07fe2d0a1307bf257132e195825a2007894d5accb33ae1d10e0ca6d6a27405e79d3c439fca4dc1df00f21814eb530ac3707ca516bb9a0a
-doccontainersize 2447124
-doccontainerchecksum 6b10e2a6183e6c7b9515ebfa0186b13d48bd87fb25cb69b010ac82b885fbb1f88f31340f7161e34f61cfa7478d50ebad6e82eddb14d8c746ef1bd4c480fe4b58
-docfiles size=839
+containersize 73768
+containerchecksum 2ff01990d1c2fc6a0d4fbcf4e03c77bdb6e5526c0dc1c54bf1a17e133be08ca5dfcf870358a43c76871c6385027962f6e8f0b5fd1b6429c61cf5716734073d3e
+doccontainersize 2452552
+doccontainerchecksum 2005f173a43cbe365b28c15af1d62bb7d72bd64e8ffcc6ce9e4905609a8de0dc28dbd0c9be819deb6e10323274d2b837a3eb87a6981813e8814a5f106f6b5023
+docfiles size=841
texmf-dist/doc/man/man1/dvitomp.1
texmf-dist/doc/man/man1/dvitomp.man1.pdf
texmf-dist/doc/man/man1/mpost.1
texmf-dist/doc/man/man1/mpost.man1.pdf
- texmf-dist/doc/metapost/base/CHANGES
+ texmf-dist/doc/metapost/base/NEWS
texmf-dist/doc/metapost/base/grdemo-doc.pdf
texmf-dist/doc/metapost/base/grdemo.pdf
texmf-dist/doc/metapost/base/mpboxes.pdf
@@ -214717,11 +215081,11 @@ catalogue-topics demo-code
name metapost.aarch64-linux
category Package
-revision 65927
+revision 70276
shortdesc aarch64-linux files of metapost
-containersize 834836
-containerchecksum 08ad5e4eb3e23c34563df5879c4a9fb2dd66d72d440219d0d7518cc14fced677a17098aba7dd3a29c9d0b5f1e89d5d50a9829962ca9bb32c680154694e0ce6a3
-binfiles arch=aarch64-linux size=550
+containersize 852452
+containerchecksum 12f26bae7c304ececaf84ef7e09296103f8c7c7797f357fc529d65bc9a75da48c4b5dd1d1ac7dc3d697e5fbb2a7102d34ec410c76bf15053adaacf553fea2cd1
+binfiles arch=aarch64-linux size=564
bin/aarch64-linux/dvitomp
bin/aarch64-linux/mfplain
bin/aarch64-linux/mpost
@@ -214729,11 +215093,11 @@ binfiles arch=aarch64-linux size=550
name metapost.amd64-freebsd
category Package
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of metapost
-containersize 993780
-containerchecksum 2dca3886112e96c9f092cfb579a6699016500156a8c06e83bd1e1db8b4eda7576d42663a267ff752ac756aa74e0528e2fae8fbe6d82c3ebaca87651fff82b0b6
-binfiles arch=amd64-freebsd size=679
+containersize 811196
+containerchecksum c2cd71fb2846d3cca8122cf00c67707b1db0c6301e5de12163994f9449899c61c96d0c501ed01da93b1386a1425e3ab62431efb9dbc3508ef22d6f368bc72fb1
+binfiles arch=amd64-freebsd size=1318
bin/amd64-freebsd/dvitomp
bin/amd64-freebsd/mfplain
bin/amd64-freebsd/mpost
@@ -214741,11 +215105,11 @@ binfiles arch=amd64-freebsd size=679
name metapost.amd64-netbsd
category Package
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of metapost
-containersize 792088
-containerchecksum 9eb00435ec60e16f74a80308aa5adf9afb07ed3aeca2dd519891ccb58b2c82c22231502d4b86adc9f229b22f2fabdcb8b391e516b2d5b801881e2612e5f45b3d
-binfiles arch=amd64-netbsd size=1301
+containersize 809092
+containerchecksum ee3a4c7bd290c63f1e3dda686b0bbf66d066a6b192f3a9cab39d0a8b333ab72d978aa09c1f0a738ffa00a070ac0669f9c20db93666a7475b6966198aaa2fb584
+binfiles arch=amd64-netbsd size=1322
bin/amd64-netbsd/dvitomp
bin/amd64-netbsd/mfplain
bin/amd64-netbsd/mpost
@@ -214753,11 +215117,11 @@ binfiles arch=amd64-netbsd size=1301
name metapost.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of metapost
-containersize 727296
-containerchecksum 7fa785d462435cdd1c9a2d11beba0f851e0c95c8f6238595d8ebf9e12bb8b6c60fbc7af51728abf70bb91c133b21bde0a4e1322f38d49b4a2fe614f60374e3b2
-binfiles arch=armhf-linux size=478
+containersize 740460
+containerchecksum f7fc5e202f2be218ea2f73e92eba93c857017f213b046ab5e86d354a4dcbc5800927432a64952c50dfad3969660a4014c181c0be9d5ae913702205ddaa6439f1
+binfiles arch=armhf-linux size=489
bin/armhf-linux/dvitomp
bin/armhf-linux/mfplain
bin/armhf-linux/mpost
@@ -214765,11 +215129,11 @@ binfiles arch=armhf-linux size=478
name metapost.i386-freebsd
category Package
-revision 65877
+revision 70276
shortdesc i386-freebsd files of metapost
-containersize 865116
-containerchecksum f9ba4a6cf36669e730f318452db9a063d77fced56f99d9824b9f090b3fd225cb97126276a657f2caaa0528352bab131926a0bd8b7396f931af604d1543f250b9
-binfiles arch=i386-freebsd size=581
+containersize 810504
+containerchecksum d3c4853163bd3f31853585bba9837a49ddde58629aa22db77482cf0049a7d13971a308a5dde72de20098e5316e802b0711eab2c5aa2e568d53d9aae3db7826d4
+binfiles arch=i386-freebsd size=1318
bin/i386-freebsd/dvitomp
bin/i386-freebsd/mfplain
bin/i386-freebsd/mpost
@@ -214777,11 +215141,11 @@ binfiles arch=i386-freebsd size=581
name metapost.i386-linux
category Package
-revision 65877
+revision 70276
shortdesc i386-linux files of metapost
-containersize 976524
-containerchecksum 002c05c51c426dfdd29de4f73e467e5a10aa343f42999c13d1ae7b7dcfe27699bc10598799fb1b043111998f25ad4ee5b77d8b1ad19e579e4cdd5fa04b46dd95
-binfiles arch=i386-linux size=673
+containersize 998772
+containerchecksum 70c6e76a9c3d484bba72b7008a0b272f56f3e4a2b4eff937f698502ce177c340f7deb5687e0624d40a74f003f30af318a66fdb866aa193f5f867c886d6f5aa7a
+binfiles arch=i386-linux size=692
bin/i386-linux/dvitomp
bin/i386-linux/mfplain
bin/i386-linux/mpost
@@ -214789,11 +215153,11 @@ binfiles arch=i386-linux size=673
name metapost.i386-netbsd
category Package
-revision 65923
+revision 70286
shortdesc i386-netbsd files of metapost
-containersize 706236
-containerchecksum c58d9ce7be58bcfe4fd512a3e1e7f0490109e73f13145d123c81747e2bff83e4762657bb023707b2c3c080636c74753bb42fad5f13fdbaa900def64250f2653e
-binfiles arch=i386-netbsd size=1148
+containersize 721000
+containerchecksum 30d44a90cc46ba1cb4a118cf22f6291cf894c7dc3c7ae615159b3869e957458f36adcb6e4efba2750b4997611f35d51d5f2f53ab28c5d85a57042ed1231176e1
+binfiles arch=i386-netbsd size=1167
bin/i386-netbsd/dvitomp
bin/i386-netbsd/mfplain
bin/i386-netbsd/mpost
@@ -214801,11 +215165,11 @@ binfiles arch=i386-netbsd size=1148
name metapost.i386-solaris
category Package
-revision 65877
+revision 70276
shortdesc i386-solaris files of metapost
-containersize 840412
-containerchecksum e5658cefa1ec6ef9d00ea4dee9c04ecf34d9c6e6db9e43306e87da5b7ddde4906a743690be61f0921a50f7811ea1082a412eb1a543439cd8a65e944d6d81feda
-binfiles arch=i386-solaris size=520
+containersize 903376
+containerchecksum 5f4cb2f773f369730c74e5eb0d36e8741601de7933ee0b4806761bc60df9b01b69dabcdc3feaa82fd5f7e9cbd97f6a8123ced6116debb3efb50ab1a2d01a018c
+binfiles arch=i386-solaris size=576
bin/i386-solaris/dvitomp
bin/i386-solaris/mfplain
bin/i386-solaris/mpost
@@ -214813,11 +215177,11 @@ binfiles arch=i386-solaris size=520
name metapost.universal-darwin
category Package
-revision 65895
+revision 70274
shortdesc universal-darwin files of metapost
-containersize 1709596
-containerchecksum e7da7841c4dbea3bcf8131fdca5e03de0a5c54a5821f44170f8a90eff00b3f52cb81e895b779f3261c9ca7b18baf362fbffe2dc84dd86bb7301fb73283acc54a
-binfiles arch=universal-darwin size=1206
+containersize 1742344
+containerchecksum 71624d9e11f5e84f841efa4e2d55cb4e13309ad469c2b53fad02e5629f0bea62ff1cb1bf631a27913d101c1fc2dfa9b37eea105c092d9d58324dd0b23281d460
+binfiles arch=universal-darwin size=1234
bin/universal-darwin/dvitomp
bin/universal-darwin/mfplain
bin/universal-darwin/mpost
@@ -214825,11 +215189,11 @@ binfiles arch=universal-darwin size=1206
name metapost.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of metapost
-containersize 938396
-containerchecksum 974ab50cee8faff5820641dcf4ac6a29770a6b95b5ce7d54b7602a43b79d69b0045945210ce94626050ee380b597d62facd22339ad69a97bceb297f1fd3a2e2f
-binfiles arch=windows size=622
+containersize 967232
+containerchecksum 8aa34bebb62700750e185358c419a85cc4559663ed12d733984f005811deaf80cb26751b71af1897af3de049d65d168317aed1d530bab6569e376aeaf95a5ebc
+binfiles arch=windows size=642
bin/windows/dvitomp.exe
bin/windows/mfplain.exe
bin/windows/mpost.dll
@@ -214838,11 +215202,11 @@ binfiles arch=windows size=622
name metapost.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of metapost
-containersize 892044
-containerchecksum 15a69b0ecfd8079780795b9c8f9ea055b90f59b0995a2b6bb6b119e87763c25c25a478c2d9ff90c0e017ef8160010f7eef751ae69b99f0d2c2684239c4228503
-binfiles arch=x86_64-cygwin size=580
+containersize 910520
+containerchecksum 0302de7bcb88cc76da19486c992c7941bfef045fd32bc08dfba51831aa37acdf6bba73be7479ef605d63cf23cf999c044b21df9fdcb010ff6b556b9f4b2cf314
+binfiles arch=x86_64-cygwin size=596
bin/x86_64-cygwin/dvitomp
bin/x86_64-cygwin/mfplain
bin/x86_64-cygwin/mpost.exe
@@ -214850,11 +215214,11 @@ binfiles arch=x86_64-cygwin size=580
name metapost.x86_64-darwinlegacy
category Package
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of metapost
-containersize 828832
-containerchecksum 8635eff597a2341dbc58746fb76e3ad71c3e2def8f9bcbaf299e748b1d7b73ca4e1a618764d0b4c095d1cb3263d2296428cbd1813c2b84a353800aa82b8b01ad
-binfiles arch=x86_64-darwinlegacy size=527
+containersize 846460
+containerchecksum f69cb15b0add0f771b5fd8f6760ccb0cda2ef2a29926f5dc9e3b3cd0ca03d11edb4be9476efc225a757f7232c837b421f5f36c4847089a068e76e890654a8b6e
+binfiles arch=x86_64-darwinlegacy size=541
bin/x86_64-darwinlegacy/dvitomp
bin/x86_64-darwinlegacy/mfplain
bin/x86_64-darwinlegacy/mpost
@@ -214862,11 +215226,11 @@ binfiles arch=x86_64-darwinlegacy size=527
name metapost.x86_64-linux
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linux files of metapost
-containersize 920120
-containerchecksum 40ad5a4fa38f16bc501e237c04f1b8875df56103a403f93dcec01efc3161f4158fa08c25960942d76ed474b45adbfea0408868aed7106c28bfc62fc9c9291454
-binfiles arch=x86_64-linux size=588
+containersize 939372
+containerchecksum b2f3b1742bc4c8186307023ba801efc0b324578e72feff83577af977f7e2a65eaf5afad0b4478e14f053d7eb3d42a54285550f524dcf7b839c3d6d0123f50c31
+binfiles arch=x86_64-linux size=603
bin/x86_64-linux/dvitomp
bin/x86_64-linux/mfplain
bin/x86_64-linux/mpost
@@ -214874,11 +215238,11 @@ binfiles arch=x86_64-linux size=588
name metapost.x86_64-linuxmusl
category Package
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of metapost
-containersize 956604
-containerchecksum 17f6c0fb3863bc7f0bbd12963b775af5403f32ac5d3313730e010e32881939badd4037e66cd56fbcb01796d450197d43b4d6fb972c226d6a590fb35af3d4912b
-binfiles arch=x86_64-linuxmusl size=616
+containersize 976796
+containerchecksum 75e7ccfb0cc9090579379e43fa4b9a75f871f099ddf162e479d635879f47c41c308c12bc404a66f44307d2124008e347fd7e4dfdf20ec97f29e41a729122d3b7
+binfiles arch=x86_64-linuxmusl size=632
bin/x86_64-linuxmusl/dvitomp
bin/x86_64-linuxmusl/mfplain
bin/x86_64-linuxmusl/mpost
@@ -214886,11 +215250,11 @@ binfiles arch=x86_64-linuxmusl size=616
name metapost.x86_64-solaris
category Package
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of metapost
-containersize 932400
-containerchecksum 8c2f2a2388258212b8e729ae716da57eb17480ae965ed6337a35a004c1d6b39d100f906107716b0c8a57eabd1d9bfdf346cceda8310d7373e4d2ae344992ff19
-binfiles arch=x86_64-solaris size=599
+containersize 997908
+containerchecksum 00ae85d2e8587d0d785fe08a1e0d3f3907514739eb1e570f8f37f4b855cdc8dfe08fa7c7a19c4d8985e34fdee58f17a05918f735a2d44a534d62227bb544adfb
+binfiles arch=x86_64-solaris size=668
bin/x86_64-solaris/dvitomp
bin/x86_64-solaris/mfplain
bin/x86_64-solaris/mpost
@@ -215781,11 +216145,11 @@ runfiles size=48
name mflua.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of mflua
-containersize 821432
-containerchecksum 594376f0bfb5e142daaf37a3d4bc8c870e92e13583e3412a29ee312ed70c62f5ca6e9029258c4c8f4cebd75827c5c5eafebf904ac0b71ff5cf0715cad81e6e9f
-binfiles arch=aarch64-linux size=857
+containersize 828272
+containerchecksum 8d59563c8855c5f141ff90705dd1349880804304f220a4415447ee1884f70df2a4789e0ead054f4d364ee936e17e654a2562aa43bec3ab02252ff0c62364c054
+binfiles arch=aarch64-linux size=861
bin/aarch64-linux/mflua
bin/aarch64-linux/mflua-nowin
bin/aarch64-linux/mfluajit
@@ -215793,11 +216157,11 @@ binfiles arch=aarch64-linux size=857
name mflua.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of mflua
-containersize 970548
-containerchecksum 126415397e84e0ef3eedfa0d1735550c1b438694ff79d576efe016fbf96b1408df0e8473a463f466ad7cc989d19adf9a3749f1833181655e699f77f789ebf169
-binfiles arch=amd64-freebsd size=908
+containersize 794056
+containerchecksum 5e36b7d426547f2f7561156afbb96c921a02a9e00778cdfe61381e6ee59035c5bfdd8967bd51ecd81dee5d09c7b61fd8af6d9fa8d506837c5961ad0c2d340867
+binfiles arch=amd64-freebsd size=1080
bin/amd64-freebsd/mflua
bin/amd64-freebsd/mflua-nowin
bin/amd64-freebsd/mfluajit
@@ -215805,11 +216169,11 @@ binfiles arch=amd64-freebsd size=908
name mflua.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of mflua
-containersize 787104
-containerchecksum 9a7dbffc7cf2116ccbaf088c3d5965b90382eea1703be174cd3947466c8bb7a6c2c7fb426b48f24c9fd358c8388d4a48754834583c3a691afd9c0a434edd14ab
-binfiles arch=amd64-netbsd size=1072
+containersize 788036
+containerchecksum ab53bb02e983d63f2641317e48608a87ac7b1975be3e720a7c4784862d7eebd2d578b24a0eac43e90de00827608d968b5830792fd9e9c4556bedde5d799d4141
+binfiles arch=amd64-netbsd size=1074
bin/amd64-netbsd/mflua
bin/amd64-netbsd/mflua-nowin
bin/amd64-netbsd/mfluajit
@@ -215817,11 +216181,11 @@ binfiles arch=amd64-netbsd size=1072
name mflua.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of mflua
-containersize 669916
-containerchecksum 540d610d3ff2f48a3dfbd5426f8028df78cdb97e62b48aa1e120026b3c2ab4dba8db9fd091733a61d247ddf22fc9f42323b3e3932a855d417a9342e19b002da0
-binfiles arch=armhf-linux size=663
+containersize 670744
+containerchecksum ef67851600acddbed093c7a1ca34d2b10cefbd4994f8f3b7a89207d5448cb67e77294517552f8ac846c6edfa6fe65de84b7e6f7e71a83fb70acfe7cfd5b8e617
+binfiles arch=armhf-linux size=665
bin/armhf-linux/mflua
bin/armhf-linux/mflua-nowin
bin/armhf-linux/mfluajit
@@ -215829,11 +216193,11 @@ binfiles arch=armhf-linux size=663
name mflua.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of mflua
-containersize 872944
-containerchecksum 1787ad025ccd55213fe634ab9c7fc8e648d917da6f404c5c4d7a8742027e9c2b8143ef5c1d389d8083423453d797e725d20a5b8897a6af1adeca0da4edaf9bba
-binfiles arch=i386-freebsd size=818
+containersize 793744
+containerchecksum 2613835dabea9ef28b3fa409883aaa312217b44b836907d33e9d0124fa25b33e6ae4980f421da0e526a2931f315dd90e87c73d662bd4410e42e46cfd4b9b2ea6
+binfiles arch=i386-freebsd size=1080
bin/i386-freebsd/mflua
bin/i386-freebsd/mflua-nowin
bin/i386-freebsd/mfluajit
@@ -215841,11 +216205,11 @@ binfiles arch=i386-freebsd size=818
name mflua.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of mflua
-containersize 906188
-containerchecksum 515529aa2617b55dfd96020ec68b506162ac5239b41c7c43d65a965b64cda942183fe5f6ea5c851c8093a637f9aa0b18413bec7b632250cd988550242cd2e917
-binfiles arch=i386-linux size=866
+containersize 904572
+containerchecksum b35ec641d976ad902168bf1bf834995390908dc44833f8b87c6e0695f19b8eb69768af6684cde66527a61bdc69b7f918ea55371d48d4e7e1849fa91c077c8790
+binfiles arch=i386-linux size=868
bin/i386-linux/mflua
bin/i386-linux/mflua-nowin
bin/i386-linux/mfluajit
@@ -215853,11 +216217,11 @@ binfiles arch=i386-linux size=866
name mflua.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of mflua
-containersize 724796
-containerchecksum d697e6d6d91219bb254074375800cfe46e9d9550c6d2f597c99f0d0bd4facfc48656d42c1f8952a688cc9a95e34c971e5688f26eccd5ba80ee8740eb8f5ffa2a
-binfiles arch=i386-netbsd size=964
+containersize 727452
+containerchecksum bf21e72ed699ce459d1ed31947d092155579e1db42d147b42d6714f482c4d67aacfca0c9d802763f86a4dcdbaac906d5e92a9330715c51e39555d2338bf89777
+binfiles arch=i386-netbsd size=966
bin/i386-netbsd/mflua
bin/i386-netbsd/mflua-nowin
bin/i386-netbsd/mfluajit
@@ -215865,21 +216229,21 @@ binfiles arch=i386-netbsd size=964
name mflua.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of mflua
-containersize 489696
-containerchecksum 1b4403492ce1fcca7527f5da6aeaba1995547b72a4bcb30eade60b4bd6ed1bbb1c1f76bfa3c88439f6af4e41c2ea0873cc3898b898a9059a4aaba81211564133
-binfiles arch=i386-solaris size=308
+containersize 512664
+containerchecksum 68af58f7320a3b5de09512940e46b28c51158044d0d703481a5b9909248bc3c845f8d753a3c778115a82042532fd7997cb180a16eecb23dabac47dcca1768cd6
+binfiles arch=i386-solaris size=330
bin/i386-solaris/mflua
bin/i386-solaris/mflua-nowin
name mflua.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of mflua
-containersize 1567720
-containerchecksum 94a8279e1da804817e1ea1728010de9247d92541dd7f64e7838a7050dc9c184cea2bbb2668141f677d30f4c594407312669bfbf16de3dcb5d2aa6c4948edd208
-binfiles arch=universal-darwin size=1620
+containersize 1570904
+containerchecksum a7b474711123670be180e99a38b413ceb38c8c479f897955450f4584caba07d7c4f145367b04cbaaac231975beb1c5135ddef91054bb16b52edc3a2f3311bd83
+binfiles arch=universal-darwin size=1628
bin/universal-darwin/mflua
bin/universal-darwin/mflua-nowin
bin/universal-darwin/mfluajit
@@ -215887,11 +216251,11 @@ binfiles arch=universal-darwin size=1620
name mflua.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of mflua
-containersize 1242040
-containerchecksum 4820d5929c357cb00f54b15aa5c3b54c4a1955ce926f65905c2b5d0c6067198fb72b0004627afc70b2541c0600e85454818f5005ff15bc4aa911d53bdd709114
-binfiles arch=windows size=1780
+containersize 1248796
+containerchecksum 077067cbe92353fb15b9be2edcd4eb3303b26ddeef66ac5cef6b8a3dd445788b63ce1446398aa6f786e8e18e9d32ab8f03b968fdc987a8734f5c904299d479b3
+binfiles arch=windows size=1798
bin/windows/mflua-nowin.exe
bin/windows/mflua.exe
bin/windows/mfluajit-nowin.exe
@@ -215899,10 +216263,10 @@ binfiles arch=windows size=1780
name mflua.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of mflua
-containersize 521696
-containerchecksum ebf15ae8805a32c05ec6be628de1768de80b85bec7852db672807eaa8cc16ecd87cac8ec25da1e28a5fb5f43fe56ea7e1967e15d63650e57fe679b140a5c53e7
+containersize 520604
+containerchecksum 09613bbc2864dfe780a39bdfb9b96efbf780fa095f5f6e01d0785d600cb15b1857f4880610f51e1ddec04b0bd13f26fe2be800d08ef8d9e2fe38fc75e1b602ce
binfiles arch=x86_64-cygwin size=614
bin/x86_64-cygwin/mflua-nowin
bin/x86_64-cygwin/mflua.exe
@@ -215911,11 +216275,11 @@ binfiles arch=x86_64-cygwin size=614
name mflua.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of mflua
-containersize 757756
-containerchecksum 835ab6bc96d7339f7a22f07b51d0a6a70329a522bccfd81397a9580a972c30f8fa2cb1e020cf05beadcf91b44ef95c24238b6b51be89ae6115613da0b4dced70
-binfiles arch=x86_64-darwinlegacy size=695
+containersize 759572
+containerchecksum 03a9ab4d7a6e2dc9f6e54736fc33a7bfd30f52906b348bc610acf1ba0b897ee60aed9685c2316c50f8d3e85325aed72b2595b801e65a5c9b3248f3239dfe73fa
+binfiles arch=x86_64-darwinlegacy size=697
bin/x86_64-darwinlegacy/mflua
bin/x86_64-darwinlegacy/mflua-nowin
bin/x86_64-darwinlegacy/mfluajit
@@ -215923,11 +216287,11 @@ binfiles arch=x86_64-darwinlegacy size=695
name mflua.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of mflua
-containersize 877052
-containerchecksum f9f669ade30a930d75d9226b8f9ad952f53cdd4ca32f4296b5b31d9c2400e747d5805374ea357c053fe51446d8fd46ec2b9cfb762853ccb1caf1cefb31d33fd5
-binfiles arch=x86_64-linux size=797
+containersize 877844
+containerchecksum 8799d478e151c39d9b9a98463992193e7dd5b4cb6a163aa331fd2d0de34973f78388aaf60f2aad180146d660b86aa56d28bb16ee381f69f4ac8cdd7212227b99
+binfiles arch=x86_64-linux size=799
bin/x86_64-linux/mflua
bin/x86_64-linux/mflua-nowin
bin/x86_64-linux/mfluajit
@@ -215935,11 +216299,11 @@ binfiles arch=x86_64-linux size=797
name mflua.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of mflua
-containersize 915136
-containerchecksum 38dcf20d7ed6581443160e296dca1e9dc87574eb85c2f7afff35f3b9eac1f5d3a85ab23c26e0ca0d4217d59529ce46be3482d5c0b0280253f7bdcdaaff434c7e
-binfiles arch=x86_64-linuxmusl size=863
+containersize 916652
+containerchecksum 023e298baf937b5efd3ec8a44479f9d371046d9329b50b01492e16aebdebb88d4b247c8ee8003b01c364e6ac460119bb9f8a3549d5c821e817f15a2cd7efbb7b
+binfiles arch=x86_64-linuxmusl size=865
bin/x86_64-linuxmusl/mflua
bin/x86_64-linuxmusl/mflua-nowin
bin/x86_64-linuxmusl/mfluajit
@@ -215947,11 +216311,11 @@ binfiles arch=x86_64-linuxmusl size=863
name mflua.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of mflua
-containersize 556400
-containerchecksum db0ccc4afafa1533319b63d35f13b4514f68a4e652b88df8af6cf942e5830a51a340270de3235075e717a75a96b48d3d6c5ac8a7e3179bbc56abc9b395d0b1e7
-binfiles arch=x86_64-solaris size=367
+containersize 580112
+containerchecksum f36c698c9b6a5822f7df08934a9d308459953795af9fe04e71e255b34d96d57aa458dda61eec539ea99eb1450db83c0a8542dc199b471eadf44d0d93c90ad7c1
+binfiles arch=x86_64-solaris size=394
bin/x86_64-solaris/mflua
bin/x86_64-solaris/mflua-nowin
@@ -216121,15 +216485,15 @@ catalogue-version 1.0a
name mfware
category TLCore
-revision 66186
+revision 70015
shortdesc Supporting tools for use with Metafont
longdesc A collection of programs (as web source) for processing the
longdesc output of Metafont.
depend mfware.ARCH
containersize 3180
-containerchecksum f14b1f8876f8a4f2ba8954459c2a3739e0537d800fc1fde11aaaaa61400c18b9419edd3c7884ecac499da3efbd5219244c06ccab1efe17674b5458b464abd3ea
-doccontainersize 101516
-doccontainerchecksum ec469dc655be20598ae40cdccd8360252cb216039cfcdfaab5f45d0276fee272a463f19db7f98f6d35b3e6930098536fe8eb4a453161646aa0ed33dd3f8773db
+containerchecksum a175c2f4fa69a9c73e2194c8bcfeef23c545a34fb25b60e65095d65e6faf94549cd1a115bc49d2c3ed7a67548c054cf14a7fb6aaf78861f6d55fc3ce20362dc9
+doccontainersize 101092
+doccontainerchecksum 8ba042e99ae1ea8655491ccfb4042529a1ae0490b1ea8667a1c25b5c792a3a5276db8b54ea96cf019d5e0462cae326fc5a26e7f7df8c2fe0fb6ab1580a828611
docfiles size=42
texmf-dist/doc/man/man1/gftodvi.1
texmf-dist/doc/man/man1/gftodvi.man1.pdf
@@ -216157,10 +216521,10 @@ catalogue-topics collection
name mfware.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of mfware
-containersize 118132
-containerchecksum e577f545cb2ca20aa847cdf568c0f3a72b5b324a46216dc10e715bb55716a64832da418b6769a00161030f73d30da6ee5120f19fb285845093812e2169316b2e
+containersize 119092
+containerchecksum dd424ac97ac056fc3501617c4b7561d9e93f246149a245017714d143d889902100be61f8a7c8821453dcec1b413803e7c1399f50f479a0c842873931ca72ecb9
binfiles arch=aarch64-linux size=158
bin/aarch64-linux/gftodvi
bin/aarch64-linux/gftopk
@@ -216171,11 +216535,11 @@ binfiles arch=aarch64-linux size=158
name mfware.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of mfware
-containersize 133368
-containerchecksum 1f7edd39833334eb158274d22b018d7a39a92998e1691f7db1e9b8c8920cc631096e3e3e4530aa3f099ae07701d3d36095830b34fcde0f4a77abb724e176f355
-binfiles arch=amd64-freebsd size=163
+containersize 132164
+containerchecksum a2381fc0e7022db3da8f4082ea8d2596ed0c4040cd915d4a70984f2ca12449e4f6214d561cb2bfa4d2ec21b6a30a1fef4ae835465a181c265ed4de05eb23458b
+binfiles arch=amd64-freebsd size=198
bin/amd64-freebsd/gftodvi
bin/amd64-freebsd/gftopk
bin/amd64-freebsd/gftype
@@ -216185,11 +216549,11 @@ binfiles arch=amd64-freebsd size=163
name mfware.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of mfware
-containersize 121912
-containerchecksum 958b2d3f034aa682c8c2ecbea43eb44b571b384b72cddc58a89e92344bfa49d63ff50f652b1e376bdb331c920c307b41615f138a3aaeae29a51b869c6f00408a
-binfiles arch=amd64-netbsd size=187
+containersize 123092
+containerchecksum 9fdde24d149706d24a1874f9b3cdcb548ecc07ac40c99c1a744e6e908b019c7f6c37001eab9b1216699194f06f7f12817e2976b86fa9ed6322da70d034deef41
+binfiles arch=amd64-netbsd size=192
bin/amd64-netbsd/gftodvi
bin/amd64-netbsd/gftopk
bin/amd64-netbsd/gftype
@@ -216199,11 +216563,11 @@ binfiles arch=amd64-netbsd size=187
name mfware.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of mfware
-containersize 91280
-containerchecksum 006666b10a27a794deb528320667afb786656883a27fac24967d56129449c46053412056657bbf5c759e7e9092df99ac2bbeaf21ba390c43951726da876c3fc8
-binfiles arch=armhf-linux size=126
+containersize 91520
+containerchecksum 104cbd1ddbb1848b8193b99363aa9ac6255e1417f1ef78ce1050ea2318381dd41672a0ea6a05ece3aaa9f48a5341dea3583d5360ce7979594bc2fd90b9314c5b
+binfiles arch=armhf-linux size=130
bin/armhf-linux/gftodvi
bin/armhf-linux/gftopk
bin/armhf-linux/gftype
@@ -216213,11 +216577,11 @@ binfiles arch=armhf-linux size=126
name mfware.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of mfware
-containersize 116048
-containerchecksum d67035ba3a05295ede714b8897d65e039570cd3d52844e5f5f330247584840ec4bdc707e79ef3e2b8bd62c1d914de40d41a1d309019fb9889237cfbd9792702e
-binfiles arch=i386-freebsd size=144
+containersize 131964
+containerchecksum 9890873a4a9cb31f16866a949fda389e9442e98156894b742c3c40a1ec6966cf7e652c4c3ae5067347d85b57fc3b07bb97d63dc4dc2cc24f0b445a32d2f1df0e
+binfiles arch=i386-freebsd size=198
bin/i386-freebsd/gftodvi
bin/i386-freebsd/gftopk
bin/i386-freebsd/gftype
@@ -216227,11 +216591,11 @@ binfiles arch=i386-freebsd size=144
name mfware.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of mfware
-containersize 115968
-containerchecksum b7eaa6fbfc69ccf7147b2650be6e21d1cd418bfbdb84c4c72ea41de28ca05ba6d9f84b7ec13a02968f1d5a9dc160963180224f92d1a3bebb4f0bd38e9dc6e1f2
-binfiles arch=i386-linux size=169
+containersize 116668
+containerchecksum d2f63bd36388e4c1741b68ae29367db2f3a9b9ea3f3dc8d14e7e546300312b20f8163d1de22b01efecfd7a574623713d166747bfd7c1d2c480f0d0931947ec58
+binfiles arch=i386-linux size=171
bin/i386-linux/gftodvi
bin/i386-linux/gftopk
bin/i386-linux/gftype
@@ -216241,11 +216605,11 @@ binfiles arch=i386-linux size=169
name mfware.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of mfware
-containersize 104848
-containerchecksum af14f032372b6655f9a2c671b9459d0df8e29a60596dc70f055b737ba231de2b4e2f011aef91b881877c2c8ae56a9777996a897472f71e5bf688724a60dba4cf
-binfiles arch=i386-netbsd size=175
+containersize 104948
+containerchecksum aa0b76b8efaee6f1063986e572df9b8571dec2217f0ce974c8b949ec6cd0497029c084ebdd379bc7419a5c2da757b1dd1b52c678b18b8175d7761df5df92b587
+binfiles arch=i386-netbsd size=178
bin/i386-netbsd/gftodvi
bin/i386-netbsd/gftopk
bin/i386-netbsd/gftype
@@ -216255,11 +216619,11 @@ binfiles arch=i386-netbsd size=175
name mfware.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of mfware
-containersize 125168
-containerchecksum 72673ef3104ca396d0c286b008754f0e5ede795a840692b65c3c6324318bd1087a7338838c3efd44a40c94ccce63bcd0ce4ed3eabdb72a71b626c5326ee6b025
-binfiles arch=i386-solaris size=147
+containersize 129008
+containerchecksum b0ec63e8d2400710847137bab7b244145b96aab999079bc92b3cb14799792ae79d7bcbb86b514ad0a0dd8ad74c84d6a7fd88ce5eabfb8e6181f0dfb5fafbcde4
+binfiles arch=i386-solaris size=154
bin/i386-solaris/gftodvi
bin/i386-solaris/gftopk
bin/i386-solaris/gftype
@@ -216269,11 +216633,11 @@ binfiles arch=i386-solaris size=147
name mfware.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of mfware
-containersize 248140
-containerchecksum 7b2b004f21402f207b23e49df00fdcbf707138eedb372fb73fe8b5d6df735b48be555c65d9088f7b31b247539a3c2a56d35cd321123e46ded5ebf83730af04a1
-binfiles arch=universal-darwin size=435
+containersize 250332
+containerchecksum b4788c9a58e5f97144c1571f09d07cc99e4c23ec069033c569d7f643d4c4201a15cd7b527670f1eaedaac59a4a07fec0cf18541678ff261d8b4f9c4b6feabdb9
+binfiles arch=universal-darwin size=439
bin/universal-darwin/gftodvi
bin/universal-darwin/gftopk
bin/universal-darwin/gftype
@@ -216283,10 +216647,10 @@ binfiles arch=universal-darwin size=435
name mfware.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of mfware
-containersize 67748
-containerchecksum f8f4032f0ebd5264758e4b6fa38115eb09122739d5e0179cdf168838abd80f6bf5e1aa1af6ed9824ed681505ae3744780267da7224c16bcd6cfc9dc4adf5d060
+containersize 67724
+containerchecksum 0bd6844808d3b3961898da45aa7d7decaab68322de691a7e61d7c0871c571f3e07b67953366883cc564ff2dab029b506bc91fca8d2a4f9a1eec0d02ec0c822a4
binfiles arch=windows size=49
bin/windows/gftodvi.exe
bin/windows/gftopk.exe
@@ -216297,10 +216661,10 @@ binfiles arch=windows size=49
name mfware.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of mfware
-containersize 64068
-containerchecksum f96f238b9d8907d21dec7b1c1b914b6c6457e0d1380069bec73c7afaf905fe9ce2333fce9952563e5e1591eb4c0796ff96555170207099ca2cc1c24fc3c35c54
+containersize 64092
+containerchecksum 6cce853196f85b296ef451c79047db273ad7fe4cf5119749a81fba89d6b87a8eb40db1e7435fb16bbc23591c70c73b7c475869f06bafe234772117e14a8425c2
binfiles arch=x86_64-cygwin size=50
bin/x86_64-cygwin/gftodvi.exe
bin/x86_64-cygwin/gftopk.exe
@@ -216311,11 +216675,11 @@ binfiles arch=x86_64-cygwin size=50
name mfware.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of mfware
-containersize 116880
-containerchecksum 9115bee7aa57879dad18dd4b4bf5c4312d9bcc71d1f1b98f5dd9ac5c11a09d4663f38e22945a5b6a2f44cbbc483f01f36fce231a8f3b298a2389349b872ec442
-binfiles arch=x86_64-darwinlegacy size=150
+containersize 118424
+containerchecksum b0fb163b5a84e6c0608aed566bd3840f9bf8c5b906c63c2c2918a5d5080c200f504b06530de93f231dc065dbfc4e93217ba6a2833e1c28c3c038f4768c087484
+binfiles arch=x86_64-darwinlegacy size=153
bin/x86_64-darwinlegacy/gftodvi
bin/x86_64-darwinlegacy/gftopk
bin/x86_64-darwinlegacy/gftype
@@ -216325,11 +216689,11 @@ binfiles arch=x86_64-darwinlegacy size=150
name mfware.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of mfware
-containersize 121284
-containerchecksum 501d03ec9b126dfbf46a8bb52852e4a3339cd8868bc819c3b81cbf2feaa59fd06b3ac73b38d9b58f936902a95f40eb3891a900fd335ba78e04ab8a1c2481247f
-binfiles arch=x86_64-linux size=153
+containersize 122476
+containerchecksum d1d42a2821fdddbf499e9ae870af8fb7f19c424f466e433c560f1dc4a3ad79c937919e2c5e3292c781aa54807e704c6a8bc75ee5fbb6f53808ad8925bf7811e8
+binfiles arch=x86_64-linux size=155
bin/x86_64-linux/gftodvi
bin/x86_64-linux/gftopk
bin/x86_64-linux/gftype
@@ -216339,11 +216703,11 @@ binfiles arch=x86_64-linux size=153
name mfware.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of mfware
-containersize 129292
-containerchecksum f47b0a447e86f279ea4c6597224c1646edf5a0d79c7723df14b2d28be8c6b81b63c4930d48fa99dad6296aed0c075bd38fe2abcbcae6fa939e5c593c06091d3b
-binfiles arch=x86_64-linuxmusl size=159
+containersize 130736
+containerchecksum 0f26d7e43de358417767285040dc1a3b133d2fc4427edb9488833b54c82f8519b4335eed8875c584f1e7f8a61fcdcbf6d16075b94f8e6722f0eb782732adf729
+binfiles arch=x86_64-linuxmusl size=163
bin/x86_64-linuxmusl/gftodvi
bin/x86_64-linuxmusl/gftopk
bin/x86_64-linuxmusl/gftype
@@ -216353,11 +216717,11 @@ binfiles arch=x86_64-linuxmusl size=159
name mfware.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of mfware
-containersize 145120
-containerchecksum 33bdca49ca352f43bef33b9234c01ed307bd3bacf29fad02e40fce6650f8b565eede98d7c603847cb2638fc8426f11b8b13a34b64af22fa1a28838587cb67328
-binfiles arch=x86_64-solaris size=171
+containersize 150392
+containerchecksum 916e5fda5905f34abbe392812ff4aeb32bfaf8175c6fb443d9c69d2d8568f035a5c2394bc69eaeb0f5d21000e6506ae87ce443a4ff878155d6e1cd43e8d5a58a
+binfiles arch=x86_64-solaris size=181
bin/x86_64-solaris/gftodvi
bin/x86_64-solaris/gftopk
bin/x86_64-solaris/gftype
@@ -216979,7 +217343,7 @@ catalogue-version 0.96
name minim
category Package
-revision 70320
+revision 70379
shortdesc A modern plain format for the LuaTeX engine
relocated 1
longdesc This is a modern plain format for the LuaTeX engine, adding
@@ -216993,10 +217357,10 @@ longdesc unicode mathematics minim-pdf for creating Tagged PDF minim-xmp
longdesc for XMP (metadata) inclusion This package contains only their
longdesc shared lowest-level programming interface, along with their
longdesc combined format.
-containersize 25272
-containerchecksum 5c2905e433d296d4645a7f4b9ea4e8d952d3b97b3977a88dfbdb36278f399ea9be02a14f866c4615290a6ca617cd0d29498f330239832fcc2d2178bf6dca7515
-doccontainersize 362316
-doccontainerchecksum 35ac9d101c958af4ffe7909762edb173ad7af619d870dfe44408634160446568cf480c209ef5546142d390e89a155d902ec6dd921cc33511e5d84cdbd68a2a4f
+containersize 25248
+containerchecksum da3eef9f070075fdcf55de1e08e6b0b9f7ad9cf7ed72a40df63cdae66fb3b4eca505657fb6bc052b9ec3e55f6bbce9b0ad58e2c31b68849ea88e7d7bf0c14afc
+doccontainersize 362300
+doccontainerchecksum 82aaab39e75917613c9626060d998cfa17c4bd20a41f44315255e7be8657bfcac9af31ff757fd70893a4491d80551a382583bcd1cdd00720e092c14113c689d8
docfiles size=104
RELOC/doc/luatex/minim/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim/README details="Readme"
@@ -217081,7 +217445,7 @@ catalogue-version 2024/1.4
name minim-mp
category Package
-revision 70322
+revision 70310
shortdesc Low-level mplib integration for LuaTeX
relocated 1
longdesc This package offers low-level mplib integration for plain
@@ -217090,10 +217454,10 @@ longdesc extend. The use of multiple simultaneous MetaPost instances is
longdesc supported, as well as running TeX or lua code from within
longdesc MetaPost. With the included minim-mp format file, you can even
longdesc use LuaTeX as a stand-alone MetaPost compiler.
-containersize 21136
-containerchecksum 99fc9ec8eec155bf404274bde2981ab791bae041860e184242cf5ac06b7c0a149ce70adfae1b2088a773114564afe93ece070cbae5fd77088a637bc27f830c95
-doccontainersize 117160
-doccontainerchecksum ab83c7e366b87d42ae6351ef505c21c14cd39fbde5020f59595ce3534338b38cf2911496fb196226d012ec0337424047c158477721434fa0f08e2207b0fa5e1a
+containersize 21100
+containerchecksum b3a023948fad10e9b072368edfc5d234f2f8f19e886b61b4631df27166f7b30e77cee842532d13dd001bc6286238f473f4b7a40b7e5018c59b1fece01a470fe0
+doccontainersize 117156
+doccontainerchecksum ed9fa2eb535ec897abfaf89b792eaf6ef0b756166d21ad64a6724a71d43a37113362144a68cbfa623a84e9ca8f37579824b3ef9df14e52b5a48bbd33946af5f8
docfiles size=41
RELOC/doc/luatex/minim-mp/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim-mp/README details="Readme"
@@ -217117,17 +217481,17 @@ catalogue-version 2024/1.5
name minim-pdf
category Package
-revision 70321
+revision 70311
shortdesc Low-level PDF integration for LuaTeX
relocated 1
longdesc This package adds low-level support to plain LuaTeX for marking
longdesc up the structure of a PDF document. The implementation is
longdesc rather basic, but should allow you to make your PDFs fully
longdesc PDF/A-compliant.
-containersize 17520
-containerchecksum da700da69e8f6e82c47a08b0e54fa0cb959fb7950544a9dbd49d9b0883620434144932301c2dc68f03d45b5f7d3b6e9521a7d66fd820f8b91c6bd8364e0338e8
-doccontainersize 142712
-doccontainerchecksum f9e3735b6a493c2ad07b1b39c1393eb39dce3250afa358f15c6870fd02c527342198f8198b710db298baac4309544fcb457589aec75e4f54a5817fb8072fab7f
+containersize 17504
+containerchecksum b949ae0e2e126843b626d2cdbc41cf6746d5ff646f37136a9d8a28b3374c8a246a10c419b8c4c6d782fe74d4070c1d20ba0405d28ee800bc747075ca0b9dc5bb
+doccontainersize 142708
+doccontainerchecksum 7f8a8ae00f24e494d5c0ca291b29bec7c124104a785fba807b89a833219362f9c8d6098005a079fb126a691b1c3ccd15cc5a9f3a9bd532f2678da22b73eddaaf
docfiles size=49
RELOC/doc/luatex/minim-pdf/EUPL-1.2-EN.txt
RELOC/doc/luatex/minim-pdf/README details="Readme"
@@ -217173,7 +217537,7 @@ catalogue-version 2024/1.3
name minimalist
category Package
-revision 70329
+revision 70302
shortdesc Write your articles or books in a simple and clear way
relocated 1
longdesc This package offers you a LaTeX style file and two classes to
@@ -217191,9 +217555,9 @@ longdesc Russian and Spanish typesetting, and also use more beautiful
longdesc fonts.
depend projlib
containersize 13100
-containerchecksum 899476ca5e7ef145520819cf365e1afd9056b377e5eb3d64e63743d1eb041e6775d9d6ea616e241a6575e57789eea70dee3651a1dc4098c32b72021835d330f8
-doccontainersize 8108
-doccontainerchecksum 9f887a4043097a7fad52699d2568bf3e534d27df57f0567e392560e5153d7706068f2835ed03f5543bcb8e9021393e526b1499180bf00da851ac661cc86e2443
+containerchecksum 8b51525d7459481030564b8491ec4f759062db9ba372f508c60bbc3c2b61a39113241adde1d75187f0777196b870b7930617d788c672c927323e806ddb8c61bb
+doccontainersize 8120
+doccontainerchecksum d3f9fa28f4778b0fd3503f02fe98770a4a7b60d604c5f351ef32038247df4b339bf79b9924c0e8e2c90f5bccbe96026466ecf746c0418bab6a63692f644e3180
docfiles size=8
RELOC/doc/latex/minimalist/DEPENDS.txt
RELOC/doc/latex/minimalist/LICENSE
@@ -218324,7 +218688,7 @@ catalogue-version 1.8f
name mismath
category Package
-revision 70260
+revision 70255
shortdesc Miscellaneous mathematical macros
relocated 1
longdesc The package provides some mathematical macros to typeset:
@@ -218335,14 +218699,14 @@ longdesc improved spacings in mathematical formulas, systems of
longdesc equations and small matrices, displaymath in double columns for
longdesc lengthy calculations.
containersize 4612
-containerchecksum 21714883ae8a8640bdacf7c70b06153914cafa03ca546902017d98b24931d9cee041197fae2b31b317917351294addd8c9531c80586aa14924cd57120f37780d
-doccontainersize 152336
-doccontainerchecksum faf0bcb6b8f2c9ac698bdc3df87001dfcc7488449972bfd5a4ec2fa619d1ab88e9764f4b9773788902385d6887d56a9d51edf16631dea8a0379921f380996878
+containerchecksum b9ab82136bf50c1c90c2765108ea46320ff01b2adc03e4c8c9159c454008a4f62e9a132dc237e7b6192c55ff0ac54d7b638857d13042144dd391e5875105e05c
+doccontainersize 152328
+doccontainerchecksum 7199dbf6d533058820713ba115a1bfa614712e28208aa9e6badc7c6d61640931d7e122158f6e2c48dec1d1c79336dfa6fc9515ae3f09f43421ae11c8a8ce454a
docfiles size=39
RELOC/doc/latex/mismath/README.md details="Readme"
RELOC/doc/latex/mismath/mismath.pdf details="Package documentation"
-srccontainersize 24360
-srccontainerchecksum 4c8a203150e5c7c8a291f57cd5a87686c05114d220d427ff34d4255542a9f02bdada4805a28edf7deb479a4529ff841f89253043ae648a55f650dc6f212efe25
+srccontainersize 24368
+srccontainerchecksum 604ede6439698bbfa0f4ea54e875c3ede4041a38afd95271d785cdafb4f54fa51a9049a377af694069038101989e2e1f325093acb719239cc6bb8702ef16d8b6
srcfiles size=21
RELOC/source/latex/mismath/mismath.dtx
RELOC/source/latex/mismath/mismath.ins
@@ -219931,25 +220295,21 @@ catalogue-version 1.2
name mltex
category Package
-revision 62145
+revision 70002
shortdesc The MLTeX system
longdesc MLTeX is a modification of TeX version >=3.0 that allows the
longdesc hyphenation of words with accented letters using ordinary
longdesc Computer Modern (CM) fonts. The system is distributed as a TeX
longdesc change file.
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend dehyph
-depend everyshi
depend firstaid
depend hyph-utf8
depend hyphen-base
depend knuth-lib
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-fonts
depend latexconfig
@@ -219957,12 +220317,12 @@ depend mltex.ARCH
depend plain
depend tex-ini-files
depend unicode-data
-execute AddFormat name=mllatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx -mltex *mllatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,latex,latexconfig
+execute AddFormat name=mllatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx -mltex *mllatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,latex,latexconfig
execute AddFormat name=mltex engine=pdftex options="-translate-file=cp227.tcx -mltex mltex.ini" fmttriggers=cm,hyphen-base,knuth-lib,plain
-containersize 6452
-containerchecksum e04f33b83474e58c4725abbba21ae56659920ad2929faba7f25b47befeeb7e207e36888e1dbf7260ecc95c126e1732f6f5dced3d277db7c3889f2b08590b04dc
+containersize 6420
+containerchecksum 10160076fdfd799a20ff92f48b4ae1a51f0aac808d1b790348da0c25119432047f5db94837cc5540948109d4edf8374df9e32f1417138b22c3a297229c67c58c
doccontainersize 8676
-doccontainerchecksum e9d5a1cfdc6183bf99ef369b447c73e9ec5926952a80a75708db4fc6343ffc1a10d599276c13f295005f7c8c56e2e35ad9edc9dee3ee06928fa8c7b267d82bbf
+doccontainerchecksum cd8cb09a368c2011a7466152f4c2011065b630acdcaa82a4d22a76f83c01b99b7dc77846f0491726a7d85f274463307983c3b97e10bd54121184eabd21c669bc
docfiles size=9
texmf-dist/doc/latex/mltex/README
texmf-dist/doc/latex/mltex/mltex.txt
@@ -221000,23 +221360,23 @@ catalogue-version 1.0
name moloch
category Package
-revision 70496
+revision 70491
shortdesc Beamer based on Metropolis theme
relocated 1
longdesc Moloch is a fork of the Metropolis Theme which fixes some
longdesc outstanding issues of this theme.
-containersize 3984
-containerchecksum 58af737c14943781d96c8a8fbd6004a207281329973bec3ac0166d117af0d6cd4ce38174d4bae4e9a4e5c6eb6c7bf1be9205539afa8267e166656e74932f6e90
-doccontainersize 283404
-doccontainerchecksum df09576955c0cdc3dd439e1a15df6b77d27dbc7f4ad876b06078823bf37c17db436cc5b75afac8aedf6622dad706a124cb01252e05345cedd2d305c593a82bab
+containersize 3988
+containerchecksum 17b208616adf028c42494980b5f3acc58e2161085d7be4a1ffc264c4b1fd754c69f9744411eae2ccc860dca6fe6924b828ce82b5e248a18b109aa203f608f448
+doccontainersize 283416
+doccontainerchecksum 50ebadfc70f61947f169d8e8e7b60c53be174525bb76f14b727528d066c41069d9e36016aeb60729c20870d2a8e936ffc2afd011e6ca9ff75442e66ae8776970
docfiles size=80
RELOC/doc/latex/moloch/CHANGELOG.md
RELOC/doc/latex/moloch/LICENSE
RELOC/doc/latex/moloch/README.md details="Readme"
RELOC/doc/latex/moloch/moloch.pdf details="Package documentation"
RELOC/doc/latex/moloch/moloch.tex
-srccontainersize 7240
-srccontainerchecksum 55084e06291835c8642d6313dd3a8a34071286c0bffb4988a8787913b38816cbfc26895cc1198fd58feae934400b5c4b5e06f78c5959329a784f7bf32ddf6c68
+srccontainersize 7248
+srccontainerchecksum ac4cd0a972bf6568d0b0b9a2f2f3a36f958d2ee34b5dc731f4e1bf24ea2ea9b785fe46d73c15502278f92cfafb4b0caed50a32df171f96731ccdd20d851b73ae
srcfiles size=11
RELOC/source/latex/moloch/beamercolorthememoloch.dtx
RELOC/source/latex/moloch/beamerfontthememoloch.dtx
@@ -226809,16 +227169,16 @@ binfiles arch=x86_64-solaris size=1
name mptrees
category Package
-revision 70117
+revision 70112
shortdesc Probability trees with MetaPost
relocated 1
longdesc This package provides MetaPost tools for drawing simple
longdesc probability trees. One command and several parameters to
longdesc control the output are provided.
-containersize 11464
-containerchecksum 64efb9355c79a8145e0bd4e44922c789a718f389ecb59ac186ec32da8e37323d09cc33d558cbf67ca5550f68501282dc429b784f483df1e3df5b9d5bc3b5ddd6
-doccontainersize 208496
-doccontainerchecksum de5d2c52ebd3651ff42812fe4ea74a4ed92cdd8d0452f2e83af9723581820ee07e2e9528cdc254410193d8b82f8ede7554e182c1fee104333715f253d3ad0d41
+containersize 11460
+containerchecksum 86b68e221c12ef06dc44ccfa628f244b41a7be262d9d1ea21c22829e0d1dce14e53625a069e1525a86f394e2318e4fb436b68bd1fcdd6b0a2f6dadd14b6faf04
+doccontainersize 208488
+doccontainerchecksum 58010c8d5a036bb72879b94d4c14e6ab752b56d1201e06fd6f6801782147e11cfee8302dbc7abe93373fa94f05a80c04fc3f80a44847f78c6a7e7c2c97926d86
docfiles size=63
RELOC/doc/metapost/mptrees/README.md details="Readme"
RELOC/doc/metapost/mptrees/mptrees-doc.pdf details="Package documentation"
@@ -228664,11 +229024,11 @@ binfiles arch=aarch64-linux size=4
name musixtnt.amd64-freebsd
category Package
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of musixtnt
-containersize 9252
-containerchecksum ff27dda7eb2528042622885ea77b3aa58e178bdbe3a9e174a4ec8d511287124041f1c173637b88c39cbbe575750b74c9f7b56d26bd8aceeefa9df0cbfabecd61
-binfiles arch=amd64-freebsd size=5
+containersize 8032
+containerchecksum 711105097e4c2b385da6158b16ad6f59c5c1f4542f72bd03dfa668baef9be44979b5e36a336a954ed54b0ea287ed65573d309c57371009914e2527c9062a2ba4
+binfiles arch=amd64-freebsd size=6
bin/amd64-freebsd/msxlint
name musixtnt.amd64-netbsd
@@ -228682,28 +229042,28 @@ binfiles arch=amd64-netbsd size=6
name musixtnt.armhf-linux
category Package
-revision 63092
+revision 70489
shortdesc armhf-linux files of musixtnt
-containersize 4904
-containerchecksum 7fc6a1fe89be98599a397762c1e8e2658dd6dc251bd3593383f9079ad2c7bd5ebc8ac5d0679d456b05deb57bcdece02d3d28b18c1847d4ccadf5482ea7449535
+containersize 4912
+containerchecksum 24fbedac9fe2857bf3d34ca1813d82492969078b43fe7493f9e43ab1583c775b1ad85233d09f1b583cb3dbc6f8e593bbbcdbe85fad9cae251fa9be5e35266439
binfiles arch=armhf-linux size=4
bin/armhf-linux/msxlint
name musixtnt.i386-freebsd
category Package
-revision 62206
+revision 69782
shortdesc i386-freebsd files of musixtnt
-containersize 7844
-containerchecksum 715133974ee22d4966cac03066d06c61614d8f1ac7de7c2a32788390ceed7cb8cc249264e420ee42d15f3fe8066bba910c7f66f239049e399b47e9539d11fad5
-binfiles arch=i386-freebsd size=4
+containersize 8032
+containerchecksum 53776c63c7c4c50390ecb1a9aebb4ce512afb4fda079d721e312e3877634ba5798eedf246e2d38018bcd82b43a6b4f41c03f0e65e05c79c0328db647fb111db5
+binfiles arch=i386-freebsd size=6
bin/i386-freebsd/msxlint
name musixtnt.i386-linux
category Package
-revision 62210
+revision 69782
shortdesc i386-linux files of musixtnt
-containersize 5896
-containerchecksum 2445c4f5c53d1bf026a8868fdfe432e2fb497037f06b5371bc8e697154d18669791ec19bce73c53f8dac575ef0516da5febccd82bb36cc6b848aaa40f8580a8a
+containersize 5900
+containerchecksum dc866bb3cd7f40476b4bda0cc51c60fb191223eb2f33604f75be37e5af0db025d01b7af5b6ad6cb37346d4615dd739f956e0ac7ba3eadfce69d2a26c6ddf1b7b
binfiles arch=i386-linux size=4
bin/i386-linux/msxlint
@@ -228718,38 +229078,38 @@ binfiles arch=i386-netbsd size=5
name musixtnt.i386-solaris
category Package
-revision 46829
+revision 69782
shortdesc i386-solaris files of musixtnt
-containersize 8032
-containerchecksum 5d2b47e3914b010f138a3bee7dd3dd8e3db014fc3f61bc4550076e02e5e302d21bca0fb4f2e063acdb344332abde0eef7991b62fae6c3f6b063af5fefec89d2a
+containersize 8016
+containerchecksum 149fe26dc14b27453439375dbc64a033f5be2e78ded6607c16a47999b3859e8195ecd59a7336d1f6a7c1b0228cb1722e3da0dca971863aba27355fbcb4a9d123
binfiles arch=i386-solaris size=5
bin/i386-solaris/msxlint
name musixtnt.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of musixtnt
-containersize 20052
-containerchecksum 713cfd605699b757ae93a521e34c8b2c62965f0b5dd643f06e8098475765f8c0311b4c762154ec0846470b5193210428014c81a96e9c728f75581b164ca007e4
+containersize 20080
+containerchecksum d710bfa546c2fb63a926c0ac86022c186f1c0171674cfd993d55d939b8351658bfb317247a37bff93a3bac901ab69b4fd0468d39da9a888cca63b01317203441
binfiles arch=universal-darwin size=34
bin/universal-darwin/msxlint
name musixtnt.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of musixtnt
-containersize 6324
-containerchecksum f253b3112b7e8ec677224176c241e62d37a3a578dc6f2dc638bbfcf1acc25c4b8f3432121cce65c3d0e7881aea5abde66ebb044fdebed4013f0b23293d9fc858
+containersize 6320
+containerchecksum 926ffddd09a1f420fc998aa0852b47aab131e7eed82e808965c89aca9d4943c194d9d7b99df3210db26b5e8e68f65b5bcdd4c28abd31d1b8640f8f7a2f18d1b6
binfiles arch=windows size=4
bin/windows/msxlint.exe
name musixtnt.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of musixtnt
-containersize 6144
-containerchecksum 95299f119ffeaa2f5093ff680d0c5485299c118b82f21056d991e6824c66f9598bd02389632787c0619db3bd1ccfab7cb0376aaaccbfd5e24551f38f9b63a81f
-binfiles arch=x86_64-cygwin size=5
+containersize 6096
+containerchecksum deedd59b9353bf7399e25f70915d53229888015e7793c1554a5da340889361d41aebd2def70e709a3a5b34e25310b6f5e597f1d365e57216b059e43e7a23d5df
+binfiles arch=x86_64-cygwin size=4
bin/x86_64-cygwin/msxlint.exe
name musixtnt.x86_64-darwinlegacy
@@ -228763,10 +229123,10 @@ binfiles arch=x86_64-darwinlegacy size=6
name musixtnt.x86_64-linux
category Package
-revision 62187
+revision 69782
shortdesc x86_64-linux files of musixtnt
-containersize 5660
-containerchecksum 274b7ba74422962b29955280db91398a53a96aeeae19024a2e296f615a8fc4f1aebec2ac1f07deda0c65ef632762661260b4a6da68f8e73a205fb40bbaa43ca7
+containersize 5668
+containerchecksum 58c1ddfdad13096cb9ad356d1c3506ae9ce4728fcc456af1f73ad0f2f1336ac77831e959b6f143c6c8b423130011d9472fbf46a0635a433e1de503dc00fd237e
binfiles arch=x86_64-linux size=5
bin/x86_64-linux/msxlint
@@ -228781,11 +229141,11 @@ binfiles arch=x86_64-linuxmusl size=5
name musixtnt.x86_64-solaris
category Package
-revision 46829
+revision 69782
shortdesc x86_64-solaris files of musixtnt
-containersize 8732
-containerchecksum c1472477de0d8bcc009df2dbe361043fa4f035809a8309545a75c07a248a3c83fd072cd106f1eb2b8063d76159314b27f3271717f55e625d20c735fbf86bb8c8
-binfiles arch=x86_64-solaris size=5
+containersize 9044
+containerchecksum 0cd098dca5c6211ab0ea807b52cdb22079ec9bcdd8fa322a568a7130d00f3e67b4ed3a5a6f725ff82d1646f602f1a8a662219d5fc58f0be9919bfe71b6ddd3c0
+binfiles arch=x86_64-solaris size=6
bin/x86_64-solaris/msxlint
name musuos
@@ -232451,7 +232811,7 @@ catalogue-version 0.55
name newpx
category Package
-revision 69777
+revision 69792
shortdesc Alternative uses of the PX fonts, with improved metrics
relocated 1
longdesc This package, initially based on pxfonts, provides many fixes
@@ -232462,10 +232822,10 @@ longdesc options. For proper operation, the packages require that the
longdesc packages newtxmath, pxfonts, and TeXGyrePagella be installed
longdesc and their map files enabled.
execute addMap newpx.map
-containersize 4744760
-containerchecksum 979e5e67eaf5891a96c127f9726061bb0a480388b0f67cf27bf753f0171521118f68bb82beb127bb2c18d866643830125089518436d1be56c58acf49ba0ccd75
+containersize 4744244
+containerchecksum 7023670ddda48854ab02918914ed1d9e4e3cb8eaf4b05bb1bec78661e506915e601f508760032d2a4e7ecffb2fea892ef9b1665e8f3a879cf1f7ad9ffc04b874
doccontainersize 476556
-doccontainerchecksum fcea214e98b92d697699976c245f841f87bb5a314ec738fb551e6f546e32e79fcfc0b1e78d9cf1ad5299bf691a833b2ba69aa9c917a6cb1abe891c39556123dc
+doccontainerchecksum cb36134e0c83fdaf46e1fc8c729886489666432c4515b636e260471466a9e11471044221e8089a5f614b45799e827a7c6854cad5aaa903522dbd3259c084527a
docfiles size=142
RELOC/doc/fonts/newpx/ChangesInV1.4.txt
RELOC/doc/fonts/newpx/MANIFEST-newpx.txt
@@ -232476,7 +232836,7 @@ docfiles size=142
RELOC/doc/fonts/newpx/newpxeg-crop.pdf
RELOC/doc/fonts/newpx/pxfontseg-crop.pdf
srccontainersize 392
-srccontainerchecksum 7928e84f2c5523c72a30061e99fac64c37e1c5fecbeaf6ad9aa8ddb1be55c26bb4198adb8c303afed7267d33c12f9f73336453bf32bef98c999547e7f9f4a952
+srccontainerchecksum 5c7891ad23116e78142ad6c5a8679bec069e964ac3201e162eab24f16ed2b226ca9515c7cf95c82ee6b89b2c3ada3b2fd51a2c62228729431d0d64cd14aafceb
srcfiles size=1
RELOC/source/fonts/newpx/TRK.fea
runfiles size=3691
@@ -233173,7 +233533,7 @@ catalogue-version 1.0
name newtx
category Package
-revision 70496
+revision 70491
shortdesc Alternative uses of the TX fonts, with improved metrics
relocated 1
longdesc The bundle splits txfonts.sty (from the TX fonts distribution)
@@ -233188,10 +233548,10 @@ longdesc garamondx package, thus offering a garamond-alike
longdesc text-with-maths combination.
depend kastrup
execute addMap newtx.map
-containersize 6064568
-containerchecksum 140e03a3dd5a59ee6b5a81b7cbc5531e92bd2d2296ff74df4f1805d44f6d136dde2aadb0af145f4f7f0a9e223d39122a8320b3858850fb49dd8cb59e80d692f9
-doccontainersize 974512
-doccontainerchecksum c0344d8e74e412b1ebc8b9db86579672cd878eaa004adc081c73ba48258a57e4093361237410122198f71ed0a6c3f1fd1989e9ca028118d5f93dbf9b21f6e5d4
+containersize 6063496
+containerchecksum 627805f1f2492bf50a5be469456f1c5c4e1fed267028c2e1a6a35a3c4582f4243f8aeb553a38c04efe220884921e780b431986d93dc4f82b9aa79db0a120bf85
+doccontainersize 974484
+doccontainerchecksum 35f3a9dd00ed85837e827a875a38c919fb9290af36e9fca74d0d4bc2618689e1e31375a04fa234d94cb3fdadcca28c1569b8f68565cdefa90aa0e1db781812fe
docfiles size=318
RELOC/doc/fonts/newtx/MANIFEST-newtx.txt
RELOC/doc/fonts/newtx/README details="Readme"
@@ -234338,7 +234698,7 @@ catalogue-version 1.056
name newtxtt
category Package
-revision 70403
+revision 70620
shortdesc Enhancement of typewriter fonts from newtx
relocated 1
longdesc The package provides enhanced fonts with LaTeX support files
@@ -234346,15 +234706,15 @@ longdesc providing access to the typewriter fonts from newtx. Regular
longdesc and bold weights, slanted variants and a choice of four
longdesc different styles for zero.
execute addMap newtxtt.map
-containersize 166952
-containerchecksum fe95d2c4d2ff7a83f362f55bf2579576b94251fdeb3556c2f417e0118b2dd215a705d06d79e66b9aadeca09cadd5c19f2898cbba8624ea089fef804749d350cc
-doccontainersize 338336
-doccontainerchecksum 02879af2ae05a703502966acc561df08762a9fe01a873180672652a9c931ceadcfb85d411523eb81425e7f1944f514673e8d04a208d54b27d0d26916077a81a3
+containersize 166332
+containerchecksum 7f7f4742a08266028434c4282f1e7f539cf471e54f968ee2c1573097024f94bad1d4b987c3821b33e4a546fe0f8ddad32d090e66d305ac6394cba8a82325ce40
+doccontainersize 338392
+doccontainerchecksum adca4f1811f74e114dc7d4ffbe097a54492427371d1cd0cffa9a526c409025cc644e5fde7bbe494ef660b46018cb9057cfbd57e3c69b0180d40ac885fd89fe9c
docfiles size=88
RELOC/doc/fonts/newtxtt/README details="Readme"
RELOC/doc/fonts/newtxtt/newtxtt-doc.pdf details="Package documentation"
RELOC/doc/fonts/newtxtt/newtxtt-doc.tex
-runfiles size=244
+runfiles size=245
RELOC/fonts/enc/dvips/newtxtt/tcxAec.enc
RELOC/fonts/enc/dvips/newtxtt/tcxBec.enc
RELOC/fonts/enc/dvips/newtxtt/tcxCec.enc
@@ -234530,7 +234890,7 @@ runfiles size=244
catalogue-ctan /fonts/newtxtt
catalogue-license gpl3 lppl
catalogue-topics font font-type1 font-mono font-supp font-t1enc
-catalogue-version 1.058
+catalogue-version 1.059
name newunicodechar
category Package
@@ -234779,7 +235139,7 @@ catalogue-topics font font-type1 font-decor
name nicematrix
category Package
-revision 69991
+revision 69984
shortdesc Improve the typesetting of mathematical matrices with PGF
relocated 1
longdesc This package is based on the package array. It creates PGF/TikZ
@@ -234791,10 +235151,10 @@ longdesc border matrices); control of the width of the columns; tools to
longdesc color rows and columns with a good PDF result; blocks of cells;
longdesc tabular notes; etc. The package requires and loads l3keys2e,
longdesc array, amsmath, pgfcore, and the module shapes of PGF.
-containersize 41896
-containerchecksum 936cbf7f65d1c34986bd6113e07885051e3213dfc98d4102564e0d3749bfe68a0beca8637a34da833e45ad8f5d1eb13ed6f7c75c402158e9638f4f2548ef2b8d
-doccontainersize 2500464
-doccontainerchecksum f9255154b3f69e14c82f9816a9c2b9b2a171311501c0d68904443a4ac8a05518164ff80b9428922e62fa0b62bee61557e12cfb20c9a53625c3a6ac0ed369592d
+containersize 41884
+containerchecksum 1df48634c97530279051988cd01751c4d54aabac2bef307941f5e894994b140bf632faa09053e9a54a1c366a401a7368ac325046f81a6dc0039a1c9fc2cb52c4
+doccontainersize 2499984
+doccontainerchecksum 2cb8dbc5697b14d8b0c4ef564df2f60091394acb900917503014f820d487e4f8747540eff36c9ed9b76e5454df8e73c58d2e64c209d1c4f742803c9f465c868e
docfiles size=1147
RELOC/doc/latex/nicematrix/README.md details="Readme"
RELOC/doc/latex/nicematrix/nicematrix-code.pdf
@@ -234802,8 +235162,8 @@ docfiles size=1147
RELOC/doc/latex/nicematrix/nicematrix-french.tex
RELOC/doc/latex/nicematrix/nicematrix.pdf details="Package documentation"
RELOC/doc/latex/nicematrix/nicematrix.tex
-srccontainersize 90536
-srccontainerchecksum 7ce23449d29a57d58305bd77b00de46677e39143e75580236c846cc6e572c4929374329cd58ef9a4b6747ab66e586a0665b7768232703fc9d792b59907dbe6f6
+srccontainersize 90528
+srccontainerchecksum e4d07d32b8bee7cb72d9896e95551838ee529c29fbaeea50adf3a1e93425173b0f9970a3f3f72d1ce2193a1abb713d1d65af1bc82913d6c3a51f77d713dc7a10
srcfiles size=146
RELOC/source/latex/nicematrix/nicematrix-code.dtx
RELOC/source/latex/nicematrix/nicematrix.ins
@@ -242240,7 +242600,7 @@ catalogue-version 1.03
name novel
category Package
-revision 69945
+revision 69942
shortdesc Class for printing fiction, such as novels
relocated 1
longdesc This LuaLaTeX document class is specifically written to meet
@@ -242250,10 +242610,10 @@ longdesc Built-in PDF/X is available, using new technology. The package
longdesc is well suited for detective novels, science fiction, and short
longdesc stories. It is however not recommended for creating color
longdesc picture books or dissertations.
-containersize 116564
-containerchecksum 35da534328bd371913fb43dfebb29dd1dcd88b92f1c39fad6c6248bb14982538b4babc7fa91a54a0c424cf1c3d6dc7d17dcecf5acfaa3979ca37c7fc8a45c9df
-doccontainersize 4171144
-doccontainerchecksum ecea10182e63c454a78c746946d47017d9c40592a6fcf2053319bf7fb06ccc1c0e655d213b5eed760d44e81195165cf6dea6288c8ff2aa59f5170c337f5ad114
+containersize 116532
+containerchecksum 9dce3018cabe261fc9434a69f9ea68f2b162ca828579b44ce91b379077bfbbb5c76a890eb5d2a583b4cf28c883fe366474cec4c065669258e69458cf11c3155e
+doccontainersize 4171200
+doccontainerchecksum fd51050a66ffa7c425567216fa28404b5148537cbd19272bfa27c7a6a64df6356f02aa451b154057b25b5024494980c609f10bc465ed1c535b27d1fc9eb5761b
docfiles size=1203
RELOC/doc/lualatex/novel/README.md details="Readme"
RELOC/doc/lualatex/novel/extras/NovelDeco-glyphs.pdf
@@ -243522,7 +243882,7 @@ catalogue-version 1.25
name nwejm
category Package
-revision 70606
+revision 70597
shortdesc Support for the journal "North-Western European Journal of Mathematics"
relocated 1
longdesc The bundle includes LaTeX classes and BibLaTeX styles files
@@ -243535,10 +243895,10 @@ longdesc enabling the authors to be able to work their document in
longdesc actual conditions, provide a number of tools (commands and
longdesc environments) to facilitate the drafting of documents, in
longdesc particular those containing mathematical formulas.
-containersize 4089880
-containerchecksum 1d54bf4f1ed74ca7ea51761ed8381b170e6d66e35513b272ab22267d799e8ae562c5532bbf3212a9300c0bfb19201cd999eede311387645e66ee6cf03693e98b
-doccontainersize 1584328
-doccontainerchecksum 456a5e6f5bcd21557ec0faef50fccc95f2d7f07fe26f705c88bf1ec601e94bf34847c2cc3a8763af5a65f6b2ec3183c97f8f1878bb09ca4b7f2c2997eedfe1b3
+containersize 4089792
+containerchecksum a85cfb3be68ea38bedf7a21ee2b72c1274598e98d208958b884622b43cf2d3310b89b3b265a1a988b56903d8e954a971675d2cce3539cfd65b4d2079978e8442
+doccontainersize 1584436
+doccontainerchecksum ba2e0269477698255ef53cbf23cf75e367c5e83dd5aa4d2ddc314813066691c2abd0b4fde044ff94ad281131152667e3530faf72eacde7ee4daca4944bd37e84
docfiles size=560
RELOC/doc/latex/nwejm/CHANGELOG.md
RELOC/doc/latex/nwejm/README.md details="Readme.md"
@@ -243567,8 +243927,8 @@ docfiles size=560
RELOC/doc/latex/nwejm/french/nwejm-fr.bib
RELOC/doc/latex/nwejm/french/nwejm-fr.pdf details="Package documentation (French)" language="fr"
RELOC/doc/latex/nwejm/french/nwejm-fr.tex
-srccontainersize 49924
-srccontainerchecksum 00302f0628e72c6329f03d65f57a9bb78e6e46647247801ad15d0f2785a067c0d1b84fa8ea2af02fb4c4d6c02d8d46288f6642cdaf74eb3d6bc88aceae183a6c
+srccontainersize 49908
+srccontainerchecksum 1c2940abd94c7b7d8ddc7990861dd52c00f03b6cd4690c1fb914bd01457e386c4e5a355fcc2d62509ccbdf760df17ff77b38a1996fedd3af2cc6bbecdf162f1e
srcfiles size=62
RELOC/source/latex/nwejm/nwejm-examples-template.dtx
RELOC/source/latex/nwejm/nwejm.dtx
@@ -244636,7 +244996,7 @@ catalogue-version 1.00
name oldstandard
category Package
-revision 70428
+revision 70421
shortdesc OldStandard fonts with LaTeX support
relocated 1
longdesc Old Standard is designed to reproduce the actual printing style
@@ -244652,10 +245012,10 @@ longdesc with TeX engines that directly support OpenType features, such
longdesc as XeTeX and LuaTeX, as well as traditional engines such as TeX
longdesc and pdfTeX.
execute addMap OldStandard.map
-containersize 2317308
-containerchecksum 838a3c6e29a37b060c2f5e158a7145a6119432006b213e4fb3da956d7df66e76e1fb6d963c67d4833b5d45bbdd203e689c9a54302dc3ee28de5d630b200f3dbb
-doccontainersize 1532236
-doccontainerchecksum 7933ef5fcdd97201d269547c981bbdf50ebf11b5a11d417cdd1df9f3e0f35fd5fd618a198050865746f9fcb31cedd61abeea25540d2a70bac45b0ad9065c81d5
+containersize 2319232
+containerchecksum 4ab3deff9234663585cec6cb43542c11ecea85f1fbfc301c5e09890f348d3aa3b3648a1fd326c63e71ad79e0207c2d34ff0b8fddcc78b8ea9124c00aeb978e21
+doccontainersize 1532180
+doccontainerchecksum 0ab232aa7af2a308f92701d901690d1315c64ff7cb868deca6097ed7b59c9a40fb19a781ee142e1a7af0b625870e1e867306eb06bc8478c7e36f05171d4d08be
docfiles size=459
RELOC/doc/fonts/oldstandard/AUTHORS.md
RELOC/doc/fonts/oldstandard/FONTLOG.txt
@@ -245872,7 +246232,7 @@ catalogue-topics engine omega obsolete
name omegaware
category TLCore
-revision 66186
+revision 70015
catalogue omega
shortdesc A wide-character-set extension of TeX
longdesc A development of TeX, which deals in multi-octet Unicode
@@ -245884,9 +246244,9 @@ longdesc maintenance mode only. Ongoing projects developing Omega (and
longdesc Aleph) ideas include Omega-2 and LuaTeX.
depend omegaware.ARCH
containersize 604
-containerchecksum 9978e66b66e988d49f3dea44b947585e5ec4fd61f204ee06a56a9d32df721c1bd66ab32a05c3d36ca92e740aaec2b478261f3eaf8c48c0cb30fbf9bbb410d804
-doccontainersize 147564
-doccontainerchecksum e3312826fc6f2bb7fb8f116f7d73f4f113e2b4fda8acdce29668ffc324bdc90f26dfe21becccea36e53f22707067c19116fa2942fb4165aed3d7c28da88992ce
+containerchecksum 3f7c11de9fa993140c291afe2fe83676abcfe8c1e54f73c6d98ab531f2e1eaf2d65f5d8ab365cecea4e4eda966623115daf5c0e3ad91ea66d4fdbc335f828eff
+doccontainersize 146820
+doccontainerchecksum 6a2f1a348ab48cfba8dfc22eed3c311e31ba1ed7efcbb651542c9c5efa5709528470810874a79a0b26dfec20c6d57da70bbcb468589d5311123dede389a9c6cb
docfiles size=60
texmf-dist/doc/man/man1/odvicopy.1
texmf-dist/doc/man/man1/odvicopy.man1.pdf
@@ -245912,11 +246272,11 @@ catalogue-topics engine omega obsolete
name omegaware.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of omegaware
-containersize 255244
-containerchecksum 872d4656c378c9cf70579ded13fe4cc5dad21f7255e5556e80d1877b7ae763bae2448769442575e6d66637db790c49fe0f24b7638937557db1b516145f114052
-binfiles arch=aarch64-linux size=301
+containersize 256776
+containerchecksum fa836fa1907a49988cf20c19ed0bd579960738574d739a42bb8bb92af539919cf4a8db9317d64e062b82047b5b6984b618edbfd490fb8edda92c92eebeb4bd36
+binfiles arch=aarch64-linux size=303
bin/aarch64-linux/odvicopy
bin/aarch64-linux/odvitype
bin/aarch64-linux/ofm2opl
@@ -245933,11 +246293,11 @@ binfiles arch=aarch64-linux size=301
name omegaware.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of omegaware
-containersize 295432
-containerchecksum 306e11a279b86bd96c4a366a1305575faf57d0354d147c8f59d3c8467d279f1f60f6045ce402f4bb500ff6a749bef314bac4cbf7f649b423c4a653ddcb0f24d9
-binfiles arch=amd64-freebsd size=328
+containersize 273552
+containerchecksum 6fb695a0a068f47a5b330658778fe0479b351940c723d57efaecd144a92708580220ed9e382526c5880f00ca4e9333f7064873c13f7bc31491f155b675a52d8c
+binfiles arch=amd64-freebsd size=365
bin/amd64-freebsd/odvicopy
bin/amd64-freebsd/odvitype
bin/amd64-freebsd/ofm2opl
@@ -245954,11 +246314,11 @@ binfiles arch=amd64-freebsd size=328
name omegaware.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of omegaware
-containersize 246912
-containerchecksum bbe40d3710dac0199b1cfc9e0b365b696df4ea7b3c19192cd5adebd0de094fb5551463af2078f99b00af371b8c8e7aea5814bcccf6cf2892da49c631a1435b9c
-binfiles arch=amd64-netbsd size=340
+containersize 248968
+containerchecksum afc76af519d4c796cbad32d72b54427637c274280d11f4a6cb743160cd037afc64148dc38d66f674dda3705fd36189771cd15f90546429219ab64ac8d32b70f4
+binfiles arch=amd64-netbsd size=343
bin/amd64-netbsd/odvicopy
bin/amd64-netbsd/odvitype
bin/amd64-netbsd/ofm2opl
@@ -245975,10 +246335,10 @@ binfiles arch=amd64-netbsd size=340
name omegaware.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of omegaware
-containersize 198748
-containerchecksum 2f9eab3e4a12385f68d03545e84030c775e073fb30bcb8d9d19549d0945b44bf753531a7712a510bc5e5065531523a8c9a93c07bd23d778fcc5bc2c641d45546
+containersize 199776
+containerchecksum cfa3cc6e13310b2fadef271d01c044af8a2439d7961585dfc12d8f2733eadb65c9943ff6cff7df26946c47ffc61d3091bcfc0df7f70e7241e6c676be38852fe7
binfiles arch=armhf-linux size=238
bin/armhf-linux/odvicopy
bin/armhf-linux/odvitype
@@ -245996,11 +246356,11 @@ binfiles arch=armhf-linux size=238
name omegaware.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of omegaware
-containersize 242452
-containerchecksum 8e253919c2271c0dd0f2f425afa32952fcd9b1418512c33effe47ea41619470c3e0fc986061969050f02fa300eb5592ad2a9da961abe67ef3cd9ed66ffb28c6b
-binfiles arch=i386-freebsd size=274
+containersize 273672
+containerchecksum a792622d7c4de0fee52a74b5f5d9895c6e5cf99609e544f53021f6eea8c54e4b2e2f30d1a859ea4b35d2004304e8b3a19bdd00994c655d4d77194a8a15c26a8f
+binfiles arch=i386-freebsd size=365
bin/i386-freebsd/odvicopy
bin/i386-freebsd/odvitype
bin/i386-freebsd/ofm2opl
@@ -246017,11 +246377,11 @@ binfiles arch=i386-freebsd size=274
name omegaware.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of omegaware
-containersize 243480
-containerchecksum 00e4addb302d089f0dd06a56b2f07d05a65ea40b1f72dc83325fd7408415600b5e0c8a3758ade6cff62d65f59e54b985309b5b52cfcb852188b63f779f5cfaed
-binfiles arch=i386-linux size=309
+containersize 244960
+containerchecksum 6160c04bfce7de2b0fb43fed92a5daf023bb3986ae4b6cdd9e2923857600b429aee0d4fced9a479b706a57385b17bbc020ff420db6ce54f8a41d83515528937b
+binfiles arch=i386-linux size=313
bin/i386-linux/odvicopy
bin/i386-linux/odvitype
bin/i386-linux/ofm2opl
@@ -246038,11 +246398,11 @@ binfiles arch=i386-linux size=309
name omegaware.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of omegaware
-containersize 211792
-containerchecksum d998c93ca1b122be28cd8e36eef2c27e9a2d3844ee937b89dfbbe60506e57a122dc47a89d2bd4c7136c5c4c5a6bec9475f7c138204b8f182a019c1f7c07af5f8
-binfiles arch=i386-netbsd size=318
+containersize 213488
+containerchecksum ab2b4f168ec1f6d5a388c0552174a02f555b0362e35c4483f12d8ed88943592262434a84a941a26af5697c42a78a6598050c7d5388bd8abe42a9ce903800c99a
+binfiles arch=i386-netbsd size=323
bin/i386-netbsd/odvicopy
bin/i386-netbsd/odvitype
bin/i386-netbsd/ofm2opl
@@ -246059,11 +246419,11 @@ binfiles arch=i386-netbsd size=318
name omegaware.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of omegaware
-containersize 258656
-containerchecksum 30b7367d4fc1a706c30d5e239db626747b72bf990e6194df25dea4f4d116aa7233e8440169983d42d7ba5b970903730a23094e0414afb051ff2a4cd1ed245f71
-binfiles arch=i386-solaris size=279
+containersize 267136
+containerchecksum c8346bd514c209756139d2e647e0dc27ec8b00f8d3408d1cd050f5b8b73ce341350c8431cb9ff0278eddc60a82487e8eef6406ae6410c2520d8d5037efd6ab01
+binfiles arch=i386-solaris size=289
bin/i386-solaris/odvicopy
bin/i386-solaris/odvitype
bin/i386-solaris/ofm2opl
@@ -246080,11 +246440,11 @@ binfiles arch=i386-solaris size=279
name omegaware.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of omegaware
-containersize 540364
-containerchecksum fce68a7f3d7841eb9872f3b1de5eeebe2992e4999ff50354a7601c1ef6a356751b4e497690e7297beecfe85d3fc9281735aa2bc175ca804e683ec6247d632544
-binfiles arch=universal-darwin size=801
+containersize 543928
+containerchecksum ca291c779278a801d002275fc234318b11e3b81157c1197075938a6e1a7d46b62f243538e3763f47345b1e98721bf48dd02c6cf0515715a438f72844f2303799
+binfiles arch=universal-darwin size=805
bin/universal-darwin/odvicopy
bin/universal-darwin/odvitype
bin/universal-darwin/ofm2opl
@@ -246101,10 +246461,10 @@ binfiles arch=universal-darwin size=801
name omegaware.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of omegaware
-containersize 203144
-containerchecksum adcbe7039a7a669ece7e15fad73731a9bf9dbf16eb294f5c0c42ad2eaafd92c01e4fcde0e3f7c29101ad077d4fe4cb1e0ed3a77efd55457f5444b3ccf179bbdc
+containersize 203020
+containerchecksum 8b31b03302a8369a406db73555f3f7895795d5bd274fd94238b917e3dfb7d793fd9cea4cec06968a61810b0f6f7c5ea441ca6c986f4683560d9aa3a5a2213d6e
binfiles arch=windows size=159
bin/windows/odvicopy.exe
bin/windows/odvitype.exe
@@ -246122,11 +246482,11 @@ binfiles arch=windows size=159
name omegaware.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of omegaware
-containersize 189172
-containerchecksum c1daf6e178581343b4dcaded07901acd4e5a4f770af82feacf7fa894a6a07221a5a44cadfcc706df8f0e30546b976dacc57e77b9967f6649de4c937fb7b1a6b9
-binfiles arch=x86_64-cygwin size=146
+containersize 189228
+containerchecksum 5e0115fd0c719ad2e26b404840f53cb8263ecdf5eba6e5b02ed85f9bdc135f18b3b42a2a0366c73cbd65f68aa371cc553f3f4a33306519d0c9ab33658e98a14b
+binfiles arch=x86_64-cygwin size=143
bin/x86_64-cygwin/odvicopy.exe
bin/x86_64-cygwin/odvitype.exe
bin/x86_64-cygwin/ofm2opl
@@ -246143,11 +246503,11 @@ binfiles arch=x86_64-cygwin size=146
name omegaware.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of omegaware
-containersize 255872
-containerchecksum bc1c0bfef6e021b6bb89be55fefc2375d0b6ea5993e3ff0b9f4cf98e16a4852a457efd505946bd8f59798ae2d460dac81cb5b2166b277dc578ee01b6af1aba59
-binfiles arch=x86_64-darwinlegacy size=274
+containersize 257940
+containerchecksum 5f7fe88f980d209e4b1346b554cbc1f5fdd88e534547fa8c58906e199953c691d583e53f1626b9f1e63312e78324a8f8e59ba2ee9eb5ef4b44d51880cf01b2ee
+binfiles arch=x86_64-darwinlegacy size=277
bin/x86_64-darwinlegacy/odvicopy
bin/x86_64-darwinlegacy/odvitype
bin/x86_64-darwinlegacy/ofm2opl
@@ -246164,11 +246524,11 @@ binfiles arch=x86_64-darwinlegacy size=274
name omegaware.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of omegaware
-containersize 261872
-containerchecksum 9fc87d923d7580cd29751591c07085933e549da10e857aba98abf34e91a69c733636a33c8ee1e20aab4bed69b74025c745de65fa21b044d3b6adcf870e928fff
-binfiles arch=x86_64-linux size=281
+containersize 263640
+containerchecksum 76f1cd503d5ab92720f8f552ad74ef73e9667f75de8c9e009d34539619714779a8d9c5a25cbd8e06aeede666db551e1fa3e0e56172d199c928a2a6fd6e075695
+binfiles arch=x86_64-linux size=283
bin/x86_64-linux/odvicopy
bin/x86_64-linux/odvitype
bin/x86_64-linux/ofm2opl
@@ -246185,11 +246545,11 @@ binfiles arch=x86_64-linux size=281
name omegaware.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of omegaware
-containersize 274284
-containerchecksum 9aa9c35139bdb43f390347981071b190b400c4d5dfd5203d8fe474ba75ffd876a108ee1b340f2a02e03b55b9053e2252c230f036d4a83ebec392dfd59b93d55e
-binfiles arch=x86_64-linuxmusl size=290
+containersize 276120
+containerchecksum 9adb55b727bc78cf3dec8facaefbd2272a9f654f157ddd898498b0745f03ff07abfeda5304eb2efe38e4875a0b5cb50b4bc3a5407be581c308c288dc19476d81
+binfiles arch=x86_64-linuxmusl size=292
bin/x86_64-linuxmusl/odvicopy
bin/x86_64-linuxmusl/odvitype
bin/x86_64-linuxmusl/ofm2opl
@@ -246206,11 +246566,11 @@ binfiles arch=x86_64-linuxmusl size=290
name omegaware.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of omegaware
-containersize 294764
-containerchecksum 5963d99157b03169b7017f0deeb64a5c172fc7ed5b6ff2027c65a861df7490663fa4551883107052075b3c4d2920d673c5cd1a0e176151ba0c943d3cb7423409
-binfiles arch=x86_64-solaris size=310
+containersize 304964
+containerchecksum 96e9305c5c7e143360e9917243123d25837a4c9fb253d2d2d70a0c86747ee44fe5a317a73330a7b0c7b860d4b08b29ab0b1c0bdfdf24a3c7b76f219cc70ad4cc
+binfiles arch=x86_64-solaris size=328
bin/x86_64-solaris/odvicopy
bin/x86_64-solaris/odvitype
bin/x86_64-solaris/ofm2opl
@@ -247918,7 +248278,7 @@ catalogue-version 1.0
name optex
category Package
-revision 69864
+revision 69861
shortdesc LuaTeX format based on Plain TeX and OPmac
longdesc OpTeX is a LuaTeX format based on Plain TeX macros with power
longdesc from OPmac (fonts selection system, colors, external graphics,
@@ -247935,10 +248295,10 @@ depend optex.ARCH
depend rsfs
depend unicode-data
execute AddFormat name=optex engine=luatex options="optex.ini" fmttriggers=amsfonts,cm,ec,hyphen-base,lm,rsfs,unicode-data
-containersize 857192
-containerchecksum f8c0c0ac739e52ea2e468041b50a690999ed7c7ad4ceddc6a915946c6679e60fe4919b7f1d8b0cba49f2e47e54137e0c7a92ebb92ce7ec0ffbb2e3b7cce5ed9a
-doccontainersize 1902384
-doccontainerchecksum 0b807209aa67fd18f6c40baf4ccf4e1faa0e4ef28c25df16569f266cf6d3d05e318a25e2af623db92832ff124cde5c7ec81638ae50bd9211f61acd52347701eb
+containersize 856604
+containerchecksum fa0514faf2fadc2a07e07b9044a33cb03f615de682b7085ab1d83850176f69cde0d35a514242adaa1f96686f100a4a5259334615d0aef2d92e53311ec5fe4745
+doccontainersize 1902344
+doccontainerchecksum a59ae4f16bd7f857cd3e78c7ccf5aee3a221b21a9bdacaff0d25feacb96bd7178c1b2dd4bc0e63d2a3f36d7b0a1000cf8a2a2209f0e07bdcde313eb34cdba410
docfiles size=532
texmf-dist/doc/man/man1/optex.1
texmf-dist/doc/man/man1/optex.man1.pdf
@@ -252254,7 +252614,7 @@ catalogue-version 1.05
name patgen
category TLCore
-revision 66186
+revision 70015
shortdesc Generate hyphenation patterns
longdesc Patgen takes a list of hyphenated words and generates a set of
longdesc patterns that can be used by the TeX 82 hyphenation algorithm.
@@ -252269,9 +252629,9 @@ longdesc maintained as part of TeX Live.
depend kpathsea
depend patgen.ARCH
containersize 780
-containerchecksum f37ecebfd74a30b2f4fcba5db893b31e7672f2d91d2be7f003bf625512dd54be056a23165ba8b1f5ed2165595405220df20dbd711e63a3be9901424aaf1fb0de
-doccontainersize 28688
-doccontainerchecksum c7bf5af0965cb675a82ee13c6ec467f88395438d07d59379f4850a36c783cfd6661d6fa6493e67bf39e78be615e3148cda9452003b5e9f5d5ceb1fbd305d4ee6
+containerchecksum c20b942497c7db36e71ec37b1e25548f24fa14784c92738dfecb617d600187ff39e11381e0e6dc3a7f5b6c96956ce9e8410456964afe51ce78322a0474d0947e
+doccontainersize 28680
+doccontainerchecksum 8eade1e1879370afdfb02ee0cf8779f92e34139189ba15b2dabc022da82a1f66b4fff8eac9acb23a4c9cd4e2659ac3e36845bb2765f87ccbf8d578e83269df92
docfiles size=10
texmf-dist/doc/man/man1/patgen.1
texmf-dist/doc/man/man1/patgen.man1.pdf
@@ -252286,137 +252646,137 @@ catalogue-version 2.4
name patgen.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of patgen
-containersize 19196
-containerchecksum ed22726b7419133361760db84898923f1a548d51e96b3b63ff8b074ed803d9a2e31a775aa1b11efd969084c8841ee3823e6f036453583c3235f6dcb3b3314902
+containersize 19192
+containerchecksum 241b6348d6c6735bca29e960da0d33a7796a12733682fc1481ad932ad22625c83b69d8a60be3cc3aacf2472dd23cacf446843540efa097a44c9c1b84b932019a
binfiles arch=aarch64-linux size=12
bin/aarch64-linux/patgen
name patgen.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of patgen
-containersize 23268
-containerchecksum 48409af534efb3cdf9db28e238e2a52fc83d276d0b24401ca9745bdcff82db81fdbdd79d66173eceb89bdf9e91d86bbc7d1c1b0acedf32947763bd40560dd36a
+containersize 19788
+containerchecksum ac02fa7353af31b77fabfded54cbc701303c3d9d61ff68b017709b818e788a33b474269b0e9c0422129677460a49823eced666a29652dd5fe018756e06b4f701
binfiles arch=amd64-freebsd size=14
bin/amd64-freebsd/patgen
name patgen.amd64-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc amd64-netbsd files of patgen
-containersize 19052
-containerchecksum f6d7cd164548708b7a3cf6b412019b4aedc84a03c1d51cc4a022638b6ba39d88f911a5e6271254616baa2da60b7d35a38c32e1294b2ab83462f5ad947b7399fb
+containersize 19064
+containerchecksum 5d80871cc1543c61ee369c0a6d54010b1c6c43d18277dc854b620caeeb009577104c6d6e5ca92871cf4a4354d076a962776076f68ae0200c416359f1cae30d17
binfiles arch=amd64-netbsd size=13
bin/amd64-netbsd/patgen
name patgen.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of patgen
-containersize 15760
-containerchecksum 129df12c5a73e695d484fd102e3aa9fcc6d9b68ef19059f2a3c7d7cb9dde747e64307c336a9b8a4ef09315b74ed2c17d8c6dfd6b79afaa7567230aa80ce6d886
+containersize 15776
+containerchecksum 211ea4b2e923140e6d0fbd861e07d242eb5c4271bd74359cd0d087643b84e1595360c40c81381a68f79c9f0449b72e38e49100bec65d17c706ec8b948faa436e
binfiles arch=armhf-linux size=9
bin/armhf-linux/patgen
name patgen.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of patgen
-containersize 19396
-containerchecksum e71a4741239fa29d6b76f2a95c7978fd6d3c67207bff787da5e87a119269ac77ef65b50a84dc059545ec70167a73183b31d2d674222ba5edf2eab52b9b9fee72
-binfiles arch=i386-freebsd size=11
+containersize 19796
+containerchecksum 72c64f52c73f5b620ee12939ad578ed09e79b731113627f597d804c828768cdf6c62e3e3a384c22708fdd46d9eb28496a169d300b503fa91f3f1c2ef86fc6f41
+binfiles arch=i386-freebsd size=14
bin/i386-freebsd/patgen
name patgen.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of patgen
containersize 18192
-containerchecksum 7e8bec2b86bc8b2c5e1c0266346287ba6fee0f0de3e31c768db488511bc9ee4444c38a87df7f76fe9437cbd39bf16e0c1e96729429940b489c683cdd6893dd31
+containerchecksum c51d7e3aba293e9fcd450177453ed516638e8f3cfa9d7754467a98fe42fe7c69cfe4333be305db0b5be98798a0bfea915812c386a40582338e108d752724844f
binfiles arch=i386-linux size=11
bin/i386-linux/patgen
name patgen.i386-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc i386-netbsd files of patgen
-containersize 16436
-containerchecksum 64f2153bd15f57329c00545e34003209bc5e2092a2c0c891c415335cf5235bf3f66e4d65108742fceadd52048a9ef88f0ab1a0198640120a4493be184bbcfb53
+containersize 16428
+containerchecksum eac6373c08229d81ca6a7a732ae8da390c0bbe8177eab327131b0984fc395b61ce201bfa69c2cdb7fa5a97ae700115dc7d115dde6d0da5d09369e2de41850543
binfiles arch=i386-netbsd size=12
bin/i386-netbsd/patgen
name patgen.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of patgen
-containersize 20536
-containerchecksum 4a96511e00de18fa3c59d70c6e6ff9c5bf8243c5e5599a3967130d78d7854a9cfde9c7bf69b055d55262cd38b535a585e0ff3c23d5f63e7d7e1726edd6b1735f
+containersize 20928
+containerchecksum ebaaef7da1e590659b2db2d7be21b6d3fe03c1757e648ec1f756ff36d7969825e019bbec6f9ea8b45861e469c402cfc77460229946cd5638797757fded4ad63a
binfiles arch=i386-solaris size=12
bin/i386-solaris/patgen
name patgen.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of patgen
-containersize 48196
-containerchecksum 61c5b5171607b902a8e26201c9bb2cea01c5226ed9229bbb69c0b60084f513e3d307a2eff18b7a82033437ad159c4bdd3cd06935a3309157e250b8df20181783
+containersize 48824
+containerchecksum a133ab6c1dd6f3f7ceaa67ac45400cfa49a24762c0732bf0dadb5c31114c6c5fa065456ecc0463021f8c03ac94d223e9b3d8a654680e43529cf2c0bf608ff803
binfiles arch=universal-darwin size=55
bin/universal-darwin/patgen
name patgen.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of patgen
-containersize 15628
-containerchecksum 3959cb9c2f2e0ca1c65a941769bc7bd44da92c1c29efa203b898089017dfff2924232022ada841f4832059c39445baff7ec485236804f6f6a9c46627b1c355e1
+containersize 15644
+containerchecksum eccd2f7e97906fd6df9b04439fb13deaeda8e2c1d99386026831d1cdfa33e63bcd114728effbf72d7e28cb94eb8142cce4b591b1b9a00423c742e0d10f7301dd
binfiles arch=windows size=8
bin/windows/patgen.exe
name patgen.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of patgen
-containersize 15320
-containerchecksum 238a398751f8dc880f1a4b84816954801c6da0f51a21ec2e52164dc61304a6f5fa224c50caa564da5a4fcaf3c3e9342da7030d147bc770bbda7805248b6f0ab4
+containersize 15292
+containerchecksum ee661c0c72730c952ffbf48ca0dd443feb55e4e05792e1d6c27c48798cd175d13a05a621b2002269d6613732350df3d672f71cfdf8040bbbf0f79b060a695a4d
binfiles arch=x86_64-cygwin size=9
bin/x86_64-cygwin/patgen.exe
name patgen.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-darwinlegacy files of patgen
-containersize 21176
-containerchecksum 96ecf3614cc98fd7b7770953c6bf1fb9bfefa71145331d2d7390f6d5c236c09e619eba2b975092110bdf505f8bbd4d33579543c843cdbbbe873713d01411fe12
+containersize 21164
+containerchecksum 03a1682c685f03a645d4882114cdab816e169f86eafffa11a60cf94db7e2c9545a34592df9ccfc61dfafb9d48a9334d6c59681d51df1ae748d8f1ba10449f395
binfiles arch=x86_64-darwinlegacy size=13
bin/x86_64-darwinlegacy/patgen
name patgen.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of patgen
-containersize 17980
-containerchecksum 1429afec5cc802eb8f8d09d281c4f05d5a3c2918f944dda99df9fb2baa2b5463b21316a23f633756343133f44c2fecbe24eb543c57058db40457b2520d3a509f
+containersize 17996
+containerchecksum 6ba1402c6d7b87df9ae2189dca770f55d8b1c84ac76079c92c4cc9742a4118f4c438b4d21883952805ee4f48a6dfa42e4c76439fd6c270eb0aa25cab4951fc7d
binfiles arch=x86_64-linux size=10
bin/x86_64-linux/patgen
name patgen.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 69784
shortdesc x86_64-linuxmusl files of patgen
-containersize 22180
-containerchecksum a8e7629678cb51af95e0d6189e1c3a27c194f9d4880dbbb395c61b9ed5ce3bebd671d3e99f57d35118363b958e3c138c44f5ff7882297be5783f4627bba4eea3
+containersize 22184
+containerchecksum 1af13833c76934e1e73889683170c094318b4248119621f2508b410740423d6a0c2b5661d1b9e42496f09cdaeb1a48c95cd6235afb72a786303ab200defb0739
binfiles arch=x86_64-linuxmusl size=12
bin/x86_64-linuxmusl/patgen
name patgen.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of patgen
-containersize 22700
-containerchecksum 498708bc8273b63ebfa006260d73f5905bd666e3746e16f3ecda16203e09f875204c4999bb66f64826110fcda5b830666da01c89cddbb66a66e975ea2a33fc4e
-binfiles arch=x86_64-solaris size=13
+containersize 23396
+containerchecksum ff15fb0af8a96dee9daedde46f180db1a91252fbb7bd438961287ee3e71baa4863a4f3ae79de7d4bcb2c6f73db2b2d01f8cd5bae8a371172db72214f9f9e1c52
+binfiles arch=x86_64-solaris size=14
bin/x86_64-solaris/patgen
name patgen2-tutorial
@@ -253933,7 +254293,7 @@ catalogue-version 0.13
name pdfmanagement-testphase
category Package
-revision 70328
+revision 70303
shortdesc LaTeX PDF management testphase bundle
relocated 1
longdesc This is a temporary package, which is used during a test phase
@@ -253946,10 +254306,10 @@ longdesc allow users and package authors to safely test the code. At a
longdesc later stage it will be integrated into the LaTeX kernel (or in
longdesc parts into permanent support packages), and the current
longdesc testphase bundle will be removed.
-containersize 54552
-containerchecksum 3dde6bdb63f0758ccdaf62f6ad928e241afb7e7033e05c7d40ff36a2eb526ab1fdde01fddfb96a11856aa59a29272dce2740456c72fd23ce0e450f4f48195448
-doccontainersize 8508800
-doccontainerchecksum 337bea25f8e865fbb70b86318bb806210e8f9e284fb0cd03d11e8998601f9e4d627d616e74f5d9bd23a171700b17e7eb4b3c8ebfb07da8e8e66c0bc72dee0d97
+containersize 54496
+containerchecksum 42f1cd67fb067244cdbed5c1a982688dd41cae88013fe0bc7a486c347d04e8b63945d41251fc5bab87a0d9c48d306ca245d9f491e2e3ae10b83c2a47da166826
+doccontainersize 8508844
+doccontainerchecksum 6c7b36bd128a987891e94c5e07e3e8da28a35f873cbc2e87b2f65b48529a37d1058dd89c0bff6901eb08dc7bdfd2471984524c0a7edf719b61af845b6a65871e
docfiles size=2799
RELOC/doc/latex/pdfmanagement-testphase/CHANGELOG.md
RELOC/doc/latex/pdfmanagement-testphase/README.md details="Readme"
@@ -253973,8 +254333,8 @@ docfiles size=2799
RELOC/doc/latex/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
RELOC/doc/latex/pdfmanagement-testphase/pdfmanagement-testphase.pdf details="Package documentation"
RELOC/doc/latex/pdfmanagement-testphase/update-metadata.txt
-srccontainersize 140472
-srccontainerchecksum 4c23bb2485c3fbf18beaabe0cc219faa28400a9178703f983e81d8ec412e597b0ac48c98b1ab6e6c188cfae23ea675d2fa077740684181d812e082228cff14dc
+srccontainersize 140476
+srccontainerchecksum 94c0756dccf4a7ec9c8f5ee603c9f28819913b5e7e382991f6e49708ce07057d472c2a64844447cdf8aa34bd7c7313297f2006bacbbb85b44b6cbe990f446160
srcfiles size=204
RELOC/source/latex/pdfmanagement-testphase/hyperref-generic.dtx
RELOC/source/latex/pdfmanagement-testphase/l3backend-testphase.dtx
@@ -254479,7 +254839,7 @@ catalogue-topics debug-supp
name pdftex
category TLCore
-revision 66243
+revision 70501
shortdesc A TeX extension for direct creation of PDF
longdesc An extension of TeX which can directly generate PDF documents
longdesc as well as DVI output. All current free TeX distributions
@@ -254500,11 +254860,11 @@ execute AddFormat name=etex engine=pdftex patterns=language.def option
execute AddFormat name=pdfetex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *pdfetex.ini" fmttriggers=cm,dehyph,etex,hyph-utf8,hyphen-base,knuth-lib,plain,tex-ini-files
execute AddFormat name=pdftex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *pdfetex.ini" fmttriggers=cm,dehyph,etex,hyph-utf8,hyphen-base,knuth-lib,plain,tex-ini-files
execute addMap dummy-space.map
-containersize 39548
-containerchecksum c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e
-doccontainersize 2094928
-doccontainerchecksum d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e
-docfiles size=989
+containersize 39552
+containerchecksum 86424974e5f54ae5dd07a44af6b220f0a7d53988c5cebc450a8d1c6b8280d771e86dd3d5957649aaa3b73530435cf3794a5ed6c13febf9717269a994bf07b7f3
+doccontainersize 2524240
+doccontainerchecksum 0143e29ea1b47fd7ee143f506c7e79681046b8dfae857d93986b39bda65fdbcef3a99aab86183223cbafd8164faf06e22292fc9b3894627ebf7f77f56a48f200
+docfiles size=1400
texmf-dist/doc/man/man1/pdfetex.1
texmf-dist/doc/man/man1/pdfetex.man1.pdf
texmf-dist/doc/man/man1/pdftex.1
@@ -254514,13 +254874,19 @@ docfiles size=989
texmf-dist/doc/pdftex/manual/ChangeLog
texmf-dist/doc/pdftex/manual/Makefile
texmf-dist/doc/pdftex/manual/README
- texmf-dist/doc/pdftex/manual/makefiles.cmd
+ texmf-dist/doc/pdftex/manual/incl/fdl-1.2.tex
+ texmf-dist/doc/pdftex/manual/incl/ini-etex.txt
+ texmf-dist/doc/pdftex/manual/incl/ini-pdfetex.txt
+ texmf-dist/doc/pdftex/manual/incl/pdfmin-crop.pdf
+ texmf-dist/doc/pdftex/manual/incl/pdfmin-fmt.tex
+ texmf-dist/doc/pdftex/manual/incl/pdfmin-src.tex
+ texmf-dist/doc/pdftex/manual/incl/pdfmin-src.txt
+ texmf-dist/doc/pdftex/manual/incl/pdftex-help.txt
+ texmf-dist/doc/pdftex/manual/incl/pdftex-syntax.tex
+ texmf-dist/doc/pdftex/manual/incl/pdftexconfig.txt
texmf-dist/doc/pdftex/manual/pdftex-a.pdf details="User manual"
- texmf-dist/doc/pdftex/manual/pdftex-i.tex
- texmf-dist/doc/pdftex/manual/pdftex-syntax.txt
- texmf-dist/doc/pdftex/manual/pdftex-t.tex
- texmf-dist/doc/pdftex/manual/pdftex-w.tex
- texmf-dist/doc/pdftex/manual/syntaxform.awk
+ texmf-dist/doc/pdftex/manual/pdftex.tex
+ texmf-dist/doc/pdftex/manual/pdftexmanual.cls
texmf-dist/doc/pdftex/manual/syntaxform.pl
texmf-dist/doc/pdftex/samplepdftex/README
texmf-dist/doc/pdftex/samplepdftex/cmr10.103
@@ -254581,12 +254947,101 @@ docfiles size=989
texmf-dist/doc/pdftex/tests/11-omitcharset/test-omitcharset.tex
texmf-dist/doc/pdftex/tests/12-pdf2/Makefile
texmf-dist/doc/pdftex/tests/12-pdf2/incl1.tex
+ texmf-dist/doc/pdftex/tests/12-pdf2/incl2.5.tex
texmf-dist/doc/pdftex/tests/12-pdf2/incl2.tex
texmf-dist/doc/pdftex/tests/12-pdf2/test-compress2.tex
texmf-dist/doc/pdftex/tests/12-pdf2/test-doc1incl2.tex
+ texmf-dist/doc/pdftex/tests/12-pdf2/test-doc1incl25.tex
texmf-dist/doc/pdftex/tests/12-pdf2/test-doc2incl1.tex
texmf-dist/doc/pdftex/tests/12-pdf2/test-doc2incl2.tex
texmf-dist/doc/pdftex/tests/12-pdf2/test-pdfmajor.tex
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/8r.enc
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/Makefile
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8a.pfb
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8r+20.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8r-20.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8r.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8t+20.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8t+20.vf
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8t-20.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8t-20.vf
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8t.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/bchr8t.vf
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/cmr10.pfb
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/cmr10.tfm
+ texmf-dist/doc/pdftex/tests/13-vf-font-expansion-bug/vfexp.tex
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/.gdb_history
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/.gdbinit
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/Makefile
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/cmr10.tfm
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/f.tex
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/rebuild.sh
+ texmf-dist/doc/pdftex/tests/14-pdfadjustinterwordglue-segfault/run.sh
+ texmf-dist/doc/pdftex/tests/15-startlink-boxing/Makefile
+ texmf-dist/doc/pdftex/tests/15-startlink-boxing/test-different-levels.tex
+ texmf-dist/doc/pdftex/tests/16-nolink-special/Makefile
+ texmf-dist/doc/pdftex/tests/16-nolink-special/fancyhdr.sty
+ texmf-dist/doc/pdftex/tests/16-nolink-special/nolink-example.tex
+ texmf-dist/doc/pdftex/tests/16-nolink-special/nolink-pdftex.pdf
+ texmf-dist/doc/pdftex/tests/16-nolink-special/nolink-pdftex.tex
+ texmf-dist/doc/pdftex/tests/16-nolink-special/nolink-xetex.pdf
+ texmf-dist/doc/pdftex/tests/16-nolink-special/nolink-xetex.tex
+ texmf-dist/doc/pdftex/tests/17-fake-space-bug/Makefile
+ texmf-dist/doc/pdftex/tests/17-fake-space-bug/f.tex
+ texmf-dist/doc/pdftex/tests/18-ttf2afm-bug/Makefile
+ texmf-dist/doc/pdftex/tests/18-ttf2afm-bug/SourceCodePro-Regular-latest.ttf
+ texmf-dist/doc/pdftex/tests/18-ttf2afm-bug/SourceCodePro-Regular-working.ttf
+ texmf-dist/doc/pdftex/tests/18-ttf2afm-bug/ec-uni.enc
+ texmf-dist/doc/pdftex/tests/19-letterspacefont/Makefile
+ texmf-dist/doc/pdftex/tests/19-letterspacefont/f.tex
+ texmf-dist/doc/pdftex/tests/19-letterspacefont/f2.tex
+ texmf-dist/doc/pdftex/tests/20-autokern/Makefile
+ texmf-dist/doc/pdftex/tests/20-autokern/f.tex
+ texmf-dist/doc/pdftex/tests/21-structdest/Makefile
+ texmf-dist/doc/pdftex/tests/21-structdest/test-structdest.tex
+ texmf-dist/doc/pdftex/tests/22-showstream/Makefile
+ texmf-dist/doc/pdftex/tests/22-showstream/test-showstream-basic.tex
+ texmf-dist/doc/pdftex/tests/22-showstream/test-showstream-only.tex
+ texmf-dist/doc/pdftex/tests/23-omit-info-dict/Makefile
+ texmf-dist/doc/pdftex/tests/23-omit-info-dict/f.tex
+ texmf-dist/doc/pdftex/tests/24-cant-read-gentium/GentiumPlus-Regular.ttf
+ texmf-dist/doc/pdftex/tests/24-cant-read-gentium/Makefile
+ texmf-dist/doc/pdftex/tests/24-cant-read-gentium/gentium-ttf.tex
+ texmf-dist/doc/pdftex/tests/24-cant-read-gentium/texnansi-gentiumplus-regular.tfm
+ texmf-dist/doc/pdftex/tests/25-pdfomitprocset/Makefile
+ texmf-dist/doc/pdftex/tests/25-pdfomitprocset/f.tex
+ texmf-dist/doc/pdftex/tests/25-pdfomitprocset/f2.tex
+ texmf-dist/doc/pdftex/tests/25-pdfomitprocset/f3.tex
+ texmf-dist/doc/pdftex/tests/25-pdfomitprocset/f4.tex
+ texmf-dist/doc/pdftex/tests/26-show-pdfdest-struct/Makefile
+ texmf-dist/doc/pdftex/tests/26-show-pdfdest-struct/f.tex
+ texmf-dist/doc/pdftex/tests/27-late-shipout/Makefile
+ texmf-dist/doc/pdftex/tests/27-late-shipout/test-shipout.pdf
+ texmf-dist/doc/pdftex/tests/27-late-shipout/test-shipout.tex
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/Makefile
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/fake-interword-space.tex
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/Makefile
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/pdftexspace.pfb
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/pdftexspace.pl
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/pdftexspace.ps
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/pdftexspace.tfm
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/try-space.pdf
+ texmf-dist/doc/pdftex/tests/28-fake-interword-space-updated/pdftexspace/try-space.tex
+ texmf-dist/doc/pdftex/tests/29-Invalid-unicode-ranges/Makefile
+ texmf-dist/doc/pdftex/tests/29-Invalid-unicode-ranges/f.tex
+ texmf-dist/doc/pdftex/tests/30-compositecharset/Makefile
+ texmf-dist/doc/pdftex/tests/30-compositecharset/compositechars.tex
+ texmf-dist/doc/pdftex/tests/31-CharSet-miss-composite-chars/Makefile
+ texmf-dist/doc/pdftex/tests/31-CharSet-miss-composite-chars/f.tex
+ texmf-dist/doc/pdftex/tests/32-type1-segfault/Makefile
+ texmf-dist/doc/pdftex/tests/32-type1-segfault/cmr10-corrupt.pfb
+ texmf-dist/doc/pdftex/tests/32-type1-segfault/cmr10.tfm
+ texmf-dist/doc/pdftex/tests/32-type1-segfault/type1-segfault.tex
+ texmf-dist/doc/pdftex/tests/33-error-w-text-extraction-on-big-endian/Makefile
+ texmf-dist/doc/pdftex/tests/33-error-w-text-extraction-on-big-endian/f.tex
+ texmf-dist/doc/pdftex/tests/34-pdf-inclusion/Makefile
+ texmf-dist/doc/pdftex/tests/34-pdf-inclusion/doc.tex
+ texmf-dist/doc/pdftex/tests/34-pdf-inclusion/shadowbox.pdf
texmf-dist/doc/pdftex/tests/Common.mak
runfiles size=68
texmf-dist/fonts/map/dvips/dummy-space/dummy-space.map
@@ -254759,11 +255214,11 @@ binfiles arch=x86_64-solaris size=1
name pdftex.aarch64-linux
category TLCore
-revision 66237
+revision 70276
shortdesc aarch64-linux files of pdftex
-containersize 834104
-containerchecksum fe7d8aac8b48e44ca6a226bfedc8a894978a5f02cdace1c993f29ed8bb6537d389654fdefe4fd9a8051466a90b49f5cc08b22c2e3591fc0486f36db84c8feb8f
-binfiles arch=aarch64-linux size=662
+containersize 834584
+containerchecksum ffd46299a93bb1bb286f411eea624168619bcc2cd7a35f3785e57da15f0eb8f4102a6625b0042f781f4fd018e46af94500520b92b8b3586381e25f58a2f0eba1
+binfiles arch=aarch64-linux size=663
bin/aarch64-linux/etex
bin/aarch64-linux/pdfetex
bin/aarch64-linux/pdftex
@@ -254771,11 +255226,11 @@ binfiles arch=aarch64-linux size=662
name pdftex.amd64-freebsd
category TLCore
-revision 66084
+revision 70276
shortdesc amd64-freebsd files of pdftex
-containersize 937648
-containerchecksum 82033e2761c034d8bb628ee6a99ecc25e33a949980bc25456387dd6755705a21e6d70f66bf7d7721abc9c6fa122809f32016661587ef634c2537a0b10ca77199
-binfiles arch=amd64-freebsd size=635
+containersize 764460
+containerchecksum 3358705022934b13b3c3153c95d3200162e56b3ab74469868cc8801f9d50cba33b7bfecf1deb47fd9fea1ab9d973e8a9b6d3674da1a58bfe4e8cba4d1c8c8c68
+binfiles arch=amd64-freebsd size=703
bin/amd64-freebsd/etex
bin/amd64-freebsd/pdfetex
bin/amd64-freebsd/pdftex
@@ -254783,11 +255238,11 @@ binfiles arch=amd64-freebsd size=635
name pdftex.amd64-netbsd
category TLCore
-revision 66083
+revision 70286
shortdesc amd64-netbsd files of pdftex
-containersize 759920
-containerchecksum fe3ea35e0c9a2f950293af856b38017c22791c5d5c8cebea33dbbb03589e76b1dd023b6339b983f1330f266665f062e67bb0cb090b4614b7df629511fc43ed22
-binfiles arch=amd64-netbsd size=699
+containersize 760840
+containerchecksum 87207c10c49c6a5f7ee5d4fdbc987ba653a1af86621e7f1f8ad7af37c1a807adcdb3999717422dd15a6957a84e95c84769a3059d24fc7bf83f254defa26ac251
+binfiles arch=amd64-netbsd size=700
bin/amd64-netbsd/etex
bin/amd64-netbsd/pdfetex
bin/amd64-netbsd/pdftex
@@ -254795,10 +255250,10 @@ binfiles arch=amd64-netbsd size=699
name pdftex.armhf-linux
category TLCore
-revision 66237
+revision 70489
shortdesc armhf-linux files of pdftex
-containersize 683884
-containerchecksum 63a5df49f2d2fa717c94abf5121b8b466b2349611f3dfb05cb650bc37afe416a8252aaba620519fd1cc10081ff27fc451ba42d2222b27c0fafd90ddeb4a3d957
+containersize 684260
+containerchecksum 6e3d1a8832386a5f6d71e6a5c8fce3c57d210e6ff3a5b94f519db098c34b3c372433ba4a39d15a93c9570e102ebdf339474d265d65909d0cc9f802d9696c4056
binfiles arch=armhf-linux size=452
bin/armhf-linux/etex
bin/armhf-linux/pdfetex
@@ -254807,11 +255262,11 @@ binfiles arch=armhf-linux size=452
name pdftex.i386-freebsd
category TLCore
-revision 66084
+revision 70276
shortdesc i386-freebsd files of pdftex
-containersize 799096
-containerchecksum cf222d30b89d85a447cb1c79b132cc67158ebd17be9616660fe52fd3ff87cd4ea826eaf02bbe98e293e19b482bfe80fe58210b08b5bf2dd51f9560a25e96bcf9
-binfiles arch=i386-freebsd size=559
+containersize 764572
+containerchecksum 26230d09ca2e9c5df99acc82f75f082861de5316d630c10e56fbc5c1aa9a002392775b912555a75643980becd1e0381b39844604e165d185f34b025b3ef297f5
+binfiles arch=i386-freebsd size=703
bin/i386-freebsd/etex
bin/i386-freebsd/pdfetex
bin/i386-freebsd/pdftex
@@ -254819,11 +255274,11 @@ binfiles arch=i386-freebsd size=559
name pdftex.i386-linux
category TLCore
-revision 66084
+revision 70276
shortdesc i386-linux files of pdftex
-containersize 854572
-containerchecksum 0636b770d26164ec46a59ed6d4687916f58590f617a55d8877388815c8f6bf946aacb109d0bb19046714da48d684e06790edf523d3976f5b7b111c0367c4fefc
-binfiles arch=i386-linux size=569
+containersize 855572
+containerchecksum c77dd5c88621fecf6a2227249d23d516dbfb9948d5920f489cf37805030e4b39aea11130528c3d08932695c83bba4290870343eaa3b2dcb4914f1bc40a90d679
+binfiles arch=i386-linux size=570
bin/i386-linux/etex
bin/i386-linux/pdfetex
bin/i386-linux/pdftex
@@ -254831,10 +255286,10 @@ binfiles arch=i386-linux size=569
name pdftex.i386-netbsd
category TLCore
-revision 66083
+revision 70286
shortdesc i386-netbsd files of pdftex
-containersize 669824
-containerchecksum 5191efc5a9ecba73488c1341b088a394f940865771a58521278a5b0faf49414b24d1415b40c3324441363b83fac18988407f9464aa102250de9a5920ff4431d9
+containersize 670724
+containerchecksum f1e64b2a8965d3f993465a9af728f60c66d245f62a2294b31498962b02e99862320fc14073f59528c95aae3c61d2c2d17c438fa707607f165ca32f89d95321fb
binfiles arch=i386-netbsd size=621
bin/i386-netbsd/etex
bin/i386-netbsd/pdfetex
@@ -254843,11 +255298,11 @@ binfiles arch=i386-netbsd size=621
name pdftex.i386-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc i386-solaris files of pdftex
-containersize 840676
-containerchecksum b8ddc786cb6ca20acf22a9b0bc9f1d5080879a9a78ce24cafc9ef781540327e599b63ff750381a4ed631cda347f6aaca21f3a2689e7c69396f054485e5f57c63
-binfiles arch=i386-solaris size=561
+containersize 814676
+containerchecksum 6dbf44034bbc4f81d5d118890299c4037e2ba0d3b396d993217520542dcfb50abd3b79e27b47511094bfdd5b06f0f533e7f2f5f9b24a46c79229c5c3736b509b
+binfiles arch=i386-solaris size=547
bin/i386-solaris/etex
bin/i386-solaris/pdfetex
bin/i386-solaris/pdftex
@@ -254855,10 +255310,10 @@ binfiles arch=i386-solaris size=561
name pdftex.universal-darwin
category TLCore
-revision 66107
+revision 70274
shortdesc universal-darwin files of pdftex
-containersize 1710900
-containerchecksum ff4085213984da2939a04d1f0ffc4e223975ddef8321399685030a3568ff45930f085241c4cdb840a697c167dc5dee30114d756a19dab0c99903caba38e4be12
+containersize 1697864
+containerchecksum c245f40bff79539083ad96c77659ae43f0d6d58d2e2c1f40f238baa2ea7a972dd748031d847ba40d314c86a37b79d1128e6db5208777068246e9b45f2d47bf9e
binfiles arch=universal-darwin size=1297
bin/universal-darwin/etex
bin/universal-darwin/pdfetex
@@ -254867,10 +255322,10 @@ binfiles arch=universal-darwin size=1297
name pdftex.windows
category TLCore
-revision 66043
+revision 70576
shortdesc windows files of pdftex
-containersize 832252
-containerchecksum 767b43c8cd1947c768111a5019fde8f71b97837e03e47ee9f28ae177d2280729bccac0cabacffcb02048476dc5f70621af53105cf54761f4623ce6b14fd2c5c1
+containersize 832544
+containerchecksum 21a248be162e2b9b2f005312ce8b4982913b20d6d3b338d4a9bce03e23528e78a540ee1074ddd1de1abd9e4a97a3e33e31b10db827cb1606912bcdaa4dd1fb1d
binfiles arch=windows size=575
bin/windows/etex.exe
bin/windows/pdfetex.exe
@@ -254879,10 +255334,10 @@ binfiles arch=windows size=575
name pdftex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of pdftex
-containersize 832376
-containerchecksum 3fd055a6331dae0280641ae4b00429f7aa4bb247191a733938b64b41bd467899168887663363cf19d66687cc5c5309bca2988f26aa34f67f48ccb19f964982b6
+containersize 832872
+containerchecksum 81b8c4a86e7a1646f33c6081d5d4484024d1cdcdc77401039c7d53788af70c57825c7bd2981ea352dda2ebf7d565680826313d01c8651c41d7645b2c9d721e2c
binfiles arch=x86_64-cygwin size=556
bin/x86_64-cygwin/etex
bin/x86_64-cygwin/pdfetex
@@ -254891,11 +255346,11 @@ binfiles arch=x86_64-cygwin size=556
name pdftex.x86_64-darwinlegacy
category TLCore
-revision 66084
+revision 70380
shortdesc x86_64-darwinlegacy files of pdftex
-containersize 781868
-containerchecksum eac9a1b947e8682c4ee844ccd7c555a83717f539e9c61999815198c120ddb706ad13d68b4999dae25286f55baa1bdc1ccb4855149e111f51d57348d820b7d5c3
-binfiles arch=x86_64-darwinlegacy size=510
+containersize 783020
+containerchecksum dd423de8b44127f024e5eaae3df1318c9becd822fd495f66ceb8fd16dd6b74d281ef8e2629090650011bb2cd326cc5be7c01ebd3a01cad781afab4a400cd7b85
+binfiles arch=x86_64-darwinlegacy size=511
bin/x86_64-darwinlegacy/etex
bin/x86_64-darwinlegacy/pdfetex
bin/x86_64-darwinlegacy/pdftex
@@ -254903,10 +255358,10 @@ binfiles arch=x86_64-darwinlegacy size=510
name pdftex.x86_64-linux
category TLCore
-revision 66084
+revision 70276
shortdesc x86_64-linux files of pdftex
-containersize 855588
-containerchecksum b1f6b32704b31ea387d7df57570526e34b807fab42f1ce150146cfd48a98afeaa50c109f696befcae6fbb4b28c66eded5b2ff18187dd33fa4b6f206b238aaf85
+containersize 856240
+containerchecksum 38746258d4fb2e39a4f30be1c937fea11b9f5148ce73b22666a6318f39ac9012012eea0c94c53dd363752bcd19e22e737489d86d28780b1a2866b6697b4ab385
binfiles arch=x86_64-linux size=558
bin/x86_64-linux/etex
bin/x86_64-linux/pdfetex
@@ -254915,10 +255370,10 @@ binfiles arch=x86_64-linux size=558
name pdftex.x86_64-linuxmusl
category TLCore
-revision 66084
+revision 70276
shortdesc x86_64-linuxmusl files of pdftex
-containersize 901676
-containerchecksum 53885425277257a7824dd6933679fced19a5a24369478260efa771096249649eb63e9c697bac8146eb9ebeff06d20e02503c59fb781c1c3a156e8a0a040f0b6a
+containersize 902436
+containerchecksum 9670e9483ff8c4619993dca3a7ac6662231b70cbb7d878360bef357bd33ad77316b2ebc5de84b8a2c5f988c2638377437ec64d705ba413f649b2f096700041c0
binfiles arch=x86_64-linuxmusl size=648
bin/x86_64-linuxmusl/etex
bin/x86_64-linuxmusl/pdfetex
@@ -254927,11 +255382,11 @@ binfiles arch=x86_64-linuxmusl size=648
name pdftex.x86_64-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of pdftex
-containersize 925516
-containerchecksum 771e8c373e72c2c562a2602aa31aba39603e06e00f298cd2fa9e7b1709ff32afe3abfc3ebfdddb38aeb16c67b6875540111feaa1e48c7cf34a1ee636c1ea4ae6
-binfiles arch=x86_64-solaris size=635
+containersize 910920
+containerchecksum 3f597c048f6b4a8fce1c269693a43315e5e6649da2180b715cfcb4d0457f37e5d117e30b93dfdd385268ef00f73c713ddcc9c5022b10b7225afdfe3e5e7e02bd
+binfiles arch=x86_64-solaris size=632
bin/x86_64-solaris/etex
bin/x86_64-solaris/pdfetex
bin/x86_64-solaris/pdftex
@@ -254970,16 +255425,16 @@ catalogue-version 0.33
name pdftosrc
category TLCore
-revision 66186
+revision 70015
shortdesc Extract source file or stream from PDF file
longdesc Extracts an embedded source file, or extracts and uncompresses
longdesc a PDF stream given by object number. Developed as part of the
longdesc pdfTeX source tree.
depend pdftosrc.ARCH
containersize 384
-containerchecksum 8cb175ce464b0ec0bf74c39ddcf381daf9e27635098e775d929f5cdc60858d39cdbac1a4302446f9368a274ce4c3afda9636d882ef4097d2272d22e190d8d272
-doccontainersize 23892
-doccontainerchecksum 01598180f8eff2913eeebf5bc3d5f3aba32029286fc6e0c072aa8c0f4dabaf0c6e71ae7451ba9a7b65b4d0075a7f0a3baf345b02c5826eab64d74e39eb82798e
+containerchecksum 8bc301ccb6ee0f137f2ab994b9569f1f5431457d4ba0c06e1608be2621d319537ec3cb0e688d9582a3c964d302d126397d0affc6930f9feb2629acf25d85aaf1
+doccontainersize 23956
+doccontainerchecksum 1ce8ecc67afb34d3e43bf0cc9c57076722b4ebeeb9c5506bda5895e3007774552dca48020f0036bef52b7ca8c33fe354875a9c706515ea56bf12a63ca53e235c
docfiles size=9
texmf-dist/doc/man/man1/pdftosrc.1
texmf-dist/doc/man/man1/pdftosrc.man1.pdf
@@ -254995,11 +255450,11 @@ binfiles arch=aarch64-linux size=375
name pdftosrc.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of pdftosrc
-containersize 382848
-containerchecksum 8f4890dc685e8c364baef1f2c8f7d519b28c3bb67c745773f29dc6533283c037cdcb18b69f327eb5247a34c35d1e69aee1541db3919ea70e4a15f94a5981babb
-binfiles arch=amd64-freebsd size=294
+containersize 354368
+containerchecksum 1a1ce08b5fa1fb02f9e9c006d12c792369546220e03a9e17306790191c70501b99b8e5e1f1bdbf6b017a16957e97aae213df3064247fffaa9f416c2350d10ff7
+binfiles arch=amd64-freebsd size=374
bin/amd64-freebsd/pdftosrc
name pdftosrc.amd64-netbsd
@@ -255013,28 +255468,28 @@ binfiles arch=amd64-netbsd size=371
name pdftosrc.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of pdftosrc
-containersize 306820
-containerchecksum 9d5eac260ee61a764042732105111529992d5c753ff91add555f58d02fd8244dac4a6f043deea9b8a47e72a01cfdc0cb1279a445311ac8fa23db754d981931ee
+containersize 306872
+containerchecksum 1c7b624f131bde9a9b4d214b40e18fbb7832fdb254396196fa9e200122e6d12d2853e84f23ff15d5cd22135cf307108d1aa5174e13202ca1450003aa35ad665e
binfiles arch=armhf-linux size=231
bin/armhf-linux/pdftosrc
name pdftosrc.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of pdftosrc
-containersize 359376
-containerchecksum caf2250f931e56999177df604b33786894712afc096fd8672ad455d639e451bcb50e3c1a71e750ce6c2671a8b0af5144712e82529d54fbb69804db00018b51af
-binfiles arch=i386-freebsd size=253
+containersize 354280
+containerchecksum 17ed53c2282b579bb06e3a7dcc8ec26cd8c19d8067a60e3b77bbaa8e389275889b977730aa77f00f15a474bb33377594288b4323b50596b86eee2bfb2b5f3fef
+binfiles arch=i386-freebsd size=374
bin/i386-freebsd/pdftosrc
name pdftosrc.i386-linux
category TLCore
-revision 65877
+revision 69782
shortdesc i386-linux files of pdftosrc
-containersize 403024
-containerchecksum 216dfb20df6ba36dfa6b7698c660be13507c0b2c615670cf031402adb138a315ad83205f3158db7195b744aba1db1a60005dc4103db9f7cf464c300824324936
+containersize 403332
+containerchecksum 4e67ab9eda2245c936740293469c53e49ec51de2b48b9e0fcab2ed52c941292a5e8f3b6b217c6666b968a7c7b6f062854aa0a8cccf399f58436d29e65cbd52e6
binfiles arch=i386-linux size=290
bin/i386-linux/pdftosrc
@@ -255049,37 +255504,37 @@ binfiles arch=i386-netbsd size=324
name pdftosrc.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of pdftosrc
-containersize 423092
-containerchecksum b195978ca080ae64386010337e60459af67ba3c8d947128e24442874a96b9cd17fd6be65df40f64377b104cc21ea1f8ee112cf1a13cf83464af9b63ef9624587
-binfiles arch=i386-solaris size=319
+containersize 384516
+containerchecksum 37927a313314e5c47011e84000910c1eb194c453910ce3012d6302d7bd86fe382abd551538ad7e755a7621c885ed7de6ea2408df6ff329581a22771a75978cfa
+binfiles arch=i386-solaris size=296
bin/i386-solaris/pdftosrc
name pdftosrc.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of pdftosrc
-containersize 707248
-containerchecksum 5be6f368bd8115978fe7045c9397c4c06be1d4ed406a5a8a96d0b75be1a77ca0c7071b584550c7e4979e0d85fb507ac1524365dd9ad8081d086dc47aadb6378b
-binfiles arch=universal-darwin size=617
+containersize 692348
+containerchecksum 7d6b56d57c2e42509d7bed4c209f5d2cf4ee0d1f4457b609a4dca6f6fbdeeef184673e388decda827bf81f7ff68065693ad2cdc006dacda7de5681c3d4f677e0
+binfiles arch=universal-darwin size=609
bin/universal-darwin/pdftosrc
name pdftosrc.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of pdftosrc
-containersize 364520
-containerchecksum 59b5f64aaabdc2acff2aeec10f6e1a40f980a660c968a8ab40c69f883e0911e98926a95965652699b6a3e6c60fd89dea62be819fab0f38a96cafb8bb44b4e63e
+containersize 364808
+containerchecksum 57734530c627dc385c529009a2b08301ffe930898e6dc46ed5bb5572038c86b86a37c14ce068b834a4723104f3059f648eebf59d869ac76fa277e6822ecba06e
binfiles arch=windows size=307
bin/windows/pdftosrc.exe
name pdftosrc.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of pdftosrc
-containersize 377832
-containerchecksum 78f0a0731af48039a9a9ab0c161e013a60697d2142cb577fbec52a974cc437cfbb26ebeb36ab8cd284db440685e157f3493d3d83a9a689c79ff1d3d991aae862
+containersize 377880
+containerchecksum 5097ca01a719f585c0e190272f1f77d1bcf08b6f9a93737b745235145c4c057e80f43de9e9967f9b1ab787a6918ce6da5fa6aa458b4546563d5bb2b4c572aad1
binfiles arch=x86_64-cygwin size=297
bin/x86_64-cygwin/pdftosrc.exe
@@ -255094,10 +255549,10 @@ binfiles arch=x86_64-darwinlegacy size=271
name pdftosrc.x86_64-linux
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-linux files of pdftosrc
-containersize 391016
-containerchecksum 2f921634fc06cab056427c3835ccb30e7e2a37e8bb13335d8f749c8b8cf69bce6f23adf398587b43d59a14af17ed65c4a58ab06db351c9a34f8e46ce2a0faef1
+containersize 390968
+containerchecksum 50e33d09f33a7b7941719d713f17f27b1bac9c7e3ee740276cc7eb627b837ab2df474cfb17c44affff9fb91718b6f1755489bd8cda93d1bc10c9d7eb13595253
binfiles arch=x86_64-linux size=304
bin/x86_64-linux/pdftosrc
@@ -255112,11 +255567,11 @@ binfiles arch=x86_64-linuxmusl size=374
name pdftosrc.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of pdftosrc
-containersize 436532
-containerchecksum f3f82d95fe74c97e2fb65fad8cd38962d665c77865eee6547f191eb3c53f4194fb9f0fb965e5b008308a17d1be0cce07f0fa1279d029e19c61f8e26e03e5c6ce
-binfiles arch=x86_64-solaris size=358
+containersize 408356
+containerchecksum cc5d9b2d933875607e9d5443c3af93ef217c1f984019e80daae7512629d6a7470352a1a3f6ce512bfd41539d273f4898485b8ae521f41d9a6ca757d8c5f26025
+binfiles arch=x86_64-solaris size=344
bin/x86_64-solaris/pdftosrc
name pdftricks
@@ -255693,15 +256148,15 @@ catalogue-topics luatex
name penlightplus
category Package
-revision 70319
+revision 70312
shortdesc Additions to the Penlight Lua libraries
relocated 1
longdesc This package extends the penlight package by adding useful
longdesc functions for interfacing with LaTeX.
containersize 10904
-containerchecksum 97de3ce726fc5469bf1230edba37728a332e91dae33a9498b4e32c474694866e95abfe9156dee1e4c4a7b4f9b07922741c87519ab892c01f037db04a92150238
+containerchecksum 90c4aa5da277234227d70475fc218dc3a925c65499a031b8034b113f9eac5ab95af6d6e2c5eba41e3f18f1ae77f81f4a5cd04dc4654cf3287576afb77e6e75c3
doccontainersize 78232
-doccontainerchecksum e35a2d252d8377efd170d9b42ac233af921b34b2a9a91248ed7640d9b79809debaca54451251fe5cc1394df73f0ef476c72f614ae5aefba5db319d7f38aae7b9
+doccontainerchecksum 24d236ec3efe6d7d20849374dc3f3da7656d3677562e7b55b18a2e4f4914e43de0aa234a3bac97160c29ec0556711ddb19239be1cfc2a15b12dac8a69c38e28a
docfiles size=26
RELOC/doc/luatex/penlightplus/README.md details="Readme"
RELOC/doc/luatex/penlightplus/penlightplus.pdf details="Package documentation"
@@ -257150,7 +257605,7 @@ catalogue-version 0.1
name pgf-periodictable
category Package
-revision 69924
+revision 69913
shortdesc Create custom periodic tables of elements
relocated 1
longdesc The purpose of this package is to provide the Periodic Table of
@@ -257160,10 +257615,10 @@ longdesc displaying the desired data for all the 118 elements. It can be
longdesc done in six languages: English, French, German, Portuguese
longdesc (from Portugal and from Brazil), Spanish and Italian.
longdesc Compatible with pdfLaTeX, LuaLaTeX and XeLaTeX engines.
-containersize 513296
-containerchecksum c640e847afc370fb47c39d44712c7fdce6078d39b4cbca9630708fa4374b8a9793100763a5a2734fc3a925d1b0dbfab28aab868f49750dfdabd4df69f0553af9
-doccontainersize 5571308
-doccontainerchecksum a148aa9df7e95c48f6eeb5a85323f68539ffbaa7deed7b3188b75c5827814d2b26e20c61995334e77a868831d5bb9b7881e8cb993967293f79bb327c387298af
+containersize 513108
+containerchecksum e5b6522fc087385942ef8d06318e660b330a6a804a4803d034c0ed10f122aad78465b7b8130e4a5d308554341bad8db946507f9c018935025001b8649a2d78d5
+doccontainersize 5570956
+doccontainerchecksum 15ab7b0492e4f0444a23ce6945f9cb147b3101a32897c0d03321ff008db80fb0c65341ca141988fd92c718dea95192267e7da34f14d6e9bc1b6ef3ac700663e0
docfiles size=2258
RELOC/doc/latex/pgf-periodictable/README details="Readme"
RELOC/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_Ar.tex
@@ -259389,16 +259844,16 @@ catalogue-topics documentation
name pictochrono
category Package
-revision 69865
+revision 69855
shortdesc Insert "chronometer pictograms" with a duration
relocated 1
longdesc Small package to insert, inline with automatic height and
longdesc vertical offset, small "pictogram chronometers" to indicate a
longdesc duration.
-containersize 1772
-containerchecksum 3c6d73efad12ff4b3c10c1a09e36fb489a75998e556f6042db8f11dfd157cbb27a488eaa1f12f7c72de5d2ea5deff14cb8d2659b1d4618dd91e5bee84f72eb82
-doccontainersize 237824
-doccontainerchecksum fe015528ac5b4c2f2f7f955d23372c1a3066e0569e50a9e38699e44c305d588727f0570c265c79aec82f8f8c02f6b671183426c3a58f6f1f339ca40415967b24
+containersize 1768
+containerchecksum 48f04578b0080ba075f9303800713ed4c4cb637dfd993c3bda03ec24bb9359504436dcd3e09724924f37ce5e5b688cab1f5a6db7eee48d760fbf2bb49e064ea4
+doccontainersize 237820
+doccontainerchecksum 2d797a69487c939a3f4a8e4a076109cf9e416e8dbe61553a3dc9981cacda87f0b6f0a5beed3ee193d51424740bacf5c56eba96f1448a94584ffc8e894fe43a92
docfiles size=62
RELOC/doc/latex/pictochrono/README.md details="Readme"
RELOC/doc/latex/pictochrono/pictochrono-doc.pdf details="Package documentation"
@@ -259643,24 +260098,24 @@ catalogue-topics doc-supp
name piton
category Package
-revision 70446
+revision 70445
shortdesc Typeset Python listings with LPEG
relocated 1
longdesc This package uses the Lua library LPEG to typeset and highlight
longdesc informatic listings in several languages (Python, OCaml, SQL
longdesc and C++). It requires the use of LuaLaTeX. It won't work with
longdesc XeLaTeX, nor pdfLaTeX.
-containersize 18580
-containerchecksum c6bf65efaa6dbab5d75aa789df37c823a8b2bcaf28a42e476ee5cc7d36c5a3e830407bde7ac7c365e4dc31fb14b873e2e25aa94f7867fd73c6f8e16d25610f08
-doccontainersize 832244
-doccontainerchecksum 3b5d8305bc3fbab8e3805a9d7f9a5c76c6ea1d6cf45ce31a121c2071fb0de71d275acae3e2225e85aa78c3d24dda559b52842072e917d07788c25b08dedf9066
+containersize 18588
+containerchecksum b2b42c258ae8250dfdb1690071bacd1dde50674d4de2d12059ecde04f47ba6f8da1a970b2fc3f3eaf5501ac04fb34b045ade94bbec7d94c80009eaa297e168a3
+doccontainersize 832188
+doccontainerchecksum ce3dd936170266de7c0215c79809cd476c5673677b09b09ccfa6fc15c63286aab7e843f634d710763c57768845a1656a69df88aed4f8254fa412320c30cea868
docfiles size=364
RELOC/doc/lualatex/piton/README.md details="Readme"
RELOC/doc/lualatex/piton/piton-french.pdf details="Package documentation (French)" language="fr"
RELOC/doc/lualatex/piton/piton-french.tex
RELOC/doc/lualatex/piton/piton.pdf details="Package documentation (English)"
-srccontainersize 51892
-srccontainerchecksum db4ac567e3d6741a650ed8cf7098fde78a8a0d26225c485c9fbb954494f500d9304719a9f5f32f9277811923aa323e5970c4826a2177a8c0034f50752468f756
+srccontainersize 51896
+srccontainerchecksum 684108cf347f4c469a653028f53325b7431e442c780c5d301c66746396d5afe314c5eb9d9b82025a0fe8c8bab1456a3fec2d2668bf220d0221ab9a1768ca16aa
srcfiles size=63
RELOC/source/lualatex/piton/piton.dtx
RELOC/source/lualatex/piton/piton.ins
@@ -260134,15 +260589,15 @@ catalogue-version 0.7.0
name pkuthss
category Package
-revision 70496
+revision 70491
shortdesc LaTeX template for dissertations in Peking University
relocated 1
longdesc The package provides a simple, clear and flexible LaTeX
longdesc template for dissertations in Peking University.
-containersize 17020
-containerchecksum ce10fdec461d1de90a7b3256db0c29c508427c4b21ae77ed7d08b75d3c95b46bea27c7ed869c1bc8828d40cba05ab84fd7288fa6ae553d786e1ee18e3c468b8e
-doccontainersize 466156
-doccontainerchecksum 7093f5e5d39576e9b57b08d528675d43460713050af48c77f9b7db78be74b16490dda55f1ab8fa425436d59f6428a3e244ee9490d22ca70eb141a68fe14835c2
+containersize 17048
+containerchecksum f8691bc20b214690d69cf9735879021e8d5842df62c07889e9fdc57e424839bfe62b4b61ef4657fe6a12f89ff4c55df83f277487cfc7a461cc70adf95883bf2a
+doccontainersize 466240
+doccontainerchecksum 9980f40ece8bb4eeb203bc690093576a616c8165148c5b45e24eb78b213a91668349548d8eca73270cd9eb88461dfe42c286271a8ff551b2a01b035392be3bbb
docfiles size=159
RELOC/doc/latex/pkuthss/README.txt details="Readme"
RELOC/doc/latex/pkuthss/example.pdf
@@ -260946,21 +261401,17 @@ catalogue-version 0.1
name platex
category Package
-revision 67315
+revision 70015
shortdesc pLaTeX2e and miscellaneous macros for pTeX
longdesc The bundle provides pLaTeX2e and miscellaneous macros for pTeX
longdesc and e-pTeX. This is a community edition forked from the
longdesc original ASCII edition (ptex-texmf-2.5).
-depend atbegshi
-depend atveryend
depend babel
depend cm
-depend everyshi
depend firstaid
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-base-dev
depend latex-firstaid-dev
@@ -260971,12 +261422,12 @@ depend ptex-fonts
depend tex-ini-files
depend unicode-data
depend uptex
-execute AddFormat name=platex engine=euptex options="*platex.ini" patterns=language.dat fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,ptex-fonts,latex
-execute AddFormat name=platex-dev engine=euptex options="*platex.ini" patterns=language.dat fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,ptex-fonts,l3kernel,latex-base-dev,latex-firstaid-dev
-containersize 42308
-containerchecksum 4a2682c51dc82e078ad14b30545dccd95f600ab02d5d05fb5c44c214221a3947562432783b43ea505b5199f37a1175a792c709282999f77b17b532d2a61c6e54
-doccontainersize 1982676
-doccontainerchecksum faf91bdbc3e0d2ba0b13a914d54fbc4ce47e27c1225e5412b78c1217b2e3f6c22886a9f6f85b06e5e3f38a8b0c7a9aaadb4606721799749ae6ef5018f7bb08bc
+execute AddFormat name=platex engine=euptex options="*platex.ini" patterns=language.dat fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,ptex-fonts,latex
+execute AddFormat name=platex-dev engine=euptex options="*platex.ini" patterns=language.dat fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,ptex-fonts,l3kernel,latex-base-dev,latex-firstaid-dev
+containersize 42272
+containerchecksum 102bb4eb877315aa66379147d083d97a06216c3e13e79eb9142a949e695c9895a043e411441db43addb6716a0c2418d5f76d263c9f7567947ad64efd4a273e9e
+doccontainersize 1982656
+doccontainerchecksum 4bd645d616c4c4e2aa39d0bbece16569d0e2bbdce29391a8b444c988148433af6a38144cf066a6cf94c3fd3be6d501768220594d65d576644b14618123a2234c
docfiles size=512
texmf-dist/doc/man/man1/platex.1
texmf-dist/doc/man/man1/platex.man1.pdf
@@ -260988,7 +261439,7 @@ docfiles size=512
texmf-dist/doc/platex/base/platexrelease.pdf
texmf-dist/doc/platex/base/pldoc.pdf
srccontainersize 140240
-srccontainerchecksum a1ba3fe817e5f4aa23c2c4c9b7397cdda6ecc889ee244a05fd7eeda59fba1baa02fd29820107c887982983b2115631f1aac7d19ae281f88779b3e99253b12036
+srccontainerchecksum 10153bf2e628ace82388ba621bdc4e3e598186001392131fb291b425455350ad1ebe35f184abcd6f1bc0ac33e6d75520b1b7bab2115d4f1262b28776b66b47b6
srcfiles size=218
texmf-dist/source/platex/base/Makefile
texmf-dist/source/platex/base/jclasses.dtx
@@ -263823,11 +264274,11 @@ binfiles arch=aarch64-linux size=159
name pmx.amd64-freebsd
category Package
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of pmx
-containersize 220392
-containerchecksum 1ebdb49dde2669126489132bba54ff5dc07e058542c4b9a4d3ea9763c478d9ad85dc2d2404095a36201e659fe4fe36100433bd94f176be29093e485dea3e7215
-binfiles arch=amd64-freebsd size=155
+containersize 199664
+containerchecksum fc1ddbbf1c8e3c97f812adbae414e6cc1c9574aea4629fe26b589807657d7a375449c828a144c1fcba3306308bc1876743e086dbec2c15894fd3d96564d856d2
+binfiles arch=amd64-freebsd size=198
bin/amd64-freebsd/pmxab
bin/amd64-freebsd/scor2prt
@@ -263843,30 +264294,30 @@ binfiles arch=amd64-netbsd size=198
name pmx.armhf-linux
category Package
-revision 65877
+revision 70489
shortdesc armhf-linux files of pmx
-containersize 215176
-containerchecksum 61cfcd99bfa27a42d900ef8f507240098cb9208b61d4a0cf04be2378dc62e8c5d30b70a6024b1e54ab01f8c2d1a1d230358b14b8931a74e3a3f74bd052369be3
+containersize 215192
+containerchecksum 413fb697746f286566e90c1ff707389dcc846b04e26ff5a546bf4eb5a6bb72d35a74f18b37f22e8e9181419a57418b37c7e7576d59856f29ba837965c11fcb04
binfiles arch=armhf-linux size=134
bin/armhf-linux/pmxab
bin/armhf-linux/scor2prt
name pmx.i386-freebsd
category Package
-revision 65877
+revision 69782
shortdesc i386-freebsd files of pmx
-containersize 182952
-containerchecksum 14016a3c90b9c8d2db0d775df4cddf28449f4bb78da43c96d824db88ca4ca117969b9157aeba3566503954c4ca761d85fc17cca753814c9c24195c0da63d269b
-binfiles arch=i386-freebsd size=135
+containersize 199692
+containerchecksum ae00429536d69e2e60d1d058096f874bb1583885e9479a2a76d055cd76f5553bfbb182d7a09d369c6bea491bd1083765641767e1eb4e4484274b293cf7184053
+binfiles arch=i386-freebsd size=198
bin/i386-freebsd/pmxab
bin/i386-freebsd/scor2prt
name pmx.i386-linux
category Package
-revision 65877
+revision 69782
shortdesc i386-linux files of pmx
-containersize 215924
-containerchecksum b84d1cf9cc34bea8b0c9b30ed1f7c9c5f2531453c61451424cf2d638b0d37256a05efda61e450d7fdcc1c4f161a9dbb6a07a6a57d0cca9bf700ea3c35a9d2107
+containersize 215888
+containerchecksum b6af82ca5e480264cf753dbd000e836ada0db1cc0557b4422ac00e902fde360e84ab83e61698a5485f216189b92d5c9e5dfdace00e25674ff5b30b781509c736
binfiles arch=i386-linux size=167
bin/i386-linux/pmxab
bin/i386-linux/scor2prt
@@ -263883,40 +264334,40 @@ binfiles arch=i386-netbsd size=176
name pmx.i386-solaris
category Package
-revision 66145
+revision 69782
shortdesc i386-solaris files of pmx
-containersize 199212
-containerchecksum 3540c46ee4ce32b5f97afd81ac5f4c47a8cda1fa594a133c903f205d77f977095f0a4236f5ab4c01c619bedbec409ac31aa59469c0943105ad1b3d69bf1d95f7
-binfiles arch=i386-solaris size=137
+containersize 200940
+containerchecksum 49d7ccecb55845770964276ce0b68f867598773d66af1f6088b5822d9d657717877f034d1e6c7fb34a871052087fb12e851004e0cdc43987d56c2daaf4b0616d
+binfiles arch=i386-solaris size=139
bin/i386-solaris/pmxab
bin/i386-solaris/scor2prt
name pmx.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of pmx
-containersize 472544
-containerchecksum 904fa8f9af3497b52cb481f249552e6de852a661d47841182f3b5468588d4aba45ab65c5db23f1da49ed56b0d2cf8f0a57f9f9aba6da926e0edd3b96fbe30ad4
+containersize 472492
+containerchecksum fc918aa6ba74adf02b92389cefdd389db6f63b38e52096bbd72779d2600a23090ce10321d9f5abd5e7e21cd4d332f539da5db5149250ae924c2aea74dd706b2b
binfiles arch=universal-darwin size=366
bin/universal-darwin/pmxab
bin/universal-darwin/scor2prt
name pmx.windows
category Package
-revision 65891
+revision 69788
shortdesc windows files of pmx
-containersize 248940
-containerchecksum 931e3f9f37fa7fcdf065f895eb002461b9317fc5c55534035fa73e08d66fa70ee6d44a53dbaba0fa98e5c4604daa96d140e3ca701aca94d4993660b2c0f57064
+containersize 248936
+containerchecksum 4fa38828d98d2f373b902a47b1de23dd3318a234f57b5d48afc9681cebf6358b76ededc0da06b9e2ac8316cae06f5b211d6a4130ecf9bdc5f703ad102c9cb065
binfiles arch=windows size=145
bin/windows/pmxab.exe
bin/windows/scor2prt.exe
name pmx.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of pmx
-containersize 248868
-containerchecksum 8e1be25e3bb139066b3b7951ed2f3f873a98ff629528dc0597ddacf7ff11190fae5a6bf0312f692c76b1c90dc2457f01fdc42ed4f030c76201cac15e990973f6
+containersize 248872
+containerchecksum ae1fb94592b750d8677342522f52417eca4d23481d847ab3d58582d1884ca057299efb78246e659bc7e5d35c324735e547809f65a3923b3bad0a822f33d84a99
binfiles arch=x86_64-cygwin size=167
bin/x86_64-cygwin/pmxab.exe
bin/x86_64-cygwin/scor2prt.exe
@@ -263933,10 +264384,10 @@ binfiles arch=x86_64-darwinlegacy size=143
name pmx.x86_64-linux
category Package
-revision 65877
+revision 69782
shortdesc x86_64-linux files of pmx
-containersize 217412
-containerchecksum d6388ad1d0b6d9aca230623bca02ce2be22e459d7b164b9139888f0be22b9e4e2078d5aeb449733b4152be4f3977797252bd16cf0bccd98778cf5f34088a3f93
+containersize 217444
+containerchecksum fdb159ebf66b47bfe5c48b7aa1069a494b6406e27849e61dc913d72048e44217da85eb37f85ea0a4c4fc689294e3a36651664f476b1f98cfb90286ab30419129
binfiles arch=x86_64-linux size=157
bin/x86_64-linux/pmxab
bin/x86_64-linux/scor2prt
@@ -263953,11 +264404,11 @@ binfiles arch=x86_64-linuxmusl size=169
name pmx.x86_64-solaris
category Package
-revision 66145
+revision 69782
shortdesc x86_64-solaris files of pmx
-containersize 224552
-containerchecksum 7bb801cb3d3bccae01af51ce8d05ce2cf599d7fc36be40418eeeb2a8966f7617e9a14dc37f8c68140e8907232ebcf7af18e84ad1e4d14a483102979dd25489c3
-binfiles arch=x86_64-solaris size=162
+containersize 226464
+containerchecksum 60558578462c53490d816d743b537da974ff63011205fc105a265d52dbda13e1e8b33c529768ad6f0710040410913f73d7013315a8242f65907ed34604de132a
+binfiles arch=x86_64-solaris size=165
bin/x86_64-solaris/pmxab
bin/x86_64-solaris/scor2prt
@@ -265329,7 +265780,7 @@ catalogue-version 1.101
name polyglossia
category Package
-revision 70496
+revision 70491
shortdesc An alternative to babel for XeLaTeX and LuaLaTeX
relocated 1
longdesc This package provides a complete Babel replacement for users of
@@ -265341,10 +265792,10 @@ depend fontspec
depend iftex
depend makecmds
depend xkeyval
-containersize 126544
-containerchecksum d34cfbeffd1cb2eaeef0d7d625a1f1ef7e2835e93eb88a53b2d44f21562c76cab82e1f5637ebf05b25c0fd0b56738ef7946bf7f9607766ca57a7658f98cb2647
-doccontainersize 824044
-doccontainerchecksum f59aee2cdfd6ba067e4ef5c20503cdd9317ab854ae35b0a04044b94116d4fea9fd6b839bd4f33af934b207f1c660e126c223477cc57b7a1ad81db54bda2507d5
+containersize 126680
+containerchecksum 0974bcc7ec89d38f00d3ce763907d4f13f9af07f0b8ab4a89394b6c71ef738f4cbbc9ed7e569e2c7ece8f147db0162c2f16bd14d71583b2c4e7f55547c9de967
+doccontainersize 824112
+doccontainerchecksum 4d3dc6bc43ea298ce303c9736ae96743a5b925ca40ff2adf51aed2ccb2571b0cfc08b9ad2c1acb258fbdc565a3aac01307c787262981003ddcda3eb02b0852a0
docfiles size=262
RELOC/doc/latex/polyglossia/README.md details="Readme"
RELOC/doc/latex/polyglossia/example-arabic.pdf
@@ -265365,8 +265816,8 @@ docfiles size=262
RELOC/doc/latex/polyglossia/polyglossia.tex
RELOC/doc/latex/polyglossia/test-welsh.pdf
RELOC/doc/latex/polyglossia/test-welsh.tex
-srccontainersize 171176
-srccontainerchecksum cd285a93795e6b0861eb6e930384c836c83463cb2c4806dcdfff2966f23cd28604bc113b48916332d60ddd7cf2e747ece902b7040c41ff3d95b9eb99b0c9ea56
+srccontainersize 171128
+srccontainerchecksum 07896d3014b695e470db918a01a356d2fb769a9a9d1b4503548adba7b821bf9d7b3f0bbc68a9be7addb5b9e667b02b60abd17faf3fb564ce14b04f22d798ca51
srcfiles size=263
RELOC/source/latex/polyglossia/polyglossia.dtx
runfiles size=401
@@ -267285,7 +267736,7 @@ catalogue-version 1.0
name proflycee
category Package
-revision 70513
+revision 70510
shortdesc A LaTeX package for French maths teachers in high school
relocated 1
longdesc This package provides some commands to help French mathematics
@@ -267294,10 +267745,10 @@ longdesc create splines with "derivative control";
longdesc \CalculFormelParametres and \CalculFormelLigne in order to
longdesc create an xcas-windows-like; \CodePythonLstFichier to create
longdesc code presentation and code execution with pythontex.
-containersize 62360
-containerchecksum e71feda42148721f3605c48271f51db60fc8826401c97372794b799d24183da186ac33d352534d216d642ba85a4a62606ae893ee11414144eca7aa9fddadd162
-doccontainersize 1956416
-doccontainerchecksum ecda097d113be20b48dcf933647d9e7d2adb6589b1d27058ff06f6a984b0b109fa383d406207119348388a50ce33521432960bac27f91dcb27561e09f0bd8e22
+containersize 62320
+containerchecksum 77604be7d21546aeac987d47cdd6333f23f5f096b2eaec9c5d9e9d39e4774685041dd1de4a2592f5e62978649c9aa93a5a606f0017e8d73b2e33bf32b9a58dc8
+doccontainersize 1956352
+doccontainerchecksum 9e76db993e6227b064dd9ad60b9aa9c4098477829d676ce7e95bc8229e0e3ce48c9b875f3b9c32aca03ed0dfce1bccc6cf92f006a1a39224e8a21ba7ac13652c
docfiles size=502
RELOC/doc/latex/proflycee/ProfLycee-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/proflycee/ProfLycee-doc.tex
@@ -267337,15 +267788,15 @@ catalogue-version 3.02f
name profmaquette
category Package
-revision 70496
+revision 70491
shortdesc Use exercises in different types of documents
relocated 1
longdesc This LaTeX package can help French maths teachers to put one
longdesc and the same exercise into different sorts of documents.
-containersize 23652
-containerchecksum 17223e35f30ac30274ab96d236903eed3343e8c8b7ce9915d82e430fecd36c7d8586fdbde6ab0f3e91694bbeedc9fe1e1c084fb8e47f08af53424452732e6f94
+containersize 23672
+containerchecksum dbbf414330fabcfb3e8083d4226a3eb1da20c1176f8def91f57850d9ad3771b60b9760af7a283968b72f5882e0075cd1de02afe2f0246dbe1da576b970eaad89
doccontainersize 298736
-doccontainerchecksum 0c93574c3090cbe5959db0b3eb9ed46a45f5256bd8ac3915155b4e7fe44391dce10f6ef6d380da1340234c2fe341ab6bed3975743b4eab3794b4b48db5922b75
+doccontainerchecksum 935778e6694501f36f10286c2ce6947e8e82194d762c19e725e6134ad098f5bcc2e2c15b1c0f7b570bfe5326be1deb4aa08635c91213ebf46a1ae34f4740daa1
docfiles size=117
RELOC/doc/latex/profmaquette/Attention-1.pdf
RELOC/doc/latex/profmaquette/Attention-2.pdf
@@ -267368,15 +267819,15 @@ catalogue-version 0.88
name profsio
category Package
-revision 70211
+revision 70198
shortdesc Commands (with TikZ) to work with French "BTS SIO" maths themes
relocated 1
longdesc This package provides some commands (in French) to work with:
longdesc tables of Karnaugh ; MPM graphs ; simple graphs.
-containersize 16196
-containerchecksum b4e8dcaf48a7b9a6e5cefa8b188e36d4f017afad476f6441e0718d89a497d2bdff06ea3380917a836309de371446602bdee51fe12f42aee0fcbe189b4c1d57cc
-doccontainersize 465492
-doccontainerchecksum 846703236b09ec68c49ec05c5fc817e109914d6f2449d652876371e92ea1e5c0ac98697886ca81d2bfe6bbc7deb6537f5d828140d380e459f706c9f902dd1502
+containersize 16204
+containerchecksum b02436f59ef1e24b22d3345cde207e804ee2e2e0bdedb16a17133c6845108748fb037de6848e406882df20d259304a2e4d7ceffb39a0547c90e270f12f2e4cc6
+doccontainersize 465496
+doccontainerchecksum 42d898748673395afaf7cf10231a656f6c660b1581176d0dc9bc22c5ede99d0be7299f8ec699131718adadf8a25d3f3489137b833b22550b23d5eeb5807c956f
docfiles size=133
RELOC/doc/latex/profsio/ProfSio-doc-fr.pdf details="Package documentation" language="fr"
RELOC/doc/latex/profsio/ProfSio-doc-fr.tex
@@ -267471,7 +267922,7 @@ catalogue-version 1.0b~4
name projlib
category Package
-revision 70327
+revision 70305
shortdesc A collection of facilitative tools
relocated 1
longdesc ProjLib is a collection of tools to help you write LaTeX
@@ -267481,9 +267932,9 @@ longdesc configure the appropriate multilingual settings. In addition, a
longdesc series of auxiliary functionalities are introduced.
depend create-theorem
containersize 31344
-containerchecksum 180698941fa86735f83bb4d93886c2cd637aa7ac50103ba68d3369bcefcbe6200a377a9975e04db9f0e528a0b821bbd82a5fe6deb4e85832523798e1523fd976
-doccontainersize 41876
-doccontainerchecksum 362d152dd0c82a9807cba5b6fe49da6b4a8335af6b23f6958273e370140f3b48e1a52424cfd9c41736bf672f4552afb43f897a8624bdfc300e09db363d501dde
+containerchecksum a67e36643b1329bf5b295b5be477738478ca963ddbae7670bdc69532c4a12427388dfb16a72eea6095f58e96b083cc5de2a7f9ee1994ec491b270e6a1212a0f3
+doccontainersize 41908
+doccontainerchecksum 66c3d9262589ee023643bc6c78560ccaa65bf39b44e114c8707ed8a98c1eeddca4c4693f158f4b577133a72218bcbbb28dffe933ccdd14b0ad60fb34502252f8
docfiles size=20
RELOC/doc/latex/projlib/DEPENDS.txt
RELOC/doc/latex/projlib/LICENSE
@@ -267491,8 +267942,8 @@ docfiles size=20
RELOC/doc/latex/projlib/logo/ProjLib-logo.pdf
RELOC/doc/latex/projlib/logo/ProjLib-logo.png
RELOC/doc/latex/projlib/logo/ProjLib-logo.tex
-srccontainersize 31556
-srccontainerchecksum 0d943cd81f384da704841841fab42276b66db825258b4aaa0392ee651527960be60a80d87469a679ee7292a0096c5d438f4c76ad39154981b113cfd12e273d44
+srccontainersize 31524
+srccontainerchecksum 4303b5cb9c762f7098cd547d4a2d37300d5f8717ee251a196efe916cd57a242440c831567347b89a7d20292b8366f903832c240520cdb31af5adde0b6a6d3ead
srcfiles size=78
RELOC/source/latex/projlib/ProjLib.dtx
RELOC/source/latex/projlib/ProjLib.ins
@@ -268066,10 +268517,10 @@ binfiles arch=aarch64-linux size=4
name ps2eps.amd64-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of ps2eps
-containersize 4564
-containerchecksum e9d0c580fc5ab3f433ed64f6f8727c8f1fa77867b45a5a11f924c32521644a59f69c6d96227c919aa132117ec8c8fa5c508e96b0d8d0934850ec8487b60a888e
+containersize 4328
+containerchecksum fa3cdbbbf33e90c44ebb11bfccf1697e3f605f2773f5f6b0fc85580eb77c99b307e4c5a9c9176943fbc4049944e93653f05d9dcc4b3f51f7c3ad379974fcbe78
binfiles arch=amd64-freebsd size=4
bin/amd64-freebsd/bbox
bin/amd64-freebsd/ps2eps
@@ -268086,30 +268537,30 @@ binfiles arch=amd64-netbsd size=4
name ps2eps.armhf-linux
category TLCore
-revision 63092
+revision 70489
shortdesc armhf-linux files of ps2eps
-containersize 3904
-containerchecksum ecf6759991694cbbe3714e8442ddb77413324d006b83f04e5f7293549fae886f5df24767c07082f96eb3a20348c0eda3571570cf00003519710ae3dd775f9dcb
+containersize 3908
+containerchecksum aef57c167db2980808a08ac9c461a53e5d4558833da30d5ba50bc54646b1e1581044b353bc493d218fd081c560320afe1dc60cb466eacef6964f2a4783298ea1
binfiles arch=armhf-linux size=4
bin/armhf-linux/bbox
bin/armhf-linux/ps2eps
name ps2eps.i386-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc i386-freebsd files of ps2eps
-containersize 4504
-containerchecksum b13f702b2a6a14a3a58f15694f17b416699bf5d16d2799fc035d726cb8b26b63e3c00adf06030089304e2661ba5cacf4812880acf98e465bb5c8909464fcd6b7
+containersize 4332
+containerchecksum 91bac59fc0848d1b0e0415f3a86c1375d7ce4dd2dd090b0f476d5b4bcd7b71b7edfa20489cdc88b721a67231b70deb665e8da697c2abbfe6ac4eb38bd07720a2
binfiles arch=i386-freebsd size=4
bin/i386-freebsd/bbox
bin/i386-freebsd/ps2eps
name ps2eps.i386-linux
category TLCore
-revision 62210
+revision 69782
shortdesc i386-linux files of ps2eps
-containersize 4180
-containerchecksum e69629dbaa44a07b0c3fc46f8ca64ce768627019e6799507f6fc77321d2be8846eaaacad411cc9130889fe13a668f88514a08db3c0fb24990d9eaf9d0d7d337d
+containersize 4184
+containerchecksum 6903d25ff781e9289ce54f81a832b4381e36e4555e7b1abb5bc0d9a2eca1f0680e3a05afd9a984b37ab64b1c3d0f9698c8a8461e2409f877206ded4c0b778354
binfiles arch=i386-linux size=4
bin/i386-linux/bbox
bin/i386-linux/ps2eps
@@ -268126,41 +268577,41 @@ binfiles arch=i386-netbsd size=4
name ps2eps.i386-solaris
category TLCore
-revision 62206
+revision 69782
shortdesc i386-solaris files of ps2eps
-containersize 4708
-containerchecksum d755915fb9e1235f37f2ebfe318dfb1b8f5b820a923447864681764cfe1a00a212f17366c25f143ab0dc74198d618fc5798e26300ae56b705b81455f02a932e3
+containersize 4592
+containerchecksum d346ffd5b2eae59e9243cac4a49fea41fb235f25576d64a9fcf0f5e454f309bf9cad011319f714ede165242441b1950b00a36ba1d43884d993a065fa316d4896
binfiles arch=i386-solaris size=4
bin/i386-solaris/bbox
bin/i386-solaris/ps2eps
name ps2eps.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of ps2eps
-containersize 12348
-containerchecksum 67d4a1f212d87ce6f83803c638b27a452546bd1abf411d830c4138b27192368f35a338cdc66491d1bfe502830d6952ba05b35fed619f5c873f124db15e6a4965
+containersize 12344
+containerchecksum 07a2c9e8e066cc948159cfbc7392b8848d47e098a1e0cd39e793fd02736cb19a501df7b341197ccc660cd2828f5659fa669651382b63d9bba18323a7402c20f9
binfiles arch=universal-darwin size=30
bin/universal-darwin/bbox
bin/universal-darwin/ps2eps
name ps2eps.windows
category TLCore
-revision 65891
+revision 69788
shortdesc windows files of ps2eps
-containersize 5820
-containerchecksum e4dfdf01259b72c9eb24cc77fb3567c5055fb8d4a6c30437407ee0de896a392ed9dd7986bc614ee56ff0e3082a276b75de1823e2b4ec10b8a2e5aaa8f1eedfe4
+containersize 5828
+containerchecksum fddc7b683e80c2661fa4b4ff5e9fedc4914947f99ab99ca837719ba4a1508b65a66afb13d9c54043896ac6d922740f804202e44aa0f66a64223dc9ab895a544b
binfiles arch=windows size=5
bin/windows/bbox.exe
bin/windows/ps2eps.exe
name ps2eps.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of ps2eps
-containersize 4532
-containerchecksum 7f79da18e7b370562d77d62eee6a49153a14a132c245b976f9467b11742b78abb7548379a8b4e4d8f1ea02fe216942cacf605b1155e32d694fe17b0afb06dcd7
-binfiles arch=x86_64-cygwin size=5
+containersize 4468
+containerchecksum baddd05eb1df114a297fe500a4d40327ee110ba71fa595a46ace6df62306c691af0f37dd06e12ecc77faa371e2d8d08dce8eee0e0e75586e0748db111cba7fb6
+binfiles arch=x86_64-cygwin size=4
bin/x86_64-cygwin/bbox.exe
bin/x86_64-cygwin/ps2eps
@@ -268176,10 +268627,10 @@ binfiles arch=x86_64-darwinlegacy size=5
name ps2eps.x86_64-linux
category TLCore
-revision 62187
+revision 69782
shortdesc x86_64-linux files of ps2eps
-containersize 4076
-containerchecksum 54ac07db17dfcc29178917860b1f3f11d19c89a74743857e0115f4500f160698ef27ce84b84fda6fadbc28bd5e5197304c4b5bfa9a93eb847d0ec98d3b33ef49
+containersize 4080
+containerchecksum 88b448f61de9623a367ed5eddeffbb9455faf8fb58f901c38f293fccbb5f436d9a0af752e672276a3477a79edcb8aca2845b2507358039bb16da6610e582e126
binfiles arch=x86_64-linux size=5
bin/x86_64-linux/bbox
bin/x86_64-linux/ps2eps
@@ -268196,11 +268647,11 @@ binfiles arch=x86_64-linuxmusl size=4
name ps2eps.x86_64-solaris
category TLCore
-revision 62206
+revision 69782
shortdesc x86_64-solaris files of ps2eps
-containersize 4660
-containerchecksum a6cfbd430c77c2baa76fb67129e2f4264f054108c6711da19f9ac6e5666b028ec05028be2b283169e0b8896eb86f58b7de88f485f90c8f592d8acc78e7b6f683
-binfiles arch=x86_64-solaris size=4
+containersize 4916
+containerchecksum 1749968b2ee16064db7bbce65ebad37c29ef8c2f420751abd24f33ff6511fdaa9ddbcb871332ea1d43ad624a000a7dc954d91bc3cc76456260ab9c76c77788c1
+binfiles arch=x86_64-solaris size=5
bin/x86_64-solaris/bbox
bin/x86_64-solaris/ps2eps
@@ -268232,10 +268683,10 @@ catalogue-topics ps-manip font-proc
name ps2pk.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of ps2pk
-containersize 85732
-containerchecksum ff6891791c96f390ad6088943ce68e4c225ab5c423eec9857d1d73f850a5c999d825052ca4247b005c9078a3267eb3be50ff44828bb0700952e15d3b88b05ca8
+containersize 86284
+containerchecksum 404226fe3ee5c69f6c8ab3b636951e05de8acb11355f7c5c197d7d7e633564ebeef57ae683a596cedc763bb1fc3a507815f672a7f34808f02bc5d0304b90d6c9
binfiles arch=aarch64-linux size=64
bin/aarch64-linux/mag
bin/aarch64-linux/pfb2pfa
@@ -268244,11 +268695,11 @@ binfiles arch=aarch64-linux size=64
name ps2pk.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of ps2pk
-containersize 95968
-containerchecksum 2ceecf4795d1c5488caa827720d0b76c5687e489fe254168aab051d3022f0896839580f6fc13a96f9b6f5ef1d9e51ef8ff3c883d9f66748f8d2c8dee64a793db
-binfiles arch=amd64-freebsd size=60
+containersize 84452
+containerchecksum 10c463bf5555127a3b3740938f66390c719d04113b5f942b27d65d9174f649de512f45f65b28a062af42052ab159352f11527c0d677eb641e231d7af147197c0
+binfiles arch=amd64-freebsd size=69
bin/amd64-freebsd/mag
bin/amd64-freebsd/pfb2pfa
bin/amd64-freebsd/pk2bm
@@ -268256,11 +268707,11 @@ binfiles arch=amd64-freebsd size=60
name ps2pk.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of ps2pk
-containersize 82588
-containerchecksum be932debf4531e49f8cbfab923304f9868349a920377481585a767a5cbc51fd4eba5094a530131a68be1dc8f44a070033c29b066efa4965bdbd979eba0644d94
-binfiles arch=amd64-netbsd size=68
+containersize 82956
+containerchecksum e5491808e43fe644fc3a15282ae0f8471c1c2868423e9136b891aa3e5ce620cad3b807b0f586f2973b6acec5d20b2b8b0809964ef32e2a72b18665ab710b79ff
+binfiles arch=amd64-netbsd size=69
bin/amd64-netbsd/mag
bin/amd64-netbsd/pfb2pfa
bin/amd64-netbsd/pk2bm
@@ -268268,10 +268719,10 @@ binfiles arch=amd64-netbsd size=68
name ps2pk.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of ps2pk
-containersize 70780
-containerchecksum 9675c57e7a475ae7d0aa22eed6b4686be796149f5d4f4f2da1226fb31743df0d8b366ea4a9478a377a6d5d71c05a45072687d1fa68350217a1f19f7ed62edf88
+containersize 71036
+containerchecksum 04cb0bd7ad5af72c8461719d6f20c3bb897e2477ad56acd901f50907b4f238556a18a3e66a22dd200f7ee002b319ee05aee232bc2cb7baff36a0d418970636fe
binfiles arch=armhf-linux size=48
bin/armhf-linux/mag
bin/armhf-linux/pfb2pfa
@@ -268280,11 +268731,11 @@ binfiles arch=armhf-linux size=48
name ps2pk.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of ps2pk
-containersize 86412
-containerchecksum b51db94f0ea503b9d691d06587ce3d29a3795b379cf061d5b766137c48fd56a0e2471ddf76afab39edff4f6f8c19efb2cc9775396b7e7d72e4ebe7c759958306
-binfiles arch=i386-freebsd size=54
+containersize 84436
+containerchecksum e00f4a16f5fc53eb63f68255796dfd4e483a59ce9b791ebfede6ec35353245f8ff33dcb02d71906df833c998fbadc80df51ee3fab388730fa74d66fc7d1fae6f
+binfiles arch=i386-freebsd size=69
bin/i386-freebsd/mag
bin/i386-freebsd/pfb2pfa
bin/i386-freebsd/pk2bm
@@ -268292,10 +268743,10 @@ binfiles arch=i386-freebsd size=54
name ps2pk.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of ps2pk
-containersize 93080
-containerchecksum 4cda1ae8c0aa976ae2739b4f3636d374e819ad8d430fa25a6cb7dbfea77c602603ca36039fbaaa9edfb8d509424de9fe7dd8b907caad51cb01d77be79586d548
+containersize 93528
+containerchecksum 1784b099d88525c2ae5b93006ebd5f8dc7422e55cc798ca1fff1f5323b3794347876b574c7b91a1d7086f8055e0e0f5cfb127f9d1d7c122f43a0ece76d7ba937
binfiles arch=i386-linux size=62
bin/i386-linux/mag
bin/i386-linux/pfb2pfa
@@ -268304,10 +268755,10 @@ binfiles arch=i386-linux size=62
name ps2pk.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of ps2pk
-containersize 73628
-containerchecksum aa5e13ee8ca62d0594b08cee9bfe95dde30fd1fe35160abd931254ad282b4802bb79f1302b06a7a889c30bd5212b5ce8c345cd8856be7de49639274c4ffe05ec
+containersize 74020
+containerchecksum 814f949f810820e19917625e7e3bf605c511e5a80ecc0caf09615a41a8ce8143e09e479b3bce892d6a455b4c7fec44d79468bba2a31ed333f672cc5126de69a8
binfiles arch=i386-netbsd size=63
bin/i386-netbsd/mag
bin/i386-netbsd/pfb2pfa
@@ -268316,11 +268767,11 @@ binfiles arch=i386-netbsd size=63
name ps2pk.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of ps2pk
-containersize 85220
-containerchecksum beeb46a47d2db6f4a5cb03796a36d4f0d92655c8bfd805b65858a5df9545b7189e5b4c32d953d9052a5c99ae331779502d92272f59b7c3c4c7464ce5fe0476b0
-binfiles arch=i386-solaris size=52
+containersize 87920
+containerchecksum 85d4205423a032fdfe9096dccc09d53d7be35a8d06a05a664d42703d51f80795cb0b1aab9d491226d39aa6d48bcc5fef6e6bec5a6cd5506baef1af8d715cae2a
+binfiles arch=i386-solaris size=54
bin/i386-solaris/mag
bin/i386-solaris/pfb2pfa
bin/i386-solaris/pk2bm
@@ -268328,10 +268779,10 @@ binfiles arch=i386-solaris size=52
name ps2pk.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of ps2pk
-containersize 175280
-containerchecksum 724be1709de4df5a20d9bd6c42866a99062bb7e7ed6c5aeccb48169cf206c1b62e254f6024e640210360db14e1d49962041c2038e9c75b1dc9b365453d066a2a
+containersize 176072
+containerchecksum 0495e40b558636b7c21391dbc2e46db6799862b748bb64a34d5b07d75d4e42d42e662a20621018d723d944b8f50a47ef5cde636d6ae4b9db1974a5e33329e425
binfiles arch=universal-darwin size=207
bin/universal-darwin/mag
bin/universal-darwin/pfb2pfa
@@ -268340,10 +268791,10 @@ binfiles arch=universal-darwin size=207
name ps2pk.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of ps2pk
-containersize 60732
-containerchecksum baa2f4061cc7681648d998f650ac97b98c07a5dc9edb5851da9e1c9bded27e8e09d7c7af2d51c72cc0d269e2931d6e35a90eba37714fb30a21a8111cd9de5141
+containersize 60696
+containerchecksum 0fa1d68ccfc23bf6a55c9de513ebd2d4ee28af9e85b9ac6df4eb80a9d2e2b2b8e2d8f52da705da6edd4439613036a6a645d36153ae66abd999bf1f5821531ee4
binfiles arch=windows size=51
bin/windows/mag.exe
bin/windows/pfb2pfa.exe
@@ -268352,11 +268803,11 @@ binfiles arch=windows size=51
name ps2pk.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of ps2pk
-containersize 61992
-containerchecksum c5d260f9b0299056a74f7efefc56db071e1bdfb81fc7cd36ba730323638499cfa2bc8a8d3133e4ebd26e6bea04fbea2daa2f4b4814c8371cd94173efc42e4c36
-binfiles arch=x86_64-cygwin size=42
+containersize 61892
+containerchecksum 25283f5182396ce29bdcb3fd4354fa247951f1bdd206311780dd8bd5949d8a5af221b8ad1a78ea77bbe90ff1cdecad90d10a87a09ebea8fdc13f98be2fb2217a
+binfiles arch=x86_64-cygwin size=41
bin/x86_64-cygwin/mag.exe
bin/x86_64-cygwin/pfb2pfa.exe
bin/x86_64-cygwin/pk2bm.exe
@@ -268364,10 +268815,10 @@ binfiles arch=x86_64-cygwin size=42
name ps2pk.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of ps2pk
-containersize 84940
-containerchecksum 9d1872ccca60d6569cb277ea45002df7bb5bbfff81f4ebe04623562c7ffbb0a88818e23534bc249eb7561b6bd3bcfb01d1635a7863827da5c46c62457c9b4628
+containersize 85520
+containerchecksum df3bc3ced2a0b78368ab42dab1779a2c80420850999921406ab98235588789563e165eb0cb611f5d7976c13b6eb3a3acc59a3776488f34bfbcb316012dfac6cb
binfiles arch=x86_64-darwinlegacy size=58
bin/x86_64-darwinlegacy/mag
bin/x86_64-darwinlegacy/pfb2pfa
@@ -268376,10 +268827,10 @@ binfiles arch=x86_64-darwinlegacy size=58
name ps2pk.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of ps2pk
-containersize 90000
-containerchecksum 9440efe56d0533a0a771bc80946936d233904edad23527b1bec632fe305d1b572c3b5c4582b80abd3e4885aca2382a3771e7067928755e6f576c9df336eb3614
+containersize 90372
+containerchecksum c51d24178035682c8f8d2de5de9fa8109efe1634154c92b2680f81286a564c8ea4001acb2f569c2356b6aec6c0853ef1e7e8f7f01e478c58c86849276f8aa7ef
binfiles arch=x86_64-linux size=62
bin/x86_64-linux/mag
bin/x86_64-linux/pfb2pfa
@@ -268388,11 +268839,11 @@ binfiles arch=x86_64-linux size=62
name ps2pk.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of ps2pk
-containersize 93460
-containerchecksum 4441da3b8385e6033db94970fa909be69c210e98fb34db671033a9f9d67788481571cb0150bab45b1ab13636b29ed20f16df8c2c0651923e0979a4e4a5699a09
-binfiles arch=x86_64-linuxmusl size=62
+containersize 93904
+containerchecksum 492ad4a4f04f6e6bea2f05fa82d55d74b95d6829c32b353d0d8fdcc04a89a0dced89cc03e0e2000f463b7e8eebc8db9bf531490d17c4e6709a66cb1446d1774e
+binfiles arch=x86_64-linuxmusl size=63
bin/x86_64-linuxmusl/mag
bin/x86_64-linuxmusl/pfb2pfa
bin/x86_64-linuxmusl/pk2bm
@@ -268400,11 +268851,11 @@ binfiles arch=x86_64-linuxmusl size=62
name ps2pk.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of ps2pk
-containersize 95116
-containerchecksum f7d4433db6e9f0f51c75c2900d3126424148b454124b2dd1b8a2c2b4d503d8998bc1bcc9f637e74cb5d982513b2a682b12c8e51ac81187713bb615b1f4ec4295
-binfiles arch=x86_64-solaris size=62
+containersize 98560
+containerchecksum 96b28096b9ab0fb40244ce5e7bcf0dd4691a35cebd2c6fd208676eeda8c5156899c50eec6c67b1cb138b45dc86e9688698ba5534fb37c6bab267e819292bdaba
+binfiles arch=x86_64-solaris size=66
bin/x86_64-solaris/mag
bin/x86_64-solaris/pfb2pfa
bin/x86_64-solaris/pk2bm
@@ -273170,11 +273621,11 @@ catalogue-version p17
name psutils.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of psutils
-containersize 63240
-containerchecksum 00b0543748fc28f28c22c46c126575c90fff4f408f975c5b0811981fb18a2154590039feb09fefff80a63ed5bfe4f020cbdf69a67239269be6870079fc510390
-binfiles arch=aarch64-linux size=101
+containersize 63232
+containerchecksum 400565434950a0533d1b79e11d9a1e2f468c91ae3fcd04e21c73261ce69a325d17efe5bfc89cd2bd63da41d22ab57efb3e53523906ebe11223102c1e59c3d864
+binfiles arch=aarch64-linux size=102
bin/aarch64-linux/epsffit
bin/aarch64-linux/extractres
bin/aarch64-linux/includeres
@@ -273187,11 +273638,11 @@ binfiles arch=aarch64-linux size=101
name psutils.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of psutils
-containersize 67952
-containerchecksum 595981f758e12388fe023eee45270ed7ca10f57eb51a2ff497e80e18e241811aad920f6ef51ec19abaa2f710680b49749fd4da316f1376303fcf72ca56cf0d7e
-binfiles arch=amd64-freebsd size=103
+containersize 73292
+containerchecksum 61634f460e135f6e3da19013a4611baf2e4a00bc00a44c26b42b7eceb28da6d7e5831f9b0003006453ce4e6a076ea66263931407d70e9f8a53ab25e7c6257253
+binfiles arch=amd64-freebsd size=122
bin/amd64-freebsd/epsffit
bin/amd64-freebsd/extractres
bin/amd64-freebsd/includeres
@@ -273204,11 +273655,11 @@ binfiles arch=amd64-freebsd size=103
name psutils.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of psutils
-containersize 69120
-containerchecksum 9f1bdd02001e7ce104bcc1d529fdf72419f019cb99dadb374de2b3acf2b6128560eeb81dc60342bce0c6a2fb679922eb171007c77c7d54bc2c9af5fa0e021484
-binfiles arch=amd64-netbsd size=118
+containersize 68688
+containerchecksum 8899183df9ba7e397631c0335fb96d87b799f3d483445605daf24954c5e8eebbd56981f80379692b3195767ebc7bbca513dcc941f0d191b82345da508580f06d
+binfiles arch=amd64-netbsd size=120
bin/amd64-netbsd/epsffit
bin/amd64-netbsd/extractres
bin/amd64-netbsd/includeres
@@ -273221,11 +273672,11 @@ binfiles arch=amd64-netbsd size=118
name psutils.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of psutils
-containersize 49132
-containerchecksum 061a794b2c92240bf889d2b70aa5804cc3a4876ee6b275b66b6ed62166d5a13b53ca59a140f8261eca326d61b0761dd5af25b003c327fec8a01959f044753e0b
-binfiles arch=armhf-linux size=80
+containersize 49160
+containerchecksum 38cb95b2514788044e85f77fad80985b7061ba1c08c5ba938d5a51185cd8dcd07c6536bd116e0445011aac2b9c004d8e6012e2cf7583da01ee431bb35822a18e
+binfiles arch=armhf-linux size=81
bin/armhf-linux/epsffit
bin/armhf-linux/extractres
bin/armhf-linux/includeres
@@ -273238,11 +273689,11 @@ binfiles arch=armhf-linux size=80
name psutils.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of psutils
-containersize 67328
-containerchecksum 0c5366b8051bd25b5bbd571e0802e100e1cc641c8deb4f853efd3126369b3a0970105adcbc311cec9edf48f771257041443782c3ba18b60f307b39048c6de72a
-binfiles arch=i386-freebsd size=91
+containersize 73420
+containerchecksum 0e892239cf001d8c483ec6463ced9c790ef2234965871c80bf96c99730c83780dafc4d958b640b61cf64ab71f573336316d369e225553a60d9c91fedaad43337
+binfiles arch=i386-freebsd size=122
bin/i386-freebsd/epsffit
bin/i386-freebsd/extractres
bin/i386-freebsd/includeres
@@ -273255,11 +273706,11 @@ binfiles arch=i386-freebsd size=91
name psutils.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of psutils
-containersize 68616
-containerchecksum 894abca9aed4cd64b2d28a814b1f0542b4539cd7157b080abfaa6588c989934f4cf3313fed4cf40d41c8c58ab27a3b9d8f90b19630afc0ded9f1c94c53961319
-binfiles arch=i386-linux size=104
+containersize 68308
+containerchecksum 591ee533668486d2fe2c31b9b83abbf11e9e7da95e1a5f6e8378b988374847c1dea2fc406aa860fc5fb343ee672fc3da205cfb5480afc152be1af1c4b99daca1
+binfiles arch=i386-linux size=106
bin/i386-linux/epsffit
bin/i386-linux/extractres
bin/i386-linux/includeres
@@ -273272,11 +273723,11 @@ binfiles arch=i386-linux size=104
name psutils.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of psutils
-containersize 63576
-containerchecksum 3747f14367bd7c0882f93ba57eb92ecad83cc79733ab5ec5d025200db4c44fd77ee7c02ebd98619628900c40127e0a5742e65316b9b9dccd4c31aa8fe43ad22a
-binfiles arch=i386-netbsd size=107
+containersize 62916
+containerchecksum 7a2f232b52614659388ed7dc28fd786d9906da1b186ecead363676456f31dd364e6cf8a9791ee8f510897deddb3698643b187feb1549d48d3676154b42f54992
+binfiles arch=i386-netbsd size=108
bin/i386-netbsd/epsffit
bin/i386-netbsd/extractres
bin/i386-netbsd/includeres
@@ -273289,11 +273740,11 @@ binfiles arch=i386-netbsd size=107
name psutils.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of psutils
-containersize 66412
-containerchecksum f444bbfe9b806faea8a71181eadbf296ff90417dfd70d586fe5e1e959c061e76fe464da88284685a3d3b5a96dc62e4b8c62defc6e88be6f342503d2acc885906
-binfiles arch=i386-solaris size=93
+containersize 72908
+containerchecksum 2222dc931d194c8c4f13e996be3d4aae41bd7f5c3c3b46b43bad48280d21a8866cbbd1cbf26d74dc7d21393357571837a13b991ad8c8f9297b60e4ee18b822b9
+binfiles arch=i386-solaris size=97
bin/i386-solaris/epsffit
bin/i386-solaris/extractres
bin/i386-solaris/includeres
@@ -273306,11 +273757,11 @@ binfiles arch=i386-solaris size=93
name psutils.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of psutils
-containersize 132364
-containerchecksum 6f21921eeaf9a8aa1a1d3978f8ba9f7985514742026893bc51d2beecb268767744eef9f7178d0263eb4f3261071911497cca0c1ea5e79586fb4d5838b050bdb7
-binfiles arch=universal-darwin size=338
+containersize 133592
+containerchecksum 07258d176b879a6184a9bf06c3ea8b50cd9042d359d9818a6387b1f1e1f380f5760fbfb73453d8cfc9558aba59fe39a55b72e8ff2539398e477b0230945658b8
+binfiles arch=universal-darwin size=342
bin/universal-darwin/epsffit
bin/universal-darwin/extractres
bin/universal-darwin/includeres
@@ -273323,10 +273774,10 @@ binfiles arch=universal-darwin size=338
name psutils.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of psutils
-containersize 27728
-containerchecksum bf00c6c3aa2d2606441d966db699403210592f238c5988414b47d788bb7565501568b806f2f7e2228b8d27a64eabb42d6465fb54b3e71430493fbf57cf77e74b
+containersize 27792
+containerchecksum 2cc76da09691aba833f89b3ae820225e52eb9538782d3324c33df8a0545c7619099f7f90623f4d3f0fbc87aa37c6eeda857a58198bd7ee077393654b6c270c1f
binfiles arch=windows size=37
bin/windows/epsffit.exe
bin/windows/extractres.exe
@@ -273340,11 +273791,11 @@ binfiles arch=windows size=37
name psutils.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of psutils
-containersize 23332
-containerchecksum 4b6038f2340b7e1f52efd5e2f5c5e9159d812064ba3c6e3a64552e21853111bc7ce11dd7b2aad90a8b8ea7d084f2a7221a2c6d2d43161dbff20f78081c946665
-binfiles arch=x86_64-cygwin size=39
+containersize 23260
+containerchecksum 3aff4d52b5c9613124c65bf96420b29f632488069c86bc6c68fb02c9fc7d5868f0163c8b82068b71932ef9e5b810e1339fe5bbc1e9dfb330b469d0c7f4e18897
+binfiles arch=x86_64-cygwin size=38
bin/x86_64-cygwin/epsffit.exe
bin/x86_64-cygwin/extractres
bin/x86_64-cygwin/includeres
@@ -273357,11 +273808,11 @@ binfiles arch=x86_64-cygwin size=39
name psutils.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of psutils
-containersize 62164
-containerchecksum 9f2b5cc9fbe3335e59246dd8e813314c52aa07c049c55f6ab3a89bfd6d9db9ffc2ce4a8ef64cc68f96f4e9c25637c0c14761ba283ab31e94913997a65186bd39
-binfiles arch=x86_64-darwinlegacy size=97
+containersize 63472
+containerchecksum a7f5ef281e1b5c0463e53ad8770ffd3240ced65e8e72b45b67fb281c1b3433e54f7c18f0195ef04f392e77ea082b89f0ef9f3e3a32cc5ac458b1cfa215354c86
+binfiles arch=x86_64-darwinlegacy size=98
bin/x86_64-darwinlegacy/epsffit
bin/x86_64-darwinlegacy/extractres
bin/x86_64-darwinlegacy/includeres
@@ -273374,11 +273825,11 @@ binfiles arch=x86_64-darwinlegacy size=97
name psutils.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of psutils
-containersize 69240
-containerchecksum 9fdec1edbd6499b4863bf382baa48badf6fa4183b9a42aec26b199952c997bd404ad4fb8dd4fb8bcb6edc2cd45a4cf87fc1a497d23d97fd4076c3486197ca4e4
-binfiles arch=x86_64-linux size=102
+containersize 69860
+containerchecksum e454c1acd9d50f3b8493985f21305cf619290afee5f34f3bbdba59bb3dc2dc6e9b6d61f9674cd56b0738cd42f024555b9fbe8fed92506c344d3b89dbbcebeb9f
+binfiles arch=x86_64-linux size=103
bin/x86_64-linux/epsffit
bin/x86_64-linux/extractres
bin/x86_64-linux/includeres
@@ -273391,11 +273842,11 @@ binfiles arch=x86_64-linux size=102
name psutils.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of psutils
-containersize 71796
-containerchecksum d5ba73cf167b37229bc279c5699beb8ca7f55e6c2ba8a580b2b6565b4fb97ba40719bc9b626eadbd47db28b3a689f93511e2c053ddd1d5b8af07377588e0fe10
-binfiles arch=x86_64-linuxmusl size=103
+containersize 72412
+containerchecksum 6485afe9a0e0285a62be80453323db5c1a843a9a166d36b8d35994fda25fd6c6ef40daebfacfe57f437c708cfcb5939663fcbdfaec65bdfb704245f067fe2a3a
+binfiles arch=x86_64-linuxmusl size=105
bin/x86_64-linuxmusl/epsffit
bin/x86_64-linuxmusl/extractres
bin/x86_64-linuxmusl/includeres
@@ -273408,11 +273859,11 @@ binfiles arch=x86_64-linuxmusl size=103
name psutils.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of psutils
-containersize 75712
-containerchecksum 3daf191608403c5ca59e0ecd3690a3ffbbdb26f36d16934162b1d7f4613957eea66b2a1ad196c67dbff3a7e930bf8a7e90edc918972fb42b9c36e7d9e30516cc
-binfiles arch=x86_64-solaris size=110
+containersize 78832
+containerchecksum 884cc59cd8075bc13adf95cc329a12a2efb358025e206351666c84e5c5f26f369b4322c91258dd01db995a371a90133721cd74299cca16551937da6f68db9d59
+binfiles arch=x86_64-solaris size=115
bin/x86_64-solaris/epsffit
bin/x86_64-solaris/extractres
bin/x86_64-solaris/includeres
@@ -273425,7 +273876,7 @@ binfiles arch=x86_64-solaris size=110
name ptex
category Package
-revision 66186
+revision 70058
shortdesc A TeX system for publishing in Japanese
longdesc pTeX adds features related to vertical writing, and deals with
longdesc other problems in typesetting Japanese. A manual (in both
@@ -273438,14 +273889,15 @@ depend plain
depend ptex-base
depend ptex-fonts
depend ptex.ARCH
-execute AddFormat name=eptex engine=eptex options="*eptex.ini" patterns=language.def fmttriggers=cm,hyphen-base,knuth-lib,plain,ptex-base,ptex-fonts,etex
-execute AddFormat name=ptex engine=eptex options="ptex.ini" fmttriggers=cm,hyphen-base,knuth-lib,plain,ptex-base,ptex-fonts
+depend uptex
+execute AddFormat name=eptex engine=euptex options="*eptex.ini" patterns=language.def fmttriggers=cm,hyphen-base,knuth-lib,plain,ptex-base,ptex-fonts,etex
+execute AddFormat name=ptex engine=euptex options="ptex.ini" fmttriggers=cm,hyphen-base,knuth-lib,plain,ptex-base,ptex-fonts
execute addKanjiMap ptex-@jaEmbed@@jaVariant@.map
-containersize 688
-containerchecksum dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f
-doccontainersize 145060
-doccontainerchecksum 160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293
-docfiles size=61
+containersize 692
+containerchecksum 606e65bb7a8ac2c91da7320571d7050c022c517dd721470adf8606b167a56dc137426f3b890e7802ebc455cd4448e500745006d53d834536d6ffc14815d7ca56
+doccontainersize 159488
+doccontainerchecksum cd494943530a85119c384db32e781ab0173e2b0333fd562e0b24d142603ebe2b9c412aabd42b6805cfe15e2ee74835b0734126f06538cd775a438f1b257fcafe
+docfiles size=67
texmf-dist/doc/man/man1/eptex.1
texmf-dist/doc/man/man1/eptex.man1.pdf
texmf-dist/doc/man/man1/makejvf.1
@@ -273456,6 +273908,8 @@ docfiles size=61
texmf-dist/doc/man/man1/pbibtex.man1.pdf
texmf-dist/doc/man/man1/ppltotf.1
texmf-dist/doc/man/man1/ppltotf.man1.pdf
+ texmf-dist/doc/man/man1/ptekf.1
+ texmf-dist/doc/man/man1/ptekf.man1.pdf
texmf-dist/doc/man/man1/ptex.1
texmf-dist/doc/man/man1/ptex.man1.pdf
texmf-dist/doc/man/man1/ptftopl.1
@@ -274130,11 +274584,11 @@ catalogue-topics japanese-doc
name ptex.aarch64-linux
category Package
-revision 66237
+revision 70276
shortdesc aarch64-linux files of ptex
-containersize 1128096
-containerchecksum 56f7d5e7db64e464ac407e49a13cfe7b9094cf8194d8373dacb730e2bfa133353454f188672e98552f08ce1e739ea8d0ba8a416e3098ec3cd643928107b96f1a
-binfiles arch=aarch64-linux size=835
+containersize 940308
+containerchecksum fd90610ce7ac1ffa1ac110bc414a97f29c32b96c74ff4aa79d8338c4e625ee9a777e63dcf041cfda92db7093ef52a678a77c8d9b139e74116f3100bfd52165b1
+binfiles arch=aarch64-linux size=704
bin/aarch64-linux/eptex
bin/aarch64-linux/makejvf
bin/aarch64-linux/mendex
@@ -274143,17 +274597,18 @@ binfiles arch=aarch64-linux size=835
bin/aarch64-linux/pdvitype
bin/aarch64-linux/pmpost
bin/aarch64-linux/ppltotf
+ bin/aarch64-linux/ptekf
bin/aarch64-linux/ptex
bin/aarch64-linux/ptftopl
bin/aarch64-linux/r-pmpost
name ptex.amd64-freebsd
category Package
-revision 66084
+revision 70276
shortdesc amd64-freebsd files of ptex
-containersize 1364708
-containerchecksum aa9e81f24576e9b1f2feda38e2b9378464cdecfb56cc40c7211d22a386574ed9a3d97049f75d0ab2ce08e95ce73c763683ad311c282de398b2cb2befc864654e
-binfiles arch=amd64-freebsd size=1010
+containersize 898544
+containerchecksum 5fa86ffd6ce5df7a19f26c76a60f18d0c48269fef6233804c7c2e95202414a6849a2181294e7e6f2750b75ad12761d990f0078431ac5c30341cddc75fb572426
+binfiles arch=amd64-freebsd size=1478
bin/amd64-freebsd/eptex
bin/amd64-freebsd/makejvf
bin/amd64-freebsd/mendex
@@ -274162,17 +274617,18 @@ binfiles arch=amd64-freebsd size=1010
bin/amd64-freebsd/pdvitype
bin/amd64-freebsd/pmpost
bin/amd64-freebsd/ppltotf
+ bin/amd64-freebsd/ptekf
bin/amd64-freebsd/ptex
bin/amd64-freebsd/ptftopl
bin/amd64-freebsd/r-pmpost
name ptex.amd64-netbsd
category Package
-revision 66083
+revision 70286
shortdesc amd64-netbsd files of ptex
-containersize 1060444
-containerchecksum 0ecfeb6994574bb9d79238ce3dff987da6282d7c563e92466046521eeb4ca0d4abc1f2735e8c3e6e996c38ec5109dcdbb09f5c886e2c92ec30c16a83e5b5d1ac
-binfiles arch=amd64-netbsd size=1618
+containersize 893488
+containerchecksum 0b0b6398d5377b1dd92fa30e28357053ccbf685e8602d7889045c06f94e1b73f39c13ec64b1ec123462b3fe522c13b1ae3ef9461ef26145e5e53a3e3198594eb
+binfiles arch=amd64-netbsd size=1480
bin/amd64-netbsd/eptex
bin/amd64-netbsd/makejvf
bin/amd64-netbsd/mendex
@@ -274181,17 +274637,18 @@ binfiles arch=amd64-netbsd size=1618
bin/amd64-netbsd/pdvitype
bin/amd64-netbsd/pmpost
bin/amd64-netbsd/ppltotf
+ bin/amd64-netbsd/ptekf
bin/amd64-netbsd/ptex
bin/amd64-netbsd/ptftopl
bin/amd64-netbsd/r-pmpost
name ptex.armhf-linux
category Package
-revision 66237
+revision 70489
shortdesc armhf-linux files of ptex
-containersize 969960
-containerchecksum ede731d87c0e3f8c843cebf8ba30d8e9b8dd8ee9949d9d9886a804d6b8dcaf0c98d77f01de5a1a1ba26d2a6318e86183a3e36245954a2847827637a68d34880e
-binfiles arch=armhf-linux size=705
+containersize 806420
+containerchecksum e072ef01bfee9b8d31ca81e01d31dea3703f15f46b3aa34edbfc52cf40b3b1581aa59cac1fd642cf5afcb4f36713ccd24765d8a153ae649e374a477568f9ac75
+binfiles arch=armhf-linux size=607
bin/armhf-linux/eptex
bin/armhf-linux/makejvf
bin/armhf-linux/mendex
@@ -274200,17 +274657,18 @@ binfiles arch=armhf-linux size=705
bin/armhf-linux/pdvitype
bin/armhf-linux/pmpost
bin/armhf-linux/ppltotf
+ bin/armhf-linux/ptekf
bin/armhf-linux/ptex
bin/armhf-linux/ptftopl
bin/armhf-linux/r-pmpost
name ptex.i386-freebsd
category Package
-revision 66084
+revision 70276
shortdesc i386-freebsd files of ptex
-containersize 1154728
-containerchecksum eebe47afbc326b9ed2bdcde50a95261625e22f8e75e888022d4ad12fac3d187561f01d725db4f01ce182901f00a40f810b1566a129e84dd5e420475224693164
-binfiles arch=i386-freebsd size=876
+containersize 897092
+containerchecksum 8ce1bf54f2f9bfd57a473e31282f2465c21cb95bcd6e970b4840bc335250d5a6bda066f756f6f3825f04c05c287e0762481c0140e438532fad230e4b00ddf3ef
+binfiles arch=i386-freebsd size=1478
bin/i386-freebsd/eptex
bin/i386-freebsd/makejvf
bin/i386-freebsd/mendex
@@ -274219,17 +274677,18 @@ binfiles arch=i386-freebsd size=876
bin/i386-freebsd/pdvitype
bin/i386-freebsd/pmpost
bin/i386-freebsd/ppltotf
+ bin/i386-freebsd/ptekf
bin/i386-freebsd/ptex
bin/i386-freebsd/ptftopl
bin/i386-freebsd/r-pmpost
name ptex.i386-linux
category Package
-revision 66084
+revision 70276
shortdesc i386-linux files of ptex
-containersize 1265592
-containerchecksum b5609d55b57355f6a6e71300a9359f9c00858d9dcc40ae530c61a342a07cb2c3e56113e5f4a2e910a69152d39826eadd0bb8e2f0147cedfc5c3c52ae858f0713
-binfiles arch=i386-linux size=953
+containersize 1088376
+containerchecksum 86062ec665b43ea04f8346aacd09264ca02554ccfce4c11653f60a3af48fcb3211017fc31dbbe039b983d5471c9997eb87ecb6ae215abd2d99a380febaa270e6
+binfiles arch=i386-linux size=841
bin/i386-linux/eptex
bin/i386-linux/makejvf
bin/i386-linux/mendex
@@ -274238,17 +274697,18 @@ binfiles arch=i386-linux size=953
bin/i386-linux/pdvitype
bin/i386-linux/pmpost
bin/i386-linux/ppltotf
+ bin/i386-linux/ptekf
bin/i386-linux/ptex
bin/i386-linux/ptftopl
bin/i386-linux/r-pmpost
name ptex.i386-netbsd
category Package
-revision 66083
+revision 70286
shortdesc i386-netbsd files of ptex
-containersize 927124
-containerchecksum cb4f97132f0169b216f88f75fd01c681bfbe63f0c389ceadc769e13bbc92eb42b794ee6ea4b584e0f63915325aa6669776efd074e217b25d1f7b0e0b92cee891
-binfiles arch=i386-netbsd size=1436
+containersize 800328
+containerchecksum f8540f3dcdad0783684713ed76c55245e93e037fe664a5ae7a97104495e792df04793d4849c843f14f15eaff19d121bd01e98c60b66a1cc4a4da4871801c5ece
+binfiles arch=i386-netbsd size=1314
bin/i386-netbsd/eptex
bin/i386-netbsd/makejvf
bin/i386-netbsd/mendex
@@ -274257,17 +274717,18 @@ binfiles arch=i386-netbsd size=1436
bin/i386-netbsd/pdvitype
bin/i386-netbsd/pmpost
bin/i386-netbsd/ppltotf
+ bin/i386-netbsd/ptekf
bin/i386-netbsd/ptex
bin/i386-netbsd/ptftopl
bin/i386-netbsd/r-pmpost
name ptex.i386-solaris
category Package
-revision 66145
+revision 70276
shortdesc i386-solaris files of ptex
-containersize 1120032
-containerchecksum 40792f99d15e0b3a82233e6f6a8095d262d4cc6d9ead5dc27d9820cb06daedd730b3b39b4f563543983f044b94fec07d1abb3f4c6810a66ec747fe50d787d900
-binfiles arch=i386-solaris size=770
+containersize 997724
+containerchecksum 15d9b081ffe639868cf5bed7928321824249663b2d48dd34138f4ae2d18315673bfc5d039b728b530b8b6f4d92857936b587bbc28e9701a344ff2b76dc47266e
+binfiles arch=i386-solaris size=710
bin/i386-solaris/eptex
bin/i386-solaris/makejvf
bin/i386-solaris/mendex
@@ -274276,17 +274737,18 @@ binfiles arch=i386-solaris size=770
bin/i386-solaris/pdvitype
bin/i386-solaris/pmpost
bin/i386-solaris/ppltotf
+ bin/i386-solaris/ptekf
bin/i386-solaris/ptex
bin/i386-solaris/ptftopl
bin/i386-solaris/r-pmpost
name ptex.universal-darwin
category Package
-revision 66107
+revision 70274
shortdesc universal-darwin files of ptex
-containersize 2401748
-containerchecksum 0181f856cc32b5b1a1d46b7bc49e85719d040da8806cd07839e22e434786ddac1e4f321af7d4b924f3c64282015cbfbf36ed3926d226bc7c1a16d909fa5f664d
-binfiles arch=universal-darwin size=1924
+containersize 1910356
+containerchecksum 23338ff66cb255fd8a26406b4e05e0a29081832f03f7a20aaa3f6b8f196fdc07bf4d14089468e0c50bc0ad6c901667df5e263bf1b06a1f94aa04fc8047c4b3bf
+binfiles arch=universal-darwin size=1567
bin/universal-darwin/eptex
bin/universal-darwin/makejvf
bin/universal-darwin/mendex
@@ -274295,18 +274757,18 @@ binfiles arch=universal-darwin size=1924
bin/universal-darwin/pdvitype
bin/universal-darwin/pmpost
bin/universal-darwin/ppltotf
+ bin/universal-darwin/ptekf
bin/universal-darwin/ptex
bin/universal-darwin/ptftopl
bin/universal-darwin/r-pmpost
name ptex.windows
category Package
-revision 66043
+revision 70576
shortdesc windows files of ptex
-containersize 1354824
-containerchecksum 261ded92d5a588ac1388421b05a27e04868acf89d276ddd804f52b3d69fdf7e44c37a0920798bd259e816c04686dc3f6afaf8d56f710c54cb5270bd05c8ea955
-binfiles arch=windows size=935
- bin/windows/eptex.dll
+containersize 1153368
+containerchecksum 3e848b897ed235d8aa11ccd96de65a5a22fea703ee08e8b5d9c8a31bca51e03cdcb1f131e1e1ef5fd0b19e0d36b5ac3b67a4b4685af462b7aa2f1b7c5433eb9c
+binfiles arch=windows size=822
bin/windows/eptex.exe
bin/windows/makejvf.exe
bin/windows/mendex.exe
@@ -274316,18 +274778,20 @@ binfiles arch=windows size=935
bin/windows/pmpost.dll
bin/windows/pmpost.exe
bin/windows/ppltotf.exe
+ bin/windows/ptekf.exe
bin/windows/ptex.exe
bin/windows/ptftopl.exe
bin/windows/r-pmpost.exe
name ptex.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of ptex
-containersize 1176448
-containerchecksum bf7875e4c30e7dd5fcd79f2710138ee1ffd1cd306e690198c6da03734112316c6362f91e352941199ae9785d48d09a83f9f4758fae3137935f135f2bb1e3b7dd
-binfiles arch=x86_64-cygwin size=778
+containersize 1198720
+containerchecksum dbd2a686847e5b91aa91ba7a8fa233efe579b65caf0130c1478b49416c408bb69d1e0fb630c887b3b5a8021ffe30f45a8c41ccafe30c032130676427f18db06c
+binfiles arch=x86_64-cygwin size=799
bin/x86_64-cygwin/cygptexenc-1.dll
+ bin/x86_64-cygwin/eptex
bin/x86_64-cygwin/eptex.exe
bin/x86_64-cygwin/makejvf.exe
bin/x86_64-cygwin/mendex.exe
@@ -274336,17 +274800,18 @@ binfiles arch=x86_64-cygwin size=778
bin/x86_64-cygwin/pdvitype
bin/x86_64-cygwin/pmpost.exe
bin/x86_64-cygwin/ppltotf
+ bin/x86_64-cygwin/ptekf.exe
bin/x86_64-cygwin/ptex
bin/x86_64-cygwin/ptftopl
bin/x86_64-cygwin/r-pmpost
name ptex.x86_64-darwinlegacy
category Package
-revision 66084
+revision 70380
shortdesc x86_64-darwinlegacy files of ptex
-containersize 1117060
-containerchecksum 0cae3df6d25844627af0fad4c90c62d4f693c2abdbb5484144a6fc1c6e998e68d6352180652ebe4b8b0372553662f6cfe73d81cc6d634e70354758c68454f11a
-binfiles arch=x86_64-darwinlegacy size=778
+containersize 934092
+containerchecksum bec4300bdde91e59c68a1d93b40ddab2949f6685008641da8f10b75808d4c8128a8245724fdc4e65b9a005cdb9ced7efa2816fc62d06f8e2e0590bf52d1928cc
+binfiles arch=x86_64-darwinlegacy size=677
bin/x86_64-darwinlegacy/eptex
bin/x86_64-darwinlegacy/makejvf
bin/x86_64-darwinlegacy/mendex
@@ -274355,17 +274820,18 @@ binfiles arch=x86_64-darwinlegacy size=778
bin/x86_64-darwinlegacy/pdvitype
bin/x86_64-darwinlegacy/pmpost
bin/x86_64-darwinlegacy/ppltotf
+ bin/x86_64-darwinlegacy/ptekf
bin/x86_64-darwinlegacy/ptex
bin/x86_64-darwinlegacy/ptftopl
bin/x86_64-darwinlegacy/r-pmpost
name ptex.x86_64-linux
category Package
-revision 66084
+revision 70276
shortdesc x86_64-linux files of ptex
-containersize 1222812
-containerchecksum 12bd677cdd57637a32960a5a3f94616779b70174b85e5e7406497ec2ef10ea6377662651b7de05d57e6ce4101ff476f876c5635b75b2d212af47851dee009728
-binfiles arch=x86_64-linux size=853
+containersize 1028932
+containerchecksum af485e103ac016c3f2237a1b8703f425b345fe4a8a97c37ac155af08a7455d6f68361f9a21c7b66e1b0206d61fe00a0c3275c31b1c12d462f12c45ba78947758
+binfiles arch=x86_64-linux size=743
bin/x86_64-linux/eptex
bin/x86_64-linux/makejvf
bin/x86_64-linux/mendex
@@ -274374,17 +274840,18 @@ binfiles arch=x86_64-linux size=853
bin/x86_64-linux/pdvitype
bin/x86_64-linux/pmpost
bin/x86_64-linux/ppltotf
+ bin/x86_64-linux/ptekf
bin/x86_64-linux/ptex
bin/x86_64-linux/ptftopl
bin/x86_64-linux/r-pmpost
name ptex.x86_64-linuxmusl
category Package
-revision 66084
+revision 70276
shortdesc x86_64-linuxmusl files of ptex
-containersize 1269628
-containerchecksum 10b83e93e32d83185d59f43c7863881d0cffabbf4be76d4da2cb5f5b743f49a7ed6ec4476f73b4fd585a51416b41d81333de043152f1eb5f493bb9ab9f796b57
-binfiles arch=x86_64-linuxmusl size=890
+containersize 1068792
+containerchecksum 36fed7484c0b1022e99bcd2aef992006330955140c655f9267d66cfae014ac1ca51183b528790a59d41b143ae9582690ee988924434ec6cc7d7bb7b7a1ee22b7
+binfiles arch=x86_64-linuxmusl size=774
bin/x86_64-linuxmusl/eptex
bin/x86_64-linuxmusl/makejvf
bin/x86_64-linuxmusl/mendex
@@ -274393,17 +274860,18 @@ binfiles arch=x86_64-linuxmusl size=890
bin/x86_64-linuxmusl/pdvitype
bin/x86_64-linuxmusl/pmpost
bin/x86_64-linuxmusl/ppltotf
+ bin/x86_64-linuxmusl/ptekf
bin/x86_64-linuxmusl/ptex
bin/x86_64-linuxmusl/ptftopl
bin/x86_64-linuxmusl/r-pmpost
name ptex.x86_64-solaris
category Package
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of ptex
-containersize 1260320
-containerchecksum 3eff2e5a8bb2f19f2d912ce2d9c331146ab6af3947b392d0782fab116b9ba91592c8683892d63796c8461b3515d27b1d4aa0fb994fcbcb7bb028f9b808bba294
-binfiles arch=x86_64-solaris size=882
+containersize 1103968
+containerchecksum 37de922f8f0c1aaac840c5e77678faf2d2313a54c98f8fad5585ee87707b6de29d25cc5f7efb3fb8bb7a8c38a87a35b9175f781f33e34380fd287b13a00c2f8d
+binfiles arch=x86_64-solaris size=822
bin/x86_64-solaris/eptex
bin/x86_64-solaris/makejvf
bin/x86_64-solaris/mendex
@@ -274412,6 +274880,7 @@ binfiles arch=x86_64-solaris size=882
bin/x86_64-solaris/pdvitype
bin/x86_64-solaris/pmpost
bin/x86_64-solaris/ppltotf
+ bin/x86_64-solaris/ptekf
bin/x86_64-solaris/ptex
bin/x86_64-solaris/ptftopl
bin/x86_64-solaris/r-pmpost
@@ -276513,7 +276982,7 @@ catalogue-version 0.6.3
name pynotebook
category Package
-revision 69990
+revision 69985
shortdesc pynotebook presents (raw, Markdown or Python) codes (and execution with LuaLaTeX) as in a Jupyter Notebook
relocated 1
longdesc This package provides environments to (re)create a jupyter
@@ -276521,9 +276990,9 @@ longdesc notebook with: raw blocks markdown blocks (with full LaTeX
longdesc support) code blocks (python) with execution thanks to piton
longdesc and PyLuaTeX
containersize 2840
-containerchecksum 221b2167c77db3e434d253f04536398501e6bd9682e09c1984db040b9822b191366413f5dae85c84dfda5219f84d4f32dfa1366a5da6ca6b2dfc8a55389ce725
-doccontainersize 510568
-doccontainerchecksum 61d565169841a001608af347596e4a91f207ac65c45020fdf6b3a91d29b2c01192161ae1d5d274651ce90c017e27ac3d9e56041a4c2158bb43df2d07e6a9e3f4
+containerchecksum 3c8f57b07b68a8541b58244c686e8a1fad2f0bb4f53c2d3d166642c62644f37672bed11978295479ec2d351faa09ec2fdab255a7bc12ae7f9f1aed9d3c54345e
+doccontainersize 510564
+doccontainerchecksum dd965d085fd15beb62986f2954505681f35cdc1e287efdc909cc28beaab5ebb79744d334317b7ea25f5a68081d0bc6fb7a1402483c663879c11aa84a7c81b851
docfiles size=135
RELOC/doc/latex/pynotebook/README.md details="Readme"
RELOC/doc/latex/pynotebook/pynotebook-doc.pdf details="Package documentation"
@@ -279164,16 +279633,16 @@ catalogue-version 0.2
name randexam
category Package
-revision 69965
+revision 69960
shortdesc Make an exam paper and its randomized variants
relocated 1
longdesc This class helps you make an exam paper and its randomized
longdesc variants. It mainly focuses on making math exam papers, but you
longdesc could use it to make other exam papers.
-containersize 11724
-containerchecksum bba998f59e869c81278e5a174d3f7e66c6534531064e30152c3a7819b32f81ae2e75b11ee8190772c282d06f0b3b1aa84de2fd730f18edb8bc4244ee31eb60f5
-doccontainersize 228608
-doccontainerchecksum 251e4e88983af9bcda1024e014fb587ee6ae03840b0c59b141dca606271c582a1085b8a985a1d138781f9a3b6b629616ff4d6827a61ed95284a61dc123c39a41
+containersize 11736
+containerchecksum 137f7f99c32d502034ca22fabea143f54276730987a6edb595e1cddefa21bc631e8bba89930bab4e774b2a1c0d0d766d56ef49b6051fda726524a4ee8845e6c1
+doccontainersize 228600
+doccontainerchecksum 7f7b5e9707a4b04c7fe7d3505d70685d6e882139341e3aad01103fca5a21f0df5f995466c6eeac7cc6c41a2c6b135b75b4795ef2ae1b11d9e67369852a168278
docfiles size=78
RELOC/doc/latex/randexam/README details="Readme"
RELOC/doc/latex/randexam/randexam-a-answer.pdf
@@ -280297,7 +280766,7 @@ catalogue-version 0.0.3
name reledmac
category Package
-revision 70207
+revision 70202
shortdesc Typeset scholarly editions
relocated 1
longdesc A package for typesetting scholarly critical editions,
@@ -280306,10 +280775,10 @@ longdesc itself was a LaTeX port of the plain TeX EDMAC macros. The
longdesc package supports indexing by page and by line numbers, and
longdesc simple tabular- and array-style environments. The package is
longdesc distributed with the related reledpar package.
-containersize 55832
-containerchecksum a342f8a3e20265013b493836e5b4297c847718bbf8a8cd0eba4e8efee53a2ed6e937766f67ea6b1dd3f09ae03d670f2e1bcb5bb9acb2d751d63264f1212266b8
-doccontainersize 10466548
-doccontainerchecksum 45172bbd27094522f440d6df80826494381d876b715b849415fcbc13e4bc4a78a937b3dce3387540f514b9627413a3c96cfdbe390b101ffb2e2662a7ff716cfd
+containersize 55856
+containerchecksum 14d61ddad1df554dd885ca64e25fd1acb319e7ee8c749dd81526a8a8ccce38bf89c8dd46ea27929cc9a5a601db215be170d1e573739eb40449f3dc122a7fa53a
+doccontainersize 10465172
+doccontainerchecksum 42165888b7902d2fcd69582e403f3e67326608b27c7c73ef876a6978a9d3213a51809ca1a0e72c8fa9670dff624fb9a872aab4d96622dd74ab118c5cf8eb1490
docfiles size=3416
RELOC/doc/latex/reledmac/README.md details="Readme"
RELOC/doc/latex/reledmac/doc-include/migrate-mac.dtx
@@ -280416,8 +280885,8 @@ docfiles size=3416
RELOC/doc/latex/reledmac/migration.pdf
RELOC/doc/latex/reledmac/reledmac.pdf details="Package documentation"
RELOC/doc/latex/reledmac/reledpar.pdf
-srccontainersize 210112
-srccontainerchecksum 67ab848a05a4592b2755c2e935f7613355881c32408c8f999b63815cb44315b72809c2287ce5aa7e27a80f5fdcc399f501a0cfd67428e86a050075e1dd54ed20
+srccontainersize 210188
+srccontainerchecksum 4edb81f9f50e2336a464e1303adf2b077b07300ada3c8fe36858ac0ff1a107a4cf606f03c0a97e24c8f10bcc0368a802337ef01afa1863c9591fc0c8ea3c7c13
srcfiles size=300
RELOC/source/latex/reledmac/migration.dtx
RELOC/source/latex/reledmac/reledmac.dtx
@@ -286281,7 +286750,7 @@ catalogue-topics font font-body font-proportional font-mono font-sans font-serif
name robust-externalize
category Package
-revision 70605
+revision 70621
shortdesc Cache anything (TikZ, python, ...) in a robust, efficient and pure way
relocated 1
longdesc This package provides a LaTeX library to cache anything (TikZ,
@@ -286289,11 +286758,11 @@ longdesc python, ...), in a robust, efficient and pure way. We also
longdesc provide a template system with placeholders to provide
longdesc configurable templates. For more information, see the
longdesc documentation and the github repository.
-containersize 36416
-containerchecksum d4abbe1a409b7f282985986d75032361a1c5b38fde2494a8249423edcb304c6aad8dd45484c2d3d7cd56dac9462226791cd73549b0403feb578d18032709662e
-doccontainersize 1377364
-doccontainerchecksum 330f8b74e7514fdecffd7c2749fe29bebec019e69f2368b15d180c775ed85f61c90a1b59192c34d3b802dbe1cb45cbec6955e8d91e11ece6df1a1755c1a7aecd
-docfiles size=473
+containersize 36476
+containerchecksum 5dad122e7fc96b859551b655f35204c69ac32591f5618d14cf45333140f793efddea705c39207142a0a940ee336b38da6e29b404409c4661cc469ae980b8750e
+doccontainersize 1366684
+doccontainerchecksum 26083e16328fd8521f130e64a189346226cf3af7009437ba2fb891e30d578ee4c5bb789b0b992566a9882fab8d1bd569d41751c758f5f720836f49367da4d217
+docfiles size=469
RELOC/doc/latex/robust-externalize/README.md details="Readme"
RELOC/doc/latex/robust-externalize/robust-externalize.pdf details="Package documentation"
RELOC/doc/latex/robust-externalize/robust-externalize.tex
@@ -286305,7 +286774,7 @@ catalogue-contact-repository https://github.com/leo-colisson/robust-externalize/
catalogue-ctan /macros/latex/contrib/robust-externalize
catalogue-license mit
catalogue-topics compilation expl3
-catalogue-version 2.7
+catalogue-version 2.8
name robustcommand
category Package
@@ -292151,7 +292620,7 @@ catalogue-version 1.2.1
name se2thesis
category Package
-revision 70117
+revision 70112
shortdesc A Thesis Class for the Chair of Software Engineering II at the University of Passau, Germany
relocated 1
longdesc The se2thesis bundle provides a document class for writing a
@@ -292165,9 +292634,9 @@ longdesc users. However, the package's documentation also provides
longdesc recommendations regarding several aspects, for example,
longdesc recommending BibLaTeX for bibliographies.
containersize 9672
-containerchecksum 4dd20b0d80acfe324039946be7383763bc704c5e468b79edbb079993ae89bd98fd10113c97075e2b2afcccf6c75438ff62bd32f509e0040a64de69fe4fa77784
-doccontainersize 575180
-doccontainerchecksum 42a8c89d3375e35454975b087a8670cb2cc95e29e130bdfd41afbe902b0dbb66e3219dd8873fd88970a6d4cf155d077e0b4a50755cf278cbadf71718b05e6f0c
+containerchecksum 92e5a284474a110533816f00526031e5030357a8b3e36db78e543074d09e6c4ac3a001bbed79c42ddb27de3f64a765cfc927ae485e162e8d92b94edaf510a39b
+doccontainersize 575196
+doccontainerchecksum a7e9d6f6dd45e0252e89636f2da0a03336dda60023ca4e5c883f2e77214070e206993b5b7b288f3af3ac32381367c1ce20c1c6f00fff5fad3aa98d41509bd166
docfiles size=154
RELOC/doc/latex/se2thesis/CHANGELOG.md
RELOC/doc/latex/se2thesis/LICENSE.txt
@@ -292176,8 +292645,8 @@ docfiles size=154
RELOC/doc/latex/se2thesis/se2thesis-master-thesis-example.tex
RELOC/doc/latex/se2thesis/se2thesis.pdf details="Package documentation"
RELOC/doc/latex/se2thesis/se2thesis.tex
-srccontainersize 24784
-srccontainerchecksum 6529a9dbf2bf038f418964a9e8d6cd7423abc2ab4faf569b983469644098bf5cc80892b4db1d7a4c90771a9495d7b64de08944d2e502c2b6e37b5e0c503eff79
+srccontainersize 24792
+srccontainerchecksum 1b53e69fe51bd2ec4110ada47b0b088b9c7f09d17877c96eb8ed845d6145e4e9cb1f971e9adae6724858741526bf72c6facdc78aa5f03970ea95c7329ea2afdd
srcfiles size=31
RELOC/source/latex/se2thesis/se2colors.dtx
RELOC/source/latex/se2thesis/se2fonts.dtx
@@ -292423,10 +292892,10 @@ catalogue-topics dvi-proc
name seetexk.aarch64-linux
category TLCore
-revision 65927
+revision 69782
shortdesc aarch64-linux files of seetexk
-containersize 25560
-containerchecksum 0ecc1ccf493bea41ad51b449f951d86c2e06ad2afa0b4ab473e1aaac8ccc2d1de2cb34240eca6d5727feef42e4a966cc30ba36748f435864cbc39e5b584f0584
+containersize 25532
+containerchecksum ca55b80001921218a01fd3bf858d3d19fbde97749d70c00e3b4b49dc26bfa4c5b65242a082abcbba6d9bf5c90d5c29d156da23f1497dee201a8ac4b233557f03
binfiles arch=aarch64-linux size=29
bin/aarch64-linux/dvibook
bin/aarch64-linux/dviconcat
@@ -292435,11 +292904,11 @@ binfiles arch=aarch64-linux size=29
name seetexk.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of seetexk
-containersize 41600
-containerchecksum c3a8a54687bb91b3649ac8d86ed9971571a8ec1d3ce34223fd288f0263f27fc73660ed43b29aec5d51ce42f7686fd6709f8b138d97b773c314f7cd35bec22985
-binfiles arch=amd64-freebsd size=46
+containersize 38828
+containerchecksum 9cc3e438cbb6dee4939401856d5fda726e5d967f986782acf500055ca55d63756818a16b0fd09a9061acc39070f4fc79a3b475f8233af05c5041cda99e367128
+binfiles arch=amd64-freebsd size=44
bin/amd64-freebsd/dvibook
bin/amd64-freebsd/dviconcat
bin/amd64-freebsd/dviselect
@@ -292447,10 +292916,10 @@ binfiles arch=amd64-freebsd size=46
name seetexk.amd64-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc amd64-netbsd files of seetexk
-containersize 31564
-containerchecksum b5cbb24b22007522abb77fbe87fd92f13043a20c6c6c05f4801ad4adbd0882c3edeb34e6e310a6c26cb38708f8d17718df8cb7ec5493243dcca824ae0ce927b6
+containersize 31544
+containerchecksum cc979343cf02ef32c3f961d2670aeb80fc53f8a745e10fa9c66814f2a28ba2777d6519c0c6bac7da73515e72632423ee10a510d4d4bb771c5765d61e72d8e89f
binfiles arch=amd64-netbsd size=40
bin/amd64-netbsd/dvibook
bin/amd64-netbsd/dviconcat
@@ -292459,10 +292928,10 @@ binfiles arch=amd64-netbsd size=40
name seetexk.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of seetexk
-containersize 21216
-containerchecksum ca3349073f28b0919d53d887ce2bc2129c134c07144ed4693a9f242e777bd3517f5e5a0de0eac88e8844ea7351888f2d15ac933eeab516c6dc2a0c966f460631
+containersize 21244
+containerchecksum 99c00789b4e640fe7b5ccca7b5e2d7cfe4abcc1c33f7d9522726426cd8aa8f43e7d0610614f57a90dc5a5b5a0171d0e5ae3674e3cc42ee33083697f27a912f9f
binfiles arch=armhf-linux size=24
bin/armhf-linux/dvibook
bin/armhf-linux/dviconcat
@@ -292471,11 +292940,11 @@ binfiles arch=armhf-linux size=24
name seetexk.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of seetexk
-containersize 37336
-containerchecksum d6e10c8036ed510e9dcb1b537cde88a9b040b27110451836f6ada07cfdb38b251a8cd9810ee1944ded79ceeb249ad7c123b1fc138513d87034fada40e3b82ae5
-binfiles arch=i386-freebsd size=40
+containersize 38804
+containerchecksum 763e1cda6d11c45d0239704d3412ee92880f268dbc5e727142c6f44a574851f6c203b66b212ac8bd968e10af7f302b1c9c4461cdc7a4c4bd25769fcc57539a02
+binfiles arch=i386-freebsd size=44
bin/i386-freebsd/dvibook
bin/i386-freebsd/dviconcat
bin/i386-freebsd/dviselect
@@ -292483,10 +292952,10 @@ binfiles arch=i386-freebsd size=40
name seetexk.i386-linux
category TLCore
-revision 65877
+revision 69782
shortdesc i386-linux files of seetexk
-containersize 26332
-containerchecksum 2e55a035d41909d052c35f0edf74b68cf5589c79fe79dd9c6e54be2dcb6f12c48d159e134485ebde9054a1d706e3b90c42a1dc6d0c70e4375310391449de56ab
+containersize 26356
+containerchecksum 8b412a0d539e91b2c26556b755709cec9db78503c0a2846e0600b4db46f3f55a4b7f20be7007d307329ef4d969c4089a18782fcc1d24c91bf9b9c64a0a82e127
binfiles arch=i386-linux size=29
bin/i386-linux/dvibook
bin/i386-linux/dviconcat
@@ -292495,10 +292964,10 @@ binfiles arch=i386-linux size=29
name seetexk.i386-netbsd
category TLCore
-revision 65923
+revision 69797
shortdesc i386-netbsd files of seetexk
-containersize 27240
-containerchecksum bf4e6bce435ceddf8be63db6337d16fe1ea301624c83f4e4efc4776d31a951bc387fdc55aebb36bbed78c92e324de8e3a448136fc103f5863ab9ce5aad9c924c
+containersize 27220
+containerchecksum 90102c4aa12570900c5d06a524521bbd53cc86dcfd2ce2a64ad1ea1dbde54460d293216b2bbc0385723f0a1e83b73349460488f51b93c5a8caa2255cbfc4d86a
binfiles arch=i386-netbsd size=34
bin/i386-netbsd/dvibook
bin/i386-netbsd/dviconcat
@@ -292507,11 +292976,11 @@ binfiles arch=i386-netbsd size=34
name seetexk.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of seetexk
-containersize 37348
-containerchecksum dd1426beb08ad7f637d827f890ed073df02d51ec8f4372475b399f08c4c4e97daee446775e116a9902a69e42ab6109aa9956a438f6f7b80845546dac20b4ac9f
-binfiles arch=i386-solaris size=36
+containersize 37444
+containerchecksum 4a7b097f72347b528416a5af5b14b8a85465251c175fe520ff13775a754b90aa597e1104126883f27556366914b6af7d0e54ef8ff56986892b6f6816775ba302
+binfiles arch=i386-solaris size=38
bin/i386-solaris/dvibook
bin/i386-solaris/dviconcat
bin/i386-solaris/dviselect
@@ -292519,10 +292988,10 @@ binfiles arch=i386-solaris size=36
name seetexk.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of seetexk
-containersize 66876
-containerchecksum 95f04c7d5a363d6c737f9b3fb3f7f3966c34a5ceace57f1251cfde5b1c89c49534589ffe4d67cb3691a85e4154e151d698aafe3e93d3f4210577534c30bbdf54
+containersize 66868
+containerchecksum 612317055995d78d19e9b95a763b4e63a2fdeedd657c5041ed91a6e04cc043fb6a3367042c5527e9181fda5e9c786598b9c985ec6c7bfaf99d7daa7931b5d17d
binfiles arch=universal-darwin size=164
bin/universal-darwin/dvibook
bin/universal-darwin/dviconcat
@@ -292531,10 +293000,10 @@ binfiles arch=universal-darwin size=164
name seetexk.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of seetexk
-containersize 26220
-containerchecksum 339d974445e54d82e1fbdc8f016850eee27548f68e6fb4dde24466e0898c60efd04c336e22e5d85e4f3c55d211f33242c4697b7c58a2e0fd14cddfec4b138ec5
+containersize 26548
+containerchecksum 21459b7bdf82f049a9a2c55d350613684a4bd6b5b03a29e809280f365d1110728acc064b592c3ad9a515b6505989d9855515510960d039d0502a07ac43064360
binfiles arch=windows size=28
bin/windows/dvibook.exe
bin/windows/dviconcat.exe
@@ -292543,10 +293012,10 @@ binfiles arch=windows size=28
name seetexk.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of seetexk
-containersize 26004
-containerchecksum 7ca926c9030fa9d476119acee4cfb3f6ccb4d06e41e3d5447440ba294ccceb30de2ce9c91357ea33153360d36eb1ab2213434b7e028407a0a3fdc1dfa31c3c3c
+containersize 25960
+containerchecksum 383b6a95fa1d81877d685d921c9b6612aa3ddfc125f06c5df16ca114917a461a883b6e80aefe12b280471a85f514c57d9a7527758414286e5adecad4a0ce0812
binfiles arch=x86_64-cygwin size=28
bin/x86_64-cygwin/dvibook.exe
bin/x86_64-cygwin/dviconcat.exe
@@ -292555,10 +293024,10 @@ binfiles arch=x86_64-cygwin size=28
name seetexk.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-darwinlegacy files of seetexk
-containersize 29952
-containerchecksum 5de07f03e443f9ccd7a422087c3c566a935ee2e655b4ecd52edc5715a66856cd6a9ea539dd8899fc97eb4443ac6a98ecb7529dbef6634acfcf16b8567c47807b
+containersize 29920
+containerchecksum 510befc5cedc2afd0d0cecc5495d110c2d1909a1823b4f127a70f3ec50601c93ffa7c8b4c52ee89d7a4cc14b082a74afd66c824a545e719f698ad0f5d827a364
binfiles arch=x86_64-darwinlegacy size=33
bin/x86_64-darwinlegacy/dvibook
bin/x86_64-darwinlegacy/dviconcat
@@ -292567,10 +293036,10 @@ binfiles arch=x86_64-darwinlegacy size=33
name seetexk.x86_64-linux
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-linux files of seetexk
-containersize 27228
-containerchecksum 5f0078b8e994ccbdd5e0ad43518a53338b6b6e76f32e49494867db1f278feeb13876f9d382ade41544dc2fcad8e6f2a8fceba84ea1ebbd08445dd3bd27a251fc
+containersize 27200
+containerchecksum c150d85e722dafaca43fe43619b6208c1c6f74095a887328dab6f9b1312e71226a8662380f95c2ea383e17d067a562cdfc601bcc633eb1857524a7f0cc4ad95f
binfiles arch=x86_64-linux size=31
bin/x86_64-linux/dvibook
bin/x86_64-linux/dviconcat
@@ -292579,10 +293048,10 @@ binfiles arch=x86_64-linux size=31
name seetexk.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 69784
shortdesc x86_64-linuxmusl files of seetexk
containersize 31356
-containerchecksum 920b9c3eca0e2b2378379830c46ebdf8ef12d729326ca2cff336a6f6acdf5123ac7401219e84e3efb3c50df54c0ac1138f0984a11010ff317483deb955b7874f
+containerchecksum ec0756641d51ca92d1c0aad3171126fc64d34bc0ca5e69415f04c15ee2ca6688258af68aac924a8dd98aeeac79892456df0528dbc75d122f4638df191bb8a7f5
binfiles arch=x86_64-linuxmusl size=32
bin/x86_64-linuxmusl/dvibook
bin/x86_64-linuxmusl/dviconcat
@@ -292591,11 +293060,11 @@ binfiles arch=x86_64-linuxmusl size=32
name seetexk.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of seetexk
-containersize 36496
-containerchecksum 7c72182696a8da7f4bf69998fd08255f5bd620b7288842b1ba45573ace9756f14fe38fc89133751a8f60e8fd2fa69b34255ab1235a7d53f069f704b646ee3b64
-binfiles arch=x86_64-solaris size=36
+containersize 36932
+containerchecksum 08a3edd3d84dd662ec8f62bfdf7a27d11e7dba9aac81db2e0451e9a37c531c78ffca6ff6c767f6a324ce97926e57e507682d820b7d8342fe641f843ff5f715d3
+binfiles arch=x86_64-solaris size=38
bin/x86_64-solaris/dvibook
bin/x86_64-solaris/dviconcat
bin/x86_64-solaris/dviselect
@@ -295024,7 +295493,7 @@ catalogue-version 1.6a
name simpleicons
category Package
-revision 70519
+revision 70504
shortdesc Simple Icons for LaTeX
relocated 1
longdesc Similar to FontAwesome icons being provided on LaTeX by the
@@ -295032,10 +295501,10 @@ longdesc fontawesome package, this package aims to do the same with
longdesc Simple Icons. For reference, visit their website:
longdesc https://simpleicons.org/.
execute addMap simpleicons.map
-containersize 3429140
-containerchecksum 336d8cc4f3a20bb6b9f7f956dc09dcb3184a333b0e82f9b72ebfdc7f73c757fa53a48ce0bc31a1b397c42bda9826944e3004d881ee1d6dac4f3430919b4cb9cd
-doccontainersize 2505796
-doccontainerchecksum 93e23215d137d04ed4086269aa79dc8f81b70147f5115edbdf7e43865b20bb241275eda4b519db5d9a3857f36d956707d936156c002c155333d72b1f60edbed5
+containersize 3429084
+containerchecksum 7ec6f12ff73f97a4c9bbb588bc4ea373576f9e5443bce0c50d337b0d9101204596a08208020b0f3a5dbed2e9c8fdbcd347753b0d2a11676c8040faba51c7c47d
+doccontainersize 2505800
+doccontainerchecksum d0bf38eb6ee6df4d3e8f070cf35cacf470dfc450b364de20bafc3b29576d416e5257cd6704b01c5f202d976f38088bb7317989a038d3c4a26a849d62617d85f4
docfiles size=655
RELOC/doc/fonts/simpleicons/README.md details="Readme"
RELOC/doc/fonts/simpleicons/bindings.tex
@@ -295306,7 +295775,7 @@ catalogue-topics tut-latex
name simplivre
category Package
-revision 70317
+revision 70314
shortdesc Write your books in a simple and clear way
relocated 1
longdesc This package provides a LaTeX class for typesetting books with
@@ -295320,9 +295789,9 @@ longdesc package name "simplivre" is taken from the French words
longdesc "simple" and "livre" (= "book").
depend minimalist
containersize 5344
-containerchecksum 864101fbbd4d71ce75960255e0df965ff1dcaa7c323bcf34fe4893190c81877cb2b86d50559b20f8698ccf015cbcd111a3b6e052eb62cea28e9a5f62335d0121
-doccontainersize 272080
-doccontainerchecksum 890638ab256f56c1a964e89d990ba57288fe4ff2d8149065b1a6d24b056eca50751a932c5ac91a453bcffd1b909a7e8c277c3e240d525a97bee259d6a40bf91b
+containerchecksum 81d2da85bbf28ad9010ba3376a5b1f90458719a55b4a9fa7ef157f1a21c75237bd06314f4aca37defc2dbe1ace7391e4522ea860df812d5d7c2d85c3028eb866
+doccontainersize 272120
+doccontainerchecksum 6dad312a5b64f7f3f181d1ee9fbf36e3437c59b0dbff344f15b707a06d54f4f34e50315b2d41c199d23d4fa87944d2ff151922ea15107388096616fe42f8d45a
docfiles size=109
RELOC/doc/latex/simplivre/DEPENDS.txt
RELOC/doc/latex/simplivre/LICENSE
@@ -295539,7 +296008,7 @@ catalogue-version 1.36
name siunitx
category Package
-revision 69922
+revision 69915
shortdesc A comprehensive (SI) units package
relocated 1
longdesc Typesetting values with units requires care to ensure that the
@@ -295562,19 +296031,17 @@ longdesc sistyle, unitsdef and units. The aim is to have one package to
longdesc handle all of the possible unit-related needs of LaTeX users.
longdesc The package relies on LaTeX 3 support from the l3kernel and
longdesc l3packages bundles.
-depend l3kernel
-depend l3packages
-containersize 67828
-containerchecksum df5ab6600630dbb86b496aeb3c048137a950ba0ff56275ed4fc37a8eab517f45e53cf5aacb69e21bad7799b15dc0e8d6c2f827b2a3e41abc972119174d2f2352
-doccontainersize 1287640
-doccontainerchecksum e0801e342de9483cb5a8cc24b63002c9cd01d2e38ab6945eb91b635ece0833cc1a1c6c12398a9e00eb6ffa284e11329ed53e7f5a708432d7ae1c361ce5390821
+containersize 67836
+containerchecksum b57fda6d3d4d8ac7c4b4c0dd9f15c6ea34c2fb3519c3622b539e587c671acc57cd7a9d8cd48a62fa0b453d483f7b035f4aa7aa3cbe35349e4890e0291e29585e
+doccontainersize 1287660
+doccontainerchecksum 4dda20f1e1c165f1621c1c176656584d3deca77bee8924f407262c57c1ac161175c911cc7dfd786ecc7238ab837c39e6d7e10cb8b49a0f8d264d00cd1233f05a
docfiles size=352
RELOC/doc/latex/siunitx/CHANGELOG.md
RELOC/doc/latex/siunitx/README.md details="Readme"
RELOC/doc/latex/siunitx/siunitx-code.pdf details="Code documentation"
RELOC/doc/latex/siunitx/siunitx.pdf details="User manual"
-srccontainersize 123088
-srccontainerchecksum 6df46783a825446b651644bae7c5d5ad7c0abd970153de9b360376b30a1d61adef46ca3a9887689fc1fbba3427a3d634a3bfb499b3d933bc6670e02cc396c170
+srccontainersize 123120
+srccontainerchecksum 396980a2e399e920e1d23d43b02b2240ea2e6f0fd595cab880ec9d131f22ea0ef3fe995a2a582bca1e074f60879c0421405fffc7038f80fcab6d58dc51a029be
srcfiles size=190
RELOC/source/latex/siunitx/siunitx-abbreviation.dtx
RELOC/source/latex/siunitx/siunitx-angle.dtx
@@ -295610,22 +296077,22 @@ catalogue-version 3.3.12
name sjtutex
category Package
-revision 69967
+revision 69966
shortdesc LaTeX classes for Shanghai Jiao Tong University
relocated 1
longdesc SJTUTeX aims to establish a simple and easy-to-use collection
longdesc of document classes for Shanghai Jiao Tong University,
longdesc including the thesis document class sjtuthesis, as well as the
longdesc regular document classes sjtuarticle and sjtureport.
-containersize 154316
-containerchecksum b9c366d594492e128f183bd1805626fc9cd7a226cfb2e8839047a7299027515213b279aaa46e51d3828997685625e5111d8da71b4f80e8063887612891594cc4
+containersize 154332
+containerchecksum a770b3b0bd8c4cd0e8c41cc7af6c857c0015f5a5d8e248749066160ebc0ef94798aa96fe2f1a3ae23831181df88451d794380a075cf90a9d508a183a36678f0e
doccontainersize 700116
-doccontainerchecksum b996ff331e0522e6b95cdc17f289f50974d62983976611b428bb49ef170e12a94784f96774e99e6488c88749fd78cf304ed7bd041970e14a65c40531b4f71f73
+doccontainerchecksum 42791bea7be71a164bb9a20e25e2266592d1f21312b869fcb6f811127f66488e03d94864ab4a12ad5decbe4bed99b1be1fb863a42d51b1d0d704b128132b2f75
docfiles size=176
RELOC/doc/latex/sjtutex/README.md details="Readme"
RELOC/doc/latex/sjtutex/sjtutex.pdf details="Package documentation" language="zh"
-srccontainersize 39284
-srccontainerchecksum 7a6fe3891a069b3f2bb9808a337b0812eb28b99f6502e0da539ec573b29892a63029f43e7aefb3e5d660e69ae8f26d6b4239cd34900776c1bb1cf49d3e420a26
+srccontainersize 39280
+srccontainerchecksum fd5e19d1f43b2393a23ec8813e1ccafdc134b1466a8d645f8237814a63086079bceaf821ef7cf366c5d4e78754157fde3fd41fb723071ab36c57ade3d80cc433
srcfiles size=52
RELOC/source/latex/sjtutex/sjtutex.dtx
runfiles size=129
@@ -300481,7 +300948,7 @@ catalogue-version 2.7
name spbmark
category Package
-revision 69927
+revision 69907
shortdesc Customize superscripts and subscripts
relocated 1
longdesc This package provides three commands \super, \sub and \supersub
@@ -300489,9 +300956,9 @@ longdesc to improve the layout of superscripts and subscripts which can
longdesc be adjusted with respect to relative position and format, and
longdesc can be used in text and math mode.
containersize 3924
-containerchecksum 5734970852cffeddd5e926e407b15bb1058d010098a19ff0f96f5b292ad9b87a81e608400779c9b827e78db768a24f719f382e159ae1a472ebf1e7b7a2644aa0
-doccontainersize 98012
-doccontainerchecksum 17281bda5938984885102aad59bc815c0488277bd5e4b0dfa7f0c48f7ecc613b7b6716dddebecc97586e18059ec06ca95f6757ef3a355252f5d2b8cfd7b62f18
+containerchecksum 4e3cbc7ddd2a568c2ee2eff40f313b1b90e80f38bafae90642d80b785cc18cd2018960f8f9e087d788d2060283a00b294eda83ca15726780933567212b424ec8
+doccontainersize 98020
+doccontainerchecksum 14eef0e6f4495e87768d7afdde62f5e9edfd61529e58f586c275a2f1ec7f55a015ad5b2d929277a6cc7c08a82e250b18f6f2df62be1a9bb2d7703c2a99951b6d
docfiles size=29
RELOC/doc/latex/spbmark/README.md details="Readme"
RELOC/doc/latex/spbmark/spbmark.pdf details="Package documentation"
@@ -303127,7 +303594,7 @@ catalogue-version 1.2
name starray
category Package
-revision 70604
+revision 70599
shortdesc A structured array (of properties) based on expl3
relocated 1
longdesc This package implements vector-like 'structures', like in 'C'
@@ -303138,9 +303605,9 @@ longdesc sequence, or token) lists. The package is based on expl3 and
longdesc aimed at package authors, not end users. The name "starray" is
longdesc an abbreviation for "structured arrays".
containersize 9824
-containerchecksum 69d5bbdd999a47e4dd15d01b9b34bbf4bcede27dd60e19c7c10b4d85257ca38448b924e900c109d2d40e5ddc1b7a0e1b9abf76248a60d08c44805c1d1ac7d814
-doccontainersize 226936
-doccontainerchecksum 1fe545c98ee814c1f6955a1b75ffdab665cb18b071bc1c833c9a595983c15eaa211b990666768ce0e4eabb336ec11876ebc72141e3cf9aca2dd9d6686d5476ba
+containerchecksum e997703e16fd3ebd58e8d781b4508f6a8ac808e0faf7eb10ef7b814209c06c99ca21171dbe75faccbd9b36d462910ad52244a157f92ad6ce910ac6e744457f88
+doccontainersize 226932
+doccontainerchecksum a50575381fedd43aa4e72573e1b3e56aa1a67283c4795fee87b0773c72db9f97c896ca933eb2555d7c9a7c2e4a239e62281263313dff1ed31dfdd56f2f8e6463
docfiles size=78
RELOC/doc/latex/starray/README.md details="Readme"
RELOC/doc/latex/starray/starray.pdf details="Package documentation"
@@ -305699,16 +306166,16 @@ catalogue-version 3.0
name stubs
category Package
-revision 69128
+revision 70341
shortdesc Create tear-off stubs at the bottom of a page
relocated 1
longdesc The \stubs command creates as many repetitions as possible of
longdesc its argument, at the bottom of the page; these stubs may be
longdesc used (for example) for contact information.
-containersize 1696
-containerchecksum fb8276d461883c289329a74f1ba3bba5e64acaf199f7739b013f32a4fd84ab5e2d94d73482a3b70c64e156ff9332b3c81bcfa74854edcf6cc3fd6ac89df595ac
-doccontainersize 23904
-doccontainerchecksum b2822ecb49ccd9c707cf731490c628a75b278848dcec31283c782ba72a12da8e8b7282ddabe38939e5b0c01afdd222be6991618d4cf1b73a2e06b875fab4f82d
+containersize 1704
+containerchecksum c801c5a46814b26571698b6971085631943fe70b18f741f2625e273f4bb4f143eb3210ae37616d185728c60f28b75f5be807123278d00c0f39c2b3f275568c1c
+doccontainersize 23912
+doccontainerchecksum 70e33cb97d9496fe47e9b431662fdab59c1b84e7f9332ef76575e381557899152478e7a20601b4fcbaa9255cf0c85f956de48f14867edd126b9c00680c222164
docfiles size=14
RELOC/doc/latex/stubs/COPYING
RELOC/doc/latex/stubs/README
@@ -305936,22 +306403,22 @@ binfiles arch=x86_64-solaris size=1
name styledcmd
category Package
-revision 70496
+revision 70491
shortdesc Handling multiple versions of user-defined macros
relocated 1
longdesc This package allows creating and maintaining different versions
longdesc of the same command, in order to choose the best option for
longdesc every document. This includes expandable and protected
longdesc commands.
-containersize 2624
-containerchecksum 59af3b3ab6b045533167dfbecc3a0a124fb3f8098112ab9b80cf49a3c5c20323122a488019ec3079dc596029a38e45ba679c2448611a8f90108f8b2b59f5568f
+containersize 2620
+containerchecksum 00654bbd89dda5d1290b5dd7998a57d4567dc5e7f280ce2c4be11ee46615430d6a057fb3b75b5b5094f6b0514fbbab493c5ffff9491dc3585b2bdb9adc194b57
doccontainersize 371440
-doccontainerchecksum 0c096994a7027873f97ac1bc5f9ff1439b32cdc9b6255e4ab9fb955b8c4e60406b152a56c3a6dabc0f5bc41b26fb60ee0ba94e4d9c0202d93d5bd8f0e422ac7a
+doccontainerchecksum 99e489f4d1dc542855aa06bae854413111d35818718125b2bbcb657ec22813d9972966329a604862e368636917e56d68a69427ab76d88aa74fb1be0645a2f5d9
docfiles size=92
RELOC/doc/latex/styledcmd/README.md details="Readme"
RELOC/doc/latex/styledcmd/styledcmd.pdf details="Package documentation"
-srccontainersize 6100
-srccontainerchecksum cc8de429174607b5a27123c2c580a9cd35858fd988bf4458d7522984f8ce0d24223f9f31bfef41152190f1533ceab9d87dd8bad368446292d9b495161d228b00
+srccontainersize 6088
+srccontainerchecksum 1eeae29fefc9046c2373ed50e5494d20c463fe25f8b307a2022ec331b25e3ea093187c22465eb8544310586d46b90a9a04b10f2c25a3fa5046a6f59a130b7e88
srcfiles size=7
RELOC/source/latex/styledcmd/styledcmd.dtx
RELOC/source/latex/styledcmd/styledcmd.ins
@@ -306637,7 +307104,7 @@ catalogue-topics shortcut physics
name svg
category Package
-revision 57010
+revision 70626
shortdesc Include and extract SVG pictures in LaTeX documents
relocated 1
longdesc This bundle contains the two packages svg and svg-extract. The
@@ -306652,10 +307119,16 @@ longdesc of the graphicx package. In addition, the package svg-extract
longdesc allows the extraction of these graphics into independent files
longdesc in different graphic formats, exactly as it is rendered within
longdesc the LaTeX document, using either ImageMagick or Ghostscript.
-containersize 14120
-containerchecksum fd2c051969ea85b2e5c2818292128044038003456f8019efc3c6decb7e811f3eeeed6f3505cb661ee2b4768fa7715f5b3aff4583124d6cc99fef5c5f6a2fed77
-doccontainersize 1077424
-doccontainerchecksum 84f35fd26786e57a8eea08af996d6edc93116529ab364e2b2e23ea6826748435d8487264438f7ff6b44b6d6975e0f18b1f27599e0e554b3d664055296e8fb0d7
+depend graphics
+depend iftex
+depend koma-script
+depend pdftexcmds
+depend tools
+depend trimspaces
+containersize 14160
+containerchecksum 8175fea013ae1c0c3360a8e4e14044673e0eaff1ede5d7307d4a96f0265290c976662f8ab5f8ea998fe140e22d8df4f6727f8dde36c7d000d4258fc8c4579b3d
+doccontainersize 1077432
+doccontainerchecksum 0c8611c269f9e03556dab336a3d106f07fb35620a4d876ce67658fdee00a52b00384bc787a69da2de91f570dc84edb9f3832e41ac2a644dfc110fc5663b2de99
docfiles size=439
RELOC/doc/latex/svg/LICENSE.md
RELOC/doc/latex/svg/README.md details="Readme"
@@ -306664,8 +307137,8 @@ docfiles size=439
RELOC/doc/latex/svg/svg-example.svg
RELOC/doc/latex/svg/svg-preamble.tex
RELOC/doc/latex/svg/svg.pdf details="Package documentation"
-srccontainersize 43032
-srccontainerchecksum 834958e4f8a0d8102ff88af0c499455c9bdcf61b0bd2795e25a07507c55ad6e7a5bcd131bbac48e463bd93b4bf49dee9aebe46a8999d75c24218a332814d5974
+srccontainersize 43044
+srccontainerchecksum 9c5aca2ddb42ce49c140b8ea1e8c7baccd3e6da50a48481bc382caf99073e60eb15af2f7f5773305d23274ff053856ea42851651803577b042ef996a5135381f
srcfiles size=55
RELOC/source/latex/svg/svg.dtx
runfiles size=21
@@ -307379,137 +307852,137 @@ docfiles size=17
name synctex.aarch64-linux
category TLCore
-revision 66237
+revision 69782
shortdesc aarch64-linux files of synctex
-containersize 72628
-containerchecksum 39cce82cbc33199410426aa84f90124484e4a5da4540ad6941d3440ebdab22fdbcf5fada0c61858fe2e312eb683b0715e0c26ac174947b455cf73447d8e60f73
+containersize 72652
+containerchecksum 9f5378d6ea7ec224bbc5164409d3257dbde966531e96052d638f643d9979ca87afd7cd29ebb0217772e632d3ad72a092be963a34cf4b73d6daf1501973a09f28
binfiles arch=aarch64-linux size=49
bin/aarch64-linux/synctex
name synctex.amd64-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc amd64-freebsd files of synctex
-containersize 79476
-containerchecksum ed0a20d198b6ab6b06ca2ffc6d94bbf87bbfee04ecbc07fc2ffab4b84f58b1bdf576aa646b25cc4b9633fa06fdcfba3c61712d9ffe9f08529147f25edc654ddf
-binfiles arch=amd64-freebsd size=52
+containersize 76200
+containerchecksum d2e165c9956a398bb1ea1b6e3e4693045be6d47833a097f5579200a3a6e5259cffb7030385458466035cd713966e5177365d415a5297d91ec1aa51be137e4183
+binfiles arch=amd64-freebsd size=63
bin/amd64-freebsd/synctex
name synctex.amd64-netbsd
category TLCore
-revision 66083
+revision 69797
shortdesc amd64-netbsd files of synctex
-containersize 76480
-containerchecksum c277c4e0939a28799a9461580123eee633bb94503d5fef3aac321143131ca651259f4771dcbe33b58b655af1724bece0e89046890755c824f6948631545ed024
+containersize 76512
+containerchecksum ffb1971d5f2e2f4f843a20c191e50d8930cdb9f915fd496f2ff42f382250f431c244e853751ccda4873e28d442020320a98e316055d9ac35827a975c128848df
binfiles arch=amd64-netbsd size=64
bin/amd64-netbsd/synctex
name synctex.armhf-linux
category TLCore
-revision 66237
+revision 70489
shortdesc armhf-linux files of synctex
-containersize 58768
-containerchecksum e092ea54e8e854d0a29001b0a7572fd735f993c3ecefeb1f9fe20f0fe1a48debc270aa8a4159c0a022bee16e0bd24fdd9d807b21831199b369cc792a3550207c
+containersize 58840
+containerchecksum 3cad8e2d4e631c7ecd7ffd0b6396c2f5013216671bd1b128af0dcba5a96ae7cb7452286611731c012a1569a08866ba2d07ff01eeefdeadf8fca3c727b2dc0d14
binfiles arch=armhf-linux size=39
bin/armhf-linux/synctex
name synctex.i386-freebsd
category TLCore
-revision 65877
+revision 69782
shortdesc i386-freebsd files of synctex
-containersize 70588
-containerchecksum 5ed3cb78126e950a5515c9923ece68c46614b8a53709a391b0fe9f3ed6bbee7570b977037a0d8d37dada79caca02534c29f58230706cf2bcb186a9a7f1c2de00
-binfiles arch=i386-freebsd size=45
+containersize 76184
+containerchecksum e20a5bfed7a82c66811948e60067ade25e2353517533bbcdb6872ad84c022aad903aafb380fcccbb8b56ac0538b8170017123f0a843426f7a6dddbe0490ce8ec
+binfiles arch=i386-freebsd size=63
bin/i386-freebsd/synctex
name synctex.i386-linux
category TLCore
-revision 66084
+revision 69782
shortdesc i386-linux files of synctex
-containersize 74440
-containerchecksum 6f01f1637698524b73229ab3a63f9d5b5d44574bf68ecd696989a9446bca723c1c67f88566d82b55aab8a215f94185c027b096a919ad5a959c3e8ed23575fa8f
+containersize 74472
+containerchecksum c842b0c53152a6e1e458dae43d599fb257c0c9acba71744e0d4b11ea16aad6fd029be5b44ab3f6465c8695c0501ca2a0c8290d861ebdc6358a248d99b4b5249c
binfiles arch=i386-linux size=47
bin/i386-linux/synctex
name synctex.i386-netbsd
category TLCore
-revision 66083
+revision 69797
shortdesc i386-netbsd files of synctex
-containersize 64648
-containerchecksum f5840bcce86f67c02288f45f1f574215afd07ebd79358f6791ed5874f06503d0bd6d8c9d71162f49cdb3ff02324fe5ea75c7a71d19228008cb992e6538e1eb9b
+containersize 64656
+containerchecksum aa64ca9e7f232aac92720e5b6bf59cb8fdfab7c4914f9a3e0802f144662d47b752f86a9ef9596c150c0a9d9653b1737567ed0c9f5fe66e8c4d22df2a938dcdf2
binfiles arch=i386-netbsd size=53
bin/i386-netbsd/synctex
name synctex.i386-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc i386-solaris files of synctex
-containersize 66584
-containerchecksum b39f5f84d7bdb459241715e9ccac456b3bcfca3bdcb62e973147b724a6d817de6a2679fbe8e815aab994733670ecc561eb7d3cee6142a5b482189a5774a1fa8e
-binfiles arch=i386-solaris size=39
+containersize 69948
+containerchecksum 87d987f0e7e403bfbeae12a6850d9857f17878e0fe409e091de6ef9317d83a9f5d1b909257f7275994a4177b04abbbfda593a38c0f3a05ce0f683563f1c7fe7e
+binfiles arch=i386-solaris size=42
bin/i386-solaris/synctex
name synctex.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of synctex
-containersize 135872
-containerchecksum 0e770728a81d4cbd87f106613b2625574be936e6fb72f554e70aa203c2fdd02145e546441804be7398bd6242e85334ab595eafdc76ae8555f624e077da45f1cb
+containersize 136024
+containerchecksum d927f6e411a1119e9cfc43885689d30ae0d2fb96622afa54d6ffef118fa38664a3f474357f683f9cc46b1561a6312bc768c998c15726674d126e8752adca1888
binfiles arch=universal-darwin size=119
bin/universal-darwin/synctex
name synctex.windows
category TLCore
-revision 66111
+revision 70269
shortdesc windows files of synctex
-containersize 175600
-containerchecksum 886ea5613db8a1a2165bbef60d677546db92a963993b7b8f1a9e617c937c3dc9c734d7e1ad36eb77dc38da6352d8b930758783bbd955d6bdba693a144c84612a
-binfiles arch=windows size=109
+containersize 179660
+containerchecksum 87e9f833a55f0608e68f7756f3238a66f1c71dbfa84c533c82a0253f47bcd3f7da8fc2b1770c63dc0aaf002f6abaf37d32d0c58daeef0dbc2af2a6b4abb3d481
+binfiles arch=windows size=112
bin/windows/synctex.exe
name synctex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of synctex
-containersize 73920
-containerchecksum 13a39816389b7881b067ccb50e73b2245b14e81831ba23c773e5619dd5c6c2a6022d5ee440b29735a4871f2a619fe34ff1c3d8719cdb0311e96f61ca6b226f2f
+containersize 73944
+containerchecksum a2b4f763add53f40f6f02c5e53f7e19c0369141359071c832359da92fb1baee4be663aa9e886eb10b886d6dc20ba0a81f91f998ea8b6ad97614471571adf5ac4
binfiles arch=x86_64-cygwin size=44
bin/x86_64-cygwin/synctex.exe
name synctex.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-darwinlegacy files of synctex
containersize 69204
-containerchecksum 5ddd5f52d34a13eeec949b7909bf1a036af846109d031bb387126d8dd5dd5a6b3fd966cb3a62a4bcd9aeb5b1c5c2c33a28b37732488efc0943a35755ab91f3e1
+containerchecksum b97d09784d0f2683333758a7d4e44fb55feff53c89fff9b9e89ee8a5c66aaaf6fa0907bb9e341c472bdda52b8ac51c36a7dddab2b9ac004988f40f636d55618b
binfiles arch=x86_64-darwinlegacy size=43
bin/x86_64-darwinlegacy/synctex
name synctex.x86_64-linux
category TLCore
-revision 66084
+revision 69782
shortdesc x86_64-linux files of synctex
-containersize 75780
-containerchecksum 0fed0f04f751ea2e7b2982aa0d41d2544e594691473aa6995963fca693f66c843fef7b06a8b3a8ca58a5bb2226f08943f241af6edfcb40b71a329ad58345e584
+containersize 75944
+containerchecksum f2f259e398800d190c78559ea061f8cd956b27cecda2f030756e1d710e0e164f8755ac4d5f572660a9dc3089dbb4d4b2722865779d06d29449a7a5473ee3274f
binfiles arch=x86_64-linux size=47
bin/x86_64-linux/synctex
name synctex.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 69784
shortdesc x86_64-linuxmusl files of synctex
-containersize 75808
-containerchecksum 62e1ddfd965020756ab4a6a24fcb5c4ce414a3d45732d08f0c7823ffcc21d9833b5338a155acc8b5e37b540aac820a9b0a96eef2470708eaf6510bb4eee1ab60
+containersize 75820
+containerchecksum ff078e2b91845b65068d0419faf20e7c92b4c6851add4d721f2e30d4665615136433a848b746d2e0141ee922ba580d04b53a11bda7202e63181f808a485e0d6b
binfiles arch=x86_64-linuxmusl size=48
bin/x86_64-linuxmusl/synctex
name synctex.x86_64-solaris
category TLCore
-revision 65877
+revision 69782
shortdesc x86_64-solaris files of synctex
-containersize 76580
-containerchecksum e8f862923e403a3a98d515209456c401b6ee5a734b071c4fcff72cc3ba1d83ee14d5cfacf4ec811e5089e96561dc7ca9a1ea692007df8f0b937a822902c49946
-binfiles arch=x86_64-solaris size=47
+containersize 80144
+containerchecksum be93ed15717e761fc6c086e10386765c7483386d1749a80676870a28cc6266873129402b8be8e56d9a2d225f652cad5821690967f3c36141be0b19f06561eca1
+binfiles arch=x86_64-solaris size=51
bin/x86_64-solaris/synctex
name synproof
@@ -307745,10 +308218,10 @@ binfiles arch=aarch64-linux size=64
name t1utils.amd64-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of t1utils
-containersize 53244
-containerchecksum a600836169e46d9239863d558a7a6365fb535b9db646f31a881a791ef36a11dfb1c6d85da7af5671267a7436537218333a40b760babacd8ca2e81e99e6d60b54
+containersize 41572
+containerchecksum 50e997abc8d93b2e2864681d8109d9d339e2a57a1159b9be867977fc2cc6063f72f48b4e628c4c4c9c67df25f785e10a39c5f0046a9d9e9afa0c0d461fd2a96e
binfiles arch=amd64-freebsd size=82
bin/amd64-freebsd/t1ascii
bin/amd64-freebsd/t1asm
@@ -307773,10 +308246,10 @@ binfiles arch=amd64-netbsd size=82
name t1utils.armhf-linux
category TLCore
-revision 63092
+revision 70489
shortdesc armhf-linux files of t1utils
-containersize 32220
-containerchecksum 1835a0070ab235a1da745c446a30a7637c56301dd18537370e938f6730da35ddb5a9a994481b70df8840f0b3894dc3ed7623306fcc6dfeceb02862173bd48c6b
+containersize 32228
+containerchecksum dd6d64e1696cc7c3b1cc27253f453df1426eb3aa21a38866ef3db9ad89b96747304e68683d387da14ee90f88e852b45c41d27815feb0931f1f30d9402b0bf6d9
binfiles arch=armhf-linux size=53
bin/armhf-linux/t1ascii
bin/armhf-linux/t1asm
@@ -307787,11 +308260,11 @@ binfiles arch=armhf-linux size=53
name t1utils.i386-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc i386-freebsd files of t1utils
-containersize 50576
-containerchecksum bec55a417de61dccd61f0becbd5e2c54a22a96e5721177ba9b2949cf6d477728a3b9bb148a684f37cb91bf21e3cf1e3d6325359af21bebeb58ffdc2e18bdb698
-binfiles arch=i386-freebsd size=69
+containersize 41528
+containerchecksum 2ac4dea95943c7c09e99478e2c2201388e4a0b617eb6848dc78c9b460c2b1d6e1a5ec7d9ef554418eaaf350337d69f5242b78e222fafbf20e0199387e23d3708
+binfiles arch=i386-freebsd size=82
bin/i386-freebsd/t1ascii
bin/i386-freebsd/t1asm
bin/i386-freebsd/t1binary
@@ -307801,10 +308274,10 @@ binfiles arch=i386-freebsd size=69
name t1utils.i386-linux
category TLCore
-revision 62210
+revision 69782
shortdesc i386-linux files of t1utils
-containersize 42160
-containerchecksum 9c1bca68b6e711e0ed59985cd8439ed7298fb3beeed3d7557b0521fd9aa4f9d1ba9a442fe48600b57881753bb2c25166421292202f8028ac24b1c8b01e44d63e
+containersize 42132
+containerchecksum 92df739891fbff00a2a48297fdfea22521083b91a420a8ff7124510d3e8fcbd3df52f3ae90b4baa55efd03e700673f3df4d2f3ddb755818a7bf2fdfc6ab471b6
binfiles arch=i386-linux size=65
bin/i386-linux/t1ascii
bin/i386-linux/t1asm
@@ -307829,11 +308302,11 @@ binfiles arch=i386-netbsd size=69
name t1utils.i386-solaris
category TLCore
-revision 57938
+revision 69782
shortdesc i386-solaris files of t1utils
-containersize 42080
-containerchecksum 625b5c43404185890a54fc7d7ab2a49367f1b103d7bea7d6a70299e0d89334f9cd6014f8a757cd55c26986905a0ddb0185f29f5a306dc483d81727461f886227
-binfiles arch=i386-solaris size=58
+containersize 43756
+containerchecksum cd99e7867fb50ee204a2ee15fe92c17564b8cc8c8c376c639323ca9395bcdc09967d235267e94c34bdb7a602f8321ee328607a9d2254e5ae0e08db94cf44dc08
+binfiles arch=i386-solaris size=59
bin/i386-solaris/t1ascii
bin/i386-solaris/t1asm
bin/i386-solaris/t1binary
@@ -307843,10 +308316,10 @@ binfiles arch=i386-solaris size=58
name t1utils.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of t1utils
-containersize 105820
-containerchecksum 954022439cf57c35ecf3a7fc40f38afc2e6cc96f321fb99220e862ba89ddd8f4aed8d73e5aadf36f3e1a206028f4d1f4ec65c9a33b0209058f0ca7b0685d1804
+containersize 105884
+containerchecksum 18079b910ec2ed4974b4acb8f822624eed25e035cb4c1d8e2951250db055fd828b9b76ef65a7f9d1a8d600b588081f712d220ff2bb694d95303e1954f4f1abe5
binfiles arch=universal-darwin size=296
bin/universal-darwin/t1ascii
bin/universal-darwin/t1asm
@@ -307857,10 +308330,10 @@ binfiles arch=universal-darwin size=296
name t1utils.windows
category TLCore
-revision 65891
+revision 69788
shortdesc windows files of t1utils
-containersize 41080
-containerchecksum 2cdcf55ea318ea960e87a86c5649bc5dfaa2e05921d2216470c0b9cf5dd526e00793322d205e7f2a4ddd9e72287a295335aeee98f6b416f6f999e6d94ca935ed
+containersize 41112
+containerchecksum 9b00fb0b53e2a775a8790104deb4f9db02797b615ee802271a1d12caec746f4a0801dbdbf5ae73a347aa274a46845bcd721aabbfabb42e6557dc4cf91e6c535a
binfiles arch=windows size=53
bin/windows/t1ascii.exe
bin/windows/t1asm.exe
@@ -307871,10 +308344,10 @@ binfiles arch=windows size=53
name t1utils.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of t1utils
-containersize 37392
-containerchecksum 41c1d27af9e726259e5ac50b4ebad4cca54589e7e35d059d8a9c6f7a89138338f4311f8d902c8dd27dbba2e8e69288607dcc00b531f445788a4b8f40ea68ee53
+containersize 37328
+containerchecksum e4663aa4fdcbfd2858e8fafd9e4b44265636db1ff05605ce221632b1da7d02a216e4365c936fb8f2556222b6da998f541c1d0a53fdc22a65fdad21ab75161d86
binfiles arch=x86_64-cygwin size=59
bin/x86_64-cygwin/t1ascii.exe
bin/x86_64-cygwin/t1asm.exe
@@ -307899,10 +308372,10 @@ binfiles arch=x86_64-darwinlegacy size=61
name t1utils.x86_64-linux
category TLCore
-revision 62187
+revision 69782
shortdesc x86_64-linux files of t1utils
-containersize 40216
-containerchecksum d046902669a53356ceffc4a4e9656702b730634e1c6cd3ebaf1269f3b4f9a3fee6653ed930c9e498c11ced3384cc3c47f2dd471044c21007a6e687109871d063
+containersize 40204
+containerchecksum 4354ec4bbc56d08ecff151d8c289dc0f3591fe35856849284d57ee6b715bfc9000d32c2213cb64b9ed180a4f1178a88a0c50c92cff63bb1ac957c28b665d1fae
binfiles arch=x86_64-linux size=69
bin/x86_64-linux/t1ascii
bin/x86_64-linux/t1asm
@@ -307927,11 +308400,11 @@ binfiles arch=x86_64-linuxmusl size=65
name t1utils.x86_64-solaris
category TLCore
-revision 57938
+revision 69782
shortdesc x86_64-solaris files of t1utils
-containersize 46000
-containerchecksum 0bd817e4789bc745cdc19cf61d60817c9825a29885fc6e1087993179ecfb26f09b75fb50fbd22be2446e93f895e715434fdc19ef7340924d2d0f191a7a4919da
-binfiles arch=x86_64-solaris size=69
+containersize 48556
+containerchecksum c87c097f29d96dc8c8ab7678c0a8fd844c825e81c8cf5a0f23cd8a3aabd1d325270afc4fc3a97fc2c661c9339083b5e8d3eb7799f53a9023ca91a18c78e45a35
+binfiles arch=x86_64-solaris size=71
bin/x86_64-solaris/t1ascii
bin/x86_64-solaris/t1asm
bin/x86_64-solaris/t1binary
@@ -308671,7 +309144,7 @@ catalogue-version 0.1
name tabularray
category Package
-revision 69926
+revision 69906
shortdesc Typeset tabulars and arrays with LaTeX3
relocated 1
longdesc LaTeX tables are implemented using TeX commands such as
@@ -308686,10 +309159,10 @@ longdesc typeset the entire table. Under the premise of being compatible
longdesc with the basic syntax of LaTeX2 tables, this macro package will
longdesc completely separate the content and style of the table, and the
longdesc style of the table can be completely set in keyval way.
-containersize 37364
-containerchecksum bfbce523764d979d0ab24992be6b0c79dcc20dabbdab195496f11e21f01c349fcf0dff8f400b6833dc046a74e27468b496b99fb65d1aeb820d7c4077b21525ee
-doccontainersize 745380
-doccontainerchecksum 2b58577fde437018269468d81a9f50e39b6cd36803874dd2f09e7fe0ed0fc2f63c6bc195fc433b997e65dd43ae15cfbfeaadee8f46fe63bd32bc3ddf91fd8507
+containersize 37368
+containerchecksum dfa32e47c9d360c44063791618e026ad0177a2c16df0608bbecfbed0e823c630f44e708a322f24404a5a465ab11ed5a9982a6e9cc514a7d3430ac5c9ecff508a
+doccontainersize 745360
+doccontainerchecksum 14340ac9f78b79cb66086eab524ae943874e8953db0b14283c52c188a19117581fa51f200527104623599f4ccdeb986069cb381f7bf9b479b71bb944fdcf14f9
docfiles size=209
RELOC/doc/latex/tabularray/README.txt details="Readme"
RELOC/doc/latex/tabularray/tabularray.pdf details="Package documentation"
@@ -308831,7 +309304,7 @@ catalogue-version 1.1
name tagpdf
category Package
-revision 70259
+revision 70256
shortdesc Tools for experimenting with tagging using pdfLaTeX and LuaLaTeX
relocated 1
longdesc The package offers tools to experiment with tagging and
@@ -308842,10 +309315,10 @@ longdesc needed; to test what else is needed so that a pdf works e.g.
longdesc with a screen reader. Its goal is to get a feeling for what has
longdesc to be done, which kernel changes are needed, how packages
longdesc should be adapted.
-containersize 37548
-containerchecksum cf20cc71bb96599498e470f62f125a52f8457cd6a5f150a171c51c379c9d75d6ee3116d09a281dc0c2a079182a3ccb70c8eb12d5f8679b4f8839f63ce4da95fe
-doccontainersize 2195604
-doccontainerchecksum 41c3de45c71f44af9c022c0a329b9e6e34956f15884d6da96373dba008b14058c851f7c51265b0f408f5154233a9e84979395a9a970aee36ac4d465209572722
+containersize 37568
+containerchecksum 5ab766f2e566e3368431faecb4f7b48a1313f34ebcb37526d5c783e6de0592e9d1442cfd49adf14359f41670faee918167e06b7a0f8594adb7e77617b1bf9f4c
+doccontainersize 2195896
+doccontainerchecksum de684fecb64304cb37e8b878bfc3f96d85981bb25e109cd7b00e3b185231cdf9aa0dd23d5ac825ae55f7335f09c3823d7c5d025872cd3a59bdd861193d6b8bbb
docfiles size=850
RELOC/doc/latex/tagpdf/README.md details="Readme"
RELOC/doc/latex/tagpdf/acrobat.png
@@ -308882,8 +309355,8 @@ docfiles size=850
RELOC/doc/latex/tagpdf/tagpdf.pdf details="Package documentation"
RELOC/doc/latex/tagpdf/tagpdf.tex
RELOC/doc/latex/tagpdf/tagpdfsetup-keys.tex
-srccontainersize 70168
-srccontainerchecksum bddd07551ca8dbb27da3cf82b5caa8a6a89de15b4d13d50997ac0854e4e9b2e480cb371f7843af960f698ecb6f19ae376298fac3560488c3072b141fa1ccae75
+srccontainersize 70196
+srccontainerchecksum 073c1a58b44056e942d4da2f2bbf9a5a205df393fe6cc1bb84963ca8ae669617c424bc9c172cc4019542d84c29db84a4c7f475cbcec401a41def46596781527a
srcfiles size=100
RELOC/source/latex/tagpdf/tagpdf-backend.dtx
RELOC/source/latex/tagpdf/tagpdf-checks.dtx
@@ -309223,7 +309696,7 @@ catalogue-version 1.4a
name tblr-extras
category Package
-revision 69776
+revision 69794
shortdesc Extra libraries for tabularray for caption and babel compatibility
relocated 1
longdesc The tabularray package offers a modern and nice way to typeset
@@ -309235,9 +309708,9 @@ longdesc package captions with tabularray environments (talltblr and
longdesc longtblr), babel library: Translated "continued" text for babel
longdesc languages (spanish, french, ngerman).
containersize 1744
-containerchecksum d47a63520ae3b3d8db6054357bace701b890d2b6c325d620d69d3185867b3c0092dc9702fdea4a84b56a3e192a9e01c083d3c449cc597877a8efa1abe9f6784c
-doccontainersize 20928
-doccontainerchecksum c4f99c06e5ebea7bc88806252e8182cff3282ce6d3eb0a1a71cea97bb132304049a4077c57d0a0d0bc8ea20c20e63b4299cad0d9c06b49157ebcaa2e85d3af5b
+containerchecksum 3cbff9817f6a0eaf84a7e58c896b4ff4708d3f755dd035235af53dc7de251ea2a6ddd14784892d41fd0bd87d44468f9e8108619f7f6e14968827c60a71456561
+doccontainersize 20932
+doccontainerchecksum 0041925b1e3c938441ced5200eacd84faaae4e24354f30014bb5c2f2cc4cd1f195e61ff1e6d43a3e58481fd43082d6d6dc168297a069e6be5393ae5e79a2885e
docfiles size=9
RELOC/doc/latex/tblr-extras/README.md details="Readme"
RELOC/doc/latex/tblr-extras/tblr-extras-doc-EN.pdf details="Package documentation"
@@ -310395,7 +310868,7 @@ catalogue-version 5.8.3
name tex
category TLCore
-revision 66186
+revision 70015
shortdesc A sophisticated typesetting engine
longdesc TeX is a typesetting system that incorporates a macro
longdesc processor. A TeX source document specifies or incorporates a
@@ -310417,9 +310890,9 @@ depend plain
depend tex.ARCH
execute AddFormat name=tex engine=tex options="tex.ini" fmttriggers=cm,hyphen-base,knuth-lib,plain
containersize 892
-containerchecksum 028cf62dc7bd7f62acdd005c1121b4fcd55f9130db61d3bfd782cdae22e2e51581cd66a43a827ce76f6e4fed09f2050ee81c13594f6df64817c3a48ca3d1d088
-doccontainersize 43528
-doccontainerchecksum 69e9a2068eb63d7a503be0aa3d94cc270485370be0342d5adf6fac714743a90b705622b8cfbd7e62e52c15f9a663fc3101d11a116c1af9c4f9f3f5c5d3dbfc77
+containerchecksum 0637bdc395adb944189bbd52a59ac1dfec0b44abfef0798156f2aad8227092e8d141028fe23127f0c15e4cca24230dda49d6a47e1d56eda27590b56caff45ec9
+doccontainersize 43556
+doccontainerchecksum 9512dc879d42b19fbc4dc87d79777ad5e8bb1e46fa86cdfe78a27869c3b336b05b97fce96fd9672c0b982cb8d7b63b9cf9c9543352faafed566d1ff3c639f536
docfiles size=27
texmf-dist/doc/man/man1/initex.1
texmf-dist/doc/man/man1/initex.man1.pdf
@@ -311639,7 +312112,7 @@ catalogue-version 1.0
name tex-nutshell
category Package
-revision 70378
+revision 70375
shortdesc A short document about TeX principles
relocated 1
longdesc This document is meant for users who are looking for
@@ -311648,9 +312121,9 @@ longdesc brevity. The pure TeX features are described, no features
longdesc provided by macro extensions. Only the last section gives a
longdesc summary of plain TeX macros.
containersize 524
-containerchecksum 46f2ee7186bbeaebf250eaf2b5768ef4827bcd3c87a037fff5bc88d45c749f65e25f60a02639bf793e50bc66a11d9da365f4b1068143ab5edbf11c59818da02e
-doccontainersize 315524
-doccontainerchecksum cb3d558047b0737a0dedc904f615c309be9b13ae53f99871d8facc62c3efcd00b933a67f496d24d9d896c1b96b8f21e257487b610633a73b30017b87e98bf70d
+containerchecksum baa9744e65e77ccfc70cb7a448dfa2ea0654c95f8c0cab031119ac1ec9da93ed51c0b02c4850c6022f55904aebd2396580e48c52d4c25e39c29457b332c585b4
+doccontainersize 315532
+doccontainerchecksum d78df903145421086260b9cf5983544d20345a4800d0876bc76812061b7cd11ac5c5eed0360b945ff0cf7a3a9393d965b81ce754e2d864f78f84724ecbe28ab9
docfiles size=103
RELOC/doc/plain/tex-nutshell/README details="Readme"
RELOC/doc/plain/tex-nutshell/tex-nutshell.pdf details="The document itself"
@@ -312250,100 +312723,100 @@ catalogue-version 2.3
name tex.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of tex
-containersize 175620
-containerchecksum 85f8e341a5a48d984c9097a1ae016420c754a794a4009f778163e832d3cf8164f9ad1dc8ffb5dac962f566c033a48d252f584b094a322acf7413a52150a0807f
-binfiles arch=aarch64-linux size=114
+containersize 175984
+containerchecksum c85cad7382d4ebfddca0dfa9ffafc28a5e50eff5e3fa3224d28ca78137fc0084e2eb9dd8cd185d300bc59616ca48c4408de1c1777ca8a11cbfd537fd44ac4ee6
+binfiles arch=aarch64-linux size=115
bin/aarch64-linux/initex
bin/aarch64-linux/tex
name tex.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of tex
-containersize 231172
-containerchecksum 0bad33ac55b32944c011589bc707f860ed17f094fbd14a13826ca53af6b761565176516c2e221767631dfb0e6fccd0b1df9398d40f3c804e7f8c4d600236b598
-binfiles arch=amd64-freebsd size=152
+containersize 156352
+containerchecksum 621a3c612d890eeb2f42b09e48aa9445bf4eada55cc11c6a7e0747ea34aa97d41718d8847303d8655bd52cc59530b6fdd4d154add59b12f702476ee50d5d7ae8
+binfiles arch=amd64-freebsd size=117
bin/amd64-freebsd/initex
bin/amd64-freebsd/tex
name tex.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of tex
-containersize 156544
-containerchecksum c83f047cae647e6daaba7e534b12c90b4a9935d39bb217a6fb0718a3a107f5c81284025d1106b985c142b9e644e86e8964f939c665c724292d2471b6e82a9952
-binfiles arch=amd64-netbsd size=115
+containersize 157064
+containerchecksum fc4e905d41cdcd26aba95f579766a05b819f8d15f52f4ce92ad4bc80ab2fd77cfebd56b9bb8cdeb82390a04ea1c16600099ad1a23270d4839a2a2ae3837679f1
+binfiles arch=amd64-netbsd size=116
bin/amd64-netbsd/initex
bin/amd64-netbsd/tex
name tex.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of tex
-containersize 149348
-containerchecksum 6d4f6b36380cc6298a424ee6f95a828f4edd3bb778868b9cc8dee4aff81d566714a63405e68c3e4c765f32cd5d7cad4fbb8de51689e9d0c5abd9a3d49550cf14
-binfiles arch=armhf-linux size=86
+containersize 149660
+containerchecksum 14be12399fa45df574e0d591499319df61febbd6cf8d36418b4e733efbf7cfb5657037cff535ff35a95b9de6a206cb6f64b7b08e5c62e6e62a9cf09ba1100bc2
+binfiles arch=armhf-linux size=87
bin/armhf-linux/initex
bin/armhf-linux/tex
name tex.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of tex
-containersize 175760
-containerchecksum 198a98d99ee8bf51c3720bdf7e36247b054460201f0629dee9991a4b73dffc0377dfc8cad56cd69af042e5c40ffaa839a68f13dfa11fbc1d2f77f5d4ecc05377
-binfiles arch=i386-freebsd size=137
+containersize 156356
+containerchecksum 928e2392003b43d45b5d9b18d81a1034edbb60155ecd56a61a0600a237022fe23f6a5981b964f699abed655a8090ebef718ce6bba10510a36ac62fa369cadf13
+binfiles arch=i386-freebsd size=117
bin/i386-freebsd/initex
bin/i386-freebsd/tex
name tex.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of tex
-containersize 171972
-containerchecksum 568c1f2ccacabda0781729a13c7a7123718acbbb1542fe8cde8f02bd0f672b1c5eb82104f027338f19e458f47a5cc06be7d8121ed4a61d5ae2535e3d3cb6bcf9
+containersize 172360
+containerchecksum 1933afb8ae3edfb7db031dc2bd404a061dd1dbaaf182488609adef52358428a2afcea607fdc57bc8d8f572e35c157380713505d7bf2090d6d89a138238bf6683
binfiles arch=i386-linux size=104
bin/i386-linux/initex
bin/i386-linux/tex
name tex.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of tex
-containersize 128772
-containerchecksum 7d06b86f0c26329ea04b774e1bdb464021c36937e3bbccfd43674bd548959e002d36c124729bb2e0657643d3cedf99a210497531397bf3040655181abbae1865
+containersize 129092
+containerchecksum 9c3942acd284f6644166304a4d41c8a4eed6034ce510bce52b84bbc7b5c761714dc8c08f244387c0dcd5926d62ab45dc000531b276ee4043861eb73af9b1f627
binfiles arch=i386-netbsd size=105
bin/i386-netbsd/initex
bin/i386-netbsd/tex
name tex.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of tex
-containersize 164944
-containerchecksum e47cfee24dafb3540779d7cf8bd0a2ca1283f51516b40721aaef3d906e973d6bc3545bb68c82629b55ee6121ad2fb072309dbdcc9ca07c8792a0b38c78ef7315
-binfiles arch=i386-solaris size=94
+containersize 167384
+containerchecksum 153e77bab0a09d12a6a0a410afa8018d1cd1ce4135ee38a54e6aae2695f9f239dc90922abc6f3960e92d29ff917eb32cb7e012304b595b28e7ed56e4b1e03bc7
+binfiles arch=i386-solaris size=96
bin/i386-solaris/initex
bin/i386-solaris/tex
name tex.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of tex
-containersize 437072
-containerchecksum 6468716b53b041a7e26ac5c0bfb28aa548543ae1bb0d03f745af82b35d97baed0e3627e7be48bc4513af33ab786001e97026716e4127ce05600952c0462ca652
+containersize 437472
+containerchecksum 6dea2e736418108fee9186f7fc8d9dc6a3fb240d715c72bcbd87e839f6ae1a08952800ada8a01c1dad1981597fbe19fb7380919734285813862214e24d8ebdfd
binfiles arch=universal-darwin size=337
bin/universal-darwin/initex
bin/universal-darwin/tex
name tex.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of tex
-containersize 156612
-containerchecksum 35f6ca5219f512f3d56c1ee144f005adc0582479f7cd8d0b02e6cb1def274b40b40fa4c570023f71469a32d08048270eaafaac40891e2ea502578efc1f36eb90
+containersize 156636
+containerchecksum 9a50494d1303f758e0d6e0a758660759926b8fac2d6e95f74b5662773a5240abfcd28a137c4009974b00237c9f1ee363dd84366b93cfc17a2207b5ce76ef8434
binfiles arch=windows size=86
bin/windows/initex.exe
bin/windows/tex.dll
@@ -312351,57 +312824,57 @@ binfiles arch=windows size=86
name tex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of tex
-containersize 171808
-containerchecksum 084c652d6317e77042e0f8cd93ecae6d8ffb66252c6bd6c2ab623c68683631b6804b86f174ed98bc5c7eb9e1c616619444ba8c08a75e00ec97278d4196e7e9ba
+containersize 171932
+containerchecksum 293b8032ca31b3379cbb1892821054e0da20da14cbdb47bf2ab12edf23949cb0baf54aa74874135c9c88fe15528b9ba5e8b47385e833df57af350c34b2126bea
binfiles arch=x86_64-cygwin size=97
bin/x86_64-cygwin/initex
bin/x86_64-cygwin/tex.exe
name tex.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of tex
-containersize 170672
-containerchecksum c5d3d8954c8094aca6c1cb078f9f529133f765448f1ea927d62e8bccd2f28478df8b344c0be345f9beca7df608e7070528da8fee0cfaf66906773661087d26f8
-binfiles arch=x86_64-darwinlegacy size=92
+containersize 171304
+containerchecksum cad0ee233721f568dcb0b06dedf7228772c17c3f7e6074909177d987c93fcba3e86e2ef7b8269618152033683e5806189661bfbaa908a5953492cc06750ea8fb
+binfiles arch=x86_64-darwinlegacy size=93
bin/x86_64-darwinlegacy/initex
bin/x86_64-darwinlegacy/tex
name tex.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of tex
-containersize 178336
-containerchecksum ccccf8929eb8a92a7d9ef28d01e059c1fac6851dabd11e0be2515ebc71f5596cd923261a2882cc6b77427c0c239e2562df108488eb417c5fb44ae1a0148b9721
-binfiles arch=x86_64-linux size=96
+containersize 178868
+containerchecksum 7be079a160a1b17c6a9d61ae0b3b2e9a92ee7a6bbb88cd2faccafb102e3b81a99311263ff838af40ece6269954d838cf50bca2e30a4aebb5149b325609c8fd10
+binfiles arch=x86_64-linux size=97
bin/x86_64-linux/initex
bin/x86_64-linux/tex
name tex.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of tex
-containersize 187672
-containerchecksum a17ba83f1caa136a91eb0265f9d5ca38c4d5f8e9cc38938c5ed948d5bcb9adbb1ebbfdc45b2fc726468816241e09ea0d933524b1b0b17e026f855c06c175bbc3
-binfiles arch=x86_64-linuxmusl size=104
+containersize 188276
+containerchecksum 273501a807a626158fb817e59ace97e2af035130b18691467b0830b63ae206ce34acab4f0b067fece2c835275f508db98ce2442cf139a021ec55fab9da9d0b7c
+binfiles arch=x86_64-linuxmusl size=105
bin/x86_64-linuxmusl/initex
bin/x86_64-linuxmusl/tex
name tex.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of tex
-containersize 192964
-containerchecksum 58b0d34222ee370c29e9178d5f9d8a8ca99aeb1daadf07702822d50176316e9f40eb4064ecc445f196ab6088f05be561152f2ed06a895bef7a06cebfc4492fba
-binfiles arch=x86_64-solaris size=107
+containersize 196424
+containerchecksum a5a80507ef845e5ba7d876f47d5d17ebf6a9df5765ec0cc4c8facd3ef7b1898349e3586a60e211b7dbb82d44308adaa9a53a954d4b8fe509fc82c9859443e7e5
+binfiles arch=x86_64-solaris size=110
bin/x86_64-solaris/initex
bin/x86_64-solaris/tex
name tex4ebook
category Package
-revision 70117
+revision 70112
shortdesc Converter from LaTeX to ebook formats
longdesc This is a bundle of Lua scripts and LaTeX packages for
longdesc conversion of LaTeX files to ebook formats such as epub, mobi
@@ -312409,10 +312882,10 @@ longdesc and epub3. tex4ht is used as the conversion engine.
depend make4ht
depend tex4ebook.ARCH
depend tex4ht
-containersize 18160
-containerchecksum 7b2cc47523db8f9b987d2423e10d30d50684f2cdd45dceb846a0bec634ae5ee1514312d8cca46dce701ba1d86c9cfb21f0a0bccf67376f453fa5fec99165b19d
-doccontainersize 102296
-doccontainerchecksum 6011f8dbfe4308e17e8dae72227404374afd1c47e8ab2568248be67913ad1f170d7c83cd01a9e01e39607486579d2e9a1f0a1bbdd3230299109d12a3aba536db
+containersize 18184
+containerchecksum 2a0ae5bf0959e517db009b66dab91d01a846ca37a1eda4450b7fe91931fac9aa7415cccbc793a6744e5a34ff9f02fb7b22df44ef8a1fcd045fc1dd48d405a203
+doccontainersize 102320
+doccontainerchecksum 5592bf5f765d55f0a131870ac334f14b9b5c46d52d0d185eb5bd0e13f9f675ea7165608bb9037ff5694bf7fb5313cc215677b83aaaef44ad68b43bab8c4a9c2c
docfiles size=39
texmf-dist/doc/support/tex4ebook/README details="Readme"
texmf-dist/doc/support/tex4ebook/changelog.tex
@@ -312575,7 +313048,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 69739
+revision 70613
shortdesc Convert (La)TeX to HTML/XML
longdesc A converter from TeX and LaTeX to SGML-based formats such as
longdesc (X)HTML, MathML, OpenDocument, and Docbook, providing a
@@ -312596,10 +313069,10 @@ longdesc files from them is nontrivial, and generally done with the
longdesc Makefile in development, from which the TeX4ht package in TeX
longdesc Live is updated.
depend tex4ht.ARCH
-containersize 1118960
-containerchecksum c78b1daae522e9dfb8a0c3b49e04cfa57d68bf96555cebb5ce2700f87748e7c7f5092ad1329f9bb03d1c3f2f11eec58653a66aaa51e295b8aeb7f3606d7d87af
-doccontainersize 136384
-doccontainerchecksum 135b1475d6b4f8650a6e9363caeed0c769ea6ea2512a585b19767ebd440123f39206ebf80b708c37dc3f269b9dbec9bc91a306c36055324e883f679338fcca16
+containersize 1161232
+containerchecksum abf14b4bc99e6cc283ae630e7dc22120aa310679d19ff841120e2e58d81dddb77c15c2a3c75b395470193cd2ec93ba43750d481306d2fd8ee2525511b19f805e
+doccontainersize 136392
+doccontainerchecksum 4a3fd31efe03d89e814453a383058370bbbf7dbb364e910cd30dc96a4f43bc417e9c08edb2075b08c91848f44b2707e1554dc926db23fe804528679cd74119fc
docfiles size=260
texmf-dist/doc/generic/tex4ht/Makefile
texmf-dist/doc/generic/tex4ht/README details="Readme"
@@ -312671,9 +313144,9 @@ docfiles size=260
texmf-dist/doc/generic/tex4ht/mn56.html
texmf-dist/doc/generic/tex4ht/mn5x.png
texmf-dist/doc/generic/tex4ht/mn6x.png
-srccontainersize 1481144
-srccontainerchecksum 1366b563e320f55c4a005e25520b942c9d4e6a1dc6204a3f4e5416fdc6d682cf1b3829233780f4fb7ea81881b3b32f741ab87c2496bc75ef45993c4769fccda7
-srcfiles size=4639
+srccontainersize 1487904
+srccontainerchecksum 3710e20f240126e9a3e36cfa26e31d562dccb6d167182290446c374e87477224e45ba59f8161f508e0a7606ac2797c2eb907710f010380f646fdcba55df53c81
+srcfiles size=4645
texmf-dist/source/generic/tex4ht/ChangeLog
texmf-dist/source/generic/tex4ht/Makefile
texmf-dist/source/generic/tex4ht/README
@@ -312753,7 +313226,7 @@ srcfiles size=4639
texmf-dist/source/generic/tex4ht/update-htfonts
texmf-dist/source/generic/tex4ht/wripro.tex
texmf-dist/source/generic/tex4ht/xtpipes.tex
-runfiles size=13083
+runfiles size=13090
texmf-dist/scripts/tex4ht/ht.sh
texmf-dist/scripts/tex4ht/htcopy.pl
texmf-dist/scripts/tex4ht/htlatex.sh
@@ -312850,6 +313323,7 @@ runfiles size=13083
texmf-dist/tex/generic/tex4ht/cgloss4e.4ht
texmf-dist/tex/generic/tex4ht/changepage.4ht
texmf-dist/tex/generic/tex4ht/chapterbib.4ht
+ texmf-dist/tex/generic/tex4ht/chemfig.4ht
texmf-dist/tex/generic/tex4ht/chessboard.4ht
texmf-dist/tex/generic/tex4ht/chicago.4ht
texmf-dist/tex/generic/tex4ht/citation-style-language.4ht
@@ -312890,6 +313364,8 @@ runfiles size=13083
texmf-dist/tex/generic/tex4ht/docbook-math.4ht
texmf-dist/tex/generic/tex4ht/docbook-mml.4ht
texmf-dist/tex/generic/tex4ht/docbook.4ht
+ texmf-dist/tex/generic/tex4ht/draftwatermark-hooks.4ht
+ texmf-dist/tex/generic/tex4ht/draftwatermark.4ht
texmf-dist/tex/generic/tex4ht/dratex.4ht
texmf-dist/tex/generic/tex4ht/dsfont.4ht
texmf-dist/tex/generic/tex4ht/dutch.4ht
@@ -313081,6 +313557,8 @@ runfiles size=13083
texmf-dist/tex/generic/tex4ht/mls.4ht
texmf-dist/tex/generic/tex4ht/moreverb.4ht
texmf-dist/tex/generic/tex4ht/mozilla.4ht
+ texmf-dist/tex/generic/tex4ht/multibib-hooks.4ht
+ texmf-dist/tex/generic/tex4ht/multibib.4ht
texmf-dist/tex/generic/tex4ht/multicol.4ht
texmf-dist/tex/generic/tex4ht/multind.4ht
texmf-dist/tex/generic/tex4ht/multirow.4ht
@@ -313252,6 +313730,7 @@ runfiles size=13083
texmf-dist/tex/generic/tex4ht/xcolor.4ht
texmf-dist/tex/generic/tex4ht/xecjk-hooks.4ht
texmf-dist/tex/generic/tex4ht/xifthen.4ht
+ texmf-dist/tex/generic/tex4ht/xltabular.4ht
texmf-dist/tex/generic/tex4ht/xr-hooks.4ht
texmf-dist/tex/generic/tex4ht/xr-hyper.4ht
texmf-dist/tex/generic/tex4ht/xr.4ht
@@ -322529,10 +323008,10 @@ catalogue-topics cvt-html
name tex4ht.aarch64-linux
category Package
-revision 67940
+revision 70276
shortdesc aarch64-linux files of tex4ht
-containersize 84488
-containerchecksum a0442fddec258c8f281f8d1249894c4f2bb54b3a8b72bca277739fba8a2a6dc98e420b44d9d4cd61f6b44ccf85005f0cf53474ea03e1a1ea14c52d40219009f6
+containersize 84876
+containerchecksum 17e9e0d0080844908c7d2bf64a087e8238b2fda28bfe23c0fc70226146621a3241591a0bc44abf0d70bfc990d037e72a3f4f0cb58b78d7b9938a091f8260ef7c
binfiles arch=aarch64-linux size=74
bin/aarch64-linux/ht
bin/aarch64-linux/htlatex
@@ -322548,11 +323027,11 @@ binfiles arch=aarch64-linux size=74
name tex4ht.amd64-freebsd
category Package
-revision 67940
+revision 70276
shortdesc amd64-freebsd files of tex4ht
-containersize 108860
-containerchecksum 48f06a61ff0ca5baeeb72e303ed0c9610b7936552fd0db47f8c6715072aad93b073b743145667c5056accaecdb4856e9f1669ac84f5da21901640b30a6bc92fc
-binfiles arch=amd64-freebsd size=91
+containersize 90916
+containerchecksum 1a293acf08e411ecbf4183e1519e9393aee9b93f1690b64f48ec657b56c53b8cb30a28429c877c5f83246720cfce2bdd322fedd8c547b7f516078d20d51de064
+binfiles arch=amd64-freebsd size=97
bin/amd64-freebsd/ht
bin/amd64-freebsd/htlatex
bin/amd64-freebsd/htmex
@@ -322567,11 +323046,11 @@ binfiles arch=amd64-freebsd size=91
name tex4ht.amd64-netbsd
category Package
-revision 67940
+revision 70286
shortdesc amd64-netbsd files of tex4ht
-containersize 87320
-containerchecksum 1dcba9923d05d4b5f2d97cd620842010391f6cb3804d529eb35b88c98a4a7dc8a9c354065bc3c8119799a0e27621ed51f4f47159ab7cf9ad5c49e1d9e629d791
-binfiles arch=amd64-netbsd size=95
+containersize 88408
+containerchecksum 6bab81716cb9787c67ded9438cea0ab03ded2e50fdf59b9734b5400b5b5da9338ed9ee8ce5c5ce6eed31d41e9a24d3748a3f2c78344cadf4c81fc9046288941e
+binfiles arch=amd64-netbsd size=97
bin/amd64-netbsd/ht
bin/amd64-netbsd/htlatex
bin/amd64-netbsd/htmex
@@ -322586,10 +323065,10 @@ binfiles arch=amd64-netbsd size=95
name tex4ht.armhf-linux
category Package
-revision 67940
+revision 70489
shortdesc armhf-linux files of tex4ht
-containersize 69948
-containerchecksum 2e741dbf7d94c9c58c72c6ebc59bdd18bc13194041e37df0fc8a412e5d035ed8350cf5a434134f196c53e5b3fd45ac44e943acfa177c640cb6d1775410574295
+containersize 70304
+containerchecksum 9d36e5390acea8a4adc46bc59d87aa30d2f4914f4824d7841536cae164a662f036eccdfa898edfe2931b61a91f66b9009f06d46641aa767c67c6dc8afd1f1fcc
binfiles arch=armhf-linux size=64
bin/armhf-linux/ht
bin/armhf-linux/htlatex
@@ -322605,11 +323084,11 @@ binfiles arch=armhf-linux size=64
name tex4ht.i386-freebsd
category Package
-revision 67940
+revision 70276
shortdesc i386-freebsd files of tex4ht
-containersize 93764
-containerchecksum b7f1937460e88f5066cfdf347612b101dd6810f41398683785ef21daf6364ee7cdb36effc0374ad96a5e308e7cf2e0e23e715ce1c549fe927b027d19e379cf19
-binfiles arch=i386-freebsd size=81
+containersize 90856
+containerchecksum f17d8201b6fb7cf059e528910b063a071df37160ba2dee1e31a7a07387306d5e598e2621a668f13751fe8bca60c6830809067be11bda497160260882b3d0660a
+binfiles arch=i386-freebsd size=97
bin/i386-freebsd/ht
bin/i386-freebsd/htlatex
bin/i386-freebsd/htmex
@@ -322624,10 +323103,10 @@ binfiles arch=i386-freebsd size=81
name tex4ht.i386-linux
category Package
-revision 67940
+revision 70276
shortdesc i386-linux files of tex4ht
-containersize 91236
-containerchecksum 5977582a06f4097338576f73d75f3db4fa28ec9dfe40ff02c2c381d05f27159ee38f9ac879e6692e04646168dacf586c29a31b2bd41a380df2a1445f2e4754d0
+containersize 91840
+containerchecksum fa01d015bbf062798253015dd4644956c4871ebe2bbf2056ed14fc979931bd54a8f5a58ccb99c63ddb23f84bdb1cc77ae9fe9a2f314655932188097f874d69f3
binfiles arch=i386-linux size=80
bin/i386-linux/ht
bin/i386-linux/htlatex
@@ -322643,11 +323122,11 @@ binfiles arch=i386-linux size=80
name tex4ht.i386-netbsd
category Package
-revision 67940
+revision 70286
shortdesc i386-netbsd files of tex4ht
-containersize 76184
-containerchecksum 4341c879c6e41f6207311fe9d7857153f4e89f4a4fd90ad4728d635bd0a3407e56973374d49680cf86f646a2148d2c9f90552575466003288e588cc3d5ee04aa
-binfiles arch=i386-netbsd size=88
+containersize 76840
+containerchecksum d6e443f6fbdd44d127e38641446ea5213c33e5a09a82aa5bdf538fe73286a5f93de15a404f654685e9cd82f556837541a26bd1429e6ee1c8a82b9debf6375816
+binfiles arch=i386-netbsd size=89
bin/i386-netbsd/ht
bin/i386-netbsd/htlatex
bin/i386-netbsd/htmex
@@ -322662,11 +323141,11 @@ binfiles arch=i386-netbsd size=88
name tex4ht.i386-solaris
category Package
-revision 67940
+revision 70276
shortdesc i386-solaris files of tex4ht
-containersize 83936
-containerchecksum 71b83ad8ee5805abfeba24fb319ae045b5184b5f2fce503e2a0de9426e0479d0c71c07e508fcb532faa7b003a6f6759a87cc306cad7bc60bc78bb237a2b44f42
-binfiles arch=i386-solaris size=68
+containersize 86840
+containerchecksum c55b66bcff5f60b474cf97b1223f95c561c1175b92991df4621938354f09c7ecd1bcf66d7b2dc0a485ae18dbceaca6db8532fc7f072a4af37931bd4f6700a673
+binfiles arch=i386-solaris size=70
bin/i386-solaris/ht
bin/i386-solaris/htlatex
bin/i386-solaris/htmex
@@ -322681,11 +323160,11 @@ binfiles arch=i386-solaris size=68
name tex4ht.universal-darwin
category Package
-revision 67940
+revision 70274
shortdesc universal-darwin files of tex4ht
-containersize 184636
-containerchecksum fb7471402f313962c4636acad7376aa05ca9353a4f991c38be914d72214adec4df26ef729a59a0e1ba6e046c91756bb7e7020180090232bc4d15fcbe6fe4c4d3
-binfiles arch=universal-darwin size=191
+containersize 185964
+containerchecksum 31fe2a76e8313c02ea4cb425b48d95b8cdb25ce25f435d6fbbe7a168fbcd91df19fffed564ffcd41077f7882822d333fcf03102d6ad9fc8e0105efe63ed79dbe
+binfiles arch=universal-darwin size=195
bin/universal-darwin/ht
bin/universal-darwin/htlatex
bin/universal-darwin/htmex
@@ -322700,10 +323179,10 @@ binfiles arch=universal-darwin size=191
name tex4ht.windows
category Package
-revision 68621
+revision 70269
shortdesc windows files of tex4ht
-containersize 62056
-containerchecksum 86a74699c9701a96d7b7a989b41189ffd7c9a9f3e1bf60018c29b992872958bc3bd8a5539c64e6f3f02878037b8818c5230a1653ed1ae7c0859849659e99bdd8
+containersize 61988
+containerchecksum 1e7b667cb7722a2bb033f98625a2edb09607a3f3a5f0b0ac99366311a42d0a5c303ff759916031e9555cf75779d1f73de772d68c1c204974afb829b3094ae678
binfiles arch=windows size=59
bin/windows/ht.bat
bin/windows/ht.exe
@@ -322727,10 +323206,10 @@ binfiles arch=windows size=59
name tex4ht.x86_64-cygwin
category Package
-revision 67940
+revision 70560
shortdesc x86_64-cygwin files of tex4ht
-containersize 57992
-containerchecksum d0daae147b855f7f1bd74d0955a2825755e2c2523c11e5b5aa2e1600213451999572ccdf6985e3be3377d6c7b916c1fde4a514e746255c5618667a46e42c3221
+containersize 57948
+containerchecksum c00e15209199a229965cc3539fa88cb4da599b39473ca1f420f814b3554119f839d661488d1f6cb4e0128438b1c66afc95801b4d36d1389595360354789c5fa9
binfiles arch=x86_64-cygwin size=41
bin/x86_64-cygwin/ht
bin/x86_64-cygwin/htlatex
@@ -322746,10 +323225,10 @@ binfiles arch=x86_64-cygwin size=41
name tex4ht.x86_64-darwinlegacy
category Package
-revision 67940
+revision 70380
shortdesc x86_64-darwinlegacy files of tex4ht
-containersize 84740
-containerchecksum 33832fa22f4df53ae484351872c875e1b24d227a7944cc5b79ed45be1064726bd22c5514f4e0276deadde9e462faa5fc5b6c68fa422de178d30975c1a9a486af
+containersize 85524
+containerchecksum 717ac577302de252086bdf8cb009dbc34e31ae7ad3576afe6f0b9f83b948533df276a3ebf872586d593d0667ec858f9e41fc7406cf43edf8c3d08da88afd8c30
binfiles arch=x86_64-darwinlegacy size=72
bin/x86_64-darwinlegacy/ht
bin/x86_64-darwinlegacy/htlatex
@@ -322765,11 +323244,11 @@ binfiles arch=x86_64-darwinlegacy size=72
name tex4ht.x86_64-linux
category Package
-revision 68542
+revision 70276
shortdesc x86_64-linux files of tex4ht
-containersize 108756
-containerchecksum 2beca86805e62f8dcca898a3b158e8e7f7694096256ee58c30208943583eb38f435e8ea51de14a58c35e9287012c3dbd9ef78e55c1914f00c77f84761f1c8512
-binfiles arch=x86_64-linux size=91
+containersize 93796
+containerchecksum 4e635bd8ab838f8aad2f5e1a4738a395b613e412ead423adafed7bb83be7c364ba33db7241caa473b15eb04b320911abca0e18dec1e23fe9c14d17aceeba0325
+binfiles arch=x86_64-linux size=78
bin/x86_64-linux/ht
bin/x86_64-linux/htlatex
bin/x86_64-linux/htmex
@@ -322784,11 +323263,11 @@ binfiles arch=x86_64-linux size=91
name tex4ht.x86_64-linuxmusl
category Package
-revision 67940
+revision 70276
shortdesc x86_64-linuxmusl files of tex4ht
-containersize 94488
-containerchecksum 57ece3d84b208722e8b088aa7d298578a9d10a1b9810d54d0070b17455786b97eba64291f58f524336179e84b85bc3e95d9cd73809ff2282308911fd25269967
-binfiles arch=x86_64-linuxmusl size=76
+containersize 95108
+containerchecksum b87ecdda0669e28a9deceba4b222d636ded2f6e337db48cd93a44a0648920416f4532c18ba972e17fd4d2fb43b081e1491c03814f9162675321ffd424295d131
+binfiles arch=x86_64-linuxmusl size=77
bin/x86_64-linuxmusl/ht
bin/x86_64-linuxmusl/htlatex
bin/x86_64-linuxmusl/htmex
@@ -322803,11 +323282,11 @@ binfiles arch=x86_64-linuxmusl size=76
name tex4ht.x86_64-solaris
category Package
-revision 67940
+revision 70276
shortdesc x86_64-solaris files of tex4ht
-containersize 95264
-containerchecksum 9f2335a12933b0ad7eb60d0d4e0f7ffec1ff72b0eef55632be14ab96355ba1ddf15d68d82f480f9b1fe7483d431655366700e437c4c10530c747e0c1bd36f89b
-binfiles arch=x86_64-solaris size=76
+containersize 98552
+containerchecksum 5fb830b522e76bb4704aa153b0b6cfe760f568862be63d6f17a6e33381803ebf11a986a5f68b98d5e363598bc21970dd297d4fa55937afd58ebe2cbc1868e32b
+binfiles arch=x86_64-solaris size=80
bin/x86_64-solaris/ht
bin/x86_64-solaris/htlatex
bin/x86_64-solaris/htmex
@@ -323976,7 +324455,7 @@ binfiles arch=x86_64-solaris size=1
name texdoc
category TLCore
-revision 70583
+revision 70579
shortdesc Documentation access for TeX Live
longdesc texdoc is a Lua script providing easy access to the
longdesc documentation in TeX Live: PDF, DVI, plain text files, and
@@ -323986,10 +324465,10 @@ longdesc program by the same name to do the same job, but its
longdesc implementation is unrelated.
depend kpathsea
depend texdoc.ARCH
-containersize 30060
-containerchecksum f81535eda231bd03ffcc2c46bc05d04f73f6ec7c6ff0c436da0d42417f0a8b21c444489762a33dec5cefebbee9113f403205b621e51ee2ac33a2b23aa0eff431
-doccontainersize 140812
-doccontainerchecksum fc6d8041f21e00214dfed376b29bf47c52a24f09358255d0587c24eb1a046a6d8e65c448109c63d485f76b2cbe90ec8b609c20bbd8490206224457b1fca2499d
+containersize 30092
+containerchecksum 3daed05e952c6f756469e2375f853f12683e51750b6b214e26a8be830b3f3e45007a6c00aade64e98ee4958c76bdf14c9d6472b488c19f80642dc416ed136071
+doccontainersize 140856
+doccontainerchecksum 3a7f76a98d99c764e23736c3a51cd3d59709661bce3f76ed3026646a2fed9719c18522acef5866c122360012ec1560cd88bfd6d9d124fc305488b2e6d0de5f93
docfiles size=54
texmf-dist/doc/man/man1/texdoc.1
texmf-dist/doc/man/man1/texdoc.man1.pdf
@@ -324731,7 +325210,7 @@ catalogue-version 0.1
name texinfo
category Package
-revision 69818
+revision 69809
shortdesc Texinfo documentation system
relocated 1
longdesc Texinfo is the preferred format for documentation in the GNU
@@ -324742,8 +325221,8 @@ longdesc distribution offer online interactive use (with hypertext
longdesc linkages in some cases). The latest release of the texinfo.tex
longdesc macros and texi2dvi script may be found in the texinfo-latest
longdesc package, which are usually newer than the last full release.
-containersize 97684
-containerchecksum 5a87395dfb732e8cd213d50c3bc3079c4c6dd6a070e1be580dbe45c02b2c9f0f3d5590dc36222d0833c262c6412024e55f0881e92358715a585dda064b964e2c
+containersize 97660
+containerchecksum 336f1e5d94d3726816654ce0abeb7656aaec5dc6abd3238dd76ef1b697984e1285c38d0fb2299323c55d3a3a70e402d1aa5e6b6ff54bdc804bba6d7b74017d1e
runfiles size=110
RELOC/tex/texinfo/texinfo.ini
RELOC/tex/texinfo/texinfo.tex
@@ -324770,15 +325249,15 @@ catalogue-version 6.8
name texlive-common
category TLCore
-revision 68510
+revision 70084
shortdesc TeX Live documentation (common elements)
relocated 1
postaction shortcut type=menu name="TeX Live documentation" cmd=TEXDIR/texmf-dist/doc/texlive/index.html
containersize 348
-containerchecksum 1d56101ace5038cd3b8d36c90e026a1c26363535fffbe1ffab64dfbd01408e7cdfb66045e11b13e22491f238e2d3a7015fdeb9bf75fa56f581d2ca5da8f1a01a
-doccontainersize 708156
-doccontainerchecksum c9832e8249440656334db12b6ee54b467fdebe1194b6adbb8d28ee375250bc6458e8c1b48b5684eab0ff2f0b55db4f4ab6e77679df447a01070a15c1243e5d83
-docfiles size=224
+containerchecksum 4dc70af9b9e5310080fba3e2116d7826973f3a539d79063f82b81413dcaa29ac623f46e07e94d128796465b69c85c1d9366af6379ee4bb310616cf6f7d3247a6
+doccontainersize 643080
+doccontainerchecksum 39738cda87d15acaa4a21716b3011a04e153bdf6d3ede7dcc1efc51d5f86d7673e6d0d6bcebdfa152b25b9fca542542966f1c38515b51e887ae86c98941ffd86
+docfiles size=220
RELOC/doc/texlive/index.html
RELOC/doc/texlive/install-tl.html
RELOC/doc/texlive/texlive-common/advanced-lnx.png
@@ -324851,14 +325330,14 @@ docfiles size=654
name texlive-en
category TLCore
-revision 67184
+revision 70568
shortdesc TeX Live manual (English)
relocated 1
-containersize 272
-containerchecksum d77184250d7014dc65e74baec435fe42e784f80349df81782e8e1f7681cd14e3cc99313d61d72c010e5ffb33a0de06890c359e7b582e94662f253f8ed29cb7eb
-doccontainersize 1868584
-doccontainerchecksum 9da87903b5ebfb7ae0ea257ecb77654fe53d93b86fa73d8089b5b2adf46183862e6c67d3b93d6e112f750cbb4af6d6b034f35a1628adac413b61857a91dd962d
-docfiles size=1575
+containersize 284
+containerchecksum f0a00ee10b8949d971c79da0bdc7f7bd3cfdf506a4d7e8632f1d143abd0ce61ce5569ad048a95f29887807d9a6ca7bc5337c5abd22551f082ab0660bdf2b85d4
+doccontainersize 1873772
+doccontainerchecksum 035ca4a208bd4f47648b9a74893e05969d1e13621fea6170656d666fbe5ec18b11ff3b75cdf30d95d59dc06bc5ba765210e37aedf2ebf195feeb9bad41a52049
+docfiles size=1629
RELOC/doc/info/tlbuild.info
RELOC/doc/texlive/texlive-en/.dict.pws
RELOC/doc/texlive/texlive-en/ChangeLog
@@ -324887,6 +325366,7 @@ docfiles size=1575
RELOC/doc/texlive/texlive-en/archive/live-2020.tex
RELOC/doc/texlive/texlive-en/archive/live-2021.tex
RELOC/doc/texlive/texlive-en/archive/live-2022.tex
+ RELOC/doc/texlive/texlive-en/archive/live-2023.tex
RELOC/doc/texlive/texlive-en/archive/live-tl7.tex
RELOC/doc/texlive/texlive-en/archive/live4ht.cfg-2004
RELOC/doc/texlive/texlive-en/archive/live4ht.cfg-2021
@@ -324913,6 +325393,7 @@ docfiles size=1575
RELOC/doc/texlive/texlive-en/archive/tex-live.sty-2020
RELOC/doc/texlive/texlive-en/archive/tex-live.sty-2021
RELOC/doc/texlive/texlive-en/archive/tex-live.sty-2022
+ RELOC/doc/texlive/texlive-en/archive/tex-live.sty-2023
RELOC/doc/texlive/texlive-en/archive/texlive.pl
RELOC/doc/texlive/texlive-en/live4ht.cfg
RELOC/doc/texlive/texlive-en/tex-live.css
@@ -324926,14 +325407,14 @@ docfiles size=1575
name texlive-es
category TLCore
-revision 66059
+revision 70417
shortdesc TeX Live manual (Spanish)
relocated 1
-containersize 276
-containerchecksum d055fbb5a4cee9d207f60ee27033534917a0e91dd2e37791290737bd2727b47ccbb3199c0e18f4a564f15e5dbed3599203a7b3611558a26f784713714262311c
-doccontainersize 5182012
-doccontainerchecksum f124848f80289190abadca35a259d60781b5ae75771687ee44e863ddaace61227217a7c1ba888a85afd28583f1eadd4c91b03e224f5cb1b4516772243ac0fe63
-docfiles size=2733
+containersize 284
+containerchecksum 671cb1c99e88b4d2440ff3c46f506abf8f9e0df13e4f746bbbadf13de32a011e586adb878072f77359875b6274b625c74ac8883dd8d09088e2f9257f5d2c651e
+doccontainersize 5641916
+doccontainerchecksum 4a5ad67613dc27a699befd53921860114c397983f44bb8c6cab54160ca09d8801cdbe2741936e2a360684a114e42a3ec2e69d78c35b38de9f5d18bd5755ff914
+docfiles size=3204
RELOC/doc/texlive/texlive-es/Makefile
RELOC/doc/texlive/texlive-es/archive/2017/texlive-es.html
RELOC/doc/texlive/texlive-es/archive/2017/texlive-es.pdf
@@ -324956,7 +325437,10 @@ docfiles size=2733
RELOC/doc/texlive/texlive-es/archive/2022-march-2022-dec/texlive-es.html
RELOC/doc/texlive/texlive-es/archive/2022-march-2022-dec/texlive-es.pdf
RELOC/doc/texlive/texlive-es/archive/2022-march-2022-dec/texlive-es.tex
- RELOC/doc/texlive/texlive-es/tex-live.css
+ RELOC/doc/texlive/texlive-es/archive/2023/texlive-es.css
+ RELOC/doc/texlive/texlive-es/archive/2023/texlive-es.html
+ RELOC/doc/texlive/texlive-es/archive/2023/texlive-es.pdf
+ RELOC/doc/texlive/texlive-es/archive/2023/texlive-es.tex
RELOC/doc/texlive/texlive-es/texlive-es.css
RELOC/doc/texlive/texlive-es/texlive-es.html
RELOC/doc/texlive/texlive-es/texlive-es.pdf
@@ -324964,14 +325448,14 @@ docfiles size=2733
name texlive-fr
category TLCore
-revision 66571
+revision 70462
shortdesc TeX Live manual (French)
relocated 1
-containersize 276
-containerchecksum 2b5f6f94f9e9b3af2a18de94b85615bd09cab31d9e3f01b9ac78df5d22fae6ff84d300cc39aa92d1dac02d858c69e86d9d3dbda422574a4c3ce4652b08990090
-doccontainersize 1398796
-doccontainerchecksum 5463c1ecd592e7d304325276f950964cb52cedeab20084137deb0f4b7de1b17b536e4b030cd0e961191d61912f9c4db27f16e6e196104c84ad16ff7b545a7e9b
-docfiles size=507
+containersize 280
+containerchecksum 901b1b36bed8424010a58a38b631a3ffbb8dc0bf02a2c69697fe1492d04262a09f21b8c2b877e950625b46c0d96ad0e3cc41a1a83c8b4a6bd1f1506a4a8a61de
+doccontainersize 1246328
+doccontainerchecksum e3ce125afdddcac66bb3f592b48373d22102f4efe94cffb98eb3f909ae3b2bf55c70a91a1d24f3b0c2f9baf2281a7271be27f112eda42587ec2b1e4d923fc30e
+docfiles size=475
RELOC/doc/texlive/texlive-fr/Makefile
RELOC/doc/texlive/texlive-fr/live4ht.cfg
RELOC/doc/texlive/texlive-fr/notes
@@ -324998,14 +325482,14 @@ docfiles size=449
name texlive-ja
category TLCore
-revision 66482
+revision 70587
shortdesc TeX Live manual (Japanese)
relocated 1
-containersize 276
-containerchecksum 92f3767daa4e88bcbcff86aee215bac0ea945645a626e9612e033ad12513e41d15ce8074c22cd39b0fbff9d951608bee799dbefa431c31ca9e8f4681f15242fd
-doccontainersize 1945084
-doccontainerchecksum 464442dd7f1e77598e7bdbb6884453f5a4a2f57d5d8b028d0126e5bed50b3c19f9fefe13b602ad1aff3334e45e8082f2a1328f884ade2ea92ba4b054a41c4b5a
-docfiles size=558
+containersize 284
+containerchecksum 387a61a4e104386506b9feb6e0b65df938210260a52d865d2f7eeee2637b2335a6b793c5c9ca16d2928c93346b2db69eaeefc9c632d2d483d626dd04cfa1b21c
+doccontainersize 2744368
+doccontainerchecksum 39097626d2f747d607968bba94f40c24788b6f5a49224ef70883c51c109c4f03acaf8075e62df20a8c7a1b01c90beb2777c2e0384b423dbdb52eb1bc444784b1
+docfiles size=748
RELOC/doc/texlive/texlive-ja/Makefile
RELOC/doc/texlive/texlive-ja/img/advanced-macos-ja.png
RELOC/doc/texlive/texlive-ja/img/basic-macos-ja.png
@@ -325017,15 +325501,15 @@ docfiles size=558
name texlive-msg-translations
category TLCore
-revision 69796
+revision 70619
shortdesc translations of the TeX Live installer and TeX Live Manager
longdesc This package contains the translated messages of the TeX Live
longdesc installer and TeX Live Manager. For information on creating or
longdesc updating translations, see
longdesc http://tug.org/texlive/doc.html#install-tl-xlate.
-containersize 151736
-containerchecksum 470b395fc5ae1271c39ca5e85d7432e46ee2379a338120fb442542fb3513508dfe8c1326cf60148a4a3f58cbc990913dd272661c6b9a942f167ee6d6d15ac7dd
-runfiles size=378
+containersize 152064
+containerchecksum 9a721a0dc2843babf14b5ee77aa329849d4d62bfa697b5cbc1a8122b9105d26295bcf3ada3b773f672756209d7f5efe6853ad00db28340165df407111ed88323
+runfiles size=377
tlpkg/translations/README
tlpkg/translations/cs.po
tlpkg/translations/da.po
@@ -325086,7 +325570,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 70585
+revision 70616
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -325094,11 +325578,11 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 114028
-containerchecksum fb5abd894d2ac7021391b7ee270cc833131c2a30f406e8b63e1b3c713abda08c3a28a30067d89e905fa40d7092c9529e8ed954a020833724cc867c6f2eab5272
-doccontainersize 433256
-doccontainerchecksum 3d497cf7940b0b6410a537da324da33276b8af004c00b54462f40986d7a2af818c817b57663d47c714c3e4237dbbe622627bb64dedbaf2017732bc76e59492f5
-docfiles size=565
+containersize 114040
+containerchecksum 86c43269cf6082fd6486e749ff4ae5cb7fdf583bba2fdcd6609df781ff2308dba8b92ab02a9b0fd55f3ddf9482a58acafdc1aab998f6e36887f6edcce28dec01
+doccontainersize 433960
+doccontainerchecksum 3bb4b0086e162312fdcc258ec757ff416aeff94f0011ee7430ea5cce4b7f2e3765821b3153826788a7abad45af5a6a6ea5b7683744f179e1fb7a4d659a971f99
+docfiles size=566
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
@@ -325482,10 +325966,10 @@ binfiles arch=universal-darwin size=18
name texlive-scripts-extra.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of texlive-scripts-extra
-containersize 5068
-containerchecksum 0b359c58036f235d3229403903b5af201fc20c32de811bbc33b21692f871ce30ba69548890009deb4921d64e45bc022977eed84f15389b760a61a0cdbd799f3e
+containersize 5080
+containerchecksum 6e69bdc637361ce6de07d9eb5ab652d5bf02490c6d7674a544feb32be922ee71820f920664e60a62154e48e2fd5b8b375abbad4734f87b023d68e3d67f7803bf
binfiles arch=windows size=6
bin/windows/e2pall.exe
bin/windows/mkocp.exe
@@ -325812,10 +326296,10 @@ binfiles arch=universal-darwin size=13
name texlive-scripts.windows
category TLCore
-revision 67095
+revision 70269
shortdesc windows files of texlive-scripts
-containersize 60312
-containerchecksum 050dad0a84275606f7fb25b55e5013357a6fb024d69e712aa3519f0d83c0e1b75f87231d8b37c0e85511ffcb1b7046eaee57b6907bca695696062d1e335161cb
+containersize 60292
+containerchecksum 27813eb544218486cd9a0b7831409c1aa76fb09ba931f3670771dd1bd1052f622f7918289995485a92f05610cf21142bb8064399ab9b16c9c0d51b22517234f4
binfiles arch=windows size=55
bin/windows/fmtutil-sys.exe
bin/windows/fmtutil-user.exe
@@ -325979,7 +326463,7 @@ docfiles size=302
name texlive.infra
category TLCore
-revision 69740
+revision 70084
shortdesc basic TeX Live infrastructure
longdesc This package contains the files needed to get tlmgr running:
longdesc perl modules, xz binaries, plus (sometimes) tar, wget, lz4, and
@@ -325987,11 +326471,11 @@ longdesc various other support files. This package also represents the
longdesc tlcritical recovery scripts. The standalone installer is close,
longdesc but not the same; it's defined in 00texlive.installer.
depend texlive.infra.ARCH
-containersize 361928
-containerchecksum d3ef23150149d240d8b74f5b9f6126de90f44960238deefa94415310586790d5324f9fd83478fa4d726ef6dff516f5382222f56933599b384101521a66d0a248
-doccontainersize 203936
-doccontainerchecksum fb06ad12bea2d062dd5e2049e74e096064198242f010cd6e04e2d4a92a7fc39ae829003c7ed3f8347f96c99c31e26ec44073b45ed3ebbe9e18fc78e801d00c94
-docfiles size=137
+containersize 363128
+containerchecksum 088ec9147c0908e5d10aca812e3741d5075ca4467fb84349831460f99c6888fe3fe0b006219f2c7c0fbd83a2d80fc818bc7d88f9081cdd994c8dd566164d2c77
+doccontainersize 205936
+doccontainerchecksum 8851515ea0be1790f8847068d9172fa2bf7a702ef4533c7e7541c64eec4ad3833139a924076b36b91a0b01476dd7b95bf573d6b9940245a5e93d551cc0f2edf1
+docfiles size=139
README
README.usergroups
index.html
@@ -326032,7 +326516,7 @@ docfiles size=137
texmf-dist/scripts/texlive/NEWS
tlpkg/README
tlpkg/installer/COPYING.MinGW-runtime.txt
-runfiles size=327
+runfiles size=328
LICENSE.CTAN
LICENSE.TL
release-texlive.txt
@@ -326067,10 +326551,10 @@ runfiles size=327
name texlive.infra.aarch64-linux
category TLCore
-revision 61925
+revision 69786
shortdesc aarch64-linux files of texlive.infra
-containersize 82736
-containerchecksum 3a5b4da86c5ef5f186f0caf5ce9339dc396d70cccccea9bef25d545178c24f0dffef946563be78723f80a57972bc7e3994bcf60af8156bb1616d3da3106b76eb
+containersize 82656
+containerchecksum a5cea575ff7de0306842a4b77f4ffc8e854f52241f57a1fcda9b31a85dcb7d42994424cea87069933e63b0091ce7413d98fb3d33d857d3e96219aeaedec6dd6d
binfiles arch=aarch64-linux size=49
bin/aarch64-linux/mktexlsr
bin/aarch64-linux/tlmgr
@@ -326078,10 +326562,10 @@ binfiles arch=aarch64-linux size=49
name texlive.infra.amd64-freebsd
category TLCore
-revision 61925
+revision 69786
shortdesc amd64-freebsd files of texlive.infra
-containersize 342980
-containerchecksum 386cf3a64d71c2098025725867d3a07011da5648a2c345667de73d780106b13764ccf0ad91e80daf7d33ae0419eef5aa0a136a458ee1f52a408138a65524baa5
+containersize 343216
+containerchecksum 4eab161211c84e132d467f7de62eea33a63c3f7b16d0184c430444ea860b165072a26e95815c136c9e4aece1370c6158fd08e214b91d68e6c98299c6bc8caac6
binfiles arch=amd64-freebsd size=265
bin/amd64-freebsd/mktexlsr
bin/amd64-freebsd/tlmgr
@@ -326116,10 +326600,10 @@ binfiles arch=armhf-linux size=101
name texlive.infra.i386-freebsd
category TLCore
-revision 61925
+revision 69786
shortdesc i386-freebsd files of texlive.infra
-containersize 310740
-containerchecksum 41f80752afe03a4921b329896be5d6146f9b65ea9b5bd806db1227318af4d839a2afdc047ec30660f1dd4613e9680447356602f505efb99e525ad5e40c9e486e
+containersize 310752
+containerchecksum 8d806d852e9915c52bce234d9a1abe31c7679a70f860f91bd989e3b3f4e74bec182322b1d304deda801aa63795da5722ed107af9287643f9329c38216b2b6e0f
binfiles arch=i386-freebsd size=227
bin/i386-freebsd/mktexlsr
bin/i386-freebsd/tlmgr
@@ -326129,10 +326613,10 @@ binfiles arch=i386-freebsd size=227
name texlive.infra.i386-linux
category TLCore
-revision 61925
+revision 69786
shortdesc i386-linux files of texlive.infra
-containersize 155752
-containerchecksum 723de926cafecd2388f1f820ea6d1ea98a2afbb6ce2f4d28329d50d2211dd6de3099472a52482dab62c1ab78f1edd84c6657d6561a250cdc2d44c436c55f3c7a
+containersize 155788
+containerchecksum dff371ea2d9cf77e47e210414d16ec2b87b765b7fd92330494e8e96a914ca0987430902e36c2009c981072f1f253ba7b4337dafd02eeb3add66b5934dea1fad9
binfiles arch=i386-linux size=96
bin/i386-linux/mktexlsr
bin/i386-linux/tlmgr
@@ -326154,10 +326638,10 @@ binfiles arch=i386-netbsd size=232
name texlive.infra.i386-solaris
category TLCore
-revision 61925
+revision 69786
shortdesc i386-solaris files of texlive.infra
-containersize 306488
-containerchecksum c239a81423b16bf2358de3a0dc5ff193439f1b09326d6e44ada55bbc063d21dcfb1bf2699025fef076c8c73ae6cad1c4e579c6bcdcd704cfe50973b45c4fc3ff
+containersize 306484
+containerchecksum 11fe29334a29d0a1586e3723e7c4ac8f9580e01e992feb6a33800444ae99af2e37b2c05174da83e18ffa61af2b4473c674880680700f793ea44edee5b68c1e05
binfiles arch=i386-solaris size=211
bin/i386-solaris/mktexlsr
bin/i386-solaris/tlmgr
@@ -326167,10 +326651,10 @@ binfiles arch=i386-solaris size=211
name texlive.infra.universal-darwin
category TLCore
-revision 62358
+revision 69807
shortdesc universal-darwin files of texlive.infra
-containersize 308304
-containerchecksum 2236a86836f174159cffa4083abf8b1af053548402f60a1db18bf7959ec14896935e0be83a134042ffb69b60e8653381b085b33028794df7d40ed43fd80768fc
+containersize 308288
+containerchecksum 3b69568e7e30b060aaa82012dfe3ba59114f212a490dcfe5151715d7bcab7d71951d93196a5445d92f05674612ac0dbf7becadf464358d3132f2264058a499d8
binfiles arch=universal-darwin size=246
bin/universal-darwin/mktexlsr
bin/universal-darwin/tlmgr
@@ -326179,10 +326663,10 @@ binfiles arch=universal-darwin size=246
name texlive.infra.windows
category TLCore
-revision 68856
+revision 69813
shortdesc windows files of texlive.infra
-containersize 3085104
-containerchecksum 5f2e182f28dad213e3a054db952b17cd6745640f927f886680462d6e86d8134016097867a86abbbf3d4457c6d45712599c976b5e13746e08aceb5dc6bb5858d2
+containersize 3084576
+containerchecksum ba2f86055a5360ac5510d813d2ea615695d9973281ab9ffb12178067463bbf8f83ca140c3808b61775116ba11144843d5e1ed078b6f471866425803662bacab8
binfiles arch=windows size=1941
bin/windows/mktexlsr.exe
bin/windows/runscript.dll
@@ -326210,10 +326694,10 @@ binfiles arch=x86_64-cygwin size=111
name texlive.infra.x86_64-darwinlegacy
category TLCore
-revision 61925
+revision 69786
shortdesc x86_64-darwinlegacy files of texlive.infra
-containersize 326740
-containerchecksum 5e38ad9a37d0099855c0c3c9f926f376ec9947951f3193eefdf2fd2c15477f9bbc82ab1d9ee60a40b73a4c73847ef9da24548fc44336a34b4b6e28cc64e9c5c2
+containersize 326496
+containerchecksum 213d8aba777e8df72893bce821015ba3bae0224a310036b89cd4c34667a48592370cba6f08ba29ee56036891228634d07702c1b83e471e932d0b63215c44c6a0
binfiles arch=x86_64-darwinlegacy size=221
bin/x86_64-darwinlegacy/mktexlsr
bin/x86_64-darwinlegacy/tlmgr
@@ -326223,10 +326707,10 @@ binfiles arch=x86_64-darwinlegacy size=221
name texlive.infra.x86_64-linux
category TLCore
-revision 61925
+revision 69786
shortdesc x86_64-linux files of texlive.infra
-containersize 145512
-containerchecksum cf9b809403543294e859fe298d77386cff0853faa6180c9ecf52c5834bd5a246521460cab88b51a2bc20b3d3e4e33843eeb693e2939861d83f1a7ba118f2d9b5
+containersize 145480
+containerchecksum 70d2d7a2f6068a670f3eee4b87efabab0198efa2aafadf2bebcc84390639ea85a141fcdaee4763f6a4cd6040b51a37a5968997098ec7451ea60e4d0b310973bb
binfiles arch=x86_64-linux size=85
bin/x86_64-linux/mktexlsr
bin/x86_64-linux/tlmgr
@@ -326235,10 +326719,10 @@ binfiles arch=x86_64-linux size=85
name texlive.infra.x86_64-linuxmusl
category TLCore
-revision 61925
+revision 69786
shortdesc x86_64-linuxmusl files of texlive.infra
-containersize 536828
-containerchecksum ba4f6301d0850e4c1b36b0812f198c1161b3ef14d57b16304ac3d74d49cecbcd764c6e161232d37c5ba3133e5788483f19b95d994fec17c4ec0067c6090ca2e7
+containersize 536780
+containerchecksum 8409a3d9ae3d26501eec0fbd7b591f4bc73daedfe29b1ac75ae723ec77d7fccaf6ad703f8b251a6365313ae2ad33ffc23d32391fbf53f8013539e6da1afb3b3d
binfiles arch=x86_64-linuxmusl size=474
bin/x86_64-linuxmusl/mktexlsr
bin/x86_64-linuxmusl/tlmgr
@@ -326248,10 +326732,10 @@ binfiles arch=x86_64-linuxmusl size=474
name texlive.infra.x86_64-solaris
category TLCore
-revision 61925
+revision 69786
shortdesc x86_64-solaris files of texlive.infra
-containersize 332292
-containerchecksum 479bd6f8b32569d2583a02d95d98d71bca9919e251e5885fece51567f79cbe4b406cf81f6cd1c964ecdf3eccbc13ef2064eb2bb9997a087c9e1d8706dc374fc7
+containersize 332328
+containerchecksum 6d8356d880996f36b63860c41d4ec4c6e4b505cbb9f371068f0e4e2b2f144659fd7b145a9adcff88f310af91f56587d5e1aeeee19a88b798074a92679c4c1476
binfiles arch=x86_64-solaris size=248
bin/x86_64-solaris/mktexlsr
bin/x86_64-solaris/tlmgr
@@ -326577,7 +327061,7 @@ binfiles arch=x86_64-solaris size=1
name texlogfilter
category Package
-revision 69919
+revision 69918
shortdesc Filter LaTeX engines output or log file
longdesc texlogfilter is a Perl script designed to filter LaTeX engines
longdesc output or log file (LaTeX, pdfLaTeX, LuaLaTeX or XeLaTeX). It
@@ -326586,10 +327070,10 @@ longdesc errors. The result is colorised. Options allow to mask specific
longdesc warnings, such as box or references/citations warnings. It's
longdesc also possible to add custom filter patterns.
depend texlogfilter.ARCH
-containersize 3880
-containerchecksum cd70a50317af4ed121bfca914ea3083d11be2087b9507a7caca97238ca5f62df418b2e059feb1d24492c87f57096f3e3268ba4921f9cff1709d43bfa6be29f25
-doccontainersize 29464
-doccontainerchecksum 7d83863001f4c57018253fc1ddcb08abb847a76307fda75c85f991670fcd8de006cee3c6292696596fc7be5eb752ff38fe63215e2a80a51d7a35e19dd8702914
+containersize 3884
+containerchecksum fc25e10783fec6cc60bf19dd39c80080892ccbb0b686a3c2bca6d36166029bbff85af75b3094092f2ade826f33258269171f39a3615010d7a60341043ebc960d
+doccontainersize 29452
+doccontainerchecksum 4bb8755854fee7168a601bf21596b2ad1e49ed6837efed3fd4ed5eb1f1774c30d051b650f28c9e05cdd59a5cc3c7f9bc651ddb220f3fa3a03d1395c7f32d3b38
docfiles size=16
texmf-dist/doc/man/man1/texlogfilter.1
texmf-dist/doc/man/man1/texlogfilter.man1.pdf
@@ -328369,7 +328853,7 @@ catalogue-version 1.1
name texware
category TLCore
-revision 66186
+revision 70015
shortdesc Utility programs for use with TeX
longdesc Basic utitility programs, comprising: dvitype, which converts a
longdesc TeX output (DVI) file to a plain text file (see also the DVI
@@ -328378,10 +328862,10 @@ longdesc program's "pool" (string) file into human-readable form; and
longdesc tftopl and pltotf, which convert TeX Font Metric (TFM) file to
longdesc human readable Property List (PL) files and vice versa.
depend texware.ARCH
-containersize 636
-containerchecksum 532cf8cfb19ea5c8ed0fe6939fba0ddfaed58989a588acef18ef38c587d8485295e9d438487fd2225a0f68c12d0dd8c6263d597c2e94cbdc96ed074ddd296729
-doccontainersize 34540
-doccontainerchecksum c4be0bdc3490a0bee08d6a99907f7abe1145ae8f8f89dd8665cf6a8738d07c7a537c0d7e767b56a6eed3a00ea169729b4d78208aab2aa883c9fb422e4dde3383
+containersize 632
+containerchecksum f857499d287cf6c80eb2630d729c0d5f91f897dbfccadfb3fc389b3abf2d382d3625f1a951afb2c234b9e2df06d78d4f8b7121bfa49d003c130381b1cd43dbc2
+doccontainersize 34460
+doccontainerchecksum 090dd211c5e62bb11ba0596741ddb76bb98bb5812f96c998457799aafc189fdeff311b67d1dddc3046890781deb3861b7450c64164fac3a9ea38b8141d9f44d0
docfiles size=13
texmf-dist/doc/man/man1/dvitype.1
texmf-dist/doc/man/man1/dvitype.man1.pdf
@@ -328396,151 +328880,151 @@ catalogue-topics debug-supp
name texware.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of texware
-containersize 48856
-containerchecksum 0c09408e5a274c864a1aeeb1ad4d02f4f3c30f5927916734e4120dd99c0975b737acdb72372db5d6e72a9fa04882ae7dacaaaab0cd01ddd84beab83e86b5d237
+containersize 49384
+containerchecksum 1ed4767fe93670e8a951db9c9db5274b6a3249e479cd474072d1eaed9e659ddba82985b3d3ce0c7f39cfdbf8e868f6d8844b5a0e1d1abce6660de1ff5892a479
binfiles arch=aarch64-linux size=36
bin/aarch64-linux/dvitype
bin/aarch64-linux/pooltype
name texware.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of texware
-containersize 54700
-containerchecksum 88e93368e5fb680a17fcaaeed3ab273a03fea00a37effdd2bf2dd7b088bbc9cac8dd276eca489900d49d4c75e8572f24fabe7e55d4233968e573288fe377b8a0
-binfiles arch=amd64-freebsd size=38
+containersize 50984
+containerchecksum 9b0c203cc07264e436edf558f5ef81dd729b25b659575f0f8fff0b25dbf03cc74529535843d96af1ef83adc17589b3c599de7a2be92533488d19dead339ff4b8
+binfiles arch=amd64-freebsd size=44
bin/amd64-freebsd/dvitype
bin/amd64-freebsd/pooltype
name texware.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of texware
-containersize 48044
-containerchecksum 159dd7246de5f759bc31f53520c6763cd1dd7b82604a00b01d62b98a349aaa1bb2d5de9b8cee1431867d8373a5eef008b63b4216b24b968905c5534d6da90df7
+containersize 48536
+containerchecksum e0f109c263d7e39c777876d8db83a57be1e29b0b8532004cb059b4a9c7c666732afe4abd22be52bbf789bc624049a4ad02174b055e9b1455a0a8e611883929f3
binfiles arch=amd64-netbsd size=42
bin/amd64-netbsd/dvitype
bin/amd64-netbsd/pooltype
name texware.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of texware
-containersize 41104
-containerchecksum f6da8b4f115f7856832c016a8718913eb879afa8352ebeae3bd4a1bcce8b8529b52b8cfb177a011c3df71e418180271c722573f7ee988c4b14a2426d3d2efb27
+containersize 41448
+containerchecksum 57158de159c296fbe45644c46d54bd8e715ee529a428ba64bf53dc1bf7098deca36cb89521b92832af26e693c493ef44ef54ed73d1dbd17896fb3a5084fd3d1b
binfiles arch=armhf-linux size=29
bin/armhf-linux/dvitype
bin/armhf-linux/pooltype
name texware.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of texware
-containersize 48156
-containerchecksum a5a6e92878488c00ccd6667e727cc5a1b98af2b07c07049cad4a0974f56a78c1283aa1bf8733ff177be7098c78b6f505390d91322a60038f7ef01f5ffd1a602f
-binfiles arch=i386-freebsd size=32
+containersize 50980
+containerchecksum 60ecbb07e0980f88103efd47b09d6ddeb89464032384f39b846cfc34bf73c1a5227f7dd8a3e9fe5019cd852e0418b375f7cdd2ea603bdac5ffe69d0001f83102
+binfiles arch=i386-freebsd size=44
bin/i386-freebsd/dvitype
bin/i386-freebsd/pooltype
name texware.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of texware
-containersize 51908
-containerchecksum f388d437f1208191007832c46dbab773d4d4832d732fa2b04bb57e8e218c913a51f31a4910eb57da4f905088df85d402e196996cc3940ff22d12714b0feaaf6d
+containersize 52236
+containerchecksum d15ca63729b2ff32c50f15c15f1fcc842e74f35c98a548d1c21a85897f436d77c8224c6effdf2bc35c8b081386cca3186584a6d7675312d3f4df850fafe108f5
binfiles arch=i386-linux size=38
bin/i386-linux/dvitype
bin/i386-linux/pooltype
name texware.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of texware
-containersize 43348
-containerchecksum fcca755848379109bf5501b9d575324b8a26e531e4bfadaaabaf5635d002bd7b52b5ea4db8a3c1d3ce0c0e607319b436eed09b6b9b5efc02177c750ab31df19d
+containersize 43664
+containerchecksum a9e3a174602ece215e647a3088e12a562c08ee946b093b336ee81d7aef41cd8f72be0c16d65a858f367e16b23931b071ff5862f92873d43605f4b3a980505685
binfiles arch=i386-netbsd size=40
bin/i386-netbsd/dvitype
bin/i386-netbsd/pooltype
name texware.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of texware
-containersize 50912
-containerchecksum bcbc0b201138a771f3db8c127901b377525de64923173e5344b925d91489abfcf04092ce54ed6289f126cae924a9db7e17fedbd9fbcf796bbc28ac180317c992
-binfiles arch=i386-solaris size=34
+containersize 52408
+containerchecksum d7d51c11aad48c1534551fa7e4a1c55227040daef42fb3d8928cbab0007ea7c8b40e962dd7365c911993ab3ec6190b255b0212a5f03be8f27b336b33e657733e
+binfiles arch=i386-solaris size=35
bin/i386-solaris/dvitype
bin/i386-solaris/pooltype
name texware.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of texware
-containersize 103112
-containerchecksum c2911c1c4bf62818b4fcf2efc9007d914ad8f792c353d8eee47a2e233bce309e78fe5705edf0b1d2ca3565dee80e8ed4655935b329c55f77bdaccc2e503b4b0b
-binfiles arch=universal-darwin size=113
+containersize 103616
+containerchecksum 6afddcac00fddb7babba998d4daa1a17149b91138840f2c7dbf36292e153f11c8d32815ea25083fe10fd15c4633bd5fb28a7bcc0a6cd9acb3529e26721434692
+binfiles arch=universal-darwin size=117
bin/universal-darwin/dvitype
bin/universal-darwin/pooltype
name texware.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of texware
-containersize 21204
-containerchecksum 395c1cc4724a089063af9d19b2ae2042d384ba9a90969d72119f120bdd13b15b56872230b53f1057b61996273081ed34ef61ff175e06bd28e882e6a11586d5dc
+containersize 21200
+containerchecksum b99de4a743e7ca432722923bc16ca620608d4fd426c55e0ca2f106ceb01ff9c2f73e9bb69f46e69ae7433afa5af1c778fb9457bd8484bbde9e9a9eab82961e22
binfiles arch=windows size=14
bin/windows/dvitype.exe
bin/windows/pooltype.exe
name texware.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of texware
-containersize 20644
-containerchecksum dd153e90184ebc7b40ed446fcde83f2132b03046f084944b3cecbff878ab5c89f1dd0766b6a9d0e94e5735ecd2985fe109a70201f73be9102dbe5c7b7ff498e8
+containersize 20612
+containerchecksum 9c45a6aca3fde6dd6fc62cef94a2fc075f1085afcc5f4c6e0f3cfc84f7f16a0534bc98c6432c28675566f9eb496fbb51fb3af3ec118de3835222f12517c407c7
binfiles arch=x86_64-cygwin size=15
bin/x86_64-cygwin/dvitype.exe
bin/x86_64-cygwin/pooltype.exe
name texware.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of texware
-containersize 50712
-containerchecksum b2d4fabab0406dd0a492ad4b43baf58833c029af5129e8863522417b4cedf1ba0b34093b4ccc51e35512ef13a34b13f18ed4b6f48dadb4eea1f842042e07efbb
+containersize 51368
+containerchecksum b2d16545c48f91737bac64578e398a1632a7971c6da39a6be9a98af2953bf061e9c390cd69a1d4ed5f0987799582f79bbc03d7c778b3ed0f05204339c60de511
binfiles arch=x86_64-darwinlegacy size=35
bin/x86_64-darwinlegacy/dvitype
bin/x86_64-darwinlegacy/pooltype
name texware.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of texware
-containersize 50468
-containerchecksum 5f10f2eb304a086346460c374dfbd35dd37f789a20315d44a9aa17aa22882be95b88b3692ede593e9e29807a9f6fc11c42e655841b4d985cefa0c0f023a502a7
+containersize 50832
+containerchecksum aedcb7ea8a1570bf29e0f6c288bb50a5def58a0207c41eef90af270c85d79e921da17b884c45165e7cca11b8587e7d8456a868fb3ebc36ece0e9d00aaf854e53
binfiles arch=x86_64-linux size=35
bin/x86_64-linux/dvitype
bin/x86_64-linux/pooltype
name texware.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of texware
-containersize 54892
-containerchecksum 6093acc5276c2d9e9866de91a3dcce8e77ba6bab971660dff4536ba2cd9bacb609b846e3fc2e5c811043204d9adda98091981d22e178fcd1fc916d5bf9b145d5
+containersize 55356
+containerchecksum 1820e4aec157123843282d5d8fbbf0c07bb3c470c09fe0a2adaf9e715e1f325a6c0209cf159cf5a36ded750bdf0bcdb403e625927acf00bdf89fee092bbe9d26
binfiles arch=x86_64-linuxmusl size=37
bin/x86_64-linuxmusl/dvitype
bin/x86_64-linuxmusl/pooltype
name texware.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of texware
-containersize 56320
-containerchecksum 6b082e5dd31175e49cecfbfb83bd60980fbb6281dbb34ce395280e78426d2c55b782a0ac0200000f5cdbd7f5bc937580ac9ba221a17f790a9d937341d559cc9c
-binfiles arch=x86_64-solaris size=39
+containersize 58400
+containerchecksum 28994cf8797861be9d30538f02dd896a73eaac72239488d8d9d51746f45344437e8b93235546394f36b1091b533435d6bfcdff42db7c53b11c489cf5401b7c6f
+binfiles arch=x86_64-solaris size=42
bin/x86_64-solaris/dvitype
bin/x86_64-solaris/pooltype
@@ -328565,11 +329049,11 @@ docfiles size=1
name texworks.windows
category TLCore
-revision 66345
+revision 69823
shortdesc windows files of texworks
-containersize 18875804
-containerchecksum dd64882466e9bf180ab5546d362b2ff0920bea7005d59b5467b9f1a8753c5257f6a0b325f296c40f0cb1d145fe5bc63181020579321ea73d008b0955002a890d
-binfiles arch=windows size=15048
+containersize 19135572
+containerchecksum 427d3aec1a70940395cd10069583f81257bcd005963d8d8a4b6f3cd6aab4e65388f98bbb5d31f8fd34c89a5621323df1d37940b1ea7ab8d607fee12bafc04ce1
+binfiles arch=windows size=15302
bin/windows/texworks.exe
tlpkg/texworks/COPYING
tlpkg/texworks/README.txt
@@ -328852,33 +329336,23 @@ binfiles arch=windows size=15048
tlpkg/texworks/texworks-help/TeXworks-manual/en/Regularexpressions.html
tlpkg/texworks/texworks-help/TeXworks-manual/en/bibname.html
tlpkg/texworks/texworks-help/TeXworks-manual/en/contentsname.html
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/LMB.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/LMB-.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/Linux.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/Mac.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/MacCmdKey.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/MacOptKey.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/RMB.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/MacCmdKey-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/MacOptKey-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/RMB-.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/TeXworks.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/Windows.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/cmsy10-c-41.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/cmsy10-c-4d.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/cmsy10-c-53.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/consoleOutput.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/errorParsingScript.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/citationsDialog.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/consoleOutput-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/errorParsingScript-.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/example.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/iconAbortTypesetting.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/iconTypeset.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index0x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index1x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index2x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index3x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index4x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index5x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index6x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index7x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/index8x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/en/images/interface-summary.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/iconAbortTypesetting-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/iconTypeset-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/interface-summary-.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/replaceDialog.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/en/images/screenshotHardWrapDlg.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/toolbar1.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/images/toolbar2.png
tlpkg/texworks/texworks-help/TeXworks-manual/en/index.css
@@ -328937,31 +329411,18 @@ binfiles arch=windows size=15048
tlpkg/texworks/texworks-help/TeXworks-manual/fr/UsageavancelesScripts.html
tlpkg/texworks/texworks-help/TeXworks-manual/fr/bibname.html
tlpkg/texworks/texworks-help/TeXworks-manual/fr/contentsname.html
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/LMB.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/LMB-.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/Linux.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/Mac.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/MacCmdKey.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/RMB.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/MacCmdKey-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/RMB-.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/TeXworks.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/Windows.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/cmsy10-c-41.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/cmsy10-c-4d.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/cmsy10-c-53.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/consoleOutput.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/ec-lmr12-19.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/errorParsingScript.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/example.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/iconAbortTypesetting.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/iconTypeset.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index0x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index1x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index2x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index3x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index4x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index5x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index6x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index7x.png
- tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/index8x.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/iconAbortTypesetting-.png
+ tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/iconTypeset-.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/interface-Tw.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/rechremp.png
tlpkg/texworks/texworks-help/TeXworks-manual/fr/images/toolbar1.png
@@ -330498,7 +330959,7 @@ catalogue-version 2.0.0
name tie
category TLCore
-revision 66186
+revision 70015
shortdesc Allow multiple web change files
longdesc Tie was originally developed to allow web programmers to apply
longdesc more than one change file to their source. The program may also
@@ -330507,9 +330968,9 @@ longdesc incorporates existing changes.
depend kpathsea
depend tie.ARCH
containersize 476
-containerchecksum ca58ca773fd1e4e786f12e1acf9b0e39afe1709c73cc7a0da4331576933c1a4aafd9eed3a0181bcb20b6087d409c73f78fc2a77d96bb75d183996593b8aadadc
-doccontainersize 15564
-doccontainerchecksum 66e92b91bcf9b6c44d8d2af141d4980a2b0e0ee3a9dcab778eae118debe4ce4459c933cde6a5cb8cf07af8b5d5d001bc1bcafa2776ae64121ba6308a7b19b3cf
+containerchecksum 78d885c3b7b1ed3955e415ed09a1615d676020b6092cb8adbec9d9f6645d68af5811bcc3cfae9b3770016102f4efbb44777ba815c4a0ac8bba4c418960c93a7f
+doccontainersize 15628
+doccontainerchecksum 308066a7af4f0290c16056b727beda0fcaaaa1c4241bdf6e3783b79ad898f7196aed2779a3b7b883055bc580ea629fdcd17a735df60f95cb65cc1896738b35b6
docfiles size=6
texmf-dist/doc/man/man1/tie.1
texmf-dist/doc/man/man1/tie.man1.pdf
@@ -330520,137 +330981,137 @@ catalogue-version 2.4
name tie.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of tie
-containersize 32736
-containerchecksum c949ee691ae76af15463484d5fe59e697f54ee8a7e758320bf2d0903af3efd6733cea0f116a270dfa4d3e9da121a633d4623cba233e701f275df000322f1f67d
+containersize 33132
+containerchecksum 337ae10ee30c9a58ba0721f7a363e3e56c5495a6f3d2a1015ea0f24cf440cb9942731ffccd7aaa3b5c4974ec0c3b1a8b5655e548a8420fcaa0a70ad4bc72f76e
binfiles arch=aarch64-linux size=21
bin/aarch64-linux/tie
name tie.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of tie
-containersize 33772
-containerchecksum dffd57d9f3f7f90e431716ec34b506ee8bd8e5a894f27865175c92aaced7a943a5339267713a905b7618d0112cb2085e68c0f7eb82b6cfa2adcecba476a66f85
-binfiles arch=amd64-freebsd size=20
+containersize 32520
+containerchecksum e678177aeea85e4ad2ecf484fbf048f6ff44a7db3342d79f32bf23b6e1f1454e3cb23366a9ba911707c98a1f994869693440c21c3e77ca38c6659fb529425b65
+binfiles arch=amd64-freebsd size=26
bin/amd64-freebsd/tie
name tie.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of tie
-containersize 30892
-containerchecksum 6f46f5cf2433d00d7703d7a4ed81b38b60e52a7f1cfe968ab02cbec70c34d270524848846766e9f5f4c5a55eb72d63d5e7394c3debbfebcf2c5116bb5116f10f
+containersize 31388
+containerchecksum 7e63ed26a966d8d3c1aa1782450d948282db107f80ec644d0633f9bc81f96913ad2f7c03402a7c0fa39d372fd206dfd2fe93cc96a3ec45d387be2ddfe8f228c0
binfiles arch=amd64-netbsd size=25
bin/amd64-netbsd/tie
name tie.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of tie
-containersize 27344
-containerchecksum db56edb21574eeab640df14319fb135b97a7815b88f14c1383ce14ad39b1ead4adc41cbc75db492b6f561b465af4dee121bb13d2801eef69d65a2960375bd864
+containersize 27668
+containerchecksum b0dde1b40eebbac0a7cf27fc2136a6141c00dd0515f2c76502eca3f080bee81cf615456525cba237d8e9b13d4f6ca6f83a0661984df29dfb85f90a9324406b8b
binfiles arch=armhf-linux size=17
bin/armhf-linux/tie
name tie.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of tie
-containersize 31036
-containerchecksum c4894c73fc89df20ef499116d78e6243aea16896e271adf477af9e4039996e8003de8dffec6cd97296b4aa7a4d0f1d146915ac7553ae74ac78ff25ed1c2205a4
-binfiles arch=i386-freebsd size=18
+containersize 32544
+containerchecksum 22d12492a18a1b8424950933decd1f118f874c58e4f2ab2563ab213c06da09f1d53ede386d2834946952e43ff618b81643158181b7560ddbac06e02cef7c2b41
+binfiles arch=i386-freebsd size=26
bin/i386-freebsd/tie
name tie.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of tie
-containersize 37044
-containerchecksum 5c500d1903394566c6ddb4c43e8f4815ac27bcf0d80b837b56612e64a48ed061a40893b6b8118e8f452f45abb180c4989f285bc74d463cff5af4453a48b84ff8
-binfiles arch=i386-linux size=23
+containersize 37456
+containerchecksum f8bdb015064be23cbc4d45fa2ee8e7f6e29fea5126e3c57f5538cc74b11ffc193a04a44ed8b54626e3813aeb5d3e9e617e330bef465e38c3222b81eeecb15c13
+binfiles arch=i386-linux size=24
bin/i386-linux/tie
name tie.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of tie
-containersize 28620
-containerchecksum 80bb7b8626127a91c58e366d7516c0c3d7a9f5f3c79ae8e133c9bcd44a7ee0a3d6cf89b08e82283606296b73ac89793a3f4620cdeba1aa084b6222c4ff0212ab
+containersize 28980
+containerchecksum beac4c80b9e92f2c498d1c752533f50f485d59b1f8b0ddd53b94e1e5ac3525abbb326658c0b7eb57b044add6b5b717fafd421fc7cf9708df731ae984f111bd33
binfiles arch=i386-netbsd size=23
bin/i386-netbsd/tie
name tie.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of tie
-containersize 32560
-containerchecksum f3b0121b6ac0e37a3dfb96edd476915999ac42ec06d8105eae4fea6256b4b90d1fdd35a76d63586113d9a05ba2fb37621888f807a4ca53f299f5f02ebfa8e4b5
-binfiles arch=i386-solaris size=18
+containersize 33752
+containerchecksum 593beb915e3334f9b6c09c3a499030bf38b4a15266ecba51996e57f1af0569e7fd00deb550d484a4b0a4b0ce9f1537edad221f7b21b6deec5a189bb34e09ad6e
+binfiles arch=i386-solaris size=19
bin/i386-solaris/tie
name tie.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of tie
-containersize 63508
-containerchecksum e04943f047a7014e75b18067702ccb3e7756dfad78dc69a49b9344353a48c79b1749c05682a119938a330f81205157f9e59503c2d3a56314bfa9b8e192ae2284
-binfiles arch=universal-darwin size=59
+containersize 64504
+containerchecksum 58f2c136471ec39f937f892b1cb8146986b1211c6c608c50062270d34155648ded13efe2233a46198025d37a300924c19a7e7eb7b6d3f455e72d351e1078fdec
+binfiles arch=universal-darwin size=63
bin/universal-darwin/tie
name tie.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of tie
-containersize 5688
-containerchecksum febbb8a17b33b50a18d5a5b9ab0e196d8a9c895e4782247a9e4bc1d2192b65a55d75a7921c9dffdc18c782e620b489321cc7d3a6cc384579461c4a003a36dc52
+containersize 5728
+containerchecksum 6508ccca4753a7ea6573ad160c8214ad1d892942bb16d08482c43ba2b704196d45b9542584acbb84166254e1759098dd4f8ae78fa5c80f456da041959ff7c4f8
binfiles arch=windows size=4
bin/windows/tie.exe
name tie.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of tie
-containersize 5212
-containerchecksum 79af375ca67f5a57bfe4db72403b1e54533e55aeb0b0458583e1a6c4da8de159422491c8038fbe431b0a6347c93579036edc4fb79e0a0b698f1ebe688b7286f1
+containersize 5188
+containerchecksum 5cf3093c089fd0991da770bfa3b78dfa5f4ece1c786ec8b0415bf002419945ac333135d2621c901be0ecc1e95aaa4f5fc9e6b44decab17939a136f21707253fd
binfiles arch=x86_64-cygwin size=4
bin/x86_64-cygwin/tie.exe
name tie.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of tie
-containersize 31912
-containerchecksum 3770c23deb44e6adedbf7c6ba560dc72f84fd8de951fbf9dc5dadd555f79ffbc5ceaba9a721be531c55334b6aa269c046b1327c80c6cb23176bc6f5631f1e45d
-binfiles arch=x86_64-darwinlegacy size=21
+containersize 32448
+containerchecksum ef66d933e096a8b538235d586c86e6e0f74529d6498c15fc9de139dbc71611e0f7f78166e82763526c99d1d1b354d475ff8094653550e222cbc6524a2165a627
+binfiles arch=x86_64-darwinlegacy size=20
bin/x86_64-darwinlegacy/tie
name tie.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of tie
-containersize 34396
-containerchecksum ded08f8cd628ce502fb055d237020a423cfaa9291fcfd23c8f2c73c455834b5ddb519f0a27471e351e20cc69f3d4126ecaa6e8fdc58a5b8ed7a7f9ed9bfe5152
-binfiles arch=x86_64-linux size=21
+containersize 34804
+containerchecksum c44255391ec1f1c049e2a32ff082bb200b19d0897d2b6314830b0034b108502eb33e6e4205abcd714fa66b1181b950618bb1a4c6c81120680b6ada0389557e7a
+binfiles arch=x86_64-linux size=22
bin/x86_64-linux/tie
name tie.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of tie
-containersize 35184
-containerchecksum a4ac14bfd6fcabdee7ad9f67681321ece6728e459539bf6b63273bc4bfafd7b97457d74b2dbed46606e23ba1263f4fe8167c719d82281216ab82a8a126f4e7db
+containersize 35744
+containerchecksum ebdfaa0b92a400345b476760273fde01604d7566b5b6ded72783eb3e765a8923d0d45de44df55b61be7b2549a6815594e76a66fe58ac77652945682a261ea32c
binfiles arch=x86_64-linuxmusl size=21
bin/x86_64-linuxmusl/tie
name tie.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of tie
-containersize 35416
-containerchecksum 0a79b0f46faa234e269d14c7bc0bab4330776ff571b0bd9eb2b65c3b56333555228187e2a7b4bf0a6fa138d688c4c3c26da866a27082399c459dc13c47a94395
-binfiles arch=x86_64-solaris size=22
+containersize 37108
+containerchecksum 33348e9ca5be3459e382d404f606090f911244f1a4d39e48a2cb8b50102a8abe8d14cd7c185d7c80f921752bba306306d604ab4f28b5480dbc735cf4c8096bd6
+binfiles arch=x86_64-solaris size=23
bin/x86_64-solaris/tie
name tikz-3dplot
@@ -337241,7 +337702,7 @@ binfiles arch=x86_64-solaris size=1
name tlgs.windows
category TLCore
-revision 69531
+revision 70494
catalogue ghostscript
shortdesc Freely available PostScript interpreter
longdesc Ghostscript is a freely available PostScript interpreter which
@@ -337250,9 +337711,9 @@ longdesc complement to a TeX installation, used in many utilities,
longdesc including PostScript/PDF viewers such as gv and GSview.
longdesc Ghostscript is no longer held on CTAN: please see the home page
longdesc for downloads.
-containersize 8799812
-containerchecksum bd40ac498f32e67093d7fad0fd6c525bc195f2079160c909e4066dd7eda2e7d2668bb824d83c3c68dc7acc192b72a48d4b567f786ec50ba1ac5bd1c4a0d4135b
-runfiles size=8205
+containersize 8545728
+containerchecksum 4fa06caebec3acbeec13f08664c94588bac24310a3f0137a65d00018b96b8f95075d02e33ca2fcf44ac3b16f79f563c52cd3930b1f01f90741c6c9971ba3f202
+runfiles size=8023
texmf-dist/scripts/tlgs/eps2eps.lua
texmf-dist/scripts/tlgs/pdf2dsc.lua
texmf-dist/scripts/tlgs/pdf2ps.lua
@@ -337755,17 +338216,17 @@ catalogue-topics chinese-doc
name tlmgrbasics
category Package
-revision 68999
+revision 70175
shortdesc A simplified documentation for tlmgr
relocated 1
longdesc This package provides simplified documentation for tlmgr, the
longdesc TeX Live Manager. It describes the most commonly-used actions
longdesc and options in a convenient format.
-containersize 424
-containerchecksum 53f7cc8c2a39ea21a8c5eeb57ae7f99759b364ff7f1b41e2f4599d464ce17920746b8a8e182a044faf0621fa3dc842e14cbe93652d351d9fe8e1fde8a7682daa
-doccontainersize 163396
-doccontainerchecksum ee69a90ccf9b83396b0d9fdd5f030e673d00b2c372334378ad450089b40b93de8b596ed5bc8a459253689316a7219080b88248c1f65a475980ec270a6c84c8ea
-docfiles size=46
+containersize 428
+containerchecksum 6628ea90ee6beefd179cb7b3db3557175e67de2f5ba77edaf8f8b7a384fecd6660a5c3ca9d7d26bb06a9773fc69796ff1129fcbbc43719ca3ebf5d935c6c1b54
+doccontainersize 164724
+doccontainerchecksum 491c620cf0d57525c10c2b0793220fac1d6cf5ca906ec1605e750aaf6c4d05e154ce4e22cf0f59df6d7aa3e7673d70a856ca3196c4d0e5ab5c5bb2604d26850e
+docfiles size=47
RELOC/doc/support/tlmgrbasics/README details="Readme"
RELOC/doc/support/tlmgrbasics/tlmgr.pdf details="The document itself"
RELOC/doc/support/tlmgrbasics/tlmgr.tex
@@ -337775,23 +338236,21 @@ catalogue-topics install-mgmt documentation
name tlperl.windows
category TLCore
-revision 65955
+revision 69939
shortdesc internal Perl for Windows
longdesc TeX Live includes Perl for Windows, but it is intended only for
longdesc internal use by TeX Live programs, and should not be used as a
longdesc general system program. Install your own Perl for that. See
longdesc http://perl.org.
-containersize 7256728
-containerchecksum 6cdf426c6991973168065cf51b827124eb0efe9572dfb5e3b01594c18a4bfac1ab6f40140f6e93ab3e3ac4f92469bc9d7d27f73110db10b4d4d86dfd040ff36d
-runfiles size=11890
- tlpkg/tlperl/README.TEXLIVE
- tlpkg/tlperl/bin/libgcc_s_seh-1.dll
- tlpkg/tlperl/bin/libstdc++-6.dll
- tlpkg/tlperl/bin/libwinpthread-1.dll
+containersize 10600216
+containerchecksum e5ddd870e67e35c038e9eecb8b21c475c83b509abfbf16d6e00e70bb522502df42bfd5aa053ea8699c22624331d4b605ec053fb56e67637eb09cfef1757871db
+runfiles size=21850
tlpkg/tlperl/bin/perl.exe
- tlpkg/tlperl/bin/perl5.34.0.exe
- tlpkg/tlperl/bin/perl534.dll
+ tlpkg/tlperl/bin/perl5.38.2.exe
+ tlpkg/tlperl/bin/perl538.dll
tlpkg/tlperl/bin/perlglob.exe
+ tlpkg/tlperl/bin/vcruntime140.dll
+ tlpkg/tlperl/bin/vcruntime140_1.dll
tlpkg/tlperl/bin/wperl.exe
tlpkg/tlperl/lib/.packlist
tlpkg/tlperl/lib/AnyDBM_File.pm
@@ -337845,7 +338304,6 @@ runfiles size=11890
tlpkg/tlperl/lib/CORE/iperlsys.h
tlpkg/tlperl/lib/CORE/keywords.h
tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
- tlpkg/tlperl/lib/CORE/libperl534.a
tlpkg/tlperl/lib/CORE/malloc_ctl.h
tlpkg/tlperl/lib/CORE/metaconfig.h
tlpkg/tlperl/lib/CORE/mg.h
@@ -337864,6 +338322,7 @@ runfiles size=11890
tlpkg/tlperl/lib/CORE/parser.h
tlpkg/tlperl/lib/CORE/patchlevel.h
tlpkg/tlperl/lib/CORE/perl.h
+ tlpkg/tlperl/lib/CORE/perl538.lib
tlpkg/tlperl/lib/CORE/perl_inc_macro.h
tlpkg/tlperl/lib/CORE/perl_langinfo.h
tlpkg/tlperl/lib/CORE/perl_siphash.h
@@ -337872,6 +338331,7 @@ runfiles size=11890
tlpkg/tlperl/lib/CORE/perlio.h
tlpkg/tlperl/lib/CORE/perliol.h
tlpkg/tlperl/lib/CORE/perlsdio.h
+ tlpkg/tlperl/lib/CORE/perlstatic.h
tlpkg/tlperl/lib/CORE/perlvars.h
tlpkg/tlperl/lib/CORE/perly.h
tlpkg/tlperl/lib/CORE/pp.h
@@ -337880,11 +338340,15 @@ runfiles size=11890
tlpkg/tlperl/lib/CORE/reentr.h
tlpkg/tlperl/lib/CORE/regcharclass.h
tlpkg/tlperl/lib/CORE/regcomp.h
+ tlpkg/tlperl/lib/CORE/regcomp_internal.h
tlpkg/tlperl/lib/CORE/regexp.h
+ tlpkg/tlperl/lib/CORE/reginline.h
tlpkg/tlperl/lib/CORE/regnodes.h
tlpkg/tlperl/lib/CORE/sbox32_hash.h
tlpkg/tlperl/lib/CORE/scope.h
+ tlpkg/tlperl/lib/CORE/scope_types.h
tlpkg/tlperl/lib/CORE/sv.h
+ tlpkg/tlperl/lib/CORE/sv_inline.h
tlpkg/tlperl/lib/CORE/sys/errno2.h
tlpkg/tlperl/lib/CORE/sys/socket.h
tlpkg/tlperl/lib/CORE/thread.h
@@ -337965,14 +338429,14 @@ runfiles size=11890
tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
tlpkg/tlperl/lib/Compress/Zlib.pm
+ tlpkg/tlperl/lib/Config.orig.pm
tlpkg/tlperl/lib/Config.pm
- tlpkg/tlperl/lib/Config.pm.orig
tlpkg/tlperl/lib/Config.pod
tlpkg/tlperl/lib/Config/Extensions.pm
tlpkg/tlperl/lib/Config/Perl/V.pm
tlpkg/tlperl/lib/Config_git.pl
+ tlpkg/tlperl/lib/Config_heavy.orig.pl
tlpkg/tlperl/lib/Config_heavy.pl
- tlpkg/tlperl/lib/Config_heavy.pl.orig
tlpkg/tlperl/lib/Cwd.pm
tlpkg/tlperl/lib/DB.pm
tlpkg/tlperl/lib/DBM_Filter.pm
@@ -338205,13 +338669,12 @@ runfiles size=11890
tlpkg/tlperl/lib/Math/BigInt/Lib.pm
tlpkg/tlperl/lib/Math/BigInt/Trace.pm
tlpkg/tlperl/lib/Math/BigRat.pm
+ tlpkg/tlperl/lib/Math/BigRat/Trace.pm
tlpkg/tlperl/lib/Math/Complex.pm
tlpkg/tlperl/lib/Math/Trig.pm
tlpkg/tlperl/lib/Memoize.pm
tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm
tlpkg/tlperl/lib/Memoize/Expire.pm
- tlpkg/tlperl/lib/Memoize/ExpireFile.pm
- tlpkg/tlperl/lib/Memoize/ExpireTest.pm
tlpkg/tlperl/lib/Memoize/NDBM_File.pm
tlpkg/tlperl/lib/Memoize/SDBM_File.pm
tlpkg/tlperl/lib/Memoize/Storable.pm
@@ -338260,6 +338723,7 @@ runfiles size=11890
tlpkg/tlperl/lib/Pod/Escapes.pm
tlpkg/tlperl/lib/Pod/Functions.pm
tlpkg/tlperl/lib/Pod/Html.pm
+ tlpkg/tlperl/lib/Pod/Html/Util.pm
tlpkg/tlperl/lib/Pod/Man.pm
tlpkg/tlperl/lib/Pod/ParseLink.pm
tlpkg/tlperl/lib/Pod/Perldoc.pm
@@ -338580,55 +339044,104 @@ runfiles size=11890
tlpkg/tlperl/lib/_charnames.pm
tlpkg/tlperl/lib/attributes.pm
tlpkg/tlperl/lib/auto/B/B.dll
+ tlpkg/tlperl/lib/auto/B/B.pdb
tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
+ tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.pdb
tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
+ tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.pdb
tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
+ tlpkg/tlperl/lib/auto/Cwd/Cwd.pdb
tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
+ tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.pdb
tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
+ tlpkg/tlperl/lib/auto/Devel/Peek/Peek.pdb
tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
+ tlpkg/tlperl/lib/auto/Digest/MD5/MD5.pdb
tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
+ tlpkg/tlperl/lib/auto/Digest/SHA/SHA.pdb
tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
+ tlpkg/tlperl/lib/auto/Encode/Byte/Byte.pdb
tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
+ tlpkg/tlperl/lib/auto/Encode/CN/CN.pdb
tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
+ tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.pdb
tlpkg/tlperl/lib/auto/Encode/Encode.dll
+ tlpkg/tlperl/lib/auto/Encode/Encode.pdb
tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
+ tlpkg/tlperl/lib/auto/Encode/JP/JP.pdb
tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
+ tlpkg/tlperl/lib/auto/Encode/KR/KR.pdb
tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
+ tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.pdb
tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
+ tlpkg/tlperl/lib/auto/Encode/TW/TW.pdb
tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
+ tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.pdb
tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
+ tlpkg/tlperl/lib/auto/Fcntl/Fcntl.pdb
tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
+ tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.pdb
tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
+ tlpkg/tlperl/lib/auto/File/Glob/Glob.pdb
tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
+ tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.pdb
tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
+ tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.pdb
tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
+ tlpkg/tlperl/lib/auto/Hash/Util/Util.pdb
tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll
+ tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.pdb
tlpkg/tlperl/lib/auto/IO/IO.dll
+ tlpkg/tlperl/lib/auto/IO/IO.pdb
tlpkg/tlperl/lib/auto/List/Util/Util.dll
+ tlpkg/tlperl/lib/auto/List/Util/Util.pdb
tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
+ tlpkg/tlperl/lib/auto/MIME/Base64/Base64.pdb
tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
+ tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.pdb
tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
+ tlpkg/tlperl/lib/auto/Opcode/Opcode.pdb
tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
+ tlpkg/tlperl/lib/auto/POSIX/POSIX.pdb
tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
+ tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.pdb
tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
+ tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.pdb
tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
+ tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.pdb
tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
+ tlpkg/tlperl/lib/auto/PerlIO/via/via.pdb
tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
+ tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.pdb
tlpkg/tlperl/lib/auto/Socket/Socket.dll
+ tlpkg/tlperl/lib/auto/Socket/Socket.pdb
tlpkg/tlperl/lib/auto/Storable/Storable.dll
+ tlpkg/tlperl/lib/auto/Storable/Storable.pdb
tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
+ tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.pdb
tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
+ tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.pdb
tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
+ tlpkg/tlperl/lib/auto/Time/Piece/Piece.pdb
tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
+ tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.pdb
tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
+ tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.pdb
tlpkg/tlperl/lib/auto/Win32/Win32.dll
+ tlpkg/tlperl/lib/auto/Win32/Win32.pdb
tlpkg/tlperl/lib/auto/Win32API/File/File.dll
+ tlpkg/tlperl/lib/auto/Win32API/File/File.pdb
tlpkg/tlperl/lib/auto/Win32CORE/extralibs.ld
tlpkg/tlperl/lib/auto/attributes/attributes.dll
+ tlpkg/tlperl/lib/auto/attributes/attributes.pdb
tlpkg/tlperl/lib/auto/mro/mro.dll
+ tlpkg/tlperl/lib/auto/mro/mro.pdb
tlpkg/tlperl/lib/auto/re/re.dll
+ tlpkg/tlperl/lib/auto/re/re.pdb
tlpkg/tlperl/lib/auto/threads/shared/shared.dll
+ tlpkg/tlperl/lib/auto/threads/shared/shared.pdb
tlpkg/tlperl/lib/auto/threads/threads.dll
+ tlpkg/tlperl/lib/auto/threads/threads.pdb
tlpkg/tlperl/lib/autodie.pm
tlpkg/tlperl/lib/autodie/Scope/Guard.pm
tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
@@ -338639,10 +339152,12 @@ runfiles size=11890
tlpkg/tlperl/lib/autodie/skip.pm
tlpkg/tlperl/lib/autouse.pm
tlpkg/tlperl/lib/base.pm
+ tlpkg/tlperl/lib/bigfloat.pm
tlpkg/tlperl/lib/bigint.pm
tlpkg/tlperl/lib/bignum.pm
tlpkg/tlperl/lib/bigrat.pm
tlpkg/tlperl/lib/blib.pm
+ tlpkg/tlperl/lib/builtin.pm
tlpkg/tlperl/lib/bytes.pm
tlpkg/tlperl/lib/bytes_heavy.pl
tlpkg/tlperl/lib/charnames.pm
@@ -338676,6 +339191,7 @@ runfiles size=11890
tlpkg/tlperl/lib/re.pm
tlpkg/tlperl/lib/sigtrap.pm
tlpkg/tlperl/lib/sort.pm
+ tlpkg/tlperl/lib/stable.pm
tlpkg/tlperl/lib/strict.pm
tlpkg/tlperl/lib/subs.pm
tlpkg/tlperl/lib/threads.pm
@@ -338687,16 +339203,15 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/Name.pm
tlpkg/tlperl/lib/unicore/NamedSequences.txt
tlpkg/tlperl/lib/unicore/SpecialCasing.txt
+ tlpkg/tlperl/lib/unicore/TestNorm.pl
tlpkg/tlperl/lib/unicore/To/Age.pl
tlpkg/tlperl/lib/unicore/To/Bc.pl
tlpkg/tlperl/lib/unicore/To/Bmg.pl
tlpkg/tlperl/lib/unicore/To/Bpb.pl
tlpkg/tlperl/lib/unicore/To/Bpt.pl
tlpkg/tlperl/lib/unicore/To/Cf.pl
- tlpkg/tlperl/lib/unicore/To/Digit.pl
tlpkg/tlperl/lib/unicore/To/Ea.pl
tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl
- tlpkg/tlperl/lib/unicore/To/Fold.pl
tlpkg/tlperl/lib/unicore/To/GCB.pl
tlpkg/tlperl/lib/unicore/To/Gc.pl
tlpkg/tlperl/lib/unicore/To/Hst.pl
@@ -338709,7 +339224,6 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/To/Jt.pl
tlpkg/tlperl/lib/unicore/To/Lb.pl
tlpkg/tlperl/lib/unicore/To/Lc.pl
- tlpkg/tlperl/lib/unicore/To/Lower.pl
tlpkg/tlperl/lib/unicore/To/NFCQC.pl
tlpkg/tlperl/lib/unicore/To/NFDQC.pl
tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
@@ -338724,9 +339238,7 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/To/Sc.pl
tlpkg/tlperl/lib/unicore/To/Scx.pl
tlpkg/tlperl/lib/unicore/To/Tc.pl
- tlpkg/tlperl/lib/unicore/To/Title.pl
tlpkg/tlperl/lib/unicore/To/Uc.pl
- tlpkg/tlperl/lib/unicore/To/Upper.pl
tlpkg/tlperl/lib/unicore/To/Vo.pl
tlpkg/tlperl/lib/unicore/To/WB.pl
tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
@@ -338738,6 +339250,8 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/Age/V110.pl
tlpkg/tlperl/lib/unicore/lib/Age/V120.pl
tlpkg/tlperl/lib/unicore/lib/Age/V130.pl
+ tlpkg/tlperl/lib/unicore/lib/Age/V140.pl
+ tlpkg/tlperl/lib/unicore/lib/Age/V150.pl
tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
@@ -338887,6 +339401,8 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/In/12_0.pl
tlpkg/tlperl/lib/unicore/lib/In/12_1.pl
tlpkg/tlperl/lib/unicore/lib/In/13_0.pl
+ tlpkg/tlperl/lib/unicore/lib/In/14_0.pl
+ tlpkg/tlperl/lib/unicore/lib/In/15_0.pl
tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
@@ -338929,6 +339445,7 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
+ tlpkg/tlperl/lib/unicore/lib/InSC/Geminati.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
@@ -338953,10 +339470,12 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
+ tlpkg/tlperl/lib/unicore/lib/Jg/Noon.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
+ tlpkg/tlperl/lib/unicore/lib/Jg/Tah.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
@@ -339181,6 +339700,7 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl
+ tlpkg/tlperl/lib/unicore/lib/Scx/Nko.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl
@@ -339197,6 +339717,7 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
+ tlpkg/tlperl/lib/unicore/lib/Scx/Vith.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl
tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
@@ -339206,6 +339727,7 @@ runfiles size=11890
tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
+ tlpkg/tlperl/lib/unicore/lib/VS/Y.pl
tlpkg/tlperl/lib/unicore/lib/Vo/R.pl
tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl
tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl
@@ -339235,6 +339757,10 @@ runfiles size=11890
tlpkg/tlperl/lib/vmsish.pm
tlpkg/tlperl/lib/warnings.pm
tlpkg/tlperl/lib/warnings/register.pm
+ tlpkg/tlperl/site/lib/App/Prove.pm
+ tlpkg/tlperl/site/lib/App/Prove/State.pm
+ tlpkg/tlperl/site/lib/App/Prove/State/Result.pm
+ tlpkg/tlperl/site/lib/App/Prove/State/Result/Test.pm
tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Boolean.pm
tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Type.pm
@@ -339281,6 +339807,12 @@ runfiles size=11890
tlpkg/tlperl/site/lib/Encode/compat/5006001.pm
tlpkg/tlperl/site/lib/Encode/compat/Alias.pm
tlpkg/tlperl/site/lib/Encode/compat/common.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Config.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers/Unix.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers/VMS.pm
+ tlpkg/tlperl/site/lib/ExtUtils/Helpers/Windows.pm
+ tlpkg/tlperl/site/lib/ExtUtils/InstallPaths.pm
tlpkg/tlperl/site/lib/File/Listing.pm
tlpkg/tlperl/site/lib/File/Which.pm
tlpkg/tlperl/site/lib/HTML/Entities.pm
@@ -339310,45 +339842,70 @@ runfiles size=11890
tlpkg/tlperl/site/lib/IO/HTML.pm
tlpkg/tlperl/site/lib/IO/String.pm
tlpkg/tlperl/site/lib/JSON/MaybeXS.pm
- tlpkg/tlperl/site/lib/LWP.pm
- tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
- tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
- tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
- tlpkg/tlperl/site/lib/LWP/ConnCache.pm
- tlpkg/tlperl/site/lib/LWP/Debug.pm
- tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
- tlpkg/tlperl/site/lib/LWP/DebugFile.pm
tlpkg/tlperl/site/lib/LWP/MediaTypes.pm
- tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
- tlpkg/tlperl/site/lib/LWP/Protocol.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/data.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
- tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
- tlpkg/tlperl/site/lib/LWP/RobotUA.pm
- tlpkg/tlperl/site/lib/LWP/Simple.pm
- tlpkg/tlperl/site/lib/LWP/UserAgent.pm
tlpkg/tlperl/site/lib/LWP/media.types
tlpkg/tlperl/site/lib/Math/Int64.pm
tlpkg/tlperl/site/lib/Math/Int64/die_on_overflow.pm
tlpkg/tlperl/site/lib/Math/Int64/native_if_available.pm
tlpkg/tlperl/site/lib/Math/UInt64.pm
+ tlpkg/tlperl/site/lib/Module/Build/Tiny.pm
tlpkg/tlperl/site/lib/Mozilla/CA.pm
tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem
- tlpkg/tlperl/site/lib/Mozilla/mk-ca-bundle.pl
tlpkg/tlperl/site/lib/Net/HTTP.pm
tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
tlpkg/tlperl/site/lib/Net/HTTPS.pm
+ tlpkg/tlperl/site/lib/Socket.pm
+ tlpkg/tlperl/site/lib/TAP/Base.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Base.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Color.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Console.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Console/ParallelSession.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Console/Session.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/File.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/File/Session.pm
+ tlpkg/tlperl/site/lib/TAP/Formatter/Session.pm
+ tlpkg/tlperl/site/lib/TAP/Harness.pm
+ tlpkg/tlperl/site/lib/TAP/Harness/Beyond.pod
+ tlpkg/tlperl/site/lib/TAP/Harness/Env.pm
+ tlpkg/tlperl/site/lib/TAP/Object.pm
+ tlpkg/tlperl/site/lib/TAP/Parser.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Aggregator.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Grammar.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Array.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Process.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Stream.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/IteratorFactory.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Multiplexer.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Bailout.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Comment.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Plan.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Pragma.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Test.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Unknown.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/Version.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Result/YAML.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/ResultFactory.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Scheduler.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Job.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Spinner.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/Source.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Executable.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/File.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Handle.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Perl.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/RawTAP.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Reader.pm
+ tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Writer.pm
tlpkg/tlperl/site/lib/Test/Fatal.pm
+ tlpkg/tlperl/site/lib/Test/HACKING.pod
+ tlpkg/tlperl/site/lib/Test/Harness.pm
tlpkg/tlperl/site/lib/Test/Needs.pm
tlpkg/tlperl/site/lib/Test/RequiresInternet.pm
+ tlpkg/tlperl/site/lib/Test/Warnings.pm
tlpkg/tlperl/site/lib/Tie/Registry.pm
tlpkg/tlperl/site/lib/Time/Zone.pm
tlpkg/tlperl/site/lib/TimeDate.pm
@@ -339381,9 +339938,12 @@ runfiles size=11890
tlpkg/tlperl/site/lib/URI/file/Unix.pm
tlpkg/tlperl/site/lib/URI/file/Win32.pm
tlpkg/tlperl/site/lib/URI/ftp.pm
+ tlpkg/tlperl/site/lib/URI/geo.pm
tlpkg/tlperl/site/lib/URI/gopher.pm
tlpkg/tlperl/site/lib/URI/http.pm
tlpkg/tlperl/site/lib/URI/https.pm
+ tlpkg/tlperl/site/lib/URI/icap.pm
+ tlpkg/tlperl/site/lib/URI/icaps.pm
tlpkg/tlperl/site/lib/URI/ldap.pm
tlpkg/tlperl/site/lib/URI/ldapi.pm
tlpkg/tlperl/site/lib/URI/ldaps.pm
@@ -339422,15 +339982,27 @@ runfiles size=11890
tlpkg/tlperl/site/lib/Win32API/Registry/cRegistry.pc
tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
+ tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.exp
+ tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.lib
+ tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.pdb
tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist
tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dll
+ tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.exp
+ tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.lib
+ tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.pdb
tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
+ tlpkg/tlperl/site/lib/auto/ExtUtils/Config/.packlist
+ tlpkg/tlperl/site/lib/auto/ExtUtils/Helpers/.packlist
+ tlpkg/tlperl/site/lib/auto/ExtUtils/InstallPaths/.packlist
tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
tlpkg/tlperl/site/lib/auto/File/Which/.packlist
tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
+ tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.exp
+ tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.lib
+ tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.pdb
tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
@@ -339443,38 +340015,61 @@ runfiles size=11890
tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
+ tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.exp
+ tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.lib
+ tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.pdb
+ tlpkg/tlperl/site/lib/auto/Module/Build/Tiny/.packlist
tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
+ tlpkg/tlperl/site/lib/auto/Socket/.packlist
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.exp
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.lib
+ tlpkg/tlperl/site/lib/auto/Socket/Socket.pdb
tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
+ tlpkg/tlperl/site/lib/auto/Test/Harness/.packlist
tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
+ tlpkg/tlperl/site/lib/auto/Test/Warnings/.packlist
tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
tlpkg/tlperl/site/lib/auto/URI/.packlist
tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
+ tlpkg/tlperl/site/lib/auto/Win32/API/API.exp
+ tlpkg/tlperl/site/lib/auto/Win32/API/API.lib
+ tlpkg/tlperl/site/lib/auto/Win32/API/API.pdb
tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
+ tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.exp
+ tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.lib
+ tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.pdb
tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
+ tlpkg/tlperl/site/lib/auto/Win32/Console/Console.exp
+ tlpkg/tlperl/site/lib/auto/Win32/Console/Console.lib
+ tlpkg/tlperl/site/lib/auto/Win32/Console/Console.pdb
tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
+ tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.exp
+ tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.lib
+ tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.pdb
tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
- tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
- tlpkg/tlperl/site/lib/libwww/lwpcook.pod
- tlpkg/tlperl/site/lib/libwww/lwptut.pod
+ tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.exp
+ tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.lib
+ tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.pdb
name tlshell
category TLCore
-revision 66771
+revision 70419
shortdesc GUI frontend (tcl/tk-based) for tlmgr
depend tlshell.ARCH
postaction shortcut type=menu name="TLShell TeX Live Manager" cmd=TEXDIR/bin/windows/tlshell.exe
-containersize 33104
-containerchecksum b514f1c41c464300eeff261dc46004963e9ae6133dee084c39d8d7354510f37c3ebd8481daa377e057b48cf805ca87e7f247abe103c3a6404294b4b308361b69
-doccontainersize 668
-doccontainerchecksum a4e686c57454adbbead87afc078720e294bd865dc5f77905e0f8e183efe83fcd2f0057336aac17ba6bc91eccf785bf1b3b47959359fc3ea49069bceae3d21d6f
+containersize 33124
+containerchecksum 30ab3e5b6bc9dfd736044c634b65ac15b0501d2489b443a92df28648d71f2cdc98e7f3f58fcdc738c2e0b11cc11eee7a845451289392e91fae48defa789e120a
+doccontainersize 676
+doccontainerchecksum 133264f19b6e4eee2412c3edb68459e639ea4c6f816ac9e8b72b0c7860173d0a535793a73eb58a5b02c33d240d9fe18633f2fdc794c74af1540610b81e1e0742
docfiles size=2
texmf-dist/doc/support/tlshell/README
tlpkg/tltcl/README.TEXLIVE
@@ -339567,11 +340162,11 @@ binfiles arch=universal-darwin size=1
name tlshell.windows
category TLCore
-revision 66426
+revision 69947
shortdesc windows files of tlshell
-containersize 2960524
-containerchecksum d159733493e700e6ea4549f412b011bc14859795c518a793b777e95eede4e51ed13316c710fa1dcf84c506514a85fed0be5e2e3f671a43aa2994cf940353cda2
-binfiles arch=windows size=3903
+containersize 3001556
+containerchecksum e58d7d1f1d27c2440a7aa720dc0189b30f062c0db0f594f77988f297373ae772e445edf297badcf9659e996d40f2ecfd44bd25a1e8b53bf189cf5bb267bd5171
+binfiles arch=windows size=3955
bin/windows/tlshell.exe
tlpkg/tltcl/bin/tcl86.dll
tlpkg/tltcl/bin/tclsh.exe
@@ -339580,18 +340175,25 @@ binfiles arch=windows size=3903
tlpkg/tltcl/bin/wish.exe
tlpkg/tltcl/bin/wish86.exe
tlpkg/tltcl/bin/zlib1.dll
+ tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.a
tlpkg/tltcl/lib/dde1.4/pkgIndex.tcl
tlpkg/tltcl/lib/dde1.4/tcldde14.dll
- tlpkg/tltcl/lib/itcl4.2.2/itcl.tcl
- tlpkg/tltcl/lib/itcl4.2.2/itcl422.dll
- tlpkg/tltcl/lib/itcl4.2.2/itclConfig.sh
- tlpkg/tltcl/lib/itcl4.2.2/itclHullCmds.tcl
- tlpkg/tltcl/lib/itcl4.2.2/itclWidget.tcl
- tlpkg/tltcl/lib/itcl4.2.2/pkgIndex.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/itcl.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/itcl423.dll
+ tlpkg/tltcl/lib/itcl4.2.3/itclConfig.sh
+ tlpkg/tltcl/lib/itcl4.2.3/itclHullCmds.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/itclWidget.tcl
+ tlpkg/tltcl/lib/itcl4.2.3/libitclstub423.a
+ tlpkg/tltcl/lib/itcl4.2.3/pkgIndex.tcl
+ tlpkg/tltcl/lib/libtcl86.dll.a
+ tlpkg/tltcl/lib/libtclstub86.a
+ tlpkg/tltcl/lib/libtk86.dll.a
+ tlpkg/tltcl/lib/libtkstub86.a
+ tlpkg/tltcl/lib/reg1.3/libtclreg13.dll.a
tlpkg/tltcl/lib/reg1.3/pkgIndex.tcl
tlpkg/tltcl/lib/reg1.3/tclreg13.dll
- tlpkg/tltcl/lib/sqlite3.36.0/pkgIndex.tcl
- tlpkg/tltcl/lib/sqlite3.36.0/sqlite3360.dll
+ tlpkg/tltcl/lib/sqlite3.40.0/pkgIndex.tcl
+ tlpkg/tltcl/lib/sqlite3.40.0/sqlite3400.dll
tlpkg/tltcl/lib/tcl8.6/auto.tcl
tlpkg/tltcl/lib/tcl8.6/clock.tcl
tlpkg/tltcl/lib/tcl8.6/encoding/ascii.enc
@@ -340188,7 +340790,6 @@ binfiles arch=windows size=3903
tlpkg/tltcl/lib/tcl8.6/tzdata/CST6CDT
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Atlantic
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Central
- tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/East-Saskatchewan
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Eastern
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Mountain
tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/Newfoundland
@@ -340262,6 +340863,7 @@ binfiles arch=windows size=3903
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kaliningrad
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kirov
+ tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kyiv
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Lisbon
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Ljubljana
tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/London
@@ -340414,7 +341016,6 @@ binfiles arch=windows size=3903
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Michigan
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Mountain
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific
- tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific-New
tlpkg/tltcl/lib/tcl8.6/tzdata/US/Samoa
tlpkg/tltcl/lib/tcl8.6/tzdata/UTC
tlpkg/tltcl/lib/tcl8.6/tzdata/Universal
@@ -340422,30 +341023,31 @@ binfiles arch=windows size=3903
tlpkg/tltcl/lib/tcl8.6/tzdata/WET
tlpkg/tltcl/lib/tcl8.6/tzdata/Zulu
tlpkg/tltcl/lib/tcl8.6/word.tcl
- tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.18.tm
+ tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.19.tm
tlpkg/tltcl/lib/tcl8/8.4/platform/shell-1.1.4.tm
tlpkg/tltcl/lib/tcl8/8.5/msgcat-1.6.1.tm
- tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.3.tm
- tlpkg/tltcl/lib/tcl8/8.6/http-2.9.5.tm
- tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.3.tm
+ tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.5.tm
+ tlpkg/tltcl/lib/tcl8/8.6/http-2.9.8.tm
+ tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.5.tm
tlpkg/tltcl/lib/tclConfig.sh
tlpkg/tltcl/lib/tclooConfig.sh
- tlpkg/tltcl/lib/tdbc1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbc1.1.3/tdbc.tcl
- tlpkg/tltcl/lib/tdbc1.1.3/tdbc113.dll
- tlpkg/tltcl/lib/tdbc1.1.3/tdbcConfig.sh
- tlpkg/tltcl/lib/tdbcmysql1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql.tcl
- tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql113.dll
- tlpkg/tltcl/lib/tdbcodbc1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc.tcl
- tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc113.dll
- tlpkg/tltcl/lib/tdbcpostgres1.1.3/pkgIndex.tcl
- tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres.tcl
- tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres113.dll
- tlpkg/tltcl/lib/thread2.8.7/pkgIndex.tcl
- tlpkg/tltcl/lib/thread2.8.7/thread287.dll
- tlpkg/tltcl/lib/thread2.8.7/ttrace.tcl
+ tlpkg/tltcl/lib/tdbc1.1.5/libtdbcstub115.a
+ tlpkg/tltcl/lib/tdbc1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbc1.1.5/tdbc.tcl
+ tlpkg/tltcl/lib/tdbc1.1.5/tdbc115.dll
+ tlpkg/tltcl/lib/tdbc1.1.5/tdbcConfig.sh
+ tlpkg/tltcl/lib/tdbcmysql1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql.tcl
+ tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql115.dll
+ tlpkg/tltcl/lib/tdbcodbc1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc.tcl
+ tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc115.dll
+ tlpkg/tltcl/lib/tdbcpostgres1.1.5/pkgIndex.tcl
+ tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres.tcl
+ tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres115.dll
+ tlpkg/tltcl/lib/thread2.8.8/pkgIndex.tcl
+ tlpkg/tltcl/lib/thread2.8.8/thread288.dll
+ tlpkg/tltcl/lib/thread2.8.8/ttrace.tcl
tlpkg/tltcl/lib/tk8.6/bgerror.tcl
tlpkg/tltcl/lib/tk8.6/button.tcl
tlpkg/tltcl/lib/tk8.6/choosedir.tcl
@@ -340568,6 +341170,7 @@ binfiles arch=windows size=3903
tlpkg/tltcl/lib/tk8.6/msgs/en_gb.msg
tlpkg/tltcl/lib/tk8.6/msgs/eo.msg
tlpkg/tltcl/lib/tk8.6/msgs/es.msg
+ tlpkg/tltcl/lib/tk8.6/msgs/fi.msg
tlpkg/tltcl/lib/tk8.6/msgs/fr.msg
tlpkg/tltcl/lib/tk8.6/msgs/hu.msg
tlpkg/tltcl/lib/tk8.6/msgs/it.msg
@@ -340576,6 +341179,7 @@ binfiles arch=windows size=3903
tlpkg/tltcl/lib/tk8.6/msgs/pt.msg
tlpkg/tltcl/lib/tk8.6/msgs/ru.msg
tlpkg/tltcl/lib/tk8.6/msgs/sv.msg
+ tlpkg/tltcl/lib/tk8.6/msgs/zh_cn.msg
tlpkg/tltcl/lib/tk8.6/obsolete.tcl
tlpkg/tltcl/lib/tk8.6/optMenu.tcl
tlpkg/tltcl/lib/tk8.6/palette.tcl
@@ -341452,10 +342056,10 @@ binfiles arch=aarch64-linux size=4
name tpic2pdftex.amd64-freebsd
category TLCore
-revision 29785
+revision 69782
shortdesc amd64-freebsd files of tpic2pdftex
-containersize 4328
-containerchecksum 564d07851de7d71dbfd0487cc55c7607ac5d30e8581119b6689d32bba744e3505a124e22a4f393577311cba82b7ca4e2755ef733c8eee1ce5312b40b476dbbbd
+containersize 4300
+containerchecksum a07e5313ba1984c084c8b818d156a2ba377d3c31b9f4104770c66eebfa19fb4da1f50d33abd9680a6f42bd97548446234668fe7445b0ecf59c4ce2dd707252e5
binfiles arch=amd64-freebsd size=4
bin/amd64-freebsd/tpic2pdftex
@@ -341470,19 +342074,19 @@ binfiles arch=amd64-netbsd size=4
name tpic2pdftex.armhf-linux
category TLCore
-revision 30015
+revision 70489
shortdesc armhf-linux files of tpic2pdftex
containersize 4332
-containerchecksum 2974c3d8b9f3eb57c7ff192093d45da9d6b74701febc869d43ee2289d659c4527810e3d3beea314d2e4962726894da9343d056feea9620ff822fe5e52f5501d2
+containerchecksum bf04723c95c9136ce93e480da9db1157a8b8d35c098d67c92f451d5831730812f3c3bf17ed8f7ad7775007d8ad4d8ba707c6ecec0206d423038531f2757225d1
binfiles arch=armhf-linux size=4
bin/armhf-linux/tpic2pdftex
name tpic2pdftex.i386-freebsd
category TLCore
-revision 29785
+revision 69782
shortdesc i386-freebsd files of tpic2pdftex
-containersize 4332
-containerchecksum 1119c9221492bd8ebf8285cea1e1da5327b04d99ac33ad8d9f4ea6fbc2f7f6cf08cb615cda54e68826782dd3bf7b20712078bf32dcfe3172e5a91e1e92b43f24
+containersize 4300
+containerchecksum 8e054f2f14b8660a2b996b31720dcc4e4fc98146548e4a51d1121badbd1b98103166de7b0cd23c1dbf6b88eef0c07a145d7b8c559be8e056af6a4f9b5112b500
binfiles arch=i386-freebsd size=4
bin/i386-freebsd/tpic2pdftex
@@ -341506,10 +342110,10 @@ binfiles arch=i386-netbsd size=4
name tpic2pdftex.i386-solaris
category TLCore
-revision 29806
+revision 69782
shortdesc i386-solaris files of tpic2pdftex
-containersize 4320
-containerchecksum 2b40ee4303001945db1d8b1911c91b3bfac10808f320836588a7461c6576be20d9055a4042388fe50c53bb7a3be32423f1c434bbb2145259dba00b7f1bd73c0b
+containersize 4304
+containerchecksum 925139c4f08c109d244a1b5a2f92e923e691db0bcbd7ebbad2d5dfa99acfeced1b900af776f81ccff5c19897270f5e0ed3cea93afa5a4cb04414cc59b8fd564f
binfiles arch=i386-solaris size=4
bin/i386-solaris/tpic2pdftex
@@ -341560,10 +342164,10 @@ binfiles arch=x86_64-linuxmusl size=4
name tpic2pdftex.x86_64-solaris
category TLCore
-revision 29807
+revision 69782
shortdesc x86_64-solaris files of tpic2pdftex
-containersize 4328
-containerchecksum 0f07c629f3af9b68e171d1bf45668bf1b83f4875f9ccd67400e897e86939d82c896ef5e3d23d33ab6950db352f59cba981dded5faa512b43254375faad0234fc
+containersize 4300
+containerchecksum 382267a955f18600d1ec30d535fe6e45ffbdf7f3a8a80d4a21bbf375134473b46fd31f9f1176d852c86077f1b7eaff172ddf2c60fd8022e4965ca826c62167d0
binfiles arch=x86_64-solaris size=4
bin/x86_64-solaris/tpic2pdftex
@@ -342673,15 +343277,15 @@ catalogue-version 2022/1.0
name ttfutils
category TLCore
-revision 66186
+revision 70015
shortdesc convert TrueType to TFM and PK fonts
longdesc Utilities: ttf2afm ttf2pk ttf2tfm ttfdump. FreeType is the
longdesc underlying library.
depend ttfutils.ARCH
-containersize 108724
-containerchecksum 2e4eba2acd3b97297d2629ad93fdac4587afdfff30584ff77f69574efde4172ce60b904100c70d168016e8cb5c6407f4b4ef5ed7b3c83f942b7477af2f101be7
-doccontainersize 138048
-doccontainerchecksum bac6812f37f1d53184a4944e91b06c4ecd6a03d96d78956781c4b01c38ec3b65b74032704d98a4951f8dd5ad84ff54d82891c12e7db99ac58e687e535758decc
+containersize 108728
+containerchecksum 21090d6c7fa70bb55931959221ba429fa97fa559c3b3ea7a50196bea6253f3b425f7adef1c4c16328b9f800c72d0489d402acff0266ef0b2b07b2d8d2b139b83
+doccontainersize 138064
+doccontainerchecksum cf00842b5684eafd3189d7debd4d8689b32fe905062e55b30b80675be0604ec290b68e130043840b78b6d4887822bc6cc33ca4af69a4091a346b63f9e8d4a82d
docfiles size=65
texmf-dist/doc/man/man1/ttf2afm.1
texmf-dist/doc/man/man1/ttf2afm.man1.pdf
@@ -342714,11 +343318,11 @@ runfiles size=219
name ttfutils.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of ttfutils
-containersize 427716
-containerchecksum 703ca2e8b8bd0e5d090128c360a5ae19daa83fd3e0d400a162b2be3a5793837ee0a4755b581c88346757290fa490d8f652c8f7ff1b71e4f3a1dc059b56825939
-binfiles arch=aarch64-linux size=473
+containersize 430204
+containerchecksum 643ea02ca2afd0a520740f102ee5ded466c489ed7b4fbee575e25c4032209b1f27bcf69ea8698810f937930fefc07e76fc4dcd48e6cc6b34fd3c29923ff48673
+binfiles arch=aarch64-linux size=478
bin/aarch64-linux/ttf2afm
bin/aarch64-linux/ttf2pk
bin/aarch64-linux/ttf2tfm
@@ -342726,11 +343330,11 @@ binfiles arch=aarch64-linux size=473
name ttfutils.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of ttfutils
-containersize 473328
-containerchecksum 29e3bf3c59984fd408dea5f3e40bc46ada06ffe01751806e5d77949f05bb8c0a570b35e9333914e6b6ac03bee32a2bac157b36af92a4856eac781fd1fce3ecbb
-binfiles arch=amd64-freebsd size=495
+containersize 411692
+containerchecksum 5bdb5eb6cc723ea9afdaaf3e254330e08ddba13f6fa18ac7cd99961e385ff2fc90afc41a5eacff5f94035df8b90bfb0a23b1b07e1883ef179a747cdcca401024
+binfiles arch=amd64-freebsd size=620
bin/amd64-freebsd/ttf2afm
bin/amd64-freebsd/ttf2pk
bin/amd64-freebsd/ttf2tfm
@@ -342738,11 +343342,11 @@ binfiles arch=amd64-freebsd size=495
name ttfutils.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of ttfutils
-containersize 405560
-containerchecksum 1305b0b76f3b4c0bc39fcbe235843d456349a9a5ee042d10dd3b4cca5c13593c6ab6fea15b773c7631a5a683d7f008d7e46701a870d9a3cb58592ea93545dc79
-binfiles arch=amd64-netbsd size=618
+containersize 407300
+containerchecksum 0938716492ea6e8337957fcb1b312ccd93d2ce339eeddcbb656cb2608c3370d2a30af3cf2a184f86b5ac7fae73f71092c3903e9a326696cb0ad7214d07a8a127
+binfiles arch=amd64-netbsd size=623
bin/amd64-netbsd/ttf2afm
bin/amd64-netbsd/ttf2pk
bin/amd64-netbsd/ttf2tfm
@@ -342750,11 +343354,11 @@ binfiles arch=amd64-netbsd size=618
name ttfutils.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of ttfutils
-containersize 347292
-containerchecksum 774ae6d2642544ae34213002a348c90da78130772abbec51d03b4e037c0bf1ae59268912dcbad33281eabea3b308387b29441d5f7d416d887209110352dee62c
-binfiles arch=armhf-linux size=369
+containersize 348200
+containerchecksum 0abea4b31f0af07d89b71258c65fd9c7317a37681352b00926c55fc5580ad13399039ea7cda9e9be79ff0d630650f3169a1439e50cde0fc370ff02e80bb30b42
+binfiles arch=armhf-linux size=371
bin/armhf-linux/ttf2afm
bin/armhf-linux/ttf2pk
bin/armhf-linux/ttf2tfm
@@ -342762,11 +343366,11 @@ binfiles arch=armhf-linux size=369
name ttfutils.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of ttfutils
-containersize 432460
-containerchecksum 9104c0de2b9ad6ed1f8f0ce2fbf81fd32dfe87a8ee8c4694d27562126c42db3058908f41e78f8d14a7e822d5b333a5fa4658fd16054b90d2ff3ecbcb8005480d
-binfiles arch=i386-freebsd size=431
+containersize 412032
+containerchecksum 9466046364cb4e8e00a1d84ae5ae5a218b9782e12d66611c36b33c98b73992845cb39ca1938c684a5f196713a079f90271e6a871cc4d6b1801ea5cac72389568
+binfiles arch=i386-freebsd size=620
bin/i386-freebsd/ttf2afm
bin/i386-freebsd/ttf2pk
bin/i386-freebsd/ttf2tfm
@@ -342774,11 +343378,11 @@ binfiles arch=i386-freebsd size=431
name ttfutils.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of ttfutils
-containersize 459084
-containerchecksum 2effff121fd11e76b4977f9d761e1109c1ed12b7b8a03ccedc8d3d408f7300d5826021d7f9b50ab3b79fb56ba912ac48b8eb1a0c5a7193c876d828334ea62207
-binfiles arch=i386-linux size=478
+containersize 461412
+containerchecksum 573d8c2e98dab5757d46a4ea69ff6ae504496927e9745df57c21b0853f6cb0514451ac346506e6bf1b2b8364fac56fcd3206b2135146181ba1f572521393e9f6
+binfiles arch=i386-linux size=482
bin/i386-linux/ttf2afm
bin/i386-linux/ttf2pk
bin/i386-linux/ttf2tfm
@@ -342786,11 +343390,11 @@ binfiles arch=i386-linux size=478
name ttfutils.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of ttfutils
-containersize 375932
-containerchecksum 857c39fd2e4549fd354d0857141d7dc817965155e6c855e34444f0c3756968778a9be565453845d6a83a9695c8f462ea476cae9033931f0b7429ce9a19aab38c
-binfiles arch=i386-netbsd size=535
+containersize 375704
+containerchecksum 59993b85f7af0a22f80d70b5195c472f9f5de20d44bfe4695b97ca46e5e11d4807ddbaca03a2c269e6397b4fe19294aff692eabecb6ed3bf3853d0c944bf0929
+binfiles arch=i386-netbsd size=539
bin/i386-netbsd/ttf2afm
bin/i386-netbsd/ttf2pk
bin/i386-netbsd/ttf2tfm
@@ -342798,11 +343402,11 @@ binfiles arch=i386-netbsd size=535
name ttfutils.i386-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc i386-solaris files of ttfutils
-containersize 416636
-containerchecksum 89787e72157d9591ee4490ea205c699e78fa9be33de3ab7bbf96ced81550ca2f8a9550634a83709e9d13bcd03dd25a1933f4273db5f1598b9beb52e25e079dec
-binfiles arch=i386-solaris size=398
+containersize 436372
+containerchecksum 9b1485650f56e3b91011558150af84773d9311d3aea12fe181caf93a34bfabd33562be73ff5ebf00bbb558931a647acd67a70b1bf0fb548df3d3503fa103376c
+binfiles arch=i386-solaris size=425
bin/i386-solaris/ttf2afm
bin/i386-solaris/ttf2pk
bin/i386-solaris/ttf2tfm
@@ -342810,11 +343414,11 @@ binfiles arch=i386-solaris size=398
name ttfutils.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of ttfutils
-containersize 824532
-containerchecksum 1db8f2d24c3be5b68367698c98c390e2c0e28db0c46594a77fa22b885050983cad06585d200583840027d35230ae929f5ff5e359b231f52f3d2740e0e1e249e6
-binfiles arch=universal-darwin size=991
+containersize 830516
+containerchecksum 6d051b3a8fbcd2fcab43130fa84e38c091193cf40fafb814da8c124282c8f1bed606022d7effdbadaa1999212a59037640897507dfeac02f4e64e9509f5ed60b
+binfiles arch=universal-darwin size=995
bin/universal-darwin/ttf2afm
bin/universal-darwin/ttf2pk
bin/universal-darwin/ttf2tfm
@@ -342822,11 +343426,11 @@ binfiles arch=universal-darwin size=991
name ttfutils.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of ttfutils
-containersize 405108
-containerchecksum b1afd2acc0366976046c567144bbb5af196c4777acde9cf0aa0ed3d60335a5479492b4bb5d5f0ab8c8ecdd4351cb215acc78108e873e9a45cac973c9178914d3
-binfiles arch=windows size=380
+containersize 404132
+containerchecksum 8bbc272f56bbb90d3c12ef8f46c43e89df1fbcc8ef00eefc83d40837524dba9860d9afadf86002ee8aabaf8bd239673af74129514c9d212dc5d01b057fb638d3
+binfiles arch=windows size=378
bin/windows/ttf2afm.exe
bin/windows/ttf2pk.exe
bin/windows/ttf2tfm.exe
@@ -342834,10 +343438,10 @@ binfiles arch=windows size=380
name ttfutils.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of ttfutils
-containersize 381476
-containerchecksum bb2b697e789884d8ac21651b016ea30ba086ea24bea568e9f56bd590bb4a91808804d22e8ec78bf89307b50826789d9d3eb96806e0fea37bece7243b98d7473c
+containersize 381612
+containerchecksum 695aa9fd8a3a128725ba8becf0ad7448751a849ab674d6885adb98d171f70dff4c756c51e3fce6c0d5903006e33d5199b011486a9e22bce3295dc6573885285a
binfiles arch=x86_64-cygwin size=380
bin/x86_64-cygwin/ttf2afm.exe
bin/x86_64-cygwin/ttf2pk.exe
@@ -342846,11 +343450,11 @@ binfiles arch=x86_64-cygwin size=380
name ttfutils.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of ttfutils
-containersize 414408
-containerchecksum ca32999cbf9b4e41cc394b5028bbfe357b8e5194c0a2c14a1c14ddc89c90774e49c263a9c46f6298160bb49f60b9d26f5dbe723d6fd0916ada6c2bbb8abd9f6c
-binfiles arch=x86_64-darwinlegacy size=426
+containersize 415544
+containerchecksum 8a9010ffbabf067400fd46ffec20526e7943f8f81c90922d5eb8c5f87afb336de44fbdae3440edfb48d8b7d793133b8e66fa9bf43d03aad6fb99451740e4f821
+binfiles arch=x86_64-darwinlegacy size=428
bin/x86_64-darwinlegacy/ttf2afm
bin/x86_64-darwinlegacy/ttf2pk
bin/x86_64-darwinlegacy/ttf2tfm
@@ -342858,11 +343462,11 @@ binfiles arch=x86_64-darwinlegacy size=426
name ttfutils.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of ttfutils
-containersize 441200
-containerchecksum b730d400899f48c65e714917203d9181080cb544282b4dbb73f69a015dbfcd741c230247bb0e4d8abd3b42cb21f5350035e48ceb9aebce17126be0161bd3eb10
-binfiles arch=x86_64-linux size=457
+containersize 444352
+containerchecksum c5d0754767eb110456bb0ec32604700ad9246c3c33e2c26cd2c328b7cc500ecadb46e0c5595912e41f06ff3bbcd46814526237c8d4f422b7f7e791ecb182784e
+binfiles arch=x86_64-linux size=460
bin/x86_64-linux/ttf2afm
bin/x86_64-linux/ttf2pk
bin/x86_64-linux/ttf2tfm
@@ -342870,11 +343474,11 @@ binfiles arch=x86_64-linux size=457
name ttfutils.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of ttfutils
-containersize 469368
-containerchecksum fc7568ed0965a4d9e26944a32cfee6525de739f513fc9e8e8497909d3f183f2c91f17986f93e1ba6576600946588782c6c5b62ea999423698843356938e38eba
-binfiles arch=x86_64-linuxmusl size=500
+containersize 471280
+containerchecksum 642cccc0fc8f0b68b6384a51d7c7db9c934c3c1bf4e6318b3c9b7109033c4a7b2aefcbf8c8e4a6df53ddc4e470e3e199a0cb11d81dd390a7ef9710655548b509
+binfiles arch=x86_64-linuxmusl size=505
bin/x86_64-linuxmusl/ttf2afm
bin/x86_64-linuxmusl/ttf2pk
bin/x86_64-linuxmusl/ttf2tfm
@@ -342882,11 +343486,11 @@ binfiles arch=x86_64-linuxmusl size=500
name ttfutils.x86_64-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of ttfutils
-containersize 461020
-containerchecksum bd240b3c644b5cdc6e6032e45d535b6085e3e24ed556542fe67bcb31128d1493dd0345ce76df8b69d371b355135183b76d7a932c52f620ee58f2f4b13e69f43f
-binfiles arch=x86_64-solaris size=471
+containersize 482852
+containerchecksum f47adf356cb8c755bc93e96a553324bbd52760c7f04310d551e698bcb72454b03637612461876fcf33a12f4510ab7163712abc5e344f99d778ca3275565208c2
+binfiles arch=x86_64-solaris size=505
bin/x86_64-solaris/ttf2afm
bin/x86_64-solaris/ttf2pk
bin/x86_64-solaris/ttf2tfm
@@ -343637,7 +344241,7 @@ catalogue-version 1.3
name twoxtwogame
category Package
-revision 70426
+revision 70423
shortdesc Visualize 2x2 normal-form games
relocated 1
longdesc This is a package for the visualization of 2x2 normal form
@@ -343646,10 +344250,10 @@ longdesc vector graphics that are intended for use in scientific
longdesc publications. The commands include the creation of graphical
longdesc representations of 2x2 games, the visualization of equilibria
longdesc in 2x2 games and game embeddings for 2x2 games.
-containersize 12988
-containerchecksum b2275f66d1e53f031b6c512754b7dd9fa2e7a078bdb08de64cfd51cb8c66919027397ecc6d740a7fad741b9468442aee0f93b7d9082ca75757d69437de05b001
-doccontainersize 452136
-doccontainerchecksum 1ea1154857058973b8ad02656caf68ffbec00ba7b3a51a985fb4367cf8622fc9a0d6848082c80cb2aa67fbae2fedb8d134ebf2361067704ece953c1b4651a17d
+containersize 12984
+containerchecksum 5f9689362939aa574782b8a8633eb819992d18215148bb3dccfb76b5b701906f549913b2f12f73a1412f969acbff62542cf9edb654a1a13aedb9e5f3dbfb9a83
+doccontainersize 452160
+doccontainerchecksum a4b0f616e47fdb1137b7bec363059c206bc9dde9aaead3096186c4ef004dad20f7ce391f5f5576887fa33283b0de0070ac55964da2443da7d224c38bdf09a00d
docfiles size=128
RELOC/doc/latex/twoxtwogame/LICENSE
RELOC/doc/latex/twoxtwogame/README.md details="Readme"
@@ -344581,6 +345185,29 @@ catalogue-license lppl
catalogue-topics layout-show
catalogue-version 0.21
+name typstfun
+category Package
+revision 70018
+shortdesc List of equivalent Typst function names of LaTeX commands
+relocated 1
+longdesc This documentation lists equivalent Typst function names of
+longdesc LaTeX commands. Only math symbols provided by the LaTeX format
+longdesc or the amsmath bundle are included.
+containersize 476
+containerchecksum 37fe49c881da215f4ec77c39607c4b4dfc2ca747a279aeb8cbdcb01ae53105784d0f67f550fa493df852ca3d710d58a7226a349b452ffe0ecf0242f60d9f0a90
+doccontainersize 64596
+doccontainerchecksum c66f25bce6cba9830fa59a702f6d56135697a1dc79e016ebf807fa5feb0675db9f52bb1c891aad4d4fe4f8d80350591d0e91fa881d7518e9ebe3eaf4c3a651ec
+docfiles size=21
+ RELOC/doc/latex/typstfun/README.txt details="Readme"
+ RELOC/doc/latex/typstfun/typstfun.pdf details="The document itself"
+ RELOC/doc/latex/typstfun/typstfun.sty
+ RELOC/doc/latex/typstfun/typstfun.tex
+catalogue-contact-repository https://github.com/lvjr/typstfun
+catalogue-ctan /info/typstfun
+catalogue-license lppl1.3c
+catalogue-topics documentation maths-doc
+catalogue-version 2024A
+
name tzplot
category Package
revision 64537
@@ -345884,7 +346511,7 @@ catalogue-version 1.1.0
name ufrgscca
category Package
-revision 70603
+revision 70600
shortdesc A bundle for undergraduate students final work/report (tcc) at UFRGS/EE
relocated 1
longdesc This bundle is aimed at producing undergraduate students' final
@@ -345893,10 +346520,10 @@ longdesc University of Rio Grande do Sul), closely following ABNT rules
longdesc (Brazilian Association for Technical Norms). It is composed of
longdesc a main class, ufrgscca, and a set of auxiliary packages, some
longdesc of which can be used independently.
-containersize 25620
-containerchecksum 4232e58cb76fc9e6e9a24fdc760dd189004dc20a10c9b27265a8d2449d8ff4f741ad745e52815e2b729d78896d682a9b11b96b3eb01bcca7ec4a4cc8f4a3c893
-doccontainersize 542716
-doccontainerchecksum efbfb6a83e5fcc88ce59b8b008c961b3e7e84266ee7b8c8f5f129f3625c1018352b701ef6fb7f8c1f41b21655da6b26d9add397d54b7bab4fe7dd74c91e327d5
+containersize 25628
+containerchecksum f545e46838e3918ce53b4303085abab6c211eddb79b8b7bfc750b095e096436fac6adbb728f9f98212e65536a54784f52e61bd2b2816fd64de5ddf3935dfedf9
+doccontainersize 542680
+doccontainerchecksum 0503a0e648ce919fda3208b8d40e854b9e8258318a50b9095ae177e8fabbda626959b805031e415184d89f9b2331a4f8e2bd7ec97583b96304fc5515b3a65138
docfiles size=189
RELOC/doc/latex/ufrgscca/README.md details="Readme"
RELOC/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
@@ -349878,7 +350505,7 @@ catalogue-version 2.1
name unbtex
category Package
-revision 70325
+revision 70307
shortdesc A class for theses at University of Brasilia (UnB)
relocated 1
longdesc This package provides a class based on abnTeX and compatible
@@ -349889,10 +350516,10 @@ longdesc theses for undergraduate and graduate programs at UnB. The
longdesc documentation for the class and the comments in the templates
longdesc are all written in Portuguese, the language of the target
longdesc audience.
-containersize 9516
-containerchecksum 0896c89b0fe51d943455fddd654f67b81aeadbc83d2a66eda450b9152f6d3ebceb4854c3bcb03c38f4ff0f0ced0b50c2e276b2ffb306ead72be05dc1eb02893f
-doccontainersize 648472
-doccontainerchecksum e398de7bde9696776778314665d6cf37f55c0faf33cf3dd4acbd14d82d7d303d4a0750119aa0fc8e8b80288ae7219020ab43ac78c7d125a54845277a8ee2ead7
+containersize 9520
+containerchecksum af03fc2d6a8167f0ee1ca87ed17593cb69743b4757629ff97ea90976986bf8ab9797e17c6863184c93367ec28835d60534517af58710e568e0d9fec031c341c8
+doccontainersize 648468
+doccontainerchecksum 3396dc310af81cc796b13a1e6e26376391d3df52794260d6ffbebddc34088aa3ad1c56e1f727c0496224e5ebe7990688822eb279a354ee2cc3a4eb434d3c8943
docfiles size=301
RELOC/doc/latex/unbtex/README.md details="Readme"
RELOC/doc/latex/unbtex/unbtex-example.pdf details="Example of use" language="pt-br"
@@ -350519,7 +351146,7 @@ catalogue-version 0.1.1
name unicodefonttable
category Package
-revision 70354
+revision 70353
shortdesc A Unicode font table generator
relocated 1
longdesc This package produces font tables for unicode fonts as well as
@@ -350529,10 +351156,10 @@ longdesc portion of a specific font. To quickly produce a one-off table
longdesc there is a stand-alone version unicodefont.tex that asks you a
longdesc few questions and then generates the table --- somewhat similar
longdesc to nfssfont.tex for 8-bit fonts.
-containersize 7900
-containerchecksum 08b2d90bed46237ebfdf0e98c45696b4dc1ba7f6f3ba2547fab2b129d6dd96e836dc23c345ccb45bdbd370fcc706e7a127a10f43aef9ea08ad75227f0b6b2857
-doccontainersize 1400904
-doccontainerchecksum 823d26c705d4b6154ddd1324ac6297f97ef3244b815a7da23b0079c5bd94ece9391407432cf66b7bee7422dd55514c033839b31ee04262cdc1a75e5e11726e42
+containersize 7908
+containerchecksum 3fb3a6af296dcbd7229bda0faeb9f7369d079b560005e84c81d3a939abf1daa555c48ae1ade8f9efd69439f48871d85fa895f766c249e84962f4fbe409581491
+doccontainersize 1400924
+doccontainerchecksum 7f64449b22cf490f873d7fb468ba59a7698fac11738e99e2f575c0b31047e641245a810523e6478155ecffc70a6401aa86acef6b0671c8c27be0d0b585d0e287
docfiles size=605
RELOC/doc/latex/unicodefonttable/README.md details="Readme"
RELOC/doc/latex/unicodefonttable/TODO.md
@@ -350545,7 +351172,7 @@ docfiles size=605
RELOC/doc/latex/unicodefonttable/unicodefonttable-samples.pdf
RELOC/doc/latex/unicodefonttable/unicodefonttable-samples.tex
srccontainersize 22876
-srccontainerchecksum ea0086f6d9c3838d0fde1baef225c4e9ab57470033749e6bd4a877d6aaf85a28ad4c557b44f7ef2970db1c636c9dfb43ace959c2e41bf20f2daef3418ad08b60
+srccontainerchecksum 9d9d37e54fd1d32c7ad8d0f0db3997a87cb3cacf8346c4f2415038ce37fe58ee751cf02db9e05466bc2a4f3c465f45bb13f85aca1a7be13b989f6c5b71a326eb
srcfiles size=23
RELOC/source/latex/unicodefonttable/unicodefonttable.dtx
RELOC/source/latex/unicodefonttable/unicodefonttable.ins
@@ -351594,16 +352221,16 @@ catalogue-topics barcode
name updatemarks
category Package
-revision 69989
+revision 69986
shortdesc Extract and update marks from boxes
relocated 1
longdesc This package can help you update marks if you put your title in
longdesc boxes. It also patches the multicol package to let the new mark
longdesc mechanism of LaTeX work (partially).
-containersize 5184
-containerchecksum 7d2f78253c7afcb0ae7e98ca467e6d00dafb92bbe232e99cd11f2756c3277d4bca1688e2d88cbd214580c99fac539c9d01af50115647d5609f239be906c3ddce
-doccontainersize 504248
-doccontainerchecksum 03595b62f116276240b44ef558fcc164e49c8d831dd068280b5f8be70caecb9f165ae3340c2824803ac829f38ea3eb143955a59c3ef71ddde873a2a873185ad5
+containersize 5192
+containerchecksum d2f8cb24374dff1034b4fc253a14668c24b1bd80591e9ca049c872fe785a39198adc4a2a8681395b92b4207a69e395ed6157b75d206bc67b39b46c0c1bb9291d
+doccontainersize 504244
+doccontainerchecksum e20b0158c036dd50ca5d7a7d8864d52641d4714c06355e86e4011e4ff323b767dc888efdc6c49a2c93dc97a4bbb44d0363ba4dc43956d262b20cf09034c7fd0c
docfiles size=130
RELOC/doc/latex/updatemarks/README.md details="Readme"
RELOC/doc/latex/updatemarks/updatemarks.pdf details="Package documentation"
@@ -351620,21 +352247,17 @@ catalogue-version 0.2e
name uplatex
category Package
-revision 66186
+revision 70015
shortdesc pLaTeX2e and miscellaneous macros for upTeX
longdesc The bundle provides pLaTeX2e macros for upTeX by Takuji Tanaka.
longdesc This is a community edition syncing with platex. The bundle
longdesc depends on platex.
-depend atbegshi
-depend atveryend
depend babel
depend cm
-depend everyshi
depend firstaid
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-base-dev
depend latex-firstaid-dev
@@ -351645,12 +352268,12 @@ depend unicode-data
depend uplatex.ARCH
depend uptex
depend uptex-fonts
-execute AddFormat name=uplatex engine=euptex options="*uplatex.ini" patterns=language.dat fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,uptex-fonts,platex,latex
-execute AddFormat name=uplatex-dev engine=euptex options="*uplatex.ini" patterns=language.dat fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,uptex-fonts,platex,l3kernel,latex-base-dev,latex-firstaid-dev
-containersize 14836
-containerchecksum 920d770f36992085250b38bf8d58c59fab7ac8d121ad171612b99ec7f91369f9f31c24ba5e5402552e2fe073a3913b529fd013be1a70eb37913a9731caf69895
-doccontainersize 776324
-doccontainerchecksum 8024c2dfa393ddadffd5c35a27542d3f27a030464306087ffc28d65c2e0c704e56143f4f449f1d59ca1f19f007389256a4a23c2f2405855a5aeeeb11bd4b3802
+execute AddFormat name=uplatex engine=euptex options="*uplatex.ini" patterns=language.dat fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,uptex-fonts,platex,latex
+execute AddFormat name=uplatex-dev engine=euptex options="*uplatex.ini" patterns=language.dat fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,uptex-fonts,platex,l3kernel,latex-base-dev,latex-firstaid-dev
+containersize 14800
+containerchecksum 553857278368888c569c26f054af2672d54f4506c5d2af56bf3f4e4c509266cbc175a534e5a5e1713e525321daf32cd7db8c8a669f978e73f677bdcc2fcfce74
+doccontainersize 776308
+doccontainerchecksum 94fcfa9e76de7258c466954735186f56cfdcb65b553ec7246d27839d67ea9040a979d051f1e076a880b2f55dc5a36bbf52b957d58519959b7e24feabd6d5e61b
docfiles size=201
texmf-dist/doc/man/man1/uplatex.1
texmf-dist/doc/man/man1/uplatex.man1.pdf
@@ -351661,7 +352284,7 @@ docfiles size=201
texmf-dist/doc/uplatex/base/uplatex.pdf details="Package documentation" language="ja"
texmf-dist/doc/uplatex/base/upldoc.pdf
srccontainersize 50744
-srccontainerchecksum 7fe21c87bcdcfc7ba7221a51c59eafd17a767aff04a1f267682167962f2a75a34e12af5b035319b6e413ef1037533f2bc07e7b7d21cda63355ef4185844d51e4
+srccontainerchecksum d3952ac6d5adb7db7dc84d468a85c0581291bb21ab07c2bd9dca50cffb2abbeca3580b22c1e8f14ed4f86999230449698ffd3c772dae5a6ce5b5fa5a6a707bb2
srcfiles size=73
texmf-dist/source/uplatex/base/Makefile
texmf-dist/source/uplatex/base/ujclasses.dtx
@@ -351939,137 +352562,137 @@ catalogue-version 1.07
name upmendex.aarch64-linux
category TLCore
-revision 66237
+revision 70276
shortdesc aarch64-linux files of upmendex
-containersize 6026144
-containerchecksum 7b8a2d79620af1b8c1636df3b76f683052f016f621d522a771eaf83563e3d7351f2d1ae1ddccd40575c00eae7decd543a19c72de9524ff587490be85199a068d
-binfiles arch=aarch64-linux size=5604
+containersize 6037788
+containerchecksum 3b22b5c44ae3148e257fa78dd2a35fcd1bc5099fb639715e075b12da71dac94b47f2d888f322dbbe3c812e6f284b945fe6e9f4a0f3275f3510fa84a5cb3888df
+binfiles arch=aarch64-linux size=5497
bin/aarch64-linux/upmendex
name upmendex.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of upmendex
-containersize 6023232
-containerchecksum 1bb378d5356021d27229d2f6fb381d55beea4ab2cbd1ce1c3ac7b029c13a2de9c722896d50280f41320d711cc1f272fcce08eac7d6bf9c5a866aee3051044f17
-binfiles arch=amd64-freebsd size=5552
+containersize 6006156
+containerchecksum d2135a9735e3b3da5225ae76bde03458b8bf003ac660c431605cd8b193441adcf8ab68935bc6b460453b5c1e2273080d0e8805aae9844b70c6684fb3e505d616
+binfiles arch=amd64-freebsd size=5559
bin/amd64-freebsd/upmendex
name upmendex.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of upmendex
-containersize 5987452
-containerchecksum 45d34fcd572562113bee142a2166125daf0560e6b6aba878b104adac81354f19553340fd4f73d8b9061961a0b4692faa4898cf7b177a052226e5aaae50b3294d
-binfiles arch=amd64-netbsd size=5659
+containersize 5995220
+containerchecksum 39ce9ed417a1128ceaa0c157743c66ed1e2098551fe524571e10036786666514f60879553d513b40329363e874bd35924b58294420c067eee5915a2c64fa0259
+binfiles arch=amd64-netbsd size=5552
bin/amd64-netbsd/upmendex
name upmendex.armhf-linux
category TLCore
-revision 66237
+revision 70489
shortdesc armhf-linux files of upmendex
-containersize 5924772
-containerchecksum 57ad469f6b4a16976e1382acaa280cb745697c44f7491539e7fe22ce99cc26b2747b6e17007d80c446d788fd2fe410c33b33f6ede28e574ce070069793b2da1f
-binfiles arch=armhf-linux size=5489
+containersize 5932096
+containerchecksum 59a9217301e4ff6811a5da1037458f0de59cddd5cba83405e32f249ebb55600842d8ece88c66f776935b5a1ed7c9da266b1dbc41eb3250f0f7bdf18c2deadd3f
+binfiles arch=armhf-linux size=5381
bin/armhf-linux/upmendex
name upmendex.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of upmendex
-containersize 5993696
-containerchecksum 2c91380ac86296694172a85e4602ba0e5bf2c1e77177385b0142123515c3753b6bbd5222b436e36982cfbe8a9f2d25e78182aac367f2f30b8b6f8adfee808353
-binfiles arch=i386-freebsd size=5518
+containersize 6005728
+containerchecksum 8e1239a75999e70502a2fd480310d671d733c82ea12a0c605e1bb413e74d4bb6c4c63d1831ab3917c50e0d3f6f24dc8439e9f6adf336fb12bfca737f6cf72d04
+binfiles arch=i386-freebsd size=5559
bin/i386-freebsd/upmendex
name upmendex.i386-linux
category TLCore
-revision 66511
+revision 70276
shortdesc i386-linux files of upmendex
-containersize 6269784
-containerchecksum cda5fc695e73d07edf99d422eef5fb061cdc772dc6a8a727e7a03e262bf3e1ffd434685369005c1ae35969e51aa11ab13c0f8a4e1f19fdffea4af055476ed811
-binfiles arch=i386-linux size=5760
+containersize 6282480
+containerchecksum d02700fed7d63e969bfac3e55a143259b2bd459b9d133b3a003b206d7a502609005a9ae2b8d86903c453ee15195ee1696fafa0b18744584dcde52ba35fbed09e
+binfiles arch=i386-linux size=5653
bin/i386-linux/upmendex
name upmendex.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of upmendex
-containersize 5957520
-containerchecksum bdec1119627ec92a44754ba67304cdf3516e33503330ec87b49958f7408c83c7f2224ed212abea5c9e82a564a4c18ae1cf16029656f3e5d2fbc01823339f4e64
-binfiles arch=i386-netbsd size=5611
+containersize 5962704
+containerchecksum 5dd2175f52b986b842ef0e2b2284bb0597f03ae6f48bf99b0d462f155fd5d687dbf22b4791b51231bdad5fe70f3dd0b270f80879b098fada1331ebc37bf45f5b
+binfiles arch=i386-netbsd size=5503
bin/i386-netbsd/upmendex
name upmendex.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of upmendex
-containersize 6364508
-containerchecksum 6cc765fcb6acd3ba8114daf52d3ba0ab835d19da6953aafa9e76f554a4990d35bf43c3defca57aae409ba90677cfa8def0168df18eab0c6f00e7d57ce454bd49
-binfiles arch=i386-solaris size=5948
+containersize 6114932
+containerchecksum 5435d2ccecdf8c16d9dfddfcb077769c32f63e09c3f039cff025fce0b0fb5f99490adac8b5bcce50a8fff5d88937807476eab0fcc56628f9765ad68800237d8f
+binfiles arch=i386-solaris size=5565
bin/i386-solaris/upmendex
name upmendex.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of upmendex
-containersize 12345320
-containerchecksum dd64155c5896ac5bff7e6e58d15f613541f97e4b25217a571d2ac7005f746c87b70d6765146c4b6218130af9d4dbbe26faaf6615d8e098d1d542a121ce619b1c
-binfiles arch=universal-darwin size=11187
+containersize 12374704
+containerchecksum fa0785c59310cdffcd3fd5a56c5532a9e35cb838451c895e87899506974b55e137602cc8b462f4d68ef39e94403c2e60fcae903f68c0aefdbf0bcaccf50104f2
+binfiles arch=universal-darwin size=10963
bin/universal-darwin/upmendex
name upmendex.windows
category TLCore
-revision 65891
+revision 70269
shortdesc windows files of upmendex
-containersize 625024
-containerchecksum 7f70f3592ee41714c4de39a21337feefd98125b75e8593912940ed83a4e0f18389ed7edb899d82bd687bd9a759d9c5430c72c282432bd6d23918c7fd0176b6c1
-binfiles arch=windows size=429
+containersize 639692
+containerchecksum 7544756b98a6041e30559570689e21ddd47d20bd4cb5ef94dc8fd1127178a92a622a8671cd5945d1a1e5c434fe7074216af0dc385e69a213fa90a6ff8f9ce7fa
+binfiles arch=windows size=439
bin/windows/upmendex.exe
name upmendex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of upmendex
-containersize 5994888
-containerchecksum cafc927b64dffe5fd8108b4454634f33fc0e1dfba6bd2216aa303607cc6b9017068f1fb904ee609bf01a8ecc9de341e43e1f7ec65037f2fc3f86869b694782a0
-binfiles arch=x86_64-cygwin size=5533
+containersize 6005140
+containerchecksum 0139ba7e7a3ed407d9c53684db07748d990af1b1f8683a45235b8271a1be8f6f72d695e0aedf8c5aa2d678ed5eb690504bf102e1da004a80145d15e70618ec96
+binfiles arch=x86_64-cygwin size=5423
bin/x86_64-cygwin/upmendex.exe
name upmendex.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of upmendex
-containersize 5983876
-containerchecksum fd61b5fde7f9ad8696675e74f228b557501f666e755e6499f4514adc5f73006ee098ca5693107a74d20abc1ba48158e521d2a182f2686fc9ac6a534c9735a9c1
-binfiles arch=x86_64-darwinlegacy size=5523
+containersize 5989904
+containerchecksum 088a743ac2e1bbc48fe1650e097b873ad0291e08a26daf05c1438975e502c066a0294e4cdaf006a4fe339bd50d2899fd36354cfe546e9c9a5a42dd847ffa310d
+binfiles arch=x86_64-darwinlegacy size=5413
bin/x86_64-darwinlegacy/upmendex
name upmendex.x86_64-linux
category TLCore
-revision 66511
+revision 70276
shortdesc x86_64-linux files of upmendex
-containersize 6275796
-containerchecksum 53486dc46bd67169ddf3ea1246ab10bbcac1e5481e43de3ec09081c6794b28a34f2d15cfebeeeb6a0d4d2e680abe0a441de03874bcefc7bae19b6b10edfa86e4
-binfiles arch=x86_64-linux size=5778
+containersize 6283808
+containerchecksum 64e788cafe6039708a3806e61af67b2f0f0953e8753f0acb491ae2c29889018c70bdaf78d715503bb8dd341dc01e18ad3500f7e4b35fa54b5fdb29ae1905b86e
+binfiles arch=x86_64-linux size=5669
bin/x86_64-linux/upmendex
name upmendex.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of upmendex
-containersize 6180348
-containerchecksum 284000db0079bbb3fb89ccf9ea4f1153d0c5ce30220aaf1d2714e11b68569413c9b077e84e725c3b39510524d64b8b20e914587d1151bea20e22e3ed643e9507
-binfiles arch=x86_64-linuxmusl size=5712
+containersize 6190888
+containerchecksum 89f7a34c3885c5ff6260d60b053e86787b2647bdc4ca5f0b288072186c4ab3f92c300438f66ca383b8d2f6dc2db04d5cd1cb07101705e44e507087d37d031944
+binfiles arch=x86_64-linuxmusl size=5605
bin/x86_64-linuxmusl/upmendex
name upmendex.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of upmendex
-containersize 6366380
-containerchecksum 832c7f058f2d69f7ce07c7d97a544079dc92e25808e0e013e7a32e0bfdd82bbd1dfb790faba8456b063bd6f7f67badd84adcd5fad07e11dd4fced2d8142e230d
-binfiles arch=x86_64-solaris size=5975
+containersize 6143396
+containerchecksum a25ee3e58439771c3df181ba7c072d66f68a5d423ef4ca2ceded3b811f1f24215d1215dae6d28db653c3b12bb5ea4cfd42696e14a6e27e276a7faf70990eaea6
+binfiles arch=x86_64-solaris size=5610
bin/x86_64-solaris/upmendex
name upmethodology
@@ -352479,11 +353102,11 @@ catalogue-topics font-cjk
name uptex.aarch64-linux
category Package
-revision 66382
+revision 70577
shortdesc aarch64-linux files of uptex
-containersize 1254632
-containerchecksum 1b059f3622d945bbdb18a393cbabb4ced4835832b2e2ee4371d79f5fbf06328c505a7fd2e317b45da1ee6e79cb0c1b7d4f6d48cf338110f719a3a0167379b740
-binfiles arch=aarch64-linux size=969
+containersize 1276676
+containerchecksum a3140b6d7ab7fe7011dabfdf2b25ccc68d5313f125378042c2501a0c03485a862f7dffa3a4be8b887e633d793b71283302b7928c2e7211ee848d5bc763d37e83
+binfiles arch=aarch64-linux size=991
bin/aarch64-linux/euptex
bin/aarch64-linux/r-upmpost
bin/aarch64-linux/upbibtex
@@ -352497,11 +353120,11 @@ binfiles arch=aarch64-linux size=969
name uptex.amd64-freebsd
category Package
-revision 66382
+revision 70276
shortdesc amd64-freebsd files of uptex
-containersize 1532596
-containerchecksum 3bc0e9c112c4124044ad9165a59b39878a0f9d35cefa95bbd65dc37b4051ae808292bcc95cdd341b8521d286719f4ef5437a7b198944e48b943024cc00cc9ecc
-binfiles arch=amd64-freebsd size=1177
+containersize 1225660
+containerchecksum df55c14d49f283bcefe3549e62eed354d214c062247535c705265323d8280f0f0b912fd51cd9ec6a6911079d5fb0bd12400160d85c21c7c3cfb15cb9ff13b939
+binfiles arch=amd64-freebsd size=1806
bin/amd64-freebsd/euptex
bin/amd64-freebsd/r-upmpost
bin/amd64-freebsd/upbibtex
@@ -352515,11 +353138,11 @@ binfiles arch=amd64-freebsd size=1177
name uptex.amd64-netbsd
category Package
-revision 66382
+revision 70286
shortdesc amd64-netbsd files of uptex
-containersize 1186372
-containerchecksum e520d137b009118d4a62a746c7e257feceb090844b2531d11fec02a9ddf3e69578722fad69480e6b38714a3cea5bf92a4521c548db36a36d08355200fe3848df
-binfiles arch=amd64-netbsd size=1765
+containersize 1206452
+containerchecksum 49b756b5b7c42d932dd53f0ab8cf0ebb96002341d45013e36dcbda767876f53edc0185b48de29aca590e06518f195342fa789c06bc69564f2978de41600639af
+binfiles arch=amd64-netbsd size=1790
bin/amd64-netbsd/euptex
bin/amd64-netbsd/r-upmpost
bin/amd64-netbsd/upbibtex
@@ -352533,11 +353156,11 @@ binfiles arch=amd64-netbsd size=1765
name uptex.armhf-linux
category Package
-revision 66382
+revision 70588
shortdesc armhf-linux files of uptex
-containersize 1072412
-containerchecksum c7092ac2c52a5e44ec87153e2cee646075647a1f164196ecb084c557856f7851bf34e8694a6e00bb8d732ff876a7759f38ef723e9b1041a5f60bd247580ac175
-binfiles arch=armhf-linux size=805
+containersize 1086420
+containerchecksum 4ff3aa721b277c63e1812aaf7a0df563b04b7583916683b3bc91f915e440e3d2fe88b0c8b8ef8273dc9a288d7e8e9339a61a9dece1b39056b9acc9b9bd739d93
+binfiles arch=armhf-linux size=819
bin/armhf-linux/euptex
bin/armhf-linux/r-upmpost
bin/armhf-linux/upbibtex
@@ -352551,11 +353174,11 @@ binfiles arch=armhf-linux size=805
name uptex.i386-freebsd
category Package
-revision 66382
+revision 70276
shortdesc i386-freebsd files of uptex
-containersize 1278468
-containerchecksum ce82d7746b17b4f9d29f7139f6a9da2693faedbea071fe0e0f39e6ed73a6adc049935daf17c4ab426bcaf9eed1e05234158ad9c0b2dde76be18cc7b9679f5cf5
-binfiles arch=i386-freebsd size=1004
+containersize 1225512
+containerchecksum 9d87853ef4f1e34a230593c7d6338cda38cd4274037fc8ed2b13b0cedd0623e8a627d1c19670e3b5a9b4f3023a21ff3e9455434e596ddda452b594f60d44117b
+binfiles arch=i386-freebsd size=1806
bin/i386-freebsd/euptex
bin/i386-freebsd/r-upmpost
bin/i386-freebsd/upbibtex
@@ -352569,11 +353192,11 @@ binfiles arch=i386-freebsd size=1004
name uptex.i386-linux
category Package
-revision 66382
+revision 70571
shortdesc i386-linux files of uptex
-containersize 1376264
-containerchecksum ed5470693dd480d243fe2e5ef7dc1128c08112243d67969a79898db4b7b0618767049643b8d5009dc4ceeda2fecf954672552f5b3acd0be4d27e6bb0dcfa4855
-binfiles arch=i386-linux size=1083
+containersize 1400432
+containerchecksum fce9d475056d3813bba00b314b11c790983402c32f8edae414cdf2c134099393fd0737494bb38484081a8fef9e2b433a25bd54ad0d5bf19917990a48cdffb417
+binfiles arch=i386-linux size=1107
bin/i386-linux/euptex
bin/i386-linux/r-upmpost
bin/i386-linux/upbibtex
@@ -352587,11 +353210,11 @@ binfiles arch=i386-linux size=1083
name uptex.i386-netbsd
category Package
-revision 66382
+revision 70286
shortdesc i386-netbsd files of uptex
-containersize 1023896
-containerchecksum e3c790e7c7cdf5eff05689667c4fb4d6d57ae9906c9af4ab0fc0d21ef70b9376fe37c78250d75d816c756590fea9a3bce7c3e18329061b04d1d31325a8de665e
-binfiles arch=i386-netbsd size=1575
+containersize 1041344
+containerchecksum 9cc732b72bd4fb60ba68b73393628e36c014f4247a15d9f2fa3e74f1e1c259ab3548cb91ad919071b0d5dd0ad10c360500636d7704b66619e560a473f2ad9726
+binfiles arch=i386-netbsd size=1599
bin/i386-netbsd/euptex
bin/i386-netbsd/r-upmpost
bin/i386-netbsd/upbibtex
@@ -352605,11 +353228,11 @@ binfiles arch=i386-netbsd size=1575
name uptex.i386-solaris
category Package
-revision 66382
+revision 70276
shortdesc i386-solaris files of uptex
-containersize 1241972
-containerchecksum ad1d6a63e2125a4a8070980159f97773ffb3cb3f63e999e75088ece6871be04ba2b0a78b5cb9a0e4a16a814f1d2ad336e5ee1baaf6e1dddcd763c71f3a87c224
-binfiles arch=i386-solaris size=893
+containersize 1317128
+containerchecksum c8584e618e3d176603c20d82e2809dc4d4ded4b093f33b43007e5099ff855195642f5029d2723987c9165ef179c1de1dca526977a5cfe9661c27e6ab0d0721e0
+binfiles arch=i386-solaris size=963
bin/i386-solaris/euptex
bin/i386-solaris/r-upmpost
bin/i386-solaris/upbibtex
@@ -352623,11 +353246,11 @@ binfiles arch=i386-solaris size=893
name uptex.universal-darwin
category Package
-revision 66382
+revision 70274
shortdesc universal-darwin files of uptex
-containersize 2692616
-containerchecksum d41db6c4f6ba6956351c3755237cc705b8734440ea63904ef7fe74fe862bdd504d6a413ef6c94e41610016bcc9469209f08cbd4aa9efe831dacda22cde1a516b
-binfiles arch=universal-darwin size=2297
+containersize 2729112
+containerchecksum 26a816a12cceb6c3d55cc37f8e795f5bb21d0cbfc0d3bce2d41a0c3426589e950efe2a09c83940cec6c42877f4cdfff54042fc11500cbbfde4bb2f94309a5a10
+binfiles arch=universal-darwin size=2326
bin/universal-darwin/euptex
bin/universal-darwin/r-upmpost
bin/universal-darwin/upbibtex
@@ -352641,11 +353264,11 @@ binfiles arch=universal-darwin size=2297
name uptex.windows
category Package
-revision 66382
+revision 70576
shortdesc windows files of uptex
-containersize 1367812
-containerchecksum 953f808f27d665530cfc92aa4c7a9714b1fbae33a03ec6f7c7ec15436623fc0cdba8206d252fbc87b7f87e92a7a44e6c1627e814dd5b93ab013a2d71a060811b
-binfiles arch=windows size=924
+containersize 1398604
+containerchecksum 3ba6c57d3bad08fe1701cd87a0fa7f76230eeadaaf61cf690627e81cd22b0858b6102837edc1c729bc4a5e2b1259999aa01a37fe6ddbee6062bc31d75c1ec3fd
+binfiles arch=windows size=945
bin/windows/euptex.dll
bin/windows/euptex.exe
bin/windows/r-upmpost.exe
@@ -352661,11 +353284,11 @@ binfiles arch=windows size=924
name uptex.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of uptex
-containersize 1268036
-containerchecksum 43d2ad9b406e7d91126caea8a145ba018ed780e09eef6acb049201ad9303b18bab27944a1ebc42af4aae685fa3e5710cb1e93c2bee591a449785e2cace94e41b
-binfiles arch=x86_64-cygwin size=832
+containersize 1287048
+containerchecksum 71bd8fdbab584161d7ff83faadc0f9ac5e19803477297c2627f885cdd2b388bde78014243279dd5a89a296ec6e0c92219b691e6474423e7ece4e7f64332702f1
+binfiles arch=x86_64-cygwin size=847
bin/x86_64-cygwin/euptex.exe
bin/x86_64-cygwin/r-upmpost
bin/x86_64-cygwin/upbibtex.exe
@@ -352679,11 +353302,11 @@ binfiles arch=x86_64-cygwin size=832
name uptex.x86_64-darwinlegacy
category Package
-revision 66382
+revision 70380
shortdesc x86_64-darwinlegacy files of uptex
-containersize 1243460
-containerchecksum 261fbe9863301fca1a23e13c696334fa61b86e619571d987afce43ec894ef908508a76e15c2919884f8fac3a18355f455dea15e5bbf74e10521fe33aacd84124
-binfiles arch=x86_64-darwinlegacy size=893
+containersize 1263172
+containerchecksum bbc3dd7b246c201794c2cbdfc072873d4af1de86a3c44c406fa400eef07f783f659d2ac50383f3919840f373b62052ad443eaef4b0f53ff33eba6fcb4ea7e38e
+binfiles arch=x86_64-darwinlegacy size=912
bin/x86_64-darwinlegacy/euptex
bin/x86_64-darwinlegacy/r-upmpost
bin/x86_64-darwinlegacy/upbibtex
@@ -352697,11 +353320,11 @@ binfiles arch=x86_64-darwinlegacy size=893
name uptex.x86_64-linux
category Package
-revision 66382
+revision 70571
shortdesc x86_64-linux files of uptex
-containersize 1354456
-containerchecksum fd508f11ee7a801f4475bfef9db80f4085da2899cf694606e1f066f06c55afc96c82d018433cffc3444656875622a19ec6e6fe98602802a450642eb93cd574d4
-binfiles arch=x86_64-linux size=964
+containersize 1375872
+containerchecksum d18a5bd399f4e263fd3c267dc8d590e872570de9f197e24648fd709242e7366985eb1d9fec8335a6c14064a0c05f2b417bbe566e162515423e998cf4c2cd1e86
+binfiles arch=x86_64-linux size=984
bin/x86_64-linux/euptex
bin/x86_64-linux/r-upmpost
bin/x86_64-linux/upbibtex
@@ -352715,11 +353338,11 @@ binfiles arch=x86_64-linux size=964
name uptex.x86_64-linuxmusl
category Package
-revision 66382
+revision 70276
shortdesc x86_64-linuxmusl files of uptex
-containersize 1410524
-containerchecksum 3a5c6e88a939c5b2b08d46d3f52c78cad2baeaf0d94f357dd0c9d5b7d22428c2a052f80709fe363eed71ee7997b366e63eadc0d2a565ec47bdef8a824b1af7ba
-binfiles arch=x86_64-linuxmusl size=1013
+containersize 1433176
+containerchecksum e5c74db89fe2fb72fa3726295023b28294bbd06c3c0338ff94f00c627097165eef9322027d5ebe2d717d869725157dff549992deba38e1766c7e386605ebd829
+binfiles arch=x86_64-linuxmusl size=1033
bin/x86_64-linuxmusl/euptex
bin/x86_64-linuxmusl/r-upmpost
bin/x86_64-linuxmusl/upbibtex
@@ -352733,11 +353356,11 @@ binfiles arch=x86_64-linuxmusl size=1013
name uptex.x86_64-solaris
category Package
-revision 66382
+revision 70276
shortdesc x86_64-solaris files of uptex
-containersize 1407324
-containerchecksum b9b5d32171701a2bde98ae85dde54e1ae1e741c4095a1809b99888739d477150d3504bb41a9cd0e413040031d2d7d8955807e927364761fff82f11a2a528a1e1
-binfiles arch=x86_64-solaris size=1015
+containersize 1486168
+containerchecksum 5c83237a1e441130587bc313890b30ec3b790d1109e6c4c04e9844b6c12e53670608acf12453d95d9cf82516e316974aaeca3d65a0a94f8b59272cc7c2f6abe7
+binfiles arch=x86_64-solaris size=1102
bin/x86_64-solaris/euptex
bin/x86_64-solaris/r-upmpost
bin/x86_64-solaris/upbibtex
@@ -353119,7 +353742,7 @@ catalogue-version 1.0a
name useclass
category Package
-revision 70447
+revision 70444
shortdesc Load classes as packages
relocated 1
longdesc This package enables the usage of classes as packages. It was
@@ -353130,14 +353753,14 @@ longdesc using the developing class as the style for the document.
longdesc Therefore, this package provides a simple interface for
longdesc utilizing classes as packages.
containersize 1884
-containerchecksum d1343768b6e6f89a31c437983db7d2cf2e52eff35054604719b08c5ac9ce9ce936982ce7885010e8f4929208a944746e07f28090099eec3ac3955bbf6805c396
-doccontainersize 526704
-doccontainerchecksum 9904c849d24426fb3139d92a0a502af362e12bd8d7d993da422a0e5a0ac0984d3a6f8504d0fdf88e170244877300efa1b366ad11e2683db75edd6c7fdc8b2a1e
+containerchecksum 91f9632df422c3e956341e4ee05af318ba46d8739f518027dc051880c46e8707fdad67fe6c995196e23e53cc039d593a7ba18cb5c99ef9f14d6a355486843939
+doccontainersize 526708
+doccontainerchecksum 47679603875377d3f3fa23ece55d3f641c8f6db0bff779a6e0b00ecdbc072912e9498fa8569d7a5f0b55cafd7db8e2a6f8e5324d6bff1ad40489feb9e1be0be4
docfiles size=133
RELOC/doc/latex/useclass/README.md details="Readme"
RELOC/doc/latex/useclass/useclass.pdf details="Package documentation"
srccontainersize 4048
-srccontainerchecksum c9e2083c974e78991310afa76d9b49ea5fb8bee62057aef1dd0f92fe1e26628b4bf0fb7e0dbb1d3dc734c307b8b6cf536d38e0b68ce825ce5b7605e0b74d76f2
+srccontainerchecksum efd51d81d94a38cff9e60d31fe36f6bc3202a0cfbe0d275e70466e0cc1401a1620ce8df29a3908978f261d072d4f79e13541a4806aeefd1c0c4335c976b49b66
srcfiles size=5
RELOC/source/latex/useclass/useclass.dtx
RELOC/source/latex/useclass/useclass.ins
@@ -356036,10 +356659,10 @@ binfiles arch=aarch64-linux size=13
name velthuis.amd64-freebsd
category Package
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of velthuis
-containersize 13668
-containerchecksum 4aec6882f7d61054bbb9fa6119eacbc6e747d3ee110e1de2ddf64829f54eaddaa53a44cedbde208104a200f6d8200791873b75b9eb2c4e439468c6f5d6c98d70
+containersize 11432
+containerchecksum 975c8d667e339cf6792a6ae64058311b6f0dc562cec9f5bd05684f2498d0bcdaf6e3672c625dbaff5e7373c26bc2cdc3853b63f09c6f4efae5046c3f3e5e54e5
binfiles arch=amd64-freebsd size=9
bin/amd64-freebsd/devnag
@@ -356054,28 +356677,28 @@ binfiles arch=amd64-netbsd size=9
name velthuis.armhf-linux
category Package
-revision 63092
+revision 70489
shortdesc armhf-linux files of velthuis
containersize 10824
-containerchecksum 250dd0962b245d601ff65472510fc9fc0e0a74a99b3ad52ec4e22ee9ed60801546f9bd11d813ca83087f6e46ae892df883ecf0277bed656336a8a4e89244b79d
+containerchecksum 986ee9aa6677e50edd06a80b0324008bcdcc64be50ce90cf6dd0273996b62e191c0bb5a9620372f7fcbc5476b94120fd7cb162b59a19bd3c15bc4c504b76547e
binfiles arch=armhf-linux size=7
bin/armhf-linux/devnag
name velthuis.i386-freebsd
category Package
-revision 62206
+revision 69782
shortdesc i386-freebsd files of velthuis
-containersize 12048
-containerchecksum 7896ff23f6b88f22132d9f52e9e833e29ceb02a91318b5e69116784078ea6bffcde5d516ef2faa62f7303ee6001acecfb630e627f6f87a8ba3c1a74ba71cdd0c
-binfiles arch=i386-freebsd size=7
+containersize 11428
+containerchecksum 07ad8adba0047d3b156d307b8de26d99d382960e6717a1084e9e03b199d66217ef6def4b33353a652b20512c839f4464bf3ffc77728780faa16e1be22f228f5f
+binfiles arch=i386-freebsd size=9
bin/i386-freebsd/devnag
name velthuis.i386-linux
category Package
-revision 62210
+revision 69782
shortdesc i386-linux files of velthuis
containersize 12048
-containerchecksum da0f01418c5c4b53f360b9ddbf334fc64ec33f7da638bee4dd743f0a1e0dc6576a1be0bc126e70103b526694d7e753bc154371b8681e8e8e9986918d62c471b8
+containerchecksum c1b5bbefba324bfb180f6b6b970ede1f8029ca294a88391438181ccb3424c8931cf7c7e3c95ae2eac6d94060a6027aee381f7506cfb0076715b1cc04b2b592c4
binfiles arch=i386-linux size=8
bin/i386-linux/devnag
@@ -356090,38 +356713,38 @@ binfiles arch=i386-netbsd size=8
name velthuis.i386-solaris
category Package
-revision 46829
+revision 69782
shortdesc i386-solaris files of velthuis
-containersize 12684
-containerchecksum 50ec3779de8eaa55ce4929d62481ca1c575721c744727e5a2f9b3c259e23f21514f854787d6733207f74435cf017308097e8e91a3d17e39ad461f9a6cf45b8af
+containersize 12688
+containerchecksum a6cd9345933d9b77ff7fcf61eb161f47f69c3b00785d0b18c3db8655ea510aa854c7051c21dec171c5655da873416b95e72bfb27f19070a05d9d9055b206a920
binfiles arch=i386-solaris size=8
bin/i386-solaris/devnag
name velthuis.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of velthuis
-containersize 29900
-containerchecksum d0c08a2c31e908c4c50b0ee503139c6705b6e78e3cf61aab3c4ac12f050bd313f11f796bf7505bd664ede86d0f26e40ad2f5068cda4efaf6186b71790341ff91
+containersize 30504
+containerchecksum 5cec10c436b153f8586d2059a67590d51580dfb4d607cd80fe599a726c498d87a52e918609c73b7b9cbc81fc8be9daef49e41269a7d388eb0dadd1947b046356
binfiles arch=universal-darwin size=42
bin/universal-darwin/devnag
name velthuis.windows
category Package
-revision 65891
+revision 69788
shortdesc windows files of velthuis
containersize 14416
-containerchecksum 4afd6fa4df457b1d84a067cdf44873257a72b5ebd009ed87ae22ec0ba03891ea04eb27fdfe18320e1c8615bad59957dab12e9d5d47db50675fc21fea08ec4e0e
+containerchecksum 8c4857ec643fc746e4f8f404a8193e5a5b141b08dee9d78c9f965bc93fd6074df0b08a998470f8cee2d789f2e95af2ccc1905aef2832ed9996193420b301f81c
binfiles arch=windows size=9
bin/windows/devnag.exe
name velthuis.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of velthuis
-containersize 13112
-containerchecksum 406987d077aa53aa78f6f0f2aa28ea40de069556e34eb3f7cb8b64233d97fa18b2658ab811f7cfd278f0865c016bd217679ccba0b34261ae23c2bc52f77969fc
-binfiles arch=x86_64-cygwin size=9
+containersize 13068
+containerchecksum 78ee8a2c4d5cd9ad49abeafd495080be4c1dd866b84501a6f6c1242f2f1279b0c5701593f5755a7d0604ac9489b2222aa41d10c1efc59003958a25326ceb52a5
+binfiles arch=x86_64-cygwin size=8
bin/x86_64-cygwin/devnag.exe
name velthuis.x86_64-darwinlegacy
@@ -356135,10 +356758,10 @@ binfiles arch=x86_64-darwinlegacy size=8
name velthuis.x86_64-linux
category Package
-revision 62187
+revision 69782
shortdesc x86_64-linux files of velthuis
-containersize 12084
-containerchecksum 3deb66b133a75d47a257bc0b61d17d30db33a98cafb31f2ba02a2f0e6d19712630070336934cd00480cde6a4ca9e02f00b5741a883315c86336ffb7cee8ba325
+containersize 12104
+containerchecksum 00ed2bc397c89ce4f88e97d4fc2a10558067fa69e1e7d0d5d6768a1f5b41eec525bcb491d8303fc0932063f973cc8b25aee1d3c0a5d1aaa90adee286d04a20bc
binfiles arch=x86_64-linux size=10
bin/x86_64-linux/devnag
@@ -356153,10 +356776,10 @@ binfiles arch=x86_64-linuxmusl size=10
name velthuis.x86_64-solaris
category Package
-revision 46829
+revision 69782
shortdesc x86_64-solaris files of velthuis
-containersize 13800
-containerchecksum 5e9fc63ae03524198d5fd6289682b8bc177a157100614d8e29697e7903ba74fe8d17f36a1eae866f7c1e1cc2edb5d8f664c8a1b546a42e97db6012d8645661b9
+containersize 14240
+containerchecksum 1fd9ace715f93cc5e603fa745909da42681eb9ed8ff161c847aa4d070ff0dfe09d15b30eb82131c786c6242a9d6e6cc6167f87d9f7c1f5a83d4d924fb2fe4fd4
binfiles arch=x86_64-solaris size=10
bin/x86_64-solaris/devnag
@@ -357299,21 +357922,21 @@ catalogue-version 1.00
name verse
category Package
-revision 69882
+revision 69835
shortdesc Aids for typesetting simple verse
relocated 1
longdesc The package documentation discusses approaches to the problem;
longdesc the package is strong on layout, from simple alternate-line
longdesc indentation to the Mouse's tale from Alice in Wonderland.
containersize 3196
-containerchecksum cc76ff256e4e388e0385c4a5152db537b9c3b368a29de79fedc17395d9d3b362c6e3af05a5714d7d2fee68f129cbdfe82874eaf64c8e0093f70dd796e8c381b5
-doccontainersize 456228
-doccontainerchecksum 5c1c29d0008c800bd967445ec3efbe2e8c1ee8d39d4373173f88c75fd3e8454409302308a08be84c69dda9c679ac25c6a411416c247fd44cd9cb23fee6b80f7c
+containerchecksum 281d6a9c39f31799c76f078aeb06161878f856657c28cf82303e356878220eb19078dba9130ffe9bd396f38c3979db0e33750714a3ab85be74250b45cf11ccad
+doccontainersize 456236
+doccontainerchecksum 05c72fc72bea82777cd4d961fd3454dafbfcd1fd28cba9c8cb6c5654770d9b1596e3657ef511980bf5213e63b220118b6f818358098bf092eaf2948f90cf2606
docfiles size=116
RELOC/doc/latex/verse/README details="Readme"
RELOC/doc/latex/verse/verse.pdf details="Package documentation"
-srccontainersize 15512
-srccontainerchecksum ce95d8664bac0580b761c503497d675763f8efb8e5ec066ce392f9d8e7cee44fb4071a1d2dbca394afdd318aa347ab9c229f120aaa65452f8d0f19069004e766
+srccontainersize 15516
+srccontainerchecksum 86e6ef78e53a5e273dc1798d6c1c3479d2723dbfd46e4ef0adb766134280ec18cc7e97440bb21234ea7ba9708c6ce6e7edb617f5aa24b96ad38d787fe2185b9f
srcfiles size=16
RELOC/source/latex/verse/verse.dtx
RELOC/source/latex/verse/verse.ins
@@ -357808,11 +358431,11 @@ binfiles arch=aarch64-linux size=5
name vlna.amd64-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of vlna
-containersize 9252
-containerchecksum f63700bc3b5c8b271518998a1ce2b2e763f630eca75d5e9f2aaefda91f9ba6de9d8111fbaeddc9641b92850a01fa998ec49236d9672bcc70b89d7c10cfb30a64
-binfiles arch=amd64-freebsd size=7
+containersize 6540
+containerchecksum fa49035f53df62f1568de290d937e0a2bbd32d136ab3c6ddded477f2085adfd066a8407c46256c154f7683f77f43948aac068f8365328f0d223c60beaac9e3f6
+binfiles arch=amd64-freebsd size=4
bin/amd64-freebsd/vlna
name vlna.amd64-netbsd
@@ -357826,28 +358449,28 @@ binfiles arch=amd64-netbsd size=5
name vlna.armhf-linux
category TLCore
-revision 63092
+revision 70489
shortdesc armhf-linux files of vlna
-containersize 5552
-containerchecksum cde7675da231ab5d98ac37f0589270cccaebe21c2301478cacb6619f405c54bf6dfe0ef3a7a1be6c7945cd3d5026539a81922f4e480663d26b2491947b0784ed
+containersize 5556
+containerchecksum 3da62c2dadcb182a401c1841b8a2e33d0d99e3e3419a9d5a2037474983abbc2a31766ac949cff43c07bbcb179b10e0f7746869bfc85553364af00e5f72840b8c
binfiles arch=armhf-linux size=4
bin/armhf-linux/vlna
name vlna.i386-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc i386-freebsd files of vlna
-containersize 7304
-containerchecksum 493e587848774fd6a552df89995e604a2d2445efad28a121d0fb0ad550fe03048487b88131250ad34dde6b4c32d215b3e0dbba9da8e701a3278acfe7da58ee4d
-binfiles arch=i386-freebsd size=5
+containersize 6536
+containerchecksum 921008cacffba698fefc6d0b783ee61165cf344cce17b7db0367a85099f7b78a98ab87e05f183b2a9a1c56c01a60abfd39ebeaf5fe9dcbfc5ecaeb163307c311
+binfiles arch=i386-freebsd size=4
bin/i386-freebsd/vlna
name vlna.i386-linux
category TLCore
-revision 62210
+revision 69782
shortdesc i386-linux files of vlna
containersize 6196
-containerchecksum 97b6d3257a9f43a7ee806942b3d6bfc15971ecbd2bfcce5c88f89652b42cb8b6ecde29aa996eeaa538140023e5d87089b5da1e6f32eb216a6cd10d8a46e521e5
+containerchecksum d90675e9af287b00e27b602a26c0e5558cac0b3b7ebc1d6010c3fc69f1f5de2adb1d98974b65c0caa5dc7632eb742dcf2b23e15835d151e9aa4e58e5548c87ac
binfiles arch=i386-linux size=4
bin/i386-linux/vlna
@@ -357862,37 +358485,37 @@ binfiles arch=i386-netbsd size=4
name vlna.i386-solaris
category TLCore
-revision 46829
+revision 69782
shortdesc i386-solaris files of vlna
-containersize 6812
-containerchecksum ec7642cc4b6906d84d83d947cccaf976358c78a10c2b38ec82c1bcd94e6cf7355c725bc04be65cf8bdb80dd1d3244b8e32791010a0cbacd408eac5cf5e4951f8
+containersize 6952
+containerchecksum 0233ac67f4bbea7c901a001b4ee15beb17a4b804247fe8cbdad85fa175449d025b886da2c87e1d39c083332de83db1a005bb08fd17a6c2c516f75e567635769d
binfiles arch=i386-solaris size=4
bin/i386-solaris/vlna
name vlna.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of vlna
-containersize 21776
-containerchecksum 08bb71dbe0f0d103834a4e8272327640a7920b7f90f8f3be6830931d429318e9eb5e6f9d73da0b9b050cee97034166156de0955dd8ad25385af0854cd3eb01ad
+containersize 21780
+containerchecksum 21a5e97865dc3e1ae8da757b48f12a6f6e389f0ca504dd277331cb0297b3b157214c7944183c0d3bf35f7d0215cf9b6158b527f8adbdf1437c27664e6c87aeda
binfiles arch=universal-darwin size=38
bin/universal-darwin/vlna
name vlna.windows
category TLCore
-revision 65891
+revision 69788
shortdesc windows files of vlna
-containersize 8676
-containerchecksum 5a1d848586697784c3197d70dc9db190e8c62a67939b2602c2aab0ac3212684ec9c835146b80e73821bed2b070d7b85261dc0238d195fc0dd95e6bd0f03d5f6a
+containersize 8688
+containerchecksum 73e76dcdf25ce0ff9fbdfd249d15f3a10ddb94523a0f6d410f4e01d79a3f47475afd0de1e8b55ba5c497668a8e0cf32089c64eac104a5ea4df9b019e956c2e67
binfiles arch=windows size=6
bin/windows/vlna.exe
name vlna.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of vlna
-containersize 6988
-containerchecksum c09bc257ca37258de47885f9d3631a5d3f3b6ffd892faa3fbed5f477162b842ed35fc5187140ac81b7c245415fba88639df149cfb05a80e1d7294fbae50cd3ca
+containersize 6940
+containerchecksum cf6019d4ed23c0855f20316e2117b73bb541a8e091645f5bb2a267ea1de1b14f87c68db73fe4c75a52715540e5da908cbff2a28a8e91f40f63c1b0ee57ebc24c
binfiles arch=x86_64-cygwin size=5
bin/x86_64-cygwin/vlna.exe
@@ -357907,10 +358530,10 @@ binfiles arch=x86_64-darwinlegacy size=6
name vlna.x86_64-linux
category TLCore
-revision 62187
+revision 69782
shortdesc x86_64-linux files of vlna
-containersize 6520
-containerchecksum 6ebf405ddca31e22e278ad962d819aad4da62a0e0a67a4ced23ef7015e23623a2fed5accb8f353a52d7166de19f5e5fcf3b87dad03b1bc840ec46b88fdeec2ab
+containersize 6512
+containerchecksum 2732d3f8056a00ce74b69eb1b0217ff641ac37f506c5f548f8b94cc56e3d6ff6d78d4d0cc8d2a7ab4687b72d2676b70fcdf879ccd37526dd1e95c32075ea18a4
binfiles arch=x86_64-linux size=5
bin/x86_64-linux/vlna
@@ -357925,11 +358548,11 @@ binfiles arch=x86_64-linuxmusl size=5
name vlna.x86_64-solaris
category TLCore
-revision 46829
+revision 69782
shortdesc x86_64-solaris files of vlna
-containersize 7636
-containerchecksum 06415a3166b1c80adf49daa34264aca956259908f0d0a5806244d8b8e8eb88d440a2fa7de3b86ee71b292c7059d3446c643286fbd00c7a97454715c840e702e5
-binfiles arch=x86_64-solaris size=5
+containersize 8108
+containerchecksum 90e88fc00b4ca25d0b862d6253833db6840fc35a8604f064c9b2506b5104ad604fac81fa13d6665adff3140aca23ec5a5e31eb1c4cf1f830b7b1237bd0779282
+binfiles arch=x86_64-solaris size=6
bin/x86_64-solaris/vlna
name vmargin
@@ -360745,7 +361368,7 @@ catalogue-version 2.4
name web
category TLCore
-revision 66186
+revision 70015
shortdesc The original literate programming system
longdesc The system processes 'web' files in two ways: firstly to
longdesc rearrange them to produce compilable code (using the program
@@ -360753,10 +361376,10 @@ longdesc tangle), and secondly to produce a TeX source (using the
longdesc program weave) that may be typeset for comfortable reading.
depend kpathsea
depend web.ARCH
-containersize 500
-containerchecksum cc8b2b6525ef1ee49162dc157e8d735225f5fc3bee54e56ac01ad47f85f639e4c43b4409e949d68804e650e243da0a8a6d098ca7c37587f14c810112cc82abee
-doccontainersize 42388
-doccontainerchecksum ed04fce861ae2adda602a2a50d560cc9a5863ab1668dd9512baa96b6c37acd8334e4800bc4ca853c0b1f58bd3a643abc82a96f31de9d4980806ad0572ea2a92a
+containersize 496
+containerchecksum bca1ff3c00944612152088ec7f8b012e41b81877a0a30e9739d22e0f81ad69d845eeaa233c8d164f91d2fab860ebcbd1e6f94d504ffa0aab546a113cc8eb484b
+doccontainersize 43068
+doccontainerchecksum daac41e57921cf884192998e91b5e3096123f617513c09c17332fbb69a1bc222ce1d624a03d7528e0625ee5c35f17a736d25c8bbc63fc62dd7efae41b150046e
docfiles size=16
texmf-dist/doc/man/man1/tangle.1
texmf-dist/doc/man/man1/tangle.man1.pdf
@@ -360769,151 +361392,151 @@ catalogue-version 4.5
name web.aarch64-linux
category TLCore
-revision 65927
+revision 70577
shortdesc aarch64-linux files of web
-containersize 77760
-containerchecksum 2ffb3b59cefe1de9597fc12ce6dcf641f0532c066e406ee0181dfb3927c801ebf41fac10c481b529a263dc3f960a60ad7bc3a6a32c3738bb2d22737f864397f8
-binfiles arch=aarch64-linux size=66
+containersize 78144
+containerchecksum 3452f26a42381411459a268b15b07fc5a471343961c0b70d39fa7649ffbcfa1cf1f4662d417c6d53dbce17607ea011e3380436b6016cb56c99cc8dd8270af9fe
+binfiles arch=aarch64-linux size=67
bin/aarch64-linux/tangle
bin/aarch64-linux/weave
name web.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of web
-containersize 87260
-containerchecksum 13fb9804610a891060dd7a0e779018132f612f63c34e571379fa473eb96dc76cc72920d17a40aaf89d4795e31c86876116fc915a24f4716ec76b76e5f9acaac9
-binfiles arch=amd64-freebsd size=72
+containersize 79268
+containerchecksum a70d2327a04f0147f5da61604f87c12268bdbecba94ff061e30386dbdd3c9bde230a412169f2d83ae905a8d549dae117dbf669f5934c6fbcdfd7cbdf7c370894
+binfiles arch=amd64-freebsd size=81
bin/amd64-freebsd/tangle
bin/amd64-freebsd/weave
name web.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of web
-containersize 74748
-containerchecksum 171123c63c1271a0b10507d1fd93b027086ad4e710a53cd8fa9d842ed9afccf44a2149ea8679cbe6e28765455f85711e4e5dc4f2b63b98b7d34328446fc7195e
+containersize 75416
+containerchecksum b69639bb8dd7096276fc42e341f07627950dd16e540c9c6cd8ff1c06f687581400b9f31f22f5068a8842e673d993eddb3fb9ab6e62e444d99fc3ab10dde8939d
binfiles arch=amd64-netbsd size=78
bin/amd64-netbsd/tangle
bin/amd64-netbsd/weave
name web.armhf-linux
category TLCore
-revision 65877
+revision 70588
shortdesc armhf-linux files of web
-containersize 63420
-containerchecksum d038deb7275ef874dd77a4a717ed084f2f2df000e13bc1e153d294af97bb12d674467e7ad16322f6f6bb57d41adb0a006585dbbb624e268085051b4ac8f53e5e
-binfiles arch=armhf-linux size=53
+containersize 63844
+containerchecksum 5f7bdcbc901ee1ae8563b69e2f4257fe6120bb074ad123aaf31541b655e8f8d6052a7f0d296a58d2131693ffee40c89b9ddc678a35c63fa2a3ff38640214874c
+binfiles arch=armhf-linux size=54
bin/armhf-linux/tangle
bin/armhf-linux/weave
name web.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of web
-containersize 70752
-containerchecksum 5e21cd5aaa891618f16cd5b97a06b9e41b6ed702aebb25ee555ad27d9a42a695a5c4c0cfb5590494425039787162b64ee5cbfbc0ea60e75bac4c240e542236ad
-binfiles arch=i386-freebsd size=60
+containersize 79196
+containerchecksum 69e8d8e3b60f4686904ff113bece4a59e317119b9dbac3ddc404f809638970e5005bc0acde9ca2cd08e49c23470c14edb94499b5b3f7ed8a34ed814d630a0c4e
+binfiles arch=i386-freebsd size=81
bin/i386-freebsd/tangle
bin/i386-freebsd/weave
name web.i386-linux
category TLCore
-revision 65877
+revision 70571
shortdesc i386-linux files of web
-containersize 76836
-containerchecksum f8d4b2561ba2c7719bee44df4e3189eb424562384969248a45e84c13bcf767b9d99ec1bb56802e29a3d1372ffdb61f422fdabd8ce8cee9330d46434dbedbacc5
-binfiles arch=i386-linux size=67
+containersize 77536
+containerchecksum 3db3cbd825500dab17efa8c09b337ea19238d604b75f919b6d7340d9e8a13df122250127f2146a01ac57aec28feeb2cd74e30e53f5762599543c91a90d766c8f
+binfiles arch=i386-linux size=68
bin/i386-linux/tangle
bin/i386-linux/weave
name web.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of web
-containersize 60684
-containerchecksum 03ce0f365751dfd758a5a84f0d30af80fd6543fdf3415c414711ffdf5c537cccf93cc51dcc1b048914666a0b1f9ec4c1c757c3426974bf514cc3073e198d972d
+containersize 61052
+containerchecksum 8ab1d7cbf5d97aad11199d591f7070036758937d4394f98a667c12b412d7ac402877f4a4ac6f5da2eb55eaf3a806044b8a90a17fe047b2017bb61581cdbcdb63
binfiles arch=i386-netbsd size=71
bin/i386-netbsd/tangle
bin/i386-netbsd/weave
name web.i386-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc i386-solaris files of web
-containersize 76224
-containerchecksum ef36e6e7197c1be83c493654d3d3a2f28e9f442ba669eacd06517945c64d9a030f588a243fe9133e0d02838a0a6d9d6f8c98dfe62dc8999e35d1361b33d14dfc
-binfiles arch=i386-solaris size=60
+containersize 78332
+containerchecksum d979531dd49741e56b7070bf21448b24c69447e288675ae3358f1d6b2018a99a17b7a7985c3490d3c14f1bb19feafd63da3f5268f1bb1eed88be6c67dc5fbcfd
+binfiles arch=i386-solaris size=63
bin/i386-solaris/tangle
bin/i386-solaris/weave
name web.universal-darwin
category TLCore
-revision 65895
+revision 70274
shortdesc universal-darwin files of web
-containersize 162420
-containerchecksum 379027f9a1d8f73b794d9367980af5420815fcc4cbd560665de57fda2ba1308a34487ed911a6d8f7fb538473b6a084b9af75163f6cecf13a3af960c27705458c
+containersize 164068
+containerchecksum 430550e34657145b2bc6b3d2943adaea2b0bad7e75aa1331409b71675066e4bd2cc999843e4dc0d90d1e665237b8787aa522f0ed1585a306d73459e363b9661b
binfiles arch=universal-darwin size=175
bin/universal-darwin/tangle
bin/universal-darwin/weave
name web.windows
category TLCore
-revision 65891
+revision 70576
shortdesc windows files of web
-containersize 47000
-containerchecksum 44ec98ebc7205ec9fb43c58a46b5d13b53de6c837dd408e3817140498acaf52d1c7cfad25cfbff76d04a84cc4c2177290ecf0818848bec6619efc4a9c8280cd1
+containersize 47084
+containerchecksum 410b7f56b6c2205bcb84a3bce84d2c0d31cfdc833d26317fdf90a67c110bd65e94d77286479636e33d63391adc977ba4bdc29e66c104e127699bc5a44c9acca1
binfiles arch=windows size=30
bin/windows/tangle.exe
bin/windows/weave.exe
name web.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of web
-containersize 45204
-containerchecksum c6cd8f04e589b35a9a7ced5cca2f3debe2ed01d9448e4f5ade5ab1141486c7b92d22efe51a8fd5253e7a8a7a8c92a800198e02677bbc47c52bee60ccca2ded50
-binfiles arch=x86_64-cygwin size=28
+containersize 45280
+containerchecksum 9eec3494bd47bc50ced93967ed7c55e6866049310c40522bdd9ba71d34399d2423edb106fa22e0553e5d2a2105cda7b01b2f1b8d782aa93602007ef0cac08147
+binfiles arch=x86_64-cygwin size=27
bin/x86_64-cygwin/tangle.exe
bin/x86_64-cygwin/weave.exe
name web.x86_64-darwinlegacy
category TLCore
-revision 65877
+revision 70380
shortdesc x86_64-darwinlegacy files of web
-containersize 74832
-containerchecksum befb71119ebb12a590aa75bf325568ed59d1691c95afa8cb92a255dd172dcf336bf930e12e9351f8583751e53ca62e825564eea5c42f5a57969c1039d0324298
+containersize 75936
+containerchecksum 46224e615e3004f37066b4c435d180fe4055d750971a80b4f0a16dd4b5cd6bbf1ee7eec586c66f5907216f6975f3bb05238d2a3a72c169148dab1e8b8fd6d278
binfiles arch=x86_64-darwinlegacy size=60
bin/x86_64-darwinlegacy/tangle
bin/x86_64-darwinlegacy/weave
name web.x86_64-linux
category TLCore
-revision 65877
+revision 70571
shortdesc x86_64-linux files of web
-containersize 79076
-containerchecksum d47150274f088a2774bf6289c22df0970968fa4e20b1e406aa5185bdce816e9470cc82ae5953ccac35d570c7a0bd93153b6209b2999b1f3c9a57c57434019c7e
+containersize 79044
+containerchecksum 4048ceaa3db0fd4cc1ff95430192663418b5025bb67bd16a1e58ba46aa502ac9496e9d4ff0c886afa9f6924e53ba1aabbc907cfcff49a144708231d578b1ff85
binfiles arch=x86_64-linux size=63
bin/x86_64-linux/tangle
bin/x86_64-linux/weave
name web.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of web
-containersize 85496
-containerchecksum ec9a6b6cdbeba2a3a32dc38486b23b6fff8b279ab0e107b2e2261bf3ac45bda73f72a276c3d275d3f8355a3814030c2f9d6a2ed245da1221f8199cf4990e7c55
-binfiles arch=x86_64-linuxmusl size=65
+containersize 86348
+containerchecksum 89e6b3ceba1185b24c9fd7e7847e296cc19fdaa36f0df5bffac7a872f00391f18e90338f94065a6430fc7a97c02f70af3181750e870ab33f2c0bc839adc773c0
+binfiles arch=x86_64-linuxmusl size=66
bin/x86_64-linuxmusl/tangle
bin/x86_64-linuxmusl/weave
name web.x86_64-solaris
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-solaris files of web
-containersize 87104
-containerchecksum 33771874d48b48c84594dc582d77439a40f35f000531f167efccb41627df462955ba0b96e8b33170f68c10e68d7238428901c3700fee4de9ed79386f570e1879
-binfiles arch=x86_64-solaris size=70
+containersize 89964
+containerchecksum 2642cfcb5fbe16bfd8edf54fe9888744176f14332d71436fdb6d427ff6bf8f28d148fa470b5956a2b60e58d98800714cc4b227cff6d6507f78e3cfd8a6f43940
+binfiles arch=x86_64-solaris size=73
bin/x86_64-solaris/tangle
bin/x86_64-solaris/weave
@@ -361235,20 +361858,20 @@ binfiles arch=x86_64-solaris size=1
name weiqi
category Package
-revision 70179
+revision 70178
shortdesc Use LaTeX3 to typeset Weiqi (Go)
relocated 1
longdesc This package uses LaTeX3 to typeset Weiqi (Go). Shi Yong LaTeX3
longdesc Chuang Jian Yi Ge Pai Ban Wei Qi Qi Pu De Hong Bao .
-containersize 6556
-containerchecksum 7202c5b907439d47868e940d1cded455a15d1de82420e8846f93c81ea3b723eb2f6d455bfe8d1deddca7e856b5d9243418b546abbf36d0883431675866cdfbe1
-doccontainersize 335348
-doccontainerchecksum ed2f33194866228569800a1612bf73b5aa2b8ed8b1c859b3a9475ce6b2411b0a7a9ac4236b4b1372d8eeb5635f18b340592656ce5acc76664d620184a62fcc9e
+containersize 6560
+containerchecksum 7102186b0326dece11772847b9f3ae986c4ed7a078281533a0d5f65ed9342555efa554090fafacfba6e8d1684b1d3b16faea0a304cdb1dd12341ec1f88cfd126
+doccontainersize 335340
+doccontainerchecksum ae11588fc06bd872c512a9176a6afa407b9ebc37afafc9eddb313fe39baa67f9d21cb3973b3e2526ecd28da9853a0a3c6005550e4e2cda4ab3a8f5752df9bd53
docfiles size=86
RELOC/doc/latex/weiqi/README.md details="Readme"
RELOC/doc/latex/weiqi/weiqi.pdf details="Package documentation" language="zh"
srccontainersize 14408
-srccontainerchecksum 8d0505d70518aeb70ced15c152389c08a5e4938a1cd82c623ce21ee83678bef53e8a8876fbee13a121b428f55df013ca44389a98529c6ade2909375f910c5b06
+srccontainerchecksum beed85e4e68574f0e9c6fa2c37b55d423eddbd31f81244174d9d063002a8dca7b97b46d1e2918a2d024c956fb260fcbe783b169e13ffd4ef7cd70b84ba9a6da2
srcfiles size=21
RELOC/source/latex/weiqi/weiqi.dtx
RELOC/source/latex/weiqi/weiqi.ins
@@ -361261,7 +361884,7 @@ catalogue-version 0.1
name wheelchart
category Package
-revision 70518
+revision 70505
shortdesc Diagrams with circular or other shapes using TikZ and LaTeX3
relocated 1
longdesc This package is based on the package TikZ and can be used to
@@ -361272,10 +361895,10 @@ longdesc several options to customize the diagrams. It is also possible
longdesc to specify a plot for the shape of the chart. Furthermore a
longdesc legend can be added and the table of contents can be displayed
longdesc as one of these diagrams.
-containersize 17424
-containerchecksum 9b54a717a73761b09007afeb18c6fd69f6af1b1dd22f206e556fd076a61e6ae03211d58be316ec6eb62909979e8d53f74c6cd7dddd11fac33917383f4de2b073
-doccontainersize 1172268
-doccontainerchecksum 23e759467608b69aa7b3a3376d4dc62ec82aa831cac2014ee76d5b73beb99d09a69401f61f1db02b617a741189fd34ea39b90c5c1b1f7f7f94d380ba38041a24
+containersize 17428
+containerchecksum 3c3ef32f9dcc3174c844ecce84e97441b30c142958a59868eba1d1d10d0ed3278e340d670c2005c2c2767d4568322e5db6ce29e9b945f37b06c35da91ca35587
+doccontainersize 1172288
+doccontainerchecksum 17abd5c31f5983ed63f6d23db8c8f37181b091094e56160a8d950a60cc6e5c62decb51951dff306407edc1bd2f1e87cbab496fa336d63969d56161530200839d
docfiles size=325
RELOC/doc/latex/wheelchart/README.md details="Readme"
RELOC/doc/latex/wheelchart/wheelchart.pdf details="Package documentation"
@@ -361440,7 +362063,7 @@ catalogue-topics biblatex
name wintools.windows
category TLCore
-revision 69295
+revision 70576
shortdesc utilities provided only for Windows
longdesc Common utilities, mainly from the w32tex distribution.
postaction filetype name="TL.PSViewer.view" cmd='"TEXDIR/bin/windows/psviewer.exe" "%1"'
@@ -361455,10 +362078,10 @@ postaction progid extension=.png filetype="TL.bitmap2eps.convert"
postaction progid extension=.ps filetype="TL.PSViewer.view"
postaction progid extension=.tif filetype="TL.bitmap2eps.convert"
postaction progid extension=.tiff filetype="TL.bitmap2eps.convert"
-containersize 5558316
-containerchecksum ccd0e3678f3db18cf31c011e2fc94f4c47e81327367700b09b49451635150f6b2127cae046f2f17745dd2c0dcd6ae706aedab34ed0809e24cbc0670f52d454f7
-doccontainersize 979592
-doccontainerchecksum 975079ad62e644baa89ffe577f79f0a0579771cadafe611b373ef8c5f4e509f42bea801d03757bc42a03b18cc0c9408183ad4a37bf91e3045fcb4666c1031623
+containersize 6556256
+containerchecksum d37a2fa2dab2fc0153344aa3918f96aee5cc4febb62ecc6e0c63a06d33050da37e1bbe804bad324bc5714c0d6c7ce7fde1b6e5c5d43f6ddf0827a1c6bcec0540
+doccontainersize 979600
+doccontainerchecksum 167f2ec3e550d9c18302d5c837bf55b682e96a27c2325bc5290e4fb8f16ee73b1eec17393c9572a3e7d90cda99745d97f1c9db3227c4a376b3b60153f8360a2c
docfiles size=331
texmf-dist/doc/support/bitmap2eps/bitmap2eps.README
texmf-dist/doc/support/psviewer/psviewer.README
@@ -361499,7 +362122,7 @@ runfiles size=4
texmf-dist/scripts/psviewer/psviewer.vbs
texmf-dist/scripts/tlaunch/tlaunchmode.pl
texmf-dist/web2c/tlaunch.ini
-binfiles arch=windows size=11223
+binfiles arch=windows size=11418
bin/windows/aftopl.exe
bin/windows/bitmap2eps.exe
bin/windows/bmeps.exe
@@ -361569,7 +362192,7 @@ catalogue-version 0.3.1
name witharrows
category Package
-revision 69996
+revision 69995
shortdesc "Aligned" math environments with arrows for comments
relocated 1
longdesc This package provides an environment WithArrows which is
@@ -361579,17 +362202,17 @@ longdesc the alignment. These arrows are usually used to give
longdesc explanations concerning the mathematical calculus presented.
longdesc The package requires the following other LaTeX packages: expl3,
longdesc footnote, l3keys2e, tikz, and xparse.
-containersize 16244
-containerchecksum 31e9cb805fa91b903d91a0090ceffe6cad323c3340bc16c268e6667dcb5fd99e05c95b87fcc6cb8500c187479973d5595fe510855a7c6b2b86db06e513ba5172
-doccontainersize 835396
-doccontainerchecksum 69c495a471e5fc2fb4da60b06360dae6dfa2c79d93fe176fe54485ba95f3c854fec8356f9939d5521360f9d461e9dac1a6290dc3ef29b8a82e52c0892e8fce14
+containersize 16252
+containerchecksum a1cc698a1b06684c3dbd221534e2ecaf3eb4a1486e361255d9d2a20739bf7713ab9a0a22dc5b589cfae7a1f811a9ec025a88784793f6bea9c6ffd6077c78e611
+doccontainersize 835404
+doccontainerchecksum 23e3ceb8d75fefb23dd4fa95800636420b16984ed5ecc9b0998bba54f3ba9eed9b2f5cef544e0d6f155806295d4dea20f38fffc6d95ee3ae420de1dfb8feaa0e
docfiles size=231
RELOC/doc/generic/witharrows/README.md details="Readme"
RELOC/doc/generic/witharrows/witharrows-french.pdf details="Package documentation (French)" language="fr"
RELOC/doc/generic/witharrows/witharrows-french.tex
RELOC/doc/generic/witharrows/witharrows.pdf details="Package documentation (English)"
-srccontainersize 54392
-srccontainerchecksum bb5144cd95bb78dbdda91bf068597de2a8d409a2f0ba8f48c861018c52b897a7b5b7a095cba1b5e301822f75b2808dff0376ba36591cd8964f2171553d5e8dce
+srccontainersize 54348
+srccontainerchecksum d4b5f3848769908e692e29a85f39e45eff4a83c71a403aead26070b25a4c6c87fe188896b6927adf6db52008e99e4159e69c352804fe81eb7a8b8b20eab85d6c
srcfiles size=72
RELOC/source/generic/witharrows/witharrows.dtx
RELOC/source/generic/witharrows/witharrows.ins
@@ -364216,17 +364839,17 @@ catalogue-version 1.25
name xcharter-math
category Package
-revision 70333
+revision 70298
shortdesc XCharter-based OpenType Math font for LuaTeX and XeTeX
relocated 1
longdesc This package provides an Unicode Math font XCharter-Math.otf
longdesc meant to be used together with XCharter Opentype Text fonts
longdesc (extension of Bitstream Charter) in LuaLaTeX or XeLaTeX
longdesc documents.
-containersize 262384
-containerchecksum 1b9da3251b6f5abfd2053114edb174638046603c6b2f46a8baf26c20050f3f614b4a9e01ef92b458ca4b97ca90bef7c72bb146754184d311553bb0a429e29873
-doccontainersize 1982532
-doccontainerchecksum 291b67678718b0facbdd38b95d24e75895a74d7bb6cde5c320598fecfac2ce0ebea442d0d3a62c63fff9ee38579042525297518c9373d90edcbdf425605dd119
+containersize 261976
+containerchecksum cdec282c46f14084a4d242f5064aeeb83cbf9cd8400f3128f355d278ee6db1e844e993a2ceba231e4de2f0b083dac74277fdfd2c37c921ad727be002a8155a51
+doccontainersize 1982536
+doccontainerchecksum 54bc6dee35538dfb45fae9df3711876d13d159140169ea635394c52d743607fbf88c9b44332a4a1cfa89debb5d3753ded608a1d34788f26e3ce57eb4f349f32c
docfiles size=519
RELOC/doc/fonts/xcharter-math/README.md details="Readme"
RELOC/doc/fonts/xcharter-math/XCharter-Math.ltx
@@ -365070,131 +365693,131 @@ catalogue-topics previewer
name xdvi.aarch64-linux
category TLCore
-revision 65927
+revision 70276
shortdesc aarch64-linux files of xdvi
-containersize 532824
-containerchecksum b7825406c0e6507ebe2b0b28d563173fbd967952a2e527a53edf164b9d0829f8aeddd44c5a44eb1ab5580032b43a76e7e576b16305b273c49eb39a76ec59da20
+containersize 534084
+containerchecksum 85e49cd613066203ed277b7ac5fc5ad7d4525b49bad423602d89e0a4f1608bf2241f7e346dfbf16a693beb793a10f797f9a96cd6f0420a34d17e1a8c1672dae4
binfiles arch=aarch64-linux size=353
bin/aarch64-linux/xdvi
bin/aarch64-linux/xdvi-xaw
name xdvi.amd64-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc amd64-freebsd files of xdvi
-containersize 575132
-containerchecksum 5472d67fb100cac59f50964dc34cd3ef16904cbfd53170ef2c9849bb0f33782fbab170a2cf097ba9969fee764b86c893810b80a9f5c5086b8f1fd917a3a84a25
-binfiles arch=amd64-freebsd size=347
+containersize 504516
+containerchecksum 3e739a0c95b5056bae446eafdcc192db58f095ef833065d74a257174ead26a73424fcd826470e2dfc6b43a96c7de32cdafac7fdf87cccf89a221aaa4e72baf2f
+binfiles arch=amd64-freebsd size=427
bin/amd64-freebsd/xdvi
bin/amd64-freebsd/xdvi-xaw
name xdvi.amd64-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc amd64-netbsd files of xdvi
-containersize 494476
-containerchecksum 3c93181858f1709999f4a187230cf4bb478c18f33471b25b3809d8ed77a3551b8abed1b92e94df696f0bf08a9eebc0a54a7943a564f06848f5c53ebc5c958d49
-binfiles arch=amd64-netbsd size=422
+containersize 496128
+containerchecksum 5ef22263551706310a9de73ad2e52bd42e4d2a576011354ca5b18992c9ab8867343ecc6a5849bc34b39c9e69df424c77953686215ab50cbd15a37f258ace6d3a
+binfiles arch=amd64-netbsd size=424
bin/amd64-netbsd/xdvi
bin/amd64-netbsd/xdvi-xaw
name xdvi.armhf-linux
category TLCore
-revision 65877
+revision 70489
shortdesc armhf-linux files of xdvi
-containersize 453212
-containerchecksum 6d5ea30eee136a11a65ed17429488b4e4d88d05e0ade820237e8e98fbde71bae51198098d95c0e73f640607439dfdf0230654d85af239ba63bf55eaa16f66519
-binfiles arch=armhf-linux size=270
+containersize 453824
+containerchecksum 546346a69a26a898a6a65986569a191979a3c197519aec10928cdb34e2cea0b7111c9984d076a8eedd33443c7147c9cb9dd33eef4b80bb096a20805a1c0ca12e
+binfiles arch=armhf-linux size=271
bin/armhf-linux/xdvi
bin/armhf-linux/xdvi-xaw
name xdvi.i386-freebsd
category TLCore
-revision 65877
+revision 70276
shortdesc i386-freebsd files of xdvi
-containersize 518344
-containerchecksum bc8770ef31cf113f026929cf6e4f4b2d941dae63c5a5082cbba4ab1fcee8b9129755a93893b4d7c11d26b99a7c318fa653d5bf3b13d688ed1231ad848d942d32
-binfiles arch=i386-freebsd size=304
+containersize 504696
+containerchecksum 94761b9419d2e67eab2666a6cd13dbe3028d6eb5e2c47a1331cd5586f568cb9ef25b2c6aeb02bedfe886658ea8f90025db0dbe495ae7be8e9437f855b7630208
+binfiles arch=i386-freebsd size=427
bin/i386-freebsd/xdvi
bin/i386-freebsd/xdvi-xaw
name xdvi.i386-linux
category TLCore
-revision 65877
+revision 70276
shortdesc i386-linux files of xdvi
-containersize 562836
-containerchecksum 630967e0672708daeb463135ae071dc259f3bcc6f1168d6aa62cd1f75a81da53cc3c8a0f680efe279a773c729583cb0b97ec90d3843bdcfc494dcc58cfc9020d
-binfiles arch=i386-linux size=346
+containersize 563876
+containerchecksum 5268ad63c4ee2b49db5019fc01f28c1e191fd58321db78d59d926f80e9cbfc21651a8be4bfdd4bf98906256fb21bec02c0d18cc4cdd3f5538af4a3defa9d74c2
+binfiles arch=i386-linux size=347
bin/i386-linux/xdvi
bin/i386-linux/xdvi-xaw
name xdvi.i386-netbsd
category TLCore
-revision 65923
+revision 70286
shortdesc i386-netbsd files of xdvi
-containersize 450704
-containerchecksum f9c213803629170f04e8c2d16a855848c9ce26d5347a878181be791039abcf1f0498cc35a4e39a5790699043bc9de1a085239b694eeb2d619ae329cc31862cde
-binfiles arch=i386-netbsd size=374
+containersize 452452
+containerchecksum 2d415f4f8c303b952318d34279a03c84f7b6ac2300b437be175a31d2c9b9baa41d355e0bdc60ab039ffebccde6aabf851ac9c21192e894384912f4092387f548
+binfiles arch=i386-netbsd size=375
bin/i386-netbsd/xdvi
bin/i386-netbsd/xdvi-xaw
name xdvi.i386-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc i386-solaris files of xdvi
-containersize 502840
-containerchecksum ffab786e84fda900016a20b3703f5396eafdc74c5fb86158da3ca86fdefdffc62958d5900c4064823f2c52fe1c896b875b77a602510e896ee17a6fb7b0eccbca
-binfiles arch=i386-solaris size=283
+containersize 520844
+containerchecksum 792079e971118a413653c81ea5c359a38da8f82151f0ee160161e15f179dcadc485335dddd7a164ead5f9ad73e2b796dec88b1aa52acde3767130640cbd78756
+binfiles arch=i386-solaris size=297
bin/i386-solaris/xdvi
bin/i386-solaris/xdvi-xaw
name xdvi.universal-darwin
category TLCore
-revision 65895
+revision 70520
shortdesc universal-darwin files of xdvi
-containersize 995368
-containerchecksum 0bd6bd5801f3152448a22401259aa278e05f41d610fc24759b25df6152d6bb58eda0b75d0fe8e31b58f2709e99034ee93c10958d920d519eb0dd14ef33f0d62e
+containersize 998320
+containerchecksum 2e3bba1c88d3017b18907b069a57c08bda19604d6826fdf73ce917f330f01455b66b91f04d062811b39da808d6bd054e79712c97a17bd5a272f4b6b1a8ceead7
binfiles arch=universal-darwin size=660
bin/universal-darwin/xdvi
bin/universal-darwin/xdvi-xaw
name xdvi.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of xdvi
-containersize 522384
-containerchecksum c677e1322f8a4ea494ab381d04121cfa62ffd730703715f51c781782017c8979d1c2c7655e54e5ae43d1d58365663042e1273d61ca7cf3560a912b7c580f6074
-binfiles arch=x86_64-cygwin size=310
+containersize 522996
+containerchecksum 88072846663283f316800209863b0b14b41360b851f282d4e59862d1269f740a115e98e506ce4350806d8c973d46dd8d8720f1cbdfe9c609f4576916ef056478
+binfiles arch=x86_64-cygwin size=311
bin/x86_64-cygwin/xdvi
bin/x86_64-cygwin/xdvi-xaw.exe
name xdvi.x86_64-linux
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linux files of xdvi
-containersize 554580
-containerchecksum 1b9d05ecacb0197b85d779554a592892f05a52dbd7c2585425ac1ce8852cff51bdafbb5bd4b12ed31585c9928a3a8e84efd59601c82dc05d4d184915bb6137f8
-binfiles arch=x86_64-linux size=327
+containersize 555748
+containerchecksum 08221a58787e6ac09951939a15ea86122b73653d62855cc17d1775693f3815452bc533e31d3cbec487ae3a53a6b40a398ac263e88eaba22575975d0db468cf60
+binfiles arch=x86_64-linux size=329
bin/x86_64-linux/xdvi
bin/x86_64-linux/xdvi-xaw
name xdvi.x86_64-linuxmusl
category TLCore
-revision 65877
+revision 70276
shortdesc x86_64-linuxmusl files of xdvi
-containersize 582168
-containerchecksum a182ad0377a91b1ae8971c5a36eb51a6e1dbc929acb291f296d392c7b11a10189110674d6137bee1e67cdafb0e1160cdf921ac38dece45563bb39dc84eba15c8
-binfiles arch=x86_64-linuxmusl size=363
+containersize 583764
+containerchecksum 380ba8d1109b4edb7df13871e8c037516975c7f7869e58981302321955623c3ce96c7ecfc9452a4e98c41ccdcc8f322b6299a7ee7c46169150cb7cb79eaa715b
+binfiles arch=x86_64-linuxmusl size=364
bin/x86_64-linuxmusl/xdvi
bin/x86_64-linuxmusl/xdvi-xaw
name xdvi.x86_64-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of xdvi
-containersize 559916
-containerchecksum adcdff5a8f88e57bdfa1349e237af5224bf3d8b64a3f854103ffb73ffd040b92e43ce7768ad9b9387f39a1f6c08698684bbcd27b22bc53cc3a14e46c47de7960
-binfiles arch=x86_64-solaris size=333
+containersize 578860
+containerchecksum baf3bce0ace4981eb6aecf47a376ef1f7f39b5953e99283f10365bd12bc7c1bee071323eabba84adb7abebd9ef14f5e54eca50a28bd5191ba1002e4c457b6627
+binfiles arch=x86_64-solaris size=351
bin/x86_64-solaris/xdvi
bin/x86_64-solaris/xdvi-xaw
@@ -365491,17 +366114,13 @@ catalogue-version 0.3
name xelatex-dev
category TLCore
-revision 62145
-depend atbegshi
-depend atveryend
+revision 70002
depend babel
depend cm
-depend everyshi
depend firstaid
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-base-dev
depend latex-firstaid-dev
@@ -365511,9 +366130,9 @@ depend tex-ini-files
depend unicode-data
depend xelatex-dev.ARCH
depend xetex
-execute AddFormat name=xelatex-dev engine=xetex patterns=language.dat options="-etex xelatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,lm
-containersize 484
-containerchecksum 088c917758f727ba08b8571d302c93f0b14fc15ca6dcb0ef7a89df4ba144c508d8d42265cc6b1915707329b64aa1d1030ed0b5513987fbd4437d0a58a232b5db
+execute AddFormat name=xelatex-dev engine=xetex patterns=language.dat options="-etex xelatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,latex-base-dev,latex-firstaid-dev,lm
+containersize 448
+containerchecksum e5ad955b5e752aaa0ea4285ec1f49ad6e36df8b03bd3693be0080b31c2e5e2d7d4122eef0e8ac6e51956ab7508c546591eae1f5c5d15a56d6dc4f34f3a359ee6
name xelatex-dev.aarch64-linux
category TLCore
@@ -365922,7 +366541,7 @@ catalogue-version 2.1
name xetex
category TLCore
-revision 66203
+revision 70088
shortdesc An extended variant of TeX for use with Unicode sources
longdesc XeTeX is a TeX typesetting engine using Unicode and supporting
longdesc modern font technologies such as OpenType, TrueType or Apple
@@ -365937,18 +366556,14 @@ longdesc ordinarily processed by a tightly bound processor (called
longdesc xdvipdfmx), that produces PDF. XeTeX is released as part of TeX
longdesc Live; documentation has arisen separately. Source code is
longdesc available from ctan:/systems/texlive/Source/.
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend dvipdfmx
depend etex
-depend everyshi
depend firstaid
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-fonts
depend lm
@@ -365957,13 +366572,13 @@ depend tex-ini-files
depend unicode-data
depend xetex.ARCH
depend xetexconfig
-execute AddFormat name=xelatex engine=xetex patterns=language.dat options="-etex xelatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,lm
+execute AddFormat name=xelatex engine=xetex patterns=language.dat options="-etex xelatex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,lm
execute AddFormat name=xetex engine=xetex patterns=language.def options="-etex xetex.ini" fmttriggers=cm,hyphen-base,tex-ini-files,unicode-data,etex,plain
postaction script file=tlpkg/tlpostcode/xetex.pl
-containersize 7784
-containerchecksum fddc7a48405d5ae56b09fab5f180372972fc7fdd10eb19ec8e2b0f6e1e3bc54d2f92512a6954238c21fbdd75425923dcdf115bf16fe35ab3a850363c41ac99e0
-doccontainersize 634692
-doccontainerchecksum 7fda9e0a2e7f4dcd6a1813cf8fe280f7193aa88a77cbc5891b892112950e5d5e7690328e267805c8b9a24dc735e7991065ee3664b1278fa334f83ddf06aee236
+containersize 8000
+containerchecksum cb63da3f556c80e4c84425eeb289a7a49279d9fe2ca86888d02befd22a6b8b8c481238ced7dcdc7e9503562154085d8dec9f12261412a54d430b7d94c8068d00
+doccontainersize 634636
+doccontainerchecksum f25babc4c885e9b58160dbd7e579725685808e5886ee11d32f5c85843d884c300f8a58f9f8d9865864c2fd594d06d5082215e7c468ec2c8aef6c1dda7a7368f7
docfiles size=184
texmf-dist/doc/man/man1/xelatex-unsafe.1
texmf-dist/doc/man/man1/xelatex-unsafe.man1.pdf
@@ -365977,7 +366592,7 @@ docfiles size=184
texmf-dist/doc/xetex/base/README
texmf-dist/doc/xetex/base/XeTeX-notes.pdf details="About XeTeX"
texmf-dist/doc/xetex/base/XeTeX-notes.tex
-runfiles size=8
+runfiles size=9
texmf-dist/fonts/misc/xetex/fontmapping/base/qx-unicode.map
texmf-dist/fonts/misc/xetex/fontmapping/base/qx-unicode.tec
texmf-dist/fonts/misc/xetex/fontmapping/base/tex-text.map
@@ -366114,11 +366729,11 @@ catalogue-version 0.1
name xetex.aarch64-linux
category TLCore
-revision 66237
+revision 70276
shortdesc aarch64-linux files of xetex
-containersize 7594128
-containerchecksum a87dabc3e1eec3150fdcbfdc0f88325b6336a8960cfbfd127d32d14c556b4ae691bcfbb1ef47e3b44f574786c1aa0fec3998e5ebc9ff358717742f8d9f3b0f59
-binfiles arch=aarch64-linux size=7340
+containersize 7660264
+containerchecksum 03268d1ec41aa380cc349c304bdd257d927f900077f38ea331012a9151e875a6aa7c5bc582fe44b2caa5e5670c527b3bc115c6d0066f2b7cc61895a5bf9232b7
+binfiles arch=aarch64-linux size=7259
bin/aarch64-linux/teckit_compile
bin/aarch64-linux/xelatex
bin/aarch64-linux/xelatex-unsafe
@@ -366127,11 +366742,11 @@ binfiles arch=aarch64-linux size=7340
name xetex.amd64-freebsd
category TLCore
-revision 66084
+revision 70276
shortdesc amd64-freebsd files of xetex
-containersize 7491840
-containerchecksum 78a54186cf36aea4292d9e4d6a56075ae7b100be77218cee5a1b93dd3ef029b5d4142bdb7c8b0776a4d81d46b8d10749620326fa84a88bfcae5bc6e7b90938c8
-binfiles arch=amd64-freebsd size=6731
+containersize 7721028
+containerchecksum b6a3d6ea059e5461c8ea3b34257e30cbef69c26d73a4ce472d8f15b971bac8227f1310f6e5abbdd8650fea0284e8904caf2e577e24c401c4f1627015f99f09bc
+binfiles arch=amd64-freebsd size=7791
bin/amd64-freebsd/teckit_compile
bin/amd64-freebsd/xelatex
bin/amd64-freebsd/xelatex-unsafe
@@ -366140,11 +366755,11 @@ binfiles arch=amd64-freebsd size=6731
name xetex.amd64-netbsd
category TLCore
-revision 66083
+revision 70286
shortdesc amd64-netbsd files of xetex
-containersize 7626116
-containerchecksum c81d660071a9f273f351ff477be3fd03a140fa0405e5363324d67dd2fc91c713f71bf200c5d2c9bbf941e74526971f8f0e9a7c500da9abdbec7b73e3ed249850
-binfiles arch=amd64-netbsd size=7858
+containersize 7704640
+containerchecksum a03dc827120ba314780905d0c550c8ad5219282dd7cbdb4bc9a9fc462719185f03d39f5f4e37968cb0b0d69f6763291243701842e4ccbcff6809d4c08458fb91
+binfiles arch=amd64-netbsd size=7826
bin/amd64-netbsd/teckit_compile
bin/amd64-netbsd/xelatex
bin/amd64-netbsd/xelatex-unsafe
@@ -366153,11 +366768,11 @@ binfiles arch=amd64-netbsd size=7858
name xetex.armhf-linux
category TLCore
-revision 66237
+revision 70489
shortdesc armhf-linux files of xetex
-containersize 7253540
-containerchecksum 477a2b2fd9278ddffe5b915d241f4bab5862c2a4f6037fb4f38f50841f942533d0cec0ea4ab720fd2a30ca6eb4fa712414006f0fedee24a7c321a5a179b76886
-binfiles arch=armhf-linux size=6759
+containersize 7324736
+containerchecksum f3d913f71affbfa8344c39388704cb26a6b1b76e9b2b6230c8403edb984851c66ed520fc5a5eaed3f6d1800548a01f7ba5ff8f7c3e5557711c16c45ed0d77636
+binfiles arch=armhf-linux size=6672
bin/armhf-linux/teckit_compile
bin/armhf-linux/xelatex
bin/armhf-linux/xelatex-unsafe
@@ -366166,11 +366781,11 @@ binfiles arch=armhf-linux size=6759
name xetex.i386-freebsd
category TLCore
-revision 66084
+revision 70276
shortdesc i386-freebsd files of xetex
-containersize 7302172
-containerchecksum 22e1482668151bb501f8b07a8973bd9ef953dd2e7245808275fb7a0177b9f431faece69ae232e5077273a2240432e0371b389974c124a1dc0acc92c62f37b47e
-binfiles arch=i386-freebsd size=6538
+containersize 7719236
+containerchecksum 5211f85244bd100e71268683dcc5b683889dba051b25dc7a7694c67b98fb3d07163e074ba0419e87d9722688fcde4833bf4775f5a15aaf2e62dda845638b7ff2
+binfiles arch=i386-freebsd size=7791
bin/i386-freebsd/teckit_compile
bin/i386-freebsd/xelatex
bin/i386-freebsd/xelatex-unsafe
@@ -366179,11 +366794,11 @@ binfiles arch=i386-freebsd size=6538
name xetex.i386-linux
category TLCore
-revision 66084
+revision 70276
shortdesc i386-linux files of xetex
-containersize 7781588
-containerchecksum a2756da62986697edc359bccce6b8bdac0bb0311adf24f3a066fbcb2e134ea82cef0f20b5f15541450601adc26a66a24e046e017a311cadf8286b56bc071e2a6
-binfiles arch=i386-linux size=7119
+containersize 7855100
+containerchecksum 2e02f0689c7997640fdcf735ac9ce2906903d3f272df14fac5c387d44b0bc107b6298127fd24d2509d47746f11565ce000dfaa939d5e1f825361a3e920ba4bf5
+binfiles arch=i386-linux size=7038
bin/i386-linux/teckit_compile
bin/i386-linux/xelatex
bin/i386-linux/xelatex-unsafe
@@ -366192,11 +366807,11 @@ binfiles arch=i386-linux size=7119
name xetex.i386-netbsd
category TLCore
-revision 66083
+revision 70286
shortdesc i386-netbsd files of xetex
-containersize 7517124
-containerchecksum 2cf52e5bd4f71d0bcc4198a8bd32ca15858ad3e94765a9b1fe2f0e1bbf2165a905e37a9d64cda67d7c1dc5bf491ff3dba9dbc77f7fe4c066368330e1be7a5c81
-binfiles arch=i386-netbsd size=7632
+containersize 7588820
+containerchecksum fca4fda97455ce8c6a5970ccbc31ebd4443a645254d24e39e88e9e0763e562aab385e655c166fa665ce61bb9028ad206d42e6e30777458fcfd80a9e325e1b5ea
+binfiles arch=i386-netbsd size=7601
bin/i386-netbsd/teckit_compile
bin/i386-netbsd/xelatex
bin/i386-netbsd/xelatex-unsafe
@@ -366205,11 +366820,11 @@ binfiles arch=i386-netbsd size=7632
name xetex.i386-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc i386-solaris files of xetex
-containersize 7830000
-containerchecksum a143c71d7718ead7e281c364255da82ebd9fc2ab5be96cd5b1ef3e10abd9eb28a32e3316e31e64ce222b05a67943527933a046fbcc17a9ac97434f726e8f37bb
-binfiles arch=i386-solaris size=7308
+containersize 7495168
+containerchecksum 3c42b624779a2752ec2915bcc71843d000a059e285a638061ecf337facc5c9fbe1978b859524744621220fcfe460165c5e3cea27db61e6e47ff6fb3344a1fa75
+binfiles arch=i386-solaris size=6623
bin/i386-solaris/teckit_compile
bin/i386-solaris/xelatex
bin/i386-solaris/xelatex-unsafe
@@ -366218,11 +366833,11 @@ binfiles arch=i386-solaris size=7308
name xetex.universal-darwin
category TLCore
-revision 66107
+revision 70274
shortdesc universal-darwin files of xetex
-containersize 14799216
-containerchecksum acf99a69811fe5a0ad3886cbf731db1deb5ae2e4c5941106d07eaea635431434d627aef83792da7f949330f366fb4e813d7571a76cf05277f55ceb5517b6b070
-binfiles arch=universal-darwin size=13453
+containersize 14883564
+containerchecksum db785250d3760f26ee6800d91f2c3cda02cf8274d772cd3595bc66cba44e292cb425ba738460be6f0bd1c02ca9aebf739f3bc9d1d75ae7e4d29b1ccc077018bf
+binfiles arch=universal-darwin size=13272
bin/universal-darwin/teckit_compile
bin/universal-darwin/xelatex
bin/universal-darwin/xelatex-unsafe
@@ -366231,11 +366846,11 @@ binfiles arch=universal-darwin size=13453
name xetex.windows
category TLCore
-revision 66043
+revision 70576
shortdesc windows files of xetex
-containersize 10401316
-containerchecksum a47e8978c77770b510a57f74c0f11fe146f3a8b5da2cfb6dec8cdd60ab79990943ac0fb2a978274286b35186bd9877c6386e77753dedc460c5805dd6e6604272
-binfiles arch=windows size=11519
+containersize 10532672
+containerchecksum a1fb5d1e7a042bec38f86767639f36299a526f7c8b6947eaeb1641c9f8f35266ea48ee11114d2b681004c4301fcabefca49b837e4f0c639152b5795a83e70dbe
+binfiles arch=windows size=11449
bin/windows/fc-cache.exe
bin/windows/fc-cat.exe
bin/windows/fc-list.exe
@@ -366244,7 +366859,7 @@ binfiles arch=windows size=11519
bin/windows/fc-query.exe
bin/windows/fc-scan.exe
bin/windows/fc-validate.exe
- bin/windows/icudt72.dll
+ bin/windows/icudt74.dll
bin/windows/teckit_compile.exe
bin/windows/xelatex-unsafe.bat
bin/windows/xelatex-unsafe.exe
@@ -366260,11 +366875,11 @@ binfiles arch=windows size=11519
name xetex.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of xetex
-containersize 7518740
-containerchecksum 0c2022e15348d590ffd7bff8120a6a51fc55e6be0f462e8478eadacf02a0a3fed09b443c50cd54e00ea8f1829d82e8d3589bcae5b7bba0f0b07731a6fe1e3cff
-binfiles arch=x86_64-cygwin size=7006
+containersize 7594352
+containerchecksum 6e9fccf822f7b36764168326649972f9222957e8a0e742f9b2545a05f11615c4cece58a0d59d9ea436ad4a25bae7d7070fd1637877616e6decbf5f88a262a926
+binfiles arch=x86_64-cygwin size=6928
bin/x86_64-cygwin/teckit_compile.exe
bin/x86_64-cygwin/xelatex
bin/x86_64-cygwin/xelatex-unsafe
@@ -366273,11 +366888,11 @@ binfiles arch=x86_64-cygwin size=7006
name xetex.x86_64-darwinlegacy
category TLCore
-revision 66084
+revision 70380
shortdesc x86_64-darwinlegacy files of xetex
-containersize 7130820
-containerchecksum 5f8ac726c8f958cff5949708b3f87bca40f0545217c4818c4a53cc687d3fa90dcc44cfb2397c0fe2663f1caeca80cf318a1c38a197f8489defdff75501a87be4
-binfiles arch=x86_64-darwinlegacy size=6512
+containersize 7144652
+containerchecksum 8747d2c830b9e740a9f336f3a666aa39a71dcd8cc7d7032c6fc8bd0055bfc74df19260c24720bbab07429ccafabb80da12ebafe18038122302c553bd29dc2c40
+binfiles arch=x86_64-darwinlegacy size=6411
bin/x86_64-darwinlegacy/teckit_compile
bin/x86_64-darwinlegacy/xelatex
bin/x86_64-darwinlegacy/xelatex-unsafe
@@ -366286,11 +366901,11 @@ binfiles arch=x86_64-darwinlegacy size=6512
name xetex.x86_64-linux
category TLCore
-revision 66084
+revision 70276
shortdesc x86_64-linux files of xetex
-containersize 7690068
-containerchecksum f9b2c1f075e3818475e2efdf3cfb49e902f48b22e01c78c7e7d8963639198f310f828a38f0589bf2bed8137ddfa0a53ba7c3e39900f93f13414429ebb7c4352a
-binfiles arch=x86_64-linux size=7093
+containersize 7763652
+containerchecksum a00850ae8d07d455e6dcef6537b06f53740bd465480f8b7c6acfdbf760274689ea1e690dbe595b29a09c6f1430eac9f53952800c8495ae257d83fd90089df682
+binfiles arch=x86_64-linux size=7008
bin/x86_64-linux/teckit_compile
bin/x86_64-linux/xelatex
bin/x86_64-linux/xelatex-unsafe
@@ -366299,11 +366914,11 @@ binfiles arch=x86_64-linux size=7093
name xetex.x86_64-linuxmusl
category TLCore
-revision 66084
+revision 70276
shortdesc x86_64-linuxmusl files of xetex
-containersize 7769732
-containerchecksum efad29cace7feb5240016ad2ddad2e1c715be6a8f60447c320acb48abca8dd209c6882f3f2683bebda73dbb2d4fded89ea4175ee75d0191f7fcef313c08c02a5
-binfiles arch=x86_64-linuxmusl size=7256
+containersize 7832616
+containerchecksum 40a5af72ed9ad7407dba731fd024638b619141cb37643f30e31e1c62866af56bc6f72f99c92fc4ce4038525631f626ad6b36281e2a4e82f60d6f3c19c93c2469
+binfiles arch=x86_64-linuxmusl size=7172
bin/x86_64-linuxmusl/teckit_compile
bin/x86_64-linuxmusl/xelatex
bin/x86_64-linuxmusl/xelatex-unsafe
@@ -366312,11 +366927,11 @@ binfiles arch=x86_64-linuxmusl size=7256
name xetex.x86_64-solaris
category TLCore
-revision 66145
+revision 70276
shortdesc x86_64-solaris files of xetex
-containersize 7947904
-containerchecksum 066a36d02fa2b869a5478c4fae9e9ac015b9d9033e44a2a606d12ad20b04c8bd4d3b9cc771aba41939d36407522d5e77ee145cd0d72efb281a1db227fc605f09
-binfiles arch=x86_64-solaris size=7512
+containersize 7652152
+containerchecksum 1193b1002b34cc1f4590f7891ad954aa84b37f58070128e12a2f206706d2d6741002523bee4c1cbe6e4c8a43e3e5efcdd2c3789558414ab04d45468e7905d5d1
+binfiles arch=x86_64-solaris size=6846
bin/x86_64-solaris/teckit_compile
bin/x86_64-solaris/xelatex
bin/x86_64-solaris/xelatex-unsafe
@@ -366356,7 +366971,7 @@ catalogue-topics font-supp xetex
name xetexko
category Package
-revision 70316
+revision 70315
shortdesc Typeset Korean with Xe(La)TeX
relocated 1
longdesc The package supports typesetting Korean documents (including
@@ -366364,10 +366979,10 @@ longdesc old Hangul texts), using XeTeX. It enhances the existing
longdesc support, in XeTeX, providing features that provide quality
longdesc typesetting. This package requires the cjk-ko package for its
longdesc full functionality.
-containersize 53952
-containerchecksum 860352c31f173c31f5b296759e8ff1dc4c2ef58c9db459c52354db92362812a96c359b4e344a5aeb6ab4c52368bb3c409aaea39102e5a48dcb973c285d5f55c5
+containersize 54428
+containerchecksum b9bc7a5328b655bb99c4cf34bf219f28da42c05881cfc4020fdd10f536e03b7ed8a70208c4f1a016be6a2e79e5c4faccfe53ad9b22f285ba5eb3e655cbe66658
doccontainersize 267464
-doccontainerchecksum 7deb9249472c4dce235cfbe38e1e8f5f11a792e559a5708f6d9a2803bdcec68baa7e88fe0a25545896c6f671b7d6ea91b9637a2d75907d667d8b8454597b6f5b
+doccontainerchecksum 91d0b10c8bb3fc1d5189d0de5fa411982f7017ffe9e6d8d572f7de8d9c6cc1eb01b5feae9f23cd0b3b6139ebbcdd4a74fae4c7607c066b0e428cb87060a20a41
docfiles size=76
RELOC/doc/xetex/xetexko/ChangeLog
RELOC/doc/xetex/xetexko/README details="Readme"
@@ -366391,15 +367006,15 @@ catalogue-version 4.3
name xetexref
category Package
-revision 68072
+revision 70299
shortdesc Reference documentation of XeTeX
relocated 1
longdesc The package comprises reference documentation for XeTeX
longdesc detailing its extended features.
-containersize 444
-containerchecksum a26a066a25162d3f3484158b6a5d3e3f44727ab5b7e3d3d9a4457fd80e92522f09d61015a4a3b0fea4dc63987ef773c8850b6afe8a50fa5ac2ed58cca51a4ded
-doccontainersize 163432
-doccontainerchecksum d0f2de750f04ce63aeecdf00a5f0628978c78afaa753f8dd2b41a819c76bb0531bee8906d4eb2014075cf4d0202b6c1fb41a9093120614478045fcb0820a70a9
+containersize 452
+containerchecksum be940dd06966520fcd1aadf76619bd3da436aa9a3623e52b4161280f550e1bd7c311de863caacff24e1759f91d6f5c6b18e79e31ef0eb2abbef450820de3b7f8
+doccontainersize 164436
+doccontainerchecksum 67148e0ba04d7ec57bb77212828c388a5465a4a2a0842fd138f3ae8ce65f34e5228c750ea0d0d68b18a4e6139afdec8e26e4bf27e74e7e713a6b536b4dd0f5f2
docfiles size=52
RELOC/doc/xetex/xetexref/Makefile
RELOC/doc/xetex/xetexref/README.txt details="Readme"
@@ -366503,7 +367118,7 @@ catalogue-version 1.05
name xfrac
category Package
-revision 69888
+revision 69841
shortdesc Split-level fractions
relocated 1
longdesc This package uses the interface defined by LaTeX templates to
@@ -366512,15 +367127,15 @@ longdesc This is both a demonstration of the power of the template
longdesc concept and also a useful addition to the available
longdesc functionality in LaTeX2e.
containersize 3148
-containerchecksum 6a173abe1f5cd65db836157fa336be76bc9879e137f2542b3141bb096359c3bae771705a3b761730e1e3bbc7d623cc08ac46f87af7412be4fa4d7f42a70ba9b9
+containerchecksum ba7024de12b09cc976ca4b8d71fd7228da61c04f99f37bc913720af00078b6d6dd4afc7c9927eea6d32c90704707a804a5b925980a5133e5cc53b3177f33631c
doccontainersize 639904
-doccontainerchecksum 292b12956c4236510024bb3c85b4b1aa791de4eeba14dd88affe264c6384080c2340eacbeb19592424f2231e8347ae6d1b4fc32eda12320dd694557a982aa80a
+doccontainerchecksum 6376caf2bd5ffc29fcdc397524983ef2784f97a47aa52ff9bbe950a738c3c1bd23e9f683fd796f80ade179a09c2e38b7225a6ff472a77bb100ca89b5105bd9f9
docfiles size=163
RELOC/doc/latex/xfrac/CHANGELOG.md
RELOC/doc/latex/xfrac/README.md details="Bundle README"
RELOC/doc/latex/xfrac/xfrac.pdf details="Package documentation"
srccontainersize 9748
-srccontainerchecksum f22458c874e394753b0dc6296a86a2dc6cd8df8f03ff3f84e09118bb0069d84c2de56213368cf351ee922e8f753c3348dfac7bc4d9f496a3aae8302304460136
+srccontainerchecksum d37b8e9c7c89d1c87d132305d8601b3d38a07961b531c2cca74ff3cbcbdda0db19a876fe47576b45a0a680040e3fdb7facf1db247f01bd9c494b1fe1ad06ec67
srcfiles size=11
RELOC/source/latex/xfrac/xfrac.dtx
RELOC/source/latex/xfrac/xfrac.ins
@@ -367436,10 +368051,10 @@ binfiles arch=amd64-freebsd size=950
name xindy.amd64-netbsd
category TLCore
-revision 65923
+revision 70412
shortdesc amd64-netbsd files of xindy
-containersize 1676044
-containerchecksum 2ef007799535e6f546e75633ff402bf3efb2ddc4dcb4102b579a565431319eee80d6e74f72253e7bfce378562b7909784149d55688309044e8eab3e3b96a10ff
+containersize 1679000
+containerchecksum 071304754d7dfa8a57d0c3ca485a4c4b03d1e200e2fb8d3c2801c12d12b619335f131020342e6061fd10006408e206c11e928e5f18fb2826ed567eabf76f71e1
binfiles arch=amd64-netbsd size=879
bin/amd64-netbsd/tex2xindy
bin/amd64-netbsd/texindy
@@ -367488,10 +368103,10 @@ binfiles arch=i386-linux size=1008
name xindy.i386-netbsd
category TLCore
-revision 65923
+revision 70412
shortdesc i386-netbsd files of xindy
-containersize 1676084
-containerchecksum 96db275418b88c2ad29612bd3d73134495b918409ebb1b3952ba00502822f9ecd864a4f6bcda3483bbaaae97174f2c1362e187b2aa8021ad07d47af1513a2502
+containersize 1676436
+containerchecksum d37802dec5deacd1487dfd9e39323bd07f3129fb5264f6122c34bb5b260fee310c8966ccca4f04952e90355a572cb1cdfa8dad481763d661849bb0d7e7384a61
binfiles arch=i386-netbsd size=816
bin/i386-netbsd/tex2xindy
bin/i386-netbsd/texindy
@@ -367501,10 +368116,10 @@ binfiles arch=i386-netbsd size=816
name xindy.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of xindy
-containersize 3139600
-containerchecksum d1512ceaad2362f987461b2027c8d464252e04de002a233bceb2ff72c1feafb3bb7f59a7b08dfbd62c808abf362c37a363c103755f9fc42ce5cb0964e96fc91d
+containersize 3132336
+containerchecksum a43ec53835944d862f58d741d37b7cf7f5e4c467bb3dc463ff8a217f4311a15e1eb72ce26ff42a5d9b3a847856dd21f8b5e2b386060d42e7a6327ab49f468a28
binfiles arch=universal-darwin size=1869
bin/universal-darwin/tex2xindy
bin/universal-darwin/texindy
@@ -367528,11 +368143,11 @@ binfiles arch=windows size=2052
name xindy.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of xindy
-containersize 1976220
-containerchecksum 5ed3ba634a655129f480c6701040a482e49a95593f8962628717bfb5f47a49da5aa9ac00ecc276167a08ab2f0ac4f3759b206430b8eaba1ee5c1bceaeba6ac3e
-binfiles arch=x86_64-cygwin size=951
+containersize 1975272
+containerchecksum 3efaea41666cfae72b37c89da862bd5ba644f2d80bdce2e1d2b79bce7a8faed4c80ef52ba82089ee6b6b21c57a5517ea1333854e34a8a6c30eaf7a17d4f876b4
+binfiles arch=x86_64-cygwin size=952
bin/x86_64-cygwin/tex2xindy.exe
bin/x86_64-cygwin/texindy
bin/x86_64-cygwin/xindy
@@ -367960,11 +368575,11 @@ binfiles arch=aarch64-linux size=33
name xml2pmx.amd64-freebsd
category Package
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of xml2pmx
-containersize 47336
-containerchecksum acacefea2f52c3e58ca72d931804d115154952f4e451ff43750cd1efd98efba7cbc56b77a081dd09a61fc4a5e9f4280f213ef7749a115e33ab81be2f05f68fb9
-binfiles arch=amd64-freebsd size=31
+containersize 46412
+containerchecksum 50ebe6dea070e720e12df02ae00f30bfad73d22a578da64487a466cc73e41f41a769f3f91ee68a779f8d582838969d1c4516ddc1e85917f4314f0b049f2d04c7
+binfiles arch=amd64-freebsd size=33
bin/amd64-freebsd/xml2pmx
name xml2pmx.amd64-netbsd
@@ -367978,28 +368593,28 @@ binfiles arch=amd64-netbsd size=34
name xml2pmx.armhf-linux
category Package
-revision 63092
+revision 70489
shortdesc armhf-linux files of xml2pmx
-containersize 44968
-containerchecksum 7abab80e085199a8ed2e42b366ec3fc405e43eaeaf617e8e2178b4211419f8831256d7d8b008a8afca43ccb648c24baa50e78cf200457a8efce8bff1a1ac160c
+containersize 44980
+containerchecksum e0f4a7a04755ebe37477f37e5782ea85e4e66a69f09fb921fe9cb9d333b8759f935582659052ff059a7459a8ec42ec03664690ce77258badb4ebb92b23fbb66e
binfiles arch=armhf-linux size=28
bin/armhf-linux/xml2pmx
name xml2pmx.i386-freebsd
category Package
-revision 62206
+revision 69782
shortdesc i386-freebsd files of xml2pmx
-containersize 46668
-containerchecksum 7298a723aa68ce994876d5762e1b753eeaa2daab84ee46fe33b7f87036b0f49d0f6e81508a9a59d6a1522ae12645362262d30dfa47eb1d1ca7fe2963bedd3be2
-binfiles arch=i386-freebsd size=29
+containersize 46448
+containerchecksum 4af2272eba886907425f50c0300ccf23ab0ca7929cf98ad48a69f00c0fcc85c81b3b84c7fbd7c777c54d84ae1b1d14d792ee1bfdd5ce0a4b3d82cd45f837d507
+binfiles arch=i386-freebsd size=33
bin/i386-freebsd/xml2pmx
name xml2pmx.i386-linux
category Package
-revision 62210
+revision 69782
shortdesc i386-linux files of xml2pmx
-containersize 47652
-containerchecksum ee07e1e09ab8a636dade0ad8dad19f8d618dd97e6a06c06002507e4c6f55d53888bb7f87522b979da139aedb666403291fb559f32689e9794530379524929e8f
+containersize 47648
+containerchecksum ce0abfbd2540375518540bc78980fe29da56d7a0e4b9f47a3232a1738946be62b557f926d7a24bfc78dbf102d57ed93f1632b25573b5065e3508b7bfe28c98ae
binfiles arch=i386-linux size=30
bin/i386-linux/xml2pmx
@@ -368014,37 +368629,37 @@ binfiles arch=i386-netbsd size=31
name xml2pmx.i386-solaris
category Package
-revision 57938
+revision 69782
shortdesc i386-solaris files of xml2pmx
-containersize 47552
-containerchecksum 9332f04a4340efbcf3b99dc26950f124377e164226ad11e76af3f1e391c9ac9607cab9e7c9e2eef8dadfc91dcbcb00a5e19b706686195034aded39a4c1b0f7ba
-binfiles arch=i386-solaris size=29
+containersize 47924
+containerchecksum db8bfd5ae3332c9ba2409f7dc1cd8834be52b1d8aaf106a7b0ce9abe32cb533325332908e095810c79f19776891d61f4347ce797fd436213e94b0c6b8e53c601
+binfiles arch=i386-solaris size=30
bin/i386-solaris/xml2pmx
name xml2pmx.universal-darwin
category Package
-revision 65895
+revision 69807
shortdesc universal-darwin files of xml2pmx
-containersize 68424
-containerchecksum 7ff7d6c3e27954ab4490b9470944cec0558dfc66c219a711cfce9a7f251dafb78f246520fef20735ce0a164bb23c3ad0984cb09d19db8937347e852ff28b1177
+containersize 68476
+containerchecksum 0e3ca450a82c2c57f6d8ea2be307042bd15aee6dafdb8446813a324e60526a61251b45716cd974797fdd0a85bf96e7287ce730e48230d2a9b20a1342a3ac4b74
binfiles arch=universal-darwin size=82
bin/universal-darwin/xml2pmx
name xml2pmx.windows
category Package
-revision 65891
+revision 70269
shortdesc windows files of xml2pmx
-containersize 110812
-containerchecksum 172197ff504b4365c88e354059b3b96e68b76c777f8c1753ce3540e3eb1681e2fb4dd9c96c94b652039c98c29d544f28b5274af9b709255257953a687e04ebde
-binfiles arch=windows size=63
+containersize 118192
+containerchecksum e69f324e3dfefa4de0bbac2c78f61bbc0d150b54fd255e881da763f26d2638c43a46dc4a8057c117d02ccb6144d392f4ef9f22da35d84e99d0037b304f2bf198
+binfiles arch=windows size=67
bin/windows/xml2pmx.exe
name xml2pmx.x86_64-cygwin
category Package
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of xml2pmx
-containersize 47660
-containerchecksum 80971733c547e98d2c50c6b9e1b33d637e742b8ca4bfc83fa77d5b1d13fd8a108fc223aabfd27cba2d1d9e7ed08a14affa02433267e58b1a5a7b3de9d484a2f3
+containersize 47628
+containerchecksum 5e81d218771d386cd7841091384479963009d8579b4a00cc631a458325b6030da620d14e95e2fa4a171704fb41e6d98ce08936e73e134a480299942c01925e88
binfiles arch=x86_64-cygwin size=31
bin/x86_64-cygwin/xml2pmx.exe
@@ -368059,10 +368674,10 @@ binfiles arch=x86_64-darwinlegacy size=30
name xml2pmx.x86_64-linux
category Package
-revision 62187
+revision 69782
shortdesc x86_64-linux files of xml2pmx
-containersize 46252
-containerchecksum a093aad853dcd025e09b7a457636eb8607341785d51c8232f18ee10accfc6cdf233156c73303717edc2e8d3cbbc7748bd42a7a7f00ede3da5240e87aeba2e4ef
+containersize 46100
+containerchecksum e795e8adaf40310064525f106e63ee84bcd09df5f893751bcd4e0d0e899016348115f620dd1537e1c65cec13d80ff64086286e4b45a01dac52d74e63d2f1544b
binfiles arch=x86_64-linux size=31
bin/x86_64-linux/xml2pmx
@@ -368077,16 +368692,16 @@ binfiles arch=x86_64-linuxmusl size=32
name xml2pmx.x86_64-solaris
category Package
-revision 57938
+revision 69782
shortdesc x86_64-solaris files of xml2pmx
-containersize 48576
-containerchecksum 413f9de3dc360a1e5d01d86f9c3c2f4a2cea68b8bfbc09d0309319a81e9736c0375d2ccc709259a85395566d89d093073f558507e33fc467c81fd70b8aad7fca
-binfiles arch=x86_64-solaris size=32
+containersize 49192
+containerchecksum 438bcaa563545913689cd04e2c12c97250f870fa12237c8d7925579a9b400b5e71044fe3882602e9b3889e8475ca2c8974c3a6d661fdfc6ded97c8fb5abaa788
+binfiles arch=x86_64-solaris size=33
bin/x86_64-solaris/xml2pmx
name xmltex
category Package
-revision 69742
+revision 70002
shortdesc Support for parsing XML documents
longdesc The package provides an implementation of a parser for
longdesc documents matching the XML 1.0 and XML Namespace
@@ -368096,18 +368711,14 @@ longdesc elemenets as they are encounted. Sample files for typesetting a
longdesc subset of TEI, MathML, are included. Element and Attribute
longdesc names, as well as character data, may use any characters
longdesc allowed in XML, using UTF-8 or a suitable 8-bit encoding.
-depend atbegshi
-depend atveryend
depend babel
depend cm
depend dehyph
-depend everyshi
depend firstaid
depend hyph-utf8
depend hyphen-base
depend l3backend
depend l3kernel
-depend l3packages
depend latex
depend latex-fonts
depend latexconfig
@@ -368117,12 +368728,12 @@ depend tex-ini-files
depend unicode-data
depend xmltex.ARCH
depend xmltexconfig
-execute AddFormat name=pdfxmltex engine=pdftex patterns=language.dat options="*pdfxmltex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,latex,latexconfig,tex-ini-files,xmltexconfig
-execute AddFormat name=xmltex engine=pdftex patterns=language.dat options="*xmltex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,latex,latexconfig,tex-ini-files,xmltexconfig
-containersize 18272
-containerchecksum 60c804d65c5d1f7c2d006e410be1dd6001ebc8dd96b7829c77bbad88685a1e18afb5ab8dd42e7c2542df02d0336485766b9bd7f0657b6683e55d7a1e444d4580
+execute AddFormat name=pdfxmltex engine=pdftex patterns=language.dat options="*pdfxmltex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,latex,latexconfig,tex-ini-files,xmltexconfig
+execute AddFormat name=xmltex engine=pdftex patterns=language.dat options="*xmltex.ini" fmttriggers=babel,cm,firstaid,hyphen-base,l3backend,l3kernel,latex,latex-fonts,tex-ini-files,unicode-data,dehyph,hyph-utf8,latex,latexconfig,tex-ini-files,xmltexconfig
+containersize 18244
+containerchecksum 1d8dddcedbdaf012ccac7b9828a1e94526721532cac407918686a97a006ba9bf69f679c16f66b0db5f579d7b723e3ede3ae40282b79f2cea667c055073bee615
doccontainersize 17004
-doccontainerchecksum 017d8d30a8371fa2a22c60a57b9eead2e3f2f9fc88aca858c701912d40af5212f6a58b77fcfba53214c98eb23142c08962827312010cd6474a0d66911d55ba85
+doccontainerchecksum 0672096916d676edbe6cc5583ea59cd3acfbd0b1928b16b896155b1de50d3f677690eab0ab0168721369544add246682f64c7fba18983526c791699d8418e3ef
docfiles size=32
texmf-dist/doc/otherformats/xmltex/base/englishutf16.xml
texmf-dist/doc/otherformats/xmltex/base/englishutf8.xml
@@ -368427,20 +369038,21 @@ catalogue-version 1.0
name xpatch
category Package
-revision 54563
+revision 69768
shortdesc Extending etoolbox patching commands
relocated 1
longdesc The package generalises the macro patching commands provided by
longdesc Philipp Lehmann's etoolbox.
-containersize 1924
-containerchecksum d96d078066ee7cd39585754b0ed1aa2bd5680f90eb2a879bb2dcb47cfe834094f0b5fa1373ecd7f80f626c1a8a8fd4823525c33fa0e67f63b0beb4031a35956e
+depend etoolbox
+containersize 1932
+containerchecksum 49dbe4189b49366eefdca8c501a22bebd0e4141915f01cc6271e2f744be4ed4382ab0a8e8cedec1271da3df5cb8960650219b202df056f3d7f6009983017f0f3
doccontainersize 469996
-doccontainerchecksum 49479d5a73beda78852f80f786e559caa49b51a44c79e73d689499429ee177ccc1a93064122c13e5cf4e34f00350df3e18fc131505364dd8cbf218e851249e8f
+doccontainerchecksum d67b5b258ba4941b5ad7bdc0467175b7a8ad1bd0cabd62fc1b570e9f922e3ee522798b1f893ff1ec858d2fbc6479cbf826ba4f1cb46da6cacdbadfcbb21722d4
docfiles size=116
RELOC/doc/latex/xpatch/README details="Readme"
RELOC/doc/latex/xpatch/xpatch.pdf details="Package documentation"
-srccontainersize 7504
-srccontainerchecksum bed0cd07054aa93d1bc328b57792c79ae90c3f5feb5b6f86e76b4b7c4a2b583248c19b9147d268e1dcb16c107b0dc18b34fe13f537b10042839a46a98b5afb25
+srccontainersize 7508
+srccontainerchecksum f937d5a2b549086b8b134e0b9aeea425c6c99e7650da7987beea240a7000a61f6c9a187d0c68ad5f8cf81aaea1f3a11c51eedb474238407c346aa0577213c996
srcfiles size=9
RELOC/source/latex/xpatch/xpatch.dtx
RELOC/source/latex/xpatch/xpatch.ins
@@ -368488,11 +369100,11 @@ binfiles arch=aarch64-linux size=10
name xpdfopen.amd64-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc amd64-freebsd files of xpdfopen
-containersize 8248
-containerchecksum ee0fe14c049e99c10b947cfdba83a61a5d3f53072c87b61b4df1f0dad4815cd470efb6a8d170ec4c8fa8e40c1e2ea3833954dabc16c44ee22606f87886883244
-binfiles arch=amd64-freebsd size=8
+containersize 8444
+containerchecksum eb883506a85d86b7d88e319d9c3f5fc095f26155d6850907accd36cdcf9595833272f81874544c89b51ab99937cbad4023bf37c91e2afc92267a2d5d8be7f3fa
+binfiles arch=amd64-freebsd size=9
bin/amd64-freebsd/pdfclose
bin/amd64-freebsd/pdfopen
@@ -368508,30 +369120,30 @@ binfiles arch=amd64-netbsd size=10
name xpdfopen.armhf-linux
category TLCore
-revision 63092
+revision 70489
shortdesc armhf-linux files of xpdfopen
-containersize 6636
-containerchecksum 20e3a176be44fb5647bbde6aab08172a41d66422c838c33aa3a61c0d598a5d0968c20c7f2032873a0b469e23c28ec827d21738976b04ef3670abf3a7aede90e8
+containersize 6644
+containerchecksum efc8d73e088c0f15c3c5e162765adf543478340b38149bfb37ca4d3afc24250c481e3963358ebb96c5b5beea8ba7c81aec0a5e585e519c3a695c03f9b19c2c5c
binfiles arch=armhf-linux size=7
bin/armhf-linux/pdfclose
bin/armhf-linux/pdfopen
name xpdfopen.i386-freebsd
category TLCore
-revision 62206
+revision 69782
shortdesc i386-freebsd files of xpdfopen
-containersize 8104
-containerchecksum cd9b56b6ee063bb40427478a3cf38796686cb78ebf8ce9c29c373653afffc1f6cb2bd5849e71ee4f3a8db4495f915b8f552a05d5150df385f0eb3a4676eb7616
-binfiles arch=i386-freebsd size=7
+containersize 8444
+containerchecksum ca4d228265eaec91fe84f015a5da25abe97bb9e7d2c3f0eadbdf52c0ba40553c6063d29643b058a9fefadd3f1a689fae2575d46ebc4c4f88de4036bdf64c0d69
+binfiles arch=i386-freebsd size=9
bin/i386-freebsd/pdfclose
bin/i386-freebsd/pdfopen
name xpdfopen.i386-linux
category TLCore
-revision 62210
+revision 69782
shortdesc i386-linux files of xpdfopen
-containersize 8164
-containerchecksum aba6b8490e770354b560eb7bbe27fbb9c8251597b8f76affaf3a9f7a3196985a264146af60b403e3aef6c4c941c25066f6a010dd267861eab68ccd73d0005789
+containersize 8168
+containerchecksum 2449cdcf1a28c79e5869aa48a9ad2e288c369207dc82352b2b965191547e4520239077ad60718aa3500455cbd9419f48d3a26870cef8b418e6dfb28c21b023de
binfiles arch=i386-linux size=8
bin/i386-linux/pdfclose
bin/i386-linux/pdfopen
@@ -368548,30 +369160,30 @@ binfiles arch=i386-netbsd size=8
name xpdfopen.i386-solaris
category TLCore
-revision 52917
+revision 69782
shortdesc i386-solaris files of xpdfopen
-containersize 8464
-containerchecksum 7571e94465f560a798981b708965ef5fe0fef5defbcd9deb6af5fb35e26d09334ca4a6fddd9415c40d58b294a9ef20aca733ff308851ef3979d9a6b4fca61c63
+containersize 8552
+containerchecksum e47e9a1d6af42f9b5ee6fface6c3499248100e58d4839bf32a0a5f86ec9ebc625bf2adf078ea24c098d2aca0614430133070cb43f90c7fb66e4f7587d27968f8
binfiles arch=i386-solaris size=8
bin/i386-solaris/pdfclose
bin/i386-solaris/pdfopen
name xpdfopen.universal-darwin
category TLCore
-revision 65895
+revision 69807
shortdesc universal-darwin files of xpdfopen
-containersize 19988
-containerchecksum f3563a88fd82cc6aee8ffbb2def16e0d2f9e37be74817e703b6376bd1c01acfb4cb0ecd9ad10e0243a309a412ea447730ab223f5faf48b56edc64ae469a9a50a
+containersize 20008
+containerchecksum f5a175828696147ee154d8226a3964e2a3161f21745d4303bd9f1d1fa4af7210bbeac5b4dd27025af86ca6f719f396517031f64a606e6286b826d7c472e1a97a
binfiles arch=universal-darwin size=64
bin/universal-darwin/pdfclose
bin/universal-darwin/pdfopen
name xpdfopen.windows
category TLCore
-revision 65891
+revision 69788
shortdesc windows files of xpdfopen
-containersize 756616
-containerchecksum 1d094f9fe2d143a8ac905af13a7b9036caab181afb243ecd29c7cfc3cbe68a478946ceaa45b8bbc7a8c8cfde89f528d8713cae4f2c1a9b5a3b417f9afa1f224d
+containersize 756684
+containerchecksum c8173108d5ce262ceae9962f8425b31d62d137040345031fa582efe20e7c7959e671b534cd3c4bcf335c0dd79912d4b1ad5b773c6ed3a0ef01a4874a78dee39f
binfiles arch=windows size=532
bin/windows/pdfclose.exe
bin/windows/pdfdde.exe
@@ -368579,20 +369191,20 @@ binfiles arch=windows size=532
name xpdfopen.x86_64-cygwin
category TLCore
-revision 66544
+revision 70560
shortdesc x86_64-cygwin files of xpdfopen
-containersize 8836
-containerchecksum f7ad6c9b078acbe2a392dc4345d5e802321ceabdec660347edbfb3820d4c9ce702ce6b80fdea860d2edc848d12cd6921aedfc5c09e02fd48706b982b4c12c219
+containersize 8776
+containerchecksum 26e92d1e6c858e031ab6f7bb16f8c7225008b93eb4591a7e12d2e8f4655610ea27237b3c6c08d07154da671d854effc73b1e59629b9da97e0c2094bc22eb25ea
binfiles arch=x86_64-cygwin size=10
bin/x86_64-cygwin/pdfclose.exe
bin/x86_64-cygwin/pdfopen.exe
name xpdfopen.x86_64-linux
category TLCore
-revision 62187
+revision 69782
shortdesc x86_64-linux files of xpdfopen
-containersize 8488
-containerchecksum 4845721dc9ec15dc35504254bfc7a581331eab45d32cf34165dd1b040afa66355f339c0c1b4490b1614b2d082d410346ee62edcd69dcfcc4dcb2bee199fa6be1
+containersize 8492
+containerchecksum 616abb8e13d0e82c94adeab938c5bbda8b8d94ca06d0f31c1848f4552a6691f1016fda266ce196c344177178efd9948a900cd4ef09d834aa8ec6cc6b85a89546
binfiles arch=x86_64-linux size=10
bin/x86_64-linux/pdfclose
bin/x86_64-linux/pdfopen
@@ -368609,10 +369221,10 @@ binfiles arch=x86_64-linuxmusl size=10
name xpdfopen.x86_64-solaris
category TLCore
-revision 52917
+revision 69782
shortdesc x86_64-solaris files of xpdfopen
-containersize 9128
-containerchecksum 66f751fb4b4633c3034ed4973326bd57eea635ff36eed19b4143103ff50a4fd05e8fc7330f4e7a2ff6c5dcad8955fc3c4621cc14a3288e42c3b4bbbf040a02d5
+containersize 9592
+containerchecksum b844c202cf117b86e7f32fa5039a1d1c2e460a5e7c9eb2d91d920c1d0c3297ca94337b85817c662704f4900e677c01e09276a26eec44ad85807229183120d3d1
binfiles arch=x86_64-solaris size=10
bin/x86_64-solaris/pdfclose
bin/x86_64-solaris/pdfopen
@@ -369863,7 +370475,7 @@ catalogue-topics font font-mf font-greek greek
name yathesis
category Package
-revision 70512
+revision 70511
shortdesc A LaTeX class for writing a thesis following French rules
relocated 1
longdesc The purpose of yathesis is to facilitate the typesetting of
@@ -369881,10 +370493,10 @@ longdesc doc/latex/yathesis/french/exemples/ directory in the
longdesc distribution. They can also be tested on ShareLaTeX (template
longdesc and specimen) and on Overleaf (template and specimen). Note:
longdesc The "ya" in the package name stands for "yet another".
-containersize 23676
-containerchecksum 85c1c7a9dfb682271ebc6a35cdd91dcaa11137d6f1785f98c3b0abdec46ab346f23a08b034b8aac95324dbba490291a59f74c5d27c93f791b38d47302f5cb61f
-doccontainersize 5181336
-doccontainerchecksum b241afcdd6e2e7cc112faaed178fa2d1f15afea44e4c614b69edbe0a08ac78606f6adf4e6688c4d45e27b011dfd83ff189a4d8a84e96d39c22cada4d3cc888bd
+containersize 23684
+containerchecksum f3d27bad71d660ae1fdd1efe6a62a9cfb621a8b20e3b20ce81ffd1279476ab1566d62a83b4bdfbb54d56e9063035a6bb31390f2bae7c3d796441c880cd5ad421
+doccontainersize 5181648
+doccontainerchecksum 22d89fd4c7568b8f1125bcf4ff24d2f57649cf69a935d8efaf44bdb473e656e5490804fa29d9b7f698a7f0c4968aac1d913aeebc76f1a27d0d5a0ba5ea32744a
docfiles size=3335
RELOC/doc/latex/yathesis/CHANGELOG.md
RELOC/doc/latex/yathesis/README.md details="Readme"
@@ -369958,8 +370570,8 @@ docfiles size=3335
RELOC/doc/latex/yathesis/french/exemples/specimen/a-plat/these.tex
RELOC/doc/latex/yathesis/french/exemples/specimen/a-plat/tiger.pdf
RELOC/doc/latex/yathesis/french/exemples/specimen/a-plat/ulco.pdf
-srccontainersize 54748
-srccontainerchecksum b97c3f396f53108ed66e3297484ad4d052df0b5fd735bedc16ab3ea8550c3bb8fdca84d7dc415e6a8abb147c2f4cbf1d4d7ee3fd6f4677db73079bbbbe20d359
+srccontainersize 54756
+srccontainerchecksum 530ffb9c3e7965a9b585d124d1a8c1d6294cb9de611b45a9487d188f9d4a7b46de59928fdcfa2a71bcb971e358fd87bba03197dab5c23af5a839db8da6a77676
srcfiles size=71
RELOC/source/latex/yathesis/yathesis-samples-templates.dtx
RELOC/source/latex/yathesis/yathesis.dtx
@@ -384279,7 +384891,7 @@ catalogue-version 1.4e
name zx-calculus
category Package
-revision 70612
+revision 70591
shortdesc A library to typeset ZX Calculus diagrams
relocated 1
longdesc This library (based on the great TikZ and TikZ-cd packages)
@@ -384288,10 +384900,10 @@ longdesc with many pre-built wire shapes, a highly customizable node
longdesc style (with multiple flavours for putting labels inside or
longdesc outside nodes), and a "debugging" mode to avoid getting lost in
longdesc big diagrams.
-containersize 38616
-containerchecksum d59cbc2662dc41a216e9d8665a6bafefd27ef5993abae6682af24909cff49350dcf73f10ddc55b31dd3ebdd35509a7000edd8e055c85deee946a5efe258ddf14
-doccontainersize 1193600
-doccontainerchecksum a08719cbd99cfe9b37ca3fe62806e45908a1f48e5ff32a162fff3e835fdcf69c8a516ff7d3e0de6dd1827d3c78ae7efb3e79b4a534d77d94d5a16b9fd10b10d7
+containersize 38620
+containerchecksum 01a7d936295d533db27fe45eff4c9a54cde1b8f6d6f4e9304c380b37b68753060ba43cd90f3b7b2f4a0237ad58e47cb51b004b0c1827b73bcbf988dc57fd1a82
+doccontainersize 1193624
+doccontainerchecksum 1d6e9214b9848d70ba7c7f59db1ef5a714b4200709bb4701aa9df13855ae52c5dcbe2122f1a930ab10d612a8bf084696c33ad7f34774401fe75b9a35b709f624
docfiles size=354
RELOC/doc/latex/zx-calculus/README.md details="Readme"
RELOC/doc/latex/zx-calculus/biblio.bib
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 62cbcb6983..fc7e66f570 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-3f419e0e4fe0221626fafedecfeb5e36 texlive.tlpdb
+d94623743a7f138c2f294002d00268f6 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index de325f0d2c..22f9a50998 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-2d308c409eaffb3baa5c61340384d921569d281774fa9189712d652ebd07706b8aeca3f92e919f23686cbcd5d33c47cfe22c5b19b739e0e9a3bff58477968d09 texlive.tlpdb
+0cf31dec2ceccc602742c193e87dfb6fb77277951bba9afda9de8c790cf0f7b62a12dca7b7a31781031a8ad087a55322af01de45f207adbf87639ca92f0f7e42 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index f9e5c66acb..ef9ef9a70a 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmXvvbIACgkQTOGHfhlD
-jHB4uAf/cZMp6q85uF31rmaMR7ptYhTYqOIBkTySBQBdL6JNOqhxCQoxluA/9rIZ
-9n05KjcYvyaZrfP512hNviNzOylsYEr9iSjace02leBYC1FkHXoiGHECN2MGzbTL
-QIR2p5qTZHy+pzrHP5L9kC+hSV1ZI5AzZYk8N5dW2Ox9ICwGwebg+D9WkoadVWhh
-VaC0lfeU2qYD4gKHVxwzStuNo6UvjQNR7DhHA8E6sI3wkOmP8Tj5LG26oBb1NLfL
-HcLyUFqdGDqynz5iLAMI+PJ6hfcsIZcGPuH0XwTt2+0hzm8M2wo7O1Td5sR/E5k4
-iJakgPbjdJXIpXKhYRW+BqPaJ8UMxg==
-=9h+T
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmXySXkACgkQTOGHfhlD
+jHB4iwf+OceN1s4mebW+te3DPdnRQhsqVbVeuiLf9AIgNdifl982HSR66mPpNLnz
+koZyPLjzwQmrRbv1ijiFqhNVaGwJiDiqCdCxv31SvU+F8QodoF/5zvu6qo3zQZkP
+vX8SjfFZ9dVPw/WxcEXxaNwMqUKzoUIcB5s1x7wOolGmKM+eTILWSZc93GzFoJA7
+hJLFymJ4PaocEtHJcJVE5xaP+FWm8rPtH5WGtktwFAPWxGpvvePQMHc01C65w5mH
+pG4dYmblIZotlYXDm1f6PfE7U736V2wT9Tp4peUnn3lYHlmKahkDu4+zdqQzhQ9t
+5i3mcaQl2sCoff5RffDNhaANZE6lhQ==
+=bx31
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 730375d16e..8a637450a3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/README.TEXLIVE b/systems/texlive/tlnet/tlpkg/tlperl/README.TEXLIVE
deleted file mode 100644
index 71ebb920bf..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/README.TEXLIVE
+++ /dev/null
@@ -1,8 +0,0 @@
-(This file public domain.)
-
-This directory contains Perl 5.34.0 compiled for Windows.
-
-The only purpose of this Perl is to provide support on Windows for
-Perl scripts shipped with TeX Live. It is not intended for general use.
-
-The sources and notes on compilation can be found in Master/source/tlperl.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/libgcc_s_seh-1.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/libgcc_s_seh-1.dll
deleted file mode 100755
index f9d21c65e1..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/bin/libgcc_s_seh-1.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/libstdc++-6.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/libstdc++-6.dll
deleted file mode 100755
index d2a98f0a4d..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/bin/libstdc++-6.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/libwinpthread-1.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/libwinpthread-1.dll
deleted file mode 100755
index c4fbb7b018..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/bin/libwinpthread-1.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/perl534.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/perl534.dll
deleted file mode 100755
index 4cbabe95ae..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/bin/perl534.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/perl538.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/perl538.dll
new file mode 100755
index 0000000000..06992a6bd5
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/bin/perl538.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140.dll
new file mode 100755
index 0000000000..52fe06bd61
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140_1.dll b/systems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140_1.dll
new file mode 100755
index 0000000000..6091fbf06e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/bin/vcruntime140_1.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist
index 69b1c59a57..34d93f9fa2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist
@@ -1,1678 +1,1750 @@
-E:\tlperl\bin/corelist.bat type=file
-E:\tlperl\bin/cpan.bat type=file
-E:\tlperl\bin/enc2xs.bat type=file
-E:\tlperl\bin/encguess.bat type=file
-E:\tlperl\bin/h2ph.bat type=file
-E:\tlperl\bin/h2xs.bat type=file
-E:\tlperl\bin/instmodsh.bat type=file
-E:\tlperl\bin/json_pp.bat type=file
-E:\tlperl\bin/libnetcfg.bat type=file
-E:\tlperl\bin/perl.exe from=E:\tlperl\bin/perl5.34.0.exe type=link
-E:\tlperl\bin/perl5.34.0.exe type=file
-E:\tlperl\bin/perl534.dll type=file
-E:\tlperl\bin/perlbug.bat type=file
-E:\tlperl\bin/perldoc.bat type=file
-E:\tlperl\bin/perlivp.bat type=file
-E:\tlperl\bin/perlthanks.bat from=E:\tlperl\bin/perlbug.bat type=link
-E:\tlperl\bin/piconv.bat type=file
-E:\tlperl\bin/pl2pm.bat type=file
-E:\tlperl\bin/pod2html.bat type=file
-E:\tlperl\bin/pod2man.bat type=file
-E:\tlperl\bin/pod2text.bat type=file
-E:\tlperl\bin/pod2usage.bat type=file
-E:\tlperl\bin/podchecker.bat type=file
-E:\tlperl\bin/prove.bat type=file
-E:\tlperl\bin/ptar.bat type=file
-E:\tlperl\bin/ptardiff.bat type=file
-E:\tlperl\bin/ptargrep.bat type=file
-E:\tlperl\bin/shasum.bat type=file
-E:\tlperl\bin/splain.bat type=file
-E:\tlperl\bin/streamzip.bat type=file
-E:\tlperl\bin/xsubpp.bat type=file
-E:\tlperl\bin/zipdetails.bat type=file
-E:\tlperl\lib/AnyDBM_File.pm type=file
-E:\tlperl\lib/App/Cpan.pm type=file
-E:\tlperl\lib/App/Prove.pm type=file
-E:\tlperl\lib/App/Prove/State.pm type=file
-E:\tlperl\lib/App/Prove/State/Result.pm type=file
-E:\tlperl\lib/App/Prove/State/Result/Test.pm type=file
-E:\tlperl\lib/Archive/Tar.pm type=file
-E:\tlperl\lib/Archive/Tar/Constant.pm type=file
-E:\tlperl\lib/Archive/Tar/File.pm type=file
-E:\tlperl\lib/Attribute/Handlers.pm type=file
-E:\tlperl\lib/AutoLoader.pm type=file
-E:\tlperl\lib/AutoSplit.pm type=file
-E:\tlperl\lib/B.pm type=file
-E:\tlperl\lib/B/Concise.pm type=file
-E:\tlperl\lib/B/Deparse.pm type=file
-E:\tlperl\lib/B/Op_private.pm type=file
-E:\tlperl\lib/B/Showlex.pm type=file
-E:\tlperl\lib/B/Terse.pm type=file
-E:\tlperl\lib/B/Xref.pm type=file
-E:\tlperl\lib/Benchmark.pm type=file
-E:\tlperl\lib/CORE.pod type=file
-E:\tlperl\lib/CORE/EXTERN.h type=file
-E:\tlperl\lib/CORE/INTERN.h type=file
-E:\tlperl\lib/CORE/XSUB.h type=file
-E:\tlperl\lib/CORE/arpa/inet.h type=file
-E:\tlperl\lib/CORE/av.h type=file
-E:\tlperl\lib/CORE/bitcount.h type=file
-E:\tlperl\lib/CORE/charclass_invlists.h type=file
-E:\tlperl\lib/CORE/config.h type=file
-E:\tlperl\lib/CORE/cop.h type=file
-E:\tlperl\lib/CORE/cv.h type=file
-E:\tlperl\lib/CORE/dirent.h type=file
-E:\tlperl\lib/CORE/dosish.h type=file
-E:\tlperl\lib/CORE/ebcdic_tables.h type=file
-E:\tlperl\lib/CORE/embed.h type=file
-E:\tlperl\lib/CORE/embedvar.h type=file
-E:\tlperl\lib/CORE/fakesdio.h type=file
-E:\tlperl\lib/CORE/feature.h type=file
-E:\tlperl\lib/CORE/form.h type=file
-E:\tlperl\lib/CORE/git_version.h type=file
-E:\tlperl\lib/CORE/gv.h type=file
-E:\tlperl\lib/CORE/handy.h type=file
-E:\tlperl\lib/CORE/hv.h type=file
-E:\tlperl\lib/CORE/hv_func.h type=file
-E:\tlperl\lib/CORE/hv_macro.h type=file
-E:\tlperl\lib/CORE/inline.h type=file
-E:\tlperl\lib/CORE/intrpvar.h type=file
-E:\tlperl\lib/CORE/invlist_inline.h type=file
-E:\tlperl\lib/CORE/iperlsys.h type=file
-E:\tlperl\lib/CORE/keywords.h type=file
-E:\tlperl\lib/CORE/l1_char_class_tab.h type=file
-E:\tlperl\lib/CORE/libperl534.a type=file
-E:\tlperl\lib/CORE/malloc_ctl.h type=file
-E:\tlperl\lib/CORE/metaconfig.h type=file
-E:\tlperl\lib/CORE/mg.h type=file
-E:\tlperl\lib/CORE/mg_data.h type=file
-E:\tlperl\lib/CORE/mg_raw.h type=file
-E:\tlperl\lib/CORE/mg_vtable.h type=file
-E:\tlperl\lib/CORE/mydtrace.h type=file
-E:\tlperl\lib/CORE/netdb.h type=file
-E:\tlperl\lib/CORE/nostdio.h type=file
-E:\tlperl\lib/CORE/op.h type=file
-E:\tlperl\lib/CORE/op_reg_common.h type=file
-E:\tlperl\lib/CORE/opcode.h type=file
-E:\tlperl\lib/CORE/opnames.h type=file
-E:\tlperl\lib/CORE/overload.h type=file
-E:\tlperl\lib/CORE/pad.h type=file
-E:\tlperl\lib/CORE/parser.h type=file
-E:\tlperl\lib/CORE/patchlevel.h type=file
-E:\tlperl\lib/CORE/perl.h type=file
-E:\tlperl\lib/CORE/perl_inc_macro.h type=file
-E:\tlperl\lib/CORE/perl_langinfo.h type=file
-E:\tlperl\lib/CORE/perl_siphash.h type=file
-E:\tlperl\lib/CORE/perlapi.h type=file
-E:\tlperl\lib/CORE/perlhost.h type=file
-E:\tlperl\lib/CORE/perlio.h type=file
-E:\tlperl\lib/CORE/perliol.h type=file
-E:\tlperl\lib/CORE/perlsdio.h type=file
-E:\tlperl\lib/CORE/perlvars.h type=file
-E:\tlperl\lib/CORE/perly.h type=file
-E:\tlperl\lib/CORE/pp.h type=file
-E:\tlperl\lib/CORE/pp_proto.h type=file
-E:\tlperl\lib/CORE/proto.h type=file
-E:\tlperl\lib/CORE/reentr.h type=file
-E:\tlperl\lib/CORE/regcharclass.h type=file
-E:\tlperl\lib/CORE/regcomp.h type=file
-E:\tlperl\lib/CORE/regexp.h type=file
-E:\tlperl\lib/CORE/regnodes.h type=file
-E:\tlperl\lib/CORE/sbox32_hash.h type=file
-E:\tlperl\lib/CORE/scope.h type=file
-E:\tlperl\lib/CORE/sv.h type=file
-E:\tlperl\lib/CORE/sys/errno2.h type=file
-E:\tlperl\lib/CORE/sys/socket.h type=file
-E:\tlperl\lib/CORE/thread.h type=file
-E:\tlperl\lib/CORE/time64.h type=file
-E:\tlperl\lib/CORE/time64_config.h type=file
-E:\tlperl\lib/CORE/uconfig.h type=file
-E:\tlperl\lib/CORE/uni_keywords.h type=file
-E:\tlperl\lib/CORE/unicode_constants.h type=file
-E:\tlperl\lib/CORE/unixish.h type=file
-E:\tlperl\lib/CORE/utf8.h type=file
-E:\tlperl\lib/CORE/utfebcdic.h type=file
-E:\tlperl\lib/CORE/util.h type=file
-E:\tlperl\lib/CORE/uudmap.h type=file
-E:\tlperl\lib/CORE/vdir.h type=file
-E:\tlperl\lib/CORE/vmem.h type=file
-E:\tlperl\lib/CORE/vutil.h type=file
-E:\tlperl\lib/CORE/warnings.h type=file
-E:\tlperl\lib/CORE/win32.h type=file
-E:\tlperl\lib/CORE/win32iop.h type=file
-E:\tlperl\lib/CORE/win32thread.h type=file
-E:\tlperl\lib/CORE/zaphod32_hash.h type=file
-E:\tlperl\lib/CPAN.pm type=file
-E:\tlperl\lib/CPAN/API/HOWTO.pod type=file
-E:\tlperl\lib/CPAN/Author.pm type=file
-E:\tlperl\lib/CPAN/Bundle.pm type=file
-E:\tlperl\lib/CPAN/CacheMgr.pm type=file
-E:\tlperl\lib/CPAN/Complete.pm type=file
-E:\tlperl\lib/CPAN/Debug.pm type=file
-E:\tlperl\lib/CPAN/DeferredCode.pm type=file
-E:\tlperl\lib/CPAN/Distribution.pm type=file
-E:\tlperl\lib/CPAN/Distroprefs.pm type=file
-E:\tlperl\lib/CPAN/Distrostatus.pm type=file
-E:\tlperl\lib/CPAN/Exception/RecursiveDependency.pm type=file
-E:\tlperl\lib/CPAN/Exception/blocked_urllist.pm type=file
-E:\tlperl\lib/CPAN/Exception/yaml_not_installed.pm type=file
-E:\tlperl\lib/CPAN/Exception/yaml_process_error.pm type=file
-E:\tlperl\lib/CPAN/FTP.pm type=file
-E:\tlperl\lib/CPAN/FTP/netrc.pm type=file
-E:\tlperl\lib/CPAN/FirstTime.pm type=file
-E:\tlperl\lib/CPAN/HTTP/Client.pm type=file
-E:\tlperl\lib/CPAN/HTTP/Credentials.pm type=file
-E:\tlperl\lib/CPAN/HandleConfig.pm type=file
-E:\tlperl\lib/CPAN/Index.pm type=file
-E:\tlperl\lib/CPAN/InfoObj.pm type=file
-E:\tlperl\lib/CPAN/Kwalify.pm type=file
-E:\tlperl\lib/CPAN/Kwalify/distroprefs.dd type=file
-E:\tlperl\lib/CPAN/Kwalify/distroprefs.yml type=file
-E:\tlperl\lib/CPAN/LWP/UserAgent.pm type=file
-E:\tlperl\lib/CPAN/Meta.pm type=file
-E:\tlperl\lib/CPAN/Meta/Converter.pm type=file
-E:\tlperl\lib/CPAN/Meta/Feature.pm type=file
-E:\tlperl\lib/CPAN/Meta/History.pm type=file
-E:\tlperl\lib/CPAN/Meta/History/Meta_1_0.pod type=file
-E:\tlperl\lib/CPAN/Meta/History/Meta_1_1.pod type=file
-E:\tlperl\lib/CPAN/Meta/History/Meta_1_2.pod type=file
-E:\tlperl\lib/CPAN/Meta/History/Meta_1_3.pod type=file
-E:\tlperl\lib/CPAN/Meta/History/Meta_1_4.pod type=file
-E:\tlperl\lib/CPAN/Meta/Merge.pm type=file
-E:\tlperl\lib/CPAN/Meta/Prereqs.pm type=file
-E:\tlperl\lib/CPAN/Meta/Requirements.pm type=file
-E:\tlperl\lib/CPAN/Meta/Spec.pm type=file
-E:\tlperl\lib/CPAN/Meta/Validator.pm type=file
-E:\tlperl\lib/CPAN/Meta/YAML.pm type=file
-E:\tlperl\lib/CPAN/Mirrors.pm type=file
-E:\tlperl\lib/CPAN/Module.pm type=file
-E:\tlperl\lib/CPAN/Nox.pm type=file
-E:\tlperl\lib/CPAN/Plugin.pm type=file
-E:\tlperl\lib/CPAN/Plugin/Specfile.pm type=file
-E:\tlperl\lib/CPAN/Prompt.pm type=file
-E:\tlperl\lib/CPAN/Queue.pm type=file
-E:\tlperl\lib/CPAN/Shell.pm type=file
-E:\tlperl\lib/CPAN/Tarzip.pm type=file
-E:\tlperl\lib/CPAN/URL.pm type=file
-E:\tlperl\lib/CPAN/Version.pm type=file
-E:\tlperl\lib/Carp.pm type=file
-E:\tlperl\lib/Carp/Heavy.pm type=file
-E:\tlperl\lib/Class/Struct.pm type=file
-E:\tlperl\lib/Compress/Raw/Bzip2.pm type=file
-E:\tlperl\lib/Compress/Raw/Zlib.pm type=file
-E:\tlperl\lib/Compress/Zlib.pm type=file
-E:\tlperl\lib/Config.pm type=file
-E:\tlperl\lib/Config.pod type=file
-E:\tlperl\lib/Config/Extensions.pm type=file
-E:\tlperl\lib/Config/Perl/V.pm type=file
-E:\tlperl\lib/Config_git.pl type=file
-E:\tlperl\lib/Config_heavy.pl type=file
-E:\tlperl\lib/Cwd.pm type=file
-E:\tlperl\lib/DB.pm type=file
-E:\tlperl\lib/DBM_Filter.pm type=file
-E:\tlperl\lib/DBM_Filter/compress.pm type=file
-E:\tlperl\lib/DBM_Filter/encode.pm type=file
-E:\tlperl\lib/DBM_Filter/int32.pm type=file
-E:\tlperl\lib/DBM_Filter/null.pm type=file
-E:\tlperl\lib/DBM_Filter/utf8.pm type=file
-E:\tlperl\lib/Data/Dumper.pm type=file
-E:\tlperl\lib/Devel/PPPort.pm type=file
-E:\tlperl\lib/Devel/Peek.pm type=file
-E:\tlperl\lib/Devel/SelfStubber.pm type=file
-E:\tlperl\lib/Digest.pm type=file
-E:\tlperl\lib/Digest/MD5.pm type=file
-E:\tlperl\lib/Digest/SHA.pm type=file
-E:\tlperl\lib/Digest/base.pm type=file
-E:\tlperl\lib/Digest/file.pm type=file
-E:\tlperl\lib/DirHandle.pm type=file
-E:\tlperl\lib/Dumpvalue.pm type=file
-E:\tlperl\lib/DynaLoader.pm type=file
-E:\tlperl\lib/Encode.pm type=file
-E:\tlperl\lib/Encode/Alias.pm type=file
-E:\tlperl\lib/Encode/Byte.pm type=file
-E:\tlperl\lib/Encode/CJKConstants.pm type=file
-E:\tlperl\lib/Encode/CN.pm type=file
-E:\tlperl\lib/Encode/CN/HZ.pm type=file
-E:\tlperl\lib/Encode/Changes.e2x type=file
-E:\tlperl\lib/Encode/Config.pm type=file
-E:\tlperl\lib/Encode/ConfigLocal_PM.e2x type=file
-E:\tlperl\lib/Encode/EBCDIC.pm type=file
-E:\tlperl\lib/Encode/Encoder.pm type=file
-E:\tlperl\lib/Encode/Encoding.pm type=file
-E:\tlperl\lib/Encode/GSM0338.pm type=file
-E:\tlperl\lib/Encode/Guess.pm type=file
-E:\tlperl\lib/Encode/JP.pm type=file
-E:\tlperl\lib/Encode/JP/H2Z.pm type=file
-E:\tlperl\lib/Encode/JP/JIS7.pm type=file
-E:\tlperl\lib/Encode/KR.pm type=file
-E:\tlperl\lib/Encode/KR/2022_KR.pm type=file
-E:\tlperl\lib/Encode/MIME/Header.pm type=file
-E:\tlperl\lib/Encode/MIME/Header/ISO_2022_JP.pm type=file
-E:\tlperl\lib/Encode/MIME/Name.pm type=file
-E:\tlperl\lib/Encode/Makefile_PL.e2x type=file
-E:\tlperl\lib/Encode/PerlIO.pod type=file
-E:\tlperl\lib/Encode/README.e2x type=file
-E:\tlperl\lib/Encode/Supported.pod type=file
-E:\tlperl\lib/Encode/Symbol.pm type=file
-E:\tlperl\lib/Encode/TW.pm type=file
-E:\tlperl\lib/Encode/Unicode.pm type=file
-E:\tlperl\lib/Encode/Unicode/UTF7.pm type=file
-E:\tlperl\lib/Encode/_PM.e2x type=file
-E:\tlperl\lib/Encode/_T.e2x type=file
-E:\tlperl\lib/Encode/encode.h type=file
-E:\tlperl\lib/English.pm type=file
-E:\tlperl\lib/Env.pm type=file
-E:\tlperl\lib/Errno.pm type=file
-E:\tlperl\lib/Exporter.pm type=file
-E:\tlperl\lib/Exporter/Heavy.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Base.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/Unix.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/VMS.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/aix.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/android.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/cygwin.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/darwin.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/dec_osf.pm type=file
-E:\tlperl\lib/ExtUtils/CBuilder/Platform/os2.pm type=file
-E:\tlperl\lib/ExtUtils/Command.pm type=file
-E:\tlperl\lib/ExtUtils/Command/MM.pm type=file
-E:\tlperl\lib/ExtUtils/Constant.pm type=file
-E:\tlperl\lib/ExtUtils/Constant/Base.pm type=file
-E:\tlperl\lib/ExtUtils/Constant/ProxySubs.pm type=file
-E:\tlperl\lib/ExtUtils/Constant/Utils.pm type=file
-E:\tlperl\lib/ExtUtils/Constant/XS.pm type=file
-E:\tlperl\lib/ExtUtils/Embed.pm type=file
-E:\tlperl\lib/ExtUtils/Install.pm type=file
-E:\tlperl\lib/ExtUtils/Installed.pm type=file
-E:\tlperl\lib/ExtUtils/Liblist.pm type=file
-E:\tlperl\lib/ExtUtils/Liblist/Kid.pm type=file
-E:\tlperl\lib/ExtUtils/MANIFEST.SKIP type=file
-E:\tlperl\lib/ExtUtils/MM.pm type=file
-E:\tlperl\lib/ExtUtils/MM_AIX.pm type=file
-E:\tlperl\lib/ExtUtils/MM_Any.pm type=file
-E:\tlperl\lib/ExtUtils/MM_BeOS.pm type=file
-E:\tlperl\lib/ExtUtils/MM_Cygwin.pm type=file
-E:\tlperl\lib/ExtUtils/MM_DOS.pm type=file
-E:\tlperl\lib/ExtUtils/MM_Darwin.pm type=file
-E:\tlperl\lib/ExtUtils/MM_MacOS.pm type=file
-E:\tlperl\lib/ExtUtils/MM_NW5.pm type=file
-E:\tlperl\lib/ExtUtils/MM_OS2.pm type=file
-E:\tlperl\lib/ExtUtils/MM_OS390.pm type=file
-E:\tlperl\lib/ExtUtils/MM_QNX.pm type=file
-E:\tlperl\lib/ExtUtils/MM_UWIN.pm type=file
-E:\tlperl\lib/ExtUtils/MM_Unix.pm type=file
-E:\tlperl\lib/ExtUtils/MM_VMS.pm type=file
-E:\tlperl\lib/ExtUtils/MM_VOS.pm type=file
-E:\tlperl\lib/ExtUtils/MM_Win32.pm type=file
-E:\tlperl\lib/ExtUtils/MM_Win95.pm type=file
-E:\tlperl\lib/ExtUtils/MY.pm type=file
-E:\tlperl\lib/ExtUtils/MakeMaker.pm type=file
-E:\tlperl\lib/ExtUtils/MakeMaker/Config.pm type=file
-E:\tlperl\lib/ExtUtils/MakeMaker/FAQ.pod type=file
-E:\tlperl\lib/ExtUtils/MakeMaker/Locale.pm type=file
-E:\tlperl\lib/ExtUtils/MakeMaker/Tutorial.pod type=file
-E:\tlperl\lib/ExtUtils/MakeMaker/version.pm type=file
-E:\tlperl\lib/ExtUtils/Manifest.pm type=file
-E:\tlperl\lib/ExtUtils/Miniperl.pm type=file
-E:\tlperl\lib/ExtUtils/Mkbootstrap.pm type=file
-E:\tlperl\lib/ExtUtils/Mksymlists.pm type=file
-E:\tlperl\lib/ExtUtils/PL2Bat.pm type=file
-E:\tlperl\lib/ExtUtils/Packlist.pm type=file
-E:\tlperl\lib/ExtUtils/ParseXS.pm type=file
-E:\tlperl\lib/ExtUtils/ParseXS.pod type=file
-E:\tlperl\lib/ExtUtils/ParseXS/Constants.pm type=file
-E:\tlperl\lib/ExtUtils/ParseXS/CountLines.pm type=file
-E:\tlperl\lib/ExtUtils/ParseXS/Eval.pm type=file
-E:\tlperl\lib/ExtUtils/ParseXS/Utilities.pm type=file
-E:\tlperl\lib/ExtUtils/Typemaps.pm type=file
-E:\tlperl\lib/ExtUtils/Typemaps/Cmd.pm type=file
-E:\tlperl\lib/ExtUtils/Typemaps/InputMap.pm type=file
-E:\tlperl\lib/ExtUtils/Typemaps/OutputMap.pm type=file
-E:\tlperl\lib/ExtUtils/Typemaps/Type.pm type=file
-E:\tlperl\lib/ExtUtils/testlib.pm type=file
-E:\tlperl\lib/ExtUtils/typemap type=file
-E:\tlperl\lib/ExtUtils/xsubpp type=file
-E:\tlperl\lib/Fatal.pm type=file
-E:\tlperl\lib/Fcntl.pm type=file
-E:\tlperl\lib/File/Basename.pm type=file
-E:\tlperl\lib/File/Compare.pm type=file
-E:\tlperl\lib/File/Copy.pm type=file
-E:\tlperl\lib/File/DosGlob.pm type=file
-E:\tlperl\lib/File/Fetch.pm type=file
-E:\tlperl\lib/File/Find.pm type=file
-E:\tlperl\lib/File/Glob.pm type=file
-E:\tlperl\lib/File/GlobMapper.pm type=file
-E:\tlperl\lib/File/Path.pm type=file
-E:\tlperl\lib/File/Spec.pm type=file
-E:\tlperl\lib/File/Spec/AmigaOS.pm type=file
-E:\tlperl\lib/File/Spec/Cygwin.pm type=file
-E:\tlperl\lib/File/Spec/Epoc.pm type=file
-E:\tlperl\lib/File/Spec/Functions.pm type=file
-E:\tlperl\lib/File/Spec/Mac.pm type=file
-E:\tlperl\lib/File/Spec/OS2.pm type=file
-E:\tlperl\lib/File/Spec/Unix.pm type=file
-E:\tlperl\lib/File/Spec/VMS.pm type=file
-E:\tlperl\lib/File/Spec/Win32.pm type=file
-E:\tlperl\lib/File/Temp.pm type=file
-E:\tlperl\lib/File/stat.pm type=file
-E:\tlperl\lib/FileCache.pm type=file
-E:\tlperl\lib/FileHandle.pm type=file
-E:\tlperl\lib/Filter/Simple.pm type=file
-E:\tlperl\lib/Filter/Util/Call.pm type=file
-E:\tlperl\lib/FindBin.pm type=file
-E:\tlperl\lib/Getopt/Long.pm type=file
-E:\tlperl\lib/Getopt/Std.pm type=file
-E:\tlperl\lib/HTTP/Tiny.pm type=file
-E:\tlperl\lib/Hash/Util.pm type=file
-E:\tlperl\lib/Hash/Util/FieldHash.pm type=file
-E:\tlperl\lib/I18N/Collate.pm type=file
-E:\tlperl\lib/I18N/LangTags.pm type=file
-E:\tlperl\lib/I18N/LangTags/Detect.pm type=file
-E:\tlperl\lib/I18N/LangTags/List.pm type=file
-E:\tlperl\lib/I18N/Langinfo.pm type=file
-E:\tlperl\lib/IO.pm type=file
-E:\tlperl\lib/IO/Compress/Adapter/Bzip2.pm type=file
-E:\tlperl\lib/IO/Compress/Adapter/Deflate.pm type=file
-E:\tlperl\lib/IO/Compress/Adapter/Identity.pm type=file
-E:\tlperl\lib/IO/Compress/Base.pm type=file
-E:\tlperl\lib/IO/Compress/Base/Common.pm type=file
-E:\tlperl\lib/IO/Compress/Bzip2.pm type=file
-E:\tlperl\lib/IO/Compress/Deflate.pm type=file
-E:\tlperl\lib/IO/Compress/FAQ.pod type=file
-E:\tlperl\lib/IO/Compress/Gzip.pm type=file
-E:\tlperl\lib/IO/Compress/Gzip/Constants.pm type=file
-E:\tlperl\lib/IO/Compress/RawDeflate.pm type=file
-E:\tlperl\lib/IO/Compress/Zip.pm type=file
-E:\tlperl\lib/IO/Compress/Zip/Constants.pm type=file
-E:\tlperl\lib/IO/Compress/Zlib/Constants.pm type=file
-E:\tlperl\lib/IO/Compress/Zlib/Extra.pm type=file
-E:\tlperl\lib/IO/Dir.pm type=file
-E:\tlperl\lib/IO/File.pm type=file
-E:\tlperl\lib/IO/Handle.pm type=file
-E:\tlperl\lib/IO/Pipe.pm type=file
-E:\tlperl\lib/IO/Poll.pm type=file
-E:\tlperl\lib/IO/Seekable.pm type=file
-E:\tlperl\lib/IO/Select.pm type=file
-E:\tlperl\lib/IO/Socket.pm type=file
-E:\tlperl\lib/IO/Socket/INET.pm type=file
-E:\tlperl\lib/IO/Socket/IP.pm type=file
-E:\tlperl\lib/IO/Socket/UNIX.pm type=file
-E:\tlperl\lib/IO/Uncompress/Adapter/Bunzip2.pm type=file
-E:\tlperl\lib/IO/Uncompress/Adapter/Identity.pm type=file
-E:\tlperl\lib/IO/Uncompress/Adapter/Inflate.pm type=file
-E:\tlperl\lib/IO/Uncompress/AnyInflate.pm type=file
-E:\tlperl\lib/IO/Uncompress/AnyUncompress.pm type=file
-E:\tlperl\lib/IO/Uncompress/Base.pm type=file
-E:\tlperl\lib/IO/Uncompress/Bunzip2.pm type=file
-E:\tlperl\lib/IO/Uncompress/Gunzip.pm type=file
-E:\tlperl\lib/IO/Uncompress/Inflate.pm type=file
-E:\tlperl\lib/IO/Uncompress/RawInflate.pm type=file
-E:\tlperl\lib/IO/Uncompress/Unzip.pm type=file
-E:\tlperl\lib/IO/Zlib.pm type=file
-E:\tlperl\lib/IPC/Cmd.pm type=file
-E:\tlperl\lib/IPC/Open2.pm type=file
-E:\tlperl\lib/IPC/Open3.pm type=file
-E:\tlperl\lib/Internals.pod type=file
-E:\tlperl\lib/JSON/PP.pm type=file
-E:\tlperl\lib/JSON/PP/Boolean.pm type=file
-E:\tlperl\lib/List/Util.pm type=file
-E:\tlperl\lib/List/Util/XS.pm type=file
-E:\tlperl\lib/Locale/Maketext.pm type=file
-E:\tlperl\lib/Locale/Maketext.pod type=file
-E:\tlperl\lib/Locale/Maketext/Cookbook.pod type=file
-E:\tlperl\lib/Locale/Maketext/Guts.pm type=file
-E:\tlperl\lib/Locale/Maketext/GutsLoader.pm type=file
-E:\tlperl\lib/Locale/Maketext/Simple.pm type=file
-E:\tlperl\lib/Locale/Maketext/TPJ13.pod type=file
-E:\tlperl\lib/MIME/Base64.pm type=file
-E:\tlperl\lib/MIME/QuotedPrint.pm type=file
-E:\tlperl\lib/Math/BigFloat.pm type=file
-E:\tlperl\lib/Math/BigFloat/Trace.pm type=file
-E:\tlperl\lib/Math/BigInt.pm type=file
-E:\tlperl\lib/Math/BigInt/Calc.pm type=file
-E:\tlperl\lib/Math/BigInt/FastCalc.pm type=file
-E:\tlperl\lib/Math/BigInt/Lib.pm type=file
-E:\tlperl\lib/Math/BigInt/Trace.pm type=file
-E:\tlperl\lib/Math/BigRat.pm type=file
-E:\tlperl\lib/Math/Complex.pm type=file
-E:\tlperl\lib/Math/Trig.pm type=file
-E:\tlperl\lib/Memoize.pm type=file
-E:\tlperl\lib/Memoize/AnyDBM_File.pm type=file
-E:\tlperl\lib/Memoize/Expire.pm type=file
-E:\tlperl\lib/Memoize/ExpireFile.pm type=file
-E:\tlperl\lib/Memoize/ExpireTest.pm type=file
-E:\tlperl\lib/Memoize/NDBM_File.pm type=file
-E:\tlperl\lib/Memoize/SDBM_File.pm type=file
-E:\tlperl\lib/Memoize/Storable.pm type=file
-E:\tlperl\lib/Module/CoreList.pm type=file
-E:\tlperl\lib/Module/CoreList.pod type=file
-E:\tlperl\lib/Module/CoreList/Utils.pm type=file
-E:\tlperl\lib/Module/Load.pm type=file
-E:\tlperl\lib/Module/Load/Conditional.pm type=file
-E:\tlperl\lib/Module/Loaded.pm type=file
-E:\tlperl\lib/Module/Metadata.pm type=file
-E:\tlperl\lib/NEXT.pm type=file
-E:\tlperl\lib/Net/Cmd.pm type=file
-E:\tlperl\lib/Net/Config.pm type=file
-E:\tlperl\lib/Net/Domain.pm type=file
-E:\tlperl\lib/Net/FTP.pm type=file
-E:\tlperl\lib/Net/FTP/A.pm type=file
-E:\tlperl\lib/Net/FTP/E.pm type=file
-E:\tlperl\lib/Net/FTP/I.pm type=file
-E:\tlperl\lib/Net/FTP/L.pm type=file
-E:\tlperl\lib/Net/FTP/dataconn.pm type=file
-E:\tlperl\lib/Net/NNTP.pm type=file
-E:\tlperl\lib/Net/Netrc.pm type=file
-E:\tlperl\lib/Net/POP3.pm type=file
-E:\tlperl\lib/Net/Ping.pm type=file
-E:\tlperl\lib/Net/SMTP.pm type=file
-E:\tlperl\lib/Net/Time.pm type=file
-E:\tlperl\lib/Net/hostent.pm type=file
-E:\tlperl\lib/Net/libnetFAQ.pod type=file
-E:\tlperl\lib/Net/netent.pm type=file
-E:\tlperl\lib/Net/protoent.pm type=file
-E:\tlperl\lib/Net/servent.pm type=file
-E:\tlperl\lib/O.pm type=file
-E:\tlperl\lib/Opcode.pm type=file
-E:\tlperl\lib/POSIX.pm type=file
-E:\tlperl\lib/POSIX.pod type=file
-E:\tlperl\lib/Params/Check.pm type=file
-E:\tlperl\lib/Parse/CPAN/Meta.pm type=file
-E:\tlperl\lib/Perl/OSType.pm type=file
-E:\tlperl\lib/PerlIO.pm type=file
-E:\tlperl\lib/PerlIO/encoding.pm type=file
-E:\tlperl\lib/PerlIO/mmap.pm type=file
-E:\tlperl\lib/PerlIO/scalar.pm type=file
-E:\tlperl\lib/PerlIO/via.pm type=file
-E:\tlperl\lib/PerlIO/via/QuotedPrint.pm type=file
-E:\tlperl\lib/Pod/Checker.pm type=file
-E:\tlperl\lib/Pod/Escapes.pm type=file
-E:\tlperl\lib/Pod/Functions.pm type=file
-E:\tlperl\lib/Pod/Html.pm type=file
-E:\tlperl\lib/Pod/Man.pm type=file
-E:\tlperl\lib/Pod/ParseLink.pm type=file
-E:\tlperl\lib/Pod/Perldoc.pm type=file
-E:\tlperl\lib/Pod/Perldoc/BaseTo.pm type=file
-E:\tlperl\lib/Pod/Perldoc/GetOptsOO.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToANSI.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToChecker.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToMan.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToNroff.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToPod.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToRtf.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToTerm.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToText.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToTk.pm type=file
-E:\tlperl\lib/Pod/Perldoc/ToXml.pm type=file
-E:\tlperl\lib/Pod/Simple.pm type=file
-E:\tlperl\lib/Pod/Simple.pod type=file
-E:\tlperl\lib/Pod/Simple/BlackBox.pm type=file
-E:\tlperl\lib/Pod/Simple/Checker.pm type=file
-E:\tlperl\lib/Pod/Simple/Debug.pm type=file
-E:\tlperl\lib/Pod/Simple/DumpAsText.pm type=file
-E:\tlperl\lib/Pod/Simple/DumpAsXML.pm type=file
-E:\tlperl\lib/Pod/Simple/HTML.pm type=file
-E:\tlperl\lib/Pod/Simple/HTMLBatch.pm type=file
-E:\tlperl\lib/Pod/Simple/HTMLLegacy.pm type=file
-E:\tlperl\lib/Pod/Simple/JustPod.pm type=file
-E:\tlperl\lib/Pod/Simple/LinkSection.pm type=file
-E:\tlperl\lib/Pod/Simple/Methody.pm type=file
-E:\tlperl\lib/Pod/Simple/Progress.pm type=file
-E:\tlperl\lib/Pod/Simple/PullParser.pm type=file
-E:\tlperl\lib/Pod/Simple/PullParserEndToken.pm type=file
-E:\tlperl\lib/Pod/Simple/PullParserStartToken.pm type=file
-E:\tlperl\lib/Pod/Simple/PullParserTextToken.pm type=file
-E:\tlperl\lib/Pod/Simple/PullParserToken.pm type=file
-E:\tlperl\lib/Pod/Simple/RTF.pm type=file
-E:\tlperl\lib/Pod/Simple/Search.pm type=file
-E:\tlperl\lib/Pod/Simple/SimpleTree.pm type=file
-E:\tlperl\lib/Pod/Simple/Subclassing.pod type=file
-E:\tlperl\lib/Pod/Simple/Text.pm type=file
-E:\tlperl\lib/Pod/Simple/TextContent.pm type=file
-E:\tlperl\lib/Pod/Simple/TiedOutFH.pm type=file
-E:\tlperl\lib/Pod/Simple/Transcode.pm type=file
-E:\tlperl\lib/Pod/Simple/TranscodeDumb.pm type=file
-E:\tlperl\lib/Pod/Simple/TranscodeSmart.pm type=file
-E:\tlperl\lib/Pod/Simple/XHTML.pm type=file
-E:\tlperl\lib/Pod/Simple/XMLOutStream.pm type=file
-E:\tlperl\lib/Pod/Text.pm type=file
-E:\tlperl\lib/Pod/Text/Color.pm type=file
-E:\tlperl\lib/Pod/Text/Overstrike.pm type=file
-E:\tlperl\lib/Pod/Text/Termcap.pm type=file
-E:\tlperl\lib/Pod/Usage.pm type=file
-E:\tlperl\lib/SDBM_File.pm type=file
-E:\tlperl\lib/Safe.pm type=file
-E:\tlperl\lib/Scalar/Util.pm type=file
-E:\tlperl\lib/Search/Dict.pm type=file
-E:\tlperl\lib/SelectSaver.pm type=file
-E:\tlperl\lib/SelfLoader.pm type=file
-E:\tlperl\lib/Socket.pm type=file
-E:\tlperl\lib/Storable.pm type=file
-E:\tlperl\lib/Sub/Util.pm type=file
-E:\tlperl\lib/Symbol.pm type=file
-E:\tlperl\lib/Sys/Hostname.pm type=file
-E:\tlperl\lib/TAP/Base.pm type=file
-E:\tlperl\lib/TAP/Formatter/Base.pm type=file
-E:\tlperl\lib/TAP/Formatter/Color.pm type=file
-E:\tlperl\lib/TAP/Formatter/Console.pm type=file
-E:\tlperl\lib/TAP/Formatter/Console/ParallelSession.pm type=file
-E:\tlperl\lib/TAP/Formatter/Console/Session.pm type=file
-E:\tlperl\lib/TAP/Formatter/File.pm type=file
-E:\tlperl\lib/TAP/Formatter/File/Session.pm type=file
-E:\tlperl\lib/TAP/Formatter/Session.pm type=file
-E:\tlperl\lib/TAP/Harness.pm type=file
-E:\tlperl\lib/TAP/Harness/Beyond.pod type=file
-E:\tlperl\lib/TAP/Harness/Env.pm type=file
-E:\tlperl\lib/TAP/Object.pm type=file
-E:\tlperl\lib/TAP/Parser.pm type=file
-E:\tlperl\lib/TAP/Parser/Aggregator.pm type=file
-E:\tlperl\lib/TAP/Parser/Grammar.pm type=file
-E:\tlperl\lib/TAP/Parser/Iterator.pm type=file
-E:\tlperl\lib/TAP/Parser/Iterator/Array.pm type=file
-E:\tlperl\lib/TAP/Parser/Iterator/Process.pm type=file
-E:\tlperl\lib/TAP/Parser/Iterator/Stream.pm type=file
-E:\tlperl\lib/TAP/Parser/IteratorFactory.pm type=file
-E:\tlperl\lib/TAP/Parser/Multiplexer.pm type=file
-E:\tlperl\lib/TAP/Parser/Result.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Bailout.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Comment.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Plan.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Pragma.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Test.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Unknown.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/Version.pm type=file
-E:\tlperl\lib/TAP/Parser/Result/YAML.pm type=file
-E:\tlperl\lib/TAP/Parser/ResultFactory.pm type=file
-E:\tlperl\lib/TAP/Parser/Scheduler.pm type=file
-E:\tlperl\lib/TAP/Parser/Scheduler/Job.pm type=file
-E:\tlperl\lib/TAP/Parser/Scheduler/Spinner.pm type=file
-E:\tlperl\lib/TAP/Parser/Source.pm type=file
-E:\tlperl\lib/TAP/Parser/SourceHandler.pm type=file
-E:\tlperl\lib/TAP/Parser/SourceHandler/Executable.pm type=file
-E:\tlperl\lib/TAP/Parser/SourceHandler/File.pm type=file
-E:\tlperl\lib/TAP/Parser/SourceHandler/Handle.pm type=file
-E:\tlperl\lib/TAP/Parser/SourceHandler/Perl.pm type=file
-E:\tlperl\lib/TAP/Parser/SourceHandler/RawTAP.pm type=file
-E:\tlperl\lib/TAP/Parser/YAMLish/Reader.pm type=file
-E:\tlperl\lib/TAP/Parser/YAMLish/Writer.pm type=file
-E:\tlperl\lib/Term/ANSIColor.pm type=file
-E:\tlperl\lib/Term/Cap.pm type=file
-E:\tlperl\lib/Term/Complete.pm type=file
-E:\tlperl\lib/Term/ReadLine.pm type=file
-E:\tlperl\lib/Test.pm type=file
-E:\tlperl\lib/Test/Builder.pm type=file
-E:\tlperl\lib/Test/Builder/Formatter.pm type=file
-E:\tlperl\lib/Test/Builder/IO/Scalar.pm type=file
-E:\tlperl\lib/Test/Builder/Module.pm type=file
-E:\tlperl\lib/Test/Builder/Tester.pm type=file
-E:\tlperl\lib/Test/Builder/Tester/Color.pm type=file
-E:\tlperl\lib/Test/Builder/TodoDiag.pm type=file
-E:\tlperl\lib/Test/Harness.pm type=file
-E:\tlperl\lib/Test/More.pm type=file
-E:\tlperl\lib/Test/Simple.pm type=file
-E:\tlperl\lib/Test/Tester.pm type=file
-E:\tlperl\lib/Test/Tester/Capture.pm type=file
-E:\tlperl\lib/Test/Tester/CaptureRunner.pm type=file
-E:\tlperl\lib/Test/Tester/Delegate.pm type=file
-E:\tlperl\lib/Test/Tutorial.pod type=file
-E:\tlperl\lib/Test/use/ok.pm type=file
-E:\tlperl\lib/Test2.pm type=file
-E:\tlperl\lib/Test2/API.pm type=file
-E:\tlperl\lib/Test2/API/Breakage.pm type=file
-E:\tlperl\lib/Test2/API/Context.pm type=file
-E:\tlperl\lib/Test2/API/Instance.pm type=file
-E:\tlperl\lib/Test2/API/InterceptResult.pm type=file
-E:\tlperl\lib/Test2/API/InterceptResult/Event.pm type=file
-E:\tlperl\lib/Test2/API/InterceptResult/Facet.pm type=file
-E:\tlperl\lib/Test2/API/InterceptResult/Hub.pm type=file
-E:\tlperl\lib/Test2/API/InterceptResult/Squasher.pm type=file
-E:\tlperl\lib/Test2/API/Stack.pm type=file
-E:\tlperl\lib/Test2/Event.pm type=file
-E:\tlperl\lib/Test2/Event/Bail.pm type=file
-E:\tlperl\lib/Test2/Event/Diag.pm type=file
-E:\tlperl\lib/Test2/Event/Encoding.pm type=file
-E:\tlperl\lib/Test2/Event/Exception.pm type=file
-E:\tlperl\lib/Test2/Event/Fail.pm type=file
-E:\tlperl\lib/Test2/Event/Generic.pm type=file
-E:\tlperl\lib/Test2/Event/Note.pm type=file
-E:\tlperl\lib/Test2/Event/Ok.pm type=file
-E:\tlperl\lib/Test2/Event/Pass.pm type=file
-E:\tlperl\lib/Test2/Event/Plan.pm type=file
-E:\tlperl\lib/Test2/Event/Skip.pm type=file
-E:\tlperl\lib/Test2/Event/Subtest.pm type=file
-E:\tlperl\lib/Test2/Event/TAP/Version.pm type=file
-E:\tlperl\lib/Test2/Event/V2.pm type=file
-E:\tlperl\lib/Test2/Event/Waiting.pm type=file
-E:\tlperl\lib/Test2/EventFacet.pm type=file
-E:\tlperl\lib/Test2/EventFacet/About.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Amnesty.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Assert.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Control.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Error.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Hub.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Info.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Info/Table.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Meta.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Parent.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Plan.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Render.pm type=file
-E:\tlperl\lib/Test2/EventFacet/Trace.pm type=file
-E:\tlperl\lib/Test2/Formatter.pm type=file
-E:\tlperl\lib/Test2/Formatter/TAP.pm type=file
-E:\tlperl\lib/Test2/Hub.pm type=file
-E:\tlperl\lib/Test2/Hub/Interceptor.pm type=file
-E:\tlperl\lib/Test2/Hub/Interceptor/Terminator.pm type=file
-E:\tlperl\lib/Test2/Hub/Subtest.pm type=file
-E:\tlperl\lib/Test2/IPC.pm type=file
-E:\tlperl\lib/Test2/IPC/Driver.pm type=file
-E:\tlperl\lib/Test2/IPC/Driver/Files.pm type=file
-E:\tlperl\lib/Test2/Tools/Tiny.pm type=file
-E:\tlperl\lib/Test2/Transition.pod type=file
-E:\tlperl\lib/Test2/Util.pm type=file
-E:\tlperl\lib/Test2/Util/ExternalMeta.pm type=file
-E:\tlperl\lib/Test2/Util/Facets2Legacy.pm type=file
-E:\tlperl\lib/Test2/Util/HashBase.pm type=file
-E:\tlperl\lib/Test2/Util/Trace.pm type=file
-E:\tlperl\lib/Text/Abbrev.pm type=file
-E:\tlperl\lib/Text/Balanced.pm type=file
-E:\tlperl\lib/Text/ParseWords.pm type=file
-E:\tlperl\lib/Text/Tabs.pm type=file
-E:\tlperl\lib/Text/Wrap.pm type=file
-E:\tlperl\lib/Thread.pm type=file
-E:\tlperl\lib/Thread/Queue.pm type=file
-E:\tlperl\lib/Thread/Semaphore.pm type=file
-E:\tlperl\lib/Tie/Array.pm type=file
-E:\tlperl\lib/Tie/File.pm type=file
-E:\tlperl\lib/Tie/Handle.pm type=file
-E:\tlperl\lib/Tie/Hash.pm type=file
-E:\tlperl\lib/Tie/Hash/NamedCapture.pm type=file
-E:\tlperl\lib/Tie/Memoize.pm type=file
-E:\tlperl\lib/Tie/RefHash.pm type=file
-E:\tlperl\lib/Tie/Scalar.pm type=file
-E:\tlperl\lib/Tie/StdHandle.pm type=file
-E:\tlperl\lib/Tie/SubstrHash.pm type=file
-E:\tlperl\lib/Time/HiRes.pm type=file
-E:\tlperl\lib/Time/Local.pm type=file
-E:\tlperl\lib/Time/Piece.pm type=file
-E:\tlperl\lib/Time/Seconds.pm type=file
-E:\tlperl\lib/Time/gmtime.pm type=file
-E:\tlperl\lib/Time/localtime.pm type=file
-E:\tlperl\lib/Time/tm.pm type=file
-E:\tlperl\lib/UNIVERSAL.pm type=file
-E:\tlperl\lib/Unicode/Collate.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/Big5.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/GB2312.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/JISX0208.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/Korean.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/Pinyin.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/Stroke.pm type=file
-E:\tlperl\lib/Unicode/Collate/CJK/Zhuyin.pm type=file
-E:\tlperl\lib/Unicode/Collate/Locale.pm type=file
-E:\tlperl\lib/Unicode/Collate/Locale/af.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ar.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/as.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/az.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/be.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/bn.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ca.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/cs.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/cu.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/cy.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/da.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/de_at_ph.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/de_phone.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/dsb.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ee.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/eo.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/es.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/es_trad.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/et.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/fa.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/fi.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/fi_phone.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/fil.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/fo.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/fr_ca.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/gu.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ha.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/haw.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/he.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/hi.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/hr.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/hu.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/hy.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ig.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/is.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ja.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/kk.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/kl.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/kn.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ko.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/kok.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/lkt.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ln.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/lt.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/lv.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/mk.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ml.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/mr.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/mt.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/nb.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/nn.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/nso.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/om.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/or.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/pa.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/pl.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ro.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sa.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/se.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/si.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/si_dict.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sk.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sl.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sq.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sr.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sv.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/sv_refo.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ta.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/te.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/th.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/tn.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/to.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/tr.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ug_cyrl.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/uk.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/ur.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/vi.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/vo.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/wae.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/wo.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/yo.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/zh.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/zh_big5.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/zh_gb.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/zh_pin.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/zh_strk.pl type=file
-E:\tlperl\lib/Unicode/Collate/Locale/zh_zhu.pl type=file
-E:\tlperl\lib/Unicode/Collate/allkeys.txt type=file
-E:\tlperl\lib/Unicode/Collate/keys.txt type=file
-E:\tlperl\lib/Unicode/Normalize.pm type=file
-E:\tlperl\lib/Unicode/UCD.pm type=file
-E:\tlperl\lib/User/grent.pm type=file
-E:\tlperl\lib/User/pwent.pm type=file
-E:\tlperl\lib/Win32.pm type=file
-E:\tlperl\lib/Win32API/File.pm type=file
-E:\tlperl\lib/Win32API/File/cFile.pc type=file
-E:\tlperl\lib/Win32CORE.pm type=file
-E:\tlperl\lib/XSLoader.pm type=file
-E:\tlperl\lib/_charnames.pm type=file
-E:\tlperl\lib/attributes.pm type=file
-E:\tlperl\lib/auto/B/B.dll type=file
-E:\tlperl\lib/auto/Compress/Raw/Bzip2/Bzip2.dll type=file
-E:\tlperl\lib/auto/Compress/Raw/Zlib/Zlib.dll type=file
-E:\tlperl\lib/auto/Cwd/Cwd.dll type=file
-E:\tlperl\lib/auto/Data/Dumper/Dumper.dll type=file
-E:\tlperl\lib/auto/Devel/Peek/Peek.dll type=file
-E:\tlperl\lib/auto/Digest/MD5/MD5.dll type=file
-E:\tlperl\lib/auto/Digest/SHA/SHA.dll type=file
-E:\tlperl\lib/auto/Encode/Byte/Byte.dll type=file
-E:\tlperl\lib/auto/Encode/CN/CN.dll type=file
-E:\tlperl\lib/auto/Encode/EBCDIC/EBCDIC.dll type=file
-E:\tlperl\lib/auto/Encode/Encode.dll type=file
-E:\tlperl\lib/auto/Encode/JP/JP.dll type=file
-E:\tlperl\lib/auto/Encode/KR/KR.dll type=file
-E:\tlperl\lib/auto/Encode/Symbol/Symbol.dll type=file
-E:\tlperl\lib/auto/Encode/TW/TW.dll type=file
-E:\tlperl\lib/auto/Encode/Unicode/Unicode.dll type=file
-E:\tlperl\lib/auto/Fcntl/Fcntl.dll type=file
-E:\tlperl\lib/auto/File/DosGlob/DosGlob.dll type=file
-E:\tlperl\lib/auto/File/Glob/Glob.dll type=file
-E:\tlperl\lib/auto/Filter/Util/Call/Call.dll type=file
-E:\tlperl\lib/auto/Hash/Util/FieldHash/FieldHash.dll type=file
-E:\tlperl\lib/auto/Hash/Util/Util.dll type=file
-E:\tlperl\lib/auto/I18N/Langinfo/Langinfo.dll type=file
-E:\tlperl\lib/auto/IO/IO.dll type=file
-E:\tlperl\lib/auto/List/Util/Util.dll type=file
-E:\tlperl\lib/auto/MIME/Base64/Base64.dll type=file
-E:\tlperl\lib/auto/Math/BigInt/FastCalc/FastCalc.dll type=file
-E:\tlperl\lib/auto/Opcode/Opcode.dll type=file
-E:\tlperl\lib/auto/POSIX/POSIX.dll type=file
-E:\tlperl\lib/auto/PerlIO/encoding/encoding.dll type=file
-E:\tlperl\lib/auto/PerlIO/mmap/mmap.dll type=file
-E:\tlperl\lib/auto/PerlIO/scalar/scalar.dll type=file
-E:\tlperl\lib/auto/PerlIO/via/via.dll type=file
-E:\tlperl\lib/auto/SDBM_File/SDBM_File.dll type=file
-E:\tlperl\lib/auto/Socket/Socket.dll type=file
-E:\tlperl\lib/auto/Storable/Storable.dll type=file
-E:\tlperl\lib/auto/Sys/Hostname/Hostname.dll type=file
-E:\tlperl\lib/auto/Time/HiRes/HiRes.dll type=file
-E:\tlperl\lib/auto/Time/Piece/Piece.dll type=file
-E:\tlperl\lib/auto/Unicode/Collate/Collate.dll type=file
-E:\tlperl\lib/auto/Unicode/Normalize/Normalize.dll type=file
-E:\tlperl\lib/auto/Win32/Win32.dll type=file
-E:\tlperl\lib/auto/Win32API/File/File.dll type=file
-E:\tlperl\lib/auto/Win32CORE/extralibs.ld type=file
-E:\tlperl\lib/auto/attributes/attributes.dll type=file
-E:\tlperl\lib/auto/mro/mro.dll type=file
-E:\tlperl\lib/auto/re/re.dll type=file
-E:\tlperl\lib/auto/threads/shared/shared.dll type=file
-E:\tlperl\lib/auto/threads/threads.dll type=file
-E:\tlperl\lib/autodie.pm type=file
-E:\tlperl\lib/autodie/Scope/Guard.pm type=file
-E:\tlperl\lib/autodie/Scope/GuardStack.pm type=file
-E:\tlperl\lib/autodie/Util.pm type=file
-E:\tlperl\lib/autodie/exception.pm type=file
-E:\tlperl\lib/autodie/exception/system.pm type=file
-E:\tlperl\lib/autodie/hints.pm type=file
-E:\tlperl\lib/autodie/skip.pm type=file
-E:\tlperl\lib/autouse.pm type=file
-E:\tlperl\lib/base.pm type=file
-E:\tlperl\lib/bigint.pm type=file
-E:\tlperl\lib/bignum.pm type=file
-E:\tlperl\lib/bigrat.pm type=file
-E:\tlperl\lib/blib.pm type=file
-E:\tlperl\lib/bytes.pm type=file
-E:\tlperl\lib/bytes_heavy.pl type=file
-E:\tlperl\lib/charnames.pm type=file
-E:\tlperl\lib/constant.pm type=file
-E:\tlperl\lib/deprecate.pm type=file
-E:\tlperl\lib/diagnostics.pm type=file
-E:\tlperl\lib/dumpvar.pl type=file
-E:\tlperl\lib/encoding.pm type=file
-E:\tlperl\lib/encoding/warnings.pm type=file
-E:\tlperl\lib/experimental.pm type=file
-E:\tlperl\lib/feature.pm type=file
-E:\tlperl\lib/fields.pm type=file
-E:\tlperl\lib/filetest.pm type=file
-E:\tlperl\lib/if.pm type=file
-E:\tlperl\lib/integer.pm type=file
-E:\tlperl\lib/less.pm type=file
-E:\tlperl\lib/lib.pm type=file
-E:\tlperl\lib/locale.pm type=file
-E:\tlperl\lib/meta_notation.pm type=file
-E:\tlperl\lib/mro.pm type=file
-E:\tlperl\lib/ok.pm type=file
-E:\tlperl\lib/open.pm type=file
-E:\tlperl\lib/ops.pm type=file
-E:\tlperl\lib/overload.pm type=file
-E:\tlperl\lib/overload/numbers.pm type=file
-E:\tlperl\lib/overloading.pm type=file
-E:\tlperl\lib/parent.pm type=file
-E:\tlperl\lib/perl5db.pl type=file
-E:\tlperl\lib/perlfaq.pm type=file
-E:\tlperl\lib/pods/perl.pod type=file
-E:\tlperl\lib/pods/perl5004delta.pod type=file
-E:\tlperl\lib/pods/perl5005delta.pod type=file
-E:\tlperl\lib/pods/perl5100delta.pod type=file
-E:\tlperl\lib/pods/perl5101delta.pod type=file
-E:\tlperl\lib/pods/perl5120delta.pod type=file
-E:\tlperl\lib/pods/perl5121delta.pod type=file
-E:\tlperl\lib/pods/perl5122delta.pod type=file
-E:\tlperl\lib/pods/perl5123delta.pod type=file
-E:\tlperl\lib/pods/perl5124delta.pod type=file
-E:\tlperl\lib/pods/perl5125delta.pod type=file
-E:\tlperl\lib/pods/perl5140delta.pod type=file
-E:\tlperl\lib/pods/perl5141delta.pod type=file
-E:\tlperl\lib/pods/perl5142delta.pod type=file
-E:\tlperl\lib/pods/perl5143delta.pod type=file
-E:\tlperl\lib/pods/perl5144delta.pod type=file
-E:\tlperl\lib/pods/perl5160delta.pod type=file
-E:\tlperl\lib/pods/perl5161delta.pod type=file
-E:\tlperl\lib/pods/perl5162delta.pod type=file
-E:\tlperl\lib/pods/perl5163delta.pod type=file
-E:\tlperl\lib/pods/perl5180delta.pod type=file
-E:\tlperl\lib/pods/perl5181delta.pod type=file
-E:\tlperl\lib/pods/perl5182delta.pod type=file
-E:\tlperl\lib/pods/perl5184delta.pod type=file
-E:\tlperl\lib/pods/perl5200delta.pod type=file
-E:\tlperl\lib/pods/perl5201delta.pod type=file
-E:\tlperl\lib/pods/perl5202delta.pod type=file
-E:\tlperl\lib/pods/perl5203delta.pod type=file
-E:\tlperl\lib/pods/perl5220delta.pod type=file
-E:\tlperl\lib/pods/perl5221delta.pod type=file
-E:\tlperl\lib/pods/perl5222delta.pod type=file
-E:\tlperl\lib/pods/perl5223delta.pod type=file
-E:\tlperl\lib/pods/perl5224delta.pod type=file
-E:\tlperl\lib/pods/perl5240delta.pod type=file
-E:\tlperl\lib/pods/perl5241delta.pod type=file
-E:\tlperl\lib/pods/perl5242delta.pod type=file
-E:\tlperl\lib/pods/perl5243delta.pod type=file
-E:\tlperl\lib/pods/perl5244delta.pod type=file
-E:\tlperl\lib/pods/perl5260delta.pod type=file
-E:\tlperl\lib/pods/perl5261delta.pod type=file
-E:\tlperl\lib/pods/perl5262delta.pod type=file
-E:\tlperl\lib/pods/perl5263delta.pod type=file
-E:\tlperl\lib/pods/perl5280delta.pod type=file
-E:\tlperl\lib/pods/perl5281delta.pod type=file
-E:\tlperl\lib/pods/perl5282delta.pod type=file
-E:\tlperl\lib/pods/perl5283delta.pod type=file
-E:\tlperl\lib/pods/perl5300delta.pod type=file
-E:\tlperl\lib/pods/perl5301delta.pod type=file
-E:\tlperl\lib/pods/perl5302delta.pod type=file
-E:\tlperl\lib/pods/perl5303delta.pod type=file
-E:\tlperl\lib/pods/perl5320delta.pod type=file
-E:\tlperl\lib/pods/perl5321delta.pod type=file
-E:\tlperl\lib/pods/perl5340delta.pod type=file
-E:\tlperl\lib/pods/perl561delta.pod type=file
-E:\tlperl\lib/pods/perl56delta.pod type=file
-E:\tlperl\lib/pods/perl581delta.pod type=file
-E:\tlperl\lib/pods/perl582delta.pod type=file
-E:\tlperl\lib/pods/perl583delta.pod type=file
-E:\tlperl\lib/pods/perl584delta.pod type=file
-E:\tlperl\lib/pods/perl585delta.pod type=file
-E:\tlperl\lib/pods/perl586delta.pod type=file
-E:\tlperl\lib/pods/perl587delta.pod type=file
-E:\tlperl\lib/pods/perl588delta.pod type=file
-E:\tlperl\lib/pods/perl589delta.pod type=file
-E:\tlperl\lib/pods/perl58delta.pod type=file
-E:\tlperl\lib/pods/perlaix.pod type=file
-E:\tlperl\lib/pods/perlamiga.pod type=file
-E:\tlperl\lib/pods/perlandroid.pod type=file
-E:\tlperl\lib/pods/perlapi.pod type=file
-E:\tlperl\lib/pods/perlapio.pod type=file
-E:\tlperl\lib/pods/perlartistic.pod type=file
-E:\tlperl\lib/pods/perlbook.pod type=file
-E:\tlperl\lib/pods/perlboot.pod type=file
-E:\tlperl\lib/pods/perlbot.pod type=file
-E:\tlperl\lib/pods/perlbs2000.pod type=file
-E:\tlperl\lib/pods/perlcall.pod type=file
-E:\tlperl\lib/pods/perlcheat.pod type=file
-E:\tlperl\lib/pods/perlclib.pod type=file
-E:\tlperl\lib/pods/perlcn.pod type=file
-E:\tlperl\lib/pods/perlcommunity.pod type=file
-E:\tlperl\lib/pods/perlcygwin.pod type=file
-E:\tlperl\lib/pods/perldata.pod type=file
-E:\tlperl\lib/pods/perldbmfilter.pod type=file
-E:\tlperl\lib/pods/perldebguts.pod type=file
-E:\tlperl\lib/pods/perldebtut.pod type=file
-E:\tlperl\lib/pods/perldebug.pod type=file
-E:\tlperl\lib/pods/perldelta.pod type=file
-E:\tlperl\lib/pods/perldeprecation.pod type=file
-E:\tlperl\lib/pods/perldiag.pod type=file
-E:\tlperl\lib/pods/perldoc.pod type=file
-E:\tlperl\lib/pods/perldocstyle.pod type=file
-E:\tlperl\lib/pods/perldos.pod type=file
-E:\tlperl\lib/pods/perldsc.pod type=file
-E:\tlperl\lib/pods/perldtrace.pod type=file
-E:\tlperl\lib/pods/perlebcdic.pod type=file
-E:\tlperl\lib/pods/perlembed.pod type=file
-E:\tlperl\lib/pods/perlexperiment.pod type=file
-E:\tlperl\lib/pods/perlfaq.pod type=file
-E:\tlperl\lib/pods/perlfaq1.pod type=file
-E:\tlperl\lib/pods/perlfaq2.pod type=file
-E:\tlperl\lib/pods/perlfaq3.pod type=file
-E:\tlperl\lib/pods/perlfaq4.pod type=file
-E:\tlperl\lib/pods/perlfaq5.pod type=file
-E:\tlperl\lib/pods/perlfaq6.pod type=file
-E:\tlperl\lib/pods/perlfaq7.pod type=file
-E:\tlperl\lib/pods/perlfaq8.pod type=file
-E:\tlperl\lib/pods/perlfaq9.pod type=file
-E:\tlperl\lib/pods/perlfilter.pod type=file
-E:\tlperl\lib/pods/perlfork.pod type=file
-E:\tlperl\lib/pods/perlform.pod type=file
-E:\tlperl\lib/pods/perlfreebsd.pod type=file
-E:\tlperl\lib/pods/perlfunc.pod type=file
-E:\tlperl\lib/pods/perlgit.pod type=file
-E:\tlperl\lib/pods/perlglossary.pod type=file
-E:\tlperl\lib/pods/perlgov.pod type=file
-E:\tlperl\lib/pods/perlgpl.pod type=file
-E:\tlperl\lib/pods/perlguts.pod type=file
-E:\tlperl\lib/pods/perlhack.pod type=file
-E:\tlperl\lib/pods/perlhacktips.pod type=file
-E:\tlperl\lib/pods/perlhacktut.pod type=file
-E:\tlperl\lib/pods/perlhaiku.pod type=file
-E:\tlperl\lib/pods/perlhist.pod type=file
-E:\tlperl\lib/pods/perlhpux.pod type=file
-E:\tlperl\lib/pods/perlhurd.pod type=file
-E:\tlperl\lib/pods/perlintern.pod type=file
-E:\tlperl\lib/pods/perlinterp.pod type=file
-E:\tlperl\lib/pods/perlintro.pod type=file
-E:\tlperl\lib/pods/perliol.pod type=file
-E:\tlperl\lib/pods/perlipc.pod type=file
-E:\tlperl\lib/pods/perlirix.pod type=file
-E:\tlperl\lib/pods/perljp.pod type=file
-E:\tlperl\lib/pods/perlko.pod type=file
-E:\tlperl\lib/pods/perllexwarn.pod type=file
-E:\tlperl\lib/pods/perllinux.pod type=file
-E:\tlperl\lib/pods/perllocale.pod type=file
-E:\tlperl\lib/pods/perllol.pod type=file
-E:\tlperl\lib/pods/perlmacos.pod type=file
-E:\tlperl\lib/pods/perlmacosx.pod type=file
-E:\tlperl\lib/pods/perlmod.pod type=file
-E:\tlperl\lib/pods/perlmodinstall.pod type=file
-E:\tlperl\lib/pods/perlmodlib.pod type=file
-E:\tlperl\lib/pods/perlmodstyle.pod type=file
-E:\tlperl\lib/pods/perlmroapi.pod type=file
-E:\tlperl\lib/pods/perlnetware.pod type=file
-E:\tlperl\lib/pods/perlnewmod.pod type=file
-E:\tlperl\lib/pods/perlnumber.pod type=file
-E:\tlperl\lib/pods/perlobj.pod type=file
-E:\tlperl\lib/pods/perlootut.pod type=file
-E:\tlperl\lib/pods/perlop.pod type=file
-E:\tlperl\lib/pods/perlopenbsd.pod type=file
-E:\tlperl\lib/pods/perlopentut.pod type=file
-E:\tlperl\lib/pods/perlos2.pod type=file
-E:\tlperl\lib/pods/perlos390.pod type=file
-E:\tlperl\lib/pods/perlos400.pod type=file
-E:\tlperl\lib/pods/perlpacktut.pod type=file
-E:\tlperl\lib/pods/perlperf.pod type=file
-E:\tlperl\lib/pods/perlplan9.pod type=file
-E:\tlperl\lib/pods/perlpod.pod type=file
-E:\tlperl\lib/pods/perlpodspec.pod type=file
-E:\tlperl\lib/pods/perlpodstyle.pod type=file
-E:\tlperl\lib/pods/perlpolicy.pod type=file
-E:\tlperl\lib/pods/perlport.pod type=file
-E:\tlperl\lib/pods/perlpragma.pod type=file
-E:\tlperl\lib/pods/perlqnx.pod type=file
-E:\tlperl\lib/pods/perlre.pod type=file
-E:\tlperl\lib/pods/perlreapi.pod type=file
-E:\tlperl\lib/pods/perlrebackslash.pod type=file
-E:\tlperl\lib/pods/perlrecharclass.pod type=file
-E:\tlperl\lib/pods/perlref.pod type=file
-E:\tlperl\lib/pods/perlreftut.pod type=file
-E:\tlperl\lib/pods/perlreguts.pod type=file
-E:\tlperl\lib/pods/perlrepository.pod type=file
-E:\tlperl\lib/pods/perlrequick.pod type=file
-E:\tlperl\lib/pods/perlreref.pod type=file
-E:\tlperl\lib/pods/perlretut.pod type=file
-E:\tlperl\lib/pods/perlriscos.pod type=file
-E:\tlperl\lib/pods/perlrun.pod type=file
-E:\tlperl\lib/pods/perlsec.pod type=file
-E:\tlperl\lib/pods/perlsecpolicy.pod type=file
-E:\tlperl\lib/pods/perlsolaris.pod type=file
-E:\tlperl\lib/pods/perlsource.pod type=file
-E:\tlperl\lib/pods/perlstyle.pod type=file
-E:\tlperl\lib/pods/perlsub.pod type=file
-E:\tlperl\lib/pods/perlsyn.pod type=file
-E:\tlperl\lib/pods/perlsynology.pod type=file
-E:\tlperl\lib/pods/perlthrtut.pod type=file
-E:\tlperl\lib/pods/perltie.pod type=file
-E:\tlperl\lib/pods/perltoc.pod type=file
-E:\tlperl\lib/pods/perltodo.pod type=file
-E:\tlperl\lib/pods/perltooc.pod type=file
-E:\tlperl\lib/pods/perltoot.pod type=file
-E:\tlperl\lib/pods/perltrap.pod type=file
-E:\tlperl\lib/pods/perltru64.pod type=file
-E:\tlperl\lib/pods/perltw.pod type=file
-E:\tlperl\lib/pods/perlunicode.pod type=file
-E:\tlperl\lib/pods/perlunicook.pod type=file
-E:\tlperl\lib/pods/perlunifaq.pod type=file
-E:\tlperl\lib/pods/perluniintro.pod type=file
-E:\tlperl\lib/pods/perluniprops.pod type=file
-E:\tlperl\lib/pods/perlunitut.pod type=file
-E:\tlperl\lib/pods/perlutil.pod type=file
-E:\tlperl\lib/pods/perlvar.pod type=file
-E:\tlperl\lib/pods/perlvms.pod type=file
-E:\tlperl\lib/pods/perlvos.pod type=file
-E:\tlperl\lib/pods/perlwin32.pod type=file
-E:\tlperl\lib/pods/perlxs.pod type=file
-E:\tlperl\lib/pods/perlxstut.pod type=file
-E:\tlperl\lib/pods/perlxstypemap.pod type=file
-E:\tlperl\lib/re.pm type=file
-E:\tlperl\lib/sigtrap.pm type=file
-E:\tlperl\lib/sort.pm type=file
-E:\tlperl\lib/strict.pm type=file
-E:\tlperl\lib/subs.pm type=file
-E:\tlperl\lib/threads.pm type=file
-E:\tlperl\lib/threads/shared.pm type=file
-E:\tlperl\lib/unicore/Blocks.txt type=file
-E:\tlperl\lib/unicore/CombiningClass.pl type=file
-E:\tlperl\lib/unicore/Decomposition.pl type=file
-E:\tlperl\lib/unicore/Name.pl type=file
-E:\tlperl\lib/unicore/Name.pm type=file
-E:\tlperl\lib/unicore/NamedSequences.txt type=file
-E:\tlperl\lib/unicore/SpecialCasing.txt type=file
-E:\tlperl\lib/unicore/To/Age.pl type=file
-E:\tlperl\lib/unicore/To/Bc.pl type=file
-E:\tlperl\lib/unicore/To/Bmg.pl type=file
-E:\tlperl\lib/unicore/To/Bpb.pl type=file
-E:\tlperl\lib/unicore/To/Bpt.pl type=file
-E:\tlperl\lib/unicore/To/Cf.pl type=file
-E:\tlperl\lib/unicore/To/Digit.pl type=file
-E:\tlperl\lib/unicore/To/Ea.pl type=file
-E:\tlperl\lib/unicore/To/EqUIdeo.pl type=file
-E:\tlperl\lib/unicore/To/Fold.pl type=file
-E:\tlperl\lib/unicore/To/GCB.pl type=file
-E:\tlperl\lib/unicore/To/Gc.pl type=file
-E:\tlperl\lib/unicore/To/Hst.pl type=file
-E:\tlperl\lib/unicore/To/Identif2.pl type=file
-E:\tlperl\lib/unicore/To/Identifi.pl type=file
-E:\tlperl\lib/unicore/To/InPC.pl type=file
-E:\tlperl\lib/unicore/To/InSC.pl type=file
-E:\tlperl\lib/unicore/To/Isc.pl type=file
-E:\tlperl\lib/unicore/To/Jg.pl type=file
-E:\tlperl\lib/unicore/To/Jt.pl type=file
-E:\tlperl\lib/unicore/To/Lb.pl type=file
-E:\tlperl\lib/unicore/To/Lc.pl type=file
-E:\tlperl\lib/unicore/To/Lower.pl type=file
-E:\tlperl\lib/unicore/To/NFCQC.pl type=file
-E:\tlperl\lib/unicore/To/NFDQC.pl type=file
-E:\tlperl\lib/unicore/To/NFKCCF.pl type=file
-E:\tlperl\lib/unicore/To/NFKCQC.pl type=file
-E:\tlperl\lib/unicore/To/NFKDQC.pl type=file
-E:\tlperl\lib/unicore/To/Na1.pl type=file
-E:\tlperl\lib/unicore/To/NameAlia.pl type=file
-E:\tlperl\lib/unicore/To/Nt.pl type=file
-E:\tlperl\lib/unicore/To/Nv.pl type=file
-E:\tlperl\lib/unicore/To/PerlDeci.pl type=file
-E:\tlperl\lib/unicore/To/SB.pl type=file
-E:\tlperl\lib/unicore/To/Sc.pl type=file
-E:\tlperl\lib/unicore/To/Scx.pl type=file
-E:\tlperl\lib/unicore/To/Tc.pl type=file
-E:\tlperl\lib/unicore/To/Title.pl type=file
-E:\tlperl\lib/unicore/To/Uc.pl type=file
-E:\tlperl\lib/unicore/To/Upper.pl type=file
-E:\tlperl\lib/unicore/To/Vo.pl type=file
-E:\tlperl\lib/unicore/To/WB.pl type=file
-E:\tlperl\lib/unicore/To/_PerlLB.pl type=file
-E:\tlperl\lib/unicore/To/_PerlSCX.pl type=file
-E:\tlperl\lib/unicore/UCD.pl type=file
-E:\tlperl\lib/unicore/lib/Age/NA.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V100.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V11.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V110.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V120.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V130.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V20.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V30.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V31.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V32.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V40.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V41.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V50.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V51.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V52.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V60.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V61.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V70.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V80.pl type=file
-E:\tlperl\lib/unicore/lib/Age/V90.pl type=file
-E:\tlperl\lib/unicore/lib/Alpha/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/AL.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/AN.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/B.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/BN.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/CS.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/EN.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/ES.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/ET.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/L.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/NSM.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/ON.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/R.pl type=file
-E:\tlperl\lib/unicore/lib/Bc/WS.pl type=file
-E:\tlperl\lib/unicore/lib/BidiC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/BidiM/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Blk/NB.pl type=file
-E:\tlperl\lib/unicore/lib/Bpt/C.pl type=file
-E:\tlperl\lib/unicore/lib/Bpt/N.pl type=file
-E:\tlperl\lib/unicore/lib/Bpt/O.pl type=file
-E:\tlperl\lib/unicore/lib/CE/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CI/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CWCF/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CWCM/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CWKCF/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CWL/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CWT/Y.pl type=file
-E:\tlperl\lib/unicore/lib/CWU/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Cased/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/A.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/AL.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/AR.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/ATAR.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/B.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/BR.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/DB.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/NK.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/NR.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/OV.pl type=file
-E:\tlperl\lib/unicore/lib/Ccc/VR.pl type=file
-E:\tlperl\lib/unicore/lib/CompEx/Y.pl type=file
-E:\tlperl\lib/unicore/lib/DI/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Dash/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Dep/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Dia/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Com.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Enc.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Fin.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Font.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Init.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Iso.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Med.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Nar.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Nb.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/NonCanon.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Sqr.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Sub.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Sup.pl type=file
-E:\tlperl\lib/unicore/lib/Dt/Vert.pl type=file
-E:\tlperl\lib/unicore/lib/EBase/Y.pl type=file
-E:\tlperl\lib/unicore/lib/EComp/Y.pl type=file
-E:\tlperl\lib/unicore/lib/EPres/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Ea/A.pl type=file
-E:\tlperl\lib/unicore/lib/Ea/H.pl type=file
-E:\tlperl\lib/unicore/lib/Ea/N.pl type=file
-E:\tlperl\lib/unicore/lib/Ea/Na.pl type=file
-E:\tlperl\lib/unicore/lib/Ea/W.pl type=file
-E:\tlperl\lib/unicore/lib/Emoji/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Ext/Y.pl type=file
-E:\tlperl\lib/unicore/lib/ExtPict/Y.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/CN.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/EX.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/LV.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/LVT.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/PP.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/SM.pl type=file
-E:\tlperl\lib/unicore/lib/GCB/XX.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/C.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Cf.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Cn.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/L.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/LC.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Ll.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Lm.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Lo.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Lu.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/M.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Mc.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Me.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Mn.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/N.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Nd.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Nl.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/No.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/P.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Pc.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Pd.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Pe.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Pf.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Pi.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Po.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Ps.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/S.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Sc.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Sk.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Sm.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/So.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Z.pl type=file
-E:\tlperl\lib/unicore/lib/Gc/Zs.pl type=file
-E:\tlperl\lib/unicore/lib/GrBase/Y.pl type=file
-E:\tlperl\lib/unicore/lib/GrExt/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Hex/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Hst/NA.pl type=file
-E:\tlperl\lib/unicore/lib/Hyphen/T.pl type=file
-E:\tlperl\lib/unicore/lib/IDC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/IDS/Y.pl type=file
-E:\tlperl\lib/unicore/lib/IdStatus/Allowed.pl type=file
-E:\tlperl\lib/unicore/lib/IdStatus/Restrict.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/DefaultI.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/Exclusio.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/Inclusio.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/LimitedU.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/NotChara.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/NotNFKC.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/NotXID.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/Obsolete.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/Recommen.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/Technica.pl type=file
-E:\tlperl\lib/unicore/lib/IdType/Uncommon.pl type=file
-E:\tlperl\lib/unicore/lib/Ideo/Y.pl type=file
-E:\tlperl\lib/unicore/lib/In/10_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/11_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/12_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/12_1.pl type=file
-E:\tlperl\lib/unicore/lib/In/13_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/2_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/2_1.pl type=file
-E:\tlperl\lib/unicore/lib/In/3_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/3_1.pl type=file
-E:\tlperl\lib/unicore/lib/In/3_2.pl type=file
-E:\tlperl\lib/unicore/lib/In/4_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/4_1.pl type=file
-E:\tlperl\lib/unicore/lib/In/5_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/5_1.pl type=file
-E:\tlperl\lib/unicore/lib/In/5_2.pl type=file
-E:\tlperl\lib/unicore/lib/In/6_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/6_1.pl type=file
-E:\tlperl\lib/unicore/lib/In/6_2.pl type=file
-E:\tlperl\lib/unicore/lib/In/6_3.pl type=file
-E:\tlperl\lib/unicore/lib/In/7_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/8_0.pl type=file
-E:\tlperl\lib/unicore/lib/In/9_0.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/Bottom.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/BottomAn.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/Left.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/LeftAndR.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/NA.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/Overstru.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/Right.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/Top.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/TopAndBo.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/TopAndL2.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/TopAndLe.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/TopAndRi.pl type=file
-E:\tlperl\lib/unicore/lib/InPC/VisualOr.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Avagraha.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Bindu.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Cantilla.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona2.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona3.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona4.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona5.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona6.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona7.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona8.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consona9.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Consonan.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Invisibl.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Nukta.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Number.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Other.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/PureKill.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Syllable.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/ToneMark.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Virama.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Visarga.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/Vowel.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/VowelDep.pl type=file
-E:\tlperl\lib/unicore/lib/InSC/VowelInd.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Ain.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Alef.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Beh.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Dal.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/FarsiYeh.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Feh.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Gaf.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Hah.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/HanifiRo.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Kaf.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Lam.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/NoJoinin.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Qaf.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Reh.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Sad.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Seen.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Waw.pl type=file
-E:\tlperl\lib/unicore/lib/Jg/Yeh.pl type=file
-E:\tlperl\lib/unicore/lib/Jt/C.pl type=file
-E:\tlperl\lib/unicore/lib/Jt/D.pl type=file
-E:\tlperl\lib/unicore/lib/Jt/L.pl type=file
-E:\tlperl\lib/unicore/lib/Jt/R.pl type=file
-E:\tlperl\lib/unicore/lib/Jt/T.pl type=file
-E:\tlperl\lib/unicore/lib/Jt/U.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/AI.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/AL.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/BA.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/BB.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/CJ.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/CL.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/CM.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/EX.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/GL.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/ID.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/IN.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/IS.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/NS.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/NU.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/OP.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/PO.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/PR.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/QU.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/SA.pl type=file
-E:\tlperl\lib/unicore/lib/Lb/XX.pl type=file
-E:\tlperl\lib/unicore/lib/Lower/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Math/Y.pl type=file
-E:\tlperl\lib/unicore/lib/NFCQC/M.pl type=file
-E:\tlperl\lib/unicore/lib/NFCQC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/NFDQC/N.pl type=file
-E:\tlperl\lib/unicore/lib/NFDQC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/NFKCQC/N.pl type=file
-E:\tlperl\lib/unicore/lib/NFKCQC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/NFKDQC/N.pl type=file
-E:\tlperl\lib/unicore/lib/NFKDQC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Nt/Di.pl type=file
-E:\tlperl\lib/unicore/lib/Nt/None.pl type=file
-E:\tlperl\lib/unicore/lib/Nt/Nu.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/0.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/10.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/100.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/10000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/100000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/11.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/12.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/13.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/14.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/15.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/16.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/17.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/18.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/19.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1_16.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1_2.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1_3.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1_4.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1_6.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/1_8.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/2.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/20.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/200.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/2000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/20000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/2_3.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/3.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/30.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/300.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/3000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/30000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/3_16.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/3_4.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/4.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/40.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/400.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/4000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/40000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/5.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/50.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/500.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/5000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/50000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/6.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/60.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/600.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/6000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/60000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/7.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/70.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/700.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/7000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/70000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/8.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/80.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/800.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/8000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/80000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/9.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/90.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/900.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/9000.pl type=file
-E:\tlperl\lib/unicore/lib/Nv/90000.pl type=file
-E:\tlperl\lib/unicore/lib/PCM/Y.pl type=file
-E:\tlperl\lib/unicore/lib/PatSyn/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Alnum.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Assigned.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Blank.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Graph.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/PerlWord.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/PosixPun.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Print.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/SpacePer.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Title.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/Word.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/XPosixPu.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlAny.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlCh2.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlCha.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlFol.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlIDC.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlIDS.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlIsI.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlNch.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlPat.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlPr2.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlPro.pl type=file
-E:\tlperl\lib/unicore/lib/Perl/_PerlQuo.pl type=file
-E:\tlperl\lib/unicore/lib/QMark/Y.pl type=file
-E:\tlperl\lib/unicore/lib/SB/AT.pl type=file
-E:\tlperl\lib/unicore/lib/SB/CL.pl type=file
-E:\tlperl\lib/unicore/lib/SB/EX.pl type=file
-E:\tlperl\lib/unicore/lib/SB/FO.pl type=file
-E:\tlperl\lib/unicore/lib/SB/LE.pl type=file
-E:\tlperl\lib/unicore/lib/SB/LO.pl type=file
-E:\tlperl\lib/unicore/lib/SB/NU.pl type=file
-E:\tlperl\lib/unicore/lib/SB/SC.pl type=file
-E:\tlperl\lib/unicore/lib/SB/ST.pl type=file
-E:\tlperl\lib/unicore/lib/SB/Sp.pl type=file
-E:\tlperl\lib/unicore/lib/SB/UP.pl type=file
-E:\tlperl\lib/unicore/lib/SB/XX.pl type=file
-E:\tlperl\lib/unicore/lib/SD/Y.pl type=file
-E:\tlperl\lib/unicore/lib/STerm/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Arab.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Beng.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Cprt.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Cyrl.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Deva.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Dupl.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Geor.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Glag.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Gong.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Gonm.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Gran.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Grek.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Gujr.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Guru.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Han.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Hang.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Hira.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Kana.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Knda.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Latn.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Limb.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Linb.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Mlym.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Mong.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Mult.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Orya.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Sinh.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Syrc.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Taml.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Telu.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Zinh.pl type=file
-E:\tlperl\lib/unicore/lib/Sc/Zyyy.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Adlm.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Arab.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Armn.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Beng.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Bhks.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Bopo.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Cakm.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Cham.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Copt.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Cprt.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Cyrl.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Deva.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Diak.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Dupl.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Ethi.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Geor.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Glag.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Gong.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Gonm.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Gran.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Grek.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Gujr.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Guru.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Han.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Hang.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Hebr.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Hira.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Hmng.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Hmnp.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Kana.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Khar.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Khmr.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Khoj.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Knda.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Kthi.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Lana.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Lao.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Latn.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Limb.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Lina.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Linb.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Mlym.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Mong.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Mult.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Mymr.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Nand.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Orya.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Phlp.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Rohg.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Shrd.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Sind.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Sinh.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Syrc.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Tagb.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Takr.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Talu.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Taml.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Tang.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Telu.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Thaa.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Tibt.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Tirh.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Xsux.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Yezi.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Yi.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Zinh.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Zyyy.pl type=file
-E:\tlperl\lib/unicore/lib/Scx/Zzzz.pl type=file
-E:\tlperl\lib/unicore/lib/Term/Y.pl type=file
-E:\tlperl\lib/unicore/lib/UIdeo/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Upper/Y.pl type=file
-E:\tlperl\lib/unicore/lib/Vo/R.pl type=file
-E:\tlperl\lib/unicore/lib/Vo/Tr.pl type=file
-E:\tlperl\lib/unicore/lib/Vo/Tu.pl type=file
-E:\tlperl\lib/unicore/lib/Vo/U.pl type=file
-E:\tlperl\lib/unicore/lib/WB/EX.pl type=file
-E:\tlperl\lib/unicore/lib/WB/Extend.pl type=file
-E:\tlperl\lib/unicore/lib/WB/FO.pl type=file
-E:\tlperl\lib/unicore/lib/WB/HL.pl type=file
-E:\tlperl\lib/unicore/lib/WB/KA.pl type=file
-E:\tlperl\lib/unicore/lib/WB/LE.pl type=file
-E:\tlperl\lib/unicore/lib/WB/MB.pl type=file
-E:\tlperl\lib/unicore/lib/WB/ML.pl type=file
-E:\tlperl\lib/unicore/lib/WB/MN.pl type=file
-E:\tlperl\lib/unicore/lib/WB/NU.pl type=file
-E:\tlperl\lib/unicore/lib/WB/WSegSpac.pl type=file
-E:\tlperl\lib/unicore/lib/WB/XX.pl type=file
-E:\tlperl\lib/unicore/lib/XIDC/Y.pl type=file
-E:\tlperl\lib/unicore/lib/XIDS/Y.pl type=file
-E:\tlperl\lib/unicore/uni_keywords.pl type=file
-E:\tlperl\lib/unicore/version type=file
-E:\tlperl\lib/utf8.pm type=file
-E:\tlperl\lib/vars.pm type=file
-E:\tlperl\lib/version.pm type=file
-E:\tlperl\lib/version.pod type=file
-E:\tlperl\lib/version/Internals.pod type=file
-E:\tlperl\lib/version/regex.pm type=file
-E:\tlperl\lib/vmsish.pm type=file
-E:\tlperl\lib/warnings.pm type=file
-E:\tlperl\lib/warnings/register.pm type=file
+d:\tlperl\bin/corelist.bat type=file
+d:\tlperl\bin/cpan.bat type=file
+d:\tlperl\bin/enc2xs.bat type=file
+d:\tlperl\bin/encguess.bat type=file
+d:\tlperl\bin/h2ph.bat type=file
+d:\tlperl\bin/h2xs.bat type=file
+d:\tlperl\bin/instmodsh.bat type=file
+d:\tlperl\bin/json_pp.bat type=file
+d:\tlperl\bin/libnetcfg.bat type=file
+d:\tlperl\bin/perl.exe from=d:\tlperl\bin/perl5.38.2.exe type=link
+d:\tlperl\bin/perl5.38.2.exe type=file
+d:\tlperl\bin/perl538.dll type=file
+d:\tlperl\bin/perlbug.bat type=file
+d:\tlperl\bin/perldoc.bat type=file
+d:\tlperl\bin/perlivp.bat type=file
+d:\tlperl\bin/perlthanks.bat from=d:\tlperl\bin/perlbug.bat type=link
+d:\tlperl\bin/piconv.bat type=file
+d:\tlperl\bin/pl2pm.bat type=file
+d:\tlperl\bin/pod2html.bat type=file
+d:\tlperl\bin/pod2man.bat type=file
+d:\tlperl\bin/pod2text.bat type=file
+d:\tlperl\bin/pod2usage.bat type=file
+d:\tlperl\bin/podchecker.bat type=file
+d:\tlperl\bin/prove.bat type=file
+d:\tlperl\bin/ptar.bat type=file
+d:\tlperl\bin/ptardiff.bat type=file
+d:\tlperl\bin/ptargrep.bat type=file
+d:\tlperl\bin/shasum.bat type=file
+d:\tlperl\bin/splain.bat type=file
+d:\tlperl\bin/streamzip.bat type=file
+d:\tlperl\bin/xsubpp.bat type=file
+d:\tlperl\bin/zipdetails.bat type=file
+d:\tlperl\lib/AnyDBM_File.pm type=file
+d:\tlperl\lib/App/Cpan.pm type=file
+d:\tlperl\lib/App/Prove.pm type=file
+d:\tlperl\lib/App/Prove/State.pm type=file
+d:\tlperl\lib/App/Prove/State/Result.pm type=file
+d:\tlperl\lib/App/Prove/State/Result/Test.pm type=file
+d:\tlperl\lib/Archive/Tar.pm type=file
+d:\tlperl\lib/Archive/Tar/Constant.pm type=file
+d:\tlperl\lib/Archive/Tar/File.pm type=file
+d:\tlperl\lib/Attribute/Handlers.pm type=file
+d:\tlperl\lib/AutoLoader.pm type=file
+d:\tlperl\lib/AutoSplit.pm type=file
+d:\tlperl\lib/B.pm type=file
+d:\tlperl\lib/B/Concise.pm type=file
+d:\tlperl\lib/B/Deparse.pm type=file
+d:\tlperl\lib/B/Op_private.pm type=file
+d:\tlperl\lib/B/Showlex.pm type=file
+d:\tlperl\lib/B/Terse.pm type=file
+d:\tlperl\lib/B/Xref.pm type=file
+d:\tlperl\lib/Benchmark.pm type=file
+d:\tlperl\lib/CORE.pod type=file
+d:\tlperl\lib/CORE/EXTERN.h type=file
+d:\tlperl\lib/CORE/INTERN.h type=file
+d:\tlperl\lib/CORE/XSUB.h type=file
+d:\tlperl\lib/CORE/arpa/inet.h type=file
+d:\tlperl\lib/CORE/av.h type=file
+d:\tlperl\lib/CORE/bitcount.h type=file
+d:\tlperl\lib/CORE/charclass_invlists.h type=file
+d:\tlperl\lib/CORE/config.h type=file
+d:\tlperl\lib/CORE/cop.h type=file
+d:\tlperl\lib/CORE/cv.h type=file
+d:\tlperl\lib/CORE/dirent.h type=file
+d:\tlperl\lib/CORE/dosish.h type=file
+d:\tlperl\lib/CORE/ebcdic_tables.h type=file
+d:\tlperl\lib/CORE/embed.h type=file
+d:\tlperl\lib/CORE/embedvar.h type=file
+d:\tlperl\lib/CORE/fakesdio.h type=file
+d:\tlperl\lib/CORE/feature.h type=file
+d:\tlperl\lib/CORE/form.h type=file
+d:\tlperl\lib/CORE/git_version.h type=file
+d:\tlperl\lib/CORE/gv.h type=file
+d:\tlperl\lib/CORE/handy.h type=file
+d:\tlperl\lib/CORE/hv.h type=file
+d:\tlperl\lib/CORE/hv_func.h type=file
+d:\tlperl\lib/CORE/hv_macro.h type=file
+d:\tlperl\lib/CORE/inline.h type=file
+d:\tlperl\lib/CORE/intrpvar.h type=file
+d:\tlperl\lib/CORE/invlist_inline.h type=file
+d:\tlperl\lib/CORE/iperlsys.h type=file
+d:\tlperl\lib/CORE/keywords.h type=file
+d:\tlperl\lib/CORE/l1_char_class_tab.h type=file
+d:\tlperl\lib/CORE/malloc_ctl.h type=file
+d:\tlperl\lib/CORE/metaconfig.h type=file
+d:\tlperl\lib/CORE/mg.h type=file
+d:\tlperl\lib/CORE/mg_data.h type=file
+d:\tlperl\lib/CORE/mg_raw.h type=file
+d:\tlperl\lib/CORE/mg_vtable.h type=file
+d:\tlperl\lib/CORE/mydtrace.h type=file
+d:\tlperl\lib/CORE/netdb.h type=file
+d:\tlperl\lib/CORE/nostdio.h type=file
+d:\tlperl\lib/CORE/op.h type=file
+d:\tlperl\lib/CORE/op_reg_common.h type=file
+d:\tlperl\lib/CORE/opcode.h type=file
+d:\tlperl\lib/CORE/opnames.h type=file
+d:\tlperl\lib/CORE/overload.h type=file
+d:\tlperl\lib/CORE/pad.h type=file
+d:\tlperl\lib/CORE/parser.h type=file
+d:\tlperl\lib/CORE/patchlevel.h type=file
+d:\tlperl\lib/CORE/perl.h type=file
+d:\tlperl\lib/CORE/perl538.lib type=file
+d:\tlperl\lib/CORE/perl_inc_macro.h type=file
+d:\tlperl\lib/CORE/perl_langinfo.h type=file
+d:\tlperl\lib/CORE/perl_siphash.h type=file
+d:\tlperl\lib/CORE/perlapi.h type=file
+d:\tlperl\lib/CORE/perlhost.h type=file
+d:\tlperl\lib/CORE/perlio.h type=file
+d:\tlperl\lib/CORE/perliol.h type=file
+d:\tlperl\lib/CORE/perlsdio.h type=file
+d:\tlperl\lib/CORE/perlstatic.h type=file
+d:\tlperl\lib/CORE/perlvars.h type=file
+d:\tlperl\lib/CORE/perly.h type=file
+d:\tlperl\lib/CORE/pp.h type=file
+d:\tlperl\lib/CORE/pp_proto.h type=file
+d:\tlperl\lib/CORE/proto.h type=file
+d:\tlperl\lib/CORE/reentr.h type=file
+d:\tlperl\lib/CORE/regcharclass.h type=file
+d:\tlperl\lib/CORE/regcomp.h type=file
+d:\tlperl\lib/CORE/regcomp_internal.h type=file
+d:\tlperl\lib/CORE/regexp.h type=file
+d:\tlperl\lib/CORE/reginline.h type=file
+d:\tlperl\lib/CORE/regnodes.h type=file
+d:\tlperl\lib/CORE/sbox32_hash.h type=file
+d:\tlperl\lib/CORE/scope.h type=file
+d:\tlperl\lib/CORE/scope_types.h type=file
+d:\tlperl\lib/CORE/sv.h type=file
+d:\tlperl\lib/CORE/sv_inline.h type=file
+d:\tlperl\lib/CORE/sys/errno2.h type=file
+d:\tlperl\lib/CORE/sys/socket.h type=file
+d:\tlperl\lib/CORE/thread.h type=file
+d:\tlperl\lib/CORE/time64.h type=file
+d:\tlperl\lib/CORE/time64_config.h type=file
+d:\tlperl\lib/CORE/uconfig.h type=file
+d:\tlperl\lib/CORE/uni_keywords.h type=file
+d:\tlperl\lib/CORE/unicode_constants.h type=file
+d:\tlperl\lib/CORE/unixish.h type=file
+d:\tlperl\lib/CORE/utf8.h type=file
+d:\tlperl\lib/CORE/utfebcdic.h type=file
+d:\tlperl\lib/CORE/util.h type=file
+d:\tlperl\lib/CORE/uudmap.h type=file
+d:\tlperl\lib/CORE/vdir.h type=file
+d:\tlperl\lib/CORE/vmem.h type=file
+d:\tlperl\lib/CORE/vutil.h type=file
+d:\tlperl\lib/CORE/warnings.h type=file
+d:\tlperl\lib/CORE/win32.h type=file
+d:\tlperl\lib/CORE/win32iop.h type=file
+d:\tlperl\lib/CORE/win32thread.h type=file
+d:\tlperl\lib/CORE/zaphod32_hash.h type=file
+d:\tlperl\lib/CPAN.pm type=file
+d:\tlperl\lib/CPAN/API/HOWTO.pod type=file
+d:\tlperl\lib/CPAN/Author.pm type=file
+d:\tlperl\lib/CPAN/Bundle.pm type=file
+d:\tlperl\lib/CPAN/CacheMgr.pm type=file
+d:\tlperl\lib/CPAN/Complete.pm type=file
+d:\tlperl\lib/CPAN/Debug.pm type=file
+d:\tlperl\lib/CPAN/DeferredCode.pm type=file
+d:\tlperl\lib/CPAN/Distribution.pm type=file
+d:\tlperl\lib/CPAN/Distroprefs.pm type=file
+d:\tlperl\lib/CPAN/Distrostatus.pm type=file
+d:\tlperl\lib/CPAN/Exception/RecursiveDependency.pm type=file
+d:\tlperl\lib/CPAN/Exception/blocked_urllist.pm type=file
+d:\tlperl\lib/CPAN/Exception/yaml_not_installed.pm type=file
+d:\tlperl\lib/CPAN/Exception/yaml_process_error.pm type=file
+d:\tlperl\lib/CPAN/FTP.pm type=file
+d:\tlperl\lib/CPAN/FTP/netrc.pm type=file
+d:\tlperl\lib/CPAN/FirstTime.pm type=file
+d:\tlperl\lib/CPAN/HTTP/Client.pm type=file
+d:\tlperl\lib/CPAN/HTTP/Credentials.pm type=file
+d:\tlperl\lib/CPAN/HandleConfig.pm type=file
+d:\tlperl\lib/CPAN/Index.pm type=file
+d:\tlperl\lib/CPAN/InfoObj.pm type=file
+d:\tlperl\lib/CPAN/Kwalify.pm type=file
+d:\tlperl\lib/CPAN/Kwalify/distroprefs.dd type=file
+d:\tlperl\lib/CPAN/Kwalify/distroprefs.yml type=file
+d:\tlperl\lib/CPAN/LWP/UserAgent.pm type=file
+d:\tlperl\lib/CPAN/Meta.pm type=file
+d:\tlperl\lib/CPAN/Meta/Converter.pm type=file
+d:\tlperl\lib/CPAN/Meta/Feature.pm type=file
+d:\tlperl\lib/CPAN/Meta/History.pm type=file
+d:\tlperl\lib/CPAN/Meta/History/Meta_1_0.pod type=file
+d:\tlperl\lib/CPAN/Meta/History/Meta_1_1.pod type=file
+d:\tlperl\lib/CPAN/Meta/History/Meta_1_2.pod type=file
+d:\tlperl\lib/CPAN/Meta/History/Meta_1_3.pod type=file
+d:\tlperl\lib/CPAN/Meta/History/Meta_1_4.pod type=file
+d:\tlperl\lib/CPAN/Meta/Merge.pm type=file
+d:\tlperl\lib/CPAN/Meta/Prereqs.pm type=file
+d:\tlperl\lib/CPAN/Meta/Requirements.pm type=file
+d:\tlperl\lib/CPAN/Meta/Spec.pm type=file
+d:\tlperl\lib/CPAN/Meta/Validator.pm type=file
+d:\tlperl\lib/CPAN/Meta/YAML.pm type=file
+d:\tlperl\lib/CPAN/Mirrors.pm type=file
+d:\tlperl\lib/CPAN/Module.pm type=file
+d:\tlperl\lib/CPAN/Nox.pm type=file
+d:\tlperl\lib/CPAN/Plugin.pm type=file
+d:\tlperl\lib/CPAN/Plugin/Specfile.pm type=file
+d:\tlperl\lib/CPAN/Prompt.pm type=file
+d:\tlperl\lib/CPAN/Queue.pm type=file
+d:\tlperl\lib/CPAN/Shell.pm type=file
+d:\tlperl\lib/CPAN/Tarzip.pm type=file
+d:\tlperl\lib/CPAN/URL.pm type=file
+d:\tlperl\lib/CPAN/Version.pm type=file
+d:\tlperl\lib/Carp.pm type=file
+d:\tlperl\lib/Carp/Heavy.pm type=file
+d:\tlperl\lib/Class/Struct.pm type=file
+d:\tlperl\lib/Compress/Raw/Bzip2.pm type=file
+d:\tlperl\lib/Compress/Raw/Zlib.pm type=file
+d:\tlperl\lib/Compress/Zlib.pm type=file
+d:\tlperl\lib/Config.pm type=file
+d:\tlperl\lib/Config.pod type=file
+d:\tlperl\lib/Config/Extensions.pm type=file
+d:\tlperl\lib/Config/Perl/V.pm type=file
+d:\tlperl\lib/Config_git.pl type=file
+d:\tlperl\lib/Config_heavy.pl type=file
+d:\tlperl\lib/Cwd.pm type=file
+d:\tlperl\lib/DB.pm type=file
+d:\tlperl\lib/DBM_Filter.pm type=file
+d:\tlperl\lib/DBM_Filter/compress.pm type=file
+d:\tlperl\lib/DBM_Filter/encode.pm type=file
+d:\tlperl\lib/DBM_Filter/int32.pm type=file
+d:\tlperl\lib/DBM_Filter/null.pm type=file
+d:\tlperl\lib/DBM_Filter/utf8.pm type=file
+d:\tlperl\lib/Data/Dumper.pm type=file
+d:\tlperl\lib/Devel/PPPort.pm type=file
+d:\tlperl\lib/Devel/Peek.pm type=file
+d:\tlperl\lib/Devel/SelfStubber.pm type=file
+d:\tlperl\lib/Digest.pm type=file
+d:\tlperl\lib/Digest/MD5.pm type=file
+d:\tlperl\lib/Digest/SHA.pm type=file
+d:\tlperl\lib/Digest/base.pm type=file
+d:\tlperl\lib/Digest/file.pm type=file
+d:\tlperl\lib/DirHandle.pm type=file
+d:\tlperl\lib/Dumpvalue.pm type=file
+d:\tlperl\lib/DynaLoader.pm type=file
+d:\tlperl\lib/Encode.pm type=file
+d:\tlperl\lib/Encode/Alias.pm type=file
+d:\tlperl\lib/Encode/Byte.pm type=file
+d:\tlperl\lib/Encode/CJKConstants.pm type=file
+d:\tlperl\lib/Encode/CN.pm type=file
+d:\tlperl\lib/Encode/CN/HZ.pm type=file
+d:\tlperl\lib/Encode/Changes.e2x type=file
+d:\tlperl\lib/Encode/Config.pm type=file
+d:\tlperl\lib/Encode/ConfigLocal_PM.e2x type=file
+d:\tlperl\lib/Encode/EBCDIC.pm type=file
+d:\tlperl\lib/Encode/Encoder.pm type=file
+d:\tlperl\lib/Encode/Encoding.pm type=file
+d:\tlperl\lib/Encode/GSM0338.pm type=file
+d:\tlperl\lib/Encode/Guess.pm type=file
+d:\tlperl\lib/Encode/JP.pm type=file
+d:\tlperl\lib/Encode/JP/H2Z.pm type=file
+d:\tlperl\lib/Encode/JP/JIS7.pm type=file
+d:\tlperl\lib/Encode/KR.pm type=file
+d:\tlperl\lib/Encode/KR/2022_KR.pm type=file
+d:\tlperl\lib/Encode/MIME/Header.pm type=file
+d:\tlperl\lib/Encode/MIME/Header/ISO_2022_JP.pm type=file
+d:\tlperl\lib/Encode/MIME/Name.pm type=file
+d:\tlperl\lib/Encode/Makefile_PL.e2x type=file
+d:\tlperl\lib/Encode/PerlIO.pod type=file
+d:\tlperl\lib/Encode/README.e2x type=file
+d:\tlperl\lib/Encode/Supported.pod type=file
+d:\tlperl\lib/Encode/Symbol.pm type=file
+d:\tlperl\lib/Encode/TW.pm type=file
+d:\tlperl\lib/Encode/Unicode.pm type=file
+d:\tlperl\lib/Encode/Unicode/UTF7.pm type=file
+d:\tlperl\lib/Encode/_PM.e2x type=file
+d:\tlperl\lib/Encode/_T.e2x type=file
+d:\tlperl\lib/Encode/encode.h type=file
+d:\tlperl\lib/English.pm type=file
+d:\tlperl\lib/Env.pm type=file
+d:\tlperl\lib/Errno.pm type=file
+d:\tlperl\lib/Exporter.pm type=file
+d:\tlperl\lib/Exporter/Heavy.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Base.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/Unix.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/VMS.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/aix.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/android.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/cygwin.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/darwin.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/dec_osf.pm type=file
+d:\tlperl\lib/ExtUtils/CBuilder/Platform/os2.pm type=file
+d:\tlperl\lib/ExtUtils/Command.pm type=file
+d:\tlperl\lib/ExtUtils/Command/MM.pm type=file
+d:\tlperl\lib/ExtUtils/Constant.pm type=file
+d:\tlperl\lib/ExtUtils/Constant/Base.pm type=file
+d:\tlperl\lib/ExtUtils/Constant/ProxySubs.pm type=file
+d:\tlperl\lib/ExtUtils/Constant/Utils.pm type=file
+d:\tlperl\lib/ExtUtils/Constant/XS.pm type=file
+d:\tlperl\lib/ExtUtils/Embed.pm type=file
+d:\tlperl\lib/ExtUtils/Install.pm type=file
+d:\tlperl\lib/ExtUtils/Installed.pm type=file
+d:\tlperl\lib/ExtUtils/Liblist.pm type=file
+d:\tlperl\lib/ExtUtils/Liblist/Kid.pm type=file
+d:\tlperl\lib/ExtUtils/MANIFEST.SKIP type=file
+d:\tlperl\lib/ExtUtils/MM.pm type=file
+d:\tlperl\lib/ExtUtils/MM_AIX.pm type=file
+d:\tlperl\lib/ExtUtils/MM_Any.pm type=file
+d:\tlperl\lib/ExtUtils/MM_BeOS.pm type=file
+d:\tlperl\lib/ExtUtils/MM_Cygwin.pm type=file
+d:\tlperl\lib/ExtUtils/MM_DOS.pm type=file
+d:\tlperl\lib/ExtUtils/MM_Darwin.pm type=file
+d:\tlperl\lib/ExtUtils/MM_MacOS.pm type=file
+d:\tlperl\lib/ExtUtils/MM_NW5.pm type=file
+d:\tlperl\lib/ExtUtils/MM_OS2.pm type=file
+d:\tlperl\lib/ExtUtils/MM_OS390.pm type=file
+d:\tlperl\lib/ExtUtils/MM_QNX.pm type=file
+d:\tlperl\lib/ExtUtils/MM_UWIN.pm type=file
+d:\tlperl\lib/ExtUtils/MM_Unix.pm type=file
+d:\tlperl\lib/ExtUtils/MM_VMS.pm type=file
+d:\tlperl\lib/ExtUtils/MM_VOS.pm type=file
+d:\tlperl\lib/ExtUtils/MM_Win32.pm type=file
+d:\tlperl\lib/ExtUtils/MM_Win95.pm type=file
+d:\tlperl\lib/ExtUtils/MY.pm type=file
+d:\tlperl\lib/ExtUtils/MakeMaker.pm type=file
+d:\tlperl\lib/ExtUtils/MakeMaker/Config.pm type=file
+d:\tlperl\lib/ExtUtils/MakeMaker/FAQ.pod type=file
+d:\tlperl\lib/ExtUtils/MakeMaker/Locale.pm type=file
+d:\tlperl\lib/ExtUtils/MakeMaker/Tutorial.pod type=file
+d:\tlperl\lib/ExtUtils/MakeMaker/version.pm type=file
+d:\tlperl\lib/ExtUtils/Manifest.pm type=file
+d:\tlperl\lib/ExtUtils/Miniperl.pm type=file
+d:\tlperl\lib/ExtUtils/Mkbootstrap.pm type=file
+d:\tlperl\lib/ExtUtils/Mksymlists.pm type=file
+d:\tlperl\lib/ExtUtils/PL2Bat.pm type=file
+d:\tlperl\lib/ExtUtils/Packlist.pm type=file
+d:\tlperl\lib/ExtUtils/ParseXS.pm type=file
+d:\tlperl\lib/ExtUtils/ParseXS.pod type=file
+d:\tlperl\lib/ExtUtils/ParseXS/Constants.pm type=file
+d:\tlperl\lib/ExtUtils/ParseXS/CountLines.pm type=file
+d:\tlperl\lib/ExtUtils/ParseXS/Eval.pm type=file
+d:\tlperl\lib/ExtUtils/ParseXS/Utilities.pm type=file
+d:\tlperl\lib/ExtUtils/Typemaps.pm type=file
+d:\tlperl\lib/ExtUtils/Typemaps/Cmd.pm type=file
+d:\tlperl\lib/ExtUtils/Typemaps/InputMap.pm type=file
+d:\tlperl\lib/ExtUtils/Typemaps/OutputMap.pm type=file
+d:\tlperl\lib/ExtUtils/Typemaps/Type.pm type=file
+d:\tlperl\lib/ExtUtils/testlib.pm type=file
+d:\tlperl\lib/ExtUtils/typemap type=file
+d:\tlperl\lib/ExtUtils/xsubpp type=file
+d:\tlperl\lib/Fatal.pm type=file
+d:\tlperl\lib/Fcntl.pm type=file
+d:\tlperl\lib/File/Basename.pm type=file
+d:\tlperl\lib/File/Compare.pm type=file
+d:\tlperl\lib/File/Copy.pm type=file
+d:\tlperl\lib/File/DosGlob.pm type=file
+d:\tlperl\lib/File/Fetch.pm type=file
+d:\tlperl\lib/File/Find.pm type=file
+d:\tlperl\lib/File/Glob.pm type=file
+d:\tlperl\lib/File/GlobMapper.pm type=file
+d:\tlperl\lib/File/Path.pm type=file
+d:\tlperl\lib/File/Spec.pm type=file
+d:\tlperl\lib/File/Spec/AmigaOS.pm type=file
+d:\tlperl\lib/File/Spec/Cygwin.pm type=file
+d:\tlperl\lib/File/Spec/Epoc.pm type=file
+d:\tlperl\lib/File/Spec/Functions.pm type=file
+d:\tlperl\lib/File/Spec/Mac.pm type=file
+d:\tlperl\lib/File/Spec/OS2.pm type=file
+d:\tlperl\lib/File/Spec/Unix.pm type=file
+d:\tlperl\lib/File/Spec/VMS.pm type=file
+d:\tlperl\lib/File/Spec/Win32.pm type=file
+d:\tlperl\lib/File/Temp.pm type=file
+d:\tlperl\lib/File/stat.pm type=file
+d:\tlperl\lib/FileCache.pm type=file
+d:\tlperl\lib/FileHandle.pm type=file
+d:\tlperl\lib/Filter/Simple.pm type=file
+d:\tlperl\lib/Filter/Util/Call.pm type=file
+d:\tlperl\lib/FindBin.pm type=file
+d:\tlperl\lib/Getopt/Long.pm type=file
+d:\tlperl\lib/Getopt/Std.pm type=file
+d:\tlperl\lib/HTTP/Tiny.pm type=file
+d:\tlperl\lib/Hash/Util.pm type=file
+d:\tlperl\lib/Hash/Util/FieldHash.pm type=file
+d:\tlperl\lib/I18N/Collate.pm type=file
+d:\tlperl\lib/I18N/LangTags.pm type=file
+d:\tlperl\lib/I18N/LangTags/Detect.pm type=file
+d:\tlperl\lib/I18N/LangTags/List.pm type=file
+d:\tlperl\lib/I18N/Langinfo.pm type=file
+d:\tlperl\lib/IO.pm type=file
+d:\tlperl\lib/IO/Compress/Adapter/Bzip2.pm type=file
+d:\tlperl\lib/IO/Compress/Adapter/Deflate.pm type=file
+d:\tlperl\lib/IO/Compress/Adapter/Identity.pm type=file
+d:\tlperl\lib/IO/Compress/Base.pm type=file
+d:\tlperl\lib/IO/Compress/Base/Common.pm type=file
+d:\tlperl\lib/IO/Compress/Bzip2.pm type=file
+d:\tlperl\lib/IO/Compress/Deflate.pm type=file
+d:\tlperl\lib/IO/Compress/FAQ.pod type=file
+d:\tlperl\lib/IO/Compress/Gzip.pm type=file
+d:\tlperl\lib/IO/Compress/Gzip/Constants.pm type=file
+d:\tlperl\lib/IO/Compress/RawDeflate.pm type=file
+d:\tlperl\lib/IO/Compress/Zip.pm type=file
+d:\tlperl\lib/IO/Compress/Zip/Constants.pm type=file
+d:\tlperl\lib/IO/Compress/Zlib/Constants.pm type=file
+d:\tlperl\lib/IO/Compress/Zlib/Extra.pm type=file
+d:\tlperl\lib/IO/Dir.pm type=file
+d:\tlperl\lib/IO/File.pm type=file
+d:\tlperl\lib/IO/Handle.pm type=file
+d:\tlperl\lib/IO/Pipe.pm type=file
+d:\tlperl\lib/IO/Poll.pm type=file
+d:\tlperl\lib/IO/Seekable.pm type=file
+d:\tlperl\lib/IO/Select.pm type=file
+d:\tlperl\lib/IO/Socket.pm type=file
+d:\tlperl\lib/IO/Socket/INET.pm type=file
+d:\tlperl\lib/IO/Socket/IP.pm type=file
+d:\tlperl\lib/IO/Socket/UNIX.pm type=file
+d:\tlperl\lib/IO/Uncompress/Adapter/Bunzip2.pm type=file
+d:\tlperl\lib/IO/Uncompress/Adapter/Identity.pm type=file
+d:\tlperl\lib/IO/Uncompress/Adapter/Inflate.pm type=file
+d:\tlperl\lib/IO/Uncompress/AnyInflate.pm type=file
+d:\tlperl\lib/IO/Uncompress/AnyUncompress.pm type=file
+d:\tlperl\lib/IO/Uncompress/Base.pm type=file
+d:\tlperl\lib/IO/Uncompress/Bunzip2.pm type=file
+d:\tlperl\lib/IO/Uncompress/Gunzip.pm type=file
+d:\tlperl\lib/IO/Uncompress/Inflate.pm type=file
+d:\tlperl\lib/IO/Uncompress/RawInflate.pm type=file
+d:\tlperl\lib/IO/Uncompress/Unzip.pm type=file
+d:\tlperl\lib/IO/Zlib.pm type=file
+d:\tlperl\lib/IPC/Cmd.pm type=file
+d:\tlperl\lib/IPC/Open2.pm type=file
+d:\tlperl\lib/IPC/Open3.pm type=file
+d:\tlperl\lib/Internals.pod type=file
+d:\tlperl\lib/JSON/PP.pm type=file
+d:\tlperl\lib/JSON/PP/Boolean.pm type=file
+d:\tlperl\lib/List/Util.pm type=file
+d:\tlperl\lib/List/Util/XS.pm type=file
+d:\tlperl\lib/Locale/Maketext.pm type=file
+d:\tlperl\lib/Locale/Maketext.pod type=file
+d:\tlperl\lib/Locale/Maketext/Cookbook.pod type=file
+d:\tlperl\lib/Locale/Maketext/Guts.pm type=file
+d:\tlperl\lib/Locale/Maketext/GutsLoader.pm type=file
+d:\tlperl\lib/Locale/Maketext/Simple.pm type=file
+d:\tlperl\lib/Locale/Maketext/TPJ13.pod type=file
+d:\tlperl\lib/MIME/Base64.pm type=file
+d:\tlperl\lib/MIME/QuotedPrint.pm type=file
+d:\tlperl\lib/Math/BigFloat.pm type=file
+d:\tlperl\lib/Math/BigFloat/Trace.pm type=file
+d:\tlperl\lib/Math/BigInt.pm type=file
+d:\tlperl\lib/Math/BigInt/Calc.pm type=file
+d:\tlperl\lib/Math/BigInt/FastCalc.pm type=file
+d:\tlperl\lib/Math/BigInt/Lib.pm type=file
+d:\tlperl\lib/Math/BigInt/Trace.pm type=file
+d:\tlperl\lib/Math/BigRat.pm type=file
+d:\tlperl\lib/Math/BigRat/Trace.pm type=file
+d:\tlperl\lib/Math/Complex.pm type=file
+d:\tlperl\lib/Math/Trig.pm type=file
+d:\tlperl\lib/Memoize.pm type=file
+d:\tlperl\lib/Memoize/AnyDBM_File.pm type=file
+d:\tlperl\lib/Memoize/Expire.pm type=file
+d:\tlperl\lib/Memoize/NDBM_File.pm type=file
+d:\tlperl\lib/Memoize/SDBM_File.pm type=file
+d:\tlperl\lib/Memoize/Storable.pm type=file
+d:\tlperl\lib/Module/CoreList.pm type=file
+d:\tlperl\lib/Module/CoreList.pod type=file
+d:\tlperl\lib/Module/CoreList/Utils.pm type=file
+d:\tlperl\lib/Module/Load.pm type=file
+d:\tlperl\lib/Module/Load/Conditional.pm type=file
+d:\tlperl\lib/Module/Loaded.pm type=file
+d:\tlperl\lib/Module/Metadata.pm type=file
+d:\tlperl\lib/NEXT.pm type=file
+d:\tlperl\lib/Net/Cmd.pm type=file
+d:\tlperl\lib/Net/Config.pm type=file
+d:\tlperl\lib/Net/Domain.pm type=file
+d:\tlperl\lib/Net/FTP.pm type=file
+d:\tlperl\lib/Net/FTP/A.pm type=file
+d:\tlperl\lib/Net/FTP/E.pm type=file
+d:\tlperl\lib/Net/FTP/I.pm type=file
+d:\tlperl\lib/Net/FTP/L.pm type=file
+d:\tlperl\lib/Net/FTP/dataconn.pm type=file
+d:\tlperl\lib/Net/NNTP.pm type=file
+d:\tlperl\lib/Net/Netrc.pm type=file
+d:\tlperl\lib/Net/POP3.pm type=file
+d:\tlperl\lib/Net/Ping.pm type=file
+d:\tlperl\lib/Net/SMTP.pm type=file
+d:\tlperl\lib/Net/Time.pm type=file
+d:\tlperl\lib/Net/hostent.pm type=file
+d:\tlperl\lib/Net/libnetFAQ.pod type=file
+d:\tlperl\lib/Net/netent.pm type=file
+d:\tlperl\lib/Net/protoent.pm type=file
+d:\tlperl\lib/Net/servent.pm type=file
+d:\tlperl\lib/O.pm type=file
+d:\tlperl\lib/Opcode.pm type=file
+d:\tlperl\lib/POSIX.pm type=file
+d:\tlperl\lib/POSIX.pod type=file
+d:\tlperl\lib/Params/Check.pm type=file
+d:\tlperl\lib/Parse/CPAN/Meta.pm type=file
+d:\tlperl\lib/Perl/OSType.pm type=file
+d:\tlperl\lib/PerlIO.pm type=file
+d:\tlperl\lib/PerlIO/encoding.pm type=file
+d:\tlperl\lib/PerlIO/mmap.pm type=file
+d:\tlperl\lib/PerlIO/scalar.pm type=file
+d:\tlperl\lib/PerlIO/via.pm type=file
+d:\tlperl\lib/PerlIO/via/QuotedPrint.pm type=file
+d:\tlperl\lib/Pod/Checker.pm type=file
+d:\tlperl\lib/Pod/Escapes.pm type=file
+d:\tlperl\lib/Pod/Functions.pm type=file
+d:\tlperl\lib/Pod/Html.pm type=file
+d:\tlperl\lib/Pod/Html/Util.pm type=file
+d:\tlperl\lib/Pod/Man.pm type=file
+d:\tlperl\lib/Pod/ParseLink.pm type=file
+d:\tlperl\lib/Pod/Perldoc.pm type=file
+d:\tlperl\lib/Pod/Perldoc/BaseTo.pm type=file
+d:\tlperl\lib/Pod/Perldoc/GetOptsOO.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToANSI.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToChecker.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToMan.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToNroff.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToPod.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToRtf.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToTerm.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToText.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToTk.pm type=file
+d:\tlperl\lib/Pod/Perldoc/ToXml.pm type=file
+d:\tlperl\lib/Pod/Simple.pm type=file
+d:\tlperl\lib/Pod/Simple.pod type=file
+d:\tlperl\lib/Pod/Simple/BlackBox.pm type=file
+d:\tlperl\lib/Pod/Simple/Checker.pm type=file
+d:\tlperl\lib/Pod/Simple/Debug.pm type=file
+d:\tlperl\lib/Pod/Simple/DumpAsText.pm type=file
+d:\tlperl\lib/Pod/Simple/DumpAsXML.pm type=file
+d:\tlperl\lib/Pod/Simple/HTML.pm type=file
+d:\tlperl\lib/Pod/Simple/HTMLBatch.pm type=file
+d:\tlperl\lib/Pod/Simple/HTMLLegacy.pm type=file
+d:\tlperl\lib/Pod/Simple/JustPod.pm type=file
+d:\tlperl\lib/Pod/Simple/LinkSection.pm type=file
+d:\tlperl\lib/Pod/Simple/Methody.pm type=file
+d:\tlperl\lib/Pod/Simple/Progress.pm type=file
+d:\tlperl\lib/Pod/Simple/PullParser.pm type=file
+d:\tlperl\lib/Pod/Simple/PullParserEndToken.pm type=file
+d:\tlperl\lib/Pod/Simple/PullParserStartToken.pm type=file
+d:\tlperl\lib/Pod/Simple/PullParserTextToken.pm type=file
+d:\tlperl\lib/Pod/Simple/PullParserToken.pm type=file
+d:\tlperl\lib/Pod/Simple/RTF.pm type=file
+d:\tlperl\lib/Pod/Simple/Search.pm type=file
+d:\tlperl\lib/Pod/Simple/SimpleTree.pm type=file
+d:\tlperl\lib/Pod/Simple/Subclassing.pod type=file
+d:\tlperl\lib/Pod/Simple/Text.pm type=file
+d:\tlperl\lib/Pod/Simple/TextContent.pm type=file
+d:\tlperl\lib/Pod/Simple/TiedOutFH.pm type=file
+d:\tlperl\lib/Pod/Simple/Transcode.pm type=file
+d:\tlperl\lib/Pod/Simple/TranscodeDumb.pm type=file
+d:\tlperl\lib/Pod/Simple/TranscodeSmart.pm type=file
+d:\tlperl\lib/Pod/Simple/XHTML.pm type=file
+d:\tlperl\lib/Pod/Simple/XMLOutStream.pm type=file
+d:\tlperl\lib/Pod/Text.pm type=file
+d:\tlperl\lib/Pod/Text/Color.pm type=file
+d:\tlperl\lib/Pod/Text/Overstrike.pm type=file
+d:\tlperl\lib/Pod/Text/Termcap.pm type=file
+d:\tlperl\lib/Pod/Usage.pm type=file
+d:\tlperl\lib/SDBM_File.pm type=file
+d:\tlperl\lib/Safe.pm type=file
+d:\tlperl\lib/Scalar/Util.pm type=file
+d:\tlperl\lib/Search/Dict.pm type=file
+d:\tlperl\lib/SelectSaver.pm type=file
+d:\tlperl\lib/SelfLoader.pm type=file
+d:\tlperl\lib/Socket.pm type=file
+d:\tlperl\lib/Storable.pm type=file
+d:\tlperl\lib/Sub/Util.pm type=file
+d:\tlperl\lib/Symbol.pm type=file
+d:\tlperl\lib/Sys/Hostname.pm type=file
+d:\tlperl\lib/TAP/Base.pm type=file
+d:\tlperl\lib/TAP/Formatter/Base.pm type=file
+d:\tlperl\lib/TAP/Formatter/Color.pm type=file
+d:\tlperl\lib/TAP/Formatter/Console.pm type=file
+d:\tlperl\lib/TAP/Formatter/Console/ParallelSession.pm type=file
+d:\tlperl\lib/TAP/Formatter/Console/Session.pm type=file
+d:\tlperl\lib/TAP/Formatter/File.pm type=file
+d:\tlperl\lib/TAP/Formatter/File/Session.pm type=file
+d:\tlperl\lib/TAP/Formatter/Session.pm type=file
+d:\tlperl\lib/TAP/Harness.pm type=file
+d:\tlperl\lib/TAP/Harness/Beyond.pod type=file
+d:\tlperl\lib/TAP/Harness/Env.pm type=file
+d:\tlperl\lib/TAP/Object.pm type=file
+d:\tlperl\lib/TAP/Parser.pm type=file
+d:\tlperl\lib/TAP/Parser/Aggregator.pm type=file
+d:\tlperl\lib/TAP/Parser/Grammar.pm type=file
+d:\tlperl\lib/TAP/Parser/Iterator.pm type=file
+d:\tlperl\lib/TAP/Parser/Iterator/Array.pm type=file
+d:\tlperl\lib/TAP/Parser/Iterator/Process.pm type=file
+d:\tlperl\lib/TAP/Parser/Iterator/Stream.pm type=file
+d:\tlperl\lib/TAP/Parser/IteratorFactory.pm type=file
+d:\tlperl\lib/TAP/Parser/Multiplexer.pm type=file
+d:\tlperl\lib/TAP/Parser/Result.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Bailout.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Comment.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Plan.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Pragma.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Test.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Unknown.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/Version.pm type=file
+d:\tlperl\lib/TAP/Parser/Result/YAML.pm type=file
+d:\tlperl\lib/TAP/Parser/ResultFactory.pm type=file
+d:\tlperl\lib/TAP/Parser/Scheduler.pm type=file
+d:\tlperl\lib/TAP/Parser/Scheduler/Job.pm type=file
+d:\tlperl\lib/TAP/Parser/Scheduler/Spinner.pm type=file
+d:\tlperl\lib/TAP/Parser/Source.pm type=file
+d:\tlperl\lib/TAP/Parser/SourceHandler.pm type=file
+d:\tlperl\lib/TAP/Parser/SourceHandler/Executable.pm type=file
+d:\tlperl\lib/TAP/Parser/SourceHandler/File.pm type=file
+d:\tlperl\lib/TAP/Parser/SourceHandler/Handle.pm type=file
+d:\tlperl\lib/TAP/Parser/SourceHandler/Perl.pm type=file
+d:\tlperl\lib/TAP/Parser/SourceHandler/RawTAP.pm type=file
+d:\tlperl\lib/TAP/Parser/YAMLish/Reader.pm type=file
+d:\tlperl\lib/TAP/Parser/YAMLish/Writer.pm type=file
+d:\tlperl\lib/Term/ANSIColor.pm type=file
+d:\tlperl\lib/Term/Cap.pm type=file
+d:\tlperl\lib/Term/Complete.pm type=file
+d:\tlperl\lib/Term/ReadLine.pm type=file
+d:\tlperl\lib/Test.pm type=file
+d:\tlperl\lib/Test/Builder.pm type=file
+d:\tlperl\lib/Test/Builder/Formatter.pm type=file
+d:\tlperl\lib/Test/Builder/IO/Scalar.pm type=file
+d:\tlperl\lib/Test/Builder/Module.pm type=file
+d:\tlperl\lib/Test/Builder/Tester.pm type=file
+d:\tlperl\lib/Test/Builder/Tester/Color.pm type=file
+d:\tlperl\lib/Test/Builder/TodoDiag.pm type=file
+d:\tlperl\lib/Test/Harness.pm type=file
+d:\tlperl\lib/Test/More.pm type=file
+d:\tlperl\lib/Test/Simple.pm type=file
+d:\tlperl\lib/Test/Tester.pm type=file
+d:\tlperl\lib/Test/Tester/Capture.pm type=file
+d:\tlperl\lib/Test/Tester/CaptureRunner.pm type=file
+d:\tlperl\lib/Test/Tester/Delegate.pm type=file
+d:\tlperl\lib/Test/Tutorial.pod type=file
+d:\tlperl\lib/Test/use/ok.pm type=file
+d:\tlperl\lib/Test2.pm type=file
+d:\tlperl\lib/Test2/API.pm type=file
+d:\tlperl\lib/Test2/API/Breakage.pm type=file
+d:\tlperl\lib/Test2/API/Context.pm type=file
+d:\tlperl\lib/Test2/API/Instance.pm type=file
+d:\tlperl\lib/Test2/API/InterceptResult.pm type=file
+d:\tlperl\lib/Test2/API/InterceptResult/Event.pm type=file
+d:\tlperl\lib/Test2/API/InterceptResult/Facet.pm type=file
+d:\tlperl\lib/Test2/API/InterceptResult/Hub.pm type=file
+d:\tlperl\lib/Test2/API/InterceptResult/Squasher.pm type=file
+d:\tlperl\lib/Test2/API/Stack.pm type=file
+d:\tlperl\lib/Test2/Event.pm type=file
+d:\tlperl\lib/Test2/Event/Bail.pm type=file
+d:\tlperl\lib/Test2/Event/Diag.pm type=file
+d:\tlperl\lib/Test2/Event/Encoding.pm type=file
+d:\tlperl\lib/Test2/Event/Exception.pm type=file
+d:\tlperl\lib/Test2/Event/Fail.pm type=file
+d:\tlperl\lib/Test2/Event/Generic.pm type=file
+d:\tlperl\lib/Test2/Event/Note.pm type=file
+d:\tlperl\lib/Test2/Event/Ok.pm type=file
+d:\tlperl\lib/Test2/Event/Pass.pm type=file
+d:\tlperl\lib/Test2/Event/Plan.pm type=file
+d:\tlperl\lib/Test2/Event/Skip.pm type=file
+d:\tlperl\lib/Test2/Event/Subtest.pm type=file
+d:\tlperl\lib/Test2/Event/TAP/Version.pm type=file
+d:\tlperl\lib/Test2/Event/V2.pm type=file
+d:\tlperl\lib/Test2/Event/Waiting.pm type=file
+d:\tlperl\lib/Test2/EventFacet.pm type=file
+d:\tlperl\lib/Test2/EventFacet/About.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Amnesty.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Assert.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Control.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Error.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Hub.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Info.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Info/Table.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Meta.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Parent.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Plan.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Render.pm type=file
+d:\tlperl\lib/Test2/EventFacet/Trace.pm type=file
+d:\tlperl\lib/Test2/Formatter.pm type=file
+d:\tlperl\lib/Test2/Formatter/TAP.pm type=file
+d:\tlperl\lib/Test2/Hub.pm type=file
+d:\tlperl\lib/Test2/Hub/Interceptor.pm type=file
+d:\tlperl\lib/Test2/Hub/Interceptor/Terminator.pm type=file
+d:\tlperl\lib/Test2/Hub/Subtest.pm type=file
+d:\tlperl\lib/Test2/IPC.pm type=file
+d:\tlperl\lib/Test2/IPC/Driver.pm type=file
+d:\tlperl\lib/Test2/IPC/Driver/Files.pm type=file
+d:\tlperl\lib/Test2/Tools/Tiny.pm type=file
+d:\tlperl\lib/Test2/Transition.pod type=file
+d:\tlperl\lib/Test2/Util.pm type=file
+d:\tlperl\lib/Test2/Util/ExternalMeta.pm type=file
+d:\tlperl\lib/Test2/Util/Facets2Legacy.pm type=file
+d:\tlperl\lib/Test2/Util/HashBase.pm type=file
+d:\tlperl\lib/Test2/Util/Trace.pm type=file
+d:\tlperl\lib/Text/Abbrev.pm type=file
+d:\tlperl\lib/Text/Balanced.pm type=file
+d:\tlperl\lib/Text/ParseWords.pm type=file
+d:\tlperl\lib/Text/Tabs.pm type=file
+d:\tlperl\lib/Text/Wrap.pm type=file
+d:\tlperl\lib/Thread.pm type=file
+d:\tlperl\lib/Thread/Queue.pm type=file
+d:\tlperl\lib/Thread/Semaphore.pm type=file
+d:\tlperl\lib/Tie/Array.pm type=file
+d:\tlperl\lib/Tie/File.pm type=file
+d:\tlperl\lib/Tie/Handle.pm type=file
+d:\tlperl\lib/Tie/Hash.pm type=file
+d:\tlperl\lib/Tie/Hash/NamedCapture.pm type=file
+d:\tlperl\lib/Tie/Memoize.pm type=file
+d:\tlperl\lib/Tie/RefHash.pm type=file
+d:\tlperl\lib/Tie/Scalar.pm type=file
+d:\tlperl\lib/Tie/StdHandle.pm type=file
+d:\tlperl\lib/Tie/SubstrHash.pm type=file
+d:\tlperl\lib/Time/HiRes.pm type=file
+d:\tlperl\lib/Time/Local.pm type=file
+d:\tlperl\lib/Time/Piece.pm type=file
+d:\tlperl\lib/Time/Seconds.pm type=file
+d:\tlperl\lib/Time/gmtime.pm type=file
+d:\tlperl\lib/Time/localtime.pm type=file
+d:\tlperl\lib/Time/tm.pm type=file
+d:\tlperl\lib/UNIVERSAL.pm type=file
+d:\tlperl\lib/Unicode/Collate.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/Big5.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/GB2312.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/JISX0208.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/Korean.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/Pinyin.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/Stroke.pm type=file
+d:\tlperl\lib/Unicode/Collate/CJK/Zhuyin.pm type=file
+d:\tlperl\lib/Unicode/Collate/Locale.pm type=file
+d:\tlperl\lib/Unicode/Collate/Locale/af.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ar.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/as.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/az.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/be.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/bn.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ca.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/cs.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/cu.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/cy.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/da.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/de_at_ph.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/de_phone.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/dsb.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ee.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/eo.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/es.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/es_trad.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/et.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/fa.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/fi.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/fi_phone.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/fil.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/fo.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/fr_ca.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/gu.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ha.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/haw.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/he.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/hi.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/hr.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/hu.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/hy.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ig.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/is.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ja.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/kk.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/kl.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/kn.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ko.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/kok.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/lkt.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ln.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/lt.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/lv.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/mk.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ml.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/mr.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/mt.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/nb.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/nn.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/nso.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/om.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/or.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/pa.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/pl.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ro.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sa.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/se.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/si.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/si_dict.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sk.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sl.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sq.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sr.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sv.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/sv_refo.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ta.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/te.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/th.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/tn.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/to.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/tr.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ug_cyrl.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/uk.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/ur.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/vi.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/vo.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/wae.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/wo.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/yo.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/zh.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/zh_big5.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/zh_gb.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/zh_pin.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/zh_strk.pl type=file
+d:\tlperl\lib/Unicode/Collate/Locale/zh_zhu.pl type=file
+d:\tlperl\lib/Unicode/Collate/allkeys.txt type=file
+d:\tlperl\lib/Unicode/Collate/keys.txt type=file
+d:\tlperl\lib/Unicode/Normalize.pm type=file
+d:\tlperl\lib/Unicode/UCD.pm type=file
+d:\tlperl\lib/User/grent.pm type=file
+d:\tlperl\lib/User/pwent.pm type=file
+d:\tlperl\lib/Win32.pm type=file
+d:\tlperl\lib/Win32API/File.pm type=file
+d:\tlperl\lib/Win32API/File/cFile.pc type=file
+d:\tlperl\lib/Win32CORE.pm type=file
+d:\tlperl\lib/XSLoader.pm type=file
+d:\tlperl\lib/_charnames.pm type=file
+d:\tlperl\lib/attributes.pm type=file
+d:\tlperl\lib/auto/B/B.dll type=file
+d:\tlperl\lib/auto/B/B.pdb type=file
+d:\tlperl\lib/auto/Compress/Raw/Bzip2/Bzip2.dll type=file
+d:\tlperl\lib/auto/Compress/Raw/Bzip2/Bzip2.pdb type=file
+d:\tlperl\lib/auto/Compress/Raw/Zlib/Zlib.dll type=file
+d:\tlperl\lib/auto/Compress/Raw/Zlib/Zlib.pdb type=file
+d:\tlperl\lib/auto/Cwd/Cwd.dll type=file
+d:\tlperl\lib/auto/Cwd/Cwd.pdb type=file
+d:\tlperl\lib/auto/Data/Dumper/Dumper.dll type=file
+d:\tlperl\lib/auto/Data/Dumper/Dumper.pdb type=file
+d:\tlperl\lib/auto/Devel/Peek/Peek.dll type=file
+d:\tlperl\lib/auto/Devel/Peek/Peek.pdb type=file
+d:\tlperl\lib/auto/Digest/MD5/MD5.dll type=file
+d:\tlperl\lib/auto/Digest/MD5/MD5.pdb type=file
+d:\tlperl\lib/auto/Digest/SHA/SHA.dll type=file
+d:\tlperl\lib/auto/Digest/SHA/SHA.pdb type=file
+d:\tlperl\lib/auto/Encode/Byte/Byte.dll type=file
+d:\tlperl\lib/auto/Encode/Byte/Byte.pdb type=file
+d:\tlperl\lib/auto/Encode/CN/CN.dll type=file
+d:\tlperl\lib/auto/Encode/CN/CN.pdb type=file
+d:\tlperl\lib/auto/Encode/EBCDIC/EBCDIC.dll type=file
+d:\tlperl\lib/auto/Encode/EBCDIC/EBCDIC.pdb type=file
+d:\tlperl\lib/auto/Encode/Encode.dll type=file
+d:\tlperl\lib/auto/Encode/Encode.pdb type=file
+d:\tlperl\lib/auto/Encode/JP/JP.dll type=file
+d:\tlperl\lib/auto/Encode/JP/JP.pdb type=file
+d:\tlperl\lib/auto/Encode/KR/KR.dll type=file
+d:\tlperl\lib/auto/Encode/KR/KR.pdb type=file
+d:\tlperl\lib/auto/Encode/Symbol/Symbol.dll type=file
+d:\tlperl\lib/auto/Encode/Symbol/Symbol.pdb type=file
+d:\tlperl\lib/auto/Encode/TW/TW.dll type=file
+d:\tlperl\lib/auto/Encode/TW/TW.pdb type=file
+d:\tlperl\lib/auto/Encode/Unicode/Unicode.dll type=file
+d:\tlperl\lib/auto/Encode/Unicode/Unicode.pdb type=file
+d:\tlperl\lib/auto/Fcntl/Fcntl.dll type=file
+d:\tlperl\lib/auto/Fcntl/Fcntl.pdb type=file
+d:\tlperl\lib/auto/File/DosGlob/DosGlob.dll type=file
+d:\tlperl\lib/auto/File/DosGlob/DosGlob.pdb type=file
+d:\tlperl\lib/auto/File/Glob/Glob.dll type=file
+d:\tlperl\lib/auto/File/Glob/Glob.pdb type=file
+d:\tlperl\lib/auto/Filter/Util/Call/Call.dll type=file
+d:\tlperl\lib/auto/Filter/Util/Call/Call.pdb type=file
+d:\tlperl\lib/auto/Hash/Util/FieldHash/FieldHash.dll type=file
+d:\tlperl\lib/auto/Hash/Util/FieldHash/FieldHash.pdb type=file
+d:\tlperl\lib/auto/Hash/Util/Util.dll type=file
+d:\tlperl\lib/auto/Hash/Util/Util.pdb type=file
+d:\tlperl\lib/auto/I18N/Langinfo/Langinfo.dll type=file
+d:\tlperl\lib/auto/I18N/Langinfo/Langinfo.pdb type=file
+d:\tlperl\lib/auto/IO/IO.dll type=file
+d:\tlperl\lib/auto/IO/IO.pdb type=file
+d:\tlperl\lib/auto/List/Util/Util.dll type=file
+d:\tlperl\lib/auto/List/Util/Util.pdb type=file
+d:\tlperl\lib/auto/MIME/Base64/Base64.dll type=file
+d:\tlperl\lib/auto/MIME/Base64/Base64.pdb type=file
+d:\tlperl\lib/auto/Math/BigInt/FastCalc/FastCalc.dll type=file
+d:\tlperl\lib/auto/Math/BigInt/FastCalc/FastCalc.pdb type=file
+d:\tlperl\lib/auto/Opcode/Opcode.dll type=file
+d:\tlperl\lib/auto/Opcode/Opcode.pdb type=file
+d:\tlperl\lib/auto/POSIX/POSIX.dll type=file
+d:\tlperl\lib/auto/POSIX/POSIX.pdb type=file
+d:\tlperl\lib/auto/PerlIO/encoding/encoding.dll type=file
+d:\tlperl\lib/auto/PerlIO/encoding/encoding.pdb type=file
+d:\tlperl\lib/auto/PerlIO/mmap/mmap.dll type=file
+d:\tlperl\lib/auto/PerlIO/mmap/mmap.pdb type=file
+d:\tlperl\lib/auto/PerlIO/scalar/scalar.dll type=file
+d:\tlperl\lib/auto/PerlIO/scalar/scalar.pdb type=file
+d:\tlperl\lib/auto/PerlIO/via/via.dll type=file
+d:\tlperl\lib/auto/PerlIO/via/via.pdb type=file
+d:\tlperl\lib/auto/SDBM_File/SDBM_File.dll type=file
+d:\tlperl\lib/auto/SDBM_File/SDBM_File.pdb type=file
+d:\tlperl\lib/auto/Socket/Socket.dll type=file
+d:\tlperl\lib/auto/Socket/Socket.pdb type=file
+d:\tlperl\lib/auto/Storable/Storable.dll type=file
+d:\tlperl\lib/auto/Storable/Storable.pdb type=file
+d:\tlperl\lib/auto/Sys/Hostname/Hostname.dll type=file
+d:\tlperl\lib/auto/Sys/Hostname/Hostname.pdb type=file
+d:\tlperl\lib/auto/Time/HiRes/HiRes.dll type=file
+d:\tlperl\lib/auto/Time/HiRes/HiRes.pdb type=file
+d:\tlperl\lib/auto/Time/Piece/Piece.dll type=file
+d:\tlperl\lib/auto/Time/Piece/Piece.pdb type=file
+d:\tlperl\lib/auto/Unicode/Collate/Collate.dll type=file
+d:\tlperl\lib/auto/Unicode/Collate/Collate.pdb type=file
+d:\tlperl\lib/auto/Unicode/Normalize/Normalize.dll type=file
+d:\tlperl\lib/auto/Unicode/Normalize/Normalize.pdb type=file
+d:\tlperl\lib/auto/Win32/Win32.dll type=file
+d:\tlperl\lib/auto/Win32/Win32.pdb type=file
+d:\tlperl\lib/auto/Win32API/File/File.dll type=file
+d:\tlperl\lib/auto/Win32API/File/File.pdb type=file
+d:\tlperl\lib/auto/Win32CORE/extralibs.ld type=file
+d:\tlperl\lib/auto/attributes/attributes.dll type=file
+d:\tlperl\lib/auto/attributes/attributes.pdb type=file
+d:\tlperl\lib/auto/mro/mro.dll type=file
+d:\tlperl\lib/auto/mro/mro.pdb type=file
+d:\tlperl\lib/auto/re/re.dll type=file
+d:\tlperl\lib/auto/re/re.pdb type=file
+d:\tlperl\lib/auto/threads/shared/shared.dll type=file
+d:\tlperl\lib/auto/threads/shared/shared.pdb type=file
+d:\tlperl\lib/auto/threads/threads.dll type=file
+d:\tlperl\lib/auto/threads/threads.pdb type=file
+d:\tlperl\lib/autodie.pm type=file
+d:\tlperl\lib/autodie/Scope/Guard.pm type=file
+d:\tlperl\lib/autodie/Scope/GuardStack.pm type=file
+d:\tlperl\lib/autodie/Util.pm type=file
+d:\tlperl\lib/autodie/exception.pm type=file
+d:\tlperl\lib/autodie/exception/system.pm type=file
+d:\tlperl\lib/autodie/hints.pm type=file
+d:\tlperl\lib/autodie/skip.pm type=file
+d:\tlperl\lib/autouse.pm type=file
+d:\tlperl\lib/base.pm type=file
+d:\tlperl\lib/bigfloat.pm type=file
+d:\tlperl\lib/bigint.pm type=file
+d:\tlperl\lib/bignum.pm type=file
+d:\tlperl\lib/bigrat.pm type=file
+d:\tlperl\lib/blib.pm type=file
+d:\tlperl\lib/builtin.pm type=file
+d:\tlperl\lib/bytes.pm type=file
+d:\tlperl\lib/bytes_heavy.pl type=file
+d:\tlperl\lib/charnames.pm type=file
+d:\tlperl\lib/constant.pm type=file
+d:\tlperl\lib/deprecate.pm type=file
+d:\tlperl\lib/diagnostics.pm type=file
+d:\tlperl\lib/dumpvar.pl type=file
+d:\tlperl\lib/encoding.pm type=file
+d:\tlperl\lib/encoding/warnings.pm type=file
+d:\tlperl\lib/experimental.pm type=file
+d:\tlperl\lib/feature.pm type=file
+d:\tlperl\lib/fields.pm type=file
+d:\tlperl\lib/filetest.pm type=file
+d:\tlperl\lib/if.pm type=file
+d:\tlperl\lib/integer.pm type=file
+d:\tlperl\lib/less.pm type=file
+d:\tlperl\lib/lib.pm type=file
+d:\tlperl\lib/locale.pm type=file
+d:\tlperl\lib/meta_notation.pm type=file
+d:\tlperl\lib/mro.pm type=file
+d:\tlperl\lib/ok.pm type=file
+d:\tlperl\lib/open.pm type=file
+d:\tlperl\lib/ops.pm type=file
+d:\tlperl\lib/overload.pm type=file
+d:\tlperl\lib/overload/numbers.pm type=file
+d:\tlperl\lib/overloading.pm type=file
+d:\tlperl\lib/parent.pm type=file
+d:\tlperl\lib/perl5db.pl type=file
+d:\tlperl\lib/perlfaq.pm type=file
+d:\tlperl\lib/pods/perl.pod type=file
+d:\tlperl\lib/pods/perl5004delta.pod type=file
+d:\tlperl\lib/pods/perl5005delta.pod type=file
+d:\tlperl\lib/pods/perl5100delta.pod type=file
+d:\tlperl\lib/pods/perl5101delta.pod type=file
+d:\tlperl\lib/pods/perl5120delta.pod type=file
+d:\tlperl\lib/pods/perl5121delta.pod type=file
+d:\tlperl\lib/pods/perl5122delta.pod type=file
+d:\tlperl\lib/pods/perl5123delta.pod type=file
+d:\tlperl\lib/pods/perl5124delta.pod type=file
+d:\tlperl\lib/pods/perl5125delta.pod type=file
+d:\tlperl\lib/pods/perl5140delta.pod type=file
+d:\tlperl\lib/pods/perl5141delta.pod type=file
+d:\tlperl\lib/pods/perl5142delta.pod type=file
+d:\tlperl\lib/pods/perl5143delta.pod type=file
+d:\tlperl\lib/pods/perl5144delta.pod type=file
+d:\tlperl\lib/pods/perl5160delta.pod type=file
+d:\tlperl\lib/pods/perl5161delta.pod type=file
+d:\tlperl\lib/pods/perl5162delta.pod type=file
+d:\tlperl\lib/pods/perl5163delta.pod type=file
+d:\tlperl\lib/pods/perl5180delta.pod type=file
+d:\tlperl\lib/pods/perl5181delta.pod type=file
+d:\tlperl\lib/pods/perl5182delta.pod type=file
+d:\tlperl\lib/pods/perl5184delta.pod type=file
+d:\tlperl\lib/pods/perl5200delta.pod type=file
+d:\tlperl\lib/pods/perl5201delta.pod type=file
+d:\tlperl\lib/pods/perl5202delta.pod type=file
+d:\tlperl\lib/pods/perl5203delta.pod type=file
+d:\tlperl\lib/pods/perl5220delta.pod type=file
+d:\tlperl\lib/pods/perl5221delta.pod type=file
+d:\tlperl\lib/pods/perl5222delta.pod type=file
+d:\tlperl\lib/pods/perl5223delta.pod type=file
+d:\tlperl\lib/pods/perl5224delta.pod type=file
+d:\tlperl\lib/pods/perl5240delta.pod type=file
+d:\tlperl\lib/pods/perl5241delta.pod type=file
+d:\tlperl\lib/pods/perl5242delta.pod type=file
+d:\tlperl\lib/pods/perl5243delta.pod type=file
+d:\tlperl\lib/pods/perl5244delta.pod type=file
+d:\tlperl\lib/pods/perl5260delta.pod type=file
+d:\tlperl\lib/pods/perl5261delta.pod type=file
+d:\tlperl\lib/pods/perl5262delta.pod type=file
+d:\tlperl\lib/pods/perl5263delta.pod type=file
+d:\tlperl\lib/pods/perl5280delta.pod type=file
+d:\tlperl\lib/pods/perl5281delta.pod type=file
+d:\tlperl\lib/pods/perl5282delta.pod type=file
+d:\tlperl\lib/pods/perl5283delta.pod type=file
+d:\tlperl\lib/pods/perl5300delta.pod type=file
+d:\tlperl\lib/pods/perl5301delta.pod type=file
+d:\tlperl\lib/pods/perl5302delta.pod type=file
+d:\tlperl\lib/pods/perl5303delta.pod type=file
+d:\tlperl\lib/pods/perl5320delta.pod type=file
+d:\tlperl\lib/pods/perl5321delta.pod type=file
+d:\tlperl\lib/pods/perl5340delta.pod type=file
+d:\tlperl\lib/pods/perl5341delta.pod type=file
+d:\tlperl\lib/pods/perl5342delta.pod type=file
+d:\tlperl\lib/pods/perl5343delta.pod type=file
+d:\tlperl\lib/pods/perl5360delta.pod type=file
+d:\tlperl\lib/pods/perl5361delta.pod type=file
+d:\tlperl\lib/pods/perl5362delta.pod type=file
+d:\tlperl\lib/pods/perl5363delta.pod type=file
+d:\tlperl\lib/pods/perl5380delta.pod type=file
+d:\tlperl\lib/pods/perl5381delta.pod type=file
+d:\tlperl\lib/pods/perl5382delta.pod type=file
+d:\tlperl\lib/pods/perl561delta.pod type=file
+d:\tlperl\lib/pods/perl56delta.pod type=file
+d:\tlperl\lib/pods/perl581delta.pod type=file
+d:\tlperl\lib/pods/perl582delta.pod type=file
+d:\tlperl\lib/pods/perl583delta.pod type=file
+d:\tlperl\lib/pods/perl584delta.pod type=file
+d:\tlperl\lib/pods/perl585delta.pod type=file
+d:\tlperl\lib/pods/perl586delta.pod type=file
+d:\tlperl\lib/pods/perl587delta.pod type=file
+d:\tlperl\lib/pods/perl588delta.pod type=file
+d:\tlperl\lib/pods/perl589delta.pod type=file
+d:\tlperl\lib/pods/perl58delta.pod type=file
+d:\tlperl\lib/pods/perlaix.pod type=file
+d:\tlperl\lib/pods/perlamiga.pod type=file
+d:\tlperl\lib/pods/perlandroid.pod type=file
+d:\tlperl\lib/pods/perlapi.pod type=file
+d:\tlperl\lib/pods/perlapio.pod type=file
+d:\tlperl\lib/pods/perlartistic.pod type=file
+d:\tlperl\lib/pods/perlbook.pod type=file
+d:\tlperl\lib/pods/perlboot.pod type=file
+d:\tlperl\lib/pods/perlbot.pod type=file
+d:\tlperl\lib/pods/perlbs2000.pod type=file
+d:\tlperl\lib/pods/perlcall.pod type=file
+d:\tlperl\lib/pods/perlcheat.pod type=file
+d:\tlperl\lib/pods/perlclass.pod type=file
+d:\tlperl\lib/pods/perlclassguts.pod type=file
+d:\tlperl\lib/pods/perlclib.pod type=file
+d:\tlperl\lib/pods/perlcn.pod type=file
+d:\tlperl\lib/pods/perlcommunity.pod type=file
+d:\tlperl\lib/pods/perlcygwin.pod type=file
+d:\tlperl\lib/pods/perldata.pod type=file
+d:\tlperl\lib/pods/perldbmfilter.pod type=file
+d:\tlperl\lib/pods/perldebguts.pod type=file
+d:\tlperl\lib/pods/perldebtut.pod type=file
+d:\tlperl\lib/pods/perldebug.pod type=file
+d:\tlperl\lib/pods/perldelta.pod type=file
+d:\tlperl\lib/pods/perldeprecation.pod type=file
+d:\tlperl\lib/pods/perldiag.pod type=file
+d:\tlperl\lib/pods/perldoc.pod type=file
+d:\tlperl\lib/pods/perldocstyle.pod type=file
+d:\tlperl\lib/pods/perldsc.pod type=file
+d:\tlperl\lib/pods/perldtrace.pod type=file
+d:\tlperl\lib/pods/perlebcdic.pod type=file
+d:\tlperl\lib/pods/perlembed.pod type=file
+d:\tlperl\lib/pods/perlexperiment.pod type=file
+d:\tlperl\lib/pods/perlfaq.pod type=file
+d:\tlperl\lib/pods/perlfaq1.pod type=file
+d:\tlperl\lib/pods/perlfaq2.pod type=file
+d:\tlperl\lib/pods/perlfaq3.pod type=file
+d:\tlperl\lib/pods/perlfaq4.pod type=file
+d:\tlperl\lib/pods/perlfaq5.pod type=file
+d:\tlperl\lib/pods/perlfaq6.pod type=file
+d:\tlperl\lib/pods/perlfaq7.pod type=file
+d:\tlperl\lib/pods/perlfaq8.pod type=file
+d:\tlperl\lib/pods/perlfaq9.pod type=file
+d:\tlperl\lib/pods/perlfilter.pod type=file
+d:\tlperl\lib/pods/perlfork.pod type=file
+d:\tlperl\lib/pods/perlform.pod type=file
+d:\tlperl\lib/pods/perlfreebsd.pod type=file
+d:\tlperl\lib/pods/perlfunc.pod type=file
+d:\tlperl\lib/pods/perlgit.pod type=file
+d:\tlperl\lib/pods/perlglossary.pod type=file
+d:\tlperl\lib/pods/perlgov.pod type=file
+d:\tlperl\lib/pods/perlgpl.pod type=file
+d:\tlperl\lib/pods/perlguts.pod type=file
+d:\tlperl\lib/pods/perlhack.pod type=file
+d:\tlperl\lib/pods/perlhacktips.pod type=file
+d:\tlperl\lib/pods/perlhacktut.pod type=file
+d:\tlperl\lib/pods/perlhaiku.pod type=file
+d:\tlperl\lib/pods/perlhist.pod type=file
+d:\tlperl\lib/pods/perlhpux.pod type=file
+d:\tlperl\lib/pods/perlhurd.pod type=file
+d:\tlperl\lib/pods/perlintern.pod type=file
+d:\tlperl\lib/pods/perlinterp.pod type=file
+d:\tlperl\lib/pods/perlintro.pod type=file
+d:\tlperl\lib/pods/perliol.pod type=file
+d:\tlperl\lib/pods/perlipc.pod type=file
+d:\tlperl\lib/pods/perlirix.pod type=file
+d:\tlperl\lib/pods/perljp.pod type=file
+d:\tlperl\lib/pods/perlko.pod type=file
+d:\tlperl\lib/pods/perllexwarn.pod type=file
+d:\tlperl\lib/pods/perllinux.pod type=file
+d:\tlperl\lib/pods/perllocale.pod type=file
+d:\tlperl\lib/pods/perllol.pod type=file
+d:\tlperl\lib/pods/perlmacosx.pod type=file
+d:\tlperl\lib/pods/perlmod.pod type=file
+d:\tlperl\lib/pods/perlmodinstall.pod type=file
+d:\tlperl\lib/pods/perlmodlib.pod type=file
+d:\tlperl\lib/pods/perlmodstyle.pod type=file
+d:\tlperl\lib/pods/perlmroapi.pod type=file
+d:\tlperl\lib/pods/perlnewmod.pod type=file
+d:\tlperl\lib/pods/perlnumber.pod type=file
+d:\tlperl\lib/pods/perlobj.pod type=file
+d:\tlperl\lib/pods/perlootut.pod type=file
+d:\tlperl\lib/pods/perlop.pod type=file
+d:\tlperl\lib/pods/perlopenbsd.pod type=file
+d:\tlperl\lib/pods/perlopentut.pod type=file
+d:\tlperl\lib/pods/perlos2.pod type=file
+d:\tlperl\lib/pods/perlos390.pod type=file
+d:\tlperl\lib/pods/perlos400.pod type=file
+d:\tlperl\lib/pods/perlpacktut.pod type=file
+d:\tlperl\lib/pods/perlperf.pod type=file
+d:\tlperl\lib/pods/perlplan9.pod type=file
+d:\tlperl\lib/pods/perlpod.pod type=file
+d:\tlperl\lib/pods/perlpodspec.pod type=file
+d:\tlperl\lib/pods/perlpodstyle.pod type=file
+d:\tlperl\lib/pods/perlpolicy.pod type=file
+d:\tlperl\lib/pods/perlport.pod type=file
+d:\tlperl\lib/pods/perlpragma.pod type=file
+d:\tlperl\lib/pods/perlqnx.pod type=file
+d:\tlperl\lib/pods/perlre.pod type=file
+d:\tlperl\lib/pods/perlreapi.pod type=file
+d:\tlperl\lib/pods/perlrebackslash.pod type=file
+d:\tlperl\lib/pods/perlrecharclass.pod type=file
+d:\tlperl\lib/pods/perlref.pod type=file
+d:\tlperl\lib/pods/perlreftut.pod type=file
+d:\tlperl\lib/pods/perlreguts.pod type=file
+d:\tlperl\lib/pods/perlrepository.pod type=file
+d:\tlperl\lib/pods/perlrequick.pod type=file
+d:\tlperl\lib/pods/perlreref.pod type=file
+d:\tlperl\lib/pods/perlretut.pod type=file
+d:\tlperl\lib/pods/perlriscos.pod type=file
+d:\tlperl\lib/pods/perlrun.pod type=file
+d:\tlperl\lib/pods/perlsec.pod type=file
+d:\tlperl\lib/pods/perlsecpolicy.pod type=file
+d:\tlperl\lib/pods/perlsolaris.pod type=file
+d:\tlperl\lib/pods/perlsource.pod type=file
+d:\tlperl\lib/pods/perlstyle.pod type=file
+d:\tlperl\lib/pods/perlsub.pod type=file
+d:\tlperl\lib/pods/perlsyn.pod type=file
+d:\tlperl\lib/pods/perlsynology.pod type=file
+d:\tlperl\lib/pods/perlthrtut.pod type=file
+d:\tlperl\lib/pods/perltie.pod type=file
+d:\tlperl\lib/pods/perltoc.pod type=file
+d:\tlperl\lib/pods/perltodo.pod type=file
+d:\tlperl\lib/pods/perltooc.pod type=file
+d:\tlperl\lib/pods/perltoot.pod type=file
+d:\tlperl\lib/pods/perltrap.pod type=file
+d:\tlperl\lib/pods/perltru64.pod type=file
+d:\tlperl\lib/pods/perltw.pod type=file
+d:\tlperl\lib/pods/perlunicode.pod type=file
+d:\tlperl\lib/pods/perlunicook.pod type=file
+d:\tlperl\lib/pods/perlunifaq.pod type=file
+d:\tlperl\lib/pods/perluniintro.pod type=file
+d:\tlperl\lib/pods/perluniprops.pod type=file
+d:\tlperl\lib/pods/perlunitut.pod type=file
+d:\tlperl\lib/pods/perlutil.pod type=file
+d:\tlperl\lib/pods/perlvar.pod type=file
+d:\tlperl\lib/pods/perlvms.pod type=file
+d:\tlperl\lib/pods/perlvos.pod type=file
+d:\tlperl\lib/pods/perlwin32.pod type=file
+d:\tlperl\lib/pods/perlxs.pod type=file
+d:\tlperl\lib/pods/perlxstut.pod type=file
+d:\tlperl\lib/pods/perlxstypemap.pod type=file
+d:\tlperl\lib/re.pm type=file
+d:\tlperl\lib/sigtrap.pm type=file
+d:\tlperl\lib/sort.pm type=file
+d:\tlperl\lib/stable.pm type=file
+d:\tlperl\lib/strict.pm type=file
+d:\tlperl\lib/subs.pm type=file
+d:\tlperl\lib/threads.pm type=file
+d:\tlperl\lib/threads/shared.pm type=file
+d:\tlperl\lib/unicore/Blocks.txt type=file
+d:\tlperl\lib/unicore/CombiningClass.pl type=file
+d:\tlperl\lib/unicore/Decomposition.pl type=file
+d:\tlperl\lib/unicore/Name.pl type=file
+d:\tlperl\lib/unicore/Name.pm type=file
+d:\tlperl\lib/unicore/NamedSequences.txt type=file
+d:\tlperl\lib/unicore/SpecialCasing.txt type=file
+d:\tlperl\lib/unicore/TestNorm.pl type=file
+d:\tlperl\lib/unicore/To/Age.pl type=file
+d:\tlperl\lib/unicore/To/Bc.pl type=file
+d:\tlperl\lib/unicore/To/Bmg.pl type=file
+d:\tlperl\lib/unicore/To/Bpb.pl type=file
+d:\tlperl\lib/unicore/To/Bpt.pl type=file
+d:\tlperl\lib/unicore/To/Cf.pl type=file
+d:\tlperl\lib/unicore/To/Ea.pl type=file
+d:\tlperl\lib/unicore/To/EqUIdeo.pl type=file
+d:\tlperl\lib/unicore/To/GCB.pl type=file
+d:\tlperl\lib/unicore/To/Gc.pl type=file
+d:\tlperl\lib/unicore/To/Hst.pl type=file
+d:\tlperl\lib/unicore/To/Identif2.pl type=file
+d:\tlperl\lib/unicore/To/Identifi.pl type=file
+d:\tlperl\lib/unicore/To/InPC.pl type=file
+d:\tlperl\lib/unicore/To/InSC.pl type=file
+d:\tlperl\lib/unicore/To/Isc.pl type=file
+d:\tlperl\lib/unicore/To/Jg.pl type=file
+d:\tlperl\lib/unicore/To/Jt.pl type=file
+d:\tlperl\lib/unicore/To/Lb.pl type=file
+d:\tlperl\lib/unicore/To/Lc.pl type=file
+d:\tlperl\lib/unicore/To/NFCQC.pl type=file
+d:\tlperl\lib/unicore/To/NFDQC.pl type=file
+d:\tlperl\lib/unicore/To/NFKCCF.pl type=file
+d:\tlperl\lib/unicore/To/NFKCQC.pl type=file
+d:\tlperl\lib/unicore/To/NFKDQC.pl type=file
+d:\tlperl\lib/unicore/To/Na1.pl type=file
+d:\tlperl\lib/unicore/To/NameAlia.pl type=file
+d:\tlperl\lib/unicore/To/Nt.pl type=file
+d:\tlperl\lib/unicore/To/Nv.pl type=file
+d:\tlperl\lib/unicore/To/PerlDeci.pl type=file
+d:\tlperl\lib/unicore/To/SB.pl type=file
+d:\tlperl\lib/unicore/To/Sc.pl type=file
+d:\tlperl\lib/unicore/To/Scx.pl type=file
+d:\tlperl\lib/unicore/To/Tc.pl type=file
+d:\tlperl\lib/unicore/To/Uc.pl type=file
+d:\tlperl\lib/unicore/To/Vo.pl type=file
+d:\tlperl\lib/unicore/To/WB.pl type=file
+d:\tlperl\lib/unicore/To/_PerlLB.pl type=file
+d:\tlperl\lib/unicore/To/_PerlSCX.pl type=file
+d:\tlperl\lib/unicore/UCD.pl type=file
+d:\tlperl\lib/unicore/lib/Age/NA.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V100.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V11.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V110.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V120.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V130.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V140.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V150.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V20.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V30.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V31.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V32.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V40.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V41.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V50.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V51.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V52.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V60.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V61.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V70.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V80.pl type=file
+d:\tlperl\lib/unicore/lib/Age/V90.pl type=file
+d:\tlperl\lib/unicore/lib/Alpha/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/AL.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/AN.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/B.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/BN.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/CS.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/EN.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/ES.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/ET.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/L.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/NSM.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/ON.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/R.pl type=file
+d:\tlperl\lib/unicore/lib/Bc/WS.pl type=file
+d:\tlperl\lib/unicore/lib/BidiC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/BidiM/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Blk/NB.pl type=file
+d:\tlperl\lib/unicore/lib/Bpt/C.pl type=file
+d:\tlperl\lib/unicore/lib/Bpt/N.pl type=file
+d:\tlperl\lib/unicore/lib/Bpt/O.pl type=file
+d:\tlperl\lib/unicore/lib/CE/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CI/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CWCF/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CWCM/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CWKCF/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CWL/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CWT/Y.pl type=file
+d:\tlperl\lib/unicore/lib/CWU/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Cased/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/A.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/AL.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/AR.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/ATAR.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/B.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/BR.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/DB.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/NK.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/NR.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/OV.pl type=file
+d:\tlperl\lib/unicore/lib/Ccc/VR.pl type=file
+d:\tlperl\lib/unicore/lib/CompEx/Y.pl type=file
+d:\tlperl\lib/unicore/lib/DI/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Dash/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Dep/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Dia/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Com.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Enc.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Fin.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Font.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Init.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Iso.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Med.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Nar.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Nb.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/NonCanon.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Sqr.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Sub.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Sup.pl type=file
+d:\tlperl\lib/unicore/lib/Dt/Vert.pl type=file
+d:\tlperl\lib/unicore/lib/EBase/Y.pl type=file
+d:\tlperl\lib/unicore/lib/EComp/Y.pl type=file
+d:\tlperl\lib/unicore/lib/EPres/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Ea/A.pl type=file
+d:\tlperl\lib/unicore/lib/Ea/H.pl type=file
+d:\tlperl\lib/unicore/lib/Ea/N.pl type=file
+d:\tlperl\lib/unicore/lib/Ea/Na.pl type=file
+d:\tlperl\lib/unicore/lib/Ea/W.pl type=file
+d:\tlperl\lib/unicore/lib/Emoji/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Ext/Y.pl type=file
+d:\tlperl\lib/unicore/lib/ExtPict/Y.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/CN.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/EX.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/LV.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/LVT.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/PP.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/SM.pl type=file
+d:\tlperl\lib/unicore/lib/GCB/XX.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/C.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Cf.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Cn.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/L.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/LC.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Ll.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Lm.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Lo.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Lu.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/M.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Mc.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Me.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Mn.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/N.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Nd.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Nl.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/No.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/P.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Pc.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Pd.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Pe.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Pf.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Pi.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Po.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Ps.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/S.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Sc.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Sk.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Sm.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/So.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Z.pl type=file
+d:\tlperl\lib/unicore/lib/Gc/Zs.pl type=file
+d:\tlperl\lib/unicore/lib/GrBase/Y.pl type=file
+d:\tlperl\lib/unicore/lib/GrExt/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Hex/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Hst/NA.pl type=file
+d:\tlperl\lib/unicore/lib/Hyphen/T.pl type=file
+d:\tlperl\lib/unicore/lib/IDC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/IDS/Y.pl type=file
+d:\tlperl\lib/unicore/lib/IdStatus/Allowed.pl type=file
+d:\tlperl\lib/unicore/lib/IdStatus/Restrict.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/DefaultI.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/Exclusio.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/Inclusio.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/LimitedU.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/NotChara.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/NotNFKC.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/NotXID.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/Obsolete.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/Recommen.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/Technica.pl type=file
+d:\tlperl\lib/unicore/lib/IdType/Uncommon.pl type=file
+d:\tlperl\lib/unicore/lib/Ideo/Y.pl type=file
+d:\tlperl\lib/unicore/lib/In/10_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/11_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/12_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/12_1.pl type=file
+d:\tlperl\lib/unicore/lib/In/13_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/14_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/15_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/2_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/2_1.pl type=file
+d:\tlperl\lib/unicore/lib/In/3_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/3_1.pl type=file
+d:\tlperl\lib/unicore/lib/In/3_2.pl type=file
+d:\tlperl\lib/unicore/lib/In/4_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/4_1.pl type=file
+d:\tlperl\lib/unicore/lib/In/5_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/5_1.pl type=file
+d:\tlperl\lib/unicore/lib/In/5_2.pl type=file
+d:\tlperl\lib/unicore/lib/In/6_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/6_1.pl type=file
+d:\tlperl\lib/unicore/lib/In/6_2.pl type=file
+d:\tlperl\lib/unicore/lib/In/6_3.pl type=file
+d:\tlperl\lib/unicore/lib/In/7_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/8_0.pl type=file
+d:\tlperl\lib/unicore/lib/In/9_0.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/Bottom.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/BottomAn.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/Left.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/LeftAndR.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/NA.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/Overstru.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/Right.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/Top.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/TopAndBo.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/TopAndL2.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/TopAndLe.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/TopAndRi.pl type=file
+d:\tlperl\lib/unicore/lib/InPC/VisualOr.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Avagraha.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Bindu.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Cantilla.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona2.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona3.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona4.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona5.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona6.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona7.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona8.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consona9.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Consonan.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Geminati.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Invisibl.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Nukta.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Number.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Other.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/PureKill.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Syllable.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/ToneMark.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Virama.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Visarga.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/Vowel.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/VowelDep.pl type=file
+d:\tlperl\lib/unicore/lib/InSC/VowelInd.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Ain.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Alef.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Beh.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Dal.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/FarsiYeh.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Feh.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Gaf.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Hah.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/HanifiRo.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Kaf.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Lam.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/NoJoinin.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Noon.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Qaf.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Reh.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Sad.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Seen.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Tah.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Waw.pl type=file
+d:\tlperl\lib/unicore/lib/Jg/Yeh.pl type=file
+d:\tlperl\lib/unicore/lib/Jt/C.pl type=file
+d:\tlperl\lib/unicore/lib/Jt/D.pl type=file
+d:\tlperl\lib/unicore/lib/Jt/L.pl type=file
+d:\tlperl\lib/unicore/lib/Jt/R.pl type=file
+d:\tlperl\lib/unicore/lib/Jt/T.pl type=file
+d:\tlperl\lib/unicore/lib/Jt/U.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/AI.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/AL.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/BA.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/BB.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/CJ.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/CL.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/CM.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/EX.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/GL.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/ID.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/IN.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/IS.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/NS.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/NU.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/OP.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/PO.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/PR.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/QU.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/SA.pl type=file
+d:\tlperl\lib/unicore/lib/Lb/XX.pl type=file
+d:\tlperl\lib/unicore/lib/Lower/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Math/Y.pl type=file
+d:\tlperl\lib/unicore/lib/NFCQC/M.pl type=file
+d:\tlperl\lib/unicore/lib/NFCQC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/NFDQC/N.pl type=file
+d:\tlperl\lib/unicore/lib/NFDQC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/NFKCQC/N.pl type=file
+d:\tlperl\lib/unicore/lib/NFKCQC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/NFKDQC/N.pl type=file
+d:\tlperl\lib/unicore/lib/NFKDQC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Nt/Di.pl type=file
+d:\tlperl\lib/unicore/lib/Nt/None.pl type=file
+d:\tlperl\lib/unicore/lib/Nt/Nu.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/0.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/10.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/100.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/10000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/100000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/11.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/12.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/13.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/14.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/15.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/16.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/17.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/18.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/19.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1_16.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1_2.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1_3.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1_4.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1_6.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/1_8.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/2.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/20.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/200.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/2000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/20000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/2_3.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/3.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/30.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/300.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/3000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/30000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/3_16.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/3_4.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/4.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/40.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/400.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/4000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/40000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/5.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/50.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/500.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/5000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/50000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/6.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/60.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/600.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/6000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/60000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/7.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/70.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/700.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/7000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/70000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/8.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/80.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/800.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/8000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/80000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/9.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/90.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/900.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/9000.pl type=file
+d:\tlperl\lib/unicore/lib/Nv/90000.pl type=file
+d:\tlperl\lib/unicore/lib/PCM/Y.pl type=file
+d:\tlperl\lib/unicore/lib/PatSyn/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Alnum.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Assigned.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Blank.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Graph.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/PerlWord.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/PosixPun.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Print.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/SpacePer.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Title.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/Word.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/XPosixPu.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlAny.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlCh2.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlCha.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlFol.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlIDC.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlIDS.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlIsI.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlNch.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlPat.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlPr2.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlPro.pl type=file
+d:\tlperl\lib/unicore/lib/Perl/_PerlQuo.pl type=file
+d:\tlperl\lib/unicore/lib/QMark/Y.pl type=file
+d:\tlperl\lib/unicore/lib/SB/AT.pl type=file
+d:\tlperl\lib/unicore/lib/SB/CL.pl type=file
+d:\tlperl\lib/unicore/lib/SB/EX.pl type=file
+d:\tlperl\lib/unicore/lib/SB/FO.pl type=file
+d:\tlperl\lib/unicore/lib/SB/LE.pl type=file
+d:\tlperl\lib/unicore/lib/SB/LO.pl type=file
+d:\tlperl\lib/unicore/lib/SB/NU.pl type=file
+d:\tlperl\lib/unicore/lib/SB/SC.pl type=file
+d:\tlperl\lib/unicore/lib/SB/ST.pl type=file
+d:\tlperl\lib/unicore/lib/SB/Sp.pl type=file
+d:\tlperl\lib/unicore/lib/SB/UP.pl type=file
+d:\tlperl\lib/unicore/lib/SB/XX.pl type=file
+d:\tlperl\lib/unicore/lib/SD/Y.pl type=file
+d:\tlperl\lib/unicore/lib/STerm/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Arab.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Beng.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Cprt.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Cyrl.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Deva.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Dupl.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Geor.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Glag.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Gong.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Gonm.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Gran.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Grek.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Gujr.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Guru.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Han.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Hang.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Hira.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Kana.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Knda.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Latn.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Limb.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Linb.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Mlym.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Mong.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Mult.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Orya.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Sinh.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Syrc.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Taml.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Telu.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Zinh.pl type=file
+d:\tlperl\lib/unicore/lib/Sc/Zyyy.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Adlm.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Arab.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Armn.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Beng.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Bhks.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Bopo.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Cakm.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Cham.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Copt.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Cprt.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Cyrl.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Deva.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Diak.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Dupl.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Ethi.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Geor.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Glag.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Gong.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Gonm.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Gran.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Grek.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Gujr.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Guru.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Han.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Hang.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Hebr.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Hira.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Hmng.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Hmnp.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Kana.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Khar.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Khmr.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Khoj.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Knda.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Kthi.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Lana.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Lao.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Latn.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Limb.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Lina.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Linb.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Mlym.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Mong.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Mult.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Mymr.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Nand.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Nko.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Orya.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Phlp.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Rohg.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Shrd.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Sind.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Sinh.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Syrc.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Tagb.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Takr.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Talu.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Taml.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Tang.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Telu.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Thaa.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Tibt.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Tirh.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Vith.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Xsux.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Yezi.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Yi.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Zinh.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Zyyy.pl type=file
+d:\tlperl\lib/unicore/lib/Scx/Zzzz.pl type=file
+d:\tlperl\lib/unicore/lib/Term/Y.pl type=file
+d:\tlperl\lib/unicore/lib/UIdeo/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Upper/Y.pl type=file
+d:\tlperl\lib/unicore/lib/VS/Y.pl type=file
+d:\tlperl\lib/unicore/lib/Vo/R.pl type=file
+d:\tlperl\lib/unicore/lib/Vo/Tr.pl type=file
+d:\tlperl\lib/unicore/lib/Vo/Tu.pl type=file
+d:\tlperl\lib/unicore/lib/Vo/U.pl type=file
+d:\tlperl\lib/unicore/lib/WB/EX.pl type=file
+d:\tlperl\lib/unicore/lib/WB/Extend.pl type=file
+d:\tlperl\lib/unicore/lib/WB/FO.pl type=file
+d:\tlperl\lib/unicore/lib/WB/HL.pl type=file
+d:\tlperl\lib/unicore/lib/WB/KA.pl type=file
+d:\tlperl\lib/unicore/lib/WB/LE.pl type=file
+d:\tlperl\lib/unicore/lib/WB/MB.pl type=file
+d:\tlperl\lib/unicore/lib/WB/ML.pl type=file
+d:\tlperl\lib/unicore/lib/WB/MN.pl type=file
+d:\tlperl\lib/unicore/lib/WB/NU.pl type=file
+d:\tlperl\lib/unicore/lib/WB/WSegSpac.pl type=file
+d:\tlperl\lib/unicore/lib/WB/XX.pl type=file
+d:\tlperl\lib/unicore/lib/XIDC/Y.pl type=file
+d:\tlperl\lib/unicore/lib/XIDS/Y.pl type=file
+d:\tlperl\lib/unicore/uni_keywords.pl type=file
+d:\tlperl\lib/unicore/version type=file
+d:\tlperl\lib/utf8.pm type=file
+d:\tlperl\lib/vars.pm type=file
+d:\tlperl\lib/version.pm type=file
+d:\tlperl\lib/version.pod type=file
+d:\tlperl\lib/version/Internals.pod type=file
+d:\tlperl\lib/version/regex.pm type=file
+d:\tlperl\lib/vmsish.pm type=file
+d:\tlperl\lib/warnings.pm type=file
+d:\tlperl\lib/warnings/register.pm type=file
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm
index efd04331c8..6358e82a03 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm
@@ -6,7 +6,7 @@ use vars qw($VERSION);
use if $] < 5.008 => 'IO::Scalar';
-$VERSION = '1.676';
+$VERSION = '1.678';
=head1 NAME
@@ -244,9 +244,9 @@ 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>
+Lancaster Consensus: 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>
+Oslo Consensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/oslo-consensus.md>
=over 4
@@ -347,10 +347,10 @@ sub GOOD_EXIT () { 0 }
# key => [ sub ref, takes args?, exit value, description ]
# options that do their thing first, then exit
- h => [ \&_print_help, NO_ARGS, GOOD_EXIT, 'Printing help' ],
- v => [ \&_print_version, NO_ARGS, GOOD_EXIT, 'Printing version' ],
- V => [ \&_print_details, NO_ARGS, GOOD_EXIT, 'Printing detailed version' ],
- X => [ \&_list_all_namespaces, NO_ARGS, GOOD_EXIT, 'Listing all namespaces' ],
+ h => [ \&_print_help, NO_ARGS, GOOD_EXIT, 'Printing help' ],
+ v => [ \&_print_version, NO_ARGS, GOOD_EXIT, 'Printing version' ],
+ V => [ \&_print_details, NO_ARGS, GOOD_EXIT, 'Printing detailed version' ],
+ X => [ \&_list_all_namespaces, NO_ARGS, GOOD_EXIT, 'Listing all namespaces' ],
# options that affect other options
j => [ \&_load_config, ARGS, GOOD_EXIT, 'Use specified config file' ],
@@ -359,7 +359,7 @@ sub GOOD_EXIT () { 0 }
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' ],
+ w => [ \&_turn_on_warnings, NO_ARGS, GOOD_EXIT, 'Turning on warnings' ],
# options that do their one thing
g => [ \&_download, ARGS, GOOD_EXIT, 'Download the latest distro' ],
@@ -377,13 +377,13 @@ sub GOOD_EXIT () { 0 }
r => [ \&_recompile, NO_ARGS, GOOD_EXIT, 'Recompiling' ],
u => [ \&_upgrade, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
- 's' => [ \&_shell, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
+ 's' => [ \&_shell, NO_ARGS, GOOD_EXIT, 'Drop into the CPAN.pm shell' ],
- 'x' => [ \&_guess_namespace, ARGS, GOOD_EXIT, 'Guessing namespaces' ],
+ 'x' => [ \&_guess_namespace, ARGS, GOOD_EXIT, 'Guessing namespaces' ],
c => [ \&_default, ARGS, GOOD_EXIT, 'Running `make clean`' ],
f => [ \&_default, ARGS, GOOD_EXIT, 'Installing with force' ],
i => [ \&_default, ARGS, GOOD_EXIT, 'Running `make install`' ],
- 'm' => [ \&_default, ARGS, GOOD_EXIT, 'Running `make`' ],
+ 'm' => [ \&_default, ARGS, GOOD_EXIT, 'Running `make`' ],
t => [ \&_default, ARGS, GOOD_EXIT, 'Running `make test`' ],
T => [ \&_default, ARGS, GOOD_EXIT, 'Installing with notest' ],
);
@@ -483,7 +483,7 @@ sub _setup_environment {
$ENV{PERL_MM_USE_DEFAULT} = 1 unless defined $ENV{PERL_MM_USE_DEFAULT};
}
-=item run()
+=item run( ARGS )
Just do it.
@@ -496,8 +496,8 @@ my $logger;
sub run
{
- my $class = shift;
-
+ my( $class, @args ) = @_;
+ local @ARGV = @args;
my $return_value = HEY_IT_WORKED; # assume that things will work
$logger = $class->_init_logger;
@@ -555,11 +555,11 @@ unless (defined $LL{$LEVEL}){
}
sub new { bless \ my $x, $_[0] }
sub AUTOLOAD {
- my $autoload = our $AUTOLOAD;
- $autoload =~ s/.*://;
- return if $LL{uc $autoload} < $LL{$LEVEL};
- $CPAN::Frontend->mywarn(">($autoload): $_\n")
- for split /[\r\n]+/, $_[1];
+ my $autoload = our $AUTOLOAD;
+ $autoload =~ s/.*://;
+ return if $LL{uc $autoload} < $LL{$LEVEL};
+ $CPAN::Frontend->mywarn(">($autoload): $_\n")
+ for split /[\r\n]+/, $_[1];
}
sub DESTROY { 1 }
}
@@ -567,24 +567,24 @@ sub DESTROY { 1 }
# load a module without searching the default entry for the current
# directory
sub _safe_load_module {
- my $name = shift;
+ my $name = shift;
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
- eval "require $name; 1";
+ eval "require $name; 1";
}
sub _init_logger
{
my $log4perl_loaded = _safe_load_module("Log::Log4perl");
- unless( $log4perl_loaded )
- {
- print STDOUT "Loading internal logger. Log::Log4perl recommended for better logging\n";
- $logger = Local::Null::Logger->new;
- return $logger;
- }
+ unless( $log4perl_loaded )
+ {
+ print STDOUT "Loading internal logger. Log::Log4perl recommended for better logging\n";
+ $logger = Local::Null::Logger->new;
+ return $logger;
+ }
Log::Log4perl::init( \ <<"HERE" );
log4perl.rootLogger=$LEVEL, A1
@@ -730,21 +730,21 @@ sub _get_cpanpm_last_line
my @lines = <$fh>;
- # This is a bit ugly. Once we examine a line, we have to
- # examine the line before it and go through all of the same
- # regexes. I could do something fancy, but this works.
- REGEXES: {
+ # This is a bit ugly. Once we examine a line, we have to
+ # examine the line before it and go through all of the same
+ # regexes. I could do something fancy, but this works.
+ REGEXES: {
foreach my $regex ( @skip_lines )
{
if( $lines[-1] =~ m/$regex/ )
- {
- pop @lines;
- redo REGEXES; # we have to go through all of them for every line!
- }
+ {
+ pop @lines;
+ redo REGEXES; # we have to go through all of them for every line!
+ }
}
}
- $logger->debug( "Last interesting line of CPAN.pm output is:\n\t$lines[-1]" );
+ $logger->debug( "Last interesting line of CPAN.pm output is:\n\t$lines[-1]" );
$lines[-1];
}
@@ -833,15 +833,15 @@ sub _print_details # -V
{
require CPAN::Mirrors;
- if ( $CPAN::Config->{connect_to_internet_ok} ) {
- $CPAN::Frontend->myprint(qq{Trying to fetch a mirror list from the Internet\n});
- eval { CPAN::FTP->localize('MIRRORED.BY',File::Spec->catfile($CPAN::Config->{keep_source_where},'MIRRORED.BY'),3,1) }
- or $CPAN::Frontend->mywarn(<<'HERE');
+ if ( $CPAN::Config->{connect_to_internet_ok} ) {
+ $CPAN::Frontend->myprint(qq{Trying to fetch a mirror list from the Internet\n});
+ eval { CPAN::FTP->localize('MIRRORED.BY',File::Spec->catfile($CPAN::Config->{keep_source_where},'MIRRORED.BY'),3,1) }
+ or $CPAN::Frontend->mywarn(<<'HERE');
We failed to get a copy of the mirror list from the Internet.
You will need to provide CPAN mirror URLs yourself.
HERE
- $CPAN::Frontend->myprint("\n");
- }
+ $CPAN::Frontend->myprint("\n");
+ }
my $mirrors = CPAN::Mirrors->new( _mirror_file() );
my @continents = $mirrors->find_best_continents;
@@ -912,21 +912,21 @@ Stolen from File::Path::Expand
sub _expand_filename
{
- my( $path ) = @_;
- no warnings 'uninitialized';
- $logger->debug( "Expanding path $path\n" );
- $path =~ s{\A~([^/]+)?}{
+ my( $path ) = @_;
+ no warnings 'uninitialized';
+ $logger->debug( "Expanding path $path\n" );
+ $path =~ s{\A~([^/]+)?}{
_home_of( $1 || $> ) || "~$1"
- }e;
- return $path;
+ }e;
+ return $path;
}
sub _home_of
{
require User::pwent;
- my( $user ) = @_;
- my $ent = User::pwent::getpw($user) or return;
- return $ent->dir;
+ my( $user ) = @_;
+ my $ent = User::pwent::getpw($user) or return;
+ return $ent->dir;
}
sub _get_default_inc
@@ -1033,19 +1033,19 @@ sub _get_ping_report
return -e $url->file;
}
- my( $port ) = $url->port;
+ my( $port ) = $url->port;
- return unless $port;
+ return unless $port;
- if ( $ping->can('port_number') ) {
- $ping->port_number($port);
- }
- else {
- $ping->{'port_num'} = $port;
- }
+ if ( $ping->can('port_number') ) {
+ $ping->port_number($port);
+ }
+ else {
+ $ping->{'port_num'} = $port;
+ }
- $ping->hires(1) if $ping->can( 'hires' );
- my( $alive, $rtt ) = eval{ $ping->ping( $url->host ) };
+ $ping->hires(1) if $ping->can( 'hires' );
+ my( $alive, $rtt ) = eval{ $ping->ping( $url->host ) };
$alive ? $rtt : undef;
}
@@ -1284,16 +1284,16 @@ sub _get_changes_file
croak "Reading Changes files requires LWP::Simple and URI\n"
unless _safe_load_module("LWP::Simple") && _safe_load_module("URI");
- my $url = shift;
+ my $url = shift;
- my $content = LWP::Simple::get( $url );
- $logger->info( "Got $url ..." ) if defined $content;
+ my $content = LWP::Simple::get( $url );
+ $logger->info( "Got $url ..." ) if defined $content;
#print $content;
my( $change_link ) = $content =~ m|<a href="(.*?)">Changes</a>|gi;
my $changes_url = URI->new_abs( $change_link, $url );
- $logger->debug( "Change link is: $changes_url" );
+ $logger->debug( "Change link is: $changes_url" );
my $changes = LWP::Simple::get( $changes_url );
@@ -1373,8 +1373,8 @@ sub _show_out_of_date
foreach my $module ( @$modules )
{
- next unless $module = _expand_module($module);
- next unless $module->inst_file;
+ next unless $module = _expand_module($module);
+ next unless $module->inst_file;
next if $module->uptodate;
printf "%-40s %.4f %.4f\n",
$module->id,
@@ -1479,7 +1479,7 @@ sub _eval_version
# split package line to hide from PAUSE
my $eval = qq{
package
- ExtUtils::MakeMaker::_version;
+ ExtUtils::MakeMaker::_version;
local $sigil$var;
\$$var=undef; do {
@@ -1519,8 +1519,8 @@ sub _expand_module
my( $module ) = @_;
my $expanded = CPAN::Shell->expandany( $module );
- return $expanded if $expanded;
- $expanded = CPAN::Shell->expand( "Module", $module );
+ return $expanded if $expanded;
+ $expanded = CPAN::Shell->expand( "Module", $module );
unless( defined $expanded ) {
$logger->error( "Could not expand [$module]. Check the module name." );
my $threshold = (
@@ -1689,7 +1689,7 @@ but the canonical source is now in the above repo.
Japheth Cleaver added the bits to allow a forced install (C<-f>).
-Jim Brandt suggest and provided the initial implementation for the
+Jim Brandt suggested and provided the initial implementation for the
up-to-date and Changes features.
Adam Kennedy pointed out that C<exit()> causes problems on Windows
@@ -1705,7 +1705,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
=head1 COPYRIGHT
-Copyright (c) 2001-2018, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2021, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm
index a33fe971ff..e2785cbee7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm
@@ -18,11 +18,11 @@ App::Prove - Implements the C<prove> command.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
@@ -344,13 +344,13 @@ sub _get_args {
# Handle verbose, quiet, really_quiet flags
my %verb_map = ( verbose => 1, quiet => -1, really_quiet => -2, );
- my @verb_adj = grep {$_} map { $self->$_() ? $verb_map{$_} : 0 }
+ my @verb_adj = map { $self->$_() ? $verb_map{$_} : () }
keys %verb_map;
die "Only one of verbose, quiet or really_quiet should be specified\n"
if @verb_adj > 1;
- $args{verbosity} = shift @verb_adj || 0;
+ $args{verbosity} = shift @verb_adj if @verb_adj;
for my $a (qw( merge failures comments timer directives normalize )) {
$args{$a} = 1 if $self->$a();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm
index 006d4f8712..f3f1125e6f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm
index fb5e2d52d2..72b625ff9a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm
@@ -14,11 +14,11 @@ App::Prove::State::Result - Individual test suite results.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
index f4cddace38..a45911e461 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm
index 91311619d7..476e646e44 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm
+++ b/systems/texlive/tlnet/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 = "2.38";
+$VERSION = "2.40";
$CHOWN = 1;
$CHMOD = 1;
$SAME_PERMISSIONS = $> == 0 ? 1 : 0;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
index 825f2b1656..6f293a2f49 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
@@ -8,7 +8,7 @@ use vars qw[$VERSION @ISA @EXPORT];
BEGIN {
require Exporter;
- $VERSION = '2.38';
+ $VERSION = '2.40';
@ISA = qw[Exporter];
require Time::Local if $^O eq "MacOS";
@@ -88,7 +88,10 @@ use constant XZ => do { !$ENV{'PERL5_AT_NO_XZ'} and
};
use constant GZIP_MAGIC_NUM => qr/^(?:\037\213|\037\235)/;
-use constant BZIP_MAGIC_NUM => qr/^BZh\d/;
+
+ # ASCII: B Z h 0 9
+use constant BZIP_MAGIC_NUM => qr/^\x42\x5A\x68[\x30-\x39]/;
+
use constant XZ_MAGIC_NUM => qr/^\xFD\x37\x7A\x58\x5A\x00/;
use constant CAN_CHOWN => sub { ($> == 0 and $^O ne "MacOS" and $^O ne "MSWin32") };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm
index be380a5eb1..c361f046d7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm
@@ -11,7 +11,7 @@ use Archive::Tar::Constant;
use vars qw[@ISA $VERSION];
#@ISA = qw[Archive::Tar];
-$VERSION = '2.38';
+$VERSION = '2.40';
### set value to 1 to oct() it during the unpack ###
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm
index f028286fb8..861ea2f8d5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm
@@ -4,9 +4,9 @@ use Carp;
use warnings;
use strict;
our $AUTOLOAD;
-our $VERSION = '1.01'; # remember to update version in POD!
+our $VERSION = '1.03'; # remember to update version in POD!
# $DB::single=1;
-
+my $debug= $ENV{DEBUG_ATTRIBUTE_HANDLERS} || 0;
my %symcache;
sub findsym {
my ($pkg, $ref, $type) = @_;
@@ -73,21 +73,49 @@ sub import {
local $Exporter::ExportLevel = 2;
$tieclass->import(eval $args);
}
- $attr =~ s/__CALLER__/caller(1)/e;
- $attr = caller()."::".$attr unless $attr =~ /::/;
- eval qq{
- sub $attr : ATTR(VAR) {
- my (\$ref, \$data) = \@_[2,4];
- my \$was_arrayref = ref \$data eq 'ARRAY';
- \$data = [ \$data ] unless \$was_arrayref;
- my \$type = ref(\$ref)||"value (".(\$ref||"<undef>").")";
- (\$type eq 'SCALAR')? tie \$\$ref,'$tieclass',$tiedata
- :(\$type eq 'ARRAY') ? tie \@\$ref,'$tieclass',$tiedata
- :(\$type eq 'HASH') ? tie \%\$ref,'$tieclass',$tiedata
- : die "Can't autotie a \$type\n"
- } 1
- } or die "Internal error: $@";
- }
+ my $code = qq{
+ : ATTR(VAR) {
+ my (\$ref, \$data) = \@_[2,4];
+ my \$was_arrayref = ref \$data eq 'ARRAY';
+ \$data = [ \$data ] unless \$was_arrayref;
+ my \$type = ref(\$ref)||"value (".(\$ref||"<undef>").")";
+ (\$type eq 'SCALAR')? tie \$\$ref,'$tieclass',$tiedata
+ :(\$type eq 'ARRAY') ? tie \@\$ref,'$tieclass',$tiedata
+ :(\$type eq 'HASH') ? tie \%\$ref,'$tieclass',$tiedata
+ : die "Can't autotie a \$type\n"
+ }
+ };
+
+ if ($attr =~ /\A__CALLER__::/) {
+ no strict 'refs';
+ my $add_import = caller;
+ my $next = defined &{ $add_import . '::import' } && \&{ $add_import . '::import' };
+ *{ $add_import . '::import' } = sub {
+ my $caller = caller;
+ my $full_attr = $attr;
+ $full_attr =~ s/__CALLER__/$caller/;
+ eval qq{ sub $full_attr $code 1; }
+ or die "Internal error: $@";
+
+ goto &$next
+ if $next;
+ my $uni = defined &UNIVERSAL::import && \&UNIVERSAL::import;
+ for my $isa (@{ $add_import . '::ISA' }) {
+ if (my $import = $isa->can('import')) {
+ goto &$import
+ if $import != $uni;
+ }
+ }
+ goto &$uni
+ if $uni;
+ };
+ }
+ else {
+ $attr = caller()."::".$attr unless $attr =~ /::/;
+ eval qq{ sub $attr $code 1; }
+ or die "Internal error: $@";
+ }
+ }
}
else {
croak "Can't understand $_";
@@ -213,7 +241,8 @@ sub _apply_handler_AH_ {
my ($declaration, $phase) = @_;
my ($pkg, $ref, $attr, $data, $raw, $handlerphase, $filename, $linenum) = @$declaration;
return unless $handlerphase->{$phase};
- # print STDERR "Handling $attr on $ref in $phase with [$data]\n";
+ print STDERR "Handling $attr on $ref in $phase with [$data]\n"
+ if $debug;
my $type = ref $ref;
my $handler = "_ATTR_${type}_${attr}";
my $sym = findsym($pkg, $ref);
@@ -221,12 +250,29 @@ sub _apply_handler_AH_ {
no warnings;
if (!$raw && defined($data)) {
if ($data ne '') {
- my $evaled = eval("package $pkg; no warnings; no strict;
- local \$SIG{__WARN__}=sub{die}; [$data]");
- $data = $evaled unless $@;
+ # keeping the minimum amount of code inside the eval string
+ # makes debugging perl internals issues with this logic easier.
+ my $code= "package $pkg; my \$ref= [$data]; \$data= \$ref; 1";
+ print STDERR "Evaling: '$code'\n"
+ if $debug;
+ local $SIG{__WARN__} = sub{ die };
+ no strict;
+ no warnings;
+ # Note in production we do not need to use the return value from
+ # the eval or even consult $@ after the eval - if the evaled code
+ # compiles and runs successfully then it will update $data with
+ # the compiled form, if it fails then $data stays unchanged. The
+ # return value and $@ are only used for debugging purposes.
+ # IOW we could just replace the following with eval($code);
+ eval($code) or do {
+ print STDERR "Eval failed: $@"
+ if $debug;
+ };
}
else { $data = undef }
}
+
+ # now call the handler with the $data decoded (maybe)
$pkg->$handler($sym,
(ref $sym eq 'GLOB' ? *{$sym}{ref $ref}||$ref : $ref),
$attr,
@@ -272,7 +318,7 @@ Attribute::Handlers - Simpler definition of attribute handlers
=head1 VERSION
-This document describes version 1.01 of Attribute::Handlers.
+This document describes version 1.03 of Attribute::Handlers.
=head1 SYNOPSIS
@@ -672,13 +718,13 @@ and need to export their attributes to any module that calls them. To
facilitate this, Attribute::Handlers recognizes a special "pseudo-class" --
C<__CALLER__>, which may be specified as the qualifier of an attribute:
- package Tie::Me::Kangaroo:Down::Sport;
+ package Tie::Me::Kangaroo::Down::Sport;
use Attribute::Handlers autotie =>
{ '__CALLER__::Roo' => __PACKAGE__ };
This causes Attribute::Handlers to define the C<Roo> attribute in the package
-that imports the Tie::Me::Kangaroo:Down::Sport module.
+that imports the Tie::Me::Kangaroo::Down::Sport module.
Note that it is important to quote the __CALLER__::Roo identifier because
a bug in perl 5.8 will refuse to parse it and cause an unknown error.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm
index ef23af6baa..d0a04c6a12 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm
@@ -20,7 +20,7 @@ sub import {
# walkoptree comes from B.xs
BEGIN {
- $B::VERSION = '1.82';
+ $B::VERSION = '1.88';
@B::EXPORT_OK = ();
# Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
@@ -62,6 +62,7 @@ push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs
@B::CV::ISA = 'B::PVMG';
@B::IO::ISA = 'B::PVMG';
@B::FM::ISA = 'B::CV';
+@B::OBJ::ISA = 'B::PVMG';
@B::OP::ISA = 'B::OBJECT';
@B::UNOP::ISA = 'B::OP';
@@ -88,6 +89,12 @@ our @specialsv_name = qw(Nullsv &PL_sv_undef &PL_sv_yes &PL_sv_no
(SV*)pWARN_ALL (SV*)pWARN_NONE (SV*)pWARN_STD
&PL_sv_zero);
+# Back-compat
+{
+ no warnings 'once';
+ *CVf_METHOD = \&CVf_NOWARN_AMBIGUOUS;
+}
+
{
# Stop "-w" from complaining about the lack of a real B::OBJECT class
package B::OBJECT;
@@ -299,7 +306,7 @@ B - The Perl Compiler Backend
The C<B> module supplies classes which allow a Perl program to delve
into its own innards. It is the module used to implement the
"backends" of the Perl compiler. Usage of the compiler does not
-require knowledge of this module: see the F<O> module for the
+require knowledge of this module: see the L<O> module for the
user-visible part. The C<B> module is of use to those who want to
write new compiler backends. This documentation assumes that the
reader knows a fair amount about perl's internals including such
@@ -593,6 +600,26 @@ C<REFCNT> (corresponding to the C function C<SvREFCNT>).
=item FLAGS
+=item IsBOOL
+
+Returns true if the SV is a boolean (true or false).
+You can then use C<TRUE> to check if the value is true or false.
+
+ my $something = ( 1 == 1 ) # boolean true
+ || ( 1 == 0 ) # boolean false
+ || 42 # IV true
+ || 0; # IV false
+ my $sv = B::svref_2object(\$something);
+
+ say q[Not a boolean value]
+ if ! $sv->IsBOOL;
+
+ say q[This is a boolean with value: true]
+ if $sv->IsBOOL && $sv->TRUE_nomg;
+
+ say q[This is a boolean with value: false]
+ if $sv->IsBOOL && ! $sv->TRUE_nomg;
+
=item object_2svref
Returns a reference to the regular scalar corresponding to this
@@ -601,6 +628,24 @@ to the svref_2object() subroutine. This scalar and other data it points
at should be considered read-only: modifying them is neither safe nor
guaranteed to have a sensible effect.
+=item TRUE
+
+Returns a boolean indicating hether Perl would evaluate the SV as true or
+false.
+
+B<Warning> this call performs 'get' magic. If you only want to check the
+nature of this SV use C<TRUE_nomg> helper.
+
+This is an alias for C<SvTRUE($sv)>.
+
+=item TRUE_nomg
+
+Check if the value is true (do not perform 'get' magic).
+Returns a boolean indicating whether Perl would evaluate the SV as true or
+false.
+
+This is an alias for C<SvTRUE_nomg($sv)>.
+
=back
=head2 B::IV Methods
@@ -1313,6 +1358,8 @@ pointers and B::PADNAME objects otherwise.
=item REFCNT
+=item GEN
+
=item FLAGS
For backward-compatibility, if the PADNAMEt_OUTER flag is set, the FLAGS
@@ -1349,6 +1396,10 @@ Only meaningful if PADNAMEt_OUTER is set.
Only meaningful if PADNAMEt_OUTER is set.
+=item IsUndef
+
+Returns a boolean value to check if the padname is PL_padname_undef.
+
=back
=head2 $B::overlay
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm
index 729fcd95f4..73d4045a63 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm
@@ -12,10 +12,9 @@ package B::Concise;
use strict; # use #2
use warnings; # uses #3 and #4, since warnings uses Carp
-use Exporter (); # use #5
+use Exporter 'import'; # use #5
-our $VERSION = "1.004";
-our @ISA = qw(Exporter);
+our $VERSION = "1.007";
our @EXPORT_OK = qw( set_style set_style_standard add_callback
concise_subref concise_cv concise_main
add_style walk_output compile reset_sequence );
@@ -853,9 +852,14 @@ sub concise_op {
# targ holds a reference count
my $refs = "ref" . ($h{targ} != 1 ? "s" : "");
$h{targarglife} = $h{targarg} = "$h{targ} $refs";
- } elsif ($h{targ}) {
+ } elsif ($h{targ} && $h{name} ne 'iter') {
+ # for my ($q, $r, $s) () {} syntax hijacks the targ of the iter op,
+ # (which is the ->next of the enteriter) hence the special cases above
+ # and just below:
my $count = $h{name} eq 'padrange'
? ($op->private & $B::Op_private::defines{'OPpPADRANGE_COUNTMASK'})
+ : $h{name} eq 'enteriter'
+ ? $op->next->targ + 1
: 1;
my (@targarg, @targarglife);
for my $i (0..$count-1) {
@@ -1485,6 +1489,11 @@ They're opcode specific, and occur less often than the public ones, so
they're represented by short mnemonics instead of single-chars; see
B::Op_private and F<regen/op_private> for more details.
+Note that a number after a '/' often indicates the number of arguments.
+In the I<sassign> example above, the OP takes 2 arguments. These values
+are sometimes used at runtime: in particular, the MAXARG macro makes use
+of them.
+
=head1 FORMATTING SPECIFICATIONS
For each line-style ('concise', 'terse', 'linenoise', etc.) there are
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm
index 67147f12dd..90a36752bd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm
@@ -7,13 +7,14 @@
# This is based on the module of the same name by Malcolm Beattie,
# but essentially none of his code remains.
-package B::Deparse;
+package B::Deparse 1.74;
+use strict;
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_PARENS
OPpLVAL_INTRO OPpOUR_INTRO OPpENTERSUB_AMPER OPpSLICE OPpKVSLICE
- OPpCONST_BARE
+ OPpCONST_BARE OPpEMPTYAVHV_IS_HV
OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER OPpREPEAT_DOLIST
OPpSORT_REVERSE OPpMULTIDEREF_EXISTS OPpMULTIDEREF_DELETE
@@ -21,13 +22,14 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
OPpPADHV_ISKEYS OPpRV2HV_ISKEYS
OPpCONCAT_NESTED
OPpMULTICONCAT_APPEND OPpMULTICONCAT_STRINGIFY OPpMULTICONCAT_FAKE
- OPpTRUEBOOL OPpINDEX_BOOLNEG
- SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG SVs_SMG
- SVs_PADTMP SVpad_TYPED
- CVf_METHOD CVf_LVALUE
+ OPpTRUEBOOL OPpINDEX_BOOLNEG OPpDEFER_FINALLY
+ OPpARG_IF_UNDEF OPpARG_IF_FALSE
+ SVf_IOK SVf_NOK SVf_ROK SVf_POK SVf_FAKE SVs_RMG SVs_SMG
+ SVs_PADTMP
+ CVf_NOWARN_AMBIGUOUS CVf_LVALUE
PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE
PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED PMf_EXTENDED_MORE
- PADNAMEt_OUTER
+ PADNAMEf_OUTER PADNAMEf_OUR PADNAMEf_TYPED
MDEREF_reload
MDEREF_AV_pop_rv2av_aelem
MDEREF_AV_gvsv_vivify_rv2av_aelem
@@ -52,8 +54,6 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
MDEREF_SHIFT
);
-$VERSION = '1.56';
-use strict;
our $AUTOLOAD;
use warnings ();
require feature;
@@ -272,7 +272,8 @@ BEGIN {
BEGIN { for (qw[ const stringify rv2sv list glob pushmark null aelem
kvaslice kvhslice padsv argcheck
- nextstate dbstate rv2av rv2hv helem custom ]) {
+ nextstate dbstate rv2av rv2hv helem pushdefer leavetrycatch
+ custom ]) {
eval "sub OP_\U$_ () { " . opnumber($_) . "}"
}}
@@ -447,14 +448,32 @@ sub next_todo {
# emit the sub.
my @text;
my $flags = $name->FLAGS;
- push @text,
+ my $category =
!$cv || $seq <= $name->COP_SEQ_RANGE_LOW
- ? $self->keyword($flags & SVpad_OUR
+ ? $self->keyword($flags & PADNAMEf_OUR
? "our"
: $flags & SVpad_STATE
? "state"
: "my") . " "
: "";
+
+ # Skip lexical 'state' subs imported from the builtin::
+ # package, since they are created automatically by
+ # use builtin "foo"
+ if ($cv && $category =~ /\bstate\b/) {
+ my $globname;
+ my $gv = $cv->GV;
+ if (
+ $gv
+ && defined (($globname = $gv->object_2svref))
+ && $$globname =~ /^\*builtin::/
+ ) {
+ return '';
+ }
+ }
+
+ push @text, $category;
+
# 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.
@@ -822,16 +841,6 @@ sub new {
return $self;
}
-{
- # Mask out the bits that L<warnings::register> uses
- my $WARN_MASK;
- BEGIN {
- $WARN_MASK = $warnings::Bits{all} | $warnings::DeadBits{all};
- }
- sub WARN_MASK () {
- return $WARN_MASK;
- }
-}
# Initialise the contextual information, either from
# defaults provided with the ambient_pragmas method,
@@ -839,9 +848,7 @@ sub new {
sub init {
my $self = shift;
- $self->{'warnings'} = defined ($self->{'ambient_warnings'})
- ? $self->{'ambient_warnings'} & WARN_MASK
- : undef;
+ $self->{'warnings'} = $self->{'ambient_warnings'};
$self->{'hints'} = $self->{'ambient_hints'};
$self->{'hinthash'} = $self->{'ambient_hinthash'};
@@ -1114,8 +1121,8 @@ sub pad_subs {
if (defined $name && $name =~ /^&./) {
my $low = $_->COP_SEQ_RANGE_LOW;
my $flags = $_->FLAGS;
- my $outer = $flags & PADNAMEt_OUTER;
- if ($flags & SVpad_OUR) {
+ my $outer = $flags & PADNAMEf_OUTER;
+ if ($flags & PADNAMEf_OUR) {
push @todo, [$low, undef, 0, $_]
# [seq, no cv, not format, padname]
unless $outer;
@@ -1128,7 +1135,7 @@ sub pad_subs {
my $flags = $flags;
my $cv = $cv;
my $name = $_;
- while ($flags & PADNAMEt_OUTER && class ($protocv) ne 'CV')
+ while ($flags & PADNAMEf_OUTER && class ($protocv) ne 'CV')
{
$cv = $cv->OUTSIDE;
next PADENTRY if class($cv) eq 'SPECIAL'; # XXX freed?
@@ -1145,7 +1152,7 @@ sub pad_subs {
my $other = $protocv->PADLIST;
$$other && $other->outid == $padlist->id;
};
- if ($flags & PADNAMEt_OUTER) {
+ if ($flags & PADNAMEf_OUTER) {
next unless $defined_in_this_sub;
push @todo, [$protocv->OUTSIDE_SEQ, $protocv, 0, $_];
next;
@@ -1255,7 +1262,10 @@ sub deparse_argops {
return unless $$kid and $kid->name eq 'argdefelem';
my $def = $self->deparse($kid->first, 7);
$def = "($def)" if $kid->first->flags & OPf_PARENS;
- $var .= " = $def";
+ my $assign = "=";
+ $assign = "//=" if $kid->private & OPpARG_IF_UNDEF;
+ $assign = "||=" if $kid->private & OPpARG_IF_FALSE;
+ $var .= " $assign $def";
}
push @sig, $var;
}
@@ -1306,7 +1316,7 @@ Carp::confess("NULL in deparse_sub") if !defined($cv) || $cv->isa("B::NULL");
Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
local $self->{'curcop'} = $self->{'curcop'};
- my $has_sig = $self->{hinthash}{feature_signatures};
+ my $has_sig = $self->feature_enabled('signatures');
if ($cv->FLAGS & SVf_POK) {
my $myproto = $cv->PV;
if ($has_sig) {
@@ -1316,9 +1326,9 @@ Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
$proto = $myproto;
}
}
- if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
+ if ($cv->CvFLAGS & (CVf_NOWARN_AMBIGUOUS|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
push @attrs, "lvalue" if $cv->CvFLAGS & CVf_LVALUE;
- push @attrs, "method" if $cv->CvFLAGS & CVf_METHOD;
+ push @attrs, "method" if $cv->CvFLAGS & CVf_NOWARN_AMBIGUOUS;
push @attrs, "const" if $cv->CvFLAGS & CVf_ANONCONST;
}
@@ -1544,7 +1554,7 @@ sub maybe_parens_func {
if ($prec <= $cx or substr($text, 0, 1) eq "(" or $self->{'parens'}) {
return "$func($text)";
} else {
- return "$func $text";
+ return $func . (length($text) ? " $text" : "");
}
}
@@ -1554,7 +1564,7 @@ sub find_our_type {
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) {
+ if ($st >= $seq && $padname->FLAGS & PADNAMEf_TYPED) {
return $padname->SvSTASH->NAME;
}
}
@@ -1640,7 +1650,7 @@ sub maybe_my {
# because enteriter ops do not carry the flag.
my $my =
$self->keyword($padname->FLAGS & SVpad_STATE ? "state" : "my");
- if ($padname->FLAGS & SVpad_TYPED) {
+ if ($padname->FLAGS & PADNAMEf_TYPED) {
$my .= ' ' . $padname->SvSTASH->NAME;
}
if ($need_parens) {
@@ -1732,6 +1742,12 @@ sub scopeop {
$body = $self->deparse($body, 1);
return "$body $name $cond";
}
+ elsif($kid->type == OP_PUSHDEFER &&
+ $kid->private & OPpDEFER_FINALLY &&
+ $kid->sibling->type == OP_LEAVETRYCATCH &&
+ null($kid->sibling->sibling)) {
+ return $self->pp_leavetrycatch_with_finally($kid->sibling, $kid, $cx);
+ }
} else {
$kid = $op->first;
}
@@ -1974,7 +1990,7 @@ sub populate_curcvlex {
: ($ns[$i]->COP_SEQ_RANGE_LOW, $ns[$i]->COP_SEQ_RANGE_HIGH);
push @{$self->{'curcvlex'}{
- ($ns[$i]->FLAGS & SVpad_OUR ? 'o' : 'm') . $name
+ ($ns[$i]->FLAGS & PADNAMEf_OUR ? 'o' : 'm') . $name
}}, [$seq_st, $seq_en, $ns[$i]];
}
}
@@ -2075,7 +2091,7 @@ sub pragmata {
my $warnings = $op->warnings;
my $warning_bits;
if ($warnings->isa("B::SPECIAL") && $$warnings == 4) {
- $warning_bits = $warnings::Bits{"all"} & WARN_MASK;
+ $warning_bits = $warnings::Bits{"all"};
}
elsif ($warnings->isa("B::SPECIAL") && $$warnings == 5) {
$warning_bits = $warnings::NONE;
@@ -2084,14 +2100,24 @@ sub pragmata {
$warning_bits = undef;
}
else {
- $warning_bits = $warnings->PV & WARN_MASK;
+ $warning_bits = $warnings->PV;
}
- if (defined ($warning_bits) and
- !defined($self->{warnings}) || $self->{'warnings'} ne $warning_bits) {
- push @text,
- $self->declare_warnings($self->{'warnings'}, $warning_bits);
- $self->{'warnings'} = $warning_bits;
+ my ($w1, $w2);
+ # The number of valid bit positions may have grown (by a byte or
+ # more) since the last warnings state, by custom warnings
+ # categories being registered in the meantime. Normalise the
+ # bitmasks first so they may be fairly compared.
+ $w1 = defined($self->{warnings})
+ ? warnings::_expand_bits($self->{warnings})
+ : undef;
+ $w2 = defined($warning_bits)
+ ? warnings::_expand_bits($warning_bits)
+ : undef;
+
+ if (defined($w2) and !defined($w1) || $w1 ne $w2) {
+ push @text, $self->declare_warnings($w1, $w2);
+ $self->{'warnings'} = $w2;
}
my $hints = $op->hints;
@@ -2176,13 +2202,13 @@ sub pp_nextstate {
sub declare_warnings {
my ($self, $from, $to) = @_;
$from //= '';
- my $all = (warnings::bits("all") & WARN_MASK);
- unless ((($from & WARN_MASK) & ~$all) =~ /[^\0]/) {
+ my $all = warnings::bits("all");
+ unless (($from & ~$all) =~ /[^\0]/) {
# no FATAL bits need turning off
- if ( ($to & WARN_MASK) eq $all) {
+ if ( $to eq $all) {
return $self->keyword("use") . " warnings;\n";
}
- elsif (($to & WARN_MASK) eq ("\0"x length($to) & WARN_MASK)) {
+ elsif ($to eq ("\0"x length($to))) {
return $self->keyword("no") . " warnings;\n";
}
}
@@ -2306,6 +2332,9 @@ my %feature_keywords = (
fc => 'fc',
try => 'try',
catch => 'try',
+ finally => 'try',
+ defer => 'defer',
+ signatures => 'signatures',
);
# keywords that are strong and also have a prototype
@@ -2489,7 +2518,21 @@ sub pp_chomp { maybe_targmy(@_, \&unop, "chomp") }
sub pp_schop { maybe_targmy(@_, \&unop, "chop") }
sub pp_schomp { maybe_targmy(@_, \&unop, "chomp") }
sub pp_defined { unop(@_, "defined") }
-sub pp_undef { unop(@_, "undef") }
+sub pp_undef {
+ if ($_[1]->private & OPpTARGET_MY) {
+ my $targ = $_[1]->targ;
+ my $var = $_[0]->maybe_my($_[1], $_[2], $_[0]->padname($targ),
+ $_[0]->padname_sv($targ),
+ 1);
+ my $func = unop(@_, "undef");
+ if ($func =~ /\s/) {
+ return unop(@_, "undef").$var;
+ } else {
+ return "$var = undef";
+ }
+ }
+ unop(@_, "undef")
+}
sub pp_study { unop(@_, "study") }
sub pp_ref { unop(@_, "ref") }
sub pp_pos { maybe_local(@_, unop(@_, "pos")) }
@@ -2747,19 +2790,40 @@ sub pp_anonlist {
*pp_anonhash = \&pp_anonlist;
+sub pp_emptyavhv {
+ my $self = shift;
+ my ($op, $cx, $forbid_parens) = @_;
+ my $val = ($op->private & OPpEMPTYAVHV_IS_HV) ? '{}' : '[]';
+ if ($op->private & OPpTARGET_MY) {
+ my $targ = $op->targ;
+ my $var = $self->maybe_my($op, $cx, $self->padname($targ),
+ $self->padname_sv($targ),
+ $forbid_parens);
+ return $self->maybe_parens("$var = $val", $cx, 7);
+ } else {
+ return $val;
+ }
+}
+
sub pp_refgen {
my $self = shift;
my($op, $cx) = @_;
my $kid = $op->first;
if ($kid->name eq "null") {
my $anoncode = $kid = $kid->first;
+
+ # Perl no longer generates this, but XS modules might:
if ($anoncode->name eq "anonconst") {
$anoncode = $anoncode->first->first->sibling;
}
+
+ # Same as with `anonconst`:
if ($anoncode->name eq "anoncode"
or !null($anoncode = $kid->sibling) and
$anoncode->name eq "anoncode") {
return $self->e_anoncode({ code => $self->padval($anoncode->targ) });
+
+ # Perl still generates this:
} elsif ($kid->name eq "pushmark") {
my $sib_name = $kid->sibling->name;
if ($sib_name eq 'entersub') {
@@ -2781,6 +2845,18 @@ sub e_anoncode {
return $self->keyword("sub") . " $text";
}
+sub pp_anoncode {
+ my ($self, $anoncode) = @_;
+
+ return $self->e_anoncode( { code => $self->padval($anoncode->targ) } );
+}
+
+sub pp_anonconst {
+ my ($self, $anonconst) = @_;
+
+ return $self->pp_anoncode( $anonconst->first->first->sibling );
+}
+
sub pp_srefgen { pp_refgen(@_) }
sub pp_readline {
@@ -3068,6 +3144,18 @@ sub pp_isa { binop(@_, "isa", 15) }
sub pp_sassign { binop(@_, "=", 7, SWAP_CHILDREN) }
sub pp_aassign { binop(@_, "=", 7, SWAP_CHILDREN | LIST_CONTEXT) }
+sub pp_padsv_store {
+ my $self = shift;
+ my ($op, $cx, $forbid_parens, @args) = @_;
+ my $targ = $op->targ;
+ my $var = $self->maybe_my($op, $cx, $self->padname($targ),
+ $self->padname_sv($targ),
+ $forbid_parens);
+
+ my $val = $self->deparse($op->first, 7);
+ return $self->maybe_parens("$var = $val", $cx, 7);
+}
+
sub pp_smartmatch {
my ($self, $op, $cx) = @_;
if (($op->flags & OPf_SPECIAL) && $self->{expand} < 2) {
@@ -3669,7 +3757,7 @@ sub maybe_var_attr {
return unless $loppriv & OPpLVAL_INTRO;
my $padname = $self->padname_sv($lop->targ);
- my $thisclass = ($padname->FLAGS & SVpad_TYPED)
+ my $thisclass = ($padname->FLAGS & PADNAMEf_TYPED)
? $padname->SvSTASH->NAME : 'main';
# all pad vars must be in the same class
@@ -3788,9 +3876,12 @@ sub pp_list {
$local = "my";
}
my $padname = $self->padname_sv($lop->targ);
- if ($padname->FLAGS & SVpad_TYPED) {
+ if ($padname->FLAGS & PADNAMEf_TYPED) {
$newtype = $padname->SvSTASH->NAME;
}
+ } elsif ($lopname eq 'padsv_store') {
+ # don't interpret as my (list) if it has an implicit assign
+ $local = "";
} elsif ($lopname =~ /^(?:gv|rv2)([ash])v$/
&& $loppriv & OPpOUR_INTRO
or $lopname eq "null" && class($lop) eq 'UNOP'
@@ -3953,7 +4044,21 @@ sub loop_common {
} else {
$ary = $self->deparse($ary, 1);
}
- if (null $var) {
+
+ if ($enter->flags & OPf_PARENS) {
+ # for my ($x, $y, ...) ...
+ # for my ($foo, $bar) () stores the count (less 1) in the targ of
+ # the ITER op. For the degenerate case of 1 var ($x), the
+ # TARG is zero, so it works anyway
+ my $iter_targ = $kid->first->first->targ;
+ my @vars;
+ my $targ = $enter->targ;
+ while ($iter_targ-- >= 0) {
+ push @vars, $self->padname_sv($targ)->PVX;
+ ++$targ;
+ }
+ $var = 'my (' . join(', ', @vars) . ')';
+ } elsif (null $var) {
$var = $self->pp_padsv($enter, 1, 1);
} elsif ($var->name eq "rv2gv") {
$var = $self->pp_rv2sv($var, 1);
@@ -4057,9 +4162,9 @@ sub pp_leavetry {
return "eval {\n\t" . $self->pp_leave(@_) . "\n\b}";
}
-sub pp_leavetrycatch {
+sub pp_leavetrycatch_with_finally {
my $self = shift;
- my ($op) = @_;
+ my ($op, $finallyop) = @_;
# Expect that the first three kids should be (entertrycatch, poptry, catch)
my $entertrycatch = $op->first;
@@ -4072,14 +4177,30 @@ sub pp_leavetrycatch {
$catch->name eq "catch" or die "Expected catch as third child of leavetrycatch";
my $catchblock = $catch->first->sibling;
- $catchblock->name eq "scope" or die "Expected scope as second child of catch";
+ my $name = $catchblock->name;
+ unless ($name eq "scope" || $name eq "leave") {
+ die "Expected scope or leave as second child of catch, got $name instead";
+ }
my $trycode = scopeop(0, $self, $tryblock);
my $catchvar = $self->padname($catch->targ);
- my $catchcode = scopeop(0, $self, $catchblock);
+ my $catchcode = $name eq 'scope' ? scopeop(0, $self, $catchblock)
+ : scopeop(1, $self, $catchblock);
+
+ my $finallycode = "";
+ if($finallyop) {
+ my $body = $self->deparse($finallyop->first->first);
+ $finallycode = "\nfinally {\n\t$body\n\b}";
+ }
return "try {\n\t$trycode\n\b}\n" .
- "catch($catchvar) {\n\t$catchcode\n\b}\cK";
+ "catch($catchvar) {\n\t$catchcode\n\b}$finallycode\cK";
+}
+
+sub pp_leavetrycatch {
+ my $self = shift;
+ my ($op, @args) = @_;
+ return $self->pp_leavetrycatch_with_finally($op, undef, @args);
}
sub _op_is_or_was {
@@ -4225,6 +4346,17 @@ sub pp_gv {
return $self->maybe_qualify("", $self->gv_name($gv));
}
+sub pp_aelemfastlex_store {
+ my $self = shift;
+ my($op, $cx) = @_;
+ my $name = $self->padname($op->targ);
+ $name =~ s/^@/\$/;
+ my $i = $op->private;
+ $i -= 256 if $i > 127;
+ my $val = $self->deparse($op->first, 7);
+ return $self->maybe_parens("${name}[$i] = $val", $cx, 7);
+}
+
sub pp_aelemfast_lex {
my $self = shift;
my($op, $cx) = @_;
@@ -4922,78 +5054,92 @@ sub e_method {
sub check_proto {
my $self = shift;
return "&" if $self->{'noproto'};
- my($proto, @args) = @_;
- my($arg, $real);
+ my ($proto, @args) = @_;
my $doneok = 0;
my @reals;
- # An unbackslashed @ or % gobbles up the rest of the args
- 1 while $proto =~ s/(?<!\\)([@%])[^\]]+$/$1/;
- $proto =~ s/^\s*//;
- while ($proto) {
- $proto =~ s/^(\\?[\$\@&%*_]|\\\[[\$\@&%*]+\]|;|)\s*//;
+ $proto =~ s/^\s+//;
+ while (length $proto) {
+ $proto =~ s/^(\\?[\$\@&%*]|\\\[[\$\@&%*]+\]|[_+;])\s*//
+ or return "&"; # malformed prototype
my $chr = $1;
- if ($chr eq "") {
- return "&" if @args;
- } elsif ($chr eq ";") {
+ if ($chr eq ";") {
$doneok = 1;
- } elsif ($chr eq "@" or $chr eq "%") {
+ } elsif ($chr eq '@' or $chr eq '%') {
+ # An unbackslashed @ or % gobbles up the rest of the args
push @reals, map($self->deparse($_, 6), @args);
@args = ();
+ $proto = '';
+ } elsif (!@args) {
+ last if $doneok;
+ return "&"; # too few args and no ';'
} else {
- $arg = shift @args;
- last unless $arg;
- if ($chr eq "\$" || $chr eq "_") {
+ my $arg = shift @args;
+ if ($chr eq '$' || $chr eq '_') {
if (want_scalar $arg) {
push @reals, $self->deparse($arg, 6);
} else {
return "&";
}
} elsif ($chr eq "&") {
- if ($arg->name =~ /^(s?refgen|undef)$/) {
+ if ($arg->name =~ /^(?:s?refgen|undef)\z/) {
push @reals, $self->deparse($arg, 6);
} else {
return "&";
}
} elsif ($chr eq "*") {
- if ($arg->name =~ /^s?refgen$/
+ if ($arg->name =~ /^s?refgen\z/
and $arg->first->first->name eq "rv2gv")
- {
- $real = $arg->first->first; # skip refgen, null
- if ($real->first->name eq "gv") {
- push @reals, $self->deparse($real, 6);
- } else {
- push @reals, $self->deparse($real->first, 6);
- }
- } else {
- return "&";
- }
+ {
+ my $real = $arg->first->first; # skip refgen, null
+ if ($real->first->name eq "gv") {
+ push @reals, $self->deparse($real, 6);
+ } else {
+ push @reals, $self->deparse($real->first, 6);
+ }
+ } else {
+ return "&";
+ }
+ } elsif ($chr eq "+") {
+ my $real;
+ if ($arg->name =~ /^s?refgen\z/ and
+ !null($real = $arg->first) and
+ !null($real->first) and
+ $real->first->name =~ /^(?:rv2|pad)[ah]v\z/)
+ {
+ push @reals, $self->deparse($real, 6);
+ } elsif (want_scalar $arg) {
+ push @reals, $self->deparse($arg, 6);
+ } else {
+ return "&";
+ }
} elsif (substr($chr, 0, 1) eq "\\") {
$chr =~ tr/\\[]//d;
- if ($arg->name =~ /^s?refgen$/ and
+ my $real;
+ if ($arg->name =~ /^s?refgen\z/ and
!null($real = $arg->first) and
($chr =~ /\$/ && is_scalar($real->first)
or ($chr =~ /@/
- && class($real->first->sibling) ne 'NULL'
- && $real->first->sibling->name
- =~ /^(rv2|pad)av$/)
+ && !null($real->first)
+ && $real->first->name =~ /^(?:rv2|pad)av\z/)
or ($chr =~ /%/
- && class($real->first->sibling) ne 'NULL'
- && $real->first->sibling->name
- =~ /^(rv2|pad)hv$/)
+ && !null($real->first)
+ && $real->first->name =~ /^(?:rv2|pad)hv\z/)
#or ($chr =~ /&/ # This doesn't work
# && $real->first->name eq "rv2cv")
or ($chr =~ /\*/
&& $real->first->name eq "rv2gv")))
- {
- push @reals, $self->deparse($real, 6);
- } else {
- return "&";
- }
- }
- }
+ {
+ push @reals, $self->deparse($real, 6);
+ } else {
+ return "&";
+ }
+ } else {
+ # should not happen
+ return "&";
+ }
+ }
}
- return "&" if $proto and !$doneok; # too few args and no ';'
- return "&" if @args; # too many args
+ return "&" if @args; # too many args
return ("", join ", ", @reals);
}
@@ -5038,7 +5184,7 @@ sub retscalar {
|msgrcv|semop|semget|semctl|hintseval|shostent|snetent
|sprotoent|sservent|ehostent|enetent|eprotoent|eservent
|spwent|epwent|sgrent|egrent|getlogin|syscall|lock|runcv
- |fc)\z/x
+ |fc|padsv_store)\z/x
}
sub pp_entersub {
@@ -5049,9 +5195,7 @@ sub pp_entersub {
my $prefix = "";
my $amper = "";
my($kid, @exprs);
- if ($op->flags & OPf_SPECIAL && !($op->flags & OPf_MOD)) {
- $prefix = "do ";
- } elsif ($op->private & OPpENTERSUB_AMPER) {
+ if ($op->private & OPpENTERSUB_AMPER) {
$amper = "&";
}
$kid = $op->first;
@@ -5175,19 +5319,23 @@ sub pp_entersub {
# it back.
$kid =~ s/^CORE::GLOBAL:://;
- my $dproto = defined($proto) ? $proto : "undefined";
- my $scalar_proto = $dproto =~ /^;*(?:[\$*_+]|\\.|\\\[[^]]\])\z/;
if (!$declared) {
return "$kid(" . $args . ")";
- } elsif ($dproto =~ /^\s*\z/) {
+ }
+
+ my $dproto = defined($proto) ? $proto : "undefined";
+ if ($dproto =~ /^\s*\z/) {
return $kid;
- } elsif ($scalar_proto and is_scalar($exprs[0])) {
+ }
+
+ my $scalar_proto = $dproto =~ /^ \s* (?: ;\s* )* (?: [\$*_+] |\\ \s* (?: [\$\@%&*] | \[ [^\]]+ \] ) ) \s* \z/x;
+ if ($scalar_proto and !@exprs || 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 (not $scalar_proto 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 . ")";
@@ -5295,7 +5443,7 @@ sub re_unback {
# the insane complexity here is due to the behaviour of "\c\"
$str =~ s/
# these two lines ensure that the backslash we're about to
- # remove isn't preceeded by something which makes it part
+ # remove isn't preceded by something which makes it part
# of a \c
(^ | [^\\] | \\c\\) # $1
@@ -5408,9 +5556,15 @@ sub const {
return $self->const_dumper($sv, $cx);
}
if (class($sv) eq "SPECIAL") {
- # sv_undef, sv_yes, sv_no
- return $$sv == 3 ? $self->maybe_parens("!1", $cx, 21)
- : ('undef', '1')[$$sv-1];
+ # PL_sv_undef etc
+ # return yes/no as boolean expressions rather than integers to
+ # preserve their boolean-ness
+ return
+ $$sv == 1 ? 'undef' : # PL_sv_undef
+ $$sv == 2 ? $self->maybe_parens("!0", $cx, 21) : # PL_sv_yes
+ $$sv == 3 ? $self->maybe_parens("!1", $cx, 21) : # PL_sv_no
+ $$sv == 7 ? '0' : # PL_sv_zero
+ '"???"';
}
if (class($sv) eq "NULL") {
return 'undef';
@@ -5431,10 +5585,10 @@ sub const {
if ($nv == 0) {
if (pack("F", $nv) eq pack("F", 0)) {
# positive zero
- return "0";
+ return "0.0";
} else {
# negative zero
- return $self->maybe_parens("-.0", $cx, 21);
+ return $self->maybe_parens("-0.0", $cx, 21);
}
} elsif (1/$nv == 0) {
if ($nv > 0) {
@@ -5471,6 +5625,10 @@ sub const {
return $self->maybe_parens("$mant * 2**$exp", $cx, 19);
}
}
+
+ # preserve NV-ness: output as NNN.0 rather than NNN
+ $str .= ".0" if $str =~ /^-?[0-9]+$/;
+
$str = $self->maybe_parens($str, $cx, 21) if $nv < 0;
return $str;
} elsif ($sv->FLAGS & SVf_ROK && $sv->can("RV")) {
@@ -6252,9 +6410,7 @@ sub matchop {
->sibling # entersub
->first # ex-list
->first # pushmark
- ->sibling # srefgen
- ->first # ex-list
- ->first # anoncode
+ ->sibling # anoncode
->targ
)
: undef);
@@ -6578,6 +6734,34 @@ sub pp_argdefelem {
}
+sub pp_pushdefer {
+ my $self = shift;
+ my($op, $cx) = @_;
+ # defer block body is stored in the ->first of an OP_NULL that is
+ # ->first of OP_PUSHDEFER
+ my $body = $self->deparse($op->first->first);
+ return "defer {\n\t$body\n\b}\cK";
+}
+
+sub builtin1 {
+ my $self = shift;
+ my ($op, $cx, $name) = @_;
+ my $arg = $self->deparse($op->first);
+ # TODO: work out if lexical alias is present somehow...
+ return "builtin::$name($arg)";
+}
+
+sub pp_is_bool { builtin1(@_, "is_bool"); }
+sub pp_is_weak { builtin1(@_, "is_weak"); }
+sub pp_weaken { builtin1(@_, "weaken"); }
+sub pp_unweaken { builtin1(@_, "unweaken"); }
+sub pp_blessed { builtin1(@_, "blessed"); }
+sub pp_refaddr { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "refaddr"); }
+sub pp_reftype { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "reftype"); }
+sub pp_ceil { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "ceil"); }
+sub pp_floor { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "floor"); }
+sub pp_is_tainted { builtin1(@_, "is_tainted"); }
+
1;
__END__
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm
index e4a9ecdc31..634cad2dd9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm
@@ -1,4 +1,4 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
#
# lib/B/Op_private.pm
#
@@ -118,7 +118,7 @@ package B::Op_private;
our %bits;
-our $VERSION = "5.034000";
+our $VERSION = "5.038002";
$bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
$bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
@@ -134,22 +134,22 @@ $bits{$_}{6} = 'OPpINDEX_BOOLNEG' for qw(index rindex);
$bits{$_}{1} = '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 multiconcat multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split);
+$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete emptyavhv enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv padsv_store pushmark refassign rv2av rv2gv rv2hv rv2sv split undef);
$bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign);
$bits{$_}{3} = 'OPpLVREF_ITER' for qw(lvref refassign);
$bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr values vec);
-$bits{$_}{4} = 'OPpMAYBE_TRUEBOOL' for qw(padhv ref rv2hv);
+$bits{$_}{4} = 'OPpMAYBE_TRUEBOOL' for qw(blessed padhv ref 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{$_}{6} = 'OPpPAD_STATE' for qw(emptyavhv lvavref lvref padav padhv padsv padsv_store pushmark refassign undef);
$bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
$bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
$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 mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid);
+$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 ceil chdir chmod chomp chown chr chroot concat cos crypt divide emptyavhv exec exp flock floor getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand refaddr reftype rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time undef unlink unshift utime wait waitpid);
$bits{$_}{0} = 'OPpTRANS_CAN_FORCE_UTF8' for qw(trans transr);
$bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
$bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
@@ -157,7 +157,8 @@ $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_USE_SVOP' for qw(trans transr);
-$bits{$_}{5} = 'OPpTRUEBOOL' for qw(grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst);
+$bits{$_}{5} = 'OPpTRUEBOOL' for qw(blessed grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst);
+$bits{$_}{2} = 'OPpUSEINT' for qw(bit_and bit_or bit_xor complement left_shift nbit_and nbit_or nbit_xor ncomplement right_shift sbit_and sbit_or sbit_xor);
my @bf = (
{
@@ -253,6 +254,7 @@ $bits{aeach}{0} = $bf[0];
@{$bits{aelem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
@{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
@{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
+@{$bits{aelemfastlex_store}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
$bits{akeys}{0} = $bf[0];
$bits{alarm}{0} = $bf[0];
$bits{and}{0} = $bf[0];
@@ -261,7 +263,7 @@ $bits{anonconst}{0} = $bf[0];
@{$bits{anonhash}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{anonlist}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{argcheck}{0} = $bf[0];
-$bits{argdefelem}{0} = $bf[0];
+@{$bits{argdefelem}}{7,6,0} = ('OPpARG_IF_UNDEF', 'OPpARG_IF_FALSE', $bf[0]);
@{$bits{argelem}}{2,1,0} = ($bf[7], $bf[7], $bf[0]);
@{$bits{atan2}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{av2arylen}{0} = $bf[0];
@@ -270,12 +272,11 @@ $bits{avalues}{0} = $bf[0];
$bits{backtick}{0} = $bf[0];
@{$bits{bind}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{binmode}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
-@{$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[4], $bf[4], $bf[4], $bf[4]);
+$bits{blessed}{0} = $bf[0];
@{$bits{caller}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{catch}{0} = $bf[0];
+$bits{ceil}{0} = $bf[0];
@{$bits{chdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{chmod}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{chomp}{0} = $bf[0];
@@ -287,7 +288,6 @@ $bits{chroot}{0} = $bf[0];
$bits{closedir}{0} = $bf[0];
$bits{cmpchain_and}{0} = $bf[0];
$bits{cmpchain_dup}{0} = $bf[0];
-$bits{complement}{0} = $bf[0];
@{$bits{concat}}{6,1,0} = ('OPpCONCAT_NESTED', $bf[1], $bf[1]);
$bits{cond_expr}{0} = $bf[0];
@{$bits{connect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@@ -306,7 +306,8 @@ $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{emptyavhv}}{5,3,2,1,0} = ('OPpEMPTYAVHV_IS_HV', $bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{entereval}}{6,5,4,3,2,1,0} = ('OPpEVAL_EVALSV', '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[8], $bf[8], 'OPpENTERSUB_INARGS');
@@ -325,6 +326,7 @@ $bits{fc}{0} = $bf[0];
@{$bits{fileno}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{flip}{0} = $bf[0];
@{$bits{flock}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+$bits{floor}{0} = $bf[0];
$bits{flop}{0} = $bf[0];
@{$bits{formline}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{ftatime}{0} = $bf[0];
@@ -382,6 +384,7 @@ $bits{grepwhile}{0} = $bf[0];
@{$bits{gt}}{1,0} = ($bf[1], $bf[1]);
$bits{gv}{5} = 'OPpEARLY_CV';
@{$bits{helem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
+@{$bits{helemexistsor}}{7,0} = ('OPpHELEMEXISTSOR_DELETE', $bf[0]);
$bits{hex}{0} = $bf[0];
@{$bits{i_add}}{1,0} = ($bf[1], $bf[1]);
@{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]);
@@ -401,8 +404,12 @@ $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[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{initfield}}{2,1,0} = ('OPpINITFIELD_HV', 'OPpINITFIELD_AV', $bf[0]);
$bits{int}{0} = $bf[0];
@{$bits{ioctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+$bits{is_bool}{0} = $bf[0];
+$bits{is_tainted}{0} = $bf[0];
+$bits{is_weak}{0} = $bf[0];
@{$bits{isa}}{1,0} = ($bf[1], $bf[1]);
@{$bits{join}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{keys}{0} = $bf[0];
@@ -418,7 +425,6 @@ $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[4], $bf[4], $bf[4], $bf[4]);
$bits{list}{6} = 'OPpLIST_GUESSED';
@@ -438,6 +444,7 @@ $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{methstart}}{7,0} = ('OPpINITFIELDS', $bf[0]);
@{$bits{mkdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{modulo}}{1,0} = ($bf[1], $bf[1]);
@{$bits{msgctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@@ -447,11 +454,7 @@ $bits{method_super}{0} = $bf[0];
@{$bits{multiconcat}}{6,5,3,0} = ('OPpMULTICONCAT_APPEND', 'OPpMULTICONCAT_FAKE', 'OPpMULTICONCAT_STRINGIFY', $bf[0]);
@{$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];
@@ -467,6 +470,7 @@ $bits{ord}{0} = $bf[0];
$bits{padhv}{0} = 'OPpPADHV_ISKEYS';
@{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
@{$bits{padsv}}{5,4} = ($bf[8], $bf[8]);
+$bits{padsv_store}{0} = $bf[0];
@{$bits{pipe_op}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{pop}{0} = $bf[0];
$bits{pos}{0} = $bf[0];
@@ -477,6 +481,7 @@ $bits{predec}{0} = $bf[0];
$bits{preinc}{0} = $bf[0];
$bits{prototype}{0} = $bf[0];
@{$bits{push}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{pushdefer}}{7,0} = ('OPpDEFER_FINALLY', $bf[0]);
$bits{quotemeta}{0} = $bf[0];
@{$bits{rand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{range}{0} = $bf[0];
@@ -487,8 +492,10 @@ $bits{readlink}{0} = $bf[0];
@{$bits{recv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{redo}{0} = $bf[0];
$bits{ref}{0} = $bf[0];
+$bits{refaddr}{0} = $bf[0];
@{$bits{refassign}}{5,4,1,0} = ($bf[9], $bf[9], $bf[1], $bf[1]);
$bits{refgen}{0} = $bf[0];
+$bits{reftype}{0} = $bf[0];
$bits{regcmaybe}{0} = $bf[0];
$bits{regcomp}{0} = $bf[0];
$bits{regcreset}{0} = $bf[0];
@@ -498,7 +505,6 @@ $bits{require}{0} = $bf[0];
@{$bits{reset}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$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[4], $bf[4], $bf[4], $bf[4]);
$bits{rmdir}{0} = $bf[0];
$bits{rv2av}{0} = $bf[0];
@@ -507,9 +513,6 @@ $bits{rv2av}{0} = $bf[0];
$bits{rv2hv}{0} = 'OPpRV2HV_ISKEYS';
@{$bits{rv2sv}}{5,4,0} = ($bf[8], $bf[8], $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];
@@ -543,7 +546,7 @@ $bits{sin}{0} = $bf[0];
$bits{snetent}{0} = $bf[0];
@{$bits{socket}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{sockpair}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
-@{$bits{sort}}{7,6,4,3,2,1,0} = ('OPpSORT_UNSTABLE', 'OPpSORT_STABLE', 'OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC');
+@{$bits{sort}}{4,3,2,1,0} = ('OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC');
@{$bits{splice}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{split}}{4,3,2} = ('OPpSPLIT_ASSIGN', 'OPpSPLIT_LEX', 'OPpSPLIT_IMPLIM');
@{$bits{sprintf}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@@ -575,16 +578,18 @@ $bits{tied}{0} = $bf[0];
$bits{uc}{0} = $bf[0];
$bits{ucfirst}{0} = $bf[0];
@{$bits{umask}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
-$bits{undef}{0} = $bf[0];
+@{$bits{undef}}{5,0} = ('OPpUNDEF_KEEP_PV', $bf[0]);
@{$bits{unlink}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{unpack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{unshift}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{untie}{0} = $bf[0];
+$bits{unweaken}{0} = $bf[0];
@{$bits{utime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{values}{0} = $bf[0];
@{$bits{vec}}{1,0} = ($bf[1], $bf[1]);
@{$bits{waitpid}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{warn}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+$bits{weaken}{0} = $bf[0];
@{$bits{xor}}{1,0} = ($bf[1], $bf[1]);
@@ -598,6 +603,8 @@ our %defines = (
OPpARGELEM_HV => 4,
OPpARGELEM_MASK => 6,
OPpARGELEM_SV => 0,
+ OPpARG_IF_FALSE => 64,
+ OPpARG_IF_UNDEF => 128,
OPpASSIGN_BACKWARDS => 64,
OPpASSIGN_COMMON_AGG => 16,
OPpASSIGN_COMMON_RC1 => 32,
@@ -615,12 +622,14 @@ our %defines = (
OPpCOREARGS_DEREF2 => 2,
OPpCOREARGS_PUSHMARK => 128,
OPpCOREARGS_SCALARMOD => 64,
+ OPpDEFER_FINALLY => 128,
OPpDEREF => 48,
OPpDEREF_AV => 16,
OPpDEREF_HV => 32,
OPpDEREF_SV => 48,
OPpDONT_INIT_GV => 4,
OPpEARLY_CV => 32,
+ OPpEMPTYAVHV_IS_HV => 32,
OPpENTERSUB_AMPER => 8,
OPpENTERSUB_DB => 64,
OPpENTERSUB_HASTARG => 4,
@@ -628,6 +637,7 @@ our %defines = (
OPpENTERSUB_NOPAREN => 128,
OPpEVAL_BYTES => 8,
OPpEVAL_COPHH => 16,
+ OPpEVAL_EVALSV => 64,
OPpEVAL_HAS_HH => 2,
OPpEVAL_RE_REPARSING => 32,
OPpEVAL_UNICODE => 4,
@@ -637,9 +647,13 @@ our %defines = (
OPpFT_AFTER_t => 16,
OPpFT_STACKED => 4,
OPpFT_STACKING => 8,
+ OPpHELEMEXISTSOR_DELETE => 128,
OPpHINT_STRICT_REFS => 2,
OPpHUSH_VMSISH => 32,
OPpINDEX_BOOLNEG => 64,
+ OPpINITFIELDS => 128,
+ OPpINITFIELD_AV => 2,
+ OPpINITFIELD_HV => 4,
OPpITER_DEF => 8,
OPpITER_REVERSED => 2,
OPpKVSLICE => 32,
@@ -684,8 +698,6 @@ our %defines = (
OPpSORT_INTEGER => 2,
OPpSORT_NUMERIC => 1,
OPpSORT_REVERSE => 4,
- OPpSORT_STABLE => 64,
- OPpSORT_UNSTABLE => 128,
OPpSPLIT_ASSIGN => 16,
OPpSPLIT_IMPLIM => 4,
OPpSPLIT_LEX => 8,
@@ -699,6 +711,8 @@ our %defines = (
OPpTRANS_SQUASH => 8,
OPpTRANS_USE_SVOP => 2,
OPpTRUEBOOL => 32,
+ OPpUNDEF_KEEP_PV => 32,
+ OPpUSEINT => 4,
);
our %labels = (
@@ -706,6 +720,8 @@ our %labels = (
OPpARGELEM_AV => 'AV',
OPpARGELEM_HV => 'HV',
OPpARGELEM_SV => 'SV',
+ OPpARG_IF_FALSE => 'IF_FALSE',
+ OPpARG_IF_UNDEF => 'IF_UNDEF',
OPpASSIGN_BACKWARDS => 'BKWARD',
OPpASSIGN_COMMON_AGG => 'COM_AGG',
OPpASSIGN_COMMON_RC1 => 'COM_RC1',
@@ -722,11 +738,13 @@ our %labels = (
OPpCOREARGS_DEREF2 => 'DEREF2',
OPpCOREARGS_PUSHMARK => 'MARK',
OPpCOREARGS_SCALARMOD => '$MOD',
+ OPpDEFER_FINALLY => 'FINALLY',
OPpDEREF_AV => 'DREFAV',
OPpDEREF_HV => 'DREFHV',
OPpDEREF_SV => 'DREFSV',
OPpDONT_INIT_GV => 'NOINIT',
OPpEARLY_CV => 'EARLYCV',
+ OPpEMPTYAVHV_IS_HV => 'ANONHASH',
OPpENTERSUB_AMPER => 'AMPER',
OPpENTERSUB_DB => 'DBG',
OPpENTERSUB_HASTARG => 'TARG',
@@ -734,6 +752,7 @@ our %labels = (
OPpENTERSUB_NOPAREN => 'NO()',
OPpEVAL_BYTES => 'BYTES',
OPpEVAL_COPHH => 'COPHH',
+ OPpEVAL_EVALSV => 'EVALSV',
OPpEVAL_HAS_HH => 'HAS_HH',
OPpEVAL_RE_REPARSING => 'REPARSE',
OPpEVAL_UNICODE => 'UNI',
@@ -743,9 +762,13 @@ our %labels = (
OPpFT_AFTER_t => 'FTAFTERt',
OPpFT_STACKED => 'FTSTACKED',
OPpFT_STACKING => 'FTSTACKING',
+ OPpHELEMEXISTSOR_DELETE => 'DELETE',
OPpHINT_STRICT_REFS => 'STRICT',
OPpHUSH_VMSISH => 'HUSH',
OPpINDEX_BOOLNEG => 'NEG',
+ OPpINITFIELDS => 'INITFIELDS',
+ OPpINITFIELD_AV => 'INITFIELD_AV',
+ OPpINITFIELD_HV => 'INITFIELD_HV',
OPpITER_DEF => 'DEF',
OPpITER_REVERSED => 'REVERSED',
OPpKVSLICE => 'KVSLICE',
@@ -787,8 +810,6 @@ our %labels = (
OPpSORT_INTEGER => 'INT',
OPpSORT_NUMERIC => 'NUM',
OPpSORT_REVERSE => 'REV',
- OPpSORT_STABLE => 'STABLE',
- OPpSORT_UNSTABLE => 'UNSTABLE',
OPpSPLIT_ASSIGN => 'ASSIGN',
OPpSPLIT_IMPLIM => 'IMPLIM',
OPpSPLIT_LEX => 'LEX',
@@ -802,17 +823,22 @@ our %labels = (
OPpTRANS_SQUASH => 'SQUASH',
OPpTRANS_USE_SVOP => 'USE_SVOP',
OPpTRUEBOOL => 'BOOL',
+ OPpUNDEF_KEEP_PV => 'KEEP_PV',
+ OPpUSEINT => 'USEINT',
);
our %ops_using = (
OPpALLOW_FAKE => [qw(rv2gv)],
+ OPpARG_IF_FALSE => [qw(argdefelem)],
OPpASSIGN_BACKWARDS => [qw(sassign)],
OPpASSIGN_COMMON_AGG => [qw(aassign)],
OPpCONCAT_NESTED => [qw(concat)],
OPpCONST_BARE => [qw(const)],
OPpCOREARGS_DEREF1 => [qw(coreargs)],
+ OPpDEFER_FINALLY => [qw(pushdefer)],
OPpEARLY_CV => [qw(gv)],
+ OPpEMPTYAVHV_IS_HV => [qw(emptyavhv)],
OPpENTERSUB_AMPER => [qw(entersub rv2cv)],
OPpENTERSUB_INARGS => [qw(entersub)],
OPpENTERSUB_NOPAREN => [qw(rv2cv)],
@@ -821,26 +847,29 @@ our %ops_using = (
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)],
+ OPpHELEMEXISTSOR_DELETE => [qw(helemexistsor)],
OPpHINT_STRICT_REFS => [qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv)],
OPpHUSH_VMSISH => [qw(dbstate nextstate)],
OPpINDEX_BOOLNEG => [qw(index rindex)],
+ OPpINITFIELDS => [qw(methstart)],
+ OPpINITFIELD_AV => [qw(initfield)],
OPpITER_DEF => [qw(enteriter)],
OPpITER_REVERSED => [qw(enteriter iter)],
OPpKVSLICE => [qw(delete)],
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 multiconcat multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split)],
+ OPpLVAL_INTRO => [qw(aelem aslice cond_expr delete emptyavhv enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv padsv_store pushmark refassign rv2av rv2gv rv2hv rv2sv split undef)],
OPpLVREF_ELEM => [qw(lvref refassign)],
OPpMAYBE_LVSUB => [qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr values vec)],
- OPpMAYBE_TRUEBOOL => [qw(padhv ref rv2hv)],
+ OPpMAYBE_TRUEBOOL => [qw(blessed padhv ref rv2hv)],
OPpMULTICONCAT_APPEND => [qw(multiconcat)],
OPpMULTIDEREF_DELETE => [qw(multideref)],
OPpOFFBYONE => [qw(caller runcv wantarray)],
OPpOPEN_IN_CRLF => [qw(backtick open)],
OPpOUR_INTRO => [qw(enteriter gvsv rv2av rv2hv rv2sv split)],
OPpPADHV_ISKEYS => [qw(padhv)],
- OPpPAD_STATE => [qw(lvavref lvref padav padhv padsv pushmark refassign)],
+ OPpPAD_STATE => [qw(emptyavhv lvavref lvref padav padhv padsv padsv_store pushmark refassign undef)],
OPpPV_IS_UTF8 => [qw(dump goto last next redo)],
OPpREFCOUNTED => [qw(leave leaveeval leavesub leavesublv leavewrite)],
OPpREPEAT_DOLIST => [qw(repeat)],
@@ -850,11 +879,14 @@ our %ops_using = (
OPpSORT_DESCEND => [qw(sort)],
OPpSPLIT_ASSIGN => [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 mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid)],
+ OPpTARGET_MY => [qw(abs add atan2 ceil chdir chmod chomp chown chr chroot concat cos crypt divide emptyavhv exec exp flock floor getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand refaddr reftype rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time undef unlink unshift utime wait waitpid)],
OPpTRANS_CAN_FORCE_UTF8 => [qw(trans transr)],
- OPpTRUEBOOL => [qw(grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst)],
+ OPpTRUEBOOL => [qw(blessed grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst)],
+ OPpUNDEF_KEEP_PV => [qw(undef)],
+ OPpUSEINT => [qw(bit_and bit_or bit_xor complement left_shift nbit_and nbit_or nbit_xor ncomplement right_shift sbit_and sbit_or sbit_xor)],
);
+$ops_using{OPpARG_IF_UNDEF} = $ops_using{OPpARG_IF_FALSE};
$ops_using{OPpASSIGN_COMMON_RC1} = $ops_using{OPpASSIGN_COMMON_AGG};
$ops_using{OPpASSIGN_COMMON_SCALAR} = $ops_using{OPpASSIGN_COMMON_AGG};
$ops_using{OPpASSIGN_CV_TO_GV} = $ops_using{OPpASSIGN_BACKWARDS};
@@ -870,11 +902,13 @@ $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_EVALSV} = $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{OPpINITFIELD_HV} = $ops_using{OPpINITFIELD_AV};
$ops_using{OPpLVREF_ITER} = $ops_using{OPpLVREF_ELEM};
$ops_using{OPpMAY_RETURN_CONSTANT} = $ops_using{OPpENTERSUB_NOPAREN};
$ops_using{OPpMULTICONCAT_FAKE} = $ops_using{OPpMULTICONCAT_APPEND};
@@ -888,8 +922,6 @@ $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_REVERSE} = $ops_using{OPpSORT_DESCEND};
-$ops_using{OPpSORT_STABLE} = $ops_using{OPpSORT_DESCEND};
-$ops_using{OPpSORT_UNSTABLE} = $ops_using{OPpSORT_DESCEND};
$ops_using{OPpSPLIT_IMPLIM} = $ops_using{OPpSPLIT_ASSIGN};
$ops_using{OPpSPLIT_LEX} = $ops_using{OPpSPLIT_ASSIGN};
$ops_using{OPpTRANS_COMPLEMENT} = $ops_using{OPpTRANS_CAN_FORCE_UTF8};
@@ -899,4 +931,4 @@ $ops_using{OPpTRANS_IDENTICAL} = $ops_using{OPpTRANS_CAN_FORCE_UTF8};
$ops_using{OPpTRANS_SQUASH} = $ops_using{OPpTRANS_CAN_FORCE_UTF8};
$ops_using{OPpTRANS_USE_SVOP} = $ops_using{OPpTRANS_CAN_FORCE_UTF8};
-# ex: set ro:
+# ex: set ro ft=perl:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm
index 3eeba79873..b68e96ad17 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm
@@ -482,7 +482,7 @@ our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
clearcache clearallcache disablecache enablecache);
%EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ;
-$VERSION = 1.23;
+$VERSION = 1.24;
# --- ':hireswallclock' special handling
@@ -683,9 +683,9 @@ sub runloop {
my($t0, $t1, $td); # before, after, difference
# find package of caller so we can execute code there
- my($curpack) = caller(0);
+ my $curpack = caller(0);
my($i, $pack)= 0;
- while (($pack) = caller(++$i)) {
+ while ($pack = caller(++$i)) {
last if $pack ne $curpack;
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h
index 7946323dce..e6d97caa44 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h
@@ -9,10 +9,11 @@
*/
/*
- * EXT designates a global var which is defined in perl.h
- * dEXT designates a global var which is defined in another
- * file, so we can't count on finding it in perl.h
- * (this practice should be avoided).
+ * EXT: designates a global var which is defined in perl.h
+ *
+ * dEXT: designates a global var which is defined in another
+ * file, so we can't count on finding it in perl.h
+ * (this practice should be avoided).
*/
#undef EXT
#undef dEXT
@@ -52,6 +53,6 @@
# endif
#undef INIT
-#define INIT(x)
+#define INIT(...)
#undef DOINIT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h
index 4305b6bc02..6a28e6020b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h
@@ -46,6 +46,6 @@
# endif
#undef INIT
-#define INIT(x) = x
+#define INIT(...) = __VA_ARGS__
#define DOINIT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h
index c1e3959885..82cd0dc777 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h
@@ -23,17 +23,17 @@ Some variables below are flagged with 'u' because Devel::PPPort can't currently
readily test them as they spring into existence by compiling with xsubpp.
=for apidoc Amnu|char*|CLASS
-Variable which is setup by C<xsubpp> to indicate the
+Variable which is setup by C<xsubpp> to indicate the
class name for a C++ XS constructor. This is always a C<char*>. See
C<L</THIS>>.
=for apidoc Amnu|type|RETVAL
-Variable which is setup by C<xsubpp> to hold the return value for an
-XSUB. This is always the proper type for the XSUB. See
+Variable which is setup by C<xsubpp> to hold the return value for an
+XSUB. This is always the proper type for the XSUB. See
L<perlxs/"The RETVAL Variable">.
=for apidoc Amnu|type|THIS
-Variable which is setup by C<xsubpp> to designate the object in a C++
+Variable which is setup by C<xsubpp> to designate the object in a C++
XSUB. This is always the proper type for the C++ object. See C<L</CLASS>> and
L<perlxs/"Using XS With C++">.
@@ -43,11 +43,11 @@ used by the C<ST>, C<XSprePUSH> and C<XSRETURN> macros. The C<dMARK> macro
must be called prior to setup the C<MARK> variable.
=for apidoc Amn|I32|items
-Variable which is setup by C<xsubpp> to indicate the number of
+Variable which is setup by C<xsubpp> to indicate the number of
items on the stack. See L<perlxs/"Variable-length Parameter Lists">.
=for apidoc Amn|I32|ix
-Variable which is setup by C<xsubpp> to indicate which of an
+Variable which is setup by C<xsubpp> to indicate which of an
XSUB's aliases was used to invoke it. See L<perlxs/"The ALIAS: Keyword">.
=for apidoc Am|SV*|ST|int ix
@@ -74,28 +74,28 @@ Macro to declare an XSUB and its C parameter list explicitly exporting the symbo
Macro used by C<L</XS_INTERNAL>> and C<L</XS_EXTERNAL>> to declare a function
prototype. You probably shouldn't be using this directly yourself.
-=for apidoc Amns||dAX
+=for apidoc Amn;||dAX
Sets up the C<ax> variable.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
-=for apidoc Amns||dAXMARK
+=for apidoc Amn;||dAXMARK
Sets up the C<ax> variable and stack marker variable C<mark>.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
-=for apidoc Amns||dITEMS
+=for apidoc Amn;||dITEMS
Sets up the C<items> variable.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
-=for apidoc Amns||dXSARGS
+=for apidoc Amn;||dXSARGS
Sets up stack and mark pointers for an XSUB, calling C<dSP> and C<dMARK>.
Sets up the C<ax> and C<items> variables by calling C<dAX> and C<dITEMS>.
This is usually handled automatically by C<xsubpp>.
-=for apidoc Amns||dXSI32
+=for apidoc Amn;||dXSI32
Sets up the C<ix> variable for an XSUB which has aliases. This is usually
handled automatically by C<xsubpp>.
-=for apidoc Amns||dUNDERBAR
+=for apidoc Amn;||dUNDERBAR
Sets up any variable needed by the C<UNDERBAR> macro. It used to define
C<padoff_du>, but it is currently a noop. However, it is strongly advised
to still use it for ensuring past and future compatibility.
@@ -160,13 +160,13 @@ is a lexical C<$_> in scope.
#define dAX const I32 ax = (I32)(MARK - PL_stack_base + 1)
#define dAXMARK \
- I32 ax = POPMARK; \
- SV **mark = PL_stack_base + ax++
+ I32 ax = POPMARK; \
+ SV **mark = PL_stack_base + ax++
#define dITEMS I32 items = (I32)(SP - MARK)
#define dXSARGS \
- dSP; dAXMARK; dITEMS
+ 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
@@ -174,20 +174,20 @@ is a lexical C<$_> in scope.
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 - 1; dSP; dITEMS
+ I32 ax = XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
+ SV **mark = PL_stack_base + ax - 1; dSP; dITEMS
#define dXSBOOTARGSAPIVERCHK \
- I32 ax = XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
- SV **mark = PL_stack_base + ax - 1; dSP; dITEMS
+ I32 ax = XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
+ SV **mark = PL_stack_base + ax - 1; 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 - 1; dSP; dITEMS
+ I32 ax = XS_SETXSUBFN_POPMARK; \
+ SV **mark = PL_stack_base + ax - 1; dSP; dITEMS
#define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
- ? PAD_SV(PL_op->op_targ) : sv_newmortal())
+ ? PAD_SV(PL_op->op_targ) : sv_newmortal())
/* Should be used before final PUSHi etc. if not in PPCODE section. */
#define XSprePUSH (sp = PL_stack_base + ax - 1)
@@ -206,7 +206,7 @@ is a lexical C<$_> in scope.
#define dXSFUNCTION(ret) XSINTERFACE_CVT(ret,XSFUNCTION)
#define XSINTERFACE_FUNC(ret,cv,f) ((XSINTERFACE_CVT_ANON(ret))(f))
#define XSINTERFACE_FUNC_SET(cv,f) \
- CvXSUBANY(cv).any_dxptr = (void (*) (pTHX_ void*))(f)
+ CvXSUBANY(cv).any_dxptr = (void (*) (pTHX_ void*))(f)
#define dUNDERBAR dNOOP
#define UNDERBAR find_rundefsv()
@@ -226,7 +226,7 @@ Place a double into the specified position C<pos> on the stack. The value
is stored in a new mortal SV.
=for apidoc Am|void|XST_mPV|int pos|char* str
-Place a copy of a string into the specified position C<pos> on the stack.
+Place a copy of a string into the specified position C<pos> on the stack.
The value is stored in a new mortal SV.
=for apidoc Am|void|XST_mUV|int pos|UV uv
@@ -261,16 +261,16 @@ Return a double from an XSUB immediately. Uses C<XST_mNV>.
=for apidoc Am|void|XSRETURN_PV|char* str
Return a copy of a string from an XSUB immediately. Uses C<XST_mPV>.
-=for apidoc Amns||XSRETURN_NO
+=for apidoc Amn;||XSRETURN_NO
Return C<&PL_sv_no> from an XSUB immediately. Uses C<XST_mNO>.
-=for apidoc Amns||XSRETURN_YES
+=for apidoc Amn;||XSRETURN_YES
Return C<&PL_sv_yes> from an XSUB immediately. Uses C<XST_mYES>.
-=for apidoc Amns||XSRETURN_UNDEF
+=for apidoc Amn;||XSRETURN_UNDEF
Return C<&PL_sv_undef> from an XSUB immediately. Uses C<XST_mUNDEF>.
-=for apidoc Amns||XSRETURN_EMPTY
+=for apidoc Amn;||XSRETURN_EMPTY
Return an empty list from an XSUB immediately.
=for apidoc AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
@@ -282,18 +282,18 @@ The version identifier for an XS module. This is usually
handled automatically by C<ExtUtils::MakeMaker>. See
C<L</XS_VERSION_BOOTCHECK>>.
-=for apidoc Amns||XS_VERSION_BOOTCHECK
+=for apidoc Amn;||XS_VERSION_BOOTCHECK
Macro to verify that a PM module's C<$VERSION> variable matches the XS
module's C<XS_VERSION> variable. This is usually handled automatically by
C<xsubpp>. See L<perlxs/"The VERSIONCHECK: Keyword">.
-=for apidoc Amns||XS_APIVERSION_BOOTCHECK
+=for apidoc Amn;||XS_APIVERSION_BOOTCHECK
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.
=for apidoc_section $exceptions
-=for apidoc Amns||dXCPT
+=for apidoc Amn;||dXCPT
Set up necessary local variables for exception handling.
See L<perlguts/"Exception Handling">.
@@ -306,7 +306,7 @@ Ends a try block. See L<perlguts/"Exception Handling">.
=for apidoc AmnU||XCPT_CATCH
Introduces a catch block. See L<perlguts/"Exception Handling">.
-=for apidoc Amns||XCPT_RETHROW
+=for apidoc Amn;||XCPT_RETHROW
Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
=cut
@@ -323,21 +323,21 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
#define XSRETURN(off) \
STMT_START { \
- const IV tmpXSoff = (off); \
- assert(tmpXSoff >= 0);\
- PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); \
- return; \
+ const IV tmpXSoff = (off); \
+ assert(tmpXSoff >= 0);\
+ PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); \
+ return; \
} STMT_END
-#define XSRETURN_IV(v) STMT_START { XST_mIV(0,v); XSRETURN(1); } STMT_END
-#define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END
-#define XSRETURN_NV(v) STMT_START { XST_mNV(0,v); XSRETURN(1); } STMT_END
-#define XSRETURN_PV(v) STMT_START { XST_mPV(0,v); XSRETURN(1); } STMT_END
-#define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n); XSRETURN(1); } STMT_END
-#define XSRETURN_NO STMT_START { XST_mNO(0); XSRETURN(1); } STMT_END
-#define XSRETURN_YES STMT_START { XST_mYES(0); XSRETURN(1); } STMT_END
-#define XSRETURN_UNDEF STMT_START { XST_mUNDEF(0); XSRETURN(1); } STMT_END
-#define XSRETURN_EMPTY STMT_START { XSRETURN(0); } STMT_END
+#define XSRETURN_IV(v) STMT_START { XST_mIV(0,v); XSRETURN(1); } STMT_END
+#define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END
+#define XSRETURN_NV(v) STMT_START { XST_mNV(0,v); XSRETURN(1); } STMT_END
+#define XSRETURN_PV(v) STMT_START { XST_mPV(0,v); XSRETURN(1); } STMT_END
+#define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n); XSRETURN(1); } STMT_END
+#define XSRETURN_NO STMT_START { XST_mNO(0); XSRETURN(1); } STMT_END
+#define XSRETURN_YES STMT_START { XST_mYES(0); XSRETURN(1); } STMT_END
+#define XSRETURN_UNDEF STMT_START { XST_mUNDEF(0); XSRETURN(1); } STMT_END
+#define XSRETURN_EMPTY STMT_START { XSRETURN(0); } STMT_END
#define newXSproto(a,b,c,d) newXS_flags(a,b,c,d,0)
@@ -409,48 +409,49 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
*/
#define DBM_setFilter(db_type,code) \
- STMT_START { \
- if (db_type) \
- RETVAL = sv_mortalcopy(db_type) ; \
- ST(0) = RETVAL ; \
- if (db_type && (code == &PL_sv_undef)) { \
- SvREFCNT_dec_NN(db_type) ; \
- db_type = NULL ; \
- } \
- else if (code) { \
- if (db_type) \
- sv_setsv(db_type, code) ; \
- else \
- db_type = newSVsv(code) ; \
- } \
- } STMT_END
+ STMT_START { \
+ if (db_type) \
+ RETVAL = sv_mortalcopy(db_type) ; \
+ ST(0) = RETVAL ; \
+ if (db_type && (code == &PL_sv_undef)) { \
+ SvREFCNT_dec_NN(db_type) ; \
+ db_type = NULL ; \
+ } \
+ else if (code) { \
+ if (db_type) \
+ sv_setsv(db_type, code) ; \
+ else \
+ db_type = newSVsv(code) ; \
+ } \
+ } STMT_END
#define DBM_ckFilter(arg,type,name) \
- STMT_START { \
- if (db->type) { \
- if (db->filtering) { \
- croak("recursion detected in %s", name) ; \
- } \
- ENTER ; \
- SAVETMPS ; \
- SAVEINT(db->filtering) ; \
- db->filtering = TRUE ; \
- SAVE_DEFSV ; \
+ STMT_START { \
+ if (db->type) { \
+ if (db->filtering) { \
+ croak("recursion detected in %s", name) ; \
+ } \
+ ENTER ; \
+ SAVETMPS ; \
+ SAVEINT(db->filtering) ; \
+ db->filtering = TRUE ; \
+ SAVE_DEFSV ; \
if (name[7] == 's') \
arg = newSVsv(arg); \
- DEFSV_set(arg) ; \
- SvTEMP_off(arg) ; \
- PUSHMARK(SP) ; \
- PUTBACK ; \
- (void) perl_call_sv(db->type, G_DISCARD); \
- SPAGAIN ; \
- PUTBACK ; \
- FREETMPS ; \
- LEAVE ; \
+ DEFSV_set(arg) ; \
+ SvTEMP_off(arg) ; \
+ PUSHMARK(SP) ; \
+ PUTBACK ; \
+ (void) perl_call_sv(db->type, G_DISCARD); \
+ SPAGAIN ; \
+ PUTBACK ; \
+ FREETMPS ; \
+ LEAVE ; \
if (name[7] == 's'){ \
arg = sv_2mortal(arg); \
} \
- } } STMT_END
+ } \
+ } STMT_END
#if 1 /* for compatibility */
# define VTBL_sv &PL_vtbl_sv
@@ -484,7 +485,7 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
# define VTBL_amagicelem &PL_vtbl_amagicelem
#endif
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
+#if defined(MULTIPLICITY) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
# undef aTHX
# undef aTHX_
# define aTHX PERL_GET_THX
@@ -493,15 +494,6 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
#if defined(PERL_IMPLICIT_SYS) && !defined(PERL_CORE)
# ifndef NO_XSLOCKS
-# if defined (NETWARE) && defined (USE_STDIO)
-# define times PerlProc_times
-# define setuid PerlProc_setuid
-# define setgid PerlProc_setgid
-# define getpid PerlProc_getpid
-# define pause PerlProc_pause
-# define exit PerlProc_exit
-# define _exit PerlProc__exit
-# else
# undef closedir
# undef opendir
# undef stdin
@@ -517,35 +509,6 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
# undef ungetc
# undef fileno
-/* Following symbols were giving redefinition errors while building extensions - sgp 17th Oct 2000 */
-#ifdef NETWARE
-# undef readdir
-# undef fstat
-# undef stat
-# undef longjmp
-# undef endhostent
-# undef endnetent
-# undef endprotoent
-# undef endservent
-# undef gethostbyaddr
-# undef gethostbyname
-# undef gethostent
-# undef getnetbyaddr
-# undef getnetbyname
-# undef getnetent
-# undef getprotobyname
-# undef getprotobynumber
-# undef getprotoent
-# undef getservbyname
-# undef getservbyport
-# undef getservent
-# undef inet_ntoa
-# undef sethostent
-# undef setnetent
-# undef setprotoent
-# undef setservent
-#endif /* NETWARE */
-
/* to avoid warnings: "xyz" redefined */
#ifdef WIN32
# undef popen
@@ -694,7 +657,6 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
# define shutdown PerlSock_shutdown
# define socket PerlSock_socket
# define socketpair PerlSock_socketpair
-# endif /* NETWARE && USE_STDIO */
# undef fd_set
# undef FD_SET
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h
index 41cb6fefd8..6e0b24d7b3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h
@@ -18,16 +18,27 @@ struct xpvav {
/* SV* xav_arylen; */
-/* SVpav_REAL is set for all AVs whose xav_array contents are refcounted.
- * Some things like "@_" and the scratchpad list do not set this, to
- * indicate that they are cheating (for efficiency) by not refcounting
- * the AV's contents.
- *
+/* SVpav_REAL is set for all AVs whose xav_array contents are refcounted
+ * and initialized such that any element can be retrieved as a SV*.
+ * Such AVs may be referred to as "real" AVs. Examples include regular
+ * perl arrays, tiedarrays (since v5.16), and padlist AVs.
+ *
+ * Some things do not set SVpav_REAL, to indicate that they are cheating
+ * (for efficiency) by not refcounting the AV's contents or ensuring that
+ * all elements are safe for arbitrary access. This type of AV may be
+ * referred to as "fake" AVs. Examples include "@_" (unless tied), the
+ * scratchpad list, and the backrefs list on an object or stash.
+ *
* SVpav_REIFY is only meaningful on such "fake" AVs (i.e. where SVpav_REAL
* is not set). It indicates that the fake AV is capable of becoming
* real if the array needs to be modified in some way. Functions that
* modify fake AVs check both flags to call av_reify() as appropriate.
*
+ * av_reify() transforms a fake AV into a real one through two actions.
+ * Allocated but unpopulated elements are initialized to make them safe for
+ * arbitrary retrieval and the reference counts of populated elements are
+ * incremented.
+ *
* Note that the Perl stack has neither flag set. (Thus,
* items that go on the stack are never refcounted.)
*
@@ -97,16 +108,110 @@ If all you need is to look up an array element, then prefer C<av_fetch>.
#define NEGATIVE_INDICES_VAR "NEGATIVE_INDICES"
/*
+
+Note that there are both real and fake AVs; see the beginning of this file and
+'av.c'
+
=for apidoc newAV
+=for apidoc_item newAV_alloc_x
+=for apidoc_item newAV_alloc_xz
+
+These all create a new AV, setting the reference count to 1. If you also know
+the initial elements of the array with, see L</C<av_make>>.
+
+As background, an array consists of three things:
+
+=over
+
+=item 1.
+
+A data structure containing information about the array as a whole, such as its
+size and reference count.
+
+=item 2.
+
+A C language array of pointers to the individual elements. These are treated
+as pointers to SVs, so all must be castable to SV*.
+
+=item 3.
+
+The individual elements themselves. These could be, for instance, SVs and/or
+AVs and/or HVs, etc.
+
+=back
+
+An empty array need only have the first data structure, and all these functions
+create that. They differ in what else they do, as follows:
+
+=over
+
+=item C<newAV> form
+
+=for comment
+'form' above and below is because otherwise have two =items with the same name,
+can't link to them.
+
+This does nothing beyond creating the whole-array data structure.
+The Perl equivalent is approximately S<C<my @array;>>
-Creates a new AV. The reference count is set to 1.
+This is useful when the minimum size of the array could be zero (perhaps there
+are likely code paths that will entirely skip using it).
-Perl equivalent: C<my @array;>.
+If the array does get used, the pointers data structure will need to be
+allocated at that time. This will end up being done by L</av_extend>>,
+either explicitly:
+
+ av_extend(av, len);
+
+or implicitly when the first element is stored:
+
+ (void)av_store(av, 0, sv);
+
+Unused array elements are typically initialized by C<av_extend>.
+
+=item C<newAV_alloc_x> form
+
+This effectively does a C<newAV> followed by also allocating (uninitialized)
+space for the pointers array. This is used when you know ahead of time the
+likely minimum size of the array. It is more efficient to do this than doing a
+plain C<newAV> followed by an C<av_extend>.
+
+Of course the array can be extended later should it become necessary.
+
+C<size> must be at least 1.
+
+=item C<newAV_alloc_xz> form
+
+This is C<newAV_alloc_x>, but initializes each pointer in it to NULL. This
+gives added safety to guard against them being read before being set.
+
+C<size> must be at least 1.
+
+=back
+
+The following examples all result in an array that can fit four elements
+(indexes 0 .. 3):
+
+ AV *av = newAV();
+ av_extend(av, 3);
+
+ AV *av = newAV_alloc_x(4);
+
+ AV *av = newAV_alloc_xz(4);
+
+In contrast, the following examples allocate an array that is only guaranteed
+to fit one element without extending:
+
+ AV *av = newAV_alloc_x(1);
+ AV *av = newAV_alloc_xz(1);
=cut
+
*/
#define newAV() MUTABLE_AV(newSV_type(SVt_PVAV))
+#define newAV_alloc_x(size) av_new_alloc(size,0)
+#define newAV_alloc_xz(size) av_new_alloc(size,1)
/*
* ex: set ts=8 sts=4 sw=4 et:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/charclass_invlists.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/charclass_invlists.h
index 18c26afae0..209681ac1a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/charclass_invlists.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/charclass_invlists.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/mk_invlists.pl from Unicode::UCD.
* Any changes made here will be lost!
@@ -15,15 +15,15 @@
* 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
- * above 12.) Be sure to benchmark before changing, as larger sizes do
- * significantly slow down the test suite */
+ * Japanese, nor Korean. The regnode sizing data structure in regnodes.h currently
+ * uses a U8, and the trie types TRIEC and AHOCORASICKC are larger than U8 for
+ * shift values 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)
/* The precision to use in "%.*e" formats */
-#define PL_E_FORMAT_PRECISION 2
+#define PL_E_FORMAT_PRECISION 3
#if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE))
@@ -54,7 +54,7 @@ static const UV * const InBitmap_invlist = Latin1_invlist;
# if 'A' == 65 /* ASCII/Latin1 */
static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
- 1398, /* Number of elements */
+ 1414, /* 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 */
@@ -1072,7 +1072,7 @@ static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -1416,6 +1416,8 @@ static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -1425,6 +1427,12 @@ static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -1448,6 +1456,14 @@ static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -3444,6 +3460,8 @@ static const I32 Case_Folding_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -3453,6 +3471,12 @@ static const I32 Case_Folding_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0x13A0,
@@ -3476,6 +3500,14 @@ static const I32 Case_Folding_invmap[] = { /* for ASCII/Latin1 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -3498,7 +3530,7 @@ static const I32 Case_Folding_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
- 1417, /* Number of elements */
+ 1433, /* 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 */
@@ -4535,7 +4567,7 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -4879,6 +4911,8 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -4888,6 +4922,12 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -4911,6 +4951,14 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -6929,6 +6977,8 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -6938,6 +6988,12 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0x13A0,
@@ -6961,6 +7017,14 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 1047 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -6983,7 +7047,7 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */
- 1413, /* Number of elements */
+ 1429, /* 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 */
@@ -8016,7 +8080,7 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -8360,6 +8424,8 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -8369,6 +8435,12 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -8392,6 +8464,14 @@ static const UV Case_Folding_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -10406,6 +10486,8 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 037 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -10415,6 +10497,12 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 037 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0x13A0,
@@ -10438,6 +10526,14 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 037 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -10457,7 +10553,7 @@ static const I32 Case_Folding_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
- 1262, /* Number of elements */
+ 1278, /* 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 */
@@ -11354,7 +11450,7 @@ static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -11698,6 +11794,8 @@ static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -11707,6 +11805,12 @@ static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -11715,6 +11819,14 @@ static const UV Lowercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -13000,6 +13112,8 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -13009,6 +13123,12 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0xFF41,
@@ -13017,6 +13137,14 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -13039,7 +13167,7 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
- 1280, /* Number of elements */
+ 1296, /* 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 */
@@ -13954,7 +14082,7 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -14298,6 +14426,8 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -14307,6 +14437,12 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -14315,6 +14451,14 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -15621,6 +15765,8 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -15630,6 +15776,12 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0xFF41,
@@ -15638,6 +15790,14 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -15660,7 +15820,7 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */
- 1276, /* Number of elements */
+ 1292, /* 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 */
@@ -16571,7 +16731,7 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -16915,6 +17075,8 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -16924,6 +17086,12 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -16932,6 +17100,14 @@ static const UV Lowercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -18234,6 +18410,8 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -18243,6 +18421,12 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0xFF41,
@@ -18251,6 +18435,14 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -18268,7 +18460,7 @@ static const I32 Lowercase_Mapping_invmap[] = { /* for EBCDIC 037 */
#if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE))
static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
- 359, /* Number of elements */
+ 379, /* 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 */
@@ -18353,7 +18545,9 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x7FE,
0x859,
0x85C,
- 0x8D3,
+ 0x899,
+ 0x89C,
+ 0x8CF,
0x8D4,
0x8E3,
0x8E4,
@@ -18391,6 +18585,8 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0xB4E,
0xBCD,
0xBCE,
+ 0xC3C,
+ 0xC3D,
0xC4D,
0xC4E,
0xC55,
@@ -18440,7 +18636,7 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x108D,
0x108E,
0x1714,
- 0x1715,
+ 0x1716,
0x1734,
0x1735,
0x17D2,
@@ -18463,6 +18659,10 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x1ABE,
0x1ABF,
0x1AC1,
+ 0x1AC3,
+ 0x1AC5,
+ 0x1ACA,
+ 0x1ACB,
0x1B34,
0x1B35,
0x1B44,
@@ -18492,7 +18692,7 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x1DCD,
0x1DD1,
0x1DF6,
- 0x1DFA,
+ 0x1DFB,
0x1DFC,
0x1DFE,
0x1DFF,
@@ -18549,14 +18749,22 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x10A40,
0x10AE6,
0x10AE7,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F48,
0x10F4B,
0x10F4C,
0x10F4D,
0x10F51,
+ 0x10F83,
+ 0x10F84,
+ 0x10F85,
+ 0x10F86,
0x11046,
0x11047,
+ 0x11070,
+ 0x11071,
0x1107F,
0x11080,
0x110B9,
@@ -18613,6 +18821,8 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x11D46,
0x11D97,
0x11D98,
+ 0x11F41,
+ 0x11F43,
0x16AF0,
0x16AF5,
0x16FF0,
@@ -18627,6 +18837,8 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
0x1D183,
0x1D18A,
0x1D18C,
+ 0x1E4EC,
+ 0x1E4EF,
0x1E8D0,
0x1E8D7,
0x1E94A,
@@ -18636,7 +18848,7 @@ static const UV _Perl_CCC_non0_non230_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
- 1805, /* Number of elements */
+ 1851, /* 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 */
@@ -18708,7 +18920,11 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -18819,6 +19035,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC45,
@@ -18851,6 +19069,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD02,
0xD04,
@@ -18899,7 +19119,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -18954,7 +19174,9 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1360,
0x1712,
0x1715,
+ 0x1716,
0x1732,
+ 0x1734,
0x1735,
0x1752,
0x1754,
@@ -18973,6 +19195,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x180B,
0x180E,
0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -19007,7 +19230,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B05,
@@ -19058,8 +19281,6 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -20101,14 +20322,22 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11001,
0x11002,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x11083,
@@ -20119,6 +20348,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -20154,6 +20385,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -20317,8 +20550,23 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x11EF3,
0x11EF5,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -20337,6 +20585,10 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D166,
0x1D167,
@@ -20374,10 +20626,16 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -20547,6 +20805,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Prepend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_Prepend,
GCB_Extend,
@@ -20659,6 +20921,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_Extend,
@@ -20690,6 +20954,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
@@ -20792,8 +21058,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_SpacingMark,
GCB_Other,
GCB_Extend,
+ GCB_SpacingMark,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -20811,6 +21079,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Control,
+ GCB_Extend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -20898,8 +21167,6 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Extend,
- GCB_Other,
GCB_Control,
GCB_Extend,
GCB_ZWJ,
@@ -21942,6 +22209,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_SpacingMark,
GCB_Extend,
GCB_SpacingMark,
@@ -21949,6 +22220,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_SpacingMark,
@@ -21958,6 +22233,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Prepend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Prepend,
GCB_Other,
GCB_Extend,
@@ -21994,6 +22271,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -22067,7 +22346,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
- GCB_SpacingMark,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
@@ -22156,7 +22435,22 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
+ GCB_Extend,
+ GCB_Prepend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -22177,6 +22471,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Control,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -22221,6 +22519,12 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_ExtPict_XX,
GCB_Other,
GCB_ExtPict_XX,
@@ -22298,7 +22602,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
- 1806, /* Number of elements */
+ 1852, /* 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 */
@@ -22371,7 +22675,11 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -22482,6 +22790,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC45,
@@ -22514,6 +22824,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD02,
0xD04,
@@ -22562,7 +22874,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -22617,7 +22929,9 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1360,
0x1712,
0x1715,
+ 0x1716,
0x1732,
+ 0x1734,
0x1735,
0x1752,
0x1754,
@@ -22636,6 +22950,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x180B,
0x180E,
0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -22670,7 +22985,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B05,
@@ -22721,8 +23036,6 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -23764,14 +24077,22 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11001,
0x11002,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x11083,
@@ -23782,6 +24103,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -23817,6 +24140,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -23980,8 +24305,23 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x11EF3,
0x11EF5,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -24000,6 +24340,10 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D166,
0x1D167,
@@ -24037,10 +24381,16 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -24214,6 +24564,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Prepend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_Prepend,
GCB_Extend,
@@ -24326,6 +24680,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_Extend,
@@ -24357,6 +24713,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
@@ -24459,8 +24817,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_SpacingMark,
GCB_Other,
GCB_Extend,
+ GCB_SpacingMark,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -24478,6 +24838,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Control,
+ GCB_Extend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -24565,8 +24926,6 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Extend,
- GCB_Other,
GCB_Control,
GCB_Extend,
GCB_ZWJ,
@@ -25609,6 +25968,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_SpacingMark,
GCB_Extend,
GCB_SpacingMark,
@@ -25616,6 +25979,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_SpacingMark,
@@ -25625,6 +25992,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Prepend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Prepend,
GCB_Other,
GCB_Extend,
@@ -25661,6 +26030,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -25734,7 +26105,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
- GCB_SpacingMark,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
@@ -25823,7 +26194,22 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
+ GCB_Extend,
+ GCB_Prepend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -25844,6 +26230,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Control,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -25888,6 +26278,12 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_ExtPict_XX,
GCB_Other,
GCB_ExtPict_XX,
@@ -25965,7 +26361,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
- 1806, /* Number of elements */
+ 1852, /* 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 */
@@ -26038,7 +26434,11 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -26149,6 +26549,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC45,
@@ -26181,6 +26583,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD02,
0xD04,
@@ -26229,7 +26633,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -26284,7 +26688,9 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1360,
0x1712,
0x1715,
+ 0x1716,
0x1732,
+ 0x1734,
0x1735,
0x1752,
0x1754,
@@ -26303,6 +26709,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x180B,
0x180E,
0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -26337,7 +26744,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B05,
@@ -26388,8 +26795,6 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -27431,14 +27836,22 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11001,
0x11002,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x11083,
@@ -27449,6 +27862,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -27484,6 +27899,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -27647,8 +28064,23 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x11EF3,
0x11EF5,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -27667,6 +28099,10 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D166,
0x1D167,
@@ -27704,10 +28140,16 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -27881,6 +28323,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Prepend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_Prepend,
GCB_Extend,
@@ -27993,6 +28439,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_Extend,
@@ -28024,6 +28472,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
@@ -28126,8 +28576,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_SpacingMark,
GCB_Other,
GCB_Extend,
+ GCB_SpacingMark,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -28145,6 +28597,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Control,
+ GCB_Extend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -28232,8 +28685,6 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Extend,
- GCB_Other,
GCB_Control,
GCB_Extend,
GCB_ZWJ,
@@ -29276,6 +29727,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_SpacingMark,
GCB_Extend,
GCB_SpacingMark,
@@ -29283,6 +29738,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_SpacingMark,
@@ -29292,6 +29751,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Prepend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Prepend,
GCB_Other,
GCB_Extend,
@@ -29328,6 +29789,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -29401,7 +29864,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
- GCB_SpacingMark,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
@@ -29490,7 +29953,22 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
+ GCB_Extend,
+ GCB_Prepend,
+ GCB_SpacingMark,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Control,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -29511,6 +29989,10 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Control,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -29555,6 +30037,12 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_ExtPict_XX,
GCB_Other,
GCB_ExtPict_XX,
@@ -29629,7 +30117,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */
- 1318, /* Number of elements */
+ 1334, /* 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 */
@@ -30593,7 +31081,7 @@ static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -30924,12 +31412,20 @@ static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -30943,6 +31439,14 @@ static const UV _Perl_IVCF_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -32501,12 +33005,20 @@ static const I32 _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -32520,6 +33032,14 @@ static const I32 _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -32542,7 +33062,7 @@ static const I32 _Perl_IVCF_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */
- 1333, /* Number of elements */
+ 1349, /* 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 */
@@ -33521,7 +34041,7 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -33852,12 +34372,20 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -33871,6 +34399,14 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -35447,12 +35983,20 @@ static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -35466,6 +36010,14 @@ static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -35488,7 +36040,7 @@ static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */
- 1331, /* Number of elements */
+ 1347, /* 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 */
@@ -36465,7 +37017,7 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -36796,12 +37348,20 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -36815,6 +37375,14 @@ static const UV _Perl_IVCF_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -38389,12 +38957,20 @@ static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -38408,6 +38984,14 @@ static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -38427,7 +39011,7 @@ static const I32 _Perl_IVCF_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
- 2416, /* Number of elements */
+ 2539, /* 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 */
@@ -38529,7 +39113,6 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x620,
0x64B,
0x660,
@@ -38576,7 +39159,9 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -38681,6 +39266,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0xBFA,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -38712,6 +39299,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0xCE4,
0xCE6,
0xCF0,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -38760,7 +39349,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF01,
@@ -38850,7 +39439,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x16EB,
0x16EE,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1737,
@@ -38907,7 +39496,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -38919,6 +39508,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1B61,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1B83,
0x1BA1,
@@ -38947,8 +39538,10 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x1E00,
0x1FFD,
0x1FFE,
@@ -39010,6 +39603,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2103,
@@ -39191,6 +39786,17 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E53,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -40376,8 +40982,12 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x10EAB,
0x10EAD,
0x10EAE,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
@@ -40385,12 +40995,16 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x11049,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BE,
0x110C2,
+ 0x110C3,
0x110F0,
0x110FA,
0x11100,
@@ -40429,6 +41043,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1123D,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112A9,
0x112AA,
0x112DF,
@@ -40539,6 +41155,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x11A9E,
0x11AA1,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C2F,
0x11C37,
0x11C38,
@@ -40576,6 +41194,17 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FDD,
0x11FE1,
0x11FFF,
@@ -40599,6 +41228,14 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x13437,
0x13438,
0x13439,
+ 0x1343C,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x145CE,
0x145CF,
0x145D0,
@@ -40606,6 +41243,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16AC0,
+ 0x16ACA,
0x16AF0,
0x16AF5,
0x16AF6,
@@ -40636,9 +41275,13 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -40647,6 +41290,10 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -40683,15 +41330,22 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
0x1E140,
0x1E14A,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -40705,14 +41359,36 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1ECB0,
0x1ECB1,
0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
0x1F100,
0x1F10D,
0x1F110,
0x1F16D,
0x1F170,
0x1F1AD,
+ 0x1F1AE,
0x1F1E6,
0x1F200,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F260,
+ 0x1F266,
+ 0x1F300,
0x1F385,
0x1F386,
0x1F39C,
@@ -40791,10 +41467,22 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1F6C1,
0x1F6CC,
0x1F6CD,
+ 0x1F6D8,
+ 0x1F6DC,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6FD,
0x1F700,
0x1F774,
+ 0x1F777,
+ 0x1F77B,
0x1F780,
0x1F7D5,
+ 0x1F7DA,
+ 0x1F7E0,
+ 0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -40805,6 +41493,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1F888,
0x1F890,
0x1F8AE,
+ 0x1F8B0,
+ 0x1F8B2,
0x1F900,
0x1F90C,
0x1F90D,
@@ -40832,6 +41522,23 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1F9DE,
0x1FA00,
0x1FA54,
+ 0x1FA60,
+ 0x1FA6E,
+ 0x1FA70,
+ 0x1FA7D,
+ 0x1FA80,
+ 0x1FA89,
+ 0x1FA90,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC3,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FBF0,
0x1FBFA,
@@ -40895,10 +41602,11 @@ typedef enum {
LB_Regional_Indicator = 34,
LB_Space = 35,
LB_Break_Symbols = 36,
- LB_Word_Joiner = 37,
- LB_ZWSpace = 38,
- LB_ZWJ = 39,
- LB_East_Asian_CP = 40
+ LB_Unassigned_Extended_Pictographic_Ideographic = 37,
+ LB_Word_Joiner = 38,
+ LB_ZWSpace = 39,
+ LB_ZWJ = 40,
+ LB_East_Asian_CP = 41
} LB_enum;
static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
@@ -40999,7 +41707,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Combining_Mark,
LB_Exclamation,
LB_Combining_Mark,
- LB_Alphabetic,
LB_Exclamation,
LB_Alphabetic,
LB_Combining_Mark,
@@ -41058,6 +41765,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Numeric,
LB_Alphabetic,
@@ -41162,6 +41871,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Break_Before,
@@ -41197,6 +41908,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Postfix_Numeric,
@@ -41350,7 +42063,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Glue,
- LB_Alphabetic,
+ LB_Combining_Mark,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -41390,6 +42103,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
@@ -41418,7 +42133,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
- LB_Alphabetic,
+ LB_Glue,
+ LB_Combining_Mark,
+ LB_Glue,
LB_Combining_Mark,
LB_Alphabetic,
LB_Break_Before,
@@ -41458,7 +42175,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Nonstarter,
LB_Alphabetic,
LB_Break_After,
- LB_Alphabetic,
+ LB_Postfix_Numeric,
LB_Break_After,
LB_Alphabetic,
LB_Break_After,
@@ -41481,6 +42198,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Prefix_Numeric,
LB_Postfix_Numeric,
LB_Prefix_Numeric,
+ LB_Postfix_Numeric,
+ LB_Prefix_Numeric,
LB_Combining_Mark,
LB_Alphabetic,
LB_Postfix_Numeric,
@@ -41662,6 +42381,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Exclamation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Break_After,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -42852,15 +43582,23 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Alphabetic,
LB_Numeric,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Break_After,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
@@ -42900,6 +43638,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Combining_Mark,
@@ -43010,6 +43750,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Break_Before,
LB_Break_After,
LB_Alphabetic,
+ LB_Break_Before,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
@@ -43047,6 +43789,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Break_After,
+ LB_Ideographic,
+ LB_Numeric,
+ LB_Alphabetic,
LB_Postfix_Numeric,
LB_Alphabetic,
LB_Break_After,
@@ -43069,6 +43822,14 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Glue,
LB_Open_Punctuation,
LB_Close_Punctuation,
+ LB_Glue,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Open_Punctuation,
LB_Close_Punctuation,
@@ -43077,6 +43838,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Break_After,
LB_Alphabetic,
@@ -43112,6 +43875,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Nonstarter,
LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
@@ -43128,6 +43895,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -43156,14 +43927,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Numeric,
LB_Alphabetic,
LB_Prefix_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
@@ -43176,14 +43954,36 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Postfix_Numeric,
LB_Alphabetic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Regional_Indicator,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
@@ -43262,20 +44062,34 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_E_Base,
LB_Ideographic,
@@ -43302,11 +44116,28 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_E_Base,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -43332,7 +44163,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
- 2428, /* Number of elements */
+ 2551, /* 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 */
@@ -43446,7 +44277,6 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x620,
0x64B,
0x660,
@@ -43493,7 +44323,9 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -43598,6 +44430,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0xBFA,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -43629,6 +44463,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0xCE4,
0xCE6,
0xCF0,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -43677,7 +44513,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF01,
@@ -43767,7 +44603,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x16EB,
0x16EE,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1737,
@@ -43824,7 +44660,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -43836,6 +44672,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1B61,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1B83,
0x1BA1,
@@ -43864,8 +44702,10 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x1E00,
0x1FFD,
0x1FFE,
@@ -43927,6 +44767,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2103,
@@ -44108,6 +44950,17 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E53,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -45293,8 +46146,12 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x10EAB,
0x10EAD,
0x10EAE,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
@@ -45302,12 +46159,16 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x11049,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BE,
0x110C2,
+ 0x110C3,
0x110F0,
0x110FA,
0x11100,
@@ -45346,6 +46207,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1123D,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112A9,
0x112AA,
0x112DF,
@@ -45456,6 +46319,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x11A9E,
0x11AA1,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C2F,
0x11C37,
0x11C38,
@@ -45493,6 +46358,17 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FDD,
0x11FE1,
0x11FFF,
@@ -45516,6 +46392,14 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x13437,
0x13438,
0x13439,
+ 0x1343C,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x145CE,
0x145CF,
0x145D0,
@@ -45523,6 +46407,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16AC0,
+ 0x16ACA,
0x16AF0,
0x16AF5,
0x16AF6,
@@ -45553,9 +46439,13 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -45564,6 +46454,10 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -45600,15 +46494,22 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
0x1E140,
0x1E14A,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -45622,14 +46523,36 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1ECB0,
0x1ECB1,
0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
0x1F100,
0x1F10D,
0x1F110,
0x1F16D,
0x1F170,
0x1F1AD,
+ 0x1F1AE,
0x1F1E6,
0x1F200,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F260,
+ 0x1F266,
+ 0x1F300,
0x1F385,
0x1F386,
0x1F39C,
@@ -45708,10 +46631,22 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1F6C1,
0x1F6CC,
0x1F6CD,
+ 0x1F6D8,
+ 0x1F6DC,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6FD,
0x1F700,
0x1F774,
+ 0x1F777,
+ 0x1F77B,
0x1F780,
0x1F7D5,
+ 0x1F7DA,
+ 0x1F7E0,
+ 0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -45722,6 +46657,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1F888,
0x1F890,
0x1F8AE,
+ 0x1F8B0,
+ 0x1F8B2,
0x1F900,
0x1F90C,
0x1F90D,
@@ -45749,6 +46686,23 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1F9DE,
0x1FA00,
0x1FA54,
+ 0x1FA60,
+ 0x1FA6E,
+ 0x1FA70,
+ 0x1FA7D,
+ 0x1FA80,
+ 0x1FA89,
+ 0x1FA90,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC3,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FBF0,
0x1FBFA,
@@ -45815,10 +46769,11 @@ typedef enum {
LB_Regional_Indicator = 34,
LB_Space = 35,
LB_Break_Symbols = 36,
- LB_Word_Joiner = 37,
- LB_ZWSpace = 38,
- LB_ZWJ = 39,
- LB_East_Asian_CP = 40
+ LB_Unassigned_Extended_Pictographic_Ideographic = 37,
+ LB_Word_Joiner = 38,
+ LB_ZWSpace = 39,
+ LB_ZWJ = 40,
+ LB_East_Asian_CP = 41
} LB_enum;
static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
@@ -45931,7 +46886,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Combining_Mark,
LB_Exclamation,
LB_Combining_Mark,
- LB_Alphabetic,
LB_Exclamation,
LB_Alphabetic,
LB_Combining_Mark,
@@ -45990,6 +46944,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Numeric,
LB_Alphabetic,
@@ -46094,6 +47050,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Break_Before,
@@ -46129,6 +47087,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Postfix_Numeric,
@@ -46282,7 +47242,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Glue,
- LB_Alphabetic,
+ LB_Combining_Mark,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -46322,6 +47282,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
@@ -46350,7 +47312,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
- LB_Alphabetic,
+ LB_Glue,
+ LB_Combining_Mark,
+ LB_Glue,
LB_Combining_Mark,
LB_Alphabetic,
LB_Break_Before,
@@ -46390,7 +47354,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Nonstarter,
LB_Alphabetic,
LB_Break_After,
- LB_Alphabetic,
+ LB_Postfix_Numeric,
LB_Break_After,
LB_Alphabetic,
LB_Break_After,
@@ -46413,6 +47377,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Prefix_Numeric,
LB_Postfix_Numeric,
LB_Prefix_Numeric,
+ LB_Postfix_Numeric,
+ LB_Prefix_Numeric,
LB_Combining_Mark,
LB_Alphabetic,
LB_Postfix_Numeric,
@@ -46594,6 +47560,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Exclamation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Break_After,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -47784,15 +48761,23 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Alphabetic,
LB_Numeric,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Break_After,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
@@ -47832,6 +48817,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Combining_Mark,
@@ -47942,6 +48929,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Break_Before,
LB_Break_After,
LB_Alphabetic,
+ LB_Break_Before,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
@@ -47979,6 +48968,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Break_After,
+ LB_Ideographic,
+ LB_Numeric,
+ LB_Alphabetic,
LB_Postfix_Numeric,
LB_Alphabetic,
LB_Break_After,
@@ -48001,6 +49001,14 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Glue,
LB_Open_Punctuation,
LB_Close_Punctuation,
+ LB_Glue,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Open_Punctuation,
LB_Close_Punctuation,
@@ -48009,6 +49017,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Break_After,
LB_Alphabetic,
@@ -48044,6 +49054,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Nonstarter,
LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
@@ -48060,6 +49074,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -48088,14 +49106,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Numeric,
LB_Alphabetic,
LB_Prefix_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
@@ -48108,14 +49133,36 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Postfix_Numeric,
LB_Alphabetic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Regional_Indicator,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
@@ -48194,20 +49241,34 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_E_Base,
LB_Ideographic,
@@ -48234,11 +49295,28 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_E_Base,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -48264,7 +49342,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
- 2428, /* Number of elements */
+ 2551, /* 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 */
@@ -48378,7 +49456,6 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x620,
0x64B,
0x660,
@@ -48425,7 +49502,9 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -48530,6 +49609,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0xBFA,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -48561,6 +49642,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0xCE4,
0xCE6,
0xCF0,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -48609,7 +49692,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF01,
@@ -48699,7 +49782,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x16EB,
0x16EE,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1737,
@@ -48756,7 +49839,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -48768,6 +49851,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1B61,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1B83,
0x1BA1,
@@ -48796,8 +49881,10 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x1E00,
0x1FFD,
0x1FFE,
@@ -48859,6 +49946,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2103,
@@ -49040,6 +50129,17 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E53,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -50225,8 +51325,12 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x10EAB,
0x10EAD,
0x10EAE,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
@@ -50234,12 +51338,16 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x11049,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BE,
0x110C2,
+ 0x110C3,
0x110F0,
0x110FA,
0x11100,
@@ -50278,6 +51386,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1123D,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112A9,
0x112AA,
0x112DF,
@@ -50388,6 +51498,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x11A9E,
0x11AA1,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C2F,
0x11C37,
0x11C38,
@@ -50425,6 +51537,17 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FDD,
0x11FE1,
0x11FFF,
@@ -50448,6 +51571,14 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x13437,
0x13438,
0x13439,
+ 0x1343C,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x145CE,
0x145CF,
0x145D0,
@@ -50455,6 +51586,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16AC0,
+ 0x16ACA,
0x16AF0,
0x16AF5,
0x16AF6,
@@ -50485,9 +51618,13 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -50496,6 +51633,10 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -50532,15 +51673,22 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
0x1E140,
0x1E14A,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -50554,14 +51702,36 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1ECB0,
0x1ECB1,
0x1F000,
+ 0x1F02C,
+ 0x1F030,
+ 0x1F094,
+ 0x1F0A0,
+ 0x1F0AF,
+ 0x1F0B1,
+ 0x1F0C0,
+ 0x1F0C1,
+ 0x1F0D0,
+ 0x1F0D1,
+ 0x1F0F6,
0x1F100,
0x1F10D,
0x1F110,
0x1F16D,
0x1F170,
0x1F1AD,
+ 0x1F1AE,
0x1F1E6,
0x1F200,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F260,
+ 0x1F266,
+ 0x1F300,
0x1F385,
0x1F386,
0x1F39C,
@@ -50640,10 +51810,22 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1F6C1,
0x1F6CC,
0x1F6CD,
+ 0x1F6D8,
+ 0x1F6DC,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6FD,
0x1F700,
0x1F774,
+ 0x1F777,
+ 0x1F77B,
0x1F780,
0x1F7D5,
+ 0x1F7DA,
+ 0x1F7E0,
+ 0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -50654,6 +51836,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1F888,
0x1F890,
0x1F8AE,
+ 0x1F8B0,
+ 0x1F8B2,
0x1F900,
0x1F90C,
0x1F90D,
@@ -50681,6 +51865,23 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1F9DE,
0x1FA00,
0x1FA54,
+ 0x1FA60,
+ 0x1FA6E,
+ 0x1FA70,
+ 0x1FA7D,
+ 0x1FA80,
+ 0x1FA89,
+ 0x1FA90,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC3,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FBF0,
0x1FBFA,
@@ -50747,10 +51948,11 @@ typedef enum {
LB_Regional_Indicator = 34,
LB_Space = 35,
LB_Break_Symbols = 36,
- LB_Word_Joiner = 37,
- LB_ZWSpace = 38,
- LB_ZWJ = 39,
- LB_East_Asian_CP = 40
+ LB_Unassigned_Extended_Pictographic_Ideographic = 37,
+ LB_Word_Joiner = 38,
+ LB_ZWSpace = 39,
+ LB_ZWJ = 40,
+ LB_East_Asian_CP = 41
} LB_enum;
static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
@@ -50863,7 +52065,6 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Combining_Mark,
LB_Exclamation,
LB_Combining_Mark,
- LB_Alphabetic,
LB_Exclamation,
LB_Alphabetic,
LB_Combining_Mark,
@@ -50922,6 +52123,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Numeric,
LB_Alphabetic,
@@ -51026,6 +52229,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Break_Before,
@@ -51061,6 +52266,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Postfix_Numeric,
@@ -51214,7 +52421,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Glue,
- LB_Alphabetic,
+ LB_Combining_Mark,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -51254,6 +52461,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
@@ -51282,7 +52491,9 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
- LB_Alphabetic,
+ LB_Glue,
+ LB_Combining_Mark,
+ LB_Glue,
LB_Combining_Mark,
LB_Alphabetic,
LB_Break_Before,
@@ -51322,7 +52533,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Nonstarter,
LB_Alphabetic,
LB_Break_After,
- LB_Alphabetic,
+ LB_Postfix_Numeric,
LB_Break_After,
LB_Alphabetic,
LB_Break_After,
@@ -51345,6 +52556,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Prefix_Numeric,
LB_Postfix_Numeric,
LB_Prefix_Numeric,
+ LB_Postfix_Numeric,
+ LB_Prefix_Numeric,
LB_Combining_Mark,
LB_Alphabetic,
LB_Postfix_Numeric,
@@ -51526,6 +52739,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Exclamation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Break_After,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -52716,15 +53940,23 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Alphabetic,
LB_Numeric,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Break_After,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
@@ -52764,6 +53996,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Combining_Mark,
@@ -52874,6 +54108,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Break_Before,
LB_Break_After,
LB_Alphabetic,
+ LB_Break_Before,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
@@ -52911,6 +54147,17 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Break_After,
+ LB_Ideographic,
+ LB_Numeric,
+ LB_Alphabetic,
LB_Postfix_Numeric,
LB_Alphabetic,
LB_Break_After,
@@ -52933,6 +54180,14 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Glue,
LB_Open_Punctuation,
LB_Close_Punctuation,
+ LB_Glue,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Open_Punctuation,
+ LB_Close_Punctuation,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Open_Punctuation,
LB_Close_Punctuation,
@@ -52941,6 +54196,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Break_After,
LB_Alphabetic,
@@ -52976,6 +54233,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Nonstarter,
LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
@@ -52992,6 +54253,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -53020,14 +54285,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Numeric,
LB_Alphabetic,
LB_Prefix_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
@@ -53040,14 +54312,36 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Postfix_Numeric,
LB_Alphabetic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Regional_Indicator,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
@@ -53126,20 +54420,34 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_E_Base,
LB_Ideographic,
@@ -53166,11 +54474,28 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
+ LB_E_Base,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Unassigned_Extended_Pictographic_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -53193,7 +54518,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
- 3146, /* Number of elements */
+ 3262, /* 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 */
@@ -53839,7 +55164,6 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x620,
0x64B,
0x660,
@@ -53907,11 +55231,15 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -54105,6 +55433,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
+ 0xC3C,
0xC3D,
0xC3E,
0xC45,
@@ -54116,6 +55445,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC64,
@@ -54144,7 +55475,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -54153,6 +55484,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xCF0,
0xCF1,
0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD0D,
@@ -54233,7 +55565,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -54297,6 +55629,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x10D0,
0x10FB,
0x10FC,
+ 0x10FD,
0x1249,
0x124A,
0x124E,
@@ -54353,11 +55686,9 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1732,
0x1735,
0x1737,
@@ -54436,12 +55767,12 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1AA8,
0x1AAC,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B5C,
@@ -54449,6 +55780,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1B60,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1B83,
0x1BA1,
@@ -54487,8 +55820,6 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1CFB,
0x1D00,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1E01,
0x1E02,
@@ -54897,9 +56228,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x29FC,
0x29FE,
0x2C00,
- 0x2C2F,
0x2C30,
- 0x2C5F,
0x2C60,
0x2C61,
0x2C62,
@@ -55068,6 +56397,9 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x2E3D,
0x2E42,
0x2E43,
+ 0x2E53,
+ 0x2E55,
+ 0x2E5D,
0x3000,
0x3001,
0x3002,
@@ -55107,8 +56439,6 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -55346,6 +56676,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -55353,6 +56684,18 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
0xA7F5,
0xA7F6,
0xA7F7,
@@ -55459,7 +56802,6 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
0xAB6A,
0xAB70,
0xABC0,
@@ -55633,12 +56975,36 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -55719,6 +57085,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F1D,
0x10F27,
@@ -55728,6 +57095,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x10F51,
0x10F55,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -55739,6 +57110,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x11049,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x1107F,
0x11083,
0x110B0,
@@ -55746,6 +57121,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x110BD,
0x110BE,
0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -55794,6 +57170,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1123D,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -55894,6 +57272,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1173A,
0x1173C,
0x1173F,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x1183B,
@@ -55955,7 +57335,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x11A9B,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -56009,6 +57389,19 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x11EF3,
0x11EF7,
0x11EF9,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -56017,10 +57410,14 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -56031,6 +57428,9 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -56076,10 +57476,20 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -56096,6 +57506,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -56213,6 +57627,12 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -56223,6 +57643,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -56232,10 +57656,25 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -56324,9 +57763,9 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -56337,6 +57776,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -57014,7 +58455,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Extend,
SB_Other,
SB_Format,
- SB_Other,
SB_STerm,
SB_OLetter,
SB_Extend,
@@ -57087,6 +58527,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
SB_Extend,
SB_Format,
SB_Extend,
@@ -57281,6 +58725,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Extend,
SB_OLetter,
SB_Extend,
SB_Other,
@@ -57293,6 +58738,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_Numeric,
@@ -57328,6 +58775,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Numeric,
SB_Other,
SB_OLetter,
+ SB_Extend,
SB_Other,
SB_Extend,
SB_OLetter,
@@ -57472,6 +58920,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Lower,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -57529,8 +58978,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_OLetter,
SB_Other,
SB_OLetter,
- SB_Other,
- SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -57564,7 +59011,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Extend,
SB_Format,
- SB_Other,
+ SB_Extend,
SB_Numeric,
SB_Other,
SB_OLetter,
@@ -57625,6 +59072,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_STerm,
+ SB_Other,
SB_Extend,
SB_OLetter,
SB_Extend,
@@ -57663,8 +59112,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Lower,
SB_Extend,
- SB_Other,
- SB_Extend,
SB_Upper,
SB_Lower,
SB_Upper,
@@ -58073,9 +59520,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Close,
SB_Other,
SB_Upper,
- SB_Other,
SB_Lower,
- SB_Other,
SB_Upper,
SB_Lower,
SB_Upper,
@@ -58244,6 +59689,9 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Close,
SB_Other,
+ SB_STerm,
+ SB_Close,
+ SB_Other,
SB_Sp,
SB_SContinue,
SB_STerm,
@@ -58286,8 +59734,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
- SB_OLetter,
- SB_Other,
SB_STerm,
SB_OLetter,
SB_Other,
@@ -58521,14 +59967,27 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
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_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
SB_Upper,
SB_Lower,
SB_Upper,
SB_Lower,
SB_Other,
+ SB_Lower,
SB_Upper,
SB_Lower,
SB_OLetter,
@@ -58635,7 +60094,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Lower,
SB_Other,
SB_Lower,
- SB_OLetter,
SB_Other,
SB_Lower,
SB_OLetter,
@@ -58809,11 +60267,35 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ 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_OLetter,
SB_Other,
+ SB_Lower,
SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
SB_Other,
SB_OLetter,
SB_Other,
@@ -58895,6 +60377,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Extend,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -58905,6 +60388,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_STerm,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -58914,6 +60401,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_STerm,
SB_Other,
SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_Extend,
SB_OLetter,
@@ -58921,6 +60412,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Format,
SB_STerm,
+ SB_Extend,
SB_Other,
SB_Format,
SB_Other,
@@ -58969,6 +60461,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_STerm,
SB_Other,
SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_Other,
SB_OLetter,
SB_Other,
@@ -59071,6 +60565,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_STerm,
SB_Other,
SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_Upper,
@@ -59185,9 +60681,18 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Extend,
SB_STerm,
SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
SB_Other,
SB_OLetter,
SB_Other,
@@ -59195,7 +60700,15 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Format,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_Other,
SB_OLetter,
SB_Other,
@@ -59206,6 +60719,9 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Numeric,
SB_Other,
SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
SB_Other,
SB_OLetter,
SB_Other,
@@ -59268,6 +60784,16 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_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,
@@ -59275,6 +60801,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Extend,
SB_Other,
SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
SB_Format,
SB_Extend,
SB_Other,
@@ -59389,6 +60919,14 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
SB_Extend,
SB_Other,
SB_Extend,
@@ -59397,6 +60935,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Lower,
+ SB_Other,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -59410,10 +60950,25 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
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_Extend,
SB_Other,
SB_Upper,
@@ -59513,6 +61068,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
SB_Format,
SB_Other,
SB_Extend,
@@ -59533,7 +61090,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
- 3170, /* Number of elements */
+ 3286, /* 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 */
@@ -60203,7 +61760,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x620,
0x64B,
0x660,
@@ -60271,11 +61827,15 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -60469,6 +62029,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
+ 0xC3C,
0xC3D,
0xC3E,
0xC45,
@@ -60480,6 +62041,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC64,
@@ -60508,7 +62071,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -60517,6 +62080,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xCF0,
0xCF1,
0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD0D,
@@ -60597,7 +62161,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -60661,6 +62225,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x10D0,
0x10FB,
0x10FC,
+ 0x10FD,
0x1249,
0x124A,
0x124E,
@@ -60717,11 +62282,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1732,
0x1735,
0x1737,
@@ -60800,12 +62363,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1AA8,
0x1AAC,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B5C,
@@ -60813,6 +62376,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1B60,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1B83,
0x1BA1,
@@ -60851,8 +62416,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1CFB,
0x1D00,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1E01,
0x1E02,
@@ -61261,9 +62824,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x29FC,
0x29FE,
0x2C00,
- 0x2C2F,
0x2C30,
- 0x2C5F,
0x2C60,
0x2C61,
0x2C62,
@@ -61432,6 +62993,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x2E3D,
0x2E42,
0x2E43,
+ 0x2E53,
+ 0x2E55,
+ 0x2E5D,
0x3000,
0x3001,
0x3002,
@@ -61471,8 +63035,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -61710,6 +63272,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -61717,6 +63280,18 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
0xA7F5,
0xA7F6,
0xA7F7,
@@ -61823,7 +63398,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
0xAB6A,
0xAB70,
0xABC0,
@@ -61997,12 +63571,36 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -62083,6 +63681,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F1D,
0x10F27,
@@ -62092,6 +63691,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x10F51,
0x10F55,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -62103,6 +63706,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x11049,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x1107F,
0x11083,
0x110B0,
@@ -62110,6 +63717,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x110BD,
0x110BE,
0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -62158,6 +63766,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1123D,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -62258,6 +63868,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1173A,
0x1173C,
0x1173F,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x1183B,
@@ -62319,7 +63931,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x11A9B,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -62373,6 +63985,19 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x11EF3,
0x11EF7,
0x11EF9,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -62381,10 +64006,14 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -62395,6 +64024,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -62440,10 +64072,20 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -62460,6 +64102,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -62577,6 +64223,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -62587,6 +64239,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -62596,10 +64252,25 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -62688,9 +64359,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -62701,6 +64372,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -63405,7 +65078,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Extend,
SB_Other,
SB_Format,
- SB_Other,
SB_STerm,
SB_OLetter,
SB_Extend,
@@ -63478,6 +65150,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
SB_Extend,
SB_Format,
SB_Extend,
@@ -63672,6 +65348,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Extend,
SB_OLetter,
SB_Extend,
SB_Other,
@@ -63684,6 +65361,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_Numeric,
@@ -63719,6 +65398,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Numeric,
SB_Other,
SB_OLetter,
+ SB_Extend,
SB_Other,
SB_Extend,
SB_OLetter,
@@ -63863,6 +65543,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Lower,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -63920,8 +65601,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_OLetter,
SB_Other,
SB_OLetter,
- SB_Other,
- SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -63955,7 +65634,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Extend,
SB_Format,
- SB_Other,
+ SB_Extend,
SB_Numeric,
SB_Other,
SB_OLetter,
@@ -64016,6 +65695,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_STerm,
+ SB_Other,
SB_Extend,
SB_OLetter,
SB_Extend,
@@ -64054,8 +65735,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Lower,
SB_Extend,
- SB_Other,
- SB_Extend,
SB_Upper,
SB_Lower,
SB_Upper,
@@ -64464,9 +66143,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Close,
SB_Other,
SB_Upper,
- SB_Other,
SB_Lower,
- SB_Other,
SB_Upper,
SB_Lower,
SB_Upper,
@@ -64635,6 +66312,9 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Close,
SB_Other,
+ SB_STerm,
+ SB_Close,
+ SB_Other,
SB_Sp,
SB_SContinue,
SB_STerm,
@@ -64677,8 +66357,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
- SB_OLetter,
- SB_Other,
SB_STerm,
SB_OLetter,
SB_Other,
@@ -64912,14 +66590,27 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
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_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
SB_Upper,
SB_Lower,
SB_Upper,
SB_Lower,
SB_Other,
+ SB_Lower,
SB_Upper,
SB_Lower,
SB_OLetter,
@@ -65026,7 +66717,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Lower,
SB_Other,
SB_Lower,
- SB_OLetter,
SB_Other,
SB_Lower,
SB_OLetter,
@@ -65200,11 +66890,35 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ 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_OLetter,
SB_Other,
+ SB_Lower,
SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
SB_Other,
SB_OLetter,
SB_Other,
@@ -65286,6 +67000,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Extend,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -65296,6 +67011,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_STerm,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -65305,6 +67024,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_STerm,
SB_Other,
SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_Extend,
SB_OLetter,
@@ -65312,6 +67035,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Format,
SB_STerm,
+ SB_Extend,
SB_Other,
SB_Format,
SB_Other,
@@ -65360,6 +67084,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_STerm,
SB_Other,
SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_Other,
SB_OLetter,
SB_Other,
@@ -65462,6 +67188,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_STerm,
SB_Other,
SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_Upper,
@@ -65576,9 +67304,20 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Extend,
SB_STerm,
SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -65586,7 +67325,13 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Format,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_Other,
SB_OLetter,
SB_Other,
@@ -65597,6 +67342,9 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Numeric,
SB_Other,
SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
SB_Other,
SB_OLetter,
SB_Other,
@@ -65659,6 +67407,16 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_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,
@@ -65666,6 +67424,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Extend,
SB_Other,
SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
SB_Format,
SB_Extend,
SB_Other,
@@ -65780,6 +67542,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
SB_Extend,
SB_Other,
SB_Extend,
@@ -65790,6 +67558,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_Extend,
@@ -65801,10 +67573,25 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
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_Extend,
SB_Other,
SB_Upper,
@@ -65904,6 +67691,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
SB_Format,
SB_Other,
SB_Extend,
@@ -65924,7 +67713,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
- 3166, /* Number of elements */
+ 3282, /* 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 */
@@ -66590,7 +68379,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x620,
0x64B,
0x660,
@@ -66658,11 +68446,15 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -66856,6 +68648,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
+ 0xC3C,
0xC3D,
0xC3E,
0xC45,
@@ -66867,6 +68660,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC64,
@@ -66895,7 +68690,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -66904,6 +68699,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xCF0,
0xCF1,
0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD0D,
@@ -66984,7 +68780,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -67048,6 +68844,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x10D0,
0x10FB,
0x10FC,
+ 0x10FD,
0x1249,
0x124A,
0x124E,
@@ -67104,11 +68901,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1732,
0x1735,
0x1737,
@@ -67187,12 +68982,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1AA8,
0x1AAC,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B5C,
@@ -67200,6 +68995,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1B60,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1B83,
0x1BA1,
@@ -67238,8 +69035,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1CFB,
0x1D00,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1E01,
0x1E02,
@@ -67648,9 +69443,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x29FC,
0x29FE,
0x2C00,
- 0x2C2F,
0x2C30,
- 0x2C5F,
0x2C60,
0x2C61,
0x2C62,
@@ -67819,6 +69612,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x2E3D,
0x2E42,
0x2E43,
+ 0x2E53,
+ 0x2E55,
+ 0x2E5D,
0x3000,
0x3001,
0x3002,
@@ -67858,8 +69654,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -68097,6 +69891,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -68104,6 +69899,18 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
0xA7F5,
0xA7F6,
0xA7F7,
@@ -68210,7 +70017,6 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
0xAB6A,
0xAB70,
0xABC0,
@@ -68384,12 +70190,36 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -68470,6 +70300,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F1D,
0x10F27,
@@ -68479,6 +70310,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x10F51,
0x10F55,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -68490,6 +70325,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x11049,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x1107F,
0x11083,
0x110B0,
@@ -68497,6 +70336,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x110BD,
0x110BE,
0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -68545,6 +70385,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1123D,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -68645,6 +70487,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1173A,
0x1173C,
0x1173F,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x1183B,
@@ -68706,7 +70550,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x11A9B,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -68760,6 +70604,19 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x11EF3,
0x11EF7,
0x11EF9,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -68768,10 +70625,14 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -68782,6 +70643,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -68827,10 +70691,20 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -68847,6 +70721,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -68964,6 +70842,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -68974,6 +70858,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -68983,10 +70871,25 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -69075,9 +70978,9 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -69088,6 +70991,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -69788,7 +71693,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Extend,
SB_Other,
SB_Format,
- SB_Other,
SB_STerm,
SB_OLetter,
SB_Extend,
@@ -69861,6 +71765,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Format,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
SB_Extend,
SB_Format,
SB_Extend,
@@ -70055,6 +71963,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Extend,
SB_OLetter,
SB_Extend,
SB_Other,
@@ -70067,6 +71976,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_Numeric,
@@ -70102,6 +72013,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Numeric,
SB_Other,
SB_OLetter,
+ SB_Extend,
SB_Other,
SB_Extend,
SB_OLetter,
@@ -70246,6 +72158,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Lower,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -70303,8 +72216,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_OLetter,
SB_Other,
SB_OLetter,
- SB_Other,
- SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -70338,7 +72249,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Extend,
SB_Format,
- SB_Other,
+ SB_Extend,
SB_Numeric,
SB_Other,
SB_OLetter,
@@ -70399,6 +72310,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_STerm,
+ SB_Other,
SB_Extend,
SB_OLetter,
SB_Extend,
@@ -70437,8 +72350,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Lower,
SB_Extend,
- SB_Other,
- SB_Extend,
SB_Upper,
SB_Lower,
SB_Upper,
@@ -70847,9 +72758,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Close,
SB_Other,
SB_Upper,
- SB_Other,
SB_Lower,
- SB_Other,
SB_Upper,
SB_Lower,
SB_Upper,
@@ -71018,6 +72927,9 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Close,
SB_Other,
+ SB_STerm,
+ SB_Close,
+ SB_Other,
SB_Sp,
SB_SContinue,
SB_STerm,
@@ -71060,8 +72972,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
- SB_OLetter,
- SB_Other,
SB_STerm,
SB_OLetter,
SB_Other,
@@ -71295,14 +73205,27 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
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_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
SB_Upper,
SB_Lower,
SB_Upper,
SB_Lower,
SB_Other,
+ SB_Lower,
SB_Upper,
SB_Lower,
SB_OLetter,
@@ -71409,7 +73332,6 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Lower,
SB_Other,
SB_Lower,
- SB_OLetter,
SB_Other,
SB_Lower,
SB_OLetter,
@@ -71583,12 +73505,36 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Upper,
+ SB_Other,
+ 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_OLetter,
SB_Other,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -71669,6 +73615,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_Extend,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -71679,6 +73626,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_STerm,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -71688,6 +73639,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_STerm,
SB_Other,
SB_Numeric,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_Extend,
SB_OLetter,
@@ -71695,6 +73650,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Format,
SB_STerm,
+ SB_Extend,
SB_Other,
SB_Format,
SB_Other,
@@ -71743,6 +73699,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_STerm,
SB_Other,
SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_Other,
SB_OLetter,
SB_Other,
@@ -71845,6 +73803,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_STerm,
SB_Other,
SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_Upper,
@@ -71959,9 +73919,18 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Extend,
SB_STerm,
SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
SB_Other,
SB_OLetter,
SB_Other,
@@ -71969,7 +73938,15 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Format,
+ SB_Extend,
+ SB_OLetter,
+ SB_Extend,
SB_Other,
SB_OLetter,
SB_Other,
@@ -71980,6 +73957,9 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Numeric,
SB_Other,
SB_STerm,
+ SB_OLetter,
+ SB_Other,
+ SB_Numeric,
SB_Other,
SB_OLetter,
SB_Other,
@@ -72042,6 +74022,16 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_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,
@@ -72049,6 +74039,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Extend,
SB_Other,
SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
SB_Format,
SB_Extend,
SB_Other,
@@ -72163,6 +74157,14 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Lower,
+ SB_OLetter,
+ SB_Lower,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
SB_Extend,
SB_Other,
SB_Extend,
@@ -72171,6 +74173,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Lower,
+ SB_Other,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -72184,10 +74188,25 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
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_Extend,
SB_Other,
SB_Upper,
@@ -72287,6 +74306,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
SB_Format,
SB_Other,
SB_Extend,
@@ -72304,7 +74325,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
- 1673, /* Number of elements */
+ 1750, /* 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 */
@@ -72381,7 +74402,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x61F,
0x620,
0x640,
@@ -72417,11 +74437,11 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8E2,
0x8E3,
0x900,
@@ -72593,7 +74613,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -72603,6 +74623,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -72626,14 +74648,14 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -72694,7 +74716,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -72774,9 +74796,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
+ 0x1716,
+ 0x171F,
0x1720,
0x1735,
0x1737,
@@ -72799,8 +74820,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1804,
0x1805,
0x1806,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -72843,11 +74862,11 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BC0,
0x1BF4,
@@ -72959,7 +74978,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F0,
0x20F1,
@@ -72987,9 +75006,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x2B96,
0x2B97,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
0x2C60,
0x2C80,
0x2CF4,
@@ -73027,7 +75043,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x2E00,
0x2E43,
0x2E44,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -73099,7 +75115,6 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
0xA000,
0xA48D,
0xA490,
@@ -73117,10 +75132,14 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xA82D,
0xA830,
@@ -73215,14 +75234,15 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0xFB45,
0xFB46,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
0xFDF2,
0xFDF3,
@@ -73288,6 +75308,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x10080,
0x100FB,
0x10100,
+ 0x10102,
0x10103,
0x10107,
0x10134,
@@ -73337,12 +75358,33 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x10564,
0x1056F,
0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -73402,6 +75444,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x10AC0,
0x10AE7,
0x10AEB,
+ 0x10AF2,
+ 0x10AF3,
0x10AF7,
0x10B00,
0x10B36,
@@ -73437,10 +75481,13 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x10EAE,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -73448,10 +75495,10 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x11080,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -73471,7 +75518,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -73539,7 +75586,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -73547,7 +75594,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -73579,8 +75626,11 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x11A48,
0x11A50,
0x11AA3,
+ 0x11AB0,
0x11AC0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -73623,6 +75673,12 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -73640,10 +75696,10 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -73654,6 +75710,9 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -73690,11 +75749,22 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
- 0x1B11F,
+ 0x1B120,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -73709,6 +75779,12 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -73722,9 +75798,11 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -73779,6 +75857,10 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -73789,6 +75871,10 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -73797,10 +75883,22 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -73911,16 +76009,18 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -73934,27 +76034,23 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -73962,9 +76058,9 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -73975,6 +76071,8 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -74023,138 +76121,145 @@ typedef enum {
SCX_Coptic = 26,
SCX_Cuneiform = 27,
SCX_Cypriot = 28,
- SCX_Cyrillic = 29,
- SCX_Deseret = 30,
- SCX_Devanagari = 31,
- SCX_Dives_Akuru = 32,
- SCX_Dogra = 33,
- SCX_Duployan = 34,
- SCX_Egyptian_Hieroglyphs = 35,
- SCX_Elbasan = 36,
- SCX_Elymaic = 37,
- SCX_Ethiopic = 38,
- SCX_Georgian = 39,
- SCX_Glagolitic = 40,
- SCX_Gothic = 41,
- SCX_Grantha = 42,
- SCX_Greek = 43,
- SCX_Gujarati = 44,
- SCX_Gunjala_Gondi = 45,
- SCX_Gurmukhi = 46,
- SCX_Han = 47,
- SCX_Hanb = 48,
- SCX_Hangul = 49,
- SCX_Hanifi_Rohingya = 50,
- SCX_Hanunoo = 51,
- SCX_Hatran = 52,
- SCX_Hebrew = 53,
- SCX_Hiragana = 54,
- SCX_Imperial_Aramaic = 55,
- SCX_Inherited = 56,
- SCX_Inscriptional_Pahlavi = 57,
- SCX_Inscriptional_Parthian = 58,
- SCX_INVALID = 59,
- SCX_Javanese = 60,
- SCX_Jpan = 61,
- SCX_Kaithi = 62,
- SCX_Kannada = 63,
- SCX_Katakana = 64,
- SCX_Kayah_Li = 65,
- SCX_Kharoshthi = 66,
- SCX_Khitan_Small_Script = 67,
- SCX_Khmer = 68,
- SCX_Khojki = 69,
- SCX_Khudawadi = 70,
- SCX_Kore = 71,
- SCX_Lao = 72,
- SCX_Latin = 73,
- SCX_Lepcha = 74,
- SCX_Limbu = 75,
- SCX_Linear_A = 76,
- SCX_Linear_B = 77,
- SCX_Lisu = 78,
- SCX_Lycian = 79,
- SCX_Lydian = 80,
- SCX_Mahajani = 81,
- SCX_Makasar = 82,
- SCX_Malayalam = 83,
- SCX_Mandaic = 84,
- SCX_Manichaean = 85,
- SCX_Marchen = 86,
- SCX_Masaram_Gondi = 87,
- SCX_Medefaidrin = 88,
- SCX_Meetei_Mayek = 89,
- SCX_Mende_Kikakui = 90,
- SCX_Meroitic_Cursive = 91,
- SCX_Meroitic_Hieroglyphs = 92,
- SCX_Miao = 93,
- SCX_Modi = 94,
- SCX_Mongolian = 95,
- SCX_Mro = 96,
- SCX_Multani = 97,
- SCX_Myanmar = 98,
- SCX_Nabataean = 99,
- SCX_Nandinagari = 100,
- SCX_New_Tai_Lue = 101,
- SCX_Newa = 102,
- SCX_Nko = 103,
- SCX_Nushu = 104,
- SCX_Nyiakeng_Puachue_Hmong = 105,
- SCX_Ogham = 106,
- SCX_Ol_Chiki = 107,
- SCX_Old_Hungarian = 108,
- SCX_Old_Italic = 109,
- SCX_Old_North_Arabian = 110,
- SCX_Old_Permic = 111,
- SCX_Old_Persian = 112,
- SCX_Old_Sogdian = 113,
- SCX_Old_South_Arabian = 114,
- SCX_Old_Turkic = 115,
- SCX_Oriya = 116,
- SCX_Osage = 117,
- SCX_Osmanya = 118,
- SCX_Pahawh_Hmong = 119,
- SCX_Palmyrene = 120,
- SCX_Pau_Cin_Hau = 121,
- SCX_Phags_Pa = 122,
- SCX_Phoenician = 123,
- SCX_Psalter_Pahlavi = 124,
- SCX_Rejang = 125,
- SCX_Runic = 126,
- SCX_Samaritan = 127,
- SCX_Saurashtra = 128,
- SCX_Sharada = 129,
- SCX_Shavian = 130,
- SCX_Siddham = 131,
- SCX_SignWriting = 132,
- SCX_Sinhala = 133,
- SCX_Sogdian = 134,
- SCX_Sora_Sompeng = 135,
- SCX_Soyombo = 136,
- SCX_Sundanese = 137,
- SCX_Syloti_Nagri = 138,
- SCX_Syriac = 139,
- SCX_Tagalog = 140,
- SCX_Tagbanwa = 141,
- SCX_Tai_Le = 142,
- SCX_Tai_Tham = 143,
- SCX_Tai_Viet = 144,
- SCX_Takri = 145,
- SCX_Tamil = 146,
- SCX_Tangut = 147,
- SCX_Telugu = 148,
- SCX_Thaana = 149,
- SCX_Thai = 150,
- SCX_Tibetan = 151,
- SCX_Tifinagh = 152,
- SCX_Tirhuta = 153,
- SCX_Ugaritic = 154,
- SCX_Vai = 155,
- SCX_Wancho = 156,
- SCX_Warang_Citi = 157,
- SCX_Yezidi = 158,
- SCX_Yi = 159,
- SCX_Zanabazar_Square = 160,
+ SCX_Cypro_Minoan = 29,
+ SCX_Cyrillic = 30,
+ SCX_Deseret = 31,
+ SCX_Devanagari = 32,
+ SCX_Dives_Akuru = 33,
+ SCX_Dogra = 34,
+ SCX_Duployan = 35,
+ SCX_Egyptian_Hieroglyphs = 36,
+ SCX_Elbasan = 37,
+ SCX_Elymaic = 38,
+ SCX_Ethiopic = 39,
+ SCX_Georgian = 40,
+ SCX_Glagolitic = 41,
+ SCX_Gothic = 42,
+ SCX_Grantha = 43,
+ SCX_Greek = 44,
+ SCX_Gujarati = 45,
+ SCX_Gunjala_Gondi = 46,
+ SCX_Gurmukhi = 47,
+ SCX_Han = 48,
+ SCX_Hanb = 49,
+ SCX_Hangul = 50,
+ SCX_Hanifi_Rohingya = 51,
+ SCX_Hanunoo = 52,
+ SCX_Hatran = 53,
+ SCX_Hebrew = 54,
+ SCX_Hiragana = 55,
+ SCX_Imperial_Aramaic = 56,
+ SCX_Inherited = 57,
+ SCX_Inscriptional_Pahlavi = 58,
+ SCX_Inscriptional_Parthian = 59,
+ SCX_INVALID = 60,
+ SCX_Javanese = 61,
+ SCX_Jpan = 62,
+ SCX_Kaithi = 63,
+ SCX_Kannada = 64,
+ SCX_Katakana = 65,
+ SCX_Kawi = 66,
+ SCX_Kayah_Li = 67,
+ SCX_Kharoshthi = 68,
+ SCX_Khitan_Small_Script = 69,
+ SCX_Khmer = 70,
+ SCX_Khojki = 71,
+ SCX_Khudawadi = 72,
+ SCX_Kore = 73,
+ SCX_Lao = 74,
+ SCX_Latin = 75,
+ SCX_Lepcha = 76,
+ SCX_Limbu = 77,
+ SCX_Linear_A = 78,
+ SCX_Linear_B = 79,
+ SCX_Lisu = 80,
+ SCX_Lycian = 81,
+ SCX_Lydian = 82,
+ SCX_Mahajani = 83,
+ SCX_Makasar = 84,
+ SCX_Malayalam = 85,
+ SCX_Mandaic = 86,
+ SCX_Manichaean = 87,
+ SCX_Marchen = 88,
+ SCX_Masaram_Gondi = 89,
+ SCX_Medefaidrin = 90,
+ SCX_Meetei_Mayek = 91,
+ SCX_Mende_Kikakui = 92,
+ SCX_Meroitic_Cursive = 93,
+ SCX_Meroitic_Hieroglyphs = 94,
+ SCX_Miao = 95,
+ SCX_Modi = 96,
+ SCX_Mongolian = 97,
+ SCX_Mro = 98,
+ SCX_Multani = 99,
+ SCX_Myanmar = 100,
+ SCX_Nabataean = 101,
+ SCX_Nag_Mundari = 102,
+ SCX_Nandinagari = 103,
+ SCX_New_Tai_Lue = 104,
+ SCX_Newa = 105,
+ SCX_Nko = 106,
+ SCX_Nushu = 107,
+ SCX_Nyiakeng_Puachue_Hmong = 108,
+ SCX_Ogham = 109,
+ SCX_Ol_Chiki = 110,
+ SCX_Old_Hungarian = 111,
+ SCX_Old_Italic = 112,
+ SCX_Old_North_Arabian = 113,
+ SCX_Old_Permic = 114,
+ SCX_Old_Persian = 115,
+ SCX_Old_Sogdian = 116,
+ SCX_Old_South_Arabian = 117,
+ SCX_Old_Turkic = 118,
+ SCX_Old_Uyghur = 119,
+ SCX_Oriya = 120,
+ SCX_Osage = 121,
+ SCX_Osmanya = 122,
+ SCX_Pahawh_Hmong = 123,
+ SCX_Palmyrene = 124,
+ SCX_Pau_Cin_Hau = 125,
+ SCX_Phags_Pa = 126,
+ SCX_Phoenician = 127,
+ SCX_Psalter_Pahlavi = 128,
+ SCX_Rejang = 129,
+ SCX_Runic = 130,
+ SCX_Samaritan = 131,
+ SCX_Saurashtra = 132,
+ SCX_Sharada = 133,
+ SCX_Shavian = 134,
+ SCX_Siddham = 135,
+ SCX_SignWriting = 136,
+ SCX_Sinhala = 137,
+ SCX_Sogdian = 138,
+ SCX_Sora_Sompeng = 139,
+ SCX_Soyombo = 140,
+ SCX_Sundanese = 141,
+ SCX_Syloti_Nagri = 142,
+ SCX_Syriac = 143,
+ SCX_Tagalog = 144,
+ SCX_Tagbanwa = 145,
+ SCX_Tai_Le = 146,
+ SCX_Tai_Tham = 147,
+ SCX_Tai_Viet = 148,
+ SCX_Takri = 149,
+ SCX_Tamil = 150,
+ SCX_Tangsa = 151,
+ SCX_Tangut = 152,
+ SCX_Telugu = 153,
+ SCX_Thaana = 154,
+ SCX_Thai = 155,
+ SCX_Tibetan = 156,
+ SCX_Tifinagh = 157,
+ SCX_Tirhuta = 158,
+ SCX_Toto = 159,
+ SCX_Ugaritic = 160,
+ SCX_Vai = 161,
+ SCX_Vithkuqi = 162,
+ SCX_Wancho = 163,
+ SCX_Warang_Citi = 164,
+ SCX_Yezidi = 165,
+ SCX_Yi = 166,
+ SCX_Zanabazar_Square = 167,
SCX_use_AUX_TABLE_1 = -1,
SCX_use_AUX_TABLE_2 = -2,
SCX_use_AUX_TABLE_3 = -3,
@@ -74209,7 +76314,11 @@ typedef enum {
SCX_use_AUX_TABLE_52 = -52,
SCX_use_AUX_TABLE_53 = -53,
SCX_use_AUX_TABLE_54 = -54,
- SCX_use_AUX_TABLE_55 = -55
+ SCX_use_AUX_TABLE_55 = -55,
+ SCX_use_AUX_TABLE_56 = -56,
+ SCX_use_AUX_TABLE_57 = -57,
+ SCX_use_AUX_TABLE_58 = -58,
+ SCX_use_AUX_TABLE_59 = -59
} SCX_enum;
# endif /* ASCII/Latin1 */
@@ -74243,6 +76352,7 @@ static const SCX_enum SCX_AUX_TABLE_4[] = {
static const SCX_enum SCX_AUX_TABLE_5[] = {
SCX_Arabic,
SCX_Hanifi_Rohingya,
+ SCX_Nko,
SCX_Syriac,
SCX_Thaana,
SCX_Yezidi
@@ -74258,30 +76368,41 @@ static const SCX_enum SCX_AUX_TABLE_7[] = {
SCX_Adlam,
SCX_Arabic,
SCX_Hanifi_Rohingya,
+ SCX_Nko,
+ SCX_Syriac,
+ SCX_Thaana,
+ SCX_Yezidi
+};
+
+static const SCX_enum SCX_AUX_TABLE_8[] = {
+ SCX_Adlam,
+ SCX_Arabic,
+ SCX_Hanifi_Rohingya,
SCX_Mandaic,
SCX_Manichaean,
+ SCX_Old_Uyghur,
SCX_Psalter_Pahlavi,
SCX_Sogdian,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_8[] = {
+static const SCX_enum SCX_AUX_TABLE_9[] = {
SCX_Arabic,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_9[] = {
+static const SCX_enum SCX_AUX_TABLE_10[] = {
SCX_Arabic,
SCX_Thaana,
SCX_Yezidi
};
-static const SCX_enum SCX_AUX_TABLE_10[] = {
+static const SCX_enum SCX_AUX_TABLE_11[] = {
SCX_Arabic,
SCX_Hanifi_Rohingya
};
-static const SCX_enum SCX_AUX_TABLE_11[] = {
+static const SCX_enum SCX_AUX_TABLE_12[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -74297,7 +76418,7 @@ static const SCX_enum SCX_AUX_TABLE_11[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_12[] = {
+static const SCX_enum SCX_AUX_TABLE_13[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -74312,7 +76433,7 @@ static const SCX_enum SCX_AUX_TABLE_12[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_13[] = {
+static const SCX_enum SCX_AUX_TABLE_14[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Dogra,
@@ -74335,7 +76456,7 @@ static const SCX_enum SCX_AUX_TABLE_13[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_14[] = {
+static const SCX_enum SCX_AUX_TABLE_15[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Dogra,
@@ -74359,90 +76480,90 @@ static const SCX_enum SCX_AUX_TABLE_14[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_15[] = {
+static const SCX_enum SCX_AUX_TABLE_16[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Kaithi,
SCX_Mahajani
};
-static const SCX_enum SCX_AUX_TABLE_16[] = {
+static const SCX_enum SCX_AUX_TABLE_17[] = {
SCX_Bengali,
SCX_Chakma,
SCX_Syloti_Nagri
};
-static const SCX_enum SCX_AUX_TABLE_17[] = {
+static const SCX_enum SCX_AUX_TABLE_18[] = {
SCX_Gurmukhi,
SCX_Multani
};
-static const SCX_enum SCX_AUX_TABLE_18[] = {
+static const SCX_enum SCX_AUX_TABLE_19[] = {
SCX_Gujarati,
SCX_Khojki
};
-static const SCX_enum SCX_AUX_TABLE_19[] = {
+static const SCX_enum SCX_AUX_TABLE_20[] = {
SCX_Grantha,
SCX_Tamil
};
-static const SCX_enum SCX_AUX_TABLE_20[] = {
+static const SCX_enum SCX_AUX_TABLE_21[] = {
SCX_Kannada,
SCX_Nandinagari
};
-static const SCX_enum SCX_AUX_TABLE_21[] = {
+static const SCX_enum SCX_AUX_TABLE_22[] = {
SCX_Chakma,
SCX_Myanmar,
SCX_Tai_Le
};
-static const SCX_enum SCX_AUX_TABLE_22[] = {
+static const SCX_enum SCX_AUX_TABLE_23[] = {
SCX_Georgian,
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_23[] = {
+static const SCX_enum SCX_AUX_TABLE_24[] = {
SCX_Hangul,
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_24[] = {
+static const SCX_enum SCX_AUX_TABLE_25[] = {
SCX_Buhid,
SCX_Hanunoo,
SCX_Tagalog,
SCX_Tagbanwa
};
-static const SCX_enum SCX_AUX_TABLE_25[] = {
+static const SCX_enum SCX_AUX_TABLE_26[] = {
SCX_Mongolian,
SCX_Phags_Pa
};
-static const SCX_enum SCX_AUX_TABLE_26[] = {
+static const SCX_enum SCX_AUX_TABLE_27[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
SCX_Kannada
};
-static const SCX_enum SCX_AUX_TABLE_27[] = {
+static const SCX_enum SCX_AUX_TABLE_28[] = {
SCX_Devanagari,
SCX_Grantha
};
-static const SCX_enum SCX_AUX_TABLE_28[] = {
+static const SCX_enum SCX_AUX_TABLE_29[] = {
SCX_Bengali,
SCX_Devanagari
};
-static const SCX_enum SCX_AUX_TABLE_29[] = {
+static const SCX_enum SCX_AUX_TABLE_30[] = {
SCX_Devanagari,
SCX_Sharada
};
-static const SCX_enum SCX_AUX_TABLE_30[] = {
+static const SCX_enum SCX_AUX_TABLE_31[] = {
SCX_Devanagari,
SCX_Kannada,
SCX_Malayalam,
@@ -74451,12 +76572,12 @@ static const SCX_enum SCX_AUX_TABLE_30[] = {
SCX_Telugu
};
-static const SCX_enum SCX_AUX_TABLE_31[] = {
+static const SCX_enum SCX_AUX_TABLE_32[] = {
SCX_Devanagari,
SCX_Nandinagari
};
-static const SCX_enum SCX_AUX_TABLE_32[] = {
+static const SCX_enum SCX_AUX_TABLE_33[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -74467,36 +76588,36 @@ static const SCX_enum SCX_AUX_TABLE_32[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_33[] = {
+static const SCX_enum SCX_AUX_TABLE_34[] = {
SCX_Devanagari,
SCX_Grantha,
SCX_Kannada
};
-static const SCX_enum SCX_AUX_TABLE_34[] = {
+static const SCX_enum SCX_AUX_TABLE_35[] = {
SCX_Cyrillic,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_35[] = {
+static const SCX_enum SCX_AUX_TABLE_36[] = {
SCX_Latin,
SCX_Mongolian
};
-static const SCX_enum SCX_AUX_TABLE_36[] = {
+static const SCX_enum SCX_AUX_TABLE_37[] = {
SCX_Devanagari,
SCX_Grantha,
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_37[] = {
+static const SCX_enum SCX_AUX_TABLE_38[] = {
SCX_Han,
SCX_Hanb,
SCX_Jpan,
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_38[] = {
+static const SCX_enum SCX_AUX_TABLE_39[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -74508,7 +76629,7 @@ static const SCX_enum SCX_AUX_TABLE_38[] = {
SCX_Yi
};
-static const SCX_enum SCX_AUX_TABLE_39[] = {
+static const SCX_enum SCX_AUX_TABLE_40[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -74519,7 +76640,7 @@ static const SCX_enum SCX_AUX_TABLE_39[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_40[] = {
+static const SCX_enum SCX_AUX_TABLE_41[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -74527,13 +76648,13 @@ static const SCX_enum SCX_AUX_TABLE_40[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_41[] = {
+static const SCX_enum SCX_AUX_TABLE_42[] = {
SCX_Hiragana,
SCX_Jpan,
SCX_Katakana
};
-static const SCX_enum SCX_AUX_TABLE_42[] = {
+static const SCX_enum SCX_AUX_TABLE_43[] = {
SCX_Han,
SCX_Hanb,
SCX_Hiragana,
@@ -74542,17 +76663,17 @@ static const SCX_enum SCX_AUX_TABLE_42[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_43[] = {
+static const SCX_enum SCX_AUX_TABLE_44[] = {
SCX_Hiragana,
SCX_Jpan
};
-static const SCX_enum SCX_AUX_TABLE_44[] = {
+static const SCX_enum SCX_AUX_TABLE_45[] = {
SCX_Jpan,
SCX_Katakana
};
-static const SCX_enum SCX_AUX_TABLE_45[] = {
+static const SCX_enum SCX_AUX_TABLE_46[] = {
SCX_Han,
SCX_Hanb,
SCX_Jpan,
@@ -74560,7 +76681,7 @@ static const SCX_enum SCX_AUX_TABLE_45[] = {
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_46[] = {
+static const SCX_enum SCX_AUX_TABLE_47[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -74577,7 +76698,7 @@ static const SCX_enum SCX_AUX_TABLE_46[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_47[] = {
+static const SCX_enum SCX_AUX_TABLE_48[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -74593,7 +76714,7 @@ static const SCX_enum SCX_AUX_TABLE_47[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_48[] = {
+static const SCX_enum SCX_AUX_TABLE_49[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -74607,43 +76728,59 @@ static const SCX_enum SCX_AUX_TABLE_48[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_49[] = {
+static const SCX_enum SCX_AUX_TABLE_50[] = {
SCX_Devanagari,
SCX_Tamil
};
-static const SCX_enum SCX_AUX_TABLE_50[] = {
+static const SCX_enum SCX_AUX_TABLE_51[] = {
SCX_Kayah_Li,
SCX_Latin,
SCX_Myanmar
};
-static const SCX_enum SCX_AUX_TABLE_51[] = {
+static const SCX_enum SCX_AUX_TABLE_52[] = {
SCX_Buginese,
SCX_Javanese
};
-static const SCX_enum SCX_AUX_TABLE_52[] = {
+static const SCX_enum SCX_AUX_TABLE_53[] = {
+ SCX_Arabic,
+ SCX_Nko
+};
+
+static const SCX_enum SCX_AUX_TABLE_54[] = {
SCX_Arabic,
SCX_Thaana
};
-static const SCX_enum SCX_AUX_TABLE_53[] = {
+static const SCX_enum SCX_AUX_TABLE_55[] = {
SCX_Cypriot,
+ SCX_Cypro_Minoan,
SCX_Linear_B
};
-static const SCX_enum SCX_AUX_TABLE_54[] = {
+static const SCX_enum SCX_AUX_TABLE_56[] = {
+ SCX_Cypriot,
+ SCX_Linear_B
+};
+
+static const SCX_enum SCX_AUX_TABLE_57[] = {
SCX_Cypriot,
SCX_Linear_A,
SCX_Linear_B
};
-static const SCX_enum SCX_AUX_TABLE_55[] = {
+static const SCX_enum SCX_AUX_TABLE_58[] = {
SCX_Arabic,
SCX_Coptic
};
+static const SCX_enum SCX_AUX_TABLE_59[] = {
+ SCX_Manichaean,
+ SCX_Old_Uyghur
+};
+
static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = {
NULL, /* Placeholder */
SCX_AUX_TABLE_1,
@@ -74700,7 +76837,11 @@ static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = {
SCX_AUX_TABLE_52,
SCX_AUX_TABLE_53,
SCX_AUX_TABLE_54,
- SCX_AUX_TABLE_55
+ SCX_AUX_TABLE_55,
+ SCX_AUX_TABLE_56,
+ SCX_AUX_TABLE_57,
+ SCX_AUX_TABLE_58,
+ SCX_AUX_TABLE_59
};
/* Parallel table to the above, giving the number of elements in each table
@@ -74712,57 +76853,61 @@ static const U8 SCX_AUX_TABLE_lengths[] = {
2 /* SCX_AUX_TABLE_2 */,
2 /* SCX_AUX_TABLE_3 */,
2 /* SCX_AUX_TABLE_4 */,
- 5 /* SCX_AUX_TABLE_5 */,
+ 6 /* SCX_AUX_TABLE_5 */,
3 /* SCX_AUX_TABLE_6 */,
- 8 /* SCX_AUX_TABLE_7 */,
- 2 /* SCX_AUX_TABLE_8 */,
- 3 /* SCX_AUX_TABLE_9 */,
- 2 /* SCX_AUX_TABLE_10 */,
- 13 /* SCX_AUX_TABLE_11 */,
- 12 /* SCX_AUX_TABLE_12 */,
- 20 /* SCX_AUX_TABLE_13 */,
- 21 /* SCX_AUX_TABLE_14 */,
- 4 /* SCX_AUX_TABLE_15 */,
- 3 /* SCX_AUX_TABLE_16 */,
- 2 /* SCX_AUX_TABLE_17 */,
+ 7 /* SCX_AUX_TABLE_7 */,
+ 9 /* SCX_AUX_TABLE_8 */,
+ 2 /* SCX_AUX_TABLE_9 */,
+ 3 /* SCX_AUX_TABLE_10 */,
+ 2 /* SCX_AUX_TABLE_11 */,
+ 13 /* SCX_AUX_TABLE_12 */,
+ 12 /* SCX_AUX_TABLE_13 */,
+ 20 /* SCX_AUX_TABLE_14 */,
+ 21 /* SCX_AUX_TABLE_15 */,
+ 4 /* SCX_AUX_TABLE_16 */,
+ 3 /* SCX_AUX_TABLE_17 */,
2 /* SCX_AUX_TABLE_18 */,
2 /* SCX_AUX_TABLE_19 */,
2 /* SCX_AUX_TABLE_20 */,
- 3 /* SCX_AUX_TABLE_21 */,
- 2 /* SCX_AUX_TABLE_22 */,
+ 2 /* SCX_AUX_TABLE_21 */,
+ 3 /* SCX_AUX_TABLE_22 */,
2 /* SCX_AUX_TABLE_23 */,
- 4 /* SCX_AUX_TABLE_24 */,
- 2 /* SCX_AUX_TABLE_25 */,
- 4 /* SCX_AUX_TABLE_26 */,
- 2 /* SCX_AUX_TABLE_27 */,
+ 2 /* SCX_AUX_TABLE_24 */,
+ 4 /* SCX_AUX_TABLE_25 */,
+ 2 /* SCX_AUX_TABLE_26 */,
+ 4 /* SCX_AUX_TABLE_27 */,
2 /* SCX_AUX_TABLE_28 */,
2 /* SCX_AUX_TABLE_29 */,
- 6 /* SCX_AUX_TABLE_30 */,
- 2 /* SCX_AUX_TABLE_31 */,
- 8 /* SCX_AUX_TABLE_32 */,
- 3 /* SCX_AUX_TABLE_33 */,
- 2 /* SCX_AUX_TABLE_34 */,
+ 2 /* SCX_AUX_TABLE_30 */,
+ 6 /* SCX_AUX_TABLE_31 */,
+ 2 /* SCX_AUX_TABLE_32 */,
+ 8 /* SCX_AUX_TABLE_33 */,
+ 3 /* SCX_AUX_TABLE_34 */,
2 /* SCX_AUX_TABLE_35 */,
- 3 /* SCX_AUX_TABLE_36 */,
- 4 /* SCX_AUX_TABLE_37 */,
- 9 /* SCX_AUX_TABLE_38 */,
- 8 /* SCX_AUX_TABLE_39 */,
- 5 /* SCX_AUX_TABLE_40 */,
- 3 /* SCX_AUX_TABLE_41 */,
- 6 /* SCX_AUX_TABLE_42 */,
- 2 /* SCX_AUX_TABLE_43 */,
+ 2 /* SCX_AUX_TABLE_36 */,
+ 3 /* SCX_AUX_TABLE_37 */,
+ 4 /* SCX_AUX_TABLE_38 */,
+ 9 /* SCX_AUX_TABLE_39 */,
+ 8 /* SCX_AUX_TABLE_40 */,
+ 5 /* SCX_AUX_TABLE_41 */,
+ 3 /* SCX_AUX_TABLE_42 */,
+ 6 /* SCX_AUX_TABLE_43 */,
2 /* SCX_AUX_TABLE_44 */,
- 5 /* SCX_AUX_TABLE_45 */,
- 14 /* SCX_AUX_TABLE_46 */,
- 13 /* SCX_AUX_TABLE_47 */,
- 11 /* SCX_AUX_TABLE_48 */,
- 2 /* SCX_AUX_TABLE_49 */,
- 3 /* SCX_AUX_TABLE_50 */,
- 2 /* SCX_AUX_TABLE_51 */,
+ 2 /* SCX_AUX_TABLE_45 */,
+ 5 /* SCX_AUX_TABLE_46 */,
+ 14 /* SCX_AUX_TABLE_47 */,
+ 13 /* SCX_AUX_TABLE_48 */,
+ 11 /* SCX_AUX_TABLE_49 */,
+ 2 /* SCX_AUX_TABLE_50 */,
+ 3 /* SCX_AUX_TABLE_51 */,
2 /* SCX_AUX_TABLE_52 */,
2 /* SCX_AUX_TABLE_53 */,
- 3 /* SCX_AUX_TABLE_54 */,
- 2 /* SCX_AUX_TABLE_55 */
+ 2 /* SCX_AUX_TABLE_54 */,
+ 3 /* SCX_AUX_TABLE_55 */,
+ 2 /* SCX_AUX_TABLE_56 */,
+ 3 /* SCX_AUX_TABLE_57 */,
+ 2 /* SCX_AUX_TABLE_58 */,
+ 2 /* SCX_AUX_TABLE_59 */
};
/* This table, indexed by the script enum, gives the zero code point for that
@@ -74799,6 +76944,7 @@ static const UV script_zeros[] = {
'0', /* Coptic */
'0', /* Cuneiform */
'0', /* Cypriot */
+ '0', /* Cypro_Minoan */
'0', /* Cyrillic */
'0', /* Deseret */
0x966, /* Devanagari */
@@ -74835,6 +76981,7 @@ static const UV script_zeros[] = {
0x966, /* Kaithi */
0xce6, /* Kannada */
'0', /* Katakana */
+ 0x11f50, /* Kawi */
0xa900, /* Kayah_Li */
'0', /* Kharoshthi */
'0', /* Khitan_Small_Script */
@@ -74870,6 +77017,7 @@ static const UV script_zeros[] = {
0xa66, /* Multani */
0, /* Myanmar */
'0', /* Nabataean */
+ 0x1e4f0, /* Nag_Mundari */
0xce6, /* Nandinagari */
0x19d0, /* New_Tai_Lue */
0x11450, /* Newa */
@@ -74886,6 +77034,7 @@ static const UV script_zeros[] = {
'0', /* Old_Sogdian */
'0', /* Old_South_Arabian */
'0', /* Old_Turkic */
+ '0', /* Old_Uyghur */
0xb66, /* Oriya */
'0', /* Osage */
0x104a0, /* Osmanya */
@@ -74917,6 +77066,7 @@ static const UV script_zeros[] = {
'0', /* Tai_Viet */
0x116c0, /* Takri */
0xbe6, /* Tamil */
+ 0x16ac0, /* Tangsa */
'0', /* Tangut */
0xc66, /* Telugu */
0x660, /* Thaana */
@@ -74924,8 +77074,10 @@ static const UV script_zeros[] = {
0xf20, /* Tibetan */
'0', /* Tifinagh */
0x114d0, /* Tirhuta */
+ '0', /* Toto */
'0', /* Ugaritic */
0xa620, /* Vai */
+ '0', /* Vithkuqi */
0x1e2f0, /* Wancho */
0x118e0, /* Warang_Citi */
0x660 /* Yezidi */
@@ -75004,9 +77156,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Arabic,
SCX_use_AUX_TABLE_5,
SCX_use_AUX_TABLE_6,
- SCX_Unknown,
- SCX_Arabic,
- SCX_use_AUX_TABLE_5,
SCX_Arabic,
SCX_use_AUX_TABLE_7,
SCX_Arabic,
@@ -75014,10 +77163,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Arabic,
SCX_use_AUX_TABLE_9,
SCX_Arabic,
- SCX_use_AUX_TABLE_8,
- SCX_Arabic,
SCX_use_AUX_TABLE_10,
SCX_Arabic,
+ SCX_use_AUX_TABLE_9,
+ SCX_Arabic,
+ SCX_use_AUX_TABLE_11,
+ SCX_Arabic,
SCX_Common,
SCX_Arabic,
SCX_Syriac,
@@ -75049,13 +77200,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Common,
SCX_Arabic,
SCX_Devanagari,
- SCX_use_AUX_TABLE_11,
SCX_use_AUX_TABLE_12,
+ SCX_use_AUX_TABLE_13,
SCX_Inherited,
SCX_Devanagari,
- SCX_use_AUX_TABLE_13,
SCX_use_AUX_TABLE_14,
SCX_use_AUX_TABLE_15,
+ SCX_use_AUX_TABLE_16,
SCX_Devanagari,
SCX_Bengali,
SCX_Unknown,
@@ -75083,7 +77234,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Bengali,
SCX_Unknown,
- SCX_use_AUX_TABLE_16,
+ SCX_use_AUX_TABLE_17,
SCX_Bengali,
SCX_Unknown,
SCX_Gurmukhi,
@@ -75116,7 +77267,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Gurmukhi,
SCX_Unknown,
- SCX_use_AUX_TABLE_17,
+ SCX_use_AUX_TABLE_18,
SCX_Gurmukhi,
SCX_Unknown,
SCX_Gujarati,
@@ -75143,7 +77294,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Gujarati,
SCX_Unknown,
- SCX_use_AUX_TABLE_18,
+ SCX_use_AUX_TABLE_19,
SCX_Gujarati,
SCX_Unknown,
SCX_Gujarati,
@@ -75206,7 +77357,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Tamil,
SCX_Unknown,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
SCX_Unknown,
SCX_Telugu,
@@ -75232,6 +77383,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Telugu,
SCX_Unknown,
SCX_Telugu,
+ SCX_Unknown,
+ SCX_Telugu,
SCX_Kannada,
SCX_Unknown,
SCX_Kannada,
@@ -75254,7 +77407,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Kannada,
SCX_Unknown,
- SCX_use_AUX_TABLE_20,
+ SCX_use_AUX_TABLE_21,
SCX_Unknown,
SCX_Kannada,
SCX_Unknown,
@@ -75338,7 +77491,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Tibetan,
SCX_Unknown,
SCX_Myanmar,
- SCX_use_AUX_TABLE_21,
+ SCX_use_AUX_TABLE_22,
SCX_Myanmar,
SCX_Georgian,
SCX_Unknown,
@@ -75347,9 +77500,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Georgian,
SCX_Unknown,
SCX_Georgian,
- SCX_use_AUX_TABLE_22,
- SCX_Georgian,
SCX_use_AUX_TABLE_23,
+ SCX_Georgian,
+ SCX_use_AUX_TABLE_24,
SCX_Ethiopic,
SCX_Unknown,
SCX_Ethiopic,
@@ -75400,9 +77553,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Tagalog,
SCX_Unknown,
SCX_Tagalog,
- SCX_Unknown,
SCX_Hanunoo,
- SCX_use_AUX_TABLE_24,
+ SCX_use_AUX_TABLE_25,
SCX_Unknown,
SCX_Buhid,
SCX_Unknown,
@@ -75419,11 +77571,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Khmer,
SCX_Unknown,
SCX_Mongolian,
- SCX_use_AUX_TABLE_25,
- SCX_Mongolian,
- SCX_use_AUX_TABLE_25,
+ SCX_use_AUX_TABLE_26,
SCX_Mongolian,
- SCX_Unknown,
+ SCX_use_AUX_TABLE_26,
SCX_Mongolian,
SCX_Unknown,
SCX_Mongolian,
@@ -75489,33 +77639,33 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Georgian,
SCX_Sundanese,
SCX_Unknown,
- SCX_use_AUX_TABLE_26,
- SCX_Devanagari,
- SCX_use_AUX_TABLE_26,
SCX_use_AUX_TABLE_27,
SCX_Devanagari,
+ SCX_use_AUX_TABLE_27,
SCX_use_AUX_TABLE_28,
+ SCX_Devanagari,
SCX_use_AUX_TABLE_29,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_30,
SCX_use_AUX_TABLE_29,
SCX_use_AUX_TABLE_30,
+ SCX_use_AUX_TABLE_31,
SCX_Devanagari,
- SCX_use_AUX_TABLE_29,
+ SCX_use_AUX_TABLE_30,
SCX_Devanagari,
+ SCX_use_AUX_TABLE_30,
SCX_use_AUX_TABLE_29,
- SCX_use_AUX_TABLE_28,
SCX_Devanagari,
- SCX_use_AUX_TABLE_31,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_32,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_32,
- SCX_use_AUX_TABLE_27,
SCX_use_AUX_TABLE_33,
SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_34,
+ SCX_use_AUX_TABLE_29,
SCX_Bengali,
- SCX_use_AUX_TABLE_27,
+ SCX_use_AUX_TABLE_28,
SCX_Nandinagari,
SCX_Unknown,
SCX_Latin,
@@ -75530,9 +77680,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Latin,
SCX_Greek,
SCX_Inherited,
- SCX_use_AUX_TABLE_34,
+ SCX_use_AUX_TABLE_35,
SCX_Inherited,
- SCX_Unknown,
+ SCX_Syriac,
SCX_Inherited,
SCX_Latin,
SCX_Greek,
@@ -75570,7 +77720,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Common,
SCX_Inherited,
SCX_Common,
- SCX_use_AUX_TABLE_35,
+ SCX_use_AUX_TABLE_36,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -75585,7 +77735,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Common,
SCX_Unknown,
SCX_Inherited,
- SCX_use_AUX_TABLE_36,
+ SCX_use_AUX_TABLE_37,
SCX_Unknown,
SCX_Common,
SCX_Greek,
@@ -75611,9 +77761,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Common,
SCX_Glagolitic,
- SCX_Unknown,
- SCX_Glagolitic,
- SCX_Unknown,
SCX_Latin,
SCX_Coptic,
SCX_Unknown,
@@ -75652,78 +77799,77 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_use_AUX_TABLE_3,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
- SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
- SCX_use_AUX_TABLE_37,
- SCX_use_AUX_TABLE_38,
- SCX_Common,
- SCX_use_AUX_TABLE_39,
SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_39,
SCX_Common,
- SCX_use_AUX_TABLE_37,
SCX_use_AUX_TABLE_40,
- SCX_use_AUX_TABLE_23,
SCX_use_AUX_TABLE_39,
- SCX_use_AUX_TABLE_41,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
- SCX_use_AUX_TABLE_39,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
+ SCX_use_AUX_TABLE_41,
+ SCX_use_AUX_TABLE_24,
+ SCX_use_AUX_TABLE_40,
SCX_use_AUX_TABLE_42,
- SCX_use_AUX_TABLE_37,
- SCX_Unknown,
+ SCX_Common,
+ SCX_use_AUX_TABLE_40,
+ SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_43,
- SCX_use_AUX_TABLE_41,
SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_38,
- SCX_use_AUX_TABLE_41,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_42,
SCX_use_AUX_TABLE_44,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
SCX_Unknown,
SCX_use_AUX_TABLE_1,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_1,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_37,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_38,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
- SCX_Unknown,
+ SCX_use_AUX_TABLE_38,
SCX_Yi,
SCX_Unknown,
SCX_Yi,
@@ -75736,7 +77882,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Cyrillic,
SCX_Bamum,
SCX_Unknown,
- SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_46,
SCX_Common,
SCX_Latin,
SCX_Common,
@@ -75745,11 +77891,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Latin,
SCX_Unknown,
SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
SCX_Syloti_Nagri,
SCX_Unknown,
- SCX_use_AUX_TABLE_46,
SCX_use_AUX_TABLE_47,
SCX_use_AUX_TABLE_48,
+ SCX_use_AUX_TABLE_49,
SCX_Unknown,
SCX_Phags_Pa,
SCX_Unknown,
@@ -75758,21 +77908,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Saurashtra,
SCX_Unknown,
SCX_Devanagari,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_49,
+ SCX_use_AUX_TABLE_50,
SCX_Devanagari,
SCX_Kayah_Li,
- SCX_use_AUX_TABLE_50,
+ SCX_use_AUX_TABLE_51,
SCX_Kayah_Li,
SCX_Rejang,
SCX_Unknown,
SCX_Rejang,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
SCX_Javanese,
SCX_Unknown,
- SCX_use_AUX_TABLE_51,
+ SCX_use_AUX_TABLE_52,
SCX_Javanese,
SCX_Unknown,
SCX_Javanese,
@@ -75813,15 +77963,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Meetei_Mayek,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Latin,
SCX_Unknown,
@@ -75841,24 +77991,25 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
- SCX_Common,
+ SCX_use_AUX_TABLE_53,
+ SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
- SCX_use_AUX_TABLE_52,
+ SCX_use_AUX_TABLE_54,
+ SCX_Arabic,
+ SCX_use_AUX_TABLE_54,
SCX_Arabic,
- SCX_use_AUX_TABLE_52,
- SCX_Unknown,
SCX_Inherited,
SCX_Common,
SCX_Unknown,
SCX_Inherited,
SCX_Cyrillic,
SCX_Common,
- SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -75876,20 +78027,20 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Common,
SCX_Latin,
SCX_Common,
- SCX_use_AUX_TABLE_38,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -75911,11 +78062,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Linear_B,
SCX_Unknown,
- SCX_use_AUX_TABLE_53,
+ SCX_use_AUX_TABLE_55,
+ SCX_use_AUX_TABLE_56,
SCX_Unknown,
- SCX_use_AUX_TABLE_54,
+ SCX_use_AUX_TABLE_57,
SCX_Unknown,
- SCX_use_AUX_TABLE_53,
+ SCX_use_AUX_TABLE_56,
SCX_Greek,
SCX_Unknown,
SCX_Common,
@@ -75929,7 +78081,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Carian,
SCX_Unknown,
- SCX_use_AUX_TABLE_55,
+ SCX_use_AUX_TABLE_58,
SCX_Unknown,
SCX_Old_Italic,
SCX_Unknown,
@@ -75960,6 +78112,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Caucasian_Albanian,
SCX_Unknown,
SCX_Caucasian_Albanian,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
SCX_Unknown,
SCX_Linear_A,
SCX_Unknown,
@@ -75967,6 +78134,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Linear_A,
SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
SCX_Cypriot,
SCX_Unknown,
SCX_Cypriot,
@@ -76026,6 +78199,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Manichaean,
SCX_Unknown,
SCX_Manichaean,
+ SCX_use_AUX_TABLE_59,
+ SCX_Manichaean,
SCX_Unknown,
SCX_Avestan,
SCX_Unknown,
@@ -76061,10 +78236,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Yezidi,
SCX_Unknown,
+ SCX_Arabic,
SCX_Old_Sogdian,
SCX_Unknown,
SCX_Sogdian,
SCX_Unknown,
+ SCX_Old_Uyghur,
+ SCX_Unknown,
SCX_Chorasmian,
SCX_Unknown,
SCX_Elymaic,
@@ -76111,9 +78289,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Khudawadi,
SCX_Unknown,
SCX_Grantha,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Grantha,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Unknown,
SCX_Grantha,
SCX_Unknown,
@@ -76127,7 +78305,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Grantha,
SCX_Unknown,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Grantha,
SCX_Unknown,
SCX_Grantha,
@@ -76203,8 +78381,11 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Soyombo,
SCX_Unknown,
+ SCX_Canadian_Aboriginal,
SCX_Pau_Cin_Hau,
SCX_Unknown,
+ SCX_Devanagari,
+ SCX_Unknown,
SCX_Bhaiksuki,
SCX_Unknown,
SCX_Bhaiksuki,
@@ -76247,12 +78428,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Makasar,
SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
SCX_Lisu,
SCX_Unknown,
SCX_Tamil,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
SCX_Unknown,
SCX_Tamil,
@@ -76264,7 +78451,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Cuneiform,
SCX_Unknown,
- SCX_Egyptian_Hieroglyphs,
+ SCX_Cypro_Minoan,
SCX_Unknown,
SCX_Egyptian_Hieroglyphs,
SCX_Unknown,
@@ -76277,6 +78464,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Mro,
SCX_Unknown,
SCX_Mro,
+ SCX_Tangsa,
+ SCX_Unknown,
+ SCX_Tangsa,
SCX_Unknown,
SCX_Bassa_Vah,
SCX_Unknown,
@@ -76302,10 +78492,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Tangut,
SCX_Nushu,
- SCX_Common,
+ SCX_use_AUX_TABLE_38,
SCX_Khitan_Small_Script,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Tangut,
SCX_Unknown,
@@ -76314,13 +78504,24 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Tangut,
SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_45,
SCX_Unknown,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_44,
SCX_Unknown,
SCX_use_AUX_TABLE_44,
SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
SCX_Nushu,
SCX_Unknown,
SCX_Duployan,
@@ -76333,6 +78534,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Duployan,
SCX_Unknown,
+ SCX_Inherited,
+ SCX_Unknown,
+ SCX_Inherited,
+ SCX_Unknown,
+ SCX_Common,
+ SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -76353,7 +78560,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_Common,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -76403,6 +78612,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_SignWriting,
SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
SCX_Glagolitic,
SCX_Unknown,
SCX_Glagolitic,
@@ -76413,6 +78626,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Glagolitic,
SCX_Unknown,
+ SCX_Cyrillic,
+ SCX_Unknown,
+ SCX_Cyrillic,
+ SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
@@ -76421,10 +78638,22 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
SCX_Unknown,
+ SCX_Toto,
+ SCX_Unknown,
SCX_Wancho,
SCX_Unknown,
SCX_Wancho,
SCX_Unknown,
+ SCX_Nag_Mundari,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
SCX_Mende_Kikakui,
SCX_Unknown,
SCX_Mende_Kikakui,
@@ -76522,14 +78751,14 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Common,
SCX_Unknown,
SCX_Common,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_44,
SCX_Common,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -76583,21 +78812,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_Common,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -76619,7 +78848,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
- 1699, /* Number of elements */
+ 1776, /* 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 */
@@ -76722,7 +78951,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x61F,
0x620,
0x640,
@@ -76758,11 +78986,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8E2,
0x8E3,
0x900,
@@ -76934,7 +79162,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -76944,6 +79172,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -76967,14 +79197,14 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -77035,7 +79265,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -77115,9 +79345,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
+ 0x1716,
+ 0x171F,
0x1720,
0x1735,
0x1737,
@@ -77140,8 +79369,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1804,
0x1805,
0x1806,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -77184,11 +79411,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BC0,
0x1BF4,
@@ -77300,7 +79527,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F0,
0x20F1,
@@ -77328,9 +79555,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x2B96,
0x2B97,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
0x2C60,
0x2C80,
0x2CF4,
@@ -77368,7 +79592,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x2E00,
0x2E43,
0x2E44,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -77440,7 +79664,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
0xA000,
0xA48D,
0xA490,
@@ -77458,10 +79681,14 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xA82D,
0xA830,
@@ -77556,14 +79783,15 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0xFB45,
0xFB46,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
0xFDF2,
0xFDF3,
@@ -77629,6 +79857,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x10080,
0x100FB,
0x10100,
+ 0x10102,
0x10103,
0x10107,
0x10134,
@@ -77678,12 +79907,33 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x10564,
0x1056F,
0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -77743,6 +79993,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x10AC0,
0x10AE7,
0x10AEB,
+ 0x10AF2,
+ 0x10AF3,
0x10AF7,
0x10B00,
0x10B36,
@@ -77778,10 +80030,13 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x10EAE,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -77789,10 +80044,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x11080,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -77812,7 +80067,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -77880,7 +80135,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -77888,7 +80143,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -77920,8 +80175,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x11A48,
0x11A50,
0x11AA3,
+ 0x11AB0,
0x11AC0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -77964,6 +80222,12 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -77981,10 +80245,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -77995,6 +80259,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -78031,11 +80298,22 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
- 0x1B11F,
+ 0x1B120,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -78050,6 +80328,12 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -78063,9 +80347,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -78120,6 +80406,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -78130,6 +80420,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -78138,10 +80432,22 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -78252,16 +80558,18 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -78275,27 +80583,23 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -78303,9 +80607,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -78316,6 +80620,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -78367,138 +80673,145 @@ typedef enum {
SCX_Coptic = 26,
SCX_Cuneiform = 27,
SCX_Cypriot = 28,
- SCX_Cyrillic = 29,
- SCX_Deseret = 30,
- SCX_Devanagari = 31,
- SCX_Dives_Akuru = 32,
- SCX_Dogra = 33,
- SCX_Duployan = 34,
- SCX_Egyptian_Hieroglyphs = 35,
- SCX_Elbasan = 36,
- SCX_Elymaic = 37,
- SCX_Ethiopic = 38,
- SCX_Georgian = 39,
- SCX_Glagolitic = 40,
- SCX_Gothic = 41,
- SCX_Grantha = 42,
- SCX_Greek = 43,
- SCX_Gujarati = 44,
- SCX_Gunjala_Gondi = 45,
- SCX_Gurmukhi = 46,
- SCX_Han = 47,
- SCX_Hanb = 48,
- SCX_Hangul = 49,
- SCX_Hanifi_Rohingya = 50,
- SCX_Hanunoo = 51,
- SCX_Hatran = 52,
- SCX_Hebrew = 53,
- SCX_Hiragana = 54,
- SCX_Imperial_Aramaic = 55,
- SCX_Inherited = 56,
- SCX_Inscriptional_Pahlavi = 57,
- SCX_Inscriptional_Parthian = 58,
- SCX_INVALID = 59,
- SCX_Javanese = 60,
- SCX_Jpan = 61,
- SCX_Kaithi = 62,
- SCX_Kannada = 63,
- SCX_Katakana = 64,
- SCX_Kayah_Li = 65,
- SCX_Kharoshthi = 66,
- SCX_Khitan_Small_Script = 67,
- SCX_Khmer = 68,
- SCX_Khojki = 69,
- SCX_Khudawadi = 70,
- SCX_Kore = 71,
- SCX_Lao = 72,
- SCX_Latin = 73,
- SCX_Lepcha = 74,
- SCX_Limbu = 75,
- SCX_Linear_A = 76,
- SCX_Linear_B = 77,
- SCX_Lisu = 78,
- SCX_Lycian = 79,
- SCX_Lydian = 80,
- SCX_Mahajani = 81,
- SCX_Makasar = 82,
- SCX_Malayalam = 83,
- SCX_Mandaic = 84,
- SCX_Manichaean = 85,
- SCX_Marchen = 86,
- SCX_Masaram_Gondi = 87,
- SCX_Medefaidrin = 88,
- SCX_Meetei_Mayek = 89,
- SCX_Mende_Kikakui = 90,
- SCX_Meroitic_Cursive = 91,
- SCX_Meroitic_Hieroglyphs = 92,
- SCX_Miao = 93,
- SCX_Modi = 94,
- SCX_Mongolian = 95,
- SCX_Mro = 96,
- SCX_Multani = 97,
- SCX_Myanmar = 98,
- SCX_Nabataean = 99,
- SCX_Nandinagari = 100,
- SCX_New_Tai_Lue = 101,
- SCX_Newa = 102,
- SCX_Nko = 103,
- SCX_Nushu = 104,
- SCX_Nyiakeng_Puachue_Hmong = 105,
- SCX_Ogham = 106,
- SCX_Ol_Chiki = 107,
- SCX_Old_Hungarian = 108,
- SCX_Old_Italic = 109,
- SCX_Old_North_Arabian = 110,
- SCX_Old_Permic = 111,
- SCX_Old_Persian = 112,
- SCX_Old_Sogdian = 113,
- SCX_Old_South_Arabian = 114,
- SCX_Old_Turkic = 115,
- SCX_Oriya = 116,
- SCX_Osage = 117,
- SCX_Osmanya = 118,
- SCX_Pahawh_Hmong = 119,
- SCX_Palmyrene = 120,
- SCX_Pau_Cin_Hau = 121,
- SCX_Phags_Pa = 122,
- SCX_Phoenician = 123,
- SCX_Psalter_Pahlavi = 124,
- SCX_Rejang = 125,
- SCX_Runic = 126,
- SCX_Samaritan = 127,
- SCX_Saurashtra = 128,
- SCX_Sharada = 129,
- SCX_Shavian = 130,
- SCX_Siddham = 131,
- SCX_SignWriting = 132,
- SCX_Sinhala = 133,
- SCX_Sogdian = 134,
- SCX_Sora_Sompeng = 135,
- SCX_Soyombo = 136,
- SCX_Sundanese = 137,
- SCX_Syloti_Nagri = 138,
- SCX_Syriac = 139,
- SCX_Tagalog = 140,
- SCX_Tagbanwa = 141,
- SCX_Tai_Le = 142,
- SCX_Tai_Tham = 143,
- SCX_Tai_Viet = 144,
- SCX_Takri = 145,
- SCX_Tamil = 146,
- SCX_Tangut = 147,
- SCX_Telugu = 148,
- SCX_Thaana = 149,
- SCX_Thai = 150,
- SCX_Tibetan = 151,
- SCX_Tifinagh = 152,
- SCX_Tirhuta = 153,
- SCX_Ugaritic = 154,
- SCX_Vai = 155,
- SCX_Wancho = 156,
- SCX_Warang_Citi = 157,
- SCX_Yezidi = 158,
- SCX_Yi = 159,
- SCX_Zanabazar_Square = 160,
+ SCX_Cypro_Minoan = 29,
+ SCX_Cyrillic = 30,
+ SCX_Deseret = 31,
+ SCX_Devanagari = 32,
+ SCX_Dives_Akuru = 33,
+ SCX_Dogra = 34,
+ SCX_Duployan = 35,
+ SCX_Egyptian_Hieroglyphs = 36,
+ SCX_Elbasan = 37,
+ SCX_Elymaic = 38,
+ SCX_Ethiopic = 39,
+ SCX_Georgian = 40,
+ SCX_Glagolitic = 41,
+ SCX_Gothic = 42,
+ SCX_Grantha = 43,
+ SCX_Greek = 44,
+ SCX_Gujarati = 45,
+ SCX_Gunjala_Gondi = 46,
+ SCX_Gurmukhi = 47,
+ SCX_Han = 48,
+ SCX_Hanb = 49,
+ SCX_Hangul = 50,
+ SCX_Hanifi_Rohingya = 51,
+ SCX_Hanunoo = 52,
+ SCX_Hatran = 53,
+ SCX_Hebrew = 54,
+ SCX_Hiragana = 55,
+ SCX_Imperial_Aramaic = 56,
+ SCX_Inherited = 57,
+ SCX_Inscriptional_Pahlavi = 58,
+ SCX_Inscriptional_Parthian = 59,
+ SCX_INVALID = 60,
+ SCX_Javanese = 61,
+ SCX_Jpan = 62,
+ SCX_Kaithi = 63,
+ SCX_Kannada = 64,
+ SCX_Katakana = 65,
+ SCX_Kawi = 66,
+ SCX_Kayah_Li = 67,
+ SCX_Kharoshthi = 68,
+ SCX_Khitan_Small_Script = 69,
+ SCX_Khmer = 70,
+ SCX_Khojki = 71,
+ SCX_Khudawadi = 72,
+ SCX_Kore = 73,
+ SCX_Lao = 74,
+ SCX_Latin = 75,
+ SCX_Lepcha = 76,
+ SCX_Limbu = 77,
+ SCX_Linear_A = 78,
+ SCX_Linear_B = 79,
+ SCX_Lisu = 80,
+ SCX_Lycian = 81,
+ SCX_Lydian = 82,
+ SCX_Mahajani = 83,
+ SCX_Makasar = 84,
+ SCX_Malayalam = 85,
+ SCX_Mandaic = 86,
+ SCX_Manichaean = 87,
+ SCX_Marchen = 88,
+ SCX_Masaram_Gondi = 89,
+ SCX_Medefaidrin = 90,
+ SCX_Meetei_Mayek = 91,
+ SCX_Mende_Kikakui = 92,
+ SCX_Meroitic_Cursive = 93,
+ SCX_Meroitic_Hieroglyphs = 94,
+ SCX_Miao = 95,
+ SCX_Modi = 96,
+ SCX_Mongolian = 97,
+ SCX_Mro = 98,
+ SCX_Multani = 99,
+ SCX_Myanmar = 100,
+ SCX_Nabataean = 101,
+ SCX_Nag_Mundari = 102,
+ SCX_Nandinagari = 103,
+ SCX_New_Tai_Lue = 104,
+ SCX_Newa = 105,
+ SCX_Nko = 106,
+ SCX_Nushu = 107,
+ SCX_Nyiakeng_Puachue_Hmong = 108,
+ SCX_Ogham = 109,
+ SCX_Ol_Chiki = 110,
+ SCX_Old_Hungarian = 111,
+ SCX_Old_Italic = 112,
+ SCX_Old_North_Arabian = 113,
+ SCX_Old_Permic = 114,
+ SCX_Old_Persian = 115,
+ SCX_Old_Sogdian = 116,
+ SCX_Old_South_Arabian = 117,
+ SCX_Old_Turkic = 118,
+ SCX_Old_Uyghur = 119,
+ SCX_Oriya = 120,
+ SCX_Osage = 121,
+ SCX_Osmanya = 122,
+ SCX_Pahawh_Hmong = 123,
+ SCX_Palmyrene = 124,
+ SCX_Pau_Cin_Hau = 125,
+ SCX_Phags_Pa = 126,
+ SCX_Phoenician = 127,
+ SCX_Psalter_Pahlavi = 128,
+ SCX_Rejang = 129,
+ SCX_Runic = 130,
+ SCX_Samaritan = 131,
+ SCX_Saurashtra = 132,
+ SCX_Sharada = 133,
+ SCX_Shavian = 134,
+ SCX_Siddham = 135,
+ SCX_SignWriting = 136,
+ SCX_Sinhala = 137,
+ SCX_Sogdian = 138,
+ SCX_Sora_Sompeng = 139,
+ SCX_Soyombo = 140,
+ SCX_Sundanese = 141,
+ SCX_Syloti_Nagri = 142,
+ SCX_Syriac = 143,
+ SCX_Tagalog = 144,
+ SCX_Tagbanwa = 145,
+ SCX_Tai_Le = 146,
+ SCX_Tai_Tham = 147,
+ SCX_Tai_Viet = 148,
+ SCX_Takri = 149,
+ SCX_Tamil = 150,
+ SCX_Tangsa = 151,
+ SCX_Tangut = 152,
+ SCX_Telugu = 153,
+ SCX_Thaana = 154,
+ SCX_Thai = 155,
+ SCX_Tibetan = 156,
+ SCX_Tifinagh = 157,
+ SCX_Tirhuta = 158,
+ SCX_Toto = 159,
+ SCX_Ugaritic = 160,
+ SCX_Vai = 161,
+ SCX_Vithkuqi = 162,
+ SCX_Wancho = 163,
+ SCX_Warang_Citi = 164,
+ SCX_Yezidi = 165,
+ SCX_Yi = 166,
+ SCX_Zanabazar_Square = 167,
SCX_use_AUX_TABLE_1 = -1,
SCX_use_AUX_TABLE_2 = -2,
SCX_use_AUX_TABLE_3 = -3,
@@ -78553,7 +80866,11 @@ typedef enum {
SCX_use_AUX_TABLE_52 = -52,
SCX_use_AUX_TABLE_53 = -53,
SCX_use_AUX_TABLE_54 = -54,
- SCX_use_AUX_TABLE_55 = -55
+ SCX_use_AUX_TABLE_55 = -55,
+ SCX_use_AUX_TABLE_56 = -56,
+ SCX_use_AUX_TABLE_57 = -57,
+ SCX_use_AUX_TABLE_58 = -58,
+ SCX_use_AUX_TABLE_59 = -59
} SCX_enum;
# endif /* EBCDIC 1047 */
@@ -78590,6 +80907,7 @@ static const SCX_enum SCX_AUX_TABLE_4[] = {
static const SCX_enum SCX_AUX_TABLE_5[] = {
SCX_Arabic,
SCX_Hanifi_Rohingya,
+ SCX_Nko,
SCX_Syriac,
SCX_Thaana,
SCX_Yezidi
@@ -78605,30 +80923,41 @@ static const SCX_enum SCX_AUX_TABLE_7[] = {
SCX_Adlam,
SCX_Arabic,
SCX_Hanifi_Rohingya,
+ SCX_Nko,
+ SCX_Syriac,
+ SCX_Thaana,
+ SCX_Yezidi
+};
+
+static const SCX_enum SCX_AUX_TABLE_8[] = {
+ SCX_Adlam,
+ SCX_Arabic,
+ SCX_Hanifi_Rohingya,
SCX_Mandaic,
SCX_Manichaean,
+ SCX_Old_Uyghur,
SCX_Psalter_Pahlavi,
SCX_Sogdian,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_8[] = {
+static const SCX_enum SCX_AUX_TABLE_9[] = {
SCX_Arabic,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_9[] = {
+static const SCX_enum SCX_AUX_TABLE_10[] = {
SCX_Arabic,
SCX_Thaana,
SCX_Yezidi
};
-static const SCX_enum SCX_AUX_TABLE_10[] = {
+static const SCX_enum SCX_AUX_TABLE_11[] = {
SCX_Arabic,
SCX_Hanifi_Rohingya
};
-static const SCX_enum SCX_AUX_TABLE_11[] = {
+static const SCX_enum SCX_AUX_TABLE_12[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -78644,7 +80973,7 @@ static const SCX_enum SCX_AUX_TABLE_11[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_12[] = {
+static const SCX_enum SCX_AUX_TABLE_13[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -78659,7 +80988,7 @@ static const SCX_enum SCX_AUX_TABLE_12[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_13[] = {
+static const SCX_enum SCX_AUX_TABLE_14[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Dogra,
@@ -78682,7 +81011,7 @@ static const SCX_enum SCX_AUX_TABLE_13[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_14[] = {
+static const SCX_enum SCX_AUX_TABLE_15[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Dogra,
@@ -78706,90 +81035,90 @@ static const SCX_enum SCX_AUX_TABLE_14[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_15[] = {
+static const SCX_enum SCX_AUX_TABLE_16[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Kaithi,
SCX_Mahajani
};
-static const SCX_enum SCX_AUX_TABLE_16[] = {
+static const SCX_enum SCX_AUX_TABLE_17[] = {
SCX_Bengali,
SCX_Chakma,
SCX_Syloti_Nagri
};
-static const SCX_enum SCX_AUX_TABLE_17[] = {
+static const SCX_enum SCX_AUX_TABLE_18[] = {
SCX_Gurmukhi,
SCX_Multani
};
-static const SCX_enum SCX_AUX_TABLE_18[] = {
+static const SCX_enum SCX_AUX_TABLE_19[] = {
SCX_Gujarati,
SCX_Khojki
};
-static const SCX_enum SCX_AUX_TABLE_19[] = {
+static const SCX_enum SCX_AUX_TABLE_20[] = {
SCX_Grantha,
SCX_Tamil
};
-static const SCX_enum SCX_AUX_TABLE_20[] = {
+static const SCX_enum SCX_AUX_TABLE_21[] = {
SCX_Kannada,
SCX_Nandinagari
};
-static const SCX_enum SCX_AUX_TABLE_21[] = {
+static const SCX_enum SCX_AUX_TABLE_22[] = {
SCX_Chakma,
SCX_Myanmar,
SCX_Tai_Le
};
-static const SCX_enum SCX_AUX_TABLE_22[] = {
+static const SCX_enum SCX_AUX_TABLE_23[] = {
SCX_Georgian,
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_23[] = {
+static const SCX_enum SCX_AUX_TABLE_24[] = {
SCX_Hangul,
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_24[] = {
+static const SCX_enum SCX_AUX_TABLE_25[] = {
SCX_Buhid,
SCX_Hanunoo,
SCX_Tagalog,
SCX_Tagbanwa
};
-static const SCX_enum SCX_AUX_TABLE_25[] = {
+static const SCX_enum SCX_AUX_TABLE_26[] = {
SCX_Mongolian,
SCX_Phags_Pa
};
-static const SCX_enum SCX_AUX_TABLE_26[] = {
+static const SCX_enum SCX_AUX_TABLE_27[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
SCX_Kannada
};
-static const SCX_enum SCX_AUX_TABLE_27[] = {
+static const SCX_enum SCX_AUX_TABLE_28[] = {
SCX_Devanagari,
SCX_Grantha
};
-static const SCX_enum SCX_AUX_TABLE_28[] = {
+static const SCX_enum SCX_AUX_TABLE_29[] = {
SCX_Bengali,
SCX_Devanagari
};
-static const SCX_enum SCX_AUX_TABLE_29[] = {
+static const SCX_enum SCX_AUX_TABLE_30[] = {
SCX_Devanagari,
SCX_Sharada
};
-static const SCX_enum SCX_AUX_TABLE_30[] = {
+static const SCX_enum SCX_AUX_TABLE_31[] = {
SCX_Devanagari,
SCX_Kannada,
SCX_Malayalam,
@@ -78798,12 +81127,12 @@ static const SCX_enum SCX_AUX_TABLE_30[] = {
SCX_Telugu
};
-static const SCX_enum SCX_AUX_TABLE_31[] = {
+static const SCX_enum SCX_AUX_TABLE_32[] = {
SCX_Devanagari,
SCX_Nandinagari
};
-static const SCX_enum SCX_AUX_TABLE_32[] = {
+static const SCX_enum SCX_AUX_TABLE_33[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -78814,36 +81143,36 @@ static const SCX_enum SCX_AUX_TABLE_32[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_33[] = {
+static const SCX_enum SCX_AUX_TABLE_34[] = {
SCX_Devanagari,
SCX_Grantha,
SCX_Kannada
};
-static const SCX_enum SCX_AUX_TABLE_34[] = {
+static const SCX_enum SCX_AUX_TABLE_35[] = {
SCX_Cyrillic,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_35[] = {
+static const SCX_enum SCX_AUX_TABLE_36[] = {
SCX_Latin,
SCX_Mongolian
};
-static const SCX_enum SCX_AUX_TABLE_36[] = {
+static const SCX_enum SCX_AUX_TABLE_37[] = {
SCX_Devanagari,
SCX_Grantha,
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_37[] = {
+static const SCX_enum SCX_AUX_TABLE_38[] = {
SCX_Han,
SCX_Hanb,
SCX_Jpan,
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_38[] = {
+static const SCX_enum SCX_AUX_TABLE_39[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -78855,7 +81184,7 @@ static const SCX_enum SCX_AUX_TABLE_38[] = {
SCX_Yi
};
-static const SCX_enum SCX_AUX_TABLE_39[] = {
+static const SCX_enum SCX_AUX_TABLE_40[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -78866,7 +81195,7 @@ static const SCX_enum SCX_AUX_TABLE_39[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_40[] = {
+static const SCX_enum SCX_AUX_TABLE_41[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -78874,13 +81203,13 @@ static const SCX_enum SCX_AUX_TABLE_40[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_41[] = {
+static const SCX_enum SCX_AUX_TABLE_42[] = {
SCX_Hiragana,
SCX_Jpan,
SCX_Katakana
};
-static const SCX_enum SCX_AUX_TABLE_42[] = {
+static const SCX_enum SCX_AUX_TABLE_43[] = {
SCX_Han,
SCX_Hanb,
SCX_Hiragana,
@@ -78889,17 +81218,17 @@ static const SCX_enum SCX_AUX_TABLE_42[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_43[] = {
+static const SCX_enum SCX_AUX_TABLE_44[] = {
SCX_Hiragana,
SCX_Jpan
};
-static const SCX_enum SCX_AUX_TABLE_44[] = {
+static const SCX_enum SCX_AUX_TABLE_45[] = {
SCX_Jpan,
SCX_Katakana
};
-static const SCX_enum SCX_AUX_TABLE_45[] = {
+static const SCX_enum SCX_AUX_TABLE_46[] = {
SCX_Han,
SCX_Hanb,
SCX_Jpan,
@@ -78907,7 +81236,7 @@ static const SCX_enum SCX_AUX_TABLE_45[] = {
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_46[] = {
+static const SCX_enum SCX_AUX_TABLE_47[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -78924,7 +81253,7 @@ static const SCX_enum SCX_AUX_TABLE_46[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_47[] = {
+static const SCX_enum SCX_AUX_TABLE_48[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -78940,7 +81269,7 @@ static const SCX_enum SCX_AUX_TABLE_47[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_48[] = {
+static const SCX_enum SCX_AUX_TABLE_49[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -78954,43 +81283,59 @@ static const SCX_enum SCX_AUX_TABLE_48[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_49[] = {
+static const SCX_enum SCX_AUX_TABLE_50[] = {
SCX_Devanagari,
SCX_Tamil
};
-static const SCX_enum SCX_AUX_TABLE_50[] = {
+static const SCX_enum SCX_AUX_TABLE_51[] = {
SCX_Kayah_Li,
SCX_Latin,
SCX_Myanmar
};
-static const SCX_enum SCX_AUX_TABLE_51[] = {
+static const SCX_enum SCX_AUX_TABLE_52[] = {
SCX_Buginese,
SCX_Javanese
};
-static const SCX_enum SCX_AUX_TABLE_52[] = {
+static const SCX_enum SCX_AUX_TABLE_53[] = {
+ SCX_Arabic,
+ SCX_Nko
+};
+
+static const SCX_enum SCX_AUX_TABLE_54[] = {
SCX_Arabic,
SCX_Thaana
};
-static const SCX_enum SCX_AUX_TABLE_53[] = {
+static const SCX_enum SCX_AUX_TABLE_55[] = {
SCX_Cypriot,
+ SCX_Cypro_Minoan,
SCX_Linear_B
};
-static const SCX_enum SCX_AUX_TABLE_54[] = {
+static const SCX_enum SCX_AUX_TABLE_56[] = {
+ SCX_Cypriot,
+ SCX_Linear_B
+};
+
+static const SCX_enum SCX_AUX_TABLE_57[] = {
SCX_Cypriot,
SCX_Linear_A,
SCX_Linear_B
};
-static const SCX_enum SCX_AUX_TABLE_55[] = {
+static const SCX_enum SCX_AUX_TABLE_58[] = {
SCX_Arabic,
SCX_Coptic
};
+static const SCX_enum SCX_AUX_TABLE_59[] = {
+ SCX_Manichaean,
+ SCX_Old_Uyghur
+};
+
static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = {
NULL, /* Placeholder */
SCX_AUX_TABLE_1,
@@ -79047,7 +81392,11 @@ static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = {
SCX_AUX_TABLE_52,
SCX_AUX_TABLE_53,
SCX_AUX_TABLE_54,
- SCX_AUX_TABLE_55
+ SCX_AUX_TABLE_55,
+ SCX_AUX_TABLE_56,
+ SCX_AUX_TABLE_57,
+ SCX_AUX_TABLE_58,
+ SCX_AUX_TABLE_59
};
/* Parallel table to the above, giving the number of elements in each table
@@ -79059,57 +81408,61 @@ static const U8 SCX_AUX_TABLE_lengths[] = {
2 /* SCX_AUX_TABLE_2 */,
2 /* SCX_AUX_TABLE_3 */,
2 /* SCX_AUX_TABLE_4 */,
- 5 /* SCX_AUX_TABLE_5 */,
+ 6 /* SCX_AUX_TABLE_5 */,
3 /* SCX_AUX_TABLE_6 */,
- 8 /* SCX_AUX_TABLE_7 */,
- 2 /* SCX_AUX_TABLE_8 */,
- 3 /* SCX_AUX_TABLE_9 */,
- 2 /* SCX_AUX_TABLE_10 */,
- 13 /* SCX_AUX_TABLE_11 */,
- 12 /* SCX_AUX_TABLE_12 */,
- 20 /* SCX_AUX_TABLE_13 */,
- 21 /* SCX_AUX_TABLE_14 */,
- 4 /* SCX_AUX_TABLE_15 */,
- 3 /* SCX_AUX_TABLE_16 */,
- 2 /* SCX_AUX_TABLE_17 */,
+ 7 /* SCX_AUX_TABLE_7 */,
+ 9 /* SCX_AUX_TABLE_8 */,
+ 2 /* SCX_AUX_TABLE_9 */,
+ 3 /* SCX_AUX_TABLE_10 */,
+ 2 /* SCX_AUX_TABLE_11 */,
+ 13 /* SCX_AUX_TABLE_12 */,
+ 12 /* SCX_AUX_TABLE_13 */,
+ 20 /* SCX_AUX_TABLE_14 */,
+ 21 /* SCX_AUX_TABLE_15 */,
+ 4 /* SCX_AUX_TABLE_16 */,
+ 3 /* SCX_AUX_TABLE_17 */,
2 /* SCX_AUX_TABLE_18 */,
2 /* SCX_AUX_TABLE_19 */,
2 /* SCX_AUX_TABLE_20 */,
- 3 /* SCX_AUX_TABLE_21 */,
- 2 /* SCX_AUX_TABLE_22 */,
+ 2 /* SCX_AUX_TABLE_21 */,
+ 3 /* SCX_AUX_TABLE_22 */,
2 /* SCX_AUX_TABLE_23 */,
- 4 /* SCX_AUX_TABLE_24 */,
- 2 /* SCX_AUX_TABLE_25 */,
- 4 /* SCX_AUX_TABLE_26 */,
- 2 /* SCX_AUX_TABLE_27 */,
+ 2 /* SCX_AUX_TABLE_24 */,
+ 4 /* SCX_AUX_TABLE_25 */,
+ 2 /* SCX_AUX_TABLE_26 */,
+ 4 /* SCX_AUX_TABLE_27 */,
2 /* SCX_AUX_TABLE_28 */,
2 /* SCX_AUX_TABLE_29 */,
- 6 /* SCX_AUX_TABLE_30 */,
- 2 /* SCX_AUX_TABLE_31 */,
- 8 /* SCX_AUX_TABLE_32 */,
- 3 /* SCX_AUX_TABLE_33 */,
- 2 /* SCX_AUX_TABLE_34 */,
+ 2 /* SCX_AUX_TABLE_30 */,
+ 6 /* SCX_AUX_TABLE_31 */,
+ 2 /* SCX_AUX_TABLE_32 */,
+ 8 /* SCX_AUX_TABLE_33 */,
+ 3 /* SCX_AUX_TABLE_34 */,
2 /* SCX_AUX_TABLE_35 */,
- 3 /* SCX_AUX_TABLE_36 */,
- 4 /* SCX_AUX_TABLE_37 */,
- 9 /* SCX_AUX_TABLE_38 */,
- 8 /* SCX_AUX_TABLE_39 */,
- 5 /* SCX_AUX_TABLE_40 */,
- 3 /* SCX_AUX_TABLE_41 */,
- 6 /* SCX_AUX_TABLE_42 */,
- 2 /* SCX_AUX_TABLE_43 */,
+ 2 /* SCX_AUX_TABLE_36 */,
+ 3 /* SCX_AUX_TABLE_37 */,
+ 4 /* SCX_AUX_TABLE_38 */,
+ 9 /* SCX_AUX_TABLE_39 */,
+ 8 /* SCX_AUX_TABLE_40 */,
+ 5 /* SCX_AUX_TABLE_41 */,
+ 3 /* SCX_AUX_TABLE_42 */,
+ 6 /* SCX_AUX_TABLE_43 */,
2 /* SCX_AUX_TABLE_44 */,
- 5 /* SCX_AUX_TABLE_45 */,
- 14 /* SCX_AUX_TABLE_46 */,
- 13 /* SCX_AUX_TABLE_47 */,
- 11 /* SCX_AUX_TABLE_48 */,
- 2 /* SCX_AUX_TABLE_49 */,
- 3 /* SCX_AUX_TABLE_50 */,
- 2 /* SCX_AUX_TABLE_51 */,
+ 2 /* SCX_AUX_TABLE_45 */,
+ 5 /* SCX_AUX_TABLE_46 */,
+ 14 /* SCX_AUX_TABLE_47 */,
+ 13 /* SCX_AUX_TABLE_48 */,
+ 11 /* SCX_AUX_TABLE_49 */,
+ 2 /* SCX_AUX_TABLE_50 */,
+ 3 /* SCX_AUX_TABLE_51 */,
2 /* SCX_AUX_TABLE_52 */,
2 /* SCX_AUX_TABLE_53 */,
- 3 /* SCX_AUX_TABLE_54 */,
- 2 /* SCX_AUX_TABLE_55 */
+ 2 /* SCX_AUX_TABLE_54 */,
+ 3 /* SCX_AUX_TABLE_55 */,
+ 2 /* SCX_AUX_TABLE_56 */,
+ 3 /* SCX_AUX_TABLE_57 */,
+ 2 /* SCX_AUX_TABLE_58 */,
+ 2 /* SCX_AUX_TABLE_59 */
};
/* This table, indexed by the script enum, gives the zero code point for that
@@ -79146,6 +81499,7 @@ static const UV script_zeros[] = {
'0', /* Coptic */
'0', /* Cuneiform */
'0', /* Cypriot */
+ '0', /* Cypro_Minoan */
'0', /* Cyrillic */
'0', /* Deseret */
0x966, /* Devanagari */
@@ -79182,6 +81536,7 @@ static const UV script_zeros[] = {
0x966, /* Kaithi */
0xce6, /* Kannada */
'0', /* Katakana */
+ 0x11f50, /* Kawi */
0xa900, /* Kayah_Li */
'0', /* Kharoshthi */
'0', /* Khitan_Small_Script */
@@ -79217,6 +81572,7 @@ static const UV script_zeros[] = {
0xa66, /* Multani */
0, /* Myanmar */
'0', /* Nabataean */
+ 0x1e4f0, /* Nag_Mundari */
0xce6, /* Nandinagari */
0x19d0, /* New_Tai_Lue */
0x11450, /* Newa */
@@ -79233,6 +81589,7 @@ static const UV script_zeros[] = {
'0', /* Old_Sogdian */
'0', /* Old_South_Arabian */
'0', /* Old_Turkic */
+ '0', /* Old_Uyghur */
0xb66, /* Oriya */
'0', /* Osage */
0x104a0, /* Osmanya */
@@ -79264,6 +81621,7 @@ static const UV script_zeros[] = {
'0', /* Tai_Viet */
0x116c0, /* Takri */
0xbe6, /* Tamil */
+ 0x16ac0, /* Tangsa */
'0', /* Tangut */
0xc66, /* Telugu */
0x660, /* Thaana */
@@ -79271,8 +81629,10 @@ static const UV script_zeros[] = {
0xf20, /* Tibetan */
'0', /* Tifinagh */
0x114d0, /* Tirhuta */
+ '0', /* Toto */
'0', /* Ugaritic */
0xa620, /* Vai */
+ '0', /* Vithkuqi */
0x1e2f0, /* Wancho */
0x118e0, /* Warang_Citi */
0x660 /* Yezidi */
@@ -79377,9 +81737,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Arabic,
SCX_use_AUX_TABLE_5,
SCX_use_AUX_TABLE_6,
- SCX_Unknown,
- SCX_Arabic,
- SCX_use_AUX_TABLE_5,
SCX_Arabic,
SCX_use_AUX_TABLE_7,
SCX_Arabic,
@@ -79387,10 +81744,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Arabic,
SCX_use_AUX_TABLE_9,
SCX_Arabic,
- SCX_use_AUX_TABLE_8,
- SCX_Arabic,
SCX_use_AUX_TABLE_10,
SCX_Arabic,
+ SCX_use_AUX_TABLE_9,
+ SCX_Arabic,
+ SCX_use_AUX_TABLE_11,
+ SCX_Arabic,
SCX_Common,
SCX_Arabic,
SCX_Syriac,
@@ -79422,13 +81781,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Common,
SCX_Arabic,
SCX_Devanagari,
- SCX_use_AUX_TABLE_11,
SCX_use_AUX_TABLE_12,
+ SCX_use_AUX_TABLE_13,
SCX_Inherited,
SCX_Devanagari,
- SCX_use_AUX_TABLE_13,
SCX_use_AUX_TABLE_14,
SCX_use_AUX_TABLE_15,
+ SCX_use_AUX_TABLE_16,
SCX_Devanagari,
SCX_Bengali,
SCX_Unknown,
@@ -79456,7 +81815,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Bengali,
SCX_Unknown,
- SCX_use_AUX_TABLE_16,
+ SCX_use_AUX_TABLE_17,
SCX_Bengali,
SCX_Unknown,
SCX_Gurmukhi,
@@ -79489,7 +81848,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Gurmukhi,
SCX_Unknown,
- SCX_use_AUX_TABLE_17,
+ SCX_use_AUX_TABLE_18,
SCX_Gurmukhi,
SCX_Unknown,
SCX_Gujarati,
@@ -79516,7 +81875,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Gujarati,
SCX_Unknown,
- SCX_use_AUX_TABLE_18,
+ SCX_use_AUX_TABLE_19,
SCX_Gujarati,
SCX_Unknown,
SCX_Gujarati,
@@ -79579,7 +81938,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Tamil,
SCX_Unknown,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
SCX_Unknown,
SCX_Telugu,
@@ -79605,6 +81964,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Telugu,
SCX_Unknown,
SCX_Telugu,
+ SCX_Unknown,
+ SCX_Telugu,
SCX_Kannada,
SCX_Unknown,
SCX_Kannada,
@@ -79627,7 +81988,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Kannada,
SCX_Unknown,
- SCX_use_AUX_TABLE_20,
+ SCX_use_AUX_TABLE_21,
SCX_Unknown,
SCX_Kannada,
SCX_Unknown,
@@ -79711,7 +82072,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Tibetan,
SCX_Unknown,
SCX_Myanmar,
- SCX_use_AUX_TABLE_21,
+ SCX_use_AUX_TABLE_22,
SCX_Myanmar,
SCX_Georgian,
SCX_Unknown,
@@ -79720,9 +82081,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Georgian,
SCX_Unknown,
SCX_Georgian,
- SCX_use_AUX_TABLE_22,
- SCX_Georgian,
SCX_use_AUX_TABLE_23,
+ SCX_Georgian,
+ SCX_use_AUX_TABLE_24,
SCX_Ethiopic,
SCX_Unknown,
SCX_Ethiopic,
@@ -79773,9 +82134,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Tagalog,
SCX_Unknown,
SCX_Tagalog,
- SCX_Unknown,
SCX_Hanunoo,
- SCX_use_AUX_TABLE_24,
+ SCX_use_AUX_TABLE_25,
SCX_Unknown,
SCX_Buhid,
SCX_Unknown,
@@ -79792,11 +82152,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Khmer,
SCX_Unknown,
SCX_Mongolian,
- SCX_use_AUX_TABLE_25,
- SCX_Mongolian,
- SCX_use_AUX_TABLE_25,
+ SCX_use_AUX_TABLE_26,
SCX_Mongolian,
- SCX_Unknown,
+ SCX_use_AUX_TABLE_26,
SCX_Mongolian,
SCX_Unknown,
SCX_Mongolian,
@@ -79862,33 +82220,33 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Georgian,
SCX_Sundanese,
SCX_Unknown,
- SCX_use_AUX_TABLE_26,
- SCX_Devanagari,
- SCX_use_AUX_TABLE_26,
SCX_use_AUX_TABLE_27,
SCX_Devanagari,
+ SCX_use_AUX_TABLE_27,
SCX_use_AUX_TABLE_28,
+ SCX_Devanagari,
SCX_use_AUX_TABLE_29,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_30,
SCX_use_AUX_TABLE_29,
SCX_use_AUX_TABLE_30,
+ SCX_use_AUX_TABLE_31,
SCX_Devanagari,
- SCX_use_AUX_TABLE_29,
+ SCX_use_AUX_TABLE_30,
SCX_Devanagari,
+ SCX_use_AUX_TABLE_30,
SCX_use_AUX_TABLE_29,
- SCX_use_AUX_TABLE_28,
SCX_Devanagari,
- SCX_use_AUX_TABLE_31,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_32,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_32,
- SCX_use_AUX_TABLE_27,
SCX_use_AUX_TABLE_33,
SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_34,
+ SCX_use_AUX_TABLE_29,
SCX_Bengali,
- SCX_use_AUX_TABLE_27,
+ SCX_use_AUX_TABLE_28,
SCX_Nandinagari,
SCX_Unknown,
SCX_Latin,
@@ -79903,9 +82261,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Latin,
SCX_Greek,
SCX_Inherited,
- SCX_use_AUX_TABLE_34,
+ SCX_use_AUX_TABLE_35,
SCX_Inherited,
- SCX_Unknown,
+ SCX_Syriac,
SCX_Inherited,
SCX_Latin,
SCX_Greek,
@@ -79943,7 +82301,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Common,
SCX_Inherited,
SCX_Common,
- SCX_use_AUX_TABLE_35,
+ SCX_use_AUX_TABLE_36,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -79958,7 +82316,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Common,
SCX_Unknown,
SCX_Inherited,
- SCX_use_AUX_TABLE_36,
+ SCX_use_AUX_TABLE_37,
SCX_Unknown,
SCX_Common,
SCX_Greek,
@@ -79984,9 +82342,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Common,
SCX_Glagolitic,
- SCX_Unknown,
- SCX_Glagolitic,
- SCX_Unknown,
SCX_Latin,
SCX_Coptic,
SCX_Unknown,
@@ -80025,78 +82380,77 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_use_AUX_TABLE_3,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
- SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
- SCX_use_AUX_TABLE_37,
- SCX_use_AUX_TABLE_38,
- SCX_Common,
- SCX_use_AUX_TABLE_39,
SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_39,
SCX_Common,
- SCX_use_AUX_TABLE_37,
SCX_use_AUX_TABLE_40,
- SCX_use_AUX_TABLE_23,
SCX_use_AUX_TABLE_39,
- SCX_use_AUX_TABLE_41,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
- SCX_use_AUX_TABLE_39,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
+ SCX_use_AUX_TABLE_41,
+ SCX_use_AUX_TABLE_24,
+ SCX_use_AUX_TABLE_40,
SCX_use_AUX_TABLE_42,
- SCX_use_AUX_TABLE_37,
- SCX_Unknown,
+ SCX_Common,
+ SCX_use_AUX_TABLE_40,
+ SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_43,
- SCX_use_AUX_TABLE_41,
SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_38,
- SCX_use_AUX_TABLE_41,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_42,
SCX_use_AUX_TABLE_44,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
SCX_Unknown,
SCX_use_AUX_TABLE_1,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_1,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_37,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_38,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
- SCX_Unknown,
+ SCX_use_AUX_TABLE_38,
SCX_Yi,
SCX_Unknown,
SCX_Yi,
@@ -80109,7 +82463,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Cyrillic,
SCX_Bamum,
SCX_Unknown,
- SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_46,
SCX_Common,
SCX_Latin,
SCX_Common,
@@ -80118,11 +82472,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Latin,
SCX_Unknown,
SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
SCX_Syloti_Nagri,
SCX_Unknown,
- SCX_use_AUX_TABLE_46,
SCX_use_AUX_TABLE_47,
SCX_use_AUX_TABLE_48,
+ SCX_use_AUX_TABLE_49,
SCX_Unknown,
SCX_Phags_Pa,
SCX_Unknown,
@@ -80131,21 +82489,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Saurashtra,
SCX_Unknown,
SCX_Devanagari,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_49,
+ SCX_use_AUX_TABLE_50,
SCX_Devanagari,
SCX_Kayah_Li,
- SCX_use_AUX_TABLE_50,
+ SCX_use_AUX_TABLE_51,
SCX_Kayah_Li,
SCX_Rejang,
SCX_Unknown,
SCX_Rejang,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
SCX_Javanese,
SCX_Unknown,
- SCX_use_AUX_TABLE_51,
+ SCX_use_AUX_TABLE_52,
SCX_Javanese,
SCX_Unknown,
SCX_Javanese,
@@ -80186,15 +82544,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Meetei_Mayek,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Latin,
SCX_Unknown,
@@ -80214,24 +82572,25 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
- SCX_Common,
+ SCX_use_AUX_TABLE_53,
+ SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
- SCX_use_AUX_TABLE_52,
+ SCX_use_AUX_TABLE_54,
+ SCX_Arabic,
+ SCX_use_AUX_TABLE_54,
SCX_Arabic,
- SCX_use_AUX_TABLE_52,
- SCX_Unknown,
SCX_Inherited,
SCX_Common,
SCX_Unknown,
SCX_Inherited,
SCX_Cyrillic,
SCX_Common,
- SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -80249,20 +82608,20 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Common,
SCX_Latin,
SCX_Common,
- SCX_use_AUX_TABLE_38,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -80284,11 +82643,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Linear_B,
SCX_Unknown,
- SCX_use_AUX_TABLE_53,
+ SCX_use_AUX_TABLE_55,
+ SCX_use_AUX_TABLE_56,
SCX_Unknown,
- SCX_use_AUX_TABLE_54,
+ SCX_use_AUX_TABLE_57,
SCX_Unknown,
- SCX_use_AUX_TABLE_53,
+ SCX_use_AUX_TABLE_56,
SCX_Greek,
SCX_Unknown,
SCX_Common,
@@ -80302,7 +82662,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Carian,
SCX_Unknown,
- SCX_use_AUX_TABLE_55,
+ SCX_use_AUX_TABLE_58,
SCX_Unknown,
SCX_Old_Italic,
SCX_Unknown,
@@ -80333,6 +82693,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Caucasian_Albanian,
SCX_Unknown,
SCX_Caucasian_Albanian,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
SCX_Unknown,
SCX_Linear_A,
SCX_Unknown,
@@ -80340,6 +82715,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Linear_A,
SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
SCX_Cypriot,
SCX_Unknown,
SCX_Cypriot,
@@ -80399,6 +82780,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Manichaean,
SCX_Unknown,
SCX_Manichaean,
+ SCX_use_AUX_TABLE_59,
+ SCX_Manichaean,
SCX_Unknown,
SCX_Avestan,
SCX_Unknown,
@@ -80434,10 +82817,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Yezidi,
SCX_Unknown,
+ SCX_Arabic,
SCX_Old_Sogdian,
SCX_Unknown,
SCX_Sogdian,
SCX_Unknown,
+ SCX_Old_Uyghur,
+ SCX_Unknown,
SCX_Chorasmian,
SCX_Unknown,
SCX_Elymaic,
@@ -80484,9 +82870,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Khudawadi,
SCX_Unknown,
SCX_Grantha,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Grantha,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Unknown,
SCX_Grantha,
SCX_Unknown,
@@ -80500,7 +82886,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Grantha,
SCX_Unknown,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Grantha,
SCX_Unknown,
SCX_Grantha,
@@ -80576,8 +82962,11 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Soyombo,
SCX_Unknown,
+ SCX_Canadian_Aboriginal,
SCX_Pau_Cin_Hau,
SCX_Unknown,
+ SCX_Devanagari,
+ SCX_Unknown,
SCX_Bhaiksuki,
SCX_Unknown,
SCX_Bhaiksuki,
@@ -80620,12 +83009,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Makasar,
SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
SCX_Lisu,
SCX_Unknown,
SCX_Tamil,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
SCX_Unknown,
SCX_Tamil,
@@ -80637,7 +83032,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Cuneiform,
SCX_Unknown,
- SCX_Egyptian_Hieroglyphs,
+ SCX_Cypro_Minoan,
SCX_Unknown,
SCX_Egyptian_Hieroglyphs,
SCX_Unknown,
@@ -80650,6 +83045,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Mro,
SCX_Unknown,
SCX_Mro,
+ SCX_Tangsa,
+ SCX_Unknown,
+ SCX_Tangsa,
SCX_Unknown,
SCX_Bassa_Vah,
SCX_Unknown,
@@ -80675,10 +83073,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Tangut,
SCX_Nushu,
- SCX_Common,
+ SCX_use_AUX_TABLE_38,
SCX_Khitan_Small_Script,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Tangut,
SCX_Unknown,
@@ -80687,13 +83085,24 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Tangut,
SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_45,
SCX_Unknown,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_44,
SCX_Unknown,
SCX_use_AUX_TABLE_44,
SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
SCX_Nushu,
SCX_Unknown,
SCX_Duployan,
@@ -80706,6 +83115,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Duployan,
SCX_Unknown,
+ SCX_Inherited,
+ SCX_Unknown,
+ SCX_Inherited,
+ SCX_Unknown,
+ SCX_Common,
+ SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -80726,7 +83141,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_Common,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -80776,6 +83193,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_SignWriting,
SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
SCX_Glagolitic,
SCX_Unknown,
SCX_Glagolitic,
@@ -80786,6 +83207,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Glagolitic,
SCX_Unknown,
+ SCX_Cyrillic,
+ SCX_Unknown,
+ SCX_Cyrillic,
+ SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
@@ -80794,10 +83219,22 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
SCX_Unknown,
+ SCX_Toto,
+ SCX_Unknown,
SCX_Wancho,
SCX_Unknown,
SCX_Wancho,
SCX_Unknown,
+ SCX_Nag_Mundari,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
SCX_Mende_Kikakui,
SCX_Unknown,
SCX_Mende_Kikakui,
@@ -80895,14 +83332,14 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Common,
SCX_Unknown,
SCX_Common,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_44,
SCX_Common,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -80956,21 +83393,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_Common,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -80992,7 +83429,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
- 1695, /* Number of elements */
+ 1772, /* 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 */
@@ -81091,7 +83528,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x61B,
0x61C,
0x61D,
- 0x61E,
0x61F,
0x620,
0x640,
@@ -81127,11 +83563,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8E2,
0x8E3,
0x900,
@@ -81303,7 +83739,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -81313,6 +83749,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -81336,14 +83774,14 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -81404,7 +83842,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -81484,9 +83922,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
+ 0x1716,
+ 0x171F,
0x1720,
0x1735,
0x1737,
@@ -81509,8 +83946,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1804,
0x1805,
0x1806,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -81553,11 +83988,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BC0,
0x1BF4,
@@ -81669,7 +84104,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F0,
0x20F1,
@@ -81697,9 +84132,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x2B96,
0x2B97,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
0x2C60,
0x2C80,
0x2CF4,
@@ -81737,7 +84169,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x2E00,
0x2E43,
0x2E44,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -81809,7 +84241,6 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
0xA000,
0xA48D,
0xA490,
@@ -81827,10 +84258,14 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xA82D,
0xA830,
@@ -81925,14 +84360,15 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0xFB45,
0xFB46,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
0xFDF2,
0xFDF3,
@@ -81998,6 +84434,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x10080,
0x100FB,
0x10100,
+ 0x10102,
0x10103,
0x10107,
0x10134,
@@ -82047,12 +84484,33 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x10564,
0x1056F,
0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -82112,6 +84570,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x10AC0,
0x10AE7,
0x10AEB,
+ 0x10AF2,
+ 0x10AF3,
0x10AF7,
0x10B00,
0x10B36,
@@ -82147,10 +84607,13 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x10EAE,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -82158,10 +84621,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x11080,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -82181,7 +84644,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -82249,7 +84712,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -82257,7 +84720,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -82289,8 +84752,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x11A48,
0x11A50,
0x11AA3,
+ 0x11AB0,
0x11AC0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -82333,6 +84799,12 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -82350,10 +84822,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -82364,6 +84836,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x16A6A,
0x16A6E,
0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -82400,11 +84875,22 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
- 0x1B11F,
+ 0x1B120,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -82419,6 +84905,12 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -82432,9 +84924,11 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -82489,6 +84983,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -82499,6 +84997,10 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -82507,10 +85009,22 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -82621,16 +85135,18 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -82644,27 +85160,23 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -82672,9 +85184,9 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -82685,6 +85197,8 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -82736,138 +85250,145 @@ typedef enum {
SCX_Coptic = 26,
SCX_Cuneiform = 27,
SCX_Cypriot = 28,
- SCX_Cyrillic = 29,
- SCX_Deseret = 30,
- SCX_Devanagari = 31,
- SCX_Dives_Akuru = 32,
- SCX_Dogra = 33,
- SCX_Duployan = 34,
- SCX_Egyptian_Hieroglyphs = 35,
- SCX_Elbasan = 36,
- SCX_Elymaic = 37,
- SCX_Ethiopic = 38,
- SCX_Georgian = 39,
- SCX_Glagolitic = 40,
- SCX_Gothic = 41,
- SCX_Grantha = 42,
- SCX_Greek = 43,
- SCX_Gujarati = 44,
- SCX_Gunjala_Gondi = 45,
- SCX_Gurmukhi = 46,
- SCX_Han = 47,
- SCX_Hanb = 48,
- SCX_Hangul = 49,
- SCX_Hanifi_Rohingya = 50,
- SCX_Hanunoo = 51,
- SCX_Hatran = 52,
- SCX_Hebrew = 53,
- SCX_Hiragana = 54,
- SCX_Imperial_Aramaic = 55,
- SCX_Inherited = 56,
- SCX_Inscriptional_Pahlavi = 57,
- SCX_Inscriptional_Parthian = 58,
- SCX_INVALID = 59,
- SCX_Javanese = 60,
- SCX_Jpan = 61,
- SCX_Kaithi = 62,
- SCX_Kannada = 63,
- SCX_Katakana = 64,
- SCX_Kayah_Li = 65,
- SCX_Kharoshthi = 66,
- SCX_Khitan_Small_Script = 67,
- SCX_Khmer = 68,
- SCX_Khojki = 69,
- SCX_Khudawadi = 70,
- SCX_Kore = 71,
- SCX_Lao = 72,
- SCX_Latin = 73,
- SCX_Lepcha = 74,
- SCX_Limbu = 75,
- SCX_Linear_A = 76,
- SCX_Linear_B = 77,
- SCX_Lisu = 78,
- SCX_Lycian = 79,
- SCX_Lydian = 80,
- SCX_Mahajani = 81,
- SCX_Makasar = 82,
- SCX_Malayalam = 83,
- SCX_Mandaic = 84,
- SCX_Manichaean = 85,
- SCX_Marchen = 86,
- SCX_Masaram_Gondi = 87,
- SCX_Medefaidrin = 88,
- SCX_Meetei_Mayek = 89,
- SCX_Mende_Kikakui = 90,
- SCX_Meroitic_Cursive = 91,
- SCX_Meroitic_Hieroglyphs = 92,
- SCX_Miao = 93,
- SCX_Modi = 94,
- SCX_Mongolian = 95,
- SCX_Mro = 96,
- SCX_Multani = 97,
- SCX_Myanmar = 98,
- SCX_Nabataean = 99,
- SCX_Nandinagari = 100,
- SCX_New_Tai_Lue = 101,
- SCX_Newa = 102,
- SCX_Nko = 103,
- SCX_Nushu = 104,
- SCX_Nyiakeng_Puachue_Hmong = 105,
- SCX_Ogham = 106,
- SCX_Ol_Chiki = 107,
- SCX_Old_Hungarian = 108,
- SCX_Old_Italic = 109,
- SCX_Old_North_Arabian = 110,
- SCX_Old_Permic = 111,
- SCX_Old_Persian = 112,
- SCX_Old_Sogdian = 113,
- SCX_Old_South_Arabian = 114,
- SCX_Old_Turkic = 115,
- SCX_Oriya = 116,
- SCX_Osage = 117,
- SCX_Osmanya = 118,
- SCX_Pahawh_Hmong = 119,
- SCX_Palmyrene = 120,
- SCX_Pau_Cin_Hau = 121,
- SCX_Phags_Pa = 122,
- SCX_Phoenician = 123,
- SCX_Psalter_Pahlavi = 124,
- SCX_Rejang = 125,
- SCX_Runic = 126,
- SCX_Samaritan = 127,
- SCX_Saurashtra = 128,
- SCX_Sharada = 129,
- SCX_Shavian = 130,
- SCX_Siddham = 131,
- SCX_SignWriting = 132,
- SCX_Sinhala = 133,
- SCX_Sogdian = 134,
- SCX_Sora_Sompeng = 135,
- SCX_Soyombo = 136,
- SCX_Sundanese = 137,
- SCX_Syloti_Nagri = 138,
- SCX_Syriac = 139,
- SCX_Tagalog = 140,
- SCX_Tagbanwa = 141,
- SCX_Tai_Le = 142,
- SCX_Tai_Tham = 143,
- SCX_Tai_Viet = 144,
- SCX_Takri = 145,
- SCX_Tamil = 146,
- SCX_Tangut = 147,
- SCX_Telugu = 148,
- SCX_Thaana = 149,
- SCX_Thai = 150,
- SCX_Tibetan = 151,
- SCX_Tifinagh = 152,
- SCX_Tirhuta = 153,
- SCX_Ugaritic = 154,
- SCX_Vai = 155,
- SCX_Wancho = 156,
- SCX_Warang_Citi = 157,
- SCX_Yezidi = 158,
- SCX_Yi = 159,
- SCX_Zanabazar_Square = 160,
+ SCX_Cypro_Minoan = 29,
+ SCX_Cyrillic = 30,
+ SCX_Deseret = 31,
+ SCX_Devanagari = 32,
+ SCX_Dives_Akuru = 33,
+ SCX_Dogra = 34,
+ SCX_Duployan = 35,
+ SCX_Egyptian_Hieroglyphs = 36,
+ SCX_Elbasan = 37,
+ SCX_Elymaic = 38,
+ SCX_Ethiopic = 39,
+ SCX_Georgian = 40,
+ SCX_Glagolitic = 41,
+ SCX_Gothic = 42,
+ SCX_Grantha = 43,
+ SCX_Greek = 44,
+ SCX_Gujarati = 45,
+ SCX_Gunjala_Gondi = 46,
+ SCX_Gurmukhi = 47,
+ SCX_Han = 48,
+ SCX_Hanb = 49,
+ SCX_Hangul = 50,
+ SCX_Hanifi_Rohingya = 51,
+ SCX_Hanunoo = 52,
+ SCX_Hatran = 53,
+ SCX_Hebrew = 54,
+ SCX_Hiragana = 55,
+ SCX_Imperial_Aramaic = 56,
+ SCX_Inherited = 57,
+ SCX_Inscriptional_Pahlavi = 58,
+ SCX_Inscriptional_Parthian = 59,
+ SCX_INVALID = 60,
+ SCX_Javanese = 61,
+ SCX_Jpan = 62,
+ SCX_Kaithi = 63,
+ SCX_Kannada = 64,
+ SCX_Katakana = 65,
+ SCX_Kawi = 66,
+ SCX_Kayah_Li = 67,
+ SCX_Kharoshthi = 68,
+ SCX_Khitan_Small_Script = 69,
+ SCX_Khmer = 70,
+ SCX_Khojki = 71,
+ SCX_Khudawadi = 72,
+ SCX_Kore = 73,
+ SCX_Lao = 74,
+ SCX_Latin = 75,
+ SCX_Lepcha = 76,
+ SCX_Limbu = 77,
+ SCX_Linear_A = 78,
+ SCX_Linear_B = 79,
+ SCX_Lisu = 80,
+ SCX_Lycian = 81,
+ SCX_Lydian = 82,
+ SCX_Mahajani = 83,
+ SCX_Makasar = 84,
+ SCX_Malayalam = 85,
+ SCX_Mandaic = 86,
+ SCX_Manichaean = 87,
+ SCX_Marchen = 88,
+ SCX_Masaram_Gondi = 89,
+ SCX_Medefaidrin = 90,
+ SCX_Meetei_Mayek = 91,
+ SCX_Mende_Kikakui = 92,
+ SCX_Meroitic_Cursive = 93,
+ SCX_Meroitic_Hieroglyphs = 94,
+ SCX_Miao = 95,
+ SCX_Modi = 96,
+ SCX_Mongolian = 97,
+ SCX_Mro = 98,
+ SCX_Multani = 99,
+ SCX_Myanmar = 100,
+ SCX_Nabataean = 101,
+ SCX_Nag_Mundari = 102,
+ SCX_Nandinagari = 103,
+ SCX_New_Tai_Lue = 104,
+ SCX_Newa = 105,
+ SCX_Nko = 106,
+ SCX_Nushu = 107,
+ SCX_Nyiakeng_Puachue_Hmong = 108,
+ SCX_Ogham = 109,
+ SCX_Ol_Chiki = 110,
+ SCX_Old_Hungarian = 111,
+ SCX_Old_Italic = 112,
+ SCX_Old_North_Arabian = 113,
+ SCX_Old_Permic = 114,
+ SCX_Old_Persian = 115,
+ SCX_Old_Sogdian = 116,
+ SCX_Old_South_Arabian = 117,
+ SCX_Old_Turkic = 118,
+ SCX_Old_Uyghur = 119,
+ SCX_Oriya = 120,
+ SCX_Osage = 121,
+ SCX_Osmanya = 122,
+ SCX_Pahawh_Hmong = 123,
+ SCX_Palmyrene = 124,
+ SCX_Pau_Cin_Hau = 125,
+ SCX_Phags_Pa = 126,
+ SCX_Phoenician = 127,
+ SCX_Psalter_Pahlavi = 128,
+ SCX_Rejang = 129,
+ SCX_Runic = 130,
+ SCX_Samaritan = 131,
+ SCX_Saurashtra = 132,
+ SCX_Sharada = 133,
+ SCX_Shavian = 134,
+ SCX_Siddham = 135,
+ SCX_SignWriting = 136,
+ SCX_Sinhala = 137,
+ SCX_Sogdian = 138,
+ SCX_Sora_Sompeng = 139,
+ SCX_Soyombo = 140,
+ SCX_Sundanese = 141,
+ SCX_Syloti_Nagri = 142,
+ SCX_Syriac = 143,
+ SCX_Tagalog = 144,
+ SCX_Tagbanwa = 145,
+ SCX_Tai_Le = 146,
+ SCX_Tai_Tham = 147,
+ SCX_Tai_Viet = 148,
+ SCX_Takri = 149,
+ SCX_Tamil = 150,
+ SCX_Tangsa = 151,
+ SCX_Tangut = 152,
+ SCX_Telugu = 153,
+ SCX_Thaana = 154,
+ SCX_Thai = 155,
+ SCX_Tibetan = 156,
+ SCX_Tifinagh = 157,
+ SCX_Tirhuta = 158,
+ SCX_Toto = 159,
+ SCX_Ugaritic = 160,
+ SCX_Vai = 161,
+ SCX_Vithkuqi = 162,
+ SCX_Wancho = 163,
+ SCX_Warang_Citi = 164,
+ SCX_Yezidi = 165,
+ SCX_Yi = 166,
+ SCX_Zanabazar_Square = 167,
SCX_use_AUX_TABLE_1 = -1,
SCX_use_AUX_TABLE_2 = -2,
SCX_use_AUX_TABLE_3 = -3,
@@ -82922,7 +85443,11 @@ typedef enum {
SCX_use_AUX_TABLE_52 = -52,
SCX_use_AUX_TABLE_53 = -53,
SCX_use_AUX_TABLE_54 = -54,
- SCX_use_AUX_TABLE_55 = -55
+ SCX_use_AUX_TABLE_55 = -55,
+ SCX_use_AUX_TABLE_56 = -56,
+ SCX_use_AUX_TABLE_57 = -57,
+ SCX_use_AUX_TABLE_58 = -58,
+ SCX_use_AUX_TABLE_59 = -59
} SCX_enum;
# endif /* EBCDIC 037 */
@@ -82959,6 +85484,7 @@ static const SCX_enum SCX_AUX_TABLE_4[] = {
static const SCX_enum SCX_AUX_TABLE_5[] = {
SCX_Arabic,
SCX_Hanifi_Rohingya,
+ SCX_Nko,
SCX_Syriac,
SCX_Thaana,
SCX_Yezidi
@@ -82974,30 +85500,41 @@ static const SCX_enum SCX_AUX_TABLE_7[] = {
SCX_Adlam,
SCX_Arabic,
SCX_Hanifi_Rohingya,
+ SCX_Nko,
+ SCX_Syriac,
+ SCX_Thaana,
+ SCX_Yezidi
+};
+
+static const SCX_enum SCX_AUX_TABLE_8[] = {
+ SCX_Adlam,
+ SCX_Arabic,
+ SCX_Hanifi_Rohingya,
SCX_Mandaic,
SCX_Manichaean,
+ SCX_Old_Uyghur,
SCX_Psalter_Pahlavi,
SCX_Sogdian,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_8[] = {
+static const SCX_enum SCX_AUX_TABLE_9[] = {
SCX_Arabic,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_9[] = {
+static const SCX_enum SCX_AUX_TABLE_10[] = {
SCX_Arabic,
SCX_Thaana,
SCX_Yezidi
};
-static const SCX_enum SCX_AUX_TABLE_10[] = {
+static const SCX_enum SCX_AUX_TABLE_11[] = {
SCX_Arabic,
SCX_Hanifi_Rohingya
};
-static const SCX_enum SCX_AUX_TABLE_11[] = {
+static const SCX_enum SCX_AUX_TABLE_12[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -83013,7 +85550,7 @@ static const SCX_enum SCX_AUX_TABLE_11[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_12[] = {
+static const SCX_enum SCX_AUX_TABLE_13[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -83028,7 +85565,7 @@ static const SCX_enum SCX_AUX_TABLE_12[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_13[] = {
+static const SCX_enum SCX_AUX_TABLE_14[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Dogra,
@@ -83051,7 +85588,7 @@ static const SCX_enum SCX_AUX_TABLE_13[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_14[] = {
+static const SCX_enum SCX_AUX_TABLE_15[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Dogra,
@@ -83075,90 +85612,90 @@ static const SCX_enum SCX_AUX_TABLE_14[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_15[] = {
+static const SCX_enum SCX_AUX_TABLE_16[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Kaithi,
SCX_Mahajani
};
-static const SCX_enum SCX_AUX_TABLE_16[] = {
+static const SCX_enum SCX_AUX_TABLE_17[] = {
SCX_Bengali,
SCX_Chakma,
SCX_Syloti_Nagri
};
-static const SCX_enum SCX_AUX_TABLE_17[] = {
+static const SCX_enum SCX_AUX_TABLE_18[] = {
SCX_Gurmukhi,
SCX_Multani
};
-static const SCX_enum SCX_AUX_TABLE_18[] = {
+static const SCX_enum SCX_AUX_TABLE_19[] = {
SCX_Gujarati,
SCX_Khojki
};
-static const SCX_enum SCX_AUX_TABLE_19[] = {
+static const SCX_enum SCX_AUX_TABLE_20[] = {
SCX_Grantha,
SCX_Tamil
};
-static const SCX_enum SCX_AUX_TABLE_20[] = {
+static const SCX_enum SCX_AUX_TABLE_21[] = {
SCX_Kannada,
SCX_Nandinagari
};
-static const SCX_enum SCX_AUX_TABLE_21[] = {
+static const SCX_enum SCX_AUX_TABLE_22[] = {
SCX_Chakma,
SCX_Myanmar,
SCX_Tai_Le
};
-static const SCX_enum SCX_AUX_TABLE_22[] = {
+static const SCX_enum SCX_AUX_TABLE_23[] = {
SCX_Georgian,
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_23[] = {
+static const SCX_enum SCX_AUX_TABLE_24[] = {
SCX_Hangul,
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_24[] = {
+static const SCX_enum SCX_AUX_TABLE_25[] = {
SCX_Buhid,
SCX_Hanunoo,
SCX_Tagalog,
SCX_Tagbanwa
};
-static const SCX_enum SCX_AUX_TABLE_25[] = {
+static const SCX_enum SCX_AUX_TABLE_26[] = {
SCX_Mongolian,
SCX_Phags_Pa
};
-static const SCX_enum SCX_AUX_TABLE_26[] = {
+static const SCX_enum SCX_AUX_TABLE_27[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
SCX_Kannada
};
-static const SCX_enum SCX_AUX_TABLE_27[] = {
+static const SCX_enum SCX_AUX_TABLE_28[] = {
SCX_Devanagari,
SCX_Grantha
};
-static const SCX_enum SCX_AUX_TABLE_28[] = {
+static const SCX_enum SCX_AUX_TABLE_29[] = {
SCX_Bengali,
SCX_Devanagari
};
-static const SCX_enum SCX_AUX_TABLE_29[] = {
+static const SCX_enum SCX_AUX_TABLE_30[] = {
SCX_Devanagari,
SCX_Sharada
};
-static const SCX_enum SCX_AUX_TABLE_30[] = {
+static const SCX_enum SCX_AUX_TABLE_31[] = {
SCX_Devanagari,
SCX_Kannada,
SCX_Malayalam,
@@ -83167,12 +85704,12 @@ static const SCX_enum SCX_AUX_TABLE_30[] = {
SCX_Telugu
};
-static const SCX_enum SCX_AUX_TABLE_31[] = {
+static const SCX_enum SCX_AUX_TABLE_32[] = {
SCX_Devanagari,
SCX_Nandinagari
};
-static const SCX_enum SCX_AUX_TABLE_32[] = {
+static const SCX_enum SCX_AUX_TABLE_33[] = {
SCX_Bengali,
SCX_Devanagari,
SCX_Grantha,
@@ -83183,36 +85720,36 @@ static const SCX_enum SCX_AUX_TABLE_32[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_33[] = {
+static const SCX_enum SCX_AUX_TABLE_34[] = {
SCX_Devanagari,
SCX_Grantha,
SCX_Kannada
};
-static const SCX_enum SCX_AUX_TABLE_34[] = {
+static const SCX_enum SCX_AUX_TABLE_35[] = {
SCX_Cyrillic,
SCX_Syriac
};
-static const SCX_enum SCX_AUX_TABLE_35[] = {
+static const SCX_enum SCX_AUX_TABLE_36[] = {
SCX_Latin,
SCX_Mongolian
};
-static const SCX_enum SCX_AUX_TABLE_36[] = {
+static const SCX_enum SCX_AUX_TABLE_37[] = {
SCX_Devanagari,
SCX_Grantha,
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_37[] = {
+static const SCX_enum SCX_AUX_TABLE_38[] = {
SCX_Han,
SCX_Hanb,
SCX_Jpan,
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_38[] = {
+static const SCX_enum SCX_AUX_TABLE_39[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -83224,7 +85761,7 @@ static const SCX_enum SCX_AUX_TABLE_38[] = {
SCX_Yi
};
-static const SCX_enum SCX_AUX_TABLE_39[] = {
+static const SCX_enum SCX_AUX_TABLE_40[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -83235,7 +85772,7 @@ static const SCX_enum SCX_AUX_TABLE_39[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_40[] = {
+static const SCX_enum SCX_AUX_TABLE_41[] = {
SCX_Bopomofo,
SCX_Han,
SCX_Hanb,
@@ -83243,13 +85780,13 @@ static const SCX_enum SCX_AUX_TABLE_40[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_41[] = {
+static const SCX_enum SCX_AUX_TABLE_42[] = {
SCX_Hiragana,
SCX_Jpan,
SCX_Katakana
};
-static const SCX_enum SCX_AUX_TABLE_42[] = {
+static const SCX_enum SCX_AUX_TABLE_43[] = {
SCX_Han,
SCX_Hanb,
SCX_Hiragana,
@@ -83258,17 +85795,17 @@ static const SCX_enum SCX_AUX_TABLE_42[] = {
SCX_Kore
};
-static const SCX_enum SCX_AUX_TABLE_43[] = {
+static const SCX_enum SCX_AUX_TABLE_44[] = {
SCX_Hiragana,
SCX_Jpan
};
-static const SCX_enum SCX_AUX_TABLE_44[] = {
+static const SCX_enum SCX_AUX_TABLE_45[] = {
SCX_Jpan,
SCX_Katakana
};
-static const SCX_enum SCX_AUX_TABLE_45[] = {
+static const SCX_enum SCX_AUX_TABLE_46[] = {
SCX_Han,
SCX_Hanb,
SCX_Jpan,
@@ -83276,7 +85813,7 @@ static const SCX_enum SCX_AUX_TABLE_45[] = {
SCX_Latin
};
-static const SCX_enum SCX_AUX_TABLE_46[] = {
+static const SCX_enum SCX_AUX_TABLE_47[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -83293,7 +85830,7 @@ static const SCX_enum SCX_AUX_TABLE_46[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_47[] = {
+static const SCX_enum SCX_AUX_TABLE_48[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -83309,7 +85846,7 @@ static const SCX_enum SCX_AUX_TABLE_47[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_48[] = {
+static const SCX_enum SCX_AUX_TABLE_49[] = {
SCX_Devanagari,
SCX_Dogra,
SCX_Gujarati,
@@ -83323,43 +85860,59 @@ static const SCX_enum SCX_AUX_TABLE_48[] = {
SCX_Tirhuta
};
-static const SCX_enum SCX_AUX_TABLE_49[] = {
+static const SCX_enum SCX_AUX_TABLE_50[] = {
SCX_Devanagari,
SCX_Tamil
};
-static const SCX_enum SCX_AUX_TABLE_50[] = {
+static const SCX_enum SCX_AUX_TABLE_51[] = {
SCX_Kayah_Li,
SCX_Latin,
SCX_Myanmar
};
-static const SCX_enum SCX_AUX_TABLE_51[] = {
+static const SCX_enum SCX_AUX_TABLE_52[] = {
SCX_Buginese,
SCX_Javanese
};
-static const SCX_enum SCX_AUX_TABLE_52[] = {
+static const SCX_enum SCX_AUX_TABLE_53[] = {
+ SCX_Arabic,
+ SCX_Nko
+};
+
+static const SCX_enum SCX_AUX_TABLE_54[] = {
SCX_Arabic,
SCX_Thaana
};
-static const SCX_enum SCX_AUX_TABLE_53[] = {
+static const SCX_enum SCX_AUX_TABLE_55[] = {
SCX_Cypriot,
+ SCX_Cypro_Minoan,
SCX_Linear_B
};
-static const SCX_enum SCX_AUX_TABLE_54[] = {
+static const SCX_enum SCX_AUX_TABLE_56[] = {
+ SCX_Cypriot,
+ SCX_Linear_B
+};
+
+static const SCX_enum SCX_AUX_TABLE_57[] = {
SCX_Cypriot,
SCX_Linear_A,
SCX_Linear_B
};
-static const SCX_enum SCX_AUX_TABLE_55[] = {
+static const SCX_enum SCX_AUX_TABLE_58[] = {
SCX_Arabic,
SCX_Coptic
};
+static const SCX_enum SCX_AUX_TABLE_59[] = {
+ SCX_Manichaean,
+ SCX_Old_Uyghur
+};
+
static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = {
NULL, /* Placeholder */
SCX_AUX_TABLE_1,
@@ -83416,7 +85969,11 @@ static const SCX_enum * const SCX_AUX_TABLE_ptrs[] = {
SCX_AUX_TABLE_52,
SCX_AUX_TABLE_53,
SCX_AUX_TABLE_54,
- SCX_AUX_TABLE_55
+ SCX_AUX_TABLE_55,
+ SCX_AUX_TABLE_56,
+ SCX_AUX_TABLE_57,
+ SCX_AUX_TABLE_58,
+ SCX_AUX_TABLE_59
};
/* Parallel table to the above, giving the number of elements in each table
@@ -83428,57 +85985,61 @@ static const U8 SCX_AUX_TABLE_lengths[] = {
2 /* SCX_AUX_TABLE_2 */,
2 /* SCX_AUX_TABLE_3 */,
2 /* SCX_AUX_TABLE_4 */,
- 5 /* SCX_AUX_TABLE_5 */,
+ 6 /* SCX_AUX_TABLE_5 */,
3 /* SCX_AUX_TABLE_6 */,
- 8 /* SCX_AUX_TABLE_7 */,
- 2 /* SCX_AUX_TABLE_8 */,
- 3 /* SCX_AUX_TABLE_9 */,
- 2 /* SCX_AUX_TABLE_10 */,
- 13 /* SCX_AUX_TABLE_11 */,
- 12 /* SCX_AUX_TABLE_12 */,
- 20 /* SCX_AUX_TABLE_13 */,
- 21 /* SCX_AUX_TABLE_14 */,
- 4 /* SCX_AUX_TABLE_15 */,
- 3 /* SCX_AUX_TABLE_16 */,
- 2 /* SCX_AUX_TABLE_17 */,
+ 7 /* SCX_AUX_TABLE_7 */,
+ 9 /* SCX_AUX_TABLE_8 */,
+ 2 /* SCX_AUX_TABLE_9 */,
+ 3 /* SCX_AUX_TABLE_10 */,
+ 2 /* SCX_AUX_TABLE_11 */,
+ 13 /* SCX_AUX_TABLE_12 */,
+ 12 /* SCX_AUX_TABLE_13 */,
+ 20 /* SCX_AUX_TABLE_14 */,
+ 21 /* SCX_AUX_TABLE_15 */,
+ 4 /* SCX_AUX_TABLE_16 */,
+ 3 /* SCX_AUX_TABLE_17 */,
2 /* SCX_AUX_TABLE_18 */,
2 /* SCX_AUX_TABLE_19 */,
2 /* SCX_AUX_TABLE_20 */,
- 3 /* SCX_AUX_TABLE_21 */,
- 2 /* SCX_AUX_TABLE_22 */,
+ 2 /* SCX_AUX_TABLE_21 */,
+ 3 /* SCX_AUX_TABLE_22 */,
2 /* SCX_AUX_TABLE_23 */,
- 4 /* SCX_AUX_TABLE_24 */,
- 2 /* SCX_AUX_TABLE_25 */,
- 4 /* SCX_AUX_TABLE_26 */,
- 2 /* SCX_AUX_TABLE_27 */,
+ 2 /* SCX_AUX_TABLE_24 */,
+ 4 /* SCX_AUX_TABLE_25 */,
+ 2 /* SCX_AUX_TABLE_26 */,
+ 4 /* SCX_AUX_TABLE_27 */,
2 /* SCX_AUX_TABLE_28 */,
2 /* SCX_AUX_TABLE_29 */,
- 6 /* SCX_AUX_TABLE_30 */,
- 2 /* SCX_AUX_TABLE_31 */,
- 8 /* SCX_AUX_TABLE_32 */,
- 3 /* SCX_AUX_TABLE_33 */,
- 2 /* SCX_AUX_TABLE_34 */,
+ 2 /* SCX_AUX_TABLE_30 */,
+ 6 /* SCX_AUX_TABLE_31 */,
+ 2 /* SCX_AUX_TABLE_32 */,
+ 8 /* SCX_AUX_TABLE_33 */,
+ 3 /* SCX_AUX_TABLE_34 */,
2 /* SCX_AUX_TABLE_35 */,
- 3 /* SCX_AUX_TABLE_36 */,
- 4 /* SCX_AUX_TABLE_37 */,
- 9 /* SCX_AUX_TABLE_38 */,
- 8 /* SCX_AUX_TABLE_39 */,
- 5 /* SCX_AUX_TABLE_40 */,
- 3 /* SCX_AUX_TABLE_41 */,
- 6 /* SCX_AUX_TABLE_42 */,
- 2 /* SCX_AUX_TABLE_43 */,
+ 2 /* SCX_AUX_TABLE_36 */,
+ 3 /* SCX_AUX_TABLE_37 */,
+ 4 /* SCX_AUX_TABLE_38 */,
+ 9 /* SCX_AUX_TABLE_39 */,
+ 8 /* SCX_AUX_TABLE_40 */,
+ 5 /* SCX_AUX_TABLE_41 */,
+ 3 /* SCX_AUX_TABLE_42 */,
+ 6 /* SCX_AUX_TABLE_43 */,
2 /* SCX_AUX_TABLE_44 */,
- 5 /* SCX_AUX_TABLE_45 */,
- 14 /* SCX_AUX_TABLE_46 */,
- 13 /* SCX_AUX_TABLE_47 */,
- 11 /* SCX_AUX_TABLE_48 */,
- 2 /* SCX_AUX_TABLE_49 */,
- 3 /* SCX_AUX_TABLE_50 */,
- 2 /* SCX_AUX_TABLE_51 */,
+ 2 /* SCX_AUX_TABLE_45 */,
+ 5 /* SCX_AUX_TABLE_46 */,
+ 14 /* SCX_AUX_TABLE_47 */,
+ 13 /* SCX_AUX_TABLE_48 */,
+ 11 /* SCX_AUX_TABLE_49 */,
+ 2 /* SCX_AUX_TABLE_50 */,
+ 3 /* SCX_AUX_TABLE_51 */,
2 /* SCX_AUX_TABLE_52 */,
2 /* SCX_AUX_TABLE_53 */,
- 3 /* SCX_AUX_TABLE_54 */,
- 2 /* SCX_AUX_TABLE_55 */
+ 2 /* SCX_AUX_TABLE_54 */,
+ 3 /* SCX_AUX_TABLE_55 */,
+ 2 /* SCX_AUX_TABLE_56 */,
+ 3 /* SCX_AUX_TABLE_57 */,
+ 2 /* SCX_AUX_TABLE_58 */,
+ 2 /* SCX_AUX_TABLE_59 */
};
/* This table, indexed by the script enum, gives the zero code point for that
@@ -83515,6 +86076,7 @@ static const UV script_zeros[] = {
'0', /* Coptic */
'0', /* Cuneiform */
'0', /* Cypriot */
+ '0', /* Cypro_Minoan */
'0', /* Cyrillic */
'0', /* Deseret */
0x966, /* Devanagari */
@@ -83551,6 +86113,7 @@ static const UV script_zeros[] = {
0x966, /* Kaithi */
0xce6, /* Kannada */
'0', /* Katakana */
+ 0x11f50, /* Kawi */
0xa900, /* Kayah_Li */
'0', /* Kharoshthi */
'0', /* Khitan_Small_Script */
@@ -83586,6 +86149,7 @@ static const UV script_zeros[] = {
0xa66, /* Multani */
0, /* Myanmar */
'0', /* Nabataean */
+ 0x1e4f0, /* Nag_Mundari */
0xce6, /* Nandinagari */
0x19d0, /* New_Tai_Lue */
0x11450, /* Newa */
@@ -83602,6 +86166,7 @@ static const UV script_zeros[] = {
'0', /* Old_Sogdian */
'0', /* Old_South_Arabian */
'0', /* Old_Turkic */
+ '0', /* Old_Uyghur */
0xb66, /* Oriya */
'0', /* Osage */
0x104a0, /* Osmanya */
@@ -83633,6 +86198,7 @@ static const UV script_zeros[] = {
'0', /* Tai_Viet */
0x116c0, /* Takri */
0xbe6, /* Tamil */
+ 0x16ac0, /* Tangsa */
'0', /* Tangut */
0xc66, /* Telugu */
0x660, /* Thaana */
@@ -83640,8 +86206,10 @@ static const UV script_zeros[] = {
0xf20, /* Tibetan */
'0', /* Tifinagh */
0x114d0, /* Tirhuta */
+ '0', /* Toto */
'0', /* Ugaritic */
0xa620, /* Vai */
+ '0', /* Vithkuqi */
0x1e2f0, /* Wancho */
0x118e0, /* Warang_Citi */
0x660 /* Yezidi */
@@ -83742,9 +86310,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Arabic,
SCX_use_AUX_TABLE_5,
SCX_use_AUX_TABLE_6,
- SCX_Unknown,
- SCX_Arabic,
- SCX_use_AUX_TABLE_5,
SCX_Arabic,
SCX_use_AUX_TABLE_7,
SCX_Arabic,
@@ -83752,10 +86317,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Arabic,
SCX_use_AUX_TABLE_9,
SCX_Arabic,
- SCX_use_AUX_TABLE_8,
- SCX_Arabic,
SCX_use_AUX_TABLE_10,
SCX_Arabic,
+ SCX_use_AUX_TABLE_9,
+ SCX_Arabic,
+ SCX_use_AUX_TABLE_11,
+ SCX_Arabic,
SCX_Common,
SCX_Arabic,
SCX_Syriac,
@@ -83787,13 +86354,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Common,
SCX_Arabic,
SCX_Devanagari,
- SCX_use_AUX_TABLE_11,
SCX_use_AUX_TABLE_12,
+ SCX_use_AUX_TABLE_13,
SCX_Inherited,
SCX_Devanagari,
- SCX_use_AUX_TABLE_13,
SCX_use_AUX_TABLE_14,
SCX_use_AUX_TABLE_15,
+ SCX_use_AUX_TABLE_16,
SCX_Devanagari,
SCX_Bengali,
SCX_Unknown,
@@ -83821,7 +86388,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Bengali,
SCX_Unknown,
- SCX_use_AUX_TABLE_16,
+ SCX_use_AUX_TABLE_17,
SCX_Bengali,
SCX_Unknown,
SCX_Gurmukhi,
@@ -83854,7 +86421,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Gurmukhi,
SCX_Unknown,
- SCX_use_AUX_TABLE_17,
+ SCX_use_AUX_TABLE_18,
SCX_Gurmukhi,
SCX_Unknown,
SCX_Gujarati,
@@ -83881,7 +86448,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Gujarati,
SCX_Unknown,
- SCX_use_AUX_TABLE_18,
+ SCX_use_AUX_TABLE_19,
SCX_Gujarati,
SCX_Unknown,
SCX_Gujarati,
@@ -83944,7 +86511,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Tamil,
SCX_Unknown,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
SCX_Unknown,
SCX_Telugu,
@@ -83970,6 +86537,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Telugu,
SCX_Unknown,
SCX_Telugu,
+ SCX_Unknown,
+ SCX_Telugu,
SCX_Kannada,
SCX_Unknown,
SCX_Kannada,
@@ -83992,7 +86561,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Kannada,
SCX_Unknown,
- SCX_use_AUX_TABLE_20,
+ SCX_use_AUX_TABLE_21,
SCX_Unknown,
SCX_Kannada,
SCX_Unknown,
@@ -84076,7 +86645,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Tibetan,
SCX_Unknown,
SCX_Myanmar,
- SCX_use_AUX_TABLE_21,
+ SCX_use_AUX_TABLE_22,
SCX_Myanmar,
SCX_Georgian,
SCX_Unknown,
@@ -84085,9 +86654,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Georgian,
SCX_Unknown,
SCX_Georgian,
- SCX_use_AUX_TABLE_22,
- SCX_Georgian,
SCX_use_AUX_TABLE_23,
+ SCX_Georgian,
+ SCX_use_AUX_TABLE_24,
SCX_Ethiopic,
SCX_Unknown,
SCX_Ethiopic,
@@ -84138,9 +86707,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Tagalog,
SCX_Unknown,
SCX_Tagalog,
- SCX_Unknown,
SCX_Hanunoo,
- SCX_use_AUX_TABLE_24,
+ SCX_use_AUX_TABLE_25,
SCX_Unknown,
SCX_Buhid,
SCX_Unknown,
@@ -84157,11 +86725,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Khmer,
SCX_Unknown,
SCX_Mongolian,
- SCX_use_AUX_TABLE_25,
- SCX_Mongolian,
- SCX_use_AUX_TABLE_25,
+ SCX_use_AUX_TABLE_26,
SCX_Mongolian,
- SCX_Unknown,
+ SCX_use_AUX_TABLE_26,
SCX_Mongolian,
SCX_Unknown,
SCX_Mongolian,
@@ -84227,33 +86793,33 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Georgian,
SCX_Sundanese,
SCX_Unknown,
- SCX_use_AUX_TABLE_26,
- SCX_Devanagari,
- SCX_use_AUX_TABLE_26,
SCX_use_AUX_TABLE_27,
SCX_Devanagari,
+ SCX_use_AUX_TABLE_27,
SCX_use_AUX_TABLE_28,
+ SCX_Devanagari,
SCX_use_AUX_TABLE_29,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_30,
SCX_use_AUX_TABLE_29,
SCX_use_AUX_TABLE_30,
+ SCX_use_AUX_TABLE_31,
SCX_Devanagari,
- SCX_use_AUX_TABLE_29,
+ SCX_use_AUX_TABLE_30,
SCX_Devanagari,
+ SCX_use_AUX_TABLE_30,
SCX_use_AUX_TABLE_29,
- SCX_use_AUX_TABLE_28,
SCX_Devanagari,
- SCX_use_AUX_TABLE_31,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_32,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_32,
- SCX_use_AUX_TABLE_27,
SCX_use_AUX_TABLE_33,
SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_34,
+ SCX_use_AUX_TABLE_29,
SCX_Bengali,
- SCX_use_AUX_TABLE_27,
+ SCX_use_AUX_TABLE_28,
SCX_Nandinagari,
SCX_Unknown,
SCX_Latin,
@@ -84268,9 +86834,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Latin,
SCX_Greek,
SCX_Inherited,
- SCX_use_AUX_TABLE_34,
+ SCX_use_AUX_TABLE_35,
SCX_Inherited,
- SCX_Unknown,
+ SCX_Syriac,
SCX_Inherited,
SCX_Latin,
SCX_Greek,
@@ -84308,7 +86874,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Common,
SCX_Inherited,
SCX_Common,
- SCX_use_AUX_TABLE_35,
+ SCX_use_AUX_TABLE_36,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -84323,7 +86889,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Common,
SCX_Unknown,
SCX_Inherited,
- SCX_use_AUX_TABLE_36,
+ SCX_use_AUX_TABLE_37,
SCX_Unknown,
SCX_Common,
SCX_Greek,
@@ -84349,9 +86915,6 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Common,
SCX_Glagolitic,
- SCX_Unknown,
- SCX_Glagolitic,
- SCX_Unknown,
SCX_Latin,
SCX_Coptic,
SCX_Unknown,
@@ -84390,78 +86953,77 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_use_AUX_TABLE_3,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
- SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
- SCX_use_AUX_TABLE_37,
- SCX_use_AUX_TABLE_38,
- SCX_Common,
- SCX_use_AUX_TABLE_39,
SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_39,
SCX_Common,
- SCX_use_AUX_TABLE_37,
SCX_use_AUX_TABLE_40,
- SCX_use_AUX_TABLE_23,
SCX_use_AUX_TABLE_39,
- SCX_use_AUX_TABLE_41,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
- SCX_use_AUX_TABLE_39,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
+ SCX_use_AUX_TABLE_41,
+ SCX_use_AUX_TABLE_24,
+ SCX_use_AUX_TABLE_40,
SCX_use_AUX_TABLE_42,
- SCX_use_AUX_TABLE_37,
- SCX_Unknown,
+ SCX_Common,
+ SCX_use_AUX_TABLE_40,
+ SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_43,
- SCX_use_AUX_TABLE_41,
SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_38,
- SCX_use_AUX_TABLE_41,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_42,
SCX_use_AUX_TABLE_44,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
SCX_Unknown,
SCX_use_AUX_TABLE_1,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_use_AUX_TABLE_1,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_37,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_38,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
- SCX_use_AUX_TABLE_37,
- SCX_Unknown,
+ SCX_use_AUX_TABLE_38,
SCX_Yi,
SCX_Unknown,
SCX_Yi,
@@ -84474,7 +87036,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Cyrillic,
SCX_Bamum,
SCX_Unknown,
- SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_46,
SCX_Common,
SCX_Latin,
SCX_Common,
@@ -84483,11 +87045,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Latin,
SCX_Unknown,
SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
SCX_Syloti_Nagri,
SCX_Unknown,
- SCX_use_AUX_TABLE_46,
SCX_use_AUX_TABLE_47,
SCX_use_AUX_TABLE_48,
+ SCX_use_AUX_TABLE_49,
SCX_Unknown,
SCX_Phags_Pa,
SCX_Unknown,
@@ -84496,21 +87062,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Saurashtra,
SCX_Unknown,
SCX_Devanagari,
- SCX_use_AUX_TABLE_28,
+ SCX_use_AUX_TABLE_29,
SCX_Devanagari,
- SCX_use_AUX_TABLE_49,
+ SCX_use_AUX_TABLE_50,
SCX_Devanagari,
SCX_Kayah_Li,
- SCX_use_AUX_TABLE_50,
+ SCX_use_AUX_TABLE_51,
SCX_Kayah_Li,
SCX_Rejang,
SCX_Unknown,
SCX_Rejang,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
SCX_Javanese,
SCX_Unknown,
- SCX_use_AUX_TABLE_51,
+ SCX_use_AUX_TABLE_52,
SCX_Javanese,
SCX_Unknown,
SCX_Javanese,
@@ -84551,15 +87117,15 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Meetei_Mayek,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Latin,
SCX_Unknown,
@@ -84579,24 +87145,25 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
- SCX_Common,
+ SCX_use_AUX_TABLE_53,
+ SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
SCX_Unknown,
SCX_Arabic,
- SCX_use_AUX_TABLE_52,
+ SCX_use_AUX_TABLE_54,
+ SCX_Arabic,
+ SCX_use_AUX_TABLE_54,
SCX_Arabic,
- SCX_use_AUX_TABLE_52,
- SCX_Unknown,
SCX_Inherited,
SCX_Common,
SCX_Unknown,
SCX_Inherited,
SCX_Cyrillic,
SCX_Common,
- SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_40,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -84614,20 +87181,20 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Common,
SCX_Latin,
SCX_Common,
- SCX_use_AUX_TABLE_38,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_41,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_39,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_45,
+ SCX_use_AUX_TABLE_42,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
- SCX_use_AUX_TABLE_23,
+ SCX_use_AUX_TABLE_24,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -84649,11 +87216,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Linear_B,
SCX_Unknown,
- SCX_use_AUX_TABLE_53,
+ SCX_use_AUX_TABLE_55,
+ SCX_use_AUX_TABLE_56,
SCX_Unknown,
- SCX_use_AUX_TABLE_54,
+ SCX_use_AUX_TABLE_57,
SCX_Unknown,
- SCX_use_AUX_TABLE_53,
+ SCX_use_AUX_TABLE_56,
SCX_Greek,
SCX_Unknown,
SCX_Common,
@@ -84667,7 +87235,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Carian,
SCX_Unknown,
- SCX_use_AUX_TABLE_55,
+ SCX_use_AUX_TABLE_58,
SCX_Unknown,
SCX_Old_Italic,
SCX_Unknown,
@@ -84698,6 +87266,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Caucasian_Albanian,
SCX_Unknown,
SCX_Caucasian_Albanian,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
+ SCX_Unknown,
+ SCX_Vithkuqi,
SCX_Unknown,
SCX_Linear_A,
SCX_Unknown,
@@ -84705,6 +87288,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Linear_A,
SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
SCX_Cypriot,
SCX_Unknown,
SCX_Cypriot,
@@ -84764,6 +87353,8 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Manichaean,
SCX_Unknown,
SCX_Manichaean,
+ SCX_use_AUX_TABLE_59,
+ SCX_Manichaean,
SCX_Unknown,
SCX_Avestan,
SCX_Unknown,
@@ -84799,10 +87390,13 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Yezidi,
SCX_Unknown,
+ SCX_Arabic,
SCX_Old_Sogdian,
SCX_Unknown,
SCX_Sogdian,
SCX_Unknown,
+ SCX_Old_Uyghur,
+ SCX_Unknown,
SCX_Chorasmian,
SCX_Unknown,
SCX_Elymaic,
@@ -84849,9 +87443,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Khudawadi,
SCX_Unknown,
SCX_Grantha,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Grantha,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Unknown,
SCX_Grantha,
SCX_Unknown,
@@ -84865,7 +87459,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Grantha,
SCX_Unknown,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Grantha,
SCX_Unknown,
SCX_Grantha,
@@ -84941,8 +87535,11 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Soyombo,
SCX_Unknown,
+ SCX_Canadian_Aboriginal,
SCX_Pau_Cin_Hau,
SCX_Unknown,
+ SCX_Devanagari,
+ SCX_Unknown,
SCX_Bhaiksuki,
SCX_Unknown,
SCX_Bhaiksuki,
@@ -84985,12 +87582,18 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Makasar,
SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
+ SCX_Kawi,
+ SCX_Unknown,
SCX_Lisu,
SCX_Unknown,
SCX_Tamil,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
- SCX_use_AUX_TABLE_19,
+ SCX_use_AUX_TABLE_20,
SCX_Tamil,
SCX_Unknown,
SCX_Tamil,
@@ -85002,7 +87605,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Cuneiform,
SCX_Unknown,
- SCX_Egyptian_Hieroglyphs,
+ SCX_Cypro_Minoan,
SCX_Unknown,
SCX_Egyptian_Hieroglyphs,
SCX_Unknown,
@@ -85015,6 +87618,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Mro,
SCX_Unknown,
SCX_Mro,
+ SCX_Tangsa,
+ SCX_Unknown,
+ SCX_Tangsa,
SCX_Unknown,
SCX_Bassa_Vah,
SCX_Unknown,
@@ -85040,10 +87646,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Tangut,
SCX_Nushu,
- SCX_Common,
+ SCX_use_AUX_TABLE_38,
SCX_Khitan_Small_Script,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Tangut,
SCX_Unknown,
@@ -85052,13 +87658,24 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Tangut,
SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
SCX_use_AUX_TABLE_44,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_45,
SCX_Unknown,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_44,
SCX_Unknown,
SCX_use_AUX_TABLE_44,
SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_45,
+ SCX_Unknown,
SCX_Nushu,
SCX_Unknown,
SCX_Duployan,
@@ -85071,6 +87688,12 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Duployan,
SCX_Unknown,
+ SCX_Inherited,
+ SCX_Unknown,
+ SCX_Inherited,
+ SCX_Unknown,
+ SCX_Common,
+ SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -85091,7 +87714,9 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_Common,
+ SCX_Unknown,
+ SCX_use_AUX_TABLE_38,
SCX_Common,
SCX_Unknown,
SCX_Common,
@@ -85141,6 +87766,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_SignWriting,
SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
+ SCX_Latin,
+ SCX_Unknown,
SCX_Glagolitic,
SCX_Unknown,
SCX_Glagolitic,
@@ -85151,6 +87780,10 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Glagolitic,
SCX_Unknown,
+ SCX_Cyrillic,
+ SCX_Unknown,
+ SCX_Cyrillic,
+ SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
@@ -85159,10 +87792,22 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Nyiakeng_Puachue_Hmong,
SCX_Unknown,
+ SCX_Toto,
+ SCX_Unknown,
SCX_Wancho,
SCX_Unknown,
SCX_Wancho,
SCX_Unknown,
+ SCX_Nag_Mundari,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
+ SCX_Ethiopic,
+ SCX_Unknown,
SCX_Mende_Kikakui,
SCX_Unknown,
SCX_Mende_Kikakui,
@@ -85260,14 +87905,14 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Common,
SCX_Unknown,
SCX_Common,
- SCX_use_AUX_TABLE_43,
+ SCX_use_AUX_TABLE_44,
SCX_Common,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -85321,21 +87966,21 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
SCX_Unknown,
SCX_Common,
SCX_Unknown,
- SCX_Common,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
- SCX_use_AUX_TABLE_37,
+ SCX_use_AUX_TABLE_38,
SCX_Unknown,
SCX_Common,
SCX_Unknown,
@@ -85354,7 +87999,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
- 1884, /* Number of elements */
+ 1979, /* 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 */
@@ -85526,11 +88171,15 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -85724,6 +88373,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
+ 0xC3C,
0xC3D,
0xC3E,
0xC45,
@@ -85735,6 +88385,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC64,
@@ -85763,7 +88415,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -85772,6 +88424,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xCF0,
0xCF1,
0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD0D,
@@ -85834,7 +88487,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF00,
@@ -85943,11 +88596,9 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1732,
0x1735,
0x1740,
@@ -86003,12 +88654,12 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -86049,8 +88700,6 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1CFB,
0x1D00,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1F16,
0x1F18,
@@ -86241,10 +88890,6 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x2B55,
0x2B56,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -86338,10 +88983,14 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xA6F0,
0xA6F2,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -86574,12 +89223,34 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -86658,6 +89329,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F1D,
0x10F27,
@@ -86665,6 +89337,9 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x10F30,
0x10F46,
0x10F51,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -86675,12 +89350,18 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x11047,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -86722,6 +89403,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -86866,7 +89549,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -86918,6 +89601,18 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x11EE0,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -86926,10 +89621,14 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -86938,6 +89637,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -86971,8 +89674,18 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x16FE5,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1BC00,
@@ -86987,6 +89700,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -87073,6 +89790,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -87083,6 +89804,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -87092,10 +89817,25 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -87455,6 +90195,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
WB_Extend,
WB_Format,
WB_Extend,
@@ -87649,6 +90393,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Extend,
WB_ALetter,
WB_Extend,
WB_Other,
@@ -87661,6 +90406,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_Numeric,
@@ -87696,6 +90443,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Numeric,
WB_Other,
WB_ALetter,
+ WB_Extend,
WB_Other,
WB_Extend,
WB_ALetter,
@@ -87868,8 +90616,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
- WB_Other,
- WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -87892,7 +90638,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Extend,
WB_Format,
- WB_Other,
+ WB_Extend,
WB_Numeric,
WB_Other,
WB_ALetter,
@@ -87974,8 +90720,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Extend,
- WB_Other,
- WB_Extend,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -88168,10 +90912,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
- WB_Other,
- WB_ALetter,
- WB_Other,
- WB_ALetter,
WB_Extend,
WB_ALetter,
WB_Other,
@@ -88267,6 +91007,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_ALetter,
WB_Extend,
@@ -88534,6 +91278,28 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_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,
@@ -88583,9 +91349,13 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Extend,
@@ -88599,6 +91369,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Extend,
WB_Other,
WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
WB_Other,
WB_Extend,
WB_ALetter,
@@ -88606,6 +91380,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Format,
WB_Other,
+ WB_Extend,
+ WB_Other,
WB_Format,
WB_Other,
WB_ALetter,
@@ -88646,6 +91422,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Extend,
WB_Other,
WB_Extend,
+ WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Other,
@@ -88843,6 +91621,18 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -88853,7 +91643,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_ALetter,
WB_Format,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Other,
@@ -88865,6 +91659,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -88900,6 +91698,16 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Katakana,
WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -88915,6 +91723,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Extend,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
WB_Format,
WB_Extend,
WB_Other,
@@ -88998,6 +91810,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
WB_Extend,
WB_Other,
WB_Extend,
@@ -89006,6 +91824,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -89019,9 +91839,24 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
WB_Numeric,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ 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_Extend,
WB_Other,
@@ -89181,7 +92016,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
- 1907, /* Number of elements */
+ 2002, /* 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 */
@@ -89376,11 +92211,15 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -89574,6 +92413,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
+ 0xC3C,
0xC3D,
0xC3E,
0xC45,
@@ -89585,6 +92425,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC64,
@@ -89613,7 +92455,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -89622,6 +92464,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xCF0,
0xCF1,
0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD0D,
@@ -89684,7 +92527,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF00,
@@ -89793,11 +92636,9 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1732,
0x1735,
0x1740,
@@ -89853,12 +92694,12 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -89899,8 +92740,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1CFB,
0x1D00,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1F16,
0x1F18,
@@ -90091,10 +92930,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x2B55,
0x2B56,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -90188,10 +93023,14 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xA6F0,
0xA6F2,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -90424,12 +93263,34 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -90508,6 +93369,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F1D,
0x10F27,
@@ -90515,6 +93377,9 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x10F30,
0x10F46,
0x10F51,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -90525,12 +93390,18 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x11047,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -90572,6 +93443,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -90716,7 +93589,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -90768,6 +93641,18 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x11EE0,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -90776,10 +93661,14 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -90788,6 +93677,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -90821,8 +93714,18 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x16FE5,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1BC00,
@@ -90837,6 +93740,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -90923,6 +93830,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -90933,6 +93844,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -90942,10 +93857,25 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -91331,6 +94261,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
WB_Extend,
WB_Format,
WB_Extend,
@@ -91525,6 +94459,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Extend,
WB_ALetter,
WB_Extend,
WB_Other,
@@ -91537,6 +94472,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_Numeric,
@@ -91572,6 +94509,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Numeric,
WB_Other,
WB_ALetter,
+ WB_Extend,
WB_Other,
WB_Extend,
WB_ALetter,
@@ -91744,8 +94682,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
- WB_Other,
- WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -91768,7 +94704,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Extend,
WB_Format,
- WB_Other,
+ WB_Extend,
WB_Numeric,
WB_Other,
WB_ALetter,
@@ -91850,8 +94786,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Extend,
- WB_Other,
- WB_Extend,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -92044,10 +94978,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
- WB_Other,
- WB_ALetter,
- WB_Other,
- WB_ALetter,
WB_Extend,
WB_ALetter,
WB_Other,
@@ -92143,6 +95073,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_ALetter,
WB_Extend,
@@ -92410,6 +95344,28 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_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,
@@ -92459,9 +95415,13 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Extend,
@@ -92475,6 +95435,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Extend,
WB_Other,
WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
WB_Other,
WB_Extend,
WB_ALetter,
@@ -92482,6 +95446,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Format,
WB_Other,
+ WB_Extend,
+ WB_Other,
WB_Format,
WB_Other,
WB_ALetter,
@@ -92522,6 +95488,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Extend,
WB_Other,
WB_Extend,
+ WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Other,
@@ -92719,6 +95687,18 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -92729,7 +95709,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_ALetter,
WB_Format,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Other,
@@ -92741,6 +95725,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -92776,6 +95764,16 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Katakana,
WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -92791,6 +95789,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Extend,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
WB_Format,
WB_Extend,
WB_Other,
@@ -92874,6 +95876,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_Extend,
@@ -92887,6 +95893,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
WB_ALetter,
WB_Other,
WB_Numeric,
@@ -92895,10 +95905,25 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
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_Extend,
WB_Other,
WB_ALetter,
@@ -93057,7 +96082,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
- 1903, /* Number of elements */
+ 1998, /* 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 */
@@ -93248,11 +96273,15 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -93446,6 +96475,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
+ 0xC3C,
0xC3D,
0xC3E,
0xC45,
@@ -93457,6 +96487,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC64,
@@ -93485,7 +96517,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -93494,6 +96526,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xCF0,
0xCF1,
0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD0D,
@@ -93556,7 +96589,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF00,
@@ -93665,11 +96698,9 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1732,
0x1735,
0x1740,
@@ -93725,12 +96756,12 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -93771,8 +96802,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1CFB,
0x1D00,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1F16,
0x1F18,
@@ -93963,10 +96992,6 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x2B55,
0x2B56,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -94060,10 +97085,14 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xA6F0,
0xA6F2,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -94296,12 +97325,34 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -94380,6 +97431,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
+ 0x10EFD,
0x10F00,
0x10F1D,
0x10F27,
@@ -94387,6 +97439,9 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x10F30,
0x10F46,
0x10F51,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -94397,12 +97452,18 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x11047,
0x11066,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -94444,6 +97505,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -94588,7 +97651,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -94640,6 +97703,18 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x11EE0,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -94648,10 +97723,14 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
0x13430,
- 0x13439,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -94660,6 +97739,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -94693,8 +97776,18 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x16FE5,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1BC00,
@@ -94709,6 +97802,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -94795,6 +97892,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -94805,6 +97906,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -94814,10 +97919,25 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -95199,6 +98319,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Format,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
WB_Extend,
WB_Format,
WB_Extend,
@@ -95393,6 +98517,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Extend,
WB_ALetter,
WB_Extend,
WB_Other,
@@ -95405,6 +98530,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_Numeric,
@@ -95440,6 +98567,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Numeric,
WB_Other,
WB_ALetter,
+ WB_Extend,
WB_Other,
WB_Extend,
WB_ALetter,
@@ -95612,8 +98740,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
- WB_Other,
- WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -95636,7 +98762,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Extend,
WB_Format,
- WB_Other,
+ WB_Extend,
WB_Numeric,
WB_Other,
WB_ALetter,
@@ -95718,8 +98844,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Extend,
- WB_Other,
- WB_Extend,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -95912,10 +99036,6 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
- WB_Other,
- WB_ALetter,
- WB_Other,
- WB_ALetter,
WB_Extend,
WB_ALetter,
WB_Other,
@@ -96011,6 +99131,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_ALetter,
WB_Extend,
@@ -96278,6 +99402,28 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_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,
@@ -96327,9 +99473,13 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Extend,
@@ -96343,6 +99493,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Extend,
WB_Other,
WB_Numeric,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
WB_Other,
WB_Extend,
WB_ALetter,
@@ -96350,6 +99504,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Format,
WB_Other,
+ WB_Extend,
+ WB_Other,
WB_Format,
WB_Other,
WB_ALetter,
@@ -96390,6 +99546,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Extend,
WB_Other,
WB_Extend,
+ WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Other,
@@ -96587,6 +99745,18 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -96597,7 +99767,11 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_ALetter,
WB_Format,
+ WB_Extend,
+ WB_ALetter,
+ WB_Extend,
WB_Other,
WB_ALetter,
WB_Other,
@@ -96609,6 +99783,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -96644,6 +99822,16 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Katakana,
WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
+ WB_Katakana,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -96659,6 +99847,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Extend,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
WB_Format,
WB_Extend,
WB_Other,
@@ -96742,6 +99934,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_Extend,
@@ -96755,6 +99951,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
WB_ALetter,
WB_Other,
WB_Numeric,
@@ -96763,10 +99963,25 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
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_Extend,
WB_Other,
WB_ALetter,
@@ -96922,7 +100137,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */
- 1291, /* Number of elements */
+ 1307, /* 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 */
@@ -97846,7 +101061,7 @@ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -98190,6 +101405,8 @@ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -98199,6 +101416,12 @@ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -98209,6 +101432,14 @@ static const UV Simple_Case_Folding_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -99492,6 +102723,8 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -99501,6 +102734,12 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0x13A0,
@@ -99511,6 +102750,14 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -99533,7 +102780,7 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */
- 1309, /* Number of elements */
+ 1325, /* 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 */
@@ -100475,7 +103722,7 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -100819,6 +104066,8 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -100828,6 +104077,12 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -100838,6 +104093,14 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -102142,6 +105405,8 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -102151,6 +105416,12 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0x13A0,
@@ -102161,6 +105432,14 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -102183,7 +105462,7 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */
- 1305, /* Number of elements */
+ 1321, /* 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 */
@@ -103121,7 +106400,7 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -103465,6 +106744,8 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
@@ -103474,6 +106755,12 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -103484,6 +106771,14 @@ static const UV Simple_Case_Folding_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -104784,6 +108079,8 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */
0,
0xA7BF,
0,
+ 0xA7C1,
+ 0,
0xA7C3,
0,
0xA794,
@@ -104793,6 +108090,12 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */
0,
0xA7CA,
0,
+ 0xA7D1,
+ 0,
+ 0xA7D7,
+ 0,
+ 0xA7D9,
+ 0,
0xA7F6,
0,
0x13A0,
@@ -104803,6 +108106,14 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */
0,
0x104D8,
0,
+ 0x10597,
+ 0,
+ 0x105A3,
+ 0,
+ 0x105B3,
+ 0,
+ 0x105BB,
+ 0,
0x10CC0,
0,
0x118C0,
@@ -104822,7 +108133,7 @@ static const I32 Simple_Case_Folding_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV Titlecase_Mapping_invlist[] = { /* for ASCII/Latin1 */
- 1340, /* Number of elements */
+ 1356, /* 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 */
@@ -105796,7 +109107,7 @@ static const UV Titlecase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -106127,12 +109438,20 @@ static const UV Titlecase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -106158,6 +109477,14 @@ static const UV Titlecase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -107873,12 +111200,20 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -107904,6 +111239,14 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -107926,7 +111269,7 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 1047 */
- 1356, /* Number of elements */
+ 1372, /* 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 */
@@ -108916,7 +112259,7 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -109247,12 +112590,20 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -109278,6 +112629,14 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -111012,12 +114371,20 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -111043,6 +114410,14 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -111065,7 +114440,7 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 037 */
- 1354, /* Number of elements */
+ 1370, /* 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 */
@@ -112053,7 +115428,7 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -112384,12 +115759,20 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -112415,6 +115798,14 @@ static const UV Titlecase_Mapping_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -114147,12 +117538,20 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -114178,6 +117577,14 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -114197,7 +117604,7 @@ static const I32 Titlecase_Mapping_invmap[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV Uppercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
- 1391, /* Number of elements */
+ 1407, /* 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 */
@@ -115222,7 +118629,7 @@ static const UV Uppercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -115553,12 +118960,20 @@ static const UV Uppercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -115584,6 +118999,14 @@ static const UV Uppercase_Mapping_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -117566,12 +120989,20 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -117597,6 +121028,14 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -117619,7 +121058,7 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
- 1407, /* Number of elements */
+ 1423, /* 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 */
@@ -118660,7 +122099,7 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -118991,12 +122430,20 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -119022,6 +122469,14 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -121023,12 +124478,20 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -121054,6 +124517,14 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -121076,7 +124547,7 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 037 */
- 1405, /* Number of elements */
+ 1421, /* 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 */
@@ -122115,7 +125586,7 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -122446,12 +125917,20 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -122477,6 +125956,14 @@ static const UV Uppercase_Mapping_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -124476,12 +127963,20 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0xA7BE,
0,
+ 0xA7C0,
+ 0,
0xA7C2,
0,
0xA7C7,
0,
0xA7C9,
0,
+ 0xA7D0,
+ 0,
+ 0xA7D6,
+ 0,
+ 0xA7D8,
+ 0,
0xA7F5,
0,
0xA7B3,
@@ -124507,6 +128002,14 @@ static const I32 Uppercase_Mapping_invmap[] = { /* for EBCDIC 037 */
0,
0x104B0,
0,
+ 0x10570,
+ 0,
+ 0x1057C,
+ 0,
+ 0x1058C,
+ 0,
+ 0x10594,
+ 0,
0x10C80,
0,
0x118A0,
@@ -124829,7 +128332,7 @@ static const UV UNI_ASCII_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
- 1354, /* Number of elements */
+ 1414, /* 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 */
@@ -124858,8 +128361,6 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -124877,11 +128378,11 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -125037,7 +128538,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -125047,6 +128548,8 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -125069,14 +128572,14 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -125136,7 +128639,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -125204,10 +128707,8 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -125224,8 +128725,6 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -125264,11 +128763,11 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -125284,8 +128783,6 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -125326,7 +128823,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -125340,10 +128837,6 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -125374,7 +128867,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -125398,8 +128891,6 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -125408,10 +128899,14 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -125482,16 +128977,14 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -125578,13 +129071,33 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -125667,10 +129180,12 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -125678,9 +129193,9 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -125700,7 +129215,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -125764,7 +129279,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -125772,7 +129287,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -125803,8 +129318,10 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -125847,6 +129364,12 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -125859,10 +129382,10 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -125872,7 +129395,9 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -125905,10 +129430,20 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -125923,14 +129458,22 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -125983,6 +129526,10 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -125993,6 +129540,10 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -126001,10 +129552,22 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -126113,16 +129676,18 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -126136,27 +129701,23 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -126164,9 +129725,9 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -126177,6 +129738,8 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -126192,7 +129755,7 @@ static const UV UNI_ASSIGNED_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
- 283, /* Number of elements */
+ 315, /* 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 */
@@ -126259,7 +129822,7 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
0x10CE,
0x10D0,
0x10FB,
- 0x10FD,
+ 0x10FC,
0x1100,
0x13A0,
0x13F6,
@@ -126352,10 +129915,6 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -126376,17 +129935,21 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
0xA78B,
0xA78F,
0xA790,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA7F7,
0xA7F8,
0xA7FB,
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -126403,6 +129966,30 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10C80,
0x10CB3,
0x10CC0,
@@ -126471,6 +130058,14 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E900,
0x1E944,
0x1F130,
@@ -126489,7 +130084,7 @@ static const UV UNI_CASED_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
- 309, /* Number of elements */
+ 341, /* 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 */
@@ -126582,7 +130177,7 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
0x10CE,
0x10D0,
0x10FB,
- 0x10FD,
+ 0x10FC,
0x1100,
0x13A0,
0x13F6,
@@ -126675,10 +130270,6 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -126699,17 +130290,21 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
0xA78B,
0xA78F,
0xA790,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA7F7,
0xA7F8,
0xA7FB,
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -126726,6 +130321,30 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10C80,
0x10CB3,
0x10CC0,
@@ -126794,6 +130413,14 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E900,
0x1E944,
0x1F130,
@@ -126812,7 +130439,7 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
- 305, /* Number of elements */
+ 337, /* 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 */
@@ -126901,7 +130528,7 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
0x10CE,
0x10D0,
0x10FB,
- 0x10FD,
+ 0x10FC,
0x1100,
0x13A0,
0x13F6,
@@ -126994,10 +130621,6 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -127018,17 +130641,21 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
0xA78B,
0xA78F,
0xA790,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA7F7,
0xA7F8,
0xA7FB,
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -127045,6 +130672,30 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10C80,
0x10CB3,
0x10CC0,
@@ -127113,6 +130764,14 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E900,
0x1E944,
0x1F130,
@@ -127128,7 +130787,7 @@ static const UV UNI_CASED_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */
- 265, /* Number of elements */
+ 287, /* 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 */
@@ -127272,10 +130931,6 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C7C,
0x2C7E,
0x2CE5,
@@ -127300,9 +130955,13 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */
0xA78B,
0xA78F,
0xA790,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xA7FA,
@@ -127327,6 +130986,22 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -127395,6 +131070,12 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E900,
0x1E944
};
@@ -127407,7 +131088,7 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */
- 297, /* Number of elements */
+ 319, /* 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 */
@@ -127583,10 +131264,6 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C7C,
0x2C7E,
0x2CE5,
@@ -127611,9 +131288,13 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */
0xA78B,
0xA78F,
0xA790,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xA7FA,
@@ -127638,6 +131319,22 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -127706,6 +131403,12 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E900,
0x1E944
};
@@ -127718,7 +131421,7 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */
- 293, /* Number of elements */
+ 315, /* 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 */
@@ -127890,10 +131593,6 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C7C,
0x2C7E,
0x2CE5,
@@ -127918,9 +131617,13 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */
0xA78B,
0xA78F,
0xA790,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xA7FA,
@@ -127945,6 +131648,22 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -128013,6 +131732,12 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E900,
0x1E944
};
@@ -128022,7 +131747,7 @@ static const UV UNI_CASEDLETTER_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
- 1291, /* Number of elements */
+ 1317, /* 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 */
@@ -128890,7 +132615,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0x2184,
0x2185,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -129227,12 +132952,24 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xA7FA,
@@ -129253,6 +132990,14 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -129315,6 +133060,12 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E922,
0x1E944
};
@@ -129327,7 +133078,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
- 1305, /* Number of elements */
+ 1331, /* 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 */
@@ -130209,7 +133960,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0x2184,
0x2185,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -130546,12 +134297,24 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xA7FA,
@@ -130572,6 +134335,14 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -130634,6 +134405,12 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E922,
0x1E944
};
@@ -130646,7 +134423,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */
- 1305, /* Number of elements */
+ 1331, /* 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 */
@@ -131528,7 +135305,7 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0x2184,
0x2185,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -131865,12 +135642,24 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xA7FA,
@@ -131891,6 +135680,14 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -131953,6 +135750,12 @@ static const UV UNI_LOWERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E922,
0x1E944
};
@@ -132949,7 +136752,7 @@ static const UV UNI_TITLE_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
- 1277, /* Number of elements */
+ 1293, /* 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 */
@@ -133817,7 +137620,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0x2183,
0x2184,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -134146,12 +137949,20 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -134160,6 +137971,14 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -134240,7 +138059,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
- 1295, /* Number of elements */
+ 1311, /* 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 */
@@ -135126,7 +138945,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0x2183,
0x2184,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -135455,12 +139274,20 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -135469,6 +139296,14 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -135549,7 +139384,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 037 */
- 1291, /* Number of elements */
+ 1307, /* 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 */
@@ -136431,7 +140266,7 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0x2183,
0x2184,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -136760,12 +140595,20 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -136774,6 +140617,14 @@ static const UV UNI_UPPERCASELETTER_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -136915,7 +140766,7 @@ static const UV UNI_VERTSPACE_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
- 1465, /* Number of elements */
+ 1545, /* 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 */
@@ -137024,10 +140875,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8D4,
0x8E0,
0x8E3,
@@ -137195,8 +141048,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0xBE6,
0xBF0,
0xC00,
- 0xC04,
- 0xC05,
0xC0D,
0xC0E,
0xC11,
@@ -137214,6 +141065,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -137238,14 +141091,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0xCCD,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -137331,7 +141184,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0xF49,
0xF6D,
0xF71,
- 0xF82,
+ 0xF84,
0xF88,
0xF98,
0xF99,
@@ -137401,10 +141254,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1714,
- 0x1720,
+ 0x171F,
0x1734,
0x1740,
0x1754,
@@ -137462,12 +141313,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1AA8,
0x1ABF,
0x1AC1,
+ 0x1ACC,
+ 0x1ACF,
0x1B00,
0x1B34,
0x1B35,
0x1B44,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B80,
@@ -137575,10 +141428,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -137643,8 +141492,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -137663,10 +141510,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA806,
0xA807,
0xA828,
@@ -137836,12 +141687,34 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -137918,6 +141791,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -137926,8 +141801,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x11046,
0x11066,
0x11070,
- 0x11082,
+ 0x11071,
+ 0x11076,
+ 0x11080,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -137957,7 +141836,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x11237,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -138042,6 +141921,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1172B,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x11839,
0x118A0,
@@ -138082,7 +141963,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x11A98,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -138134,6 +142015,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -138142,8 +142031,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
@@ -138152,6 +142045,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16B00,
@@ -138184,10 +142081,20 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -138264,6 +142171,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -138274,6 +142185,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E137,
@@ -138282,10 +142197,24 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -138371,9 +142300,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -138383,7 +142312,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -138394,7 +142325,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
- 1489, /* Number of elements */
+ 1569, /* 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 */
@@ -138527,10 +142458,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8D4,
0x8E0,
0x8E3,
@@ -138698,8 +142631,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0xBE6,
0xBF0,
0xC00,
- 0xC04,
- 0xC05,
0xC0D,
0xC0E,
0xC11,
@@ -138717,6 +142648,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -138741,14 +142674,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0xCCD,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -138834,7 +142767,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0xF49,
0xF6D,
0xF71,
- 0xF82,
+ 0xF84,
0xF88,
0xF98,
0xF99,
@@ -138904,10 +142837,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1714,
- 0x1720,
+ 0x171F,
0x1734,
0x1740,
0x1754,
@@ -138965,12 +142896,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1AA8,
0x1ABF,
0x1AC1,
+ 0x1ACC,
+ 0x1ACF,
0x1B00,
0x1B34,
0x1B35,
0x1B44,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B80,
@@ -139078,10 +143011,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -139146,8 +143075,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -139166,10 +143093,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA806,
0xA807,
0xA828,
@@ -139339,12 +143270,34 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -139421,6 +143374,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -139429,8 +143384,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x11046,
0x11066,
0x11070,
- 0x11082,
+ 0x11071,
+ 0x11076,
+ 0x11080,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -139460,7 +143419,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x11237,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -139545,6 +143504,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1172B,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x11839,
0x118A0,
@@ -139585,7 +143546,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x11A98,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -139637,6 +143598,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -139645,8 +143614,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
@@ -139655,6 +143628,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16B00,
@@ -139687,10 +143664,20 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -139767,6 +143754,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -139777,6 +143768,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E137,
@@ -139785,10 +143780,24 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -139874,9 +143883,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -139886,7 +143895,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -139897,7 +143908,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
- 1485, /* Number of elements */
+ 1565, /* 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 */
@@ -140026,10 +144037,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8D4,
0x8E0,
0x8E3,
@@ -140197,8 +144210,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0xBE6,
0xBF0,
0xC00,
- 0xC04,
- 0xC05,
0xC0D,
0xC0E,
0xC11,
@@ -140216,6 +144227,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -140240,14 +144253,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0xCCD,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -140333,7 +144346,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0xF49,
0xF6D,
0xF71,
- 0xF82,
+ 0xF84,
0xF88,
0xF98,
0xF99,
@@ -140403,10 +144416,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1714,
- 0x1720,
+ 0x171F,
0x1734,
0x1740,
0x1754,
@@ -140464,12 +144475,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1AA8,
0x1ABF,
0x1AC1,
+ 0x1ACC,
+ 0x1ACF,
0x1B00,
0x1B34,
0x1B35,
0x1B44,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B80,
@@ -140577,10 +144590,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -140645,8 +144654,6 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -140665,10 +144672,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA806,
0xA807,
0xA828,
@@ -140838,12 +144849,34 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -140920,6 +144953,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -140928,8 +144963,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x11046,
0x11066,
0x11070,
- 0x11082,
+ 0x11071,
+ 0x11076,
+ 0x11080,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -140959,7 +144998,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x11237,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -141044,6 +145083,8 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1172B,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x11839,
0x118A0,
@@ -141084,7 +145125,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x11A98,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -141136,6 +145177,14 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -141144,8 +145193,12 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
@@ -141154,6 +145207,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16B00,
@@ -141186,10 +145243,20 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -141266,6 +145333,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -141276,6 +145347,10 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E137,
@@ -141284,10 +145359,24 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -141373,9 +145462,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -141385,7 +145474,9 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -141393,7 +145484,7 @@ static const UV UNI_XPOSIXALNUM_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
- 1391, /* Number of elements */
+ 1465, /* 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 */
@@ -141502,10 +145593,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8D4,
0x8E0,
0x8E3,
@@ -141665,8 +145758,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0xBD7,
0xBD8,
0xC00,
- 0xC04,
- 0xC05,
0xC0D,
0xC0E,
0xC11,
@@ -141684,6 +145775,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC80,
@@ -141706,12 +145799,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0xCCD,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -141787,7 +145880,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0xF49,
0xF6D,
0xF71,
- 0xF82,
+ 0xF84,
0xF88,
0xF98,
0xF99,
@@ -141859,10 +145952,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1714,
- 0x1720,
+ 0x171F,
0x1734,
0x1740,
0x1754,
@@ -141910,12 +146001,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x1AA8,
0x1ABF,
0x1AC1,
+ 0x1ACC,
+ 0x1ACF,
0x1B00,
0x1B34,
0x1B35,
0x1B44,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B80,
0x1BAA,
0x1BAC,
@@ -142023,10 +146116,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -142091,8 +146180,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -142113,10 +146200,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA806,
0xA807,
0xA828,
@@ -142280,12 +146371,34 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -142360,14 +146473,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11000,
0x11046,
- 0x11082,
+ 0x11071,
+ 0x11076,
+ 0x11080,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x11100,
@@ -142395,7 +146514,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x11237,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -142468,6 +146587,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x1171B,
0x1171D,
0x1172B,
+ 0x11740,
+ 0x11747,
0x11800,
0x11839,
0x118A0,
@@ -142506,7 +146627,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x11A98,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -142552,6 +146673,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41,
0x11FB0,
0x11FB1,
0x12000,
@@ -142560,14 +146687,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -142598,10 +146731,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -142676,6 +146819,10 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -142686,14 +146833,30 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -142775,9 +146938,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x1F170,
0x1F18A,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -142787,7 +146950,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -142798,7 +146963,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
- 1417, /* Number of elements */
+ 1491, /* 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 */
@@ -142933,10 +147098,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8D4,
0x8E0,
0x8E3,
@@ -143096,8 +147263,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0xBD7,
0xBD8,
0xC00,
- 0xC04,
- 0xC05,
0xC0D,
0xC0E,
0xC11,
@@ -143115,6 +147280,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC80,
@@ -143137,12 +147304,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0xCCD,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -143218,7 +147385,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0xF49,
0xF6D,
0xF71,
- 0xF82,
+ 0xF84,
0xF88,
0xF98,
0xF99,
@@ -143290,10 +147457,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1714,
- 0x1720,
+ 0x171F,
0x1734,
0x1740,
0x1754,
@@ -143341,12 +147506,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x1AA8,
0x1ABF,
0x1AC1,
+ 0x1ACC,
+ 0x1ACF,
0x1B00,
0x1B34,
0x1B35,
0x1B44,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B80,
0x1BAA,
0x1BAC,
@@ -143454,10 +147621,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -143522,8 +147685,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -143544,10 +147705,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA806,
0xA807,
0xA828,
@@ -143711,12 +147876,34 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -143791,14 +147978,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11000,
0x11046,
- 0x11082,
+ 0x11071,
+ 0x11076,
+ 0x11080,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x11100,
@@ -143826,7 +148019,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x11237,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -143899,6 +148092,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x1171B,
0x1171D,
0x1172B,
+ 0x11740,
+ 0x11747,
0x11800,
0x11839,
0x118A0,
@@ -143937,7 +148132,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x11A98,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -143983,6 +148178,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41,
0x11FB0,
0x11FB1,
0x12000,
@@ -143991,14 +148192,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -144029,10 +148236,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -144107,6 +148324,10 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -144117,14 +148338,30 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -144206,9 +148443,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x1F170,
0x1F18A,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -144218,7 +148455,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -144229,7 +148468,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
- 1413, /* Number of elements */
+ 1487, /* 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 */
@@ -144360,10 +148599,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8D4,
0x8E0,
0x8E3,
@@ -144523,8 +148764,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0xBD7,
0xBD8,
0xC00,
- 0xC04,
- 0xC05,
0xC0D,
0xC0E,
0xC11,
@@ -144542,6 +148781,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC80,
@@ -144564,12 +148805,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0xCCD,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -144645,7 +148886,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0xF49,
0xF6D,
0xF71,
- 0xF82,
+ 0xF84,
0xF88,
0xF98,
0xF99,
@@ -144717,10 +148958,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1714,
- 0x1720,
+ 0x171F,
0x1734,
0x1740,
0x1754,
@@ -144768,12 +149007,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x1AA8,
0x1ABF,
0x1AC1,
+ 0x1ACC,
+ 0x1ACF,
0x1B00,
0x1B34,
0x1B35,
0x1B44,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B80,
0x1BAA,
0x1BAC,
@@ -144881,10 +149122,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -144949,8 +149186,6 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -144971,10 +149206,14 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA806,
0xA807,
0xA828,
@@ -145138,12 +149377,34 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -145218,14 +149479,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11000,
0x11046,
- 0x11082,
+ 0x11071,
+ 0x11076,
+ 0x11080,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x11100,
@@ -145253,7 +149520,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x11237,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -145326,6 +149593,8 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x1171B,
0x1171D,
0x1172B,
+ 0x11740,
+ 0x11747,
0x11800,
0x11839,
0x118A0,
@@ -145364,7 +149633,7 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x11A98,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -145410,6 +149679,12 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41,
0x11FB0,
0x11FB1,
0x12000,
@@ -145418,14 +149693,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -145456,10 +149737,20 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -145534,6 +149825,10 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -145544,14 +149839,30 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -145633,9 +149944,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x1F170,
0x1F18A,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -145645,7 +149956,9 @@ static const UV UNI_XPOSIXALPHA_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -145790,7 +150103,7 @@ static const UV UNI_XPOSIXCNTRL_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */
- 123, /* Number of elements */
+ 129, /* 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 */
@@ -145903,8 +150216,12 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -145913,6 +150230,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -145927,7 +150246,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */
- 123, /* Number of elements */
+ 129, /* 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 */
@@ -146040,8 +150359,12 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -146050,6 +150373,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -146064,7 +150389,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */
- 123, /* Number of elements */
+ 129, /* 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 */
@@ -146177,8 +150502,12 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -146187,6 +150516,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -146198,7 +150529,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
- 1365, /* Number of elements */
+ 1425, /* 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 */
@@ -146230,8 +150561,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -146249,11 +150578,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -146409,7 +150738,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -146419,6 +150748,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -146441,14 +150772,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -146508,7 +150839,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -146578,10 +150909,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -146598,8 +150927,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -146638,11 +150965,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -146658,8 +150985,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -146706,7 +151031,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -146720,10 +151045,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -146754,7 +151075,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -146778,8 +151099,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -146788,10 +151107,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -146862,16 +151185,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -146958,13 +151279,33 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -147047,10 +151388,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -147058,9 +151401,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -147080,7 +151423,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -147144,7 +151487,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -147152,7 +151495,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -147183,8 +151526,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -147227,6 +151572,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -147239,10 +151590,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -147252,7 +151603,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -147285,10 +151638,20 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -147303,14 +151666,22 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -147363,6 +151734,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -147373,6 +151748,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -147381,10 +151760,22 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -147493,16 +151884,18 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -147516,27 +151909,23 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -147544,9 +151933,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -147557,6 +151946,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -147577,7 +151968,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
- 1365, /* Number of elements */
+ 1425, /* 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 */
@@ -147609,8 +152000,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -147628,11 +152017,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -147788,7 +152177,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -147798,6 +152187,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -147820,14 +152211,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -147887,7 +152278,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -147957,10 +152348,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -147977,8 +152366,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -148017,11 +152404,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -148037,8 +152424,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -148085,7 +152470,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -148099,10 +152484,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -148133,7 +152514,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -148157,8 +152538,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -148167,10 +152546,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -148241,16 +152624,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -148337,13 +152718,33 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -148426,10 +152827,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -148437,9 +152840,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -148459,7 +152862,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -148523,7 +152926,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -148531,7 +152934,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -148562,8 +152965,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -148606,6 +153011,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -148618,10 +153029,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -148631,7 +153042,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -148664,10 +153077,20 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -148682,14 +153105,22 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -148742,6 +153173,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -148752,6 +153187,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -148760,10 +153199,22 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -148872,16 +153323,18 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -148895,27 +153348,23 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -148923,9 +153372,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -148936,6 +153385,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -148956,7 +153407,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
- 1365, /* Number of elements */
+ 1425, /* 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 */
@@ -148988,8 +153439,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -149007,11 +153456,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -149167,7 +153616,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -149177,6 +153626,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -149199,14 +153650,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -149266,7 +153717,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -149336,10 +153787,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -149356,8 +153805,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -149396,11 +153843,11 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -149416,8 +153863,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -149464,7 +153909,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -149478,10 +153923,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -149512,7 +153953,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -149536,8 +153977,6 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -149546,10 +153985,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -149620,16 +154063,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -149716,13 +154157,33 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -149805,10 +154266,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -149816,9 +154279,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -149838,7 +154301,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -149902,7 +154365,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -149910,7 +154373,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -149941,8 +154404,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -149985,6 +154450,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -149997,10 +154468,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -150010,7 +154481,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -150043,10 +154516,20 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -150061,14 +154544,22 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -150121,6 +154612,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -150131,6 +154626,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -150139,10 +154638,22 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -150251,16 +154762,18 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -150274,27 +154787,23 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -150302,9 +154811,9 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -150315,6 +154824,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -150332,7 +154843,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
- 1305, /* Number of elements */
+ 1343, /* 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 */
@@ -150889,7 +155400,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
0x589,
0x10D0,
0x10FB,
- 0x10FD,
+ 0x10FC,
0x1100,
0x13F8,
0x13FE,
@@ -151216,7 +155727,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -151551,12 +156062,26 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
0xA7F6,
0xA7F7,
0xA7F8,
@@ -151564,7 +156089,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -151577,6 +156102,22 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10CC0,
0x10CF3,
0x118C0,
@@ -151639,6 +156180,14 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E922,
0x1E944
};
@@ -151651,7 +156200,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
- 1313, /* Number of elements */
+ 1351, /* 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 */
@@ -152216,7 +156765,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
0x589,
0x10D0,
0x10FB,
- 0x10FD,
+ 0x10FC,
0x1100,
0x13F8,
0x13FE,
@@ -152543,7 +157092,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -152878,12 +157427,26 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
0xA7F6,
0xA7F7,
0xA7F8,
@@ -152891,7 +157454,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -152904,6 +157467,22 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10CC0,
0x10CF3,
0x118C0,
@@ -152966,6 +157545,14 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E922,
0x1E944
};
@@ -152978,7 +157565,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
- 1313, /* Number of elements */
+ 1351, /* 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 */
@@ -153543,7 +158130,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
0x589,
0x10D0,
0x10FB,
- 0x10FD,
+ 0x10FC,
0x1100,
0x13F8,
0x13FE,
@@ -153870,7 +158457,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -154205,12 +158792,26 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
0xA7F6,
0xA7F7,
0xA7F8,
@@ -154218,7 +158819,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -154231,6 +158832,22 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10CC0,
0x10CF3,
0x118C0,
@@ -154293,6 +158910,14 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E922,
0x1E944
};
@@ -154302,7 +158927,7 @@ static const UV UNI_XPOSIXLOWER_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
- 1359, /* Number of elements */
+ 1419, /* 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 */
@@ -154334,8 +158959,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -154353,11 +158976,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -154513,7 +159136,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -154523,6 +159146,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -154545,14 +159170,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -154612,7 +159237,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -154680,10 +159305,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -154700,8 +159323,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -154740,11 +159361,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -154760,8 +159381,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -154804,7 +159423,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -154818,10 +159437,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -154852,7 +159467,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -154876,8 +159491,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -154886,10 +159499,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -154960,16 +159577,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -155056,13 +159671,33 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -155145,10 +159780,12 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -155156,9 +159793,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -155178,7 +159815,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -155242,7 +159879,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -155250,7 +159887,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -155281,8 +159918,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -155325,6 +159964,12 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -155337,10 +159982,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -155350,7 +159995,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -155383,10 +160030,20 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -155401,14 +160058,22 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -155461,6 +160126,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -155471,6 +160140,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -155479,10 +160152,22 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -155591,16 +160276,18 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -155614,27 +160301,23 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -155642,9 +160325,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -155655,6 +160338,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -155675,7 +160360,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
- 1359, /* Number of elements */
+ 1419, /* 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 */
@@ -155707,8 +160392,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -155726,11 +160409,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -155886,7 +160569,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -155896,6 +160579,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -155918,14 +160603,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -155985,7 +160670,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -156053,10 +160738,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -156073,8 +160756,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -156113,11 +160794,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -156133,8 +160814,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -156177,7 +160856,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -156191,10 +160870,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -156225,7 +160900,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -156249,8 +160924,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -156259,10 +160932,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -156333,16 +161010,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -156429,13 +161104,33 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -156518,10 +161213,12 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -156529,9 +161226,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -156551,7 +161248,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -156615,7 +161312,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -156623,7 +161320,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -156654,8 +161351,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -156698,6 +161397,12 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -156710,10 +161415,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -156723,7 +161428,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -156756,10 +161463,20 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -156774,14 +161491,22 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -156834,6 +161559,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -156844,6 +161573,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -156852,10 +161585,22 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -156964,16 +161709,18 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -156987,27 +161734,23 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -157015,9 +161758,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -157028,6 +161771,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -157048,7 +161793,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
- 1359, /* Number of elements */
+ 1419, /* 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 */
@@ -157080,8 +161825,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -157099,11 +161842,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -157259,7 +162002,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -157269,6 +162012,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -157291,14 +162036,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -157358,7 +162103,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -157426,10 +162171,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -157446,8 +162189,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -157486,11 +162227,11 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -157506,8 +162247,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -157550,7 +162289,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -157564,10 +162303,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -157598,7 +162333,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -157622,8 +162357,6 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -157632,10 +162365,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -157706,16 +162443,14 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -157802,13 +162537,33 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -157891,10 +162646,12 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -157902,9 +162659,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -157924,7 +162681,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -157988,7 +162745,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -157996,7 +162753,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -158027,8 +162784,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -158071,6 +162830,12 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -158083,10 +162848,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -158096,7 +162861,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -158129,10 +162896,20 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -158147,14 +162924,22 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -158207,6 +162992,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -158217,6 +163006,10 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -158225,10 +163018,22 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -158337,16 +163142,18 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -158360,27 +163167,23 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -158388,9 +163191,9 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -158401,6 +163204,8 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -158418,7 +163223,7 @@ static const UV UNI_XPOSIXPRINT_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
- 361, /* Number of elements */
+ 373, /* 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 */
@@ -158467,7 +163272,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -158545,6 +163350,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -158594,7 +163401,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
0x2E30,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E5E,
0x3001,
0x3004,
0x3008,
@@ -158705,6 +163512,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
0x10EAE,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -158741,6 +163550,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -158755,16 +163566,22 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -158793,7 +163610,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
- 369, /* Number of elements */
+ 381, /* 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 */
@@ -158850,7 +163667,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -158928,6 +163745,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -158977,7 +163796,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
0x2E30,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E5E,
0x3001,
0x3004,
0x3008,
@@ -159088,6 +163907,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
0x10EAE,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -159124,6 +163945,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -159138,16 +163961,22 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -159176,7 +164005,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
- 371, /* Number of elements */
+ 383, /* 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 */
@@ -159235,7 +164064,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -159313,6 +164142,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -159362,7 +164193,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
0x2E30,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E5E,
0x3001,
0x3004,
0x3008,
@@ -159473,6 +164304,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
0x10EAE,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -159509,6 +164342,8 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -159523,16 +164358,22 @@ static const UV UNI_XPOSIXPUNCT_invlist[] = { /* for EBCDIC 037 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -159664,7 +164505,7 @@ static const UV UNI_XPOSIXSPACE_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */
- 1287, /* Number of elements */
+ 1303, /* 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 */
@@ -160536,7 +165377,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -160865,12 +165706,20 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -160879,6 +165728,14 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -160965,7 +165822,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */
- 1305, /* Number of elements */
+ 1321, /* 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 */
@@ -161855,7 +166712,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -162184,12 +167041,20 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -162198,6 +167063,14 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -162284,7 +167157,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */
- 1301, /* Number of elements */
+ 1317, /* 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 */
@@ -163170,7 +168043,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -163499,12 +168372,20 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -163513,6 +168394,14 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -163596,7 +168485,7 @@ static const UV UNI_XPOSIXUPPER_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
- 1467, /* Number of elements */
+ 1543, /* 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 */
@@ -163701,11 +168590,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -163873,7 +168762,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -163883,6 +168772,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -163907,14 +168798,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -163980,7 +168871,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -164072,10 +168963,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -164095,7 +168984,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -164132,9 +169021,9 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1AA7,
0x1AA8,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -164158,8 +169047,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -164242,10 +169129,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -164310,8 +169193,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -164330,10 +169211,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -164511,12 +169396,34 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -164591,12 +169498,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -164604,9 +169513,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -164634,7 +169545,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -164713,6 +169624,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -164749,7 +169662,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -164793,6 +169706,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -164801,8 +169722,12 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -164811,6 +169736,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -164845,10 +169774,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -164863,6 +169802,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -164949,6 +169892,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -164959,6 +169906,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -164967,8 +169918,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -165052,9 +170015,9 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -165065,6 +170028,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -165077,7 +170042,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
- 1491, /* Number of elements */
+ 1567, /* 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 */
@@ -165206,11 +170171,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -165378,7 +170343,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -165388,6 +170353,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -165412,14 +170379,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -165485,7 +170452,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -165577,10 +170544,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -165600,7 +170565,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -165637,9 +170602,9 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1AA7,
0x1AA8,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -165663,8 +170628,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -165747,10 +170710,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -165815,8 +170774,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -165835,10 +170792,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -166016,12 +170977,34 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -166096,12 +171079,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -166109,9 +171094,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -166139,7 +171126,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -166218,6 +171205,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -166254,7 +171243,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -166298,6 +171287,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -166306,8 +171303,12 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -166316,6 +171317,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -166350,10 +171355,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -166368,6 +171383,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -166454,6 +171473,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -166464,6 +171487,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -166472,8 +171499,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -166557,9 +171596,9 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -166570,6 +171609,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -166582,7 +171623,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
- 1487, /* Number of elements */
+ 1563, /* 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 */
@@ -166707,11 +171748,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -166879,7 +171920,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -166889,6 +171930,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -166913,14 +171956,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -166986,7 +172029,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -167078,10 +172121,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -167101,7 +172142,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -167138,9 +172179,9 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1AA7,
0x1AA8,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -167164,8 +172205,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -167248,10 +172287,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -167316,8 +172351,6 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -167336,10 +172369,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -167517,12 +172554,34 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -167597,12 +172656,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -167610,9 +172671,11 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -167640,7 +172703,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -167719,6 +172782,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -167755,7 +172820,7 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -167799,6 +172864,14 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -167807,8 +172880,12 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -167817,6 +172894,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -167851,10 +172932,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -167869,6 +172960,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -167955,6 +173050,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -167965,6 +173064,10 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -167973,8 +173076,20 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -168058,9 +173173,9 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -168071,6 +173186,8 @@ static const UV UNI_XPOSIXWORD_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -168158,7 +173275,7 @@ static const UV UNI_XPOSIXXDIGIT_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */
- 269, /* Number of elements */
+ 283, /* 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 */
@@ -168360,10 +173477,6 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C71,
0x2C72,
0x2C74,
@@ -168398,9 +173511,11 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */
0xA796,
0xA7AF,
0xA7B0,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D6,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xAB53,
@@ -168421,6 +173536,22 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -168441,7 +173572,7 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */
- 301, /* Number of elements */
+ 315, /* 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 */
@@ -168675,10 +173806,6 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C71,
0x2C72,
0x2C74,
@@ -168713,9 +173840,11 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */
0xA796,
0xA7AF,
0xA7B0,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D6,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xAB53,
@@ -168736,6 +173865,22 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -168756,7 +173901,7 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */
- 297, /* Number of elements */
+ 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 */
@@ -168986,10 +174131,6 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C71,
0x2C72,
0x2C74,
@@ -169024,9 +174165,11 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */
0xA796,
0xA7AF,
0xA7B0,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D6,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xAB53,
@@ -169047,6 +174190,22 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -169064,7 +174223,7 @@ static const UV UNI__PERL_ANY_FOLDS_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
- 1257, /* Number of elements */
+ 1331, /* 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 */
@@ -169167,10 +174326,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -169299,6 +174460,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -169315,7 +174478,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -169458,10 +174621,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -169504,7 +174665,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -169606,10 +174767,6 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -169668,8 +174825,6 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -169690,10 +174845,14 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -169883,12 +175042,34 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -169959,12 +175140,18 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -169991,6 +175178,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -170047,6 +175236,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -170085,7 +175276,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -170113,20 +175304,32 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -170155,10 +175358,20 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -170231,14 +175444,32 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -170312,9 +175543,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -170324,7 +175555,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -170335,7 +175568,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
- 1283, /* Number of elements */
+ 1357, /* 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 */
@@ -170464,10 +175697,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -170596,6 +175831,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -170612,7 +175849,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -170755,10 +175992,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -170801,7 +176036,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -170903,10 +176138,6 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -170965,8 +176196,6 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -170987,10 +176216,14 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -171180,12 +176413,34 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -171256,12 +176511,18 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -171288,6 +176549,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -171344,6 +176607,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -171382,7 +176647,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -171410,20 +176675,32 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -171452,10 +176729,20 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -171528,14 +176815,32 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -171609,9 +176914,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -171621,7 +176926,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -171632,7 +176939,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
- 1279, /* Number of elements */
+ 1353, /* 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 */
@@ -171757,10 +177064,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -171889,6 +177198,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -171905,7 +177216,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -172048,10 +177359,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -172094,7 +177403,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -172196,10 +177505,6 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -172258,8 +177563,6 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -172280,10 +177583,14 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -172473,12 +177780,34 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -172549,12 +177878,18 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -172581,6 +177916,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -172637,6 +177974,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -172675,7 +178014,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -172703,20 +178042,32 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -172745,10 +178096,20 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -172821,14 +178182,32 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -172902,9 +178281,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -172914,7 +178293,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -172922,7 +178303,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 */
- 1481, /* Number of elements */
+ 1557, /* 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 */
@@ -173035,11 +178416,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -173207,7 +178588,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -173217,6 +178598,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -173241,14 +178624,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -173314,7 +178697,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -173406,10 +178789,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -173429,7 +178810,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -173468,9 +178849,9 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -173494,8 +178875,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -173578,10 +178957,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -173644,8 +179019,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -173664,10 +179037,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -173857,12 +179234,34 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -173937,12 +179336,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -173950,9 +179351,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -173980,7 +179383,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -174059,6 +179462,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -174095,7 +179500,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -174139,6 +179544,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -174147,8 +179560,12 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -174157,6 +179574,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -174191,10 +179612,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -174209,6 +179640,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -174295,6 +179730,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -174305,6 +179744,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -174313,8 +179756,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -174392,9 +179847,9 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -174405,6 +179860,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -174417,7 +179874,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for ASCII/Latin1 *
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
- 1507, /* Number of elements */
+ 1583, /* 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 */
@@ -174556,11 +180013,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -174728,7 +180185,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -174738,6 +180195,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -174762,14 +180221,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -174835,7 +180294,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -174927,10 +180386,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -174950,7 +180407,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -174989,9 +180446,9 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -175015,8 +180472,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -175099,10 +180554,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -175165,8 +180616,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -175185,10 +180634,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -175378,12 +180831,34 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -175458,12 +180933,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -175471,9 +180948,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -175501,7 +180980,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -175580,6 +181059,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -175616,7 +181097,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -175660,6 +181141,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -175668,8 +181157,12 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -175678,6 +181171,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -175712,10 +181209,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -175730,6 +181237,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -175816,6 +181327,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -175826,6 +181341,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -175834,8 +181353,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -175913,9 +181444,9 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -175926,6 +181457,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -175938,7 +181471,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
- 1503, /* Number of elements */
+ 1579, /* 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 */
@@ -176073,11 +181606,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -176245,7 +181778,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -176255,6 +181788,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -176279,14 +181814,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -176352,7 +181887,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -176444,10 +181979,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -176467,7 +182000,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -176506,9 +182039,9 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -176532,8 +182065,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -176616,10 +182147,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -176682,8 +182209,6 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -176702,10 +182227,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -176895,12 +182424,34 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -176975,12 +182526,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -176988,9 +182541,11 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -177018,7 +182573,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -177097,6 +182652,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -177133,7 +182690,7 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -177177,6 +182734,14 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -177185,8 +182750,12 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -177195,6 +182764,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -177229,10 +182802,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -177247,6 +182830,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -177333,6 +182920,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -177343,6 +182934,10 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -177351,8 +182946,20 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -177430,9 +183037,9 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -177443,6 +183050,8 @@ static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -177668,7 +183277,7 @@ static const UV UNI__PERL_FOLDS_TO_MULTI_CHAR_invlist[] = { /* for EBCDIC 037 *
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
- 1475, /* Number of elements */
+ 1551, /* 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 */
@@ -177775,11 +183384,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -177947,7 +183556,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -177957,6 +183566,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -177981,14 +183592,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -178054,7 +183665,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -178146,10 +183757,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -178169,7 +183778,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -178208,9 +183817,9 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -178234,8 +183843,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -178318,10 +183925,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -178384,8 +183987,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -178404,10 +184005,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -178597,12 +184202,34 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -178677,12 +184304,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -178690,9 +184319,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -178720,7 +184351,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -178799,6 +184430,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -178835,7 +184468,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -178879,6 +184512,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -178887,8 +184528,12 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -178897,6 +184542,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -178931,10 +184580,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -178949,6 +184608,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -179035,6 +184698,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -179045,6 +184712,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -179053,8 +184724,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -179132,9 +184815,9 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -179145,6 +184828,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -179157,7 +184842,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
- 1499, /* Number of elements */
+ 1575, /* 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 */
@@ -179288,11 +184973,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -179460,7 +185145,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -179470,6 +185155,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -179494,14 +185181,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -179567,7 +185254,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -179659,10 +185346,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -179682,7 +185367,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -179721,9 +185406,9 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -179747,8 +185432,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -179831,10 +185514,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -179897,8 +185576,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -179917,10 +185594,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -180110,12 +185791,34 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -180190,12 +185893,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -180203,9 +185908,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -180233,7 +185940,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -180312,6 +186019,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -180348,7 +186057,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -180392,6 +186101,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -180400,8 +186117,12 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -180410,6 +186131,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -180444,10 +186169,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -180462,6 +186197,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -180548,6 +186287,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -180558,6 +186301,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -180566,8 +186313,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -180645,9 +186404,9 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -180658,6 +186417,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -180670,7 +186431,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
- 1495, /* Number of elements */
+ 1571, /* 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 */
@@ -180797,11 +186558,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -180969,7 +186730,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -180979,6 +186740,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -181003,14 +186766,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -181076,7 +186839,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -181168,10 +186931,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -181191,7 +186952,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -181230,9 +186991,9 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -181256,8 +187017,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -181340,10 +187099,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -181406,8 +187161,6 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -181426,10 +187179,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -181619,12 +187376,34 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -181699,12 +187478,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -181712,9 +187493,11 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -181742,7 +187525,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -181821,6 +187604,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -181857,7 +187642,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -181901,6 +187686,14 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -181909,8 +187702,12 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -181919,6 +187716,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -181953,10 +187754,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -181971,6 +187782,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -182057,6 +187872,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -182067,6 +187886,10 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -182075,8 +187898,20 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -182154,9 +187989,9 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -182167,6 +188002,8 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -182176,7 +188013,7 @@ static const UV UNI__PERL_IDCONT_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
- 1263, /* Number of elements */
+ 1337, /* 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 */
@@ -182281,10 +188118,12 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -182413,6 +188252,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -182429,7 +188270,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -182572,10 +188413,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -182616,7 +188455,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -182718,10 +188557,6 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -182782,8 +188617,6 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -182804,10 +188637,14 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -182999,12 +188836,34 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -183075,12 +188934,18 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -183107,6 +188972,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -183163,6 +189030,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -183201,7 +189070,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -183229,6 +189098,12 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -183237,14 +189112,20 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -183273,10 +189154,20 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -183349,14 +189240,32 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -183430,9 +189339,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -183442,7 +189351,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -183453,7 +189364,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
- 1289, /* Number of elements */
+ 1363, /* 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 */
@@ -183584,10 +189495,12 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -183716,6 +189629,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -183732,7 +189647,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -183875,10 +189790,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -183919,7 +189832,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -184021,10 +189934,6 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -184085,8 +189994,6 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -184107,10 +190014,14 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -184302,12 +190213,34 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -184378,12 +190311,18 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -184410,6 +190349,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -184466,6 +190407,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -184504,7 +190447,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -184532,6 +190475,12 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -184540,14 +190489,20 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -184576,10 +190531,20 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -184652,14 +190617,32 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -184733,9 +190716,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -184745,7 +190728,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -184756,7 +190741,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
- 1285, /* Number of elements */
+ 1359, /* 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 */
@@ -184883,10 +190868,12 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -185015,6 +191002,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -185031,7 +191020,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -185174,10 +191163,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -185218,7 +191205,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -185320,10 +191307,6 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -185384,8 +191367,6 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -185406,10 +191387,14 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -185601,12 +191586,34 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -185677,12 +191684,18 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -185709,6 +191722,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -185765,6 +191780,8 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -185803,7 +191820,7 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -185831,6 +191848,12 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -185839,14 +191862,20 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -185875,10 +191904,20 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -185951,14 +191990,32 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -186032,9 +192089,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -186044,7 +192101,9 @@ static const UV UNI__PERL_IDSTART_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -186439,7 +192498,7 @@ static const UV UNI__PERL_QUOTEMETA_invlist[] = { /* for ASCII/Latin1 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x2000,
0x203F,
0x2041,
@@ -186545,7 +192604,7 @@ static const UV UNI__PERL_QUOTEMETA_invlist[] = { /* for EBCDIC 1047 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x2000,
0x203F,
0x2041,
@@ -186649,7 +192708,7 @@ static const UV UNI__PERL_QUOTEMETA_invlist[] = { /* for EBCDIC 037 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x2000,
0x203F,
0x2041,
@@ -186695,11 +192754,13 @@ static const UV UNI__PERL_QUOTEMETA_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_ADLM_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 11, /* 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,
+ 0x61F,
+ 0x620,
0x640,
0x641,
0x1E900,
@@ -187198,6 +193259,242 @@ static const UV UNI_AGE__13_invlist[] = { /* for all charsets */
0x3134B
};
+static const UV UNI_AGE__14_invlist[] = { /* for all charsets */
+ 157, /* 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,
+ 0x61D,
+ 0x61E,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8B5,
+ 0x8B6,
+ 0x8C8,
+ 0x8D3,
+ 0xC3C,
+ 0xC3D,
+ 0xC5D,
+ 0xC5E,
+ 0xCDD,
+ 0xCDE,
+ 0x170D,
+ 0x170E,
+ 0x1715,
+ 0x1716,
+ 0x171F,
+ 0x1720,
+ 0x180F,
+ 0x1810,
+ 0x1AC1,
+ 0x1ACF,
+ 0x1B4C,
+ 0x1B4D,
+ 0x1B7D,
+ 0x1B7F,
+ 0x1DFA,
+ 0x1DFB,
+ 0x20C0,
+ 0x20C1,
+ 0x2C2F,
+ 0x2C30,
+ 0x2C5F,
+ 0x2C60,
+ 0x2E53,
+ 0x2E5E,
+ 0x9FFD,
+ 0xA000,
+ 0xA7C0,
+ 0xA7C2,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
+ 0xFBC2,
+ 0xFBC3,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
+ 0xFDFE,
+ 0xFE00,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x10F70,
+ 0x10F8A,
+ 0x11070,
+ 0x11076,
+ 0x110C2,
+ 0x110C3,
+ 0x116B9,
+ 0x116BA,
+ 0x11740,
+ 0x11747,
+ 0x11AB0,
+ 0x11AC0,
+ 0x12F90,
+ 0x12FF3,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1B11F,
+ 0x1B123,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
+ 0x1D1E9,
+ 0x1D1EB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1E290,
+ 0x1E2AF,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
+ 0x1F6DD,
+ 0x1F6E0,
+ 0x1F7F0,
+ 0x1F7F1,
+ 0x1F979,
+ 0x1F97A,
+ 0x1F9CC,
+ 0x1F9CD,
+ 0x1FA7B,
+ 0x1FA7D,
+ 0x1FAA9,
+ 0x1FAAD,
+ 0x1FAB7,
+ 0x1FABB,
+ 0x1FAC3,
+ 0x1FAC6,
+ 0x1FAD7,
+ 0x1FADA,
+ 0x1FAE0,
+ 0x1FAE8,
+ 0x1FAF0,
+ 0x1FAF7,
+ 0x2A6DE,
+ 0x2A6E0,
+ 0x2B735,
+ 0x2B739
+};
+
+static const UV UNI_AGE__15_invlist[] = { /* for all charsets */
+ 65, /* 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,
+ 0xCF3,
+ 0xCF4,
+ 0xECE,
+ 0xECF,
+ 0x10EFD,
+ 0x10F00,
+ 0x1123F,
+ 0x11242,
+ 0x11B00,
+ 0x11B0A,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
+ 0x1342F,
+ 0x13430,
+ 0x13439,
+ 0x13456,
+ 0x1B132,
+ 0x1B133,
+ 0x1B155,
+ 0x1B156,
+ 0x1D2C0,
+ 0x1D2D4,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1F6DC,
+ 0x1F6DD,
+ 0x1F774,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F780,
+ 0x1F7D9,
+ 0x1F7DA,
+ 0x1FA75,
+ 0x1FA78,
+ 0x1FA87,
+ 0x1FA89,
+ 0x1FAAD,
+ 0x1FAB0,
+ 0x1FABB,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC0,
+ 0x1FACE,
+ 0x1FAD0,
+ 0x1FADA,
+ 0x1FADC,
+ 0x1FAE8,
+ 0x1FAE9,
+ 0x1FAF7,
+ 0x1FAF9,
+ 0x2B739,
+ 0x2B73A,
+ 0x31350,
+ 0x323B0
+};
+
static const UV UNI_AGE__2_invlist[] = { /* for all charsets */
59, /* Number of elements */
148565664, /* Version and data structure type */
@@ -189482,1385 +195779,6 @@ static const UV UNI_AGE__9_invlist[] = { /* for all charsets */
0x1F992
};
-static const UV UNI_AGE__NA_invlist[] = { /* for all charsets */
- 1372, /* 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,
- 0x378,
- 0x37A,
- 0x380,
- 0x384,
- 0x38B,
- 0x38C,
- 0x38D,
- 0x38E,
- 0x3A2,
- 0x3A3,
- 0x530,
- 0x531,
- 0x557,
- 0x559,
- 0x58B,
- 0x58D,
- 0x590,
- 0x591,
- 0x5C8,
- 0x5D0,
- 0x5EB,
- 0x5EF,
- 0x5F5,
- 0x600,
- 0x61D,
- 0x61E,
- 0x70E,
- 0x70F,
- 0x74B,
- 0x74D,
- 0x7B2,
- 0x7C0,
- 0x7FB,
- 0x7FD,
- 0x82E,
- 0x830,
- 0x83F,
- 0x840,
- 0x85C,
- 0x85E,
- 0x85F,
- 0x860,
- 0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
- 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,
- 0x9FF,
- 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,
- 0xA77,
- 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,
- 0xAF9,
- 0xB00,
- 0xB01,
- 0xB04,
- 0xB05,
- 0xB0D,
- 0xB0F,
- 0xB11,
- 0xB13,
- 0xB29,
- 0xB2A,
- 0xB31,
- 0xB32,
- 0xB34,
- 0xB35,
- 0xB3A,
- 0xB3C,
- 0xB45,
- 0xB47,
- 0xB49,
- 0xB4B,
- 0xB4E,
- 0xB55,
- 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,
- 0xC0D,
- 0xC0E,
- 0xC11,
- 0xC12,
- 0xC29,
- 0xC2A,
- 0xC3A,
- 0xC3D,
- 0xC45,
- 0xC46,
- 0xC49,
- 0xC4A,
- 0xC4E,
- 0xC55,
- 0xC57,
- 0xC58,
- 0xC5B,
- 0xC60,
- 0xC64,
- 0xC66,
- 0xC70,
- 0xC77,
- 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,
- 0xD00,
- 0xD0D,
- 0xD0E,
- 0xD11,
- 0xD12,
- 0xD45,
- 0xD46,
- 0xD49,
- 0xD4A,
- 0xD50,
- 0xD54,
- 0xD64,
- 0xD66,
- 0xD80,
- 0xD81,
- 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,
- 0xE86,
- 0xE8B,
- 0xE8C,
- 0xEA4,
- 0xEA5,
- 0xEA6,
- 0xEA7,
- 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,
- 0x13F6,
- 0x13F8,
- 0x13FE,
- 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,
- 0x1879,
- 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,
- 0x1AC1,
- 0x1B00,
- 0x1B4C,
- 0x1B50,
- 0x1B7D,
- 0x1B80,
- 0x1BF4,
- 0x1BFC,
- 0x1C38,
- 0x1C3B,
- 0x1C4A,
- 0x1C4D,
- 0x1C89,
- 0x1C90,
- 0x1CBB,
- 0x1CBD,
- 0x1CC8,
- 0x1CD0,
- 0x1CFB,
- 0x1D00,
- 0x1DFA,
- 0x1DFB,
- 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,
- 0x2065,
- 0x2066,
- 0x2072,
- 0x2074,
- 0x208F,
- 0x2090,
- 0x209D,
- 0x20A0,
- 0x20C0,
- 0x20D0,
- 0x20F1,
- 0x2100,
- 0x218C,
- 0x2190,
- 0x2427,
- 0x2440,
- 0x244B,
- 0x2460,
- 0x2B74,
- 0x2B76,
- 0x2B96,
- 0x2B97,
- 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,
- 0x2E53,
- 0x2E80,
- 0x2E9A,
- 0x2E9B,
- 0x2EF4,
- 0x2F00,
- 0x2FD6,
- 0x2FF0,
- 0x2FFC,
- 0x3000,
- 0x3040,
- 0x3041,
- 0x3097,
- 0x3099,
- 0x3100,
- 0x3105,
- 0x3130,
- 0x3131,
- 0x318F,
- 0x3190,
- 0x31E4,
- 0x31F0,
- 0x321F,
- 0x3220,
- 0x9FFD,
- 0xA000,
- 0xA48D,
- 0xA490,
- 0xA4C7,
- 0xA4D0,
- 0xA62C,
- 0xA640,
- 0xA6F8,
- 0xA700,
- 0xA7C0,
- 0xA7C2,
- 0xA7CB,
- 0xA7F5,
- 0xA82D,
- 0xA830,
- 0xA83A,
- 0xA840,
- 0xA878,
- 0xA880,
- 0xA8C6,
- 0xA8CE,
- 0xA8DA,
- 0xA8E0,
- 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,
- 0xAB6C,
- 0xAB70,
- 0xABEE,
- 0xABF0,
- 0xABFA,
- 0xAC00,
- 0xD7A4,
- 0xD7B0,
- 0xD7C7,
- 0xD7CB,
- 0xD7FC,
- 0xD800,
- 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,
- 0xFDD0,
- 0xFDFE,
- 0xFE00,
- 0xFE1A,
- 0xFE20,
- 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,
- 0x1000C,
- 0x1000D,
- 0x10027,
- 0x10028,
- 0x1003B,
- 0x1003C,
- 0x1003E,
- 0x1003F,
- 0x1004E,
- 0x10050,
- 0x1005E,
- 0x10080,
- 0x100FB,
- 0x10100,
- 0x10103,
- 0x10107,
- 0x10134,
- 0x10137,
- 0x1018F,
- 0x10190,
- 0x1019D,
- 0x101A0,
- 0x101A1,
- 0x101D0,
- 0x101FE,
- 0x10280,
- 0x1029D,
- 0x102A0,
- 0x102D1,
- 0x102E0,
- 0x102FC,
- 0x10300,
- 0x10324,
- 0x1032D,
- 0x1034B,
- 0x10350,
- 0x1037B,
- 0x10380,
- 0x1039E,
- 0x1039F,
- 0x103C4,
- 0x103C8,
- 0x103D6,
- 0x10400,
- 0x1049E,
- 0x104A0,
- 0x104AA,
- 0x104B0,
- 0x104D4,
- 0x104D8,
- 0x104FC,
- 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,
- 0x108E0,
- 0x108F3,
- 0x108F4,
- 0x108F6,
- 0x108FB,
- 0x1091C,
- 0x1091F,
- 0x1093A,
- 0x1093F,
- 0x10940,
- 0x10980,
- 0x109B8,
- 0x109BC,
- 0x109D0,
- 0x109D2,
- 0x10A04,
- 0x10A05,
- 0x10A07,
- 0x10A0C,
- 0x10A14,
- 0x10A15,
- 0x10A18,
- 0x10A19,
- 0x10A36,
- 0x10A38,
- 0x10A3B,
- 0x10A3F,
- 0x10A49,
- 0x10A50,
- 0x10A59,
- 0x10A60,
- 0x10AA0,
- 0x10AC0,
- 0x10AE7,
- 0x10AEB,
- 0x10AF7,
- 0x10B00,
- 0x10B36,
- 0x10B39,
- 0x10B56,
- 0x10B58,
- 0x10B73,
- 0x10B78,
- 0x10B92,
- 0x10B99,
- 0x10B9D,
- 0x10BA9,
- 0x10BB0,
- 0x10C00,
- 0x10C49,
- 0x10C80,
- 0x10CB3,
- 0x10CC0,
- 0x10CF3,
- 0x10CFA,
- 0x10D28,
- 0x10D30,
- 0x10D3A,
- 0x10E60,
- 0x10E7F,
- 0x10E80,
- 0x10EAA,
- 0x10EAB,
- 0x10EAE,
- 0x10EB0,
- 0x10EB2,
- 0x10F00,
- 0x10F28,
- 0x10F30,
- 0x10F5A,
- 0x10FB0,
- 0x10FCC,
- 0x10FE0,
- 0x10FF7,
- 0x11000,
- 0x1104E,
- 0x11052,
- 0x11070,
- 0x1107F,
- 0x110C2,
- 0x110CD,
- 0x110CE,
- 0x110D0,
- 0x110E9,
- 0x110F0,
- 0x110FA,
- 0x11100,
- 0x11135,
- 0x11136,
- 0x11148,
- 0x11150,
- 0x11177,
- 0x11180,
- 0x111E0,
- 0x111E1,
- 0x111F5,
- 0x11200,
- 0x11212,
- 0x11213,
- 0x1123F,
- 0x11280,
- 0x11287,
- 0x11288,
- 0x11289,
- 0x1128A,
- 0x1128E,
- 0x1128F,
- 0x1129E,
- 0x1129F,
- 0x112AA,
- 0x112B0,
- 0x112EB,
- 0x112F0,
- 0x112FA,
- 0x11300,
- 0x11304,
- 0x11305,
- 0x1130D,
- 0x1130F,
- 0x11311,
- 0x11313,
- 0x11329,
- 0x1132A,
- 0x11331,
- 0x11332,
- 0x11334,
- 0x11335,
- 0x1133A,
- 0x1133B,
- 0x11345,
- 0x11347,
- 0x11349,
- 0x1134B,
- 0x1134E,
- 0x11350,
- 0x11351,
- 0x11357,
- 0x11358,
- 0x1135D,
- 0x11364,
- 0x11366,
- 0x1136D,
- 0x11370,
- 0x11375,
- 0x11400,
- 0x1145C,
- 0x1145D,
- 0x11462,
- 0x11480,
- 0x114C8,
- 0x114D0,
- 0x114DA,
- 0x11580,
- 0x115B6,
- 0x115B8,
- 0x115DE,
- 0x11600,
- 0x11645,
- 0x11650,
- 0x1165A,
- 0x11660,
- 0x1166D,
- 0x11680,
- 0x116B9,
- 0x116C0,
- 0x116CA,
- 0x11700,
- 0x1171B,
- 0x1171D,
- 0x1172C,
- 0x11730,
- 0x11740,
- 0x11800,
- 0x1183C,
- 0x118A0,
- 0x118F3,
- 0x118FF,
- 0x11907,
- 0x11909,
- 0x1190A,
- 0x1190C,
- 0x11914,
- 0x11915,
- 0x11917,
- 0x11918,
- 0x11936,
- 0x11937,
- 0x11939,
- 0x1193B,
- 0x11947,
- 0x11950,
- 0x1195A,
- 0x119A0,
- 0x119A8,
- 0x119AA,
- 0x119D8,
- 0x119DA,
- 0x119E5,
- 0x11A00,
- 0x11A48,
- 0x11A50,
- 0x11AA3,
- 0x11AC0,
- 0x11AF9,
- 0x11C00,
- 0x11C09,
- 0x11C0A,
- 0x11C37,
- 0x11C38,
- 0x11C46,
- 0x11C50,
- 0x11C6D,
- 0x11C70,
- 0x11C90,
- 0x11C92,
- 0x11CA8,
- 0x11CA9,
- 0x11CB7,
- 0x11D00,
- 0x11D07,
- 0x11D08,
- 0x11D0A,
- 0x11D0B,
- 0x11D37,
- 0x11D3A,
- 0x11D3B,
- 0x11D3C,
- 0x11D3E,
- 0x11D3F,
- 0x11D48,
- 0x11D50,
- 0x11D5A,
- 0x11D60,
- 0x11D66,
- 0x11D67,
- 0x11D69,
- 0x11D6A,
- 0x11D8F,
- 0x11D90,
- 0x11D92,
- 0x11D93,
- 0x11D99,
- 0x11DA0,
- 0x11DAA,
- 0x11EE0,
- 0x11EF9,
- 0x11FB0,
- 0x11FB1,
- 0x11FC0,
- 0x11FF2,
- 0x11FFF,
- 0x1239A,
- 0x12400,
- 0x1246F,
- 0x12470,
- 0x12475,
- 0x12480,
- 0x12544,
- 0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
- 0x14400,
- 0x14647,
- 0x16800,
- 0x16A39,
- 0x16A40,
- 0x16A5F,
- 0x16A60,
- 0x16A6A,
- 0x16A6E,
- 0x16A70,
- 0x16AD0,
- 0x16AEE,
- 0x16AF0,
- 0x16AF6,
- 0x16B00,
- 0x16B46,
- 0x16B50,
- 0x16B5A,
- 0x16B5B,
- 0x16B62,
- 0x16B63,
- 0x16B78,
- 0x16B7D,
- 0x16B90,
- 0x16E40,
- 0x16E9B,
- 0x16F00,
- 0x16F4B,
- 0x16F4F,
- 0x16F88,
- 0x16F8F,
- 0x16FA0,
- 0x16FE0,
- 0x16FE5,
- 0x16FF0,
- 0x16FF2,
- 0x17000,
- 0x187F8,
- 0x18800,
- 0x18CD6,
- 0x18D00,
- 0x18D09,
- 0x1B000,
- 0x1B11F,
- 0x1B150,
- 0x1B153,
- 0x1B164,
- 0x1B168,
- 0x1B170,
- 0x1B2FC,
- 0x1BC00,
- 0x1BC6B,
- 0x1BC70,
- 0x1BC7D,
- 0x1BC80,
- 0x1BC89,
- 0x1BC90,
- 0x1BC9A,
- 0x1BC9C,
- 0x1BCA4,
- 0x1D000,
- 0x1D0F6,
- 0x1D100,
- 0x1D127,
- 0x1D129,
- 0x1D1E9,
- 0x1D200,
- 0x1D246,
- 0x1D2E0,
- 0x1D2F4,
- 0x1D300,
- 0x1D357,
- 0x1D360,
- 0x1D379,
- 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,
- 0x1DA8C,
- 0x1DA9B,
- 0x1DAA0,
- 0x1DAA1,
- 0x1DAB0,
- 0x1E000,
- 0x1E007,
- 0x1E008,
- 0x1E019,
- 0x1E01B,
- 0x1E022,
- 0x1E023,
- 0x1E025,
- 0x1E026,
- 0x1E02B,
- 0x1E100,
- 0x1E12D,
- 0x1E130,
- 0x1E13E,
- 0x1E140,
- 0x1E14A,
- 0x1E14E,
- 0x1E150,
- 0x1E2C0,
- 0x1E2FA,
- 0x1E2FF,
- 0x1E300,
- 0x1E800,
- 0x1E8C5,
- 0x1E8C7,
- 0x1E8D7,
- 0x1E900,
- 0x1E94C,
- 0x1E950,
- 0x1E95A,
- 0x1E95E,
- 0x1E960,
- 0x1EC71,
- 0x1ECB5,
- 0x1ED01,
- 0x1ED3E,
- 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,
- 0x1F1AE,
- 0x1F1E6,
- 0x1F203,
- 0x1F210,
- 0x1F23C,
- 0x1F240,
- 0x1F249,
- 0x1F250,
- 0x1F252,
- 0x1F260,
- 0x1F266,
- 0x1F300,
- 0x1F6D8,
- 0x1F6E0,
- 0x1F6ED,
- 0x1F6F0,
- 0x1F6FD,
- 0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
- 0x1F7E0,
- 0x1F7EC,
- 0x1F800,
- 0x1F80C,
- 0x1F810,
- 0x1F848,
- 0x1F850,
- 0x1F85A,
- 0x1F860,
- 0x1F888,
- 0x1F890,
- 0x1F8AE,
- 0x1F8B0,
- 0x1F8B2,
- 0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
- 0x1FA54,
- 0x1FA60,
- 0x1FA6E,
- 0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
- 0x1FA80,
- 0x1FA87,
- 0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
- 0x1FB00,
- 0x1FB93,
- 0x1FB94,
- 0x1FBCB,
- 0x1FBF0,
- 0x1FBFA,
- 0x1FFFE,
- 0x2A6DE,
- 0x2A700,
- 0x2B735,
- 0x2B740,
- 0x2B81E,
- 0x2B820,
- 0x2CEA2,
- 0x2CEB0,
- 0x2EBE1,
- 0x2F800,
- 0x2FA1E,
- 0x2FFFE,
- 0x3134B,
- 0x3FFFE,
- 0x40000,
- 0x4FFFE,
- 0x50000,
- 0x5FFFE,
- 0x60000,
- 0x6FFFE,
- 0x70000,
- 0x7FFFE,
- 0x80000,
- 0x8FFFE,
- 0x90000,
- 0x9FFFE,
- 0xA0000,
- 0xAFFFE,
- 0xB0000,
- 0xBFFFE,
- 0xC0000,
- 0xCFFFE,
- 0xD0000,
- 0xDFFFE,
- 0xE0000,
- 0xE0001,
- 0xE0002,
- 0xE0020,
- 0xE0080,
- 0xE0100,
- 0xE01F0,
- 0xEFFFE,
- 0x110000
-};
-
static const UV UNI_AGHB_invlist[] = { /* for all charsets */
5, /* Number of elements */
148565664, /* Version and data structure type */
@@ -190884,7 +195802,7 @@ static const UV UNI_AHOM_invlist[] = { /* for all charsets */
0x1171D,
0x1172C,
0x11730,
- 0x11740
+ 0x11747
};
static const UV UNI_ALCHEMICAL_invlist[] = { /* for all charsets */
@@ -190963,31 +195881,29 @@ static const UV UNI_ARAB_invlist[] = { /* for all charsets */
0x600,
0x605,
0x606,
- 0x61D,
- 0x61E,
0x6DD,
0x6DE,
0x700,
0x750,
0x780,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8E2,
0x8E3,
0x900,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD3E,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
+ 0xFE00,
0xFE70,
0xFE75,
0xFE76,
@@ -190996,6 +195912,8 @@ static const UV UNI_ARAB_invlist[] = { /* for all charsets */
0x102FC,
0x10E60,
0x10E7F,
+ 0x10EFD,
+ 0x10F00,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -191076,6 +195994,26 @@ static const UV UNI_ARABICEXTA_invlist[] = { /* for all charsets */
0x900
};
+static const UV UNI_ARABICEXTB_invlist[] = { /* for all charsets */
+ 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,
+ 0x870,
+ 0x8A0
+};
+
+static const UV UNI_ARABICEXTC_invlist[] = { /* for all charsets */
+ 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,
+ 0x10EC0,
+ 0x10F00
+};
+
static const UV UNI_ARABICMATH_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -191173,9 +196111,9 @@ static const UV UNI_BALI_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D
+ 0x1B7F
};
static const UV UNI_BAMU_invlist[] = { /* for all charsets */
@@ -191225,7 +196163,7 @@ static const UV UNI_BATK_invlist[] = { /* for all charsets */
};
static const UV UNI_BC__AL_invlist[] = { /* for all charsets */
- 57, /* Number of elements */
+ 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 */
@@ -191255,17 +196193,17 @@ static const UV UNI_BC__AL_invlist[] = { /* for all charsets */
0x7B1,
0x7C0,
0x860,
- 0x870,
+ 0x890,
+ 0x892,
+ 0x898,
0x8A0,
- 0x8D3,
+ 0x8CA,
0xFB50,
0xFD3E,
- 0xFD40,
- 0xFDD0,
+ 0xFD50,
+ 0xFDCF,
0xFDF0,
0xFDFD,
- 0xFDFE,
- 0xFE00,
0xFE70,
0xFEFF,
0x10D00,
@@ -191274,6 +196212,8 @@ static const UV UNI_BC__AL_invlist[] = { /* for all charsets */
0x10D30,
0x10D3A,
0x10D40,
+ 0x10EC0,
+ 0x10EFD,
0x10F30,
0x10F46,
0x10F51,
@@ -191289,7 +196229,7 @@ static const UV UNI_BC__AL_invlist[] = { /* for all charsets */
};
static const UV UNI_BC__AN_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -191302,6 +196242,8 @@ static const UV UNI_BC__AN_invlist[] = { /* for all charsets */
0x66D,
0x6DD,
0x6DE,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x10D30,
@@ -192180,7 +197122,7 @@ static const UV UNI_BC__FSI_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
- 926, /* Number of elements */
+ 956, /* 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 */
@@ -192312,6 +197254,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -192363,7 +197307,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -192419,7 +197363,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -192439,7 +197383,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -192477,7 +197421,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -192523,8 +197467,6 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1FBD,
0x1FBE,
@@ -192607,7 +197549,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x2D7F,
0x2D80,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -192780,12 +197722,18 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x11047,
0x11052,
0x11066,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -192810,6 +197758,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -192934,8 +197884,20 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x11FD5,
0x11FF2,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -192952,6 +197914,10 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -192960,6 +197926,8 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
+ 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
0x1D300,
@@ -192998,12 +197966,18 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E2FF,
0x1E300,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E800,
0x1F02C,
0x1F030,
@@ -193028,16 +198002,18 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -193051,27 +198027,23 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -193120,7 +198092,7 @@ static const UV UNI_BC__L_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
- 952, /* Number of elements */
+ 982, /* 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 */
@@ -193278,6 +198250,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -193329,7 +198303,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -193385,7 +198359,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -193405,7 +198379,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -193443,7 +198417,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -193489,8 +198463,6 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1FBD,
0x1FBE,
@@ -193573,7 +198545,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x2D7F,
0x2D80,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -193746,12 +198718,18 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x11047,
0x11052,
0x11066,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -193776,6 +198754,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -193900,8 +198880,20 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x11FD5,
0x11FF2,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -193918,6 +198910,10 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -193926,6 +198922,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
+ 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
0x1D300,
@@ -193964,12 +198962,18 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E2FF,
0x1E300,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E800,
0x1F02C,
0x1F030,
@@ -193994,16 +198998,18 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -194017,27 +199023,23 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -194086,7 +199088,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
- 948, /* Number of elements */
+ 978, /* 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 */
@@ -194240,6 +199242,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -194291,7 +199295,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -194347,7 +199351,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -194367,7 +199371,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -194405,7 +199409,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -194451,8 +199455,6 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1FBD,
0x1FBE,
@@ -194535,7 +199537,7 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x2D7F,
0x2D80,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -194708,12 +199710,18 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x11047,
0x11052,
0x11066,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -194738,6 +199746,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -194862,8 +199872,20 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x11FD5,
0x11FF2,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -194880,6 +199902,10 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -194888,6 +199914,8 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
+ 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
0x1D300,
@@ -194926,12 +199954,18 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E2FF,
0x1E300,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E800,
0x1F02C,
0x1F030,
@@ -194956,16 +199990,18 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -194979,27 +200015,23 @@ static const UV UNI_BC__L_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -195073,7 +200105,7 @@ static const UV UNI_BC__LRO_invlist[] = { /* for all charsets */
};
static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
- 645, /* Number of elements */
+ 683, /* 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 */
@@ -195126,7 +200158,9 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -195208,6 +200242,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -195255,7 +200291,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -195303,7 +200339,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -195320,6 +200356,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -195351,7 +200389,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -195397,8 +200435,6 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x20D0,
0x20F1,
@@ -195510,18 +200546,28 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -195546,6 +200592,8 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -195668,6 +200716,18 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -195680,6 +200740,10 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x16FE5,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D17B,
@@ -195712,10 +200776,16 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -195727,7 +200797,7 @@ static const UV UNI_BC__NSM_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
- 377, /* Number of elements */
+ 379, /* 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 */
@@ -195895,7 +200965,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
0x2CF9,
0x2D00,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -195959,9 +201029,11 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
0xAB6A,
0xAB6C,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE10,
0xFE1A,
0xFE30,
@@ -196018,6 +201090,8 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
0x11FF2,
0x16FE2,
0x16FE3,
+ 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -196060,16 +201134,18 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -196083,27 +201159,23 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -196118,7 +201190,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
- 385, /* Number of elements */
+ 387, /* 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 */
@@ -196294,7 +201366,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
0x2CF9,
0x2D00,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -196358,9 +201430,11 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
0xAB6A,
0xAB6C,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE10,
0xFE1A,
0xFE30,
@@ -196417,6 +201491,8 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
0x11FF2,
0x16FE2,
0x16FE3,
+ 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -196459,16 +201535,18 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -196482,27 +201560,23 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -196517,7 +201591,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */
- 381, /* Number of elements */
+ 383, /* 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 */
@@ -196689,7 +201763,7 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */
0x2CF9,
0x2D00,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -196753,9 +201827,11 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */
0xAB6A,
0xAB6C,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE10,
0xFE1A,
0xFE30,
@@ -196812,6 +201888,8 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */
0x11FF2,
0x16FE2,
0x16FE3,
+ 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -196854,16 +201932,18 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -196877,27 +201957,23 @@ static const UV UNI_BC__ON_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -196927,7 +202003,7 @@ static const UV UNI_BC__PDI_invlist[] = { /* for all charsets */
};
static const UV UNI_BC__R_invlist[] = { /* for all charsets */
- 79, /* Number of elements */
+ 81, /* 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 */
@@ -196962,8 +202038,6 @@ static const UV UNI_BC__R_invlist[] = { /* for all charsets */
0x859,
0x85C,
0x860,
- 0x870,
- 0x8A0,
0x200F,
0x2010,
0xFB1D,
@@ -196995,8 +202069,12 @@ static const UV UNI_BC__R_invlist[] = { /* for all charsets */
0x10E7F,
0x10EAB,
0x10EAD,
+ 0x10EC0,
+ 0x10F00,
0x10F30,
0x10F70,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x1E800,
0x1E8D0,
@@ -197281,7 +202359,7 @@ static const UV UNI_BIDIC_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_BIDIM_invlist[] = { /* for ASCII/Latin1 */
- 227, /* Number of elements */
+ 229, /* 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 */
@@ -197476,6 +202554,8 @@ static const UV UNI_BIDIM_invlist[] = { /* for ASCII/Latin1 */
0x2E1E,
0x2E20,
0x2E2A,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -197522,7 +202602,7 @@ static const UV UNI_BIDIM_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_BIDIM_invlist[] = { /* for EBCDIC 1047 */
- 225, /* Number of elements */
+ 227, /* 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 */
@@ -197715,6 +202795,8 @@ static const UV UNI_BIDIM_invlist[] = { /* for EBCDIC 1047 */
0x2E1E,
0x2E20,
0x2E2A,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -197761,7 +202843,7 @@ static const UV UNI_BIDIM_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_BIDIM_invlist[] = { /* for EBCDIC 037 */
- 223, /* Number of elements */
+ 225, /* 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 */
@@ -197952,6 +203034,8 @@ static const UV UNI_BIDIM_invlist[] = { /* for EBCDIC 037 */
0x2E1E,
0x2E20,
0x2E2A,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -198057,7 +203141,7 @@ static const UV UNI_BOXDRAWING_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_BPT__C_invlist[] = { /* for ASCII/Latin1 */
- 121, /* Number of elements */
+ 129, /* 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 */
@@ -198148,6 +203232,14 @@ static const UV UNI_BPT__C_invlist[] = { /* for ASCII/Latin1 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3009,
0x300A,
0x300B,
@@ -198192,7 +203284,7 @@ static const UV UNI_BPT__C_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_BPT__C_invlist[] = { /* for EBCDIC 1047 */
- 121, /* Number of elements */
+ 129, /* 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 */
@@ -198283,6 +203375,14 @@ static const UV UNI_BPT__C_invlist[] = { /* for EBCDIC 1047 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3009,
0x300A,
0x300B,
@@ -198327,7 +203427,7 @@ static const UV UNI_BPT__C_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_BPT__C_invlist[] = { /* for EBCDIC 037 */
- 121, /* Number of elements */
+ 129, /* 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 */
@@ -198418,6 +203518,14 @@ static const UV UNI_BPT__C_invlist[] = { /* for EBCDIC 037 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3009,
0x300A,
0x300B,
@@ -198459,7 +203567,7 @@ static const UV UNI_BPT__C_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_BPT__N_invlist[] = { /* for ASCII/Latin1 */
- 59, /* Number of elements */
+ 61, /* 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 */
@@ -198502,6 +203610,8 @@ static const UV UNI_BPT__N_invlist[] = { /* for ASCII/Latin1 */
0x29FE,
0x2E22,
0x2E2A,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -198532,7 +203642,7 @@ static const UV UNI_BPT__N_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_BPT__N_invlist[] = { /* for EBCDIC 1047 */
- 61, /* Number of elements */
+ 63, /* 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 */
@@ -198577,6 +203687,8 @@ static const UV UNI_BPT__N_invlist[] = { /* for EBCDIC 1047 */
0x29FE,
0x2E22,
0x2E2A,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -198607,7 +203719,7 @@ static const UV UNI_BPT__N_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_BPT__N_invlist[] = { /* for EBCDIC 037 */
- 59, /* Number of elements */
+ 61, /* 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 */
@@ -198650,6 +203762,8 @@ static const UV UNI_BPT__N_invlist[] = { /* for EBCDIC 037 */
0x29FE,
0x2E22,
0x2E2A,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -198677,7 +203791,7 @@ static const UV UNI_BPT__N_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_BPT__O_invlist[] = { /* for ASCII/Latin1 */
- 121, /* Number of elements */
+ 129, /* 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 */
@@ -198768,6 +203882,14 @@ static const UV UNI_BPT__O_invlist[] = { /* for ASCII/Latin1 */
0x2E27,
0x2E28,
0x2E29,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -198812,7 +203934,7 @@ static const UV UNI_BPT__O_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_BPT__O_invlist[] = { /* for EBCDIC 1047 */
- 121, /* Number of elements */
+ 129, /* 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 */
@@ -198903,6 +204025,14 @@ static const UV UNI_BPT__O_invlist[] = { /* for EBCDIC 1047 */
0x2E27,
0x2E28,
0x2E29,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -198947,7 +204077,7 @@ static const UV UNI_BPT__O_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_BPT__O_invlist[] = { /* for EBCDIC 037 */
- 121, /* Number of elements */
+ 129, /* 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 */
@@ -199038,6 +204168,14 @@ static const UV UNI_BPT__O_invlist[] = { /* for EBCDIC 037 */
0x2E27,
0x2E28,
0x2E29,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -199085,7 +204223,7 @@ static const UV UNI_BRAH_invlist[] = { /* for all charsets */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x11080
};
@@ -199139,7 +204277,7 @@ static const UV UNI_BYZANTINEMUSIC_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
- 1357, /* Number of elements */
+ 1423, /* 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 */
@@ -199174,7 +204312,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x5F5,
0x606,
0x61C,
- 0x61E,
+ 0x61D,
0x6DD,
0x6DE,
0x70E,
@@ -199194,11 +204332,9 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x984,
@@ -199356,7 +204492,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -199366,6 +204502,8 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -199388,14 +204526,14 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -199455,7 +204593,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -199523,10 +204661,8 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -199544,7 +204680,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x17FA,
0x1800,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -199583,11 +204719,11 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -199603,8 +204739,6 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -199649,7 +204783,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -199663,10 +204797,6 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -199697,7 +204827,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -199721,8 +204851,6 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -199731,10 +204859,14 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -199805,16 +204937,14 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -199899,13 +205029,33 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -199988,10 +205138,12 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -199999,11 +205151,11 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BD,
0x110BE,
- 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -200021,7 +205173,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -200085,7 +205237,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -200093,7 +205245,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -200124,8 +205276,10 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -200168,6 +205322,12 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -200180,8 +205340,12 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -200191,7 +205355,9 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -200224,10 +205390,20 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -200242,6 +205418,12 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9C,
0x1BCA0,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -200249,9 +205431,11 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1D129,
0x1D173,
0x1D17B,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -200304,6 +205488,10 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -200314,6 +205502,10 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -200322,10 +205514,22 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -200434,16 +205638,18 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -200457,27 +205663,23 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -200485,9 +205687,9 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -200498,6 +205700,8 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -200510,7 +205714,7 @@ static const UV UNI_C_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
- 1357, /* Number of elements */
+ 1423, /* 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 */
@@ -200545,7 +205749,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x5F5,
0x606,
0x61C,
- 0x61E,
+ 0x61D,
0x6DD,
0x6DE,
0x70E,
@@ -200565,11 +205769,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x984,
@@ -200727,7 +205929,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -200737,6 +205939,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -200759,14 +205963,14 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -200826,7 +206030,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -200894,10 +206098,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -200915,7 +206117,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x17FA,
0x1800,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -200954,11 +206156,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -200974,8 +206176,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -201020,7 +206220,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -201034,10 +206234,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -201068,7 +206264,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -201092,8 +206288,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -201102,10 +206296,14 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -201176,16 +206374,14 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -201270,13 +206466,33 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -201359,10 +206575,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -201370,11 +206588,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BD,
0x110BE,
- 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -201392,7 +206610,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -201456,7 +206674,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -201464,7 +206682,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -201495,8 +206713,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -201539,6 +206759,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -201551,8 +206777,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -201562,7 +206792,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -201595,10 +206827,20 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -201613,6 +206855,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9C,
0x1BCA0,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -201620,9 +206868,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1D129,
0x1D173,
0x1D17B,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -201675,6 +206925,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -201685,6 +206939,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -201693,10 +206951,22 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -201805,16 +207075,18 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -201828,27 +207100,23 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -201856,9 +207124,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -201869,6 +207137,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -201881,7 +207151,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
- 1357, /* Number of elements */
+ 1423, /* 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 */
@@ -201916,7 +207186,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x5F5,
0x606,
0x61C,
- 0x61E,
+ 0x61D,
0x6DD,
0x6DE,
0x70E,
@@ -201936,11 +207206,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x984,
@@ -202098,7 +207366,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -202108,6 +207376,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -202130,14 +207400,14 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -202197,7 +207467,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -202265,10 +207535,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -202286,7 +207554,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x17FA,
0x1800,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -202325,11 +207593,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -202345,8 +207613,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -202391,7 +207657,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -202405,10 +207671,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -202439,7 +207701,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -202463,8 +207725,6 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -202473,10 +207733,14 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -202547,16 +207811,14 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -202641,13 +207903,33 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -202730,10 +208012,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -202741,11 +208025,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BD,
0x110BE,
- 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -202763,7 +208047,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -202827,7 +208111,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -202835,7 +208119,7 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -202866,8 +208150,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -202910,6 +208196,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -202922,8 +208214,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -202933,7 +208229,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -202966,10 +208264,20 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -202984,6 +208292,12 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9C,
0x1BCA0,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -202991,9 +208305,11 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1D129,
0x1D173,
0x1D17B,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -203046,6 +208362,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -203056,6 +208376,10 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -203064,10 +208388,22 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -203176,16 +208512,18 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -203199,27 +208537,23 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -203227,9 +208561,9 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -203240,6 +208574,8 @@ static const UV UNI_C_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -203263,7 +208599,7 @@ static const UV UNI_CAKM_invlist[] = { /* for all charsets */
};
static const UV UNI_CANS_invlist[] = { /* for all charsets */
- 5, /* Number of elements */
+ 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 */
@@ -203271,7 +208607,9 @@ static const UV UNI_CANS_invlist[] = { /* for all charsets */
0x1400,
0x1680,
0x18B0,
- 0x18F6
+ 0x18F6,
+ 0x11AB0,
+ 0x11AC0
};
static const UV UNI_CARI_invlist[] = { /* for all charsets */
@@ -203285,7 +208623,7 @@ static const UV UNI_CARI_invlist[] = { /* for all charsets */
};
static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
- 369, /* Number of elements */
+ 385, /* 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 */
@@ -203338,7 +208676,9 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x900,
@@ -203368,6 +208708,8 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0xB4E,
0xBCD,
0xBCE,
+ 0xC3C,
+ 0xC3D,
0xC4D,
0xC4E,
0xC55,
@@ -203421,7 +208763,7 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x135D,
0x1360,
0x1714,
- 0x1715,
+ 0x1716,
0x1734,
0x1735,
0x17D2,
@@ -203443,7 +208785,7 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B34,
0x1B35,
0x1B44,
@@ -203471,8 +208813,6 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x20D0,
0x20DD,
@@ -203552,10 +208892,16 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11046,
0x11047,
+ 0x11070,
+ 0x11071,
0x1107F,
0x11080,
0x110B9,
@@ -203620,6 +208966,8 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x11D46,
0x11D97,
0x11D98,
+ 0x11F41,
+ 0x11F43,
0x16AF0,
0x16AF5,
0x16B30,
@@ -203650,10 +208998,16 @@ static const UV UNI_CCC__0_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -204099,7 +209453,7 @@ static const UV UNI_CCC__6_invlist[] = { /* for all charsets */
};
static const UV UNI_CCC__7_invlist[] = { /* for all charsets */
- 51, /* Number of elements */
+ 53, /* 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 */
@@ -204114,6 +209468,8 @@ static const UV UNI_CCC__7_invlist[] = { /* for all charsets */
0xABD,
0xB3C,
0xB3D,
+ 0xC3C,
+ 0xC3D,
0xCBC,
0xCBD,
0x1037,
@@ -204177,7 +209533,7 @@ static const UV UNI_CCC__84_invlist[] = { /* for all charsets */
};
static const UV UNI_CCC__9_invlist[] = { /* for all charsets */
- 109, /* Number of elements */
+ 113, /* 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 */
@@ -204213,7 +209569,7 @@ static const UV UNI_CCC__9_invlist[] = { /* for all charsets */
0x1039,
0x103B,
0x1714,
- 0x1715,
+ 0x1716,
0x1734,
0x1735,
0x17D2,
@@ -204246,6 +209602,8 @@ static const UV UNI_CCC__9_invlist[] = { /* for all charsets */
0x10A40,
0x11046,
0x11047,
+ 0x11070,
+ 0x11071,
0x1107F,
0x11080,
0x110B9,
@@ -204289,7 +209647,9 @@ static const UV UNI_CCC__9_invlist[] = { /* for all charsets */
0x11D44,
0x11D46,
0x11D97,
- 0x11D98
+ 0x11D98,
+ 0x11F41,
+ 0x11F43
};
static const UV UNI_CCC__91_invlist[] = { /* for all charsets */
@@ -204303,7 +209663,7 @@ static const UV UNI_CCC__91_invlist[] = { /* for all charsets */
};
static const UV UNI_CCC__A_invlist[] = { /* for all charsets */
- 237, /* Number of elements */
+ 259, /* 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 */
@@ -204390,6 +209750,12 @@ static const UV UNI_CCC__A_invlist[] = { /* for all charsets */
0x828,
0x829,
0x82E,
+ 0x898,
+ 0x899,
+ 0x89C,
+ 0x8A0,
+ 0x8CA,
+ 0x8CF,
0x8D4,
0x8E2,
0x8E4,
@@ -204428,6 +209794,12 @@ static const UV UNI_CCC__A_invlist[] = { /* for all charsets */
0x1AB5,
0x1ABB,
0x1ABD,
+ 0x1AC1,
+ 0x1AC3,
+ 0x1AC5,
+ 0x1ACA,
+ 0x1ACB,
+ 0x1ACF,
0x1B6B,
0x1B6C,
0x1B6D,
@@ -204512,6 +209884,10 @@ static const UV UNI_CCC__A_invlist[] = { /* for all charsets */
0x10F4B,
0x10F4C,
0x10F4D,
+ 0x10F82,
+ 0x10F83,
+ 0x10F84,
+ 0x10F85,
0x11100,
0x11103,
0x11366,
@@ -204538,10 +209914,16 @@ static const UV UNI_CCC__A_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EF,
+ 0x1E4F0,
0x1E944,
0x1E94A
};
@@ -204563,7 +209945,7 @@ static const UV UNI_CCC__AL_invlist[] = { /* for all charsets */
};
static const UV UNI_CCC__AR_invlist[] = { /* for all charsets */
- 11, /* Number of elements */
+ 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 */
@@ -204577,11 +209959,13 @@ static const UV UNI_CCC__AR_invlist[] = { /* for all charsets */
0x1DF6,
0x1DF7,
0x302C,
- 0x302D
+ 0x302D,
+ 0x1E4EC,
+ 0x1E4EE
};
static const UV UNI_CCC__B_invlist[] = { /* for all charsets */
- 157, /* Number of elements */
+ 171, /* 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 */
@@ -204652,7 +210036,9 @@ static const UV UNI_CCC__B_invlist[] = { /* for all charsets */
0x7FE,
0x859,
0x85C,
- 0x8D3,
+ 0x899,
+ 0x89C,
+ 0x8CF,
0x8D4,
0x8E3,
0x8E4,
@@ -204690,6 +210076,10 @@ static const UV UNI_CCC__B_invlist[] = { /* for all charsets */
0x1ABE,
0x1ABF,
0x1AC1,
+ 0x1AC3,
+ 0x1AC5,
+ 0x1ACA,
+ 0x1ACB,
0x1B6C,
0x1B6D,
0x1CD5,
@@ -204730,26 +210120,36 @@ static const UV UNI_CCC__B_invlist[] = { /* for all charsets */
0x10A3B,
0x10AE6,
0x10AE7,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F48,
0x10F4B,
0x10F4C,
0x10F4D,
0x10F51,
+ 0x10F83,
+ 0x10F84,
+ 0x10F85,
+ 0x10F86,
0x1D17B,
0x1D183,
0x1D18A,
0x1D18C,
+ 0x1E4EE,
+ 0x1E4EF,
0x1E8D0,
0x1E8D7
};
static const UV UNI_CCC__BL_invlist[] = { /* for all charsets */
- 3, /* Number of elements */
+ 5, /* 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,
+ 0x1DFA,
+ 0x1DFB,
0x302A,
0x302B
};
@@ -204907,7 +210307,7 @@ static const UV UNI_CE_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CF_invlist[] = { /* for ASCII/Latin1 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -204922,6 +210322,8 @@ static const UV UNI_CF_invlist[] = { /* for ASCII/Latin1 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -204943,7 +210345,7 @@ static const UV UNI_CF_invlist[] = { /* for ASCII/Latin1 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -204962,7 +210364,7 @@ static const UV UNI_CF_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CF_invlist[] = { /* for EBCDIC 1047 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -204977,6 +210379,8 @@ static const UV UNI_CF_invlist[] = { /* for EBCDIC 1047 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -204998,7 +210402,7 @@ static const UV UNI_CF_invlist[] = { /* for EBCDIC 1047 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -205017,7 +210421,7 @@ static const UV UNI_CF_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CF_invlist[] = { /* for EBCDIC 037 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -205032,6 +210436,8 @@ static const UV UNI_CF_invlist[] = { /* for EBCDIC 037 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -205053,7 +210459,7 @@ static const UV UNI_CF_invlist[] = { /* for EBCDIC 037 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -205129,7 +210535,7 @@ static const UV UNI_CHRS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
- 821, /* Number of elements */
+ 875, /* 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 */
@@ -205218,7 +210624,13 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x888,
+ 0x889,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8C9,
0x903,
0x93A,
0x93B,
@@ -205300,6 +210712,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -205353,7 +210767,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -205403,7 +210817,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -205421,7 +210835,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x17DD,
0x17DE,
0x180B,
- 0x180F,
+ 0x1810,
0x1843,
0x1844,
0x1885,
@@ -205457,7 +210871,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x1AA7,
0x1AA8,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -205509,8 +210923,6 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x1D78,
0x1D79,
0x1D9B,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1FBD,
0x1FBE,
@@ -205592,6 +211004,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0xA771,
0xA788,
0xA78B,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xA802,
@@ -205671,7 +211085,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0xFB1E,
0xFB1F,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFE00,
0xFE10,
0xFE13,
@@ -205708,6 +211122,12 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x102E1,
0x10376,
0x1037B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10A01,
0x10A04,
0x10A05,
@@ -205724,12 +211144,20 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
@@ -205738,6 +211166,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -205764,6 +211194,8 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -205886,8 +211318,18 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -205902,10 +211344,20 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x16FE2,
0x16FE3,
0x16FE5,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1BC9D,
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -205938,10 +211390,18 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E13E,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EB,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -205964,7 +211424,7 @@ static const UV UNI_CI_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
- 819, /* Number of elements */
+ 873, /* 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 */
@@ -206051,7 +211511,13 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x888,
+ 0x889,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8C9,
0x903,
0x93A,
0x93B,
@@ -206133,6 +211599,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -206186,7 +211654,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -206236,7 +211704,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -206254,7 +211722,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x17DD,
0x17DE,
0x180B,
- 0x180F,
+ 0x1810,
0x1843,
0x1844,
0x1885,
@@ -206290,7 +211758,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x1AA7,
0x1AA8,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -206342,8 +211810,6 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x1D78,
0x1D79,
0x1D9B,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1FBD,
0x1FBE,
@@ -206425,6 +211891,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0xA771,
0xA788,
0xA78B,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xA802,
@@ -206504,7 +211972,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0xFB1E,
0xFB1F,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFE00,
0xFE10,
0xFE13,
@@ -206541,6 +212009,12 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x102E1,
0x10376,
0x1037B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10A01,
0x10A04,
0x10A05,
@@ -206557,12 +212031,20 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
@@ -206571,6 +212053,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -206597,6 +212081,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -206719,8 +212205,18 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -206735,10 +212231,20 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x16FE2,
0x16FE3,
0x16FE5,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1BC9D,
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -206771,10 +212277,18 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E13E,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EB,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -206797,7 +212311,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
- 817, /* Number of elements */
+ 871, /* 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 */
@@ -206882,7 +212396,13 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x888,
+ 0x889,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8C9,
0x903,
0x93A,
0x93B,
@@ -206964,6 +212484,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -207017,7 +212539,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -207067,7 +212589,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -207085,7 +212607,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x17DD,
0x17DE,
0x180B,
- 0x180F,
+ 0x1810,
0x1843,
0x1844,
0x1885,
@@ -207121,7 +212643,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x1AA7,
0x1AA8,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -207173,8 +212695,6 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x1D78,
0x1D79,
0x1D9B,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1FBD,
0x1FBE,
@@ -207256,6 +212776,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0xA771,
0xA788,
0xA78B,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xA802,
@@ -207335,7 +212857,7 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0xFB1E,
0xFB1F,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFE00,
0xFE10,
0xFE13,
@@ -207372,6 +212894,12 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x102E1,
0x10376,
0x1037B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10A01,
0x10A04,
0x10A05,
@@ -207388,12 +212916,20 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
@@ -207402,6 +212938,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -207428,6 +212966,8 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -207550,8 +213090,18 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -207566,10 +213116,20 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x16FE2,
0x16FE3,
0x16FE5,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1BC9D,
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -207602,10 +213162,18 @@ static const UV UNI_CI_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E13E,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EB,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -207742,6 +213310,16 @@ static const UV UNI_CJKEXTG_invlist[] = { /* for all charsets */
0x31350
};
+static const UV UNI_CJKEXTH_invlist[] = { /* for all charsets */
+ 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,
+ 0x31350,
+ 0x323B0
+};
+
static const UV UNI_CJKRADICALSSUP_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -207773,7 +213351,7 @@ static const UV UNI_CJKSYMBOLS_invlist[] = { /* for all charsets */
};
static const UV UNI_CN_invlist[] = { /* for all charsets */
- 1354, /* Number of elements */
+ 1414, /* 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 */
@@ -207802,8 +213380,6 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -207821,11 +213397,11 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -207981,7 +213557,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -207991,6 +213567,8 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -208013,14 +213591,14 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -208080,7 +213658,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -208148,10 +213726,8 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -208168,8 +213744,6 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -208208,11 +213782,11 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -208228,8 +213802,6 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -208270,7 +213842,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -208284,10 +213856,6 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -208318,7 +213886,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -208342,8 +213910,6 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -208352,10 +213918,14 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -208426,16 +213996,14 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -208522,13 +214090,33 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -208611,10 +214199,12 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -208622,9 +214212,9 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -208644,7 +214234,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -208708,7 +214298,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -208716,7 +214306,7 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -208747,8 +214337,10 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -208791,6 +214383,12 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -208803,10 +214401,10 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -208816,7 +214414,9 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -208849,10 +214449,20 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -208867,14 +214477,22 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -208927,6 +214545,10 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -208937,6 +214559,10 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -208945,10 +214571,22 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -209057,16 +214695,18 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -209080,27 +214720,23 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -209108,9 +214744,9 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -209121,6 +214757,8 @@ static const UV UNI_CN_invlist[] = { /* for all charsets */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -209357,6 +214995,18 @@ static const UV UNI_COUNTINGROD_invlist[] = { /* for all charsets */
0x1D380
};
+static const UV UNI_CPMN_invlist[] = { /* for all charsets */
+ 5, /* 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,
+ 0x10100,
+ 0x10102,
+ 0x12F90,
+ 0x12FF3
+};
+
static const UV UNI_CPRT_invlist[] = { /* for all charsets */
19, /* Number of elements */
148565664, /* Version and data structure type */
@@ -209406,7 +215056,7 @@ static const UV UNI_CURRENCYSYMBOLS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */
- 1229, /* Number of elements */
+ 1245, /* 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 */
@@ -210282,7 +215932,7 @@ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -210611,12 +216261,20 @@ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -210631,6 +216289,14 @@ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -210649,7 +216315,7 @@ static const UV UNI_CWCF_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */
- 1249, /* Number of elements */
+ 1265, /* 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 */
@@ -211545,7 +217211,7 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -211874,12 +217540,20 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -211894,6 +217568,14 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -211912,7 +217594,7 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */
- 1245, /* Number of elements */
+ 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 */
@@ -212804,7 +218486,7 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -213133,12 +218815,20 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xAB70,
@@ -213153,6 +218843,14 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -213168,7 +218866,7 @@ static const UV UNI_CWCF_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */
- 249, /* Number of elements */
+ 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 */
@@ -213350,10 +219048,6 @@ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C71,
0x2C72,
0x2C74,
@@ -213388,9 +219082,11 @@ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */
0xA796,
0xA7AF,
0xA7B0,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D6,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xAB53,
@@ -213411,6 +219107,22 @@ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -213431,7 +219143,7 @@ static const UV UNI_CWCM_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */
- 281, /* Number of elements */
+ 295, /* 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 */
@@ -213645,10 +219357,6 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C71,
0x2C72,
0x2C74,
@@ -213683,9 +219391,11 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */
0xA796,
0xA7AF,
0xA7B0,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D6,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xAB53,
@@ -213706,6 +219416,22 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -213726,7 +219452,7 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */
- 277, /* Number of elements */
+ 291, /* 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 */
@@ -213936,10 +219662,6 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2C71,
0x2C72,
0x2C74,
@@ -213974,9 +219696,11 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */
0xA796,
0xA7AF,
0xA7B0,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D6,
+ 0xA7DA,
0xA7F5,
0xA7F7,
0xAB53,
@@ -213997,6 +219721,22 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */
0x104D4,
0x104D8,
0x104FC,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10C80,
0x10CB3,
0x10CC0,
@@ -214014,7 +219754,7 @@ static const UV UNI_CWCM_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
- 1655, /* Number of elements */
+ 1679, /* 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 */
@@ -214660,7 +220400,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x1C80,
0x1C89,
0x1C90,
@@ -215062,7 +220802,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
0x2ADC,
0x2ADD,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -215427,13 +221167,21 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7F2,
0xA7F6,
0xA7F8,
0xA7FA,
@@ -215525,6 +221273,20 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10C80,
0x10CB3,
0x118A0,
@@ -215581,6 +221343,8 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1E900,
0x1E922,
0x1EE00,
@@ -215683,7 +221447,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
- 1665, /* Number of elements */
+ 1689, /* 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 */
@@ -216339,7 +222103,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x1C80,
0x1C89,
0x1C90,
@@ -216741,7 +222505,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
0x2ADC,
0x2ADD,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -217106,13 +222870,21 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7F2,
0xA7F6,
0xA7F8,
0xA7FA,
@@ -217204,6 +222976,20 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10C80,
0x10CB3,
0x118A0,
@@ -217260,6 +223046,8 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1E900,
0x1E922,
0x1EE00,
@@ -217362,7 +223150,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
- 1663, /* Number of elements */
+ 1687, /* 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 */
@@ -218016,7 +223804,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x1C80,
0x1C89,
0x1C90,
@@ -218418,7 +224206,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
0x2ADC,
0x2ADD,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -218783,13 +224571,21 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7F2,
0xA7F6,
0xA7F8,
0xA7FA,
@@ -218881,6 +224677,20 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10C80,
0x10CB3,
0x118A0,
@@ -218937,6 +224747,8 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1E900,
0x1E922,
0x1EE00,
@@ -219036,7 +224848,7 @@ static const UV UNI_CWKCF_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */
- 1203, /* Number of elements */
+ 1219, /* 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 */
@@ -219892,7 +225704,7 @@ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -220221,12 +226033,20 @@ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -220235,6 +226055,14 @@ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -220253,7 +226081,7 @@ static const UV UNI_CWL_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */
- 1221, /* Number of elements */
+ 1237, /* 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 */
@@ -221127,7 +226955,7 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -221456,12 +227284,20 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -221470,6 +227306,14 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -221488,7 +227332,7 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */
- 1217, /* Number of elements */
+ 1233, /* 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 */
@@ -222358,7 +228202,7 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -222687,12 +228531,20 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -222701,6 +228553,14 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -222716,7 +228576,7 @@ static const UV UNI_CWL_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */
- 1237, /* Number of elements */
+ 1253, /* 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 */
@@ -223598,7 +229458,7 @@ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -223927,12 +229787,20 @@ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -223949,6 +229817,14 @@ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -223967,7 +229843,7 @@ static const UV UNI_CWT_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */
- 1251, /* Number of elements */
+ 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 */
@@ -224863,7 +230739,7 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -225192,12 +231068,20 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -225214,6 +231098,14 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -225232,7 +231124,7 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */
- 1251, /* Number of elements */
+ 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 */
@@ -226128,7 +232020,7 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -226457,12 +232349,20 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -226479,6 +232379,14 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -226494,7 +232402,7 @@ static const UV UNI_CWT_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */
- 1239, /* Number of elements */
+ 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 */
@@ -227378,7 +233286,7 @@ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -227707,12 +233615,20 @@ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -227729,6 +233645,14 @@ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -227747,7 +233671,7 @@ static const UV UNI_CWU_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */
- 1253, /* Number of elements */
+ 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 */
@@ -228645,7 +234569,7 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -228974,12 +234898,20 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -228996,6 +234928,14 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -229014,7 +234954,7 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_CWU_invlist[] = { /* for EBCDIC 037 */
- 1253, /* Number of elements */
+ 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 */
@@ -229912,7 +235852,7 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -230241,12 +236181,20 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
0xA7F6,
0xA7F7,
0xAB53,
@@ -230263,6 +236211,14 @@ static const UV UNI_CWU_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10CC0,
0x10CF3,
0x118C0,
@@ -230315,6 +236271,16 @@ static const UV UNI_CYRILLICEXTC_invlist[] = { /* for all charsets */
0x1C90
};
+static const UV UNI_CYRILLICEXTD_invlist[] = { /* for all charsets */
+ 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,
+ 0x1E030,
+ 0x1E090
+};
+
static const UV UNI_CYRILLICSUP_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -230326,7 +236292,7 @@ static const UV UNI_CYRILLICSUP_invlist[] = { /* for all charsets */
};
static const UV UNI_CYRL_invlist[] = { /* for all charsets */
- 19, /* Number of elements */
+ 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 */
@@ -230348,13 +236314,17 @@ static const UV UNI_CYRL_invlist[] = { /* for all charsets */
0xA640,
0xA6A0,
0xFE2E,
- 0xFE30
+ 0xFE30,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090
};
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_DASH_invlist[] = { /* for ASCII/Latin1 */
- 45, /* Number of elements */
+ 47, /* 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 */
@@ -230387,6 +236357,8 @@ static const UV UNI_DASH_invlist[] = { /* for ASCII/Latin1 */
0x2E3C,
0x2E40,
0x2E41,
+ 0x2E5D,
+ 0x2E5E,
0x301C,
0x301D,
0x3030,
@@ -230413,7 +236385,7 @@ static const UV UNI_DASH_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_DASH_invlist[] = { /* for EBCDIC 1047 */
- 45, /* Number of elements */
+ 47, /* 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 */
@@ -230446,6 +236418,8 @@ static const UV UNI_DASH_invlist[] = { /* for EBCDIC 1047 */
0x2E3C,
0x2E40,
0x2E41,
+ 0x2E5D,
+ 0x2E5E,
0x301C,
0x301D,
0x3030,
@@ -230472,7 +236446,7 @@ static const UV UNI_DASH_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_DASH_invlist[] = { /* for EBCDIC 037 */
- 45, /* Number of elements */
+ 47, /* 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 */
@@ -230505,6 +236479,8 @@ static const UV UNI_DASH_invlist[] = { /* for EBCDIC 037 */
0x2E3C,
0x2E40,
0x2E41,
+ 0x2E5D,
+ 0x2E5E,
0x301C,
0x301D,
0x3030,
@@ -230550,7 +236526,7 @@ static const UV UNI_DEP_invlist[] = { /* for all charsets */
};
static const UV UNI_DEVA_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -230568,7 +236544,9 @@ static const UV UNI_DEVA_invlist[] = { /* for all charsets */
0xA830,
0xA83A,
0xA8E0,
- 0xA900
+ 0xA900,
+ 0x11B00,
+ 0x11B0A
};
static const UV UNI_DEVANAGARIEXT_invlist[] = { /* for all charsets */
@@ -230581,6 +236559,16 @@ static const UV UNI_DEVANAGARIEXT_invlist[] = { /* for all charsets */
0xA900
};
+static const UV UNI_DEVANAGARIEXTA_invlist[] = { /* for all charsets */
+ 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,
+ 0x11B00,
+ 0x11B60
+};
+
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_DI_invlist[] = { /* for ASCII/Latin1 */
@@ -230600,7 +236588,7 @@ static const UV UNI_DI_invlist[] = { /* for ASCII/Latin1 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x200B,
0x2010,
0x202A,
@@ -230649,7 +236637,7 @@ static const UV UNI_DI_invlist[] = { /* for EBCDIC 1047 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x200B,
0x2010,
0x202A,
@@ -230698,7 +236686,7 @@ static const UV UNI_DI_invlist[] = { /* for EBCDIC 037 */
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x200B,
0x2010,
0x202A,
@@ -230728,7 +236716,7 @@ static const UV UNI_DI_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
- 353, /* Number of elements */
+ 391, /* 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 */
@@ -230789,6 +236777,10 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x7F6,
0x818,
0x81A,
+ 0x898,
+ 0x8A0,
+ 0x8C9,
+ 0x8D3,
0x8E3,
0x8FF,
0x93C,
@@ -230821,6 +236813,8 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0xB56,
0xBCD,
0xBCE,
+ 0xC3C,
+ 0xC3D,
0xC4D,
0xC4E,
0xCBC,
@@ -230873,6 +236867,8 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x109C,
0x135D,
0x1360,
+ 0x1714,
+ 0x1716,
0x17C9,
0x17D4,
0x17DD,
@@ -230884,7 +236880,9 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1ABE,
+ 0x1ABF,
+ 0x1AC1,
+ 0x1ACC,
0x1B34,
0x1B35,
0x1B44,
@@ -230910,8 +236908,6 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x1DC4,
0x1DD0,
0x1DF5,
- 0x1DFA,
- 0x1DFD,
0x1E00,
0x1FBD,
0x1FBE,
@@ -230993,12 +236989,26 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0xFFE4,
0x102E0,
0x102E1,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10AE5,
0x10AE7,
0x10D22,
0x10D28,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
+ 0x11046,
+ 0x11047,
+ 0x11070,
+ 0x11071,
0x110B9,
0x110BB,
0x11133,
@@ -231057,6 +237067,8 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x11D46,
0x11D97,
0x11D98,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -231065,6 +237077,16 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x16FA0,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D16D,
@@ -231075,8 +237097,12 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
+ 0x1E030,
+ 0x1E06E,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E8D0,
@@ -231095,7 +237121,7 @@ static const UV UNI_DIA_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
- 353, /* Number of elements */
+ 391, /* 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 */
@@ -231156,6 +237182,10 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x7F6,
0x818,
0x81A,
+ 0x898,
+ 0x8A0,
+ 0x8C9,
+ 0x8D3,
0x8E3,
0x8FF,
0x93C,
@@ -231188,6 +237218,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0xB56,
0xBCD,
0xBCE,
+ 0xC3C,
+ 0xC3D,
0xC4D,
0xC4E,
0xCBC,
@@ -231240,6 +237272,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x109C,
0x135D,
0x1360,
+ 0x1714,
+ 0x1716,
0x17C9,
0x17D4,
0x17DD,
@@ -231251,7 +237285,9 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1ABE,
+ 0x1ABF,
+ 0x1AC1,
+ 0x1ACC,
0x1B34,
0x1B35,
0x1B44,
@@ -231277,8 +237313,6 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x1DC4,
0x1DD0,
0x1DF5,
- 0x1DFA,
- 0x1DFD,
0x1E00,
0x1FBD,
0x1FBE,
@@ -231360,12 +237394,26 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0xFFE4,
0x102E0,
0x102E1,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10AE5,
0x10AE7,
0x10D22,
0x10D28,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
+ 0x11046,
+ 0x11047,
+ 0x11070,
+ 0x11071,
0x110B9,
0x110BB,
0x11133,
@@ -231424,6 +237472,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x11D46,
0x11D97,
0x11D98,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -231432,6 +237482,16 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x16FA0,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D16D,
@@ -231442,8 +237502,12 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
+ 0x1E030,
+ 0x1E06E,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E8D0,
@@ -231462,7 +237526,7 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
- 351, /* Number of elements */
+ 389, /* 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 */
@@ -231521,6 +237585,10 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x7F6,
0x818,
0x81A,
+ 0x898,
+ 0x8A0,
+ 0x8C9,
+ 0x8D3,
0x8E3,
0x8FF,
0x93C,
@@ -231553,6 +237621,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0xB56,
0xBCD,
0xBCE,
+ 0xC3C,
+ 0xC3D,
0xC4D,
0xC4E,
0xCBC,
@@ -231605,6 +237675,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x109C,
0x135D,
0x1360,
+ 0x1714,
+ 0x1716,
0x17C9,
0x17D4,
0x17DD,
@@ -231616,7 +237688,9 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1ABE,
+ 0x1ABF,
+ 0x1AC1,
+ 0x1ACC,
0x1B34,
0x1B35,
0x1B44,
@@ -231642,8 +237716,6 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x1DC4,
0x1DD0,
0x1DF5,
- 0x1DFA,
- 0x1DFD,
0x1E00,
0x1FBD,
0x1FBE,
@@ -231725,12 +237797,26 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0xFFE4,
0x102E0,
0x102E1,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10AE5,
0x10AE7,
0x10D22,
0x10D28,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
+ 0x11046,
+ 0x11047,
+ 0x11070,
+ 0x11071,
0x110B9,
0x110BB,
0x11133,
@@ -231789,6 +237875,8 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x11D46,
0x11D97,
0x11D98,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -231797,6 +237885,16 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x16FA0,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D16D,
@@ -231807,8 +237905,12 @@ static const UV UNI_DIA_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
+ 0x1E030,
+ 0x1E06E,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
0x1E8D0,
@@ -234890,7 +240992,7 @@ static const UV UNI_DT__NB_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */
- 375, /* Number of elements */
+ 385, /* 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 */
@@ -235089,6 +241191,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -235141,6 +241245,12 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D400,
0x1D455,
0x1D456,
@@ -235183,6 +241293,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -235279,7 +241391,7 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */
- 381, /* Number of elements */
+ 391, /* 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 */
@@ -235484,6 +241596,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -235536,6 +241650,12 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D400,
0x1D455,
0x1D456,
@@ -235578,6 +241698,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -235674,7 +241796,7 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */
- 379, /* Number of elements */
+ 389, /* 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 */
@@ -235877,6 +241999,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -235929,6 +242053,12 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D400,
0x1D455,
0x1D456,
@@ -235971,6 +242101,8 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -236064,7 +242196,7 @@ static const UV UNI_DT__NONCANON_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */
- 785, /* Number of elements */
+ 795, /* 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 */
@@ -236619,6 +242751,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -236701,6 +242835,12 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1109A,
0x1109B,
0x1109C,
@@ -236765,6 +242905,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -236863,7 +243005,7 @@ static const UV UNI_DT__NONE_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */
- 783, /* Number of elements */
+ 793, /* 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 */
@@ -237416,6 +243558,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -237498,6 +243642,12 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1109A,
0x1109B,
0x1109C,
@@ -237562,6 +243712,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -237660,7 +243812,7 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */
- 785, /* Number of elements */
+ 795, /* 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 */
@@ -238215,6 +244367,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -238297,6 +244451,12 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1109A,
0x1109B,
0x1109C,
@@ -238361,6 +244521,8 @@ static const UV UNI_DT__NONE_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -238494,7 +244656,7 @@ static const UV UNI_DT__SQR_invlist[] = { /* for all charsets */
};
static const UV UNI_DT__SUB_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 11, /* 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 */
@@ -238506,13 +244668,15 @@ static const UV UNI_DT__SUB_invlist[] = { /* for all charsets */
0x2090,
0x209D,
0x2C7C,
- 0x2C7D
+ 0x2C7D,
+ 0x1E051,
+ 0x1E06B
};
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_DT__SUP_invlist[] = { /* for ASCII/Latin1 */
- 51, /* Number of elements */
+ 63, /* 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 */
@@ -238559,12 +244723,24 @@ static const UV UNI_DT__SUP_invlist[] = { /* for ASCII/Latin1 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
0xAB60,
0xAB69,
0xAB6A,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1E030,
+ 0x1E051,
+ 0x1E06B,
+ 0x1E06E,
0x1F16A,
0x1F16D
};
@@ -238577,7 +244753,7 @@ static const UV UNI_DT__SUP_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 1047 */
- 53, /* Number of elements */
+ 65, /* 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 */
@@ -238626,12 +244802,24 @@ static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
0xAB60,
0xAB69,
0xAB6A,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1E030,
+ 0x1E051,
+ 0x1E06B,
+ 0x1E06E,
0x1F16A,
0x1F16D
};
@@ -238644,7 +244832,7 @@ static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 037 */
- 53, /* Number of elements */
+ 65, /* 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 */
@@ -238693,12 +244881,24 @@ static const UV UNI_DT__SUP_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
0xAB60,
0xAB69,
0xAB6A,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1E030,
+ 0x1E051,
+ 0x1E06B,
+ 0x1E06E,
0x1F16A,
0x1F16D
};
@@ -239902,7 +246102,7 @@ static const UV UNI_EA__H_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */
- 553, /* Number of elements */
+ 563, /* 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 */
@@ -240345,10 +246545,20 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -240419,36 +246629,36 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */
0x1F6D3,
0x1F6D5,
0x1F6D8,
+ 0x1F6DC,
+ 0x1F6E0,
0x1F6EB,
0x1F6ED,
0x1F6F4,
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x20000,
0x2FFFE,
0x30000,
@@ -240469,7 +246679,7 @@ static const UV UNI_EA__N_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */
- 551, /* Number of elements */
+ 561, /* 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 */
@@ -240910,10 +247120,20 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -240984,36 +247204,36 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */
0x1F6D3,
0x1F6D5,
0x1F6D8,
+ 0x1F6DC,
+ 0x1F6E0,
0x1F6EB,
0x1F6ED,
0x1F6F4,
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x20000,
0x2FFFE,
0x30000,
@@ -241034,7 +247254,7 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */
- 551, /* Number of elements */
+ 561, /* 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 */
@@ -241475,10 +247695,20 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -241549,36 +247779,36 @@ static const UV UNI_EA__N_invlist[] = { /* for EBCDIC 037 */
0x1F6D3,
0x1F6D5,
0x1F6D8,
+ 0x1F6DC,
+ 0x1F6E0,
0x1F6EB,
0x1F6ED,
0x1F6F4,
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x20000,
0x2FFFE,
0x30000,
@@ -241720,7 +247950,7 @@ static const UV UNI_EA__NA_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_EA__W_invlist[] = { /* for all charsets */
- 229, /* Number of elements */
+ 239, /* 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 */
@@ -241849,10 +248079,20 @@ static const UV UNI_EA__W_invlist[] = { /* for all charsets */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -241919,36 +248159,36 @@ static const UV UNI_EA__W_invlist[] = { /* for all charsets */
0x1F6D3,
0x1F6D5,
0x1F6D8,
+ 0x1F6DC,
+ 0x1F6E0,
0x1F6EB,
0x1F6ED,
0x1F6F4,
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x20000,
0x2FFFE,
0x30000,
@@ -241966,7 +248206,7 @@ static const UV UNI_EARLYDYNASTICCUNEIFORM_invlist[] = { /* for all charsets */
};
static const UV UNI_EBASE_invlist[] = { /* for all charsets */
- 77, /* Number of elements */
+ 81, /* 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 */
@@ -242046,7 +248286,11 @@ static const UV UNI_EBASE_invlist[] = { /* for all charsets */
0x1F9CD,
0x1F9D0,
0x1F9D1,
- 0x1F9DE
+ 0x1F9DE,
+ 0x1FAC3,
+ 0x1FAC6,
+ 0x1FAF0,
+ 0x1FAF9
};
# if 'A' == 65 /* ASCII/Latin1 */
@@ -242152,15 +248396,13 @@ static const UV UNI_ECOMP_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_EGYP_invlist[] = { /* for all charsets */
- 5, /* Number of elements */
+ 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,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439
+ 0x13456
};
static const UV UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS_invlist[] = { /* for all charsets */
@@ -242170,7 +248412,7 @@ static const UV UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS_invlist[] = { /* for all c
1 if it starts at the element beyond 0 */
0x0,
0x13430,
- 0x13440
+ 0x13460
};
static const UV UNI_ELBA_invlist[] = { /* for all charsets */
@@ -242206,7 +248448,7 @@ static const UV UNI_EMOD_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_EMOJI_invlist[] = { /* for ASCII/Latin1 */
- 305, /* Number of elements */
+ 303, /* 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 */
@@ -242479,7 +248721,7 @@ static const UV UNI_EMOJI_invlist[] = { /* for ASCII/Latin1 */
0x1F6D3,
0x1F6D5,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6E6,
0x1F6E9,
0x1F6EA,
@@ -242491,30 +248733,28 @@ static const UV UNI_EMOJI_invlist[] = { /* for ASCII/Latin1 */
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9
};
# endif /* ASCII/Latin1 */
@@ -242525,7 +248765,7 @@ static const UV UNI_EMOJI_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 1047 */
- 305, /* Number of elements */
+ 303, /* 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 */
@@ -242798,7 +249038,7 @@ static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 1047 */
0x1F6D3,
0x1F6D5,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6E6,
0x1F6E9,
0x1F6EA,
@@ -242810,30 +249050,28 @@ static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 1047 */
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9
};
# endif /* EBCDIC 1047 */
@@ -242844,7 +249082,7 @@ static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 037 */
- 305, /* Number of elements */
+ 303, /* 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 */
@@ -243117,7 +249355,7 @@ static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 037 */
0x1F6D3,
0x1F6D5,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6E6,
0x1F6E9,
0x1F6EA,
@@ -243129,30 +249367,28 @@ static const UV UNI_EMOJI_invlist[] = { /* for EBCDIC 037 */
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9
};
# endif /* EBCDIC 037 */
@@ -243345,40 +249581,40 @@ static const UV UNI_EPRES_invlist[] = { /* for all charsets */
0x1F6D3,
0x1F6D5,
0x1F6D8,
+ 0x1F6DC,
+ 0x1F6E0,
0x1F6EB,
0x1F6ED,
0x1F6F4,
0x1F6FD,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F90C,
0x1F93B,
0x1F93C,
0x1F946,
0x1F947,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA00,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9
};
static const UV UNI_ETHI_invlist[] = { /* for all charsets */
- 65, /* Number of elements */
+ 73, /* 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 */
@@ -243446,7 +249682,15 @@ static const UV UNI_ETHI_invlist[] = { /* for all charsets */
0xAB20,
0xAB27,
0xAB28,
- 0xAB2F
+ 0xAB2F,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF
};
static const UV UNI_ETHIOPICEXT_invlist[] = { /* for all charsets */
@@ -243469,6 +249713,16 @@ static const UV UNI_ETHIOPICEXTA_invlist[] = { /* for all charsets */
0xAB30
};
+static const UV UNI_ETHIOPICEXTB_invlist[] = { /* for all charsets */
+ 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,
+ 0x1E7E0,
+ 0x1E800
+};
+
static const UV UNI_ETHIOPICSUP_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -243482,7 +249736,7 @@ static const UV UNI_ETHIOPICSUP_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_EXT_invlist[] = { /* for ASCII/Latin1 */
- 65, /* Number of elements */
+ 67, /* 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 */
@@ -243535,6 +249789,8 @@ static const UV UNI_EXT_invlist[] = { /* for ASCII/Latin1 */
0xAAF5,
0xFF70,
0xFF71,
+ 0x10781,
+ 0x10783,
0x1135D,
0x1135E,
0x115C6,
@@ -243561,7 +249817,7 @@ static const UV UNI_EXT_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_EXT_invlist[] = { /* for EBCDIC 1047 */
- 65, /* Number of elements */
+ 67, /* 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 */
@@ -243614,6 +249870,8 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 1047 */
0xAAF5,
0xFF70,
0xFF71,
+ 0x10781,
+ 0x10783,
0x1135D,
0x1135E,
0x115C6,
@@ -243640,7 +249898,7 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_EXT_invlist[] = { /* for EBCDIC 037 */
- 65, /* Number of elements */
+ 67, /* 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 */
@@ -243693,6 +249951,8 @@ static const UV UNI_EXT_invlist[] = { /* for EBCDIC 037 */
0xAAF5,
0xFF70,
0xFF71,
+ 0x10781,
+ 0x10783,
0x1135D,
0x1135E,
0x115C6,
@@ -244257,7 +250517,7 @@ static const UV UNI_GCB__CN_invlist[] = { /* for ASCII/Latin1 */
0xFFF0,
0xFFFC,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -244309,7 +250569,7 @@ static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 1047 */
0xFFF0,
0xFFFC,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -244361,7 +250621,7 @@ static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 037 */
0xFFF0,
0xFFFC,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -244377,7 +250637,7 @@ static const UV UNI_GCB__CN_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
- 691, /* Number of elements */
+ 729, /* 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 */
@@ -244430,7 +250690,9 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -244520,6 +250782,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -244583,7 +250847,7 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -244631,7 +250895,7 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -244648,6 +250912,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -244679,7 +250945,7 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -244723,8 +250989,6 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200C,
0x200D,
@@ -244840,18 +251104,28 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -244876,6 +251150,8 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -245010,6 +251286,18 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -245022,6 +251310,10 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x16FE5,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D166,
0x1D167,
@@ -245058,10 +251350,16 @@ static const UV UNI_GCB__EX_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -245087,7 +251385,7 @@ static const UV UNI_GCB__L_invlist[] = { /* for all charsets */
};
static const UV UNI_GCB__PP_invlist[] = { /* for all charsets */
- 27, /* Number of elements */
+ 31, /* 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 */
@@ -245098,6 +251396,8 @@ static const UV UNI_GCB__PP_invlist[] = { /* for all charsets */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0xD4E,
@@ -245117,11 +251417,13 @@ static const UV UNI_GCB__PP_invlist[] = { /* for all charsets */
0x11A84,
0x11A8A,
0x11D46,
- 0x11D47
+ 0x11D47,
+ 0x11F02,
+ 0x11F03
};
static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */
- 319, /* Number of elements */
+ 331, /* 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 */
@@ -245188,6 +251490,8 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */
0xCC9,
0xCCA,
0xCCC,
+ 0xCF3,
+ 0xCF4,
0xD02,
0xD04,
0xD3F,
@@ -245220,6 +251524,10 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */
0x1058,
0x1084,
0x1085,
+ 0x1715,
+ 0x1716,
+ 0x1734,
+ 0x1735,
0x17B6,
0x17B7,
0x17BE,
@@ -245388,8 +251696,6 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */
0x116B0,
0x116B6,
0x116B7,
- 0x11720,
- 0x11722,
0x11726,
0x11727,
0x1182C,
@@ -245436,6 +251742,14 @@ static const UV UNI_GCB__SM_invlist[] = { /* for all charsets */
0x11D97,
0x11EF5,
0x11EF7,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F36,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
0x16F51,
0x16F88,
0x16FF0,
@@ -245473,7 +251787,7 @@ static const UV UNI_GCB__V_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
- 620, /* Number of elements */
+ 658, /* 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 */
@@ -245537,7 +251851,11 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -245619,6 +251937,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -245643,6 +251963,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -245680,7 +252002,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0xEB3,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -245724,7 +252046,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -245736,7 +252058,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x17DD,
0x17DE,
0x180B,
- 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -245758,7 +252080,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -245784,8 +252106,6 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x2010,
@@ -245909,18 +252229,28 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -245945,6 +252275,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -245982,6 +252314,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x116AB,
0x116B8,
0x1171D,
+ 0x11720,
+ 0x11722,
0x1172C,
0x1182C,
0x1183B,
@@ -246031,8 +252365,16 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -246051,6 +252393,10 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -246083,10 +252429,16 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -246107,7 +252459,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
- 620, /* Number of elements */
+ 658, /* 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 */
@@ -246171,7 +252523,11 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -246253,6 +252609,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -246277,6 +252635,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -246314,7 +252674,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0xEB3,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -246358,7 +252718,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -246370,7 +252730,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x17DD,
0x17DE,
0x180B,
- 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -246392,7 +252752,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -246418,8 +252778,6 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x2010,
@@ -246543,18 +252901,28 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -246579,6 +252947,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -246616,6 +252986,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x116AB,
0x116B8,
0x1171D,
+ 0x11720,
+ 0x11722,
0x1172C,
0x1182C,
0x1183B,
@@ -246665,8 +253037,16 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -246685,6 +253065,10 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -246717,10 +253101,16 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -246741,7 +253131,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
- 620, /* Number of elements */
+ 658, /* 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 */
@@ -246805,7 +253195,11 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x890,
+ 0x892,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -246887,6 +253281,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -246911,6 +253307,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -246948,7 +253346,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0xEB3,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -246992,7 +253390,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -247004,7 +253402,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x17DD,
0x17DE,
0x180B,
- 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -247026,7 +253424,7 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -247052,8 +253450,6 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x2010,
@@ -247177,18 +253573,28 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x11100,
@@ -247213,6 +253619,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -247250,6 +253658,8 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x116AB,
0x116B8,
0x1171D,
+ 0x11720,
+ 0x11722,
0x1172C,
0x1182C,
0x1183B,
@@ -247299,8 +253709,16 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -247319,6 +253737,10 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -247351,10 +253773,16 @@ static const UV UNI_GCB__XX_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -247436,7 +253864,7 @@ static const UV UNI_GEORGIANSUP_invlist[] = { /* for all charsets */
};
static const UV UNI_GLAG_invlist[] = { /* for all charsets */
- 23, /* Number of elements */
+ 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 */
@@ -247446,9 +253874,7 @@ static const UV UNI_GLAG_invlist[] = { /* for all charsets */
0x487,
0x488,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2E43,
0x2E44,
0xA66F,
@@ -247592,7 +254018,7 @@ static const UV UNI_GRAN_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
- 1669, /* Number of elements */
+ 1751, /* 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 */
@@ -247639,7 +254065,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x610,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x64B,
0x660,
0x670,
@@ -247681,10 +254107,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x860,
0x86B,
+ 0x870,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x903,
0x93A,
0x93B,
@@ -247861,6 +254287,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0xC45,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -247887,14 +254315,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0xCC9,
0xCCA,
0xCCC,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD02,
0xD0D,
0xD0E,
@@ -248066,12 +254494,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x1715,
+ 0x1716,
+ 0x171F,
0x1732,
- 0x1735,
+ 0x1734,
0x1737,
0x1740,
0x1752,
@@ -248156,11 +254584,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1B3D,
0x1B42,
0x1B43,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B6B,
0x1B74,
- 0x1B7D,
+ 0x1B7F,
0x1B82,
0x1BA2,
0x1BA6,
@@ -248248,7 +254676,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x218C,
0x2190,
@@ -248260,10 +254688,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CEF,
0x2CF2,
0x2CF4,
@@ -248296,7 +254720,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x2DD8,
0x2DDF,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -248322,8 +254746,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -248340,10 +254762,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0xA6F2,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -248464,15 +254890,15 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
+ 0xFE00,
0xFE10,
0xFE1A,
0xFE30,
@@ -248560,13 +254986,33 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -248651,6 +255097,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x10F46,
0x10F51,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -248663,6 +255113,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1104E,
0x11052,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11082,
0x110B3,
0x110B7,
@@ -248705,6 +255159,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x11236,
0x11238,
0x1123E,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -248808,7 +255264,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x116B6,
0x116B7,
0x116B8,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -248818,7 +255274,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x11726,
0x11727,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1182F,
0x11838,
@@ -248875,8 +255331,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x11A98,
0x11A9A,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -248923,6 +255381,16 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x11EF3,
0x11EF5,
0x11EF9,
+ 0x11F02,
+ 0x11F11,
+ 0x11F12,
+ 0x11F36,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -248935,8 +255403,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
@@ -248946,7 +255418,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF5,
@@ -248981,10 +255455,20 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -249001,6 +255485,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1BC9D,
0x1BC9F,
0x1BCA0,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -249016,11 +255502,13 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -249077,6 +255565,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1DA84,
0x1DA85,
0x1DA8C,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
@@ -249085,12 +255579,26 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -249201,16 +255709,18 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -249224,27 +255734,23 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -249252,9 +255758,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -249264,7 +255770,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -249275,7 +255783,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
- 1669, /* Number of elements */
+ 1751, /* 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 */
@@ -249322,7 +255830,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x610,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x64B,
0x660,
0x670,
@@ -249364,10 +255872,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x860,
0x86B,
+ 0x870,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x903,
0x93A,
0x93B,
@@ -249544,6 +256052,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0xC45,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -249570,14 +256080,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0xCC9,
0xCCA,
0xCCC,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD02,
0xD0D,
0xD0E,
@@ -249749,12 +256259,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x1715,
+ 0x1716,
+ 0x171F,
0x1732,
- 0x1735,
+ 0x1734,
0x1737,
0x1740,
0x1752,
@@ -249839,11 +256349,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1B3D,
0x1B42,
0x1B43,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B6B,
0x1B74,
- 0x1B7D,
+ 0x1B7F,
0x1B82,
0x1BA2,
0x1BA6,
@@ -249931,7 +256441,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x218C,
0x2190,
@@ -249943,10 +256453,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CEF,
0x2CF2,
0x2CF4,
@@ -249979,7 +256485,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x2DD8,
0x2DDF,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -250005,8 +256511,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -250023,10 +256527,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0xA6F2,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -250147,15 +256655,15 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
+ 0xFE00,
0xFE10,
0xFE1A,
0xFE30,
@@ -250243,13 +256751,33 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -250334,6 +256862,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x10F46,
0x10F51,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -250346,6 +256878,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1104E,
0x11052,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11082,
0x110B3,
0x110B7,
@@ -250388,6 +256924,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x11236,
0x11238,
0x1123E,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -250491,7 +257029,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x116B6,
0x116B7,
0x116B8,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -250501,7 +257039,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x11726,
0x11727,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1182F,
0x11838,
@@ -250558,8 +257096,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x11A98,
0x11A9A,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -250606,6 +257146,16 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x11EF3,
0x11EF5,
0x11EF9,
+ 0x11F02,
+ 0x11F11,
+ 0x11F12,
+ 0x11F36,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -250618,8 +257168,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
@@ -250629,7 +257183,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF5,
@@ -250664,10 +257220,20 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -250684,6 +257250,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1BC9D,
0x1BC9F,
0x1BCA0,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -250699,11 +257267,13 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -250760,6 +257330,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1DA84,
0x1DA85,
0x1DA8C,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
@@ -250768,12 +257344,26 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -250884,16 +257474,18 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -250907,27 +257499,23 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -250935,9 +257523,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -250947,7 +257535,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -250958,7 +257548,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
- 1669, /* Number of elements */
+ 1751, /* 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 */
@@ -251005,7 +257595,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x610,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x64B,
0x660,
0x670,
@@ -251047,10 +257637,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x860,
0x86B,
+ 0x870,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x903,
0x93A,
0x93B,
@@ -251227,6 +257817,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0xC45,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -251253,14 +257845,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0xCC9,
0xCCA,
0xCCC,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD02,
0xD0D,
0xD0E,
@@ -251432,12 +258024,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x1715,
+ 0x1716,
+ 0x171F,
0x1732,
- 0x1735,
+ 0x1734,
0x1737,
0x1740,
0x1752,
@@ -251522,11 +258114,11 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1B3D,
0x1B42,
0x1B43,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B6B,
0x1B74,
- 0x1B7D,
+ 0x1B7F,
0x1B82,
0x1BA2,
0x1BA6,
@@ -251614,7 +258206,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x218C,
0x2190,
@@ -251626,10 +258218,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CEF,
0x2CF2,
0x2CF4,
@@ -251662,7 +258250,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x2DD8,
0x2DDF,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -251688,8 +258276,6 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -251706,10 +258292,14 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0xA6F2,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -251830,15 +258420,15 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
+ 0xFE00,
0xFE10,
0xFE1A,
0xFE30,
@@ -251926,13 +258516,33 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -252017,6 +258627,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x10F46,
0x10F51,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -252029,6 +258643,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1104E,
0x11052,
0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11082,
0x110B3,
0x110B7,
@@ -252071,6 +258689,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x11236,
0x11238,
0x1123E,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -252174,7 +258794,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x116B6,
0x116B7,
0x116B8,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -252184,7 +258804,7 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x11726,
0x11727,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1182F,
0x11838,
@@ -252241,8 +258861,10 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x11A98,
0x11A9A,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -252289,6 +258911,16 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x11EF3,
0x11EF5,
0x11EF9,
+ 0x11F02,
+ 0x11F11,
+ 0x11F12,
+ 0x11F36,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -252301,8 +258933,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
@@ -252312,7 +258948,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF5,
@@ -252347,10 +258985,20 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -252367,6 +259015,8 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1BC9D,
0x1BC9F,
0x1BCA0,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -252382,11 +259032,13 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -252443,6 +259095,12 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1DA84,
0x1DA85,
0x1DA8C,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
@@ -252451,12 +259109,26 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
0x1E2F0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E4F0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -252567,16 +259239,18 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -252590,27 +259264,23 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -252618,9 +259288,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -252630,7 +259300,9 @@ static const UV UNI_GRBASE_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -252730,7 +259402,7 @@ static const UV UNI_GREK_invlist[] = { /* for all charsets */
};
static const UV UNI_GREXT_invlist[] = { /* for all charsets */
- 689, /* Number of elements */
+ 727, /* 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 */
@@ -252783,7 +259455,9 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -252873,6 +259547,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -252936,7 +259612,7 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -252984,7 +259660,7 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -253001,6 +259677,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -253032,7 +259710,7 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -253076,8 +259754,6 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200C,
0x200D,
@@ -253193,18 +259869,28 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -253229,6 +259915,8 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -253363,6 +260051,18 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -253375,6 +260075,10 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x16FE5,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D166,
0x1D167,
@@ -253411,10 +260115,16 @@ static const UV UNI_GREXT_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -253534,7 +260244,7 @@ static const UV UNI_HALFMARKS_invlist[] = { /* for all charsets */
};
static const UV UNI_HAN_invlist[] = { /* for all charsets */
- 73, /* Number of elements */
+ 77, /* 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 */
@@ -253580,7 +260290,7 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA700,
0xA708,
0xF900,
@@ -253591,6 +260301,8 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */
0xFE47,
0xFF61,
0xFF66,
+ 0x16FE2,
+ 0x16FE4,
0x16FF0,
0x16FF2,
0x1D360,
@@ -253598,9 +260310,9 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */
0x1F250,
0x1F252,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -253610,7 +260322,9 @@ static const UV UNI_HAN_invlist[] = { /* for all charsets */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
static const UV UNI_HANG_invlist[] = { /* for all charsets */
@@ -253734,7 +260448,7 @@ static const UV UNI_HIGHSURROGATES_invlist[] = { /* for all charsets */
};
static const UV UNI_HIRA_invlist[] = { /* for all charsets */
- 33, /* Number of elements */
+ 35, /* 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 */
@@ -253766,7 +260480,9 @@ static const UV UNI_HIRA_invlist[] = { /* for all charsets */
0xFF9E,
0xFFA0,
0x1B001,
- 0x1B11F,
+ 0x1B120,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
0x1F200,
@@ -253954,7 +260670,7 @@ static const UV UNI_HYPHEN_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
- 1461, /* Number of elements */
+ 1537, /* 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 */
@@ -254061,11 +260777,11 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -254233,7 +260949,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -254243,6 +260959,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -254267,14 +260985,14 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -254340,7 +261058,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -254434,10 +261152,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -254457,7 +261173,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -254496,9 +261212,9 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -254522,8 +261238,6 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -254604,10 +261318,6 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -254668,8 +261378,6 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -254688,10 +261396,14 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -254869,12 +261581,34 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -254949,12 +261683,14 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -254962,9 +261698,11 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -254992,7 +261730,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -255071,6 +261809,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -255107,7 +261847,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -255151,6 +261891,14 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -255159,8 +261907,12 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -255169,6 +261921,10 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -255203,10 +261959,20 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -255221,6 +261987,10 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -255307,6 +262077,10 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -255317,6 +262091,10 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -255325,8 +262103,20 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -255404,9 +262194,9 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -255417,6 +262207,8 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -255429,7 +262221,7 @@ static const UV UNI_IDC_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
- 1485, /* Number of elements */
+ 1561, /* 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 */
@@ -255560,11 +262352,11 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -255732,7 +262524,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -255742,6 +262534,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -255766,14 +262560,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -255839,7 +262633,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -255933,10 +262727,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -255956,7 +262748,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -255995,9 +262787,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -256021,8 +262813,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -256103,10 +262893,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -256167,8 +262953,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -256187,10 +262971,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -256368,12 +263156,34 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -256448,12 +263258,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -256461,9 +263273,11 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -256491,7 +263305,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -256570,6 +263384,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -256606,7 +263422,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -256650,6 +263466,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -256658,8 +263482,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -256668,6 +263496,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -256702,10 +263534,20 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -256720,6 +263562,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -256806,6 +263652,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -256816,6 +263666,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -256824,8 +263678,20 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -256903,9 +263769,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -256916,6 +263782,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -256928,7 +263796,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
- 1481, /* Number of elements */
+ 1557, /* 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 */
@@ -257055,11 +263923,11 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -257227,7 +264095,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -257237,6 +264105,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -257261,14 +264131,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -257334,7 +264204,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -257428,10 +264298,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -257451,7 +264319,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -257490,9 +264358,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -257516,8 +264384,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -257598,10 +264464,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -257662,8 +264524,6 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -257682,10 +264542,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -257863,12 +264727,34 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -257943,12 +264829,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -257956,9 +264844,11 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -257986,7 +264876,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -258065,6 +264955,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -258101,7 +264993,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -258145,6 +265037,14 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -258153,8 +265053,12 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -258163,6 +265067,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -258197,10 +265105,20 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -258215,6 +265133,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -258301,6 +265223,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -258311,6 +265237,10 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -258319,8 +265249,20 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -258398,9 +265340,9 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -258411,6 +265353,8 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -258420,7 +265364,7 @@ static const UV UNI_IDC_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1 */
- 749, /* Number of elements */
+ 785, /* 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 */
@@ -258561,12 +265505,16 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -258735,7 +265683,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -258743,6 +265691,8 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -258769,12 +265719,14 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -258852,7 +265804,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -258966,7 +265918,9 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -259047,8 +266001,6 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0x1FFB,
0x1FFC,
0x1FFD,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -259096,7 +266048,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -259113,8 +266065,14 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -259157,14 +266115,34 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -259172,7 +266150,9 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -259183,7 +266163,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for ASCII/Latin1
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047 */
- 783, /* Number of elements */
+ 819, /* 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 */
@@ -259358,12 +266338,16 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -259532,7 +266516,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -259540,6 +266524,8 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -259566,12 +266552,14 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -259649,7 +266637,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -259763,7 +266751,9 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -259844,8 +266834,6 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0x1FFB,
0x1FFC,
0x1FFD,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -259893,7 +266881,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -259910,8 +266898,14 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -259954,14 +266948,34 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -259969,7 +266983,9 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -259980,7 +266996,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 1047
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 */
- 779, /* Number of elements */
+ 815, /* 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 */
@@ -260151,12 +267167,16 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -260325,7 +267345,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -260333,6 +267353,8 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -260359,12 +267381,14 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -260442,7 +267466,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -260556,7 +267580,9 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -260637,8 +267663,6 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0x1FFB,
0x1FFC,
0x1FFD,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -260686,7 +267710,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -260703,8 +267727,14 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -260747,14 +267777,34 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -260762,7 +267812,9 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -260770,7 +267822,7 @@ static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = { /* for EBCDIC 037 *
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Latin1 */
- 749, /* Number of elements */
+ 785, /* 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 */
@@ -260911,12 +267963,16 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -261085,7 +268141,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -261093,6 +268149,8 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -261119,12 +268177,14 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -261202,7 +268262,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -261316,7 +268376,9 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -261397,8 +268459,6 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0x1FFB,
0x1FFC,
0x1FFD,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -261446,7 +268506,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -261463,8 +268523,14 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -261507,14 +268573,34 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -261522,7 +268608,9 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -261533,7 +268621,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for ASCII/Lat
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 1047 */
- 783, /* Number of elements */
+ 819, /* 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 */
@@ -261708,12 +268796,16 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -261882,7 +268974,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -261890,6 +268982,8 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -261916,12 +269010,14 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -261999,7 +269095,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -262113,7 +269209,9 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -262194,8 +269292,6 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0x1FFB,
0x1FFC,
0x1FFD,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -262243,7 +269339,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -262260,8 +269356,14 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -262304,14 +269406,34 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -262319,7 +269441,9 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -262330,7 +269454,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 10
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 037 */
- 779, /* Number of elements */
+ 815, /* 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 */
@@ -262501,12 +269625,16 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -262675,7 +269803,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -262683,6 +269811,8 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -262709,12 +269839,14 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -262792,7 +269924,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -262906,7 +270038,9 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -262987,8 +270121,6 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0x1FFB,
0x1FFC,
0x1FFD,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -263036,7 +270168,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -263053,8 +270185,14 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -263097,14 +270235,34 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -263112,7 +270270,9 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -263120,7 +270280,7 @@ static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = { /* for EBCDIC 03
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for ASCII/Latin1 */
- 39, /* Number of elements */
+ 37, /* 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 */
@@ -263136,10 +270296,8 @@ static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for ASCII
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x200B,
- 0x200C,
- 0x200E,
0x2010,
0x202A,
0x202F,
@@ -263173,7 +270331,7 @@ static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for ASCII
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDIC 1047 */
- 39, /* Number of elements */
+ 37, /* 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 */
@@ -263189,10 +270347,8 @@ static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDI
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x200B,
- 0x200C,
- 0x200E,
0x2010,
0x202A,
0x202F,
@@ -263226,7 +270382,7 @@ static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDI
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDIC 037 */
- 39, /* Number of elements */
+ 37, /* 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 */
@@ -263242,10 +270398,8 @@ static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDI
0x17B4,
0x17B6,
0x180B,
- 0x180F,
+ 0x1810,
0x200B,
- 0x200C,
- 0x200E,
0x2010,
0x202A,
0x202F,
@@ -263274,7 +270428,7 @@ static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = { /* for EBCDI
# endif /* EBCDIC 037 */
static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets */
- 425, /* Number of elements */
+ 449, /* 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 */
@@ -263292,10 +270446,8 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -263320,9 +270472,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x1CFA,
0x1CFB,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C80,
0x2CF4,
0x2CF9,
@@ -263380,7 +270530,21 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
@@ -263469,6 +270633,8 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -263476,9 +270642,9 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -263492,7 +270658,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -263554,7 +270720,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -263562,7 +270728,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -263625,6 +270791,12 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x11D5A,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x12000,
0x1239A,
0x12400,
@@ -263633,10 +270805,10 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16A40,
@@ -263644,7 +270816,9 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -263699,6 +270873,10 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E290,
+ 0x1E2AF,
+ 0x1E4D0,
+ 0x1E4FA,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -263708,7 +270886,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = { /* for all charsets
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for ASCII/Latin1 */
- 31, /* Number of elements */
+ 29, /* 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 */
@@ -263731,8 +270909,6 @@ static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for ASCII/Latin1
0x6FF,
0xF0B,
0xF0C,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -263753,7 +270929,7 @@ static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for ASCII/Latin1
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 1047 */
- 33, /* Number of elements */
+ 31, /* 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 */
@@ -263778,8 +270954,6 @@ static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 1047
0x6FF,
0xF0B,
0xF0C,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -263800,7 +270974,7 @@ static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 1047
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 037 */
- 33, /* Number of elements */
+ 31, /* 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 */
@@ -263825,8 +270999,6 @@ static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 037 *
0x6FF,
0xF0B,
0xF0C,
- 0x200C,
- 0x200E,
0x2010,
0x2011,
0x2019,
@@ -263842,7 +271014,7 @@ static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = { /* for EBCDIC 037 *
# endif /* EBCDIC 037 */
static const UV UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist[] = { /* for all charsets */
- 171, /* Number of elements */
+ 175, /* 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 */
@@ -263902,9 +271074,9 @@ static const UV UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist[] = { /* for all charset
0x1AA0,
0x1AAE,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -263915,6 +271087,8 @@ static const UV UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist[] = { /* for all charset
0x1C80,
0x1CC0,
0x1CC8,
+ 0x1DFA,
+ 0x1DFB,
0x2D30,
0x2D68,
0x2D70,
@@ -263977,6 +271151,8 @@ static const UV UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist[] = { /* for all charset
0x1145C,
0x1145D,
0x11462,
+ 0x11AB0,
+ 0x11AC0,
0x11D60,
0x11D66,
0x11D67,
@@ -264022,7 +271198,7 @@ static const UV UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist[] = { /* for all charset
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Latin1 */
- 1357, /* Number of elements */
+ 1417, /* 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 */
@@ -264058,8 +271234,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -264077,11 +271251,11 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -264237,7 +271411,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -264247,6 +271421,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -264269,14 +271445,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -264336,7 +271512,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -264404,10 +271580,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -264424,8 +271598,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -264464,11 +271636,11 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -264484,8 +271656,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -264526,7 +271696,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -264540,10 +271710,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -264574,7 +271740,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -264598,8 +271764,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -264608,10 +271772,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -264682,16 +271850,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -264778,13 +271944,33 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -264867,10 +272053,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -264878,9 +272066,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -264900,7 +272088,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -264964,7 +272152,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -264972,7 +272160,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -265003,8 +272191,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -265047,6 +272237,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -265059,10 +272255,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -265072,7 +272268,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -265105,10 +272303,20 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -265123,14 +272331,22 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -265183,6 +272399,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -265193,6 +272413,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -265201,10 +272425,22 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -265313,16 +272549,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -265336,27 +272574,23 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -265364,9 +272598,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -265377,6 +272611,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -265393,7 +272629,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for ASCII/Lat
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 1047 */
- 1361, /* Number of elements */
+ 1421, /* 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 */
@@ -265433,8 +272669,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -265452,11 +272686,11 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -265612,7 +272846,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -265622,6 +272856,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -265644,14 +272880,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -265711,7 +272947,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -265779,10 +273015,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -265799,8 +273033,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -265839,11 +273071,11 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -265859,8 +273091,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -265901,7 +273131,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -265915,10 +273145,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -265949,7 +273175,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -265973,8 +273199,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -265983,10 +273207,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -266057,16 +273285,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -266153,13 +273379,33 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -266242,10 +273488,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -266253,9 +273501,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -266275,7 +273523,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -266339,7 +273587,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -266347,7 +273595,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -266378,8 +273626,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -266422,6 +273672,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -266434,10 +273690,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -266447,7 +273703,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -266480,10 +273738,20 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -266498,14 +273766,22 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -266558,6 +273834,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -266568,6 +273848,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -266576,10 +273860,22 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -266688,16 +273984,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -266711,27 +274009,23 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -266739,9 +274033,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -266752,6 +274046,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -266768,7 +274064,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 10
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 037 */
- 1361, /* Number of elements */
+ 1421, /* 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 */
@@ -266808,8 +274104,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -266827,11 +274121,11 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -266987,7 +274281,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -266997,6 +274291,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -267019,14 +274315,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -267086,7 +274382,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -267154,10 +274450,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -267174,8 +274468,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -267214,11 +274506,11 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -267234,8 +274526,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -267276,7 +274566,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -267290,10 +274580,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -267324,7 +274610,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -267348,8 +274634,6 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -267358,10 +274642,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -267432,16 +274720,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -267528,13 +274814,33 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -267617,10 +274923,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -267628,9 +274936,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -267650,7 +274958,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -267714,7 +275022,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -267722,7 +275030,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -267753,8 +275061,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -267797,6 +275107,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -267809,10 +275125,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -267822,7 +275138,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -267855,10 +275173,20 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -267873,14 +275201,22 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -267933,6 +275269,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -267943,6 +275283,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -267951,10 +275295,22 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -268063,16 +275419,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -268086,27 +275444,23 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -268114,9 +275468,9 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -268127,6 +275481,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -268140,7 +275496,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = { /* for EBCDIC 03
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for ASCII/Latin1 */
- 503, /* Number of elements */
+ 513, /* 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 */
@@ -268431,6 +275787,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for ASCII/Latin1 *
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -268513,6 +275871,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for ASCII/Latin1 *
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D15E,
0x1D165,
0x1D1BB,
@@ -268559,6 +275923,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for ASCII/Latin1 *
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -268657,7 +276023,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for ASCII/Latin1 *
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 1047 */
- 509, /* Number of elements */
+ 519, /* 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 */
@@ -268954,6 +276320,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -269036,6 +276404,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 1047 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D15E,
0x1D165,
0x1D1BB,
@@ -269082,6 +276456,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -269180,7 +276556,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 037 */
- 507, /* Number of elements */
+ 517, /* 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 */
@@ -269475,6 +276851,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -269557,6 +276935,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 037 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D15E,
0x1D165,
0x1D1BB,
@@ -269603,6 +276987,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -269698,7 +277084,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
- 691, /* Number of elements */
+ 709, /* 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 */
@@ -269777,7 +277163,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x610,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -269799,6 +277185,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x83F,
0x85E,
0x85F,
+ 0x888,
+ 0x889,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x964,
@@ -269908,7 +277298,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x1B5A,
0x1B6B,
0x1B74,
- 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -269946,7 +277336,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x20A0,
0x20A8,
0x20A9,
- 0x20C0,
+ 0x20C1,
0x20DD,
0x20E1,
0x20E2,
@@ -270008,7 +277398,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x2D70,
0x2D71,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -270090,11 +277480,13 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0xABEB,
0xABEC,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE45,
0xFE47,
0xFFF9,
@@ -270175,6 +277567,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x10F27,
0x10F51,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x10FC5,
0x10FCC,
0x11047,
@@ -270217,6 +277611,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173A,
0x11740,
0x1183B,
@@ -270233,6 +277629,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C5A,
@@ -270241,14 +277639,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FC0,
0x11FF2,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x13430,
- 0x13439,
+ 0x13440,
0x16A6E,
0x16A70,
0x16AF5,
@@ -270267,6 +277669,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x1BC9D,
0x1BC9F,
0x1BCA0,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -270282,11 +277686,13 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x1D1AE,
0x1D1BB,
0x1D1C1,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -270345,16 +277751,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -270368,27 +277776,23 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -270403,7 +277807,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
- 705, /* Number of elements */
+ 723, /* 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 */
@@ -270496,7 +277900,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x610,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -270518,6 +277922,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x83F,
0x85E,
0x85F,
+ 0x888,
+ 0x889,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x964,
@@ -270627,7 +278035,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x1B5A,
0x1B6B,
0x1B74,
- 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -270665,7 +278073,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x20A0,
0x20A8,
0x20A9,
- 0x20C0,
+ 0x20C1,
0x20DD,
0x20E1,
0x20E2,
@@ -270727,7 +278135,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x2D70,
0x2D71,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -270809,11 +278217,13 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0xABEB,
0xABEC,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE45,
0xFE47,
0xFFF9,
@@ -270894,6 +278304,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x10F27,
0x10F51,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x10FC5,
0x10FCC,
0x11047,
@@ -270936,6 +278348,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173A,
0x11740,
0x1183B,
@@ -270952,6 +278366,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C5A,
@@ -270960,14 +278376,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FC0,
0x11FF2,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x13430,
- 0x13439,
+ 0x13440,
0x16A6E,
0x16A70,
0x16AF5,
@@ -270986,6 +278406,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x1BC9D,
0x1BC9F,
0x1BCA0,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -271001,11 +278423,13 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x1D1AE,
0x1D1BB,
0x1D1C1,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -271064,16 +278488,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -271087,27 +278513,23 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -271122,7 +278544,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
- 703, /* Number of elements */
+ 721, /* 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 */
@@ -271213,7 +278635,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x610,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -271235,6 +278657,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x83F,
0x85E,
0x85F,
+ 0x888,
+ 0x889,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x964,
@@ -271344,7 +278770,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x1B5A,
0x1B6B,
0x1B74,
- 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -271382,7 +278808,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x20A0,
0x20A8,
0x20A9,
- 0x20C0,
+ 0x20C1,
0x20DD,
0x20E1,
0x20E2,
@@ -271444,7 +278870,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x2D70,
0x2D71,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -271526,11 +278952,13 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0xABEB,
0xABEC,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE45,
0xFE47,
0xFFF9,
@@ -271611,6 +279039,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x10F27,
0x10F51,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x10FC5,
0x10FCC,
0x11047,
@@ -271653,6 +279083,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173A,
0x11740,
0x1183B,
@@ -271669,6 +279101,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C5A,
@@ -271677,14 +279111,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FC0,
0x11FF2,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x13430,
- 0x13439,
+ 0x13440,
0x16A6E,
0x16A70,
0x16AF5,
@@ -271703,6 +279141,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x1BC9D,
0x1BC9F,
0x1BCA0,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -271718,11 +279158,13 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x1D1AE,
0x1D1BB,
0x1D1C1,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -271781,16 +279223,18 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -271804,27 +279248,23 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -271834,7 +279274,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_IDENTIFIERTYPE__OBSOLETE_invlist[] = { /* for all charsets */
- 207, /* Number of elements */
+ 209, /* 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 */
@@ -271989,6 +279429,8 @@ static const UV UNI_IDENTIFIERTYPE__OBSOLETE_invlist[] = { /* for all charsets
0x3030,
0x312E,
0x312F,
+ 0x31F0,
+ 0x3200,
0xA610,
0xA613,
0xA62A,
@@ -272050,7 +279492,7 @@ static const UV UNI_IDENTIFIERTYPE__OBSOLETE_invlist[] = { /* for all charsets
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Latin1 */
- 733, /* Number of elements */
+ 771, /* 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 */
@@ -272183,12 +279625,16 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -272357,7 +279803,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -272365,6 +279811,8 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -272391,12 +279839,14 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -272474,7 +279924,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -272586,7 +280036,9 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -272710,7 +280162,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -272727,8 +280179,14 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -272771,14 +280229,34 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -272786,7 +280264,9 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -272797,7 +280277,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for ASCII/Lati
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 1047 */
- 763, /* Number of elements */
+ 801, /* 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 */
@@ -272960,12 +280440,16 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -273134,7 +280618,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -273142,6 +280626,8 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -273168,12 +280654,14 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -273251,7 +280739,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -273363,7 +280851,9 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -273487,7 +280977,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -273504,8 +280994,14 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -273548,14 +281044,34 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -273563,7 +281079,9 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -273574,7 +281092,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 104
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037 */
- 759, /* Number of elements */
+ 797, /* 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 */
@@ -273733,12 +281251,16 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0x700,
0x750,
0x7B2,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8B2,
0x8B3,
- 0x8B6,
- 0x8C8,
+ 0x8B5,
+ 0x8CA,
0x901,
0x94E,
0x94F,
@@ -273907,7 +281429,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0xC34,
0xC35,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -273915,6 +281437,8 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0xC4E,
0xC55,
0xC57,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC66,
@@ -273941,12 +281465,14 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0xCCE,
0xCD5,
0xCD7,
+ 0xCDD,
+ 0xCDE,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD01,
0xD02,
@@ -274024,7 +281550,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDE,
@@ -274136,7 +281662,9 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0x17A9,
0x17B4,
0x17B6,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17D3,
0x17D7,
@@ -274260,7 +281788,7 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xA67F,
0xA680,
0xA717,
@@ -274277,8 +281805,14 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0xA7AF,
0xA7B8,
0xA7BA,
- 0xA7C2,
+ 0xA7C0,
0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
0xA9E7,
0xA9FF,
0xAA60,
@@ -274321,14 +281855,34 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0x1133D,
0x16FF0,
0x16FF2,
+ 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -274336,13 +281890,15 @@ static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = { /* for EBCDIC 037
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets */
- 191, /* Number of elements */
+ 199, /* 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 */
@@ -274431,12 +281987,16 @@ static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets
0xDF4,
0xF18,
0xF1A,
- 0x17CB,
+ 0x17CE,
+ 0x17D0,
+ 0x17D1,
0x17D2,
0x17DD,
0x17DE,
0x1ABF,
0x1AC1,
+ 0x1B6B,
+ 0x1B74,
0x1D00,
0x1D2C,
0x1D2F,
@@ -274450,8 +282010,6 @@ static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets
0x1D79,
0x1D9B,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x1E9C,
0x1E9E,
@@ -274487,8 +282045,6 @@ static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets
0x3036,
0x303B,
0x303D,
- 0x31F0,
- 0x3200,
0x327F,
0x3280,
0x4DC0,
@@ -274510,17 +282066,25 @@ static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets
0xFB1E,
0xFB1F,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFD3E,
- 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE20,
0xFE30,
0xFE45,
0xFE47,
0xFE73,
0xFE74,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -274532,7 +282096,7 @@ static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets
0x1D17B,
0x1D1BB,
0x1D1C1,
- 0x1D1E9,
+ 0x1D1EB,
0x1D242,
0x1D245,
0x1D300,
@@ -274540,7 +282104,7 @@ static const UV UNI_IDENTIFIERTYPE__TECHNICAL_invlist[] = { /* for all charsets
};
static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = { /* for all charsets */
- 153, /* Number of elements */
+ 167, /* 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 */
@@ -274623,9 +282187,11 @@ static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = { /* for all charse
0x6E9,
0x6EA,
0x6EE,
+ 0x898,
+ 0x8A0,
0x8B3,
0x8B5,
- 0x8D3,
+ 0x8CA,
0x8E2,
0x8E3,
0x901,
@@ -274661,6 +282227,8 @@ static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = { /* for all charse
0xF3A,
0x18A9,
0x18AA,
+ 0x1AC1,
+ 0x1ACF,
0x2054,
0x2055,
0x218A,
@@ -274689,10 +282257,20 @@ static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = { /* for all charse
0xFB1F,
0xFE2E,
0xFE30,
+ 0x10780,
+ 0x10781,
+ 0x10EFD,
+ 0x10F00,
0x16A40,
0x16A5F,
0x16A60,
0x16A6A,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1D1DE,
0x1D1E9,
0x1F54F,
@@ -274700,7 +282278,7 @@ static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = { /* for all charse
};
static const UV UNI_IDEO_invlist[] = { /* for all charsets */
- 39, /* Number of elements */
+ 41, /* 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 */
@@ -274714,7 +282292,7 @@ static const UV UNI_IDEO_invlist[] = { /* for all charsets */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xF900,
0xFA6E,
0xFA70,
@@ -274730,9 +282308,9 @@ static const UV UNI_IDEO_invlist[] = { /* for all charsets */
0x1B170,
0x1B2FC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -274742,7 +282320,9 @@ static const UV UNI_IDEO_invlist[] = { /* for all charsets */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
static const UV UNI_IDEOGRAPHICSYMBOLS_invlist[] = { /* for all charsets */
@@ -274758,7 +282338,7 @@ static const UV UNI_IDEOGRAPHICSYMBOLS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
- 1245, /* Number of elements */
+ 1319, /* 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 */
@@ -274861,10 +282441,12 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -274993,6 +282575,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -275009,7 +282593,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -275152,10 +282736,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -275196,7 +282778,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -275296,10 +282878,6 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -275360,8 +282938,6 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -275382,10 +282958,14 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -275563,12 +283143,34 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -275639,12 +283241,18 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -275671,6 +283279,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -275727,6 +283337,8 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -275765,7 +283377,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -275793,6 +283405,12 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -275801,14 +283419,20 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -275837,10 +283461,20 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -275913,14 +283547,32 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -275994,9 +283646,9 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -276006,7 +283658,9 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -276017,7 +283671,7 @@ static const UV UNI_IDS_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
- 1271, /* Number of elements */
+ 1345, /* 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 */
@@ -276146,10 +283800,12 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -276278,6 +283934,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -276294,7 +283952,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -276437,10 +284095,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -276481,7 +284137,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -276581,10 +284237,6 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -276645,8 +284297,6 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -276667,10 +284317,14 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -276848,12 +284502,34 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -276924,12 +284600,18 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -276956,6 +284638,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -277012,6 +284696,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -277050,7 +284736,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -277078,6 +284764,12 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -277086,14 +284778,20 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -277122,10 +284820,20 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -277198,14 +284906,32 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -277279,9 +285005,9 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -277291,7 +285017,9 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -277302,7 +285030,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
- 1267, /* Number of elements */
+ 1341, /* 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 */
@@ -277427,10 +285155,12 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -277559,6 +285289,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -277575,7 +285307,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -277718,10 +285450,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -277762,7 +285492,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -277862,10 +285592,6 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -277926,8 +285652,6 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -277948,10 +285672,14 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -278129,12 +285857,34 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -278205,12 +285955,18 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -278237,6 +285993,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -278293,6 +286051,8 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -278331,7 +286091,7 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -278359,6 +286119,12 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -278367,14 +286133,20 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -278403,10 +286175,20 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -278479,14 +286261,32 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -278560,9 +286360,9 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -278572,7 +286372,9 @@ static const UV UNI_IDS_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -285949,6 +293751,2862 @@ static const UV UNI_IN__13_invlist[] = { /* for all charsets */
0x110000
};
+static const UV UNI_IN__14_invlist[] = { /* for all charsets */
+ 1412, /* 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,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5EF,
+ 0x5F5,
+ 0x600,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x7FD,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x860,
+ 0x86B,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
+ 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,
+ 0x9FF,
+ 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,
+ 0xA77,
+ 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,
+ 0xAF9,
+ 0xB00,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB55,
+ 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,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3C,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5B,
+ 0xC5D,
+ 0xC5E,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC77,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDD,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF3,
+ 0xD00,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD50,
+ 0xD54,
+ 0xD64,
+ 0xD66,
+ 0xD80,
+ 0xD81,
+ 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,
+ 0xE86,
+ 0xE8B,
+ 0xE8C,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 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,
+ 0x13F6,
+ 0x13F8,
+ 0x13FE,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x1716,
+ 0x171F,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x181A,
+ 0x1820,
+ 0x1879,
+ 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,
+ 0x1ACF,
+ 0x1B00,
+ 0x1B4D,
+ 0x1B50,
+ 0x1B7F,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C89,
+ 0x1C90,
+ 0x1CBB,
+ 0x1CBD,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CFB,
+ 0x1D00,
+ 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,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20C1,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218C,
+ 0x2190,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B97,
+ 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,
+ 0x2E5E,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x3130,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA6F8,
+ 0xA700,
+ 0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA82D,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C6,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 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,
+ 0xAB6C,
+ 0xAB70,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC3,
+ 0xFBD3,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDCF,
+ 0xFE1A,
+ 0xFE20,
+ 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,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018F,
+ 0x10190,
+ 0x1019D,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x1032D,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x108E0,
+ 0x108F3,
+ 0x108F4,
+ 0x108F6,
+ 0x108FB,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BC,
+ 0x109D0,
+ 0x109D2,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A36,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A49,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10C80,
+ 0x10CB3,
+ 0x10CC0,
+ 0x10CF3,
+ 0x10CFA,
+ 0x10D28,
+ 0x10D30,
+ 0x10D3A,
+ 0x10E60,
+ 0x10E7F,
+ 0x10E80,
+ 0x10EAA,
+ 0x10EAB,
+ 0x10EAE,
+ 0x10EB0,
+ 0x10EB2,
+ 0x10F00,
+ 0x10F28,
+ 0x10F30,
+ 0x10F5A,
+ 0x10F70,
+ 0x10F8A,
+ 0x10FB0,
+ 0x10FCC,
+ 0x10FE0,
+ 0x10FF7,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11076,
+ 0x1107F,
+ 0x110C3,
+ 0x110CD,
+ 0x110CE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11148,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111E0,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123F,
+ 0x11280,
+ 0x11287,
+ 0x11288,
+ 0x11289,
+ 0x1128A,
+ 0x1128E,
+ 0x1128F,
+ 0x1129E,
+ 0x1129F,
+ 0x112AA,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11300,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133B,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11350,
+ 0x11351,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11400,
+ 0x1145C,
+ 0x1145D,
+ 0x11462,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115DE,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11660,
+ 0x1166D,
+ 0x11680,
+ 0x116BA,
+ 0x116C0,
+ 0x116CA,
+ 0x11700,
+ 0x1171B,
+ 0x1171D,
+ 0x1172C,
+ 0x11730,
+ 0x11747,
+ 0x11800,
+ 0x1183C,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11907,
+ 0x11909,
+ 0x1190A,
+ 0x1190C,
+ 0x11914,
+ 0x11915,
+ 0x11917,
+ 0x11918,
+ 0x11936,
+ 0x11937,
+ 0x11939,
+ 0x1193B,
+ 0x11947,
+ 0x11950,
+ 0x1195A,
+ 0x119A0,
+ 0x119A8,
+ 0x119AA,
+ 0x119D8,
+ 0x119DA,
+ 0x119E5,
+ 0x11A00,
+ 0x11A48,
+ 0x11A50,
+ 0x11AA3,
+ 0x11AB0,
+ 0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
+ 0x11D00,
+ 0x11D07,
+ 0x11D08,
+ 0x11D0A,
+ 0x11D0B,
+ 0x11D37,
+ 0x11D3A,
+ 0x11D3B,
+ 0x11D3C,
+ 0x11D3E,
+ 0x11D3F,
+ 0x11D48,
+ 0x11D50,
+ 0x11D5A,
+ 0x11D60,
+ 0x11D66,
+ 0x11D67,
+ 0x11D69,
+ 0x11D6A,
+ 0x11D8F,
+ 0x11D90,
+ 0x11D92,
+ 0x11D93,
+ 0x11D99,
+ 0x11DA0,
+ 0x11DAA,
+ 0x11EE0,
+ 0x11EF9,
+ 0x11FB0,
+ 0x11FB1,
+ 0x11FC0,
+ 0x11FF2,
+ 0x11FFF,
+ 0x1239A,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x12480,
+ 0x12544,
+ 0x12F90,
+ 0x12FF3,
+ 0x13000,
+ 0x1342F,
+ 0x13430,
+ 0x13439,
+ 0x14400,
+ 0x14647,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16E40,
+ 0x16E9B,
+ 0x16F00,
+ 0x16F4B,
+ 0x16F4F,
+ 0x16F88,
+ 0x16F8F,
+ 0x16FA0,
+ 0x16FE0,
+ 0x16FE5,
+ 0x16FF0,
+ 0x16FF2,
+ 0x17000,
+ 0x187F8,
+ 0x18800,
+ 0x18CD6,
+ 0x18D00,
+ 0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1B000,
+ 0x1B123,
+ 0x1B150,
+ 0x1B153,
+ 0x1B164,
+ 0x1B168,
+ 0x1B170,
+ 0x1B2FC,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1EB,
+ 0x1D200,
+ 0x1D246,
+ 0x1D2E0,
+ 0x1D2F4,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D379,
+ 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,
+ 0x1DA8C,
+ 0x1DA9B,
+ 0x1DAA0,
+ 0x1DAA1,
+ 0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
+ 0x1E100,
+ 0x1E12D,
+ 0x1E130,
+ 0x1E13E,
+ 0x1E140,
+ 0x1E14A,
+ 0x1E14E,
+ 0x1E150,
+ 0x1E290,
+ 0x1E2AF,
+ 0x1E2C0,
+ 0x1E2FA,
+ 0x1E2FF,
+ 0x1E300,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1E900,
+ 0x1E94C,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
+ 0x1EC71,
+ 0x1ECB5,
+ 0x1ED01,
+ 0x1ED3E,
+ 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,
+ 0x1F1AE,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F260,
+ 0x1F266,
+ 0x1F300,
+ 0x1F6D8,
+ 0x1F6DD,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6FD,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D9,
+ 0x1F7E0,
+ 0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F8B0,
+ 0x1F8B2,
+ 0x1F900,
+ 0x1FA54,
+ 0x1FA60,
+ 0x1FA6E,
+ 0x1FA70,
+ 0x1FA75,
+ 0x1FA78,
+ 0x1FA7D,
+ 0x1FA80,
+ 0x1FA87,
+ 0x1FA90,
+ 0x1FAAD,
+ 0x1FAB0,
+ 0x1FABB,
+ 0x1FAC0,
+ 0x1FAC6,
+ 0x1FAD0,
+ 0x1FADA,
+ 0x1FAE0,
+ 0x1FAE8,
+ 0x1FAF0,
+ 0x1FAF7,
+ 0x1FB00,
+ 0x1FB93,
+ 0x1FB94,
+ 0x1FBCB,
+ 0x1FBF0,
+ 0x1FBFA,
+ 0x1FFFE,
+ 0x2A6E0,
+ 0x2A700,
+ 0x2B739,
+ 0x2B740,
+ 0x2B81E,
+ 0x2B820,
+ 0x2CEA2,
+ 0x2CEB0,
+ 0x2EBE1,
+ 0x2F800,
+ 0x2FA1E,
+ 0x2FFFE,
+ 0x3134B,
+ 0x3FFFE,
+ 0x40000,
+ 0x4FFFE,
+ 0x50000,
+ 0x5FFFE,
+ 0x60000,
+ 0x6FFFE,
+ 0x70000,
+ 0x7FFFE,
+ 0x80000,
+ 0x8FFFE,
+ 0x90000,
+ 0x9FFFE,
+ 0xA0000,
+ 0xAFFFE,
+ 0xB0000,
+ 0xBFFFE,
+ 0xC0000,
+ 0xCFFFE,
+ 0xD0000,
+ 0xDFFFE,
+ 0xE0000,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xEFFFE,
+ 0x110000
+};
+
+static const UV UNI_IN__15_invlist[] = { /* for all charsets */
+ 1430, /* 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,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5EF,
+ 0x5F5,
+ 0x600,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x7FD,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x860,
+ 0x86B,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
+ 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,
+ 0x9FF,
+ 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,
+ 0xA77,
+ 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,
+ 0xAF9,
+ 0xB00,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB55,
+ 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,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3C,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5B,
+ 0xC5D,
+ 0xC5E,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC77,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDD,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF4,
+ 0xD00,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD50,
+ 0xD54,
+ 0xD64,
+ 0xD66,
+ 0xD80,
+ 0xD81,
+ 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,
+ 0xE86,
+ 0xE8B,
+ 0xE8C,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECF,
+ 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,
+ 0x13F6,
+ 0x13F8,
+ 0x13FE,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x1716,
+ 0x171F,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x181A,
+ 0x1820,
+ 0x1879,
+ 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,
+ 0x1ACF,
+ 0x1B00,
+ 0x1B4D,
+ 0x1B50,
+ 0x1B7F,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C89,
+ 0x1C90,
+ 0x1CBB,
+ 0x1CBD,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CFB,
+ 0x1D00,
+ 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,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20C1,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218C,
+ 0x2190,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B97,
+ 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,
+ 0x2E5E,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x3130,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA6F8,
+ 0xA700,
+ 0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA82D,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C6,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 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,
+ 0xAB6C,
+ 0xAB70,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC3,
+ 0xFBD3,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDCF,
+ 0xFE1A,
+ 0xFE20,
+ 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,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018F,
+ 0x10190,
+ 0x1019D,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x1032D,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x108E0,
+ 0x108F3,
+ 0x108F4,
+ 0x108F6,
+ 0x108FB,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BC,
+ 0x109D0,
+ 0x109D2,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A36,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A49,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10C80,
+ 0x10CB3,
+ 0x10CC0,
+ 0x10CF3,
+ 0x10CFA,
+ 0x10D28,
+ 0x10D30,
+ 0x10D3A,
+ 0x10E60,
+ 0x10E7F,
+ 0x10E80,
+ 0x10EAA,
+ 0x10EAB,
+ 0x10EAE,
+ 0x10EB0,
+ 0x10EB2,
+ 0x10EFD,
+ 0x10F28,
+ 0x10F30,
+ 0x10F5A,
+ 0x10F70,
+ 0x10F8A,
+ 0x10FB0,
+ 0x10FCC,
+ 0x10FE0,
+ 0x10FF7,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11076,
+ 0x1107F,
+ 0x110C3,
+ 0x110CD,
+ 0x110CE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11148,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111E0,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11242,
+ 0x11280,
+ 0x11287,
+ 0x11288,
+ 0x11289,
+ 0x1128A,
+ 0x1128E,
+ 0x1128F,
+ 0x1129E,
+ 0x1129F,
+ 0x112AA,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11300,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133B,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11350,
+ 0x11351,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11400,
+ 0x1145C,
+ 0x1145D,
+ 0x11462,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115DE,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11660,
+ 0x1166D,
+ 0x11680,
+ 0x116BA,
+ 0x116C0,
+ 0x116CA,
+ 0x11700,
+ 0x1171B,
+ 0x1171D,
+ 0x1172C,
+ 0x11730,
+ 0x11747,
+ 0x11800,
+ 0x1183C,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11907,
+ 0x11909,
+ 0x1190A,
+ 0x1190C,
+ 0x11914,
+ 0x11915,
+ 0x11917,
+ 0x11918,
+ 0x11936,
+ 0x11937,
+ 0x11939,
+ 0x1193B,
+ 0x11947,
+ 0x11950,
+ 0x1195A,
+ 0x119A0,
+ 0x119A8,
+ 0x119AA,
+ 0x119D8,
+ 0x119DA,
+ 0x119E5,
+ 0x11A00,
+ 0x11A48,
+ 0x11A50,
+ 0x11AA3,
+ 0x11AB0,
+ 0x11AF9,
+ 0x11B00,
+ 0x11B0A,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
+ 0x11D00,
+ 0x11D07,
+ 0x11D08,
+ 0x11D0A,
+ 0x11D0B,
+ 0x11D37,
+ 0x11D3A,
+ 0x11D3B,
+ 0x11D3C,
+ 0x11D3E,
+ 0x11D3F,
+ 0x11D48,
+ 0x11D50,
+ 0x11D5A,
+ 0x11D60,
+ 0x11D66,
+ 0x11D67,
+ 0x11D69,
+ 0x11D6A,
+ 0x11D8F,
+ 0x11D90,
+ 0x11D92,
+ 0x11D93,
+ 0x11D99,
+ 0x11DA0,
+ 0x11DAA,
+ 0x11EE0,
+ 0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
+ 0x11FB0,
+ 0x11FB1,
+ 0x11FC0,
+ 0x11FF2,
+ 0x11FFF,
+ 0x1239A,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x12480,
+ 0x12544,
+ 0x12F90,
+ 0x12FF3,
+ 0x13000,
+ 0x13456,
+ 0x14400,
+ 0x14647,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16E40,
+ 0x16E9B,
+ 0x16F00,
+ 0x16F4B,
+ 0x16F4F,
+ 0x16F88,
+ 0x16F8F,
+ 0x16FA0,
+ 0x16FE0,
+ 0x16FE5,
+ 0x16FF0,
+ 0x16FF2,
+ 0x17000,
+ 0x187F8,
+ 0x18800,
+ 0x18CD6,
+ 0x18D00,
+ 0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1B000,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
+ 0x1B150,
+ 0x1B153,
+ 0x1B155,
+ 0x1B156,
+ 0x1B164,
+ 0x1B168,
+ 0x1B170,
+ 0x1B2FC,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1EB,
+ 0x1D200,
+ 0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
+ 0x1D2E0,
+ 0x1D2F4,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D379,
+ 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,
+ 0x1DA8C,
+ 0x1DA9B,
+ 0x1DAA0,
+ 0x1DAA1,
+ 0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E100,
+ 0x1E12D,
+ 0x1E130,
+ 0x1E13E,
+ 0x1E140,
+ 0x1E14A,
+ 0x1E14E,
+ 0x1E150,
+ 0x1E290,
+ 0x1E2AF,
+ 0x1E2C0,
+ 0x1E2FA,
+ 0x1E2FF,
+ 0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1E900,
+ 0x1E94C,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
+ 0x1EC71,
+ 0x1ECB5,
+ 0x1ED01,
+ 0x1ED3E,
+ 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,
+ 0x1F1AE,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F260,
+ 0x1F266,
+ 0x1F300,
+ 0x1F6D8,
+ 0x1F6DC,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6FD,
+ 0x1F700,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
+ 0x1F7E0,
+ 0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F8B0,
+ 0x1F8B2,
+ 0x1F900,
+ 0x1FA54,
+ 0x1FA60,
+ 0x1FA6E,
+ 0x1FA70,
+ 0x1FA7D,
+ 0x1FA80,
+ 0x1FA89,
+ 0x1FA90,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
+ 0x1FB00,
+ 0x1FB93,
+ 0x1FB94,
+ 0x1FBCB,
+ 0x1FBF0,
+ 0x1FBFA,
+ 0x1FFFE,
+ 0x2A6E0,
+ 0x2A700,
+ 0x2B73A,
+ 0x2B740,
+ 0x2B81E,
+ 0x2B820,
+ 0x2CEA2,
+ 0x2CEB0,
+ 0x2EBE1,
+ 0x2F800,
+ 0x2FA1E,
+ 0x2FFFE,
+ 0x3134B,
+ 0x31350,
+ 0x323B0,
+ 0x3FFFE,
+ 0x40000,
+ 0x4FFFE,
+ 0x50000,
+ 0x5FFFE,
+ 0x60000,
+ 0x6FFFE,
+ 0x70000,
+ 0x7FFFE,
+ 0x80000,
+ 0x8FFFE,
+ 0x90000,
+ 0x9FFFE,
+ 0xA0000,
+ 0xAFFFE,
+ 0xB0000,
+ 0xBFFFE,
+ 0xC0000,
+ 0xCFFFE,
+ 0xD0000,
+ 0xDFFFE,
+ 0xE0000,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xEFFFE,
+ 0x110000
+};
+
static const UV UNI_IN__2_invlist[] = { /* for all charsets */
624, /* Number of elements */
148565664, /* Version and data structure type */
@@ -302194,6 +312852,1443 @@ static const UV UNI_IN__9_invlist[] = { /* for all charsets */
0x110000
};
+static const UV UNI_IN__NA_invlist[] = { /* for all charsets */
+ 1430, /* 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,
+ 0x378,
+ 0x37A,
+ 0x380,
+ 0x384,
+ 0x38B,
+ 0x38C,
+ 0x38D,
+ 0x38E,
+ 0x3A2,
+ 0x3A3,
+ 0x530,
+ 0x531,
+ 0x557,
+ 0x559,
+ 0x58B,
+ 0x58D,
+ 0x590,
+ 0x591,
+ 0x5C8,
+ 0x5D0,
+ 0x5EB,
+ 0x5EF,
+ 0x5F5,
+ 0x600,
+ 0x70E,
+ 0x70F,
+ 0x74B,
+ 0x74D,
+ 0x7B2,
+ 0x7C0,
+ 0x7FB,
+ 0x7FD,
+ 0x82E,
+ 0x830,
+ 0x83F,
+ 0x840,
+ 0x85C,
+ 0x85E,
+ 0x85F,
+ 0x860,
+ 0x86B,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
+ 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,
+ 0x9FF,
+ 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,
+ 0xA77,
+ 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,
+ 0xAF9,
+ 0xB00,
+ 0xB01,
+ 0xB04,
+ 0xB05,
+ 0xB0D,
+ 0xB0F,
+ 0xB11,
+ 0xB13,
+ 0xB29,
+ 0xB2A,
+ 0xB31,
+ 0xB32,
+ 0xB34,
+ 0xB35,
+ 0xB3A,
+ 0xB3C,
+ 0xB45,
+ 0xB47,
+ 0xB49,
+ 0xB4B,
+ 0xB4E,
+ 0xB55,
+ 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,
+ 0xC0D,
+ 0xC0E,
+ 0xC11,
+ 0xC12,
+ 0xC29,
+ 0xC2A,
+ 0xC3A,
+ 0xC3C,
+ 0xC45,
+ 0xC46,
+ 0xC49,
+ 0xC4A,
+ 0xC4E,
+ 0xC55,
+ 0xC57,
+ 0xC58,
+ 0xC5B,
+ 0xC5D,
+ 0xC5E,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC77,
+ 0xC8D,
+ 0xC8E,
+ 0xC91,
+ 0xC92,
+ 0xCA9,
+ 0xCAA,
+ 0xCB4,
+ 0xCB5,
+ 0xCBA,
+ 0xCBC,
+ 0xCC5,
+ 0xCC6,
+ 0xCC9,
+ 0xCCA,
+ 0xCCE,
+ 0xCD5,
+ 0xCD7,
+ 0xCDD,
+ 0xCDF,
+ 0xCE0,
+ 0xCE4,
+ 0xCE6,
+ 0xCF0,
+ 0xCF1,
+ 0xCF4,
+ 0xD00,
+ 0xD0D,
+ 0xD0E,
+ 0xD11,
+ 0xD12,
+ 0xD45,
+ 0xD46,
+ 0xD49,
+ 0xD4A,
+ 0xD50,
+ 0xD54,
+ 0xD64,
+ 0xD66,
+ 0xD80,
+ 0xD81,
+ 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,
+ 0xE86,
+ 0xE8B,
+ 0xE8C,
+ 0xEA4,
+ 0xEA5,
+ 0xEA6,
+ 0xEA7,
+ 0xEBE,
+ 0xEC0,
+ 0xEC5,
+ 0xEC6,
+ 0xEC7,
+ 0xEC8,
+ 0xECF,
+ 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,
+ 0x13F6,
+ 0x13F8,
+ 0x13FE,
+ 0x1400,
+ 0x169D,
+ 0x16A0,
+ 0x16F9,
+ 0x1700,
+ 0x1716,
+ 0x171F,
+ 0x1737,
+ 0x1740,
+ 0x1754,
+ 0x1760,
+ 0x176D,
+ 0x176E,
+ 0x1771,
+ 0x1772,
+ 0x1774,
+ 0x1780,
+ 0x17DE,
+ 0x17E0,
+ 0x17EA,
+ 0x17F0,
+ 0x17FA,
+ 0x1800,
+ 0x181A,
+ 0x1820,
+ 0x1879,
+ 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,
+ 0x1ACF,
+ 0x1B00,
+ 0x1B4D,
+ 0x1B50,
+ 0x1B7F,
+ 0x1B80,
+ 0x1BF4,
+ 0x1BFC,
+ 0x1C38,
+ 0x1C3B,
+ 0x1C4A,
+ 0x1C4D,
+ 0x1C89,
+ 0x1C90,
+ 0x1CBB,
+ 0x1CBD,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CFB,
+ 0x1D00,
+ 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,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20C1,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218C,
+ 0x2190,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B97,
+ 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,
+ 0x2E5E,
+ 0x2E80,
+ 0x2E9A,
+ 0x2E9B,
+ 0x2EF4,
+ 0x2F00,
+ 0x2FD6,
+ 0x2FF0,
+ 0x2FFC,
+ 0x3000,
+ 0x3040,
+ 0x3041,
+ 0x3097,
+ 0x3099,
+ 0x3100,
+ 0x3105,
+ 0x3130,
+ 0x3131,
+ 0x318F,
+ 0x3190,
+ 0x31E4,
+ 0x31F0,
+ 0x321F,
+ 0x3220,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA6F8,
+ 0xA700,
+ 0xA7CB,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA82D,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C6,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 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,
+ 0xAB6C,
+ 0xAB70,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 0xFA6E,
+ 0xFA70,
+ 0xFADA,
+ 0xFB00,
+ 0xFB07,
+ 0xFB13,
+ 0xFB18,
+ 0xFB1D,
+ 0xFB37,
+ 0xFB38,
+ 0xFB3D,
+ 0xFB3E,
+ 0xFB3F,
+ 0xFB40,
+ 0xFB42,
+ 0xFB43,
+ 0xFB45,
+ 0xFB46,
+ 0xFBC3,
+ 0xFBD3,
+ 0xFD90,
+ 0xFD92,
+ 0xFDC8,
+ 0xFDCF,
+ 0xFE1A,
+ 0xFE20,
+ 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,
+ 0x1000C,
+ 0x1000D,
+ 0x10027,
+ 0x10028,
+ 0x1003B,
+ 0x1003C,
+ 0x1003E,
+ 0x1003F,
+ 0x1004E,
+ 0x10050,
+ 0x1005E,
+ 0x10080,
+ 0x100FB,
+ 0x10100,
+ 0x10103,
+ 0x10107,
+ 0x10134,
+ 0x10137,
+ 0x1018F,
+ 0x10190,
+ 0x1019D,
+ 0x101A0,
+ 0x101A1,
+ 0x101D0,
+ 0x101FE,
+ 0x10280,
+ 0x1029D,
+ 0x102A0,
+ 0x102D1,
+ 0x102E0,
+ 0x102FC,
+ 0x10300,
+ 0x10324,
+ 0x1032D,
+ 0x1034B,
+ 0x10350,
+ 0x1037B,
+ 0x10380,
+ 0x1039E,
+ 0x1039F,
+ 0x103C4,
+ 0x103C8,
+ 0x103D6,
+ 0x10400,
+ 0x1049E,
+ 0x104A0,
+ 0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
+ 0x10500,
+ 0x10528,
+ 0x10530,
+ 0x10564,
+ 0x1056F,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10600,
+ 0x10737,
+ 0x10740,
+ 0x10756,
+ 0x10760,
+ 0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x10800,
+ 0x10806,
+ 0x10808,
+ 0x10809,
+ 0x1080A,
+ 0x10836,
+ 0x10837,
+ 0x10839,
+ 0x1083C,
+ 0x1083D,
+ 0x1083F,
+ 0x10856,
+ 0x10857,
+ 0x1089F,
+ 0x108A7,
+ 0x108B0,
+ 0x108E0,
+ 0x108F3,
+ 0x108F4,
+ 0x108F6,
+ 0x108FB,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BC,
+ 0x109D0,
+ 0x109D2,
+ 0x10A04,
+ 0x10A05,
+ 0x10A07,
+ 0x10A0C,
+ 0x10A14,
+ 0x10A15,
+ 0x10A18,
+ 0x10A19,
+ 0x10A36,
+ 0x10A38,
+ 0x10A3B,
+ 0x10A3F,
+ 0x10A49,
+ 0x10A50,
+ 0x10A59,
+ 0x10A60,
+ 0x10AA0,
+ 0x10AC0,
+ 0x10AE7,
+ 0x10AEB,
+ 0x10AF7,
+ 0x10B00,
+ 0x10B36,
+ 0x10B39,
+ 0x10B56,
+ 0x10B58,
+ 0x10B73,
+ 0x10B78,
+ 0x10B92,
+ 0x10B99,
+ 0x10B9D,
+ 0x10BA9,
+ 0x10BB0,
+ 0x10C00,
+ 0x10C49,
+ 0x10C80,
+ 0x10CB3,
+ 0x10CC0,
+ 0x10CF3,
+ 0x10CFA,
+ 0x10D28,
+ 0x10D30,
+ 0x10D3A,
+ 0x10E60,
+ 0x10E7F,
+ 0x10E80,
+ 0x10EAA,
+ 0x10EAB,
+ 0x10EAE,
+ 0x10EB0,
+ 0x10EB2,
+ 0x10EFD,
+ 0x10F28,
+ 0x10F30,
+ 0x10F5A,
+ 0x10F70,
+ 0x10F8A,
+ 0x10FB0,
+ 0x10FCC,
+ 0x10FE0,
+ 0x10FF7,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11076,
+ 0x1107F,
+ 0x110C3,
+ 0x110CD,
+ 0x110CE,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11148,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111E0,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x11242,
+ 0x11280,
+ 0x11287,
+ 0x11288,
+ 0x11289,
+ 0x1128A,
+ 0x1128E,
+ 0x1128F,
+ 0x1129E,
+ 0x1129F,
+ 0x112AA,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11300,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133B,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11350,
+ 0x11351,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11400,
+ 0x1145C,
+ 0x1145D,
+ 0x11462,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115DE,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11660,
+ 0x1166D,
+ 0x11680,
+ 0x116BA,
+ 0x116C0,
+ 0x116CA,
+ 0x11700,
+ 0x1171B,
+ 0x1171D,
+ 0x1172C,
+ 0x11730,
+ 0x11747,
+ 0x11800,
+ 0x1183C,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11907,
+ 0x11909,
+ 0x1190A,
+ 0x1190C,
+ 0x11914,
+ 0x11915,
+ 0x11917,
+ 0x11918,
+ 0x11936,
+ 0x11937,
+ 0x11939,
+ 0x1193B,
+ 0x11947,
+ 0x11950,
+ 0x1195A,
+ 0x119A0,
+ 0x119A8,
+ 0x119AA,
+ 0x119D8,
+ 0x119DA,
+ 0x119E5,
+ 0x11A00,
+ 0x11A48,
+ 0x11A50,
+ 0x11AA3,
+ 0x11AB0,
+ 0x11AF9,
+ 0x11B00,
+ 0x11B0A,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
+ 0x11D00,
+ 0x11D07,
+ 0x11D08,
+ 0x11D0A,
+ 0x11D0B,
+ 0x11D37,
+ 0x11D3A,
+ 0x11D3B,
+ 0x11D3C,
+ 0x11D3E,
+ 0x11D3F,
+ 0x11D48,
+ 0x11D50,
+ 0x11D5A,
+ 0x11D60,
+ 0x11D66,
+ 0x11D67,
+ 0x11D69,
+ 0x11D6A,
+ 0x11D8F,
+ 0x11D90,
+ 0x11D92,
+ 0x11D93,
+ 0x11D99,
+ 0x11DA0,
+ 0x11DAA,
+ 0x11EE0,
+ 0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
+ 0x11FB0,
+ 0x11FB1,
+ 0x11FC0,
+ 0x11FF2,
+ 0x11FFF,
+ 0x1239A,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x12480,
+ 0x12544,
+ 0x12F90,
+ 0x12FF3,
+ 0x13000,
+ 0x13456,
+ 0x14400,
+ 0x14647,
+ 0x16800,
+ 0x16A39,
+ 0x16A40,
+ 0x16A5F,
+ 0x16A60,
+ 0x16A6A,
+ 0x16A6E,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
+ 0x16AD0,
+ 0x16AEE,
+ 0x16AF0,
+ 0x16AF6,
+ 0x16B00,
+ 0x16B46,
+ 0x16B50,
+ 0x16B5A,
+ 0x16B5B,
+ 0x16B62,
+ 0x16B63,
+ 0x16B78,
+ 0x16B7D,
+ 0x16B90,
+ 0x16E40,
+ 0x16E9B,
+ 0x16F00,
+ 0x16F4B,
+ 0x16F4F,
+ 0x16F88,
+ 0x16F8F,
+ 0x16FA0,
+ 0x16FE0,
+ 0x16FE5,
+ 0x16FF0,
+ 0x16FF2,
+ 0x17000,
+ 0x187F8,
+ 0x18800,
+ 0x18CD6,
+ 0x18D00,
+ 0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1B000,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
+ 0x1B150,
+ 0x1B153,
+ 0x1B155,
+ 0x1B156,
+ 0x1B164,
+ 0x1B168,
+ 0x1B170,
+ 0x1B2FC,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1EB,
+ 0x1D200,
+ 0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
+ 0x1D2E0,
+ 0x1D2F4,
+ 0x1D300,
+ 0x1D357,
+ 0x1D360,
+ 0x1D379,
+ 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,
+ 0x1DA8C,
+ 0x1DA9B,
+ 0x1DAA0,
+ 0x1DAA1,
+ 0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
+ 0x1E100,
+ 0x1E12D,
+ 0x1E130,
+ 0x1E13E,
+ 0x1E140,
+ 0x1E14A,
+ 0x1E14E,
+ 0x1E150,
+ 0x1E290,
+ 0x1E2AF,
+ 0x1E2C0,
+ 0x1E2FA,
+ 0x1E2FF,
+ 0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1E900,
+ 0x1E94C,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
+ 0x1EC71,
+ 0x1ECB5,
+ 0x1ED01,
+ 0x1ED3E,
+ 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,
+ 0x1F1AE,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F260,
+ 0x1F266,
+ 0x1F300,
+ 0x1F6D8,
+ 0x1F6DC,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6FD,
+ 0x1F700,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
+ 0x1F7E0,
+ 0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F8B0,
+ 0x1F8B2,
+ 0x1F900,
+ 0x1FA54,
+ 0x1FA60,
+ 0x1FA6E,
+ 0x1FA70,
+ 0x1FA7D,
+ 0x1FA80,
+ 0x1FA89,
+ 0x1FA90,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
+ 0x1FB00,
+ 0x1FB93,
+ 0x1FB94,
+ 0x1FBCB,
+ 0x1FBF0,
+ 0x1FBFA,
+ 0x1FFFE,
+ 0x2A6E0,
+ 0x2A700,
+ 0x2B73A,
+ 0x2B740,
+ 0x2B81E,
+ 0x2B820,
+ 0x2CEA2,
+ 0x2CEB0,
+ 0x2EBE1,
+ 0x2F800,
+ 0x2FA1E,
+ 0x2FFFE,
+ 0x3134B,
+ 0x31350,
+ 0x323B0,
+ 0x3FFFE,
+ 0x40000,
+ 0x4FFFE,
+ 0x50000,
+ 0x5FFFE,
+ 0x60000,
+ 0x6FFFE,
+ 0x70000,
+ 0x7FFFE,
+ 0x80000,
+ 0x8FFFE,
+ 0x90000,
+ 0x9FFFE,
+ 0xA0000,
+ 0xAFFFE,
+ 0xB0000,
+ 0xBFFFE,
+ 0xC0000,
+ 0xCFFFE,
+ 0xD0000,
+ 0xDFFFE,
+ 0xE0000,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xEFFFE,
+ 0x110000
+};
+
static const UV UNI_INADLAM_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -302211,7 +314306,7 @@ static const UV UNI_INAHOM_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x11700,
- 0x11740
+ 0x11750
};
static const UV UNI_INANATOLIANHIEROGLYPHS_invlist[] = { /* for all charsets */
@@ -302434,6 +314529,16 @@ static const UV UNI_INCUNEIFORM_invlist[] = { /* for all charsets */
0x12400
};
+static const UV UNI_INCYPROMINOAN_invlist[] = { /* for all charsets */
+ 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,
+ 0x12F90,
+ 0x13000
+};
+
static const UV UNI_INCYRILLIC_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -302764,6 +314869,16 @@ static const UV UNI_INKATAKANA_invlist[] = { /* for all charsets */
0x3100
};
+static const UV UNI_INKAWI_invlist[] = { /* for all charsets */
+ 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,
+ 0x11F00,
+ 0x11F60
+};
+
static const UV UNI_INKHAROSHTHI_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -303064,6 +315179,16 @@ static const UV UNI_INNABATAEAN_invlist[] = { /* for all charsets */
0x108B0
};
+static const UV UNI_INNAGMUNDARI_invlist[] = { /* for all charsets */
+ 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,
+ 0x1E4D0,
+ 0x1E500
+};
+
static const UV UNI_INNANDINAGARI_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -303194,6 +315319,16 @@ static const UV UNI_INOLDTURKIC_invlist[] = { /* for all charsets */
0x10C50
};
+static const UV UNI_INOLDUYGHUR_invlist[] = { /* for all charsets */
+ 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,
+ 0x10F70,
+ 0x10FB0
+};
+
static const UV UNI_INORIYA_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -303245,7 +315380,7 @@ static const UV UNI_INPAUCINHAU_invlist[] = { /* for all charsets */
};
static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */
- 287, /* Number of elements */
+ 295, /* 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 */
@@ -303296,6 +315431,8 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */
0xB4E,
0xB62,
0xB64,
+ 0xC3C,
+ 0xC3D,
0xC56,
0xC57,
0xC62,
@@ -303353,7 +315490,7 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */
0x1713,
0x1715,
0x1733,
- 0x1735,
+ 0x1734,
0x1753,
0x1754,
0x1773,
@@ -303442,6 +315579,8 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */
0x110B5,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x1112A,
0x1112C,
0x11131,
@@ -303456,6 +315595,8 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */
0x111CD,
0x1122F,
0x11230,
+ 0x11241,
+ 0x11242,
0x112E3,
0x112E5,
0x112E9,
@@ -303535,7 +315676,9 @@ static const UV UNI_INPC__BOTTOM_invlist[] = { /* for all charsets */
0x11D47,
0x11D48,
0x11EF4,
- 0x11EF5
+ 0x11EF5,
+ 0x11F38,
+ 0x11F3B
};
static const UV UNI_INPC__BOTTOMANDLEFT_invlist[] = { /* for all charsets */
@@ -303565,7 +315708,7 @@ static const UV UNI_INPC__BOTTOMANDRIGHT_invlist[] = { /* for all charsets */
};
static const UV UNI_INPC__LEFT_invlist[] = { /* for all charsets */
- 95, /* Number of elements */
+ 97, /* 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 */
@@ -303663,7 +315806,9 @@ static const UV UNI_INPC__LEFT_invlist[] = { /* for all charsets */
0x11CB1,
0x11CB2,
0x11EF5,
- 0x11EF6
+ 0x11EF6,
+ 0x11F3E,
+ 0x11F40
};
static const UV UNI_INPC__LEFTANDRIGHT_invlist[] = { /* for all charsets */
@@ -303703,7 +315848,7 @@ static const UV UNI_INPC__LEFTANDRIGHT_invlist[] = { /* for all charsets */
};
static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
- 421, /* Number of elements */
+ 441, /* 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 */
@@ -303715,6 +315860,8 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0x93E,
0x950,
0x951,
+ 0x953,
+ 0x955,
0x958,
0x962,
0x964,
@@ -303790,6 +315937,8 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -303814,6 +315963,8 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -303851,7 +316002,7 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0xEC0,
0xEC5,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -303893,7 +316044,7 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0x109A,
0x109E,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -303970,7 +316121,7 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0xA8F2,
0xA8FF,
0xA900,
- 0xA92B,
+ 0xA926,
0xA92E,
0xA947,
0xA954,
@@ -304012,10 +316163,16 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x11080,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -304040,6 +316197,8 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -304127,7 +316286,13 @@ static const UV UNI_INPC__NA_invlist[] = { /* for all charsets */
0x11D93,
0x11D97,
0x11EF3,
- 0x11EF7
+ 0x11EF7,
+ 0x11F00,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F42
};
static const UV UNI_INPC__OVERSTRUCK_invlist[] = { /* for all charsets */
@@ -304147,7 +316312,7 @@ static const UV UNI_INPC__OVERSTRUCK_invlist[] = { /* for all charsets */
};
static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */
- 329, /* Number of elements */
+ 341, /* 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 */
@@ -304210,6 +316375,8 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */
0xCC5,
0xCD5,
0xCD7,
+ 0xCF3,
+ 0xCF4,
0xD02,
0xD04,
0xD3E,
@@ -304260,6 +316427,10 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */
0x1090,
0x109A,
0x109D,
+ 0x1715,
+ 0x1716,
+ 0x1734,
+ 0x1735,
0x17B6,
0x17B7,
0x17C7,
@@ -304479,11 +316650,17 @@ static const UV UNI_INPC__RIGHT_invlist[] = { /* for all charsets */
0x11D96,
0x11D97,
0x11EF6,
- 0x11EF7
+ 0x11EF7,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F36,
+ 0x11F41,
+ 0x11F42
};
static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */
- 387, /* Number of elements */
+ 399, /* 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 */
@@ -304496,7 +316673,7 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */
0x949,
0x951,
0x952,
- 0x953,
+ 0x955,
0x956,
0x981,
0x982,
@@ -304575,7 +316752,7 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */
0xEBB,
0xEBC,
0xEC8,
- 0xECE,
+ 0xECF,
0xF39,
0xF3A,
0xF72,
@@ -304694,6 +316871,8 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */
0xA8F2,
0xA8FF,
0xA900,
+ 0xA926,
+ 0xA92B,
0xA94A,
0xA94B,
0xA94F,
@@ -304746,6 +316925,10 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */
0x1103C,
0x11042,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x11080,
0x11082,
0x110B5,
@@ -304873,7 +317056,13 @@ static const UV UNI_INPC__TOP_invlist[] = { /* for all charsets */
0x11D95,
0x11D96,
0x11EF3,
- 0x11EF4
+ 0x11EF4,
+ 0x11F00,
+ 0x11F03,
+ 0x11F36,
+ 0x11F38,
+ 0x11F40,
+ 0x11F41
};
static const UV UNI_INPC__TOPANDBOTTOM_invlist[] = { /* for all charsets */
@@ -305103,7 +317292,7 @@ static const UV UNI_INSC__AVAGRAHA_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */
- 113, /* Number of elements */
+ 117, /* 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 */
@@ -305130,6 +317319,8 @@ static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */
0xC05,
0xC80,
0xC83,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD03,
0xD04,
@@ -305219,7 +317410,9 @@ static const UV UNI_INSC__BINDU_invlist[] = { /* for all charsets */
0x11D40,
0x11D41,
0x11D95,
- 0x11D96
+ 0x11D96,
+ 0x11F00,
+ 0x11F02
};
static const UV UNI_INSC__BRAHMIJOININGNUMBER_invlist[] = { /* for all charsets */
@@ -305233,7 +317426,7 @@ static const UV UNI_INSC__BRAHMIJOININGNUMBER_invlist[] = { /* for all charsets
};
static const UV UNI_INSC__CANTILLATIONMARK_invlist[] = { /* for all charsets */
- 25, /* Number of elements */
+ 27, /* 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 */
@@ -305243,6 +317436,8 @@ static const UV UNI_INSC__CANTILLATIONMARK_invlist[] = { /* for all charsets */
0xA51,
0xA52,
0xAFA,
+ 0xAFB,
+ 0xAFC,
0xAFD,
0x1CD0,
0x1CD3,
@@ -305265,7 +317460,7 @@ static const UV UNI_INSC__CANTILLATIONMARK_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
- 307, /* Number of elements */
+ 315, /* 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 */
@@ -305405,9 +317600,9 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
0x108E,
0x108F,
0x1703,
- 0x170D,
- 0x170E,
0x1712,
+ 0x171F,
+ 0x1720,
0x1723,
0x1732,
0x1743,
@@ -305433,7 +317628,7 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
0x1B13,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B8A,
0x1BA1,
0x1BAE,
@@ -305502,6 +317697,8 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
0x10A36,
0x11013,
0x11038,
+ 0x11075,
+ 0x11076,
0x1108D,
0x110B0,
0x11107,
@@ -305518,6 +317715,8 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11240,
0x11284,
0x11287,
0x11288,
@@ -305552,6 +317751,8 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x1180A,
0x1182C,
0x1190C,
@@ -305575,17 +317776,23 @@ static const UV UNI_INSC__CONSONANT_invlist[] = { /* for all charsets */
0x11D6C,
0x11D8A,
0x11EE0,
- 0x11EF2
+ 0x11EF2,
+ 0x11F12,
+ 0x11F34
};
static const UV UNI_INSC__CONSONANTDEAD_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 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,
0x9CE,
0x9CF,
+ 0xC5D,
+ 0xC5E,
+ 0xCDD,
+ 0xCDE,
0xD54,
0xD57,
0xD7A,
@@ -305595,7 +317802,7 @@ static const UV UNI_INSC__CONSONANTDEAD_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__CONSONANTFINAL_invlist[] = { /* for all charsets */
- 23, /* Number of elements */
+ 29, /* 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 */
@@ -305608,6 +317815,10 @@ static const UV UNI_INSC__CONSONANTFINAL_invlist[] = { /* for all charsets */
0x19C8,
0x1A58,
0x1A5A,
+ 0x1B03,
+ 0x1B04,
+ 0x1B81,
+ 0x1B82,
0x1BBE,
0x1BC0,
0x1BF0,
@@ -305616,6 +317827,8 @@ static const UV UNI_INSC__CONSONANTFINAL_invlist[] = { /* for all charsets */
0x1C34,
0xA94F,
0xA953,
+ 0xA982,
+ 0xA983,
0xAA40,
0xAA4E,
0xABDB,
@@ -305825,7 +318038,7 @@ static const UV UNI_INSC__CONSONANTPLACEHOLDER_invlist[] = { /* for EBCDIC 037
# endif /* EBCDIC 037 */
static const UV UNI_INSC__CONSONANTPRECEDINGREPHA_invlist[] = { /* for all charsets */
- 7, /* Number of elements */
+ 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 */
@@ -305835,7 +318048,9 @@ static const UV UNI_INSC__CONSONANTPRECEDINGREPHA_invlist[] = { /* for all char
0x11941,
0x11942,
0x11D46,
- 0x11D47
+ 0x11D47,
+ 0x11F02,
+ 0x11F03
};
static const UV UNI_INSC__CONSONANTPREFIXED_invlist[] = { /* for all charsets */
@@ -305887,19 +318102,13 @@ static const UV UNI_INSC__CONSONANTSUBJOINED_invlist[] = { /* for all charsets
};
static const UV UNI_INSC__CONSONANTSUCCEEDINGREPHA_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 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,
0x17CC,
- 0x17CD,
- 0x1B03,
- 0x1B04,
- 0x1B81,
- 0x1B82,
- 0xA982,
- 0xA983
+ 0x17CD
};
static const UV UNI_INSC__CONSONANTWITHSTACKER_invlist[] = { /* for all charsets */
@@ -305919,13 +318128,15 @@ static const UV UNI_INSC__CONSONANTWITHSTACKER_invlist[] = { /* for all charset
};
static const UV UNI_INSC__GEMINATIONMARK_invlist[] = { /* for all charsets */
- 7, /* Number of elements */
+ 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,
0xA71,
0xA72,
+ 0xAFB,
+ 0xAFC,
0x11237,
0x11238,
0x11A98,
@@ -305933,7 +318144,7 @@ static const UV UNI_INSC__GEMINATIONMARK_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__INVISIBLESTACKER_invlist[] = { /* for all charsets */
- 25, /* Number of elements */
+ 27, /* 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 */
@@ -305961,7 +318172,9 @@ static const UV UNI_INSC__INVISIBLESTACKER_invlist[] = { /* for all charsets */
0x11D45,
0x11D46,
0x11D97,
- 0x11D98
+ 0x11D98,
+ 0x11F42,
+ 0x11F43
};
static const UV UNI_INSC__MODIFYINGLETTER_invlist[] = { /* for all charsets */
@@ -305985,7 +318198,7 @@ static const UV UNI_INSC__NONJOINER_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__NUKTA_invlist[] = { /* for all charsets */
- 53, /* Number of elements */
+ 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 */
@@ -306002,6 +318215,8 @@ static const UV UNI_INSC__NUKTA_invlist[] = { /* for all charsets */
0xB00,
0xB3C,
0xB3D,
+ 0xC3C,
+ 0xC3D,
0xCBC,
0xCBD,
0xF39,
@@ -306047,7 +318262,7 @@ static const UV UNI_INSC__NUKTA_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_INSC__NUMBER_invlist[] = { /* for ASCII/Latin1 */
- 91, /* Number of elements */
+ 93, /* 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 */
@@ -306141,7 +318356,9 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for ASCII/Latin1 */
0x11D50,
0x11D5A,
0x11DA0,
- 0x11DAA
+ 0x11DAA,
+ 0x11F50,
+ 0x11F5A
};
# endif /* ASCII/Latin1 */
@@ -306152,7 +318369,7 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 1047 */
- 91, /* Number of elements */
+ 93, /* 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 */
@@ -306246,7 +318463,9 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 1047 */
0x11D50,
0x11D5A,
0x11DA0,
- 0x11DAA
+ 0x11DAA,
+ 0x11F50,
+ 0x11F5A
};
# endif /* EBCDIC 1047 */
@@ -306257,7 +318476,7 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 037 */
- 91, /* Number of elements */
+ 93, /* 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 */
@@ -306351,7 +318570,9 @@ static const UV UNI_INSC__NUMBER_invlist[] = { /* for EBCDIC 037 */
0x11D50,
0x11D5A,
0x11DA0,
- 0x11DAA
+ 0x11DAA,
+ 0x11F50,
+ 0x11F5A
};
# endif /* EBCDIC 037 */
@@ -306369,7 +318590,7 @@ static const UV UNI_INSC__NUMBERJOINER_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
- 643, /* Number of elements */
+ 655, /* 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 */
@@ -306552,7 +318773,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -306562,6 +318783,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -306586,14 +318809,14 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -306665,7 +318888,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0xEC8,
0xECC,
0xECD,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -306699,10 +318922,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0x1050,
0x109E,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -306747,7 +318968,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0x1A90,
0x1A9A,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B80,
@@ -306841,9 +319062,11 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11047,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11135,
0x11136,
@@ -306865,7 +319088,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -306938,6 +319161,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0x1172C,
0x11730,
0x1173C,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x11900,
@@ -307015,7 +319240,15 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
0x11DA0,
0x11DAA,
0x11EE0,
- 0x11EF7
+ 0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A
};
# endif /* ASCII/Latin1 */
@@ -307026,7 +319259,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
- 643, /* Number of elements */
+ 655, /* 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 */
@@ -307209,7 +319442,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -307219,6 +319452,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -307243,14 +319478,14 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -307322,7 +319557,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0xEC8,
0xECC,
0xECD,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -307356,10 +319591,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0x1050,
0x109E,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -307404,7 +319637,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0x1A90,
0x1A9A,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B80,
@@ -307498,9 +319731,11 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11135,
0x11136,
@@ -307522,7 +319757,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -307595,6 +319830,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0x1172C,
0x11730,
0x1173C,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x11900,
@@ -307672,7 +319909,15 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
0x11DA0,
0x11DAA,
0x11EE0,
- 0x11EF7
+ 0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A
};
# endif /* EBCDIC 1047 */
@@ -307683,7 +319928,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
- 643, /* Number of elements */
+ 655, /* 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 */
@@ -307866,7 +320111,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -307876,6 +320121,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -307900,14 +320147,14 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -307979,7 +320226,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0xEC8,
0xECC,
0xECD,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -308013,10 +320260,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0x1050,
0x109E,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -308061,7 +320306,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0x1A90,
0x1A9A,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B80,
@@ -308155,9 +320400,11 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11135,
0x11136,
@@ -308179,7 +320426,7 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -308252,6 +320499,8 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0x1172C,
0x11730,
0x1173C,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x11900,
@@ -308329,13 +320578,21 @@ static const UV UNI_INSC__OTHER_invlist[] = { /* for EBCDIC 037 */
0x11DA0,
0x11DAA,
0x11EE0,
- 0x11EF7
+ 0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A
};
# endif /* EBCDIC 037 */
static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */
- 43, /* Number of elements */
+ 47, /* 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 */
@@ -308353,7 +320610,7 @@ static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */
0x103A,
0x103B,
0x1714,
- 0x1715,
+ 0x1716,
0x1734,
0x1735,
0x17D1,
@@ -308370,6 +320627,8 @@ static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */
0xA954,
0xABED,
0xABEE,
+ 0x11070,
+ 0x11071,
0x11134,
0x11135,
0x112EA,
@@ -308381,7 +320640,9 @@ static const UV UNI_INSC__PUREKILLER_invlist[] = { /* for all charsets */
0x11A34,
0x11A35,
0x11D44,
- 0x11D45
+ 0x11D45,
+ 0x11F41,
+ 0x11F42
};
static const UV UNI_INSC__REGISTERSHIFTER_invlist[] = { /* for all charsets */
@@ -308397,7 +320658,7 @@ static const UV UNI_INSC__REGISTERSHIFTER_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for ASCII/Latin1 */
- 39, /* Number of elements */
+ 41, /* 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 */
@@ -308406,6 +320667,8 @@ static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for ASCII/Latin1 */
0xB4,
0x9FE,
0x9FF,
+ 0xECE,
+ 0xECF,
0xF35,
0xF36,
0xF37,
@@ -308450,7 +320713,7 @@ static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for EBCDIC 1047 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -308461,6 +320724,8 @@ static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for EBCDIC 1047 */
0xFB,
0x9FE,
0x9FF,
+ 0xECE,
+ 0xECF,
0xF35,
0xF36,
0xF37,
@@ -308505,7 +320770,7 @@ static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for EBCDIC 037 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -308516,6 +320781,8 @@ static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = { /* for EBCDIC 037 */
0xFB,
0x9FE,
0x9FF,
+ 0xECE,
+ 0xECF,
0xF35,
0xF36,
0xF37,
@@ -308669,7 +320936,7 @@ static const UV UNI_INSC__VIRAMA_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__VISARGA_invlist[] = { /* for all charsets */
- 71, /* Number of elements */
+ 73, /* 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 */
@@ -308743,7 +321010,9 @@ static const UV UNI_INSC__VISARGA_invlist[] = { /* for all charsets */
0x11D41,
0x11D42,
0x11D96,
- 0x11D97
+ 0x11D97,
+ 0x11F03,
+ 0x11F04
};
static const UV UNI_INSC__VOWEL_invlist[] = { /* for all charsets */
@@ -308765,7 +321034,7 @@ static const UV UNI_INSC__VOWEL_invlist[] = { /* for all charsets */
};
static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */
- 265, /* Number of elements */
+ 275, /* 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 */
@@ -308950,8 +321219,12 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */
0x10A0E,
0x11038,
0x11046,
+ 0x11073,
+ 0x11075,
0x110B0,
0x110B9,
+ 0x110C2,
+ 0x110C3,
0x11127,
0x11133,
0x11145,
@@ -308964,6 +321237,8 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */
0x111CF,
0x1122C,
0x11234,
+ 0x11241,
+ 0x11242,
0x112E0,
0x112E9,
0x1133E,
@@ -309033,11 +321308,15 @@ static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = { /* for all charsets */
0x11D93,
0x11D95,
0x11EF3,
- 0x11EF7
+ 0x11EF7,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F41
};
static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */
- 175, /* Number of elements */
+ 181, /* 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 */
@@ -309154,6 +321433,8 @@ static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */
0xABD2,
0x11005,
0x11013,
+ 0x11071,
+ 0x11073,
0x11083,
0x1108D,
0x11103,
@@ -309162,6 +321443,8 @@ static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */
0x11191,
0x11200,
0x11208,
+ 0x11240,
+ 0x11241,
0x11280,
0x11284,
0x112B0,
@@ -309215,7 +321498,9 @@ static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = { /* for all charsets */
0x11D67,
0x11D69,
0x11D6A,
- 0x11D6C
+ 0x11D6C,
+ 0x11F04,
+ 0x11F11
};
static const UV UNI_INSIDDHAM_invlist[] = { /* for all charsets */
@@ -309368,6 +321653,16 @@ static const UV UNI_INTAMIL_invlist[] = { /* for all charsets */
0xC00
};
+static const UV UNI_INTANGSA_invlist[] = { /* for all charsets */
+ 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,
+ 0x16A70,
+ 0x16AD0
+};
+
static const UV UNI_INTANGUT_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -309438,6 +321733,16 @@ static const UV UNI_INTIRHUTA_invlist[] = { /* for all charsets */
0x114E0
};
+static const UV UNI_INTOTO_invlist[] = { /* for all charsets */
+ 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,
+ 0x1E290,
+ 0x1E2C0
+};
+
static const UV UNI_INUGARITIC_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -309458,6 +321763,16 @@ static const UV UNI_INVAI_invlist[] = { /* for all charsets */
0xA640
};
+static const UV UNI_INVITHKUQI_invlist[] = { /* for all charsets */
+ 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,
+ 0x10570,
+ 0x105C0
+};
+
static const UV UNI_INVS_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -309637,7 +321952,7 @@ static const UV UNI_JG__ALAPH_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__ALEF_invlist[] = { /* for all charsets */
- 13, /* Number of elements */
+ 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 */
@@ -309653,7 +321968,9 @@ static const UV UNI_JG__ALEF_invlist[] = { /* for all charsets */
0x675,
0x676,
0x773,
- 0x775
+ 0x775,
+ 0x870,
+ 0x883
};
static const UV UNI_JG__BEH_invlist[] = { /* for all charsets */
@@ -309797,7 +322114,7 @@ static const UV UNI_JG__FINALSEMKATH_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__GAF_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 19, /* 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 */
@@ -309812,10 +322129,14 @@ static const UV UNI_JG__GAF_invlist[] = { /* for all charsets */
0x6B5,
0x762,
0x765,
+ 0x88D,
+ 0x88E,
0x8B0,
0x8B1,
0x8C2,
- 0x8C3
+ 0x8C3,
+ 0x8C8,
+ 0x8C9
};
static const UV UNI_JG__GAMAL_invlist[] = { /* for all charsets */
@@ -309831,7 +322152,7 @@ static const UV UNI_JG__GAMAL_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__HAH_invlist[] = { /* for all charsets */
- 21, /* Number of elements */
+ 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 */
@@ -309850,6 +322171,8 @@ static const UV UNI_JG__HAH_invlist[] = { /* for all charsets */
0x773,
0x77C,
0x77D,
+ 0x88A,
+ 0x88B,
0x8A2,
0x8A3,
0x8C1,
@@ -310419,7 +322742,7 @@ static const UV UNI_JG__MIM_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__NOJOININGGROUP_invlist[] = { /* for all charsets */
- 61, /* Number of elements */
+ 65, /* 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 */
@@ -310452,12 +322775,16 @@ static const UV UNI_JG__NOJOININGGROUP_invlist[] = { /* for all charsets */
0x780,
0x860,
0x86B,
+ 0x870,
+ 0x883,
+ 0x886,
+ 0x887,
+ 0x889,
+ 0x88F,
0x8A0,
0x8AD,
0x8AE,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8C9,
0x10AC0,
0x10AC6,
0x10AC7,
@@ -310487,7 +322814,7 @@ static const UV UNI_JG__NOJOININGGROUP_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__NOON_invlist[] = { /* for all charsets */
- 7, /* Number of elements */
+ 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 */
@@ -310497,7 +322824,9 @@ static const UV UNI_JG__NOON_invlist[] = { /* for all charsets */
0x6B9,
0x6BD,
0x767,
- 0x76A
+ 0x76A,
+ 0x889,
+ 0x88A
};
static const UV UNI_JG__NUN_invlist[] = { /* for all charsets */
@@ -310531,7 +322860,7 @@ static const UV UNI_JG__PE_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__QAF_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 11, /* 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 */
@@ -310543,7 +322872,9 @@ static const UV UNI_JG__QAF_invlist[] = { /* for all charsets */
0x6A7,
0x6A9,
0x8A5,
- 0x8A6
+ 0x8A6,
+ 0x8B5,
+ 0x8B6
};
static const UV UNI_JG__QAPH_invlist[] = { /* for all charsets */
@@ -310701,7 +323032,7 @@ static const UV UNI_JG__SYRIACWAW_invlist[] = { /* for all charsets */
};
static const UV UNI_JG__TAH_invlist[] = { /* for all charsets */
- 7, /* Number of elements */
+ 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 */
@@ -310710,6 +323041,8 @@ static const UV UNI_JG__TAH_invlist[] = { /* for all charsets */
0x639,
0x69F,
0x6A0,
+ 0x88B,
+ 0x88D,
0x8A3,
0x8A4
};
@@ -310748,6 +323081,26 @@ static const UV UNI_JG__TETH_invlist[] = { /* for all charsets */
0x71D
};
+static const UV UNI_JG__THINYEH_invlist[] = { /* for all charsets */
+ 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,
+ 0x886,
+ 0x887
+};
+
+static const UV UNI_JG__VERTICALTAIL_invlist[] = { /* for all charsets */
+ 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,
+ 0x88E,
+ 0x88F
+};
+
static const UV UNI_JG__WAW_invlist[] = { /* for all charsets */
15, /* Number of elements */
148565664, /* Version and data structure type */
@@ -310865,7 +323218,7 @@ static const UV UNI_JOINC_invlist[] = { /* for all charsets */
};
static const UV UNI_JT__C_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 11, /* 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 */
@@ -310874,6 +323227,8 @@ static const UV UNI_JT__C_invlist[] = { /* for all charsets */
0x641,
0x7FA,
0x7FB,
+ 0x883,
+ 0x886,
0x180A,
0x180B,
0x200D,
@@ -310881,7 +323236,7 @@ static const UV UNI_JT__C_invlist[] = { /* for all charsets */
};
static const UV UNI_JT__D_invlist[] = { /* for all charsets */
- 145, /* Number of elements */
+ 151, /* 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 */
@@ -310958,16 +323313,18 @@ static const UV UNI_JT__D_invlist[] = { /* for all charsets */
0x866,
0x868,
0x869,
+ 0x886,
+ 0x887,
+ 0x889,
+ 0x88E,
0x8A0,
0x8AA,
0x8AF,
0x8B1,
0x8B3,
- 0x8B5,
- 0x8B6,
0x8B9,
0x8BA,
- 0x8C8,
+ 0x8C9,
0x1807,
0x1808,
0x1820,
@@ -311012,6 +323369,10 @@ static const UV UNI_JT__D_invlist[] = { /* for all charsets */
0x10F45,
0x10F51,
0x10F54,
+ 0x10F70,
+ 0x10F74,
+ 0x10F76,
+ 0x10F82,
0x10FB0,
0x10FB1,
0x10FB2,
@@ -311051,7 +323412,7 @@ static const UV UNI_JT__L_invlist[] = { /* for all charsets */
};
static const UV UNI_JT__R_invlist[] = { /* for all charsets */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -311126,6 +323487,10 @@ static const UV UNI_JT__R_invlist[] = { /* for all charsets */
0x868,
0x869,
0x86B,
+ 0x870,
+ 0x883,
+ 0x88E,
+ 0x88F,
0x8AA,
0x8AD,
0x8AE,
@@ -311170,6 +323535,8 @@ static const UV UNI_JT__R_invlist[] = { /* for all charsets */
0x10F34,
0x10F54,
0x10F55,
+ 0x10F74,
+ 0x10F76,
0x10FB4,
0x10FB7,
0x10FB9,
@@ -311185,7 +323552,7 @@ static const UV UNI_JT__R_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
- 677, /* Number of elements */
+ 713, /* 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 */
@@ -311244,7 +323611,9 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -311326,6 +323695,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -311377,7 +323748,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -311425,7 +323796,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -311442,6 +323813,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -311473,7 +323846,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -311519,8 +323892,6 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -311646,18 +324017,28 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -311682,6 +324063,8 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -311804,8 +324187,18 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -311820,6 +324213,10 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -311852,10 +324249,16 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -311876,7 +324279,7 @@ static const UV UNI_JT__T_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
- 677, /* Number of elements */
+ 713, /* 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 */
@@ -311935,7 +324338,9 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -312017,6 +324422,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -312068,7 +324475,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -312116,7 +324523,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -312133,6 +324540,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -312164,7 +324573,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -312210,8 +324619,6 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -312337,18 +324744,28 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -312373,6 +324790,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -312495,8 +324914,18 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -312511,6 +324940,10 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -312543,10 +324976,16 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -312567,7 +325006,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
- 677, /* Number of elements */
+ 713, /* 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 */
@@ -312626,7 +325065,9 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -312708,6 +325149,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -312759,7 +325202,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -312807,7 +325250,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -312824,6 +325267,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -312855,7 +325300,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -312901,8 +325346,6 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -313028,18 +325471,28 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -313064,6 +325517,8 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -313186,8 +325641,18 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -313202,6 +325667,10 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -313234,10 +325703,16 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -313255,7 +325730,7 @@ static const UV UNI_JT__T_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
- 727, /* Number of elements */
+ 763, /* 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 */
@@ -313328,13 +325803,15 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x866,
0x867,
0x86B,
- 0x8A0,
+ 0x870,
+ 0x887,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8AD,
0x8AE,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8C9,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -313416,6 +325893,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -313467,7 +325946,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -313515,7 +325994,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -313534,6 +326013,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x1808,
0x180A,
0x180E,
+ 0x180F,
+ 0x1810,
0x1820,
0x1879,
0x1885,
@@ -313565,7 +326046,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -313611,8 +326092,6 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -313754,10 +326233,14 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F30,
0x10F45,
0x10F46,
0x10F55,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FB1,
0x10FB2,
@@ -313772,12 +326255,18 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -313802,6 +326291,8 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -313924,8 +326415,18 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -313940,6 +326441,10 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -313972,10 +326477,16 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E900,
@@ -313996,7 +326507,7 @@ static const UV UNI_JT__U_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
- 727, /* Number of elements */
+ 763, /* 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 */
@@ -314069,13 +326580,15 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x866,
0x867,
0x86B,
- 0x8A0,
+ 0x870,
+ 0x887,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8AD,
0x8AE,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8C9,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -314157,6 +326670,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -314208,7 +326723,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -314256,7 +326771,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -314275,6 +326790,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x1808,
0x180A,
0x180E,
+ 0x180F,
+ 0x1810,
0x1820,
0x1879,
0x1885,
@@ -314306,7 +326823,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -314352,8 +326869,6 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -314495,10 +327010,14 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F30,
0x10F45,
0x10F46,
0x10F55,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FB1,
0x10FB2,
@@ -314513,12 +327032,18 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -314543,6 +327068,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -314665,8 +327192,18 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -314681,6 +327218,10 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -314713,10 +327254,16 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E900,
@@ -314737,7 +327284,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
- 727, /* Number of elements */
+ 763, /* 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 */
@@ -314810,13 +327357,15 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x866,
0x867,
0x86B,
- 0x8A0,
+ 0x870,
+ 0x887,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8AD,
0x8AE,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x8C9,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -314898,6 +327447,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -314949,7 +327500,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -314997,7 +327548,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -315016,6 +327567,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x1808,
0x180A,
0x180E,
+ 0x180F,
+ 0x1810,
0x1820,
0x1879,
0x1885,
@@ -315047,7 +327600,7 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -315093,8 +327646,6 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200B,
0x200C,
@@ -315236,10 +327787,14 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F30,
0x10F45,
0x10F46,
0x10F55,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FB1,
0x10FB2,
@@ -315254,12 +327809,18 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -315284,6 +327845,8 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -315406,8 +327969,18 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
0x13430,
- 0x13439,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -315422,6 +327995,10 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D173,
@@ -315454,10 +328031,16 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E900,
@@ -315472,6 +328055,16 @@ static const UV UNI_JT__U_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
+static const UV UNI_KAKTOVIKNUMERALS_invlist[] = { /* for all charsets */
+ 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,
+ 0x1D2C0,
+ 0x1D2E0
+};
+
static const UV UNI_KALI_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -315483,7 +328076,7 @@ static const UV UNI_KALI_invlist[] = { /* for all charsets */
};
static const UV UNI_KANA_invlist[] = { /* for all charsets */
- 31, /* Number of elements */
+ 41, /* 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 */
@@ -315514,8 +328107,18 @@ static const UV UNI_KANA_invlist[] = { /* for all charsets */
0xFE47,
0xFF61,
0xFFA0,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168
};
@@ -315530,6 +328133,16 @@ static const UV UNI_KANAEXTA_invlist[] = { /* for all charsets */
0x1B130
};
+static const UV UNI_KANAEXTB_invlist[] = { /* for all charsets */
+ 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,
+ 0x1AFF0,
+ 0x1B000
+};
+
static const UV UNI_KANASUP_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -315570,6 +328183,20 @@ static const UV UNI_KATAKANAEXT_invlist[] = { /* for all charsets */
0x3200
};
+static const UV UNI_KAWI_invlist[] = { /* for all charsets */
+ 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 */
+ 0x0,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A
+};
+
static const UV UNI_KHAR_invlist[] = { /* for all charsets */
17, /* Number of elements */
148565664, /* Version and data structure type */
@@ -315633,7 +328260,7 @@ static const UV UNI_KHOJ_invlist[] = { /* for all charsets */
0x11200,
0x11212,
0x11213,
- 0x1123F
+ 0x11242
};
static const UV UNI_KITS_invlist[] = { /* for all charsets */
@@ -315676,14 +328303,14 @@ static const UV UNI_KNDA_invlist[] = { /* for all charsets */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0x1CD0,
0x1CD1,
0x1CD2,
@@ -315709,7 +328336,7 @@ static const UV UNI_KTHI_invlist[] = { /* for all charsets */
0xA830,
0xA83A,
0x11080,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE
};
@@ -315717,7 +328344,7 @@ static const UV UNI_KTHI_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
- 1245, /* Number of elements */
+ 1319, /* 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 */
@@ -315820,10 +328447,12 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -315952,6 +328581,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -315968,7 +328599,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -316111,10 +328742,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -316157,7 +328786,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -316259,10 +328888,6 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -316323,8 +328948,6 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -316345,10 +328968,14 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -316524,12 +329151,34 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -316600,12 +329249,18 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -316632,6 +329287,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -316688,6 +329345,8 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -316726,7 +329385,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -316754,20 +329413,32 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -316796,10 +329467,20 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -316872,14 +329553,32 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -316953,9 +329652,9 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -316965,7 +329664,9 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -316976,7 +329677,7 @@ static const UV UNI_L_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
- 1271, /* Number of elements */
+ 1345, /* 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 */
@@ -317105,10 +329806,12 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -317237,6 +329940,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -317253,7 +329958,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -317396,10 +330101,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -317442,7 +330145,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -317544,10 +330247,6 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -317608,8 +330307,6 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -317630,10 +330327,14 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -317809,12 +330510,34 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -317885,12 +330608,18 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -317917,6 +330646,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -317973,6 +330704,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -318011,7 +330744,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -318039,20 +330772,32 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -318081,10 +330826,20 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -318157,14 +330912,32 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -318238,9 +331011,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -318250,7 +331023,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -318261,7 +331036,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
- 1267, /* Number of elements */
+ 1341, /* 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 */
@@ -318386,10 +331161,12 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -318518,6 +331295,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -318534,7 +331313,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -318677,10 +331456,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -318723,7 +331500,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -318825,10 +331602,6 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x2183,
0x2185,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -318889,8 +331662,6 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -318911,10 +331682,14 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -319090,12 +331865,34 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -319166,12 +331963,18 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -319198,6 +332001,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -319254,6 +332059,8 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -319292,7 +332099,7 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -319320,20 +332127,32 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -319362,10 +332181,20 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -319438,14 +332267,32 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -319519,9 +332366,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -319531,7 +332378,9 @@ static const UV UNI_L_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -319577,7 +332426,7 @@ static const UV UNI_LAO_invlist[] = { /* for all charsets */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -319798,10 +332647,30 @@ static const UV UNI_LATINEXTE_invlist[] = { /* for all charsets */
0xAB70
};
+static const UV UNI_LATINEXTF_invlist[] = { /* for all charsets */
+ 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,
+ 0x10780,
+ 0x107C0
+};
+
+static const UV UNI_LATINEXTG_invlist[] = { /* for all charsets */
+ 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,
+ 0x1DF00,
+ 0x1E000
+};
+
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */
- 81, /* Number of elements */
+ 95, /* 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 */
@@ -319867,10 +332736,14 @@ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xA92E,
0xA92F,
@@ -319885,7 +332758,17 @@ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */
0xFF21,
0xFF3B,
0xFF41,
- 0xFF5B
+ 0xFF5B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B
};
# endif /* ASCII/Latin1 */
@@ -319896,7 +332779,7 @@ static const UV UNI_LATN_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */
- 107, /* Number of elements */
+ 121, /* 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 */
@@ -319988,10 +332871,14 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xA92E,
0xA92F,
@@ -320006,7 +332893,17 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */
0xFF21,
0xFF3B,
0xFF41,
- 0xFF5B
+ 0xFF5B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B
};
# endif /* EBCDIC 1047 */
@@ -320017,7 +332914,7 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LATN_invlist[] = { /* for EBCDIC 037 */
- 103, /* Number of elements */
+ 117, /* 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 */
@@ -320105,10 +333002,14 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xA92E,
0xA92F,
@@ -320123,7 +333024,17 @@ static const UV UNI_LATN_invlist[] = { /* for EBCDIC 037 */
0xFF21,
0xFF3B,
0xFF41,
- 0xFF5B
+ 0xFF5B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B
};
# endif /* EBCDIC 037 */
@@ -320839,7 +333750,7 @@ static const UV UNI_LB__AI_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
- 1541, /* Number of elements */
+ 1613, /* 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 */
@@ -320964,10 +333875,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x860,
0x86B,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -321110,6 +334023,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC78,
@@ -321126,7 +334041,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -321255,10 +334170,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -321297,7 +334210,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B5C,
0x1B5D,
0x1B61,
@@ -321378,8 +334291,6 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x2044,
0x204A,
0x2056,
- 0x2057,
- 0x2058,
0x205C,
0x205D,
0x2061,
@@ -321595,10 +334506,6 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CEF,
0x2CF2,
0x2CF4,
@@ -321673,10 +334580,14 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0xA6F2,
0xA6F3,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -321747,17 +334658,19 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0xFB29,
0xFB2A,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
- 0xFD50,
+ 0xFD40,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
0xFDFC,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE70,
0xFE75,
0xFE76,
@@ -321819,13 +334732,33 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -321906,6 +334839,10 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x10F46,
0x10F51,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -321916,6 +334853,10 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1104E,
0x11052,
0x11066,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110BB,
@@ -321958,6 +334899,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1123B,
0x1123D,
0x1123E,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -322015,7 +334958,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x11680,
0x116AB,
0x116B8,
- 0x116B9,
+ 0x116BA,
0x11800,
0x1182C,
0x1183B,
@@ -322062,7 +335005,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -322094,6 +335037,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x11EF3,
0x11EF7,
0x11EF9,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -322106,6 +335055,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
0x13258,
0x1325E,
@@ -322115,7 +335066,9 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1328A,
0x13379,
0x1337C,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x145CE,
0x145D0,
@@ -322124,6 +335077,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -322150,6 +335105,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x16FA0,
0x18B00,
0x18CD6,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1BC00,
0x1BC6B,
0x1BC70,
@@ -322160,6 +335121,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -322173,11 +335136,13 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -322236,14 +335201,32 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
0x1DA87,
0x1DA8B,
0x1DA8C,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -322394,7 +335377,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
- 1569, /* Number of elements */
+ 1641, /* 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 */
@@ -322547,10 +335530,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x860,
0x86B,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -322693,6 +335678,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC78,
@@ -322709,7 +335696,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -322838,10 +335825,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -322880,7 +335865,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B5C,
0x1B5D,
0x1B61,
@@ -322961,8 +335946,6 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x2044,
0x204A,
0x2056,
- 0x2057,
- 0x2058,
0x205C,
0x205D,
0x2061,
@@ -323178,10 +336161,6 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CEF,
0x2CF2,
0x2CF4,
@@ -323256,10 +336235,14 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0xA6F2,
0xA6F3,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -323330,17 +336313,19 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0xFB29,
0xFB2A,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
- 0xFD50,
+ 0xFD40,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
0xFDFC,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE70,
0xFE75,
0xFE76,
@@ -323402,13 +336387,33 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -323489,6 +336494,10 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x10F46,
0x10F51,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -323499,6 +336508,10 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1104E,
0x11052,
0x11066,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110BB,
@@ -323541,6 +336554,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1123B,
0x1123D,
0x1123E,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -323598,7 +336613,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x11680,
0x116AB,
0x116B8,
- 0x116B9,
+ 0x116BA,
0x11800,
0x1182C,
0x1183B,
@@ -323645,7 +336660,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -323677,6 +336692,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x11EF3,
0x11EF7,
0x11EF9,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -323689,6 +336710,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
0x13258,
0x1325E,
@@ -323698,7 +336721,9 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1328A,
0x13379,
0x1337C,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x145CE,
0x145D0,
@@ -323707,6 +336732,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -323733,6 +336760,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x16FA0,
0x18B00,
0x18CD6,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1BC00,
0x1BC6B,
0x1BC70,
@@ -323743,6 +336776,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -323756,11 +336791,13 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -323819,14 +336856,32 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
0x1DA87,
0x1DA8B,
0x1DA8C,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -323977,7 +337032,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
- 1565, /* Number of elements */
+ 1637, /* 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 */
@@ -324126,10 +337181,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x860,
0x86B,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -324272,6 +337329,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC78,
@@ -324288,7 +337347,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -324417,10 +337476,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -324459,7 +337516,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B5C,
0x1B5D,
0x1B61,
@@ -324540,8 +337597,6 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x2044,
0x204A,
0x2056,
- 0x2057,
- 0x2058,
0x205C,
0x205D,
0x2061,
@@ -324757,10 +337812,6 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CEF,
0x2CF2,
0x2CF4,
@@ -324835,10 +337886,14 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0xA6F2,
0xA6F3,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -324909,17 +337964,19 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0xFB29,
0xFB2A,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
- 0xFD50,
+ 0xFD40,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
0xFDFC,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFE70,
0xFE75,
0xFE76,
@@ -324981,13 +338038,33 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -325068,6 +338145,10 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x10F46,
0x10F51,
0x10F5A,
+ 0x10F70,
+ 0x10F82,
+ 0x10F86,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -325078,6 +338159,10 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1104E,
0x11052,
0x11066,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110BB,
@@ -325120,6 +338205,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1123B,
0x1123D,
0x1123E,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -325177,7 +338264,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x11680,
0x116AB,
0x116B8,
- 0x116B9,
+ 0x116BA,
0x11800,
0x1182C,
0x1183B,
@@ -325224,7 +338311,7 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -325256,6 +338343,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x11EF3,
0x11EF7,
0x11EF9,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -325268,6 +338361,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
0x13258,
0x1325E,
@@ -325277,7 +338372,9 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1328A,
0x13379,
0x1337C,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x145CE,
0x145D0,
@@ -325286,6 +338383,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -325312,6 +338411,12 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x16FA0,
0x18B00,
0x18CD6,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1BC00,
0x1BC6B,
0x1BC70,
@@ -325322,6 +338427,8 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -325335,11 +338442,13 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -325398,14 +338507,32 @@ static const UV UNI_LB__AL_invlist[] = { /* for EBCDIC 037 */
0x1DA87,
0x1DA8B,
0x1DA8C,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -325565,7 +338692,7 @@ static const UV UNI_LB__B2_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */
- 197, /* Number of elements */
+ 203, /* 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 */
@@ -325620,6 +338747,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */
0x1B5C,
0x1B5D,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C40,
0x1C7E,
@@ -325668,6 +338797,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E5D,
+ 0x2E5E,
0x3000,
0x3001,
0xA4FE,
@@ -325748,6 +338879,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */
0x11AA3,
0x11C41,
0x11C46,
+ 0x11F43,
+ 0x11F45,
0x11FFF,
0x12000,
0x12470,
@@ -325776,7 +338909,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */
- 197, /* Number of elements */
+ 203, /* 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 */
@@ -325831,6 +338964,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */
0x1B5C,
0x1B5D,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C40,
0x1C7E,
@@ -325879,6 +339014,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E5D,
+ 0x2E5E,
0x3000,
0x3001,
0xA4FE,
@@ -325959,6 +339096,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */
0x11AA3,
0x11C41,
0x11C46,
+ 0x11F43,
+ 0x11F45,
0x11FFF,
0x12000,
0x12470,
@@ -325987,7 +339126,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */
- 197, /* Number of elements */
+ 203, /* 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 */
@@ -326042,6 +339181,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */
0x1B5C,
0x1B5D,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C40,
0x1C7E,
@@ -326090,6 +339231,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E5D,
+ 0x2E5E,
0x3000,
0x3001,
0xA4FE,
@@ -326170,6 +339313,8 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */
0x11AA3,
0x11C41,
0x11C46,
+ 0x11F43,
+ 0x11F45,
0x11FFF,
0x12000,
0x12470,
@@ -326195,7 +339340,7 @@ static const UV UNI_LB__BA_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__BB_invlist[] = { /* for ASCII/Latin1 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -326246,6 +339391,8 @@ static const UV UNI_LB__BB_invlist[] = { /* for ASCII/Latin1 */
0x11A46,
0x11A9E,
0x11AA1,
+ 0x11B00,
+ 0x11B0A,
0x11C70,
0x11C71
};
@@ -326258,7 +339405,7 @@ static const UV UNI_LB__BB_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__BB_invlist[] = { /* for EBCDIC 1047 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -326309,6 +339456,8 @@ static const UV UNI_LB__BB_invlist[] = { /* for EBCDIC 1047 */
0x11A46,
0x11A9E,
0x11AA1,
+ 0x11B00,
+ 0x11B0A,
0x11C70,
0x11C71
};
@@ -326321,7 +339470,7 @@ static const UV UNI_LB__BB_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__BB_invlist[] = { /* for EBCDIC 037 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -326372,6 +339521,8 @@ static const UV UNI_LB__BB_invlist[] = { /* for EBCDIC 037 */
0x11A46,
0x11A9E,
0x11AA1,
+ 0x11B00,
+ 0x11B0A,
0x11C70,
0x11C71
};
@@ -326443,7 +339594,7 @@ static const UV UNI_LB__CB_invlist[] = { /* for all charsets */
};
static const UV UNI_LB__CJ_invlist[] = { /* for all charsets */
- 55, /* Number of elements */
+ 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 */
@@ -326498,8 +339649,12 @@ static const UV UNI_LB__CJ_invlist[] = { /* for all charsets */
0x3200,
0xFF67,
0xFF71,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168
};
@@ -326507,7 +339662,7 @@ static const UV UNI_LB__CJ_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__CL_invlist[] = { /* for ASCII/Latin1 */
- 167, /* Number of elements */
+ 179, /* 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 */
@@ -326594,6 +339749,14 @@ static const UV UNI_LB__CL_invlist[] = { /* for ASCII/Latin1 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3001,
0x3003,
0x3009,
@@ -326676,6 +339839,10 @@ static const UV UNI_LB__CL_invlist[] = { /* for ASCII/Latin1 */
0x1337C,
0x13438,
0x13439,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
+ 0x13440,
0x145CF,
0x145D0
};
@@ -326688,7 +339855,7 @@ static const UV UNI_LB__CL_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 1047 */
- 167, /* Number of elements */
+ 179, /* 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 */
@@ -326775,6 +339942,14 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 1047 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3001,
0x3003,
0x3009,
@@ -326857,6 +340032,10 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 1047 */
0x1337C,
0x13438,
0x13439,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
+ 0x13440,
0x145CF,
0x145D0
};
@@ -326869,7 +340048,7 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 037 */
- 167, /* Number of elements */
+ 179, /* 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 */
@@ -326956,6 +340135,14 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 037 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3001,
0x3003,
0x3009,
@@ -327038,6 +340225,10 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 037 */
0x1337C,
0x13438,
0x13439,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
+ 0x13440,
0x145CF,
0x145D0
};
@@ -327047,7 +340238,7 @@ static const UV UNI_LB__CL_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
- 556, /* Number of elements */
+ 600, /* 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 */
@@ -327113,7 +340304,9 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -327197,6 +340390,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -327221,6 +340416,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -327272,7 +340469,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -327281,6 +340478,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x1774,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -327294,7 +340493,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -327320,8 +340519,10 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x1E00,
0x200C,
0x200D,
@@ -327423,16 +340624,26 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -327453,6 +340664,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -327545,6 +340758,18 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -327561,6 +340786,10 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -327593,10 +340822,16 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -327617,7 +340852,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
- 560, /* Number of elements */
+ 604, /* 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 */
@@ -327687,7 +340922,9 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -327771,6 +341008,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -327795,6 +341034,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -327846,7 +341087,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -327855,6 +341096,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x1774,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -327868,7 +341111,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -327894,8 +341137,10 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x1E00,
0x200C,
0x200D,
@@ -327997,16 +341242,26 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -328027,6 +341282,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -328119,6 +341376,18 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -328135,6 +341404,10 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -328167,10 +341440,16 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -328191,7 +341470,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
- 560, /* Number of elements */
+ 604, /* 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 */
@@ -328261,7 +341540,9 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -328345,6 +341626,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -328369,6 +341652,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -328420,7 +341705,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -328429,6 +341714,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x1774,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -328442,7 +341729,7 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -328468,8 +341755,10 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x1E00,
0x200C,
0x200D,
@@ -328571,16 +341860,26 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -328601,6 +341900,8 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -328693,6 +341994,18 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -328709,6 +342022,10 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -328741,10 +342058,16 @@ static const UV UNI_LB__CM_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -328864,7 +342187,7 @@ static const UV UNI_LB__CR_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__EX_invlist[] = { /* for ASCII/Latin1 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -328877,7 +342200,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for ASCII/Latin1 */
0x5C7,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -328901,6 +342224,8 @@ static const UV UNI_LB__EX_invlist[] = { /* for ASCII/Latin1 */
0x2CFF,
0x2E2E,
0x2E2F,
+ 0x2E53,
+ 0x2E55,
0xA60E,
0xA60F,
0xA876,
@@ -328927,7 +342252,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 1047 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -328940,7 +342265,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 1047 */
0x5C7,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -328964,6 +342289,8 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 1047 */
0x2CFF,
0x2E2E,
0x2E2F,
+ 0x2E53,
+ 0x2E55,
0xA60E,
0xA60F,
0xA876,
@@ -328990,7 +342317,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 037 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -329003,7 +342330,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 037 */
0x5C7,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -329027,6 +342354,8 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 037 */
0x2CFF,
0x2E2E,
0x2E2F,
+ 0x2E53,
+ 0x2E55,
0xA60E,
0xA60F,
0xA876,
@@ -329050,7 +342379,7 @@ static const UV UNI_LB__EX_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */
- 27, /* Number of elements */
+ 33, /* 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 */
@@ -329071,6 +342400,10 @@ static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */
0xFDB,
0x180E,
0x180F,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x2007,
0x2008,
0x2011,
@@ -329079,6 +342412,8 @@ static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */
0x2030,
0x13430,
0x13437,
+ 0x13439,
+ 0x1343C,
0x16FE4,
0x16FE5
};
@@ -329091,7 +342426,7 @@ static const UV UNI_LB__GL_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */
- 27, /* Number of elements */
+ 33, /* 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 */
@@ -329112,6 +342447,10 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */
0xFDB,
0x180E,
0x180F,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x2007,
0x2008,
0x2011,
@@ -329120,6 +342459,8 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */
0x2030,
0x13430,
0x13437,
+ 0x13439,
+ 0x1343C,
0x16FE4,
0x16FE5
};
@@ -329132,7 +342473,7 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 037 */
- 27, /* Number of elements */
+ 33, /* 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 */
@@ -329153,6 +342494,10 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 037 */
0xFDB,
0x180E,
0x180F,
+ 0x1DCD,
+ 0x1DCE,
+ 0x1DFC,
+ 0x1DFD,
0x2007,
0x2008,
0x2011,
@@ -329161,6 +342506,8 @@ static const UV UNI_LB__GL_invlist[] = { /* for EBCDIC 037 */
0x2030,
0x13430,
0x13437,
+ 0x13439,
+ 0x1343C,
0x16FE4,
0x16FE5
};
@@ -330856,7 +344203,7 @@ static const UV UNI_LB__HY_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_LB__ID_invlist[] = { /* for all charsets */
- 331, /* Number of elements */
+ 337, /* 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 */
@@ -331051,6 +344398,8 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */
0xFFDD,
0xFFE2,
0xFFE5,
+ 0x11F45,
+ 0x11F50,
0x17000,
0x187F8,
0x18800,
@@ -331058,7 +344407,7 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
0x1B170,
0x1B2FC,
0x1F000,
@@ -331184,6 +344533,10 @@ static const UV UNI_LB__ID_invlist[] = { /* for all charsets */
0x1F9DE,
0x1FA00,
0x1FA54,
+ 0x1FAC3,
+ 0x1FAC6,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FC00,
0x1FFFE,
@@ -331456,7 +344809,7 @@ static const UV UNI_LB__NS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */
- 123, /* Number of elements */
+ 129, /* 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 */
@@ -331569,8 +344922,12 @@ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -331579,6 +344936,8 @@ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -331593,7 +344952,7 @@ static const UV UNI_LB__NU_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */
- 123, /* Number of elements */
+ 129, /* 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 */
@@ -331706,8 +345065,12 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -331716,6 +345079,8 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -331730,7 +345095,7 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */
- 123, /* Number of elements */
+ 129, /* 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 */
@@ -331843,8 +345208,12 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -331853,6 +345222,8 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -331864,7 +345235,7 @@ static const UV UNI_LB__NU_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__OP_invlist[] = { /* for ASCII/Latin1 */
- 171, /* Number of elements */
+ 183, /* 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 */
@@ -331967,6 +345338,14 @@ static const UV UNI_LB__OP_invlist[] = { /* for ASCII/Latin1 */
0x2E29,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -332035,6 +345414,10 @@ static const UV UNI_LB__OP_invlist[] = { /* for ASCII/Latin1 */
0x1337A,
0x13437,
0x13438,
+ 0x1343C,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
0x145CE,
0x145CF,
0x1E95E,
@@ -332049,7 +345432,7 @@ static const UV UNI_LB__OP_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 1047 */
- 169, /* Number of elements */
+ 181, /* 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 */
@@ -332150,6 +345533,14 @@ static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 1047 */
0x2E29,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -332218,6 +345609,10 @@ static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 1047 */
0x1337A,
0x13437,
0x13438,
+ 0x1343C,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
0x145CE,
0x145CF,
0x1E95E,
@@ -332232,7 +345627,7 @@ static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 037 */
- 169, /* Number of elements */
+ 181, /* 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 */
@@ -332333,6 +345728,14 @@ static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 037 */
0x2E29,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -332401,6 +345804,10 @@ static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 037 */
0x1337A,
0x13437,
0x13438,
+ 0x1343C,
+ 0x1343D,
+ 0x1343E,
+ 0x1343F,
0x145CE,
0x145CF,
0x1E95E,
@@ -332412,7 +345819,7 @@ static const UV UNI_LB__OP_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__PO_invlist[] = { /* for ASCII/Latin1 */
- 47, /* Number of elements */
+ 51, /* 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 */
@@ -332435,6 +345842,8 @@ static const UV UNI_LB__PO_invlist[] = { /* for ASCII/Latin1 */
0xD7A,
0x2030,
0x2038,
+ 0x2057,
+ 0x2058,
0x20A7,
0x20A8,
0x20B6,
@@ -332443,6 +345852,8 @@ static const UV UNI_LB__PO_invlist[] = { /* for ASCII/Latin1 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x2103,
0x2104,
0x2109,
@@ -332473,7 +345884,7 @@ static const UV UNI_LB__PO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 1047 */
- 47, /* Number of elements */
+ 51, /* 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 */
@@ -332496,6 +345907,8 @@ static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 1047 */
0xD7A,
0x2030,
0x2038,
+ 0x2057,
+ 0x2058,
0x20A7,
0x20A8,
0x20B6,
@@ -332504,6 +345917,8 @@ static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 1047 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x2103,
0x2104,
0x2109,
@@ -332534,7 +345949,7 @@ static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 037 */
- 47, /* Number of elements */
+ 51, /* 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 */
@@ -332557,6 +345972,8 @@ static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 037 */
0xD7A,
0x2030,
0x2038,
+ 0x2057,
+ 0x2058,
0x20A7,
0x20A8,
0x20B6,
@@ -332565,6 +345982,8 @@ static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 037 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x2103,
0x2104,
0x2109,
@@ -332592,7 +346011,7 @@ static const UV UNI_LB__PO_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LB__PR_invlist[] = { /* for ASCII/Latin1 */
- 49, /* Number of elements */
+ 51, /* 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 */
@@ -332630,6 +346049,8 @@ static const UV UNI_LB__PR_invlist[] = { /* for ASCII/Latin1 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x20D0,
0x2116,
0x2117,
@@ -332655,7 +346076,7 @@ static const UV UNI_LB__PR_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LB__PR_invlist[] = { /* for EBCDIC 1047 */
- 51, /* Number of elements */
+ 53, /* 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 */
@@ -332695,6 +346116,8 @@ static const UV UNI_LB__PR_invlist[] = { /* for EBCDIC 1047 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x20D0,
0x2116,
0x2117,
@@ -332720,7 +346143,7 @@ static const UV UNI_LB__PR_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LB__PR_invlist[] = { /* for EBCDIC 037 */
- 51, /* Number of elements */
+ 53, /* 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 */
@@ -332760,6 +346183,8 @@ static const UV UNI_LB__PR_invlist[] = { /* for EBCDIC 037 */
0x20BC,
0x20BE,
0x20BF,
+ 0x20C0,
+ 0x20C1,
0x20D0,
0x2116,
0x2117,
@@ -332922,7 +346347,7 @@ static const UV UNI_LB__SA_invlist[] = { /* for all charsets */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xEDC,
0xEE0,
0x1000,
@@ -332970,7 +346395,7 @@ static const UV UNI_LB__SA_invlist[] = { /* for all charsets */
0x1173A,
0x1173C,
0x1173F,
- 0x11740
+ 0x11747
};
static const UV UNI_LB__SG_invlist[] = { /* for all charsets */
@@ -333092,7 +346517,7 @@ static const UV UNI_LB__WJ_invlist[] = { /* for all charsets */
};
static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
- 1266, /* Number of elements */
+ 1328, /* 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 */
@@ -333121,8 +346546,6 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -333140,11 +346563,11 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -333300,7 +346723,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -333310,6 +346733,8 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -333332,14 +346757,14 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -333399,7 +346824,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -333467,10 +346892,8 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -333487,8 +346910,6 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -333527,11 +346948,11 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -333547,8 +346968,6 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -333601,10 +347020,6 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -333635,7 +347050,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -333667,10 +347082,14 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -333739,16 +347158,14 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -333835,13 +347252,33 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -333924,10 +347361,12 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -333935,9 +347374,9 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -333957,7 +347396,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -334021,7 +347460,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -334029,7 +347468,7 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -334060,8 +347499,10 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -334104,6 +347545,12 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -334116,10 +347563,10 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -334129,7 +347576,9 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -334162,10 +347611,20 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -334180,14 +347639,22 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -334240,6 +347707,10 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -334250,6 +347721,10 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -334258,10 +347733,22 @@ static const UV UNI_LB__XX_invlist[] = { /* for all charsets */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -334515,7 +348002,7 @@ static const UV UNI_LISUSUP_invlist[] = { /* for all charsets */
};
static const UV UNI_LM_invlist[] = { /* for all charsets */
- 123, /* Number of elements */
+ 143, /* 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 */
@@ -334550,6 +348037,8 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */
0x825,
0x828,
0x829,
+ 0x8C9,
+ 0x8CA,
0x971,
0x972,
0xE46,
@@ -334610,6 +348099,8 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */
0xA771,
0xA788,
0xA789,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xA9CF,
@@ -334630,6 +348121,12 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */
0xFF71,
0xFF9E,
0xFFA0,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x16B40,
0x16B44,
0x16F93,
@@ -334638,8 +348135,18 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */
0x16FE2,
0x16FE3,
0x16FE4,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
+ 0x1E030,
+ 0x1E06E,
0x1E137,
0x1E13E,
+ 0x1E4EB,
+ 0x1E4EC,
0x1E94B,
0x1E94C
};
@@ -334647,7 +348154,7 @@ static const UV UNI_LM_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
- 979, /* Number of elements */
+ 1021, /* 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 */
@@ -334698,10 +348205,12 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8C9,
0x904,
0x93A,
0x93D,
@@ -334830,6 +348339,8 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -334846,7 +348357,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -334975,10 +348486,8 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -335019,7 +348528,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -335085,8 +348594,6 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA015,
0xA016,
0xA48D,
@@ -335342,12 +348849,18 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -335374,6 +348887,8 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -335430,6 +348945,8 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118FF,
@@ -335466,7 +348983,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -335494,20 +349011,32 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -335527,9 +349056,13 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -335542,12 +349075,26 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x1BC89,
0x1BC90,
0x1BC9A,
+ 0x1DF0A,
+ 0x1DF0B,
0x1E100,
0x1E12D,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EB,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1EE00,
@@ -335617,9 +349164,9 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -335629,7 +349176,9 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -335640,7 +349189,7 @@ static const UV UNI_LO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
- 977, /* Number of elements */
+ 1019, /* 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 */
@@ -335689,10 +349238,12 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8C9,
0x904,
0x93A,
0x93D,
@@ -335821,6 +349372,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -335837,7 +349390,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -335966,10 +349519,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -336010,7 +349561,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -336076,8 +349627,6 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA015,
0xA016,
0xA48D,
@@ -336333,12 +349882,18 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -336365,6 +349920,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -336421,6 +349978,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118FF,
@@ -336457,7 +350016,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -336485,20 +350044,32 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -336518,9 +350089,13 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -336533,12 +350108,26 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x1BC89,
0x1BC90,
0x1BC9A,
+ 0x1DF0A,
+ 0x1DF0B,
0x1E100,
0x1E12D,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EB,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1EE00,
@@ -336608,9 +350197,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -336620,7 +350209,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -336631,7 +350222,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
- 977, /* Number of elements */
+ 1019, /* 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 */
@@ -336680,10 +350271,12 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8C9,
0x904,
0x93A,
0x93D,
@@ -336812,6 +350405,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -336828,7 +350423,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -336957,10 +350552,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x16F1,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -337001,7 +350594,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -337067,8 +350660,6 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA015,
0xA016,
0xA48D,
@@ -337324,12 +350915,18 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -337356,6 +350953,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -337412,6 +351011,8 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118FF,
@@ -337448,7 +351049,7 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -337476,20 +351077,32 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
0x1239A,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -337509,9 +351122,13 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x18D00,
0x18D09,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -337524,12 +351141,26 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x1BC89,
0x1BC90,
0x1BC9A,
+ 0x1DF0A,
+ 0x1DF0B,
0x1E100,
0x1E12D,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EB,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1EE00,
@@ -337599,9 +351230,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -337611,7 +351242,9 @@ static const UV UNI_LO_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -337671,7 +351304,7 @@ static const UV UNI_LYDI_invlist[] = { /* for all charsets */
};
static const UV UNI_M_invlist[] = { /* for all charsets */
- 581, /* Number of elements */
+ 621, /* 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 */
@@ -337724,7 +351357,9 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -337808,6 +351443,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -337832,6 +351469,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -337869,7 +351508,7 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -337911,7 +351550,7 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -337924,6 +351563,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -337941,7 +351582,7 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -337967,8 +351608,6 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x20D0,
0x20F1,
@@ -338072,16 +351711,26 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -338102,6 +351751,8 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -338196,6 +351847,18 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -338212,6 +351875,10 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x16FF2,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -338246,10 +351913,16 @@ static const UV UNI_M_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -339239,7 +352912,7 @@ static const UV UNI_MAYANNUMERALS_invlist[] = { /* for all charsets */
};
static const UV UNI_MC_invlist[] = { /* for all charsets */
- 351, /* Number of elements */
+ 365, /* 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 */
@@ -339314,6 +352987,8 @@ static const UV UNI_MC_invlist[] = { /* for all charsets */
0xCCC,
0xCD5,
0xCD7,
+ 0xCF3,
+ 0xCF4,
0xD02,
0xD04,
0xD3E,
@@ -339358,6 +353033,10 @@ static const UV UNI_MC_invlist[] = { /* for all charsets */
0x1090,
0x109A,
0x109D,
+ 0x1715,
+ 0x1716,
+ 0x1734,
+ 0x1735,
0x17B6,
0x17B7,
0x17BE,
@@ -339586,6 +353265,14 @@ static const UV UNI_MC_invlist[] = { /* for all charsets */
0x11D97,
0x11EF5,
0x11EF7,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F36,
+ 0x11F3E,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
0x16F51,
0x16F88,
0x16FF0,
@@ -339775,7 +353462,7 @@ static const UV UNI_MLYM_invlist[] = { /* for all charsets */
};
static const UV UNI_MN_invlist[] = { /* for all charsets */
- 655, /* Number of elements */
+ 693, /* 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 */
@@ -339828,7 +353515,9 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x903,
@@ -339910,6 +353599,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0xC01,
0xC04,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC41,
0xC46,
@@ -339961,7 +353652,7 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -340009,7 +353700,7 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x1712,
0x1715,
0x1732,
- 0x1735,
+ 0x1734,
0x1752,
0x1754,
0x1772,
@@ -340026,6 +353717,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -340059,7 +353752,7 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B04,
0x1B34,
@@ -340105,8 +353798,6 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x20D0,
0x20DD,
@@ -340222,18 +353913,28 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11001,
0x11002,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11082,
0x110B3,
0x110B7,
0x110B9,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -340258,6 +353959,8 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112E0,
0x112E3,
@@ -340380,6 +354083,18 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF5,
+ 0x11F00,
+ 0x11F02,
+ 0x11F36,
+ 0x11F3B,
+ 0x11F40,
+ 0x11F41,
+ 0x11F42,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -340392,6 +354107,10 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x16FE5,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D17B,
@@ -340424,10 +354143,16 @@ static const UV UNI_MN_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -340471,14 +354196,12 @@ static const UV UNI_MODIFIERTONELETTERS_invlist[] = { /* for all charsets */
};
static const UV UNI_MONG_invlist[] = { /* for all charsets */
- 13, /* Number of elements */
+ 11, /* 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,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -340597,7 +354320,7 @@ static const UV UNI_MYMR_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */
- 267, /* Number of elements */
+ 275, /* 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 */
@@ -340828,18 +354551,24 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x11FC0,
0x11FD5,
0x12400,
0x1246F,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x16B5B,
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -340850,6 +354579,8 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8C7,
0x1E8D0,
0x1E950,
@@ -340878,7 +354609,7 @@ static const UV UNI_N_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */
- 267, /* Number of elements */
+ 275, /* 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 */
@@ -341109,18 +354840,24 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x11FC0,
0x11FD5,
0x12400,
0x1246F,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x16B5B,
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -341131,6 +354868,8 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8C7,
0x1E8D0,
0x1E950,
@@ -341159,7 +354898,7 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */
- 267, /* Number of elements */
+ 275, /* 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 */
@@ -341390,18 +355129,24 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x11FC0,
0x11FD5,
0x12400,
0x1246F,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x16B5B,
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -341412,6 +355157,8 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8C7,
0x1E8D0,
0x1E950,
@@ -341434,6 +355181,16 @@ static const UV UNI_N_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
+static const UV UNI_NAGM_invlist[] = { /* for all charsets */
+ 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,
+ 0x1E4D0,
+ 0x1E4FA
+};
+
static const UV UNI_NAND_invlist[] = { /* for all charsets */
19, /* Number of elements */
148565664, /* Version and data structure type */
@@ -341471,22 +355228,20 @@ static const UV UNI_NARB_invlist[] = { /* for all charsets */
};
static const UV UNI_NB_invlist[] = { /* for all charsets */
- 110, /* Number of elements */
+ 104, /* 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,
- 0x870,
- 0x8A0,
0x2FE0,
0x2FF0,
0x10200,
0x10280,
0x103E0,
0x10400,
- 0x10570,
+ 0x105C0,
0x10600,
- 0x10780,
+ 0x107C0,
0x10800,
0x108B0,
0x108E0,
@@ -341500,10 +355255,6 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */
0x10C80,
0x10D40,
0x10E60,
- 0x10EC0,
- 0x10F00,
- 0x10F70,
- 0x10FB0,
0x11250,
0x11280,
0x11380,
@@ -341512,54 +355263,54 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */
0x11580,
0x116D0,
0x11700,
- 0x11740,
+ 0x11750,
0x11800,
0x11850,
0x118A0,
0x11960,
0x119A0,
- 0x11AB0,
- 0x11AC0,
- 0x11B00,
+ 0x11B60,
0x11C00,
0x11CC0,
0x11D00,
0x11DB0,
0x11EE0,
- 0x11F00,
+ 0x11F60,
0x11FB0,
0x12550,
- 0x13000,
- 0x13440,
+ 0x12F90,
+ 0x13460,
0x14400,
0x14680,
0x16800,
- 0x16A70,
- 0x16AD0,
0x16B90,
0x16E40,
0x16EA0,
0x16F00,
0x16FA0,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
0x1BC00,
0x1BCB0,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D250,
- 0x1D2E0,
+ 0x1D2C0,
0x1D380,
0x1D400,
0x1DAB0,
- 0x1E000,
- 0x1E030,
+ 0x1DF00,
+ 0x1E090,
0x1E100,
0x1E150,
- 0x1E2C0,
+ 0x1E290,
0x1E300,
- 0x1E800,
+ 0x1E4D0,
+ 0x1E500,
+ 0x1E7E0,
0x1E8E0,
0x1E900,
0x1E960,
@@ -341578,7 +355329,7 @@ static const UV UNI_NB_invlist[] = { /* for all charsets */
0x2F800,
0x2FA20,
0x30000,
- 0x31350,
+ 0x323B0,
0xE0000,
0xE0080,
0xE0100,
@@ -343380,7 +357131,7 @@ static const UV UNI_NFDQC__Y_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */
- 501, /* Number of elements */
+ 511, /* 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 */
@@ -343671,6 +357422,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -343751,6 +357504,12 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D15E,
0x1D165,
0x1D1BB,
@@ -343797,6 +357556,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -343895,7 +357656,7 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */
- 507, /* Number of elements */
+ 517, /* 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 */
@@ -344192,6 +357953,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -344272,6 +358035,12 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D15E,
0x1D165,
0x1D1BB,
@@ -344318,6 +358087,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -344416,7 +358187,7 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */
- 505, /* Number of elements */
+ 515, /* 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 */
@@ -344711,6 +358482,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -344791,6 +358564,12 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1D15E,
0x1D165,
0x1D1BB,
@@ -344837,6 +358616,8 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -344932,7 +358713,7 @@ static const UV UNI_NFKCQC__N_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */
- 577, /* Number of elements */
+ 587, /* 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 */
@@ -345281,6 +359062,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -345361,6 +359144,12 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x110BA,
0x110BB,
0x11127,
@@ -345425,6 +359214,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -345523,7 +359314,7 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */
- 583, /* Number of elements */
+ 593, /* 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 */
@@ -345878,6 +359669,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -345958,6 +359751,12 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x110BA,
0x110BB,
0x11127,
@@ -346022,6 +359821,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -346120,7 +359921,7 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */
- 581, /* Number of elements */
+ 591, /* 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 */
@@ -346473,6 +360274,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -346553,6 +360356,12 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x110BA,
0x110BB,
0x11127,
@@ -346617,6 +360426,8 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -346712,7 +360523,7 @@ static const UV UNI_NFKCQC__Y_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */
- 785, /* Number of elements */
+ 795, /* 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 */
@@ -347267,6 +361078,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -347349,6 +361162,12 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1109A,
0x1109B,
0x1109C,
@@ -347413,6 +361232,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -347511,7 +361332,7 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */
- 783, /* Number of elements */
+ 793, /* 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 */
@@ -348064,6 +361885,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -348146,6 +361969,12 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1109A,
0x1109B,
0x1109C,
@@ -348210,6 +362039,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -348308,7 +362139,7 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */
- 785, /* Number of elements */
+ 795, /* 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 */
@@ -348863,6 +362694,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */
0xA69E,
0xA770,
0xA771,
+ 0xA7F2,
+ 0xA7F5,
0xA7F8,
0xA7FA,
0xAB5C,
@@ -348945,6 +362778,12 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */
0xFFE7,
0xFFE8,
0xFFEF,
+ 0x10781,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x1109A,
0x1109B,
0x1109C,
@@ -349009,6 +362848,8 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E030,
+ 0x1E06E,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -349102,15 +362943,23 @@ static const UV UNI_NFKDQC__N_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_NKO_invlist[] = { /* for all charsets */
- 5, /* Number of elements */
+ 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,
+ 0x60C,
+ 0x60D,
+ 0x61B,
+ 0x61C,
+ 0x61F,
+ 0x620,
0x7C0,
0x7FB,
0x7FD,
- 0x800
+ 0x800,
+ 0xFD3E,
+ 0xFD40
};
static const UV UNI_NL_invlist[] = { /* for all charsets */
@@ -349148,7 +362997,7 @@ static const UV UNI_NL_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NO_invlist[] = { /* for ASCII/Latin1 */
- 143, /* Number of elements */
+ 145, /* 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 */
@@ -349277,6 +363126,8 @@ static const UV UNI_NO_invlist[] = { /* for ASCII/Latin1 */
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -349305,7 +363156,7 @@ static const UV UNI_NO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NO_invlist[] = { /* for EBCDIC 1047 */
- 145, /* Number of elements */
+ 147, /* 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 */
@@ -349436,6 +363287,8 @@ static const UV UNI_NO_invlist[] = { /* for EBCDIC 1047 */
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -349464,7 +363317,7 @@ static const UV UNI_NO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NO_invlist[] = { /* for EBCDIC 037 */
- 145, /* Number of elements */
+ 147, /* 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 */
@@ -349595,6 +363448,8 @@ static const UV UNI_NO_invlist[] = { /* for EBCDIC 037 */
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -349798,7 +363653,7 @@ static const UV UNI_NT__DI_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NT__NU_invlist[] = { /* for ASCII/Latin1 */
- 303, /* Number of elements */
+ 305, /* 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 */
@@ -350055,6 +363910,8 @@ static const UV UNI_NT__NU_invlist[] = { /* for ASCII/Latin1 */
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -350115,7 +363972,7 @@ static const UV UNI_NT__NU_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 1047 */
- 303, /* Number of elements */
+ 305, /* 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 */
@@ -350372,6 +364229,8 @@ static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 1047 */
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -350432,7 +364291,7 @@ static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 037 */
- 303, /* Number of elements */
+ 305, /* 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 */
@@ -350689,6 +364548,8 @@ static const UV UNI_NT__NU_invlist[] = { /* for EBCDIC 037 */
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -350766,7 +364627,7 @@ static const UV UNI_NV___MINUS_1_SLASH_2_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */
- 163, /* Number of elements */
+ 171, /* 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 */
@@ -350903,12 +364764,18 @@ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */
0x11D51,
0x11DA0,
0x11DA1,
+ 0x11F50,
+ 0x11F51,
0x16A60,
0x16A61,
+ 0x16AC0,
+ 0x16AC1,
0x16B50,
0x16B51,
0x16E80,
0x16E81,
+ 0x1D2C0,
+ 0x1D2C1,
0x1D2E0,
0x1D2E1,
0x1D7CE,
@@ -350925,6 +364792,8 @@ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */
0x1E141,
0x1E2F0,
0x1E2F1,
+ 0x1E4F0,
+ 0x1E4F1,
0x1E950,
0x1E951,
0x1F100,
@@ -350943,7 +364812,7 @@ static const UV UNI_NV__0_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */
- 163, /* Number of elements */
+ 171, /* 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 */
@@ -351080,12 +364949,18 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */
0x11D51,
0x11DA0,
0x11DA1,
+ 0x11F50,
+ 0x11F51,
0x16A60,
0x16A61,
+ 0x16AC0,
+ 0x16AC1,
0x16B50,
0x16B51,
0x16E80,
0x16E81,
+ 0x1D2C0,
+ 0x1D2C1,
0x1D2E0,
0x1D2E1,
0x1D7CE,
@@ -351102,6 +364977,8 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */
0x1E141,
0x1E2F0,
0x1E2F1,
+ 0x1E4F0,
+ 0x1E4F1,
0x1E950,
0x1E951,
0x1F100,
@@ -351120,7 +364997,7 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */
- 163, /* Number of elements */
+ 171, /* 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 */
@@ -351257,12 +365134,18 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */
0x11D51,
0x11DA0,
0x11DA1,
+ 0x11F50,
+ 0x11F51,
0x16A60,
0x16A61,
+ 0x16AC0,
+ 0x16AC1,
0x16B50,
0x16B51,
0x16E80,
0x16E81,
+ 0x1D2C0,
+ 0x1D2C1,
0x1D2E0,
0x1D2E1,
0x1D7CE,
@@ -351279,6 +365162,8 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */
0x1E141,
0x1E2F0,
0x1E2F1,
+ 0x1E4F0,
+ 0x1E4F1,
0x1E950,
0x1E951,
0x1F100,
@@ -351294,7 +365179,7 @@ static const UV UNI_NV__0_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */
- 275, /* Number of elements */
+ 283, /* 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 */
@@ -351513,6 +365398,8 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */
0x11D52,
0x11DA1,
0x11DA2,
+ 0x11F51,
+ 0x11F52,
0x12415,
0x12416,
0x1241E,
@@ -351527,12 +365414,16 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */
0x12459,
0x16A61,
0x16A62,
+ 0x16AC1,
+ 0x16AC2,
0x16B51,
0x16B52,
0x16E81,
0x16E82,
0x16E94,
0x16E95,
+ 0x1D2C1,
+ 0x1D2C2,
0x1D2E1,
0x1D2E2,
0x1D360,
@@ -351555,6 +365446,8 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */
0x1E142,
0x1E2F1,
0x1E2F2,
+ 0x1E4F1,
+ 0x1E4F2,
0x1E8C7,
0x1E8C8,
0x1E951,
@@ -351583,7 +365476,7 @@ static const UV UNI_NV__1_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */
- 275, /* Number of elements */
+ 283, /* 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 */
@@ -351802,6 +365695,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */
0x11D52,
0x11DA1,
0x11DA2,
+ 0x11F51,
+ 0x11F52,
0x12415,
0x12416,
0x1241E,
@@ -351816,12 +365711,16 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */
0x12459,
0x16A61,
0x16A62,
+ 0x16AC1,
+ 0x16AC2,
0x16B51,
0x16B52,
0x16E81,
0x16E82,
0x16E94,
0x16E95,
+ 0x1D2C1,
+ 0x1D2C2,
0x1D2E1,
0x1D2E2,
0x1D360,
@@ -351844,6 +365743,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */
0x1E142,
0x1E2F1,
0x1E2F2,
+ 0x1E4F1,
+ 0x1E4F2,
0x1E8C7,
0x1E8C8,
0x1E951,
@@ -351872,7 +365773,7 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */
- 275, /* Number of elements */
+ 283, /* 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 */
@@ -352091,6 +365992,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */
0x11D52,
0x11DA1,
0x11DA2,
+ 0x11F51,
+ 0x11F52,
0x12415,
0x12416,
0x1241E,
@@ -352105,12 +366008,16 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */
0x12459,
0x16A61,
0x16A62,
+ 0x16AC1,
+ 0x16AC2,
0x16B51,
0x16B52,
0x16E81,
0x16E82,
0x16E94,
0x16E95,
+ 0x1D2C1,
+ 0x1D2C2,
0x1D2E1,
0x1D2E2,
0x1D360,
@@ -352133,6 +366040,8 @@ static const UV UNI_NV__1_invlist[] = { /* for EBCDIC 037 */
0x1E142,
0x1E2F1,
0x1E2F2,
+ 0x1E4F1,
+ 0x1E4F2,
0x1E8C7,
0x1E8C8,
0x1E951,
@@ -352632,7 +366541,7 @@ static const UV UNI_NV__1_SLASH_9_invlist[] = { /* for all charsets */
};
static const UV UNI_NV__10_invlist[] = { /* for all charsets */
- 117, /* Number of elements */
+ 119, /* 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 */
@@ -352743,6 +366652,8 @@ static const UV UNI_NV__10_invlist[] = { /* for all charsets */
0x16B5C,
0x16E8A,
0x16E8B,
+ 0x1D2CA,
+ 0x1D2CB,
0x1D2EA,
0x1D2EB,
0x1D369,
@@ -352992,7 +366903,7 @@ static const UV UNI_NV__1000000000000_invlist[] = { /* for all charsets */
};
static const UV UNI_NV__11_invlist[] = { /* for all charsets */
- 17, /* Number of elements */
+ 19, /* 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 */
@@ -353011,6 +366922,8 @@ static const UV UNI_NV__11_invlist[] = { /* for all charsets */
0x24EC,
0x16E8B,
0x16E8C,
+ 0x1D2CB,
+ 0x1D2CC,
0x1D2EB,
0x1D2EC
};
@@ -353036,7 +366949,7 @@ static const UV UNI_NV__11_SLASH_2_invlist[] = { /* for all charsets */
};
static const UV UNI_NV__12_invlist[] = { /* for all charsets */
- 17, /* Number of elements */
+ 19, /* 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 */
@@ -353055,12 +366968,14 @@ static const UV UNI_NV__12_invlist[] = { /* for all charsets */
0x24ED,
0x16E8C,
0x16E8D,
+ 0x1D2CC,
+ 0x1D2CD,
0x1D2EC,
0x1D2ED
};
static const UV UNI_NV__13_invlist[] = { /* for all charsets */
- 13, /* Number of elements */
+ 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 */
@@ -353075,6 +366990,8 @@ static const UV UNI_NV__13_invlist[] = { /* for all charsets */
0x24EE,
0x16E8D,
0x16E8E,
+ 0x1D2CD,
+ 0x1D2CE,
0x1D2ED,
0x1D2EE
};
@@ -353090,7 +367007,7 @@ static const UV UNI_NV__13_SLASH_2_invlist[] = { /* for all charsets */
};
static const UV UNI_NV__14_invlist[] = { /* for all charsets */
- 13, /* Number of elements */
+ 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 */
@@ -353105,12 +367022,14 @@ static const UV UNI_NV__14_invlist[] = { /* for all charsets */
0x24EF,
0x16E8E,
0x16E8F,
+ 0x1D2CE,
+ 0x1D2CF,
0x1D2EE,
0x1D2EF
};
static const UV UNI_NV__15_invlist[] = { /* for all charsets */
- 13, /* Number of elements */
+ 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 */
@@ -353125,6 +367044,8 @@ static const UV UNI_NV__15_invlist[] = { /* for all charsets */
0x24F0,
0x16E8F,
0x16E90,
+ 0x1D2CF,
+ 0x1D2D0,
0x1D2EF,
0x1D2F0
};
@@ -353140,7 +367061,7 @@ static const UV UNI_NV__15_SLASH_2_invlist[] = { /* for all charsets */
};
static const UV UNI_NV__16_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -353157,12 +367078,14 @@ static const UV UNI_NV__16_invlist[] = { /* for all charsets */
0x24F1,
0x16E90,
0x16E91,
+ 0x1D2D0,
+ 0x1D2D1,
0x1D2F0,
0x1D2F1
};
static const UV UNI_NV__17_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -353179,6 +367102,8 @@ static const UV UNI_NV__17_invlist[] = { /* for all charsets */
0x24F2,
0x16E91,
0x16E92,
+ 0x1D2D1,
+ 0x1D2D2,
0x1D2F1,
0x1D2F2
};
@@ -353194,7 +367119,7 @@ static const UV UNI_NV__17_SLASH_2_invlist[] = { /* for all charsets */
};
static const UV UNI_NV__18_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -353211,12 +367136,14 @@ static const UV UNI_NV__18_invlist[] = { /* for all charsets */
0x24F3,
0x16E92,
0x16E93,
+ 0x1D2D2,
+ 0x1D2D3,
0x1D2F2,
0x1D2F3
};
static const UV UNI_NV__19_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -353233,6 +367160,8 @@ static const UV UNI_NV__19_invlist[] = { /* for all charsets */
0x24F4,
0x16E93,
0x16E94,
+ 0x1D2D3,
+ 0x1D2D4,
0x1D2F3,
0x1D2F4
};
@@ -353240,7 +367169,7 @@ static const UV UNI_NV__19_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */
- 273, /* Number of elements */
+ 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 */
@@ -353449,6 +367378,8 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */
0x11D53,
0x11DA2,
0x11DA3,
+ 0x11F52,
+ 0x11F53,
0x12400,
0x12401,
0x12416,
@@ -353471,12 +367402,16 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */
0x1245A,
0x16A62,
0x16A63,
+ 0x16AC2,
+ 0x16AC3,
0x16B52,
0x16B53,
0x16E82,
0x16E83,
0x16E95,
0x16E96,
+ 0x1D2C2,
+ 0x1D2C3,
0x1D2E2,
0x1D2E3,
0x1D361,
@@ -353497,6 +367432,8 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */
0x1E143,
0x1E2F2,
0x1E2F3,
+ 0x1E4F2,
+ 0x1E4F3,
0x1E8C8,
0x1E8C9,
0x1E952,
@@ -353527,7 +367464,7 @@ static const UV UNI_NV__2_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */
- 273, /* Number of elements */
+ 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 */
@@ -353736,6 +367673,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */
0x11D53,
0x11DA2,
0x11DA3,
+ 0x11F52,
+ 0x11F53,
0x12400,
0x12401,
0x12416,
@@ -353758,12 +367697,16 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */
0x1245A,
0x16A62,
0x16A63,
+ 0x16AC2,
+ 0x16AC3,
0x16B52,
0x16B53,
0x16E82,
0x16E83,
0x16E95,
0x16E96,
+ 0x1D2C2,
+ 0x1D2C3,
0x1D2E2,
0x1D2E3,
0x1D361,
@@ -353784,6 +367727,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */
0x1E143,
0x1E2F2,
0x1E2F3,
+ 0x1E4F2,
+ 0x1E4F3,
0x1E8C8,
0x1E8C9,
0x1E952,
@@ -353814,7 +367759,7 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */
- 273, /* Number of elements */
+ 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 */
@@ -354023,6 +367968,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */
0x11D53,
0x11DA2,
0x11DA3,
+ 0x11F52,
+ 0x11F53,
0x12400,
0x12401,
0x12416,
@@ -354045,12 +367992,16 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */
0x1245A,
0x16A62,
0x16A63,
+ 0x16AC2,
+ 0x16AC3,
0x16B52,
0x16B53,
0x16E82,
0x16E83,
0x16E95,
0x16E96,
+ 0x1D2C2,
+ 0x1D2C3,
0x1D2E2,
0x1D2E3,
0x1D361,
@@ -354071,6 +368022,8 @@ static const UV UNI_NV__2_invlist[] = { /* for EBCDIC 037 */
0x1E143,
0x1E2F2,
0x1E2F3,
+ 0x1E4F2,
+ 0x1E4F3,
0x1E8C8,
0x1E8C9,
0x1E952,
@@ -354386,7 +368339,7 @@ static const UV UNI_NV__29_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */
- 267, /* Number of elements */
+ 275, /* 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 */
@@ -354583,6 +368536,8 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */
0x11D54,
0x11DA3,
0x11DA4,
+ 0x11F53,
+ 0x11F54,
0x12401,
0x12402,
0x12408,
@@ -354607,12 +368562,16 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */
0x12458,
0x16A63,
0x16A64,
+ 0x16AC3,
+ 0x16AC4,
0x16B53,
0x16B54,
0x16E83,
0x16E84,
0x16E96,
0x16E97,
+ 0x1D2C3,
+ 0x1D2C4,
0x1D2E3,
0x1D2E4,
0x1D362,
@@ -354633,6 +368592,8 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */
0x1E144,
0x1E2F3,
0x1E2F4,
+ 0x1E4F3,
+ 0x1E4F4,
0x1E8C9,
0x1E8CA,
0x1E953,
@@ -354667,7 +368628,7 @@ static const UV UNI_NV__3_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */
- 267, /* Number of elements */
+ 275, /* 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 */
@@ -354864,6 +368825,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */
0x11D54,
0x11DA3,
0x11DA4,
+ 0x11F53,
+ 0x11F54,
0x12401,
0x12402,
0x12408,
@@ -354888,12 +368851,16 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */
0x12458,
0x16A63,
0x16A64,
+ 0x16AC3,
+ 0x16AC4,
0x16B53,
0x16B54,
0x16E83,
0x16E84,
0x16E96,
0x16E97,
+ 0x1D2C3,
+ 0x1D2C4,
0x1D2E3,
0x1D2E4,
0x1D362,
@@ -354914,6 +368881,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */
0x1E144,
0x1E2F3,
0x1E2F4,
+ 0x1E4F3,
+ 0x1E4F4,
0x1E8C9,
0x1E8CA,
0x1E953,
@@ -354948,7 +368917,7 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */
- 267, /* Number of elements */
+ 275, /* 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 */
@@ -355145,6 +369114,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */
0x11D54,
0x11DA3,
0x11DA4,
+ 0x11F53,
+ 0x11F54,
0x12401,
0x12402,
0x12408,
@@ -355169,12 +369140,16 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */
0x12458,
0x16A63,
0x16A64,
+ 0x16AC3,
+ 0x16AC4,
0x16B53,
0x16B54,
0x16E83,
0x16E84,
0x16E96,
0x16E97,
+ 0x1D2C3,
+ 0x1D2C4,
0x1D2E3,
0x1D2E4,
0x1D362,
@@ -355195,6 +369170,8 @@ static const UV UNI_NV__3_invlist[] = { /* for EBCDIC 037 */
0x1E144,
0x1E2F3,
0x1E2F4,
+ 0x1E4F3,
+ 0x1E4F4,
0x1E8C9,
0x1E8CA,
0x1E953,
@@ -355604,7 +369581,7 @@ static const UV UNI_NV__39_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */
- 253, /* Number of elements */
+ 261, /* 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 */
@@ -355789,6 +369766,8 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */
0x11D55,
0x11DA4,
0x11DA5,
+ 0x11F54,
+ 0x11F55,
0x12402,
0x12403,
0x12409,
@@ -355815,10 +369794,14 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */
0x1246A,
0x16A64,
0x16A65,
+ 0x16AC4,
+ 0x16AC5,
0x16B54,
0x16B55,
0x16E84,
0x16E85,
+ 0x1D2C4,
+ 0x1D2C5,
0x1D2E4,
0x1D2E5,
0x1D363,
@@ -355839,6 +369822,8 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */
0x1E145,
0x1E2F4,
0x1E2F5,
+ 0x1E4F4,
+ 0x1E4F5,
0x1E8CA,
0x1E8CB,
0x1E954,
@@ -355871,7 +369856,7 @@ static const UV UNI_NV__4_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */
- 253, /* Number of elements */
+ 261, /* 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 */
@@ -356056,6 +370041,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */
0x11D55,
0x11DA4,
0x11DA5,
+ 0x11F54,
+ 0x11F55,
0x12402,
0x12403,
0x12409,
@@ -356082,10 +370069,14 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */
0x1246A,
0x16A64,
0x16A65,
+ 0x16AC4,
+ 0x16AC5,
0x16B54,
0x16B55,
0x16E84,
0x16E85,
+ 0x1D2C4,
+ 0x1D2C5,
0x1D2E4,
0x1D2E5,
0x1D363,
@@ -356106,6 +370097,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */
0x1E145,
0x1E2F4,
0x1E2F5,
+ 0x1E4F4,
+ 0x1E4F5,
0x1E8CA,
0x1E8CB,
0x1E954,
@@ -356138,7 +370131,7 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */
- 253, /* Number of elements */
+ 261, /* 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 */
@@ -356323,6 +370316,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */
0x11D55,
0x11DA4,
0x11DA5,
+ 0x11F54,
+ 0x11F55,
0x12402,
0x12403,
0x12409,
@@ -356349,10 +370344,14 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */
0x1246A,
0x16A64,
0x16A65,
+ 0x16AC4,
+ 0x16AC5,
0x16B54,
0x16B55,
0x16E84,
0x16E85,
+ 0x1D2C4,
+ 0x1D2C5,
0x1D2E4,
0x1D2E5,
0x1D363,
@@ -356373,6 +370372,8 @@ static const UV UNI_NV__4_invlist[] = { /* for EBCDIC 037 */
0x1E145,
0x1E2F4,
0x1E2F5,
+ 0x1E4F4,
+ 0x1E4F5,
0x1E8CA,
0x1E8CB,
0x1E954,
@@ -356620,7 +370621,7 @@ static const UV UNI_NV__49_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */
- 257, /* Number of elements */
+ 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 */
@@ -356813,6 +370814,8 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */
0x11D56,
0x11DA5,
0x11DA6,
+ 0x11F55,
+ 0x11F56,
0x12403,
0x12404,
0x1240A,
@@ -356837,10 +370840,14 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */
0x1246B,
0x16A65,
0x16A66,
+ 0x16AC5,
+ 0x16AC6,
0x16B55,
0x16B56,
0x16E85,
0x16E86,
+ 0x1D2C5,
+ 0x1D2C6,
0x1D2E5,
0x1D2E6,
0x1D364,
@@ -356863,6 +370870,8 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */
0x1E146,
0x1E2F5,
0x1E2F6,
+ 0x1E4F5,
+ 0x1E4F6,
0x1E8CB,
0x1E8CC,
0x1E955,
@@ -356891,7 +370900,7 @@ static const UV UNI_NV__5_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */
- 257, /* Number of elements */
+ 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 */
@@ -357084,6 +371093,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */
0x11D56,
0x11DA5,
0x11DA6,
+ 0x11F55,
+ 0x11F56,
0x12403,
0x12404,
0x1240A,
@@ -357108,10 +371119,14 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */
0x1246B,
0x16A65,
0x16A66,
+ 0x16AC5,
+ 0x16AC6,
0x16B55,
0x16B56,
0x16E85,
0x16E86,
+ 0x1D2C5,
+ 0x1D2C6,
0x1D2E5,
0x1D2E6,
0x1D364,
@@ -357134,6 +371149,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */
0x1E146,
0x1E2F5,
0x1E2F6,
+ 0x1E4F5,
+ 0x1E4F6,
0x1E8CB,
0x1E8CC,
0x1E955,
@@ -357162,7 +371179,7 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */
- 257, /* Number of elements */
+ 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 */
@@ -357355,6 +371372,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */
0x11D56,
0x11DA5,
0x11DA6,
+ 0x11F55,
+ 0x11F56,
0x12403,
0x12404,
0x1240A,
@@ -357379,10 +371398,14 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */
0x1246B,
0x16A65,
0x16A66,
+ 0x16AC5,
+ 0x16AC6,
0x16B55,
0x16B56,
0x16E85,
0x16E86,
+ 0x1D2C5,
+ 0x1D2C6,
0x1D2E5,
0x1D2E6,
0x1D364,
@@ -357405,6 +371428,8 @@ static const UV UNI_NV__5_invlist[] = { /* for EBCDIC 037 */
0x1E146,
0x1E2F5,
0x1E2F6,
+ 0x1E4F5,
+ 0x1E4F6,
0x1E8CB,
0x1E8CC,
0x1E955,
@@ -357622,7 +371647,7 @@ static const UV UNI_NV__500000_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */
- 227, /* Number of elements */
+ 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 */
@@ -357795,6 +371820,8 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */
0x11D57,
0x11DA6,
0x11DA7,
+ 0x11F56,
+ 0x11F57,
0x12404,
0x12405,
0x1240B,
@@ -357813,10 +371840,14 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */
0x1246C,
0x16A66,
0x16A67,
+ 0x16AC6,
+ 0x16AC7,
0x16B56,
0x16B57,
0x16E86,
0x16E87,
+ 0x1D2C6,
+ 0x1D2C7,
0x1D2E6,
0x1D2E7,
0x1D365,
@@ -357835,6 +371866,8 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */
0x1E147,
0x1E2F6,
0x1E2F7,
+ 0x1E4F6,
+ 0x1E4F7,
0x1E8CC,
0x1E8CD,
0x1E956,
@@ -357863,7 +371896,7 @@ static const UV UNI_NV__6_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */
- 227, /* Number of elements */
+ 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 */
@@ -358036,6 +372069,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */
0x11D57,
0x11DA6,
0x11DA7,
+ 0x11F56,
+ 0x11F57,
0x12404,
0x12405,
0x1240B,
@@ -358054,10 +372089,14 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */
0x1246C,
0x16A66,
0x16A67,
+ 0x16AC6,
+ 0x16AC7,
0x16B56,
0x16B57,
0x16E86,
0x16E87,
+ 0x1D2C6,
+ 0x1D2C7,
0x1D2E6,
0x1D2E7,
0x1D365,
@@ -358076,6 +372115,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */
0x1E147,
0x1E2F6,
0x1E2F7,
+ 0x1E4F6,
+ 0x1E4F7,
0x1E8CC,
0x1E8CD,
0x1E956,
@@ -358104,7 +372145,7 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */
- 227, /* Number of elements */
+ 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 */
@@ -358277,6 +372318,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */
0x11D57,
0x11DA6,
0x11DA7,
+ 0x11F56,
+ 0x11F57,
0x12404,
0x12405,
0x1240B,
@@ -358295,10 +372338,14 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */
0x1246C,
0x16A66,
0x16A67,
+ 0x16AC6,
+ 0x16AC7,
0x16B56,
0x16B57,
0x16E86,
0x16E87,
+ 0x1D2C6,
+ 0x1D2C7,
0x1D2E6,
0x1D2E7,
0x1D365,
@@ -358317,6 +372364,8 @@ static const UV UNI_NV__6_invlist[] = { /* for EBCDIC 037 */
0x1E147,
0x1E2F6,
0x1E2F7,
+ 0x1E4F6,
+ 0x1E4F7,
0x1E8CC,
0x1E8CD,
0x1E956,
@@ -358440,7 +372489,7 @@ static const UV UNI_NV__600000_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */
- 221, /* Number of elements */
+ 229, /* 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 */
@@ -358609,6 +372658,8 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */
0x11D58,
0x11DA7,
0x11DA8,
+ 0x11F57,
+ 0x11F58,
0x12405,
0x12406,
0x1240C,
@@ -358625,10 +372676,14 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */
0x1246D,
0x16A67,
0x16A68,
+ 0x16AC7,
+ 0x16AC8,
0x16B57,
0x16B58,
0x16E87,
0x16E88,
+ 0x1D2C7,
+ 0x1D2C8,
0x1D2E7,
0x1D2E8,
0x1D366,
@@ -358647,6 +372702,8 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */
0x1E148,
0x1E2F7,
0x1E2F8,
+ 0x1E4F7,
+ 0x1E4F8,
0x1E8CD,
0x1E8CE,
0x1E957,
@@ -358675,7 +372732,7 @@ static const UV UNI_NV__7_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */
- 221, /* Number of elements */
+ 229, /* 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 */
@@ -358844,6 +372901,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */
0x11D58,
0x11DA7,
0x11DA8,
+ 0x11F57,
+ 0x11F58,
0x12405,
0x12406,
0x1240C,
@@ -358860,10 +372919,14 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */
0x1246D,
0x16A67,
0x16A68,
+ 0x16AC7,
+ 0x16AC8,
0x16B57,
0x16B58,
0x16E87,
0x16E88,
+ 0x1D2C7,
+ 0x1D2C8,
0x1D2E7,
0x1D2E8,
0x1D366,
@@ -358882,6 +372945,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */
0x1E148,
0x1E2F7,
0x1E2F8,
+ 0x1E4F7,
+ 0x1E4F8,
0x1E8CD,
0x1E8CE,
0x1E957,
@@ -358910,7 +372975,7 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */
- 221, /* Number of elements */
+ 229, /* 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 */
@@ -359079,6 +373144,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */
0x11D58,
0x11DA7,
0x11DA8,
+ 0x11F57,
+ 0x11F58,
0x12405,
0x12406,
0x1240C,
@@ -359095,10 +373162,14 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */
0x1246D,
0x16A67,
0x16A68,
+ 0x16AC7,
+ 0x16AC8,
0x16B57,
0x16B58,
0x16E87,
0x16E88,
+ 0x1D2C7,
+ 0x1D2C8,
0x1D2E7,
0x1D2E8,
0x1D366,
@@ -359117,6 +373188,8 @@ static const UV UNI_NV__7_invlist[] = { /* for EBCDIC 037 */
0x1E148,
0x1E2F7,
0x1E2F8,
+ 0x1E4F7,
+ 0x1E4F8,
0x1E8CD,
0x1E8CE,
0x1E957,
@@ -359268,7 +373341,7 @@ static const UV UNI_NV__700000_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */
- 215, /* Number of elements */
+ 223, /* 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 */
@@ -359433,6 +373506,8 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */
0x11D59,
0x11DA8,
0x11DA9,
+ 0x11F58,
+ 0x11F59,
0x12406,
0x12407,
0x1240D,
@@ -359449,10 +373524,14 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */
0x1246E,
0x16A68,
0x16A69,
+ 0x16AC8,
+ 0x16AC9,
0x16B58,
0x16B59,
0x16E88,
0x16E89,
+ 0x1D2C8,
+ 0x1D2C9,
0x1D2E8,
0x1D2E9,
0x1D367,
@@ -359471,6 +373550,8 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */
0x1E149,
0x1E2F8,
0x1E2F9,
+ 0x1E4F8,
+ 0x1E4F9,
0x1E8CE,
0x1E8CF,
0x1E958,
@@ -359497,7 +373578,7 @@ static const UV UNI_NV__8_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */
- 215, /* Number of elements */
+ 223, /* 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 */
@@ -359662,6 +373743,8 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */
0x11D59,
0x11DA8,
0x11DA9,
+ 0x11F58,
+ 0x11F59,
0x12406,
0x12407,
0x1240D,
@@ -359678,10 +373761,14 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */
0x1246E,
0x16A68,
0x16A69,
+ 0x16AC8,
+ 0x16AC9,
0x16B58,
0x16B59,
0x16E88,
0x16E89,
+ 0x1D2C8,
+ 0x1D2C9,
0x1D2E8,
0x1D2E9,
0x1D367,
@@ -359700,6 +373787,8 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */
0x1E149,
0x1E2F8,
0x1E2F9,
+ 0x1E4F8,
+ 0x1E4F9,
0x1E8CE,
0x1E8CF,
0x1E958,
@@ -359726,7 +373815,7 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */
- 215, /* Number of elements */
+ 223, /* 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 */
@@ -359891,6 +373980,8 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */
0x11D59,
0x11DA8,
0x11DA9,
+ 0x11F58,
+ 0x11F59,
0x12406,
0x12407,
0x1240D,
@@ -359907,10 +373998,14 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */
0x1246E,
0x16A68,
0x16A69,
+ 0x16AC8,
+ 0x16AC9,
0x16B58,
0x16B59,
0x16E88,
0x16E89,
+ 0x1D2C8,
+ 0x1D2C9,
0x1D2E8,
0x1D2E9,
0x1D367,
@@ -359929,6 +374024,8 @@ static const UV UNI_NV__8_invlist[] = { /* for EBCDIC 037 */
0x1E149,
0x1E2F8,
0x1E2F9,
+ 0x1E4F8,
+ 0x1E4F9,
0x1E8CE,
0x1E8CF,
0x1E958,
@@ -360046,7 +374143,7 @@ static const UV UNI_NV__800000_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */
- 219, /* Number of elements */
+ 227, /* 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 */
@@ -360213,6 +374310,8 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA9,
0x11DAA,
+ 0x11F59,
+ 0x11F5A,
0x12407,
0x12408,
0x1240E,
@@ -360229,10 +374328,14 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x16A69,
0x16A6A,
+ 0x16AC9,
+ 0x16ACA,
0x16B59,
0x16B5A,
0x16E89,
0x16E8A,
+ 0x1D2C9,
+ 0x1D2CA,
0x1D2E9,
0x1D2EA,
0x1D368,
@@ -360251,6 +374354,8 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F9,
0x1E2FA,
+ 0x1E4F9,
+ 0x1E4FA,
0x1E8CF,
0x1E8D0,
0x1E959,
@@ -360279,7 +374384,7 @@ static const UV UNI_NV__9_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */
- 219, /* Number of elements */
+ 227, /* 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 */
@@ -360446,6 +374551,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA9,
0x11DAA,
+ 0x11F59,
+ 0x11F5A,
0x12407,
0x12408,
0x1240E,
@@ -360462,10 +374569,14 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x16A69,
0x16A6A,
+ 0x16AC9,
+ 0x16ACA,
0x16B59,
0x16B5A,
0x16E89,
0x16E8A,
+ 0x1D2C9,
+ 0x1D2CA,
0x1D2E9,
0x1D2EA,
0x1D368,
@@ -360484,6 +374595,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F9,
0x1E2FA,
+ 0x1E4F9,
+ 0x1E4FA,
0x1E8CF,
0x1E8D0,
0x1E959,
@@ -360512,7 +374625,7 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */
- 219, /* Number of elements */
+ 227, /* 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 */
@@ -360679,6 +374792,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA9,
0x11DAA,
+ 0x11F59,
+ 0x11F5A,
0x12407,
0x12408,
0x1240E,
@@ -360695,10 +374810,14 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x16A69,
0x16A6A,
+ 0x16AC9,
+ 0x16ACA,
0x16B59,
0x16B5A,
0x16E89,
0x16E8A,
+ 0x1D2C9,
+ 0x1D2CA,
0x1D2E9,
0x1D2EA,
0x1D368,
@@ -360717,6 +374836,8 @@ static const UV UNI_NV__9_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F9,
0x1E2FA,
+ 0x1E4F9,
+ 0x1E4FA,
0x1E8CF,
0x1E8D0,
0x1E959,
@@ -360848,7 +374969,7 @@ static const UV UNI_NV__900000_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */
- 411, /* Number of elements */
+ 419, /* 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 */
@@ -361191,18 +375312,24 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x11FC0,
0x11FD5,
0x12400,
0x1246F,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x16B5B,
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -361213,6 +375340,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8C7,
0x1E8D0,
0x1E950,
@@ -361273,7 +375402,7 @@ static const UV UNI_NV__NAN_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */
- 411, /* Number of elements */
+ 419, /* 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 */
@@ -361616,18 +375745,24 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x11FC0,
0x11FD5,
0x12400,
0x1246F,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x16B5B,
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -361638,6 +375773,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8C7,
0x1E8D0,
0x1E950,
@@ -361698,7 +375835,7 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */
- 411, /* Number of elements */
+ 419, /* 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 */
@@ -362041,18 +376178,24 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x11FC0,
0x11FD5,
0x12400,
0x1246F,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x16B5B,
0x16B62,
0x16E80,
0x16E97,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D360,
@@ -362063,6 +376206,8 @@ static const UV UNI_NV__NAN_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E8C7,
0x1E8D0,
0x1E950,
@@ -362245,10 +376390,24 @@ static const UV UNI_OTTOMANSIYAQNUMBERS_invlist[] = { /* for all charsets */
0x1ED50
};
+static const UV UNI_OUGR_invlist[] = { /* for all charsets */
+ 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 */
+ 0x0,
+ 0x640,
+ 0x641,
+ 0x10AF2,
+ 0x10AF3,
+ 0x10F70,
+ 0x10F8A
+};
+
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
- 371, /* Number of elements */
+ 383, /* 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 */
@@ -362307,7 +376466,7 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -362385,6 +376544,8 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -362434,7 +376595,7 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
0x2E30,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E5E,
0x3001,
0x3004,
0x3008,
@@ -362545,6 +376706,8 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
0x10EAE,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -362581,6 +376744,8 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -362595,16 +376760,22 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -362633,7 +376804,7 @@ static const UV UNI_P_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
- 379, /* Number of elements */
+ 391, /* 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 */
@@ -362700,7 +376871,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -362778,6 +376949,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -362827,7 +377000,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
0x2E30,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E5E,
0x3001,
0x3004,
0x3008,
@@ -362938,6 +377111,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
0x10EAE,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -362974,6 +377149,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -362988,16 +377165,22 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -363026,7 +377209,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
- 377, /* Number of elements */
+ 389, /* 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 */
@@ -363091,7 +377274,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -363169,6 +377352,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -363218,7 +377403,7 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
0x2E30,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E5E,
0x3001,
0x3004,
0x3008,
@@ -363329,6 +377514,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
0x10EAE,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -363365,6 +377552,8 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -363379,16 +377568,22 @@ static const UV UNI_P_invlist[] = { /* for EBCDIC 037 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -363726,7 +377921,7 @@ static const UV UNI_PC_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_PCM_invlist[] = { /* for all charsets */
- 13, /* Number of elements */
+ 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 */
@@ -363737,6 +377932,8 @@ static const UV UNI_PCM_invlist[] = { /* for all charsets */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x110BD,
@@ -363748,7 +377945,7 @@ static const UV UNI_PCM_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_PD_invlist[] = { /* for ASCII/Latin1 */
- 37, /* Number of elements */
+ 39, /* 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 */
@@ -363773,6 +377970,8 @@ static const UV UNI_PD_invlist[] = { /* for ASCII/Latin1 */
0x2E3C,
0x2E40,
0x2E41,
+ 0x2E5D,
+ 0x2E5E,
0x301C,
0x301D,
0x3030,
@@ -363799,7 +377998,7 @@ static const UV UNI_PD_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_PD_invlist[] = { /* for EBCDIC 1047 */
- 37, /* Number of elements */
+ 39, /* 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 */
@@ -363824,6 +378023,8 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 1047 */
0x2E3C,
0x2E40,
0x2E41,
+ 0x2E5D,
+ 0x2E5E,
0x301C,
0x301D,
0x3030,
@@ -363850,7 +378051,7 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_PD_invlist[] = { /* for EBCDIC 037 */
- 37, /* Number of elements */
+ 39, /* 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 */
@@ -363875,6 +378076,8 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 037 */
0x2E3C,
0x2E40,
0x2E41,
+ 0x2E5D,
+ 0x2E5E,
0x301C,
0x301D,
0x3030,
@@ -363898,7 +378101,7 @@ static const UV UNI_PD_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_PE_invlist[] = { /* for ASCII/Latin1 */
- 145, /* Number of elements */
+ 153, /* 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 */
@@ -363989,6 +378192,14 @@ static const UV UNI_PE_invlist[] = { /* for ASCII/Latin1 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3009,
0x300A,
0x300B,
@@ -364057,7 +378268,7 @@ static const UV UNI_PE_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_PE_invlist[] = { /* for EBCDIC 1047 */
- 145, /* Number of elements */
+ 153, /* 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 */
@@ -364148,6 +378359,14 @@ static const UV UNI_PE_invlist[] = { /* for EBCDIC 1047 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3009,
0x300A,
0x300B,
@@ -364216,7 +378435,7 @@ static const UV UNI_PE_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_PE_invlist[] = { /* for EBCDIC 037 */
- 145, /* Number of elements */
+ 153, /* 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 */
@@ -364307,6 +378526,14 @@ static const UV UNI_PE_invlist[] = { /* for EBCDIC 037 */
0x2E28,
0x2E29,
0x2E2A,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
+ 0x2E5D,
0x3009,
0x300A,
0x300B,
@@ -364688,7 +378915,7 @@ static const UV UNI_PLAYINGCARDS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
- 363, /* Number of elements */
+ 375, /* 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 */
@@ -364739,7 +378966,7 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -364813,6 +379040,8 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -364870,7 +379099,7 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
0x2E43,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E55,
0x3001,
0x3004,
0x303D,
@@ -364977,6 +379206,8 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
0x10B9D,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -365013,6 +379244,8 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -365027,16 +379260,22 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -365065,7 +379304,7 @@ static const UV UNI_PO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
- 367, /* Number of elements */
+ 379, /* 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 */
@@ -365120,7 +379359,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -365194,6 +379433,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -365251,7 +379492,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
0x2E43,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E55,
0x3001,
0x3004,
0x303D,
@@ -365358,6 +379599,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
0x10B9D,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -365394,6 +379637,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -365408,16 +379653,22 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -365446,7 +379697,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
- 367, /* Number of elements */
+ 379, /* 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 */
@@ -365501,7 +379752,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
0x60E,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x66A,
0x66E,
@@ -365575,6 +379826,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
0x1AAE,
0x1B5A,
0x1B61,
+ 0x1B7D,
+ 0x1B7F,
0x1BFC,
0x1C00,
0x1C3B,
@@ -365632,7 +379885,7 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
0x2E43,
0x2E50,
0x2E52,
- 0x2E53,
+ 0x2E55,
0x3001,
0x3004,
0x303D,
@@ -365739,6 +379992,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
0x10B9D,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BB,
@@ -365775,6 +380030,8 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
0x11644,
0x11660,
0x1166D,
+ 0x116B9,
+ 0x116BA,
0x1173C,
0x1173F,
0x1183B,
@@ -365789,16 +380046,22 @@ static const UV UNI_PO_invlist[] = { /* for EBCDIC 037 */
0x11A9D,
0x11A9E,
0x11AA3,
+ 0x11B00,
+ 0x11B0A,
0x11C41,
0x11C46,
0x11C70,
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F50,
0x11FFF,
0x12000,
0x12470,
0x12475,
+ 0x12FF1,
+ 0x12FF3,
0x16A6E,
0x16A70,
0x16AF5,
@@ -365836,7 +380099,7 @@ static const UV UNI_PRTI_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_PS_invlist[] = { /* for ASCII/Latin1 */
- 151, /* Number of elements */
+ 159, /* 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 */
@@ -365933,6 +380196,14 @@ static const UV UNI_PS_invlist[] = { /* for ASCII/Latin1 */
0x2E29,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -366001,7 +380272,7 @@ static const UV UNI_PS_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_PS_invlist[] = { /* for EBCDIC 1047 */
- 151, /* Number of elements */
+ 159, /* 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 */
@@ -366098,6 +380369,14 @@ static const UV UNI_PS_invlist[] = { /* for EBCDIC 1047 */
0x2E29,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -366166,7 +380445,7 @@ static const UV UNI_PS_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_PS_invlist[] = { /* for EBCDIC 037 */
- 151, /* Number of elements */
+ 159, /* 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 */
@@ -366263,6 +380542,14 @@ static const UV UNI_PS_invlist[] = { /* for EBCDIC 037 */
0x2E29,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E56,
+ 0x2E57,
+ 0x2E58,
+ 0x2E59,
+ 0x2E5A,
+ 0x2E5B,
+ 0x2E5C,
0x3008,
0x3009,
0x300A,
@@ -366336,7 +380623,7 @@ static const UV UNI_PUA_invlist[] = { /* for all charsets */
};
static const UV UNI_QAAI_invlist[] = { /* for all charsets */
- 37, /* Number of elements */
+ 41, /* 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 */
@@ -366350,7 +380637,7 @@ static const UV UNI_QAAI_invlist[] = { /* for all charsets */
0x953,
0x955,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1DC2,
0x1DF8,
0x1DF9,
@@ -366367,6 +380654,10 @@ static const UV UNI_QAAI_invlist[] = { /* for all charsets */
0xFE2E,
0x101FD,
0x101FE,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D17B,
@@ -366578,7 +380869,7 @@ static const UV UNI_RUNR_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
- 459, /* Number of elements */
+ 465, /* 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 */
@@ -366649,6 +380940,8 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0x7F7,
0x7FE,
0x800,
+ 0x888,
+ 0x889,
0x9F2,
0x9F4,
0x9FA,
@@ -366726,7 +381019,7 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0x208A,
0x208D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2102,
0x2103,
@@ -366850,9 +381143,13 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0xFB29,
0xFB2A,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFC,
- 0xFDFE,
+ 0xFE00,
0xFE62,
0xFE63,
0xFE64,
@@ -366905,6 +381202,8 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0x16B46,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -366918,7 +381217,7 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -366993,16 +381292,18 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -367016,27 +381317,23 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -367051,7 +381348,7 @@ static const UV UNI_S_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
- 465, /* Number of elements */
+ 471, /* 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 */
@@ -367128,6 +381425,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0x7F7,
0x7FE,
0x800,
+ 0x888,
+ 0x889,
0x9F2,
0x9F4,
0x9FA,
@@ -367205,7 +381504,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0x208A,
0x208D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2102,
0x2103,
@@ -367329,9 +381628,13 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0xFB29,
0xFB2A,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFC,
- 0xFDFE,
+ 0xFE00,
0xFE62,
0xFE63,
0xFE64,
@@ -367384,6 +381687,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0x16B46,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -367397,7 +381702,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -367472,16 +381777,18 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -367495,27 +381802,23 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -367530,7 +381833,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
- 463, /* Number of elements */
+ 469, /* 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 */
@@ -367605,6 +381908,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0x7F7,
0x7FE,
0x800,
+ 0x888,
+ 0x889,
0x9F2,
0x9F4,
0x9FA,
@@ -367682,7 +381987,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0x208A,
0x208D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2102,
0x2103,
@@ -367806,9 +382111,13 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0xFB29,
0xFB2A,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFC,
- 0xFDFE,
+ 0xFE00,
0xFE62,
0xFE63,
0xFE64,
@@ -367861,6 +382170,8 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0x16B46,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -367874,7 +382185,7 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -367949,16 +382260,18 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -367972,27 +382285,23 @@ static const UV UNI_S_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -368104,7 +382413,7 @@ static const UV UNI_SB__AT_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__CL_invlist[] = { /* for ASCII/Latin1 */
- 89, /* Number of elements */
+ 91, /* 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 */
@@ -368165,6 +382474,8 @@ static const UV UNI_SB__CL_invlist[] = { /* for ASCII/Latin1 */
0x2E2A,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -368207,7 +382518,7 @@ static const UV UNI_SB__CL_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 1047 */
- 91, /* Number of elements */
+ 93, /* 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 */
@@ -368270,6 +382581,8 @@ static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 1047 */
0x2E2A,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -368312,7 +382625,7 @@ static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 037 */
- 89, /* Number of elements */
+ 91, /* 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 */
@@ -368373,6 +382686,8 @@ static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 037 */
0x2E2A,
0x2E42,
0x2E43,
+ 0x2E55,
+ 0x2E5D,
0x3008,
0x3012,
0x3014,
@@ -368410,7 +382725,7 @@ static const UV UNI_SB__CL_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
- 587, /* Number of elements */
+ 627, /* 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 */
@@ -368463,7 +382778,9 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -368547,6 +382864,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -368571,6 +382890,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -368608,7 +382929,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -368650,7 +382971,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -368663,6 +382984,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -368680,7 +383003,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -368706,8 +383029,6 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200C,
0x200E,
@@ -368815,16 +383136,26 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -368845,6 +383176,8 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -368939,6 +383272,18 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -368955,6 +383300,10 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x16FF2,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -368989,10 +383338,16 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -369006,7 +383361,7 @@ static const UV UNI_SB__EX_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__FO_invlist[] = { /* for ASCII/Latin1 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -369021,6 +383376,8 @@ static const UV UNI_SB__FO_invlist[] = { /* for ASCII/Latin1 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -369044,7 +383401,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for ASCII/Latin1 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -369061,7 +383418,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 1047 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -369076,6 +383433,8 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 1047 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -369099,7 +383458,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 1047 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -369116,7 +383475,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 037 */
- 41, /* Number of elements */
+ 43, /* 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 */
@@ -369131,6 +383490,8 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 037 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -369154,7 +383515,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 037 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -369166,7 +383527,7 @@ static const UV UNI_SB__FO_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
- 1039, /* Number of elements */
+ 1087, /* 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 */
@@ -369235,10 +383596,12 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -369367,6 +383730,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -369383,7 +383748,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -369471,7 +383836,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x108F,
0x10D0,
0x10FB,
- 0x10FC,
+ 0x10FD,
0x1249,
0x124A,
0x124E,
@@ -369516,10 +383881,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -369562,7 +383925,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -369644,8 +384007,6 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -369741,8 +384102,6 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0xAB27,
0xAB28,
0xAB2F,
- 0xAB69,
- 0xAB6A,
0xABC0,
0xABE3,
0xAC00,
@@ -369841,6 +384200,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x10756,
0x10760,
0x10768,
+ 0x10781,
+ 0x10783,
0x10800,
0x10806,
0x10808,
@@ -369907,12 +384268,18 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -369939,6 +384306,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -369995,6 +384364,8 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118FF,
@@ -370031,7 +384402,7 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -370059,6 +384430,12 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -370067,14 +384444,20 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -370101,10 +384484,20 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -370117,14 +384510,28 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x1BC89,
0x1BC90,
0x1BC9A,
+ 0x1DF0A,
+ 0x1DF0B,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E94B,
@@ -370196,9 +384603,9 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -370208,13 +384615,15 @@ static const UV UNI_SB__LE_invlist[] = { /* for all charsets */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
- 1299, /* Number of elements */
+ 1339, /* 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 */
@@ -370767,6 +385176,8 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
0x530,
0x560,
0x589,
+ 0x10FC,
+ 0x10FD,
0x13F8,
0x13FE,
0x1C80,
@@ -371092,7 +385503,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -371427,12 +385838,26 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
0xA7F6,
0xA7F7,
0xA7F8,
@@ -371440,7 +385865,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -371453,6 +385878,22 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10CC0,
0x10CF3,
0x118C0,
@@ -371515,6 +385956,14 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E922,
0x1E944
};
@@ -371527,7 +385976,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
- 1307, /* Number of elements */
+ 1347, /* 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 */
@@ -372088,6 +386537,8 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
0x530,
0x560,
0x589,
+ 0x10FC,
+ 0x10FD,
0x13F8,
0x13FE,
0x1C80,
@@ -372413,7 +386864,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -372748,12 +387199,26 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
0xA7F6,
0xA7F7,
0xA7F8,
@@ -372761,7 +387226,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -372774,6 +387239,22 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10CC0,
0x10CF3,
0x118C0,
@@ -372836,6 +387317,14 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E922,
0x1E944
};
@@ -372848,7 +387337,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
- 1307, /* Number of elements */
+ 1347, /* 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 */
@@ -373409,6 +387898,8 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
0x530,
0x560,
0x589,
+ 0x10FC,
+ 0x10FD,
0x13F8,
0x13FE,
0x1C80,
@@ -373734,7 +388225,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
0x24D0,
0x24EA,
0x2C30,
- 0x2C5F,
+ 0x2C60,
0x2C61,
0x2C62,
0x2C65,
@@ -374069,12 +388560,26 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
0xA7BE,
0xA7BF,
0xA7C0,
+ 0xA7C1,
+ 0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
0xA7CB,
+ 0xA7D1,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
+ 0xA7DA,
+ 0xA7F2,
+ 0xA7F5,
0xA7F6,
0xA7F7,
0xA7F8,
@@ -374082,7 +388587,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
0xAB30,
0xAB5B,
0xAB5C,
- 0xAB69,
+ 0xAB6A,
0xAB70,
0xABC0,
0xFB00,
@@ -374095,6 +388600,22 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
0x10450,
0x104D8,
0x104FC,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
+ 0x10780,
+ 0x10781,
+ 0x10783,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10CC0,
0x10CF3,
0x118C0,
@@ -374157,6 +388678,14 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
0x1D7CA,
0x1D7CB,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF0A,
+ 0x1DF0B,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E922,
0x1E944
};
@@ -374166,7 +388695,7 @@ static const UV UNI_SB__LO_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -374281,8 +388810,12 @@ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -374291,6 +388824,8 @@ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -374305,7 +388840,7 @@ static const UV UNI_SB__NU_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -374420,8 +388955,12 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -374430,6 +388969,8 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -374444,7 +388985,7 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 037 */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -374559,8 +389100,12 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -374569,6 +389114,8 @@ static const UV UNI_SB__NU_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -374886,7 +389433,7 @@ static const UV UNI_SB__SP_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
- 147, /* Number of elements */
+ 155, /* 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 */
@@ -374897,7 +389444,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
0x40,
0x589,
0x58A,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -374935,6 +389482,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
0x1B5C,
0x1B5E,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C3D,
0x1C7E,
@@ -374947,6 +389496,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
0x2E2F,
0x2E3C,
0x2E3D,
+ 0x2E53,
+ 0x2E55,
0x3002,
0x3003,
0xA4FF,
@@ -374983,6 +389534,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
0x10A58,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x11049,
0x110BE,
@@ -375023,6 +389576,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
0x11C43,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x16A6E,
0x16A70,
0x16AF5,
@@ -375047,7 +389602,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
- 147, /* Number of elements */
+ 155, /* 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 */
@@ -375058,7 +389613,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
0x70,
0x589,
0x58A,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -375096,6 +389651,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
0x1B5C,
0x1B5E,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C3D,
0x1C7E,
@@ -375108,6 +389665,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
0x2E2F,
0x2E3C,
0x2E3D,
+ 0x2E53,
+ 0x2E55,
0x3002,
0x3003,
0xA4FF,
@@ -375144,6 +389703,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
0x10A58,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x11049,
0x110BE,
@@ -375184,6 +389745,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
0x11C43,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x16A6E,
0x16A70,
0x16AF5,
@@ -375208,7 +389771,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
- 147, /* Number of elements */
+ 155, /* 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 */
@@ -375219,7 +389782,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
0x70,
0x589,
0x58A,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -375257,6 +389820,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
0x1B5C,
0x1B5E,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C3D,
0x1C7E,
@@ -375269,6 +389834,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
0x2E2F,
0x2E3C,
0x2E3D,
+ 0x2E53,
+ 0x2E55,
0x3002,
0x3003,
0xA4FF,
@@ -375305,6 +389872,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
0x10A58,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x11049,
0x110BE,
@@ -375345,6 +389914,8 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
0x11C43,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x16A6E,
0x16A70,
0x16AF5,
@@ -375366,7 +389937,7 @@ static const UV UNI_SB__ST_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */
- 1289, /* Number of elements */
+ 1305, /* 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 */
@@ -376240,7 +390811,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -376569,12 +391140,20 @@ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -376583,6 +391162,14 @@ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -376669,7 +391256,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */
- 1307, /* Number of elements */
+ 1323, /* 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 */
@@ -377561,7 +392148,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -377890,12 +392477,20 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -377904,6 +392499,14 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -377990,7 +392593,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */
- 1303, /* Number of elements */
+ 1319, /* 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 */
@@ -378878,7 +393481,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24D0,
0x2C00,
- 0x2C2F,
+ 0x2C30,
0x2C60,
0x2C61,
0x2C62,
@@ -379207,12 +393810,20 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */
0xA7BD,
0xA7BE,
0xA7BF,
+ 0xA7C0,
+ 0xA7C1,
0xA7C2,
0xA7C3,
0xA7C4,
0xA7C8,
0xA7C9,
0xA7CA,
+ 0xA7D0,
+ 0xA7D1,
+ 0xA7D6,
+ 0xA7D7,
+ 0xA7D8,
+ 0xA7D9,
0xA7F5,
0xA7F6,
0xFF21,
@@ -379221,6 +393832,14 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */
0x10428,
0x104B0,
0x104D4,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
0x10C80,
0x10CB3,
0x118A0,
@@ -379304,7 +393923,7 @@ static const UV UNI_SB__UP_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
- 1611, /* Number of elements */
+ 1681, /* 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 */
@@ -379406,8 +394025,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x610,
0x61B,
0x61C,
- 0x61D,
- 0x61E,
0x66A,
0x66B,
0x66D,
@@ -379441,11 +394058,13 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x970,
0x971,
0x984,
@@ -379609,7 +394228,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -379619,6 +394238,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -379643,14 +394264,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -379716,7 +394337,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -379808,10 +394429,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -379834,8 +394453,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1808,
0x180A,
0x180B,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -379872,15 +394489,17 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1AA7,
0x1AAC,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5C,
0x1B5E,
0x1B60,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1C00,
@@ -379900,8 +394519,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -380018,10 +394635,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x29FC,
0x29FE,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -380065,6 +394678,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x2E3D,
0x2E42,
0x2E43,
+ 0x2E53,
+ 0x2E5D,
0x3000,
0x3003,
0x3005,
@@ -380100,8 +394715,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -380124,10 +394737,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -380333,12 +394950,34 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -380415,7 +395054,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
@@ -380423,6 +395062,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x10F51,
0x10F55,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -380430,11 +395071,11 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11049,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
0x110BD,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -380466,7 +395107,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1123B,
0x1123D,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -380549,6 +395190,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1173A,
0x1173C,
0x1173F,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -380589,7 +395232,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9B,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -380633,6 +395276,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -380641,10 +395292,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -380654,7 +395305,9 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -380691,10 +395344,20 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -380709,6 +395372,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9D,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -380795,6 +395462,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -380805,6 +395476,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -380813,8 +395488,20 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -380900,9 +395587,9 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -380913,6 +395600,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -380929,7 +395618,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
- 1631, /* Number of elements */
+ 1701, /* 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 */
@@ -381051,8 +395740,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x610,
0x61B,
0x61C,
- 0x61D,
- 0x61E,
0x66A,
0x66B,
0x66D,
@@ -381086,11 +395773,13 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x970,
0x971,
0x984,
@@ -381254,7 +395943,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -381264,6 +395953,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -381288,14 +395979,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -381361,7 +396052,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -381453,10 +396144,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -381479,8 +396168,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1808,
0x180A,
0x180B,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -381517,15 +396204,17 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1AA7,
0x1AAC,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5C,
0x1B5E,
0x1B60,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1C00,
@@ -381545,8 +396234,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -381663,10 +396350,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x29FC,
0x29FE,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -381710,6 +396393,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x2E3D,
0x2E42,
0x2E43,
+ 0x2E53,
+ 0x2E5D,
0x3000,
0x3003,
0x3005,
@@ -381745,8 +396430,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -381769,10 +396452,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -381978,12 +396665,34 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -382060,7 +396769,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
@@ -382068,6 +396777,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x10F51,
0x10F55,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -382075,11 +396786,11 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11049,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
0x110BD,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -382111,7 +396822,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1123B,
0x1123D,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -382194,6 +396905,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1173A,
0x1173C,
0x1173F,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -382234,7 +396947,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9B,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -382278,6 +396991,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -382286,10 +397007,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -382299,7 +397020,9 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -382336,10 +397059,20 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -382354,6 +397087,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9D,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -382440,6 +397177,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -382450,6 +397191,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -382458,8 +397203,20 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -382545,9 +397302,9 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -382558,6 +397315,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -382574,7 +397333,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
- 1629, /* Number of elements */
+ 1699, /* 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 */
@@ -382694,8 +397453,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x610,
0x61B,
0x61C,
- 0x61D,
- 0x61E,
0x66A,
0x66B,
0x66D,
@@ -382729,11 +397486,13 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x970,
0x971,
0x984,
@@ -382897,7 +397656,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -382907,6 +397666,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -382931,14 +397692,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -383004,7 +397765,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -383096,10 +397857,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -383122,8 +397881,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1808,
0x180A,
0x180B,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -383160,15 +397917,17 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1AA7,
0x1AAC,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5C,
0x1B5E,
0x1B60,
0x1B6B,
0x1B74,
+ 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1C00,
@@ -383188,8 +397947,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -383306,10 +398063,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x29FC,
0x29FE,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -383353,6 +398106,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x2E3D,
0x2E42,
0x2E43,
+ 0x2E53,
+ 0x2E5D,
0x3000,
0x3003,
0x3005,
@@ -383388,8 +398143,6 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -383412,10 +398165,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -383621,12 +398378,34 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -383703,7 +398482,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
@@ -383711,6 +398490,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x10F51,
0x10F55,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -383718,11 +398499,11 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11049,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
0x110BD,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -383754,7 +398535,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1123B,
0x1123D,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -383837,6 +398618,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1173A,
0x1173C,
0x1173F,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -383877,7 +398660,7 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9B,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -383921,6 +398704,14 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F45,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -383929,10 +398720,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -383942,7 +398733,9 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -383979,10 +398772,20 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -383997,6 +398800,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9D,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -384083,6 +398890,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -384093,6 +398904,10 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -384101,8 +398916,20 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -384188,9 +399015,9 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -384201,6 +399028,8 @@ static const UV UNI_SB__XX_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -384242,7 +399071,7 @@ static const UV UNI_SC_invlist[] = { /* for ASCII/Latin1 */
0x17DB,
0x17DC,
0x20A0,
- 0x20C0,
+ 0x20C1,
0xA838,
0xA839,
0xFDFC,
@@ -384303,7 +399132,7 @@ static const UV UNI_SC_invlist[] = { /* for EBCDIC 1047 */
0x17DB,
0x17DC,
0x20A0,
- 0x20C0,
+ 0x20C1,
0xA838,
0xA839,
0xFDFC,
@@ -384364,7 +399193,7 @@ static const UV UNI_SC_invlist[] = { /* for EBCDIC 037 */
0x17DB,
0x17DC,
0x20A0,
- 0x20C0,
+ 0x20C1,
0xA838,
0xA839,
0xFDFC,
@@ -384402,7 +399231,7 @@ static const UV UNI_SC__ADLM_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__ARAB_invlist[] = { /* for all charsets */
- 115, /* Number of elements */
+ 117, /* 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 */
@@ -384414,8 +399243,6 @@ static const UV UNI_SC__ARAB_invlist[] = { /* for all charsets */
0x60D,
0x61B,
0x61C,
- 0x61D,
- 0x61E,
0x61F,
0x620,
0x640,
@@ -384429,30 +399256,34 @@ static const UV UNI_SC__ARAB_invlist[] = { /* for all charsets */
0x700,
0x750,
0x780,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x8E2,
0x8E3,
0x900,
0xFB50,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
0xFD3E,
- 0xFD50,
+ 0xFD40,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
+ 0xFE00,
0xFE70,
0xFE75,
0xFE76,
0xFEFD,
0x10E60,
0x10E7F,
+ 0x10EFD,
+ 0x10F00,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -384621,6 +399452,16 @@ static const UV UNI_SC__COPT_invlist[] = { /* for all charsets */
0x2D00
};
+static const UV UNI_SC__CPMN_invlist[] = { /* for all charsets */
+ 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,
+ 0x12F90,
+ 0x12FF3
+};
+
static const UV UNI_SC__CPRT_invlist[] = { /* for all charsets */
13, /* Number of elements */
148565664, /* Version and data structure type */
@@ -384642,7 +399483,7 @@ static const UV UNI_SC__CPRT_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__CYRL_invlist[] = { /* for all charsets */
- 17, /* Number of elements */
+ 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 */
@@ -384662,11 +399503,15 @@ static const UV UNI_SC__CYRL_invlist[] = { /* for all charsets */
0xA640,
0xA6A0,
0xFE2E,
- 0xFE30
+ 0xFE30,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090
};
static const UV UNI_SC__DEVA_invlist[] = { /* for all charsets */
- 9, /* Number of elements */
+ 11, /* 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 */
@@ -384678,7 +399523,9 @@ static const UV UNI_SC__DEVA_invlist[] = { /* for all charsets */
0x966,
0x980,
0xA8E0,
- 0xA900
+ 0xA900,
+ 0x11B00,
+ 0x11B0A
};
static const UV UNI_SC__DOGR_invlist[] = { /* for all charsets */
@@ -384738,15 +399585,13 @@ static const UV UNI_SC__GEOR_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__GLAG_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
+ 0x2C60,
0x1E000,
0x1E007,
0x1E008,
@@ -384996,7 +399841,7 @@ static const UV UNI_SC__GURU_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__HAN_invlist[] = { /* for all charsets */
- 39, /* Number of elements */
+ 43, /* 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 */
@@ -385018,17 +399863,19 @@ static const UV UNI_SC__HAN_invlist[] = { /* for all charsets */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xF900,
0xFA6E,
0xFA70,
0xFADA,
+ 0x16FE2,
+ 0x16FE4,
0x16FF0,
0x16FF2,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -385038,7 +399885,9 @@ static const UV UNI_SC__HAN_invlist[] = { /* for all charsets */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
static const UV UNI_SC__HANG_invlist[] = { /* for all charsets */
@@ -385088,7 +399937,7 @@ static const UV UNI_SC__HANO_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__HIRA_invlist[] = { /* for all charsets */
- 11, /* Number of elements */
+ 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 */
@@ -385098,7 +399947,9 @@ static const UV UNI_SC__HIRA_invlist[] = { /* for all charsets */
0x309D,
0x30A0,
0x1B001,
- 0x1B11F,
+ 0x1B120,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
0x1F200,
@@ -385132,7 +399983,7 @@ static const UV UNI_SC__KALI_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__KANA_invlist[] = { /* for all charsets */
- 19, /* Number of elements */
+ 29, /* 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 */
@@ -385151,8 +400002,18 @@ static const UV UNI_SC__KANA_invlist[] = { /* for all charsets */
0xFF70,
0xFF71,
0xFF9E,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168
};
@@ -385166,7 +400027,7 @@ static const UV UNI_SC__KHOJ_invlist[] = { /* for all charsets */
0x11200,
0x11212,
0x11213,
- 0x1123F
+ 0x11242
};
static const UV UNI_SC__KNDA_invlist[] = { /* for all charsets */
@@ -385193,14 +400054,14 @@ static const UV UNI_SC__KNDA_invlist[] = { /* for all charsets */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3
+ 0xCF4
};
static const UV UNI_SC__KTHI_invlist[] = { /* for all charsets */
@@ -385210,7 +400071,7 @@ static const UV UNI_SC__KTHI_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x11080,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE
};
@@ -385218,7 +400079,7 @@ static const UV UNI_SC__KTHI_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SC__LATN_invlist[] = { /* for ASCII/Latin1 */
- 65, /* Number of elements */
+ 79, /* 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 */
@@ -385270,10 +400131,14 @@ static const UV UNI_SC__LATN_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xAB30,
0xAB5B,
@@ -385286,7 +400151,17 @@ static const UV UNI_SC__LATN_invlist[] = { /* for ASCII/Latin1 */
0xFF21,
0xFF3B,
0xFF41,
- 0xFF5B
+ 0xFF5B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B
};
# endif /* ASCII/Latin1 */
@@ -385297,7 +400172,7 @@ static const UV UNI_SC__LATN_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 1047 */
- 91, /* Number of elements */
+ 105, /* 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 */
@@ -385375,10 +400250,14 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xAB30,
0xAB5B,
@@ -385391,7 +400270,17 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 1047 */
0xFF21,
0xFF3B,
0xFF41,
- 0xFF5B
+ 0xFF5B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B
};
# endif /* EBCDIC 1047 */
@@ -385402,7 +400291,7 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 037 */
- 87, /* Number of elements */
+ 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 */
@@ -385476,10 +400365,14 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA788,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA800,
0xAB30,
0xAB5B,
@@ -385492,7 +400385,17 @@ static const UV UNI_SC__LATN_invlist[] = { /* for EBCDIC 037 */
0xFF21,
0xFF3B,
0xFF41,
- 0xFF5B
+ 0xFF5B,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B
};
# endif /* EBCDIC 037 */
@@ -385620,7 +400523,7 @@ static const UV UNI_SC__MODI_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__MONG_invlist[] = { /* for all charsets */
- 15, /* Number of elements */
+ 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 */
@@ -385630,8 +400533,6 @@ static const UV UNI_SC__MONG_invlist[] = { /* for all charsets */
0x1804,
0x1805,
0x1806,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -385687,6 +400588,18 @@ static const UV UNI_SC__NAND_invlist[] = { /* for all charsets */
0x119E5
};
+static const UV UNI_SC__NKO_invlist[] = { /* for all charsets */
+ 5, /* 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,
+ 0x7C0,
+ 0x7FB,
+ 0x7FD,
+ 0x800
+};
+
static const UV UNI_SC__ORYA_invlist[] = { /* for all charsets */
29, /* Number of elements */
148565664, /* Version and data structure type */
@@ -385723,6 +400636,16 @@ static const UV UNI_SC__ORYA_invlist[] = { /* for all charsets */
0xB78
};
+static const UV UNI_SC__OUGR_invlist[] = { /* for all charsets */
+ 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,
+ 0x10F70,
+ 0x10F8A
+};
+
static const UV UNI_SC__PERM_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -385758,7 +400681,7 @@ static const UV UNI_SC__PHLP_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__QAAI_invlist[] = { /* for all charsets */
- 57, /* Number of elements */
+ 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 */
@@ -385774,7 +400697,7 @@ static const UV UNI_SC__QAAI_invlist[] = { /* for all charsets */
0x951,
0x955,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -385788,8 +400711,6 @@ static const UV UNI_SC__QAAI_invlist[] = { /* for all charsets */
0x1CF8,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200C,
0x200E,
@@ -385809,6 +400730,10 @@ static const UV UNI_SC__QAAI_invlist[] = { /* for all charsets */
0x102E1,
0x1133B,
0x1133C,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D167,
0x1D16A,
0x1D17B,
@@ -385946,7 +400871,7 @@ static const UV UNI_SC__TAKR_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA
};
@@ -386008,7 +400933,7 @@ static const UV UNI_SC__TAML_invlist[] = { /* for all charsets */
};
static const UV UNI_SC__TELU_invlist[] = { /* for all charsets */
- 25, /* Number of elements */
+ 27, /* 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 */
@@ -386021,7 +400946,7 @@ static const UV UNI_SC__TELU_invlist[] = { /* for all charsets */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -386031,6 +400956,8 @@ static const UV UNI_SC__TELU_invlist[] = { /* for all charsets */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -386046,9 +400973,9 @@ static const UV UNI_SC__TGLG_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715
+ 0x1716,
+ 0x171F,
+ 0x1720
};
static const UV UNI_SC__THAA_invlist[] = { /* for all charsets */
@@ -386187,7 +401114,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x2080,
0x208F,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2126,
0x2127,
@@ -386213,7 +401140,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x2B97,
0x2C00,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2FF0,
0x2FFC,
0x3000,
@@ -386300,10 +401227,10 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x101FD,
0x102E1,
0x102FC,
- 0x16FE2,
- 0x16FE4,
0x1BCA0,
0x1BCA4,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -386317,7 +401244,9 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -386398,16 +401327,18 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -386421,27 +401352,23 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -386573,7 +401500,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x2080,
0x208F,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2126,
0x2127,
@@ -386599,7 +401526,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x2B97,
0x2C00,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2FF0,
0x2FFC,
0x3000,
@@ -386686,10 +401613,10 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x101FD,
0x102E1,
0x102FC,
- 0x16FE2,
- 0x16FE4,
0x1BCA0,
0x1BCA4,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -386703,7 +401630,9 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -386784,16 +401713,18 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -386807,27 +401738,23 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -386955,7 +401882,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
0x2080,
0x208F,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2126,
0x2127,
@@ -386981,7 +401908,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
0x2B97,
0x2C00,
0x2E00,
- 0x2E53,
+ 0x2E5E,
0x2FF0,
0x2FFC,
0x3000,
@@ -387068,10 +401995,10 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
0x101FD,
0x102E1,
0x102FC,
- 0x16FE2,
- 0x16FE4,
0x1BCA0,
0x1BCA4,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -387085,7 +402012,9 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -387166,16 +402095,18 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -387189,27 +402120,23 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -387227,7 +402154,7 @@ static const UV UNI_SC__ZYYY_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SD_invlist[] = { /* for ASCII/Latin1 */
- 63, /* Number of elements */
+ 69, /* 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 */
@@ -387293,7 +402220,13 @@ static const UV UNI_SD_invlist[] = { /* for ASCII/Latin1 */
0x1D65E,
0x1D660,
0x1D692,
- 0x1D694
+ 0x1D694,
+ 0x1DF1A,
+ 0x1DF1B,
+ 0x1E04C,
+ 0x1E04E,
+ 0x1E068,
+ 0x1E069
};
# endif /* ASCII/Latin1 */
@@ -387304,7 +402237,7 @@ static const UV UNI_SD_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SD_invlist[] = { /* for EBCDIC 1047 */
- 65, /* Number of elements */
+ 71, /* 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 */
@@ -387372,7 +402305,13 @@ static const UV UNI_SD_invlist[] = { /* for EBCDIC 1047 */
0x1D65E,
0x1D660,
0x1D692,
- 0x1D694
+ 0x1D694,
+ 0x1DF1A,
+ 0x1DF1B,
+ 0x1E04C,
+ 0x1E04E,
+ 0x1E068,
+ 0x1E069
};
# endif /* EBCDIC 1047 */
@@ -387383,7 +402322,7 @@ static const UV UNI_SD_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SD_invlist[] = { /* for EBCDIC 037 */
- 65, /* Number of elements */
+ 71, /* 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 */
@@ -387451,7 +402390,13 @@ static const UV UNI_SD_invlist[] = { /* for EBCDIC 037 */
0x1D65E,
0x1D660,
0x1D692,
- 0x1D694
+ 0x1D694,
+ 0x1DF1A,
+ 0x1DF1B,
+ 0x1E04C,
+ 0x1E04E,
+ 0x1E068,
+ 0x1E069
};
# endif /* EBCDIC 037 */
@@ -387587,7 +402532,7 @@ static const UV UNI_SINHALAARCHAICNUMBERS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */
- 61, /* Number of elements */
+ 63, /* 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 */
@@ -387618,6 +402563,8 @@ static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */
0x376,
0x384,
0x386,
+ 0x888,
+ 0x889,
0x1FBD,
0x1FBE,
0x1FBF,
@@ -387643,7 +402590,7 @@ static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */
0xAB6A,
0xAB6C,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFF3E,
0xFF3F,
0xFF40,
@@ -387662,7 +402609,7 @@ static const UV UNI_SK_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */
- 59, /* Number of elements */
+ 61, /* 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 */
@@ -387691,6 +402638,8 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */
0x376,
0x384,
0x386,
+ 0x888,
+ 0x889,
0x1FBD,
0x1FBE,
0x1FBF,
@@ -387716,7 +402665,7 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */
0xAB6A,
0xAB6C,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFF3E,
0xFF3F,
0xFF40,
@@ -387735,7 +402684,7 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SK_invlist[] = { /* for EBCDIC 037 */
- 57, /* Number of elements */
+ 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 */
@@ -387762,6 +402711,8 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 037 */
0x376,
0x384,
0x386,
+ 0x888,
+ 0x889,
0x1FBD,
0x1FBE,
0x1FBF,
@@ -387787,7 +402738,7 @@ static const UV UNI_SK_invlist[] = { /* for EBCDIC 037 */
0xAB6A,
0xAB6C,
0xFBB2,
- 0xFBC2,
+ 0xFBC3,
0xFF3E,
0xFF3F,
0xFF40,
@@ -388253,7 +403204,7 @@ static const UV UNI_SMALLKANAEXT_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
- 365, /* Number of elements */
+ 369, /* 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 */
@@ -388472,8 +403423,12 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
0xA83A,
0xAA77,
0xAA7A,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFFE4,
0xFFE5,
0xFFE8,
@@ -388510,6 +403465,8 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
0x16B46,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -388523,7 +403480,7 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -388574,16 +403531,18 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
0x1F3FB,
0x1F400,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -388597,27 +403556,23 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -388632,7 +403587,7 @@ static const UV UNI_SO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
- 365, /* Number of elements */
+ 369, /* 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 */
@@ -388851,8 +403806,12 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
0xA83A,
0xAA77,
0xAA7A,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFFE4,
0xFFE5,
0xFFE8,
@@ -388889,6 +403848,8 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
0x16B46,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -388902,7 +403863,7 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -388953,16 +403914,18 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
0x1F3FB,
0x1F400,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -388976,27 +403939,23 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -389011,7 +403970,7 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */
- 365, /* Number of elements */
+ 369, /* 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 */
@@ -389230,8 +404189,12 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */
0xA83A,
0xAA77,
0xAA7A,
+ 0xFD40,
+ 0xFD50,
+ 0xFDCF,
+ 0xFDD0,
0xFDFD,
- 0xFDFE,
+ 0xFE00,
0xFFE4,
0xFFE5,
0xFFE8,
@@ -389268,6 +404231,8 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */
0x16B46,
0x1BC9C,
0x1BC9D,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -389281,7 +404246,7 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D242,
0x1D245,
@@ -389332,16 +404297,18 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */
0x1F3FB,
0x1F400,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -389355,27 +404322,23 @@ static const UV UNI_SO_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -389441,7 +404404,7 @@ static const UV UNI_SPECIALS_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
- 153, /* Number of elements */
+ 161, /* 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 */
@@ -389454,7 +404417,7 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
0x40,
0x589,
0x58A,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -389492,6 +404455,8 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
0x1B5C,
0x1B5E,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C3D,
0x1C7E,
@@ -389504,6 +404469,8 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
0x2E2F,
0x2E3C,
0x2E3D,
+ 0x2E53,
+ 0x2E55,
0x3002,
0x3003,
0xA4FF,
@@ -389544,6 +404511,8 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
0x10A58,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x11049,
0x110BE,
@@ -389584,6 +404553,8 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
0x11C43,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x16A6E,
0x16A70,
0x16AF5,
@@ -389608,7 +404579,7 @@ static const UV UNI_STERM_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
- 153, /* Number of elements */
+ 161, /* 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 */
@@ -389621,7 +404592,7 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
0x70,
0x589,
0x58A,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -389659,6 +404630,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
0x1B5C,
0x1B5E,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C3D,
0x1C7E,
@@ -389671,6 +404644,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
0x2E2F,
0x2E3C,
0x2E3D,
+ 0x2E53,
+ 0x2E55,
0x3002,
0x3003,
0xA4FF,
@@ -389711,6 +404686,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
0x10A58,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x11049,
0x110BE,
@@ -389751,6 +404728,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
0x11C43,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x16A6E,
0x16A70,
0x16AF5,
@@ -389775,7 +404754,7 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */
- 153, /* Number of elements */
+ 161, /* 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 */
@@ -389788,7 +404767,7 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */
0x70,
0x589,
0x58A,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -389826,6 +404805,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */
0x1B5C,
0x1B5E,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C3D,
0x1C7E,
@@ -389838,6 +404819,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */
0x2E2F,
0x2E3C,
0x2E3D,
+ 0x2E53,
+ 0x2E55,
0x3002,
0x3003,
0xA4FF,
@@ -389878,6 +404861,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */
0x10A58,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x11049,
0x110BE,
@@ -389918,6 +404903,8 @@ static const UV UNI_STERM_invlist[] = { /* for EBCDIC 037 */
0x11C43,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x16A6E,
0x16A70,
0x16AF5,
@@ -390093,7 +405080,7 @@ static const UV UNI_SYMBOLSFORLEGACYCOMPUTING_invlist[] = { /* for all charsets
};
static const UV UNI_SYRC_invlist[] = { /* for all charsets */
- 23, /* Number of elements */
+ 25, /* 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 */
@@ -390119,7 +405106,9 @@ static const UV UNI_SYRC_invlist[] = { /* for all charsets */
0x860,
0x86B,
0x1DF8,
- 0x1DF9
+ 0x1DF9,
+ 0x1DFA,
+ 0x1DFB
};
static const UV UNI_SYRIACSUP_invlist[] = { /* for all charsets */
@@ -390179,7 +405168,7 @@ static const UV UNI_TAKR_invlist[] = { /* for all charsets */
0xA830,
0xA83A,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA
};
@@ -390315,7 +405304,7 @@ static const UV UNI_TANGUTSUP_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x18D00,
- 0x18D90
+ 0x18D80
};
static const UV UNI_TAVT_invlist[] = { /* for all charsets */
@@ -390331,7 +405320,7 @@ static const UV UNI_TAVT_invlist[] = { /* for all charsets */
};
static const UV UNI_TELU_invlist[] = { /* for all charsets */
- 33, /* Number of elements */
+ 35, /* 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 */
@@ -390348,7 +405337,7 @@ static const UV UNI_TELU_invlist[] = { /* for all charsets */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -390358,6 +405347,8 @@ static const UV UNI_TELU_invlist[] = { /* for all charsets */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -390373,7 +405364,7 @@ static const UV UNI_TELU_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
- 209, /* Number of elements */
+ 217, /* 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 */
@@ -390400,7 +405391,7 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
0x60D,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -390448,6 +405439,8 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
0x1B5C,
0x1B5D,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C40,
0x1C7E,
@@ -390466,6 +405459,8 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E53,
+ 0x2E55,
0x3001,
0x3003,
0xA4FE,
@@ -390526,6 +405521,8 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
0x10B9D,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BE,
@@ -390570,6 +405567,8 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x12470,
0x12475,
0x16A6E,
@@ -390596,7 +405595,7 @@ static const UV UNI_TERM_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
- 211, /* Number of elements */
+ 219, /* 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 */
@@ -390625,7 +405624,7 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
0x60D,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -390673,6 +405672,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
0x1B5C,
0x1B5D,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C40,
0x1C7E,
@@ -390691,6 +405692,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E53,
+ 0x2E55,
0x3001,
0x3003,
0xA4FE,
@@ -390751,6 +405754,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
0x10B9D,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BE,
@@ -390795,6 +405800,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x12470,
0x12475,
0x16A6E,
@@ -390821,7 +405828,7 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */
- 211, /* Number of elements */
+ 219, /* 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 */
@@ -390850,7 +405857,7 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */
0x60D,
0x61B,
0x61C,
- 0x61E,
+ 0x61D,
0x620,
0x6D4,
0x6D5,
@@ -390898,6 +405905,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */
0x1B5C,
0x1B5D,
0x1B60,
+ 0x1B7D,
+ 0x1B7F,
0x1C3B,
0x1C40,
0x1C7E,
@@ -390916,6 +405925,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */
0x2E4D,
0x2E4E,
0x2E50,
+ 0x2E53,
+ 0x2E55,
0x3001,
0x3003,
0xA4FE,
@@ -390976,6 +405987,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */
0x10B9D,
0x10F55,
0x10F5A,
+ 0x10F86,
+ 0x10F8A,
0x11047,
0x1104E,
0x110BE,
@@ -391020,6 +406033,8 @@ static const UV UNI_TERM_invlist[] = { /* for EBCDIC 037 */
0x11C72,
0x11EF7,
0x11EF9,
+ 0x11F43,
+ 0x11F45,
0x12470,
0x12475,
0x16A6E,
@@ -391061,9 +406076,9 @@ static const UV UNI_TGLG_invlist[] = { /* for all charsets */
1 if it starts at the element beyond 0 */
0x0,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
+ 0x1716,
+ 0x171F,
+ 0x1720,
0x1735,
0x1737
};
@@ -391144,6 +406159,28 @@ static const UV UNI_TIRH_invlist[] = { /* for all charsets */
0x114DA
};
+static const UV UNI_TNSA_invlist[] = { /* for all charsets */
+ 5, /* 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,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA
+};
+
+static const UV UNI_TOTO_invlist[] = { /* for all charsets */
+ 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,
+ 0x1E290,
+ 0x1E2AF
+};
+
static const UV UNI_TRANSPORTANDMAP_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -391174,6 +406211,16 @@ static const UV UNI_UCASEXT_invlist[] = { /* for all charsets */
0x1900
};
+static const UV UNI_UCASEXTA_invlist[] = { /* for all charsets */
+ 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,
+ 0x11AB0,
+ 0x11AC0
+};
+
static const UV UNI_UGAR_invlist[] = { /* for all charsets */
5, /* Number of elements */
148565664, /* Version and data structure type */
@@ -391187,7 +406234,7 @@ static const UV UNI_UGAR_invlist[] = { /* for all charsets */
};
static const UV UNI_UIDEO_invlist[] = { /* for all charsets */
- 31, /* Number of elements */
+ 33, /* 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 */
@@ -391195,7 +406242,7 @@ static const UV UNI_UIDEO_invlist[] = { /* for all charsets */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
+ 0xA000,
0xFA0E,
0xFA10,
0xFA11,
@@ -391211,9 +406258,9 @@ static const UV UNI_UIDEO_invlist[] = { /* for all charsets */
0xFA27,
0xFA2A,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -391221,7 +406268,9 @@ static const UV UNI_UIDEO_invlist[] = { /* for all charsets */
0x2CEB0,
0x2EBE1,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
static const UV UNI_VAI_invlist[] = { /* for all charsets */
@@ -391254,10 +406303,34 @@ static const UV UNI_VERTICALFORMS_invlist[] = { /* for all charsets */
0xFE20
};
+static const UV UNI_VITH_invlist[] = { /* for all charsets */
+ 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 */
+ 0x0,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD
+};
+
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */
- 177, /* Number of elements */
+ 179, /* 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 */
@@ -391411,15 +406484,17 @@ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */
0x11580,
0x11600,
0x11A00,
- 0x11AB0,
+ 0x11AC0,
0x13000,
- 0x13440,
+ 0x13460,
0x14400,
0x14680,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D200,
0x1D2E0,
@@ -391448,7 +406523,7 @@ static const UV UNI_VO__R_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */
- 175, /* Number of elements */
+ 177, /* 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 */
@@ -391600,15 +406675,17 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */
0x11580,
0x11600,
0x11A00,
- 0x11AB0,
+ 0x11AC0,
0x13000,
- 0x13440,
+ 0x13460,
0x14400,
0x14680,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D200,
0x1D2E0,
@@ -391637,7 +406714,7 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 037 */
- 175, /* Number of elements */
+ 177, /* 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 */
@@ -391789,15 +406866,17 @@ static const UV UNI_VO__R_invlist[] = { /* for EBCDIC 037 */
0x11580,
0x11600,
0x11A00,
- 0x11AB0,
+ 0x11AC0,
0x13000,
- 0x13440,
+ 0x13460,
0x14400,
0x14680,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D200,
0x1D2E0,
@@ -391935,7 +407014,7 @@ static const UV UNI_VO__TU_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */
- 255, /* Number of elements */
+ 257, /* 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 */
@@ -392165,15 +407244,17 @@ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */
0x11580,
0x11600,
0x11A00,
- 0x11AB0,
+ 0x11AC0,
0x13000,
- 0x13440,
+ 0x13460,
0x14400,
0x14680,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D200,
0x1D2E0,
@@ -392204,7 +407285,7 @@ static const UV UNI_VO__U_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */
- 253, /* Number of elements */
+ 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 */
@@ -392432,15 +407513,17 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */
0x11580,
0x11600,
0x11A00,
- 0x11AB0,
+ 0x11AC0,
0x13000,
- 0x13440,
+ 0x13460,
0x14400,
0x14680,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D200,
0x1D2E0,
@@ -392471,7 +407554,7 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */
- 253, /* Number of elements */
+ 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 */
@@ -392699,15 +407782,17 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */
0x11580,
0x11600,
0x11A00,
- 0x11AB0,
+ 0x11AC0,
0x13000,
- 0x13440,
+ 0x13460,
0x14400,
0x14680,
0x16FE0,
- 0x18D90,
- 0x1B000,
+ 0x18D80,
+ 0x1AFF0,
0x1B300,
+ 0x1CF00,
+ 0x1CFD0,
0x1D000,
0x1D200,
0x1D2E0,
@@ -392733,13 +407818,15 @@ static const UV UNI_VO__U_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_VS_invlist[] = { /* for all charsets */
- 7, /* Number of elements */
+ 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,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0xFE00,
0xFE10,
0xE0100,
@@ -392908,7 +407995,7 @@ static const UV UNI_WB__EX_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
- 589, /* Number of elements */
+ 629, /* 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 */
@@ -392961,7 +408048,9 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x82E,
0x859,
0x85C,
- 0x8D3,
+ 0x898,
+ 0x8A0,
+ 0x8CA,
0x8E2,
0x8E3,
0x904,
@@ -393045,6 +408134,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0xBD8,
0xC00,
0xC05,
+ 0xC3C,
+ 0xC3D,
0xC3E,
0xC45,
0xC46,
@@ -393069,6 +408160,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0xCD7,
0xCE2,
0xCE4,
+ 0xCF3,
+ 0xCF4,
0xD00,
0xD04,
0xD3B,
@@ -393106,7 +408199,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xF18,
0xF1A,
0xF35,
@@ -393148,7 +408241,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x135D,
0x1360,
0x1712,
- 0x1715,
+ 0x1716,
0x1732,
0x1735,
0x1752,
@@ -393161,6 +408254,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x17DE,
0x180B,
0x180E,
+ 0x180F,
+ 0x1810,
0x1885,
0x1887,
0x18A9,
@@ -393178,7 +408273,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x1A7F,
0x1A80,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
0x1B05,
0x1B34,
@@ -393204,8 +408299,6 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x1CF7,
0x1CFA,
0x1DC0,
- 0x1DFA,
- 0x1DFB,
0x1E00,
0x200C,
0x200D,
@@ -393313,16 +408406,26 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x10D28,
0x10EAB,
0x10EAD,
+ 0x10EFD,
+ 0x10F00,
0x10F46,
0x10F51,
+ 0x10F82,
+ 0x10F86,
0x11000,
0x11003,
0x11038,
0x11047,
+ 0x11070,
+ 0x11071,
+ 0x11073,
+ 0x11075,
0x1107F,
0x11083,
0x110B0,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x11100,
0x11103,
0x11127,
@@ -393343,6 +408446,8 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x11238,
0x1123E,
0x1123F,
+ 0x11241,
+ 0x11242,
0x112DF,
0x112EB,
0x11300,
@@ -393437,6 +408542,18 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x11D98,
0x11EF3,
0x11EF7,
+ 0x11F00,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F34,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x13440,
+ 0x13441,
+ 0x13447,
+ 0x13456,
0x16AF0,
0x16AF5,
0x16B30,
@@ -393453,6 +408570,10 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x16FF2,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -393487,10 +408608,16 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E08F,
+ 0x1E090,
0x1E130,
0x1E137,
+ 0x1E2AE,
+ 0x1E2AF,
0x1E2EC,
0x1E2F0,
+ 0x1E4EC,
+ 0x1E4F0,
0x1E8D0,
0x1E8D7,
0x1E944,
@@ -393506,7 +408633,7 @@ static const UV UNI_WB__EXTEND_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_WB__FO_invlist[] = { /* for ASCII/Latin1 */
- 39, /* Number of elements */
+ 41, /* 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 */
@@ -393521,6 +408648,8 @@ static const UV UNI_WB__FO_invlist[] = { /* for ASCII/Latin1 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -393542,7 +408671,7 @@ static const UV UNI_WB__FO_invlist[] = { /* for ASCII/Latin1 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -393559,7 +408688,7 @@ static const UV UNI_WB__FO_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 1047 */
- 39, /* Number of elements */
+ 41, /* 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 */
@@ -393574,6 +408703,8 @@ static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 1047 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -393595,7 +408726,7 @@ static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 1047 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -393612,7 +408743,7 @@ static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 037 */
- 39, /* Number of elements */
+ 41, /* 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 */
@@ -393627,6 +408758,8 @@ static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 037 */
0x6DE,
0x70F,
0x710,
+ 0x890,
+ 0x892,
0x8E2,
0x8E3,
0x180E,
@@ -393648,7 +408781,7 @@ static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 037 */
0x110CD,
0x110CE,
0x13430,
- 0x13439,
+ 0x13440,
0x1BCA0,
0x1BCA4,
0x1D173,
@@ -393660,7 +408793,7 @@ static const UV UNI_WB__FO_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_WB__KA_invlist[] = { /* for all charsets */
- 21, /* Number of elements */
+ 31, /* 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 */
@@ -393681,8 +408814,18 @@ static const UV UNI_WB__KA_invlist[] = { /* for all charsets */
0x3358,
0xFF66,
0xFF9E,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168
};
@@ -393690,7 +408833,7 @@ static const UV UNI_WB__KA_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
- 1095, /* Number of elements */
+ 1157, /* 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 */
@@ -393789,10 +408932,12 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -393921,6 +409066,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -393937,7 +409084,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -394034,10 +409181,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -394062,7 +409207,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -394166,10 +409311,6 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -394232,10 +409373,14 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0xA6A0,
0xA6F0,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -394369,12 +409514,34 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -394445,12 +409612,18 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -394477,6 +409650,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -394569,7 +409744,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -394597,6 +409772,12 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -394605,14 +409786,20 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -394703,14 +409890,32 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -394799,7 +410004,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
- 1121, /* Number of elements */
+ 1183, /* 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 */
@@ -394924,10 +410129,12 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -395056,6 +410263,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -395072,7 +410281,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -395169,10 +410378,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -395197,7 +410404,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -395301,10 +410508,6 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -395367,10 +410570,14 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0xA6A0,
0xA6F0,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -395504,12 +410711,34 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -395580,12 +410809,18 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -395612,6 +410847,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -395704,7 +410941,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -395732,6 +410969,12 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -395740,14 +410983,20 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -395838,14 +411087,32 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -395934,7 +411201,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
- 1117, /* Number of elements */
+ 1179, /* 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 */
@@ -396055,10 +411322,12 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -396187,6 +411456,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -396203,7 +411474,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -396300,10 +411571,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -396328,7 +411597,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -396432,10 +411701,6 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -396498,10 +411763,14 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0xA6A0,
0xA6F0,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -396635,12 +411904,34 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -396711,12 +412002,18 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -396743,6 +412040,8 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -396835,7 +412134,7 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -396863,6 +412162,12 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -396871,14 +412176,20 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -396969,14 +412280,32 @@ static const UV UNI_WB__LE_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -397422,7 +412751,7 @@ static const UV UNI_WB__NL_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -397537,8 +412866,12 @@ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -397547,6 +412880,8 @@ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -397561,7 +412896,7 @@ static const UV UNI_WB__NU_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -397676,8 +413011,12 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -397686,6 +413025,8 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -397700,7 +413041,7 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 037 */
- 125, /* Number of elements */
+ 131, /* 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 */
@@ -397815,8 +413156,12 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 037 */
0x11D5A,
0x11DA0,
0x11DAA,
+ 0x11F50,
+ 0x11F5A,
0x16A60,
0x16A6A,
+ 0x16AC0,
+ 0x16ACA,
0x16B50,
0x16B5A,
0x1D7CE,
@@ -397825,6 +413170,8 @@ static const UV UNI_WB__NU_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E2F0,
0x1E2FA,
+ 0x1E4F0,
+ 0x1E4FA,
0x1E950,
0x1E95A,
0x1FBF0,
@@ -397962,7 +413309,7 @@ static const UV UNI_WB__WSEGSPACE_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
- 1487, /* Number of elements */
+ 1557, /* 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 */
@@ -398083,11 +413430,13 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x964,
0x966,
0x970,
@@ -398253,7 +413602,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -398263,6 +413612,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -398287,14 +413638,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -398350,7 +413701,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF00,
@@ -398452,10 +413803,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -398472,8 +413821,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x17E0,
0x17EA,
0x180B,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -398502,9 +413849,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -398528,8 +413875,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -398628,10 +413973,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -398710,10 +414051,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0xA67F,
0xA6F2,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -398909,12 +414254,34 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -398989,12 +414356,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -399002,11 +414371,13 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -399036,7 +414407,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -399149,7 +414520,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -399193,6 +414564,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -399201,10 +414580,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -399213,6 +414592,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -399241,8 +414624,18 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x16FE5,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1BC00,
@@ -399257,6 +414650,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -399341,6 +414738,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -399351,6 +414752,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -399359,8 +414764,20 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -399463,7 +414880,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
- 1511, /* Number of elements */
+ 1581, /* 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 */
@@ -399608,11 +415025,13 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x964,
0x966,
0x970,
@@ -399778,7 +415197,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -399788,6 +415207,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -399812,14 +415233,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -399875,7 +415296,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF00,
@@ -399977,10 +415398,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -399997,8 +415416,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x17E0,
0x17EA,
0x180B,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -400027,9 +415444,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -400053,8 +415470,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -400153,10 +415568,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -400235,10 +415646,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0xA67F,
0xA6F2,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -400434,12 +415849,34 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -400514,12 +415951,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -400527,11 +415966,13 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -400561,7 +416002,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -400674,7 +416115,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -400718,6 +416159,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -400726,10 +416175,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -400738,6 +416187,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -400766,8 +416219,18 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x16FE5,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1BC00,
@@ -400782,6 +416245,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -400866,6 +416333,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -400876,6 +416347,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -400884,8 +416359,20 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -400988,7 +416475,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
- 1507, /* Number of elements */
+ 1577, /* 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 */
@@ -401129,11 +416616,13 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x964,
0x966,
0x970,
@@ -401299,7 +416788,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -401309,6 +416798,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -401333,14 +416824,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -401396,7 +416887,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0xEB4,
0xEBD,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xF00,
@@ -401498,10 +416989,8 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -401518,8 +417007,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x17E0,
0x17EA,
0x180B,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -401548,9 +417035,9 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1A90,
0x1A9A,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -401574,8 +417061,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -401674,10 +417159,6 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x24B6,
0x24EA,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -401756,10 +417237,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0xA67F,
0xA6F2,
0xA708,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -401955,12 +417440,34 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -402035,12 +417542,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -402048,11 +417557,13 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
0x110BD,
0x110BE,
+ 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -402082,7 +417593,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -402195,7 +417706,7 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -402239,6 +417750,14 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -402247,10 +417766,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -402259,6 +417778,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -402287,8 +417810,18 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x16FE5,
0x16FF0,
0x16FF2,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
0x1B001,
+ 0x1B120,
+ 0x1B123,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1BC00,
@@ -402303,6 +417836,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -402387,6 +417924,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -402397,6 +417938,10 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -402405,8 +417950,20 @@ static const UV UNI_WB__XX_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -402518,7 +418075,7 @@ static const UV UNI_WCHO_invlist[] = { /* for all charsets */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
- 1475, /* Number of elements */
+ 1551, /* 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 */
@@ -402625,11 +418182,11 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -402797,7 +418354,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -402807,6 +418364,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -402831,14 +418390,14 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -402904,7 +418463,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -402998,10 +418557,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -403021,7 +418578,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -403060,9 +418617,9 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -403086,8 +418643,6 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -403168,10 +418723,6 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -403234,8 +418785,6 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -403254,10 +418803,14 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -403447,12 +419000,34 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -403527,12 +419102,14 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -403540,9 +419117,11 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -403570,7 +419149,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -403649,6 +419228,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -403685,7 +419266,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -403729,6 +419310,14 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -403737,8 +419326,12 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -403747,6 +419340,10 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -403781,10 +419378,20 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -403799,6 +419406,10 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -403885,6 +419496,10 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -403895,6 +419510,10 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -403903,8 +419522,20 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -403982,9 +419613,9 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -403995,6 +419626,8 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -404007,7 +419640,7 @@ static const UV UNI_XIDC_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
- 1499, /* Number of elements */
+ 1575, /* 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 */
@@ -404138,11 +419771,11 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -404310,7 +419943,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -404320,6 +419953,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -404344,14 +419979,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -404417,7 +420052,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -404511,10 +420146,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -404534,7 +420167,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -404573,9 +420206,9 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -404599,8 +420232,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -404681,10 +420312,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -404747,8 +420374,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -404767,10 +420392,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -404960,12 +420589,34 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -405040,12 +420691,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -405053,9 +420706,11 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -405083,7 +420738,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -405162,6 +420817,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -405198,7 +420855,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -405242,6 +420899,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -405250,8 +420915,12 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -405260,6 +420929,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -405294,10 +420967,20 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -405312,6 +420995,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -405398,6 +421085,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -405408,6 +421099,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -405416,8 +421111,20 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -405495,9 +421202,9 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -405508,6 +421215,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -405520,7 +421229,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
- 1495, /* Number of elements */
+ 1571, /* 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 */
@@ -405647,11 +421356,11 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
+ 0x898,
0x8E2,
0x8E3,
0x964,
@@ -405819,7 +421528,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -405829,6 +421538,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -405853,14 +421564,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -405926,7 +421637,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -406020,10 +421731,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1735,
0x1740,
0x1754,
@@ -406043,7 +421752,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x17EA,
0x180B,
0x180E,
- 0x1810,
+ 0x180F,
0x181A,
0x1820,
0x1879,
@@ -406082,9 +421791,9 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1AB0,
0x1ABE,
0x1ABF,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
0x1B5A,
0x1B6B,
@@ -406108,8 +421817,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1CD4,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -406190,10 +421897,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CF4,
@@ -406256,8 +421959,6 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -406276,10 +421977,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA828,
0xA82C,
0xA82D,
@@ -406469,12 +422174,34 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -406549,12 +422276,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x10EAD,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F1D,
0x10F27,
0x10F28,
0x10F30,
0x10F51,
+ 0x10F70,
+ 0x10F86,
0x10FB0,
0x10FC5,
0x10FE0,
@@ -406562,9 +422291,11 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x11000,
0x11047,
0x11066,
- 0x11070,
+ 0x11076,
0x1107F,
0x110BB,
+ 0x110C2,
+ 0x110C3,
0x110D0,
0x110E9,
0x110F0,
@@ -406592,7 +422323,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x11238,
0x1123E,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -406671,6 +422402,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1172C,
0x11730,
0x1173A,
+ 0x11740,
+ 0x11747,
0x11800,
0x1183B,
0x118A0,
@@ -406707,7 +422440,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x11A9A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -406751,6 +422484,14 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x11DAA,
0x11EE0,
0x11EF7,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F43,
+ 0x11F50,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x12000,
@@ -406759,8 +422500,12 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13440,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -406769,6 +422514,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x16A5F,
0x16A60,
0x16A6A,
+ 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -406803,10 +422552,20 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -406821,6 +422580,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1BC9A,
0x1BC9D,
0x1BC9F,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
0x1D165,
0x1D16A,
0x1D16D,
@@ -406907,6 +422670,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -406917,6 +422684,10 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -406925,8 +422696,20 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1E14A,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8D0,
@@ -407004,9 +422787,9 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -407017,6 +422800,8 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0100,
0xE01F0
};
@@ -407026,7 +422811,7 @@ static const UV UNI_XIDC_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
- 1259, /* Number of elements */
+ 1333, /* 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 */
@@ -407129,10 +422914,12 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -407261,6 +423048,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -407277,7 +423066,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -407420,10 +423209,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -407464,7 +423251,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -407564,10 +423351,6 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -407628,8 +423411,6 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -407650,10 +423431,14 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -407845,12 +423630,34 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -407921,12 +423728,18 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -407953,6 +423766,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -408009,6 +423824,8 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -408047,7 +423864,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -408075,6 +423892,12 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -408083,14 +423906,20 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -408119,10 +423948,20 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -408195,14 +424034,32 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -408276,9 +424133,9 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -408288,7 +424145,9 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* ASCII/Latin1 */
@@ -408299,7 +424158,7 @@ static const UV UNI_XIDS_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
- 1285, /* Number of elements */
+ 1359, /* 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 */
@@ -408428,10 +424287,12 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -408560,6 +424421,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -408576,7 +424439,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -408719,10 +424582,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -408763,7 +424624,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -408863,10 +424724,6 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -408927,8 +424784,6 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -408949,10 +424804,14 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -409144,12 +425003,34 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -409220,12 +425101,18 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -409252,6 +425139,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -409308,6 +425197,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -409346,7 +425237,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -409374,6 +425265,12 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -409382,14 +425279,20 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -409418,10 +425321,20 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -409494,14 +425407,32 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -409575,9 +425506,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -409587,7 +425518,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 1047 */
@@ -409598,7 +425531,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
- 1281, /* Number of elements */
+ 1355, /* 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 */
@@ -409723,10 +425656,12 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x859,
0x860,
0x86B,
+ 0x870,
+ 0x888,
+ 0x889,
+ 0x88F,
0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
+ 0x8CA,
0x904,
0x93A,
0x93D,
@@ -409855,6 +425790,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0xC3E,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC62,
0xC80,
@@ -409871,7 +425808,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0xCBA,
0xCBD,
0xCBE,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE2,
@@ -410014,10 +425951,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x16EE,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
0x1712,
- 0x1720,
+ 0x171F,
0x1732,
0x1740,
0x1752,
@@ -410058,7 +425993,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x1B05,
0x1B34,
0x1B45,
- 0x1B4C,
+ 0x1B4D,
0x1B83,
0x1BA1,
0x1BAE,
@@ -410158,10 +426093,6 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x2160,
0x2189,
0x2C00,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CE5,
0x2CEB,
0x2CEF,
@@ -410222,8 +426153,6 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x3400,
0x4DC0,
0x4E00,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA4D0,
0xA4FE,
@@ -410244,10 +426173,14 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA802,
0xA803,
0xA806,
@@ -410439,12 +426372,34 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x10528,
0x10530,
0x10564,
+ 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -410515,12 +426470,18 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x10F28,
0x10F30,
0x10F46,
+ 0x10F70,
+ 0x10F82,
0x10FB0,
0x10FC5,
0x10FE0,
0x10FF7,
0x11003,
0x11038,
+ 0x11071,
+ 0x11073,
+ 0x11075,
+ 0x11076,
0x11083,
0x110B0,
0x110D0,
@@ -410547,6 +426508,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x1122C,
+ 0x1123F,
+ 0x11241,
0x11280,
0x11287,
0x11288,
@@ -410603,6 +426566,8 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x116B9,
0x11700,
0x1171B,
+ 0x11740,
+ 0x11747,
0x11800,
0x1182C,
0x118A0,
@@ -410641,7 +426606,7 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x11A8A,
0x11A9D,
0x11A9E,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
0x11C00,
0x11C09,
@@ -410669,6 +426634,12 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x11D99,
0x11EE0,
0x11EF3,
+ 0x11F02,
+ 0x11F03,
+ 0x11F04,
+ 0x11F11,
+ 0x11F12,
+ 0x11F34,
0x11FB0,
0x11FB1,
0x12000,
@@ -410677,14 +426648,20 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x1246F,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF1,
0x13000,
- 0x1342F,
+ 0x13430,
+ 0x13441,
+ 0x13447,
0x14400,
0x14647,
0x16800,
0x16A39,
0x16A40,
0x16A5F,
+ 0x16A70,
+ 0x16ABF,
0x16AD0,
0x16AEE,
0x16B00,
@@ -410713,10 +426690,20 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -410789,14 +426776,32 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
+ 0x1E030,
+ 0x1E06E,
0x1E100,
0x1E12D,
0x1E137,
0x1E13E,
0x1E14E,
0x1E14F,
+ 0x1E290,
+ 0x1E2AE,
0x1E2C0,
0x1E2EC,
+ 0x1E4D0,
+ 0x1E4EC,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E900,
@@ -410870,9 +426875,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x1EEAB,
0x1EEBC,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -410882,7 +426887,9 @@ static const UV UNI_XIDS_invlist[] = { /* for EBCDIC 037 */
0x2F800,
0x2FA1E,
0x30000,
- 0x3134B
+ 0x3134B,
+ 0x31350,
+ 0x323B0
};
# endif /* EBCDIC 037 */
@@ -411095,6 +427102,16 @@ static const UV UNI_ZL_invlist[] = { /* for all charsets */
0x2029
};
+static const UV UNI_ZNAMENNYMUSIC_invlist[] = { /* for all charsets */
+ 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,
+ 0x1CF00,
+ 0x1CFD0
+};
+
static const UV UNI_ZP_invlist[] = { /* for all charsets */
3, /* Number of elements */
148565664, /* Version and data structure type */
@@ -411188,7 +427205,7 @@ static const UV UNI_ZS_invlist[] = { /* for EBCDIC 037 */
# if 'A' == 65 /* ASCII/Latin1 */
static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
- 296, /* Number of elements */
+ 294, /* 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 */
@@ -411245,7 +427262,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x2080,
0x208F,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2126,
0x2127,
@@ -411273,7 +427290,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x2E00,
0x2E43,
0x2E44,
- 0x2E53,
+ 0x2E5E,
0x2FF0,
0x2FFC,
0x3000,
@@ -411310,8 +427327,6 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0xAB5C,
0xAB6A,
0xAB6C,
- 0xFD3E,
- 0xFD40,
0xFE10,
0xFE1A,
0xFE30,
@@ -411340,8 +427355,8 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1019D,
0x101D0,
0x101FD,
- 0x16FE2,
- 0x16FE4,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -411355,7 +427370,9 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -411434,16 +427451,18 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -411457,27 +427476,23 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -411498,7 +427513,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for ASCII/Latin1 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
- 322, /* Number of elements */
+ 320, /* 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 */
@@ -411581,7 +427596,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x2080,
0x208F,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2126,
0x2127,
@@ -411609,7 +427624,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x2E00,
0x2E43,
0x2E44,
- 0x2E53,
+ 0x2E5E,
0x2FF0,
0x2FFC,
0x3000,
@@ -411646,8 +427661,6 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0xAB5C,
0xAB6A,
0xAB6C,
- 0xFD3E,
- 0xFD40,
0xFE10,
0xFE1A,
0xFE30,
@@ -411676,8 +427689,8 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1019D,
0x101D0,
0x101FD,
- 0x16FE2,
- 0x16FE4,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -411691,7 +427704,9 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -411770,16 +427785,18 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -411793,27 +427810,23 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -411834,7 +427847,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 1047 */
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
- 318, /* Number of elements */
+ 316, /* 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 */
@@ -411913,7 +427926,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0x2080,
0x208F,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x2100,
0x2126,
0x2127,
@@ -411941,7 +427954,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0x2E00,
0x2E43,
0x2E44,
- 0x2E53,
+ 0x2E5E,
0x2FF0,
0x2FFC,
0x3000,
@@ -411978,8 +427991,6 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0xAB5C,
0xAB6A,
0xAB6C,
- 0xFD3E,
- 0xFD40,
0xFE10,
0xFE1A,
0xFE30,
@@ -412008,8 +428019,8 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1019D,
0x101D0,
0x101FD,
- 0x16FE2,
- 0x16FE4,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
@@ -412023,7 +428034,9 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1D18C,
0x1D1AA,
0x1D1AE,
- 0x1D1E9,
+ 0x1D1EB,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -412102,16 +428115,18 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -412125,27 +428140,23 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -412161,7 +428172,7 @@ static const UV UNI_ZYYY_invlist[] = { /* for EBCDIC 037 */
# endif /* EBCDIC 037 */
static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
- 1350, /* Number of elements */
+ 1410, /* 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 */
@@ -412190,8 +428201,6 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x5EF,
0x5F5,
0x600,
- 0x61D,
- 0x61E,
0x70E,
0x70F,
0x74B,
@@ -412209,11 +428218,11 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x85F,
0x860,
0x86B,
- 0x8A0,
- 0x8B5,
- 0x8B6,
- 0x8C8,
- 0x8D3,
+ 0x870,
+ 0x88F,
+ 0x890,
+ 0x892,
+ 0x898,
0x984,
0x985,
0x98D,
@@ -412369,7 +428378,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0xC29,
0xC2A,
0xC3A,
- 0xC3D,
+ 0xC3C,
0xC45,
0xC46,
0xC49,
@@ -412379,6 +428388,8 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0xC57,
0xC58,
0xC5B,
+ 0xC5D,
+ 0xC5E,
0xC60,
0xC64,
0xC66,
@@ -412401,14 +428412,14 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0xCCE,
0xCD5,
0xCD7,
- 0xCDE,
+ 0xCDD,
0xCDF,
0xCE0,
0xCE4,
0xCE6,
0xCF0,
0xCF1,
- 0xCF3,
+ 0xCF4,
0xD00,
0xD0D,
0xD0E,
@@ -412468,7 +428479,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0xEC6,
0xEC7,
0xEC8,
- 0xECE,
+ 0xECF,
0xED0,
0xEDA,
0xEDC,
@@ -412536,10 +428547,8 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x16A0,
0x16F9,
0x1700,
- 0x170D,
- 0x170E,
- 0x1715,
- 0x1720,
+ 0x1716,
+ 0x171F,
0x1737,
0x1740,
0x1754,
@@ -412556,8 +428565,6 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x17F0,
0x17FA,
0x1800,
- 0x180F,
- 0x1810,
0x181A,
0x1820,
0x1879,
@@ -412596,11 +428603,11 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1AA0,
0x1AAE,
0x1AB0,
- 0x1AC1,
+ 0x1ACF,
0x1B00,
- 0x1B4C,
+ 0x1B4D,
0x1B50,
- 0x1B7D,
+ 0x1B7F,
0x1B80,
0x1BF4,
0x1BFC,
@@ -412616,8 +428623,6 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1CD0,
0x1CFB,
0x1D00,
- 0x1DFA,
- 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -412658,7 +428663,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x2090,
0x209D,
0x20A0,
- 0x20C0,
+ 0x20C1,
0x20D0,
0x20F1,
0x2100,
@@ -412672,10 +428677,6 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x2B76,
0x2B96,
0x2B97,
- 0x2C2F,
- 0x2C30,
- 0x2C5F,
- 0x2C60,
0x2CF4,
0x2CF9,
0x2D26,
@@ -412706,7 +428707,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E53,
+ 0x2E5E,
0x2E80,
0x2E9A,
0x2E9B,
@@ -412730,8 +428731,6 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x31F0,
0x321F,
0x3220,
- 0x9FFD,
- 0xA000,
0xA48D,
0xA490,
0xA4C7,
@@ -412740,10 +428739,14 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0xA640,
0xA6F8,
0xA700,
- 0xA7C0,
- 0xA7C2,
0xA7CB,
- 0xA7F5,
+ 0xA7D0,
+ 0xA7D2,
+ 0xA7D3,
+ 0xA7D4,
+ 0xA7D5,
+ 0xA7DA,
+ 0xA7F2,
0xA82D,
0xA830,
0xA83A,
@@ -412814,16 +428817,14 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0xFB43,
0xFB45,
0xFB46,
- 0xFBC2,
+ 0xFBC3,
0xFBD3,
- 0xFD40,
- 0xFD50,
0xFD90,
0xFD92,
0xFDC8,
+ 0xFDCF,
+ 0xFDD0,
0xFDF0,
- 0xFDFE,
- 0xFE00,
0xFE1A,
0xFE20,
0xFE53,
@@ -412910,13 +428911,33 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x10530,
0x10564,
0x1056F,
- 0x10570,
+ 0x1057B,
+ 0x1057C,
+ 0x1058B,
+ 0x1058C,
+ 0x10593,
+ 0x10594,
+ 0x10596,
+ 0x10597,
+ 0x105A2,
+ 0x105A3,
+ 0x105B2,
+ 0x105B3,
+ 0x105BA,
+ 0x105BB,
+ 0x105BD,
0x10600,
0x10737,
0x10740,
0x10756,
0x10760,
0x10768,
+ 0x10780,
+ 0x10786,
+ 0x10787,
+ 0x107B1,
+ 0x107B2,
+ 0x107BB,
0x10800,
0x10806,
0x10808,
@@ -412999,10 +429020,12 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x10EAE,
0x10EB0,
0x10EB2,
- 0x10F00,
+ 0x10EFD,
0x10F28,
0x10F30,
0x10F5A,
+ 0x10F70,
+ 0x10F8A,
0x10FB0,
0x10FCC,
0x10FE0,
@@ -413010,9 +429033,9 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x11000,
0x1104E,
0x11052,
- 0x11070,
+ 0x11076,
0x1107F,
- 0x110C2,
+ 0x110C3,
0x110CD,
0x110CE,
0x110D0,
@@ -413032,7 +429055,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x11200,
0x11212,
0x11213,
- 0x1123F,
+ 0x11242,
0x11280,
0x11287,
0x11288,
@@ -413096,7 +429119,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x11660,
0x1166D,
0x11680,
- 0x116B9,
+ 0x116BA,
0x116C0,
0x116CA,
0x11700,
@@ -413104,7 +429127,7 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1171D,
0x1172C,
0x11730,
- 0x11740,
+ 0x11747,
0x11800,
0x1183C,
0x118A0,
@@ -413135,8 +429158,10 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x11A48,
0x11A50,
0x11AA3,
- 0x11AC0,
+ 0x11AB0,
0x11AF9,
+ 0x11B00,
+ 0x11B0A,
0x11C00,
0x11C09,
0x11C0A,
@@ -413179,6 +429204,12 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x11DAA,
0x11EE0,
0x11EF9,
+ 0x11F00,
+ 0x11F11,
+ 0x11F12,
+ 0x11F3B,
+ 0x11F3E,
+ 0x11F5A,
0x11FB0,
0x11FB1,
0x11FC0,
@@ -413191,10 +429222,10 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x12475,
0x12480,
0x12544,
+ 0x12F90,
+ 0x12FF3,
0x13000,
- 0x1342F,
- 0x13430,
- 0x13439,
+ 0x13456,
0x14400,
0x14647,
0x16800,
@@ -413204,7 +429235,9 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x16A60,
0x16A6A,
0x16A6E,
- 0x16A70,
+ 0x16ABF,
+ 0x16AC0,
+ 0x16ACA,
0x16AD0,
0x16AEE,
0x16AF0,
@@ -413237,10 +429270,20 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x18CD6,
0x18D00,
0x18D09,
+ 0x1AFF0,
+ 0x1AFF4,
+ 0x1AFF5,
+ 0x1AFFC,
+ 0x1AFFD,
+ 0x1AFFF,
0x1B000,
- 0x1B11F,
+ 0x1B123,
+ 0x1B132,
+ 0x1B133,
0x1B150,
0x1B153,
+ 0x1B155,
+ 0x1B156,
0x1B164,
0x1B168,
0x1B170,
@@ -413255,14 +429298,22 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1BC9A,
0x1BC9C,
0x1BCA4,
+ 0x1CF00,
+ 0x1CF2E,
+ 0x1CF30,
+ 0x1CF47,
+ 0x1CF50,
+ 0x1CFC4,
0x1D000,
0x1D0F6,
0x1D100,
0x1D127,
0x1D129,
- 0x1D1E9,
+ 0x1D1EB,
0x1D200,
0x1D246,
+ 0x1D2C0,
+ 0x1D2D4,
0x1D2E0,
0x1D2F4,
0x1D300,
@@ -413315,6 +429366,10 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1DF00,
+ 0x1DF1F,
+ 0x1DF25,
+ 0x1DF2B,
0x1E000,
0x1E007,
0x1E008,
@@ -413325,6 +429380,10 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1E025,
0x1E026,
0x1E02B,
+ 0x1E030,
+ 0x1E06E,
+ 0x1E08F,
+ 0x1E090,
0x1E100,
0x1E12D,
0x1E130,
@@ -413333,10 +429392,22 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1E14A,
0x1E14E,
0x1E150,
+ 0x1E290,
+ 0x1E2AF,
0x1E2C0,
0x1E2FA,
0x1E2FF,
0x1E300,
+ 0x1E4D0,
+ 0x1E4FA,
+ 0x1E7E0,
+ 0x1E7E7,
+ 0x1E7E8,
+ 0x1E7EC,
+ 0x1E7ED,
+ 0x1E7EF,
+ 0x1E7F0,
+ 0x1E7FF,
0x1E800,
0x1E8C5,
0x1E8C7,
@@ -413445,16 +429516,18 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1F266,
0x1F300,
0x1F6D8,
- 0x1F6E0,
+ 0x1F6DC,
0x1F6ED,
0x1F6F0,
0x1F6FD,
0x1F700,
- 0x1F774,
- 0x1F780,
- 0x1F7D9,
+ 0x1F777,
+ 0x1F77B,
+ 0x1F7DA,
0x1F7E0,
0x1F7EC,
+ 0x1F7F0,
+ 0x1F7F1,
0x1F800,
0x1F80C,
0x1F810,
@@ -413468,27 +429541,23 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1F8B0,
0x1F8B2,
0x1F900,
- 0x1F979,
- 0x1F97A,
- 0x1F9CC,
- 0x1F9CD,
0x1FA54,
0x1FA60,
0x1FA6E,
0x1FA70,
- 0x1FA75,
- 0x1FA78,
- 0x1FA7B,
+ 0x1FA7D,
0x1FA80,
- 0x1FA87,
+ 0x1FA89,
0x1FA90,
- 0x1FAA9,
- 0x1FAB0,
- 0x1FAB7,
- 0x1FAC0,
- 0x1FAC3,
- 0x1FAD0,
- 0x1FAD7,
+ 0x1FABE,
+ 0x1FABF,
+ 0x1FAC6,
+ 0x1FACE,
+ 0x1FADC,
+ 0x1FAE0,
+ 0x1FAE9,
+ 0x1FAF0,
+ 0x1FAF9,
0x1FB00,
0x1FB93,
0x1FB94,
@@ -413496,9 +429565,9 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x1FBF0,
0x1FBFA,
0x20000,
- 0x2A6DE,
+ 0x2A6E0,
0x2A700,
- 0x2B735,
+ 0x2B73A,
0x2B740,
0x2B81E,
0x2B820,
@@ -413509,6 +429578,8 @@ static const UV UNI_ZZZZ_invlist[] = { /* for all charsets */
0x2FA1E,
0x30000,
0x3134B,
+ 0x31350,
+ 0x323B0,
0xE0001,
0xE0002,
0xE0020,
@@ -413673,6 +429744,8 @@ typedef enum {
UNI_AGE__12,
UNI_AGE__12_DOT_1,
UNI_AGE__13,
+ UNI_AGE__14,
+ UNI_AGE__15,
UNI_AGE__2,
UNI_AGE__2_DOT_1,
UNI_AGE__3,
@@ -413690,7 +429763,6 @@ typedef enum {
UNI_AGE__7,
UNI_AGE__8,
UNI_AGE__9,
- UNI_AGE__NA,
UNI_AGHB,
UNI_AHOM,
UNI_ALCHEMICAL,
@@ -413702,6 +429774,8 @@ typedef enum {
UNI_ANY,
UNI_ARAB,
UNI_ARABICEXTA,
+ UNI_ARABICEXTB,
+ UNI_ARABICEXTC,
UNI_ARABICMATH,
UNI_ARABICPFA,
UNI_ARABICPFB,
@@ -413838,6 +429912,7 @@ typedef enum {
UNI_CJKEXTE,
UNI_CJKEXTF,
UNI_CJKEXTG,
+ UNI_CJKEXTH,
UNI_CJKRADICALSSUP,
UNI_CJKSTROKES,
UNI_CJKSYMBOLS,
@@ -413849,6 +429924,7 @@ typedef enum {
UNI_COPT,
UNI_COPTICEPACTNUMBERS,
UNI_COUNTINGROD,
+ UNI_CPMN,
UNI_CPRT,
UNI_CUNEIFORMNUMBERS,
UNI_CURRENCYSYMBOLS,
@@ -413862,12 +429938,14 @@ typedef enum {
UNI_CYRILLICEXTA,
UNI_CYRILLICEXTB,
UNI_CYRILLICEXTC,
+ UNI_CYRILLICEXTD,
UNI_CYRILLICSUP,
UNI_CYRL,
UNI_DASH,
UNI_DEP,
UNI_DEVA,
UNI_DEVANAGARIEXT,
+ UNI_DEVANAGARIEXTA,
UNI_DI,
UNI_DIA,
UNI_DIACRITICALS,
@@ -413922,6 +430000,7 @@ typedef enum {
UNI_ETHI,
UNI_ETHIOPICEXT,
UNI_ETHIOPICEXTA,
+ UNI_ETHIOPICEXTB,
UNI_ETHIOPICSUP,
UNI_EXT,
UNI_EXTPICT,
@@ -414009,6 +430088,7 @@ typedef enum {
UNI_INCHORASMIAN,
UNI_INCOPTIC,
UNI_INCUNEIFORM,
+ UNI_INCYPROMINOAN,
UNI_INCYRILLIC,
UNI_INDEVANAGARI,
UNI_INDICNUMBERFORMS,
@@ -414042,6 +430122,7 @@ typedef enum {
UNI_INKAITHI,
UNI_INKANNADA,
UNI_INKATAKANA,
+ UNI_INKAWI,
UNI_INKHAROSHTHI,
UNI_INKHITANSMALLSCRIPT,
UNI_INKHMER,
@@ -414072,6 +430153,7 @@ typedef enum {
UNI_INMULTANI,
UNI_INMYANMAR,
UNI_INNABATAEAN,
+ UNI_INNAGMUNDARI,
UNI_INNANDINAGARI,
UNI_INNEWA,
UNI_INNEWTAILUE,
@@ -414085,6 +430167,7 @@ typedef enum {
UNI_INOLDPERSIAN,
UNI_INOLDSOGDIAN,
UNI_INOLDTURKIC,
+ UNI_INOLDUYGHUR,
UNI_INORIYA,
UNI_INOSAGE,
UNI_INOSMANYA,
@@ -414163,6 +430246,7 @@ typedef enum {
UNI_INTAIVIET,
UNI_INTAKRI,
UNI_INTAMIL,
+ UNI_INTANGSA,
UNI_INTANGUT,
UNI_INTELUGU,
UNI_INTHAANA,
@@ -414170,8 +430254,10 @@ typedef enum {
UNI_INTIBETAN,
UNI_INTIFINAGH,
UNI_INTIRHUTA,
+ UNI_INTOTO,
UNI_INUGARITIC,
UNI_INVAI,
+ UNI_INVITHKUQI,
UNI_INVS,
UNI_INWANCHO,
UNI_INWARANGCITI,
@@ -414182,6 +430268,8 @@ typedef enum {
UNI_IN__12,
UNI_IN__12_DOT_1,
UNI_IN__13,
+ UNI_IN__14,
+ UNI_IN__15,
UNI_IN__1_DOT_1,
UNI_IN__2,
UNI_IN__2_DOT_1,
@@ -414200,6 +430288,7 @@ typedef enum {
UNI_IN__7,
UNI_IN__8,
UNI_IN__9,
+ UNI_IN__NA,
UNI_IPAEXT,
UNI_ITAL,
UNI_JAMO,
@@ -414300,6 +430389,8 @@ typedef enum {
UNI_JG__TAW,
UNI_JG__TEHMARBUTA,
UNI_JG__TETH,
+ UNI_JG__THINYEH,
+ UNI_JG__VERTICALTAIL,
UNI_JG__WAW,
UNI_JG__YEH,
UNI_JG__YEHBARREE,
@@ -414315,13 +430406,16 @@ typedef enum {
UNI_JT__R,
UNI_JT__T,
UNI_JT__U,
+ UNI_KAKTOVIKNUMERALS,
UNI_KALI,
UNI_KANA,
UNI_KANAEXTA,
+ UNI_KANAEXTB,
UNI_KANASUP,
UNI_KANBUN,
UNI_KANGXI,
UNI_KATAKANAEXT,
+ UNI_KAWI,
UNI_KHAR,
UNI_KHMERSYMBOLS,
UNI_KHMR,
@@ -414339,6 +430433,8 @@ typedef enum {
UNI_LATINEXTC,
UNI_LATINEXTD,
UNI_LATINEXTE,
+ UNI_LATINEXTF,
+ UNI_LATINEXTG,
UNI_LATN,
UNI_LB__AI,
UNI_LB__AL,
@@ -414433,6 +430529,7 @@ typedef enum {
UNI_MYANMAREXTB,
UNI_MYMR,
UNI_N,
+ UNI_NAGM,
UNI_NAND,
UNI_NARB,
UNI_NB,
@@ -414603,6 +430700,7 @@ typedef enum {
UNI_OSGE,
UNI_OSMA,
UNI_OTTOMANSIYAQNUMBERS,
+ UNI_OUGR,
UNI_P,
UNI_PALM,
UNI_PATSYN,
@@ -414673,6 +430771,7 @@ typedef enum {
UNI_SC__BUHD,
UNI_SC__CAKM,
UNI_SC__COPT,
+ UNI_SC__CPMN,
UNI_SC__CPRT,
UNI_SC__CYRL,
UNI_SC__DEVA,
@@ -414709,7 +430808,9 @@ typedef enum {
UNI_SC__MULT,
UNI_SC__MYMR,
UNI_SC__NAND,
+ UNI_SC__NKO,
UNI_SC__ORYA,
+ UNI_SC__OUGR,
UNI_SC__PERM,
UNI_SC__PHAG,
UNI_SC__PHLP,
@@ -414790,9 +430891,12 @@ typedef enum {
UNI_TIBT,
UNI_TIRH,
UNI_TITLE,
+ UNI_TNSA,
+ UNI_TOTO,
UNI_TRANSPORTANDMAP,
UNI_UCAS,
UNI_UCASEXT,
+ UNI_UCASEXTA,
UNI_UGAR,
UNI_UIDEO,
UNI_UPPERCASELETTER,
@@ -414800,6 +430904,7 @@ typedef enum {
UNI_VEDICEXT,
UNI_VERTICALFORMS,
UNI_VERTSPACE,
+ UNI_VITH,
UNI_VO__R,
UNI_VO__TR,
UNI_VO__TU,
@@ -414848,6 +430953,7 @@ typedef enum {
UNI_Z,
UNI_ZANB,
UNI_ZL,
+ UNI_ZNAMENNYMUSIC,
UNI_ZP,
UNI_ZS,
UNI_ZYYY,
@@ -414882,6 +430988,8 @@ static const UV * const uni_prop_ptrs[] = {
UNI_AGE__12_invlist,
UNI_AGE__12_DOT_1_invlist,
UNI_AGE__13_invlist,
+ UNI_AGE__14_invlist,
+ UNI_AGE__15_invlist,
UNI_AGE__2_invlist,
UNI_AGE__2_DOT_1_invlist,
UNI_AGE__3_invlist,
@@ -414899,7 +431007,6 @@ static const UV * const uni_prop_ptrs[] = {
UNI_AGE__7_invlist,
UNI_AGE__8_invlist,
UNI_AGE__9_invlist,
- UNI_AGE__NA_invlist,
UNI_AGHB_invlist,
UNI_AHOM_invlist,
UNI_ALCHEMICAL_invlist,
@@ -414911,6 +431018,8 @@ static const UV * const uni_prop_ptrs[] = {
UNI_ANY_invlist,
UNI_ARAB_invlist,
UNI_ARABICEXTA_invlist,
+ UNI_ARABICEXTB_invlist,
+ UNI_ARABICEXTC_invlist,
UNI_ARABICMATH_invlist,
UNI_ARABICPFA_invlist,
UNI_ARABICPFB_invlist,
@@ -415047,6 +431156,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_CJKEXTE_invlist,
UNI_CJKEXTF_invlist,
UNI_CJKEXTG_invlist,
+ UNI_CJKEXTH_invlist,
UNI_CJKRADICALSSUP_invlist,
UNI_CJKSTROKES_invlist,
UNI_CJKSYMBOLS_invlist,
@@ -415058,6 +431168,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_COPT_invlist,
UNI_COPTICEPACTNUMBERS_invlist,
UNI_COUNTINGROD_invlist,
+ UNI_CPMN_invlist,
UNI_CPRT_invlist,
UNI_CUNEIFORMNUMBERS_invlist,
UNI_CURRENCYSYMBOLS_invlist,
@@ -415071,12 +431182,14 @@ static const UV * const uni_prop_ptrs[] = {
UNI_CYRILLICEXTA_invlist,
UNI_CYRILLICEXTB_invlist,
UNI_CYRILLICEXTC_invlist,
+ UNI_CYRILLICEXTD_invlist,
UNI_CYRILLICSUP_invlist,
UNI_CYRL_invlist,
UNI_DASH_invlist,
UNI_DEP_invlist,
UNI_DEVA_invlist,
UNI_DEVANAGARIEXT_invlist,
+ UNI_DEVANAGARIEXTA_invlist,
UNI_DI_invlist,
UNI_DIA_invlist,
UNI_DIACRITICALS_invlist,
@@ -415131,6 +431244,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_ETHI_invlist,
UNI_ETHIOPICEXT_invlist,
UNI_ETHIOPICEXTA_invlist,
+ UNI_ETHIOPICEXTB_invlist,
UNI_ETHIOPICSUP_invlist,
UNI_EXT_invlist,
UNI_EXTPICT_invlist,
@@ -415218,6 +431332,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_INCHORASMIAN_invlist,
UNI_INCOPTIC_invlist,
UNI_INCUNEIFORM_invlist,
+ UNI_INCYPROMINOAN_invlist,
UNI_INCYRILLIC_invlist,
UNI_INDEVANAGARI_invlist,
UNI_INDICNUMBERFORMS_invlist,
@@ -415251,6 +431366,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_INKAITHI_invlist,
UNI_INKANNADA_invlist,
UNI_INKATAKANA_invlist,
+ UNI_INKAWI_invlist,
UNI_INKHAROSHTHI_invlist,
UNI_INKHITANSMALLSCRIPT_invlist,
UNI_INKHMER_invlist,
@@ -415281,6 +431397,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_INMULTANI_invlist,
UNI_INMYANMAR_invlist,
UNI_INNABATAEAN_invlist,
+ UNI_INNAGMUNDARI_invlist,
UNI_INNANDINAGARI_invlist,
UNI_INNEWA_invlist,
UNI_INNEWTAILUE_invlist,
@@ -415294,6 +431411,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_INOLDPERSIAN_invlist,
UNI_INOLDSOGDIAN_invlist,
UNI_INOLDTURKIC_invlist,
+ UNI_INOLDUYGHUR_invlist,
UNI_INORIYA_invlist,
UNI_INOSAGE_invlist,
UNI_INOSMANYA_invlist,
@@ -415372,6 +431490,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_INTAIVIET_invlist,
UNI_INTAKRI_invlist,
UNI_INTAMIL_invlist,
+ UNI_INTANGSA_invlist,
UNI_INTANGUT_invlist,
UNI_INTELUGU_invlist,
UNI_INTHAANA_invlist,
@@ -415379,8 +431498,10 @@ static const UV * const uni_prop_ptrs[] = {
UNI_INTIBETAN_invlist,
UNI_INTIFINAGH_invlist,
UNI_INTIRHUTA_invlist,
+ UNI_INTOTO_invlist,
UNI_INUGARITIC_invlist,
UNI_INVAI_invlist,
+ UNI_INVITHKUQI_invlist,
UNI_INVS_invlist,
UNI_INWANCHO_invlist,
UNI_INWARANGCITI_invlist,
@@ -415391,6 +431512,8 @@ static const UV * const uni_prop_ptrs[] = {
UNI_IN__12_invlist,
UNI_IN__12_DOT_1_invlist,
UNI_IN__13_invlist,
+ UNI_IN__14_invlist,
+ UNI_IN__15_invlist,
UNI_IN__1_DOT_1_invlist,
UNI_IN__2_invlist,
UNI_IN__2_DOT_1_invlist,
@@ -415409,6 +431532,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_IN__7_invlist,
UNI_IN__8_invlist,
UNI_IN__9_invlist,
+ UNI_IN__NA_invlist,
UNI_IPAEXT_invlist,
UNI_ITAL_invlist,
UNI_JAMO_invlist,
@@ -415509,6 +431633,8 @@ static const UV * const uni_prop_ptrs[] = {
UNI_JG__TAW_invlist,
UNI_JG__TEHMARBUTA_invlist,
UNI_JG__TETH_invlist,
+ UNI_JG__THINYEH_invlist,
+ UNI_JG__VERTICALTAIL_invlist,
UNI_JG__WAW_invlist,
UNI_JG__YEH_invlist,
UNI_JG__YEHBARREE_invlist,
@@ -415524,13 +431650,16 @@ static const UV * const uni_prop_ptrs[] = {
UNI_JT__R_invlist,
UNI_JT__T_invlist,
UNI_JT__U_invlist,
+ UNI_KAKTOVIKNUMERALS_invlist,
UNI_KALI_invlist,
UNI_KANA_invlist,
UNI_KANAEXTA_invlist,
+ UNI_KANAEXTB_invlist,
UNI_KANASUP_invlist,
UNI_KANBUN_invlist,
UNI_KANGXI_invlist,
UNI_KATAKANAEXT_invlist,
+ UNI_KAWI_invlist,
UNI_KHAR_invlist,
UNI_KHMERSYMBOLS_invlist,
UNI_KHMR_invlist,
@@ -415548,6 +431677,8 @@ static const UV * const uni_prop_ptrs[] = {
UNI_LATINEXTC_invlist,
UNI_LATINEXTD_invlist,
UNI_LATINEXTE_invlist,
+ UNI_LATINEXTF_invlist,
+ UNI_LATINEXTG_invlist,
UNI_LATN_invlist,
UNI_LB__AI_invlist,
UNI_LB__AL_invlist,
@@ -415642,6 +431773,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_MYANMAREXTB_invlist,
UNI_MYMR_invlist,
UNI_N_invlist,
+ UNI_NAGM_invlist,
UNI_NAND_invlist,
UNI_NARB_invlist,
UNI_NB_invlist,
@@ -415812,6 +431944,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_OSGE_invlist,
UNI_OSMA_invlist,
UNI_OTTOMANSIYAQNUMBERS_invlist,
+ UNI_OUGR_invlist,
UNI_P_invlist,
UNI_PALM_invlist,
UNI_PATSYN_invlist,
@@ -415882,6 +432015,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_SC__BUHD_invlist,
UNI_SC__CAKM_invlist,
UNI_SC__COPT_invlist,
+ UNI_SC__CPMN_invlist,
UNI_SC__CPRT_invlist,
UNI_SC__CYRL_invlist,
UNI_SC__DEVA_invlist,
@@ -415918,7 +432052,9 @@ static const UV * const uni_prop_ptrs[] = {
UNI_SC__MULT_invlist,
UNI_SC__MYMR_invlist,
UNI_SC__NAND_invlist,
+ UNI_SC__NKO_invlist,
UNI_SC__ORYA_invlist,
+ UNI_SC__OUGR_invlist,
UNI_SC__PERM_invlist,
UNI_SC__PHAG_invlist,
UNI_SC__PHLP_invlist,
@@ -415999,9 +432135,12 @@ static const UV * const uni_prop_ptrs[] = {
UNI_TIBT_invlist,
UNI_TIRH_invlist,
UNI_TITLE_invlist,
+ UNI_TNSA_invlist,
+ UNI_TOTO_invlist,
UNI_TRANSPORTANDMAP_invlist,
UNI_UCAS_invlist,
UNI_UCASEXT_invlist,
+ UNI_UCASEXTA_invlist,
UNI_UGAR_invlist,
UNI_UIDEO_invlist,
UNI_UPPERCASELETTER_invlist,
@@ -416009,6 +432148,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_VEDICEXT_invlist,
UNI_VERTICALFORMS_invlist,
UNI_VERTSPACE_invlist,
+ UNI_VITH_invlist,
UNI_VO__R_invlist,
UNI_VO__TR_invlist,
UNI_VO__TU_invlist,
@@ -416057,6 +432197,7 @@ static const UV * const uni_prop_ptrs[] = {
UNI_Z_invlist,
UNI_ZANB_invlist,
UNI_ZL_invlist,
+ UNI_ZNAMENNYMUSIC_invlist,
UNI_ZP_invlist,
UNI_ZS_invlist,
UNI_ZYYY_invlist,
@@ -416151,6 +432292,8 @@ static const char * const UNI_age_values[] = {
"12.0",
"12.1",
"13.0",
+ "14.0",
+ "15.0",
"NA",
"na",
"Unassigned",
@@ -416160,6 +432303,8 @@ static const char * const UNI_age_values[] = {
"V12_0",
"V12_1",
"V13_0",
+ "V14_0",
+ "V15_0",
"V1_1",
"V2_0",
"V2_1",
@@ -416184,6 +432329,8 @@ static const char * const UNI_age_values[] = {
"v120",
"v121",
"v130",
+ "v140",
+ "v150",
"v20",
"v21",
"v30",
@@ -416356,9 +432503,19 @@ static const char * const UNI_blk_values[] = {
"arabic",
"Arabic_Ext_A",
"arabicexta",
+ "Arabic_Ext_B",
+ "arabicextb",
+ "Arabic_Ext_C",
+ "arabicextc",
"Arabic Extended-A",
"Arabic_Extended_A",
"arabicextendeda",
+ "Arabic Extended-B",
+ "Arabic_Extended_B",
+ "arabicextendedb",
+ "Arabic Extended-C",
+ "Arabic_Extended_C",
+ "arabicextendedc",
"Arabic_Math",
"arabicmath",
"Arabic Mathematical Alphabetic Symbols",
@@ -416496,6 +432653,8 @@ static const char * const UNI_blk_values[] = {
"cjkextf",
"CJK_Ext_G",
"cjkextg",
+ "CJK_Ext_H",
+ "cjkexth",
"CJK_Radicals_Sup",
"cjkradicalssup",
"CJK Radicals Supplement",
@@ -416533,6 +432692,9 @@ static const char * const UNI_blk_values[] = {
"CJK Unified Ideographs Extension G",
"CJK_Unified_Ideographs_Extension_G",
"cjkunifiedideographsextensiong",
+ "CJK Unified Ideographs Extension H",
+ "CJK_Unified_Ideographs_Extension_H",
+ "cjkunifiedideographsextensionh",
"Combining Diacritical Marks",
"Combining_Diacritical_Marks",
"combiningdiacriticalmarks",
@@ -416581,6 +432743,9 @@ static const char * const UNI_blk_values[] = {
"Cypriot Syllabary",
"Cypriot_Syllabary",
"cypriotsyllabary",
+ "Cypro-Minoan",
+ "Cypro_Minoan",
+ "cyprominoan",
"Cyrillic",
"cyrillic",
"Cyrillic_Ext_A",
@@ -416589,6 +432754,8 @@ static const char * const UNI_blk_values[] = {
"cyrillicextb",
"Cyrillic_Ext_C",
"cyrillicextc",
+ "Cyrillic_Ext_D",
+ "cyrillicextd",
"Cyrillic Extended-A",
"Cyrillic_Extended_A",
"cyrillicextendeda",
@@ -416598,6 +432765,9 @@ static const char * const UNI_blk_values[] = {
"Cyrillic Extended-C",
"Cyrillic_Extended_C",
"cyrillicextendedc",
+ "Cyrillic Extended-D",
+ "Cyrillic_Extended_D",
+ "cyrillicextendedd",
"Cyrillic_Sup",
"cyrillicsup",
"Cyrillic Supplement",
@@ -416611,9 +432781,14 @@ static const char * const UNI_blk_values[] = {
"devanagari",
"Devanagari_Ext",
"devanagariext",
+ "Devanagari_Ext_A",
+ "devanagariexta",
"Devanagari Extended",
"Devanagari_Extended",
"devanagariextended",
+ "Devanagari Extended-A",
+ "Devanagari_Extended_A",
+ "devanagariextendeda",
"Diacriticals",
"diacriticals",
"Diacriticals_Ext",
@@ -416677,12 +432852,17 @@ static const char * const UNI_blk_values[] = {
"ethiopicext",
"Ethiopic_Ext_A",
"ethiopicexta",
+ "Ethiopic_Ext_B",
+ "ethiopicextb",
"Ethiopic Extended",
"Ethiopic_Extended",
"ethiopicextended",
"Ethiopic Extended-A",
"Ethiopic_Extended_A",
"ethiopicextendeda",
+ "Ethiopic Extended-B",
+ "Ethiopic_Extended_B",
+ "ethiopicextendedb",
"Ethiopic_Sup",
"ethiopicsup",
"Ethiopic Supplement",
@@ -416821,11 +433001,19 @@ static const char * const UNI_blk_values[] = {
"javanese",
"Kaithi",
"kaithi",
+ "Kaktovik Numerals",
+ "Kaktovik_Numerals",
+ "kaktoviknumerals",
"Kana_Ext_A",
"kanaexta",
+ "Kana_Ext_B",
+ "kanaextb",
"Kana Extended-A",
"Kana_Extended_A",
"kanaextendeda",
+ "Kana Extended-B",
+ "Kana_Extended_B",
+ "kanaextendedb",
"Kana_Sup",
"kanasup",
"Kana Supplement",
@@ -416847,6 +433035,8 @@ static const char * const UNI_blk_values[] = {
"Katakana Phonetic Extensions",
"Katakana_Phonetic_Extensions",
"katakanaphoneticextensions",
+ "Kawi",
+ "kawi",
"Kayah Li",
"Kayah_Li",
"kayahli",
@@ -416898,6 +433088,16 @@ static const char * const UNI_blk_values[] = {
"Latin Extended-E",
"Latin_Extended_E",
"latinextendede",
+ "Latin Extended-F",
+ "Latin_Extended_F",
+ "latinextendedf",
+ "Latin Extended-G",
+ "Latin_Extended_G",
+ "latinextendedg",
+ "Latin_Ext_F",
+ "latinextf",
+ "Latin_Ext_G",
+ "latinextg",
"Latin_1_Sup",
"latin1sup",
"Latin-1 Supplement",
@@ -417054,6 +433254,9 @@ static const char * const UNI_blk_values[] = {
"myanmarextendedb",
"Nabataean",
"nabataean",
+ "Nag Mundari",
+ "Nag_Mundari",
+ "nagmundari",
"Nandinagari",
"nandinagari",
"NB",
@@ -417106,6 +433309,9 @@ static const char * const UNI_blk_values[] = {
"Old Turkic",
"Old_Turkic",
"oldturkic",
+ "Old Uyghur",
+ "Old_Uyghur",
+ "olduyghur",
"Optical Character Recognition",
"Optical_Character_Recognition",
"opticalcharacterrecognition",
@@ -417315,6 +433521,8 @@ static const char * const UNI_blk_values[] = {
"Tamil Supplement",
"Tamil_Supplement",
"tamilsupplement",
+ "Tangsa",
+ "tangsa",
"Tangut",
"tangut",
"Tangut Components",
@@ -417337,6 +433545,8 @@ static const char * const UNI_blk_values[] = {
"tifinagh",
"Tirhuta",
"tirhuta",
+ "Toto",
+ "toto",
"Transport_And_Map",
"transportandmap",
"Transport and Map Symbols",
@@ -417346,6 +433556,8 @@ static const char * const UNI_blk_values[] = {
"ucas",
"UCAS_Ext",
"ucasext",
+ "UCAS_Ext_A",
+ "ucasexta",
"Ugaritic",
"ugaritic",
"Unified Canadian Aboriginal Syllabics",
@@ -417354,6 +433566,9 @@ static const char * const UNI_blk_values[] = {
"Unified Canadian Aboriginal Syllabics Extended",
"Unified_Canadian_Aboriginal_Syllabics_Extended",
"unifiedcanadianaboriginalsyllabicsextended",
+ "Unified Canadian Aboriginal Syllabics Extended-A",
+ "Unified_Canadian_Aboriginal_Syllabics_Extended_A",
+ "unifiedcanadianaboriginalsyllabicsextendeda",
"Vai",
"vai",
"Variation Selectors",
@@ -417370,6 +433585,8 @@ static const char * const UNI_blk_values[] = {
"Vertical Forms",
"Vertical_Forms",
"verticalforms",
+ "Vithkuqi",
+ "vithkuqi",
"VS",
"vs",
"VS_Sup",
@@ -417395,6 +433612,11 @@ static const char * const UNI_blk_values[] = {
"Zanabazar Square",
"Zanabazar_Square",
"zanabazarsquare",
+ "Znamenny_Music",
+ "znamennymusic",
+ "Znamenny Musical Notation",
+ "Znamenny_Musical_Notation",
+ "znamennymusicalnotation",
NULL
};
@@ -418019,79 +434241,6 @@ static const char * const UNI_identifiertype_values[] = {
NULL
};
-static const char * const UNI_in_values[] = {
- "1.1",
- "2.0",
- "2.1",
- "3.0",
- "3.1",
- "3.2",
- "4.0",
- "4.1",
- "5.0",
- "5.1",
- "5.2",
- "6.0",
- "6.1",
- "6.2",
- "6.3",
- "7.0",
- "8.0",
- "9.0",
- "10.0",
- "11.0",
- "12.0",
- "12.1",
- "13.0",
- "Unassigned",
- "unassigned",
- "V10_0",
- "V11_0",
- "V12_0",
- "V12_1",
- "V13_0",
- "V2_0",
- "V2_1",
- "V3_0",
- "V3_1",
- "V3_2",
- "V4_0",
- "V4_1",
- "V5_0",
- "V5_1",
- "V5_2",
- "V6_0",
- "V6_1",
- "V6_2",
- "V6_3",
- "V7_0",
- "V8_0",
- "V9_0",
- "v100",
- "v110",
- "v120",
- "v121",
- "v130",
- "v20",
- "v21",
- "v30",
- "v31",
- "v32",
- "v40",
- "v41",
- "v50",
- "v51",
- "v52",
- "v60",
- "v61",
- "v62",
- "v63",
- "v70",
- "v80",
- "v90",
- NULL
-};
-
static const char * const UNI_inpc_values[] = {
"Bottom",
"bottom",
@@ -418395,6 +434544,10 @@ static const char * const UNI_jg_values[] = {
"tehmarbutagoal",
"Teth",
"teth",
+ "Thin_Yeh",
+ "thinyeh",
+ "Vertical_Tail",
+ "verticaltail",
"Waw",
"waw",
"Yeh",
@@ -418960,12 +435113,16 @@ static const char * const UNI_sc_values[] = {
"copt",
"Coptic",
"coptic",
+ "Cpmn",
+ "cpmn",
"Cprt",
"cprt",
"Cuneiform",
"cuneiform",
"Cypriot",
"cypriot",
+ "Cypro_Minoan",
+ "cyprominoan",
"Cyrillic",
"cyrillic",
"Cyrl",
@@ -419098,6 +435255,8 @@ static const char * const UNI_sc_values[] = {
"kannada",
"Katakana",
"katakana",
+ "Kawi",
+ "kawi",
"Kayah_Li",
"kayahli",
"Khar",
@@ -419226,6 +435385,10 @@ static const char * const UNI_sc_values[] = {
"mymr",
"Nabataean",
"nabataean",
+ "Nagm",
+ "nagm",
+ "Nag_Mundari",
+ "nagmundari",
"Nand",
"nand",
"Nandinagari",
@@ -419272,6 +435435,8 @@ static const char * const UNI_sc_values[] = {
"oldsoutharabian",
"Old_Turkic",
"oldturkic",
+ "Old_Uyghur",
+ "olduyghur",
"Oriya",
"oriya",
"Orkh",
@@ -419286,6 +435451,8 @@ static const char * const UNI_sc_values[] = {
"osma",
"Osmanya",
"osmanya",
+ "Ougr",
+ "ougr",
"Pahawh_Hmong",
"pahawhhmong",
"Palm",
@@ -419414,6 +435581,8 @@ static const char * const UNI_sc_values[] = {
"taml",
"Tang",
"tang",
+ "Tangsa",
+ "tangsa",
"Tangut",
"tangut",
"Tavt",
@@ -419442,6 +435611,10 @@ static const char * const UNI_sc_values[] = {
"tirh",
"Tirhuta",
"tirhuta",
+ "Tnsa",
+ "tnsa",
+ "Toto",
+ "toto",
"Ugar",
"ugar",
"Ugaritic",
@@ -419452,6 +435625,10 @@ static const char * const UNI_sc_values[] = {
"vai",
"Vaii",
"vaii",
+ "Vith",
+ "vith",
+ "Vithkuqi",
+ "vithkuqi",
"Wancho",
"wancho",
"Wara",
@@ -419606,7 +435783,6 @@ UNI_gcb_values,
UNI_hst_values,
UNI_identifierstatus_values,
UNI_identifiertype_values,
-UNI_in_values,
UNI_inpc_values,
UNI_insc_values,
UNI_jg_values,
@@ -419669,40 +435845,40 @@ UNI_wb_values
#define UNI_ids_values_index UNI_ahex_values_index
#define UNI_idsb_values_index UNI_ahex_values_index
#define UNI_idst_values_index UNI_ahex_values_index
-#define UNI_in_values_index 14
-#define UNI_inpc_values_index 15
-#define UNI_insc_values_index 16
-#define UNI_jg_values_index 17
+#define UNI_in_values_index UNI_age_values_index
+#define UNI_inpc_values_index 14
+#define UNI_insc_values_index 15
+#define UNI_jg_values_index 16
#define UNI_joinc_values_index UNI_ahex_values_index
-#define UNI_jt_values_index 18
-#define UNI_lb_values_index 19
+#define UNI_jt_values_index 17
+#define UNI_lb_values_index 18
#define UNI_loe_values_index UNI_ahex_values_index
#define UNI_lower_values_index UNI_ahex_values_index
#define UNI_math_values_index UNI_ahex_values_index
#define UNI_nchar_values_index UNI_ahex_values_index
-#define UNI_nfcqc_values_index 20
-#define UNI_nfdqc_values_index 21
+#define UNI_nfcqc_values_index 19
+#define UNI_nfdqc_values_index 20
#define UNI_nfkcqc_values_index UNI_nfcqc_values_index
#define UNI_nfkdqc_values_index UNI_nfdqc_values_index
-#define UNI_nt_values_index 22
-#define UNI_nv_values_index 23
+#define UNI_nt_values_index 21
+#define UNI_nv_values_index 22
#define UNI_patsyn_values_index UNI_ahex_values_index
#define UNI_patws_values_index UNI_ahex_values_index
#define UNI_pcm_values_index UNI_ahex_values_index
#define UNI_qmark_values_index UNI_ahex_values_index
#define UNI_radical_values_index UNI_ahex_values_index
#define UNI_ri_values_index UNI_ahex_values_index
-#define UNI_sb_values_index 24
-#define UNI_sc_values_index 25
+#define UNI_sb_values_index 23
+#define UNI_sc_values_index 24
#define UNI_scx_values_index UNI_sc_values_index
#define UNI_sd_values_index UNI_ahex_values_index
#define UNI_sterm_values_index UNI_ahex_values_index
#define UNI_term_values_index UNI_ahex_values_index
#define UNI_uideo_values_index UNI_ahex_values_index
#define UNI_upper_values_index UNI_ahex_values_index
-#define UNI_vo_values_index 26
+#define UNI_vo_values_index 25
#define UNI_vs_values_index UNI_ahex_values_index
-#define UNI_wb_values_index 27
+#define UNI_wb_values_index 26
#define UNI_wspace_values_index UNI_ahex_values_index
#define UNI_xidc_values_index UNI_ahex_values_index
#define UNI_xids_values_index UNI_ahex_values_index
@@ -419752,51 +435928,52 @@ static const U8 GCB_table[17][17] = {
#define LB_RI_then_RI 15
#define LB_various_then_PO_or_PR 32
-static const U8 LB_table[41][41] = {
- /* 'EAO' stands for 'East_Asian_OP'; 'edg' stands for 'EDGE'; u stands for 'unused in this Unicode release (and the data in its row and
- * column are garbage) */
-/* AL B2 BA BB BK CB CL CM CP CR EAO EB edg EM EX GL H2 H3 HL HY ID IN IS JL JT JV LF NL NS NU OP PO PR QU RI SP SY WJ ZW ZWJ u */
-/* AL */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* B2 */ { 1, 2, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* BA */ {14,14, 0,14, 0, 1, 2, 0, 2, 0, 14,14, 1,14, 2,14,14,14,14, 0,14,13, 2,14,14,14, 0, 0, 0,14,14,14,14, 0,14, 0, 2, 0, 0, 0, 2 },
-/* BB */ { 0, 0, 0, 0, 0, 1, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 },
-/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* CB */ { 1, 1, 1, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* CL */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* CM */ { 3, 3, 3, 3, 0, 3, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3 },
-/* CP */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 0, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* EAO*/ { 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2 },
-/* EB */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 0, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* edg*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* EM */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* EX */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* GL */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 },
-/* H2 */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* H3 */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* HL */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* HY */ {14,14, 0,14, 0, 1, 2, 0, 2, 0, 14,14, 1,14, 2,14,14,14,14, 0,14,13, 2,14,14,14, 0, 0, 0,13,14,14,14, 0,14, 0, 2, 0, 0, 0, 2 },
-/* ID */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* IN */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* IS */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0,12, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* JL */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* JT */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* JV */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* NS */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* NU */ { 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
-/* OP */ { 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2 },
-/* PO */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* PR */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* QU */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 },
-/* RI */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,15, 0, 2, 0, 0, 0, 2 },
-/* SP */ { 7, 7, 7, 7, 0, 7, 8, 7, 8, 0, 7, 7, 1, 7, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 8, 0, 7, 8 },
-/* SY */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0,12, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 },
-/* WJ */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 },
-/* ZW */ { 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1 },
-/* ZWJ*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* u */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 2, 0, 0, 0, 2 }
+static const U8 LB_table[42][42] = {
+ /* 'EAO' stands for 'East_Asian_OP'; 'edg' stands for 'EDGE'; 'UEP' stands for 'Unassigned_Extended_Pictographic_Ideographic'; u stands for
+ * 'unused in this Unicode release (and the data in its row and column are garbage) */
+/* AL B2 BA BB BK CB CL CM CP CR EAO EB edg EM EX GL H2 H3 HL HY ID IN IS JL JT JV LF NL NS NU OP PO PR QU RI SP SY UEP WJ ZW ZWJ u */
+/* AL */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* B2 */ { 1, 2, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* BA */ {14,14, 0,14, 0, 1, 2, 0, 2, 0, 14,14, 1,14, 2,14,14,14,14, 0,14,13, 2,14,14,14, 0, 0, 0,14,14,14,14, 0,14, 0, 2, 14, 0, 0, 0, 2 },
+/* BB */ { 0, 0, 0, 0, 0, 1, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 },
+/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* CB */ { 1, 1, 1, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* CL */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* CM */ { 3, 3, 3, 3, 0, 3, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 0, 3, 3 },
+/* CP */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 0, 1,33,33, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* EAO*/ { 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2 },
+/* EB */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 0, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* edg*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* EM */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* EX */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* GL */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 },
+/* H2 */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* H3 */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* HL */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* HY */ {14,14, 0,14, 0, 1, 2, 0, 2, 0, 14,14, 1,14, 2,14,14,14,14, 0,14,13, 2,14,14,14, 0, 0, 0,13,14,14,14, 0,14, 0, 2, 14, 0, 0, 0, 2 },
+/* ID */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* IN */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* IS */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0,12, 1,33,33, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* JL */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* JT */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* JV */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* NS */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* NU */ { 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 },
+/* OP */ { 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2 },
+/* PO */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* PR */ { 0, 1, 0, 1, 0, 1, 2, 0, 2, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 2, 0, 0, 0, 0, 2 },
+/* QU */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 },
+/* RI */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,15, 0, 2, 1, 0, 0, 0, 2 },
+/* SP */ { 7, 7, 7, 7, 0, 7, 8, 7, 8, 0, 7, 7, 1, 7, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 7, 8, 0, 7, 8 },
+/* SY */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0,12, 1,33,33, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* UEP*/ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 0, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 0, 2 },
+/* WJ */ { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 },
+/* ZW */ { 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1 },
+/* ZWJ*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* u */ { 1, 1, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 2, 1, 0, 0, 0, 2 }
};
#define WB_NOBREAK 0
@@ -419852,57 +436029,58 @@ static const U8 WB_table[23][23] = {
#define MAX_FOLD_FROMS 3
/* Generated from:
- * d60b1a3dffe16c4aaaf3f00d21993bb320d05e9828b106182214764d4c69935c lib/Unicode/UCD.pm
- * ce96627d4fc91b4fd886c409caeb9b76cf7bd345e12f05c6701add7f233f6437 lib/unicore/ArabicShaping.txt
- * 0e69eef3da722cc104522d8372e86d5b86bb7afcc761b0c991e39e832294946d lib/unicore/BidiBrackets.txt
- * a00d9d21585106a52113fb7b1d3d0373a5835be72e76862fb559ebddd474d70e lib/unicore/BidiMirroring.txt
- * 81a82b6a9fcf1a9c12f588d7a1decd73a9afdc4cac95b0eb7e576e7942d6c19f lib/unicore/Blocks.txt
- * 99d231d7c91688bbe8ca8ccebcc2f46b5b222f844babe4827295bae11e2abe5f lib/unicore/CaseFolding.txt
- * 38badafd818d8405324fe298c0676be0c95186368c84b5368375fd871a645144 lib/unicore/CompositionExclusions.txt
- * e779a443d3aa2a3166a15becaa2b737c922480e32c0453d5956093633555078f lib/unicore/DAge.txt
- * a5d45f59b39deaab3c72ce8c1a2e212a5e086dff11b1f9d5bb0e352642e82248 lib/unicore/DCoreProperties.txt
- * 3ac44e11c84bdaf6b207d2c2c20eed857ae17052393fc7f71b0fe951186ba906 lib/unicore/DNormalizationProps.txt
- * 4f822ec7a9ebbb3138ad29bade8b9688d25b39c7a3c0b7431f01e7229e4fcb6e lib/unicore/EastAsianWidth.txt
- * fc535aa1047a70105ab9a22c2b4c3f363a2ff02fe48ebbc5eeb9873b2752ff0b lib/unicore/EquivalentUnifiedIdeograph.txt
- * b9c5158ce944d2fec57e0e4ecb716bdabfc3bdde73525f1772fe03f61a30d473 lib/unicore/HangulSyllableType.txt
- * 36c1b2a626ff1fb23b8b21e6ea8712698f8ce668dded1cb48b8ddf6a6a1b04e9 lib/unicore/IdStatus.txt
- * 4857c4ffa3898e6128b2d46b0a02e499a663fb91464a69ef3611096f01293acc lib/unicore/IdType.txt
- * 69197b019fa5f2fb0d8c6ed1ed8acb9f2e8b5b8f45a947953ffa652f3bf54983 lib/unicore/IndicPositionalCategory.txt
- * 6604e2f0fde7428675364aa0006bc686b79488dcc60ae8cb29800af2be3352e8 lib/unicore/IndicSyllabicCategory.txt
- * 84ead63924aaa74b988b2eaf254a8733276ed108633ce2ef77a9ee1de7818162 lib/unicore/Jamo.txt
- * d5abcd8f54c8a2aa912924c485ccf7f968ad98feaa303d8e9a29ad89172f1faf lib/unicore/LineBreak.txt
- * 985128e8c8b2540233331d9b27d897d2c23bd5bcf1d05da960befce6efc59542 lib/unicore/NameAliases.txt
- * 27282b8aa01d4d0c44aef436cb74195ae8639ffa187aeee4e6247af76febea76 lib/unicore/NamedSequences.txt
- * 485b5a3ed25dbf1f94dfa5a9b69d8b4550ffd0c33045ccc55ccfd7c80b2a40cf lib/unicore/PropList.txt
- * 6b3902e9268cd843fe65cbdea992108c9528343ec0679f800b96f356bb553e5a lib/unicore/PropValueAliases.txt
- * 2bd5777847e3d6add3c7e5c0d1393ddcab89e5a0ac3ff498cb0c53041f0b86e4 lib/unicore/PropertyAliases.txt
- * 03a61dc89422e44cc2b73e8e893321007880ab69e2a4d281c0f1bc29c602b9d0 lib/unicore/ScriptExtensions.txt
- * 9a5ed1ec9b5f0d7147e9371ad792ab39203611af7637cff2aa4a5c663b172cde lib/unicore/Scripts.txt
- * 6424312f1dc39b22e0ff9c0ffb13dfad424d9b03e6a6dc6bca941f6bf5ef1ffd lib/unicore/SpecialCasing.txt
- * bdbffbbfc8ad4d3a6d01b5891510458f3d36f7170422af4ea2bed3211a73e8bb lib/unicore/UnicodeData.txt
- * 160f41816234addb511901d5f21febd69574578dd93de6ef8153e35693325575 lib/unicore/VerticalOrientation.txt
- * 32dfb37d21db530529a6ec3dc13d96f21f8e7c7faf7ff3db8a9760cd76cec81d lib/unicore/auxiliary/GCBTest.txt
- * 2bd3c5e2d62701ff81fb3ec318e179a4618cabb1493b1e0dd2b4e7e56c5437c4 lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * c51fbebfa82a0f36473b44bfd71d5ef6cb6a1f81fb313375dc9a1910d79bb2b6 lib/unicore/auxiliary/LBTest.txt
- * 80b0107750818d8f370bd120b6fe56b6855b60581f72affe8b60409a469b4b65 lib/unicore/auxiliary/SBTest.txt
- * 09e3166ebab166ac630a227f77f4e794ebd433271abd5588f5a67e7f199c71ee lib/unicore/auxiliary/SentenceBreakProperty.txt
- * bf5373ce28a5df06796c93dc159dd15a997bb2950c92704b40ae8190cfc3716d lib/unicore/auxiliary/WBTest.txt
- * a2b7373cf2fe3fa3b26dbb53405ca849985f771ff47f1c61743978003ff80499 lib/unicore/auxiliary/WordBreakProperty.txt
- * d2686f400a638c80775d7c662556fb8fa8dd3bbe4aa548d9d31624264c6e1bb1 lib/unicore/emoji/emoji.txt
- * b827ae5da8c2b08947cc9a120a7b7fd2f1676fb160b508df78075381635b127c lib/unicore/extracted/DBidiClass.txt
- * 6fdc5b5ef40444a8f0c772e6b67c00498d4216fe0c0fdf76744ce338f2ad3810 lib/unicore/extracted/DBinaryProperties.txt
- * e14928a5bf6ad5958a80332bd42e96e14420080a95c660e5da29384e496755d0 lib/unicore/extracted/DCombiningClass.txt
- * 579a03281fbe87b78d5d9a8523de4d255edd7e4ca6eab0e4c7729de97e9b89b1 lib/unicore/extracted/DDecompositionType.txt
- * ad83c59b257e9d480ffd3001d4ac240c5fed7cb1919453e1c4e8877035256bcd lib/unicore/extracted/DEastAsianWidth.txt
- * 4502f0969e4e6558c4b4c6ca4c23dad70b863d61dd3d5eed1a62a6c3c99fd570 lib/unicore/extracted/DGeneralCategory.txt
- * 00bb88b89e2adb646f3177f9444e2d3192386b81a5de9556104b338274b253e1 lib/unicore/extracted/DJoinGroup.txt
- * ac835b6e11a60c9820d3cf2d1cb0558dd68efb8f53f404a51632e4726690a6d7 lib/unicore/extracted/DJoinType.txt
- * baba9dfc133e3cb770a89aaf0973b1341fa61c2da6c176baf6428898b3b568d8 lib/unicore/extracted/DLineBreak.txt
- * 6d4a8c945dd7db83ed617cbb7d937de7f4ecf016ff22970d846e996a7c9a2a5d lib/unicore/extracted/DNumType.txt
- * 5b7c14380d5cceeaffcfbc18db1ed936391d2af2d51f5a41f1a17b692c77e59b lib/unicore/extracted/DNumValues.txt
- * 28076ceb3f4e2514ea9db243f4b918b9a7c2807b036237e2276b99b2659d9474 lib/unicore/mktables
- * 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version
- * 24120d5e0c9685c442c93bc1dbea9b85ef973bf8e9474baf0e55b160c288226b regen/charset_translations.pl
- * 9f74e34278592ddf58fef8c32236b294e94ea5e12627f911f4563e8040a07292 regen/mk_PL_charclass.pl
- * 5eb9e6c825496cc9aa705e3cd33bc6d5a9657dcca16d4c4acc4824ff30b34a26 regen/mk_invlists.pl
- * ex: set ro: */
+ * 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
+ * eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+ * 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+ * b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+ * 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+ * cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+ * 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+ * 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+ * d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+ * d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+ * 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+ * f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+ * 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+ * 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+ * 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+ * 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+ * ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+ * 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+ * 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+ * 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+ * 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+ * fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+ * e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+ * 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+ * e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+ * 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+ * cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+ * 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+ * 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+ * ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+ * 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+ * 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+ * f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+ * 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+ * 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+ * 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+ * f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+ * ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+ * db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+ * d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+ * fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+ * e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+ * c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+ * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+ * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+ * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+ * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
+ * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
+ * c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl
+ * cdbafee25193032242e77f2a6332b731d8392ce342fa616dbabc2c14c7b44eb6 regen/mk_invlists.pl
+ * ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h
index ef80bde93b..4776f840c5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h
@@ -9,7 +9,7 @@
/* Package name : perl5
* Source directory :
- * Configuration time: Mon Jul 11 03:22:33 2022
+ * Configuration time: Mon Feb 12 11:14:47 2024
* Configured by : siepo
* Target system :
*/
@@ -32,7 +32,7 @@
* This symbol, if defined, indicates that the cbrt() (cube root)
* function is available.
*/
-#define HAS_CBRT /**/
+/*#define HAS_CBRT / **/
/* HAS_CHOWN:
* This symbol, if defined, indicates that the chown routine is
@@ -779,9 +779,9 @@
*/
#define HAS_QUAD /**/
#ifdef HAS_QUAD
-# define Quad_t long long /**/
-# define Uquad_t unsigned long long /**/
-# define QUADKIND 3 /**/
+# define Quad_t __int64 /**/
+# define Uquad_t unsigned __int64 /**/
+# define QUADKIND 5 /**/
# define QUAD_IS_INT 1
# define QUAD_IS_LONG 2
# define QUAD_IS_LONG_LONG 3
@@ -862,7 +862,7 @@
* This symbol is defined if the C compiler can cast negative
* or large floating point numbers to 32-bit ints.
*/
-#define CASTI32 /**/
+/*#define CASTI32 / **/
/* CASTNEGFLOAT:
* This symbol is defined if the C compiler can cast negative
@@ -1036,7 +1036,7 @@
* static (c89 compilers)
*/
#define HAS_STATIC_INLINE /**/
-#define PERL_STATIC_INLINE static __inline__ /**/
+#define PERL_STATIC_INLINE static __inline /**/
/* USE_STDIO_PTR:
* This symbol is defined if the _ptr and _cnt fields (or similar)
@@ -1074,9 +1074,9 @@
*/
#define USE_STDIO_PTR /**/
#ifdef USE_STDIO_PTR
-#define FILE_ptr(fp) ((fp)->_ptr)
+#define FILE_ptr(fp) PERLIO_FILE_ptr(fp)
#define STDIO_PTR_LVALUE /**/
-#define FILE_cnt(fp) ((fp)->_cnt)
+#define FILE_cnt(fp) PERLIO_FILE_cnt(fp)
#define STDIO_CNT_LVALUE /**/
/*#define STDIO_PTR_LVAL_SETS_CNT / **/
#define STDIO_PTR_LVAL_NOCHANGE_CNT /**/
@@ -1104,8 +1104,8 @@
*/
#define USE_STDIO_BASE /**/
#ifdef USE_STDIO_BASE
-#define FILE_base(fp) ((fp)->_base)
-#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
+#define FILE_base(fp) PERLIO_FILE_base(fp)
+#define FILE_bufsiz(fp) (PERLIO_FILE_cnt(fp) + PERLIO_FILE_ptr(fp) - PERLIO_FILE_base(fp))
#endif
/* DOUBLESIZE:
@@ -1208,7 +1208,7 @@
* to get any typedef'ed information.
* We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
*/
-#define SSize_t long long /* signed count of bytes */
+#define SSize_t __int64 /* signed count of bytes */
/* EBCDIC:
* This symbol, if defined, indicates that this system uses
@@ -1229,7 +1229,7 @@
* 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 "E:\\tlperl\\lib" /**/
+#define ARCHLIB "d:\\tlperl\\lib" /**/
/*#define ARCHLIB_EXP "" / **/
/* BIN:
@@ -1244,8 +1244,8 @@
* This symbol, if defined, indicates that we'd like to relocate entries
* in @INC at run time based on the location of the perl binary.
*/
-#define BIN "E:\\tlperl\\bin" /**/
-#define BIN_EXP "E:\\tlperl\\bin" /**/
+#define BIN "d:\\tlperl\\bin" /**/
+#define BIN_EXP "d:\\tlperl\\bin" /**/
#define PERL_RELOCATABLE_INC "undef" /**/
/* PERL_INC_VERSION_LIST:
@@ -1283,7 +1283,7 @@
* 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 "E:\\tlperl\\lib" /**/
+#define PRIVLIB "d:\\tlperl\\lib" /**/
#define PRIVLIB_EXP (PerlEnv_lib_path(PERL_VERSION_STRING, NULL)) /**/
/* SITEARCH:
@@ -1301,7 +1301,7 @@
* 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 "E:\\tlperl\\site\\lib" /**/
+#define SITEARCH "d:\\tlperl\\site\\lib" /**/
/*#define SITEARCH_EXP "" / **/
/* SITELIB:
@@ -1324,7 +1324,7 @@
* 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 "E:\\tlperl\\site\\lib" /**/
+#define SITELIB "d:\\tlperl\\site\\lib" /**/
#define SITELIB_EXP (PerlEnv_sitelib_path(PERL_VERSION_STRING, NULL)) /**/
#define SITELIB_STEM "" /**/
@@ -1369,7 +1369,7 @@
* feature tests from Configure are generally more reliable.
*/
#define OSNAME "MSWin32" /**/
-#define OSVERS "10.0.19042.508" /**/
+#define OSVERS "10.0.22631.3085" /**/
/* CAT2:
* This macro concatenates 2 tokens together.
@@ -1417,9 +1417,9 @@
* This symbol is intended to be used along with CPPRUN in the same manner
* symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
*/
-#define CPPSTDIN "gcc -E"
-#define CPPMINUS "-"
-#define CPPRUN "gcc -E"
+#define CPPSTDIN "cppstdin"
+#define CPPMINUS ""
+#define CPPRUN "cl -nologo -E"
#define CPPLAST ""
/* HAS_ACCESS:
@@ -1460,6 +1460,10 @@
* Can we handle GCC attribute for functions that should always be
* inlined.
*/
+/* HASATTRIBUTE_VISIBILITY:
+ * Can we handle GCC attribute for functions that should have a
+ * different visibility.
+ */
/*#define HASATTRIBUTE_DEPRECATED / **/
/*#define HASATTRIBUTE_FORMAT / **/
/*#define PRINTF_FORMAT_NULL_OK / **/
@@ -1470,6 +1474,7 @@
/*#define HASATTRIBUTE_UNUSED / **/
/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
/*#define HASATTRIBUTE_ALWAYS_INLINE / **/
+/*#define HASATTRIBUTE_VISIBILITY / **/
/* HAS_BACKTRACE:
* This symbol, if defined, indicates that the backtrace() routine is
@@ -1541,7 +1546,7 @@
/*#define HAS_ENDPROTOENT / **/
/* HAS_ENDPWENT:
- * This symbol, if defined, indicates that the getgrent routine is
+ * This symbol, if defined, indicates that the endpwent routine is
* available for finalizing sequential access of the passwd database.
*/
/*#define HAS_ENDPWENT / **/
@@ -1762,11 +1767,11 @@
* This symbol, if defined, indicates that the long double is
* the 128-bit VAX format H.
*/
-#define HAS_LDEXPL /**/
+/*#define HAS_LDEXPL / **/
#define HAS_LONG_DOUBLE /**/
#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 16 /**/
-#define LONG_DOUBLEKIND 3 /**/
+#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
@@ -1795,7 +1800,7 @@
* C preprocessor can make decisions based on it. It is only
* defined if the system supports long long.
*/
-#define HAS_LONG_LONG /**/
+/*#define HAS_LONG_LONG / **/
#ifdef HAS_LONG_LONG
#define LONGLONGSIZE 8 /**/
#endif
@@ -2246,7 +2251,7 @@
*/
#ifndef USE_CROSS_COMPILE
/*#define USE_CROSS_COMPILE / **/
-#define PERL_TARGETARCH "" /**/
+#define PERL_TARGETARCH "" /**/
#endif
/* PERL_USE_DEVEL:
@@ -2284,7 +2289,7 @@
* This symbol, if defined, indicates that the acosh routine is
* available to do the inverse hyperbolic cosine function.
*/
-#define HAS_ACOSH /**/
+/*#define HAS_ACOSH / **/
/* HAS_AINTL:
* This symbol, if defined, indicates that the aintl routine is
@@ -2296,13 +2301,20 @@
* This symbol, if defined, indicates that the asinh routine is
* available to do the inverse hyperbolic sine function.
*/
-#define HAS_ASINH /**/
+/*#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 /**/
+/*#define HAS_ATANH / **/
+
+/* HAS_NON_INT_BITFIELDS:
+ * This symbol, if defined, indicates that the C compiler accepts, without
+ * error or warning, struct bitfields that are declared with sizes other
+ * than plain 'int'; for example 'unsigned char' is accepted.
+ */
+#define HAS_NON_INT_BITFIELDS /**/
/* HAS_BUILTIN_CHOOSE_EXPR:
* Can we handle GCC builtin for compile-time ternary-like expressions
@@ -2369,13 +2381,13 @@
* This symbol, if defined, indicates that the copysign routine is
* available to do the copysign function.
*/
-#define HAS_COPYSIGN /**/
+/*#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.
*/
-#define HAS_COPYSIGNL /**/
+/*#define HAS_COPYSIGNL / **/
/* USE_CPLUSPLUS:
* This symbol, if defined, indicates that a C++ compiler was
@@ -2392,7 +2404,7 @@
/*#define HAS_DBMINIT_PROTO / **/
/* HAS_DIR_DD_FD:
- * This symbol, if defined, indicates that the the DIR* dirstream
+ * This symbol, if defined, indicates that the DIR* dirstream
* structure contains a member variable named dd_fd.
*/
/*#define HAS_DIR_DD_FD / **/
@@ -2421,7 +2433,7 @@
* This symbol, if defined, indicates that the erf routine is
* available to do the error function.
*/
-#define HAS_ERF /**/
+/*#define HAS_ERF / **/
/* HAS_ERFC:
* This symbol, if defined, indicates that the erfc routine is
@@ -2433,13 +2445,13 @@
* This symbol, if defined, indicates that the exp2 routine is
* available to do the 2**x function.
*/
-#define HAS_EXP2 /**/
+/*#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 /**/
+/*#define HAS_EXPM1 / **/
/* HAS_FAST_STDIO:
* This symbol, if defined, indicates that the "fast stdio"
@@ -2480,11 +2492,24 @@
*/
/*#define HAS_FEGETROUND / **/
+/* HAS_FFS:
+ * This symbol, if defined, indicates that the ffs routine is available
+ * to find the first bit set in its argument. If it's not available,
+ * roll your own.
+ */
+/* HAS_FFSL:
+ * This symbol, if defined, indicates that the ffsl routine is available
+ * to find the first bit set in its argument. If it's not available,
+ * roll your own.
+ */
+/*#define HAS_FFS / **/
+/*#define HAS_FFSL / **/
+
/* HAS_FINITE:
* This symbol, if defined, indicates that the finite routine is
* available to check whether a double is finite (non-infinity non-NaN).
*/
-#define HAS_FINITE /**/
+/*#define HAS_FINITE / **/
/* HAS_FINITEL:
* This symbol, if defined, indicates that the finitel routine is
@@ -2511,13 +2536,13 @@
* This symbol, if defined, indicates that the fmax routine is
* available to do the maximum function.
*/
-#define HAS_FMAX /**/
+/*#define HAS_FMAX / **/
/* HAS_FMIN:
* This symbol, if defined, indicates that the fmin routine is
* available to do the minimum function.
*/
-#define HAS_FMIN /**/
+/*#define HAS_FMIN / **/
/* HAS_FP_CLASS:
* This symbol, if defined, indicates that the fp_class routine is
@@ -2622,7 +2647,7 @@
* available to break a long double floating-point number into
* a normalized fraction and an integral power of 2.
*/
-#define HAS_FREXPL /**/
+/*#define HAS_FREXPL / **/
/* HAS_STRUCT_FS_DATA:
* This symbol, if defined, indicates that the struct fs_data
@@ -2759,19 +2784,19 @@
* This symbol, if defined, indicates that the hypot routine is
* available to do the hypotenuse function.
*/
-#define HAS_HYPOT /**/
+/*#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 /**/
+/*#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.
*/
-#define HAS_ILOGBL /**/
+/*#define HAS_ILOGBL / **/
/* HAS_INETNTOP:
* This symbol, if defined, indicates that the inet_ntop() function
@@ -2815,7 +2840,7 @@
* This symbol, if defined, indicates that the isinf routine is
* available to check whether a double is an infinity.
*/
-#define HAS_ISINF /**/
+/*#define HAS_ISINF / **/
/* HAS_ISINFL:
* This symbol, if defined, indicates that the isinfl routine is
@@ -2827,7 +2852,7 @@
* This symbol, if defined, indicates that the isless routine is
* available to do the isless function.
*/
-#define HAS_ISLESS /**/
+/*#define HAS_ISLESS / **/
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
@@ -2839,13 +2864,13 @@
* This symbol, if defined, indicates that the isnanl routine is
* available to check whether a long double is a NaN.
*/
-#define HAS_ISNANL /**/
+/*#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 /**/
+/*#define HAS_ISNORMAL / **/
/* HAS_J0:
* This symbol, if defined, indicates to the C program that the
@@ -2857,7 +2882,7 @@
* j0l() function is available for Bessel functions of the first
* kind of the order zero, for long doubles.
*/
-#define HAS_J0 /**/
+/*#define HAS_J0 / **/
/*#define HAS_J0L / **/
/* HAS_LC_MONETARY_2008:
@@ -2879,7 +2904,7 @@
* available to do the log gamma function. See also HAS_TGAMMA and
* HAS_LGAMMA_R.
*/
-#define HAS_LGAMMA /**/
+/*#define HAS_LGAMMA / **/
/* HAS_LGAMMA_R:
* This symbol, if defined, indicates that the lgamma_r routine is
@@ -2899,72 +2924,72 @@
* available to return the long long value closest to a double
* (according to the current rounding mode).
*/
-#define HAS_LLRINT /**/
+/*#define HAS_LLRINT / **/
/* HAS_LLRINTL:
* This symbol, if defined, indicates that the llrintl routine is
* available to return the long long value closest to a long double
* (according to the current rounding mode).
*/
-#define HAS_LLRINTL /**/
+/*#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 /**/
+/*#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 /**/
+/*#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 /**/
+/*#define HAS_LOG1P / **/
/* HAS_LOG2:
* This symbol, if defined, indicates that the log2 routine is
* available to do the log2 function.
*/
-#define HAS_LOG2 /**/
+/*#define HAS_LOG2 / **/
/* HAS_LOGB:
* This symbol, if defined, indicates that the logb routine is
* available to do the logb function.
*/
-#define HAS_LOGB /**/
+/*#define HAS_LOGB / **/
/* HAS_LRINT:
* This symbol, if defined, indicates that the lrint routine is
* available to return the integral value closest to a double
* (according to the current rounding mode).
*/
-#define HAS_LRINT /**/
+/*#define HAS_LRINT / **/
/* HAS_LRINTL:
* This symbol, if defined, indicates that the lrintl routine is
* available to return the integral value closest to a long double
* (according to the current rounding mode).
*/
-#define HAS_LRINTL /**/
+/*#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 /**/
+/*#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 /**/
+/*#define HAS_LROUNDL / **/
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
@@ -3031,8 +3056,8 @@
* a prototype for the modfl() function. Otherwise, it is up
* to the program to supply one.
*/
-#define HAS_MODFL /**/
-#define HAS_MODFL_PROTO /**/
+/*#define HAS_MODFL / **/
+/*#define HAS_MODFL_PROTO / **/
/* HAS_MPROTECT:
* This symbol, if defined, indicates that the mprotect system call is
@@ -3050,7 +3075,7 @@
* This symbol, if defined, indicates that the nan routine is
* available to generate NaN.
*/
-#define HAS_NAN /**/
+/*#define HAS_NAN / **/
/* HAS_NANOSLEEP:
* This symbol, if defined, indicates that the nanosleep
@@ -3063,7 +3088,7 @@
* available to return the integral value closest to (according to
* the current rounding mode) to x.
*/
-#define HAS_NEARBYINT /**/
+/*#define HAS_NEARBYINT / **/
/* HAS_NEWLOCALE:
* This symbol, if defined, indicates that the newlocale routine is
@@ -3087,14 +3112,19 @@
* available to return the name of the locale for a category mask.
*/
/* I_XLOCALE:
- * This symbol, if defined, indicates to the C program that it should
- * include <xlocale.h> to get uselocale() and its friends.
+ * This symbol, if defined, indicates to the C program that the
+ * header xlocale.h is available. See also NEED_XLOCALE_H
+ */
+/* NEED_XLOCALE_H:
+ * This symbol, if defined, indicates that the C program should
+ * include <xlocale.h> to get newlocale() and its friends.
*/
/*#define HAS_NEWLOCALE / **/
/*#define HAS_FREELOCALE / **/
/*#define HAS_USELOCALE / **/
/*#define HAS_DUPLOCALE / **/
/*#define HAS_QUERYLOCALE / **/
+/*#define NEED_XLOCALE_H / **/
/*#define I_XLOCALE / **/
/* HAS_NEXTAFTER:
@@ -3102,14 +3132,14 @@
* available to return the next machine representable double from
* x in direction y.
*/
-#define HAS_NEXTAFTER /**/
+/*#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 /**/
+/*#define HAS_NEXTTOWARD / **/
/* HAS_NL_LANGINFO:
* This symbol, if defined, indicates that the nl_langinfo routine is
@@ -3185,26 +3215,26 @@
* This symbol, if defined, indicates that the remainder routine is
* available to return the floating-point remainder.
*/
-#define HAS_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 /**/
+/*#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 /**/
+/*#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 /**/
+/*#define HAS_ROUND / **/
/* HAS_SBRK_PROTO:
* This symbol, if defined, indicates that the system provides
@@ -3220,13 +3250,13 @@
* available to multiply floating-point number by integral power
* of radix.
*/
-#define HAS_SCALBN /**/
+/*#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.
*/
-#define HAS_SCALBNL /**/
+/*#define HAS_SCALBNL / **/
/* HAS_SENDMSG:
* This symbol, if defined, indicates that the sendmsg routine is
@@ -3234,6 +3264,12 @@
*/
/*#define HAS_SENDMSG / **/
+/* HAS_SETENV:
+ * This symbol, if defined, indicates that the setenv routine is
+ * available for use.
+ */
+/*#define HAS_SETENV / **/
+
/* HAS_SETITIMER:
* This symbol, if defined, indicates that the setitimer routine is
* available to set interval timers.
@@ -3265,7 +3301,7 @@
* in perl. Users should call Perl_signbit(), which will be #defined to
* the system's signbit() function or macro if this symbol is defined.
*/
-#define HAS_SIGNBIT /**/
+/*#define HAS_SIGNBIT / **/
/* HAS_SIGPROCMASK:
* This symbol, if defined, indicates that the sigprocmask
@@ -3317,7 +3353,7 @@
* This symbol, if defined, indicates that the sqrtl routine is
* available to do long double square roots.
*/
-#define HAS_SQRTL /**/
+/*#define HAS_SQRTL / **/
/* HAS_SETRESGID_PROTO:
* This symbol, if defined, indicates that the system provides
@@ -3419,6 +3455,12 @@
*/
/*#define HAS_STRTOUQ / **/
+/* HAS_STRXFRM_L:
+ * This symbol, if defined, indicates that the strxfrm_l() routine is
+ * available to transform strings.
+ */
+/*#define HAS_STRXFRM_L / **/
+
/* HAS_SYSCALL_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the syscall() function. Otherwise, it is up
@@ -3440,7 +3482,7 @@
* This symbol, if defined, indicates that the tgamma routine is
* available to do the gamma function. See also HAS_LGAMMA.
*/
-#define HAS_TGAMMA /**/
+/*#define HAS_TGAMMA / **/
/* HAS_CTIME64:
* This symbol, if defined, indicates that the ctime64 () routine is
@@ -3495,13 +3537,13 @@
* This symbol, if defined, indicates that the trunc routine is
* available to round doubles towards zero.
*/
-#define HAS_TRUNC /**/
+/*#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 /**/
+/*#define HAS_TRUNCL / **/
/* U32_ALIGNMENT_REQUIRED:
* This symbol, if defined, indicates that you must access
@@ -3552,7 +3594,7 @@
/* HAS_WCSXFRM:
* This symbol, if defined, indicates that the wcsxfrm routine is
- * available to tranform a wide character string for wcscmp().
+ * available to transform a wide character string for wcscmp().
*/
#define HAS_WCSXFRM /**/
@@ -3769,6 +3811,11 @@
*/
/*#define I_SYS_STATVFS / **/
+/* I_SYS_SYSCALL:
+ * This symbol, if defined, indicates that <sys/syscall.h> exists.
+ */
+/*#define I_SYS_SYSCALL / **/
+
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
@@ -3816,8 +3863,8 @@
*/
#define DOUBLEINFBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f /**/
#define DOUBLENANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f /**/
-#define LONGDBLINFBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /**/
-#define LONGDBLNANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /**/
+#define LONGDBLINFBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f /**/
+#define LONGDBLNANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f /**/
/* PERL_PRIfldbl:
* This symbol, if defined, contains the string used by stdio to
@@ -3901,10 +3948,10 @@
#define DOUBLE_IS_IBM_DOUBLE_64_BIT 13
#define DOUBLE_IS_CRAY_SINGLE_64_BIT 14
#define DOUBLE_IS_UNKNOWN_FORMAT -1
-/*#define PERL_PRIfldbl "Lf" / **/
-/*#define PERL_PRIgldbl "Lg" / **/
-/*#define PERL_PRIeldbl "Le" / **/
-/*#define PERL_SCNfldbl "Lf" / **/
+/*#define PERL_PRIfldbl "f" / **/
+/*#define PERL_PRIgldbl "g" / **/
+/*#define PERL_PRIeldbl "e" / **/
+/*#define PERL_SCNfldbl "f" / **/
#define DOUBLE_HAS_INF
#define DOUBLE_HAS_NAN
#define DOUBLE_HAS_NEGATIVE_ZERO
@@ -3935,7 +3982,7 @@
* This depends on which floating point type was chosen.
*/
#define DOUBLEMANTBITS 52
-#define LONGDBLMANTBITS 64
+#define LONGDBLMANTBITS 52
#define NVMANTBITS 52
/* NEED_VA_COPY:
@@ -3949,6 +3996,32 @@
*/
/*#define NEED_VA_COPY / **/
+/* I32df:
+ * This symbol defines the format string used for printing a Perl I32
+ * as a signed decimal integer.
+ */
+/* U32uf:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned decimal integer.
+ */
+/* U32of:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned octal integer.
+ */
+/* U32xf:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define I32df "ld" /**/
+#define U32of "lo" /**/
+#define U32uf "lu" /**/
+#define U32xf "lx" /**/
+#define U32Xf "lX" /**/
+
/* IVTYPE:
* This symbol defines the C type used for Perl's IV.
*/
@@ -4038,35 +4111,35 @@
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
*/
-#define IVTYPE long long /**/
-#define UVTYPE unsigned long long /**/
-#define I8TYPE char /**/
-#define U8TYPE unsigned char /**/
-#define I16TYPE short /**/
-#define U16TYPE unsigned short /**/
-#define I32TYPE long /**/
-#define U32TYPE unsigned long /**/
+#define IVTYPE __int64 /**/
+#define UVTYPE unsigned __int64 /**/
+#define I8TYPE char /**/
+#define U8TYPE unsigned char /**/
+#define I16TYPE short /**/
+#define U16TYPE unsigned short /**/
+#define I32TYPE long /**/
+#define U32TYPE unsigned long /**/
#ifdef HAS_QUAD
-#define I64TYPE long long /**/
-#define U64TYPE unsigned long long /**/
+#define I64TYPE __int64 /**/
+#define U64TYPE unsigned __int64 /**/
#endif
-#define NVTYPE double /**/
-#define IVSIZE 8 /**/
-#define UVSIZE 8 /**/
-#define I8SIZE 1 /**/
-#define U8SIZE 1 /**/
-#define I16SIZE 2 /**/
-#define U16SIZE 2 /**/
-#define I32SIZE 4 /**/
-#define U32SIZE 4 /**/
+#define NVTYPE double /**/
+#define IVSIZE 8 /**/
+#define UVSIZE 8 /**/
+#define I8SIZE 1 /**/
+#define U8SIZE 1 /**/
+#define I16SIZE 2 /**/
+#define U16SIZE 2 /**/
+#define I32SIZE 4 /**/
+#define U32SIZE 4 /**/
#ifdef HAS_QUAD
-#define I64SIZE 8 /**/
-#define U64SIZE 8 /**/
+#define I64SIZE 8 /**/
+#define U64SIZE 8 /**/
#endif
-#define NVSIZE 8 /**/
+#define NVSIZE 8 /**/
#undef NV_PRESERVES_UV
-#define NV_PRESERVES_UV_BITS 53
-#define NV_OVERFLOWS_INTEGERS_AT (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
+#define NV_PRESERVES_UV_BITS 53
+#define NV_OVERFLOWS_INTEGERS_AT (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
#define NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
@@ -4114,14 +4187,14 @@
* This symbol defines the format string used for printing a Perl NV
* using %g-ish floating point format.
*/
-#define IVdf "I64d" /**/
-#define UVuf "I64u" /**/
-#define UVof "I64o" /**/
-#define UVxf "I64x" /**/
-#define UVXf "I64X" /**/
-#define NVef "e" /**/
-#define NVff "f" /**/
-#define NVgf "g" /**/
+#define IVdf "I64d" /**/
+#define UVuf "I64u" /**/
+#define UVof "I64o" /**/
+#define UVxf "I64x" /**/
+#define UVXf "I64X" /**/
+#define NVef "e" /**/
+#define NVff "f" /**/
+#define NVgf "g" /**/
/* SELECT_MIN_BITS:
* This symbol holds the minimum number of bits operated by select.
@@ -4132,6 +4205,16 @@
*/
#define SELECT_MIN_BITS 32 /**/
+/* ST_DEV_SIZE:
+ * This variable contains the size of struct stat's st_dev in bytes.
+ */
+/* ST_DEV_SIGN:
+ * This symbol holds the signedness of struct stat's st_dev.
+ * 1 for unsigned, -1 for signed.
+ */
+#define ST_DEV_SIGN 1 /* st_dev sign */
+#define ST_DEV_SIZE 4 /* st_dev size */
+
/* ST_INO_SIZE:
* This variable contains the size of struct stat's st_ino in bytes.
*/
@@ -4178,9 +4261,9 @@
* This symbol contains the minimum value for the time_t offset that
* the system function localtime () accepts, and defaults to 0
*/
-#define GMTIME_MAX 2147483647 /**/
+#define GMTIME_MAX 32535291599 /**/
#define GMTIME_MIN 0 /**/
-#define LOCALTIME_MAX 2147483647 /**/
+#define LOCALTIME_MAX 32535244799 /**/
#define LOCALTIME_MIN 0 /**/
/* USE_64_BIT_INT:
@@ -4873,10 +4956,15 @@
*/
/*#define HAS_MBRTOWC / **/
+/* HAS_NL_LANGINFO_L:
+ * This symbol, when defined, indicates presence of the nl_langinfo_l()
+ * function
+ */
/* HAS_THREAD_SAFE_NL_LANGINFO_L:
* This symbol, when defined, indicates presence of the nl_langinfo_l()
* function, and that it is thread-safe.
*/
+/*#define HAS_NL_LANGINFO_L / **/
/*#define HAS_THREAD_SAFE_NL_LANGINFO_L / **/
/* OLD_PTHREAD_CREATE_JOINABLE:
@@ -5095,6 +5183,18 @@
*/
/*#define HAS_STRTOLD_L / **/
+/* PERL_THREAD_LOCAL:
+ * This symbol, if defined, gives a linkage specification for thread-local
+ * storage. For example, for a C11 compiler this will be _Thread_local.
+ * Beware, some compilers are sensitive to the C language standard they are
+ * told to parse. For example, suncc defaults to C11, so our probe will
+ * report that _Thread_local can be used. However, if the -std=c99 is later
+ * added to the compiler flags, then _Thread_local will become a syntax
+ * error. Hence it is important for these flags to be consistent between
+ * probing and use.
+ */
+/*#define PERL_THREAD_LOCAL / **/
+
/* HAS_TMPNAM_R:
* This symbol, if defined, indicates that the tmpnam_r routine
* is available to tmpnam re-entrantly.
@@ -5191,7 +5291,7 @@
/* Gid_t_f:
* This symbol defines the format string used for printing a Gid_t.
*/
-#define Gid_t_f "ld" /**/
+#define Gid_t_f "ld" /**/
/* Gid_t_sign:
* This symbol holds the signedness of a Gid_t.
@@ -5224,7 +5324,7 @@
/* Off_t_size:
* This symbol holds the number of bytes used by the Off_t.
*/
-#define Off_t long long /* <offset> type */
+#define Off_t __int64 /* <offset> type */
#define LSEEKSIZE 8 /* <offset> size */
#define Off_t_size 8 /* <offset> size */
@@ -5259,7 +5359,7 @@
/* Uid_t_f:
* This symbol defines the format string used for printing a Uid_t.
*/
-#define Uid_t_f "ld" /**/
+#define Uid_t_f "ld" /**/
/* Uid_t_sign:
* This symbol holds the signedness of a Uid_t.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h
index b5f30bd041..1b2b7947e1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h
@@ -33,7 +33,7 @@ struct jmpenv {
struct jmpenv * je_prev;
Sigjmp_buf je_buf; /* uninit if je_prev is NULL */
int je_ret; /* last exception thrown */
- bool je_mustcatch; /* need to call longjmp()? */
+ bool je_mustcatch; /* longjmp()s must be caught locally */
U16 je_old_delaymagic; /* saved PL_delaymagic */
SSize_t je_old_stack_hwm;
};
@@ -65,12 +65,12 @@ typedef struct jmpenv JMPENV;
#define JMPENV_BOOTSTRAP \
STMT_START { \
- PERL_POISON_EXPR(PoisonNew(&PL_start_env, 1, JMPENV));\
- PL_top_env = &PL_start_env; \
- PL_start_env.je_prev = NULL; \
- PL_start_env.je_ret = -1; \
- PL_start_env.je_mustcatch = TRUE; \
- PL_start_env.je_old_delaymagic = 0; \
+ PERL_POISON_EXPR(PoisonNew(&PL_start_env, 1, JMPENV));\
+ PL_top_env = &PL_start_env; \
+ PL_start_env.je_prev = NULL; \
+ PL_start_env.je_ret = -1; \
+ PL_start_env.je_mustcatch = TRUE; \
+ PL_start_env.je_old_delaymagic = 0; \
JE_OLD_STACK_HWM_zero; \
} STMT_END
@@ -110,59 +110,78 @@ typedef struct jmpenv JMPENV;
#define dJMPENV JMPENV cur_env
-#define JMPENV_PUSH(v) \
+#define JMPENV_PUSH(v) \
STMT_START { \
- DEBUG_l({ \
- int i = 0; JMPENV *p = PL_top_env; \
- while (p) { i++; p = p->je_prev; } \
- Perl_deb(aTHX_ "JUMPENV_PUSH level=%d at %s:%d\n", \
- i, __FILE__, __LINE__);}) \
- cur_env.je_prev = PL_top_env; \
+ DEBUG_l({ \
+ int i = 0; \
+ JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JMPENV_PUSH pre level=%d in %s at %s:%d\n", \
+ i, SAFE_FUNCTION__, __FILE__, __LINE__); \
+ }); \
+ cur_env.je_prev = PL_top_env; \
JE_OLD_STACK_HWM_save(cur_env); \
- cur_env.je_ret = PerlProc_setjmp(cur_env.je_buf, SCOPE_SAVES_SIGNAL_MASK); \
+ /* setjmp() is callable in limited contexts which does not */ \
+ /* include assignment, so switch() instead */ \
+ switch (PerlProc_setjmp(cur_env.je_buf, SCOPE_SAVES_SIGNAL_MASK)) { \
+ case 0: cur_env.je_ret = 0; break; \
+ case 1: cur_env.je_ret = 1; break; \
+ case 2: cur_env.je_ret = 2; break; \
+ case 3: cur_env.je_ret = 3; break; \
+ default: Perl_croak(aTHX_ "panic: unexpected setjmp() result\n"); \
+ } \
JE_OLD_STACK_HWM_restore(cur_env); \
- PL_top_env = &cur_env; \
- cur_env.je_mustcatch = FALSE; \
- cur_env.je_old_delaymagic = PL_delaymagic; \
- (v) = cur_env.je_ret; \
+ PL_top_env = &cur_env; \
+ cur_env.je_mustcatch = FALSE; \
+ cur_env.je_old_delaymagic = PL_delaymagic; \
+ DEBUG_l({ \
+ int i = 0; \
+ JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JMPENV_PUSH level=%d ret=%d in %s at %s:%d\n", \
+ i, cur_env.je_ret, SAFE_FUNCTION__, __FILE__, __LINE__); \
+ }); \
+ (v) = cur_env.je_ret; \
} STMT_END
#define JMPENV_POP \
STMT_START { \
- DEBUG_l({ \
- int i = -1; JMPENV *p = PL_top_env; \
- while (p) { i++; p = p->je_prev; } \
- Perl_deb(aTHX_ "JUMPENV_POP level=%d at %s:%d\n", \
- i, __FILE__, __LINE__);}) \
- assert(PL_top_env == &cur_env); \
- PL_delaymagic = cur_env.je_old_delaymagic; \
- PL_top_env = cur_env.je_prev; \
+ DEBUG_l({ \
+ int i = -1; JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JMPENV_POP level=%d in %s at %s:%d\n", \
+ i, SAFE_FUNCTION__, __FILE__, __LINE__);}) \
+ assert(PL_top_env == &cur_env); \
+ PL_delaymagic = cur_env.je_old_delaymagic; \
+ PL_top_env = cur_env.je_prev; \
} STMT_END
#define JMPENV_JUMP(v) \
STMT_START { \
- DEBUG_l({ \
- int i = -1; JMPENV *p = PL_top_env; \
- while (p) { i++; p = p->je_prev; } \
- Perl_deb(aTHX_ "JUMPENV_JUMP(%d) level=%d at %s:%d\n", \
- (int)v, i, __FILE__, __LINE__);}) \
- if (PL_top_env->je_prev) \
- PerlProc_longjmp(PL_top_env->je_buf, (v)); \
- if ((v) == 2) \
- PerlProc_exit(STATUS_EXIT); \
- PerlIO_printf(PerlIO_stderr(), "panic: top_env, v=%d\n", (int)v); \
- PerlProc_exit(1); \
+ DEBUG_l({ \
+ int i = -1; JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JMPENV_JUMP(%d) level=%d in %s at %s:%d\n", \
+ (int)(v), i, SAFE_FUNCTION__, __FILE__, __LINE__);}) \
+ if (PL_top_env->je_prev) { \
+ assert((v) >= 0 && (v) <= 3); \
+ PerlProc_longjmp(PL_top_env->je_buf, (v)); \
+ } \
+ if ((v) == 2) \
+ PerlProc_exit(STATUS_EXIT); \
+ PerlIO_printf(PerlIO_stderr(), "panic: top_env, v=%d\n", (int)(v)); \
+ PerlProc_exit(1); \
} STMT_END
#define CATCH_GET (PL_top_env->je_mustcatch)
#define CATCH_SET(v) \
STMT_START { \
- DEBUG_l( \
- Perl_deb(aTHX_ \
- "JUMPLEVEL set catch %d => %d (for %p) at %s:%d\n", \
- PL_top_env->je_mustcatch, v, (void*)PL_top_env, \
- __FILE__, __LINE__);) \
- PL_top_env->je_mustcatch = (v); \
+ DEBUG_l( \
+ Perl_deb(aTHX_ \
+ "JUMPLEVEL set catch %d => %d (for %p) in %s at %s:%d\n", \
+ PL_top_env->je_mustcatch, (v), (void*)PL_top_env, \
+ SAFE_FUNCTION__, __FILE__, __LINE__);) \
+ PL_top_env->je_mustcatch = (v); \
} STMT_END
/*
@@ -175,109 +194,93 @@ typedef struct refcounted_he COPHH;
#define COPHH_EXISTS REFCOUNTED_HE_EXISTS
/*
-=for apidoc Amx|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-
-Look up the entry in the cop hints hash C<cophh> with the key specified by
-C<keypv> and C<keylen>. If C<flags> has the C<COPHH_KEY_UTF8> bit set,
-the key octets are interpreted as UTF-8, otherwise they are interpreted
-as Latin-1. C<hash> is a precomputed hash of the key string, or zero if
-it has not been precomputed. Returns a mortal scalar copy of the value
-associated with the key, or C<&PL_sv_placeholder> if there is no value
-associated with the key.
+=for apidoc Amx|SV *|cophh_fetch_pv |const COPHH *cophh|const char *key |U32 hash|U32 flags
+=for apidoc_item|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
+=for apidoc_item|SV *|cophh_fetch_pvs|const COPHH *cophh| "key" |U32 flags
+=for apidoc_item|SV *|cophh_fetch_sv |const COPHH *cophh| SV *key |U32 hash|U32 flags
+
+These look up the entry in the cop hints hash C<cophh> with the key specified by
+C<key> (and C<keylen> in the C<pvn> form), returning that value as a mortal
+scalar copy, or C<&PL_sv_placeholder> if there is no value associated with the
+key.
+
+The forms differ in how the key is specified.
+In the plain C<pv> form, the key is a C language NUL-terminated string.
+In the C<pvs> form, the key is a C language string literal.
+In the C<pvn> form, an additional parameter, C<keylen>, specifies the length of
+the string, which hence, may contain embedded-NUL characters.
+In the C<sv> form, C<*key> is an SV, and the key is the PV extracted from that.
+using C<L</SvPV_const>>.
+
+C<hash> is a precomputed hash of the key string, or zero if it has not been
+precomputed. This parameter is omitted from the C<pvs> form, as it is computed
+automatically at compile time.
+
+The only flag currently used from the C<flags> parameter is C<COPHH_KEY_UTF8>.
+It is illegal to set this in the C<sv> form. In the C<pv*> forms, it specifies
+whether the key octets are interpreted as UTF-8 (if set) or as Latin-1 (if
+cleared). The C<sv> form uses the underlying SV to determine the UTF-8ness of
+the octets.
=for apidoc Amnh||COPHH_KEY_UTF8
=cut
-*/
-
-#define cophh_fetch_pvn(cophh, keypv, keylen, hash, flags) \
- Perl_refcounted_he_fetch_pvn(aTHX_ cophh, keypv, keylen, hash, flags)
-
-/*
-=for apidoc Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|"key"|U32 flags
-Like L</cophh_fetch_pvn>, but takes a literal string instead
-of a string/length pair, and no precomputed hash.
-
-=cut
*/
-#define cophh_fetch_pvs(cophh, key, flags) \
- Perl_refcounted_he_fetch_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, flags)
+#define cophh_fetch_pvn(cophh, key, keylen, hash, flags) \
+ Perl_refcounted_he_fetch_pvn(aTHX_ cophh, key, keylen, hash, \
+ (flags & COPHH_KEY_UTF8))
-/*
-=for apidoc Amx|SV *|cophh_fetch_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
+#define cophh_fetch_pvs(cophh, key, flags) \
+ Perl_refcounted_he_fetch_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, \
+ (flags & COPHH_KEY_UTF8))
-Like L</cophh_fetch_pvn>, but takes a nul-terminated string instead of
-a string/length pair.
+#define cophh_fetch_pv(cophh, key, hash, flags) \
+ Perl_refcounted_he_fetch_pv(aTHX_ cophh, key, hash, \
+ (flags & COPHH_KEY_UTF8))
-=cut
-*/
-
-#define cophh_fetch_pv(cophh, key, hash, flags) \
- Perl_refcounted_he_fetch_pv(aTHX_ cophh, key, hash, flags)
+#define cophh_fetch_sv(cophh, key, hash, flags) \
+ Perl_refcounted_he_fetch_sv(aTHX_ cophh, key, hash, \
+ (flags & COPHH_KEY_UTF8))
/*
-=for apidoc Amx|SV *|cophh_fetch_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
-
-Like L</cophh_fetch_pvn>, but takes a Perl scalar instead of a
-string/length pair.
-
-=cut
-*/
-
-#define cophh_fetch_sv(cophh, key, hash, flags) \
- Perl_refcounted_he_fetch_sv(aTHX_ cophh, key, hash, flags)
-
-/*
-=for apidoc Amx|bool|cophh_exists_pvn|const COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-
-Look up the entry in the cop hints hash C<cophh> with the key specified by
-C<keypv> and C<keylen>. If C<flags> has the C<COPHH_KEY_UTF8> bit set,
-the key octets are interpreted as UTF-8, otherwise they are interpreted
-as Latin-1. C<hash> is a precomputed hash of the key string, or zero if
-it has not been precomputed. Returns true if a value exists, and false
-otherwise.
+=for apidoc Amx|bool|cophh_exists_pvn|const COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
+
+These look up the hint entry in the cop C<cop> with the key specified by
+C<key> (and C<keylen> in the C<pvn> form), returning true if a value exists,
+and false otherwise.
+
+The forms differ in how the key is specified.
+In the plain C<pv> form, the key is a C language NUL-terminated string.
+In the C<pvs> form, the key is a C language string literal.
+In the C<pvn> form, an additional parameter, C<keylen>, specifies the length of
+the string, which hence, may contain embedded-NUL characters.
+In the C<sv> form, C<*key> is an SV, and the key is the PV extracted from that.
+using C<L</SvPV_const>>.
+
+C<hash> is a precomputed hash of the key string, or zero if it has not been
+precomputed. This parameter is omitted from the C<pvs> form, as it is computed
+automatically at compile time.
+
+The only flag currently used from the C<flags> parameter is C<COPHH_KEY_UTF8>.
+It is illegal to set this in the C<sv> form. In the C<pv*> forms, it specifies
+whether the key octets are interpreted as UTF-8 (if set) or as Latin-1 (if
+cleared). The C<sv> form uses the underlying SV to determine the UTF-8ness of
+the octets.
=cut
*/
-#define cophh_exists_pvn(cophh, keypv, keylen, hash, flags) \
- cBOOL(Perl_refcounted_he_fetch_pvn(aTHX_ cophh, keypv, keylen, hash, flags | COPHH_EXISTS))
-
-/*
-=for apidoc Amx|bool|cophh_exists_pvs|const COPHH *cophh|"key"|U32 flags
-
-Like L</cophh_exists_pvn>, but takes a literal string instead
-of a string/length pair, and no precomputed hash.
-
-=cut
-*/
+#define cophh_exists_pvn(cophh, key, keylen, hash, flags) \
+ cBOOL(Perl_refcounted_he_fetch_pvn(aTHX_ cophh, key, keylen, hash, flags | COPHH_EXISTS))
#define cophh_exists_pvs(cophh, key, flags) \
cBOOL(Perl_refcounted_he_fetch_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, flags | COPHH_EXISTS))
-/*
-=for apidoc Amx|bool|cophh_exists_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
-
-Like L</cophh_exists_pvn>, but takes a nul-terminated string instead of
-a string/length pair.
-
-=cut
-*/
-
#define cophh_exists_pv(cophh, key, hash, flags) \
cBOOL(Perl_refcounted_he_fetch_pv(aTHX_ cophh, key, hash, flags | COPHH_EXISTS))
-/*
-=for apidoc Amx|bool|cophh_exists_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
-
-Like L</cophh_exists_pvn>, but takes a Perl scalar instead of a
-string/length pair.
-
-=cut
-*/
-
#define cophh_exists_sv(cophh, key, hash, flags) \
cBOOL(Perl_refcounted_he_fetch_sv(aTHX_ cophh, key, hash, flags | COPHH_EXISTS))
@@ -326,122 +329,102 @@ Generate and return a fresh cop hints hash containing no entries.
#define cophh_new_empty() ((COPHH *)NULL)
/*
-=for apidoc Amx|COPHH *|cophh_store_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|SV *value|U32 flags
+=for apidoc Amx|COPHH *|cophh_store_pv |COPHH *cophh|const char *key |U32 hash|SV *value|U32 flags
+=for apidoc_item|COPHH *|cophh_store_pvn|COPHH *cophh|const char *key|STRLEN keylen|U32 hash|SV *value|U32 flags
+=for apidoc_item|COPHH *|cophh_store_pvs|COPHH *cophh| "key" |SV *value|U32 flags
+=for apidoc_item|COPHH *|cophh_store_sv |COPHH *cophh| SV *key |U32 hash|SV *value|U32 flags
-Stores a value, associated with a key, in the cop hints hash C<cophh>,
-and returns the modified hash. The returned hash pointer is in general
+These store a value, associated with a key, in the cop hints hash C<cophh>,
+and return the modified hash. The returned hash pointer is in general
not the same as the hash pointer that was passed in. The input hash is
consumed by the function, and the pointer to it must not be subsequently
used. Use L</cophh_copy> if you need both hashes.
-The key is specified by C<keypv> and C<keylen>. If C<flags> has the
-C<COPHH_KEY_UTF8> bit set, the key octets are interpreted as UTF-8,
-otherwise they are interpreted as Latin-1. C<hash> is a precomputed
-hash of the key string, or zero if it has not been precomputed.
-
C<value> is the scalar value to store for this key. C<value> is copied
-by this function, which thus does not take ownership of any reference
-to it, and later changes to the scalar will not be reflected in the
-value visible in the cop hints hash. Complex types of scalar will not
-be stored with referential integrity, but will be coerced to strings.
+by these functions, which thus do not take ownership of any reference
+to it, and hence later changes to the scalar will not be reflected in the value
+visible in the cop hints hash. Complex types of scalar will not be stored with
+referential integrity, but will be coerced to strings.
+
+The forms differ in how the key is specified. In all forms, the key is pointed
+to by C<key>.
+In the plain C<pv> form, the key is a C language NUL-terminated string.
+In the C<pvs> form, the key is a C language string literal.
+In the C<pvn> form, an additional parameter, C<keylen>, specifies the length of
+the string, which hence, may contain embedded-NUL characters.
+In the C<sv> form, C<*key> is an SV, and the key is the PV extracted from that.
+using C<L</SvPV_const>>.
+
+C<hash> is a precomputed hash of the key string, or zero if it has not been
+precomputed. This parameter is omitted from the C<pvs> form, as it is computed
+automatically at compile time.
+
+The only flag currently used from the C<flags> parameter is C<COPHH_KEY_UTF8>.
+It is illegal to set this in the C<sv> form. In the C<pv*> forms, it specifies
+whether the key octets are interpreted as UTF-8 (if set) or as Latin-1 (if
+cleared). The C<sv> form uses the underlying SV to determine the UTF-8ness of
+the octets.
=cut
*/
-#define cophh_store_pvn(cophh, keypv, keylen, hash, value, flags) \
- Perl_refcounted_he_new_pvn(aTHX_ cophh, keypv, keylen, hash, value, flags)
-
-/*
-=for apidoc Amx|COPHH *|cophh_store_pvs|COPHH *cophh|"key"|SV *value|U32 flags
-
-Like L</cophh_store_pvn>, but takes a literal string instead
-of a string/length pair, and no precomputed hash.
-
-=cut
-*/
+#define cophh_store_pvn(cophh, key, keylen, hash, value, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ cophh, key, keylen, hash, value, flags)
#define cophh_store_pvs(cophh, key, value, flags) \
Perl_refcounted_he_new_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, value, flags)
-/*
-=for apidoc Amx|COPHH *|cophh_store_pv|COPHH *cophh|const char *key|U32 hash|SV *value|U32 flags
-
-Like L</cophh_store_pvn>, but takes a nul-terminated string instead of
-a string/length pair.
-
-=cut
-*/
-
#define cophh_store_pv(cophh, key, hash, value, flags) \
Perl_refcounted_he_new_pv(aTHX_ cophh, key, hash, value, flags)
-/*
-=for apidoc Amx|COPHH *|cophh_store_sv|COPHH *cophh|SV *key|U32 hash|SV *value|U32 flags
-
-Like L</cophh_store_pvn>, but takes a Perl scalar instead of a
-string/length pair.
-
-=cut
-*/
-
#define cophh_store_sv(cophh, key, hash, value, flags) \
Perl_refcounted_he_new_sv(aTHX_ cophh, key, hash, value, flags)
/*
-=for apidoc Amx|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
+=for apidoc Amx|COPHH *|cophh_delete_pv |COPHH *cophh|const char *key |U32 hash|U32 flags
+=for apidoc_item|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
+=for apidoc_item|COPHH *|cophh_delete_pvs|COPHH *cophh| "key" |U32 flags
+=for apidoc_item|COPHH *|cophh_delete_sv |COPHH *cophh| SV *key |U32 hash|U32 flags
-Delete a key and its associated value from the cop hints hash C<cophh>,
-and returns the modified hash. The returned hash pointer is in general
+These delete a key and its associated value from the cop hints hash C<cophh>,
+and return the modified hash. The returned hash pointer is in general
not the same as the hash pointer that was passed in. The input hash is
consumed by the function, and the pointer to it must not be subsequently
used. Use L</cophh_copy> if you need both hashes.
-The key is specified by C<keypv> and C<keylen>. If C<flags> has the
-C<COPHH_KEY_UTF8> bit set, the key octets are interpreted as UTF-8,
-otherwise they are interpreted as Latin-1. C<hash> is a precomputed
-hash of the key string, or zero if it has not been precomputed.
+The forms differ in how the key is specified. In all forms, the key is pointed
+to by C<key>.
+In the plain C<pv> form, the key is a C language NUL-terminated string.
+In the C<pvs> form, the key is a C language string literal.
+In the C<pvn> form, an additional parameter, C<keylen>, specifies the length of
+the string, which hence, may contain embedded-NUL characters.
+In the C<sv> form, C<*key> is an SV, and the key is the PV extracted from that.
+using C<L</SvPV_const>>.
+
+C<hash> is a precomputed hash of the key string, or zero if it has not been
+precomputed. This parameter is omitted from the C<pvs> form, as it is computed
+automatically at compile time.
+
+The only flag currently used from the C<flags> parameter is C<COPHH_KEY_UTF8>.
+It is illegal to set this in the C<sv> form. In the C<pv*> forms, it specifies
+whether the key octets are interpreted as UTF-8 (if set) or as Latin-1 (if
+cleared). The C<sv> form uses the underlying SV to determine the UTF-8ness of
+the octets.
=cut
*/
-#define cophh_delete_pvn(cophh, keypv, keylen, hash, flags) \
- Perl_refcounted_he_new_pvn(aTHX_ cophh, keypv, keylen, hash, \
- (SV *)NULL, flags)
-
-/*
-=for apidoc Amx|COPHH *|cophh_delete_pvs|COPHH *cophh|"key"|U32 flags
-
-Like L</cophh_delete_pvn>, but takes a literal string instead
-of a string/length pair, and no precomputed hash.
-
-=cut
-*/
+#define cophh_delete_pvn(cophh, key, keylen, hash, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ cophh, key, keylen, hash, \
+ (SV *)NULL, flags)
#define cophh_delete_pvs(cophh, key, flags) \
Perl_refcounted_he_new_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, \
- (SV *)NULL, flags)
-
-/*
-=for apidoc Amx|COPHH *|cophh_delete_pv|COPHH *cophh|char *key|U32 hash|U32 flags
-
-Like L</cophh_delete_pvn>, but takes a nul-terminated string instead of
-a string/length pair.
-
-=cut
-*/
+ (SV *)NULL, flags)
#define cophh_delete_pv(cophh, key, hash, flags) \
Perl_refcounted_he_new_pv(aTHX_ cophh, key, hash, (SV *)NULL, flags)
-/*
-=for apidoc Amx|COPHH *|cophh_delete_sv|COPHH *cophh|SV *key|U32 hash|U32 flags
-
-Like L</cophh_delete_pvn>, but takes a Perl scalar instead of a
-string/length pair.
-
-=cut
-*/
-
#define cophh_delete_sv(cophh, key, hash, flags) \
Perl_refcounted_he_new_sv(aTHX_ cophh, key, hash, (SV *)NULL, flags)
@@ -455,16 +438,21 @@ struct cop {
/* label for this construct is now stored in cop_hints_hash */
#ifdef USE_ITHREADS
PADOFFSET cop_stashoff; /* offset into PL_stashpad, for the
- package the line was compiled in */
- char * cop_file; /* name of file this command is from */
+ package the line was compiled in */
+ char * cop_file; /* rcpv containing name of file this command is from */
#else
HV * cop_stash; /* package line was compiled in */
GV * cop_filegv; /* name of GV file this command is from */
#endif
U32 cop_hints; /* hints bits from pragmata */
U32 cop_seq; /* parse sequence number */
- /* Beware. mg.c and warnings.pl assume the type of this is STRLEN *: */
- STRLEN * cop_warnings; /* lexical warnings bitmask */
+ char * cop_warnings; /* Lexical warnings bitmask vector.
+ Refcounted shared copy of ${^WARNING_BITS}.
+ This pointer either points at one of the
+ magic values for warnings, or it points
+ at a buffer constructed with rcpv_new().
+ Use the RCPV_LEN() macro to get its length.
+ */
/* compile time state of %^H. See the comment in op.c for how this is
used to recreate a hash to return from caller. */
COPHH * cop_hints_hash;
@@ -480,11 +468,18 @@ struct cop {
=for apidoc Am|const char *|CopFILE|const COP * c
Returns the name of the file associated with the C<COP> C<c>
-=for apidoc Am|STRLEN|CopLINE|const COP * c
+=for apidoc Am|const char *|CopFILE_LEN|const COP * c
+Returns the length of the file associated with the C<COP> C<c>
+
+=for apidoc Am|line_t|CopLINE|const COP * c
Returns the line number in the source code associated with the C<COP> C<c>
=for apidoc Am|AV *|CopFILEAV|const COP * c
-Returns the AV associated with the C<COP> C<c>
+Returns the AV associated with the C<COP> C<c>, creating it if necessary.
+
+=for apidoc Am|AV *|CopFILEAVn|const COP * c
+Returns the AV associated with the C<COP> C<c>, returning NULL if it
+doesn't already exist.
=for apidoc Am|SV *|CopFILESV|const COP * c
Returns the SV associated with the C<COP> C<c>
@@ -492,6 +487,17 @@ Returns the SV associated with the C<COP> C<c>
=for apidoc Am|void|CopFILE_set|COP * c|const char * pv
Makes C<pv> the name of the file associated with the C<COP> C<c>
+=for apidoc Am|void|CopFILE_setn|COP * c|const char * pv|STRLEN len
+Makes C<pv> the name of the file associated with the C<COP> C<c>
+
+=for apidoc Am|void|CopFILE_copy|COP * dst|COP * src
+Efficiently copies the cop file name from one COP to another. Wraps
+the required logic to do a refcounted copy under threads or not.
+
+=for apidoc Am|void|CopFILE_free|COP * c
+Frees the file data in a cop. Under the hood this is a refcounting
+operation.
+
=for apidoc Am|GV *|CopFILEGV|const COP * c
Returns the GV associated with the C<COP> C<c>
@@ -519,39 +525,132 @@ string C<p>, creating the package if necessary.
=cut
*/
+/*
+=for apidoc Am|RCPV *|RCPVx|char *pv
+Returns the RCPV structure (struct rcpv) for a refcounted
+string pv created with C<rcpv_new()>.
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_REFCOUNT|char *pv
+Returns the refcount for a pv created with C<rcpv_new()>.
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_REFCNT_inc|char *pv
+Increments the refcount for a C<char *> pointer which was created
+with a call to C<rcpv_new()>. Same as calling rcpv_copy().
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_REFCNT_dec|char *pv
+Decrements the refcount for a C<char *> pointer which was created
+with a call to C<rcpv_new()>. Same as calling rcpv_free().
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_LEN|char *pv
+Returns the length of a pv created with C<rcpv_new()>.
+Note that this reflects the length of the string from the callers
+point of view, it does not include the mandatory null which is
+always injected at the end of the string by rcpv_new().
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=cut
+*/
+
+struct rcpv {
+ STRLEN refcount; /* UV would mean a 64 refcnt on
+ 32 bit builds with -Duse64bitint */
+ STRLEN len; /* length of string including mandatory
+ null byte at end */
+ char pv[1];
+};
+typedef struct rcpv RCPV;
+
+#define RCPVf_USE_STRLEN (1 << 0)
+#define RCPVf_NO_COPY (1 << 1)
+#define RCPVf_ALLOW_EMPTY (1 << 2)
+
+#define RCPVx(pv_arg) ((RCPV *)((pv_arg) - STRUCT_OFFSET(struct rcpv, pv)))
+#define RCPV_REFCOUNT(pv) (RCPVx(pv)->refcount)
+#define RCPV_LEN(pv) (RCPVx(pv)->len-1) /* len always includes space for a null */
+#define RCPV_REFCNT_inc(pv) rcpv_copy(pv)
+#define RCPV_REFCNT_dec(pv) rcpv_free(pv)
+
#ifdef USE_ITHREADS
-# define CopFILE(c) ((c)->cop_file)
+
+# define CopFILE(c) ((c)->cop_file)
+# define CopFILE_LEN(c) (CopFILE(c) ? RCPV_LEN(CopFILE(c)) : 0)
# define CopFILEGV(c) (CopFILE(c) \
- ? gv_fetchfile(CopFILE(c)) : NULL)
+ ? gv_fetchfile(CopFILE(c)) : NULL)
+
+# define CopFILE_set_x(c,pv) ((c)->cop_file = rcpv_new((pv),0,RCPVf_USE_STRLEN))
+# define CopFILE_setn_x(c,pv,l) ((c)->cop_file = rcpv_new((pv),(l),0))
+# define CopFILE_free_x(c) ((c)->cop_file = rcpv_free((c)->cop_file))
+# define CopFILE_copy_x(dst,src) ((dst)->cop_file = rcpv_copy((src)->cop_file))
+
+/* change condition to 1 && to enable this debugging */
+# define CopFILE_debug(c,t,rk) \
+ if (0 && (c)->cop_file) \
+ PerlIO_printf(Perl_debug_log, \
+ "%-14s THX:%p OP:%p PV:%p rc: " \
+ "%6zu fn: '%.*s' at %s line %d\n", \
+ (t), aTHX, (c), (c)->cop_file, \
+ RCPV_REFCOUNT((c)->cop_file)-rk, \
+ (int)RCPV_LEN((c)->cop_file), \
+ (c)->cop_file,__FILE__,__LINE__) \
+
+
+# define CopFILE_set(c,pv) \
+ STMT_START { \
+ CopFILE_set_x(c,pv); \
+ CopFILE_debug(c,"CopFILE_set", 0); \
+ } STMT_END
+
+# define CopFILE_setn(c,pv,l) \
+ STMT_START { \
+ CopFILE_setn_x(c,pv,l); \
+ CopFILE_debug(c,"CopFILE_setn", 0); \
+ } STMT_END
+
+# define CopFILE_copy(dst,src) \
+ STMT_START { \
+ CopFILE_copy_x((dst),(src)); \
+ CopFILE_debug((dst),"CopFILE_copy", 0); \
+ } STMT_END
+
+# define CopFILE_free(c) \
+ STMT_START { \
+ CopFILE_debug((c),"CopFILE_free", 1); \
+ CopFILE_free_x(c); \
+ } STMT_END
-# ifdef NETWARE
-# define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv))
-# define CopFILE_setn(c,pv,l) ((c)->cop_file = savepvn((pv),(l)))
-# else
-# define CopFILE_set(c,pv) ((c)->cop_file = savesharedpv(pv))
-# define CopFILE_setn(c,pv,l) ((c)->cop_file = savesharedpvn((pv),(l)))
-# endif
# define CopFILESV(c) (CopFILE(c) \
- ? GvSV(gv_fetchfile(CopFILE(c))) : NULL)
+ ? GvSV(gv_fetchfile(CopFILE(c))) : NULL)
# define CopFILEAV(c) (CopFILE(c) \
- ? GvAV(gv_fetchfile(CopFILE(c))) : NULL)
+ ? GvAV(gv_fetchfile(CopFILE(c))) : NULL)
# define CopFILEAVx(c) (assert_(CopFILE(c)) \
- GvAV(gv_fetchfile(CopFILE(c))))
-
+ GvAV(gv_fetchfile(CopFILE(c))))
+# define CopFILEAVn(c) (cop_file_avn(c))
# define CopSTASH(c) PL_stashpad[(c)->cop_stashoff]
# define CopSTASH_set(c,hv) ((c)->cop_stashoff = (hv) \
- ? alloccopstash(hv) \
- : 0)
-# ifdef NETWARE
-# define CopFILE_free(c) SAVECOPFILE_FREE(c)
-# else
-# define CopFILE_free(c) (PerlMemShared_free(CopFILE(c)),(CopFILE(c) = NULL))
-# endif
-#else /* Above: no threads; Below yes threads */
+ ? alloccopstash(hv) \
+ : 0)
+
+#else /* Above: yes threads; Below no threads */
+
# define CopFILEGV(c) ((c)->cop_filegv)
# define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
# define CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv))
+# define CopFILE_copy(dst,src) CopFILEGV_set((dst),CopFILEGV(src))
# define CopFILE_setn(c,pv,l) CopFILEGV_set((c), gv_fetchfile_flags((pv),(l),0))
# define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : NULL)
# define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : NULL)
@@ -560,8 +659,11 @@ string C<p>, creating the package if necessary.
# else
# define CopFILEAVx(c) (GvAV(CopFILEGV(c)))
# endif
+# define CopFILEAVn(c) (CopFILEGV(c) ? GvAVn(CopFILEGV(c)) : NULL)
# define CopFILE(c) (CopFILEGV(c) /* +2 for '_<' */ \
- ? GvNAME(CopFILEGV(c))+2 : NULL)
+ ? GvNAME(CopFILEGV(c))+2 : NULL)
+# define CopFILE_LEN(c) (CopFILEGV(c) /* -2 for '_<' */ \
+ ? GvNAMELEN(CopFILEGV(c))-2 : 0)
# define CopSTASH(c) ((c)->cop_stash)
# define CopSTASH_set(c,hv) ((c)->cop_stash = (hv))
# define CopFILE_free(c) (SvREFCNT_dec(CopFILEGV(c)),(CopFILEGV(c) = NULL))
@@ -576,108 +678,93 @@ string C<p>, creating the package if necessary.
#define CopHINTHASH_get(c) ((COPHH*)((c)->cop_hints_hash))
#define CopHINTHASH_set(c,h) ((c)->cop_hints_hash = (h))
-/*
-=for apidoc Am|SV *|cop_hints_fetch_pvn|const COP *cop|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-
-Look up the hint entry in the cop C<cop> with the key specified by
-C<keypv> and C<keylen>. If C<flags> has the C<COPHH_KEY_UTF8> bit set,
-the key octets are interpreted as UTF-8, otherwise they are interpreted
-as Latin-1. C<hash> is a precomputed hash of the key string, or zero if
-it has not been precomputed. Returns a mortal scalar copy of the value
-associated with the key, or C<&PL_sv_placeholder> if there is no value
-associated with the key.
-
-=cut
-*/
-
-#define cop_hints_fetch_pvn(cop, keypv, keylen, hash, flags) \
- cophh_fetch_pvn(CopHINTHASH_get(cop), keypv, keylen, hash, flags)
+#define CopFEATURES_setfrom(dst, src) ((dst)->cop_features = (src)->cop_features)
/*
-=for apidoc Am|SV *|cop_hints_fetch_pvs|const COP *cop|"key"|U32 flags
-
-Like L</cop_hints_fetch_pvn>, but takes a literal string
-instead of a string/length pair, and no precomputed hash.
+=for apidoc Am|SV *|cop_hints_fetch_pv |const COP *cop|const char *key |U32 hash|U32 flags
+=for apidoc_item|SV *|cop_hints_fetch_pvn|const COP *cop|const char *key|STRLEN keylen|U32 hash|U32 flags
+=for apidoc_item|SV *|cop_hints_fetch_pvs|const COP *cop| "key" |U32 flags
+=for apidoc_item|SV *|cop_hints_fetch_sv |const COP *cop| SV *key |U32 hash|U32 flags
+
+These look up the hint entry in the cop C<cop> with the key specified by
+C<key> (and C<keylen> in the C<pvn> form), returning that value as a mortal
+scalar copy, or C<&PL_sv_placeholder> if there is no value associated with the
+key.
+
+The forms differ in how the key is specified.
+In the plain C<pv> form, the key is a C language NUL-terminated string.
+In the C<pvs> form, the key is a C language string literal.
+In the C<pvn> form, an additional parameter, C<keylen>, specifies the length of
+the string, which hence, may contain embedded-NUL characters.
+In the C<sv> form, C<*key> is an SV, and the key is the PV extracted from that.
+using C<L</SvPV_const>>.
+
+C<hash> is a precomputed hash of the key string, or zero if it has not been
+precomputed. This parameter is omitted from the C<pvs> form, as it is computed
+automatically at compile time.
+
+The only flag currently used from the C<flags> parameter is C<COPHH_KEY_UTF8>.
+It is illegal to set this in the C<sv> form. In the C<pv*> forms, it specifies
+whether the key octets are interpreted as UTF-8 (if set) or as Latin-1 (if
+cleared). The C<sv> form uses the underlying SV to determine the UTF-8ness of
+the octets.
=cut
*/
+#define cop_hints_fetch_pvn(cop, key, keylen, hash, flags) \
+ cophh_fetch_pvn(CopHINTHASH_get(cop), key, keylen, hash, flags)
+
#define cop_hints_fetch_pvs(cop, key, flags) \
cophh_fetch_pvs(CopHINTHASH_get(cop), key, flags)
-/*
-=for apidoc Am|SV *|cop_hints_fetch_pv|const COP *cop|const char *key|U32 hash|U32 flags
-
-Like L</cop_hints_fetch_pvn>, but takes a nul-terminated string instead
-of a string/length pair.
-
-=cut
-*/
-
#define cop_hints_fetch_pv(cop, key, hash, flags) \
cophh_fetch_pv(CopHINTHASH_get(cop), key, hash, flags)
-/*
-=for apidoc Am|SV *|cop_hints_fetch_sv|const COP *cop|SV *key|U32 hash|U32 flags
-
-Like L</cop_hints_fetch_pvn>, but takes a Perl scalar instead of a
-string/length pair.
-
-=cut
-*/
-
#define cop_hints_fetch_sv(cop, key, hash, flags) \
cophh_fetch_sv(CopHINTHASH_get(cop), key, hash, flags)
/*
-=for apidoc Am|bool|cop_hints_exists_pvn|const COP *cop|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-
-Look up the hint entry in the cop C<cop> with the key specified by
-C<keypv> and C<keylen>. If C<flags> has the C<COPHH_KEY_UTF8> bit set,
-the key octets are interpreted as UTF-8, otherwise they are interpreted
-as Latin-1. C<hash> is a precomputed hash of the key string, or zero if
-it has not been precomputed. Returns true if a value exists, and false
-otherwise.
+=for apidoc Am|bool|cop_hints_exists_pv |const COP *cop|const char *key|U32 hash |U32 flags
+=for apidoc_item|bool|cop_hints_exists_pvn|const COP *cop|const char *key|STRLEN keylen|U32 hash|U32 flags
+=for apidoc_item|bool|cop_hints_exists_pvs|const COP *cop| "key" |U32 flags
+=for apidoc_item|bool|cop_hints_exists_sv |const COP *cop| SV *key |U32 hash|U32 flags
+
+These look up the hint entry in the cop C<cop> with the key specified by
+C<key> (and C<keylen> in the C<pvn> form), returning true if a value exists,
+and false otherwise.
+
+The forms differ in how the key is specified. In all forms, the key is pointed
+to by C<key>.
+In the plain C<pv> form, the key is a C language NUL-terminated string.
+In the C<pvs> form, the key is a C language string literal.
+In the C<pvn> form, an additional parameter, C<keylen>, specifies the length of
+the string, which hence, may contain embedded-NUL characters.
+In the C<sv> form, C<*key> is an SV, and the key is the PV extracted from that.
+using C<L</SvPV_const>>.
+
+C<hash> is a precomputed hash of the key string, or zero if it has not been
+precomputed. This parameter is omitted from the C<pvs> form, as it is computed
+automatically at compile time.
+
+The only flag currently used from the C<flags> parameter is C<COPHH_KEY_UTF8>.
+It is illegal to set this in the C<sv> form. In the C<pv*> forms, it specifies
+whether the key octets are interpreted as UTF-8 (if set) or as Latin-1 (if
+cleared). The C<sv> form uses the underlying SV to determine the UTF-8ness of
+the octets.
=cut
*/
-#define cop_hints_exists_pvn(cop, keypv, keylen, hash, flags) \
- cophh_exists_pvn(CopHINTHASH_get(cop), keypv, keylen, hash, flags)
-
-/*
-=for apidoc Am|bool|cop_hints_exists_pvs|const COP *cop|"key"|U32 flags
-
-Like L</cop_hints_exists_pvn>, but takes a literal string
-instead of a string/length pair, and no precomputed hash.
-
-=cut
-*/
+#define cop_hints_exists_pvn(cop, key, keylen, hash, flags) \
+ cophh_exists_pvn(CopHINTHASH_get(cop), key, keylen, hash, flags)
#define cop_hints_exists_pvs(cop, key, flags) \
cophh_exists_pvs(CopHINTHASH_get(cop), key, flags)
-/*
-=for apidoc Am|bool|cop_hints_exists_pv|const COP *cop|const char *key|U32 hash|U32 flags
-
-Like L</cop_hints_exists_pvn>, but takes a nul-terminated string instead
-of a string/length pair.
-
-=cut
-*/
-
#define cop_hints_exists_pv(cop, key, hash, flags) \
cophh_exists_pv(CopHINTHASH_get(cop), key, hash, flags)
-/*
-=for apidoc Am|bool|cop_hints_exists_sv|const COP *cop|SV *key|U32 hash|U32 flags
-
-Like L</cop_hints_exists_pvn>, but takes a Perl scalar instead of a
-string/length pair.
-
-=cut
-*/
-
#define cop_hints_exists_sv(cop, key, hash, flags) \
cophh_exists_sv(CopHINTHASH_get(cop), key, hash, flags)
@@ -695,19 +782,17 @@ be zero.
cophh_2hv(CopHINTHASH_get(cop), flags)
/*
-=for apidoc Am|const char *|CopLABEL|COP *const cop
-
-Returns the label attached to a cop.
+=for apidoc Am|const char *|CopLABEL |COP *const cop
+=for apidoc_item|const char *|CopLABEL_len |COP *const cop|STRLEN *len
+=for apidoc_item|const char *|CopLABEL_len_flags|COP *const cop|STRLEN *len|U32 *flags
-=for apidoc Am|const char *|CopLABEL_len|COP *const cop|STRLEN *len
+These return the label attached to a cop.
-Returns the label attached to a cop, and stores its length in bytes into
-C<*len>.
+C<CopLABEL_len> and C<CopLABEL_len_flags> additionally store the number of
+bytes comprising the returned label into C<*len>.
-=for apidoc Am|const char *|CopLABEL_len_flags|COP *const cop|STRLEN *len|U32 *flags
-
-Returns the label attached to a cop, and stores its length in bytes into
-C<*len>. Upon return, C<*flags> will be set to either C<SVf_UTF8> or 0.
+C<CopLABEL_len_flags> additionally returns the UTF-8ness of the returned label,
+by setting C<*flags> to 0 or C<SVf_UTF8>.
=cut
*/
@@ -728,8 +813,8 @@ C<*len>. Upon return, C<*flags> will be set to either C<SVf_UTF8> or 0.
#define CopHINTS_get(c) ((c)->cop_hints + 0)
#define CopHINTS_set(c, h) STMT_START { \
- (c)->cop_hints = (h); \
- } STMT_END
+ (c)->cop_hints = (h); \
+ } STMT_END
/*
* Here we have some enormously heavy (or at least ponderous) wizardry.
@@ -781,20 +866,20 @@ struct block_format {
#endif
#define CX_PUSHSUB_GET_LVALUE_MASK(func) \
- /* If the context is indeterminate, then only the lvalue */ \
- /* flags that the caller also has are applicable. */ \
- ( \
- (PL_op->op_flags & OPf_WANT) \
- ? OPpENTERSUB_LVAL_MASK \
- : !(PL_op->op_private & OPpENTERSUB_LVAL_MASK) \
- ? 0 : (U8)func(aTHX) \
- )
+ /* If the context is indeterminate, then only the lvalue */ \
+ /* flags that the caller also has are applicable. */ \
+ ( \
+ (PL_op->op_flags & OPf_WANT) \
+ ? OPpENTERSUB_LVAL_MASK \
+ : !(PL_op->op_private & OPpENTERSUB_LVAL_MASK) \
+ ? 0 : (U8)func(aTHX) \
+ )
/* Restore old @_ */
#define CX_POP_SAVEARRAY(cx) \
STMT_START { \
AV *cx_pop_savearray_av = GvAV(PL_defgv); \
- GvAV(PL_defgv) = cx->blk_sub.savearray; \
+ GvAV(PL_defgv) = cx->blk_sub.savearray; \
cx->blk_sub.savearray = NULL; \
SvREFCNT_dec(cx_pop_savearray_av); \
} STMT_END
@@ -803,9 +888,9 @@ struct block_format {
* leave any (a fast av_clear(ary), basically) */
#define CLEAR_ARGARRAY(ary) \
STMT_START { \
- AvMAX(ary) += AvARRAY(ary) - AvALLOC(ary); \
- AvARRAY(ary) = AvALLOC(ary); \
- AvFILLp(ary) = -1; \
+ AvMAX(ary) += AvARRAY(ary) - AvALLOC(ary); \
+ AvARRAY(ary) = AvALLOC(ary); \
+ AvFILLp(ary) = -1; \
} STMT_END
@@ -827,7 +912,7 @@ struct block_eval {
/* blk_u16 bit usage for eval contexts: */
-#define CxOLD_IN_EVAL(cx) (((cx)->blk_u16) & 0x3F) /* saved PL in_eval */
+#define CxOLD_IN_EVAL(cx) (((cx)->blk_u16) & 0x3F) /* saved PL_in_eval */
#define CxEVAL_TXT_REFCNTED(cx) (((cx)->blk_u16) & 0x40) /* cur_text rc++ */
#define CxOLD_OP_TYPE(cx) (((cx)->blk_u16) >> 7) /* type of eval op */
@@ -835,27 +920,27 @@ struct block_eval {
struct block_loop {
LOOP * my_op; /* My op, that contains redo, next and last ops. */
union { /* different ways of locating the iteration variable */
- SV **svp; /* for lexicals: address of pad slot */
- GV *gv; /* for package vars */
+ SV **svp; /* for lexicals: address of pad slot */
+ GV *gv; /* for package vars */
} itervar_u;
SV *itersave; /* the original iteration var */
union {
- struct { /* CXt_LOOP_ARY, C<for (@ary)> */
- AV *ary; /* array being iterated over */
- IV ix; /* index relative to base of array */
- } ary;
- struct { /* CXt_LOOP_LIST, C<for (list)> */
- I32 basesp; /* first element of list on stack */
- IV ix; /* index relative to basesp */
- } stack;
- struct { /* CXt_LOOP_LAZYIV, C<for (1..9)> */
- IV cur;
- IV end;
- } lazyiv;
- struct { /* CXt_LOOP_LAZYSV C<for ('a'..'z')> */
- SV * cur;
- SV * end; /* maxiumum value (or minimum in reverse) */
- } lazysv;
+ struct { /* CXt_LOOP_ARY, C<for (@ary)> */
+ AV *ary; /* array being iterated over */
+ IV ix; /* index relative to base of array */
+ } ary;
+ struct { /* CXt_LOOP_LIST, C<for (list)> */
+ I32 basesp; /* first element of list on stack */
+ IV ix; /* index relative to basesp */
+ } stack;
+ struct { /* CXt_LOOP_LAZYIV, C<for (1..9)> */
+ IV cur;
+ IV end;
+ } lazyiv;
+ struct { /* CXt_LOOP_LAZYSV C<for ('a'..'z')> */
+ SV * cur;
+ SV * end; /* maximum value (or minimum in reverse) */
+ } lazysv;
} state_u;
#ifdef USE_ITHREADS
PAD *oldcomppad; /* needed to map itervar_u.svp during thread clone */
@@ -869,9 +954,9 @@ struct block_loop {
? &GvSV((c)->blk_loop.itervar_u.gv) \
: (SV **)&(c)->blk_loop.itervar_u.gv)
-#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 CxLABEL(c) (CopLABEL((c)->blk_oldcop))
+#define CxLABEL_len(c,len) (CopLABEL_len((c)->blk_oldcop, len))
+#define CxLABEL_len_flags(c,len,flags) ((const char *)CopLABEL_len_flags((c)->blk_oldcop, len, flags))
#define CxHASARGS(c) (((c)->cx_type & CXp_HASARGS) == CXp_HASARGS)
/* CxLVAL(): the lval flags of the call site: the relevant flag bits from
@@ -885,13 +970,13 @@ struct block_loop {
* Note the contrast with CvLVALUE(), which is a property of the sub
* rather than the call site.
*/
-#define CxLVAL(c) (0 + ((c)->blk_u16 & 0xff))
+#define CxLVAL(c) (0 + ((U8)((c)->blk_u16)))
/* given/when context */
struct block_givwhen {
- OP *leave_op;
+ OP *leave_op;
SV *defsv_save; /* the original $_ */
};
@@ -912,11 +997,11 @@ struct block {
I32 blku_oldscopesp; /* scope stack index */
union {
- struct block_sub blku_sub;
- struct block_format blku_format;
- struct block_eval blku_eval;
- struct block_loop blku_loop;
- struct block_givwhen blku_givwhen;
+ struct block_sub blku_sub;
+ struct block_format blku_format;
+ struct block_eval blku_eval;
+ struct block_loop blku_loop;
+ struct block_givwhen blku_givwhen;
} blk_u;
};
#define blk_oldsp cx_u.cx_blk.blku_oldsp
@@ -936,15 +1021,15 @@ struct block {
#define CX_DEBUG(cx, action) \
DEBUG_l( \
- Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) (save %ld,%ld) at %s:%d\n",\
- (long)cxstack_ix, \
- action, \
- PL_block_type[CxTYPE(cx)], \
- (long)PL_scopestack_ix, \
- (long)(cx->blk_oldscopesp), \
- (long)PL_savestack_ix, \
- (long)(cx->blk_oldsaveix), \
- __FILE__, __LINE__));
+ Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) (save %ld,%ld) in %s at %s:%d\n",\
+ (long)cxstack_ix, \
+ action, \
+ PL_block_type[CxTYPE(cx)], \
+ (long)PL_scopestack_ix, \
+ (long)(cx->blk_oldscopesp), \
+ (long)PL_savestack_ix, \
+ (long)(cx->blk_oldsaveix), \
+ SAFE_FUNCTION__, __FILE__, __LINE__));
@@ -983,32 +1068,32 @@ struct subst {
#define sb_rx cx_u.cx_subst.sbu_rx
# define CX_PUSHSUBST(cx) CXINC, cx = CX_CUR(), \
- cx->blk_oldsaveix = oldsave, \
- cx->sb_iters = iters, \
- cx->sb_maxiters = maxiters, \
- cx->sb_rflags = r_flags, \
- cx->sb_rxtainted = rxtainted, \
- cx->sb_orig = orig, \
- cx->sb_dstr = dstr, \
- cx->sb_targ = targ, \
- cx->sb_s = s, \
- cx->sb_m = m, \
- cx->sb_strend = strend, \
- cx->sb_rxres = NULL, \
- cx->sb_rx = rx, \
- cx->cx_type = CXt_SUBST | (once ? CXp_ONCE : 0); \
- rxres_save(&cx->sb_rxres, rx); \
- (void)ReREFCNT_inc(rx); \
+ cx->blk_oldsaveix = oldsave, \
+ cx->sb_iters = iters, \
+ cx->sb_maxiters = maxiters, \
+ cx->sb_rflags = r_flags, \
+ cx->sb_rxtainted = rxtainted, \
+ cx->sb_orig = orig, \
+ cx->sb_dstr = dstr, \
+ cx->sb_targ = targ, \
+ cx->sb_s = s, \
+ cx->sb_m = m, \
+ cx->sb_strend = strend, \
+ cx->sb_rxres = NULL, \
+ cx->sb_rx = rx, \
+ cx->cx_type = CXt_SUBST | (once ? CXp_ONCE : 0); \
+ rxres_save(&cx->sb_rxres, rx); \
+ (void)ReREFCNT_inc(rx); \
SvREFCNT_inc_void_NN(targ)
# define CX_POPSUBST(cx) \
STMT_START { \
REGEXP *re; \
assert(CxTYPE(cx) == CXt_SUBST); \
- rxres_free(&cx->sb_rxres); \
- re = cx->sb_rx; \
- cx->sb_rx = NULL; \
- ReREFCNT_dec(re); \
+ rxres_free(&cx->sb_rxres); \
+ re = cx->sb_rx; \
+ cx->sb_rx = NULL; \
+ ReREFCNT_dec(re); \
SvREFCNT_dec_NN(cx->sb_targ); \
} STMT_END
#endif
@@ -1017,8 +1102,8 @@ struct subst {
struct context {
union {
- struct block cx_blk;
- struct subst cx_subst;
+ struct block cx_blk;
+ struct subst cx_subst;
} cx_u;
};
#define cx_type cx_u.cx_subst.sbu_type
@@ -1047,6 +1132,7 @@ struct context {
#define CXt_FORMAT 10
#define CXt_EVAL 11 /* eval'', eval{}, try{} */
#define CXt_SUBST 12
+#define CXt_DEFER 13
/* SUBST doesn't feature in all switch statements. */
/* private flags for CXt_SUB and CXt_FORMAT */
@@ -1080,41 +1166,50 @@ struct context {
&& CxTYPE(cx) <= CXt_LOOP_PLAIN)
#define CxMULTICALL(c) ((c)->cx_type & CXp_MULTICALL)
#define CxREALEVAL(c) (((c)->cx_type & (CXTYPEMASK|CXp_REAL)) \
- == (CXt_EVAL|CXp_REAL))
+ == (CXt_EVAL|CXp_REAL))
#define CxEVALBLOCK(c) (((c)->cx_type & (CXTYPEMASK|CXp_EVALBLOCK)) \
- == (CXt_EVAL|CXp_EVALBLOCK))
+ == (CXt_EVAL|CXp_EVALBLOCK))
#define CxTRY(c) (((c)->cx_type & (CXTYPEMASK|CXp_TRY)) \
== (CXt_EVAL|CXp_TRY))
#define CxFOREACH(c) ( CxTYPE(cx) >= CXt_LOOP_ARY \
&& CxTYPE(cx) <= CXt_LOOP_LIST)
+/* private flags for CXt_DEFER */
+#define CXp_FINALLY 0x20 /* `finally` block; semantically identical
+ * but matters for diagnostic messages */
+
/* deprecated old name before real try/catch was added */
#define CXp_TRYBLOCK CXp_EVALBLOCK
#define CxTRYBLOCK(c) CxEVALBLOCK(c)
#define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc()))
-#define G_SCALAR 2
-#define G_ARRAY 3
-#define G_VOID 1
-#define G_WANT 3
+#define G_SCALAR 2
+#define G_LIST 3
+#define G_VOID 1
+#define G_WANT 3
+
+#ifndef PERL_CORE
+ /* name prior to 5.31.1 */
+# define G_ARRAY G_LIST
+#endif
/* extra flags for Perl_call_* routines */
#define G_DISCARD 0x4 /* Call FREETMPS.
- Don't change this without consulting the
- hash actions codes defined in hv.h */
+ Don't change this without consulting the
+ hash actions codes defined in hv.h */
#define G_EVAL 0x8 /* Assume eval {} around subroutine call. */
#define G_NOARGS 0x10 /* Don't construct a @_ array. */
#define G_KEEPERR 0x20 /* Warn for errors, don't overwrite $@ */
#define G_NODEBUG 0x40 /* Disable debugging at toplevel. */
#define G_METHOD 0x80 /* Calling method. */
#define G_FAKINGEVAL 0x100 /* Faking an eval context for call_sv or
- fold_constants. */
+ fold_constants. */
#define G_UNDEF_FILL 0x200 /* Fill the stack with &PL_sv_undef
- A special case for UNSHIFT in
- Perl_magic_methcall(). */
+ A special case for UNSHIFT in
+ Perl_magic_methcall(). */
#define G_WRITING_TO_STDERR 0x400 /* Perl_write_to_stderr() is calling
- Perl_magic_methcall(). */
+ Perl_magic_methcall(). */
#define G_RE_REPARSING 0x800 /* compiling a run-time /(?{..})/ */
#define G_METHOD_NAMED 0x1000 /* calling named method, eg without :: or ' */
#define G_RETHROW 0x2000 /* eval_sv(): re-throw any error */
@@ -1158,8 +1253,8 @@ struct stackinfo {
I32 si_cxsubix; /* topmost sub/eval/format */
I32 si_type; /* type of runlevel */
I32 si_markoff; /* offset where markstack begins for us.
- * currently used only with DEBUGGING,
- * but not #ifdef-ed for bincompat */
+ * currently used only with DEBUGGING,
+ * but not #ifdef-ed for bincompat */
#if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
/* high water mark: for checking if the stack was correctly extended /
* tested for extension by each pp function */
@@ -1181,10 +1276,10 @@ typedef struct stackinfo PERL_SI;
#define cxstack_max (PL_curstackinfo->si_cxmax)
#ifdef DEBUGGING
-# define SET_MARK_OFFSET \
+# define SET_MARK_OFFSET \
PL_curstackinfo->si_markoff = PL_markstack_ptr - PL_markstack
#else
-# define SET_MARK_OFFSET NOOP
+# define SET_MARK_OFFSET NOOP
#endif
#if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
@@ -1195,25 +1290,25 @@ typedef struct stackinfo PERL_SI;
#define PUSHSTACKi(type) \
STMT_START { \
- PERL_SI *next = PL_curstackinfo->si_next; \
- DEBUG_l({ \
- int i = 0; PERL_SI *p = PL_curstackinfo; \
- while (p) { i++; p = p->si_prev; } \
- Perl_deb(aTHX_ "push STACKINFO %d at %s:%d\n", \
- i, __FILE__, __LINE__);}) \
- if (!next) { \
- next = new_stackinfo(32, 2048/sizeof(PERL_CONTEXT) - 1); \
- next->si_prev = PL_curstackinfo; \
- PL_curstackinfo->si_next = next; \
- } \
- next->si_type = type; \
- next->si_cxix = -1; \
- next->si_cxsubix = -1; \
+ PERL_SI *next = PL_curstackinfo->si_next; \
+ DEBUG_l({ \
+ int i = 0; PERL_SI *p = PL_curstackinfo; \
+ while (p) { i++; p = p->si_prev; } \
+ Perl_deb(aTHX_ "push STACKINFO %d in %s at %s:%d\n", \
+ i, SAFE_FUNCTION__, __FILE__, __LINE__);}) \
+ if (!next) { \
+ next = new_stackinfo(32, 2048/sizeof(PERL_CONTEXT) - 1); \
+ next->si_prev = PL_curstackinfo; \
+ PL_curstackinfo->si_next = next; \
+ } \
+ next->si_type = type; \
+ next->si_cxix = -1; \
+ next->si_cxsubix = -1; \
PUSHSTACK_INIT_HWM(next); \
- AvFILLp(next->si_stack) = 0; \
- SWITCHSTACK(PL_curstack,next->si_stack); \
- PL_curstackinfo = next; \
- SET_MARK_OFFSET; \
+ AvFILLp(next->si_stack) = 0; \
+ SWITCHSTACK(PL_curstack,next->si_stack); \
+ PL_curstackinfo = next; \
+ SET_MARK_OFFSET; \
} STMT_END
#define PUSHSTACK PUSHSTACKi(PERLSI_UNKNOWN)
@@ -1222,27 +1317,27 @@ typedef struct stackinfo PERL_SI;
* PUTBACK/SPAGAIN to flush/refresh any local SP that may be active */
#define POPSTACK \
STMT_START { \
- dSP; \
- PERL_SI * const prev = PL_curstackinfo->si_prev; \
- DEBUG_l({ \
- int i = -1; PERL_SI *p = PL_curstackinfo; \
- while (p) { i++; p = p->si_prev; } \
- Perl_deb(aTHX_ "pop STACKINFO %d at %s:%d\n", \
- i, __FILE__, __LINE__);}) \
- if (!prev) { \
- Perl_croak_popstack(); \
- } \
- SWITCHSTACK(PL_curstack,prev->si_stack); \
- /* don't free prev here, free them all at the END{} */ \
- PL_curstackinfo = prev; \
+ dSP; \
+ PERL_SI * const prev = PL_curstackinfo->si_prev; \
+ DEBUG_l({ \
+ int i = -1; PERL_SI *p = PL_curstackinfo; \
+ while (p) { i++; p = p->si_prev; } \
+ Perl_deb(aTHX_ "pop STACKINFO %d in %s at %s:%d\n", \
+ i, SAFE_FUNCTION__, __FILE__, __LINE__);}) \
+ if (!prev) { \
+ Perl_croak_popstack(); \
+ } \
+ SWITCHSTACK(PL_curstack,prev->si_stack); \
+ /* don't free prev here, free them all at the END{} */ \
+ PL_curstackinfo = prev; \
} STMT_END
#define POPSTACK_TO(s) \
STMT_START { \
- while (PL_curstack != s) { \
- dounwind(-1); \
- POPSTACK; \
- } \
+ while (PL_curstack != s) { \
+ dounwind(-1); \
+ POPSTACK; \
+ } \
} STMT_END
/*
@@ -1263,17 +1358,17 @@ program; otherwise 0;
/*
=for apidoc_section $multicall
-=for apidoc Amns||dMULTICALL
+=for apidoc Amn;||dMULTICALL
Declare local variables for a multicall. See L<perlcall/LIGHTWEIGHT CALLBACKS>.
-=for apidoc Ams||PUSH_MULTICALL|CV* the_cv
+=for apidoc Am;||PUSH_MULTICALL|CV* the_cv
Opening bracket for a lightweight callback.
See L<perlcall/LIGHTWEIGHT CALLBACKS>.
-=for apidoc Amns||MULTICALL
+=for apidoc Amn;||MULTICALL
Make a lightweight callback. See L<perlcall/LIGHTWEIGHT CALLBACKS>.
-=for apidoc Amns||POP_MULTICALL
+=for apidoc Amn;||POP_MULTICALL
Closing bracket for a lightweight callback.
See L<perlcall/LIGHTWEIGHT CALLBACKS>.
@@ -1293,43 +1388,43 @@ See L<perlcall/LIGHTWEIGHT CALLBACKS>.
#define PUSH_MULTICALL_FLAGS(the_cv, flags) \
STMT_START { \
PERL_CONTEXT *cx; \
- CV * const _nOnclAshIngNamE_ = the_cv; \
- CV * const cv = _nOnclAshIngNamE_; \
- PADLIST * const padlist = CvPADLIST(cv); \
- multicall_oldcatch = CATCH_GET; \
- CATCH_SET(TRUE); \
- PUSHSTACKi(PERLSI_MULTICALL); \
- cx = cx_pushblock((CXt_SUB|CXp_MULTICALL|flags), (U8)gimme, \
+ CV * const _nOnclAshIngNamE_ = the_cv; \
+ CV * const cv = _nOnclAshIngNamE_; \
+ PADLIST * const padlist = CvPADLIST(cv); \
+ multicall_oldcatch = CATCH_GET; \
+ CATCH_SET(TRUE); \
+ PUSHSTACKi(PERLSI_MULTICALL); \
+ cx = cx_pushblock((CXt_SUB|CXp_MULTICALL|flags), (U8)gimme, \
PL_stack_sp, PL_savestack_ix); \
cx_pushsub(cx, cv, NULL, 0); \
- SAVEOP(); \
+ SAVEOP(); \
if (!(flags & CXp_SUB_RE_FAKE)) \
CvDEPTH(cv)++; \
- if (CvDEPTH(cv) >= 2) \
- Perl_pad_push(aTHX_ padlist, CvDEPTH(cv)); \
- PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \
- multicall_cop = CvSTART(cv); \
+ if (CvDEPTH(cv) >= 2) \
+ Perl_pad_push(aTHX_ padlist, CvDEPTH(cv)); \
+ PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \
+ multicall_cop = CvSTART(cv); \
} STMT_END
#define MULTICALL \
STMT_START { \
- PL_op = multicall_cop; \
- CALLRUNOPS(aTHX); \
+ PL_op = multicall_cop; \
+ CALLRUNOPS(aTHX); \
} STMT_END
#define POP_MULTICALL \
STMT_START { \
PERL_CONTEXT *cx; \
- cx = CX_CUR(); \
- CX_LEAVE_SCOPE(cx); \
+ cx = CX_CUR(); \
+ CX_LEAVE_SCOPE(cx); \
cx_popsub_common(cx); \
gimme = cx->blk_gimme; \
PERL_UNUSED_VAR(gimme); /* for API */ \
- cx_popblock(cx); \
- CX_POP(cx); \
- POPSTACK; \
- CATCH_SET(multicall_oldcatch); \
- SPAGAIN; \
+ cx_popblock(cx); \
+ CX_POP(cx); \
+ POPSTACK; \
+ CATCH_SET(multicall_oldcatch); \
+ SPAGAIN; \
} STMT_END
/* Change the CV of an already-pushed MULTICALL CxSUB block.
@@ -1337,20 +1432,20 @@ See L<perlcall/LIGHTWEIGHT CALLBACKS>.
#define CHANGE_MULTICALL_FLAGS(the_cv, flags) \
STMT_START { \
- CV * const _nOnclAshIngNamE_ = the_cv; \
- CV * const cv = _nOnclAshIngNamE_; \
- PADLIST * const padlist = CvPADLIST(cv); \
+ CV * const _nOnclAshIngNamE_ = the_cv; \
+ CV * const cv = _nOnclAshIngNamE_; \
+ PADLIST * const padlist = CvPADLIST(cv); \
PERL_CONTEXT *cx = CX_CUR(); \
- assert(CxMULTICALL(cx)); \
+ assert(CxMULTICALL(cx)); \
cx_popsub_common(cx); \
- cx->cx_type = (CXt_SUB|CXp_MULTICALL|flags); \
+ cx->cx_type = (CXt_SUB|CXp_MULTICALL|flags); \
cx_pushsub(cx, cv, NULL, 0); \
if (!(flags & CXp_SUB_RE_FAKE)) \
CvDEPTH(cv)++; \
- if (CvDEPTH(cv) >= 2) \
- Perl_pad_push(aTHX_ padlist, CvDEPTH(cv)); \
- PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \
- multicall_cop = CvSTART(cv); \
+ if (CvDEPTH(cv) >= 2) \
+ Perl_pad_push(aTHX_ padlist, CvDEPTH(cv)); \
+ PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \
+ multicall_cop = CvSTART(cv); \
} STMT_END
/*
* ex: set ts=8 sts=4 sw=4 et:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h
index 435dee6261..7a813f6fa1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h
@@ -38,7 +38,7 @@ See L<perlguts/Autoloading with XSUBs>.
# define Nullcv Null(CV*)
#endif
-#define CvSTASH(sv) (0+((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash)
+#define CvSTASH(sv) (MUTABLE_HV(((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash))
#define CvSTASH_set(cv,st) Perl_cvstash_set(aTHX_ cv, st)
#define CvSTART(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_start_u.xcv_start
#define CvROOT(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_root
@@ -107,7 +107,10 @@ See L<perlguts/Autoloading with XSUBs>.
: 0 \
)
-#define CVf_METHOD 0x0001 /* CV is explicitly marked as a method */
+/* CV has the `:method` attribute. This used to be called CVf_METHOD but is
+ * renamed to avoid collision with CVf_IsMETHOD */
+#define CVf_NOWARN_AMBIGUOUS 0x0001
+
#define CVf_LVALUE 0x0002 /* CV return value can be used as lvalue */
#define CVf_CONST 0x0004 /* inlinable sub */
#define CVf_ISXSUB 0x0008 /* CV is an XSUB, not pure perl. */
@@ -117,7 +120,7 @@ See L<perlguts/Autoloading with XSUBs>.
#define CVf_CLONED 0x0040 /* a clone of one of those */
#define CVf_ANON 0x0080 /* CV is not pointed to by a GV */
#define CVf_UNIQUE 0x0100 /* sub is only called once (eg PL_main_cv,
- * require, eval). */
+ require, eval). */
#define CVf_NODEBUG 0x0200 /* no DB::sub indirection for this CV
(esp. useful for special XSUBs) */
#define CVf_CVGV_RC 0x0400 /* CvGV is reference counted */
@@ -130,9 +133,14 @@ See L<perlguts/Autoloading with XSUBs>.
#define CVf_NAMED 0x8000 /* Has a name HEK */
#define CVf_LEXICAL 0x10000 /* Omit package from name */
#define CVf_ANONCONST 0x20000 /* :const - create anonconst op */
+#define CVf_SIGNATURE 0x40000 /* CV uses a signature */
+#define CVf_REFCOUNTED_ANYSV 0x80000 /* CvXSUBANY().any_sv is refcounted */
+#define CVf_IsMETHOD 0x100000 /* CV is a (real) method of a real class. Not
+ to be confused with what used to be called
+ CVf_METHOD; now CVf_NOWARN_AMBIGUOUS */
/* This symbol for optimised communication between toke.c and op.c: */
-#define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LVALUE|CVf_ANONCONST)
+#define CVf_BUILTIN_ATTRS (CVf_NOWARN_AMBIGUOUS|CVf_LVALUE|CVf_ANONCONST)
#define CvCLONE(cv) (CvFLAGS(cv) & CVf_CLONE)
#define CvCLONE_on(cv) (CvFLAGS(cv) |= CVf_CLONE)
@@ -155,9 +163,9 @@ See L<perlguts/Autoloading with XSUBs>.
#define CvNODEBUG_on(cv) (CvFLAGS(cv) |= CVf_NODEBUG)
#define CvNODEBUG_off(cv) (CvFLAGS(cv) &= ~CVf_NODEBUG)
-#define CvMETHOD(cv) (CvFLAGS(cv) & CVf_METHOD)
-#define CvMETHOD_on(cv) (CvFLAGS(cv) |= CVf_METHOD)
-#define CvMETHOD_off(cv) (CvFLAGS(cv) &= ~CVf_METHOD)
+#define CvNOWARN_AMBIGUOUS(cv) (CvFLAGS(cv) & CVf_NOWARN_AMBIGUOUS)
+#define CvNOWARN_AMBIGUOUS_on(cv) (CvFLAGS(cv) |= CVf_NOWARN_AMBIGUOUS)
+#define CvNOWARN_AMBIGUOUS_off(cv) (CvFLAGS(cv) &= ~CVf_NOWARN_AMBIGUOUS)
#define CvLVALUE(cv) (CvFLAGS(cv) & CVf_LVALUE)
#define CvLVALUE_on(cv) (CvFLAGS(cv) |= CVf_LVALUE)
@@ -219,6 +227,51 @@ See L<perlguts/Autoloading with XSUBs>.
#define CvANONCONST_on(cv) (CvFLAGS(cv) |= CVf_ANONCONST)
#define CvANONCONST_off(cv) (CvFLAGS(cv) &= ~CVf_ANONCONST)
+#define CvSIGNATURE(cv) (CvFLAGS(cv) & CVf_SIGNATURE)
+#define CvSIGNATURE_on(cv) (CvFLAGS(cv) |= CVf_SIGNATURE)
+#define CvSIGNATURE_off(cv) (CvFLAGS(cv) &= ~CVf_SIGNATURE)
+
+/*
+
+=for apidoc m|bool|CvREFCOUNTED_ANYSV|CV *cv
+
+If true, indicates that the C<CvXSUBANY(cv).any_sv> member contains an SV
+pointer whose reference count should be decremented when the CV itself is
+freed. In addition, C<cv_clone()> will increment the reference count, and
+C<sv_dup()> will duplicate the entire pointed-to SV if this flag is set.
+
+Any CV that wraps an XSUB has an C<ANY> union that the XSUB function is free
+to use for its own purposes. It may be the case that the code wishes to store
+an SV in the C<any_sv> member of this union. By setting this flag, this SV
+reference will be properly reclaimed or duplicated when the CV itself is.
+
+=for apidoc m|void|CvREFCOUNTED_ANYSV_on|CV *cv
+
+Helper macro to turn on the C<CvREFCOUNTED_ANYSV> flag.
+
+=for apidoc m|void|CvREFCOUNTED_ANYSV_off|CV *cv
+
+Helper macro to turn off the C<CvREFCOUNTED_ANYSV> flag.
+
+=cut
+*/
+
+#define CvREFCOUNTED_ANYSV(cv) (CvFLAGS(cv) & CVf_REFCOUNTED_ANYSV)
+#define CvREFCOUNTED_ANYSV_on(cv) (CvFLAGS(cv) |= CVf_REFCOUNTED_ANYSV)
+#define CvREFCOUNTED_ANYSV_off(cv) (CvFLAGS(cv) &= ~CVf_REFCOUNTED_ANYSV)
+
+#define CvIsMETHOD(cv) (CvFLAGS(cv) & CVf_IsMETHOD)
+#define CvIsMETHOD_on(cv) (CvFLAGS(cv) |= CVf_IsMETHOD)
+#define CvIsMETHOD_off(cv) (CvFLAGS(cv) &= ~CVf_IsMETHOD)
+
+/* Back-compat */
+#ifndef PERL_CORE
+# define CVf_METHOD CVf_NOWARN_AMBIGUOUS
+# define CvMETHOD(cv) CvNOWARN_AMBIGUOUS(cv)
+# define CvMETHOD_on(cv) CvNOWARN_AMBIGUOUS_on(cv)
+# define CvMETHOD_off(cv) CvNOWARN_AMBIGUOUS_off(cv)
+#endif
+
/* Flags for newXS_flags */
#define XS_DYNAMIC_FILENAME 0x01 /* The filename isn't static */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h
index 74aa127055..8a1ce98048 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h
@@ -13,46 +13,28 @@
#define SH_PATH "/bin/sh"
#endif
-#ifdef DJGPP
-# define BIT_BUCKET "nul"
-# define OP_BINARY O_BINARY
-# define PERL_SYS_INIT_BODY(c,v) \
- MALLOC_CHECK_TAINT2(*c,*v) Perl_DJGPP_init(c,v); PERLIO_INIT
-# define init_os_extras Perl_init_os_extras
-# define HAS_UTIME
-# define HAS_KILL
- char *djgpp_pathexp (const char*);
- void Perl_DJGPP_init (int *argcp,char ***argvp);
-# if (DJGPP==2 && DJGPP_MINOR < 2)
-# define NO_LOCALECONV_MON_THOUSANDS_SEP
-# endif
-# ifndef PERL_CORE
-# define PERL_FS_VER_FMT "%d_%d_%d"
-# endif
-# define PERL_FS_VERSION STRINGIFY(PERL_REVISION) "_" \
- STRINGIFY(PERL_VERSION) "_" \
- STRINGIFY(PERL_SUBVERSION)
-#elif defined(WIN32)
+#ifdef WIN32
# define PERL_SYS_INIT_BODY(c,v) \
MALLOC_CHECK_TAINT2(*c,*v) Perl_win32_init(c,v); PERLIO_INIT
# define PERL_SYS_TERM_BODY() Perl_win32_term()
# define BIT_BUCKET "nul"
-#elif defined(NETWARE)
-# define PERL_SYS_INIT_BODY(c,v) \
- MALLOC_CHECK_TAINT2(*c,*v) Perl_nw5_init(c,v); PERLIO_INIT
-# define BIT_BUCKET "nwnul"
#else
# define PERL_SYS_INIT_BODY(c,v) \
MALLOC_CHECK_TAINT2(*c,*v); PERLIO_INIT
# define BIT_BUCKET "\\dev\\nul" /* "wanna be like, umm, Newlined, or somethin?" */
#endif
+/* Generally add things last-in first-terminated. IO and memory terminations
+ * need to be generally last
+ *
+ * BEWARE that using PerlIO in these will be using freed memory, so may appear
+ * to work, but must NOT be retained in production code. */
#ifndef PERL_SYS_TERM_BODY
# define PERL_SYS_TERM_BODY() \
+ ENV_TERM; USER_PROP_MUTEX_TERM; LOCALE_TERM; \
HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
- OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
- MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM; \
- ENV_TERM;
+ OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; \
+ PERLIO_TERM; MALLOC_TERM;
#endif
#define dXSUB_SYS dNOOP
@@ -112,11 +94,7 @@
#define fwrite1 fwrite
#define Fstat(fd,bufptr) fstat((fd),(bufptr))
-#ifdef DJGPP
-# define Fflush(fp) djgpp_fflush(fp)
-#else
-# define Fflush(fp) fflush(fp)
-#endif
+#define Fflush(fp) fflush(fp)
#define Mkdir(path,mode) mkdir((path),(mode))
#ifndef WIN32
@@ -129,54 +107,13 @@
# define HAS_CHOWN
#endif /* WIN32 */
-/*
- * <rich@phekda.freeserve.co.uk>: The DJGPP port has code that converts
- * the return code of system() into the form that Unixy wait usually
- * returns:
- *
- * - signal number in bits 0-6;
- * - core dump flag in bit 7;
- * - exit code in bits 8-15.
- *
- * Bits 0-7 are always zero for DJGPP, because it uses system().
- * See djgpp.c.
- *
- * POSIX::W* use the W* macros from <sys/wait.h> to decode
- * the return code. Unfortunately the W* macros for DJGPP use
- * a different format than Unixy wait does. So there's a mismatch
- * and, say, WEXITSTATUS($?) will return bogus values.
- *
- * So here we add hack to redefine the W* macros from DJGPP's <sys/wait.h>
- * to work with our return-code conversion.
- */
-
-#ifdef DJGPP
-
-#include <sys/wait.h>
-
-#undef WEXITSTATUS
-#undef WIFEXITED
-#undef WIFSIGNALED
-#undef WIFSTOPPED
-#undef WNOHANG
-#undef WSTOPSIG
-#undef WTERMSIG
-#undef WUNTRACED
-
-#define WEXITSTATUS(stat_val) ((stat_val) >> 8)
-#define WIFEXITED(stat_val) 0
-#define WIFSIGNALED(stat_val) 0
-#define WIFSTOPPED(stat_val) 0
-#define WNOHANG 0
-#define WSTOPSIG(stat_val) 0
-#define WTERMSIG(stat_val) 0
-#define WUNTRACED 0
-
-#endif
-
/* Don't go reading from /dev/urandom */
#define PERL_NO_DEV_RANDOM
+#ifdef WIN32
+# define NO_ENVIRON_ARRAY
+#endif
+
/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h
index 9182d504f2..fe0075920b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/ebcdic.pl.
* Any changes made here will be lost!
@@ -258,31 +258,6 @@ SOFTWARE.
};
# endif
-# ifndef DOINIT
- EXT U8 PL_fold_locale[256];
-# else
- EXT U8 PL_fold_locale[256] = {
-/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/
-/*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-/*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-/*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
-/*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
-/*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-/*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
-/*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-/*7_*/0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-/*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-/*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-/*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-/*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-/*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-/*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-/*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-/*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/
-};
-# endif
-
/* 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 */
@@ -661,31 +636,6 @@ SOFTWARE.
};
# endif
-# ifndef DOINIT
- EXT U8 PL_fold_locale[256];
-# else
- EXT U8 PL_fold_locale[256] = {
-/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/
-/*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-/*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-/*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
-/*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
-/*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-/*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
-/*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-/*7_*/0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-/*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-/*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-/*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-/*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-/*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-/*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-/*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-/*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/
-};
-# endif
-
/* 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 */
@@ -845,4 +795,4 @@ SOFTWARE.
#endif /* PERL_EBCDIC_TABLES_H_ */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h
index 10214db1fb..d3d9740fd3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h
@@ -1,16 +1,19 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* embed.h
*
* Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ * 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022
+ * 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/embed.pl from data in embed.fnc,
- * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
+ * This file is built by regen/embed.pl from embed.fnc, intrpvar.h,
+ * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and
+ * regen/HeaderParser.pm.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
@@ -24,2032 +27,29 @@
* BEWARE that a bunch of macros don't have long names, so either must be
* added or don't use them if you define this symbol */
-#ifndef PERL_NO_SHORT_NAMES
-
-/* Hide global symbols */
-
-#define Gv_AMupdate(a,b) Perl_Gv_AMupdate(aTHX_ a,b)
-#define SvAMAGIC_off Perl_SvAMAGIC_off
-#define SvAMAGIC_on Perl_SvAMAGIC_on
-#define SvTRUE(a) Perl_SvTRUE(aTHX_ a)
-#define SvTRUE_NN(a) Perl_SvTRUE_NN(aTHX_ a)
-#define SvTRUE_common(a,b) Perl_SvTRUE_common(aTHX_ a,b)
-#define SvTRUE_nomg(a) Perl_SvTRUE_nomg(aTHX_ a)
-#define _force_out_malformed_utf8_message(a,b,c,d) Perl__force_out_malformed_utf8_message(aTHX_ a,b,c,d)
-#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,c) Perl__is_utf8_FOO(aTHX_ a,b,c)
-#define _is_utf8_perl_idcont(a,b) Perl__is_utf8_perl_idcont(aTHX_ a,b)
-#define _is_utf8_perl_idstart(a,b) Perl__is_utf8_perl_idstart(aTHX_ a,b)
-#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,e) Perl__to_utf8_fold_flags(aTHX_ a,b,c,d,e)
-#define _to_utf8_lower_flags(a,b,c,d,e) Perl__to_utf8_lower_flags(aTHX_ a,b,c,d,e)
-#define _to_utf8_title_flags(a,b,c,d,e) Perl__to_utf8_title_flags(aTHX_ a,b,c,d,e)
-#define _to_utf8_upper_flags(a,b,c,d,e) Perl__to_utf8_upper_flags(aTHX_ a,b,c,d,e)
-#define _utf8n_to_uvchr_msgs_helper Perl__utf8n_to_uvchr_msgs_helper
-#define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d)
-#define amagic_deref_call(a,b) Perl_amagic_deref_call(aTHX_ a,b)
-#define apply_attrs_string(a,b,c,d) Perl_apply_attrs_string(aTHX_ a,b,c,d)
-#define atfork_lock Perl_atfork_lock
-#define atfork_unlock Perl_atfork_unlock
-#define av_clear(a) Perl_av_clear(aTHX_ a)
-#define av_count(a) Perl_av_count(aTHX_ a)
-#define av_delete(a,b,c) Perl_av_delete(aTHX_ a,b,c)
-#define av_exists(a,b) Perl_av_exists(aTHX_ a,b)
-#define av_extend(a,b) Perl_av_extend(aTHX_ a,b)
-#define av_fetch(a,b,c) Perl_av_fetch(aTHX_ a,b,c)
-#define av_fill(a,b) Perl_av_fill(aTHX_ a,b)
-#define av_len(a) Perl_av_len(aTHX_ a)
-#define av_make(a,b) Perl_av_make(aTHX_ a,b)
-#define av_pop(a) Perl_av_pop(aTHX_ a)
-#define av_push(a,b) Perl_av_push(aTHX_ a,b)
-#define av_shift(a) Perl_av_shift(aTHX_ a)
-#define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c)
-#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_loc Perl_bytes_from_utf8_loc
-#define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b)
-#define call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c)
-#define call_atexit(a,b) Perl_call_atexit(aTHX_ a,b)
-#define call_list(a,b) Perl_call_list(aTHX_ a,b)
-#define call_method(a,b) Perl_call_method(aTHX_ a,b)
-#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 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)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define ck_warner Perl_ck_warner
-#define ck_warner_d Perl_ck_warner_d
-#endif
-#define clear_defarray(a,b) Perl_clear_defarray(aTHX_ a,b)
-#define cop_fetch_label(a,b,c) Perl_cop_fetch_label(aTHX_ a,b,c)
-#define cop_store_label(a,b,c,d) Perl_cop_store_label(aTHX_ a,b,c,d)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define croak Perl_croak
-#endif
-#define croak_memory_wrap Perl_croak_memory_wrap
-#define croak_no_modify Perl_croak_no_modify
-#define croak_sv(a) Perl_croak_sv(aTHX_ a)
-#define croak_xs_usage Perl_croak_xs_usage
-#define csighandler1 Perl_csighandler1
-#define csighandler3 Perl_csighandler3
-#ifndef NO_MATHOMS
-#define custom_op_desc(a) Perl_custom_op_desc(aTHX_ a)
-#endif
-#ifndef NO_MATHOMS
-#define custom_op_name(a) Perl_custom_op_name(aTHX_ a)
-#endif
-#define cv_clone(a) Perl_cv_clone(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_get_call_checker_flags(a,b,c,d,e) Perl_cv_get_call_checker_flags(aTHX_ a,b,c,d,e)
-#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)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define deb Perl_deb
-#endif
-#define debop(a) Perl_debop(aTHX_ a)
-#define debprofdump() Perl_debprofdump(aTHX)
-#define debstack() Perl_debstack(aTHX)
-#define debstackptrs() Perl_debstackptrs(aTHX)
-#define delimcpy Perl_delimcpy
-#define despatch_signals() Perl_despatch_signals(aTHX)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define die Perl_die
-#endif
-#define die_sv(a) Perl_die_sv(aTHX_ a)
-#ifndef NO_MATHOMS
-#define do_binmode(a,b,c) Perl_do_binmode(aTHX_ a,b,c)
-#endif
-#define do_close(a,b) Perl_do_close(aTHX_ a,b)
-#define do_gv_dump(a,b,c,d) Perl_do_gv_dump(aTHX_ a,b,c,d)
-#define do_gvgv_dump(a,b,c,d) Perl_do_gvgv_dump(aTHX_ a,b,c,d)
-#define do_hv_dump(a,b,c,d) Perl_do_hv_dump(aTHX_ a,b,c,d)
-#define do_join(a,b,c,d) Perl_do_join(aTHX_ a,b,c,d)
-#define do_magic_dump(a,b,c,d,e,f,g) Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g)
-#define do_op_dump(a,b,c) Perl_do_op_dump(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define do_open9(a,b,c,d,e,f,g,h,i) Perl_do_open9(aTHX_ a,b,c,d,e,f,g,h,i)
-#endif
-#define do_openn(a,b,c,d,e,f,g,h,i) Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i)
-#define do_pmop_dump(a,b,c) Perl_do_pmop_dump(aTHX_ a,b,c)
-#define do_sprintf(a,b,c) Perl_do_sprintf(aTHX_ a,b,c)
-#define do_sv_dump(a,b,c,d,e,f,g) Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g)
-#define doing_taint Perl_doing_taint
-#define doref(a,b,c) Perl_doref(aTHX_ a,b,c)
-#define dounwind(a) Perl_dounwind(aTHX_ a)
-#define dowantarray() Perl_dowantarray(aTHX)
-#define dump_all() Perl_dump_all(aTHX)
-#define dump_eval() Perl_dump_eval(aTHX)
-#define dump_form(a) Perl_dump_form(aTHX_ a)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define dump_indent Perl_dump_indent
-#endif
-#define dump_packsubs(a) Perl_dump_packsubs(aTHX_ a)
-#define dump_sub(a) Perl_dump_sub(aTHX_ a)
-#define dump_vindent(a,b,c,d) Perl_dump_vindent(aTHX_ a,b,c,d)
-#define eval_pv(a,b) Perl_eval_pv(aTHX_ a,b)
-#define eval_sv(a,b) Perl_eval_sv(aTHX_ a,b)
-#define fbm_compile(a,b) Perl_fbm_compile(aTHX_ a,b)
-#define fbm_instr(a,b,c,d) Perl_fbm_instr(aTHX_ a,b,c,d)
-#define filter_add(a,b) Perl_filter_add(aTHX_ a,b)
-#define filter_del(a) Perl_filter_del(aTHX_ a)
-#define filter_read(a,b,c) Perl_filter_read(aTHX_ a,b,c)
-#define find_runcv(a) Perl_find_runcv(aTHX_ a)
-#define find_rundefsv() Perl_find_rundefsv(aTHX)
-#define find_rundefsvoffset() Perl_find_rundefsvoffset(aTHX)
-#define foldEQ Perl_foldEQ
-#define foldEQ_latin1 Perl_foldEQ_latin1
-#define foldEQ_locale Perl_foldEQ_locale
-#define foldEQ_utf8_flags(a,b,c,d,e,f,g,h,i) Perl_foldEQ_utf8_flags(aTHX_ a,b,c,d,e,f,g,h,i)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define form Perl_form
-#endif
-#define free_tmps() Perl_free_tmps(aTHX)
-#define get_av(a,b) Perl_get_av(aTHX_ a,b)
-#define get_context Perl_get_context
-#define get_cv(a,b) Perl_get_cv(aTHX_ a,b)
-#define get_cvn_flags(a,b,c) Perl_get_cvn_flags(aTHX_ a,b,c)
-#define get_hv(a,b) Perl_get_hv(aTHX_ a,b)
-#define get_op_descs() Perl_get_op_descs(aTHX)
-#define get_op_names() Perl_get_op_names(aTHX)
-#define get_ppaddr() Perl_get_ppaddr(aTHX)
-#define get_sv(a,b) Perl_get_sv(aTHX_ a,b)
-#define get_vtbl(a) Perl_get_vtbl(aTHX_ a)
-#define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a)
-#define gp_free(a) Perl_gp_free(aTHX_ a)
-#define gp_ref(a) Perl_gp_ref(aTHX_ a)
-#define grok_bin_oct_hex(a,b,c,d,e,f,g) Perl_grok_bin_oct_hex(aTHX_ a,b,c,d,e,f,g)
-#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 gv_add_by_type(a,b) Perl_gv_add_by_type(aTHX_ a,b)
-#define gv_autoload_pv(a,b,c) Perl_gv_autoload_pv(aTHX_ a,b,c)
-#define gv_autoload_pvn(a,b,c,d) Perl_gv_autoload_pvn(aTHX_ a,b,c,d)
-#define gv_autoload_sv(a,b,c) Perl_gv_autoload_sv(aTHX_ a,b,c)
-#define gv_check(a) Perl_gv_check(aTHX_ a)
-#define gv_const_sv(a) Perl_gv_const_sv(aTHX_ a)
-#define gv_dump(a) Perl_gv_dump(aTHX_ a)
-#ifndef NO_MATHOMS
-#define gv_efullname(a,b) Perl_gv_efullname(aTHX_ a,b)
-#endif
-#define gv_efullname4(a,b,c,d) Perl_gv_efullname4(aTHX_ a,b,c,d)
-#define gv_fetchfile(a) Perl_gv_fetchfile(aTHX_ a)
-#define gv_fetchfile_flags(a,b,c) Perl_gv_fetchfile_flags(aTHX_ a,b,c)
-#define gv_fetchmeth_pv(a,b,c,d) Perl_gv_fetchmeth_pv(aTHX_ a,b,c,d)
-#define gv_fetchmeth_pv_autoload(a,b,c,d) Perl_gv_fetchmeth_pv_autoload(aTHX_ a,b,c,d)
-#define gv_fetchmeth_pvn(a,b,c,d,e) Perl_gv_fetchmeth_pvn(aTHX_ a,b,c,d,e)
-#define gv_fetchmeth_pvn_autoload(a,b,c,d,e) Perl_gv_fetchmeth_pvn_autoload(aTHX_ a,b,c,d,e)
-#define gv_fetchmeth_sv(a,b,c,d) Perl_gv_fetchmeth_sv(aTHX_ a,b,c,d)
-#define gv_fetchmeth_sv_autoload(a,b,c,d) Perl_gv_fetchmeth_sv_autoload(aTHX_ a,b,c,d)
-#define gv_fetchmethod_autoload(a,b,c) Perl_gv_fetchmethod_autoload(aTHX_ a,b,c)
-#define gv_fetchmethod_pv_flags(a,b,c) Perl_gv_fetchmethod_pv_flags(aTHX_ a,b,c)
-#define gv_fetchmethod_pvn_flags(a,b,c,d) Perl_gv_fetchmethod_pvn_flags(aTHX_ a,b,c,d)
-#define gv_fetchmethod_sv_flags(a,b,c) Perl_gv_fetchmethod_sv_flags(aTHX_ a,b,c)
-#define gv_fetchpv(a,b,c) Perl_gv_fetchpv(aTHX_ a,b,c)
-#define gv_fetchpvn_flags(a,b,c,d) Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
-#define gv_fetchsv(a,b,c) Perl_gv_fetchsv(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define gv_fullname(a,b) Perl_gv_fullname(aTHX_ a,b)
-#endif
-#define gv_fullname4(a,b,c,d) Perl_gv_fullname4(aTHX_ a,b,c,d)
-#define gv_handler(a,b) Perl_gv_handler(aTHX_ a,b)
-#define gv_init_pv(a,b,c,d) Perl_gv_init_pv(aTHX_ a,b,c,d)
-#define gv_init_pvn(a,b,c,d,e) Perl_gv_init_pvn(aTHX_ a,b,c,d,e)
-#define gv_init_sv(a,b,c,d) Perl_gv_init_sv(aTHX_ a,b,c,d)
-#define gv_name_set(a,b,c,d) Perl_gv_name_set(aTHX_ a,b,c,d)
-#define gv_stashpv(a,b) Perl_gv_stashpv(aTHX_ a,b)
-#define gv_stashpvn(a,b,c) Perl_gv_stashpvn(aTHX_ a,b,c)
-#define gv_stashsv(a,b) Perl_gv_stashsv(aTHX_ a,b)
-#define hv_bucket_ratio(a) Perl_hv_bucket_ratio(aTHX_ a)
-#define hv_clear(a) Perl_hv_clear(aTHX_ a)
-#define hv_clear_placeholders(a) Perl_hv_clear_placeholders(aTHX_ a)
-#define hv_common(a,b,c,d,e,f,g,h) Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
-#define hv_common_key_len(a,b,c,d,e,f) Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f)
-#define hv_copy_hints_hv(a) Perl_hv_copy_hints_hv(aTHX_ a)
-#define hv_delayfree_ent(a,b) Perl_hv_delayfree_ent(aTHX_ a,b)
-#define hv_free_ent(a,b) Perl_hv_free_ent(aTHX_ a,b)
-#define hv_iterinit(a) Perl_hv_iterinit(aTHX_ a)
-#define hv_iterkey(a,b) Perl_hv_iterkey(aTHX_ a,b)
-#define hv_iterkeysv(a) Perl_hv_iterkeysv(aTHX_ a)
-#define hv_iternext_flags(a,b) Perl_hv_iternext_flags(aTHX_ a,b)
-#define hv_iternextsv(a,b,c) Perl_hv_iternextsv(aTHX_ a,b,c)
-#define hv_iterval(a,b) Perl_hv_iterval(aTHX_ a,b)
-#define hv_ksplit(a,b) Perl_hv_ksplit(aTHX_ a,b)
-#define hv_name_set(a,b,c,d) Perl_hv_name_set(aTHX_ a,b,c,d)
-#define hv_rand_set(a,b) Perl_hv_rand_set(aTHX_ a,b)
-#define hv_scalar(a) Perl_hv_scalar(aTHX_ a)
-#define init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a)
-#ifndef NO_MATHOMS
-#define init_i18nl14n(a) Perl_init_i18nl14n(aTHX_ a)
-#endif
-#define init_stacks() Perl_init_stacks(aTHX)
-#define init_tm(a) Perl_init_tm(aTHX_ a)
-#define intro_my() Perl_intro_my(aTHX)
-#define isC9_STRICT_UTF8_CHAR Perl_isC9_STRICT_UTF8_CHAR
-#define isSTRICT_UTF8_CHAR Perl_isSTRICT_UTF8_CHAR
-#define isUTF8_CHAR Perl_isUTF8_CHAR
-#define is_c9strict_utf8_string_loclen Perl_is_c9strict_utf8_string_loclen
-#define is_lvalue_sub() Perl_is_lvalue_sub(aTHX)
-#define is_safe_syscall(a,b,c,d) Perl_is_safe_syscall(aTHX_ a,b,c,d)
-#define is_strict_utf8_string_loclen Perl_is_strict_utf8_string_loclen
-#ifndef NO_MATHOMS
-#define is_utf8_char Perl_is_utf8_char
-#endif
-#define is_utf8_char_helper Perl_is_utf8_char_helper
-#define is_utf8_fixed_width_buf_loclen_flags Perl_is_utf8_fixed_width_buf_loclen_flags
-#define is_utf8_invariant_string_loc Perl_is_utf8_invariant_string_loc
-#define is_utf8_string_flags Perl_is_utf8_string_flags
-#define is_utf8_string_loclen Perl_is_utf8_string_loclen
-#define is_utf8_string_loclen_flags Perl_is_utf8_string_loclen_flags
-#define is_utf8_valid_partial_char_flags Perl_is_utf8_valid_partial_char_flags
-#define isinfnan Perl_isinfnan
-#define leave_adjust_stacks(a,b,c,d) Perl_leave_adjust_stacks(aTHX_ a,b,c,d)
-#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)
-#define lex_grow_linestr(a) Perl_lex_grow_linestr(aTHX_ a)
-#define lex_next_chunk(a) Perl_lex_next_chunk(aTHX_ a)
-#define lex_peek_unichar(a) Perl_lex_peek_unichar(aTHX_ a)
-#define lex_read_space(a) Perl_lex_read_space(aTHX_ a)
-#define lex_read_to(a) Perl_lex_read_to(aTHX_ a)
-#define lex_read_unichar(a) Perl_lex_read_unichar(aTHX_ a)
-#define lex_start(a,b,c) Perl_lex_start(aTHX_ a,b,c)
-#define lex_stuff_pv(a,b) Perl_lex_stuff_pv(aTHX_ a,b)
-#define lex_stuff_pvn(a,b,c) Perl_lex_stuff_pvn(aTHX_ a,b,c)
-#define lex_stuff_sv(a,b) Perl_lex_stuff_sv(aTHX_ a,b)
-#define lex_unstuff(a) Perl_lex_unstuff(aTHX_ a)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define load_module Perl_load_module
-#endif
-#define looks_like_number(a) Perl_looks_like_number(aTHX_ a)
-#define magic_dump(a) Perl_magic_dump(aTHX_ a)
-#define markstack_grow() Perl_markstack_grow(aTHX)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define mess Perl_mess
-#endif
-#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 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_freeext(a,b,c) Perl_mg_freeext(aTHX_ a,b,c)
-#define mg_get(a) Perl_mg_get(aTHX_ a)
-#define mg_length(a) Perl_mg_length(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 Perl_mini_mktime
-#define moreswitches(a) Perl_moreswitches(aTHX_ a)
-#define mortal_getenv Perl_mortal_getenv
-#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_atof3(a,b,c) Perl_my_atof3(aTHX_ a,b,c)
-#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)
-#define my_fork Perl_my_fork
-#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_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 my_strtod Perl_my_strtod
-#define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d)
-#define newANONHASH(a) Perl_newANONHASH(aTHX_ a)
-#define newANONLIST(a) Perl_newANONLIST(aTHX_ a)
-#define newANONSUB(a,b,c) Perl_newANONSUB(aTHX_ a,b,c)
-#define newASSIGNOP(a,b,c,d) Perl_newASSIGNOP(aTHX_ a,b,c,d)
-#define newAVREF(a) Perl_newAVREF(aTHX_ a)
-#define newBINOP(a,b,c,d) Perl_newBINOP(aTHX_ a,b,c,d)
-#define newCONDOP(a,b,c,d) Perl_newCONDOP(aTHX_ a,b,c,d)
-#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)
-#define newGVREF(a,b) Perl_newGVREF(aTHX_ a,b)
-#define newGVgen_flags(a,b) Perl_newGVgen_flags(aTHX_ a,b)
-#define newHVREF(a) Perl_newHVREF(aTHX_ a)
-#define newHVhv(a) Perl_newHVhv(aTHX_ a)
-#define newLISTOP(a,b,c,d) Perl_newLISTOP(aTHX_ a,b,c,d)
-#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)
-#define newRANGE(a,b,c) Perl_newRANGE(aTHX_ a,b,c)
-#define newRV(a) Perl_newRV(aTHX_ a)
-#define newRV_noinc(a) Perl_newRV_noinc(aTHX_ a)
-#define newSLICEOP(a,b,c) Perl_newSLICEOP(aTHX_ a,b,c)
-#define newSTATEOP(a,b,c) Perl_newSTATEOP(aTHX_ a,b,c)
-#define newSV(a) Perl_newSV(aTHX_ a)
-#define newSVOP(a,b,c) Perl_newSVOP(aTHX_ a,b,c)
-#define newSVREF(a) Perl_newSVREF(aTHX_ a)
-#define newSV_type(a) Perl_newSV_type(aTHX_ a)
-#define newSVhek(a) Perl_newSVhek(aTHX_ a)
-#define newSViv(a) Perl_newSViv(aTHX_ a)
-#define newSVnv(a) Perl_newSVnv(aTHX_ a)
-#define newSVpv(a,b) Perl_newSVpv(aTHX_ a,b)
-#define newSVpv_share(a,b) Perl_newSVpv_share(aTHX_ a,b)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define newSVpvf Perl_newSVpvf
-#endif
-#define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b)
-#define newSVpvn_flags(a,b,c) Perl_newSVpvn_flags(aTHX_ a,b,c)
-#define newSVpvn_share(a,b,c) Perl_newSVpvn_share(aTHX_ a,b,c)
-#define newSVrv(a,b) Perl_newSVrv(aTHX_ a,b)
-#define newSVsv_flags(a,b) Perl_newSVsv_flags(aTHX_ a,b)
-#define newSVuv(a) Perl_newSVuv(aTHX_ a)
-#define newTRYCATCHOP(a,b,c,d) Perl_newTRYCATCHOP(aTHX_ a,b,c,d)
-#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)
-#define newXS_flags(a,b,c,d,e) Perl_newXS_flags(aTHX_ a,b,c,d,e)
-#define new_stackinfo(a,b) Perl_new_stackinfo(aTHX_ a,b)
-#define new_version(a) Perl_new_version(aTHX_ a)
-#define nothreadhook() Perl_nothreadhook(aTHX)
-#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_class(a) Perl_op_class(aTHX_ a)
-#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)
-#define op_null(a) Perl_op_null(aTHX_ a)
-#define op_parent Perl_op_parent
-#define op_prepend_elem(a,b,c) Perl_op_prepend_elem(aTHX_ a,b,c)
-#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
-#ifndef NO_MATHOMS
-#define pack_cat(a,b,c,d,e,f,g) Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
-#endif
-#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)
-#define pad_add_name_pv(a,b,c,d) Perl_pad_add_name_pv(aTHX_ a,b,c,d)
-#define pad_add_name_pvn(a,b,c,d,e) Perl_pad_add_name_pvn(aTHX_ a,b,c,d,e)
-#define pad_add_name_sv(a,b,c,d) Perl_pad_add_name_sv(aTHX_ a,b,c,d)
-#define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define pad_compname_type(a) Perl_pad_compname_type(aTHX_ a)
-#endif
-#define pad_findmy_pv(a,b) Perl_pad_findmy_pv(aTHX_ a,b)
-#define pad_findmy_pvn(a,b,c) Perl_pad_findmy_pvn(aTHX_ a,b,c)
-#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)
-#define parse_fullexpr(a) Perl_parse_fullexpr(aTHX_ a)
-#define parse_fullstmt(a) Perl_parse_fullstmt(aTHX_ a)
-#define parse_label(a) Perl_parse_label(aTHX_ a)
-#define parse_listexpr(a) Perl_parse_listexpr(aTHX_ a)
-#define parse_stmtseq(a) Perl_parse_stmtseq(aTHX_ a)
-#define parse_subsignature(a) Perl_parse_subsignature(aTHX_ a)
-#define parse_termexpr(a) Perl_parse_termexpr(aTHX_ a)
-#define perly_sighandler Perl_perly_sighandler
-#define pmop_dump(a) Perl_pmop_dump(aTHX_ a)
-#define pop_scope() Perl_pop_scope(aTHX)
-#define pregcomp(a,b) Perl_pregcomp(aTHX_ a,b)
-#define pregexec(a,b,c,d,e,f,g) Perl_pregexec(aTHX_ a,b,c,d,e,f,g)
-#define pregfree(a) Perl_pregfree(aTHX_ a)
-#define pregfree2(a) Perl_pregfree2(aTHX_ a)
-#define prescan_version(a,b,c,d,e,f,g) Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
-#define ptr_table_clear(a) Perl_ptr_table_clear(aTHX_ a)
-#define ptr_table_fetch(a,b) Perl_ptr_table_fetch(aTHX_ a,b)
-#define ptr_table_free(a) Perl_ptr_table_free(aTHX_ a)
-#define ptr_table_new() Perl_ptr_table_new(aTHX)
-#define ptr_table_split(a) Perl_ptr_table_split(aTHX_ a)
-#define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c)
-#define push_scope() Perl_push_scope(aTHX)
-#define pv_display(a,b,c,d,e) Perl_pv_display(aTHX_ a,b,c,d,e)
-#define pv_escape(a,b,c,d,e,f) Perl_pv_escape(aTHX_ a,b,c,d,e,f)
-#define pv_pretty(a,b,c,d,e,f,g) Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
-#define pv_uni_display(a,b,c,d,e) Perl_pv_uni_display(aTHX_ a,b,c,d,e)
-#define re_compile(a,b) Perl_re_compile(aTHX_ a,b)
-#define re_intuit_start(a,b,c,d,e,f,g) Perl_re_intuit_start(aTHX_ a,b,c,d,e,f,g)
-#define re_intuit_string(a) Perl_re_intuit_string(aTHX_ a)
-#define reentrant_free() Perl_reentrant_free(aTHX)
-#define reentrant_init() Perl_reentrant_init(aTHX)
-#define reentrant_retry Perl_reentrant_retry
-#define reentrant_size() Perl_reentrant_size(aTHX)
-#define reg_named_buff_all(a,b) Perl_reg_named_buff_all(aTHX_ a,b)
-#define reg_named_buff_exists(a,b,c) Perl_reg_named_buff_exists(aTHX_ a,b,c)
-#define reg_named_buff_fetch(a,b,c) Perl_reg_named_buff_fetch(aTHX_ a,b,c)
-#define reg_named_buff_firstkey(a,b) Perl_reg_named_buff_firstkey(aTHX_ a,b)
-#define reg_named_buff_nextkey(a,b) Perl_reg_named_buff_nextkey(aTHX_ a,b)
-#define reg_named_buff_scalar(a,b) Perl_reg_named_buff_scalar(aTHX_ a,b)
-#define regdump(a) Perl_regdump(aTHX_ a)
-#define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h)
-#define regfree_internal(a) Perl_regfree_internal(aTHX_ a)
-#define reginitcolors() Perl_reginitcolors(aTHX)
-#define regnext(a) Perl_regnext(aTHX_ a)
-#define repeatcpy Perl_repeatcpy
-#define require_pv(a) Perl_require_pv(aTHX_ a)
-#define rninstr Perl_rninstr
-#define rsignal(a,b) Perl_rsignal(aTHX_ a,b)
-#define rsignal_state(a) Perl_rsignal_state(aTHX_ a)
-#define runops_debug() Perl_runops_debug(aTHX)
-#define runops_standard() Perl_runops_standard(aTHX)
-#define rv2cv_op_cv(a,b) Perl_rv2cv_op_cv(aTHX_ a,b)
-#define safesyscalloc Perl_safesyscalloc
-#define safesysfree Perl_safesysfree
-#define safesysmalloc Perl_safesysmalloc
-#define safesysrealloc Perl_safesysrealloc
-#define save_I16(a) Perl_save_I16(aTHX_ a)
-#define save_I32(a) Perl_save_I32(aTHX_ a)
-#define save_I8(a) Perl_save_I8(aTHX_ a)
-#define save_adelete(a,b) Perl_save_adelete(aTHX_ a,b)
-#define save_aelem_flags(a,b,c,d) Perl_save_aelem_flags(aTHX_ a,b,c,d)
-#define save_alloc(a,b) Perl_save_alloc(aTHX_ a,b)
-#define save_aptr(a) Perl_save_aptr(aTHX_ a)
-#define save_ary(a) Perl_save_ary(aTHX_ a)
-#define save_bool(a) Perl_save_bool(aTHX_ a)
-#define save_clearsv(a) Perl_save_clearsv(aTHX_ a)
-#define save_delete(a,b,c) Perl_save_delete(aTHX_ a,b,c)
-#define save_destructor(a,b) Perl_save_destructor(aTHX_ a,b)
-#define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b)
-#define save_generic_pvref(a) Perl_save_generic_pvref(aTHX_ a)
-#define save_generic_svref(a) Perl_save_generic_svref(aTHX_ a)
-#define save_gp(a,b) Perl_save_gp(aTHX_ a,b)
-#define save_hash(a) Perl_save_hash(aTHX_ a)
-#define save_hdelete(a,b) Perl_save_hdelete(aTHX_ a,b)
-#define save_helem_flags(a,b,c,d) Perl_save_helem_flags(aTHX_ a,b,c,d)
-#define save_hints() Perl_save_hints(aTHX)
-#define save_hptr(a) Perl_save_hptr(aTHX_ a)
-#define save_int(a) Perl_save_int(aTHX_ a)
-#define save_item(a) Perl_save_item(aTHX_ a)
-#define save_iv(a) Perl_save_iv(aTHX_ a)
-#ifndef NO_MATHOMS
-#define save_list(a,b) Perl_save_list(aTHX_ a,b)
-#endif
-#ifndef NO_MATHOMS
-#define save_long(a) Perl_save_long(aTHX_ a)
-#endif
-#ifndef NO_MATHOMS
-#define save_nogv(a) Perl_save_nogv(aTHX_ a)
-#endif
-#define save_padsv_and_mortalize(a) Perl_save_padsv_and_mortalize(aTHX_ a)
-#define save_pptr(a) Perl_save_pptr(aTHX_ a)
-#define save_pushi32ptr(a,b,c) Perl_save_pushi32ptr(aTHX_ a,b,c)
-#define save_pushptr(a,b) Perl_save_pushptr(aTHX_ a,b)
-#define save_pushptrptr(a,b,c) Perl_save_pushptrptr(aTHX_ a,b,c)
-#define save_re_context() Perl_save_re_context(aTHX)
-#define save_scalar(a) Perl_save_scalar(aTHX_ a)
-#define save_set_svflags(a,b,c) Perl_save_set_svflags(aTHX_ a,b,c)
-#define save_shared_pvref(a) Perl_save_shared_pvref(aTHX_ a)
-#define save_sptr(a) Perl_save_sptr(aTHX_ a)
-#define save_svref(a) Perl_save_svref(aTHX_ a)
-#define save_vptr(a) Perl_save_vptr(aTHX_ a)
-#define savepv(a) Perl_savepv(aTHX_ a)
-#define savepvn(a,b) Perl_savepvn(aTHX_ a,b)
-#define savesharedpv(a) Perl_savesharedpv(aTHX_ a)
-#define savesharedpvn(a,b) Perl_savesharedpvn(aTHX_ a,b)
-#define savesharedsvpv(a) Perl_savesharedsvpv(aTHX_ a)
-#define savestack_grow() Perl_savestack_grow(aTHX)
-#define savestack_grow_cnt(a) Perl_savestack_grow_cnt(aTHX_ a)
-#define savesvpv(a) Perl_savesvpv(aTHX_ a)
-#define scan_bin(a,b,c) Perl_scan_bin(aTHX_ a,b,c)
-#define scan_hex(a,b,c) Perl_scan_hex(aTHX_ a,b,c)
-#define scan_num(a,b) Perl_scan_num(aTHX_ a,b)
-#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 seed() Perl_seed(aTHX)
-#define set_context Perl_set_context
-#define setdefout(a) Perl_setdefout(aTHX_ a)
-#define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c)
-#define sortsv(a,b,c) Perl_sortsv(aTHX_ a,b,c)
-#define sortsv_flags(a,b,c,d) Perl_sortsv_flags(aTHX_ a,b,c,d)
-#define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c)
-#define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b)
-#define str_to_version(a) Perl_str_to_version(aTHX_ a)
-#define sv_2bool_flags(a,b) Perl_sv_2bool_flags(aTHX_ a,b)
-#define sv_2cv(a,b,c,d) Perl_sv_2cv(aTHX_ a,b,c,d)
-#define sv_2io(a) Perl_sv_2io(aTHX_ a)
-#define sv_2iv_flags(a,b) Perl_sv_2iv_flags(aTHX_ a,b)
-#define sv_2mortal(a) Perl_sv_2mortal(aTHX_ a)
-#define sv_2nv_flags(a,b) Perl_sv_2nv_flags(aTHX_ a,b)
-#define sv_2pv_flags(a,b,c) Perl_sv_2pv_flags(aTHX_ a,b,c)
-#define sv_2pvbyte_flags(a,b,c) Perl_sv_2pvbyte_flags(aTHX_ a,b,c)
-#define sv_2pvutf8_flags(a,b,c) Perl_sv_2pvutf8_flags(aTHX_ a,b,c)
-#define sv_2uv_flags(a,b) Perl_sv_2uv_flags(aTHX_ a,b)
-#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)
-#define sv_catpv_flags(a,b,c) Perl_sv_catpv_flags(aTHX_ a,b,c)
-#define sv_catpv_mg(a,b) Perl_sv_catpv_mg(aTHX_ a,b)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define sv_catpvf Perl_sv_catpvf
-#define sv_catpvf_mg Perl_sv_catpvf_mg
-#endif
-#define sv_catpvn_flags(a,b,c,d) Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
-#define sv_catsv_flags(a,b,c) Perl_sv_catsv_flags(aTHX_ a,b,c)
-#define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b)
-#define sv_clear(a) Perl_sv_clear(aTHX_ a)
-#define sv_cmp_flags(a,b,c) Perl_sv_cmp_flags(aTHX_ a,b,c)
-#define sv_cmp_locale_flags(a,b,c) Perl_sv_cmp_locale_flags(aTHX_ a,b,c)
-#define sv_copypv_flags(a,b,c) Perl_sv_copypv_flags(aTHX_ a,b,c)
-#define sv_dec(a) Perl_sv_dec(aTHX_ a)
-#define sv_dec_nomg(a) Perl_sv_dec_nomg(aTHX_ a)
-#define sv_derived_from(a,b) Perl_sv_derived_from(aTHX_ a,b)
-#define sv_derived_from_pv(a,b,c) Perl_sv_derived_from_pv(aTHX_ a,b,c)
-#define sv_derived_from_pvn(a,b,c,d) Perl_sv_derived_from_pvn(aTHX_ a,b,c,d)
-#define sv_derived_from_sv(a,b,c) Perl_sv_derived_from_sv(aTHX_ a,b,c)
-#define sv_destroyable(a) Perl_sv_destroyable(aTHX_ a)
-#define sv_does(a,b) Perl_sv_does(aTHX_ a,b)
-#define sv_does_pv(a,b,c) Perl_sv_does_pv(aTHX_ a,b,c)
-#define sv_does_pvn(a,b,c,d) Perl_sv_does_pvn(aTHX_ a,b,c,d)
-#define sv_does_sv(a,b,c) Perl_sv_does_sv(aTHX_ a,b,c)
-#define sv_dump(a) Perl_sv_dump(aTHX_ a)
-#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)
-#define sv_inc_nomg(a) Perl_sv_inc_nomg(aTHX_ a)
-#define sv_insert_flags(a,b,c,d,e,f) Perl_sv_insert_flags(aTHX_ a,b,c,d,e,f)
-#define sv_isa(a,b) Perl_sv_isa(aTHX_ a,b)
-#define sv_isa_sv(a,b) Perl_sv_isa_sv(aTHX_ a,b)
-#define sv_isobject(a) Perl_sv_isobject(aTHX_ a)
-#ifndef NO_MATHOMS
-#define sv_iv(a) Perl_sv_iv(aTHX_ a)
-#endif
-#define sv_len(a) Perl_sv_len(aTHX_ a)
-#define sv_len_utf8(a) Perl_sv_len_utf8(aTHX_ a)
-#define sv_magic(a,b,c,d,e) Perl_sv_magic(aTHX_ a,b,c,d,e)
-#define sv_magicext(a,b,c,d,e,f) Perl_sv_magicext(aTHX_ a,b,c,d,e,f)
-#define sv_mortalcopy_flags(a,b) Perl_sv_mortalcopy_flags(aTHX_ a,b)
-#define sv_newmortal() Perl_sv_newmortal(aTHX)
-#define sv_newref(a) Perl_sv_newref(aTHX_ a)
-#ifndef NO_MATHOMS
-#define sv_nolocking(a) Perl_sv_nolocking(aTHX_ a)
-#endif
-#define sv_nosharing(a) Perl_sv_nosharing(aTHX_ a)
-#ifndef NO_MATHOMS
-#define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
-#endif
-#ifndef NO_MATHOMS
-#define sv_nv(a) Perl_sv_nv(aTHX_ a)
-#endif
-#define sv_peek(a) Perl_sv_peek(aTHX_ a)
-#define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b)
-#define sv_pos_b2u_flags(a,b,c) Perl_sv_pos_b2u_flags(aTHX_ a,b,c)
-#define sv_pos_u2b(a,b,c) Perl_sv_pos_u2b(aTHX_ a,b,c)
-#define sv_pos_u2b_flags(a,b,c,d) Perl_sv_pos_u2b_flags(aTHX_ a,b,c,d)
-#ifndef NO_MATHOMS
-#define sv_pvbyten(a,b) Perl_sv_pvbyten(aTHX_ a,b)
-#endif
-#define sv_pvbyten_force(a,b) Perl_sv_pvbyten_force(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define sv_pvn(a,b) Perl_sv_pvn(aTHX_ a,b)
-#endif
-#define sv_pvn_force_flags(a,b,c) Perl_sv_pvn_force_flags(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define sv_pvn_nomg(a,b) Perl_sv_pvn_nomg(aTHX_ a,b)
-#endif
-#ifndef NO_MATHOMS
-#define sv_pvutf8n(a,b) Perl_sv_pvutf8n(aTHX_ a,b)
-#endif
-#define sv_pvutf8n_force(a,b) Perl_sv_pvutf8n_force(aTHX_ a,b)
-#define sv_recode_to_utf8(a,b) Perl_sv_recode_to_utf8(aTHX_ a,b)
-#define sv_ref(a,b,c) Perl_sv_ref(aTHX_ a,b,c)
-#define sv_reftype(a,b) Perl_sv_reftype(aTHX_ a,b)
-#define sv_replace(a,b) Perl_sv_replace(aTHX_ a,b)
-#define sv_report_used() Perl_sv_report_used(aTHX)
-#define sv_reset(a,b) Perl_sv_reset(aTHX_ a,b)
-#define sv_rvunweaken(a) Perl_sv_rvunweaken(aTHX_ a)
-#define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a)
-#define sv_set_undef(a) Perl_sv_set_undef(aTHX_ a)
-#define sv_setiv(a,b) Perl_sv_setiv(aTHX_ a,b)
-#define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b)
-#define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b)
-#define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b)
-#define sv_setpv(a,b) Perl_sv_setpv(aTHX_ a,b)
-#define sv_setpv_bufsize(a,b,c) Perl_sv_setpv_bufsize(aTHX_ a,b,c)
-#define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define sv_setpvf Perl_sv_setpvf
-#define sv_setpvf_mg Perl_sv_setpvf_mg
-#endif
-#ifndef NO_MATHOMS
-#define sv_setpviv(a,b) Perl_sv_setpviv(aTHX_ a,b)
-#endif
-#ifndef NO_MATHOMS
-#define sv_setpviv_mg(a,b) Perl_sv_setpviv_mg(aTHX_ a,b)
-#endif
-#define sv_setpvn(a,b,c) Perl_sv_setpvn(aTHX_ a,b,c)
-#define sv_setpvn_mg(a,b,c) Perl_sv_setpvn_mg(aTHX_ a,b,c)
-#define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c)
-#define sv_setref_nv(a,b,c) Perl_sv_setref_nv(aTHX_ a,b,c)
-#define sv_setref_pv(a,b,c) Perl_sv_setref_pv(aTHX_ a,b,c)
-#define sv_setref_pvn(a,b,c,d) Perl_sv_setref_pvn(aTHX_ a,b,c,d)
-#define sv_setref_uv(a,b,c) Perl_sv_setref_uv(aTHX_ a,b,c)
-#define sv_setsv_flags(a,b,c) Perl_sv_setsv_flags(aTHX_ a,b,c)
-#define sv_setsv_mg(a,b) Perl_sv_setsv_mg(aTHX_ a,b)
-#define sv_setuv(a,b) Perl_sv_setuv(aTHX_ a,b)
-#define sv_setuv_mg(a,b) Perl_sv_setuv_mg(aTHX_ a,b)
-#define sv_string_from_errnum(a,b) Perl_sv_string_from_errnum(aTHX_ a,b)
-#define sv_tainted(a) Perl_sv_tainted(aTHX_ a)
-#define sv_true(a) Perl_sv_true(aTHX_ a)
-#define sv_uni_display(a,b,c,d) Perl_sv_uni_display(aTHX_ a,b,c,d)
-#define sv_unmagic(a,b) Perl_sv_unmagic(aTHX_ a,b)
-#define sv_unmagicext(a,b,c) Perl_sv_unmagicext(aTHX_ a,b,c)
-#define sv_unref_flags(a,b) Perl_sv_unref_flags(aTHX_ a,b)
-#define sv_untaint(a) Perl_sv_untaint(aTHX_ a)
-#define sv_upgrade(a,b) Perl_sv_upgrade(aTHX_ a,b)
-#define sv_usepvn_flags(a,b,c,d) Perl_sv_usepvn_flags(aTHX_ a,b,c,d)
-#define sv_utf8_decode(a) Perl_sv_utf8_decode(aTHX_ a)
-#define sv_utf8_downgrade_flags(a,b,c) Perl_sv_utf8_downgrade_flags(aTHX_ a,b,c)
-#define sv_utf8_encode(a) Perl_sv_utf8_encode(aTHX_ a)
-#define sv_utf8_upgrade_flags_grow(a,b,c) Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define sv_uv(a) Perl_sv_uv(aTHX_ a)
-#endif
-#define sv_vcatpvf(a,b,c) Perl_sv_vcatpvf(aTHX_ a,b,c)
-#define sv_vcatpvf_mg(a,b,c) Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
-#define sv_vcatpvfn(a,b,c,d,e,f,g) Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g)
-#define sv_vcatpvfn_flags(a,b,c,d,e,f,g,h) Perl_sv_vcatpvfn_flags(aTHX_ a,b,c,d,e,f,g,h)
-#define sv_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c)
-#define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
-#define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
-#define switch_to_global_locale Perl_switch_to_global_locale
-#define sync_locale Perl_sync_locale
-#define taint_env() Perl_taint_env(aTHX)
-#define taint_proper(a,b) Perl_taint_proper(aTHX_ a,b)
-#define thread_locale_init Perl_thread_locale_init
-#define thread_locale_term Perl_thread_locale_term
-#define to_uni_lower(a,b,c) Perl_to_uni_lower(aTHX_ a,b,c)
-#define to_uni_title(a,b,c) Perl_to_uni_title(aTHX_ a,b,c)
-#define to_uni_upper(a,b,c) Perl_to_uni_upper(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define unpack_str(a,b,c,d,e,f,g,h) Perl_unpack_str(aTHX_ a,b,c,d,e,f,g,h)
-#endif
-#define unpackstring(a,b,c,d,e) Perl_unpackstring(aTHX_ a,b,c,d,e)
-#define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c)
-#define upg_version(a,b) Perl_upg_version(aTHX_ a,b)
-#define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b)
-#define utf8_hop Perl_utf8_hop
-#define utf8_hop_back Perl_utf8_hop_back
-#define utf8_hop_forward Perl_utf8_hop_forward
-#define utf8_hop_safe Perl_utf8_hop_safe
-#define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b)
-#define utf8_to_bytes(a,b) Perl_utf8_to_bytes(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b)
-#endif
-#define utf8_to_uvchr_buf_helper(a,b,c) Perl_utf8_to_uvchr_buf_helper(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b)
-#endif
-#define utf8_to_uvuni_buf(a,b,c) Perl_utf8_to_uvuni_buf(aTHX_ a,b,c)
-#define utf8n_to_uvchr_msgs Perl_utf8n_to_uvchr_msgs
-#ifndef NO_MATHOMS
-#define utf8n_to_uvuni(a,b,c,d) Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
-#endif
-#define uvoffuni_to_utf8_flags_msgs(a,b,c,d) Perl_uvoffuni_to_utf8_flags_msgs(aTHX_ a,b,c,d)
-#define uvuni_to_utf8(a,b) Perl_uvuni_to_utf8(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define uvuni_to_utf8_flags(a,b,c) Perl_uvuni_to_utf8_flags(aTHX_ a,b,c)
-#endif
-#define valid_utf8_to_uvchr Perl_valid_utf8_to_uvchr
-#ifndef NO_MATHOMS
-#define valid_utf8_to_uvuni(a,b) Perl_valid_utf8_to_uvuni(aTHX_ a,b)
-#endif
-#define vcmp(a,b) Perl_vcmp(aTHX_ a,b)
-#define vcroak(a,b) Perl_vcroak(aTHX_ a,b)
-#define vdeb(a,b) Perl_vdeb(aTHX_ a,b)
-#define vform(a,b) Perl_vform(aTHX_ a,b)
-#define vload_module(a,b,c,d) Perl_vload_module(aTHX_ a,b,c,d)
-#define vmess(a,b) Perl_vmess(aTHX_ a,b)
-#define vnewSVpvf(a,b) Perl_vnewSVpvf(aTHX_ a,b)
-#define vnormal(a) Perl_vnormal(aTHX_ a)
-#define vnumify(a) Perl_vnumify(aTHX_ a)
-#define vstringify(a) Perl_vstringify(aTHX_ a)
-#define vverify(a) Perl_vverify(aTHX_ a)
-#define vwarn(a,b) Perl_vwarn(aTHX_ a,b)
-#define vwarner(a,b,c) Perl_vwarner(aTHX_ a,b,c)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define warn Perl_warn
-#endif
-#define warn_sv(a) Perl_warn_sv(aTHX_ a)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define warner Perl_warner
-#endif
-#define whichsig_pv(a) Perl_whichsig_pv(aTHX_ a)
-#define whichsig_pvn(a,b) Perl_whichsig_pvn(aTHX_ a,b)
-#define whichsig_sv(a) Perl_whichsig_sv(aTHX_ a)
-#define wrap_keyword_plugin(a,b) Perl_wrap_keyword_plugin(aTHX_ a,b)
-#define wrap_op_checker(a,b,c) Perl_wrap_op_checker(aTHX_ a,b,c)
-#if !(defined(PERL_USE_3ARG_SIGHANDLER))
-#define csighandler Perl_csighandler
-#endif
-#if !defined(EBCDIC)
-#define variant_byte_number Perl_variant_byte_number
-#endif
-#if !defined(HAS_STRLCAT)
-#define my_strlcat Perl_my_strlcat
-#endif
-#if !defined(HAS_STRLCPY)
-#define my_strlcpy Perl_my_strlcpy
-#endif
-#if !defined(HAS_STRNLEN)
-#define my_strnlen Perl_my_strnlen
-#endif
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-#define my_chsize(a,b) Perl_my_chsize(aTHX_ a,b)
-#endif
-#if !defined(PERL_IMPLICIT_SYS)
-#define my_pclose(a) Perl_my_pclose(aTHX_ a)
-#define my_popen(a,b) Perl_my_popen(aTHX_ a,b)
-#endif
-#if !defined(PERL_NO_INLINE_FUNCTIONS)
-#define cx_popblock(a) Perl_cx_popblock(aTHX_ a)
-#define cx_popeval(a) Perl_cx_popeval(aTHX_ a)
-#define cx_popformat(a) Perl_cx_popformat(aTHX_ a)
-#define cx_popgiven(a) Perl_cx_popgiven(aTHX_ a)
-#define cx_poploop(a) Perl_cx_poploop(aTHX_ a)
-#define cx_popsub(a) Perl_cx_popsub(aTHX_ a)
-#define cx_popsub_args(a) Perl_cx_popsub_args(aTHX_ a)
-#define cx_popsub_common(a) Perl_cx_popsub_common(aTHX_ a)
-#define cx_popwhen(a) Perl_cx_popwhen(aTHX_ a)
-#define cx_pushblock(a,b,c,d) Perl_cx_pushblock(aTHX_ a,b,c,d)
-#define cx_pusheval(a,b,c) Perl_cx_pusheval(aTHX_ a,b,c)
-#define cx_pushformat(a,b,c,d) Perl_cx_pushformat(aTHX_ a,b,c,d)
-#define cx_pushgiven(a,b) Perl_cx_pushgiven(aTHX_ a,b)
-#define cx_pushloop_for(a,b,c) Perl_cx_pushloop_for(aTHX_ a,b,c)
-#define cx_pushloop_plain(a) Perl_cx_pushloop_plain(aTHX_ a)
-#define cx_pushsub(a,b,c,d) Perl_cx_pushsub(aTHX_ a,b,c,d)
-#define cx_pushtry(a,b) Perl_cx_pushtry(aTHX_ a,b)
-#define cx_pushwhen(a) Perl_cx_pushwhen(aTHX_ a)
-#define cx_topblock(a) Perl_cx_topblock(aTHX_ a)
-#define gimme_V() Perl_gimme_V(aTHX)
-#endif
-#if defined(DEBUGGING)
-#define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b)
-#define pad_sv(a) Perl_pad_sv(aTHX_ a)
-#endif
-#if defined(HAVE_INTERP_INTERN)
-#define sys_intern_clear() Perl_sys_intern_clear(aTHX)
-#define sys_intern_init() Perl_sys_intern_init(aTHX)
-# if defined(USE_ITHREADS)
-#define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b)
-# endif
-#endif
-#if defined(MYMALLOC)
-#define dump_mstats(a) Perl_dump_mstats(aTHX_ a)
-#define get_mstats(a,b,c) Perl_get_mstats(aTHX_ a,b,c)
-#endif
-#if defined(PERL_IMPLICIT_CONTEXT)
-#define croak_nocontext Perl_croak_nocontext
-#define deb_nocontext Perl_deb_nocontext
-#define die_nocontext Perl_die_nocontext
-#define form_nocontext Perl_form_nocontext
-#ifndef NO_MATHOMS
-#define fprintf_nocontext Perl_fprintf_nocontext
-#endif
-#define load_module_nocontext Perl_load_module_nocontext
-#define mess_nocontext Perl_mess_nocontext
-#define newSVpvf_nocontext Perl_newSVpvf_nocontext
-#ifndef NO_MATHOMS
-#define printf_nocontext Perl_printf_nocontext
-#endif
-#define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext
-#define sv_catpvf_nocontext Perl_sv_catpvf_nocontext
-#define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext
-#define sv_setpvf_nocontext Perl_sv_setpvf_nocontext
-#define warn_nocontext Perl_warn_nocontext
-#define warner_nocontext Perl_warner_nocontext
-#endif
-#if defined(PERL_USE_3ARG_SIGHANDLER)
-#define csighandler Perl_csighandler
-#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)
-#define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d)
-#define dirp_dup(a,b) Perl_dirp_dup(aTHX_ a,b)
-#define fp_dup(a,b,c) Perl_fp_dup(aTHX_ a,b,c)
-#define gp_dup(a,b) Perl_gp_dup(aTHX_ a,b)
-#define he_dup(a,b,c) Perl_he_dup(aTHX_ a,b,c)
-#define hek_dup(a,b) Perl_hek_dup(aTHX_ a,b)
-#define mg_dup(a,b) Perl_mg_dup(aTHX_ a,b)
-#define newPADOP(a,b,c) Perl_newPADOP(aTHX_ a,b,c)
-#define parser_dup(a,b) Perl_parser_dup(aTHX_ a,b)
-#define re_dup_guts(a,b,c) Perl_re_dup_guts(aTHX_ a,b,c)
-#define regdupe_internal(a,b) Perl_regdupe_internal(aTHX_ a,b)
-#define rvpv_dup(a,b,c) Perl_rvpv_dup(aTHX_ a,b,c)
-#define si_dup(a,b) Perl_si_dup(aTHX_ a,b)
-#define ss_dup(a,b) Perl_ss_dup(aTHX_ a,b)
-#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_IN_MG_C) || defined (PERL_EXT_POSIX) || defined (PERL_EXT_LANGINFO))
-#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
-#if defined(USE_PERLIO)
-#define PerlIO_clearerr(a) Perl_PerlIO_clearerr(aTHX_ a)
-#define PerlIO_close(a) Perl_PerlIO_close(aTHX_ a)
-#define PerlIO_eof(a) Perl_PerlIO_eof(aTHX_ a)
-#define PerlIO_error(a) Perl_PerlIO_error(aTHX_ a)
-#define PerlIO_fileno(a) Perl_PerlIO_fileno(aTHX_ a)
-#define PerlIO_fill(a) Perl_PerlIO_fill(aTHX_ a)
-#define PerlIO_flush(a) Perl_PerlIO_flush(aTHX_ a)
-#define PerlIO_get_base(a) Perl_PerlIO_get_base(aTHX_ a)
-#define PerlIO_get_bufsiz(a) Perl_PerlIO_get_bufsiz(aTHX_ a)
-#define PerlIO_get_cnt(a) Perl_PerlIO_get_cnt(aTHX_ a)
-#define PerlIO_get_ptr(a) Perl_PerlIO_get_ptr(aTHX_ a)
-#define PerlIO_read(a,b,c) Perl_PerlIO_read(aTHX_ a,b,c)
-#define PerlIO_seek(a,b,c) Perl_PerlIO_seek(aTHX_ a,b,c)
-#define PerlIO_set_cnt(a,b) Perl_PerlIO_set_cnt(aTHX_ a,b)
-#define PerlIO_set_ptrcnt(a,b,c) Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c)
-#define PerlIO_setlinebuf(a) Perl_PerlIO_setlinebuf(aTHX_ a)
-#define PerlIO_stderr() Perl_PerlIO_stderr(aTHX)
-#define PerlIO_stdin() Perl_PerlIO_stdin(aTHX)
-#define PerlIO_stdout() Perl_PerlIO_stdout(aTHX)
-#define PerlIO_tell(a) Perl_PerlIO_tell(aTHX_ a)
-#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(WIN32) || defined(VMS)
-#define do_aspawn(a,b,c) Perl_do_aspawn(aTHX_ a,b,c)
-#define do_spawn(a) Perl_do_spawn(aTHX_ a)
-#define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a)
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define _byte_dump_string(a,b,c) Perl__byte_dump_string(aTHX_ a,b,c)
-#define _inverse_folds(a,b,c) Perl__inverse_folds(aTHX_ a,b,c)
-#define append_utf8_from_native_byte Perl_append_utf8_from_native_byte
-#define av_reify(a) Perl_av_reify(aTHX_ a)
-#define cntrl_to_mnemonic Perl_cntrl_to_mnemonic
-#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 delimcpy_no_escape Perl_delimcpy_no_escape
-#define do_uniprop_match Perl_do_uniprop_match
-#define get_and_check_backslash_N_name(a,b,c,d) Perl_get_and_check_backslash_N_name(aTHX_ a,b,c,d)
-#define get_deprecated_property_msg Perl_get_deprecated_property_msg
-#define get_prop_definition(a) Perl_get_prop_definition(aTHX_ a)
-#define get_prop_values Perl_get_prop_values
-#define grok_atoUV Perl_grok_atoUV
-#define load_charnames(a,b,c,d) Perl_load_charnames(aTHX_ a,b,c,d)
-#define mg_find_mglob(a) Perl_mg_find_mglob(aTHX_ a)
-#define multiconcat_stringify(a) Perl_multiconcat_stringify(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)
-#define reg_named_buff_iter(a,b,c) Perl_reg_named_buff_iter(aTHX_ a,b,c)
-#define reg_numbered_buff_fetch(a,b,c) Perl_reg_numbered_buff_fetch(aTHX_ a,b,c)
-#define reg_numbered_buff_length(a,b,c) Perl_reg_numbered_buff_length(aTHX_ a,b,c)
-#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 report_uninit(a) Perl_report_uninit(aTHX_ a)
-#define scan_str(a,b,c,d,e) Perl_scan_str(aTHX_ a,b,c,d,e)
-#define scan_word(a,b,c,d,e) Perl_scan_word(aTHX_ a,b,c,d,e)
-#define skipspace_flags(a,b) Perl_skipspace_flags(aTHX_ a,b)
-#define sv_magicext_mglob(a) Perl_sv_magicext_mglob(aTHX_ a)
-#define sv_only_taint_gmagic Perl_sv_only_taint_gmagic
-#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 validate_proto(a,b,c,d) Perl_validate_proto(aTHX_ a,b,c,d)
-#define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a)
-#define yylex() Perl_yylex(aTHX)
-# if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
-#define my_memrchr S_my_memrchr
-# endif
-# if !(!defined(PERL_EXT_RE_BUILD))
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define get_re_gclass_nonbitmap_data(a,b,c,d,e,f) Perl_get_re_gclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
-# endif
-# endif
-# if !defined(PERL_EXT_RE_BUILD)
-# 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 S__invlist_array_init
-#define get_invlist_previous_index_addr S_get_invlist_previous_index_addr
-#define invlist_clear(a) S_invlist_clear(aTHX_ a)
-#define invlist_max S_invlist_max
-#define invlist_previous_index S_invlist_previous_index
-#define invlist_replace_list_destroys_src(a,b) S_invlist_replace_list_destroys_src(aTHX_ a,b)
-#define invlist_set_previous_index S_invlist_set_previous_index
-#define invlist_trim S_invlist_trim
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define get_regclass_nonbitmap_data(a,b,c,d,e,f) Perl_get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
-# 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_charclass_bitmap_innards(a,b,c,d,e,f,g) S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e,f,g)
-#define put_charclass_bitmap_innards_common(a,b,c,d,e,f) S_put_charclass_bitmap_innards_common(aTHX_ a,b,c,d,e,f)
-#define put_charclass_bitmap_innards_invlist(a,b) S_put_charclass_bitmap_innards_invlist(aTHX_ a,b)
-#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)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define re_indentf Perl_re_indentf
-#endif
-#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)
-# endif
-# if defined(PERL_IN_REGEXEC_C)
-#define debug_start_match(a,b,c,d,e) S_debug_start_match(aTHX_ a,b,c,d,e)
-#define dump_exec_pos(a,b,c,d,e,f,g) S_dump_exec_pos(aTHX_ a,b,c,d,e,f,g)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define re_exec_indentf Perl_re_exec_indentf
-#endif
-# endif
-# endif
-# if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
-# if defined(PERL_IN_REGCOMP_C)
-#define dump_regex_sets_structures(a,b,c,d) S_dump_regex_sets_structures(aTHX_ a,b,c,d)
-# endif
-# endif
-# if defined(PERL_ANY_COW)
-#define sv_setsv_cow(a,b) Perl_sv_setsv_cow(aTHX_ a,b)
-# endif
-# if defined(PERL_CORE) || defined (PERL_EXT)
-#define is_utf8_non_invariant_string Perl_is_utf8_non_invariant_string
-#define sv_or_pv_pos_u2b(a,b,c,d) S_sv_or_pv_pos_u2b(aTHX_ a,b,c,d)
-# endif
-# if defined(PERL_CORE) || defined(PERL_EXT)
-#define isSCRIPT_RUN(a,b,c) Perl_isSCRIPT_RUN(aTHX_ a,b,c)
-#define variant_under_utf8_count S_variant_under_utf8_count
-# endif
-# if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
-#define gv_stashsvpvn_cached(a,b,c,d) Perl_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
-# endif
-# if defined(PERL_IN_REGCOMP_C)
-#define add_above_Latin1_folds(a,b,c) S_add_above_Latin1_folds(aTHX_ a,b,c)
-#define add_data S_add_data
-#define add_multi_match(a,b,c) S_add_multi_match(aTHX_ a,b,c)
-#define change_engine_size(a,b) S_change_engine_size(aTHX_ a,b)
-#define compile_wildcard(a,b,c) S_compile_wildcard(aTHX_ a,b,c)
-#define compute_EXACTish S_compute_EXACTish
-#define construct_ahocorasick_from_trie(a,b,c) S_construct_ahocorasick_from_trie(aTHX_ a,b,c)
-#define edit_distance S_edit_distance
-#define execute_wildcard(a,b,c,d,e,f,g) S_execute_wildcard(aTHX_ a,b,c,d,e,f,g)
-#define find_first_differing_byte_pos S_find_first_differing_byte_pos
-#define get_ANYOFM_contents(a) S_get_ANYOFM_contents(aTHX_ a)
-#define get_ANYOF_cp_list_for_ssc(a,b) S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
-#define get_quantifier_value(a,b,c) S_get_quantifier_value(aTHX_ a,b,c)
-#define grok_bslash_N(a,b,c,d,e,f,g) S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
-#define handle_named_backref(a,b,c,d) S_handle_named_backref(aTHX_ a,b,c,d)
-#define handle_names_wildcard(a,b,c,d) S_handle_names_wildcard(aTHX_ a,b,c,d)
-#define handle_possible_posix(a,b,c,d,e) S_handle_possible_posix(aTHX_ a,b,c,d,e)
-#define handle_regex_sets(a,b,c,d,e) S_handle_regex_sets(aTHX_ a,b,c,d,e)
-#define handle_user_defined_property(a,b,c,d,e,f,g,h,i,j) S_handle_user_defined_property(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#define invlist_contents(a,b) S_invlist_contents(aTHX_ a,b)
-#define invlist_is_iterating S_invlist_is_iterating
-#define invlist_lowest S_invlist_lowest
-#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_exactf_invlist(a,b) S_make_exactf_invlist(aTHX_ a,b)
-#define make_trie(a,b,c,d,e,f,g,h) S_make_trie(aTHX_ a,b,c,d,e,f,g,h)
-#define nextchar(a) S_nextchar(aTHX_ a)
-#define output_posix_warnings(a,b) S_output_posix_warnings(aTHX_ a,b)
-#define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a)
-#define parse_uniprop_string(a,b,c,d,e,f,g,h,i,j) S_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#define populate_ANYOF_from_invlist(a,b) S_populate_ANYOF_from_invlist(aTHX_ a,b)
-#define rck_elide_nothing(a) S_rck_elide_nothing(aTHX_ a)
-#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_scan_name(a,b) S_reg_scan_name(aTHX_ a,b)
-#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,h,i) S_regclass(aTHX_ a,b,c,d,e,f,g,h,i)
-#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 regpiece(a,b,c) S_regpiece(aTHX_ a,b,c)
-#define regpnode(a,b,c) S_regpnode(aTHX_ a,b,c)
-#define regtail(a,b,c,d) S_regtail(aTHX_ a,b,c,d)
-#define scan_commit(a,b,c,d) S_scan_commit(aTHX_ a,b,c,d)
-#define set_ANYOF_arg(a,b,c,d,e) S_set_ANYOF_arg(aTHX_ a,b,c,d,e)
-#define set_regex_pv(a,b) S_set_regex_pv(aTHX_ a,b)
-#define skip_to_be_ignored_text(a,b,c) S_skip_to_be_ignored_text(aTHX_ a,b,c)
-#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 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 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,l) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_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_DOOP_C) || defined(PERL_IN_OP_C)
-#define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
-#define invlist_extend(a,b) S_invlist_extend(aTHX_ a,b)
-#define invlist_highest S_invlist_highest
-#define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_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_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)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
-#define form_alien_digit_msg(a,b,c,d,e,f) Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
-#define grok_bslash_c(a,b,c,d) Perl_grok_bslash_c(aTHX_ a,b,c,d)
-#define grok_bslash_o(a,b,c,d,e,f,g,h) Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
-#define grok_bslash_x(a,b,c,d,e,f,g,h) Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
-#define form_cp_too_large_msg(a,b,c,d) Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-#define get_invlist_iter_addr S_get_invlist_iter_addr
-#define invlist_iterfinish S_invlist_iterfinish
-#define invlist_iterinit S_invlist_iterinit
-#define invlist_iternext S_invlist_iternext
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-#define _invlistEQ(a,b,c) Perl__invlistEQ(aTHX_ a,b,c)
-#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-#define get_regex_charset_name S_get_regex_charset_name
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define re_printf Perl_re_printf
-#endif
-#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_PP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_DOOP_C)
-#define _invlist_contains_cp S__invlist_contains_cp
-#define _invlist_len S__invlist_len
-#define _invlist_search Perl__invlist_search
-#define get_invlist_offset_addr S_get_invlist_offset_addr
-#define invlist_array S_invlist_array
-#define is_invlist S_is_invlist
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
-#define is_grapheme(a,b,c,d) Perl_is_grapheme(aTHX_ a,b,c,d)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-#define _to_fold_latin1 Perl__to_fold_latin1
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-#define invlist_clone(a,b) Perl_invlist_clone(aTHX_ a,b)
-# endif
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#define regcurly Perl_regcurly
-# endif
-# if defined(PERL_IN_REGEXEC_C)
-#define advance_one_LB(a,b,c) S_advance_one_LB(aTHX_ a,b,c)
-#define advance_one_SB(a,b,c) S_advance_one_SB(aTHX_ a,b,c)
-#define advance_one_WB(a,b,c,d) S_advance_one_WB(aTHX_ a,b,c,d)
-#define backup_one_GCB(a,b,c) S_backup_one_GCB(aTHX_ a,b,c)
-#define backup_one_LB(a,b,c) S_backup_one_LB(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 find_next_masked S_find_next_masked
-#define find_span_end S_find_span_end
-#define find_span_end_mask S_find_span_end_mask
-#define foldEQ_latin1_s2_folded S_foldEQ_latin1_s2_folded
-#define isFOO_lc(a,b) S_isFOO_lc(aTHX_ a,b)
-#define isFOO_utf8_lc(a,b,c) S_isFOO_utf8_lc(aTHX_ a,b,c)
-#define isGCB(a,b,c,d,e) S_isGCB(aTHX_ a,b,c,d,e)
-#define isLB(a,b,c,d,e,f) S_isLB(aTHX_ a,b,c,d,e,f)
-#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 regcp_restore(a,b,c) S_regcp_restore(aTHX_ a,b,c _aDEPTH)
-#define regcppop(a,b) S_regcppop(aTHX_ a,b _aDEPTH)
-#define regcppush(a,b,c) S_regcppush(aTHX_ a,b,c _aDEPTH)
-#define reghop3 S_reghop3
-#define reghop4 S_reghop4
-#define reghopmaybe3 S_reghopmaybe3
-#define reginclass(a,b,c,d,e) S_reginclass(aTHX_ a,b,c,d,e)
-#define regmatch(a,b,c) S_regmatch(aTHX_ a,b,c)
-#define regrepeat(a,b,c,d,e,f) S_regrepeat(aTHX_ a,b,c,d,e,f _aDEPTH)
-#define regtry(a,b) S_regtry(aTHX_ a,b)
-#define to_byte_substr(a) S_to_byte_substr(aTHX_ a)
-#define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
-# endif
-#endif
-#ifdef PERL_CORE
-#define PerlLIO_dup2_cloexec(a,b) Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
-#define PerlLIO_dup_cloexec(a) Perl_PerlLIO_dup_cloexec(aTHX_ a)
-#define PerlLIO_open3_cloexec(a,b,c) Perl_PerlLIO_open3_cloexec(aTHX_ a,b,c)
-#define PerlLIO_open_cloexec(a,b) Perl_PerlLIO_open_cloexec(aTHX_ a,b)
-#define Slab_Alloc(a) Perl_Slab_Alloc(aTHX_ a)
-#define Slab_Free(a) Perl_Slab_Free(aTHX_ a)
-#define _is_in_locale_category(a,b) Perl__is_in_locale_category(aTHX_ a,b)
-#define _warn_problematic_locale Perl__warn_problematic_locale
-#define abort_execution(a,b) Perl_abort_execution(aTHX_ a,b)
-#define alloc_LOGOP(a,b,c) Perl_alloc_LOGOP(aTHX_ a,b,c)
-#define allocmy(a,b,c) Perl_allocmy(aTHX_ a,b,c)
-#define amagic_is_enabled(a) Perl_amagic_is_enabled(aTHX_ a)
-#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 av_nonelem(a,b) Perl_av_nonelem(aTHX_ a,b)
-#define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c)
-#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)
-#define cando(a,b,c) Perl_cando(aTHX_ a,b,c)
-#define check_utf8_print(a,b) Perl_check_utf8_print(aTHX_ a,b)
-#define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a)
-#define ck_backtick(a) Perl_ck_backtick(aTHX_ a)
-#define ck_bitop(a) Perl_ck_bitop(aTHX_ a)
-#define ck_cmp(a) Perl_ck_cmp(aTHX_ a)
-#define ck_concat(a) Perl_ck_concat(aTHX_ a)
-#define ck_defined(a) Perl_ck_defined(aTHX_ a)
-#define ck_delete(a) Perl_ck_delete(aTHX_ a)
-#define ck_each(a) Perl_ck_each(aTHX_ a)
-#define ck_eof(a) Perl_ck_eof(aTHX_ a)
-#define ck_eval(a) Perl_ck_eval(aTHX_ a)
-#define ck_exec(a) Perl_ck_exec(aTHX_ a)
-#define ck_exists(a) Perl_ck_exists(aTHX_ a)
-#define ck_ftst(a) Perl_ck_ftst(aTHX_ a)
-#define ck_fun(a) Perl_ck_fun(aTHX_ a)
-#define ck_glob(a) Perl_ck_glob(aTHX_ a)
-#define ck_grep(a) Perl_ck_grep(aTHX_ a)
-#define ck_index(a) Perl_ck_index(aTHX_ a)
-#define ck_isa(a) Perl_ck_isa(aTHX_ a)
-#define ck_join(a) Perl_ck_join(aTHX_ a)
-#define ck_length(a) Perl_ck_length(aTHX_ a)
-#define ck_lfun(a) Perl_ck_lfun(aTHX_ a)
-#define ck_listiob(a) Perl_ck_listiob(aTHX_ a)
-#define ck_match(a) Perl_ck_match(aTHX_ a)
-#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)
-#define ck_rfun(a) Perl_ck_rfun(aTHX_ a)
-#define ck_rvconst(a) Perl_ck_rvconst(aTHX_ a)
-#define ck_sassign(a) Perl_ck_sassign(aTHX_ a)
-#define ck_select(a) Perl_ck_select(aTHX_ a)
-#define ck_shift(a) Perl_ck_shift(aTHX_ a)
-#define ck_smartmatch(a) Perl_ck_smartmatch(aTHX_ a)
-#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 ck_trycatch(a) Perl_ck_trycatch(aTHX_ a)
-#define closest_cop(a,b,c,d) Perl_closest_cop(aTHX_ a,b,c,d)
-#define cmpchain_extend(a,b,c) Perl_cmpchain_extend(aTHX_ a,b,c)
-#define cmpchain_finish(a) Perl_cmpchain_finish(aTHX_ a)
-#define cmpchain_start(a,b,c) Perl_cmpchain_start(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,b) Perl_create_eval_scope(aTHX_ a,b)
-#define croak_caller Perl_croak_caller
-#define croak_no_mem Perl_croak_no_mem
-#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 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)
-#define defelem_target(a,b) Perl_defelem_target(aTHX_ a,b)
-#define delete_eval_scope() Perl_delete_eval_scope(aTHX)
-#define die_unwind(a) Perl_die_unwind(aTHX_ a)
-#define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e)
-#define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d)
-#define do_eof(a) Perl_do_eof(aTHX_ a)
-#define do_ncmp(a,b) Perl_do_ncmp(aTHX_ a,b)
-#define do_open6(a,b,c,d,e,f) Perl_do_open6(aTHX_ a,b,c,d,e,f)
-#define do_open_raw(a,b,c,d,e,f) Perl_do_open_raw(aTHX_ a,b,c,d,e,f)
-#define do_print(a,b) Perl_do_print(aTHX_ a,b)
-#define do_readline() Perl_do_readline(aTHX)
-#define do_seek(a,b,c) Perl_do_seek(aTHX_ a,b,c)
-#define do_sysseek(a,b,c) Perl_do_sysseek(aTHX_ a,b,c)
-#define do_tell(a) Perl_do_tell(aTHX_ a)
-#define do_trans(a) Perl_do_trans(aTHX_ a)
-#define do_vecget(a,b,c) Perl_do_vecget(aTHX_ a,b,c)
-#define do_vecset(a) Perl_do_vecset(aTHX_ a)
-#define do_vop(a,b,c,d) Perl_do_vop(aTHX_ a,b,c,d)
-#define dofile(a,b) Perl_dofile(aTHX_ a,b)
-#define dump_all_perl(a) Perl_dump_all_perl(aTHX_ a)
-#define dump_packsubs_perl(a,b) Perl_dump_packsubs_perl(aTHX_ a,b)
-#define dump_sub_perl(a,b) Perl_dump_sub_perl(aTHX_ a,b)
-#define finalize_optree(a) Perl_finalize_optree(aTHX_ a)
-#define find_lexical_cv(a) Perl_find_lexical_cv(aTHX_ a)
-#define find_runcv_where(a,b,c) Perl_find_runcv_where(aTHX_ a,b,c)
-#define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d)
-#define free_tied_hv_pool() Perl_free_tied_hv_pool(aTHX)
-#define get_hash_seed(a) Perl_get_hash_seed(aTHX_ a)
-#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 hv_pushkv(a,b) Perl_hv_pushkv(aTHX_ a,b)
-#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 init_named_cv(a,b) Perl_init_named_cv(aTHX_ a,b)
-#define init_uniprops() Perl_init_uniprops(aTHX)
-#define invert(a) Perl_invert(aTHX_ a)
-#define invmap_dump(a,b) Perl_invmap_dump(aTHX_ a,b)
-#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)
-#define localize(a,b) Perl_localize(aTHX_ a,b)
-#define magic_clear_all_env(a,b) Perl_magic_clear_all_env(aTHX_ a,b)
-#define magic_cleararylen_p(a,b) Perl_magic_cleararylen_p(aTHX_ a,b)
-#define magic_clearenv(a,b) Perl_magic_clearenv(aTHX_ a,b)
-#define magic_clearhint(a,b) Perl_magic_clearhint(aTHX_ a,b)
-#define magic_clearhints(a,b) Perl_magic_clearhints(aTHX_ a,b)
-#define magic_clearisa(a,b) Perl_magic_clearisa(aTHX_ a,b)
-#define magic_clearpack(a,b) Perl_magic_clearpack(aTHX_ a,b)
-#define magic_clearsig(a,b) Perl_magic_clearsig(aTHX_ a,b)
-#define magic_copycallchecker(a,b,c,d,e) Perl_magic_copycallchecker(aTHX_ a,b,c,d,e)
-#define magic_existspack(a,b) Perl_magic_existspack(aTHX_ a,b)
-#define magic_freearylen_p(a,b) Perl_magic_freearylen_p(aTHX_ a,b)
-#define magic_freemglob(a,b) Perl_magic_freemglob(aTHX_ a,b)
-#define magic_freeovrld(a,b) Perl_magic_freeovrld(aTHX_ a,b)
-#define magic_freeutf8(a,b) Perl_magic_freeutf8(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)
-#define magic_getpos(a,b) Perl_magic_getpos(aTHX_ a,b)
-#define magic_getsig(a,b) Perl_magic_getsig(aTHX_ a,b)
-#define magic_getsubstr(a,b) Perl_magic_getsubstr(aTHX_ a,b)
-#define magic_gettaint(a,b) Perl_magic_gettaint(aTHX_ a,b)
-#define magic_getuvar(a,b) Perl_magic_getuvar(aTHX_ a,b)
-#define magic_getvec(a,b) Perl_magic_getvec(aTHX_ a,b)
-#define magic_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b)
-#define magic_nextpack(a,b,c) Perl_magic_nextpack(aTHX_ a,b,c)
-#define magic_regdata_cnt(a,b) Perl_magic_regdata_cnt(aTHX_ a,b)
-#define magic_regdatum_get(a,b) Perl_magic_regdatum_get(aTHX_ a,b)
-#define magic_scalarpack(a,b) Perl_magic_scalarpack(aTHX_ a,b)
-#define magic_set(a,b) Perl_magic_set(aTHX_ a,b)
-#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_setnonelem(a,b) Perl_magic_setnonelem(aTHX_ a,b)
-#define magic_setpack(a,b) Perl_magic_setpack(aTHX_ a,b)
-#define magic_setpos(a,b) Perl_magic_setpos(aTHX_ a,b)
-#define magic_setregexp(a,b) Perl_magic_setregexp(aTHX_ a,b)
-#define magic_setsig(a,b) Perl_magic_setsig(aTHX_ a,b)
-#define magic_setsubstr(a,b) Perl_magic_setsubstr(aTHX_ a,b)
-#define magic_settaint(a,b) Perl_magic_settaint(aTHX_ a,b)
-#define magic_setutf8(a,b) Perl_magic_setutf8(aTHX_ a,b)
-#define magic_setuvar(a,b) Perl_magic_setuvar(aTHX_ a,b)
-#define magic_setvec(a,b) Perl_magic_setvec(aTHX_ a,b)
-#define magic_sizepack(a,b) Perl_magic_sizepack(aTHX_ a,b)
-#define magic_wipepack(a,b) Perl_magic_wipepack(aTHX_ a,b)
-#define mg_localize(a,b,c) Perl_mg_localize(aTHX_ a,b,c)
-#define mode_from_discipline(a,b) Perl_mode_from_discipline(aTHX_ a,b)
-#define mro_isa_changed_in(a) Perl_mro_isa_changed_in(aTHX_ a)
-#define mro_package_moved(a,b,c,d) Perl_mro_package_moved(aTHX_ a,b,c,d)
-#define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b)
-#define my_clearenv() Perl_my_clearenv(aTHX)
-#define my_lstat_flags(a) Perl_my_lstat_flags(aTHX_ a)
-#define my_stat_flags(a) Perl_my_stat_flags(aTHX_ a)
-#define my_strerror(a) Perl_my_strerror(aTHX_ a)
-#define my_unexec() Perl_my_unexec(aTHX)
-#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,b) Perl_nextargv(aTHX_ a,b)
-#define no_bareword_filehandle(a) Perl_no_bareword_filehandle(aTHX_ a)
-#define noperl_die Perl_noperl_die
-#define notify_parser_that_changed_to_utf8() Perl_notify_parser_that_changed_to_utf8(aTHX)
-#define oopsAV(a) Perl_oopsAV(aTHX_ a)
-#define oopsHV(a) Perl_oopsHV(aTHX_ a)
-#define op_unscope(a) Perl_op_unscope(aTHX_ a)
-#define optimize_optree(a) Perl_optimize_optree(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)
-#define pad_leavemy() Perl_pad_leavemy(aTHX)
-#define pad_push(a,b) Perl_pad_push(aTHX_ a,b)
-#define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b)
-#define padlist_store(a,b,c) Perl_padlist_store(aTHX_ a,b,c)
-#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,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)
-#define refcounted_he_fetch_pvn(a,b,c,d,e) Perl_refcounted_he_fetch_pvn(aTHX_ a,b,c,d,e)
-#define refcounted_he_fetch_sv(a,b,c,d) Perl_refcounted_he_fetch_sv(aTHX_ a,b,c,d)
-#define refcounted_he_free(a) Perl_refcounted_he_free(aTHX_ a)
-#define refcounted_he_inc(a) Perl_refcounted_he_inc(aTHX_ a)
-#define refcounted_he_new_pv(a,b,c,d,e) Perl_refcounted_he_new_pv(aTHX_ a,b,c,d,e)
-#define refcounted_he_new_pvn(a,b,c,d,e,f) Perl_refcounted_he_new_pvn(aTHX_ a,b,c,d,e,f)
-#define refcounted_he_new_sv(a,b,c,d,e) Perl_refcounted_he_new_sv(aTHX_ a,b,c,d,e)
-#define report_evil_fh(a) Perl_report_evil_fh(aTHX_ a)
-#define report_wrongway_fh(a,b) Perl_report_wrongway_fh(aTHX_ a,b)
-#define rpeep(a) Perl_rpeep(aTHX_ a)
-#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_strlen(a) Perl_save_strlen(aTHX_ a)
-#define sawparens(a) Perl_sawparens(aTHX_ a)
-#define scalar(a) Perl_scalar(aTHX_ a)
-#define scalarvoid(a) Perl_scalarvoid(aTHX_ a)
-#define set_caret_X() Perl_set_caret_X(aTHX)
-#define set_numeric_standard() Perl_set_numeric_standard(aTHX)
-#define set_numeric_underlying() Perl_set_numeric_underlying(aTHX)
-#define setfd_cloexec Perl_setfd_cloexec
-#define setfd_cloexec_for_nonsysfd(a) Perl_setfd_cloexec_for_nonsysfd(aTHX_ a)
-#define setfd_cloexec_or_inhexec_by_sysfdness(a) Perl_setfd_cloexec_or_inhexec_by_sysfdness(aTHX_ a)
-#define setfd_inhexec Perl_setfd_inhexec
-#define setfd_inhexec_for_sysfd(a) Perl_setfd_inhexec_for_sysfd(aTHX_ a)
-#define sighandler1 Perl_sighandler1
-#define sighandler3 Perl_sighandler3
-#define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a)
-#define sv_2num(a) Perl_sv_2num(aTHX_ a)
-#define sv_clean_all() Perl_sv_clean_all(aTHX)
-#define sv_clean_objs() Perl_sv_clean_objs(aTHX)
-#define sv_del_backref(a,b) Perl_sv_del_backref(aTHX_ a,b)
-#define sv_free_arenas() Perl_sv_free_arenas(aTHX)
-#define sv_len_utf8_nomg(a) Perl_sv_len_utf8_nomg(aTHX_ a)
-#define sv_resetpvn(a,b,c) Perl_sv_resetpvn(aTHX_ a,b,c)
-#define sv_sethek(a,b) Perl_sv_sethek(aTHX_ a,b)
-#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)
-#define yyparse(a) Perl_yyparse(aTHX_ a)
-#define yyquit() Perl_yyquit(aTHX)
-#define yyunlex() Perl_yyunlex(aTHX)
-# if !(defined(DEBUGGING))
-# if !defined(NV_PRESERVES_UV)
-# if defined(PERL_IN_SV_C)
-#define sv_2iuv_non_preserve(a) S_sv_2iuv_non_preserve(aTHX_ a)
-# endif
-# endif
-# endif
-# if !(defined(HAS_NL_LANGINFO))
-# if defined(PERL_IN_LOCALE_C)
-#define my_nl_langinfo S_my_nl_langinfo
-# endif
-# endif
-# if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
-#define do_exec(a) Perl_do_exec(aTHX_ a)
-# endif
-# if !(defined(PERL_USE_3ARG_SIGHANDLER))
-#define sighandler Perl_sighandler
-# endif
-# if !(defined(_MSC_VER))
-#define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
-# endif
-# if !defined(HAS_GETENV_LEN)
-#define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b)
-# endif
-# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-# if defined(PERL_IN_PP_SYS_C)
-#define dooneliner(a,b) S_dooneliner(aTHX_ a,b)
-# endif
-# endif
-# if !defined(HAS_RENAME)
-#define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b)
-# endif
-# if !defined(NV_PRESERVES_UV)
-# if defined(DEBUGGING)
-# if defined(PERL_IN_SV_C)
-#define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b)
-# endif
-# endif
-# endif
-# if !defined(PERL_DISABLE_PMC)
-# if defined(PERL_IN_PP_CTL_C)
-#define doopen_pm(a) S_doopen_pm(aTHX_ a)
-# endif
-# endif
-# if !defined(PERL_EXT_RE_BUILD)
-# if defined(PERL_IN_REGCOMP_C)
-#define initialize_invlist_guts(a,b) S_initialize_invlist_guts(aTHX_ a,b)
-# endif
-# endif
-# if !defined(PERL_IS_MINIPERL)
-# if defined(PERL_IN_PERL_C)
-#define incpush_if_exists(a,b,c) S_incpush_if_exists(aTHX_ a,b,c)
-# endif
-# endif
-# if !defined(PERL_NO_UTF16_FILTER)
-# if defined(PERL_IN_TOKE_C)
-#define add_utf16_textfilter(a,b) S_add_utf16_textfilter(aTHX_ a,b)
-#define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c)
-# endif
-# endif
-# if !defined(UV_IS_QUAD)
-# if defined(PERL_IN_UTF8_C)
-#define is_utf8_cp_above_31_bits S_is_utf8_cp_above_31_bits
-# endif
-# endif
-# if !defined(WIN32)
-#define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c)
-# endif
-# if 0 /* Not currently used, but may be needed in the future */
-# if defined(PERL_IN_UTF8_C)
-#define warn_on_first_deprecated_use(a,b,c,d,e) S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e)
-# endif
-# endif
-# if defined (HAS_SOCKETPAIR) || (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && defined(AF_INET) && defined(PF_INET))
-#define PerlSock_socketpair_cloexec(a,b,c,d) Perl_PerlSock_socketpair_cloexec(aTHX_ a,b,c,d)
-# 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_LOCALE_C)
-# if defined(USE_LOCALE)
-#define print_bytes_for_locale(a,b,c) S_print_bytes_for_locale(aTHX_ a,b,c)
-#define print_collxfrm_input_and_return(a,b,c,d) S_print_collxfrm_input_and_return(aTHX_ a,b,c,d)
-#define setlocale_debug_string S_setlocale_debug_string
-# endif
-# endif
-# if defined(PERL_IN_PAD_C)
-#define cv_dump(a,b) S_cv_dump(aTHX_ a,b)
-# endif
-# if defined(PERL_IN_SV_C)
-#define del_sv(a) S_del_sv(aTHX_ a)
-# endif
-# if defined(PERL_IN_TOKE_C)
-#define printbuf(a,b) S_printbuf(aTHX_ a,b)
-#define tokereport(a,b) S_tokereport(aTHX_ a,b)
-# endif
-# endif
-# if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
-#define dump_sv_child(a) Perl_dump_sv_child(aTHX_ a)
-# endif
-# if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#define do_ipcctl(a,b,c) Perl_do_ipcctl(aTHX_ a,b,c)
-#define do_ipcget(a,b,c) Perl_do_ipcget(aTHX_ a,b,c)
-#define do_msgrcv(a,b) Perl_do_msgrcv(aTHX_ a,b)
-#define do_msgsnd(a,b) Perl_do_msgsnd(aTHX_ a,b)
-#define do_semop(a,b) Perl_do_semop(aTHX_ a,b)
-#define do_shmio(a,b,c) Perl_do_shmio(aTHX_ a,b,c)
-# endif
-# if defined(HAS_NL_LANGINFO)
-# if defined(PERL_IN_LOCALE_C)
-#define my_nl_langinfo S_my_nl_langinfo
-# endif
-# endif
-# if defined(HAS_PIPE)
-#define PerlProc_pipe_cloexec(a) Perl_PerlProc_pipe_cloexec(aTHX_ a)
-# endif
-# if defined(HAS_SOCKET)
-#define PerlSock_accept_cloexec(a,b,c) Perl_PerlSock_accept_cloexec(aTHX_ a,b,c)
-#define PerlSock_socket_cloexec(a,b,c) Perl_PerlSock_socket_cloexec(aTHX_ a,b,c)
-# endif
-# if defined(MYMALLOC)
-#define malloc_good_size Perl_malloc_good_size
-#define malloced_size Perl_malloced_size
-# endif
-# if defined(PERL_CORE)
-#define opslab_force_free(a) Perl_opslab_force_free(aTHX_ a)
-#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)
-# endif
-# endif
-# if defined(PERL_CR_FILTER)
-# if defined(PERL_IN_TOKE_C)
-#define cr_textfilter(a,b,c) S_cr_textfilter(aTHX_ a,b,c)
-#define strip_return(a) S_strip_return(aTHX_ a)
-# endif
-# endif
-# if defined(PERL_DEBUG_READONLY_COW)
-#define sv_buf_to_ro(a) Perl_sv_buf_to_ro(aTHX_ a)
-# if defined(PERL_IN_SV_C)
-#define sv_buf_to_rw(a) S_sv_buf_to_rw(aTHX_ a)
-# endif
-# endif
-# if defined(PERL_IN_AV_C)
-#define get_aux_mg(a) S_get_aux_mg(aTHX_ a)
-# endif
-# if defined(PERL_IN_DEB_C)
-#define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e)
-# endif
-# if defined(PERL_IN_DOIO_C)
-#define argvout_final(a,b,c) S_argvout_final(aTHX_ a,b,c)
-#define exec_failed(a,b,c) S_exec_failed(aTHX_ a,b,c)
-#define ingroup(a,b) S_ingroup(aTHX_ a,b)
-#define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
-#define openn_setup(a,b,c,d,e,f) S_openn_setup(aTHX_ a,b,c,d,e,f)
-# endif
-# if defined(PERL_IN_DOOP_C)
-#define do_trans_complex(a,b) S_do_trans_complex(aTHX_ a,b)
-#define do_trans_count(a,b) S_do_trans_count(aTHX_ a,b)
-#define do_trans_count_invmap(a,b) S_do_trans_count_invmap(aTHX_ a,b)
-#define do_trans_invmap(a,b) S_do_trans_invmap(aTHX_ a,b)
-#define do_trans_simple(a,b) S_do_trans_simple(aTHX_ a,b)
-# endif
-# if defined(PERL_IN_DUMP_C)
-#define deb_curcv(a) S_deb_curcv(aTHX_ a)
-#define debprof(a) S_debprof(aTHX_ a)
-#define pm_description(a) S_pm_description(aTHX_ a)
-#define sequence_num(a) S_sequence_num(aTHX_ a)
-# 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) S_gv_magicalize(aTHX_ a,b,c,d,e)
-#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 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)
-# endif
-# if defined(PERL_IN_HV_C)
-#define clear_placeholders(a,b) S_clear_placeholders(aTHX_ a,b)
-#define hsplit(a,b,c) S_hsplit(aTHX_ a,b,c)
-#define hv_auxinit(a) S_hv_auxinit(aTHX_ a)
-#define hv_auxinit_internal S_hv_auxinit_internal
-#define hv_delete_common(a,b,c,d,e,f,g) S_hv_delete_common(aTHX_ a,b,c,d,e,f,g)
-#define hv_free_ent_ret(a,b) S_hv_free_ent_ret(aTHX_ a,b)
-#define hv_free_entries(a) S_hv_free_entries(aTHX_ a)
-#define hv_magic_check S_hv_magic_check
-#define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d)
-#define new_he() S_new_he(aTHX)
-#define ptr_hash S_ptr_hash
-#define refcounted_he_value(a) S_refcounted_he_value(aTHX_ a)
-#define save_hek_flags S_save_hek_flags
-#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)
-#define save_to_buffer S_save_to_buffer
-# if defined(USE_LOCALE)
-#define category_name S_category_name
-#define new_collate(a) S_new_collate(aTHX_ a)
-#define new_ctype(a) S_new_ctype(aTHX_ a)
-#define new_numeric(a) S_new_numeric(aTHX_ a)
-#define restore_switched_locale(a,b) S_restore_switched_locale(aTHX_ a,b)
-#define set_numeric_radix(a) S_set_numeric_radix(aTHX_ a)
-#define stdize_locale(a) S_stdize_locale(aTHX_ a)
-#define switch_category_locale_to_template(a,b,c) S_switch_category_locale_to_template(aTHX_ a,b,c)
-# if defined(USE_POSIX_2008_LOCALE)
-#define emulate_setlocale S_emulate_setlocale
-# endif
-# if defined(WIN32)
-#define win32_setlocale(a,b) S_win32_setlocale(aTHX_ a,b)
-# endif
-# endif
-# endif
-# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
-# if defined(USE_LOCALE_COLLATE)
-#define _mem_collxfrm(a,b,c,d) Perl__mem_collxfrm(aTHX_ a,b,c,d)
-# endif
-# endif
-# if defined(PERL_IN_MALLOC_C)
-#define adjust_size_and_find_bucket S_adjust_size_and_find_bucket
-# endif
-# if defined(PERL_IN_MG_C)
-#define fixup_errno_string(a) S_fixup_errno_string(aTHX_ a)
-#define magic_methcall1(a,b,c,d,e,f) S_magic_methcall1(aTHX_ a,b,c,d,e,f)
-#define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c)
-#define restore_magic(a) S_restore_magic(aTHX_ a)
-#define save_magic_flags(a,b,c) S_save_magic_flags(aTHX_ a,b,c)
-#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 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 output_non_portable(a) S_output_non_portable(aTHX_ a)
-# endif
-# if defined(PERL_IN_OP_C)
-#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 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,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 inplace_aassign(a) S_inplace_aassign(aTHX_ a)
-#define is_handle_constructor S_is_handle_constructor
-#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,d) S_move_proto_attr(aTHX_ a,b,c,d)
-#define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c)
-#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 op_integerize(a) S_op_integerize(aTHX_ a)
-#define op_std_init(a) S_op_std_init(aTHX_ a)
-#define optimize_op(a) S_optimize_op(aTHX_ a)
-#define pmtrans(a,b,c) S_pmtrans(aTHX_ a,b,c)
-#define process_special_blocks(a,b,c,d) S_process_special_blocks(aTHX_ a,b,c,d)
-#define ref_array_or_hash(a) S_ref_array_or_hash(aTHX_ a)
-#define refkids(a,b) S_refkids(aTHX_ a,b)
-#define scalar_mod_type S_scalar_mod_type
-#define scalarboolean(a) S_scalarboolean(aTHX_ a)
-#define scalarkids(a) S_scalarkids(aTHX_ a)
-#define scalarseq(a) S_scalarseq(aTHX_ a)
-#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_many_arguments_pv(a,b,c) S_too_many_arguments_pv(aTHX_ a,b,c)
-#define traverse_op_tree(a,b) S_traverse_op_tree(aTHX_ a,b)
-# 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)
-# endif
-# if defined(PERL_IN_PAD_C)
-#define pad_alloc_name(a,b,c,d) S_pad_alloc_name(aTHX_ a,b,c,d)
-#define pad_check_dup(a,b,c) S_pad_check_dup(aTHX_ a,b,c)
-#define pad_findlex(a,b,c,d,e,f,g,h,i) S_pad_findlex(aTHX_ a,b,c,d,e,f,g,h,i)
-#define pad_reset() S_pad_reset(aTHX)
-# endif
-# if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-#define PadnameIN_SCOPE S_PadnameIN_SCOPE
-# endif
-# if defined(PERL_IN_PERL_C)
-#define find_beginning(a,b) S_find_beginning(aTHX_ a,b)
-#define forbid_setid(a,b) S_forbid_setid(aTHX_ a,b)
-#define incpush(a,b,c) S_incpush(aTHX_ a,b,c)
-#define incpush_use_sep(a,b,c) S_incpush_use_sep(aTHX_ a,b,c)
-#define init_ids() S_init_ids(aTHX)
-#define init_interp() S_init_interp(aTHX)
-#define init_main_stash() S_init_main_stash(aTHX)
-#define init_perllib() S_init_perllib(aTHX)
-#define init_postdump_symbols(a,b,c) S_init_postdump_symbols(aTHX_ a,b,c)
-#define init_predump_symbols() S_init_predump_symbols(aTHX)
-#define mayberelocate(a,b,c) S_mayberelocate(aTHX_ a,b,c)
-#define minus_v() S_minus_v(aTHX)
-#define my_exit_jump() S_my_exit_jump(aTHX)
-#define nuke_stacks() S_nuke_stacks(aTHX)
-#define open_script(a,b,c) S_open_script(aTHX_ a,b,c)
-#define parse_body(a,b) S_parse_body(aTHX_ a,b)
-#define run_body(a) S_run_body(aTHX_ a)
-#define usage() S_usage(aTHX)
-# endif
-# if defined(PERL_IN_PP_C)
-#define do_chomp(a,b,c) S_do_chomp(aTHX_ a,b,c)
-#define do_delete_local() S_do_delete_local(aTHX)
-#define refto(a) S_refto(aTHX_ a)
-# endif
-# if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-#define lossless_NV_to_IV S_lossless_NV_to_IV
-# endif
-# if defined(PERL_IN_PP_CTL_C)
-#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)
-#define docatch(a) S_docatch(aTHX_ a)
-#define doeval_compile(a,b,c,d) S_doeval_compile(aTHX_ a,b,c,d)
-#define dofindlabel(a,b,c,d,e,f) S_dofindlabel(aTHX_ a,b,c,d,e,f)
-#define doparseform(a) S_doparseform(aTHX_ a)
-#define dopoptoeval(a) S_dopoptoeval(aTHX_ a)
-#define dopoptogivenfor(a) S_dopoptogivenfor(aTHX_ a)
-#define dopoptolabel(a,b,c) S_dopoptolabel(aTHX_ a,b,c)
-#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 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
-#define path_is_searchable S_path_is_searchable
-#define run_user_filter(a,b,c) S_run_user_filter(aTHX_ a,b,c)
-#define rxres_free(a) S_rxres_free(aTHX_ a)
-#define rxres_restore(a,b) S_rxres_restore(aTHX_ a,b)
-#define save_lines(a,b) S_save_lines(aTHX_ a,b)
-# endif
-# if defined(PERL_IN_PP_HOT_C)
-#define do_oddball(a,b) S_do_oddball(aTHX_ a,b)
-#define opmethod_stash(a) S_opmethod_stash(aTHX_ a)
-#define should_we_output_Debug_r(a) S_should_we_output_Debug_r(aTHX_ a)
-# endif
-# if defined(PERL_IN_PP_PACK_C)
-#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)
-#define group_end(a,b,c) S_group_end(aTHX_ a,b,c)
-#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)
-#define sv_exp_grow(a,b) S_sv_exp_grow(aTHX_ a,b)
-#define unpack_rec(a,b,c,d,e) S_unpack_rec(aTHX_ a,b,c,d,e)
-# endif
-# if defined(PERL_IN_PP_SORT_C)
-#define amagic_cmp(a,b) S_amagic_cmp(aTHX_ a,b)
-#define amagic_cmp_desc(a,b) S_amagic_cmp_desc(aTHX_ a,b)
-#define amagic_i_ncmp(a,b) S_amagic_i_ncmp(aTHX_ a,b)
-#define amagic_i_ncmp_desc(a,b) S_amagic_i_ncmp_desc(aTHX_ a,b)
-#define amagic_ncmp(a,b) S_amagic_ncmp(aTHX_ a,b)
-#define amagic_ncmp_desc(a,b) S_amagic_ncmp_desc(aTHX_ a,b)
-#define cmp_desc(a,b) S_cmp_desc(aTHX_ a,b)
-#define sortcv(a,b) S_sortcv(aTHX_ a,b)
-#define sortcv_stacked(a,b) S_sortcv_stacked(aTHX_ a,b)
-#define sortcv_xsub(a,b) S_sortcv_xsub(aTHX_ a,b)
-#define sortsv_flags_impl(a,b,c,d) S_sortsv_flags_impl(aTHX_ a,b,c,d)
-#define sv_i_ncmp(a,b) S_sv_i_ncmp(aTHX_ a,b)
-#define sv_i_ncmp_desc(a,b) S_sv_i_ncmp_desc(aTHX_ a,b)
-#define sv_ncmp(a,b) S_sv_ncmp(aTHX_ a,b)
-#define sv_ncmp_desc(a,b) S_sv_ncmp_desc(aTHX_ a,b)
-# if defined(USE_LOCALE_COLLATE)
-#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
-#define amagic_cmp_locale_desc(a,b) S_amagic_cmp_locale_desc(aTHX_ a,b)
-#define cmp_locale_desc(a,b) S_cmp_locale_desc(aTHX_ a,b)
-# endif
-# endif
-# if defined(PERL_IN_PP_SYS_C)
-#define doform(a,b,c) S_doform(aTHX_ a,b,c)
-#define space_join_names_mortal(a) S_space_join_names_mortal(aTHX_ a)
-# endif
-# if defined(PERL_IN_SCOPE_C)
-#define save_pushptri32ptr(a,b,c,d) S_save_pushptri32ptr(aTHX_ a,b,c,d)
-#define save_scalar_at(a,b) S_save_scalar_at(aTHX_ a,b)
-# endif
-# if defined(PERL_IN_SV_C)
-#define F0convert S_F0convert
-#define anonymise_cv_maybe(a,b) S_anonymise_cv_maybe(aTHX_ a,b)
-#define assert_uft8_cache_coherent(a,b,c,d) S_assert_uft8_cache_coherent(aTHX_ a,b,c,d)
-#define curse(a,b) S_curse(aTHX_ a,b)
-#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,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 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
-#define sv_pos_u2b_midway S_sv_pos_u2b_midway
-#define sv_unglob(a,b) S_sv_unglob(aTHX_ a,b)
-#define uiv_2buf S_uiv_2buf
-#define utf8_mg_len_cache_update(a,b,c) S_utf8_mg_len_cache_update(aTHX_ a,b,c)
-#define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e)
-#define visit(a,b,c) S_visit(aTHX_ a,b,c)
-# if defined(USE_ITHREADS)
-#define sv_dup_common(a,b) S_sv_dup_common(aTHX_ a,b)
-#define sv_dup_inc_multiple(a,b,c,d) S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
-#define unreferenced_to_tmp_stack(a) S_unreferenced_to_tmp_stack(aTHX_ a)
-# endif
-# endif
-# if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-#define varname(a,b,c,d,e,f) Perl_varname(aTHX_ a,b,c,d,e,f)
-# endif
-# if defined(PERL_IN_TOKE_C)
-#define ao(a) S_ao(aTHX_ a)
-#define check_uni() S_check_uni(aTHX)
-#define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c)
-#define filter_gets(a,b) S_filter_gets(aTHX_ a,b)
-#define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b)
-#define force_ident(a,b) S_force_ident(aTHX_ a,b)
-#define force_ident_maybe_lex(a) S_force_ident_maybe_lex(aTHX_ a)
-#define force_next(a) S_force_next(aTHX_ a)
-#define force_strict_version(a) S_force_strict_version(aTHX_ a)
-#define force_version(a,b) S_force_version(aTHX_ a,b)
-#define force_word(a,b,c,d) S_force_word(aTHX_ a,b,c,d)
-#define get_and_check_backslash_N_name_wrapper(a,b) S_get_and_check_backslash_N_name_wrapper(aTHX_ a,b)
-#define incline(a,b) S_incline(aTHX_ a,b)
-#define intuit_method(a,b,c) S_intuit_method(aTHX_ a,b,c)
-#define intuit_more(a,b) S_intuit_more(aTHX_ a,b)
-#define lop(a,b,c) S_lop(aTHX_ a,b,c)
-#define missingterm(a,b) S_missingterm(aTHX_ a,b)
-#define no_op(a,b) S_no_op(aTHX_ a,b)
-#define parse_ident(a,b,c,d,e,f,g) S_parse_ident(aTHX_ a,b,c,d,e,f,g)
-#define pending_ident() S_pending_ident(aTHX)
-#define scan_const(a) S_scan_const(aTHX_ a)
-#define scan_formline(a) S_scan_formline(aTHX_ a)
-#define scan_heredoc(a) S_scan_heredoc(aTHX_ a)
-#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_subst(a) S_scan_subst(aTHX_ a)
-#define scan_trans(a) S_scan_trans(aTHX_ a)
-#define sublex_done() S_sublex_done(aTHX)
-#define sublex_push() S_sublex_push(aTHX)
-#define sublex_start() S_sublex_start(aTHX)
-#define swallow_bom(a) S_swallow_bom(aTHX_ a)
-#define tokenize_use(a,b) S_tokenize_use(aTHX_ a,b)
-#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)
-# endif
-# if defined(PERL_IN_UNIVERSAL_C)
-#define isa_lookup(a,b,c,d,e) S_isa_lookup(aTHX_ a,b,c,d,e)
-#define sv_derived_from_svpvn(a,b,c,d,e) S_sv_derived_from_svpvn(aTHX_ a,b,c,d,e)
-# endif
-# if defined(PERL_IN_UTF8_C)
-#define _to_utf8_case(a,b,c,d,e,f,g,h,i) S__to_utf8_case(aTHX_ a,b,c,d,e,f,g,h,i)
-#define check_locale_boundary_crossing(a,b,c,d) S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
-#define does_utf8_overflow S_does_utf8_overflow
-#define isFF_OVERLONG S_isFF_OVERLONG
-#define is_utf8_common(a,b,c) S_is_utf8_common(aTHX_ a,b,c)
-#define is_utf8_overlong_given_start_byte_ok S_is_utf8_overlong_given_start_byte_ok
-#define new_msg_hv(a,b,c) S_new_msg_hv(aTHX_ a,b,c)
-#define to_lower_latin1 S_to_lower_latin1
-#define turkic_fc(a,b,c,d) S_turkic_fc(aTHX_ a,b,c,d)
-#define turkic_lc(a,b,c,d) S_turkic_lc(aTHX_ a,b,c,d)
-#define turkic_uc(a,b,c,d) S_turkic_uc(aTHX_ a,b,c,d)
-#define unexpected_non_continuation_text(a,b,c,d) S_unexpected_non_continuation_text(aTHX_ a,b,c,d)
-# 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)
-# endif
-# if defined(PERL_IN_UTIL_C)
-#define ckwarn_common(a) S_ckwarn_common(aTHX_ a)
-#define invoke_exception_hook(a,b) S_invoke_exception_hook(aTHX_ a,b)
-#define mess_alloc() S_mess_alloc(aTHX)
-#define with_queued_errors(a) S_with_queued_errors(aTHX_ a)
-# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-#define mem_log_common S_mem_log_common
-# endif
-# endif
-# if defined(PERL_MEM_LOG)
-#define mem_log_alloc Perl_mem_log_alloc
-#define mem_log_free Perl_mem_log_free
-#define mem_log_realloc Perl_mem_log_realloc
-# endif
-# if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-#define pidgone(a,b) S_pidgone(aTHX_ a,b)
-# endif
-# if defined(PERL_USE_3ARG_SIGHANDLER)
-#define sighandler Perl_sighandler
-# 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_COLLATE)
-#define magic_freecollxfrm(a,b) Perl_magic_freecollxfrm(aTHX_ a,b)
-#define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c)
-#endif
-# 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(USE_QUADMATH)
-#define quadmath_format_needed Perl_quadmath_format_needed
-#define quadmath_format_valid Perl_quadmath_format_valid
-# endif
-# if defined(_MSC_VER)
-#define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
-# endif
-#endif
-
-#endif /* #ifndef PERL_NO_SHORT_NAMES */
-
+#if !defined(MULTIPLICITY)
+/* undefined symbols, point them back at the usual ones */
+# define Perl_croak_nocontext Perl_croak
+# define Perl_deb_nocontext Perl_deb
+# define Perl_die_nocontext Perl_die
+# define Perl_form_nocontext Perl_form
+# define Perl_load_module_nocontext Perl_load_module
+# define Perl_mess_nocontext Perl_mess
+# define Perl_newSVpvf_nocontext Perl_newSVpvf
+# define Perl_sv_catpvf_nocontext Perl_sv_catpvf
+# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
+# define Perl_sv_setpvf_nocontext Perl_sv_setpvf
+# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
+# define Perl_warn_nocontext Perl_warn
+# define Perl_warner_nocontext Perl_warner
+#endif /* !defined(MULTIPLICITY) */
+#if !defined(PERL_CORE)
/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
- disable them.
+ * disable them.
*/
-
-#if !defined(PERL_CORE)
-# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr))
-# define sv_setptrref(rv,ptr) sv_setref_iv(rv,NULL,PTR2IV(ptr))
-#endif
-
-#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT)
+# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr))
+# define sv_setptrref(rv,ptr) sv_setref_iv(rv,NULL,PTR2IV(ptr))
+# if !defined(PERL_NOCOMPAT)
/* Compatibility for various misnamed functions. All functions
in the API that begin with "perl_" (not "Perl_") take an explicit
@@ -2057,59 +57,2111 @@
The following are not like that, but since they had a "perl_"
prefix in previous versions, we provide compatibility macros.
*/
-# define perl_atexit(a,b) call_atexit(a,b)
-# define perl_call_argv(a,b,c) call_argv(a,b,c)
-# define perl_call_method(a,b) call_method(a,b)
-# define perl_call_pv(a,b) call_pv(a,b)
-# define perl_call_sv(a,b) call_sv(a,b)
-# define perl_eval_pv(a,b) eval_pv(a,b)
-# define perl_eval_sv(a,b) eval_sv(a,b)
-# define perl_get_av(a,b) get_av(a,b)
-# define perl_get_cv(a,b) get_cv(a,b)
-# define perl_get_hv(a,b) get_hv(a,b)
-# define perl_get_sv(a,b) get_sv(a,b)
-# define perl_init_i18nl10n(a) init_i18nl10n(a)
-# define perl_init_i18nl14n(a) init_i18nl14n(a)
-# define perl_require_pv(a) require_pv(a)
+# define perl_atexit(a,b) call_atexit(a,b)
+# define perl_call_argv(a,b,c) call_argv(a,b,c)
+# define perl_call_method(a,b) call_method(a,b)
+# define perl_call_pv(a,b) call_pv(a,b)
+# define perl_call_sv(a,b) call_sv(a,b)
+# define perl_eval_pv(a,b) eval_pv(a,b)
+# define perl_eval_sv(a,b) eval_sv(a,b)
+# define perl_get_av(a,b) get_av(a,b)
+# define perl_get_cv(a,b) get_cv(a,b)
+# define perl_get_hv(a,b) get_hv(a,b)
+# define perl_get_sv(a,b) get_sv(a,b)
+# define perl_init_i18nl10n(a) init_i18nl10n(a)
+# define perl_require_pv(a) require_pv(a)
/* varargs functions can't be handled with CPP macros. :-(
This provides a set of compatibility functions that don't take
an extra argument but grab the context pointer using the macro
dTHX.
*/
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_SHORT_NAMES)
-# define croak Perl_croak_nocontext
-# define deb Perl_deb_nocontext
-# define die Perl_die_nocontext
-# define form Perl_form_nocontext
-# define load_module Perl_load_module_nocontext
-# define mess Perl_mess_nocontext
-# define newSVpvf Perl_newSVpvf_nocontext
-# define sv_catpvf Perl_sv_catpvf_nocontext
-# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
-# define sv_setpvf Perl_sv_setpvf_nocontext
-# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
-# define warn Perl_warn_nocontext
-# define warner Perl_warner_nocontext
-#endif
-#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
+# if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES)
+# define croak Perl_croak_nocontext
+# define deb Perl_deb_nocontext
+# define die Perl_die_nocontext
+# define form Perl_form_nocontext
+# define load_module Perl_load_module_nocontext
+# define mess Perl_mess_nocontext
+# define newSVpvf Perl_newSVpvf_nocontext
+# define sv_catpvf Perl_sv_catpvf_nocontext
+# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
+# define sv_setpvf Perl_sv_setpvf_nocontext
+# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
+# define warn Perl_warn_nocontext
+# define warner Perl_warner_nocontext
+# endif /* defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES) */
+# endif /* !defined(PERL_NOCOMPAT) */
+#endif /* !defined(PERL_CORE) */
+#if !defined(PERL_NO_SHORT_NAMES)
-#if !defined(PERL_IMPLICIT_CONTEXT)
-/* undefined symbols, point them back at the usual ones */
-# define Perl_croak_nocontext Perl_croak
-# define Perl_deb_nocontext Perl_deb
-# define Perl_die_nocontext Perl_die
-# define Perl_form_nocontext Perl_form
-# define Perl_load_module_nocontext Perl_load_module
-# define Perl_mess_nocontext Perl_mess
-# define Perl_newSVpvf_nocontext Perl_newSVpvf
-# define Perl_sv_catpvf_nocontext Perl_sv_catpvf
-# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
-# define Perl_sv_setpvf_nocontext Perl_sv_setpvf
-# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
-# define Perl_warn_nocontext Perl_warn
-# define Perl_warner_nocontext Perl_warner
-#endif
+/* Hide global symbols */
+
+# define Gv_AMupdate(a,b) Perl_Gv_AMupdate(aTHX_ a,b)
+# define SvAMAGIC_off Perl_SvAMAGIC_off
+# define SvAMAGIC_on Perl_SvAMAGIC_on
+# define SvGETMAGIC(a) Perl_SvGETMAGIC(aTHX_ a)
+# define SvIV(a) Perl_SvIV(aTHX_ a)
+# define SvIV_nomg(a) Perl_SvIV_nomg(aTHX_ a)
+# define SvNV(a) Perl_SvNV(aTHX_ a)
+# define SvNV_nomg(a) Perl_SvNV_nomg(aTHX_ a)
+# define SvPVXtrue(a) Perl_SvPVXtrue(aTHX_ a)
+# define SvREFCNT_dec_ret_NULL(a) Perl_SvREFCNT_dec_ret_NULL(aTHX_ a)
+# define SvTRUE(a) Perl_SvTRUE(aTHX_ a)
+# define SvTRUE_NN(a) Perl_SvTRUE_NN(aTHX_ a)
+# define SvTRUE_common(a,b) Perl_SvTRUE_common(aTHX_ a,b)
+# define SvTRUE_nomg(a) Perl_SvTRUE_nomg(aTHX_ a)
+# define SvUV(a) Perl_SvUV(aTHX_ a)
+# define SvUV_nomg(a) Perl_SvUV_nomg(aTHX_ a)
+# define _force_out_malformed_utf8_message(a,b,c,d) Perl__force_out_malformed_utf8_message(aTHX_ a,b,c,d)
+# 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,c) Perl__is_utf8_FOO(aTHX_ a,b,c)
+# define _is_utf8_perl_idcont(a,b) Perl__is_utf8_perl_idcont(aTHX_ a,b)
+# define _is_utf8_perl_idstart(a,b) Perl__is_utf8_perl_idstart(aTHX_ a,b)
+# 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,e) Perl__to_utf8_fold_flags(aTHX_ a,b,c,d,e)
+# define _to_utf8_lower_flags(a,b,c,d,e) Perl__to_utf8_lower_flags(aTHX_ a,b,c,d,e)
+# define _to_utf8_title_flags(a,b,c,d,e) Perl__to_utf8_title_flags(aTHX_ a,b,c,d,e)
+# define _to_utf8_upper_flags(a,b,c,d,e) Perl__to_utf8_upper_flags(aTHX_ a,b,c,d,e)
+# define _utf8n_to_uvchr_msgs_helper Perl__utf8n_to_uvchr_msgs_helper
+# define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d)
+# define amagic_deref_call(a,b) Perl_amagic_deref_call(aTHX_ a,b)
+# define apply_attrs_string(a,b,c,d) Perl_apply_attrs_string(aTHX_ a,b,c,d)
+# define apply_builtin_cv_attributes(a,b) Perl_apply_builtin_cv_attributes(aTHX_ a,b)
+# define atfork_lock Perl_atfork_lock
+# define atfork_unlock Perl_atfork_unlock
+# define av_clear(a) Perl_av_clear(aTHX_ a)
+# define av_count(a) Perl_av_count(aTHX_ a)
+# define av_delete(a,b,c) Perl_av_delete(aTHX_ a,b,c)
+# define av_dump(a) Perl_av_dump(aTHX_ a)
+# define av_exists(a,b) Perl_av_exists(aTHX_ a,b)
+# define av_extend(a,b) Perl_av_extend(aTHX_ a,b)
+# define av_fetch(a,b,c) Perl_av_fetch(aTHX_ a,b,c)
+# define av_fetch_simple(a,b,c) Perl_av_fetch_simple(aTHX_ a,b,c)
+# define av_fill(a,b) Perl_av_fill(aTHX_ a,b)
+# define av_len(a) Perl_av_len(aTHX_ a)
+# define av_make(a,b) Perl_av_make(aTHX_ a,b)
+# define av_new_alloc(a,b) Perl_av_new_alloc(aTHX_ a,b)
+# define av_pop(a) Perl_av_pop(aTHX_ a)
+# define av_push(a,b) Perl_av_push(aTHX_ a,b)
+# define av_push_simple(a,b) Perl_av_push_simple(aTHX_ a,b)
+# define av_shift(a) Perl_av_shift(aTHX_ a)
+# define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c)
+# define av_store_simple(a,b,c) Perl_av_store_simple(aTHX_ a,b,c)
+# 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_loc Perl_bytes_from_utf8_loc
+# define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b)
+# define call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c)
+# define call_atexit(a,b) Perl_call_atexit(aTHX_ a,b)
+# define call_list(a,b) Perl_call_list(aTHX_ a,b)
+# define call_method(a,b) Perl_call_method(aTHX_ a,b)
+# 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 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)
+# define clear_defarray(a,b) Perl_clear_defarray(aTHX_ a,b)
+# define cop_fetch_label(a,b,c) Perl_cop_fetch_label(aTHX_ a,b,c)
+# define cop_store_label(a,b,c,d) Perl_cop_store_label(aTHX_ a,b,c,d)
+# define croak_memory_wrap Perl_croak_memory_wrap
+# define croak_no_modify Perl_croak_no_modify
+# define croak_sv(a) Perl_croak_sv(aTHX_ a)
+# define croak_xs_usage Perl_croak_xs_usage
+# define csighandler1 Perl_csighandler1
+# define csighandler3 Perl_csighandler3
+# define cv_clone(a) Perl_cv_clone(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_get_call_checker_flags(a,b,c,d,e) Perl_cv_get_call_checker_flags(aTHX_ a,b,c,d,e)
+# 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)
+# define debop(a) Perl_debop(aTHX_ a)
+# define debprofdump() Perl_debprofdump(aTHX)
+# define debstack() Perl_debstack(aTHX)
+# define debstackptrs() Perl_debstackptrs(aTHX)
+# define delimcpy Perl_delimcpy
+# define despatch_signals() Perl_despatch_signals(aTHX)
+# define die_sv(a) Perl_die_sv(aTHX_ a)
+# define do_close(a,b) Perl_do_close(aTHX_ a,b)
+# define do_gv_dump(a,b,c,d) Perl_do_gv_dump(aTHX_ a,b,c,d)
+# define do_gvgv_dump(a,b,c,d) Perl_do_gvgv_dump(aTHX_ a,b,c,d)
+# define do_hv_dump(a,b,c,d) Perl_do_hv_dump(aTHX_ a,b,c,d)
+# define do_join(a,b,c,d) Perl_do_join(aTHX_ a,b,c,d)
+# define do_magic_dump(a,b,c,d,e,f,g) Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g)
+# define do_op_dump(a,b,c) Perl_do_op_dump(aTHX_ a,b,c)
+# define do_openn(a,b,c,d,e,f,g,h,i) Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i)
+# define do_pmop_dump(a,b,c) Perl_do_pmop_dump(aTHX_ a,b,c)
+# define do_sprintf(a,b,c) Perl_do_sprintf(aTHX_ a,b,c)
+# define do_sv_dump(a,b,c,d,e,f,g) Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g)
+# define doing_taint Perl_doing_taint
+# define doref(a,b,c) Perl_doref(aTHX_ a,b,c)
+# define dounwind(a) Perl_dounwind(aTHX_ a)
+# define dowantarray() Perl_dowantarray(aTHX)
+# define dump_all() Perl_dump_all(aTHX)
+# define dump_eval() Perl_dump_eval(aTHX)
+# define dump_form(a) Perl_dump_form(aTHX_ a)
+# define dump_packsubs(a) Perl_dump_packsubs(aTHX_ a)
+# define dump_sub(a) Perl_dump_sub(aTHX_ a)
+# define dump_vindent(a,b,c,d) Perl_dump_vindent(aTHX_ a,b,c,d)
+# define eval_pv(a,b) Perl_eval_pv(aTHX_ a,b)
+# define eval_sv(a,b) Perl_eval_sv(aTHX_ a,b)
+# define fbm_compile(a,b) Perl_fbm_compile(aTHX_ a,b)
+# define fbm_instr(a,b,c,d) Perl_fbm_instr(aTHX_ a,b,c,d)
+# define filter_add(a,b) Perl_filter_add(aTHX_ a,b)
+# define filter_del(a) Perl_filter_del(aTHX_ a)
+# define filter_read(a,b,c) Perl_filter_read(aTHX_ a,b,c)
+# define find_runcv(a) Perl_find_runcv(aTHX_ a)
+# define find_rundefsv() Perl_find_rundefsv(aTHX)
+# define foldEQ(a,b,c) Perl_foldEQ(aTHX_ a,b,c)
+# define foldEQ_latin1(a,b,c) Perl_foldEQ_latin1(aTHX_ a,b,c)
+# define foldEQ_locale(a,b,c) Perl_foldEQ_locale(aTHX_ a,b,c)
+# define foldEQ_utf8_flags(a,b,c,d,e,f,g,h,i) Perl_foldEQ_utf8_flags(aTHX_ a,b,c,d,e,f,g,h,i)
+# define forbid_outofblock_ops(a,b) Perl_forbid_outofblock_ops(aTHX_ a,b)
+# define free_tmps() Perl_free_tmps(aTHX)
+# define get_av(a,b) Perl_get_av(aTHX_ a,b)
+# define get_cv(a,b) Perl_get_cv(aTHX_ a,b)
+# define get_cvn_flags(a,b,c) Perl_get_cvn_flags(aTHX_ a,b,c)
+# define get_hv(a,b) Perl_get_hv(aTHX_ a,b)
+# define get_op_descs() Perl_get_op_descs(aTHX)
+# define get_op_names() Perl_get_op_names(aTHX)
+# define get_ppaddr() Perl_get_ppaddr(aTHX)
+# define get_sv(a,b) Perl_get_sv(aTHX_ a,b)
+# define get_vtbl(a) Perl_get_vtbl(aTHX_ a)
+# define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a)
+# define gp_free(a) Perl_gp_free(aTHX_ a)
+# define gp_ref(a) Perl_gp_ref(aTHX_ a)
+# define grok_atoUV Perl_grok_atoUV
+# define grok_bin_oct_hex(a,b,c,d,e,f,g) Perl_grok_bin_oct_hex(aTHX_ a,b,c,d,e,f,g)
+# 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 gv_add_by_type(a,b) Perl_gv_add_by_type(aTHX_ a,b)
+# define gv_autoload_pv(a,b,c) Perl_gv_autoload_pv(aTHX_ a,b,c)
+# define gv_autoload_pvn(a,b,c,d) Perl_gv_autoload_pvn(aTHX_ a,b,c,d)
+# define gv_autoload_sv(a,b,c) Perl_gv_autoload_sv(aTHX_ a,b,c)
+# define gv_check(a) Perl_gv_check(aTHX_ a)
+# define gv_const_sv(a) Perl_gv_const_sv(aTHX_ a)
+# define gv_dump(a) Perl_gv_dump(aTHX_ a)
+# define gv_efullname4(a,b,c,d) Perl_gv_efullname4(aTHX_ a,b,c,d)
+# define gv_fetchfile(a) Perl_gv_fetchfile(aTHX_ a)
+# define gv_fetchfile_flags(a,b,c) Perl_gv_fetchfile_flags(aTHX_ a,b,c)
+# define gv_fetchmeth_pv(a,b,c,d) Perl_gv_fetchmeth_pv(aTHX_ a,b,c,d)
+# define gv_fetchmeth_pv_autoload(a,b,c,d) Perl_gv_fetchmeth_pv_autoload(aTHX_ a,b,c,d)
+# define gv_fetchmeth_pvn(a,b,c,d,e) Perl_gv_fetchmeth_pvn(aTHX_ a,b,c,d,e)
+# define gv_fetchmeth_pvn_autoload(a,b,c,d,e) Perl_gv_fetchmeth_pvn_autoload(aTHX_ a,b,c,d,e)
+# define gv_fetchmeth_sv(a,b,c,d) Perl_gv_fetchmeth_sv(aTHX_ a,b,c,d)
+# define gv_fetchmeth_sv_autoload(a,b,c,d) Perl_gv_fetchmeth_sv_autoload(aTHX_ a,b,c,d)
+# define gv_fetchmethod_autoload(a,b,c) Perl_gv_fetchmethod_autoload(aTHX_ a,b,c)
+# define gv_fetchmethod_pv_flags(a,b,c) Perl_gv_fetchmethod_pv_flags(aTHX_ a,b,c)
+# define gv_fetchmethod_pvn_flags(a,b,c,d) Perl_gv_fetchmethod_pvn_flags(aTHX_ a,b,c,d)
+# define gv_fetchmethod_sv_flags(a,b,c) Perl_gv_fetchmethod_sv_flags(aTHX_ a,b,c)
+# define gv_fetchpv(a,b,c) Perl_gv_fetchpv(aTHX_ a,b,c)
+# define gv_fetchpvn_flags(a,b,c,d) Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
+# define gv_fetchsv(a,b,c) Perl_gv_fetchsv(aTHX_ a,b,c)
+# define gv_fullname4(a,b,c,d) Perl_gv_fullname4(aTHX_ a,b,c,d)
+# define gv_handler(a,b) Perl_gv_handler(aTHX_ a,b)
+# define gv_init_pv(a,b,c,d) Perl_gv_init_pv(aTHX_ a,b,c,d)
+# define gv_init_pvn(a,b,c,d,e) Perl_gv_init_pvn(aTHX_ a,b,c,d,e)
+# define gv_init_sv(a,b,c,d) Perl_gv_init_sv(aTHX_ a,b,c,d)
+# define gv_name_set(a,b,c,d) Perl_gv_name_set(aTHX_ a,b,c,d)
+# define gv_stashpv(a,b) Perl_gv_stashpv(aTHX_ a,b)
+# define gv_stashpvn(a,b,c) Perl_gv_stashpvn(aTHX_ a,b,c)
+# define gv_stashsv(a,b) Perl_gv_stashsv(aTHX_ a,b)
+# define hv_bucket_ratio(a) Perl_hv_bucket_ratio(aTHX_ a)
+# define hv_clear(a) Perl_hv_clear(aTHX_ a)
+# define hv_clear_placeholders(a) Perl_hv_clear_placeholders(aTHX_ a)
+# define hv_common(a,b,c,d,e,f,g,h) Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
+# define hv_common_key_len(a,b,c,d,e,f) Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f)
+# define hv_copy_hints_hv(a) Perl_hv_copy_hints_hv(aTHX_ a)
+# define hv_delayfree_ent(a,b) Perl_hv_delayfree_ent(aTHX_ a,b)
+# define hv_dump(a) Perl_hv_dump(aTHX_ a)
+# define hv_free_ent(a,b) Perl_hv_free_ent(aTHX_ a,b)
+# define hv_iterinit(a) Perl_hv_iterinit(aTHX_ a)
+# define hv_iterkey(a,b) Perl_hv_iterkey(aTHX_ a,b)
+# define hv_iterkeysv(a) Perl_hv_iterkeysv(aTHX_ a)
+# define hv_iternext_flags(a,b) Perl_hv_iternext_flags(aTHX_ a,b)
+# define hv_iternextsv(a,b,c) Perl_hv_iternextsv(aTHX_ a,b,c)
+# define hv_iterval(a,b) Perl_hv_iterval(aTHX_ a,b)
+# define hv_ksplit(a,b) Perl_hv_ksplit(aTHX_ a,b)
+# define hv_name_set(a,b,c,d) Perl_hv_name_set(aTHX_ a,b,c,d)
+# define hv_rand_set(a,b) Perl_hv_rand_set(aTHX_ a,b)
+# define hv_scalar(a) Perl_hv_scalar(aTHX_ a)
+# define init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a)
+# define init_stacks() Perl_init_stacks(aTHX)
+# define init_tm(a) Perl_init_tm(aTHX_ a)
+# define intro_my() Perl_intro_my(aTHX)
+# define isC9_STRICT_UTF8_CHAR Perl_isC9_STRICT_UTF8_CHAR
+# define isSTRICT_UTF8_CHAR Perl_isSTRICT_UTF8_CHAR
+# define isUTF8_CHAR Perl_isUTF8_CHAR
+# define isUTF8_CHAR_flags Perl_isUTF8_CHAR_flags
+# define is_c9strict_utf8_string_loclen Perl_is_c9strict_utf8_string_loclen
+# define is_lvalue_sub() Perl_is_lvalue_sub(aTHX)
+# define is_safe_syscall(a,b,c,d) Perl_is_safe_syscall(aTHX_ a,b,c,d)
+# define is_strict_utf8_string_loclen Perl_is_strict_utf8_string_loclen
+# define is_utf8_FF_helper_ Perl_is_utf8_FF_helper_
+# define is_utf8_char_helper_ Perl_is_utf8_char_helper_
+# define is_utf8_fixed_width_buf_loclen_flags Perl_is_utf8_fixed_width_buf_loclen_flags
+# define is_utf8_invariant_string_loc Perl_is_utf8_invariant_string_loc
+# define is_utf8_string_flags Perl_is_utf8_string_flags
+# define is_utf8_string_loclen Perl_is_utf8_string_loclen
+# define is_utf8_string_loclen_flags Perl_is_utf8_string_loclen_flags
+# define is_utf8_valid_partial_char_flags Perl_is_utf8_valid_partial_char_flags
+# define isinfnan Perl_isinfnan
+# define leave_adjust_stacks(a,b,c,d) Perl_leave_adjust_stacks(aTHX_ a,b,c,d)
+# 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)
+# define lex_grow_linestr(a) Perl_lex_grow_linestr(aTHX_ a)
+# define lex_next_chunk(a) Perl_lex_next_chunk(aTHX_ a)
+# define lex_peek_unichar(a) Perl_lex_peek_unichar(aTHX_ a)
+# define lex_read_space(a) Perl_lex_read_space(aTHX_ a)
+# define lex_read_to(a) Perl_lex_read_to(aTHX_ a)
+# define lex_read_unichar(a) Perl_lex_read_unichar(aTHX_ a)
+# define lex_start(a,b,c) Perl_lex_start(aTHX_ a,b,c)
+# define lex_stuff_pv(a,b) Perl_lex_stuff_pv(aTHX_ a,b)
+# define lex_stuff_pvn(a,b,c) Perl_lex_stuff_pvn(aTHX_ a,b,c)
+# define lex_stuff_sv(a,b) Perl_lex_stuff_sv(aTHX_ a,b)
+# define lex_unstuff(a) Perl_lex_unstuff(aTHX_ a)
+# define looks_like_number(a) Perl_looks_like_number(aTHX_ a)
+# define lsbit_pos32 Perl_lsbit_pos32
+# define magic_dump(a) Perl_magic_dump(aTHX_ a)
+# define markstack_grow() Perl_markstack_grow(aTHX)
+# 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 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_freeext(a,b,c) Perl_mg_freeext(aTHX_ a,b,c)
+# define mg_get(a) Perl_mg_get(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 Perl_mini_mktime
+# define moreswitches(a) Perl_moreswitches(aTHX_ a)
+# define mortal_destructor_sv(a,b) Perl_mortal_destructor_sv(aTHX_ a,b)
+# define mortal_getenv Perl_mortal_getenv
+# define mortal_svfunc_x(a,b) Perl_mortal_svfunc_x(aTHX_ a,b)
+# 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 msbit_pos32 Perl_msbit_pos32
+# define my_atof(a) Perl_my_atof(aTHX_ a)
+# define my_atof3(a,b,c) Perl_my_atof3(aTHX_ a,b,c)
+# 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)
+# define my_fork Perl_my_fork
+# 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_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 my_strtod Perl_my_strtod
+# define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d)
+# define newANONHASH(a) Perl_newANONHASH(aTHX_ a)
+# define newANONLIST(a) Perl_newANONLIST(aTHX_ a)
+# define newANONSUB(a,b,c) Perl_newANONSUB(aTHX_ a,b,c)
+# define newARGDEFELEMOP(a,b,c) Perl_newARGDEFELEMOP(aTHX_ a,b,c)
+# define newASSIGNOP(a,b,c,d) Perl_newASSIGNOP(aTHX_ a,b,c,d)
+# define newAVREF(a) Perl_newAVREF(aTHX_ a)
+# define newAVav(a) Perl_newAVav(aTHX_ a)
+# define newAVhv(a) Perl_newAVhv(aTHX_ a)
+# define newBINOP(a,b,c,d) Perl_newBINOP(aTHX_ a,b,c,d)
+# define newCONDOP(a,b,c,d) Perl_newCONDOP(aTHX_ a,b,c,d)
+# 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 newDEFEROP(a,b) Perl_newDEFEROP(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)
+# define newGVREF(a,b) Perl_newGVREF(aTHX_ a,b)
+# define newGVgen_flags(a,b) Perl_newGVgen_flags(aTHX_ a,b)
+# define newHVREF(a) Perl_newHVREF(aTHX_ a)
+# define newHVhv(a) Perl_newHVhv(aTHX_ a)
+# define newLISTOP(a,b,c,d) Perl_newLISTOP(aTHX_ a,b,c,d)
+# 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 newPADxVOP(a,b,c) Perl_newPADxVOP(aTHX_ a,b,c)
+# 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)
+# define newRANGE(a,b,c) Perl_newRANGE(aTHX_ a,b,c)
+# define newRV(a) Perl_newRV(aTHX_ a)
+# define newRV_noinc(a) Perl_newRV_noinc(aTHX_ a)
+# define newSLICEOP(a,b,c) Perl_newSLICEOP(aTHX_ a,b,c)
+# define newSTATEOP(a,b,c) Perl_newSTATEOP(aTHX_ a,b,c)
+# define newSV(a) Perl_newSV(aTHX_ a)
+# define newSVOP(a,b,c) Perl_newSVOP(aTHX_ a,b,c)
+# define newSVREF(a) Perl_newSVREF(aTHX_ a)
+# define newSV_false() Perl_newSV_false(aTHX)
+# define newSV_true() Perl_newSV_true(aTHX)
+# define newSV_type(a) Perl_newSV_type(aTHX_ a)
+# define newSV_type_mortal(a) Perl_newSV_type_mortal(aTHX_ a)
+# define newSVbool(a) Perl_newSVbool(aTHX_ a)
+# define newSVhek(a) Perl_newSVhek(aTHX_ a)
+# define newSVhek_mortal(a) Perl_newSVhek_mortal(aTHX_ a)
+# define newSViv(a) Perl_newSViv(aTHX_ a)
+# define newSVnv(a) Perl_newSVnv(aTHX_ a)
+# define newSVpv(a,b) Perl_newSVpv(aTHX_ a,b)
+# define newSVpv_share(a,b) Perl_newSVpv_share(aTHX_ a,b)
+# define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b)
+# define newSVpvn_flags(a,b,c) Perl_newSVpvn_flags(aTHX_ a,b,c)
+# define newSVpvn_share(a,b,c) Perl_newSVpvn_share(aTHX_ a,b,c)
+# define newSVrv(a,b) Perl_newSVrv(aTHX_ a,b)
+# define newSVsv_flags(a,b) Perl_newSVsv_flags(aTHX_ a,b)
+# define newSVuv(a) Perl_newSVuv(aTHX_ a)
+# define newTRYCATCHOP(a,b,c,d) Perl_newTRYCATCHOP(aTHX_ a,b,c,d)
+# 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)
+# define newXS_flags(a,b,c,d,e) Perl_newXS_flags(aTHX_ a,b,c,d,e)
+# define new_stackinfo(a,b) Perl_new_stackinfo(aTHX_ a,b)
+# define new_version(a) Perl_new_version(aTHX_ a)
+# define nothreadhook() Perl_nothreadhook(aTHX)
+# 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_class(a) Perl_op_class(aTHX_ a)
+# 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_force_list(a) Perl_op_force_list(aTHX_ a)
+# define op_free(a) Perl_op_free(aTHX_ a)
+# define op_linklist(a) Perl_op_linklist(aTHX_ a)
+# define op_null(a) Perl_op_null(aTHX_ a)
+# define op_parent Perl_op_parent
+# define op_prepend_elem(a,b,c) Perl_op_prepend_elem(aTHX_ a,b,c)
+# 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 op_wrap_finally(a,b) Perl_op_wrap_finally(aTHX_ a,b)
+# 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)
+# define pad_add_name_pv(a,b,c,d) Perl_pad_add_name_pv(aTHX_ a,b,c,d)
+# define pad_add_name_pvn(a,b,c,d,e) Perl_pad_add_name_pvn(aTHX_ a,b,c,d,e)
+# define pad_add_name_sv(a,b,c,d) Perl_pad_add_name_sv(aTHX_ a,b,c,d)
+# define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b)
+# define pad_findmy_pv(a,b) Perl_pad_findmy_pv(aTHX_ a,b)
+# define pad_findmy_pvn(a,b,c) Perl_pad_findmy_pvn(aTHX_ a,b,c)
+# 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)
+# define parse_fullexpr(a) Perl_parse_fullexpr(aTHX_ a)
+# define parse_fullstmt(a) Perl_parse_fullstmt(aTHX_ a)
+# define parse_label(a) Perl_parse_label(aTHX_ a)
+# define parse_listexpr(a) Perl_parse_listexpr(aTHX_ a)
+# define parse_stmtseq(a) Perl_parse_stmtseq(aTHX_ a)
+# define parse_subsignature(a) Perl_parse_subsignature(aTHX_ a)
+# define parse_termexpr(a) Perl_parse_termexpr(aTHX_ a)
+# define perly_sighandler Perl_perly_sighandler
+# define pmop_dump(a) Perl_pmop_dump(aTHX_ a)
+# define pop_scope() Perl_pop_scope(aTHX)
+# define pregcomp(a,b) Perl_pregcomp(aTHX_ a,b)
+# define pregexec(a,b,c,d,e,f,g) Perl_pregexec(aTHX_ a,b,c,d,e,f,g)
+# define pregfree(a) Perl_pregfree(aTHX_ a)
+# define pregfree2(a) Perl_pregfree2(aTHX_ a)
+# define prescan_version(a,b,c,d,e,f,g) Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
+# define ptr_table_fetch(a,b) Perl_ptr_table_fetch(aTHX_ a,b)
+# define ptr_table_free(a) Perl_ptr_table_free(aTHX_ a)
+# define ptr_table_new() Perl_ptr_table_new(aTHX)
+# define ptr_table_split(a) Perl_ptr_table_split(aTHX_ a)
+# define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c)
+# define push_scope() Perl_push_scope(aTHX)
+# define pv_display(a,b,c,d,e) Perl_pv_display(aTHX_ a,b,c,d,e)
+# define pv_escape(a,b,c,d,e,f) Perl_pv_escape(aTHX_ a,b,c,d,e,f)
+# define pv_pretty(a,b,c,d,e,f,g) Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
+# define pv_uni_display(a,b,c,d,e) Perl_pv_uni_display(aTHX_ a,b,c,d,e)
+# define rcpv_copy(a) Perl_rcpv_copy(aTHX_ a)
+# define rcpv_free(a) Perl_rcpv_free(aTHX_ a)
+# define rcpv_new(a,b,c) Perl_rcpv_new(aTHX_ a,b,c)
+# define re_compile(a,b) Perl_re_compile(aTHX_ a,b)
+# define re_intuit_start(a,b,c,d,e,f,g) Perl_re_intuit_start(aTHX_ a,b,c,d,e,f,g)
+# define re_intuit_string(a) Perl_re_intuit_string(aTHX_ a)
+# define reentrant_free() Perl_reentrant_free(aTHX)
+# define reentrant_init() Perl_reentrant_init(aTHX)
+# define reentrant_retry Perl_reentrant_retry
+# define reentrant_size() Perl_reentrant_size(aTHX)
+# define reg_named_buff_all(a,b) Perl_reg_named_buff_all(aTHX_ a,b)
+# define reg_named_buff_exists(a,b,c) Perl_reg_named_buff_exists(aTHX_ a,b,c)
+# define reg_named_buff_fetch(a,b,c) Perl_reg_named_buff_fetch(aTHX_ a,b,c)
+# define reg_named_buff_firstkey(a,b) Perl_reg_named_buff_firstkey(aTHX_ a,b)
+# define reg_named_buff_nextkey(a,b) Perl_reg_named_buff_nextkey(aTHX_ a,b)
+# define reg_named_buff_scalar(a,b) Perl_reg_named_buff_scalar(aTHX_ a,b)
+# define regdump(a) Perl_regdump(aTHX_ a)
+# define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h)
+# define regfree_internal(a) Perl_regfree_internal(aTHX_ a)
+# define reginitcolors() Perl_reginitcolors(aTHX)
+# define repeatcpy Perl_repeatcpy
+# define require_pv(a) Perl_require_pv(aTHX_ a)
+# define rninstr Perl_rninstr
+# define rsignal(a,b) Perl_rsignal(aTHX_ a,b)
+# define rsignal_state(a) Perl_rsignal_state(aTHX_ a)
+# define runops_debug() Perl_runops_debug(aTHX)
+# define runops_standard() Perl_runops_standard(aTHX)
+# define rv2cv_op_cv(a,b) Perl_rv2cv_op_cv(aTHX_ a,b)
+# define safesyscalloc Perl_safesyscalloc
+# define safesysfree Perl_safesysfree
+# define safesysmalloc Perl_safesysmalloc
+# define safesysrealloc Perl_safesysrealloc
+# define save_I16(a) Perl_save_I16(aTHX_ a)
+# define save_I32(a) Perl_save_I32(aTHX_ a)
+# define save_I8(a) Perl_save_I8(aTHX_ a)
+# define save_adelete(a,b) Perl_save_adelete(aTHX_ a,b)
+# define save_aelem_flags(a,b,c,d) Perl_save_aelem_flags(aTHX_ a,b,c,d)
+# define save_alloc(a,b) Perl_save_alloc(aTHX_ a,b)
+# define save_aptr(a) Perl_save_aptr(aTHX_ a)
+# define save_ary(a) Perl_save_ary(aTHX_ a)
+# define save_bool(a) Perl_save_bool(aTHX_ a)
+# define save_clearsv(a) Perl_save_clearsv(aTHX_ a)
+# define save_delete(a,b,c) Perl_save_delete(aTHX_ a,b,c)
+# define save_destructor(a,b) Perl_save_destructor(aTHX_ a,b)
+# define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b)
+# define save_freercpv(a) Perl_save_freercpv(aTHX_ a)
+# define save_generic_pvref(a) Perl_save_generic_pvref(aTHX_ a)
+# define save_generic_svref(a) Perl_save_generic_svref(aTHX_ a)
+# define save_gp(a,b) Perl_save_gp(aTHX_ a,b)
+# define save_hash(a) Perl_save_hash(aTHX_ a)
+# define save_hdelete(a,b) Perl_save_hdelete(aTHX_ a,b)
+# define save_helem_flags(a,b,c,d) Perl_save_helem_flags(aTHX_ a,b,c,d)
+# define save_hints() Perl_save_hints(aTHX)
+# define save_hptr(a) Perl_save_hptr(aTHX_ a)
+# define save_int(a) Perl_save_int(aTHX_ a)
+# define save_item(a) Perl_save_item(aTHX_ a)
+# define save_iv(a) Perl_save_iv(aTHX_ a)
+# define save_padsv_and_mortalize(a) Perl_save_padsv_and_mortalize(aTHX_ a)
+# define save_pptr(a) Perl_save_pptr(aTHX_ a)
+# define save_pushi32ptr(a,b,c) Perl_save_pushi32ptr(aTHX_ a,b,c)
+# define save_pushptr(a,b) Perl_save_pushptr(aTHX_ a,b)
+# define save_pushptrptr(a,b,c) Perl_save_pushptrptr(aTHX_ a,b,c)
+# define save_rcpv(a) Perl_save_rcpv(aTHX_ a)
+# define save_re_context() Perl_save_re_context(aTHX)
+# define save_scalar(a) Perl_save_scalar(aTHX_ a)
+# define save_set_svflags(a,b,c) Perl_save_set_svflags(aTHX_ a,b,c)
+# define save_shared_pvref(a) Perl_save_shared_pvref(aTHX_ a)
+# define save_sptr(a) Perl_save_sptr(aTHX_ a)
+# define save_svref(a) Perl_save_svref(aTHX_ a)
+# define save_vptr(a) Perl_save_vptr(aTHX_ a)
+# define savepv(a) Perl_savepv(aTHX_ a)
+# define savepvn(a,b) Perl_savepvn(aTHX_ a,b)
+# define savesharedpv(a) Perl_savesharedpv(aTHX_ a)
+# define savesharedpvn(a,b) Perl_savesharedpvn(aTHX_ a,b)
+# define savesharedsvpv(a) Perl_savesharedsvpv(aTHX_ a)
+# define savestack_grow() Perl_savestack_grow(aTHX)
+# define savestack_grow_cnt(a) Perl_savestack_grow_cnt(aTHX_ a)
+# define savesvpv(a) Perl_savesvpv(aTHX_ a)
+# define scan_bin(a,b,c) Perl_scan_bin(aTHX_ a,b,c)
+# define scan_hex(a,b,c) Perl_scan_hex(aTHX_ a,b,c)
+# define scan_num(a,b) Perl_scan_num(aTHX_ a,b)
+# 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 seed() Perl_seed(aTHX)
+# define set_context Perl_set_context
+# define setdefout(a) Perl_setdefout(aTHX_ a)
+# define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c)
+# define single_1bit_pos32 Perl_single_1bit_pos32
+# define sortsv(a,b,c) Perl_sortsv(aTHX_ a,b,c)
+# define sortsv_flags(a,b,c,d) Perl_sortsv_flags(aTHX_ a,b,c,d)
+# define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c)
+# define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b)
+# define str_to_version(a) Perl_str_to_version(aTHX_ a)
+# define suspend_compcv(a) Perl_suspend_compcv(aTHX_ a)
+# define sv_2bool_flags(a,b) Perl_sv_2bool_flags(aTHX_ a,b)
+# define sv_2cv(a,b,c,d) Perl_sv_2cv(aTHX_ a,b,c,d)
+# define sv_2io(a) Perl_sv_2io(aTHX_ a)
+# define sv_2iv_flags(a,b) Perl_sv_2iv_flags(aTHX_ a,b)
+# define sv_2mortal(a) Perl_sv_2mortal(aTHX_ a)
+# define sv_2nv_flags(a,b) Perl_sv_2nv_flags(aTHX_ a,b)
+# define sv_2pv_flags(a,b,c) Perl_sv_2pv_flags(aTHX_ a,b,c)
+# define sv_2pvbyte_flags(a,b,c) Perl_sv_2pvbyte_flags(aTHX_ a,b,c)
+# define sv_2pvutf8_flags(a,b,c) Perl_sv_2pvutf8_flags(aTHX_ a,b,c)
+# define sv_2uv_flags(a,b) Perl_sv_2uv_flags(aTHX_ a,b)
+# 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)
+# define sv_catpv_flags(a,b,c) Perl_sv_catpv_flags(aTHX_ a,b,c)
+# define sv_catpv_mg(a,b) Perl_sv_catpv_mg(aTHX_ a,b)
+# define sv_catpvn_flags(a,b,c,d) Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
+# define sv_catsv_flags(a,b,c) Perl_sv_catsv_flags(aTHX_ a,b,c)
+# define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b)
+# define sv_clear(a) Perl_sv_clear(aTHX_ a)
+# define sv_cmp_flags(a,b,c) Perl_sv_cmp_flags(aTHX_ a,b,c)
+# define sv_cmp_locale_flags(a,b,c) Perl_sv_cmp_locale_flags(aTHX_ a,b,c)
+# define sv_copypv_flags(a,b,c) Perl_sv_copypv_flags(aTHX_ a,b,c)
+# define sv_dec(a) Perl_sv_dec(aTHX_ a)
+# define sv_dec_nomg(a) Perl_sv_dec_nomg(aTHX_ a)
+# define sv_derived_from(a,b) Perl_sv_derived_from(aTHX_ a,b)
+# define sv_derived_from_hv(a,b) Perl_sv_derived_from_hv(aTHX_ a,b)
+# define sv_derived_from_pv(a,b,c) Perl_sv_derived_from_pv(aTHX_ a,b,c)
+# define sv_derived_from_pvn(a,b,c,d) Perl_sv_derived_from_pvn(aTHX_ a,b,c,d)
+# define sv_derived_from_sv(a,b,c) Perl_sv_derived_from_sv(aTHX_ a,b,c)
+# define sv_destroyable(a) Perl_sv_destroyable(aTHX_ a)
+# define sv_does(a,b) Perl_sv_does(aTHX_ a,b)
+# define sv_does_pv(a,b,c) Perl_sv_does_pv(aTHX_ a,b,c)
+# define sv_does_pvn(a,b,c,d) Perl_sv_does_pvn(aTHX_ a,b,c,d)
+# define sv_does_sv(a,b,c) Perl_sv_does_sv(aTHX_ a,b,c)
+# define sv_dump(a) Perl_sv_dump(aTHX_ a)
+# define sv_dump_depth(a,b) Perl_sv_dump_depth(aTHX_ a,b)
+# 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_grow_fresh(a,b) Perl_sv_grow_fresh(aTHX_ a,b)
+# define sv_inc(a) Perl_sv_inc(aTHX_ a)
+# define sv_inc_nomg(a) Perl_sv_inc_nomg(aTHX_ a)
+# define sv_insert_flags(a,b,c,d,e,f) Perl_sv_insert_flags(aTHX_ a,b,c,d,e,f)
+# define sv_isa(a,b) Perl_sv_isa(aTHX_ a,b)
+# define sv_isa_sv(a,b) Perl_sv_isa_sv(aTHX_ a,b)
+# define sv_isobject(a) Perl_sv_isobject(aTHX_ a)
+# define sv_len(a) Perl_sv_len(aTHX_ a)
+# define sv_len_utf8(a) Perl_sv_len_utf8(aTHX_ a)
+# define sv_len_utf8_nomg(a) Perl_sv_len_utf8_nomg(aTHX_ a)
+# define sv_magic(a,b,c,d,e) Perl_sv_magic(aTHX_ a,b,c,d,e)
+# define sv_magicext(a,b,c,d,e,f) Perl_sv_magicext(aTHX_ a,b,c,d,e,f)
+# define sv_mortalcopy_flags(a,b) Perl_sv_mortalcopy_flags(aTHX_ a,b)
+# define sv_newmortal() Perl_sv_newmortal(aTHX)
+# define sv_newref(a) Perl_sv_newref(aTHX_ a)
+# define sv_nosharing(a) Perl_sv_nosharing(aTHX_ a)
+# define sv_numeq_flags(a,b,c) Perl_sv_numeq_flags(aTHX_ a,b,c)
+# define sv_peek(a) Perl_sv_peek(aTHX_ a)
+# define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b)
+# define sv_pos_b2u_flags(a,b,c) Perl_sv_pos_b2u_flags(aTHX_ a,b,c)
+# define sv_pos_u2b(a,b,c) Perl_sv_pos_u2b(aTHX_ a,b,c)
+# define sv_pos_u2b_flags(a,b,c,d) Perl_sv_pos_u2b_flags(aTHX_ a,b,c,d)
+# define sv_pvbyten_force(a,b) Perl_sv_pvbyten_force(aTHX_ a,b)
+# define sv_pvn_force_flags(a,b,c) Perl_sv_pvn_force_flags(aTHX_ a,b,c)
+# define sv_pvutf8n_force(a,b) Perl_sv_pvutf8n_force(aTHX_ a,b)
+# define sv_recode_to_utf8(a,b) Perl_sv_recode_to_utf8(aTHX_ a,b)
+# define sv_ref(a,b,c) Perl_sv_ref(aTHX_ a,b,c)
+# define sv_reftype(a,b) Perl_sv_reftype(aTHX_ a,b)
+# define sv_replace(a,b) Perl_sv_replace(aTHX_ a,b)
+# define sv_report_used() Perl_sv_report_used(aTHX)
+# define sv_reset(a,b) Perl_sv_reset(aTHX_ a,b)
+# define sv_rvunweaken(a) Perl_sv_rvunweaken(aTHX_ a)
+# define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a)
+# define sv_set_bool(a,b) Perl_sv_set_bool(aTHX_ a,b)
+# define sv_set_false(a) Perl_sv_set_false(aTHX_ a)
+# define sv_set_true(a) Perl_sv_set_true(aTHX_ a)
+# define sv_set_undef(a) Perl_sv_set_undef(aTHX_ a)
+# define sv_setiv(a,b) Perl_sv_setiv(aTHX_ a,b)
+# define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b)
+# define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b)
+# define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b)
+# define sv_setpv(a,b) Perl_sv_setpv(aTHX_ a,b)
+# define sv_setpv_bufsize(a,b,c) Perl_sv_setpv_bufsize(aTHX_ a,b,c)
+# define sv_setpv_freshbuf(a) Perl_sv_setpv_freshbuf(aTHX_ a)
+# define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b)
+# define sv_setpvn(a,b,c) Perl_sv_setpvn(aTHX_ a,b,c)
+# define sv_setpvn_fresh(a,b,c) Perl_sv_setpvn_fresh(aTHX_ a,b,c)
+# define sv_setpvn_mg(a,b,c) Perl_sv_setpvn_mg(aTHX_ a,b,c)
+# define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c)
+# define sv_setref_nv(a,b,c) Perl_sv_setref_nv(aTHX_ a,b,c)
+# define sv_setref_pv(a,b,c) Perl_sv_setref_pv(aTHX_ a,b,c)
+# define sv_setref_pvn(a,b,c,d) Perl_sv_setref_pvn(aTHX_ a,b,c,d)
+# define sv_setref_uv(a,b,c) Perl_sv_setref_uv(aTHX_ a,b,c)
+# define sv_setrv_inc(a,b) Perl_sv_setrv_inc(aTHX_ a,b)
+# define sv_setrv_inc_mg(a,b) Perl_sv_setrv_inc_mg(aTHX_ a,b)
+# define sv_setrv_noinc(a,b) Perl_sv_setrv_noinc(aTHX_ a,b)
+# define sv_setrv_noinc_mg(a,b) Perl_sv_setrv_noinc_mg(aTHX_ a,b)
+# define sv_setsv_flags(a,b,c) Perl_sv_setsv_flags(aTHX_ a,b,c)
+# define sv_setsv_mg(a,b) Perl_sv_setsv_mg(aTHX_ a,b)
+# define sv_setuv(a,b) Perl_sv_setuv(aTHX_ a,b)
+# define sv_setuv_mg(a,b) Perl_sv_setuv_mg(aTHX_ a,b)
+# define sv_streq_flags(a,b,c) Perl_sv_streq_flags(aTHX_ a,b,c)
+# define sv_string_from_errnum(a,b) Perl_sv_string_from_errnum(aTHX_ a,b)
+# define sv_tainted(a) Perl_sv_tainted(aTHX_ a)
+# define sv_true(a) Perl_sv_true(aTHX_ a)
+# define sv_uni_display(a,b,c,d) Perl_sv_uni_display(aTHX_ a,b,c,d)
+# define sv_unmagic(a,b) Perl_sv_unmagic(aTHX_ a,b)
+# define sv_unmagicext(a,b,c) Perl_sv_unmagicext(aTHX_ a,b,c)
+# define sv_unref_flags(a,b) Perl_sv_unref_flags(aTHX_ a,b)
+# define sv_untaint(a) Perl_sv_untaint(aTHX_ a)
+# define sv_upgrade(a,b) Perl_sv_upgrade(aTHX_ a,b)
+# define sv_usepvn_flags(a,b,c,d) Perl_sv_usepvn_flags(aTHX_ a,b,c,d)
+# define sv_utf8_decode(a) Perl_sv_utf8_decode(aTHX_ a)
+# define sv_utf8_downgrade_flags(a,b,c) Perl_sv_utf8_downgrade_flags(aTHX_ a,b,c)
+# define sv_utf8_encode(a) Perl_sv_utf8_encode(aTHX_ a)
+# define sv_utf8_upgrade_flags_grow(a,b,c) Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
+# define sv_vcatpvf(a,b,c) Perl_sv_vcatpvf(aTHX_ a,b,c)
+# define sv_vcatpvf_mg(a,b,c) Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
+# define sv_vcatpvfn(a,b,c,d,e,f,g) Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g)
+# define sv_vcatpvfn_flags(a,b,c,d,e,f,g,h) Perl_sv_vcatpvfn_flags(aTHX_ a,b,c,d,e,f,g,h)
+# define sv_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c)
+# define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
+# define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
+# define switch_to_global_locale() Perl_switch_to_global_locale(aTHX)
+# 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 thread_locale_init() Perl_thread_locale_init(aTHX)
+# define thread_locale_term() Perl_thread_locale_term(aTHX)
+# define to_uni_lower(a,b,c) Perl_to_uni_lower(aTHX_ a,b,c)
+# define to_uni_title(a,b,c) Perl_to_uni_title(aTHX_ a,b,c)
+# define to_uni_upper(a,b,c) Perl_to_uni_upper(aTHX_ a,b,c)
+# define unpackstring(a,b,c,d,e) Perl_unpackstring(aTHX_ a,b,c,d,e)
+# define unshare_hek(a) Perl_unshare_hek(aTHX_ a)
+# define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c)
+# define upg_version(a,b) Perl_upg_version(aTHX_ a,b)
+# define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b)
+# define utf8_hop Perl_utf8_hop
+# define utf8_hop_back Perl_utf8_hop_back
+# define utf8_hop_forward Perl_utf8_hop_forward
+# define utf8_hop_safe Perl_utf8_hop_safe
+# 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_buf_helper(a,b,c) Perl_utf8_to_uvchr_buf_helper(aTHX_ a,b,c)
+# define utf8n_to_uvchr_msgs Perl_utf8n_to_uvchr_msgs
+# define uvoffuni_to_utf8_flags_msgs(a,b,c,d) Perl_uvoffuni_to_utf8_flags_msgs(aTHX_ a,b,c,d)
+# define uvuni_to_utf8(a,b) Perl_uvuni_to_utf8(aTHX_ a,b)
+# define valid_utf8_to_uvchr Perl_valid_utf8_to_uvchr
+# define vcmp(a,b) Perl_vcmp(aTHX_ a,b)
+# define vcroak(a,b) Perl_vcroak(aTHX_ a,b)
+# define vdeb(a,b) Perl_vdeb(aTHX_ a,b)
+# define vform(a,b) Perl_vform(aTHX_ a,b)
+# define vload_module(a,b,c,d) Perl_vload_module(aTHX_ a,b,c,d)
+# define vmess(a,b) Perl_vmess(aTHX_ a,b)
+# define vnewSVpvf(a,b) Perl_vnewSVpvf(aTHX_ a,b)
+# define vnormal(a) Perl_vnormal(aTHX_ a)
+# define vnumify(a) Perl_vnumify(aTHX_ a)
+# define vstringify(a) Perl_vstringify(aTHX_ a)
+# define vverify(a) Perl_vverify(aTHX_ a)
+# define vwarn(a,b) Perl_vwarn(aTHX_ a,b)
+# define vwarner(a,b,c) Perl_vwarner(aTHX_ a,b,c)
+# define warn_sv(a) Perl_warn_sv(aTHX_ a)
+# define whichsig_pv(a) Perl_whichsig_pv(aTHX_ a)
+# define whichsig_pvn(a,b) Perl_whichsig_pvn(aTHX_ a,b)
+# define whichsig_sv(a) Perl_whichsig_sv(aTHX_ a)
+# define wrap_infix_plugin(a,b) Perl_wrap_infix_plugin(aTHX_ a,b)
+# define wrap_keyword_plugin(a,b) Perl_wrap_keyword_plugin(aTHX_ a,b)
+# define wrap_op_checker(a,b,c) Perl_wrap_op_checker(aTHX_ a,b,c)
+
+# if defined(DEBUGGING)
+# define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b)
+# define pad_sv(a) Perl_pad_sv(aTHX_ a)
+# endif
+# if !defined(EBCDIC)
+# define variant_byte_number Perl_variant_byte_number
+# endif
+# if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
+# define my_chsize(a,b) Perl_my_chsize(aTHX_ a,b)
+# endif
+# if !defined(HAS_STRLCAT)
+# define my_strlcat Perl_my_strlcat
+# endif
+# if !defined(HAS_STRLCPY)
+# define my_strlcpy Perl_my_strlcpy
+# endif
+# if !defined(HAS_STRNLEN)
+# define my_strnlen Perl_my_strnlen
+# endif
+# if defined(HAVE_INTERP_INTERN)
+# define sys_intern_clear() Perl_sys_intern_clear(aTHX)
+# define sys_intern_init() Perl_sys_intern_init(aTHX)
+# if defined(USE_ITHREADS)
+# define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b)
+# endif
+# endif
+# if defined(MULTIPLICITY)
+# define croak_nocontext Perl_croak_nocontext
+# define deb_nocontext Perl_deb_nocontext
+# define die_nocontext Perl_die_nocontext
+# define form_nocontext Perl_form_nocontext
+# define load_module_nocontext Perl_load_module_nocontext
+# define mess_nocontext Perl_mess_nocontext
+# define newSVpvf_nocontext Perl_newSVpvf_nocontext
+# define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext
+# define sv_catpvf_nocontext Perl_sv_catpvf_nocontext
+# define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext
+# define sv_setpvf_nocontext Perl_sv_setpvf_nocontext
+# define warn_nocontext Perl_warn_nocontext
+# define warner_nocontext Perl_warner_nocontext
+# endif /* defined(MULTIPLICITY) */
+# if !defined(MULTIPLICITY) || defined(PERL_CORE)
+# define ck_warner(a,...) Perl_ck_warner(aTHX_ a,__VA_ARGS__)
+# define ck_warner_d(a,...) Perl_ck_warner_d(aTHX_ a,__VA_ARGS__)
+# define croak(...) Perl_croak(aTHX_ __VA_ARGS__)
+# define deb(...) Perl_deb(aTHX_ __VA_ARGS__)
+# define die(...) Perl_die(aTHX_ __VA_ARGS__)
+# define dump_indent(a,b,...) Perl_dump_indent(aTHX_ a,b,__VA_ARGS__)
+# define form(...) Perl_form(aTHX_ __VA_ARGS__)
+# define load_module(a,b,...) Perl_load_module(aTHX_ a,b,__VA_ARGS__)
+# define mess(...) Perl_mess(aTHX_ __VA_ARGS__)
+# define newSVpvf(...) Perl_newSVpvf(aTHX_ __VA_ARGS__)
+# define sv_catpvf(a,...) Perl_sv_catpvf(aTHX_ a,__VA_ARGS__)
+# define sv_catpvf_mg(a,...) Perl_sv_catpvf_mg(aTHX_ a,__VA_ARGS__)
+# define sv_setpvf(a,...) Perl_sv_setpvf(aTHX_ a,__VA_ARGS__)
+# define sv_setpvf_mg(a,...) Perl_sv_setpvf_mg(aTHX_ a,__VA_ARGS__)
+# define warn(...) Perl_warn(aTHX_ __VA_ARGS__)
+# define warner(a,...) Perl_warner(aTHX_ a,__VA_ARGS__)
+# endif /* !defined(MULTIPLICITY) || defined(PERL_CORE) */
+# if defined(MYMALLOC)
+# define dump_mstats(a) Perl_dump_mstats(aTHX_ a)
+# define get_mstats(a,b,c) Perl_get_mstats(aTHX_ a,b,c)
+# if defined(PERL_CORE)
+# define malloc_good_size Perl_malloc_good_size
+# define malloced_size Perl_malloced_size
+# endif
+# endif
+# if !defined(NO_MATHOMS)
+# define sv_nolocking(a) Perl_sv_nolocking(aTHX_ a)
+# define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
+# define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b)
+# define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b)
+# define utf8n_to_uvuni(a,b,c,d) Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_CORE)
+# define PerlLIO_dup2_cloexec(a,b) Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
+# define PerlLIO_dup_cloexec(a) Perl_PerlLIO_dup_cloexec(aTHX_ a)
+# define PerlLIO_open3_cloexec(a,b,c) Perl_PerlLIO_open3_cloexec(aTHX_ a,b,c)
+# define PerlLIO_open_cloexec(a,b) Perl_PerlLIO_open_cloexec(aTHX_ a,b)
+# define Slab_Alloc(a) Perl_Slab_Alloc(aTHX_ a)
+# define Slab_Free(a) Perl_Slab_Free(aTHX_ a)
+# define _warn_problematic_locale Perl__warn_problematic_locale
+# define abort_execution(a,b) Perl_abort_execution(aTHX_ a,b)
+# define alloc_LOGOP(a,b,c) Perl_alloc_LOGOP(aTHX_ a,b,c)
+# define allocmy(a,b,c) Perl_allocmy(aTHX_ a,b,c)
+# define amagic_applies(a,b,c) Perl_amagic_applies(aTHX_ a,b,c)
+# define amagic_is_enabled(a) Perl_amagic_is_enabled(aTHX_ a)
+# 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 av_nonelem(a,b) Perl_av_nonelem(aTHX_ a,b)
+# define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c)
+# define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX)
+# define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX)
+# define boot_core_builtin() Perl_boot_core_builtin(aTHX)
+# define boot_core_mro() Perl_boot_core_mro(aTHX)
+# define build_infix_plugin(a,b,c) Perl_build_infix_plugin(aTHX_ a,b,c)
+# define cando(a,b,c) Perl_cando(aTHX_ a,b,c)
+# define check_utf8_print(a,b) Perl_check_utf8_print(aTHX_ a,b)
+# define closest_cop(a,b,c,d) Perl_closest_cop(aTHX_ a,b,c,d)
+# define cmpchain_extend(a,b,c) Perl_cmpchain_extend(aTHX_ a,b,c)
+# define cmpchain_finish(a) Perl_cmpchain_finish(aTHX_ a)
+# define cmpchain_start(a,b,c) Perl_cmpchain_start(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,b) Perl_create_eval_scope(aTHX_ a,b)
+# define croak_caller Perl_croak_caller
+# define croak_no_mem Perl_croak_no_mem
+# 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 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)
+# define debug_hash_seed(a) Perl_debug_hash_seed(aTHX_ a)
+# define defelem_target(a,b) Perl_defelem_target(aTHX_ a,b)
+# define delete_eval_scope() Perl_delete_eval_scope(aTHX)
+# define die_unwind(a) Perl_die_unwind(aTHX_ a)
+# define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e)
+# define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d)
+# define do_eof(a) Perl_do_eof(aTHX_ a)
+# define do_ncmp(a,b) Perl_do_ncmp(aTHX_ a,b)
+# define do_open6(a,b,c,d,e,f) Perl_do_open6(aTHX_ a,b,c,d,e,f)
+# define do_open_raw(a,b,c,d,e,f) Perl_do_open_raw(aTHX_ a,b,c,d,e,f)
+# define do_print(a,b) Perl_do_print(aTHX_ a,b)
+# define do_readline() Perl_do_readline(aTHX)
+# define do_seek(a,b,c) Perl_do_seek(aTHX_ a,b,c)
+# define do_sysseek(a,b,c) Perl_do_sysseek(aTHX_ a,b,c)
+# define do_tell(a) Perl_do_tell(aTHX_ a)
+# define do_trans(a) Perl_do_trans(aTHX_ a)
+# define do_vecget(a,b,c) Perl_do_vecget(aTHX_ a,b,c)
+# define do_vecset(a) Perl_do_vecset(aTHX_ a)
+# define do_vop(a,b,c,d) Perl_do_vop(aTHX_ a,b,c,d)
+# define dofile(a,b) Perl_dofile(aTHX_ a,b)
+# define dump_all_perl(a) Perl_dump_all_perl(aTHX_ a)
+# define dump_packsubs_perl(a,b) Perl_dump_packsubs_perl(aTHX_ a,b)
+# define dump_sub_perl(a,b) Perl_dump_sub_perl(aTHX_ a,b)
+# define find_lexical_cv(a) Perl_find_lexical_cv(aTHX_ a)
+# define find_runcv_where(a,b,c) Perl_find_runcv_where(aTHX_ a,b,c)
+# define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d)
+# define force_locale_unlock Perl_force_locale_unlock
+# define free_tied_hv_pool() Perl_free_tied_hv_pool(aTHX)
+# define get_extended_os_errno Perl_get_extended_os_errno
+# define get_hash_seed(a) Perl_get_hash_seed(aTHX_ a)
+# 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 hv_pushkv(a,b) Perl_hv_pushkv(aTHX_ a,b)
+# 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 init_named_cv(a,b) Perl_init_named_cv(aTHX_ a,b)
+# define init_uniprops() Perl_init_uniprops(aTHX)
+# define invert(a) Perl_invert(aTHX_ a)
+# define invmap_dump(a,b) Perl_invmap_dump(aTHX_ a,b)
+# 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)
+# define localize(a,b) Perl_localize(aTHX_ a,b)
+# define magic_clear_all_env(a,b) Perl_magic_clear_all_env(aTHX_ a,b)
+# define magic_cleararylen_p(a,b) Perl_magic_cleararylen_p(aTHX_ a,b)
+# define magic_clearenv(a,b) Perl_magic_clearenv(aTHX_ a,b)
+# define magic_clearhint(a,b) Perl_magic_clearhint(aTHX_ a,b)
+# define magic_clearhints(a,b) Perl_magic_clearhints(aTHX_ a,b)
+# define magic_clearhook(a,b) Perl_magic_clearhook(aTHX_ a,b)
+# define magic_clearhookall(a,b) Perl_magic_clearhookall(aTHX_ a,b)
+# define magic_clearisa(a,b) Perl_magic_clearisa(aTHX_ a,b)
+# define magic_clearpack(a,b) Perl_magic_clearpack(aTHX_ a,b)
+# define magic_clearsig(a,b) Perl_magic_clearsig(aTHX_ a,b)
+# define magic_copycallchecker(a,b,c,d,e) Perl_magic_copycallchecker(aTHX_ a,b,c,d,e)
+# define magic_existspack(a,b) Perl_magic_existspack(aTHX_ a,b)
+# define magic_freearylen_p(a,b) Perl_magic_freearylen_p(aTHX_ a,b)
+# define magic_freedestruct(a,b) Perl_magic_freedestruct(aTHX_ a,b)
+# define magic_freemglob(a,b) Perl_magic_freemglob(aTHX_ a,b)
+# define magic_freeovrld(a,b) Perl_magic_freeovrld(aTHX_ a,b)
+# define magic_freeutf8(a,b) Perl_magic_freeutf8(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)
+# define magic_getpos(a,b) Perl_magic_getpos(aTHX_ a,b)
+# define magic_getsig(a,b) Perl_magic_getsig(aTHX_ a,b)
+# define magic_getsubstr(a,b) Perl_magic_getsubstr(aTHX_ a,b)
+# define magic_gettaint(a,b) Perl_magic_gettaint(aTHX_ a,b)
+# define magic_getuvar(a,b) Perl_magic_getuvar(aTHX_ a,b)
+# define magic_getvec(a,b) Perl_magic_getvec(aTHX_ a,b)
+# define magic_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b)
+# define magic_nextpack(a,b,c) Perl_magic_nextpack(aTHX_ a,b,c)
+# define magic_regdata_cnt(a,b) Perl_magic_regdata_cnt(aTHX_ a,b)
+# define magic_regdatum_get(a,b) Perl_magic_regdatum_get(aTHX_ a,b)
+# define magic_scalarpack(a,b) Perl_magic_scalarpack(aTHX_ a,b)
+# define magic_set(a,b) Perl_magic_set(aTHX_ a,b)
+# 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_sethook(a,b) Perl_magic_sethook(aTHX_ a,b)
+# define magic_sethookall(a,b) Perl_magic_sethookall(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_setnonelem(a,b) Perl_magic_setnonelem(aTHX_ a,b)
+# define magic_setpack(a,b) Perl_magic_setpack(aTHX_ a,b)
+# define magic_setpos(a,b) Perl_magic_setpos(aTHX_ a,b)
+# define magic_setregexp(a,b) Perl_magic_setregexp(aTHX_ a,b)
+# define magic_setsig(a,b) Perl_magic_setsig(aTHX_ a,b)
+# define magic_setsigall(a,b) Perl_magic_setsigall(aTHX_ a,b)
+# define magic_setsubstr(a,b) Perl_magic_setsubstr(aTHX_ a,b)
+# define magic_settaint(a,b) Perl_magic_settaint(aTHX_ a,b)
+# define magic_setutf8(a,b) Perl_magic_setutf8(aTHX_ a,b)
+# define magic_setuvar(a,b) Perl_magic_setuvar(aTHX_ a,b)
+# define magic_setvec(a,b) Perl_magic_setvec(aTHX_ a,b)
+# define magic_sizepack(a,b) Perl_magic_sizepack(aTHX_ a,b)
+# define magic_wipepack(a,b) Perl_magic_wipepack(aTHX_ a,b)
+# define mg_localize(a,b,c) Perl_mg_localize(aTHX_ a,b,c)
+# define mode_from_discipline(a,b) Perl_mode_from_discipline(aTHX_ a,b)
+# define mro_isa_changed_in(a) Perl_mro_isa_changed_in(aTHX_ a)
+# define mro_package_moved(a,b,c,d) Perl_mro_package_moved(aTHX_ a,b,c,d)
+# define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b)
+# define my_clearenv() Perl_my_clearenv(aTHX)
+# define my_lstat_flags(a) Perl_my_lstat_flags(aTHX_ a)
+# define my_stat_flags(a) Perl_my_stat_flags(aTHX_ a)
+# define my_strerror(a,b) Perl_my_strerror(aTHX_ a,b)
+# define my_unexec() Perl_my_unexec(aTHX)
+# 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,b) Perl_nextargv(aTHX_ a,b)
+# define no_bareword_filehandle(a) Perl_no_bareword_filehandle(aTHX_ a)
+# define noperl_die Perl_noperl_die
+# define notify_parser_that_changed_to_utf8() Perl_notify_parser_that_changed_to_utf8(aTHX)
+# define oopsAV(a) Perl_oopsAV(aTHX_ a)
+# define oopsHV(a) Perl_oopsHV(aTHX_ a)
+# 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)
+# define pad_leavemy() Perl_pad_leavemy(aTHX)
+# define pad_push(a,b) Perl_pad_push(aTHX_ a,b)
+# define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b)
+# define padlist_store(a,b,c) Perl_padlist_store(aTHX_ a,b,c)
+# 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,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)
+# define refcounted_he_fetch_pvn(a,b,c,d,e) Perl_refcounted_he_fetch_pvn(aTHX_ a,b,c,d,e)
+# define refcounted_he_fetch_sv(a,b,c,d) Perl_refcounted_he_fetch_sv(aTHX_ a,b,c,d)
+# define refcounted_he_free(a) Perl_refcounted_he_free(aTHX_ a)
+# define refcounted_he_inc(a) Perl_refcounted_he_inc(aTHX_ a)
+# define refcounted_he_new_pv(a,b,c,d,e) Perl_refcounted_he_new_pv(aTHX_ a,b,c,d,e)
+# define refcounted_he_new_pvn(a,b,c,d,e,f) Perl_refcounted_he_new_pvn(aTHX_ a,b,c,d,e,f)
+# define refcounted_he_new_sv(a,b,c,d,e) Perl_refcounted_he_new_sv(aTHX_ a,b,c,d,e)
+# define report_evil_fh(a) Perl_report_evil_fh(aTHX_ a)
+# define report_wrongway_fh(a,b) Perl_report_wrongway_fh(aTHX_ a,b)
+# define rpeep(a) Perl_rpeep(aTHX_ a)
+# 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_strlen(a) Perl_save_strlen(aTHX_ a)
+# define sawparens(a) Perl_sawparens(aTHX_ a)
+# define scalar(a) Perl_scalar(aTHX_ a)
+# define scalarvoid(a) Perl_scalarvoid(aTHX_ a)
+# define set_caret_X() Perl_set_caret_X(aTHX)
+# define set_numeric_standard() Perl_set_numeric_standard(aTHX)
+# define set_numeric_underlying() Perl_set_numeric_underlying(aTHX)
+# define setfd_cloexec Perl_setfd_cloexec
+# define setfd_cloexec_for_nonsysfd(a) Perl_setfd_cloexec_for_nonsysfd(aTHX_ a)
+# define setfd_cloexec_or_inhexec_by_sysfdness(a) Perl_setfd_cloexec_or_inhexec_by_sysfdness(aTHX_ a)
+# define setfd_inhexec Perl_setfd_inhexec
+# define setfd_inhexec_for_sysfd(a) Perl_setfd_inhexec_for_sysfd(aTHX_ a)
+# define sighandler1 Perl_sighandler1
+# define sighandler3 Perl_sighandler3
+# define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a)
+# define sv_2num(a) Perl_sv_2num(aTHX_ a)
+# define sv_clean_all() Perl_sv_clean_all(aTHX)
+# define sv_clean_objs() Perl_sv_clean_objs(aTHX)
+# define sv_del_backref(a,b) Perl_sv_del_backref(aTHX_ a,b)
+# define sv_free_arenas() Perl_sv_free_arenas(aTHX)
+# define sv_pvbyten_force_wrapper(a,b,c) Perl_sv_pvbyten_force_wrapper(aTHX_ a,b,c)
+# define sv_pvutf8n_force_wrapper(a,b,c) Perl_sv_pvutf8n_force_wrapper(aTHX_ a,b,c)
+# define sv_resetpvn(a,b,c) Perl_sv_resetpvn(aTHX_ a,b,c)
+# define sv_sethek(a,b) Perl_sv_sethek(aTHX_ a,b)
+# define tmps_grow_p(a) Perl_tmps_grow_p(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)
+# define yyparse(a) Perl_yyparse(aTHX_ a)
+# define yyquit() Perl_yyquit(aTHX)
+# define yyunlex() Perl_yyunlex(aTHX)
+# define opslab_force_free(a) Perl_opslab_force_free(aTHX_ a)
+# 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(DEBUGGING)
+# define get_debug_opts(a,b) Perl_get_debug_opts(aTHX_ a,b)
+# define set_padlist Perl_set_padlist
+# endif
+# if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+# define dump_sv_child(a) Perl_dump_sv_child(aTHX_ a)
+# endif
+# if !defined(HAS_GETENV_LEN)
+# define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b)
+# endif
+# if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+# define do_ipcctl(a,b,c) Perl_do_ipcctl(aTHX_ a,b,c)
+# define do_ipcget(a,b,c) Perl_do_ipcget(aTHX_ a,b,c)
+# define do_msgrcv(a,b) Perl_do_msgrcv(aTHX_ a,b)
+# define do_msgsnd(a,b) Perl_do_msgsnd(aTHX_ a,b)
+# define do_semop(a,b) Perl_do_semop(aTHX_ a,b)
+# define do_shmio(a,b,c) Perl_do_shmio(aTHX_ a,b,c)
+# endif
+# if defined(HAS_PIPE)
+# define PerlProc_pipe_cloexec(a) Perl_PerlProc_pipe_cloexec(aTHX_ a)
+# endif
+# if !defined(HAS_RENAME)
+# define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b)
+# endif
+# if defined(HAS_SOCKET)
+# define PerlSock_accept_cloexec(a,b,c) Perl_PerlSock_accept_cloexec(aTHX_ a,b,c)
+# define PerlSock_socket_cloexec(a,b,c) Perl_PerlSock_socket_cloexec(aTHX_ a,b,c)
+# endif
+# if defined(HAS_SOCKETPAIR) || \
+ ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
+ defined(SOCK_DGRAM) )
+# define PerlSock_socketpair_cloexec(a,b,c,d) Perl_PerlSock_socketpair_cloexec(aTHX_ a,b,c,d)
+# endif
+# if defined(_MSC_VER)
+# define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
+# else
+# define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
+# endif
+# if !defined(MULTIPLICITY) || defined(PERL_CORE)
+# define tied_method(a,b,c,d,e,...) Perl_tied_method(aTHX_ a,b,c,d,e,__VA_ARGS__)
+# if defined(PERL_IN_REGCOMP_C)
+# define re_croak(a,...) S_re_croak(aTHX_ a,__VA_ARGS__)
+# endif
+# endif
+# if defined(PERL_DEBUG_READONLY_COW)
+# define sv_buf_to_ro(a) Perl_sv_buf_to_ro(aTHX_ a)
+# endif
+# 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)
+# endif
+# if !defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
+# define do_exec(a) Perl_do_exec(aTHX_ a)
+# endif
+# if defined(PERL_IN_AV_C)
+# define get_aux_mg(a) S_get_aux_mg(aTHX_ a)
+# endif
+# if defined(PERL_IN_DEB_C)
+# define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e)
+# endif
+# if defined(PERL_IN_DOIO_C)
+# define argvout_final(a,b,c) S_argvout_final(aTHX_ a,b,c)
+# define exec_failed(a,b,c) S_exec_failed(aTHX_ a,b,c)
+# define ingroup(a,b) S_ingroup(aTHX_ a,b)
+# define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
+# define openn_setup(a,b,c,d,e,f) S_openn_setup(aTHX_ a,b,c,d,e,f)
+# endif
+# if defined(PERL_IN_DOOP_C)
+# define do_trans_complex(a,b) S_do_trans_complex(aTHX_ a,b)
+# define do_trans_count(a,b) S_do_trans_count(aTHX_ a,b)
+# define do_trans_count_invmap(a,b) S_do_trans_count_invmap(aTHX_ a,b)
+# define do_trans_invmap(a,b) S_do_trans_invmap(aTHX_ a,b)
+# define do_trans_simple(a,b) S_do_trans_simple(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_DUMP_C)
+# define deb_curcv(a) S_deb_curcv(aTHX_ a)
+# define debprof(a) S_debprof(aTHX_ a)
+# define pm_description(a) S_pm_description(aTHX_ a)
+# define sequence_num(a) S_sequence_num(aTHX_ a)
+# endif
+# if defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PEEP_C)
+# define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a)
+# define ck_backtick(a) Perl_ck_backtick(aTHX_ a)
+# define ck_bitop(a) Perl_ck_bitop(aTHX_ a)
+# define ck_cmp(a) Perl_ck_cmp(aTHX_ a)
+# define ck_concat(a) Perl_ck_concat(aTHX_ a)
+# define ck_defined(a) Perl_ck_defined(aTHX_ a)
+# define ck_delete(a) Perl_ck_delete(aTHX_ a)
+# define ck_each(a) Perl_ck_each(aTHX_ a)
+# define ck_eof(a) Perl_ck_eof(aTHX_ a)
+# define ck_eval(a) Perl_ck_eval(aTHX_ a)
+# define ck_exec(a) Perl_ck_exec(aTHX_ a)
+# define ck_exists(a) Perl_ck_exists(aTHX_ a)
+# define ck_ftst(a) Perl_ck_ftst(aTHX_ a)
+# define ck_fun(a) Perl_ck_fun(aTHX_ a)
+# define ck_glob(a) Perl_ck_glob(aTHX_ a)
+# define ck_grep(a) Perl_ck_grep(aTHX_ a)
+# define ck_helemexistsor(a) Perl_ck_helemexistsor(aTHX_ a)
+# define ck_index(a) Perl_ck_index(aTHX_ a)
+# define ck_isa(a) Perl_ck_isa(aTHX_ a)
+# define ck_join(a) Perl_ck_join(aTHX_ a)
+# define ck_length(a) Perl_ck_length(aTHX_ a)
+# define ck_lfun(a) Perl_ck_lfun(aTHX_ a)
+# define ck_listiob(a) Perl_ck_listiob(aTHX_ a)
+# define ck_match(a) Perl_ck_match(aTHX_ a)
+# 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)
+# define ck_rfun(a) Perl_ck_rfun(aTHX_ a)
+# define ck_rvconst(a) Perl_ck_rvconst(aTHX_ a)
+# define ck_sassign(a) Perl_ck_sassign(aTHX_ a)
+# define ck_select(a) Perl_ck_select(aTHX_ a)
+# define ck_shift(a) Perl_ck_shift(aTHX_ a)
+# define ck_smartmatch(a) Perl_ck_smartmatch(aTHX_ a)
+# 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 ck_trycatch(a) Perl_ck_trycatch(aTHX_ a)
+# endif /* defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_PEEP_C) */
+# 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) S_gv_magicalize(aTHX_ a,b,c,d,e)
+# 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 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)
+# endif /* defined(PERL_IN_GV_C) */
+# if defined(PERL_IN_HV_C)
+# define clear_placeholders(a,b) S_clear_placeholders(aTHX_ a,b)
+# define hsplit(a,b,c) S_hsplit(aTHX_ a,b,c)
+# define hv_auxinit(a) S_hv_auxinit(aTHX_ a)
+# define hv_delete_common(a,b,c,d,e,f,g) S_hv_delete_common(aTHX_ a,b,c,d,e,f,g)
+# define hv_free_ent_ret(a) S_hv_free_ent_ret(aTHX_ a)
+# define hv_free_entries(a) S_hv_free_entries(aTHX_ a)
+# define hv_magic_check S_hv_magic_check
+# define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d)
+# define refcounted_he_value(a) S_refcounted_he_value(aTHX_ a)
+# define save_hek_flags S_save_hek_flags
+# 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)
+# if !defined(PURIFY)
+# define new_he() S_new_he(aTHX)
+# endif
+# endif /* defined(PERL_IN_HV_C) */
+# if defined(PERL_IN_LOCALE_C)
+# define get_locale_string_utf8ness_i(a,b,c,d) S_get_locale_string_utf8ness_i(aTHX_ a,b,c,d)
+# define is_locale_utf8(a) S_is_locale_utf8(aTHX_ a)
+# if defined(HAS_LOCALECONV)
+# define my_localeconv(a) S_my_localeconv(aTHX_ a)
+# define populate_hash_from_localeconv(a,b,c,d,e) S_populate_hash_from_localeconv(aTHX_ a,b,c,d,e)
+# endif
+# if defined(USE_LOCALE)
+# define get_category_index S_get_category_index
+# define get_category_index_nowarn S_get_category_index_nowarn
+# define mortalized_pv_copy(a) S_mortalized_pv_copy(aTHX_ a)
+# define new_LC_ALL(a,b) S_new_LC_ALL(aTHX_ a,b)
+# define save_to_buffer S_save_to_buffer
+# define setlocale_failure_panic_i(a,b,c,d,e) S_setlocale_failure_panic_i(aTHX_ a,b,c,d,e)
+# define stdize_locale(a,b,c,d,e) S_stdize_locale(aTHX_ a,b,c,d,e)
+# if defined(DEBUGGING)
+# define my_setlocale_debug_string_i(a,b,c,d) S_my_setlocale_debug_string_i(aTHX_ a,b,c,d)
+# endif
+# if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L)
+# define my_langinfo_i(a,b,c,d,e,f) S_my_langinfo_i(aTHX_ a,b,c,d,e,f)
+# else
+# define my_langinfo_i(a,b,c,d,e,f) S_my_langinfo_i(aTHX_ a,b,c,d,e,f)
+# endif
+# if defined(USE_LOCALE_COLLATE)
+# define new_collate(a,b) S_new_collate(aTHX_ a,b)
+# if defined(DEBUGGING)
+# define print_collxfrm_input_and_return(a,b,c,d,e) S_print_collxfrm_input_and_return(aTHX_ a,b,c,d,e)
+# endif
+# endif
+# if defined(USE_LOCALE_CTYPE)
+# define is_codeset_name_UTF8 S_is_codeset_name_UTF8
+# define new_ctype(a,b) S_new_ctype(aTHX_ a,b)
+# endif
+# if defined(USE_LOCALE_NUMERIC)
+# define new_numeric(a,b) S_new_numeric(aTHX_ a,b)
+# endif
+# if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
+# define get_LC_ALL_display() S_get_LC_ALL_display(aTHX)
+# endif
+# if defined(USE_POSIX_2008_LOCALE)
+# define emulate_setlocale_i(a,b,c,d) S_emulate_setlocale_i(aTHX_ a,b,c,d)
+# define my_querylocale_i(a) S_my_querylocale_i(aTHX_ a)
+# define setlocale_from_aggregate_LC_ALL(a,b) S_setlocale_from_aggregate_LC_ALL(aTHX_ a,b)
+# define use_curlocale_scratch() S_use_curlocale_scratch(aTHX)
+# if defined(USE_QUERYLOCALE)
+# define calculate_LC_ALL(a) S_calculate_LC_ALL(aTHX_ a)
+# else
+# define update_PL_curlocales_i(a,b,c) S_update_PL_curlocales_i(aTHX_ a,b,c)
+# endif
+# elif defined(USE_LOCALE_THREADS) && \
+ !defined(USE_THREAD_SAFE_LOCALE) && \
+ !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* &&
+ !defined(USE_POSIX_2008_LOCALE) */
+# define less_dicey_setlocale_r(a,b) S_less_dicey_setlocale_r(aTHX_ a,b)
+# define less_dicey_void_setlocale_i(a,b,c) S_less_dicey_void_setlocale_i(aTHX_ a,b,c)
+# if 0
+# define less_dicey_bool_setlocale_r(a,b) S_less_dicey_bool_setlocale_r(aTHX_ a,b)
+# endif
+# endif
+# if !( defined(USE_POSIX_2008_LOCALE) && defined(USE_QUERYLOCALE) ) && \
+ ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) || \
+ defined(WIN32) )
+# define calculate_LC_ALL(a) S_calculate_LC_ALL(aTHX_ a)
+# endif
+# if defined(WIN32)
+# define Win_byte_string_to_wstring S_Win_byte_string_to_wstring
+# define Win_wstring_to_byte_string S_Win_wstring_to_byte_string
+# define win32_setlocale(a,b) S_win32_setlocale(aTHX_ a,b)
+# define wrap_wsetlocale(a,b) S_wrap_wsetlocale(aTHX_ a,b)
+# endif
+# if defined(WIN32) || \
+ ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
+# define find_locale_from_environment(a) S_find_locale_from_environment(aTHX_ a)
+# endif
+# endif /* defined(USE_LOCALE) */
+# if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING)
+# define get_displayable_string(a,b,c) S_get_displayable_string(aTHX_ a,b,c)
+# endif
+# endif /* defined(PERL_IN_LOCALE_C) */
+# if defined(PERL_IN_MALLOC_C)
+# define adjust_size_and_find_bucket S_adjust_size_and_find_bucket
+# endif
+# if defined(PERL_IN_MG_C)
+# define fixup_errno_string(a) S_fixup_errno_string(aTHX_ a)
+# define magic_methcall1(a,b,c,d,e,f) S_magic_methcall1(aTHX_ a,b,c,d,e,f)
+# define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c)
+# define restore_magic(a) S_restore_magic(aTHX_ a)
+# define save_magic_flags(a,b,c) S_save_magic_flags(aTHX_ a,b,c)
+# 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 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 output_non_portable(a) S_output_non_portable(aTHX_ a)
+# endif
+# if defined(PERL_IN_OP_C)
+# 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 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 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,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 inplace_aassign(a) S_inplace_aassign(aTHX_ a)
+# define is_handle_constructor S_is_handle_constructor
+# 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,d) S_move_proto_attr(aTHX_ a,b,c,d)
+# define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c)
+# 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_fh_allowed(a) S_no_fh_allowed(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)
+# define process_special_blocks(a,b,c,d) S_process_special_blocks(aTHX_ a,b,c,d)
+# define ref_array_or_hash(a) S_ref_array_or_hash(aTHX_ a)
+# define refkids(a,b) S_refkids(aTHX_ a,b)
+# define scalar_mod_type S_scalar_mod_type
+# define scalarboolean(a) S_scalarboolean(aTHX_ a)
+# define scalarkids(a) S_scalarkids(aTHX_ a)
+# 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_many_arguments_pv(a,b,c) S_too_many_arguments_pv(aTHX_ a,b,c)
+# define voidnonfinal(a) S_voidnonfinal(aTHX_ a)
+# endif /* defined(PERL_IN_OP_C) */
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
+# define PadnameIN_SCOPE S_PadnameIN_SCOPE
+# endif
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+# define check_hash_fields_and_hekify(a,b,c) Perl_check_hash_fields_and_hekify(aTHX_ a,b,c)
+# define no_bareword_allowed(a) Perl_no_bareword_allowed(aTHX_ a)
+# define op_prune_chain_head Perl_op_prune_chain_head
+# define op_varname(a) Perl_op_varname(aTHX_ a)
+# define warn_elem_scalar_context(a,b,c,d) Perl_warn_elem_scalar_context(aTHX_ a,b,c,d)
+# 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)
+# define varname(a,b,c,d,e,f) Perl_varname(aTHX_ a,b,c,d,e,f)
+# endif
+# if defined(PERL_IN_PAD_C)
+# define pad_alloc_name(a,b,c,d) S_pad_alloc_name(aTHX_ a,b,c,d)
+# define pad_check_dup(a,b,c) S_pad_check_dup(aTHX_ a,b,c)
+# define pad_findlex(a,b,c,d,e,f,g,h,i) S_pad_findlex(aTHX_ a,b,c,d,e,f,g,h,i)
+# define pad_reset() S_pad_reset(aTHX)
+# if defined(DEBUGGING)
+# define cv_dump(a,b) S_cv_dump(aTHX_ a,b)
+# endif
+# endif
+# if defined(PERL_IN_PEEP_C)
+# define finalize_op(a) S_finalize_op(aTHX_ a)
+# define optimize_op(a) S_optimize_op(aTHX_ a)
+# define traverse_op_tree(a,b) S_traverse_op_tree(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_PERL_C)
+# define find_beginning(a,b) S_find_beginning(aTHX_ a,b)
+# define forbid_setid(a,b) S_forbid_setid(aTHX_ a,b)
+# define incpush(a,b,c) S_incpush(aTHX_ a,b,c)
+# define incpush_use_sep(a,b,c) S_incpush_use_sep(aTHX_ a,b,c)
+# define init_ids() S_init_ids(aTHX)
+# define init_interp() S_init_interp(aTHX)
+# define init_main_stash() S_init_main_stash(aTHX)
+# define init_perllib() S_init_perllib(aTHX)
+# define init_postdump_symbols(a,b,c) S_init_postdump_symbols(aTHX_ a,b,c)
+# define init_predump_symbols() S_init_predump_symbols(aTHX)
+# define mayberelocate(a,b,c) S_mayberelocate(aTHX_ a,b,c)
+# define minus_v() S_minus_v(aTHX)
+# define my_exit_jump() S_my_exit_jump(aTHX)
+# define nuke_stacks() S_nuke_stacks(aTHX)
+# define open_script(a,b,c) S_open_script(aTHX_ a,b,c)
+# define parse_body(a,b) S_parse_body(aTHX_ a,b)
+# define run_body(a) S_run_body(aTHX_ a)
+# define usage() S_usage(aTHX)
+# if !defined(PERL_IS_MINIPERL)
+# define incpush_if_exists(a,b,c) S_incpush_if_exists(aTHX_ a,b,c)
+# endif
+# endif /* defined(PERL_IN_PERL_C) */
+# if defined(PERL_IN_PP_C)
+# define do_chomp(a,b,c) S_do_chomp(aTHX_ a,b,c)
+# define do_delete_local() S_do_delete_local(aTHX)
+# define refto(a) S_refto(aTHX_ a)
+# endif
+# if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+# define lossless_NV_to_IV S_lossless_NV_to_IV
+# endif
+# if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
+# define _to_upper_title_latin1(a,b,c,d) Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_PP_CTL_C)
+# 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)
+# define docatch(a) S_docatch(aTHX_ a)
+# define doeval_compile(a,b,c,d) S_doeval_compile(aTHX_ a,b,c,d)
+# define dofindlabel(a,b,c,d,e,f) S_dofindlabel(aTHX_ a,b,c,d,e,f)
+# define doparseform(a) S_doparseform(aTHX_ a)
+# define dopoptoeval(a) S_dopoptoeval(aTHX_ a)
+# define dopoptogivenfor(a) S_dopoptogivenfor(aTHX_ a)
+# define dopoptolabel(a,b,c) S_dopoptolabel(aTHX_ a,b,c)
+# 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 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
+# define path_is_searchable S_path_is_searchable
+# define run_user_filter(a,b,c) S_run_user_filter(aTHX_ a,b,c)
+# define rxres_free(a) S_rxres_free(aTHX_ a)
+# define rxres_restore(a,b) S_rxres_restore(aTHX_ a,b)
+# define save_lines(a,b) S_save_lines(aTHX_ a,b)
+# if !defined(PERL_DISABLE_PMC)
+# define doopen_pm(a) S_doopen_pm(aTHX_ a)
+# endif
+# endif /* defined(PERL_IN_PP_CTL_C) */
+# if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
+# define invoke_exception_hook(a,b) Perl_invoke_exception_hook(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_PP_HOT_C)
+# define do_oddball(a,b) S_do_oddball(aTHX_ a,b)
+# define opmethod_stash(a) S_opmethod_stash(aTHX_ a)
+# define should_we_output_Debug_r(a) S_should_we_output_Debug_r(aTHX_ a)
+# endif
+# if defined(PERL_IN_PP_PACK_C)
+# 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)
+# define group_end(a,b,c) S_group_end(aTHX_ a,b,c)
+# 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)
+# define sv_exp_grow(a,b) S_sv_exp_grow(aTHX_ a,b)
+# define unpack_rec(a,b,c,d,e) S_unpack_rec(aTHX_ a,b,c,d,e)
+# endif /* defined(PERL_IN_PP_PACK_C) */
+# if defined(PERL_IN_PP_SORT_C)
+# define amagic_cmp(a,b) S_amagic_cmp(aTHX_ a,b)
+# define amagic_cmp_desc(a,b) S_amagic_cmp_desc(aTHX_ a,b)
+# define amagic_i_ncmp(a,b) S_amagic_i_ncmp(aTHX_ a,b)
+# define amagic_i_ncmp_desc(a,b) S_amagic_i_ncmp_desc(aTHX_ a,b)
+# define amagic_ncmp(a,b) S_amagic_ncmp(aTHX_ a,b)
+# define amagic_ncmp_desc(a,b) S_amagic_ncmp_desc(aTHX_ a,b)
+# define cmp_desc(a,b) S_cmp_desc(aTHX_ a,b)
+# define sortcv(a,b) S_sortcv(aTHX_ a,b)
+# define sortcv_stacked(a,b) S_sortcv_stacked(aTHX_ a,b)
+# define sortcv_xsub(a,b) S_sortcv_xsub(aTHX_ a,b)
+# define sortsv_flags_impl(a,b,c,d) S_sortsv_flags_impl(aTHX_ a,b,c,d)
+# define sv_i_ncmp(a,b) S_sv_i_ncmp(aTHX_ a,b)
+# define sv_i_ncmp_desc(a,b) S_sv_i_ncmp_desc(aTHX_ a,b)
+# define sv_ncmp(a,b) S_sv_ncmp(aTHX_ a,b)
+# define sv_ncmp_desc(a,b) S_sv_ncmp_desc(aTHX_ a,b)
+# if defined(USE_LOCALE_COLLATE)
+# define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
+# define amagic_cmp_locale_desc(a,b) S_amagic_cmp_locale_desc(aTHX_ a,b)
+# define cmp_locale_desc(a,b) S_cmp_locale_desc(aTHX_ a,b)
+# endif
+# endif /* defined(PERL_IN_PP_SORT_C) */
+# if defined(PERL_IN_PP_SYS_C)
+# define doform(a,b,c) S_doform(aTHX_ a,b,c)
+# define space_join_names_mortal(a) S_space_join_names_mortal(aTHX_ a)
+# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+# define dooneliner(a,b) S_dooneliner(aTHX_ a,b)
+# endif
+# endif
+# if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+# define initialize_invlist_guts(a,b) S_initialize_invlist_guts(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_SCOPE_C)
+# define save_pushptri32ptr(a,b,c,d) S_save_pushptri32ptr(aTHX_ a,b,c,d)
+# define save_scalar_at(a,b) S_save_scalar_at(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_TOKE_C)
+# define ao(a) S_ao(aTHX_ a)
+# define check_uni() S_check_uni(aTHX)
+# define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c)
+# define filter_gets(a,b) S_filter_gets(aTHX_ a,b)
+# define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b)
+# define force_ident(a,b) S_force_ident(aTHX_ a,b)
+# define force_ident_maybe_lex(a) S_force_ident_maybe_lex(aTHX_ a)
+# define force_next(a) S_force_next(aTHX_ a)
+# define force_strict_version(a) S_force_strict_version(aTHX_ a)
+# define force_version(a,b) S_force_version(aTHX_ a,b)
+# define force_word(a,b,c,d) S_force_word(aTHX_ a,b,c,d)
+# define get_and_check_backslash_N_name_wrapper(a,b) S_get_and_check_backslash_N_name_wrapper(aTHX_ a,b)
+# define incline(a,b) S_incline(aTHX_ a,b)
+# define intuit_method(a,b,c) S_intuit_method(aTHX_ a,b,c)
+# define intuit_more(a,b) S_intuit_more(aTHX_ a,b)
+# define lop(a,b,c) S_lop(aTHX_ a,b,c)
+# define missingterm(a,b) S_missingterm(aTHX_ a,b)
+# define no_op(a,b) S_no_op(aTHX_ a,b)
+# define parse_ident(a,b,c,d,e,f,g) S_parse_ident(aTHX_ a,b,c,d,e,f,g)
+# define pending_ident() S_pending_ident(aTHX)
+# define scan_const(a) S_scan_const(aTHX_ a)
+# define scan_formline(a) S_scan_formline(aTHX_ a)
+# define scan_heredoc(a) S_scan_heredoc(aTHX_ a)
+# 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_subst(a) S_scan_subst(aTHX_ a)
+# define scan_trans(a) S_scan_trans(aTHX_ a)
+# define sublex_done() S_sublex_done(aTHX)
+# define sublex_push() S_sublex_push(aTHX)
+# define sublex_start() S_sublex_start(aTHX)
+# define swallow_bom(a) S_swallow_bom(aTHX_ a)
+# define tokenize_use(a,b) S_tokenize_use(aTHX_ a,b)
+# 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(DEBUGGING)
+# define printbuf(a,b) S_printbuf(aTHX_ a,b)
+# define tokereport(a,b) S_tokereport(aTHX_ a,b)
+# endif
+# if defined(PERL_CR_FILTER)
+# define cr_textfilter(a,b,c) S_cr_textfilter(aTHX_ a,b,c)
+# define strip_return(a) S_strip_return(aTHX_ a)
+# endif
+# if !defined(PERL_NO_UTF16_FILTER)
+# define add_utf16_textfilter(a,b) S_add_utf16_textfilter(aTHX_ a,b)
+# define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c)
+# endif
+# endif /* defined(PERL_IN_TOKE_C) */
+# if defined(PERL_IN_UNIVERSAL_C)
+# define isa_lookup(a,b,c,d,e) S_isa_lookup(aTHX_ a,b,c,d,e)
+# define sv_derived_from_svpvn(a,b,c,d,e) S_sv_derived_from_svpvn(aTHX_ a,b,c,d,e)
+# endif
+# if defined(PERL_IN_UTF8_C)
+# define _to_utf8_case(a,b,c,d,e,f,g,h,i) S__to_utf8_case(aTHX_ a,b,c,d,e,f,g,h,i)
+# define check_locale_boundary_crossing(a,b,c,d) S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
+# define does_utf8_overflow S_does_utf8_overflow
+# define isFF_overlong S_isFF_overlong
+# define is_utf8_common(a,b,c) S_is_utf8_common(aTHX_ a,b,c)
+# define is_utf8_overlong S_is_utf8_overlong
+# define new_msg_hv(a,b,c) S_new_msg_hv(aTHX_ a,b,c)
+# define to_case_cp_list(a,b,c,d,e,f,g,h) S_to_case_cp_list(aTHX_ a,b,c,d,e,f,g,h)
+# define to_lower_latin1 S_to_lower_latin1
+# define turkic_fc(a,b,c,d) S_turkic_fc(aTHX_ a,b,c,d)
+# define turkic_lc(a,b,c,d) S_turkic_lc(aTHX_ a,b,c,d)
+# define turkic_uc(a,b,c,d) S_turkic_uc(aTHX_ a,b,c,d)
+# define unexpected_non_continuation_text(a,b,c,d) S_unexpected_non_continuation_text(aTHX_ a,b,c,d)
+# if 0
+# define warn_on_first_deprecated_use(a,b,c,d,e,f) S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e,f)
+# endif
+# endif /* defined(PERL_IN_UTF8_C) */
+# if defined(PERL_IN_UTIL_C)
+# define ckwarn_common(a) S_ckwarn_common(aTHX_ a)
+# define mess_alloc() S_mess_alloc(aTHX)
+# define ptr_hash S_ptr_hash
+# define with_queued_errors(a) S_with_queued_errors(aTHX_ a)
+# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+# define mem_log_common S_mem_log_common
+# endif
+# if defined(PERL_USES_PL_PIDSTATUS)
+# define pidgone(a,b) S_pidgone(aTHX_ a,b)
+# endif
+# endif /* defined(PERL_IN_UTIL_C) */
+# if defined(PERL_USE_3ARG_SIGHANDLER)
+# define sighandler Perl_sighandler
+# else
+# define sighandler Perl_sighandler
+# 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)
+# if !defined(PERL_IMPLICIT_SYS)
+# define PerlEnv_putenv(a) S_PerlEnv_putenv(aTHX_ a)
+# endif
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+# define op_relocate_sv(a,b) Perl_op_relocate_sv(aTHX_ a,b)
+# endif
+# endif /* defined(USE_ITHREADS) */
+# if defined(USE_LOCALE_COLLATE)
+# define magic_freecollxfrm(a,b) Perl_magic_freecollxfrm(aTHX_ a,b)
+# define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
+# 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(USE_QUADMATH)
+# define quadmath_format_needed Perl_quadmath_format_needed
+# define quadmath_format_valid Perl_quadmath_format_valid
+# endif
+# if defined(WIN32)
+# define get_win32_message_utf8ness(a) Perl_get_win32_message_utf8ness(aTHX_ a)
+# else
+# define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c)
+# endif
+# endif /* defined(PERL_CORE) */
+# if defined(PERL_CORE) || defined(PERL_EXT)
+# define _byte_dump_string(a,b,c) Perl__byte_dump_string(aTHX_ a,b,c)
+# define _inverse_folds(a,b,c) Perl__inverse_folds(aTHX_ a,b,c)
+# define append_utf8_from_native_byte Perl_append_utf8_from_native_byte
+# define av_reify(a) Perl_av_reify(aTHX_ a)
+# define cntrl_to_mnemonic Perl_cntrl_to_mnemonic
+# 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 delimcpy_no_escape Perl_delimcpy_no_escape
+# define do_uniprop_match Perl_do_uniprop_match
+# define get_and_check_backslash_N_name(a,b,c,d) Perl_get_and_check_backslash_N_name(aTHX_ a,b,c,d)
+# define get_deprecated_property_msg Perl_get_deprecated_property_msg
+# define get_prop_definition(a) Perl_get_prop_definition(aTHX_ a)
+# define get_prop_values Perl_get_prop_values
+# define load_charnames(a,b,c,d) Perl_load_charnames(aTHX_ a,b,c,d)
+# define mbtowc_(a,b,c) Perl_mbtowc_(aTHX_ a,b,c)
+# define mg_find_mglob(a) Perl_mg_find_mglob(aTHX_ a)
+# define multiconcat_stringify(a) Perl_multiconcat_stringify(aTHX_ a)
+# define multideref_stringify(a,b) Perl_multideref_stringify(aTHX_ a,b)
+# define my_strftime8_temp(a,b,c,d,e,f,g,h,i,j,k) Perl_my_strftime8_temp(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
+# 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)
+# define reg_named_buff_iter(a,b,c) Perl_reg_named_buff_iter(aTHX_ a,b,c)
+# define reg_numbered_buff_fetch(a,b,c) Perl_reg_numbered_buff_fetch(aTHX_ a,b,c)
+# define reg_numbered_buff_fetch_flags(a,b,c,d) Perl_reg_numbered_buff_fetch_flags(aTHX_ a,b,c,d)
+# define reg_numbered_buff_length(a,b,c) Perl_reg_numbered_buff_length(aTHX_ a,b,c)
+# 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 report_uninit(a) Perl_report_uninit(aTHX_ a)
+# define scan_str(a,b,c,d,e) Perl_scan_str(aTHX_ a,b,c,d,e)
+# define scan_word(a,b,c,d,e) Perl_scan_word(aTHX_ a,b,c,d,e)
+# define scan_word6(a,b,c,d,e,f) Perl_scan_word6(aTHX_ a,b,c,d,e,f)
+# define skipspace_flags(a,b) Perl_skipspace_flags(aTHX_ a,b)
+# define sv_magicext_mglob(a) Perl_sv_magicext_mglob(aTHX_ a)
+# define sv_only_taint_gmagic Perl_sv_only_taint_gmagic
+# define utf16_to_utf8_base(a,b,c,d,e,f) Perl_utf16_to_utf8_base(aTHX_ a,b,c,d,e,f)
+# define utf8_to_utf16_base(a,b,c,d,e,f) Perl_utf8_to_utf16_base(aTHX_ a,b,c,d,e,f)
+# define validate_proto(a,b,c,d) Perl_validate_proto(aTHX_ a,b,c,d)
+# define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a)
+# define yylex() Perl_yylex(aTHX)
+# define isSCRIPT_RUN(a,b,c) Perl_isSCRIPT_RUN(aTHX_ a,b,c)
+# define is_utf8_non_invariant_string Perl_is_utf8_non_invariant_string
+# define sv_or_pv_pos_u2b(a,b,c,d) S_sv_or_pv_pos_u2b(aTHX_ a,b,c,d)
+# define variant_under_utf8_count S_variant_under_utf8_count
+# if !defined(HAS_MEMRCHR)
+# define my_memrchr S_my_memrchr
+# endif
+# if defined(PERL_ANY_COW)
+# define sv_setsv_cow(a,b) Perl_sv_setsv_cow(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || \
+ defined(PERL_IN_UTF8_C)
+# define _invlist_contains_cp S__invlist_contains_cp
+# define _invlist_len S__invlist_len
+# define _invlist_search Perl__invlist_search
+# define get_invlist_offset_addr S_get_invlist_offset_addr
+# define invlist_array S_invlist_array
+# define is_invlist S_is_invlist
+# endif
+# if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY)
+# define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
+# define invlist_extend(a,b) S_invlist_extend(aTHX_ a,b)
+# define invlist_highest S_invlist_highest
+# define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
+# endif
+# if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY) || 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_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)
+# endif
+# if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+ defined(PERL_IN_TOKE_C)
+# define form_alien_digit_msg(a,b,c,d,e,f) Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
+# define grok_bslash_c(a,b,c,d) Perl_grok_bslash_c(aTHX_ a,b,c,d)
+# define grok_bslash_o(a,b,c,d,e,f,g,h) Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
+# define grok_bslash_x(a,b,c,d,e,f,g,h) Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
+# endif
+# if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+ defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
+# define form_cp_too_large_msg(a,b,c,d) Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY)
+# define _invlist_dump(a,b,c,d) Perl__invlist_dump(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
+# define gv_stashsvpvn_cached(a,b,c,d) Perl_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+# define get_invlist_iter_addr S_get_invlist_iter_addr
+# define invlist_iterfinish S_invlist_iterfinish
+# define invlist_iterinit S_invlist_iterinit
+# define invlist_iternext S_invlist_iternext
+# endif
+# if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_UTF8_C)
+# define _invlistEQ(a,b,c) Perl__invlistEQ(aTHX_ a,b,c)
+# define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
+# endif
+# if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+# define get_regex_charset_name S_get_regex_charset_name
+# endif
+# if defined(PERL_IN_REGCOMP_ANY)
+# define add_above_Latin1_folds(a,b,c) Perl_add_above_Latin1_folds(aTHX_ a,b,c)
+# define construct_ahocorasick_from_trie(a,b,c) Perl_construct_ahocorasick_from_trie(aTHX_ a,b,c)
+# define get_ANYOFHbbm_contents(a) Perl_get_ANYOFHbbm_contents(aTHX_ a)
+# define get_ANYOFM_contents(a) Perl_get_ANYOFM_contents(aTHX_ a)
+# define invlist_contents(a,b) S_invlist_contents(aTHX_ a,b)
+# define invlist_highest_range_start S_invlist_highest_range_start
+# define invlist_is_iterating S_invlist_is_iterating
+# define invlist_lowest S_invlist_lowest
+# define is_ssc_worth_it Perl_is_ssc_worth_it
+# define join_exact(a,b,c,d,e,f,g) Perl_join_exact(aTHX_ a,b,c,d,e,f,g)
+# define make_trie(a,b,c,d,e,f,g,h) Perl_make_trie(aTHX_ a,b,c,d,e,f,g,h)
+# define populate_anyof_bitmap_from_invlist(a,b) Perl_populate_anyof_bitmap_from_invlist(aTHX_ a,b)
+# define reg_add_data Perl_reg_add_data
+# define scan_commit(a,b,c,d) Perl_scan_commit(aTHX_ a,b,c,d)
+# define set_ANYOF_arg(a,b,c,d,e) Perl_set_ANYOF_arg(aTHX_ a,b,c,d,e)
+# define ssc_finalize(a,b) Perl_ssc_finalize(aTHX_ a,b)
+# define ssc_init(a,b) Perl_ssc_init(aTHX_ a,b)
+# define study_chunk(a,b,c,d,e,f,g,h,i,j,k,l) Perl_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l)
+# if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING)
+# 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)
+# endif
+# endif /* defined(PERL_IN_REGCOMP_ANY) */
+# if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
+# define invlist_clone(a,b) Perl_invlist_clone(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_REGCOMP_C)
+# define add_multi_match(a,b,c) S_add_multi_match(aTHX_ a,b,c)
+# define change_engine_size(a,b) S_change_engine_size(aTHX_ a,b)
+# define compile_wildcard(a,b,c) S_compile_wildcard(aTHX_ a,b,c)
+# define compute_EXACTish S_compute_EXACTish
+# define edit_distance S_edit_distance
+# define execute_wildcard(a,b,c,d,e,f,g) S_execute_wildcard(aTHX_ a,b,c,d,e,f,g)
+# define find_first_differing_byte_pos S_find_first_differing_byte_pos
+# define get_quantifier_value(a,b,c) S_get_quantifier_value(aTHX_ a,b,c)
+# define grok_bslash_N(a,b,c,d,e,f,g) S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
+# define handle_named_backref(a,b,c,d) S_handle_named_backref(aTHX_ a,b,c,d)
+# define handle_names_wildcard(a,b,c,d) S_handle_names_wildcard(aTHX_ a,b,c,d)
+# define handle_possible_posix(a,b,c,d,e) S_handle_possible_posix(aTHX_ a,b,c,d,e)
+# define handle_regex_sets(a,b,c,d) S_handle_regex_sets(aTHX_ a,b,c,d)
+# define handle_user_defined_property(a,b,c,d,e,f,g,h,i,j) S_handle_user_defined_property(aTHX_ a,b,c,d,e,f,g,h,i,j)
+# define nextchar(a) S_nextchar(aTHX_ a)
+# define optimize_regclass(a,b,c,d,e,f,g,h,i,j) S_optimize_regclass(aTHX_ a,b,c,d,e,f,g,h,i,j)
+# define output_posix_warnings(a,b) S_output_posix_warnings(aTHX_ a,b)
+# define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a)
+# define parse_uniprop_string(a,b,c,d,e,f,g,h,i,j) S_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i,j)
+# define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d)
+# define reg1node(a,b,c) S_reg1node(aTHX_ a,b,c)
+# define reg2node(a,b,c,d) S_reg2node(aTHX_ a,b,c,d)
+# define reg_la_NOTHING(a,b,c) S_reg_la_NOTHING(aTHX_ a,b,c)
+# define reg_la_OPFAIL(a,b,c) S_reg_la_OPFAIL(aTHX_ a,b,c)
+# define reg_node(a,b) S_reg_node(aTHX_ a,b)
+# define reg_scan_name(a,b) S_reg_scan_name(aTHX_ a,b)
+# define reg_skipcomment S_reg_skipcomment
+# 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,h,i) S_regclass(aTHX_ a,b,c,d,e,f,g,h,i)
+# 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) S_regnode_guts(aTHX_ a,b)
+# define regpiece(a,b,c) S_regpiece(aTHX_ a,b,c)
+# define regpnode(a,b,c) S_regpnode(aTHX_ a,b,c)
+# define regtail(a,b,c,d) S_regtail(aTHX_ a,b,c,d)
+# define set_regex_pv(a,b) S_set_regex_pv(aTHX_ a,b)
+# define skip_to_be_ignored_text(a,b,c) S_skip_to_be_ignored_text(aTHX_ a,b,c)
+# if defined(DEBUGGING)
+# define regnode_guts_debug(a,b,c) S_regnode_guts_debug(aTHX_ a,b,c)
+# define regtail_study(a,b,c,d) S_regtail_study(aTHX_ a,b,c,d)
+# if defined(ENABLE_REGEX_SETS_DEBUGGING)
+# define dump_regex_sets_structures(a,b,c,d) S_dump_regex_sets_structures(aTHX_ a,b,c,d)
+# endif
+# endif
+# endif /* defined(PERL_IN_REGCOMP_C) */
+# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
+# define populate_bitmap_from_invlist(a,b,c,d) Perl_populate_bitmap_from_invlist(aTHX_ a,b,c,d)
+# define populate_invlist_from_bitmap(a,b,c,d) Perl_populate_invlist_from_bitmap(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+ defined(PERL_IN_TOKE_C)
+# define is_grapheme(a,b,c,d) Perl_is_grapheme(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+ defined(PERL_IN_UTF8_C)
+# define _to_fold_latin1 Perl__to_fold_latin1
+# endif
+# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
+# define regcurly Perl_regcurly
+# endif
+# if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
+# define put_charclass_bitmap_innards(a,b,c,d,e,f,g) S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e,f,g)
+# define put_charclass_bitmap_innards_common(a,b,c,d,e,f) S_put_charclass_bitmap_innards_common(aTHX_ a,b,c,d,e,f)
+# define put_charclass_bitmap_innards_invlist(a,b) S_put_charclass_bitmap_innards_invlist(aTHX_ a,b)
+# 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)
+# endif
+# if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+# define _append_range_to_invlist(a,b,c) S__append_range_to_invlist(aTHX_ a,b,c)
+# define _invlist_array_init S__invlist_array_init
+# define get_invlist_previous_index_addr S_get_invlist_previous_index_addr
+# define invlist_clear(a) S_invlist_clear(aTHX_ a)
+# define invlist_max S_invlist_max
+# define invlist_previous_index S_invlist_previous_index
+# define invlist_replace_list_destroys_src(a,b) S_invlist_replace_list_destroys_src(aTHX_ a,b)
+# define invlist_set_previous_index S_invlist_set_previous_index
+# define invlist_trim S_invlist_trim
+# endif /* defined(PERL_IN_REGCOMP_INVLIST_C) &&
+ !defined(PERL_EXT_RE_BUILD) */
+# if defined(PERL_IN_REGCOMP_STUDY_C)
+# define get_ANYOF_cp_list_for_ssc(a,b) S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
+# define make_exactf_invlist(a,b) S_make_exactf_invlist(aTHX_ a,b)
+# define rck_elide_nothing(a) S_rck_elide_nothing(aTHX_ a)
+# 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 S_ssc_clear_locale
+# define ssc_cp_and(a,b) S_ssc_cp_and(aTHX_ a,b)
+# define ssc_intersection(a,b,c) S_ssc_intersection(aTHX_ a,b,c)
+# 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 unwind_scan_frames(a) S_unwind_scan_frames(aTHX_ a)
+# endif /* defined(PERL_IN_REGCOMP_STUDY_C) */
+# if defined(PERL_IN_REGEXEC_C)
+# define advance_one_LB(a,b,c) S_advance_one_LB(aTHX_ a,b,c)
+# define advance_one_SB(a,b,c) S_advance_one_SB(aTHX_ a,b,c)
+# define advance_one_WB(a,b,c,d) S_advance_one_WB(aTHX_ a,b,c,d)
+# define backup_one_GCB(a,b,c) S_backup_one_GCB(aTHX_ a,b,c)
+# define backup_one_LB(a,b,c) S_backup_one_LB(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 capture_clear(a,b,c,d) S_capture_clear(aTHX_ a,b,c,d comma_aDEPTH)
+# define find_byclass(a,b,c,d,e) S_find_byclass(aTHX_ a,b,c,d,e)
+# define find_next_masked S_find_next_masked
+# define find_span_end S_find_span_end
+# define find_span_end_mask S_find_span_end_mask
+# define foldEQ_latin1_s2_folded(a,b,c) S_foldEQ_latin1_s2_folded(aTHX_ a,b,c)
+# define isFOO_lc(a,b) S_isFOO_lc(aTHX_ a,b)
+# define isFOO_utf8_lc(a,b,c) S_isFOO_utf8_lc(aTHX_ a,b,c)
+# define isGCB(a,b,c,d,e) S_isGCB(aTHX_ a,b,c,d,e)
+# define isLB(a,b,c,d,e,f) S_isLB(aTHX_ a,b,c,d,e,f)
+# 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 regcp_restore(a,b,c) S_regcp_restore(aTHX_ a,b,c comma_aDEPTH)
+# define regcppop(a,b) S_regcppop(aTHX_ a,b comma_aDEPTH)
+# define regcppush(a,b,c) S_regcppush(aTHX_ a,b,c comma_aDEPTH)
+# define reghop3 S_reghop3
+# define reghop4 S_reghop4
+# define reghopmaybe3 S_reghopmaybe3
+# define reginclass(a,b,c,d,e) S_reginclass(aTHX_ a,b,c,d,e)
+# define regmatch(a,b,c) S_regmatch(aTHX_ a,b,c)
+# define regrepeat(a,b,c,d,e,f) S_regrepeat(aTHX_ a,b,c,d,e,f comma_aDEPTH)
+# define regtry(a,b) S_regtry(aTHX_ a,b)
+# define to_byte_substr(a) S_to_byte_substr(aTHX_ a)
+# define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
+# define unwind_paren(a,b,c) S_unwind_paren(aTHX_ a,b,c comma_aDEPTH)
+# if defined(DEBUGGING)
+# define debug_start_match(a,b,c,d,e) S_debug_start_match(aTHX_ a,b,c,d,e)
+# define dump_exec_pos(a,b,c,d,e,f,g) S_dump_exec_pos(aTHX_ a,b,c,d,e,f,g)
+# if !defined(MULTIPLICITY) || defined(PERL_CORE)
+# define re_exec_indentf(a,...) Perl_re_exec_indentf(aTHX_ a,__VA_ARGS__)
+# endif
+# endif
+# endif /* defined(PERL_IN_REGEXEC_C) */
+# endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+# if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
+# define finalize_optree(a) Perl_finalize_optree(aTHX_ a)
+# define optimize_optree(a) Perl_optimize_optree(aTHX_ a)
+# endif
+# if !defined(PERL_IMPLICIT_SYS)
+# define my_pclose(a) Perl_my_pclose(aTHX_ a)
+# define my_popen(a,b) Perl_my_popen(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PAD_C) || defined(PERL_IN_PERLY_C) || \
+ defined(PERL_IN_TOKE_C)
+# define class_add_ADJUST(a,b) Perl_class_add_ADJUST(aTHX_ a,b)
+# define class_add_field(a,b) Perl_class_add_field(aTHX_ a,b)
+# define class_apply_attributes(a,b) Perl_class_apply_attributes(aTHX_ a,b)
+# define class_apply_field_attributes(a,b) Perl_class_apply_field_attributes(aTHX_ a,b)
+# define class_prepare_initfield_parse() Perl_class_prepare_initfield_parse(aTHX)
+# define class_prepare_method_parse(a) Perl_class_prepare_method_parse(aTHX_ a)
+# define class_seal_stash(a) Perl_class_seal_stash(aTHX_ a)
+# define class_set_field_defop(a,b,c) Perl_class_set_field_defop(aTHX_ a,b,c)
+# define class_setup_stash(a) Perl_class_setup_stash(aTHX_ a)
+# define class_wrap_method_body(a) Perl_class_wrap_method_body(aTHX_ a)
+# define croak_kw_unless_class(a) Perl_croak_kw_unless_class(aTHX_ a)
+# endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_PAD_C) || defined(PERL_IN_PERLY_C) ||
+ defined(PERL_IN_TOKE_C) */
+# if defined(PERL_IN_REGEX_ENGINE)
+# define check_regnode_after(a,b) Perl_check_regnode_after(aTHX_ a,b)
+# define regnext(a) Perl_regnext(aTHX_ a)
+# define regnode_after(a,b) Perl_regnode_after(aTHX_ a,b)
+# if defined(DEBUGGING)
+# if ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
+ ( defined(PERL_CORE) || defined(PERL_EXT) )
+# define re_indentf(a,...) Perl_re_indentf(aTHX_ a,__VA_ARGS__)
+# define re_printf(...) Perl_re_printf(aTHX_ __VA_ARGS__)
+# endif
+# if defined(PERL_CORE) || defined(PERL_EXT)
+# define debug_peep(a,b,c,d,e) Perl_debug_peep(aTHX_ a,b,c,d,e)
+# define debug_show_study_flags(a,b,c) Perl_debug_show_study_flags(aTHX_ a,b,c)
+# define debug_studydata(a,b,c,d,e,f,g) Perl_debug_studydata(aTHX_ a,b,c,d,e,f,g)
+# define dumpuntil(a,b,c,d,e,f,g,h) Perl_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
+# define regprop(a,b,c,d,e) Perl_regprop(aTHX_ a,b,c,d,e)
+# endif
+# endif /* defined(DEBUGGING) */
+# if defined(PERL_EXT_RE_BUILD)
+# if defined(PERL_CORE) || defined(PERL_EXT)
+# define get_re_gclass_aux_data(a,b,c,d,e,f) Perl_get_re_gclass_aux_data(aTHX_ a,b,c,d,e,f)
+# endif
+# elif defined(PERL_CORE) || defined(PERL_EXT)
+# define get_regclass_aux_data(a,b,c,d,e,f) Perl_get_regclass_aux_data(aTHX_ a,b,c,d,e,f)
+# endif
+# endif /* defined(PERL_IN_REGEX_ENGINE) */
+# if defined(PERL_IN_SV_C)
+# define more_sv() Perl_more_sv(aTHX)
+# if defined(PERL_CORE)
+# define F0convert S_F0convert
+# define anonymise_cv_maybe(a,b) S_anonymise_cv_maybe(aTHX_ a,b)
+# define assert_uft8_cache_coherent(a,b,c,d) S_assert_uft8_cache_coherent(aTHX_ a,b,c,d)
+# define curse(a,b) S_curse(aTHX_ a,b)
+# 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,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 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
+# define sv_pos_u2b_midway S_sv_pos_u2b_midway
+# define sv_unglob(a,b) S_sv_unglob(aTHX_ a,b)
+# define uiv_2buf S_uiv_2buf
+# define utf8_mg_len_cache_update(a,b,c) S_utf8_mg_len_cache_update(aTHX_ a,b,c)
+# define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e)
+# define visit(a,b,c) S_visit(aTHX_ a,b,c)
+# if defined(DEBUGGING)
+# define del_sv(a) S_del_sv(aTHX_ a)
+# endif
+# if !defined(NV_PRESERVES_UV)
+# if defined(DEBUGGING)
+# define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b)
+# else
+# define sv_2iuv_non_preserve(a) S_sv_2iuv_non_preserve(aTHX_ a)
+# endif
+# endif
+# if defined(PERL_DEBUG_READONLY_COW)
+# define sv_buf_to_rw(a) S_sv_buf_to_rw(aTHX_ a)
+# endif
+# if defined(USE_ITHREADS)
+# define sv_dup_common(a,b) S_sv_dup_common(aTHX_ a,b)
+# define sv_dup_hvaux(a,b,c) S_sv_dup_hvaux(aTHX_ a,b,c)
+# define sv_dup_inc_multiple(a,b,c,d) S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
+# define unreferenced_to_tmp_stack(a) S_unreferenced_to_tmp_stack(aTHX_ a)
+# endif
+# endif /* defined(PERL_CORE) */
+# endif /* defined(PERL_IN_SV_C) */
+# if defined(PERL_MEM_LOG)
+# define mem_log_alloc Perl_mem_log_alloc
+# define mem_log_del_sv Perl_mem_log_del_sv
+# define mem_log_free Perl_mem_log_free
+# define mem_log_new_sv Perl_mem_log_new_sv
+# define mem_log_realloc Perl_mem_log_realloc
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+# define cx_popblock(a) Perl_cx_popblock(aTHX_ a)
+# define cx_popeval(a) Perl_cx_popeval(aTHX_ a)
+# define cx_popformat(a) Perl_cx_popformat(aTHX_ a)
+# define cx_popgiven(a) Perl_cx_popgiven(aTHX_ a)
+# define cx_poploop(a) Perl_cx_poploop(aTHX_ a)
+# define cx_popsub(a) Perl_cx_popsub(aTHX_ a)
+# define cx_popsub_args(a) Perl_cx_popsub_args(aTHX_ a)
+# define cx_popsub_common(a) Perl_cx_popsub_common(aTHX_ a)
+# define cx_popwhen(a) Perl_cx_popwhen(aTHX_ a)
+# define cx_pushblock(a,b,c,d) Perl_cx_pushblock(aTHX_ a,b,c,d)
+# define cx_pusheval(a,b,c) Perl_cx_pusheval(aTHX_ a,b,c)
+# define cx_pushformat(a,b,c,d) Perl_cx_pushformat(aTHX_ a,b,c,d)
+# define cx_pushgiven(a,b) Perl_cx_pushgiven(aTHX_ a,b)
+# define cx_pushloop_for(a,b,c) Perl_cx_pushloop_for(aTHX_ a,b,c)
+# define cx_pushloop_plain(a) Perl_cx_pushloop_plain(aTHX_ a)
+# define cx_pushsub(a,b,c,d) Perl_cx_pushsub(aTHX_ a,b,c,d)
+# define cx_pushtry(a,b) Perl_cx_pushtry(aTHX_ a,b)
+# define cx_pushwhen(a) Perl_cx_pushwhen(aTHX_ a)
+# define cx_topblock(a) Perl_cx_topblock(aTHX_ a)
+# define gimme_V() Perl_gimme_V(aTHX)
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+# if defined(PERL_USE_3ARG_SIGHANDLER)
+# define csighandler Perl_csighandler
+# else
+# define csighandler Perl_csighandler
+# endif
+# if defined(U64TYPE)
+# define lsbit_pos64 Perl_lsbit_pos64
+# define msbit_pos64 Perl_msbit_pos64
+# define single_1bit_pos64 Perl_single_1bit_pos64
+# 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)
+# define cop_file_avn(a) Perl_cop_file_avn(aTHX_ a)
+# define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d)
+# define dirp_dup(a,b) Perl_dirp_dup(aTHX_ a,b)
+# define fp_dup(a,b,c) Perl_fp_dup(aTHX_ a,b,c)
+# define gp_dup(a,b) Perl_gp_dup(aTHX_ a,b)
+# define he_dup(a,b,c) Perl_he_dup(aTHX_ a,b,c)
+# define hek_dup(a,b) Perl_hek_dup(aTHX_ a,b)
+# define mg_dup(a,b) Perl_mg_dup(aTHX_ a,b)
+# define newPADOP(a,b,c) Perl_newPADOP(aTHX_ a,b,c)
+# define parser_dup(a,b) Perl_parser_dup(aTHX_ a,b)
+# define re_dup_guts(a,b,c) Perl_re_dup_guts(aTHX_ a,b,c)
+# define regdupe_internal(a,b) Perl_regdupe_internal(aTHX_ a,b)
+# define rvpv_dup(a,b,c) Perl_rvpv_dup(aTHX_ a,b,c)
+# define si_dup(a,b) Perl_si_dup(aTHX_ a,b)
+# define ss_dup(a,b) Perl_ss_dup(aTHX_ a,b)
+# 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 /* defined(USE_ITHREADS) */
+# if defined(USE_LOCALE_COLLATE)
+# define sv_collxfrm_flags(a,b,c) Perl_sv_collxfrm_flags(aTHX_ a,b,c)
+# if ( defined(PERL_CORE) || defined(PERL_EXT) ) && \
+ ( defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
+ defined(PERL_IN_SV_C) )
+# define mem_collxfrm_(a,b,c,d) Perl_mem_collxfrm_(aTHX_ a,b,c,d)
+# endif
+# endif
+# if defined(USE_PERLIO)
+# define PerlIO_clearerr(a) Perl_PerlIO_clearerr(aTHX_ a)
+# define PerlIO_close(a) Perl_PerlIO_close(aTHX_ a)
+# define PerlIO_eof(a) Perl_PerlIO_eof(aTHX_ a)
+# define PerlIO_error(a) Perl_PerlIO_error(aTHX_ a)
+# define PerlIO_fileno(a) Perl_PerlIO_fileno(aTHX_ a)
+# define PerlIO_fill(a) Perl_PerlIO_fill(aTHX_ a)
+# define PerlIO_flush(a) Perl_PerlIO_flush(aTHX_ a)
+# define PerlIO_get_base(a) Perl_PerlIO_get_base(aTHX_ a)
+# define PerlIO_get_bufsiz(a) Perl_PerlIO_get_bufsiz(aTHX_ a)
+# define PerlIO_get_cnt(a) Perl_PerlIO_get_cnt(aTHX_ a)
+# define PerlIO_get_ptr(a) Perl_PerlIO_get_ptr(aTHX_ a)
+# define PerlIO_read(a,b,c) Perl_PerlIO_read(aTHX_ a,b,c)
+# define PerlIO_seek(a,b,c) Perl_PerlIO_seek(aTHX_ a,b,c)
+# define PerlIO_set_cnt(a,b) Perl_PerlIO_set_cnt(aTHX_ a,b)
+# define PerlIO_set_ptrcnt(a,b,c) Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c)
+# define PerlIO_setlinebuf(a) Perl_PerlIO_setlinebuf(aTHX_ a)
+# define PerlIO_stderr() Perl_PerlIO_stderr(aTHX)
+# define PerlIO_stdin() Perl_PerlIO_stdin(aTHX)
+# define PerlIO_stdout() Perl_PerlIO_stdout(aTHX)
+# define PerlIO_tell(a) Perl_PerlIO_tell(aTHX_ a)
+# 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 /* defined(USE_PERLIO) */
+# if defined(VMS) || defined(WIN32)
+# define do_aspawn(a,b,c) Perl_do_aspawn(aTHX_ a,b,c)
+# define do_spawn(a) Perl_do_spawn(aTHX_ a)
+# define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a)
+# endif
+# if defined(WIN32)
+# define get_context Perl_get_context
+# else
+# define get_context Perl_get_context
+# endif
+#endif /* !defined(PERL_NO_SHORT_NAMES) */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h
index 67ccd6b723..b2f7da6b67 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h
@@ -1,379 +1,371 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* embedvar.h
*
* Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ * 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022
+ * 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/embed.pl from data in embed.fnc,
- * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
+ * This file is built by regen/embed.pl from embed.fnc, intrpvar.h,
+ * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and
+ * regen/HeaderParser.pm.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
*/
-/* (Doing namespace management portably in C is really gross.) */
-
-/*
- The following combinations of MULTIPLICITY and PERL_IMPLICIT_CONTEXT
- are supported:
- 1) none
- 2) MULTIPLICITY # supported for compatibility
- 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
-
- All other combinations of these flags are errors.
-
- only #3 is supported directly, while #2 is a special
- case of #3 (supported by redefining vTHX appropriately).
-*/
-
#if defined(MULTIPLICITY)
-/* cases 2 and 3 above */
-
-# if defined(PERL_IMPLICIT_CONTEXT)
-# define vTHX aTHX
-# else
-# define vTHX PERL_GET_INTERP
-# endif
-
-#define PL_AboveLatin1 (vTHX->IAboveLatin1)
-#define PL_Assigned_invlist (vTHX->IAssigned_invlist)
-#define PL_CCC_non0_non230 (vTHX->ICCC_non0_non230)
-#define PL_DBcontrol (vTHX->IDBcontrol)
-#define PL_DBcv (vTHX->IDBcv)
-#define PL_DBgv (vTHX->IDBgv)
-#define PL_DBline (vTHX->IDBline)
-#define PL_DBsignal (vTHX->IDBsignal)
-#define PL_DBsingle (vTHX->IDBsingle)
-#define PL_DBsub (vTHX->IDBsub)
-#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_InMultiCharFold (vTHX->IInMultiCharFold)
-#define PL_LB_invlist (vTHX->ILB_invlist)
-#define PL_LIO (vTHX->ILIO)
-#define PL_Latin1 (vTHX->ILatin1)
-#define PL_Mem (vTHX->IMem)
-#define PL_MemParse (vTHX->IMemParse)
-#define PL_MemShared (vTHX->IMemShared)
-#define PL_Posix_ptrs (vTHX->IPosix_ptrs)
-#define PL_Private_Use (vTHX->IPrivate_Use)
-#define PL_Proc (vTHX->IProc)
-#define PL_SB_invlist (vTHX->ISB_invlist)
-#define PL_SCX_invlist (vTHX->ISCX_invlist)
-#define PL_Sock (vTHX->ISock)
-#define PL_StdIO (vTHX->IStdIO)
-#define PL_Sv (vTHX->ISv)
-#define PL_TR_SPECIAL_HANDLING_UTF8 (vTHX->ITR_SPECIAL_HANDLING_UTF8)
-#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_argvgv (vTHX->Iargvgv)
-#define PL_argvout_stack (vTHX->Iargvout_stack)
-#define PL_argvoutgv (vTHX->Iargvoutgv)
-#define PL_basetime (vTHX->Ibasetime)
-#define PL_beginav (vTHX->Ibeginav)
-#define PL_beginav_save (vTHX->Ibeginav_save)
-#define PL_blockhooks (vTHX->Iblockhooks)
-#define PL_body_arenas (vTHX->Ibody_arenas)
-#define PL_body_roots (vTHX->Ibody_roots)
-#define PL_bodytarget (vTHX->Ibodytarget)
-#define PL_breakable_sub_gen (vTHX->Ibreakable_sub_gen)
-#define PL_checkav (vTHX->Icheckav)
-#define PL_checkav_save (vTHX->Icheckav_save)
-#define PL_chopset (vTHX->Ichopset)
-#define PL_clocktick (vTHX->Iclocktick)
-#define PL_collation_ix (vTHX->Icollation_ix)
-#define PL_collation_name (vTHX->Icollation_name)
-#define PL_collation_standard (vTHX->Icollation_standard)
-#define PL_collxfrm_base (vTHX->Icollxfrm_base)
-#define PL_collxfrm_mult (vTHX->Icollxfrm_mult)
-#define PL_colors (vTHX->Icolors)
-#define PL_colorset (vTHX->Icolorset)
-#define PL_compcv (vTHX->Icompcv)
-#define PL_compiling (vTHX->Icompiling)
-#define PL_comppad (vTHX->Icomppad)
-#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_curcop (vTHX->Icurcop)
-#define PL_curcopdb (vTHX->Icurcopdb)
-#define PL_curlocales (vTHX->Icurlocales)
-#define PL_curpad (vTHX->Icurpad)
-#define PL_curpm (vTHX->Icurpm)
-#define PL_curpm_under (vTHX->Icurpm_under)
-#define PL_curstack (vTHX->Icurstack)
-#define PL_curstackinfo (vTHX->Icurstackinfo)
-#define PL_curstash (vTHX->Icurstash)
-#define PL_curstname (vTHX->Icurstname)
-#define PL_custom_op_descs (vTHX->Icustom_op_descs)
-#define PL_custom_op_names (vTHX->Icustom_op_names)
-#define PL_custom_ops (vTHX->Icustom_ops)
-#define PL_cv_has_eval (vTHX->Icv_has_eval)
-#define PL_dbargs (vTHX->Idbargs)
-#define PL_debstash (vTHX->Idebstash)
-#define PL_debug (vTHX->Idebug)
-#define PL_debug_pad (vTHX->Idebug_pad)
-#define PL_def_layerlist (vTHX->Idef_layerlist)
-#define PL_defgv (vTHX->Idefgv)
-#define PL_defoutgv (vTHX->Idefoutgv)
-#define PL_defstash (vTHX->Idefstash)
-#define PL_delaymagic (vTHX->Idelaymagic)
-#define PL_delaymagic_egid (vTHX->Idelaymagic_egid)
-#define PL_delaymagic_euid (vTHX->Idelaymagic_euid)
-#define PL_delaymagic_gid (vTHX->Idelaymagic_gid)
-#define PL_delaymagic_uid (vTHX->Idelaymagic_uid)
-#define PL_destroyhook (vTHX->Idestroyhook)
-#define PL_diehook (vTHX->Idiehook)
-#define PL_doswitches (vTHX->Idoswitches)
-#define PL_dowarn (vTHX->Idowarn)
-#define PL_dump_re_max_len (vTHX->Idump_re_max_len)
-#define PL_dumper_fd (vTHX->Idumper_fd)
-#define PL_dumpindent (vTHX->Idumpindent)
-#define PL_e_script (vTHX->Ie_script)
-#define PL_efloatbuf (vTHX->Iefloatbuf)
-#define PL_efloatsize (vTHX->Iefloatsize)
-#define PL_endav (vTHX->Iendav)
-#define PL_envgv (vTHX->Ienvgv)
-#define PL_errgv (vTHX->Ierrgv)
-#define PL_errors (vTHX->Ierrors)
-#define PL_eval_root (vTHX->Ieval_root)
-#define PL_eval_start (vTHX->Ieval_start)
-#define PL_evalseq (vTHX->Ievalseq)
-#define PL_exit_flags (vTHX->Iexit_flags)
-#define PL_exitlist (vTHX->Iexitlist)
-#define PL_exitlistlen (vTHX->Iexitlistlen)
-#define PL_fdpid (vTHX->Ifdpid)
-#define PL_filemode (vTHX->Ifilemode)
-#define PL_firstgv (vTHX->Ifirstgv)
-#define PL_forkprocess (vTHX->Iforkprocess)
-#define PL_formtarget (vTHX->Iformtarget)
-#define PL_generation (vTHX->Igeneration)
-#define PL_gensym (vTHX->Igensym)
-#define PL_globalstash (vTHX->Iglobalstash)
-#define PL_globhook (vTHX->Iglobhook)
-#define PL_hash_rand_bits (vTHX->Ihash_rand_bits)
-#define PL_hash_rand_bits_enabled (vTHX->Ihash_rand_bits_enabled)
-#define PL_hintgv (vTHX->Ihintgv)
-#define PL_hv_fetch_ent_mh (vTHX->Ihv_fetch_ent_mh)
-#define PL_in_clean_all (vTHX->Iin_clean_all)
-#define PL_in_clean_objs (vTHX->Iin_clean_objs)
-#define PL_in_eval (vTHX->Iin_eval)
-#define PL_in_load_module (vTHX->Iin_load_module)
-#define PL_in_some_fold (vTHX->Iin_some_fold)
-#define PL_in_utf8_COLLATE_locale (vTHX->Iin_utf8_COLLATE_locale)
-#define PL_in_utf8_CTYPE_locale (vTHX->Iin_utf8_CTYPE_locale)
-#define PL_in_utf8_turkic_locale (vTHX->Iin_utf8_turkic_locale)
-#define PL_incgv (vTHX->Iincgv)
-#define PL_initav (vTHX->Iinitav)
-#define PL_inplace (vTHX->Iinplace)
-#define PL_internal_random_state (vTHX->Iinternal_random_state)
-#define PL_isarev (vTHX->Iisarev)
-#define PL_known_layers (vTHX->Iknown_layers)
-#define PL_langinfo_buf (vTHX->Ilanginfo_buf)
-#define PL_langinfo_bufsize (vTHX->Ilanginfo_bufsize)
-#define PL_last_in_gv (vTHX->Ilast_in_gv)
-#define PL_lastfd (vTHX->Ilastfd)
-#define PL_lastgotoprobe (vTHX->Ilastgotoprobe)
-#define PL_laststatval (vTHX->Ilaststatval)
-#define PL_laststype (vTHX->Ilaststype)
-#define PL_lc_numeric_mutex_depth (vTHX->Ilc_numeric_mutex_depth)
-#define PL_locale_utf8ness (vTHX->Ilocale_utf8ness)
-#define PL_localizing (vTHX->Ilocalizing)
-#define PL_localpatches (vTHX->Ilocalpatches)
-#define PL_lockhook (vTHX->Ilockhook)
-#define PL_main_cv (vTHX->Imain_cv)
-#define PL_main_root (vTHX->Imain_root)
-#define PL_main_start (vTHX->Imain_start)
-#define PL_mainstack (vTHX->Imainstack)
-#define PL_markstack (vTHX->Imarkstack)
-#define PL_markstack_max (vTHX->Imarkstack_max)
-#define PL_markstack_ptr (vTHX->Imarkstack_ptr)
-#define PL_max_intro_pending (vTHX->Imax_intro_pending)
-#define PL_maxsysfd (vTHX->Imaxsysfd)
-#define PL_mbrlen_ps (vTHX->Imbrlen_ps)
-#define PL_mbrtowc_ps (vTHX->Imbrtowc_ps)
-#define PL_mem_log (vTHX->Imem_log)
-#define PL_memory_debug_header (vTHX->Imemory_debug_header)
-#define PL_mess_sv (vTHX->Imess_sv)
-#define PL_min_intro_pending (vTHX->Imin_intro_pending)
-#define PL_minus_E (vTHX->Iminus_E)
-#define PL_minus_F (vTHX->Iminus_F)
-#define PL_minus_a (vTHX->Iminus_a)
-#define PL_minus_c (vTHX->Iminus_c)
-#define PL_minus_l (vTHX->Iminus_l)
-#define PL_minus_n (vTHX->Iminus_n)
-#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_list (vTHX->Imy_cxt_list)
-#define PL_my_cxt_size (vTHX->Imy_cxt_size)
-#define PL_na (vTHX->Ina)
-#define PL_nomemok (vTHX->Inomemok)
-#define PL_numeric_name (vTHX->Inumeric_name)
-#define PL_numeric_radix_sv (vTHX->Inumeric_radix_sv)
-#define PL_numeric_standard (vTHX->Inumeric_standard)
-#define PL_numeric_underlying (vTHX->Inumeric_underlying)
-#define PL_numeric_underlying_is_standard (vTHX->Inumeric_underlying_is_standard)
-#define PL_ofsgv (vTHX->Iofsgv)
-#define PL_oldname (vTHX->Ioldname)
-#define PL_op (vTHX->Iop)
-#define PL_op_exec_cnt (vTHX->Iop_exec_cnt)
-#define PL_op_mask (vTHX->Iop_mask)
-#define PL_opfreehook (vTHX->Iopfreehook)
-#define PL_origalen (vTHX->Iorigalen)
-#define PL_origargc (vTHX->Iorigargc)
-#define PL_origargv (vTHX->Iorigargv)
-#define PL_origenviron (vTHX->Iorigenviron)
-#define PL_origfilename (vTHX->Iorigfilename)
-#define PL_ors_sv (vTHX->Iors_sv)
-#define PL_osname (vTHX->Iosname)
-#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)
-#define PL_perl_destruct_level (vTHX->Iperl_destruct_level)
-#define PL_perldb (vTHX->Iperldb)
-#define PL_perlio (vTHX->Iperlio)
-#define PL_phase (vTHX->Iphase)
-#define PL_pidstatus (vTHX->Ipidstatus)
-#define PL_preambleav (vTHX->Ipreambleav)
-#define PL_profiledata (vTHX->Iprofiledata)
-#define PL_psig_name (vTHX->Ipsig_name)
-#define PL_psig_pend (vTHX->Ipsig_pend)
-#define PL_psig_ptr (vTHX->Ipsig_ptr)
-#define PL_ptr_table (vTHX->Iptr_table)
-#define PL_random_state (vTHX->Irandom_state)
-#define PL_reentrant_buffer (vTHX->Ireentrant_buffer)
-#define PL_reentrant_retint (vTHX->Ireentrant_retint)
-#define PL_reg_curpm (vTHX->Ireg_curpm)
-#define PL_regex_pad (vTHX->Iregex_pad)
-#define PL_regex_padav (vTHX->Iregex_padav)
-#define PL_registered_mros (vTHX->Iregistered_mros)
-#define PL_regmatch_slab (vTHX->Iregmatch_slab)
-#define PL_regmatch_state (vTHX->Iregmatch_state)
-#define PL_replgv (vTHX->Ireplgv)
-#define PL_restartjmpenv (vTHX->Irestartjmpenv)
-#define PL_restartop (vTHX->Irestartop)
-#define PL_rpeepp (vTHX->Irpeepp)
-#define PL_rs (vTHX->Irs)
-#define PL_runops (vTHX->Irunops)
-#define PL_savebegin (vTHX->Isavebegin)
-#define PL_savestack (vTHX->Isavestack)
-#define PL_savestack_ix (vTHX->Isavestack_ix)
-#define PL_savestack_max (vTHX->Isavestack_max)
-#ifndef PL_sawampersand
-#define PL_sawampersand (vTHX->Isawampersand)
-#endif
-#define PL_scopestack (vTHX->Iscopestack)
-#define PL_scopestack_ix (vTHX->Iscopestack_ix)
-#define PL_scopestack_max (vTHX->Iscopestack_max)
-#define PL_scopestack_name (vTHX->Iscopestack_name)
-#define PL_secondgv (vTHX->Isecondgv)
-#define PL_setlocale_buf (vTHX->Isetlocale_buf)
-#define PL_setlocale_bufsize (vTHX->Isetlocale_bufsize)
-#define PL_sharehook (vTHX->Isharehook)
-#define PL_sig_pending (vTHX->Isig_pending)
-#define PL_sighandler1p (vTHX->Isighandler1p)
-#define PL_sighandler3p (vTHX->Isighandler3p)
-#define PL_sighandlerp (vTHX->Isighandlerp)
-#define PL_signalhook (vTHX->Isignalhook)
-#define PL_signals (vTHX->Isignals)
-#define PL_sortcop (vTHX->Isortcop)
-#define PL_sortstash (vTHX->Isortstash)
-#define PL_splitstr (vTHX->Isplitstr)
-#define PL_srand_called (vTHX->Isrand_called)
-#define PL_stack_base (vTHX->Istack_base)
-#define PL_stack_max (vTHX->Istack_max)
-#define PL_stack_sp (vTHX->Istack_sp)
-#define PL_start_env (vTHX->Istart_env)
-#define PL_stashcache (vTHX->Istashcache)
-#define PL_stashpad (vTHX->Istashpad)
-#define PL_stashpadix (vTHX->Istashpadix)
-#define PL_stashpadmax (vTHX->Istashpadmax)
-#define PL_statcache (vTHX->Istatcache)
-#define PL_statgv (vTHX->Istatgv)
-#define PL_statname (vTHX->Istatname)
-#define PL_statusvalue (vTHX->Istatusvalue)
-#define PL_statusvalue_posix (vTHX->Istatusvalue_posix)
-#define PL_statusvalue_vms (vTHX->Istatusvalue_vms)
-#define PL_stderrgv (vTHX->Istderrgv)
-#define PL_stdingv (vTHX->Istdingv)
-#define PL_strtab (vTHX->Istrtab)
-#define PL_strxfrm_NUL_replacement (vTHX->Istrxfrm_NUL_replacement)
-#define PL_strxfrm_is_behaved (vTHX->Istrxfrm_is_behaved)
-#define PL_strxfrm_max_cp (vTHX->Istrxfrm_max_cp)
-#define PL_sub_generation (vTHX->Isub_generation)
-#define PL_subline (vTHX->Isubline)
-#define PL_subname (vTHX->Isubname)
-#define PL_sv_arenaroot (vTHX->Isv_arenaroot)
-#define PL_sv_consts (vTHX->Isv_consts)
-#define PL_sv_count (vTHX->Isv_count)
-#define PL_sv_immortals (vTHX->Isv_immortals)
-#define PL_sv_no (vTHX->Isv_no)
-#define PL_sv_root (vTHX->Isv_root)
-#define PL_sv_serial (vTHX->Isv_serial)
-#define PL_sv_undef (vTHX->Isv_undef)
-#define PL_sv_yes (vTHX->Isv_yes)
-#define PL_sv_zero (vTHX->Isv_zero)
-#define PL_sys_intern (vTHX->Isys_intern)
-#define PL_taint_warn (vTHX->Itaint_warn)
-#define PL_tainted (vTHX->Itainted)
-#define PL_tainting (vTHX->Itainting)
-#define PL_threadhook (vTHX->Ithreadhook)
-#define PL_tmps_floor (vTHX->Itmps_floor)
-#define PL_tmps_ix (vTHX->Itmps_ix)
-#define PL_tmps_max (vTHX->Itmps_max)
-#define PL_tmps_stack (vTHX->Itmps_stack)
-#define PL_top_env (vTHX->Itop_env)
-#define PL_toptarget (vTHX->Itoptarget)
-#define PL_underlying_numeric_obj (vTHX->Iunderlying_numeric_obj)
-#define PL_unicode (vTHX->Iunicode)
-#define PL_unitcheckav (vTHX->Iunitcheckav)
-#define PL_unitcheckav_save (vTHX->Iunitcheckav_save)
-#define PL_unlockhook (vTHX->Iunlockhook)
-#define PL_unsafe (vTHX->Iunsafe)
-#define PL_utf8_charname_begin (vTHX->Iutf8_charname_begin)
-#define PL_utf8_charname_continue (vTHX->Iutf8_charname_continue)
-#define PL_utf8_foldclosures (vTHX->Iutf8_foldclosures)
-#define PL_utf8_idcont (vTHX->Iutf8_idcont)
-#define PL_utf8_idstart (vTHX->Iutf8_idstart)
-#define PL_utf8_mark (vTHX->Iutf8_mark)
-#define PL_utf8_perl_idcont (vTHX->Iutf8_perl_idcont)
-#define PL_utf8_perl_idstart (vTHX->Iutf8_perl_idstart)
-#define PL_utf8_tofold (vTHX->Iutf8_tofold)
-#define PL_utf8_tolower (vTHX->Iutf8_tolower)
-#define PL_utf8_tosimplefold (vTHX->Iutf8_tosimplefold)
-#define PL_utf8_totitle (vTHX->Iutf8_totitle)
-#define PL_utf8_toupper (vTHX->Iutf8_toupper)
-#define PL_utf8_xidcont (vTHX->Iutf8_xidcont)
-#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_wcrtomb_ps (vTHX->Iwcrtomb_ps)
-#define PL_xsubfilename (vTHX->Ixsubfilename)
-
-#endif /* MULTIPLICITY */
+# define vTHX aTHX
+# define PL_AboveLatin1 (vTHX->IAboveLatin1)
+# define PL_an (vTHX->Ian)
+# define PL_argvgv (vTHX->Iargvgv)
+# define PL_argvout_stack (vTHX->Iargvout_stack)
+# define PL_argvoutgv (vTHX->Iargvoutgv)
+# define PL_Assigned_invlist (vTHX->IAssigned_invlist)
+# define PL_basetime (vTHX->Ibasetime)
+# define PL_beginav (vTHX->Ibeginav)
+# define PL_beginav_save (vTHX->Ibeginav_save)
+# define PL_blockhooks (vTHX->Iblockhooks)
+# define PL_body_arenas (vTHX->Ibody_arenas)
+# define PL_body_roots (vTHX->Ibody_roots)
+# define PL_bodytarget (vTHX->Ibodytarget)
+# define PL_breakable_sub_gen (vTHX->Ibreakable_sub_gen)
+# define PL_CCC_non0_non230 (vTHX->ICCC_non0_non230)
+# define PL_checkav (vTHX->Icheckav)
+# define PL_checkav_save (vTHX->Icheckav_save)
+# define PL_chopset (vTHX->Ichopset)
+# define PL_clocktick (vTHX->Iclocktick)
+# define PL_collation_ix (vTHX->Icollation_ix)
+# define PL_collation_name (vTHX->Icollation_name)
+# define PL_collation_standard (vTHX->Icollation_standard)
+# define PL_collxfrm_base (vTHX->Icollxfrm_base)
+# define PL_collxfrm_mult (vTHX->Icollxfrm_mult)
+# define PL_colors (vTHX->Icolors)
+# define PL_colorset (vTHX->Icolorset)
+# define PL_compcv (vTHX->Icompcv)
+# define PL_compiling (vTHX->Icompiling)
+# define PL_comppad (vTHX->Icomppad)
+# 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_ctype_name (vTHX->Ictype_name)
+# define PL_cur_LC_ALL (vTHX->Icur_LC_ALL)
+# define PL_cur_locale_obj (vTHX->Icur_locale_obj)
+# define PL_curcop (vTHX->Icurcop)
+# define PL_curcopdb (vTHX->Icurcopdb)
+# define PL_curlocales (vTHX->Icurlocales)
+# define PL_curpad (vTHX->Icurpad)
+# define PL_curpm (vTHX->Icurpm)
+# define PL_curpm_under (vTHX->Icurpm_under)
+# define PL_curstack (vTHX->Icurstack)
+# define PL_curstackinfo (vTHX->Icurstackinfo)
+# define PL_curstash (vTHX->Icurstash)
+# define PL_curstname (vTHX->Icurstname)
+# define PL_custom_op_descs (vTHX->Icustom_op_descs)
+# define PL_custom_op_names (vTHX->Icustom_op_names)
+# define PL_custom_ops (vTHX->Icustom_ops)
+# define PL_cv_has_eval (vTHX->Icv_has_eval)
+# define PL_dbargs (vTHX->Idbargs)
+# define PL_DBcontrol (vTHX->IDBcontrol)
+# define PL_DBcv (vTHX->IDBcv)
+# define PL_DBgv (vTHX->IDBgv)
+# define PL_DBline (vTHX->IDBline)
+# define PL_DBsignal (vTHX->IDBsignal)
+# define PL_DBsingle (vTHX->IDBsingle)
+# define PL_DBsub (vTHX->IDBsub)
+# define PL_DBtrace (vTHX->IDBtrace)
+# define PL_debstash (vTHX->Idebstash)
+# define PL_debug (vTHX->Idebug)
+# define PL_debug_pad (vTHX->Idebug_pad)
+# define PL_def_layerlist (vTHX->Idef_layerlist)
+# define PL_defgv (vTHX->Idefgv)
+# define PL_defoutgv (vTHX->Idefoutgv)
+# define PL_defstash (vTHX->Idefstash)
+# define PL_delaymagic (vTHX->Idelaymagic)
+# define PL_delaymagic_egid (vTHX->Idelaymagic_egid)
+# define PL_delaymagic_euid (vTHX->Idelaymagic_euid)
+# define PL_delaymagic_gid (vTHX->Idelaymagic_gid)
+# define PL_delaymagic_uid (vTHX->Idelaymagic_uid)
+# define PL_destroyhook (vTHX->Idestroyhook)
+# define PL_diehook (vTHX->Idiehook)
+# define PL_Dir (vTHX->IDir)
+# define PL_doswitches (vTHX->Idoswitches)
+# define PL_dowarn (vTHX->Idowarn)
+# define PL_dump_re_max_len (vTHX->Idump_re_max_len)
+# define PL_dumper_fd (vTHX->Idumper_fd)
+# define PL_dumpindent (vTHX->Idumpindent)
+# define PL_e_script (vTHX->Ie_script)
+# define PL_efloatbuf (vTHX->Iefloatbuf)
+# define PL_efloatsize (vTHX->Iefloatsize)
+# define PL_endav (vTHX->Iendav)
+# define PL_Env (vTHX->IEnv)
+# define PL_envgv (vTHX->Ienvgv)
+# define PL_errgv (vTHX->Ierrgv)
+# define PL_errors (vTHX->Ierrors)
+# define PL_eval_begin_nest_depth (vTHX->Ieval_begin_nest_depth)
+# define PL_eval_root (vTHX->Ieval_root)
+# define PL_eval_start (vTHX->Ieval_start)
+# define PL_evalseq (vTHX->Ievalseq)
+# define PL_exit_flags (vTHX->Iexit_flags)
+# define PL_exitlist (vTHX->Iexitlist)
+# define PL_exitlistlen (vTHX->Iexitlistlen)
+# define PL_fdpid (vTHX->Ifdpid)
+# define PL_filemode (vTHX->Ifilemode)
+# define PL_firstgv (vTHX->Ifirstgv)
+# define PL_fold_locale (vTHX->Ifold_locale)
+# define PL_forkprocess (vTHX->Iforkprocess)
+# define PL_formtarget (vTHX->Iformtarget)
+# define PL_GCB_invlist (vTHX->IGCB_invlist)
+# define PL_generation (vTHX->Igeneration)
+# define PL_gensym (vTHX->Igensym)
+# define PL_globalstash (vTHX->Iglobalstash)
+# define PL_globhook (vTHX->Iglobhook)
+# define PL_hash_rand_bits (vTHX->Ihash_rand_bits)
+# define PL_hash_rand_bits_enabled (vTHX->Ihash_rand_bits_enabled)
+# define PL_HasMultiCharFold (vTHX->IHasMultiCharFold)
+# define PL_hintgv (vTHX->Ihintgv)
+# define PL_hook__require__after (vTHX->Ihook__require__after)
+# define PL_hook__require__before (vTHX->Ihook__require__before)
+# define PL_hv_fetch_ent_mh (vTHX->Ihv_fetch_ent_mh)
+# define PL_in_clean_all (vTHX->Iin_clean_all)
+# define PL_in_clean_objs (vTHX->Iin_clean_objs)
+# define PL_in_eval (vTHX->Iin_eval)
+# define PL_in_load_module (vTHX->Iin_load_module)
+# define PL_in_some_fold (vTHX->Iin_some_fold)
+# define PL_in_utf8_COLLATE_locale (vTHX->Iin_utf8_COLLATE_locale)
+# define PL_in_utf8_CTYPE_locale (vTHX->Iin_utf8_CTYPE_locale)
+# define PL_in_utf8_turkic_locale (vTHX->Iin_utf8_turkic_locale)
+# define PL_InBitmap (vTHX->IInBitmap)
+# define PL_incgv (vTHX->Iincgv)
+# define PL_initav (vTHX->Iinitav)
+# define PL_InMultiCharFold (vTHX->IInMultiCharFold)
+# define PL_inplace (vTHX->Iinplace)
+# define PL_internal_random_state (vTHX->Iinternal_random_state)
+# define PL_isarev (vTHX->Iisarev)
+# define PL_known_layers (vTHX->Iknown_layers)
+# define PL_langinfo_buf (vTHX->Ilanginfo_buf)
+# define PL_langinfo_bufsize (vTHX->Ilanginfo_bufsize)
+# define PL_last_in_gv (vTHX->Ilast_in_gv)
+# define PL_lastfd (vTHX->Ilastfd)
+# define PL_lastgotoprobe (vTHX->Ilastgotoprobe)
+# define PL_laststatval (vTHX->Ilaststatval)
+# define PL_laststype (vTHX->Ilaststype)
+# define PL_Latin1 (vTHX->ILatin1)
+# define PL_LB_invlist (vTHX->ILB_invlist)
+# define PL_LIO (vTHX->ILIO)
+# define PL_locale_mutex_depth (vTHX->Ilocale_mutex_depth)
+# define PL_localizing (vTHX->Ilocalizing)
+# define PL_localpatches (vTHX->Ilocalpatches)
+# define PL_lockhook (vTHX->Ilockhook)
+# define PL_main_cv (vTHX->Imain_cv)
+# define PL_main_root (vTHX->Imain_root)
+# define PL_main_start (vTHX->Imain_start)
+# define PL_mainstack (vTHX->Imainstack)
+# define PL_markstack (vTHX->Imarkstack)
+# define PL_markstack_max (vTHX->Imarkstack_max)
+# define PL_markstack_ptr (vTHX->Imarkstack_ptr)
+# define PL_max_intro_pending (vTHX->Imax_intro_pending)
+# define PL_maxsysfd (vTHX->Imaxsysfd)
+# define PL_mbrlen_ps (vTHX->Imbrlen_ps)
+# define PL_mbrtowc_ps (vTHX->Imbrtowc_ps)
+# define PL_Mem (vTHX->IMem)
+# define PL_mem_log (vTHX->Imem_log)
+# define PL_memory_debug_header (vTHX->Imemory_debug_header)
+# define PL_MemParse (vTHX->IMemParse)
+# define PL_MemShared (vTHX->IMemShared)
+# define PL_mess_sv (vTHX->Imess_sv)
+# define PL_min_intro_pending (vTHX->Imin_intro_pending)
+# define PL_minus_a (vTHX->Iminus_a)
+# define PL_minus_c (vTHX->Iminus_c)
+# define PL_minus_E (vTHX->Iminus_E)
+# define PL_minus_F (vTHX->Iminus_F)
+# define PL_minus_l (vTHX->Iminus_l)
+# define PL_minus_n (vTHX->Iminus_n)
+# 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_list (vTHX->Imy_cxt_list)
+# define PL_my_cxt_size (vTHX->Imy_cxt_size)
+# define PL_na (vTHX->Ina)
+# define PL_nomemok (vTHX->Inomemok)
+# define PL_numeric_name (vTHX->Inumeric_name)
+# define PL_numeric_radix_sv (vTHX->Inumeric_radix_sv)
+# define PL_numeric_standard (vTHX->Inumeric_standard)
+# define PL_numeric_underlying (vTHX->Inumeric_underlying)
+# define PL_numeric_underlying_is_standard (vTHX->Inumeric_underlying_is_standard)
+# define PL_ofsgv (vTHX->Iofsgv)
+# define PL_oldname (vTHX->Ioldname)
+# define PL_op (vTHX->Iop)
+# define PL_op_exec_cnt (vTHX->Iop_exec_cnt)
+# define PL_op_mask (vTHX->Iop_mask)
+# define PL_opfreehook (vTHX->Iopfreehook)
+# define PL_origalen (vTHX->Iorigalen)
+# define PL_origargc (vTHX->Iorigargc)
+# define PL_origargv (vTHX->Iorigargv)
+# define PL_origfilename (vTHX->Iorigfilename)
+# define PL_ors_sv (vTHX->Iors_sv)
+# define PL_osname (vTHX->Iosname)
+# 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)
+# define PL_perl_destruct_level (vTHX->Iperl_destruct_level)
+# define PL_perldb (vTHX->Iperldb)
+# define PL_perlio (vTHX->Iperlio)
+# define PL_phase (vTHX->Iphase)
+# define PL_pidstatus (vTHX->Ipidstatus)
+# define PL_Posix_ptrs (vTHX->IPosix_ptrs)
+# define PL_preambleav (vTHX->Ipreambleav)
+# define PL_prevailing_version (vTHX->Iprevailing_version)
+# define PL_Private_Use (vTHX->IPrivate_Use)
+# define PL_Proc (vTHX->IProc)
+# define PL_profiledata (vTHX->Iprofiledata)
+# define PL_psig_name (vTHX->Ipsig_name)
+# define PL_psig_pend (vTHX->Ipsig_pend)
+# define PL_psig_ptr (vTHX->Ipsig_ptr)
+# define PL_ptr_table (vTHX->Iptr_table)
+# define PL_random_state (vTHX->Irandom_state)
+# define PL_reentrant_buffer (vTHX->Ireentrant_buffer)
+# define PL_reentrant_retint (vTHX->Ireentrant_retint)
+# define PL_reg_curpm (vTHX->Ireg_curpm)
+# define PL_regex_pad (vTHX->Iregex_pad)
+# define PL_regex_padav (vTHX->Iregex_padav)
+# define PL_registered_mros (vTHX->Iregistered_mros)
+# define PL_regmatch_slab (vTHX->Iregmatch_slab)
+# define PL_regmatch_state (vTHX->Iregmatch_state)
+# define PL_replgv (vTHX->Ireplgv)
+# define PL_restartjmpenv (vTHX->Irestartjmpenv)
+# define PL_restartop (vTHX->Irestartop)
+# define PL_rpeepp (vTHX->Irpeepp)
+# define PL_rs (vTHX->Irs)
+# define PL_runops (vTHX->Irunops)
+# define PL_savebegin (vTHX->Isavebegin)
+# define PL_savestack (vTHX->Isavestack)
+# define PL_savestack_ix (vTHX->Isavestack_ix)
+# define PL_savestack_max (vTHX->Isavestack_max)
+# define PL_SB_invlist (vTHX->ISB_invlist)
+# define PL_scopestack (vTHX->Iscopestack)
+# define PL_scopestack_ix (vTHX->Iscopestack_ix)
+# define PL_scopestack_max (vTHX->Iscopestack_max)
+# define PL_scopestack_name (vTHX->Iscopestack_name)
+# define PL_scratch_locale_obj (vTHX->Iscratch_locale_obj)
+# define PL_SCX_invlist (vTHX->ISCX_invlist)
+# define PL_secondgv (vTHX->Isecondgv)
+# define PL_setlocale_buf (vTHX->Isetlocale_buf)
+# define PL_setlocale_bufsize (vTHX->Isetlocale_bufsize)
+# define PL_sharehook (vTHX->Isharehook)
+# define PL_sig_pending (vTHX->Isig_pending)
+# define PL_sighandler1p (vTHX->Isighandler1p)
+# define PL_sighandler3p (vTHX->Isighandler3p)
+# define PL_sighandlerp (vTHX->Isighandlerp)
+# define PL_signalhook (vTHX->Isignalhook)
+# define PL_signals (vTHX->Isignals)
+# define PL_Sock (vTHX->ISock)
+# define PL_sortcop (vTHX->Isortcop)
+# define PL_sortstash (vTHX->Isortstash)
+# define PL_splitstr (vTHX->Isplitstr)
+# define PL_srand_called (vTHX->Isrand_called)
+# define PL_srand_override (vTHX->Isrand_override)
+# define PL_srand_override_next (vTHX->Isrand_override_next)
+# define PL_stack_base (vTHX->Istack_base)
+# define PL_stack_max (vTHX->Istack_max)
+# define PL_stack_sp (vTHX->Istack_sp)
+# define PL_start_env (vTHX->Istart_env)
+# define PL_stashcache (vTHX->Istashcache)
+# define PL_stashpad (vTHX->Istashpad)
+# define PL_stashpadix (vTHX->Istashpadix)
+# define PL_stashpadmax (vTHX->Istashpadmax)
+# define PL_statcache (vTHX->Istatcache)
+# define PL_statgv (vTHX->Istatgv)
+# define PL_statname (vTHX->Istatname)
+# define PL_statusvalue (vTHX->Istatusvalue)
+# define PL_statusvalue_posix (vTHX->Istatusvalue_posix)
+# define PL_statusvalue_vms (vTHX->Istatusvalue_vms)
+# define PL_stderrgv (vTHX->Istderrgv)
+# define PL_stdingv (vTHX->Istdingv)
+# define PL_StdIO (vTHX->IStdIO)
+# define PL_stdize_locale_buf (vTHX->Istdize_locale_buf)
+# define PL_stdize_locale_bufsize (vTHX->Istdize_locale_bufsize)
+# define PL_strtab (vTHX->Istrtab)
+# define PL_strxfrm_is_behaved (vTHX->Istrxfrm_is_behaved)
+# define PL_strxfrm_max_cp (vTHX->Istrxfrm_max_cp)
+# define PL_strxfrm_NUL_replacement (vTHX->Istrxfrm_NUL_replacement)
+# define PL_sub_generation (vTHX->Isub_generation)
+# define PL_subline (vTHX->Isubline)
+# define PL_subname (vTHX->Isubname)
+# define PL_Sv (vTHX->ISv)
+# define PL_sv_arenaroot (vTHX->Isv_arenaroot)
+# define PL_sv_consts (vTHX->Isv_consts)
+# define PL_sv_count (vTHX->Isv_count)
+# define PL_sv_immortals (vTHX->Isv_immortals)
+# define PL_sv_no (vTHX->Isv_no)
+# define PL_sv_root (vTHX->Isv_root)
+# define PL_sv_serial (vTHX->Isv_serial)
+# define PL_sv_undef (vTHX->Isv_undef)
+# define PL_sv_yes (vTHX->Isv_yes)
+# define PL_sv_zero (vTHX->Isv_zero)
+# define PL_sys_intern (vTHX->Isys_intern)
+# define PL_taint_warn (vTHX->Itaint_warn)
+# define PL_tainted (vTHX->Itainted)
+# define PL_tainting (vTHX->Itainting)
+# define PL_threadhook (vTHX->Ithreadhook)
+# define PL_tmps_floor (vTHX->Itmps_floor)
+# define PL_tmps_ix (vTHX->Itmps_ix)
+# define PL_tmps_max (vTHX->Itmps_max)
+# define PL_tmps_stack (vTHX->Itmps_stack)
+# define PL_top_env (vTHX->Itop_env)
+# define PL_toptarget (vTHX->Itoptarget)
+# define PL_TR_SPECIAL_HANDLING_UTF8 (vTHX->ITR_SPECIAL_HANDLING_UTF8)
+# define PL_underlying_numeric_obj (vTHX->Iunderlying_numeric_obj)
+# define PL_underlying_radix_sv (vTHX->Iunderlying_radix_sv)
+# define PL_unicode (vTHX->Iunicode)
+# define PL_unitcheckav (vTHX->Iunitcheckav)
+# define PL_unitcheckav_save (vTHX->Iunitcheckav_save)
+# define PL_unlockhook (vTHX->Iunlockhook)
+# define PL_unsafe (vTHX->Iunsafe)
+# define PL_UpperLatin1 (vTHX->IUpperLatin1)
+# define PL_utf8_charname_begin (vTHX->Iutf8_charname_begin)
+# define PL_utf8_charname_continue (vTHX->Iutf8_charname_continue)
+# define PL_utf8_foldclosures (vTHX->Iutf8_foldclosures)
+# define PL_utf8_idcont (vTHX->Iutf8_idcont)
+# define PL_utf8_idstart (vTHX->Iutf8_idstart)
+# define PL_utf8_mark (vTHX->Iutf8_mark)
+# define PL_utf8_perl_idcont (vTHX->Iutf8_perl_idcont)
+# define PL_utf8_perl_idstart (vTHX->Iutf8_perl_idstart)
+# define PL_utf8_tofold (vTHX->Iutf8_tofold)
+# define PL_utf8_tolower (vTHX->Iutf8_tolower)
+# define PL_utf8_tosimplefold (vTHX->Iutf8_tosimplefold)
+# define PL_utf8_totitle (vTHX->Iutf8_totitle)
+# define PL_utf8_toupper (vTHX->Iutf8_toupper)
+# define PL_utf8_xidcont (vTHX->Iutf8_xidcont)
+# 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_WB_invlist (vTHX->IWB_invlist)
+# define PL_wcrtomb_ps (vTHX->Iwcrtomb_ps)
+# define PL_XPosix_ptrs (vTHX->IXPosix_ptrs)
+# define PL_Xpv (vTHX->IXpv)
+# define PL_xsubfilename (vTHX->Ixsubfilename)
+# if !defined(PL_sawampersand)
+# define PL_sawampersand (vTHX->Isawampersand)
+# endif
+#endif /* defined(MULTIPLICITY) */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h
index 501bc3a3b1..c862864a06 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by regen/feature.pl.
Any changes made here will be lost!
@@ -12,24 +12,28 @@
#define HINT_FEATURE_SHIFT 26
-#define FEATURE_BAREWORD_FILEHANDLES_BIT 0x0001
-#define FEATURE_BITWISE_BIT 0x0002
-#define FEATURE___SUB___BIT 0x0004
-#define FEATURE_MYREF_BIT 0x0008
-#define FEATURE_EVALBYTES_BIT 0x0010
-#define FEATURE_FC_BIT 0x0020
-#define FEATURE_INDIRECT_BIT 0x0040
-#define FEATURE_ISA_BIT 0x0080
-#define FEATURE_MULTIDIMENSIONAL_BIT 0x0100
-#define FEATURE_POSTDEREF_QQ_BIT 0x0200
-#define FEATURE_REFALIASING_BIT 0x0400
-#define FEATURE_SAY_BIT 0x0800
-#define FEATURE_SIGNATURES_BIT 0x1000
-#define FEATURE_STATE_BIT 0x2000
-#define FEATURE_SWITCH_BIT 0x4000
-#define FEATURE_TRY_BIT 0x8000
-#define FEATURE_UNIEVAL_BIT 0x10000
-#define FEATURE_UNICODE_BIT 0x20000
+#define FEATURE_BAREWORD_FILEHANDLES_BIT 0x0001
+#define FEATURE_BITWISE_BIT 0x0002
+#define FEATURE_CLASS_BIT 0x0004
+#define FEATURE___SUB___BIT 0x0008
+#define FEATURE_MYREF_BIT 0x0010
+#define FEATURE_DEFER_BIT 0x0020
+#define FEATURE_EVALBYTES_BIT 0x0040
+#define FEATURE_MORE_DELIMS_BIT 0x0080
+#define FEATURE_FC_BIT 0x0100
+#define FEATURE_INDIRECT_BIT 0x0200
+#define FEATURE_ISA_BIT 0x0400
+#define FEATURE_MODULE_TRUE_BIT 0x0800
+#define FEATURE_MULTIDIMENSIONAL_BIT 0x1000
+#define FEATURE_POSTDEREF_QQ_BIT 0x2000
+#define FEATURE_REFALIASING_BIT 0x4000
+#define FEATURE_SAY_BIT 0x8000
+#define FEATURE_SIGNATURES_BIT 0x10000
+#define FEATURE_STATE_BIT 0x20000
+#define FEATURE_SWITCH_BIT 0x40000
+#define FEATURE_TRY_BIT 0x80000
+#define FEATURE_UNIEVAL_BIT 0x100000
+#define FEATURE_UNICODE_BIT 0x200000
#define FEATURE_BUNDLE_DEFAULT 0
#define FEATURE_BUNDLE_510 1
@@ -37,10 +41,17 @@
#define FEATURE_BUNDLE_515 3
#define FEATURE_BUNDLE_523 4
#define FEATURE_BUNDLE_527 5
+#define FEATURE_BUNDLE_535 6
+#define FEATURE_BUNDLE_537 7
#define FEATURE_BUNDLE_CUSTOM (HINT_FEATURE_MASK >> HINT_FEATURE_SHIFT)
-#define CURRENT_HINTS \
+/* this is preserved for testing and asserts */
+#define OLD_CURRENT_HINTS \
(PL_curcop == &PL_compiling ? PL_hints : PL_curcop->cop_hints)
+/* this is the same thing, but simpler (no if) as PL_hints expands
+ to PL_compiling.cop_hints */
+#define CURRENT_HINTS \
+ PL_curcop->cop_hints
#define CURRENT_FEATURE_BUNDLE \
((CURRENT_HINTS & HINT_FEATURE_MASK) >> HINT_FEATURE_SHIFT)
@@ -54,21 +65,23 @@
#define FEATURE_FC_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_FC_BIT)) \
)
#define FEATURE_ISA_IS_ENABLED \
( \
- CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
- FEATURE_IS_ENABLED_MASK(FEATURE_ISA_BIT) \
+ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_535 && \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
+ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_ISA_BIT)) \
)
#define FEATURE_SAY_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_SAY_BIT)) \
)
@@ -79,10 +92,22 @@
FEATURE_IS_ENABLED_MASK(FEATURE_TRY_BIT) \
)
+#define FEATURE_CLASS_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_CLASS_BIT) \
+ )
+
+#define FEATURE_DEFER_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_DEFER_BIT) \
+ )
+
#define FEATURE_STATE_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_STATE_BIT)) \
)
@@ -97,7 +122,8 @@
#define FEATURE_BITWISE_IS_ENABLED \
( \
- CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_527 \
+ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_527 && \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_BITWISE_BIT)) \
)
@@ -112,25 +138,34 @@
#define FEATURE_EVALBYTES_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_EVALBYTES_BIT)) \
)
#define FEATURE_SIGNATURES_IS_ENABLED \
( \
- CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
- FEATURE_IS_ENABLED_MASK(FEATURE_SIGNATURES_BIT) \
+ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_535 && \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
+ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_SIGNATURES_BIT)) \
)
#define FEATURE___SUB___IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE___SUB___BIT)) \
)
+#define FEATURE_MODULE_TRUE_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_537 \
+ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_MODULE_TRUE_BIT)) \
+ )
+
#define FEATURE_REFALIASING_IS_ENABLED \
( \
CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
@@ -140,7 +175,7 @@
#define FEATURE_POSTDEREF_QQ_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_523 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_POSTDEREF_QQ_BIT)) \
)
@@ -148,7 +183,7 @@
#define FEATURE_UNIEVAL_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_UNIEVAL_BIT)) \
)
@@ -162,7 +197,7 @@
#define FEATURE_UNICODE_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_511 && \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_UNICODE_BIT)) \
)
@@ -176,11 +211,17 @@
#define FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED \
( \
- CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527 \
+ CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535 \
|| (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
FEATURE_IS_ENABLED_MASK(FEATURE_BAREWORD_FILEHANDLES_BIT)) \
)
+#define FEATURE_MORE_DELIMS_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_MORE_DELIMS_BIT) \
+ )
+
#define SAVEFEATUREBITS() SAVEI32(PL_compiling.cop_features)
@@ -204,6 +245,12 @@ S_enable_feature_bundle(pTHX_ SV *ver)
SV *comp_ver = sv_newmortal();
PL_hints = (PL_hints &~ HINT_FEATURE_MASK)
| (
+ (sv_setnv(comp_ver, 5.037),
+ vcmp(ver, upg_version(comp_ver, FALSE)) >= 0)
+ ? FEATURE_BUNDLE_537 :
+ (sv_setnv(comp_ver, 5.035),
+ vcmp(ver, upg_version(comp_ver, FALSE)) >= 0)
+ ? FEATURE_BUNDLE_535 :
(sv_setnv(comp_ver, 5.027),
vcmp(ver, upg_version(comp_ver, FALSE)) >= 0)
? FEATURE_BUNDLE_527 :
@@ -263,6 +310,22 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen,
}
return;
+ case 'c':
+ if (keylen == sizeof("feature_class")-1
+ && memcmp(subf+1, "lass", keylen - sizeof("feature_")) == 0) {
+ mask = FEATURE_CLASS_BIT;
+ break;
+ }
+ return;
+
+ case 'd':
+ if (keylen == sizeof("feature_defer")-1
+ && memcmp(subf+1, "efer", keylen - sizeof("feature_")) == 0) {
+ mask = FEATURE_DEFER_BIT;
+ break;
+ }
+ return;
+
case 'e':
if (keylen == sizeof("feature_evalbytes")-1
&& memcmp(subf+1, "valbytes", keylen - sizeof("feature_")) == 0) {
@@ -293,7 +356,17 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen,
return;
case 'm':
- if (keylen == sizeof("feature_multidimensional")-1
+ if (keylen == sizeof("feature_module_true")-1
+ && memcmp(subf+1, "odule_true", keylen - sizeof("feature_")) == 0) {
+ mask = FEATURE_MODULE_TRUE_BIT;
+ break;
+ }
+ else if (keylen == sizeof("feature_more_delims")-1
+ && memcmp(subf+1, "ore_delims", keylen - sizeof("feature_")) == 0) {
+ mask = FEATURE_MORE_DELIMS_BIT;
+ break;
+ }
+ else if (keylen == sizeof("feature_multidimensional")-1
&& memcmp(subf+1, "ultidimensional", keylen - sizeof("feature_")) == 0) {
mask = FEATURE_MULTIDIMENSIONAL_BIT;
break;
@@ -378,4 +451,4 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen,
#endif /* PERL_FEATURE_H_ */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h
index 9b465a069d..68865b9991 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h
@@ -28,7 +28,7 @@ struct gp {
#if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS) && !defined(__INTEL_COMPILER)
# define GvGP(gv) \
- (0+(*({GV *const _gvgp = (GV *) (gv); \
+ ((GP *)(*({GV *const _gvgp = (GV *) (gv); \
assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \
assert(isGV_with_GP(_gvgp)); \
&((_gvgp)->sv_u.svu_gp);})))
@@ -134,7 +134,7 @@ Return the CV from the GV.
GvGP(gv)->gp_hv : \
GvGP(gv_HVadd(gv))->gp_hv)
-#define GvCV(gv) (0+GvGP(gv)->gp_cv)
+#define GvCV(gv) ((CV*)GvGP(gv)->gp_cv)
#define GvCV_set(gv,cv) (GvGP(gv)->gp_cv = (cv))
#define GvCVGEN(gv) (GvGP(gv)->gp_cvgen)
#define GvCVu(gv) (GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv)
@@ -162,7 +162,7 @@ Return the CV from the GV.
#define GVf_INTRO 0x01
#define GVf_MULTI 0x02
#define GVf_ASSUMECV 0x04
-/* UNUSED 0x08 */
+#define GVf_RESERVED 0x08 /* unused */
#define GVf_IMPORTED 0xF0
#define GVf_IMPORTED_SV 0x10
#define GVf_IMPORTED_AV 0x20
@@ -261,12 +261,15 @@ Return the CV from the GV.
found (with the exception GV_ADDMG, which *might* cause the symbol
to be added) */
+/* gv_fetchfile_flags() */
+#define GVF_NOADD 0x01 /* don't add the glob if it doesn't exist */
+
#define gv_fullname3(sv,gv,prefix) gv_fullname4(sv,gv,prefix,TRUE)
#define gv_efullname3(sv,gv,prefix) gv_efullname4(sv,gv,prefix,TRUE)
#define gv_fetchmethod(stash, name) gv_fetchmethod_autoload(stash, name, TRUE)
#define gv_fetchsv_nomg(n,f,t) gv_fetchsv(n,(f)|GV_NO_SVGMAGIC,t)
#define gv_init(gv,stash,name,len,multi) \
- gv_init_pvn(gv,stash,name,len,GV_ADDMULTI*!!(multi))
+ gv_init_pvn(gv,stash,name,len,GV_ADDMULTI*cBOOL(multi))
#define gv_fetchmeth(stash,name,len,level) gv_fetchmeth_pvn(stash, name, len, level, 0)
#define gv_fetchmeth_autoload(stash,name,len,level) gv_fetchmeth_pvn_autoload(stash, name, len, level, 0)
#define gv_fetchmethod_flags(stash,name,flags) gv_fetchmethod_pv_flags(stash, name, flags)
@@ -278,7 +281,7 @@ Equivalent to C<L</gv_autoload_pvn>>.
=cut
*/
#define gv_autoload4(stash, name, len, autoload) \
- gv_autoload_pvn(stash, name, len, !!(autoload))
+ gv_autoload_pvn(stash, name, len, cBOOL(autoload))
#define newGVgen(pack) newGVgen_flags(pack, 0)
#define gv_method_changed(gv) \
( \
@@ -288,6 +291,17 @@ Equivalent to C<L</gv_autoload_pvn>>.
: mro_method_changed_in(GvSTASH(gv)) \
)
+/*
+=for apidoc gv_AVadd
+=for apidoc_item gv_HVadd
+=for apidoc_item gv_IOadd
+=for apidoc_item gv_SVadd
+
+Make sure there is a slot of the given type (AV, HV, IO, SV) in the GV C<gv>.
+
+=cut
+*/
+
#define gv_AVadd(gv) gv_add_by_type((gv), SVt_PVAV)
#define gv_HVadd(gv) gv_add_by_type((gv), SVt_PVHV)
#define gv_IOadd(gv) gv_add_by_type((gv), SVt_PVIO)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h
index 63441e2a22..1714584d4f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h
@@ -70,13 +70,13 @@ from it, and are very unlikely to change
/*
=for apidoc_section $SV
-=for apidoc Am|void *|MUTABLE_PTR|void * p
-=for apidoc_item |AV *|MUTABLE_AV|AV * p
-=for apidoc_item |CV *|MUTABLE_CV|CV * p
-=for apidoc_item |GV *|MUTABLE_GV|GV * p
-=for apidoc_item |HV *|MUTABLE_HV|HV * p
-=for apidoc_item |IO *|MUTABLE_IO|IO * p
-=for apidoc_item |SV *|MUTABLE_SV|SV * p
+=for apidoc Am |AV * |MUTABLE_AV |AV * p
+=for apidoc_item |CV * |MUTABLE_CV |CV * p
+=for apidoc_item |GV * |MUTABLE_GV |GV * p
+=for apidoc_item |HV * |MUTABLE_HV |HV * p
+=for apidoc_item |IO * |MUTABLE_IO |IO * p
+=for apidoc_item |void *|MUTABLE_PTR|void * p
+=for apidoc_item |SV * |MUTABLE_SV |SV * p
The C<MUTABLE_I<*>>() macros cast pointers to the types shown, in such a way
(compiler permitting) that casting away const-ness will give a warning;
@@ -91,8 +91,10 @@ C<MUTABLE_PTR> is the base macro used to derive new casts. The other
already-built-in ones return pointers to what their names indicate.
=cut
- */
+The brace group version will raise a diagnostic if 'p' is const; the other
+blindly casts away const.
+ */
#if defined(PERL_USE_GCC_BRACE_GROUPS)
# define MUTABLE_PTR(p) ({ void *p_ = (p); p_; })
#else
@@ -106,50 +108,51 @@ already-built-in ones return pointers to what their names indicate.
#define MUTABLE_IO(p) ((IO *)MUTABLE_PTR(p))
#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
-#if defined(I_STDBOOL) && !defined(PERL_BOOL_AS_CHAR)
-# include <stdbool.h>
-# ifndef HAS_BOOL
-# define HAS_BOOL 1
-# endif
-#endif
+/*
+=for apidoc_section $SV
+=for apidoc Am |AV *|AV_FROM_REF|SV * ref
+=for apidoc_item |CV *|CV_FROM_REF|SV * ref
+=for apidoc_item |HV *|HV_FROM_REF|SV * ref
+
+The C<I<*>V_FROM_REF> macros extract the C<SvRV()> from a given reference SV
+and return a suitably-cast to pointer to the referenced SV. When running
+under C<-DDEBUGGING>, assertions are also applied that check that I<ref> is
+definitely a reference SV that refers to an SV of the right type.
-/* bool is built-in for g++-2.6.3 and later, which might be used
- for extensions. <_G_config.h> defines _G_HAVE_BOOL, but we can't
- be sure _G_config.h will be included before this file. _G_config.h
- also defines _G_HAVE_BOOL for both gcc and g++, but only g++
- actually has bool. Hence, _G_HAVE_BOOL is pretty useless for us.
- g++ can be identified by __GNUG__.
- Andy Dougherty February 2000
+=cut
*/
-#ifdef __GNUG__ /* GNU g++ has bool built-in */
-# ifndef PERL_BOOL_AS_CHAR
-# ifndef HAS_BOOL
-# define HAS_BOOL 1
-# endif
-# endif
+
+#if defined(DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
+# define xV_FROM_REF(XV, ref) \
+ ({ SV *_ref = ref; \
+ assert(SvROK(_ref)); \
+ assert(SvTYPE(SvRV(_ref)) == SVt_PV ## XV); \
+ (XV *)(SvRV(_ref)); })
+#else
+# define xV_FROM_REF(XV, ref) ((XV *)(SvRV(ref)))
#endif
-#ifndef HAS_BOOL
-# ifdef bool
-# undef bool
-# endif
-# define bool char
-# define HAS_BOOL 1
+#define AV_FROM_REF(ref) xV_FROM_REF(AV, ref)
+#define CV_FROM_REF(ref) xV_FROM_REF(CV, ref)
+#define HV_FROM_REF(ref) xV_FROM_REF(HV, ref)
+
+#ifndef __cplusplus
+# include <stdbool.h>
#endif
/*
=for apidoc_section $casting
=for apidoc Am|bool|cBOOL|bool expr
-Cast-to-bool. A simple S<C<(bool) I<expr>>> cast may not do the right thing:
-if C<bool> is defined as C<char>, for example, then the cast from C<int> is
-implementation-defined.
-
-C<(bool)!!(cbool)> in a ternary triggers a bug in xlc on AIX
+Cast-to-bool. When Perl was able to be compiled on pre-C99 compilers, a
+C<(bool)> cast didn't necessarily do the right thing, so this macro was
+created (and made somewhat complicated to work around bugs in old
+compilers). Now, many years later, and C99 is used, this is no longer
+required, but is kept for backwards compatibility.
=cut
*/
-#define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0)
+#define cBOOL(cbool) ((bool) (cbool))
/* Try to figure out __func__ or __FUNCTION__ equivalent, if any.
* XXX Should really be a Configure probe, with HAS__FUNCTION__
@@ -157,10 +160,13 @@ C<(bool)!!(cbool)> in a ternary triggers a bug in xlc on AIX
* XXX Similarly, a Configure probe for __FILE__ and __LINE__ is needed. */
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(__SUNPRO_C)) /* C99 or close enough. */
# define FUNCTION__ __func__
-#elif (defined(__DECC_VER)) /* Tru64 or VMS, and strict C89 being used, but not modern enough cc (in Tur64, -c99 not known, only -std1). */
-# define FUNCTION__ ""
+# define SAFE_FUNCTION__ __func__
+#elif (defined(__DECC_VER)) /* Tru64 or VMS, and strict C89 being used, but not modern enough cc (in Tru64, -c99 not known, only -std1). */
+# define FUNCTION__ ("")
+# define SAFE_FUNCTION__ ("UNKNOWN")
#else
# define FUNCTION__ __FUNCTION__ /* Common extension. */
+# define SAFE_FUNCTION__ __FUNCTION__ /* Common extension. */
#endif
/* XXX A note on the perl source internal type system. The
@@ -297,17 +303,17 @@ don't, so that you can portably take advantage of this C99 feature.
=cut
*/
-# ifdef I_STDINT
+#ifdef I_STDINT
typedef int_fast8_t PERL_INT_FAST8_T;
typedef uint_fast8_t PERL_UINT_FAST8_T;
typedef int_fast16_t PERL_INT_FAST16_T;
typedef uint_fast16_t PERL_UINT_FAST16_T;
-# else
+#else
typedef int PERL_INT_FAST8_T;
typedef unsigned int PERL_UINT_FAST8_T;
typedef int PERL_INT_FAST16_T;
typedef unsigned int PERL_UINT_FAST16_T;
-# endif
+#endif
/* log(2) (i.e., log base 10 of 2) is pretty close to 0.30103, just in case
* anyone is grepping for it. So BIT_DIGITS gives the number of decimal digits
@@ -397,14 +403,6 @@ string/length pair.
Like C<sv_catpvn_mg>, but takes a literal string instead of a
string/length pair.
-=for apidoc Am|void|sv_setpvs|SV* sv|"literal string"
-Like C<sv_setpvn>, but takes a literal string instead of a
-string/length pair.
-
-=for apidoc Am|void|sv_setpvs_mg|SV* sv|"literal string"
-Like C<sv_setpvn_mg>, but takes a literal string instead of a
-string/length pair.
-
=for apidoc Am|SV *|sv_setref_pvs|SV *const rv|const char *const classname|"literal string"
Like C<sv_setref_pvn>, but takes a literal string instead of
a string/length pair.
@@ -430,12 +428,6 @@ string/length pair.
=for apidoc Am|SV**|hv_fetchs|HV* tb|"key"|I32 lval
Like C<hv_fetch>, but takes a literal string instead of a
string/length pair.
-
-=for apidoc Am|SV**|hv_stores|HV* tb|"key"|SV* val
-Like C<hv_store>, but takes a literal string instead of a
-string/length pair
-and omits the hash parameter.
-
=for apidoc_section $lexer
=for apidoc Amx|void|lex_stuff_pvs|"pv"|U32 flags
@@ -446,6 +438,8 @@ a string/length pair.
=cut
*/
+#define ASSERT_IS_LITERAL(s) ("" s "")
+
/*
=for apidoc_section $string
@@ -460,7 +454,7 @@ Perl_xxx(aTHX_ ...) form for any API calls where it's used.
=cut
*/
-#define STR_WITH_LEN(s) ("" s ""), (sizeof(s)-1)
+#define STR_WITH_LEN(s) ASSERT_IS_LITERAL(s), (sizeof(s)-1)
/* STR_WITH_LEN() shortcuts */
#define newSVpvs(str) Perl_newSVpvn(aTHX_ STR_WITH_LEN(str))
@@ -487,8 +481,6 @@ Perl_xxx(aTHX_ ...) form for any API calls where it's used.
#define gv_fetchpvs(namebeg, flags, sv_type) \
Perl_gv_fetchpvn_flags(aTHX_ STR_WITH_LEN(namebeg), flags, sv_type)
#define gv_fetchpvn gv_fetchpvn_flags
-#define sv_catxmlpvs(dsv, str, utf8) \
- Perl_sv_catxmlpvn(aTHX_ dsv, STR_WITH_LEN(str), utf8)
#define lex_stuff_pvs(pv,flags) Perl_lex_stuff_pvn(aTHX_ STR_WITH_LEN(pv), flags)
@@ -524,11 +516,11 @@ Perl_xxx(aTHX_ ...) form for any API calls where it's used.
/*
=for apidoc_section $versioning
=for apidoc AmR|bool|PERL_VERSION_EQ|const U8 major|const U8 minor|const U8 patch
-=for apidoc_item PERL_VERSION_NE
-=for apidoc_item PERL_VERSION_LT
-=for apidoc_item PERL_VERSION_LE
-=for apidoc_item PERL_VERSION_GT
=for apidoc_item PERL_VERSION_GE
+=for apidoc_item PERL_VERSION_GT
+=for apidoc_item PERL_VERSION_LE
+=for apidoc_item PERL_VERSION_LT
+=for apidoc_item PERL_VERSION_NE
Returns whether or not the perl currently being compiled has the specified
relationship to the perl given by the parameters. For example,
@@ -651,7 +643,7 @@ C<l1> gives the number of bytes in C<s1>.
Returns true or false.
=for apidoc Am|bool|memCHRs|"list"|char c
-Returns the position of the first occurence of the byte C<c> in the literal
+Returns the position of the first occurrence of the byte C<c> in the literal
string C<"list">, or NULL if C<c> doesn't appear in C<"list">. All bytes are
treated as unsigned char. Thus this macro can be used to determine if C<c> is
in a set of particular characters. Unlike L<strchr(3)>, it works even if C<c>
@@ -721,26 +713,26 @@ based on the underlying C library functions):
/* memEQ and memNE where second comparand is a string constant */
#define memEQs(s1, l, s2) \
- (((sizeof(s2)-1) == (l)) && memEQ((s1), ("" s2 ""), (sizeof(s2)-1)))
+ (((sizeof(s2)-1) == (l)) && memEQ((s1), ASSERT_IS_LITERAL(s2), (sizeof(s2)-1)))
#define memNEs(s1, l, s2) (! memEQs(s1, l, s2))
/* Keep these private until we decide it was a good idea */
#if defined(PERL_CORE) || defined(PERL_EXT) || defined(PERL_EXT_POSIX)
-#define strBEGINs(s1,s2) (strncmp(s1,"" s2 "", sizeof(s2)-1) == 0)
+#define strBEGINs(s1,s2) (strncmp(s1,ASSERT_IS_LITERAL(s2), sizeof(s2)-1) == 0)
#define memBEGINs(s1, l, s2) \
( (Ptrdiff_t) (l) >= (Ptrdiff_t) sizeof(s2) - 1 \
- && memEQ(s1, "" s2 "", sizeof(s2)-1))
+ && memEQ(s1, ASSERT_IS_LITERAL(s2), sizeof(s2)-1))
#define memBEGINPs(s1, l, s2) \
( (Ptrdiff_t) (l) > (Ptrdiff_t) sizeof(s2) - 1 \
- && memEQ(s1, "" s2 "", sizeof(s2)-1))
+ && memEQ(s1, ASSERT_IS_LITERAL(s2), sizeof(s2)-1))
#define memENDs(s1, l, s2) \
( (Ptrdiff_t) (l) >= (Ptrdiff_t) sizeof(s2) - 1 \
- && memEQ(s1 + (l) - (sizeof(s2) - 1), "" s2 "", sizeof(s2)-1))
+ && memEQ(s1 + (l) - (sizeof(s2) - 1), ASSERT_IS_LITERAL(s2), sizeof(s2)-1))
#define memENDPs(s1, l, s2) \
( (Ptrdiff_t) (l) > (Ptrdiff_t) sizeof(s2) \
- && memEQ(s1 + (l) - (sizeof(s2) - 1), "" s2 "", sizeof(s2)-1))
+ && memEQ(s1 + (l) - (sizeof(s2) - 1), ASSERT_IS_LITERAL(s2), sizeof(s2)-1))
#endif /* End of making macros private */
#define memLT(s1,s2,l) (memcmp(s1,s2,l) < 0)
@@ -748,7 +740,7 @@ based on the underlying C library functions):
#define memGT(s1,s2,l) (memcmp(s1,s2,l) > 0)
#define memGE(s1,s2,l) (memcmp(s1,s2,l) >= 0)
-#define memCHRs(s1,c) ((const char *) memchr("" s1 "" , c, sizeof(s1)-1))
+#define memCHRs(s1,c) ((const char *) memchr(ASSERT_IS_LITERAL(s1) , c, sizeof(s1)-1))
/*
* Character classes.
@@ -758,12 +750,12 @@ based on the underlying C library functions):
* it comes to /\w+/ with tainting enabled, we *must* be able
* to trust our character classes.
*
- * Therefore, the default tests in the text of Perl will be
- * independent of locale. Any code that wants to depend on
- * the current locale will use the tests that begin with "lc".
+ * Therefore, the default tests in the text of Perl will be independent of
+ * locale. Any code that wants to depend on the current locale will use the
+ * macros that contain _LC in their names
*/
-#ifdef USE_LOCALE
+#ifdef USE_LOCALE_CTYPE
# ifndef CTYPE256
# define CTYPE256
# endif
@@ -847,13 +839,13 @@ future releases.
=for apidoc Am|bool|isALPHA|UV ch
=for apidoc_item ||isALPHA_A|UV ch
-=for apidoc_item ||isALPHA_L1|UV ch
-=for apidoc_item ||isALPHA_uvchr|UV ch
-=for apidoc_item ||isALPHA_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isALPHA_utf8|U8 * s|U8 * end
=for apidoc_item ||isALPHA_LC|UV ch
-=for apidoc_item ||isALPHA_LC_uvchr|UV ch
=for apidoc_item ||isALPHA_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isALPHA_LC_uvchr|UV ch
+=for apidoc_item ||isALPHA_L1|UV ch
+=for apidoc_item ||isALPHA_utf8|U8 * s|U8 * end
+=for apidoc_item ||isALPHA_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isALPHA_uvchr|UV ch
Returns a boolean indicating whether the specified input is one of C<[A-Za-z]>,
analogous to C<m/[[:alpha:]]/>.
See the L<top of this section|/Character classification> for an explanation of
@@ -866,38 +858,39 @@ that would be interested in them, such as Devel::PPPort
=for apidoc Am|bool|isALPHANUMERIC|UV ch
=for apidoc_item ||isALPHANUMERIC_A|UV ch
-=for apidoc_item ||isALPHANUMERIC_L1|UV ch
-=for apidoc_item ||isALPHANUMERIC_uvchr|UV ch
-=for apidoc_item ||isALPHANUMERIC_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isALPHANUMERIC_utf8|U8 * s|U8 * end
=for apidoc_item ||isALPHANUMERIC_LC|UV ch
-=for apidoc_item ||isALPHANUMERIC_LC_uvchr|UV ch
=for apidoc_item ||isALPHANUMERIC_LC_utf8_safe|U8 * s| U8 *end
-=for apidoc_item ||isALNUMC|UV ch
-=for apidoc_item ||isALNUMC_A|UV ch
-=for apidoc_item ||isALNUMC_L1|UV ch
-=for apidoc_item ||isALNUMC_LC|UV ch
-=for apidoc_item ||isALNUMC_LC_uvchr|UV ch
+=for apidoc_item ||isALPHANUMERIC_LC_uvchr|UV ch
+=for apidoc_item ||isALPHANUMERIC_L1|UV ch
+=for apidoc_item ||isALPHANUMERIC_utf8|U8 * s|U8 * end
+=for apidoc_item ||isALPHANUMERIC_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isALPHANUMERIC_uvchr|UV ch
Returns a boolean indicating whether the specified character is one of
C<[A-Za-z0-9]>, analogous to C<m/[[:alnum:]]/>.
See the L<top of this section|/Character classification> for an explanation of
the variants.
-A (discouraged from use) synonym is C<isALNUMC> (where the C<C> suffix means
-this corresponds to the C language alphanumeric definition). Also
-there are the variants
-C<isALNUMC_A>, C<isALNUMC_L1>
-C<isALNUMC_LC>, and C<isALNUMC_LC_uvchr>.
+=for apidoc Am|bool|isALNUMC|UV ch
+=for apidoc_item ||isALNUMC_A|UV ch
+=for apidoc_item ||isALNUMC_LC|UV ch
+=for apidoc_item ||isALNUMC_LC_uvchr|UV ch
+=for apidoc_item ||isALNUMC_L1|UV ch
+These are discouraged, backward compatibility macros for L</C<isALPHANUMERIC>>.
+That is, each returns a boolean indicating whether the specified character is
+one of C<[A-Za-z0-9]>, analogous to C<m/[[:alnum:]]/>.
+
+The C<C> suffix in the names was meant to indicate that they correspond to the
+C language L<C<isalnum(3)>>.
=for apidoc Am|bool|isASCII|UV ch
=for apidoc_item ||isASCII_A|UV ch
-=for apidoc_item ||isASCII_L1|UV ch
-=for apidoc_item ||isASCII_uvchr|UV ch
-=for apidoc_item ||isASCII_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isASCII_utf8|U8 * s|U8 * end
=for apidoc_item ||isASCII_LC|UV ch
-=for apidoc_item ||isASCII_LC_uvchr|UV ch
=for apidoc_item ||isASCII_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isASCII_LC_uvchr|UV ch
+=for apidoc_item ||isASCII_L1|UV ch
+=for apidoc_item ||isASCII_utf8|U8 * s|U8 * end
+=for apidoc_item ||isASCII_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isASCII_uvchr|UV ch
Returns a boolean indicating whether the specified character is one of the 128
characters in the ASCII character set, analogous to C<m/[[:ascii:]]/>.
On non-ASCII platforms, it returns TRUE iff this
@@ -917,13 +910,13 @@ C<isASCII_utf8_safe> will work properly on any string encoded or not in UTF-8.
=for apidoc Am|bool|isBLANK|UV ch
=for apidoc_item ||isBLANK_A|UV ch
-=for apidoc_item ||isBLANK_L1|UV ch
-=for apidoc_item ||isBLANK_uvchr|UV ch
-=for apidoc_item ||isBLANK_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isBLANK_utf8|U8 * s|U8 * end
=for apidoc_item ||isBLANK_LC|UV ch
-=for apidoc_item ||isBLANK_LC_uvchr|UV ch
=for apidoc_item ||isBLANK_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isBLANK_LC_uvchr|UV ch
+=for apidoc_item ||isBLANK_L1|UV ch
+=for apidoc_item ||isBLANK_utf8|U8 * s|U8 * end
+=for apidoc_item ||isBLANK_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isBLANK_uvchr|UV 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 classification> for an explanation of
@@ -935,13 +928,13 @@ the same as the corresponding ones without.
=for apidoc Am|bool|isCNTRL|UV ch
=for apidoc_item ||isCNTRL_A|UV ch
-=for apidoc_item ||isCNTRL_L1|UV ch
-=for apidoc_item ||isCNTRL_uvchr|UV ch
-=for apidoc_item ||isCNTRL_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isCNTRL_utf8|U8 * s|U8 * end
=for apidoc_item ||isCNTRL_LC|UV ch
-=for apidoc_item ||isCNTRL_LC_uvchr|UV ch
=for apidoc_item ||isCNTRL_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isCNTRL_LC_uvchr|UV ch
+=for apidoc_item ||isCNTRL_L1|UV ch
+=for apidoc_item ||isCNTRL_utf8|U8 * s|U8 * end
+=for apidoc_item ||isCNTRL_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isCNTRL_uvchr|UV ch
Returns a boolean indicating whether the specified character is a
control character, analogous to C<m/[[:cntrl:]]/>.
@@ -951,13 +944,13 @@ On EBCDIC platforms, you almost always want to use the C<isCNTRL_L1> variant.
=for apidoc Am|bool|isDIGIT|UV ch
=for apidoc_item ||isDIGIT_A|UV ch
-=for apidoc_item ||isDIGIT_L1|UV ch
-=for apidoc_item ||isDIGIT_uvchr|UV ch
-=for apidoc_item ||isDIGIT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isDIGIT_utf8|U8 * s|U8 * end
=for apidoc_item ||isDIGIT_LC|UV ch
-=for apidoc_item ||isDIGIT_LC_uvchr|UV ch
=for apidoc_item ||isDIGIT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isDIGIT_LC_uvchr|UV ch
+=for apidoc_item ||isDIGIT_L1|UV ch
+=for apidoc_item ||isDIGIT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isDIGIT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isDIGIT_uvchr|UV ch
Returns a boolean indicating whether the specified character is a
digit, analogous to C<m/[[:digit:]]/>.
@@ -967,13 +960,13 @@ the variants.
=for apidoc Am|bool|isGRAPH|UV ch
=for apidoc_item ||isGRAPH_A|UV ch
-=for apidoc_item ||isGRAPH_L1|UV ch
-=for apidoc_item ||isGRAPH_uvchr|UV ch
-=for apidoc_item ||isGRAPH_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isGRAPH_utf8|U8 * s|U8 * end
=for apidoc_item ||isGRAPH_LC|UV ch
-=for apidoc_item ||isGRAPH_LC_uvchr|UV ch
=for apidoc_item ||isGRAPH_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isGRAPH_LC_uvchr|UV ch
+=for apidoc_item ||isGRAPH_L1|UV ch
+=for apidoc_item ||isGRAPH_utf8|U8 * s|U8 * end
+=for apidoc_item ||isGRAPH_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isGRAPH_uvchr|UV 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 classification> for an explanation of
@@ -981,13 +974,13 @@ the variants.
=for apidoc Am|bool|isLOWER|UV ch
=for apidoc_item ||isLOWER_A|UV ch
-=for apidoc_item ||isLOWER_L1|UV ch
-=for apidoc_item ||isLOWER_uvchr|UV ch
-=for apidoc_item ||isLOWER_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isLOWER_utf8|U8 * s|U8 * end
=for apidoc_item ||isLOWER_LC|UV ch
-=for apidoc_item ||isLOWER_LC_uvchr|UV ch
=for apidoc_item ||isLOWER_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isLOWER_LC_uvchr|UV ch
+=for apidoc_item ||isLOWER_L1|UV ch
+=for apidoc_item ||isLOWER_utf8|U8 * s|U8 * end
+=for apidoc_item ||isLOWER_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isLOWER_uvchr|UV 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 classification> for an explanation of
@@ -1003,13 +996,13 @@ C<isOCTAL>.
=for apidoc Am|bool|isPUNCT|UV ch
=for apidoc_item ||isPUNCT_A|UV ch
-=for apidoc_item ||isPUNCT_L1|UV ch
-=for apidoc_item ||isPUNCT_uvchr|UV ch
-=for apidoc_item ||isPUNCT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isPUNCT_utf8|U8 * s|U8 * end
=for apidoc_item ||isPUNCT_LC|UV ch
-=for apidoc_item ||isPUNCT_LC_uvchr|UV ch
=for apidoc_item ||isPUNCT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isPUNCT_LC_uvchr|UV ch
+=for apidoc_item ||isPUNCT_L1|UV ch
+=for apidoc_item ||isPUNCT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isPUNCT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isPUNCT_uvchr|UV ch
Returns a boolean indicating whether the specified character is a
punctuation character, analogous to C<m/[[:punct:]]/>.
Note that the definition of what is punctuation isn't as
@@ -1020,13 +1013,13 @@ the variants.
=for apidoc Am|bool|isSPACE|UV ch
=for apidoc_item ||isSPACE_A|UV ch
-=for apidoc_item ||isSPACE_L1|UV ch
-=for apidoc_item ||isSPACE_uvchr|UV ch
-=for apidoc_item ||isSPACE_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isSPACE_utf8|U8 * s|U8 * end
=for apidoc_item ||isSPACE_LC|UV ch
-=for apidoc_item ||isSPACE_LC_uvchr|UV ch
=for apidoc_item ||isSPACE_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isSPACE_LC_uvchr|UV ch
+=for apidoc_item ||isSPACE_L1|UV ch
+=for apidoc_item ||isSPACE_utf8|U8 * s|U8 * end
+=for apidoc_item ||isSPACE_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isSPACE_uvchr|UV ch
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
@@ -1040,13 +1033,13 @@ the variants.
=for apidoc Am|bool|isPSXSPC|UV ch
=for apidoc_item ||isPSXSPC_A|UV ch
-=for apidoc_item ||isPSXSPC_L1|UV ch
-=for apidoc_item ||isPSXSPC_uvchr|UV ch
-=for apidoc_item ||isPSXSPC_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isPSXSPC_utf8|U8 * s|U8 * end
=for apidoc_item ||isPSXSPC_LC|UV ch
-=for apidoc_item ||isPSXSPC_LC_uvchr|UV ch
=for apidoc_item ||isPSXSPC_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isPSXSPC_LC_uvchr|UV ch
+=for apidoc_item ||isPSXSPC_L1|UV ch
+=for apidoc_item ||isPSXSPC_utf8|U8 * s|U8 * end
+=for apidoc_item ||isPSXSPC_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isPSXSPC_uvchr|UV ch
(short for Posix Space)
Starting in 5.18, this is identical in all its forms to the
corresponding C<isSPACE()> macros.
@@ -1061,13 +1054,13 @@ the variants.
=for apidoc Am|bool|isUPPER|UV ch
=for apidoc_item ||isUPPER_A|UV ch
-=for apidoc_item ||isUPPER_L1|UV ch
-=for apidoc_item ||isUPPER_uvchr|UV ch
-=for apidoc_item ||isUPPER_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isUPPER_utf8|U8 * s|U8 * end
=for apidoc_item ||isUPPER_LC|UV ch
-=for apidoc_item ||isUPPER_LC_uvchr|UV ch
=for apidoc_item ||isUPPER_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isUPPER_LC_uvchr|UV ch
+=for apidoc_item ||isUPPER_L1|UV ch
+=for apidoc_item ||isUPPER_utf8|U8 * s|U8 * end
+=for apidoc_item ||isUPPER_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isUPPER_uvchr|UV 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 classification> for an explanation of
@@ -1075,13 +1068,13 @@ the variants.
=for apidoc Am|bool|isPRINT|UV ch
=for apidoc_item ||isPRINT_A|UV ch
-=for apidoc_item ||isPRINT_L1|UV ch
-=for apidoc_item ||isPRINT_uvchr|UV ch
-=for apidoc_item ||isPRINT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isPRINT_utf8|U8 * s|U8 * end
=for apidoc_item ||isPRINT_LC|UV ch
-=for apidoc_item ||isPRINT_LC_uvchr|UV ch
=for apidoc_item ||isPRINT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isPRINT_LC_uvchr|UV ch
+=for apidoc_item ||isPRINT_L1|UV ch
+=for apidoc_item ||isPRINT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isPRINT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isPRINT_uvchr|UV 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 classification> for an explanation of
@@ -1089,41 +1082,48 @@ the variants.
=for apidoc Am|bool|isWORDCHAR|UV ch
=for apidoc_item ||isWORDCHAR_A|UV ch
-=for apidoc_item ||isWORDCHAR_L1|UV ch
-=for apidoc_item ||isWORDCHAR_uvchr|UV ch
-=for apidoc_item ||isWORDCHAR_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isWORDCHAR_utf8|U8 * s|U8 * end
=for apidoc_item ||isWORDCHAR_LC|UV ch
-=for apidoc_item ||isWORDCHAR_LC_uvchr|UV ch
=for apidoc_item ||isWORDCHAR_LC_utf8_safe|U8 * s| U8 *end
-=for apidoc_item ||isALNUM|UV ch
-=for apidoc_item ||isALNUM_A|UV ch
-=for apidoc_item ||isALNUM_LC|UV ch
-=for apidoc_item ||isALNUM_LC_uvchr|UV ch
+=for apidoc_item ||isWORDCHAR_LC_uvchr|UV ch
+=for apidoc_item ||isWORDCHAR_L1|UV ch
+=for apidoc_item ||isWORDCHAR_utf8|U8 * s|U8 * end
+=for apidoc_item ||isWORDCHAR_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isWORDCHAR_uvchr|UV ch
Returns a boolean indicating whether the specified character is a character
that is a word character, analogous to what C<m/\w/> and C<m/[[:word:]]/> match
in a regular expression. A word character is an alphabetic character, a
decimal digit, a connecting punctuation character (such as an underscore), or
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 classification> for an explanation of
the variants.
+
C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uvchr>,
C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, C<isWORDCHAR_LC_utf8>, and
C<isWORDCHAR_LC_utf8_safe> are also as described there, but additionally
include the platform's native underscore.
+=for apidoc Am|bool|isALNUM |UV ch
+=for apidoc_item ||isALNUM_A |UV ch
+=for apidoc_item ||isALNUM_LC |UV ch
+=for apidoc_item ||isALNUM_LC_uvchr|UV ch
+These are each a synonym for their respectively named L</C<isWORDCHAR>>
+variant.
+
+They are provided for backward compatibility, even though a word character
+includes more than the standard C language meaning of alphanumeric.
+To get the C language definition, use the corresponding L</C<isALPHANUMERIC>>
+variant.
+
=for apidoc Am|bool|isXDIGIT|UV ch
=for apidoc_item ||isXDIGIT_A|UV ch
-=for apidoc_item ||isXDIGIT_L1|UV ch
-=for apidoc_item ||isXDIGIT_uvchr|UV ch
-=for apidoc_item ||isXDIGIT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isXDIGIT_utf8|U8 * s|U8 * end
=for apidoc_item ||isXDIGIT_LC|UV ch
-=for apidoc_item ||isXDIGIT_LC_uvchr|UV ch
=for apidoc_item ||isXDIGIT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isXDIGIT_LC_uvchr|UV ch
+=for apidoc_item ||isXDIGIT_L1|UV ch
+=for apidoc_item ||isXDIGIT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isXDIGIT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isXDIGIT_uvchr|UV 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()>.
@@ -1132,13 +1132,13 @@ the variants.
=for apidoc Am|bool|isIDFIRST|UV ch
=for apidoc_item ||isIDFIRST_A|UV ch
-=for apidoc_item ||isIDFIRST_L1|UV ch
-=for apidoc_item ||isIDFIRST_uvchr|UV ch
-=for apidoc_item ||isIDFIRST_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isIDFIRST_utf8|U8 * s|U8 * end
=for apidoc_item ||isIDFIRST_LC|UV ch
-=for apidoc_item ||isIDFIRST_LC_uvchr|UV ch
=for apidoc_item ||isIDFIRST_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isIDFIRST_LC_uvchr|UV ch
+=for apidoc_item ||isIDFIRST_L1|UV ch
+=for apidoc_item ||isIDFIRST_utf8|U8 * s|U8 * end
+=for apidoc_item ||isIDFIRST_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isIDFIRST_uvchr|UV ch
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
@@ -1148,13 +1148,13 @@ the variants.
=for apidoc Am|bool|isIDCONT|UV ch
=for apidoc_item ||isIDCONT_A|UV ch
-=for apidoc_item ||isIDCONT_L1|UV ch
-=for apidoc_item ||isIDCONT_uvchr|UV ch
-=for apidoc_item ||isIDCONT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isIDCONT_utf8|U8 * s|U8 * end
=for apidoc_item ||isIDCONT_LC|UV ch
-=for apidoc_item ||isIDCONT_LC_uvchr|UV ch
=for apidoc_item ||isIDCONT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isIDCONT_LC_uvchr|UV ch
+=for apidoc_item ||isIDCONT_L1|UV ch
+=for apidoc_item ||isIDCONT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isIDCONT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isIDCONT_uvchr|UV ch
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
@@ -1180,88 +1180,117 @@ an API that does allow every possible legal result to be returned.) Likewise
no other function that is crippled by not being able to give the correct
results for the full range of possible inputs has been implemented here.
-=for apidoc Am|U8|toUPPER|int ch
-Converts the specified character to uppercase. If the input is anything but an
-ASCII lowercase character, that input character itself is returned. Variant
-C<toUPPER_A> is equivalent.
-
-=for apidoc Am|UV|toUPPER_uvchr|UV cp|U8* s|STRLEN* lenp
-Converts the code point C<cp> to its uppercase version, and
-stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. The code
-point is interpreted as native if less than 256; otherwise as Unicode. Note
-that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
-bytes since the uppercase version may be longer than the original character.
-
-The first code point of the uppercased version is returned
-(but note, as explained at L<the top of this section|/Character case
-changing>, that there may be more.)
-
-=for apidoc Am|UV|toUPPER_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
-=for apidoc_item toUPPER_utf8_safe
-Converts the first UTF-8 encoded character in the sequence starting at C<p> and
-extending no further than S<C<e - 1>> to its uppercase version, and
-stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
-that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
-bytes since the uppercase version may be longer than the original character.
-
-The first code point of the uppercased version is returned
-(but note, as explained at L<the top of this section|/Character case
-changing>, that there may be more).
-
-It will not attempt to read beyond S<C<e - 1>>, provided that the constraint
-S<C<s E<lt> e>> is true (this is asserted for in C<-DDEBUGGING> builds). If
-the UTF-8 for the input character is malformed in some way, the program may
-croak, or the function may return the REPLACEMENT CHARACTER, at the discretion
-of the implementation, and subject to change in future releases.
-
-C<toUPPER_utf8_safe> is now just a different spelling of plain C<toUPPER_utf8>
-
-=for apidoc Am|U8|toFOLD|U8 ch
-Converts the specified character to foldcase. If the input is anything but an
-ASCII uppercase character, that input character itself is returned. Variant
-C<toFOLD_A> is equivalent. (There is no equivalent C<to_FOLD_L1> for the full
-Latin1 range, as the full generality of L</toFOLD_uvchr> is needed there.)
-
-=for apidoc Am|UV|toFOLD_uvchr|UV cp|U8* s|STRLEN* lenp
-Converts the code point C<cp> to its foldcase version, and
-stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. The code
-point is interpreted as native if less than 256; otherwise as Unicode. Note
-that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
-bytes since the foldcase version may be longer than the original character.
-
-The first code point of the foldcased version is returned
-(but note, as explained at L<the top of this section|/Character case
-changing>, that there may be more).
-
-=for apidoc Am|UV|toFOLD_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
-=for apidoc_item toFOLD_utf8_safe
-Converts the first UTF-8 encoded character in the sequence starting at C<p> and
-extending no further than S<C<e - 1>> to its foldcase version, and
-stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
-that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
-bytes since the foldcase version may be longer than the original character.
-
-The first code point of the foldcased version is returned
-(but note, as explained at L<the top of this section|/Character case
-changing>, that there may be more).
-
-It will not attempt
-to read beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is
-true (this is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the
-input character is malformed in some way, the program may croak, or the
-function may return the REPLACEMENT CHARACTER, at the discretion of the
-implementation, and subject to change in future releases.
-
-C<toFOLD_utf8_safe> is now just a different spelling of plain C<toFOLD_utf8>
+=for apidoc Am|UV|toUPPER|UV cp
+=for apidoc_item |UV|toUPPER_A|UV cp
+=for apidoc_item |UV|toUPPER_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toUPPER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toUPPER_uvchr|UV cp|U8* s|STRLEN* lenp
+
+These all return the uppercase of a character. The differences are what domain
+they operate on, and whether the input is specified as a code point (those
+forms with a C<cp> parameter) or as a UTF-8 string (the others). In the latter
+case, the code point to use is the first one in the buffer of UTF-8 encoded
+code points, delineated by the arguments S<C<p .. e - 1>>.
+
+C<toUPPER> and C<toUPPER_A> are synonyms of each other. They return the
+uppercase of any lowercase ASCII-range code point. All other inputs are
+returned unchanged. Since these are macros, the input type may be any integral
+one, and the output will occupy the same number of bits as the input.
+
+There is no C<toUPPER_L1> nor C<toUPPER_LATIN1> as the uppercase of some code
+points in the 0..255 range is above that range or consists of multiple
+characters. Instead use C<toUPPER_uvchr>.
+
+C<toUPPER_uvchr> returns the uppercase of any Unicode code point. The return
+value is identical to that of C<toUPPER_A> for input code points in the ASCII
+range. The uppercase of the vast majority of Unicode code points is the same
+as the code point itself. For these, and for code points above the legal
+Unicode maximum, this returns the input code point unchanged. It additionally
+stores the UTF-8 of the result into the buffer beginning at C<s>, and its
+length in bytes into C<*lenp>. The caller must have made C<s> large enough to
+contain at least C<UTF8_MAXBYTES_CASE+1> bytes to avoid possible overflow.
+
+NOTE: the uppercase of a code point may be more than one code point. The
+return value of this function is only the first of these. The entire uppercase
+is returned in C<s>. To determine if the result is more than a single code
+point, you can do something like this:
+
+ uc = toUPPER_uvchr(cp, s, &len);
+ if (len > UTF8SKIP(s)) { is multiple code points }
+ else { is a single code point }
+
+C<toUPPER_utf8> and C<toUPPER_utf8_safe> are synonyms of each other. The only
+difference between these and C<toUPPER_uvchr> is that the source for these is
+encoded in UTF-8, instead of being a code point. It is passed as a buffer
+starting at C<p>, with C<e> pointing to one byte beyond its end. The C<p>
+buffer may certainly contain more than one code point; but only the first one
+(up through S<C<e - 1>>) is examined. If the UTF-8 for the input character is
+malformed in some way, the program may croak, or the function may return the
+REPLACEMENT CHARACTER, at the discretion of the implementation, and subject to
+change in future releases.
+
+=for apidoc Am|UV|toFOLD|UV cp
+=for apidoc_item |UV|toFOLD_A|UV cp
+=for apidoc_item |UV|toFOLD_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toFOLD_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toFOLD_uvchr|UV cp|U8* s|STRLEN* lenp
+
+These all return the foldcase of a character. "foldcase" is an internal case
+for C</i> pattern matching. If the foldcase of character A and the foldcase of
+character B are the same, they match caselessly; otherwise they don't.
+
+The differences in the forms are what domain they operate on, and whether the
+input is specified as a code point (those forms with a C<cp> parameter) or as a
+UTF-8 string (the others). In the latter case, the code point to use is the
+first one in the buffer of UTF-8 encoded code points, delineated by the
+arguments S<C<p .. e - 1>>.
+
+C<toFOLD> and C<toFOLD_A> are synonyms of each other. They return the
+foldcase of any ASCII-range code point. In this range, the foldcase is
+identical to the lowercase. All other inputs are returned unchanged. Since
+these are macros, the input type may be any integral one, and the output will
+occupy the same number of bits as the input.
+
+There is no C<toFOLD_L1> nor C<toFOLD_LATIN1> as the foldcase of some code
+points in the 0..255 range is above that range or consists of multiple
+characters. Instead use C<toFOLD_uvchr>.
+
+C<toFOLD_uvchr> returns the foldcase of any Unicode code point. The return
+value is identical to that of C<toFOLD_A> for input code points in the ASCII
+range. The foldcase of the vast majority of Unicode code points is the same
+as the code point itself. For these, and for code points above the legal
+Unicode maximum, this returns the input code point unchanged. It additionally
+stores the UTF-8 of the result into the buffer beginning at C<s>, and its
+length in bytes into C<*lenp>. The caller must have made C<s> large enough to
+contain at least C<UTF8_MAXBYTES_CASE+1> bytes to avoid possible overflow.
+
+NOTE: the foldcase of a code point may be more than one code point. The
+return value of this function is only the first of these. The entire foldcase
+is returned in C<s>. To determine if the result is more than a single code
+point, you can do something like this:
+
+ uc = toFOLD_uvchr(cp, s, &len);
+ if (len > UTF8SKIP(s)) { is multiple code points }
+ else { is a single code point }
+
+C<toFOLD_utf8> and C<toFOLD_utf8_safe> are synonyms of each other. The only
+difference between these and C<toFOLD_uvchr> is that the source for these is
+encoded in UTF-8, instead of being a code point. It is passed as a buffer
+starting at C<p>, with C<e> pointing to one byte beyond its end. The C<p>
+buffer may certainly contain more than one code point; but only the first one
+(up through S<C<e - 1>>) is examined. If the UTF-8 for the input character is
+malformed in some way, the program may croak, or the function may return the
+REPLACEMENT CHARACTER, at the discretion of the implementation, and subject to
+change in future releases.
=for apidoc Am|UV|toLOWER|UV cp
=for apidoc_item |UV|toLOWER_A|UV cp
-=for apidoc_item |UV|toLOWER_L1|UV cp
=for apidoc_item |UV|toLOWER_LATIN1|UV cp
=for apidoc_item |UV|toLOWER_LC|UV cp
-=for apidoc_item |UV|toLOWER_uvchr|UV cp|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toLOWER_L1|UV cp
=for apidoc_item |UV|toLOWER_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
=for apidoc_item |UV|toLOWER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toLOWER_uvchr|UV cp|U8* s|STRLEN* lenp
These all return the lowercase of a character. The differences are what domain
they operate on, and whether the input is specified as a code point (those
@@ -1311,50 +1340,62 @@ malformed in some way, the program may croak, or the function may return the
REPLACEMENT CHARACTER, at the discretion of the implementation, and subject to
change in future releases.
-=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
-C<toTITLE_A> is equivalent. (There is no C<toTITLE_L1> for the full Latin1
-range, as the full generality of L</toTITLE_uvchr> is needed there. Titlecase is
-not a concept used in locale handling, so there is no functionality for that.)
-
-=for apidoc Am|UV|toTITLE_uvchr|UV cp|U8* s|STRLEN* lenp
-Converts the code point C<cp> to its titlecase version, and
-stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. The code
-point is interpreted as native if less than 256; otherwise as Unicode. Note
-that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
-bytes since the titlecase version may be longer than the original character.
-
-The first code point of the titlecased version is returned
-(but note, as explained at L<the top of this section|/Character case
-changing>, that there may be more).
-
-=for apidoc Am|UV|toTITLE_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
-=for apidoc_item toTITLE_utf8_safe
-Convert the first UTF-8 encoded character in the sequence starting at C<p> and
-extending no further than S<C<e - 1>> to its titlecase version, and
-stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
-that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
-bytes since the titlecase version may be longer than the original character.
-
-The first code point of the titlecased version is returned
-(but note, as explained at L<the top of this section|/Character case
-changing>, that there may be more).
-
-It will not attempt
-to read beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is
-true (this is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the
-input character is malformed in some way, the program may croak, or the
-function may return the REPLACEMENT CHARACTER, at the discretion of the
-implementation, and subject to change in future releases.
-
-C<toTITLE_utf8_safe> is now just a different spelling of plain C<toTITLE_utf8>
+=for apidoc Am|UV|toTITLE|UV cp
+=for apidoc_item |UV|toTITLE_A|UV cp
+=for apidoc_item |UV|toTITLE_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toTITLE_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toTITLE_uvchr|UV cp|U8* s|STRLEN* lenp
+
+These all return the titlecase of a character. The differences are what domain
+they operate on, and whether the input is specified as a code point (those
+forms with a C<cp> parameter) or as a UTF-8 string (the others). In the latter
+case, the code point to use is the first one in the buffer of UTF-8 encoded
+code points, delineated by the arguments S<C<p .. e - 1>>.
+
+C<toTITLE> and C<toTITLE_A> are synonyms of each other. They return the
+titlecase of any lowercase ASCII-range code point. In this range, the
+titlecase is identical to the uppercase. All other inputs are returned
+unchanged. Since these are macros, the input type may be any integral one, and
+the output will occupy the same number of bits as the input.
+
+There is no C<toTITLE_L1> nor C<toTITLE_LATIN1> as the titlecase of some code
+points in the 0..255 range is above that range or consists of multiple
+characters. Instead use C<toTITLE_uvchr>.
+
+C<toTITLE_uvchr> returns the titlecase of any Unicode code point. The return
+value is identical to that of C<toTITLE_A> for input code points in the ASCII
+range. The titlecase of the vast majority of Unicode code points is the same
+as the code point itself. For these, and for code points above the legal
+Unicode maximum, this returns the input code point unchanged. It additionally
+stores the UTF-8 of the result into the buffer beginning at C<s>, and its
+length in bytes into C<*lenp>. The caller must have made C<s> large enough to
+contain at least C<UTF8_MAXBYTES_CASE+1> bytes to avoid possible overflow.
+
+NOTE: the titlecase of a code point may be more than one code point. The
+return value of this function is only the first of these. The entire titlecase
+is returned in C<s>. To determine if the result is more than a single code
+point, you can do something like this:
+
+ uc = toTITLE_uvchr(cp, s, &len);
+ if (len > UTF8SKIP(s)) { is multiple code points }
+ else { is a single code point }
+
+C<toTITLE_utf8> and C<toTITLE_utf8_safe> are synonyms of each other. The only
+difference between these and C<toTITLE_uvchr> is that the source for these is
+encoded in UTF-8, instead of being a code point. It is passed as a buffer
+starting at C<p>, with C<e> pointing to one byte beyond its end. The C<p>
+buffer may certainly contain more than one code point; but only the first one
+(up through S<C<e - 1>>) is examined. If the UTF-8 for the input character is
+malformed in some way, the program may croak, or the function may return the
+REPLACEMENT CHARACTER, at the discretion of the implementation, and subject to
+change in future releases.
=cut
XXX Still undocumented isVERTWS_uvchr and _utf8; it's unclear what their names
really should be. Also toUPPER_LC and toFOLD_LC, which are subject to change,
and aren't general purpose as they don't work on U+DF, and assert against that.
+and isCASED_LC, as it really is more of an internal thing.
Note that these macros are repeated in Devel::PPPort, so should also be
patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
@@ -1378,12 +1419,26 @@ or casts
=cut
*/
-#ifdef QUADKIND
-# define WIDEST_UTYPE U64
+#define WIDEST_UTYPE PERL_UINTMAX_T
+
+/* Where there could be some confusion, use this as a static assert in macros
+ * to make sure that a parameter isn't a pointer. But some compilers can't
+ * handle this. The only one known so far that doesn't is gcc 3.3.6; the check
+ * below isn't thorough for such an old compiler, so may have to be revised if
+ * experience so dictates. */
+#if ! PERL_IS_GCC || PERL_GCC_VERSION_GT(3,3,6)
+# define ASSERT_NOT_PTR(x) ((x) | 0)
#else
-# define WIDEST_UTYPE U32
+# define ASSERT_NOT_PTR(x) (x)
#endif
+/* Likewise, this is effectively a static assert to be used to guarantee the
+ * parameter is a pointer
+ *
+ * NOT suitable for void*
+ */
+#define ASSERT_IS_PTR(x) (__ASSERT_(sizeof(*(x))) (x))
+
/* FITS_IN_8_BITS(c) returns true if c doesn't have a bit set other than in
* the lower 8. It is designed to be hopefully bomb-proof, making sure that no
* bits of information are lost even on a 64-bit machine, but to get the
@@ -1396,12 +1451,12 @@ or casts
* of operands. Well, they are, but that is kind of the point.
*/
#ifndef __COVERITY__
- /* The '| 0' part ensures a compiler error if c is not integer (like e.g., a
- * pointer) */
-#define FITS_IN_8_BITS(c) ( (sizeof(c) == 1) \
- || !(((WIDEST_UTYPE)((c) | 0)) & ~0xFF))
+ /* The '| 0' part in ASSERT_NOT_PTR ensures a compiler error if c is not
+ * integer (like e.g., a pointer) */
+# define FITS_IN_8_BITS(c) ( (sizeof(c) == 1) \
+ || (((WIDEST_UTYPE) ASSERT_NOT_PTR(c)) >> 8) == 0)
#else
-#define FITS_IN_8_BITS(c) (1)
+# define FITS_IN_8_BITS(c) (1)
#endif
/* Returns true if l <= c <= (l + n), where 'l' and 'n' are non-negative
@@ -1419,7 +1474,8 @@ or casts
* asserts itself, once. The reason that this is necessary is that the
* duplicate asserts were exceeding the internal limits of some compilers */
#define withinCOUNT_KNOWN_VALID_(c, l, n) \
- (((WIDEST_UTYPE) (((c)) - ((l) | 0))) <= (((WIDEST_UTYPE) ((n) | 0))))
+ ((((WIDEST_UTYPE) (c)) - ASSERT_NOT_PTR(l)) \
+ <= ((WIDEST_UTYPE) ASSERT_NOT_PTR(n)))
/* Returns true if c is in the range l..u, where 'l' is non-negative
* Written this way so that after optimization, only one conditional test is
@@ -1453,23 +1509,20 @@ or casts
* unsigned type. khw supposes that it could be written as
* && ((c) == '\0' || (c) > 0)
* to avoid the message, but the cast will likely avoid extra branches even
- * with stupid compilers.
- *
- * The '| 0' part ensures a compiler error if c is not integer (like e.g.,
- * a pointer) */
-# define isASCII(c) ((WIDEST_UTYPE)((c) | 0) < 128)
+ * with stupid compilers. */
+# define isASCII(c) (((WIDEST_UTYPE) ASSERT_NOT_PTR(c)) < 128)
#endif
/* Take the eight possible bit patterns of the lower 3 bits and you get the
* lower 3 bits of the 8 octal digits, in both ASCII and EBCDIC, so those bits
* can be ignored. If the rest match '0', we have an octal */
-#define isOCTAL_A(c) (((WIDEST_UTYPE)((c) | 0) & ~7) == '0')
+#define isOCTAL_A(c) ((((WIDEST_UTYPE) ASSERT_NOT_PTR(c)) & ~7) == '0')
#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
* than 32 are used in PL_charclass[] and the ones up through the one that
- * corresponds to <_HIGHEST_REGCOMP_DOT_H_SYNC> are used by regcomp.h and
+ * corresponds to <HIGHEST_REGCOMP_DOT_H_SYNC_> are used by regcomp.h and
* related files. PL_charclass ones use names used in l1_char_class_tab.h but
* their actual definitions are here. If that file has a name not used here,
* it won't compile.
@@ -1483,42 +1536,39 @@ or casts
* to group these which have no members that match above Latin1, (or above
* ASCII in the latter case) */
-# define _CC_WORDCHAR 0 /* \w and [:word:] */
-# define _CC_DIGIT 1 /* \d and [:digit:] */
-# define _CC_ALPHA 2 /* [:alpha:] */
-# define _CC_LOWER 3 /* [:lower:] */
-# define _CC_UPPER 4 /* [:upper:] */
-# define _CC_PUNCT 5 /* [:punct:] */
-# define _CC_PRINT 6 /* [:print:] */
-# define _CC_ALPHANUMERIC 7 /* [:alnum:] */
-# define _CC_GRAPH 8 /* [:graph:] */
-# define _CC_CASED 9 /* [:lower:] or [:upper:] under /i */
-# define _CC_SPACE 10 /* \s, [:space:] */
-# define _CC_BLANK 11 /* [:blank:] */
-# define _CC_XDIGIT 12 /* [:xdigit:] */
-# define _CC_CNTRL 13 /* [:cntrl:] */
-# define _CC_ASCII 14 /* [:ascii:] */
-# define _CC_VERTSPACE 15 /* \v */
-
-# define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_VERTSPACE
+# define CC_WORDCHAR_ 0 /* \w and [:word:] */
+# define CC_DIGIT_ 1 /* \d and [:digit:] */
+# define CC_ALPHA_ 2 /* [:alpha:] */
+# define CC_LOWER_ 3 /* [:lower:] */
+# define CC_UPPER_ 4 /* [:upper:] */
+# define CC_PUNCT_ 5 /* [:punct:] */
+# define CC_PRINT_ 6 /* [:print:] */
+# define CC_ALPHANUMERIC_ 7 /* [:alnum:] */
+# define CC_GRAPH_ 8 /* [:graph:] */
+# define CC_CASED_ 9 /* [:lower:] or [:upper:] under /i */
+# define CC_SPACE_ 10 /* \s, [:space:] */
+# define CC_BLANK_ 11 /* [:blank:] */
+# define CC_XDIGIT_ 12 /* [:xdigit:] */
+# 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. */
-# 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_BINDIGIT 23
-# define _CC_OCTDIGIT 24
-# define _CC_MNEMONIC_CNTRL 25
-
-/* This next group is only used on EBCDIC platforms, so theoretically could be
- * shared with something entirely different that's only on ASCII platforms */
-# define _CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE 31
-/* Unused: 26-30
+# 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_BINDIGIT_ 23
+# define CC_OCTDIGIT_ 24
+# define CC_MNEMONIC_CNTRL_ 25
+
+/* Unused: 26-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
@@ -1533,26 +1583,26 @@ or casts
/* An enum version of the character class numbers, to help compilers
* optimize */
typedef enum {
- _CC_ENUM_ALPHA = _CC_ALPHA,
- _CC_ENUM_ALPHANUMERIC = _CC_ALPHANUMERIC,
- _CC_ENUM_ASCII = _CC_ASCII,
- _CC_ENUM_BLANK = _CC_BLANK,
- _CC_ENUM_CASED = _CC_CASED,
- _CC_ENUM_CNTRL = _CC_CNTRL,
- _CC_ENUM_DIGIT = _CC_DIGIT,
- _CC_ENUM_GRAPH = _CC_GRAPH,
- _CC_ENUM_LOWER = _CC_LOWER,
- _CC_ENUM_PRINT = _CC_PRINT,
- _CC_ENUM_PUNCT = _CC_PUNCT,
- _CC_ENUM_SPACE = _CC_SPACE,
- _CC_ENUM_UPPER = _CC_UPPER,
- _CC_ENUM_VERTSPACE = _CC_VERTSPACE,
- _CC_ENUM_WORDCHAR = _CC_WORDCHAR,
- _CC_ENUM_XDIGIT = _CC_XDIGIT
-} _char_class_number;
+ CC_ENUM_ALPHA_ = CC_ALPHA_,
+ CC_ENUM_ALPHANUMERIC_ = CC_ALPHANUMERIC_,
+ CC_ENUM_ASCII_ = CC_ASCII_,
+ CC_ENUM_BLANK_ = CC_BLANK_,
+ CC_ENUM_CASED_ = CC_CASED_,
+ CC_ENUM_CNTRL_ = CC_CNTRL_,
+ CC_ENUM_DIGIT_ = CC_DIGIT_,
+ CC_ENUM_GRAPH_ = CC_GRAPH_,
+ CC_ENUM_LOWER_ = CC_LOWER_,
+ CC_ENUM_PRINT_ = CC_PRINT_,
+ CC_ENUM_PUNCT_ = CC_PUNCT_,
+ CC_ENUM_SPACE_ = CC_SPACE_,
+ CC_ENUM_UPPER_ = CC_UPPER_,
+ CC_ENUM_VERTSPACE_ = CC_VERTSPACE_,
+ CC_ENUM_WORDCHAR_ = CC_WORDCHAR_,
+ CC_ENUM_XDIGIT_ = CC_XDIGIT_
+} char_class_number_;
#endif
-#define POSIX_CC_COUNT (_HIGHEST_REGCOMP_DOT_H_SYNC + 1)
+#define POSIX_CC_COUNT (HIGHEST_REGCOMP_DOT_H_SYNC_ + 1)
START_EXTERN_C
# ifdef DOINIT
@@ -1566,32 +1616,32 @@ EXTCONST U32 PL_charclass[];
END_EXTERN_C
/* The 1U keeps Solaris from griping when shifting sets the uppermost bit */
-# define _CC_mask(classnum) (1U << (classnum))
+# 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) \
- && (PL_charclass[(U8) (c)] & _CC_mask(classnum)))
+# 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
* ASCII. */
-# define _CC_mask_A(classnum) (_CC_mask(classnum) | _CC_mask(_CC_ASCII))
+# define CC_mask_A_(classnum) (CC_mask_(classnum) | CC_mask_(CC_ASCII_))
/* For internal core Perl use only: the base macro for defining macros like
* isALPHA_A. The foo_A version makes sure that both the desired bit and
* the ASCII bit are present */
-# define _generic_isCC_A(c, classnum) (FITS_IN_8_BITS(c) \
- && ((PL_charclass[(U8) (c)] & _CC_mask_A(classnum)) \
- == _CC_mask_A(classnum)))
+# define generic_isCC_A_(c, classnum) (FITS_IN_8_BITS(c) \
+ && ((PL_charclass[(U8) (c)] & CC_mask_A_(classnum)) \
+ == CC_mask_A_(classnum)))
/* On ASCII platforms certain classes form a single range. It's faster to
* special case these. isDIGIT is a single range on all platforms */
# ifdef EBCDIC
-# define isALPHA_A(c) _generic_isCC_A(c, _CC_ALPHA)
-# 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 isUPPER_A(c) _generic_isCC_A(c, _CC_UPPER)
+# define isALPHA_A(c) generic_isCC_A_(c, CC_ALPHA_)
+# 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 isUPPER_A(c) generic_isCC_A_(c, CC_UPPER_)
# else
/* By folding the upper and lowercase, we can use a single range */
# define isALPHA_A(c) inRANGE((~('A' ^ 'a') & (c)), 'A', 'Z')
@@ -1600,58 +1650,57 @@ END_EXTERN_C
# define isPRINT_A(c) inRANGE(c, ' ', 0x7e)
# define isUPPER_A(c) inRANGE(c, 'A', 'Z')
# endif
-# 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 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) inRANGE(c, '0', '9')
-# define isPUNCT_A(c) _generic_isCC_A(c, _CC_PUNCT)
-# define isSPACE_A(c) _generic_isCC_A(c, _CC_SPACE)
-# define isWORDCHAR_A(c) _generic_isCC_A(c, _CC_WORDCHAR)
-# 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)
-# define isBLANK_L1(c) _generic_isCC(c, _CC_BLANK)
+# define isPUNCT_A(c) generic_isCC_A_(c, CC_PUNCT_)
+# define isSPACE_A(c) generic_isCC_A_(c, CC_SPACE_)
+# define isWORDCHAR_A(c) generic_isCC_A_(c, CC_WORDCHAR_)
+# 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_)
+# define isBLANK_L1(c) generic_isCC_(c, CC_BLANK_)
/* continuation character for legal NAME in \N{NAME} */
-# define isCHARNAME_CONT(c) _generic_isCC(c, _CC_CHARNAME_CONT)
+# define isCHARNAME_CONT(c) generic_isCC_(c, CC_CHARNAME_CONT_)
-# define isCNTRL_L1(c) _generic_isCC(c, _CC_CNTRL)
-# 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 isCNTRL_L1(c) generic_isCC_(c, CC_CNTRL_)
+# 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) 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)
+# 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_)
# ifdef EBCDIC
-# define isASCII(c) _generic_isCC(c, _CC_ASCII)
+# define isASCII(c) generic_isCC_(c, CC_ASCII_)
# endif
/* Participates in a single-character fold with a character above 255 */
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-# define HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(c) \
+# if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_REGEXEC_C)
+# define HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(c) \
(( ! cBOOL(FITS_IN_8_BITS(c))) \
- || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_SIMPLE_FOLD)))
+ || (PL_charclass[(U8) (c)] & CC_mask_(CC_NONLATIN1_SIMPLE_FOLD_)))
-# define IS_NON_FINAL_FOLD(c) _generic_isCC(c, _CC_NON_FINAL_FOLD)
-# define IS_IN_SOME_FOLD_L1(c) _generic_isCC(c, _CC_IS_IN_SOME_FOLD)
+# define IS_NON_FINAL_FOLD(c) generic_isCC_(c, CC_NON_FINAL_FOLD_)
+# define IS_IN_SOME_FOLD_L1(c) generic_isCC_(c, CC_IS_IN_SOME_FOLD_)
# endif
/* Like the above, but also can be part of a multi-char fold */
# define HAS_NONLATIN1_FOLD_CLOSURE(c) \
( (! cBOOL(FITS_IN_8_BITS(c))) \
- || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_FOLD)))
+ || (PL_charclass[(U8) (c)] & CC_mask_(CC_NONLATIN1_FOLD_)))
-# define _isQUOTEMETA(c) _generic_isCC(c, _CC_QUOTEMETA)
+# define _isQUOTEMETA(c) generic_isCC_(c, CC_QUOTEMETA_)
/* is c a control character for which we have a mnemonic? */
# if defined(PERL_CORE) || defined(PERL_EXT)
-# define isMNEMONIC_CNTRL(c) _generic_isCC(c, _CC_MNEMONIC_CNTRL)
+# define isMNEMONIC_CNTRL(c) generic_isCC_(c, CC_MNEMONIC_CNTRL_)
# endif
#else /* else we don't have perl.h H_PERL */
@@ -1778,14 +1827,7 @@ END_EXTERN_C
/* The following are not fully accurate in the above-ASCII range. I (khw)
* don't think it's necessary to be so for the purposes where this gets
* compiled */
-# define _isQUOTEMETA(c) (FITS_IN_8_BITS(c) && ! isWORDCHAR_L1(c))
-# define _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) isALPHA_L1(c)
-
- /* 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
+# define isQUOTEMETA_(c) (FITS_IN_8_BITS(c) && ! isWORDCHAR_L1(c))
/* Many of the macros later in this file are defined in terms of these. By
* implementing them with a function, which converts the class number into
@@ -1794,9 +1836,9 @@ END_EXTERN_C
* perl.h), and so a compiler error will be generated if one is attempted
* to be used. And the above-Latin1 code points require Unicode tables to
* be present, something unlikely to be the case when bootstrapping */
-# define _generic_isCC(c, classnum) \
+# define generic_isCC_(c, classnum) \
(FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), TRUE))
-# define _generic_isCC_A(c, classnum) \
+# define generic_isCC_A_(c, classnum) \
(FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), FALSE))
#endif /* End of no perl.h H_PERL */
@@ -1856,176 +1898,242 @@ END_EXTERN_C
#define toUPPER_LATIN1_MOD(c) ((! FITS_IN_8_BITS(c)) \
? (c) \
: PL_mod_latin1_uc[ (U8) (c) ])
-#define IN_UTF8_CTYPE_LOCALE PL_in_utf8_CTYPE_locale
+#ifdef USE_LOCALE_CTYPE
+# define IN_UTF8_CTYPE_LOCALE PL_in_utf8_CTYPE_locale
+# define IN_UTF8_TURKIC_LOCALE PL_in_utf8_turkic_locale
+#else
+# define IN_UTF8_CTYPE_LOCALE false
+# define IN_UTF8_TURKIC_LOCALE false
+#endif
/* Use foo_LC_uvchr() instead of these for beyond the Latin1 range */
/* For internal core Perl use only: the base macro for defining macros like
* isALPHA_LC, which uses the current LC_CTYPE locale. 'c' is the code point
* (0-255) to check. In a UTF-8 locale, the result is the same as calling
- * isFOO_L1(); the 'utf8_locale_classnum' parameter is something like
- * _CC_UPPER, which gives the class number for doing this. For non-UTF-8
- * locales, the code to actually do the test this is passed in 'non_utf8'. If
- * 'c' is above 255, 0 is returned. For accessing the full range of possible
- * code points under locale rules, use the macros based on _generic_LC_uvchr
- * instead of this. */
-#define _generic_LC_base(c, utf8_locale_classnum, non_utf8) \
- (! FITS_IN_8_BITS(c) \
- ? 0 \
- : IN_UTF8_CTYPE_LOCALE \
- ? cBOOL(PL_charclass[(U8) (c)] & _CC_mask(utf8_locale_classnum)) \
- : cBOOL(non_utf8))
-
-/* For internal core Perl use only: a helper macro for defining macros like
- * isALPHA_LC. 'c' is the code point (0-255) to check. The function name to
- * actually do this test is passed in 'non_utf8_func', which is called on 'c',
- * casting 'c' to the macro _LC_CAST, which should not be parenthesized. See
- * _generic_LC_base for more info */
-#define _generic_LC(c, utf8_locale_classnum, non_utf8_func) \
- _generic_LC_base(c,utf8_locale_classnum, \
- non_utf8_func( (_LC_CAST) (c)))
-
-/* For internal core Perl use only: like _generic_LC, but also returns TRUE if
- * 'c' is the platform's native underscore character */
-#define _generic_LC_underscore(c,utf8_locale_classnum,non_utf8_func) \
- _generic_LC_base(c, utf8_locale_classnum, \
- (non_utf8_func( (_LC_CAST) (c)) \
- || (char)(c) == '_'))
-
-/* These next three are also for internal core Perl use only: case-change
- * helper macros. The reason for using the PL_latin arrays is in case the
- * system function is defective; it ensures uniform results that conform to the
- * Unicod standard. It does not handle the anomalies in UTF-8 Turkic locales */
-#define _generic_toLOWER_LC(c, function, cast) (! FITS_IN_8_BITS(c) \
- ? (c) \
- : (IN_UTF8_CTYPE_LOCALE) \
- ? PL_latin1_lc[ (U8) (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
- * SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of two
- * values "SS"); instead it asserts against that under DEBUGGING, and
- * otherwise returns its input. It does not handle the anomalies in UTF-8
- * Turkic locales. */
-#define _generic_toUPPER_LC(c, function, cast) \
- (! FITS_IN_8_BITS(c) \
- ? (c) \
- : ((! IN_UTF8_CTYPE_LOCALE) \
- ? (cast)function((cast)(c)) \
- : ((((U8)(c)) == MICRO_SIGN) \
- ? GREEK_CAPITAL_LETTER_MU \
- : ((((U8)(c)) == LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \
- ? LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS \
- : ((((U8)(c)) == LATIN_SMALL_LETTER_SHARP_S) \
- ? (__ASSERT_(0) (c)) \
- : PL_mod_latin1_uc[ (U8) (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 fold case of LATIN
- * SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of two
- * values "ss"); instead it asserts against that under DEBUGGING, and
- * otherwise returns its input. It does not handle the anomalies in UTF-8
- * Turkic locales */
-#define _generic_toFOLD_LC(c, function, cast) \
- ((UNLIKELY((c) == MICRO_SIGN) && IN_UTF8_CTYPE_LOCALE) \
- ? GREEK_SMALL_LETTER_MU \
- : (__ASSERT_(! IN_UTF8_CTYPE_LOCALE \
- || (c) != LATIN_SMALL_LETTER_SHARP_S) \
- _generic_toLOWER_LC(c, function, cast)))
-
-/* Use the libc versions for these if available. */
+ * isFOO_L1(); 'classnum' is something like CC_UPPER_, which gives the class
+ * number for doing this. For non-UTF-8 locales, the code to actually do the
+ * test this is passed in 'non_utf8'. If 'c' is above 255, 0 is returned. For
+ * accessing the full range of possible code points under locale rules, use the
+ * macros based on generic_LC_uvchr_ instead of this. */
+#define generic_LC_base_(c, classnum, non_utf8_func) \
+ (! FITS_IN_8_BITS(c) \
+ ? 0 \
+ : IN_UTF8_CTYPE_LOCALE \
+ ? cBOOL(PL_charclass[(U8) (c)] & CC_mask_(classnum)) \
+ : cBOOL(non_utf8_func(c)))
+
+/* A helper macro for defining macros like isALPHA_LC. On systems without
+ * proper locales, these reduce to, e.g., isALPHA_A */
+#ifdef CTYPE256
+# define generic_LC_(c, classnum, non_utf8_func) \
+ generic_LC_base_(c, classnum, non_utf8_func)
+#else
+# define generic_LC_(c, classnum, non_utf8_func) \
+ generic_isCC_A_(c, classnum)
+#endif
+
+/* Below are the definitions for the locale-sensitive character classification
+ * macros whose input domain is a byte, and the locale isn't UTF-8. These are
+ * as close as possible to the bare versions on the platform and still yield
+ * POSIX Standard-compliant results.
+ *
+ * There is currently only one place these definitions should be used, in
+ * certain function calls like Perl_iswordchar_() in inline.h.
+ *
+ * Most likely you want to use the macros a ways below with names like
+ * isALPHA_LC(). Rarely, you may want isU8_ALPHA_LC(), somewhat below.
+ *
+ * The first two aren't in C89, so the fallback is to use the non-locale
+ * sensitive versions; these are the same for all platforms */
#if defined(HAS_ISASCII)
-# define isASCII_LC(c) (FITS_IN_8_BITS(c) && isascii( (U8) (c)))
+# define is_posix_ASCII(c) isascii((U8) (c))
#else
-# define isASCII_LC(c) isASCII(c)
+# define is_posix_ASCII(c) isASCII(c)
#endif
#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 is_posix_BLANK(c) isblank((U8) (c))
+#else
+# define is_posix_BLANK(c) isBLANK(c)
#endif
-#define _LC_CAST U8
+/* The next few are the same in all platforms. */
+#define is_posix_CNTRL(c) iscntrl((U8) (c))
+#define is_posix_IDFIRST(c) (UNLIKELY((c) == '_') || is_posix_ALPHA(c))
+#define is_posix_SPACE(c) isspace((U8) (c))
+#define is_posix_WORDCHAR(c) (UNLIKELY((c) == '_') || is_posix_ALPHANUMERIC(c))
+
+/* The base-level case changing macros are also the same in all platforms */
+#define to_posix_LOWER(c) tolower((U8) (c))
+#define to_posix_UPPER(c) toupper((U8) (c))
+#define to_posix_FOLD(c) to_posix_LOWER(c)
#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))
+/* 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 \t as both a control and a printable, and does such things as
+ * making superscripts into both digits and punctuation. These #defines tame
+ * these flaws by assuming that the definitions of controls (and the other few
+ * ones defined above) are correct, and then making sure that other definitions
+ * don't have weirdnesses, by adding a check that \w and its subsets aren't
+ * ispunct(), and things that are \W, like ispunct(), arent't controls. Not
+ * all possible weirdnesses are checked for, just ones that were detected on
+ * actual Microsoft code pages */
+# define is_posix_ALPHA(c) \
+ (isalpha((U8) (c)) && ! is_posix_PUNCT(c))
+# define is_posix_ALPHANUMERIC(c) \
+ (isalnum((U8) (c)) && ! is_posix_PUNCT(c))
+# define is_posix_CASED(c) \
+ ((isupper((U8) (c)) || islower((U8) (c))) && ! is_posix_PUNCT(c))
+# define is_posix_DIGIT(c) \
+ (isdigit((U8) (c)) && ! is_posix_PUNCT(c))
+# define is_posix_GRAPH(c) \
+ (isgraph((U8) (c)) && ! is_posix_CNTRL(c))
+# define is_posix_LOWER(c) \
+ (islower((U8) (c)) && ! is_posix_PUNCT(c))
+# define is_posix_PRINT(c) \
+ (isprint((U8) (c)) && ! is_posix_CNTRL(c))
+# define is_posix_PUNCT(c) \
+ (ispunct((U8) (c)) && ! is_posix_CNTRL(c))
+# define is_posix_UPPER(c) \
+ (isupper((U8) (c)) && ! is_posix_PUNCT(c))
+# define is_posix_XDIGIT(c) \
+ (isxdigit((U8) (c)) && ! is_posix_PUNCT(c))
+#else
+
+/* For all other platforms, as far as we know, isdigit(), etc. work sanely
+ * enough */
+# define is_posix_ALPHA(c) isalpha((U8) (c))
+# define is_posix_ALPHANUMERIC(c) isalnum((U8) (c))
+# define is_posix_CASED(c) (islower((U8) (c)) || isupper((U8) (c)))
+# define is_posix_DIGIT(c) isdigit((U8) (c))
+
+ /* ... But it seems that IBM products treat NBSP as both a space and a
+ * graphic; these are the two platforms that we have active test beds for.
+ */
+# if defined(OS390) || defined(_AIX)
+# define is_posix_GRAPH(c) (isgraph((U8) (c)) && ! isspace((U8) (c)))
+# else
+# define is_posix_GRAPH(c) isgraph((U8) (c))
+# endif
+# define is_posix_LOWER(c) islower((U8) (c))
+# define is_posix_PRINT(c) isprint((U8) (c))
+# define is_posix_PUNCT(c) ispunct((U8) (c))
+# define is_posix_UPPER(c) isupper((U8) (c))
+# define is_posix_XDIGIT(c) isxdigit((U8) (c))
+#endif
+
+/* Below is the next level up, which currently expands to nothing more
+ * than the previous layer. These are the macros to use if you really need
+ * something whose input domain is a byte, and the locale isn't UTF-8; that is,
+ * where you normally would have to use things like bare isalnum().
+ *
+ * But most likely you should instead use the layer defined further below which
+ * has names like isALPHA_LC. They deal with larger-than-byte inputs, and
+ * UTF-8 locales.
+ *
+ * (Note, proper general operation of the bare libc functions requires you to
+ * cast to U8. These do that for you automatically.) */
+
+# define WRAP_U8_LC_(c, classnum, posix) posix(c)
+
+#define isU8_ALPHANUMERIC_LC(c) \
+ WRAP_U8_LC_((c), CC_ALPHANUMERIC_, is_posix_ALPHANUMERIC)
+#define isU8_ALPHA_LC(c) WRAP_U8_LC_((c), CC_ALPHA_, is_posix_ALPHA)
+#define isU8_ASCII_LC(c) WRAP_U8_LC_((c), CC_ASCII_, is_posix_ASCII)
+#define isU8_BLANK_LC(c) WRAP_U8_LC_((c), CC_BLANK_, is_posix_BLANK)
+#define isU8_CASED_LC(c) WRAP_U8_LC_((c), CC_CASED_, is_posix_CASED)
+#define isU8_CNTRL_LC(c) WRAP_U8_LC_((c), CC_CNTRL_, is_posix_CNTRL)
+#define isU8_DIGIT_LC(c) WRAP_U8_LC_((c), CC_DIGIT_, is_posix_DIGIT)
+#define isU8_GRAPH_LC(c) WRAP_U8_LC_((c), CC_GRAPH_, is_posix_GRAPH)
+#define isU8_IDFIRST_LC(c) WRAP_U8_LC_((c), CC_IDFIRST_, is_posix_IDFIRST)
+#define isU8_LOWER_LC(c) WRAP_U8_LC_((c), CC_LOWER_, is_posix_LOWER)
+#define isU8_PRINT_LC(c) WRAP_U8_LC_((c), CC_PRINT_, is_posix_PRINT)
+#define isU8_PUNCT_LC(c) WRAP_U8_LC_((c), CC_PUNCT_, is_posix_PUNCT)
+#define isU8_SPACE_LC(c) WRAP_U8_LC_((c), CC_SPACE_, is_posix_SPACE)
+#define isU8_UPPER_LC(c) WRAP_U8_LC_((c), CC_UPPER_, is_posix_UPPER)
+#define isU8_WORDCHAR_LC(c) WRAP_U8_LC_((c), CC_WORDCHAR_, is_posix_WORDCHAR)
+#define isU8_XDIGIT_LC(c) WRAP_U8_LC_((c), CC_XDIGIT_, is_posix_XDIGIT)
+
+#define toU8_LOWER_LC(c) WRAP_U8_LC_((c), CC_TOLOWER_, to_posix_LOWER)
+#define toU8_UPPER_LC(c) WRAP_U8_LC_((c), CC_TOUPPER_, to_posix_UPPER)
+#define toU8_FOLD_LC(c) toU8_LOWER_LC(c)
+
+/* The definitions below use the ones above to create versions in which the
+ * input domain isn't restricted to bytes (though always returning false if the
+ * input doesn't fit in a byte), and to behave properly should the locale be
+ * UTF-8. These are the documented ones, suitable for general use (though
+ * toUPPER_LC and toFOLD_LC aren't documented because they need special
+ * handling to deal with SHARP S expanding to two characters). */
+
+#define isASCII_LC(c) (FITS_IN_8_BITS(c) && isU8_ASCII_LC(c))
+#define isALPHA_LC(c) generic_LC_(c, CC_ALPHA_, isU8_ALPHA_LC)
+#define isALPHANUMERIC_LC(c) \
+ generic_LC_(c, CC_ALPHANUMERIC_, isU8_ALPHANUMERIC_LC)
+#define isBLANK_LC(c) generic_LC_(c, CC_BLANK_, isU8_BLANK_LC)
+#define isCASED_LC(c) generic_LC_(c, CC_CASED_, isU8_CASED_LC)
+#define isCNTRL_LC(c) generic_LC_(c, CC_CNTRL_, isU8_CNTRL_LC)
+#define isDIGIT_LC(c) generic_LC_(c, CC_DIGIT_, isU8_DIGIT_LC)
+#define isGRAPH_LC(c) generic_LC_(c, CC_GRAPH_, isU8_GRAPH_LC)
+#define isIDFIRST_LC(c) generic_LC_(c, CC_IDFIRST_, isU8_IDFIRST_LC)
+#define isLOWER_LC(c) generic_LC_(c, CC_LOWER_, isU8_LOWER_LC)
+#define isPRINT_LC(c) generic_LC_(c, CC_PRINT_, isU8_PRINT_LC)
+#define isPUNCT_LC(c) generic_LC_(c, CC_PUNCT_, isU8_PUNCT_LC)
+#define isSPACE_LC(c) generic_LC_(c, CC_SPACE_, isU8_SPACE_LC)
+#define isUPPER_LC(c) generic_LC_(c, CC_UPPER_, isU8_UPPER_LC)
+#define isWORDCHAR_LC(c) generic_LC_(c, CC_WORDCHAR_, isU8_WORDCHAR_LC)
+#define isXDIGIT_LC(c) generic_LC_(c, CC_XDIGIT_, isU8_XDIGIT_LC)
+
+#ifndef CTYPE256
+# define toLOWER_LC(c) toLOWER_A(c)
+# define toUPPER_LC(c) toUPPER_A(c)
+# define toFOLD_LC(c) toFOLD_A(c)
+#else
+
+/* In the next three macros, the reason for using the PL_latin arrays is in
+ * case the system function is defective; it ensures uniform results that
+ * conform to the Unicode standard. */
+
+/* This does not handle the anomalies in UTF-8 Turkic locales. */
+# define toLOWER_LC(c) ((! FITS_IN_8_BITS(c)) \
+ ? (c) \
+ : ((IN_UTF8_CTYPE_LOCALE) \
+ ? PL_latin1_lc[ (U8) (c) ] \
+ : ((U8) toU8_LOWER_LC(c))))
+
+/* In this macro, 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 SMALL LETTER SHARP S in a UTF-8 locale (which should be a
+ * string of two values "SS"); instead it asserts against that under
+ * DEBUGGING, and otherwise returns its input. It does not handle the
+ * anomalies in UTF-8 Turkic locales. */
+# define toUPPER_LC(c) \
+ ((! FITS_IN_8_BITS(c)) \
+ ? (c) \
+ : ((! IN_UTF8_CTYPE_LOCALE) \
+ ? ((U8) toU8_UPPER_LC(c)) \
+ : (UNLIKELY(((U8)(c)) == MICRO_SIGN) \
+ ? GREEK_CAPITAL_LETTER_MU \
+ : ((UNLIKELY(((U8) (c)) == LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \
+ ? LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS \
+ : (UNLIKELY(((U8)(c)) == LATIN_SMALL_LETTER_SHARP_S) \
+ ? (__ASSERT_(0) (c)) /* Fail on Sharp S in DEBUGGING */ \
+ : PL_mod_latin1_uc[ (U8) (c) ]))))))
+
+/* In this macro, 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 fold case
+ * of LATIN SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of
+ * two values "ss"); instead it asserts against that under DEBUGGING, and
+ * otherwise returns its input. It does not handle the anomalies in UTF-8
+ * Turkic locales */
+# define toFOLD_LC(c) \
+ ((UNLIKELY((c) == MICRO_SIGN) && IN_UTF8_CTYPE_LOCALE) \
+ ? GREEK_SMALL_LETTER_MU \
+ : (__ASSERT_( ! IN_UTF8_CTYPE_LOCALE \
+ || LIKELY((c) != LATIN_SMALL_LETTER_SHARP_S)) \
+ toLOWER_LC(c)))
#endif
#define isIDCONT(c) isWORDCHAR(c)
@@ -2036,46 +2144,46 @@ END_EXTERN_C
/* For internal core Perl use only: the base macros for defining macros like
* isALPHA_uvchr. 'c' is the code point to check. 'classnum' is the POSIX class
- * number defined earlier in this file. _generic_uvchr() is used for POSIX
+ * number defined earlier in this file. generic_uvchr_() is used for POSIX
* classes where there is a macro or function 'above_latin1' that takes the
* single argument 'c' and returns the desired value. These exist for those
* classes which have simple definitions, avoiding the overhead of an inversion
- * list binary search. _generic_invlist_uvchr() can be used
+ * list binary search. generic_invlist_uvchr_() can be used
* for classes where that overhead is faster than a direct lookup.
- * _generic_uvchr() won't compile if 'c' isn't unsigned, as it won't match the
- * 'above_latin1' prototype. _generic_isCC() macro does bounds checking, so
+ * generic_uvchr_() won't compile if 'c' isn't unsigned, as it won't match the
+ * 'above_latin1' prototype. generic_isCC_() macro does bounds checking, so
* have duplicate checks here, so could create versions of the macros that
* don't, but experiments show that gcc optimizes them out anyway. */
/* Note that all ignore 'use bytes' */
-#define _generic_uvchr(classnum, above_latin1, c) ((c) < 256 \
- ? _generic_isCC(c, classnum) \
+#define generic_uvchr_(classnum, above_latin1, c) ((c) < 256 \
+ ? generic_isCC_(c, classnum) \
: above_latin1(c))
-#define _generic_invlist_uvchr(classnum, c) ((c) < 256 \
- ? _generic_isCC(c, classnum) \
+#define generic_invlist_uvchr_(classnum, c) ((c) < 256 \
+ ? generic_isCC_(c, classnum) \
: _is_uni_FOO(classnum, c))
-#define isALPHA_uvchr(c) _generic_invlist_uvchr(_CC_ALPHA, c)
-#define isALPHANUMERIC_uvchr(c) _generic_invlist_uvchr(_CC_ALPHANUMERIC, c)
+#define isALPHA_uvchr(c) generic_invlist_uvchr_(CC_ALPHA_, c)
+#define isALPHANUMERIC_uvchr(c) generic_invlist_uvchr_(CC_ALPHANUMERIC_, c)
#define isASCII_uvchr(c) isASCII(c)
-#define isBLANK_uvchr(c) _generic_uvchr(_CC_BLANK, is_HORIZWS_cp_high, c)
+#define isBLANK_uvchr(c) generic_uvchr_(CC_BLANK_, is_HORIZWS_cp_high, c)
#define isCNTRL_uvchr(c) isCNTRL_L1(c) /* All controls are in Latin1 */
-#define isDIGIT_uvchr(c) _generic_invlist_uvchr(_CC_DIGIT, c)
-#define isGRAPH_uvchr(c) _generic_invlist_uvchr(_CC_GRAPH, c)
+#define isDIGIT_uvchr(c) generic_invlist_uvchr_(CC_DIGIT_, c)
+#define isGRAPH_uvchr(c) generic_invlist_uvchr_(CC_GRAPH_, c)
#define isIDCONT_uvchr(c) \
- _generic_uvchr(_CC_WORDCHAR, _is_uni_perl_idcont, c)
+ generic_uvchr_(CC_WORDCHAR_, _is_uni_perl_idcont, c)
#define isIDFIRST_uvchr(c) \
- _generic_uvchr(_CC_IDFIRST, _is_uni_perl_idstart, c)
-#define isLOWER_uvchr(c) _generic_invlist_uvchr(_CC_LOWER, c)
-#define isPRINT_uvchr(c) _generic_invlist_uvchr(_CC_PRINT, c)
+ generic_uvchr_(CC_IDFIRST_, _is_uni_perl_idstart, c)
+#define isLOWER_uvchr(c) generic_invlist_uvchr_(CC_LOWER_, c)
+#define isPRINT_uvchr(c) generic_invlist_uvchr_(CC_PRINT_, c)
-#define isPUNCT_uvchr(c) _generic_invlist_uvchr(_CC_PUNCT, c)
-#define isSPACE_uvchr(c) _generic_uvchr(_CC_SPACE, is_XPERLSPACE_cp_high, c)
+#define isPUNCT_uvchr(c) generic_invlist_uvchr_(CC_PUNCT_, c)
+#define isSPACE_uvchr(c) generic_uvchr_(CC_SPACE_, is_XPERLSPACE_cp_high, c)
#define isPSXSPC_uvchr(c) isSPACE_uvchr(c)
-#define isUPPER_uvchr(c) _generic_invlist_uvchr(_CC_UPPER, c)
-#define isVERTWS_uvchr(c) _generic_uvchr(_CC_VERTSPACE, is_VERTWS_cp_high, c)
-#define isWORDCHAR_uvchr(c) _generic_invlist_uvchr(_CC_WORDCHAR, c)
-#define isXDIGIT_uvchr(c) _generic_uvchr(_CC_XDIGIT, is_XDIGIT_cp_high, c)
+#define isUPPER_uvchr(c) generic_invlist_uvchr_(CC_UPPER_, c)
+#define isVERTWS_uvchr(c) generic_uvchr_(CC_VERTSPACE_, is_VERTWS_cp_high, c)
+#define isWORDCHAR_uvchr(c) generic_invlist_uvchr_(CC_WORDCHAR_, c)
+#define isXDIGIT_uvchr(c) generic_uvchr_(CC_XDIGIT_, is_XDIGIT_cp_high, c)
#define toFOLD_uvchr(c,s,l) to_uni_fold(c,s,l)
#define toLOWER_uvchr(c,s,l) to_uni_lower(c,s,l)
@@ -2109,37 +2217,37 @@ END_EXTERN_C
/* For internal core Perl use only: the base macros for defining macros like
* isALPHA_LC_uvchr. These are like isALPHA_LC, but the input can be any code
- * point, not just 0-255. Like _generic_uvchr, there are two versions, one for
+ * point, not just 0-255. Like generic_uvchr_, there are two versions, one for
* simple class definitions; the other for more complex. These are like
- * _generic_uvchr, so see it for more info. */
-#define _generic_LC_uvchr(latin1, above_latin1, c) \
+ * generic_uvchr_, so see it for more info. */
+#define generic_LC_uvchr_(latin1, above_latin1, c) \
(c < 256 ? latin1(c) : above_latin1(c))
-#define _generic_LC_invlist_uvchr(latin1, classnum, c) \
+#define generic_LC_invlist_uvchr_(latin1, classnum, c) \
(c < 256 ? latin1(c) : _is_uni_FOO(classnum, c))
-#define isALPHA_LC_uvchr(c) _generic_LC_invlist_uvchr(isALPHA_LC, _CC_ALPHA, c)
-#define isALPHANUMERIC_LC_uvchr(c) _generic_LC_invlist_uvchr(isALPHANUMERIC_LC, \
- _CC_ALPHANUMERIC, c)
+#define isALPHA_LC_uvchr(c) generic_LC_invlist_uvchr_(isALPHA_LC, CC_ALPHA_, c)
+#define isALPHANUMERIC_LC_uvchr(c) generic_LC_invlist_uvchr_(isALPHANUMERIC_LC, \
+ CC_ALPHANUMERIC_, c)
#define isASCII_LC_uvchr(c) isASCII_LC(c)
-#define isBLANK_LC_uvchr(c) _generic_LC_uvchr(isBLANK_LC, \
+#define isBLANK_LC_uvchr(c) generic_LC_uvchr_(isBLANK_LC, \
is_HORIZWS_cp_high, c)
#define isCNTRL_LC_uvchr(c) (c < 256 ? isCNTRL_LC(c) : 0)
-#define isDIGIT_LC_uvchr(c) _generic_LC_invlist_uvchr(isDIGIT_LC, _CC_DIGIT, c)
-#define isGRAPH_LC_uvchr(c) _generic_LC_invlist_uvchr(isGRAPH_LC, _CC_GRAPH, c)
-#define isIDCONT_LC_uvchr(c) _generic_LC_uvchr(isIDCONT_LC, \
+#define isDIGIT_LC_uvchr(c) generic_LC_invlist_uvchr_(isDIGIT_LC, CC_DIGIT_, c)
+#define isGRAPH_LC_uvchr(c) generic_LC_invlist_uvchr_(isGRAPH_LC, CC_GRAPH_, c)
+#define isIDCONT_LC_uvchr(c) generic_LC_uvchr_(isIDCONT_LC, \
_is_uni_perl_idcont, c)
-#define isIDFIRST_LC_uvchr(c) _generic_LC_uvchr(isIDFIRST_LC, \
+#define isIDFIRST_LC_uvchr(c) generic_LC_uvchr_(isIDFIRST_LC, \
_is_uni_perl_idstart, c)
-#define isLOWER_LC_uvchr(c) _generic_LC_invlist_uvchr(isLOWER_LC, _CC_LOWER, c)
-#define isPRINT_LC_uvchr(c) _generic_LC_invlist_uvchr(isPRINT_LC, _CC_PRINT, c)
+#define isLOWER_LC_uvchr(c) generic_LC_invlist_uvchr_(isLOWER_LC, CC_LOWER_, c)
+#define isPRINT_LC_uvchr(c) generic_LC_invlist_uvchr_(isPRINT_LC, CC_PRINT_, c)
#define isPSXSPC_LC_uvchr(c) isSPACE_LC_uvchr(c)
-#define isPUNCT_LC_uvchr(c) _generic_LC_invlist_uvchr(isPUNCT_LC, _CC_PUNCT, c)
-#define isSPACE_LC_uvchr(c) _generic_LC_uvchr(isSPACE_LC, \
+#define isPUNCT_LC_uvchr(c) generic_LC_invlist_uvchr_(isPUNCT_LC, CC_PUNCT_, c)
+#define isSPACE_LC_uvchr(c) generic_LC_uvchr_(isSPACE_LC, \
is_XPERLSPACE_cp_high, c)
-#define isUPPER_LC_uvchr(c) _generic_LC_invlist_uvchr(isUPPER_LC, _CC_UPPER, c)
-#define isWORDCHAR_LC_uvchr(c) _generic_LC_invlist_uvchr(isWORDCHAR_LC, \
- _CC_WORDCHAR, c)
-#define isXDIGIT_LC_uvchr(c) _generic_LC_uvchr(isXDIGIT_LC, \
+#define isUPPER_LC_uvchr(c) generic_LC_invlist_uvchr_(isUPPER_LC, CC_UPPER_, c)
+#define isWORDCHAR_LC_uvchr(c) generic_LC_invlist_uvchr_(isWORDCHAR_LC, \
+ CC_WORDCHAR_, c)
+#define isXDIGIT_LC_uvchr(c) generic_LC_uvchr_(isXDIGIT_LC, \
is_XDIGIT_cp_high, c)
#define isBLANK_LC_uni(c) isBLANK_LC_uvchr(UNI_TO_NATIVE(c))
@@ -2167,41 +2275,41 @@ END_EXTERN_C
# define _utf8_safe_assert(p,e) ((e) > (p))
#endif
-#define _generic_utf8_safe(classnum, p, e, above_latin1) \
+#define generic_utf8_safe_(classnum, p, e, above_latin1) \
((! _utf8_safe_assert(p, e)) \
? (_force_out_malformed_utf8_message((U8 *) (p), (U8 *) (e), 0, 1), 0)\
: (UTF8_IS_INVARIANT(*(p))) \
- ? _generic_isCC(*(p), classnum) \
+ ? generic_isCC_(*(p), classnum) \
: (UTF8_IS_DOWNGRADEABLE_START(*(p)) \
? ((LIKELY((e) - (p) > 1 && UTF8_IS_CONTINUATION(*((p)+1)))) \
- ? _generic_isCC(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1 )), \
+ ? generic_isCC_(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1 )), \
classnum) \
: (_force_out_malformed_utf8_message( \
(U8 *) (p), (U8 *) (e), 0, 1), 0)) \
: above_latin1))
/* Like the above, but calls 'above_latin1(p)' to get the utf8 value.
* 'above_latin1' can be a macro */
-#define _generic_func_utf8_safe(classnum, above_latin1, p, e) \
- _generic_utf8_safe(classnum, p, e, above_latin1(p, e))
-#define _generic_non_invlist_utf8_safe(classnum, above_latin1, p, e) \
- _generic_utf8_safe(classnum, p, e, \
+#define generic_func_utf8_safe_(classnum, above_latin1, p, e) \
+ generic_utf8_safe_(classnum, p, e, above_latin1(p, e))
+#define generic_non_invlist_utf8_safe_(classnum, above_latin1, p, e) \
+ generic_utf8_safe_(classnum, p, e, \
(UNLIKELY((e) - (p) < UTF8SKIP(p)) \
? (_force_out_malformed_utf8_message( \
(U8 *) (p), (U8 *) (e), 0, 1), 0) \
: above_latin1(p)))
/* Like the above, but passes classnum to _isFOO_utf8(), instead of having an
* 'above_latin1' parameter */
-#define _generic_invlist_utf8_safe(classnum, p, e) \
- _generic_utf8_safe(classnum, p, e, _is_utf8_FOO(classnum, p, e))
+#define generic_invlist_utf8_safe_(classnum, p, e) \
+ generic_utf8_safe_(classnum, p, e, _is_utf8_FOO(classnum, p, e))
/* Like the above, but should be used only when it is known that there are no
* 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_safe_no_upper_latin1(classnum, p, e, above_latin1) \
+#define generic_utf8_safe_no_upper_latin1_(classnum, p, e, above_latin1) \
(__ASSERT_(_utf8_safe_assert(p, e)) \
- (UTF8_IS_INVARIANT(*(p))) \
- ? _generic_isCC(*(p), classnum) \
+ (isASCII(*(p))) \
+ ? generic_isCC_(*(p), classnum) \
: (UTF8_IS_DOWNGRADEABLE_START(*(p))) \
? 0 /* Note that doesn't check validity for latin1 */ \
: above_latin1)
@@ -2226,15 +2334,15 @@ END_EXTERN_C
#define isWORDCHAR_utf8(p, e) isWORDCHAR_utf8_safe(p, e)
#define isXDIGIT_utf8(p, e) isXDIGIT_utf8_safe(p, e)
-#define isALPHA_utf8_safe(p, e) _generic_invlist_utf8_safe(_CC_ALPHA, p, e)
+#define isALPHA_utf8_safe(p, e) generic_invlist_utf8_safe_(CC_ALPHA_, p, e)
#define isALPHANUMERIC_utf8_safe(p, e) \
- _generic_invlist_utf8_safe(_CC_ALPHANUMERIC, p, e)
+ generic_invlist_utf8_safe_(CC_ALPHANUMERIC_, p, e)
#define isASCII_utf8_safe(p, e) \
/* Because ASCII is invariant under utf8, the non-utf8 macro \
* works */ \
(__ASSERT_(_utf8_safe_assert(p, e)) isASCII(*(p)))
#define isBLANK_utf8_safe(p, e) \
- _generic_non_invlist_utf8_safe(_CC_BLANK, is_HORIZWS_high, p, e)
+ generic_non_invlist_utf8_safe_(CC_BLANK_, is_HORIZWS_high, p, e)
#ifdef EBCDIC
/* Because all controls are UTF-8 invariants in EBCDIC, we can use this
@@ -2242,14 +2350,14 @@ END_EXTERN_C
# define isCNTRL_utf8_safe(p, e) \
(__ASSERT_(_utf8_safe_assert(p, e)) isCNTRL_L1(*(p)))
#else
-# define isCNTRL_utf8_safe(p, e) _generic_utf8_safe(_CC_CNTRL, p, e, 0)
+# define isCNTRL_utf8_safe(p, e) generic_utf8_safe_(CC_CNTRL_, p, e, 0)
#endif
#define isDIGIT_utf8_safe(p, e) \
- _generic_utf8_safe_no_upper_latin1(_CC_DIGIT, p, e, \
- _is_utf8_FOO(_CC_DIGIT, p, e))
-#define isGRAPH_utf8_safe(p, e) _generic_invlist_utf8_safe(_CC_GRAPH, p, e)
-#define isIDCONT_utf8_safe(p, e) _generic_func_utf8_safe(_CC_WORDCHAR, \
+ generic_utf8_safe_no_upper_latin1_(CC_DIGIT_, p, e, \
+ _is_utf8_FOO(CC_DIGIT_, p, e))
+#define isGRAPH_utf8_safe(p, e) generic_invlist_utf8_safe_(CC_GRAPH_, p, e)
+#define isIDCONT_utf8_safe(p, e) generic_func_utf8_safe_(CC_WORDCHAR_, \
_is_utf8_perl_idcont, p, e)
/* To prevent S_scan_word in toke.c from hanging, we have to make sure that
@@ -2259,22 +2367,22 @@ END_EXTERN_C
* This used to be not the XID version, but we decided to go with the more
* modern Unicode definition */
#define isIDFIRST_utf8_safe(p, e) \
- _generic_func_utf8_safe(_CC_IDFIRST, \
+ generic_func_utf8_safe_(CC_IDFIRST_, \
_is_utf8_perl_idstart, (U8 *) (p), (U8 *) (e))
-#define isLOWER_utf8_safe(p, e) _generic_invlist_utf8_safe(_CC_LOWER, p, e)
-#define isPRINT_utf8_safe(p, e) _generic_invlist_utf8_safe(_CC_PRINT, p, e)
+#define isLOWER_utf8_safe(p, e) generic_invlist_utf8_safe_(CC_LOWER_, p, e)
+#define isPRINT_utf8_safe(p, e) generic_invlist_utf8_safe_(CC_PRINT_, p, e)
#define isPSXSPC_utf8_safe(p, e) isSPACE_utf8_safe(p, e)
-#define isPUNCT_utf8_safe(p, e) _generic_invlist_utf8_safe(_CC_PUNCT, p, e)
+#define isPUNCT_utf8_safe(p, e) generic_invlist_utf8_safe_(CC_PUNCT_, p, e)
#define isSPACE_utf8_safe(p, e) \
- _generic_non_invlist_utf8_safe(_CC_SPACE, is_XPERLSPACE_high, p, e)
-#define isUPPER_utf8_safe(p, e) _generic_invlist_utf8_safe(_CC_UPPER, p, e)
+ generic_non_invlist_utf8_safe_(CC_SPACE_, is_XPERLSPACE_high, p, e)
+#define isUPPER_utf8_safe(p, e) generic_invlist_utf8_safe_(CC_UPPER_, p, e)
#define isVERTWS_utf8_safe(p, e) \
- _generic_non_invlist_utf8_safe(_CC_VERTSPACE, is_VERTWS_high, p, e)
+ generic_non_invlist_utf8_safe_(CC_VERTSPACE_, is_VERTWS_high, p, e)
#define isWORDCHAR_utf8_safe(p, e) \
- _generic_invlist_utf8_safe(_CC_WORDCHAR, p, e)
+ generic_invlist_utf8_safe_(CC_WORDCHAR_, p, e)
#define isXDIGIT_utf8_safe(p, e) \
- _generic_utf8_safe_no_upper_latin1(_CC_XDIGIT, p, e, \
+ generic_utf8_safe_no_upper_latin1_(CC_XDIGIT_, p, e, \
(UNLIKELY((e) - (p) < UTF8SKIP(p)) \
? (_force_out_malformed_utf8_message( \
(U8 *) (p), (U8 *) (e), 0, 1), 0) \
@@ -2315,10 +2423,10 @@ END_EXTERN_C
#define isXDIGIT_LC_utf8(p, e) isXDIGIT_LC_utf8_safe(p, e)
/* For internal core Perl use only: the base macros for defining macros like
- * isALPHA_LC_utf8_safe. These are like _generic_utf8, but if the first code
+ * isALPHA_LC_utf8_safe. These are like generic_utf8_, but if the first code
* point in 'p' is within the 0-255 range, it uses locale rules from the
* passed-in 'macro' parameter */
-#define _generic_LC_utf8_safe(macro, p, e, above_latin1) \
+#define generic_LC_utf8_safe_(macro, p, e, above_latin1) \
(__ASSERT_(_utf8_safe_assert(p, e)) \
(UTF8_IS_INVARIANT(*(p))) \
? macro(*(p)) \
@@ -2329,56 +2437,56 @@ END_EXTERN_C
(U8 *) (p), (U8 *) (e), 0, 1), 0)) \
: above_latin1))
-#define _generic_LC_invlist_utf8_safe(macro, classnum, p, e) \
- _generic_LC_utf8_safe(macro, p, e, \
+#define generic_LC_invlist_utf8_safe_(macro, classnum, p, e) \
+ generic_LC_utf8_safe_(macro, p, e, \
_is_utf8_FOO(classnum, p, e))
-#define _generic_LC_func_utf8_safe(macro, above_latin1, p, e) \
- _generic_LC_utf8_safe(macro, p, e, above_latin1(p, e))
+#define generic_LC_func_utf8_safe_(macro, above_latin1, p, e) \
+ generic_LC_utf8_safe_(macro, p, e, above_latin1(p, e))
-#define _generic_LC_non_invlist_utf8_safe(classnum, above_latin1, p, e) \
- _generic_LC_utf8_safe(classnum, p, e, \
+#define generic_LC_non_invlist_utf8_safe_(classnum, above_latin1, p, e) \
+ generic_LC_utf8_safe_(classnum, p, e, \
(UNLIKELY((e) - (p) < UTF8SKIP(p)) \
? (_force_out_malformed_utf8_message( \
(U8 *) (p), (U8 *) (e), 0, 1), 0) \
: above_latin1(p)))
#define isALPHANUMERIC_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isALPHANUMERIC_LC, \
- _CC_ALPHANUMERIC, p, e)
+ generic_LC_invlist_utf8_safe_(isALPHANUMERIC_LC, \
+ CC_ALPHANUMERIC_, p, e)
#define isALPHA_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isALPHA_LC, _CC_ALPHA, p, e)
+ generic_LC_invlist_utf8_safe_(isALPHA_LC, CC_ALPHA_, p, e)
#define isASCII_LC_utf8_safe(p, e) \
(__ASSERT_(_utf8_safe_assert(p, e)) isASCII_LC(*(p)))
#define isBLANK_LC_utf8_safe(p, e) \
- _generic_LC_non_invlist_utf8_safe(isBLANK_LC, is_HORIZWS_high, p, e)
+ generic_LC_non_invlist_utf8_safe_(isBLANK_LC, is_HORIZWS_high, p, e)
#define isCNTRL_LC_utf8_safe(p, e) \
- _generic_LC_utf8_safe(isCNTRL_LC, p, e, 0)
+ generic_LC_utf8_safe_(isCNTRL_LC, p, e, 0)
#define isDIGIT_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isDIGIT_LC, _CC_DIGIT, p, e)
+ generic_LC_invlist_utf8_safe_(isDIGIT_LC, CC_DIGIT_, p, e)
#define isGRAPH_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isGRAPH_LC, _CC_GRAPH, p, e)
+ generic_LC_invlist_utf8_safe_(isGRAPH_LC, CC_GRAPH_, p, e)
#define isIDCONT_LC_utf8_safe(p, e) \
- _generic_LC_func_utf8_safe(isIDCONT_LC, \
+ generic_LC_func_utf8_safe_(isIDCONT_LC, \
_is_utf8_perl_idcont, p, e)
#define isIDFIRST_LC_utf8_safe(p, e) \
- _generic_LC_func_utf8_safe(isIDFIRST_LC, \
+ generic_LC_func_utf8_safe_(isIDFIRST_LC, \
_is_utf8_perl_idstart, p, e)
#define isLOWER_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isLOWER_LC, _CC_LOWER, p, e)
+ generic_LC_invlist_utf8_safe_(isLOWER_LC, CC_LOWER_, p, e)
#define isPRINT_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isPRINT_LC, _CC_PRINT, p, e)
+ generic_LC_invlist_utf8_safe_(isPRINT_LC, CC_PRINT_, p, e)
#define isPSXSPC_LC_utf8_safe(p, e) isSPACE_LC_utf8_safe(p, e)
#define isPUNCT_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isPUNCT_LC, _CC_PUNCT, p, e)
+ generic_LC_invlist_utf8_safe_(isPUNCT_LC, CC_PUNCT_, p, e)
#define isSPACE_LC_utf8_safe(p, e) \
- _generic_LC_non_invlist_utf8_safe(isSPACE_LC, is_XPERLSPACE_high, p, e)
+ generic_LC_non_invlist_utf8_safe_(isSPACE_LC, is_XPERLSPACE_high, p, e)
#define isUPPER_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isUPPER_LC, _CC_UPPER, p, e)
+ generic_LC_invlist_utf8_safe_(isUPPER_LC, CC_UPPER_, p, e)
#define isWORDCHAR_LC_utf8_safe(p, e) \
- _generic_LC_invlist_utf8_safe(isWORDCHAR_LC, _CC_WORDCHAR, p, e)
+ generic_LC_invlist_utf8_safe_(isWORDCHAR_LC, CC_WORDCHAR_, p, e)
#define isXDIGIT_LC_utf8_safe(p, e) \
- _generic_LC_non_invlist_utf8_safe(isXDIGIT_LC, is_XDIGIT_high, p, e)
+ generic_LC_non_invlist_utf8_safe_(isXDIGIT_LC, is_XDIGIT_high, p, e)
/* Macros for backwards compatibility and for completeness when the ASCII and
* Latin1 values are identical */
@@ -2438,6 +2546,7 @@ The typedef to use to declare variables that are to hold line numbers.
Line numbers are unsigned, 32 bits.
*/
typedef U32 line_t;
+#define LINE_Tf U32uf
#define NOLINE ((line_t) 4294967295UL) /* = FFFFFFFF */
/* Helpful alias for version prescan */
@@ -2498,6 +2607,8 @@ typedef U32 line_t;
=for apidoc_section $memory
=for apidoc Am|void|Newx|void* ptr|int nitems|type
+=for apidoc_item |void*|safemalloc|size_t size
+
The XSUB-writer's interface to the C C<malloc> function.
Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
@@ -2515,12 +2626,16 @@ cast. See also C<L</Newx>>.
Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
=for apidoc Am|void|Newxz|void* ptr|int nitems|type
+=for apidoc_item |void*|safecalloc|size_t nitems|size_t item_size
+
The XSUB-writer's interface to the C C<malloc> function. The allocated
memory is zeroed with C<memzero>. See also C<L</Newx>>.
Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
=for apidoc Am|void|Renew|void* ptr|int nitems|type
+=for apidoc_item |void*|saferealloc|void *ptr|size_t size
+
The XSUB-writer's interface to the C C<realloc> function.
Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
@@ -2537,35 +2652,37 @@ The XSUB-writer's interface to the C C<free> function.
This should B<ONLY> be used on memory obtained using L</"Newx"> and friends.
=for apidoc_section $string
-=for apidoc Am|void|Move|void* src|void* dest|int nitems|type
+=for apidoc Am|void |Move |void* src|void* dest|int nitems|type
+=for apidoc_item |void *|MoveD|void* src|void* dest|int nitems|type
The XSUB-writer's interface to the C C<memmove> function. The C<src> is the
source, C<dest> is the destination, C<nitems> is the number of items, and
C<type> is the type. Can do overlapping moves. See also C<L</Copy>>.
-=for apidoc Am|void *|MoveD|void* src|void* dest|int nitems|type
-Like C<Move> but returns C<dest>. Useful
+C<MoveD> is like C<Move> but returns C<dest>. Useful
for encouraging compilers to tail-call
optimise.
-=for apidoc Am|void|Copy|void* src|void* dest|int nitems|type
+=for apidoc Am|void |Copy |void* src|void* dest|int nitems|type
+=for apidoc_item |void *|CopyD|void* src|void* dest|int nitems|type
The XSUB-writer's interface to the C C<memcpy> function. The C<src> is the
source, C<dest> is the destination, C<nitems> is the number of items, and
C<type> is the type. May fail on overlapping copies. See also C<L</Move>>.
-=for apidoc Am|void *|CopyD|void* src|void* dest|int nitems|type
-
-Like C<Copy> but returns C<dest>. Useful
+C<CopyD> is like C<Copy> but returns C<dest>. Useful
for encouraging compilers to tail-call
optimise.
-=for apidoc Am|void|Zero|void* dest|int nitems|type
+=for apidoc Am|void |NewCopy |void* src|void* dest|int nitems|type
+Combines Newx() and Copy() into a single macro. Dest will be allocated
+using Newx() and then src will be copied into it.
+
+=for apidoc Am|void |Zero |void* dest|int nitems|type
+=for apidoc_item |void *|ZeroD|void* dest|int nitems|type
The XSUB-writer's interface to the C C<memzero> function. The C<dest> is the
destination, C<nitems> is the number of items, and C<type> is the type.
-=for apidoc Am|void *|ZeroD|void* dest|int nitems|type
-
-Like C<Zero> but returns dest. Useful
+C<ZeroD> is like C<Zero> but returns C<dest>. Useful
for encouraging compilers to tail-call
optimise.
@@ -2613,6 +2730,7 @@ PoisonWith(0xEF) for catching access to freed memory.
* max(n) * sizeof(t) > MEM_SIZE_MAX
*/
+
# define _MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) \
( sizeof(MEM_SIZE) < sizeof(n) \
|| sizeof(t) > ((MEM_SIZE)1 << 8*(sizeof(MEM_SIZE) - sizeof(n))))
@@ -2648,20 +2766,20 @@ PoisonWith(0xEF) for catching access to freed memory.
/* "a" arg must be a string literal */
# define MEM_WRAP_CHECK_s(n,t,a) \
- (void)(UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t)) \
- && (Perl_croak_nocontext("" a ""),0))
+ ( (void) (UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t)) \
+ && (Perl_croak_nocontext(ASSERT_IS_LITERAL(a)), 0)))
-#define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
+# 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), _PERL_STRLEN_ROUNDUP_UNCHECKED(n))
+# define PERL_STRLEN_ROUNDUP(n) ((void)(((n) > MEM_SIZE_MAX - 2 * PERL_STRLEN_ROUNDUP_QUANTUM) ? (croak_memory_wrap(),0) : 0), _PERL_STRLEN_ROUNDUP_UNCHECKED(n))
#else
-#define MEM_WRAP_CHECK(n,t)
-#define MEM_WRAP_CHECK_1(n,t,a)
-#define MEM_WRAP_CHECK_s(n,t,a)
-#define MEM_WRAP_CHECK_(n,t)
+# define MEM_WRAP_CHECK(n,t)
+# define MEM_WRAP_CHECK_1(n,t,a)
+# define MEM_WRAP_CHECK_s(n,t,a)
+# define MEM_WRAP_CHECK_(n,t)
-#define PERL_STRLEN_ROUNDUP(n) _PERL_STRLEN_ROUNDUP_UNCHECKED(n)
+# define PERL_STRLEN_ROUNDUP(n) _PERL_STRLEN_ROUNDUP_UNCHECKED(n)
#endif
@@ -2708,10 +2826,6 @@ enum mem_log_type {
MLT_DEL_SV
};
# endif
-# if defined(PERL_IN_SV_C) /* those are only used in sv.c */
-void Perl_mem_log_new_sv(const SV *sv, const char *filename, const int linenumber, const char *funcname);
-void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumber, const char *funcname);
-# endif
# endif
#endif
@@ -2770,6 +2884,11 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
#define CopyD(s,d,n,t) (MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
#define ZeroD(d,n,t) (MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), memzero((char*)(d), (n) * sizeof(t)))
+#define NewCopy(s,d,n,t) STMT_START { \
+ Newx(d,n,t); \
+ Copy(s,d,n,t); \
+} STMT_END
+
#define PoisonWith(d,n,t,b) (MEM_WRAP_CHECK_(n,t) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)))
#define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB)
#define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF)
@@ -2804,6 +2923,12 @@ last-inclusive range.
#define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0]))
#define C_ARRAY_END(a) ((a) + C_ARRAY_LENGTH(a))
+#if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD)
+/* strlen() of a literal string constant. Restricting this to core, in part
+ * because it can generate compiler warnings about comparing unlike signs */
+# define STRLENs(s) (sizeof("" s "") - 1)
+#endif
+
#ifdef NEED_VA_COPY
# ifdef va_copy
# define Perl_va_copy(s, d) va_copy(d, s)
@@ -2831,18 +2956,53 @@ last-inclusive range.
#define pTHX__VALUE
#endif /* USE_ITHREADS */
-/* Perl_deprecate was not part of the public API, and did not have a deprecate()
- shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
- CPAN::Unpack show any users outside the core. */
+/*
+ Perl_deprecate was not part of the public API, and did not have a deprecate()
+ shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
+ CPAN::Unpack show any users outside the core.
+
+=for apidoc_section $warning
+=for apidoc Cdm||deprecate|U32 category|"message"
+Wrapper around Perl_ck_warner_d() to produce a deprecated warning in the
+given category with an appropriate message. The C<message> argument must
+be a C string. The string " is deprecated" will automatically be added
+to the end of the C<message>.
+
+=for apidoc Cdm||deprecate_disappears_in|U32 category|"when"|"message"
+Wrapper around Perl_ck_warner_d() to produce a deprecated warning in the
+given category with an appropriate message that the construct referred
+to by the message will disappear in a specific release. The C<when> and
+C<message> arguments must be a C string. The C<when> string is expected
+to be of the form "5.40", with no minor element in the version. The actual
+message output will be the result of the following expression C<message
+" is deprecated, and will disappear in Perl " when> which is why C<message>
+and C<when> must be literal C strings.
+
+=for apidoc Cdm||deprecate_fatal_in|U32 category|"when"|"message"
+Wrapper around Perl_ck_warner_d() to produce a deprecated warning in the
+given category with an appropriate message that the construct referred
+to by the message will become fatal in a specific release. The C<when>
+and C<message> arguments must be a C string. The C<when> string is expected
+to be of the form "5.40", with no minor element in the version. The actual
+message output will be the result of the following expression C<message " is
+deprecated, and will become fatal in Perl " when> which is why C<message>
+and C<when> must be literal C strings.
+
+=cut
+*/
+
#ifdef PERL_CORE
-# define deprecate(s) Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
- "Use of " s " is deprecated")
-# define deprecate_disappears_in(when,message) \
- Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
- message ", and will disappear in Perl " when)
-# define deprecate_fatal_in(when,message) \
- Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
- message ". Its use will be fatal in Perl " when)
+# define deprecate(category,message) \
+ Perl_ck_warner_d(aTHX_ packWARN(category), \
+ message " is deprecated")
+
+# define deprecate_disappears_in(category,when,message) \
+ Perl_ck_warner_d(aTHX_ packWARN(category), \
+ message " is deprecated, and will disappear in Perl " when)
+
+# define deprecate_fatal_in(category,when,message) \
+ Perl_ck_warner_d(aTHX_ packWARN(category), \
+ message " is deprecated, and will become fatal in Perl " when)
#endif
/* Internal macros to deal with gids and uids */
@@ -2872,6 +3032,85 @@ last-inclusive range.
#endif
+/* These are simple Marsaglia XOR-SHIFT RNG's for 64 and 32 bits. These
+ * RNG's are of reasonable quality, very fast, and have the interesting
+ * property that provided 'x' is non-zero they create a cycle of 2^32-1
+ * or 2^64-1 "random" like numbers, with the exception of 0. Thus they
+ * are very useful when you want an integer to "dance" in a random way,
+ * but you also never want it to become 0 and thus false.
+ *
+ * Obviously they leave x unchanged if it starts out as 0.
+ *
+ * We have two variants just because that can be helpful in certain
+ * places. There is no advantage to either, they are equally bad as each
+ * other as far RNG's go. Sufficiently random for many purposes, but
+ * insufficiently random for serious use as they fail important tests in
+ * the Test01 BigCrush RNG test suite by L’Ecuyer and Simard. (Note
+ * that Drand48 also fails BigCrush). The main point is they produce
+ * different sequences and in places where we want some randomlike
+ * behavior they are cheap and easy.
+ *
+ * Marsaglia was one of the early researchers into RNG testing and wrote
+ * the Diehard RNG test suite, which after his death become the
+ * Dieharder RNG suite, and was generally supplanted by the Test01 suite
+ * by L'Ecruyer and associates.
+ *
+ * There are dozens of shift parameters that create a pseudo random ring
+ * of integers 1..2^N-1, if you need a different sequence just read the
+ * paper and select a set of parameters. In fact, simply reversing the
+ * shift order from L/R/L to R/L/R should result in another valid
+ * example, but read the paper before you do that.
+ *
+ * PDF of the original paper:
+ * https://www.jstatsoft.org/article/download/v008i14/916
+ * Wikipedia:
+ * https://en.wikipedia.org/wiki/Xorshift
+ * Criticism:
+ * https://www.iro.umontreal.ca/~lecuyer/myftp/papers/xorshift.pdf
+ * Test01:
+ * http://simul.iro.umontreal.ca/testu01/tu01.html
+ * Diehard:
+ * https://en.wikipedia.org/wiki/Diehard_tests
+ * Dieharder:
+ * https://webhome.phy.duke.edu/~rgb/General/rand_rate/rand_rate.abs
+ *
+ */
+
+/* 32 bit version */
+#define PERL_XORSHIFT32_A(x) \
+STMT_START { \
+ (x) ^= ((x) << 13); \
+ (x) ^= ((x) >> 17); \
+ (x) ^= ((x) << 5); \
+} STMT_END
+
+/* 64 bit version */
+#define PERL_XORSHIFT64_A(x) \
+STMT_START { \
+ (x) ^= ((x) << 13); \
+ (x) ^= ((x) >> 7); \
+ (x) ^= ((x) << 17); \
+} STMT_END
+
+/* 32 bit version */
+#define PERL_XORSHIFT32_B(x) \
+STMT_START { \
+ (x) ^= ((x) << 5); \
+ (x) ^= ((x) >> 27); \
+ (x) ^= ((x) << 8); \
+} STMT_END
+
+/* 64 bit version - currently this is unused,
+ * it is provided here to complement the 32 bit _B
+ * variant which IS used. */
+#define PERL_XORSHIFT64_B(x) \
+STMT_START { \
+ (x) ^= ((x) << 15); \
+ (x) ^= ((x) >> 49); \
+ (x) ^= ((x) << 26); \
+} STMT_END
+
+
#endif /* PERL_HANDY_H_ */
/*
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h
index 119cf8c966..ba9f9e4dbc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h
@@ -28,6 +28,13 @@
# define PERL_HASH_ITER_BUCKET(iter) (((iter)->xhv_riter) ^ ((iter)->xhv_rand))
#endif
+#ifdef PERL_USE_UNSHARED_KEYS_IN_LARGE_HASHES
+#define LARGE_HASH_HEURISTIC(hv,new_max) S_large_hash_heuristic(aTHX_ (hv), (new_max))
+#else
+#define LARGE_HASH_HEURISTIC(hv,new_max) 0
+#endif
+
+
/* entry in hash value chain */
struct he {
/* Keep hent_next first in this structure, because sv_free_arenas take
@@ -105,6 +112,9 @@ union _xhvnameu {
HEK **xhvnameu_names; /* When xhv_name_count is non-0 */
};
+/* A struct defined by pad.h and used within class.c */
+struct suspended_compcv;
+
struct xpvhv_aux {
union _xhvnameu xhv_name_u; /* name, if a symbol table */
AV *xhv_backreferences; /* back references for weak references */
@@ -125,10 +135,25 @@ struct xpvhv_aux {
used to detect each() after insert for warnings */
#endif
U32 xhv_aux_flags; /* assorted extra flags */
+
+ /* The following fields are only valid if we have the flag HvAUXf_IS_CLASS */
+ HV *xhv_class_superclass; /* STASH of the :isa() base class */
+ CV *xhv_class_initfields_cv; /* CV for running initfields */
+ AV *xhv_class_adjust_blocks; /* CVs containing the ADJUST blocks */
+ PADNAMELIST *xhv_class_fields; /* PADNAMEs with PadnameIsFIELD() */
+ PADOFFSET xhv_class_next_fieldix;
+ HV *xhv_class_param_map; /* Maps param names to field index stored in UV */
+
+ struct suspended_compcv
+ *xhv_class_suspended_initfields_compcv;
};
#define HvAUXf_SCAN_STASH 0x1 /* stash is being scanned by gv_check */
#define HvAUXf_NO_DEREF 0x2 /* @{}, %{} etc (and nomethod) not present */
+#define HvAUXf_IS_CLASS 0x4 /* the package is a 'class' */
+
+#define HvSTASH_IS_CLASS(hv) \
+ (HvHasAUX(hv) && HvAUX(hv)->xhv_aux_flags & HvAUXf_IS_CLASS)
/* hash structure: */
/* This structure must match the beginning of struct xpvmg in sv.h. */
@@ -139,6 +164,14 @@ struct xpvhv {
STRLEN xhv_max; /* subscript of last element of xhv_array */
};
+struct xpvhv_with_aux {
+ HV *xmg_stash; /* class package */
+ union _xmgu xmg_u;
+ STRLEN xhv_keys; /* total keys, including placeholders */
+ STRLEN xhv_max; /* subscript of last element of xhv_array */
+ struct xpvhv_aux xhv_aux;
+};
+
/*
=for apidoc AmnU||HEf_SVKEY
This flag, used in the length slot of hash entries and magic structures,
@@ -242,18 +275,6 @@ C<SV*>.
#define PERL_HASH_DEFAULT_HvMAX 7
-/* During hsplit(), if HvMAX(hv)+1 (the new bucket count) is >= this value,
- * we preallocate the HvAUX() struct.
- * The assumption being that we are using so much space anyway we might
- * as well allocate the extra bytes and speed up later keys()
- * or each() operations. We don't do this to small hashes as we assume
- * that a) it will be easy/fast to resize them to add the iterator, and b) that
- * many of them will be objects which won't be traversed. Larger hashes however
- * will take longer to extend, and the size of the aux struct is swamped by the
- * overall length of the bucket array.
- * */
-#define PERL_HV_ALLOC_AUX_SIZE (1 << 9)
-
/* these hash entry flags ride on hent_klen (for use only in magic/tied HVs) */
#define HEf_SVKEY -2 /* hent_key is an SV* */
@@ -266,24 +287,44 @@ C<SV*>.
=for apidoc Am|STRLEN|HvFILL|HV *const hv
-See L</hv_fill>.
+Returns the number of hash buckets that happen to be in use.
+
+As of perl 5.25 this function is used only for debugging
+purposes, and the number of used hash buckets is not
+in any way cached, thus this function can be costly
+to execute as it must iterate over all the buckets in the
+hash.
=cut
*/
+
#define HvFILL(hv) Perl_hv_fill(aTHX_ MUTABLE_HV(hv))
#define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max
+
+/*
+
+=for apidoc Am|bool|HvHasAUX|HV *const hv
+
+Returns true if the HV has a C<struct xpvhv_aux> extension. Use this to check
+whether it is valid to call C<HvAUX()>.
+
+=cut
+
+*/
+#define HvHasAUX(hv) (SvFLAGS(hv) & SVphv_HasAUX)
+
/* This quite intentionally does no flag checking first. That's your
- responsibility. */
-#define HvAUX(hv) ((struct xpvhv_aux*)&(HvARRAY(hv)[HvMAX(hv)+1]))
+ responsibility. Use HvHasAUX() first */
+#define HvAUX(hv) (&(((struct xpvhv_with_aux*) SvANY(hv))->xhv_aux))
#define HvRITER(hv) (*Perl_hv_riter_p(aTHX_ MUTABLE_HV(hv)))
#define HvEITER(hv) (*Perl_hv_eiter_p(aTHX_ MUTABLE_HV(hv)))
#define HvRITER_set(hv,r) Perl_hv_riter_set(aTHX_ MUTABLE_HV(hv), r)
#define HvEITER_set(hv,e) Perl_hv_eiter_set(aTHX_ MUTABLE_HV(hv), e)
-#define HvRITER_get(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_riter : -1)
-#define HvEITER_get(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_eiter : NULL)
-#define HvRAND_get(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_rand : 0)
-#define HvLASTRAND_get(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_last_rand : 0)
+#define HvRITER_get(hv) (HvHasAUX(hv) ? HvAUX(hv)->xhv_riter : -1)
+#define HvEITER_get(hv) (HvHasAUX(hv) ? HvAUX(hv)->xhv_eiter : NULL)
+#define HvRAND_get(hv) (HvHasAUX(hv) ? HvAUX(hv)->xhv_rand : 0)
+#define HvLASTRAND_get(hv) (HvHasAUX(hv) ? HvAUX(hv)->xhv_last_rand : 0)
#define HvNAME(hv) HvNAME_get(hv)
#define HvNAMELEN(hv) HvNAMELEN_get(hv)
@@ -304,15 +345,16 @@ See L</hv_fill>.
)
/* This macro may go away without notice. */
#define HvNAME_HEK(hv) \
- (SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvNAME_HEK_NN(hv) : NULL)
+ (HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvNAME_HEK_NN(hv) : NULL)
+#define HvHasNAME(hv) \
+ (HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv))
#define HvNAME_get(hv) \
- ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
- ? HEK_KEY(HvNAME_HEK_NN(hv)) : NULL)
+ (HvHasNAME(hv) ? HEK_KEY(HvNAME_HEK_NN(hv)) : NULL)
#define HvNAMELEN_get(hv) \
- ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
+ ((HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
? HEK_LEN(HvNAME_HEK_NN(hv)) : 0)
#define HvNAMEUTF8(hv) \
- ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
+ ((HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
? HEK_UTF8(HvNAME_HEK_NN(hv)) : 0)
#define HvENAME_HEK_NN(hv) \
( \
@@ -321,20 +363,18 @@ See L</hv_fill>.
HvAUX(hv)->xhv_name_count == -1 ? NULL : \
HvAUX(hv)->xhv_name_u.xhvnameu_name \
)
+#define HvHasENAME_HEK(hv) \
+ (HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name)
#define HvENAME_HEK(hv) \
- (SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvENAME_HEK_NN(hv) : NULL)
+ (HvHasENAME_HEK(hv) ? HvENAME_HEK_NN(hv) : NULL)
+#define HvHasENAME(hv) \
+ (HvHasENAME_HEK(hv) && HvAUX(hv)->xhv_name_count != -1)
#define HvENAME_get(hv) \
- ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
- ? HEK_KEY(HvENAME_HEK_NN(hv)) : NULL)
+ (HvHasENAME(hv) ? HEK_KEY(HvENAME_HEK_NN(hv)) : NULL)
#define HvENAMELEN_get(hv) \
- ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
- ? HEK_LEN(HvENAME_HEK_NN(hv)) : 0)
+ (HvHasENAME(hv) ? HEK_LEN(HvENAME_HEK_NN(hv)) : 0)
#define HvENAMEUTF8(hv) \
- ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
- ? HEK_UTF8(HvENAME_HEK_NN(hv)) : 0)
-
-/* the number of keys (including any placeholders) - NOT PART OF THE API */
-#define XHvTOTALKEYS(xhv) ((xhv)->xhv_keys)
+ (HvHasENAME(hv) ? HEK_UTF8(HvENAME_HEK_NN(hv)) : 0)
/*
* HvKEYS gets the number of keys that actually exist(), and is provided
@@ -343,11 +383,18 @@ See L</hv_fill>.
*/
#define HvKEYS(hv) HvUSEDKEYS(hv)
#define HvUSEDKEYS(hv) (HvTOTALKEYS(hv) - HvPLACEHOLDERS_get(hv))
-#define HvTOTALKEYS(hv) XHvTOTALKEYS((XPVHV*) SvANY(hv))
+#define HvTOTALKEYS(hv) (((XPVHV*) SvANY(hv))->xhv_keys)
#define HvPLACEHOLDERS(hv) (*Perl_hv_placeholders_p(aTHX_ MUTABLE_HV(hv)))
#define HvPLACEHOLDERS_get(hv) (SvMAGIC(hv) ? Perl_hv_placeholders_get(aTHX_ (const HV *)hv) : 0)
#define HvPLACEHOLDERS_set(hv,p) Perl_hv_placeholders_set(aTHX_ MUTABLE_HV(hv), p)
+/* This (now) flags whether *new* keys in the hash will be allocated from the
+ * shared string table. We have a heuristic to call HvSHAREKEYS_off() if a hash
+ * is "getting large". After which, the first keys in that hash will be from
+ * the shared string table, but subsequent keys will not be.
+ *
+ * If we didn't do this, we'd have to reallocate all keys when we switched this
+ * flag, which would be work for no real gain. */
#define HvSHAREKEYS(hv) (SvFLAGS(hv) & SVphv_SHAREKEYS)
#define HvSHAREKEYS_on(hv) (SvFLAGS(hv) |= SVphv_SHAREKEYS)
#define HvSHAREKEYS_off(hv) (SvFLAGS(hv) &= ~SVphv_SHAREKEYS)
@@ -414,7 +461,7 @@ See L</hv_fill>.
#define HVhek_UTF8 0x01 /* Key is utf8 encoded. */
#define HVhek_WASUTF8 0x02 /* Key is bytes here, but was supplied as utf8. */
-#define HVhek_UNSHARED 0x08 /* This key isn't a shared hash key. */
+#define HVhek_NOTSHARED 0x04 /* This key isn't a shared hash key. */
/* the following flags are options for functions, they are not stored in heks */
#define HVhek_FREEKEY 0x100 /* Internal flag to say key is Newx()ed. */
#define HVhek_PLACEHOLD 0x200 /* Internal flag to create placeholder.
@@ -422,9 +469,7 @@ See L</hv_fill>.
#define HVhek_KEYCANONICAL 0x400 /* Internal flag - key is in canonical form.
If the string is UTF-8, it cannot be
converted to bytes. */
-#define HVhek_MASK 0xFF
-
-#define HVhek_ENABLEHVKFLAGS (HVhek_MASK & ~(HVhek_UNSHARED))
+#define HVhek_ENABLEHVKFLAGS (HVhek_UTF8|HVhek_WASUTF8)
#define HEK_UTF8(hek) (HEK_FLAGS(hek) & HVhek_UTF8)
#define HEK_UTF8_on(hek) (HEK_FLAGS(hek) |= HVhek_UTF8)
@@ -505,19 +550,19 @@ See L</hv_fill>.
* chars). See STR_WITH_LEN in handy.h - because these are macros we cant use
* STR_WITH_LEN to do the work, we have to unroll it. */
#define hv_existss(hv, key) \
- hv_exists((hv), ("" key ""), (sizeof(key)-1))
+ hv_exists((hv), ASSERT_IS_LITERAL(key), (sizeof(key)-1))
#define hv_fetchs(hv, key, lval) \
- hv_fetch((hv), ("" key ""), (sizeof(key)-1), (lval))
+ hv_fetch((hv), ASSERT_IS_LITERAL(key), (sizeof(key)-1), (lval))
#define hv_deletes(hv, key, flags) \
- hv_delete((hv), ("" key ""), (sizeof(key)-1), (flags))
+ hv_delete((hv), ASSERT_IS_LITERAL(key), (sizeof(key)-1), (flags))
#define hv_name_sets(hv, name, flags) \
- hv_name_set((hv),("" name ""),(sizeof(name)-1), flags)
+ hv_name_set((hv),ASSERT_IS_LITERAL(name),(sizeof(name)-1), flags)
#define hv_stores(hv, key, val) \
- hv_store((hv), ("" key ""), (sizeof(key)-1), (val), 0)
+ hv_store((hv), ASSERT_IS_LITERAL(key), (sizeof(key)-1), (val), 0)
#ifdef PERL_CORE
# define hv_storehek(hv, hek, val) \
@@ -533,6 +578,9 @@ See L</hv_fill>.
# define hv_deletehek(hv, hek, flags) \
hv_common((hv), NULL, HEK_KEY(hek), HEK_LEN(hek), HEK_UTF8(hek), \
(flags)|HV_DELETE, NULL, HEK_HASH(hek))
+#define hv_existshek(hv, hek) \
+ cBOOL(hv_common((hv), NULL, HEK_KEY(hek), HEK_LEN(hek), HEK_UTF8(hek), \
+ HV_FETCH_ISEXISTS, NULL, HEK_HASH(hek)))
#endif
/* This refcounted he structure is used for storing the hints used for lexical
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h
index 7d8b01b0d4..a4e70d52bc 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h
@@ -23,7 +23,19 @@
#endif
#ifndef PERL_HASH_USE_SBOX32_ALSO
-#define PERL_HASH_USE_SBOX32_ALSO 1
+# if defined(PERL_HASH_USE_SBOX32) || !defined(PERL_HASH_NO_SBOX32)
+# define PERL_HASH_USE_SBOX32_ALSO 1
+# else
+# define PERL_HASH_USE_SBOX32_ALSO 0
+# endif
+#endif
+
+#undef PERL_HASH_USE_SBOX32
+#undef PERL_HASH_NO_SBOX32
+#if PERL_HASH_USE_SBOX32_ALSO != 0
+# define PERL_HASH_USE_SBOX32
+#else
+# define PERL_HASH_NO_SBOX32
#endif
#ifndef SBOX32_MAX_LEN
@@ -34,40 +46,43 @@
#include "sbox32_hash.h"
#if defined(PERL_HASH_FUNC_SIPHASH)
-# define __PERL_HASH_FUNC "SIPHASH_2_4"
-# define __PERL_HASH_WORD_TYPE U64
-# define __PERL_HASH_WORD_SIZE sizeof(__PERL_HASH_WORD_TYPE)
-# define __PERL_HASH_SEED_BYTES (__PERL_HASH_WORD_SIZE * 2)
-# define __PERL_HASH_STATE_BYTES (__PERL_HASH_WORD_SIZE * 4)
-# define __PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
-# define __PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_2_4_with_state((state),(U8*)(str),(len))
+# define PERL_HASH_FUNC_DEFINE "PERL_HASH_FUNC_SIPHASH"
+# define PVT__PERL_HASH_FUNC "SIPHASH_2_4"
+# define PVT__PERL_HASH_WORD_TYPE U64
+# define PVT__PERL_HASH_WORD_SIZE sizeof(PVT__PERL_HASH_WORD_TYPE)
+# define PVT__PERL_HASH_SEED_BYTES (PVT__PERL_HASH_WORD_SIZE * 2)
+# define PVT__PERL_HASH_STATE_BYTES (PVT__PERL_HASH_WORD_SIZE * 4)
+# define PVT__PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
+# define PVT__PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_2_4_with_state((state),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_SIPHASH13)
-# define __PERL_HASH_FUNC "SIPHASH_1_3"
-# define __PERL_HASH_WORD_TYPE U64
-# define __PERL_HASH_WORD_SIZE sizeof(__PERL_HASH_WORD_TYPE)
-# define __PERL_HASH_SEED_BYTES (__PERL_HASH_WORD_SIZE * 2)
-# define __PERL_HASH_STATE_BYTES (__PERL_HASH_WORD_SIZE * 4)
-# define __PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
-# define __PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_1_3_with_state((state),(U8*)(str),(len))
+# define PERL_HASH_FUNC_DEFINE "PERL_HASH_FUNC_SIPHASH13"
+# define PVT__PERL_HASH_FUNC "SIPHASH_1_3"
+# define PVT__PERL_HASH_WORD_TYPE U64
+# define PVT__PERL_HASH_WORD_SIZE sizeof(PVT__PERL_HASH_WORD_TYPE)
+# define PVT__PERL_HASH_SEED_BYTES (PVT__PERL_HASH_WORD_SIZE * 2)
+# define PVT__PERL_HASH_STATE_BYTES (PVT__PERL_HASH_WORD_SIZE * 4)
+# define PVT__PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
+# define PVT__PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_1_3_with_state((state),(const U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_ZAPHOD32)
-# define __PERL_HASH_FUNC "ZAPHOD32"
-# define __PERL_HASH_WORD_TYPE U32
-# define __PERL_HASH_WORD_SIZE sizeof(__PERL_HASH_WORD_TYPE)
-# define __PERL_HASH_SEED_BYTES (__PERL_HASH_WORD_SIZE * 3)
-# define __PERL_HASH_STATE_BYTES (__PERL_HASH_WORD_SIZE * 3)
-# define __PERL_HASH_SEED_STATE(seed,state) zaphod32_seed_state(seed,state)
-# define __PERL_HASH_WITH_STATE(state,str,len) (U32)zaphod32_hash_with_state((state),(U8*)(str),(len))
+# define PERL_HASH_FUNC_DEFINE "PERL_HASH_FUNC_ZAPHOD32"
+# define PVT__PERL_HASH_FUNC "ZAPHOD32"
+# define PVT__PERL_HASH_WORD_TYPE U32
+# define PVT__PERL_HASH_WORD_SIZE sizeof(PVT__PERL_HASH_WORD_TYPE)
+# define PVT__PERL_HASH_SEED_BYTES (PVT__PERL_HASH_WORD_SIZE * 3)
+# define PVT__PERL_HASH_STATE_BYTES (PVT__PERL_HASH_WORD_SIZE * 3)
+# define PVT__PERL_HASH_SEED_STATE(seed,state) zaphod32_seed_state(seed,state)
+# define PVT__PERL_HASH_WITH_STATE(state,str,len) (U32)zaphod32_hash_with_state((state),(U8*)(str),(len))
# include "zaphod32_hash.h"
#endif
-#ifndef __PERL_HASH_WITH_STATE
+#ifndef PVT__PERL_HASH_WITH_STATE
#error "No hash function defined!"
#endif
-#ifndef __PERL_HASH_SEED_BYTES
-#error "__PERL_HASH_SEED_BYTES not defined"
+#ifndef PVT__PERL_HASH_SEED_BYTES
+#error "PVT__PERL_HASH_SEED_BYTES not defined"
#endif
-#ifndef __PERL_HASH_FUNC
-#error "__PERL_HASH_FUNC not defined"
+#ifndef PVT__PERL_HASH_FUNC
+#error "PVT__PERL_HASH_FUNC not defined"
#endif
/* Some siphash static functions are needed by XS::APItest even when
@@ -76,56 +91,56 @@
*/
#include "perl_siphash.h"
-#define __PERL_HASH_SEED_roundup(x, y) ( ( ( (x) + ( (y) - 1 ) ) / (y) ) * (y) )
-#define _PERL_HASH_SEED_roundup(x) __PERL_HASH_SEED_roundup(x,__PERL_HASH_WORD_SIZE)
+#define PVT__PERL_HASH_SEED_roundup(x, y) ( ( ( (x) + ( (y) - 1 ) ) / (y) ) * (y) )
+#define PVT_PERL_HASH_SEED_roundup(x) PVT__PERL_HASH_SEED_roundup(x,PVT__PERL_HASH_WORD_SIZE)
#define PL_hash_seed ((U8 *)PL_hash_seed_w)
#define PL_hash_state ((U8 *)PL_hash_state_w)
-#if PERL_HASH_USE_SBOX32_ALSO != 1
-# define _PERL_HASH_FUNC __PERL_HASH_FUNC
-# define _PERL_HASH_SEED_BYTES __PERL_HASH_SEED_BYTES
-# define _PERL_HASH_STATE_BYTES __PERL_HASH_STATE_BYTES
-# define _PERL_HASH_SEED_STATE(seed,state) __PERL_HASH_SEED_STATE(seed,state)
-# define _PERL_HASH_WITH_STATE(state,str,len) __PERL_HASH_WITH_STATE(state,str,len)
+#if PERL_HASH_USE_SBOX32_ALSO == 0
+# define PVT_PERL_HASH_FUNC PVT__PERL_HASH_FUNC
+# define PVT_PERL_HASH_SEED_BYTES PVT__PERL_HASH_SEED_BYTES
+# define PVT_PERL_HASH_STATE_BYTES PVT__PERL_HASH_STATE_BYTES
+# define PVT_PERL_HASH_SEED_STATE(seed,state) PVT__PERL_HASH_SEED_STATE(seed,state)
+# define PVT_PERL_HASH_WITH_STATE(state,str,len) PVT__PERL_HASH_WITH_STATE(state,str,len)
#else
-#define _PERL_HASH_FUNC "SBOX32_WITH_" __PERL_HASH_FUNC
-/* note the 3 in the below code comes from the fact the seed to initialize the SBOX is 96 bits */
-#define _PERL_HASH_SEED_BYTES ( __PERL_HASH_SEED_BYTES + (int)( 3 * sizeof(U32)) )
+#define PVT_PERL_HASH_FUNC "SBOX32_WITH_" PVT__PERL_HASH_FUNC
+/* note the 4 in the below code comes from the fact the seed to initialize the SBOX is 128 bits */
+#define PVT_PERL_HASH_SEED_BYTES ( PVT__PERL_HASH_SEED_BYTES + (int)( 4 * sizeof(U32)) )
-#define _PERL_HASH_STATE_BYTES \
- ( __PERL_HASH_STATE_BYTES + ( ( 1 + ( 256 * SBOX32_MAX_LEN ) ) * sizeof(U32) ) )
+#define PVT_PERL_HASH_STATE_BYTES \
+ ( PVT__PERL_HASH_STATE_BYTES + ( ( 1 + ( 256 * SBOX32_MAX_LEN ) ) * sizeof(U32) ) )
-#define _PERL_HASH_SEED_STATE(seed,state) STMT_START { \
- __PERL_HASH_SEED_STATE(seed,state); \
- sbox32_seed_state96(seed + __PERL_HASH_SEED_BYTES, state + __PERL_HASH_STATE_BYTES); \
+#define PVT_PERL_HASH_SEED_STATE(seed,state) STMT_START { \
+ PVT__PERL_HASH_SEED_STATE(seed,state); \
+ sbox32_seed_state128(seed + PVT__PERL_HASH_SEED_BYTES, state + PVT__PERL_HASH_STATE_BYTES); \
} STMT_END
-#define _PERL_HASH_WITH_STATE(state,str,len) \
+#define PVT_PERL_HASH_WITH_STATE(state,str,len) \
(LIKELY(len <= SBOX32_MAX_LEN) \
- ? sbox32_hash_with_state((state + __PERL_HASH_STATE_BYTES),(U8*)(str),(len)) \
- : __PERL_HASH_WITH_STATE((state),(str),(len)))
+ ? sbox32_hash_with_state((state + PVT__PERL_HASH_STATE_BYTES),(const U8*)(str),(len)) \
+ : PVT__PERL_HASH_WITH_STATE((state),(str),(len)))
#endif
#define PERL_HASH_WITH_SEED(seed,hash,str,len) \
(hash) = S_perl_hash_with_seed((const U8 *) seed, (const U8 *) str,len)
#define PERL_HASH_WITH_STATE(state,hash,str,len) \
- (hash) = _PERL_HASH_WITH_STATE((state),(U8*)(str),(len))
+ (hash) = PVT_PERL_HASH_WITH_STATE((state),(const U8*)(str),(len))
-#define PERL_HASH_SEED_STATE(seed,state) _PERL_HASH_SEED_STATE(seed,state)
-#define PERL_HASH_SEED_BYTES _PERL_HASH_SEED_roundup(_PERL_HASH_SEED_BYTES)
-#define PERL_HASH_STATE_BYTES _PERL_HASH_SEED_roundup(_PERL_HASH_STATE_BYTES)
-#define PERL_HASH_FUNC _PERL_HASH_FUNC
+#define PERL_HASH_SEED_STATE(seed,state) PVT_PERL_HASH_SEED_STATE(seed,state)
+#define PERL_HASH_SEED_BYTES PVT_PERL_HASH_SEED_roundup(PVT_PERL_HASH_SEED_BYTES)
+#define PERL_HASH_STATE_BYTES PVT_PERL_HASH_SEED_roundup(PVT_PERL_HASH_STATE_BYTES)
+#define PERL_HASH_FUNC PVT_PERL_HASH_FUNC
-#define PERL_HASH_SEED_WORDS (PERL_HASH_SEED_BYTES/__PERL_HASH_WORD_SIZE)
-#define PERL_HASH_STATE_WORDS (PERL_HASH_STATE_BYTES/__PERL_HASH_WORD_SIZE)
+#define PERL_HASH_SEED_WORDS (PERL_HASH_SEED_BYTES/PVT__PERL_HASH_WORD_SIZE)
+#define PERL_HASH_STATE_WORDS (PERL_HASH_STATE_BYTES/PVT__PERL_HASH_WORD_SIZE)
#ifdef PERL_USE_SINGLE_CHAR_HASH_CACHE
#define PERL_HASH(state,str,len) \
(hash) = ((len) < 2 ? ( (len) == 0 ? PL_hash_chars[256] : PL_hash_chars[(U8)(str)[0]] ) \
- : _PERL_HASH_WITH_STATE(PL_hash_state,(U8*)(str),(len)))
+ : PVT_PERL_HASH_WITH_STATE(PL_hash_state,(U8*)(str),(len)))
#else
#define PERL_HASH(hash,str,len) \
PERL_HASH_WITH_STATE(PL_hash_state,hash,(U8*)(str),(len))
@@ -162,9 +177,9 @@
PERL_STATIC_INLINE U32
S_perl_hash_with_seed(const U8 * seed, const U8 *str, STRLEN len) {
- __PERL_HASH_WORD_TYPE state[PERL_HASH_STATE_WORDS];
- _PERL_HASH_SEED_STATE(seed,(U8*)state);
- return _PERL_HASH_WITH_STATE((U8*)state,str,len);
+ PVT__PERL_HASH_WORD_TYPE state[PERL_HASH_STATE_WORDS];
+ PVT_PERL_HASH_SEED_STATE(seed,(U8*)state);
+ return PVT_PERL_HASH_WITH_STATE((U8*)state,str,len);
}
#endif /*compile once*/
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h
index a494ad1f55..5bf02a80ed 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h
@@ -20,9 +20,9 @@
* The following 3 macros are defined in this section. The other macros defined
* are only needed to help derive these 3.
*
- * U8TO16_LE(x) Read a little endian unsigned 32-bit int
+ * U8TO16_LE(x) Read a little endian unsigned 16-bit int
* U8TO32_LE(x) Read a little endian unsigned 32-bit int
- * U8TO28_LE(x) Read a little endian unsigned 32-bit int
+ * U8TO64_LE(x) Read a little endian unsigned 64-bit int
* ROTL32(x,r) Rotate x left by r bits
* ROTL64(x,r) Rotate x left by r bits
* ROTR32(x,r) Rotate x right by r bits
@@ -30,8 +30,8 @@
*/
#ifndef U8TO16_LE
- #define _shifted_octet(type,ptr,idx,shift) (((type)(((U8*)(ptr))[(idx)]))<<(shift))
- #ifdef USE_UNALIGNED_PTR_DEREF
+ #define _shifted_octet(type,ptr,idx,shift) (((type)(((const U8*)(ptr))[(idx)]))<<(shift))
+ #if defined(USE_UNALIGNED_PTR_DEREF) && (BYTEORDER == 0x1234 || BYTEORDER == 0x12345678)
#define U8TO16_LE(ptr) (*((const U16*)(ptr)))
#define U8TO32_LE(ptr) (*((const U32*)(ptr)))
#define U8TO64_LE(ptr) (*((const U64*)(ptr)))
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h
index bbf27da6f5..90930184da 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h
@@ -34,6 +34,10 @@ SOFTWARE.
* header files, because they depend on proto.h (included after most other
* headers) or struct definitions.
*
+ * Note also perlstatic.h for functions that can't or shouldn't be inlined, but
+ * whose details should be exposed to the compiler, for such things as tail
+ * call optimization.
+ *
* Each section names the header file that the functions "belong" to.
*/
@@ -57,6 +61,161 @@ Perl_av_count(pTHX_ AV *av)
return AvFILL(av) + 1;
}
+/* ------------------------------- av.c ------------------------------- */
+
+/*
+=for apidoc av_store_simple
+
+This is a cut-down version of av_store that assumes that the array is
+very straightforward - no magic, not readonly, and AvREAL - and that
+C<key> is not negative. This function MUST NOT be used in situations
+where any of those assumptions may not hold.
+
+Stores an SV in an array. The array index is specified as C<key>. It
+can be dereferenced to get the C<SV*> that was stored there (= C<val>)).
+
+Note that the caller is responsible for suitably incrementing the reference
+count of C<val> before the call.
+
+Approximate Perl equivalent: C<splice(@myarray, $key, 1, $val)>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE SV**
+Perl_av_store_simple(pTHX_ AV *av, SSize_t key, SV *val)
+{
+ SV** ary;
+
+ PERL_ARGS_ASSERT_AV_STORE_SIMPLE;
+ assert(SvTYPE(av) == SVt_PVAV);
+ assert(!SvMAGICAL(av));
+ assert(!SvREADONLY(av));
+ assert(AvREAL(av));
+ assert(key > -1);
+
+ ary = AvARRAY(av);
+
+ if (AvFILLp(av) < key) {
+ if (key > AvMAX(av)) {
+ av_extend(av,key);
+ ary = AvARRAY(av);
+ }
+ AvFILLp(av) = key;
+ } else
+ SvREFCNT_dec(ary[key]);
+
+ ary[key] = val;
+ return &ary[key];
+}
+
+/*
+=for apidoc av_fetch_simple
+
+This is a cut-down version of av_fetch that assumes that the array is
+very straightforward - no magic, not readonly, and AvREAL - and that
+C<key> is not negative. This function MUST NOT be used in situations
+where any of those assumptions may not hold.
+
+Returns the SV at the specified index in the array. The C<key> is the
+index. If lval is true, you are guaranteed to get a real SV back (in case
+it wasn't real before), which you can then modify. Check that the return
+value is non-null before dereferencing it to a C<SV*>.
+
+The rough perl equivalent is C<$myarray[$key]>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE SV**
+Perl_av_fetch_simple(pTHX_ AV *av, SSize_t key, I32 lval)
+{
+ PERL_ARGS_ASSERT_AV_FETCH_SIMPLE;
+ assert(SvTYPE(av) == SVt_PVAV);
+ assert(!SvMAGICAL(av));
+ assert(!SvREADONLY(av));
+ assert(AvREAL(av));
+ assert(key > -1);
+
+ if ( (key > AvFILLp(av)) || !AvARRAY(av)[key]) {
+ return lval ? av_store_simple(av,key,newSV_type(SVt_NULL)) : NULL;
+ } else {
+ return &AvARRAY(av)[key];
+ }
+}
+
+/*
+=for apidoc av_push_simple
+
+This is a cut-down version of av_push that assumes that the array is very
+straightforward - no magic, not readonly, and AvREAL - and that C<key> is
+not less than -1. This function MUST NOT be used in situations where any
+of those assumptions may not hold.
+
+Pushes an SV (transferring control of one reference count) onto the end of the
+array. The array will grow automatically to accommodate the addition.
+
+Perl equivalent: C<push @myarray, $val;>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_av_push_simple(pTHX_ AV *av, SV *val)
+{
+ PERL_ARGS_ASSERT_AV_PUSH_SIMPLE;
+ assert(SvTYPE(av) == SVt_PVAV);
+ assert(!SvMAGICAL(av));
+ assert(!SvREADONLY(av));
+ assert(AvREAL(av));
+ assert(AvFILLp(av) > -2);
+
+ (void)av_store_simple(av,AvFILLp(av)+1,val);
+}
+
+/*
+=for apidoc av_new_alloc
+
+This implements L<perlapi/C<newAV_alloc_x>>
+and L<perlapi/C<newAV_alloc_xz>>, which are the public API for this
+functionality.
+
+Creates a new AV and allocates its SV* array.
+
+This is similar to, but more efficient than doing:
+
+ AV *av = newAV();
+ av_extend(av, key);
+
+The size parameter is used to pre-allocate a SV* array large enough to
+hold at least elements C<0..(size-1)>. C<size> must be at least 1.
+
+The C<zeroflag> parameter controls whether or not the array is NULL
+initialized.
+
+=cut
+*/
+
+PERL_STATIC_INLINE AV *
+Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag)
+{
+ AV * const av = newAV();
+ SV** ary;
+ PERL_ARGS_ASSERT_AV_NEW_ALLOC;
+ assert(size > 0);
+
+ Newx(ary, size, SV*); /* Newx performs the memwrap check */
+ AvALLOC(av) = ary;
+ AvARRAY(av) = ary;
+ AvMAX(av) = size - 1;
+
+ if (zeroflag)
+ Zero(ary, size, SV*);
+
+ return av;
+}
+
+
/* ------------------------------- cv.h ------------------------------- */
/*
@@ -76,6 +235,13 @@ Perl_CvGV(pTHX_ CV *sv)
: ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv_u.xcv_gv;
}
+/*
+=for apidoc CvDEPTH
+Returns the recursion level of the CV C<sv>. Hence >= 2 indicates we are in a
+recursive call.
+
+=cut
+*/
PERL_STATIC_INLINE I32 *
Perl_CvDEPTH(const CV * const sv)
{
@@ -115,6 +281,25 @@ S_strip_spaces(pTHX_ const char * orig, STRLEN * const len)
}
#endif
+/* ------------------------------- iperlsys.h ------------------------------- */
+#if ! defined(PERL_IMPLICIT_SYS) && defined(USE_ITHREADS)
+
+/* Otherwise this function is implemented as macros in iperlsys.h */
+
+PERL_STATIC_INLINE bool
+S_PerlEnv_putenv(pTHX_ char * str)
+{
+ PERL_ARGS_ASSERT_PERLENV_PUTENV;
+
+ ENV_LOCK;
+ bool retval = putenv(str);
+ ENV_UNLOCK;
+
+ return retval;
+}
+
+#endif
+
/* ------------------------------- mg.h ------------------------------- */
#if defined(PERL_CORE) || defined(PERL_EXT)
@@ -197,6 +382,21 @@ Perl_POPMARK(pTHX)
/* ----------------------------- regexp.h ----------------------------- */
+/* PVLVs need to act as a superset of all scalar types - they are basically
+ * PVMGs with a few extra fields.
+ * REGEXPs are first class scalars, but have many fields that can't be copied
+ * into a PVLV body.
+ *
+ * Hence we take a different approach - instead of a copy, PVLVs store a pointer
+ * back to the original body. To avoid increasing the size of PVLVs just for the
+ * rare case of REGEXP assignment, this pointer is stored in the memory usually
+ * used for SvLEN(). Hence the check for SVt_PVLV below, and the ? : ternary to
+ * read the pointer from the two possible locations. The macro SvLEN() wraps the
+ * access to the union's member xpvlenu_len, but there is no equivalent macro
+ * for wrapping the union's member xpvlenu_rx, hence the direct reference here.
+ *
+ * See commit df6b4bd56551f2d3 for more details. */
+
PERL_STATIC_INLINE struct regexp *
Perl_ReANY(const REGEXP * const re)
{
@@ -209,154 +409,6 @@ Perl_ReANY(const REGEXP * const re)
: (struct regexp *)p;
}
-/* ------------------------------- sv.h ------------------------------- */
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE(pTHX_ SV *sv)
-{
- PERL_ARGS_ASSERT_SVTRUE;
-
- if (UNLIKELY(sv == NULL))
- return FALSE;
- SvGETMAGIC(sv);
- return SvTRUE_nomg_NN(sv);
-}
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE_nomg(pTHX_ SV *sv)
-{
- PERL_ARGS_ASSERT_SVTRUE_NOMG;
-
- if (UNLIKELY(sv == NULL))
- return FALSE;
- return SvTRUE_nomg_NN(sv);
-}
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE_NN(pTHX_ SV *sv)
-{
- PERL_ARGS_ASSERT_SVTRUE_NN;
-
- SvGETMAGIC(sv);
- return SvTRUE_nomg_NN(sv);
-}
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
-{
- PERL_ARGS_ASSERT_SVTRUE_COMMON;
-
- if (UNLIKELY(SvIMMORTAL_INTERP(sv)))
- return SvIMMORTAL_TRUE(sv);
-
- if (! SvOK(sv))
- return FALSE;
-
- if (SvPOK(sv))
- return SvPVXtrue(sv);
-
- if (SvIOK(sv))
- return SvIVX(sv) != 0; /* casts to bool */
-
- if (SvROK(sv) && !(SvOBJECT(SvRV(sv)) && HvAMAGIC(SvSTASH(SvRV(sv)))))
- return TRUE;
-
- if (sv_2bool_is_fallback)
- return sv_2bool_nomg(sv);
-
- return isGV_with_GP(sv);
-}
-
-
-PERL_STATIC_INLINE SV *
-Perl_SvREFCNT_inc(SV *sv)
-{
- if (LIKELY(sv != NULL))
- SvREFCNT(sv)++;
- return sv;
-}
-PERL_STATIC_INLINE SV *
-Perl_SvREFCNT_inc_NN(SV *sv)
-{
- PERL_ARGS_ASSERT_SVREFCNT_INC_NN;
-
- SvREFCNT(sv)++;
- return sv;
-}
-PERL_STATIC_INLINE void
-Perl_SvREFCNT_inc_void(SV *sv)
-{
- if (LIKELY(sv != NULL))
- SvREFCNT(sv)++;
-}
-PERL_STATIC_INLINE void
-Perl_SvREFCNT_dec(pTHX_ SV *sv)
-{
- if (LIKELY(sv != NULL)) {
- U32 rc = SvREFCNT(sv);
- if (LIKELY(rc > 1))
- SvREFCNT(sv) = rc - 1;
- else
- Perl_sv_free2(aTHX_ sv, rc);
- }
-}
-
-PERL_STATIC_INLINE void
-Perl_SvREFCNT_dec_NN(pTHX_ SV *sv)
-{
- U32 rc = SvREFCNT(sv);
-
- PERL_ARGS_ASSERT_SVREFCNT_DEC_NN;
-
- if (LIKELY(rc > 1))
- SvREFCNT(sv) = rc - 1;
- else
- Perl_sv_free2(aTHX_ sv, rc);
-}
-
-PERL_STATIC_INLINE void
-Perl_SvAMAGIC_on(SV *sv)
-{
- PERL_ARGS_ASSERT_SVAMAGIC_ON;
- assert(SvROK(sv));
-
- if (SvOBJECT(SvRV(sv))) HvAMAGIC_on(SvSTASH(SvRV(sv)));
-}
-PERL_STATIC_INLINE void
-Perl_SvAMAGIC_off(SV *sv)
-{
- PERL_ARGS_ASSERT_SVAMAGIC_OFF;
-
- if (SvROK(sv) && SvOBJECT(SvRV(sv)))
- HvAMAGIC_off(SvSTASH(SvRV(sv)));
-}
-
-PERL_STATIC_INLINE U32
-Perl_SvPADSTALE_on(SV *sv)
-{
- assert(!(SvFLAGS(sv) & SVs_PADTMP));
- return SvFLAGS(sv) |= SVs_PADSTALE;
-}
-PERL_STATIC_INLINE U32
-Perl_SvPADSTALE_off(SV *sv)
-{
- assert(!(SvFLAGS(sv) & SVs_PADTMP));
- return SvFLAGS(sv) &= ~SVs_PADSTALE;
-}
-#if defined(PERL_CORE) || defined (PERL_EXT)
-PERL_STATIC_INLINE STRLEN
-S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp)
-{
- PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B;
- if (SvGAMAGIC(sv)) {
- U8 *hopped = utf8_hop((U8 *)pv, pos);
- if (lenp) *lenp = (STRLEN)(utf8_hop(hopped, *lenp) - hopped);
- return (STRLEN)(hopped - (U8 *)pv);
- }
- return sv_pos_u2b_flags(sv,pos,lenp,SV_CONST_RETURN);
-}
-#endif
-
/* ------------------------------- utf8.h ------------------------------- */
/*
@@ -535,7 +587,7 @@ Perl_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
/* Here, we know we have at least one full word to process. Process
* per-word as long as we have at least a full word left */
do {
- if ((* (PERL_UINTMAX_T *) x) & PERL_VARIANTS_WORD_MASK) {
+ if ((* (const PERL_UINTMAX_T *) x) & PERL_VARIANTS_WORD_MASK) {
/* Found a variant. Just return if caller doesn't want its
* exact position */
@@ -546,7 +598,7 @@ Perl_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
# if BYTEORDER == 0x1234 || BYTEORDER == 0x12345678 \
|| BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
- *ep = x + variant_byte_number(* (PERL_UINTMAX_T *) x);
+ *ep = x + variant_byte_number(* (const PERL_UINTMAX_T *) x);
assert(*ep >= s && *ep < send);
return FALSE;
@@ -581,96 +633,420 @@ Perl_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
return TRUE;
}
-#ifndef EBCDIC
+/* See if the platform has builtins for finding the most/least significant bit,
+ * and which one is right for using on 32 and 64 bit operands */
+#if (__has_builtin(__builtin_clz) || PERL_GCC_VERSION_GE(3,4,0))
+# if U32SIZE == INTSIZE
+# define PERL_CLZ_32 __builtin_clz
+# endif
+# if defined(U64TYPE) && U64SIZE == INTSIZE
+# define PERL_CLZ_64 __builtin_clz
+# endif
+#endif
+#if (__has_builtin(__builtin_ctz) || PERL_GCC_VERSION_GE(3,4,0))
+# if U32SIZE == INTSIZE
+# define PERL_CTZ_32 __builtin_ctz
+# endif
+# if defined(U64TYPE) && U64SIZE == INTSIZE
+# define PERL_CTZ_64 __builtin_ctz
+# endif
+#endif
-PERL_STATIC_INLINE unsigned int
-Perl_variant_byte_number(PERL_UINTMAX_T word)
+#if (__has_builtin(__builtin_clzl) || PERL_GCC_VERSION_GE(3,4,0))
+# if U32SIZE == LONGSIZE && ! defined(PERL_CLZ_32)
+# define PERL_CLZ_32 __builtin_clzl
+# endif
+# if defined(U64TYPE) && U64SIZE == LONGSIZE && ! defined(PERL_CLZ_64)
+# define PERL_CLZ_64 __builtin_clzl
+# endif
+#endif
+#if (__has_builtin(__builtin_ctzl) || PERL_GCC_VERSION_GE(3,4,0))
+# if U32SIZE == LONGSIZE && ! defined(PERL_CTZ_32)
+# define PERL_CTZ_32 __builtin_ctzl
+# endif
+# if defined(U64TYPE) && U64SIZE == LONGSIZE && ! defined(PERL_CTZ_64)
+# define PERL_CTZ_64 __builtin_ctzl
+# endif
+#endif
+
+#if (__has_builtin(__builtin_clzll) || PERL_GCC_VERSION_GE(3,4,0))
+# if U32SIZE == LONGLONGSIZE && ! defined(PERL_CLZ_32)
+# define PERL_CLZ_32 __builtin_clzll
+# endif
+# if defined(U64TYPE) && U64SIZE == LONGLONGSIZE && ! defined(PERL_CLZ_64)
+# define PERL_CLZ_64 __builtin_clzll
+# endif
+#endif
+#if (__has_builtin(__builtin_ctzll) || PERL_GCC_VERSION_GE(3,4,0))
+# if U32SIZE == LONGLONGSIZE && ! defined(PERL_CTZ_32)
+# define PERL_CTZ_32 __builtin_ctzll
+# endif
+# if defined(U64TYPE) && U64SIZE == LONGLONGSIZE && ! defined(PERL_CTZ_64)
+# define PERL_CTZ_64 __builtin_ctzll
+# endif
+#endif
+
+#if defined(_MSC_VER)
+# include <intrin.h>
+# pragma intrinsic(_BitScanForward)
+# pragma intrinsic(_BitScanReverse)
+# ifdef _WIN64
+# pragma intrinsic(_BitScanForward64)
+# pragma intrinsic(_BitScanReverse64)
+# endif
+#endif
+
+/* The reason there are not checks to see if ffs() and ffsl() are available for
+ * determining the lsb, is because these don't improve on the deBruijn method
+ * fallback, which is just a branchless integer multiply, array element
+ * retrieval, and shift. The others, even if the function call overhead is
+ * optimized out, have to cope with the possibility of the input being all
+ * zeroes, and almost certainly will have conditionals for this eventuality.
+ * khw, at the time of this commit, looked at the source for both gcc and clang
+ * to verify this. (gcc used a method inferior to deBruijn.) */
+
+/* Below are functions to find the first, last, or only set bit in a word. On
+ * platforms with 64-bit capability, there is a pair for each operation; the
+ * first taking a 64 bit operand, and the second a 32 bit one. The logic is
+ * the same in each pair, so the second is stripped of most comments. */
+
+#ifdef U64TYPE /* HAS_QUAD not usable outside the core */
+
+PERL_STATIC_INLINE unsigned
+Perl_lsbit_pos64(U64 word)
{
+ /* Find the position (0..63) of the least significant set bit in the input
+ * word */
- /* This returns the position in a word (0..7) of the first variant byte in
- * it. This is a helper function. Note that there are no branches */
+ ASSUME(word != 0);
- assert(word);
+ /* If we can determine that the platform has a usable fast method to get
+ * this info, use that */
- /* Get just the msb bits of each byte */
- word &= PERL_VARIANTS_WORD_MASK;
+# if defined(PERL_CTZ_64)
+# define PERL_HAS_FAST_GET_LSB_POS64
-# if BYTEORDER == 0x1234 || BYTEORDER == 0x12345678
+ return (unsigned) PERL_CTZ_64(word);
- /* Bytes are stored like
- * Byte8 ... Byte2 Byte1
- * 63..56...15...8 7...0
+# elif U64SIZE == 8 && defined(_WIN64) && defined(_MSC_VER)
+# define PERL_HAS_FAST_GET_LSB_POS64
+
+ {
+ unsigned long index;
+ _BitScanForward64(&index, word);
+ return (unsigned)index;
+ }
+
+# else
+
+ /* Here, we didn't find a fast method for finding the lsb. Fall back to
+ * making the lsb the only set bit in the word, and use our function that
+ * works on words with a single bit set.
*
- * Isolate the lsb;
+ * Isolate the lsb;
* https://stackoverflow.com/questions/757059/position-of-least-significant-bit-that-is-set
*
* The word will look like this, with a rightmost set bit in position 's':
- * ('x's are don't cares)
+ * ('x's are don't cares, and 'y's are their complements)
* s
- * x..x100..0
- * x..xx10..0 Right shift (rightmost 0 is shifted off)
- * x..xx01..1 Subtract 1, turns all the trailing zeros into 1's and
- * the 1 just to their left into a 0; the remainder is
- * untouched
- * 0..0011..1 The xor with the original, x..xx10..0, clears that
- * remainder, sets the bottom to all 1
- * 0..0100..0 Add 1 to clear the word except for the bit in 's'
+ * x..x100..00
+ * y..y011..11 Complement
+ * y..y100..00 Add 1
+ * 0..0100..00 And with the original
*
- * Another method is to do 'word &= -word'; but it generates a compiler
- * message on some platforms about taking the negative of an unsigned */
+ * (Yes, complementing and adding 1 is just taking the negative on 2's
+ * complement machines, but not on 1's complement ones, and some compilers
+ * complain about negating an unsigned.)
+ */
+ return single_1bit_pos64(word & (~word + 1));
- word >>= 1;
- word = 1 + (word ^ (word - 1));
+# endif
-# elif BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
+}
- /* Bytes are stored like
- * Byte1 Byte2 ... Byte8
- * 63..56 55..47 ... 7...0
+# define lsbit_pos_uintmax_(word) lsbit_pos64(word)
+#else /* ! QUAD */
+# define lsbit_pos_uintmax_(word) lsbit_pos32(word)
+#endif
+
+PERL_STATIC_INLINE unsigned /* Like above for 32 bit word */
+Perl_lsbit_pos32(U32 word)
+{
+ /* Find the position (0..31) of the least significant set bit in the input
+ * word */
+
+ ASSUME(word != 0);
+
+#if defined(PERL_CTZ_32)
+# define PERL_HAS_FAST_GET_LSB_POS32
+
+ return (unsigned) PERL_CTZ_32(word);
+
+#elif U32SIZE == 4 && defined(_MSC_VER)
+# define PERL_HAS_FAST_GET_LSB_POS32
+
+ {
+ unsigned long index;
+ _BitScanForward(&index, word);
+ return (unsigned)index;
+ }
+
+#else
+
+ return single_1bit_pos32(word & (~word + 1));
+
+#endif
+
+}
+
+
+/* Convert the leading zeros count to the bit position of the first set bit.
+ * This just subtracts from the highest position, 31 or 63. But some compilers
+ * don't optimize this optimally, and so a bit of bit twiddling encourages them
+ * to do the right thing. It turns out that subtracting a smaller non-negative
+ * number 'x' from 2**n-1 for any n is the same as taking the exclusive-or of
+ * the two numbers. To see why, first note that the sum of any number, x, and
+ * its complement, x', is all ones. So all ones minus x is x'. Then note that
+ * the xor of x and all ones is x'. */
+#define LZC_TO_MSBIT_POS_(size, lzc) ((size##SIZE * CHARBITS - 1) ^ (lzc))
+
+#ifdef U64TYPE /* HAS_QUAD not usable outside the core */
+
+PERL_STATIC_INLINE unsigned
+Perl_msbit_pos64(U64 word)
+{
+ /* Find the position (0..63) of the most significant set bit in the input
+ * word */
+
+ ASSUME(word != 0);
+
+ /* If we can determine that the platform has a usable fast method to get
+ * this, use that */
+
+# if defined(PERL_CLZ_64)
+# define PERL_HAS_FAST_GET_MSB_POS64
+
+ return (unsigned) LZC_TO_MSBIT_POS_(U64, PERL_CLZ_64(word));
+
+# elif U64SIZE == 8 && defined(_WIN64) && defined(_MSC_VER)
+# define PERL_HAS_FAST_GET_MSB_POS64
+
+ {
+ unsigned long index;
+ _BitScanReverse64(&index, word);
+ return (unsigned)index;
+ }
+
+# else
+
+ /* Here, we didn't find a fast method for finding the msb. Fall back to
+ * making the msb the only set bit in the word, and use our function that
+ * works on words with a single bit set.
*
* Isolate the msb; http://codeforces.com/blog/entry/10330
*
* Only the most significant set bit matters. Or'ing word with its right
- * shift of 1 makes that bit and the next one to its right both 1. Then
- * right shifting by 2 makes for 4 1-bits in a row. ... We end with the
- * msb and all to the right being 1. */
- word |= word >> 1;
- word |= word >> 2;
- word |= word >> 4;
- word |= word >> 8;
- word |= word >> 16;
- word |= word >> 32; /* This should get optimized out on 32-bit systems. */
+ * shift of 1 makes that bit and the next one to its right both 1.
+ * Repeating that with the right shift of 2 makes for 4 1-bits in a row.
+ * ... We end with the msb and all to the right being 1. */
+ word |= (word >> 1);
+ word |= (word >> 2);
+ word |= (word >> 4);
+ word |= (word >> 8);
+ word |= (word >> 16);
+ word |= (word >> 32);
/* Then subtracting the right shift by 1 clears all but the left-most of
* the 1 bits, which is our desired result */
word -= (word >> 1);
+ /* Now we have a single bit set */
+ return single_1bit_pos64(word);
+
+# endif
+
+}
+
+# define msbit_pos_uintmax_(word) msbit_pos64(word)
+#else /* ! QUAD */
+# define msbit_pos_uintmax_(word) msbit_pos32(word)
+#endif
+
+PERL_STATIC_INLINE unsigned
+Perl_msbit_pos32(U32 word)
+{
+ /* Find the position (0..31) of the most significant set bit in the input
+ * word */
+
+ ASSUME(word != 0);
+
+#if defined(PERL_CLZ_32)
+# define PERL_HAS_FAST_GET_MSB_POS32
+
+ return (unsigned) LZC_TO_MSBIT_POS_(U32, PERL_CLZ_32(word));
+
+#elif U32SIZE == 4 && defined(_MSC_VER)
+# define PERL_HAS_FAST_GET_MSB_POS32
+
+ {
+ unsigned long index;
+ _BitScanReverse(&index, word);
+ return (unsigned)index;
+ }
+
+#else
+
+ word |= (word >> 1);
+ word |= (word >> 2);
+ word |= (word >> 4);
+ word |= (word >> 8);
+ word |= (word >> 16);
+ word -= (word >> 1);
+ return single_1bit_pos32(word);
+
+#endif
+
+}
+
+#if UVSIZE == U64SIZE
+# define msbit_pos(word) msbit_pos64(word)
+# define lsbit_pos(word) lsbit_pos64(word)
+#elif UVSIZE == U32SIZE
+# define msbit_pos(word) msbit_pos32(word)
+# define lsbit_pos(word) lsbit_pos32(word)
+#endif
+
+#ifdef U64TYPE /* HAS_QUAD not usable outside the core */
+
+PERL_STATIC_INLINE unsigned
+Perl_single_1bit_pos64(U64 word)
+{
+ /* Given a 64-bit word known to contain all zero bits except one 1 bit,
+ * find and return the 1's position: 0..63 */
+
+# ifdef PERL_CORE /* macro not exported */
+ ASSUME(isPOWER_OF_2(word));
# else
-# error Unexpected byte order
+ ASSUME(word && (word & (word-1)) == 0);
# endif
- /* Here 'word' has a single bit set: the msb of the first byte in which it
- * is set. Calculate that position in the word. We can use this
- * specialized solution: https://stackoverflow.com/a/32339674/1626653,
- * assumes an 8-bit byte. (On a 32-bit machine, the larger numbers should
- * just get shifted off at compile time) */
- word = (word >> 7) * ((UINTMAX_C( 7) << 56) | (UINTMAX_C(15) << 48)
- | (UINTMAX_C(23) << 40) | (UINTMAX_C(31) << 32)
- | (39 << 24) | (47 << 16)
- | (55 << 8) | (63 << 0));
- word >>= PERL_WORDSIZE * 7; /* >> by either 56 or 24 */
-
- /* Here, word contains the position 7..63 of that bit. Convert to 0..7 */
- word = ((word + 1) >> 3) - 1;
+ /* The only set bit is both the most and least significant bit. If we have
+ * a fast way of finding either one, use that.
+ *
+ * It may appear at first glance that those functions call this one, but
+ * they don't if the corresponding #define is set */
-# if BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
+# ifdef PERL_HAS_FAST_GET_MSB_POS64
- /* And invert the result */
- word = CHARBITS - word - 1;
+ return msbit_pos64(word);
+
+# elif defined(PERL_HAS_FAST_GET_LSB_POS64)
+
+ return lsbit_pos64(word);
+
+# else
+ /* The position of the only set bit in a word can be quickly calculated
+ * using deBruijn sequences. See for example
+ * https://en.wikipedia.org/wiki/De_Bruijn_sequence */
+ return PL_deBruijn_bitpos_tab64[(word * PERL_deBruijnMagic64_)
+ >> PERL_deBruijnShift64_];
# endif
+}
+
+#endif
+
+PERL_STATIC_INLINE unsigned
+Perl_single_1bit_pos32(U32 word)
+{
+ /* Given a 32-bit word known to contain all zero bits except one 1 bit,
+ * find and return the 1's position: 0..31 */
+
+#ifdef PERL_CORE /* macro not exported */
+ ASSUME(isPOWER_OF_2(word));
+#else
+ ASSUME(word && (word & (word-1)) == 0);
+#endif
+#ifdef PERL_HAS_FAST_GET_MSB_POS32
+
+ return msbit_pos32(word);
+
+#elif defined(PERL_HAS_FAST_GET_LSB_POS32)
+
+ return lsbit_pos32(word);
+
+/* Unlikely, but possible for the platform to have a wider fast operation but
+ * not a narrower one. But easy enough to handle the case by widening the
+ * parameter size. (Going the other way, emulating 64 bit by two 32 bit ops
+ * would be slower than the deBruijn method.) */
+#elif defined(PERL_HAS_FAST_GET_MSB_POS64)
+
+ return msbit_pos64(word);
+
+#elif defined(PERL_HAS_FAST_GET_LSB_POS64)
+
+ return lsbit_pos64(word);
+
+#else
+
+ return PL_deBruijn_bitpos_tab32[(word * PERL_deBruijnMagic32_)
+ >> PERL_deBruijnShift32_];
+#endif
+
+}
+
+#ifndef EBCDIC
+
+PERL_STATIC_INLINE unsigned int
+Perl_variant_byte_number(PERL_UINTMAX_T word)
+{
+ /* This returns the position in a word (0..7) of the first variant byte in
+ * it. This is a helper function. Note that there are no branches */
+
+ /* Get just the msb bits of each byte */
+ word &= PERL_VARIANTS_WORD_MASK;
+
+ /* This should only be called if we know there is a variant byte in the
+ * word */
+ assert(word);
+
+# if BYTEORDER == 0x1234 || BYTEORDER == 0x12345678
+
+ /* Bytes are stored like
+ * Byte8 ... Byte2 Byte1
+ * 63..56...15...8 7...0
+ * so getting the lsb of the whole modified word is getting the msb of the
+ * first byte that has its msb set */
+ word = lsbit_pos_uintmax_(word);
+
+ /* Here, word contains the position 7,15,23,...55,63 of that bit. Convert
+ * to 0..7 */
+ return (unsigned int) ((word + 1) >> 3) - 1;
+
+# elif BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
+
+ /* Bytes are stored like
+ * Byte1 Byte2 ... Byte8
+ * 63..56 55..47 ... 7...0
+ * so getting the msb of the whole modified word is getting the msb of the
+ * first byte that has its msb set */
+ word = msbit_pos_uintmax_(word);
+
+ /* Here, word contains the position 63,55,...,23,15,7 of that bit. Convert
+ * to 0..7 */
+ word = ((word + 1) >> 3) - 1;
+
+ /* And invert the result because of the reversed byte order on this
+ * platform */
+ word = CHARBITS - word - 1;
+
return (unsigned int) word;
+
+# else
+# error Unexpected byte order
+# endif
+
}
#endif
@@ -754,7 +1130,8 @@ S_variant_under_utf8_count(const U8* const s, const U8* const e)
#endif
-#ifndef PERL_IN_REGEXEC_C /* Keep these around for that file */
+ /* Keep these around for these files */
+#if ! defined(PERL_IN_REGEXEC_C) && ! defined(PERL_IN_UTF8_C)
# undef PERL_WORDSIZE
# undef PERL_COUNT_MULTIPLIER
# undef PERL_WORD_BOUNDARY_MASK
@@ -1074,6 +1451,108 @@ Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el)
}
}
+/* The perl core arranges to never call the DFA below without there being at
+ * least one byte available to look at. This allows the DFA to use a do {}
+ * while loop which means that calling it with a UTF-8 invariant has a single
+ * conditional, same as the calling code checking for invariance ahead of time.
+ * And having the calling code remove that conditional speeds up by that
+ * conditional, the case where it wasn't invariant. So there's no reason to
+ * check before caling this.
+ *
+ * But we don't know this for non-core calls, so have to retain the check for
+ * them. */
+#ifdef PERL_CORE
+# define PERL_NON_CORE_CHECK_EMPTY(s,e) assert((e) > (s))
+#else
+# define PERL_NON_CORE_CHECK_EMPTY(s,e) if ((e) <= (s)) return FALSE
+#endif
+
+/*
+ * DFA for checking input is valid UTF-8 syntax.
+ *
+ * This uses adaptations of the table and algorithm given in
+ * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
+ * documentation of the original version. A copyright notice for the original
+ * version is given at the beginning of this file. The Perl adaptations are
+ * documented at the definition of PL_extended_utf8_dfa_tab[].
+ *
+ * This dfa is fast. There are three exit conditions:
+ * 1) a well-formed code point, acceptable to the table
+ * 2) the beginning bytes of an incomplete character, whose completion might
+ * or might not be acceptable
+ * 3) unacceptable to the table. Some of the adaptations have certain,
+ * hopefully less likely to occur, legal inputs be unacceptable to the
+ * table, so these must be sorted out afterwards.
+ *
+ * This macro is a complete implementation of the code executing the DFA. It
+ * is passed the input sequence bounds and the table to use, and what to do
+ * for each of the exit conditions. There are three canned actions, likely to
+ * be the ones you want:
+ * DFA_RETURN_SUCCESS_
+ * DFA_RETURN_FAILURE_
+ * DFA_GOTO_TEASE_APART_FF_
+ *
+ * You pass a parameter giving the action to take for each of the three
+ * possible exit conditions:
+ *
+ * 'accept_action' This is executed when the DFA accepts the input.
+ * DFA_RETURN_SUCCESS_ is the most likely candidate.
+ * 'reject_action' This is executed when the DFA rejects the input.
+ * DFA_RETURN_FAILURE_ is a candidate, or 'goto label' where
+ * you have written code to distinguish the rejecting state
+ * results. Because it happens in several places, and
+ * involves #ifdefs, the special action
+ * DFA_GOTO_TEASE_APART_FF_ is what you want with
+ * PL_extended_utf8_dfa_tab. On platforms without
+ * EXTRA_LONG_UTF8, there is no need to tease anything apart,
+ * so this evaluates to DFA_RETURN_FAILURE_; otherwise you
+ * need to have a label 'tease_apart_FF' that it will transfer
+ * to.
+ * 'incomplete_char_action' This is executed when the DFA ran off the end
+ * before accepting or rejecting the input.
+ * DFA_RETURN_FAILURE_ is the likely action, but you could
+ * have a 'goto', or NOOP. In the latter case the DFA drops
+ * off the end, and you place your code to handle this case
+ * immediately after it.
+ */
+
+#define DFA_RETURN_SUCCESS_ return s - s0
+#define DFA_RETURN_FAILURE_ return 0
+#ifdef HAS_EXTRA_LONG_UTF8
+# define DFA_TEASE_APART_FF_ goto tease_apart_FF
+#else
+# define DFA_TEASE_APART_FF_ DFA_RETURN_FAILURE_
+#endif
+
+#define PERL_IS_UTF8_CHAR_DFA(s0, e, dfa_tab, \
+ accept_action, \
+ reject_action, \
+ incomplete_char_action) \
+ STMT_START { \
+ const U8 * s = s0; \
+ const U8 * e_ = e; \
+ UV state = 0; \
+ \
+ PERL_NON_CORE_CHECK_EMPTY(s, e_); \
+ \
+ do { \
+ state = dfa_tab[256 + state + dfa_tab[*s]]; \
+ s++; \
+ \
+ if (state == 0) { /* Accepting state */ \
+ accept_action; \
+ } \
+ \
+ if (UNLIKELY(state == 1)) { /* Rejecting state */ \
+ reject_action; \
+ } \
+ } while (s < e_); \
+ \
+ /* Here, dropped out of loop before end-of-char */ \
+ incomplete_char_action; \
+ } STMT_END
+
+
/*
=for apidoc isUTF8_CHAR
@@ -1107,46 +1586,41 @@ machines) is a valid UTF-8 character.
This uses an adaptation of the table and algorithm given in
https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
documentation of the original version. A copyright notice for the original
-version is given at the beginning of this file. The Perl adapation is
+version is given at the beginning of this file. The Perl adaptation is
documented at the definition of PL_extended_utf8_dfa_tab[].
-
*/
PERL_STATIC_INLINE Size_t
Perl_isUTF8_CHAR(const U8 * const s0, const U8 * const e)
{
- const U8 * s = s0;
- UV state = 0;
-
PERL_ARGS_ASSERT_ISUTF8_CHAR;
- /* This dfa is fast. If it accepts the input, it was for a well-formed,
- * code point, which can be returned immediately. Otherwise, it is either
- * malformed, or for the start byte FF which the dfa doesn't handle (except
- * on 32-bit ASCII platforms where it trivially is an error). Call a
- * helper function for the other platforms. */
-
- while (s < e && LIKELY(state != 1)) {
- state = PL_extended_utf8_dfa_tab[256
- + state
- + PL_extended_utf8_dfa_tab[*s]];
- if (state != 0) {
- s++;
- continue;
- }
+ PERL_IS_UTF8_CHAR_DFA(s0, e, PL_extended_utf8_dfa_tab,
+ DFA_RETURN_SUCCESS_,
+ DFA_TEASE_APART_FF_,
+ DFA_RETURN_FAILURE_);
- return s - s0 + 1;
- }
+ /* Here, we didn't return success, but dropped out of the loop. In the
+ * case of PL_extended_utf8_dfa_tab, this means the input is either
+ * malformed, or the start byte was FF on a platform that the dfa doesn't
+ * handle FF's. Call a helper function. */
+
+#ifdef HAS_EXTRA_LONG_UTF8
-#if defined(UV_IS_QUAD) || defined(EBCDIC)
+ tease_apart_FF:
- if (NATIVE_UTF8_TO_I8(*s0) == 0xFF && e - s0 >= UTF8_MAXBYTES) {
- return is_utf8_char_helper(s0, e, 0);
+ /* In the case of PL_extended_utf8_dfa_tab, getting here means the input is
+ * either malformed, or was for the largest possible start byte, which we
+ * now check, not inline */
+ if (*s0 != I8_TO_NATIVE_UTF8(0xFF)) {
+ return 0;
}
+ return is_utf8_FF_helper_(s0, e,
+ FALSE /* require full, not partial char */
+ );
#endif
- return 0;
}
/*
@@ -1181,7 +1655,7 @@ C<L</is_strict_utf8_string_loclen>> to check entire strings.
This uses an adaptation of the tables and algorithm given in
https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
documentation of the original version. A copyright notice for the original
-version is given at the beginning of this file. The Perl adapation is
+version is given at the beginning of this file. The Perl adaptation is
documented at the definition of strict_extended_utf8_dfa_tab[].
*/
@@ -1189,32 +1663,21 @@ documented at the definition of strict_extended_utf8_dfa_tab[].
PERL_STATIC_INLINE Size_t
Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
{
- const U8 * s = s0;
- UV state = 0;
-
PERL_ARGS_ASSERT_ISSTRICT_UTF8_CHAR;
- while (s < e && LIKELY(state != 1)) {
- state = PL_strict_utf8_dfa_tab[256 + state + PL_strict_utf8_dfa_tab[*s]];
-
- if (state != 0) {
- s++;
- continue;
- }
-
- return s - s0 + 1;
- }
-
-#ifndef EBCDIC
-
- /* The dfa above drops out for certain Hanguls; handle them specially */
- if (is_HANGUL_ED_utf8_safe(s0, e)) {
- return 3;
- }
+ PERL_IS_UTF8_CHAR_DFA(s0, e, PL_strict_utf8_dfa_tab,
+ DFA_RETURN_SUCCESS_,
+ goto check_hanguls,
+ DFA_RETURN_FAILURE_);
+ check_hanguls:
-#endif
+ /* Here, we didn't return success, but dropped out of the loop. In the
+ * case of PL_strict_utf8_dfa_tab, this means the input is either
+ * malformed, or was for certain Hanguls; handle them specially */
- return 0;
+ /* The dfa above drops out for incomplete or illegal inputs, and certain
+ * legal Hanguls; check and return accordingly */
+ return is_HANGUL_ED_utf8_safe(s0, e);
}
/*
@@ -1247,7 +1710,7 @@ C<L</is_c9strict_utf8_string_loclen>> to check entire strings.
This uses an adaptation of the tables and algorithm given in
https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
documentation of the original version. A copyright notice for the original
-version is given at the beginning of this file. The Perl adapation is
+version is given at the beginning of this file. The Perl adaptation is
documented at the definition of PL_c9_utf8_dfa_tab[].
*/
@@ -1255,23 +1718,12 @@ documented at the definition of PL_c9_utf8_dfa_tab[].
PERL_STATIC_INLINE Size_t
Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
{
- const U8 * s = s0;
- UV state = 0;
-
PERL_ARGS_ASSERT_ISC9_STRICT_UTF8_CHAR;
- while (s < e && LIKELY(state != 1)) {
- state = PL_c9_utf8_dfa_tab[256 + state + PL_c9_utf8_dfa_tab[*s]];
-
- if (state != 0) {
- s++;
- continue;
- }
-
- return s - s0 + 1;
- }
-
- return 0;
+ PERL_IS_UTF8_CHAR_DFA(s0, e, PL_c9_utf8_dfa_tab,
+ DFA_RETURN_SUCCESS_,
+ DFA_RETURN_FAILURE_,
+ DFA_RETURN_FAILURE_);
}
/*
@@ -1552,11 +2004,16 @@ Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
=for apidoc utf8_hop
Return the UTF-8 pointer C<s> displaced by C<off> characters, either
-forward or backward.
+forward (if C<off> is positive) or backward (if negative). C<s> does not need
+to be pointing to the starting byte of a character. If it isn't, one count of
+C<off> will be used up to get to the start of the next character for forward
+hops, and to the start of the current character for negative ones.
-WARNING: do not use the following unless you *know* C<off> is within
-the UTF-8 data pointed to by C<s> *and* that on entry C<s> is aligned
-on the first byte of character or just after the last byte of a character.
+WARNING: Prefer L</utf8_hop_safe> to this one.
+
+Do NOT use this function unless you B<know> C<off> is within
+the UTF-8 data pointed to by C<s> B<and> that on entry C<s> is aligned
+on the first byte of a character or just after the last byte of a character.
=cut
*/
@@ -1567,10 +2024,20 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
PERL_ARGS_ASSERT_UTF8_HOP;
/* Note: cannot use UTF8_IS_...() too eagerly here since e.g
- * the bitops (especially ~) can create illegal UTF-8.
+ * the XXX bitops (especially ~) can create illegal UTF-8.
* In other words: in Perl UTF-8 is not just for Unicode. */
- if (off >= 0) {
+ if (off > 0) {
+
+ /* Get to next non-continuation byte */
+ if (UNLIKELY(UTF8_IS_CONTINUATION(*s))) {
+ do {
+ s++;
+ }
+ while (UTF8_IS_CONTINUATION(*s));
+ off--;
+ }
+
while (off--)
s += UTF8SKIP(s);
}
@@ -1581,6 +2048,7 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
s--;
}
}
+
GCC_DIAG_IGNORE(-Wcast-qual)
return (U8 *)s;
GCC_DIAG_RESTORE
@@ -1590,7 +2058,9 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
=for apidoc utf8_hop_forward
Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
-forward.
+forward. C<s> does not need to be pointing to the starting byte of a
+character. If it isn't, one count of C<off> will be used up to get to the
+start of the next character.
C<off> must be non-negative.
@@ -1615,6 +2085,15 @@ Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
assert(s <= end);
assert(off >= 0);
+ if (off && UNLIKELY(UTF8_IS_CONTINUATION(*s))) {
+ /* Get to next non-continuation byte */
+ do {
+ s++;
+ }
+ while (UTF8_IS_CONTINUATION(*s));
+ off--;
+ }
+
while (off--) {
STRLEN skip = UTF8SKIP(s);
if ((STRLEN)(end - s) <= skip) {
@@ -1634,7 +2113,9 @@ Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
=for apidoc utf8_hop_back
Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
-backward.
+backward. C<s> does not need to be pointing to the starting byte of a
+character. If it isn't, one count of C<off> will be used up to get to that
+start.
C<off> must be non-positive.
@@ -1659,6 +2140,13 @@ Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
assert(start <= s);
assert(off <= 0);
+ /* Note: if we know that the input is well-formed, we can do per-word
+ * hop-back. Commit d6ad3b72778369a84a215b498d8d60d5b03aa1af implemented
+ * that. But it was reverted because doing per-word has some
+ * start-up/tear-down overhead, so only makes sense if the distance to be
+ * moved is large, and core perl doesn't currently move more than a few
+ * characters at a time. You can reinstate it if it does become
+ * advantageous. */
while (off++ && s > start) {
do {
s--;
@@ -1674,7 +2162,10 @@ Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
=for apidoc utf8_hop_safe
Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
-either forward or backward.
+either forward or backward. C<s> does not need to be pointing to the starting
+byte of a character. If it isn't, one count of C<off> will be used up to get
+to the start of the next character for forward hops, and to the start of the
+current character for negative ones.
When moving backward it will not move before C<start>.
@@ -1706,6 +2197,73 @@ Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
/*
+=for apidoc isUTF8_CHAR_flags
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8, as extended by Perl,
+that represents some code point, subject to the restrictions given by C<flags>;
+otherwise it evaluates to 0. If non-zero, the value gives how many bytes
+starting at C<s> comprise the code point's representation. Any bytes remaining
+before C<e>, but beyond the ones needed to form the first code point in C<s>,
+are not examined.
+
+If C<flags> is 0, this gives the same results as C<L</isUTF8_CHAR>>;
+if C<flags> is C<UTF8_DISALLOW_ILLEGAL_INTERCHANGE>, this gives the same results
+as C<L</isSTRICT_UTF8_CHAR>>;
+and if C<flags> is C<UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE>, this gives
+the same results as C<L</isC9_STRICT_UTF8_CHAR>>.
+Otherwise C<flags> may be any combination of the C<UTF8_DISALLOW_I<foo>> flags
+understood by C<L</utf8n_to_uvchr>>, with the same meanings.
+
+The three alternative macros are for the most commonly needed validations; they
+are likely to run somewhat faster than this more general one, as they can be
+inlined into your code.
+
+Use L</is_utf8_string_flags>, L</is_utf8_string_loc_flags>, and
+L</is_utf8_string_loclen_flags> to check entire strings.
+
+=cut
+*/
+
+PERL_STATIC_INLINE STRLEN
+Perl_isUTF8_CHAR_flags(const U8 * const s0, const U8 * const e, const U32 flags)
+{
+ PERL_ARGS_ASSERT_ISUTF8_CHAR_FLAGS;
+ assert(0 == (flags & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+ |UTF8_DISALLOW_PERL_EXTENDED)));
+
+ PERL_IS_UTF8_CHAR_DFA(s0, e, PL_extended_utf8_dfa_tab,
+ goto check_success,
+ DFA_TEASE_APART_FF_,
+ DFA_RETURN_FAILURE_);
+
+ check_success:
+
+ return is_utf8_char_helper_(s0, e, flags);
+
+#ifdef HAS_EXTRA_LONG_UTF8
+
+ tease_apart_FF:
+
+ /* In the case of PL_extended_utf8_dfa_tab, getting here means the input is
+ * either malformed, or was for the largest possible start byte, which
+ * indicates perl extended UTF-8, well above the Unicode maximum */
+ if ( *s0 != I8_TO_NATIVE_UTF8(0xFF)
+ || (flags & (UTF8_DISALLOW_SUPER|UTF8_DISALLOW_PERL_EXTENDED)))
+ {
+ return 0;
+ }
+
+ /* Otherwise examine the sequence not inline */
+ return is_utf8_FF_helper_(s0, e,
+ FALSE /* require full, not partial char */
+ );
+#endif
+
+}
+
+/*
+
=for apidoc is_utf8_valid_partial_char
Returns 0 if the sequence of bytes starting at C<s> and looking no further than
@@ -1754,18 +2312,47 @@ determined from just the first one or two bytes.
*/
PERL_STATIC_INLINE bool
-Perl_is_utf8_valid_partial_char_flags(const U8 * const s, const U8 * const e, const U32 flags)
+Perl_is_utf8_valid_partial_char_flags(const U8 * const s0, const U8 * const e, const U32 flags)
{
PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS;
-
assert(0 == (flags & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE
|UTF8_DISALLOW_PERL_EXTENDED)));
- if (s >= e || s + UTF8SKIP(s) <= e) {
- return FALSE;
+ PERL_IS_UTF8_CHAR_DFA(s0, e, PL_extended_utf8_dfa_tab,
+ DFA_RETURN_FAILURE_,
+ DFA_TEASE_APART_FF_,
+ NOOP);
+
+ /* The NOOP above causes the DFA to drop down here iff the input was a
+ * partial character. flags=0 => can return TRUE immediately; otherwise we
+ * need to check (not inline) if the partial character is the beginning of
+ * a disallowed one */
+ if (flags == 0) {
+ return TRUE;
}
- return cBOOL(is_utf8_char_helper(s, e, flags));
+ return cBOOL(is_utf8_char_helper_(s0, e, flags));
+
+#ifdef HAS_EXTRA_LONG_UTF8
+
+ tease_apart_FF:
+
+ /* Getting here means the input is either malformed, or, in the case of
+ * PL_extended_utf8_dfa_tab, was for the largest possible start byte. The
+ * latter case has to be extended UTF-8, so can fail immediately if that is
+ * forbidden */
+
+ if ( *s0 != I8_TO_NATIVE_UTF8(0xFF)
+ || (flags & (UTF8_DISALLOW_SUPER|UTF8_DISALLOW_PERL_EXTENDED)))
+ {
+ return 0;
+ }
+
+ return is_utf8_FF_helper_(s0, e,
+ TRUE /* Require to be a partial character */
+ );
+#endif
+
}
/*
@@ -1844,11 +2431,11 @@ Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s,
PERL_STATIC_INLINE UV
Perl_utf8n_to_uvchr_msgs(const U8 *s,
- STRLEN curlen,
- STRLEN *retlen,
- const U32 flags,
- U32 * errors,
- AV ** msgs)
+ STRLEN curlen,
+ STRLEN *retlen,
+ const U32 flags,
+ U32 * errors,
+ AV ** msgs)
{
/* This is the inlined portion of utf8n_to_uvchr_msgs. It handles the
* simple cases, and, if necessary calls a helper function to deal with the
@@ -1860,13 +2447,13 @@ Perl_utf8n_to_uvchr_msgs(const U8 *s,
* https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides
* comprehensive documentation of the original version. A copyright notice
* for the original version is given at the beginning of this file. The
- * Perl adapation is documented at the definition of PL_strict_utf8_dfa_tab[].
+ * Perl adaptation is documented at the definition of PL_strict_utf8_dfa_tab[].
*/
const U8 * const s0 = s;
const U8 * send = s0 + curlen;
- UV uv = 0; /* The 0 silences some stupid compilers */
- UV state = 0;
+ UV type;
+ UV uv;
PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_MSGS;
@@ -1875,34 +2462,60 @@ Perl_utf8n_to_uvchr_msgs(const U8 *s,
* Otherwise we call a helper function to figure out the more complicated
* cases. */
- while (s < send && LIKELY(state != 1)) {
- UV type = PL_strict_utf8_dfa_tab[*s];
+ /* No calls from core pass in an empty string; non-core need a check */
+#ifdef PERL_CORE
+ assert(curlen > 0);
+#else
+ if (curlen == 0) return _utf8n_to_uvchr_msgs_helper(s0, 0, retlen,
+ flags, errors, msgs);
+#endif
- uv = (state == 0)
- ? ((0xff >> type) & NATIVE_UTF8_TO_I8(*s))
- : UTF8_ACCUMULATE(uv, *s);
- state = PL_strict_utf8_dfa_tab[256 + state + type];
+ type = PL_strict_utf8_dfa_tab[*s];
- if (state != 0) {
- s++;
- continue;
- }
+ /* The table is structured so that 'type' is 0 iff the input byte is
+ * represented identically regardless of the UTF-8ness of the string */
+ if (type == 0) { /* UTF-8 invariants are returned unchanged */
+ uv = *s;
+ }
+ else {
+ UV state = PL_strict_utf8_dfa_tab[256 + type];
+ uv = (0xff >> type) & NATIVE_UTF8_TO_I8(*s);
- if (retlen) {
- *retlen = s - s0 + 1;
- }
- if (errors) {
- *errors = 0;
- }
- if (msgs) {
- *msgs = NULL;
+ while (++s < send) {
+ type = PL_strict_utf8_dfa_tab[*s];
+ state = PL_strict_utf8_dfa_tab[256 + state + type];
+
+ uv = UTF8_ACCUMULATE(uv, *s);
+
+ if (state == 0) {
+#ifdef EBCDIC
+ uv = UNI_TO_NATIVE(uv);
+#endif
+ goto success;
+ }
+
+ if (UNLIKELY(state == 1)) {
+ break;
+ }
}
- return UNI_TO_NATIVE(uv);
+ /* Here is potentially problematic. Use the full mechanism */
+ return _utf8n_to_uvchr_msgs_helper(s0, curlen, retlen, flags,
+ errors, msgs);
+ }
+
+ success:
+ if (retlen) {
+ *retlen = s - s0 + 1;
+ }
+ if (errors) {
+ *errors = 0;
+ }
+ if (msgs) {
+ *msgs = NULL;
}
- /* Here is potentially problematic. Use the full mechanism */
- return _utf8n_to_uvchr_msgs_helper(s0, curlen, retlen, flags, errors, msgs);
+ return uv;
}
PERL_STATIC_INLINE UV
@@ -1922,7 +2535,7 @@ Perl_utf8_to_uvchr_buf_helper(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
}
else {
UV ret = utf8n_to_uvchr(s, send - s, retlen, 0);
- if (retlen && ret == 0 && *s != '\0') {
+ if (retlen && ret == 0 && (send <= s || *s != '\0')) {
*retlen = (STRLEN) -1;
}
@@ -2045,7 +2658,7 @@ S_lossless_NV_to_IV(const NV nv, IV *ivp)
/* ------------------ pp.c, regcomp.c, toke.c, universal.c ------------ */
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
#define MAX_CHARSET_NAME_LENGTH 2
@@ -2444,6 +3057,8 @@ Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx)
cx->blk_loop.itersave = NULL;
SvREFCNT_dec(cursv);
}
+ if (cx->cx_type & (CXp_FOR_GV|CXp_FOR_LVREF))
+ SvREFCNT_dec(cx->blk_loop.itervar_u.svp);
}
@@ -2492,6 +3107,36 @@ Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx)
SvREFCNT_dec(sv);
}
+/*
+=for apidoc newPADxVOP
+
+Constructs, checks and returns an op containing a pad offset. C<type> is
+the opcode, which should be one of C<OP_PADSV>, C<OP_PADAV>, C<OP_PADHV>
+or C<OP_PADCV>. The returned op will have the C<op_targ> field set by
+the C<padix> argument.
+
+This is convenient when constructing a large optree in nested function
+calls, as it avoids needing to store the pad op directly to set the
+C<op_targ> field as a side-effect. For example
+
+ o = op_append_elem(OP_LINESEQ, o,
+ newPADxVOP(OP_PADSV, 0, padix));
+
+=cut
+*/
+
+PERL_STATIC_INLINE OP *
+Perl_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix)
+{
+ PERL_ARGS_ASSERT_NEWPADXVOP;
+
+ assert(type == OP_PADSV || type == OP_PADAV || type == OP_PADHV
+ || type == OP_PADCV);
+ OP *o = newOP(type, flags);
+ o->op_targ = padix;
+ return o;
+}
+
/* ------------------ util.h ------------------------------------------- */
/*
@@ -2509,7 +3154,7 @@ range bytes match only themselves.
*/
PERL_STATIC_INLINE I32
-Perl_foldEQ(const char *s1, const char *s2, I32 len)
+Perl_foldEQ(pTHX_ const char *s1, const char *s2, I32 len)
{
const U8 *a = (const U8 *)s1;
const U8 *b = (const U8 *)s2;
@@ -2527,7 +3172,7 @@ Perl_foldEQ(const char *s1, const char *s2, I32 len)
}
PERL_STATIC_INLINE I32
-Perl_foldEQ_latin1(const char *s1, const char *s2, I32 len)
+Perl_foldEQ_latin1(pTHX_ const char *s1, const char *s2, I32 len)
{
/* Compare non-UTF-8 using Unicode (Latin1) semantics. Works on all folds
* representable without UTF-8, except for LATIN_SMALL_LETTER_SHARP_S, and
@@ -2561,7 +3206,7 @@ same case-insensitively in the current locale; false otherwise.
*/
PERL_STATIC_INLINE I32
-Perl_foldEQ_locale(const char *s1, const char *s2, I32 len)
+Perl_foldEQ_locale(pTHX_ const char *s1, const char *s2, I32 len)
{
const U8 *a = (const U8 *)s1;
const U8 *b = (const U8 *)s2;
@@ -2571,8 +3216,14 @@ Perl_foldEQ_locale(const char *s1, const char *s2, I32 len)
assert(len >= 0);
while (len--) {
- if (*a != *b && *a != PL_fold_locale[*b])
+ if (*a != *b && *a != PL_fold_locale[*b]) {
+ DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+ "%s:%d: Our records indicate %02x is not a fold of %02x"
+ " or its mate %02x\n",
+ __FILE__, __LINE__, *a, *b, PL_fold_locale[*b]));
+
return 0;
+ }
a++,b++;
}
return 1;
@@ -2661,7 +3312,7 @@ Perl_mortal_getenv(const char * str)
* mutex is defined accordingly.
*
* But in all cases, using the mutex prevents these problems, as long as
- * all code uses the same mutex..
+ * all code uses the same mutex.
*
* A complication is that this can be called during phases where the
* mortalization process isn't available. These are in interpreter
@@ -2699,7 +3350,7 @@ Perl_mortal_getenv(const char * str)
* the recursive calls and calls from the logger, and treat them specially.
* Let's say we want to do getenv("foo"). We first find
* getenv(PERL_MEM_LOG) and save it to a fixed-length per-interpreter
- * variable, so no temporary is required. Then we do getenv(foo}, and in
+ * variable, so no temporary is required. Then we do getenv(foo), and in
* the process of creating a temporary to save it, this function will be
* called recursively to do a getenv(PERL_MEM_LOG). On the recursed call,
* we detect that it is such a call and return our saved value instead of
@@ -2779,7 +3430,7 @@ Perl_mortal_getenv(const char * str)
}
}
- /* Then each of the three significant characters */
+ /* Then each of the four significant characters */
if (strchr(ret, 'm')) {
*mem_log_meat++ = 'm';
}
@@ -2789,6 +3440,9 @@ Perl_mortal_getenv(const char * str)
if (strchr(ret, 't')) {
*mem_log_meat++ = 't';
}
+ if (strchr(ret, 'c')) {
+ *mem_log_meat++ = 'c';
+ }
*mem_log_meat = '\0';
assert(mem_log_meat < PL_mem_log + sizeof(PL_mem_log));
@@ -2815,7 +3469,7 @@ Perl_mortal_getenv(const char * str)
ret = getenv(str);
if (ret != NULL) {
- ret = SvPVX(sv_2mortal(newSVpv(ret, 0)));
+ ret = SvPVX( newSVpvn_flags(ret, strlen(ret) ,SVs_TEMP) );
}
GETENV_UNLOCK;
@@ -2830,6 +3484,282 @@ Perl_mortal_getenv(const char * str)
return ret;
}
+PERL_STATIC_INLINE bool
+Perl_sv_isbool(pTHX_ const SV *sv)
+{
+ return SvBoolFlagsOK(sv) && BOOL_INTERNALS_sv_isbool(sv);
+}
+
+#ifdef USE_ITHREADS
+
+PERL_STATIC_INLINE AV *
+Perl_cop_file_avn(pTHX_ const COP *cop) {
+
+ PERL_ARGS_ASSERT_COP_FILE_AVN;
+
+ const char *file = CopFILE(cop);
+ if (file) {
+ GV *gv = gv_fetchfile_flags(file, strlen(file), GVF_NOADD);
+ if (gv) {
+ return GvAVn(gv);
+ }
+ else
+ return NULL;
+ }
+ else
+ return NULL;
+}
+
+#endif
+
+PERL_STATIC_INLINE PADNAME *
+Perl_padname_refcnt_inc(PADNAME *pn)
+{
+ PadnameREFCNT(pn)++;
+ return pn;
+}
+
+PERL_STATIC_INLINE PADNAMELIST *
+Perl_padnamelist_refcnt_inc(PADNAMELIST *pnl)
+{
+ PadnamelistREFCNT(pnl)++;
+ return pnl;
+}
+
+/* copy a string to a safe spot */
+
+/*
+=for apidoc_section $string
+=for apidoc savepv
+
+Perl's version of C<strdup()>. Returns a pointer to a newly allocated
+string which is a duplicate of C<pv>. The size of the string is
+determined by C<strlen()>, which means it may not contain embedded C<NUL>
+characters and must have a trailing C<NUL>. To prevent memory leaks, the
+memory allocated for the new string needs to be freed when no longer needed.
+This can be done with the C<L</Safefree>> function, or
+L<C<SAVEFREEPV>|perlguts/SAVEFREEPV(p)>.
+
+On some platforms, Windows for example, all allocated memory owned by a thread
+is deallocated when that thread ends. So if you need that not to happen, you
+need to use the shared memory functions, such as C<L</savesharedpv>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savepv(pTHX_ const char *pv)
+{
+ PERL_UNUSED_CONTEXT;
+ if (!pv)
+ return NULL;
+ else {
+ char *newaddr;
+ const STRLEN pvlen = strlen(pv)+1;
+ Newx(newaddr, pvlen, char);
+ return (char*)memcpy(newaddr, pv, pvlen);
+ }
+}
+
+/* same thing but with a known length */
+
+/*
+=for apidoc savepvn
+
+Perl's version of what C<strndup()> would be if it existed. Returns a
+pointer to a newly allocated string which is a duplicate of the first
+C<len> bytes from C<pv>, plus a trailing
+C<NUL> byte. The memory allocated for
+the new string can be freed with the C<Safefree()> function.
+
+On some platforms, Windows for example, all allocated memory owned by a thread
+is deallocated when that thread ends. So if you need that not to happen, you
+need to use the shared memory functions, such as C<L</savesharedpvn>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savepvn(pTHX_ const char *pv, Size_t len)
+{
+ char *newaddr;
+ PERL_UNUSED_CONTEXT;
+
+ Newx(newaddr,len+1,char);
+ /* Give a meaning to NULL pointer mainly for the use in sv_magic() */
+ if (pv) {
+ /* might not be null terminated */
+ newaddr[len] = '\0';
+ return (char *) CopyD(pv,newaddr,len,char);
+ }
+ else {
+ return (char *) ZeroD(newaddr,len+1,char);
+ }
+}
+
+/*
+=for apidoc savesvpv
+
+A version of C<savepv()>/C<savepvn()> which gets the string to duplicate from
+the passed in SV using C<SvPV()>
+
+On some platforms, Windows for example, all allocated memory owned by a thread
+is deallocated when that thread ends. So if you need that not to happen, you
+need to use the shared memory functions, such as C<L</savesharedsvpv>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savesvpv(pTHX_ SV *sv)
+{
+ STRLEN len;
+ const char * const pv = SvPV_const(sv, len);
+ char *newaddr;
+
+ PERL_ARGS_ASSERT_SAVESVPV;
+
+ ++len;
+ Newx(newaddr,len,char);
+ return (char *) CopyD(pv,newaddr,len,char);
+}
+
+/*
+=for apidoc savesharedsvpv
+
+A version of C<savesharedpv()> which allocates the duplicate string in
+memory which is shared between threads.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savesharedsvpv(pTHX_ SV *sv)
+{
+ STRLEN len;
+ const char * const pv = SvPV_const(sv, len);
+
+ PERL_ARGS_ASSERT_SAVESHAREDSVPV;
+
+ return savesharedpvn(pv, len);
+}
+
+#ifndef PERL_GET_CONTEXT_DEFINED
+
+/*
+=for apidoc_section $embedding
+=for apidoc get_context
+
+Implements L<perlapi/C<PERL_GET_CONTEXT>>, which you should use instead.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void *
+Perl_get_context(void)
+{
+# if defined(USE_ITHREADS)
+# ifdef OLD_PTHREADS_API
+ pthread_addr_t t;
+ int error = pthread_getspecific(PL_thr_key, &t);
+ if (error)
+ Perl_croak_nocontext("panic: pthread_getspecific, error=%d", error);
+ return (void*)t;
+# elif defined(I_MACH_CTHREADS)
+ return (void*)cthread_data(cthread_self());
+# else
+ return (void*)PTHREAD_GETSPECIFIC(PL_thr_key);
+# endif
+# else
+ return (void*)NULL;
+# endif
+}
+
+#endif
+
+PERL_STATIC_INLINE MGVTBL*
+Perl_get_vtbl(pTHX_ int vtbl_id)
+{
+ PERL_UNUSED_CONTEXT;
+
+ return (vtbl_id < 0 || vtbl_id >= magic_vtable_max)
+ ? NULL : (MGVTBL*)PL_magic_vtables + vtbl_id;
+}
+
+/*
+=for apidoc my_strlcat
+
+The C library C<strlcat> if available, or a Perl implementation of it.
+This operates on C C<NUL>-terminated strings.
+
+C<my_strlcat()> appends string C<src> to the end of C<dst>. It will append at
+most S<C<size - strlen(dst) - 1>> characters. It will then C<NUL>-terminate,
+unless C<size> is 0 or the original C<dst> string was longer than C<size> (in
+practice this should not happen as it means that either C<size> is incorrect or
+that C<dst> is not a proper C<NUL>-terminated string).
+
+Note that C<size> is the full size of the destination buffer and
+the result is guaranteed to be C<NUL>-terminated if there is room. Note that
+room for the C<NUL> should be included in C<size>.
+
+The return value is the total length that C<dst> would have if C<size> is
+sufficiently large. Thus it is the initial length of C<dst> plus the length of
+C<src>. If C<size> is smaller than the return, the excess was not appended.
+
+=cut
+
+Description stolen from http://man.openbsd.org/strlcat.3
+*/
+#ifndef HAS_STRLCAT
+PERL_STATIC_INLINE Size_t
+Perl_my_strlcat(char *dst, const char *src, Size_t size)
+{
+ Size_t used, length, copy;
+
+ used = strlen(dst);
+ length = strlen(src);
+ if (size > 0 && used < size - 1) {
+ copy = (length >= size - used) ? size - used - 1 : length;
+ memcpy(dst + used, src, copy);
+ dst[used + copy] = '\0';
+ }
+ return used + length;
+}
+#endif
+
+
+/*
+=for apidoc my_strlcpy
+
+The C library C<strlcpy> if available, or a Perl implementation of it.
+This operates on C C<NUL>-terminated strings.
+
+C<my_strlcpy()> copies up to S<C<size - 1>> characters from the string C<src>
+to C<dst>, C<NUL>-terminating the result if C<size> is not 0.
+
+The return value is the total length C<src> would be if the copy completely
+succeeded. If it is larger than C<size>, the excess was not copied.
+
+=cut
+
+Description stolen from http://man.openbsd.org/strlcpy.3
+*/
+#ifndef HAS_STRLCPY
+PERL_STATIC_INLINE Size_t
+Perl_my_strlcpy(char *dst, const char *src, Size_t size)
+{
+ Size_t length, copy;
+
+ length = strlen(src);
+ if (size > 0) {
+ copy = (length >= size) ? size - 1 : length;
+ memcpy(dst, src, copy);
+ dst[copy] = '\0';
+ }
+ return length;
+}
+#endif
+
/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h
index 5c49d31528..f08de2f0d0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h
@@ -58,7 +58,10 @@ PERLVARI(I, sub_generation, U32, 1) /* incr to invalidate method cache */
#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 */
+PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff
+ 0. no-random
+ 1. random
+ 2. deterministic */
#endif
PERLVARI(I, hash_rand_bits, UV, 0) /* used to randomize hash stuff */
#endif
@@ -83,7 +86,7 @@ PERLVARI(I, tainted, bool, FALSE) /* using variables controlled by $< */
* control returns to pp_push or whatever, it sees if any of those flags
* have been set, and if so finally calls mg_set().
*
- * NB: PL_delaymagic is automatically saved and restored by JUMPENV_PUSH
+ * NB: PL_delaymagic is automatically saved and restored by JMPENV_PUSH
* / POP. This removes the need to do ENTER/SAVEI16(PL_delaymagic)/LEAVE
* in hot code like pp_push.
*/
@@ -115,6 +118,7 @@ PERLVARI(I, utf8cache, I8, PERL___I) /* Is the utf8 caching code enabled? */
#undef PERL___I
/*
+=for apidoc_section $GV
=for apidoc Amn|GV *|PL_defgv
The GV representing C<*_>. Useful for access to C<$_>.
@@ -126,11 +130,13 @@ thread's copy.
=cut
*/
-PERLVAR(I, localizing, U8) /* are we processing a local() list? */
+PERLVAR(I, localizing, U8) /* are we processing a local() list?
+ 0 = no, 1 = localizing, 2 = delocalizing */
PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */
PERLVAR(I, defgv, GV *) /* the *_ glob */
/*
+=for apidoc_section $GV
=for apidoc Amn|HV*|PL_curstash
The stash for the package code will be compiled into.
@@ -147,6 +153,7 @@ PERLVAR(I, defstash, HV *) /* main symbol table */
PERLVAR(I, curstash, HV *) /* symbol table for current package */
/*
+=for apidoc_section $COP
=for apidoc Amn|COP*|PL_curcop
The currently active COP (control op) roughly representing the current
@@ -221,6 +228,7 @@ PERLVAR(I, padname_undef, PADNAME)
PERLVAR(I, padname_const, PADNAME)
/*
+=for apidoc_section $SV
=for apidoc Cmn||PL_Sv
A scratch pad SV for whatever temporary use you need. Chiefly used as a
@@ -228,6 +236,10 @@ fallback by macros on platforms where L<perlapi/PERL_USE_GCC_BRACE_GROUPS>> is
unavailable, and which would otherwise evaluate their SV parameter more than
once.
+B<BUT BEWARE>, if this is used in a situation where something that is using it
+is in a call stack with something else that is using it, this variable would
+get zapped, leading to hard-to-diagnose errors.
+
=cut
*/
PERLVAR(I, Sv, SV *)
@@ -238,12 +250,22 @@ PERLVAR(I, stashcache, HV *) /* Cache to speed up S_method_common */
/*
+=for apidoc_section $string
=for apidoc Amn|STRLEN|PL_na
-A convenience variable which is typically used with C<SvPV> when one
-doesn't care about the length of the string. It is usually more efficient
-to either declare a local variable and use that instead or to use the
-C<SvPV_nolen> macro.
+A scratch pad variable in which to store a C<STRLEN> value. If would have been
+better named something like C<PL_temp_strlen>.
+
+It is is typically used with C<SvPV> when one is actually planning to discard
+the returned length, (hence the length is "Not Applicable", which is how this
+variable got its name).
+
+B<BUT BEWARE>, if this is used in a situation where something that is using it
+is in a call stack with something else that is using it, this variable would
+get zapped, leading to hard-to-diagnose errors.
+
+It is usually more efficient to either declare a local variable and use that
+instead, or to use the C<SvPV_nolen> macro.
=cut
*/
@@ -266,6 +288,7 @@ On threaded perls, each thread has an independent copy of this variable;
each initialized at creation time with the current value of the creating
thread's copy.
+=for apidoc_section $io
=for apidoc mn|GV*|PL_last_in_gv
The GV which was last used for a filehandle input operation. (C<< <FH> >>)
@@ -274,6 +297,7 @@ On threaded perls, each thread has an independent copy of this variable;
each initialized at creation time with the current value of the creating
thread's copy.
+=for apidoc_section $io
=for apidoc mn|GV*|PL_ofsgv
The glob containing the output field separator - C<*,> in Perl space.
@@ -364,16 +388,15 @@ thread's copy.
PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */
PERLVAR(I, utf8locale, bool) /* utf8 locale detected */
-PERLVAR(I, in_utf8_CTYPE_locale, bool)
-PERLVAR(I, in_utf8_COLLATE_locale, bool)
-PERLVAR(I, in_utf8_turkic_locale, bool)
-#if defined(USE_ITHREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
-PERLVARI(I, lc_numeric_mutex_depth, int, 0) /* Emulate general semaphore */
+
+#if defined(USE_LOCALE) && defined(USE_LOCALE_THREADS)
+PERLVARI(I, locale_mutex_depth, int, 0) /* Emulate general semaphore */
#endif
-PERLVARA(I, locale_utf8ness, 256, char)
#ifdef USE_LOCALE_CTYPE
- PERLVAR(I, warn_locale, SV *)
+PERLVAR(I, warn_locale, SV *)
+PERLVAR(I, in_utf8_CTYPE_locale, bool)
+PERLVAR(I, in_utf8_turkic_locale, bool)
#endif
PERLVARA(I, colors,6, char *) /* values from PERL_RE_COLORS env var */
@@ -407,6 +430,7 @@ thread's copy.
PERLVARI(I, peepp, peep_t, Perl_peep)
/*
+=for apidoc_section $optree_construction
=for apidoc Amn|peep_t|PL_rpeepp
Pointer to the recursive peephole optimiser. This is a function
@@ -435,6 +459,7 @@ thread's copy.
PERLVARI(I, rpeepp, peep_t, Perl_rpeep)
/*
+=for apidoc_section $optrees
=for apidoc Amn|Perl_ophook_t|PL_opfreehook
When non-C<NULL>, the function pointed by this variable will be called each time an OP is freed with the corresponding OP as the argument.
@@ -471,11 +496,14 @@ PERLVAR(I, origfilename, char *)
PERLVARI(I, xsubfilename, const char *, NULL)
PERLVAR(I, diehook, SV *)
PERLVAR(I, warnhook, SV *)
+/* keyword hooks*/
+PERLVARI(I, hook__require__before, SV *,NULL)
+PERLVARI(I, hook__require__after, SV *,NULL)
/* switches */
PERLVAR(I, patchlevel, SV *)
PERLVAR(I, localpatches, const char * const *)
-PERLVARI(I, splitstr, const char *, " ")
+PERLVARI(I, splitstr, char *, NULL)
PERLVAR(I, minus_c, bool)
PERLVAR(I, minus_n, bool)
@@ -686,7 +714,6 @@ PERLVARI(I, cop_seqmax, U32, PERL_COP_SEQMAX) /* statement sequence number */
PERLVARI(I, evalseq, U32, 0) /* eval sequence number */
PERLVAR(I, origalen, U32)
-PERLVAR(I, origenviron, char **)
#ifdef PERL_USES_PL_PIDSTATUS
PERLVAR(I, pidstatus, HV *) /* pid-to-status mappings for waitpid */
#endif
@@ -718,20 +745,33 @@ PERLVAR(I, constpadix, PADOFFSET) /* lowest unused for constants */
PERLVAR(I, padix_floor, PADOFFSET) /* how low may inner block reset padix */
-#if defined(USE_POSIX_2008_LOCALE) \
- && defined(USE_THREAD_SAFE_LOCALE) \
- && ! defined(HAS_QUERYLOCALE)
+#if defined(USE_POSIX_2008_LOCALE) && defined(MULTIPLICITY)
+PERLVARI(I, cur_locale_obj, locale_t, NULL)
+#endif
+#ifdef USE_PL_CURLOCALES
/* This is the most number of categories we've encountered so far on any
- * platform */
-PERLVARA(I, curlocales, 12, char *)
+ * platform, doesn't include LC_ALL */
+PERLVARA(I, curlocales, 12, const char *)
+
+#endif
+#ifdef USE_PL_CUR_LC_ALL
+
+PERLVARI(I, cur_LC_ALL, const char *, NULL)
#endif
#ifdef USE_LOCALE_COLLATE
+/* The emory needed to store the collxfrm transformation of a string with
+ * length 'x' is predicted by the linear equation mx+b; m=mult, b=base */
+PERLVARI(I, collxfrm_mult,Size_t, 0) /* Expansion factor in *xfrm();
+ 0 => unknown or bad, depending on
+ base */
+PERLVAR(I, collxfrm_base, Size_t) /* Basic overhead in *xfrm();
+ mult == 0, base == 0 => need to compute
+ mult == 0, base != 0 => ill-formed;
+ */
PERLVAR(I, collation_name, char *) /* Name of current collation */
-PERLVAR(I, collxfrm_base, Size_t) /* Basic overhead in *xfrm() */
-PERLVARI(I, collxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */
PERLVARI(I, collation_ix, U32, 0) /* Collation generation index */
PERLVARI(I, strxfrm_NUL_replacement, U8, 0) /* Code point to replace NULs */
PERLVARI(I, strxfrm_is_behaved, bool, TRUE)
@@ -739,12 +779,15 @@ PERLVARI(I, strxfrm_is_behaved, bool, TRUE)
PERLVARI(I, strxfrm_max_cp, U8, 0) /* Highest collating cp in locale */
PERLVARI(I, collation_standard, bool, TRUE)
/* Assume simple collation */
+PERLVAR(I, in_utf8_COLLATE_locale, bool)
#endif /* USE_LOCALE_COLLATE */
-PERLVARI(I, langinfo_buf, char *, NULL)
+PERLVARI(I, langinfo_buf, const char *, NULL)
PERLVARI(I, langinfo_bufsize, Size_t, 0)
-PERLVARI(I, setlocale_buf, char *, NULL)
+PERLVARI(I, setlocale_buf, const char *, NULL)
PERLVARI(I, setlocale_bufsize, Size_t, 0)
+PERLVARI(I, stdize_locale_buf, const char *, NULL)
+PERLVARI(I, stdize_locale_bufsize, Size_t, 0)
#ifdef PERL_SAWAMPERSAND
PERLVAR(I, sawampersand, U8) /* must save all match strings */
@@ -757,6 +800,8 @@ PERLVARI(I, phase, enum perl_phase, PERL_PHASE_CONSTRUCT)
PERLVARI(I, in_load_module, bool, FALSE) /* to prevent recursions in PerlIO_find_layer */
+PERLVARI(I, eval_begin_nest_depth, U32, 0)
+
PERLVAR(I, unsafe, bool)
PERLVAR(I, colorset, bool) /* PERL_RE_COLORS env var is in use */
@@ -792,25 +837,33 @@ PERLVARI(I, perl_destruct_level, signed char, 0)
PERLVAR(I, pad_reset_pending, bool) /* reset pad on next attempted alloc */
-PERLVAR(I, srand_called, bool)
-
-#ifdef USE_LOCALE_NUMERIC
+PERLVARI(I, srand_called, bool, false) /* has random_state been initialized yet? */
+PERLVARI(I, srand_override, U32, 0) /* Should we use a deterministic sequence? */
+PERLVARI(I, srand_override_next, U32, 0) /* Next item in the sequence */
PERLVARI(I, numeric_underlying, bool, TRUE)
/* Assume underlying locale numerics */
PERLVARI(I, numeric_underlying_is_standard, bool, TRUE)
-PERLVARI(I, numeric_standard, int, TRUE)
- /* Assume C locale numerics */
-PERLVAR(I, numeric_name, char *) /* Name of current numeric locale */
-PERLVAR(I, numeric_radix_sv, SV *) /* The radix separator if not '.' */
+PERLVARI(I, numeric_standard, int, TRUE) /* Assume C locale numerics */
+PERLVAR(I, numeric_name, char *) /* Name of current numeric locale */
+PERLVAR(I, numeric_radix_sv, SV *) /* The radix separator */
+PERLVAR(I, underlying_radix_sv, SV *) /* The radix in the program's current underlying locale */
-# ifdef HAS_POSIX_2008_LOCALE
+#if defined(USE_LOCALE_NUMERIC) && defined(USE_POSIX_2008_LOCALE)
PERLVARI(I, underlying_numeric_obj, locale_t, NULL)
+#endif
+#ifdef USE_POSIX_2008_LOCALE
+PERLVARI(I, scratch_locale_obj, locale_t, 0)
+#endif
+
+#ifdef USE_LOCALE_CTYPE
+
+PERLVARI(I, ctype_name, const char *, NULL) /* Name of current ctype locale */
+
# endif
-#endif /* !USE_LOCALE_NUMERIC */
/* Array of signal handlers, indexed by signal number, through which the C
signal handler dispatches. */
@@ -874,7 +927,12 @@ PERLVARI(I, clocktick, long, 0) /* this many times() ticks in a second */
PERLVARI(I, sharehook, share_proc_t, Perl_sv_nosharing)
PERLVARI(I, lockhook, share_proc_t, Perl_sv_nosharing)
+#if defined(__HP_cc) || defined(__HP_aCC)
+#pragma diag_suppress 3215
+#endif
GCC_DIAG_IGNORE(-Wdeprecated-declarations)
+MSVC_DIAG_IGNORE(4996)
+
#ifdef NO_MATHOMS
# define PERL_UNLOCK_HOOK Perl_sv_nosharing
#else
@@ -883,7 +941,11 @@ GCC_DIAG_IGNORE(-Wdeprecated-declarations)
#endif
PERLVARI(I, unlockhook, share_proc_t, PERL_UNLOCK_HOOK)
+MSVC_DIAG_RESTORE
GCC_DIAG_RESTORE
+#if defined(__HP_cc) || defined(__HP_aCC)
+#pragma diag_default 3215
+#endif
PERLVARI(I, threadhook, thrhook_proc_t, Perl_nothreadhook)
@@ -911,7 +973,7 @@ PERLVAR(I, Xpv, XPV *) /* (unused) held temporary value */
/* name of the scopes we've ENTERed. Only used with -DDEBUGGING, but needs to be
present always, as -DDEBUGGING must be binary compatible with non. */
-PERLVARI(I, scopestack_name, const char * *, NULL)
+PERLVARI(I, scopestack_name, const char **, NULL)
PERLVAR(I, debug_pad, struct perl_debug_pad) /* always needed because of the re extension */
@@ -926,12 +988,12 @@ PERLVARI(I, globhook, globhook_t, NULL)
# define PERL_LAST_5_18_0_INTERP_MEMBER Iglobhook
#endif
-#ifdef PERL_IMPLICIT_CONTEXT
+#ifdef MULTIPLICITY
PERLVARI(I, my_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */
PERLVARI(I, my_cxt_size, int, 0) /* size of PL_my_cxt_list */
#endif
-#if defined(PERL_IMPLICIT_CONTEXT) || defined(PERL_DEBUG_READONLY_COW)
+#if defined(MULTIPLICITY) || defined(PERL_DEBUG_READONLY_COW)
/* For use with the memory debugging code in util.c. This is used only in
* DEBUGGING builds (as long as the relevant structure is defined), but
* defining it in non-debug builds too means that we retain binary
@@ -952,12 +1014,11 @@ PERLVARI(I, sv_serial, U32, 0) /* SV serial number, used in sv.c */
PERLVARA(I, sv_consts, SV_CONSTS_COUNT, SV*) /* constant SVs with precomputed hash value */
#ifdef PERL_TRACE_OPS
-PERLVARA(I, op_exec_cnt, OP_max+2, UV) /* Counts of executed OPs of the given type.
+PERLVARA(I, op_exec_cnt, OP_max+2, UV) /* Counts of executed OPs of the given type.
If PERL_TRACE_OPS is enabled, we'll dump
a summary count of all ops executed in the
- program at perl_destruct time. For
- profiling/debugging only. Works only if
- DEBUGGING is enabled, too. */
+ program at perl_destruct time. Used only
+ for profiling in DEBUGGING mode. */
#endif
PERLVAR(I, random_state, PL_RANDOM_STATE_TYPE)
@@ -985,6 +1046,8 @@ PERLVAR(I, SB_invlist, SV *)
PERLVAR(I, SCX_invlist, SV *)
PERLVAR(I, UpperLatin1, SV *) /* Code points 128 - 255 */
+PERLVARA(I, fold_locale, 256, U8)
+
/* List of characters that participate in any fold defined by Unicode */
PERLVAR(I, in_some_fold, SV *)
@@ -1026,9 +1089,16 @@ PERLVAR(I, wcrtomb_ps, mbstate_t)
/* Enough space for the reserved byte, 1 for a potential leading 0, then enough
* for the longest representable integer plus an extra, the 3 flag characters,
* and NUL */
-PERLVARA(I, mem_log, 1 + 1 + TYPE_DIGITS(UV) + 1 + 3 + 1, char);
+#define PERL_MEM_LOG_ARYLEN (1 + 1 + TYPE_DIGITS(UV) + 1 + 3 + 1)
+PERLVARA(I, mem_log, PERL_MEM_LOG_ARYLEN, char)
#endif
+/* The most recently seen `use VERSION` declaration, encoded in a single
+ * U16 as (major << 8) | minor. We do this rather than store an entire SV
+ * version object so we can fit the U16 into the uv of a SAVEHINTS and not
+ * have to worry about SV refcounts during scope enter/exit. */
+PERLVAR(I, prevailing_version, U16)
+
/* If you are adding a U8 or U16, check to see if there are 'Space' comments
* above on where there are gaps which currently will be structure padding. */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h
index 0f24f3d503..8b28c21885 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h
@@ -10,7 +10,7 @@
#define PERL_INVLIST_INLINE_H_
#if defined(PERL_IN_UTF8_C) \
- || defined(PERL_IN_REGCOMP_C) \
+ || defined(PERL_IN_REGCOMP_ANY) \
|| defined(PERL_IN_REGEXEC_C) \
|| defined(PERL_IN_TOKE_C) \
|| defined(PERL_IN_PP_C) \
@@ -27,7 +27,7 @@
#define FROM_INTERNAL_SIZE(x) ((x)/ sizeof(UV))
PERL_STATIC_INLINE bool
-S_is_invlist(SV* const invlist)
+S_is_invlist(const SV* const invlist)
{
return invlist != NULL && SvTYPE(invlist) == SVt_INVLIST;
}
@@ -93,7 +93,7 @@ S_invlist_array(SV* const invlist)
}
#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
PERL_STATIC_INLINE void
S_invlist_extend(pTHX_ SV* const invlist, const UV new_max)
@@ -161,8 +161,45 @@ S_invlist_highest(SV* const invlist)
: array[len - 1] - 1;
}
+# if defined(PERL_IN_REGCOMP_ANY)
+
+PERL_STATIC_INLINE UV
+S_invlist_highest_range_start(SV* const invlist)
+{
+ /* Returns the lowest code point of the highest range in the inversion
+ * list parameter. This API has an ambiguity: it returns 0 either when
+ * the lowest such point is actually 0 or when the list is empty. If this
+ * distinction matters to you, check for emptiness before calling this
+ * function. */
+
+ UV len = _invlist_len(invlist);
+ UV *array;
+
+ PERL_ARGS_ASSERT_INVLIST_HIGHEST_RANGE_START;
+
+ if (len == 0) {
+ return 0;
+ }
+
+ array = invlist_array(invlist);
+
+ /* The last element in the array in the inversion list always starts a
+ * range that goes to infinity. That range may be for code points that are
+ * matched in the inversion list, or it may be for ones that aren't
+ * matched. In the first case, the lowest code point in the matching range
+ * is that the one that started the range. If the other case, the final
+ * matching range begins at the next element down (which may be 0 in the
+ * edge case). */
+ return (ELEMENT_RANGE_MATCHES_INVLIST(len - 1))
+ ? array[len - 1]
+ : len == 1
+ ? 0
+ : array[len - 2];
+}
+
+# endif
#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_OP_C)
PERL_STATIC_INLINE STRLEN*
S_get_invlist_iter_addr(SV* invlist)
@@ -238,11 +275,101 @@ S_invlist_iternext(SV* invlist, UV* start, UV* end)
#endif
-#ifndef PERL_IN_REGCOMP_C
+#ifndef PERL_IN_REGCOMP_ANY
/* These symbols are only needed later in regcomp.c */
# undef TO_INTERNAL_SIZE
# undef FROM_INTERNAL_SIZE
#endif
+#ifdef PERL_IN_REGCOMP_ANY
+PERL_STATIC_INLINE
+bool
+S_invlist_is_iterating(const SV* const invlist)
+{
+ PERL_ARGS_ASSERT_INVLIST_IS_ITERATING;
+
+ /* get_invlist_iter_addr()'s sv is non-const only because it returns a
+ * value that can be used to modify the invlist, it doesn't modify the
+ * invlist itself */
+ return *(get_invlist_iter_addr((SV*)invlist)) < (STRLEN) UV_MAX;
+}
+
+PERL_STATIC_INLINE
+SV *
+S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style)
+{
+ /* Get the contents of an inversion list into a string SV so that they can
+ * be printed out. If 'traditional_style' is TRUE, it uses the format
+ * traditionally done for debug tracing; otherwise it uses a format
+ * suitable for just copying to the output, with blanks between ranges and
+ * a dash between range components */
+
+ UV start, end;
+ SV* output;
+ const char intra_range_delimiter = (traditional_style ? '\t' : '-');
+ const char inter_range_delimiter = (traditional_style ? '\n' : ' ');
+
+ if (traditional_style) {
+ output = newSVpvs("\n");
+ }
+ else {
+ output = newSVpvs("");
+ }
+
+ PERL_ARGS_ASSERT_INVLIST_CONTENTS;
+
+ assert(! invlist_is_iterating(invlist));
+
+ invlist_iterinit(invlist);
+ while (invlist_iternext(invlist, &start, &end)) {
+ if (end == UV_MAX) {
+ Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%cINFTY%c",
+ start, intra_range_delimiter,
+ inter_range_delimiter);
+ }
+ else if (end != start) {
+ Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%c%04" UVXf "%c",
+ start,
+ intra_range_delimiter,
+ end, inter_range_delimiter);
+ }
+ else {
+ Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%c",
+ start, inter_range_delimiter);
+ }
+ }
+
+ if (SvCUR(output) && ! traditional_style) {/* Get rid of trailing blank */
+ SvCUR_set(output, SvCUR(output) - 1);
+ }
+
+ return output;
+}
+
+PERL_STATIC_INLINE
+UV
+S_invlist_lowest(SV* const invlist)
+{
+ /* Returns the lowest code point that matches an inversion list. This API
+ * has an ambiguity, as it returns 0 under either the lowest is actually
+ * 0, or if the list is empty. If this distinction matters to you, check
+ * for emptiness before calling this function */
+
+ UV len = _invlist_len(invlist);
+ UV *array;
+
+ PERL_ARGS_ASSERT_INVLIST_LOWEST;
+
+ if (len == 0) {
+ return 0;
+ }
+
+ array = invlist_array(invlist);
+
+ return array[0];
+}
+
+#endif
+
#endif /* PERL_INVLIST_INLINE_H_ */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h
index 5ef7f23542..40ff8a3103 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h
@@ -13,7 +13,7 @@
#define __Inc__IPerl___
/*
- * PerlXXX_YYY explained - DickH and DougL @ ActiveState.com
+ * PerlXXX_YYY explained - DickH and DougL @ ActiveState.com
*
* XXX := functional group
* YYY := stdlib/OS function name
@@ -49,6 +49,7 @@
*/
#include "perlio.h"
+
typedef Signal_t (*Sighandler1_t) (int);
typedef Signal_t (*Sighandler3_t) (int, Siginfo_t*, void*);
@@ -62,304 +63,300 @@ typedef Sighandler1_t Sighandler_t;
#if defined(PERL_IMPLICIT_SYS)
-/* IPerlStdIO */
+/* IPerlStdIO */
struct IPerlStdIO;
struct IPerlStdIOInfo;
typedef FILE* (*LPStdin)(struct IPerlStdIO*);
-typedef FILE* (*LPStdout)(struct IPerlStdIO*);
-typedef FILE* (*LPStderr)(struct IPerlStdIO*);
-typedef FILE* (*LPOpen)(struct IPerlStdIO*, const char*,
+typedef FILE* (*LPStdout)(struct IPerlStdIO*);
+typedef FILE* (*LPStderr)(struct IPerlStdIO*);
+typedef FILE* (*LPOpen)(struct IPerlStdIO*, const char*,
const char*);
-typedef int (*LPClose)(struct IPerlStdIO*, FILE*);
-typedef int (*LPEof)(struct IPerlStdIO*, FILE*);
-typedef int (*LPError)(struct IPerlStdIO*, FILE*);
-typedef void (*LPClearerr)(struct IPerlStdIO*, FILE*);
-typedef int (*LPGetc)(struct IPerlStdIO*, FILE*);
-typedef STDCHAR* (*LPGetBase)(struct IPerlStdIO*, FILE*);
-typedef int (*LPGetBufsiz)(struct IPerlStdIO*, FILE*);
-typedef int (*LPGetCnt)(struct IPerlStdIO*, FILE*);
-typedef STDCHAR* (*LPGetPtr)(struct IPerlStdIO*, FILE*);
-typedef char* (*LPGets)(struct IPerlStdIO*, char*, int, FILE*);
-typedef int (*LPPutc)(struct IPerlStdIO*, int, FILE*);
-typedef int (*LPPuts)(struct IPerlStdIO*, const char *, FILE*);
-typedef int (*LPFlush)(struct IPerlStdIO*, FILE*);
-typedef int (*LPUngetc)(struct IPerlStdIO*, int,FILE*);
-typedef int (*LPFileno)(struct IPerlStdIO*, FILE*);
-typedef FILE* (*LPFdopen)(struct IPerlStdIO*, int, const char*);
-typedef FILE* (*LPReopen)(struct IPerlStdIO*, const char*,
+typedef int (*LPClose)(struct IPerlStdIO*, FILE*);
+typedef int (*LPEof)(struct IPerlStdIO*, FILE*);
+typedef int (*LPError)(struct IPerlStdIO*, FILE*);
+typedef void (*LPClearerr)(struct IPerlStdIO*, FILE*);
+typedef int (*LPGetc)(struct IPerlStdIO*, FILE*);
+typedef STDCHAR* (*LPGetBase)(struct IPerlStdIO*, FILE*);
+typedef int (*LPGetBufsiz)(struct IPerlStdIO*, FILE*);
+typedef int (*LPGetCnt)(struct IPerlStdIO*, FILE*);
+typedef STDCHAR* (*LPGetPtr)(struct IPerlStdIO*, FILE*);
+typedef char* (*LPGets)(struct IPerlStdIO*, char*, int, FILE*);
+typedef int (*LPPutc)(struct IPerlStdIO*, int, FILE*);
+typedef int (*LPPuts)(struct IPerlStdIO*, const char *, FILE*);
+typedef int (*LPFlush)(struct IPerlStdIO*, FILE*);
+typedef int (*LPUngetc)(struct IPerlStdIO*, int,FILE*);
+typedef int (*LPFileno)(struct IPerlStdIO*, FILE*);
+typedef FILE* (*LPFdopen)(struct IPerlStdIO*, int, const char*);
+typedef FILE* (*LPReopen)(struct IPerlStdIO*, const char*,
const char*, FILE*);
-typedef SSize_t (*LPRead)(struct IPerlStdIO*, void*, Size_t, Size_t, FILE *);
-typedef SSize_t (*LPWrite)(struct IPerlStdIO*, const void*, Size_t, Size_t, FILE *);
-typedef void (*LPSetBuf)(struct IPerlStdIO*, FILE*, char*);
-typedef int (*LPSetVBuf)(struct IPerlStdIO*, FILE*, char*, int,
+typedef SSize_t (*LPRead)(struct IPerlStdIO*, void*, Size_t, Size_t, FILE *);
+typedef SSize_t (*LPWrite)(struct IPerlStdIO*, const void*, Size_t, Size_t, FILE *);
+typedef void (*LPSetBuf)(struct IPerlStdIO*, FILE*, char*);
+typedef int (*LPSetVBuf)(struct IPerlStdIO*, FILE*, char*, int,
Size_t);
-typedef void (*LPSetCnt)(struct IPerlStdIO*, FILE*, int);
+typedef void (*LPSetCnt)(struct IPerlStdIO*, FILE*, int);
-#ifndef NETWARE
-typedef void (*LPSetPtr)(struct IPerlStdIO*, FILE*, STDCHAR*);
-#elif defined(NETWARE)
-typedef void (*LPSetPtr)(struct IPerlStdIO*, FILE*, STDCHAR*, int);
-#endif
+typedef void (*LPSetPtr)(struct IPerlStdIO*, FILE*, STDCHAR*);
-typedef void (*LPSetlinebuf)(struct IPerlStdIO*, FILE*);
-typedef int (*LPPrintf)(struct IPerlStdIO*, FILE*, const char*,
+typedef void (*LPSetlinebuf)(struct IPerlStdIO*, FILE*);
+typedef int (*LPPrintf)(struct IPerlStdIO*, FILE*, const char*,
...);
-typedef int (*LPVprintf)(struct IPerlStdIO*, FILE*, const char*,
+typedef int (*LPVprintf)(struct IPerlStdIO*, FILE*, const char*,
va_list);
-typedef Off_t (*LPTell)(struct IPerlStdIO*, FILE*);
-typedef int (*LPSeek)(struct IPerlStdIO*, FILE*, Off_t, int);
-typedef void (*LPRewind)(struct IPerlStdIO*, FILE*);
-typedef FILE* (*LPTmpfile)(struct IPerlStdIO*);
-typedef int (*LPGetpos)(struct IPerlStdIO*, FILE*, Fpos_t*);
-typedef int (*LPSetpos)(struct IPerlStdIO*, FILE*,
+typedef Off_t (*LPTell)(struct IPerlStdIO*, FILE*);
+typedef int (*LPSeek)(struct IPerlStdIO*, FILE*, Off_t, int);
+typedef void (*LPRewind)(struct IPerlStdIO*, FILE*);
+typedef FILE* (*LPTmpfile)(struct IPerlStdIO*);
+typedef int (*LPGetpos)(struct IPerlStdIO*, FILE*, Fpos_t*);
+typedef int (*LPSetpos)(struct IPerlStdIO*, FILE*,
const Fpos_t*);
-typedef void (*LPInit)(struct IPerlStdIO*);
-typedef void (*LPInitOSExtras)(struct IPerlStdIO*);
-typedef FILE* (*LPFdupopen)(struct IPerlStdIO*, FILE*);
+typedef void (*LPInit)(struct IPerlStdIO*);
+typedef void (*LPInitOSExtras)(struct IPerlStdIO*);
+typedef FILE* (*LPFdupopen)(struct IPerlStdIO*, FILE*);
struct IPerlStdIO
{
- LPStdin pStdin;
- LPStdout pStdout;
- LPStderr pStderr;
- LPOpen pOpen;
- LPClose pClose;
- LPEof pEof;
- LPError pError;
- LPClearerr pClearerr;
- LPGetc pGetc;
- LPGetBase pGetBase;
- LPGetBufsiz pGetBufsiz;
- LPGetCnt pGetCnt;
- LPGetPtr pGetPtr;
- LPGets pGets;
- LPPutc pPutc;
- LPPuts pPuts;
- LPFlush pFlush;
- LPUngetc pUngetc;
- LPFileno pFileno;
- LPFdopen pFdopen;
- LPReopen pReopen;
- LPRead pRead;
- LPWrite pWrite;
- LPSetBuf pSetBuf;
- LPSetVBuf pSetVBuf;
- LPSetCnt pSetCnt;
- LPSetPtr pSetPtr;
- LPSetlinebuf pSetlinebuf;
- LPPrintf pPrintf;
- LPVprintf pVprintf;
- LPTell pTell;
- LPSeek pSeek;
- LPRewind pRewind;
- LPTmpfile pTmpfile;
- LPGetpos pGetpos;
- LPSetpos pSetpos;
- LPInit pInit;
- LPInitOSExtras pInitOSExtras;
- LPFdupopen pFdupopen;
+ LPStdin pStdin;
+ LPStdout pStdout;
+ LPStderr pStderr;
+ LPOpen pOpen;
+ LPClose pClose;
+ LPEof pEof;
+ LPError pError;
+ LPClearerr pClearerr;
+ LPGetc pGetc;
+ LPGetBase pGetBase;
+ LPGetBufsiz pGetBufsiz;
+ LPGetCnt pGetCnt;
+ LPGetPtr pGetPtr;
+ LPGets pGets;
+ LPPutc pPutc;
+ LPPuts pPuts;
+ LPFlush pFlush;
+ LPUngetc pUngetc;
+ LPFileno pFileno;
+ LPFdopen pFdopen;
+ LPReopen pReopen;
+ LPRead pRead;
+ LPWrite pWrite;
+ LPSetBuf pSetBuf;
+ LPSetVBuf pSetVBuf;
+ LPSetCnt pSetCnt;
+ LPSetPtr pSetPtr;
+ LPSetlinebuf pSetlinebuf;
+ LPPrintf pPrintf;
+ LPVprintf pVprintf;
+ LPTell pTell;
+ LPSeek pSeek;
+ LPRewind pRewind;
+ LPTmpfile pTmpfile;
+ LPGetpos pGetpos;
+ LPSetpos pSetpos;
+ LPInit pInit;
+ LPInitOSExtras pInitOSExtras;
+ LPFdupopen pFdupopen;
};
struct IPerlStdIOInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlStdIO perlStdIOList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlStdIO perlStdIOList;
};
/* These do not belong here ... NI-S, 14 Nov 2000 */
-#ifdef USE_STDIO_PTR
-# define PerlSIO_has_cntptr(f) 1
-# ifdef STDIO_PTR_LVALUE
-# ifdef STDIO_CNT_LVALUE
-# define PerlSIO_canset_cnt(f) 1
-# ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
-# define PerlSIO_fast_gets(f) 1
+# ifdef USE_STDIO_PTR
+# define PerlSIO_has_cntptr(f) 1
+# ifdef STDIO_PTR_LVALUE
+# ifdef STDIO_CNT_LVALUE
+# define PerlSIO_canset_cnt(f) 1
+# ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
+# define PerlSIO_fast_gets(f) 1
+# endif
+# else /* STDIO_CNT_LVALUE */
+# define PerlSIO_canset_cnt(f) 0
+# endif
+# else /* STDIO_PTR_LVALUE */
+# ifdef STDIO_PTR_LVAL_SETS_CNT
+# define PerlSIO_fast_gets(f) 1
# endif
-# else /* STDIO_CNT_LVALUE */
-# define PerlSIO_canset_cnt(f) 0
-# endif
-# else /* STDIO_PTR_LVALUE */
-# ifdef STDIO_PTR_LVAL_SETS_CNT
-# define PerlSIO_fast_gets(f) 1
# endif
-# endif
-#else /* USE_STDIO_PTR */
-# define PerlSIO_has_cntptr(f) 0
-# define PerlSIO_canset_cnt(f) 0
-#endif /* USE_STDIO_PTR */
+# else /* USE_STDIO_PTR */
+# define PerlSIO_has_cntptr(f) 0
+# define PerlSIO_canset_cnt(f) 0
+# endif /* USE_STDIO_PTR */
-#ifndef PerlSIO_fast_gets
-#define PerlSIO_fast_gets(f) 0
-#endif
+# ifndef PerlSIO_fast_gets
+# define PerlSIO_fast_gets(f) 0
+# endif
-#ifdef FILE_base
-#define PerlSIO_has_base(f) 1
-#else
-#define PerlSIO_has_base(f) 0
-#endif
+# ifdef FILE_base
+# define PerlSIO_has_base(f) 1
+# else
+# define PerlSIO_has_base(f) 0
+# endif
/* Now take FILE * via function table */
-#define PerlSIO_stdin \
+# define PerlSIO_stdin \
(*PL_StdIO->pStdin)(PL_StdIO)
-#define PerlSIO_stdout \
+# define PerlSIO_stdout \
(*PL_StdIO->pStdout)(PL_StdIO)
-#define PerlSIO_stderr \
+# define PerlSIO_stderr \
(*PL_StdIO->pStderr)(PL_StdIO)
-#define PerlSIO_fopen(x,y) \
+# define PerlSIO_fopen(x,y) \
(*PL_StdIO->pOpen)(PL_StdIO, (x),(y))
-#define PerlSIO_fclose(f) \
+# define PerlSIO_fclose(f) \
(*PL_StdIO->pClose)(PL_StdIO, (f))
-#define PerlSIO_feof(f) \
+# define PerlSIO_feof(f) \
(*PL_StdIO->pEof)(PL_StdIO, (f))
-#define PerlSIO_ferror(f) \
+# define PerlSIO_ferror(f) \
(*PL_StdIO->pError)(PL_StdIO, (f))
-#define PerlSIO_clearerr(f) \
+# define PerlSIO_clearerr(f) \
(*PL_StdIO->pClearerr)(PL_StdIO, (f))
-#define PerlSIO_fgetc(f) \
+# define PerlSIO_fgetc(f) \
(*PL_StdIO->pGetc)(PL_StdIO, (f))
-#define PerlSIO_get_base(f) \
+# define PerlSIO_get_base(f) \
(*PL_StdIO->pGetBase)(PL_StdIO, (f))
-#define PerlSIO_get_bufsiz(f) \
+# define PerlSIO_get_bufsiz(f) \
(*PL_StdIO->pGetBufsiz)(PL_StdIO, (f))
-#define PerlSIO_get_cnt(f) \
+# define PerlSIO_get_cnt(f) \
(*PL_StdIO->pGetCnt)(PL_StdIO, (f))
-#define PerlSIO_get_ptr(f) \
+# define PerlSIO_get_ptr(f) \
(*PL_StdIO->pGetPtr)(PL_StdIO, (f))
-#define PerlSIO_fputc(c,f) \
+# define PerlSIO_fputc(c,f) \
(*PL_StdIO->pPutc)(PL_StdIO, (c),(f))
-#define PerlSIO_fputs(s,f) \
+# define PerlSIO_fputs(s,f) \
(*PL_StdIO->pPuts)(PL_StdIO, (s),(f))
-#define PerlSIO_fflush(f) \
+# define PerlSIO_fflush(f) \
(*PL_StdIO->pFlush)(PL_StdIO, (f))
-#define PerlSIO_fgets(s, n, f) \
+# define PerlSIO_fgets(s, n, f) \
(*PL_StdIO->pGets)(PL_StdIO, s, n, (f))
-#define PerlSIO_ungetc(c,f) \
+# define PerlSIO_ungetc(c,f) \
(*PL_StdIO->pUngetc)(PL_StdIO, (c),(f))
-#define PerlSIO_fileno(f) \
+# define PerlSIO_fileno(f) \
(*PL_StdIO->pFileno)(PL_StdIO, (f))
-#define PerlSIO_fdopen(f, s) \
+# define PerlSIO_fdopen(f, s) \
(*PL_StdIO->pFdopen)(PL_StdIO, (f),(s))
-#define PerlSIO_freopen(p, m, f) \
+# define PerlSIO_freopen(p, m, f) \
(*PL_StdIO->pReopen)(PL_StdIO, (p), (m), (f))
-#define PerlSIO_fread(buf,sz,count,f) \
+# define PerlSIO_fread(buf,sz,count,f) \
(*PL_StdIO->pRead)(PL_StdIO, (buf), (sz), (count), (f))
-#define PerlSIO_fwrite(buf,sz,count,f) \
+# define PerlSIO_fwrite(buf,sz,count,f) \
(*PL_StdIO->pWrite)(PL_StdIO, (buf), (sz), (count), (f))
-#define PerlSIO_setbuf(f,b) \
+# define PerlSIO_setbuf(f,b) \
(*PL_StdIO->pSetBuf)(PL_StdIO, (f), (b))
-#define PerlSIO_setvbuf(f,b,t,s) \
+# define PerlSIO_setvbuf(f,b,t,s) \
(*PL_StdIO->pSetVBuf)(PL_StdIO, (f),(b),(t),(s))
-#define PerlSIO_set_cnt(f,c) \
+# define PerlSIO_set_cnt(f,c) \
(*PL_StdIO->pSetCnt)(PL_StdIO, (f), (c))
-#define PerlSIO_set_ptr(f,p) \
+# define PerlSIO_set_ptr(f,p) \
(*PL_StdIO->pSetPtr)(PL_StdIO, (f), (p))
-#define PerlSIO_setlinebuf(f) \
+# define PerlSIO_setlinebuf(f) \
(*PL_StdIO->pSetlinebuf)(PL_StdIO, (f))
-#define PerlSIO_printf Perl_fprintf_nocontext
-#define PerlSIO_stdoutf Perl_printf_nocontext
-#define PerlSIO_vprintf(f,fmt,a) \
+# define PerlSIO_printf Perl_fprintf_nocontext
+# define PerlSIO_stdoutf Perl_printf_nocontext
+# define PerlSIO_vprintf(f,fmt,a) \
(*PL_StdIO->pVprintf)(PL_StdIO, (f),(fmt),a)
-#define PerlSIO_ftell(f) \
+# define PerlSIO_ftell(f) \
(*PL_StdIO->pTell)(PL_StdIO, (f))
-#define PerlSIO_fseek(f,o,w) \
+# define PerlSIO_fseek(f,o,w) \
(*PL_StdIO->pSeek)(PL_StdIO, (f),(o),(w))
-#define PerlSIO_fgetpos(f,p) \
+# define PerlSIO_fgetpos(f,p) \
(*PL_StdIO->pGetpos)(PL_StdIO, (f),(p))
-#define PerlSIO_fsetpos(f,p) \
+# define PerlSIO_fsetpos(f,p) \
(*PL_StdIO->pSetpos)(PL_StdIO, (f),(p))
-#define PerlSIO_rewind(f) \
+# define PerlSIO_rewind(f) \
(*PL_StdIO->pRewind)(PL_StdIO, (f))
-#define PerlSIO_tmpfile() \
+# define PerlSIO_tmpfile() \
(*PL_StdIO->pTmpfile)(PL_StdIO)
-#define PerlSIO_init() \
+# define PerlSIO_init() \
(*PL_StdIO->pInit)(PL_StdIO)
-#undef init_os_extras
-#define init_os_extras() \
+# undef init_os_extras
+# define init_os_extras() \
(*PL_StdIO->pInitOSExtras)(PL_StdIO)
-#define PerlSIO_fdupopen(f) \
+# define PerlSIO_fdupopen(f) \
(*PL_StdIO->pFdupopen)(PL_StdIO, (f))
-#else /* PERL_IMPLICIT_SYS */
-
-#define PerlSIO_stdin stdin
-#define PerlSIO_stdout stdout
-#define PerlSIO_stderr stderr
-#define PerlSIO_fopen(x,y) fopen(x,y)
-#ifdef __VOS__
-/* Work around VOS bug posix-979, wrongly setting errno when at end of file. */
-#define PerlSIO_fclose(f) (((errno==1025)?errno=0:0),fclose(f))
-#define PerlSIO_feof(f) (((errno==1025)?errno=0:0),feof(f))
-#define PerlSIO_ferror(f) (((errno==1025)?errno=0:0),ferror(f))
-#else
-#define PerlSIO_fclose(f) fclose(f)
-#define PerlSIO_feof(f) feof(f)
-#define PerlSIO_ferror(f) ferror(f)
-#endif
-#define PerlSIO_clearerr(f) clearerr(f)
-#define PerlSIO_fgetc(f) fgetc(f)
-#ifdef FILE_base
-#define PerlSIO_get_base(f) FILE_base(f)
-#define PerlSIO_get_bufsiz(f) FILE_bufsiz(f)
-#else
-#define PerlSIO_get_base(f) NULL
-#define PerlSIO_get_bufsiz(f) 0
-#endif
-#ifdef USE_STDIO_PTR
-#define PerlSIO_get_cnt(f) FILE_cnt(f)
-#define PerlSIO_get_ptr(f) FILE_ptr(f)
-#else
-#define PerlSIO_get_cnt(f) 0
-#define PerlSIO_get_ptr(f) NULL
-#endif
-#define PerlSIO_fputc(c,f) fputc(c,f)
-#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)
+#else /* ! PERL_IMPLICIT_SYS */
+
+# define PerlSIO_stdin stdin
+# define PerlSIO_stdout stdout
+# define PerlSIO_stderr stderr
+# define PerlSIO_fopen(x,y) fopen(x,y)
+# ifdef __VOS__
+ /* Work around VOS bug posix-979, wrongly setting errno when at end of file. */
+# define PerlSIO_fclose(f) (((errno==1025)?errno=0:0),fclose(f))
+# define PerlSIO_feof(f) (((errno==1025)?errno=0:0),feof(f))
+# define PerlSIO_ferror(f) (((errno==1025)?errno=0:0),ferror(f))
+# else
+# define PerlSIO_fclose(f) fclose(f)
+# define PerlSIO_feof(f) feof(f)
+# define PerlSIO_ferror(f) ferror(f)
+# endif
+# define PerlSIO_clearerr(f) clearerr(f)
+# define PerlSIO_fgetc(f) fgetc(f)
+# ifdef FILE_base
+# define PerlSIO_get_base(f) FILE_base(f)
+# define PerlSIO_get_bufsiz(f) FILE_bufsiz(f)
+# else
+# define PerlSIO_get_base(f) NULL
+# define PerlSIO_get_bufsiz(f) 0
+# endif
+# ifdef USE_STDIO_PTR
+# define PerlSIO_get_cnt(f) FILE_cnt(f)
+# define PerlSIO_get_ptr(f) FILE_ptr(f)
+# else
+# define PerlSIO_get_cnt(f) 0
+# define PerlSIO_get_ptr(f) NULL
+# endif
+# define PerlSIO_fputc(c,f) fputc(c,f)
+# 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)
/* 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)) ? \
+# define PerlSIO_ungetc(c,f) ((c) == EOF ? EOF : \
+ ((*(f) && !((*(f))->_flag & _IONBF) && \
+ ((*(f))->_ptr > (*(f))->_base)) ? \
((*(f))->_cnt++, *(--(*(f))->_ptr) = (c)) : decc$ungetc(c,f)))
-#else
-# define PerlSIO_ungetc(c,f) ungetc(c,f)
-#endif
-#define PerlSIO_fileno(f) fileno(f)
-#define PerlSIO_fdopen(f, s) fdopen(f,s)
-#define PerlSIO_freopen(p, m, f) freopen(p,m,f)
-#define PerlSIO_fread(buf,sz,count,f) fread(buf,sz,count,f)
-#define PerlSIO_fwrite(buf,sz,count,f) fwrite(buf,sz,count,f)
-#define PerlSIO_setbuf(f,b) setbuf(f,b)
-#define PerlSIO_setvbuf(f,b,t,s) setvbuf(f,b,t,s)
-#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
-#define PerlSIO_set_cnt(f,c) FILE_cnt(f) = (c)
-#else
-#define PerlSIO_set_cnt(f,c) PerlIOProc_abort()
-#endif
-#if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE)
-#define PerlSIO_set_ptr(f,p) (FILE_ptr(f) = (p))
-#else
-#define PerlSIO_set_ptr(f,p) PerlIOProc_abort()
-#endif
-#define PerlSIO_setlinebuf(f) setlinebuf(f)
-#define PerlSIO_printf fprintf
-#define PerlSIO_stdoutf printf
-#define PerlSIO_vprintf(f,fmt,a) vfprintf(f,fmt,a)
-#define PerlSIO_ftell(f) ftell(f)
-#define PerlSIO_fseek(f,o,w) fseek(f,o,w)
-#define PerlSIO_fgetpos(f,p) fgetpos(f,p)
-#define PerlSIO_fsetpos(f,p) fsetpos(f,p)
-#define PerlSIO_rewind(f) rewind(f)
-#define PerlSIO_tmpfile() tmpfile()
-#define PerlSIO_fdupopen(f) (f)
-
-#endif /* PERL_IMPLICIT_SYS */
+# else
+# define PerlSIO_ungetc(c,f) ungetc(c,f)
+# endif
+# define PerlSIO_fileno(f) fileno(f)
+# define PerlSIO_fdopen(f, s) fdopen(f,s)
+# define PerlSIO_freopen(p, m, f) freopen(p,m,f)
+# define PerlSIO_fread(buf,sz,count,f) fread(buf,sz,count,f)
+# define PerlSIO_fwrite(buf,sz,count,f) fwrite(buf,sz,count,f)
+# define PerlSIO_setbuf(f,b) setbuf(f,b)
+# define PerlSIO_setvbuf(f,b,t,s) setvbuf(f,b,t,s)
+# if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
+# define PerlSIO_set_cnt(f,c) FILE_cnt(f) = (c)
+# else
+# define PerlSIO_set_cnt(f,c) PerlIOProc_abort()
+# endif
+# if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE)
+# define PerlSIO_set_ptr(f,p) (FILE_ptr(f) = (p))
+# else
+# define PerlSIO_set_ptr(f,p) PerlIOProc_abort()
+# endif
+# define PerlSIO_setlinebuf(f) setlinebuf(f)
+# define PerlSIO_printf fprintf
+# define PerlSIO_stdoutf printf
+# define PerlSIO_vprintf(f,fmt,a) vfprintf(f,fmt,a)
+# define PerlSIO_ftell(f) ftell(f)
+# define PerlSIO_fseek(f,o,w) fseek(f,o,w)
+# define PerlSIO_fgetpos(f,p) fgetpos(f,p)
+# define PerlSIO_fsetpos(f,p) fsetpos(f,p)
+# define PerlSIO_rewind(f) rewind(f)
+# define PerlSIO_tmpfile() tmpfile()
+# define PerlSIO_fdupopen(f) (f)
+
+#endif /* PERL_IMPLICIT_SYS */
/*
* Interface for directory functions
@@ -367,92 +364,92 @@ END_EXTERN_C
#if defined(PERL_IMPLICIT_SYS)
-/* IPerlDir */
+/* IPerlDir */
struct IPerlDir;
struct IPerlDirInfo;
-typedef int (*LPMakedir)(struct IPerlDir*, const char*, int);
-typedef int (*LPChdir)(struct IPerlDir*, const char*);
-typedef int (*LPRmdir)(struct IPerlDir*, const char*);
-typedef int (*LPDirClose)(struct IPerlDir*, DIR*);
-typedef DIR* (*LPDirOpen)(struct IPerlDir*, const char*);
-typedef struct direct* (*LPDirRead)(struct IPerlDir*, DIR*);
-typedef void (*LPDirRewind)(struct IPerlDir*, DIR*);
-typedef void (*LPDirSeek)(struct IPerlDir*, DIR*, long);
-typedef long (*LPDirTell)(struct IPerlDir*, DIR*);
-#ifdef WIN32
-typedef char* (*LPDirMapPathA)(struct IPerlDir*, const char*);
-typedef WCHAR* (*LPDirMapPathW)(struct IPerlDir*, const WCHAR*);
-#endif
+typedef int (*LPMakedir)(struct IPerlDir*, const char*, int);
+typedef int (*LPChdir)(struct IPerlDir*, const char*);
+typedef int (*LPRmdir)(struct IPerlDir*, const char*);
+typedef int (*LPDirClose)(struct IPerlDir*, DIR*);
+typedef DIR* (*LPDirOpen)(struct IPerlDir*, const char*);
+typedef struct direct* (*LPDirRead)(struct IPerlDir*, DIR*);
+typedef void (*LPDirRewind)(struct IPerlDir*, DIR*);
+typedef void (*LPDirSeek)(struct IPerlDir*, DIR*, long);
+typedef long (*LPDirTell)(struct IPerlDir*, DIR*);
+# ifdef WIN32
+typedef char* (*LPDirMapPathA)(struct IPerlDir*, const char*);
+typedef WCHAR* (*LPDirMapPathW)(struct IPerlDir*, const WCHAR*);
+# endif
struct IPerlDir
{
- LPMakedir pMakedir;
- LPChdir pChdir;
- LPRmdir pRmdir;
- LPDirClose pClose;
- LPDirOpen pOpen;
- LPDirRead pRead;
- LPDirRewind pRewind;
- LPDirSeek pSeek;
- LPDirTell pTell;
-#ifdef WIN32
- LPDirMapPathA pMapPathA;
- LPDirMapPathW pMapPathW;
-#endif
+ LPMakedir pMakedir;
+ LPChdir pChdir;
+ LPRmdir pRmdir;
+ LPDirClose pClose;
+ LPDirOpen pOpen;
+ LPDirRead pRead;
+ LPDirRewind pRewind;
+ LPDirSeek pSeek;
+ LPDirTell pTell;
+# ifdef WIN32
+ LPDirMapPathA pMapPathA;
+ LPDirMapPathW pMapPathW;
+# endif
};
struct IPerlDirInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlDir perlDirList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlDir perlDirList;
};
-#define PerlDir_mkdir(name, mode) \
+# define PerlDir_mkdir(name, mode) \
(*PL_Dir->pMakedir)(PL_Dir, (name), (mode))
-#define PerlDir_chdir(name) \
+# define PerlDir_chdir(name) \
(*PL_Dir->pChdir)(PL_Dir, (name))
-#define PerlDir_rmdir(name) \
+# define PerlDir_rmdir(name) \
(*PL_Dir->pRmdir)(PL_Dir, (name))
-#define PerlDir_close(dir) \
+# define PerlDir_close(dir) \
(*PL_Dir->pClose)(PL_Dir, (dir))
-#define PerlDir_open(name) \
+# define PerlDir_open(name) \
(*PL_Dir->pOpen)(PL_Dir, (name))
-#define PerlDir_read(dir) \
+# define PerlDir_read(dir) \
(*PL_Dir->pRead)(PL_Dir, (dir))
-#define PerlDir_rewind(dir) \
+# define PerlDir_rewind(dir) \
(*PL_Dir->pRewind)(PL_Dir, (dir))
-#define PerlDir_seek(dir, loc) \
+# define PerlDir_seek(dir, loc) \
(*PL_Dir->pSeek)(PL_Dir, (dir), (loc))
-#define PerlDir_tell(dir) \
+# define PerlDir_tell(dir) \
(*PL_Dir->pTell)(PL_Dir, (dir))
-#ifdef WIN32
-#define PerlDir_mapA(dir) \
+# ifdef WIN32
+# define PerlDir_mapA(dir) \
(*PL_Dir->pMapPathA)(PL_Dir, (dir))
-#define PerlDir_mapW(dir) \
+# define PerlDir_mapW(dir) \
(*PL_Dir->pMapPathW)(PL_Dir, (dir))
-#endif
+# endif
-#else /* PERL_IMPLICIT_SYS */
+# else /* ! PERL_IMPLICIT_SYS */
-#define PerlDir_mkdir(name, mode) Mkdir((name), (mode))
-#ifdef VMS
-# define PerlDir_chdir(n) Chdir((n))
-#else
-# define PerlDir_chdir(name) chdir((name))
-#endif
-#define PerlDir_rmdir(name) rmdir((name))
-#define PerlDir_close(dir) closedir((dir))
-#define PerlDir_open(name) opendir((name))
-#define PerlDir_read(dir) readdir((dir))
-#define PerlDir_rewind(dir) rewinddir((dir))
-#define PerlDir_seek(dir, loc) seekdir((dir), (loc))
-#define PerlDir_tell(dir) telldir((dir))
-#ifdef WIN32
-#define PerlDir_mapA(dir) dir
-#define PerlDir_mapW(dir) dir
-#endif
+# define PerlDir_mkdir(name, mode) Mkdir((name), (mode))
+# ifdef VMS
+# define PerlDir_chdir(n) Chdir((n))
+# else
+# define PerlDir_chdir(name) chdir((name))
+# endif
+# define PerlDir_rmdir(name) rmdir((name))
+# define PerlDir_close(dir) closedir((dir))
+# define PerlDir_open(name) opendir((name))
+# define PerlDir_read(dir) readdir((dir))
+# define PerlDir_rewind(dir) rewinddir((dir))
+# define PerlDir_seek(dir, loc) seekdir((dir), (loc))
+# define PerlDir_tell(dir) telldir((dir))
+# ifdef WIN32
+# define PerlDir_mapA(dir) dir
+# define PerlDir_mapW(dir) dir
+# endif
-#endif /* PERL_IMPLICIT_SYS */
+#endif /* PERL_IMPLICIT_SYS */
/*
Interface for perl environment functions
@@ -460,151 +457,144 @@ struct IPerlDirInfo
#if defined(PERL_IMPLICIT_SYS)
-/* IPerlEnv */
+/* IPerlEnv */
struct IPerlEnv;
struct IPerlEnvInfo;
-typedef char* (*LPEnvGetenv)(struct IPerlEnv*, const char*);
-typedef int (*LPEnvPutenv)(struct IPerlEnv*, const char*);
-typedef char* (*LPEnvGetenv_len)(struct IPerlEnv*,
+typedef char* (*LPEnvGetenv)(struct IPerlEnv*, const char*);
+typedef int (*LPEnvPutenv)(struct IPerlEnv*, const char*);
+typedef char* (*LPEnvGetenv_len)(struct IPerlEnv*,
const char *varname, unsigned long *len);
-typedef int (*LPEnvUname)(struct IPerlEnv*, struct utsname *name);
-typedef void (*LPEnvClearenv)(struct IPerlEnv*);
-typedef void* (*LPEnvGetChildenv)(struct IPerlEnv*);
-typedef void (*LPEnvFreeChildenv)(struct IPerlEnv*, void* env);
-typedef char* (*LPEnvGetChilddir)(struct IPerlEnv*);
-typedef void (*LPEnvFreeChilddir)(struct IPerlEnv*, char* dir);
-#ifdef HAS_ENVGETENV
-typedef char* (*LPENVGetenv)(struct IPerlEnv*, const char *varname);
-typedef char* (*LPENVGetenv_len)(struct IPerlEnv*,
+typedef int (*LPEnvUname)(struct IPerlEnv*, struct utsname *name);
+typedef void (*LPEnvClearenv)(struct IPerlEnv*);
+typedef void* (*LPEnvGetChildenv)(struct IPerlEnv*);
+typedef void (*LPEnvFreeChildenv)(struct IPerlEnv*, void* env);
+typedef char* (*LPEnvGetChilddir)(struct IPerlEnv*);
+typedef void (*LPEnvFreeChilddir)(struct IPerlEnv*, char* dir);
+# ifdef HAS_ENVGETENV
+typedef char* (*LPENVGetenv)(struct IPerlEnv*, const char *varname);
+typedef char* (*LPENVGetenv_len)(struct IPerlEnv*,
const char *varname, unsigned long *len);
-#endif
-#ifdef WIN32
-typedef unsigned long (*LPEnvOsID)(struct IPerlEnv*);
-typedef char* (*LPEnvLibPath)(struct IPerlEnv*, WIN32_NO_REGISTRY_M_(const char*)
+# endif
+# ifdef WIN32
+typedef unsigned long (*LPEnvOsID)(struct IPerlEnv*);
+typedef char* (*LPEnvLibPath)(struct IPerlEnv*, WIN32_NO_REGISTRY_M_(const char*)
STRLEN *const len);
-typedef char* (*LPEnvSiteLibPath)(struct IPerlEnv*, const char*,
+typedef char* (*LPEnvSiteLibPath)(struct IPerlEnv*, const char*,
STRLEN *const len);
-typedef char* (*LPEnvVendorLibPath)(struct IPerlEnv*, const char*,
+typedef char* (*LPEnvVendorLibPath)(struct IPerlEnv*, const char*,
STRLEN *const len);
-typedef void (*LPEnvGetChildIO)(struct IPerlEnv*, child_IO_table*);
-#endif
+typedef void (*LPEnvGetChildIO)(struct IPerlEnv*, child_IO_table*);
+# endif
struct IPerlEnv
{
- LPEnvGetenv pGetenv;
- LPEnvPutenv pPutenv;
- LPEnvGetenv_len pGetenv_len;
- LPEnvUname pEnvUname;
- LPEnvClearenv pClearenv;
- LPEnvGetChildenv pGetChildenv;
- LPEnvFreeChildenv pFreeChildenv;
- LPEnvGetChilddir pGetChilddir;
- LPEnvFreeChilddir pFreeChilddir;
-#ifdef HAS_ENVGETENV
- LPENVGetenv pENVGetenv;
- LPENVGetenv_len pENVGetenv_len;
-#endif
-#ifdef WIN32
- LPEnvOsID pEnvOsID;
- LPEnvLibPath pLibPath;
- LPEnvSiteLibPath pSiteLibPath;
- LPEnvVendorLibPath pVendorLibPath;
- LPEnvGetChildIO pGetChildIO;
-#endif
+ LPEnvGetenv pGetenv;
+ LPEnvPutenv pPutenv;
+ LPEnvGetenv_len pGetenv_len;
+ LPEnvUname pEnvUname;
+ LPEnvClearenv pClearenv;
+ LPEnvGetChildenv pGetChildenv;
+ LPEnvFreeChildenv pFreeChildenv;
+ LPEnvGetChilddir pGetChilddir;
+ LPEnvFreeChilddir pFreeChilddir;
+# ifdef HAS_ENVGETENV
+ LPENVGetenv pENVGetenv;
+ LPENVGetenv_len pENVGetenv_len;
+# endif
+# ifdef WIN32
+ LPEnvOsID pEnvOsID;
+ LPEnvLibPath pLibPath;
+ LPEnvSiteLibPath pSiteLibPath;
+ LPEnvVendorLibPath pVendorLibPath;
+ LPEnvGetChildIO pGetChildIO;
+# endif
};
struct IPerlEnvInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlEnv perlEnvList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlEnv perlEnvList;
};
-#define PerlEnv_putenv(str) \
+# define PerlEnv_putenv(str) \
(*PL_Env->pPutenv)(PL_Env,(str))
-#define PerlEnv_getenv(str) \
+# define PerlEnv_getenv(str) \
(*PL_Env->pGetenv)(PL_Env,(str))
-#define PerlEnv_getenv_len(str,l) \
+# define PerlEnv_getenv_len(str,l) \
(*PL_Env->pGetenv_len)(PL_Env,(str), (l))
-#define PerlEnv_clearenv() \
+# define PerlEnv_clearenv() \
(*PL_Env->pClearenv)(PL_Env)
-#define PerlEnv_get_childenv() \
+# define PerlEnv_get_childenv() \
(*PL_Env->pGetChildenv)(PL_Env)
-#define PerlEnv_free_childenv(e) \
+# define PerlEnv_free_childenv(e) \
(*PL_Env->pFreeChildenv)(PL_Env, (e))
-#define PerlEnv_get_childdir() \
+# define PerlEnv_get_childdir() \
(*PL_Env->pGetChilddir)(PL_Env)
-#define PerlEnv_free_childdir(d) \
+# define PerlEnv_free_childdir(d) \
(*PL_Env->pFreeChilddir)(PL_Env, (d))
-#ifdef HAS_ENVGETENV
-# define PerlEnv_ENVgetenv(str) \
+# ifdef HAS_ENVGETENV
+# define PerlEnv_ENVgetenv(str) \
(*PL_Env->pENVGetenv)(PL_Env,(str))
-# define PerlEnv_ENVgetenv_len(str,l) \
+# define PerlEnv_ENVgetenv_len(str,l) \
(*PL_Env->pENVGetenv_len)(PL_Env,(str), (l))
-#else
-# define PerlEnv_ENVgetenv(str) \
+# else
+# define PerlEnv_ENVgetenv(str) \
PerlEnv_getenv((str))
-# define PerlEnv_ENVgetenv_len(str,l) \
+# define PerlEnv_ENVgetenv_len(str,l) \
PerlEnv_getenv_len((str),(l))
-#endif
-#define PerlEnv_uname(name) \
+# endif
+# define PerlEnv_uname(name) \
(*PL_Env->pEnvUname)(PL_Env,(name))
-#ifdef WIN32
-#define PerlEnv_os_id() \
+# ifdef WIN32
+# define PerlEnv_os_id() \
(*PL_Env->pEnvOsID)(PL_Env)
-#define PerlEnv_lib_path(str, lenp) \
+# define PerlEnv_lib_path(str, lenp) \
(*PL_Env->pLibPath)(PL_Env,WIN32_NO_REGISTRY_M_(str)(lenp))
-#define PerlEnv_sitelib_path(str, lenp) \
+# define PerlEnv_sitelib_path(str, lenp) \
(*PL_Env->pSiteLibPath)(PL_Env,(str),(lenp))
-#define PerlEnv_vendorlib_path(str, lenp) \
+# define PerlEnv_vendorlib_path(str, lenp) \
(*PL_Env->pVendorLibPath)(PL_Env,(str),(lenp))
-#define PerlEnv_get_child_IO(ptr) \
+# define PerlEnv_get_child_IO(ptr) \
(*PL_Env->pGetChildIO)(PL_Env, ptr)
-#endif
-
-#else /* below is ! PERL_IMPLICIT_SYS */
-# ifdef USE_ITHREADS
+# endif
- /* Use the comma operator to return 0/non-zero, while avoiding putting
- * this in an inline function */
-# define PerlEnv_putenv(str) (ENV_LOCK, (putenv(str) \
- ? (ENV_UNLOCK, 1) \
- : (ENV_UNLOCK, 0)))
+#else /* below is ! PERL_IMPLICIT_SYS */
+# ifndef USE_ITHREADS /* Threaded is an inline function in inline.h */
+# define PerlEnv_putenv(str) putenv(str)
+# endif
+# define PerlEnv_getenv(str) mortal_getenv(str)
+# define PerlEnv_getenv_len(str,l) getenv_len((str), (l))
+# ifdef HAS_ENVGETENV
+# define PerlEnv_ENVgetenv(str) ENVgetenv((str))
+# define PerlEnv_ENVgetenv_len(str,l) ENVgetenv_len((str), (l))
# else
-# define PerlEnv_putenv(str) putenv(str)
+# define PerlEnv_ENVgetenv(str) PerlEnv_getenv((str))
+# define PerlEnv_ENVgetenv_len(str,l) PerlEnv_getenv_len((str), (l))
# endif
-#define PerlEnv_getenv(str) mortal_getenv(str)
-#define PerlEnv_getenv_len(str,l) getenv_len((str), (l))
-#ifdef HAS_ENVGETENV
-# define PerlEnv_ENVgetenv(str) ENVgetenv((str))
-# define PerlEnv_ENVgetenv_len(str,l) ENVgetenv_len((str), (l))
-#else
-# define PerlEnv_ENVgetenv(str) PerlEnv_getenv((str))
-# define PerlEnv_ENVgetenv_len(str,l) PerlEnv_getenv_len((str), (l))
-#endif
-#define PerlEnv_uname(name) uname((name))
-
-#ifdef WIN32
-#define PerlEnv_os_id() win32_os_id()
-#define PerlEnv_lib_path(str, lenp) win32_get_privlib(WIN32_NO_REGISTRY_M_(str) lenp)
-#define PerlEnv_sitelib_path(str, lenp) win32_get_sitelib(str, lenp)
-#define PerlEnv_vendorlib_path(str, lenp) win32_get_vendorlib(str, lenp)
-#define PerlEnv_get_child_IO(ptr) win32_get_child_IO(ptr)
-#define PerlEnv_clearenv() win32_clearenv()
-#define PerlEnv_get_childenv() win32_get_childenv()
-#define PerlEnv_free_childenv(e) win32_free_childenv((e))
-#define PerlEnv_get_childdir() win32_get_childdir()
-#define PerlEnv_free_childdir(d) win32_free_childdir((d))
-#else
-#define PerlEnv_clearenv(str) (ENV_LOCK, (clearenv(str) \
+# define PerlEnv_uname(name) uname((name))
+
+# ifdef WIN32
+# define PerlEnv_os_id() win32_os_id()
+# define PerlEnv_lib_path(str, lenp) win32_get_privlib(WIN32_NO_REGISTRY_M_(str) lenp)
+# define PerlEnv_sitelib_path(str, lenp) win32_get_sitelib(str, lenp)
+# define PerlEnv_vendorlib_path(str, lenp) win32_get_vendorlib(str, lenp)
+# define PerlEnv_get_child_IO(ptr) win32_get_child_IO(ptr)
+# define PerlEnv_clearenv() win32_clearenv()
+# define PerlEnv_get_childenv() win32_get_childenv()
+# define PerlEnv_free_childenv(e) win32_free_childenv((e))
+# define PerlEnv_get_childdir() win32_get_childdir()
+# define PerlEnv_free_childdir(d) win32_free_childdir((d))
+# else
+# define PerlEnv_clearenv(str) (ENV_LOCK, (clearenv(str) \
? (ENV_UNLOCK, 1) \
: (ENV_UNLOCK, 0)))
-#define PerlEnv_get_childenv() get_childenv()
-#define PerlEnv_free_childenv(e) free_childenv((e))
-#define PerlEnv_get_childdir() get_childdir()
-#define PerlEnv_free_childdir(d) free_childdir((d))
-#endif
+# define PerlEnv_get_childenv() get_childenv()
+# define PerlEnv_free_childenv(e) free_childenv((e))
+# define PerlEnv_get_childdir() get_childdir()
+# define PerlEnv_free_childdir(d) free_childdir((d))
+# endif
-#endif /* PERL_IMPLICIT_SYS */
+#endif /* PERL_IMPLICIT_SYS */
/*
Interface for perl low-level IO functions
@@ -614,188 +604,197 @@ struct IPerlEnvInfo
struct utimbuf; /* prevent gcc warning about the use below */
-/* IPerlLIO */
+/* IPerlLIO */
struct IPerlLIO;
struct IPerlLIOInfo;
-typedef int (*LPLIOAccess)(struct IPerlLIO*, const char*, int);
-typedef int (*LPLIOChmod)(struct IPerlLIO*, const char*, int);
-typedef int (*LPLIOChown)(struct IPerlLIO*, const char*, uid_t,
+typedef int (*LPLIOAccess)(struct IPerlLIO*, const char*, int);
+typedef int (*LPLIOChmod)(struct IPerlLIO*, const char*, int);
+typedef int (*LPLIOChown)(struct IPerlLIO*, const char*, uid_t,
gid_t);
-typedef int (*LPLIOChsize)(struct IPerlLIO*, int, Off_t);
-typedef int (*LPLIOClose)(struct IPerlLIO*, int);
-typedef int (*LPLIODup)(struct IPerlLIO*, int);
-typedef int (*LPLIODup2)(struct IPerlLIO*, int, int);
-typedef int (*LPLIOFlock)(struct IPerlLIO*, int, int);
-typedef int (*LPLIOFileStat)(struct IPerlLIO*, int, Stat_t*);
-typedef int (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int,
+typedef int (*LPLIOChsize)(struct IPerlLIO*, int, Off_t);
+typedef int (*LPLIOClose)(struct IPerlLIO*, int);
+typedef int (*LPLIODup)(struct IPerlLIO*, int);
+typedef int (*LPLIODup2)(struct IPerlLIO*, int, int);
+typedef int (*LPLIOFlock)(struct IPerlLIO*, int, int);
+typedef int (*LPLIOFileStat)(struct IPerlLIO*, int, Stat_t*);
+typedef int (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int,
char*);
-typedef int (*LPLIOIsatty)(struct IPerlLIO*, int);
-typedef int (*LPLIOLink)(struct IPerlLIO*, const char*,
+typedef int (*LPLIOIsatty)(struct IPerlLIO*, int);
+typedef int (*LPLIOLink)(struct IPerlLIO*, const char*,
const char *);
-typedef Off_t (*LPLIOLseek)(struct IPerlLIO*, int, Off_t, int);
-typedef int (*LPLIOLstat)(struct IPerlLIO*, const char*,
+typedef Off_t (*LPLIOLseek)(struct IPerlLIO*, int, Off_t, int);
+typedef int (*LPLIOLstat)(struct IPerlLIO*, const char*,
Stat_t*);
-typedef char* (*LPLIOMktemp)(struct IPerlLIO*, char*);
-typedef int (*LPLIOOpen)(struct IPerlLIO*, const char*, int);
-typedef int (*LPLIOOpen3)(struct IPerlLIO*, const char*, int, int);
-typedef int (*LPLIORead)(struct IPerlLIO*, int, void*, unsigned int);
-typedef int (*LPLIORename)(struct IPerlLIO*, const char*,
+typedef char* (*LPLIOMktemp)(struct IPerlLIO*, char*);
+typedef int (*LPLIOOpen)(struct IPerlLIO*, const char*, int);
+typedef int (*LPLIOOpen3)(struct IPerlLIO*, const char*, int, int);
+typedef int (*LPLIORead)(struct IPerlLIO*, int, void*, unsigned int);
+typedef int (*LPLIORename)(struct IPerlLIO*, const char*,
const char*);
-#ifdef NETWARE
-typedef int (*LPLIOSetmode)(struct IPerlLIO*, FILE*, int);
-#else
-typedef int (*LPLIOSetmode)(struct IPerlLIO*, int, int);
-#endif /* NETWARE */
-typedef int (*LPLIONameStat)(struct IPerlLIO*, const char*,
+typedef int (*LPLIOSetmode)(struct IPerlLIO*, int, int);
+typedef int (*LPLIONameStat)(struct IPerlLIO*, const char*,
Stat_t*);
-typedef char* (*LPLIOTmpnam)(struct IPerlLIO*, char*);
-typedef int (*LPLIOUmask)(struct IPerlLIO*, int);
-typedef int (*LPLIOUnlink)(struct IPerlLIO*, const char*);
-typedef int (*LPLIOUtime)(struct IPerlLIO*, const char*, struct utimbuf*);
-typedef int (*LPLIOWrite)(struct IPerlLIO*, int, const void*,
+typedef char* (*LPLIOTmpnam)(struct IPerlLIO*, char*);
+typedef int (*LPLIOUmask)(struct IPerlLIO*, int);
+typedef int (*LPLIOUnlink)(struct IPerlLIO*, const char*);
+typedef int (*LPLIOUtime)(struct IPerlLIO*, const char*, struct utimbuf*);
+typedef int (*LPLIOWrite)(struct IPerlLIO*, int, const void*,
unsigned int);
-typedef int (*LPLIOSymLink)(struct IPerlLIO*, const char*,
+typedef int (*LPLIOSymLink)(struct IPerlLIO*, const char*,
const char *);
-typedef int (*LPLIOReadLink)(struct IPerlLIO*, const char*,
+typedef int (*LPLIOReadLink)(struct IPerlLIO*, const char*,
char *, size_t);
struct IPerlLIO
{
- LPLIOAccess pAccess;
- LPLIOChmod pChmod;
- LPLIOChown pChown;
- LPLIOChsize pChsize;
- LPLIOClose pClose;
- LPLIODup pDup;
- LPLIODup2 pDup2;
- LPLIOFlock pFlock;
- LPLIOFileStat pFileStat;
- LPLIOIOCtl pIOCtl;
- LPLIOIsatty pIsatty;
- LPLIOLink pLink;
- LPLIOLseek pLseek;
- LPLIOLstat pLstat;
- LPLIOMktemp pMktemp;
- LPLIOOpen pOpen;
- LPLIOOpen3 pOpen3;
- LPLIORead pRead;
- LPLIORename pRename;
- LPLIOSetmode pSetmode;
- LPLIONameStat pNameStat;
- LPLIOTmpnam pTmpnam;
- LPLIOUmask pUmask;
- LPLIOUnlink pUnlink;
- LPLIOUtime pUtime;
- LPLIOWrite pWrite;
+ LPLIOAccess pAccess;
+ LPLIOChmod pChmod;
+ LPLIOChown pChown;
+ LPLIOChsize pChsize;
+ LPLIOClose pClose;
+ LPLIODup pDup;
+ LPLIODup2 pDup2;
+ LPLIOFlock pFlock;
+ LPLIOFileStat pFileStat;
+ LPLIOIOCtl pIOCtl;
+ LPLIOIsatty pIsatty;
+ LPLIOLink pLink;
+ LPLIOLseek pLseek;
+ LPLIOLstat pLstat;
+ LPLIOMktemp pMktemp;
+ LPLIOOpen pOpen;
+ LPLIOOpen3 pOpen3;
+ LPLIORead pRead;
+ LPLIORename pRename;
+ LPLIOSetmode pSetmode;
+ LPLIONameStat pNameStat;
+ LPLIOTmpnam pTmpnam;
+ LPLIOUmask pUmask;
+ LPLIOUnlink pUnlink;
+ LPLIOUtime pUtime;
+ LPLIOWrite pWrite;
LPLIOSymLink pSymLink;
LPLIOReadLink pReadLink;
};
struct IPerlLIOInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlLIO perlLIOList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlLIO perlLIOList;
};
-#define PerlLIO_access(file, mode) \
+# define PerlLIO_access(file, mode) \
(*PL_LIO->pAccess)(PL_LIO, (file), (mode))
-#define PerlLIO_chmod(file, mode) \
+# define PerlLIO_chmod(file, mode) \
(*PL_LIO->pChmod)(PL_LIO, (file), (mode))
-#define PerlLIO_chown(file, owner, group) \
+# define PerlLIO_chown(file, owner, group) \
(*PL_LIO->pChown)(PL_LIO, (file), (owner), (group))
-#define PerlLIO_chsize(fd, size) \
+# define PerlLIO_chsize(fd, size) \
(*PL_LIO->pChsize)(PL_LIO, (fd), (size))
-#define PerlLIO_close(fd) \
+# define PerlLIO_close(fd) \
(*PL_LIO->pClose)(PL_LIO, (fd))
-#define PerlLIO_dup(fd) \
+# define PerlLIO_dup(fd) \
(*PL_LIO->pDup)(PL_LIO, (fd))
-#define PerlLIO_dup2(fd1, fd2) \
+# define PerlLIO_dup2(fd1, fd2) \
(*PL_LIO->pDup2)(PL_LIO, (fd1), (fd2))
-#define PerlLIO_flock(fd, op) \
+# define PerlLIO_flock(fd, op) \
(*PL_LIO->pFlock)(PL_LIO, (fd), (op))
-#define PerlLIO_fstat(fd, buf) \
+# define PerlLIO_fstat(fd, buf) \
(*PL_LIO->pFileStat)(PL_LIO, (fd), (buf))
-#define PerlLIO_ioctl(fd, u, buf) \
+# define PerlLIO_ioctl(fd, u, buf) \
(*PL_LIO->pIOCtl)(PL_LIO, (fd), (u), (buf))
-#define PerlLIO_isatty(fd) \
+# define PerlLIO_isatty(fd) \
(*PL_LIO->pIsatty)(PL_LIO, (fd))
-#define PerlLIO_link(oldname, newname) \
+# define PerlLIO_link(oldname, newname) \
(*PL_LIO->pLink)(PL_LIO, (oldname), (newname))
-#define PerlLIO_symlink(oldname, newname) \
+# define PerlLIO_symlink(oldname, newname) \
(*PL_LIO->pSymLink)(PL_LIO, (oldname), (newname))
-#define PerlLIO_readlink(path, buf, bufsiz) \
+# define PerlLIO_readlink(path, buf, bufsiz) \
(*PL_LIO->pReadLink)(PL_LIO, (path), (buf), (bufsiz))
-#define PerlLIO_lseek(fd, offset, mode) \
+# define PerlLIO_lseek(fd, offset, mode) \
(*PL_LIO->pLseek)(PL_LIO, (fd), (offset), (mode))
-#define PerlLIO_lstat(name, buf) \
+# define PerlLIO_lstat(name, buf) \
(*PL_LIO->pLstat)(PL_LIO, (name), (buf))
-#define PerlLIO_mktemp(file) \
+# define PerlLIO_mktemp(file) \
(*PL_LIO->pMktemp)(PL_LIO, (file))
-#define PerlLIO_open(file, flag) \
+# define PerlLIO_open(file, flag) \
(*PL_LIO->pOpen)(PL_LIO, (file), (flag))
-#define PerlLIO_open3(file, flag, perm) \
+# define PerlLIO_open3(file, flag, perm) \
(*PL_LIO->pOpen3)(PL_LIO, (file), (flag), (perm))
-#define PerlLIO_read(fd, buf, count) \
+# define PerlLIO_read(fd, buf, count) \
(*PL_LIO->pRead)(PL_LIO, (fd), (buf), (count))
-#define PerlLIO_rename(oname, newname) \
+# define PerlLIO_rename(oname, newname) \
(*PL_LIO->pRename)(PL_LIO, (oname), (newname))
-#define PerlLIO_setmode(fd, mode) \
+# define PerlLIO_setmode(fd, mode) \
(*PL_LIO->pSetmode)(PL_LIO, (fd), (mode))
-#define PerlLIO_stat(name, buf) \
+# define PerlLIO_stat(name, buf) \
(*PL_LIO->pNameStat)(PL_LIO, (name), (buf))
-#define PerlLIO_tmpnam(str) \
+# define PerlLIO_tmpnam(str) \
(*PL_LIO->pTmpnam)(PL_LIO, (str))
-#define PerlLIO_umask(mode) \
+# define PerlLIO_umask(mode) \
(*PL_LIO->pUmask)(PL_LIO, (mode))
-#define PerlLIO_unlink(file) \
+# define PerlLIO_unlink(file) \
(*PL_LIO->pUnlink)(PL_LIO, (file))
-#define PerlLIO_utime(file, time) \
+# define PerlLIO_utime(file, time) \
(*PL_LIO->pUtime)(PL_LIO, (file), (time))
-#define PerlLIO_write(fd, buf, count) \
+# define PerlLIO_write(fd, buf, count) \
(*PL_LIO->pWrite)(PL_LIO, (fd), (buf), (count))
-#else /* PERL_IMPLICIT_SYS */
-
-#define PerlLIO_access(file, mode) access((file), (mode))
-#define PerlLIO_chmod(file, mode) chmod((file), (mode))
-#define PerlLIO_chown(file, owner, grp) chown((file), (owner), (grp))
-#if defined(HAS_TRUNCATE)
-# define PerlLIO_chsize(fd, size) ftruncate((fd), (size))
-#elif defined(HAS_CHSIZE)
-# define PerlLIO_chsize(fd, size) chsize((fd), (size))
-#else
-# define PerlLIO_chsize(fd, size) my_chsize((fd), (size))
-#endif
-#define PerlLIO_close(fd) close((fd))
-#define PerlLIO_dup(fd) dup((fd))
-#define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2))
-#define PerlLIO_flock(fd, op) FLOCK((fd), (op))
-#define PerlLIO_fstat(fd, buf) Fstat((fd), (buf))
-#define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf))
-#define PerlLIO_isatty(fd) isatty((fd))
-#define PerlLIO_link(oldname, newname) link((oldname), (newname))
-#define PerlLIO_symlink(oldname, newname) symlink((oldname), (newname))
-#define PerlLIO_readlink(path, buf, bufsiz) readlink((path), (buf), (bufsiz))
-#define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
-#define PerlLIO_stat(name, buf) Stat((name), (buf))
-#ifdef HAS_LSTAT
-# define PerlLIO_lstat(name, buf) lstat((name), (buf))
-#else
-# define PerlLIO_lstat(name, buf) PerlLIO_stat((name), (buf))
-#endif
-#define PerlLIO_mktemp(file) mktemp((file))
-#define PerlLIO_open(file, flag) open((file), (flag))
-#define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
-#define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
-#define PerlLIO_rename(old, new) rename((old), (new))
-#define PerlLIO_setmode(fd, mode) setmode((fd), (mode))
-#define PerlLIO_tmpnam(str) tmpnam((str))
-#define PerlLIO_umask(mode) umask((mode))
-#define PerlLIO_unlink(file) unlink((file))
-#define PerlLIO_utime(file, time) utime((file), (time))
-#define PerlLIO_write(fd, buf, count) write((fd), (buf), (count))
-
-#endif /* PERL_IMPLICIT_SYS */
+#else /* ! PERL_IMPLICIT_SYS */
+
+# define PerlLIO_access(file, mode) access((file), (mode))
+# define PerlLIO_chmod(file, mode) chmod((file), (mode))
+# define PerlLIO_chown(file, owner, grp) chown((file), (owner), (grp))
+# if defined(HAS_TRUNCATE)
+# define PerlLIO_chsize(fd, size) ftruncate((fd), (size))
+# elif defined(HAS_CHSIZE)
+# define PerlLIO_chsize(fd, size) chsize((fd), (size))
+# else
+# define PerlLIO_chsize(fd, size) my_chsize((fd), (size))
+# endif
+# define PerlLIO_close(fd) close((fd))
+# define PerlLIO_dup(fd) dup((fd))
+# define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2))
+# define PerlLIO_flock(fd, op) FLOCK((fd), (op))
+# define PerlLIO_fstat(fd, buf) Fstat((fd), (buf))
+# define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf))
+# define PerlLIO_isatty(fd) isatty((fd))
+# define PerlLIO_link(oldname, newname) link((oldname), (newname))
+# define PerlLIO_symlink(oldname, newname) symlink((oldname), (newname))
+# define PerlLIO_readlink(path, buf, bufsiz) readlink((path), (buf), (bufsiz))
+# define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
+# define PerlLIO_stat(name, buf) Stat((name), (buf))
+# ifdef HAS_LSTAT
+# define PerlLIO_lstat(name, buf) lstat((name), (buf))
+# else
+# define PerlLIO_lstat(name, buf) PerlLIO_stat((name), (buf))
+# endif
+# define PerlLIO_mktemp(file) mktemp((file))
+# if defined(OEMVS)
+# if (__CHARSET_LIB == 1)
+ int asciiopen(const char* path, int oflag);
+ int asciiopen3(const char* path, int oflag, int perm);
+
+# define PerlLIO_open(file, flag) asciiopen((file), (flag))
+# define PerlLIO_open3(file, flag, perm) asciiopen3((file), (flag), (perm))
+# else
+# define PerlLIO_open(file, flag) open((file), (flag))
+# define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
+# endif
+# else
+# define PerlLIO_open(file, flag) open((file), (flag))
+# define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
+# endif
+# define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
+# define PerlLIO_rename(old, new) rename((old), (new))
+# define PerlLIO_setmode(fd, mode) setmode((fd), (mode))
+# define PerlLIO_tmpnam(str) tmpnam((str))
+# define PerlLIO_umask(mode) umask((mode))
+# define PerlLIO_unlink(file) unlink((file))
+# define PerlLIO_utime(file, time) utime((file), (time))
+# define PerlLIO_write(fd, buf, count) write((fd), (buf), (count))
+
+#endif /* PERL_IMPLICIT_SYS */
/*
Interface for perl memory allocation
@@ -803,134 +802,113 @@ struct IPerlLIOInfo
#if defined(PERL_IMPLICIT_SYS)
-/* IPerlMem */
+/* IPerlMem */
struct IPerlMem;
struct IPerlMemInfo;
-typedef void* (*LPMemMalloc)(struct IPerlMem*, size_t);
-typedef void* (*LPMemRealloc)(struct IPerlMem*, void*, size_t);
-typedef void (*LPMemFree)(struct IPerlMem*, void*);
-typedef void* (*LPMemCalloc)(struct IPerlMem*, size_t, size_t);
-typedef void (*LPMemGetLock)(struct IPerlMem*);
-typedef void (*LPMemFreeLock)(struct IPerlMem*);
-typedef int (*LPMemIsLocked)(struct IPerlMem*);
+typedef void* (*LPMemMalloc)(struct IPerlMem*, size_t);
+typedef void* (*LPMemRealloc)(struct IPerlMem*, void*, size_t);
+typedef void (*LPMemFree)(struct IPerlMem*, void*);
+typedef void* (*LPMemCalloc)(struct IPerlMem*, size_t, size_t);
+typedef void (*LPMemGetLock)(struct IPerlMem*);
+typedef void (*LPMemFreeLock)(struct IPerlMem*);
+typedef int (*LPMemIsLocked)(struct IPerlMem*);
struct IPerlMem
{
- LPMemMalloc pMalloc;
- LPMemRealloc pRealloc;
- LPMemFree pFree;
- LPMemCalloc pCalloc;
- LPMemGetLock pGetLock;
- LPMemFreeLock pFreeLock;
- LPMemIsLocked pIsLocked;
+ LPMemMalloc pMalloc;
+ LPMemRealloc pRealloc;
+ LPMemFree pFree;
+ LPMemCalloc pCalloc;
+ LPMemGetLock pGetLock;
+ LPMemFreeLock pFreeLock;
+ LPMemIsLocked pIsLocked;
};
struct IPerlMemInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlMem perlMemList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlMem perlMemList;
};
/* Interpreter specific memory macros */
-#define PerlMem_malloc(size) \
+# define PerlMem_malloc(size) \
(*PL_Mem->pMalloc)(PL_Mem, (size))
-#define PerlMem_realloc(buf, size) \
+# define PerlMem_realloc(buf, size) \
(*PL_Mem->pRealloc)(PL_Mem, (buf), (size))
-#define PerlMem_free(buf) \
+# define PerlMem_free(buf) \
(*PL_Mem->pFree)(PL_Mem, (buf))
-#define PerlMem_calloc(num, size) \
+# define PerlMem_calloc(num, size) \
(*PL_Mem->pCalloc)(PL_Mem, (num), (size))
-#define PerlMem_get_lock() \
+# define PerlMem_get_lock() \
(*PL_Mem->pGetLock)(PL_Mem)
-#define PerlMem_free_lock() \
+# define PerlMem_free_lock() \
(*PL_Mem->pFreeLock)(PL_Mem)
-#define PerlMem_is_locked() \
+# define PerlMem_is_locked() \
(*PL_Mem->pIsLocked)(PL_Mem)
/* Shared memory macros */
-#ifdef NETWARE
-
-#define PerlMemShared_malloc(size) \
- (*PL_Mem->pMalloc)(PL_Mem, (size))
-#define PerlMemShared_realloc(buf, size) \
- (*PL_Mem->pRealloc)(PL_Mem, (buf), (size))
-#define PerlMemShared_free(buf) \
- (*PL_Mem->pFree)(PL_Mem, (buf))
-#define PerlMemShared_calloc(num, size) \
- (*PL_Mem->pCalloc)(PL_Mem, (num), (size))
-#define PerlMemShared_get_lock() \
- (*PL_Mem->pGetLock)(PL_Mem)
-#define PerlMemShared_free_lock() \
- (*PL_Mem->pFreeLock)(PL_Mem)
-#define PerlMemShared_is_locked() \
- (*PL_Mem->pIsLocked)(PL_Mem)
-
-#else
-
-#define PerlMemShared_malloc(size) \
+# define PerlMemShared_malloc(size) \
(*PL_MemShared->pMalloc)(PL_MemShared, (size))
-#define PerlMemShared_realloc(buf, size) \
+# define PerlMemShared_realloc(buf, size) \
(*PL_MemShared->pRealloc)(PL_MemShared, (buf), (size))
-#define PerlMemShared_free(buf) \
+# define PerlMemShared_free(buf) \
(*PL_MemShared->pFree)(PL_MemShared, (buf))
-#define PerlMemShared_calloc(num, size) \
+# define PerlMemShared_calloc(num, size) \
(*PL_MemShared->pCalloc)(PL_MemShared, (num), (size))
-#define PerlMemShared_get_lock() \
+# define PerlMemShared_get_lock() \
(*PL_MemShared->pGetLock)(PL_MemShared)
-#define PerlMemShared_free_lock() \
+# define PerlMemShared_free_lock() \
(*PL_MemShared->pFreeLock)(PL_MemShared)
-#define PerlMemShared_is_locked() \
+# define PerlMemShared_is_locked() \
(*PL_MemShared->pIsLocked)(PL_MemShared)
-#endif
-
/* Parse tree memory macros */
-#define PerlMemParse_malloc(size) \
+# define PerlMemParse_malloc(size) \
(*PL_MemParse->pMalloc)(PL_MemParse, (size))
-#define PerlMemParse_realloc(buf, size) \
+# define PerlMemParse_realloc(buf, size) \
(*PL_MemParse->pRealloc)(PL_MemParse, (buf), (size))
-#define PerlMemParse_free(buf) \
+# define PerlMemParse_free(buf) \
(*PL_MemParse->pFree)(PL_MemParse, (buf))
-#define PerlMemParse_calloc(num, size) \
+# define PerlMemParse_calloc(num, size) \
(*PL_MemParse->pCalloc)(PL_MemParse, (num), (size))
-#define PerlMemParse_get_lock() \
+# define PerlMemParse_get_lock() \
(*PL_MemParse->pGetLock)(PL_MemParse)
-#define PerlMemParse_free_lock() \
+# define PerlMemParse_free_lock() \
(*PL_MemParse->pFreeLock)(PL_MemParse)
-#define PerlMemParse_is_locked() \
+# define PerlMemParse_is_locked() \
(*PL_MemParse->pIsLocked)(PL_MemParse)
-#else /* PERL_IMPLICIT_SYS */
+#else /* ! PERL_IMPLICIT_SYS */
/* Interpreter specific memory macros */
-#define PerlMem_malloc(size) malloc((size))
-#define PerlMem_realloc(buf, size) realloc((buf), (size))
-#define PerlMem_free(buf) free((buf))
-#define PerlMem_calloc(num, size) calloc((num), (size))
-#define PerlMem_get_lock()
-#define PerlMem_free_lock()
-#define PerlMem_is_locked() 0
+# define PerlMem_malloc(size) malloc((size))
+# define PerlMem_realloc(buf, size) realloc((buf), (size))
+# define PerlMem_free(buf) free((buf))
+# define PerlMem_calloc(num, size) calloc((num), (size))
+# define PerlMem_get_lock()
+# define PerlMem_free_lock()
+# define PerlMem_is_locked() 0
/* Shared memory macros */
-#define PerlMemShared_malloc(size) malloc((size))
-#define PerlMemShared_realloc(buf, size) realloc((buf), (size))
-#define PerlMemShared_free(buf) free((buf))
-#define PerlMemShared_calloc(num, size) calloc((num), (size))
-#define PerlMemShared_get_lock()
-#define PerlMemShared_free_lock()
-#define PerlMemShared_is_locked() 0
+# define PerlMemShared_malloc(size) malloc((size))
+# define PerlMemShared_realloc(buf, size) realloc((buf), (size))
+# define PerlMemShared_free(buf) free((buf))
+# define PerlMemShared_calloc(num, size) calloc((num), (size))
+# define PerlMemShared_get_lock()
+# define PerlMemShared_free_lock()
+# define PerlMemShared_is_locked() 0
/* Parse tree memory macros */
-#define PerlMemParse_malloc(size) malloc((size))
-#define PerlMemParse_realloc(buf, size) realloc((buf), (size))
-#define PerlMemParse_free(buf) free((buf))
-#define PerlMemParse_calloc(num, size) calloc((num), (size))
-#define PerlMemParse_get_lock()
-#define PerlMemParse_free_lock()
-#define PerlMemParse_is_locked() 0
+# define PerlMemParse_malloc(size) malloc((size))
+# define PerlMemParse_realloc(buf, size) realloc((buf), (size))
+# define PerlMemParse_free(buf) free((buf))
+# define PerlMemParse_calloc(num, size) calloc((num), (size))
+# define PerlMemParse_get_lock()
+# define PerlMemParse_free_lock()
+# define PerlMemParse_is_locked() 0
-#endif /* PERL_IMPLICIT_SYS */
+#endif /* PERL_IMPLICIT_SYS */
/*
Interface for perl process functions
@@ -939,224 +917,224 @@ struct IPerlMemInfo
#if defined(PERL_IMPLICIT_SYS)
-#ifndef jmp_buf
-#include <setjmp.h>
-#endif
+# ifndef jmp_buf
+# include <setjmp.h>
+# endif
-/* IPerlProc */
+/* IPerlProc */
struct IPerlProc;
struct IPerlProcInfo;
-typedef void (*LPProcAbort)(struct IPerlProc*);
-typedef char* (*LPProcCrypt)(struct IPerlProc*, const char*,
+typedef void (*LPProcAbort)(struct IPerlProc*);
+typedef char* (*LPProcCrypt)(struct IPerlProc*, const char*,
const char*);
-typedef void (*LPProcExit)(struct IPerlProc*, int)
+typedef void (*LPProcExit)(struct IPerlProc*, int)
__attribute__noreturn__;
-typedef void (*LPProc_Exit)(struct IPerlProc*, int)
+typedef void (*LPProc_Exit)(struct IPerlProc*, int)
__attribute__noreturn__;
-typedef int (*LPProcExecl)(struct IPerlProc*, const char*,
+typedef int (*LPProcExecl)(struct IPerlProc*, const char*,
const char*, const char*, const char*,
const char*);
-typedef int (*LPProcExecv)(struct IPerlProc*, const char*,
+typedef int (*LPProcExecv)(struct IPerlProc*, const char*,
const char*const*);
-typedef int (*LPProcExecvp)(struct IPerlProc*, const char*,
+typedef int (*LPProcExecvp)(struct IPerlProc*, const char*,
const char*const*);
-typedef Uid_t (*LPProcGetuid)(struct IPerlProc*);
-typedef Uid_t (*LPProcGeteuid)(struct IPerlProc*);
-typedef Gid_t (*LPProcGetgid)(struct IPerlProc*);
-typedef Gid_t (*LPProcGetegid)(struct IPerlProc*);
-typedef char* (*LPProcGetlogin)(struct IPerlProc*);
-typedef int (*LPProcKill)(struct IPerlProc*, int, int);
-typedef int (*LPProcKillpg)(struct IPerlProc*, int, int);
-typedef int (*LPProcPauseProc)(struct IPerlProc*);
-typedef PerlIO* (*LPProcPopen)(struct IPerlProc*, const char*,
+typedef Uid_t (*LPProcGetuid)(struct IPerlProc*);
+typedef Uid_t (*LPProcGeteuid)(struct IPerlProc*);
+typedef Gid_t (*LPProcGetgid)(struct IPerlProc*);
+typedef Gid_t (*LPProcGetegid)(struct IPerlProc*);
+typedef char* (*LPProcGetlogin)(struct IPerlProc*);
+typedef int (*LPProcKill)(struct IPerlProc*, int, int);
+typedef int (*LPProcKillpg)(struct IPerlProc*, int, int);
+typedef int (*LPProcPauseProc)(struct IPerlProc*);
+typedef PerlIO* (*LPProcPopen)(struct IPerlProc*, const char*,
const char*);
-typedef PerlIO* (*LPProcPopenList)(struct IPerlProc*, const char*,
+typedef PerlIO* (*LPProcPopenList)(struct IPerlProc*, const char*,
IV narg, SV **args);
-typedef int (*LPProcPclose)(struct IPerlProc*, PerlIO*);
-typedef int (*LPProcPipe)(struct IPerlProc*, int*);
-typedef int (*LPProcSetuid)(struct IPerlProc*, uid_t);
-typedef int (*LPProcSetgid)(struct IPerlProc*, gid_t);
-typedef int (*LPProcSleep)(struct IPerlProc*, unsigned int);
-typedef int (*LPProcTimes)(struct IPerlProc*, struct tms*);
-typedef int (*LPProcWait)(struct IPerlProc*, int*);
-typedef int (*LPProcWaitpid)(struct IPerlProc*, int, int*, int);
-typedef Sighandler_t (*LPProcSignal)(struct IPerlProc*, int, Sighandler_t);
-typedef int (*LPProcFork)(struct IPerlProc*);
-typedef int (*LPProcGetpid)(struct IPerlProc*);
-#ifdef WIN32
-typedef void* (*LPProcDynaLoader)(struct IPerlProc*, const char*);
-typedef void (*LPProcGetOSError)(struct IPerlProc*,
+typedef int (*LPProcPclose)(struct IPerlProc*, PerlIO*);
+typedef int (*LPProcPipe)(struct IPerlProc*, int*);
+typedef int (*LPProcSetuid)(struct IPerlProc*, uid_t);
+typedef int (*LPProcSetgid)(struct IPerlProc*, gid_t);
+typedef int (*LPProcSleep)(struct IPerlProc*, unsigned int);
+typedef int (*LPProcTimes)(struct IPerlProc*, struct tms*);
+typedef int (*LPProcWait)(struct IPerlProc*, int*);
+typedef int (*LPProcWaitpid)(struct IPerlProc*, int, int*, int);
+typedef Sighandler_t (*LPProcSignal)(struct IPerlProc*, int, Sighandler_t);
+typedef int (*LPProcFork)(struct IPerlProc*);
+typedef int (*LPProcGetpid)(struct IPerlProc*);
+# ifdef WIN32
+typedef void* (*LPProcDynaLoader)(struct IPerlProc*, const char*);
+typedef void (*LPProcGetOSError)(struct IPerlProc*,
SV* sv, DWORD dwErr);
-typedef int (*LPProcSpawnvp)(struct IPerlProc*, int, const char*,
+typedef int (*LPProcSpawnvp)(struct IPerlProc*, int, const char*,
const char*const*);
-#endif
-typedef int (*LPProcLastHost)(struct IPerlProc*);
-typedef int (*LPProcGetTimeOfDay)(struct IPerlProc*,
+# endif
+typedef int (*LPProcLastHost)(struct IPerlProc*);
+typedef int (*LPProcGetTimeOfDay)(struct IPerlProc*,
struct timeval*, void*);
struct IPerlProc
{
- LPProcAbort pAbort;
- LPProcCrypt pCrypt;
- LPProcExit pExit;
- LPProc_Exit p_Exit;
- LPProcExecl pExecl;
- LPProcExecv pExecv;
- LPProcExecvp pExecvp;
- LPProcGetuid pGetuid;
- LPProcGeteuid pGeteuid;
- LPProcGetgid pGetgid;
- LPProcGetegid pGetegid;
- LPProcGetlogin pGetlogin;
- LPProcKill pKill;
- LPProcKillpg pKillpg;
- LPProcPauseProc pPauseProc;
- LPProcPopen pPopen;
- LPProcPclose pPclose;
- LPProcPipe pPipe;
- LPProcSetuid pSetuid;
- LPProcSetgid pSetgid;
- LPProcSleep pSleep;
- LPProcTimes pTimes;
- LPProcWait pWait;
- LPProcWaitpid pWaitpid;
- LPProcSignal pSignal;
- LPProcFork pFork;
- LPProcGetpid pGetpid;
-#ifdef WIN32
- LPProcDynaLoader pDynaLoader;
- LPProcGetOSError pGetOSError;
- LPProcSpawnvp pSpawnvp;
-#endif
+ LPProcAbort pAbort;
+ LPProcCrypt pCrypt;
+ LPProcExit pExit;
+ LPProc_Exit p_Exit;
+ LPProcExecl pExecl;
+ LPProcExecv pExecv;
+ LPProcExecvp pExecvp;
+ LPProcGetuid pGetuid;
+ LPProcGeteuid pGeteuid;
+ LPProcGetgid pGetgid;
+ LPProcGetegid pGetegid;
+ LPProcGetlogin pGetlogin;
+ LPProcKill pKill;
+ LPProcKillpg pKillpg;
+ LPProcPauseProc pPauseProc;
+ LPProcPopen pPopen;
+ LPProcPclose pPclose;
+ LPProcPipe pPipe;
+ LPProcSetuid pSetuid;
+ LPProcSetgid pSetgid;
+ LPProcSleep pSleep;
+ LPProcTimes pTimes;
+ LPProcWait pWait;
+ LPProcWaitpid pWaitpid;
+ LPProcSignal pSignal;
+ LPProcFork pFork;
+ LPProcGetpid pGetpid;
+# ifdef WIN32
+ LPProcDynaLoader pDynaLoader;
+ LPProcGetOSError pGetOSError;
+ LPProcSpawnvp pSpawnvp;
+# endif
LPProcLastHost pLastHost;
- LPProcPopenList pPopenList;
- LPProcGetTimeOfDay pGetTimeOfDay;
+ LPProcPopenList pPopenList;
+ LPProcGetTimeOfDay pGetTimeOfDay;
};
struct IPerlProcInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlProc perlProcList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlProc perlProcList;
};
-#define PerlProc_abort() \
+# define PerlProc_abort() \
(*PL_Proc->pAbort)(PL_Proc)
-#define PerlProc_crypt(c,s) \
+# define PerlProc_crypt(c,s) \
(*PL_Proc->pCrypt)(PL_Proc, (c), (s))
-#define PerlProc_exit(s) \
+# define PerlProc_exit(s) \
(*PL_Proc->pExit)(PL_Proc, (s))
-#define PerlProc__exit(s) \
+# define PerlProc__exit(s) \
(*PL_Proc->p_Exit)(PL_Proc, (s))
-#define PerlProc_execl(c, w, x, y, z) \
+# define PerlProc_execl(c, w, x, y, z) \
(*PL_Proc->pExecl)(PL_Proc, (c), (w), (x), (y), (z))
-#define PerlProc_execv(c, a) \
+# define PerlProc_execv(c, a) \
(*PL_Proc->pExecv)(PL_Proc, (c), (a))
-#define PerlProc_execvp(c, a) \
+# define PerlProc_execvp(c, a) \
(*PL_Proc->pExecvp)(PL_Proc, (c), (a))
-#define PerlProc_getuid() \
+# define PerlProc_getuid() \
(*PL_Proc->pGetuid)(PL_Proc)
-#define PerlProc_geteuid() \
+# define PerlProc_geteuid() \
(*PL_Proc->pGeteuid)(PL_Proc)
-#define PerlProc_getgid() \
+# define PerlProc_getgid() \
(*PL_Proc->pGetgid)(PL_Proc)
-#define PerlProc_getegid() \
+# define PerlProc_getegid() \
(*PL_Proc->pGetegid)(PL_Proc)
-#define PerlProc_getlogin() \
+# define PerlProc_getlogin() \
(*PL_Proc->pGetlogin)(PL_Proc)
-#define PerlProc_kill(i, a) \
+# define PerlProc_kill(i, a) \
(*PL_Proc->pKill)(PL_Proc, (i), (a))
-#define PerlProc_killpg(i, a) \
+# define PerlProc_killpg(i, a) \
(*PL_Proc->pKillpg)(PL_Proc, (i), (a))
-#define PerlProc_pause() \
+# define PerlProc_pause() \
(*PL_Proc->pPauseProc)(PL_Proc)
-#define PerlProc_popen(c, m) \
+# define PerlProc_popen(c, m) \
(*PL_Proc->pPopen)(PL_Proc, (c), (m))
-#define PerlProc_popen_list(m, n, a) \
+# define PerlProc_popen_list(m, n, a) \
(*PL_Proc->pPopenList)(PL_Proc, (m), (n), (a))
-#define PerlProc_pclose(f) \
+# define PerlProc_pclose(f) \
(*PL_Proc->pPclose)(PL_Proc, (f))
-#define PerlProc_pipe(fd) \
+# define PerlProc_pipe(fd) \
(*PL_Proc->pPipe)(PL_Proc, (fd))
-#define PerlProc_setuid(u) \
+# define PerlProc_setuid(u) \
(*PL_Proc->pSetuid)(PL_Proc, (u))
-#define PerlProc_setgid(g) \
+# define PerlProc_setgid(g) \
(*PL_Proc->pSetgid)(PL_Proc, (g))
-#define PerlProc_sleep(t) \
+# define PerlProc_sleep(t) \
(*PL_Proc->pSleep)(PL_Proc, (t))
-#define PerlProc_times(t) \
+# define PerlProc_times(t) \
(*PL_Proc->pTimes)(PL_Proc, (t))
-#define PerlProc_wait(t) \
+# define PerlProc_wait(t) \
(*PL_Proc->pWait)(PL_Proc, (t))
-#define PerlProc_waitpid(p,s,f) \
+# define PerlProc_waitpid(p,s,f) \
(*PL_Proc->pWaitpid)(PL_Proc, (p), (s), (f))
-#define PerlProc_signal(n, h) \
+# define PerlProc_signal(n, h) \
(*PL_Proc->pSignal)(PL_Proc, (n), (h))
-#define PerlProc_fork() \
+# define PerlProc_fork() \
(*PL_Proc->pFork)(PL_Proc)
-#define PerlProc_getpid() \
+# define PerlProc_getpid() \
(*PL_Proc->pGetpid)(PL_Proc)
-#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
-#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
+# define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
+# define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
-#ifdef WIN32
-#define PerlProc_DynaLoad(f) \
+# ifdef WIN32
+# define PerlProc_DynaLoad(f) \
(*PL_Proc->pDynaLoader)(PL_Proc, (f))
-#define PerlProc_GetOSError(s,e) \
+# define PerlProc_GetOSError(s,e) \
(*PL_Proc->pGetOSError)(PL_Proc, (s), (e))
-#define PerlProc_spawnvp(m, c, a) \
+# define PerlProc_spawnvp(m, c, a) \
(*PL_Proc->pSpawnvp)(PL_Proc, (m), (c), (a))
-#endif
-#define PerlProc_lasthost() \
+# endif
+# define PerlProc_lasthost() \
(*PL_Proc->pLastHost)(PL_Proc)
-#define PerlProc_gettimeofday(t,z) \
+# define PerlProc_gettimeofday(t,z) \
(*PL_Proc->pGetTimeOfDay)(PL_Proc,(t),(z))
-#else /* PERL_IMPLICIT_SYS */
+#else /* ! PERL_IMPLICIT_SYS */
-#define PerlProc_abort() abort()
-#define PerlProc_crypt(c,s) crypt((c), (s))
-#define PerlProc_exit(s) exit((s))
-#define PerlProc__exit(s) _exit((s))
-#define PerlProc_execl(c,w,x,y,z) \
+# define PerlProc_abort() abort()
+# define PerlProc_crypt(c,s) crypt((c), (s))
+# define PerlProc_exit(s) exit((s))
+# define PerlProc__exit(s) _exit((s))
+# define PerlProc_execl(c,w,x,y,z) \
execl((c), (w), (x), (y), (z))
-#define PerlProc_execv(c, a) execv((c), (a))
-#define PerlProc_execvp(c, a) execvp((c), (a))
-#define PerlProc_getuid() getuid()
-#define PerlProc_geteuid() geteuid()
-#define PerlProc_getgid() getgid()
-#define PerlProc_getegid() getegid()
-#define PerlProc_getlogin() getlogin()
-#define PerlProc_kill(i, a) kill((i), (a))
-#define PerlProc_killpg(i, a) killpg((i), (a))
-#define PerlProc_pause() Pause()
-#define PerlProc_popen(c, m) my_popen((c), (m))
-#define PerlProc_popen_list(m,n,a) my_popen_list((m),(n),(a))
-#define PerlProc_pclose(f) my_pclose((f))
-#define PerlProc_pipe(fd) pipe((fd))
-#define PerlProc_setuid(u) setuid((u))
-#define PerlProc_setgid(g) setgid((g))
-#define PerlProc_sleep(t) sleep((t))
-#define PerlProc_times(t) times((t))
-#define PerlProc_wait(t) wait((t))
-#define PerlProc_waitpid(p,s,f) waitpid((p), (s), (f))
-#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
-#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
-#define PerlProc_signal(n, h) signal((n), (h))
-#define PerlProc_fork() my_fork()
-#define PerlProc_getpid() getpid()
-#define PerlProc_gettimeofday(t,z) gettimeofday((t),(z))
-
-#ifdef WIN32
-#define PerlProc_DynaLoad(f) \
+# define PerlProc_execv(c, a) execv((c), (a))
+# define PerlProc_execvp(c, a) execvp((c), (a))
+# define PerlProc_getuid() getuid()
+# define PerlProc_geteuid() geteuid()
+# define PerlProc_getgid() getgid()
+# define PerlProc_getegid() getegid()
+# define PerlProc_getlogin() getlogin()
+# define PerlProc_kill(i, a) kill((i), (a))
+# define PerlProc_killpg(i, a) killpg((i), (a))
+# define PerlProc_pause() Pause()
+# define PerlProc_popen(c, m) my_popen((c), (m))
+# define PerlProc_popen_list(m,n,a) my_popen_list((m),(n),(a))
+# define PerlProc_pclose(f) my_pclose((f))
+# define PerlProc_pipe(fd) pipe((fd))
+# define PerlProc_setuid(u) setuid((u))
+# define PerlProc_setgid(g) setgid((g))
+# define PerlProc_sleep(t) sleep((t))
+# define PerlProc_times(t) times((t))
+# define PerlProc_wait(t) wait((t))
+# define PerlProc_waitpid(p,s,f) waitpid((p), (s), (f))
+# define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
+# define PerlProc_longjmp(b, n)Siglongjmp((b), (n))
+# define PerlProc_signal(n, h) signal((n), (h))
+# define PerlProc_fork() my_fork()
+# define PerlProc_getpid() getpid()
+# define PerlProc_gettimeofday(t,z) gettimeofday((t),(z))
+
+# ifdef WIN32
+# define PerlProc_DynaLoad(f) \
win32_dynaload((f))
-#define PerlProc_GetOSError(s,e) \
+# define PerlProc_GetOSError(s,e) \
win32_str_os_error((s), (e))
-#define PerlProc_spawnvp(m, c, a) \
+# define PerlProc_spawnvp(m, c, a) \
win32_spawnvp((m), (c), (a))
-#undef PerlProc_signal
-#define PerlProc_signal(n, h) win32_signal((n), (h))
-#endif
-#endif /* PERL_IMPLICIT_SYS */
+# undef PerlProc_signal
+# define PerlProc_signal(n, h) win32_signal((n), (h))
+# endif
+#endif /* PERL_IMPLICIT_SYS */
/*
Interface for perl socket functions
@@ -1164,280 +1142,280 @@ struct IPerlProcInfo
#if defined(PERL_IMPLICIT_SYS)
-/* PerlSock */
+/* PerlSock */
struct IPerlSock;
struct IPerlSockInfo;
-typedef u_long (*LPHtonl)(struct IPerlSock*, u_long);
-typedef u_short (*LPHtons)(struct IPerlSock*, u_short);
-typedef u_long (*LPNtohl)(struct IPerlSock*, u_long);
-typedef u_short (*LPNtohs)(struct IPerlSock*, u_short);
-typedef SOCKET (*LPAccept)(struct IPerlSock*, SOCKET,
+typedef u_long (*LPHtonl)(struct IPerlSock*, u_long);
+typedef u_short (*LPHtons)(struct IPerlSock*, u_short);
+typedef u_long (*LPNtohl)(struct IPerlSock*, u_long);
+typedef u_short (*LPNtohs)(struct IPerlSock*, u_short);
+typedef SOCKET (*LPAccept)(struct IPerlSock*, SOCKET,
struct sockaddr*, int*);
-typedef int (*LPBind)(struct IPerlSock*, SOCKET,
+typedef int (*LPBind)(struct IPerlSock*, SOCKET,
const struct sockaddr*, int);
-typedef int (*LPConnect)(struct IPerlSock*, SOCKET,
+typedef int (*LPConnect)(struct IPerlSock*, SOCKET,
const struct sockaddr*, int);
-typedef void (*LPEndhostent)(struct IPerlSock*);
-typedef void (*LPEndnetent)(struct IPerlSock*);
-typedef void (*LPEndprotoent)(struct IPerlSock*);
-typedef void (*LPEndservent)(struct IPerlSock*);
-typedef int (*LPGethostname)(struct IPerlSock*, char*, int);
-typedef int (*LPGetpeername)(struct IPerlSock*, SOCKET,
+typedef void (*LPEndhostent)(struct IPerlSock*);
+typedef void (*LPEndnetent)(struct IPerlSock*);
+typedef void (*LPEndprotoent)(struct IPerlSock*);
+typedef void (*LPEndservent)(struct IPerlSock*);
+typedef int (*LPGethostname)(struct IPerlSock*, char*, int);
+typedef int (*LPGetpeername)(struct IPerlSock*, SOCKET,
struct sockaddr*, int*);
-typedef struct hostent* (*LPGethostbyaddr)(struct IPerlSock*, const char*,
+typedef struct hostent* (*LPGethostbyaddr)(struct IPerlSock*, const char*,
int, int);
-typedef struct hostent* (*LPGethostbyname)(struct IPerlSock*, const char*);
-typedef struct hostent* (*LPGethostent)(struct IPerlSock*);
-typedef struct netent* (*LPGetnetbyaddr)(struct IPerlSock*, long, int);
-typedef struct netent* (*LPGetnetbyname)(struct IPerlSock*, const char*);
-typedef struct netent* (*LPGetnetent)(struct IPerlSock*);
+typedef struct hostent* (*LPGethostbyname)(struct IPerlSock*, const char*);
+typedef struct hostent* (*LPGethostent)(struct IPerlSock*);
+typedef struct netent* (*LPGetnetbyaddr)(struct IPerlSock*, long, int);
+typedef struct netent* (*LPGetnetbyname)(struct IPerlSock*, const char*);
+typedef struct netent* (*LPGetnetent)(struct IPerlSock*);
typedef struct protoent*(*LPGetprotobyname)(struct IPerlSock*, const char*);
typedef struct protoent*(*LPGetprotobynumber)(struct IPerlSock*, int);
typedef struct protoent*(*LPGetprotoent)(struct IPerlSock*);
-typedef struct servent* (*LPGetservbyname)(struct IPerlSock*, const char*,
+typedef struct servent* (*LPGetservbyname)(struct IPerlSock*, const char*,
const char*);
-typedef struct servent* (*LPGetservbyport)(struct IPerlSock*, int,
+typedef struct servent* (*LPGetservbyport)(struct IPerlSock*, int,
const char*);
-typedef struct servent* (*LPGetservent)(struct IPerlSock*);
-typedef int (*LPGetsockname)(struct IPerlSock*, SOCKET,
+typedef struct servent* (*LPGetservent)(struct IPerlSock*);
+typedef int (*LPGetsockname)(struct IPerlSock*, SOCKET,
struct sockaddr*, int*);
-typedef int (*LPGetsockopt)(struct IPerlSock*, SOCKET, int, int,
+typedef int (*LPGetsockopt)(struct IPerlSock*, SOCKET, int, int,
char*, int*);
-typedef unsigned long (*LPInetAddr)(struct IPerlSock*, const char*);
-typedef char* (*LPInetNtoa)(struct IPerlSock*, struct in_addr);
-typedef int (*LPListen)(struct IPerlSock*, SOCKET, int);
-typedef int (*LPRecv)(struct IPerlSock*, SOCKET, char*, int, int);
-typedef int (*LPRecvfrom)(struct IPerlSock*, SOCKET, char*, int,
+typedef unsigned long (*LPInetAddr)(struct IPerlSock*, const char*);
+typedef char* (*LPInetNtoa)(struct IPerlSock*, struct in_addr);
+typedef int (*LPListen)(struct IPerlSock*, SOCKET, int);
+typedef int (*LPRecv)(struct IPerlSock*, SOCKET, char*, int, int);
+typedef int (*LPRecvfrom)(struct IPerlSock*, SOCKET, char*, int,
int, struct sockaddr*, int*);
-typedef int (*LPSelect)(struct IPerlSock*, int, char*, char*,
+typedef int (*LPSelect)(struct IPerlSock*, int, char*, char*,
char*, const struct timeval*);
-typedef int (*LPSend)(struct IPerlSock*, SOCKET, const char*, int,
+typedef int (*LPSend)(struct IPerlSock*, SOCKET, const char*, int,
int);
-typedef int (*LPSendto)(struct IPerlSock*, SOCKET, const char*,
+typedef int (*LPSendto)(struct IPerlSock*, SOCKET, const char*,
int, int, const struct sockaddr*, int);
-typedef void (*LPSethostent)(struct IPerlSock*, int);
-typedef void (*LPSetnetent)(struct IPerlSock*, int);
-typedef void (*LPSetprotoent)(struct IPerlSock*, int);
-typedef void (*LPSetservent)(struct IPerlSock*, int);
-typedef int (*LPSetsockopt)(struct IPerlSock*, SOCKET, int, int,
+typedef void (*LPSethostent)(struct IPerlSock*, int);
+typedef void (*LPSetnetent)(struct IPerlSock*, int);
+typedef void (*LPSetprotoent)(struct IPerlSock*, int);
+typedef void (*LPSetservent)(struct IPerlSock*, int);
+typedef int (*LPSetsockopt)(struct IPerlSock*, SOCKET, int, int,
const char*, int);
-typedef int (*LPShutdown)(struct IPerlSock*, SOCKET, int);
-typedef SOCKET (*LPSocket)(struct IPerlSock*, int, int, int);
-typedef int (*LPSocketpair)(struct IPerlSock*, int, int, int,
+typedef int (*LPShutdown)(struct IPerlSock*, SOCKET, int);
+typedef SOCKET (*LPSocket)(struct IPerlSock*, int, int, int);
+typedef int (*LPSocketpair)(struct IPerlSock*, int, int, int,
int*);
-#ifdef WIN32
-typedef int (*LPClosesocket)(struct IPerlSock*, SOCKET s);
-#endif
+# ifdef WIN32
+typedef int (*LPClosesocket)(struct IPerlSock*, SOCKET s);
+# endif
struct IPerlSock
{
- LPHtonl pHtonl;
- LPHtons pHtons;
- LPNtohl pNtohl;
- LPNtohs pNtohs;
- LPAccept pAccept;
- LPBind pBind;
- LPConnect pConnect;
- LPEndhostent pEndhostent;
- LPEndnetent pEndnetent;
- LPEndprotoent pEndprotoent;
- LPEndservent pEndservent;
- LPGethostname pGethostname;
- LPGetpeername pGetpeername;
- LPGethostbyaddr pGethostbyaddr;
- LPGethostbyname pGethostbyname;
- LPGethostent pGethostent;
- LPGetnetbyaddr pGetnetbyaddr;
- LPGetnetbyname pGetnetbyname;
- LPGetnetent pGetnetent;
- LPGetprotobyname pGetprotobyname;
- LPGetprotobynumber pGetprotobynumber;
- LPGetprotoent pGetprotoent;
- LPGetservbyname pGetservbyname;
- LPGetservbyport pGetservbyport;
- LPGetservent pGetservent;
- LPGetsockname pGetsockname;
- LPGetsockopt pGetsockopt;
- LPInetAddr pInetAddr;
- LPInetNtoa pInetNtoa;
- LPListen pListen;
- LPRecv pRecv;
- LPRecvfrom pRecvfrom;
- LPSelect pSelect;
- LPSend pSend;
- LPSendto pSendto;
- LPSethostent pSethostent;
- LPSetnetent pSetnetent;
- LPSetprotoent pSetprotoent;
- LPSetservent pSetservent;
- LPSetsockopt pSetsockopt;
- LPShutdown pShutdown;
- LPSocket pSocket;
- LPSocketpair pSocketpair;
-#ifdef WIN32
- LPClosesocket pClosesocket;
-#endif
+ LPHtonl pHtonl;
+ LPHtons pHtons;
+ LPNtohl pNtohl;
+ LPNtohs pNtohs;
+ LPAccept pAccept;
+ LPBind pBind;
+ LPConnect pConnect;
+ LPEndhostent pEndhostent;
+ LPEndnetent pEndnetent;
+ LPEndprotoent pEndprotoent;
+ LPEndservent pEndservent;
+ LPGethostname pGethostname;
+ LPGetpeername pGetpeername;
+ LPGethostbyaddr pGethostbyaddr;
+ LPGethostbyname pGethostbyname;
+ LPGethostent pGethostent;
+ LPGetnetbyaddr pGetnetbyaddr;
+ LPGetnetbyname pGetnetbyname;
+ LPGetnetent pGetnetent;
+ LPGetprotobyname pGetprotobyname;
+ LPGetprotobynumber pGetprotobynumber;
+ LPGetprotoent pGetprotoent;
+ LPGetservbyname pGetservbyname;
+ LPGetservbyport pGetservbyport;
+ LPGetservent pGetservent;
+ LPGetsockname pGetsockname;
+ LPGetsockopt pGetsockopt;
+ LPInetAddr pInetAddr;
+ LPInetNtoa pInetNtoa;
+ LPListen pListen;
+ LPRecv pRecv;
+ LPRecvfrom pRecvfrom;
+ LPSelect pSelect;
+ LPSend pSend;
+ LPSendto pSendto;
+ LPSethostent pSethostent;
+ LPSetnetent pSetnetent;
+ LPSetprotoent pSetprotoent;
+ LPSetservent pSetservent;
+ LPSetsockopt pSetsockopt;
+ LPShutdown pShutdown;
+ LPSocket pSocket;
+ LPSocketpair pSocketpair;
+# ifdef WIN32
+ LPClosesocket pClosesocket;
+# endif
};
struct IPerlSockInfo
{
- unsigned long nCount; /* number of entries expected */
- struct IPerlSock perlSockList;
+ unsigned long nCount; /* number of entries expected */
+ struct IPerlSock perlSockList;
};
-#define PerlSock_htonl(x) \
+# define PerlSock_htonl(x) \
(*PL_Sock->pHtonl)(PL_Sock, x)
-#define PerlSock_htons(x) \
+# define PerlSock_htons(x) \
(*PL_Sock->pHtons)(PL_Sock, x)
-#define PerlSock_ntohl(x) \
+# define PerlSock_ntohl(x) \
(*PL_Sock->pNtohl)(PL_Sock, x)
-#define PerlSock_ntohs(x) \
+# define PerlSock_ntohs(x) \
(*PL_Sock->pNtohs)(PL_Sock, x)
-#define PerlSock_accept(s, a, l) \
+# define PerlSock_accept(s, a, l) \
(*PL_Sock->pAccept)(PL_Sock, s, a, l)
-#define PerlSock_bind(s, n, l) \
+# define PerlSock_bind(s, n, l) \
(*PL_Sock->pBind)(PL_Sock, s, n, l)
-#define PerlSock_connect(s, n, l) \
+# define PerlSock_connect(s, n, l) \
(*PL_Sock->pConnect)(PL_Sock, s, n, l)
-#define PerlSock_endhostent() \
+# define PerlSock_endhostent() \
(*PL_Sock->pEndhostent)(PL_Sock)
-#define PerlSock_endnetent() \
+# define PerlSock_endnetent() \
(*PL_Sock->pEndnetent)(PL_Sock)
-#define PerlSock_endprotoent() \
+# define PerlSock_endprotoent() \
(*PL_Sock->pEndprotoent)(PL_Sock)
-#define PerlSock_endservent() \
+# define PerlSock_endservent() \
(*PL_Sock->pEndservent)(PL_Sock)
-#define PerlSock_gethostbyaddr(a, l, t) \
+# define PerlSock_gethostbyaddr(a, l, t) \
(*PL_Sock->pGethostbyaddr)(PL_Sock, a, l, t)
-#define PerlSock_gethostbyname(n) \
+# define PerlSock_gethostbyname(n) \
(*PL_Sock->pGethostbyname)(PL_Sock, n)
-#define PerlSock_gethostent() \
+# define PerlSock_gethostent() \
(*PL_Sock->pGethostent)(PL_Sock)
-#define PerlSock_gethostname(n, l) \
+# define PerlSock_gethostname(n, l) \
(*PL_Sock->pGethostname)(PL_Sock, n, l)
-#define PerlSock_getnetbyaddr(n, t) \
+# define PerlSock_getnetbyaddr(n, t) \
(*PL_Sock->pGetnetbyaddr)(PL_Sock, n, t)
-#define PerlSock_getnetbyname(c) \
+# define PerlSock_getnetbyname(c) \
(*PL_Sock->pGetnetbyname)(PL_Sock, c)
-#define PerlSock_getnetent() \
+# define PerlSock_getnetent() \
(*PL_Sock->pGetnetent)(PL_Sock)
-#define PerlSock_getpeername(s, n, l) \
+# define PerlSock_getpeername(s, n, l) \
(*PL_Sock->pGetpeername)(PL_Sock, s, n, l)
-#define PerlSock_getprotobyname(n) \
+# define PerlSock_getprotobyname(n) \
(*PL_Sock->pGetprotobyname)(PL_Sock, n)
-#define PerlSock_getprotobynumber(n) \
+# define PerlSock_getprotobynumber(n) \
(*PL_Sock->pGetprotobynumber)(PL_Sock, n)
-#define PerlSock_getprotoent() \
+# define PerlSock_getprotoent() \
(*PL_Sock->pGetprotoent)(PL_Sock)
-#define PerlSock_getservbyname(n, p) \
+# define PerlSock_getservbyname(n, p) \
(*PL_Sock->pGetservbyname)(PL_Sock, n, p)
-#define PerlSock_getservbyport(port, p) \
+# define PerlSock_getservbyport(port, p) \
(*PL_Sock->pGetservbyport)(PL_Sock, port, p)
-#define PerlSock_getservent() \
+# define PerlSock_getservent() \
(*PL_Sock->pGetservent)(PL_Sock)
-#define PerlSock_getsockname(s, n, l) \
+# define PerlSock_getsockname(s, n, l) \
(*PL_Sock->pGetsockname)(PL_Sock, s, n, l)
-#define PerlSock_getsockopt(s,l,n,v,i) \
+# define PerlSock_getsockopt(s,l,n,v,i) \
(*PL_Sock->pGetsockopt)(PL_Sock, s, l, n, v, i)
-#define PerlSock_inet_addr(c) \
+# define PerlSock_inet_addr(c) \
(*PL_Sock->pInetAddr)(PL_Sock, c)
-#define PerlSock_inet_ntoa(i) \
+# define PerlSock_inet_ntoa(i) \
(*PL_Sock->pInetNtoa)(PL_Sock, i)
-#define PerlSock_listen(s, b) \
+# define PerlSock_listen(s, b) \
(*PL_Sock->pListen)(PL_Sock, s, b)
-#define PerlSock_recv(s, b, l, f) \
+# define PerlSock_recv(s, b, l, f) \
(*PL_Sock->pRecv)(PL_Sock, s, b, l, f)
-#define PerlSock_recvfrom(s,b,l,f,from,fromlen) \
+# define PerlSock_recvfrom(s,b,l,f,from,fromlen) \
(*PL_Sock->pRecvfrom)(PL_Sock, s, b, l, f, from, fromlen)
-#define PerlSock_select(n, r, w, e, t) \
+# define PerlSock_select(n, r, w, e, t) \
(*PL_Sock->pSelect)(PL_Sock, n, (char*)r, (char*)w, (char*)e, t)
-#define PerlSock_send(s, b, l, f) \
+# define PerlSock_send(s, b, l, f) \
(*PL_Sock->pSend)(PL_Sock, s, b, l, f)
-#define PerlSock_sendto(s, b, l, f, t, tlen) \
+# define PerlSock_sendto(s, b, l, f, t, tlen) \
(*PL_Sock->pSendto)(PL_Sock, s, b, l, f, t, tlen)
-#define PerlSock_sethostent(f) \
+# define PerlSock_sethostent(f) \
(*PL_Sock->pSethostent)(PL_Sock, f)
-#define PerlSock_setnetent(f) \
+# define PerlSock_setnetent(f) \
(*PL_Sock->pSetnetent)(PL_Sock, f)
-#define PerlSock_setprotoent(f) \
+# define PerlSock_setprotoent(f) \
(*PL_Sock->pSetprotoent)(PL_Sock, f)
-#define PerlSock_setservent(f) \
+# define PerlSock_setservent(f) \
(*PL_Sock->pSetservent)(PL_Sock, f)
-#define PerlSock_setsockopt(s, l, n, v, len) \
+# define PerlSock_setsockopt(s, l, n, v, len) \
(*PL_Sock->pSetsockopt)(PL_Sock, s, l, n, v, len)
-#define PerlSock_shutdown(s, h) \
+# define PerlSock_shutdown(s, h) \
(*PL_Sock->pShutdown)(PL_Sock, s, h)
-#define PerlSock_socket(a, t, p) \
+# define PerlSock_socket(a, t, p) \
(*PL_Sock->pSocket)(PL_Sock, a, t, p)
-#define PerlSock_socketpair(a, t, p, f) \
+# define PerlSock_socketpair(a, t, p, f) \
(*PL_Sock->pSocketpair)(PL_Sock, a, t, p, f)
-#ifdef WIN32
-#define PerlSock_closesocket(s) \
+# ifdef WIN32
+# define PerlSock_closesocket(s) \
(*PL_Sock->pClosesocket)(PL_Sock, s)
-#endif
+# endif
-#else /* ! PERL_IMPLICIT_SYS below */
-
-#define PerlSock_htonl(x) htonl(x)
-#define PerlSock_htons(x) htons(x)
-#define PerlSock_ntohl(x) ntohl(x)
-#define PerlSock_ntohs(x) ntohs(x)
-#define PerlSock_accept(s, a, l) accept(s, a, l)
-#define PerlSock_bind(s, n, l) bind(s, n, l)
-#define PerlSock_connect(s, n, l) connect(s, n, l)
-
-#define PerlSock_gethostbyaddr(a, l, t) gethostbyaddr(a, l, t)
-#define PerlSock_gethostbyname(n) gethostbyname(n)
-#define PerlSock_gethostent gethostent
-#define PerlSock_endhostent endhostent
-#define PerlSock_gethostname(n, l) gethostname(n, l)
-
-#define PerlSock_getnetbyaddr(n, t) getnetbyaddr(n, t)
-#define PerlSock_getnetbyname(n) getnetbyname(n)
-#define PerlSock_getnetent getnetent
-#define PerlSock_endnetent endnetent
-#define PerlSock_getpeername(s, n, l) getpeername(s, n, l)
-
-#define PerlSock_getprotobyname(n) getprotobyname(n)
-#define PerlSock_getprotobynumber(n) getprotobynumber(n)
-#define PerlSock_getprotoent getprotoent
-#define PerlSock_endprotoent endprotoent
-
-#define PerlSock_getservbyname(n, p) getservbyname(n, p)
-#define PerlSock_getservbyport(port, p) getservbyport(port, p)
-#define PerlSock_getservent getservent
-#define PerlSock_endservent endservent
-
-#define PerlSock_getsockname(s, n, l) getsockname(s, n, l)
-#define PerlSock_getsockopt(s,l,n,v,i) getsockopt(s, l, n, v, i)
-#define PerlSock_inet_addr(c) inet_addr(c)
-#define PerlSock_inet_ntoa(i) inet_ntoa(i)
-#define PerlSock_listen(s, b) listen(s, b)
-#define PerlSock_recv(s, b, l, f) recv(s, b, l, f)
-#define PerlSock_recvfrom(s, b, l, f, from, fromlen) \
+#else /* ! PERL_IMPLICIT_SYS below */
+
+# define PerlSock_htonl(x) htonl(x)
+# define PerlSock_htons(x) htons(x)
+# define PerlSock_ntohl(x) ntohl(x)
+# define PerlSock_ntohs(x) ntohs(x)
+# define PerlSock_accept(s, a, l) accept(s, a, l)
+# define PerlSock_bind(s, n, l) bind(s, n, l)
+# define PerlSock_connect(s, n, l) connect(s, n, l)
+
+# define PerlSock_gethostbyaddr(a, l, t) gethostbyaddr(a, l, t)
+# define PerlSock_gethostbyname(n) gethostbyname(n)
+# define PerlSock_gethostent gethostent
+# define PerlSock_endhostent endhostent
+# define PerlSock_gethostname(n, l) gethostname(n, l)
+
+# define PerlSock_getnetbyaddr(n, t) getnetbyaddr(n, t)
+# define PerlSock_getnetbyname(n) getnetbyname(n)
+# define PerlSock_getnetent getnetent
+# define PerlSock_endnetent endnetent
+# define PerlSock_getpeername(s, n, l) getpeername(s, n, l)
+
+# define PerlSock_getprotobyname(n) getprotobyname(n)
+# define PerlSock_getprotobynumber(n) getprotobynumber(n)
+# define PerlSock_getprotoent getprotoent
+# define PerlSock_endprotoent endprotoent
+
+# define PerlSock_getservbyname(n, p) getservbyname(n, p)
+# define PerlSock_getservbyport(port, p) getservbyport(port, p)
+# define PerlSock_getservent getservent
+# define PerlSock_endservent endservent
+
+# define PerlSock_getsockname(s, n, l) getsockname(s, n, l)
+# define PerlSock_getsockopt(s,l,n,v,i) getsockopt(s, l, n, v, i)
+# define PerlSock_inet_addr(c) inet_addr(c)
+# define PerlSock_inet_ntoa(i) inet_ntoa(i)
+# define PerlSock_listen(s, b) listen(s, b)
+# define PerlSock_recv(s, b, l, f) recv(s, b, l, f)
+# define PerlSock_recvfrom(s, b, l, f, from, fromlen) \
recvfrom(s, b, l, f, from, fromlen)
-#define PerlSock_select(n, r, w, e, t) select(n, r, w, e, t)
-#define PerlSock_send(s, b, l, f) send(s, b, l, f)
-#define PerlSock_sendto(s, b, l, f, t, tlen) \
+# define PerlSock_select(n, r, w, e, t) select(n, r, w, e, t)
+# define PerlSock_send(s, b, l, f) send(s, b, l, f)
+# define PerlSock_sendto(s, b, l, f, t, tlen) \
sendto(s, b, l, f, t, tlen)
-#define PerlSock_sethostent(f) sethostent(f)
-#define PerlSock_setnetent(f) setnetent(f)
-#define PerlSock_setprotoent(f) setprotoent(f)
-#define PerlSock_setservent(f) setservent(f)
-#define PerlSock_setsockopt(s, l, n, v, len) \
+# define PerlSock_sethostent(f) sethostent(f)
+# define PerlSock_setnetent(f) setnetent(f)
+# define PerlSock_setprotoent(f) setprotoent(f)
+# define PerlSock_setservent(f) setservent(f)
+# define PerlSock_setsockopt(s, l, n, v, len) \
setsockopt(s, l, n, v, len)
-#define PerlSock_shutdown(s, h) shutdown(s, h)
-#define PerlSock_socket(a, t, p) socket(a, t, p)
-#define PerlSock_socketpair(a, t, p, f) socketpair(a, t, p, f)
+# define PerlSock_shutdown(s, h) shutdown(s, h)
+# define PerlSock_socket(a, t, p) socket(a, t, p)
+# define PerlSock_socketpair(a, t, p, f) socketpair(a, t, p, f)
-#ifdef WIN32
-#define PerlSock_closesocket(s) closesocket(s)
-#endif
+# ifdef WIN32
+# define PerlSock_closesocket(s) closesocket(s)
+# endif
-#endif /* PERL_IMPLICIT_SYS */
+#endif /* PERL_IMPLICIT_SYS */
-#endif /* __Inc__IPerl___ */
+#endif /* __Inc__IPerl___ */
/*
* ex: set ts=8 sts=4 sw=4 et:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h
index 82694905cb..feae6f6dce 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h
@@ -20,258 +20,264 @@
#define KEY___DATA__ 4
#define KEY___END__ 5
#define KEY___SUB__ 6
-#define KEY_AUTOLOAD 7
-#define KEY_BEGIN 8
-#define KEY_UNITCHECK 9
-#define KEY_DESTROY 10
-#define KEY_END 11
-#define KEY_INIT 12
-#define KEY_CHECK 13
-#define KEY_abs 14
-#define KEY_accept 15
-#define KEY_alarm 16
-#define KEY_and 17
-#define KEY_atan2 18
-#define KEY_bind 19
-#define KEY_binmode 20
-#define KEY_bless 21
-#define KEY_break 22
-#define KEY_caller 23
-#define KEY_catch 24
-#define KEY_chdir 25
-#define KEY_chmod 26
-#define KEY_chomp 27
-#define KEY_chop 28
-#define KEY_chown 29
-#define KEY_chr 30
-#define KEY_chroot 31
-#define KEY_close 32
-#define KEY_closedir 33
-#define KEY_cmp 34
-#define KEY_connect 35
-#define KEY_continue 36
-#define KEY_cos 37
-#define KEY_crypt 38
-#define KEY_dbmclose 39
-#define KEY_dbmopen 40
-#define KEY_default 41
-#define KEY_defined 42
-#define KEY_delete 43
-#define KEY_die 44
-#define KEY_do 45
-#define KEY_dump 46
-#define KEY_each 47
-#define KEY_else 48
-#define KEY_elsif 49
-#define KEY_endgrent 50
-#define KEY_endhostent 51
-#define KEY_endnetent 52
-#define KEY_endprotoent 53
-#define KEY_endpwent 54
-#define KEY_endservent 55
-#define KEY_eof 56
-#define KEY_eq 57
-#define KEY_eval 58
-#define KEY_evalbytes 59
-#define KEY_exec 60
-#define KEY_exists 61
-#define KEY_exit 62
-#define KEY_exp 63
-#define KEY_fc 64
-#define KEY_fcntl 65
-#define KEY_fileno 66
-#define KEY_flock 67
-#define KEY_for 68
-#define KEY_foreach 69
-#define KEY_fork 70
-#define KEY_format 71
-#define KEY_formline 72
-#define KEY_ge 73
-#define KEY_getc 74
-#define KEY_getgrent 75
-#define KEY_getgrgid 76
-#define KEY_getgrnam 77
-#define KEY_gethostbyaddr 78
-#define KEY_gethostbyname 79
-#define KEY_gethostent 80
-#define KEY_getlogin 81
-#define KEY_getnetbyaddr 82
-#define KEY_getnetbyname 83
-#define KEY_getnetent 84
-#define KEY_getpeername 85
-#define KEY_getpgrp 86
-#define KEY_getppid 87
-#define KEY_getpriority 88
-#define KEY_getprotobyname 89
-#define KEY_getprotobynumber 90
-#define KEY_getprotoent 91
-#define KEY_getpwent 92
-#define KEY_getpwnam 93
-#define KEY_getpwuid 94
-#define KEY_getservbyname 95
-#define KEY_getservbyport 96
-#define KEY_getservent 97
-#define KEY_getsockname 98
-#define KEY_getsockopt 99
-#define KEY_given 100
-#define KEY_glob 101
-#define KEY_gmtime 102
-#define KEY_goto 103
-#define KEY_grep 104
-#define KEY_gt 105
-#define KEY_hex 106
-#define KEY_if 107
-#define KEY_index 108
-#define KEY_int 109
-#define KEY_ioctl 110
-#define KEY_isa 111
-#define KEY_join 112
-#define KEY_keys 113
-#define KEY_kill 114
-#define KEY_last 115
-#define KEY_lc 116
-#define KEY_lcfirst 117
-#define KEY_le 118
-#define KEY_length 119
-#define KEY_link 120
-#define KEY_listen 121
-#define KEY_local 122
-#define KEY_localtime 123
-#define KEY_lock 124
-#define KEY_log 125
-#define KEY_lstat 126
-#define KEY_lt 127
-#define KEY_m 128
-#define KEY_map 129
-#define KEY_mkdir 130
-#define KEY_msgctl 131
-#define KEY_msgget 132
-#define KEY_msgrcv 133
-#define KEY_msgsnd 134
-#define KEY_my 135
-#define KEY_ne 136
-#define KEY_next 137
-#define KEY_no 138
-#define KEY_not 139
-#define KEY_oct 140
-#define KEY_open 141
-#define KEY_opendir 142
-#define KEY_or 143
-#define KEY_ord 144
-#define KEY_our 145
-#define KEY_pack 146
-#define KEY_package 147
-#define KEY_pipe 148
-#define KEY_pop 149
-#define KEY_pos 150
-#define KEY_print 151
-#define KEY_printf 152
-#define KEY_prototype 153
-#define KEY_push 154
-#define KEY_q 155
-#define KEY_qq 156
-#define KEY_qr 157
-#define KEY_quotemeta 158
-#define KEY_qw 159
-#define KEY_qx 160
-#define KEY_rand 161
-#define KEY_read 162
-#define KEY_readdir 163
-#define KEY_readline 164
-#define KEY_readlink 165
-#define KEY_readpipe 166
-#define KEY_recv 167
-#define KEY_redo 168
-#define KEY_ref 169
-#define KEY_rename 170
-#define KEY_require 171
-#define KEY_reset 172
-#define KEY_return 173
-#define KEY_reverse 174
-#define KEY_rewinddir 175
-#define KEY_rindex 176
-#define KEY_rmdir 177
-#define KEY_s 178
-#define KEY_say 179
-#define KEY_scalar 180
-#define KEY_seek 181
-#define KEY_seekdir 182
-#define KEY_select 183
-#define KEY_semctl 184
-#define KEY_semget 185
-#define KEY_semop 186
-#define KEY_send 187
-#define KEY_setgrent 188
-#define KEY_sethostent 189
-#define KEY_setnetent 190
-#define KEY_setpgrp 191
-#define KEY_setpriority 192
-#define KEY_setprotoent 193
-#define KEY_setpwent 194
-#define KEY_setservent 195
-#define KEY_setsockopt 196
-#define KEY_shift 197
-#define KEY_shmctl 198
-#define KEY_shmget 199
-#define KEY_shmread 200
-#define KEY_shmwrite 201
-#define KEY_shutdown 202
-#define KEY_sin 203
-#define KEY_sleep 204
-#define KEY_socket 205
-#define KEY_socketpair 206
-#define KEY_sort 207
-#define KEY_splice 208
-#define KEY_split 209
-#define KEY_sprintf 210
-#define KEY_sqrt 211
-#define KEY_srand 212
-#define KEY_stat 213
-#define KEY_state 214
-#define KEY_study 215
-#define KEY_sub 216
-#define KEY_substr 217
-#define KEY_symlink 218
-#define KEY_syscall 219
-#define KEY_sysopen 220
-#define KEY_sysread 221
-#define KEY_sysseek 222
-#define KEY_system 223
-#define KEY_syswrite 224
-#define KEY_tell 225
-#define KEY_telldir 226
-#define KEY_tie 227
-#define KEY_tied 228
-#define KEY_time 229
-#define KEY_times 230
-#define KEY_tr 231
-#define KEY_try 232
-#define KEY_truncate 233
-#define KEY_uc 234
-#define KEY_ucfirst 235
-#define KEY_umask 236
-#define KEY_undef 237
-#define KEY_unless 238
-#define KEY_unlink 239
-#define KEY_unpack 240
-#define KEY_unshift 241
-#define KEY_untie 242
-#define KEY_until 243
-#define KEY_use 244
-#define KEY_utime 245
-#define KEY_values 246
-#define KEY_vec 247
-#define KEY_wait 248
-#define KEY_waitpid 249
-#define KEY_wantarray 250
-#define KEY_warn 251
-#define KEY_when 252
-#define KEY_while 253
-#define KEY_write 254
-#define KEY_x 255
-#define KEY_xor 256
-#define KEY_y 257
+#define KEY_ADJUST 7
+#define KEY_AUTOLOAD 8
+#define KEY_BEGIN 9
+#define KEY_UNITCHECK 10
+#define KEY_DESTROY 11
+#define KEY_END 12
+#define KEY_INIT 13
+#define KEY_CHECK 14
+#define KEY_abs 15
+#define KEY_accept 16
+#define KEY_alarm 17
+#define KEY_and 18
+#define KEY_atan2 19
+#define KEY_bind 20
+#define KEY_binmode 21
+#define KEY_bless 22
+#define KEY_break 23
+#define KEY_caller 24
+#define KEY_catch 25
+#define KEY_chdir 26
+#define KEY_chmod 27
+#define KEY_chomp 28
+#define KEY_chop 29
+#define KEY_chown 30
+#define KEY_chr 31
+#define KEY_chroot 32
+#define KEY_class 33
+#define KEY_close 34
+#define KEY_closedir 35
+#define KEY_cmp 36
+#define KEY_connect 37
+#define KEY_continue 38
+#define KEY_cos 39
+#define KEY_crypt 40
+#define KEY_dbmclose 41
+#define KEY_dbmopen 42
+#define KEY_default 43
+#define KEY_defer 44
+#define KEY_defined 45
+#define KEY_delete 46
+#define KEY_die 47
+#define KEY_do 48
+#define KEY_dump 49
+#define KEY_each 50
+#define KEY_else 51
+#define KEY_elsif 52
+#define KEY_endgrent 53
+#define KEY_endhostent 54
+#define KEY_endnetent 55
+#define KEY_endprotoent 56
+#define KEY_endpwent 57
+#define KEY_endservent 58
+#define KEY_eof 59
+#define KEY_eq 60
+#define KEY_eval 61
+#define KEY_evalbytes 62
+#define KEY_exec 63
+#define KEY_exists 64
+#define KEY_exit 65
+#define KEY_exp 66
+#define KEY_fc 67
+#define KEY_fcntl 68
+#define KEY_field 69
+#define KEY_fileno 70
+#define KEY_finally 71
+#define KEY_flock 72
+#define KEY_for 73
+#define KEY_foreach 74
+#define KEY_fork 75
+#define KEY_format 76
+#define KEY_formline 77
+#define KEY_ge 78
+#define KEY_getc 79
+#define KEY_getgrent 80
+#define KEY_getgrgid 81
+#define KEY_getgrnam 82
+#define KEY_gethostbyaddr 83
+#define KEY_gethostbyname 84
+#define KEY_gethostent 85
+#define KEY_getlogin 86
+#define KEY_getnetbyaddr 87
+#define KEY_getnetbyname 88
+#define KEY_getnetent 89
+#define KEY_getpeername 90
+#define KEY_getpgrp 91
+#define KEY_getppid 92
+#define KEY_getpriority 93
+#define KEY_getprotobyname 94
+#define KEY_getprotobynumber 95
+#define KEY_getprotoent 96
+#define KEY_getpwent 97
+#define KEY_getpwnam 98
+#define KEY_getpwuid 99
+#define KEY_getservbyname 100
+#define KEY_getservbyport 101
+#define KEY_getservent 102
+#define KEY_getsockname 103
+#define KEY_getsockopt 104
+#define KEY_given 105
+#define KEY_glob 106
+#define KEY_gmtime 107
+#define KEY_goto 108
+#define KEY_grep 109
+#define KEY_gt 110
+#define KEY_hex 111
+#define KEY_if 112
+#define KEY_index 113
+#define KEY_int 114
+#define KEY_ioctl 115
+#define KEY_isa 116
+#define KEY_join 117
+#define KEY_keys 118
+#define KEY_kill 119
+#define KEY_last 120
+#define KEY_lc 121
+#define KEY_lcfirst 122
+#define KEY_le 123
+#define KEY_length 124
+#define KEY_link 125
+#define KEY_listen 126
+#define KEY_local 127
+#define KEY_localtime 128
+#define KEY_lock 129
+#define KEY_log 130
+#define KEY_lstat 131
+#define KEY_lt 132
+#define KEY_m 133
+#define KEY_map 134
+#define KEY_method 135
+#define KEY_mkdir 136
+#define KEY_msgctl 137
+#define KEY_msgget 138
+#define KEY_msgrcv 139
+#define KEY_msgsnd 140
+#define KEY_my 141
+#define KEY_ne 142
+#define KEY_next 143
+#define KEY_no 144
+#define KEY_not 145
+#define KEY_oct 146
+#define KEY_open 147
+#define KEY_opendir 148
+#define KEY_or 149
+#define KEY_ord 150
+#define KEY_our 151
+#define KEY_pack 152
+#define KEY_package 153
+#define KEY_pipe 154
+#define KEY_pop 155
+#define KEY_pos 156
+#define KEY_print 157
+#define KEY_printf 158
+#define KEY_prototype 159
+#define KEY_push 160
+#define KEY_q 161
+#define KEY_qq 162
+#define KEY_qr 163
+#define KEY_quotemeta 164
+#define KEY_qw 165
+#define KEY_qx 166
+#define KEY_rand 167
+#define KEY_read 168
+#define KEY_readdir 169
+#define KEY_readline 170
+#define KEY_readlink 171
+#define KEY_readpipe 172
+#define KEY_recv 173
+#define KEY_redo 174
+#define KEY_ref 175
+#define KEY_rename 176
+#define KEY_require 177
+#define KEY_reset 178
+#define KEY_return 179
+#define KEY_reverse 180
+#define KEY_rewinddir 181
+#define KEY_rindex 182
+#define KEY_rmdir 183
+#define KEY_s 184
+#define KEY_say 185
+#define KEY_scalar 186
+#define KEY_seek 187
+#define KEY_seekdir 188
+#define KEY_select 189
+#define KEY_semctl 190
+#define KEY_semget 191
+#define KEY_semop 192
+#define KEY_send 193
+#define KEY_setgrent 194
+#define KEY_sethostent 195
+#define KEY_setnetent 196
+#define KEY_setpgrp 197
+#define KEY_setpriority 198
+#define KEY_setprotoent 199
+#define KEY_setpwent 200
+#define KEY_setservent 201
+#define KEY_setsockopt 202
+#define KEY_shift 203
+#define KEY_shmctl 204
+#define KEY_shmget 205
+#define KEY_shmread 206
+#define KEY_shmwrite 207
+#define KEY_shutdown 208
+#define KEY_sin 209
+#define KEY_sleep 210
+#define KEY_socket 211
+#define KEY_socketpair 212
+#define KEY_sort 213
+#define KEY_splice 214
+#define KEY_split 215
+#define KEY_sprintf 216
+#define KEY_sqrt 217
+#define KEY_srand 218
+#define KEY_stat 219
+#define KEY_state 220
+#define KEY_study 221
+#define KEY_sub 222
+#define KEY_substr 223
+#define KEY_symlink 224
+#define KEY_syscall 225
+#define KEY_sysopen 226
+#define KEY_sysread 227
+#define KEY_sysseek 228
+#define KEY_system 229
+#define KEY_syswrite 230
+#define KEY_tell 231
+#define KEY_telldir 232
+#define KEY_tie 233
+#define KEY_tied 234
+#define KEY_time 235
+#define KEY_times 236
+#define KEY_tr 237
+#define KEY_try 238
+#define KEY_truncate 239
+#define KEY_uc 240
+#define KEY_ucfirst 241
+#define KEY_umask 242
+#define KEY_undef 243
+#define KEY_unless 244
+#define KEY_unlink 245
+#define KEY_unpack 246
+#define KEY_unshift 247
+#define KEY_untie 248
+#define KEY_until 249
+#define KEY_use 250
+#define KEY_utime 251
+#define KEY_values 252
+#define KEY_vec 253
+#define KEY_wait 254
+#define KEY_waitpid 255
+#define KEY_wantarray 256
+#define KEY_warn 257
+#define KEY_when 258
+#define KEY_while 259
+#define KEY_write 260
+#define KEY_x 261
+#define KEY_xor 262
+#define KEY_y 263
/* Generated from:
- * 3a4f2004642b00b871c01cbdc018f6ca5ead6b4e0b2b184120c60b0b62a229dd regen/keywords.pl
+ * eb67e851da14ede1aad67aec4a387fa250c1345407fad0a02988d2d8d3cc27f2 regen/keywords.pl
* ex: set ro: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
index 83469a0ba1..01d7763917 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/mk_PL_charclass.pl from Unicode::UCD.
* Any changes made here will be lost!
@@ -8,262 +8,262 @@
* 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),
-/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 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),
-/* U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+17 ETB */ (1U<<_CC_ASCII)|(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),
-/* U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_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),
-/* 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+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),
-/* U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 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),
-/* 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),
-/* U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+41 'A' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+42 'B' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+43 'C' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+44 'D' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+45 'E' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+46 'F' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+47 'G' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+48 'H' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+49 'I' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4A 'J' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4B 'K' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4C 'L' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4D 'M' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4E 'N' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4F 'O' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+50 'P' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+51 'Q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+52 'R' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+53 'S' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+54 'T' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+55 'U' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+56 'V' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+57 'W' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+58 'X' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+59 'Y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+5A 'Z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
-/* U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+61 'a' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+62 'b' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+63 'c' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+64 'd' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+65 'e' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+66 'f' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+67 'g' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+68 'h' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+69 'i' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6A 'j' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6B 'k' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6C 'l' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6D 'm' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6E 'n' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6F 'o' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+70 'p' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+71 'q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+72 'r' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+73 's' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+74 't' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+75 'u' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+76 'v' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+77 'w' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+78 'x' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+79 'y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+7A 'z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_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),
-/* U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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 NBSP */ (1U<<_CC_BLANK)|(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 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(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 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AF MACRON */ (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 */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 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 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(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_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C1 A with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C2 A with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C3 A with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C4 A with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C5 A with RING */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C6 AE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C7 C with CEDILLA */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C8 E with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C9 E with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CA E with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CB E with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CC I with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CD I with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CE I with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CF I with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D0 ETH */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D1 N with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D2 O with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D3 O with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D4 O with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D5 O with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D6 O with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+D8 O with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D9 U with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DA U with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DB U with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DC U with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DD Y with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DE THORN */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DF sharp s */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E0 a with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E1 a with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E2 a with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E3 a with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E4 a with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E5 a with ring */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E6 ae */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E7 c with cedilla */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E8 e with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E9 e with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EA e with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EB e with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EC i with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+ED i with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EE i with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EF i with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F0 eth */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F1 n with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F2 o with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F3 o with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F4 o with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F5 o with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F6 o with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+F8 o with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F9 u with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FA u with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FB u with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FC u with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FD y with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FE thorn */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FF y with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)
+/* 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_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+08 BS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+09 HT */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* U+0A LF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0D CR */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 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_),
+/* U+14 DC4 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+15 NAK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+16 SYN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+17 ETB */ (1U<<CC_ASCII_)|(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_),
+/* U+1A SUB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1B ESC */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_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_),
+/* 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+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_),
+/* U+2B '+' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2C ',' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2D '-' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2E '.' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2F '/' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+30 '0' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+31 '1' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+32 '2' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+33 '3' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+34 '4' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+35 '5' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+36 '6' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+37 '7' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 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_),
+/* 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_),
+/* U+3A ':' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3B ';' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3C '<' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3D '=' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3E '>' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3F '?' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+40 '@' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+41 'A' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+42 'B' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+43 'C' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+44 'D' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+45 'E' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+46 'F' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+47 'G' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+48 'H' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+49 'I' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4A 'J' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4B 'K' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4C 'L' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4D 'M' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4E 'N' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4F 'O' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+50 'P' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+51 'Q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+52 'R' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+53 'S' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+54 'T' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+55 'U' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+56 'V' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+57 'W' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+58 'X' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+59 'Y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+5A 'Z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+5B '[' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5C '\' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5D ']' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5E '^' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5F '_' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_WORDCHAR_),
+/* U+60 '`' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+61 'a' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+62 'b' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+63 'c' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+64 'd' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+65 'e' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+66 'f' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+67 'g' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+68 'h' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+69 'i' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6A 'j' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6B 'k' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6C 'l' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6D 'm' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6E 'n' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6F 'o' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+70 'p' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+71 'q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+72 'r' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+73 's' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+74 't' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+75 'u' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+76 'v' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+77 'w' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+78 'x' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+79 'y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+7A 'z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+7B '{' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7C '|' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7D '}' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7E '~' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7F DEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+80 PAD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+81 HOP */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_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_),
+/* U+89 HTJ */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8A VTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8B PLD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8C PLU */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8D RI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8E SS2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8F SS3 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+90 DCS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+91 PU1 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+92 PU2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+93 STS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+94 CCH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+95 MW */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+96 SPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+97 EPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+98 SOS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+99 SGC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9A SCI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9B CSI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9C ST */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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 NBSP */ (1U<<CC_BLANK_)|(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 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+A8 DIAERESIS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+A9 COPYRIGHT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+AA FEMININE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(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 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+AF MACRON */ (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 */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 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 1 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+BA MASCULINE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(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_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C1 A with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C2 A with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C3 A with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C4 A with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C5 A with RING */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C6 AE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C7 C with CEDILLA */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C8 E with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C9 E with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CA E with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CB E with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CC I with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CD I with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CE I with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CF I with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D0 ETH */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D1 N with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D2 O with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D3 O with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D4 O with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D5 O with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D6 O with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D7 MULTIPLICATION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+D8 O with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D9 U with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DA U with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DB U with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DC U with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DD Y with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DE THORN */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DF sharp s */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E0 a with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E1 a with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E2 a with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E3 a with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E4 a with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E5 a with ring */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E6 ae */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E7 c with cedilla */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E8 e with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E9 e with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EA e with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EB e with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EC i with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+ED i with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EE i with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EF i with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F0 eth */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F1 n with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F2 o with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F3 o with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F4 o with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F5 o with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F6 o with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F7 DIVISION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+F8 o with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F9 u with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FA u with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FB u with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FC u with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FD y with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FE thorn */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FF y with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)
#endif /* ASCII/Latin1 */
@@ -271,262 +271,262 @@
&& '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
&& '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x44 U+E0 I8=A3 a with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x45 U+E1 I8=A4 a with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x47 U+E5 I8=A6 a with ring */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x4A U+A2 I8=A9 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 I8=AA e with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x52 U+EA I8=AB e with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x54 U+E8 I8=AD e with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x55 U+ED I8=AE i with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x56 U+EE I8=AF i with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x58 U+EC I8=B1 i with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x59 U+DF I8=B2 sharp s */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 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 I8=B3 A with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x63 U+C4 I8=B4 A with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x64 U+C0 I8=B5 A with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x65 U+C1 I8=B6 A with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x66 U+C3 I8=B7 A with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x67 U+C5 I8=B8 A with RING */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x68 U+C7 I8=B9 C with CEDILLA */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x69 U+D1 I8=BA N with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x6A U+A6 I8=BB 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 I8=BC o with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x71 U+C9 I8=BD E with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x72 U+CA I8=BE E with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x73 U+CB I8=BF E with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x74 U+C8 I8=C0 E with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x75 U+CD I8=C1 I with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x76 U+CE I8=C2 I with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x77 U+CF I8=C3 I with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x78 U+CC I8=C4 I with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 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 I8=C5 O with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x81 U+61 'a' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x82 U+62 'b' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x83 U+63 'c' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x84 U+64 'd' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x85 U+65 'e' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x86 U+66 'f' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x87 U+67 'g' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x88 U+68 'h' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x89 U+69 'i' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8A U+AB I8=C6 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8B U+BB I8=C7 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8C U+F0 I8=C8 eth */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8D U+FD I8=C9 y with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8E U+FE I8=CA thorn */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8F U+B1 I8=CB PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x90 U+B0 I8=CC DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x91 U+6A 'j' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x92 U+6B 'k' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x93 U+6C 'l' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x95 U+6E 'n' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x97 U+70 'p' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x98 U+71 'q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x99 U+72 'r' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9A U+AA I8=CD FEMININE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(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 I8=CE MASCULINE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(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 I8=CF ae */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9D U+B8 I8=D0 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0x9E U+C6 I8=D1 AE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x9F U+A4 I8=D2 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xA0 U+B5 I8=D3 MICRO */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xA2 U+73 's' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA3 U+74 't' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA6 U+77 'w' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA8 U+79 'y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xAA U+A1 I8=D4 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAB U+BF I8=D5 INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAC U+D0 I8=D6 ETH */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAD U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAE U+DE I8=D7 THORN */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAF U+AE I8=D8 REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB0 U+AC I8=D9 NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB1 U+A3 I8=DA POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB2 U+A5 I8=DB YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB3 U+B7 I8=DC MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
-/* 0xB4 U+A9 I8=DD COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB5 U+A7 I8=DE SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+B6 I8=DF PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xB7 U+BC I8=E0 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB8 U+BD I8=E1 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB9 U+BE I8=E2 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBA U+DD I8=E3 Y with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xBB U+A8 I8=E4 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBC U+AF I8=E5 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 I8=E6 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBF U+D7 I8=E7 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_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC6 U+46 'F' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC8 U+48 'H' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC9 U+49 'I' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCD U+F2 I8=EB o with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCE U+F3 I8=EC o with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCF U+F5 I8=ED o with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xD1 U+4A 'J' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD2 U+4B 'K' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD3 U+4C 'L' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD5 U+4E 'N' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xDB U+FB I8=EF u with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDD U+F9 I8=F1 u with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xDE U+FA I8=F2 u with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xE2 U+53 'S' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE3 U+54 'T' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE6 U+57 'W' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE8 U+59 'Y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEF U+D5 I8=FA O with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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 I8=FB SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFB U+DB I8=FC U with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0D CR */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 0x16 U+08 BS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x44 U+E0 I8=A3 a with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x45 U+E1 I8=A4 a with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x47 U+E5 I8=A6 a with ring */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x4A U+A2 I8=A9 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 I8=AA e with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x52 U+EA I8=AB e with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x54 U+E8 I8=AD e with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x55 U+ED I8=AE i with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x56 U+EE I8=AF i with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x58 U+EC I8=B1 i with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x59 U+DF I8=B2 sharp s */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 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 I8=B3 A with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x63 U+C4 I8=B4 A with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x64 U+C0 I8=B5 A with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x65 U+C1 I8=B6 A with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x66 U+C3 I8=B7 A with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x67 U+C5 I8=B8 A with RING */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x68 U+C7 I8=B9 C with CEDILLA */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x69 U+D1 I8=BA N with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x6A U+A6 I8=BB 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 I8=BC o with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x71 U+C9 I8=BD E with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x72 U+CA I8=BE E with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x73 U+CB I8=BF E with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x74 U+C8 I8=C0 E with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x75 U+CD I8=C1 I with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x76 U+CE I8=C2 I with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x77 U+CF I8=C3 I with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x78 U+CC I8=C4 I with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 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 I8=C5 O with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x81 U+61 'a' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x82 U+62 'b' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x83 U+63 'c' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x84 U+64 'd' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x85 U+65 'e' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x86 U+66 'f' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x87 U+67 'g' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x88 U+68 'h' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x89 U+69 'i' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8A U+AB I8=C6 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8B U+BB I8=C7 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8C U+F0 I8=C8 eth */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8D U+FD I8=C9 y with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8E U+FE I8=CA thorn */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8F U+B1 I8=CB PLUS-MINUS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x90 U+B0 I8=CC DEGREE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x91 U+6A 'j' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x92 U+6B 'k' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x93 U+6C 'l' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x94 U+6D 'm' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x95 U+6E 'n' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x96 U+6F 'o' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x97 U+70 'p' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x98 U+71 'q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x99 U+72 'r' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9A U+AA I8=CD FEMININE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(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 I8=CE MASCULINE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(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 I8=CF ae */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9D U+B8 I8=D0 CEDILLA */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0x9E U+C6 I8=D1 AE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x9F U+A4 I8=D2 CURRENCY */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA0 U+B5 I8=D3 MICRO */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA1 U+7E '~' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA2 U+73 's' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA3 U+74 't' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA4 U+75 'u' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA5 U+76 'v' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA6 U+77 'w' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA7 U+78 'x' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA8 U+79 'y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA9 U+7A 'z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xAA U+A1 I8=D4 INVERTED '!' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAB U+BF I8=D5 INVERTED '?' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAC U+D0 I8=D6 ETH */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAD U+5B '[' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAE U+DE I8=D7 THORN */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAF U+AE I8=D8 REGISTERED */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB0 U+AC I8=D9 NOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB1 U+A3 I8=DA POUND */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB2 U+A5 I8=DB YEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB3 U+B7 I8=DC MIDDLE DOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_),
+/* 0xB4 U+A9 I8=DD COPYRIGHT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB5 U+A7 I8=DE SECTION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+B6 I8=DF PILCROW */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB7 U+BC I8=E0 1/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB8 U+BD I8=E1 1/2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB9 U+BE I8=E2 3/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBA U+DD I8=E3 Y with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xBB U+A8 I8=E4 DIAERESIS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBC U+AF I8=E5 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 I8=E6 ACUTE ACCENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBF U+D7 I8=E7 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_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC2 U+42 'B' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC3 U+43 'C' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC4 U+44 'D' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC5 U+45 'E' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC6 U+46 'F' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC7 U+47 'G' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC8 U+48 'H' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC9 U+49 'I' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCD U+F2 I8=EB o with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCE U+F3 I8=EC o with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCF U+F5 I8=ED o with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xD0 U+7D '}' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xD1 U+4A 'J' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD2 U+4B 'K' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD3 U+4C 'L' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD4 U+4D 'M' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD5 U+4E 'N' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD6 U+4F 'O' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD7 U+50 'P' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD8 U+51 'Q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD9 U+52 'R' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xDB U+FB I8=EF u with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDD U+F9 I8=F1 u with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDE U+FA I8=F2 u with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xE0 U+5C '\' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE2 U+53 'S' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE3 U+54 'T' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE4 U+55 'U' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE5 U+56 'V' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE6 U+57 'W' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE7 U+58 'X' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE8 U+59 'Y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE9 U+5A 'Z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEF U+D5 I8=FA O with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xF0 U+30 '0' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF1 U+31 '1' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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 I8=FB SUPERSCRIPT 3 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xFB U+DB I8=FC U with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFF U+9F APC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)
#endif /* EBCDIC 1047 */
@@ -534,263 +534,263 @@
&& '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
&& '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
&& '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_MNEMONIC_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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 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_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x44 U+E0 I8=A3 a with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x45 U+E1 I8=A4 a with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x47 U+E5 I8=A6 a with ring */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x4A U+A2 I8=A9 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 I8=AA e with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x52 U+EA I8=AB e with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x54 U+E8 I8=AD e with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x55 U+ED I8=AE i with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x56 U+EE I8=AF i with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x58 U+EC I8=B1 i with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x59 U+DF I8=B2 sharp s */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 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 I8=B3 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 I8=B4 A with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x63 U+C4 I8=B5 A with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x64 U+C0 I8=B6 A with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x65 U+C1 I8=B7 A with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x66 U+C3 I8=B8 A with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x67 U+C5 I8=B9 A with RING */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x68 U+C7 I8=BA C with CEDILLA */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x69 U+D1 I8=BB N with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x6A U+A6 I8=BC 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 I8=BD o with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x71 U+C9 I8=BE E with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x72 U+CA I8=BF E with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x73 U+CB I8=C0 E with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x74 U+C8 I8=C1 E with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x75 U+CD I8=C2 I with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x76 U+CE I8=C3 I with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x77 U+CF I8=C4 I with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x78 U+CC I8=C5 I with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 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 I8=C6 O with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x81 U+61 'a' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x82 U+62 'b' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x83 U+63 'c' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x84 U+64 'd' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x85 U+65 'e' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x86 U+66 'f' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x87 U+67 'g' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x88 U+68 'h' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x89 U+69 'i' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8A U+AB I8=C7 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8B U+BB I8=C8 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8C U+F0 I8=C9 eth */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8D U+FD I8=CA y with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8E U+FE I8=CB thorn */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8F U+B1 I8=CC PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x90 U+B0 I8=CD DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x91 U+6A 'j' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x92 U+6B 'k' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x93 U+6C 'l' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x95 U+6E 'n' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x97 U+70 'p' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x98 U+71 'q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x99 U+72 'r' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9A U+AA I8=CE FEMININE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(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 I8=CF MASCULINE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(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 I8=D0 ae */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9D U+B8 I8=D1 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0x9E U+C6 I8=D2 AE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x9F U+A4 I8=D3 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xA0 U+B5 I8=D4 MICRO */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xA2 U+73 's' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA3 U+74 't' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA6 U+77 'w' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA8 U+79 'y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xAA U+A1 I8=D5 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAB U+BF I8=D6 INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAC U+D0 I8=D7 ETH */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAD U+DD I8=D8 Y with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAE U+DE I8=D9 THORN */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAF U+AE I8=DA 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 I8=DB POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB2 U+A5 I8=DC YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB3 U+B7 I8=DD MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
-/* 0xB4 U+A9 I8=DE COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB5 U+A7 I8=DF SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+B6 I8=E0 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xB7 U+BC I8=E1 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB8 U+BD I8=E2 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB9 U+BE I8=E3 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 I8=E4 MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBD U+A8 I8=E5 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBE U+B4 I8=E6 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBF U+D7 I8=E7 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_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC6 U+46 'F' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC8 U+48 'H' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC9 U+49 'I' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCD U+F2 I8=EB o with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCE U+F3 I8=EC o with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCF U+F5 I8=ED o with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xD1 U+4A 'J' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD2 U+4B 'K' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD3 U+4C 'L' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD5 U+4E 'N' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xDB U+FB I8=EF u with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDD U+F9 I8=F1 u with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xDE U+FA I8=F2 u with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xE2 U+53 'S' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE3 U+54 'T' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE6 U+57 'W' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE8 U+59 'Y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xEF U+D5 I8=FA O with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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_OCTDIGIT)|(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 I8=FB SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFB U+DB I8=FC U with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE),
-/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0D CR */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_MNEMONIC_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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 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_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x44 U+E0 I8=A3 a with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x45 U+E1 I8=A4 a with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x47 U+E5 I8=A6 a with ring */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x4A U+A2 I8=A9 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 I8=AA e with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x52 U+EA I8=AB e with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x54 U+E8 I8=AD e with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x55 U+ED I8=AE i with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x56 U+EE I8=AF i with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x58 U+EC I8=B1 i with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x59 U+DF I8=B2 sharp s */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 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 I8=B3 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 I8=B4 A with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x63 U+C4 I8=B5 A with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x64 U+C0 I8=B6 A with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x65 U+C1 I8=B7 A with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x66 U+C3 I8=B8 A with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x67 U+C5 I8=B9 A with RING */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x68 U+C7 I8=BA C with CEDILLA */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x69 U+D1 I8=BB N with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x6A U+A6 I8=BC 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 I8=BD o with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x71 U+C9 I8=BE E with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x72 U+CA I8=BF E with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x73 U+CB I8=C0 E with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x74 U+C8 I8=C1 E with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x75 U+CD I8=C2 I with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x76 U+CE I8=C3 I with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x77 U+CF I8=C4 I with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x78 U+CC I8=C5 I with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 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 I8=C6 O with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x81 U+61 'a' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x82 U+62 'b' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x83 U+63 'c' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x84 U+64 'd' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x85 U+65 'e' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x86 U+66 'f' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x87 U+67 'g' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x88 U+68 'h' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x89 U+69 'i' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8A U+AB I8=C7 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8B U+BB I8=C8 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8C U+F0 I8=C9 eth */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8D U+FD I8=CA y with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8E U+FE I8=CB thorn */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8F U+B1 I8=CC PLUS-MINUS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x90 U+B0 I8=CD DEGREE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x91 U+6A 'j' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x92 U+6B 'k' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x93 U+6C 'l' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x94 U+6D 'm' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x95 U+6E 'n' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x96 U+6F 'o' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x97 U+70 'p' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x98 U+71 'q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x99 U+72 'r' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9A U+AA I8=CE FEMININE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(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 I8=CF MASCULINE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(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 I8=D0 ae */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9D U+B8 I8=D1 CEDILLA */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0x9E U+C6 I8=D2 AE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x9F U+A4 I8=D3 CURRENCY */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA0 U+B5 I8=D4 MICRO */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA1 U+7E '~' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA2 U+73 's' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA3 U+74 't' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA4 U+75 'u' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA5 U+76 'v' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA6 U+77 'w' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA7 U+78 'x' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA8 U+79 'y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA9 U+7A 'z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xAA U+A1 I8=D5 INVERTED '!' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAB U+BF I8=D6 INVERTED '?' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAC U+D0 I8=D7 ETH */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAD U+DD I8=D8 Y with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAE U+DE I8=D9 THORN */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAF U+AE I8=DA 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 I8=DB POUND */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB2 U+A5 I8=DC YEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB3 U+B7 I8=DD MIDDLE DOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_),
+/* 0xB4 U+A9 I8=DE COPYRIGHT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB5 U+A7 I8=DF SECTION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+B6 I8=E0 PILCROW */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB7 U+BC I8=E1 1/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB8 U+BD I8=E2 1/2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB9 U+BE I8=E3 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 I8=E4 MACRON */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBD U+A8 I8=E5 DIAERESIS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBE U+B4 I8=E6 ACUTE ACCENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBF U+D7 I8=E7 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_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC2 U+42 'B' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC3 U+43 'C' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC4 U+44 'D' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC5 U+45 'E' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC6 U+46 'F' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC7 U+47 'G' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC8 U+48 'H' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC9 U+49 'I' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCD U+F2 I8=EB o with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCE U+F3 I8=EC o with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCF U+F5 I8=ED o with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xD0 U+7D '}' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xD1 U+4A 'J' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD2 U+4B 'K' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD3 U+4C 'L' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD4 U+4D 'M' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD5 U+4E 'N' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD6 U+4F 'O' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD7 U+50 'P' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD8 U+51 'Q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD9 U+52 'R' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xDB U+FB I8=EF u with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDD U+F9 I8=F1 u with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDE U+FA I8=F2 u with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xE0 U+5C '\' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE2 U+53 'S' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE3 U+54 'T' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE4 U+55 'U' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE5 U+56 'V' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE6 U+57 'W' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE7 U+58 'X' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE8 U+59 'Y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE9 U+5A 'Z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEF U+D5 I8=FA O with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xF0 U+30 '0' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF1 U+31 '1' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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_OCTDIGIT_)|(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 I8=FB SUPERSCRIPT 3 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xFB U+DB I8=FC U with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFF U+9F APC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)
#endif /* EBCDIC 037 */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/libperl534.a b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/libperl534.a
deleted file mode 100755
index ebdd805cf5..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/libperl534.a
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h
index ae0093afd4..c2a4650d12 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h
@@ -13,7 +13,6 @@
* Symbols should only be here temporarily. Once they are actually used,
* they should be removed from here.
*
- * HAS_WCRTOMB
- * GETENV_PRESERVES_OTHER_THREAD
+ * HAS_NON_INT_BITFIELDS
*
*/
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h
index 446400c1e9..63de4c26e0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h
@@ -107,23 +107,26 @@
0,
0,
/* sig 'S' %SIG hash */
- magic_vtable_max,
+ want_vtbl_sig,
0,
/* uvar 'U' Available for use by extensions */
want_vtbl_uvar,
/* vstring 'V' SV was vstring literal */
magic_vtable_max | PERL_MAGIC_VALUE_MAGIC,
0,
- 0,
+ /* destruct 'X' destruct callback */
+ want_vtbl_destruct | PERL_MAGIC_VALUE_MAGIC,
/* nonelem 'Y' Array element that does not exist */
want_vtbl_nonelem | PERL_MAGIC_VALUE_MAGIC,
- 0,
+ /* hook 'Z' %{^HOOK} hash */
+ want_vtbl_hook,
0,
/* lvref '\' Lvalue reference constructor */
want_vtbl_lvref,
/* checkcall ']' Inlining/mutation of call to this CV */
want_vtbl_checkcall | PERL_MAGIC_VALUE_MAGIC,
- 0,
+ /* extvalue '^' Value magic available for use by extensions */
+ magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC,
0,
0,
0,
@@ -170,11 +173,12 @@
want_vtbl_substr | PERL_MAGIC_VALUE_MAGIC,
/* defelem 'y' Shadow "foreach" iterator variable / smart parameter vivification */
want_vtbl_defelem | PERL_MAGIC_VALUE_MAGIC,
+ /* hookelem 'z' %{^HOOK} hash element */
+ want_vtbl_hookelem,
0,
0,
0,
- 0,
- /* ext '~' Available for use by extensions */
+ /* ext '~' Variable magic available for use by extensions */
magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE,
0,
0,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h
index 2f4863b08e..eddcbf5663 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* mg_raw.h
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
@@ -62,7 +62,7 @@
"/* tiedscalar 'q' Tied scalar or handle */" },
{ 'r', "want_vtbl_regexp | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC",
"/* qr 'r' Precompiled qr// regex */" },
- { 'S', "magic_vtable_max",
+ { 'S', "want_vtbl_sig",
"/* sig 'S' %SIG hash */" },
{ 's', "want_vtbl_sigelem",
"/* sigelem 's' %SIG hash element */" },
@@ -76,17 +76,25 @@
"/* vec 'v' vec() lvalue */" },
{ 'w', "want_vtbl_utf8 | PERL_MAGIC_VALUE_MAGIC",
"/* utf8 'w' Cached UTF-8 information */" },
+ { 'X', "want_vtbl_destruct | PERL_MAGIC_VALUE_MAGIC",
+ "/* destruct 'X' destruct callback */" },
{ 'x', "want_vtbl_substr | PERL_MAGIC_VALUE_MAGIC",
"/* substr 'x' substr() lvalue */" },
{ 'Y', "want_vtbl_nonelem | PERL_MAGIC_VALUE_MAGIC",
"/* nonelem 'Y' Array element that does not exist */" },
{ 'y', "want_vtbl_defelem | PERL_MAGIC_VALUE_MAGIC",
"/* defelem 'y' Shadow \"foreach\" iterator variable / smart parameter vivification */" },
+ { 'Z', "want_vtbl_hook",
+ "/* hook 'Z' %{^HOOK} hash */" },
+ { 'z', "want_vtbl_hookelem",
+ "/* hookelem 'z' %{^HOOK} hash element */" },
{ '\\', "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 | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC",
+ "/* extvalue '^' Value magic available for use by extensions */" },
{ '~', "magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE",
- "/* ext '~' Available for use by extensions */" },
+ "/* ext '~' Variable magic available for use by extensions */" },
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h
index e5c8cba37c..80f265f8c2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* mg_vtable.h
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
@@ -51,13 +51,17 @@
#define PERL_MAGIC_vstring 'V' /* SV was vstring literal */
#define PERL_MAGIC_vec 'v' /* vec() lvalue */
#define PERL_MAGIC_utf8 'w' /* Cached UTF-8 information */
+#define PERL_MAGIC_destruct 'X' /* destruct callback */
#define PERL_MAGIC_substr 'x' /* substr() lvalue */
#define PERL_MAGIC_nonelem 'Y' /* Array element that does not exist */
#define PERL_MAGIC_defelem 'y' /* Shadow "foreach" iterator variable /
smart parameter vivification */
+#define PERL_MAGIC_hook 'Z' /* %{^HOOK} hash */
+#define PERL_MAGIC_hookelem 'z' /* %{^HOOK} hash element */
#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 */
+#define PERL_MAGIC_extvalue '^' /* Value magic available for use by extensions */
+#define PERL_MAGIC_ext '~' /* Variable magic available for use by extensions */
enum { /* pass one of these to get_vtbl */
want_vtbl_arylen,
@@ -68,10 +72,13 @@ enum { /* pass one of these to get_vtbl */
want_vtbl_dbline,
want_vtbl_debugvar,
want_vtbl_defelem,
+ want_vtbl_destruct,
want_vtbl_env,
want_vtbl_envelem,
want_vtbl_hints,
want_vtbl_hintselem,
+ want_vtbl_hook,
+ want_vtbl_hookelem,
want_vtbl_isa,
want_vtbl_isaelem,
want_vtbl_lvref,
@@ -85,6 +92,7 @@ enum { /* pass one of these to get_vtbl */
want_vtbl_regdata,
want_vtbl_regdatum,
want_vtbl_regexp,
+ want_vtbl_sig,
want_vtbl_sigelem,
want_vtbl_substr,
want_vtbl_sv,
@@ -105,10 +113,13 @@ EXTCONST char * const PL_magic_vtable_names[magic_vtable_max] = {
"dbline",
"debugvar",
"defelem",
+ "destruct",
"env",
"envelem",
"hints",
"hintselem",
+ "hook",
+ "hookelem",
"isa",
"isaelem",
"lvref",
@@ -122,6 +133,7 @@ EXTCONST char * const PL_magic_vtable_names[magic_vtable_max] = {
"regdata",
"regdatum",
"regexp",
+ "sig",
"sigelem",
"substr",
"sv",
@@ -165,10 +177,13 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max] = {
{ 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, 0, 0, 0, Perl_magic_freedestruct, 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 },
{ 0, 0, 0, Perl_magic_clearhints, 0, 0, 0, 0 },
{ 0, Perl_magic_sethint, 0, Perl_magic_clearhint, 0, 0, 0, 0 },
+ { 0, Perl_magic_sethookall, 0, Perl_magic_clearhookall, 0, 0, 0, 0 },
+ { 0, Perl_magic_sethook, 0, Perl_magic_clearhook, 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 },
@@ -182,6 +197,7 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max] = {
{ 0, 0, Perl_magic_regdata_cnt, 0, 0, 0, 0, 0 },
{ Perl_magic_regdatum_get, Perl_magic_regdatum_set, 0, 0, 0, 0, 0, 0 },
{ 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 },
+ { 0, Perl_magic_setsigall, 0, 0, 0, 0, 0, 0 },
#ifndef PERL_MICRO
{ Perl_magic_getsig, Perl_magic_setsig, 0, Perl_magic_clearsig, 0, 0, 0, 0 },
#else
@@ -210,11 +226,14 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max];
#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_destruct PL_magic_vtables[want_vtbl_destruct]
#define PL_vtbl_env PL_magic_vtables[want_vtbl_env]
#define PL_vtbl_envelem PL_magic_vtables[want_vtbl_envelem]
#define PL_vtbl_fm PL_magic_vtables[want_vtbl_fm]
#define PL_vtbl_hints PL_magic_vtables[want_vtbl_hints]
#define PL_vtbl_hintselem PL_magic_vtables[want_vtbl_hintselem]
+#define PL_vtbl_hook PL_magic_vtables[want_vtbl_hook]
+#define PL_vtbl_hookelem PL_magic_vtables[want_vtbl_hookelem]
#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]
@@ -228,6 +247,7 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max];
#define PL_vtbl_regdata PL_magic_vtables[want_vtbl_regdata]
#define PL_vtbl_regdatum PL_magic_vtables[want_vtbl_regdatum]
#define PL_vtbl_regexp PL_magic_vtables[want_vtbl_regexp]
+#define PL_vtbl_sig PL_magic_vtables[want_vtbl_sig]
#define PL_vtbl_sigelem PL_magic_vtables[want_vtbl_sigelem]
#define PL_vtbl_substr PL_magic_vtables[want_vtbl_substr]
#define PL_vtbl_sv PL_magic_vtables[want_vtbl_sv]
@@ -236,4 +256,4 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable_max];
#define PL_vtbl_uvar PL_magic_vtables[want_vtbl_uvar]
#define PL_vtbl_vec PL_magic_vtables[want_vtbl_vec]
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h
index 64276aa060..10bd2b0503 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h
@@ -25,7 +25,7 @@ struct _FILE;
#define FILE struct _FILE
#endif
-#ifndef EBCDIC
+#if !defined(OEMVS)
#define _CANNOT "CANNOT"
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h
index cd3926ddc5..503dfdbbcc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h
@@ -15,7 +15,13 @@
* but this is replaced when op is grafted in, when
* this op will point to the real next op, and the new
* parent takes over role of remembering starting op.)
+ * op_sibparent Pointer to the op's next sibling, or to the parent
+ * if there are no more siblings.
* op_ppaddr Pointer to current ppcode's function.
+ * op_targ An index into the current pad, identifying an SV
+ * that is typically used to store the OP's result
+ * (such as a lexical variable, or a SVs_PADTMP
+ * temporary intermediate value).
* op_type The type of the operation.
* op_opt Whether or not the op has been optimised by the
* peephole optimiser.
@@ -58,6 +64,14 @@ typedef PERL_BITFIELD16 Optype;
U8 op_private;
#endif
+#define OpTYPE_set(o,type) \
+ STMT_START { \
+ OP *o_ = (OP *)o; \
+ OPCODE type_ = type; \
+ o_->op_type = type_; \
+ o_->op_ppaddr = PL_ppaddr[type_]; \
+ } STMT_END
+
/* If op_type:9 is changed to :10, also change cx_pusheval()
Also, if the type of op_type is ever changed (e.g. to PERL_BITFIELD32)
then all the other bit-fields before/after it should change their
@@ -74,12 +88,12 @@ typedef PERL_BITFIELD16 Optype;
=for apidoc Amn|U32|GIMME_V
The XSUB-writer's equivalent to Perl's C<wantarray>. Returns C<G_VOID>,
-C<G_SCALAR> or C<G_ARRAY> for void, scalar or list context,
+C<G_SCALAR> or C<G_LIST> for void, scalar or list context,
respectively. See L<perlcall> for a usage example.
=for apidoc AmnD|U32|GIMME
A backward-compatible version of C<GIMME_V> which can only return
-C<G_SCALAR> or C<G_ARRAY>; in a void context, it returns C<G_SCALAR>.
+C<G_SCALAR> or C<G_LIST>; in a void context, it returns C<G_SCALAR>.
Deprecated. Use C<GIMME_V> instead.
=cut
@@ -147,6 +161,9 @@ Deprecated. Use C<GIMME_V> instead.
/* On OP_DUMP, has no label */
/* On OP_UNSTACK, in a C-style for loop */
/* On OP_READLINE, it's for <<>>, not <> */
+ /* On OP_RETURN, module_true is in effect */
+ /* On OP_NEXT/OP_LAST/OP_REDO, there is no
+ * loop label */
/* 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. */
@@ -160,7 +177,7 @@ Deprecated. Use C<GIMME_V> instead.
# define GIMME \
(PL_op->op_flags & OPf_WANT \
? ((PL_op->op_flags & OPf_WANT) == OPf_WANT_LIST \
- ? G_ARRAY \
+ ? G_LIST \
: G_SCALAR) \
: dowantarray())
#endif
@@ -242,8 +259,7 @@ 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 */
+ * field of the other op types */
OP* op_first; /* optree for method name */
SV* op_meth_sv; /* static method name */
} op_u;
@@ -463,6 +479,7 @@ struct loop {
#define cPVOP cPVOPx(PL_op)
#define cCOP cCOPx(PL_op)
#define cLOOP cLOOPx(PL_op)
+#define cMETHOP cMETHOPx(PL_op)
#define cUNOPo cUNOPx(o)
#define cUNOP_AUXo cUNOP_AUXx(o)
@@ -475,6 +492,7 @@ struct loop {
#define cPVOPo cPVOPx(o)
#define cCOPo cCOPx(o)
#define cLOOPo cLOOPx(o)
+#define cMETHOPo cMETHOPx(o)
#define kUNOP cUNOPx(kid)
#define kUNOP_AUX cUNOP_AUXx(kid)
@@ -487,6 +505,7 @@ struct loop {
#define kPVOP cPVOPx(kid)
#define kCOP cCOPx(kid)
#define kLOOP cLOOPx(kid)
+#define kMETHOP cMETHOPx(kid)
typedef enum {
@@ -508,33 +527,40 @@ typedef enum {
#ifdef USE_ITHREADS
-# define cGVOPx_gv(o) ((GV*)PAD_SVl(cPADOPx(o)->op_padix))
+# define cGVOPx_gv(o) ((GV*)PAD_SVl(cPADOPx(o)->op_padix))
# ifndef PERL_CORE
-# define IS_PADGV(v) (v && isGV(v))
-# define IS_PADCONST(v) \
+# 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 \
+# 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 \
+# 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)
+# define cMETHOPx_meth(v) (cMETHOPx(v)->op_u.op_meth_sv \
+ ? cMETHOPx(v)->op_u.op_meth_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 cGVOPx_gv(o) ((GV*)cSVOPx(o)->op_sv)
# ifndef PERL_CORE
-# define IS_PADGV(v) FALSE
-# define IS_PADCONST(v) FALSE
+# 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)
+# define cSVOPx_sv(v) (cSVOPx(v)->op_sv)
+# define cSVOPx_svp(v) (&cSVOPx(v)->op_sv)
+# define cMETHOPx_meth(v) (cMETHOPx(v)->op_u.op_meth_sv)
+# define cMETHOPx_rclass(v) (cMETHOPx(v)->op_rclass_sv)
#endif
-#define cMETHOPx_meth(v) cSVOPx_sv(v)
+#define cMETHOP_meth cMETHOPx_meth(PL_op)
+#define cMETHOP_rclass cMETHOPx_rclass(PL_op)
+
+#define cMETHOPo_meth cMETHOPx_meth(o)
+#define cMETHOPo_rclass cMETHOPx_rclass(o)
-#define cGVOP_gv cGVOPx_gv(PL_op)
-#define cGVOPo_gv cGVOPx_gv(o)
-#define kGVOP_gv cGVOPx_gv(kid)
+#define cGVOP_gv cGVOPx_gv(PL_op)
+#define cGVOPo_gv cGVOPx_gv(o)
+#define kGVOP_gv cGVOPx_gv(kid)
#define cSVOP_sv cSVOPx_sv(PL_op)
#define cSVOPo_sv cSVOPx_sv(o)
#define kSVOP_sv cSVOPx_sv(kid)
@@ -595,6 +621,7 @@ typedef enum {
* The same mutex is used to protect the refcounts of the reg_trie_data
* and reg_ac_data structures, which are shared between duplicated
* regexes.
+ * The same mutex is used to protect the refcounts for RCPV objects.
*/
#ifdef USE_ITHREADS
@@ -602,7 +629,7 @@ typedef enum {
# ifdef PERL_CORE
# define OP_REFCNT_LOCK MUTEX_LOCK(&PL_op_mutex)
# define OP_REFCNT_UNLOCK MUTEX_UNLOCK(&PL_op_mutex)
-# else
+# else /* Subject non-core uses to clang thread safety analysis */
# define OP_REFCNT_LOCK op_refcnt_lock()
# define OP_REFCNT_UNLOCK op_refcnt_unlock()
# endif
@@ -762,29 +789,29 @@ struct block_hooks {
=for apidoc mx|U32|BhkFLAGS|BHK *hk
Return the BHK's flags.
-=for apidoc mxu|void *|BhkENTRY|BHK *hk|which
+=for apidoc mxu|void *|BhkENTRY|BHK *hk|token which
Return an entry from the BHK structure. C<which> is a preprocessor token
indicating which entry to return. If the appropriate flag is not set
this will return C<NULL>. The type of the return value depends on which
entry you ask for.
-=for apidoc Amxu|void|BhkENTRY_set|BHK *hk|which|void *ptr
+=for apidoc Amxu|void|BhkENTRY_set|BHK *hk|token which|void *ptr
Set an entry in the BHK structure, and set the flags to indicate it is
valid. C<which> is a preprocessing token indicating which entry to set.
The type of C<ptr> depends on the entry.
-=for apidoc Amxu|void|BhkDISABLE|BHK *hk|which
+=for apidoc Amxu|void|BhkDISABLE|BHK *hk|token which
Temporarily disable an entry in this BHK structure, by clearing the
appropriate flag. C<which> is a preprocessor token indicating which
entry to disable.
-=for apidoc Amxu|void|BhkENABLE|BHK *hk|which
+=for apidoc Amxu|void|BhkENABLE|BHK *hk|token which
Re-enable an entry in this BHK structure, by setting the appropriate
flag. C<which> is a preprocessor token indicating which entry to enable.
This will assert (under -DDEBUGGING) if the entry doesn't contain a valid
pointer.
-=for apidoc mxu|void|CALL_BLOCK_HOOKS|which|arg
+=for apidoc mxu|void|CALL_BLOCK_HOOKS|token which|arg
Call all the registered block hooks for type C<which>. C<which> is a
preprocessing token; the type of C<arg> depends on C<which>.
@@ -860,7 +887,7 @@ preprocessing token; the type of C<arg> depends on C<which>.
=for apidoc Am|U32|XopFLAGS|XOP *xop
Return the XOP's flags.
-=for apidoc Am||XopENTRY|XOP *xop|which
+=for apidoc Amu||XopENTRY|XOP *xop|token which
Return a member of the XOP structure. C<which> is a cpp token
indicating which entry to return. If the member is not set
this will return a default value. The return type depends
@@ -868,21 +895,21 @@ on C<which>. This macro evaluates its arguments more than
once. If you are using C<Perl_custom_op_xop> to retrieve a
C<XOP *> from a C<OP *>, use the more efficient L</XopENTRYCUSTOM> instead.
-=for apidoc Am||XopENTRYCUSTOM|const OP *o|which
+=for apidoc Amu||XopENTRYCUSTOM|const OP *o|token which
Exactly like C<XopENTRY(XopENTRY(Perl_custom_op_xop(aTHX_ o), which)> but more
efficient. The C<which> parameter is identical to L</XopENTRY>.
-=for apidoc Am|void|XopENTRY_set|XOP *xop|which|value
+=for apidoc Amu|void|XopENTRY_set|XOP *xop|token which|value
Set a member of the XOP structure. C<which> is a cpp token
indicating which entry to set. See L<perlguts/"Custom Operators">
for details about the available members and how
they are used. This macro evaluates its argument
more than once.
-=for apidoc Am|void|XopDISABLE|XOP *xop|which
+=for apidoc Amu|void|XopDISABLE|XOP *xop|token which
Temporarily disable a member of the XOP, by clearing the appropriate flag.
-=for apidoc Am|void|XopENABLE|XOP *xop|which
+=for apidoc Amu|void|XopENABLE|XOP *xop|token which
Reenable a member of the XOP which has been disabled.
=cut
@@ -1143,6 +1170,8 @@ struct op_argcheck_aux {
char slurpy; /* presence of slurpy: may be '\0', '@' or '%' */
};
+#define MI_INIT_WORKAROUND_PACK "Module::Install::DSL"
+
/*
* ex: set ts=8 sts=4 sw=4 et:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h
index e8770e6352..1273cb6f21 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h
@@ -101,8 +101,20 @@ get_regex_charset(const U32 flags)
/* 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_EXTENDED_MORE|RXf_PMf_KEEPCOPY|RXf_PMf_NOCAPTURE|RXf_PMf_CHARSET|RXf_PMf_STRICT)
-#define RXf_PMf_FLAGCOPYMASK (RXf_PMf_COMPILETIME|RXf_PMf_SPLIT)
+#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 )
/* Temporary to get Jenkins happy again
* See thread starting at http://nntp.perl.org/group/perl.perl5.porters/220710
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h
index c808bee65c..9f5182219a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* opcode.h
*
@@ -145,10 +145,7 @@
START_EXTERN_C
-#ifndef DOINIT
-EXTCONST char* const PL_op_name[];
-#else
-EXTCONST char* const PL_op_name[] = {
+EXTCONST char* const PL_op_name[] INIT({
"null",
"stub",
"scalar",
@@ -159,6 +156,7 @@ EXTCONST char* const PL_op_name[] = {
"gv",
"gelem",
"padsv",
+ "padsv_store",
"padav",
"padhv",
"padany",
@@ -287,6 +285,7 @@ EXTCONST char* const PL_op_name[] = {
"rv2av",
"aelemfast",
"aelemfast_lex",
+ "aelemfastlex_store",
"aelem",
"aslice",
"kvaslice",
@@ -311,6 +310,7 @@ EXTCONST char* const PL_op_name[] = {
"lslice",
"anonlist",
"anonhash",
+ "emptyavhv",
"splice",
"push",
"pop",
@@ -553,14 +553,24 @@ EXTCONST char* const PL_op_name[] = {
"leavetrycatch",
"poptry",
"catch",
+ "pushdefer",
+ "is_bool",
+ "is_weak",
+ "weaken",
+ "unweaken",
+ "blessed",
+ "refaddr",
+ "reftype",
+ "ceil",
+ "floor",
+ "is_tainted",
+ "helemexistsor",
+ "methstart",
+ "initfield",
"freed",
-};
-#endif
+});
-#ifndef DOINIT
-EXTCONST char* const PL_op_desc[];
-#else
-EXTCONST char* const PL_op_desc[] = {
+EXTCONST char* const PL_op_desc[] INIT({
"null operation",
"stub",
"scalar",
@@ -571,6 +581,7 @@ EXTCONST char* const PL_op_desc[] = {
"glob value",
"glob elem",
"private variable",
+ "padsv scalar assignment",
"private array",
"private hash",
"private value",
@@ -699,6 +710,7 @@ EXTCONST char* const PL_op_desc[] = {
"array dereference",
"constant array element",
"constant lexical array element",
+ "const lexical array element store",
"array element",
"array slice",
"index/value array slice",
@@ -723,6 +735,7 @@ EXTCONST char* const PL_op_desc[] = {
"list slice",
"anonymous array ([])",
"anonymous hash ({})",
+ "empty anon hash/array",
"splice",
"push",
"pop",
@@ -965,17 +978,29 @@ EXTCONST char* const PL_op_desc[] = {
"try {block} exit",
"pop try",
"catch {} block",
- "freed op",
-};
-#endif
+ "push defer {} block",
+ "boolean type test",
+ "weakref type test",
+ "reference weaken",
+ "reference unweaken",
+ "blessed",
+ "refaddr",
+ "reftype",
+ "ceil",
+ "floor",
+ "is_tainted",
+ "hash element exists or",
+ "method start",
+ "initialise field",
+ "freed op",
+});
END_EXTERN_C
START_EXTERN_C
EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
-#if defined(DOINIT)
-= {
+INIT({
Perl_pp_null,
Perl_pp_stub,
Perl_pp_scalar, /* implemented by Perl_pp_null */
@@ -986,6 +1011,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_gv,
Perl_pp_gelem,
Perl_pp_padsv,
+ Perl_pp_padsv_store,
Perl_pp_padav,
Perl_pp_padhv,
Perl_pp_padany, /* implemented by Perl_unimplemented_op */
@@ -1114,6 +1140,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_rv2av,
Perl_pp_aelemfast,
Perl_pp_aelemfast_lex, /* implemented by Perl_pp_aelemfast */
+ Perl_pp_aelemfastlex_store,
Perl_pp_aelem,
Perl_pp_aslice,
Perl_pp_kvaslice,
@@ -1138,6 +1165,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_lslice,
Perl_pp_anonlist,
Perl_pp_anonhash,
+ Perl_pp_emptyavhv,
Perl_pp_splice,
Perl_pp_push,
Perl_pp_pop, /* implemented by Perl_pp_shift */
@@ -1380,13 +1408,24 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_leavetrycatch,
Perl_pp_poptry,
Perl_pp_catch,
-}
-#endif
-;
+ Perl_pp_pushdefer,
+ Perl_pp_is_bool,
+ Perl_pp_is_weak,
+ Perl_pp_weaken,
+ Perl_pp_unweaken,
+ Perl_pp_blessed,
+ Perl_pp_refaddr,
+ Perl_pp_reftype,
+ Perl_pp_ceil,
+ Perl_pp_floor,
+ Perl_pp_is_tainted,
+ Perl_pp_helemexistsor,
+ Perl_pp_methstart,
+ Perl_pp_initfield,
+});
EXT Perl_check_t PL_check[] /* or perlvars.h */
-#if defined(DOINIT)
-= {
+INIT({
Perl_ck_null, /* null */
Perl_ck_null, /* stub */
Perl_ck_fun, /* scalar */
@@ -1397,6 +1436,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* gv */
Perl_ck_null, /* gelem */
Perl_ck_null, /* padsv */
+ Perl_ck_sassign, /* padsv_store */
Perl_ck_null, /* padav */
Perl_ck_null, /* padhv */
Perl_ck_null, /* padany */
@@ -1525,6 +1565,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_rvconst, /* rv2av */
Perl_ck_null, /* aelemfast */
Perl_ck_null, /* aelemfast_lex */
+ Perl_ck_null, /* aelemfastlex_store */
Perl_ck_null, /* aelem */
Perl_ck_null, /* aslice */
Perl_ck_null, /* kvaslice */
@@ -1549,6 +1590,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* lslice */
Perl_ck_fun, /* anonlist */
Perl_ck_fun, /* anonhash */
+ Perl_ck_fun, /* emptyavhv */
Perl_ck_fun, /* splice */
Perl_ck_fun, /* push */
Perl_ck_shift, /* pop */
@@ -1791,14 +1833,23 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* leavetrycatch */
Perl_ck_null, /* poptry */
Perl_ck_null, /* catch */
-}
-#endif
-;
+ Perl_ck_null, /* pushdefer */
+ Perl_ck_null, /* is_bool */
+ Perl_ck_null, /* is_weak */
+ Perl_ck_null, /* weaken */
+ Perl_ck_null, /* unweaken */
+ Perl_ck_null, /* blessed */
+ Perl_ck_null, /* refaddr */
+ Perl_ck_null, /* reftype */
+ Perl_ck_null, /* ceil */
+ Perl_ck_null, /* floor */
+ Perl_ck_null, /* is_tainted */
+ Perl_ck_helemexistsor, /* helemexistsor */
+ Perl_ck_null, /* methstart */
+ Perl_ck_null, /* initfield */
+});
-#ifndef DOINIT
-EXTCONST U32 PL_opargs[];
-#else
-EXTCONST U32 PL_opargs[] = {
+EXTCONST U32 PL_opargs[] INIT({
0x00000000, /* null */
0x00000000, /* stub */
0x00001b04, /* scalar */
@@ -1809,6 +1860,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000644, /* gv */
0x00011244, /* gelem */
0x00000044, /* padsv */
+ 0x00011104, /* padsv_store */
0x00000040, /* padav */
0x00000040, /* padhv */
0x00000040, /* padany */
@@ -1937,6 +1989,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000148, /* rv2av */
0x00013644, /* aelemfast */
0x00013040, /* aelemfast_lex */
+ 0x00013140, /* aelemfastlex_store */
0x00013204, /* aelem */
0x00023401, /* aslice */
0x00023401, /* kvaslice */
@@ -1961,6 +2014,7 @@ EXTCONST U32 PL_opargs[] = {
0x00224200, /* lslice */
0x00002405, /* anonlist */
0x00002405, /* anonhash */
+ 0x0000241c, /* emptyavhv */
0x02993401, /* splice */
0x0002341d, /* push */
0x0000bb04, /* pop */
@@ -2203,8 +2257,21 @@ EXTCONST U32 PL_opargs[] = {
0x00000400, /* leavetrycatch */
0x00000400, /* poptry */
0x00000300, /* catch */
-};
-#endif
+ 0x00000300, /* pushdefer */
+ 0x00000106, /* is_bool */
+ 0x00000106, /* is_weak */
+ 0x00000100, /* weaken */
+ 0x00000100, /* unweaken */
+ 0x00000106, /* blessed */
+ 0x0000011e, /* refaddr */
+ 0x0000011e, /* reftype */
+ 0x0000011e, /* ceil */
+ 0x0000011e, /* floor */
+ 0x00000106, /* is_tainted */
+ 0x00011300, /* helemexistsor */
+ 0x00000f00, /* methstart */
+ 0x00000f00, /* initfield */
+});
END_EXTERN_C
@@ -2224,6 +2291,7 @@ END_EXTERN_C
#define OPpEVAL_HAS_HH 0x02
#define OPpFT_ACCESS 0x02
#define OPpHINT_STRICT_REFS 0x02
+#define OPpINITFIELD_AV 0x02
#define OPpITER_REVERSED 0x02
#define OPpSORT_INTEGER 0x02
#define OPpTRANS_USE_SVOP 0x02
@@ -2236,11 +2304,13 @@ END_EXTERN_C
#define OPpENTERSUB_HASTARG 0x04
#define OPpEVAL_UNICODE 0x04
#define OPpFT_STACKED 0x04
+#define OPpINITFIELD_HV 0x04
#define OPpLVREF_ELEM 0x04
#define OPpSLICEWARNING 0x04
#define OPpSORT_REVERSE 0x04
#define OPpSPLIT_IMPLIM 0x04
#define OPpTRANS_IDENTICAL 0x04
+#define OPpUSEINT 0x04
#define OPpARGELEM_MASK 0x06
#define OPpARG3_MASK 0x07
#define OPpPADRANGE_COUNTSHIFT 0x07
@@ -2273,6 +2343,7 @@ END_EXTERN_C
#define OPpASSIGN_COMMON_RC1 0x20
#define OPpDEREF_HV 0x20
#define OPpEARLY_CV 0x20
+#define OPpEMPTYAVHV_IS_HV 0x20
#define OPpEVAL_RE_REPARSING 0x20
#define OPpHUSH_VMSISH 0x20
#define OPpKVSLICE 0x20
@@ -2283,17 +2354,20 @@ END_EXTERN_C
#define OPpOPEN_IN_CRLF 0x20
#define OPpTRANS_COMPLEMENT 0x20
#define OPpTRUEBOOL 0x20
+#define OPpUNDEF_KEEP_PV 0x20
#define OPpDEREF 0x30
#define OPpDEREF_SV 0x30
#define OPpLVREF_CV 0x30
#define OPpLVREF_TYPE 0x30
#define OPpALLOW_FAKE 0x40
+#define OPpARG_IF_FALSE 0x40
#define OPpASSIGN_BACKWARDS 0x40
#define OPpASSIGN_COMMON_SCALAR 0x40
#define OPpCONCAT_NESTED 0x40
#define OPpCONST_BARE 0x40
#define OPpCOREARGS_SCALARMOD 0x40
#define OPpENTERSUB_DB 0x40
+#define OPpEVAL_EVALSV 0x40
#define OPpEXISTS_SUB 0x40
#define OPpFLIP_LINENUM 0x40
#define OPpINDEX_BOOLNEG 0x40
@@ -2306,18 +2380,20 @@ END_EXTERN_C
#define OPpREFCOUNTED 0x40
#define OPpREPEAT_DOLIST 0x40
#define OPpSLICE 0x40
-#define OPpSORT_STABLE 0x40
#define OPpTRANS_GROWS 0x40
#define OPpPADRANGE_COUNTMASK 0x7f
+#define OPpARG_IF_UNDEF 0x80
#define OPpASSIGN_CV_TO_GV 0x80
#define OPpCOREARGS_PUSHMARK 0x80
+#define OPpDEFER_FINALLY 0x80
#define OPpENTERSUB_NOPAREN 0x80
+#define OPpHELEMEXISTSOR_DELETE 0x80
+#define OPpINITFIELDS 0x80
#define OPpLVALUE 0x80
#define OPpLVAL_INTRO 0x80
#define OPpOFFBYONE 0x80
#define OPpOPEN_OUT_CRLF 0x80
#define OPpPV_IS_UTF8 0x80
-#define OPpSORT_UNSTABLE 0x80
#define OPpTRANS_DELETE 0x80
START_EXTERN_C
@@ -2344,6 +2420,7 @@ EXTCONST char PL_op_private_labels[] = {
'+','1','\0',
'-','\0',
'A','M','P','E','R','\0',
+ 'A','N','O','N','H','A','S','H','\0',
'A','P','P','E','N','D','\0',
'A','S','S','I','G','N','\0',
'A','V','\0',
@@ -2375,8 +2452,10 @@ EXTCONST char PL_op_private_labels[] = {
'E','A','R','L','Y','C','V','\0',
'E','L','E','M','\0',
'E','N','T','E','R','E','D','\0',
+ 'E','V','A','L','S','V','\0',
'E','X','I','S','T','S','\0',
'F','A','K','E','\0',
+ 'F','I','N','A','L','L','Y','\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',
@@ -2387,13 +2466,19 @@ EXTCONST char PL_op_private_labels[] = {
'H','U','S','H','\0',
'H','V','\0',
'I','D','E','N','T','\0',
+ 'I','F','_','F','A','L','S','E','\0',
+ 'I','F','_','U','N','D','E','F','\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','I','T','F','I','E','L','D','S','\0',
+ 'I','N','I','T','F','I','E','L','D','_','A','V','\0',
+ 'I','N','I','T','F','I','E','L','D','_','H','V','\0',
'I','N','P','L','A','C','E','\0',
'I','N','T','\0',
'I','T','E','R','\0',
+ 'K','E','E','P','_','P','V','\0',
'K','E','Y','S','\0',
'K','V','S','L','I','C','E','\0',
'L','E','X','\0',
@@ -2421,7 +2506,6 @@ EXTCONST char PL_op_private_labels[] = {
'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','T','R','I','N','G','I','F','Y','\0',
@@ -2430,7 +2514,7 @@ EXTCONST char PL_op_private_labels[] = {
'T','A','R','G','\0',
'T','A','R','G','M','Y','\0',
'U','N','I','\0',
- 'U','N','S','T','A','B','L','E','\0',
+ 'U','S','E','I','N','T','\0',
'U','S','E','_','S','V','O','P','\0',
'U','T','F','\0',
'k','e','y','\0',
@@ -2454,14 +2538,14 @@ EXTCONST char PL_op_private_labels[] = {
EXTCONST I16 PL_op_private_bitfields[] = {
0, 8, -1,
0, 8, -1,
- 0, 597, -1,
+ 0, 675, -1,
0, 8, -1,
0, 8, -1,
- 0, 604, -1,
- 0, 593, -1,
- 1, -1, 0, 552, 1, 30, 2, 295, -1,
- 4, -1, 1, 176, 2, 183, 3, 190, -1,
- 4, -1, 0, 552, 1, 30, 2, 295, 3, 122, -1,
+ 0, 682, -1,
+ 0, 671, -1,
+ 1, -1, 0, 632, 1, 39, 2, 319, -1,
+ 4, -1, 1, 185, 2, 192, 3, 199, -1,
+ 4, -1, 0, 632, 1, 39, 2, 319, 3, 131, -1,
};
@@ -2480,21 +2564,22 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
11, /* gv */
12, /* gelem */
13, /* padsv */
- 16, /* padav */
- 21, /* padhv */
+ 16, /* padsv_store */
+ 19, /* padav */
+ 24, /* padhv */
-1, /* padany */
- 28, /* rv2gv */
- 35, /* rv2sv */
- 40, /* av2arylen */
- 42, /* rv2cv */
+ 31, /* rv2gv */
+ 38, /* rv2sv */
+ 43, /* av2arylen */
+ 45, /* rv2cv */
-1, /* anoncode */
0, /* prototype */
0, /* refgen */
0, /* srefgen */
- 49, /* ref */
- 52, /* bless */
- 53, /* backtick */
- 52, /* glob */
+ 52, /* ref */
+ 55, /* bless */
+ 56, /* backtick */
+ 55, /* glob */
0, /* readline */
-1, /* rcatline */
0, /* regcmaybe */
@@ -2502,20 +2587,20 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* regcomp */
-1, /* match */
-1, /* qr */
- 58, /* subst */
+ 61, /* subst */
0, /* substcont */
- 59, /* trans */
- 59, /* transr */
- 66, /* sassign */
- 69, /* aassign */
+ 62, /* trans */
+ 62, /* transr */
+ 69, /* sassign */
+ 72, /* aassign */
0, /* chop */
0, /* schop */
- 75, /* chomp */
- 75, /* schomp */
+ 78, /* chomp */
+ 78, /* schomp */
0, /* defined */
- 0, /* undef */
+ 80, /* undef */
0, /* study */
- 77, /* pos */
+ 85, /* pos */
0, /* preinc */
0, /* i_preinc */
0, /* predec */
@@ -2524,23 +2609,23 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* i_postinc */
0, /* postdec */
0, /* i_postdec */
- 80, /* pow */
- 80, /* multiply */
- 80, /* i_multiply */
- 80, /* divide */
- 80, /* i_divide */
- 80, /* modulo */
- 80, /* i_modulo */
- 82, /* repeat */
- 80, /* add */
- 80, /* i_add */
- 80, /* subtract */
- 80, /* i_subtract */
- 84, /* concat */
- 87, /* multiconcat */
- 93, /* stringify */
- 80, /* left_shift */
- 80, /* right_shift */
+ 88, /* pow */
+ 88, /* multiply */
+ 88, /* i_multiply */
+ 88, /* divide */
+ 88, /* i_divide */
+ 88, /* modulo */
+ 88, /* i_modulo */
+ 90, /* repeat */
+ 88, /* add */
+ 88, /* i_add */
+ 88, /* subtract */
+ 88, /* i_subtract */
+ 92, /* concat */
+ 95, /* multiconcat */
+ 101, /* stringify */
+ 103, /* left_shift */
+ 103, /* right_shift */
12, /* lt */
12, /* i_lt */
12, /* gt */
@@ -2562,126 +2647,128 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
12, /* seq */
12, /* sne */
12, /* scmp */
- 12, /* bit_and */
- 12, /* bit_xor */
- 12, /* bit_or */
- 80, /* nbit_and */
- 80, /* nbit_xor */
- 80, /* nbit_or */
- 12, /* sbit_and */
- 12, /* sbit_xor */
- 12, /* sbit_or */
+ 105, /* bit_and */
+ 105, /* bit_xor */
+ 105, /* bit_or */
+ 103, /* nbit_and */
+ 103, /* nbit_xor */
+ 103, /* nbit_or */
+ 105, /* sbit_and */
+ 105, /* sbit_xor */
+ 105, /* sbit_or */
0, /* negate */
0, /* i_negate */
0, /* not */
- 0, /* complement */
- 75, /* ncomplement */
- 75, /* scomplement */
+ 105, /* complement */
+ 103, /* ncomplement */
+ 78, /* scomplement */
12, /* smartmatch */
- 93, /* atan2 */
- 75, /* sin */
- 75, /* cos */
- 93, /* rand */
- 93, /* srand */
- 75, /* exp */
- 75, /* log */
- 75, /* sqrt */
- 75, /* int */
- 75, /* hex */
- 75, /* oct */
- 75, /* abs */
- 95, /* length */
- 98, /* substr */
- 101, /* vec */
- 103, /* index */
- 103, /* rindex */
- 52, /* sprintf */
- 52, /* formline */
- 75, /* ord */
- 75, /* chr */
- 93, /* crypt */
+ 101, /* atan2 */
+ 78, /* sin */
+ 78, /* cos */
+ 101, /* rand */
+ 101, /* srand */
+ 78, /* exp */
+ 78, /* log */
+ 78, /* sqrt */
+ 78, /* int */
+ 78, /* hex */
+ 78, /* oct */
+ 78, /* abs */
+ 106, /* length */
+ 109, /* substr */
+ 112, /* vec */
+ 114, /* index */
+ 114, /* rindex */
+ 55, /* sprintf */
+ 55, /* formline */
+ 78, /* ord */
+ 78, /* chr */
+ 101, /* crypt */
0, /* ucfirst */
0, /* lcfirst */
0, /* uc */
0, /* lc */
0, /* quotemeta */
- 107, /* rv2av */
- 114, /* aelemfast */
- 114, /* aelemfast_lex */
- 115, /* aelem */
- 120, /* aslice */
- 123, /* kvaslice */
+ 118, /* rv2av */
+ 125, /* aelemfast */
+ 125, /* aelemfast_lex */
+ 125, /* aelemfastlex_store */
+ 126, /* aelem */
+ 131, /* aslice */
+ 134, /* kvaslice */
0, /* aeach */
0, /* avalues */
- 40, /* akeys */
+ 43, /* akeys */
0, /* each */
- 40, /* values */
- 40, /* keys */
- 124, /* delete */
- 128, /* exists */
- 130, /* rv2hv */
- 115, /* helem */
- 120, /* hslice */
- 123, /* kvhslice */
- 138, /* multideref */
- 52, /* unpack */
- 52, /* pack */
- 145, /* split */
- 52, /* join */
- 150, /* list */
+ 43, /* values */
+ 43, /* keys */
+ 135, /* delete */
+ 139, /* exists */
+ 141, /* rv2hv */
+ 126, /* helem */
+ 131, /* hslice */
+ 134, /* kvhslice */
+ 149, /* multideref */
+ 55, /* unpack */
+ 55, /* pack */
+ 156, /* split */
+ 55, /* join */
+ 161, /* list */
12, /* lslice */
- 52, /* anonlist */
- 52, /* anonhash */
- 52, /* splice */
- 93, /* push */
+ 55, /* anonlist */
+ 55, /* anonhash */
+ 163, /* emptyavhv */
+ 55, /* splice */
+ 101, /* push */
0, /* pop */
0, /* shift */
- 93, /* unshift */
- 152, /* sort */
- 159, /* reverse */
+ 101, /* unshift */
+ 168, /* sort */
+ 173, /* reverse */
0, /* grepstart */
- 161, /* grepwhile */
+ 175, /* grepwhile */
0, /* mapstart */
0, /* mapwhile */
0, /* range */
- 163, /* flip */
- 163, /* flop */
+ 177, /* flip */
+ 177, /* flop */
0, /* and */
0, /* or */
12, /* xor */
0, /* dor */
- 165, /* cond_expr */
+ 179, /* cond_expr */
0, /* andassign */
0, /* orassign */
0, /* dorassign */
- 167, /* entersub */
- 174, /* leavesub */
- 174, /* leavesublv */
+ 181, /* entersub */
+ 188, /* leavesub */
+ 188, /* leavesublv */
0, /* argcheck */
- 176, /* argelem */
- 0, /* argdefelem */
- 178, /* caller */
- 52, /* warn */
- 52, /* die */
- 52, /* reset */
+ 190, /* argelem */
+ 192, /* argdefelem */
+ 195, /* caller */
+ 55, /* warn */
+ 55, /* die */
+ 55, /* reset */
-1, /* lineseq */
- 180, /* nextstate */
- 180, /* dbstate */
+ 197, /* nextstate */
+ 197, /* dbstate */
-1, /* unstack */
-1, /* enter */
- 181, /* leave */
+ 198, /* leave */
-1, /* scope */
- 183, /* enteriter */
- 187, /* iter */
+ 200, /* enteriter */
+ 204, /* iter */
-1, /* enterloop */
- 188, /* leaveloop */
+ 205, /* leaveloop */
-1, /* return */
- 190, /* last */
- 190, /* next */
- 190, /* redo */
- 190, /* dump */
- 190, /* goto */
- 52, /* exit */
+ 207, /* last */
+ 207, /* next */
+ 207, /* redo */
+ 207, /* dump */
+ 207, /* goto */
+ 55, /* exit */
0, /* method */
0, /* method_named */
0, /* method_super */
@@ -2693,143 +2780,143 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* leavewhen */
-1, /* break */
-1, /* continue */
- 192, /* open */
- 52, /* close */
- 52, /* pipe_op */
- 52, /* fileno */
- 52, /* umask */
- 52, /* binmode */
- 52, /* tie */
+ 209, /* open */
+ 55, /* close */
+ 55, /* pipe_op */
+ 55, /* fileno */
+ 55, /* umask */
+ 55, /* binmode */
+ 55, /* tie */
0, /* untie */
0, /* tied */
- 52, /* dbmopen */
+ 55, /* dbmopen */
0, /* dbmclose */
- 52, /* sselect */
- 52, /* select */
- 52, /* getc */
- 52, /* read */
- 52, /* enterwrite */
- 174, /* leavewrite */
+ 55, /* sselect */
+ 55, /* select */
+ 55, /* getc */
+ 55, /* read */
+ 55, /* enterwrite */
+ 188, /* leavewrite */
-1, /* prtf */
-1, /* print */
-1, /* say */
- 52, /* sysopen */
- 52, /* sysseek */
- 52, /* sysread */
- 52, /* syswrite */
- 52, /* eof */
- 52, /* tell */
- 52, /* seek */
- 52, /* truncate */
- 52, /* fcntl */
- 52, /* ioctl */
- 93, /* flock */
- 52, /* send */
- 52, /* recv */
- 52, /* socket */
- 52, /* sockpair */
- 52, /* bind */
- 52, /* connect */
- 52, /* listen */
- 52, /* accept */
- 52, /* shutdown */
- 52, /* gsockopt */
- 52, /* ssockopt */
+ 55, /* sysopen */
+ 55, /* sysseek */
+ 55, /* sysread */
+ 55, /* syswrite */
+ 55, /* eof */
+ 55, /* tell */
+ 55, /* seek */
+ 55, /* truncate */
+ 55, /* fcntl */
+ 55, /* ioctl */
+ 101, /* flock */
+ 55, /* send */
+ 55, /* recv */
+ 55, /* socket */
+ 55, /* sockpair */
+ 55, /* bind */
+ 55, /* connect */
+ 55, /* listen */
+ 55, /* accept */
+ 55, /* shutdown */
+ 55, /* gsockopt */
+ 55, /* ssockopt */
0, /* getsockname */
0, /* getpeername */
0, /* lstat */
0, /* stat */
- 197, /* ftrread */
- 197, /* ftrwrite */
- 197, /* ftrexec */
- 197, /* fteread */
- 197, /* ftewrite */
- 197, /* fteexec */
- 202, /* ftis */
- 202, /* ftsize */
- 202, /* ftmtime */
- 202, /* ftatime */
- 202, /* ftctime */
- 202, /* ftrowned */
- 202, /* fteowned */
- 202, /* ftzero */
- 202, /* ftsock */
- 202, /* ftchr */
- 202, /* ftblk */
- 202, /* ftfile */
- 202, /* ftdir */
- 202, /* ftpipe */
- 202, /* ftsuid */
- 202, /* ftsgid */
- 202, /* ftsvtx */
- 202, /* ftlink */
- 202, /* fttty */
- 202, /* fttext */
- 202, /* ftbinary */
- 93, /* chdir */
- 93, /* chown */
- 75, /* chroot */
- 93, /* unlink */
- 93, /* chmod */
- 93, /* utime */
- 93, /* rename */
- 93, /* link */
- 93, /* symlink */
+ 214, /* ftrread */
+ 214, /* ftrwrite */
+ 214, /* ftrexec */
+ 214, /* fteread */
+ 214, /* ftewrite */
+ 214, /* fteexec */
+ 219, /* ftis */
+ 219, /* ftsize */
+ 219, /* ftmtime */
+ 219, /* ftatime */
+ 219, /* ftctime */
+ 219, /* ftrowned */
+ 219, /* fteowned */
+ 219, /* ftzero */
+ 219, /* ftsock */
+ 219, /* ftchr */
+ 219, /* ftblk */
+ 219, /* ftfile */
+ 219, /* ftdir */
+ 219, /* ftpipe */
+ 219, /* ftsuid */
+ 219, /* ftsgid */
+ 219, /* ftsvtx */
+ 219, /* ftlink */
+ 219, /* fttty */
+ 219, /* fttext */
+ 219, /* ftbinary */
+ 101, /* chdir */
+ 101, /* chown */
+ 78, /* chroot */
+ 101, /* unlink */
+ 101, /* chmod */
+ 101, /* utime */
+ 101, /* rename */
+ 101, /* link */
+ 101, /* symlink */
0, /* readlink */
- 93, /* mkdir */
- 75, /* rmdir */
- 52, /* open_dir */
+ 101, /* mkdir */
+ 78, /* rmdir */
+ 55, /* open_dir */
0, /* readdir */
0, /* telldir */
- 52, /* seekdir */
+ 55, /* seekdir */
0, /* rewinddir */
0, /* closedir */
-1, /* fork */
- 206, /* wait */
- 93, /* waitpid */
- 93, /* system */
- 93, /* exec */
- 93, /* kill */
- 206, /* getppid */
- 93, /* getpgrp */
- 93, /* setpgrp */
- 93, /* getpriority */
- 93, /* setpriority */
- 206, /* time */
+ 223, /* wait */
+ 101, /* waitpid */
+ 101, /* system */
+ 101, /* exec */
+ 101, /* kill */
+ 223, /* getppid */
+ 101, /* getpgrp */
+ 101, /* setpgrp */
+ 101, /* getpriority */
+ 101, /* setpriority */
+ 223, /* time */
-1, /* tms */
0, /* localtime */
- 52, /* gmtime */
+ 55, /* gmtime */
0, /* alarm */
- 93, /* sleep */
- 52, /* shmget */
- 52, /* shmctl */
- 52, /* shmread */
- 52, /* shmwrite */
- 52, /* msgget */
- 52, /* msgctl */
- 52, /* msgsnd */
- 52, /* msgrcv */
- 52, /* semop */
- 52, /* semget */
- 52, /* semctl */
+ 101, /* sleep */
+ 55, /* shmget */
+ 55, /* shmctl */
+ 55, /* shmread */
+ 55, /* shmwrite */
+ 55, /* msgget */
+ 55, /* msgctl */
+ 55, /* msgsnd */
+ 55, /* msgrcv */
+ 55, /* semop */
+ 55, /* semget */
+ 55, /* semctl */
0, /* require */
0, /* dofile */
-1, /* hintseval */
- 207, /* entereval */
- 174, /* leaveeval */
+ 224, /* entereval */
+ 188, /* leaveeval */
0, /* entertry */
-1, /* leavetry */
0, /* ghbyname */
- 52, /* ghbyaddr */
+ 55, /* ghbyaddr */
-1, /* ghostent */
0, /* gnbyname */
- 52, /* gnbyaddr */
+ 55, /* gnbyaddr */
-1, /* gnetent */
0, /* gpbyname */
- 52, /* gpbynumber */
+ 55, /* gpbynumber */
-1, /* gprotoent */
- 52, /* gsbyname */
- 52, /* gsbyport */
+ 55, /* gsbyname */
+ 55, /* gsbyport */
-1, /* gservent */
0, /* shostent */
0, /* snetent */
@@ -2850,22 +2937,22 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
-1, /* sgrent */
-1, /* egrent */
-1, /* getlogin */
- 52, /* syscall */
+ 55, /* syscall */
0, /* lock */
0, /* once */
-1, /* custom */
- 213, /* coreargs */
- 217, /* avhvswitch */
+ 231, /* coreargs */
+ 235, /* avhvswitch */
3, /* runcv */
0, /* fc */
-1, /* padcv */
-1, /* introcv */
-1, /* clonecv */
- 219, /* padrange */
- 221, /* refassign */
- 227, /* lvref */
- 233, /* lvrefslice */
- 234, /* lvavref */
+ 237, /* padrange */
+ 239, /* refassign */
+ 245, /* lvref */
+ 251, /* lvrefslice */
+ 16, /* lvavref */
0, /* anonconst */
12, /* isa */
0, /* cmpchain_and */
@@ -2874,6 +2961,20 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
-1, /* leavetrycatch */
-1, /* poptry */
0, /* catch */
+ 252, /* pushdefer */
+ 0, /* is_bool */
+ 0, /* is_weak */
+ 0, /* weaken */
+ 0, /* unweaken */
+ 52, /* blessed */
+ 78, /* refaddr */
+ 78, /* reftype */
+ 78, /* ceil */
+ 78, /* floor */
+ 0, /* is_tainted */
+ 254, /* helemexistsor */
+ 256, /* methstart */
+ 258, /* initfield */
};
@@ -2892,76 +2993,85 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
*/
EXTCONST U16 PL_op_private_bitdefs[] = {
- 0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, 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, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, argdefelem, 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, fc, anonconst, cmpchain_and, cmpchain_dup, entertrycatch, catch */
- 0x2fdc, 0x41b9, /* pushmark */
+ 0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, 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, fc, anonconst, cmpchain_and, cmpchain_dup, entertrycatch, catch, is_bool, is_weak, weaken, unweaken, is_tainted */
+ 0x3abc, 0x4bb9, /* pushmark */
0x00bd, /* wantarray, runcv */
- 0x0438, 0x1a50, 0x426c, 0x3d28, 0x3505, /* const */
- 0x2fdc, 0x3659, /* gvsv */
- 0x18b5, /* 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, isa */
- 0x2fdc, 0x41b8, 0x03d7, /* padsv */
- 0x2fdc, 0x41b8, 0x05b4, 0x30cc, 0x3ea9, /* padav */
- 0x2fdc, 0x41b8, 0x05b4, 0x0650, 0x30cc, 0x3ea8, 0x2b41, /* padhv */
- 0x2fdc, 0x1c38, 0x03d6, 0x30cc, 0x3428, 0x4264, 0x0003, /* rv2gv */
- 0x2fdc, 0x3658, 0x03d6, 0x4264, 0x0003, /* rv2sv */
- 0x30cc, 0x0003, /* av2arylen, akeys, values, keys */
- 0x339c, 0x1078, 0x0dd4, 0x014c, 0x4568, 0x4264, 0x0003, /* rv2cv */
- 0x05b4, 0x0650, 0x0003, /* ref */
+ 0x0558, 0x1b70, 0x4c6c, 0x4808, 0x3fe5, /* const */
+ 0x3abc, 0x4139, /* gvsv */
+ 0x19d5, /* 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, smartmatch, lslice, xor, isa */
+ 0x3abc, 0x4bb8, 0x03d7, /* padsv */
+ 0x3abc, 0x4bb8, 0x0003, /* padsv_store, lvavref */
+ 0x3abc, 0x4bb8, 0x06d4, 0x3bac, 0x4989, /* padav */
+ 0x3abc, 0x4bb8, 0x06d4, 0x0770, 0x3bac, 0x4988, 0x3621, /* padhv */
+ 0x3abc, 0x1e38, 0x03d6, 0x3bac, 0x3f08, 0x4c64, 0x0003, /* rv2gv */
+ 0x3abc, 0x4138, 0x03d6, 0x4c64, 0x0003, /* rv2sv */
+ 0x3bac, 0x0003, /* av2arylen, akeys, values, keys */
+ 0x3e7c, 0x1198, 0x0ef4, 0x014c, 0x4f68, 0x4c64, 0x0003, /* rv2cv */
+ 0x06d4, 0x0770, 0x0003, /* ref, blessed */
0x018f, /* 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 */
- 0x383c, 0x3758, 0x2894, 0x27d0, 0x0003, /* backtick */
- 0x05b5, /* subst */
- 0x117c, 0x21b8, 0x09b4, 0x3fec, 0x2548, 0x4884, 0x07c1, /* trans, transr */
- 0x0fbc, 0x04d8, 0x0067, /* sassign */
- 0x0c78, 0x0b74, 0x0a70, 0x30cc, 0x05a8, 0x0067, /* aassign */
- 0x4610, 0x0003, /* chomp, schomp, ncomplement, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir */
- 0x05b4, 0x30cc, 0x0003, /* pos */
- 0x4610, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract, left_shift, right_shift, nbit_and, nbit_xor, nbit_or */
- 0x1538, 0x0067, /* repeat */
- 0x32b8, 0x4610, 0x0067, /* concat */
- 0x2fdc, 0x0218, 0x1c34, 0x4610, 0x434c, 0x0003, /* multiconcat */
- 0x4610, 0x018f, /* stringify, atan2, rand, srand, crypt, push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, symlink, mkdir, waitpid, system, exec, kill, getpgrp, setpgrp, getpriority, setpriority, sleep */
- 0x05b4, 0x4610, 0x0003, /* length */
- 0x3a90, 0x30cc, 0x012b, /* substr */
- 0x30cc, 0x0067, /* vec */
- 0x3238, 0x05b4, 0x4610, 0x018f, /* index, rindex */
- 0x2fdc, 0x3658, 0x05b4, 0x30cc, 0x3ea8, 0x4264, 0x0003, /* rv2av */
- 0x025f, /* aelemfast, aelemfast_lex */
- 0x2fdc, 0x2ed8, 0x03d6, 0x30cc, 0x0067, /* aelem, helem */
- 0x2fdc, 0x30cc, 0x3ea9, /* aslice, hslice */
- 0x30cd, /* kvaslice, kvhslice */
- 0x2fdc, 0x3df8, 0x2bf4, 0x0003, /* delete */
- 0x4498, 0x0003, /* exists */
- 0x2fdc, 0x3658, 0x05b4, 0x0650, 0x30cc, 0x3ea8, 0x4264, 0x2b41, /* rv2hv */
- 0x2fdc, 0x2ed8, 0x11f4, 0x1b50, 0x30cc, 0x4264, 0x0003, /* multideref */
- 0x2fdc, 0x3658, 0x02f0, 0x2cec, 0x2609, /* split */
- 0x2fdc, 0x2279, /* list */
- 0x477c, 0x40d8, 0x1490, 0x292c, 0x3b88, 0x2a24, 0x35c1, /* sort */
- 0x292c, 0x0003, /* reverse */
- 0x05b4, 0x0003, /* grepwhile */
- 0x2d78, 0x0003, /* flip, flop */
- 0x2fdc, 0x0003, /* cond_expr */
- 0x2fdc, 0x1078, 0x03d6, 0x014c, 0x4568, 0x4264, 0x26e1, /* entersub */
- 0x38f8, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
+ 0x431c, 0x4238, 0x2dd4, 0x2d10, 0x0003, /* backtick */
+ 0x06d5, /* subst */
+ 0x129c, 0x24b8, 0x0ad4, 0x4acc, 0x2848, 0x5244, 0x08e1, /* trans, transr */
+ 0x10dc, 0x05f8, 0x0067, /* sassign */
+ 0x0d98, 0x0c94, 0x0b90, 0x3bac, 0x06c8, 0x0067, /* aassign */
+ 0x5010, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, refaddr, reftype, ceil, floor */
+ 0x3abc, 0x4bb8, 0x3534, 0x5010, 0x0003, /* undef */
+ 0x06d4, 0x3bac, 0x0003, /* pos */
+ 0x5010, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract */
+ 0x1658, 0x0067, /* repeat */
+ 0x3d98, 0x5010, 0x0067, /* concat */
+ 0x3abc, 0x0338, 0x1e34, 0x5010, 0x4d4c, 0x0003, /* multiconcat */
+ 0x5010, 0x018f, /* stringify, atan2, rand, srand, crypt, push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, symlink, mkdir, waitpid, system, exec, kill, getpgrp, setpgrp, getpriority, setpriority, sleep */
+ 0x5010, 0x5169, /* left_shift, right_shift, nbit_and, nbit_xor, nbit_or, ncomplement */
+ 0x5169, /* bit_and, bit_xor, bit_or, sbit_and, sbit_xor, sbit_or, complement */
+ 0x06d4, 0x5010, 0x0003, /* length */
+ 0x4570, 0x3bac, 0x012b, /* substr */
+ 0x3bac, 0x0067, /* vec */
+ 0x3d18, 0x06d4, 0x5010, 0x018f, /* index, rindex */
+ 0x3abc, 0x4138, 0x06d4, 0x3bac, 0x4988, 0x4c64, 0x0003, /* rv2av */
+ 0x025f, /* aelemfast, aelemfast_lex, aelemfastlex_store */
+ 0x3abc, 0x39b8, 0x03d6, 0x3bac, 0x0067, /* aelem, helem */
+ 0x3abc, 0x3bac, 0x4989, /* aslice, hslice */
+ 0x3bad, /* kvaslice, kvhslice */
+ 0x3abc, 0x48d8, 0x36d4, 0x0003, /* delete */
+ 0x4e98, 0x0003, /* exists */
+ 0x3abc, 0x4138, 0x06d4, 0x0770, 0x3bac, 0x4988, 0x4c64, 0x3621, /* rv2hv */
+ 0x3abc, 0x39b8, 0x1314, 0x1d50, 0x3bac, 0x4c64, 0x0003, /* multideref */
+ 0x3abc, 0x4138, 0x0410, 0x37cc, 0x2b49, /* split */
+ 0x3abc, 0x2579, /* list */
+ 0x3abc, 0x4bb8, 0x0214, 0x5010, 0x018f, /* emptyavhv */
+ 0x15b0, 0x330c, 0x4668, 0x3404, 0x40a1, /* sort */
+ 0x330c, 0x0003, /* reverse */
+ 0x06d4, 0x0003, /* grepwhile */
+ 0x3858, 0x0003, /* flip, flop */
+ 0x3abc, 0x0003, /* cond_expr */
+ 0x3abc, 0x1198, 0x03d6, 0x014c, 0x4f68, 0x4c64, 0x2c21, /* entersub */
+ 0x43d8, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
0x02aa, 0x0003, /* argelem */
+ 0x2a3c, 0x2918, 0x0003, /* argdefelem */
0x00bc, 0x018f, /* caller */
- 0x2455, /* nextstate, dbstate */
- 0x2e7c, 0x38f9, /* leave */
- 0x2fdc, 0x3658, 0x10ec, 0x3c05, /* enteriter */
- 0x3c05, /* iter */
- 0x2e7c, 0x0067, /* leaveloop */
- 0x49bc, 0x0003, /* last, next, redo, dump, goto */
- 0x383c, 0x3758, 0x2894, 0x27d0, 0x018f, /* open */
- 0x1df0, 0x204c, 0x1f08, 0x1cc4, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
- 0x1df0, 0x204c, 0x1f08, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
- 0x4611, /* wait, getppid, time */
- 0x3994, 0x0e90, 0x070c, 0x46e8, 0x2364, 0x0003, /* entereval */
- 0x319c, 0x0018, 0x13a4, 0x12c1, /* coreargs */
- 0x30cc, 0x00c7, /* avhvswitch */
- 0x2fdc, 0x01fb, /* padrange */
- 0x2fdc, 0x41b8, 0x04f6, 0x2aac, 0x19a8, 0x0067, /* refassign */
- 0x2fdc, 0x41b8, 0x04f6, 0x2aac, 0x19a8, 0x0003, /* lvref */
- 0x2fdd, /* lvrefslice */
- 0x2fdc, 0x41b8, 0x0003, /* lvavref */
+ 0x2755, /* nextstate, dbstate */
+ 0x395c, 0x43d9, /* leave */
+ 0x3abc, 0x4138, 0x120c, 0x46e5, /* enteriter */
+ 0x46e5, /* iter */
+ 0x395c, 0x0067, /* leaveloop */
+ 0x537c, 0x0003, /* last, next, redo, dump, goto */
+ 0x431c, 0x4238, 0x2dd4, 0x2d10, 0x018f, /* open */
+ 0x20f0, 0x234c, 0x2208, 0x1fc4, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
+ 0x20f0, 0x234c, 0x2208, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
+ 0x5011, /* wait, getppid, time */
+ 0x1c78, 0x4474, 0x0fb0, 0x082c, 0x50e8, 0x2664, 0x0003, /* entereval */
+ 0x3c7c, 0x0018, 0x14c4, 0x13e1, /* coreargs */
+ 0x3bac, 0x00c7, /* avhvswitch */
+ 0x3abc, 0x01fb, /* padrange */
+ 0x3abc, 0x4bb8, 0x04f6, 0x348c, 0x1ac8, 0x0067, /* refassign */
+ 0x3abc, 0x4bb8, 0x04f6, 0x348c, 0x1ac8, 0x0003, /* lvref */
+ 0x3abd, /* lvrefslice */
+ 0x1edc, 0x0003, /* pushdefer */
+ 0x131c, 0x0003, /* helemexistsor */
+ 0x2e7c, 0x0003, /* methstart */
+ 0x3168, 0x2fc4, 0x0003, /* initfield */
};
@@ -2980,6 +3090,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* GV */ (OPpEARLY_CV),
/* GELEM */ (OPpARG2_MASK),
/* PADSV */ (OPpDEREF|OPpPAD_STATE|OPpLVAL_INTRO),
+ /* PADSV_STORE */ (OPpARG1_MASK|OPpPAD_STATE|OPpLVAL_INTRO),
/* PADAV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
/* PADHV */ (OPpPADHV_ISKEYS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
/* PADANY */ (0),
@@ -3013,7 +3124,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* CHOMP */ (OPpARG1_MASK|OPpTARGET_MY),
/* SCHOMP */ (OPpARG1_MASK|OPpTARGET_MY),
/* DEFINED */ (OPpARG1_MASK),
- /* UNDEF */ (OPpARG1_MASK),
+ /* UNDEF */ (OPpARG1_MASK|OPpTARGET_MY|OPpUNDEF_KEEP_PV|OPpPAD_STATE|OPpLVAL_INTRO),
/* STUDY */ (OPpARG1_MASK),
/* POS */ (OPpARG1_MASK|OPpMAYBE_LVSUB|OPpTRUEBOOL),
/* PREINC */ (OPpARG1_MASK),
@@ -3039,8 +3150,8 @@ EXTCONST U8 PL_op_private_valid[] = {
/* CONCAT */ (OPpARG2_MASK|OPpTARGET_MY|OPpCONCAT_NESTED),
/* MULTICONCAT */ (OPpARG1_MASK|OPpMULTICONCAT_STRINGIFY|OPpTARGET_MY|OPpMULTICONCAT_FAKE|OPpMULTICONCAT_APPEND|OPpLVAL_INTRO),
/* STRINGIFY */ (OPpARG4_MASK|OPpTARGET_MY),
- /* LEFT_SHIFT */ (OPpARG2_MASK|OPpTARGET_MY),
- /* RIGHT_SHIFT */ (OPpARG2_MASK|OPpTARGET_MY),
+ /* LEFT_SHIFT */ (OPpUSEINT|OPpTARGET_MY),
+ /* RIGHT_SHIFT */ (OPpUSEINT|OPpTARGET_MY),
/* LT */ (OPpARG2_MASK),
/* I_LT */ (OPpARG2_MASK),
/* GT */ (OPpARG2_MASK),
@@ -3062,20 +3173,20 @@ EXTCONST U8 PL_op_private_valid[] = {
/* 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),
+ /* BIT_AND */ (OPpUSEINT),
+ /* BIT_XOR */ (OPpUSEINT),
+ /* BIT_OR */ (OPpUSEINT),
+ /* NBIT_AND */ (OPpUSEINT|OPpTARGET_MY),
+ /* NBIT_XOR */ (OPpUSEINT|OPpTARGET_MY),
+ /* NBIT_OR */ (OPpUSEINT|OPpTARGET_MY),
+ /* SBIT_AND */ (OPpUSEINT),
+ /* SBIT_XOR */ (OPpUSEINT),
+ /* SBIT_OR */ (OPpUSEINT),
/* NEGATE */ (OPpARG1_MASK),
/* I_NEGATE */ (OPpARG1_MASK),
/* NOT */ (OPpARG1_MASK),
- /* COMPLEMENT */ (OPpARG1_MASK),
- /* NCOMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* COMPLEMENT */ (OPpUSEINT),
+ /* NCOMPLEMENT */ (OPpUSEINT|OPpTARGET_MY),
/* SCOMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
/* SMARTMATCH */ (OPpARG2_MASK),
/* ATAN2 */ (OPpARG4_MASK|OPpTARGET_MY),
@@ -3108,6 +3219,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* RV2AV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpTRUEBOOL|OPpOUR_INTRO|OPpLVAL_INTRO),
/* AELEMFAST */ (255),
/* AELEMFAST_LEX */ (255),
+ /* AELEMFASTLEX_STORE */ (255),
/* AELEM */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpDEREF|OPpLVAL_DEFER|OPpLVAL_INTRO),
/* ASLICE */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO),
/* KVASLICE */ (OPpMAYBE_LVSUB),
@@ -3132,12 +3244,13 @@ EXTCONST U8 PL_op_private_valid[] = {
/* LSLICE */ (OPpARG2_MASK),
/* ANONLIST */ (OPpARG4_MASK),
/* ANONHASH */ (OPpARG4_MASK),
+ /* EMPTYAVHV */ (OPpARG4_MASK|OPpTARGET_MY|OPpEMPTYAVHV_IS_HV|OPpPAD_STATE|OPpLVAL_INTRO),
/* 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_STABLE|OPpSORT_UNSTABLE),
+ /* SORT */ (OPpSORT_NUMERIC|OPpSORT_INTEGER|OPpSORT_REVERSE|OPpSORT_INPLACE|OPpSORT_DESCEND),
/* REVERSE */ (OPpARG1_MASK|OPpREVERSE_INPLACE),
/* GREPSTART */ (OPpARG1_MASK),
/* GREPWHILE */ (OPpARG1_MASK|OPpTRUEBOOL),
@@ -3159,7 +3272,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* LEAVESUBLV */ (OPpARG1_MASK|OPpREFCOUNTED),
/* ARGCHECK */ (OPpARG1_MASK),
/* ARGELEM */ (OPpARG1_MASK|OPpARGELEM_MASK),
- /* ARGDEFELEM */ (OPpARG1_MASK),
+ /* ARGDEFELEM */ (OPpARG1_MASK|OPpARG_IF_FALSE|OPpARG_IF_UNDEF),
/* CALLER */ (OPpARG4_MASK|OPpOFFBYONE),
/* WARN */ (OPpARG4_MASK),
/* DIE */ (OPpARG4_MASK),
@@ -3315,7 +3428,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* REQUIRE */ (OPpARG1_MASK),
/* DOFILE */ (OPpARG1_MASK),
/* HINTSEVAL */ (0),
- /* ENTEREVAL */ (OPpARG1_MASK|OPpEVAL_HAS_HH|OPpEVAL_UNICODE|OPpEVAL_BYTES|OPpEVAL_COPHH|OPpEVAL_RE_REPARSING),
+ /* ENTEREVAL */ (OPpARG1_MASK|OPpEVAL_HAS_HH|OPpEVAL_UNICODE|OPpEVAL_BYTES|OPpEVAL_COPHH|OPpEVAL_RE_REPARSING|OPpEVAL_EVALSV),
/* LEAVEEVAL */ (OPpARG1_MASK|OPpREFCOUNTED),
/* ENTERTRY */ (OPpARG1_MASK),
/* LEAVETRY */ (0),
@@ -3374,6 +3487,20 @@ EXTCONST U8 PL_op_private_valid[] = {
/* LEAVETRYCATCH */ (0),
/* POPTRY */ (0),
/* CATCH */ (OPpARG1_MASK),
+ /* PUSHDEFER */ (OPpARG1_MASK|OPpDEFER_FINALLY),
+ /* IS_BOOL */ (OPpARG1_MASK),
+ /* IS_WEAK */ (OPpARG1_MASK),
+ /* WEAKEN */ (OPpARG1_MASK),
+ /* UNWEAKEN */ (OPpARG1_MASK),
+ /* BLESSED */ (OPpARG1_MASK|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL),
+ /* REFADDR */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* REFTYPE */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* CEIL */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* FLOOR */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* IS_TAINTED */ (OPpARG1_MASK),
+ /* HELEMEXISTSOR */ (OPpARG1_MASK|OPpHELEMEXISTSOR_DELETE),
+ /* METHSTART */ (OPpARG1_MASK|OPpINITFIELDS),
+ /* INITFIELD */ (OPpARG1_MASK|OPpINITFIELD_AV|OPpINITFIELD_HV),
};
@@ -3383,4 +3510,4 @@ END_EXTERN_C
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h
index f6c1552a52..71601b8f41 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* opnames.h
*
@@ -24,404 +24,421 @@ typedef enum opcode {
OP_GV = 7,
OP_GELEM = 8,
OP_PADSV = 9,
- OP_PADAV = 10,
- OP_PADHV = 11,
- OP_PADANY = 12,
- OP_RV2GV = 13,
- OP_RV2SV = 14,
- OP_AV2ARYLEN = 15,
- OP_RV2CV = 16,
- OP_ANONCODE = 17,
- OP_PROTOTYPE = 18,
- OP_REFGEN = 19,
- OP_SREFGEN = 20,
- OP_REF = 21,
- OP_BLESS = 22,
- OP_BACKTICK = 23,
- OP_GLOB = 24,
- OP_READLINE = 25,
- OP_RCATLINE = 26,
- OP_REGCMAYBE = 27,
- OP_REGCRESET = 28,
- OP_REGCOMP = 29,
- OP_MATCH = 30,
- OP_QR = 31,
- OP_SUBST = 32,
- OP_SUBSTCONT = 33,
- OP_TRANS = 34,
- OP_TRANSR = 35,
- OP_SASSIGN = 36,
- OP_AASSIGN = 37,
- OP_CHOP = 38,
- OP_SCHOP = 39,
- OP_CHOMP = 40,
- OP_SCHOMP = 41,
- OP_DEFINED = 42,
- OP_UNDEF = 43,
- OP_STUDY = 44,
- OP_POS = 45,
- OP_PREINC = 46,
- OP_I_PREINC = 47,
- OP_PREDEC = 48,
- OP_I_PREDEC = 49,
- OP_POSTINC = 50,
- OP_I_POSTINC = 51,
- OP_POSTDEC = 52,
- OP_I_POSTDEC = 53,
- OP_POW = 54,
- OP_MULTIPLY = 55,
- OP_I_MULTIPLY = 56,
- OP_DIVIDE = 57,
- OP_I_DIVIDE = 58,
- OP_MODULO = 59,
- OP_I_MODULO = 60,
- OP_REPEAT = 61,
- OP_ADD = 62,
- OP_I_ADD = 63,
- OP_SUBTRACT = 64,
- OP_I_SUBTRACT = 65,
- OP_CONCAT = 66,
- OP_MULTICONCAT = 67,
- OP_STRINGIFY = 68,
- OP_LEFT_SHIFT = 69,
- OP_RIGHT_SHIFT = 70,
- OP_LT = 71,
- OP_I_LT = 72,
- OP_GT = 73,
- OP_I_GT = 74,
- OP_LE = 75,
- OP_I_LE = 76,
- OP_GE = 77,
- OP_I_GE = 78,
- OP_EQ = 79,
- OP_I_EQ = 80,
- OP_NE = 81,
- OP_I_NE = 82,
- OP_NCMP = 83,
- OP_I_NCMP = 84,
- OP_SLT = 85,
- OP_SGT = 86,
- OP_SLE = 87,
- OP_SGE = 88,
- OP_SEQ = 89,
- OP_SNE = 90,
- OP_SCMP = 91,
- OP_BIT_AND = 92,
- OP_BIT_XOR = 93,
- OP_BIT_OR = 94,
- 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_AVALUES = 142,
- OP_AKEYS = 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_ENTERSUB = 184,
- OP_LEAVESUB = 185,
- OP_LEAVESUBLV = 186,
- OP_ARGCHECK = 187,
- OP_ARGELEM = 188,
- OP_ARGDEFELEM = 189,
- OP_CALLER = 190,
- OP_WARN = 191,
- OP_DIE = 192,
- OP_RESET = 193,
- OP_LINESEQ = 194,
- OP_NEXTSTATE = 195,
- OP_DBSTATE = 196,
- OP_UNSTACK = 197,
- OP_ENTER = 198,
- OP_LEAVE = 199,
- OP_SCOPE = 200,
- OP_ENTERITER = 201,
- OP_ITER = 202,
- OP_ENTERLOOP = 203,
- OP_LEAVELOOP = 204,
- OP_RETURN = 205,
- OP_LAST = 206,
- OP_NEXT = 207,
- OP_REDO = 208,
- OP_DUMP = 209,
- OP_GOTO = 210,
- OP_EXIT = 211,
- OP_METHOD = 212,
- OP_METHOD_NAMED = 213,
- OP_METHOD_SUPER = 214,
- OP_METHOD_REDIR = 215,
- OP_METHOD_REDIR_SUPER = 216,
- OP_ENTERGIVEN = 217,
- OP_LEAVEGIVEN = 218,
- OP_ENTERWHEN = 219,
- OP_LEAVEWHEN = 220,
- OP_BREAK = 221,
- OP_CONTINUE = 222,
- OP_OPEN = 223,
- OP_CLOSE = 224,
- OP_PIPE_OP = 225,
- OP_FILENO = 226,
- OP_UMASK = 227,
- OP_BINMODE = 228,
- OP_TIE = 229,
- OP_UNTIE = 230,
- OP_TIED = 231,
- OP_DBMOPEN = 232,
- OP_DBMCLOSE = 233,
- OP_SSELECT = 234,
- OP_SELECT = 235,
- OP_GETC = 236,
- OP_READ = 237,
- OP_ENTERWRITE = 238,
- OP_LEAVEWRITE = 239,
- OP_PRTF = 240,
- OP_PRINT = 241,
- OP_SAY = 242,
- OP_SYSOPEN = 243,
- OP_SYSSEEK = 244,
- OP_SYSREAD = 245,
- OP_SYSWRITE = 246,
- OP_EOF = 247,
- OP_TELL = 248,
- OP_SEEK = 249,
- OP_TRUNCATE = 250,
- OP_FCNTL = 251,
- OP_IOCTL = 252,
- OP_FLOCK = 253,
- OP_SEND = 254,
- OP_RECV = 255,
- OP_SOCKET = 256,
- OP_SOCKPAIR = 257,
- OP_BIND = 258,
- OP_CONNECT = 259,
- OP_LISTEN = 260,
- OP_ACCEPT = 261,
- OP_SHUTDOWN = 262,
- OP_GSOCKOPT = 263,
- OP_SSOCKOPT = 264,
- OP_GETSOCKNAME = 265,
- OP_GETPEERNAME = 266,
- OP_LSTAT = 267,
- OP_STAT = 268,
- OP_FTRREAD = 269,
- OP_FTRWRITE = 270,
- OP_FTREXEC = 271,
- OP_FTEREAD = 272,
- OP_FTEWRITE = 273,
- OP_FTEEXEC = 274,
- OP_FTIS = 275,
- OP_FTSIZE = 276,
- OP_FTMTIME = 277,
- OP_FTATIME = 278,
- OP_FTCTIME = 279,
- OP_FTROWNED = 280,
- OP_FTEOWNED = 281,
- OP_FTZERO = 282,
- OP_FTSOCK = 283,
- OP_FTCHR = 284,
- OP_FTBLK = 285,
- OP_FTFILE = 286,
- OP_FTDIR = 287,
- OP_FTPIPE = 288,
- OP_FTSUID = 289,
- OP_FTSGID = 290,
- OP_FTSVTX = 291,
- OP_FTLINK = 292,
- OP_FTTTY = 293,
- OP_FTTEXT = 294,
- OP_FTBINARY = 295,
- OP_CHDIR = 296,
- OP_CHOWN = 297,
- OP_CHROOT = 298,
- OP_UNLINK = 299,
- OP_CHMOD = 300,
- OP_UTIME = 301,
- OP_RENAME = 302,
- OP_LINK = 303,
- OP_SYMLINK = 304,
- OP_READLINK = 305,
- OP_MKDIR = 306,
- OP_RMDIR = 307,
- OP_OPEN_DIR = 308,
- OP_READDIR = 309,
- OP_TELLDIR = 310,
- OP_SEEKDIR = 311,
- OP_REWINDDIR = 312,
- OP_CLOSEDIR = 313,
- OP_FORK = 314,
- OP_WAIT = 315,
- OP_WAITPID = 316,
- OP_SYSTEM = 317,
- OP_EXEC = 318,
- OP_KILL = 319,
- OP_GETPPID = 320,
- OP_GETPGRP = 321,
- OP_SETPGRP = 322,
- OP_GETPRIORITY = 323,
- OP_SETPRIORITY = 324,
- OP_TIME = 325,
- OP_TMS = 326,
- OP_LOCALTIME = 327,
- OP_GMTIME = 328,
- OP_ALARM = 329,
- OP_SLEEP = 330,
- OP_SHMGET = 331,
- OP_SHMCTL = 332,
- OP_SHMREAD = 333,
- OP_SHMWRITE = 334,
- OP_MSGGET = 335,
- OP_MSGCTL = 336,
- OP_MSGSND = 337,
- OP_MSGRCV = 338,
- OP_SEMOP = 339,
- OP_SEMGET = 340,
- OP_SEMCTL = 341,
- OP_REQUIRE = 342,
- OP_DOFILE = 343,
- OP_HINTSEVAL = 344,
- OP_ENTEREVAL = 345,
- OP_LEAVEEVAL = 346,
- OP_ENTERTRY = 347,
- OP_LEAVETRY = 348,
- OP_GHBYNAME = 349,
- OP_GHBYADDR = 350,
- OP_GHOSTENT = 351,
- OP_GNBYNAME = 352,
- OP_GNBYADDR = 353,
- OP_GNETENT = 354,
- OP_GPBYNAME = 355,
- OP_GPBYNUMBER = 356,
- OP_GPROTOENT = 357,
- OP_GSBYNAME = 358,
- OP_GSBYPORT = 359,
- OP_GSERVENT = 360,
- OP_SHOSTENT = 361,
- OP_SNETENT = 362,
- OP_SPROTOENT = 363,
- OP_SSERVENT = 364,
- OP_EHOSTENT = 365,
- OP_ENETENT = 366,
- OP_EPROTOENT = 367,
- OP_ESERVENT = 368,
- OP_GPWNAM = 369,
- OP_GPWUID = 370,
- OP_GPWENT = 371,
- OP_SPWENT = 372,
- OP_EPWENT = 373,
- OP_GGRNAM = 374,
- OP_GGRGID = 375,
- OP_GGRENT = 376,
- OP_SGRENT = 377,
- OP_EGRENT = 378,
- OP_GETLOGIN = 379,
- OP_SYSCALL = 380,
- OP_LOCK = 381,
- OP_ONCE = 382,
- OP_CUSTOM = 383,
- OP_COREARGS = 384,
- OP_AVHVSWITCH = 385,
- OP_RUNCV = 386,
- OP_FC = 387,
- OP_PADCV = 388,
- OP_INTROCV = 389,
- OP_CLONECV = 390,
- OP_PADRANGE = 391,
- OP_REFASSIGN = 392,
- OP_LVREF = 393,
- OP_LVREFSLICE = 394,
- OP_LVAVREF = 395,
- OP_ANONCONST = 396,
- OP_ISA = 397,
- OP_CMPCHAIN_AND = 398,
- OP_CMPCHAIN_DUP = 399,
- OP_ENTERTRYCATCH = 400,
- OP_LEAVETRYCATCH = 401,
- OP_POPTRY = 402,
- OP_CATCH = 403,
+ OP_PADSV_STORE = 10,
+ OP_PADAV = 11,
+ OP_PADHV = 12,
+ OP_PADANY = 13,
+ OP_RV2GV = 14,
+ OP_RV2SV = 15,
+ OP_AV2ARYLEN = 16,
+ OP_RV2CV = 17,
+ OP_ANONCODE = 18,
+ OP_PROTOTYPE = 19,
+ OP_REFGEN = 20,
+ OP_SREFGEN = 21,
+ OP_REF = 22,
+ OP_BLESS = 23,
+ OP_BACKTICK = 24,
+ OP_GLOB = 25,
+ OP_READLINE = 26,
+ OP_RCATLINE = 27,
+ OP_REGCMAYBE = 28,
+ OP_REGCRESET = 29,
+ OP_REGCOMP = 30,
+ OP_MATCH = 31,
+ OP_QR = 32,
+ OP_SUBST = 33,
+ OP_SUBSTCONT = 34,
+ OP_TRANS = 35,
+ OP_TRANSR = 36,
+ OP_SASSIGN = 37,
+ OP_AASSIGN = 38,
+ OP_CHOP = 39,
+ OP_SCHOP = 40,
+ OP_CHOMP = 41,
+ OP_SCHOMP = 42,
+ OP_DEFINED = 43,
+ OP_UNDEF = 44,
+ OP_STUDY = 45,
+ OP_POS = 46,
+ OP_PREINC = 47,
+ OP_I_PREINC = 48,
+ OP_PREDEC = 49,
+ OP_I_PREDEC = 50,
+ OP_POSTINC = 51,
+ OP_I_POSTINC = 52,
+ OP_POSTDEC = 53,
+ OP_I_POSTDEC = 54,
+ OP_POW = 55,
+ OP_MULTIPLY = 56,
+ OP_I_MULTIPLY = 57,
+ OP_DIVIDE = 58,
+ OP_I_DIVIDE = 59,
+ OP_MODULO = 60,
+ OP_I_MODULO = 61,
+ OP_REPEAT = 62,
+ OP_ADD = 63,
+ OP_I_ADD = 64,
+ OP_SUBTRACT = 65,
+ OP_I_SUBTRACT = 66,
+ OP_CONCAT = 67,
+ OP_MULTICONCAT = 68,
+ OP_STRINGIFY = 69,
+ OP_LEFT_SHIFT = 70,
+ OP_RIGHT_SHIFT = 71,
+ OP_LT = 72,
+ OP_I_LT = 73,
+ OP_GT = 74,
+ OP_I_GT = 75,
+ OP_LE = 76,
+ OP_I_LE = 77,
+ OP_GE = 78,
+ OP_I_GE = 79,
+ OP_EQ = 80,
+ OP_I_EQ = 81,
+ OP_NE = 82,
+ OP_I_NE = 83,
+ OP_NCMP = 84,
+ OP_I_NCMP = 85,
+ OP_SLT = 86,
+ OP_SGT = 87,
+ OP_SLE = 88,
+ OP_SGE = 89,
+ OP_SEQ = 90,
+ OP_SNE = 91,
+ OP_SCMP = 92,
+ OP_BIT_AND = 93,
+ OP_BIT_XOR = 94,
+ OP_BIT_OR = 95,
+ OP_NBIT_AND = 96,
+ OP_NBIT_XOR = 97,
+ OP_NBIT_OR = 98,
+ OP_SBIT_AND = 99,
+ OP_SBIT_XOR = 100,
+ OP_SBIT_OR = 101,
+ OP_NEGATE = 102,
+ OP_I_NEGATE = 103,
+ OP_NOT = 104,
+ OP_COMPLEMENT = 105,
+ OP_NCOMPLEMENT = 106,
+ OP_SCOMPLEMENT = 107,
+ OP_SMARTMATCH = 108,
+ OP_ATAN2 = 109,
+ OP_SIN = 110,
+ OP_COS = 111,
+ OP_RAND = 112,
+ OP_SRAND = 113,
+ OP_EXP = 114,
+ OP_LOG = 115,
+ OP_SQRT = 116,
+ OP_INT = 117,
+ OP_HEX = 118,
+ OP_OCT = 119,
+ OP_ABS = 120,
+ OP_LENGTH = 121,
+ OP_SUBSTR = 122,
+ OP_VEC = 123,
+ OP_INDEX = 124,
+ OP_RINDEX = 125,
+ OP_SPRINTF = 126,
+ OP_FORMLINE = 127,
+ OP_ORD = 128,
+ OP_CHR = 129,
+ OP_CRYPT = 130,
+ OP_UCFIRST = 131,
+ OP_LCFIRST = 132,
+ OP_UC = 133,
+ OP_LC = 134,
+ OP_QUOTEMETA = 135,
+ OP_RV2AV = 136,
+ OP_AELEMFAST = 137,
+ OP_AELEMFAST_LEX = 138,
+ OP_AELEMFASTLEX_STORE = 139,
+ OP_AELEM = 140,
+ OP_ASLICE = 141,
+ OP_KVASLICE = 142,
+ OP_AEACH = 143,
+ OP_AVALUES = 144,
+ OP_AKEYS = 145,
+ OP_EACH = 146,
+ OP_VALUES = 147,
+ OP_KEYS = 148,
+ OP_DELETE = 149,
+ OP_EXISTS = 150,
+ OP_RV2HV = 151,
+ OP_HELEM = 152,
+ OP_HSLICE = 153,
+ OP_KVHSLICE = 154,
+ OP_MULTIDEREF = 155,
+ OP_UNPACK = 156,
+ OP_PACK = 157,
+ OP_SPLIT = 158,
+ OP_JOIN = 159,
+ OP_LIST = 160,
+ OP_LSLICE = 161,
+ OP_ANONLIST = 162,
+ OP_ANONHASH = 163,
+ OP_EMPTYAVHV = 164,
+ OP_SPLICE = 165,
+ OP_PUSH = 166,
+ OP_POP = 167,
+ OP_SHIFT = 168,
+ OP_UNSHIFT = 169,
+ OP_SORT = 170,
+ OP_REVERSE = 171,
+ OP_GREPSTART = 172,
+ OP_GREPWHILE = 173,
+ OP_MAPSTART = 174,
+ OP_MAPWHILE = 175,
+ OP_RANGE = 176,
+ OP_FLIP = 177,
+ OP_FLOP = 178,
+ OP_AND = 179,
+ OP_OR = 180,
+ OP_XOR = 181,
+ OP_DOR = 182,
+ OP_COND_EXPR = 183,
+ OP_ANDASSIGN = 184,
+ OP_ORASSIGN = 185,
+ OP_DORASSIGN = 186,
+ OP_ENTERSUB = 187,
+ OP_LEAVESUB = 188,
+ OP_LEAVESUBLV = 189,
+ OP_ARGCHECK = 190,
+ OP_ARGELEM = 191,
+ OP_ARGDEFELEM = 192,
+ OP_CALLER = 193,
+ OP_WARN = 194,
+ OP_DIE = 195,
+ OP_RESET = 196,
+ OP_LINESEQ = 197,
+ OP_NEXTSTATE = 198,
+ OP_DBSTATE = 199,
+ OP_UNSTACK = 200,
+ OP_ENTER = 201,
+ OP_LEAVE = 202,
+ OP_SCOPE = 203,
+ OP_ENTERITER = 204,
+ OP_ITER = 205,
+ OP_ENTERLOOP = 206,
+ OP_LEAVELOOP = 207,
+ OP_RETURN = 208,
+ OP_LAST = 209,
+ OP_NEXT = 210,
+ OP_REDO = 211,
+ OP_DUMP = 212,
+ OP_GOTO = 213,
+ OP_EXIT = 214,
+ OP_METHOD = 215,
+ OP_METHOD_NAMED = 216,
+ OP_METHOD_SUPER = 217,
+ OP_METHOD_REDIR = 218,
+ OP_METHOD_REDIR_SUPER = 219,
+ OP_ENTERGIVEN = 220,
+ OP_LEAVEGIVEN = 221,
+ OP_ENTERWHEN = 222,
+ OP_LEAVEWHEN = 223,
+ OP_BREAK = 224,
+ OP_CONTINUE = 225,
+ OP_OPEN = 226,
+ OP_CLOSE = 227,
+ OP_PIPE_OP = 228,
+ OP_FILENO = 229,
+ OP_UMASK = 230,
+ OP_BINMODE = 231,
+ OP_TIE = 232,
+ OP_UNTIE = 233,
+ OP_TIED = 234,
+ OP_DBMOPEN = 235,
+ OP_DBMCLOSE = 236,
+ OP_SSELECT = 237,
+ OP_SELECT = 238,
+ OP_GETC = 239,
+ OP_READ = 240,
+ OP_ENTERWRITE = 241,
+ OP_LEAVEWRITE = 242,
+ OP_PRTF = 243,
+ OP_PRINT = 244,
+ OP_SAY = 245,
+ OP_SYSOPEN = 246,
+ OP_SYSSEEK = 247,
+ OP_SYSREAD = 248,
+ OP_SYSWRITE = 249,
+ OP_EOF = 250,
+ OP_TELL = 251,
+ OP_SEEK = 252,
+ OP_TRUNCATE = 253,
+ OP_FCNTL = 254,
+ OP_IOCTL = 255,
+ OP_FLOCK = 256,
+ OP_SEND = 257,
+ OP_RECV = 258,
+ OP_SOCKET = 259,
+ OP_SOCKPAIR = 260,
+ OP_BIND = 261,
+ OP_CONNECT = 262,
+ OP_LISTEN = 263,
+ OP_ACCEPT = 264,
+ OP_SHUTDOWN = 265,
+ OP_GSOCKOPT = 266,
+ OP_SSOCKOPT = 267,
+ OP_GETSOCKNAME = 268,
+ OP_GETPEERNAME = 269,
+ OP_LSTAT = 270,
+ OP_STAT = 271,
+ OP_FTRREAD = 272,
+ OP_FTRWRITE = 273,
+ OP_FTREXEC = 274,
+ OP_FTEREAD = 275,
+ OP_FTEWRITE = 276,
+ OP_FTEEXEC = 277,
+ OP_FTIS = 278,
+ OP_FTSIZE = 279,
+ OP_FTMTIME = 280,
+ OP_FTATIME = 281,
+ OP_FTCTIME = 282,
+ OP_FTROWNED = 283,
+ OP_FTEOWNED = 284,
+ OP_FTZERO = 285,
+ OP_FTSOCK = 286,
+ OP_FTCHR = 287,
+ OP_FTBLK = 288,
+ OP_FTFILE = 289,
+ OP_FTDIR = 290,
+ OP_FTPIPE = 291,
+ OP_FTSUID = 292,
+ OP_FTSGID = 293,
+ OP_FTSVTX = 294,
+ OP_FTLINK = 295,
+ OP_FTTTY = 296,
+ OP_FTTEXT = 297,
+ OP_FTBINARY = 298,
+ OP_CHDIR = 299,
+ OP_CHOWN = 300,
+ OP_CHROOT = 301,
+ OP_UNLINK = 302,
+ OP_CHMOD = 303,
+ OP_UTIME = 304,
+ OP_RENAME = 305,
+ OP_LINK = 306,
+ OP_SYMLINK = 307,
+ OP_READLINK = 308,
+ OP_MKDIR = 309,
+ OP_RMDIR = 310,
+ OP_OPEN_DIR = 311,
+ OP_READDIR = 312,
+ OP_TELLDIR = 313,
+ OP_SEEKDIR = 314,
+ OP_REWINDDIR = 315,
+ OP_CLOSEDIR = 316,
+ OP_FORK = 317,
+ OP_WAIT = 318,
+ OP_WAITPID = 319,
+ OP_SYSTEM = 320,
+ OP_EXEC = 321,
+ OP_KILL = 322,
+ OP_GETPPID = 323,
+ OP_GETPGRP = 324,
+ OP_SETPGRP = 325,
+ OP_GETPRIORITY = 326,
+ OP_SETPRIORITY = 327,
+ OP_TIME = 328,
+ OP_TMS = 329,
+ OP_LOCALTIME = 330,
+ OP_GMTIME = 331,
+ OP_ALARM = 332,
+ OP_SLEEP = 333,
+ OP_SHMGET = 334,
+ OP_SHMCTL = 335,
+ OP_SHMREAD = 336,
+ OP_SHMWRITE = 337,
+ OP_MSGGET = 338,
+ OP_MSGCTL = 339,
+ OP_MSGSND = 340,
+ OP_MSGRCV = 341,
+ OP_SEMOP = 342,
+ OP_SEMGET = 343,
+ OP_SEMCTL = 344,
+ OP_REQUIRE = 345,
+ OP_DOFILE = 346,
+ OP_HINTSEVAL = 347,
+ OP_ENTEREVAL = 348,
+ OP_LEAVEEVAL = 349,
+ OP_ENTERTRY = 350,
+ OP_LEAVETRY = 351,
+ OP_GHBYNAME = 352,
+ OP_GHBYADDR = 353,
+ OP_GHOSTENT = 354,
+ OP_GNBYNAME = 355,
+ OP_GNBYADDR = 356,
+ OP_GNETENT = 357,
+ OP_GPBYNAME = 358,
+ OP_GPBYNUMBER = 359,
+ OP_GPROTOENT = 360,
+ OP_GSBYNAME = 361,
+ OP_GSBYPORT = 362,
+ OP_GSERVENT = 363,
+ OP_SHOSTENT = 364,
+ OP_SNETENT = 365,
+ OP_SPROTOENT = 366,
+ OP_SSERVENT = 367,
+ OP_EHOSTENT = 368,
+ OP_ENETENT = 369,
+ OP_EPROTOENT = 370,
+ OP_ESERVENT = 371,
+ OP_GPWNAM = 372,
+ OP_GPWUID = 373,
+ OP_GPWENT = 374,
+ OP_SPWENT = 375,
+ OP_EPWENT = 376,
+ OP_GGRNAM = 377,
+ OP_GGRGID = 378,
+ OP_GGRENT = 379,
+ OP_SGRENT = 380,
+ OP_EGRENT = 381,
+ OP_GETLOGIN = 382,
+ OP_SYSCALL = 383,
+ OP_LOCK = 384,
+ OP_ONCE = 385,
+ OP_CUSTOM = 386,
+ OP_COREARGS = 387,
+ OP_AVHVSWITCH = 388,
+ OP_RUNCV = 389,
+ OP_FC = 390,
+ OP_PADCV = 391,
+ OP_INTROCV = 392,
+ OP_CLONECV = 393,
+ OP_PADRANGE = 394,
+ OP_REFASSIGN = 395,
+ OP_LVREF = 396,
+ OP_LVREFSLICE = 397,
+ OP_LVAVREF = 398,
+ OP_ANONCONST = 399,
+ OP_ISA = 400,
+ OP_CMPCHAIN_AND = 401,
+ OP_CMPCHAIN_DUP = 402,
+ OP_ENTERTRYCATCH = 403,
+ OP_LEAVETRYCATCH = 404,
+ OP_POPTRY = 405,
+ OP_CATCH = 406,
+ OP_PUSHDEFER = 407,
+ OP_IS_BOOL = 408,
+ OP_IS_WEAK = 409,
+ OP_WEAKEN = 410,
+ OP_UNWEAKEN = 411,
+ OP_BLESSED = 412,
+ OP_REFADDR = 413,
+ OP_REFTYPE = 414,
+ OP_CEIL = 415,
+ OP_FLOOR = 416,
+ OP_IS_TAINTED = 417,
+ OP_HELEMEXISTSOR = 418,
+ OP_METHSTART = 419,
+ OP_INITFIELD = 420,
OP_max
} opcode;
-#define MAXO 404
+#define MAXO 421
#define OP_FREED MAXO
/* the OP_IS_* macros are optimized to a simple range check because
@@ -429,22 +446,22 @@ typedef enum opcode {
opcode.pl verifies the range contiguity, or generates an OR-equals
expression */
-#define OP_IS_SOCKET(op) \
+#define OP_IS_SOCKET(op) \
((op) >= OP_SEND && (op) <= OP_GETPEERNAME)
-#define OP_IS_FILETEST(op) \
+#define OP_IS_FILETEST(op) \
((op) >= OP_FTRREAD && (op) <= OP_FTBINARY)
-#define OP_IS_FILETEST_ACCESS(op) \
+#define OP_IS_FILETEST_ACCESS(op) \
((op) >= OP_FTRREAD && (op) <= OP_FTEEXEC)
-#define OP_IS_NUMCOMPARE(op) \
+#define OP_IS_NUMCOMPARE(op) \
((op) >= OP_LT && (op) <= OP_I_NCMP)
-#define OP_IS_DIRHOP(op) \
+#define OP_IS_DIRHOP(op) \
((op) >= OP_READDIR && (op) <= OP_CLOSEDIR)
-#define OP_IS_INFIX_BIT(op) \
+#define OP_IS_INFIX_BIT(op) \
((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR)
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h
index 50e7660ad7..cb2e9f1d02 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* overload.h
*
@@ -95,4 +95,4 @@ enum {
#define NofAMmeth max_amg_code
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h
index 07c4d86863..8f339ae6c4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h
@@ -23,8 +23,9 @@ typedef SSize_t PADOFFSET; /* signed so that -1 is a valid value */
struct padlist {
SSize_t xpadl_max; /* max index for which array has space */
union {
- PAD ** xpadlarr_alloc; /* Pointer to beginning of array of AVs.
- index 0 is a padnamelist * */
+ PAD ** xpadlarr_alloc; /* Pointer to beginning of array of AVs.
+ Note that a 'padnamelist *' is stored
+ in the 0 index of the AV. */
struct {
PADNAMELIST * padnl;
PAD * pad_1; /* this slice of PAD * array always alloced */
@@ -54,6 +55,8 @@ struct padnamelist {
# define PERL_PADNAME_MINIMAL
#endif
+struct padname_fieldinfo;
+
#define _PADNAME_BASE \
char * xpadn_pv; \
HV * xpadn_ourstash; \
@@ -61,6 +64,7 @@ struct padnamelist {
HV * xpadn_typestash; \
CV * xpadn_protocv; \
} xpadn_type_u; \
+ struct padname_fieldinfo *xpadn_fieldinfo; \
U32 xpadn_low; \
U32 xpadn_high; \
U32 xpadn_refcnt; \
@@ -86,6 +90,19 @@ struct padname_with_str {
#define PADNAME_FROM_PV(s) \
((PADNAME *)((s) - STRUCT_OFFSET(struct padname_with_str, xpadn_str)))
+/* Most padnames are not field names. Keep all the field-related info in its
+ * own substructure, stored in ->xpadn_fieldinfo.
+ */
+struct padname_fieldinfo {
+ U32 refcount;
+ PADOFFSET fieldix; /* index of this field within ObjectFIELDS() array */
+ HV *fieldstash; /* original class package which added this field */
+ OP *defop; /* optree fragment for defaulting expression */
+ SV *paramname; /* name of the :param to look for in constructor */
+ int def_if_undef : 1; /* default op uses //= */
+ int def_if_false : 1; /* default op uses ||= */
+};
+
/* a value that PL_cop_seqmax is guaranteed never to be,
* flagging that a lexical is being introduced, or has not yet left scope
@@ -131,6 +148,8 @@ 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_FIELD 0x10 /* set PADNAMEt_FIELD */
+#define padfind_FIELD_OK 0x20 /* pad_findlex is permitted to see fields */
/* ASSERT_CURPAD_LEGAL and ASSERT_CURPAD_ACTIVE respectively determine
* whether PL_comppad and PL_curpad are consistent and whether they have
@@ -160,8 +179,9 @@ typedef enum {
/* Note: the following three macros are actually defined in scope.h, but
* they are documented here for completeness, since they directly or
- * indirectly affect pads.
+ * indirectly affect pads. */
+/*
=for apidoc m|void|SAVEPADSV |PADOFFSET po
Save a pad slot (used to restore after an iteration)
@@ -242,6 +262,10 @@ are often referred to as 'fake'.
=for apidoc m|bool|PadnameIsSTATE|PADNAME * pn
Whether this is a "state" variable.
+=for apidoc m|bool|PadnameIsFIELD|PADNAME * pn
+Whether this is a "field" variable. PADNAMEs where this is true will
+have additional information available via C<PadnameFIELDINFO>.
+
=for apidoc m|HV *|PadnameTYPE|PADNAME * pn
The stash associated with a typed lexical. This returns the C<%Foo::> hash
for C<my Foo $bar>.
@@ -249,6 +273,9 @@ for C<my Foo $bar>.
=for apidoc Amx|SSize_t|PadnameREFCNT|PADNAME * pn
The reference count of the pad name.
+=for apidoc Amx|PADNAME *|PadnameREFCNT_inc|PADNAME * pn
+Increases the reference count of the pad name. Returns the pad name itself.
+
=for apidoc Amx|void|PadnameREFCNT_dec|PADNAME * pn
Lowers the reference count of the pad name.
@@ -304,6 +331,7 @@ Restore the old pad saved into the local variable C<opad> by C<PAD_SAVE_LOCAL()>
#define PadnamelistMAX(pnl) (pnl)->xpadnl_fill
#define PadnamelistMAXNAMED(pnl) (pnl)->xpadnl_max_named
#define PadnamelistREFCNT(pnl) (pnl)->xpadnl_refcnt
+#define PadnamelistREFCNT_inc(pnl) Perl_padnamelist_refcnt_inc(pnl)
#define PadnamelistREFCNT_dec(pnl) Perl_padnamelist_free(aTHX_ pnl)
#define PadARRAY(pad) AvARRAY(pad)
@@ -315,39 +343,56 @@ Restore the old pad saved into the local variable C<opad> by C<PAD_SAVE_LOCAL()>
#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 PadnameIsOUR(pn) cBOOL((pn)->xpadn_ourstash)
#define PadnameOURSTASH(pn) (pn)->xpadn_ourstash
#define PadnameTYPE(pn) (pn)->xpadn_type_u.xpadn_typestash
+#define PadnameHasTYPE(pn) cBOOL(PadnameTYPE(pn))
#define PadnamePROTOCV(pn) (pn)->xpadn_type_u.xpadn_protocv
#define PadnameREFCNT(pn) (pn)->xpadn_refcnt
+#define PadnameREFCNT_inc(pn) Perl_padname_refcnt_inc(pn)
#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 */
+#define PadnameFIELDINFO(pn) (pn)->xpadn_fieldinfo
+#define PadnameOUTER(pn) (PadnameFLAGS(pn) & PADNAMEf_OUTER)
+#define PadnameIsSTATE(pn) (PadnameFLAGS(pn) & PADNAMEf_STATE)
+#define PadnameLVALUE(pn) (PadnameFLAGS(pn) & PADNAMEf_LVALUE)
+#define PadnameIsFIELD(pn) (PadnameFLAGS(pn) & PADNAMEf_FIELD)
+
+#define PadnameLVALUE_on(pn) (PadnameFLAGS(pn) |= PADNAMEf_LVALUE)
+#define PadnameIsSTATE_on(pn) (PadnameFLAGS(pn) |= PADNAMEf_STATE)
+
+#define PADNAMEf_OUTER 0x01 /* outer lexical var */
+#define PADNAMEf_STATE 0x02 /* state var */
+#define PADNAMEf_LVALUE 0x04 /* used as lvalue */
+#define PADNAMEf_TYPED 0x08 /* for B; unused by core */
+#define PADNAMEf_OUR 0x10 /* for B; unused by core */
+#define PADNAMEf_FIELD 0x20 /* field var */
/* 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
+#ifndef PERL_CORE
+# define SvPAD_STATE PadnameIsSTATE
+# define SvPAD_TYPED PadnameHasTYPE
+# define SvPAD_OUR(pn) cBOOL(PadnameOURSTASH(pn))
+# define SvPAD_STATE_on PadnameIsSTATE_on
+# define SvPAD_TYPED_on(pn) (PadnameFLAGS(pn) |= PADNAMEf_TYPED)
+# define SvPAD_OUR_on(pn) (PadnameFLAGS(pn) |= PADNAMEf_OUR)
+# define SvOURSTASH PadnameOURSTASH
+# define SvOURSTASH_set PadnameOURSTASH_set
+# define SVpad_STATE PADNAMEf_STATE
+# define SVpad_TYPED PADNAMEf_TYPED
+# define SVpad_OUR PADNAMEf_OUR
+# define PADNAMEt_OUTER PADNAMEf_OUTER
+# define PADNAMEt_STATE PADNAMEf_STATE
+# define PADNAMEt_LVALUE PADNAMEf_LVALUE
+# define PADNAMEt_TYPED PADNAMEf_TYPED
+# define PADNAMEt_OUR PADNAMEf_OUR
+#endif
+
+#ifdef USE_ITHREADS
+# define padnamelist_dup_inc(pnl,param) PadnamelistREFCNT_inc(padnamelist_dup(pnl,param))
+# define padname_dup_inc(pn,param) PadnameREFCNT_inc(padname_dup(pn,param))
+#endif
#ifdef DEBUGGING
# define PAD_SV(po) pad_sv(po)
@@ -445,13 +490,12 @@ ling pad (lvalue) to C<gen>.
#define PAD_COMPNAME(po) 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_FLAGS_isOUR(po) PadnameIsOUR(PAD_COMPNAME_SV(po))
#define PAD_COMPNAME_PV(po) PadnamePV(PAD_COMPNAME(po))
#define PAD_COMPNAME_TYPE(po) PadnameTYPE(PAD_COMPNAME(po))
-#define PAD_COMPNAME_OURSTASH(po) \
- (SvOURSTASH(PAD_COMPNAME_SV(po)))
+#define PAD_COMPNAME_OURSTASH(po) (PadnameOURSTASH(PAD_COMPNAME_SV(po)))
#define PAD_COMPNAME_GEN(po) \
((STRLEN)PadnamelistARRAY(PL_comppad_name)[po]->xpadn_gen)
@@ -513,6 +557,18 @@ instead of a string/length pair.
#define pad_findmy_pvs(name,flags) \
Perl_pad_findmy_pvn(aTHX_ STR_WITH_LEN(name), flags)
+struct suspended_compcv
+{
+ CV *compcv;
+ STRLEN padix, constpadix;
+ STRLEN comppad_name_fill;
+ STRLEN min_intro_pending, max_intro_pending;
+ bool cv_has_eval, pad_reset_pending;
+};
+
+#define resume_compcv_final(buffer) Perl_resume_compcv(aTHX_ buffer, false)
+#define resume_compcv_and_save(buffer) Perl_resume_compcv(aTHX_ buffer, true)
+
/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h
index d5bc3c8616..46d6a19c7b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h
@@ -70,8 +70,8 @@ typedef struct yy_parser {
SV *lex_stuff; /* runtime pattern from m// or s/// */
I32 multi_start; /* 1st line of multi-line string */
I32 multi_end; /* last line of multi-line string */
- UV multi_open; /* delimiter of said string */
- UV multi_close; /* delimiter of said string */
+ UV multi_open; /* delimiter code point of said string */
+ UV multi_close; /* delimiter code point of said string */
bool lex_re_reparsing; /* we're doing G_RE_REPARSING */
U8 lex_super_state;/* lexer state to save */
U16 lex_sub_inwhat; /* "lex_inwhat" to use in sublex_push */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h
index 1a48368e7c..9bd928bc38 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h
@@ -38,8 +38,8 @@ Instead use one of the version comparison macros. See C<L</PERL_VERSION_EQ>>.
* exactly on the third column */
#define PERL_REVISION 5 /* age */
-#define PERL_VERSION 34 /* epoch */
-#define PERL_SUBVERSION 0 /* generation */
+#define PERL_VERSION 38 /* epoch */
+#define PERL_SUBVERSION 2 /* generation */
/* The following numbers describe the earliest compatible version of
Perl ("compatibility" here being defined as sufficient binary/API
@@ -59,7 +59,7 @@ Instead use one of the version comparison macros. See C<L</PERL_VERSION_EQ>>.
changing them should not be necessary.
*/
#define PERL_API_REVISION 5
-#define PERL_API_VERSION 34
+#define PERL_API_VERSION 38
#define PERL_API_SUBVERSION 0
/*
XXX Note: The selection of non-default Configure options, such
@@ -118,11 +118,12 @@ open PLIN, "<", "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
open PLOUT, ">", "patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
my $seen=0;
while (<PLIN>) {
- if (/\t,NULL/ and $seen) {
+ if (/^(\s+),NULL/ and $seen) {
+ my $pre = $1;
while (my $c = shift @ARGV){
$c =~ s|\\|\\\\|g;
$c =~ s|"|\\"|g;
- print PLOUT qq{\t,"$c"\n};
+ print PLOUT qq{$pre,"$c"\n};
}
}
$seen++ if /local_patches\[\]/;
@@ -153,7 +154,7 @@ hunk.
# define PERL_PATCHNUM "UNKNOWN-microperl"
# define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
# else
-#include "git_version.h"
+# include "git_version.h"
# endif
static const char * const local_patches[] = {
NULL
@@ -167,7 +168,7 @@ static const char * const local_patches[] = {
/* Initial space prevents this variable from being inserted in config.sh */
-# define LOCAL_PATCH_COUNT \
+# define LOCAL_PATCH_COUNT \
((int)(C_ARRAY_LENGTH(local_patches)-2))
/* the old terms of reference, add them only when explicitly included */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h
index 17a21a1c42..4ef161db95 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h
@@ -11,6 +11,22 @@
#ifndef H_PERL
#define H_PERL 1
+#if defined(__HP_cc) || defined(__HP_aCC)
+/* The HPUX compiler for Itanium is very picky and warns about
+ * things that gcc doesn't and that we would prefer it does not.
+ * So on that platform silence certain warnings unlaterally. */
+
+/* silence "relational operator ">" always evaluates to 'false'"
+ * warnings. We get a LOT of these from the memwrap checks. */
+#pragma diag_suppress 4276
+
+/* silence "may cause misaligned access" warnings from our "OO in C"
+ * type logic. we do this a lot and if it was broken we would fail tests
+ * all over the place */
+#pragma diag_suppress 4232
+
+#endif /* end HPUX warning disablement */
+
#ifdef PERL_FOR_X2P
/*
* This file is being used for x2p stuff.
@@ -28,14 +44,42 @@
# include "config.h"
#endif
-/* this is used for functions which take a depth trailing
- * argument under debugging */
+/*
+=for apidoc_section $debugging
+=for apidoc CmnW ||comma_aDEPTH
+Some functions when compiled under DEBUGGING take an extra final argument named
+C<depth>, indicating the C stack depth. This argument is omitted otherwise.
+This macro expands to either S<C<, depth>> under DEBUGGING, or to nothing at
+all when not under DEBUGGING, reducing the number of C<#ifdef>'s in the code.
+
+The program is responsible for maintaining the correct value for C<depth>.
+
+=for apidoc CyW ||comma_pDEPTH
+This is used in the prototype declarations for functions that take a L</C<comma_aDEPTH>>
+final parameter, much like L<C<pTHX_>|perlguts/Background and MULTIPLICITY>
+is used in functions that take a thread context initial parameter.
+
+=for apidoc CmnW ||debug_aDEPTH
+Same as L</C<comma_aDEPTH>> but with no leading argument. Intended for functions with
+no normal arguments, and used by L</C<comma_aDEPTH>> itself.
+
+=for apidoc CmnW ||debug_pDEPTH
+Same as L</C<comma_pDEPTH>> but with no leading argument. Intended for functions with
+no normal arguments, and used by L</C<comma_pDEPTH>> itself.
+
+=cut
+ */
+
#ifdef DEBUGGING
-# define _pDEPTH ,U32 depth
-# define _aDEPTH ,depth
+# define debug_pDEPTH U32 depth
+# define comma_pDEPTH ,debug_pDEPTH
+# define debug_aDEPTH depth
+# define comma_aDEPTH ,debug_aDEPTH
#else
-# define _pDEPTH
-# define _aDEPTH
+# define debug_aDEPTH
+# define comma_aDEPTH
+# define debug_pDEPTH
+# define comma_pDEPTH
#endif
/* NOTE 1: that with gcc -std=c89 the __STDC_VERSION__ is *not* defined
@@ -50,7 +94,7 @@
#endif
/* See L<perlguts/"The Perl API"> for detailed notes on
- * PERL_IMPLICIT_CONTEXT and PERL_IMPLICIT_SYS */
+ * MULTIPLICITY and PERL_IMPLICIT_SYS */
/* XXX NOTE that from here --> to <-- the same logic is
* repeated in makedef.pl, so be certain to update
@@ -62,10 +106,18 @@
# endif
#endif
-#ifdef MULTIPLICITY
-# ifndef PERL_IMPLICIT_CONTEXT
-# define PERL_IMPLICIT_CONTEXT
-# endif
+/* PERL_IMPLICIT_CONTEXT is a legacy synonym for MULTIPLICITY */
+#if defined(MULTIPLICITY) \
+ && ! defined(PERL_CORE) \
+ && ! defined(PERL_IMPLICIT_CONTEXT)
+# define PERL_IMPLICIT_CONTEXT
+#endif
+#if defined(PERL_IMPLICIT_CONTEXT) && !defined(MULTIPLICITY)
+# define MULTIPLICITY
+#endif
+#if defined(PERL_CORE) && defined(PERL_IMPLICIT_CONTEXT)
+# pragma message("PERL_IMPLICIT_CONTEXT was removed from core perl. It does not do anything. Undeffing it for compilation")
+# undef PERL_IMPLICIT_CONTEXT
#endif
/* undef WIN32 when building on Cygwin (for libwin32) - gph */
@@ -77,7 +129,7 @@
/* Use the reentrant APIs like localtime_r and getpwent_r */
/* Win32 has naturally threadsafe libraries, no need to use any _r variants.
* XXX KEEP makedef.pl copy of this code in sync */
-#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(NETWARE) && !defined(WIN32)
+#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(WIN32)
# define USE_REENTRANT_API
#endif
@@ -146,10 +198,7 @@ Now a synonym for C<L</dTHXa>>.
=cut
*/
-#ifdef PERL_IMPLICIT_CONTEXT
-# ifndef MULTIPLICITY
-# define MULTIPLICITY
-# endif
+#ifdef MULTIPLICITY
# define tTHX PerlInterpreter*
# define pTHX tTHX my_perl PERL_UNUSED_DECL
# define aTHX my_perl
@@ -284,6 +333,19 @@ Now a no-op.
# define PERL_IS_GCC 1
#endif
+#define PERL_GCC_VERSION_GE(major,minor,patch) \
+ (((100000 * __GNUC__) + (1000 * __GNUC_MINOR__) + __GNUC_PATCHLEVEL__) \
+ >= ((100000 * (major)) + (1000 * (minor)) + (patch)))
+#define PERL_GCC_VERSION_GT(major,minor,patch) \
+ (((100000 * __GNUC__) + (1000 * __GNUC_MINOR__) + __GNUC_PATCHLEVEL__) \
+ > ((100000 * (major)) + (1000 * (minor)) + (patch)))
+#define PERL_GCC_VERSION_LE(major,minor,patch) \
+ (((100000 * __GNUC__) + (1000 * __GNUC_MINOR__) + __GNUC_PATCHLEVEL__) \
+ <= ((100000 * (major)) + (1000 * (minor)) + (patch)))
+#define PERL_GCC_VERSION_LT(major,minor,patch) \
+ (((100000 * __GNUC__) + (1000 * __GNUC_MINOR__) + __GNUC_PATCHLEVEL__) \
+ < ((100000 * (major)) + (1000 * (minor)) + (patch)))
+
/* In case Configure was not used (we are using a "canned config"
* such as Win32, or a cross-compilation setup, for example) try going
* by the gcc major and minor versions. One useful URL is
@@ -300,40 +362,43 @@ Now a no-op.
#ifndef PERL_MICRO
# if defined __GNUC__ && !defined(__INTEL_COMPILER)
-# if __GNUC__ == 3 && __GNUC_MINOR__ >= 1 || __GNUC__ > 3 /* 3.1 -> */
+# if PERL_GCC_VERSION_GE(3,1,0)
# define HASATTRIBUTE_DEPRECATED
# endif
-# if __GNUC__ >= 3 /* 3.0 -> */ /* XXX Verify this version */
+# if PERL_GCC_VERSION_GE(3,0,0) /* XXX Verify this version */
# define HASATTRIBUTE_FORMAT
# if defined __MINGW32__
# define PRINTF_FORMAT_NULL_OK
# endif
# endif
-# if __GNUC__ >= 3 /* 3.0 -> */
+# if PERL_GCC_VERSION_GE(3,0,0)
# define HASATTRIBUTE_MALLOC
# endif
-# if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3 /* 3.3 -> */
+# if PERL_GCC_VERSION_GE(3,3,0)
# define HASATTRIBUTE_NONNULL
# endif
-# if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 || __GNUC__ > 2 /* 2.5 -> */
+# if PERL_GCC_VERSION_GE(2,5,0)
# define HASATTRIBUTE_NORETURN
# endif
-# if __GNUC__ >= 3 /* gcc 3.0 -> */
+# if PERL_GCC_VERSION_GE(3,0,0)
# define HASATTRIBUTE_PURE
# endif
-# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 /* 3.4 -> */
+# if PERL_GCC_VERSION_GE(3,4,0)
# define HASATTRIBUTE_UNUSED
# endif
# if __GNUC__ == 3 && __GNUC_MINOR__ == 3 && !defined(__cplusplus)
# define HASATTRIBUTE_UNUSED /* gcc-3.3, but not g++-3.3. */
# endif
-# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 /* 3.4 -> */
+# if PERL_GCC_VERSION_GE(3,4,0)
# define HASATTRIBUTE_WARN_UNUSED_RESULT
# endif
/* always_inline is buggy in gcc <= 4.6 and causes compilation errors */
-# if __GNUC__ == 4 && __GNUC_MINOR__ >= 7 || __GNUC__ > 4 /* 4.7 -> */
+# if PERL_GCC_VERSION_GE(4,7,0)
# define HASATTRIBUTE_ALWAYS_INLINE
# endif
+# if PERL_GCC_VERSION_GE(3,3,0)
+# define HASATTRIBUTE_VISIBILITY
+# endif
# endif
#endif /* #ifndef PERL_MICRO */
@@ -363,10 +428,18 @@ Now a no-op.
#endif
#ifdef HASATTRIBUTE_ALWAYS_INLINE
/* always_inline is buggy in gcc <= 4.6 and causes compilation errors */
-# if !defined(PERL_IS_GCC) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7 || __GNUC__ > 4)
+# if !defined(PERL_IS_GCC) || PERL_GCC_VERSION_GE(4,7,0)
# define __attribute__always_inline__ __attribute__((always_inline))
# endif
#endif
+#if defined(HASATTRIBUTE_VISIBILITY) && !defined(_WIN32) && !defined(__CYGWIN__)
+/* On Windows instead of this, we use __declspec(dllexport) and a .def file
+ * Cygwin works by exporting every global symbol, see the definition of ldflags
+ * near the end of hints/cygwin.sh and the visibility attribute doesn't appear
+ * to control that.
+ */
+# define __attribute__visibility__(x) __attribute__((visibility(x)))
+#endif
/* If we haven't defined the attributes yet, define them to blank. */
#ifndef __attribute__deprecated__
@@ -396,6 +469,9 @@ Now a no-op.
#ifndef __attribute__always_inline__
# define __attribute__always_inline__
#endif
+#ifndef __attribute__visibility__
+# define __attribute__visibility__(x)
+#endif
/* Some OS warn on NULL format to printf */
#ifdef PRINTF_FORMAT_NULL_OK
@@ -413,7 +489,9 @@ Now a no-op.
* marking unused variables (they need e.g. a #pragma) and therefore
* cpp macros like PERL_UNUSED_DECL cannot work for this purpose, even
* if it were PERL_UNUSED_DECL(x), which it cannot be (see above).
+*/
+/*
=for apidoc_section $directives
=for apidoc AmnU||PERL_UNUSED_DECL
Tells the compiler that the parameter in the function prototype just before it
@@ -432,7 +510,7 @@ Example usage:
=back
=cut
- */
+*/
#ifndef PERL_UNUSED_DECL
# define PERL_UNUSED_DECL __attribute__unused__
@@ -442,25 +520,26 @@ Example usage:
* 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,
* or variables/arguments that are used only in certain configurations.
-
-=for apidoc Ams||PERL_UNUSED_ARG|void x
+ */
+/*
+=for apidoc Am;||PERL_UNUSED_ARG|void x
This is used to suppress compiler warnings that a parameter to a function is
not used. This situation can arise, for example, when a parameter is needed
under some configuration conditions, but not others, so that C preprocessor
-conditional compilation causes it be used just some times.
+conditional compilation causes it be used just sometimes.
-=for apidoc Amns||PERL_UNUSED_CONTEXT
+=for apidoc Amn;||PERL_UNUSED_CONTEXT
This is used to suppress compiler warnings that the thread context parameter to
a function is not used. This situation can arise, for example, when a
C preprocessor conditional compilation causes it be used just some times.
-=for apidoc Ams||PERL_UNUSED_VAR|void x
+=for apidoc Am;||PERL_UNUSED_VAR|void x
This is used to suppress compiler warnings that the variable I<x> is not used.
This situation can arise, for example, when a C preprocessor conditional
compilation causes it be used just some times.
=cut
- */
+*/
#ifndef PERL_UNUSED_ARG
# define PERL_UNUSED_ARG(x) ((void)sizeof(x))
#endif
@@ -481,7 +560,7 @@ compilation causes it be used just some times.
*/
#if defined(PERL_GCC_PEDANTIC) || \
(defined(__GNUC__) && defined(__cplusplus) && \
- ((__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ < 2))))
+ (PERL_GCC_VERSION_LT(4,2,0)))
# ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
# define PERL_GCC_BRACE_GROUPS_FORBIDDEN
# endif
@@ -516,7 +595,7 @@ and use C<L</PERL_UNUSED_VAR>> on that.
=cut
The __typeof__() is used instead of typeof() since typeof() is not
-available under strict C89, and because of compilers masquerading
+available under strict ISO C, and because of compilers masquerading
as gcc (clang and icc), we want exactly the gcc extension
__typeof__ and nothing else.
@@ -529,11 +608,6 @@ __typeof__ and nothing else.
# endif
#endif
-#if defined(_MSC_VER) && _MSC_VER < 1400
-/* XXX older MSVC versions have a smallish macro buffer */
-# define PERL_SMALL_MACRO_BUFFER
-#endif
-
/* on gcc (and clang), specify that a warning should be temporarily
* ignored; e.g.
*
@@ -557,8 +631,7 @@ __typeof__ and nothing else.
*
*/
-#if defined(__clang__) || defined(__clang) || \
- (defined( __GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406)
+#if defined(__clang__) || defined(__clang) || PERL_GCC_VERSION_GE(4,6,0)
# 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") \
@@ -587,7 +660,7 @@ __typeof__ and nothing else.
#define CLANG_DIAG_IGNORE_STMT(x) CLANG_DIAG_IGNORE(x) NOOP
#define CLANG_DIAG_RESTORE_STMT CLANG_DIAG_RESTORE NOOP
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
+#if defined(_MSC_VER)
# define MSVC_DIAG_IGNORE(x) __pragma(warning(push)) \
__pragma(warning(disable : x))
# define MSVC_DIAG_RESTORE __pragma(warning(pop))
@@ -601,23 +674,23 @@ __typeof__ and nothing else.
#define MSVC_DIAG_RESTORE_STMT MSVC_DIAG_RESTORE NOOP
/*
-=for apidoc Amns||NOOP
+=for apidoc Amn;||NOOP
Do nothing; typically used as a placeholder to replace something that used to
do something.
-=for apidoc Amns||dNOOP
+=for apidoc Amn;||dNOOP
Declare nothing; typically used as a placeholder to replace something that used
to declare something. Works on compilers that require declarations before any
code.
=cut
*/
-#define NOOP /*EMPTY*/(void)0
+#define NOOP ((void)0)
#define dNOOP struct Perl___notused_struct
#ifndef pTHX
/* Don't bother defining tTHX ; using it outside
- * code guarded by PERL_IMPLICIT_CONTEXT is an error.
+ * code guarded by MULTIPLICITY is an error.
*/
# define pTHX void
# define pTHX_
@@ -626,7 +699,7 @@ code.
# define aTHXa(a) NOOP
# define dTHXa(a) dNOOP
# define dTHX dNOOP
-# define pTHX_1 1
+# define pTHX_1 1
# define pTHX_2 2
# define pTHX_3 3
# define pTHX_4 4
@@ -644,7 +717,7 @@ code.
This is now a synonym for dNOOP: declare nothing
=for apidoc_section $XS
-=for apidoc Amns||dMY_CXT_SV
+=for apidoc Amn;||dMY_CXT_SV
Now a placeholder that declares nothing
=cut
@@ -693,28 +766,60 @@ Now a placeholder that declares nothing
/*
=for apidoc_section $directives
-=for apidoc AmnUu|void|STMT_START
-=for apidoc_item ||STMT_END
+=for apidoc AmnUu|void|STMT_END
+=for apidoc_item | |STMT_START
-This allows a series of statements in a macro to be used as a single statement,
+These allow a series of statements in a macro to be used as a single statement,
as in
if (x) STMT_START { ... } STMT_END else ...
-Note that you can't return a value out of them, which limits their utility.
-But see C<L</PERL_USE_GCC_BRACE_GROUPS>>.
+Note that you can't return a value out of this construct and cannot use it as
+an operand to the comma operator. These limit its utility.
-=for apidoc AmnuU|bool|PERL_USE_GCC_BRACE_GROUPS
+But, a value could be returned by constructing the API so that a pointer is
+passed and the macro dereferences this to set the return. If the value can be
+any of various types, depending on context, you can handle that situation in
+some situations by adding the type of the return as an extra accompanying
+parameter:
+
+ #define foo(param, type) STMT_START {
+ type * param; *param = do_calc; ...
+ } STMT_END
+
+This could be awkward, so consider instead using a C language C<static inline>
+function.
+
+If you do use this construct, it is easy to forget that it is a macro and not a
+function, and hence fall into traps that might not show up until someone
+someday writes code which contains names that clash with the ones you chose
+here, or calls it with a parameter which is an expression with side effects,
+the consequences of which you didn't think about. See L<perlhacktips/Writing
+safer macros> for how to avoid these.
+
+=for apidoc_section $genconfig
+=for apidoc Amn#||PERL_USE_GCC_BRACE_GROUPS
This C pre-processor value, if defined, indicates that it is permissible to use
-the GCC brace groups extension. This extension, of the form
+the GCC brace groups extension. However, use of this extension is DISCOURAGED.
+Use a C<static inline> function instead.
+
+The extension, of the form
({ statement ... })
-turns the block consisting of I<statements ...> into an expression with a
+turns the block consisting of I<statement ...> into an expression with a
value, unlike plain C language blocks. This can present optimization
-possibilities, B<BUT> you generally need to specify an alternative in case this
-ability doesn't exist or has otherwise been forbidden.
+possibilities, B<BUT>, unless you know for sure that this will never be
+compiled without this extension being available and not forbidden, you need to
+specify an alternative. Thus two code paths have to be maintained, which can
+get out-of-sync. All these issues are solved by using a C<static inline>
+function instead.
+
+Perl can be configured to not use this feature by passing the parameter
+C<-Accflags=-DPERL_GCC_BRACE_GROUPS_FORBIDDEN> to F<Configure>.
+
+=for apidoc Amnh#||PERL_GCC_BRACE_GROUPS_FORBIDDEN
Example usage:
@@ -733,23 +838,27 @@ Example usage:
Trying to select a version that gives no warnings...
*/
#if !(defined(STMT_START) && defined(STMT_END))
-# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define STMT_START (void)( /* gcc supports "({ STATEMENTS; })" */
-# define STMT_END )
-# else
# define STMT_START do
# define STMT_END while (0)
-# endif
#endif
#ifndef BYTEORDER /* Should never happen -- byteorder is in config.h */
# define BYTEORDER 0x1234
#endif
+/*
+=for apidoc_section $genconfig
+=for apidoc Amn#||ASCIIish
+
+A preprocessor symbol that is defined iff the system is an ASCII platform; this
+symbol would not be defined on C<L</EBCDIC>> platforms.
+
+=cut
+*/
#if 'A' == 65 && 'I' == 73 && 'J' == 74 && 'Z' == 90
-#define ASCIIish
+# define ASCIIish
#else
-#undef ASCIIish
+# undef ASCIIish
#endif
/*
@@ -761,7 +870,7 @@ Example usage:
*/
/* define this once if either system, instead of cluttering up the src */
-#if defined(MSDOS) || defined(WIN32) || defined(NETWARE)
+#if defined(WIN32)
#define DOSISH 1
#endif
@@ -811,6 +920,68 @@ Example usage:
# define TAINT_WARN_get 0
# define TAINT_WARN_set(s) NOOP
#else
+
+/*
+=for apidoc_section $tainting
+=for apidoc Cm|void|TAINT
+
+If we aren't in taint checking mode, do nothing;
+otherwise indicate to L</C<TAINT_set>> and L</C<TAINT_PROPER>> that some
+unspecified element is tainted.
+
+=for apidoc Cm|void|TAINT_NOT
+
+Remove any taintedness previously set by, I<e.g.>, C<TAINT>.
+
+=for apidoc Cm|void|TAINT_IF|bool c
+
+If C<c> evaluates to true, call L</C<TAINT>> to indicate that something is
+tainted; otherwise do nothing.
+
+=for apidoc Cmn|void|TAINT_ENV
+
+Looks at several components of L<C<%ENV>|perlvar/%ENV> for taintedness, and
+calls L</C<taint_proper>> if any are tainted. The components it searches are
+things like C<$PATH>.
+
+=for apidoc Cm|void|TAINT_PROPER|const char * s
+
+If no element is tainted, do nothing;
+otherwise output a message (containing C<s>) that indicates there is a
+tainting violation. If such violations are fatal, it croaks.
+
+=for apidoc Cm|void|TAINT_set|bool s
+
+If C<s> is true, L</C<TAINT_get>> returns true;
+If C<s> is false, L</C<TAINT_get>> returns false;
+
+=for apidoc Cm|bool|TAINT_get
+
+Returns a boolean as to whether some element is tainted or not.
+
+=for apidoc Cm|bool|TAINTING_get
+
+Returns a boolean as to whether taint checking is enabled or not.
+
+=for apidoc Cm|void|TAINTING_set|bool s
+
+Turn taint checking mode off/on
+
+=for apidoc Cm|bool|TAINT_WARN_get
+
+Returns false if tainting violations are fatal;
+Returns true if they're just warnings
+
+=for apidoc Cm|void|TAINT_WARN_set|bool s
+
+C<s> being true indicates L</C<TAINT_WARN_get>> should return that tainting
+violations are just warnings
+
+C<s> being false indicates L</C<TAINT_WARN_get>> should return that tainting
+violations are fatal.
+
+=cut
+*/
/* Set to tainted if we are running under tainting mode */
# define TAINT (PL_tainted = PL_tainting)
@@ -821,15 +992,12 @@ Example usage:
# define TAINT_PROPER(s) if (UNLIKELY(PL_tainting)) { \
taint_proper(NULL, s); \
}
-# define TAINT_set(s) (PL_tainted = (s))
+# define TAINT_set(s) (PL_tainted = cBOOL(s))
# define TAINT_get (cBOOL(UNLIKELY(PL_tainted))) /* Is something tainted? */
-# define TAINTING_get (cBOOL(UNLIKELY(PL_tainting))) /* Is taint checking enabled? */
-# define TAINTING_set(s) (PL_tainting = (s))
-# define TAINT_WARN_get (PL_taint_warn) /* FALSE => tainting violations
- are fatal
- TRUE => they're just
- warnings */
-# define TAINT_WARN_set(s) (PL_taint_warn = (s))
+# define TAINTING_get (cBOOL(UNLIKELY(PL_tainting)))
+# define TAINTING_set(s) (PL_tainting = cBOOL(s))
+# define TAINT_WARN_get (PL_taint_warn)
+# define TAINT_WARN_set(s) (PL_taint_warn = cBOOL(s))
#endif
/* flags used internally only within pp_subst and pp_substcont */
@@ -883,6 +1051,13 @@ Example usage:
# endif
#endif
+/* This define exists only for compatibility. It used to mean "my_setenv and
+ * friends should use setenv/putenv, instead of manipulating environ directly",
+ * which is now always the case. It's still defined to prevent XS modules from
+ * using the no longer existing PL_use_safe_putenv variable.
+ */
+#define PERL_USE_SAFE_PUTENV
+
/* HP-UX 10.X CMA (Common Multithreaded Architecture) insists that
pthread.h must be included before all other header files.
*/
@@ -918,10 +1093,16 @@ Example usage:
# include <locale.h>
#endif
-#ifdef I_XLOCALE
+#ifdef NEED_XLOCALE_H
# include <xlocale.h>
#endif
+#include "perl_langinfo.h" /* Needed for _NL_LOCALE_NAME */
+
+/* =========================================================================
+ * The defines from here to the following ===== line are unfortunately
+ * duplicated in makedef.pl, and changes here MUST also be made there */
+
/* If not forbidden, we enable locale handling if either 1) the POSIX 2008
* functions are available, or 2) just the setlocale() function. This logic is
* repeated in t/loc_tools.pl and makedef.pl; The three should be kept in
@@ -983,6 +1164,9 @@ Example usage:
# if !defined(NO_LOCALE_TELEPHONE) && defined(LC_TELEPHONE)
# define USE_LOCALE_TELEPHONE
# endif
+# if !defined(NO_LOCALE_NAME) && defined(LC_NAME)
+# define USE_LOCALE_NAME
+# endif
# if !defined(NO_LOCALE_SYNTAX) && defined(LC_SYNTAX)
# define USE_LOCALE_SYNTAX
# endif
@@ -990,38 +1174,205 @@ Example usage:
# define USE_LOCALE_TOD
# endif
-/* XXX The next few defines are unfortunately duplicated in makedef.pl, and
- * changes here MUST also be made there */
+/* Now create LC_foo_INDEX_ #defines for just those categories on this system */
+# ifdef USE_LOCALE_CTYPE
+# define LC_CTYPE_INDEX_ 0
+# define PERL_DUMMY_CTYPE_ LC_CTYPE_INDEX_
+# else
+# define PERL_DUMMY_CTYPE_ -1
+# endif
+# ifdef USE_LOCALE_NUMERIC
+# define LC_NUMERIC_INDEX_ PERL_DUMMY_CTYPE_ + 1
+# define PERL_DUMMY_NUMERIC_ LC_NUMERIC_INDEX_
+# else
+# define PERL_DUMMY_NUMERIC_ PERL_DUMMY_CTYPE_
+# endif
+# ifdef USE_LOCALE_COLLATE
+# define LC_COLLATE_INDEX_ PERL_DUMMY_NUMERIC_ + 1
+# define PERL_DUMMY_COLLATE_ LC_COLLATE_INDEX_
+# else
+# define PERL_DUMMY_COLLATE_ PERL_DUMMY_NUMERIC_
+# endif
+# ifdef USE_LOCALE_TIME
+# define LC_TIME_INDEX_ PERL_DUMMY_COLLATE_ + 1
+# define PERL_DUMMY_TIME_ LC_TIME_INDEX_
+# else
+# define PERL_DUMMY_TIME_ PERL_DUMMY_COLLATE_
+# endif
+# ifdef USE_LOCALE_MESSAGES
+# define LC_MESSAGES_INDEX_ PERL_DUMMY_TIME_ + 1
+# define PERL_DUMMY_MESSAGES_ LC_MESSAGES_INDEX_
+# else
+# define PERL_DUMMY_MESSAGES_ PERL_DUMMY_TIME_
+# endif
+# ifdef USE_LOCALE_MONETARY
+# define LC_MONETARY_INDEX_ PERL_DUMMY_MESSAGES_ + 1
+# define PERL_DUMMY_MONETARY_ LC_MONETARY_INDEX_
+# else
+# define PERL_DUMMY_MONETARY_ PERL_DUMMY_MESSAGES_
+# endif
+# ifdef USE_LOCALE_ADDRESS
+# define LC_ADDRESS_INDEX_ PERL_DUMMY_MONETARY_ + 1
+# define PERL_DUMMY_ADDRESS_ LC_ADDRESS_INDEX_
+# else
+# define PERL_DUMMY_ADDRESS_ PERL_DUMMY_MONETARY_
+# endif
+# ifdef USE_LOCALE_IDENTIFICATION
+# define LC_IDENTIFICATION_INDEX_ PERL_DUMMY_ADDRESS_ + 1
+# define PERL_DUMMY_IDENTIFICATION_ LC_IDENTIFICATION_INDEX_
+# else
+# define PERL_DUMMY_IDENTIFICATION_ PERL_DUMMY_ADDRESS_
+# endif
+# ifdef USE_LOCALE_MEASUREMENT
+# define LC_MEASUREMENT_INDEX_ PERL_DUMMY_IDENTIFICATION_ + 1
+# define PERL_DUMMY_MEASUREMENT_ LC_MEASUREMENT_INDEX_
+# else
+# define PERL_DUMMY_MEASUREMENT_ PERL_DUMMY_IDENTIFICATION_
+# endif
+# ifdef USE_LOCALE_PAPER
+# define LC_PAPER_INDEX_ PERL_DUMMY_MEASUREMENT_ + 1
+# define PERL_DUMMY_PAPER_ LC_PAPER_INDEX_
+# else
+# define PERL_DUMMY_PAPER_ PERL_DUMMY_MEASUREMENT_
+# endif
+# ifdef USE_LOCALE_TELEPHONE
+# define LC_TELEPHONE_INDEX_ PERL_DUMMY_PAPER_ + 1
+# define PERL_DUMMY_TELEPHONE_ LC_TELEPHONE_INDEX_
+# else
+# define PERL_DUMMY_TELEPHONE_ PERL_DUMMY_PAPER_
+# endif
+# ifdef USE_LOCALE_NAME
+# define LC_NAME_INDEX_ PERL_DUMMY_TELEPHONE_ + 1
+# define PERL_DUMMY_NAME_ LC_NAME_INDEX_
+# else
+# define PERL_DUMMY_NAME_ PERL_DUMMY_TELEPHONE_
+# endif
+# ifdef USE_LOCALE_SYNTAX
+# define LC_SYNTAX_INDEX_ PERL_DUMMY_NAME + 1
+# define PERL_DUMMY_SYNTAX_ LC_SYNTAX_INDEX_
+# else
+# define PERL_DUMMY_SYNTAX_ PERL_DUMMY_NAME_
+# endif
+# ifdef USE_LOCALE_TOD
+# define LC_TOD_INDEX_ PERL_DUMMY_SYNTAX_ + 1
+# define PERL_DUMMY_TOD_ LC_TOD_INDEX_
+# else
+# define PERL_DUMMY_TOD_ PERL_DUMMY_SYNTAX_
+# endif
+# ifdef LC_ALL
+# define LC_ALL_INDEX_ PERL_DUMMY_TOD_ + 1
+# endif
+
-# if ! defined(HAS_SETLOCALE) && defined(HAS_POSIX_2008_LOCALE)
-# define USE_POSIX_2008_LOCALE
-# ifndef USE_THREAD_SAFE_LOCALE
-# define USE_THREAD_SAFE_LOCALE
-# endif
- /* If compiled with
- * -DUSE_THREAD_SAFE_LOCALE, will do so even
- * on unthreaded builds */
-# elif (defined(USE_ITHREADS) || defined(USE_THREAD_SAFE_LOCALE)) \
- && ( defined(HAS_POSIX_2008_LOCALE) \
- || (defined(WIN32) && defined(_MSC_VER) && _MSC_VER >= 1400)) \
- && ! defined(NO_THREAD_SAFE_LOCALE)
-# ifndef USE_THREAD_SAFE_LOCALE
+# if defined(USE_ITHREADS) && ! defined(NO_LOCALE_THREADS)
+# define USE_LOCALE_THREADS
+# endif
+
+ /* Use POSIX 2008 locales if available, and no alternative exists
+ * ('setlocale()' is the alternative); or is threaded and not forbidden to
+ * use them */
+# if defined(HAS_POSIX_2008_LOCALE) && ( ! defined(HAS_SETLOCALE) \
+ || ( defined(USE_LOCALE_THREADS) \
+ && ! defined(NO_POSIX_2008_LOCALE)))
+# define USE_POSIX_2008_LOCALE
+# endif
+
+ /* On threaded builds, use thread-safe locales if they are available and not
+ * forbidden. Availability is when we are using POSIX 2008 locales, or
+ * Windows for quite a few releases now. */
+# if defined(USE_LOCALE_THREADS) && ! defined(NO_THREAD_SAFE_LOCALE)
+# if defined(USE_POSIX_2008_LOCALE) || (defined(WIN32) && defined(_MSC_VER))
# define USE_THREAD_SAFE_LOCALE
# endif
-# ifdef HAS_POSIX_2008_LOCALE
-# define USE_POSIX_2008_LOCALE
+# endif
+
+# include "perl_langinfo.h" /* Needed for _NL_LOCALE_NAME */
+
+# ifdef USE_POSIX_2008_LOCALE
+# if defined(HAS_QUERYLOCALE) \
+ /* Use querylocale if has it, or has the glibc internal \
+ * undocumented equivalent. */ \
+ || ( defined(_NL_LOCALE_NAME) \
+ /* And asked for */ \
+ && defined(USE_NL_LOCALE_NAME) \
+ /* nl_langinfo_l almost certainly will exist on systems that \
+ * have _NL_LOCALE_NAME, so there is nothing lost by \
+ * requiring it instead of also allowing plain nl_langinfo(). \
+ * And experience indicates that its glibc implementation is \
+ * thread-safe, eliminating code complications */ \
+ && defined(HAS_NL_LANGINFO_L) \
+ /* On systems that accept any locale name, the real \
+ * underlying locale is often returned by this internal \
+ * item, so we can't use it */ \
+ && ! defined(SETLOCALE_ACCEPTS_ANY_LOCALE_NAME))
+# define USE_QUERYLOCALE
+# endif
+# endif
+
+ /* POSIX 2008 has no means of finding out the current locale without a
+ * querylocale; so must keep track of it ourselves */
+# if (defined(USE_POSIX_2008_LOCALE) && ! defined(USE_QUERYLOCALE))
+# define USE_PL_CURLOCALES
+# define USE_PL_CUR_LC_ALL
+# endif
+
+# if defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE)
+
+ /* We need to be able to map the current value of what the tTHX context
+ * thinks LC_ALL is so as to inform the Windows libc when switching
+ * contexts. */
+# define USE_PL_CUR_LC_ALL
+
+ /* Microsoft documentation reads in the change log for VS 2015: "The
+ * localeconv function declared in locale.h now works correctly when
+ * per-thread locale is enabled. In previous versions of the library, this
+ * function would return the lconv data for the global locale, not the
+ * thread's locale." */
+# if _MSC_VER < 1900
+# define TS_W32_BROKEN_LOCALECONV
# endif
# endif
+
+ /* POSIX 2008 and Windows with thread-safe locales keep locale information
+ * in libc data. Therefore we must inform their libc's when the context
+ * switches */
+# if defined(MULTIPLICITY) && ( defined(USE_POSIX_2008_LOCALE) \
+ || ( defined(WIN32) \
+ && defined(USE_THREAD_SAFE_LOCALE)))
+# define USE_PERL_SWITCH_LOCALE_CONTEXT
+# endif
#endif
-/* Microsoft documentation reads in the change log for VS 2015:
- * "The localeconv function declared in locale.h now works correctly when
- * per-thread locale is enabled. In previous versions of the library, this
- * function would return the lconv data for the global locale, not the
- * thread's locale."
- */
-#if defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE) && _MSC_VER < 1900
-# define TS_W32_BROKEN_LOCALECONV
+/* end of makedef.pl logic duplication
+ * ========================================================================= */
+
+#ifdef PERL_CORE
+
+/* Both typedefs are used in locale.c only, but defined here so that embed.fnc
+ * can generate the proper prototypes. */
+
+typedef enum {
+ DONT_RECALC_LC_ALL,
+ YES_RECALC_LC_ALL,
+
+ /* Used in tight loops through all sub-categories, where LC_ALL won't be
+ * fully known until all subcategories are handled. */
+ RECALCULATE_LC_ALL_ON_FINAL_INTERATION
+} recalc_lc_all_t;
+
+
+typedef enum { /* Is the locale UTF8? */
+ LOCALE_NOT_UTF8,
+ LOCALE_IS_UTF8,
+ LOCALE_UTF8NESS_UNKNOWN
+} locale_utf8ness_t;
+
+typedef struct {
+ const char *name;
+ size_t offset;
+} lconv_offset_t;
+
+
#endif
#include <setjmp.h>
@@ -1080,7 +1431,9 @@ EXTERN_C int usleep(unsigned int);
/* Macros for correct constant construction. These are in C99 <stdint.h>
* (so they will not be available in strict C89 mode), but they are nice, so
- * let's define them if necessary.
+ * let's define them if necessary. */
+
+/*
=for apidoc_section $integer
=for apidoc Am|I16|INT16_C|number
=for apidoc_item |I32|INT32_C|number
@@ -1249,12 +1602,6 @@ Use L</UV> to declare variables of the maximum usable size on this platform.
(((U64)(x) & UINT64_C(0xff00000000000000)) >> 56) ))
# endif
-/* The old value was hard coded at 1008. (4096-16) seems to be a bit faster,
- at least on FreeBSD. YMMV, so experiment. */
-#ifndef PERL_ARENA_SIZE
-#define PERL_ARENA_SIZE 4080
-#endif
-
/* Maximum level of recursion */
#ifndef PERL_SUB_DEPTH_WARN
#define PERL_SUB_DEPTH_WARN 100
@@ -1294,12 +1641,38 @@ Use L</UV> to declare variables of the maximum usable size on this platform.
#define PERL_USES_PL_PIDSTATUS
#endif
-#if !defined(OS2) && !defined(WIN32) && !defined(DJGPP)
+#if !defined(OS2) && !defined(WIN32)
#define PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
#endif
#define MEM_SIZE Size_t
+/* av_extend and analogues enforce a minimum number of array elements.
+ * This has been 4 elements (so a minimum key size of 3) for a long
+ * time, but the rationale behind this seems to have been lost to the
+ * mists of time. */
+#ifndef PERL_ARRAY_NEW_MIN_KEY
+#define PERL_ARRAY_NEW_MIN_KEY 3
+#endif
+
+/* Functions like Perl_sv_grow mandate a minimum string size.
+ * This was 10 bytes for a long time, the rationale for which seems lost
+ * to the mists of time. However, this does not correlate to what modern
+ * malloc implementations will actually return, in particular the fact
+ * that chunks are almost certainly some multiple of pointer size. The
+ * default has therefore been revised to a more useful approximation.
+ * Notes: The following is specifically conservative for 64 bit, since
+ * most dlmalloc derivatives seem to serve a 3xPTRSIZE minimum chunk,
+ * so the below perhaps should be:
+ * ((PTRSIZE == 4) ? 12 : 24)
+ * Configure probes for malloc_good_size, malloc_actual_size etc.
+ * could be revised to record the actual minimum chunk size, to which
+ * PERL_STRLEN_NEW_MIN could then be set.
+ */
+#ifndef PERL_STRLEN_NEW_MIN
+#define PERL_STRLEN_NEW_MIN ((PTRSIZE == 4) ? 12 : 16)
+#endif
+
/* Round all values passed to malloc up, by default to a multiple of
sizeof(size_t)
*/
@@ -1361,21 +1734,23 @@ Use L</UV> to declare variables of the maximum usable size on this platform.
# define saferealloc Perl_realloc
# define safefree Perl_mfree
# define CHECK_MALLOC_TOO_LATE_FOR_(code) STMT_START { \
- if (!TAINTING_get && MallocCfg_ptr[MallocCfg_cfg_env_read]) \
- code; \
+ if (!TAINTING_get && MallocCfg_ptr[MallocCfg_cfg_env_read]) \
+ code; \
} STMT_END
# define CHECK_MALLOC_TOO_LATE_FOR(ch) \
- CHECK_MALLOC_TOO_LATE_FOR_(MALLOC_TOO_LATE_FOR(ch))
+ CHECK_MALLOC_TOO_LATE_FOR_(MALLOC_TOO_LATE_FOR(ch))
# define panic_write2(s) write(2, s, strlen(s))
# define CHECK_MALLOC_TAINT(newval) \
- CHECK_MALLOC_TOO_LATE_FOR_( \
- if (newval) { \
- 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)) { \
- MallocCfg_ptr[MallocCfg_skip_cfg_env] = 1; \
- }} STMT_END;
+ CHECK_MALLOC_TOO_LATE_FOR_( \
+ if (newval) { \
+ 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)) { \
+ MallocCfg_ptr[MallocCfg_skip_cfg_env] = 1; \
+ } \
+ } STMT_END;
#else /* MYMALLOC */
# define safemalloc safesysmalloc
# define safecalloc safesyscalloc
@@ -1475,9 +1850,6 @@ Set the C<l> bytes starting at C<*d> to all zeroes.
# endif
# endif
# ifdef I_NETDB
-# ifdef NETWARE
-# include<stdio.h>
-# endif
# include <netdb.h>
# endif
# ifndef ENOTSOCK
@@ -1551,10 +1923,10 @@ was saved by C<dSAVE_ERRNO> or C<RESTORE_ERRNO>.
#ifdef VMS
# define SETERRNO(errcode,vmserrcode) \
- STMT_START { \
- set_errno(errcode); \
- set_vaxc_errno(vmserrcode); \
- } STMT_END
+ STMT_START { \
+ set_errno(errcode); \
+ set_vaxc_errno(vmserrcode); \
+ } STMT_END
# define dSAVEDERRNO int saved_errno; unsigned saved_vms_errno
# define dSAVE_ERRNO int saved_errno = errno; unsigned saved_vms_errno = vaxc$errno
# define SAVE_ERRNO ( saved_errno = errno, saved_vms_errno = vaxc$errno )
@@ -1647,15 +2019,15 @@ any magic.
if (!*svp) { \
*svp = newSVpvs(""); \
} else if (SvREADONLY(*svp)) { \
- SvREFCNT_dec_NN(*svp); \
- *svp = newSVpvs(""); \
+ SvREFCNT_dec_NN(*svp); \
+ *svp = newSVpvs(""); \
} else { \
- SV *const errsv = *svp; \
+ SV *const errsv = *svp; \
SvPVCLEAR(errsv); \
- SvPOK_only(errsv); \
- if (SvMAGICAL(errsv)) { \
- mg_free(errsv); \
- } \
+ SvPOK_only(errsv); \
+ if (SvMAGICAL(errsv)) { \
+ mg_free(errsv); \
+ } \
} \
} STMT_END
@@ -1666,13 +2038,13 @@ any magic.
*svp = newSVpvs(""); \
} else if (SvREADONLY(*svp)) { \
SV *dupsv = newSVsv(*svp); \
- SvREFCNT_dec_NN(*svp); \
- *svp = dupsv; \
+ SvREFCNT_dec_NN(*svp); \
+ *svp = dupsv; \
} else { \
- SV *const errsv = *svp; \
- if (SvMAGICAL(errsv)) { \
- mg_free(errsv); \
- } \
+ SV *const errsv = *svp; \
+ if (SvMAGICAL(errsv)) { \
+ mg_free(errsv); \
+ } \
} \
} STMT_END
@@ -1683,10 +2055,10 @@ any magic.
(SvREFCNT_dec(GvSV(PL_defgv)), GvSV(PL_defgv) = SvREFCNT_inc(sv))
# define SAVE_DEFSV \
( \
- save_gp(PL_defgv, 0), \
- GvINTRO_off(PL_defgv), \
- SAVEGENERICSV(GvSV(PL_defgv)), \
- GvSV(PL_defgv) = NULL \
+ save_gp(PL_defgv, 0), \
+ GvINTRO_off(PL_defgv), \
+ SAVEGENERICSV(GvSV(PL_defgv)), \
+ GvSV(PL_defgv) = NULL \
)
#else
# define DEFSV GvSVn(PL_defgv)
@@ -1709,11 +2081,11 @@ Localize C<$_>. See L<perlguts/Localizing changes>.
*/
#ifndef errno
- extern int errno; /* ANSI allows errno to be an lvalue expr.
- * For example in multithreaded environments
- * something like this might happen:
- * extern int *_errno(void);
- * #define errno (*_errno()) */
+ extern int errno; /* ANSI allows errno to be an lvalue expr.
+ * For example in multithreaded environments
+ * something like this might happen:
+ * extern int *_errno(void);
+ * #define errno (*_errno()) */
#endif
#define UNKNOWN_ERRNO_MSG "(unknown)"
@@ -1945,7 +2317,7 @@ my_snprintf()
#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
+#if defined(USE_LOCALE_NUMERIC) || defined(USE_QUADMATH)
# define my_snprintf Perl_my_snprintf
# define PERL_MY_SNPRINTF_GUARDED
#elif defined(HAS_SNPRINTF) && defined(HAS_C99_VARIADIC_MACROS) && !(defined(DEBUGGING) && !defined(PERL_USE_GCC_BRACE_GROUPS)) && !defined(PERL_GCC_PEDANTIC)
@@ -1962,9 +2334,16 @@ my_snprintf()
/* 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)
+#if ! defined(USE_LOCALE_NUMERIC) \
+ && 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, max, ...) ({ int len = vsnprintf(buffer, max, __VA_ARGS__); PERL_SNPRINTF_CHECK(len, max, vsnprintf); 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, max, ...) vsnprintf(buffer, max, __VA_ARGS__)
@@ -2125,11 +2504,11 @@ typedef UVTYPE UV;
#endif
#ifndef PTR2ul
-# define PTR2ul(p) INT2PTR(unsigned long,p)
+# define PTR2ul(p) INT2PTR(unsigned long,p)
#endif
/*
-=for apidoc_section Casting
+=for apidoc_section $casting
=for apidoc Cyh|type|NUM2PTR|type|int value
You probably want to be using L<C</INT2PTR>> instead.
@@ -2188,7 +2567,7 @@ You probably want to be using L<C</INT2PTR>> instead.
here, so no allowance is being made for mingw.org
compilers at this stage. -- sisyphus January 2021
*/
-#if defined(USE_QUADMATH) && defined(__MINGW64__)
+#if (defined(USE_LONG_DOUBLE) || defined(USE_QUADMATH)) && defined(__MINGW64__)
/* 64-bit build, mingw-w64 compiler only */
typedef NVTYPE NV __attribute__ ((aligned(8)));
#else
@@ -2253,7 +2632,7 @@ You probably want to be using L<C</INT2PTR>> instead.
# define Perl_cos cosl
# define Perl_cosh coshl
# define Perl_exp expl
-/* no Perl_fabs, but there's PERL_ABS */
+# define Perl_fabs fabsl
# define Perl_floor floorl
# define Perl_fmod fmodl
# define Perl_log logl
@@ -2332,7 +2711,7 @@ extern long double Perl_my_frexpl(long double x, int *e);
# define Perl_cos cosq
# define Perl_cosh coshq
# define Perl_exp expq
-/* no Perl_fabs, but there's PERL_ABS */
+# define Perl_fabs fabsq
# define Perl_floor floorq
# define Perl_fmod fmodq
# define Perl_log logq
@@ -2349,7 +2728,7 @@ extern long double Perl_my_frexpl(long double x, int *e);
# 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))
+# define Perl_isfinite(x) (!(isnanq(x) || isinfq(x)))
# define Perl_fp_class(x) ((x) == 0.0Q ? 0 : isinfq(x) ? 3 : isnanq(x) ? 4 : PERL_ABS(x) < FLT128_MIN ? 2 : 1)
# define Perl_fp_class_inf(x) (Perl_fp_class(x) == 3)
# define Perl_fp_class_nan(x) (Perl_fp_class(x) == 4)
@@ -2378,7 +2757,7 @@ extern long double Perl_my_frexpl(long double x, int *e);
# define Perl_cos cos
# define Perl_cosh cosh
# define Perl_exp exp
-/* no Perl_fabs, but there's PERL_ABS */
+# define Perl_fabs fabs
# define Perl_floor floor
# define Perl_fmod fmod
# define Perl_log log
@@ -2676,7 +3055,7 @@ extern long double Perl_my_frexpl(long double x, int *e);
#ifndef Perl_isinf
# if defined(Perl_isfinite) && defined(Perl_isnan)
-# define Perl_isinf(x) !(Perl_isfinite(x)||Perl_isnan(x))
+# define Perl_isinf(x) (!(Perl_isfinite(x)||Perl_isnan(x)))
# endif
#endif
@@ -2693,15 +3072,20 @@ extern long double Perl_my_frexpl(long double x, int *e);
# elif defined(HAS_FINITEL)
# define Perl_isfinitel(x) finitel(x)
# elif defined(HAS_ISINFL) && defined(HAS_ISNANL)
-# define Perl_isfinitel(x) !(isinfl(x)||isnanl(x))
+# 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.
+ * This knows about if 'use locale' is in effect or not, and handles the radix
+ * character accordingly. On some platforms (e.g. UNICOS) it is however best
+ * to use the native implementation of atof, as long as you accept that the
+ * current underlying locale will affect the radix character. Perl's version
+ * uses a dot for a radix, execpt within the lexical scope of a Perl C<use
+ * locale> statement.
+ *
* You can experiment with using your native one by -DUSE_PERL_ATOF=0.
* Some good tests to try out with either setting are t/base/num.t,
* t/op/numconvert.t, and t/op/pack.t. Note that if using long doubles
@@ -2718,7 +3102,7 @@ extern long double Perl_my_frexpl(long double x, int *e);
#endif
#ifdef USE_PERL_ATOF
-# define Perl_atof(s) Perl_my_atof(s)
+# define Perl_atof(s) Perl_my_atof(aTHX_ s)
# define Perl_atof2(s, n) Perl_my_atof3(aTHX_ (s), &(n), 0)
#else
# define Perl_atof(s) (NV)atof(s)
@@ -2727,6 +3111,17 @@ extern long double Perl_my_frexpl(long double x, int *e);
#define my_atof2(a,b) my_atof3(a,b,0)
/*
+=for apidoc AmTR|NV|Atof|NN const char * const s
+
+This is a synonym for L</C<my_atof>>.
+
+=cut
+
+*/
+
+#define Atof my_atof
+
+/*
=for apidoc_section $numeric
=for apidoc AmT|NV|Perl_acos|NV x
=for apidoc_item |NV|Perl_asin|NV x
@@ -2759,6 +3154,7 @@ NV on this platform. If no such function with sufficient precision exists,
the highest precision one available is used.
=cut
+
*/
/*
@@ -2801,24 +3197,24 @@ the highest precision one available is used.
/*
=for apidoc_section $integer
-=for apidoc AmnU||PERL_INT_MAX
-=for apidoc_item ||PERL_INT_MIN
-=for apidoc_item ||PERL_LONG_MAX
-=for apidoc_item ||PERL_LONG_MIN
-=for apidoc_item ||PERL_SHORT_MAX
-=for apidoc_item ||PERL_SHORT_MIN
-=for apidoc_item ||PERL_UCHAR_MAX
-=for apidoc_item ||PERL_UCHAR_MIN
-=for apidoc_item ||PERL_UINT_MAX
-=for apidoc_item ||PERL_UINT_MIN
-=for apidoc_item ||PERL_ULONG_MAX
-=for apidoc_item ||PERL_ULONG_MIN
-=for apidoc_item ||PERL_USHORT_MAX
-=for apidoc_item ||PERL_USHORT_MIN
-=for apidoc_item ||PERL_QUAD_MAX
-=for apidoc_item ||PERL_QUAD_MIN
-=for apidoc_item ||PERL_UQUAD_MAX
-=for apidoc_item ||PERL_UQUAD_MIN
+=for apidoc Amn |int|PERL_INT_MAX
+=for apidoc_item |int|PERL_INT_MIN
+=for apidoc_item |long|PERL_LONG_MAX
+=for apidoc_item |long|PERL_LONG_MIN
+=for apidoc_item |IV|PERL_QUAD_MAX
+=for apidoc_item |IV|PERL_QUAD_MIN
+=for apidoc_item |short|PERL_SHORT_MAX
+=for apidoc_item |short|PERL_SHORT_MIN
+=for apidoc_item |U8|PERL_UCHAR_MAX
+=for apidoc_item |U8|PERL_UCHAR_MIN
+=for apidoc_item |unsigned int|PERL_UINT_MAX
+=for apidoc_item |unsigned int|PERL_UINT_MIN
+=for apidoc_item |unsigned long|PERL_ULONG_MAX
+=for apidoc_item |unsigned long|PERL_ULONG_MIN
+=for apidoc_item |UV|PERL_UQUAD_MAX
+=for apidoc_item |UV|PERL_UQUAD_MIN
+=for apidoc_item |unsigned short|PERL_USHORT_MAX
+=for apidoc_item |unsigned short|PERL_USHORT_MIN
These give the largest and smallest number representable in the current
platform in variables of the corresponding types.
@@ -2894,6 +3290,7 @@ typedef struct xpvcv XPVCV;
typedef struct xpvbm XPVBM;
typedef struct xpvfm XPVFM;
typedef struct xpvio XPVIO;
+typedef struct xobject XPVOBJ;
typedef struct mgvtbl MGVTBL;
typedef union any ANY;
typedef struct ptr_tbl_ent PTR_TBL_ENT_t;
@@ -3191,15 +3588,14 @@ typedef struct padname PADNAME;
/*
=for apidoc_section $embedding
-=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
-any Perl interpreters.
+=for apidoc Am|void|PERL_SYS_INIT |int *argc|char*** argv
+=for apidoc_item| |PERL_SYS_INIT3|int *argc|char*** argv|char*** env
-=for apidoc Am|void|PERL_SYS_INIT3|int *argc|char*** argv|char*** env
-Provides system-specific tune up of the C runtime environment necessary to
-run Perl interpreters. This should be called only once, before creating
-any Perl interpreters.
+These provide system-specific tune up of the C runtime environment necessary to
+run Perl interpreters. Only one should be used, and it should be called only
+once, before creating any Perl interpreters.
+
+They differ in that C<PERL_SYS_INIT3> also initializes C<env>.
=for apidoc Am|void|PERL_SYS_TERM|
Provides system-specific clean up of the C runtime environment after
@@ -3336,9 +3732,7 @@ freeing any remaining Perl interpreters.
* documentation for details. */
#if defined(USE_ITHREADS)
-# ifdef NETWARE
-# include <nw5thread.h>
-# elif defined(WIN32)
+# if defined(WIN32)
# include <win32thread.h>
# elif defined(OS2)
# include "os2thread.h"
@@ -3389,10 +3783,6 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
# include "win32.h"
#endif
-#ifdef NETWARE
-# include "netware.h"
-#endif
-
#define STATUS_UNIX PL_statusvalue
#ifdef VMS
# define STATUS_NATIVE PL_statusvalue_vms
@@ -3417,8 +3807,8 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
*/
# define STATUS_EXIT \
- (((I32)PL_statusvalue_vms == -1 ? SS$_ABORT : PL_statusvalue_vms) | \
- (VMSISH_HUSHED ? STS$M_INHIB_MSG : 0))
+ (((I32)PL_statusvalue_vms == -1 ? SS$_ABORT : PL_statusvalue_vms) | \
+ (VMSISH_HUSHED ? STS$M_INHIB_MSG : 0))
/* STATUS_NATIVE_CHILD_SET - Calculate UNIX status that matches the child
@@ -3443,25 +3833,25 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
*/
# define STATUS_NATIVE_CHILD_SET(n) \
- STMT_START { \
- I32 evalue = (I32)n; \
- if (evalue == EVMSERR) { \
- PL_statusvalue_vms = vaxc$errno; \
- PL_statusvalue = evalue; \
- } else { \
- PL_statusvalue_vms = evalue; \
- if (evalue == -1) { \
- PL_statusvalue = -1; \
- PL_statusvalue_vms = SS$_ABORT; /* Should not happen */ \
- } else \
- PL_statusvalue = Perl_vms_status_to_unix(evalue, 1); \
- set_vaxc_errno(evalue); \
- if ((PL_statusvalue_vms & C_FAC_POSIX) == C_FAC_POSIX) \
- set_errno(EVMSERR); \
- else set_errno(Perl_vms_status_to_unix(evalue, 0)); \
- PL_statusvalue = PL_statusvalue << child_offset_bits; \
- } \
- } STMT_END
+ STMT_START { \
+ I32 evalue = (I32)n; \
+ if (evalue == EVMSERR) { \
+ PL_statusvalue_vms = vaxc$errno; \
+ PL_statusvalue = evalue; \
+ } else { \
+ PL_statusvalue_vms = evalue; \
+ if (evalue == -1) { \
+ PL_statusvalue = -1; \
+ PL_statusvalue_vms = SS$_ABORT; /* Should not happen */ \
+ } else \
+ PL_statusvalue = Perl_vms_status_to_unix(evalue, 1); \
+ set_vaxc_errno(evalue); \
+ if ((PL_statusvalue_vms & C_FAC_POSIX) == C_FAC_POSIX) \
+ set_errno(EVMSERR); \
+ else set_errno(Perl_vms_status_to_unix(evalue, 0)); \
+ PL_statusvalue = PL_statusvalue << child_offset_bits; \
+ } \
+ } STMT_END
# ifdef VMSISH_STATUS
# define STATUS_CURRENT (VMSISH_STATUS ? STATUS_NATIVE : STATUS_UNIX)
@@ -3476,23 +3866,23 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
* This is used when Perl is forcing errno to have a specific value.
*/
# define STATUS_UNIX_SET(n) \
- STMT_START { \
- I32 evalue = (I32)n; \
- PL_statusvalue = evalue; \
- if (PL_statusvalue != -1) { \
- if (PL_statusvalue != EVMSERR) { \
- PL_statusvalue &= 0xFFFF; \
- if (MY_POSIX_EXIT) \
- PL_statusvalue_vms=PL_statusvalue ? SS$_ABORT : SS$_NORMAL;\
- else PL_statusvalue_vms = Perl_unix_status_to_vms(evalue); \
- } \
- else { \
- PL_statusvalue_vms = vaxc$errno; \
- } \
- } \
- else PL_statusvalue_vms = SS$_ABORT; \
- set_vaxc_errno(PL_statusvalue_vms); \
- } STMT_END
+ STMT_START { \
+ I32 evalue = (I32)n; \
+ PL_statusvalue = evalue; \
+ if (PL_statusvalue != -1) { \
+ if (PL_statusvalue != EVMSERR) { \
+ PL_statusvalue &= 0xFFFF; \
+ if (MY_POSIX_EXIT) \
+ PL_statusvalue_vms=PL_statusvalue ? SS$_ABORT : SS$_NORMAL;\
+ else PL_statusvalue_vms = Perl_unix_status_to_vms(evalue); \
+ } \
+ else { \
+ PL_statusvalue_vms = vaxc$errno; \
+ } \
+ } \
+ else PL_statusvalue_vms = SS$_ABORT; \
+ set_vaxc_errno(PL_statusvalue_vms); \
+ } STMT_END
/* STATUS_UNIX_EXIT_SET - Takes a UNIX/POSIX exit code and sets
* the NATIVE error status based on it.
@@ -3510,32 +3900,32 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
*/
# define STATUS_UNIX_EXIT_SET(n) \
- STMT_START { \
- I32 evalue = (I32)n; \
- PL_statusvalue = evalue; \
- if (MY_POSIX_EXIT) { \
- if (evalue <= 0xFF00) { \
- if (evalue > 0xFF) \
- evalue = (evalue >> child_offset_bits) & 0xFF; \
- PL_statusvalue_vms = \
- (C_FAC_POSIX | (evalue << 3 ) | \
- ((evalue == 1) ? (STS$K_ERROR | STS$M_INHIB_MSG) : 1)); \
- } else /* forgive them Perl, for they have sinned */ \
- PL_statusvalue_vms = evalue; \
- } else { \
- if (evalue == 0) \
- PL_statusvalue_vms = SS$_NORMAL; \
- else if (evalue <= 0xFF00) \
- PL_statusvalue_vms = SS$_ABORT; \
- else { /* forgive them Perl, for they have sinned */ \
- if (evalue != EVMSERR) PL_statusvalue_vms = evalue; \
- else PL_statusvalue_vms = vaxc$errno; \
- /* And obviously used a VMS status value instead of UNIX */ \
- PL_statusvalue = EVMSERR; \
- } \
- set_vaxc_errno(PL_statusvalue_vms); \
- } \
- } STMT_END
+ STMT_START { \
+ I32 evalue = (I32)n; \
+ PL_statusvalue = evalue; \
+ if (MY_POSIX_EXIT) { \
+ if (evalue <= 0xFF00) { \
+ if (evalue > 0xFF) \
+ evalue = ((U8) (evalue >> child_offset_bits)); \
+ PL_statusvalue_vms = \
+ (C_FAC_POSIX | (evalue << 3 ) | \
+ ((evalue == 1) ? (STS$K_ERROR | STS$M_INHIB_MSG) : 1)); \
+ } else /* forgive them Perl, for they have sinned */ \
+ PL_statusvalue_vms = evalue; \
+ } else { \
+ if (evalue == 0) \
+ PL_statusvalue_vms = SS$_NORMAL; \
+ else if (evalue <= 0xFF00) \
+ PL_statusvalue_vms = SS$_ABORT; \
+ else { /* forgive them Perl, for they have sinned */ \
+ if (evalue != EVMSERR) PL_statusvalue_vms = evalue; \
+ else PL_statusvalue_vms = vaxc$errno; \
+ /* And obviously used a VMS status value instead of UNIX */ \
+ PL_statusvalue = EVMSERR; \
+ } \
+ set_vaxc_errno(PL_statusvalue_vms); \
+ } \
+ } STMT_END
/* STATUS_EXIT_SET - Takes a NATIVE/UNIX/POSIX exit code
@@ -3556,28 +3946,28 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
*/
# define STATUS_EXIT_SET(n) \
- STMT_START { \
- I32 evalue = (I32)n; \
- PL_statusvalue = evalue; \
- if (MY_POSIX_EXIT) \
- if (evalue > 255) PL_statusvalue_vms = evalue; else { \
- PL_statusvalue_vms = \
- (C_FAC_POSIX | (evalue << 3 ) | \
- ((evalue == 1) ? (STS$K_ERROR | STS$M_INHIB_MSG) : 1));} \
- else \
- PL_statusvalue_vms = evalue ? evalue : SS$_NORMAL; \
- set_vaxc_errno(PL_statusvalue_vms); \
- } STMT_END
+ STMT_START { \
+ I32 evalue = (I32)n; \
+ PL_statusvalue = evalue; \
+ if (MY_POSIX_EXIT) \
+ if (evalue > 255) PL_statusvalue_vms = evalue; else { \
+ PL_statusvalue_vms = \
+ (C_FAC_POSIX | (evalue << 3 ) | \
+ ((evalue == 1) ? (STS$K_ERROR | STS$M_INHIB_MSG) : 1));} \
+ else \
+ PL_statusvalue_vms = evalue ? evalue : SS$_NORMAL; \
+ set_vaxc_errno(PL_statusvalue_vms); \
+ } STMT_END
/* This macro forces a success status */
# define STATUS_ALL_SUCCESS \
- (PL_statusvalue = 0, PL_statusvalue_vms = SS$_NORMAL)
+ (PL_statusvalue = 0, PL_statusvalue_vms = SS$_NORMAL)
/* This macro forces a failure status */
# define STATUS_ALL_FAILURE (PL_statusvalue = 1, \
vaxc$errno = PL_statusvalue_vms = MY_POSIX_EXIT ? \
- (C_FAC_POSIX | (1 << 3) | STS$K_ERROR | STS$M_INHIB_MSG) : SS$_ABORT)
+ (C_FAC_POSIX | (1 << 3) | STS$K_ERROR | STS$M_INHIB_MSG) : SS$_ABORT)
#elif defined(__amigaos4__)
/* A somewhat experimental attempt to simulate posix return code values */
@@ -3593,11 +3983,11 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
} \
} STMT_END
# define STATUS_UNIX_SET(n) \
- STMT_START { \
- PL_statusvalue = (n); \
- if (PL_statusvalue != -1) \
- PL_statusvalue &= 0xFFFF; \
- } STMT_END
+ STMT_START { \
+ PL_statusvalue = (n); \
+ if (PL_statusvalue != -1) \
+ PL_statusvalue &= 0xFFFF; \
+ } STMT_END
# define STATUS_UNIX_EXIT_SET(n) STATUS_UNIX_SET(n)
# define STATUS_EXIT_SET(n) STATUS_UNIX_SET(n)
# define STATUS_CURRENT STATUS_UNIX
@@ -3645,11 +4035,11 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
} STMT_END
# endif
# define STATUS_UNIX_SET(n) \
- STMT_START { \
- PL_statusvalue = (n); \
- if (PL_statusvalue != -1) \
- PL_statusvalue &= 0xFFFF; \
- } STMT_END
+ STMT_START { \
+ PL_statusvalue = (n); \
+ if (PL_statusvalue != -1) \
+ PL_statusvalue &= 0xFFFF; \
+ } STMT_END
# define STATUS_UNIX_EXIT_SET(n) STATUS_UNIX_SET(n)
# define STATUS_EXIT_SET(n) STATUS_UNIX_SET(n)
# define STATUS_CURRENT STATUS_UNIX
@@ -3678,11 +4068,19 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
# define PERL_FS_VERSION PERL_VERSION_STRING
#endif
-/* This defines a way to flush all output buffers. This may be a
- * performance issue, so we allow people to disable it. Also, if
- * we are using stdio, there are broken implementations of fflush(NULL)
- * out there, Solaris being the most prominent.
+/*
+
+=for apidoc_section $io
+=for apidoc Amn|void|PERL_FLUSHALL_FOR_CHILD
+
+This defines a way to flush all output buffers. This may be a
+performance issue, so we allow people to disable it. Also, if
+we are using stdio, there are broken implementations of fflush(NULL)
+out there, Solaris being the most prominent.
+
+=cut
*/
+
#ifndef PERL_FLUSHALL_FOR_CHILD
# if defined(USE_PERLIO) || defined(FFLUSH_NULL)
# define PERL_FLUSHALL_FOR_CHILD PerlIO_flush((PerlIO*)NULL)
@@ -3699,17 +4097,18 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
/* the traditional thread-unsafe notion of "current interpreter". */
#ifndef PERL_SET_INTERP
-# define PERL_SET_INTERP(i) (PL_curinterp = (PerlInterpreter*)(i))
+# define PERL_SET_INTERP(i) \
+ STMT_START { PL_curinterp = (PerlInterpreter*)(i); \
+ PERL_SET_NON_tTHX_CONTEXT(i); \
+ } STMT_END
#endif
#ifndef PERL_GET_INTERP
# define PERL_GET_INTERP (PL_curinterp)
#endif
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_GET_THX)
-# ifdef MULTIPLICITY
-# define PERL_GET_THX ((PerlInterpreter *)PERL_GET_CONTEXT)
-# endif
+#if defined(MULTIPLICITY) && !defined(PERL_GET_THX)
+# define PERL_GET_THX ((PerlInterpreter *)PERL_GET_CONTEXT)
# define PERL_SET_THX(t) PERL_SET_CONTEXT(t)
#endif
@@ -3743,32 +4142,66 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
#define SVfARG(p) ((void*)(p))
+/* Render an SV as a quoted and escaped string suitable for an error message.
+ * Only shows the first PERL_QUOTEDPREFIX_LEN characters, and adds ellipses if the
+ * string is too long.
+ */
+#ifndef PERL_QUOTEDPREFIX_LEN
+# define PERL_QUOTEDPREFIX_LEN 256
+#endif
+#ifndef SVf_QUOTEDPREFIX
+# define SVf_QUOTEDPREFIX "5p"
+#endif
+
+/* like %s but runs through the quoted prefix logic */
+#ifndef PVf_QUOTEDPREFIX
+# define PVf_QUOTEDPREFIX "1p"
+#endif
+
#ifndef HEKf
# define HEKf "2p"
#endif
+#ifndef HEKf_QUOTEDPREFIX
+# define HEKf_QUOTEDPREFIX "7p"
+#endif
+
/* Not ideal, but we cannot easily include a number in an already-numeric
* format sequence. */
#ifndef HEKf256
# define HEKf256 "3p"
#endif
+#ifndef HEKf256_QUOTEDPREFIX
+# define HEKf256_QUOTEDPREFIX "8p"
+#endif
+
#define HEKfARG(p) ((void*)(p))
/* Documented in perlguts
*
- * %4p is a custom format
+ * %4p and %9p are custom formats for handling UTF8 parameters.
+ * They only occur when prefixed by specific other formats.
*/
#ifndef UTF8f
# define UTF8f "d%" UVuf "%4p"
#endif
+#ifndef UTF8f_QUOTEDPREFIX
+# define UTF8f_QUOTEDPREFIX "d%" UVuf "%9p"
+#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)
+#define HvNAMEf "6p"
+#define HvNAMEf_QUOTEDPREFIX "10p"
+
+#define HvNAMEfARG(hv) ((void*)(hv))
+
#ifdef PERL_CORE
/* not used; but needed for backward compatibility with XS code? - RMB
+=for apidoc_section $io_formats
=for apidoc AmnD|const char *|UVf
Obsolete form of C<UVuf>, which you should convert to instead use
@@ -3877,42 +4310,48 @@ intrinsic function, see its documents for more details.
=cut
*/
-#ifdef DEBUGGING
-# define ASSUME(x) assert(x)
-# if __has_builtin(__builtin_unreachable)
+#if __has_builtin(__builtin_unreachable)
# define HAS_BUILTIN_UNREACHABLE
-# elif (defined(__GNUC__) && ( __GNUC__ > 4 \
- || __GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#elif PERL_GCC_VERSION_GE(4,5,0)
# define HAS_BUILTIN_UNREACHABLE
-# endif
#endif
-#if defined(__sun) || (defined(__hpux) && !defined(__GNUC__))
-# ifndef ASSUME
-# define ASSUME(x) /* ASSUME() generates warnings on Solaris */
+#ifdef DEBUGGING
+# define ASSUME(x) assert(x)
+#elif __has_builtin(__builtin_assume)
+# if defined(__clang__) || defined(__clang)
+# define ASSUME(x) CLANG_DIAG_IGNORE(-Wassume) \
+ __builtin_assume (x) \
+ CLANG_DIAG_RESTORE
+# else
+# define ASSUME(x) __builtin_assume(x)
# endif
-# define NOT_REACHED
+#elif defined(_MSC_VER)
+# define ASSUME(x) __assume(x)
+#elif defined(__ARMCC_VERSION) /* untested */
+# define ASSUME(x) __promise(x)
#elif defined(HAS_BUILTIN_UNREACHABLE)
-# ifndef ASSUME
+ /* Compilers can take the hint from something being unreachable */
# define ASSUME(x) ((x) ? (void) 0 : __builtin_unreachable())
-# endif
+#else
+ /* Not DEBUGGING, so assert() is a no-op, but a random compiler might
+ * define assert() to its own special optimization token so pass it through
+ * to C lib as a last resort */
+# define ASSUME(x) assert(x)
+#endif
+
+#ifdef HAS_BUILTIN_UNREACHABLE
# define NOT_REACHED \
STMT_START { \
ASSUME(!"UNREACHABLE"); __builtin_unreachable(); \
} STMT_END
+# undef HAS_BUILTIN_UNREACHABLE /* Don't leak out this internal symbol */
+#elif ! defined(__GNUC__) && (defined(__sun) || defined(__hpux))
+ /* These just complain that NOT_REACHED isn't reached */
+# define NOT_REACHED
#else
-# if defined(_MSC_VER)
-# define ASSUME(x) __assume(x)
-# elif defined(__ARMCC_VERSION) /* untested */
-# define ASSUME(x) __promise(x)
-# else
- /* a random compiler might define assert to its own special optimization
- * token so pass it through to C lib as a last resort */
-# define ASSUME(x) assert(x)
-# endif
-# define NOT_REACHED ASSUME(!"UNREACHABLE")
+# define NOT_REACHED ASSUME(!"UNREACHABLE")
#endif
-#undef HAS_BUILTIN_UNREACHABLE
/* Some unistd.h's give a prototype for pause() even though
HAS_PAUSE ends up undefined. This causes the #define
@@ -3926,13 +4365,13 @@ intrinsic function, see its documents for more details.
#ifndef IOCPARM_LEN
# ifdef IOCPARM_MASK
- /* on BSDish systems we're safe */
+ /* on BSDish systems we're safe */
# define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
# elif defined(_IOC_SIZE) && defined(__GLIBC__)
- /* on Linux systems we're safe; except when we're not [perl #38223] */
+ /* on Linux systems we're safe; except when we're not [perl #38223] */
# define IOCPARM_LEN(x) (_IOC_SIZE(x) < 256 ? 256 : _IOC_SIZE(x))
# else
- /* otherwise guess at what's safe */
+ /* otherwise guess at what's safe */
# define IOCPARM_LEN(x) 256
# endif
#endif
@@ -3958,7 +4397,7 @@ void init_os_extras(void);
UNION_ANY_DEFINITION;
#else
union any {
- void* any_ptr;
+ void* any_ptr;
SV* any_sv;
SV** any_svp;
GV* any_gv;
@@ -3967,14 +4406,17 @@ union any {
OP* any_op;
char* any_pv;
char** any_pvp;
- I32 any_i32;
- U32 any_u32;
- IV any_iv;
- UV any_uv;
- long any_long;
- bool any_bool;
- void (*any_dptr) (void*);
- void (*any_dxptr) (pTHX_ void*);
+ I32 any_i32;
+ U32 any_u32;
+ IV any_iv;
+ UV any_uv;
+ long any_long;
+ bool any_bool;
+ Size_t any_size;
+ SSize_t any_ssize;
+ STRLEN any_strlen;
+ void (*any_dptr) (void*);
+ void (*any_dxptr) (pTHX_ void*);
};
#endif
@@ -3982,13 +4424,13 @@ typedef I32 (*filter_t) (pTHX_ int, SV *, int);
#define FILTER_READ(idx, sv, len) filter_read(idx, sv, len)
#define FILTER_DATA(idx) \
- (PL_parser ? AvARRAY(PL_parser->rsfp_filters)[idx] : NULL)
+ (PL_parser ? AvARRAY(PL_parser->rsfp_filters)[idx] : NULL)
#define FILTER_ISREADER(idx) \
- (PL_parser && PL_parser->rsfp_filters \
- && idx >= AvFILLp(PL_parser->rsfp_filters))
+ (PL_parser && PL_parser->rsfp_filters \
+ && idx >= AvFILLp(PL_parser->rsfp_filters))
#define PERL_FILTER_EXISTS(i) \
- (PL_parser && PL_parser->rsfp_filters \
- && (Size_t) (i) < av_count(PL_parser->rsfp_filters))
+ (PL_parser && PL_parser->rsfp_filters \
+ && (Size_t) (i) < av_count(PL_parser->rsfp_filters))
#if defined(_AIX) && !defined(_AIX43)
#if defined(USE_REENTRANT) || defined(_REENTRANT) || defined(_THREAD_SAFE)
@@ -4049,7 +4491,7 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */
#define FAKE_BIT_BUCKET
#endif
-/* [perl #22371] Algorimic Complexity Attack on Perl 5.6.1, 5.8.0.
+/* [perl #22371] Algorithmic Complexity Attack on Perl 5.6.1, 5.8.0.
* Note that the USE_HASH_SEED and similar defines are *NOT* defined by
* Configure, despite their names being similar to other defines like
* USE_ITHREADS. Configure in fact knows nothing about the randomised
@@ -4064,13 +4506,25 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */
/* macros to define bit-fields in structs. */
#ifndef PERL_BITFIELD8
+# ifdef HAS_NON_INT_BITFIELDS
# define PERL_BITFIELD8 U8
+# else
+# define PERL_BITFIELD8 unsigned
+# endif
#endif
#ifndef PERL_BITFIELD16
+# ifdef HAS_NON_INT_BITFIELDS
# define PERL_BITFIELD16 U16
+# else
+# define PERL_BITFIELD16 unsigned
+# endif
#endif
#ifndef PERL_BITFIELD32
+# ifdef HAS_NON_INT_BITFIELDS
# define PERL_BITFIELD32 U32
+# else
+# define PERL_BITFIELD32 unsigned
+# endif
#endif
#include "sv.h"
@@ -4103,8 +4557,7 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */
typedef struct magic_state MGS; /* struct magic_state defined in mg.c */
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) \
- || defined(PERL_EXT_RE_BUILD)
+#if defined(PERL_IN_REGEX_ENGINE) || defined(PERL_EXT_RE_BUILD)
/* These have to be predeclared, as they are used in proto.h which is #included
* before their definitions in regcomp.h. */
@@ -4120,6 +4573,7 @@ typedef struct regnode_charclass_posixl regnode_charclass_posixl;
typedef struct regnode_ssc regnode_ssc;
typedef struct RExC_state_t RExC_state_t;
struct _reg_trie_data;
+typedef struct scan_data_t scan_data_t;
#endif
@@ -4173,7 +4627,7 @@ struct ptr_tbl {
PERL_STATIC_INLINE U32
my_swap32(const U32 x) {
- return ((x & 0xFF) << 24) | ((x >> 24) & 0xFF)
+ return ((x & 0xFF) << 24) | ((x >> 24) & 0xFF)
| ((x & 0x0000FF00) << 8) | ((x & 0x00FF0000) >> 8);
}
@@ -4192,7 +4646,7 @@ my_swap16(const U16 x) {
the error message. Please check the value of the macro BYTEORDER, as defined
in config.h. The values of BYTEORDER we expect are
- big endian little endian
+ big endian little endian
32 bit 0x4321 0x1234
64 bit 0x87654321 0x12345678
@@ -4216,9 +4670,9 @@ my_swap16(const U16 x) {
# define htovs(x) vtohs(x)
#elif BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
# define vtohl(x) ((((x)&0xFF)<<24) \
- +(((x)>>24)&0xFF) \
- +(((x)&0x0000FF00)<<8) \
- +(((x)&0x00FF0000)>>8) )
+ +(((x)>>24)&0xFF) \
+ +(((x)&0x0000FF00)<<8) \
+ +(((x)&0x00FF0000)>>8) )
# define vtohs(x) ((((x)&0xFF)<<8) + (((x)>>8)&0xFF))
# define htovl(x) vtohl(x)
# define htovs(x) vtohs(x)
@@ -4321,7 +4775,7 @@ equal zero.
#define NV_WITHIN_UV(nv) ((nv)>=0.0 && U_V(nv) >= UV_MIN && U_V(nv) <= UV_MAX)
/* Used with UV/IV arguments: */
- /* XXXX: need to speed it up */
+ /* XXXX: need to speed it up */
#define CLUMP_2UV(iv) ((iv) < 0 ? 0 : (UV)(iv))
#define CLUMP_2IV(uv) ((uv) > (UV)IV_MAX ? IV_MAX : (IV)(uv))
@@ -4344,11 +4798,11 @@ Gid_t getegid (void);
#ifndef Perl_error_log
# define Perl_error_log (PL_stderrgv \
- && isGV(PL_stderrgv) \
- && GvIOp(PL_stderrgv) \
- && IoOFP(GvIOp(PL_stderrgv)) \
- ? IoOFP(GvIOp(PL_stderrgv)) \
- : PerlIO_stderr())
+ && isGV(PL_stderrgv) \
+ && GvIOp(PL_stderrgv) \
+ && IoOFP(GvIOp(PL_stderrgv)) \
+ ? IoOFP(GvIOp(PL_stderrgv)) \
+ : PerlIO_stderr())
#endif
@@ -4366,7 +4820,7 @@ Gid_t getegid (void);
#define DEBUG_u_FLAG 0x00000800 /* 2048 */
/* U is reserved for Unofficial, exploratory hacking */
#define DEBUG_U_FLAG 0x00001000 /* 4096 */
-/* spare 8192 */
+#define DEBUG_h_FLAG 0x00002000 /* 8192 */
#define DEBUG_X_FLAG 0x00004000 /* 16384 */
#define DEBUG_D_FLAG 0x00008000 /* 32768 */
#define DEBUG_S_FLAG 0x00010000 /* 65536 */
@@ -4405,6 +4859,7 @@ Gid_t getegid (void);
# define DEBUG_x_TEST_ UNLIKELY(PL_debug & DEBUG_x_FLAG)
# define DEBUG_u_TEST_ UNLIKELY(PL_debug & DEBUG_u_FLAG)
# define DEBUG_U_TEST_ UNLIKELY(PL_debug & DEBUG_U_FLAG)
+# define DEBUG_h_TEST_ UNLIKELY(PL_debug & DEBUG_h_FLAG)
# define DEBUG_X_TEST_ UNLIKELY(PL_debug & DEBUG_X_FLAG)
# define DEBUG_D_TEST_ UNLIKELY(PL_debug & DEBUG_D_FLAG)
# define DEBUG_S_TEST_ UNLIKELY(PL_debug & DEBUG_S_FLAG)
@@ -4417,13 +4872,23 @@ Gid_t getegid (void);
# define DEBUG_q_TEST_ UNLIKELY(PL_debug & DEBUG_q_FLAG)
# define DEBUG_M_TEST_ UNLIKELY(PL_debug & DEBUG_M_FLAG)
# define DEBUG_B_TEST_ UNLIKELY(PL_debug & DEBUG_B_FLAG)
-# define DEBUG_L_TEST_ UNLIKELY(PL_debug & DEBUG_L_FLAG)
+
+/* Locale initialization comes earlier than PL_debug gets set,
+ * DEBUG_LOCALE_INITIALIZATION_, if defined, will be set early enough */
+# ifndef DEBUG_LOCALE_INITIALIZATION_
+# define DEBUG_LOCALE_INITIALIZATION_ 0
+# endif
+# define DEBUG_L_TEST_ \
+ ( UNLIKELY(DEBUG_LOCALE_INITIALIZATION_) \
+ || UNLIKELY(PL_debug & DEBUG_L_FLAG))
+# define DEBUG_Lv_TEST_ \
+ ( UNLIKELY(DEBUG_LOCALE_INITIALIZATION_) \
+ || UNLIKELY(DEBUG_BOTH_FLAGS_TEST_(DEBUG_L_FLAG, DEBUG_v_FLAG)))
# define DEBUG_i_TEST_ UNLIKELY(PL_debug & DEBUG_i_FLAG)
# define DEBUG_y_TEST_ UNLIKELY(PL_debug & DEBUG_y_FLAG)
# define DEBUG_Xv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_X_FLAG, DEBUG_v_FLAG)
# define DEBUG_Uv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_U_FLAG, DEBUG_v_FLAG)
# define DEBUG_Pv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_P_FLAG, DEBUG_v_FLAG)
-# define DEBUG_Lv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_L_FLAG, DEBUG_v_FLAG)
# define DEBUG_yv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_y_FLAG, DEBUG_v_FLAG)
#ifdef DEBUGGING
@@ -4441,6 +4906,7 @@ Gid_t getegid (void);
# define DEBUG_x_TEST DEBUG_x_TEST_
# define DEBUG_u_TEST DEBUG_u_TEST_
# define DEBUG_U_TEST DEBUG_U_TEST_
+# define DEBUG_h_TEST DEBUG_h_TEST_
# define DEBUG_X_TEST DEBUG_X_TEST_
# define DEBUG_D_TEST DEBUG_D_TEST_
# define DEBUG_S_TEST DEBUG_S_TEST_
@@ -4516,9 +4982,9 @@ Gid_t getegid (void);
# define DEBUG__(t, a) \
STMT_START { \
- if (t) STMT_START { \
+ if (t) { \
DEBUG_PRE_STMTS a; DEBUG_POST_STMTS \
- } STMT_END; \
+ } \
} STMT_END
# define DEBUG_f(a) DEBUG__(DEBUG_f_TEST, a)
@@ -4571,6 +5037,7 @@ Gid_t getegid (void);
# define DEBUG_x_TEST (0)
# define DEBUG_u_TEST (0)
# define DEBUG_U_TEST (0)
+# define DEBUG_h_TEST (0)
# define DEBUG_X_TEST (0)
# define DEBUG_D_TEST (0)
# define DEBUG_S_TEST (0)
@@ -4633,16 +5100,16 @@ Gid_t getegid (void);
#define DEBUG_SCOPE(where) \
DEBUG_l( \
Perl_deb(aTHX_ "%s scope %ld (savestack=%ld) at %s:%d\n", \
- where, (long)PL_scopestack_ix, (long)PL_savestack_ix, \
- __FILE__, __LINE__));
+ where, (long)PL_scopestack_ix, (long)PL_savestack_ix, \
+ __FILE__, __LINE__));
/* 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_DEB2( \
- ((what) ? ((void) 0) : \
- (Perl_croak_nocontext("Assertion %s failed: file \"" __FILE__ \
- "\", line %d", STRINGIFY(what), __LINE__), \
+ ((what) ? ((void) 0) : \
+ (Perl_croak_nocontext("Assertion %s failed: file \"" __FILE__ \
+ "\", line %d", STRINGIFY(what), __LINE__), \
(void) 0)), ((void)0))
/* assert() gets defined if DEBUGGING.
@@ -4760,10 +5227,10 @@ EXTERN_C void PerlIO_teardown(void);
# ifdef USE_ITHREADS
# define PERLIO_INIT MUTEX_INIT(&PL_perlio_mutex)
# define PERLIO_TERM \
- STMT_START { \
- PerlIO_teardown(); \
- MUTEX_DESTROY(&PL_perlio_mutex);\
- } STMT_END
+ STMT_START { \
+ PerlIO_teardown(); \
+ MUTEX_DESTROY(&PL_perlio_mutex);\
+ } STMT_END
# else
# define PERLIO_INIT
# define PERLIO_TERM PerlIO_teardown()
@@ -4776,16 +5243,16 @@ EXTERN_C void PerlIO_teardown(void);
#ifdef MYMALLOC
# ifdef MUTEX_INIT_CALLS_MALLOC
# define MALLOC_INIT \
- STMT_START { \
- PL_malloc_mutex = NULL; \
- MUTEX_INIT(&PL_malloc_mutex); \
- } STMT_END
+ STMT_START { \
+ PL_malloc_mutex = NULL; \
+ MUTEX_INIT(&PL_malloc_mutex); \
+ } STMT_END
# define MALLOC_TERM \
- STMT_START { \
- perl_mutex tmp = PL_malloc_mutex; \
- PL_malloc_mutex = NULL; \
- MUTEX_DESTROY(&tmp); \
- } STMT_END
+ STMT_START { \
+ perl_mutex tmp = PL_malloc_mutex; \
+ PL_malloc_mutex = NULL; \
+ MUTEX_DESTROY(&tmp); \
+ } STMT_END
# else
# define MALLOC_INIT MUTEX_INIT(&PL_malloc_mutex)
# define MALLOC_TERM MUTEX_DESTROY(&PL_malloc_mutex)
@@ -4795,7 +5262,7 @@ EXTERN_C void PerlIO_teardown(void);
# define MALLOC_TERM
#endif
-#if defined(PERL_IMPLICIT_CONTEXT)
+#if defined(MULTIPLICITY)
struct perl_memory_debug_header;
struct perl_memory_debug_header {
@@ -4823,8 +5290,8 @@ struct perl_memory_debug_header {
# define PERL_MEMORY_DEBUG_HEADER_SIZE \
(sizeof(struct perl_memory_debug_header) + \
- (MEM_ALIGNBYTES - sizeof(struct perl_memory_debug_header) \
- %MEM_ALIGNBYTES) % MEM_ALIGNBYTES)
+ (MEM_ALIGNBYTES - sizeof(struct perl_memory_debug_header) \
+ %MEM_ALIGNBYTES) % MEM_ALIGNBYTES)
#else
# define PERL_MEMORY_DEBUG_HEADER_SIZE 0
@@ -4833,17 +5300,17 @@ struct perl_memory_debug_header {
#ifdef PERL_TRACK_MEMPOOL
# ifdef PERL_DEBUG_READONLY_COW
# define INIT_TRACK_MEMPOOL(header, interp) \
- STMT_START { \
- (header).interpreter = (interp); \
- (header).prev = (header).next = &(header); \
- (header).readonly = 0; \
- } STMT_END
+ STMT_START { \
+ (header).interpreter = (interp); \
+ (header).prev = (header).next = &(header); \
+ (header).readonly = 0; \
+ } STMT_END
# else
# define INIT_TRACK_MEMPOOL(header, interp) \
- STMT_START { \
- (header).interpreter = (interp); \
- (header).prev = (header).next = &(header); \
- } STMT_END
+ STMT_START { \
+ (header).interpreter = (interp); \
+ (header).prev = (header).next = &(header); \
+ } STMT_END
# endif
# else
# define INIT_TRACK_MEMPOOL(header, interp)
@@ -4860,7 +5327,7 @@ struct perl_memory_debug_header {
# if defined(HAS_MALLOC_SIZE) && !defined(PERL_DEBUG_READONLY_COW)
# ifdef PERL_TRACK_MEMPOOL
# define Perl_safesysmalloc_size(where) \
- (malloc_size(((char *)(where)) - PERL_MEMORY_DEBUG_HEADER_SIZE) - PERL_MEMORY_DEBUG_HEADER_SIZE)
+ (malloc_size(((char *)(where)) - PERL_MEMORY_DEBUG_HEADER_SIZE) - PERL_MEMORY_DEBUG_HEADER_SIZE)
# else
# define Perl_safesysmalloc_size(where) malloc_size(where)
# endif
@@ -4868,7 +5335,7 @@ struct perl_memory_debug_header {
# ifdef HAS_MALLOC_GOOD_SIZE
# ifdef PERL_TRACK_MEMPOOL
# define Perl_malloc_good_size(how_much) \
- (malloc_good_size((how_much) + PERL_MEMORY_DEBUG_HEADER_SIZE) - PERL_MEMORY_DEBUG_HEADER_SIZE)
+ (malloc_good_size((how_much) + PERL_MEMORY_DEBUG_HEADER_SIZE) - PERL_MEMORY_DEBUG_HEADER_SIZE)
# else
# define Perl_malloc_good_size(how_much) malloc_good_size(how_much)
# endif
@@ -4898,12 +5365,12 @@ EXTERN_C char **environ; /* environment variables supplied via exec */
#undef PERL_PATCHLEVEL_H_IMPLICIT
#define PERL_VERSION_STRING STRINGIFY(PERL_REVISION) "." \
- STRINGIFY(PERL_VERSION) "." \
- STRINGIFY(PERL_SUBVERSION)
+ STRINGIFY(PERL_VERSION) "." \
+ STRINGIFY(PERL_SUBVERSION)
#define PERL_API_VERSION_STRING STRINGIFY(PERL_API_REVISION) "." \
- STRINGIFY(PERL_API_VERSION) "." \
- STRINGIFY(PERL_API_SUBVERSION)
+ STRINGIFY(PERL_API_VERSION) "." \
+ STRINGIFY(PERL_API_SUBVERSION)
START_EXTERN_C
@@ -4979,9 +5446,9 @@ Indices outside the range 0..31 result in (bad) undedefined behavior.
EXTCONST char PL_hexdigit[]
INIT("0123456789abcdef0123456789ABCDEF");
-EXTCONST STRLEN PL_WARN_ALL
+EXT char PL_WARN_ALL
INIT(0);
-EXTCONST STRLEN PL_WARN_NONE
+EXT char PL_WARN_NONE
INIT(0);
/* This is constant on most architectures, a global on OS/2 */
@@ -5051,73 +5518,38 @@ EXTCONST int PL_sig_num[];
* ebcdic_tables.h */
EXTCONST unsigned char 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, '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', 91, 92, 93, 94, 95,
- 96, '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', 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 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, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255
-};
-
-EXT unsigned char PL_fold_locale[] = { /* Unfortunately not EXTCONST. */
- 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, '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', 91, 92, 93, 94, 95,
- 96, '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', 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 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, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255
+ 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, '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', 91, 92, 93, 94, 95,
+ 96, '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', 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 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, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255
};
EXTCONST unsigned char PL_fold_latin1[] = {
@@ -5129,120 +5561,120 @@ EXTCONST unsigned char PL_fold_latin1[] = {
* not one, so can't be represented in this table.
*
* All have to be specially handled */
- 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, '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', 91, 92, 93, 94, 95,
- 96, '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', 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181 /*micro */, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192+32, 193+32, 194+32, 195+32, 196+32, 197+32, 198+32, 199+32,
- 200+32, 201+32, 202+32, 203+32, 204+32, 205+32, 206+32, 207+32,
- 208+32, 209+32, 210+32, 211+32, 212+32, 213+32, 214+32, 215,
- 216+32, 217+32, 218+32, 219+32, 220+32, 221+32, 222+32, 223 /* ss */,
- 224-32, 225-32, 226-32, 227-32, 228-32, 229-32, 230-32, 231-32,
- 232-32, 233-32, 234-32, 235-32, 236-32, 237-32, 238-32, 239-32,
- 240-32, 241-32, 242-32, 243-32, 244-32, 245-32, 246-32, 247,
- 248-32, 249-32, 250-32, 251-32, 252-32, 253-32, 254-32,
- 255 /* y with diaeresis */
+ 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, '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', 91, 92, 93, 94, 95,
+ 96, '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', 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181 /*micro */, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191,
+ 192+32, 193+32, 194+32, 195+32, 196+32, 197+32, 198+32, 199+32,
+ 200+32, 201+32, 202+32, 203+32, 204+32, 205+32, 206+32, 207+32,
+ 208+32, 209+32, 210+32, 211+32, 212+32, 213+32, 214+32, 215,
+ 216+32, 217+32, 218+32, 219+32, 220+32, 221+32, 222+32, 223 /* ss */,
+ 224-32, 225-32, 226-32, 227-32, 228-32, 229-32, 230-32, 231-32,
+ 232-32, 233-32, 234-32, 235-32, 236-32, 237-32, 238-32, 239-32,
+ 240-32, 241-32, 242-32, 243-32, 244-32, 245-32, 246-32, 247,
+ 248-32, 249-32, 250-32, 251-32, 252-32, 253-32, 254-32,
+ 255 /* y with diaeresis */
};
/* If these tables are accessed through ebcdic, the access will be converted to
* latin1 first */
EXTCONST unsigned char PL_latin1_lc[] = { /* lowercasing */
- 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, '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', 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192+32, 193+32, 194+32, 195+32, 196+32, 197+32, 198+32, 199+32,
- 200+32, 201+32, 202+32, 203+32, 204+32, 205+32, 206+32, 207+32,
- 208+32, 209+32, 210+32, 211+32, 212+32, 213+32, 214+32, 215,
- 216+32, 217+32, 218+32, 219+32, 220+32, 221+32, 222+32, 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
+ 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, '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', 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191,
+ 192+32, 193+32, 194+32, 195+32, 196+32, 197+32, 198+32, 199+32,
+ 200+32, 201+32, 202+32, 203+32, 204+32, 205+32, 206+32, 207+32,
+ 208+32, 209+32, 210+32, 211+32, 212+32, 213+32, 214+32, 215,
+ 216+32, 217+32, 218+32, 219+32, 220+32, 221+32, 222+32, 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
};
/* upper and title case of latin1 characters, modified so that the three tricky
* ones are mapped to 255 (which is one of the three) */
EXTCONST unsigned char 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, 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, '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', 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 255 /*micro*/, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222,
+ 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, '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', 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 255 /*micro*/, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222,
# if UNICODE_MAJOR_VERSION > 2 \
|| (UNICODE_MAJOR_VERSION == 2 && UNICODE_DOT_VERSION >= 1 \
&& UNICODE_DOT_DOT_VERSION >= 8)
- 255 /*sharp s*/,
+ 255 /*sharp s*/,
# else /* uc(sharp s) is 'sharp s' itself in early unicode */
- 223,
+ 223,
# endif
- 224-32, 225-32, 226-32, 227-32, 228-32, 229-32, 230-32, 231-32,
- 232-32, 233-32, 234-32, 235-32, 236-32, 237-32, 238-32, 239-32,
- 240-32, 241-32, 242-32, 243-32, 244-32, 245-32, 246-32, 247,
- 248-32, 249-32, 250-32, 251-32, 252-32, 253-32, 254-32, 255
+ 224-32, 225-32, 226-32, 227-32, 228-32, 229-32, 230-32, 231-32,
+ 232-32, 233-32, 234-32, 235-32, 236-32, 237-32, 238-32, 239-32,
+ 240-32, 241-32, 242-32, 243-32, 244-32, 245-32, 246-32, 247,
+ 248-32, 249-32, 250-32, 251-32, 252-32, 253-32, 254-32, 255
};
# endif /* !EBCDIC, but still in DOINIT */
#else /* ! DOINIT */
@@ -5251,7 +5683,6 @@ EXTCONST unsigned char PL_fold[];
EXTCONST unsigned char PL_fold_latin1[];
EXTCONST unsigned char PL_mod_latin1_uc[];
EXTCONST unsigned char PL_latin1_lc[];
-EXT unsigned char PL_fold_locale[]; /* Unfortunately not EXTCONST. */
# endif
#endif
@@ -5260,19 +5691,20 @@ EXT unsigned char PL_fold_locale[]; /* Unfortunately not EXTCONST. */
* which has DEBUGGING enabled always */
#ifdef DOINIT
EXTCONST char* const PL_block_type[] = {
- "NULL",
- "WHEN",
- "BLOCK",
- "GIVEN",
- "LOOP_ARY",
- "LOOP_LAZYSV",
- "LOOP_LAZYIV",
- "LOOP_LIST",
- "LOOP_PLAIN",
- "SUB",
- "FORMAT",
- "EVAL",
- "SUBST"
+ "NULL",
+ "WHEN",
+ "BLOCK",
+ "GIVEN",
+ "LOOP_ARY",
+ "LOOP_LAZYSV",
+ "LOOP_LAZYIV",
+ "LOOP_LIST",
+ "LOOP_PLAIN",
+ "SUB",
+ "FORMAT",
+ "EVAL",
+ "SUBST",
+ "DEFER"
};
#else
EXTCONST char* PL_block_type[];
@@ -5286,102 +5718,112 @@ EXTCONST char* PL_block_type[];
#ifdef DOINIT
EXTCONST char PL_bincompat_options[] =
# ifdef DEBUG_LEAKING_SCALARS
- " DEBUG_LEAKING_SCALARS"
+ " DEBUG_LEAKING_SCALARS"
# endif
# ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
- " DEBUG_LEAKING_SCALARS_FORK_DUMP"
+ " DEBUG_LEAKING_SCALARS_FORK_DUMP"
# endif
# ifdef HAS_TIMES
- " HAS_TIMES"
+ " HAS_TIMES"
# endif
# ifdef HAVE_INTERP_INTERN
- " HAVE_INTERP_INTERN"
+ " HAVE_INTERP_INTERN"
# endif
# ifdef MULTIPLICITY
- " MULTIPLICITY"
+ " MULTIPLICITY"
# endif
# ifdef MYMALLOC
- " MYMALLOC"
+ " MYMALLOC"
+# endif
+# ifdef NO_HASH_SEED
+ " NO_HASH_SEED"
# endif
# ifdef PERLIO_LAYERS
- " PERLIO_LAYERS"
+ " PERLIO_LAYERS"
# endif
# ifdef PERL_DEBUG_READONLY_COW
- " PERL_DEBUG_READONLY_COW"
+ " PERL_DEBUG_READONLY_COW"
# endif
# ifdef PERL_DEBUG_READONLY_OPS
- " PERL_DEBUG_READONLY_OPS"
+ " PERL_DEBUG_READONLY_OPS"
+# endif
+# ifdef PERL_HASH_FUNC_DEFINE
+/* note that this is different from the others, PERL_HASH_FUNC_DEFINE
+ * is a string which says which define was defined. */
+ " " PERL_HASH_FUNC_DEFINE
# endif
-# ifdef PERL_IMPLICIT_CONTEXT
- " PERL_IMPLICIT_CONTEXT"
+# ifdef PERL_HASH_USE_SBOX32
+ " PERL_HASH_USE_SBOX32"
+# else
+ " PERL_HASH_NO_SBOX32"
# endif
# ifdef PERL_IMPLICIT_SYS
- " PERL_IMPLICIT_SYS"
+ " PERL_IMPLICIT_SYS"
# endif
# ifdef PERL_MICRO
- " PERL_MICRO"
+ " PERL_MICRO"
# endif
# ifdef PERL_POISON
- " PERL_POISON"
+ " PERL_POISON"
# endif
# ifdef PERL_SAWAMPERSAND
- " PERL_SAWAMPERSAND"
+ " PERL_SAWAMPERSAND"
# endif
# ifdef PERL_TRACK_MEMPOOL
- " PERL_TRACK_MEMPOOL"
+ " PERL_TRACK_MEMPOOL"
# endif
# ifdef PERL_USES_PL_PIDSTATUS
- " PERL_USES_PL_PIDSTATUS"
+ " PERL_USES_PL_PIDSTATUS"
# endif
# ifdef USE_64_BIT_ALL
- " USE_64_BIT_ALL"
+ " USE_64_BIT_ALL"
# endif
# ifdef USE_64_BIT_INT
- " USE_64_BIT_INT"
+ " USE_64_BIT_INT"
# endif
# ifdef USE_IEEE
- " USE_IEEE"
+ " USE_IEEE"
# endif
# ifdef USE_ITHREADS
- " USE_ITHREADS"
+ " USE_ITHREADS"
# endif
# ifdef USE_LARGE_FILES
- " USE_LARGE_FILES"
+ " USE_LARGE_FILES"
# endif
# ifdef USE_LOCALE_COLLATE
- " USE_LOCALE_COLLATE"
+ " USE_LOCALE_COLLATE"
# endif
# ifdef USE_LOCALE_NUMERIC
- " USE_LOCALE_NUMERIC"
+ " USE_LOCALE_NUMERIC"
# endif
# ifdef USE_LOCALE_TIME
- " USE_LOCALE_TIME"
+ " USE_LOCALE_TIME"
# endif
# ifdef USE_LONG_DOUBLE
- " USE_LONG_DOUBLE"
+ " USE_LONG_DOUBLE"
# endif
# ifdef USE_PERLIO
- " USE_PERLIO"
+ " USE_PERLIO"
# endif
# ifdef USE_QUADMATH
- " USE_QUADMATH"
+ " USE_QUADMATH"
# endif
# ifdef USE_REENTRANT_API
- " USE_REENTRANT_API"
+ " USE_REENTRANT_API"
# endif
# ifdef USE_SOCKS
- " USE_SOCKS"
+ " USE_SOCKS"
# endif
# ifdef VMS_DO_SOCKETS
- " VMS_DO_SOCKETS"
+ " VMS_DO_SOCKETS"
# endif
# ifdef VMS_SHORTEN_LONG_SYMBOLS
- " VMS_SHORTEN_LONG_SYMBOLS"
+ " VMS_SHORTEN_LONG_SYMBOLS"
# endif
# ifdef VMS_WE_ARE_CASE_SENSITIVE
- " VMS_SYMBOL_CASE_AS_IS"
+ " VMS_SYMBOL_CASE_AS_IS"
# endif
- "";
+ ""; /* keep this on a line by itself, WITH the empty string */
#else
EXTCONST char PL_bincompat_options[];
#endif
@@ -5418,6 +5860,24 @@ EXTCONST char *const PL_phase_names[] = {
EXTCONST char *const PL_phase_names[];
#endif
+/*
+=for apidoc_section $utility
+
+=for apidoc phase_name
+
+Returns the given phase's name as a NUL-terminated string.
+
+For example, to print a stack trace that includes the current
+interpreter phase you might do:
+
+ const char* phase_name = phase_name(PL_phase);
+ mess("This is weird. (Perl phase: %s)", phase_name);
+
+=cut
+*/
+
+#define phase_name(phase) (PL_phase_names[phase])
+
#ifndef PERL_CORE
/* Do not use this macro. It only exists for extensions that rely on PL_dirty
* instead of using the newer PL_phase, which provides everything PL_dirty
@@ -5468,8 +5928,7 @@ typedef enum {
#define KEY_sigvar 0xFFFF /* fake keyword representing a signature var */
/* Hints are now stored in a dedicated U32, so the bottom 8 bits are no longer
- special and there is no need for HINT_PRIVATE_MASK for COPs
- However, bitops store HINT_INTEGER in their op_private.
+ special and there is no need for HINT_PRIVATE_MASK for COPs.
NOTE: The typical module using these has the bit value hard-coded, so don't
blindly change the values of these.
@@ -5516,15 +5975,11 @@ typedef enum {
#define HINT_FEATURE_MASK 0x3c000000 /* 4 bits for feature bundles */
- /* Note: Used for HINT_M_VMSISH_*,
- currently defined by vms/vmsish.h:
- 0x40000000
- 0x80000000
- */
-
-/* The following are stored in $^H{sort}, not in PL_hints */
-#define HINT_SORT_STABLE 0x00000100 /* sort styles */
-#define HINT_SORT_UNSTABLE 0x00000200
+ /* Note: Used for HINT_M_VMSISH_*,
+ currently defined by vms/vmsish.h:
+ 0x40000000
+ 0x80000000
+ */
#define HINT_ALL_STRICT HINT_STRICT_REFS \
| HINT_STRICT_SUBS \
@@ -5544,7 +5999,7 @@ typedef enum {
#ifndef PERL_SAWAMPERSAND
# define PL_sawampersand \
- (SAWAMPERSAND_LEFT|SAWAMPERSAND_MIDDLE|SAWAMPERSAND_RIGHT)
+ (SAWAMPERSAND_LEFT|SAWAMPERSAND_MIDDLE|SAWAMPERSAND_RIGHT)
#endif
/* Used for debugvar magic */
@@ -5573,23 +6028,23 @@ struct perl_debug_pad {
#define PERL_DEBUG_PAD(i) &(PL_debug_pad.pad[i])
#define PERL_DEBUG_PAD_ZERO(i) (SvPVX(PERL_DEBUG_PAD(i))[0] = 0, \
- (((XPV*) SvANY(PERL_DEBUG_PAD(i)))->xpv_cur = 0), \
- PERL_DEBUG_PAD(i))
+ (((XPV*) SvANY(PERL_DEBUG_PAD(i)))->xpv_cur = 0), \
+ PERL_DEBUG_PAD(i))
/* Enable variables which are pointers to functions */
typedef void (*peep_t)(pTHX_ OP* o);
typedef regexp* (*regcomp_t) (pTHX_ char* exp, char* xend, PMOP* pm);
typedef I32 (*regexec_t) (pTHX_ regexp* prog, char* stringarg,
- char* strend, char* strbeg, I32 minend,
- SV* screamer, void* data, U32 flags);
+ char* strend, char* strbeg, I32 minend,
+ SV* screamer, void* data, U32 flags);
typedef char* (*re_intuit_start_t) (pTHX_ regexp *prog, SV *sv,
- char *strpos, char *strend,
- U32 flags,
- re_scream_pos_data *d);
+ char *strpos, char *strend,
+ U32 flags,
+ re_scream_pos_data *d);
typedef SV* (*re_intuit_string_t) (pTHX_ regexp *prog);
typedef void (*regfree_t) (pTHX_ struct regexp* r);
typedef regexp* (*regdupe_t) (pTHX_ const regexp* r, CLONE_PARAMS *param);
-typedef I32 (*re_fold_t)(const char *, char const *, I32);
+typedef I32 (*re_fold_t)(pTHX_ const char *, char const *, I32);
typedef void (*DESTRUCTORFUNC_NOCONTEXT_t) (void*);
typedef void (*DESTRUCTORFUNC_t) (pTHX_ void*);
@@ -5599,10 +6054,38 @@ typedef void (*XSINIT_t) (pTHX);
typedef void (*ATEXIT_t) (pTHX_ void*);
typedef void (*XSUBADDR_t) (pTHX_ CV *);
+enum Perl_custom_infix_precedence {
+ /* These numbers are spaced out to give room to insert new values as
+ * required. They form part of the ABI contract with XS::Parse::Infix so
+ * they should not be changed within a stable release cycle, but they can
+ * be freely altered during a development cycle because no ABI guarantees
+ * are made at that time */
+ INFIX_PREC_LOW = 10, /* non-associative */
+ INFIX_PREC_LOGICAL_OR_LOW = 30, /* left-associative, as `or` */
+ INFIX_PREC_LOGICAL_AND_LOW = 40, /* left-associative, as `and` */
+ INFIX_PREC_ASSIGN = 50, /* right-associative, as `=` */
+ INFIX_PREC_LOGICAL_OR = 70, /* left-associative, as `||` */
+ INFIX_PREC_LOGICAL_AND = 80, /* left-associative, as `&&` */
+ INFIX_PREC_REL = 90, /* non-associative, just below `==` */
+ INFIX_PREC_ADD = 110, /* left-associative, as `+` */
+ INFIX_PREC_MUL = 130, /* left-associative, as `*` */
+ INFIX_PREC_POW = 150, /* right-associative, as `**` */
+ INFIX_PREC_HIGH = 170, /* non-associative */
+ /* Try to keep within the range of a U8 in case we need to split the field
+ * and add flags */
+};
+struct Perl_custom_infix;
+struct Perl_custom_infix {
+ enum Perl_custom_infix_precedence prec;
+ void (*parse)(pTHX_ SV **opdata, struct Perl_custom_infix *); /* optional */
+ OP *(*build_op)(pTHX_ SV **opdata, OP *lhs, OP *rhs, struct Perl_custom_infix *);
+};
+
typedef OP* (*Perl_ppaddr_t)(pTHX);
typedef OP* (*Perl_check_t) (pTHX_ OP*);
typedef void(*Perl_ophook_t)(pTHX_ OP*);
typedef int (*Perl_keyword_plugin_t)(pTHX_ char*, STRLEN, OP**);
+typedef STRLEN (*Perl_infix_plugin_t)(pTHX_ char*, STRLEN, struct Perl_custom_infix **);
typedef void(*Perl_cpeep_t)(pTHX_ OP *, OP *);
typedef void(*globhook_t)(pTHX);
@@ -5815,19 +6298,35 @@ EXTCONST U8 PL_magic_data[256];
#endif
#ifdef DOINIT
- /* NL IV NV PV INV PI PN MG RX GV LV AV HV CV FM IO */
+ /* NL IV NV PV INV PI PN MG RX GV LV AV HV CV FM IO OBJ */
EXTCONST bool
-PL_valid_types_IVX[] = { 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 };
+PL_valid_types_IVX[] = { 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 };
EXTCONST bool
-PL_valid_types_NVX[] = { 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 };
+PL_valid_types_NVX[] = { 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 };
EXTCONST bool
-PL_valid_types_PVX[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 };
+PL_valid_types_PVX[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 };
EXTCONST bool
-PL_valid_types_RV[] = { 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 };
+PL_valid_types_RV[] = { 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0 };
EXTCONST bool
-PL_valid_types_IV_set[] = { 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1 };
+PL_valid_types_IV_set[] = { 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0 };
EXTCONST bool
-PL_valid_types_NV_set[] = { 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
+PL_valid_types_NV_set[] = { 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
+
+EXTCONST U8
+PL_deBruijn_bitpos_tab32[] = {
+ /* https://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn */
+ 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8,
+ 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9
+};
+
+EXTCONST U8
+PL_deBruijn_bitpos_tab64[] = {
+ /* https://stackoverflow.com/questions/11376288/fast-computing-of-log2-for-64-bit-integers */
+ 63, 0, 58, 1, 59, 47, 53, 2, 60, 39, 48, 27, 54, 33, 42, 3,
+ 61, 51, 37, 40, 49, 18, 28, 20, 55, 30, 34, 11, 43, 14, 22, 4,
+ 62, 57, 46, 52, 38, 26, 32, 41, 50, 36, 17, 19, 29, 10, 13, 21,
+ 56, 45, 25, 31, 35, 16, 9, 12, 44, 24, 15, 8, 23, 7, 6, 5
+};
#else
@@ -5837,9 +6336,17 @@ EXTCONST bool PL_valid_types_PVX[];
EXTCONST bool PL_valid_types_RV[];
EXTCONST bool PL_valid_types_IV_set[];
EXTCONST bool PL_valid_types_NV_set[];
+EXTCONST U8 PL_deBruijn_bitpos_tab32[];
+EXTCONST U8 PL_deBruijn_bitpos_tab64[];
#endif
+/* The constants for using PL_deBruijn_bitpos_tab */
+#define PERL_deBruijnMagic32_ 0x077CB531
+#define PERL_deBruijnShift32_ 27
+#define PERL_deBruijnMagic64_ 0x07EDD5E59A4E28C2
+#define PERL_deBruijnShift64_ 58
+
/* In C99 we could use designated (named field) union initializers.
* In C89 we need to initialize the member declared first.
* In C++ we need extern C initializers.
@@ -5855,6 +6362,24 @@ EXTCONST bool PL_valid_types_NV_set[];
# define PERL_SET_CONTEXT(i) PERL_SET_INTERP(i)
#endif
+#ifdef USE_PERL_SWITCH_LOCALE_CONTEXT
+# define PERL_SET_LOCALE_CONTEXT(i) \
+ STMT_START { \
+ if (UNLIKELY(PL_veto_switch_non_tTHX_context)) \
+ Perl_switch_locale_context(); \
+ } STMT_END
+#else
+# define PERL_SET_LOCALE_CONTEXT(i) NOOP
+#endif
+
+/* In some Configurations there may be per-thread information that is carried
+ * in a library instead of perl's tTHX structure. This macro is to be used to
+ * handle those when tTHX is changed. Only locale handling is currently known
+ * to be affected. */
+#define PERL_SET_NON_tTHX_CONTEXT(i) \
+ STMT_START { PERL_SET_LOCALE_CONTEXT(i); } STMT_END
+
+
#ifndef PERL_GET_CONTEXT
# define PERL_GET_CONTEXT PERL_GET_INTERP
#endif
@@ -5924,35 +6449,51 @@ static U8 utf8d_C9[] = {
/* This is a version of the above table customized for Perl that doesn't
* exclude surrogates and accepts start bytes up through FD (FE on 64-bit
* machines). The classes have been renumbered so that the patterns are more
- * evident in the table. The class numbers for start bytes are constrained so
- * that they can be used as a shift count for masking off the leading one bits.
+ * evident in the table. The class numbers are structured so the values are:
+ *
+ * a) UTF-8 invariant code points
+ * 0
+ * b) Start bytes that always lead to either overlongs or some class of code
+ * point that needs outside intervention for handling (such as to raise a
+ * warning)
+ * 1
+ * c) Start bytes that never lead to one of the above
+ * number of bytes in complete sequence
+ * d) Rest of start bytes (they can be resolved through this algorithm) and
+ * continuation bytes
+ * arbitrary class number chosen to not conflict with the above
+ * classes, and to index into the remaining table
+ *
* It would make the code simpler if start byte FF could also be handled, but
- * doing so would mean adding nodes for each of continuation bytes 6-12
- * remaining, and two more nodes for overlong detection (a total of 9), and
- * there is room only for 4 more nodes unless we make the array U16 instead of
- * U8.
+ * doing so would mean adding two more classes (one from splitting 80 from 81,
+ * and one for FF), and nodes for each of 6 new continuation bytes. The
+ * current table has 436 entries; the new one would require 140 more = 576 (2
+ * additional classes for each of the 10 existing nodes, and 20 for each of 6
+ * new nodes. The array would have to be made U16 instead of U8, not worth it
+ * for this rarely encountered case
*
* The classes are
- * 00-7F 0
+ * 00-7F 0 Always legal, single byte sequence
* 80-81 7 Not legal immediately after start bytes E0 F0 F8 FC
* FE
* 82-83 8 Not legal immediately after start bytes E0 F0 F8 FC
* 84-87 9 Not legal immediately after start bytes E0 F0 F8
* 88-8F 10 Not legal immediately after start bytes E0 F0
* 90-9F 11 Not legal immediately after start byte E0
- * A0-BF 12
- * C0,C1 1
- * C2-DF 2
- * E0 13
- * E1-EF 3
- * F0 14
- * F1-F7 4
- * F8 15
- * F9-FB 5
- * FC 16
- * FD 6
- * FE 17 (or 1 on 32-bit machines, since it overflows)
- * FF 1
+ * A0-BF 12 Always legal continuation byte
+ * C0,C1 1 Not legal: overlong
+ * C2-DF 2 Legal start byte for two byte sequences
+ * E0 13 Some sequences are overlong; others legal
+ * E1-EF 3 Legal start byte for three byte sequences
+ * F0 14 Some sequences are overlong; others legal
+ * F1-F7 4 Legal start byte for four byte sequences
+ * F8 15 Some sequences are overlong; others legal
+ * F9-FB 5 Legal start byte for five byte sequences
+ * FC 16 Some sequences are overlong; others legal
+ * FD 6 Legal start byte for six byte sequences
+ * FE 17 Some sequences are overlong; others legal
+ * (is 1 on 32-bit machines, since it overflows)
+ * FF 1 Need to handle specially
*/
EXTCONST U8 PL_extended_utf8_dfa_tab[] = {
@@ -6002,7 +6543,7 @@ EXTCONST U8 PL_extended_utf8_dfa_tab[] = {
* N10 Start byte is FE. Continuation bytes 80-81 are illegal (overlong);
* the other continuations transition to N5
* 1 Reject. All transitions not mentioned above (except the single
- * byte ones (as they are always legal) are to this state.
+ * byte ones (as they are always legal)) are to this state.
*/
# if defined(PERL_CORE)
@@ -6352,16 +6893,16 @@ typedef struct am_table_short AMTS;
#endif /* _FASTMATH */
#define PERLDB_ALL (PERLDBf_SUB | PERLDBf_LINE | \
- PERLDBf_NOOPT | PERLDBf_INTER | \
- PERLDBf_SUBLINE| PERLDBf_SINGLE| \
- PERLDBf_NAMEEVAL| PERLDBf_NAMEANON | \
- PERLDBf_SAVESRC)
- /* No _NONAME, _GOTO */
+ PERLDBf_NOOPT | PERLDBf_INTER | \
+ PERLDBf_SUBLINE| PERLDBf_SINGLE| \
+ PERLDBf_NAMEEVAL| PERLDBf_NAMEANON | \
+ PERLDBf_SAVESRC)
+ /* No _NONAME, _GOTO */
#define PERLDBf_SUB 0x01 /* Debug sub enter/exit */
#define PERLDBf_LINE 0x02 /* Keep line # */
#define PERLDBf_NOOPT 0x04 /* Switch off optimizations */
#define PERLDBf_INTER 0x08 /* Preserve more data for
- later inspections */
+ later inspections */
#define PERLDBf_SUBLINE 0x10 /* Keep subr source lines */
#define PERLDBf_SINGLE 0x20 /* Start with single-step on */
#define PERLDBf_NONAME 0x40 /* For _SUB: no name of the subr */
@@ -6476,14 +7017,14 @@ the plain locale pragma without a parameter (S<C<use locale>>) is in effect.
* 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 \
+# define CHECK_AND_WARN_PROBLEMATIC_LOCALE_ \
STMT_START { \
if (UNLIKELY(PL_warn_locale)) { \
Perl__warn_problematic_locale(); \
} \
} STMT_END
# else
-# define _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+# define CHECK_AND_WARN_PROBLEMATIC_LOCALE_
# endif
@@ -6492,8 +7033,8 @@ the plain locale pragma without a parameter (S<C<use locale>>) is in effect.
* 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)) { \
+ STMT_START { \
+ if (! 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)); \
@@ -6501,8 +7042,8 @@ the plain locale pragma without a parameter (S<C<use locale>>) is in effect.
} 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)) { \
+ STMT_START { /* Check if to warn before doing the conversion work */\
+ if (! 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", \
@@ -6528,207 +7069,99 @@ the plain locale pragma without a parameter (S<C<use locale>>) is in effect.
# 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_WARN_PROBLEMATIC_LOCALE_
# define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(s, send)
# define _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(c)
#endif
+#define locale_panic_(m) Perl_locale_panic((m), __FILE__, __LINE__, errno)
/* Locale/thread synchronization macros. */
-#if ! ( defined(USE_LOCALE) \
- && defined(USE_ITHREADS) \
- && ( ! defined(USE_THREAD_SAFE_LOCALE) \
- || ( defined(HAS_LOCALECONV) \
- && ( ! defined(HAS_LOCALECONV_L) \
- || defined(TS_W32_BROKEN_LOCALECONV))) \
- || ( defined(HAS_NL_LANGINFO) \
- && ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L)) \
- || (defined(HAS_MBLEN) && ! defined(HAS_MBRLEN)) \
- || (defined(HAS_MBTOWC) && ! defined(HAS_MBRTOWC)) \
- || (defined(HAS_WCTOMB) && ! defined(HAS_WCRTOMB))))
-
-/* The whole expression just above was complemented, so here we have no need
- * for thread synchronization, most likely it would be that this isn't a
- * threaded build. */
+#if ! defined(USE_LOCALE) || ! defined(USE_LOCALE_THREADS)
+# define LOCALE_LOCK_(cond) NOOP
+# define LOCALE_UNLOCK_ NOOP
# define LOCALE_INIT
# define LOCALE_TERM
-# define LC_NUMERIC_LOCK(cond) NOOP
-# define LC_NUMERIC_UNLOCK NOOP
-# define LOCALECONV_LOCK NOOP
-# define LOCALECONV_UNLOCK NOOP
-# define LOCALE_READ_LOCK NOOP
-# define LOCALE_READ_UNLOCK NOOP
-# define MBLEN_LOCK NOOP
-# define MBLEN_UNLOCK NOOP
-# define MBTOWC_LOCK NOOP
-# define MBTOWC_UNLOCK NOOP
-# define NL_LANGINFO_LOCK NOOP
-# define NL_LANGINFO_UNLOCK NOOP
-# define SETLOCALE_LOCK NOOP
-# define SETLOCALE_UNLOCK NOOP
-# define WCTOMB_LOCK NOOP
-# define WCTOMB_UNLOCK NOOP
-#else
-
- /* Here, we will need critical sections in locale handling, because one or
- * more of the above conditions are true. This could be because the
- * platform doesn't have thread-safe locales, or that at least one of the
- * locale-dependent functions in the core isn't thread-safe. The latter
- * case is generally because they return a pointer to a static buffer, which
- * may be per-process instead of per-thread. There are supposedly
- * re-entrant, safe versions for all of them Perl currently uses (which the
- * #if above checks for), but most platforms don't have all the needed ones
- * available, and the Posix standard doesn't require nl_langinfo_l() to be
- * fully thread-safe, so a Configure probe was written. localeconv_l() is
- * uncommon, and judging by bug reports on the web, some earlier library
- * localeconv_l versions were broken, so perhaps a probe is in order for
- * that, but it would be a pain to write.
- *
- * On non-thread-safe systems, some of the above functions are vulnerable to
- * races should another thread get control and change the locale in the
- * middle of their execution.
- *
- * We currently use a single mutex for all these cases. This solves both
- * the problem of another thread changing the locale, and the buffer being
- * overwritten (the code copies the results to a safe place before releasing
- * the mutex). Ideally, for locale thread-safe platforms where the only
- * issue is another thread clobbering the function's static buffer, there
- * would be a separate mutex for each such buffer. Otherwise, things get
- * locked that don't need to. But, it is not expected that any of these
- * will be called frequently, and the locked interval should be short, and
- * modern platforms will have reentrant versions (which don't lock) for
- * almost all of them, so khw thinks a single mutex should suffice. */
-# define LOCALE_LOCK_ \
- STMT_START { \
- DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
- "%s: %d: locking locale\n", __FILE__, __LINE__)); \
- MUTEX_LOCK(&PL_locale_mutex); \
- } STMT_END
-# define LOCALE_UNLOCK_ \
- STMT_START { \
- DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
- "%s: %d: unlocking locale\n", __FILE__, __LINE__)); \
- MUTEX_UNLOCK(&PL_locale_mutex); \
- } STMT_END
- /* We do define a different macro for each case; then if we want to have
- * separate mutexes for some of them, the only changes needed are here.
- * Define just the necessary macros. The compiler should then croak if the
- * #ifdef's in the code are incorrect */
-# if defined(HAS_LOCALECONV) && ( ! defined(HAS_POSIX_2008_LOCALE) \
- || ! defined(HAS_LOCALECONV_L) \
- || defined(TS_W32_BROKEN_LOCALECONV))
-# define LOCALECONV_LOCK LOCALE_LOCK_
-# define LOCALECONV_UNLOCK LOCALE_UNLOCK_
-# endif
-# if defined(HAS_NL_LANGINFO) && ( ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L) \
- || ! defined(HAS_POSIX_2008_LOCALE))
-# define NL_LANGINFO_LOCK LOCALE_LOCK_
-# define NL_LANGINFO_UNLOCK LOCALE_UNLOCK_
-# endif
-# if defined(HAS_MBLEN) && ! defined(HAS_MBRLEN)
-# define MBLEN_LOCK LOCALE_LOCK_
-# define MBLEN_UNLOCK LOCALE_UNLOCK_
-# endif
-# if defined(HAS_MBTOWC) && ! defined(HAS_MBRTOWC)
-# define MBTOWC_LOCK LOCALE_LOCK_
-# define MBTOWC_UNLOCK LOCALE_UNLOCK_
-# endif
-# if defined(HAS_WCTOMB) && ! defined(HAS_WCRTOMB)
-# define WCTOMB_LOCK LOCALE_LOCK_
-# define WCTOMB_UNLOCK LOCALE_UNLOCK_
-# endif
-# if defined(USE_THREAD_SAFE_LOCALE)
- /* On locale thread-safe systems, we don't need these workarounds */
-# define LOCALE_TERM_LC_NUMERIC_ NOOP
-# define LOCALE_INIT_LC_NUMERIC_ NOOP
-# define LC_NUMERIC_LOCK(cond) NOOP
-# define LC_NUMERIC_UNLOCK NOOP
-# define LOCALE_INIT_LC_NUMERIC_ NOOP
-# define LOCALE_TERM_LC_NUMERIC_ NOOP
-
- /* There may be instance core where we this is invoked yet should do
- * nothing. Rather than have #ifdef's around them, define it here */
-# define SETLOCALE_LOCK NOOP
-# define SETLOCALE_UNLOCK NOOP
-# else
-# define SETLOCALE_LOCK LOCALE_LOCK_
-# define SETLOCALE_UNLOCK LOCALE_UNLOCK_
+#else /* Below: Threaded, and locales are supported */
- /* On platforms without per-thread locales, when another thread can switch
- * our locale, we need another mutex to create critical sections where we
- * want the LC_NUMERIC locale to be locked into either the C (standard)
- * locale, or the underlying locale, so that other threads interrupting
- * this one don't change it to the wrong state before we've had a chance to
- * complete our operation. It can stay locked over an entire printf
- * operation, for example. And so is made distinct from the LOCALE_LOCK
- * mutex.
+ /* A locale mutex is required on all such threaded builds.
*
- * This simulates kind of a general semaphore. The current thread will
- * lock the mutex if the per-thread variable is zero, and then increments
- * that variable. Each corresponding UNLOCK decrements the variable until
- * it is 0, at which point it actually unlocks the mutex. Since the
- * variable is per-thread, there is no race with other threads.
+ * This mutex simulates a general (or recursive) semaphore. The current
+ * thread will lock the mutex if the per-thread variable is zero, and then
+ * increments that variable. Each corresponding UNLOCK decrements the
+ * variable until it is 0, at which point it actually unlocks the mutex.
+ * Since the variable is per-thread, initialized to 0, there is no race
+ * with other threads.
*
- * The single argument is a condition to test for, and if true, to panic,
- * as this would be an attempt to complement the LC_NUMERIC state, and
- * we're not supposed to because it's locked.
+ * The single argument is a condition to test for, and if true, to panic.
+ * Call it with the constant 0 to suppress the check.
*
* Clang improperly gives warnings for this, if not silenced:
* https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#conditional-locks
- *
- * If LC_NUMERIC_LOCK is combined with one of the LOCKs above, calls to
- * that and its corresponding unlock should be contained entirely within
- * the locked portion of LC_NUMERIC. Those mutexes should be used only in
- * very short sections of code, while LC_NUMERIC_LOCK may span more
- * operations. By always following this convention, deadlock should be
- * impossible. But if necessary, the two mutexes could be combined. */
-# define LC_NUMERIC_LOCK(cond_to_panic_if_already_locked) \
- CLANG_DIAG_IGNORE(-Wthread-safety) \
+ */
+# define LOCALE_LOCK_(cond_to_panic_if_already_locked) \
STMT_START { \
- if (PL_lc_numeric_mutex_depth <= 0) { \
- MUTEX_LOCK(&PL_lc_numeric_mutex); \
- PL_lc_numeric_mutex_depth = 1; \
+ CLANG_DIAG_IGNORE(-Wthread-safety) \
+ if (LIKELY(PL_locale_mutex_depth <= 0)) { \
DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
- "%s: %d: locking lc_numeric; depth=1\n", \
+ "%s: %d: locking locale; depth=1\n", \
__FILE__, __LINE__)); \
+ MUTEX_LOCK(&PL_locale_mutex); \
+ PL_locale_mutex_depth = 1; \
} \
else { \
- PL_lc_numeric_mutex_depth++; \
+ PL_locale_mutex_depth++; \
DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
- "%s: %d: avoided lc_numeric_lock; new depth=%d\n", \
- __FILE__, __LINE__, PL_lc_numeric_mutex_depth)); \
+ "%s: %d: avoided locking locale; new depth=%d\n", \
+ __FILE__, __LINE__, PL_locale_mutex_depth)); \
if (cond_to_panic_if_already_locked) { \
- Perl_croak_nocontext("panic: %s: %d: Trying to change" \
- " LC_NUMERIC incompatibly", \
- __FILE__, __LINE__); \
+ locale_panic_("Trying to lock locale incompatibly: " \
+ STRINGIFY(cond_to_panic_if_already_locked)); \
} \
} \
+ CLANG_DIAG_RESTORE \
} STMT_END
-# define LC_NUMERIC_UNLOCK \
+# define LOCALE_UNLOCK_ \
STMT_START { \
- if (PL_lc_numeric_mutex_depth <= 1) { \
- MUTEX_UNLOCK(&PL_lc_numeric_mutex); \
- PL_lc_numeric_mutex_depth = 0; \
+ if (LIKELY(PL_locale_mutex_depth == 1)) { \
DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
- "%s: %d: unlocking lc_numeric; depth=0\n", \
+ "%s: %d: unlocking locale; new depth=0\n", \
__FILE__, __LINE__)); \
+ PL_locale_mutex_depth = 0; \
+ MUTEX_UNLOCK(&PL_locale_mutex); \
+ } \
+ else if (PL_locale_mutex_depth <= 0) { \
+ DEBUG_L(PerlIO_printf(Perl_debug_log, \
+ "%s: %d: ignored attempt to unlock already" \
+ " unlocked locale; depth unchanged at %d\n", \
+ __FILE__, __LINE__, PL_locale_mutex_depth)); \
} \
else { \
- PL_lc_numeric_mutex_depth--; \
+ PL_locale_mutex_depth--; \
DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
- "%s: %d: avoided lc_numeric_unlock; new depth=%d\n",\
- __FILE__, __LINE__, PL_lc_numeric_mutex_depth)); \
+ "%s: %d: avoided unlocking locale; new depth=%d\n", \
+ __FILE__, __LINE__, PL_locale_mutex_depth)); \
} \
- } STMT_END \
- CLANG_DIAG_RESTORE
+ } STMT_END
+
+# if defined(USE_THREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
-# define LOCALE_INIT_LC_NUMERIC_ MUTEX_INIT(&PL_lc_numeric_mutex)
-# define LOCALE_TERM_LC_NUMERIC_ MUTEX_DESTROY(&PL_lc_numeric_mutex)
+ /* By definition, a thread-unsafe locale means we need a critical
+ * section. */
+# define SETLOCALE_LOCK LOCALE_LOCK_(0)
+# define SETLOCALE_UNLOCK LOCALE_UNLOCK_
+# ifdef USE_LOCALE_NUMERIC
+# define LC_NUMERIC_LOCK(cond_to_panic_if_already_locked) \
+ LOCALE_LOCK_(cond_to_panic_if_already_locked)
+# define LC_NUMERIC_UNLOCK LOCALE_UNLOCK_
+# endif
# endif
-# ifdef USE_POSIX_2008_LOCALE
+# ifndef USE_POSIX_2008_LOCALE
+# define LOCALE_TERM_POSIX_2008_ NOOP
+# else
/* We have a locale object holding the 'C' locale for Posix 2008 */
# define LOCALE_TERM_POSIX_2008_ \
STMT_START { \
@@ -6740,22 +7173,131 @@ the plain locale pragma without a parameter (S<C<use locale>>) is in effect.
PL_C_locale_obj = (locale_t) NULL; \
} \
} STMT_END
-# else
-# define LOCALE_TERM_POSIX_2008_ NOOP
# endif
-# define LOCALE_INIT STMT_START { \
- MUTEX_INIT(&PL_locale_mutex); \
- LOCALE_INIT_LC_NUMERIC_; \
- } STMT_END
-
+# define LOCALE_INIT MUTEX_INIT(&PL_locale_mutex)
# define LOCALE_TERM STMT_START { \
- MUTEX_DESTROY(&PL_locale_mutex); \
- LOCALE_TERM_LC_NUMERIC_; \
LOCALE_TERM_POSIX_2008_; \
+ MUTEX_DESTROY(&PL_locale_mutex); \
} STMT_END
#endif
+/* There are some locale-related functions which may need locking only because
+ * they share some common memory across threads, and hence there is the
+ * potential for a race in accessing that space. Most are because their return
+ * points to a global static buffer, but some just use some common space
+ * internally. All functions accessing a given space need to have a critical
+ * section to prevent any other thread from accessing it at the same time.
+ * Ideally, there would be a separate mutex for each such space, so that
+ * another thread isn't unnecessarily blocked. But, most of them need to be
+ * locked against the locale changing while accessing that space, and it is not
+ * expected that any will be called frequently, and the locked interval should
+ * be short, and modern platforms will have reentrant versions (which don't
+ * lock) for almost all of them, so khw thinks a single mutex should suffice.
+ * Having a single mutex facilitates that, avoiding potential deadlock
+ * situations.
+ *
+ * This will be a no-op iff the perl is unthreaded. 'gw' stands for 'global
+ * write', to indicate the caller wants to be able to access memory that isn't
+ * thread specific, either to write to itself, or to prevent anyone else from
+ * writing. */
+#define gwLOCALE_LOCK LOCALE_LOCK_(0)
+#define gwLOCALE_UNLOCK LOCALE_UNLOCK_
+
+/* setlocale() generally returns in a global static buffer, but not on Windows
+ * when operating in thread-safe mode */
+#if defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE)
+# define POSIX_SETLOCALE_LOCK \
+ STMT_START { \
+ if (_configthreadlocale(0) == _DISABLE_PER_THREAD_LOCALE) \
+ gwLOCALE_LOCK; \
+ } STMT_END
+# define POSIX_SETLOCALE_UNLOCK \
+ STMT_START { \
+ if (_configthreadlocale(0) == _DISABLE_PER_THREAD_LOCALE) \
+ gwLOCALE_UNLOCK; \
+ } STMT_END
+#else
+# define POSIX_SETLOCALE_LOCK gwLOCALE_LOCK
+# define POSIX_SETLOCALE_UNLOCK gwLOCALE_UNLOCK
+#endif
+
+/* It handles _wsetlocale() as well */
+#define WSETLOCALE_LOCK POSIX_SETLOCALE_LOCK
+#define WSETLOCALE_UNLOCK POSIX_SETLOCALE_UNLOCK
+
+/* Similar to gwLOCALE_LOCK, there are functions that require both the locale
+ * and environment to be constant during their execution, and don't change
+ * either of those things, but do write to some sort of shared global space.
+ * They require some sort of exclusive lock against similar functions, and a
+ * read lock on both the locale and environment. However, on systems which
+ * have per-thread locales, the locale is constant during the execution of
+ * these functions, and so no locale lock is necssary. For such systems, an
+ * exclusive ENV lock is necessary and sufficient. On systems where the locale
+ * could change out from under us, we use an exclusive LOCALE lock to prevent
+ * that, and a read ENV lock to prevent other threads that have nothing to do
+ * with locales here from changing the environment. */
+#ifdef SETLOCALE_LOCK
+# define gwENVr_LOCALEr_LOCK \
+ STMT_START { SETLOCALE_LOCK; ENV_READ_LOCK; } STMT_END
+# define gwENVr_LOCALEr_UNLOCK \
+ STMT_START { ENV_READ_UNLOCK; SETLOCALE_UNLOCK; } STMT_END
+#else
+# define gwENVr_LOCALEr_LOCK ENV_LOCK
+# define gwENVr_LOCALEr_UNLOCK ENV_UNLOCK
+#endif
+
+/* Now that we have defined gwENVr_LOCALEr_LOCK, we can finish defining
+ * SETLOCALE_LOCK, which we kept undefined until here on a thread-safe system
+ * so that we could use that fact to calculate what gwENVr_LOCALEr_LOCK should
+ * be */
+#ifndef SETLOCALE_LOCK
+# define SETLOCALE_LOCK NOOP
+# define SETLOCALE_UNLOCK NOOP
+#endif
+
+
+ /* On systems that don't have per-thread locales, even though we don't
+ * think we are changing the locale ourselves, behind the scenes it does
+ * get changed to whatever the thread's should be, so it has to be an
+ * exclusive lock. By defining it here with this name, we can, for the
+ * most part, hide this detail from the rest of the code */
+/* Currently, the read lock is an exclusive lock */
+#define LOCALE_READ_LOCK SETLOCALE_LOCK
+#define LOCALE_READ_UNLOCK SETLOCALE_UNLOCK
+
+
+#ifndef LC_NUMERIC_LOCK
+# define LC_NUMERIC_LOCK(cond) NOOP
+# define LC_NUMERIC_UNLOCK NOOP
+#endif
+
+ /* These non-reentrant versions use global space */
+# define MBLEN_LOCK_ gwLOCALE_LOCK
+# define MBLEN_UNLOCK_ gwLOCALE_UNLOCK
+
+# define MBTOWC_LOCK_ gwLOCALE_LOCK
+# define MBTOWC_UNLOCK_ gwLOCALE_UNLOCK
+
+# define WCTOMB_LOCK_ gwLOCALE_LOCK
+# define WCTOMB_UNLOCK_ gwLOCALE_UNLOCK
+
+ /* Whereas the reentrant versions don't (assuming they are called with a
+ * per-thread buffer; some have the capability of being called with a NULL
+ * parameter, which defeats the reentrancy) */
+# define MBRLEN_LOCK_ NOOP
+# define MBRLEN_UNLOCK_ NOOP
+# define MBRTOWC_LOCK_ NOOP
+# define MBRTOWC_UNLOCK_ NOOP
+# define WCRTOMB_LOCK_ NOOP
+# define WCRTOMB_UNLOCK_ NOOP
+
+# define LC_COLLATE_LOCK SETLOCALE_LOCK
+# define LC_COLLATE_UNLOCK SETLOCALE_UNLOCK
+
+# define STRFTIME_LOCK ENV_LOCK
+# define STRFTIME_UNLOCK ENV_UNLOCK
+
#ifdef USE_LOCALE_NUMERIC
/* These macros are for toggling between the underlying locale (UNDERLYING or
@@ -6912,12 +7454,12 @@ cannot have changed since the precalculation.
* khw believes the reason for the variables instead of the bits in a single
* word is to avoid having to have masking instructions. */
-# define _NOT_IN_NUMERIC_STANDARD (! PL_numeric_standard)
+# 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 \
+# define NOT_IN_NUMERIC_UNDERLYING_ \
(! PL_numeric_underlying && PL_numeric_standard < 2)
# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION \
@@ -6927,17 +7469,17 @@ cannot have changed since the precalculation.
STMT_START { \
bool _in_lc_numeric = (in); \
LC_NUMERIC_LOCK( \
- ( ( _in_lc_numeric && _NOT_IN_NUMERIC_UNDERLYING) \
- || (! _in_lc_numeric && _NOT_IN_NUMERIC_STANDARD))); \
+ ( ( _in_lc_numeric && NOT_IN_NUMERIC_UNDERLYING_) \
+ || (! _in_lc_numeric && NOT_IN_NUMERIC_STANDARD_))); \
if (_in_lc_numeric) { \
- if (_NOT_IN_NUMERIC_UNDERLYING) { \
+ if (NOT_IN_NUMERIC_UNDERLYING_) { \
Perl_set_numeric_underlying(aTHX); \
_restore_LC_NUMERIC_function \
= &Perl_set_numeric_standard; \
} \
} \
else { \
- if (_NOT_IN_NUMERIC_STANDARD) { \
+ if (NOT_IN_NUMERIC_STANDARD_) { \
Perl_set_numeric_standard(aTHX); \
_restore_LC_NUMERIC_function \
= &Perl_set_numeric_underlying; \
@@ -6956,14 +7498,16 @@ cannot have changed since the precalculation.
LC_NUMERIC_UNLOCK; \
} STMT_END
-/* The next two macros set unconditionally. These should be rarely used, and
- * only after being sure that this is what is needed */
+/* The next two macros should be rarely used, and only after being sure that
+ * this is what is needed */
# define SET_NUMERIC_STANDARD() \
- STMT_START { \
+ STMT_START { \
DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
"%s: %d: lc_numeric standard=%d\n", \
__FILE__, __LINE__, PL_numeric_standard)); \
- Perl_set_numeric_standard(aTHX); \
+ if (UNLIKELY(NOT_IN_NUMERIC_STANDARD_)) { \
+ Perl_set_numeric_standard(aTHX); \
+ } \
DEBUG_Lv(PerlIO_printf(Perl_debug_log, \
"%s: %d: lc_numeric standard=%d\n", \
__FILE__, __LINE__, PL_numeric_standard)); \
@@ -6971,7 +7515,8 @@ cannot have changed since the precalculation.
# define SET_NUMERIC_UNDERLYING() \
STMT_START { \
- if (_NOT_IN_NUMERIC_UNDERLYING) { \
+ /*assert(PL_locale_mutex_depth > 0);*/ \
+ if (NOT_IN_NUMERIC_UNDERLYING_) { \
Perl_set_numeric_underlying(aTHX); \
} \
} STMT_END
@@ -6980,8 +7525,8 @@ cannot have changed since the precalculation.
* the RESTORE_foo ones called to switch back, but only if need be */
# define STORE_LC_NUMERIC_SET_STANDARD() \
STMT_START { \
- LC_NUMERIC_LOCK(_NOT_IN_NUMERIC_STANDARD); \
- if (_NOT_IN_NUMERIC_STANDARD) { \
+ LC_NUMERIC_LOCK(NOT_IN_NUMERIC_STANDARD_); \
+ if (NOT_IN_NUMERIC_STANDARD_) { \
_restore_LC_NUMERIC_function = &Perl_set_numeric_underlying;\
Perl_set_numeric_standard(aTHX); \
} \
@@ -6991,8 +7536,8 @@ cannot have changed since the precalculation.
* locale'. This is principally in the POSIX:: functions */
# define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING() \
STMT_START { \
- LC_NUMERIC_LOCK(_NOT_IN_NUMERIC_UNDERLYING); \
- if (_NOT_IN_NUMERIC_UNDERLYING) { \
+ LC_NUMERIC_LOCK(NOT_IN_NUMERIC_UNDERLYING_); \
+ if (NOT_IN_NUMERIC_UNDERLYING_) { \
Perl_set_numeric_underlying(aTHX); \
_restore_LC_NUMERIC_function = &Perl_set_numeric_standard; \
} \
@@ -7058,7 +7603,7 @@ cannot have changed since the precalculation.
#endif /* !USE_LOCALE_NUMERIC */
-#ifdef USE_ITHREADS
+#ifdef USE_LOCALE_THREADS
# define ENV_LOCK PERL_WRITE_LOCK(&PL_env_mutex)
# define ENV_UNLOCK PERL_WRITE_UNLOCK(&PL_env_mutex)
# define ENV_READ_LOCK PERL_READ_LOCK(&PL_env_mutex)
@@ -7091,6 +7636,162 @@ cannot have changed since the precalculation.
# define GETENV_UNLOCK NOOP
#endif
+/* Some critical sections need to lock both the locale and the environment from
+ * changing, while allowing for any number of readers. To avoid deadlock, this
+ * is always done in the same order. These should always be invoked, like all
+ * locks really, at such a low level that its just a libc call that is wrapped,
+ * so as to prevent recursive calls which could deadlock. */
+#define ENVr_LOCALEr_LOCK \
+ STMT_START { LOCALE_READ_LOCK; ENV_READ_LOCK; } STMT_END
+#define ENVr_LOCALEr_UNLOCK \
+ STMT_START { ENV_READ_UNLOCK; LOCALE_READ_UNLOCK; } STMT_END
+
+/* These time-related functions all requre that the environment and locale
+ * don't change while they are executing (at least in glibc; this appears to be
+ * contrary to the POSIX standard). tzset() writes global variables, so
+ * always needs to have write locking. ctime, localtime, mktime, and strftime
+ * effectively call it, so they too need exclusive access. The rest need to
+ * have exclusive locking as well so that they can copy the contents of the
+ * returned static buffer before releasing the lock. That leaves asctime and
+ * gmtime. There may be reentrant versions of these available on the platform
+ * which don't require write locking.
+ */
+#ifdef PERL_REENTR_USING_ASCTIME_R
+# define ASCTIME_LOCK ENVr_LOCALEr_LOCK
+# define ASCTIME_UNLOCK ENVr_LOCALEr_UNLOCK
+#else
+# define ASCTIME_LOCK gwENVr_LOCALEr_LOCK
+# define ASCTIME_UNLOCK gwENVr_LOCALEr_UNLOCK
+#endif
+
+#define CTIME_LOCK gwENVr_LOCALEr_LOCK
+#define CTIME_UNLOCK gwENVr_LOCALEr_UNLOCK
+
+#ifdef PERL_REENTR_USING_GMTIME_R
+# define GMTIME_LOCK ENVr_LOCALEr_LOCK
+# define GMTIME_UNLOCK ENVr_LOCALEr_UNLOCK
+#else
+# define GMTIME_LOCK gwENVr_LOCALEr_LOCK
+# define GMTIME_UNLOCK gwENVr_LOCALEr_UNLOCK
+#endif
+
+#define LOCALTIME_LOCK gwENVr_LOCALEr_LOCK
+#define LOCALTIME_UNLOCK gwENVr_LOCALEr_UNLOCK
+#define MKTIME_LOCK gwENVr_LOCALEr_LOCK
+#define MKTIME_UNLOCK gwENVr_LOCALEr_UNLOCK
+#define TZSET_LOCK gwENVr_LOCALEr_LOCK
+#define TZSET_UNLOCK gwENVr_LOCALEr_UNLOCK
+
+/* Similiarly, these functions need a constant environment and/or locale. And
+ * some have a buffer that is shared with another thread executing the same or
+ * a related call. A mutex could be created for each class, but for now, share
+ * the ENV mutex with everything, as none probably gets called so much that
+ * performance would suffer by a thread being locked out by another thread that
+ * could have used a different mutex.
+ *
+ * But, create a different macro name just to indicate the ones that don't
+ * actually depend on the environment, but are using its mutex for want of a
+ * better one */
+#define gwLOCALEr_LOCK gwENVr_LOCALEr_LOCK
+#define gwLOCALEr_UNLOCK gwENVr_LOCALEr_UNLOCK
+
+#ifdef PERL_REENTR_USING_GETHOSTBYADDR_R
+# define GETHOSTBYADDR_LOCK ENVr_LOCALEr_LOCK
+# define GETHOSTBYADDR_UNLOCK ENVr_LOCALEr_UNLOCK
+#else
+# define GETHOSTBYADDR_LOCK gwENVr_LOCALEr_LOCK
+# define GETHOSTBYADDR_UNLOCK gwENVr_LOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETHOSTBYNAME_R
+# define GETHOSTBYNAME_LOCK ENVr_LOCALEr_LOCK
+# define GETHOSTBYNAME_UNLOCK ENVr_LOCALEr_UNLOCK
+#else
+# define GETHOSTBYNAME_LOCK gwENVr_LOCALEr_LOCK
+# define GETHOSTBYNAME_UNLOCK gwENVr_LOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETNETBYADDR_R
+# define GETNETBYADDR_LOCK LOCALE_READ_LOCK
+# define GETNETBYADDR_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETNETBYADDR_LOCK gwLOCALEr_LOCK
+# define GETNETBYADDR_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETNETBYNAME_R
+# define GETNETBYNAME_LOCK LOCALE_READ_LOCK
+# define GETNETBYNAME_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETNETBYNAME_LOCK gwLOCALEr_LOCK
+# define GETNETBYNAME_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPROTOBYNAME_R
+# define GETPROTOBYNAME_LOCK LOCALE_READ_LOCK
+# define GETPROTOBYNAME_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETPROTOBYNAME_LOCK gwLOCALEr_LOCK
+# define GETPROTOBYNAME_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPROTOBYNUMBER_R
+# define GETPROTOBYNUMBER_LOCK LOCALE_READ_LOCK
+# define GETPROTOBYNUMBER_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETPROTOBYNUMBER_LOCK gwLOCALEr_LOCK
+# define GETPROTOBYNUMBER_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPROTOENT_R
+# define GETPROTOENT_LOCK LOCALE_READ_LOCK
+# define GETPROTOENT_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETPROTOENT_LOCK gwLOCALEr_LOCK
+# define GETPROTOENT_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPWNAM_R
+# define GETPWNAM_LOCK LOCALE_READ_LOCK
+# define GETPWNAM_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETPWNAM_LOCK gwLOCALEr_LOCK
+# define GETPWNAM_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPWUID_R
+# define GETPWUID_LOCK LOCALE_READ_LOCK
+# define GETPWUID_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETPWUID_LOCK gwLOCALEr_LOCK
+# define GETPWUID_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSERVBYNAME_R
+# define GETSERVBYNAME_LOCK LOCALE_READ_LOCK
+# define GETSERVBYNAME_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETSERVBYNAME_LOCK gwLOCALEr_LOCK
+# define GETSERVBYNAME_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSERVBYPORT_R
+# define GETSERVBYPORT_LOCK LOCALE_READ_LOCK
+# define GETSERVBYPORT_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETSERVBYPORT_LOCK gwLOCALEr_LOCK
+# define GETSERVBYPORT_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSERVENT_R
+# define GETSERVENT_LOCK LOCALE_READ_LOCK
+# define GETSERVENT_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETSERVENT_LOCK gwLOCALEr_LOCK
+# define GETSERVENT_UNLOCK gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSPNAM_R
+# define GETSPNAM_LOCK LOCALE_READ_LOCK
+# define GETSPNAM_UNLOCK LOCALE_READ_UNLOCK
+#else
+# define GETSPNAM_LOCK gwLOCALEr_LOCK
+# define GETSPNAM_UNLOCK gwLOCALEr_UNLOCK
+#endif
+
+#define STRFMON_LOCK LC_MONETARY_LOCK
+#define STRFMON_UNLOCK LC_MONETARY_UNLOCK
+
+/* End of locale/env synchronization */
+
#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
@@ -7106,29 +7807,14 @@ cannot have changed since the precalculation.
START_EXTERN_C
+# include "perlstatic.h"
# include "inline.h"
+# include "sv_inline.h"
END_EXTERN_C
#endif
-/* Some critical sections need to lock both the locale and the environment.
- * XXX khw intends to change this to lock both mutexes, but that brings up
- * issues of potential deadlock, so should be done at the beginning of a
- * development cycle. So for now, it just locks the environment. Note that
- * many modern platforms are locale-thread-safe anyway, so locking the locale
- * mutex is a no-op anyway */
-#define ENV_LOCALE_LOCK ENV_LOCK
-#define ENV_LOCALE_UNLOCK ENV_UNLOCK
-
-/* And some critical sections care only that no one else is writing either the
- * locale nor the environment. XXX Again this is for the future. This can be
- * simulated with using COND_WAIT in thread.h */
-#define ENV_LOCALE_READ_LOCK ENV_LOCALE_LOCK
-#define ENV_LOCALE_READ_UNLOCK ENV_LOCALE_UNLOCK
-
-#define Atof my_atof
-
/*
=for apidoc_section $numeric
@@ -7165,7 +7851,7 @@ C<strtoul>.
#endif
#if !defined(Strtol) && defined(USE_64_BIT_INT) && defined(IV_IS_QUAD) && \
- (QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
+ (QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
# ifdef __hpux
# define strtoll __strtoll /* secret handshake */
# endif
@@ -7188,7 +7874,7 @@ C<strtoul>.
* (as is done for Atoul(), see below) but for backward compatibility
* we just assume atol(). */
# if defined(USE_64_BIT_INT) && defined(IV_IS_QUAD) && defined(HAS_ATOLL) && \
- (QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
+ (QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
# ifdef WIN64
# define atoll _atoi64 /* secret handshake */
# endif
@@ -7199,7 +7885,7 @@ C<strtoul>.
#endif
#if !defined(Strtoul) && defined(USE_64_BIT_INT) && defined(UV_IS_QUAD) && \
- (QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
+ (QUADKIND == QUAD_IS_LONG_LONG || QUADKIND == QUAD_IS___INT64)
# ifdef __hpux
# define strtoull __strtoull /* secret handshake */
# endif
@@ -7225,12 +7911,12 @@ C<strtoul>.
#endif
#define grok_bin(s,lp,fp,rp) \
- grok_bin_oct_hex(s, lp, fp, rp, 1, _CC_BINDIGIT, 'b')
+ grok_bin_oct_hex(s, lp, fp, rp, 1, CC_BINDIGIT_, 'b')
#define grok_oct(s,lp,fp,rp) \
(*(fp) |= PERL_SCAN_DISALLOW_PREFIX, \
- grok_bin_oct_hex(s, lp, fp, rp, 3, _CC_OCTDIGIT, '\0'))
+ grok_bin_oct_hex(s, lp, fp, rp, 3, CC_OCTDIGIT_, '\0'))
#define grok_hex(s,lp,fp,rp) \
- grok_bin_oct_hex(s, lp, fp, rp, 4, _CC_XDIGIT, 'x')
+ grok_bin_oct_hex(s, lp, fp, rp, 4, CC_XDIGIT_, 'x')
#ifndef PERL_SCRIPT_MODE
#define PERL_SCRIPT_MODE "r"
@@ -7271,19 +7957,19 @@ C<strtoul>.
# include <sys/sem.h>
# ifndef HAS_UNION_SEMUN /* Provide the union semun. */
union semun {
- int val;
- struct semid_ds *buf;
- unsigned short *array;
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
};
# endif
# ifdef USE_SEMCTL_SEMUN
# ifdef IRIX32_SEMUN_BROKEN_BY_GCC
union gccbug_semun {
- int val;
- struct semid_ds *buf;
- unsigned short *array;
- char __dummy[5];
- };
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
+ char __dummy[5];
+ };
# define semun gccbug_semun
# endif
# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun)
@@ -7308,7 +7994,9 @@ C<strtoul>.
* "DynaLoader::_guts" XS_VERSION
* XXX in the current implementation, this string is ignored.
* 2. Declare a typedef named my_cxt_t that is a structure that contains
- * all the data that needs to be interpreter-local.
+ * all the data that needs to be interpreter-local that perl controls. This
+ * doesn't include things that libc controls, such as the uselocale object
+ * in Configurations that use it.
* 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
* 4. Use the MY_CXT_INIT macro such that it is called exactly once
* (typically put in the BOOT: section).
@@ -7318,7 +8006,7 @@ C<strtoul>.
* access MY_CXT.
*/
-#if defined(PERL_IMPLICIT_CONTEXT)
+#if defined(MULTIPLICITY)
/* START_MY_CXT must appear in all extensions that define a my_cxt_t structure,
* right after the definition (i.e. at file scope). The non-threads
@@ -7331,27 +8019,27 @@ C<strtoul>.
* (We allocate my_cxtp in a Perl SV so that it will be released when
* the interpreter goes away.) */
# define MY_CXT_INIT \
- my_cxt_t *my_cxtp = \
- (my_cxt_t*)Perl_my_cxt_init(aTHX_ MY_CXT_INIT_ARG, sizeof(my_cxt_t)); \
- PERL_UNUSED_VAR(my_cxtp)
+ my_cxt_t *my_cxtp = \
+ (my_cxt_t*)Perl_my_cxt_init(aTHX_ MY_CXT_INIT_ARG, sizeof(my_cxt_t)); \
+ PERL_UNUSED_VAR(my_cxtp)
# define MY_CXT_INIT_INTERP(my_perl) \
- my_cxt_t *my_cxtp = \
- (my_cxt_t*)Perl_my_cxt_init(my_perl, MY_CXT_INIT_ARG, sizeof(my_cxt_t)); \
- PERL_UNUSED_VAR(my_cxtp)
+ my_cxt_t *my_cxtp = \
+ (my_cxt_t*)Perl_my_cxt_init(my_perl, MY_CXT_INIT_ARG, sizeof(my_cxt_t)); \
+ PERL_UNUSED_VAR(my_cxtp)
/* This declaration should be used within all functions that use the
* interpreter-local data. */
# define dMY_CXT \
- my_cxt_t *my_cxtp = (my_cxt_t *)PL_my_cxt_list[MY_CXT_INDEX]
+ my_cxt_t *my_cxtp = (my_cxt_t *)PL_my_cxt_list[MY_CXT_INDEX]
# define dMY_CXT_INTERP(my_perl) \
- my_cxt_t *my_cxtp = (my_cxt_t *)(my_perl)->Imy_cxt_list[MY_CXT_INDEX]
+ my_cxt_t *my_cxtp = (my_cxt_t *)(my_perl)->Imy_cxt_list[MY_CXT_INDEX]
/* Clones the per-interpreter data. */
# define MY_CXT_CLONE \
- my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
- 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);
+ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
+ 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);
@@ -7368,7 +8056,7 @@ C<strtoul>.
# define aMY_CXT_ aMY_CXT,
# define _aMY_CXT ,aMY_CXT
-#else /* PERL_IMPLICIT_CONTEXT */
+#else /* MULTIPLICITY */
# define START_MY_CXT static my_cxt_t my_cxt;
# define dMY_CXT dNOOP
# define dMY_CXT_INTERP(my_perl) dNOOP
@@ -7383,7 +8071,7 @@ C<strtoul>.
# define aMY_CXT_
# define _aMY_CXT
-#endif /* !defined(PERL_IMPLICIT_CONTEXT) */
+#endif /* !defined(MULTIPLICITY) */
#ifdef I_FCNTL
# include <fcntl.h>
@@ -7447,8 +8135,8 @@ EXTERN_C int flock(int fd, int op);
#endif
#define IS_NUMBER_IN_UV 0x01 /* number within UV range (maybe not
- int). value returned in pointed-
- to UV */
+ 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 or infnan */
#define IS_NUMBER_NEG 0x08 /* leading minus sign */
@@ -7540,18 +8228,18 @@ extern void moncontrol(int);
#define PERL_UNICODE_UTF8CACHEASSERT_FLAG 0x0100
#define PERL_UNICODE_STD_FLAG \
- (PERL_UNICODE_STDIN_FLAG | \
- PERL_UNICODE_STDOUT_FLAG | \
- PERL_UNICODE_STDERR_FLAG)
+ (PERL_UNICODE_STDIN_FLAG | \
+ PERL_UNICODE_STDOUT_FLAG | \
+ PERL_UNICODE_STDERR_FLAG)
#define PERL_UNICODE_INOUT_FLAG \
- (PERL_UNICODE_IN_FLAG | \
- PERL_UNICODE_OUT_FLAG)
+ (PERL_UNICODE_IN_FLAG | \
+ PERL_UNICODE_OUT_FLAG)
#define PERL_UNICODE_DEFAULT_FLAGS \
- (PERL_UNICODE_STD_FLAG | \
- PERL_UNICODE_INOUT_FLAG | \
- PERL_UNICODE_LOCALE_FLAG)
+ (PERL_UNICODE_STD_FLAG | \
+ PERL_UNICODE_INOUT_FLAG | \
+ PERL_UNICODE_LOCALE_FLAG)
#define PERL_UNICODE_ALL_FLAGS 0x01ff
@@ -7601,7 +8289,7 @@ so no C<x++>.
#endif
#define do_open(g, n, l, a, rm, rp, sf) \
- do_openn(g, n, l, a, rm, rp, sf, (SV **) NULL, 0)
+ do_openn(g, n, l, a, rm, rp, sf, (SV **) NULL, 0)
#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
# define do_exec(cmd) do_exec3(cmd,0,0)
#endif
@@ -7650,14 +8338,30 @@ Allows one ending \0
#define PERL_PV_ESCAPE_NONASCII 0x000400
#define PERL_PV_ESCAPE_FIRSTCHAR 0x000800
-#define PERL_PV_ESCAPE_ALL 0x001000
+#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
+/* Escape PV with hex, except leave NULs as octal: */
#define PERL_PV_ESCAPE_DWIM 0x010000
+/* Escape PV with all hex, including NUL. */
+#define PERL_PV_ESCAPE_DWIM_ALL_HEX 0x020000
+
+/* Do not escape word characters, alters meaning of other flags */
+#define PERL_PV_ESCAPE_NON_WC 0x040000
+#define PERL_PV_ESCAPE_TRUNC_MIDDLE 0x080000
+
+#define PERL_PV_PRETTY_QUOTEDPREFIX ( \
+ PERL_PV_PRETTY_ELLIPSES | \
+ PERL_PV_PRETTY_QUOTE | \
+ PERL_PV_ESCAPE_NONASCII | \
+ PERL_PV_ESCAPE_NON_WC | \
+ PERL_PV_ESCAPE_TRUNC_MIDDLE | \
+ 0)
+
/* used by pv_display in dump.c*/
#define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
@@ -7967,8 +8671,25 @@ GCC_DIAG_RESTORE_DECL;
#else
+/* The declarations here need to match the initializations done above,
+ since a mismatch across compilation units causes undefined
+ behavior. It also prevents warnings from LTO builds.
+*/
+# if !defined(USE_QUADMATH) && \
+ (NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLINFBYTES) || \
+ NVSIZE == DOUBLESIZE && defined(DOUBLEINFBYTES))
+INFNAN_U8_NV_DECL PL_inf;
+# else
INFNAN_NV_U8_DECL PL_inf;
+# endif
+
+# if !defined(USE_QUADMATH) && \
+ (NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLNANBYTES) || \
+ NVSIZE == DOUBLESIZE && defined(DOUBLENANBYTES))
+INFNAN_U8_NV_DECL PL_nan;
+# else
INFNAN_NV_U8_DECL PL_nan;
+# endif
#endif
@@ -8343,6 +9064,69 @@ END_EXTERN_C
#endif /* DOUBLE_HAS_NAN */
+/* these are used to faciliate the env var PERL_RAND_SEED,
+ * which allows consistent behavior from code that calls
+ * srand() with no arguments, either explicitly or implicitly.
+ */
+#define PERL_SRAND_OVERRIDE_NEXT() PERL_XORSHIFT32_A(PL_srand_override_next);
+
+#define PERL_SRAND_OVERRIDE_NEXT_INIT() STMT_START { \
+ PL_srand_override = PL_srand_override_next; \
+ PERL_SRAND_OVERRIDE_NEXT(); \
+} STMT_END
+
+#define PERL_SRAND_OVERRIDE_GET(into) STMT_START { \
+ into= PL_srand_override; \
+ PERL_SRAND_OVERRIDE_NEXT_INIT(); \
+} STMT_END
+
+#define PERL_SRAND_OVERRIDE_NEXT_CHILD() STMT_START { \
+ PERL_XORSHIFT32_B(PL_srand_override_next); \
+ PERL_SRAND_OVERRIDE_NEXT_INIT(); \
+} STMT_END
+
+#define PERL_SRAND_OVERRIDE_NEXT_PARENT() \
+ PERL_SRAND_OVERRIDE_NEXT()
+
+/* in something like
+ *
+ * perl -le'sub f { eval "BEGIN{ f() }" }'
+ *
+ * Each iteration chews up 8 stacks frames, and we will eventually SEGV
+ * due to C stack overflow.
+ *
+ * This define provides a maximum limit to prevent the SEGV. Such code is
+ * unusual, so it unlikely we need a very large number here.
+ */
+#ifndef PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT
+#define PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT 1000
+#endif
+/* ${^MAX_NESTED_EVAL_BEGIN_BLOCKS} */
+#define PERL_VAR_MAX_NESTED_EVAL_BEGIN_BLOCKS "\015AX_NESTED_EVAL_BEGIN_BLOCKS"
+
+/* Defines like this make it easier to do porting/diag.t. They are no-
+ * ops that return their argument which can be used to hint to diag.t
+ * that a string is actually an error message. By putting the category
+ * information into the macro name it considerably simplifies extended
+ * diag.t to support these cases. Feel free to add more.
+ *
+ * While it seems tempting to try to convert all of our diagnostics to
+ * this format, it would miss part of the point of diag.t in that it
+ * detects NEW diagnostics, which would not necessarily use these
+ * macros. The macros instead exist where we know we have an error
+ * message that isnt being picked up by diag.t because it is declared
+ * as a string independently of the function it is fed to, something
+ * diag.t can never handle right without help.
+ */
+#define PERL_DIAG_STR_(x) ("" x "")
+#define PERL_DIAG_WARN_SYNTAX(x) PERL_DIAG_STR_(x)
+#define PERL_DIAG_DIE_SYNTAX(x) PERL_DIAG_STR_(x)
+
+#ifndef PERL_STOP_PARSING_AFTER_N_ERRORS
+#define PERL_STOP_PARSING_AFTER_N_ERRORS 10
+#endif
+
+#define PERL_PARSE_ERROR_COUNT(f) (f)
/*
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl538.lib b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl538.lib
new file mode 100755
index 0000000000..b9173dbed8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl538.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h
index b9cd60947e..627a63a817 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h
@@ -77,8 +77,6 @@
#if defined(WIN32)
# define INCPUSH_PRIVLIB_EXP s = PerlEnv_lib_path(PERL_FS_VERSION, &len); \
if (s) incpush_use_sep(s, len, INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOCATE);
-#elif defined(NETWARE)
-# define INCPUSH_PRIVLIB_EXP S_incpush_use_sep(aTHX_ PRIVLIB_EXP, 0, INCPUSH_CAN_RELOCATE);
#else
# define INCPUSH_PRIVLIB_EXP S_incpush_use_sep(aTHX_ STR_WITH_LEN(PRIVLIB_EXP), INCPUSH_CAN_RELOCATE);
#endif
@@ -91,18 +89,9 @@
/* submacros for INCPUSH_PERL5LIB */
-#if defined(PERL_USE_SAFE_PUTENV) && ! defined(HAS_UNSETENV)
-# define _INCPUSH_PERL5LIB_IF if (perl5lib && *perl5lib != '\0')
-#else
-# define _INCPUSH_PERL5LIB_IF if (perl5lib)
-#endif
+#define _INCPUSH_PERL5LIB_IF if (perl5lib && *perl5lib != '\0')
#ifndef VMS
-/*
- * It isn't possible to delete an environment variable with
- * PERL_USE_SAFE_PUTENV set unless unsetenv() is also available, so in that
- * case we treat PERL5LIB as undefined if it has a zero-length value.
- */
# define _INCPUSH_PERL5LIB_ADD _INCPUSH_PERL5LIB_IF incpush_use_sep(perl5lib, 0, INCPUSH_ADD_OLD_VERS|INCPUSH_NOT_BASEDIR);
#else
/* VMS */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h
index 0d66a68371..d93ee199b7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h
@@ -13,7 +13,7 @@
/*
* This file used to declare accessor functions for Perl variables
* when PERL_GLOBAL_STRUCT was enabled, but that no longer exists.
- * This file is kept for backwards compatiblity with XS code that
+ * This file is kept for backwards compatibility with XS code that
* might include it.
*/
#ifndef __perlapi_h__
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h
index 5ce496590f..e6ef46f809 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h
@@ -108,7 +108,7 @@ public:
};
/* IPerlMemParse */
- /* Assume something else is using locks to mangaging serialize
+ /* Assume something else is using locks to manage serialization
on a batch basis
*/
inline void GetLockParse(void) { m_pVMemParse->GetLock(); };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h
index f444fa86d0..96fc6f51cc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h
@@ -32,7 +32,7 @@
# error "stdio is no longer supported as the default base layer -- use perlio."
#endif
-/* -------------------- End of Configure controls ---------------------------- */
+/*-------------------- End of Configure controls ---------------------------*/
/*
* Although we may not want stdio to be used including <stdio.h> here
@@ -63,6 +63,17 @@ typedef PerlIOl *PerlIO;
#define PerlIO PerlIO
#define PERLIO_LAYERS 1
+/*
+=for apidoc_section $io
+=for apidoc Amu||PERLIO_FUNCS_DECL|PerlIO * ftab
+Declare C<ftab> to be a PerlIO function table, that is, of type
+C<PerlIO_funcs>.
+
+=for apidoc Ay|PerlIO_funcs *|PERLIO_FUNCS_CAST|PerlIO * func
+Cast the pointer C<func> to be of type S<C<PerlIO_funcs *>>.
+
+=cut
+*/
#define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs
#define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h
index 691e09533f..e247ad60dd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h
@@ -114,9 +114,6 @@ EXTCONST PerlIO_funcs PerlIO_utf8;
EXTCONST PerlIO_funcs PerlIO_byte;
EXTCONST PerlIO_funcs PerlIO_raw;
EXTCONST PerlIO_funcs PerlIO_pending;
-#ifdef WIN32
-EXTCONST PerlIO_funcs PerlIO_win32;
-#endif
PERL_CALLCONV PerlIO *PerlIO_allocate(pTHX);
PERL_CALLCONV SV *PerlIO_arg_fetch(PerlIO_list_t *av, IV n);
#define PerlIOArg PerlIO_arg_fetch(layers,n)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlstatic.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlstatic.h
new file mode 100755
index 0000000000..a698de68bf
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlstatic.h
@@ -0,0 +1,33 @@
+/* perlstatic.h
+ *
+ * 'I don't know half of you half as well as I should like; and I like less
+ * than half of you half as well as you deserve.'
+ *
+ * Copyright (C) 2020 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.
+ *
+ * This file is a home for static functions that we don't consider suitable for
+ * inlining, but for which giving the compiler full knowledge of may be
+ * advantageous. Functions that have potential tail call optimizations are a
+ * likely component.
+
+ */
+
+/* saves machine code for a common noreturn idiom typically used in Newx*() */
+GCC_DIAG_IGNORE_DECL(-Wunused-function);
+
+STATIC void
+Perl_croak_memory_wrap(void)
+{
+ Perl_croak_nocontext("%s",PL_memory_wrap);
+}
+
+GCC_DIAG_RESTORE_DECL;
+
+
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h
index c4a08e038b..02085fea46 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h
@@ -48,10 +48,6 @@ PERLVAR(G, thr_key, perl_key) /* key to retrieve per-thread struct */
/* XXX does anyone even use this? */
PERLVARI(G, do_undump, bool, FALSE) /* -u or dump seen? */
-#ifndef PERL_USE_SAFE_PUTENV
-PERLVARI(G, use_safe_putenv, bool, TRUE)
-#endif
-
#if defined(FAKE_PERSISTENT_SIGNAL_HANDLERS)||defined(FAKE_DEFAULT_SIGNAL_HANDLERS)
PERLVARI(G, sig_handlers_initted, int, 0)
#endif
@@ -106,13 +102,10 @@ PERLVARI(G, mmap_page_size, IV, 0)
PERLVAR(G, hints_mutex, perl_mutex) /* Mutex for refcounted he refcounting */
PERLVAR(G, env_mutex, perl_RnW1_mutex_t) /* Mutex for accessing ENV */
PERLVAR(G, locale_mutex, perl_mutex) /* Mutex related to locale handling */
-# ifndef USE_THREAD_SAFE_LOCALE
-PERLVAR(G, lc_numeric_mutex, perl_mutex) /* Mutex for switching LC_NUMERIC */
-# endif
#endif
#ifdef USE_POSIX_2008_LOCALE
-PERLVAR(G, C_locale_obj, locale_t)
+PERLVARI(G, C_locale_obj, locale_t, NULL)
#endif
PERLVARI(G, watch_pvx, char *, NULL)
@@ -173,9 +166,10 @@ PERLVAR(G, check_mutex, perl_mutex) /* Mutex for PL_check */
/* allocate a unique index to every module that calls MY_CXT_INIT */
-#ifdef PERL_IMPLICIT_CONTEXT
+#ifdef MULTIPLICITY
# ifdef USE_ITHREADS
PERLVAR(G, my_ctx_mutex, perl_mutex)
+PERLVARI(G, veto_switch_non_tTHX_context, int, FALSE)
# endif
PERLVARI(G, my_cxt_index, int, 0)
#endif
@@ -241,10 +235,107 @@ Instead, use the function L</wrap_keyword_plugin>.
*/
#if defined(USE_ITHREADS)
-PERLVAR(G, keyword_plugin_mutex, perl_mutex) /* Mutex for PL_keyword_plugin */
+PERLVAR(G, keyword_plugin_mutex, perl_mutex) /* Mutex for PL_keyword_plugin and PL_infix_plugin */
#endif
PERLVARI(G, keyword_plugin, Perl_keyword_plugin_t, Perl_keyword_plugin_standard)
+/*
+=for apidoc AmnUx|Perl_infix_plugin_t|PL_infix_plugin
+
+B<NOTE:> This API exists entirely for the purpose of making the CPAN module
+C<XS::Parse::Infix> work. It is not expected that additional modules will make
+use of it; rather, that they should use C<XS::Parse::Infix> to provide parsing
+of new infix operators.
+
+Function pointer, pointing at a function used to handle extended infix
+operators. The function should be declared as
+
+ int infix_plugin_function(pTHX_
+ char *opname, STRLEN oplen,
+ struct Perl_custom_infix **infix_ptr)
+
+The function is called from the tokenizer whenever a possible infix operator
+is seen. C<opname> points to the operator name in the parser's input buffer,
+and C<oplen> gives the I<maximum> number of bytes of it that should be
+consumed; it is not null-terminated. The function is expected to examine the
+operator name and possibly other state such as L<%^H|perlvar/%^H>, to
+determine whether it wants to handle the operator name.
+
+As compared to the single stage of C<PL_keyword_plugin>, parsing of additional
+infix operators occurs in three separate stages. This is because of the more
+complex interactions it has with the parser, to ensure that operator
+precedence rules work correctly. These stages are co-ordinated by the use of
+an additional information structure.
+
+If the function wants to handle the infix operator, it must set the variable
+pointed to by C<infix_ptr> to the address of a structure that provides this
+additional information about the subsequent parsing stages. If it does not,
+it should make a call to the next function in the chain.
+
+This structure has the following definition:
+
+ struct Perl_custom_infix {
+ enum Perl_custom_infix_precedence prec;
+ void (*parse)(pTHX_ SV **opdata,
+ struct Perl_custom_infix *);
+ OP *(*build_op)(pTHX_ SV **opdata, OP *lhs, OP *rhs,
+ struct Perl_custom_infix *);
+ };
+
+The function must then return an integer giving the number of bytes consumed
+by the name of this operator. In the case of an operator whose name is
+composed of identifier characters, this must be equal to C<oplen>. In the case
+of an operator named by non-identifier characters, this is permitted to be
+shorter than C<oplen>, and any additional characters after it will not be
+claimed by the infix operator but instead will be consumed by the tokenizer
+and parser as normal.
+
+If the optional C<parse> function is provided, it is called immediately by the
+parser to let the operator's definition consume any additional syntax from the
+source code. This should I<not> be used for normal operand parsing, but it may
+be useful when implementing things like parametric operators or meta-operators
+that consume more syntax themselves. This function may use the variable
+pointed to by C<opdata> to provide an SV containing additional data to be
+passed into the C<build_op> function later on.
+
+The information structure gives the operator precedence level in the C<prec>
+field. This is used to tell the parser how much of the surrounding syntax
+before and after should be considered as operands to the operator.
+
+The tokenizer and parser will then continue to operate as normal until enough
+additional input has been parsed to form both the left- and right-hand side
+operands to the operator, according to the precedence level. At this point the
+C<build_op> function is called, being passed the left- and right-hand operands
+as optree fragments. It is expected to combine them into the resulting optree
+fragment, which it should return.
+
+After the C<build_op> function has returned, if the variable pointed to by
+C<opdata> was set to a non-C<NULL> value, it will then be destroyed by calling
+C<SvREFCNT_dec()>.
+
+For thread safety, modules should not set this variable directly.
+Instead, use the function L</wrap_infix_plugin>.
+
+However, that all said, the introductory note above still applies. This
+variable is provided in core perl only for the benefit of the
+C<XS::Parse::Infix> module. That module acts as a central registry for infix
+operators, automatically handling things like deparse support and
+discovery/reflection, and these abilities only work because it knows all the
+registered operators. Other modules should not use this interpreter variable
+directly to implement them because then those central features would no longer
+work properly.
+
+Furthermore, it is likely that this (experimental) API will be replaced in a
+future Perl version by a more complete API that fully implements the central
+registry and other semantics currently provided by C<XS::Parse::Infix>, once
+the module has had sufficient experimental testing time. This current
+mechanism exists only as an interim measure to get to that stage.
+
+=cut
+*/
+
+PERLVARI(G, infix_plugin, Perl_infix_plugin_t, Perl_infix_plugin_standard)
+
PERLVARI(G, op_sequence, HV *, NULL) /* dump.c */
PERLVARI(G, op_seq, UV, 0) /* dump.c */
@@ -264,12 +355,13 @@ PERLVAR(G, malloc_mutex, perl_mutex) /* Mutex for malloc */
#endif
PERLVARI(G, hash_seed_set, bool, FALSE) /* perl.c */
-PERLVARA(G, hash_seed_w, PERL_HASH_SEED_WORDS, __PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
+PERLVARA(G, hash_seed_w, PERL_HASH_SEED_WORDS, PVT__PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
#if defined(PERL_HASH_STATE_BYTES)
-PERLVARA(G, hash_state_w, PERL_HASH_STATE_WORDS, __PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
+PERLVARA(G, hash_state_w, PERL_HASH_STATE_WORDS, PVT__PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
#endif
#if defined(PERL_USE_SINGLE_CHAR_HASH_CACHE)
-PERLVARA(G, hash_chars, (1+256) * sizeof(U32), unsigned char) /* perl.c and hv.h */
+#define PERL_SINGLE_CHAR_HASH_CACHE_ELEMS ((1+256) * sizeof(U32))
+PERLVARA(G, hash_chars, PERL_SINGLE_CHAR_HASH_CACHE_ELEMS, unsigned char) /* perl.c and hv.h */
#endif
/* The path separator can vary depending on whether we're running under DCL or
@@ -305,3 +397,6 @@ PERLVARI(G, strategy_socket, int, 0) /* doio.c */
PERLVARI(G, strategy_accept, int, 0) /* doio.c */
PERLVARI(G, strategy_pipe, int, 0) /* doio.c */
PERLVARI(G, strategy_socketpair, int, 0) /* doio.c */
+
+PERLVARI(G, my_environ, char **, NULL)
+PERLVARI(G, origenviron, char **, NULL)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h
index 545cf3f6b0..f2f378affe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by regen_perly.pl from perly.y.
Any changes made here will be lost!
@@ -79,93 +79,111 @@ extern int yydebug;
PERLY_SLASH = 278,
PERLY_SNAIL = 279,
PERLY_STAR = 280,
- BAREWORD = 281,
- METHOD = 282,
- FUNCMETH = 283,
- THING = 284,
- PMFUNC = 285,
- PRIVATEREF = 286,
- QWLIST = 287,
- FUNC0OP = 288,
- FUNC0SUB = 289,
- UNIOPSUB = 290,
- LSTOPSUB = 291,
- PLUGEXPR = 292,
- PLUGSTMT = 293,
- LABEL = 294,
- FORMAT = 295,
- SUB = 296,
- SIGSUB = 297,
- ANONSUB = 298,
- ANON_SIGSUB = 299,
- PACKAGE = 300,
- USE = 301,
- WHILE = 302,
- UNTIL = 303,
- IF = 304,
- UNLESS = 305,
- ELSE = 306,
- ELSIF = 307,
- CONTINUE = 308,
- FOR = 309,
- GIVEN = 310,
- WHEN = 311,
- DEFAULT = 312,
- TRY = 313,
- CATCH = 314,
- LOOPEX = 315,
- DOTDOT = 316,
- YADAYADA = 317,
- FUNC0 = 318,
- FUNC1 = 319,
- FUNC = 320,
- UNIOP = 321,
- LSTOP = 322,
- MULOP = 323,
- ADDOP = 324,
- DOLSHARP = 325,
- DO = 326,
- HASHBRACK = 327,
- NOAMP = 328,
- LOCAL = 329,
- MY = 330,
- REQUIRE = 331,
- COLONATTR = 332,
- FORMLBRACK = 333,
- FORMRBRACK = 334,
- SUBLEXSTART = 335,
- SUBLEXEND = 336,
- PREC_LOW = 337,
- OROP = 338,
- ANDOP = 339,
- NOTOP = 340,
- ASSIGNOP = 341,
- PERLY_QUESTION_MARK = 342,
- PERLY_COLON = 343,
- OROR = 344,
- DORDOR = 345,
- ANDAND = 346,
- BITOROP = 347,
- BITANDOP = 348,
- CHEQOP = 349,
- NCEQOP = 350,
- CHRELOP = 351,
- NCRELOP = 352,
- SHIFTOP = 353,
- MATCHOP = 354,
- PERLY_EXCLAMATION_MARK = 355,
- PERLY_TILDE = 356,
- UMINUS = 357,
- REFGEN = 358,
- POWOP = 359,
- PREINC = 360,
- PREDEC = 361,
- POSTINC = 362,
- POSTDEC = 363,
- POSTJOIN = 364,
- ARROW = 365,
- PERLY_PAREN_CLOSE = 366,
- PERLY_PAREN_OPEN = 367
+ KW_FORMAT = 281,
+ KW_PACKAGE = 282,
+ KW_CLASS = 283,
+ KW_LOCAL = 284,
+ KW_MY = 285,
+ KW_FIELD = 286,
+ KW_IF = 287,
+ KW_ELSE = 288,
+ KW_ELSIF = 289,
+ KW_UNLESS = 290,
+ KW_FOR = 291,
+ KW_UNTIL = 292,
+ KW_WHILE = 293,
+ KW_CONTINUE = 294,
+ KW_GIVEN = 295,
+ KW_WHEN = 296,
+ KW_DEFAULT = 297,
+ KW_TRY = 298,
+ KW_CATCH = 299,
+ KW_FINALLY = 300,
+ KW_DEFER = 301,
+ KW_REQUIRE = 302,
+ KW_DO = 303,
+ KW_USE_or_NO = 304,
+ KW_SUB_named = 305,
+ KW_SUB_named_sig = 306,
+ KW_SUB_anon = 307,
+ KW_SUB_anon_sig = 308,
+ KW_METHOD_named = 309,
+ KW_METHOD_anon = 310,
+ BAREWORD = 311,
+ METHCALL0 = 312,
+ METHCALL = 313,
+ THING = 314,
+ PMFUNC = 315,
+ PRIVATEREF = 316,
+ QWLIST = 317,
+ FUNC0OP = 318,
+ FUNC0SUB = 319,
+ UNIOPSUB = 320,
+ LSTOPSUB = 321,
+ PLUGEXPR = 322,
+ PLUGSTMT = 323,
+ LABEL = 324,
+ LOOPEX = 325,
+ DOTDOT = 326,
+ YADAYADA = 327,
+ FUNC0 = 328,
+ FUNC1 = 329,
+ FUNC = 330,
+ UNIOP = 331,
+ LSTOP = 332,
+ POWOP = 333,
+ MULOP = 334,
+ ADDOP = 335,
+ DOLSHARP = 336,
+ HASHBRACK = 337,
+ NOAMP = 338,
+ COLONATTR = 339,
+ FORMLBRACK = 340,
+ FORMRBRACK = 341,
+ SUBLEXSTART = 342,
+ SUBLEXEND = 343,
+ PHASER = 344,
+ PREC_LOW = 345,
+ PLUGIN_LOW_OP = 346,
+ OROP = 347,
+ PLUGIN_LOGICAL_OR_LOW_OP = 348,
+ ANDOP = 349,
+ PLUGIN_LOGICAL_AND_LOW_OP = 350,
+ NOTOP = 351,
+ ASSIGNOP = 352,
+ PLUGIN_ASSIGN_OP = 353,
+ PERLY_QUESTION_MARK = 354,
+ PERLY_COLON = 355,
+ OROR = 356,
+ DORDOR = 357,
+ PLUGIN_LOGICAL_OR_OP = 358,
+ ANDAND = 359,
+ PLUGIN_LOGICAL_AND_OP = 360,
+ BITOROP = 361,
+ BITANDOP = 362,
+ CHEQOP = 363,
+ NCEQOP = 364,
+ CHRELOP = 365,
+ NCRELOP = 366,
+ PLUGIN_REL_OP = 367,
+ SHIFTOP = 368,
+ PLUGIN_ADD_OP = 369,
+ PLUGIN_MUL_OP = 370,
+ MATCHOP = 371,
+ PERLY_EXCLAMATION_MARK = 372,
+ PERLY_TILDE = 373,
+ UMINUS = 374,
+ REFGEN = 375,
+ PLUGIN_POW_OP = 376,
+ PREINC = 377,
+ PREDEC = 378,
+ POSTINC = 379,
+ POSTDEC = 380,
+ POSTJOIN = 381,
+ PLUGIN_HIGH_OP = 382,
+ ARROW = 383,
+ PERLY_PAREN_CLOSE = 384,
+ PERLY_PAREN_OPEN = 385
};
#endif
@@ -177,10 +195,10 @@ S_is_opval_token(int type) {
case BAREWORD:
case FUNC0OP:
case FUNC0SUB:
- case FUNCMETH:
case LABEL:
case LSTOPSUB:
- case METHOD:
+ case METHCALL:
+ case METHCALL0:
case PLUGEXPR:
case PLUGSTMT:
case PMFUNC:
@@ -201,7 +219,7 @@ union YYSTYPE
I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
must always be 1st union member) */
- char *pval;
+ void *pval;
OP *opval;
GV *gvval;
@@ -218,6 +236,6 @@ int yyparse (void);
/* Generated from:
- * 427b422b0ce1154d834dc461973a3254729575694f98ab600032f67ccab7b9e5 perly.y
+ * 0a5fcd15cf0b7afb57ade6ceaf68037a38dd194acd9d60d3e4ad99c15233af75 perly.y
* acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h
index cea956db40..65d07ce4d9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h
@@ -24,28 +24,28 @@ Stack marker variable for the XSUB. See C<L</dMARK>>.
Opening bracket for arguments on a callback. See C<L</PUTBACK>> and
L<perlcall>.
-=for apidoc Amns||dSP
+=for apidoc Amn;||dSP
Declares a local copy of perl's stack pointer for the XSUB, available via
the C<SP> macro. See C<L</SP>>.
-=for apidoc ms||djSP
+=for apidoc m;||djSP
Declare Just C<SP>. This is actually identical to C<dSP>, and declares
a local copy of perl's stack pointer, available via the C<SP> macro.
See C<L<perlapi/SP>>. (Available for backward source code compatibility with
the old (Perl 5.005) thread model.)
-=for apidoc Amns||dMARK
+=for apidoc Amn;||dMARK
Declare a stack marker variable, C<mark>, for the XSUB. See C<L</MARK>> and
C<L</dORIGMARK>>.
-=for apidoc Amns||dORIGMARK
+=for apidoc Amn;||dORIGMARK
Saves the original stack mark for the XSUB. See C<L</ORIGMARK>>.
=for apidoc AmnU||ORIGMARK
The original stack mark for the XSUB. See C<L</dORIGMARK>>.
-=for apidoc Amns||SPAGAIN
+=for apidoc Amn;||SPAGAIN
Refetch the stack pointer. Used after a callback. See L<perlcall>.
=cut */
@@ -55,7 +55,7 @@ Refetch the stack pointer. Used after a callback. See L<perlcall>.
#define MARK mark
/*
-=for apidoc Amns||TARG
+=for apidoc Amn;||TARG
C<TARG> is short for "target". It is an entry in the pad that an OPs
C<op_targ> refers to. It is scratchpad space, often used as a return
@@ -103,8 +103,8 @@ value for the OP, but some use it for other purposes.
#define GETTARGET targ = PAD_SV(PL_op->op_targ)
/*
-=for apidoc Amns||dTARGET
-Declare that this function uses C<TARG>
+=for apidoc Amn;||dTARGET
+Declare that this function uses C<TARG>, and initializes it
=cut
*/
@@ -119,7 +119,7 @@ Declare that this function uses C<TARG>
#define DIE return Perl_die
/*
-=for apidoc Amns||PUTBACK
+=for apidoc Amn;||PUTBACK
Closing bracket for XSUB arguments. This is usually handled by C<xsubpp>.
See C<L</PUSHMARK>> and L<perlcall> for other uses.
@@ -201,6 +201,10 @@ C<TARG>, so C<dTARGET> or C<dXSTARG> should be called to declare it. Do not
call multiple C<TARG>-oriented macros to return lists from XSUB's - see
C<L</mPUSHp>> instead. See also C<L</XPUSHp>> and C<L</mXPUSHp>>.
+=for apidoc Am|void|PUSHpvs|"literal string"
+A variation on C<PUSHp> that takes a literal string and calculates its size
+directly.
+
=for apidoc Am|void|PUSHn|NV nv
Push a double onto the stack. The stack must have room for this element.
Handles 'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be
@@ -234,6 +238,10 @@ C<dTARGET> or C<dXSTARG> should be called to declare it. Do not call
multiple C<TARG>-oriented macros to return lists from XSUB's - see
C<L</mXPUSHp>> instead. See also C<L</PUSHp>> and C<L</mPUSHp>>.
+=for apidoc Am|void|XPUSHpvs|"literal string"
+A variation on C<XPUSHp> that takes a literal string and calculates its size
+directly.
+
=for apidoc Am|void|XPUSHn|NV nv
Push a double onto the stack, extending the stack if necessary. Handles
'set' magic. Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be called to
@@ -270,6 +278,10 @@ Push a string onto the stack. The stack must have room for this element.
The C<len> indicates the length of the string. Does not use C<TARG>.
See also C<L</PUSHp>>, C<L</mXPUSHp>> and C<L</XPUSHp>>.
+=for apidoc Am|void|mPUSHpvs|"literal string"
+A variation on C<mPUSHp> that takes a literal string and calculates its size
+directly.
+
=for apidoc Am|void|mPUSHn|NV nv
Push a double onto the stack. The stack must have room for this element.
Does not use C<TARG>. See also C<L</PUSHn>>, C<L</mXPUSHn>> and C<L</XPUSHn>>.
@@ -297,6 +309,10 @@ Push a string onto the stack, extending the stack if necessary. The C<len>
indicates the length of the string. Does not use C<TARG>. See also
C<L</XPUSHp>>, C<mPUSHp> and C<PUSHp>.
+=for apidoc Am|void|mXPUSHpvs|"literal string"
+A variation on C<mXPUSHp> that takes a literal string and calculates its size
+directly.
+
=for apidoc Am|void|mXPUSHn|NV nv
Push a double onto the stack, extending the stack if necessary.
Does not use C<TARG>. See also C<L</XPUSHn>>, C<L</mPUSHn>> and C<L</PUSHn>>.
@@ -316,11 +332,11 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
* requested to be extended (which is likely to be less than PL_stack_max)
*/
#if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
-# define EXTEND_HWM_SET(p, n) \
- STMT_START { \
- SSize_t ix = (p) - PL_stack_base + (n); \
- if (ix > PL_curstackinfo->si_stack_hwm) \
- PL_curstackinfo->si_stack_hwm = ix; \
+# define EXTEND_HWM_SET(p, n) \
+ STMT_START { \
+ SSize_t extend_hwm_set_ix = (p) - PL_stack_base + (n); \
+ if (extend_hwm_set_ix > PL_curstackinfo->si_stack_hwm) \
+ PL_curstackinfo->si_stack_hwm = extend_hwm_set_ix; \
} STMT_END
#else
# define EXTEND_HWM_SET(p, n) NOOP
@@ -382,7 +398,7 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
# define EXTEND_SKIP(p, n) STMT_START { \
EXTEND_HWM_SET(p, n); \
assert(!_EXTEND_NEEDS_GROW(p,n)); \
- } STMT_END
+ } STMT_END
# define EXTEND(p,n) STMT_START { \
@@ -390,7 +406,8 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
if (UNLIKELY(_EXTEND_NEEDS_GROW(p,n))) { \
sp = stack_grow(sp,p,_EXTEND_SAFE_N(n)); \
PERL_UNUSED_VAR(sp); \
- } } STMT_END
+ } \
+ } STMT_END
/* Same thing, but update mark register too. */
# define MEXTEND(p,n) STMT_START { \
EXTEND_HWM_SET(p, n); \
@@ -399,7 +416,8 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
sp = stack_grow(sp,p,_EXTEND_SAFE_N(n)); \
mark = PL_stack_base + markoff; \
PERL_UNUSED_VAR(sp); \
- } } STMT_END
+ } \
+ } STMT_END
#endif
@@ -472,6 +490,7 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
#define PUSHs(s) (*++sp = (s))
#define PUSHTARG STMT_START { SvSETMAGIC(TARG); PUSHs(TARG); } STMT_END
#define PUSHp(p,l) STMT_START { sv_setpvn(TARG, (p), (l)); PUSHTARG; } STMT_END
+#define PUSHpvs(s) PUSHp("" s "", sizeof(s)-1)
#define PUSHn(n) STMT_START { TARGn(n,1); PUSHs(TARG); } STMT_END
#define PUSHi(i) STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
#define PUSHu(u) STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
@@ -479,6 +498,7 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
#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 XPUSHpvs(s) XPUSHp("" s "", sizeof(s)-1)
#define XPUSHn(n) STMT_START { TARGn(n,1); XPUSHs(TARG); } STMT_END
#define XPUSHi(i) STMT_START { TARGi(i,1); XPUSHs(TARG); } STMT_END
#define XPUSHu(u) STMT_START { TARGu(u,1); XPUSHs(TARG); } STMT_END
@@ -487,6 +507,7 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
#define mPUSHs(s) PUSHs(sv_2mortal(s))
#define PUSHmortal PUSHs(sv_newmortal())
#define mPUSHp(p,l) PUSHs(newSVpvn_flags((p), (l), SVs_TEMP))
+#define mPUSHpvs(s) mPUSHp("" s "", sizeof(s)-1)
#define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n))
#define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i))
#define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u))
@@ -494,6 +515,7 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
#define mXPUSHs(s) XPUSHs(sv_2mortal(s))
#define XPUSHmortal XPUSHs(sv_newmortal())
#define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); mPUSHp((p), (l)); } STMT_END
+#define mXPUSHpvs(s) mXPUSHp("" s "", sizeof(s)-1)
#define mXPUSHn(n) STMT_START { EXTEND(sp,1); mPUSHn(n); } STMT_END
#define mXPUSHi(i) STMT_START { EXTEND(sp,1); mPUSHi(i); } STMT_END
#define mXPUSHu(u) STMT_START { EXTEND(sp,1); mPUSHu(u); } STMT_END
@@ -612,7 +634,7 @@ Does not use C<TARG>. See also C<L</XPUSHu>>, C<L</mPUSHu>> and C<L</PUSHu>>.
if (gimme == G_VOID) { \
NOOP; \
} \
- else if (gimme == G_ARRAY) { \
+ else if (gimme == G_LIST) { \
SSize_t i; \
SSize_t len; \
assert(SvTYPE(tmpsv) == SVt_PVAV); \
@@ -682,7 +704,7 @@ True if this op will be the return value of an lvalue subroutine
/* Used in various places that need to dereference a glob or globref */
# define MAYBE_DEREF_GV_flags(sv,phlags) \
( \
- (void)(phlags & SV_GMAGIC && (SvGETMAGIC(sv),0)), \
+ (void)(((phlags) & SV_GMAGIC) && (SvGETMAGIC(sv),0)), \
isGV_with_GP(sv) \
? (GV *)(sv) \
: SvROK(sv) && SvTYPE(SvRV(sv)) <= SVt_PVLV && \
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h
index a9bda73e3c..a3a8f45518 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h
@@ -1,307 +1,324 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by opcode.pl from its data.
Any changes made here will be lost!
*/
-PERL_CALLCONV OP *Perl_do_kv(pTHX);
-PERL_CALLCONV OP *Perl_pp_aassign(pTHX);
-PERL_CALLCONV OP *Perl_pp_abs(pTHX);
-PERL_CALLCONV OP *Perl_pp_accept(pTHX);
-PERL_CALLCONV OP *Perl_pp_add(pTHX);
-PERL_CALLCONV OP *Perl_pp_aeach(pTHX);
-PERL_CALLCONV OP *Perl_pp_aelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_aelemfast(pTHX);
-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_argcheck(pTHX);
-PERL_CALLCONV OP *Perl_pp_argdefelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_argelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_aslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_atan2(pTHX);
-PERL_CALLCONV OP *Perl_pp_av2arylen(pTHX);
-PERL_CALLCONV OP *Perl_pp_avhvswitch(pTHX);
-PERL_CALLCONV OP *Perl_pp_backtick(pTHX);
-PERL_CALLCONV OP *Perl_pp_bind(pTHX);
-PERL_CALLCONV OP *Perl_pp_binmode(pTHX);
-PERL_CALLCONV OP *Perl_pp_bit_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_bit_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_bless(pTHX);
-PERL_CALLCONV OP *Perl_pp_break(pTHX);
-PERL_CALLCONV OP *Perl_pp_caller(pTHX);
-PERL_CALLCONV OP *Perl_pp_catch(pTHX);
-PERL_CALLCONV OP *Perl_pp_chdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_chop(pTHX);
-PERL_CALLCONV OP *Perl_pp_chown(pTHX);
-PERL_CALLCONV OP *Perl_pp_chr(pTHX);
-PERL_CALLCONV OP *Perl_pp_chroot(pTHX);
-PERL_CALLCONV OP *Perl_pp_clonecv(pTHX);
-PERL_CALLCONV OP *Perl_pp_close(pTHX);
-PERL_CALLCONV OP *Perl_pp_closedir(pTHX);
-PERL_CALLCONV OP *Perl_pp_cmpchain_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_cmpchain_dup(pTHX);
-PERL_CALLCONV OP *Perl_pp_complement(pTHX);
-PERL_CALLCONV OP *Perl_pp_concat(pTHX);
-PERL_CALLCONV OP *Perl_pp_cond_expr(pTHX);
-PERL_CALLCONV OP *Perl_pp_const(pTHX);
-PERL_CALLCONV OP *Perl_pp_continue(pTHX);
-PERL_CALLCONV OP *Perl_pp_coreargs(pTHX);
-PERL_CALLCONV OP *Perl_pp_crypt(pTHX);
-PERL_CALLCONV OP *Perl_pp_dbmopen(pTHX);
-PERL_CALLCONV OP *Perl_pp_dbstate(pTHX);
-PERL_CALLCONV OP *Perl_pp_defined(pTHX);
-PERL_CALLCONV OP *Perl_pp_delete(pTHX);
-PERL_CALLCONV OP *Perl_pp_die(pTHX);
-PERL_CALLCONV OP *Perl_pp_divide(pTHX);
-PERL_CALLCONV OP *Perl_pp_each(pTHX);
-PERL_CALLCONV OP *Perl_pp_ehostent(pTHX);
-PERL_CALLCONV OP *Perl_pp_enter(pTHX);
-PERL_CALLCONV OP *Perl_pp_entereval(pTHX);
-PERL_CALLCONV OP *Perl_pp_entergiven(pTHX);
-PERL_CALLCONV OP *Perl_pp_enteriter(pTHX);
-PERL_CALLCONV OP *Perl_pp_enterloop(pTHX);
-PERL_CALLCONV OP *Perl_pp_entersub(pTHX);
-PERL_CALLCONV OP *Perl_pp_entertry(pTHX);
-PERL_CALLCONV OP *Perl_pp_entertrycatch(pTHX);
-PERL_CALLCONV OP *Perl_pp_enterwhen(pTHX);
-PERL_CALLCONV OP *Perl_pp_enterwrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_eof(pTHX);
-PERL_CALLCONV OP *Perl_pp_eq(pTHX);
-PERL_CALLCONV OP *Perl_pp_exec(pTHX);
-PERL_CALLCONV OP *Perl_pp_exists(pTHX);
-PERL_CALLCONV OP *Perl_pp_exit(pTHX);
-PERL_CALLCONV OP *Perl_pp_fc(pTHX);
-PERL_CALLCONV OP *Perl_pp_fileno(pTHX);
-PERL_CALLCONV OP *Perl_pp_flip(pTHX);
-PERL_CALLCONV OP *Perl_pp_flock(pTHX);
-PERL_CALLCONV OP *Perl_pp_flop(pTHX);
-PERL_CALLCONV OP *Perl_pp_fork(pTHX);
-PERL_CALLCONV OP *Perl_pp_formline(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftis(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftlink(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftrowned(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftrread(pTHX);
-PERL_CALLCONV OP *Perl_pp_fttext(pTHX);
-PERL_CALLCONV OP *Perl_pp_fttty(pTHX);
-PERL_CALLCONV OP *Perl_pp_ge(pTHX);
-PERL_CALLCONV OP *Perl_pp_gelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_getc(pTHX);
-PERL_CALLCONV OP *Perl_pp_getlogin(pTHX);
-PERL_CALLCONV OP *Perl_pp_getpeername(pTHX);
-PERL_CALLCONV OP *Perl_pp_getpgrp(pTHX);
-PERL_CALLCONV OP *Perl_pp_getppid(pTHX);
-PERL_CALLCONV OP *Perl_pp_getpriority(pTHX);
-PERL_CALLCONV OP *Perl_pp_ggrent(pTHX);
-PERL_CALLCONV OP *Perl_pp_ghostent(pTHX);
-PERL_CALLCONV OP *Perl_pp_glob(pTHX);
-PERL_CALLCONV OP *Perl_pp_gmtime(pTHX);
-PERL_CALLCONV OP *Perl_pp_gnetent(pTHX);
-PERL_CALLCONV OP *Perl_pp_goto(pTHX);
-PERL_CALLCONV OP *Perl_pp_gprotoent(pTHX);
-PERL_CALLCONV OP *Perl_pp_gpwent(pTHX);
-PERL_CALLCONV OP *Perl_pp_grepstart(pTHX);
-PERL_CALLCONV OP *Perl_pp_grepwhile(pTHX);
-PERL_CALLCONV OP *Perl_pp_gservent(pTHX);
-PERL_CALLCONV OP *Perl_pp_gt(pTHX);
-PERL_CALLCONV OP *Perl_pp_gv(pTHX);
-PERL_CALLCONV OP *Perl_pp_gvsv(pTHX);
-PERL_CALLCONV OP *Perl_pp_helem(pTHX);
-PERL_CALLCONV OP *Perl_pp_hintseval(pTHX);
-PERL_CALLCONV OP *Perl_pp_hslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_add(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_divide(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_eq(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_ge(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_gt(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_le(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_lt(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_modulo(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_multiply(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_ncmp(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_ne(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_negate(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_subtract(pTHX);
-PERL_CALLCONV OP *Perl_pp_index(pTHX);
-PERL_CALLCONV OP *Perl_pp_int(pTHX);
-PERL_CALLCONV OP *Perl_pp_introcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_ioctl(pTHX);
-PERL_CALLCONV OP *Perl_pp_isa(pTHX);
-PERL_CALLCONV OP *Perl_pp_iter(pTHX);
-PERL_CALLCONV OP *Perl_pp_join(pTHX);
-PERL_CALLCONV OP *Perl_pp_kvaslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_kvhslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_last(pTHX);
-PERL_CALLCONV OP *Perl_pp_lc(pTHX);
-PERL_CALLCONV OP *Perl_pp_le(pTHX);
-PERL_CALLCONV OP *Perl_pp_leave(pTHX);
-PERL_CALLCONV OP *Perl_pp_leaveeval(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavegiven(pTHX);
-PERL_CALLCONV OP *Perl_pp_leaveloop(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavesub(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavesublv(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavetry(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavetrycatch(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavewhen(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavewrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_left_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_length(pTHX);
-PERL_CALLCONV OP *Perl_pp_link(pTHX);
-PERL_CALLCONV OP *Perl_pp_list(pTHX);
-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_multiconcat(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);
-PERL_CALLCONV OP *Perl_pp_nextstate(pTHX);
-PERL_CALLCONV OP *Perl_pp_not(pTHX);
-PERL_CALLCONV OP *Perl_pp_null(pTHX);
-PERL_CALLCONV OP *Perl_pp_oct(pTHX);
-PERL_CALLCONV OP *Perl_pp_once(pTHX);
-PERL_CALLCONV OP *Perl_pp_open(pTHX);
-PERL_CALLCONV OP *Perl_pp_open_dir(pTHX);
-PERL_CALLCONV OP *Perl_pp_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_ord(pTHX);
-PERL_CALLCONV OP *Perl_pp_pack(pTHX);
-PERL_CALLCONV OP *Perl_pp_padav(pTHX);
-PERL_CALLCONV OP *Perl_pp_padcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_padhv(pTHX);
-PERL_CALLCONV OP *Perl_pp_padrange(pTHX);
-PERL_CALLCONV OP *Perl_pp_padsv(pTHX);
-PERL_CALLCONV OP *Perl_pp_pipe_op(pTHX);
-PERL_CALLCONV OP *Perl_pp_poptry(pTHX);
-PERL_CALLCONV OP *Perl_pp_pos(pTHX);
-PERL_CALLCONV OP *Perl_pp_postdec(pTHX);
-PERL_CALLCONV OP *Perl_pp_postinc(pTHX);
-PERL_CALLCONV OP *Perl_pp_pow(pTHX);
-PERL_CALLCONV OP *Perl_pp_predec(pTHX);
-PERL_CALLCONV OP *Perl_pp_preinc(pTHX);
-PERL_CALLCONV OP *Perl_pp_print(pTHX);
-PERL_CALLCONV OP *Perl_pp_prototype(pTHX);
-PERL_CALLCONV OP *Perl_pp_prtf(pTHX);
-PERL_CALLCONV OP *Perl_pp_push(pTHX);
-PERL_CALLCONV OP *Perl_pp_pushmark(pTHX);
-PERL_CALLCONV OP *Perl_pp_qr(pTHX);
-PERL_CALLCONV OP *Perl_pp_quotemeta(pTHX);
-PERL_CALLCONV OP *Perl_pp_rand(pTHX);
-PERL_CALLCONV OP *Perl_pp_range(pTHX);
-PERL_CALLCONV OP *Perl_pp_rcatline(pTHX);
-PERL_CALLCONV OP *Perl_pp_readdir(pTHX);
-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);
-PERL_CALLCONV OP *Perl_pp_rename(pTHX);
-PERL_CALLCONV OP *Perl_pp_repeat(pTHX);
-PERL_CALLCONV OP *Perl_pp_require(pTHX);
-PERL_CALLCONV OP *Perl_pp_reset(pTHX);
-PERL_CALLCONV OP *Perl_pp_return(pTHX);
-PERL_CALLCONV OP *Perl_pp_reverse(pTHX);
-PERL_CALLCONV OP *Perl_pp_rewinddir(pTHX);
-PERL_CALLCONV OP *Perl_pp_right_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_rmdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_runcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_rv2av(pTHX);
-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);
-PERL_CALLCONV OP *Perl_pp_semget(pTHX);
-PERL_CALLCONV OP *Perl_pp_seq(pTHX);
-PERL_CALLCONV OP *Perl_pp_setpgrp(pTHX);
-PERL_CALLCONV OP *Perl_pp_setpriority(pTHX);
-PERL_CALLCONV OP *Perl_pp_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_shmwrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_shostent(pTHX);
-PERL_CALLCONV OP *Perl_pp_shutdown(pTHX);
-PERL_CALLCONV OP *Perl_pp_sin(pTHX);
-PERL_CALLCONV OP *Perl_pp_sle(pTHX);
-PERL_CALLCONV OP *Perl_pp_sleep(pTHX);
-PERL_CALLCONV OP *Perl_pp_smartmatch(pTHX);
-PERL_CALLCONV OP *Perl_pp_sne(pTHX);
-PERL_CALLCONV OP *Perl_pp_socket(pTHX);
-PERL_CALLCONV OP *Perl_pp_sockpair(pTHX);
-PERL_CALLCONV OP *Perl_pp_sort(pTHX);
-PERL_CALLCONV OP *Perl_pp_splice(pTHX);
-PERL_CALLCONV OP *Perl_pp_split(pTHX);
-PERL_CALLCONV OP *Perl_pp_sprintf(pTHX);
-PERL_CALLCONV OP *Perl_pp_srand(pTHX);
-PERL_CALLCONV OP *Perl_pp_srefgen(pTHX);
-PERL_CALLCONV OP *Perl_pp_sselect(pTHX);
-PERL_CALLCONV OP *Perl_pp_ssockopt(pTHX);
-PERL_CALLCONV OP *Perl_pp_stat(pTHX);
-PERL_CALLCONV OP *Perl_pp_stringify(pTHX);
-PERL_CALLCONV OP *Perl_pp_stub(pTHX);
-PERL_CALLCONV OP *Perl_pp_study(pTHX);
-PERL_CALLCONV OP *Perl_pp_subst(pTHX);
-PERL_CALLCONV OP *Perl_pp_substcont(pTHX);
-PERL_CALLCONV OP *Perl_pp_substr(pTHX);
-PERL_CALLCONV OP *Perl_pp_subtract(pTHX);
-PERL_CALLCONV OP *Perl_pp_syscall(pTHX);
-PERL_CALLCONV OP *Perl_pp_sysopen(pTHX);
-PERL_CALLCONV OP *Perl_pp_sysread(pTHX);
-PERL_CALLCONV OP *Perl_pp_sysseek(pTHX);
-PERL_CALLCONV OP *Perl_pp_system(pTHX);
-PERL_CALLCONV OP *Perl_pp_syswrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_tell(pTHX);
-PERL_CALLCONV OP *Perl_pp_telldir(pTHX);
-PERL_CALLCONV OP *Perl_pp_tie(pTHX);
-PERL_CALLCONV OP *Perl_pp_tied(pTHX);
-PERL_CALLCONV OP *Perl_pp_time(pTHX);
-PERL_CALLCONV OP *Perl_pp_tms(pTHX);
-PERL_CALLCONV OP *Perl_pp_trans(pTHX);
-PERL_CALLCONV OP *Perl_pp_truncate(pTHX);
-PERL_CALLCONV OP *Perl_pp_uc(pTHX);
-PERL_CALLCONV OP *Perl_pp_ucfirst(pTHX);
-PERL_CALLCONV OP *Perl_pp_umask(pTHX);
-PERL_CALLCONV OP *Perl_pp_undef(pTHX);
-PERL_CALLCONV OP *Perl_pp_unpack(pTHX);
-PERL_CALLCONV OP *Perl_pp_unshift(pTHX);
-PERL_CALLCONV OP *Perl_pp_unstack(pTHX);
-PERL_CALLCONV OP *Perl_pp_untie(pTHX);
-PERL_CALLCONV OP *Perl_pp_vec(pTHX);
-PERL_CALLCONV OP *Perl_pp_wait(pTHX);
-PERL_CALLCONV OP *Perl_pp_waitpid(pTHX);
-PERL_CALLCONV OP *Perl_pp_wantarray(pTHX);
-PERL_CALLCONV OP *Perl_pp_warn(pTHX);
-PERL_CALLCONV OP *Perl_pp_xor(pTHX);
-PERL_CALLCONV OP *Perl_unimplemented_op(pTHX);
+PERL_CALLCONV PP(do_kv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aassign) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_abs) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_accept) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_add) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aeach) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aelemfast) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aelemfastlex_store) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_akeys) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_alarm) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anoncode) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anonconst) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anonhash) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anonlist) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_argcheck) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_argdefelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_argelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_atan2) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_av2arylen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_avhvswitch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_backtick) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bind) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_binmode) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bit_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bit_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bless) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_blessed) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_break) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_caller) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_catch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ceil) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chown) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chroot) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_clonecv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_close) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_closedir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_cmpchain_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_cmpchain_dup) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_complement) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_concat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_cond_expr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_const) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_continue) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_coreargs) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_crypt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_dbmopen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_dbstate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_defined) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_delete) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_die) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_divide) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_each) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ehostent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_emptyavhv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enter) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entereval) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entergiven) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enteriter) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enterloop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entersub) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entertry) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entertrycatch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enterwhen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enterwrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_eof) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_eq) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_exec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_exists) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_exit) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fileno) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_flip) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_flock) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_floor) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_flop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fork) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_formline) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftis) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftlink) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftrowned) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftrread) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fttext) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fttty) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ge) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getlogin) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getpeername) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getpgrp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getppid) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getpriority) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ggrent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ghostent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_glob) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gmtime) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gnetent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_goto) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gprotoent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gpwent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_grepstart) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_grepwhile) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gservent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gvsv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_helem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_helemexistsor) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_hintseval) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_hslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_add) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_divide) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_eq) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_ge) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_gt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_le) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_lt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_modulo) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_multiply) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_ncmp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_ne) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_negate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_subtract) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_index) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_initfield) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_int) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_introcv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ioctl) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_is_bool) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_is_tainted) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_is_weak) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_isa) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_iter) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_join) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_kvaslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_kvhslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_last) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_le) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leave) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leaveeval) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavegiven) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leaveloop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavesub) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavesublv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavetry) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavetrycatch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavewhen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavewrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_left_shift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_length) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_link) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_list) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_listen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lock) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lvavref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lvref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lvrefslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_mapwhile) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_match) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_named) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_redir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_redir_super) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_super) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_methstart) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_mkdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_modulo) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_multiconcat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_multideref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_multiply) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_nbit_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_nbit_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ncmp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ncomplement) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ne) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_negate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_next) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_nextstate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_not) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_null) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_oct) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_once) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_open) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_open_dir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ord) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pack) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padav) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padcv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padhv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padrange) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padsv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padsv_store) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pipe_op) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_poptry) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pos) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_postdec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_postinc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pow) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_predec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_preinc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_print) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_prototype) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_prtf) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_push) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pushdefer) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pushmark) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_qr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_quotemeta) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rand) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_range) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rcatline) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_readdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_readline) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_readlink) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_redo) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_refaddr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_refassign) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_refgen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_reftype) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_regcomp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_regcreset) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rename) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_repeat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_require) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_reset) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_return) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_reverse) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rewinddir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_right_shift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rmdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_runcv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2av) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2cv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2gv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2sv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sassign) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sbit_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sbit_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_schop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_scmp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_scomplement) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_seekdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_select) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_semctl) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_semget) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_seq) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_setpgrp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_setpriority) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shmwrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shostent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shutdown) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sin) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sle) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sleep) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_smartmatch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sne) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_socket) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sockpair) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sort) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_splice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_split) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sprintf) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_srand) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_srefgen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sselect) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ssockopt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_stat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_stringify) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_stub) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_study) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_subst) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_substcont) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_substr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_subtract) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_syscall) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sysopen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sysread) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sysseek) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_system) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_syswrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tell) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_telldir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tie) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tied) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_time) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tms) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_trans) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_truncate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_uc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ucfirst) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_umask) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_undef) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unpack) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unshift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unstack) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_untie) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unweaken) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_vec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_wait) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_waitpid) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_wantarray) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_warn) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_weaken) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_xor) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(unimplemented_op) __attribute__visibility__("hidden");
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h
index faca6d1366..4ef9466b7a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h
@@ -1,6941 +1,10554 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* proto.h
*
* Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ * 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022
+ * 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/embed.pl from data in embed.fnc,
- * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
+ * This file is built by regen/embed.pl from embed.fnc, intrpvar.h,
+ * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and
+ * regen/HeaderParser.pm.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
*/
START_EXTERN_C
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV ASCII_TO_NEED(const UV enc, const UV ch)
- __attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_ASCII_TO_NEED
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 * Perl_CvDEPTH(const CV * const sv);
-#define PERL_ARGS_ASSERT_CVDEPTH \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE GV * Perl_CvGV(pTHX_ CV *sv);
-#define PERL_ARGS_ASSERT_CVGV \
- assert(sv)
-#endif
-PERL_CALLCONV int Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing);
-#define PERL_ARGS_ASSERT_GV_AMUPDATE \
- assert(stash)
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV NATIVE_TO_NEED(const UV enc, const UV ch)
- __attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_NATIVE_TO_NEED
-#endif
+PERL_CALLCONV int
+Perl_Gv_AMupdate(pTHX_ HV *stash, bool destructing);
+#define PERL_ARGS_ASSERT_GV_AMUPDATE \
+ assert(stash)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 Perl_POPMARK(pTHX);
-#define PERL_ARGS_ASSERT_POPMARK
-#endif
-PERL_CALLCONV const char * Perl_PerlIO_context_layers(pTHX_ const char *mode);
+PERL_CALLCONV const char *
+Perl_PerlIO_context_layers(pTHX_ const char *mode);
#define PERL_ARGS_ASSERT_PERLIO_CONTEXT_LAYERS
-PERL_CALLCONV int Perl_PerlLIO_dup2_cloexec(pTHX_ int oldfd, int newfd);
-#define PERL_ARGS_ASSERT_PERLLIO_DUP2_CLOEXEC
-PERL_CALLCONV int Perl_PerlLIO_dup_cloexec(pTHX_ int oldfd)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLLIO_DUP_CLOEXEC
-PERL_CALLCONV int Perl_PerlLIO_open3_cloexec(pTHX_ const char *file, int flag, int perm)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLLIO_OPEN3_CLOEXEC \
- assert(file)
+PERL_CALLCONV int
+Perl_PerlLIO_dup2_cloexec(pTHX_ int oldfd, int newfd)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PERLLIO_DUP2_CLOEXEC
-PERL_CALLCONV int Perl_PerlLIO_open_cloexec(pTHX_ const char *file, int flag)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLLIO_OPEN_CLOEXEC \
- assert(file)
+PERL_CALLCONV int
+Perl_PerlLIO_dup_cloexec(pTHX_ int oldfd)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PERLLIO_DUP_CLOEXEC
-/* PERL_CALLCONV const XOP * Perl_custom_op_xop(pTHX_ const OP *o); */
-#define PERL_ARGS_ASSERT_PERL_CUSTOM_OP_XOP
-PERL_CALLCONV const char* Perl_setlocale(const int category, const char* locale);
+PERL_CALLCONV int
+Perl_PerlLIO_open3_cloexec(pTHX_ const char *file, int flag, int perm)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PERLLIO_OPEN3_CLOEXEC \
+ assert(file)
+
+PERL_CALLCONV int
+Perl_PerlLIO_open_cloexec(pTHX_ const char *file, int flag)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PERLLIO_OPEN_CLOEXEC \
+ assert(file)
+
+/* PERL_CALLCONV const XOP *
+Perl_custom_op_xop(pTHX_ const OP *o); */
+
+PERL_CALLCONV HV *
+Perl_localeconv(pTHX);
+#define PERL_ARGS_ASSERT_PERL_LOCALECONV
+
+PERL_CALLCONV const char *
+Perl_setlocale(const int category, const char *locale);
#define PERL_ARGS_ASSERT_PERL_SETLOCALE
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE struct regexp * Perl_ReANY(const REGEXP * const re);
-#define PERL_ARGS_ASSERT_REANY \
- assert(re)
-#endif
-PERL_CALLCONV void* Perl_Slab_Alloc(pTHX_ size_t sz)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV void *
+Perl_Slab_Alloc(pTHX_ size_t sz)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SLAB_ALLOC
-PERL_CALLCONV void Perl_Slab_Free(pTHX_ void *op);
-#define PERL_ARGS_ASSERT_SLAB_FREE \
- assert(op)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_SvAMAGIC_off(SV *sv);
-#define PERL_ARGS_ASSERT_SVAMAGIC_OFF \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_SvAMAGIC_on(SV *sv);
-#define PERL_ARGS_ASSERT_SVAMAGIC_ON \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_SvREFCNT_dec(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_DEC
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_SvREFCNT_dec_NN(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_DEC_NN \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV * Perl_SvREFCNT_inc(SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_INC
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV * Perl_SvREFCNT_inc_NN(SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_INC_NN \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_SvREFCNT_inc_void(SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_INC_VOID
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_SvTRUE(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVTRUE
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_SvTRUE_NN(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVTRUE_NN \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_SvTRUE_common(pTHX_ SV *sv, const bool sv_2bool_is_fallback);
-#define PERL_ARGS_ASSERT_SVTRUE_COMMON \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_SvTRUE_nomg(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVTRUE_NOMG
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 Perl_TOPMARK(pTHX);
-#define PERL_ARGS_ASSERT_TOPMARK
-#endif
-PERL_CALLCONV char * Perl__byte_dump_string(pTHX_ const U8 * const start, const STRLEN len, const bool format);
-#define PERL_ARGS_ASSERT__BYTE_DUMP_STRING \
- assert(start)
-PERL_CALLCONV void Perl__force_out_malformed_utf8_message(pTHX_ const U8 *const p, const U8 * const e, const U32 flags, const bool die_here);
-#define PERL_ARGS_ASSERT__FORCE_OUT_MALFORMED_UTF8_MESSAGE \
- assert(p); assert(e)
-PERL_CALLCONV Size_t Perl__inverse_folds(pTHX_ const UV cp, U32 * first_folds_to, const U32 ** remaining_folds_to)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVERSE_FOLDS \
- assert(first_folds_to); assert(remaining_folds_to)
-
-PERL_CALLCONV bool Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
+PERL_CALLCONV void
+Perl_Slab_Free(pTHX_ void *op);
+#define PERL_ARGS_ASSERT_SLAB_FREE \
+ assert(op)
+
+/* PERL_CALLCONV void
+SvREFCNT_dec_set_NULL(pTHX_ SV *sv); */
+
+PERL_CALLCONV char *
+Perl__byte_dump_string(pTHX_ const U8 * const start, const STRLEN len, const bool format);
+#define PERL_ARGS_ASSERT__BYTE_DUMP_STRING \
+ assert(start)
+
+PERL_CALLCONV void
+Perl__force_out_malformed_utf8_message(pTHX_ const U8 * const p, const U8 * const e, const U32 flags, const bool die_here);
+#define PERL_ARGS_ASSERT__FORCE_OUT_MALFORMED_UTF8_MESSAGE \
+ assert(p); assert(e)
+
+PERL_CALLCONV Size_t
+Perl__inverse_folds(pTHX_ const UV cp, U32 *first_folds_to, const U32 **remaining_folds_to)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__INVERSE_FOLDS \
+ assert(first_folds_to); assert(remaining_folds_to)
+
+PERL_CALLCONV bool
+Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
#define PERL_ARGS_ASSERT__IS_IN_LOCALE_CATEGORY
-PERL_CALLCONV bool Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV bool
+Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__IS_UNI_FOO
-PERL_CALLCONV bool Perl__is_uni_perl_idcont(pTHX_ UV c)
- __attribute__warn_unused_result__;
+PERL_CALLCONV bool
+Perl__is_uni_perl_idcont(pTHX_ UV c)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__IS_UNI_PERL_IDCONT
-PERL_CALLCONV bool Perl__is_uni_perl_idstart(pTHX_ UV c)
- __attribute__warn_unused_result__;
+PERL_CALLCONV bool
+Perl__is_uni_perl_idstart(pTHX_ UV c)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__IS_UNI_PERL_IDSTART
-PERL_CALLCONV bool Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p, const U8 * const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_FOO \
- assert(p); assert(e)
-
-PERL_CALLCONV bool Perl__is_utf8_perl_idcont(pTHX_ const U8 *p, const U8 * const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT \
- assert(p); assert(e)
-
-PERL_CALLCONV bool Perl__is_utf8_perl_idstart(pTHX_ const U8 *p, const U8 * const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \
- assert(p); assert(e)
-
-PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags);
-#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \
- assert(p); assert(lenp)
-PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, U8 flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, bool flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__utf8n_to_uvchr_msgs_helper(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors, AV ** msgs);
-#define PERL_ARGS_ASSERT__UTF8N_TO_UVCHR_MSGS_HELPER \
- assert(s)
-PERL_CALLCONV void Perl__warn_problematic_locale(void);
+PERL_CALLCONV bool
+Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p, const U8 * const e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_FOO \
+ assert(p); assert(e)
+
+PERL_CALLCONV bool
+Perl__is_utf8_perl_idcont(pTHX_ const U8 *p, const U8 * const e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT \
+ assert(p); assert(e)
+
+PERL_CALLCONV bool
+Perl__is_utf8_perl_idstart(pTHX_ const U8 *p, const U8 * const e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \
+ assert(p); assert(e)
+
+PERL_CALLCONV UV
+Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags);
+#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \
+ assert(p); assert(lenp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, U8 flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \
+ assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS \
+ assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS \
+ assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS \
+ assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__utf8n_to_uvchr_msgs_helper(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors, AV **msgs);
+#define PERL_ARGS_ASSERT__UTF8N_TO_UVCHR_MSGS_HELPER \
+ assert(s)
+
+PERL_CALLCONV void
+Perl__warn_problematic_locale(void);
#define PERL_ARGS_ASSERT__WARN_PROBLEMATIC_LOCALE
-PERL_CALLCONV_NO_RET void Perl_abort_execution(pTHX_ const char * const msg, const char * const name)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_ABORT_EXECUTION \
- assert(msg); assert(name)
-PERL_CALLCONV LOGOP* Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP *other);
+PERL_CALLCONV_NO_RET void
+Perl_abort_execution(pTHX_ SV *msg_sv, const char * const name)
+ __attribute__noreturn__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_ABORT_EXECUTION \
+ assert(name)
+
+PERL_CALLCONV LOGOP *
+Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP *other)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_ALLOC_LOGOP
-PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_ALLOCMY \
- assert(name)
-PERL_CALLCONV SV* Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir);
-#define PERL_ARGS_ASSERT_AMAGIC_CALL \
- assert(left); assert(right)
-PERL_CALLCONV SV * Perl_amagic_deref_call(pTHX_ SV *ref, int method);
-#define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL \
- assert(ref)
-PERL_CALLCONV bool Perl_amagic_is_enabled(pTHX_ int method);
+
+PERL_CALLCONV PADOFFSET
+Perl_allocmy(pTHX_ const char * const name, const STRLEN len, const U32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_ALLOCMY \
+ assert(name)
+
+PERL_CALLCONV bool
+Perl_amagic_applies(pTHX_ SV *sv, int method, int flags);
+#define PERL_ARGS_ASSERT_AMAGIC_APPLIES \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int dir);
+#define PERL_ARGS_ASSERT_AMAGIC_CALL \
+ assert(left); assert(right)
+
+PERL_CALLCONV SV *
+Perl_amagic_deref_call(pTHX_ SV *ref, int method);
+#define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL \
+ assert(ref)
+
+PERL_CALLCONV bool
+Perl_amagic_is_enabled(pTHX_ int method)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_AMAGIC_IS_ENABLED
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_append_utf8_from_native_byte(const U8 byte, U8** dest);
-#define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE \
- assert(dest)
-#endif
-PERL_CALLCONV I32 Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_APPLY \
- assert(mark); assert(sp)
-PERL_CALLCONV void Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, const char *attrstr, STRLEN len);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS_STRING \
- assert(stashpv); assert(cv); assert(attrstr)
-PERL_CALLCONV void Perl_atfork_lock(void);
+
+PERL_CALLCONV I32
+Perl_apply(pTHX_ I32 type, SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_APPLY \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV void
+Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, const char *attrstr, STRLEN len);
+#define PERL_ARGS_ASSERT_APPLY_ATTRS_STRING \
+ assert(stashpv); assert(cv); assert(attrstr)
+
+PERL_CALLCONV OP *
+Perl_apply_builtin_cv_attributes(pTHX_ CV *cv, OP *attrlist);
+#define PERL_ARGS_ASSERT_APPLY_BUILTIN_CV_ATTRIBUTES \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_atfork_lock(void);
#define PERL_ARGS_ASSERT_ATFORK_LOCK
-PERL_CALLCONV void Perl_atfork_unlock(void);
+
+PERL_CALLCONV void
+Perl_atfork_unlock(void);
#define PERL_ARGS_ASSERT_ATFORK_UNLOCK
-PERL_CALLCONV SV** Perl_av_arylen_p(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_ARYLEN_P \
- assert(av)
-PERL_CALLCONV void Perl_av_clear(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_CLEAR \
- assert(av)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t Perl_av_count(pTHX_ AV *av)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_COUNT \
- assert(av)
-#endif
-PERL_CALLCONV void Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val);
-#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \
- assert(avp); assert(val)
-PERL_CALLCONV SV** Perl_av_create_and_unshift_one(pTHX_ AV **const avp, SV *const val);
-#define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE \
- assert(avp); assert(val)
-PERL_CALLCONV SV* Perl_av_delete(pTHX_ AV *av, SSize_t key, I32 flags);
-#define PERL_ARGS_ASSERT_AV_DELETE \
- assert(av)
-PERL_CALLCONV bool Perl_av_exists(pTHX_ AV *av, SSize_t key)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_EXISTS \
- assert(av)
-
-PERL_CALLCONV void Perl_av_extend(pTHX_ AV *av, SSize_t key);
-#define PERL_ARGS_ASSERT_AV_EXTEND \
- assert(av)
-PERL_CALLCONV void Perl_av_extend_guts(pTHX_ AV *av, SSize_t key, SSize_t *maxp, SV ***allocp, SV ***arrayp);
-#define PERL_ARGS_ASSERT_AV_EXTEND_GUTS \
- assert(maxp); assert(allocp); assert(arrayp)
-PERL_CALLCONV SV** Perl_av_fetch(pTHX_ AV *av, SSize_t key, I32 lval)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_FETCH \
- assert(av)
-
-PERL_CALLCONV void Perl_av_fill(pTHX_ AV *av, SSize_t fill);
-#define PERL_ARGS_ASSERT_AV_FILL \
- assert(av)
-PERL_CALLCONV IV* Perl_av_iter_p(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_ITER_P \
- assert(av)
-PERL_CALLCONV SSize_t Perl_av_len(pTHX_ AV *av)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_LEN \
- assert(av)
-
-PERL_CALLCONV AV* Perl_av_make(pTHX_ SSize_t size, SV **strp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_MAKE \
- assert(strp)
-
-PERL_CALLCONV SV* Perl_av_nonelem(pTHX_ AV *av, SSize_t ix);
-#define PERL_ARGS_ASSERT_AV_NONELEM \
- assert(av)
-PERL_CALLCONV SV* Perl_av_pop(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_POP \
- assert(av)
-PERL_CALLCONV void Perl_av_push(pTHX_ AV *av, SV *val);
-#define PERL_ARGS_ASSERT_AV_PUSH \
- assert(av); assert(val)
-PERL_CALLCONV void Perl_av_reify(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_REIFY \
- assert(av)
-PERL_CALLCONV SV* Perl_av_shift(pTHX_ AV *av)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_SHIFT \
- assert(av)
-
-PERL_CALLCONV SV** Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val);
-#define PERL_ARGS_ASSERT_AV_STORE \
- assert(av)
-/* PERL_CALLCONV SSize_t av_tindex(pTHX_ AV *av)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_AV_TINDEX
-
-/* PERL_CALLCONV SSize_t av_top_index(pTHX_ AV *av)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_AV_TOP_INDEX
-
-PERL_CALLCONV void Perl_av_undef(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_UNDEF \
- assert(av)
-PERL_CALLCONV void Perl_av_unshift(pTHX_ AV *av, SSize_t num);
-#define PERL_ARGS_ASSERT_AV_UNSHIFT \
- assert(av)
-PERL_CALLCONV OP* Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BIND_MATCH \
- assert(left); assert(right)
-
-PERL_CALLCONV OP* Perl_block_end(pTHX_ I32 floor, OP* seq)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV **
+Perl_av_arylen_p(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_ARYLEN_P \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_clear(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_CLEAR \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_create_and_push(pTHX_ AV ** const avp, SV * const val);
+#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \
+ assert(avp); assert(val)
+
+PERL_CALLCONV SV **
+Perl_av_create_and_unshift_one(pTHX_ AV ** const avp, SV * const val);
+#define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE \
+ assert(avp); assert(val)
+
+PERL_CALLCONV SV *
+Perl_av_delete(pTHX_ AV *av, SSize_t key, I32 flags);
+#define PERL_ARGS_ASSERT_AV_DELETE \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_dump(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_DUMP
+
+PERL_CALLCONV bool
+Perl_av_exists(pTHX_ AV *av, SSize_t key)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_EXISTS \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_extend(pTHX_ AV *av, SSize_t key);
+#define PERL_ARGS_ASSERT_AV_EXTEND \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_extend_guts(pTHX_ AV *av, SSize_t key, SSize_t *maxp, SV ***allocp, SV ***arrayp)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_AV_EXTEND_GUTS \
+ assert(maxp); assert(allocp); assert(arrayp)
+
+PERL_CALLCONV SV **
+Perl_av_fetch(pTHX_ AV *av, SSize_t key, I32 lval)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_FETCH \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_fill(pTHX_ AV *av, SSize_t fill);
+#define PERL_ARGS_ASSERT_AV_FILL \
+ assert(av)
+
+PERL_CALLCONV IV *
+Perl_av_iter_p(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_ITER_P \
+ assert(av)
+
+PERL_CALLCONV SSize_t
+Perl_av_len(pTHX_ AV *av)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_LEN \
+ assert(av)
+
+PERL_CALLCONV AV *
+Perl_av_make(pTHX_ SSize_t size, SV **strp)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_MAKE \
+ assert(strp)
+
+PERL_CALLCONV SV *
+Perl_av_nonelem(pTHX_ AV *av, SSize_t ix)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_AV_NONELEM \
+ assert(av)
+
+PERL_CALLCONV SV *
+Perl_av_pop(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_POP \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_push(pTHX_ AV *av, SV *val);
+#define PERL_ARGS_ASSERT_AV_PUSH \
+ assert(av); assert(val)
+
+PERL_CALLCONV void
+Perl_av_reify(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_REIFY \
+ assert(av)
+
+PERL_CALLCONV SV *
+Perl_av_shift(pTHX_ AV *av)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_SHIFT \
+ assert(av)
+
+PERL_CALLCONV SV **
+Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val);
+#define PERL_ARGS_ASSERT_AV_STORE \
+ assert(av)
+
+/* PERL_CALLCONV SSize_t
+av_tindex(pTHX_ AV *av)
+ __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV SSize_t
+av_top_index(pTHX_ AV *av)
+ __attribute__warn_unused_result__; */
+
+PERL_CALLCONV void
+Perl_av_undef(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_UNDEF \
+ assert(av)
+
+PERL_CALLCONV void
+Perl_av_unshift(pTHX_ AV *av, SSize_t num);
+#define PERL_ARGS_ASSERT_AV_UNSHIFT \
+ assert(av)
+
+PERL_CALLCONV OP *
+Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_BIND_MATCH \
+ assert(left); assert(right)
+
+PERL_CALLCONV OP *
+Perl_block_end(pTHX_ I32 floor, OP *seq)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_BLOCK_END
-PERL_CALLCONV U8 Perl_block_gimme(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV U8
+Perl_block_gimme(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_BLOCK_GIMME
-PERL_CALLCONV int Perl_block_start(pTHX_ int full)
- __attribute__warn_unused_result__;
+PERL_CALLCONV int
+Perl_block_start(pTHX_ int full)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_BLOCK_START
-PERL_CALLCONV void Perl_blockhook_register(pTHX_ BHK *hk);
-#define PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER \
- assert(hk)
-PERL_CALLCONV void Perl_boot_core_PerlIO(pTHX);
+PERL_CALLCONV void
+Perl_blockhook_register(pTHX_ BHK *hk);
+#define PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER \
+ assert(hk)
+
+PERL_CALLCONV void
+Perl_boot_core_PerlIO(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_BOOT_CORE_PERLIO
-PERL_CALLCONV void Perl_boot_core_UNIVERSAL(pTHX);
+
+PERL_CALLCONV void
+Perl_boot_core_UNIVERSAL(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_BOOT_CORE_UNIVERSAL
-PERL_CALLCONV void Perl_boot_core_mro(pTHX);
+
+PERL_CALLCONV void
+Perl_boot_core_builtin(pTHX)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_BOOT_CORE_BUILTIN
+
+PERL_CALLCONV void
+Perl_boot_core_mro(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_BOOT_CORE_MRO
-PERL_CALLCONV int Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen);
-#define PERL_ARGS_ASSERT_BYTES_CMP_UTF8 \
- assert(b); assert(u)
-PERL_CALLCONV U8* Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *lenp, bool *is_utf8p);
-#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8 \
- assert(s); assert(lenp); assert(is_utf8p)
-PERL_CALLCONV U8* Perl_bytes_from_utf8_loc(const U8 *s, STRLEN *lenp, bool *is_utf8p, const U8 ** first_unconverted);
-#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8_LOC \
- assert(s); assert(lenp); assert(is_utf8p)
-PERL_CALLCONV U8* Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_BYTES_TO_UTF8 \
- assert(s); assert(lenp)
-PERL_CALLCONV I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv);
-#define PERL_ARGS_ASSERT_CALL_ARGV \
- assert(sub_name); assert(argv)
-PERL_CALLCONV void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
+
+PERL_CALLCONV OP *
+Perl_build_infix_plugin(pTHX_ OP *lhs, OP *rhs, void *tokendata)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_BUILD_INFIX_PLUGIN \
+ assert(lhs); assert(rhs); assert(tokendata)
+
+PERL_CALLCONV int
+Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen);
+#define PERL_ARGS_ASSERT_BYTES_CMP_UTF8 \
+ assert(b); assert(u)
+
+PERL_CALLCONV U8 *
+Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *lenp, bool *is_utf8p);
+#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8 \
+ assert(s); assert(lenp); assert(is_utf8p)
+
+PERL_CALLCONV U8 *
+Perl_bytes_from_utf8_loc(const U8 *s, STRLEN *lenp, bool *is_utf8p, const U8 **first_unconverted);
+#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8_LOC \
+ assert(s); assert(lenp); assert(is_utf8p)
+
+PERL_CALLCONV U8 *
+Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_BYTES_TO_UTF8 \
+ assert(s); assert(lenp)
+
+PERL_CALLCONV I32
+Perl_call_argv(pTHX_ const char *sub_name, I32 flags, char **argv);
+#define PERL_ARGS_ASSERT_CALL_ARGV \
+ assert(sub_name); assert(argv)
+
+PERL_CALLCONV void
+Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
#define PERL_ARGS_ASSERT_CALL_ATEXIT
-PERL_CALLCONV void Perl_call_list(pTHX_ I32 oldscope, AV *paramList);
-#define PERL_ARGS_ASSERT_CALL_LIST \
- assert(paramList)
-PERL_CALLCONV I32 Perl_call_method(pTHX_ const char* methname, I32 flags);
-#define PERL_ARGS_ASSERT_CALL_METHOD \
- assert(methname)
-PERL_CALLCONV I32 Perl_call_pv(pTHX_ const char* sub_name, I32 flags);
-#define PERL_ARGS_ASSERT_CALL_PV \
- assert(sub_name)
-PERL_CALLCONV I32 Perl_call_sv(pTHX_ SV* sv, volatile I32 flags);
-#define PERL_ARGS_ASSERT_CALL_SV \
- assert(sv)
-PERL_CALLCONV const PERL_CONTEXT * Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp);
+
+PERL_CALLCONV void
+Perl_call_list(pTHX_ I32 oldscope, AV *paramList);
+#define PERL_ARGS_ASSERT_CALL_LIST \
+ assert(paramList)
+
+PERL_CALLCONV I32
+Perl_call_method(pTHX_ const char *methname, I32 flags);
+#define PERL_ARGS_ASSERT_CALL_METHOD \
+ assert(methname)
+
+PERL_CALLCONV I32
+Perl_call_pv(pTHX_ const char *sub_name, I32 flags);
+#define PERL_ARGS_ASSERT_CALL_PV \
+ assert(sub_name)
+
+PERL_CALLCONV I32
+Perl_call_sv(pTHX_ SV *sv, volatile I32 flags);
+#define PERL_ARGS_ASSERT_CALL_SV \
+ assert(sv)
+
+PERL_CALLCONV const PERL_CONTEXT *
+Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp);
#define PERL_ARGS_ASSERT_CALLER_CX
-PERL_CALLCONV Malloc_t Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV Malloc_t
+Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CALLOC
-PERL_CALLCONV bool Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t* statbufp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CANDO \
- assert(statbufp)
+PERL_CALLCONV bool
+Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t *statbufp)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CANDO \
+ assert(statbufp)
-PERL_CALLCONV I32 Perl_cast_i32(NV f)
- __attribute__warn_unused_result__;
+PERL_CALLCONV I32
+Perl_cast_i32(NV f)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CAST_I32
-PERL_CALLCONV IV Perl_cast_iv(NV f)
- __attribute__warn_unused_result__;
+PERL_CALLCONV IV
+Perl_cast_iv(NV f)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CAST_IV
-PERL_CALLCONV U32 Perl_cast_ulong(NV f)
- __attribute__warn_unused_result__;
+PERL_CALLCONV U32
+Perl_cast_ulong(NV f)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CAST_ULONG
-PERL_CALLCONV UV Perl_cast_uv(NV f)
- __attribute__warn_unused_result__;
+PERL_CALLCONV UV
+Perl_cast_uv(NV f)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CAST_UV
-PERL_CALLCONV bool Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len);
-#define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT \
- assert(s)
-PERL_CALLCONV OP * Perl_ck_anoncode(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_ANONCODE \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_backtick(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_BACKTICK \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_bitop(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_BITOP \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_cmp(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_CMP \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_concat(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_CONCAT \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_defined(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_DEFINED \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_delete(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_DELETE \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_each(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EACH \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE \
- assert(entersubop); assert(namegv); assert(protosv)
-PERL_CALLCONV OP* Perl_ck_entersub_args_list(pTHX_ OP *entersubop);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST \
- assert(entersubop)
-PERL_CALLCONV OP* Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO \
- assert(entersubop); assert(namegv); assert(protosv)
-PERL_CALLCONV OP* Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST \
- assert(entersubop); assert(namegv); assert(protosv)
-PERL_CALLCONV OP * Perl_ck_eof(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EOF \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_eval(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EVAL \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_exec(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EXEC \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_exists(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EXISTS \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_ftst(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_FTST \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_fun(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_FUN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_glob(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_GLOB \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_grep(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_GREP \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_index(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_INDEX \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_isa(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_ISA \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_join(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_JOIN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_length(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_LENGTH \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_lfun(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_LFUN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_listiob(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_LISTIOB \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_match(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_MATCH \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_method(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_METHOD \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_null(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_NULL \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_open(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_OPEN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_prototype(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_PROTOTYPE \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_readline(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_READLINE \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_refassign(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_REFASSIGN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_repeat(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_REPEAT \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_require(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_REQUIRE \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_return(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_RETURN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_rfun(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_RFUN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_rvconst(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_RVCONST \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_sassign(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SASSIGN \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_select(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SELECT \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_shift(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SHIFT \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_smartmatch(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SMARTMATCH \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_sort(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SORT \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_spair(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SPAIR \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_split(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SPLIT \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_stringify(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_STRINGIFY \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_subr(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SUBR \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_substr(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SUBSTR \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_svconst(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SVCONST \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_tell(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_TELL \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_trunc(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_TRUNC \
- assert(o)
-
-PERL_CALLCONV OP * Perl_ck_trycatch(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_TRYCATCH \
- assert(o)
-
-PERL_CALLCONV void Perl_ck_warner(pTHX_ U32 err, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_CK_WARNER \
- assert(pat)
-
-PERL_CALLCONV void Perl_ck_warner_d(pTHX_ U32 err, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_CK_WARNER_D \
- assert(pat)
-
-PERL_CALLCONV bool Perl_ckwarn(pTHX_ U32 w)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV bool
+Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT \
+ assert(s)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE \
+ assert(entersubop); assert(namegv); assert(protosv)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_list(pTHX_ OP *entersubop);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST \
+ assert(entersubop)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO \
+ assert(entersubop); assert(namegv); assert(protosv)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST \
+ assert(entersubop); assert(namegv); assert(protosv)
+
+PERL_CALLCONV void
+Perl_ck_warner(pTHX_ U32 err, const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_CK_WARNER \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_ck_warner_d(pTHX_ U32 err, const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_CK_WARNER_D \
+ assert(pat)
+
+PERL_CALLCONV bool
+Perl_ckwarn(pTHX_ U32 w)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
#define PERL_ARGS_ASSERT_CKWARN
-PERL_CALLCONV bool Perl_ckwarn_d(pTHX_ U32 w)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV bool
+Perl_ckwarn_d(pTHX_ U32 w)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
#define PERL_ARGS_ASSERT_CKWARN_D
-PERL_CALLCONV void Perl_clear_defarray(pTHX_ AV* av, bool abandon);
-#define PERL_ARGS_ASSERT_CLEAR_DEFARRAY \
- assert(av)
-PERL_CALLCONV const COP* Perl_closest_cop(pTHX_ const COP *cop, const OP *o, const OP *curop, bool opnext);
-#define PERL_ARGS_ASSERT_CLOSEST_COP \
- assert(cop)
-PERL_CALLCONV OP* Perl_cmpchain_extend(pTHX_ I32 type, OP* ch, OP* right)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CMPCHAIN_EXTEND \
- assert(ch)
-
-PERL_CALLCONV OP* Perl_cmpchain_finish(pTHX_ OP* ch)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CMPCHAIN_FINISH \
- assert(ch)
-
-PERL_CALLCONV OP* Perl_cmpchain_start(pTHX_ I32 type, OP* left, OP* right)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_clear_defarray(pTHX_ AV *av, bool abandon);
+#define PERL_ARGS_ASSERT_CLEAR_DEFARRAY \
+ assert(av)
+
+PERL_CALLCONV const COP *
+Perl_closest_cop(pTHX_ const COP *cop, const OP *o, const OP *curop, bool opnext)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CLOSEST_COP \
+ assert(cop)
+
+PERL_CALLCONV OP *
+Perl_cmpchain_extend(pTHX_ I32 type, OP *ch, OP *right)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CMPCHAIN_EXTEND \
+ assert(ch)
+
+PERL_CALLCONV OP *
+Perl_cmpchain_finish(pTHX_ OP *ch)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CMPCHAIN_FINISH \
+ assert(ch)
+
+PERL_CALLCONV OP *
+Perl_cmpchain_start(pTHX_ I32 type, OP *left, OP *right)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_CMPCHAIN_START
-PERL_CALLCONV const char * Perl_cntrl_to_mnemonic(const U8 c)
- __attribute__warn_unused_result__;
+PERL_CALLCONV const char *
+Perl_cntrl_to_mnemonic(const U8 c)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CNTRL_TO_MNEMONIC
-PERL_CALLCONV const char * Perl_cop_fetch_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags);
-#define PERL_ARGS_ASSERT_COP_FETCH_LABEL \
- assert(cop)
-PERL_CALLCONV void Perl_cop_store_label(pTHX_ COP *const cop, const char *label, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_COP_STORE_LABEL \
- assert(cop); assert(label)
-PERL_CALLCONV SV * Perl_core_prototype(pTHX_ SV *sv, const char *name, const int code, int * const opnum);
-#define PERL_ARGS_ASSERT_CORE_PROTOTYPE \
- assert(name)
-PERL_CALLCONV OP * Perl_coresub_op(pTHX_ SV *const coreargssv, const int code, const int opnum);
-#define PERL_ARGS_ASSERT_CORESUB_OP \
- assert(coreargssv)
-PERL_CALLCONV void Perl_create_eval_scope(pTHX_ OP *retop, U32 flags);
+PERL_CALLCONV const char *
+Perl_cop_fetch_label(pTHX_ COP * const cop, STRLEN *len, U32 *flags);
+#define PERL_ARGS_ASSERT_COP_FETCH_LABEL \
+ assert(cop)
+
+PERL_CALLCONV void
+Perl_cop_store_label(pTHX_ COP * const cop, const char *label, STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_COP_STORE_LABEL \
+ assert(cop); assert(label)
+
+PERL_CALLCONV SV *
+Perl_core_prototype(pTHX_ SV *sv, const char *name, const int code, int * const opnum)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CORE_PROTOTYPE \
+ assert(name)
+
+PERL_CALLCONV OP *
+Perl_coresub_op(pTHX_ SV * const coreargssv, const int code, const int opnum)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CORESUB_OP \
+ assert(coreargssv)
+
+PERL_CALLCONV void
+Perl_create_eval_scope(pTHX_ OP *retop, U32 flags)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_CREATE_EVAL_SCOPE
-PERL_CALLCONV_NO_RET void Perl_croak(pTHX_ const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+
+PERL_CALLCONV_NO_RET void
+Perl_croak(pTHX_ const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
#define PERL_ARGS_ASSERT_CROAK
-PERL_CALLCONV_NO_RET void Perl_croak_caller(const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,1,2);
+PERL_CALLCONV_NO_RET void
+Perl_croak_caller(const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__visibility__("hidden")
+ __attribute__format__null_ok__(__printf__,1,2);
#define PERL_ARGS_ASSERT_CROAK_CALLER
-PERL_CALLCONV_NO_RET void Perl_croak_memory_wrap(void)
- __attribute__noreturn__;
+PERL_STATIC_NO_RET void
+Perl_croak_memory_wrap(void)
+ __attribute__noreturn__;
#define PERL_ARGS_ASSERT_CROAK_MEMORY_WRAP
-PERL_CALLCONV_NO_RET void Perl_croak_no_mem(void)
- __attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_croak_no_mem(void)
+ __attribute__noreturn__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_CROAK_NO_MEM
-PERL_CALLCONV_NO_RET void Perl_croak_no_modify(void)
- __attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_croak_no_modify(void)
+ __attribute__noreturn__;
#define PERL_ARGS_ASSERT_CROAK_NO_MODIFY
-PERL_CALLCONV_NO_RET void Perl_croak_popstack(void)
- __attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_croak_popstack(void)
+ __attribute__noreturn__;
#define PERL_ARGS_ASSERT_CROAK_POPSTACK
-PERL_CALLCONV_NO_RET void Perl_croak_sv(pTHX_ SV *baseex)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_CROAK_SV \
- assert(baseex)
+PERL_CALLCONV_NO_RET void
+Perl_croak_sv(pTHX_ SV *baseex)
+ __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_CROAK_SV \
+ assert(baseex)
-PERL_CALLCONV_NO_RET void Perl_croak_xs_usage(const CV *const cv, const char *const params)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_CROAK_XS_USAGE \
- assert(cv); assert(params)
+PERL_CALLCONV_NO_RET void
+Perl_croak_xs_usage(const CV * const cv, const char * const params)
+ __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_CROAK_XS_USAGE \
+ assert(cv); assert(params)
-PERL_CALLCONV Signal_t Perl_csighandler1(int sig);
+PERL_CALLCONV Signal_t
+Perl_csighandler1(int sig);
#define PERL_ARGS_ASSERT_CSIGHANDLER1
-PERL_CALLCONV Signal_t Perl_csighandler3(int sig, Siginfo_t *info, void *uap);
+
+PERL_CALLCONV Signal_t
+Perl_csighandler3(int sig, Siginfo_t *info, void *uap);
#define PERL_ARGS_ASSERT_CSIGHANDLER3
-PERL_CALLCONV regexp_engine const * Perl_current_re_engine(pTHX);
-#define PERL_ARGS_ASSERT_CURRENT_RE_ENGINE
-#ifndef NO_MATHOMS
-PERL_CALLCONV const char * Perl_custom_op_desc(pTHX_ const OP *o)
- __attribute__deprecated__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CUSTOM_OP_DESC \
- assert(o)
-#endif
-PERL_CALLCONV XOPRETANY Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD \
- assert(o)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV const char * Perl_custom_op_name(pTHX_ const OP *o)
- __attribute__deprecated__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CUSTOM_OP_NAME \
- assert(o)
-#endif
+PERL_CALLCONV regexp_engine const *
+Perl_current_re_engine(pTHX);
+#define PERL_ARGS_ASSERT_CURRENT_RE_ENGINE
-PERL_CALLCONV void Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop);
-#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER \
- assert(ppaddr); assert(xop)
-PERL_CALLCONV void Perl_cv_ckproto_len_flags(pTHX_ const CV* cv, const GV* gv, const char* p, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS \
- assert(cv)
-PERL_CALLCONV CV* Perl_cv_clone(pTHX_ CV* proto);
-#define PERL_ARGS_ASSERT_CV_CLONE \
- assert(proto)
-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(const CV *const cv)
- __attribute__warn_unused_result__;
+PERL_CALLCONV XOPRETANY
+Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop);
+#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER \
+ assert(ppaddr); assert(xop)
+
+PERL_CALLCONV void
+Perl_cv_ckproto_len_flags(pTHX_ const CV *cv, const GV *gv, const char *p, const STRLEN len, const U32 flags);
+#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS \
+ assert(cv)
+
+PERL_CALLCONV CV *
+Perl_cv_clone(pTHX_ CV *proto);
+#define PERL_ARGS_ASSERT_CV_CLONE \
+ assert(proto)
+
+PERL_CALLCONV CV *
+Perl_cv_clone_into(pTHX_ CV *proto, CV *target)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CV_CLONE_INTO \
+ assert(proto); assert(target)
+
+PERL_CALLCONV SV *
+Perl_cv_const_sv(const CV * const cv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CV_CONST_SV
-PERL_CALLCONV SV* Perl_cv_const_sv_or_av(const CV *const cv)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_cv_const_sv_or_av(const CV * const cv)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_CV_CONST_SV_OR_AV
-PERL_CALLCONV void Perl_cv_forget_slab(pTHX_ CV *cv);
+PERL_CALLCONV void
+Perl_cv_forget_slab(pTHX_ CV *cv)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_CV_FORGET_SLAB
-PERL_CALLCONV void Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p);
-#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER \
- assert(cv); assert(ckfun_p); assert(ckobj_p)
-PERL_CALLCONV void Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags, Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p);
-#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS \
- assert(cv); assert(ckfun_p); assert(ckobj_p); assert(ckflags_p)
-PERL_CALLCONV SV * Perl_cv_name(pTHX_ CV *cv, SV *sv, U32 flags);
-#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);
-#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 ckflags);
-#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS \
- assert(cv); assert(ckfun); assert(ckobj)
-PERL_CALLCONV void Perl_cv_undef(pTHX_ CV* cv);
-#define PERL_ARGS_ASSERT_CV_UNDEF \
- assert(cv)
-PERL_CALLCONV void Perl_cv_undef_flags(pTHX_ CV* cv, U32 flags);
-#define PERL_ARGS_ASSERT_CV_UNDEF_FLAGS \
- assert(cv)
-PERL_CALLCONV GV * Perl_cvgv_from_hek(pTHX_ CV* cv);
-#define PERL_ARGS_ASSERT_CVGV_FROM_HEK \
- assert(cv)
-PERL_CALLCONV void Perl_cvgv_set(pTHX_ CV* cv, GV* gv);
-#define PERL_ARGS_ASSERT_CVGV_SET \
- assert(cv)
-PERL_CALLCONV void Perl_cvstash_set(pTHX_ CV* cv, HV* stash);
-#define PERL_ARGS_ASSERT_CVSTASH_SET \
- assert(cv)
-PERL_CALLCONV void Perl_cx_dump(pTHX_ PERL_CONTEXT* cx);
-#define PERL_ARGS_ASSERT_CX_DUMP \
- assert(cx)
-PERL_CALLCONV I32 Perl_cxinc(pTHX)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV void
+Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p);
+#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER \
+ assert(cv); assert(ckfun_p); assert(ckobj_p)
+
+PERL_CALLCONV void
+Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags, Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p);
+#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS \
+ assert(cv); assert(ckfun_p); assert(ckobj_p); assert(ckflags_p)
+
+PERL_CALLCONV SV *
+Perl_cv_name(pTHX_ CV *cv, SV *sv, U32 flags);
+#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);
+#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 ckflags);
+#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS \
+ assert(cv); assert(ckfun); assert(ckobj)
+
+PERL_CALLCONV void
+Perl_cv_undef(pTHX_ CV *cv);
+#define PERL_ARGS_ASSERT_CV_UNDEF \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_cv_undef_flags(pTHX_ CV *cv, U32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CV_UNDEF_FLAGS \
+ assert(cv)
+
+PERL_CALLCONV GV *
+Perl_cvgv_from_hek(pTHX_ CV *cv);
+#define PERL_ARGS_ASSERT_CVGV_FROM_HEK \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_cvgv_set(pTHX_ CV *cv, GV *gv);
+#define PERL_ARGS_ASSERT_CVGV_SET \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_cvstash_set(pTHX_ CV *cv, HV *stash);
+#define PERL_ARGS_ASSERT_CVSTASH_SET \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_cx_dump(pTHX_ PERL_CONTEXT *cx);
+#define PERL_ARGS_ASSERT_CX_DUMP \
+ assert(cx)
+
+PERL_CALLCONV I32
+Perl_cxinc(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CXINC
-PERL_CALLCONV void Perl_deb(pTHX_ const char* pat, ...)
- __attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_DEB \
- assert(pat)
+PERL_CALLCONV void
+Perl_deb(pTHX_ const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_DEB \
+ assert(pat)
-PERL_CALLCONV void Perl_deb_stack_all(pTHX);
+PERL_CALLCONV void
+Perl_deb_stack_all(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_DEB_STACK_ALL
-PERL_CALLCONV I32 Perl_debop(pTHX_ const OP* o);
-#define PERL_ARGS_ASSERT_DEBOP \
- assert(o)
-PERL_CALLCONV void Perl_debprofdump(pTHX);
+
+PERL_CALLCONV I32
+Perl_debop(pTHX_ const OP *o);
+#define PERL_ARGS_ASSERT_DEBOP \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_debprofdump(pTHX);
#define PERL_ARGS_ASSERT_DEBPROFDUMP
-PERL_CALLCONV I32 Perl_debstack(pTHX);
+
+PERL_CALLCONV I32
+Perl_debstack(pTHX);
#define PERL_ARGS_ASSERT_DEBSTACK
-PERL_CALLCONV I32 Perl_debstackptrs(pTHX);
+
+PERL_CALLCONV I32
+Perl_debstackptrs(pTHX);
#define PERL_ARGS_ASSERT_DEBSTACKPTRS
-PERL_CALLCONV SV * Perl_defelem_target(pTHX_ SV *sv, MAGIC *mg)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DEFELEM_TARGET \
- assert(sv)
-PERL_CALLCONV void Perl_delete_eval_scope(pTHX);
+PERL_CALLCONV void
+Perl_debug_hash_seed(pTHX_ bool via_debug_h)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DEBUG_HASH_SEED
+
+PERL_CALLCONV SV *
+Perl_defelem_target(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DEFELEM_TARGET \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_delete_eval_scope(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_DELETE_EVAL_SCOPE
-PERL_CALLCONV char* Perl_delimcpy(char* to, const char* to_end, const char* from, const char* from_end, const int delim, I32* retlen);
-#define PERL_ARGS_ASSERT_DELIMCPY \
- assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
-PERL_CALLCONV char* Perl_delimcpy_no_escape(char* to, const char* to_end, const char* from, const char* from_end, const int delim, I32* retlen);
-#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE \
- assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
-PERL_CALLCONV void Perl_despatch_signals(pTHX);
-#define PERL_ARGS_ASSERT_DESPATCH_SIGNALS
-PERL_CALLCONV_NO_RET OP* Perl_die(pTHX_ const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_DIE
-PERL_CALLCONV_NO_RET OP* Perl_die_sv(pTHX_ SV *baseex)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_DIE_SV \
- assert(baseex)
+PERL_CALLCONV char *
+Perl_delimcpy(char *to, const char *to_end, const char *from, const char *from_end, const int delim, I32 *retlen);
+#define PERL_ARGS_ASSERT_DELIMCPY \
+ assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
-PERL_CALLCONV_NO_RET void Perl_die_unwind(pTHX_ SV* msv)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_DIE_UNWIND \
- assert(msv)
+PERL_CALLCONV char *
+Perl_delimcpy_no_escape(char *to, const char *to_end, const char *from, const char *from_end, const int delim, I32 *retlen);
+#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE \
+ assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_AEXEC \
- assert(mark); assert(sp)
-#endif
-PERL_CALLCONV bool Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int do_report);
-#define PERL_ARGS_ASSERT_DO_AEXEC5 \
- assert(mark); assert(sp)
-#ifndef NO_MATHOMS
-PERL_CALLCONV int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_DO_BINMODE \
- assert(fp)
-#endif
+PERL_CALLCONV void
+Perl_despatch_signals(pTHX);
+#define PERL_ARGS_ASSERT_DESPATCH_SIGNALS
+
+PERL_CALLCONV_NO_RET OP *
+Perl_die(pTHX_ const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_DIE
-PERL_CALLCONV bool Perl_do_close(pTHX_ GV* gv, bool not_implicit);
+PERL_CALLCONV_NO_RET OP *
+Perl_die_sv(pTHX_ SV *baseex)
+ __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_DIE_SV \
+ assert(baseex)
+
+PERL_CALLCONV_NO_RET void
+Perl_die_unwind(pTHX_ SV *msv)
+ __attribute__noreturn__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DIE_UNWIND \
+ assert(msv)
+
+PERL_CALLCONV bool
+Perl_do_aexec5(pTHX_ SV *really, SV **mark, SV **sp, int fd, int do_report)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_AEXEC5 \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV bool
+Perl_do_close(pTHX_ GV *gv, bool is_explicit);
#define PERL_ARGS_ASSERT_DO_CLOSE
-PERL_CALLCONV void Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full);
-#define PERL_ARGS_ASSERT_DO_DUMP_PAD \
- assert(file)
-PERL_CALLCONV bool Perl_do_eof(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_DO_EOF \
- assert(gv)
-PERL_CALLCONV void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
-#define PERL_ARGS_ASSERT_DO_GV_DUMP \
- assert(file); assert(name)
-PERL_CALLCONV void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
-#define PERL_ARGS_ASSERT_DO_GVGV_DUMP \
- assert(file); assert(name)
-PERL_CALLCONV void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv);
-#define PERL_ARGS_ASSERT_DO_HV_DUMP \
- assert(file); assert(name)
-PERL_CALLCONV void Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp);
-#define PERL_ARGS_ASSERT_DO_JOIN \
- 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);
-#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \
- assert(file)
-PERL_CALLCONV I32 Perl_do_ncmp(pTHX_ SV *const left, SV *const right)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_NCMP \
- assert(left); assert(right)
-
-PERL_CALLCONV void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o);
-#define PERL_ARGS_ASSERT_DO_OP_DUMP \
- assert(file)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_do_open(pTHX_ GV* gv, const char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
-#define PERL_ARGS_ASSERT_DO_OPEN \
- assert(gv); assert(name)
-#endif
-PERL_CALLCONV bool Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len, PerlIO *supplied_fp, SV **svp, U32 num);
-#define PERL_ARGS_ASSERT_DO_OPEN6 \
- assert(gv); assert(oname)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_do_open9(pTHX_ GV *gv, const char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_DO_OPEN9 \
- assert(gv); assert(name); assert(svs)
-#endif
-PERL_CALLCONV bool Perl_do_open_raw(pTHX_ GV *gv, const char *oname, STRLEN len, int rawmode, int rawperm, Stat_t *statbufp);
-#define PERL_ARGS_ASSERT_DO_OPEN_RAW \
- assert(gv); assert(oname)
-PERL_CALLCONV bool Perl_do_openn(pTHX_ GV *gv, const char *oname, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num);
-#define PERL_ARGS_ASSERT_DO_OPENN \
- assert(gv); assert(oname)
-PERL_CALLCONV void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm);
-#define PERL_ARGS_ASSERT_DO_PMOP_DUMP \
- assert(file)
-PERL_CALLCONV bool Perl_do_print(pTHX_ SV* sv, PerlIO* fp);
-#define PERL_ARGS_ASSERT_DO_PRINT \
- assert(fp)
-PERL_CALLCONV OP* Perl_do_readline(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_DUMP_PAD \
+ assert(file)
+
+PERL_CALLCONV bool
+Perl_do_eof(pTHX_ GV *gv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_EOF \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
+#define PERL_ARGS_ASSERT_DO_GV_DUMP \
+ assert(file); assert(name)
+
+PERL_CALLCONV void
+Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
+#define PERL_ARGS_ASSERT_DO_GVGV_DUMP \
+ assert(file); assert(name)
+
+PERL_CALLCONV void
+Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv);
+#define PERL_ARGS_ASSERT_DO_HV_DUMP \
+ assert(file); assert(name)
+
+PERL_CALLCONV void
+Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp);
+#define PERL_ARGS_ASSERT_DO_JOIN \
+ 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);
+#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \
+ assert(file)
+
+PERL_CALLCONV I32
+Perl_do_ncmp(pTHX_ SV * const left, SV * const right)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_NCMP \
+ assert(left); assert(right)
+
+PERL_CALLCONV void
+Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o);
+#define PERL_ARGS_ASSERT_DO_OP_DUMP \
+ assert(file)
+
+PERL_CALLCONV bool
+Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len, PerlIO *supplied_fp, SV **svp, U32 num)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_OPEN6 \
+ assert(gv); assert(oname)
+
+PERL_CALLCONV bool
+Perl_do_open_raw(pTHX_ GV *gv, const char *oname, STRLEN len, int rawmode, int rawperm, Stat_t *statbufp)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_OPEN_RAW \
+ assert(gv); assert(oname)
+
+PERL_CALLCONV bool
+Perl_do_openn(pTHX_ GV *gv, const char *oname, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num);
+#define PERL_ARGS_ASSERT_DO_OPENN \
+ assert(gv); assert(oname)
+
+PERL_CALLCONV void
+Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm);
+#define PERL_ARGS_ASSERT_DO_PMOP_DUMP \
+ assert(file)
+
+PERL_CALLCONV bool
+Perl_do_print(pTHX_ SV *sv, PerlIO *fp)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_PRINT \
+ assert(fp)
+
+PERL_CALLCONV OP *
+Perl_do_readline(pTHX)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_DO_READLINE
-PERL_CALLCONV bool Perl_do_seek(pTHX_ GV* gv, Off_t pos, int whence);
+PERL_CALLCONV bool
+Perl_do_seek(pTHX_ GV *gv, Off_t pos, int whence)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_DO_SEEK
-PERL_CALLCONV void Perl_do_sprintf(pTHX_ SV* sv, SSize_t len, SV** sarg);
-#define PERL_ARGS_ASSERT_DO_SPRINTF \
- assert(sv); assert(sarg)
-PERL_CALLCONV void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-#define PERL_ARGS_ASSERT_DO_SV_DUMP \
- assert(file)
-PERL_CALLCONV Off_t Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence);
-#define PERL_ARGS_ASSERT_DO_SYSSEEK \
- assert(gv)
-PERL_CALLCONV Off_t Perl_do_tell(pTHX_ GV* gv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TELL \
- assert(gv)
-
-PERL_CALLCONV Size_t Perl_do_trans(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_DO_TRANS \
- assert(sv)
-PERL_CALLCONV I16 Perl_do_uniprop_match(const char * const key, const U16 key_len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_UNIPROP_MATCH \
- assert(key)
-
-PERL_CALLCONV UV Perl_do_vecget(pTHX_ SV* sv, STRLEN offset, int size);
-#define PERL_ARGS_ASSERT_DO_VECGET \
- assert(sv)
-PERL_CALLCONV void Perl_do_vecset(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_DO_VECSET \
- assert(sv)
-PERL_CALLCONV void Perl_do_vop(pTHX_ I32 optype, SV* sv, SV* left, SV* right);
-#define PERL_ARGS_ASSERT_DO_VOP \
- assert(sv); assert(left); assert(right)
-PERL_CALLCONV OP* Perl_dofile(pTHX_ OP* term, I32 force_builtin);
-#define PERL_ARGS_ASSERT_DOFILE \
- assert(term)
-PERL_CALLCONV bool Perl_doing_taint(int argc, char** argv, char** env)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV void
+Perl_do_sprintf(pTHX_ SV *sv, SSize_t len, SV **sarg);
+#define PERL_ARGS_ASSERT_DO_SPRINTF \
+ assert(sv); assert(sarg)
+
+PERL_CALLCONV void
+Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
+#define PERL_ARGS_ASSERT_DO_SV_DUMP \
+ assert(file)
+
+PERL_CALLCONV Off_t
+Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_SYSSEEK \
+ assert(gv)
+
+PERL_CALLCONV Off_t
+Perl_do_tell(pTHX_ GV *gv)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_TELL \
+ assert(gv)
+
+PERL_CALLCONV Size_t
+Perl_do_trans(pTHX_ SV *sv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_TRANS \
+ assert(sv)
+
+PERL_CALLCONV I16
+Perl_do_uniprop_match(const char * const key, const U16 key_len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_DO_UNIPROP_MATCH \
+ assert(key)
+
+PERL_CALLCONV UV
+Perl_do_vecget(pTHX_ SV *sv, STRLEN offset, int size)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_VECGET \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_do_vecset(pTHX_ SV *sv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_VECSET \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_VOP \
+ assert(sv); assert(left); assert(right)
+
+PERL_CALLCONV OP *
+Perl_dofile(pTHX_ OP *term, I32 force_builtin)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DOFILE \
+ assert(term)
+
+PERL_CALLCONV bool
+Perl_doing_taint(int argc, char **argv, char **env)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_DOING_TAINT
-PERL_CALLCONV OP * Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref);
-#define PERL_ARGS_ASSERT_DOREF \
- assert(o)
-PERL_CALLCONV void Perl_dounwind(pTHX_ I32 cxix);
+PERL_CALLCONV OP *
+Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref);
+#define PERL_ARGS_ASSERT_DOREF \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_dounwind(pTHX_ I32 cxix);
#define PERL_ARGS_ASSERT_DOUNWIND
-PERL_CALLCONV U8 Perl_dowantarray(pTHX)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV U8
+Perl_dowantarray(pTHX)
+ __attribute__deprecated__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_DOWANTARRAY
-PERL_CALLCONV void Perl_drand48_init_r(perl_drand48_t *random_state, U32 seed);
-#define PERL_ARGS_ASSERT_DRAND48_INIT_R \
- assert(random_state)
-PERL_CALLCONV double Perl_drand48_r(perl_drand48_t *random_state);
-#define PERL_ARGS_ASSERT_DRAND48_R \
- assert(random_state)
-PERL_CALLCONV void Perl_dump_all(pTHX);
+PERL_CALLCONV void
+Perl_drand48_init_r(perl_drand48_t *random_state, U32 seed);
+#define PERL_ARGS_ASSERT_DRAND48_INIT_R \
+ assert(random_state)
+
+PERL_CALLCONV double
+Perl_drand48_r(perl_drand48_t *random_state);
+#define PERL_ARGS_ASSERT_DRAND48_R \
+ assert(random_state)
+
+PERL_CALLCONV void
+Perl_dump_all(pTHX);
#define PERL_ARGS_ASSERT_DUMP_ALL
-PERL_CALLCONV void Perl_dump_all_perl(pTHX_ bool justperl);
+
+PERL_CALLCONV void
+Perl_dump_all_perl(pTHX_ bool justperl)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_DUMP_ALL_PERL
-PERL_CALLCONV void Perl_dump_eval(pTHX);
+
+PERL_CALLCONV void
+Perl_dump_eval(pTHX);
#define PERL_ARGS_ASSERT_DUMP_EVAL
-PERL_CALLCONV void Perl_dump_form(pTHX_ const GV* gv);
-#define PERL_ARGS_ASSERT_DUMP_FORM \
- assert(gv)
-PERL_CALLCONV void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_3,pTHX_4);
-#define PERL_ARGS_ASSERT_DUMP_INDENT \
- assert(file); assert(pat)
-
-PERL_CALLCONV void Perl_dump_packsubs(pTHX_ const HV* stash);
-#define PERL_ARGS_ASSERT_DUMP_PACKSUBS \
- assert(stash)
-PERL_CALLCONV void Perl_dump_packsubs_perl(pTHX_ const HV* stash, bool justperl);
-#define PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL \
- assert(stash)
-PERL_CALLCONV void Perl_dump_sub(pTHX_ const GV* gv);
-#define PERL_ARGS_ASSERT_DUMP_SUB \
- assert(gv)
-PERL_CALLCONV void Perl_dump_sub_perl(pTHX_ const GV* gv, bool justperl);
-#define PERL_ARGS_ASSERT_DUMP_SUB_PERL \
- assert(gv)
-PERL_CALLCONV void Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args);
-#define PERL_ARGS_ASSERT_DUMP_VINDENT \
- assert(file); assert(pat)
-PERL_CALLCONV STRLEN* Perl_dup_warnings(pTHX_ STRLEN* warnings);
+
+PERL_CALLCONV void
+Perl_dump_form(pTHX_ const GV *gv);
+#define PERL_ARGS_ASSERT_DUMP_FORM \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_3,pTHX_4);
+#define PERL_ARGS_ASSERT_DUMP_INDENT \
+ assert(file); assert(pat)
+
+PERL_CALLCONV void
+Perl_dump_packsubs(pTHX_ const HV *stash);
+#define PERL_ARGS_ASSERT_DUMP_PACKSUBS \
+ assert(stash)
+
+PERL_CALLCONV void
+Perl_dump_packsubs_perl(pTHX_ const HV *stash, bool justperl)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL \
+ assert(stash)
+
+PERL_CALLCONV void
+Perl_dump_sub(pTHX_ const GV *gv);
+#define PERL_ARGS_ASSERT_DUMP_SUB \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_dump_sub_perl(pTHX_ const GV *gv, bool justperl)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DUMP_SUB_PERL \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_DUMP_VINDENT \
+ assert(file); assert(pat)
+
+PERL_CALLCONV char *
+Perl_dup_warnings(pTHX_ char *warnings);
#define PERL_ARGS_ASSERT_DUP_WARNINGS
-PERL_CALLCONV void Perl_emulate_cop_io(pTHX_ const COP *const c, SV *const sv);
-#define PERL_ARGS_ASSERT_EMULATE_COP_IO \
- assert(c); assert(sv)
-PERL_CALLCONV SV* Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error);
-#define PERL_ARGS_ASSERT_EVAL_PV \
- assert(p)
-PERL_CALLCONV I32 Perl_eval_sv(pTHX_ SV* sv, I32 flags);
-#define PERL_ARGS_ASSERT_EVAL_SV \
- assert(sv)
-PERL_CALLCONV void Perl_fbm_compile(pTHX_ SV* sv, U32 flags);
-#define PERL_ARGS_ASSERT_FBM_COMPILE \
- assert(sv)
-PERL_CALLCONV char* Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlestr, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FBM_INSTR \
- assert(big); assert(bigend); assert(littlestr)
-
-PERL_CALLCONV SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
+
+PERL_CALLCONV void
+Perl_emulate_cop_io(pTHX_ const COP * const c, SV * const sv);
+#define PERL_ARGS_ASSERT_EMULATE_COP_IO \
+ assert(c); assert(sv)
+
+PERL_CALLCONV SV *
+Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error);
+#define PERL_ARGS_ASSERT_EVAL_PV \
+ assert(p)
+
+PERL_CALLCONV I32
+Perl_eval_sv(pTHX_ SV *sv, I32 flags);
+#define PERL_ARGS_ASSERT_EVAL_SV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_fbm_compile(pTHX_ SV *sv, U32 flags);
+#define PERL_ARGS_ASSERT_FBM_COMPILE \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_fbm_instr(pTHX_ unsigned char *big, unsigned char *bigend, SV *littlestr, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_FBM_INSTR \
+ assert(big); assert(bigend); assert(littlestr)
+
+PERL_CALLCONV SV *
+Perl_filter_add(pTHX_ filter_t funcp, SV *datasv);
#define PERL_ARGS_ASSERT_FILTER_ADD
-PERL_CALLCONV void Perl_filter_del(pTHX_ filter_t funcp);
-#define PERL_ARGS_ASSERT_FILTER_DEL \
- assert(funcp)
-PERL_CALLCONV I32 Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FILTER_READ \
- assert(buf_sv)
-
-PERL_CALLCONV void Perl_finalize_optree(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_FINALIZE_OPTREE \
- assert(o)
-PERL_CALLCONV CV * Perl_find_lexical_cv(pTHX_ PADOFFSET off);
+
+PERL_CALLCONV void
+Perl_filter_del(pTHX_ filter_t funcp);
+#define PERL_ARGS_ASSERT_FILTER_DEL \
+ assert(funcp)
+
+PERL_CALLCONV I32
+Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_FILTER_READ \
+ assert(buf_sv)
+
+PERL_CALLCONV CV *
+Perl_find_lexical_cv(pTHX_ PADOFFSET off)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_FIND_LEXICAL_CV
-PERL_CALLCONV CV* Perl_find_runcv(pTHX_ U32 *db_seqp)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV CV *
+Perl_find_runcv(pTHX_ U32 *db_seqp)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_FIND_RUNCV
-PERL_CALLCONV CV* Perl_find_runcv_where(pTHX_ U8 cond, IV arg, U32 *db_seqp)
- __attribute__warn_unused_result__;
+PERL_CALLCONV CV *
+Perl_find_runcv_where(pTHX_ U8 cond, IV arg, U32 *db_seqp)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_FIND_RUNCV_WHERE
-PERL_CALLCONV SV* Perl_find_rundefsv(pTHX);
+PERL_CALLCONV SV *
+Perl_find_rundefsv(pTHX);
#define PERL_ARGS_ASSERT_FIND_RUNDEFSV
-PERL_CALLCONV PADOFFSET Perl_find_rundefsvoffset(pTHX)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_FIND_RUNDEFSVOFFSET
-
-PERL_CALLCONV char* Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char *const *const search_ext, I32 flags);
-#define PERL_ARGS_ASSERT_FIND_SCRIPT \
- assert(scriptname)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 Perl_foldEQ(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ \
- assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 Perl_foldEQ_latin1(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \
- assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \
- assert(a); assert(b)
-#endif
-/* PERL_CALLCONV I32 foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
-#define PERL_ARGS_ASSERT_FOLDEQ_UTF8
-PERL_CALLCONV I32 Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags);
-#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS \
- assert(s1); assert(s2)
-PERL_CALLCONV char* Perl_form(pTHX_ const char* pat, ...)
- __attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_FORM \
- assert(pat)
-
-PERL_CALLCONV void Perl_free_tied_hv_pool(pTHX);
+
+PERL_CALLCONV char *
+Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char * const * const search_ext, I32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_FIND_SCRIPT \
+ assert(scriptname)
+
+/* PERL_CALLCONV I32
+foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
+
+PERL_CALLCONV I32
+Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags);
+#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS \
+ assert(s1); assert(s2)
+
+PERL_CALLCONV void
+Perl_forbid_outofblock_ops(pTHX_ OP *o, const char *blockname);
+#define PERL_ARGS_ASSERT_FORBID_OUTOFBLOCK_OPS \
+ assert(o); assert(blockname)
+
+PERL_CALLCONV void
+Perl_force_locale_unlock(void)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_FORCE_LOCALE_UNLOCK
+
+PERL_CALLCONV char *
+Perl_form(pTHX_ const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_FORM \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_free_tied_hv_pool(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_FREE_TIED_HV_POOL
-PERL_CALLCONV void Perl_free_tmps(pTHX);
+
+PERL_CALLCONV void
+Perl_free_tmps(pTHX);
#define PERL_ARGS_ASSERT_FREE_TMPS
-PERL_CALLCONV SV* Perl_get_and_check_backslash_N_name(pTHX_ const char* s, const char* e, const bool is_utf8, const char** error_msg)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME \
- assert(s); assert(e); assert(error_msg)
-
-PERL_CALLCONV AV* Perl_get_av(pTHX_ const char *name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_AV \
- assert(name)
-PERL_CALLCONV void* Perl_get_context(void)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_CONTEXT
-
-PERL_CALLCONV CV* Perl_get_cv(pTHX_ const char* name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_CV \
- assert(name)
-PERL_CALLCONV CV* Perl_get_cvn_flags(pTHX_ const char* name, STRLEN len, I32 flags);
-#define PERL_ARGS_ASSERT_GET_CVN_FLAGS \
- assert(name)
-PERL_CALLCONV void Perl_get_db_sub(pTHX_ SV **svp, CV *cv);
-#define PERL_ARGS_ASSERT_GET_DB_SUB \
- assert(cv)
-PERL_CALLCONV const char * Perl_get_deprecated_property_msg(const Size_t warning_offset)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV SV *
+Perl_get_and_check_backslash_N_name(pTHX_ const char *s, const char *e, const bool is_utf8, const char **error_msg)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME \
+ assert(s); assert(e); assert(error_msg)
+
+PERL_CALLCONV AV *
+Perl_get_av(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_AV \
+ assert(name)
+
+PERL_CALLCONV CV *
+Perl_get_cv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_CV \
+ assert(name)
+
+PERL_CALLCONV CV *
+Perl_get_cvn_flags(pTHX_ const char *name, STRLEN len, I32 flags);
+#define PERL_ARGS_ASSERT_GET_CVN_FLAGS \
+ assert(name)
+
+PERL_CALLCONV void
+Perl_get_db_sub(pTHX_ SV **svp, CV *cv);
+#define PERL_ARGS_ASSERT_GET_DB_SUB \
+ assert(cv)
+
+PERL_CALLCONV const char *
+Perl_get_deprecated_property_msg(const Size_t warning_offset)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_DEPRECATED_PROPERTY_MSG
-PERL_CALLCONV void Perl_get_hash_seed(pTHX_ unsigned char * const seed_buffer);
-#define PERL_ARGS_ASSERT_GET_HASH_SEED \
- assert(seed_buffer)
-PERL_CALLCONV HV* Perl_get_hv(pTHX_ const char *name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_HV \
- assert(name)
-PERL_CALLCONV const char* Perl_get_no_modify(pTHX)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV int
+Perl_get_extended_os_errno(void)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_GET_EXTENDED_OS_ERRNO
+
+PERL_CALLCONV void
+Perl_get_hash_seed(pTHX_ unsigned char * const seed_buffer)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_GET_HASH_SEED \
+ assert(seed_buffer)
+
+PERL_CALLCONV HV *
+Perl_get_hv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_HV \
+ assert(name)
+
+PERL_CALLCONV const char *
+Perl_get_no_modify(pTHX)
+ __attribute__deprecated__
+ __attribute__warn_unused_result__
+ __attribute__pure__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_GET_NO_MODIFY
-PERL_CALLCONV char** Perl_get_op_descs(pTHX)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV char **
+Perl_get_op_descs(pTHX)
+ __attribute__deprecated__
+ __attribute__warn_unused_result__
+ __attribute__pure__;
#define PERL_ARGS_ASSERT_GET_OP_DESCS
-PERL_CALLCONV char** Perl_get_op_names(pTHX)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV char **
+Perl_get_op_names(pTHX)
+ __attribute__deprecated__
+ __attribute__warn_unused_result__
+ __attribute__pure__;
#define PERL_ARGS_ASSERT_GET_OP_NAMES
-PERL_CALLCONV U32* Perl_get_opargs(pTHX)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV U32 *
+Perl_get_opargs(pTHX)
+ __attribute__deprecated__
+ __attribute__warn_unused_result__
+ __attribute__pure__
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_GET_OPARGS
-PERL_CALLCONV PPADDR_t* Perl_get_ppaddr(pTHX)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV PPADDR_t *
+Perl_get_ppaddr(pTHX)
+ __attribute__deprecated__
+ __attribute__warn_unused_result__
+ __attribute__pure__;
#define PERL_ARGS_ASSERT_GET_PPADDR
-PERL_CALLCONV SV * Perl_get_prop_definition(pTHX_ const int table_index)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_get_prop_definition(pTHX_ const int table_index)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_PROP_DEFINITION
-PERL_CALLCONV const char * const * Perl_get_prop_values(const int table_index)
- __attribute__warn_unused_result__;
+PERL_CALLCONV const char * const *
+Perl_get_prop_values(const int table_index)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_PROP_VALUES
-PERL_CALLCONV REGEXP * Perl_get_re_arg(pTHX_ SV *sv);
+PERL_CALLCONV REGEXP *
+Perl_get_re_arg(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_GET_RE_ARG
-PERL_CALLCONV SV* Perl_get_sv(pTHX_ const char *name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_SV \
- assert(name)
-PERL_CALLCONV MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_VTBL
-
-PERL_CALLCONV int Perl_getcwd_sv(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_GETCWD_SV \
- assert(sv)
-PERL_CALLCONV void Perl_gp_free(pTHX_ GV* gv);
+
+PERL_CALLCONV SV *
+Perl_get_sv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_SV \
+ assert(name)
+
+PERL_CALLCONV int
+Perl_getcwd_sv(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_GETCWD_SV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_gp_free(pTHX_ GV *gv);
#define PERL_ARGS_ASSERT_GP_FREE
-PERL_CALLCONV GP* Perl_gp_ref(pTHX_ GP* gp);
+
+PERL_CALLCONV GP *
+Perl_gp_ref(pTHX_ GP *gp);
#define PERL_ARGS_ASSERT_GP_REF
-PERL_CALLCONV bool Perl_grok_atoUV(const char* pv, UV* valptr, const char** endptr);
-#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);
-#define PERL_ARGS_ASSERT_GROK_BIN \
- assert(start); assert(len_p); assert(flags)
-PERL_CALLCONV UV Perl_grok_bin_oct_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result, const unsigned shift, const U8 lookup_bit, const char prefix);
-#define PERL_ARGS_ASSERT_GROK_BIN_OCT_HEX \
- assert(start); assert(len_p); assert(flags)
-PERL_CALLCONV UV Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result);
-#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);
-#define PERL_ARGS_ASSERT_GROK_INFNAN \
- assert(sp); assert(send)
-PERL_CALLCONV int Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep);
-#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);
-#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__;
-#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX \
- assert(sp); assert(send)
-
-PERL_CALLCONV UV Perl_grok_oct(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result);
-#define PERL_ARGS_ASSERT_GROK_OCT \
- assert(start); assert(len_p); assert(flags)
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV* Perl_gv_AVadd(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_AVADD
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV* Perl_gv_HVadd(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_HVADD
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV* Perl_gv_IOadd(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_GV_IOADD
-#endif
-PERL_CALLCONV GV* Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
+
+PERL_CALLCONV bool
+Perl_grok_atoUV(const char *pv, UV *valptr, const char **endptr);
+#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);
+#define PERL_ARGS_ASSERT_GROK_BIN \
+ assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV UV
+Perl_grok_bin_oct_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result, const unsigned shift, const U8 lookup_bit, const char prefix);
+#define PERL_ARGS_ASSERT_GROK_BIN_OCT_HEX \
+ assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV UV
+Perl_grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result);
+#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);
+#define PERL_ARGS_ASSERT_GROK_INFNAN \
+ assert(sp); assert(send)
+
+PERL_CALLCONV int
+Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep);
+#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);
+#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__;
+#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX \
+ assert(sp); assert(send)
+
+PERL_CALLCONV UV
+Perl_grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result);
+#define PERL_ARGS_ASSERT_GROK_OCT \
+ assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV GV *
+Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
#define PERL_ARGS_ASSERT_GV_ADD_BY_TYPE
-/* PERL_CALLCONV GV* gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD4
-
-PERL_CALLCONV GV* Perl_gv_autoload_pv(pTHX_ HV* stash, const char* namepv, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PV \
- assert(namepv)
-
-PERL_CALLCONV GV* Perl_gv_autoload_pvn(pTHX_ HV* stash, const char* name, STRLEN len, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN \
- assert(name)
-
-PERL_CALLCONV GV* Perl_gv_autoload_sv(pTHX_ HV* stash, SV* namesv, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD_SV \
- assert(namesv)
-
-PERL_CALLCONV void Perl_gv_check(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_GV_CHECK \
- assert(stash)
-PERL_CALLCONV SV* Perl_gv_const_sv(pTHX_ GV* gv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_CONST_SV \
- assert(gv)
-
-PERL_CALLCONV void Perl_gv_dump(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_GV_DUMP
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_gv_efullname(pTHX_ SV* sv, const GV* gv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_GV_EFULLNAME \
- assert(sv); assert(gv)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix);
-#define PERL_ARGS_ASSERT_GV_EFULLNAME3 \
- assert(sv); assert(gv)
-#endif
-PERL_CALLCONV void Perl_gv_efullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
-#define PERL_ARGS_ASSERT_GV_EFULLNAME4 \
- assert(sv); assert(gv)
-PERL_CALLCONV GV* Perl_gv_fetchfile(pTHX_ const char* name);
-#define PERL_ARGS_ASSERT_GV_FETCHFILE \
- assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchfile_flags(pTHX_ const char *const name, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS \
- assert(name)
-/* PERL_CALLCONV GV* gv_fetchmeth(pTHX_ HV* stash, const char* name, STRLEN len, I32 level); */
-#define PERL_ARGS_ASSERT_GV_FETCHMETH
-/* PERL_CALLCONV GV* gv_fetchmeth_autoload(pTHX_ HV* stash, const char* name, STRLEN len, I32 level); */
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_AUTOLOAD
-PERL_CALLCONV GV* Perl_gv_fetchmeth_pv(pTHX_ HV* stash, const char* name, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV \
- assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmeth_pv_autoload(pTHX_ HV* stash, const char* name, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV_AUTOLOAD \
- assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmeth_pvn(pTHX_ HV* stash, const char* name, STRLEN len, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN \
- assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmeth_pvn_autoload(pTHX_ HV* stash, const char* name, STRLEN len, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN_AUTOLOAD \
- assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmeth_sv(pTHX_ HV* stash, SV* namesv, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV \
- assert(namesv)
-PERL_CALLCONV GV* Perl_gv_fetchmeth_sv_autoload(pTHX_ HV* stash, SV* namesv, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD \
- assert(namesv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV* Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD \
- assert(stash); assert(name)
-#endif
-PERL_CALLCONV GV* Perl_gv_fetchmethod_autoload(pTHX_ HV* stash, const char* name, I32 autoload);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD \
- assert(stash); assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmethod_pv_flags(pTHX_ HV* stash, const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PV_FLAGS \
- assert(stash); assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmethod_pvn_flags(pTHX_ HV* stash, const char* name, const STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PVN_FLAGS \
- assert(stash); assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchmethod_sv_flags(pTHX_ HV* stash, SV* namesv, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS \
- assert(stash); assert(namesv)
-PERL_CALLCONV GV* Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 flags, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_FETCHPV \
- assert(nambeg)
-PERL_CALLCONV GV* Perl_gv_fetchpvn_flags(pTHX_ const char* name, STRLEN len, I32 flags, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS \
- assert(name)
-PERL_CALLCONV GV* Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_FETCHSV \
- assert(name)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_gv_fullname(pTHX_ SV* sv, const GV* gv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_GV_FULLNAME \
- assert(sv); assert(gv)
-#endif
+/* PERL_CALLCONV GV *
+gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
+ __attribute__warn_unused_result__; */
+
+PERL_CALLCONV GV *
+Perl_gv_autoload_pv(pTHX_ HV *stash, const char *namepv, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PV \
+ assert(namepv)
+
+PERL_CALLCONV GV *
+Perl_gv_autoload_pvn(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_autoload_sv(pTHX_ HV *stash, SV *namesv, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_SV \
+ assert(namesv)
+
+PERL_CALLCONV void
+Perl_gv_check(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_GV_CHECK \
+ assert(stash)
+
+PERL_CALLCONV SV *
+Perl_gv_const_sv(pTHX_ GV *gv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_CONST_SV \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_gv_dump(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_GV_DUMP
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_gv_fullname3(pTHX_ SV* sv, const GV* gv, const char* prefix);
-#define PERL_ARGS_ASSERT_GV_FULLNAME3 \
- assert(sv); assert(gv)
-#endif
-PERL_CALLCONV void Perl_gv_fullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
-#define PERL_ARGS_ASSERT_GV_FULLNAME4 \
- assert(sv); assert(gv)
-PERL_CALLCONV CV* Perl_gv_handler(pTHX_ HV* stash, I32 id)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_gv_efullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain);
+#define PERL_ARGS_ASSERT_GV_EFULLNAME4 \
+ assert(sv); assert(gv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchfile(pTHX_ const char *name);
+#define PERL_ARGS_ASSERT_GV_FETCHFILE \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchfile_flags(pTHX_ const char * const name, const STRLEN len, const U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS \
+ assert(name)
+
+/* PERL_CALLCONV GV *
+gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level); */
+
+/* PERL_CALLCONV GV *
+gv_fetchmeth_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level); */
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pv(pTHX_ HV *stash, const char *name, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pv_autoload(pTHX_ HV *stash, const char *name, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV_AUTOLOAD \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pvn(pTHX_ HV *stash, const char *name, STRLEN len, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pvn_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN_AUTOLOAD \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_sv(pTHX_ HV *stash, SV *namesv, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV \
+ assert(namesv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_sv_autoload(pTHX_ HV *stash, SV *namesv, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD \
+ assert(namesv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD \
+ assert(stash); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_pv_flags(pTHX_ HV *stash, const char *name, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PV_FLAGS \
+ assert(stash); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PVN_FLAGS \
+ assert(stash); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_sv_flags(pTHX_ HV *stash, SV *namesv, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS \
+ assert(stash); assert(namesv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 flags, const svtype sv_type);
+#define PERL_ARGS_ASSERT_GV_FETCHPV \
+ assert(nambeg)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchpvn_flags(pTHX_ const char *name, STRLEN len, I32 flags, const svtype sv_type);
+#define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS \
+ assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type);
+#define PERL_ARGS_ASSERT_GV_FETCHSV \
+ assert(name)
+
+PERL_CALLCONV void
+Perl_gv_fullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain);
+#define PERL_ARGS_ASSERT_GV_FULLNAME4 \
+ assert(sv); assert(gv)
+
+PERL_CALLCONV CV *
+Perl_gv_handler(pTHX_ HV *stash, I32 id)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GV_HANDLER
-/* PERL_CALLCONV void gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi); */
-#define PERL_ARGS_ASSERT_GV_INIT
-PERL_CALLCONV void Perl_gv_init_pv(pTHX_ GV* gv, HV* stash, const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_GV_INIT_PV \
- assert(gv); assert(name)
-PERL_CALLCONV void Perl_gv_init_pvn(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_GV_INIT_PVN \
- assert(gv); assert(name)
-PERL_CALLCONV void Perl_gv_init_sv(pTHX_ GV* gv, HV* stash, SV* namesv, U32 flags);
-#define PERL_ARGS_ASSERT_GV_INIT_SV \
- assert(gv); assert(namesv)
-PERL_CALLCONV void Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_GV_NAME_SET \
- assert(gv); assert(name)
-PERL_CALLCONV GV * Perl_gv_override(pTHX_ const char * const name, const STRLEN len);
-#define PERL_ARGS_ASSERT_GV_OVERRIDE \
- assert(name)
-PERL_CALLCONV void Perl_gv_setref(pTHX_ SV *const dsv, SV *const ssv);
-#define PERL_ARGS_ASSERT_GV_SETREF \
- assert(dsv); assert(ssv)
-PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHPV \
- assert(name)
-PERL_CALLCONV HV* Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHPVN \
- assert(name)
-PERL_CALLCONV HV* Perl_gv_stashsv(pTHX_ SV* sv, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHSV \
- assert(sv)
-PERL_CALLCONV void Perl_gv_try_downgrade(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE \
- assert(gv)
-PERL_CALLCONV AV** Perl_hv_backreferences_p(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P \
- assert(hv)
-PERL_CALLCONV SV* Perl_hv_bucket_ratio(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_BUCKET_RATIO \
- assert(hv)
-
-PERL_CALLCONV void Perl_hv_clear(pTHX_ HV *hv);
+/* PERL_CALLCONV void
+gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi); */
+
+PERL_CALLCONV void
+Perl_gv_init_pv(pTHX_ GV *gv, HV *stash, const char *name, U32 flags);
+#define PERL_ARGS_ASSERT_GV_INIT_PV \
+ assert(gv); assert(name)
+
+PERL_CALLCONV void
+Perl_gv_init_pvn(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_GV_INIT_PVN \
+ assert(gv); assert(name)
+
+PERL_CALLCONV void
+Perl_gv_init_sv(pTHX_ GV *gv, HV *stash, SV *namesv, U32 flags);
+#define PERL_ARGS_ASSERT_GV_INIT_SV \
+ assert(gv); assert(namesv)
+
+PERL_CALLCONV void
+Perl_gv_name_set(pTHX_ GV *gv, const char *name, U32 len, U32 flags);
+#define PERL_ARGS_ASSERT_GV_NAME_SET \
+ assert(gv); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_override(pTHX_ const char * const name, const STRLEN len);
+#define PERL_ARGS_ASSERT_GV_OVERRIDE \
+ assert(name)
+
+PERL_CALLCONV void
+Perl_gv_setref(pTHX_ SV * const dsv, SV * const ssv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_GV_SETREF \
+ assert(dsv); assert(ssv)
+
+PERL_CALLCONV HV *
+Perl_gv_stashpv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GV_STASHPV \
+ assert(name)
+
+PERL_CALLCONV HV *
+Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 flags);
+#define PERL_ARGS_ASSERT_GV_STASHPVN \
+ assert(name)
+
+PERL_CALLCONV HV *
+Perl_gv_stashsv(pTHX_ SV *sv, I32 flags);
+#define PERL_ARGS_ASSERT_GV_STASHSV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_gv_try_downgrade(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE \
+ assert(gv)
+
+PERL_CALLCONV struct xpvhv_aux *
+Perl_hv_auxalloc(pTHX_ HV *hv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_AUXALLOC \
+ assert(hv)
+
+PERL_CALLCONV AV **
+Perl_hv_backreferences_p(pTHX_ HV *hv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P \
+ assert(hv)
+
+PERL_CALLCONV SV *
+Perl_hv_bucket_ratio(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_BUCKET_RATIO \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_clear(pTHX_ HV *hv);
#define PERL_ARGS_ASSERT_HV_CLEAR
-PERL_CALLCONV void Perl_hv_clear_placeholders(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS \
- assert(hv)
-PERL_CALLCONV void* Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char* key, STRLEN klen, int flags, int action, SV *val, U32 hash);
-#define PERL_ARGS_ASSERT_HV_COMMON
-PERL_CALLCONV void* Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash);
-#define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN \
- assert(key)
-PERL_CALLCONV HV * Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_COPY_HINTS_HV
-PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV *hv, HE *entry);
-#define PERL_ARGS_ASSERT_HV_DELAYFREE_ENT \
- assert(hv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV* Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags);
-#define PERL_ARGS_ASSERT_HV_DELETE \
- assert(key)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV* Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash);
-#define PERL_ARGS_ASSERT_HV_DELETE_ENT \
- assert(keysv)
-#endif
-PERL_CALLCONV HE** Perl_hv_eiter_p(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_EITER_P \
- assert(hv)
-
-PERL_CALLCONV void Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter);
-#define PERL_ARGS_ASSERT_HV_EITER_SET \
- assert(hv)
-PERL_CALLCONV void Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_HV_ENAME_ADD \
- assert(hv); assert(name)
-PERL_CALLCONV void Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_HV_ENAME_DELETE \
- assert(hv); assert(name)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_EXISTS \
- assert(key)
-#endif
+PERL_CALLCONV void
+Perl_hv_clear_placeholders(pTHX_ HV *hv);
+#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS \
+ assert(hv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_EXISTS_ENT \
- assert(keysv)
-#endif
+PERL_CALLCONV void *
+Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int flags, int action, SV *val, U32 hash);
+#define PERL_ARGS_ASSERT_HV_COMMON
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV** Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval);
-#define PERL_ARGS_ASSERT_HV_FETCH \
- assert(key)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV HE* Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash);
-#define PERL_ARGS_ASSERT_HV_FETCH_ENT \
- assert(keysv)
-#endif
-PERL_CALLCONV STRLEN Perl_hv_fill(pTHX_ HV *const hv);
-#define PERL_ARGS_ASSERT_HV_FILL \
- assert(hv)
-PERL_CALLCONV void Perl_hv_free_ent(pTHX_ HV *hv, HE *entry);
-#define PERL_ARGS_ASSERT_HV_FREE_ENT \
- assert(hv)
-PERL_CALLCONV I32 Perl_hv_iterinit(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_ITERINIT \
- assert(hv)
-PERL_CALLCONV char* Perl_hv_iterkey(pTHX_ HE* entry, I32* retlen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERKEY \
- assert(entry); assert(retlen)
-
-PERL_CALLCONV SV* Perl_hv_iterkeysv(pTHX_ HE* entry)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERKEYSV \
- assert(entry)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV HE* Perl_hv_iternext(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERNEXT \
- assert(hv)
-#endif
+PERL_CALLCONV void *
+Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash);
+#define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN \
+ assert(key)
-PERL_CALLCONV HE* Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS \
- assert(hv)
-
-PERL_CALLCONV SV* Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERNEXTSV \
- assert(hv); assert(key); assert(retlen)
-
-PERL_CALLCONV SV* Perl_hv_iterval(pTHX_ HV *hv, HE *entry)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERVAL \
- assert(hv); assert(entry)
-
-PERL_CALLCONV void Perl_hv_ksplit(pTHX_ HV *hv, IV newmax);
-#define PERL_ARGS_ASSERT_HV_KSPLIT \
- assert(hv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how);
-#define PERL_ARGS_ASSERT_HV_MAGIC \
- assert(hv)
-#endif
-PERL_CALLCONV void Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_HV_NAME_SET \
- assert(hv)
-PERL_CALLCONV I32 Perl_hv_placeholders_get(pTHX_ const HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET \
- assert(hv)
-
-PERL_CALLCONV SSize_t* Perl_hv_placeholders_p(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P \
- assert(hv)
-
-PERL_CALLCONV void Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph);
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET \
- assert(hv)
-PERL_CALLCONV void Perl_hv_pushkv(pTHX_ HV *hv, U32 flags);
-#define PERL_ARGS_ASSERT_HV_PUSHKV \
- assert(hv)
-PERL_CALLCONV void Perl_hv_rand_set(pTHX_ HV *hv, U32 new_xhv_rand);
-#define PERL_ARGS_ASSERT_HV_RAND_SET \
- assert(hv)
-PERL_CALLCONV I32* Perl_hv_riter_p(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_RITER_P \
- assert(hv)
-
-PERL_CALLCONV void Perl_hv_riter_set(pTHX_ HV *hv, I32 riter);
-#define PERL_ARGS_ASSERT_HV_RITER_SET \
- assert(hv)
-PERL_CALLCONV SV* Perl_hv_scalar(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_SCALAR \
- assert(hv)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV** Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash);
-#define PERL_ARGS_ASSERT_HV_STORE
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV HE* Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash);
-#define PERL_ARGS_ASSERT_HV_STORE_ENT
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV** Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags);
-#define PERL_ARGS_ASSERT_HV_STORE_FLAGS
-#endif
-/* PERL_CALLCONV void hv_undef(pTHX_ HV *hv); */
-#define PERL_ARGS_ASSERT_HV_UNDEF
-PERL_CALLCONV void Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags);
+PERL_CALLCONV HV *
+Perl_hv_copy_hints_hv(pTHX_ HV * const ohv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_COPY_HINTS_HV
+
+PERL_CALLCONV void
+Perl_hv_delayfree_ent(pTHX_ HV *notused, HE *entry);
+#define PERL_ARGS_ASSERT_HV_DELAYFREE_ENT
+
+PERL_CALLCONV void
+Perl_hv_dump(pTHX_ HV *hv);
+#define PERL_ARGS_ASSERT_HV_DUMP
+
+PERL_CALLCONV HE **
+Perl_hv_eiter_p(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_EITER_P \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter);
+#define PERL_ARGS_ASSERT_HV_EITER_SET \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_ENAME_ADD \
+ assert(hv); assert(name)
+
+PERL_CALLCONV void
+Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_ENAME_DELETE \
+ assert(hv); assert(name)
+
+PERL_CALLCONV STRLEN
+Perl_hv_fill(pTHX_ HV * const hv);
+#define PERL_ARGS_ASSERT_HV_FILL \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_free_ent(pTHX_ HV *notused, HE *entry);
+#define PERL_ARGS_ASSERT_HV_FREE_ENT
+
+PERL_CALLCONV I32
+Perl_hv_iterinit(pTHX_ HV *hv);
+#define PERL_ARGS_ASSERT_HV_ITERINIT \
+ assert(hv)
+
+PERL_CALLCONV char *
+Perl_hv_iterkey(pTHX_ HE *entry, I32 *retlen)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERKEY \
+ assert(entry); assert(retlen)
+
+PERL_CALLCONV SV *
+Perl_hv_iterkeysv(pTHX_ HE *entry)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERKEYSV \
+ assert(entry)
+
+PERL_CALLCONV HE *
+Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS \
+ assert(hv)
+
+PERL_CALLCONV SV *
+Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERNEXTSV \
+ assert(hv); assert(key); assert(retlen)
+
+PERL_CALLCONV SV *
+Perl_hv_iterval(pTHX_ HV *hv, HE *entry)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERVAL \
+ assert(hv); assert(entry)
+
+PERL_CALLCONV void
+Perl_hv_ksplit(pTHX_ HV *hv, IV newmax);
+#define PERL_ARGS_ASSERT_HV_KSPLIT \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
+#define PERL_ARGS_ASSERT_HV_NAME_SET \
+ assert(hv)
+
+PERL_CALLCONV I32
+Perl_hv_placeholders_get(pTHX_ const HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET \
+ assert(hv)
+
+PERL_CALLCONV SSize_t *
+Perl_hv_placeholders_p(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph);
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_pushkv(pTHX_ HV *hv, U32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_PUSHKV \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_rand_set(pTHX_ HV *hv, U32 new_xhv_rand);
+#define PERL_ARGS_ASSERT_HV_RAND_SET \
+ assert(hv)
+
+PERL_CALLCONV I32 *
+Perl_hv_riter_p(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_RITER_P \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_riter_set(pTHX_ HV *hv, I32 riter);
+#define PERL_ARGS_ASSERT_HV_RITER_SET \
+ assert(hv)
+
+PERL_CALLCONV SV *
+Perl_hv_scalar(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_SCALAR \
+ assert(hv)
+
+/* PERL_CALLCONV SV **
+hv_stores(pTHX_ HV *hv, const char * const key, SV *val); */
+
+/* PERL_CALLCONV void
+hv_undef(pTHX_ HV *hv); */
+
+PERL_CALLCONV void
+Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags);
#define PERL_ARGS_ASSERT_HV_UNDEF_FLAGS
-/* PERL_CALLCONV I32 ibcmp(pTHX_ const char* a, const char* b, I32 len)
- __attribute__warn_unused_result__
- __attribute__pure__; */
-#define PERL_ARGS_ASSERT_IBCMP
-
-/* PERL_CALLCONV I32 ibcmp_locale(pTHX_ const char* a, const char* b, I32 len)
- __attribute__warn_unused_result__
- __attribute__pure__; */
-#define PERL_ARGS_ASSERT_IBCMP_LOCALE
-
-/* PERL_CALLCONV I32 ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
-#define PERL_ARGS_ASSERT_IBCMP_UTF8
-PERL_CALLCONV void Perl_init_argv_symbols(pTHX_ int argc, char **argv);
-#define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS \
- assert(argv)
-PERL_CALLCONV void Perl_init_constants(pTHX);
+
+/* PERL_CALLCONV I32
+ibcmp(pTHX_ const char *a, const char *b, I32 len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+/* PERL_CALLCONV I32
+ibcmp_locale(pTHX_ const char *a, const char *b, I32 len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+/* PERL_CALLCONV I32
+ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
+
+PERL_CALLCONV STRLEN
+Perl_infix_plugin_standard(pTHX_ char *operator_ptr, STRLEN operator_len, struct Perl_custom_infix **def);
+#define PERL_ARGS_ASSERT_INFIX_PLUGIN_STANDARD \
+ assert(operator_ptr); assert(def)
+
+PERL_CALLCONV void
+Perl_init_argv_symbols(pTHX_ int argc, char **argv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS \
+ assert(argv)
+
+PERL_CALLCONV void
+Perl_init_constants(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_INIT_CONSTANTS
-PERL_CALLCONV void Perl_init_dbargs(pTHX);
+
+PERL_CALLCONV void
+Perl_init_dbargs(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_INIT_DBARGS
-PERL_CALLCONV void Perl_init_debugger(pTHX);
+
+PERL_CALLCONV void
+Perl_init_debugger(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_INIT_DEBUGGER
-PERL_CALLCONV int Perl_init_i18nl10n(pTHX_ int printwarn);
+
+PERL_CALLCONV int
+Perl_init_i18nl10n(pTHX_ int printwarn);
#define PERL_ARGS_ASSERT_INIT_I18NL10N
-#ifndef NO_MATHOMS
-PERL_CALLCONV int Perl_init_i18nl14n(pTHX_ int printwarn)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_INIT_I18NL14N
-#endif
-PERL_CALLCONV void Perl_init_named_cv(pTHX_ CV *cv, OP *nameop);
-#define PERL_ARGS_ASSERT_INIT_NAMED_CV \
- assert(cv); assert(nameop)
-PERL_CALLCONV void Perl_init_stacks(pTHX);
-#define PERL_ARGS_ASSERT_INIT_STACKS
-PERL_CALLCONV void Perl_init_tm(pTHX_ struct tm *ptm);
-#define PERL_ARGS_ASSERT_INIT_TM \
- assert(ptm)
-PERL_CALLCONV void Perl_init_uniprops(pTHX);
-#define PERL_ARGS_ASSERT_INIT_UNIPROPS
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_instr(const char* big, const char* little)
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_INSTR \
- assert(big); assert(little)
-#endif
+PERL_CALLCONV void
+Perl_init_named_cv(pTHX_ CV *cv, OP *nameop);
+#define PERL_ARGS_ASSERT_INIT_NAMED_CV \
+ assert(cv); assert(nameop)
-PERL_CALLCONV U32 Perl_intro_my(pTHX);
-#define PERL_ARGS_ASSERT_INTRO_MY
-PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVERT
+PERL_CALLCONV void
+Perl_init_stacks(pTHX);
+#define PERL_ARGS_ASSERT_INIT_STACKS
-PERL_CALLCONV void Perl_invmap_dump(pTHX_ SV* invlist, UV * map);
-#define PERL_ARGS_ASSERT_INVMAP_DUMP \
- assert(invlist); assert(map)
-PERL_CALLCONV bool Perl_io_close(pTHX_ IO* io, GV *gv, bool not_implicit, bool warn_on_fail);
-#define PERL_ARGS_ASSERT_IO_CLOSE \
- assert(io)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISC9_STRICT_UTF8_CHAR \
- assert(s0); assert(e)
-#endif
+PERL_CALLCONV void
+Perl_init_tm(pTHX_ struct tm *ptm);
+#define PERL_ARGS_ASSERT_INIT_TM \
+ assert(ptm)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISSTRICT_UTF8_CHAR \
- assert(s0); assert(e)
-#endif
+PERL_CALLCONV void
+Perl_init_uniprops(pTHX)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INIT_UNIPROPS
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t Perl_isUTF8_CHAR(const U8 * const s0, const U8 * const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISUTF8_CHAR \
- assert(s0); assert(e)
-#endif
+PERL_CALLCONV U32
+Perl_intro_my(pTHX);
+#define PERL_ARGS_ASSERT_INTRO_MY
-/* PERL_CALLCONV bool is_ascii_string(const U8* const s, STRLEN len)
- __attribute__warn_unused_result__
- __attribute__pure__; */
-#define PERL_ARGS_ASSERT_IS_ASCII_STRING
-
-/* PERL_CALLCONV bool is_c9strict_utf8_string(const U8 *s, STRLEN len)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING
-
-/* PERL_CALLCONV bool is_c9strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
-#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOC
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_c9strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
-#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN \
- assert(s)
-#endif
-/* PERL_CALLCONV bool is_invariant_string(const U8* const s, STRLEN len)
- __attribute__warn_unused_result__
- __attribute__pure__; */
-#define PERL_ARGS_ASSERT_IS_INVARIANT_STRING
+PERL_CALLCONV OP *
+Perl_invert(pTHX_ OP *cmd)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INVERT
-PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_invmap_dump(pTHX_ SV *invlist, UV *map)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INVMAP_DUMP \
+ assert(invlist); assert(map)
+
+PERL_CALLCONV bool
+Perl_io_close(pTHX_ IO *io, GV *gv, bool is_explicit, bool warn_on_fail)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_IO_CLOSE \
+ assert(io)
+
+/* PERL_CALLCONV bool
+is_ascii_string(const U8 * const s, STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+/* PERL_CALLCONV bool
+is_c9strict_utf8_string(const U8 *s, STRLEN len)
+ __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_c9strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
+
+/* PERL_CALLCONV bool
+is_invariant_string(const U8 * const s, STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+PERL_CALLCONV I32
+Perl_is_lvalue_sub(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_IS_LVALUE_SUB
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL \
- assert(pv); assert(what); assert(op_name)
-#endif
-
-/* PERL_CALLCONV bool is_strict_utf8_string(const U8 *s, STRLEN len)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING
-
-/* PERL_CALLCONV bool is_strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
-#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOC
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
-#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN \
- assert(s)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV STRLEN Perl_is_utf8_char(const U8 *s)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR \
- assert(s)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV STRLEN Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end);
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF \
- assert(buf); assert(buf_end)
-#endif
-PERL_CALLCONV STRLEN Perl_is_utf8_char_helper(const U8 * const s, const U8 * e, const U32 flags)
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_HELPER \
- assert(s); assert(e)
-
-/* PERL_CALLCONV bool is_utf8_fixed_width_buf_flags(const U8 * const s, STRLEN len, const U32 flags); */
-#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_FLAGS
-/* PERL_CALLCONV bool is_utf8_fixed_width_buf_loc_flags(const U8 * const s, STRLEN len, const U8 **ep, const U32 flags); */
-#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOC_FLAGS
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
-#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS \
- assert(s)
-#endif
-/* PERL_CALLCONV bool is_utf8_invariant_string(const U8* const s, STRLEN len)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING_LOC \
- assert(s)
-#endif
-
-/* PERL_CALLCONV bool is_utf8_string(const U8 *s, STRLEN len)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_string_flags(const U8 *s, STRLEN len, const U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS \
- assert(s)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \
- assert(s); assert(ep)
-#endif
-/* PERL_CALLCONV bool is_utf8_string_loc_flags(const U8 *s, STRLEN len, const U8 **ep, const U32 flags); */
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC_FLAGS
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \
- assert(s)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_string_loclen_flags(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS \
- assert(s)
-#endif
-/* PERL_CALLCONV bool is_utf8_valid_partial_char(const U8 * const s, const U8 * const e)
- __attribute__warn_unused_result__
- __attribute__pure__; */
-#define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_valid_partial_char_flags(const U8 * const s, const U8 * const e, const U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS \
- assert(s); assert(e)
-#endif
-
-PERL_CALLCONV bool Perl_isinfnan(NV nv)
- __attribute__warn_unused_result__
- __attribute__pure__;
+/* PERL_CALLCONV bool
+is_strict_utf8_string(const U8 *s, STRLEN len)
+ __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
+
+PERL_CALLCONV Size_t
+Perl_is_utf8_FF_helper_(const U8 * const s0, const U8 * const e, const bool require_partial)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_IS_UTF8_FF_HELPER_ \
+ assert(s0); assert(e)
+
+PERL_CALLCONV STRLEN
+Perl_is_utf8_char_helper_(const U8 * const s, const U8 *e, const U32 flags)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_HELPER_ \
+ assert(s); assert(e)
+
+/* PERL_CALLCONV bool
+is_utf8_fixed_width_buf_flags(const U8 * const s, STRLEN len, const U32 flags); */
+
+/* PERL_CALLCONV bool
+is_utf8_fixed_width_buf_loc_flags(const U8 * const s, STRLEN len, const U8 **ep, const U32 flags); */
+
+/* PERL_CALLCONV bool
+is_utf8_invariant_string(const U8 * const s, STRLEN len)
+ __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_utf8_string(const U8 *s, STRLEN len)
+ __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_utf8_string_loc_flags(const U8 *s, STRLEN len, const U8 **ep, const U32 flags); */
+
+/* PERL_CALLCONV bool
+is_utf8_valid_partial_char(const U8 * const s0, const U8 * const e)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+PERL_CALLCONV bool
+Perl_isinfnan(NV nv)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
#define PERL_ARGS_ASSERT_ISINFNAN
-PERL_CALLCONV bool Perl_isinfnansv(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_ISINFNANSV \
- assert(sv)
-PERL_CALLCONV OP* Perl_jmaybe(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_JMAYBE \
- assert(o)
-PERL_CALLCONV I32 Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords)
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_KEYWORD \
- assert(name)
-
-PERL_CALLCONV int Perl_keyword_plugin_standard(pTHX_ char* keyword_ptr, STRLEN keyword_len, OP** op_ptr);
-#define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD \
- assert(keyword_ptr); assert(op_ptr)
-PERL_CALLCONV void Perl_leave_adjust_stacks(pTHX_ SV **from_sp, SV **to_sp, U8 gimme, int filter);
-#define PERL_ARGS_ASSERT_LEAVE_ADJUST_STACKS \
- assert(from_sp); assert(to_sp)
-PERL_CALLCONV void Perl_leave_scope(pTHX_ I32 base);
+PERL_CALLCONV bool
+Perl_isinfnansv(pTHX_ SV *sv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_ISINFNANSV \
+ assert(sv)
+
+PERL_CALLCONV OP *
+Perl_jmaybe(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_JMAYBE \
+ assert(o)
+
+PERL_CALLCONV I32
+Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords)
+ __attribute__warn_unused_result__
+ __attribute__pure__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_KEYWORD \
+ assert(name)
+
+PERL_CALLCONV int
+Perl_keyword_plugin_standard(pTHX_ char *keyword_ptr, STRLEN keyword_len, OP **op_ptr);
+#define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD \
+ assert(keyword_ptr); assert(op_ptr)
+
+PERL_CALLCONV void
+Perl_leave_adjust_stacks(pTHX_ SV **from_sp, SV **to_sp, U8 gimme, int filter);
+#define PERL_ARGS_ASSERT_LEAVE_ADJUST_STACKS \
+ assert(from_sp); assert(to_sp)
+
+PERL_CALLCONV void
+Perl_leave_scope(pTHX_ I32 base);
#define PERL_ARGS_ASSERT_LEAVE_SCOPE
-PERL_CALLCONV bool Perl_lex_bufutf8(pTHX);
+
+PERL_CALLCONV bool
+Perl_lex_bufutf8(pTHX);
#define PERL_ARGS_ASSERT_LEX_BUFUTF8
-PERL_CALLCONV void Perl_lex_discard_to(pTHX_ char* ptr);
-#define PERL_ARGS_ASSERT_LEX_DISCARD_TO \
- assert(ptr)
-PERL_CALLCONV char* Perl_lex_grow_linestr(pTHX_ STRLEN len);
+
+PERL_CALLCONV void
+Perl_lex_discard_to(pTHX_ char *ptr);
+#define PERL_ARGS_ASSERT_LEX_DISCARD_TO \
+ assert(ptr)
+
+PERL_CALLCONV char *
+Perl_lex_grow_linestr(pTHX_ STRLEN len);
#define PERL_ARGS_ASSERT_LEX_GROW_LINESTR
-PERL_CALLCONV bool Perl_lex_next_chunk(pTHX_ U32 flags);
+
+PERL_CALLCONV bool
+Perl_lex_next_chunk(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_LEX_NEXT_CHUNK
-PERL_CALLCONV I32 Perl_lex_peek_unichar(pTHX_ U32 flags);
+
+PERL_CALLCONV I32
+Perl_lex_peek_unichar(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_LEX_PEEK_UNICHAR
-PERL_CALLCONV void Perl_lex_read_space(pTHX_ U32 flags);
+
+PERL_CALLCONV void
+Perl_lex_read_space(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_LEX_READ_SPACE
-PERL_CALLCONV void Perl_lex_read_to(pTHX_ char* ptr);
-#define PERL_ARGS_ASSERT_LEX_READ_TO \
- assert(ptr)
-PERL_CALLCONV I32 Perl_lex_read_unichar(pTHX_ U32 flags);
+
+PERL_CALLCONV void
+Perl_lex_read_to(pTHX_ char *ptr);
+#define PERL_ARGS_ASSERT_LEX_READ_TO \
+ assert(ptr)
+
+PERL_CALLCONV I32
+Perl_lex_read_unichar(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_LEX_READ_UNICHAR
-PERL_CALLCONV void Perl_lex_start(pTHX_ SV* line, PerlIO *rsfp, U32 flags);
+
+PERL_CALLCONV void
+Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, U32 flags);
#define PERL_ARGS_ASSERT_LEX_START
-PERL_CALLCONV void Perl_lex_stuff_pv(pTHX_ const char* pv, U32 flags);
-#define PERL_ARGS_ASSERT_LEX_STUFF_PV \
- assert(pv)
-PERL_CALLCONV void Perl_lex_stuff_pvn(pTHX_ const char* pv, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_LEX_STUFF_PVN \
- assert(pv)
-PERL_CALLCONV void Perl_lex_stuff_sv(pTHX_ SV* sv, U32 flags);
-#define PERL_ARGS_ASSERT_LEX_STUFF_SV \
- assert(sv)
-PERL_CALLCONV void Perl_lex_unstuff(pTHX_ char* ptr);
-#define PERL_ARGS_ASSERT_LEX_UNSTUFF \
- assert(ptr)
-PERL_CALLCONV OP* Perl_list(pTHX_ OP* o);
+
+PERL_CALLCONV void
+Perl_lex_stuff_pv(pTHX_ const char *pv, U32 flags);
+#define PERL_ARGS_ASSERT_LEX_STUFF_PV \
+ assert(pv)
+
+PERL_CALLCONV void
+Perl_lex_stuff_pvn(pTHX_ const char *pv, STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_LEX_STUFF_PVN \
+ assert(pv)
+
+PERL_CALLCONV void
+Perl_lex_stuff_sv(pTHX_ SV *sv, U32 flags);
+#define PERL_ARGS_ASSERT_LEX_STUFF_SV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_lex_unstuff(pTHX_ char *ptr);
+#define PERL_ARGS_ASSERT_LEX_UNSTUFF \
+ assert(ptr)
+
+PERL_CALLCONV OP *
+Perl_list(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_LIST
-PERL_CALLCONV HV* Perl_load_charnames(pTHX_ SV * char_name, const char * context, const STRLEN context_len, const char ** error_msg)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LOAD_CHARNAMES \
- assert(char_name); assert(context); assert(error_msg)
-
-PERL_CALLCONV void Perl_load_module(pTHX_ U32 flags, SV* name, SV* ver, ...);
-#define PERL_ARGS_ASSERT_LOAD_MODULE \
- assert(name)
-PERL_CALLCONV OP* Perl_localize(pTHX_ OP *o, I32 lex);
-#define PERL_ARGS_ASSERT_LOCALIZE \
- assert(o)
-PERL_CALLCONV I32 Perl_looks_like_number(pTHX_ SV *const sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER \
- assert(sv)
-
-PERL_CALLCONV int Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_cleararylen_p(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARENV \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_clearhint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARHINT \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_clearhints(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARHINTS \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_clearisa(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARISA \
- assert(mg)
-PERL_CALLCONV int Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARPACK \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARSIG \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_copycallchecker(pTHX_ SV* sv, MAGIC *mg, SV *nsv, const char *name, I32 namlen);
-#define PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER \
- assert(sv); assert(mg); assert(nsv)
-PERL_CALLCONV void Perl_magic_dump(pTHX_ const MAGIC *mg);
+
+PERL_CALLCONV HV *
+Perl_load_charnames(pTHX_ SV *char_name, const char *context, const STRLEN context_len, const char **error_msg)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_LOAD_CHARNAMES \
+ assert(char_name); assert(context); assert(error_msg)
+
+PERL_CALLCONV void
+Perl_load_module(pTHX_ U32 flags, SV *name, SV *ver, ...);
+#define PERL_ARGS_ASSERT_LOAD_MODULE \
+ assert(name)
+
+PERL_CALLCONV_NO_RET void
+Perl_locale_panic(const char *msg, const char *file_name, const line_t line, const int errnum)
+ __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_LOCALE_PANIC \
+ assert(msg); assert(file_name)
+
+PERL_CALLCONV OP *
+Perl_localize(pTHX_ OP *o, I32 lex)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_LOCALIZE \
+ assert(o)
+
+PERL_CALLCONV I32
+Perl_looks_like_number(pTHX_ SV * const sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER \
+ assert(sv)
+
+PERL_CALLCONV int
+Perl_magic_clear_all_env(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_cleararylen_p(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearenv(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARENV \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhint(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHINT \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhints(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHINTS \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhook(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHOOK \
+ assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhookall(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHOOKALL \
+ assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearisa(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARISA \
+ assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearpack(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARPACK \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearsig(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARSIG \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_copycallchecker(pTHX_ SV *sv, MAGIC *mg, SV *nsv, const char *name, I32 namlen)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER \
+ assert(sv); assert(mg); assert(nsv)
+
+PERL_CALLCONV void
+Perl_magic_dump(pTHX_ const MAGIC *mg);
#define PERL_ARGS_ASSERT_MAGIC_DUMP
-PERL_CALLCONV int Perl_magic_existspack(pTHX_ SV* sv, const MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_EXISTSPACK \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_freearylen_p(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_freemglob(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEMGLOB \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_freeovrld(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEOVRLD \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_freeutf8(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEUTF8 \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_get(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GET \
- assert(sv); assert(mg)
-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);
-#define PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getdefelem(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETDEFELEM \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getnkeys(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETNKEYS \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getpack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETPACK \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getpos(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETPOS \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getsig(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETSIG \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getsubstr(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETSUBSTR \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_gettaint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETTAINT \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getuvar(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETUVAR \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_getvec(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETVEC \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg);
-#define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS \
- assert(sv); assert(mg)
-PERL_CALLCONV SV* Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, U32 argc, ...);
-#define PERL_ARGS_ASSERT_MAGIC_METHCALL \
- assert(sv); assert(mg); assert(meth)
-PERL_CALLCONV int Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key);
-#define PERL_ARGS_ASSERT_MAGIC_NEXTPACK \
- assert(sv); assert(mg); assert(key)
-PERL_CALLCONV U32 Perl_magic_regdata_cnt(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_REGDATA_CNT \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_regdatum_get(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET \
- assert(sv); assert(mg)
-PERL_CALLCONV SV* Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg);
-#define PERL_ARGS_ASSERT_MAGIC_SCALARPACK \
- assert(hv); assert(mg)
-PERL_CALLCONV int Perl_magic_set(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SET \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETARYLEN \
- assert(sv); assert(mg)
-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);
-#define PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setdefelem(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETDEFELEM \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setenv(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETENV \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_sethint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETHINT \
- assert(sv); assert(mg)
-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);
-#define PERL_ARGS_ASSERT_MAGIC_SETLVREF \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETMGLOB \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setnkeys(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETNKEYS \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setnonelem(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETNONELEM \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setpack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETPACK \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setpos(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETPOS \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setregexp(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETREGEXP \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setsig(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETSIG \
- assert(mg)
-PERL_CALLCONV int Perl_magic_setsubstr(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETSUBSTR \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETTAINT \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setutf8(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETUTF8 \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETUVAR \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETVEC \
- assert(sv); assert(mg)
-PERL_CALLCONV U32 Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SIZEPACK \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_WIPEPACK \
- assert(sv); assert(mg)
-PERL_CALLCONV Malloc_t Perl_malloc(MEM_SIZE nbytes)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV int
+Perl_magic_existspack(pTHX_ SV *sv, const MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_EXISTSPACK \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freearylen_p(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freedestruct(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEDESTRUCT \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freemglob(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEMGLOB \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freeovrld(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEOVRLD \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freeutf8(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEUTF8 \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GET \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getarylen(pTHX_ SV *sv, const MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETARYLEN \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getdebugvar(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getdefelem(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETDEFELEM \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getnkeys(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETNKEYS \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getpack(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETPACK \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getpos(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETPOS \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getsig(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETSIG \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getsubstr(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETSUBSTR \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_gettaint(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETTAINT \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getuvar(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETUVAR \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getvec(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETVEC \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV SV *
+Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, U32 argc, ...)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_METHCALL \
+ assert(sv); assert(mg); assert(meth)
+
+PERL_CALLCONV int
+Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_NEXTPACK \
+ assert(sv); assert(mg); assert(key)
+
+PERL_CALLCONV U32
+Perl_magic_regdata_cnt(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_REGDATA_CNT \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV SV *
+Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SCALARPACK \
+ assert(hv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SET \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_set_all_env(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setarylen(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETARYLEN \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setdbline(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETDBLINE \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setdebugvar(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setdefelem(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETDEFELEM \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETENV \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_sethint(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETHINT \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_sethook(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETHOOK \
+ assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_sethookall(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETHOOKALL \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETISA \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setlvref(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETLVREF \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setmglob(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETMGLOB \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setnkeys(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETNKEYS \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setnonelem(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETNONELEM \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setpack(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETPACK \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETPOS \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setregexp(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETREGEXP \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETSIG \
+ assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setsigall(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETSIGALL \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setsubstr(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETSUBSTR \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_settaint(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETTAINT \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setutf8(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETUTF8 \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setuvar(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETUVAR \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setvec(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETVEC \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV U32
+Perl_magic_sizepack(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SIZEPACK \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_wipepack(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_WIPEPACK \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV Malloc_t
+Perl_malloc(MEM_SIZE nbytes)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_MALLOC
-PERL_CALLCONV I32 * Perl_markstack_grow(pTHX);
+PERL_CALLCONV I32 *
+Perl_markstack_grow(pTHX);
#define PERL_ARGS_ASSERT_MARKSTACK_GROW
-PERL_CALLCONV SV* Perl_mess(pTHX_ const char* pat, ...)
- __attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_MESS \
- assert(pat)
-
-PERL_CALLCONV SV* Perl_mess_sv(pTHX_ SV* basemsg, bool consume);
-#define PERL_ARGS_ASSERT_MESS_SV \
- assert(basemsg)
-PERL_CALLCONV Free_t Perl_mfree(Malloc_t where);
+
+PERL_CALLCONV int
+Perl_mbtowc_(pTHX_ const wchar_t *pwc, const char *s, const Size_t len);
+#define PERL_ARGS_ASSERT_MBTOWC_
+
+PERL_CALLCONV SV *
+Perl_mess(pTHX_ const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_MESS \
+ assert(pat)
+
+PERL_CALLCONV SV *
+Perl_mess_sv(pTHX_ SV *basemsg, bool consume);
+#define PERL_ARGS_ASSERT_MESS_SV \
+ assert(basemsg)
+
+PERL_CALLCONV Free_t
+Perl_mfree(Malloc_t where);
#define PERL_ARGS_ASSERT_MFREE
-PERL_CALLCONV int Perl_mg_clear(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_CLEAR \
- assert(sv)
-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(const SV* sv, int type)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV int
+Perl_mg_clear(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_CLEAR \
+ assert(sv)
+
+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(const SV *sv, int type)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_MG_FIND
-PERL_CALLCONV MAGIC* Perl_mg_find_mglob(pTHX_ SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MG_FIND_MGLOB \
- assert(sv)
+PERL_CALLCONV MAGIC *
+Perl_mg_find_mglob(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_MG_FIND_MGLOB \
+ assert(sv)
-PERL_CALLCONV MAGIC* Perl_mg_findext(const SV* sv, int type, const MGVTBL *vtbl)
- __attribute__warn_unused_result__;
+PERL_CALLCONV MAGIC *
+Perl_mg_findext(const SV *sv, int type, const MGVTBL *vtbl)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_MG_FINDEXT
-PERL_CALLCONV int Perl_mg_free(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_FREE \
- assert(sv)
-PERL_CALLCONV void Perl_mg_free_type(pTHX_ SV* sv, int how);
-#define PERL_ARGS_ASSERT_MG_FREE_TYPE \
- assert(sv)
-PERL_CALLCONV void Perl_mg_freeext(pTHX_ SV* sv, int how, const MGVTBL *vtbl);
-#define PERL_ARGS_ASSERT_MG_FREEEXT \
- assert(sv)
-PERL_CALLCONV int Perl_mg_get(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_GET \
- assert(sv)
-PERL_CALLCONV U32 Perl_mg_length(pTHX_ SV* sv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_MG_LENGTH \
- assert(sv)
-
-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(SV* sv);
-#define PERL_ARGS_ASSERT_MG_MAGICAL \
- assert(sv)
-PERL_CALLCONV int Perl_mg_set(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_SET \
- assert(sv)
-PERL_CALLCONV I32 Perl_mg_size(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_SIZE \
- assert(sv)
-PERL_CALLCONV void Perl_mini_mktime(struct tm *ptm);
-#define PERL_ARGS_ASSERT_MINI_MKTIME \
- assert(ptm)
-PERL_CALLCONV int Perl_mode_from_discipline(pTHX_ const char* s, STRLEN len);
+PERL_CALLCONV int
+Perl_mg_free(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_FREE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_mg_free_type(pTHX_ SV *sv, int how);
+#define PERL_ARGS_ASSERT_MG_FREE_TYPE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_mg_freeext(pTHX_ SV *sv, int how, const MGVTBL *vtbl);
+#define PERL_ARGS_ASSERT_MG_FREEEXT \
+ assert(sv)
+
+PERL_CALLCONV int
+Perl_mg_get(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_GET \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_mg_localize(pTHX_ SV *sv, SV *nsv, bool setmagic)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MG_LOCALIZE \
+ assert(sv); assert(nsv)
+
+PERL_CALLCONV void
+Perl_mg_magical(SV *sv);
+#define PERL_ARGS_ASSERT_MG_MAGICAL \
+ assert(sv)
+
+PERL_CALLCONV int
+Perl_mg_set(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_SET \
+ assert(sv)
+
+PERL_CALLCONV I32
+Perl_mg_size(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_SIZE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_mini_mktime(struct tm *ptm);
+#define PERL_ARGS_ASSERT_MINI_MKTIME \
+ assert(ptm)
+
+PERL_CALLCONV int
+Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_MODE_FROM_DISCIPLINE
-PERL_CALLCONV void * Perl_more_bodies(pTHX_ const svtype sv_type, const size_t body_size, const size_t arena_size);
+
+PERL_CALLCONV void *
+Perl_more_bodies(pTHX_ const svtype sv_type, const size_t body_size, const size_t arena_size);
#define PERL_ARGS_ASSERT_MORE_BODIES
-PERL_CALLCONV const char* Perl_moreswitches(pTHX_ const char* s);
-#define PERL_ARGS_ASSERT_MORESWITCHES \
- assert(s)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE char * Perl_mortal_getenv(const char * str)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MORTAL_GETENV \
- assert(str)
-#endif
-PERL_CALLCONV const struct mro_alg * Perl_mro_get_from_name(pTHX_ SV *name);
-#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME \
- assert(name)
-PERL_CALLCONV AV* Perl_mro_get_linear_isa(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA \
- assert(stash)
-PERL_CALLCONV SV* Perl_mro_get_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which);
-#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA \
- assert(smeta); assert(which)
-PERL_CALLCONV void Perl_mro_isa_changed_in(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN \
- assert(stash)
-PERL_CALLCONV struct mro_meta* Perl_mro_meta_init(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_META_INIT \
- assert(stash)
-PERL_CALLCONV void Perl_mro_method_changed_in(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN \
- assert(stash)
-PERL_CALLCONV void Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash, const GV * const gv, U32 flags);
-#define PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED \
- assert(gv)
-PERL_CALLCONV void Perl_mro_register(pTHX_ const struct mro_alg *mro);
-#define PERL_ARGS_ASSERT_MRO_REGISTER \
- assert(mro)
-PERL_CALLCONV void Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name);
-#define PERL_ARGS_ASSERT_MRO_SET_MRO \
- assert(meta); assert(name)
-PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which, SV *const data);
-#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
- assert(smeta); assert(which); assert(data)
-PERL_CALLCONV SV* Perl_multiconcat_stringify(pTHX_ const OP* o);
-#define PERL_ARGS_ASSERT_MULTICONCAT_STRINGIFY \
- assert(o)
-PERL_CALLCONV SV* Perl_multideref_stringify(pTHX_ const OP* o, CV *cv);
-#define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY \
- assert(o)
-PERL_CALLCONV NV Perl_my_atof(pTHX_ const char *s);
-#define PERL_ARGS_ASSERT_MY_ATOF \
- assert(s)
-PERL_CALLCONV char* Perl_my_atof2(pTHX_ const char *orig, NV* value);
-#define PERL_ARGS_ASSERT_MY_ATOF2 \
- assert(orig); assert(value)
-PERL_CALLCONV char* Perl_my_atof3(pTHX_ const char *orig, NV* value, const STRLEN len);
-#define PERL_ARGS_ASSERT_MY_ATOF3 \
- assert(orig); assert(value)
-PERL_CALLCONV OP * Perl_my_attrs(pTHX_ OP *o, OP *attrs);
-#define PERL_ARGS_ASSERT_MY_ATTRS \
- assert(o)
-PERL_CALLCONV void Perl_my_clearenv(pTHX);
+PERL_CALLCONV const char *
+Perl_moreswitches(pTHX_ const char *s);
+#define PERL_ARGS_ASSERT_MORESWITCHES \
+ assert(s)
+
+PERL_CALLCONV void
+Perl_mortal_destructor_sv(pTHX_ SV *coderef, SV *args);
+#define PERL_ARGS_ASSERT_MORTAL_DESTRUCTOR_SV \
+ assert(coderef)
+
+PERL_CALLCONV void
+Perl_mortal_svfunc_x(pTHX_ SVFUNC_t f, SV *p);
+#define PERL_ARGS_ASSERT_MORTAL_SVFUNC_X
+
+PERL_CALLCONV const struct mro_alg *
+Perl_mro_get_from_name(pTHX_ SV *name);
+#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME \
+ assert(name)
+
+PERL_CALLCONV AV *
+Perl_mro_get_linear_isa(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA \
+ assert(stash)
+
+PERL_CALLCONV SV *
+Perl_mro_get_private_data(pTHX_ struct mro_meta * const smeta, const struct mro_alg * const which);
+#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA \
+ assert(smeta); assert(which)
+
+PERL_CALLCONV void
+Perl_mro_isa_changed_in(pTHX_ HV *stash)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN \
+ assert(stash)
+
+PERL_CALLCONV struct mro_meta *
+Perl_mro_meta_init(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_MRO_META_INIT \
+ assert(stash)
+
+PERL_CALLCONV void
+Perl_mro_method_changed_in(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN \
+ assert(stash)
+
+PERL_CALLCONV void
+Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash, const GV * const gv, U32 flags);
+#define PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_mro_register(pTHX_ const struct mro_alg *mro);
+#define PERL_ARGS_ASSERT_MRO_REGISTER \
+ assert(mro)
+
+PERL_CALLCONV void
+Perl_mro_set_mro(pTHX_ struct mro_meta * const meta, SV * const name);
+#define PERL_ARGS_ASSERT_MRO_SET_MRO \
+ assert(meta); assert(name)
+
+PERL_CALLCONV SV *
+Perl_mro_set_private_data(pTHX_ struct mro_meta * const smeta, const struct mro_alg * const which, SV * const data);
+#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
+ assert(smeta); assert(which); assert(data)
+
+PERL_CALLCONV SV *
+Perl_multiconcat_stringify(pTHX_ const OP *o);
+#define PERL_ARGS_ASSERT_MULTICONCAT_STRINGIFY \
+ assert(o)
+
+PERL_CALLCONV SV *
+Perl_multideref_stringify(pTHX_ const OP *o, CV *cv);
+#define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY \
+ assert(o)
+
+PERL_CALLCONV NV
+Perl_my_atof(pTHX_ const char *s);
+#define PERL_ARGS_ASSERT_MY_ATOF \
+ assert(s)
+
+PERL_CALLCONV char *
+Perl_my_atof2(pTHX_ const char *orig, NV *value);
+#define PERL_ARGS_ASSERT_MY_ATOF2 \
+ assert(orig); assert(value)
+
+PERL_CALLCONV char *
+Perl_my_atof3(pTHX_ const char *orig, NV *value, const STRLEN len);
+#define PERL_ARGS_ASSERT_MY_ATOF3 \
+ assert(orig); assert(value)
+
+PERL_CALLCONV OP *
+Perl_my_attrs(pTHX_ OP *o, OP *attrs)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_ATTRS \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_my_clearenv(pTHX);
#define PERL_ARGS_ASSERT_MY_CLEARENV
-PERL_CALLCONV int Perl_my_dirfd(DIR* dir);
+
+PERL_CALLCONV int
+Perl_my_dirfd(DIR *dir);
#define PERL_ARGS_ASSERT_MY_DIRFD
-PERL_CALLCONV_NO_RET void Perl_my_exit(pTHX_ U32 status)
- __attribute__noreturn__;
+
+PERL_CALLCONV_NO_RET void
+Perl_my_exit(pTHX_ U32 status)
+ __attribute__noreturn__;
#define PERL_ARGS_ASSERT_MY_EXIT
-PERL_CALLCONV_NO_RET void Perl_my_failure_exit(pTHX)
- __attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_my_failure_exit(pTHX)
+ __attribute__noreturn__;
#define PERL_ARGS_ASSERT_MY_FAILURE_EXIT
-PERL_CALLCONV I32 Perl_my_fflush_all(pTHX);
+PERL_CALLCONV I32
+Perl_my_fflush_all(pTHX);
#define PERL_ARGS_ASSERT_MY_FFLUSH_ALL
-PERL_CALLCONV Pid_t Perl_my_fork(void);
+
+PERL_CALLCONV Pid_t
+Perl_my_fork(void);
#define PERL_ARGS_ASSERT_MY_FORK
-/* PERL_CALLCONV I32 my_lstat(pTHX); */
-#define PERL_ARGS_ASSERT_MY_LSTAT
-PERL_CALLCONV I32 Perl_my_lstat_flags(pTHX_ const U32 flags);
+
+/* PERL_CALLCONV I32
+my_lstat(pTHX); */
+
+PERL_CALLCONV I32
+Perl_my_lstat_flags(pTHX_ const U32 flags);
#define PERL_ARGS_ASSERT_MY_LSTAT_FLAGS
-PERL_CALLCONV int Perl_my_mkostemp_cloexec(char *templte, int flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC \
- assert(templte)
-
-PERL_CALLCONV int Perl_my_mkstemp_cloexec(char *templte)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_MKSTEMP_CLOEXEC \
- assert(templte)
-
-PERL_CALLCONV PerlIO* Perl_my_popen_list(pTHX_ const char* mode, int n, SV ** args);
-#define PERL_ARGS_ASSERT_MY_POPEN_LIST \
- assert(mode); assert(args)
-PERL_CALLCONV void Perl_my_setenv(pTHX_ const char* nam, const char* val);
+
+PERL_CALLCONV int
+Perl_my_mkostemp_cloexec(char *templte, int flags)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC \
+ assert(templte)
+
+PERL_CALLCONV int
+Perl_my_mkstemp_cloexec(char *templte)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_MKSTEMP_CLOEXEC \
+ assert(templte)
+
+PERL_CALLCONV PerlIO *
+Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args);
+#define PERL_ARGS_ASSERT_MY_POPEN_LIST \
+ assert(mode); assert(args)
+
+PERL_CALLCONV void
+Perl_my_setenv(pTHX_ const char *nam, const char *val);
#define PERL_ARGS_ASSERT_MY_SETENV
-PERL_CALLCONV int Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
- __attribute__format__(__printf__,3,4);
-#define PERL_ARGS_ASSERT_MY_SNPRINTF \
- assert(buffer); assert(format)
-PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
+PERL_CALLCONV int
+Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
+ __attribute__format__(__printf__,3,4);
+#define PERL_ARGS_ASSERT_MY_SNPRINTF \
+ assert(buffer); assert(format)
+
+PERL_CALLCONV int
+Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
#define PERL_ARGS_ASSERT_MY_SOCKETPAIR
-/* PERL_CALLCONV I32 my_stat(pTHX); */
-#define PERL_ARGS_ASSERT_MY_STAT
-PERL_CALLCONV I32 Perl_my_stat_flags(pTHX_ const U32 flags);
+
+/* PERL_CALLCONV I32
+my_stat(pTHX); */
+
+PERL_CALLCONV I32
+Perl_my_stat_flags(pTHX_ const U32 flags);
#define PERL_ARGS_ASSERT_MY_STAT_FLAGS
-PERL_CALLCONV char* Perl_my_strerror(pTHX_ const int errnum);
-#define PERL_ARGS_ASSERT_MY_STRERROR
-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);
-#define PERL_ARGS_ASSERT_MY_STRFTIME \
- assert(fmt)
-
-PERL_CALLCONV NV Perl_my_strtod(const char * const s, char ** e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_STRTOD \
- assert(s)
-
-PERL_CALLCONV void Perl_my_unexec(pTHX);
+
+PERL_CALLCONV const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t *utf8ness)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_STRERROR \
+ assert(utf8ness)
+
+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);
+#define PERL_ARGS_ASSERT_MY_STRFTIME \
+ assert(fmt)
+
+PERL_CALLCONV char *
+Perl_my_strftime8_temp(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst, utf8ness_t *utf8ness)
+ __attribute__format__(__strftime__,pTHX_1,0);
+#define PERL_ARGS_ASSERT_MY_STRFTIME8_TEMP \
+ assert(fmt)
+
+PERL_CALLCONV NV
+Perl_my_strtod(const char * const s, char **e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_MY_STRTOD \
+ assert(s)
+
+PERL_CALLCONV void
+Perl_my_unexec(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_MY_UNEXEC
-PERL_CALLCONV int Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap);
-#define PERL_ARGS_ASSERT_MY_VSNPRINTF \
- assert(buffer); assert(format)
-PERL_CALLCONV OP* Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
+
+PERL_CALLCONV int
+Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap);
+#define PERL_ARGS_ASSERT_MY_VSNPRINTF \
+ assert(buffer); assert(format)
+
+PERL_CALLCONV OP *
+Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
#define PERL_ARGS_ASSERT_NEWANONATTRSUB
-PERL_CALLCONV OP* Perl_newANONHASH(pTHX_ OP* o)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP *
+Perl_newANONHASH(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWANONHASH
-PERL_CALLCONV OP* Perl_newANONLIST(pTHX_ OP* o)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newANONLIST(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWANONLIST
-PERL_CALLCONV OP* Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
+PERL_CALLCONV OP *
+Perl_newANONSUB(pTHX_ I32 floor, OP *proto, OP *block);
#define PERL_ARGS_ASSERT_NEWANONSUB
-PERL_CALLCONV OP* Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP *
+Perl_newARGDEFELEMOP(pTHX_ I32 flags, OP *expr, I32 argindex)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWARGDEFELEMOP \
+ assert(expr)
+
+PERL_CALLCONV OP *
+Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWASSIGNOP
-/* PERL_CALLCONV CV* newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); */
-#define PERL_ARGS_ASSERT_NEWATTRSUB
-PERL_CALLCONV CV* Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block, bool o_is_gv);
-#define PERL_ARGS_ASSERT_NEWATTRSUB_X
-#ifndef NO_MATHOMS
-PERL_CALLCONV AV* Perl_newAV(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWAV
-#endif
+/* PERL_CALLCONV CV *
+newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); */
-PERL_CALLCONV OP* Perl_newAVREF(pTHX_ OP* o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWAVREF \
- assert(o)
+PERL_CALLCONV CV *
+Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block, bool o_is_gv);
+#define PERL_ARGS_ASSERT_NEWATTRSUB_X
-PERL_CALLCONV OP* Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newAVREF(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWAVREF \
+ assert(o)
+
+/* PERL_CALLCONV AV *
+newAV_alloc_x(pTHX_ SSize_t size)
+ __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV AV *
+newAV_alloc_xz(pTHX_ SSize_t size)
+ __attribute__warn_unused_result__; */
+
+PERL_CALLCONV AV *
+Perl_newAVav(pTHX_ AV *oav)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWAVAV
+
+PERL_CALLCONV AV *
+Perl_newAVhv(pTHX_ HV *ohv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWAVHV
+
+PERL_CALLCONV OP *
+Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWBINOP
-PERL_CALLCONV OP* Perl_newCONDOP(pTHX_ I32 flags, OP* first, OP* trueop, OP* falseop)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWCONDOP \
- assert(first)
+PERL_CALLCONV OP *
+Perl_newCONDOP(pTHX_ I32 flags, OP *first, OP *trueop, OP *falseop)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWCONDOP \
+ assert(first)
-PERL_CALLCONV CV* Perl_newCONSTSUB(pTHX_ HV* stash, const char* name, SV* sv);
+PERL_CALLCONV CV *
+Perl_newCONSTSUB(pTHX_ HV *stash, const char *name, SV *sv);
#define PERL_ARGS_ASSERT_NEWCONSTSUB
-PERL_CALLCONV CV* Perl_newCONSTSUB_flags(pTHX_ HV* stash, const char* name, STRLEN len, U32 flags, SV* sv);
+
+PERL_CALLCONV CV *
+Perl_newCONSTSUB_flags(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags, SV *sv);
#define PERL_ARGS_ASSERT_NEWCONSTSUB_FLAGS
-PERL_CALLCONV OP* Perl_newCVREF(pTHX_ I32 flags, OP* o)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP *
+Perl_newCVREF(pTHX_ I32 flags, OP *o)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWCVREF
-PERL_CALLCONV OP* Perl_newDEFSVOP(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newDEFEROP(pTHX_ I32 flags, OP *block)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWDEFEROP \
+ assert(block)
+
+PERL_CALLCONV OP *
+Perl_newDEFSVOP(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWDEFSVOP
-PERL_CALLCONV void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
+PERL_CALLCONV void
+Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block);
#define PERL_ARGS_ASSERT_NEWFORM
-PERL_CALLCONV OP* Perl_newFOROP(pTHX_ I32 flags, OP* sv, OP* expr, OP* block, OP* cont)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWFOROP \
- assert(expr)
-
-PERL_CALLCONV OP* Perl_newGIVENOP(pTHX_ OP* cond, OP* block, PADOFFSET defsv_off)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWGIVENOP \
- assert(cond); assert(block)
-
-PERL_CALLCONV GP * Perl_newGP(pTHX_ GV *const gv);
-#define PERL_ARGS_ASSERT_NEWGP \
- assert(gv)
-PERL_CALLCONV OP* Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWGVOP \
- assert(gv)
-
-PERL_CALLCONV OP* Perl_newGVREF(pTHX_ I32 type, OP* o)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP *
+Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWFOROP \
+ assert(expr)
+
+PERL_CALLCONV OP *
+Perl_newGIVENOP(pTHX_ OP *cond, OP *block, PADOFFSET defsv_off)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGIVENOP \
+ assert(cond); assert(block)
+
+PERL_CALLCONV GP *
+Perl_newGP(pTHX_ GV * const gv);
+#define PERL_ARGS_ASSERT_NEWGP \
+ assert(gv)
+
+PERL_CALLCONV OP *
+Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGVOP \
+ assert(gv)
+
+PERL_CALLCONV OP *
+Perl_newGVREF(pTHX_ I32 type, OP *o)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWGVREF
-/* PERL_CALLCONV GV* newGVgen(pTHX_ const char* pack); */
-#define PERL_ARGS_ASSERT_NEWGVGEN
-PERL_CALLCONV GV* Perl_newGVgen_flags(pTHX_ const char* pack, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWGVGEN_FLAGS \
- assert(pack)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV HV* Perl_newHV(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWHV
-#endif
+/* PERL_CALLCONV GV *
+newGVgen(pTHX_ const char *pack); */
-PERL_CALLCONV OP* Perl_newHVREF(pTHX_ OP* o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWHVREF \
- assert(o)
+PERL_CALLCONV GV *
+Perl_newGVgen_flags(pTHX_ const char *pack, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGVGEN_FLAGS \
+ assert(pack)
-PERL_CALLCONV HV* Perl_newHVhv(pTHX_ HV *hv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWHVHV
+PERL_CALLCONV OP *
+Perl_newHVREF(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWHVREF \
+ assert(o)
-#ifndef NO_MATHOMS
-PERL_CALLCONV IO* Perl_newIO(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWIO
-#endif
+PERL_CALLCONV HV *
+Perl_newHVhv(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWHVHV
-PERL_CALLCONV OP* Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWLISTOP
-PERL_CALLCONV OP* Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWLOGOP \
- assert(first); assert(other)
-
-PERL_CALLCONV OP* Perl_newLOOPEX(pTHX_ I32 type, OP* label)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWLOOPEX \
- assert(label)
-
-PERL_CALLCONV OP* Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWLOOPOP
-
-PERL_CALLCONV OP* Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP* dynamic_meth)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWMETHOP \
- assert(dynamic_meth)
-
-PERL_CALLCONV OP* Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV* const_meth)
- __attribute__warn_unused_result__;
-#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);
-#define PERL_ARGS_ASSERT_NEWMYSUB \
- assert(o)
-PERL_CALLCONV OP* Perl_newNULLLIST(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWLOGOP \
+ assert(first); assert(other)
+
+PERL_CALLCONV OP *
+Perl_newLOOPEX(pTHX_ I32 type, OP *label)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWLOOPEX \
+ assert(label)
+
+PERL_CALLCONV OP *
+Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP *expr, OP *block)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWLOOPOP \
+ assert(expr)
+
+PERL_CALLCONV OP *
+Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP *dynamic_meth)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWMETHOP \
+ assert(dynamic_meth)
+
+PERL_CALLCONV OP *
+Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV * const_meth)
+ __attribute__warn_unused_result__;
+#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);
+#define PERL_ARGS_ASSERT_NEWMYSUB \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_newNULLLIST(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWNULLLIST
-PERL_CALLCONV OP* Perl_newOP(pTHX_ I32 optype, I32 flags)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newOP(pTHX_ I32 optype, I32 flags)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWOP
-PERL_CALLCONV PADNAMELIST * Perl_newPADNAMELIST(size_t max)
- __attribute__warn_unused_result__;
+PERL_CALLCONV PADNAMELIST *
+Perl_newPADNAMELIST(size_t max)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWPADNAMELIST
-PERL_CALLCONV PADNAME * Perl_newPADNAMEouter(PADNAME *outer)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPADNAMEOUTER \
- assert(outer)
-
-PERL_CALLCONV PADNAME * Perl_newPADNAMEpvn(const char *s, STRLEN len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPADNAMEPVN \
- assert(s)
-
-PERL_CALLCONV OP* Perl_newPMOP(pTHX_ I32 type, I32 flags)
- __attribute__warn_unused_result__;
+PERL_CALLCONV PADNAME *
+Perl_newPADNAMEouter(PADNAME *outer)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWPADNAMEOUTER \
+ assert(outer)
+
+PERL_CALLCONV PADNAME *
+Perl_newPADNAMEpvn(const char *s, STRLEN len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWPADNAMEPVN \
+ assert(s)
+
+PERL_CALLCONV OP *
+Perl_newPMOP(pTHX_ I32 type, I32 flags)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWPMOP
-PERL_CALLCONV void Perl_newPROG(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_NEWPROG \
- assert(o)
-PERL_CALLCONV OP* Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPVOP
-
-PERL_CALLCONV OP* Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWRANGE \
- assert(left); assert(right)
-
-PERL_CALLCONV SV* Perl_newRV(pTHX_ SV *const sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWRV \
- assert(sv)
+PERL_CALLCONV void
+Perl_newPROG(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_NEWPROG \
+ assert(o)
-PERL_CALLCONV SV* Perl_newRV_noinc(pTHX_ SV *const tmpRef)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWRV_NOINC \
- assert(tmpRef)
+PERL_CALLCONV OP *
+Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWPVOP
-PERL_CALLCONV OP* Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newRANGE(pTHX_ I32 flags, OP *left, OP *right)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWRANGE \
+ assert(left); assert(right)
+
+PERL_CALLCONV SV *
+Perl_newRV(pTHX_ SV * const sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWRV \
+ assert(sv)
+
+PERL_CALLCONV OP *
+Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listop)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSLICEOP
-PERL_CALLCONV OP* Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSTATEOP
-PERL_CALLCONV CV* Perl_newSTUB(pTHX_ GV *gv, bool fake);
-#define PERL_ARGS_ASSERT_NEWSTUB \
- assert(gv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV CV* Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block);
-#define PERL_ARGS_ASSERT_NEWSUB
-#endif
-PERL_CALLCONV SV* Perl_newSV(pTHX_ const STRLEN len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSV
-
-PERL_CALLCONV OP* Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVOP \
- assert(sv)
+PERL_CALLCONV CV *
+Perl_newSTUB(pTHX_ GV *gv, bool fake)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEWSTUB \
+ assert(gv)
-PERL_CALLCONV OP* Perl_newSVREF(pTHX_ OP* o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVREF \
- assert(o)
-
-PERL_CALLCONV SV* Perl_newSV_type(pTHX_ const svtype type)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSV_TYPE
-
-PERL_CALLCONV SV* Perl_newSVavdefelem(pTHX_ AV *av, SSize_t ix, bool extendible)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVAVDEFELEM \
- assert(av)
+PERL_CALLCONV SV *
+Perl_newSV(pTHX_ const STRLEN len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSV
-PERL_CALLCONV SV* Perl_newSVhek(pTHX_ const HEK *const hek)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVOP \
+ assert(sv)
+
+PERL_CALLCONV OP *
+Perl_newSVREF(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVREF \
+ assert(o)
+
+PERL_CALLCONV SV *
+Perl_newSV_false(pTHX)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSV_FALSE
+
+PERL_CALLCONV SV *
+Perl_newSV_true(pTHX)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSV_TRUE
+
+PERL_CALLCONV SV *
+Perl_newSVavdefelem(pTHX_ AV *av, SSize_t ix, bool extendible)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEWSVAVDEFELEM \
+ assert(av)
+
+PERL_CALLCONV SV *
+Perl_newSVbool(pTHX_ const bool bool_val)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVBOOL
+
+PERL_CALLCONV SV *
+Perl_newSVhek(pTHX_ const HEK * const hek)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVHEK
-PERL_CALLCONV SV* Perl_newSViv(pTHX_ const IV i)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVhek_mortal(pTHX_ const HEK * const hek)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVHEK_MORTAL
+
+PERL_CALLCONV SV *
+Perl_newSViv(pTHX_ const IV i)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVIV
-PERL_CALLCONV SV* Perl_newSVnv(pTHX_ const NV n)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVnv(pTHX_ const NV n)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVNV
-PERL_CALLCONV SV* Perl_newSVpv(pTHX_ const char *const s, const STRLEN len)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpv(pTHX_ const char * const s, const STRLEN len)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVPV
-PERL_CALLCONV SV* Perl_newSVpv_share(pTHX_ const char* s, U32 hash)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpv_share(pTHX_ const char *s, U32 hash)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVPV_SHARE
-PERL_CALLCONV SV* Perl_newSVpvf(pTHX_ const char *const pat, ...)
- __attribute__warn_unused_result__
- __attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_NEWSVPVF \
- assert(pat)
+PERL_CALLCONV SV *
+Perl_newSVpvf(pTHX_ const char * const pat, ...)
+ __attribute__warn_unused_result__
+ __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_NEWSVPVF \
+ assert(pat)
-PERL_CALLCONV SV* Perl_newSVpvn(pTHX_ const char *const buffer, const STRLEN len)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpvn(pTHX_ const char * const buffer, const STRLEN len)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVPVN
-PERL_CALLCONV SV* Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpvn_flags(pTHX_ const char * const s, const STRLEN len, const U32 flags)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVPVN_FLAGS
-PERL_CALLCONV SV* Perl_newSVpvn_share(pTHX_ const char* s, I32 len, U32 hash)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpvn_share(pTHX_ const char *s, I32 len, U32 hash)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVPVN_SHARE
-PERL_CALLCONV SV* Perl_newSVrv(pTHX_ SV *const rv, const char *const classname);
-#define PERL_ARGS_ASSERT_NEWSVRV \
- assert(rv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV* Perl_newSVsv(pTHX_ SV *const old)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVSV
-#endif
+PERL_CALLCONV SV *
+Perl_newSVrv(pTHX_ SV * const rv, const char * const classname);
+#define PERL_ARGS_ASSERT_NEWSVRV \
+ assert(rv)
-PERL_CALLCONV SV* Perl_newSVsv_flags(pTHX_ SV *const old, I32 flags)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVsv_flags(pTHX_ SV * const old, I32 flags)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVSV_FLAGS
-/* PERL_CALLCONV SV* newSVsv_nomg(pTHX_ SV *const old)
- __attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_NEWSVSV_NOMG
+/* PERL_CALLCONV SV *
+newSVsv_nomg(pTHX_ SV * const old)
+ __attribute__warn_unused_result__; */
-PERL_CALLCONV SV* Perl_newSVuv(pTHX_ const UV u)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVuv(pTHX_ const UV u)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVUV
-PERL_CALLCONV OP* Perl_newTRYCATCHOP(pTHX_ I32 flags, OP* tryblock, OP *catchvar, OP* catchblock)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWTRYCATCHOP \
- assert(tryblock); assert(catchvar); assert(catchblock)
+PERL_CALLCONV OP *
+Perl_newTRYCATCHOP(pTHX_ I32 flags, OP *tryblock, OP *catchvar, OP *catchblock)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWTRYCATCHOP \
+ assert(tryblock); assert(catchvar); assert(catchblock)
-PERL_CALLCONV OP* Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWUNOP
-PERL_CALLCONV OP* Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP* first, UNOP_AUX_item *aux)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP *first, UNOP_AUX_item *aux)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWUNOP_AUX
-PERL_CALLCONV OP* Perl_newWHENOP(pTHX_ OP* cond, OP* block)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWWHENOP \
- assert(block)
+PERL_CALLCONV OP *
+Perl_newWHENOP(pTHX_ OP *cond, OP *block)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWWHENOP \
+ assert(block)
-PERL_CALLCONV OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, OP* expr, OP* block, OP* cont, I32 has_my)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, OP *expr, OP *block, OP *cont, I32 has_my)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWWHILEOP
-PERL_CALLCONV CV* Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename);
-#define PERL_ARGS_ASSERT_NEWXS \
- assert(subaddr); assert(filename)
-PERL_CALLCONV CV * Perl_newXS_deffile(pTHX_ const char *name, XSUBADDR_t subaddr);
-#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);
-#define PERL_ARGS_ASSERT_NEWXS_FLAGS \
- 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);
-#define PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS \
- assert(subaddr)
-PERL_CALLCONV PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
- __attribute__warn_unused_result__;
+PERL_CALLCONV CV *
+Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename);
+#define PERL_ARGS_ASSERT_NEWXS \
+ assert(subaddr); assert(filename)
+
+PERL_CALLCONV CV *
+Perl_newXS_deffile(pTHX_ const char *name, XSUBADDR_t subaddr);
+#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);
+#define PERL_ARGS_ASSERT_NEWXS_FLAGS \
+ 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__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS \
+ assert(subaddr)
+
+PERL_CALLCONV PERL_SI *
+Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEW_STACKINFO
-PERL_CALLCONV SV* Perl_new_version(pTHX_ SV *ver);
-#define PERL_ARGS_ASSERT_NEW_VERSION \
- assert(ver)
-PERL_CALLCONV STRLEN * Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits, STRLEN size)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \
- assert(bits)
-
-PERL_CALLCONV PerlIO* Perl_nextargv(pTHX_ GV* gv, bool nomagicopen);
-#define PERL_ARGS_ASSERT_NEXTARGV \
- assert(gv)
-PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_NINSTR \
- assert(big); assert(bigend); assert(little); assert(lend)
-
-PERL_CALLCONV void Perl_no_bareword_filehandle(pTHX_ const char *fhname);
-#define PERL_ARGS_ASSERT_NO_BAREWORD_FILEHANDLE \
- assert(fhname)
-PERL_CALLCONV_NO_RET void Perl_noperl_die(const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_NOPERL_DIE \
- assert(pat)
-
-PERL_CALLCONV int Perl_nothreadhook(pTHX);
+PERL_CALLCONV SV *
+Perl_new_version(pTHX_ SV *ver);
+#define PERL_ARGS_ASSERT_NEW_VERSION \
+ assert(ver)
+
+PERL_CALLCONV char *
+Perl_new_warnings_bitfield(pTHX_ char *buffer, const char * const bits, STRLEN size)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \
+ assert(bits)
+
+PERL_CALLCONV PerlIO *
+Perl_nextargv(pTHX_ GV *gv, bool nomagicopen)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEXTARGV \
+ assert(gv)
+
+PERL_CALLCONV char *
+Perl_ninstr(const char *big, const char *bigend, const char *little, const char *lend)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_NINSTR \
+ assert(big); assert(bigend); assert(little); assert(lend)
+
+PERL_CALLCONV void
+Perl_no_bareword_filehandle(pTHX_ const char *fhname)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NO_BAREWORD_FILEHANDLE \
+ assert(fhname)
+
+PERL_CALLCONV_NO_RET void
+Perl_noperl_die(const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__format__(__printf__,1,2);
+#define PERL_ARGS_ASSERT_NOPERL_DIE \
+ assert(pat)
+
+PERL_CALLCONV int
+Perl_nothreadhook(pTHX);
#define PERL_ARGS_ASSERT_NOTHREADHOOK
-PERL_CALLCONV void Perl_notify_parser_that_changed_to_utf8(pTHX);
-#define PERL_ARGS_ASSERT_NOTIFY_PARSER_THAT_CHANGED_TO_UTF8
-PERL_CALLCONV OP* Perl_oopsAV(pTHX_ OP* o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_OOPSAV \
- assert(o)
-PERL_CALLCONV OP* Perl_oopsHV(pTHX_ OP* o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_OOPSHV \
- assert(o)
+PERL_CALLCONV void
+Perl_notify_parser_that_changed_to_utf8(pTHX)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NOTIFY_PARSER_THAT_CHANGED_TO_UTF8
-PERL_CALLCONV OP* Perl_op_append_elem(pTHX_ I32 optype, OP* first, OP* last);
+PERL_CALLCONV OP *
+Perl_oopsAV(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_OOPSAV \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_oopsHV(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_OOPSHV \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_append_elem(pTHX_ I32 optype, OP *first, OP *last);
#define PERL_ARGS_ASSERT_OP_APPEND_ELEM
-PERL_CALLCONV OP* Perl_op_append_list(pTHX_ I32 optype, OP* first, OP* last);
+
+PERL_CALLCONV OP *
+Perl_op_append_list(pTHX_ I32 optype, OP *first, OP *last);
#define PERL_ARGS_ASSERT_OP_APPEND_LIST
-PERL_CALLCONV OPclass Perl_op_class(pTHX_ const OP *o);
+
+PERL_CALLCONV OPclass
+Perl_op_class(pTHX_ const OP *o);
#define PERL_ARGS_ASSERT_OP_CLASS
-PERL_CALLCONV void Perl_op_clear(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OP_CLEAR \
- assert(o)
-PERL_CALLCONV OP* Perl_op_contextualize(pTHX_ OP* o, I32 context);
-#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_clear(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_CLEAR \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_contextualize(pTHX_ OP *o, I32 context);
+#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__;
#define PERL_ARGS_ASSERT_OP_CONVERT_LIST
-PERL_CALLCONV void Perl_op_dump(pTHX_ const OP *o);
-#define PERL_ARGS_ASSERT_OP_DUMP \
- assert(o)
-PERL_CALLCONV void Perl_op_free(pTHX_ OP* arg);
+PERL_CALLCONV void
+Perl_op_dump(pTHX_ const OP *o);
+#define PERL_ARGS_ASSERT_OP_DUMP \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_force_list(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_FORCE_LIST
+
+PERL_CALLCONV void
+Perl_op_free(pTHX_ OP *arg);
#define PERL_ARGS_ASSERT_OP_FREE
-PERL_CALLCONV OP* Perl_op_linklist(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_LINKLIST \
- assert(o)
-/* PERL_CALLCONV OP* op_lvalue(pTHX_ OP* o, I32 type); */
-#define PERL_ARGS_ASSERT_OP_LVALUE
-PERL_CALLCONV OP* Perl_op_lvalue_flags(pTHX_ OP* o, I32 type, U32 flags);
+
+PERL_CALLCONV OP *
+Perl_op_linklist(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_LINKLIST \
+ assert(o)
+
+/* PERL_CALLCONV OP *
+op_lvalue(pTHX_ OP *o, I32 type); */
+
+PERL_CALLCONV OP *
+Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags);
#define PERL_ARGS_ASSERT_OP_LVALUE_FLAGS
-PERL_CALLCONV void Perl_op_null(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OP_NULL \
- assert(o)
-PERL_CALLCONV OP* Perl_op_parent(OP *o);
-#define PERL_ARGS_ASSERT_OP_PARENT \
- assert(o)
-PERL_CALLCONV OP* Perl_op_prepend_elem(pTHX_ I32 optype, OP* first, OP* last);
+
+PERL_CALLCONV void
+Perl_op_null(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_NULL \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_parent(OP *o);
+#define PERL_ARGS_ASSERT_OP_PARENT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_prepend_elem(pTHX_ I32 optype, OP *first, OP *last);
#define PERL_ARGS_ASSERT_OP_PREPEND_ELEM
-PERL_CALLCONV void Perl_op_refcnt_lock(pTHX);
+
+PERL_CALLCONV void
+Perl_op_refcnt_lock(pTHX);
#define PERL_ARGS_ASSERT_OP_REFCNT_LOCK
-PERL_CALLCONV void Perl_op_refcnt_unlock(pTHX);
+
+PERL_CALLCONV void
+Perl_op_refcnt_unlock(pTHX);
#define PERL_ARGS_ASSERT_OP_REFCNT_UNLOCK
-PERL_CALLCONV OP* Perl_op_scope(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_op_scope(pTHX_ OP *o);
#define PERL_ARGS_ASSERT_OP_SCOPE
-PERL_CALLCONV OP* Perl_op_sibling_splice(OP *parent, OP *start, int del_count, OP* insert);
+
+PERL_CALLCONV OP *
+Perl_op_sibling_splice(OP *parent, OP *start, int del_count, OP *insert);
#define PERL_ARGS_ASSERT_OP_SIBLING_SPLICE
-PERL_CALLCONV OP* Perl_op_unscope(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_op_unscope(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_OP_UNSCOPE
-PERL_CALLCONV void Perl_optimize_optree(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OPTIMIZE_OPTREE \
- assert(o)
-#ifndef NO_MATHOMS
-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__deprecated__;
-#define PERL_ARGS_ASSERT_PACK_CAT \
- assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist); assert(next_in_list)
-#endif
-PERL_CALLCONV void Perl_package(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_PACKAGE \
- assert(o)
-PERL_CALLCONV void Perl_package_version(pTHX_ OP* v);
-#define PERL_ARGS_ASSERT_PACKAGE_VERSION \
- assert(v)
-PERL_CALLCONV void Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist);
-#define PERL_ARGS_ASSERT_PACKLIST \
- assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist)
-PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ CV* func, I32 optype);
-#define PERL_ARGS_ASSERT_PAD_ADD_ANON \
- assert(func)
-PERL_CALLCONV PADOFFSET Perl_pad_add_name_pv(pTHX_ const char *name, const U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PV \
- assert(name)
-PERL_CALLCONV PADOFFSET Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN \
- assert(namepv)
-PERL_CALLCONV PADOFFSET Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \
- assert(name)
-PERL_CALLCONV void Perl_pad_add_weakref(pTHX_ CV* func);
-#define PERL_ARGS_ASSERT_PAD_ADD_WEAKREF \
- assert(func)
-PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
+PERL_CALLCONV OP *
+Perl_op_wrap_finally(pTHX_ OP *block, OP *finally)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_OP_WRAP_FINALLY \
+ assert(block); assert(finally)
+
+PERL_CALLCONV void
+Perl_package(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PACKAGE \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_package_version(pTHX_ OP *v)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PACKAGE_VERSION \
+ assert(v)
+
+PERL_CALLCONV void
+Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist);
+#define PERL_ARGS_ASSERT_PACKLIST \
+ assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_anon(pTHX_ CV *func, I32 optype);
+#define PERL_ARGS_ASSERT_PAD_ADD_ANON \
+ assert(func)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_name_pv(pTHX_ const char *name, const U32 flags, HV *typestash, HV *ourstash);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PV \
+ assert(name)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags, HV *typestash, HV *ourstash);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN \
+ assert(namepv)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *typestash, HV *ourstash);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \
+ assert(name)
+
+PERL_CALLCONV void
+Perl_pad_add_weakref(pTHX_ CV *func)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PAD_ADD_WEAKREF \
+ assert(func)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
#define PERL_ARGS_ASSERT_PAD_ALLOC
-PERL_CALLCONV void Perl_pad_block_start(pTHX_ int full);
+
+PERL_CALLCONV void
+Perl_pad_block_start(pTHX_ int full)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_PAD_BLOCK_START
-#ifndef NO_MATHOMS
-PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po)
- __attribute__deprecated__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PAD_COMPNAME_TYPE
-#endif
-PERL_CALLCONV PADOFFSET Perl_pad_findmy_pv(pTHX_ const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_PAD_FINDMY_PV \
- assert(name)
-PERL_CALLCONV PADOFFSET Perl_pad_findmy_pvn(pTHX_ const char* namepv, STRLEN namelen, U32 flags);
-#define PERL_ARGS_ASSERT_PAD_FINDMY_PVN \
- assert(namepv)
-PERL_CALLCONV PADOFFSET Perl_pad_findmy_sv(pTHX_ SV* name, U32 flags);
-#define PERL_ARGS_ASSERT_PAD_FINDMY_SV \
- assert(name)
-PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv);
-#define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS \
- assert(padlist); assert(old_cv); assert(new_cv)
-PERL_CALLCONV void Perl_pad_free(pTHX_ PADOFFSET po);
+PERL_CALLCONV PADOFFSET
+Perl_pad_findmy_pv(pTHX_ const char *name, U32 flags);
+#define PERL_ARGS_ASSERT_PAD_FINDMY_PV \
+ assert(name)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_findmy_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags);
+#define PERL_ARGS_ASSERT_PAD_FINDMY_PVN \
+ assert(namepv)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_findmy_sv(pTHX_ SV *name, U32 flags);
+#define PERL_ARGS_ASSERT_PAD_FINDMY_SV \
+ assert(name)
+
+PERL_CALLCONV void
+Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS \
+ assert(padlist); assert(old_cv); assert(new_cv)
+
+PERL_CALLCONV void
+Perl_pad_free(pTHX_ PADOFFSET po)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_PAD_FREE
-PERL_CALLCONV OP * Perl_pad_leavemy(pTHX);
+
+PERL_CALLCONV OP *
+Perl_pad_leavemy(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_PAD_LEAVEMY
-PERL_CALLCONV PADLIST* Perl_pad_new(pTHX_ int flags)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV PADLIST *
+Perl_pad_new(pTHX_ int flags)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_PAD_NEW
-PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
-#define PERL_ARGS_ASSERT_PAD_PUSH \
- assert(padlist)
-PERL_CALLCONV void Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust);
+PERL_CALLCONV void
+Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
+#define PERL_ARGS_ASSERT_PAD_PUSH \
+ assert(padlist)
+
+PERL_CALLCONV void
+Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_PAD_SWIPE
-PERL_CALLCONV void Perl_pad_tidy(pTHX_ padtidy_type type);
+
+PERL_CALLCONV void
+Perl_pad_tidy(pTHX_ padtidy_type type);
#define PERL_ARGS_ASSERT_PAD_TIDY
-PERL_CALLCONV PAD ** Perl_padlist_store(pTHX_ PADLIST *padlist, I32 key, PAD *val);
-#define PERL_ARGS_ASSERT_PADLIST_STORE \
- assert(padlist)
-PERL_CALLCONV void Perl_padname_free(pTHX_ PADNAME *pn);
-#define PERL_ARGS_ASSERT_PADNAME_FREE \
- assert(pn)
-PERL_CALLCONV PADNAME * Perl_padnamelist_fetch(PADNAMELIST *pnl, SSize_t key)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PADNAMELIST_FETCH \
- assert(pnl)
-
-PERL_CALLCONV void Perl_padnamelist_free(pTHX_ PADNAMELIST *pnl);
-#define PERL_ARGS_ASSERT_PADNAMELIST_FREE \
- assert(pnl)
-PERL_CALLCONV PADNAME ** Perl_padnamelist_store(pTHX_ PADNAMELIST *pnl, SSize_t key, PADNAME *val);
-#define PERL_ARGS_ASSERT_PADNAMELIST_STORE \
- assert(pnl)
-PERL_CALLCONV OP* Perl_parse_arithexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV PAD **
+Perl_padlist_store(pTHX_ PADLIST *padlist, I32 key, PAD *val)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PADLIST_STORE \
+ assert(padlist)
+
+PERL_CALLCONV void
+Perl_padname_free(pTHX_ PADNAME *pn);
+#define PERL_ARGS_ASSERT_PADNAME_FREE \
+ assert(pn)
+
+PERL_CALLCONV PADNAME *
+Perl_padnamelist_fetch(PADNAMELIST *pnl, SSize_t key)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_PADNAMELIST_FETCH \
+ assert(pnl)
+
+PERL_CALLCONV void
+Perl_padnamelist_free(pTHX_ PADNAMELIST *pnl);
+#define PERL_ARGS_ASSERT_PADNAMELIST_FREE \
+ assert(pnl)
+
+PERL_CALLCONV PADNAME **
+Perl_padnamelist_store(pTHX_ PADNAMELIST *pnl, SSize_t key, PADNAME *val);
+#define PERL_ARGS_ASSERT_PADNAMELIST_STORE \
+ assert(pnl)
+
+PERL_CALLCONV OP *
+Perl_parse_arithexpr(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_ARITHEXPR
-PERL_CALLCONV OP* Perl_parse_barestmt(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_barestmt(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_BARESTMT
-PERL_CALLCONV OP* Perl_parse_block(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_block(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_BLOCK
-PERL_CALLCONV OP* Perl_parse_fullexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_fullexpr(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_FULLEXPR
-PERL_CALLCONV OP* Perl_parse_fullstmt(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_fullstmt(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_FULLSTMT
-PERL_CALLCONV SV* Perl_parse_label(pTHX_ U32 flags);
+
+PERL_CALLCONV SV *
+Perl_parse_label(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_LABEL
-PERL_CALLCONV OP* Perl_parse_listexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_listexpr(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_LISTEXPR
-PERL_CALLCONV OP* Perl_parse_stmtseq(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_stmtseq(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_STMTSEQ
-PERL_CALLCONV OP* Perl_parse_subsignature(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_subsignature(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_SUBSIGNATURE
-PERL_CALLCONV OP* Perl_parse_termexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_termexpr(pTHX_ U32 flags);
#define PERL_ARGS_ASSERT_PARSE_TERMEXPR
-PERL_CALLCONV U32 Perl_parse_unicode_opts(pTHX_ const char **popt);
-#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \
- assert(popt)
-PERL_CALLCONV void Perl_parser_free(pTHX_ const yy_parser *parser);
-#define PERL_ARGS_ASSERT_PARSER_FREE \
- assert(parser)
-PERL_CALLCONV void Perl_peep(pTHX_ OP* o);
+
+PERL_CALLCONV U32
+Perl_parse_unicode_opts(pTHX_ const char **popt)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \
+ assert(popt)
+
+PERL_CALLCONV void
+Perl_parser_free(pTHX_ const yy_parser *parser)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PARSER_FREE \
+ assert(parser)
+
+PERL_CALLCONV void
+Perl_peep(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_PEEP
-PERL_CALLCONV PerlInterpreter* perl_alloc(void);
+
+PERL_CALLCONV PerlInterpreter *
+perl_alloc(void);
#define PERL_ARGS_ASSERT_PERL_ALLOC
-PERL_CALLCONV void perl_construct(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_CONSTRUCT \
- assert(my_perl)
-PERL_CALLCONV int perl_destruct(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_DESTRUCT \
- assert(my_perl)
-PERL_CALLCONV void perl_free(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_FREE \
- assert(my_perl)
-PERL_CALLCONV int perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env);
-#define PERL_ARGS_ASSERT_PERL_PARSE \
- assert(my_perl)
-PERL_CALLCONV int perl_run(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_RUN \
- assert(my_perl)
-PERL_CALLCONV Signal_t Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe);
+
+PERL_CALLCONV void
+perl_construct(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_CONSTRUCT \
+ assert(my_perl)
+
+PERL_CALLCONV int
+perl_destruct(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_DESTRUCT \
+ assert(my_perl)
+
+PERL_CALLCONV void
+perl_free(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_FREE \
+ assert(my_perl)
+
+PERL_CALLCONV int
+perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char **argv, char **env);
+#define PERL_ARGS_ASSERT_PERL_PARSE \
+ assert(my_perl)
+
+PERL_CALLCONV int
+perl_run(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_RUN \
+ assert(my_perl)
+
+PERL_CALLCONV Signal_t
+Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe);
#define PERL_ARGS_ASSERT_PERLY_SIGHANDLER
-PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP* pm);
+
+/* PERL_CALLCONV const char * const
+phase_name(pTHX_ enum perl_phase); */
+
+PERL_CALLCONV void
+Perl_pmop_dump(pTHX_ PMOP *pm);
#define PERL_ARGS_ASSERT_PMOP_DUMP
-PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor);
-#define PERL_ARGS_ASSERT_PMRUNTIME \
- assert(o); assert(expr)
-PERL_CALLCONV void Perl_pop_scope(pTHX);
+
+PERL_CALLCONV OP *
+Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PMRUNTIME \
+ assert(o); assert(expr)
+
+PERL_CALLCONV void
+Perl_pop_scope(pTHX);
#define PERL_ARGS_ASSERT_POP_SCOPE
-PERL_CALLCONV void Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...);
-#define PERL_ARGS_ASSERT_POPULATE_ISA \
- assert(name)
-PERL_CALLCONV REGEXP* Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags);
-#define PERL_ARGS_ASSERT_PREGCOMP \
- assert(pattern)
-PERL_CALLCONV I32 Perl_pregexec(pTHX_ REGEXP * const prog, char* stringarg, char* strend, char* strbeg, SSize_t minend, SV* screamer, U32 nosave);
-#define PERL_ARGS_ASSERT_PREGEXEC \
- assert(prog); assert(stringarg); assert(strend); assert(strbeg); assert(screamer)
-PERL_CALLCONV void Perl_pregfree(pTHX_ REGEXP* r);
+
+PERL_CALLCONV void
+Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_POPULATE_ISA \
+ assert(name)
+
+PERL_CALLCONV REGEXP *
+Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags);
+#define PERL_ARGS_ASSERT_PREGCOMP \
+ assert(pattern)
+
+PERL_CALLCONV I32
+Perl_pregexec(pTHX_ REGEXP * const prog, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *screamer, U32 nosave);
+#define PERL_ARGS_ASSERT_PREGEXEC \
+ assert(prog); assert(stringarg); assert(strend); assert(strbeg); \
+ assert(screamer)
+
+PERL_CALLCONV void
+Perl_pregfree(pTHX_ REGEXP *r);
#define PERL_ARGS_ASSERT_PREGFREE
-PERL_CALLCONV void Perl_pregfree2(pTHX_ REGEXP *rx);
-#define PERL_ARGS_ASSERT_PREGFREE2 \
- assert(rx)
-PERL_CALLCONV const char* Perl_prescan_version(pTHX_ const char *s, bool strict, const char** errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha);
-#define PERL_ARGS_ASSERT_PRESCAN_VERSION \
- assert(s)
-PERL_CALLCONV void Perl_ptr_table_clear(pTHX_ PTR_TBL_t *const tbl)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_PTR_TABLE_CLEAR
-
-PERL_CALLCONV void* Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *const tbl, const void *const sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PTR_TABLE_FETCH \
- assert(tbl)
-
-PERL_CALLCONV void Perl_ptr_table_free(pTHX_ PTR_TBL_t *const tbl);
+
+PERL_CALLCONV void
+Perl_pregfree2(pTHX_ REGEXP *rx);
+#define PERL_ARGS_ASSERT_PREGFREE2 \
+ assert(rx)
+
+PERL_CALLCONV const char *
+Perl_prescan_version(pTHX_ const char *s, bool strict, const char **errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha);
+#define PERL_ARGS_ASSERT_PRESCAN_VERSION \
+ assert(s)
+
+PERL_CALLCONV void *
+Perl_ptr_table_fetch(pTHX_ PTR_TBL_t * const tbl, const void * const sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_PTR_TABLE_FETCH \
+ assert(tbl)
+
+PERL_CALLCONV void
+Perl_ptr_table_free(pTHX_ PTR_TBL_t * const tbl);
#define PERL_ARGS_ASSERT_PTR_TABLE_FREE
-PERL_CALLCONV PTR_TBL_t* Perl_ptr_table_new(pTHX)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV PTR_TBL_t *
+Perl_ptr_table_new(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_PTR_TABLE_NEW
-PERL_CALLCONV void Perl_ptr_table_split(pTHX_ PTR_TBL_t *const tbl);
-#define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT \
- assert(tbl)
-PERL_CALLCONV void Perl_ptr_table_store(pTHX_ PTR_TBL_t *const tbl, const void *const oldsv, void *const newsv);
-#define PERL_ARGS_ASSERT_PTR_TABLE_STORE \
- assert(tbl); assert(newsv)
-PERL_CALLCONV void Perl_push_scope(pTHX);
+PERL_CALLCONV void
+Perl_ptr_table_split(pTHX_ PTR_TBL_t * const tbl);
+#define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT \
+ assert(tbl)
+
+PERL_CALLCONV void
+Perl_ptr_table_store(pTHX_ PTR_TBL_t * const tbl, const void * const oldsv, void * const newsv);
+#define PERL_ARGS_ASSERT_PTR_TABLE_STORE \
+ assert(tbl); assert(newsv)
+
+PERL_CALLCONV void
+Perl_push_scope(pTHX);
#define PERL_ARGS_ASSERT_PUSH_SCOPE
-PERL_CALLCONV char* Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
-#define PERL_ARGS_ASSERT_PV_DISPLAY \
- 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);
-#define PERL_ARGS_ASSERT_PV_ESCAPE \
- 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);
-#define PERL_ARGS_ASSERT_PV_PRETTY \
- assert(dsv); assert(str)
-PERL_CALLCONV char* Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags);
-#define PERL_ARGS_ASSERT_PV_UNI_DISPLAY \
- assert(dsv); assert(spv)
-PERL_CALLCONV void Perl_qerror(pTHX_ SV* err);
-#define PERL_ARGS_ASSERT_QERROR \
- assert(err)
-PERL_CALLCONV REGEXP* Perl_re_compile(pTHX_ SV * const pattern, U32 orig_rx_flags);
-#define PERL_ARGS_ASSERT_RE_COMPILE \
- assert(pattern)
-PERL_CALLCONV char* Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV* sv, const char* const strbeg, char* strpos, char* strend, const U32 flags, re_scream_pos_data *data);
-#define PERL_ARGS_ASSERT_RE_INTUIT_START \
- assert(rx); assert(strbeg); assert(strpos); assert(strend)
-PERL_CALLCONV SV* Perl_re_intuit_string(pTHX_ REGEXP *const r);
-#define PERL_ARGS_ASSERT_RE_INTUIT_STRING \
- assert(r)
-PERL_CALLCONV REGEXP* Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, OP *expr, const regexp_engine* eng, REGEXP *old_re, bool *is_bare_re, const U32 rx_flags, const U32 pm_flags);
-#define PERL_ARGS_ASSERT_RE_OP_COMPILE \
- assert(eng)
-PERL_CALLCONV Malloc_t Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV char *
+Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
+#define PERL_ARGS_ASSERT_PV_DISPLAY \
+ assert(dsv); assert(pv)
+
+PERL_CALLCONV char *
+Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, STRLEN max, STRLEN * const escaped, U32 flags);
+#define PERL_ARGS_ASSERT_PV_ESCAPE \
+ 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);
+#define PERL_ARGS_ASSERT_PV_PRETTY \
+ assert(dsv); assert(str)
+
+PERL_CALLCONV char *
+Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags);
+#define PERL_ARGS_ASSERT_PV_UNI_DISPLAY \
+ assert(dsv); assert(spv)
+
+PERL_CALLCONV void
+Perl_qerror(pTHX_ SV *err);
+#define PERL_ARGS_ASSERT_QERROR
+
+PERL_CALLCONV char *
+Perl_rcpv_copy(pTHX_ char * const pv);
+#define PERL_ARGS_ASSERT_RCPV_COPY
+
+PERL_CALLCONV char *
+Perl_rcpv_free(pTHX_ char * const pv);
+#define PERL_ARGS_ASSERT_RCPV_FREE
+
+PERL_CALLCONV char *
+Perl_rcpv_new(pTHX_ const char * const pv, STRLEN len, U32 flags)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_RCPV_NEW
+
+PERL_CALLCONV REGEXP *
+Perl_re_compile(pTHX_ SV * const pattern, U32 orig_rx_flags);
+#define PERL_ARGS_ASSERT_RE_COMPILE \
+ assert(pattern)
+
+PERL_CALLCONV char *
+Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, const char * const strbeg, char *strpos, char *strend, const U32 flags, re_scream_pos_data *data);
+#define PERL_ARGS_ASSERT_RE_INTUIT_START \
+ assert(rx); assert(strbeg); assert(strpos); assert(strend)
+
+PERL_CALLCONV SV *
+Perl_re_intuit_string(pTHX_ REGEXP * const r);
+#define PERL_ARGS_ASSERT_RE_INTUIT_STRING \
+ assert(r)
+
+PERL_CALLCONV REGEXP *
+Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, OP *expr, const regexp_engine *eng, REGEXP *old_re, bool *is_bare_re, const U32 rx_flags, const U32 pm_flags);
+#define PERL_ARGS_ASSERT_RE_OP_COMPILE \
+ assert(eng)
+
+PERL_CALLCONV Malloc_t
+Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_REALLOC
-PERL_CALLCONV void Perl_reentrant_free(pTHX);
+PERL_CALLCONV void
+Perl_reentrant_free(pTHX);
#define PERL_ARGS_ASSERT_REENTRANT_FREE
-PERL_CALLCONV void Perl_reentrant_init(pTHX);
+
+PERL_CALLCONV void
+Perl_reentrant_init(pTHX);
#define PERL_ARGS_ASSERT_REENTRANT_INIT
-PERL_CALLCONV void* Perl_reentrant_retry(const char *f, ...);
-#define PERL_ARGS_ASSERT_REENTRANT_RETRY \
- assert(f)
-PERL_CALLCONV void Perl_reentrant_size(pTHX);
+
+PERL_CALLCONV void *
+Perl_reentrant_retry(const char *f, ...);
+#define PERL_ARGS_ASSERT_REENTRANT_RETRY \
+ assert(f)
+
+PERL_CALLCONV void
+Perl_reentrant_size(pTHX);
#define PERL_ARGS_ASSERT_REENTRANT_SIZE
-PERL_CALLCONV HV * Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags);
+
+PERL_CALLCONV HV *
+Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags);
#define PERL_ARGS_ASSERT_REFCOUNTED_HE_CHAIN_2HV
-PERL_CALLCONV SV * Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV \
- assert(key)
-PERL_CALLCONV SV * Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain, const char *keypv, STRLEN keylen, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN \
- assert(keypv)
-PERL_CALLCONV SV * Perl_refcounted_he_fetch_sv(pTHX_ const struct refcounted_he *chain, SV *key, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV \
- assert(key)
-PERL_CALLCONV void Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
+
+PERL_CALLCONV SV *
+Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV \
+ assert(key)
+
+PERL_CALLCONV SV *
+Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain, const char *keypv, STRLEN keylen, U32 hash, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN \
+ assert(keypv)
+
+PERL_CALLCONV SV *
+Perl_refcounted_he_fetch_sv(pTHX_ const struct refcounted_he *chain, SV *key, U32 hash, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV \
+ assert(key)
+
+PERL_CALLCONV void
+Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FREE
-PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he);
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he);
#define PERL_ARGS_ASSERT_REFCOUNTED_HE_INC
-PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new_pv(pTHX_ struct refcounted_he *parent, const char *key, U32 hash, SV *value, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV \
- assert(key)
-PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new_pvn(pTHX_ struct refcounted_he *parent, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN \
- assert(keypv)
-PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new_sv(pTHX_ struct refcounted_he *parent, SV *key, U32 hash, SV *value, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV \
- assert(key)
-PERL_CALLCONV SV* Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF \
- assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL \
- assert(rx)
-PERL_CALLCONV bool Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS \
- assert(rx); assert(key)
-PERL_CALLCONV SV* Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH \
- assert(rx); assert(namesv)
-PERL_CALLCONV SV* Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY \
- assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER \
- assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY \
- assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_scalar(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR \
- assert(rx)
-PERL_CALLCONV void Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const rx, const I32 paren, SV * const sv);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH \
- assert(rx)
-PERL_CALLCONV I32 Perl_reg_numbered_buff_length(pTHX_ REGEXP * const rx, const SV * const sv, const I32 paren);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH \
- assert(rx); assert(sv)
-PERL_CALLCONV void Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE \
- assert(rx)
-PERL_CALLCONV SV* Perl_reg_qr_package(pTHX_ REGEXP * const rx);
-#define PERL_ARGS_ASSERT_REG_QR_PACKAGE \
- assert(rx)
-PERL_CALLCONV REGEXP* Perl_reg_temp_copy(pTHX_ REGEXP* dsv, REGEXP* ssv);
-#define PERL_ARGS_ASSERT_REG_TEMP_COPY \
- assert(ssv)
-PERL_CALLCONV void Perl_regdump(pTHX_ const regexp* r);
-#define PERL_ARGS_ASSERT_REGDUMP \
- assert(r)
-PERL_CALLCONV I32 Perl_regexec_flags(pTHX_ REGEXP *const rx, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *sv, void *data, U32 flags);
-#define PERL_ARGS_ASSERT_REGEXEC_FLAGS \
- assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv)
-PERL_CALLCONV void Perl_regfree_internal(pTHX_ REGEXP *const rx);
-#define PERL_ARGS_ASSERT_REGFREE_INTERNAL \
- assert(rx)
-PERL_CALLCONV void Perl_reginitcolors(pTHX);
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_new_pv(pTHX_ struct refcounted_he *parent, const char *key, U32 hash, SV *value, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV \
+ assert(key)
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_new_pvn(pTHX_ struct refcounted_he *parent, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN \
+ assert(keypv)
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_new_sv(pTHX_ struct refcounted_he *parent, SV *key, U32 hash, SV *value, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV \
+ assert(key)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF \
+ assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL \
+ assert(rx)
+
+PERL_CALLCONV bool
+Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS \
+ assert(rx); assert(key)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH \
+ assert(rx); assert(namesv)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY \
+ assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER \
+ assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY \
+ assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_scalar(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR \
+ assert(rx)
+
+PERL_CALLCONV void
+Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const re, const I32 paren, SV * const sv);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH \
+ assert(re)
+
+PERL_CALLCONV void
+Perl_reg_numbered_buff_fetch_flags(pTHX_ REGEXP * const re, const I32 paren, SV * const sv, U32 flags);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH_FLAGS \
+ assert(re)
+
+PERL_CALLCONV I32
+Perl_reg_numbered_buff_length(pTHX_ REGEXP * const rx, const SV * const sv, const I32 paren);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH \
+ assert(rx); assert(sv)
+
+PERL_CALLCONV void
+Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE \
+ assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_qr_package(pTHX_ REGEXP * const rx);
+#define PERL_ARGS_ASSERT_REG_QR_PACKAGE \
+ assert(rx)
+
+PERL_CALLCONV REGEXP *
+Perl_reg_temp_copy(pTHX_ REGEXP *dsv, REGEXP *ssv);
+#define PERL_ARGS_ASSERT_REG_TEMP_COPY \
+ assert(ssv)
+
+PERL_CALLCONV void
+Perl_regdump(pTHX_ const regexp *r);
+#define PERL_ARGS_ASSERT_REGDUMP \
+ assert(r)
+
+PERL_CALLCONV I32
+Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *sv, void *data, U32 flags);
+#define PERL_ARGS_ASSERT_REGEXEC_FLAGS \
+ assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv)
+
+PERL_CALLCONV void
+Perl_regfree_internal(pTHX_ REGEXP * const rx);
+#define PERL_ARGS_ASSERT_REGFREE_INTERNAL \
+ assert(rx)
+
+PERL_CALLCONV void
+Perl_reginitcolors(pTHX);
#define PERL_ARGS_ASSERT_REGINITCOLORS
-PERL_CALLCONV regnode* Perl_regnext(pTHX_ regnode* p)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGNEXT
-
-PERL_CALLCONV void Perl_repeatcpy(char* to, const char* from, I32 len, IV count);
-#define PERL_ARGS_ASSERT_REPEATCPY \
- assert(to); assert(from)
-PERL_CALLCONV void Perl_report_evil_fh(pTHX_ const GV *gv);
+
+PERL_CALLCONV void
+Perl_repeatcpy(char *to, const char *from, I32 len, IV count);
+#define PERL_ARGS_ASSERT_REPEATCPY \
+ assert(to); assert(from)
+
+PERL_CALLCONV void
+Perl_report_evil_fh(pTHX_ const GV *gv)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_REPORT_EVIL_FH
-PERL_CALLCONV void Perl_report_uninit(pTHX_ const SV *uninit_sv);
+
+PERL_CALLCONV void
+Perl_report_uninit(pTHX_ const SV *uninit_sv);
#define PERL_ARGS_ASSERT_REPORT_UNINIT
-PERL_CALLCONV void Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have);
+
+PERL_CALLCONV void
+Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_REPORT_WRONGWAY_FH
-PERL_CALLCONV void Perl_require_pv(pTHX_ const char* pv);
-#define PERL_ARGS_ASSERT_REQUIRE_PV \
- assert(pv)
-PERL_CALLCONV char* Perl_rninstr(const char* big, const char* bigend, const char* little, const char* lend)
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_RNINSTR \
- assert(big); assert(bigend); assert(little); assert(lend)
-
-PERL_CALLCONV void Perl_rpeep(pTHX_ OP* o);
+
+PERL_CALLCONV void
+Perl_require_pv(pTHX_ const char *pv);
+#define PERL_ARGS_ASSERT_REQUIRE_PV \
+ assert(pv)
+
+PERL_CALLCONV void
+Perl_resume_compcv(pTHX_ struct suspended_compcv *buffer, bool save);
+#define PERL_ARGS_ASSERT_RESUME_COMPCV \
+ assert(buffer)
+
+/* PERL_CALLCONV void
+resume_compcv_and_save(pTHX_ struct suspended_compcv *buffer); */
+
+/* PERL_CALLCONV void
+resume_compcv_final(pTHX_ struct suspended_compcv *buffer); */
+
+PERL_CALLCONV char *
+Perl_rninstr(const char *big, const char *bigend, const char *little, const char *lend)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_RNINSTR \
+ assert(big); assert(bigend); assert(little); assert(lend)
+
+PERL_CALLCONV void
+Perl_rpeep(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_RPEEP
-PERL_CALLCONV Sighandler_t Perl_rsignal(pTHX_ int i, Sighandler_t t);
+
+PERL_CALLCONV Sighandler_t
+Perl_rsignal(pTHX_ int i, Sighandler_t t);
#define PERL_ARGS_ASSERT_RSIGNAL
-PERL_CALLCONV int Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t);
+
+PERL_CALLCONV int
+Perl_rsignal_restore(pTHX_ int i, Sigsave_t *t)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_RSIGNAL_RESTORE
-PERL_CALLCONV int Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* save);
-#define PERL_ARGS_ASSERT_RSIGNAL_SAVE \
- assert(save)
-PERL_CALLCONV Sighandler_t Perl_rsignal_state(pTHX_ int i);
+
+PERL_CALLCONV int
+Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t *save)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_RSIGNAL_SAVE \
+ assert(save)
+
+PERL_CALLCONV Sighandler_t
+Perl_rsignal_state(pTHX_ int i);
#define PERL_ARGS_ASSERT_RSIGNAL_STATE
-PERL_CALLCONV int Perl_runops_debug(pTHX);
+
+PERL_CALLCONV int
+Perl_runops_debug(pTHX);
#define PERL_ARGS_ASSERT_RUNOPS_DEBUG
-PERL_CALLCONV int Perl_runops_standard(pTHX);
+
+PERL_CALLCONV int
+Perl_runops_standard(pTHX);
#define PERL_ARGS_ASSERT_RUNOPS_STANDARD
-PERL_CALLCONV CV* Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags);
-#define PERL_ARGS_ASSERT_RV2CV_OP_CV \
- assert(cvop)
-PERL_CALLCONV void Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx);
-#define PERL_ARGS_ASSERT_RXRES_SAVE \
- assert(rsp); assert(rx)
-PERL_CALLCONV Malloc_t Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV CV *
+Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags);
+#define PERL_ARGS_ASSERT_RV2CV_OP_CV \
+ assert(cvop)
+
+PERL_CALLCONV void
+Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_RXRES_SAVE \
+ assert(rsp); assert(rx)
+
+PERL_CALLCONV Malloc_t
+Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SAFESYSCALLOC
-PERL_CALLCONV Free_t Perl_safesysfree(Malloc_t where);
+PERL_CALLCONV Free_t
+Perl_safesysfree(Malloc_t where);
#define PERL_ARGS_ASSERT_SAFESYSFREE
-PERL_CALLCONV Malloc_t Perl_safesysmalloc(MEM_SIZE nbytes)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV Malloc_t
+Perl_safesysmalloc(MEM_SIZE nbytes)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SAFESYSMALLOC
-PERL_CALLCONV Malloc_t Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
- __attribute__warn_unused_result__;
+PERL_CALLCONV Malloc_t
+Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SAFESYSREALLOC
-PERL_CALLCONV void Perl_save_I16(pTHX_ I16* intp);
-#define PERL_ARGS_ASSERT_SAVE_I16 \
- assert(intp)
-PERL_CALLCONV void Perl_save_I32(pTHX_ I32* intp);
-#define PERL_ARGS_ASSERT_SAVE_I32 \
- assert(intp)
-PERL_CALLCONV void Perl_save_I8(pTHX_ I8* bytep);
-#define PERL_ARGS_ASSERT_SAVE_I8 \
- assert(bytep)
-PERL_CALLCONV void Perl_save_adelete(pTHX_ AV *av, SSize_t key);
-#define PERL_ARGS_ASSERT_SAVE_ADELETE \
- assert(av)
-/* PERL_CALLCONV void save_aelem(pTHX_ AV* av, SSize_t idx, SV **sptr); */
-#define PERL_ARGS_ASSERT_SAVE_AELEM
-PERL_CALLCONV void Perl_save_aelem_flags(pTHX_ AV* av, SSize_t idx, SV **sptr, const U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS \
- assert(av); assert(sptr)
-PERL_CALLCONV I32 Perl_save_alloc(pTHX_ I32 size, I32 pad);
+PERL_CALLCONV void
+Perl_save_I16(pTHX_ I16 *intp);
+#define PERL_ARGS_ASSERT_SAVE_I16 \
+ assert(intp)
+
+PERL_CALLCONV void
+Perl_save_I32(pTHX_ I32 *intp);
+#define PERL_ARGS_ASSERT_SAVE_I32 \
+ assert(intp)
+
+PERL_CALLCONV void
+Perl_save_I8(pTHX_ I8 *bytep);
+#define PERL_ARGS_ASSERT_SAVE_I8 \
+ assert(bytep)
+
+PERL_CALLCONV void
+Perl_save_adelete(pTHX_ AV *av, SSize_t key);
+#define PERL_ARGS_ASSERT_SAVE_ADELETE \
+ assert(av)
+
+/* PERL_CALLCONV void
+save_aelem(pTHX_ AV *av, SSize_t idx, SV **sptr); */
+
+PERL_CALLCONV void
+Perl_save_aelem_flags(pTHX_ AV *av, SSize_t idx, SV **sptr, const U32 flags);
+#define PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS \
+ assert(av); assert(sptr)
+
+PERL_CALLCONV SSize_t
+Perl_save_alloc(pTHX_ SSize_t size, I32 pad);
#define PERL_ARGS_ASSERT_SAVE_ALLOC
-PERL_CALLCONV void Perl_save_aptr(pTHX_ AV** aptr);
-#define PERL_ARGS_ASSERT_SAVE_APTR \
- assert(aptr)
-PERL_CALLCONV AV* Perl_save_ary(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SAVE_ARY \
- assert(gv)
-PERL_CALLCONV void Perl_save_bool(pTHX_ bool* boolp);
-#define PERL_ARGS_ASSERT_SAVE_BOOL \
- assert(boolp)
-PERL_CALLCONV void Perl_save_clearsv(pTHX_ SV** svp);
-#define PERL_ARGS_ASSERT_SAVE_CLEARSV \
- assert(svp)
-PERL_CALLCONV void Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen);
-#define PERL_ARGS_ASSERT_SAVE_DELETE \
- assert(hv); assert(key)
-PERL_CALLCONV void Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p);
-#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR \
- assert(p)
-PERL_CALLCONV void Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
+
+PERL_CALLCONV void
+Perl_save_aptr(pTHX_ AV **aptr);
+#define PERL_ARGS_ASSERT_SAVE_APTR \
+ assert(aptr)
+
+PERL_CALLCONV AV *
+Perl_save_ary(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SAVE_ARY \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_save_bool(pTHX_ bool *boolp);
+#define PERL_ARGS_ASSERT_SAVE_BOOL \
+ assert(boolp)
+
+PERL_CALLCONV void
+Perl_save_clearsv(pTHX_ SV **svp);
+#define PERL_ARGS_ASSERT_SAVE_CLEARSV \
+ assert(svp)
+
+PERL_CALLCONV void
+Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen);
+#define PERL_ARGS_ASSERT_SAVE_DELETE \
+ assert(hv); assert(key)
+
+PERL_CALLCONV void
+Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void *p);
+#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR \
+ assert(p)
+
+PERL_CALLCONV void
+Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void *p);
#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR_X
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_freeop(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SAVE_FREEOP
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_freepv(pTHX_ char* pv);
-#define PERL_ARGS_ASSERT_SAVE_FREEPV
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_freesv(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SAVE_FREESV
-#endif
-PERL_CALLCONV void Perl_save_generic_pvref(pTHX_ char** str);
-#define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF \
- assert(str)
-PERL_CALLCONV void Perl_save_generic_svref(pTHX_ SV** sptr);
-#define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF \
- assert(sptr)
-PERL_CALLCONV void Perl_save_gp(pTHX_ GV* gv, I32 empty);
-#define PERL_ARGS_ASSERT_SAVE_GP \
- assert(gv)
-PERL_CALLCONV HV* Perl_save_hash(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SAVE_HASH \
- assert(gv)
-PERL_CALLCONV void Perl_save_hdelete(pTHX_ HV *hv, SV *keysv);
-#define PERL_ARGS_ASSERT_SAVE_HDELETE \
- assert(hv); assert(keysv)
-/* PERL_CALLCONV void save_helem(pTHX_ HV *hv, SV *key, SV **sptr); */
-#define PERL_ARGS_ASSERT_SAVE_HELEM
-PERL_CALLCONV void Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS \
- assert(hv); assert(key); assert(sptr)
-PERL_CALLCONV void Perl_save_hints(pTHX);
+
+PERL_CALLCONV void
+Perl_save_freercpv(pTHX_ char *rcpv);
+#define PERL_ARGS_ASSERT_SAVE_FREERCPV \
+ assert(rcpv)
+
+PERL_CALLCONV void
+Perl_save_generic_pvref(pTHX_ char **str);
+#define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF \
+ assert(str)
+
+PERL_CALLCONV void
+Perl_save_generic_svref(pTHX_ SV **sptr);
+#define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF \
+ assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_gp(pTHX_ GV *gv, I32 empty);
+#define PERL_ARGS_ASSERT_SAVE_GP \
+ assert(gv)
+
+PERL_CALLCONV HV *
+Perl_save_hash(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SAVE_HASH \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_save_hdelete(pTHX_ HV *hv, SV *keysv);
+#define PERL_ARGS_ASSERT_SAVE_HDELETE \
+ assert(hv); assert(keysv)
+
+/* PERL_CALLCONV void
+save_helem(pTHX_ HV *hv, SV *key, SV **sptr); */
+
+PERL_CALLCONV void
+Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const U32 flags);
+#define PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS \
+ assert(hv); assert(key); assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_hints(pTHX);
#define PERL_ARGS_ASSERT_SAVE_HINTS
-PERL_CALLCONV void Perl_save_hptr(pTHX_ HV** hptr);
-#define PERL_ARGS_ASSERT_SAVE_HPTR \
- assert(hptr)
-PERL_CALLCONV void Perl_save_int(pTHX_ int* intp);
-#define PERL_ARGS_ASSERT_SAVE_INT \
- assert(intp)
-PERL_CALLCONV void Perl_save_item(pTHX_ SV* item);
-#define PERL_ARGS_ASSERT_SAVE_ITEM \
- assert(item)
-PERL_CALLCONV void Perl_save_iv(pTHX_ IV *ivp);
-#define PERL_ARGS_ASSERT_SAVE_IV \
- assert(ivp)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_list(pTHX_ SV** sarg, I32 maxsarg)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SAVE_LIST \
- assert(sarg)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_long(pTHX_ long* longp)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SAVE_LONG \
- assert(longp)
-#endif
+PERL_CALLCONV void
+Perl_save_hptr(pTHX_ HV **hptr);
+#define PERL_ARGS_ASSERT_SAVE_HPTR \
+ assert(hptr)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_mortalizesv(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SAVE_MORTALIZESV \
- assert(sv)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_nogv(pTHX_ GV* gv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SAVE_NOGV \
- assert(gv)
-#endif
+PERL_CALLCONV void
+Perl_save_int(pTHX_ int *intp);
+#define PERL_ARGS_ASSERT_SAVE_INT \
+ assert(intp)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_save_op(pTHX);
-#define PERL_ARGS_ASSERT_SAVE_OP
-#endif
-PERL_CALLCONV void Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
+PERL_CALLCONV void
+Perl_save_item(pTHX_ SV *item);
+#define PERL_ARGS_ASSERT_SAVE_ITEM \
+ assert(item)
+
+PERL_CALLCONV void
+Perl_save_iv(pTHX_ IV *ivp);
+#define PERL_ARGS_ASSERT_SAVE_IV \
+ assert(ivp)
+
+PERL_CALLCONV void
+Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
#define PERL_ARGS_ASSERT_SAVE_PADSV_AND_MORTALIZE
-PERL_CALLCONV void Perl_save_pptr(pTHX_ char** pptr);
-#define PERL_ARGS_ASSERT_SAVE_PPTR \
- assert(pptr)
-PERL_CALLCONV void Perl_save_pushi32ptr(pTHX_ const I32 i, void *const ptr, const int type);
+
+PERL_CALLCONV void
+Perl_save_pptr(pTHX_ char **pptr);
+#define PERL_ARGS_ASSERT_SAVE_PPTR \
+ assert(pptr)
+
+PERL_CALLCONV void
+Perl_save_pushi32ptr(pTHX_ const I32 i, void * const ptr, const int type);
#define PERL_ARGS_ASSERT_SAVE_PUSHI32PTR
-PERL_CALLCONV void Perl_save_pushptr(pTHX_ void *const ptr, const int type);
+
+PERL_CALLCONV void
+Perl_save_pushptr(pTHX_ void * const ptr, const int type);
#define PERL_ARGS_ASSERT_SAVE_PUSHPTR
-PERL_CALLCONV void Perl_save_pushptrptr(pTHX_ void *const ptr1, void *const ptr2, const int type);
+
+PERL_CALLCONV void
+Perl_save_pushptrptr(pTHX_ void * const ptr1, void * const ptr2, const int type);
#define PERL_ARGS_ASSERT_SAVE_PUSHPTRPTR
-PERL_CALLCONV void Perl_save_re_context(pTHX);
+
+PERL_CALLCONV void
+Perl_save_rcpv(pTHX_ char **prcpv);
+#define PERL_ARGS_ASSERT_SAVE_RCPV \
+ assert(prcpv)
+
+PERL_CALLCONV void
+Perl_save_re_context(pTHX);
#define PERL_ARGS_ASSERT_SAVE_RE_CONTEXT
-PERL_CALLCONV SV* Perl_save_scalar(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SAVE_SCALAR \
- assert(gv)
-PERL_CALLCONV void Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val);
-#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS \
- assert(sv)
-PERL_CALLCONV void Perl_save_shared_pvref(pTHX_ char** str);
-#define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF \
- assert(str)
-PERL_CALLCONV void Perl_save_sptr(pTHX_ SV** sptr);
-#define PERL_ARGS_ASSERT_SAVE_SPTR \
- assert(sptr)
-PERL_CALLCONV void Perl_save_strlen(pTHX_ STRLEN* ptr);
-#define PERL_ARGS_ASSERT_SAVE_STRLEN \
- assert(ptr)
-PERL_CALLCONV SV* Perl_save_svref(pTHX_ SV** sptr);
-#define PERL_ARGS_ASSERT_SAVE_SVREF \
- assert(sptr)
-PERL_CALLCONV void Perl_save_vptr(pTHX_ void *ptr);
-#define PERL_ARGS_ASSERT_SAVE_VPTR \
- assert(ptr)
-PERL_CALLCONV char* Perl_savepv(pTHX_ const char* pv)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVEPV
-
-PERL_CALLCONV char* Perl_savepvn(pTHX_ const char* pv, Size_t len)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVEPVN
-
-PERL_CALLCONV char* Perl_savesharedpv(pTHX_ const char* pv)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+
+PERL_CALLCONV SV *
+Perl_save_scalar(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SAVE_SCALAR \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val);
+#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_save_shared_pvref(pTHX_ char **str);
+#define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF \
+ assert(str)
+
+PERL_CALLCONV void
+Perl_save_sptr(pTHX_ SV **sptr);
+#define PERL_ARGS_ASSERT_SAVE_SPTR \
+ assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_strlen(pTHX_ STRLEN *ptr);
+#define PERL_ARGS_ASSERT_SAVE_STRLEN \
+ assert(ptr)
+
+PERL_CALLCONV SV *
+Perl_save_svref(pTHX_ SV **sptr);
+#define PERL_ARGS_ASSERT_SAVE_SVREF \
+ assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_vptr(pTHX_ void *ptr);
+#define PERL_ARGS_ASSERT_SAVE_VPTR \
+ assert(ptr)
+
+PERL_CALLCONV char *
+Perl_savesharedpv(pTHX_ const char *pv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SAVESHAREDPV
-PERL_CALLCONV char* Perl_savesharedpvn(pTHX_ const char *const pv, const STRLEN len)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+PERL_CALLCONV char *
+Perl_savesharedpvn(pTHX_ const char * const pv, const STRLEN len)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SAVESHAREDPVN
-PERL_CALLCONV char* Perl_savesharedsvpv(pTHX_ SV *sv)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVESHAREDSVPV \
- assert(sv)
-
-PERL_CALLCONV void Perl_savestack_grow(pTHX);
+PERL_CALLCONV void
+Perl_savestack_grow(pTHX);
#define PERL_ARGS_ASSERT_SAVESTACK_GROW
-PERL_CALLCONV void Perl_savestack_grow_cnt(pTHX_ I32 need);
+
+PERL_CALLCONV void
+Perl_savestack_grow_cnt(pTHX_ I32 need);
#define PERL_ARGS_ASSERT_SAVESTACK_GROW_CNT
-PERL_CALLCONV char* Perl_savesvpv(pTHX_ SV* sv)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVESVPV \
- assert(sv)
-PERL_CALLCONV void Perl_savetmps(pTHX);
+PERL_CALLCONV void
+Perl_savetmps(pTHX);
#define PERL_ARGS_ASSERT_SAVETMPS
-PERL_CALLCONV OP* Perl_sawparens(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_sawparens(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SAWPARENS
-PERL_CALLCONV OP* Perl_scalar(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_scalar(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SCALAR
-PERL_CALLCONV OP* Perl_scalarvoid(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SCALARVOID \
- assert(o)
-PERL_CALLCONV NV Perl_scan_bin(pTHX_ const char* start, STRLEN len, STRLEN* retlen);
-#define PERL_ARGS_ASSERT_SCAN_BIN \
- assert(start); assert(retlen)
-PERL_CALLCONV NV Perl_scan_hex(pTHX_ const char* start, STRLEN len, STRLEN* retlen);
-#define PERL_ARGS_ASSERT_SCAN_HEX \
- assert(start); assert(retlen)
-PERL_CALLCONV char* Perl_scan_num(pTHX_ const char* s, YYSTYPE *lvalp);
-#define PERL_ARGS_ASSERT_SCAN_NUM \
- assert(s); assert(lvalp)
-PERL_CALLCONV NV Perl_scan_oct(pTHX_ const char* start, STRLEN len, STRLEN* retlen);
-#define PERL_ARGS_ASSERT_SCAN_OCT \
- assert(start); assert(retlen)
-PERL_CALLCONV char* Perl_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_STR \
- assert(start)
-
-PERL_CALLCONV const char* Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv);
-#define PERL_ARGS_ASSERT_SCAN_VERSION \
- assert(s); assert(rv)
-PERL_CALLCONV char* Perl_scan_vstring(pTHX_ const char *s, const char *const e, SV *sv);
-#define PERL_ARGS_ASSERT_SCAN_VSTRING \
- assert(s); assert(e); assert(sv)
-PERL_CALLCONV char* Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
-#define PERL_ARGS_ASSERT_SCAN_WORD \
- assert(s); assert(dest); assert(slp)
-PERL_CALLCONV U32 Perl_seed(pTHX);
+
+PERL_CALLCONV OP *
+Perl_scalarvoid(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_SCALARVOID \
+ assert(o)
+
+PERL_CALLCONV NV
+Perl_scan_bin(pTHX_ const char *start, STRLEN len, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_SCAN_BIN \
+ assert(start); assert(retlen)
+
+PERL_CALLCONV NV
+Perl_scan_hex(pTHX_ const char *start, STRLEN len, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_SCAN_HEX \
+ assert(start); assert(retlen)
+
+PERL_CALLCONV char *
+Perl_scan_num(pTHX_ const char *s, YYSTYPE *lvalp);
+#define PERL_ARGS_ASSERT_SCAN_NUM \
+ assert(s); assert(lvalp)
+
+PERL_CALLCONV NV
+Perl_scan_oct(pTHX_ const char *start, STRLEN len, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_SCAN_OCT \
+ assert(start); assert(retlen)
+
+PERL_CALLCONV char *
+Perl_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SCAN_STR \
+ assert(start)
+
+PERL_CALLCONV const char *
+Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv);
+#define PERL_ARGS_ASSERT_SCAN_VERSION \
+ assert(s); assert(rv)
+
+PERL_CALLCONV char *
+Perl_scan_vstring(pTHX_ const char *s, const char * const e, SV *sv);
+#define PERL_ARGS_ASSERT_SCAN_VSTRING \
+ assert(s); assert(e); assert(sv)
+
+PERL_CALLCONV char *
+Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
+#define PERL_ARGS_ASSERT_SCAN_WORD \
+ assert(s); assert(dest); assert(slp)
+
+PERL_CALLCONV char *
+Perl_scan_word6(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp, bool warn_tick);
+#define PERL_ARGS_ASSERT_SCAN_WORD6 \
+ assert(s); assert(dest); assert(slp)
+
+PERL_CALLCONV U32
+Perl_seed(pTHX);
#define PERL_ARGS_ASSERT_SEED
-PERL_CALLCONV void Perl_set_caret_X(pTHX);
+
+PERL_CALLCONV void
+Perl_set_caret_X(pTHX);
#define PERL_ARGS_ASSERT_SET_CARET_X
-PERL_CALLCONV void Perl_set_context(void *t);
-#define PERL_ARGS_ASSERT_SET_CONTEXT \
- assert(t)
-PERL_CALLCONV void Perl_set_numeric_standard(pTHX);
+
+PERL_CALLCONV void
+Perl_set_context(void *t);
+#define PERL_ARGS_ASSERT_SET_CONTEXT \
+ assert(t)
+
+PERL_CALLCONV void
+Perl_set_numeric_standard(pTHX);
#define PERL_ARGS_ASSERT_SET_NUMERIC_STANDARD
-PERL_CALLCONV void Perl_set_numeric_underlying(pTHX);
+
+PERL_CALLCONV void
+Perl_set_numeric_underlying(pTHX);
#define PERL_ARGS_ASSERT_SET_NUMERIC_UNDERLYING
-PERL_CALLCONV void Perl_setdefout(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SETDEFOUT \
- assert(gv)
-PERL_CALLCONV void Perl_setfd_cloexec(int fd);
+
+PERL_CALLCONV void
+Perl_setdefout(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SETDEFOUT \
+ assert(gv)
+
+PERL_CALLCONV void
+Perl_setfd_cloexec(int fd)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SETFD_CLOEXEC
-PERL_CALLCONV void Perl_setfd_cloexec_for_nonsysfd(pTHX_ int fd);
+
+PERL_CALLCONV void
+Perl_setfd_cloexec_for_nonsysfd(pTHX_ int fd)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SETFD_CLOEXEC_FOR_NONSYSFD
-PERL_CALLCONV void Perl_setfd_cloexec_or_inhexec_by_sysfdness(pTHX_ int fd);
+
+PERL_CALLCONV void
+Perl_setfd_cloexec_or_inhexec_by_sysfdness(pTHX_ int fd)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SETFD_CLOEXEC_OR_INHEXEC_BY_SYSFDNESS
-PERL_CALLCONV void Perl_setfd_inhexec(int fd);
+
+PERL_CALLCONV void
+Perl_setfd_inhexec(int fd)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SETFD_INHEXEC
-PERL_CALLCONV void Perl_setfd_inhexec_for_sysfd(pTHX_ int fd);
+
+PERL_CALLCONV void
+Perl_setfd_inhexec_for_sysfd(pTHX_ int fd)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SETFD_INHEXEC_FOR_SYSFD
-PERL_CALLCONV HEK* Perl_share_hek(pTHX_ const char* str, SSize_t len, U32 hash);
-#define PERL_ARGS_ASSERT_SHARE_HEK \
- assert(str)
-PERL_CALLCONV Signal_t Perl_sighandler1(int sig);
+
+PERL_CALLCONV HEK *
+Perl_share_hek(pTHX_ const char *str, SSize_t len, U32 hash);
+#define PERL_ARGS_ASSERT_SHARE_HEK \
+ assert(str)
+
+PERL_CALLCONV Signal_t
+Perl_sighandler1(int sig)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SIGHANDLER1
-PERL_CALLCONV Signal_t Perl_sighandler3(int sig, Siginfo_t *info, void *uap);
+
+PERL_CALLCONV Signal_t
+Perl_sighandler3(int sig, Siginfo_t *info, void *uap)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SIGHANDLER3
-PERL_CALLCONV char* Perl_skipspace_flags(pTHX_ char *s, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SKIPSPACE_FLAGS \
- assert(s)
-
-PERL_CALLCONV void Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp);
-#define PERL_ARGS_ASSERT_SORTSV \
- assert(cmp)
-PERL_CALLCONV void Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags);
-#define PERL_ARGS_ASSERT_SORTSV_FLAGS \
- assert(cmp)
-PERL_CALLCONV SV** Perl_stack_grow(pTHX_ SV** sp, SV** p, SSize_t n);
-#define PERL_ARGS_ASSERT_STACK_GROW \
- assert(sp); assert(p)
-PERL_CALLCONV PerlIO* Perl_start_glob(pTHX_ SV *tmpglob, IO *io);
-#define PERL_ARGS_ASSERT_START_GLOB \
- assert(tmpglob); assert(io)
-PERL_CALLCONV I32 Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
-#define PERL_ARGS_ASSERT_START_SUBPARSE
-PERL_CALLCONV NV Perl_str_to_version(pTHX_ SV *sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_STR_TO_VERSION \
- assert(sv)
-
-PERL_CALLCONV void Perl_sub_crush_depth(pTHX_ CV* cv);
-#define PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH \
- assert(cv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_sv_2bool(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2BOOL \
- assert(sv)
-#endif
-PERL_CALLCONV bool Perl_sv_2bool_flags(pTHX_ SV *sv, I32 flags);
-#define PERL_ARGS_ASSERT_SV_2BOOL_FLAGS \
- assert(sv)
-PERL_CALLCONV CV* Perl_sv_2cv(pTHX_ SV* sv, HV **const st, GV **const gvp, const I32 lref);
-#define PERL_ARGS_ASSERT_SV_2CV \
- assert(st); assert(gvp)
-PERL_CALLCONV IO* Perl_sv_2io(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2IO \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV IV Perl_sv_2iv(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_2IV \
- assert(sv)
-#endif
-PERL_CALLCONV IV Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_2IV_FLAGS \
- assert(sv)
-PERL_CALLCONV SV* Perl_sv_2mortal(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2MORTAL
-PERL_CALLCONV SV* Perl_sv_2num(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2NUM \
- assert(sv)
-PERL_CALLCONV NV Perl_sv_2nv_flags(pTHX_ SV *const sv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_2NV_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp);
-#define PERL_ARGS_ASSERT_SV_2PV \
- assert(sv)
-#endif
-PERL_CALLCONV char* Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_2PV_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_2pv_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_2PV_NOLEN \
- assert(sv)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_2pvbyte(pTHX_ SV *sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_2PVBYTE \
- assert(sv)
-#endif
-PERL_CALLCONV char* Perl_sv_2pvbyte_flags(pTHX_ SV *sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_2PVBYTE_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_2pvbyte_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN \
- assert(sv)
-#endif
+PERL_CALLCONV char *
+Perl_skipspace_flags(pTHX_ char *s, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SKIPSPACE_FLAGS \
+ assert(s)
+
+PERL_CALLCONV void
+Perl_sortsv(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp);
+#define PERL_ARGS_ASSERT_SORTSV \
+ assert(cmp)
+
+PERL_CALLCONV void
+Perl_sortsv_flags(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp, U32 flags);
+#define PERL_ARGS_ASSERT_SORTSV_FLAGS \
+ assert(cmp)
+
+PERL_CALLCONV SV **
+Perl_stack_grow(pTHX_ SV **sp, SV **p, SSize_t n);
+#define PERL_ARGS_ASSERT_STACK_GROW \
+ assert(sp); assert(p)
+
+PERL_CALLCONV PerlIO *
+Perl_start_glob(pTHX_ SV *tmpglob, IO *io)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_START_GLOB \
+ assert(tmpglob); assert(io)
+
+PERL_CALLCONV I32
+Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
+#define PERL_ARGS_ASSERT_START_SUBPARSE
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_2pvutf8(pTHX_ SV *sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_2PVUTF8 \
- assert(sv)
-#endif
-PERL_CALLCONV char* Perl_sv_2pvutf8_flags(pTHX_ SV *sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_2PVUTF8_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_2pvutf8_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN \
- assert(sv)
-#endif
+PERL_CALLCONV NV
+Perl_str_to_version(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_STR_TO_VERSION \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sub_crush_depth(pTHX_ CV *cv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_suspend_compcv(pTHX_ struct suspended_compcv *buffer);
+#define PERL_ARGS_ASSERT_SUSPEND_COMPCV \
+ assert(buffer)
+
+PERL_CALLCONV bool
+Perl_sv_2bool_flags(pTHX_ SV *sv, I32 flags);
+#define PERL_ARGS_ASSERT_SV_2BOOL_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV CV *
+Perl_sv_2cv(pTHX_ SV *sv, HV ** const st, GV ** const gvp, const I32 lref);
+#define PERL_ARGS_ASSERT_SV_2CV \
+ assert(st); assert(gvp)
+
+PERL_CALLCONV IO *
+Perl_sv_2io(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_2IO \
+ assert(sv)
+
+PERL_CALLCONV IV
+Perl_sv_2iv_flags(pTHX_ SV * const sv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_2IV_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_2mortal(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_2MORTAL
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV Perl_sv_2uv(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_2UV \
- assert(sv)
-#endif
-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 void Perl_sv_backoff(SV *const sv);
-#define PERL_ARGS_ASSERT_SV_BACKOFF \
- assert(sv)
-PERL_CALLCONV SV* Perl_sv_bless(pTHX_ SV *const sv, HV *const stash);
-#define PERL_ARGS_ASSERT_SV_BLESS \
- assert(sv); assert(stash)
-PERL_CALLCONV bool Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen);
-#define PERL_ARGS_ASSERT_SV_CAT_DECODE \
- assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
-PERL_CALLCONV void Perl_sv_catpv(pTHX_ SV *const dsv, const char* sstr);
-#define PERL_ARGS_ASSERT_SV_CATPV \
- assert(dsv)
-PERL_CALLCONV void Perl_sv_catpv_flags(pTHX_ SV *dsv, const char *sstr, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_CATPV_FLAGS \
- assert(dsv); assert(sstr)
-PERL_CALLCONV void Perl_sv_catpv_mg(pTHX_ SV *const dsv, const char *const sstr);
-#define PERL_ARGS_ASSERT_SV_CATPV_MG \
- assert(dsv)
-PERL_CALLCONV void Perl_sv_catpvf(pTHX_ SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_CATPVF \
- assert(sv); assert(pat)
-
-PERL_CALLCONV void Perl_sv_catpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_CATPVF_MG \
- assert(sv); assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_CATPVN \
- assert(dsv); assert(sstr)
-#endif
-PERL_CALLCONV void Perl_sv_catpvn_flags(pTHX_ SV *const dsv, const char *sstr, const STRLEN len, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \
- assert(dsv); assert(sstr)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_CATPVN_MG \
- assert(dsv); assert(sstr)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catsv(pTHX_ SV *dsv, SV *sstr);
-#define PERL_ARGS_ASSERT_SV_CATSV \
- assert(dsv)
-#endif
-PERL_CALLCONV void Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const sstr, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \
- assert(dsv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr);
-#define PERL_ARGS_ASSERT_SV_CATSV_MG \
- assert(dsv)
-#endif
-PERL_CALLCONV void Perl_sv_chop(pTHX_ SV *const sv, const char *const ptr);
-#define PERL_ARGS_ASSERT_SV_CHOP \
- assert(sv)
-PERL_CALLCONV I32 Perl_sv_clean_all(pTHX);
+PERL_CALLCONV SV *
+Perl_sv_2num(pTHX_ SV * const sv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_SV_2NUM \
+ assert(sv)
+
+PERL_CALLCONV NV
+Perl_sv_2nv_flags(pTHX_ SV * const sv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_2NV_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pv_flags(pTHX_ SV * const sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_2PV_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvbyte_flags(pTHX_ SV *sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_2PVBYTE_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvutf8_flags(pTHX_ SV *sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_2PVUTF8_FLAGS \
+ assert(sv)
+
+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 void
+Perl_sv_backoff(SV * const sv);
+#define PERL_ARGS_ASSERT_SV_BACKOFF \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_bless(pTHX_ SV * const sv, HV * const stash);
+#define PERL_ARGS_ASSERT_SV_BLESS \
+ assert(sv); assert(stash)
+
+PERL_CALLCONV bool
+Perl_sv_cat_decode(pTHX_ SV *dsv, SV *encoding, SV *ssv, int *offset, char *tstr, int tlen);
+#define PERL_ARGS_ASSERT_SV_CAT_DECODE \
+ assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
+
+PERL_CALLCONV void
+Perl_sv_catpv(pTHX_ SV * const dsv, const char *sstr);
+#define PERL_ARGS_ASSERT_SV_CATPV \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_catpv_flags(pTHX_ SV *dsv, const char *sstr, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_CATPV_FLAGS \
+ assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catpv_mg(pTHX_ SV * const dsv, const char * const sstr);
+#define PERL_ARGS_ASSERT_SV_CATPV_MG \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_catpvf(pTHX_ SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_CATPVF \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvf_mg(pTHX_ SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_CATPVF_MG \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvn_flags(pTHX_ SV * const dsv, const char *sstr, const STRLEN len, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \
+ assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catsv_flags(pTHX_ SV * const dsv, SV * const sstr, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_chop(pTHX_ SV * const sv, const char * const ptr);
+#define PERL_ARGS_ASSERT_SV_CHOP \
+ assert(sv)
+
+PERL_CALLCONV I32
+Perl_sv_clean_all(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SV_CLEAN_ALL
-PERL_CALLCONV void Perl_sv_clean_objs(pTHX);
+
+PERL_CALLCONV void
+Perl_sv_clean_objs(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SV_CLEAN_OBJS
-PERL_CALLCONV void Perl_sv_clear(pTHX_ SV *const orig_sv);
-#define PERL_ARGS_ASSERT_SV_CLEAR \
- assert(orig_sv)
-PERL_CALLCONV I32 Perl_sv_cmp(pTHX_ SV *const sv1, SV *const sv2);
+
+PERL_CALLCONV void
+Perl_sv_clear(pTHX_ SV * const orig_sv);
+#define PERL_ARGS_ASSERT_SV_CLEAR \
+ assert(orig_sv)
+
+PERL_CALLCONV I32
+Perl_sv_cmp(pTHX_ SV * const sv1, SV * const sv2);
#define PERL_ARGS_ASSERT_SV_CMP
-PERL_CALLCONV I32 Perl_sv_cmp_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
+
+PERL_CALLCONV I32
+Perl_sv_cmp_flags(pTHX_ SV * const sv1, SV * const sv2, const U32 flags);
#define PERL_ARGS_ASSERT_SV_CMP_FLAGS
-PERL_CALLCONV I32 Perl_sv_cmp_locale(pTHX_ SV *const sv1, SV *const sv2);
+
+PERL_CALLCONV I32
+Perl_sv_cmp_locale(pTHX_ SV * const sv1, SV * const sv2);
#define PERL_ARGS_ASSERT_SV_CMP_LOCALE
-PERL_CALLCONV I32 Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
+
+PERL_CALLCONV I32
+Perl_sv_cmp_locale_flags(pTHX_ SV * const sv1, SV * const sv2, const U32 flags);
#define PERL_ARGS_ASSERT_SV_CMP_LOCALE_FLAGS
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv);
-#define PERL_ARGS_ASSERT_SV_COPYPV \
- assert(dsv); assert(ssv)
-#endif
-PERL_CALLCONV void Perl_sv_copypv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_COPYPV_FLAGS \
- assert(dsv); assert(ssv)
-/* PERL_CALLCONV void sv_copypv_nomg(pTHX_ SV *const dsv, SV *const ssv); */
-#define PERL_ARGS_ASSERT_SV_COPYPV_NOMG
-PERL_CALLCONV void Perl_sv_dec(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_copypv_flags(pTHX_ SV * const dsv, SV * const ssv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_COPYPV_FLAGS \
+ assert(dsv); assert(ssv)
+
+/* PERL_CALLCONV void
+sv_copypv_nomg(pTHX_ SV * const dsv, SV * const ssv); */
+
+PERL_CALLCONV void
+Perl_sv_dec(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_DEC
-PERL_CALLCONV void Perl_sv_dec_nomg(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_dec_nomg(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_DEC_NOMG
-PERL_CALLCONV void Perl_sv_del_backref(pTHX_ SV *const tsv, SV *const sv);
-#define PERL_ARGS_ASSERT_SV_DEL_BACKREF \
- assert(tsv); assert(sv)
-PERL_CALLCONV bool Perl_sv_derived_from(pTHX_ SV* sv, const char *const name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM \
- assert(sv); assert(name)
-
-PERL_CALLCONV bool Perl_sv_derived_from_pv(pTHX_ SV* sv, const char *const name, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV \
- assert(sv); assert(name)
-
-PERL_CALLCONV bool Perl_sv_derived_from_pvn(pTHX_ SV* sv, const char *const name, const STRLEN len, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN \
- assert(sv); assert(name)
-
-PERL_CALLCONV bool Perl_sv_derived_from_sv(pTHX_ SV* sv, SV *namesv, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV \
- assert(sv); assert(namesv)
-
-PERL_CALLCONV bool Perl_sv_destroyable(pTHX_ SV *sv);
+
+PERL_CALLCONV void
+Perl_sv_del_backref(pTHX_ SV * const tsv, SV * const sv);
+#define PERL_ARGS_ASSERT_SV_DEL_BACKREF \
+ assert(tsv); assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from(pTHX_ SV *sv, const char * const name)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM \
+ assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_hv(pTHX_ SV *sv, HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_HV \
+ assert(sv); assert(hv)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_pv(pTHX_ SV *sv, const char * const name, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV \
+ assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_pvn(pTHX_ SV *sv, const char * const name, const STRLEN len, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN \
+ assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV \
+ assert(sv); assert(namesv)
+
+PERL_CALLCONV bool
+Perl_sv_destroyable(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_DESTROYABLE
-PERL_CALLCONV bool Perl_sv_does(pTHX_ SV* sv, const char *const name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES \
- assert(sv); assert(name)
-
-PERL_CALLCONV bool Perl_sv_does_pv(pTHX_ SV* sv, const char *const name, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES_PV \
- assert(sv); assert(name)
-
-PERL_CALLCONV bool Perl_sv_does_pvn(pTHX_ SV* sv, const char *const name, const STRLEN len, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES_PVN \
- assert(sv); assert(name)
-
-PERL_CALLCONV bool Perl_sv_does_sv(pTHX_ SV* sv, SV* namesv, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES_SV \
- assert(sv); assert(namesv)
-
-PERL_CALLCONV void Perl_sv_dump(pTHX_ SV* sv);
+
+PERL_CALLCONV bool
+Perl_sv_does(pTHX_ SV *sv, const char * const name)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES \
+ assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_does_pv(pTHX_ SV *sv, const char * const name, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES_PV \
+ assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_does_pvn(pTHX_ SV *sv, const char * const name, const STRLEN len, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES_PVN \
+ assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_does_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES_SV \
+ assert(sv); assert(namesv)
+
+PERL_CALLCONV void
+Perl_sv_dump(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_DUMP
-#ifndef NO_MATHOMS
-PERL_CALLCONV I32 Perl_sv_eq(pTHX_ SV* sv1, SV* sv2);
-#define PERL_ARGS_ASSERT_SV_EQ
-#endif
-PERL_CALLCONV I32 Perl_sv_eq_flags(pTHX_ SV* sv1, SV* sv2, const U32 flags);
+
+PERL_CALLCONV void
+Perl_sv_dump_depth(pTHX_ SV *sv, I32 depth);
+#define PERL_ARGS_ASSERT_SV_DUMP_DEPTH
+
+PERL_CALLCONV I32
+Perl_sv_eq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags);
#define PERL_ARGS_ASSERT_SV_EQ_FLAGS
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_force_normal(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL \
- assert(sv)
-#endif
-PERL_CALLCONV void Perl_sv_force_normal_flags(pTHX_ SV *const sv, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS \
- assert(sv)
-PERL_CALLCONV void Perl_sv_free(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_force_normal_flags(pTHX_ SV * const sv, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_free(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_FREE
-PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv, const U32 refcnt);
-#define PERL_ARGS_ASSERT_SV_FREE2 \
- assert(sv)
-PERL_CALLCONV void Perl_sv_free_arenas(pTHX);
+
+PERL_CALLCONV void
+Perl_sv_free2(pTHX_ SV * const sv, const U32 refcnt);
+#define PERL_ARGS_ASSERT_SV_FREE2 \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_free_arenas(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SV_FREE_ARENAS
-PERL_CALLCONV SV* Perl_sv_get_backrefs(SV *const sv);
-#define PERL_ARGS_ASSERT_SV_GET_BACKREFS \
- assert(sv)
-PERL_CALLCONV char* Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append);
-#define PERL_ARGS_ASSERT_SV_GETS \
- assert(sv); assert(fp)
-PERL_CALLCONV char* Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen);
-#define PERL_ARGS_ASSERT_SV_GROW \
- assert(sv)
-PERL_CALLCONV void Perl_sv_inc(pTHX_ SV *const sv);
+
+PERL_CALLCONV SV *
+Perl_sv_get_backrefs(SV * const sv);
+#define PERL_ARGS_ASSERT_SV_GET_BACKREFS \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_gets(pTHX_ SV * const sv, PerlIO * const fp, I32 append);
+#define PERL_ARGS_ASSERT_SV_GETS \
+ assert(sv); assert(fp)
+
+PERL_CALLCONV char *
+Perl_sv_grow(pTHX_ SV * const sv, STRLEN newlen);
+#define PERL_ARGS_ASSERT_SV_GROW \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_grow_fresh(pTHX_ SV * const sv, STRLEN newlen);
+#define PERL_ARGS_ASSERT_SV_GROW_FRESH \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_inc(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_INC
-PERL_CALLCONV void Perl_sv_inc_nomg(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_inc_nomg(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_INC_NOMG
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen);
-#define PERL_ARGS_ASSERT_SV_INSERT \
- assert(bigstr); assert(little)
-#endif
-PERL_CALLCONV void Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_INSERT_FLAGS \
- assert(bigstr); assert(little)
-PERL_CALLCONV int Perl_sv_isa(pTHX_ SV* sv, const char *const name);
-#define PERL_ARGS_ASSERT_SV_ISA \
- assert(name)
-PERL_CALLCONV bool Perl_sv_isa_sv(pTHX_ SV* sv, SV* namesv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_ISA_SV \
- assert(sv); assert(namesv)
-
-PERL_CALLCONV int Perl_sv_isobject(pTHX_ SV* sv);
+
+PERL_CALLCONV void
+Perl_sv_insert_flags(pTHX_ SV * const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_INSERT_FLAGS \
+ assert(bigstr); assert(little)
+
+PERL_CALLCONV int
+Perl_sv_isa(pTHX_ SV *sv, const char * const name);
+#define PERL_ARGS_ASSERT_SV_ISA \
+ assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_isa_sv(pTHX_ SV *sv, SV *namesv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_ISA_SV \
+ assert(sv); assert(namesv)
+
+PERL_CALLCONV int
+Perl_sv_isobject(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_ISOBJECT
-#ifndef NO_MATHOMS
-PERL_CALLCONV IV Perl_sv_iv(pTHX_ SV* sv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_IV \
- assert(sv)
-#endif
-PERL_CALLCONV STRLEN Perl_sv_len(pTHX_ SV *const sv);
+PERL_CALLCONV STRLEN
+Perl_sv_len(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_LEN
-PERL_CALLCONV STRLEN Perl_sv_len_utf8(pTHX_ SV *const sv);
+
+PERL_CALLCONV STRLEN
+Perl_sv_len_utf8(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_LEN_UTF8
-PERL_CALLCONV STRLEN Perl_sv_len_utf8_nomg(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG \
- assert(sv)
-PERL_CALLCONV void Perl_sv_magic(pTHX_ SV *const sv, SV *const obj, const int how, const char *const name, const I32 namlen);
-#define PERL_ARGS_ASSERT_SV_MAGIC \
- assert(sv)
-PERL_CALLCONV MAGIC * Perl_sv_magicext(pTHX_ SV *const sv, SV *const obj, const int how, const MGVTBL *const vtbl, const char *const name, const I32 namlen);
-#define PERL_ARGS_ASSERT_SV_MAGICEXT \
- assert(sv)
-PERL_CALLCONV MAGIC * Perl_sv_magicext_mglob(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV* Perl_sv_mortalcopy(pTHX_ SV *const oldsv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_MORTALCOPY
-#endif
-PERL_CALLCONV SV* Perl_sv_mortalcopy_flags(pTHX_ SV *const oldsv, U32 flags)
- __attribute__warn_unused_result__;
+PERL_CALLCONV STRLEN
+Perl_sv_len_utf8_nomg(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_magic(pTHX_ SV * const sv, SV * const obj, const int how, const char * const name, const I32 namlen);
+#define PERL_ARGS_ASSERT_SV_MAGIC \
+ assert(sv)
+
+PERL_CALLCONV MAGIC *
+Perl_sv_magicext(pTHX_ SV * const sv, SV * const obj, const int how, const MGVTBL * const vtbl, const char * const name, const I32 namlen);
+#define PERL_ARGS_ASSERT_SV_MAGICEXT \
+ assert(sv)
+
+PERL_CALLCONV MAGIC *
+Perl_sv_magicext_mglob(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_mortalcopy_flags(pTHX_ SV * const oldsv, U32 flags)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_MORTALCOPY_FLAGS
-PERL_CALLCONV SV* Perl_sv_newmortal(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_sv_newmortal(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_NEWMORTAL
-PERL_CALLCONV SV* Perl_sv_newref(pTHX_ SV *const sv);
+PERL_CALLCONV SV *
+Perl_sv_newref(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_NEWREF
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_nolocking(pTHX_ SV *sv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_NOLOCKING
-#endif
-PERL_CALLCONV void Perl_sv_nosharing(pTHX_ SV *sv);
+PERL_CALLCONV void
+Perl_sv_nosharing(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_NOSHARING
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_NOUNLOCKING
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV NV Perl_sv_nv(pTHX_ SV* sv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_NV \
- assert(sv)
-#endif
+/* PERL_CALLCONV bool
+sv_numeq(pTHX_ SV *sv1, SV *sv2); */
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_sv_only_taint_gmagic(SV *sv);
-#define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC \
- assert(sv)
-#endif
-PERL_CALLCONV char* Perl_sv_peek(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SV_PEEK
-PERL_CALLCONV void Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp);
-#define PERL_ARGS_ASSERT_SV_POS_B2U \
- assert(offsetp)
-PERL_CALLCONV STRLEN Perl_sv_pos_b2u_flags(pTHX_ SV *const sv, STRLEN const offset, U32 flags);
-#define PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS \
- assert(sv)
-PERL_CALLCONV void Perl_sv_pos_u2b(pTHX_ SV *const sv, I32 *const offsetp, I32 *const lenp);
-#define PERL_ARGS_ASSERT_SV_POS_U2B \
- assert(offsetp)
-PERL_CALLCONV STRLEN Perl_sv_pos_u2b_flags(pTHX_ SV *const sv, STRLEN uoffset, STRLEN *const lenp, U32 flags);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pv(pTHX_ SV *sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_PV \
- assert(sv)
-#endif
+PERL_CALLCONV bool
+Perl_sv_numeq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_NUMEQ_FLAGS
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvbyte(pTHX_ SV *sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_PVBYTE \
- assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVBYTEN \
- assert(sv); assert(lp)
-#endif
-
-PERL_CALLCONV char* Perl_sv_pvbyten_force(pTHX_ SV *const sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVN \
- assert(sv); assert(lp)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp);
-#define PERL_ARGS_ASSERT_SV_PVN_FORCE \
- assert(sv)
-#endif
-PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVN_NOMG \
- assert(sv)
-#endif
+PERL_CALLCONV char *
+Perl_sv_peek(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_PEEK
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvutf8(pTHX_ SV *sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_PVUTF8 \
- assert(sv)
-#endif
+PERL_CALLCONV void
+Perl_sv_pos_b2u(pTHX_ SV * const sv, I32 * const offsetp);
+#define PERL_ARGS_ASSERT_SV_POS_B2U \
+ assert(offsetp)
+
+PERL_CALLCONV STRLEN
+Perl_sv_pos_b2u_flags(pTHX_ SV * const sv, STRLEN const offset, U32 flags);
+#define PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_pos_u2b(pTHX_ SV * const sv, I32 * const offsetp, I32 * const lenp);
+#define PERL_ARGS_ASSERT_SV_POS_U2B \
+ assert(offsetp)
+
+PERL_CALLCONV STRLEN
+Perl_sv_pos_u2b_flags(pTHX_ SV * const sv, STRLEN uoffset, STRLEN * const lenp, U32 flags);
+#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvbyten_force(pTHX_ SV * const sv, STRLEN * const lp);
+#define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvn_force_flags(pTHX_ SV * const sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvutf8n_force(pTHX_ SV * const sv, STRLEN * const lp);
+#define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_recode_to_utf8(pTHX_ SV *sv, SV *encoding);
+#define PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8 \
+ assert(sv); assert(encoding)
+
+PERL_CALLCONV SV *
+Perl_sv_ref(pTHX_ SV *dst, const SV * const sv, const int ob);
+#define PERL_ARGS_ASSERT_SV_REF \
+ assert(sv)
+
+PERL_CALLCONV const char *
+Perl_sv_reftype(pTHX_ const SV * const sv, const int ob)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_REFTYPE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_replace(pTHX_ SV * const sv, SV * const nsv);
+#define PERL_ARGS_ASSERT_SV_REPLACE \
+ assert(sv); assert(nsv)
+
+PERL_CALLCONV void
+Perl_sv_report_used(pTHX);
+#define PERL_ARGS_ASSERT_SV_REPORT_USED
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVUTF8N \
- assert(sv); assert(lp)
-#endif
+PERL_CALLCONV void
+Perl_sv_reset(pTHX_ const char *s, HV * const stash);
+#define PERL_ARGS_ASSERT_SV_RESET \
+ assert(s)
-PERL_CALLCONV char* Perl_sv_pvutf8n_force(pTHX_ SV *const sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE \
- assert(sv)
-PERL_CALLCONV char* Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding);
-#define PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8 \
- assert(sv); assert(encoding)
-PERL_CALLCONV SV* Perl_sv_ref(pTHX_ SV *dst, const SV *const sv, const int ob);
-#define PERL_ARGS_ASSERT_SV_REF \
- assert(sv)
-PERL_CALLCONV const char* Perl_sv_reftype(pTHX_ const SV *const sv, const int ob)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_REFTYPE \
- assert(sv)
-
-PERL_CALLCONV void Perl_sv_replace(pTHX_ SV *const sv, SV *const nsv);
-#define PERL_ARGS_ASSERT_SV_REPLACE \
- assert(sv); assert(nsv)
-PERL_CALLCONV void Perl_sv_report_used(pTHX);
-#define PERL_ARGS_ASSERT_SV_REPORT_USED
-PERL_CALLCONV void Perl_sv_reset(pTHX_ const char* s, HV *const stash);
-#define PERL_ARGS_ASSERT_SV_RESET \
- assert(s)
-PERL_CALLCONV void Perl_sv_resetpvn(pTHX_ const char* s, STRLEN len, HV *const stash);
+PERL_CALLCONV void
+Perl_sv_resetpvn(pTHX_ const char *s, STRLEN len, HV * const stash)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_SV_RESETPVN
-PERL_CALLCONV SV* Perl_sv_rvunweaken(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_RVUNWEAKEN \
- assert(sv)
-PERL_CALLCONV SV* Perl_sv_rvweaken(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_RVWEAKEN \
- assert(sv)
-PERL_CALLCONV void Perl_sv_set_undef(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_SET_UNDEF \
- assert(sv)
-PERL_CALLCONV void Perl_sv_sethek(pTHX_ SV *const sv, const HEK *const hek);
-#define PERL_ARGS_ASSERT_SV_SETHEK \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setiv(pTHX_ SV *const sv, const IV num);
-#define PERL_ARGS_ASSERT_SV_SETIV \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setiv_mg(pTHX_ SV *const sv, const IV i);
-#define PERL_ARGS_ASSERT_SV_SETIV_MG \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setnv(pTHX_ SV *const sv, const NV num);
-#define PERL_ARGS_ASSERT_SV_SETNV \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setnv_mg(pTHX_ SV *const sv, const NV num);
-#define PERL_ARGS_ASSERT_SV_SETNV_MG \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setpv(pTHX_ SV *const sv, const char *const ptr);
-#define PERL_ARGS_ASSERT_SV_SETPV \
- assert(sv)
-PERL_CALLCONV char * Perl_sv_setpv_bufsize(pTHX_ SV *const sv, const STRLEN cur, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPV_BUFSIZE \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setpv_mg(pTHX_ SV *const sv, const char *const ptr);
-#define PERL_ARGS_ASSERT_SV_SETPV_MG \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setpvf(pTHX_ SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_SETPVF \
- assert(sv); assert(pat)
-
-PERL_CALLCONV void Perl_sv_setpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_SETPVF_MG \
- assert(sv); assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_setpviv(pTHX_ SV *const sv, const IV num)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_SETPVIV \
- assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_setpviv_mg(pTHX_ SV *const sv, const IV iv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_SETPVIV_MG \
- assert(sv)
-#endif
-PERL_CALLCONV void Perl_sv_setpvn(pTHX_ SV *const sv, const char *const ptr, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPVN \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setpvn_mg(pTHX_ SV *const sv, const char *const ptr, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPVN_MG \
- assert(sv); assert(ptr)
-PERL_CALLCONV SV* Perl_sv_setref_iv(pTHX_ SV *const rv, const char *const classname, const IV iv);
-#define PERL_ARGS_ASSERT_SV_SETREF_IV \
- assert(rv)
-PERL_CALLCONV SV* Perl_sv_setref_nv(pTHX_ SV *const rv, const char *const classname, const NV nv);
-#define PERL_ARGS_ASSERT_SV_SETREF_NV \
- assert(rv)
-PERL_CALLCONV SV* Perl_sv_setref_pv(pTHX_ SV *const rv, const char *const classname, void *const pv);
-#define PERL_ARGS_ASSERT_SV_SETREF_PV \
- assert(rv)
-PERL_CALLCONV SV* Perl_sv_setref_pvn(pTHX_ SV *const rv, const char *const classname, const char *const pv, const STRLEN n);
-#define PERL_ARGS_ASSERT_SV_SETREF_PVN \
- assert(rv); assert(pv)
-PERL_CALLCONV SV* Perl_sv_setref_uv(pTHX_ SV *const rv, const char *const classname, const UV uv);
-#define PERL_ARGS_ASSERT_SV_SETREF_UV \
- assert(rv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_setsv(pTHX_ SV *dsv, SV *ssv);
-#define PERL_ARGS_ASSERT_SV_SETSV \
- assert(dsv)
-#endif
-PERL_CALLCONV void Perl_sv_setsv_flags(pTHX_ SV *dsv, SV *ssv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \
- assert(dsv)
-PERL_CALLCONV void Perl_sv_setsv_mg(pTHX_ SV *const dsv, SV *const ssv);
-#define PERL_ARGS_ASSERT_SV_SETSV_MG \
- assert(dsv)
-PERL_CALLCONV void Perl_sv_setuv(pTHX_ SV *const sv, const UV num);
-#define PERL_ARGS_ASSERT_SV_SETUV \
- assert(sv)
-PERL_CALLCONV void Perl_sv_setuv_mg(pTHX_ SV *const sv, const UV u);
-#define PERL_ARGS_ASSERT_SV_SETUV_MG \
- assert(sv)
-PERL_CALLCONV SV* Perl_sv_string_from_errnum(pTHX_ int errnum, SV* tgtsv);
+PERL_CALLCONV SV *
+Perl_sv_rvunweaken(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_RVUNWEAKEN \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_rvweaken(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_RVWEAKEN \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_bool(pTHX_ SV *sv, const bool bool_val);
+#define PERL_ARGS_ASSERT_SV_SET_BOOL \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_false(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_FALSE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_true(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_TRUE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_undef(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_UNDEF \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_sethek(pTHX_ SV * const sv, const HEK * const hek);
+#define PERL_ARGS_ASSERT_SV_SETHEK \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setiv(pTHX_ SV * const sv, const IV num);
+#define PERL_ARGS_ASSERT_SV_SETIV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setiv_mg(pTHX_ SV * const sv, const IV i);
+#define PERL_ARGS_ASSERT_SV_SETIV_MG \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setnv(pTHX_ SV * const sv, const NV num);
+#define PERL_ARGS_ASSERT_SV_SETNV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setnv_mg(pTHX_ SV * const sv, const NV num);
+#define PERL_ARGS_ASSERT_SV_SETNV_MG \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpv(pTHX_ SV * const sv, const char * const ptr);
+#define PERL_ARGS_ASSERT_SV_SETPV \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_setpv_bufsize(pTHX_ SV * const sv, const STRLEN cur, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPV_BUFSIZE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpv_mg(pTHX_ SV * const sv, const char * const ptr);
+#define PERL_ARGS_ASSERT_SV_SETPV_MG \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpvf(pTHX_ SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_SETPVF \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvf_mg(pTHX_ SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_SETPVF_MG \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvn(pTHX_ SV * const sv, const char * const ptr, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPVN \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpvn_fresh(pTHX_ SV * const sv, const char * const ptr, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPVN_FRESH \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpvn_mg(pTHX_ SV * const sv, const char * const ptr, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPVN_MG \
+ assert(sv); assert(ptr)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_iv(pTHX_ SV * const rv, const char * const classname, const IV iv);
+#define PERL_ARGS_ASSERT_SV_SETREF_IV \
+ assert(rv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_nv(pTHX_ SV * const rv, const char * const classname, const NV nv);
+#define PERL_ARGS_ASSERT_SV_SETREF_NV \
+ assert(rv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_pv(pTHX_ SV * const rv, const char * const classname, void * const pv);
+#define PERL_ARGS_ASSERT_SV_SETREF_PV \
+ assert(rv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_pvn(pTHX_ SV * const rv, const char * const classname, const char * const pv, const STRLEN n);
+#define PERL_ARGS_ASSERT_SV_SETREF_PVN \
+ assert(rv); assert(pv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_uv(pTHX_ SV * const rv, const char * const classname, const UV uv);
+#define PERL_ARGS_ASSERT_SV_SETREF_UV \
+ assert(rv)
+
+PERL_CALLCONV void
+Perl_sv_setrv_inc(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_INC \
+ assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setrv_inc_mg(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_INC_MG \
+ assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setrv_noinc(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_NOINC \
+ assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setrv_noinc_mg(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_NOINC_MG \
+ assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setsv_flags(pTHX_ SV *dsv, SV *ssv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_setsv_mg(pTHX_ SV * const dsv, SV * const ssv);
+#define PERL_ARGS_ASSERT_SV_SETSV_MG \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_setuv(pTHX_ SV * const sv, const UV num);
+#define PERL_ARGS_ASSERT_SV_SETUV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setuv_mg(pTHX_ SV * const sv, const UV u);
+#define PERL_ARGS_ASSERT_SV_SETUV_MG \
+ assert(sv)
+
+/* PERL_CALLCONV bool
+sv_streq(pTHX_ SV *sv1, SV *sv2); */
+
+PERL_CALLCONV bool
+Perl_sv_streq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_STREQ_FLAGS
+
+PERL_CALLCONV SV *
+Perl_sv_string_from_errnum(pTHX_ int errnum, SV *tgtsv);
#define PERL_ARGS_ASSERT_SV_STRING_FROM_ERRNUM
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_taint(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SV_TAINT \
- assert(sv)
-#endif
-PERL_CALLCONV bool Perl_sv_tainted(pTHX_ SV *const sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_TAINTED \
- assert(sv)
-PERL_CALLCONV I32 Perl_sv_true(pTHX_ SV *const sv);
+PERL_CALLCONV bool
+Perl_sv_tainted(pTHX_ SV * const sv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_TAINTED \
+ assert(sv)
+
+PERL_CALLCONV I32
+Perl_sv_true(pTHX_ SV * const sv);
#define PERL_ARGS_ASSERT_SV_TRUE
-PERL_CALLCONV char* Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_UNI_DISPLAY \
- assert(dsv); assert(ssv)
-
-PERL_CALLCONV int Perl_sv_unmagic(pTHX_ SV *const sv, const int type);
-#define PERL_ARGS_ASSERT_SV_UNMAGIC \
- assert(sv)
-PERL_CALLCONV int Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl);
-#define PERL_ARGS_ASSERT_SV_UNMAGICEXT \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_unref(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SV_UNREF \
- assert(sv)
-#endif
-PERL_CALLCONV void Perl_sv_unref_flags(pTHX_ SV *const ref, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_UNREF_FLAGS \
- assert(ref)
-PERL_CALLCONV void Perl_sv_untaint(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_UNTAINT \
- assert(sv)
-PERL_CALLCONV void Perl_sv_upgrade(pTHX_ SV *const sv, svtype new_type);
-#define PERL_ARGS_ASSERT_SV_UPGRADE \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_USEPVN \
- assert(sv)
-#endif
-PERL_CALLCONV void Perl_sv_usepvn_flags(pTHX_ SV *const sv, char* ptr, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_USEPVN_MG \
- assert(sv)
-#endif
-PERL_CALLCONV bool Perl_sv_utf8_decode(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_UTF8_DECODE \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool Perl_sv_utf8_downgrade(pTHX_ SV *const sv, const bool fail_ok);
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE \
- assert(sv)
-#endif
-PERL_CALLCONV bool Perl_sv_utf8_downgrade_flags(pTHX_ SV *const sv, const bool fail_ok, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_FLAGS \
- assert(sv)
-/* PERL_CALLCONV bool sv_utf8_downgrade_nomg(pTHX_ SV *const sv, const bool fail_ok); */
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_NOMG
-PERL_CALLCONV void Perl_sv_utf8_encode(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE \
- assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE \
- assert(sv)
-#endif
-/* PERL_CALLCONV STRLEN sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags); */
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS
-PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extra);
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \
- assert(sv)
-/* PERL_CALLCONV STRLEN sv_utf8_upgrade_nomg(pTHX_ SV *sv); */
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_NOMG
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV Perl_sv_uv(pTHX_ SV* sv)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_UV \
- assert(sv)
-#endif
-PERL_CALLCONV void Perl_sv_vcatpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VCATPVF \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vcatpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VCATPVF_MG \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vcatpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted);
-#define PERL_ARGS_ASSERT_SV_VCATPVFN \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vsetpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VSETPVF \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vsetpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VSETPVF_MG \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vsetpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted);
-#define PERL_ARGS_ASSERT_SV_VSETPVFN \
- assert(sv); assert(pat)
-PERL_CALLCONV void Perl_switch_to_global_locale(void);
+PERL_CALLCONV char *
+Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_UNI_DISPLAY \
+ assert(dsv); assert(ssv)
+
+PERL_CALLCONV int
+Perl_sv_unmagic(pTHX_ SV * const sv, const int type);
+#define PERL_ARGS_ASSERT_SV_UNMAGIC \
+ assert(sv)
+
+PERL_CALLCONV int
+Perl_sv_unmagicext(pTHX_ SV * const sv, const int type, const MGVTBL *vtbl);
+#define PERL_ARGS_ASSERT_SV_UNMAGICEXT \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_unref_flags(pTHX_ SV * const ref, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_UNREF_FLAGS \
+ assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_untaint(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_UNTAINT \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_upgrade(pTHX_ SV * const sv, svtype new_type);
+#define PERL_ARGS_ASSERT_SV_UPGRADE \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_usepvn_flags(pTHX_ SV * const sv, char *ptr, const STRLEN len, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS \
+ assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_utf8_decode(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_UTF8_DECODE \
+ assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_utf8_downgrade_flags(pTHX_ SV * const sv, const bool fail_ok, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_FLAGS \
+ assert(sv)
+
+/* PERL_CALLCONV bool
+sv_utf8_downgrade_nomg(pTHX_ SV * const sv, const bool fail_ok); */
+
+PERL_CALLCONV void
+Perl_sv_utf8_encode(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE \
+ assert(sv)
+
+/* PERL_CALLCONV STRLEN
+sv_utf8_upgrade_flags(pTHX_ SV * const sv, const I32 flags); */
+
+PERL_CALLCONV STRLEN
+Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV * const sv, const I32 flags, STRLEN extra);
+#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \
+ assert(sv)
+
+/* PERL_CALLCONV STRLEN
+sv_utf8_upgrade_nomg(pTHX_ SV *sv); */
+
+PERL_CALLCONV void
+Perl_sv_vcatpvf(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VCATPVF \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vcatpvf_mg(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VCATPVF_MG \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vcatpvfn(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted);
+#define PERL_ARGS_ASSERT_SV_VCATPVFN \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vcatpvfn_flags(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vsetpvf(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VSETPVF \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vsetpvf_mg(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VSETPVF_MG \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vsetpvfn(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted);
+#define PERL_ARGS_ASSERT_SV_VSETPVFN \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_switch_to_global_locale(pTHX);
#define PERL_ARGS_ASSERT_SWITCH_TO_GLOBAL_LOCALE
-PERL_CALLCONV bool Perl_sync_locale(void);
+
+PERL_CALLCONV bool
+Perl_sync_locale(pTHX);
#define PERL_ARGS_ASSERT_SYNC_LOCALE
-PERL_CALLCONV void Perl_sys_init(int* argc, char*** argv);
-#define PERL_ARGS_ASSERT_SYS_INIT \
- assert(argc); assert(argv)
-PERL_CALLCONV void Perl_sys_init3(int* argc, char*** argv, char*** env);
-#define PERL_ARGS_ASSERT_SYS_INIT3 \
- assert(argc); assert(argv); assert(env)
-PERL_CALLCONV void Perl_sys_term(void);
+
+PERL_CALLCONV void
+Perl_sys_init(int *argc, char ***argv);
+#define PERL_ARGS_ASSERT_SYS_INIT \
+ assert(argc); assert(argv)
+
+PERL_CALLCONV void
+Perl_sys_init3(int *argc, char ***argv, char ***env);
+#define PERL_ARGS_ASSERT_SYS_INIT3 \
+ assert(argc); assert(argv); assert(env)
+
+PERL_CALLCONV void
+Perl_sys_term(void);
#define PERL_ARGS_ASSERT_SYS_TERM
-PERL_CALLCONV void Perl_taint_env(pTHX);
+
+PERL_CALLCONV void
+Perl_taint_env(pTHX);
#define PERL_ARGS_ASSERT_TAINT_ENV
-PERL_CALLCONV void Perl_taint_proper(pTHX_ const char* f, const char *const s);
-#define PERL_ARGS_ASSERT_TAINT_PROPER \
- assert(s)
-PERL_CALLCONV void Perl_thread_locale_init(void);
+
+PERL_CALLCONV void
+Perl_taint_proper(pTHX_ const char *f, const char * const s);
+#define PERL_ARGS_ASSERT_TAINT_PROPER \
+ assert(s)
+
+PERL_CALLCONV void
+Perl_thread_locale_init(pTHX);
#define PERL_ARGS_ASSERT_THREAD_LOCALE_INIT
-PERL_CALLCONV void Perl_thread_locale_term(void);
+
+PERL_CALLCONV void
+Perl_thread_locale_term(pTHX);
#define PERL_ARGS_ASSERT_THREAD_LOCALE_TERM
-PERL_CALLCONV OP * Perl_tied_method(pTHX_ SV *methname, SV **sp, SV *const sv, const MAGIC *const mg, const U32 flags, U32 argc, ...);
-#define PERL_ARGS_ASSERT_TIED_METHOD \
- assert(methname); assert(sp); assert(sv); assert(mg)
-PERL_CALLCONV SSize_t Perl_tmps_grow_p(pTHX_ SSize_t ix);
-#define PERL_ARGS_ASSERT_TMPS_GROW_P
-/* PERL_CALLCONV UV to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp); */
-#define PERL_ARGS_ASSERT_TO_UNI_FOLD
-PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TO_UNI_LOWER \
- assert(p); assert(lenp)
-PERL_CALLCONV UV Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TO_UNI_TITLE \
- assert(p); assert(lenp)
-PERL_CALLCONV UV Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TO_UNI_UPPER \
- assert(p); assert(lenp)
-PERL_CALLCONV bool Perl_try_amagic_bin(pTHX_ int method, int flags);
-#define PERL_ARGS_ASSERT_TRY_AMAGIC_BIN
-PERL_CALLCONV bool Perl_try_amagic_un(pTHX_ int method, int flags);
-#define PERL_ARGS_ASSERT_TRY_AMAGIC_UN
-#ifndef NO_MATHOMS
-PERL_CALLCONV SSize_t Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UNPACK_STR \
- assert(pat); assert(patend); assert(s); assert(strend)
-#endif
-PERL_CALLCONV SSize_t Perl_unpackstring(pTHX_ const char *pat, const char *patend, const char *s, const char *strend, U32 flags);
-#define PERL_ARGS_ASSERT_UNPACKSTRING \
- assert(pat); assert(patend); assert(s); assert(strend)
-PERL_CALLCONV void Perl_unshare_hek(pTHX_ HEK* hek);
-#define PERL_ARGS_ASSERT_UNSHARE_HEK
-PERL_CALLCONV void Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
-#define PERL_ARGS_ASSERT_UNSHAREPVN
-PERL_CALLCONV SV* Perl_upg_version(pTHX_ SV *ver, bool qv);
-#define PERL_ARGS_ASSERT_UPG_VERSION \
- assert(ver)
-PERL_CALLCONV U8* Perl_utf16_to_utf8(pTHX_ U8* p, U8 *d, Size_t bytelen, Size_t *newlen);
-#define PERL_ARGS_ASSERT_UTF16_TO_UTF8 \
- assert(p); assert(d); assert(newlen)
-PERL_CALLCONV U8* Perl_utf16_to_utf8_reversed(pTHX_ U8* p, U8 *d, Size_t bytelen, Size_t *newlen);
-#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED \
- assert(p); assert(d); assert(newlen)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE IV Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_DISTANCE \
- assert(a); assert(b)
-#endif
+PERL_CALLCONV OP *
+Perl_tied_method(pTHX_ SV *methname, SV **sp, SV * const sv, const MAGIC * const mg, const U32 flags, U32 argc, ...)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_TIED_METHOD \
+ assert(methname); assert(sp); assert(sv); assert(mg)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8* Perl_utf8_hop(const U8 *s, SSize_t off)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP \
- assert(s)
-#endif
+PERL_CALLCONV SSize_t
+Perl_tmps_grow_p(pTHX_ SSize_t ix);
+#define PERL_ARGS_ASSERT_TMPS_GROW_P
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8* Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP_BACK \
- assert(s); assert(start)
-#endif
+/* PERL_CALLCONV UV
+to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp); */
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8* Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD \
- assert(s); assert(end)
-#endif
+PERL_CALLCONV UV
+Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_TO_UNI_LOWER \
+ assert(p); assert(lenp)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8* Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP_SAFE \
- assert(s); assert(start); assert(end)
-#endif
+PERL_CALLCONV UV
+Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_TO_UNI_TITLE \
+ assert(p); assert(lenp)
-PERL_CALLCONV STRLEN Perl_utf8_length(pTHX_ const U8* s, const U8 *e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_LENGTH \
- assert(s); assert(e)
-
-PERL_CALLCONV U8* Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_UTF8_TO_BYTES \
- assert(s); assert(lenp)
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR \
- assert(s)
-#endif
+PERL_CALLCONV UV
+Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_TO_UNI_UPPER \
+ assert(p); assert(lenp)
-PERL_CALLCONV UV Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
-#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF \
- assert(s); assert(send)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV Perl_utf8_to_uvchr_buf_helper(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
-#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF_HELPER \
- assert(s); assert(send)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI \
- assert(s)
-#endif
+PERL_CALLCONV bool
+Perl_try_amagic_bin(pTHX_ int method, int flags);
+#define PERL_ARGS_ASSERT_TRY_AMAGIC_BIN
-PERL_CALLCONV UV Perl_utf8_to_uvuni_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF \
- assert(s); assert(send)
-
-PERL_CALLCONV UV Perl_utf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
- assert(s)
-PERL_CALLCONV UV Perl_utf8n_to_uvchr_error(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_ERROR \
- assert(s)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV Perl_utf8n_to_uvchr_msgs(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors, AV ** msgs);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_MSGS \
- assert(s)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI \
- assert(s)
-#endif
+PERL_CALLCONV bool
+Perl_try_amagic_un(pTHX_ int method, int flags);
+#define PERL_ARGS_ASSERT_TRY_AMAGIC_UN
-PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg);
-#define PERL_ARGS_ASSERT_UTILIZE \
- assert(idop)
-/* PERL_CALLCONV U8* uvchr_to_utf8(pTHX_ U8 *d, UV uv); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8
-/* PERL_CALLCONV U8* uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS
-/* PERL_CALLCONV U8* uvchr_to_utf8_flags_msgs(pTHX_ U8 *d, UV uv, UV flags, HV ** msgs); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS_MSGS
-PERL_CALLCONV U8* Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, const UV flags);
-#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS \
- assert(d)
-PERL_CALLCONV U8* Perl_uvoffuni_to_utf8_flags_msgs(pTHX_ U8 *d, UV uv, const UV flags, HV** msgs);
-#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS_MSGS \
- assert(d)
-PERL_CALLCONV U8* Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
-#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8 \
- assert(d)
-#ifndef NO_MATHOMS
-PERL_CALLCONV U8* Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS \
- assert(d)
-#endif
+PERL_CALLCONV SSize_t
+Perl_unpackstring(pTHX_ const char *pat, const char *patend, const char *s, const char *strend, U32 flags);
+#define PERL_ARGS_ASSERT_UNPACKSTRING \
+ assert(pat); assert(patend); assert(s); assert(strend)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR \
- assert(s)
-#endif
+PERL_CALLCONV void
+Perl_unshare_hek(pTHX_ HEK *hek);
+#define PERL_ARGS_ASSERT_UNSHARE_HEK
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI \
- assert(s)
-#endif
+PERL_CALLCONV void
+Perl_unsharepvn(pTHX_ const char *sv, I32 len, U32 hash);
+#define PERL_ARGS_ASSERT_UNSHAREPVN
-PERL_CALLCONV bool Perl_validate_proto(pTHX_ SV *name, SV *proto, bool warn, bool curstash);
-#define PERL_ARGS_ASSERT_VALIDATE_PROTO \
- assert(name)
-PERL_CALLCONV int Perl_vcmp(pTHX_ SV *lhv, SV *rhv);
-#define PERL_ARGS_ASSERT_VCMP \
- assert(lhv); assert(rhv)
-PERL_CALLCONV_NO_RET void Perl_vcroak(pTHX_ const char* pat, va_list* args)
- __attribute__noreturn__;
+PERL_CALLCONV SV *
+Perl_upg_version(pTHX_ SV *ver, bool qv);
+#define PERL_ARGS_ASSERT_UPG_VERSION \
+ assert(ver)
+
+PERL_CALLCONV U8 *
+Perl_utf16_to_utf8(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen);
+#define PERL_ARGS_ASSERT_UTF16_TO_UTF8 \
+ assert(p); assert(d); assert(newlen)
+
+PERL_CALLCONV U8 *
+Perl_utf16_to_utf8_base(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low);
+#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_BASE \
+ assert(p); assert(d); assert(newlen)
+
+PERL_CALLCONV U8 *
+Perl_utf16_to_utf8_reversed(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen);
+#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED \
+ assert(p); assert(d); assert(newlen)
+
+PERL_CALLCONV STRLEN
+Perl_utf8_length(pTHX_ const U8 *s0, const U8 *e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_UTF8_LENGTH \
+ assert(s0); assert(e)
+
+PERL_CALLCONV U8 *
+Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_UTF8_TO_BYTES \
+ assert(s); assert(lenp)
+
+PERL_CALLCONV U8 *
+Perl_utf8_to_utf16_base(pTHX_ U8 *s, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low);
+#define PERL_ARGS_ASSERT_UTF8_TO_UTF16_BASE \
+ assert(s); assert(d); assert(newlen)
+
+PERL_CALLCONV UV
+Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF \
+ assert(s); assert(send)
+
+PERL_CALLCONV UV
+Perl_utf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags);
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
+ assert(s)
+
+PERL_CALLCONV UV
+Perl_utf8n_to_uvchr_error(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors);
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_ERROR \
+ assert(s)
+
+PERL_CALLCONV void
+Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_UTILIZE \
+ assert(idop)
+
+/* PERL_CALLCONV U8 *
+uvchr_to_utf8(pTHX_ U8 *d, UV uv); */
+
+/* PERL_CALLCONV U8 *
+uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); */
+
+/* PERL_CALLCONV U8 *
+uvchr_to_utf8_flags_msgs(pTHX_ U8 *d, UV uv, UV flags, HV **msgs); */
+
+PERL_CALLCONV U8 *
+Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
+#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS \
+ assert(d)
+
+PERL_CALLCONV U8 *
+Perl_uvoffuni_to_utf8_flags_msgs(pTHX_ U8 *d, UV input_uv, const UV flags, HV **msgs);
+#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS_MSGS \
+ assert(d)
+
+PERL_CALLCONV U8 *
+Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
+#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8 \
+ assert(d)
+
+PERL_CALLCONV bool
+Perl_validate_proto(pTHX_ SV *name, SV *proto, bool warn, bool curstash);
+#define PERL_ARGS_ASSERT_VALIDATE_PROTO \
+ assert(name)
+
+PERL_CALLCONV int
+Perl_vcmp(pTHX_ SV *lhv, SV *rhv);
+#define PERL_ARGS_ASSERT_VCMP \
+ assert(lhv); assert(rhv)
+
+PERL_CALLCONV_NO_RET void
+Perl_vcroak(pTHX_ const char *pat, va_list *args)
+ __attribute__noreturn__;
#define PERL_ARGS_ASSERT_VCROAK
-PERL_CALLCONV void Perl_vdeb(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VDEB \
- assert(pat)
-PERL_CALLCONV char* Perl_vform(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VFORM \
- assert(pat)
-PERL_CALLCONV void Perl_vivify_defelem(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_VIVIFY_DEFELEM \
- assert(sv)
-PERL_CALLCONV SV* Perl_vivify_ref(pTHX_ SV* sv, U32 to_what)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VIVIFY_REF \
- assert(sv)
-
-PERL_CALLCONV void Perl_vload_module(pTHX_ U32 flags, SV* name, SV* ver, va_list* args);
-#define PERL_ARGS_ASSERT_VLOAD_MODULE \
- assert(name)
-PERL_CALLCONV SV* Perl_vmess(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VMESS \
- assert(pat)
-PERL_CALLCONV SV* Perl_vnewSVpvf(pTHX_ const char *const pat, va_list *const args)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VNEWSVPVF \
- assert(pat)
-
-PERL_CALLCONV SV* Perl_vnormal(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VNORMAL \
- assert(vs)
-PERL_CALLCONV SV* Perl_vnumify(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VNUMIFY \
- assert(vs)
-PERL_CALLCONV SV* Perl_vstringify(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VSTRINGIFY \
- assert(vs)
-PERL_CALLCONV SV* Perl_vverify(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VVERIFY \
- assert(vs)
-PERL_CALLCONV void Perl_vwarn(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VWARN \
- assert(pat)
-PERL_CALLCONV void Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VWARNER \
- assert(pat)
-PERL_CALLCONV I32 Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags);
-#define PERL_ARGS_ASSERT_WAIT4PID \
- assert(statusp)
-PERL_CALLCONV void Perl_warn(pTHX_ const char* pat, ...)
- __attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_WARN \
- assert(pat)
-
-PERL_CALLCONV void Perl_warn_sv(pTHX_ SV *baseex);
-#define PERL_ARGS_ASSERT_WARN_SV \
- assert(baseex)
-PERL_CALLCONV void Perl_warner(pTHX_ U32 err, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_WARNER \
- assert(pat)
-
-PERL_CALLCONV I32 Perl_was_lvalue_sub(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_vdeb(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VDEB \
+ assert(pat)
+
+PERL_CALLCONV char *
+Perl_vform(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VFORM \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_vivify_defelem(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_VIVIFY_DEFELEM \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_vivify_ref(pTHX_ SV *sv, U32 to_what)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_VIVIFY_REF \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args);
+#define PERL_ARGS_ASSERT_VLOAD_MODULE \
+ assert(name)
+
+PERL_CALLCONV SV *
+Perl_vmess(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VMESS \
+ assert(pat)
+
+PERL_CALLCONV SV *
+Perl_vnewSVpvf(pTHX_ const char * const pat, va_list * const args)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_VNEWSVPVF \
+ assert(pat)
+
+PERL_CALLCONV SV *
+Perl_vnormal(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VNORMAL \
+ assert(vs)
+
+PERL_CALLCONV SV *
+Perl_vnumify(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VNUMIFY \
+ assert(vs)
+
+PERL_CALLCONV SV *
+Perl_vstringify(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VSTRINGIFY \
+ assert(vs)
+
+PERL_CALLCONV SV *
+Perl_vverify(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VVERIFY \
+ assert(vs)
+
+PERL_CALLCONV void
+Perl_vwarn(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VWARN \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_vwarner(pTHX_ U32 err, const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VWARNER \
+ assert(pat)
+
+PERL_CALLCONV I32
+Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_WAIT4PID \
+ assert(statusp)
+
+PERL_CALLCONV void
+Perl_warn(pTHX_ const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_WARN \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_warn_sv(pTHX_ SV *baseex);
+#define PERL_ARGS_ASSERT_WARN_SV \
+ assert(baseex)
+
+PERL_CALLCONV void
+Perl_warner(pTHX_ U32 err, const char *pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_WARNER \
+ assert(pat)
+
+PERL_CALLCONV I32
+Perl_was_lvalue_sub(pTHX)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_WAS_LVALUE_SUB
-PERL_CALLCONV void Perl_watch(pTHX_ char** addr);
-#define PERL_ARGS_ASSERT_WATCH \
- assert(addr)
-/* PERL_CALLCONV I32 whichsig(pTHX_ const char* sig); */
-#define PERL_ARGS_ASSERT_WHICHSIG
-PERL_CALLCONV I32 Perl_whichsig_pv(pTHX_ const char* sig);
-#define PERL_ARGS_ASSERT_WHICHSIG_PV \
- assert(sig)
-PERL_CALLCONV I32 Perl_whichsig_pvn(pTHX_ const char* sig, STRLEN len);
-#define PERL_ARGS_ASSERT_WHICHSIG_PVN \
- assert(sig)
-PERL_CALLCONV I32 Perl_whichsig_sv(pTHX_ SV* sigsv);
-#define PERL_ARGS_ASSERT_WHICHSIG_SV \
- assert(sigsv)
-PERL_CALLCONV void Perl_wrap_keyword_plugin(pTHX_ Perl_keyword_plugin_t new_plugin, Perl_keyword_plugin_t *old_plugin_p);
-#define PERL_ARGS_ASSERT_WRAP_KEYWORD_PLUGIN \
- assert(new_plugin); assert(old_plugin_p)
-PERL_CALLCONV void Perl_wrap_op_checker(pTHX_ Optype opcode, Perl_check_t new_checker, Perl_check_t *old_checker_p);
-#define PERL_ARGS_ASSERT_WRAP_OP_CHECKER \
- assert(new_checker); assert(old_checker_p)
-PERL_CALLCONV void Perl_write_to_stderr(pTHX_ SV* msv);
-#define PERL_ARGS_ASSERT_WRITE_TO_STDERR \
- assert(msv)
-PERL_CALLCONV void Perl_xs_boot_epilog(pTHX_ const I32 ax);
+PERL_CALLCONV void
+Perl_watch(pTHX_ char **addr)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_WATCH \
+ assert(addr)
+
+/* PERL_CALLCONV I32
+whichsig(pTHX_ const char *sig); */
+
+PERL_CALLCONV I32
+Perl_whichsig_pv(pTHX_ const char *sig);
+#define PERL_ARGS_ASSERT_WHICHSIG_PV \
+ assert(sig)
+
+PERL_CALLCONV I32
+Perl_whichsig_pvn(pTHX_ const char *sig, STRLEN len);
+#define PERL_ARGS_ASSERT_WHICHSIG_PVN \
+ assert(sig)
+
+PERL_CALLCONV I32
+Perl_whichsig_sv(pTHX_ SV *sigsv);
+#define PERL_ARGS_ASSERT_WHICHSIG_SV \
+ assert(sigsv)
+
+PERL_CALLCONV void
+Perl_wrap_infix_plugin(pTHX_ Perl_infix_plugin_t new_plugin, Perl_infix_plugin_t *old_plugin_p);
+#define PERL_ARGS_ASSERT_WRAP_INFIX_PLUGIN \
+ assert(new_plugin); assert(old_plugin_p)
+
+PERL_CALLCONV void
+Perl_wrap_keyword_plugin(pTHX_ Perl_keyword_plugin_t new_plugin, Perl_keyword_plugin_t *old_plugin_p);
+#define PERL_ARGS_ASSERT_WRAP_KEYWORD_PLUGIN \
+ assert(new_plugin); assert(old_plugin_p)
+
+PERL_CALLCONV void
+Perl_wrap_op_checker(pTHX_ Optype opcode, Perl_check_t new_checker, Perl_check_t *old_checker_p);
+#define PERL_ARGS_ASSERT_WRAP_OP_CHECKER \
+ assert(new_checker); assert(old_checker_p)
+
+PERL_CALLCONV void
+Perl_write_to_stderr(pTHX_ SV *msv)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_WRITE_TO_STDERR \
+ assert(msv)
+
+PERL_CALLCONV void
+Perl_xs_boot_epilog(pTHX_ const I32 ax);
#define PERL_ARGS_ASSERT_XS_BOOT_EPILOG
-PERL_CALLCONV I32 Perl_xs_handshake(const U32 key, void * v_my_perl, const char * file, ...);
-#define PERL_ARGS_ASSERT_XS_HANDSHAKE \
- assert(v_my_perl); assert(file)
-PERL_CALLCONV int Perl_yyerror(pTHX_ const char *const s);
-#define PERL_ARGS_ASSERT_YYERROR \
- assert(s)
-PERL_CALLCONV int Perl_yyerror_pv(pTHX_ const char *const s, U32 flags);
-#define PERL_ARGS_ASSERT_YYERROR_PV \
- assert(s)
-PERL_CALLCONV int Perl_yyerror_pvn(pTHX_ const char *const s, STRLEN len, U32 flags);
+
+PERL_CALLCONV I32
+Perl_xs_handshake(const U32 key, void *v_my_perl, const char *file, ...);
+#define PERL_ARGS_ASSERT_XS_HANDSHAKE \
+ assert(v_my_perl); assert(file)
+
+PERL_CALLCONV int
+Perl_yyerror(pTHX_ const char * const s)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_YYERROR \
+ assert(s)
+
+PERL_CALLCONV int
+Perl_yyerror_pv(pTHX_ const char * const s, U32 flags)
+ __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_YYERROR_PV \
+ assert(s)
+
+PERL_CALLCONV int
+Perl_yyerror_pvn(pTHX_ const char * const s, STRLEN len, U32 flags)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_YYERROR_PVN
-PERL_CALLCONV int Perl_yylex(pTHX);
+
+PERL_CALLCONV int
+Perl_yylex(pTHX);
#define PERL_ARGS_ASSERT_YYLEX
-PERL_CALLCONV int Perl_yyparse(pTHX_ int gramtype);
+
+PERL_CALLCONV int
+Perl_yyparse(pTHX_ int gramtype)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_YYPARSE
-PERL_CALLCONV void Perl_yyquit(pTHX);
+
+PERL_CALLCONV void
+Perl_yyquit(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_YYQUIT
-PERL_CALLCONV void Perl_yyunlex(pTHX);
+
+PERL_CALLCONV void
+Perl_yyunlex(pTHX)
+ __attribute__visibility__("hidden");
#define PERL_ARGS_ASSERT_YYUNLEX
-#if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void * S_my_memrchr(const char * s, const char c, const STRLEN len);
-#define PERL_ARGS_ASSERT_MY_MEMRCHR \
- assert(s)
-#endif
-#endif
-#if !(!defined(PERL_EXT_RE_BUILD))
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV SV* Perl_get_re_gclass_nonbitmap_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist);
-#define PERL_ARGS_ASSERT_GET_RE_GCLASS_NONBITMAP_DATA \
- assert(node)
-# endif
-#endif
-#if !(defined(DEBUGGING))
-# if !defined(NV_PRESERVES_UV)
-# if defined(PERL_IN_SV_C)
-STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
- assert(sv)
-# endif
-# endif
-#endif
-#if !(defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H))
-PERL_CALLCONV const char* Perl_langinfo(const int item);
-#define PERL_ARGS_ASSERT_PERL_LANGINFO
-#endif
-#if !(defined(HAS_NL_LANGINFO))
-# if defined(PERL_IN_LOCALE_C)
-STATIC const char* S_my_nl_langinfo(const int item, bool toggle);
-#define PERL_ARGS_ASSERT_MY_NL_LANGINFO
-# endif
-#endif
-#if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
-PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd);
-#define PERL_ARGS_ASSERT_DO_EXEC \
- assert(cmd)
-#endif
-#if !(defined(PERL_USE_3ARG_SIGHANDLER))
-PERL_CALLCONV Signal_t Perl_csighandler(int sig);
-#define PERL_ARGS_ASSERT_CSIGHANDLER
-PERL_CALLCONV Signal_t Perl_sighandler(int sig);
-#define PERL_ARGS_ASSERT_SIGHANDLER
-#endif
-#if !(defined(_MSC_VER))
-PERL_CALLCONV_NO_RET int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \
- assert(sv); assert(mg)
+
+#if defined(DEBUGGING)
+PERL_CALLCONV int
+Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_DEBUG_OPTS \
+ assert(s)
+
+PERL_CALLCONV void
+Perl_hv_assert(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_HV_ASSERT \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_pad_setsv(pTHX_ PADOFFSET po, SV *sv);
+# define PERL_ARGS_ASSERT_PAD_SETSV \
+ assert(sv)
+
+PERL_CALLCONV SV *
+Perl_pad_sv(pTHX_ PADOFFSET po);
+# define PERL_ARGS_ASSERT_PAD_SV
+
+PERL_CALLCONV void
+Perl_set_padlist(CV *cv, PADLIST *padlist);
+# define PERL_ARGS_ASSERT_SET_PADLIST \
+ assert(cv)
+
+#endif /* defined(DEBUGGING) */
+#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+PERL_CALLCONV void
+Perl_dump_sv_child(pTHX_ SV *sv)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DUMP_SV_CHILD \
+ assert(sv)
#endif
#if !defined(EBCDIC)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned int Perl_variant_byte_number(PERL_UINTMAX_T word)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VARIANT_BYTE_NUMBER
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE unsigned int
+Perl_variant_byte_number(PERL_UINTMAX_T word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_VARIANT_BYTE_NUMBER
+
+# endif
#endif
+#if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
+PERL_CALLCONV I32
+Perl_my_chsize(pTHX_ int fd, Off_t length)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MY_CHSIZE
#endif
#if !defined(HAS_GETENV_LEN)
-PERL_CALLCONV char* Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len);
-#define PERL_ARGS_ASSERT_GETENV_LEN \
- assert(env_elem); assert(len)
-#endif
-#if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-# if defined(PERL_IN_PP_SYS_C)
-STATIC int S_dooneliner(pTHX_ const char *cmd, const char *filename)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOONELINER \
- assert(cmd); assert(filename)
-
-# endif
+PERL_CALLCONV char *
+Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GETENV_LEN \
+ assert(env_elem); assert(len)
+
#endif
#if !defined(HAS_MKOSTEMP)
-PERL_CALLCONV int Perl_my_mkostemp(char *templte, int flags);
-#define PERL_ARGS_ASSERT_MY_MKOSTEMP \
- assert(templte)
+PERL_CALLCONV int
+Perl_my_mkostemp(char *templte, int flags)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MY_MKOSTEMP \
+ assert(templte)
+
#endif
#if !defined(HAS_MKSTEMP)
-PERL_CALLCONV int Perl_my_mkstemp(char *templte);
-#define PERL_ARGS_ASSERT_MY_MKSTEMP \
- assert(templte)
-#endif
-#if !defined(HAS_RENAME)
-PERL_CALLCONV I32 Perl_same_dirent(pTHX_ const char* a, const char* b);
-#define PERL_ARGS_ASSERT_SAME_DIRENT \
- assert(a); assert(b)
-#endif
-#if !defined(HAS_SIGNBIT)
-PERL_CALLCONV int Perl_signbit(NV f)
- __attribute__warn_unused_result__
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_PERL_SIGNBIT
+PERL_CALLCONV int
+Perl_my_mkstemp(char *templte)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MY_MKSTEMP \
+ assert(templte)
#endif
-#if !defined(HAS_STRLCAT)
-PERL_CALLCONV Size_t Perl_my_strlcat(char *dst, const char *src, Size_t size);
-#define PERL_ARGS_ASSERT_MY_STRLCAT
-#endif
-#if !defined(HAS_STRLCPY)
-PERL_CALLCONV Size_t Perl_my_strlcpy(char *dst, const char *src, Size_t size);
-#define PERL_ARGS_ASSERT_MY_STRLCPY
-#endif
-#if !defined(HAS_STRNLEN)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t Perl_my_strnlen(const char *str, Size_t maxlen);
-#define PERL_ARGS_ASSERT_MY_STRNLEN \
- assert(str)
-#endif
-#endif
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-PERL_CALLCONV I32 Perl_my_chsize(pTHX_ int fd, Off_t length)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_CHSIZE
+#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+PERL_CALLCONV I32
+Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_IPCCTL \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_ipcget(pTHX_ I32 optype, SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_IPCGET \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_msgrcv(pTHX_ SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_MSGRCV \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_msgsnd(pTHX_ SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_MSGSND \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_semop(pTHX_ SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_SEMOP \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_SHMIO \
+ assert(mark); assert(sp)
+
+#endif /* defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) */
+#if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H)
+PERL_CALLCONV const char *
+Perl_langinfo(const nl_item item);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO
-#endif
-#if !defined(NV_PRESERVES_UV)
-# if defined(DEBUGGING)
-# if defined(PERL_IN_SV_C)
-STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv, I32 numtype);
-#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
- assert(sv)
-# endif
-# endif
-#endif
-#if !defined(PERL_DISABLE_PMC)
-# if defined(PERL_IN_PP_CTL_C)
-STATIC PerlIO * S_doopen_pm(pTHX_ SV *name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOOPEN_PM \
- assert(name)
-
-# endif
-#endif
-#if !defined(PERL_EXT_RE_BUILD)
-# if defined(PERL_IN_REGCOMP_C)
-STATIC void S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end);
-#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
- assert(invlist)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV* S__invlist_array_init(SV* const invlist, const bool will_have_0)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \
- assert(invlist)
-#endif
+PERL_CALLCONV const char *
+Perl_langinfo8(const nl_item item, utf8ness_t *utf8ness);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO8
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE IV* S_get_invlist_previous_index_addr(SV* invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \
- assert(invlist)
-#endif
+#else
+PERL_CALLCONV const char *
+Perl_langinfo(const int item);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO
-STATIC void S_initialize_invlist_guts(pTHX_ SV* invlist, const Size_t initial_size);
-#define PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS \
- assert(invlist)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_clear(pTHX_ SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_CLEAR \
- assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV S_invlist_max(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_MAX \
- assert(invlist)
-#endif
+PERL_CALLCONV const char *
+Perl_langinfo8(const int item, utf8ness_t *utf8ness);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO8
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE IV S_invlist_previous_index(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \
- assert(invlist)
#endif
+#if defined(HAS_PIPE)
+PERL_CALLCONV int
+Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLPROC_PIPE_CLOEXEC \
+ assert(pipefd)
-STATIC void S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src);
-#define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC \
- assert(dest); assert(src)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_set_previous_index(SV* const invlist, const IV index);
-#define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \
- assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_trim(SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_TRIM \
- assert(invlist)
-#endif
-# 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, SV **output_invlist);
-#define PERL_ARGS_ASSERT_GET_REGCLASS_NONBITMAP_DATA \
- assert(node)
-# endif
-#endif
-#if !defined(PERL_IMPLICIT_SYS)
-PERL_CALLCONV I32 Perl_my_pclose(pTHX_ PerlIO* ptr);
-#define PERL_ARGS_ASSERT_MY_PCLOSE
-PERL_CALLCONV PerlIO* Perl_my_popen(pTHX_ const char* cmd, const char* mode);
-#define PERL_ARGS_ASSERT_MY_POPEN \
- assert(cmd); assert(mode)
-#endif
-#if !defined(PERL_IS_MINIPERL)
-# if defined(PERL_IN_PERL_C)
-STATIC SV * S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem);
-#define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \
- assert(av); assert(dir); assert(stem)
-# endif
-#endif
-#if !defined(PERL_NO_INLINE_FUNCTIONS)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popblock(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPBLOCK \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popeval(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPEVAL \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popformat(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPFORMAT \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPGIVEN \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPLOOP \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popsub(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPSUB \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popsub_args(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPSUB_ARGS \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popsub_common(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPSUB_COMMON \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_popwhen(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPWHEN \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE PERL_CONTEXT * Perl_cx_pushblock(pTHX_ U8 type, U8 gimme, SV** sp, I32 saveix);
-#define PERL_ARGS_ASSERT_CX_PUSHBLOCK \
- assert(sp)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv);
-#define PERL_ARGS_ASSERT_CX_PUSHEVAL \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv);
-#define PERL_ARGS_ASSERT_CX_PUSHFORMAT \
- assert(cx); assert(cv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv);
-#define PERL_ARGS_ASSERT_CX_PUSHGIVEN \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV *itersave);
-#define PERL_ARGS_ASSERT_CX_PUSHLOOP_FOR \
- assert(cx); assert(itervarp)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_PUSHLOOP_PLAIN \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs);
-#define PERL_ARGS_ASSERT_CX_PUSHSUB \
- assert(cx); assert(cv)
#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushtry(pTHX_ PERL_CONTEXT *cx, OP *retop);
-#define PERL_ARGS_ASSERT_CX_PUSHTRY \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_pushwhen(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_PUSHWHEN \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void Perl_cx_topblock(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_TOPBLOCK \
- assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8 Perl_gimme_V(pTHX);
-#define PERL_ARGS_ASSERT_GIMME_V
-#endif
-#endif
-#if !defined(PERL_NO_UTF16_FILTER)
-# if defined(PERL_IN_TOKE_C)
-STATIC U8* S_add_utf16_textfilter(pTHX_ U8 *const s, bool reversed);
-#define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER \
- assert(s)
-STATIC I32 S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
-#define PERL_ARGS_ASSERT_UTF16_TEXTFILTER \
- assert(sv)
-# endif
-#endif
-#if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
-# if defined(PERL_IN_PERL_C)
-STATIC void S_validate_suid(pTHX_ PerlIO *rsfp);
-#define PERL_ARGS_ASSERT_VALIDATE_SUID \
- assert(rsfp)
-# endif
-#endif
-#if !defined(USE_ITHREADS)
-/* PERL_CALLCONV void CopFILEGV_set(pTHX_ COP * c, GV * gv); */
-#define PERL_ARGS_ASSERT_COPFILEGV_SET
-#endif
-#if !defined(UV_IS_QUAD)
-# if defined(PERL_IN_UTF8_C)
-STATIC int S_is_utf8_cp_above_31_bits(const U8 * const s, const U8 * const e, const bool consider_overlongs)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_CP_ABOVE_31_BITS \
- assert(s); assert(e)
-
-# endif
-#endif
-#if !defined(WIN32)
-PERL_CALLCONV bool Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report);
-#define PERL_ARGS_ASSERT_DO_EXEC3 \
- assert(incmd)
-#endif
-#if 0 /* Not currently used, but may be needed in the future */
-# if defined(PERL_IN_UTF8_C)
-STATIC void S_warn_on_first_deprecated_use(pTHX_ const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line);
-#define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \
- assert(name); assert(alternative); assert(file)
-# endif
-#endif
-#if defined (HAS_SOCKETPAIR) || (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && defined(AF_INET) && defined(PF_INET))
-PERL_CALLCONV int Perl_PerlSock_socketpair_cloexec(pTHX_ int domain, int type, int protocol, int *pairfd)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLSOCK_SOCKETPAIR_CLOEXEC \
- assert(pairfd)
+#if !defined(HAS_RENAME)
+PERL_CALLCONV I32
+Perl_same_dirent(pTHX_ const char *a, const char *b)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SAME_DIRENT \
+ assert(a); assert(b)
#endif
-#if defined(DEBUGGING)
-PERL_CALLCONV int Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_DEBUG_OPTS \
- assert(s)
-
-PERL_CALLCONV void Perl_hv_assert(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_ASSERT \
- assert(hv)
-PERL_CALLCONV void Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv);
-#define PERL_ARGS_ASSERT_PAD_SETSV \
- assert(sv)
-PERL_CALLCONV SV* Perl_pad_sv(pTHX_ PADOFFSET po);
-#define PERL_ARGS_ASSERT_PAD_SV
-PERL_CALLCONV void Perl_set_padlist(CV * cv, PADLIST * padlist);
-#define PERL_ARGS_ASSERT_SET_PADLIST \
- assert(cv)
-# if defined(PERL_IN_LOCALE_C)
-# if defined(USE_LOCALE)
-STATIC void S_print_bytes_for_locale(pTHX_ const char * const s, const char * const e, const bool is_utf8);
-#define PERL_ARGS_ASSERT_PRINT_BYTES_FOR_LOCALE \
- assert(s); assert(e)
-STATIC void S_print_collxfrm_input_and_return(pTHX_ const char * const s, const char * const e, const STRLEN * const xlen, const bool is_utf8);
-#define PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN \
- assert(s); assert(e)
-STATIC char * S_setlocale_debug_string(const int category, const char* const locale, const char* const retval)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SETLOCALE_DEBUG_STRING
-
-# endif
-# endif
-# if defined(PERL_IN_PAD_C)
-STATIC void S_cv_dump(pTHX_ const CV *cv, const char *title);
-#define PERL_ARGS_ASSERT_CV_DUMP \
- assert(cv); assert(title)
-# endif
-# if defined(PERL_IN_REGCOMP_C)
-STATIC void S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_TRIE \
- assert(trie); assert(revcharmap)
-STATIC void S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST \
- assert(trie); assert(revcharmap)
-STATIC void S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE \
- assert(trie); assert(revcharmap)
-STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV* sv, I32 indent, U32 depth);
-#define PERL_ARGS_ASSERT_DUMPUNTIL \
- assert(r); assert(start); assert(node); assert(sv)
-STATIC bool S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV* nonbitmap_invlist, SV* only_utf8_locale_invlist, const regnode * const node, const U8 flags, const bool force_as_is_display);
-#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \
- assert(sv)
-STATIC SV* S_put_charclass_bitmap_innards_common(pTHX_ SV* invlist, SV* posixes, SV* only_utf8, SV* not_utf8, SV* only_utf8_locale, const bool invert);
-#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON \
- assert(invlist)
-STATIC void S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV* invlist);
-#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST \
- assert(sv); assert(invlist)
-STATIC void S_put_code_point(pTHX_ SV* sv, UV c);
-#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);
-#define PERL_ARGS_ASSERT_PUT_RANGE \
- assert(sv)
-PERL_CALLCONV int Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...);
-#define PERL_ARGS_ASSERT_RE_INDENTF \
- assert(fmt)
-STATIC void S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
-#define PERL_ARGS_ASSERT_REGDUMP_EXTFLAGS
-STATIC void S_regdump_intflags(pTHX_ const char *lead, const U32 flags);
-#define PERL_ARGS_ASSERT_REGDUMP_INTFLAGS
-STATIC bool S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGTAIL_STUDY \
- assert(pRExC_state); assert(p); assert(val)
-
-# endif
-# if defined(PERL_IN_REGEXEC_C)
-STATIC void S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb);
-#define PERL_ARGS_ASSERT_DEBUG_START_MATCH \
- assert(prog); assert(start); assert(end); assert(blurb)
-STATIC void S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8, const U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_EXEC_POS \
- assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); assert(loc_reg_starttry)
-PERL_CALLCONV int Perl_re_exec_indentf(pTHX_ const char *fmt, U32 depth, ...);
-#define PERL_ARGS_ASSERT_RE_EXEC_INDENTF \
- assert(fmt)
-# endif
-# if defined(PERL_IN_SV_C)
-STATIC void S_del_sv(pTHX_ SV *p);
-#define PERL_ARGS_ASSERT_DEL_SV \
- assert(p)
-# endif
-# if defined(PERL_IN_TOKE_C)
-STATIC void S_printbuf(pTHX_ const char *const fmt, const char *const s)
- __attribute__format__(__printf__,pTHX_1,0);
-#define PERL_ARGS_ASSERT_PRINTBUF \
- assert(fmt); assert(s)
-
-STATIC int S_tokereport(pTHX_ I32 rv, const YYSTYPE* lvalp);
-#define PERL_ARGS_ASSERT_TOKEREPORT \
- assert(lvalp)
-# endif
-#endif
-#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
-# if defined(PERL_IN_REGCOMP_C)
-STATIC void S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV * stack, const IV fence, AV * fence_stack);
-#define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES \
- assert(pRExC_state); assert(stack); assert(fence_stack)
-# endif
-#endif
-#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
-PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_DUMP_SV_CHILD \
- assert(sv)
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-PERL_CALLCONV I32 Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_IPCCTL \
- assert(mark); assert(sp)
-PERL_CALLCONV I32 Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_IPCGET \
- assert(mark); assert(sp)
-PERL_CALLCONV I32 Perl_do_msgrcv(pTHX_ SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_MSGRCV \
- assert(mark); assert(sp)
-PERL_CALLCONV I32 Perl_do_msgsnd(pTHX_ SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_MSGSND \
- assert(mark); assert(sp)
-PERL_CALLCONV I32 Perl_do_semop(pTHX_ SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_SEMOP \
- assert(mark); assert(sp)
-PERL_CALLCONV I32 Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_SHMIO \
- assert(mark); assert(sp)
-#endif
-#if defined(HAS_NL_LANGINFO)
-# if defined(PERL_IN_LOCALE_C)
-STATIC const char* S_my_nl_langinfo(const nl_item item, bool toggle);
-#define PERL_ARGS_ASSERT_MY_NL_LANGINFO
-# endif
-#endif
-#if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H)
-PERL_CALLCONV const char* Perl_langinfo(const nl_item item);
-#define PERL_ARGS_ASSERT_PERL_LANGINFO
-#endif
-#if defined(HAS_PIPE)
-PERL_CALLCONV int Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLPROC_PIPE_CLOEXEC \
- assert(pipefd)
+#if !defined(HAS_SIGNBIT)
+PERL_CALLCONV int
+Perl_signbit(NV f)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+# define PERL_ARGS_ASSERT_PERL_SIGNBIT
#endif
#if defined(HAS_SOCKET)
-PERL_CALLCONV int Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLSOCK_ACCEPT_CLOEXEC
+PERL_CALLCONV int
+Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLSOCK_ACCEPT_CLOEXEC
+
+PERL_CALLCONV int
+Perl_PerlSock_socket_cloexec(pTHX_ int domain, int type, int protocol)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLSOCK_SOCKET_CLOEXEC
+
+#endif /* defined(HAS_SOCKET) */
+#if defined(HAS_SOCKETPAIR) || \
+ ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
+ defined(SOCK_DGRAM) )
+PERL_CALLCONV int
+Perl_PerlSock_socketpair_cloexec(pTHX_ int domain, int type, int protocol, int *pairfd)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLSOCK_SOCKETPAIR_CLOEXEC \
+ assert(pairfd)
-PERL_CALLCONV int Perl_PerlSock_socket_cloexec(pTHX_ int domain, int type, int protocol)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLSOCK_SOCKET_CLOEXEC
+#endif
+#if !defined(HAS_STRLCPY)
+STATIC Size_t
+Perl_my_strlcpy(char *dst, const char *src, Size_t size);
+# define PERL_ARGS_ASSERT_MY_STRLCPY
#endif
#if defined(HAVE_INTERP_INTERN)
-PERL_CALLCONV void Perl_sys_intern_clear(pTHX);
-#define PERL_ARGS_ASSERT_SYS_INTERN_CLEAR
-PERL_CALLCONV void Perl_sys_intern_init(pTHX);
-#define PERL_ARGS_ASSERT_SYS_INTERN_INIT
-# if defined(USE_ITHREADS)
-PERL_CALLCONV void Perl_sys_intern_dup(pTHX_ struct interp_intern* src, struct interp_intern* dst);
-#define PERL_ARGS_ASSERT_SYS_INTERN_DUP \
- assert(src); assert(dst)
-# endif
-#endif
+PERL_CALLCONV void
+Perl_sys_intern_clear(pTHX);
+# define PERL_ARGS_ASSERT_SYS_INTERN_CLEAR
+
+PERL_CALLCONV void
+Perl_sys_intern_init(pTHX);
+# define PERL_ARGS_ASSERT_SYS_INTERN_INIT
+
+# if defined(USE_ITHREADS)
+PERL_CALLCONV void
+Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst);
+# define PERL_ARGS_ASSERT_SYS_INTERN_DUP \
+ assert(src); assert(dst)
+
+# endif
+#endif /* defined(HAVE_INTERP_INTERN) */
+#if defined(_MSC_VER)
+PERL_CALLCONV int
+Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \
+ assert(sv); assert(mg)
+
+#else
+PERL_CALLCONV_NO_RET int
+Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__noreturn__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \
+ assert(sv); assert(mg)
+
+#endif
+#if defined(MULTIPLICITY)
+PERL_CALLCONV_NO_RET void
+Perl_croak_nocontext(const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_CROAK_NOCONTEXT
+
+PERL_CALLCONV void
+Perl_deb_nocontext(const char *pat, ...)
+ __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_DEB_NOCONTEXT \
+ assert(pat)
+
+PERL_CALLCONV_NO_RET OP *
+Perl_die_nocontext(const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_DIE_NOCONTEXT
+
+PERL_CALLCONV char *
+Perl_form_nocontext(const char *pat, ...)
+ __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_FORM_NOCONTEXT \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_load_module_nocontext(U32 flags, SV *name, SV *ver, ...);
+# define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT \
+ assert(name)
+
+PERL_CALLCONV SV *
+Perl_mess_nocontext(const char *pat, ...)
+ __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_MESS_NOCONTEXT \
+ assert(pat)
+
+PERL_CALLCONV void *
+Perl_my_cxt_init(pTHX_ int *indexp, size_t size);
+# define PERL_ARGS_ASSERT_MY_CXT_INIT \
+ assert(indexp)
+
+PERL_CALLCONV SV *
+Perl_newSVpvf_nocontext(const char * const pat, ...)
+ __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvf_mg_nocontext(SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvf_nocontext(SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvf_mg_nocontext(SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvf_nocontext(SV * const sv, const char * const pat, ...)
+ __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_warn_nocontext(const char *pat, ...)
+ __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_WARN_NOCONTEXT \
+ assert(pat)
+
+PERL_CALLCONV void
+Perl_warner_nocontext(U32 err, const char *pat, ...)
+ __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_WARNER_NOCONTEXT \
+ assert(pat)
+
+#endif /* defined(MULTIPLICITY) */
#if defined(MYMALLOC)
-PERL_CALLCONV void Perl_dump_mstats(pTHX_ const char* s);
-#define PERL_ARGS_ASSERT_DUMP_MSTATS \
- assert(s)
-PERL_CALLCONV int Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level);
-#define PERL_ARGS_ASSERT_GET_MSTATS \
- assert(buf)
-PERL_CALLCONV MEM_SIZE Perl_malloc_good_size(size_t nbytes)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MALLOC_GOOD_SIZE
-
-PERL_CALLCONV MEM_SIZE Perl_malloced_size(void *p)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MALLOCED_SIZE \
- assert(p)
-
-#endif
+PERL_CALLCONV void
+Perl_dump_mstats(pTHX_ const char *s);
+# define PERL_ARGS_ASSERT_DUMP_MSTATS \
+ assert(s)
+
+PERL_CALLCONV int
+Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level);
+# define PERL_ARGS_ASSERT_GET_MSTATS \
+ assert(buf)
+
+PERL_CALLCONV MEM_SIZE
+Perl_malloc_good_size(size_t nbytes)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MALLOC_GOOD_SIZE
+
+PERL_CALLCONV MEM_SIZE
+Perl_malloced_size(void *p)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MALLOCED_SIZE \
+ assert(p)
+
+#endif /* defined(MYMALLOC) */
+#if !defined(NO_MATHOMS)
+PERL_CALLCONV bool
+Perl_do_aexec(pTHX_ SV *really, SV **mark, SV **sp);
+# define PERL_ARGS_ASSERT_DO_AEXEC \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV bool
+Perl_do_open(pTHX_ GV *gv, const char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp);
+# define PERL_ARGS_ASSERT_DO_OPEN \
+ assert(gv); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_AVadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_AVADD
+
+PERL_CALLCONV GV *
+Perl_gv_HVadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_HVADD
+
+PERL_CALLCONV GV *
+Perl_gv_IOadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_IOADD
+
+PERL_CALLCONV void
+Perl_gv_efullname3(pTHX_ SV *sv, const GV *gv, const char *prefix);
+# define PERL_ARGS_ASSERT_GV_EFULLNAME3 \
+ assert(sv); assert(gv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name);
+# define PERL_ARGS_ASSERT_GV_FETCHMETHOD \
+ assert(stash); assert(name)
+
+PERL_CALLCONV void
+Perl_gv_fullname3(pTHX_ SV *sv, const GV *gv, const char *prefix);
+# define PERL_ARGS_ASSERT_GV_FULLNAME3 \
+ assert(sv); assert(gv)
+
+PERL_CALLCONV SV *
+Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags);
+# define PERL_ARGS_ASSERT_HV_DELETE \
+ assert(key)
+
+PERL_CALLCONV SV *
+Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash);
+# define PERL_ARGS_ASSERT_HV_DELETE_ENT \
+ assert(keysv)
+
+PERL_CALLCONV bool
+Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HV_EXISTS \
+ assert(key)
+
+PERL_CALLCONV bool
+Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HV_EXISTS_ENT \
+ assert(keysv)
+
+PERL_CALLCONV SV **
+Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval);
+# define PERL_ARGS_ASSERT_HV_FETCH \
+ assert(key)
+
+PERL_CALLCONV HE *
+Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash);
+# define PERL_ARGS_ASSERT_HV_FETCH_ENT \
+ assert(keysv)
+
+PERL_CALLCONV HE *
+Perl_hv_iternext(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HV_ITERNEXT \
+ assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how);
+# define PERL_ARGS_ASSERT_HV_MAGIC \
+ assert(hv)
+
+PERL_CALLCONV SV **
+Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash);
+# define PERL_ARGS_ASSERT_HV_STORE
+
+PERL_CALLCONV HE *
+Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash);
+# define PERL_ARGS_ASSERT_HV_STORE_ENT
+
+PERL_CALLCONV SV **
+Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags);
+# define PERL_ARGS_ASSERT_HV_STORE_FLAGS
+
+PERL_CALLCONV char *
+Perl_instr(const char *big, const char *little)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+# define PERL_ARGS_ASSERT_INSTR \
+ assert(big); assert(little)
+
+PERL_CALLCONV STRLEN
+Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end);
+# define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF \
+ assert(buf); assert(buf_end)
+
+PERL_CALLCONV bool
+Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep);
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \
+ assert(s); assert(ep)
+
+PERL_CALLCONV AV *
+Perl_newAV(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWAV
+
+PERL_CALLCONV HV *
+Perl_newHV(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWHV
+
+PERL_CALLCONV IO *
+Perl_newIO(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWIO
+
+PERL_CALLCONV CV *
+Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block);
+# define PERL_ARGS_ASSERT_NEWSUB
+
+PERL_CALLCONV SV *
+Perl_newSVsv(pTHX_ SV * const old)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWSVSV
+
+PERL_CALLCONV void
+Perl_save_freeop(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SAVE_FREEOP
+
+PERL_CALLCONV void
+Perl_save_freepv(pTHX_ char *pv);
+# define PERL_ARGS_ASSERT_SAVE_FREEPV
+
+PERL_CALLCONV void
+Perl_save_freesv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SAVE_FREESV
+
+PERL_CALLCONV void
+Perl_save_mortalizesv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SAVE_MORTALIZESV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_save_op(pTHX);
+# define PERL_ARGS_ASSERT_SAVE_OP
+
+PERL_CALLCONV bool
+Perl_sv_2bool(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_2BOOL \
+ assert(sv)
+
+PERL_CALLCONV IV
+Perl_sv_2iv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_2IV \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp);
+# define PERL_ARGS_ASSERT_SV_2PV \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pv_nolen(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_2PV_NOLEN \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvbyte(pTHX_ SV *sv, STRLEN * const lp);
+# define PERL_ARGS_ASSERT_SV_2PVBYTE \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvbyte_nolen(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvutf8(pTHX_ SV *sv, STRLEN * const lp);
+# define PERL_ARGS_ASSERT_SV_2PVUTF8 \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvutf8_nolen(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN \
+ assert(sv)
+
+PERL_CALLCONV UV
+Perl_sv_2uv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_2UV \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_CATPVN \
+ assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_CATPVN_MG \
+ assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catsv(pTHX_ SV *dsv, SV *sstr);
+# define PERL_ARGS_ASSERT_SV_CATSV \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr);
+# define PERL_ARGS_ASSERT_SV_CATSV_MG \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_copypv(pTHX_ SV * const dsv, SV * const ssv);
+# define PERL_ARGS_ASSERT_SV_COPYPV \
+ assert(dsv); assert(ssv)
+
+PERL_CALLCONV I32
+Perl_sv_eq(pTHX_ SV *sv1, SV *sv2);
+# define PERL_ARGS_ASSERT_SV_EQ
+
+PERL_CALLCONV void
+Perl_sv_force_normal(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_FORCE_NORMAL \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_insert(pTHX_ SV * const bigstr, const STRLEN offset, const STRLEN len, const char * const little, const STRLEN littlelen);
+# define PERL_ARGS_ASSERT_SV_INSERT \
+ assert(bigstr); assert(little)
+
+PERL_CALLCONV SV *
+Perl_sv_mortalcopy(pTHX_ SV * const oldsv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_MORTALCOPY
+
+PERL_CALLCONV void
+Perl_sv_nolocking(pTHX_ SV *sv)
+ __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_SV_NOLOCKING
+
+PERL_CALLCONV void
+Perl_sv_nounlocking(pTHX_ SV *sv)
+ __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_SV_NOUNLOCKING
+
+PERL_CALLCONV char *
+Perl_sv_pv(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_PV \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvbyte(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_PVBYTE \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp);
+# define PERL_ARGS_ASSERT_SV_PVN_FORCE \
+ assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvutf8(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_PVUTF8 \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setsv(pTHX_ SV *dsv, SV *ssv);
+# define PERL_ARGS_ASSERT_SV_SETSV \
+ assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_taint(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_TAINT \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_unref(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_UNREF \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_usepvn(pTHX_ SV *sv, char *ptr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_USEPVN \
+ assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_USEPVN_MG \
+ assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_utf8_downgrade(pTHX_ SV * const sv, const bool fail_ok);
+# define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE \
+ assert(sv)
+
+PERL_CALLCONV STRLEN
+Perl_sv_utf8_upgrade(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE \
+ assert(sv)
+
+PERL_CALLCONV UV
+Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
+ __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_UTF8_TO_UVCHR \
+ assert(s)
+
+PERL_CALLCONV UV
+Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
+ __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_UTF8_TO_UVUNI \
+ assert(s)
+
+PERL_CALLCONV UV
+Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
+ __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI \
+ assert(s)
+
+# if defined(PERL_DONT_CREATE_GVSV)
+PERL_CALLCONV GV *
+Perl_gv_SVadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_SVADD
+
+# endif
+# if defined(PERL_IN_MATHOMS_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PERLY_C) || defined(PERL_IN_TOKE_C)
+PERL_CALLCONV OP *
+Perl_ref(pTHX_ OP *o, I32 type);
+# define PERL_ARGS_ASSERT_REF
+
+# endif
+# if defined(USE_LOCALE_COLLATE)
+PERL_CALLCONV char *
+Perl_sv_collxfrm(pTHX_ SV * const sv, STRLEN * const nxp);
+# define PERL_ARGS_ASSERT_SV_COLLXFRM \
+ assert(sv); assert(nxp)
+
+# endif
+#endif /* !defined(NO_MATHOMS) */
#if defined(PERL_ANY_COW)
-PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dsv, SV* ssv);
-#define PERL_ARGS_ASSERT_SV_SETSV_COW \
- assert(ssv)
-#endif
-#if defined(PERL_CORE)
-PERL_CALLCONV void Perl_opslab_force_free(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE \
- assert(slab)
-PERL_CALLCONV void Perl_opslab_free(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_OPSLAB_FREE \
- assert(slab)
-PERL_CALLCONV void Perl_opslab_free_nopad(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD \
- assert(slab)
-PERL_CALLCONV void Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB *slab);
-#define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS \
- assert(parser); assert(slab)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_should_warn_nl(const char *pv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SHOULD_WARN_NL \
- assert(pv)
-#endif
-
-# if defined(PERL_DEBUG_READONLY_OPS)
-PERL_CALLCONV void Perl_Slab_to_ro(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_SLAB_TO_RO \
- assert(slab)
-PERL_CALLCONV void Perl_Slab_to_rw(pTHX_ OPSLAB *const slab);
-#define PERL_ARGS_ASSERT_SLAB_TO_RW \
- assert(slab)
-# endif
-#endif
-#if defined(PERL_CORE) || defined (PERL_EXT)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool Perl_is_utf8_non_invariant_string(const U8* const s, STRLEN len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_NON_INVARIANT_STRING \
- assert(s)
-#endif
+PERL_CALLCONV SV *
+Perl_sv_setsv_cow(pTHX_ SV *dsv, SV *ssv);
+# define PERL_ARGS_ASSERT_SV_SETSV_COW \
+ assert(ssv)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE STRLEN S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B \
- assert(sv); assert(pv)
-#endif
#endif
+#if defined(PERL_CORE)
+PERL_CALLCONV void
+Perl_opslab_force_free(pTHX_ OPSLAB *slab)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE \
+ assert(slab)
+
+PERL_CALLCONV void
+Perl_opslab_free(pTHX_ OPSLAB *slab)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OPSLAB_FREE \
+ assert(slab)
+
+PERL_CALLCONV void
+Perl_opslab_free_nopad(pTHX_ OPSLAB *slab)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD \
+ assert(slab)
+
+PERL_CALLCONV void
+Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB *slab)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS \
+ assert(parser); assert(slab)
+
+# if defined(PERL_DEBUG_READONLY_OPS)
+PERL_CALLCONV void
+Perl_Slab_to_ro(pTHX_ OPSLAB *slab);
+# define PERL_ARGS_ASSERT_SLAB_TO_RO \
+ assert(slab)
+
+PERL_CALLCONV void
+Perl_Slab_to_rw(pTHX_ OPSLAB * const slab);
+# define PERL_ARGS_ASSERT_SLAB_TO_RW \
+ assert(slab)
+
+# endif /* defined(PERL_DEBUG_READONLY_OPS) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE bool
+S_should_warn_nl(const char *pv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SHOULD_WARN_NL \
+ assert(pv)
+
+# endif
+#endif /* defined(PERL_CORE) */
#if defined(PERL_CORE) || defined(PERL_EXT)
-PERL_CALLCONV bool Perl_isSCRIPT_RUN(pTHX_ const U8 *s, const U8 *send, const bool utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISSCRIPT_RUN \
- assert(s); assert(send)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t S_variant_under_utf8_count(const U8* const s, const U8* const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VARIANT_UNDER_UTF8_COUNT \
- assert(s); assert(e)
-#endif
-
-#endif
-#if defined(PERL_CR_FILTER)
-# if defined(PERL_IN_TOKE_C)
-STATIC I32 S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
-#define PERL_ARGS_ASSERT_CR_TEXTFILTER
-STATIC void S_strip_return(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_STRIP_RETURN \
- assert(sv)
-# endif
-#endif
+PERL_CALLCONV bool
+Perl_isSCRIPT_RUN(pTHX_ const U8 *s, const U8 *send, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISSCRIPT_RUN \
+ assert(s); assert(send)
+
+#endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+#if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
+PERL_CALLCONV void
+Perl_finalize_optree(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_FINALIZE_OPTREE \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_optimize_optree(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OPTIMIZE_OPTREE \
+ assert(o)
+
+#endif /* defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API) */
#if defined(PERL_DEBUG_READONLY_COW)
-PERL_CALLCONV void Perl_sv_buf_to_ro(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_BUF_TO_RO \
- assert(sv)
-# if defined(PERL_IN_SV_C)
-STATIC void S_sv_buf_to_rw(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_BUF_TO_RW \
- assert(sv)
-# endif
-#endif
-#if defined(PERL_DEBUG_READONLY_OPS)
-PERL_CALLCONV PADOFFSET Perl_op_refcnt_dec(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_REFCNT_DEC \
- assert(o)
-PERL_CALLCONV OP * Perl_op_refcnt_inc(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_REFCNT_INC
-#endif
-#if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
-PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd);
-#define PERL_ARGS_ASSERT_DO_EXEC \
- assert(cmd)
-#endif
-#if defined(PERL_DONT_CREATE_GVSV)
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV* Perl_gv_SVadd(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_SVADD
-#endif
-#endif
-#if defined(PERL_IMPLICIT_CONTEXT)
-PERL_CALLCONV_NO_RET void Perl_croak_nocontext(const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_CROAK_NOCONTEXT
-
-PERL_CALLCONV void Perl_deb_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_DEB_NOCONTEXT \
- assert(pat)
-
-PERL_CALLCONV_NO_RET OP* Perl_die_nocontext(const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_DIE_NOCONTEXT
-
-PERL_CALLCONV char* Perl_form_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_FORM_NOCONTEXT \
- assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV int Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
- __attribute__deprecated__
- __attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT \
- assert(stream); assert(format)
-#endif
+PERL_CALLCONV void
+Perl_sv_buf_to_ro(pTHX_ SV *sv)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SV_BUF_TO_RO \
+ assert(sv)
-PERL_CALLCONV void Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...);
-#define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT \
- assert(name)
-PERL_CALLCONV SV* Perl_mess_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_MESS_NOCONTEXT \
- assert(pat)
-
-PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *indexp, size_t size);
-#define PERL_ARGS_ASSERT_MY_CXT_INIT \
- assert(indexp)
-PERL_CALLCONV SV* Perl_newSVpvf_nocontext(const char *const pat, ...)
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT \
- assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV int Perl_printf_nocontext(const char *format, ...)
- __attribute__deprecated__
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_PRINTF_NOCONTEXT \
- assert(format)
#endif
+#if defined(PERL_DEBUG_READONLY_OPS)
+PERL_CALLCONV PADOFFSET
+Perl_op_refcnt_dec(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OP_REFCNT_DEC \
+ assert(o)
-PERL_CALLCONV void Perl_sv_catpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT \
- assert(sv); assert(pat)
-
-PERL_CALLCONV void Perl_sv_catpvf_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT \
- assert(sv); assert(pat)
-
-PERL_CALLCONV void Perl_sv_setpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT \
- assert(sv); assert(pat)
-
-PERL_CALLCONV void Perl_sv_setpvf_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT \
- assert(sv); assert(pat)
+PERL_CALLCONV OP *
+Perl_op_refcnt_inc(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OP_REFCNT_INC
-PERL_CALLCONV void Perl_warn_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_WARN_NOCONTEXT \
- assert(pat)
+#endif /* defined(PERL_DEBUG_READONLY_OPS) */
+#if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
+PERL_CALLCONV bool
+Perl_do_exec(pTHX_ const char *cmd)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_EXEC \
+ assert(cmd)
-PERL_CALLCONV void Perl_warner_nocontext(U32 err, const char* pat, ...)
- __attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_WARNER_NOCONTEXT \
- assert(pat)
+#else
+PERL_CALLCONV bool
+Perl_do_exec(pTHX_ const char *cmd)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_EXEC \
+ assert(cmd)
#endif
#if defined(PERL_IMPLICIT_SYS)
-PERL_CALLCONV PerlInterpreter* perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP);
-#define PERL_ARGS_ASSERT_PERL_ALLOC_USING \
- assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-# if defined(USE_ITHREADS)
-PERL_CALLCONV PerlInterpreter* perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem* ipM, struct IPerlMem* ipMS, struct IPerlMem* ipMP, struct IPerlEnv* ipE, struct IPerlStdIO* ipStd, struct IPerlLIO* ipLIO, struct IPerlDir* ipD, struct IPerlSock* ipS, struct IPerlProc* ipP);
-#define PERL_ARGS_ASSERT_PERL_CLONE_USING \
- assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-# endif
-#endif
+PERL_CALLCONV PerlInterpreter *
+perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP);
+# define PERL_ARGS_ASSERT_PERL_ALLOC_USING \
+ assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); \
+ assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
+
+# if defined(USE_ITHREADS)
+PERL_CALLCONV PerlInterpreter *
+perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP);
+# define PERL_ARGS_ASSERT_PERL_CLONE_USING \
+ assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); \
+ assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
+
+# endif
+#else /* if !defined(PERL_IMPLICIT_SYS) */
+PERL_CALLCONV I32
+Perl_my_pclose(pTHX_ PerlIO *ptr);
+# define PERL_ARGS_ASSERT_MY_PCLOSE
+
+PERL_CALLCONV PerlIO *
+Perl_my_popen(pTHX_ const char *cmd, const char *mode);
+# define PERL_ARGS_ASSERT_MY_POPEN \
+ assert(cmd); assert(mode)
+
+#endif /* !defined(PERL_IMPLICIT_SYS) */
#if defined(PERL_IN_AV_C)
-STATIC MAGIC* S_get_aux_mg(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_GET_AUX_MG \
- assert(av)
-#endif
+STATIC MAGIC *
+S_get_aux_mg(pTHX_ AV *av);
+# define PERL_ARGS_ASSERT_GET_AUX_MG \
+ assert(av)
+
+#endif
+#if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PAD_C) || defined(PERL_IN_PERLY_C) || \
+ defined(PERL_IN_TOKE_C)
+PERL_CALLCONV void
+Perl_class_add_ADJUST(pTHX_ HV *stash, CV *cv);
+# define PERL_ARGS_ASSERT_CLASS_ADD_ADJUST \
+ assert(stash); assert(cv)
+
+PERL_CALLCONV void
+Perl_class_add_field(pTHX_ HV *stash, PADNAME *pn);
+# define PERL_ARGS_ASSERT_CLASS_ADD_FIELD \
+ assert(stash); assert(pn)
+
+PERL_CALLCONV void
+Perl_class_apply_attributes(pTHX_ HV *stash, OP *attrlist);
+# define PERL_ARGS_ASSERT_CLASS_APPLY_ATTRIBUTES \
+ assert(stash)
+
+PERL_CALLCONV void
+Perl_class_apply_field_attributes(pTHX_ PADNAME *pn, OP *attrlist);
+# define PERL_ARGS_ASSERT_CLASS_APPLY_FIELD_ATTRIBUTES \
+ assert(pn)
+
+PERL_CALLCONV void
+Perl_class_prepare_initfield_parse(pTHX);
+# define PERL_ARGS_ASSERT_CLASS_PREPARE_INITFIELD_PARSE
+
+PERL_CALLCONV void
+Perl_class_prepare_method_parse(pTHX_ CV *cv);
+# define PERL_ARGS_ASSERT_CLASS_PREPARE_METHOD_PARSE \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_class_seal_stash(pTHX_ HV *stash);
+# define PERL_ARGS_ASSERT_CLASS_SEAL_STASH \
+ assert(stash)
+
+PERL_CALLCONV void
+Perl_class_set_field_defop(pTHX_ PADNAME *pn, OPCODE defmode, OP *defop);
+# define PERL_ARGS_ASSERT_CLASS_SET_FIELD_DEFOP \
+ assert(pn); assert(defop)
+
+PERL_CALLCONV void
+Perl_class_setup_stash(pTHX_ HV *stash);
+# define PERL_ARGS_ASSERT_CLASS_SETUP_STASH \
+ assert(stash)
+
+PERL_CALLCONV OP *
+Perl_class_wrap_method_body(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_CLASS_WRAP_METHOD_BODY
+
+PERL_CALLCONV void
+Perl_croak_kw_unless_class(pTHX_ const char *kw);
+# define PERL_ARGS_ASSERT_CROAK_KW_UNLESS_CLASS \
+ assert(kw)
+
+#endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_PAD_C) || defined(PERL_IN_PERLY_C) ||
+ defined(PERL_IN_TOKE_C) */
#if defined(PERL_IN_DEB_C)
-STATIC void S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max);
-#define PERL_ARGS_ASSERT_DEB_STACK_N \
- assert(stack_base)
+STATIC void
+S_deb_stack_n(pTHX_ SV **stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max);
+# define PERL_ARGS_ASSERT_DEB_STACK_N \
+ assert(stack_base)
+
#endif
#if defined(PERL_IN_DOIO_C)
-STATIC bool S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit);
-#define PERL_ARGS_ASSERT_ARGVOUT_FINAL \
- assert(mg); assert(io)
-STATIC void S_exec_failed(pTHX_ const char *cmd, int fd, int do_report);
-#define PERL_ARGS_ASSERT_EXEC_FAILED \
- assert(cmd)
-STATIC bool S_ingroup(pTHX_ Gid_t testgid, bool effective)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INGROUP
-
-STATIC bool S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname, PerlIO *saveifp, PerlIO *saveofp, int savefd, char savetype, int writing, bool was_fdopen, const char *type, Stat_t *statbufp);
-#define PERL_ARGS_ASSERT_OPENN_CLEANUP \
- assert(gv); assert(io); assert(mode); assert(oname)
-STATIC IO * S_openn_setup(pTHX_ GV *gv, char *mode, PerlIO **saveifp, PerlIO **saveofp, int *savefd, char *savetype);
-#define PERL_ARGS_ASSERT_OPENN_SETUP \
- assert(gv); assert(mode); assert(saveifp); assert(saveofp); assert(savefd); assert(savetype)
-#endif
+STATIC bool
+S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool is_explicit);
+# define PERL_ARGS_ASSERT_ARGVOUT_FINAL \
+ assert(mg); assert(io)
+
+STATIC void
+S_exec_failed(pTHX_ const char *cmd, int fd, int do_report);
+# define PERL_ARGS_ASSERT_EXEC_FAILED \
+ assert(cmd)
+
+STATIC bool
+S_ingroup(pTHX_ Gid_t testgid, bool effective)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INGROUP
+
+STATIC bool
+S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname, PerlIO *saveifp, PerlIO *saveofp, int savefd, char savetype, int writing, bool was_fdopen, const char *type, Stat_t *statbufp);
+# define PERL_ARGS_ASSERT_OPENN_CLEANUP \
+ assert(gv); assert(io); assert(mode); assert(oname)
+
+STATIC IO *
+S_openn_setup(pTHX_ GV *gv, char *mode, PerlIO **saveifp, PerlIO **saveofp, int *savefd, char *savetype);
+# define PERL_ARGS_ASSERT_OPENN_SETUP \
+ assert(gv); assert(mode); assert(saveifp); assert(saveofp); assert(savefd); \
+ assert(savetype)
+
+#endif /* defined(PERL_IN_DOIO_C) */
#if defined(PERL_IN_DOOP_C)
-STATIC Size_t S_do_trans_complex(pTHX_ SV * const sv, const OPtrans_map * const tbl)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX \
- assert(sv); assert(tbl)
-
-STATIC Size_t S_do_trans_count(pTHX_ SV * const sv, const OPtrans_map * const tbl)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_COUNT \
- assert(sv); assert(tbl)
-
-STATIC Size_t S_do_trans_count_invmap(pTHX_ SV * const sv, AV * const map)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP \
- assert(sv); assert(map)
-
-STATIC Size_t S_do_trans_invmap(pTHX_ SV * const sv, AV * const map)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_INVMAP \
- assert(sv); assert(map)
-
-STATIC Size_t S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \
- assert(sv); assert(tbl)
+STATIC Size_t
+S_do_trans_complex(pTHX_ SV * const sv, const OPtrans_map * const tbl)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX \
+ assert(sv); assert(tbl)
+
+STATIC Size_t
+S_do_trans_count(pTHX_ SV * const sv, const OPtrans_map * const tbl)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_COUNT \
+ assert(sv); assert(tbl)
+
+STATIC Size_t
+S_do_trans_count_invmap(pTHX_ SV * const sv, AV * const map)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP \
+ assert(sv); assert(map)
+
+STATIC Size_t
+S_do_trans_invmap(pTHX_ SV * const sv, AV * const map)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_INVMAP \
+ assert(sv); assert(map)
+
+STATIC Size_t
+S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \
+ assert(sv); assert(tbl)
+
+#endif /* defined(PERL_IN_DOOP_C) */
+#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || \
+ defined(PERL_IN_UTF8_C)
+
+PERL_CALLCONV SSize_t
+Perl__invlist_search(SV * const invlist, const UV cp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__INVLIST_SEARCH \
+ assert(invlist)
+
+#endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) ||
+ defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) ||
+ defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY)
+
+#endif
+#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV SV *
+Perl__add_range_to_invlist(pTHX_ SV *invlist, UV start, UV end)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__ADD_RANGE_TO_INVLIST
+
+/* PERL_CALLCONV void
+_invlist_intersection(pTHX_ SV * const a, SV * const b, SV **i); */
+
+PERL_CALLCONV void
+Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **i);
+# define PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND \
+ assert(b); assert(i)
+
+PERL_CALLCONV void
+Perl__invlist_invert(pTHX_ SV * const invlist);
+# define PERL_ARGS_ASSERT__INVLIST_INVERT \
+ assert(invlist)
+
+/* PERL_CALLCONV void
+_invlist_subtract(pTHX_ SV * const a, SV * const b, SV **result); */
+
+/* PERL_CALLCONV void
+_invlist_union(pTHX_ SV * const a, SV * const b, SV **output); */
+
+PERL_CALLCONV void
+Perl__invlist_union_maybe_complement_2nd(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **output);
+# define PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND \
+ assert(b); assert(output)
+
+PERL_CALLCONV SV *
+Perl__new_invlist(pTHX_ IV initial_size)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__NEW_INVLIST
+
+PERL_CALLCONV SV *
+Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV **other_elements_ptr)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST \
+ assert(other_elements_ptr)
+
+#endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+ defined(PERL_IN_TOKE_C)
+PERL_CALLCONV const char *
+Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FORM_ALIEN_DIGIT_MSG \
+ assert(first_bad); assert(send)
+
+PERL_CALLCONV bool
+Perl_grok_bslash_c(pTHX_ const char source, U8 *result, const char **message, U32 *packed_warn)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GROK_BSLASH_C \
+ assert(result); assert(message)
+
+PERL_CALLCONV bool
+Perl_grok_bslash_o(pTHX_ char **s, const char * const send, UV *uv, const char **message, U32 *packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GROK_BSLASH_O \
+ assert(s); assert(send); assert(uv); assert(message)
+
+PERL_CALLCONV bool
+Perl_grok_bslash_x(pTHX_ char **s, const char * const send, UV *uv, const char **message, U32 *packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GROK_BSLASH_X \
+ assert(s); assert(send); assert(uv); assert(message)
+
+#endif /* defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) ||
+ defined(PERL_IN_TOKE_C) */
+#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+ defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV const char *
+Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char *string, const Size_t len, const UV cp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FORM_CP_TOO_LARGE_MSG
#endif
#if defined(PERL_IN_DUMP_C)
-STATIC CV* S_deb_curcv(pTHX_ I32 ix);
-#define PERL_ARGS_ASSERT_DEB_CURCV
-STATIC void S_debprof(pTHX_ const OP *o);
-#define PERL_ARGS_ASSERT_DEBPROF \
- assert(o)
-STATIC SV* S_pm_description(pTHX_ const PMOP *pm);
-#define PERL_ARGS_ASSERT_PM_DESCRIPTION \
- assert(pm)
-STATIC UV S_sequence_num(pTHX_ const OP *o);
-#define PERL_ARGS_ASSERT_SEQUENCE_NUM
-#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);
-#define PERL_ARGS_ASSERT_HV_KILL_BACKREFS \
- assert(hv)
-#endif
+STATIC CV *
+S_deb_curcv(pTHX_ I32 ix);
+# define PERL_ARGS_ASSERT_DEB_CURCV
+
+STATIC void
+S_debprof(pTHX_ const OP *o);
+# define PERL_ARGS_ASSERT_DEBPROF \
+ assert(o)
+
+STATIC SV *
+S_pm_description(pTHX_ const PMOP *pm);
+# define PERL_ARGS_ASSERT_PM_DESCRIPTION \
+ assert(pm)
+
+STATIC UV
+S_sequence_num(pTHX_ const OP *o);
+# define PERL_ARGS_ASSERT_SEQUENCE_NUM
+
+#endif /* defined(PERL_IN_DUMP_C) */
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || \
+ defined(PERL_IN_SCOPE_C) || defined(PERL_IN_SV_C)
+PERL_CALLCONV void
+Perl_hv_kill_backrefs(pTHX_ HV *hv)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_HV_KILL_BACKREFS \
+ assert(hv)
+
+#endif
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY)
+PERL_CALLCONV void
+Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char * const indent, SV * const invlist);
+# define PERL_ARGS_ASSERT__INVLIST_DUMP \
+ assert(file); assert(indent); assert(invlist)
+
+#endif
+#if defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PEEP_C)
+PERL_CALLCONV OP *
+Perl_ck_anoncode(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_ANONCODE \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_backtick(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_BACKTICK \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_bitop(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_BITOP \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_cmp(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_CMP \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_concat(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_CONCAT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_defined(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_DEFINED \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_delete(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_DELETE \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_each(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EACH \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_eof(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EOF \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_eval(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EVAL \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_exec(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EXEC \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_exists(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EXISTS \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_ftst(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_FTST \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_fun(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_FUN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_glob(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_GLOB \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_grep(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_GREP \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_helemexistsor(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_HELEMEXISTSOR \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_index(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_INDEX \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_isa(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_ISA \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_join(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_JOIN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_length(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_LENGTH \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_lfun(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_LFUN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_listiob(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_LISTIOB \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_match(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_MATCH \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_method(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_METHOD \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_null(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_NULL \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_open(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_OPEN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_prototype(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_PROTOTYPE \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_readline(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_READLINE \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_refassign(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_REFASSIGN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_repeat(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_REPEAT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_require(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_REQUIRE \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_return(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_RETURN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_rfun(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_RFUN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_rvconst(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_RVCONST \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_sassign(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SASSIGN \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_select(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SELECT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_shift(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SHIFT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_smartmatch(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SMARTMATCH \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_sort(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SORT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_spair(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SPAIR \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_split(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SPLIT \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_stringify(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_STRINGIFY \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_subr(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SUBR \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_substr(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SUBSTR \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_svconst(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SVCONST \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_tell(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_TELL \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_trunc(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_TRUNC \
+ assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_trycatch(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_TRYCATCH \
+ assert(o)
+
+#endif /* defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_PEEP_C) */
#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, const svtype sv_type);
-#define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH \
- assert(stash); assert(name)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE GV* S_gv_fetchmeth_internal(pTHX_ HV* stash, SV* meth, const char* name, STRLEN len, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_INTERNAL
-#endif
-STATIC void S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_INIT_SVTYPE \
- assert(gv)
-STATIC bool S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf8);
-#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, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_MAGICALIZE \
- assert(gv); assert(stash); assert(name)
-STATIC void S_gv_magicalize_isa(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA \
- assert(gv)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE HV* S_gv_stashpvn_internal(pTHX_ const char* name, U32 namelen, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \
- assert(name)
-#endif
-STATIC void S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type);
-#define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV \
- assert(gv); assert(name)
-STATIC bool S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, STRLEN *len, const char *nambeg, STRLEN full_len, const U32 is_utf8, const I32 add);
-#define PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME \
- assert(stash); assert(gv); assert(name); assert(len); assert(nambeg)
-STATIC void S_require_tie_mod(pTHX_ GV *gv, const char varname, const char * name, STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_REQUIRE_TIE_MOD \
- assert(gv); assert(varname); assert(name)
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-PERL_CALLCONV void Perl_sv_add_backref(pTHX_ SV *const tsv, SV *const sv);
-#define PERL_ARGS_ASSERT_SV_ADD_BACKREF \
- assert(tsv); assert(sv)
+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);
+# define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH \
+ assert(stash); assert(name)
+
+STATIC void
+S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type);
+# define PERL_ARGS_ASSERT_GV_INIT_SVTYPE \
+ assert(gv)
+
+STATIC bool
+S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf8);
+# 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, const svtype sv_type);
+# define PERL_ARGS_ASSERT_GV_MAGICALIZE \
+ assert(gv); assert(stash); assert(name)
+
+STATIC void
+S_gv_magicalize_isa(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA \
+ assert(gv)
+
+STATIC void
+S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type);
+# define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV \
+ assert(gv); assert(name)
+
+STATIC bool
+S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, STRLEN *len, const char *nambeg, STRLEN full_len, const U32 is_utf8, const I32 add);
+# define PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME \
+ assert(stash); assert(gv); assert(name); assert(len); assert(nambeg)
+
+STATIC void
+S_require_tie_mod(pTHX_ GV *gv, const char varname, const char *name, STRLEN len, const U32 flags);
+# define PERL_ARGS_ASSERT_REQUIRE_TIE_MOD \
+ assert(gv); assert(varname); assert(name)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE GV *
+S_gv_fetchmeth_internal(pTHX_ HV *stash, SV *meth, const char *name, STRLEN len, I32 level, U32 flags);
+# define PERL_ARGS_ASSERT_GV_FETCHMETH_INTERNAL
+
+PERL_STATIC_INLINE HV *
+S_gv_stashpvn_internal(pTHX_ const char *name, U32 namelen, I32 flags);
+# define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \
+ assert(name)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_GV_C) */
+#if defined(PERL_IN_GV_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PAD_C) || defined(PERL_IN_SV_C)
+PERL_CALLCONV void
+Perl_sv_add_backref(pTHX_ SV * const tsv, SV * const sv)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SV_ADD_BACKREF \
+ assert(tsv); assert(sv)
+
#endif
#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
-PERL_CALLCONV HV* Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char* name, U32 namelen, I32 flags);
+PERL_CALLCONV HV *
+Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, U32 namelen, I32 flags)
+ __attribute__visibility__("hidden");
+
#endif
#if defined(PERL_IN_HV_C)
-STATIC void S_clear_placeholders(pTHX_ HV *hv, U32 items);
-#define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS \
- assert(hv)
-STATIC void S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize);
-#define PERL_ARGS_ASSERT_HSPLIT \
- assert(hv)
-STATIC struct xpvhv_aux* S_hv_auxinit(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_AUXINIT \
- assert(hv)
-STATIC struct xpvhv_aux* S_hv_auxinit_internal(struct xpvhv_aux *iter);
-#define PERL_ARGS_ASSERT_HV_AUXINIT_INTERNAL \
- assert(iter)
-STATIC SV* S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
-#define PERL_ARGS_ASSERT_HV_DELETE_COMMON
-STATIC SV* S_hv_free_ent_ret(pTHX_ HV *hv, HE *entry);
-#define PERL_ARGS_ASSERT_HV_FREE_ENT_RET \
- assert(hv); assert(entry)
-STATIC void S_hv_free_entries(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_FREE_ENTRIES \
- assert(hv)
-STATIC void S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store);
-#define PERL_ARGS_ASSERT_HV_MAGIC_CHECK \
- assert(hv); assert(needs_copy); assert(needs_store)
-PERL_STATIC_NO_RET void S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_HV_NOTALLOWED \
- assert(key); assert(msg)
-
-STATIC HE* S_new_he(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_HE
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U32 S_ptr_hash(PTRV u);
-#define PERL_ARGS_ASSERT_PTR_HASH
-#endif
-STATIC SV * S_refcounted_he_value(pTHX_ const struct refcounted_he *he);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE \
- assert(he)
-STATIC HEK* S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS \
- assert(str)
-
-STATIC HEK* S_share_hek_flags(pTHX_ const char *str, STRLEN len, U32 hash, int flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS \
- assert(str)
-
-STATIC void S_unshare_hek_or_pvn(pTHX_ const HEK* hek, const char* str, I32 len, U32 hash);
-#define PERL_ARGS_ASSERT_UNSHARE_HEK_OR_PVN
-#endif
+STATIC void
+S_clear_placeholders(pTHX_ HV *hv, U32 items);
+# define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS \
+ assert(hv)
+
+STATIC void
+S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize);
+# define PERL_ARGS_ASSERT_HSPLIT \
+ assert(hv)
+
+STATIC struct xpvhv_aux *
+S_hv_auxinit(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_HV_AUXINIT \
+ assert(hv)
+
+STATIC SV *
+S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
+# define PERL_ARGS_ASSERT_HV_DELETE_COMMON
+
+STATIC SV *
+S_hv_free_ent_ret(pTHX_ HE *entry);
+# define PERL_ARGS_ASSERT_HV_FREE_ENT_RET \
+ assert(entry)
+
+STATIC void
+S_hv_free_entries(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_HV_FREE_ENTRIES \
+ assert(hv)
+
+STATIC void
+S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store);
+# define PERL_ARGS_ASSERT_HV_MAGIC_CHECK \
+ assert(hv); assert(needs_copy); assert(needs_store)
+
+PERL_STATIC_NO_RET void
+S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_HV_NOTALLOWED \
+ assert(key); assert(msg)
+
+STATIC SV *
+S_refcounted_he_value(pTHX_ const struct refcounted_he *he);
+# define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE \
+ assert(he)
+
+STATIC HEK *
+S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS \
+ assert(str)
+
+STATIC HEK *
+S_share_hek_flags(pTHX_ const char *str, STRLEN len, U32 hash, int flags)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS \
+ assert(str)
+
+STATIC void
+S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash);
+# define PERL_ARGS_ASSERT_UNSHARE_HEK_OR_PVN
+
+# if !defined(PURIFY)
+STATIC HE *
+S_new_he(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEW_HE
+
+# endif
+#endif /* defined(PERL_IN_HV_C) */
#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV void Perl_sv_kill_backrefs(pTHX_ SV *const sv, AV *const av);
-#define PERL_ARGS_ASSERT_SV_KILL_BACKREFS \
- assert(sv)
+PERL_CALLCONV void
+Perl_sv_kill_backrefs(pTHX_ SV * const sv, AV * const av)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SV_KILL_BACKREFS \
+ assert(sv)
+
#endif
#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV SV* Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp);
-#define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY \
- assert(hv); assert(indexp)
-#endif
-#if defined(PERL_IN_LOCALE_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE const char * S_save_to_buffer(const char * string, char **buf, Size_t *buf_size, const Size_t offset)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVE_TO_BUFFER \
- assert(buf_size)
-#endif
+PERL_CALLCONV SV *
+Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY \
+ assert(hv); assert(indexp)
-# if defined(USE_LOCALE)
-STATIC const char* S_category_name(const int category);
-#define PERL_ARGS_ASSERT_CATEGORY_NAME
-STATIC void S_new_collate(pTHX_ const char* newcoll);
-#define PERL_ARGS_ASSERT_NEW_COLLATE
-STATIC void S_new_ctype(pTHX_ const char* newctype);
-#define PERL_ARGS_ASSERT_NEW_CTYPE \
- assert(newctype)
-STATIC void S_new_numeric(pTHX_ const char* newnum);
-#define PERL_ARGS_ASSERT_NEW_NUMERIC
-STATIC void S_restore_switched_locale(pTHX_ const int category, const char * const original_locale);
-#define PERL_ARGS_ASSERT_RESTORE_SWITCHED_LOCALE
-STATIC void S_set_numeric_radix(pTHX_ const bool use_locale);
-#define PERL_ARGS_ASSERT_SET_NUMERIC_RADIX
-STATIC char* S_stdize_locale(pTHX_ char* locs);
-#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
- assert(locs)
-STATIC const char* S_switch_category_locale_to_template(pTHX_ const int switch_category, const int template_category, const char * template_locale);
-#define PERL_ARGS_ASSERT_SWITCH_CATEGORY_LOCALE_TO_TEMPLATE
-# if defined(USE_POSIX_2008_LOCALE)
-STATIC const char* S_emulate_setlocale(const int category, const char* locale, unsigned int index, const bool is_index_valid);
-#define PERL_ARGS_ASSERT_EMULATE_SETLOCALE
-# endif
-# if defined(WIN32)
-STATIC char* S_win32_setlocale(pTHX_ int category, const char* locale);
-#define PERL_ARGS_ASSERT_WIN32_SETLOCALE
-# endif
-# endif
-#endif
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
-# if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV char* Perl__mem_collxfrm(pTHX_ const char* input_string, STRLEN len, STRLEN* xlen, bool utf8);
-#define PERL_ARGS_ASSERT__MEM_COLLXFRM \
- assert(input_string); assert(xlen)
-# endif
#endif
+#if defined(PERL_IN_LOCALE_C)
+STATIC utf8ness_t
+S_get_locale_string_utf8ness_i(pTHX_ const char *string, const locale_utf8ness_t known_utf8, const char *locale, const unsigned cat_index);
+# define PERL_ARGS_ASSERT_GET_LOCALE_STRING_UTF8NESS_I
+
+STATIC bool
+S_is_locale_utf8(pTHX_ const char *locale);
+# define PERL_ARGS_ASSERT_IS_LOCALE_UTF8 \
+ assert(locale)
+
+# if defined(HAS_LOCALECONV)
+STATIC HV *
+S_my_localeconv(pTHX_ const int item);
+# define PERL_ARGS_ASSERT_MY_LOCALECONV
+
+STATIC void
+S_populate_hash_from_localeconv(pTHX_ HV *hv, const char *locale, const U32 which_mask, const lconv_offset_t *strings[2], const lconv_offset_t *integers);
+# define PERL_ARGS_ASSERT_POPULATE_HASH_FROM_LOCALECONV \
+ assert(hv); assert(locale); assert(strings)
+
+# endif /* defined(HAS_LOCALECONV) */
+# if defined(USE_LOCALE)
+STATIC unsigned int
+S_get_category_index(const int category, const char *locale);
+# define PERL_ARGS_ASSERT_GET_CATEGORY_INDEX
+
+STATIC int
+S_get_category_index_nowarn(const int category);
+# define PERL_ARGS_ASSERT_GET_CATEGORY_INDEX_NOWARN
+
+STATIC void
+S_new_LC_ALL(pTHX_ const char *unused, bool force);
+# define PERL_ARGS_ASSERT_NEW_LC_ALL
+
+STATIC void
+S_restore_toggled_locale_i(pTHX_ const unsigned cat_index, const char *original_locale, const line_t caller_line);
+# define PERL_ARGS_ASSERT_RESTORE_TOGGLED_LOCALE_I
+
+STATIC const char *
+S_save_to_buffer(const char *string, const char **buf, Size_t *buf_size);
+# define PERL_ARGS_ASSERT_SAVE_TO_BUFFER
+
+PERL_STATIC_NO_RET void
+S_setlocale_failure_panic_i(pTHX_ const unsigned int cat_index, const char *current, const char *failed, const line_t caller_0_line, const line_t caller_1_line)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_SETLOCALE_FAILURE_PANIC_I \
+ assert(failed)
+
+STATIC const char *
+S_stdize_locale(pTHX_ const int category, const char *input_locale, const char **buf, Size_t *buf_size, line_t caller_line);
+# define PERL_ARGS_ASSERT_STDIZE_LOCALE
+
+STATIC const char *
+S_toggle_locale_i(pTHX_ const unsigned switch_cat_index, const char *new_locale, const line_t caller_line);
+# define PERL_ARGS_ASSERT_TOGGLE_LOCALE_I \
+ assert(new_locale)
+
+# if defined(DEBUGGING)
+STATIC char *
+S_my_setlocale_debug_string_i(pTHX_ const unsigned cat_index, const char *locale, const char *retval, const line_t line)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MY_SETLOCALE_DEBUG_STRING_I
+
+# endif
+# if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L)
+STATIC const char *
+S_my_langinfo_i(pTHX_ const nl_item item, const unsigned int cat_index, const char *locale, const char **retbufp, Size_t *retbuf_sizep, utf8ness_t *utf8ness);
+# define PERL_ARGS_ASSERT_MY_LANGINFO_I \
+ assert(locale); assert(retbufp)
+
+# else
+STATIC const char *
+S_my_langinfo_i(pTHX_ const int item, const unsigned int cat_index, const char *locale, const char **retbufp, Size_t *retbuf_sizep, utf8ness_t *utf8ness);
+# define PERL_ARGS_ASSERT_MY_LANGINFO_I \
+ assert(locale); assert(retbufp)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE const char *
+S_mortalized_pv_copy(pTHX_ const char * const pv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MORTALIZED_PV_COPY
+
+# endif
+# if defined(USE_LOCALE_COLLATE)
+STATIC void
+S_new_collate(pTHX_ const char *newcoll, bool force);
+# define PERL_ARGS_ASSERT_NEW_COLLATE \
+ assert(newcoll)
+
+# if defined(DEBUGGING)
+STATIC void
+S_print_collxfrm_input_and_return(pTHX_ const char *s, const char *e, const char *xbuf, const STRLEN xlen, const bool is_utf8);
+# define PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN \
+ assert(s); assert(e)
+
+# endif
+# endif /* defined(USE_LOCALE_COLLATE) */
+# if defined(USE_LOCALE_CTYPE)
+STATIC bool
+S_is_codeset_name_UTF8(const char *name);
+# define PERL_ARGS_ASSERT_IS_CODESET_NAME_UTF8 \
+ assert(name)
+
+STATIC void
+S_new_ctype(pTHX_ const char *newctype, bool force);
+# define PERL_ARGS_ASSERT_NEW_CTYPE \
+ assert(newctype)
+
+# endif /* defined(USE_LOCALE_CTYPE) */
+# if defined(USE_LOCALE_NUMERIC)
+STATIC void
+S_new_numeric(pTHX_ const char *newnum, bool force);
+# define PERL_ARGS_ASSERT_NEW_NUMERIC \
+ assert(newnum)
+
+# endif
+# if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
+STATIC const char *
+S_get_LC_ALL_display(pTHX);
+# define PERL_ARGS_ASSERT_GET_LC_ALL_DISPLAY
+
+# endif
+# if defined(USE_POSIX_2008_LOCALE)
+STATIC const char *
+S_emulate_setlocale_i(pTHX_ const unsigned int index, const char *new_locale, const recalc_lc_all_t recalc_LC_ALL, const line_t line);
+# define PERL_ARGS_ASSERT_EMULATE_SETLOCALE_I
+
+STATIC const char *
+S_my_querylocale_i(pTHX_ const unsigned int index);
+# define PERL_ARGS_ASSERT_MY_QUERYLOCALE_I
+
+STATIC const char *
+S_setlocale_from_aggregate_LC_ALL(pTHX_ const char *locale, const line_t line);
+# define PERL_ARGS_ASSERT_SETLOCALE_FROM_AGGREGATE_LC_ALL \
+ assert(locale)
+
+STATIC locale_t
+S_use_curlocale_scratch(pTHX);
+# define PERL_ARGS_ASSERT_USE_CURLOCALE_SCRATCH
+
+# if defined(USE_QUERYLOCALE)
+STATIC const char *
+S_calculate_LC_ALL(pTHX_ const locale_t cur_obj);
+# define PERL_ARGS_ASSERT_CALCULATE_LC_ALL
+
+# else
+STATIC const char *
+S_update_PL_curlocales_i(pTHX_ const unsigned int index, const char *new_locale, recalc_lc_all_t recalc_LC_ALL);
+# define PERL_ARGS_ASSERT_UPDATE_PL_CURLOCALES_I \
+ assert(new_locale)
+
+# endif
+# elif defined(USE_LOCALE_THREADS) && \
+ !defined(USE_THREAD_SAFE_LOCALE) && \
+ !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* &&
+ !defined(USE_POSIX_2008_LOCALE) */
+STATIC const char *
+S_less_dicey_setlocale_r(pTHX_ const int category, const char *locale);
+# define PERL_ARGS_ASSERT_LESS_DICEY_SETLOCALE_R
+
+STATIC void
+S_less_dicey_void_setlocale_i(pTHX_ const unsigned cat_index, const char *locale, const line_t line);
+# define PERL_ARGS_ASSERT_LESS_DICEY_VOID_SETLOCALE_I \
+ assert(locale)
+
+# if 0
+STATIC bool
+S_less_dicey_bool_setlocale_r(pTHX_ const int cat, const char *locale);
+# define PERL_ARGS_ASSERT_LESS_DICEY_BOOL_SETLOCALE_R \
+ assert(locale)
+
+# endif
+# endif /* defined(USE_LOCALE_THREADS) &&
+ !defined(USE_POSIX_2008_LOCALE) &&
+ !defined(USE_THREAD_SAFE_LOCALE) &&
+ !defined(USE_THREAD_SAFE_LOCALE_EMULATION) */
+# if !( defined(USE_POSIX_2008_LOCALE) && defined(USE_QUERYLOCALE) ) && \
+ ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) || \
+ defined(WIN32) )
+STATIC const char *
+S_calculate_LC_ALL(pTHX_ const char **individ_locales);
+# define PERL_ARGS_ASSERT_CALCULATE_LC_ALL \
+ assert(individ_locales)
+
+# endif
+# if defined(WIN32)
+STATIC wchar_t *
+S_Win_byte_string_to_wstring(const UINT code_page, const char *byte_string);
+# define PERL_ARGS_ASSERT_WIN_BYTE_STRING_TO_WSTRING
+
+STATIC char *
+S_Win_wstring_to_byte_string(const UINT code_page, const wchar_t *wstring);
+# define PERL_ARGS_ASSERT_WIN_WSTRING_TO_BYTE_STRING
+
+STATIC const char *
+S_win32_setlocale(pTHX_ int category, const char *locale);
+# define PERL_ARGS_ASSERT_WIN32_SETLOCALE
+
+STATIC const char *
+S_wrap_wsetlocale(pTHX_ const int category, const char *locale);
+# define PERL_ARGS_ASSERT_WRAP_WSETLOCALE
+
+# endif /* defined(WIN32) */
+# if defined(WIN32) || \
+ ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
+STATIC const char *
+S_find_locale_from_environment(pTHX_ const unsigned int index);
+# define PERL_ARGS_ASSERT_FIND_LOCALE_FROM_ENVIRONMENT
+
+# endif
+# endif /* defined(USE_LOCALE) */
+# if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING)
+STATIC const char *
+S_get_displayable_string(pTHX_ const char * const s, const char * const e, const bool is_utf8);
+# define PERL_ARGS_ASSERT_GET_DISPLAYABLE_STRING \
+ assert(s); assert(e)
+
+# endif
+#endif /* defined(PERL_IN_LOCALE_C) */
#if defined(PERL_IN_MALLOC_C)
-STATIC int S_adjust_size_and_find_bucket(size_t *nbytes_p);
-#define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET \
- assert(nbytes_p)
+STATIC int
+S_adjust_size_and_find_bucket(size_t *nbytes_p);
+# define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET \
+ assert(nbytes_p)
+
#endif
#if defined(PERL_IN_MG_C)
-STATIC void S_fixup_errno_string(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING \
- assert(sv)
-STATIC SV* S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, int n, SV *val);
-#define PERL_ARGS_ASSERT_MAGIC_METHCALL1 \
- assert(sv); assert(mg); assert(meth)
-STATIC int S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, SV *meth);
-#define PERL_ARGS_ASSERT_MAGIC_METHPACK \
- assert(sv); assert(mg); assert(meth)
-STATIC void S_restore_magic(pTHX_ const void *p);
-#define PERL_ARGS_ASSERT_RESTORE_MAGIC
-STATIC void S_save_magic_flags(pTHX_ I32 mgs_ix, SV *sv, U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS \
- assert(sv)
-STATIC void S_unwind_handler_stack(pTHX_ const void *p);
-#define PERL_ARGS_ASSERT_UNWIND_HANDLER_STACK
-#endif
+STATIC void
+S_fixup_errno_string(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING \
+ assert(sv)
+
+STATIC SV *
+S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, int n, SV *val);
+# define PERL_ARGS_ASSERT_MAGIC_METHCALL1 \
+ assert(sv); assert(mg); assert(meth)
+
+STATIC int
+S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, SV *meth);
+# define PERL_ARGS_ASSERT_MAGIC_METHPACK \
+ assert(sv); assert(mg); assert(meth)
+
+STATIC void
+S_restore_magic(pTHX_ const void *p);
+# define PERL_ARGS_ASSERT_RESTORE_MAGIC
+
+STATIC void
+S_save_magic_flags(pTHX_ SSize_t mgs_ix, SV *sv, U32 flags);
+# define PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS \
+ assert(sv)
+
+STATIC void
+S_unwind_handler_stack(pTHX_ const void *p);
+# define PERL_ARGS_ASSERT_UNWIND_HANDLER_STACK
+
+#endif /* defined(PERL_IN_MG_C) */
#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-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);
-#define PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS \
- assert(posp); assert(lenp)
+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__visibility__("hidden");
+# define PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS \
+ assert(posp); assert(lenp)
+
#endif
#if defined(PERL_IN_MRO_C)
-STATIC void S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, const STRLEN len, HV * const exceptions, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV \
- assert(isa); assert(name)
-STATIC void S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv);
-#define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME \
- assert(stashes); assert(seen_stashes); assert(namesv)
-STATIC AV* S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS \
- assert(stash)
-#endif
+STATIC void
+S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, const STRLEN len, HV * const exceptions, U32 hash, U32 flags);
+# define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV \
+ assert(isa); assert(name)
+
+STATIC void
+S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv);
+# define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME \
+ assert(stashes); assert(seen_stashes); assert(namesv)
+
+STATIC AV *
+S_mro_get_linear_isa_dfs(pTHX_ HV *stash, U32 level);
+# define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS \
+ assert(stash)
+
+#endif /* defined(PERL_IN_MRO_C) */
#if defined(PERL_IN_NUMERIC_C)
-STATIC void S_output_non_portable(pTHX_ const U8 shift);
-#define PERL_ARGS_ASSERT_OUTPUT_NON_PORTABLE
+STATIC void
+S_output_non_portable(pTHX_ const U8 shift);
+# define PERL_ARGS_ASSERT_OUTPUT_NON_PORTABLE
+
#endif
#if defined(PERL_IN_OP_C)
-STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS \
- assert(stash); assert(target)
-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 I32 S_assignment_type(pTHX_ const OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ASSIGNMENT_TYPE
-
-STATIC void S_bad_type_gv(pTHX_ I32 n, GV *gv, const OP *kid, const char *t);
-#define PERL_ARGS_ASSERT_BAD_TYPE_GV \
- assert(gv); assert(kid); assert(t)
-STATIC void S_bad_type_pv(pTHX_ I32 n, const char *t, const OP *o, const OP *kid);
-#define PERL_ARGS_ASSERT_BAD_TYPE_PV \
- assert(t); assert(o); assert(kid)
-STATIC void S_clear_special_blocks(pTHX_ const char *const fullname, GV *const gv, CV *const cv);
-#define PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS \
- assert(fullname); assert(gv); assert(cv)
-STATIC void S_cop_free(pTHX_ COP *cop);
-#define PERL_ARGS_ASSERT_COP_FREE \
- assert(cop)
-STATIC OP * S_dup_attrlist(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_DUP_ATTRLIST \
- assert(o)
-STATIC void S_finalize_op(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_FINALIZE_OP \
- assert(o)
-STATIC void S_find_and_forget_pmops(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \
- assert(o)
-STATIC OP* S_fold_constants(pTHX_ OP * const o);
-#define PERL_ARGS_ASSERT_FOLD_CONSTANTS \
- assert(o)
-STATIC OP* S_force_list(pTHX_ OP* arg, bool nullit);
-#define PERL_ARGS_ASSERT_FORCE_LIST
-STATIC void S_forget_pmop(pTHX_ PMOP *const o);
-#define PERL_ARGS_ASSERT_FORGET_PMOP \
- assert(o)
-STATIC void S_gen_constant_list(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_GEN_CONSTANT_LIST
-STATIC void S_inplace_aassign(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_INPLACE_AASSIGN \
- assert(o)
-STATIC bool S_is_handle_constructor(const OP *o, I32 numargs)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \
- assert(o)
-
-STATIC OP* S_listkids(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_LISTKIDS
-STATIC bool S_looks_like_bool(pTHX_ const OP* o);
-#define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL \
- assert(o)
-STATIC OP* S_modkids(pTHX_ OP *o, I32 type);
-#define PERL_ARGS_ASSERT_MODKIDS
-STATIC void S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV *name, bool curstash);
-#define PERL_ARGS_ASSERT_MOVE_PROTO_ATTR \
- assert(proto); assert(attrs); assert(name)
-STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
-#define PERL_ARGS_ASSERT_MY_KID \
- assert(imopsp)
-STATIC OP* S_newGIVWHENOP(pTHX_ OP* cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg);
-#define PERL_ARGS_ASSERT_NEWGIVWHENOP \
- assert(block)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE OP* S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth);
-#define PERL_ARGS_ASSERT_NEWMETHOP_INTERNAL
-#endif
-STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_LOGOP \
- assert(firstp); assert(otherp)
-
-STATIC void S_no_bareword_allowed(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED \
- assert(o)
-STATIC OP* S_no_fh_allowed(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NO_FH_ALLOWED \
- assert(o)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE OP* S_op_integerize(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_INTEGERIZE \
- assert(o)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE OP* S_op_std_init(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_STD_INIT \
- assert(o)
-#endif
-STATIC void S_optimize_op(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OPTIMIZE_OP \
- assert(o)
-STATIC OP* S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl);
-#define PERL_ARGS_ASSERT_PMTRANS \
- assert(o); assert(expr); assert(repl)
-STATIC bool S_process_special_blocks(pTHX_ I32 floor, const char *const fullname, GV *const gv, CV *const cv);
-#define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS \
- assert(fullname); assert(gv); assert(cv)
-STATIC OP* S_ref_array_or_hash(pTHX_ OP* cond);
-#define PERL_ARGS_ASSERT_REF_ARRAY_OR_HASH
-STATIC OP* S_refkids(pTHX_ OP* o, I32 type);
-#define PERL_ARGS_ASSERT_REFKIDS
-STATIC bool S_scalar_mod_type(const OP *o, I32 type)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE
-
-STATIC OP* S_scalarboolean(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_SCALARBOOLEAN \
- assert(o)
-STATIC OP* S_scalarkids(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SCALARKIDS
-STATIC OP* S_scalarseq(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SCALARSEQ
-STATIC OP* S_search_const(pTHX_ OP *o)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SEARCH_CONST \
- assert(o)
-
-STATIC void S_simplify_sort(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_SIMPLIFY_SORT \
- assert(o)
-STATIC OP* S_too_few_arguments_pv(pTHX_ OP *o, const char* name, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV \
- assert(o); assert(name)
-
-STATIC OP* S_too_many_arguments_pv(pTHX_ OP *o, const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV \
- assert(o); assert(name)
-STATIC OP* S_traverse_op_tree(pTHX_ OP* top, OP* o);
-#define PERL_ARGS_ASSERT_TRAVERSE_OP_TREE \
- assert(top); assert(o)
-# if defined(USE_ITHREADS)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_op_relocate_sv(pTHX_ SV** svp, PADOFFSET* targp);
-#define PERL_ARGS_ASSERT_OP_RELOCATE_SV \
- assert(svp); assert(targp)
-#endif
-# endif
+STATIC void
+S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);
+# define PERL_ARGS_ASSERT_APPLY_ATTRS \
+ assert(stash); assert(target)
+
+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 I32
+S_assignment_type(pTHX_ const OP *o)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ASSIGNMENT_TYPE
+
+STATIC void
+S_bad_type_gv(pTHX_ I32 n, GV *gv, const OP *kid, const char *t);
+# define PERL_ARGS_ASSERT_BAD_TYPE_GV \
+ assert(gv); assert(kid); assert(t)
+
+STATIC void
+S_bad_type_pv(pTHX_ I32 n, const char *t, const OP *o, const OP *kid);
+# define PERL_ARGS_ASSERT_BAD_TYPE_PV \
+ assert(t); assert(o); assert(kid)
+
+STATIC void
+S_clear_special_blocks(pTHX_ const char * const fullname, GV * const gv, CV * const cv);
+# define PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS \
+ assert(fullname); assert(gv); assert(cv)
+
+STATIC void
+S_cop_free(pTHX_ COP *cop);
+# define PERL_ARGS_ASSERT_COP_FREE \
+ assert(cop)
+
+STATIC OP *
+S_dup_attrlist(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_DUP_ATTRLIST \
+ assert(o)
+
+STATIC void
+S_find_and_forget_pmops(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \
+ assert(o)
+
+STATIC OP *
+S_fold_constants(pTHX_ OP * const o);
+# define PERL_ARGS_ASSERT_FOLD_CONSTANTS \
+ assert(o)
+
+STATIC OP *
+S_force_list(pTHX_ OP *arg, bool nullit);
+# define PERL_ARGS_ASSERT_FORCE_LIST
+
+STATIC void
+S_forget_pmop(pTHX_ PMOP * const o);
+# define PERL_ARGS_ASSERT_FORGET_PMOP \
+ assert(o)
+
+STATIC void
+S_gen_constant_list(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_GEN_CONSTANT_LIST
+
+STATIC void
+S_inplace_aassign(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_INPLACE_AASSIGN \
+ assert(o)
+
+STATIC bool
+S_is_handle_constructor(const OP *o, I32 numargs)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \
+ assert(o)
+
+STATIC OP *
+S_listkids(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_LISTKIDS
+
+STATIC bool
+S_looks_like_bool(pTHX_ const OP *o);
+# define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL \
+ assert(o)
+
+STATIC OP *
+S_modkids(pTHX_ OP *o, I32 type);
+# define PERL_ARGS_ASSERT_MODKIDS
+
+STATIC void
+S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV *name, bool curstash);
+# define PERL_ARGS_ASSERT_MOVE_PROTO_ATTR \
+ assert(proto); assert(attrs); assert(name)
+
+STATIC OP *
+S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
+# define PERL_ARGS_ASSERT_MY_KID \
+ assert(imopsp)
+
+STATIC OP *
+S_newGIVWHENOP(pTHX_ OP *cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg);
+# define PERL_ARGS_ASSERT_NEWGIVWHENOP \
+ assert(block)
+
+STATIC OP *
+S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEW_LOGOP \
+ assert(firstp); assert(otherp)
+
+STATIC OP *
+S_no_fh_allowed(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NO_FH_ALLOWED \
+ assert(o)
+
+STATIC OP *
+S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl);
+# define PERL_ARGS_ASSERT_PMTRANS \
+ assert(o); assert(expr); assert(repl)
+
+STATIC bool
+S_process_special_blocks(pTHX_ I32 floor, const char * const fullname, GV * const gv, CV * const cv);
+# define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS \
+ assert(fullname); assert(gv); assert(cv)
+
+STATIC OP *
+S_ref_array_or_hash(pTHX_ OP *cond);
+# define PERL_ARGS_ASSERT_REF_ARRAY_OR_HASH
+
+STATIC OP *
+S_refkids(pTHX_ OP *o, I32 type);
+# define PERL_ARGS_ASSERT_REFKIDS
+
+STATIC bool
+S_scalar_mod_type(const OP *o, I32 type)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE
+
+STATIC OP *
+S_scalarboolean(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SCALARBOOLEAN \
+ assert(o)
+
+STATIC OP *
+S_scalarkids(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SCALARKIDS
+
+STATIC OP *
+S_search_const(pTHX_ OP *o)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SEARCH_CONST \
+ assert(o)
+
+STATIC void
+S_simplify_sort(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SIMPLIFY_SORT \
+ assert(o)
+
+STATIC OP *
+S_too_few_arguments_pv(pTHX_ OP *o, const char *name, U32 flags)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV \
+ assert(o); assert(name)
+
+STATIC OP *
+S_too_many_arguments_pv(pTHX_ OP *o, const char *name, U32 flags);
+# define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV \
+ assert(o); assert(name)
+
+STATIC OP *
+S_voidnonfinal(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_VOIDNONFINAL
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE OP *
+S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP *dynamic_meth, SV * const_meth);
+# define PERL_ARGS_ASSERT_NEWMETHOP_INTERNAL
+
+PERL_STATIC_INLINE OP *
+S_op_integerize(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OP_INTEGERIZE \
+ assert(o)
+
+PERL_STATIC_INLINE OP *
+S_op_std_init(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OP_STD_INIT \
+ assert(o)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_OP_C) */
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+PERL_CALLCONV void
+Perl_check_hash_fields_and_hekify(pTHX_ UNOP *rop, SVOP *key_op, int real)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CHECK_HASH_FIELDS_AND_HEKIFY
+
+PERL_CALLCONV void
+Perl_no_bareword_allowed(pTHX_ OP *o)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_op_prune_chain_head(OP **op_p)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OP_PRUNE_CHAIN_HEAD \
+ assert(op_p)
+
+PERL_CALLCONV SV *
+Perl_op_varname(pTHX_ const OP *o)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OP_VARNAME \
+ assert(o)
+
+PERL_CALLCONV void
+Perl_warn_elem_scalar_context(pTHX_ const OP *o, SV *name, bool is_hash, bool is_slice)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_WARN_ELEM_SCALAR_CONTEXT \
+ assert(o); assert(name)
+
+#endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C) */
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+
#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);
-#define PERL_ARGS_ASSERT_REPORT_REDEFINED_CV \
- assert(name); assert(old_cv)
-#endif
+PERL_CALLCONV void
+Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv, SV * const *new_const_svp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_REPORT_REDEFINED_CV \
+ assert(name); assert(old_cv)
+
+PERL_CALLCONV SV *
+Perl_varname(pTHX_ const GV * const gv, const char gvtype, PADOFFSET targ, const SV * const keyname, SSize_t aindex, int subscript_type)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_VARNAME
+
+#endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) */
#if defined(PERL_IN_PAD_C)
-STATIC PADOFFSET S_pad_alloc_name(pTHX_ PADNAME *name, U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ALLOC_NAME \
- assert(name)
-STATIC void S_pad_check_dup(pTHX_ PADNAME *name, U32 flags, const HV *ourstash);
-#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, PADNAME** out_name, int *out_flags);
-#define PERL_ARGS_ASSERT_PAD_FINDLEX \
- assert(namepv); assert(cv); assert(out_name); assert(out_flags)
-STATIC void S_pad_reset(pTHX);
-#define PERL_ARGS_ASSERT_PAD_RESET
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq);
-#define PERL_ARGS_ASSERT_PADNAMEIN_SCOPE \
- assert(pn)
-#endif
-#endif
-#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
-#ifndef NO_MATHOMS
-PERL_CALLCONV OP* Perl_ref(pTHX_ OP* o, I32 type);
-#define PERL_ARGS_ASSERT_REF
-#endif
-#endif
+STATIC PADOFFSET
+S_pad_alloc_name(pTHX_ PADNAME *name, U32 flags, HV *typestash, HV *ourstash);
+# define PERL_ARGS_ASSERT_PAD_ALLOC_NAME \
+ assert(name)
+
+STATIC void
+S_pad_check_dup(pTHX_ PADNAME *name, U32 flags, const HV *ourstash);
+# 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, PADNAME **out_name, int *out_flags);
+# define PERL_ARGS_ASSERT_PAD_FINDLEX \
+ assert(namepv); assert(cv); assert(out_name); assert(out_flags)
+
+STATIC void
+S_pad_reset(pTHX);
+# define PERL_ARGS_ASSERT_PAD_RESET
+
+# if defined(DEBUGGING)
+STATIC void
+S_cv_dump(pTHX_ const CV *cv, const char *title);
+# define PERL_ARGS_ASSERT_CV_DUMP \
+ assert(cv); assert(title)
+
+# endif
+#endif /* defined(PERL_IN_PAD_C) */
+#if defined(PERL_IN_PEEP_C)
+STATIC void
+S_finalize_op(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_FINALIZE_OP \
+ assert(o)
+
+STATIC void
+S_optimize_op(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OPTIMIZE_OP \
+ assert(o)
+
+STATIC OP *
+S_traverse_op_tree(pTHX_ OP *top, OP *o);
+# define PERL_ARGS_ASSERT_TRAVERSE_OP_TREE \
+ assert(top); assert(o)
+
+#endif /* defined(PERL_IN_PEEP_C) */
#if defined(PERL_IN_PERL_C)
-STATIC void S_find_beginning(pTHX_ SV* linestr_sv, PerlIO *rsfp);
-#define PERL_ARGS_ASSERT_FIND_BEGINNING \
- assert(linestr_sv); assert(rsfp)
-STATIC void S_forbid_setid(pTHX_ const char flag, const bool suidscript);
-#define PERL_ARGS_ASSERT_FORBID_SETID
-STATIC void S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_INCPUSH \
- assert(dir)
-STATIC void S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_INCPUSH_USE_SEP \
- assert(p)
-STATIC void S_init_ids(pTHX);
-#define PERL_ARGS_ASSERT_INIT_IDS
-STATIC void S_init_interp(pTHX);
-#define PERL_ARGS_ASSERT_INIT_INTERP
-STATIC void S_init_main_stash(pTHX);
-#define PERL_ARGS_ASSERT_INIT_MAIN_STASH
-STATIC void S_init_perllib(pTHX);
-#define PERL_ARGS_ASSERT_INIT_PERLLIB
-STATIC void S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env);
-#define PERL_ARGS_ASSERT_INIT_POSTDUMP_SYMBOLS \
- assert(argv)
-STATIC void S_init_predump_symbols(pTHX);
-#define PERL_ARGS_ASSERT_INIT_PREDUMP_SYMBOLS
-STATIC SV* S_mayberelocate(pTHX_ const char *const dir, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_MAYBERELOCATE \
- assert(dir)
-PERL_STATIC_NO_RET void S_minus_v(pTHX)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MINUS_V
-
-PERL_STATIC_NO_RET void S_my_exit_jump(pTHX)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MY_EXIT_JUMP
-
-STATIC void S_nuke_stacks(pTHX);
-#define PERL_ARGS_ASSERT_NUKE_STACKS
-STATIC PerlIO * S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript);
-#define PERL_ARGS_ASSERT_OPEN_SCRIPT \
- assert(scriptname); assert(suidscript)
-STATIC void* S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
-#define PERL_ARGS_ASSERT_PARSE_BODY
-PERL_STATIC_NO_RET void S_run_body(pTHX_ I32 oldscope)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_RUN_BODY
-
-PERL_STATIC_NO_RET void S_usage(pTHX)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_USAGE
-
-#endif
+STATIC void
+S_find_beginning(pTHX_ SV *linestr_sv, PerlIO *rsfp);
+# define PERL_ARGS_ASSERT_FIND_BEGINNING \
+ assert(linestr_sv); assert(rsfp)
+
+STATIC void
+S_forbid_setid(pTHX_ const char flag, const bool suidscript);
+# define PERL_ARGS_ASSERT_FORBID_SETID
+
+STATIC void
+S_incpush(pTHX_ const char * const dir, STRLEN len, U32 flags);
+# define PERL_ARGS_ASSERT_INCPUSH \
+ assert(dir)
+
+STATIC void
+S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags);
+# define PERL_ARGS_ASSERT_INCPUSH_USE_SEP \
+ assert(p)
+
+STATIC void
+S_init_ids(pTHX);
+# define PERL_ARGS_ASSERT_INIT_IDS
+
+STATIC void
+S_init_interp(pTHX);
+# define PERL_ARGS_ASSERT_INIT_INTERP
+
+STATIC void
+S_init_main_stash(pTHX);
+# define PERL_ARGS_ASSERT_INIT_MAIN_STASH
+
+STATIC void
+S_init_perllib(pTHX);
+# define PERL_ARGS_ASSERT_INIT_PERLLIB
+
+STATIC void
+S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env);
+# define PERL_ARGS_ASSERT_INIT_POSTDUMP_SYMBOLS \
+ assert(argv)
+
+STATIC void
+S_init_predump_symbols(pTHX);
+# define PERL_ARGS_ASSERT_INIT_PREDUMP_SYMBOLS
+
+STATIC SV *
+S_mayberelocate(pTHX_ const char * const dir, STRLEN len, U32 flags);
+# define PERL_ARGS_ASSERT_MAYBERELOCATE \
+ assert(dir)
+
+PERL_STATIC_NO_RET void
+S_minus_v(pTHX)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_MINUS_V
+
+PERL_STATIC_NO_RET void
+S_my_exit_jump(pTHX)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_MY_EXIT_JUMP
+
+STATIC void
+S_nuke_stacks(pTHX);
+# define PERL_ARGS_ASSERT_NUKE_STACKS
+
+STATIC PerlIO *
+S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript);
+# define PERL_ARGS_ASSERT_OPEN_SCRIPT \
+ assert(scriptname); assert(suidscript)
+
+STATIC void *
+S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
+# define PERL_ARGS_ASSERT_PARSE_BODY
+
+PERL_STATIC_NO_RET void
+S_run_body(pTHX_ I32 oldscope)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_RUN_BODY
+
+PERL_STATIC_NO_RET void
+S_usage(pTHX)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_USAGE
+
+# if !defined(PERL_IS_MINIPERL)
+STATIC SV *
+S_incpush_if_exists(pTHX_ AV * const av, SV *dir, SV * const stem);
+# define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \
+ assert(av); assert(dir); assert(stem)
+
+# endif
+# if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
+STATIC void
+S_validate_suid(pTHX_ PerlIO *rsfp);
+# define PERL_ARGS_ASSERT_VALIDATE_SUID \
+ assert(rsfp)
+
+# endif
+#endif /* defined(PERL_IN_PERL_C) */
+#if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_UTF8_C)
+PERL_CALLCONV bool
+Perl__invlistEQ(pTHX_ SV * const a, SV * const b, const bool complement_b);
+# define PERL_ARGS_ASSERT__INVLISTEQ \
+ assert(a); assert(b)
+
+PERL_CALLCONV SV *
+Perl__new_invlist_C_array(pTHX_ const UV * const list)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY \
+ assert(list)
+
+#endif /* defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) ||
+ defined(PERL_IN_UTF8_C) */
#if defined(PERL_IN_PP_C)
-STATIC size_t S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping);
-#define PERL_ARGS_ASSERT_DO_CHOMP \
- assert(retval); assert(sv)
-STATIC OP* S_do_delete_local(pTHX);
-#define PERL_ARGS_ASSERT_DO_DELETE_LOCAL
-STATIC SV* S_refto(pTHX_ SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REFTO \
- assert(sv)
-
-#endif
+STATIC size_t
+S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping);
+# define PERL_ARGS_ASSERT_DO_CHOMP \
+ assert(retval); assert(sv)
+
+STATIC OP *
+S_do_delete_local(pTHX);
+# define PERL_ARGS_ASSERT_DO_DELETE_LOCAL
+
+STATIC SV *
+S_refto(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REFTO \
+ assert(sv)
+
+#endif /* defined(PERL_IN_PP_C) */
#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_lossless_NV_to_IV(const NV nv, IV * ivp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV \
- assert(ivp)
-#endif
-PERL_CALLCONV GV* Perl_softref2xv(pTHX_ SV *const sv, const char *const what, const svtype type, SV ***spp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SOFTREF2XV \
- assert(sv); assert(what); assert(spp)
+PERL_CALLCONV GV *
+Perl_softref2xv(pTHX_ SV * const sv, const char * const what, const svtype type, SV ***spp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SOFTREF2XV \
+ assert(sv); assert(what); assert(spp)
#endif
-#if defined(PERL_IN_PP_CTL_C)
-STATIC PerlIO * S_check_type_and_open(pTHX_ SV *name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN \
- assert(name)
-
-STATIC void S_destroy_matcher(pTHX_ PMOP* matcher);
-#define PERL_ARGS_ASSERT_DESTROY_MATCHER \
- assert(matcher)
-STATIC OP* S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other, const bool copied);
-#define PERL_ARGS_ASSERT_DO_SMARTMATCH
-STATIC OP* S_docatch(pTHX_ Perl_ppaddr_t firstpp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOCATCH
-
-STATIC bool S_doeval_compile(pTHX_ U8 gimme, CV* outside, U32 seq, HV* hh);
-#define PERL_ARGS_ASSERT_DOEVAL_COMPILE
-STATIC OP* S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, U32 flags, OP **opstack, OP **oplimit)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOFINDLABEL \
- assert(o); assert(label); assert(opstack); assert(oplimit)
-
-STATIC MAGIC * S_doparseform(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_DOPARSEFORM \
- assert(sv)
-STATIC I32 S_dopoptoeval(pTHX_ I32 startingblock)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOEVAL
-
-STATIC I32 S_dopoptogivenfor(pTHX_ I32 startingblock)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOGIVENFOR
-
-STATIC I32 S_dopoptolabel(pTHX_ const char *label, STRLEN len, U32 flags)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOLABEL \
- assert(label)
-
-STATIC I32 S_dopoptoloop(pTHX_ I32 startingblock)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOLOOP
-
-STATIC I32 S_dopoptosub_at(pTHX_ const PERL_CONTEXT* cxstk, I32 startingblock)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOSUB_AT \
- assert(cxstk)
-
-STATIC I32 S_dopoptowhen(pTHX_ I32 startingblock)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOWHEN
-
-STATIC PMOP* S_make_matcher(pTHX_ REGEXP* re)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MAKE_MATCHER \
- assert(re)
-
-STATIC bool S_matcher_matches_sv(pTHX_ PMOP* matcher, SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV \
- assert(matcher); assert(sv)
-
-STATIC bool S_num_overflow(NV value, I32 fldsize, I32 frcsize)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NUM_OVERFLOW
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_path_is_searchable(const char *name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE \
- assert(name)
-#endif
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV UV
+Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT__TO_UPPER_TITLE_LATIN1 \
+ assert(p); assert(lenp)
-STATIC I32 S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_RUN_USER_FILTER \
- assert(buf_sv)
-
-STATIC void S_rxres_free(pTHX_ void** rsp);
-#define PERL_ARGS_ASSERT_RXRES_FREE \
- assert(rsp)
-STATIC void S_rxres_restore(pTHX_ void **rsp, REGEXP *rx);
-#define PERL_ARGS_ASSERT_RXRES_RESTORE \
- assert(rsp); assert(rx)
-STATIC void S_save_lines(pTHX_ AV *array, SV *sv);
-#define PERL_ARGS_ASSERT_SAVE_LINES \
- assert(sv)
-#endif
-#if defined(PERL_IN_PP_HOT_C)
-STATIC void S_do_oddball(pTHX_ SV **oddkey, SV **firstkey);
-#define PERL_ARGS_ASSERT_DO_ODDBALL \
- assert(oddkey); assert(firstkey)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE HV* S_opmethod_stash(pTHX_ SV* meth);
-#define PERL_ARGS_ASSERT_OPMETHOD_STASH \
- assert(meth)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE bool S_should_we_output_Debug_r(pTHX_ regexp * prog)
- __attribute__warn_unused_result__
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SHOULD_WE_OUTPUT_DEBUG_R \
- assert(prog)
#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC PerlIO *
+S_check_type_and_open(pTHX_ SV *name)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN \
+ assert(name)
+
+STATIC void
+S_destroy_matcher(pTHX_ PMOP *matcher);
+# define PERL_ARGS_ASSERT_DESTROY_MATCHER \
+ assert(matcher)
+
+STATIC OP *
+S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied);
+# define PERL_ARGS_ASSERT_DO_SMARTMATCH
+
+STATIC OP *
+S_docatch(pTHX_ Perl_ppaddr_t firstpp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOCATCH
+
+STATIC bool
+S_doeval_compile(pTHX_ U8 gimme, CV *outside, U32 seq, HV *hh);
+# define PERL_ARGS_ASSERT_DOEVAL_COMPILE
+
+STATIC OP *
+S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, U32 flags, OP **opstack, OP **oplimit)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOFINDLABEL \
+ assert(o); assert(label); assert(opstack); assert(oplimit)
+
+STATIC MAGIC *
+S_doparseform(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_DOPARSEFORM \
+ assert(sv)
+
+STATIC I32
+S_dopoptoeval(pTHX_ I32 startingblock)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOEVAL
+
+STATIC I32
+S_dopoptogivenfor(pTHX_ I32 startingblock)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOGIVENFOR
+
+STATIC I32
+S_dopoptolabel(pTHX_ const char *label, STRLEN len, U32 flags)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOLABEL \
+ assert(label)
+
+STATIC I32
+S_dopoptoloop(pTHX_ I32 startingblock)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOLOOP
+
+STATIC I32
+S_dopoptosub_at(pTHX_ const PERL_CONTEXT *cxstk, I32 startingblock)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOSUB_AT \
+ assert(cxstk)
+
+STATIC I32
+S_dopoptowhen(pTHX_ I32 startingblock)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOWHEN
+
+STATIC PMOP *
+S_make_matcher(pTHX_ REGEXP *re)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MAKE_MATCHER \
+ assert(re)
+
+STATIC bool
+S_matcher_matches_sv(pTHX_ PMOP *matcher, SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV \
+ assert(matcher); assert(sv)
+
+STATIC bool
+S_num_overflow(NV value, I32 fldsize, I32 frcsize)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NUM_OVERFLOW
+
+STATIC I32
+S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_RUN_USER_FILTER \
+ assert(buf_sv)
+
+STATIC void
+S_rxres_free(pTHX_ void **rsp);
+# define PERL_ARGS_ASSERT_RXRES_FREE \
+ assert(rsp)
+
+STATIC void
+S_rxres_restore(pTHX_ void **rsp, REGEXP *rx);
+# define PERL_ARGS_ASSERT_RXRES_RESTORE \
+ assert(rsp); assert(rx)
+
+STATIC void
+S_save_lines(pTHX_ AV *array, SV *sv);
+# define PERL_ARGS_ASSERT_SAVE_LINES \
+ assert(sv)
+
+# if !defined(PERL_DISABLE_PMC)
+STATIC PerlIO *
+S_doopen_pm(pTHX_ SV *name)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOOPEN_PM \
+ assert(name)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE bool
+S_path_is_searchable(const char *name)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE \
+ assert(name)
+
+# endif
+#endif /* defined(PERL_IN_PP_CTL_C) */
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
+PERL_CALLCONV bool
+Perl_invoke_exception_hook(pTHX_ SV *ex, bool warn)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_INVOKE_EXCEPTION_HOOK
#endif
+#if defined(PERL_IN_PP_HOT_C)
+STATIC void
+S_do_oddball(pTHX_ SV **oddkey, SV **firstkey);
+# define PERL_ARGS_ASSERT_DO_ODDBALL \
+ assert(oddkey); assert(firstkey)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE HV *
+S_opmethod_stash(pTHX_ SV *meth);
+# define PERL_ARGS_ASSERT_OPMETHOD_STASH \
+ assert(meth)
+
+PERL_STATIC_FORCE_INLINE bool
+S_should_we_output_Debug_r(pTHX_ regexp *prog)
+ __attribute__warn_unused_result__
+ __attribute__always_inline__;
+# define PERL_ARGS_ASSERT_SHOULD_WE_OUTPUT_DEBUG_R \
+ assert(prog)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_PP_HOT_C) */
#if defined(PERL_IN_PP_PACK_C)
-STATIC int S_div128(pTHX_ SV *pnum, bool *done);
-#define PERL_ARGS_ASSERT_DIV128 \
- assert(pnum); assert(done)
-STATIC char S_first_symbol(const char *pat, const char *patend);
-#define PERL_ARGS_ASSERT_FIRST_SYMBOL \
- assert(pat); assert(patend)
-STATIC const char * S_get_num(pTHX_ const char *patptr, SSize_t *lenptr)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_NUM \
- assert(patptr); assert(lenptr)
-
-STATIC const char * S_group_end(pTHX_ const char *patptr, const char *patend, char ender);
-#define PERL_ARGS_ASSERT_GROUP_END \
- assert(patptr); assert(patend)
-STATIC SV* S_is_an_int(pTHX_ const char *s, STRLEN l)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_AN_INT \
- assert(s)
-
-STATIC SSize_t S_measure_struct(pTHX_ struct tempsym* symptr);
-#define PERL_ARGS_ASSERT_MEASURE_STRUCT \
- assert(symptr)
-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__;
-#define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8 \
- assert(start); assert(dest)
-
-STATIC bool S_need_utf8(const char *pat, const char *patend);
-#define PERL_ARGS_ASSERT_NEED_UTF8 \
- assert(pat); assert(patend)
-STATIC bool S_next_symbol(pTHX_ struct tempsym* symptr);
-#define PERL_ARGS_ASSERT_NEXT_SYMBOL \
- assert(symptr)
-STATIC SV ** S_pack_rec(pTHX_ SV *cat, struct tempsym* symptr, SV **beglist, SV **endlist);
-#define PERL_ARGS_ASSERT_PACK_REC \
- assert(cat); assert(symptr); assert(beglist); assert(endlist)
-STATIC char * S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_EXP_GROW \
- assert(sv)
-
-STATIC SSize_t S_unpack_rec(pTHX_ struct tempsym* symptr, const char *s, const char *strbeg, const char *strend, const char **new_s);
-#define PERL_ARGS_ASSERT_UNPACK_REC \
- assert(symptr); assert(s); assert(strbeg); assert(strend)
-#endif
+STATIC int
+S_div128(pTHX_ SV *pnum, bool *done);
+# define PERL_ARGS_ASSERT_DIV128 \
+ assert(pnum); assert(done)
+
+STATIC char
+S_first_symbol(const char *pat, const char *patend);
+# define PERL_ARGS_ASSERT_FIRST_SYMBOL \
+ assert(pat); assert(patend)
+
+STATIC const char *
+S_get_num(pTHX_ const char *patptr, SSize_t *lenptr)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_NUM \
+ assert(patptr); assert(lenptr)
+
+STATIC const char *
+S_group_end(pTHX_ const char *patptr, const char *patend, char ender);
+# define PERL_ARGS_ASSERT_GROUP_END \
+ assert(patptr); assert(patend)
+
+STATIC SV *
+S_is_an_int(pTHX_ const char *s, STRLEN l)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_AN_INT \
+ assert(s)
+
+STATIC SSize_t
+S_measure_struct(pTHX_ struct tempsym *symptr);
+# define PERL_ARGS_ASSERT_MEASURE_STRUCT \
+ assert(symptr)
+
+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__;
+# define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8 \
+ assert(start); assert(dest)
+
+STATIC bool
+S_need_utf8(const char *pat, const char *patend);
+# define PERL_ARGS_ASSERT_NEED_UTF8 \
+ assert(pat); assert(patend)
+
+STATIC bool
+S_next_symbol(pTHX_ struct tempsym *symptr);
+# define PERL_ARGS_ASSERT_NEXT_SYMBOL \
+ assert(symptr)
+
+STATIC SV **
+S_pack_rec(pTHX_ SV *cat, struct tempsym *symptr, SV **beglist, SV **endlist);
+# define PERL_ARGS_ASSERT_PACK_REC \
+ assert(cat); assert(symptr); assert(beglist); assert(endlist)
+
+STATIC char *
+S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_EXP_GROW \
+ assert(sv)
+
+STATIC SSize_t
+S_unpack_rec(pTHX_ struct tempsym *symptr, const char *s, const char *strbeg, const char *strend, const char **new_s);
+# define PERL_ARGS_ASSERT_UNPACK_REC \
+ assert(symptr); assert(s); assert(strbeg); assert(strend)
+
+#endif /* defined(PERL_IN_PP_PACK_C) */
#if defined(PERL_IN_PP_SORT_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp(pTHX_ SV *const str1, SV *const str2)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_CMP \
- assert(str1); assert(str2)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_desc(pTHX_ SV *const str1, SV *const str2)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_DESC \
- assert(str1); assert(str2)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_I_NCMP \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_i_ncmp_desc(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_I_NCMP_DESC \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_ncmp(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_NCMP \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_ncmp_desc(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_NCMP_DESC \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_cmp_desc(pTHX_ SV *const str1, SV *const str2)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_CMP_DESC \
- assert(str1); assert(str2)
-#endif
-
-STATIC I32 S_sortcv(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SORTCV \
- assert(a); assert(b)
-STATIC I32 S_sortcv_stacked(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SORTCV_STACKED \
- assert(a); assert(b)
-STATIC I32 S_sortcv_xsub(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SORTCV_XSUB \
- assert(a); assert(b)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE void S_sortsv_flags_impl(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SORTSV_FLAGS_IMPL \
- assert(cmp)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_sv_i_ncmp(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SV_I_NCMP \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_sv_i_ncmp_desc(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SV_I_NCMP_DESC \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_sv_ncmp(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SV_NCMP \
- assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_sv_ncmp_desc(pTHX_ SV *const a, SV *const b)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SV_NCMP_DESC \
- assert(a); assert(b)
-#endif
-
-# if defined(USE_LOCALE_COLLATE)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \
- assert(str1); assert(str2)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE_DESC \
- assert(str1); assert(str2)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE I32 S_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2)
- __attribute__always_inline__;
-#define PERL_ARGS_ASSERT_CMP_LOCALE_DESC \
- assert(str1); assert(str2)
-#endif
-
-# endif
-#endif
+STATIC I32
+S_sortcv(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SORTCV \
+ assert(a); assert(b)
+
+STATIC I32
+S_sortcv_stacked(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SORTCV_STACKED \
+ assert(a); assert(b)
+
+STATIC I32
+S_sortcv_xsub(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SORTCV_XSUB \
+ assert(a); assert(b)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE I32
+S_amagic_cmp(pTHX_ SV * const str1, SV * const str2);
+# define PERL_ARGS_ASSERT_AMAGIC_CMP \
+ assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_amagic_cmp_desc(pTHX_ SV * const str1, SV * const str2);
+# define PERL_ARGS_ASSERT_AMAGIC_CMP_DESC \
+ assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_amagic_i_ncmp(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_AMAGIC_I_NCMP \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_amagic_i_ncmp_desc(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_AMAGIC_I_NCMP_DESC \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_amagic_ncmp(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_AMAGIC_NCMP \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_amagic_ncmp_desc(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_AMAGIC_NCMP_DESC \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_cmp_desc(pTHX_ SV * const str1, SV * const str2);
+# define PERL_ARGS_ASSERT_CMP_DESC \
+ assert(str1); assert(str2)
+
+PERL_STATIC_FORCE_INLINE void
+S_sortsv_flags_impl(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
+ __attribute__always_inline__;
+# define PERL_ARGS_ASSERT_SORTSV_FLAGS_IMPL \
+ assert(cmp)
+
+PERL_STATIC_INLINE I32
+S_sv_i_ncmp(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SV_I_NCMP \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_sv_i_ncmp_desc(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SV_I_NCMP_DESC \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_sv_ncmp(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SV_NCMP \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_sv_ncmp_desc(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SV_NCMP_DESC \
+ assert(a); assert(b)
+
+# if defined(USE_LOCALE_COLLATE)
+PERL_STATIC_INLINE I32
+S_amagic_cmp_locale(pTHX_ SV * const str1, SV * const str2);
+# define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \
+ assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_amagic_cmp_locale_desc(pTHX_ SV * const str1, SV * const str2);
+# define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE_DESC \
+ assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_cmp_locale_desc(pTHX_ SV * const str1, SV * const str2);
+# define PERL_ARGS_ASSERT_CMP_LOCALE_DESC \
+ assert(str1); assert(str2)
+
+# endif /* defined(USE_LOCALE_COLLATE) */
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_PP_SORT_C) */
#if defined(PERL_IN_PP_SYS_C)
-STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
-#define PERL_ARGS_ASSERT_DOFORM \
- assert(cv); assert(gv)
-STATIC SV * S_space_join_names_mortal(pTHX_ char *const *array);
-#define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
-#endif
-#if defined(PERL_IN_REGCOMP_C)
-STATIC void S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist);
-#define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \
- assert(pRExC_state); assert(invlist)
-STATIC U32 S_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n)
- __attribute__warn_unused_result__;
-#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);
-#define PERL_ARGS_ASSERT_ADD_MULTI_MATCH \
- assert(multi_string)
-STATIC void S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size);
-#define PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE \
- assert(pRExC_state)
-STATIC REGEXP* S_compile_wildcard(pTHX_ const char * subpattern, const STRLEN len, const bool ignore_case)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_COMPILE_WILDCARD \
- assert(subpattern)
-
-STATIC U8 S_compute_EXACTish(RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_COMPUTE_EXACTISH \
- assert(pRExC_state)
-STATIC regnode * S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth);
-#define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \
- assert(pRExC_state); assert(source)
-STATIC int S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_EDIT_DISTANCE \
- assert(src); assert(tgt)
-
-STATIC I32 S_execute_wildcard(pTHX_ REGEXP * const prog, char* stringarg, char* strend, char* strbeg, SSize_t minend, SV* screamer, U32 nosave);
-#define PERL_ARGS_ASSERT_EXECUTE_WILDCARD \
- assert(prog); assert(stringarg); assert(strend); assert(strbeg); assert(screamer)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t S_find_first_differing_byte_pos(const U8 * s1, const U8 * s2, const Size_t max);
-#define PERL_ARGS_ASSERT_FIND_FIRST_DIFFERING_BYTE_POS \
- assert(s1); assert(s2)
-#endif
-STATIC SV * S_get_ANYOFM_contents(pTHX_ const regnode * n)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS \
- assert(n)
-
-STATIC SV* S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass* const node);
-#define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \
- assert(pRExC_state); assert(node)
-STATIC U32 S_get_quantifier_value(pTHX_ RExC_state_t *pRExC_state, const char * start, const char * end);
-#define PERL_ARGS_ASSERT_GET_QUANTIFIER_VALUE \
- assert(pRExC_state); assert(start); assert(end)
-STATIC bool S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode_offset* nodep, UV *code_point_p, int* cp_count, I32 *flagp, const bool strict, const U32 depth);
-#define PERL_ARGS_ASSERT_GROK_BSLASH_N \
- assert(pRExC_state); assert(flagp)
-STATIC regnode_offset S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, char * parse_start, char ch);
-#define PERL_ARGS_ASSERT_HANDLE_NAMED_BACKREF \
- assert(pRExC_state); assert(flagp); assert(parse_start)
-STATIC bool S_handle_names_wildcard(pTHX_ const char * wname, const STRLEN wname_len, SV ** prop_definition, AV ** strings);
-#define PERL_ARGS_ASSERT_HANDLE_NAMES_WILDCARD \
- assert(wname); assert(prop_definition); assert(strings)
-STATIC int S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, const char* const s, char ** updated_parse_ptr, AV** posix_warnings, const bool check_only);
-#define PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX \
- assert(pRExC_state); assert(s)
-STATIC regnode_offset S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** return_invlist, I32 *flagp, U32 depth, char * const oregcomp_parse);
-#define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS \
- assert(pRExC_state); assert(flagp); assert(oregcomp_parse)
-STATIC SV * S_handle_user_defined_property(pTHX_ const char * name, const STRLEN name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, SV* contents, bool *user_defined_ptr, SV * msg, const STRLEN level);
-#define PERL_ARGS_ASSERT_HANDLE_USER_DEFINED_PROPERTY \
- assert(name); assert(contents); assert(user_defined_ptr); assert(msg)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV* S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_CONTENTS \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_invlist_is_iterating(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV S_invlist_lowest(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_LOWEST \
- assert(invlist)
-#endif
-
-STATIC bool S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc);
-#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);
-#define PERL_ARGS_ASSERT_JOIN_EXACT \
- assert(pRExC_state); assert(scan); assert(min_subtract); assert(unfolded_multi_char)
-STATIC SV* S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST \
- assert(pRExC_state); assert(node)
-
-STATIC I32 S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth);
-#define PERL_ARGS_ASSERT_MAKE_TRIE \
- assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail)
-STATIC void S_nextchar(pTHX_ RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_NEXTCHAR \
- assert(pRExC_state)
-STATIC void S_output_posix_warnings(pTHX_ RExC_state_t *pRExC_state, AV* posix_warnings);
-#define PERL_ARGS_ASSERT_OUTPUT_POSIX_WARNINGS \
- assert(pRExC_state); assert(posix_warnings)
-STATIC void S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS \
- assert(pRExC_state)
-STATIC SV * S_parse_uniprop_string(pTHX_ const char * const name, Size_t name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, AV ** strings, bool * user_defined_ptr, SV * msg, const STRLEN level);
-#define PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING \
- assert(name); assert(user_defined_ptr); assert(msg)
-STATIC void S_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** invlist_ptr);
-#define PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST \
- assert(node); assert(invlist_ptr)
-STATIC void S_rck_elide_nothing(pTHX_ regnode *node);
-#define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING \
- assert(node)
-PERL_STATIC_NO_RET void S_re_croak(pTHX_ bool utf8, const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_RE_CROAK \
- assert(pat)
-
-STATIC regnode_offset S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_REG \
- assert(pRExC_state); assert(flagp)
-STATIC regnode_offset S_reg2Lanode(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2);
-#define PERL_ARGS_ASSERT_REG2LANODE \
- assert(pRExC_state)
-STATIC regnode_offset S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op);
-#define PERL_ARGS_ASSERT_REG_NODE \
- assert(pRExC_state)
-STATIC SV * S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags);
-#define PERL_ARGS_ASSERT_REG_SCAN_NAME \
- assert(pRExC_state)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE char * S_reg_skipcomment(RExC_state_t *pRExC_state, char * p);
-#define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \
- assert(pRExC_state); assert(p)
-#endif
-STATIC regnode_offset S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg);
-#define PERL_ARGS_ASSERT_REGANODE \
- assert(pRExC_state)
-STATIC regnode_offset S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_REGATOM \
- assert(pRExC_state); assert(flagp)
-STATIC regnode_offset S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth);
-#define PERL_ARGS_ASSERT_REGBRANCH \
- assert(pRExC_state); assert(flagp)
-STATIC regnode_offset 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, bool optimizable, SV** ret_invlist);
-#define PERL_ARGS_ASSERT_REGCLASS \
- assert(pRExC_state); assert(flagp)
-STATIC unsigned int S_regex_set_precedence(const U8 my_operator)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGEX_SET_PRECEDENCE
-
-STATIC void S_reginsert(pTHX_ RExC_state_t *pRExC_state, const U8 op, const regnode_offset operand, const U32 depth);
-#define PERL_ARGS_ASSERT_REGINSERT \
- assert(pRExC_state)
-STATIC regnode_offset S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len, const char* const name);
-#define PERL_ARGS_ASSERT_REGNODE_GUTS \
- assert(pRExC_state); assert(name)
-STATIC regnode_offset S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_REGPIECE \
- assert(pRExC_state); assert(flagp)
-STATIC regnode_offset S_regpnode(pTHX_ RExC_state_t *pRExC_state, U8 op, SV * arg);
-#define PERL_ARGS_ASSERT_REGPNODE \
- assert(pRExC_state); assert(arg)
-STATIC bool S_regtail(pTHX_ RExC_state_t * pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGTAIL \
- assert(pRExC_state); assert(p); assert(val)
-
-STATIC void S_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf);
-#define PERL_ARGS_ASSERT_SCAN_COMMIT \
- assert(pRExC_state); assert(data); assert(minlenp)
-STATIC void S_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state, regnode* const node, SV* const cp_list, SV* const runtime_defns, SV* const only_utf8_locale_list);
-#define PERL_ARGS_ASSERT_SET_ANYOF_ARG \
- assert(pRExC_state); assert(node)
-STATIC void S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx);
-#define PERL_ARGS_ASSERT_SET_REGEX_PV \
- assert(pRExC_state); assert(Rx)
-STATIC void S_skip_to_be_ignored_text(pTHX_ RExC_state_t *pRExC_state, char ** p, const bool force_to_xmod);
-#define PERL_ARGS_ASSERT_SKIP_TO_BE_IGNORED_TEXT \
- assert(pRExC_state); assert(p)
-STATIC void S_ssc_add_range(pTHX_ regnode_ssc *ssc, UV const start, UV const end);
-#define PERL_ARGS_ASSERT_SSC_ADD_RANGE \
- assert(ssc)
-STATIC void S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *and_with);
-#define PERL_ARGS_ASSERT_SSC_AND \
- assert(pRExC_state); assert(ssc); assert(and_with)
-STATIC void S_ssc_anything(pTHX_ regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_ANYTHING \
- assert(ssc)
-STATIC void S_ssc_clear_locale(regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE \
- assert(ssc)
-STATIC void S_ssc_cp_and(pTHX_ regnode_ssc *ssc, UV const cp);
-#define PERL_ARGS_ASSERT_SSC_CP_AND \
- assert(ssc)
-STATIC void S_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_FINALIZE \
- assert(pRExC_state); assert(ssc)
-STATIC void S_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_INIT \
- assert(pRExC_state); assert(ssc)
-STATIC void S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
-#define PERL_ARGS_ASSERT_SSC_INTERSECTION \
- assert(ssc); assert(invlist)
-STATIC int S_ssc_is_anything(const regnode_ssc *ssc)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SSC_IS_ANYTHING \
- assert(ssc)
-
-STATIC int S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT \
- assert(pRExC_state); assert(ssc)
-
-STATIC void S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *or_with);
-#define PERL_ARGS_ASSERT_SSC_OR \
- assert(pRExC_state); assert(ssc); assert(or_with)
-STATIC void S_ssc_union(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
-#define PERL_ARGS_ASSERT_SSC_UNION \
- assert(ssc); assert(invlist)
-STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok);
-#define PERL_ARGS_ASSERT_STUDY_CHUNK \
- assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
-PERL_CALLCONV void Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char* const indent, SV* const invlist);
-#define PERL_ARGS_ASSERT__INVLIST_DUMP \
- assert(file); assert(indent); assert(invlist)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_extend(pTHX_ SV* const invlist, const UV len);
-#define PERL_ARGS_ASSERT_INVLIST_EXTEND \
- assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV S_invlist_highest(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_HIGHEST \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset);
-#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \
- assert(invlist)
-#endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV SV* Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__ADD_RANGE_TO_INVLIST
-
-/* PERL_CALLCONV void _invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i); */
-#define PERL_ARGS_ASSERT__INVLIST_INTERSECTION
-PERL_CALLCONV void Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** i);
-#define PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND \
- assert(b); assert(i)
-PERL_CALLCONV void Perl__invlist_invert(pTHX_ SV* const invlist);
-#define PERL_ARGS_ASSERT__INVLIST_INVERT \
- assert(invlist)
-/* PERL_CALLCONV void _invlist_subtract(pTHX_ SV* const a, SV* const b, SV** result); */
-#define PERL_ARGS_ASSERT__INVLIST_SUBTRACT
-/* PERL_CALLCONV void _invlist_union(pTHX_ SV* const a, SV* const b, SV** output); */
-#define PERL_ARGS_ASSERT__INVLIST_UNION
-PERL_CALLCONV void Perl__invlist_union_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** output);
-#define PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND \
- assert(b); assert(output)
-PERL_CALLCONV SV* Perl__new_invlist(pTHX_ IV initial_size)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__NEW_INVLIST
-
-PERL_CALLCONV SV* Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV** other_elements_ptr)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST \
- assert(other_elements_ptr)
+STATIC OP *
+S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
+# define PERL_ARGS_ASSERT_DOFORM \
+ assert(cv); assert(gv)
+
+STATIC SV *
+S_space_join_names_mortal(pTHX_ char * const *array);
+# define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
+
+# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+STATIC int
+S_dooneliner(pTHX_ const char *cmd, const char *filename)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOONELINER \
+ assert(cmd); assert(filename)
+
+# endif
+#endif /* defined(PERL_IN_PP_SYS_C) */
+#if defined(PERL_IN_REGCOMP_ANY)
+PERL_CALLCONV void
+Perl_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV **invlist)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \
+ assert(pRExC_state); assert(invlist)
+
+PERL_CALLCONV regnode *
+Perl_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \
+ assert(pRExC_state); assert(source)
+
+PERL_CALLCONV SV *
+Perl_get_ANYOFHbbm_contents(pTHX_ const regnode *n)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_ANYOFHBBM_CONTENTS \
+ assert(n)
+
+PERL_CALLCONV SV *
+Perl_get_ANYOFM_contents(pTHX_ const regnode *n)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS \
+ assert(n)
+
+PERL_CALLCONV bool
+Perl_is_ssc_worth_it(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT \
+ assert(pRExC_state); assert(ssc)
+
+PERL_CALLCONV U32
+Perl_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan, UV *min_subtract, bool *unfolded_multi_char, U32 flags, regnode *val, U32 depth)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_JOIN_EXACT \
+ assert(pRExC_state); assert(scan); assert(min_subtract); assert(unfolded_multi_char)
+
+PERL_CALLCONV I32
+Perl_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAKE_TRIE \
+ assert(pRExC_state); assert(startbranch); assert(first); assert(last); \
+ assert(tail)
+
+PERL_CALLCONV void
+Perl_populate_anyof_bitmap_from_invlist(pTHX_ regnode *node, SV **invlist_ptr)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_POPULATE_ANYOF_BITMAP_FROM_INVLIST \
+ assert(node); assert(invlist_ptr)
+
+PERL_CALLCONV U32
+Perl_reg_add_data(RExC_state_t * const pRExC_state, const char * const s, const U32 n)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_REG_ADD_DATA \
+ assert(pRExC_state); assert(s)
+
+PERL_CALLCONV void
+Perl_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SCAN_COMMIT \
+ assert(pRExC_state); assert(data); assert(minlenp)
+
+PERL_CALLCONV void
+Perl_set_ANYOF_arg(pTHX_ RExC_state_t * const pRExC_state, regnode * const node, SV * const cp_list, SV * const runtime_defns, SV * const only_utf8_locale_list)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SET_ANYOF_ARG \
+ assert(pRExC_state); assert(node)
+
+PERL_CALLCONV void
+Perl_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SSC_FINALIZE \
+ assert(pRExC_state); assert(ssc)
+
+PERL_CALLCONV void
+Perl_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SSC_INIT \
+ assert(pRExC_state); assert(ssc)
+
+PERL_CALLCONV SSize_t
+Perl_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_STUDY_CHUNK \
+ assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); \
+ assert(last)
+
+# if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING)
+STATIC void
+S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 depth);
+# define PERL_ARGS_ASSERT_DUMP_TRIE \
+ assert(trie); assert(revcharmap)
+
+STATIC void
+S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
+# define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST \
+ assert(trie); assert(revcharmap)
+
+STATIC void
+S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
+# define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE \
+ assert(trie); assert(revcharmap)
+
+# endif /* defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE SV *
+S_invlist_contents(pTHX_ SV * const invlist, const bool traditional_style)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_CONTENTS \
+ assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_highest_range_start(SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_HIGHEST_RANGE_START \
+ assert(invlist)
+
+PERL_STATIC_INLINE bool
+S_invlist_is_iterating(const SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \
+ assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_lowest(SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_LOWEST \
+ assert(invlist)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGCOMP_ANY) */
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
+PERL_CALLCONV SV *
+Perl_invlist_clone(pTHX_ SV * const invlist, SV *newlist);
+# define PERL_ARGS_ASSERT_INVLIST_CLONE \
+ assert(invlist)
#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV const char * Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FORM_ALIEN_DIGIT_MSG \
- assert(first_bad); assert(send)
-
-PERL_CALLCONV bool Perl_grok_bslash_c(pTHX_ const char source, U8 * result, const char** message, U32 * packed_warn)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_BSLASH_C \
- assert(result); assert(message)
-
-PERL_CALLCONV bool Perl_grok_bslash_o(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_BSLASH_O \
- assert(s); assert(send); assert(uv); assert(message)
-
-PERL_CALLCONV bool Perl_grok_bslash_x(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_BSLASH_X \
- assert(s); assert(send); assert(uv); assert(message)
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV const char * Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char * string, const Size_t len, const UV cp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FORM_CP_TOO_LARGE_MSG
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE STRLEN* S_get_invlist_iter_addr(SV* invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_iterfinish(SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \
- assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_invlist_iterinit(SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_ITERINIT \
- assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_invlist_iternext(SV* invlist, UV* start, UV* end)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \
- assert(invlist); assert(start); assert(end)
-#endif
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV bool Perl__invlistEQ(pTHX_ SV* const a, SV* const b, const bool complement_b);
-#define PERL_ARGS_ASSERT__INVLISTEQ \
- assert(a); assert(b)
-PERL_CALLCONV SV* Perl__new_invlist_C_array(pTHX_ const UV* const list)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY \
- assert(list)
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE const char * S_get_regex_charset_name(const U32 flags, STRLEN* const lenp);
-#define PERL_ARGS_ASSERT_GET_REGEX_CHARSET_NAME \
- assert(lenp)
-#endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV int Perl_re_printf(pTHX_ const char *fmt, ...)
- __attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_RE_PRINTF \
- assert(fmt)
-
-PERL_CALLCONV void Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode* o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_REGPROP \
- assert(sv); assert(o)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_DOOP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S__invlist_contains_cp(SV* const invlist, const UV cp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV S__invlist_len(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_LEN \
- assert(invlist)
-#endif
-
-PERL_CALLCONV SSize_t Perl__invlist_search(SV* const invlist, const UV cp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_SEARCH \
- assert(invlist)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool* S_get_invlist_offset_addr(SV* invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV* S_invlist_array(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
- assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_is_invlist(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_INVLIST
-#endif
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV bool Perl_is_grapheme(pTHX_ const U8 * strbeg, const U8 * s, const U8 *strend, const UV cp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_GRAPHEME \
- assert(strbeg); assert(s); assert(strend)
+#if defined(PERL_IN_REGCOMP_C)
+STATIC AV *
+S_add_multi_match(pTHX_ AV *multi_char_matches, SV *multi_string, const STRLEN cp_count);
+# define PERL_ARGS_ASSERT_ADD_MULTI_MATCH \
+ assert(multi_string)
+
+STATIC void
+S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size);
+# define PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE \
+ assert(pRExC_state)
+
+STATIC REGEXP *
+S_compile_wildcard(pTHX_ const char *subpattern, const STRLEN len, const bool ignore_case)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_COMPILE_WILDCARD \
+ assert(subpattern)
+
+STATIC U8
+S_compute_EXACTish(RExC_state_t *pRExC_state);
+# define PERL_ARGS_ASSERT_COMPUTE_EXACTISH \
+ assert(pRExC_state)
+
+STATIC int
+S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_EDIT_DISTANCE \
+ assert(src); assert(tgt)
+
+STATIC I32
+S_execute_wildcard(pTHX_ REGEXP * const prog, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *screamer, U32 nosave);
+# define PERL_ARGS_ASSERT_EXECUTE_WILDCARD \
+ assert(prog); assert(stringarg); assert(strend); assert(strbeg); \
+ assert(screamer)
+
+STATIC U32
+S_get_quantifier_value(pTHX_ RExC_state_t *pRExC_state, const char *start, const char *end);
+# define PERL_ARGS_ASSERT_GET_QUANTIFIER_VALUE \
+ assert(pRExC_state); assert(start); assert(end)
+
+STATIC bool
+S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode_offset *nodep, UV *code_point_p, int *cp_count, I32 *flagp, const bool strict, const U32 depth);
+# define PERL_ARGS_ASSERT_GROK_BSLASH_N \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, char *backref_parse_start, char ch);
+# define PERL_ARGS_ASSERT_HANDLE_NAMED_BACKREF \
+ assert(pRExC_state); assert(flagp); assert(backref_parse_start)
+
+STATIC bool
+S_handle_names_wildcard(pTHX_ const char *wname, const STRLEN wname_len, SV **prop_definition, AV **strings);
+# define PERL_ARGS_ASSERT_HANDLE_NAMES_WILDCARD \
+ assert(wname); assert(prop_definition); assert(strings)
+
+STATIC int
+S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, const char * const s, char **updated_parse_ptr, AV **posix_warnings, const bool check_only);
+# define PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX \
+ assert(pRExC_state); assert(s)
+
+STATIC regnode_offset
+S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV **return_invlist, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS \
+ assert(pRExC_state); assert(flagp)
+
+STATIC SV *
+S_handle_user_defined_property(pTHX_ const char *name, const STRLEN name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, SV *contents, bool *user_defined_ptr, SV *msg, const STRLEN level);
+# define PERL_ARGS_ASSERT_HANDLE_USER_DEFINED_PROPERTY \
+ assert(name); assert(contents); assert(user_defined_ptr); assert(msg)
+
+STATIC void
+S_nextchar(pTHX_ RExC_state_t *pRExC_state);
+# define PERL_ARGS_ASSERT_NEXTCHAR \
+ assert(pRExC_state)
+
+STATIC U8
+S_optimize_regclass(pTHX_ RExC_state_t *pRExC_state, SV *cp_list, SV *only_utf8_locale_list, SV *upper_latin1_only_utf8_matches, const U32 has_runtime_dependency, const U32 posixl, U8 *anyof_flags, bool *invert, regnode_offset *ret, I32 *flagp);
+# define PERL_ARGS_ASSERT_OPTIMIZE_REGCLASS \
+ assert(pRExC_state); assert(anyof_flags); assert(invert); assert(ret); \
+ assert(flagp)
+
+STATIC void
+S_output_posix_warnings(pTHX_ RExC_state_t *pRExC_state, AV *posix_warnings);
+# define PERL_ARGS_ASSERT_OUTPUT_POSIX_WARNINGS \
+ assert(pRExC_state); assert(posix_warnings)
+
+STATIC void
+S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state);
+# define PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS \
+ assert(pRExC_state)
+
+STATIC SV *
+S_parse_uniprop_string(pTHX_ const char * const name, Size_t name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, AV **strings, bool *user_defined_ptr, SV *msg, const STRLEN level);
+# define PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING \
+ assert(name); assert(user_defined_ptr); assert(msg)
+
+PERL_STATIC_NO_RET void
+S_re_croak(pTHX_ bool utf8, const char *pat, ...)
+ __attribute__noreturn__
+ __attribute__format__(__printf__,pTHX_2,pTHX_3);
+# define PERL_ARGS_ASSERT_RE_CROAK \
+ assert(pat)
+
+STATIC regnode_offset
+S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_REG \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_reg1node(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg);
+# define PERL_ARGS_ASSERT_REG1NODE \
+ assert(pRExC_state)
+
+STATIC regnode_offset
+S_reg2node(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2);
+# define PERL_ARGS_ASSERT_REG2NODE \
+ assert(pRExC_state)
+
+STATIC regnode_offset
+S_reg_la_NOTHING(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type);
+# define PERL_ARGS_ASSERT_REG_LA_NOTHING \
+ assert(pRExC_state); assert(type)
+
+STATIC regnode_offset
+S_reg_la_OPFAIL(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type);
+# define PERL_ARGS_ASSERT_REG_LA_OPFAIL \
+ assert(pRExC_state); assert(type)
+
+STATIC regnode_offset
+S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op);
+# define PERL_ARGS_ASSERT_REG_NODE \
+ assert(pRExC_state)
+
+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 regnode_offset
+S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_REGATOM \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth);
+# define PERL_ARGS_ASSERT_REGBRANCH \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+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, bool optimizable, SV **ret_invlist);
+# define PERL_ARGS_ASSERT_REGCLASS \
+ assert(pRExC_state); assert(flagp)
+
+STATIC unsigned int
+S_regex_set_precedence(const U8 my_operator)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGEX_SET_PRECEDENCE
+
+STATIC void
+S_reginsert(pTHX_ RExC_state_t *pRExC_state, const U8 op, const regnode_offset operand, const U32 depth);
+# define PERL_ARGS_ASSERT_REGINSERT \
+ assert(pRExC_state)
+
+STATIC regnode_offset
+S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const STRLEN extra_len);
+# define PERL_ARGS_ASSERT_REGNODE_GUTS \
+ assert(pRExC_state)
+
+STATIC regnode_offset
+S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_REGPIECE \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_regpnode(pTHX_ RExC_state_t *pRExC_state, U8 op, SV *arg);
+# define PERL_ARGS_ASSERT_REGPNODE \
+ assert(pRExC_state); assert(arg)
+
+STATIC bool
+S_regtail(pTHX_ RExC_state_t *pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGTAIL \
+ assert(pRExC_state); assert(p); assert(val)
+
+STATIC void
+S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx);
+# define PERL_ARGS_ASSERT_SET_REGEX_PV \
+ assert(pRExC_state); assert(Rx)
+
+STATIC void
+S_skip_to_be_ignored_text(pTHX_ RExC_state_t *pRExC_state, char **p, const bool force_to_xmod);
+# define PERL_ARGS_ASSERT_SKIP_TO_BE_IGNORED_TEXT \
+ assert(pRExC_state); assert(p)
+
+# if defined(DEBUGGING)
+STATIC regnode_offset
+S_regnode_guts_debug(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len);
+# define PERL_ARGS_ASSERT_REGNODE_GUTS_DEBUG \
+ assert(pRExC_state)
+
+STATIC bool
+S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGTAIL_STUDY \
+ assert(pRExC_state); assert(p); assert(val)
+
+# if defined(ENABLE_REGEX_SETS_DEBUGGING)
+STATIC void
+S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV *stack, const IV fence, AV *fence_stack);
+# define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES \
+ assert(pRExC_state); assert(stack); assert(fence_stack)
+
+# endif
+# endif /* defined(DEBUGGING) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE Size_t
+S_find_first_differing_byte_pos(const U8 *s1, const U8 *s2, const Size_t max);
+# define PERL_ARGS_ASSERT_FIND_FIRST_DIFFERING_BYTE_POS \
+ assert(s1); assert(s2)
+
+PERL_STATIC_INLINE char *
+S_reg_skipcomment(RExC_state_t *pRExC_state, char *p);
+# define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \
+ assert(pRExC_state); assert(p)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGCOMP_C) */
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
+PERL_CALLCONV void
+Perl_populate_bitmap_from_invlist(pTHX_ SV *invlist, const UV offset, const U8 *bitmap, const Size_t len)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_POPULATE_BITMAP_FROM_INVLIST \
+ assert(invlist); assert(bitmap)
+
+PERL_CALLCONV void
+Perl_populate_invlist_from_bitmap(pTHX_ const U8 *bitmap, const Size_t bitmap_len, SV **invlist, const UV offset)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_POPULATE_INVLIST_FROM_BITMAP \
+ assert(bitmap); assert(invlist)
+
+#endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C) */
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+ defined(PERL_IN_TOKE_C)
+PERL_CALLCONV bool
+Perl_is_grapheme(pTHX_ const U8 *strbeg, const U8 *s, const U8 *strend, const UV cp)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_IS_GRAPHEME \
+ assert(strbeg); assert(s); assert(strend)
+
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+ defined(PERL_IN_UTF8_C)
+PERL_CALLCONV UV
+Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags);
+# define PERL_ARGS_ASSERT__TO_FOLD_LATIN1 \
+ assert(p); assert(lenp)
#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV UV Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags);
-#define PERL_ARGS_ASSERT__TO_FOLD_LATIN1 \
- assert(p); assert(lenp)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV SV* Perl_invlist_clone(pTHX_ SV* const invlist, SV* newlist);
-#define PERL_ARGS_ASSERT_INVLIST_CLONE \
- assert(invlist)
-#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV bool Perl_regcurly(const char *s, const char *e, const char * result[5])
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGCURLY \
- assert(s); assert(e)
-
-#endif
+PERL_CALLCONV bool
+Perl_regcurly(const char *s, const char *e, const char *result[5])
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGCURLY \
+ assert(s); assert(e)
+
+#endif
+#if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
+STATIC U8
+S_put_charclass_bitmap_innards(pTHX_ SV *sv, char *bitmap, SV *nonbitmap_invlist, SV *only_utf8_locale_invlist, const regnode * const node, const U8 flags, const bool force_as_is_display);
+# define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \
+ assert(sv)
+
+STATIC SV *
+S_put_charclass_bitmap_innards_common(pTHX_ SV *invlist, SV *posixes, SV *only_utf8, SV *not_utf8, SV *only_utf8_locale, const bool invert);
+# define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON \
+ assert(invlist)
+
+STATIC void
+S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV *invlist);
+# define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST \
+ assert(sv); assert(invlist)
+
+STATIC void
+S_put_code_point(pTHX_ SV *sv, UV c);
+# 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);
+# define PERL_ARGS_ASSERT_PUT_RANGE \
+ assert(sv)
+
+STATIC void
+S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
+# define PERL_ARGS_ASSERT_REGDUMP_EXTFLAGS
+
+STATIC void
+S_regdump_intflags(pTHX_ const char *lead, const U32 flags);
+# define PERL_ARGS_ASSERT_REGDUMP_INTFLAGS
+
+#endif /* defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING) */
+#if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+STATIC void
+S__append_range_to_invlist(pTHX_ SV * const invlist, const UV start, const UV end);
+# define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
+ assert(invlist)
+
+STATIC void
+S_initialize_invlist_guts(pTHX_ SV *invlist, const Size_t initial_size);
+# define PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS \
+ assert(invlist)
+
+STATIC void
+S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src);
+# define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC \
+ assert(dest); assert(src)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE UV *
+S__invlist_array_init(SV * const invlist, const bool will_have_0)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \
+ assert(invlist)
+
+PERL_STATIC_INLINE IV *
+S_get_invlist_previous_index_addr(SV *invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \
+ assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_clear(pTHX_ SV *invlist);
+# define PERL_ARGS_ASSERT_INVLIST_CLEAR \
+ assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_max(const SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_MAX \
+ assert(invlist)
+
+PERL_STATIC_INLINE IV
+S_invlist_previous_index(SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \
+ assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_set_previous_index(SV * const invlist, const IV index);
+# define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \
+ assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_trim(SV *invlist);
+# define PERL_ARGS_ASSERT_INVLIST_TRIM \
+ assert(invlist)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD) */
+#if defined(PERL_IN_REGCOMP_STUDY_C)
+STATIC SV *
+S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass * const node);
+# define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \
+ assert(pRExC_state); assert(node)
+
+STATIC SV *
+S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST \
+ assert(pRExC_state); assert(node)
+
+STATIC void
+S_rck_elide_nothing(pTHX_ regnode *node);
+# define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING \
+ assert(node)
+
+STATIC void
+S_ssc_add_range(pTHX_ regnode_ssc *ssc, UV const start, UV const end);
+# define PERL_ARGS_ASSERT_SSC_ADD_RANGE \
+ assert(ssc)
+
+STATIC void
+S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *and_with);
+# define PERL_ARGS_ASSERT_SSC_AND \
+ assert(pRExC_state); assert(ssc); assert(and_with)
+
+STATIC void
+S_ssc_anything(pTHX_ regnode_ssc *ssc);
+# define PERL_ARGS_ASSERT_SSC_ANYTHING \
+ assert(ssc)
+
+STATIC void
+S_ssc_clear_locale(regnode_ssc *ssc);
+# define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE \
+ assert(ssc)
+
+STATIC void
+S_ssc_cp_and(pTHX_ regnode_ssc *ssc, UV const cp);
+# define PERL_ARGS_ASSERT_SSC_CP_AND \
+ assert(ssc)
+
+STATIC void
+S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV * const invlist, const bool invert_2nd);
+# define PERL_ARGS_ASSERT_SSC_INTERSECTION \
+ assert(ssc); assert(invlist)
+
+STATIC int
+S_ssc_is_anything(const regnode_ssc *ssc)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SSC_IS_ANYTHING \
+ assert(ssc)
+
+STATIC int
+S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT \
+ assert(pRExC_state); assert(ssc)
+
+STATIC void
+S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *or_with);
+# define PERL_ARGS_ASSERT_SSC_OR \
+ assert(pRExC_state); assert(ssc); assert(or_with)
+
+STATIC void
+S_ssc_union(pTHX_ regnode_ssc *ssc, SV * const invlist, const bool invert_2nd);
+# define PERL_ARGS_ASSERT_SSC_UNION \
+ assert(ssc); assert(invlist)
+
+STATIC void
+S_unwind_scan_frames(pTHX_ const void *p);
+# define PERL_ARGS_ASSERT_UNWIND_SCAN_FRAMES \
+ assert(p)
+
+#endif /* defined(PERL_IN_REGCOMP_STUDY_C) */
#if defined(PERL_IN_REGEXEC_C)
-STATIC LB_enum S_advance_one_LB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADVANCE_ONE_LB \
- assert(curpos); assert(strend)
-
-STATIC SB_enum S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
- __attribute__warn_unused_result__;
-#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, const bool skip_Extend_Format)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADVANCE_ONE_WB \
- assert(curpos); assert(strend)
-
-STATIC GCB_enum S_backup_one_GCB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BACKUP_ONE_GCB \
- assert(strbeg); assert(curpos)
-
-STATIC LB_enum S_backup_one_LB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BACKUP_ONE_LB \
- assert(strbeg); assert(curpos)
-
-STATIC SB_enum S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
- __attribute__warn_unused_result__;
-#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__;
-#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__;
-#define PERL_ARGS_ASSERT_FIND_BYCLASS \
- assert(prog); assert(c); assert(s); assert(strend)
-
-STATIC U8 * S_find_next_masked(U8 * s, const U8 * send, const U8 byte, const U8 mask)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_NEXT_MASKED \
- assert(s); assert(send)
-
-STATIC U8 * S_find_span_end(U8* s, const U8 * send, const U8 span_byte)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_SPAN_END \
- assert(s); assert(send)
-
-STATIC U8 * S_find_span_end_mask(U8 * s, const U8 * send, const U8 span_byte, const U8 mask)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_SPAN_END_MASK \
- assert(s); assert(send)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 S_foldEQ_latin1_s2_folded(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1_S2_FOLDED \
- assert(a); assert(b)
-#endif
-STATIC bool S_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISFOO_LC
-
-STATIC bool S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character, const U8* e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
- assert(character); assert(e)
-
-STATIC bool S_isGCB(pTHX_ const GCB_enum before, const GCB_enum after, const U8 * const strbeg, const U8 * const curpos, const bool utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISGCB \
- assert(strbeg); assert(curpos)
-
-STATIC bool S_isLB(pTHX_ LB_enum before, LB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISLB \
- assert(strbeg); assert(curpos); assert(strend)
-
-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__;
-#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__;
-#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__;
-#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
- assert(rex); assert(scan)
-
-STATIC void S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p _pDEPTH);
-#define PERL_ARGS_ASSERT_REGCP_RESTORE \
- assert(rex); assert(maxopenparen_p)
-STATIC void S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p _pDEPTH);
-#define PERL_ARGS_ASSERT_REGCPPOP \
- assert(rex); assert(maxopenparen_p)
-STATIC CHECKPOINT S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen _pDEPTH);
-#define PERL_ARGS_ASSERT_REGCPPUSH \
- assert(rex)
-STATIC U8* S_reghop3(U8 *s, SSize_t off, const U8 *lim)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGHOP3 \
- assert(s); assert(lim)
-
-STATIC U8* S_reghop4(U8 *s, SSize_t off, const U8 *llim, const U8 *rlim)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGHOP4 \
- assert(s); assert(llim); assert(rlim)
-
-STATIC U8* S_reghopmaybe3(U8 *s, SSize_t off, const U8 * const lim)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGHOPMAYBE3 \
- assert(s); assert(lim)
-
-STATIC bool S_reginclass(pTHX_ regexp * const prog, const regnode * const n, const U8 * const p, const U8 * const p_end, bool const utf8_target)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGINCLASS \
- assert(n); assert(p); assert(p_end)
-
-STATIC SSize_t S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGMATCH \
- assert(reginfo); assert(startpos); assert(prog)
-
-STATIC I32 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, char *loceol, regmatch_info *const reginfo, I32 max _pDEPTH)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGREPEAT \
- assert(prog); assert(startposp); assert(p); assert(loceol); assert(reginfo)
-
-STATIC bool S_regtry(pTHX_ regmatch_info *reginfo, char **startposp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGTRY \
- assert(reginfo); assert(startposp)
-
-STATIC bool S_to_byte_substr(pTHX_ regexp * prog);
-#define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR \
- assert(prog)
-STATIC void S_to_utf8_substr(pTHX_ regexp * prog);
-#define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR \
- assert(prog)
-#endif
+STATIC LB_enum
+S_advance_one_LB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ADVANCE_ONE_LB \
+ assert(curpos); assert(strend)
+
+STATIC SB_enum
+S_advance_one_SB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# 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, const bool skip_Extend_Format)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ADVANCE_ONE_WB \
+ assert(curpos); assert(strend)
+
+STATIC GCB_enum
+S_backup_one_GCB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_BACKUP_ONE_GCB \
+ assert(strbeg); assert(curpos)
+
+STATIC LB_enum
+S_backup_one_LB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_BACKUP_ONE_LB \
+ assert(strbeg); assert(curpos)
+
+STATIC SB_enum
+S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# 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__;
+# 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__;
+# define PERL_ARGS_ASSERT_FIND_BYCLASS \
+ assert(prog); assert(c); assert(s); assert(strend)
+
+STATIC U8 *
+S_find_next_masked(U8 *s, const U8 *send, const U8 byte, const U8 mask)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_NEXT_MASKED \
+ assert(s); assert(send)
+
+STATIC U8 *
+S_find_span_end(U8 *s, const U8 *send, const U8 span_byte)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_SPAN_END \
+ assert(s); assert(send)
+
+STATIC U8 *
+S_find_span_end_mask(U8 *s, const U8 *send, const U8 span_byte, const U8 mask)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_SPAN_END_MASK \
+ assert(s); assert(send)
+
+STATIC bool
+S_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISFOO_LC
+
+STATIC bool
+S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8 *character, const U8 *e)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
+ assert(character); assert(e)
+
+STATIC bool
+S_isGCB(pTHX_ const GCB_enum before, const GCB_enum after, const U8 * const strbeg, const U8 * const curpos, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISGCB \
+ assert(strbeg); assert(curpos)
+
+STATIC bool
+S_isLB(pTHX_ LB_enum before, LB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISLB \
+ assert(strbeg); assert(curpos); assert(strend)
+
+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__;
+# 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__;
+# 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__;
+# define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
+ assert(rex); assert(scan)
+
+STATIC void
+S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p comma_pDEPTH);
+# define PERL_ARGS_ASSERT_REGCP_RESTORE \
+ assert(rex); assert(maxopenparen_p)
+
+STATIC void
+S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p comma_pDEPTH);
+# define PERL_ARGS_ASSERT_REGCPPOP \
+ assert(rex); assert(maxopenparen_p)
+
+STATIC CHECKPOINT
+S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen comma_pDEPTH);
+# define PERL_ARGS_ASSERT_REGCPPUSH \
+ assert(rex)
+
+STATIC U8 *
+S_reghop3(U8 *s, SSize_t off, const U8 *lim)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGHOP3 \
+ assert(s); assert(lim)
+
+STATIC U8 *
+S_reghop4(U8 *s, SSize_t off, const U8 *llim, const U8 *rlim)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGHOP4 \
+ assert(s); assert(llim); assert(rlim)
+
+STATIC U8 *
+S_reghopmaybe3(U8 *s, SSize_t off, const U8 * const lim)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGHOPMAYBE3 \
+ assert(s); assert(lim)
+
+STATIC bool
+S_reginclass(pTHX_ regexp * const prog, const regnode * const n, const U8 * const p, const U8 * const p_end, bool const utf8_target)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGINCLASS \
+ assert(n); assert(p); assert(p_end)
+
+STATIC SSize_t
+S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGMATCH \
+ assert(reginfo); assert(startpos); assert(prog)
+
+STATIC I32
+S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, char *loceol, regmatch_info * const reginfo, I32 max comma_pDEPTH)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGREPEAT \
+ assert(prog); assert(startposp); assert(p); assert(loceol); assert(reginfo); \
+ assert(max)
+
+STATIC bool
+S_regtry(pTHX_ regmatch_info *reginfo, char **startposp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGTRY \
+ assert(reginfo); assert(startposp)
+
+STATIC bool
+S_to_byte_substr(pTHX_ regexp *prog);
+# define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR \
+ assert(prog)
+
+STATIC void
+S_to_utf8_substr(pTHX_ regexp *prog);
+# define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR \
+ assert(prog)
+
+# if defined(DEBUGGING)
+STATIC void
+S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb);
+# define PERL_ARGS_ASSERT_DEBUG_START_MATCH \
+ assert(prog); assert(start); assert(end); assert(blurb)
+
+STATIC void
+S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8, const U32 depth);
+# define PERL_ARGS_ASSERT_DUMP_EXEC_POS \
+ assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); \
+ assert(loc_reg_starttry)
+
+PERL_CALLCONV int
+Perl_re_exec_indentf(pTHX_ const char *fmt, U32 depth, ...)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_RE_EXEC_INDENTF \
+ assert(fmt)
+
+# endif /* defined(DEBUGGING) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE void
+S_capture_clear(pTHX_ regexp *rex, U16 from_ix, U16 to_ix, const char *str comma_pDEPTH);
+# define PERL_ARGS_ASSERT_CAPTURE_CLEAR \
+ assert(rex); assert(str)
+
+PERL_STATIC_INLINE I32
+S_foldEQ_latin1_s2_folded(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ_LATIN1_S2_FOLDED \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE void
+S_unwind_paren(pTHX_ regexp *rex, U32 lp, U32 lcp comma_pDEPTH);
+# define PERL_ARGS_ASSERT_UNWIND_PAREN \
+ assert(rex)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGEXEC_C) */
+#if defined(PERL_IN_REGEX_ENGINE)
+
+# if defined(DEBUGGING)
+PERL_CALLCONV void
+Perl_debug_peep(pTHX_ const char *str, const RExC_state_t *pRExC_state, regnode *scan, U32 depth, U32 flags)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DEBUG_PEEP \
+ assert(str); assert(pRExC_state)
+
+PERL_CALLCONV void
+Perl_debug_show_study_flags(pTHX_ U32 flags, const char *open_str, const char *close_str)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DEBUG_SHOW_STUDY_FLAGS \
+ assert(open_str); assert(close_str)
+
+PERL_CALLCONV void
+Perl_debug_studydata(pTHX_ const char *where, scan_data_t *data, U32 depth, int is_inf, SSize_t min, SSize_t stopmin, SSize_t delta)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DEBUG_STUDYDATA \
+ assert(where)
+
+PERL_CALLCONV const regnode *
+Perl_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV *sv, I32 indent, U32 depth)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DUMPUNTIL \
+ assert(r); assert(start); assert(node); assert(sv)
+
+PERL_CALLCONV int
+Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_RE_INDENTF \
+ assert(fmt)
+
+PERL_CALLCONV int
+Perl_re_printf(pTHX_ const char *fmt, ...)
+ __attribute__visibility__("hidden")
+ __attribute__format__(__printf__,pTHX_1,pTHX_2);
+# define PERL_ARGS_ASSERT_RE_PRINTF \
+ assert(fmt)
+
+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__visibility__("hidden");
+# define PERL_ARGS_ASSERT_REGPROP \
+ assert(sv); assert(o)
+
+# endif /* defined(DEBUGGING) */
+# if defined(PERL_EXT_RE_BUILD)
+PERL_CALLCONV SV *
+Perl_get_re_gclass_aux_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_RE_GCLASS_AUX_DATA \
+ assert(node)
+
+# else
+PERL_CALLCONV SV *
+Perl_get_regclass_aux_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_REGCLASS_AUX_DATA \
+ assert(node)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE bool
+Perl_check_regnode_after(pTHX_ const regnode *p, const STRLEN extra)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CHECK_REGNODE_AFTER
+
+PERL_STATIC_INLINE regnode *
+Perl_regnext(pTHX_ const regnode *p)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGNEXT
+
+PERL_STATIC_INLINE regnode *
+Perl_regnode_after(pTHX_ const regnode *p, bool varies)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGNODE_AFTER
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGEX_ENGINE) */
#if defined(PERL_IN_SCOPE_C)
-STATIC void S_save_pushptri32ptr(pTHX_ void *const ptr1, const I32 i, void *const ptr2, const int type);
-#define PERL_ARGS_ASSERT_SAVE_PUSHPTRI32PTR
-STATIC SV* S_save_scalar_at(pTHX_ SV **sptr, const U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_SCALAR_AT \
- assert(sptr)
-#endif
-#if defined(PERL_IN_SV_C)
-STATIC char * S_F0convert(NV nv, char *const endbuf, STRLEN *const len);
-#define PERL_ARGS_ASSERT_F0CONVERT \
- assert(endbuf); assert(len)
-STATIC void S_anonymise_cv_maybe(pTHX_ GV *gv, CV *cv);
-#define PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE \
- assert(gv); assert(cv)
-STATIC void S_assert_uft8_cache_coherent(pTHX_ const char *const func, STRLEN from_cache, STRLEN real, SV *const sv);
-#define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT \
- assert(func); assert(sv)
-STATIC bool S_curse(pTHX_ SV * const sv, const bool check_refcnt);
-#define PERL_ARGS_ASSERT_CURSE \
- assert(sv)
-STATIC STRLEN S_expect_number(pTHX_ const char **const pattern)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_EXPECT_NUMBER \
- assert(pattern)
-
-STATIC SSize_t S_find_array_subscript(pTHX_ const AV *const av, const SV *const val);
-#define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT \
- assert(val)
-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 match, const char **desc_p);
-#define PERL_ARGS_ASSERT_FIND_UNINIT_VAR \
- assert(desc_p)
-STATIC bool S_glob_2number(pTHX_ GV* const gv);
-#define PERL_ARGS_ASSERT_GLOB_2NUMBER \
- assert(gv)
-STATIC void S_glob_assign_glob(pTHX_ SV *const dsv, SV *const ssv, const int dtype);
-#define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \
- assert(dsv); assert(ssv)
-STATIC SV * S_more_sv(pTHX);
-#define PERL_ARGS_ASSERT_MORE_SV
-STATIC void S_not_a_number(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_NOT_A_NUMBER \
- assert(sv)
-STATIC void S_not_incrementable(pTHX_ SV *const sv);
-#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__;
-#define PERL_ARGS_ASSERT_PTR_TABLE_FIND \
- assert(tbl)
-
-STATIC bool S_sv_2iuv_common(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2IUV_COMMON \
- assert(sv)
-STATIC void S_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_ADD_ARENA \
- assert(ptr)
-STATIC const char * S_sv_display(pTHX_ SV *const sv, char *tmpbuf, STRLEN tmpbuf_size);
-#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);
-#define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY \
- assert(s); assert(target); assert(end)
-STATIC STRLEN S_sv_pos_u2b_cached(pTHX_ SV *const sv, MAGIC **const mgp, const U8 *const start, const U8 *const send, STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED \
- assert(sv); assert(mgp); assert(start); assert(send)
-STATIC STRLEN S_sv_pos_u2b_forwards(const U8 *const start, const U8 *const send, STRLEN *const uoffset, bool *const at_end);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS \
- assert(start); assert(send); assert(uoffset); assert(at_end)
-STATIC STRLEN S_sv_pos_u2b_midway(const U8 *const start, const U8 *send, STRLEN uoffset, const STRLEN uend);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY \
- assert(start); assert(send)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void S_sv_unglob(pTHX_ SV *const sv, U32 flags);
-#define PERL_ARGS_ASSERT_SV_UNGLOB \
- assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE char * S_uiv_2buf(char *const buf, const IV iv, UV uv, const int is_uv, char **const peob)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UIV_2BUF \
- assert(buf); assert(peob)
-#endif
+STATIC void
+S_save_pushptri32ptr(pTHX_ void * const ptr1, const I32 i, void * const ptr2, const int type);
+# define PERL_ARGS_ASSERT_SAVE_PUSHPTRI32PTR
-STATIC void S_utf8_mg_len_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, const STRLEN ulen);
-#define PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE \
- assert(sv); assert(mgp)
-STATIC void S_utf8_mg_pos_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, const STRLEN byte, const STRLEN utf8, const STRLEN blen);
-#define PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE \
- assert(sv); assert(mgp)
-STATIC I32 S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask);
-#define PERL_ARGS_ASSERT_VISIT \
- assert(f)
-# if defined(USE_ITHREADS)
-STATIC SV* S_sv_dup_common(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DUP_COMMON \
- assert(ssv); assert(param)
-
-STATIC SV ** S_sv_dup_inc_multiple(pTHX_ SV *const *source, SV **dest, SSize_t items, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \
- assert(source); assert(dest); assert(param)
-STATIC void S_unreferenced_to_tmp_stack(pTHX_ AV *const unreferenced);
-#define PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK \
- assert(unreferenced)
-# endif
-#endif
-#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-PERL_CALLCONV SV * Perl_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, const SV *const keyname, SSize_t aindex, int subscript_type)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VARNAME
+STATIC SV *
+S_save_scalar_at(pTHX_ SV **sptr, const U32 flags);
+# define PERL_ARGS_ASSERT_SAVE_SCALAR_AT \
+ assert(sptr)
-#endif
+#endif /* defined(PERL_IN_SCOPE_C) */
+#if defined(PERL_IN_SV_C)
+STATIC char *
+S_F0convert(NV nv, char * const endbuf, STRLEN * const len);
+# define PERL_ARGS_ASSERT_F0CONVERT \
+ assert(endbuf); assert(len)
+
+STATIC void
+S_anonymise_cv_maybe(pTHX_ GV *gv, CV *cv);
+# define PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE \
+ assert(gv); assert(cv)
+
+STATIC void
+S_assert_uft8_cache_coherent(pTHX_ const char * const func, STRLEN from_cache, STRLEN real, SV * const sv);
+# define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT \
+ assert(func); assert(sv)
+
+STATIC bool
+S_curse(pTHX_ SV * const sv, const bool check_refcnt);
+# define PERL_ARGS_ASSERT_CURSE \
+ assert(sv)
+
+STATIC STRLEN
+S_expect_number(pTHX_ const char ** const pattern)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_EXPECT_NUMBER \
+ assert(pattern)
+
+STATIC SSize_t
+S_find_array_subscript(pTHX_ const AV * const av, const SV * const val);
+# define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT \
+ assert(val)
+
+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 match, const char **desc_p);
+# define PERL_ARGS_ASSERT_FIND_UNINIT_VAR \
+ assert(desc_p)
+
+STATIC bool
+S_glob_2number(pTHX_ GV * const gv);
+# define PERL_ARGS_ASSERT_GLOB_2NUMBER \
+ assert(gv)
+
+STATIC void
+S_glob_assign_glob(pTHX_ SV * const dsv, SV * const ssv, const int dtype);
+# define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \
+ assert(dsv); assert(ssv)
+
+PERL_CALLCONV SV *
+Perl_more_sv(pTHX);
+# define PERL_ARGS_ASSERT_MORE_SV
+
+STATIC void
+S_not_a_number(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_NOT_A_NUMBER \
+ assert(sv)
+
+STATIC void
+S_not_incrementable(pTHX_ SV * const sv);
+# 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__;
+# define PERL_ARGS_ASSERT_PTR_TABLE_FIND \
+ assert(tbl)
+
+STATIC bool
+S_sv_2iuv_common(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_2IUV_COMMON \
+ assert(sv)
+
+STATIC void
+S_sv_add_arena(pTHX_ char * const ptr, const U32 size, const U32 flags);
+# define PERL_ARGS_ASSERT_SV_ADD_ARENA \
+ assert(ptr)
+
+STATIC const char *
+S_sv_display(pTHX_ SV * const sv, char *tmpbuf, STRLEN tmpbuf_size);
+# 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);
+# define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY \
+ assert(s); assert(target); assert(end)
+
+STATIC STRLEN
+S_sv_pos_u2b_cached(pTHX_ SV * const sv, MAGIC ** const mgp, const U8 * const start, const U8 * const send, STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0);
+# define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED \
+ assert(sv); assert(mgp); assert(start); assert(send)
+
+STATIC STRLEN
+S_sv_pos_u2b_forwards(const U8 * const start, const U8 * const send, STRLEN * const uoffset, bool * const at_end, bool *canonical_position);
+# define PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS \
+ assert(start); assert(send); assert(uoffset); assert(at_end); assert(canonical_position)
+
+STATIC STRLEN
+S_sv_pos_u2b_midway(const U8 * const start, const U8 *send, STRLEN uoffset, const STRLEN uend);
+# define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY \
+ assert(start); assert(send)
+
+STATIC void
+S_utf8_mg_len_cache_update(pTHX_ SV * const sv, MAGIC ** const mgp, const STRLEN ulen);
+# define PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE \
+ assert(sv); assert(mgp)
+
+STATIC void
+S_utf8_mg_pos_cache_update(pTHX_ SV * const sv, MAGIC ** const mgp, const STRLEN byte, const STRLEN utf8, const STRLEN blen);
+# define PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE \
+ assert(sv); assert(mgp)
+
+STATIC I32
+S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask);
+# define PERL_ARGS_ASSERT_VISIT \
+ assert(f)
+
+# if defined(DEBUGGING)
+STATIC void
+S_del_sv(pTHX_ SV *p);
+# define PERL_ARGS_ASSERT_DEL_SV \
+ assert(p)
+
+# endif
+# if !defined(NV_PRESERVES_UV)
+# if defined(DEBUGGING)
+STATIC int
+S_sv_2iuv_non_preserve(pTHX_ SV * const sv, I32 numtype);
+# define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
+ assert(sv)
+
+# else
+STATIC int
+S_sv_2iuv_non_preserve(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
+ assert(sv)
+
+# endif
+# endif /* !defined(NV_PRESERVES_UV) */
+# if defined(PERL_DEBUG_READONLY_COW)
+STATIC void
+S_sv_buf_to_rw(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_BUF_TO_RW \
+ assert(sv)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE void
+S_sv_unglob(pTHX_ SV * const sv, U32 flags);
+# define PERL_ARGS_ASSERT_SV_UNGLOB \
+ assert(sv)
+
+PERL_STATIC_INLINE char *
+S_uiv_2buf(char * const buf, const IV iv, UV uv, const int is_uv, char ** const peob)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UIV_2BUF \
+ assert(buf); assert(peob)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+# if defined(USE_ITHREADS)
+STATIC SV *
+S_sv_dup_common(pTHX_ const SV * const ssv, CLONE_PARAMS * const param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_DUP_COMMON \
+ assert(ssv); assert(param)
+
+STATIC void
+S_sv_dup_hvaux(pTHX_ const SV * const ssv, SV *dsv, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_SV_DUP_HVAUX \
+ assert(ssv); assert(dsv); assert(param)
+
+STATIC SV **
+S_sv_dup_inc_multiple(pTHX_ SV * const *source, SV **dest, SSize_t items, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \
+ assert(source); assert(dest); assert(param)
+
+STATIC void
+S_unreferenced_to_tmp_stack(pTHX_ AV * const unreferenced);
+# define PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK \
+ assert(unreferenced)
+
+# endif /* defined(USE_ITHREADS) */
+#endif /* defined(PERL_IN_SV_C) */
#if defined(PERL_IN_TOKE_C)
-STATIC int S_ao(pTHX_ int toketype);
-#define PERL_ARGS_ASSERT_AO
-STATIC void S_check_uni(pTHX);
-#define PERL_ARGS_ASSERT_CHECK_UNI
-STATIC void S_checkcomma(pTHX_ const char *s, const char *name, const char *what);
-#define PERL_ARGS_ASSERT_CHECKCOMMA \
- assert(s); assert(name); assert(what)
-STATIC char * S_filter_gets(pTHX_ SV *sv, STRLEN append)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FILTER_GETS \
- assert(sv)
-
-STATIC HV * S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_IN_MY_STASH \
- assert(pkgname)
-
-STATIC void S_force_ident(pTHX_ const char *s, int kind);
-#define PERL_ARGS_ASSERT_FORCE_IDENT \
- assert(s)
-STATIC void S_force_ident_maybe_lex(pTHX_ char pit);
-#define PERL_ARGS_ASSERT_FORCE_IDENT_MAYBE_LEX
-STATIC void S_force_next(pTHX_ I32 type);
-#define PERL_ARGS_ASSERT_FORCE_NEXT
-STATIC char* S_force_strict_version(pTHX_ char *s);
-#define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION \
- assert(s)
-STATIC char* S_force_version(pTHX_ char *s, int guessing);
-#define PERL_ARGS_ASSERT_FORCE_VERSION \
- assert(s)
-STATIC char* S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack);
-#define PERL_ARGS_ASSERT_FORCE_WORD \
- assert(start)
-STATIC SV* S_get_and_check_backslash_N_name_wrapper(pTHX_ const char* s, const char* const e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME_WRAPPER \
- assert(s); assert(e)
-
-STATIC void S_incline(pTHX_ const char *s, const char *end);
-#define PERL_ARGS_ASSERT_INCLINE \
- assert(s); assert(end)
-STATIC int S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv);
-#define PERL_ARGS_ASSERT_INTUIT_METHOD \
- assert(s)
-STATIC int S_intuit_more(pTHX_ char *s, char *e);
-#define PERL_ARGS_ASSERT_INTUIT_MORE \
- assert(s); assert(e)
-STATIC I32 S_lop(pTHX_ I32 f, U8 x, char *s);
-#define PERL_ARGS_ASSERT_LOP \
- assert(s)
-PERL_STATIC_NO_RET void S_missingterm(pTHX_ char *s, STRLEN len)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MISSINGTERM
-
-STATIC SV* S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen, const char ** error_msg);
-#define PERL_ARGS_ASSERT_NEW_CONSTANT \
- assert(key); assert(sv)
-STATIC void S_no_op(pTHX_ const char *const what, char *s);
-#define PERL_ARGS_ASSERT_NO_OP \
- assert(what)
-STATIC void S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8, bool check_dollar, bool tick_warn);
-#define PERL_ARGS_ASSERT_PARSE_IDENT \
- assert(s); assert(d); assert(e)
-STATIC int S_pending_ident(pTHX);
-#define PERL_ARGS_ASSERT_PENDING_IDENT
-STATIC char* S_scan_const(pTHX_ char *start)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_CONST \
- assert(start)
-
-STATIC char* S_scan_formline(pTHX_ char *s)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_FORMLINE \
- assert(s)
-
-STATIC char* S_scan_heredoc(pTHX_ char *s)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_HEREDOC \
- assert(s)
-
-STATIC char* S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni);
-#define PERL_ARGS_ASSERT_SCAN_IDENT \
- assert(s); assert(dest)
-STATIC char* S_scan_inputsymbol(pTHX_ char *start)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_INPUTSYMBOL \
- assert(start)
-
-STATIC char* S_scan_pat(pTHX_ char *start, I32 type)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_PAT \
- assert(start)
-
-STATIC char* S_scan_subst(pTHX_ char *start)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_SUBST \
- assert(start)
-
-STATIC char* S_scan_trans(pTHX_ char *start)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_TRANS \
- assert(start)
-
-STATIC I32 S_sublex_done(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SUBLEX_DONE
-
-STATIC I32 S_sublex_push(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SUBLEX_PUSH
-
-STATIC I32 S_sublex_start(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SUBLEX_START
-
-STATIC char* S_swallow_bom(pTHX_ U8 *s)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SWALLOW_BOM \
- assert(s)
-
-STATIC char * S_tokenize_use(pTHX_ int is_use, char *s)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_TOKENIZE_USE \
- assert(s)
-
-STATIC SV* S_tokeq(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_TOKEQ \
- assert(sv)
-STATIC void S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len);
-#define PERL_ARGS_ASSERT_UPDATE_DEBUGGER_INFO
-STATIC int S_yywarn(pTHX_ const char *const s, U32 flags);
-#define PERL_ARGS_ASSERT_YYWARN \
- assert(s)
-#endif
+STATIC int
+S_ao(pTHX_ int toketype);
+# define PERL_ARGS_ASSERT_AO
+
+STATIC void
+S_check_uni(pTHX);
+# define PERL_ARGS_ASSERT_CHECK_UNI
+
+STATIC void
+S_checkcomma(pTHX_ const char *s, const char *name, const char *what);
+# define PERL_ARGS_ASSERT_CHECKCOMMA \
+ assert(s); assert(name); assert(what)
+
+STATIC char *
+S_filter_gets(pTHX_ SV *sv, STRLEN append)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FILTER_GETS \
+ assert(sv)
+
+STATIC HV *
+S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_IN_MY_STASH \
+ assert(pkgname)
+
+STATIC void
+S_force_ident(pTHX_ const char *s, int kind);
+# define PERL_ARGS_ASSERT_FORCE_IDENT \
+ assert(s)
+
+STATIC void
+S_force_ident_maybe_lex(pTHX_ char pit);
+# define PERL_ARGS_ASSERT_FORCE_IDENT_MAYBE_LEX
+
+STATIC void
+S_force_next(pTHX_ I32 type);
+# define PERL_ARGS_ASSERT_FORCE_NEXT
+
+STATIC char *
+S_force_strict_version(pTHX_ char *s);
+# define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION \
+ assert(s)
+
+STATIC char *
+S_force_version(pTHX_ char *s, int guessing);
+# define PERL_ARGS_ASSERT_FORCE_VERSION \
+ assert(s)
+
+STATIC char *
+S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack);
+# define PERL_ARGS_ASSERT_FORCE_WORD \
+ assert(start)
+
+STATIC SV *
+S_get_and_check_backslash_N_name_wrapper(pTHX_ const char *s, const char * const e)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME_WRAPPER \
+ assert(s); assert(e)
+
+STATIC void
+S_incline(pTHX_ const char *s, const char *end);
+# define PERL_ARGS_ASSERT_INCLINE \
+ assert(s); assert(end)
+
+STATIC int
+S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv);
+# define PERL_ARGS_ASSERT_INTUIT_METHOD \
+ assert(s)
+
+STATIC int
+S_intuit_more(pTHX_ char *s, char *e);
+# define PERL_ARGS_ASSERT_INTUIT_MORE \
+ assert(s); assert(e)
+
+STATIC I32
+S_lop(pTHX_ I32 f, U8 x, char *s);
+# define PERL_ARGS_ASSERT_LOP \
+ assert(s)
+
+PERL_STATIC_NO_RET void
+S_missingterm(pTHX_ char *s, STRLEN len)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_MISSINGTERM
+
+STATIC SV *
+S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen, const char **error_msg);
+# define PERL_ARGS_ASSERT_NEW_CONSTANT \
+ assert(key); assert(sv)
+
+STATIC void
+S_no_op(pTHX_ const char * const what, char *s);
+# define PERL_ARGS_ASSERT_NO_OP \
+ assert(what)
+
+STATIC void
+S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8, bool check_dollar, bool tick_warn);
+# define PERL_ARGS_ASSERT_PARSE_IDENT \
+ assert(s); assert(d); assert(e)
+
+STATIC int
+S_pending_ident(pTHX);
+# define PERL_ARGS_ASSERT_PENDING_IDENT
+
+STATIC char *
+S_scan_const(pTHX_ char *start)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_CONST \
+ assert(start)
+
+STATIC char *
+S_scan_formline(pTHX_ char *s)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_FORMLINE \
+ assert(s)
+
+STATIC char *
+S_scan_heredoc(pTHX_ char *s)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_HEREDOC \
+ assert(s)
+
+STATIC char *
+S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni);
+# define PERL_ARGS_ASSERT_SCAN_IDENT \
+ assert(s); assert(dest)
+
+STATIC char *
+S_scan_inputsymbol(pTHX_ char *start)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_INPUTSYMBOL \
+ assert(start)
+
+STATIC char *
+S_scan_pat(pTHX_ char *start, I32 type)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_PAT \
+ assert(start)
+
+STATIC char *
+S_scan_subst(pTHX_ char *start)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_SUBST \
+ assert(start)
+
+STATIC char *
+S_scan_trans(pTHX_ char *start)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_TRANS \
+ assert(start)
+
+STATIC I32
+S_sublex_done(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SUBLEX_DONE
+
+STATIC I32
+S_sublex_push(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SUBLEX_PUSH
+
+STATIC I32
+S_sublex_start(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SUBLEX_START
+
+STATIC char *
+S_swallow_bom(pTHX_ U8 *s)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SWALLOW_BOM \
+ assert(s)
+
+STATIC char *
+S_tokenize_use(pTHX_ int is_use, char *s)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_TOKENIZE_USE \
+ assert(s)
+
+STATIC SV *
+S_tokeq(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_TOKEQ \
+ assert(sv)
+
+STATIC void
+S_update_debugger_info(pTHX_ SV *orig_sv, const char * const buf, STRLEN len);
+# define PERL_ARGS_ASSERT_UPDATE_DEBUGGER_INFO
+
+STATIC int
+S_yywarn(pTHX_ const char * const s, U32 flags);
+# define PERL_ARGS_ASSERT_YYWARN \
+ assert(s)
+
+# if defined(DEBUGGING)
+STATIC void
+S_printbuf(pTHX_ const char * const fmt, const char * const s)
+ __attribute__format__(__printf__,pTHX_1,0);
+# define PERL_ARGS_ASSERT_PRINTBUF \
+ assert(fmt); assert(s)
+
+STATIC int
+S_tokereport(pTHX_ I32 rv, const YYSTYPE *lvalp);
+# define PERL_ARGS_ASSERT_TOKEREPORT \
+ assert(lvalp)
+
+# endif /* defined(DEBUGGING) */
+# if defined(PERL_CR_FILTER)
+STATIC I32
+S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+# define PERL_ARGS_ASSERT_CR_TEXTFILTER
+
+STATIC void
+S_strip_return(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_STRIP_RETURN \
+ assert(sv)
+
+# endif /* defined(PERL_CR_FILTER) */
+# if !defined(PERL_NO_UTF16_FILTER)
+STATIC U8 *
+S_add_utf16_textfilter(pTHX_ U8 * const s, bool reversed);
+# define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER \
+ assert(s)
+
+STATIC I32
+S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+# define PERL_ARGS_ASSERT_UTF16_TEXTFILTER \
+ assert(sv)
+
+# endif /* !defined(PERL_NO_UTF16_FILTER) */
+#endif /* defined(PERL_IN_TOKE_C) */
#if defined(PERL_IN_UNIVERSAL_C)
-STATIC bool S_isa_lookup(pTHX_ HV *stash, SV *namesv, const char * name, STRLEN len, U32 flags);
-STATIC bool S_sv_derived_from_svpvn(pTHX_ SV *sv, SV *namesv, const char * name, const STRLEN len, U32 flags);
+STATIC bool
+S_isa_lookup(pTHX_ HV *stash, SV *namesv, const char *name, STRLEN len, U32 flags);
+
+STATIC bool
+S_sv_derived_from_svpvn(pTHX_ SV *sv, SV *namesv, const char *name, const STRLEN len, U32 flags);
+
#endif
#if defined(PERL_IN_UTF8_C)
-STATIC UV S__to_utf8_case(pTHX_ const UV uv1, const U8 *p, U8* ustrp, STRLEN *lenp, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
-#define PERL_ARGS_ASSERT__TO_UTF8_CASE \
- assert(ustrp); assert(lenp); assert(invlist); assert(invmap); assert(normal)
-STATIC UV S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV result, U8* const ustrp, STRLEN *lenp)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \
- assert(p); assert(ustrp); assert(lenp)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE int S_does_utf8_overflow(const U8 * const s, const U8 * e, const bool consider_overlongs)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW \
- assert(s); assert(e)
-#endif
+STATIC UV
+S__to_utf8_case(pTHX_ const UV original, const U8 *p, U8 *ustrp, STRLEN *lenp, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
+# define PERL_ARGS_ASSERT__TO_UTF8_CASE \
+ assert(ustrp); assert(lenp); assert(invlist); assert(invmap); assert(normal)
+
+STATIC UV
+S_check_locale_boundary_crossing(pTHX_ const U8 * const p, const UV result, U8 * const ustrp, STRLEN *lenp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \
+ assert(p); assert(ustrp); assert(lenp)
+
+STATIC HV *
+S_new_msg_hv(pTHX_ const char * const message, U32 categories, U32 flag)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEW_MSG_HV \
+ assert(message)
+
+STATIC UV
+S_to_case_cp_list(pTHX_ const UV original, const U32 ** const remaining_list, Size_t *remaining_count, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
+# define PERL_ARGS_ASSERT_TO_CASE_CP_LIST \
+ assert(invlist); assert(invmap); assert(normal)
+
+STATIC U8
+S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_TO_LOWER_LATIN1
+
+STATIC UV
+S_turkic_fc(pTHX_ const U8 * const p, const U8 * const e, U8 *ustrp, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_TURKIC_FC \
+ assert(p); assert(e); assert(ustrp); assert(lenp)
+
+STATIC UV
+S_turkic_lc(pTHX_ const U8 * const p0, const U8 * const e, U8 *ustrp, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_TURKIC_LC \
+ assert(p0); assert(e); assert(ustrp); assert(lenp)
+
+STATIC UV
+S_turkic_uc(pTHX_ const U8 * const p, const U8 * const e, U8 *ustrp, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_TURKIC_UC \
+ assert(p); assert(e); assert(ustrp); assert(lenp)
+
+STATIC char *
+S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \
+ assert(s)
+
+# if 0
+STATIC void
+S_warn_on_first_deprecated_use(pTHX_ U32 category, const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line);
+# define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \
+ assert(name); assert(alternative); assert(file)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE int
+S_does_utf8_overflow(const U8 * const s, const U8 *e, const bool consider_overlongs)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW \
+ assert(s); assert(e)
+
+PERL_STATIC_INLINE int
+S_isFF_overlong(const U8 * const s, const STRLEN len)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISFF_OVERLONG \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+S_is_utf8_common(pTHX_ const U8 * const p, const U8 * const e, SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_COMMON \
+ assert(p); assert(e)
+
+PERL_STATIC_INLINE int
+S_is_utf8_overlong(const U8 * const s, const STRLEN len)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_OVERLONG \
+ assert(s)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_UTIL_C)
+STATIC bool
+S_ckwarn_common(pTHX_ U32 w);
+# define PERL_ARGS_ASSERT_CKWARN_COMMON
+
+STATIC SV *
+S_mess_alloc(pTHX);
+# define PERL_ARGS_ASSERT_MESS_ALLOC
+
+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);
+# 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);
+# define PERL_ARGS_ASSERT_MEM_LOG_COMMON \
+ assert(type_name); assert(filename); assert(funcname)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE U32
+S_ptr_hash(PTRV u);
+# define PERL_ARGS_ASSERT_PTR_HASH
+
+# endif
+# if defined(PERL_USES_PL_PIDSTATUS)
+STATIC void
+S_pidgone(pTHX_ Pid_t pid, int status);
+# define PERL_ARGS_ASSERT_PIDGONE
+
+# endif
+#endif /* defined(PERL_IN_UTIL_C) */
+#if defined(PERL_MEM_LOG)
+PERL_CALLCONV Malloc_t
+Perl_mem_log_alloc(const UV nconst, UV typesize, const char *type_name, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_ALLOC \
+ assert(type_name); assert(filename); assert(funcname)
+
+PERL_CALLCONV void
+Perl_mem_log_del_sv(const SV *sv, const char *filename, int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_DEL_SV \
+ assert(sv); assert(filename); assert(funcname)
+
+PERL_CALLCONV Malloc_t
+Perl_mem_log_free(Malloc_t oldalloc, const char *filename, const int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_FREE \
+ assert(filename); assert(funcname)
+
+PERL_CALLCONV void
+Perl_mem_log_new_sv(const SV *sv, const char *filename, int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_NEW_SV \
+ assert(sv); assert(filename); assert(funcname)
+
+PERL_CALLCONV Malloc_t
+Perl_mem_log_realloc(const UV n, const UV typesize, const char *type_name, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_REALLOC \
+ assert(type_name); assert(filename); assert(funcname)
+
+#endif /* defined(PERL_MEM_LOG) */
+#if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE I32 *
+Perl_CvDEPTH(const CV * const sv);
+# define PERL_ARGS_ASSERT_CVDEPTH \
+ assert(sv)
+
+PERL_STATIC_INLINE GV *
+Perl_CvGV(pTHX_ CV *sv);
+# define PERL_ARGS_ASSERT_CVGV \
+ assert(sv)
+
+PERL_STATIC_INLINE I32
+Perl_POPMARK(pTHX);
+# define PERL_ARGS_ASSERT_POPMARK
+
+PERL_STATIC_INLINE struct regexp *
+Perl_ReANY(const REGEXP * const re);
+# define PERL_ARGS_ASSERT_REANY \
+ assert(re)
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_off(SV *sv);
+# define PERL_ARGS_ASSERT_SVAMAGIC_OFF \
+ assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_on(SV *sv);
+# define PERL_ARGS_ASSERT_SVAMAGIC_ON \
+ assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvGETMAGIC(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVGETMAGIC \
+ assert(sv)
+
+PERL_STATIC_INLINE IV
+Perl_SvIV(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVIV \
+ assert(sv)
+
+PERL_STATIC_INLINE IV
+Perl_SvIV_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVIV_NOMG \
+ assert(sv)
+
+PERL_STATIC_INLINE NV
+Perl_SvNV(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVNV \
+ assert(sv)
+
+PERL_STATIC_INLINE NV
+Perl_SvNV_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVNV_NOMG \
+ assert(sv)
+
+PERL_STATIC_FORCE_INLINE bool
+Perl_SvPVXtrue(pTHX_ SV *sv)
+ __attribute__always_inline__;
+# define PERL_ARGS_ASSERT_SVPVXTRUE \
+ assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_DEC
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec_NN(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_DEC_NN \
+ assert(sv)
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_dec_ret_NULL(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_DEC_RET_NULL
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc(SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_INC
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc_NN(SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_INC_NN \
+ assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_inc_void(SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_INC_VOID
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVTRUE
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_NN(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVTRUE_NN \
+ assert(sv)
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_common(pTHX_ SV *sv, const bool sv_2bool_is_fallback);
+# define PERL_ARGS_ASSERT_SVTRUE_COMMON \
+ assert(sv)
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVTRUE_NOMG
+
+PERL_STATIC_INLINE UV
+Perl_SvUV(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVUV \
+ assert(sv)
+
+PERL_STATIC_INLINE UV
+Perl_SvUV_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVUV_NOMG \
+ assert(sv)
+
+PERL_STATIC_INLINE I32
+Perl_TOPMARK(pTHX);
+# define PERL_ARGS_ASSERT_TOPMARK
+
+PERL_STATIC_INLINE void
+Perl_append_utf8_from_native_byte(const U8 byte, U8 **dest);
+# define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE \
+ assert(dest)
+
+PERL_STATIC_INLINE Size_t
+Perl_av_count(pTHX_ AV *av)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_AV_COUNT \
+ assert(av)
+
+PERL_STATIC_INLINE SV **
+Perl_av_fetch_simple(pTHX_ AV *av, SSize_t key, I32 lval)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_AV_FETCH_SIMPLE \
+ assert(av)
+
+PERL_STATIC_INLINE AV *
+Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_AV_NEW_ALLOC
+
+PERL_STATIC_INLINE void
+Perl_av_push_simple(pTHX_ AV *av, SV *val);
+# define PERL_ARGS_ASSERT_AV_PUSH_SIMPLE \
+ assert(av); assert(val)
+
+PERL_STATIC_INLINE SV **
+Perl_av_store_simple(pTHX_ AV *av, SSize_t key, SV *val);
+# define PERL_ARGS_ASSERT_AV_STORE_SIMPLE \
+ assert(av)
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ_latin1(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ_locale(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE MGVTBL *
+Perl_get_vtbl(pTHX_ int vtbl_id)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_VTBL
+
+PERL_STATIC_INLINE Size_t
+Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISC9_STRICT_UTF8_CHAR \
+ assert(s0); assert(e)
+
+PERL_STATIC_INLINE Size_t
+Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISSTRICT_UTF8_CHAR \
+ assert(s0); assert(e)
+
+PERL_STATIC_INLINE Size_t
+Perl_isUTF8_CHAR(const U8 * const s0, const U8 * const e)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISUTF8_CHAR \
+ assert(s0); assert(e)
+
+PERL_STATIC_INLINE Size_t
+Perl_isUTF8_CHAR_flags(const U8 * const s0, const U8 * const e, const U32 flags)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISUTF8_CHAR_FLAGS \
+ assert(s0); assert(e)
+
+PERL_STATIC_INLINE bool
+Perl_is_c9strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+# define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL \
+ assert(pv); assert(what); assert(op_name)
+
+PERL_STATIC_INLINE bool
+Perl_is_strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+# define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
+# define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_invariant_string_loc(const U8 * const s, STRLEN len, const U8 **ep)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING_LOC \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_flags(const U8 *s, STRLEN len, const U32 flags)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_loclen_flags(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS \
+ assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_valid_partial_char_flags(const U8 * const s0, const U8 * const e, const U32 flags)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS \
+ assert(s0); assert(e)
+
+PERL_STATIC_INLINE unsigned
+Perl_lsbit_pos32(U32 word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_LSBIT_POS32
+
+PERL_STATIC_INLINE char *
+Perl_mortal_getenv(const char *str)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MORTAL_GETENV \
+ assert(str)
+
+PERL_STATIC_INLINE unsigned
+Perl_msbit_pos32(U32 word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MSBIT_POS32
+
+PERL_STATIC_INLINE OP *
+Perl_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWPADXVOP
+
+PERL_STATIC_INLINE SV *
+Perl_newRV_noinc(pTHX_ SV * const tmpRef)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWRV_NOINC \
+ assert(tmpRef)
+
+PERL_STATIC_INLINE SV *
+Perl_newSV_type(pTHX_ const svtype type)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWSV_TYPE
+
+PERL_STATIC_FORCE_INLINE SV *
+Perl_newSV_type_mortal(pTHX_ const svtype type)
+ __attribute__warn_unused_result__
+ __attribute__always_inline__;
+# define PERL_ARGS_ASSERT_NEWSV_TYPE_MORTAL
+
+PERL_STATIC_INLINE char *
+Perl_savepv(pTHX_ const char *pv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVEPV
+
+PERL_STATIC_INLINE char *
+Perl_savepvn(pTHX_ const char *pv, Size_t len)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVEPVN
+
+PERL_STATIC_INLINE char *
+Perl_savesharedsvpv(pTHX_ SV *sv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVESHAREDSVPV \
+ assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_savesvpv(pTHX_ SV *sv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVESVPV \
+ assert(sv)
+
+PERL_STATIC_INLINE unsigned
+Perl_single_1bit_pos32(U32 word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SINGLE_1BIT_POS32
+
+PERL_STATIC_INLINE bool
+Perl_sv_only_taint_gmagic(SV *sv);
+# define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC \
+ assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvbyten_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy);
+# define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE_WRAPPER \
+ assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvutf8n_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy);
+# define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE_WRAPPER \
+ assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_sv_setpv_freshbuf(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_SETPV_FRESHBUF \
+ assert(sv)
+
+PERL_STATIC_INLINE IV
+Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_DISTANCE \
+ assert(a); assert(b)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop(const U8 *s, SSize_t off)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP \
+ assert(s)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP_BACK \
+ assert(s); assert(start)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD \
+ assert(s); assert(end)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP_SAFE \
+ assert(s); assert(start); assert(end)
+
+PERL_STATIC_INLINE UV
+Perl_utf8_to_uvchr_buf_helper(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
+# define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF_HELPER \
+ assert(s); assert(send)
+
+PERL_STATIC_INLINE UV
+Perl_utf8n_to_uvchr_msgs(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors, AV **msgs);
+# define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_MSGS \
+ assert(s)
+
+PERL_STATIC_INLINE UV
+Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR \
+ assert(s)
+
+PERL_STATIC_INLINE void
+Perl_cx_popblock(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPBLOCK \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popeval(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPEVAL \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popformat(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPFORMAT \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPGIVEN \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPLOOP \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popsub(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPSUB \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popsub_args(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPSUB_ARGS \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popsub_common(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPSUB_COMMON \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popwhen(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPWHEN \
+ assert(cx)
+
+PERL_STATIC_INLINE PERL_CONTEXT *
+Perl_cx_pushblock(pTHX_ U8 type, U8 gimme, SV **sp, I32 saveix);
+# define PERL_ARGS_ASSERT_CX_PUSHBLOCK \
+ assert(sp)
+
+PERL_STATIC_INLINE void
+Perl_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv);
+# define PERL_ARGS_ASSERT_CX_PUSHEVAL \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv);
+# define PERL_ARGS_ASSERT_CX_PUSHFORMAT \
+ assert(cx); assert(cv)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv);
+# define PERL_ARGS_ASSERT_CX_PUSHGIVEN \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV *itersave);
+# define PERL_ARGS_ASSERT_CX_PUSHLOOP_FOR \
+ assert(cx); assert(itervarp)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_PUSHLOOP_PLAIN \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs);
+# define PERL_ARGS_ASSERT_CX_PUSHSUB \
+ assert(cx); assert(cv)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushtry(pTHX_ PERL_CONTEXT *cx, OP *retop);
+# define PERL_ARGS_ASSERT_CX_PUSHTRY \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushwhen(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_PUSHWHEN \
+ assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_topblock(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_TOPBLOCK \
+ assert(cx)
+
+PERL_STATIC_INLINE U8
+Perl_gimme_V(pTHX);
+# define PERL_ARGS_ASSERT_GIMME_V
+
+# if !defined(HAS_STRLCAT)
+PERL_STATIC_INLINE Size_t
+Perl_my_strlcat(char *dst, const char *src, Size_t size);
+# define PERL_ARGS_ASSERT_MY_STRLCAT
+
+# endif
+# if !defined(HAS_STRNLEN)
+PERL_STATIC_INLINE Size_t
+Perl_my_strnlen(const char *str, Size_t maxlen);
+# define PERL_ARGS_ASSERT_MY_STRNLEN \
+ assert(str)
+
+# endif
+# if defined(PERL_CORE) || defined(PERL_EXT)
+PERL_STATIC_INLINE bool
+Perl_is_utf8_non_invariant_string(const U8 * const s, STRLEN len)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_NON_INVARIANT_STRING \
+ assert(s)
+
+PERL_STATIC_INLINE STRLEN
+S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B \
+ assert(sv); assert(pv)
+
+PERL_STATIC_INLINE Size_t
+S_variant_under_utf8_count(const U8 * const s, const U8 * const e)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_VARIANT_UNDER_UTF8_COUNT \
+ assert(s); assert(e)
+
+# if !defined(HAS_MEMRCHR)
+PERL_STATIC_INLINE void *
+S_my_memrchr(const char *s, const char c, const STRLEN len);
+# define PERL_ARGS_ASSERT_MY_MEMRCHR \
+ assert(s)
+
+# endif
+# endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+# if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || \
+ defined(PERL_IN_UTF8_C)
+PERL_STATIC_INLINE bool
+S__invlist_contains_cp(SV * const invlist, const UV cp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP \
+ assert(invlist)
+
+PERL_STATIC_INLINE UV
+S__invlist_len(SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__INVLIST_LEN \
+ assert(invlist)
+
+PERL_STATIC_INLINE bool *
+S_get_invlist_offset_addr(SV *invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR \
+ assert(invlist)
+
+PERL_STATIC_INLINE UV *
+S_invlist_array(SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_ARRAY \
+ assert(invlist)
+
+PERL_STATIC_INLINE bool
+S_is_invlist(const SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_INVLIST
+
+# endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) ||
+ defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) ||
+ defined(PERL_IN_UTF8_C) */
+# if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+ defined(PERL_IN_REGCOMP_ANY)
+PERL_STATIC_INLINE SV *
+S_add_cp_to_invlist(pTHX_ SV *invlist, const UV cp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST
+
+PERL_STATIC_INLINE 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(SV * const invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_HIGHEST \
+ assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_set_len(pTHX_ SV * const invlist, const UV len, const bool offset);
+# define PERL_ARGS_ASSERT_INVLIST_SET_LEN \
+ assert(invlist)
+
+# endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) ||
+ defined(PERL_IN_REGCOMP_ANY) */
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
+PERL_STATIC_INLINE bool
+S_PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq);
+# define PERL_ARGS_ASSERT_PADNAMEIN_SCOPE \
+ assert(pn)
+
+# endif
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+PERL_STATIC_INLINE STRLEN *
+S_get_invlist_iter_addr(SV *invlist)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
+ assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_iterfinish(SV *invlist);
+# define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \
+ assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_iterinit(SV *invlist);
+# define PERL_ARGS_ASSERT_INVLIST_ITERINIT \
+ assert(invlist)
+
+PERL_STATIC_INLINE bool
+S_invlist_iternext(SV *invlist, UV *start, UV *end)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \
+ assert(invlist); assert(start); assert(end)
+
+# endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY) */
+# if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+PERL_STATIC_INLINE bool
+S_lossless_NV_to_IV(const NV nv, IV *ivp)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV \
+ assert(ivp)
+
+# endif
+# if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \
+ defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+PERL_STATIC_INLINE const char *
+S_get_regex_charset_name(const U32 flags, STRLEN * const lenp);
+# define PERL_ARGS_ASSERT_GET_REGEX_CHARSET_NAME \
+ assert(lenp)
+
+# endif
+# if defined(U64TYPE)
+PERL_STATIC_INLINE unsigned
+Perl_lsbit_pos64(U64 word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_LSBIT_POS64
+
+PERL_STATIC_INLINE unsigned
+Perl_msbit_pos64(U64 word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MSBIT_POS64
+
+PERL_STATIC_INLINE unsigned
+Perl_single_1bit_pos64(U64 word)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SINGLE_1BIT_POS64
+
+# endif /* defined(U64TYPE) */
+# if defined(USE_ITHREADS)
+PERL_STATIC_INLINE AV *
+Perl_cop_file_avn(pTHX_ const COP *cop);
+# define PERL_ARGS_ASSERT_COP_FILE_AVN \
+ assert(cop)
+
+# if !defined(PERL_IMPLICIT_SYS)
+PERL_STATIC_INLINE bool
+S_PerlEnv_putenv(pTHX_ char *str);
+# define PERL_ARGS_ASSERT_PERLENV_PUTENV \
+ assert(str)
+
+# endif
+# endif /* defined(USE_ITHREADS) */
+# if !defined(WIN32)
+PERL_STATIC_INLINE void *
+Perl_get_context(void)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_CONTEXT
+
+# endif
+#endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#if defined(PERL_USE_3ARG_SIGHANDLER)
+PERL_CALLCONV Signal_t
+Perl_csighandler(int sig, Siginfo_t *info, void *uap);
+# define PERL_ARGS_ASSERT_CSIGHANDLER
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE int S_isFF_OVERLONG(const U8 * const s, const STRLEN len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISFF_OVERLONG \
- assert(s)
-#endif
+PERL_CALLCONV Signal_t
+Perl_sighandler(int sig, Siginfo_t *info, void *uap)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SIGHANDLER
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, const U8 *const e, SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_COMMON \
- assert(p); assert(e)
-#endif
+#else /* if !defined(PERL_USE_3ARG_SIGHANDLER) */
+PERL_CALLCONV Signal_t
+Perl_csighandler(int sig);
+# define PERL_ARGS_ASSERT_CSIGHANDLER
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE int S_is_utf8_overlong_given_start_byte_ok(const U8 * const s, const STRLEN len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_OVERLONG_GIVEN_START_BYTE_OK \
- assert(s)
-#endif
+PERL_CALLCONV Signal_t
+Perl_sighandler(int sig)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SIGHANDLER
-STATIC HV * S_new_msg_hv(pTHX_ const char * const message, U32 categories, U32 flag)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_MSG_HV \
- assert(message)
-
-STATIC U8 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_TO_LOWER_LATIN1
-
-STATIC UV S_turkic_fc(pTHX_ const U8 * const p, const U8 * const e, U8* ustrp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TURKIC_FC \
- assert(p); assert(e); assert(ustrp); assert(lenp)
-STATIC UV S_turkic_lc(pTHX_ const U8 * const p0, const U8 * const e, U8* ustrp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TURKIC_LC \
- assert(p0); assert(e); assert(ustrp); assert(lenp)
-STATIC UV S_turkic_uc(pTHX_ const U8 * const p, const U8 * const e, U8* ustrp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TURKIC_UC \
- assert(p); assert(e); assert(ustrp); assert(lenp)
-STATIC char * S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \
- assert(s)
+#endif /* !defined(PERL_USE_3ARG_SIGHANDLER) */
+#if defined(U64TYPE)
#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
-PERL_CALLCONV UV Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s);
-#define PERL_ARGS_ASSERT__TO_UPPER_TITLE_LATIN1 \
- assert(p); assert(lenp)
-#endif
-#if defined(PERL_IN_UTIL_C)
-STATIC bool S_ckwarn_common(pTHX_ U32 w);
-#define PERL_ARGS_ASSERT_CKWARN_COMMON
-STATIC bool S_invoke_exception_hook(pTHX_ SV *ex, bool warn);
-#define PERL_ARGS_ASSERT_INVOKE_EXCEPTION_HOOK
-STATIC SV* S_mess_alloc(pTHX);
-#define PERL_ARGS_ASSERT_MESS_ALLOC
-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);
-#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);
-#define PERL_ARGS_ASSERT_MEM_LOG_COMMON \
- assert(type_name); assert(filename); assert(funcname)
-# endif
-#endif
-#if defined(PERL_MEM_LOG)
-PERL_CALLCONV Malloc_t Perl_mem_log_alloc(const UV nconst, UV typesize, const char *type_name, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_ALLOC \
- assert(type_name); assert(filename); assert(funcname)
-PERL_CALLCONV Malloc_t Perl_mem_log_free(Malloc_t oldalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_FREE \
- assert(filename); assert(funcname)
-PERL_CALLCONV Malloc_t Perl_mem_log_realloc(const UV n, const UV typesize, const char *type_name, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_REALLOC \
- assert(type_name); assert(filename); assert(funcname)
-#endif
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-STATIC void S_pidgone(pTHX_ Pid_t pid, int status);
-#define PERL_ARGS_ASSERT_PIDGONE
-#endif
-#if defined(PERL_USE_3ARG_SIGHANDLER)
-PERL_CALLCONV Signal_t Perl_csighandler(int sig, Siginfo_t *info, void *uap);
-#define PERL_ARGS_ASSERT_CSIGHANDLER
-PERL_CALLCONV Signal_t Perl_sighandler(int sig, Siginfo_t *info, void *uap);
-#define PERL_ARGS_ASSERT_SIGHANDLER
-#endif
#if defined(UNLINK_ALL_VERSIONS)
-PERL_CALLCONV I32 Perl_unlnk(pTHX_ const char* f);
-#define PERL_ARGS_ASSERT_UNLNK \
- assert(f)
+PERL_CALLCONV I32
+Perl_unlnk(pTHX_ const char *f);
+# define PERL_ARGS_ASSERT_UNLNK \
+ assert(f)
+
#endif
#if defined(USE_C_BACKTRACE)
-PERL_CALLCONV bool Perl_dump_c_backtrace(pTHX_ PerlIO* fp, int max_depth, int skip);
-#define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE \
- assert(fp)
-/* PERL_CALLCONV void free_c_backtrace(pTHX_ Perl_c_backtrace* bt); */
-#define PERL_ARGS_ASSERT_FREE_C_BACKTRACE
-PERL_CALLCONV Perl_c_backtrace* Perl_get_c_backtrace(pTHX_ int max_depth, int skip);
-#define PERL_ARGS_ASSERT_GET_C_BACKTRACE
-PERL_CALLCONV SV* Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip);
-#define PERL_ARGS_ASSERT_GET_C_BACKTRACE_DUMP
-#endif
+PERL_CALLCONV bool
+Perl_dump_c_backtrace(pTHX_ PerlIO *fp, int max_depth, int skip);
+# define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE \
+ assert(fp)
+
+/* PERL_CALLCONV void
+free_c_backtrace(pTHX_ Perl_c_backtrace *bt); */
+
+PERL_CALLCONV Perl_c_backtrace *
+Perl_get_c_backtrace(pTHX_ int max_depth, int skip)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_C_BACKTRACE
+
+PERL_CALLCONV SV *
+Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip);
+# define PERL_ARGS_ASSERT_GET_C_BACKTRACE_DUMP
+
+#endif /* defined(USE_C_BACKTRACE) */
#if defined(USE_DTRACE)
-PERL_CALLCONV void Perl_dtrace_probe_call(pTHX_ CV *cv, bool is_call);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_CALL \
- assert(cv)
-PERL_CALLCONV void Perl_dtrace_probe_load(pTHX_ const char *name, bool is_loading);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_LOAD \
- assert(name)
-PERL_CALLCONV void Perl_dtrace_probe_op(pTHX_ const OP *op);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_OP \
- assert(op)
-PERL_CALLCONV void Perl_dtrace_probe_phase(pTHX_ enum perl_phase phase);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_PHASE
-#endif
+PERL_CALLCONV void
+Perl_dtrace_probe_call(pTHX_ CV *cv, bool is_call);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_CALL \
+ assert(cv)
+
+PERL_CALLCONV void
+Perl_dtrace_probe_load(pTHX_ const char *name, bool is_loading);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_LOAD \
+ assert(name)
+
+PERL_CALLCONV void
+Perl_dtrace_probe_op(pTHX_ const OP *op);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_OP \
+ assert(op)
+
+PERL_CALLCONV void
+Perl_dtrace_probe_phase(pTHX_ enum perl_phase phase);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_PHASE
+
+#endif /* defined(USE_DTRACE) */
#if defined(USE_ITHREADS)
-PERL_CALLCONV PADOFFSET Perl_alloccopstash(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_ALLOCCOPSTASH \
- assert(hv)
-PERL_CALLCONV void* Perl_any_dup(pTHX_ void* v, const PerlInterpreter* proto_perl)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ANY_DUP \
- assert(proto_perl)
-
-PERL_CALLCONV void Perl_clone_params_del(CLONE_PARAMS *param);
-#define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL \
- assert(param)
-PERL_CALLCONV CLONE_PARAMS * Perl_clone_params_new(PerlInterpreter *const from, PerlInterpreter *const to)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW \
- assert(from); assert(to)
-
-PERL_CALLCONV PERL_CONTEXT* Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CX_DUP \
- assert(param)
-
-PERL_CALLCONV DIR* Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DIRP_DUP \
- assert(param)
-
-PERL_CALLCONV PerlIO* Perl_fp_dup(pTHX_ PerlIO *const fp, const char type, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_FP_DUP \
- assert(param)
-PERL_CALLCONV GP* Perl_gp_dup(pTHX_ GP *const gp, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GP_DUP \
- assert(param)
-
-PERL_CALLCONV HE* Perl_he_dup(pTHX_ const HE* e, bool shared, CLONE_PARAMS* param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HE_DUP \
- assert(param)
-
-PERL_CALLCONV HEK* Perl_hek_dup(pTHX_ HEK* e, CLONE_PARAMS* param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HEK_DUP \
- assert(param)
-
-PERL_CALLCONV MAGIC* Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MG_DUP \
- assert(param)
-
-PERL_CALLCONV struct mro_meta* Perl_mro_meta_dup(pTHX_ struct mro_meta* smeta, CLONE_PARAMS* param);
-#define PERL_ARGS_ASSERT_MRO_META_DUP \
- assert(smeta); assert(param)
-PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPADOP \
- assert(sv)
-
-PERL_CALLCONV PADLIST * Perl_padlist_dup(pTHX_ PADLIST *srcpad, CLONE_PARAMS *param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PADLIST_DUP \
- assert(srcpad); assert(param)
-
-PERL_CALLCONV PADNAME * Perl_padname_dup(pTHX_ PADNAME *src, CLONE_PARAMS *param)
- __attribute__warn_unused_result__;
-#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__;
-#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);
-#define PERL_ARGS_ASSERT_PARSER_DUP \
- assert(param)
-PERL_CALLCONV PerlInterpreter* perl_clone(PerlInterpreter *proto_perl, UV flags);
-#define PERL_ARGS_ASSERT_PERL_CLONE \
- assert(proto_perl)
-PERL_CALLCONV void Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS* param);
-#define PERL_ARGS_ASSERT_RE_DUP_GUTS \
- assert(sstr); assert(dstr); assert(param)
-PERL_CALLCONV void* Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS* param);
-#define PERL_ARGS_ASSERT_REGDUPE_INTERNAL \
- assert(r); assert(param)
-PERL_CALLCONV void Perl_rvpv_dup(pTHX_ SV *const dsv, const SV *const ssv, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_RVPV_DUP \
- assert(dsv); assert(ssv); assert(param)
-PERL_CALLCONV PERL_SI* Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SI_DUP \
- assert(param)
-
-PERL_CALLCONV ANY* Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS* param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SS_DUP \
- assert(proto_perl); assert(param)
-
-PERL_CALLCONV SV* Perl_sv_dup(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DUP \
- assert(param)
-
-PERL_CALLCONV SV* Perl_sv_dup_inc(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DUP_INC \
- assert(param)
+PERL_CALLCONV PADOFFSET
+Perl_alloccopstash(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_ALLOCCOPSTASH \
+ assert(hv)
+
+PERL_CALLCONV void *
+Perl_any_dup(pTHX_ void *v, const PerlInterpreter *proto_perl)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ANY_DUP \
+ assert(proto_perl)
+
+PERL_CALLCONV void
+Perl_clone_params_del(CLONE_PARAMS *param);
+# define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL \
+ assert(param)
+
+PERL_CALLCONV CLONE_PARAMS *
+Perl_clone_params_new(PerlInterpreter * const from, PerlInterpreter * const to)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW \
+ assert(from); assert(to)
+
+PERL_CALLCONV PERL_CONTEXT *
+Perl_cx_dup(pTHX_ PERL_CONTEXT *cx, I32 ix, I32 max, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CX_DUP \
+ assert(param)
+
+PERL_CALLCONV DIR *
+Perl_dirp_dup(pTHX_ DIR * const dp, CLONE_PARAMS * const param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DIRP_DUP \
+ assert(param)
+
+PERL_CALLCONV PerlIO *
+Perl_fp_dup(pTHX_ PerlIO * const fp, const char type, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_FP_DUP \
+ assert(param)
+
+PERL_CALLCONV GP *
+Perl_gp_dup(pTHX_ GP * const gp, CLONE_PARAMS * const param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GP_DUP \
+ assert(param)
+
+PERL_CALLCONV HE *
+Perl_he_dup(pTHX_ const HE *e, bool shared, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HE_DUP \
+ assert(param)
+
+PERL_CALLCONV HEK *
+Perl_hek_dup(pTHX_ HEK *e, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HEK_DUP \
+ assert(param)
+
+PERL_CALLCONV MAGIC *
+Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS * const param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MG_DUP \
+ assert(param)
+
+PERL_CALLCONV struct mro_meta *
+Perl_mro_meta_dup(pTHX_ struct mro_meta *smeta, CLONE_PARAMS *param)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MRO_META_DUP \
+ assert(smeta); assert(param)
+
+PERL_CALLCONV OP *
+Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWPADOP \
+ assert(sv)
+
+PERL_CALLCONV PADLIST *
+Perl_padlist_dup(pTHX_ PADLIST *srcpad, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PADLIST_DUP \
+ assert(srcpad); assert(param)
+
+PERL_CALLCONV PADNAME *
+Perl_padname_dup(pTHX_ PADNAME *src, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__
+ __attribute__visibility__("hidden");
+# 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__visibility__("hidden");
+# 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);
+# define PERL_ARGS_ASSERT_PARSER_DUP \
+ assert(param)
+
+PERL_CALLCONV PerlInterpreter *
+perl_clone(PerlInterpreter *proto_perl, UV flags);
+# define PERL_ARGS_ASSERT_PERL_CLONE \
+ assert(proto_perl)
+
+PERL_CALLCONV void
+Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS *param);
+# define PERL_ARGS_ASSERT_RE_DUP_GUTS \
+ assert(sstr); assert(dstr); assert(param)
+
+PERL_CALLCONV void *
+Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS *param);
+# define PERL_ARGS_ASSERT_REGDUPE_INTERNAL \
+ assert(r); assert(param)
+
+PERL_CALLCONV void
+Perl_rvpv_dup(pTHX_ SV * const dsv, const SV * const ssv, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_RVPV_DUP \
+ assert(dsv); assert(ssv); assert(param)
+
+PERL_CALLCONV PERL_SI *
+Perl_si_dup(pTHX_ PERL_SI *si, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SI_DUP \
+ assert(param)
+
+PERL_CALLCONV ANY *
+Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS *param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SS_DUP \
+ assert(proto_perl); assert(param)
+
+PERL_CALLCONV SV *
+Perl_sv_dup(pTHX_ const SV * const ssv, CLONE_PARAMS * const param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_DUP \
+ assert(param)
+
+PERL_CALLCONV SV *
+Perl_sv_dup_inc(pTHX_ const SV * const ssv, CLONE_PARAMS * const param)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_DUP_INC \
+ assert(param)
+
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+PERL_CALLCONV void
+Perl_op_relocate_sv(pTHX_ SV **svp, PADOFFSET *targp)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OP_RELOCATE_SV \
+ assert(svp); assert(targp)
+
+# endif
+#else /* if !defined(USE_ITHREADS) */
+/* PERL_CALLCONV void
+CopFILEGV_set(pTHX_ COP *c, GV *gv); */
#endif
-#if defined(USE_LOCALE) && ( defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MG_C) || defined (PERL_EXT_POSIX) || defined (PERL_EXT_LANGINFO))
-PERL_CALLCONV bool Perl__is_cur_LC_category_utf8(pTHX_ int category);
-#define PERL_ARGS_ASSERT__IS_CUR_LC_CATEGORY_UTF8
-#endif
#if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV int Perl_magic_freecollxfrm(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREECOLLXFRM \
- assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \
- assert(sv); assert(mg)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_mem_collxfrm(pTHX_ const char* input_string, STRLEN len, STRLEN* xlen)
- __attribute__deprecated__;
-#define PERL_ARGS_ASSERT_MEM_COLLXFRM \
- assert(input_string); assert(xlen)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char* Perl_sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp);
-#define PERL_ARGS_ASSERT_SV_COLLXFRM \
- assert(sv); assert(nxp)
-#endif
-PERL_CALLCONV char* Perl_sv_collxfrm_flags(pTHX_ SV *const sv, STRLEN *const nxp, I32 const flags);
-#define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS \
- assert(sv); assert(nxp)
-#endif
+PERL_CALLCONV int
+Perl_magic_freecollxfrm(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_FREECOLLXFRM \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setcollxfrm(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \
+ assert(sv); assert(mg)
+
+PERL_CALLCONV SV *
+Perl_strxfrm(pTHX_ SV *src);
+# define PERL_ARGS_ASSERT_STRXFRM \
+ assert(src)
+
+PERL_CALLCONV char *
+Perl_sv_collxfrm_flags(pTHX_ SV * const sv, STRLEN * const nxp, I32 const flags);
+# define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS \
+ assert(sv); assert(nxp)
+
+# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
+ defined(PERL_IN_SV_C)
+PERL_CALLCONV char *
+Perl_mem_collxfrm_(pTHX_ const char *input_string, STRLEN len, STRLEN *xlen, bool utf8)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MEM_COLLXFRM_ \
+ assert(input_string); assert(xlen)
+
+# endif
+#endif /* defined(USE_LOCALE_COLLATE) */
#if defined(USE_PERLIO)
-PERL_CALLCONV void Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_CLEARERR
-PERL_CALLCONV int Perl_PerlIO_close(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_CLOSE
-PERL_CALLCONV int Perl_PerlIO_eof(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_EOF
-PERL_CALLCONV int Perl_PerlIO_error(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_ERROR
-PERL_CALLCONV int Perl_PerlIO_fileno(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_FILENO
-PERL_CALLCONV int Perl_PerlIO_fill(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_FILL
-PERL_CALLCONV int Perl_PerlIO_flush(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_FLUSH
-PERL_CALLCONV STDCHAR * Perl_PerlIO_get_base(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_GET_BASE
-PERL_CALLCONV SSize_t Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_GET_BUFSIZ
-
-PERL_CALLCONV SSize_t Perl_PerlIO_get_cnt(pTHX_ PerlIO *f)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_GET_CNT
-
-PERL_CALLCONV STDCHAR * Perl_PerlIO_get_ptr(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_GET_PTR
-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);
-#define PERL_ARGS_ASSERT_PERLIO_RESTORE_ERRNO
-PERL_CALLCONV void Perl_PerlIO_save_errno(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_SAVE_ERRNO
-PERL_CALLCONV int Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
-#define PERL_ARGS_ASSERT_PERLIO_SEEK
-PERL_CALLCONV void Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, SSize_t cnt);
-#define PERL_ARGS_ASSERT_PERLIO_SET_CNT
-PERL_CALLCONV void Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, SSize_t cnt);
-#define PERL_ARGS_ASSERT_PERLIO_SET_PTRCNT
-PERL_CALLCONV void Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_SETLINEBUF
-PERL_CALLCONV PerlIO * Perl_PerlIO_stderr(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_STDERR
-
-PERL_CALLCONV PerlIO * Perl_PerlIO_stdin(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_STDIN
-
-PERL_CALLCONV PerlIO * Perl_PerlIO_stdout(pTHX)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_STDOUT
-
-PERL_CALLCONV Off_t Perl_PerlIO_tell(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_TELL
-PERL_CALLCONV SSize_t Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
-#define PERL_ARGS_ASSERT_PERLIO_UNREAD \
- assert(vbuf)
-PERL_CALLCONV SSize_t Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
-#define PERL_ARGS_ASSERT_PERLIO_WRITE \
- assert(vbuf)
+PERL_CALLCONV void
+Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_CLEARERR
+
+PERL_CALLCONV int
+Perl_PerlIO_close(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_CLOSE
+
+PERL_CALLCONV int
+Perl_PerlIO_eof(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_EOF
+
+PERL_CALLCONV int
+Perl_PerlIO_error(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_ERROR
+
+PERL_CALLCONV int
+Perl_PerlIO_fileno(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_FILENO
+
+PERL_CALLCONV int
+Perl_PerlIO_fill(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_FILL
+
+PERL_CALLCONV int
+Perl_PerlIO_flush(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_FLUSH
+
+PERL_CALLCONV STDCHAR *
+Perl_PerlIO_get_base(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_GET_BASE
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_GET_BUFSIZ
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_get_cnt(pTHX_ PerlIO *f)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_GET_CNT
+
+PERL_CALLCONV STDCHAR *
+Perl_PerlIO_get_ptr(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_GET_PTR
+
+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);
+# define PERL_ARGS_ASSERT_PERLIO_RESTORE_ERRNO
+
+PERL_CALLCONV void
+Perl_PerlIO_save_errno(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_SAVE_ERRNO
+
+PERL_CALLCONV int
+Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
+# define PERL_ARGS_ASSERT_PERLIO_SEEK
+
+PERL_CALLCONV void
+Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, SSize_t cnt);
+# define PERL_ARGS_ASSERT_PERLIO_SET_CNT
+
+PERL_CALLCONV void
+Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, SSize_t cnt);
+# define PERL_ARGS_ASSERT_PERLIO_SET_PTRCNT
+
+PERL_CALLCONV void
+Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_SETLINEBUF
+
+PERL_CALLCONV PerlIO *
+Perl_PerlIO_stderr(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_STDERR
+
+PERL_CALLCONV PerlIO *
+Perl_PerlIO_stdin(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_STDIN
+
+PERL_CALLCONV PerlIO *
+Perl_PerlIO_stdout(pTHX)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_STDOUT
+
+PERL_CALLCONV Off_t
+Perl_PerlIO_tell(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_TELL
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
+# define PERL_ARGS_ASSERT_PERLIO_UNREAD \
+ assert(vbuf)
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
+# define PERL_ARGS_ASSERT_PERLIO_WRITE \
+ assert(vbuf)
+
+#endif /* defined(USE_PERLIO) */
+#if defined(USE_PERL_SWITCH_LOCALE_CONTEXT)
+PERL_CALLCONV void
+Perl_switch_locale_context(void);
+# define PERL_ARGS_ASSERT_SWITCH_LOCALE_CONTEXT
+
#endif
#if defined(USE_QUADMATH)
-PERL_CALLCONV bool Perl_quadmath_format_needed(const char* format);
-#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED \
- assert(format)
-PERL_CALLCONV bool Perl_quadmath_format_valid(const char* format);
-#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_VALID \
- assert(format)
-#endif
+PERL_CALLCONV bool
+Perl_quadmath_format_needed(const char *format)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED \
+ assert(format)
+
+PERL_CALLCONV bool
+Perl_quadmath_format_valid(const char *format)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_QUADMATH_FORMAT_VALID \
+ assert(format)
+
+#endif /* defined(USE_QUADMATH) */
+#if defined(VMS) || defined(WIN32)
+PERL_CALLCONV int
+Perl_do_aspawn(pTHX_ SV *really, SV **mark, SV **sp);
+# define PERL_ARGS_ASSERT_DO_ASPAWN \
+ assert(mark); assert(sp)
+
+PERL_CALLCONV int
+Perl_do_spawn(pTHX_ char *cmd);
+# define PERL_ARGS_ASSERT_DO_SPAWN \
+ assert(cmd)
+
+PERL_CALLCONV int
+Perl_do_spawn_nowait(pTHX_ char *cmd);
+# define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT \
+ assert(cmd)
+
+#endif /* defined(VMS) || defined(WIN32) */
#if defined(WIN32)
-PERL_CALLCONV_NO_RET void win32_croak_not_implemented(const char * fname)
- __attribute__noreturn__;
-#define PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED \
- assert(fname)
+PERL_CALLCONV void *
+Perl_get_context(void)
+ __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_CONTEXT
+
+PERL_CALLCONV bool
+Perl_get_win32_message_utf8ness(pTHX_ const char *string)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_WIN32_MESSAGE_UTF8NESS
+
+PERL_CALLCONV_NO_RET void
+win32_croak_not_implemented(const char *fname)
+ __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED \
+ assert(fname)
+
+#else /* if !defined(WIN32) */
+PERL_CALLCONV bool
+Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report)
+ __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_EXEC3 \
+ assert(incmd)
#endif
-#if defined(WIN32) || defined(VMS)
-PERL_CALLCONV int Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_ASPAWN \
- assert(mark); assert(sp)
-PERL_CALLCONV int Perl_do_spawn(pTHX_ char* cmd);
-#define PERL_ARGS_ASSERT_DO_SPAWN \
- assert(cmd)
-PERL_CALLCONV int Perl_do_spawn_nowait(pTHX_ char* cmd);
-#define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT \
- assert(cmd)
-#endif
-#if defined(_MSC_VER)
-PERL_CALLCONV int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \
- assert(sv); assert(mg)
-#endif
+
#ifdef PERL_CORE
# include "pp_proto.h"
#endif
END_EXTERN_C
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h
index fefb3f065b..3d95027f74 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* reentr.h
*
@@ -1697,4 +1697,4 @@ typedef struct {
#endif
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h
index 808ae55797..4d39ab2417 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
*
* regcharclass.h
*
@@ -156,6 +156,35 @@
( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
/*
+ SPACE: Backwards \p{XPerlSpace}
+
+ \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_SPACE_utf8_safe_backwards(s,e) \
+( ((s) - (e) > 2) ? \
+ ( ( inRANGE_helper_(U8, *((const U8*)s - 1), '\t', '\r') || ' ' == *((const U8*)s - 1) ) ? 1\
+ : ( 0x80 == *((const U8*)s - 1) ) ? \
+ ( ( 0x80 == *((const U8*)s - 2) ) ? \
+ ( ( inRANGE_helper_(U8, *((const U8*)s - 3), 0xE2, 0xE3) ) ? 3 : 0 )\
+ : ( ( 0x9A == *((const U8*)s - 2) ) && ( 0xE1 == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x81, 0x84) || inRANGE_helper_(U8, *((const U8*)s - 1), 0x86, 0x8A) || inRANGE_helper_(U8, *((const U8*)s - 1), 0xA8, 0xA9) || 0xAF == *((const U8*)s - 1) ) ?\
+ ( ( ( 0x80 == *((const U8*)s - 2) ) && ( 0xE2 == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( 0x85 == *((const U8*)s - 1) ) ? \
+ ( ( 0x80 == *((const U8*)s - 2) ) ? \
+ ( ( 0xE2 == *((const U8*)s - 3) ) ? 3 : 0 ) \
+ : ( 0xC2 == *((const U8*)s - 2) ) ? 2 : 0 ) \
+ : ( 0x9F == *((const U8*)s - 1) ) ? \
+ ( ( ( 0x81 == *((const U8*)s - 2) ) && ( 0xE2 == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( ( 0xA0 == *((const U8*)s - 1) ) && ( 0xC2 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
+: ((s) - (e) > 1) ? \
+ ( ( inRANGE_helper_(U8, *((const U8*)s - 1), '\t', '\r') || ' ' == *((const U8*)s - 1) ) ? 1\
+ : ( ( 0x85 == *((const U8*)s - 1) || 0xA0 == *((const U8*)s - 1) ) && ( 0xC2 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
+: ((s) - (e) > 0) ? \
+ ( inRANGE_helper_(U8, *((const U8*)s - 1), '\t', '\r') || ' ' == *((const U8*)s - 1) )\
+: 0 )
+
+/*
NONCHAR: Non character code points
\p{_Perl_Nchar}
@@ -173,11 +202,57 @@
: ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 ) : 0 )
/*
+ SHORTER_NON_CHARS: # 3 bytes
+
+ 0xFDD0 - 0xFDEF
+ 0xFFFE - 0xFFFF
+*/
+/*** GENERATED CODE ***/
+#define is_SHORTER_NON_CHARS_utf8(s) \
+( ( 0xEF == ((const U8*)s)[0] ) ? \
+ ( ( 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xAF) ) ? 3 : 0 ) \
+ : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ) ? 3 : 0 )\
+: 0 )
+
+/*
+ LARGER_NON_CHARS: # 4 bytes
+
+ 0x1FFFE - 0x1FFFF
+ 0x2FFFE - 0x2FFFF
+ 0x3FFFE - 0x3FFFF
+ 0x4FFFE - 0x4FFFF
+ 0x5FFFE - 0x5FFFF
+ 0x6FFFE - 0x6FFFF
+ 0x7FFFE - 0x7FFFF
+ 0x8FFFE - 0x8FFFF
+ 0x9FFFE - 0x9FFFF
+ 0xAFFFE - 0xAFFFF
+ 0xBFFFE - 0xBFFFF
+ 0xCFFFE - 0xCFFFF
+ 0xDFFFE - 0xDFFFF
+ 0xEFFFE - 0xEFFFF
+ 0xFFFFE - 0xFFFFF
+ 0x10FFFE - 0x10FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_LARGER_NON_CHARS_utf8(s) \
+( ( 0xF0 == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
+: ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xF1, 0xF3) ) ? \
+ ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )
+
+/*
SURROGATE: Surrogate code points
\p{_Perl_Surrogate}
*/
/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s) \
+( ( ( 0xED == ((const U8*)s)[0] ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xA0, 0xBF) ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
#define is_SURROGATE_utf8_safe(s,e) \
( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBF) ) ) ? 3 : 0 )
@@ -199,7 +274,7 @@
( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
: ( 0x9E == ((const U8*)s)[1] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB4, 0xB5) ) ? 3 : 0 ) \
- : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8B, 0x8E) ) ) ? 3 : 0 )\
+ : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8B, 0x8F) ) ) ? 3 : 0 )\
: ( 0xE2 == ((const U8*)s)[0] ) ? \
( ( 0x80 == ((const U8*)s)[1] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBE) ) ? 3 : 0 ) \
@@ -1197,7 +1272,7 @@
: 0 )
/*
- HANGUL_ED: Hangul syllables whose first character is \xED
+ HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
0xD000 - 0xD7FF
*/
@@ -1271,7 +1346,7 @@
( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
: ( 0x42 == ((const U8*)s)[1] ) ? \
( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
: ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
@@ -1305,7 +1380,7 @@
/*** GENERATED CODE ***/
#define is_XDIGIT_high(s) \
( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x68) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB9) ) ? 4 : 0 )\
: ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x68, 0x69) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
/*** GENERATED CODE ***/
@@ -1324,7 +1399,7 @@
( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
: ( 0x42 == ((const U8*)s)[1] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
: ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
@@ -1339,6 +1414,35 @@
( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
/*
+ SPACE: Backwards \p{XPerlSpace}
+
+ \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_SPACE_utf8_safe_backwards(s,e) \
+( ((s) - (e) > 2) ? \
+ ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || '\n' == *((const U8*)s - 1) || 0x25 == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
+ : ( 0x41 == *((const U8*)s - 1) ) ? \
+ ( ( 0x41 == *((const U8*)s - 2) ) ? \
+ ( ( ( *((const U8*)s - 3) & 0xFB ) == 0xCA ) ? 3 : 0 ) \
+ : ( 0x63 == *((const U8*)s - 2) ) ? \
+ ( ( 0xBC == *((const U8*)s - 3) ) ? 3 : 0 ) \
+ : ( 0x80 == *((const U8*)s - 2) ) ? 2 : 0 ) \
+ : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x42, 0x48) || 0x51 == *((const U8*)s - 1) ) ?\
+ ( ( ( 0x41 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x49, 0x4A) ) ? \
+ ( ( ( inRANGE_helper_(U8, *((const U8*)s - 2), 0x41, 0x42) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( 0x56 == *((const U8*)s - 1) ) ? \
+ ( ( ( 0x42 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( ( ( 0x73 == *((const U8*)s - 1) ) && ( 0x43 == *((const U8*)s - 2) ) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+: ((s) - (e) > 1) ? \
+ ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || '\n' == *((const U8*)s - 1) || 0x25 == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
+ : ( ( 0x41 == *((const U8*)s - 1) ) && ( 0x80 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
+: ((s) - (e) > 0) ? \
+ ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || '\n' == *((const U8*)s - 1) || 0x25 == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) )\
+: 0 )
+
+/*
NONCHAR: Non character code points
\p{_Perl_Nchar}
@@ -1348,25 +1452,73 @@
( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
( ( 0x73 == ((const U8*)s)[1] ) ? \
( ( 0x55 == ((const U8*)s)[2] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
: ( 0x56 == ((const U8*)s)[2] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
: ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
: 0 ) \
- : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
+ : ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) ?\
( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
: ( 0xED == ((const U8*)s)[0] ) ? \
- ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
+ ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 ) : 0 )
/*
+ SHORTER_NON_CHARS: # 4 bytes
+
+ 0xFDD0 - 0xFDEF
+ 0xFFFE - 0xFFFF
+ 0x1FFFE - 0x1FFFF
+ 0x2FFFE - 0x2FFFF
+ 0x3FFFE - 0x3FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_SHORTER_NON_CHARS_utf8(s) \
+( ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] ) ? \
+ ( ( 0x55 == ((const U8*)s)[2] ) ? \
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
+ : ( 0x56 == ((const U8*)s)[2] ) ? \
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
+ : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( ( ( ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) && ( 0x73 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )
+
+/*
+ LARGER_NON_CHARS: # 5 bytes
+
+ 0x4FFFE - 0x4FFFF
+ 0x5FFFE - 0x5FFFF
+ 0x6FFFE - 0x6FFFF
+ 0x7FFFE - 0x7FFFF
+ 0x8FFFE - 0x8FFFF
+ 0x9FFFE - 0x9FFFF
+ 0xAFFFE - 0xAFFFF
+ 0xBFFFE - 0xBFFFF
+ 0xCFFFE - 0xCFFFF
+ 0xDFFFE - 0xDFFFF
+ 0xEFFFE - 0xEFFFF
+ 0xFFFFE - 0xFFFFF
+ 0x10FFFE - 0x10FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_LARGER_NON_CHARS_utf8(s) \
+( ( 0xED == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )
+
+/*
SURROGATE: Surrogate code points
\p{_Perl_Surrogate}
*/
/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s) \
+( ( ( 0xDD == ((const U8*)s)[0] ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
#define is_SURROGATE_utf8_safe(s,e) \
-( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ) ? 4 : 0 )
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xBF) ) ) ? 4 : 0 )
/*
QUOTEMETA: Meta-characters that \Q should quote
@@ -1374,74 +1526,68 @@
\p{_Perl_Quotemeta}
*/
/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high_part0_(s) \
-( ( 0x63 == ((const U8*)s)[1] ) ? \
+#define is_QUOTEMETA_high(s) \
+( ( 0xB1 == ((const U8*)s)[0] ) ? \
+ ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBB == ((const U8*)s)[0] ) ? \
+ ( ( 0x51 == ((const U8*)s)[1] ) ? \
+ ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBC == ((const U8*)s)[0] ) ? \
+ ( ( 0x63 == ((const U8*)s)[1] ) ? \
( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x64) ) ) ? 3 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high_part1_(s) \
-( ( 0xBE == ((const U8*)s)[0] ) ? \
- ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x55) ) ) ? 3 : 0 )\
+ : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x64) ) ) ? 3 : 0 )\
+: ( 0xBE == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x56) ) ) ? 3 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
- ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x54, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
+ ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xAD, 0xBF) ) ?\
+ 3 \
: ( 0x42 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBE) ) ? 3 : 0 )\
: ( 0x43 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x42, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA1, 0xB3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB5, 0xBF) ) ? 3 : 0 )\
: ( 0x44 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) ) ? 3 : 0 )\
- : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAF) ) ? 3 : 0 )\
+ : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB0, 0xBF) ) ) ? 3 : 0 )\
: ( 0xCB == ((const U8*)s)[0] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x43) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x69) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x71, 0x73) ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA0, 0xA2) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA8, 0xBA) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xBD, 0xBF) ) ?\
+ 3 \
: ( 0x6A == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x64) ) ? 3 : 0 )\
- : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xB5) ) ? 3 : 0 )\
+ : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB4, 0xBF) ) ) ? 3 : 0 )\
: ( 0xCC == ((const U8*)s)[0] ) ? \
- ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
+ 3 \
: ( 0xCD == ((const U8*)s)[0] ) ? \
- ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x59) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xB0, 0xB3) ) ?\
+ 3 \
+ : 0 ) \
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xA3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA8, 0xBF) ) ? 3 : 0 )\
: ( 0x42 == ((const U8*)s)[1] ) ? \
- ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEF ) == 0xA0 ) ? 3 : 0 )\
: ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xDD == ((const U8*)s)[0] ) ? \
( ( 0x73 == ((const U8*)s)[1] ) ? \
( ( 0x4A == ((const U8*)s)[2] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ? 4 : 0 )\
: ( 0x57 == ((const U8*)s)[2] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
: ( 0x59 == ((const U8*)s)[2] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
: ( 0x66 == ((const U8*)s)[2] ) ? \
( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
: ( 0x71 == ((const U8*)s)[2] ) ? \
( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x67) ) ) ? 4 : 0 )\
+ : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB8) ) ) ? 4 : 0 )\
: 0 ) \
: ( 0xDF == ((const U8*)s)[0] ) ? \
( ( 0x56 == ((const U8*)s)[1] ) ? \
( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
: ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x69) ) ) ? 4 : 0 )\
-: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x70, 0x73) ) ) ? 5 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high(s) \
-( ( 0xB1 == ((const U8*)s)[0] ) ? \
- ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB8 == ((const U8*)s)[0] ) ? \
- ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xBB == ((const U8*)s)[0] ) ? \
- ( ( 0x51 == ((const U8*)s)[1] ) ? \
- ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0_(s) : is_QUOTEMETA_high_part1_(s) )
+: ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) ? 5 : 0 )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -1474,7 +1620,7 @@
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
( ( 0xB1 == ((const U8*)s)[2] ) ? \
@@ -1518,13 +1664,13 @@
( ( 0x46 == ((const U8*)s)[2] ) ? \
( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: ( 0x63 == ((const U8*)s)[2] ) ? \
- ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[5]) & 0xF7 ) == 0xA5 ) || ((const U8*)s)[5] == 0x52 || ((const U8*)s)[5] == 0x65 ) ) ? 6 : 0 )\
: ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 )
@@ -1559,7 +1705,7 @@
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
( ( 0xB1 == ((const U8*)s)[2] ) ? \
@@ -1581,7 +1727,7 @@
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 )
@@ -1617,7 +1763,7 @@
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
( ( 0xB1 == ((const U8*)s)[2] ) ? \
@@ -2186,7 +2332,7 @@
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB4 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? 2 \
: ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
: ( 0x68 == ((const U8*)s)[1] ) ? \
@@ -2204,7 +2350,7 @@
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
- : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
@@ -2215,7 +2361,7 @@
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB4 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x66 ) ? 2 : 0 )\
: ( 0xB5 == ((const U8*)s)[0] ) ? \
( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
: ( 0xB8 == ((const U8*)s)[0] ) ? \
@@ -2223,7 +2369,7 @@
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
- : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 1) ? \
( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
@@ -2234,7 +2380,7 @@
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB4 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x66 ) ? 2 : 0 )\
: ( ( 0xB5 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
: ((e)-(s) > 0) ? \
( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
@@ -2275,14 +2421,14 @@
( ( 0x63 == ((const U8*)s)[1] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
: ( 0x69 == ((const U8*)s)[1] ) ? \
- ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF9 ) == 0xB0 ) ? 3 : 0 )\
: ( 0x70 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
+ 3 \
: ( 0x71 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) || 0x59 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF0 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFA ) == 0xB2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
: ( 0x72 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) ) ? 3 : 0 )\
- : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x59 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xA4 ) ) ? 3 : 0 )\
+ : ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ((const U8*)s)[2] == 0x45 || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x66) ) ) ? 4 : 0 )
/*
@@ -2292,9 +2438,9 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
-( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '[' == ((const U8*)s)[0] || ']' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
-: ( 0x80 == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0x8A, 0x8B) ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ? 2 : 0 )\
+( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
+: ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
+ 2 \
: ( 0x8D == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
: ( 0x8E == ((const U8*)s)[0] ) ? \
@@ -2335,9 +2481,9 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
-( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '[' == ((const U8*)s)[0] || ']' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
-: ( 0x80 == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0x8A, 0x8B) ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ? 2 : 0 )\
+( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
+: ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
+ 2 \
: ( 0x8D == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
: ( 0x8E == ((const U8*)s)[0] ) ? \
@@ -2383,6 +2529,15 @@
: ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 ) : 0 )\
: 0 )
+/*
+ HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
+
+ 0x1 - 0x0
+*/
+/*** GENERATED CODE ***/
+#define is_HANGUL_ED_utf8_safe(s,e) \
+( 0 )
+
#endif /* EBCDIC 1047 */
#if 'A' == 193 /* EBCDIC 037 */ \
@@ -2449,7 +2604,7 @@
( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
: ( 0x42 == ((const U8*)s)[1] ) ? \
( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
: ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
@@ -2483,7 +2638,7 @@
/*** GENERATED CODE ***/
#define is_XDIGIT_high(s) \
( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x67) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB9) ) ? 4 : 0 )\
: ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x67, 0x68) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
/*** GENERATED CODE ***/
@@ -2502,7 +2657,7 @@
( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
: ( 0x42 == ((const U8*)s)[1] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
: ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
@@ -2517,6 +2672,35 @@
( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
/*
+ SPACE: Backwards \p{XPerlSpace}
+
+ \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_SPACE_utf8_safe_backwards(s,e) \
+( ((s) - (e) > 2) ? \
+ ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || 0x15 == *((const U8*)s - 1) || '\n' == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
+ : ( 0x41 == *((const U8*)s - 1) ) ? \
+ ( ( 0x41 == *((const U8*)s - 2) ) ? \
+ ( ( ( *((const U8*)s - 3) & 0xFB ) == 0xCA ) ? 3 : 0 ) \
+ : ( 0x62 == *((const U8*)s - 2) ) ? \
+ ( ( 0xBD == *((const U8*)s - 3) ) ? 3 : 0 ) \
+ : ( 0x78 == *((const U8*)s - 2) ) ? 2 : 0 ) \
+ : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x42, 0x48) || 0x51 == *((const U8*)s - 1) ) ?\
+ ( ( ( 0x41 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x49, 0x4A) ) ? \
+ ( ( ( inRANGE_helper_(U8, *((const U8*)s - 2), 0x41, 0x42) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( 0x56 == *((const U8*)s - 1) ) ? \
+ ( ( ( 0x42 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+ : ( ( ( 0x72 == *((const U8*)s - 1) ) && ( 0x43 == *((const U8*)s - 2) ) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
+: ((s) - (e) > 1) ? \
+ ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || 0x15 == *((const U8*)s - 1) || '\n' == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
+ : ( ( 0x41 == *((const U8*)s - 1) ) && ( 0x78 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
+: ((s) - (e) > 0) ? \
+ ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || 0x15 == *((const U8*)s - 1) || '\n' == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) )\
+: 0 )
+
+/*
NONCHAR: Non character code points
\p{_Perl_Nchar}
@@ -2526,25 +2710,73 @@
( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
( ( 0x72 == ((const U8*)s)[1] ) ? \
( ( 0x55 == ((const U8*)s)[2] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
: ( 0x56 == ((const U8*)s)[2] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
: ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
: 0 ) \
- : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
+ : ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) ?\
( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
: ( 0xED == ((const U8*)s)[0] ) ? \
- ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
+ ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 ) : 0 )
/*
+ SHORTER_NON_CHARS: # 4 bytes
+
+ 0xFDD0 - 0xFDEF
+ 0xFFFE - 0xFFFF
+ 0x1FFFE - 0x1FFFF
+ 0x2FFFE - 0x2FFFF
+ 0x3FFFE - 0x3FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_SHORTER_NON_CHARS_utf8(s) \
+( ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( 0x72 == ((const U8*)s)[1] ) ? \
+ ( ( 0x55 == ((const U8*)s)[2] ) ? \
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
+ : ( 0x56 == ((const U8*)s)[2] ) ? \
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( ( ( ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )
+
+/*
+ LARGER_NON_CHARS: # 5 bytes
+
+ 0x4FFFE - 0x4FFFF
+ 0x5FFFE - 0x5FFFF
+ 0x6FFFE - 0x6FFFF
+ 0x7FFFE - 0x7FFFF
+ 0x8FFFE - 0x8FFFF
+ 0x9FFFE - 0x9FFFF
+ 0xAFFFE - 0xAFFFF
+ 0xBFFFE - 0xBFFFF
+ 0xCFFFE - 0xCFFFF
+ 0xDFFFE - 0xDFFFF
+ 0xEFFFE - 0xEFFFF
+ 0xFFFFE - 0xFFFFF
+ 0x10FFFE - 0x10FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_LARGER_NON_CHARS_utf8(s) \
+( ( 0xED == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )
+
+/*
SURROGATE: Surrogate code points
\p{_Perl_Surrogate}
*/
/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s) \
+( ( ( 0xDD == ((const U8*)s)[0] ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
#define is_SURROGATE_utf8_safe(s,e) \
-( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ) ? 4 : 0 )
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xBF) ) ) ? 4 : 0 )
/*
QUOTEMETA: Meta-characters that \Q should quote
@@ -2552,74 +2784,68 @@
\p{_Perl_Quotemeta}
*/
/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high_part0_(s) \
-( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x54, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
+#define is_QUOTEMETA_high(s) \
+( ( 0xAF == ((const U8*)s)[0] ) ? \
+ ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBC == ((const U8*)s)[0] ) ? \
+ ( ( 0x51 == ((const U8*)s)[1] ) ? \
+ ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBD == ((const U8*)s)[0] ) ? \
+ ( ( 0x62 == ((const U8*)s)[1] ) ? \
+ ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ) ? 3 : 0 )\
+: ( 0xBE == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x56) ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xAD, 0xBF) ) ?\
+ 3 \
: ( 0x42 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x71) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBE) ) ? 3 : 0 )\
: ( 0x43 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x42, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA1, 0xB3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB5, 0xBF) ) ? 3 : 0 )\
: ( 0x44 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) ) ? 3 : 0 )\
- : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x57, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high_part1_(s) \
-( ( 0xCB == ((const U8*)s)[0] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x43) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x68) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAF) ) ? 3 : 0 )\
+ : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB0, 0xBF) ) ) ? 3 : 0 )\
+: ( 0xCB == ((const U8*)s)[0] ) ? \
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA0, 0xA2) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA8, 0xBA) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xBD, 0xBF) ) ?\
+ 3 \
: ( 0x69 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ? 3 : 0 )\
- : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xB5) ) ? 3 : 0 )\
+ : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB4, 0xBF) ) ) ? 3 : 0 )\
: ( 0xCC == ((const U8*)s)[0] ) ? \
- ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
+ 3 \
: ( 0xCD == ((const U8*)s)[0] ) ? \
- ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x59) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xB0, 0xB3) ) ?\
+ 3 \
+ : 0 ) \
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xA3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA8, 0xBF) ) ? 3 : 0 )\
: ( 0x42 == ((const U8*)s)[1] ) ? \
- ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEF ) == 0xA0 ) ? 3 : 0 )\
: ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xDD == ((const U8*)s)[0] ) ? \
( ( 0x72 == ((const U8*)s)[1] ) ? \
( ( 0x4A == ((const U8*)s)[2] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ? 4 : 0 )\
: ( 0x57 == ((const U8*)s)[2] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
+ ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
: ( 0x59 == ((const U8*)s)[2] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
: ( 0x65 == ((const U8*)s)[2] ) ? \
( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
: ( 0x70 == ((const U8*)s)[2] ) ? \
( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x66) ) ) ? 4 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB8) ) ) ? 4 : 0 )\
: 0 ) \
: ( 0xDF == ((const U8*)s)[0] ) ? \
( ( 0x56 == ((const U8*)s)[1] ) ? \
( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
- : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x68) ) ) ? 4 : 0 )\
-: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x51, 0x59) || 0x5F == ((const U8*)s)[4] || inRANGE_helper_(U8, ((const U8*)s)[4], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x70, 0x72) ) ) ? 5 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high(s) \
-( ( 0xAF == ((const U8*)s)[0] ) ? \
- ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB7 == ((const U8*)s)[0] ) ? \
- ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xBC == ((const U8*)s)[0] ) ? \
- ( ( 0x51 == ((const U8*)s)[1] ) ? \
- ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xBD == ((const U8*)s)[0] ) ? \
- ( ( 0x62 == ((const U8*)s)[1] ) ? \
- ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ) ? 3 : 0 )\
-: ( 0xBE == ((const U8*)s)[0] ) ? \
- ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x55) ) ) ? 3 : 0 )\
-: ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0_(s) : is_QUOTEMETA_high_part1_(s) )
+ : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB3, 0xBA) ) ) ? 4 : 0 )\
+: ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) ? 5 : 0 )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -2652,7 +2878,7 @@
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
( ( 0xAF == ((const U8*)s)[2] ) ? \
@@ -2696,13 +2922,13 @@
( ( 0x46 == ((const U8*)s)[2] ) ? \
( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: ( 0x62 == ((const U8*)s)[2] ) ? \
- ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[5]) & 0xF7 ) == 0xA5 ) || ((const U8*)s)[5] == 0x52 || ((const U8*)s)[5] == 0x64 ) ) ? 6 : 0 )\
: ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 )
@@ -2737,7 +2963,7 @@
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
( ( 0xAF == ((const U8*)s)[2] ) ? \
@@ -2759,7 +2985,7 @@
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 )
@@ -2795,7 +3021,7 @@
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
( ( 0xAF == ((const U8*)s)[2] ) ? \
@@ -3364,7 +3590,7 @@
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB3 == ((const U8*)s)[0] ) ? \
- ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? 2 \
: ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
: ( 0x67 == ((const U8*)s)[1] ) ? \
@@ -3382,7 +3608,7 @@
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
- : ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
@@ -3393,7 +3619,7 @@
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB3 == ((const U8*)s)[0] ) ? \
- ( ( ((const U8*)s)[1] == 0x53 || ((const U8*)s)[1] == 0x55 || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) ) ? 2 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x65 ) ? 2 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
: ( 0xB7 == ((const U8*)s)[0] ) ? \
@@ -3401,7 +3627,7 @@
: ( 0xBF == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
- : ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 1) ? \
( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
@@ -3412,7 +3638,7 @@
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB3 == ((const U8*)s)[0] ) ? \
- ( ( ((const U8*)s)[1] == 0x53 || ((const U8*)s)[1] == 0x55 || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) ) ? 2 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x65 ) ? 2 : 0 )\
: ( ( 0xB4 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
: ((e)-(s) > 0) ? \
( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
@@ -3453,15 +3679,15 @@
( ( 0x62 == ((const U8*)s)[1] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x68) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
: ( 0x68 == ((const U8*)s)[1] ) ? \
- ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF9 ) == 0xB0 ) ? 3 : 0 )\
: ( 0x6A == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
+ 3 \
: ( 0x70 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x65) || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF0 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFA ) == 0xB2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
: ( 0x71 == ((const U8*)s)[1] ) ? \
- ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x65) ) ? 3 : 0 )\
- : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F || ( ( ((const U8*)s)[2] & '7' ) == 0x62 ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x65) ) ) ? 4 : 0 )
+ ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xA4 ) ) ? 3 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ((const U8*)s)[2] == 0x45 || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xA6) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB3, 0xB7) ) ) ? 4 : 0 )
/*
PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
@@ -3470,9 +3696,9 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
-( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', ';') || inRANGE_helper_(U8, ((const U8*)s)[0], '-', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '^' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '[', ']') || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
-: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ? 2 : 0 )\
+( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
+: ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
+ 2 \
: ( 0x8C == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
: ( 0x8D == ((const U8*)s)[0] ) ? \
@@ -3513,9 +3739,9 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
-( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', ';') || inRANGE_helper_(U8, ((const U8*)s)[0], '-', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '^' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '[', ']') || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
-: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
- ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ? 2 : 0 )\
+( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
+: ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
+ 2 \
: ( 0x8C == ((const U8*)s)[0] ) ? \
( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
: ( 0x8D == ((const U8*)s)[0] ) ? \
@@ -3561,62 +3787,72 @@
: ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 ) : 0 )\
: 0 )
+/*
+ HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
+
+ 0x1 - 0x0
+*/
+/*** GENERATED CODE ***/
+#define is_HANGUL_ED_utf8_safe(s,e) \
+( 0 )
+
#endif /* EBCDIC 037 */
#endif /* PERL_REGCHARCLASS_H_ */
/* Generated from:
- * d60b1a3dffe16c4aaaf3f00d21993bb320d05e9828b106182214764d4c69935c lib/Unicode/UCD.pm
- * ce96627d4fc91b4fd886c409caeb9b76cf7bd345e12f05c6701add7f233f6437 lib/unicore/ArabicShaping.txt
- * 0e69eef3da722cc104522d8372e86d5b86bb7afcc761b0c991e39e832294946d lib/unicore/BidiBrackets.txt
- * a00d9d21585106a52113fb7b1d3d0373a5835be72e76862fb559ebddd474d70e lib/unicore/BidiMirroring.txt
- * 81a82b6a9fcf1a9c12f588d7a1decd73a9afdc4cac95b0eb7e576e7942d6c19f lib/unicore/Blocks.txt
- * 99d231d7c91688bbe8ca8ccebcc2f46b5b222f844babe4827295bae11e2abe5f lib/unicore/CaseFolding.txt
- * 38badafd818d8405324fe298c0676be0c95186368c84b5368375fd871a645144 lib/unicore/CompositionExclusions.txt
- * e779a443d3aa2a3166a15becaa2b737c922480e32c0453d5956093633555078f lib/unicore/DAge.txt
- * a5d45f59b39deaab3c72ce8c1a2e212a5e086dff11b1f9d5bb0e352642e82248 lib/unicore/DCoreProperties.txt
- * 3ac44e11c84bdaf6b207d2c2c20eed857ae17052393fc7f71b0fe951186ba906 lib/unicore/DNormalizationProps.txt
- * 4f822ec7a9ebbb3138ad29bade8b9688d25b39c7a3c0b7431f01e7229e4fcb6e lib/unicore/EastAsianWidth.txt
- * fc535aa1047a70105ab9a22c2b4c3f363a2ff02fe48ebbc5eeb9873b2752ff0b lib/unicore/EquivalentUnifiedIdeograph.txt
- * b9c5158ce944d2fec57e0e4ecb716bdabfc3bdde73525f1772fe03f61a30d473 lib/unicore/HangulSyllableType.txt
- * 36c1b2a626ff1fb23b8b21e6ea8712698f8ce668dded1cb48b8ddf6a6a1b04e9 lib/unicore/IdStatus.txt
- * 4857c4ffa3898e6128b2d46b0a02e499a663fb91464a69ef3611096f01293acc lib/unicore/IdType.txt
- * 69197b019fa5f2fb0d8c6ed1ed8acb9f2e8b5b8f45a947953ffa652f3bf54983 lib/unicore/IndicPositionalCategory.txt
- * 6604e2f0fde7428675364aa0006bc686b79488dcc60ae8cb29800af2be3352e8 lib/unicore/IndicSyllabicCategory.txt
- * 84ead63924aaa74b988b2eaf254a8733276ed108633ce2ef77a9ee1de7818162 lib/unicore/Jamo.txt
- * d5abcd8f54c8a2aa912924c485ccf7f968ad98feaa303d8e9a29ad89172f1faf lib/unicore/LineBreak.txt
- * 985128e8c8b2540233331d9b27d897d2c23bd5bcf1d05da960befce6efc59542 lib/unicore/NameAliases.txt
- * 27282b8aa01d4d0c44aef436cb74195ae8639ffa187aeee4e6247af76febea76 lib/unicore/NamedSequences.txt
- * 485b5a3ed25dbf1f94dfa5a9b69d8b4550ffd0c33045ccc55ccfd7c80b2a40cf lib/unicore/PropList.txt
- * 6b3902e9268cd843fe65cbdea992108c9528343ec0679f800b96f356bb553e5a lib/unicore/PropValueAliases.txt
- * 2bd5777847e3d6add3c7e5c0d1393ddcab89e5a0ac3ff498cb0c53041f0b86e4 lib/unicore/PropertyAliases.txt
- * 03a61dc89422e44cc2b73e8e893321007880ab69e2a4d281c0f1bc29c602b9d0 lib/unicore/ScriptExtensions.txt
- * 9a5ed1ec9b5f0d7147e9371ad792ab39203611af7637cff2aa4a5c663b172cde lib/unicore/Scripts.txt
- * 6424312f1dc39b22e0ff9c0ffb13dfad424d9b03e6a6dc6bca941f6bf5ef1ffd lib/unicore/SpecialCasing.txt
- * bdbffbbfc8ad4d3a6d01b5891510458f3d36f7170422af4ea2bed3211a73e8bb lib/unicore/UnicodeData.txt
- * 160f41816234addb511901d5f21febd69574578dd93de6ef8153e35693325575 lib/unicore/VerticalOrientation.txt
- * 32dfb37d21db530529a6ec3dc13d96f21f8e7c7faf7ff3db8a9760cd76cec81d lib/unicore/auxiliary/GCBTest.txt
- * 2bd3c5e2d62701ff81fb3ec318e179a4618cabb1493b1e0dd2b4e7e56c5437c4 lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * c51fbebfa82a0f36473b44bfd71d5ef6cb6a1f81fb313375dc9a1910d79bb2b6 lib/unicore/auxiliary/LBTest.txt
- * 80b0107750818d8f370bd120b6fe56b6855b60581f72affe8b60409a469b4b65 lib/unicore/auxiliary/SBTest.txt
- * 09e3166ebab166ac630a227f77f4e794ebd433271abd5588f5a67e7f199c71ee lib/unicore/auxiliary/SentenceBreakProperty.txt
- * bf5373ce28a5df06796c93dc159dd15a997bb2950c92704b40ae8190cfc3716d lib/unicore/auxiliary/WBTest.txt
- * a2b7373cf2fe3fa3b26dbb53405ca849985f771ff47f1c61743978003ff80499 lib/unicore/auxiliary/WordBreakProperty.txt
- * d2686f400a638c80775d7c662556fb8fa8dd3bbe4aa548d9d31624264c6e1bb1 lib/unicore/emoji/emoji.txt
- * b827ae5da8c2b08947cc9a120a7b7fd2f1676fb160b508df78075381635b127c lib/unicore/extracted/DBidiClass.txt
- * 6fdc5b5ef40444a8f0c772e6b67c00498d4216fe0c0fdf76744ce338f2ad3810 lib/unicore/extracted/DBinaryProperties.txt
- * e14928a5bf6ad5958a80332bd42e96e14420080a95c660e5da29384e496755d0 lib/unicore/extracted/DCombiningClass.txt
- * 579a03281fbe87b78d5d9a8523de4d255edd7e4ca6eab0e4c7729de97e9b89b1 lib/unicore/extracted/DDecompositionType.txt
- * ad83c59b257e9d480ffd3001d4ac240c5fed7cb1919453e1c4e8877035256bcd lib/unicore/extracted/DEastAsianWidth.txt
- * 4502f0969e4e6558c4b4c6ca4c23dad70b863d61dd3d5eed1a62a6c3c99fd570 lib/unicore/extracted/DGeneralCategory.txt
- * 00bb88b89e2adb646f3177f9444e2d3192386b81a5de9556104b338274b253e1 lib/unicore/extracted/DJoinGroup.txt
- * ac835b6e11a60c9820d3cf2d1cb0558dd68efb8f53f404a51632e4726690a6d7 lib/unicore/extracted/DJoinType.txt
- * baba9dfc133e3cb770a89aaf0973b1341fa61c2da6c176baf6428898b3b568d8 lib/unicore/extracted/DLineBreak.txt
- * 6d4a8c945dd7db83ed617cbb7d937de7f4ecf016ff22970d846e996a7c9a2a5d lib/unicore/extracted/DNumType.txt
- * 5b7c14380d5cceeaffcfbc18db1ed936391d2af2d51f5a41f1a17b692c77e59b lib/unicore/extracted/DNumValues.txt
- * 28076ceb3f4e2514ea9db243f4b918b9a7c2807b036237e2276b99b2659d9474 lib/unicore/mktables
- * 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version
- * 24120d5e0c9685c442c93bc1dbea9b85ef973bf8e9474baf0e55b160c288226b regen/charset_translations.pl
- * 3635c6e564558e965018947bdab45f37d9a4fa82eb05b2694eae1a04bf7e65a3 regen/regcharclass.pl
+ * 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
+ * eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+ * 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+ * b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+ * 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+ * cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+ * 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+ * 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+ * d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+ * d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+ * 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+ * f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+ * 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+ * 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+ * 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+ * 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+ * ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+ * 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+ * 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+ * 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+ * 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+ * fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+ * e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+ * 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+ * e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+ * 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+ * cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+ * 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+ * 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+ * ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+ * 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+ * 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+ * f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+ * 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+ * 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+ * 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+ * f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+ * ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+ * db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+ * d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+ * fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+ * e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+ * c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+ * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+ * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+ * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+ * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
+ * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
+ * acc94e4afc339fe2cf2ae74d6e1cbcf2c396328d78e56236ad314eadbfc84125 regen/regcharclass.pl
* b2f896452d2b30da3e04800f478c60c1fd0b03d6b668689b020f1e3cf1f1cdd9 regen/regcharclass_multi_char_folds.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h
index c46451fcea..31c91e6a68 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h
@@ -10,8 +10,65 @@
#if ! defined(PERL_REGCOMP_H_) && ( defined(PERL_CORE) \
|| defined(PERL_EXT_RE_BUILD))
+
#define PERL_REGCOMP_H_
+#ifndef RE_PESSIMISTIC_PARENS
+/* Define this to 1 if you want to enable a really aggressive and
+ * inefficient paren cleanup during backtracking which should ensure
+ * correctness. Doing so should fix any bugs related to backreferences,
+ * at the cost of saving and restoring paren state far more than we
+ * necessarily must.
+ *
+ * When it is set to 0 we try to optimize away unnecessary save/restore
+ * operations which could potentially introduce bugs. We should pass our
+ * test suite with this as 0, but setting it to 1 might fix cases we do
+ * not currently test for. If setting this to 1 does fix a bug, then
+ * review the code related to storing and restoring paren state.
+ *
+ * See comment for VOLATILE_REF below for more details of a
+ * related case.
+ */
+#define RE_PESSIMISTIC_PARENS 0
+#endif
+
+/* a VOLATILE_REF is a ref which is inside of a capturing group and it
+ * refers to the capturing group it is inside of or to a following capture
+ * group which might be affected by what this capture group matches, and
+ * thus the ref requires additional backtracking support. For example:
+ *
+ * "xa=xaaa" =~ /^(xa|=?\1a){2}\z/
+ *
+ * should not match. In older perls the matching process would go like this:
+ *
+ * Iter 1: "xa" matches in capture group.
+ * Iter 2: "xa" does not match, goes to next alternation.
+ * "=" matches in =?
+ * Bifurcates here (= might not match)
+ * "xa" matches via \1 from previous iteration
+ * "a" matches via "a" at end of second alternation
+ * # at this point $1 is "=xaa"
+ * \z does not match -> backtracks.
+ * Backtracks to Iter 2 "=?" Bifurcation point where we have NOT matched "="
+ * "=xaa" matches via \1 (as $1 has not been reset)
+ * "a" matches via "a" at end of second alternation
+ * "\z" does match. -> Pattern matches overall.
+ *
+ * What should happen and now does happen instead is:
+ *
+ * Backtracks to Iter 2 "=?" Bifurcation point where we have NOT matched "=",
+ * \1 does not match as it is "xa" (as $1 was reset when backtracked)
+ * and the current character in the string is an "="
+ *
+ * The fact that \1 in this case is marked as a VOLATILE_REF is what ensures
+ * that we reset the capture buffer properly.
+ *
+ * See 59db194299c94c6707095797c3df0e2f67ff82b2
+ * and 38508ce8fc3a1bd12a3bb65e9d4ceb9b396a18db
+ * for more details.
+ */
+#define VOLATILE_REF 1
+
#include "regcharclass.h"
/* Convert branch sequences to more efficient trie ops? */
@@ -26,11 +83,6 @@
/* Not for production use: */
#define PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS 0
-/* Activate offsets code - set to if 1 to enable */
-#ifdef DEBUGGING
-#define RE_TRACK_PATTERN_OFFSETS
-#endif
-
/*
* Structure for regexp "program". This is essentially a linear encoding
* of a nondeterministic finite-state machine (aka syntax charts or
@@ -65,30 +117,28 @@
/* This is the stuff that used to live in regexp.h that was truly
private to the engine itself. It now lives here. */
- typedef struct regexp_internal {
- union {
- U32 *offsets; /* offset annotations 20001228 MJD
- data about mapping the program to the
- string -
- offsets[0] is proglen when this is used
- */
- U32 proglen;
- } u;
-
+typedef struct regexp_internal {
regnode *regstclass; /* Optional startclass as identified or constructed
by the optimiser */
struct reg_data *data; /* Additional miscellaneous data used by the program.
Used to make it easier to clone and free arbitrary
data that the regops need. Often the ARG field of
- a regop is an index into this structure */
+ a regop is an index into this structure. NOTE the
+ 0th element of this structure is NEVER used and is
+ strictly reserved for internal purposes. */
struct reg_code_blocks *code_blocks;/* positions of literal (?{}) */
- int name_list_idx; /* Optional data index of an array of paren names */
+ U32 proglen; /* size of the compiled program in regnodes */
+ U32 name_list_idx; /* Optional data index of an array of paren names,
+ only valid when RXp_PAREN_NAMES(prog) is true,
+ 0 means "no value" like any other index into the
+ data array.*/
regnode program[1]; /* Unwarranted chumminess with compiler. */
} regexp_internal;
#define RXi_SET(x,y) (x)->pprivate = (void*)(y)
#define RXi_GET(x) ((regexp_internal *)((x)->pprivate))
#define RXi_GET_DECL(r,ri) regexp_internal *ri = RXi_GET(r)
+#define RXi_GET_DECL_NULL(r,ri) regexp_internal *ri = (r) ? RXi_GET(r) : NULL
/*
* Flags stored in regexp->intflags
* These are used only internally to the regexp engine
@@ -114,72 +164,166 @@
#define PREGf_ANCH_SBOL 0x00000800
#define PREGf_ANCH_GPOS 0x00001000
#define PREGf_RECURSE_SEEN 0x00002000
+#define PREGf_PESSIMIZE_SEEN 0x00004000
#define PREGf_ANCH \
( PREGf_ANCH_SBOL | PREGf_ANCH_GPOS | PREGf_ANCH_MBOL )
/* this is where the old regcomp.h started */
+
+/* Define the various regnode structures. These all should be a multiple
+ * of 32 bits large, and they should by and large correspond with each other
+ * in terms of naming, etc. Things can and will break in subtle ways if you
+ * change things without care. If you look at regexp.h you will see it
+ * contains this:
+ *
+ * union regnode_head {
+ * struct {
+ * union {
+ * U8 flags;
+ * U8 str_len_u8;
+ * U8 first_byte;
+ * } u_8;
+ * U8 type;
+ * U16 next_off;
+ * } data;
+ * U32 data_u32;
+ * };
+ *
+ * struct regnode {
+ * union regnode_head head;
+ * };
+ *
+ * Which really is a complicated and alignment friendly version of
+ *
+ * struct {
+ * U8 flags;
+ * U8 type;
+ * U16 next_off;
+ * };
+ *
+ * This structure is the base unit of elements in the regexp program.
+ * When we increment our way through the program we increment by the
+ * size of this structure (32 bits), and in all cases where regnode
+ * sizing is considered it is in units of this structure. All regnodes
+ * have a union regnode_head as their first parameter.
+ *
+ * This implies that no regnode style structure should contain 64 bit
+ * aligned members. Since the base regnode is 32 bits any member might
+ * not be 64 bit aligned no matter how you might try to pad out the
+ * struct itself (the regnode_ssc is special in this regard as it is
+ * never used in a program directly). If you want to store 64 bit
+ * members you need to store them specially. The struct regnode_p and the
+ * ARGp() and ARGp_SET() macros and related inline functions provide an example
+ * solution. Note they deal with a slightly more complicated problem than simple
+ * alignment, as pointers may be 32 bits or 64 bits depending on platform,
+ * but they illustrate the pattern to follow if you want to put a 64 bit value
+ * into a regnode.
+
+ * NOTE: Ideally we do not put pointers into the regnodes in a program. Instead
+ * we put them in the "data" part of the regexp structure and store the index into
+ * the data in the pointers in the regnode. This allows the pointer to be handled
+ * properly during clone/free operations (eg refcount bookkeeping). See S_add_data(),
+ * Perl_regdupe_internal(), Perl_regfree_internal() in regcomp.c for how the data
+ * array can be used, the letters 'arsSu' all refer to different types of SV that
+ * we already have support for in the data array.
+ */
+
+union regnode_arg {
+ I32 i32;
+ U32 u32;
+ struct {
+ U16 u16a;
+ U16 u16b;
+ } hi_lo;
+};
+
+
struct regnode_string {
- U8 str_len;
- U8 type;
- U16 next_off;
+ union regnode_head head;
char string[1];
};
struct regnode_lstring { /* Constructed this way to keep the string aligned. */
- U8 flags;
- U8 type;
- U16 next_off;
- U32 str_len; /* Only 18 bits allowed before would overflow 'next_off' */
+ union regnode_head head;
+ U32 str_len_u32; /* Only 18 bits allowed before would overflow 'next_off' */
char string[1];
};
struct regnode_anyofhs { /* Constructed this way to keep the string aligned. */
- U8 str_len;
- U8 type;
- U16 next_off;
- U32 arg1; /* set by set_ANYOF_arg() */
+ union regnode_head head;
+ union regnode_arg arg1;
char string[1];
};
-/* Argument bearing node - workhorse,
- arg1 is often for the data field */
+/* Argument bearing node - workhorse, ARG1u() is often used for the data field
+ * Can store either a signed 32 bit value via ARG1i() or unsigned 32 bit value
+ * via ARG1u(), or two unsigned 16 bit values via ARG1a() or ARG1b()
+ */
struct regnode_1 {
- U8 flags;
- U8 type;
- U16 next_off;
- U32 arg1;
+ union regnode_head head;
+ union regnode_arg arg1;
};
/* Node whose argument is 'SV *'. This needs to be used very carefully in
- * situations where pointers won't become invalid because of, say re-mallocs */
+ * situations where pointers won't become invalid because of, say re-mallocs.
+ *
+ * Note that this regnode type is problematic and should not be used or copied
+ * and will be removed in the future. Pointers should be stored in the data[]
+ * array and an index into the data array stored in the regnode, which allows the
+ * pointers to be handled properly during clone/free operations on the regexp
+ * data structure. As a byproduct it also saves space, often we use a 16 bit
+ * member to store indexes into the data[] array.
+ *
+ * Also note that the weird storage here is because regnodes are 32 bit aligned,
+ * which means we cannot have a 64 bit aligned member. To make things more annoying
+ * the size of a pointer may vary by platform. Thus we use a character array, and
+ * then use inline functions to copy the data in or out.
+ * */
struct regnode_p {
- U8 flags;
- U8 type;
- U16 next_off;
- SV * arg1;
+ union regnode_head head;
+ char arg1_sv_ptr_bytes[sizeof(SV *)];
};
-/* Similar to a regnode_1 but with an extra signed argument */
-struct regnode_2L {
- U8 flags;
- U8 type;
- U16 next_off;
- U32 arg1;
- I32 arg2;
+/* "Two Node" - similar to a regnode_1 but with space for an extra 32
+ * bit value, or two 16 bit valus. The first fields must match regnode_1.
+ * Extra field can be accessed as (U32)ARG2u() (I32)ARG2i() or (U16)ARG2a()
+ * and (U16)ARG2b() */
+struct regnode_2 {
+ union regnode_head head;
+ union regnode_arg arg1;
+ union regnode_arg arg2;
};
-/* 'Two field' -- Two 16 bit unsigned args */
-struct regnode_2 {
- U8 flags;
- U8 type;
- U16 next_off;
- U16 arg1;
- U16 arg2;
+/* "Three Node" - similar to a regnode_2 but with space for an additional
+ * 32 bit value, or two 16 bit values. The first fields must match regnode_2.
+ * The extra field can be accessed as (U32)ARG3u() (I32)ARG3i() or (U16)ARG3a()
+ * and (U16)ARG3b().
+ * Currently used for the CURLY style regops used to represent quantifers,
+ * storing the min and of the quantifier via ARG1i() and ARG2i(), along with
+ * ARG3a() and ARG3b() which are used to store information about the number of
+ * parens before and inside the quantified expression. */
+struct regnode_3 {
+ union regnode_head head;
+ union regnode_arg arg1;
+ union regnode_arg arg2;
+ union regnode_arg arg3;
};
-#define ANYOF_BITMAP_SIZE (NUM_ANYOF_CODE_POINTS / 8) /* 8 bits/Byte */
+#define REGNODE_BBM_BITMAP_LEN \
+ /* 6 info bits requires 64 bits; 5 => 32 */ \
+ ((1 << (UTF_CONTINUATION_BYTE_INFO_BITS)) / CHARBITS)
+
+/* Used for matching any two-byte UTF-8 character whose start byte is known.
+ * The array is a bitmap capable of representing any possible continuation
+ * byte. */
+struct regnode_bbm {
+ union regnode_head head;
+ U8 bitmap[REGNODE_BBM_BITMAP_LEN];
+};
+
+#define ANYOF_BITMAP_SIZE (NUM_ANYOF_CODE_POINTS / CHARBITS)
/* 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
@@ -191,40 +335,38 @@ struct regnode_2 {
* the code that inserts and deletes regnodes. The basic single-argument
* regnode has a U32, which is what reganode() allocates as a unit. Therefore
* no field can require stricter alignment than U32. */
-
+
/* also used by trie */
struct regnode_charclass {
- U8 flags;
- U8 type;
- U16 next_off;
- U32 arg1; /* set by set_ANYOF_arg() */
+ union regnode_head head;
+ union regnode_arg arg1;
char bitmap[ANYOF_BITMAP_SIZE]; /* only compile-time */
};
/* has runtime (locale) \d, \w, ..., [:posix:] classes */
struct regnode_charclass_posixl {
- U8 flags; /* ANYOF_MATCHES_POSIXL bit must go here */
- U8 type;
- U16 next_off;
- U32 arg1;
+ union regnode_head head;
+ union regnode_arg arg1;
char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time ... */
U32 classflags; /* and run-time */
};
/* A synthetic start class (SSC); is a regnode_charclass_posixl_fold, plus an
- * 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,
- * 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 */
+ * extra SV*, used only during regex construction and which is not used by the
+ * main machinery in regexec.c and which does not get embedded in the final compiled
+ * regex program.
+ *
+ * Because it does not get embedded it does not have to comply with the alignment
+ * and sizing constraints required for a normal regnode structure: it MAY contain
+ * pointers or members of whatever size needed and the compiler will do the right
+ * thing. (Every other regnode type is 32 bit aligned.)
+ *
+ * Note that the 'next_off' field is unused, as the SSC stands alone, so there is
+ * never a next node.
+ */
struct regnode_ssc {
- U8 flags; /* ANYOF_MATCHES_POSIXL bit must go here */
- U8 type;
- U16 next_off;
- U32 arg1;
+ union regnode_head head;
+ union regnode_arg arg1;
char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time ... */
U32 classflags; /* ... and run-time */
@@ -241,31 +383,34 @@ struct regnode_ssc {
* to 12 regnode units on 32-bit systems, (hence the minimum this can be (if
* not 0) is 11 there. Even if things get tightly packed on a 64-bit system,
* it still would be more than 1. */
-#define set_ANYOF_SYNTHETIC(n) STMT_START{ OP(n) = ANYOF; \
- NEXT_OFF(n) = 1; \
- } STMT_END
-#define is_ANYOF_SYNTHETIC(n) (PL_regkind[OP(n)] == ANYOF && NEXT_OFF(n) == 1)
+#define set_ANYOF_SYNTHETIC(n) \
+ STMT_START{ \
+ OP(n) = ANYOF; \
+ NEXT_OFF(n) = 1; \
+ } STMT_END
+
+#define is_ANYOF_SYNTHETIC(n) (REGNODE_TYPE(OP(n)) == ANYOF && NEXT_OFF(n) == 1)
/* XXX fix this description.
Impose a limit of REG_INFTY on various pattern matching operations
to limit stack growth and to avoid "infinite" recursions.
*/
-/* The default size for REG_INFTY is U16_MAX, which is the same as
- USHORT_MAX (see perl.h). Unfortunately U16 isn't necessarily 16 bits
- (see handy.h). On the Cray C90, sizeof(short)==4 and hence U16_MAX is
- ((1<<32)-1), while on the Cray T90, sizeof(short)==8 and U16_MAX is
- ((1<<64)-1). To limit stack growth to reasonable sizes, supply a
+/* The default size for REG_INFTY is I32_MAX, which is the same as UINT_MAX
+ (see perl.h). Unfortunately I32 isn't necessarily 32 bits (see handy.h).
+ On the Cray C90, or Cray T90, I32_MAX is considerably larger than it
+ might be elsewhere. To limit stack growth to reasonable sizes, supply a
smaller default.
--Andy Dougherty 11 June 1998
+ --Amended by Yves Orton 15 Jan 2023
*/
-#if SHORTSIZE > 2
+#if INTSIZE > 4
# ifndef REG_INFTY
-# define REG_INFTY nBIT_UMAX(16)
+# define REG_INFTY nBIT_IMAX(32)
# endif
#endif
#ifndef REG_INFTY
-# define REG_INFTY U16_MAX
+# define REG_INFTY I32_MAX
#endif
#define ARG_VALUE(arg) (arg)
@@ -275,23 +420,48 @@ struct regnode_ssc {
#undef ARG1
#undef ARG2
-#define ARG(p) ARG_VALUE(ARG_LOC(p))
-#define ARGp(p) ARG_VALUE(ARGp_LOC(p))
-#define ARG1(p) ARG_VALUE(ARG1_LOC(p))
-#define ARG2(p) ARG_VALUE(ARG2_LOC(p))
-#define ARG2L(p) ARG_VALUE(ARG2L_LOC(p))
+/* convention: each arg is is 32 bits, with the "u" suffix
+ * being unsigned 32 bits, the "i" suffix being signed 32 bits,
+ * and the "a" and "b" suffixes being unsigned 16 bit fields.
+ *
+ * We provide all 4 macros for each case for consistency, even
+ * though they arent all used.
+ */
-#define ARG_SET(p, val) ARG__SET(ARG_LOC(p), (val))
-#define ARGp_SET(p, val) ARG__SET(ARGp_LOC(p), (val))
-#define ARG1_SET(p, val) ARG__SET(ARG1_LOC(p), (val))
-#define ARG2_SET(p, val) ARG__SET(ARG2_LOC(p), (val))
-#define ARG2L_SET(p, val) ARG__SET(ARG2L_LOC(p), (val))
+#define ARG1u(p) ARG_VALUE(ARG1u_LOC(p))
+#define ARG1i(p) ARG_VALUE(ARG1i_LOC(p))
+#define ARG1a(p) ARG_VALUE(ARG1a_LOC(p))
+#define ARG1b(p) ARG_VALUE(ARG1b_LOC(p))
-#undef NEXT_OFF
-#undef NODE_ALIGN
+#define ARG2u(p) ARG_VALUE(ARG2u_LOC(p))
+#define ARG2i(p) ARG_VALUE(ARG2i_LOC(p))
+#define ARG2a(p) ARG_VALUE(ARG2a_LOC(p))
+#define ARG2b(p) ARG_VALUE(ARG2b_LOC(p))
+
+#define ARG3u(p) ARG_VALUE(ARG3u_LOC(p))
+#define ARG3i(p) ARG_VALUE(ARG3i_LOC(p))
+#define ARG3a(p) ARG_VALUE(ARG3a_LOC(p))
+#define ARG3b(p) ARG_VALUE(ARG3b_LOC(p))
+
+#define ARGp(p) ARGp_VALUE_inline(p)
+
+#define ARG1u_SET(p, val) ARG__SET(ARG1u_LOC(p), (val))
+#define ARG1i_SET(p, val) ARG__SET(ARG1i_LOC(p), (val))
+#define ARG1a_SET(p, val) ARG__SET(ARG1a_LOC(p), (val))
+#define ARG1b_SET(p, val) ARG__SET(ARG1b_LOC(p), (val))
+
+#define ARG2u_SET(p, val) ARG__SET(ARG2u_LOC(p), (val))
+#define ARG2i_SET(p, val) ARG__SET(ARG2i_LOC(p), (val))
+#define ARG2a_SET(p, val) ARG__SET(ARG2a_LOC(p), (val))
+#define ARG2b_SET(p, val) ARG__SET(ARG2b_LOC(p), (val))
+
+#define ARG3u_SET(p, val) ARG__SET(ARG3u_LOC(p), (val))
+#define ARG3i_SET(p, val) ARG__SET(ARG3i_LOC(p), (val))
+#define ARG3a_SET(p, val) ARG__SET(ARG3a_LOC(p), (val))
+#define ARG3b_SET(p, val) ARG__SET(ARG3b_LOC(p), (val))
+
+#define ARGp_SET(p, val) ARGp_SET_inline((p),(val))
-#define NEXT_OFF(p) ((p)->next_off)
-#define NODE_ALIGN(node)
/* 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
@@ -301,23 +471,32 @@ struct regnode_ssc {
* 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 NODE_ALIGN(node)
#define SIZE_ALIGN NODE_ALIGN
#undef OP
#undef OPERAND
#undef STRING
+#undef NEXT_OFF
+#undef NODE_ALIGN
-#define OP(p) ((p)->type)
-#define FLAGS(p) ((p)->flags) /* Caution: Doesn't apply to all \
+#define NEXT_OFF(p) ((p)->head.data.next_off)
+#define OP(p) ((p)->head.data.type)
+#define STR_LEN_U8(p) ((p)->head.data.u_8.str_len_u8)
+#define FIRST_BYTE(p) ((p)->head.data.u_8.first_byte)
+#define FLAGS(p) ((p)->head.data.u_8.flags) /* Caution: Doesn't apply to all \
regnode types. For some, it's the \
character set of the regnode */
-#define STR_LENs(p) (__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8) \
- ((struct regnode_string *)p)->str_len)
-#define STRINGs(p) (__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8) \
+#define STR_LENs(p) (__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8) \
+ STR_LEN_U8((struct regnode_string *)p))
+#define STRINGs(p) (__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8) \
((struct regnode_string *)p)->string)
-#define OPERANDs(p) STRINGs(p)
+#define OPERANDs(p) STRINGs(p)
+
+#define PARNO(p) ARG1u(p) /* APPLIES for OPEN and CLOSE only */
+
+#define NODE_ALIGN_FILL(node) (FLAGS(node) = 0)
/* Long strings. Currently limited to length 18 bits, which handles a 262000
* byte string. The limiting factor is the 16 bit 'next_off' field, which
@@ -331,55 +510,158 @@ struct regnode_ssc {
* node to be an ARG2L, using the second 32 bit field for the length, and not
* using the flags nor next_off fields at all. One could have an llstring node
* and even an lllstring type. */
-#define STR_LENl(p) (__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
- (((struct regnode_lstring *)p)->str_len))
-#define STRINGl(p) (__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
+#define STR_LENl(p) (__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
+ (((struct regnode_lstring *)p)->str_len_u32))
+#define STRINGl(p) (__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
(((struct regnode_lstring *)p)->string))
-#define OPERANDl(p) STRINGl(p)
+#define OPERANDl(p) STRINGl(p)
-#define STR_LEN(p) ((OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
+#define STR_LEN(p) ((OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
? STR_LENl(p) : STR_LENs(p))
-#define STRING(p) ((OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
+#define STRING(p) ((OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
? STRINGl(p) : STRINGs(p))
-#define OPERAND(p) STRING(p)
+#define OPERAND(p) STRING(p)
/* The number of (smallest) regnode equivalents that a string of length l bytes
- * occupies */
+ * occupies - Used by the REGNODE_AFTER() macros and functions. */
#define STR_SZ(l) (((l) + sizeof(regnode) - 1) / sizeof(regnode))
-/* The number of (smallest) regnode equivalents that the EXACTISH node 'p'
- * occupies */
-#define NODE_SZ_STR(p) (STR_SZ(STR_LEN(p)) + 1 + regarglen[(p)->type])
-
#define setSTR_LEN(p,v) \
STMT_START{ \
if (OP(p) == LEXACT || OP(p) == LEXACT_REQ8) \
- ((struct regnode_lstring *)(p))->str_len = (v); \
+ ((struct regnode_lstring *)(p))->str_len_u32 = (v); \
else \
- ((struct regnode_string *)(p))->str_len = (v); \
+ STR_LEN_U8((struct regnode_string *)(p)) = (v); \
} STMT_END
#define ANYOFR_BASE_BITS 20
-#define ANYOFRbase(p) (ARG(p) & nBIT_MASK(ANYOFR_BASE_BITS))
-#define ANYOFRdelta(p) (ARG(p) >> ANYOFR_BASE_BITS)
+#define ANYOFRbase(p) (ARG1u(p) & nBIT_MASK(ANYOFR_BASE_BITS))
+#define ANYOFRdelta(p) (ARG1u(p) >> ANYOFR_BASE_BITS)
#undef NODE_ALIGN
#undef ARG_LOC
-#undef NEXTOPER
-#undef PREVOPER
-
-#define NODE_ALIGN(node)
-#define ARG_LOC(p) (((struct regnode_1 *)p)->arg1)
-#define ARGp_LOC(p) (((struct regnode_p *)p)->arg1)
-#define ARG1_LOC(p) (((struct regnode_2 *)p)->arg1)
-#define ARG2_LOC(p) (((struct regnode_2 *)p)->arg2)
-#define ARG2L_LOC(p) (((struct regnode_2L *)p)->arg2)
+#define NODE_ALIGN(node)
+#define ARGp_BYTES_LOC(p) (((struct regnode_p *)p)->arg1_sv_ptr_bytes)
+#define ARG1u_LOC(p) (((struct regnode_1 *)p)->arg1.u32)
+#define ARG1i_LOC(p) (((struct regnode_1 *)p)->arg1.i32)
+#define ARG1a_LOC(p) (((struct regnode_1 *)p)->arg1.hi_lo.u16a)
+#define ARG1b_LOC(p) (((struct regnode_1 *)p)->arg1.hi_lo.u16b)
+#define ARG2u_LOC(p) (((struct regnode_2 *)p)->arg2.u32)
+#define ARG2i_LOC(p) (((struct regnode_2 *)p)->arg2.i32)
+#define ARG2a_LOC(p) (((struct regnode_2 *)p)->arg2.hi_lo.u16a)
+#define ARG2b_LOC(p) (((struct regnode_2 *)p)->arg2.hi_lo.u16b)
+#define ARG3u_LOC(p) (((struct regnode_3 *)p)->arg3.u32)
+#define ARG3i_LOC(p) (((struct regnode_3 *)p)->arg3.i32)
+#define ARG3a_LOC(p) (((struct regnode_3 *)p)->arg3.hi_lo.u16a)
+#define ARG3b_LOC(p) (((struct regnode_3 *)p)->arg3.hi_lo.u16b)
+
+/* These should no longer be used directly in most cases. Please use
+ * the REGNODE_AFTER() macros instead. */
#define NODE_STEP_REGNODE 1 /* sizeof(regnode)/sizeof(regnode) */
-#define EXTRA_STEP_2ARGS EXTRA_SIZE(struct regnode_2)
-#define NEXTOPER(p) ((p) + NODE_STEP_REGNODE)
-#define PREVOPER(p) ((p) - NODE_STEP_REGNODE)
+/* Core macros for computing "the regnode after this one". See also
+ * Perl_regnode_after() in reginline.h
+ *
+ * At the struct level regnodes are a linked list, with each node pointing
+ * at the next (via offsets), usually via the C<next_off> field in the
+ * structure. Where there is a need for a node to have two children the
+ * immediate physical successor of the node in the compiled program is used
+ * to represent one of them. A good example is the BRANCH construct,
+ * consider the pattern C</head(?:[ab]foo|[cd]bar)tail/>
+ *
+ * 1: EXACT <head> (3)
+ * 3: BRANCH (8)
+ * 4: ANYOFR[ab] (6)
+ * 6: EXACT <foo> (14)
+ * 8: BRANCH (FAIL)
+ * 9: ANYOFR[cd] (11)
+ * 11: EXACT <bar> (14)
+ * 13: TAIL (14)
+ * 14: EXACT <tail> (16)
+ * 16: END (0)
+ *
+ * The numbers in parens at the end of each line show the "next_off" value
+ * for that regnode in the program. We can see that the C<next_off> of
+ * the first BRANCH node (#3) is the second BRANCH node (#8), and indicates
+ * where execution should go if the regnodes *following* the BRANCH node fail
+ * to accept the input string. Thus to find the "next BRANCH" we would do
+ * C<Perl_regnext()> and follow the C<next_off> pointer, and to find
+ * the "BRANCHes contents" we would use C<REGNODE_AFTER()>.
+ *
+ * Be aware that C<REGNODE_AFTER()> is not guaranteed to give a *useful*
+ * result once the regex peephole optimizer has run (it will be correct
+ * however!). By the time code in regexec.c executes various regnodes
+ * may have been optimized out of the C<next_off> chain. An example
+ * can be seen above, node 13 will never be reached during execution
+ * flow as it has been stitched out of the C<next_off> chain. Both 6 and
+ * 11 would have pointed at it during compilation, but it exists only to
+ * facilitate the construction of the BRANCH structure and is effectively
+ * a NOOP, and thus the optimizer adjusts the links so it is skipped
+ * from execution time flow. In regexec.c it is only safe to use
+ * REGNODE_AFTER() on specific node types.
+ *
+ * Conversely during compilation C<Perl_regnext()> may not work properly
+ * as the C<next_off> may not be known until "later", (such as in the
+ * case of BRANCH nodes) and thus in regcomp.c the REGNODE_AFTER() macro
+ * is used very heavily instead.
+ *
+ * There are several variants of the REGNODE_AFTER_xxx() macros which
+ * are intended for use in different situations depending on how
+ * confident the code is about what type of node it is trying to find a
+ * successor for.
+ *
+ * So for instance if you know you are dealing with a known node type of
+ * constant size then you should use REGNODE_AFTER_type(n,TYPE).
+ *
+ * If you have a regnode pointer and you know you are dealing with a
+ * regnode type of constant size and you have already extracted its
+ * opcode use: REGNODE_AFTER_opcode(n,OPCODE).
+ *
+ * If you have a regnode and you know it is variable size then you
+ * you can produce optimized code by using REGNODE_AFTER_varies(n).
+ *
+ * If you have a regnode pointer and nothing else use: REGNODE_AFTER(n)
+ * This is the safest option and wraps C<Perl_regnode_after()>. It
+ * should produce the correct result regardless of its argument. The
+ * other options only produce correct results under specific
+ * constraints.
+ */
+#define REGNODE_AFTER_PLUS(p,extra) ((p) + NODE_STEP_REGNODE + (extra))
+/* under DEBUGGING we check that all REGNODE_AFTER optimized macros did the
+ * same thing that Perl_regnode_after() would have done. Note that when
+ * not compiled under DEBUGGING the assert_() macro is empty. Thus we
+ * don't have to implement different versions for DEBUGGING and not DEBUGGING,
+ * and explains why all the macros use REGNODE_AFTER_PLUS_DEBUG() under the
+ * hood. */
+#define REGNODE_AFTER_PLUS_DEBUG(p,extra) \
+ (assert_(check_regnode_after(p,extra)) REGNODE_AFTER_PLUS((p),(extra)))
+
+/* find the regnode after this p by using the opcode we previously extracted
+ * with OP(p) */
+#define REGNODE_AFTER_opcode(p,op) REGNODE_AFTER_PLUS_DEBUG((p),REGNODE_ARG_LEN(op))
+
+/* find the regnode after this p by using the size of the struct associated with
+ * the opcode for p. use this when you *know* that p is pointer to a given type*/
+#define REGNODE_AFTER_type(p,t) REGNODE_AFTER_PLUS_DEBUG((p),EXTRA_SIZE(t))
+
+/* find the regnode after this p by using OP(p) to find the regnode type of p */
+#define REGNODE_AFTER_varies(p) regnode_after(p,TRUE)
+
+/* find the regnode after this p by using OP(p) to find the regnode type of p */
+#define REGNODE_AFTER(p) regnode_after(p,FALSE)
+
+
+/* REGNODE_BEFORE() is trickier to deal with in terms of validation, execution.
+ * All the places that use it assume that p will be one struct regnode large.
+ * So to validate it we do the math to go backwards and then validate that the
+ * type of regnode we landed on is actually one regnode large. In theory if
+ * things go wrong the opcode should be illegal or say the item should be larger
+ * than it is, etc. */
+#define REGNODE_BEFORE_BASE(p) ((p) - NODE_STEP_REGNODE)
+#define REGNODE_BEFORE_BASE_DEBUG(p) \
+ (assert_(check_regnode_after(REGNODE_BEFORE_BASE(p),0)) REGNODE_BEFORE_BASE(p))
+#define REGNODE_BEFORE(p) REGNODE_BEFORE_BASE_DEBUG(p)
#define FILL_NODE(offset, op) \
STMT_START { \
@@ -391,128 +673,177 @@ struct regnode_ssc {
FILL_NODE(offset, op); \
(offset)++; \
} STMT_END
-#define FILL_ADVANCE_NODE_ARG(offset, op, arg) \
+#define FILL_ADVANCE_NODE_ARG1u(offset, op, arg) \
STMT_START { \
- ARG_SET(REGNODE_p(offset), arg); \
+ ARG1u_SET(REGNODE_p(offset), arg); \
FILL_ADVANCE_NODE(offset, op); \
/* This is used generically for other operations \
* that have a longer argument */ \
- (offset) += regarglen[op]; \
+ (offset) += REGNODE_ARG_LEN(op); \
} STMT_END
-#define FILL_ADVANCE_NODE_ARGp(offset, op, arg) \
+#define FILL_ADVANCE_NODE_ARGp(offset, op, arg) \
STMT_START { \
- ARGp_SET(REGNODE_p(offset), arg); \
+ ARGp_SET(REGNODE_p(offset), arg); \
FILL_ADVANCE_NODE(offset, op); \
- (offset) += regarglen[op]; \
+ (offset) += REGNODE_ARG_LEN(op); \
} STMT_END
-#define FILL_ADVANCE_NODE_2L_ARG(offset, op, arg1, arg2) \
+#define FILL_ADVANCE_NODE_2ui_ARG(offset, op, arg1, arg2) \
STMT_START { \
- ARG_SET(REGNODE_p(offset), arg1); \
- ARG2L_SET(REGNODE_p(offset), arg2); \
+ ARG1u_SET(REGNODE_p(offset), arg1); \
+ ARG2i_SET(REGNODE_p(offset), arg2); \
FILL_ADVANCE_NODE(offset, op); \
(offset) += 2; \
} STMT_END
+/* define these after we define the normal macros, so we can use
+ * ARGp_BYTES_LOC(n) */
+
+static inline SV *
+ARGp_VALUE_inline(struct regnode *node) {
+ SV *ptr;
+ memcpy(&ptr, ARGp_BYTES_LOC(node), sizeof(ptr));
+
+ return ptr;
+}
+
+static inline void
+ARGp_SET_inline(struct regnode *node, SV *ptr) {
+ memcpy(ARGp_BYTES_LOC(node), &ptr, sizeof(ptr));
+}
+
#define REG_MAGIC 0234
-/* An ANYOF node is basically a bitmap with the index being a code point. If
- * the bit for that code point is 1, the code point matches; if 0, it doesn't
- * match (complemented if inverted). There is an additional mechanism to deal
- * with cases where the bitmap is insufficient in and of itself. This #define
- * indicates if the bitmap does fully represent 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_ONLY_HAS_BITMAP ((U32) -1)
-
-/* When the bitmap isn't completely sufficient for handling the ANYOF node,
- * flags (in node->flags of the ANYOF node) get set to indicate this. These
- * are perennially in short supply. Beyond several cases where warnings need
- * to be raised under certain circumstances, currently, there are six cases
- * where the bitmap alone isn't sufficient. We could use six flags to
- * represent the 6 cases, but to save flags bits, we play some games. The
- * cases are:
+/* An ANYOF node matches a single code point based on specified criteria. It
+ * now comes in several styles, but originally it was just a 256 element
+ * bitmap, indexed by the code point (which was always just a byte). If the
+ * corresponding bit for a code point is 1, the code point matches; if 0, it
+ * doesn't match (complemented if inverted). This worked fine before Unicode
+ * existed, but making a bit map long enough to accommodate a bit for every
+ * possible Unicode code point is prohibitively large. Therefore it is made
+ * much much smaller, and an inversion list is created to handle code points
+ * not represented by the bitmap. (It is now possible to compile the bitmap to
+ * a larger size to avoid the slower inversion list lookup for however big the
+ * bitmap is set to, but this is rarely done). If the bitmap is sufficient to
+ * specify all possible matches (with nothing outside it matching), no
+ * inversion list is needed nor included, and the argument to the ANYOF node is
+ * set to the following: */
+
+#define ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE U32_MAX
+#define ANYOF_MATCHES_ALL_OUTSIDE_BITMAP(node) \
+ (ARG1u(node) == ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE)
+
+#define ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE \
+ /* Assumes ALL is odd */ (ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE - 1)
+#define ANYOF_MATCHES_NONE_OUTSIDE_BITMAP(node) \
+ (ARG1u(node) == ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE)
+
+#define ANYOF_ONLY_HAS_BITMAP_MASK ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE
+#define ANYOF_ONLY_HAS_BITMAP(node) \
+ ((ARG1u(node) & ANYOF_ONLY_HAS_BITMAP_MASK) == ANYOF_ONLY_HAS_BITMAP_MASK)
+
+#define ANYOF_HAS_AUX(node) (! ANYOF_ONLY_HAS_BITMAP(node))
+
+/* There are also ANYOFM nodes, used when the bit patterns representing the
+ * matched code points happen to be such that they can be checked by ANDing
+ * with a mask. The regex compiler looks for and silently optimizes to using
+ * this node type in the few cases where it works out. The eight octal digits
+ * form such a group. These nodes are simple and fast and no further
+ * discussion is needed here.
+ *
+ * And, there are ANYOFH-ish nodes which match only code points that aren't in
+ * the bitmap (the H stands for High). These are common for expressing
+ * Unicode properties concerning non-Latin scripts. They dispense with the
+ * bitmap altogether and don't need any of the flags discussed below.
+ *
+ * And, there are ANYOFR-ish nodes which match within a single range.
+ *
+ * When there is a need to specify what matches outside the bitmap, it is done
+ * by allocating an AV as part of the pattern's compiled form, and the argument
+ * to the node instead of being ANYOF_ONLY_HAS_BITMAP, points to that AV.
+ *
+ * (Actually, that is an oversimplification. The AV is placed into the
+ * pattern's struct reg_data, and what is stored in the node's argument field
+ * is its index into that struct. And the inversion list is just one element,
+ * the zeroth, of the AV.)
+ *
+ * There are certain situations where a single inversion list can't handle all
+ * the complexity. These are dealt with by having extra elements in the AV, by
+ * specifying flag bits in the ANYOF node, and/or special code. As an example,
+ * there are instances where what the ANYOF node matches is not completely
+ * known until runtime. In these cases, a flag is set, and the bitmap has a 1
+ * for the code points which are known at compile time to be 1, and a 0 for the
+ * ones that are known to be 0, or require runtime resolution. Some missing
+ * information can be found by merely seeing if the pattern is UTF-8 or not;
+ * other cases require looking at the extra elements in the AV.
+ *
+ * There are 5 cases where the bitmap is insufficient. These are specified by
+ * flags in the node's flags field. We could use five bits to represent the 5
+ * cases, but to save flags bits (which are perennially in short supply), we
+ * play some games. The cases are:
*
- * 1) The bitmap has a compiled-in very finite size. So something else needs
- * to be used to specify if a code point that is too large for the bitmap
- * actually matches. The mechanism currently is an inversion
- * list. ANYOF_ONLY_HAS_BITMAP, described above, being TRUE indicates
- * there are no matches of too-large code points. But if it is FALSE,
- * then almost certainly there are matches too large for the bitmap. (The
- * other cases, described below, either imply this one or are extremely
- * rare in practice.) So we can just assume that a too-large code point
- * will need something beyond the bitmap if ANYOF_ONLY_HAS_BITMAP is
- * FALSE, instead of having a separate flag for this.
- * 2) A subset of item 1) is if all possible code points outside the bitmap
- * match. This is a common occurrence when the class is complemented,
- * like /[^ij]/. Therefore a bit is reserved to indicate this,
- * rather than having an inversion list created,
- * ANYOF_MATCHES_ALL_ABOVE_BITMAP.
- * 3) Under /d rules, it can happen that code points that are in the upper
+ * 1) As already mentioned, if some code points outside the bitmap match, and
+ * some do not, an inversion list is specified to indicate which ones.
+ *
+ * 2) Under /d rules, it can happen that code points that are in the upper
* latin1 range (\x80-\xFF or their equivalents on EBCDIC platforms) match
* only if the runtime target string being matched against is UTF-8. For
- * example /[\w[:punct:]]/d. This happens only for posix classes (with a
- * couple of exceptions, like \d where it doesn't happen), and all such
- * ones also have above-bitmap matches. Thus, 3) implies 1) as well.
+ * example /[\w[:punct:]]/d. This happens only for certain posix classes,
+ * and all such ones also have above-bitmap matches.
+ *
* Note that /d rules are no longer encouraged; 'use 5.14' or higher
- * deselects them. But a flag is required so that they can be properly
- * handled. But it can be a shared flag: see 5) below.
- * 4) Also under /d rules, something like /[\Wfoo]/ will match everything in
+ * deselects them. But they are still supported, and a flag is required
+ * so that they can be properly handled. But it can be a shared flag: see
+ * 4) below.
+ *
+ * 3) Also under /d rules, something like /[\Wfoo]/ will match everything in
* the \x80-\xFF range, unless the string being matched against is UTF-8.
* An inversion list could be created for this case, but this is
* relatively common, and it turns out that it's all or nothing: if any
* one of these code points matches, they all do. Hence a single bit
* suffices. We use a shared flag that doesn't take up space by itself:
- * ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER. This
- * also implies 1), with one exception: [:^cntrl:].
- * 5) A user-defined \p{} property may not have been defined by the time the
+ * ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared. This also means there
+ * is an inversion list for the things that don't fit into the bitmap.
+ *
+ * 4) A user-defined \p{} property may not have been defined by the time the
* regex is compiled. In this case, we don't know until runtime what it
* will match, so we have to assume it could match anything, including
* code points that ordinarily would be in the bitmap. A flag bit is
- * necessary to indicate this , though it can be shared with the item 3)
- * flag, as that only occurs under /d, and this only occurs under non-d.
- * This case is quite uncommon in the field, and the /(?[ ...])/ construct
- * is a better way to accomplish what this feature does. This case also
- * implies 1).
- * ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP
- * is the shared flag.
- * 6) /[foo]/il may have folds that are only valid if the runtime locale is a
- * UTF-8 one. These are quite rare, so it would be good to avoid the
- * expense of looking for them. But /l matching is slow anyway, and we've
- * traditionally not worried too much about its performance. And this
- * condition requires the ANYOFL_FOLD flag to be set, so testing for
- * that flag would be sufficient to rule out most cases of this. So it is
- * unclear if this should have a flag or not. But, this flag can be
- * shared with another, so it doesn't occupy extra space.
+ * necessary to indicate this, though we can use the
+ * ANYOF_HAS_EXTRA_RUNTIME_MATCHES flag, along with the node not being
+ * ANYOFD. The information required to construct the property is stored
+ * in the AV pointed to by the node's argument. This case is quite
+ * uncommon in the field, and the /(?[...])/ construct is a better way to
+ * accomplish what this feature does.
*
- * At the moment, there is one spare bit, but this could be increased by
- * various tricks:
- *
- * If just one more bit is needed, as of this writing it seems to khw that the
- * best choice would be to make ANYOF_MATCHES_ALL_ABOVE_BITMAP not a flag, but
- * something like
+ * 5) /[foo]/il may have folds that are only valid if the runtime locale is a
+ * UTF-8 one. The ANYOF_HAS_EXTRA_RUNTIME_MATCHES flag can also be used
+ * for these. The list is stored in a different element of the AV, so its
+ * existence differentiates this case from that of 4), along with the node
+ * being ANYOFL, with the ANYOFL_FOLD flag being set. There are a few
+ * additional folds valid only if the UTF-8 locale is a Turkic one which
+ * is tested for explicitly.
*
- * #define ANYOF_MATCHES_ALL_ABOVE_BITMAP ((U32) -2)
+ * Note that the user-defined property flag and the /il flag can affect whether
+ * an ASCII character matches in the bitmap or not.
*
- * and access it through the ARG like ANYOF_ONLY_HAS_BITMAP is. This flag is
- * used by all ANYOF node types, and it could be used to avoid calling the
- * handler function, as the macro REGINCLASS in regexec.c does now for other
- * cases.
+ * And this still isn't the end of the story. In some cases, warnings are
+ * supposed to be raised when matching certain categories of code points in the
+ * target string. Flags are set to indicate this. This adds up to a bunch of
+ * flags required, and we only have 8 available. That is why we share some.
+ * At the moment, there are two spare flag bits, but this could be increased by
+ * various tricks:
*
- * Another possibility is based on the fact that ANYOF_MATCHES_POSIXL is
- * redundant with the node type ANYOFPOSIXL. That flag could be removed, but
- * at the expense of extra code in regexec.c. The flag has been retained
- * because it allows us to see if we need to call reginsert, or just use the
- * bitmap in one test.
+ * ANYOF_MATCHES_POSIXL is redundant with the node type ANYOFPOSIXL. That flag
+ * could be removed, but at the expense of having to write extra code, which
+ * would take up space, and writing this turns out to be not hard, but not
+ * trivial.
*
* If this is done, an extension would be to make all ANYOFL nodes contain the
- * extra 32 bits that ANYOFPOSIXL ones do. The posix flags only occupy 30
- * bits, so the ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD flags
- * and ANYOFL_FOLD could be moved to that extra space, but it would mean extra
- * instructions, as there are currently places in the code that assume those
- * two bits are zero.
- *
- * All told, 5 bits could be available for other uses if all of the above were
- * done.
+ * extra 32 bits that ANYOFPOSIXL ones do, doubling each instance's size. The
+ * posix flags only occupy 30 bits, so the ANYOFL_FOLD and
+ * ANYOFL_UTF8_LOCALE_REQD bits could be moved to that extra space, but it
+ * would also mean extra instructions, as there are currently places in the
+ * code that assume those two bits are zero.
*
* Some flags are not used in synthetic start class (SSC) nodes, so could be
* shared should new flags be needed for SSCs, like SSC_MATCHES_EMPTY_STRING
@@ -538,48 +869,39 @@ struct regnode_ssc {
* then. Only set under /l; never in an SSC */
#define ANYOFL_FOLD 0x04
-/* Shared bit set only with ANYOFL and SSC nodes:
- * If ANYOFL_FOLD is set, this flag indicates there are potential matches
- * valid only if the locale is a UTF-8 one.
- * If ANYOFL_FOLD is NOT set, this flag means to warn if the runtime locale
- * isn't a UTF-8 one (and the generated node assumes a UTF-8 locale).
- * None of INVERT, POSIXL,
- * ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP
- * can be set. */
-#define ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD 0x08
-
-/* Convenience macros for teasing apart the meanings when reading the above bit
- * */
-#define ANYOFL_SOME_FOLDS_ONLY_IN_UTF8_LOCALE(flags) \
- ((flags & ( ANYOFL_FOLD /* Both bits are set */ \
- |ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD)) \
- == ( ANYOFL_FOLD \
- |ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD))
-
-#define ANYOFL_UTF8_LOCALE_REQD(flags) \
- ((flags & ( ANYOFL_FOLD /* Only REQD bit is set */ \
- |ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD)) \
- == ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD)
+/* Warn if the runtime locale isn't a UTF-8 one (and the generated node assumes
+ * a UTF-8 locale. */
+#define ANYOFL_UTF8_LOCALE_REQD 0x08
/* Spare: Be sure to change ANYOF_FLAGS_ALL if this gets used 0x10 */
-/* If set, the node matches every code point NUM_ANYOF_CODE_POINTS and above.
- * Can be in an SSC */
-#define ANYOF_MATCHES_ALL_ABOVE_BITMAP 0x20
-
-/* Shared bit:
- * Under /d it means the ANYOFD node matches more things if the target
- * string is encoded in UTF-8; any such things will be non-ASCII,
- * characters that are < 256, and can be accessed via the inversion
- * list.
- * When not under /d, it means the ANYOF node contains a user-defined
- * property that wasn't yet defined at the time the regex was compiled,
- * and so must be looked up at runtime, by creating an inversion list.
- * (These uses are mutually exclusive because a user-defined property is
- * specified by \p{}, and \p{} implies /u which deselects /d). The long macro
- * name is to make sure that you are cautioned about its shared nature. Only
- * the non-/d meaning can be in an SSC */
-#define ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP 0x40
+/* Spare: Be sure to change ANYOF_FLAGS_ALL if this gets used 0x20 */
+
+/* Shared bit that indicates that there are potential additional matches stored
+ * outside the bitmap, as pointed to by the AV given by the node's argument.
+ * The node type is used at runtime (in conjunction with this flag and other
+ * information available then) to decide if the flag should be acted upon.
+ * This extra information is needed because of at least one of the following
+ * three reasons.
+ * Under /d and the matched string is in UTF-8, it means the ANYOFD node
+ * matches more things than in the bitmap. Those things will be any
+ * code point too high for the bitmap, but crucially, any non-ASCII
+ * characters that match iff when using Unicode rules. These all are
+ * < 256.
+ *
+ * Under /l and ANYOFL_FOLD is set, this flag may indicate there are
+ * potential matches valid only if the locale is a UTF-8 one. If so,
+ * a list of them is stored in the AV.
+ *
+ * For any non-ANYOFD node, there may be a user-defined property that
+ * wasn't yet defined at the time the regex was compiled, and so must
+ * be looked up at runtime, The information required to do so will
+ * also be in the AV.
+ *
+ * Note that an ANYOFL node may contain both a user-defined property, and
+ * folds not always valid. The important thing is that there is an AV to
+ * look at. */
+#define ANYOF_HAS_EXTRA_RUNTIME_MATCHES 0x40
/* Shared bit:
* Under /d it means the ANYOFD node matches all non-ASCII Latin1
@@ -588,13 +910,16 @@ struct regnode_ssc {
* matching against an above-Unicode code point.
* (These uses are mutually exclusive because the warning requires a \p{}, and
* \p{} implies /u which deselects /d). An SSC node only has this bit set if
- * what is meant is the warning. The long macro name is to make sure that you
- * are cautioned about its shared nature */
-#define ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER 0x80
+ * what is meant is the warning. The names are to make sure that you are
+ * cautioned about its shared nature */
+#define ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared 0x80
+#define ANYOF_WARN_SUPER__shared 0x80
-#define ANYOF_FLAGS_ALL (0xff & ~0x10)
+#define ANYOF_FLAGS_ALL ((U8) ~(0x10|0x20))
-#define ANYOF_LOCALE_FLAGS (ANYOFL_FOLD | ANYOF_MATCHES_POSIXL)
+#define ANYOF_LOCALE_FLAGS ( ANYOFL_FOLD \
+ | ANYOF_MATCHES_POSIXL \
+ | ANYOFL_UTF8_LOCALE_REQD)
/* These are the flags that apply to both regular ANYOF nodes and synthetic
* start class nodes during construction of the SSC. During finalization of
@@ -605,48 +930,48 @@ struct regnode_ssc {
/* Should be synchronized with a table in regprop() */
/* 2n should be the normal one, paired with its complement at 2n+1 */
-#define ANYOF_ALPHA ((_CC_ALPHA) * 2)
+#define ANYOF_ALPHA ((CC_ALPHA_) * 2)
#define ANYOF_NALPHA ((ANYOF_ALPHA) + 1)
-#define ANYOF_ALPHANUMERIC ((_CC_ALPHANUMERIC) * 2) /* [[:alnum:]] isalnum(3), utf8::IsAlnum */
+#define ANYOF_ALPHANUMERIC ((CC_ALPHANUMERIC_) * 2) /* [[:alnum:]] isalnum(3), utf8::IsAlnum */
#define ANYOF_NALPHANUMERIC ((ANYOF_ALPHANUMERIC) + 1)
-#define ANYOF_ASCII ((_CC_ASCII) * 2)
+#define ANYOF_ASCII ((CC_ASCII_) * 2)
#define ANYOF_NASCII ((ANYOF_ASCII) + 1)
-#define ANYOF_BLANK ((_CC_BLANK) * 2) /* GNU extension: space and tab: non-vertical space */
+#define ANYOF_BLANK ((CC_BLANK_) * 2) /* GNU extension: space and tab: non-vertical space */
#define ANYOF_NBLANK ((ANYOF_BLANK) + 1)
-#define ANYOF_CASED ((_CC_CASED) * 2) /* Pseudo class for [:lower:] or
+#define ANYOF_CASED ((CC_CASED_) * 2) /* Pseudo class for [:lower:] or
[:upper:] under /i */
#define ANYOF_NCASED ((ANYOF_CASED) + 1)
-#define ANYOF_CNTRL ((_CC_CNTRL) * 2)
+#define ANYOF_CNTRL ((CC_CNTRL_) * 2)
#define ANYOF_NCNTRL ((ANYOF_CNTRL) + 1)
-#define ANYOF_DIGIT ((_CC_DIGIT) * 2) /* \d */
+#define ANYOF_DIGIT ((CC_DIGIT_) * 2) /* \d */
#define ANYOF_NDIGIT ((ANYOF_DIGIT) + 1)
-#define ANYOF_GRAPH ((_CC_GRAPH) * 2)
+#define ANYOF_GRAPH ((CC_GRAPH_) * 2)
#define ANYOF_NGRAPH ((ANYOF_GRAPH) + 1)
-#define ANYOF_LOWER ((_CC_LOWER) * 2)
+#define ANYOF_LOWER ((CC_LOWER_) * 2)
#define ANYOF_NLOWER ((ANYOF_LOWER) + 1)
-#define ANYOF_PRINT ((_CC_PRINT) * 2)
+#define ANYOF_PRINT ((CC_PRINT_) * 2)
#define ANYOF_NPRINT ((ANYOF_PRINT) + 1)
-#define ANYOF_PUNCT ((_CC_PUNCT) * 2)
+#define ANYOF_PUNCT ((CC_PUNCT_) * 2)
#define ANYOF_NPUNCT ((ANYOF_PUNCT) + 1)
-#define ANYOF_SPACE ((_CC_SPACE) * 2) /* \s */
+#define ANYOF_SPACE ((CC_SPACE_) * 2) /* \s */
#define ANYOF_NSPACE ((ANYOF_SPACE) + 1)
-#define ANYOF_UPPER ((_CC_UPPER) * 2)
+#define ANYOF_UPPER ((CC_UPPER_) * 2)
#define ANYOF_NUPPER ((ANYOF_UPPER) + 1)
-#define ANYOF_WORDCHAR ((_CC_WORDCHAR) * 2) /* \w, PL_utf8_alnum, utf8::IsWord, ALNUM */
+#define ANYOF_WORDCHAR ((CC_WORDCHAR_) * 2) /* \w, PL_utf8_alnum, utf8::IsWord, ALNUM */
#define ANYOF_NWORDCHAR ((ANYOF_WORDCHAR) + 1)
-#define ANYOF_XDIGIT ((_CC_XDIGIT) * 2)
+#define ANYOF_XDIGIT ((CC_XDIGIT_) * 2)
#define ANYOF_NXDIGIT ((ANYOF_XDIGIT) + 1)
/* pseudo classes below this, not stored in the class bitmap, but used as flags
during compilation of char classes */
-#define ANYOF_VERTWS ((_CC_VERTSPACE) * 2)
+#define ANYOF_VERTWS ((CC_VERTSPACE_) * 2)
#define ANYOF_NVERTWS ((ANYOF_VERTWS)+1)
/* It is best if this is the last one, as all above it are stored as bits in a
* bitmap, and it isn't part of that bitmap */
-#if _CC_VERTSPACE != _HIGHEST_REGCOMP_DOT_H_SYNC
-# error Problem with handy.h _HIGHEST_REGCOMP_DOT_H_SYNC #define
+#if CC_VERTSPACE_ != HIGHEST_REGCOMP_DOT_H_SYNC_
+# error Problem with handy.h HIGHEST_REGCOMP_DOT_H_SYNC_ #define
#endif
#define ANYOF_POSIXL_MAX (ANYOF_VERTWS) /* So upper loop limit is written:
@@ -656,7 +981,7 @@ struct regnode_ssc {
#define ANYOF_MAX ANYOF_POSIXL_MAX
#if (ANYOF_POSIXL_MAX > 32) /* Must fit in 32-bit word */
-# error Problem with handy.h _CC_foo #defines
+# error Problem with handy.h CC_foo_ #defines
#endif
#define ANYOF_HORIZWS ((ANYOF_POSIXL_MAX)+2) /* = (ANYOF_NVERTWS + 1) */
@@ -676,34 +1001,40 @@ struct regnode_ssc {
/* Utility macros for the bitmap and classes of ANYOF */
-#define ANYOF_FLAGS(p) ((p)->flags)
+#define BITMAP_BYTE(p, c) (( (U8*) (p)) [ ( ( (UV) (c)) >> 3) ] )
+#define BITMAP_BIT(c) (1U << ((c) & 7))
+#define BITMAP_TEST(p, c) (BITMAP_BYTE(p, c) & BITMAP_BIT((U8)(c)))
-#define ANYOF_BIT(c) (1U << ((c) & 7))
+#define ANYOF_FLAGS(p) (FLAGS(p))
+
+#define ANYOF_BIT(c) BITMAP_BIT(c)
+
+#define ANYOF_POSIXL_BITMAP(p) (((regnode_charclass_posixl*) (p))->classflags)
#define POSIXL_SET(field, c) ((field) |= (1U << (c)))
-#define ANYOF_POSIXL_SET(p, c) POSIXL_SET(((regnode_charclass_posixl*) (p))->classflags, (c))
+#define ANYOF_POSIXL_SET(p, c) POSIXL_SET(ANYOF_POSIXL_BITMAP(p), (c))
#define POSIXL_CLEAR(field, c) ((field) &= ~ (1U <<(c)))
-#define ANYOF_POSIXL_CLEAR(p, c) POSIXL_CLEAR(((regnode_charclass_posixl*) (p))->classflags, (c))
+#define ANYOF_POSIXL_CLEAR(p, c) POSIXL_CLEAR(ANYOF_POSIXL_BITMAP(p), (c))
#define POSIXL_TEST(field, c) ((field) & (1U << (c)))
-#define ANYOF_POSIXL_TEST(p, c) POSIXL_TEST(((regnode_charclass_posixl*) (p))->classflags, (c))
+#define ANYOF_POSIXL_TEST(p, c) POSIXL_TEST(ANYOF_POSIXL_BITMAP(p), (c))
#define POSIXL_ZERO(field) STMT_START { (field) = 0; } STMT_END
-#define ANYOF_POSIXL_ZERO(ret) POSIXL_ZERO(((regnode_charclass_posixl*) (ret))->classflags)
+#define ANYOF_POSIXL_ZERO(ret) POSIXL_ZERO(ANYOF_POSIXL_BITMAP(ret))
#define ANYOF_POSIXL_SET_TO_BITMAP(p, bits) \
- STMT_START { \
- ((regnode_charclass_posixl*) (p))->classflags = (bits); \
- } STMT_END
+ STMT_START { ANYOF_POSIXL_BITMAP(p) = (bits); } STMT_END
/* Shifts a bit to get, eg. 0x4000_0000, then subtracts 1 to get 0x3FFF_FFFF */
-#define ANYOF_POSIXL_SETALL(ret) STMT_START { ((regnode_charclass_posixl*) (ret))->classflags = nBIT_MASK(ANYOF_POSIXL_MAX); } STMT_END
+#define ANYOF_POSIXL_SETALL(ret) \
+ STMT_START { \
+ ANYOF_POSIXL_BITMAP(ret) = nBIT_MASK(ANYOF_POSIXL_MAX); \
+ } STMT_END
#define ANYOF_CLASS_SETALL(ret) ANYOF_POSIXL_SETALL(ret)
#define ANYOF_POSIXL_TEST_ANY_SET(p) \
- ((ANYOF_FLAGS(p) & ANYOF_MATCHES_POSIXL) \
- && (((regnode_charclass_posixl*)(p))->classflags))
+ ((ANYOF_FLAGS(p) & ANYOF_MATCHES_POSIXL) && ANYOF_POSIXL_BITMAP(p))
#define ANYOF_CLASS_TEST_ANY_SET(p) ANYOF_POSIXL_TEST_ANY_SET(p)
/* Since an SSC always has this field, we don't have to test for that; nor do
@@ -716,8 +1047,7 @@ struct regnode_ssc {
#define ANYOF_POSIXL_TEST_ALL_SET(p) \
((ANYOF_FLAGS(p) & ANYOF_MATCHES_POSIXL) \
- && ((regnode_charclass_posixl*) (p))->classflags \
- == nBIT_MASK(ANYOF_POSIXL_MAX))
+ && ANYOF_POSIXL_BITMAP(p) == nBIT_MASK(ANYOF_POSIXL_MAX))
#define ANYOF_POSIXL_OR(source, dest) STMT_START { (dest)->classflags |= (source)->classflags ; } STMT_END
#define ANYOF_CLASS_OR(source, dest) ANYOF_POSIXL_OR((source), (dest))
@@ -729,7 +1059,7 @@ struct regnode_ssc {
#define ANYOF_BITMAP_BYTE(p, c) BITMAP_BYTE(ANYOF_BITMAP(p), c)
#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) cBOOL(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)
@@ -751,6 +1081,8 @@ struct regnode_ssc {
#define REG_ZERO_LEN_SEEN 0x00000001
#define REG_LOOKBEHIND_SEEN 0x00000002
+/* add a short form alias to keep the line length police happy */
+#define REG_LB_SEEN REG_LOOKBEHIND_SEEN
#define REG_GPOS_SEEN 0x00000004
/* spare */
#define REG_RECURSE_SEEN 0x00000020
@@ -761,6 +1093,7 @@ struct regnode_ssc {
#define REG_UNFOLDED_MULTI_SEEN 0x00000400
/* spare */
#define REG_UNBOUNDED_QUANTIFIER_SEEN 0x00001000
+#define REG_PESSIMIZE_SEEN 0x00002000
START_EXTERN_C
@@ -909,6 +1242,11 @@ struct _reg_trie_data {
char *bitmap; /* stclass bitmap */
U16 *jump; /* optional 1 indexed array of offsets before tail
for the node following a given word. */
+ U16 *j_before_paren; /* optional 1 indexed array of parno reset data
+ for the given jump. */
+ U16 *j_after_paren; /* optional 1 indexed array of parno reset data
+ for the given jump. */
+
reg_trie_wordinfo *wordinfo; /* array of info per word */
U16 uniquecharcount; /* unique chars in trie (width of trans table) */
U32 startstate; /* initial state - used for common prefix optimisation */
@@ -918,6 +1256,8 @@ struct _reg_trie_data {
U32 statecount; /* Build only - number of states in the states array
(including the unused zero state) */
U32 wordcount; /* Build only */
+ U16 before_paren;
+ U16 after_paren;
#ifdef DEBUGGING
STRLEN charcount; /* Build only */
#endif
@@ -959,10 +1299,6 @@ typedef struct _reg_ac_data reg_ac_data;
#define IS_ANYOF_TRIE(op) ((op)==TRIEC || (op)==AHOCORASICKC)
#define IS_TRIE_AC(op) ((op)>=AHOCORASICK)
-
-#define BITMAP_BYTE(p, c) (( (U8*) p) [ ( ( (UV) (c)) >> 3) ] )
-#define BITMAP_TEST(p, c) (BITMAP_BYTE(p, c) & ANYOF_BIT((U8)c))
-
/* these defines assume uniquecharcount is the correct variable, and state may be evaluated twice */
#define TRIE_NODENUM(state) (((state)-1)/(trie->uniquecharcount)+1)
#define SAFE_TRIE_NODENUM(state) ((state) ? (((state)-1)/(trie->uniquecharcount)+1) : (state))
@@ -994,7 +1330,6 @@ further group, as currently only the low three bytes are used.
PEEP
TRIE
PROGRAM
- OFFSETS
Execute Options:
@@ -1005,7 +1340,6 @@ further group, as currently only the low three bytes are used.
Extra Options
TRIE
- OFFSETS
If you modify any of these make sure you make corresponding changes to
re.pm, especially to the documentation.
@@ -1031,8 +1365,6 @@ re.pm, especially to the documentation.
/* Extra */
#define RE_DEBUG_EXTRA_MASK 0x3FF0000
#define RE_DEBUG_EXTRA_TRIE 0x0010000
-#define RE_DEBUG_EXTRA_OFFSETS 0x0020000
-#define RE_DEBUG_EXTRA_OFFDEBUG 0x0040000
#define RE_DEBUG_EXTRA_STATE 0x0080000
#define RE_DEBUG_EXTRA_OPTIMISE 0x0100000
#define RE_DEBUG_EXTRA_BUFFERS 0x0400000
@@ -1071,8 +1403,6 @@ re.pm, especially to the documentation.
/* Extra */
#define DEBUG_EXTRA_r(x) DEBUG_r( \
if (DEBUG_v_TEST || RE_DEBUG_FLAG(RE_DEBUG_EXTRA_MASK)) x )
-#define DEBUG_OFFSETS_r(x) DEBUG_r( \
- if (DEBUG_v_TEST || RE_DEBUG_FLAG(RE_DEBUG_EXTRA_OFFSETS)) x )
#define DEBUG_STATE_r(x) DEBUG_r( \
if (DEBUG_v_TEST || RE_DEBUG_FLAG(RE_DEBUG_EXTRA_STATE)) x )
#define DEBUG_STACK_r(x) DEBUG_r( \
@@ -1083,9 +1413,6 @@ re.pm, especially to the documentation.
#define DEBUG_OPTIMISE_MORE_r(x) DEBUG_r( \
if (DEBUG_v_TEST || ((RE_DEBUG_EXTRA_OPTIMISE|RE_DEBUG_COMPILE_OPTIMISE) == \
RE_DEBUG_FLAG(RE_DEBUG_EXTRA_OPTIMISE|RE_DEBUG_COMPILE_OPTIMISE))) x )
-#define MJD_OFFSET_DEBUG(x) DEBUG_r( \
- if (DEBUG_v_TEST || RE_DEBUG_FLAG(RE_DEBUG_EXTRA_OFFDEBUG)) \
- Perl_warn_nocontext x )
#define DEBUG_TRIE_COMPILE_MORE_r(x) DEBUG_TRIE_COMPILE_r( \
if (DEBUG_v_TEST || RE_DEBUG_FLAG(RE_DEBUG_EXTRA_TRIE)) x )
#define DEBUG_TRIE_EXECUTE_MORE_r(x) DEBUG_TRIE_EXECUTE_r( \
@@ -1126,7 +1453,7 @@ re.pm, especially to the documentation.
/* get_sv() can return NULL during global destruction. */ \
re_debug_flags_sv = PL_curcop ? get_sv(RE_DEBUG_FLAGS, GV_ADD) : NULL; \
if (re_debug_flags_sv) { \
- if (!SvIOK(re_debug_flags_sv)) /* If doesnt exist set to default */\
+ if (!SvIOK(re_debug_flags_sv)) /* If doesn't exist set to default */\
sv_setuv(re_debug_flags_sv, \
/* These defaults should be kept in sync with re.pm */ \
RE_DEBUG_COMPILE_DUMP | RE_DEBUG_EXECUTE_MASK ); \
@@ -1176,7 +1503,7 @@ re.pm, especially to the documentation.
#define FIRST_NON_ASCII_DECIMAL_DIGIT 0x660 /* ARABIC_INDIC_DIGIT_ZERO */
typedef enum {
- TRADITIONAL_BOUND = _CC_WORDCHAR,
+ TRADITIONAL_BOUND = CC_WORDCHAR_,
GCB_BOUND,
LB_BOUND,
SB_BOUND,
@@ -1187,7 +1514,7 @@ typedef enum {
* gives the strict lower bound for the UTF-8 start byte of any code point
* matchable by the node, and a loose upper bound as well.
*
- * The low bound is stored in the upper 6 bits, plus 0xC0.
+ * The low bound is stored as 0xC0 + ((the upper 6 bits) >> 2)
* The loose upper bound is determined from the lowest 2 bits and the low bound
* (called x) as follows:
*
@@ -1208,6 +1535,27 @@ typedef enum {
(LOWEST_ANYOF_HRx_BYTE(b) \
+ ((MAX_ANYOF_HRx_BYTE - LOWEST_ANYOF_HRx_BYTE(b)) >> ((b) & 3)))
+#if !defined(PERL_IN_XSUB_RE) || defined(PLUGGABLE_RE_EXTENSION)
+# define GET_REGCLASS_AUX_DATA(a,b,c,d,e,f) get_regclass_aux_data(a,b,c,d,e,f)
+#else
+# define GET_REGCLASS_AUX_DATA(a,b,c,d,e,f) get_re_gclass_aux_data(a,b,c,d,e,f)
+#endif
+
+#define REGNODE_TYPE(node) (PL_regnode_info[(node)].type)
+#define REGNODE_OFF_BY_ARG(node) (PL_regnode_info[(node)].off_by_arg)
+#define REGNODE_ARG_LEN(node) (PL_regnode_info[(node)].arg_len)
+#define REGNODE_ARG_LEN_VARIES(node) (PL_regnode_info[(node)].arg_len_varies)
+#define REGNODE_NAME(node) (PL_regnode_name[(node)])
+
+#if defined(PERL_IN_REGEX_ENGINE)
+#include "reginline.h"
+#endif
+
+#define EVAL_OPTIMISTIC_FLAG 128
+#define EVAL_FLAGS_MASK (EVAL_OPTIMISTIC_FLAG-1)
+
+
+
#endif /* PERL_REGCOMP_H_ */
/*
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp_internal.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp_internal.h
new file mode 100755
index 0000000000..6ea42640ed
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp_internal.h
@@ -0,0 +1,1261 @@
+#ifndef REGCOMP_INTERNAL_H
+#define REGCOMP_INTERNAL_H
+#ifndef STATIC
+#define STATIC static
+#endif
+#ifndef RE_OPTIMIZE_CURLYX_TO_CURLYM
+#define RE_OPTIMIZE_CURLYX_TO_CURLYM 1
+#endif
+#ifndef RE_OPTIMIZE_CURLYX_TO_CURLYN
+#define RE_OPTIMIZE_CURLYX_TO_CURLYN 1
+#endif
+
+/* this is a chain of data about sub patterns we are processing that
+ need to be handled separately/specially in study_chunk. Its so
+ we can simulate recursion without losing state. */
+struct scan_frame;
+typedef struct scan_frame {
+ regnode *last_regnode; /* last node to process in this frame */
+ regnode *next_regnode; /* next node to process when last is reached */
+ U32 prev_recursed_depth;
+ I32 stopparen; /* what stopparen do we use */
+ bool in_gosub; /* this or an outer frame is for GOSUB */
+
+ struct scan_frame *this_prev_frame; /* this previous frame */
+ struct scan_frame *prev_frame; /* previous frame */
+ struct scan_frame *next_frame; /* next frame */
+} scan_frame;
+
+/* Certain characters are output as a sequence with the first being a
+ * backslash. */
+#define isBACKSLASHED_PUNCT(c) memCHRs("-[]\\^", c)
+
+
+struct RExC_state_t {
+ U32 flags; /* RXf_* are we folding, multilining? */
+ U32 pm_flags; /* PMf_* stuff from the calling PMOP */
+ char *precomp; /* uncompiled string. */
+ char *precomp_end; /* pointer to end of uncompiled string. */
+ REGEXP *rx_sv; /* The SV that is the regexp. */
+ regexp *rx; /* perl core regexp structure */
+ regexp_internal *rxi; /* internal data for regexp object
+ pprivate field */
+ char *start; /* Start of input for compile */
+ char *end; /* End of input for compile */
+ char *parse; /* Input-scan pointer. */
+ char *copy_start; /* start of copy of input within
+ constructed parse string */
+ char *save_copy_start; /* Provides one level of saving
+ and restoring 'copy_start' */
+ char *copy_start_in_input; /* Position in input string
+ corresponding to copy_start */
+ SSize_t whilem_seen; /* number of WHILEM in this expr */
+ regnode *emit_start; /* Start of emitted-code area */
+ regnode_offset emit; /* Code-emit pointer */
+ I32 naughty; /* How bad is this pattern? */
+ I32 sawback; /* Did we see \1, ...? */
+ SSize_t size; /* Number of regnode equivalents in
+ pattern */
+ Size_t sets_depth; /* Counts recursion depth of already-
+ compiled regex set patterns */
+ U32 seen;
+
+ I32 parens_buf_size; /* #slots malloced open/close_parens */
+ regnode_offset *open_parens; /* offsets to open parens */
+ regnode_offset *close_parens; /* offsets to close parens */
+ HV *paren_names; /* Paren names */
+
+ /* position beyond 'precomp' of the warning message furthest away from
+ * 'precomp'. During the parse, no warnings are raised for any problems
+ * earlier in the parse than this position. This works if warnings are
+ * raised the first time a given spot is parsed, and if only one
+ * independent warning is raised for any given spot */
+ Size_t latest_warn_offset;
+
+ /* Branch reset /(?|...|...)/ gives us two concepts of capture buffer id.
+ * "Logical Parno" is the user visible view with branch reset taken into
+ * account. "Parno" (or physical parno) is the actual capture buffers in
+ * the pattern *NOT* taking into account branch reset. We also maintain
+ * a map of "next" pointers which allow us to skip to the next physical
+ * capture buffer with the same logical id, with 0 representing "none".
+ *
+ * As we compile we keep track of the two different counts using the
+ * 'logical_npar' and 'npar' members, and we keep track of the upper bound
+ * of both in 'total_par' and 'logical_total_par', we also populate
+ * the 'logical_to_parno' map, which gives us the first physical parno
+ * for a given logical parno, and the `parno_to_logical` array which gives
+ * us the logical id for each physical parno. When compilation is
+ * completed we construct the 'parno_to_logical_next' array from the
+ * 'parno_to_logical' array. (We do not bother constructing it during
+ * compilation as we do not need it, and we can construct it in O(N) time
+ * once we are done, but would need more complicated logic during the
+ * compile, because we want the next pointers to go from smallest to
+ * largest, eg, left to right.)
+ *
+ * Logical: $1 $2 $3 $4 $2 $3 $2 $5
+ * Physical: 1 2 3 4 5 6 7 8
+ * Next: 0 5 6 0 7 0 0 0
+ * Pattern /(a) (?| (b) (c) (d) | (e) (f) | (g) ) (h)/
+ *
+ * As much as possible the internals use and store the physical id of
+ * of capture buffers. We decode the physical to the logical only when
+ * we need to, for instance when someone use $2.
+ *
+ * Note that when branch reset is not used logical and physical are the
+ * same and the next data would be all zero. So when branch reset is not
+ * used we do not need to populate this data into the final regexp.
+ *
+ */
+ I32 *logical_to_parno; /* logical_parno to parno */
+ I32 *parno_to_logical; /* parno to logical_parno */
+ I32 *parno_to_logical_next; /* parno to next (greater value)
+ parno with the same
+ logical_parno as parno.*/
+
+ I32 npar; /* Capture buffer count so far in the
+ parse, (OPEN) plus one. ("par" 0 is
+ the whole pattern)*/
+ I32 logical_npar; /* Logical version of npar */
+ I32 total_par; /* During initial parse, is either 0,
+ or -1; the latter indicating a
+ reparse is needed. After that pass,
+ it is what 'npar' became after the
+ pass. Hence, it being > 0 indicates
+ we are in a reparse situation */
+ I32 logical_total_par; /* Logical version to total par */
+ I32 nestroot; /* root parens we are in - used by
+ accept */
+ I32 seen_zerolen;
+ regnode *end_op; /* END node in program */
+ I32 utf8; /* whether the pattern is utf8 or not */
+ I32 orig_utf8; /* whether the pattern was originally in utf8 */
+ /* XXX use this for future optimisation of case
+ * where pattern must be upgraded to utf8. */
+ I32 uni_semantics; /* If a d charset modifier should use unicode
+ rules, even if the pattern is not in
+ utf8 */
+
+ I32 recurse_count; /* Number of recurse regops we have generated */
+ regnode **recurse; /* Recurse regops */
+ U8 *study_chunk_recursed; /* bitmap of which subs we have moved
+ through */
+ U32 study_chunk_recursed_bytes; /* bytes in bitmap */
+ I32 in_lookaround;
+ I32 contains_locale;
+ I32 override_recoding;
+ I32 recode_x_to_native;
+ I32 in_multi_char_class;
+ int code_index; /* next code_blocks[] slot */
+ struct reg_code_blocks *code_blocks;/* positions of literal (?{})
+ within pattern */
+ SSize_t maxlen; /* mininum possible number of chars in string to match */
+ scan_frame *frame_head;
+ scan_frame *frame_last;
+ U32 frame_count;
+ AV *warn_text;
+ HV *unlexed_names;
+ SV *runtime_code_qr; /* qr with the runtime code blocks */
+#ifdef DEBUGGING
+ const char *lastparse;
+ I32 lastnum;
+ U32 study_chunk_recursed_count;
+ AV *paren_name_list; /* idx -> name */
+ SV *mysv1;
+ SV *mysv2;
+#endif
+ bool seen_d_op;
+ bool strict;
+ bool study_started;
+ bool in_script_run;
+ bool use_BRANCHJ;
+ bool sWARN_EXPERIMENTAL__VLB;
+ bool sWARN_EXPERIMENTAL__REGEX_SETS;
+};
+
+#ifdef DEBUGGING
+#define RExC_lastparse (pRExC_state->lastparse)
+#define RExC_lastnum (pRExC_state->lastnum)
+#define RExC_paren_name_list (pRExC_state->paren_name_list)
+#define RExC_study_chunk_recursed_count (pRExC_state->study_chunk_recursed_count)
+#define RExC_mysv (pRExC_state->mysv1)
+#define RExC_mysv1 (pRExC_state->mysv1)
+#define RExC_mysv2 (pRExC_state->mysv2)
+#endif
+
+#define RExC_flags (pRExC_state->flags)
+#define RExC_pm_flags (pRExC_state->pm_flags)
+#define RExC_precomp (pRExC_state->precomp)
+#define RExC_copy_start_in_input (pRExC_state->copy_start_in_input)
+#define RExC_copy_start_in_constructed (pRExC_state->copy_start)
+#define RExC_save_copy_start_in_constructed (pRExC_state->save_copy_start)
+#define RExC_precomp_end (pRExC_state->precomp_end)
+#define RExC_rx_sv (pRExC_state->rx_sv)
+#define RExC_rx (pRExC_state->rx)
+#define RExC_rxi (pRExC_state->rxi)
+#define RExC_start (pRExC_state->start)
+#define RExC_end (pRExC_state->end)
+#define RExC_parse (pRExC_state->parse)
+#define RExC_latest_warn_offset (pRExC_state->latest_warn_offset )
+#define RExC_whilem_seen (pRExC_state->whilem_seen)
+#define RExC_seen_d_op (pRExC_state->seen_d_op) /* Seen something that differs
+ under /d from /u ? */
+
+#define RExC_emit (pRExC_state->emit)
+#define RExC_emit_start (pRExC_state->emit_start)
+#define RExC_sawback (pRExC_state->sawback)
+#define RExC_seen (pRExC_state->seen)
+#define RExC_size (pRExC_state->size)
+#define RExC_maxlen (pRExC_state->maxlen)
+#define RExC_logical_npar (pRExC_state->logical_npar)
+#define RExC_logical_total_parens (pRExC_state->logical_total_par)
+#define RExC_logical_to_parno (pRExC_state->logical_to_parno)
+#define RExC_parno_to_logical (pRExC_state->parno_to_logical)
+#define RExC_parno_to_logical_next (pRExC_state->parno_to_logical_next)
+#define RExC_npar (pRExC_state->npar)
+#define RExC_total_parens (pRExC_state->total_par)
+#define RExC_parens_buf_size (pRExC_state->parens_buf_size)
+#define RExC_nestroot (pRExC_state->nestroot)
+#define RExC_seen_zerolen (pRExC_state->seen_zerolen)
+#define RExC_utf8 (pRExC_state->utf8)
+#define RExC_uni_semantics (pRExC_state->uni_semantics)
+#define RExC_orig_utf8 (pRExC_state->orig_utf8)
+#define RExC_open_parens (pRExC_state->open_parens)
+#define RExC_close_parens (pRExC_state->close_parens)
+#define RExC_end_op (pRExC_state->end_op)
+#define RExC_paren_names (pRExC_state->paren_names)
+#define RExC_recurse (pRExC_state->recurse)
+#define RExC_recurse_count (pRExC_state->recurse_count)
+#define RExC_sets_depth (pRExC_state->sets_depth)
+#define RExC_study_chunk_recursed (pRExC_state->study_chunk_recursed)
+#define RExC_study_chunk_recursed_bytes \
+ (pRExC_state->study_chunk_recursed_bytes)
+#define RExC_in_lookaround (pRExC_state->in_lookaround)
+#define RExC_contains_locale (pRExC_state->contains_locale)
+#define RExC_recode_x_to_native (pRExC_state->recode_x_to_native)
+
+#ifdef EBCDIC
+# define SET_recode_x_to_native(x) \
+ STMT_START { RExC_recode_x_to_native = (x); } STMT_END
+#else
+# define SET_recode_x_to_native(x) NOOP
+#endif
+
+#define RExC_in_multi_char_class (pRExC_state->in_multi_char_class)
+#define RExC_frame_head (pRExC_state->frame_head)
+#define RExC_frame_last (pRExC_state->frame_last)
+#define RExC_frame_count (pRExC_state->frame_count)
+#define RExC_strict (pRExC_state->strict)
+#define RExC_study_started (pRExC_state->study_started)
+#define RExC_warn_text (pRExC_state->warn_text)
+#define RExC_in_script_run (pRExC_state->in_script_run)
+#define RExC_use_BRANCHJ (pRExC_state->use_BRANCHJ)
+#define RExC_warned_WARN_EXPERIMENTAL__VLB (pRExC_state->sWARN_EXPERIMENTAL__VLB)
+#define RExC_warned_WARN_EXPERIMENTAL__REGEX_SETS (pRExC_state->sWARN_EXPERIMENTAL__REGEX_SETS)
+#define RExC_unlexed_names (pRExC_state->unlexed_names)
+
+
+/***********************************************************************/
+/* UTILITY MACROS FOR ADVANCING OR SETTING THE PARSE "CURSOR" RExC_parse
+ *
+ * All of these macros depend on the above RExC_ accessor macros, which
+ * in turns depend on a variable pRExC_state being in scope where they
+ * are used. This is the standard regexp parser context variable which is
+ * passed into every non-trivial parse function in this file.
+ *
+ * Note that the UTF macro is itself a wrapper around RExC_utf8, so all
+ * of the macros which do not take an argument will operate on the
+ * pRExC_state structure *only*.
+ *
+ * Please do NOT modify RExC_parse without using these macros. In the
+ * future these macros will be extended for enhanced debugging and trace
+ * output during the parse process.
+ */
+
+/* RExC_parse_incf(flag)
+ *
+ * Increment RExC_parse to point at the next codepoint, while doing
+ * the right thing depending on whether we are parsing UTF-8 strings
+ * or not. The 'flag' argument determines if content is UTF-8 or not,
+ * intended for cases where this is NOT governed by the UTF macro.
+ *
+ * Use RExC_parse_inc() if UTF-8ness is controlled by the UTF macro.
+ *
+ * WARNING: Does NOT take into account RExC_end; it is the callers
+ * responsibility to make sure there are enough octets left in
+ * RExC_parse to ensure that when processing UTF-8 we would not read
+ * past the end of the string.
+ */
+#define RExC_parse_incf(flag) STMT_START { \
+ RExC_parse += (flag) ? UTF8SKIP(RExC_parse) : 1; \
+} STMT_END
+
+/* RExC_parse_inc_safef(flag)
+ *
+ * Safely increment RExC_parse to point at the next codepoint,
+ * doing the right thing depending on whether we are parsing
+ * UTF-8 strings or not and NOT reading past the end of the buffer.
+ * The 'flag' argument determines if content is UTF-8 or not,
+ * intended for cases where this is NOT governed by the UTF macro.
+ *
+ * Use RExC_parse_safe() if UTF-8ness is controlled by the UTF macro.
+ *
+ * NOTE: Will NOT read past RExC_end when content is UTF-8.
+ */
+#define RExC_parse_inc_safef(flag) STMT_START { \
+ RExC_parse += (flag) ? UTF8_SAFE_SKIP(RExC_parse,RExC_end) : 1; \
+} STMT_END
+
+/* RExC_parse_inc()
+ *
+ * Increment RExC_parse to point at the next codepoint,
+ * doing the right thing depending on whether we are parsing
+ * UTF-8 strings or not.
+ *
+ * WARNING: Does NOT take into account RExC_end, it is the callers
+ * responsibility to make sure there are enough octets left in
+ * RExC_parse to ensure that when processing UTF-8 we would not read
+ * past the end of the string.
+ *
+ * NOTE: whether we are parsing UTF-8 or not is determined by the
+ * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
+ * macro operates on the pRExC_state structure only.
+ */
+#define RExC_parse_inc() RExC_parse_incf(UTF)
+
+/* RExC_parse_inc_safe()
+ *
+ * Safely increment RExC_parse to point at the next codepoint,
+ * doing the right thing depending on whether we are parsing
+ * UTF-8 strings or not and NOT reading past the end of the buffer.
+ *
+ * NOTE: whether we are parsing UTF-8 or not is determined by the
+ * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
+ * macro operates on the pRExC_state structure only.
+ */
+#define RExC_parse_inc_safe() RExC_parse_inc_safef(UTF)
+
+/* RExC_parse_inc_utf8()
+ *
+ * Increment RExC_parse to point at the next utf8 codepoint,
+ * assumes content is UTF-8.
+ *
+ * WARNING: Does NOT take into account RExC_end; it is the callers
+ * responsibility to make sure there are enough octets left in RExC_parse
+ * to ensure that when processing UTF-8 we would not read past the end
+ * of the string.
+ */
+#define RExC_parse_inc_utf8() STMT_START { \
+ RExC_parse += UTF8SKIP(RExC_parse); \
+} STMT_END
+
+/* RExC_parse_inc_if_char()
+ *
+ * Increment RExC_parse to point at the next codepoint, if and only
+ * if the current parse point is NOT a NULL, while doing the right thing
+ * depending on whether we are parsing UTF-8 strings or not.
+ *
+ * WARNING: Does NOT take into account RExC_end, it is the callers
+ * responsibility to make sure there are enough octets left in RExC_parse
+ * to ensure that when processing UTF-8 we would not read past the end
+ * of the string.
+ *
+ * NOTE: whether we are parsing UTF-8 or not is determined by the
+ * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
+ * macro operates on the pRExC_state structure only.
+ */
+#define RExC_parse_inc_if_char() STMT_START { \
+ RExC_parse += SKIP_IF_CHAR(RExC_parse,RExC_end); \
+} STMT_END
+
+/* RExC_parse_inc_by(n_octets)
+ *
+ * Increment the parse cursor by the number of octets specified by
+ * the 'n_octets' argument.
+ *
+ * NOTE: Does NOT check ANY constraints. It is the callers responsibility
+ * that this will not move past the end of the string, or leave the
+ * pointer in the middle of a UTF-8 sequence.
+ *
+ * Typically used to advanced past previously analyzed content.
+ */
+#define RExC_parse_inc_by(n_octets) STMT_START { \
+ RExC_parse += (n_octets); \
+} STMT_END
+
+/* RExC_parse_set(to_ptr)
+ *
+ * Sets the RExC_parse pointer to the pointer specified by the 'to'
+ * argument. No validation whatsoever is performed on the to pointer.
+ */
+#define RExC_parse_set(to_ptr) STMT_START { \
+ RExC_parse = (to_ptr); \
+} STMT_END
+
+/**********************************************************************/
+
+/* Heuristic check on the complexity of the pattern: if TOO_NAUGHTY, we set
+ * a flag to disable back-off on the fixed/floating substrings - if it's
+ * a high complexity pattern we assume the benefit of avoiding a full match
+ * is worth the cost of checking for the substrings even if they rarely help.
+ */
+#define RExC_naughty (pRExC_state->naughty)
+#define TOO_NAUGHTY (10)
+#define MARK_NAUGHTY(add) \
+ if (RExC_naughty < TOO_NAUGHTY) \
+ RExC_naughty += (add)
+#define MARK_NAUGHTY_EXP(exp, add) \
+ if (RExC_naughty < TOO_NAUGHTY) \
+ RExC_naughty += RExC_naughty / (exp) + (add)
+
+#define isNON_BRACE_QUANTIFIER(c) ((c) == '*' || (c) == '+' || (c) == '?')
+#define isQUANTIFIER(s,e) ( isNON_BRACE_QUANTIFIER(*s) \
+ || ((*s) == '{' && regcurly(s, e, NULL)))
+
+/*
+ * Flags to be passed up.
+ */
+#define HASWIDTH 0x01 /* Known to not match null strings, could match
+ non-null ones. */
+#define SIMPLE 0x02 /* Exactly one character wide */
+ /* (or LNBREAK as a special case) */
+#define POSTPONED 0x08 /* (?1),(?&name), (??{...}) or similar */
+#define TRYAGAIN 0x10 /* Weeded out a declaration. */
+#define RESTART_PARSE 0x20 /* Need to redo the parse */
+#define NEED_UTF8 0x40 /* In conjunction with RESTART_PARSE, need to
+ calcuate sizes as UTF-8 */
+
+#define REG_NODE_NUM(x) ((x) ? (int)((x)-RExC_emit_start) : -1)
+
+/* whether trie related optimizations are enabled */
+#if PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION
+#define TRIE_STUDY_OPT
+#define FULL_TRIE_STUDY
+#define TRIE_STCLASS
+#endif
+
+/* About the term "restudy" and the var "restudied" and the defines
+ * "SCF_TRIE_RESTUDY" and "SCF_TRIE_DOING_RESTUDY": All of these relate to
+ * doing multiple study_chunk() calls over the same set of opcodes for* the
+ * purpose of enhanced TRIE optimizations.
+ *
+ * Specifically, when TRIE_STUDY_OPT is defined, and it is defined in normal
+ * builds, (see above), during compilation SCF_TRIE_RESTUDY may be enabled
+ * which then causes the Perl_re_op_compile() to then call the optimizer
+ * S_study_chunk() a second time to perform additional optimizations,
+ * including the aho_corasick startclass optimization.
+ * This additional pass will only happen once, which is managed by the
+ * 'restudied' variable in Perl_re_op_compile().
+ *
+ * When this second pass is under way the flags passed into study_chunk() will
+ * include SCF_TRIE_DOING_RESTUDY and this flag is and must be cascaded down
+ * to any recursive calls to S_study_chunk().
+ *
+ * IMPORTANT: Any logic in study_chunk() that emits warnings should check that
+ * the SCF_TRIE_DOING_RESTUDY flag is NOT set in 'flags', or the warning may
+ * be produced twice.
+ *
+ * See commit 07be1b83a6b2d24b492356181ddf70e1c7917ae3 and
+ * 688e03912e3bff2d2419c457d8b0e1bab3eb7112 for more details.
+ */
+
+
+#define PBYTE(u8str,paren) ((U8*)(u8str))[(paren) >> 3]
+#define PBITVAL(paren) (1 << ((paren) & 7))
+#define PAREN_OFFSET(depth) \
+ (RExC_study_chunk_recursed + (depth) * RExC_study_chunk_recursed_bytes)
+#define PAREN_TEST(depth, paren) \
+ (PBYTE(PAREN_OFFSET(depth), paren) & PBITVAL(paren))
+#define PAREN_SET(depth, paren) \
+ (PBYTE(PAREN_OFFSET(depth), paren) |= PBITVAL(paren))
+#define PAREN_UNSET(depth, paren) \
+ (PBYTE(PAREN_OFFSET(depth), paren) &= ~PBITVAL(paren))
+
+#define REQUIRE_UTF8(flagp) STMT_START { \
+ if (!UTF) { \
+ *flagp = RESTART_PARSE|NEED_UTF8; \
+ return 0; \
+ } \
+ } STMT_END
+
+/* /u is to be chosen if we are supposed to use Unicode rules, or if the
+ * pattern is in UTF-8. This latter condition is in case the outermost rules
+ * are locale. See GH #17278 */
+#define toUSE_UNI_CHARSET_NOT_DEPENDS (RExC_uni_semantics || UTF)
+
+/* Change from /d into /u rules, and restart the parse. RExC_uni_semantics is
+ * a flag that indicates we need to override /d with /u as a result of
+ * something in the pattern. It should only be used in regards to calling
+ * set_regex_charset() or get_regex_charset() */
+#define REQUIRE_UNI_RULES(flagp, restart_retval) \
+ STMT_START { \
+ if (DEPENDS_SEMANTICS) { \
+ set_regex_charset(&RExC_flags, REGEX_UNICODE_CHARSET); \
+ RExC_uni_semantics = 1; \
+ if (RExC_seen_d_op && LIKELY(! IN_PARENS_PASS)) { \
+ /* No need to restart the parse if we haven't seen \
+ * anything that differs between /u and /d, and no need \
+ * to restart immediately if we're going to reparse \
+ * anyway to count parens */ \
+ *flagp |= RESTART_PARSE; \
+ return restart_retval; \
+ } \
+ } \
+ } STMT_END
+
+#define REQUIRE_BRANCHJ(flagp, restart_retval) \
+ STMT_START { \
+ RExC_use_BRANCHJ = 1; \
+ *flagp |= RESTART_PARSE; \
+ return restart_retval; \
+ } STMT_END
+
+/* Until we have completed the parse, we leave RExC_total_parens at 0 or
+ * less. After that, it must always be positive, because the whole re is
+ * considered to be surrounded by virtual parens. Setting it to negative
+ * indicates there is some construct that needs to know the actual number of
+ * parens to be properly handled. And that means an extra pass will be
+ * required after we've counted them all */
+#define ALL_PARENS_COUNTED (RExC_total_parens > 0)
+#define REQUIRE_PARENS_PASS \
+ STMT_START { /* No-op if have completed a pass */ \
+ if (! ALL_PARENS_COUNTED) RExC_total_parens = -1; \
+ } STMT_END
+#define IN_PARENS_PASS (RExC_total_parens < 0)
+
+
+/* This is used to return failure (zero) early from the calling function if
+ * various flags in 'flags' are set. Two flags always cause a return:
+ * 'RESTART_PARSE' and 'NEED_UTF8'. 'extra' can be used to specify any
+ * additional flags that should cause a return; 0 if none. If the return will
+ * be done, '*flagp' is first set to be all of the flags that caused the
+ * return. */
+#define RETURN_FAIL_ON_RESTART_OR_FLAGS(flags,flagp,extra) \
+ STMT_START { \
+ if ((flags) & (RESTART_PARSE|NEED_UTF8|(extra))) { \
+ *(flagp) = (flags) & (RESTART_PARSE|NEED_UTF8|(extra)); \
+ return 0; \
+ } \
+ } STMT_END
+
+#define MUST_RESTART(flags) ((flags) & (RESTART_PARSE))
+
+#define RETURN_FAIL_ON_RESTART(flags,flagp) \
+ RETURN_FAIL_ON_RESTART_OR_FLAGS( flags, flagp, 0)
+#define RETURN_FAIL_ON_RESTART_FLAGP(flagp) \
+ if (MUST_RESTART(*(flagp))) return 0
+
+/* This converts the named class defined in regcomp.h to its equivalent class
+ * number defined in handy.h. */
+#define namedclass_to_classnum(class) ((int) ((class) / 2))
+#define classnum_to_namedclass(classnum) ((classnum) * 2)
+
+#define _invlist_union_complement_2nd(a, b, output) \
+ _invlist_union_maybe_complement_2nd(a, b, TRUE, output)
+#define _invlist_intersection_complement_2nd(a, b, output) \
+ _invlist_intersection_maybe_complement_2nd(a, b, TRUE, output)
+
+/* We add a marker if we are deferring expansion of a property that is both
+ * 1) potentiallly user-defined; and
+ * 2) could also be an official Unicode property.
+ *
+ * Without this marker, any deferred expansion can only be for a user-defined
+ * one. This marker shouldn't conflict with any that could be in a legal name,
+ * and is appended to its name to indicate this. There is a string and
+ * character form */
+#define DEFERRED_COULD_BE_OFFICIAL_MARKERs "~"
+#define DEFERRED_COULD_BE_OFFICIAL_MARKERc '~'
+
+/* What is infinity for optimization purposes */
+#define OPTIMIZE_INFTY SSize_t_MAX
+
+/* About scan_data_t.
+
+ During optimisation we recurse through the regexp program performing
+ various inplace (keyhole style) optimisations. In addition study_chunk
+ and scan_commit populate this data structure with information about
+ what strings MUST appear in the pattern. We look for the longest
+ string that must appear at a fixed location, and we look for the
+ longest string that may appear at a floating location. So for instance
+ in the pattern:
+
+ /FOO[xX]A.*B[xX]BAR/
+
+ Both 'FOO' and 'A' are fixed strings. Both 'B' and 'BAR' are floating
+ strings (because they follow a .* construct). study_chunk will identify
+ both FOO and BAR as being the longest fixed and floating strings respectively.
+
+ The strings can be composites, for instance
+
+ /(f)(o)(o)/
+
+ will result in a composite fixed substring 'foo'.
+
+ For each string some basic information is maintained:
+
+ - min_offset
+ This is the position the string must appear at, or not before.
+ It also implicitly (when combined with minlenp) tells us how many
+ characters must match before the string we are searching for.
+ Likewise when combined with minlenp and the length of the string it
+ tells us how many characters must appear after the string we have
+ found.
+
+ - max_offset
+ Only used for floating strings. This is the rightmost point that
+ the string can appear at. If set to OPTIMIZE_INFTY it indicates that the
+ string can occur infinitely far to the right.
+ For fixed strings, it is equal to min_offset.
+
+ - minlenp
+ A pointer to the minimum number of characters of the pattern that the
+ string was found inside. This is important as in the case of positive
+ lookahead or positive lookbehind we can have multiple patterns
+ involved. Consider
+
+ /(?=FOO).*F/
+
+ The minimum length of the pattern overall is 3, the minimum length
+ of the lookahead part is 3, but the minimum length of the part that
+ will actually match is 1. So 'FOO's minimum length is 3, but the
+ minimum length for the F is 1. This is important as the minimum length
+ is used to determine offsets in front of and behind the string being
+ looked for. Since strings can be composites this is the length of the
+ pattern at the time it was committed with a scan_commit. Note that
+ the length is calculated by study_chunk, so that the minimum lengths
+ are not known until the full pattern has been compiled, thus the
+ pointer to the value.
+
+ - lookbehind
+
+ In the case of lookbehind the string being searched for can be
+ offset past the start point of the final matching string.
+ If this value was just blithely removed from the min_offset it would
+ invalidate some of the calculations for how many chars must match
+ before or after (as they are derived from min_offset and minlen and
+ the length of the string being searched for).
+ When the final pattern is compiled and the data is moved from the
+ scan_data_t structure into the regexp structure the information
+ about lookbehind is factored in, with the information that would
+ have been lost precalculated in the end_shift field for the
+ associated string.
+
+ The fields pos_min and pos_delta are used to store the minimum offset
+ and the delta to the maximum offset at the current point in the pattern.
+
+*/
+
+struct scan_data_substrs {
+ SV *str; /* longest substring found in pattern */
+ SSize_t min_offset; /* earliest point in string it can appear */
+ SSize_t max_offset; /* latest point in string it can appear */
+ SSize_t *minlenp; /* pointer to the minlen relevant to the string */
+ SSize_t lookbehind; /* is the pos of the string modified by LB */
+ I32 flags; /* per substring SF_* and SCF_* flags */
+};
+
+/* this is typedef'ed in perl.h */
+struct scan_data_t {
+ /*I32 len_min; unused */
+ /*I32 len_delta; unused */
+ SSize_t pos_min;
+ SSize_t pos_delta;
+ SV *last_found;
+ SSize_t last_end; /* min value, <0 unless valid. */
+ SSize_t last_start_min;
+ SSize_t last_start_max;
+ U8 cur_is_floating; /* whether the last_* values should be set as
+ * the next fixed (0) or floating (1)
+ * substring */
+
+ /* [0] is longest fixed substring so far, [1] is longest float so far */
+ struct scan_data_substrs substrs[2];
+
+ I32 flags; /* common SF_* and SCF_* flags */
+ I32 whilem_c;
+ SSize_t *last_closep;
+ regnode **last_close_opp; /* pointer to pointer to last CLOSE regop
+ seen. DO NOT DEREFERENCE the regnode
+ pointer - the op may have been optimized
+ away */
+ regnode_ssc *start_class;
+};
+
+/*
+ * Forward declarations for pregcomp()'s friends.
+ */
+
+static const scan_data_t zero_scan_data = {
+ 0, 0, NULL, 0, 0, 0, 0,
+ {
+ { NULL, 0, 0, 0, 0, 0 },
+ { NULL, 0, 0, 0, 0, 0 },
+ },
+ 0, 0, NULL, NULL, NULL
+};
+
+/* study flags */
+
+#define SF_BEFORE_SEOL 0x0001
+#define SF_BEFORE_MEOL 0x0002
+#define SF_BEFORE_EOL (SF_BEFORE_SEOL|SF_BEFORE_MEOL)
+
+#define SF_IS_INF 0x0040
+#define SF_HAS_PAR 0x0080
+#define SF_IN_PAR 0x0100
+#define SF_HAS_EVAL 0x0200
+
+
+/* SCF_DO_SUBSTR is the flag that tells the regexp analyzer to track the
+ * longest substring in the pattern. When it is not set the optimiser keeps
+ * track of position, but does not keep track of the actual strings seen,
+ *
+ * So for instance /foo/ will be parsed with SCF_DO_SUBSTR being true, but
+ * /foo/i will not.
+ *
+ * Similarly, /foo.*(blah|erm|huh).*fnorble/ will have "foo" and "fnorble"
+ * parsed with SCF_DO_SUBSTR on, but while processing the (...) it will be
+ * turned off because of the alternation (BRANCH). */
+#define SCF_DO_SUBSTR 0x0400
+
+#define SCF_DO_STCLASS_AND 0x0800
+#define SCF_DO_STCLASS_OR 0x1000
+#define SCF_DO_STCLASS (SCF_DO_STCLASS_AND|SCF_DO_STCLASS_OR)
+#define SCF_WHILEM_VISITED_POS 0x2000
+
+#define SCF_TRIE_RESTUDY 0x4000 /* Need to do restudy in study_chunk()?
+ Search for "restudy" in this file
+ to find a detailed explanation.*/
+#define SCF_SEEN_ACCEPT 0x8000
+#define SCF_TRIE_DOING_RESTUDY 0x10000 /* Are we in restudy right now?
+ Search for "restudy" in this file
+ to find a detailed explanation. */
+#define SCF_IN_DEFINE 0x20000
+
+
+
+#define UTF cBOOL(RExC_utf8)
+
+/* The enums for all these are ordered so things work out correctly */
+#define LOC (get_regex_charset(RExC_flags) == REGEX_LOCALE_CHARSET)
+#define DEPENDS_SEMANTICS (get_regex_charset(RExC_flags) \
+ == REGEX_DEPENDS_CHARSET)
+#define UNI_SEMANTICS (get_regex_charset(RExC_flags) == REGEX_UNICODE_CHARSET)
+#define AT_LEAST_UNI_SEMANTICS (get_regex_charset(RExC_flags) \
+ >= REGEX_UNICODE_CHARSET)
+#define ASCII_RESTRICTED (get_regex_charset(RExC_flags) \
+ == REGEX_ASCII_RESTRICTED_CHARSET)
+#define AT_LEAST_ASCII_RESTRICTED (get_regex_charset(RExC_flags) \
+ >= REGEX_ASCII_RESTRICTED_CHARSET)
+#define ASCII_FOLD_RESTRICTED (get_regex_charset(RExC_flags) \
+ == REGEX_ASCII_MORE_RESTRICTED_CHARSET)
+
+#define FOLD cBOOL(RExC_flags & RXf_PMf_FOLD)
+
+/* For programs that want to be strictly Unicode compatible by dying if any
+ * attempt is made to match a non-Unicode code point against a Unicode
+ * property. */
+#define ALWAYS_WARN_SUPER ckDEAD(packWARN(WARN_NON_UNICODE))
+
+#define OOB_NAMEDCLASS -1
+
+/* There is no code point that is out-of-bounds, so this is problematic. But
+ * its only current use is to initialize a variable that is always set before
+ * looked at. */
+#define OOB_UNICODE 0xDEADBEEF
+
+#define CHR_SVLEN(sv) (UTF ? sv_len_utf8(sv) : SvCUR(sv))
+
+
+/* length of regex to show in messages that don't mark a position within */
+#define RegexLengthToShowInErrorMessages 127
+
+/*
+ * If MARKER[12] are adjusted, be sure to adjust the constants at the top
+ * of t/op/regmesg.t, the tests in t/op/re_tests, and those in
+ * op/pragma/warn/regcomp.
+ */
+#define MARKER1 "<-- HERE" /* marker as it appears in the description */
+#define MARKER2 " <-- HERE " /* marker as it appears within the regex */
+
+#define REPORT_LOCATION " in regex; marked by " MARKER1 \
+ " in m/%" UTF8f MARKER2 "%" UTF8f "/"
+
+/* The code in this file in places uses one level of recursion with parsing
+ * rebased to an alternate string constructed by us in memory. This can take
+ * the form of something that is completely different from the input, or
+ * something that uses the input as part of the alternate. In the first case,
+ * there should be no possibility of an error, as we are in complete control of
+ * the alternate string. But in the second case we don't completely control
+ * the input portion, so there may be errors in that. Here's an example:
+ * /[abc\x{DF}def]/ui
+ * is handled specially because \x{df} folds to a sequence of more than one
+ * character: 'ss'. What is done is to create and parse an alternate string,
+ * which looks like this:
+ * /(?:\x{DF}|[abc\x{DF}def])/ui
+ * where it uses the input unchanged in the middle of something it constructs,
+ * which is a branch for the DF outside the character class, and clustering
+ * parens around the whole thing. (It knows enough to skip the DF inside the
+ * class while in this substitute parse.) 'abc' and 'def' may have errors that
+ * need to be reported. The general situation looks like this:
+ *
+ * |<------- identical ------>|
+ * sI tI xI eI
+ * Input: ---------------------------------------------------------------
+ * Constructed: ---------------------------------------------------
+ * sC tC xC eC EC
+ * |<------- identical ------>|
+ *
+ * sI..eI is the portion of the input pattern we are concerned with here.
+ * sC..EC is the constructed substitute parse string.
+ * sC..tC is constructed by us
+ * tC..eC is an exact duplicate of the portion of the input pattern tI..eI.
+ * In the diagram, these are vertically aligned.
+ * eC..EC is also constructed by us.
+ * xC is the position in the substitute parse string where we found a
+ * problem.
+ * xI is the position in the original pattern corresponding to xC.
+ *
+ * We want to display a message showing the real input string. Thus we need to
+ * translate from xC to xI. We know that xC >= tC, since the portion of the
+ * string sC..tC has been constructed by us, and so shouldn't have errors. We
+ * get:
+ * xI = tI + (xC - tC)
+ *
+ * When the substitute parse is constructed, the code needs to set:
+ * RExC_start (sC)
+ * RExC_end (eC)
+ * RExC_copy_start_in_input (tI)
+ * RExC_copy_start_in_constructed (tC)
+ * and restore them when done.
+ *
+ * During normal processing of the input pattern, both
+ * 'RExC_copy_start_in_input' and 'RExC_copy_start_in_constructed' are set to
+ * sI, so that xC equals xI.
+ */
+
+#define sI RExC_precomp
+#define eI RExC_precomp_end
+#define sC RExC_start
+#define eC RExC_end
+#define tI RExC_copy_start_in_input
+#define tC RExC_copy_start_in_constructed
+#define xI(xC) (tI + (xC - tC))
+#define xI_offset(xC) (xI(xC) - sI)
+
+#define REPORT_LOCATION_ARGS(xC) \
+ UTF8fARG(UTF, \
+ (xI(xC) > eI) /* Don't run off end */ \
+ ? eI - sI /* Length before the <--HERE */ \
+ : ((xI_offset(xC) >= 0) \
+ ? xI_offset(xC) \
+ : (Perl_croak(aTHX_ "panic: %s: %d: negative offset: %" \
+ IVdf " trying to output message for " \
+ " pattern %.*s", \
+ __FILE__, __LINE__, (IV) xI_offset(xC), \
+ ((int) (eC - sC)), sC), 0)), \
+ sI), /* The input pattern printed up to the <--HERE */ \
+ UTF8fARG(UTF, \
+ (xI(xC) > eI) ? 0 : eI - xI(xC), /* Length after <--HERE */ \
+ (xI(xC) > eI) ? eI : xI(xC)) /* pattern after <--HERE */
+
+/* Used to point after bad bytes for an error message, but avoid skipping
+ * past a nul byte. */
+#define SKIP_IF_CHAR(s, e) (!*(s) ? 0 : UTF ? UTF8_SAFE_SKIP(s, e) : 1)
+
+/* Set up to clean up after our imminent demise */
+#define PREPARE_TO_DIE \
+ STMT_START { \
+ if (RExC_rx_sv) \
+ SAVEFREESV(RExC_rx_sv); \
+ if (RExC_open_parens) \
+ SAVEFREEPV(RExC_open_parens); \
+ if (RExC_close_parens) \
+ SAVEFREEPV(RExC_close_parens); \
+ if (RExC_logical_to_parno) \
+ SAVEFREEPV(RExC_logical_to_parno); \
+ if (RExC_parno_to_logical) \
+ SAVEFREEPV(RExC_parno_to_logical); \
+ } STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then calls Perl_croak with the given
+ * arg. Show regex, up to a maximum length. If it's too long, chop and add
+ * "...".
+ */
+#define _FAIL(code) STMT_START { \
+ const char *ellipses = ""; \
+ IV len = RExC_precomp_end - RExC_precomp; \
+ \
+ PREPARE_TO_DIE; \
+ if (len > RegexLengthToShowInErrorMessages) { \
+ /* chop 10 shorter than the max, to ensure meaning of "..." */ \
+ len = RegexLengthToShowInErrorMessages - 10; \
+ ellipses = "..."; \
+ } \
+ code; \
+} STMT_END
+
+#define FAIL(msg) _FAIL( \
+ Perl_croak(aTHX_ "%s in regex m/%" UTF8f "%s/", \
+ msg, UTF8fARG(UTF, len, RExC_precomp), ellipses))
+
+#define FAIL2(msg,arg) _FAIL( \
+ Perl_croak(aTHX_ msg " in regex m/%" UTF8f "%s/", \
+ arg, UTF8fARG(UTF, len, RExC_precomp), ellipses))
+
+#define FAIL3(msg,arg1,arg2) _FAIL( \
+ Perl_croak(aTHX_ msg " in regex m/%" UTF8f "%s/", \
+ arg1, arg2, UTF8fARG(UTF, len, RExC_precomp), ellipses))
+
+/*
+ * Simple_vFAIL -- like FAIL, but marks the current location in the scan
+ */
+#define Simple_vFAIL(m) STMT_START { \
+ Perl_croak(aTHX_ "%s" REPORT_LOCATION, \
+ m, REPORT_LOCATION_ARGS(RExC_parse)); \
+} STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL()
+ */
+#define vFAIL(m) STMT_START { \
+ PREPARE_TO_DIE; \
+ Simple_vFAIL(m); \
+} STMT_END
+
+/*
+ * Like Simple_vFAIL(), but accepts two arguments.
+ */
+#define Simple_vFAIL2(m,a1) STMT_START { \
+ S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, \
+ REPORT_LOCATION_ARGS(RExC_parse)); \
+} STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL2().
+ */
+#define vFAIL2(m,a1) STMT_START { \
+ PREPARE_TO_DIE; \
+ Simple_vFAIL2(m, a1); \
+} STMT_END
+
+
+/*
+ * Like Simple_vFAIL(), but accepts three arguments.
+ */
+#define Simple_vFAIL3(m, a1, a2) STMT_START { \
+ S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2, \
+ REPORT_LOCATION_ARGS(RExC_parse)); \
+} STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL3().
+ */
+#define vFAIL3(m,a1,a2) STMT_START { \
+ PREPARE_TO_DIE; \
+ Simple_vFAIL3(m, a1, a2); \
+} STMT_END
+
+/*
+ * Like Simple_vFAIL(), but accepts four arguments.
+ */
+#define Simple_vFAIL4(m, a1, a2, a3) STMT_START { \
+ S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2, a3, \
+ REPORT_LOCATION_ARGS(RExC_parse)); \
+} STMT_END
+
+#define vFAIL4(m,a1,a2,a3) STMT_START { \
+ PREPARE_TO_DIE; \
+ Simple_vFAIL4(m, a1, a2, a3); \
+} STMT_END
+
+/* A specialized version of vFAIL2 that works with UTF8f */
+#define vFAIL2utf8f(m, a1) STMT_START { \
+ PREPARE_TO_DIE; \
+ S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, \
+ REPORT_LOCATION_ARGS(RExC_parse)); \
+} STMT_END
+
+#define vFAIL3utf8f(m, a1, a2) STMT_START { \
+ PREPARE_TO_DIE; \
+ S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2, \
+ REPORT_LOCATION_ARGS(RExC_parse)); \
+} STMT_END
+
+/* Setting this to NULL is a signal to not output warnings */
+#define TURN_OFF_WARNINGS_IN_SUBSTITUTE_PARSE \
+ STMT_START { \
+ RExC_save_copy_start_in_constructed = RExC_copy_start_in_constructed;\
+ RExC_copy_start_in_constructed = NULL; \
+ } STMT_END
+#define RESTORE_WARNINGS \
+ RExC_copy_start_in_constructed = RExC_save_copy_start_in_constructed
+
+/* Since a warning can be generated multiple times as the input is reparsed, we
+ * output it the first time we come to that point in the parse, but suppress it
+ * otherwise. 'RExC_copy_start_in_constructed' being NULL is a flag to not
+ * generate any warnings */
+#define TO_OUTPUT_WARNINGS(loc) \
+ ( RExC_copy_start_in_constructed \
+ && ((xI(loc)) - RExC_precomp) > (Ptrdiff_t) RExC_latest_warn_offset)
+
+/* After we've emitted a warning, we save the position in the input so we don't
+ * output it again */
+#define UPDATE_WARNINGS_LOC(loc) \
+ STMT_START { \
+ if (TO_OUTPUT_WARNINGS(loc)) { \
+ RExC_latest_warn_offset = MAX(sI, MIN(eI, xI(loc))) \
+ - RExC_precomp; \
+ } \
+ } STMT_END
+
+/* 'warns' is the output of the packWARNx macro used in 'code' */
+#define _WARN_HELPER(loc, warns, code) \
+ STMT_START { \
+ if (! RExC_copy_start_in_constructed) { \
+ Perl_croak( aTHX_ "panic! %s: %d: Tried to warn when none" \
+ " expected at '%s'", \
+ __FILE__, __LINE__, loc); \
+ } \
+ if (TO_OUTPUT_WARNINGS(loc)) { \
+ if (ckDEAD(warns)) \
+ PREPARE_TO_DIE; \
+ code; \
+ UPDATE_WARNINGS_LOC(loc); \
+ } \
+ } STMT_END
+
+/* m is not necessarily a "literal string", in this macro */
+#define warn_non_literal_string(loc, packed_warn, m) \
+ _WARN_HELPER(loc, packed_warn, \
+ Perl_warner(aTHX_ packed_warn, \
+ "%s" REPORT_LOCATION, \
+ m, REPORT_LOCATION_ARGS(loc)))
+#define reg_warn_non_literal_string(loc, m) \
+ warn_non_literal_string(loc, packWARN(WARN_REGEXP), m)
+
+#define ckWARN2_non_literal_string(loc, packwarn, m, a1) \
+ STMT_START { \
+ char * format; \
+ Size_t format_size = strlen(m) + strlen(REPORT_LOCATION)+ 1;\
+ Newx(format, format_size, char); \
+ my_strlcpy(format, m, format_size); \
+ my_strlcat(format, REPORT_LOCATION, format_size); \
+ SAVEFREEPV(format); \
+ _WARN_HELPER(loc, packwarn, \
+ Perl_ck_warner(aTHX_ packwarn, \
+ format, \
+ a1, REPORT_LOCATION_ARGS(loc))); \
+ } STMT_END
+
+#define ckWARNreg(loc,m) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN(loc, m) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ REPORT_LOCATION_ARGS(loc))) \
+
+#define vWARN_dep(loc,category,m) \
+ _WARN_HELPER(loc, packWARN(category), \
+ Perl_warner(aTHX_ packWARN(category), \
+ m REPORT_LOCATION, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARNdep(loc,category,m) \
+ _WARN_HELPER(loc, packWARN(category), \
+ Perl_ck_warner_d(aTHX_ packWARN(category), \
+ m REPORT_LOCATION, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARNregdep(loc,category,m) \
+ _WARN_HELPER(loc, packWARN2(category, WARN_REGEXP), \
+ Perl_ck_warner_d(aTHX_ packWARN2(category, \
+ WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN2reg_d(loc,m, a1) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_ck_warner_d(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN2reg(loc, m, a1) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN3(loc, m, a1, a2) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, a2, REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN3reg(loc, m, a1, a2) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, a2, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN4(loc, m, a1, a2, a3) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, a2, a3, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN4reg(loc, m, a1, a2, a3) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, a2, a3, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN5(loc, m, a1, a2, a3, a4) \
+ _WARN_HELPER(loc, packWARN(WARN_REGEXP), \
+ Perl_warner(aTHX_ packWARN(WARN_REGEXP), \
+ m REPORT_LOCATION, \
+ a1, a2, a3, a4, \
+ REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARNexperimental(loc, class, m) \
+ STMT_START { \
+ if (! RExC_warned_ ## class) { /* warn once per compilation */ \
+ RExC_warned_ ## class = 1; \
+ _WARN_HELPER(loc, packWARN(class), \
+ Perl_ck_warner_d(aTHX_ packWARN(class), \
+ m REPORT_LOCATION, \
+ REPORT_LOCATION_ARGS(loc)));\
+ } \
+ } STMT_END
+
+#define ckWARNexperimental_with_arg(loc, class, m, arg) \
+ STMT_START { \
+ if (! RExC_warned_ ## class) { /* warn once per compilation */ \
+ RExC_warned_ ## class = 1; \
+ _WARN_HELPER(loc, packWARN(class), \
+ Perl_ck_warner_d(aTHX_ packWARN(class), \
+ m REPORT_LOCATION, \
+ arg, REPORT_LOCATION_ARGS(loc)));\
+ } \
+ } STMT_END
+
+/* Convert between a pointer to a node and its offset from the beginning of the
+ * program */
+#define REGNODE_p(offset) (RExC_emit_start + (offset))
+#define REGNODE_OFFSET(node) (__ASSERT_((node) >= RExC_emit_start) \
+ (SSize_t) ((node) - RExC_emit_start))
+
+#define ProgLen(ri) ri->proglen
+#define SetProgLen(ri,x) ri->proglen = x
+
+#if PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS
+#define EXPERIMENTAL_INPLACESCAN
+#endif /*PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS*/
+
+#define DEBUG_RExC_seen() \
+ DEBUG_OPTIMISE_MORE_r({ \
+ Perl_re_printf( aTHX_ "RExC_seen: "); \
+ \
+ if (RExC_seen & REG_ZERO_LEN_SEEN) \
+ Perl_re_printf( aTHX_ "REG_ZERO_LEN_SEEN "); \
+ \
+ if (RExC_seen & REG_LOOKBEHIND_SEEN) \
+ Perl_re_printf( aTHX_ "REG_LOOKBEHIND_SEEN "); \
+ \
+ if (RExC_seen & REG_GPOS_SEEN) \
+ Perl_re_printf( aTHX_ "REG_GPOS_SEEN "); \
+ \
+ if (RExC_seen & REG_RECURSE_SEEN) \
+ Perl_re_printf( aTHX_ "REG_RECURSE_SEEN "); \
+ \
+ if (RExC_seen & REG_TOP_LEVEL_BRANCHES_SEEN) \
+ Perl_re_printf( aTHX_ "REG_TOP_LEVEL_BRANCHES_SEEN "); \
+ \
+ if (RExC_seen & REG_VERBARG_SEEN) \
+ Perl_re_printf( aTHX_ "REG_VERBARG_SEEN "); \
+ \
+ if (RExC_seen & REG_CUTGROUP_SEEN) \
+ Perl_re_printf( aTHX_ "REG_CUTGROUP_SEEN "); \
+ \
+ if (RExC_seen & REG_RUN_ON_COMMENT_SEEN) \
+ Perl_re_printf( aTHX_ "REG_RUN_ON_COMMENT_SEEN "); \
+ \
+ if (RExC_seen & REG_UNFOLDED_MULTI_SEEN) \
+ Perl_re_printf( aTHX_ "REG_UNFOLDED_MULTI_SEEN "); \
+ \
+ if (RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN) \
+ Perl_re_printf( aTHX_ "REG_UNBOUNDED_QUANTIFIER_SEEN "); \
+ \
+ if (RExC_seen & REG_PESSIMIZE_SEEN) \
+ Perl_re_printf( aTHX_ "REG_PESSIMIZE_SEEN "); \
+ \
+ Perl_re_printf( aTHX_ "\n"); \
+ });
+
+#define DEBUG_SHOW_STUDY_FLAG(flags,flag) \
+ if ((flags) & flag) Perl_re_printf( aTHX_ "%s ", #flag)
+
+
+#ifdef DEBUGGING
+# define DEBUG_STUDYDATA(where, data, depth, is_inf, min, stopmin, delta) \
+ debug_studydata(where, data, depth, is_inf, min, stopmin, delta)
+
+# define DEBUG_PEEP(str, scan, depth, flags) \
+ debug_peep(str, pRExC_state, scan, depth, flags)
+#else
+# define DEBUG_STUDYDATA(where, data, depth, is_inf, min, stopmin, delta) NOOP
+# define DEBUG_PEEP(str, scan, depth, flags) NOOP
+#endif
+
+#define REGTAIL(x,y,z) regtail((x),(y),(z),depth+1)
+#ifdef DEBUGGING
+#define REGTAIL_STUDY(x,y,z) regtail_study((x),(y),(z),depth+1)
+#else
+#define REGTAIL_STUDY(x,y,z) regtail((x),(y),(z),depth+1)
+#endif
+
+#define MADE_TRIE 1
+#define MADE_JUMP_TRIE 2
+#define MADE_EXACT_TRIE 4
+
+#define INVLIST_INDEX 0
+#define ONLY_LOCALE_MATCHES_INDEX 1
+#define DEFERRED_USER_DEFINED_INDEX 2
+
+/* These two functions currently do the exact same thing */
+#define ssc_init_zero ssc_init
+
+#define ssc_add_cp(ssc, cp) ssc_add_range((ssc), (cp), (cp))
+#define ssc_match_all_cp(ssc) ssc_add_range(ssc, 0, UV_MAX)
+
+#ifdef DEBUGGING
+#define REGNODE_GUTS(state,op,extra_size) \
+ regnode_guts_debug(state,op,extra_size)
+#else
+#define REGNODE_GUTS(state,op,extra_size) \
+ regnode_guts(state,extra_size)
+#endif
+
+#define CLEAR_OPTSTART \
+ if (optstart) STMT_START { \
+ DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ \
+ " (%" IVdf " nodes)\n", (IV)(node - optstart))); \
+ optstart=NULL; \
+ } STMT_END
+
+#define DUMPUNTIL(b,e) \
+ CLEAR_OPTSTART; \
+ node = dumpuntil(r,start,(b),(e),last,sv,indent+1,depth+1);
+
+#define REGNODE_STEP_OVER(ret,t1,t2) \
+ NEXT_OFF(REGNODE_p(ret)) = ((sizeof(t1)+sizeof(t2))/sizeof(regnode))
+
+#endif /* REGCOMP_INTERNAL_H */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h
index c4210edf84..243cf246c6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h
@@ -22,10 +22,30 @@
typedef SSize_t regnode_offset;
+struct regnode_meta {
+ U8 type;
+ U8 arg_len;
+ U8 arg_len_varies;
+ U8 off_by_arg;
+};
+
+/* this ensures that on alignment sensitive platforms
+ * this struct is aligned on 32 bit boundaries */
+union regnode_head {
+ struct {
+ union {
+ U8 flags;
+ U8 str_len_u8;
+ U8 first_byte;
+ } u_8;
+ U8 type;
+ U16 next_off;
+ } data;
+ U32 data_u32;
+};
+
struct regnode {
- U8 flags;
- U8 type;
- U16 next_off;
+ union regnode_head head;
};
typedef struct regnode regnode;
@@ -39,7 +59,7 @@ struct regexp;
struct reg_substr_datum {
SSize_t min_offset; /* min pos (in chars) that substr must appear */
- SSize_t max_offset /* max pos (in chars) that substr must appear */;
+ SSize_t max_offset; /* max pos (in chars) that substr must appear */
SV *substr; /* non-utf8 variant */
SV *utf8_substr; /* utf8 variant */
SSize_t end_shift; /* how many fixed chars must end the string */
@@ -55,11 +75,13 @@ struct reg_substr_data {
# define SV_SAVED_COPY
# endif
-/* offsets within a string of a particular /(.)/ capture */
-
+/* offsets within a string of a particular /(.)/ capture
+ * if you change this by adding new non-temporary fields
+ * then be sure to update Perl_rxres_save() in pp_ctl.c */
typedef struct regexp_paren_pair {
SSize_t start;
SSize_t end;
+
/* 'start_tmp' records a new opening position before the matching end
* has been found, so that the old start and end values are still
* valid, e.g.
@@ -69,7 +91,7 @@ typedef struct regexp_paren_pair {
SSize_t start_tmp;
} regexp_paren_pair;
-# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+# if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
# define _invlist_union(a, b, output) _invlist_union_maybe_complement_2nd(a, b, FALSE, output)
# define _invlist_intersection(a, b, output) _invlist_intersection_maybe_complement_2nd(a, b, FALSE, output)
@@ -118,13 +140,23 @@ typedef struct regexp {
* Information about the match that the perl core uses to manage things
*/
+ /* see comment in regcomp_internal.h about branch reset to understand
+ the distinction between physical and logical capture buffers */
+ U32 nparens; /* physical number of capture buffers */
+ U32 logical_nparens; /* logical_number of capture buffers */
+ I32 *logical_to_parno; /* map logical parno to first physcial */
+ I32 *parno_to_logical; /* map every physical parno to logical */
+ I32 *parno_to_logical_next; /* map every physical parno to the next
+ physical with the same logical id */
+
U32 extflags; /* Flags used both externally and internally */
- U32 nparens; /* number of capture buffers */
+ SSize_t maxlen; /* maximum possible number of chars in string to match */
SSize_t minlen; /* minimum possible number of chars in string to match */
- SSize_t minlenret; /* mininum possible number of chars in $& */
+ SSize_t minlenret; /* minimum possible number of chars in $& */
STRLEN gofs; /* chars left of pos that we search from */
/* substring data about strings that must appear in
* the final match, used for optimisations */
+
struct reg_substr_data *substrs;
/* private engine specific data */
@@ -142,6 +174,7 @@ typedef struct regexp {
char **recurse_locinput; /* used to detect infinite recursion, XXX: move to internal */
U32 lastcloseparen; /* last close paren matched ($^N) */
+
/*---------------------------------------------------------------------- */
/* offset from wrapped to the start of precomp */
@@ -158,7 +191,6 @@ typedef struct regexp {
SSize_t sublen; /* Length of string pointed by subbeg */
SSize_t suboffset; /* byte offset of subbeg from logical start of str */
SSize_t subcoffset; /* suboffset equiv, but in chars (for @-/@+) */
- SSize_t maxlen; /* minimum possible number of chars in string to match */
/*---------------------------------------------------------------------- */
@@ -167,7 +199,20 @@ typedef struct regexp {
} regexp;
-# define RXp_PAREN_NAMES(rx) ((rx)->paren_names)
+#define RXp_PAREN_NAMES(rx) ((rx)->paren_names)
+
+#define RXp_OFFS_START(rx,n) \
+ RXp_OFFSp(rx)[(n)].start
+
+#define RXp_OFFS_END(rx,n) \
+ RXp_OFFSp(rx)[(n)].end
+
+#define RXp_OFFS_VALID(rx,n) \
+ (RXp_OFFSp(rx)[(n)].end != -1 && RXp_OFFSp(rx)[(n)].start != -1 )
+
+#define RX_OFFS_START(rx_sv,n) RXp_OFFS_START(ReANY(rx_sv),n)
+#define RX_OFFS_END(rx_sv,n) RXp_OFFS_END(ReANY(rx_sv),n)
+#define RX_OFFS_VALID(rx_sv,n) RXp_OFFS_VALID(ReANY(rx_sv),n)
/* used for high speed searches */
typedef struct re_scream_pos_data_s
@@ -209,9 +254,9 @@ typedef struct regexp_engine {
void* (*dupe) (pTHX_ REGEXP * const rx, CLONE_PARAMS *param);
# endif
REGEXP* (*op_comp) (pTHX_ SV ** const patternp, int pat_count,
- OP *expr, const struct regexp_engine* eng,
- REGEXP *old_re,
- bool *is_bare_re, U32 orig_rx_flags, U32 pm_flags);
+ OP *expr, const struct regexp_engine* eng,
+ REGEXP *old_re,
+ bool *is_bare_re, U32 orig_rx_flags, U32 pm_flags);
} regexp_engine;
/*
@@ -526,30 +571,53 @@ and check for NULL.
# define RX_COMPFLAGS(rx_sv) RXp_COMPFLAGS(ReANY(rx_sv))
# define RXp_ENGINE(prog) ((prog)->engine)
# define RX_ENGINE(rx_sv) (RXp_ENGINE(ReANY(rx_sv)))
-# define RXp_SUBBEG(prog) (prog->subbeg)
+# define RXp_SUBBEG(prog) ((prog)->subbeg)
# define RX_SUBBEG(rx_sv) (RXp_SUBBEG(ReANY(rx_sv)))
-# define RXp_SUBOFFSET(prog) (prog->suboffset)
+# define RXp_SUBOFFSET(prog) ((prog)->suboffset)
# define RX_SUBOFFSET(rx_sv) (RXp_SUBOFFSET(ReANY(rx_sv)))
-# define RX_SUBCOFFSET(rx_sv) (ReANY(rx_sv)->subcoffset)
-# define RXp_OFFS(prog) (prog->offs)
-# define RX_OFFS(rx_sv) (RXp_OFFS(ReANY(rx_sv)))
-# define RXp_NPARENS(prog) (prog->nparens)
+# define RXp_SUBCOFFSET(prog) ((prog)->subcoffset)
+# define RX_SUBCOFFSET(rx_sv) (RXp_SUBCOFFSET(ReANY(rx_sv)))
+# define RXp_OFFSp(prog) ((prog)->offs)
+# define RX_OFFSp(rx_sv) (RXp_OFFSp(ReANY(rx_sv)))
+# define RXp_LOGICAL_NPARENS(prog) ((prog)->logical_nparens)
+# define RX_LOGICAL_NPARENS(rx_sv) (RXp_LOGICAL_NPARENS(ReANY(rx_sv)))
+# define RXp_LOGICAL_TO_PARNO(prog) ((prog)->logical_to_parno)
+# define RX_LOGICAL_TO_PARNO(rx_sv) (RXp_LOGICAL_TO_PARNO(ReANY(rx_sv)))
+# define RXp_PARNO_TO_LOGICAL(prog) ((prog)->parno_to_logical)
+# define RX_PARNO_TO_LOGICAL(rx_sv) (RXp_PARNO_TO_LOGICAL(ReANY(rx_sv)))
+# define RXp_PARNO_TO_LOGICAL_NEXT(prog) ((prog)->parno_to_logical_next)
+# define RX_PARNO_TO_LOGICAL_NEXT(rx_sv) (RXp_PARNO_TO_LOGICAL_NEXT(ReANY(rx_sv)))
+# define RXp_NPARENS(prog) ((prog)->nparens)
# define RX_NPARENS(rx_sv) (RXp_NPARENS(ReANY(rx_sv)))
-# define RX_SUBLEN(rx_sv) (ReANY(rx_sv)->sublen)
-# define RXp_MINLEN(prog) (prog->minlen)
+# define RXp_SUBLEN(prog) ((prog)->sublen)
+# define RX_SUBLEN(rx_sv) (RXp_SUBLEN(ReANY(rx_sv)))
+# define RXp_MINLEN(prog) ((prog)->minlen)
# define RX_MINLEN(rx_sv) (RXp_MINLEN(ReANY(rx_sv)))
-# define RXp_MINLENRET(prog) (prog->minlenret)
+# define RXp_MINLENRET(prog) ((prog)->minlenret)
# define RX_MINLENRET(rx_sv) (RXp_MINLENRET(ReANY(rx_sv)))
-# define RXp_GOFS(prog) (prog->gofs)
+# define RXp_GOFS(prog) ((prog)->gofs)
# define RX_GOFS(rx_sv) (RXp_GOFS(ReANY(rx_sv)))
-# define RX_LASTPAREN(rx_sv) (ReANY(rx_sv)->lastparen)
-# define RX_LASTCLOSEPAREN(rx_sv) (ReANY(rx_sv)->lastcloseparen)
-# define RXp_SAVED_COPY(prog) (prog->saved_copy)
+# define RXp_LASTPAREN(prog) ((prog)->lastparen)
+# define RX_LASTPAREN(rx_sv) (RXp_LASTPAREN(ReANY(rx_sv)))
+# define RXp_LASTCLOSEPAREN(prog) ((prog)->lastcloseparen)
+# define RX_LASTCLOSEPAREN(rx_sv) (RXp_LASTCLOSEPAREN(ReANY(rx_sv)))
+# define RXp_SAVED_COPY(prog) ((prog)->saved_copy)
# define RX_SAVED_COPY(rx_sv) (RXp_SAVED_COPY(ReANY(rx_sv)))
+# define RXp_SUBSTRS(prog) ((prog)->substrs)
+# define RX_SUBSTRS(rx_sv) (RXp_SUBSTRS(ReANY(rx_sv)))
+# define RXp_PPRIVATE(prog) ((prog)->pprivate)
+# define RX_PPRIVATE(rx_sv) (RXp_PPRIVATE(ReANY(rx_sv)))
+# define RXp_QR_ANONCV(prog) ((prog)->qr_anoncv)
+# define RX_QR_ANONCV(rx_sv) (RXp_QR_ANONCV(ReANY(rx_sv)))
+# define RXp_MOTHER_RE(prog) ((prog)->mother_re)
+# define RX_MOTHER_RE(rx_sv) (RXp_MOTHER_RE(ReANY(rx_sv)))
+# define RXp_PRE_PREFIX(prog) ((prog)->pre_prefix)
+# define RX_PRE_PREFIX(rx_sv) (RXp_PRE_PREFIX(ReANY(rx_sv)))
+
/* last match was zero-length */
# define RXp_ZERO_LEN(prog) \
- (RXp_OFFS(prog)[0].start + (SSize_t)RXp_GOFS(prog) \
- == RXp_OFFS(prog)[0].end)
+ (RXp_OFFS_START(prog,0) + (SSize_t)RXp_GOFS(prog) \
+ == RXp_OFFS_END(prog,0))
# define RX_ZERO_LEN(rx_sv) (RXp_ZERO_LEN(ReANY(rx_sv)))
#endif /* PLUGGABLE_RE_EXTENSION */
@@ -557,20 +625,24 @@ and check for NULL.
/* Stuff that needs to be included in the pluggable extension goes below here */
#ifdef PERL_ANY_COW
-# define RXp_MATCH_COPY_FREE(prog) \
- STMT_START {if (RXp_SAVED_COPY(prog)) { \
- SV_CHECK_THINKFIRST_COW_DROP(RXp_SAVED_COPY(prog)); \
- } \
- if (RXp_MATCH_COPIED(prog)) { \
- Safefree(RXp_SUBBEG(prog)); \
- RXp_MATCH_COPIED_off(prog); \
- }} STMT_END
+# define RXp_MATCH_COPY_FREE(prog) \
+ STMT_START { \
+ if (RXp_SAVED_COPY(prog)) { \
+ SV_CHECK_THINKFIRST_COW_DROP(RXp_SAVED_COPY(prog)); \
+ } \
+ if (RXp_MATCH_COPIED(prog)) { \
+ Safefree(RXp_SUBBEG(prog)); \
+ RXp_MATCH_COPIED_off(prog); \
+ } \
+ } STMT_END
#else
-# define RXp_MATCH_COPY_FREE(prog) \
- STMT_START {if (RXp_MATCH_COPIED(prog)) { \
- Safefree(RXp_SUBBEG(prog)); \
- RXp_MATCH_COPIED_off(prog); \
- }} STMT_END
+# define RXp_MATCH_COPY_FREE(prog) \
+ STMT_START { \
+ if (RXp_MATCH_COPIED(prog)) { \
+ Safefree(RXp_SUBBEG(prog)); \
+ RXp_MATCH_COPIED_off(prog); \
+ } \
+ } STMT_END
#endif
#define RX_MATCH_COPY_FREE(rx_sv) RXp_MATCH_COPY_FREE(ReANY(rx_sv))
@@ -610,17 +682,17 @@ and check for NULL.
#if defined(PERL_USE_GCC_BRACE_GROUPS)
# define ReREFCNT_inc(re) \
({ \
- /* This is here to generate a casting warning if incorrect. */ \
- REGEXP *const _rerefcnt_inc = (re); \
- assert(SvTYPE(_rerefcnt_inc) == SVt_REGEXP); \
- SvREFCNT_inc(_rerefcnt_inc); \
- _rerefcnt_inc; \
+ /* This is here to generate a casting warning if incorrect. */ \
+ REGEXP *const _rerefcnt_inc = (re); \
+ assert(SvTYPE(_rerefcnt_inc) == SVt_REGEXP); \
+ SvREFCNT_inc(_rerefcnt_inc); \
+ _rerefcnt_inc; \
})
# define ReREFCNT_dec(re) \
({ \
- /* This is here to generate a casting warning if incorrect. */ \
- REGEXP *const _rerefcnt_dec = (re); \
- SvREFCNT_dec(_rerefcnt_dec); \
+ /* This is here to generate a casting warning if incorrect. */ \
+ REGEXP *const _rerefcnt_dec = (re); \
+ SvREFCNT_dec(_rerefcnt_dec); \
})
#else
# define ReREFCNT_dec(re) SvREFCNT_dec(re)
@@ -704,7 +776,7 @@ typedef struct {
bool is_utf8_target; /* string being matched is utf8 */
bool warned; /* we have issued a recursion warning; no need for more */
} regmatch_info;
-
+
/* structures for holding and saving the state maintained by regmatch() */
@@ -772,145 +844,181 @@ typedef struct regmatch_state {
regmatch_info_aux_eval info_aux_eval;
- /* this is a fake union member that matches the first element
- * of each member that needs to store positive backtrack
- * information */
- struct {
- struct regmatch_state *prev_yes_state;
- } yes;
+ /* this is a fake union member that matches the first element
+ * of each member that needs to store positive backtrack
+ * information */
+ struct {
+ struct regmatch_state *prev_yes_state;
+ } yes;
+
+
+ /* NOTE: Regarding 'cp' and 'lastcp' in the following structs...
+ *
+ * In the majority of cases we use 'cp' for the "normal"
+ * checkpoint for paren saves, and 'lastcp' for the addtional
+ * paren saves that are done only under RE_PESSIMISTIC_PARENS.
+ *
+ * There may be a few cases where both are used always.
+ * Regardless they tend be used something like this:
+ *
+ * ST.cp = regcppush(rex, 0, maxopenparen);
+ * REGCP_SET(ST.lastcp);
+ *
+ * thus ST.cp holds the checkpoint from before we push parens,
+ * and ST.lastcp holds the checkpoint from afterwards.
+ */
/* branchlike members */
/* this is a fake union member that matches the first elements
* of each member that needs to behave like a branch */
struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- U32 lastparen;
- U32 lastcloseparen;
- CHECKPOINT cp;
-
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ U32 lastparen;
+ U32 lastcloseparen;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ U16 before_paren;
+ U16 after_paren;
+
} branchlike;
-
- struct {
- /* the first elements must match u.branchlike */
- struct regmatch_state *prev_yes_state;
- U32 lastparen;
- U32 lastcloseparen;
- CHECKPOINT cp;
-
- regnode *next_branch; /* next branch node */
- } branch;
-
- struct {
- /* the first elements must match u.branchlike */
- struct regmatch_state *prev_yes_state;
- U32 lastparen;
- U32 lastcloseparen;
- CHECKPOINT cp;
-
- U32 accepted; /* how many accepting states left */
- bool longfold;/* saw a fold with a 1->n char mapping */
- U16 *jump; /* positive offsets from me */
- regnode *me; /* Which node am I - needed for jump tries*/
- U8 *firstpos;/* pos in string of first trie match */
- U32 firstchars;/* len in chars of firstpos from start */
- U16 nextword;/* next word to try */
- U16 topword; /* longest accepted word */
- } trie;
+
+ struct {
+ /* the first elements must match u.branchlike */
+ struct regmatch_state *prev_yes_state;
+ U32 lastparen;
+ U32 lastcloseparen;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ U16 before_paren;
+ U16 after_paren;
+
+ regnode *next_branch; /* next branch node */
+ } branch;
+
+ struct {
+ /* the first elements must match u.branchlike */
+ struct regmatch_state *prev_yes_state;
+ U32 lastparen;
+ U32 lastcloseparen;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ U16 before_paren;
+ U16 after_paren;
+
+ U32 accepted; /* how many accepting states left */
+ bool longfold; /* saw a fold with a 1->n char mapping */
+ U16 *jump; /* positive offsets from me */
+ U16 *j_before_paren;
+ U16 *j_after_paren;
+ regnode *me; /* Which node am I - needed for jump tries*/
+ U8 *firstpos; /* pos in string of first trie match */
+ U32 firstchars; /* len in chars of firstpos from start */
+ U16 nextword; /* next word to try */
+ U16 topword; /* longest accepted word */
+ } trie;
/* special types - these members are used to store state for special
regops like eval, if/then, lookaround and the markpoint state */
- struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- struct regmatch_state *prev_curlyx;
+ struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ struct regmatch_state *prev_curlyx;
struct regmatch_state *prev_eval;
- REGEXP *prev_rex;
- CHECKPOINT cp; /* remember current savestack indexes */
- CHECKPOINT lastcp;
- U32 close_paren; /* which close bracket is our end (+1) */
- regnode *B; /* the node following us */
+ REGEXP *prev_rex;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ U32 close_paren; /* which close bracket is our end (+1) */
+ regnode *B; /* the node following us */
char *prev_recurse_locinput;
- } eval;
-
- struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- I32 wanted;
- I32 logical; /* saved copy of 'logical' var */
- U8 count; /* number of beginning positions */
- char *start;
- char *end;
- regnode *me; /* the IFMATCH/SUSPEND/UNLESSM node */
- } ifmatch; /* and SUSPEND/UNLESSM */
-
- struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- struct regmatch_state *prev_mark;
- SV* mark_name;
- char *mark_loc;
- } mark;
-
- struct {
- int val;
- } keeper;
+ } eval;
+
+ struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ I32 wanted;
+ I32 logical; /* saved copy of 'logical' var */
+ U8 count; /* number of beginning positions */
+ char *start;
+ char *end;
+ regnode *me; /* the IFMATCH/SUSPEND/UNLESSM node */
+ char *prev_match_end;
+ } ifmatch; /* and SUSPEND/UNLESSM */
+
+ struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ struct regmatch_state *prev_mark;
+ SV *mark_name;
+ char *mark_loc;
+ } mark;
+
+ struct {
+ int val;
+ } keeper;
/* quantifiers - these members are used for storing state for
the regops used to implement quantifiers */
- struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- struct regmatch_state *prev_curlyx; /* previous cur_curlyx */
- regnode *me; /* the CURLYX node */
- regnode *B; /* the B node in /A*B/ */
- CHECKPOINT cp; /* remember current savestack index */
- bool minmod;
- int parenfloor;/* how far back to strip paren data */
-
- /* these two are modified by WHILEM */
- int count; /* how many instances of A we've matched */
- char *lastloc;/* where previous A matched (0-len detect) */
- } curlyx;
-
- struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- struct regmatch_state *save_curlyx;
- CHECKPOINT cp; /* remember current savestack indexes */
- CHECKPOINT lastcp;
- char *save_lastloc; /* previous curlyx.lastloc */
- I32 cache_offset;
- I32 cache_mask;
- } whilem;
-
- struct {
- /* this first element must match u.yes */
- struct regmatch_state *prev_yes_state;
- CHECKPOINT cp;
- U32 lastparen;
- U32 lastcloseparen;
- I32 alen; /* length of first-matched A string */
- I32 count;
- bool minmod;
- regnode *A, *B; /* the nodes corresponding to /A*B/ */
- regnode *me; /* the curlym node */
+ struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ struct regmatch_state *prev_curlyx; /* previous cur_curlyx */
+ regnode *me; /* the CURLYX node */
+ regnode *B; /* the B node in /A*B/ */
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ bool minmod;
+ int parenfloor; /* how far back to strip paren data */
+
+ /* these two are modified by WHILEM */
+ int count; /* how many instances of A we've matched */
+ char *lastloc; /* where previous A matched (0-len detect) */
+ } curlyx;
+
+ struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ struct regmatch_state *save_curlyx;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ char *save_lastloc; /* previous curlyx.lastloc */
+ I32 cache_offset;
+ I32 cache_mask;
+ } whilem;
+
+ struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
+ U32 lastparen;
+ U32 lastcloseparen;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ I32 alen; /* length of first-matched A string */
+ I32 count;
+ bool minmod;
+ regnode *A, *B; /* the nodes corresponding to /A*B/ */
+ regnode *me; /* the curlym node */
struct next_matchable_info Binfo;
- } curlym;
-
- struct {
- U32 paren;
- CHECKPOINT cp;
- U32 lastparen;
- U32 lastcloseparen;
- char *maxpos; /* highest possible point in string to match */
- char *oldloc; /* the previous locinput */
- int count;
- int min, max; /* {m,n} */
- regnode *A, *B; /* the nodes corresponding to /A*B/ */
+ } curlym;
+
+ struct {
+ U32 paren;
+ U32 lastparen;
+ U32 lastcloseparen;
+ CHECKPOINT cp; /* see note above "struct branchlike" */
+ CHECKPOINT lastcp; /* see note above "struct branchlike" */
+ char *maxpos; /* highest possible point in string to match */
+ char *oldloc; /* the previous locinput */
+ int count;
+ int min, max; /* {m,n} */
+ regnode *A, *B; /* the nodes corresponding to /A*B/ */
struct next_matchable_info Binfo;
- } curly; /* and CURLYN/PLUS/STAR */
+ } curly; /* and CURLYN/PLUS/STAR */
+ struct {
+ CHECKPOINT cp;
+ CHECKPOINT lastcp;
+ } backref; /* REF and friends */
} u;
} regmatch_state;
@@ -919,7 +1027,7 @@ typedef struct regmatch_state {
/* how many regmatch_state structs to allocate as a single slab.
* We do it in 4K blocks for efficiency. The "3" is 2 for the next/prev
* pointers, plus 1 for any mythical malloc overhead. */
-
+
#define PERL_REGMATCH_SLAB_SLOTS \
((4096 - 3 * sizeof (void*)) / sizeof(regmatch_state))
@@ -929,6 +1037,7 @@ typedef struct regmatch_slab {
} regmatch_slab;
+#define REG_FETCH_ABSOLUTE 1
/*
* ex: set ts=8 sts=4 sw=4 et:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reginline.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reginline.h
new file mode 100755
index 0000000000..fd2a9d1e73
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reginline.h
@@ -0,0 +1,64 @@
+
+#ifndef PERL_REGINLINE_H
+
+/*
+ - regnext - dig the "next" pointer out of a node
+ */
+PERL_STATIC_INLINE
+regnode *
+Perl_regnext(pTHX_ const regnode *p)
+{
+ I32 offset;
+
+ if (!p)
+ return(NULL);
+
+ if (OP(p) > REGNODE_MAX) { /* regnode.type is unsigned */
+ Perl_croak(aTHX_ "Corrupted regexp opcode %d > %d",
+ (int)OP(p), (int)REGNODE_MAX);
+ }
+
+ offset = (REGNODE_OFF_BY_ARG(OP(p)) ? ARG1u(p) : NEXT_OFF(p));
+ if (offset == 0)
+ return(NULL);
+
+ return(regnode *)(p+offset);
+}
+
+/*
+ - regnode_after - find the node physically following p in memory,
+ taking into account the size of p as determined by OP(p), our
+ sizing data, and possibly the STR_SZ() macro.
+ */
+PERL_STATIC_INLINE
+regnode *
+Perl_regnode_after(pTHX_ const regnode *p, const bool varies)
+{
+ assert(p);
+ const U8 op = OP(p);
+ assert(op < REGNODE_MAX);
+ const regnode *ret = p + NODE_STEP_REGNODE + REGNODE_ARG_LEN(op);
+ if (varies || REGNODE_ARG_LEN_VARIES(op))
+ ret += STR_SZ(STR_LEN(p));
+ return (regnode *)ret;
+}
+
+/* validate that the passed in node and extra length would match that
+ * returned by regnode_after() */
+PERL_STATIC_INLINE
+bool
+Perl_check_regnode_after(pTHX_ const regnode *p, const STRLEN extra)
+{
+ const regnode *nextoper = regnode_after((regnode *)p,FALSE);
+ const regnode *other = REGNODE_AFTER_PLUS(p, extra);
+ if (nextoper != other) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+#define PERL_REGINLINE_H
+#endif
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h
index 94b71102eb..17a8422586 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h
@@ -1,1499 +1,1601 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- This file is built by regen/regcomp.pl from regcomp.sym.
+ This file is built by regen/regcomp.pl from regcomp.sym, op_reg_common.h
+ and regexp.h.
Any changes made here will be lost!
*/
#if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD)
+
+/* typedefs for regex nodes - one typedef per node type */
+
+typedef struct regnode_2 tregnode_ACCEPT;
+typedef struct regnode_1 tregnode_AHOCORASICK;
+typedef struct regnode_charclass tregnode_AHOCORASICKC;
+typedef struct regnode_charclass tregnode_ANYOF;
+typedef struct regnode_charclass tregnode_ANYOFD;
+typedef struct regnode_1 tregnode_ANYOFH;
+typedef struct regnode_1 tregnode_ANYOFHb;
+typedef struct regnode_bbm tregnode_ANYOFHbbm;
+typedef struct regnode_1 tregnode_ANYOFHr;
+typedef struct regnode_1 tregnode_ANYOFHs;
+typedef struct regnode_charclass tregnode_ANYOFL;
+typedef struct regnode_1 tregnode_ANYOFM;
+typedef struct regnode_charclass_posixl tregnode_ANYOFPOSIXL;
+typedef struct regnode_1 tregnode_ANYOFR;
+typedef struct regnode_1 tregnode_ANYOFRb;
+typedef struct regnode tregnode_BOUND;
+typedef struct regnode tregnode_BOUNDA;
+typedef struct regnode tregnode_BOUNDL;
+typedef struct regnode tregnode_BOUNDU;
+typedef struct regnode_1 tregnode_BRANCH;
+typedef struct regnode_2 tregnode_BRANCHJ;
+typedef struct regnode_1 tregnode_CLOSE;
+typedef struct regnode tregnode_CLUMP;
+typedef struct regnode_1 tregnode_COMMIT;
+typedef struct regnode_3 tregnode_CURLY;
+typedef struct regnode_3 tregnode_CURLYM;
+typedef struct regnode_3 tregnode_CURLYN;
+typedef struct regnode_3 tregnode_CURLYX;
+typedef struct regnode_1 tregnode_CUTGROUP;
+typedef struct regnode_1 tregnode_DEFINEP;
+typedef struct regnode tregnode_END;
+typedef struct regnode tregnode_ENDLIKE;
+typedef struct regnode tregnode_EOS;
+typedef struct regnode_2 tregnode_EVAL;
+typedef struct regnode tregnode_EXACT;
+typedef struct regnode tregnode_EXACTF;
+typedef struct regnode tregnode_EXACTFAA;
+typedef struct regnode tregnode_EXACTFAA_NO_TRIE;
+typedef struct regnode tregnode_EXACTFL;
+typedef struct regnode tregnode_EXACTFLU8;
+typedef struct regnode tregnode_EXACTFU;
+typedef struct regnode tregnode_EXACTFUP;
+typedef struct regnode tregnode_EXACTFU_REQ8;
+typedef struct regnode tregnode_EXACTFU_S_EDGE;
+typedef struct regnode tregnode_EXACTL;
+typedef struct regnode tregnode_EXACT_REQ8;
+typedef struct regnode_2 tregnode_GOSUB;
+typedef struct regnode tregnode_GPOS;
+typedef struct regnode_1 tregnode_GROUPP;
+typedef struct regnode_1 tregnode_GROUPPN;
+typedef struct regnode_1 tregnode_IFMATCH;
+typedef struct regnode_1 tregnode_IFTHEN;
+typedef struct regnode_1 tregnode_INSUBP;
+typedef struct regnode tregnode_KEEPS;
+typedef struct regnode_1 tregnode_LEXACT;
+typedef struct regnode_1 tregnode_LEXACT_REQ8;
+typedef struct regnode tregnode_LNBREAK;
+typedef struct regnode tregnode_LOGICAL;
+typedef struct regnode_1 tregnode_LONGJMP;
+typedef struct regnode tregnode_LOOKBEHIND_END;
+typedef struct regnode_1 tregnode_MARKPOINT;
+typedef struct regnode tregnode_MBOL;
+typedef struct regnode tregnode_MEOL;
+typedef struct regnode tregnode_MINMOD;
+typedef struct regnode_1 tregnode_NANYOFM;
+typedef struct regnode tregnode_NBOUND;
+typedef struct regnode tregnode_NBOUNDA;
+typedef struct regnode tregnode_NBOUNDL;
+typedef struct regnode tregnode_NBOUNDU;
+typedef struct regnode tregnode_NOTHING;
+typedef struct regnode tregnode_NPOSIXA;
+typedef struct regnode tregnode_NPOSIXD;
+typedef struct regnode tregnode_NPOSIXL;
+typedef struct regnode tregnode_NPOSIXU;
+typedef struct regnode_1 tregnode_OPEN;
+typedef struct regnode_1 tregnode_OPFAIL;
+typedef struct regnode tregnode_OPTIMIZED;
+typedef struct regnode tregnode_PLUS;
+typedef struct regnode tregnode_POSIXA;
+typedef struct regnode tregnode_POSIXD;
+typedef struct regnode tregnode_POSIXL;
+typedef struct regnode tregnode_POSIXU;
+typedef struct regnode_1 tregnode_PRUNE;
+typedef struct regnode tregnode_PSEUDO;
+typedef struct regnode_2 tregnode_REF;
+typedef struct regnode_2 tregnode_REFF;
+typedef struct regnode_2 tregnode_REFFA;
+typedef struct regnode_2 tregnode_REFFAN;
+typedef struct regnode_2 tregnode_REFFL;
+typedef struct regnode_2 tregnode_REFFLN;
+typedef struct regnode_2 tregnode_REFFN;
+typedef struct regnode_2 tregnode_REFFU;
+typedef struct regnode_2 tregnode_REFFUN;
+typedef struct regnode_2 tregnode_REFN;
+typedef struct regnode_p tregnode_REGEX_SET;
+typedef struct regnode tregnode_REG_ANY;
+typedef struct regnode_1 tregnode_RENUM;
+typedef struct regnode tregnode_SANY;
+typedef struct regnode tregnode_SBOL;
+typedef struct regnode tregnode_SEOL;
+typedef struct regnode_1 tregnode_SKIP;
+typedef struct regnode tregnode_SRCLOSE;
+typedef struct regnode tregnode_SROPEN;
+typedef struct regnode tregnode_STAR;
+typedef struct regnode tregnode_SUCCEED;
+typedef struct regnode_1 tregnode_SUSPEND;
+typedef struct regnode tregnode_TAIL;
+typedef struct regnode_1 tregnode_TRIE;
+typedef struct regnode_charclass tregnode_TRIEC;
+typedef struct regnode_1 tregnode_UNLESSM;
+typedef struct regnode_1 tregnode_VERB;
+typedef struct regnode tregnode_WHILEM;
+
+/* end typedefs */
+
/* Regops and State definitions */
-#define REGNODE_MAX 109
-#define REGMATCH_STATE_MAX 149
+#define REGNODE_MAX 111
+#define REGMATCH_STATE_MAX 153
-/* -- For regexec.c to switch on target being utf8 (t8) or not (tb, b='byte');
- * same with pattern (p8, pb) -- */
+/* -- For regexec.c to switch on target being utf8 (t8) or not (tb, b='byte'); */
+#define with_t_UTF8ness(op, t_utf8) (((op) << 1) + (cBOOL(t_utf8)))
+/* -- same, but also with pattern (p8, pb) -- */
#define with_tp_UTF8ness(op, t_utf8, p_utf8) \
(((op) << 2) + (cBOOL(t_utf8) << 1) + cBOOL(p_utf8))
/* The #defines below give both the basic regnode and the expanded version for
switching on utf8ness */
-#define END 0 /* 0x00 End of program. */
-#define END_tb_pb 0 /* 0x000 */
-#define END_tb_p8 1 /* 0x001 */
-#define END_t8_pb 2 /* 0x002 */
-#define END_t8_p8 3 /* 0x003 */
-
-#define SUCCEED 1 /* 0x01 Return from a subroutine,
- basically. */
-#define SUCCEED_tb_pb 4 /* 0x004 */
-#define SUCCEED_tb_p8 5 /* 0x005 */
-#define SUCCEED_t8_pb 6 /* 0x006 */
-#define SUCCEED_t8_p8 7 /* 0x007 */
-
-#define SBOL 2 /* 0x02 Match "" at beginning of
- line: /^/, /\A/ */
-#define SBOL_tb_pb 8 /* 0x008 */
-#define SBOL_tb_p8 9 /* 0x009 */
-#define SBOL_t8_pb 10 /* 0x00a */
-#define SBOL_t8_p8 11 /* 0x00b */
-
-#define BOL 2 /* 0x02 Match "" at beginning of
- line: /^/, /\A/ */
-#define BOL_tb_pb 8 /* 0x008 */
-#define BOL_tb_p8 9 /* 0x009 */
-#define BOL_t8_pb 10 /* 0x00a */
-#define BOL_t8_p8 11 /* 0x00b */
-
-#define MBOL 3 /* 0x03 Same, assuming multiline:
- /^/m */
-#define MBOL_tb_pb 12 /* 0x00c */
-#define MBOL_tb_p8 13 /* 0x00d */
-#define MBOL_t8_pb 14 /* 0x00e */
-#define MBOL_t8_p8 15 /* 0x00f */
-
-#define SEOL 4 /* 0x04 Match "" at end of line:
- /$/ */
-#define SEOL_tb_pb 16 /* 0x010 */
-#define SEOL_tb_p8 17 /* 0x011 */
-#define SEOL_t8_pb 18 /* 0x012 */
-#define SEOL_t8_p8 19 /* 0x013 */
-
-#define EOL 4 /* 0x04 Match "" at end of line:
- /$/ */
-#define EOL_tb_pb 16 /* 0x010 */
-#define EOL_tb_p8 17 /* 0x011 */
-#define EOL_t8_pb 18 /* 0x012 */
-#define EOL_t8_p8 19 /* 0x013 */
-
-#define MEOL 5 /* 0x05 Same, assuming multiline:
- /$/m */
-#define MEOL_tb_pb 20 /* 0x014 */
-#define MEOL_tb_p8 21 /* 0x015 */
-#define MEOL_t8_pb 22 /* 0x016 */
-#define MEOL_t8_p8 23 /* 0x017 */
-
-#define EOS 6 /* 0x06 Match "" at end of string:
- /\z/ */
-#define EOS_tb_pb 24 /* 0x018 */
-#define EOS_tb_p8 25 /* 0x019 */
-#define EOS_t8_pb 26 /* 0x01a */
-#define EOS_t8_p8 27 /* 0x01b */
-
-#define GPOS 7 /* 0x07 Matches where last m//g
- left off. */
-#define GPOS_tb_pb 28 /* 0x01c */
-#define GPOS_tb_p8 29 /* 0x01d */
-#define GPOS_t8_pb 30 /* 0x01e */
-#define GPOS_t8_p8 31 /* 0x01f */
-
-#define BOUND 8 /* 0x08 Like BOUNDA for non-utf8,
- otherwise like BOUNDU */
-#define BOUND_tb_pb 32 /* 0x020 */
-#define BOUND_tb_p8 33 /* 0x021 */
-#define BOUND_t8_pb 34 /* 0x022 */
-#define BOUND_t8_p8 35 /* 0x023 */
-
-#define BOUNDL 9 /* 0x09 Like BOUND/BOUNDU, but \w
- and \W are defined by current
- locale */
-#define BOUNDL_tb_pb 36 /* 0x024 */
-#define BOUNDL_tb_p8 37 /* 0x025 */
-#define BOUNDL_t8_pb 38 /* 0x026 */
-#define BOUNDL_t8_p8 39 /* 0x027 */
-
-#define BOUNDU 10 /* 0x0a Match "" at any boundary
- of a given type using /u rules.
- */
-#define BOUNDU_tb_pb 40 /* 0x028 */
-#define BOUNDU_tb_p8 41 /* 0x029 */
-#define BOUNDU_t8_pb 42 /* 0x02a */
-#define BOUNDU_t8_p8 43 /* 0x02b */
-
-#define BOUNDA 11 /* 0x0b Match "" at any boundary
- between \w\W or \W\w, where \w
- is [_a-zA-Z0-9] */
-#define BOUNDA_tb_pb 44 /* 0x02c */
-#define BOUNDA_tb_p8 45 /* 0x02d */
-#define BOUNDA_t8_pb 46 /* 0x02e */
-#define BOUNDA_t8_p8 47 /* 0x02f */
-
-#define NBOUND 12 /* 0x0c Like NBOUNDA for non-utf8,
- otherwise like BOUNDU */
-#define NBOUND_tb_pb 48 /* 0x030 */
-#define NBOUND_tb_p8 49 /* 0x031 */
-#define NBOUND_t8_pb 50 /* 0x032 */
-#define NBOUND_t8_p8 51 /* 0x033 */
-
-#define NBOUNDL 13 /* 0x0d Like NBOUND/NBOUNDU, but
- \w and \W are defined by
- current locale */
-#define NBOUNDL_tb_pb 52 /* 0x034 */
-#define NBOUNDL_tb_p8 53 /* 0x035 */
-#define NBOUNDL_t8_pb 54 /* 0x036 */
-#define NBOUNDL_t8_p8 55 /* 0x037 */
-
-#define NBOUNDU 14 /* 0x0e Match "" at any
- non-boundary of a given type
- using using /u rules. */
-#define NBOUNDU_tb_pb 56 /* 0x038 */
-#define NBOUNDU_tb_p8 57 /* 0x039 */
-#define NBOUNDU_t8_pb 58 /* 0x03a */
-#define NBOUNDU_t8_p8 59 /* 0x03b */
-
-#define NBOUNDA 15 /* 0x0f Match "" betweeen any \w\w
- or \W\W, where \w is
- [_a-zA-Z0-9] */
-#define NBOUNDA_tb_pb 60 /* 0x03c */
-#define NBOUNDA_tb_p8 61 /* 0x03d */
-#define NBOUNDA_t8_pb 62 /* 0x03e */
-#define NBOUNDA_t8_p8 63 /* 0x03f */
-
-#define REG_ANY 16 /* 0x10 Match any one character
- (except newline). */
-#define REG_ANY_tb_pb 64 /* 0x040 */
-#define REG_ANY_tb_p8 65 /* 0x041 */
-#define REG_ANY_t8_pb 66 /* 0x042 */
-#define REG_ANY_t8_p8 67 /* 0x043 */
-
-#define SANY 17 /* 0x11 Match any one character.
- */
-#define SANY_tb_pb 68 /* 0x044 */
-#define SANY_tb_p8 69 /* 0x045 */
-#define SANY_t8_pb 70 /* 0x046 */
-#define SANY_t8_p8 71 /* 0x047 */
-
-#define ANYOF 18 /* 0x12 Match character in (or not
- in) this class, single char
- match only */
-#define ANYOF_tb_pb 72 /* 0x048 */
-#define ANYOF_tb_p8 73 /* 0x049 */
-#define ANYOF_t8_pb 74 /* 0x04a */
-#define ANYOF_t8_p8 75 /* 0x04b */
-
-#define ANYOFD 19 /* 0x13 Like ANYOF, but /d is in
- effect */
-#define ANYOFD_tb_pb 76 /* 0x04c */
-#define ANYOFD_tb_p8 77 /* 0x04d */
-#define ANYOFD_t8_pb 78 /* 0x04e */
-#define ANYOFD_t8_p8 79 /* 0x04f */
-
-#define ANYOFL 20 /* 0x14 Like ANYOF, but /l is in
- effect */
-#define ANYOFL_tb_pb 80 /* 0x050 */
-#define ANYOFL_tb_p8 81 /* 0x051 */
-#define ANYOFL_t8_pb 82 /* 0x052 */
-#define ANYOFL_t8_p8 83 /* 0x053 */
-
-#define ANYOFPOSIXL 21 /* 0x15 Like ANYOFL, but matches
- [[:posix:]] classes */
-#define ANYOFPOSIXL_tb_pb 84 /* 0x054 */
-#define ANYOFPOSIXL_tb_p8 85 /* 0x055 */
-#define ANYOFPOSIXL_t8_pb 86 /* 0x056 */
-#define ANYOFPOSIXL_t8_p8 87 /* 0x057 */
-
-#define ANYOFH 22 /* 0x16 Like ANYOF, but only has
- "High" matches, none in the
- bitmap; the flags field
- contains the lowest matchable
- UTF-8 start byte */
-#define ANYOFH_tb_pb 88 /* 0x058 */
-#define ANYOFH_tb_p8 89 /* 0x059 */
-#define ANYOFH_t8_pb 90 /* 0x05a */
-#define ANYOFH_t8_p8 91 /* 0x05b */
-
-#define ANYOFHb 23 /* 0x17 Like ANYOFH, but all
- matches share the same UTF-8
- start byte, given in the flags
- field */
-#define ANYOFHb_tb_pb 92 /* 0x05c */
-#define ANYOFHb_tb_p8 93 /* 0x05d */
-#define ANYOFHb_t8_pb 94 /* 0x05e */
-#define ANYOFHb_t8_p8 95 /* 0x05f */
-
-#define ANYOFHr 24 /* 0x18 Like ANYOFH, but the flags
- field contains packed bounds
- for all matchable UTF-8 start
- bytes. */
-#define ANYOFHr_tb_pb 96 /* 0x060 */
-#define ANYOFHr_tb_p8 97 /* 0x061 */
-#define ANYOFHr_t8_pb 98 /* 0x062 */
-#define ANYOFHr_t8_p8 99 /* 0x063 */
-
-#define ANYOFHs 25 /* 0x19 Like ANYOFHb, but has a
- string field that gives the
- leading matchable UTF-8 bytes;
- flags field is len */
-#define ANYOFHs_tb_pb 100 /* 0x064 */
-#define ANYOFHs_tb_p8 101 /* 0x065 */
-#define ANYOFHs_t8_pb 102 /* 0x066 */
-#define ANYOFHs_t8_p8 103 /* 0x067 */
-
-#define ANYOFR 26 /* 0x1a Matches any character in
- the range given by its packed
- args: upper 12 bits is the max
- delta from the base lower 20;
- the flags field contains the
- lowest matchable UTF-8 start
- byte */
-#define ANYOFR_tb_pb 104 /* 0x068 */
-#define ANYOFR_tb_p8 105 /* 0x069 */
-#define ANYOFR_t8_pb 106 /* 0x06a */
-#define ANYOFR_t8_p8 107 /* 0x06b */
-
-#define ANYOFRb 27 /* 0x1b Like ANYOFR, but all
- matches share the same UTF-8
- start byte, given in the flags
- field */
-#define ANYOFRb_tb_pb 108 /* 0x06c */
-#define ANYOFRb_tb_p8 109 /* 0x06d */
-#define ANYOFRb_t8_pb 110 /* 0x06e */
-#define ANYOFRb_t8_p8 111 /* 0x06f */
-
-#define ANYOFM 28 /* 0x1c Like ANYOF, but matches an
- invariant byte as determined by
- the mask and arg */
-#define ANYOFM_tb_pb 112 /* 0x070 */
-#define ANYOFM_tb_p8 113 /* 0x071 */
-#define ANYOFM_t8_pb 114 /* 0x072 */
-#define ANYOFM_t8_p8 115 /* 0x073 */
-
-#define NANYOFM 29 /* 0x1d complement of ANYOFM */
-#define NANYOFM_tb_pb 116 /* 0x074 */
-#define NANYOFM_tb_p8 117 /* 0x075 */
-#define NANYOFM_t8_pb 118 /* 0x076 */
-#define NANYOFM_t8_p8 119 /* 0x077 */
-
-#define POSIXD 30 /* 0x1e Some [[:class:]] under /d;
- the FLAGS field gives which one
- */
-#define POSIXD_tb_pb 120 /* 0x078 */
-#define POSIXD_tb_p8 121 /* 0x079 */
-#define POSIXD_t8_pb 122 /* 0x07a */
-#define POSIXD_t8_p8 123 /* 0x07b */
-
-#define POSIXL 31 /* 0x1f Some [[:class:]] under /l;
- the FLAGS field gives which one
- */
-#define POSIXL_tb_pb 124 /* 0x07c */
-#define POSIXL_tb_p8 125 /* 0x07d */
-#define POSIXL_t8_pb 126 /* 0x07e */
-#define POSIXL_t8_p8 127 /* 0x07f */
-
-#define POSIXU 32 /* 0x20 Some [[:class:]] under /u;
- the FLAGS field gives which one
- */
-#define POSIXU_tb_pb 128 /* 0x080 */
-#define POSIXU_tb_p8 129 /* 0x081 */
-#define POSIXU_t8_pb 130 /* 0x082 */
-#define POSIXU_t8_p8 131 /* 0x083 */
-
-#define POSIXA 33 /* 0x21 Some [[:class:]] under /a;
- the FLAGS field gives which one
- */
-#define POSIXA_tb_pb 132 /* 0x084 */
-#define POSIXA_tb_p8 133 /* 0x085 */
-#define POSIXA_t8_pb 134 /* 0x086 */
-#define POSIXA_t8_p8 135 /* 0x087 */
-
-#define NPOSIXD 34 /* 0x22 complement of POSIXD,
- [[:^class:]] */
-#define NPOSIXD_tb_pb 136 /* 0x088 */
-#define NPOSIXD_tb_p8 137 /* 0x089 */
-#define NPOSIXD_t8_pb 138 /* 0x08a */
-#define NPOSIXD_t8_p8 139 /* 0x08b */
-
-#define NPOSIXL 35 /* 0x23 complement of POSIXL,
- [[:^class:]] */
-#define NPOSIXL_tb_pb 140 /* 0x08c */
-#define NPOSIXL_tb_p8 141 /* 0x08d */
-#define NPOSIXL_t8_pb 142 /* 0x08e */
-#define NPOSIXL_t8_p8 143 /* 0x08f */
-
-#define NPOSIXU 36 /* 0x24 complement of POSIXU,
- [[:^class:]] */
-#define NPOSIXU_tb_pb 144 /* 0x090 */
-#define NPOSIXU_tb_p8 145 /* 0x091 */
-#define NPOSIXU_t8_pb 146 /* 0x092 */
-#define NPOSIXU_t8_p8 147 /* 0x093 */
-
-#define NPOSIXA 37 /* 0x25 complement of POSIXA,
- [[:^class:]] */
-#define NPOSIXA_tb_pb 148 /* 0x094 */
-#define NPOSIXA_tb_p8 149 /* 0x095 */
-#define NPOSIXA_t8_pb 150 /* 0x096 */
-#define NPOSIXA_t8_p8 151 /* 0x097 */
-
-#define CLUMP 38 /* 0x26 Match any extended
- grapheme cluster sequence */
-#define CLUMP_tb_pb 152 /* 0x098 */
-#define CLUMP_tb_p8 153 /* 0x099 */
-#define CLUMP_t8_pb 154 /* 0x09a */
-#define CLUMP_t8_p8 155 /* 0x09b */
-
-#define BRANCH 39 /* 0x27 Match this alternative, or
- the next... */
-#define BRANCH_tb_pb 156 /* 0x09c */
-#define BRANCH_tb_p8 157 /* 0x09d */
-#define BRANCH_t8_pb 158 /* 0x09e */
-#define BRANCH_t8_p8 159 /* 0x09f */
-
-#define EXACT 40 /* 0x28 Match this string (flags
- field is the length). */
-#define EXACT_tb_pb 160 /* 0x0a0 */
-#define EXACT_tb_p8 161 /* 0x0a1 */
-#define EXACT_t8_pb 162 /* 0x0a2 */
-#define EXACT_t8_p8 163 /* 0x0a3 */
-
-#define LEXACT 41 /* 0x29 Match this long string
- (preceded by length; flags
- unused). */
-#define LEXACT_tb_pb 164 /* 0x0a4 */
-#define LEXACT_tb_p8 165 /* 0x0a5 */
-#define LEXACT_t8_pb 166 /* 0x0a6 */
-#define LEXACT_t8_p8 167 /* 0x0a7 */
-
-#define EXACTL 42 /* 0x2a Like EXACT, but /l is in
- effect (used so locale-related
- warnings can be checked for) */
-#define EXACTL_tb_pb 168 /* 0x0a8 */
-#define EXACTL_tb_p8 169 /* 0x0a9 */
-#define EXACTL_t8_pb 170 /* 0x0aa */
-#define EXACTL_t8_p8 171 /* 0x0ab */
-
-#define EXACTF 43 /* 0x2b Like EXACT, but match
- using /id rules; (string not
- UTF-8, ASCII folded; non-ASCII
- not) */
-#define EXACTF_tb_pb 172 /* 0x0ac */
-#define EXACTF_tb_p8 173 /* 0x0ad */
-#define EXACTF_t8_pb 174 /* 0x0ae */
-#define EXACTF_t8_p8 175 /* 0x0af */
-
-#define EXACTFL 44 /* 0x2c Like EXACT, but match
- using /il rules; (string not
- likely to be folded) */
-#define EXACTFL_tb_pb 176 /* 0x0b0 */
-#define EXACTFL_tb_p8 177 /* 0x0b1 */
-#define EXACTFL_t8_pb 178 /* 0x0b2 */
-#define EXACTFL_t8_p8 179 /* 0x0b3 */
-
-#define EXACTFU 45 /* 0x2d Like EXACT, but match
- using /iu rules; (string
- folded) */
-#define EXACTFU_tb_pb 180 /* 0x0b4 */
-#define EXACTFU_tb_p8 181 /* 0x0b5 */
-#define EXACTFU_t8_pb 182 /* 0x0b6 */
-#define EXACTFU_t8_p8 183 /* 0x0b7 */
-
-#define EXACTFAA 46 /* 0x2e Like EXACT, but match
- using /iaa rules; (string
- folded except MICRO in non-UTF8
- patterns; doesn't contain SHARP
- S unless UTF-8; folded length
- <= unfolded) */
-#define EXACTFAA_tb_pb 184 /* 0x0b8 */
-#define EXACTFAA_tb_p8 185 /* 0x0b9 */
-#define EXACTFAA_t8_pb 186 /* 0x0ba */
-#define EXACTFAA_t8_p8 187 /* 0x0bb */
-
-#define EXACTFAA_NO_TRIE 47 /* 0x2f Like EXACTFAA, (string not
- UTF-8, folded except: MICRO,
- SHARP S; folded length <=
- unfolded, not currently
- trie-able) */
-#define EXACTFAA_NO_TRIE_tb_pb 188 /* 0x0bc */
-#define EXACTFAA_NO_TRIE_tb_p8 189 /* 0x0bd */
-#define EXACTFAA_NO_TRIE_t8_pb 190 /* 0x0be */
-#define EXACTFAA_NO_TRIE_t8_p8 191 /* 0x0bf */
-
-#define EXACTFUP 48 /* 0x30 Like EXACT, but match
- using /iu rules; (string not
- UTF-8, folded except MICRO:
- hence Problematic) */
-#define EXACTFUP_tb_pb 192 /* 0x0c0 */
-#define EXACTFUP_tb_p8 193 /* 0x0c1 */
-#define EXACTFUP_t8_pb 194 /* 0x0c2 */
-#define EXACTFUP_t8_p8 195 /* 0x0c3 */
-
-#define EXACTFLU8 49 /* 0x31 Like EXACTFU, but use /il,
- UTF-8, (string is folded, and
- everything in it is above 255
- */
-#define EXACTFLU8_tb_pb 196 /* 0x0c4 */
-#define EXACTFLU8_tb_p8 197 /* 0x0c5 */
-#define EXACTFLU8_t8_pb 198 /* 0x0c6 */
-#define EXACTFLU8_t8_p8 199 /* 0x0c7 */
-
-#define EXACT_REQ8 50 /* 0x32 Like EXACT, but only UTF-8
- encoded targets can match */
-#define EXACT_REQ8_tb_pb 200 /* 0x0c8 */
-#define EXACT_REQ8_tb_p8 201 /* 0x0c9 */
-#define EXACT_REQ8_t8_pb 202 /* 0x0ca */
-#define EXACT_REQ8_t8_p8 203 /* 0x0cb */
-
-#define LEXACT_REQ8 51 /* 0x33 Like LEXACT, but only
- UTF-8 encoded targets can match
- */
-#define LEXACT_REQ8_tb_pb 204 /* 0x0cc */
-#define LEXACT_REQ8_tb_p8 205 /* 0x0cd */
-#define LEXACT_REQ8_t8_pb 206 /* 0x0ce */
-#define LEXACT_REQ8_t8_p8 207 /* 0x0cf */
-
-#define EXACTFU_REQ8 52 /* 0x34 Like EXACTFU, but only
- UTF-8 encoded targets can match
- */
-#define EXACTFU_REQ8_tb_pb 208 /* 0x0d0 */
-#define EXACTFU_REQ8_tb_p8 209 /* 0x0d1 */
-#define EXACTFU_REQ8_t8_pb 210 /* 0x0d2 */
-#define EXACTFU_REQ8_t8_p8 211 /* 0x0d3 */
-
-#define EXACTFU_S_EDGE 53 /* 0x35 /di rules, but nothing in
- it precludes /ui, except begins
- and/or ends with [Ss]; (string
- not UTF-8; compile-time only)
- */
-#define EXACTFU_S_EDGE_tb_pb 212 /* 0x0d4 */
-#define EXACTFU_S_EDGE_tb_p8 213 /* 0x0d5 */
-#define EXACTFU_S_EDGE_t8_pb 214 /* 0x0d6 */
-#define EXACTFU_S_EDGE_t8_p8 215 /* 0x0d7 */
-
-#define LNBREAK 54 /* 0x36 generic newline pattern */
-#define LNBREAK_tb_pb 216 /* 0x0d8 */
-#define LNBREAK_tb_p8 217 /* 0x0d9 */
-#define LNBREAK_t8_pb 218 /* 0x0da */
-#define LNBREAK_t8_p8 219 /* 0x0db */
-
-#define TRIE 55 /* 0x37 Match many EXACT(F[ALU]?)?
- at once. flags==type */
-#define TRIE_tb_pb 220 /* 0x0dc */
-#define TRIE_tb_p8 221 /* 0x0dd */
-#define TRIE_t8_pb 222 /* 0x0de */
-#define TRIE_t8_p8 223 /* 0x0df */
-
-#define TRIEC 56 /* 0x38 Same as TRIE, but with
- embedded charclass data */
-#define TRIEC_tb_pb 224 /* 0x0e0 */
-#define TRIEC_tb_p8 225 /* 0x0e1 */
-#define TRIEC_t8_pb 226 /* 0x0e2 */
-#define TRIEC_t8_p8 227 /* 0x0e3 */
-
-#define AHOCORASICK 57 /* 0x39 Aho Corasick stclass.
- flags==type */
-#define AHOCORASICK_tb_pb 228 /* 0x0e4 */
-#define AHOCORASICK_tb_p8 229 /* 0x0e5 */
-#define AHOCORASICK_t8_pb 230 /* 0x0e6 */
-#define AHOCORASICK_t8_p8 231 /* 0x0e7 */
-
-#define AHOCORASICKC 58 /* 0x3a Same as AHOCORASICK, but
- with embedded charclass data */
-#define AHOCORASICKC_tb_pb 232 /* 0x0e8 */
-#define AHOCORASICKC_tb_p8 233 /* 0x0e9 */
-#define AHOCORASICKC_t8_pb 234 /* 0x0ea */
-#define AHOCORASICKC_t8_p8 235 /* 0x0eb */
-
-#define NOTHING 59 /* 0x3b Match empty string. */
-#define NOTHING_tb_pb 236 /* 0x0ec */
-#define NOTHING_tb_p8 237 /* 0x0ed */
-#define NOTHING_t8_pb 238 /* 0x0ee */
-#define NOTHING_t8_p8 239 /* 0x0ef */
-
-#define TAIL 60 /* 0x3c Match empty string. Can
- jump here from outside. */
-#define TAIL_tb_pb 240 /* 0x0f0 */
-#define TAIL_tb_p8 241 /* 0x0f1 */
-#define TAIL_t8_pb 242 /* 0x0f2 */
-#define TAIL_t8_p8 243 /* 0x0f3 */
-
-#define STAR 61 /* 0x3d Match this (simple) thing
- 0 or more times. */
-#define STAR_tb_pb 244 /* 0x0f4 */
-#define STAR_tb_p8 245 /* 0x0f5 */
-#define STAR_t8_pb 246 /* 0x0f6 */
-#define STAR_t8_p8 247 /* 0x0f7 */
-
-#define PLUS 62 /* 0x3e Match this (simple) thing
- 1 or more times. */
-#define PLUS_tb_pb 248 /* 0x0f8 */
-#define PLUS_tb_p8 249 /* 0x0f9 */
-#define PLUS_t8_pb 250 /* 0x0fa */
-#define PLUS_t8_p8 251 /* 0x0fb */
-
-#define CURLY 63 /* 0x3f Match this simple thing
- {n,m} times. */
-#define CURLY_tb_pb 252 /* 0x0fc */
-#define CURLY_tb_p8 253 /* 0x0fd */
-#define CURLY_t8_pb 254 /* 0x0fe */
-#define CURLY_t8_p8 255 /* 0x0ff */
-
-#define CURLYN 64 /* 0x40 Capture next-after-this
- simple thing */
-#define CURLYN_tb_pb 256 /* 0x100 */
-#define CURLYN_tb_p8 257 /* 0x101 */
-#define CURLYN_t8_pb 258 /* 0x102 */
-#define CURLYN_t8_p8 259 /* 0x103 */
-
-#define CURLYM 65 /* 0x41 Capture this
- medium-complex thing {n,m}
- times. */
-#define CURLYM_tb_pb 260 /* 0x104 */
-#define CURLYM_tb_p8 261 /* 0x105 */
-#define CURLYM_t8_pb 262 /* 0x106 */
-#define CURLYM_t8_p8 263 /* 0x107 */
-
-#define CURLYX 66 /* 0x42 Match this complex thing
- {n,m} times. */
-#define CURLYX_tb_pb 264 /* 0x108 */
-#define CURLYX_tb_p8 265 /* 0x109 */
-#define CURLYX_t8_pb 266 /* 0x10a */
-#define CURLYX_t8_p8 267 /* 0x10b */
-
-#define WHILEM 67 /* 0x43 Do curly processing and
- see if rest matches. */
-#define WHILEM_tb_pb 268 /* 0x10c */
-#define WHILEM_tb_p8 269 /* 0x10d */
-#define WHILEM_t8_pb 270 /* 0x10e */
-#define WHILEM_t8_p8 271 /* 0x10f */
-
-#define OPEN 68 /* 0x44 Mark this point in input
- as start of #n. */
-#define OPEN_tb_pb 272 /* 0x110 */
-#define OPEN_tb_p8 273 /* 0x111 */
-#define OPEN_t8_pb 274 /* 0x112 */
-#define OPEN_t8_p8 275 /* 0x113 */
-
-#define CLOSE 69 /* 0x45 Close corresponding OPEN
- of #n. */
-#define CLOSE_tb_pb 276 /* 0x114 */
-#define CLOSE_tb_p8 277 /* 0x115 */
-#define CLOSE_t8_pb 278 /* 0x116 */
-#define CLOSE_t8_p8 279 /* 0x117 */
-
-#define SROPEN 70 /* 0x46 Same as OPEN, but for
- script run */
-#define SROPEN_tb_pb 280 /* 0x118 */
-#define SROPEN_tb_p8 281 /* 0x119 */
-#define SROPEN_t8_pb 282 /* 0x11a */
-#define SROPEN_t8_p8 283 /* 0x11b */
-
-#define SRCLOSE 71 /* 0x47 Close preceding SROPEN */
-#define SRCLOSE_tb_pb 284 /* 0x11c */
-#define SRCLOSE_tb_p8 285 /* 0x11d */
-#define SRCLOSE_t8_pb 286 /* 0x11e */
-#define SRCLOSE_t8_p8 287 /* 0x11f */
-
-#define REF 72 /* 0x48 Match some already matched
- string */
-#define REF_tb_pb 288 /* 0x120 */
-#define REF_tb_p8 289 /* 0x121 */
-#define REF_t8_pb 290 /* 0x122 */
-#define REF_t8_p8 291 /* 0x123 */
-
-#define REFF 73 /* 0x49 Match already matched
- string, using /di rules. */
-#define REFF_tb_pb 292 /* 0x124 */
-#define REFF_tb_p8 293 /* 0x125 */
-#define REFF_t8_pb 294 /* 0x126 */
-#define REFF_t8_p8 295 /* 0x127 */
-
-#define REFFL 74 /* 0x4a Match already matched
- string, using /li rules. */
-#define REFFL_tb_pb 296 /* 0x128 */
-#define REFFL_tb_p8 297 /* 0x129 */
-#define REFFL_t8_pb 298 /* 0x12a */
-#define REFFL_t8_p8 299 /* 0x12b */
-
-#define REFFU 75 /* 0x4b Match already matched
- string, usng /ui. */
-#define REFFU_tb_pb 300 /* 0x12c */
-#define REFFU_tb_p8 301 /* 0x12d */
-#define REFFU_t8_pb 302 /* 0x12e */
-#define REFFU_t8_p8 303 /* 0x12f */
-
-#define REFFA 76 /* 0x4c Match already matched
- string, using /aai rules. */
-#define REFFA_tb_pb 304 /* 0x130 */
-#define REFFA_tb_p8 305 /* 0x131 */
-#define REFFA_t8_pb 306 /* 0x132 */
-#define REFFA_t8_p8 307 /* 0x133 */
-
-#define REFN 77 /* 0x4d Match some already matched
- string */
-#define REFN_tb_pb 308 /* 0x134 */
-#define REFN_tb_p8 309 /* 0x135 */
-#define REFN_t8_pb 310 /* 0x136 */
-#define REFN_t8_p8 311 /* 0x137 */
-
-#define REFFN 78 /* 0x4e Match already matched
- string, using /di rules. */
-#define REFFN_tb_pb 312 /* 0x138 */
-#define REFFN_tb_p8 313 /* 0x139 */
-#define REFFN_t8_pb 314 /* 0x13a */
-#define REFFN_t8_p8 315 /* 0x13b */
-
-#define REFFLN 79 /* 0x4f Match already matched
- string, using /li rules. */
-#define REFFLN_tb_pb 316 /* 0x13c */
-#define REFFLN_tb_p8 317 /* 0x13d */
-#define REFFLN_t8_pb 318 /* 0x13e */
-#define REFFLN_t8_p8 319 /* 0x13f */
-
-#define REFFUN 80 /* 0x50 Match already matched
- string, using /ui rules. */
-#define REFFUN_tb_pb 320 /* 0x140 */
-#define REFFUN_tb_p8 321 /* 0x141 */
-#define REFFUN_t8_pb 322 /* 0x142 */
-#define REFFUN_t8_p8 323 /* 0x143 */
-
-#define REFFAN 81 /* 0x51 Match already matched
- string, using /aai rules. */
-#define REFFAN_tb_pb 324 /* 0x144 */
-#define REFFAN_tb_p8 325 /* 0x145 */
-#define REFFAN_t8_pb 326 /* 0x146 */
-#define REFFAN_t8_p8 327 /* 0x147 */
-
-#define LONGJMP 82 /* 0x52 Jump far away. */
-#define LONGJMP_tb_pb 328 /* 0x148 */
-#define LONGJMP_tb_p8 329 /* 0x149 */
-#define LONGJMP_t8_pb 330 /* 0x14a */
-#define LONGJMP_t8_p8 331 /* 0x14b */
-
-#define BRANCHJ 83 /* 0x53 BRANCH with long offset.
- */
-#define BRANCHJ_tb_pb 332 /* 0x14c */
-#define BRANCHJ_tb_p8 333 /* 0x14d */
-#define BRANCHJ_t8_pb 334 /* 0x14e */
-#define BRANCHJ_t8_p8 335 /* 0x14f */
-
-#define IFMATCH 84 /* 0x54 Succeeds if the following
- matches; non-zero flags "f",
- next_off "o" means lookbehind
- assertion starting "f..(f-o)"
- characters before current */
-#define IFMATCH_tb_pb 336 /* 0x150 */
-#define IFMATCH_tb_p8 337 /* 0x151 */
-#define IFMATCH_t8_pb 338 /* 0x152 */
-#define IFMATCH_t8_p8 339 /* 0x153 */
-
-#define UNLESSM 85 /* 0x55 Fails if the following
- matches; non-zero flags "f",
- next_off "o" means lookbehind
- assertion starting "f..(f-o)"
- characters before current */
-#define UNLESSM_tb_pb 340 /* 0x154 */
-#define UNLESSM_tb_p8 341 /* 0x155 */
-#define UNLESSM_t8_pb 342 /* 0x156 */
-#define UNLESSM_t8_p8 343 /* 0x157 */
-
-#define SUSPEND 86 /* 0x56 "Independent" sub-RE. */
-#define SUSPEND_tb_pb 344 /* 0x158 */
-#define SUSPEND_tb_p8 345 /* 0x159 */
-#define SUSPEND_t8_pb 346 /* 0x15a */
-#define SUSPEND_t8_p8 347 /* 0x15b */
-
-#define IFTHEN 87 /* 0x57 Switch, should be preceded
- by switcher. */
-#define IFTHEN_tb_pb 348 /* 0x15c */
-#define IFTHEN_tb_p8 349 /* 0x15d */
-#define IFTHEN_t8_pb 350 /* 0x15e */
-#define IFTHEN_t8_p8 351 /* 0x15f */
-
-#define GROUPP 88 /* 0x58 Whether the group matched.
- */
-#define GROUPP_tb_pb 352 /* 0x160 */
-#define GROUPP_tb_p8 353 /* 0x161 */
-#define GROUPP_t8_pb 354 /* 0x162 */
-#define GROUPP_t8_p8 355 /* 0x163 */
-
-#define EVAL 89 /* 0x59 Execute some Perl code. */
-#define EVAL_tb_pb 356 /* 0x164 */
-#define EVAL_tb_p8 357 /* 0x165 */
-#define EVAL_t8_pb 358 /* 0x166 */
-#define EVAL_t8_p8 359 /* 0x167 */
-
-#define MINMOD 90 /* 0x5a Next operator is not
- greedy. */
-#define MINMOD_tb_pb 360 /* 0x168 */
-#define MINMOD_tb_p8 361 /* 0x169 */
-#define MINMOD_t8_pb 362 /* 0x16a */
-#define MINMOD_t8_p8 363 /* 0x16b */
-
-#define LOGICAL 91 /* 0x5b Next opcode should set the
- flag only. */
-#define LOGICAL_tb_pb 364 /* 0x16c */
-#define LOGICAL_tb_p8 365 /* 0x16d */
-#define LOGICAL_t8_pb 366 /* 0x16e */
-#define LOGICAL_t8_p8 367 /* 0x16f */
-
-#define RENUM 92 /* 0x5c Group with independently
- numbered parens. */
-#define RENUM_tb_pb 368 /* 0x170 */
-#define RENUM_tb_p8 369 /* 0x171 */
-#define RENUM_t8_pb 370 /* 0x172 */
-#define RENUM_t8_p8 371 /* 0x173 */
-
-#define GOSUB 93 /* 0x5d recurse to paren arg1 at
- (signed) ofs arg2 */
-#define GOSUB_tb_pb 372 /* 0x174 */
-#define GOSUB_tb_p8 373 /* 0x175 */
-#define GOSUB_t8_pb 374 /* 0x176 */
-#define GOSUB_t8_p8 375 /* 0x177 */
-
-#define GROUPPN 94 /* 0x5e Whether the group matched.
- */
-#define GROUPPN_tb_pb 376 /* 0x178 */
-#define GROUPPN_tb_p8 377 /* 0x179 */
-#define GROUPPN_t8_pb 378 /* 0x17a */
-#define GROUPPN_t8_p8 379 /* 0x17b */
-
-#define INSUBP 95 /* 0x5f Whether we are in a
- specific recurse. */
-#define INSUBP_tb_pb 380 /* 0x17c */
-#define INSUBP_tb_p8 381 /* 0x17d */
-#define INSUBP_t8_pb 382 /* 0x17e */
-#define INSUBP_t8_p8 383 /* 0x17f */
-
-#define DEFINEP 96 /* 0x60 Never execute directly. */
-#define DEFINEP_tb_pb 384 /* 0x180 */
-#define DEFINEP_tb_p8 385 /* 0x181 */
-#define DEFINEP_t8_pb 386 /* 0x182 */
-#define DEFINEP_t8_p8 387 /* 0x183 */
-
-#define ENDLIKE 97 /* 0x61 Used only for the type
- field of verbs */
-#define ENDLIKE_tb_pb 388 /* 0x184 */
-#define ENDLIKE_tb_p8 389 /* 0x185 */
-#define ENDLIKE_t8_pb 390 /* 0x186 */
-#define ENDLIKE_t8_p8 391 /* 0x187 */
-
-#define OPFAIL 98 /* 0x62 Same as (?!), but with
- verb arg */
-#define OPFAIL_tb_pb 392 /* 0x188 */
-#define OPFAIL_tb_p8 393 /* 0x189 */
-#define OPFAIL_t8_pb 394 /* 0x18a */
-#define OPFAIL_t8_p8 395 /* 0x18b */
-
-#define ACCEPT 99 /* 0x63 Accepts the current
- matched string, with verbar */
-#define ACCEPT_tb_pb 396 /* 0x18c */
-#define ACCEPT_tb_p8 397 /* 0x18d */
-#define ACCEPT_t8_pb 398 /* 0x18e */
-#define ACCEPT_t8_p8 399 /* 0x18f */
-
-#define VERB 100 /* 0x64 Used only for the type
- field of verbs */
-#define VERB_tb_pb 400 /* 0x190 */
-#define VERB_tb_p8 401 /* 0x191 */
-#define VERB_t8_pb 402 /* 0x192 */
-#define VERB_t8_p8 403 /* 0x193 */
-
-#define PRUNE 101 /* 0x65 Pattern fails at this
- startpoint if no-backtracking
- through this */
-#define PRUNE_tb_pb 404 /* 0x194 */
-#define PRUNE_tb_p8 405 /* 0x195 */
-#define PRUNE_t8_pb 406 /* 0x196 */
-#define PRUNE_t8_p8 407 /* 0x197 */
-
-#define MARKPOINT 102 /* 0x66 Push the current location
- for rollback by cut. */
-#define MARKPOINT_tb_pb 408 /* 0x198 */
-#define MARKPOINT_tb_p8 409 /* 0x199 */
-#define MARKPOINT_t8_pb 410 /* 0x19a */
-#define MARKPOINT_t8_p8 411 /* 0x19b */
-
-#define SKIP 103 /* 0x67 On failure skip forward
- (to the mark) before retrying
- */
-#define SKIP_tb_pb 412 /* 0x19c */
-#define SKIP_tb_p8 413 /* 0x19d */
-#define SKIP_t8_pb 414 /* 0x19e */
-#define SKIP_t8_p8 415 /* 0x19f */
-
-#define COMMIT 104 /* 0x68 Pattern fails outright if
- backtracking through this */
-#define COMMIT_tb_pb 416 /* 0x1a0 */
-#define COMMIT_tb_p8 417 /* 0x1a1 */
-#define COMMIT_t8_pb 418 /* 0x1a2 */
-#define COMMIT_t8_p8 419 /* 0x1a3 */
-
-#define CUTGROUP 105 /* 0x69 On failure go to the next
- alternation in the group */
-#define CUTGROUP_tb_pb 420 /* 0x1a4 */
-#define CUTGROUP_tb_p8 421 /* 0x1a5 */
-#define CUTGROUP_t8_pb 422 /* 0x1a6 */
-#define CUTGROUP_t8_p8 423 /* 0x1a7 */
-
-#define KEEPS 106 /* 0x6a $& begins here. */
-#define KEEPS_tb_pb 424 /* 0x1a8 */
-#define KEEPS_tb_p8 425 /* 0x1a9 */
-#define KEEPS_t8_pb 426 /* 0x1aa */
-#define KEEPS_t8_p8 427 /* 0x1ab */
-
-#define OPTIMIZED 107 /* 0x6b Placeholder for dump. */
-#define OPTIMIZED_tb_pb 428 /* 0x1ac */
-#define OPTIMIZED_tb_p8 429 /* 0x1ad */
-#define OPTIMIZED_t8_pb 430 /* 0x1ae */
-#define OPTIMIZED_t8_p8 431 /* 0x1af */
-
-#define PSEUDO 108 /* 0x6c Pseudo opcode for internal
- use. */
-#define PSEUDO_tb_pb 432 /* 0x1b0 */
-#define PSEUDO_tb_p8 433 /* 0x1b1 */
-#define PSEUDO_t8_pb 434 /* 0x1b2 */
-#define PSEUDO_t8_p8 435 /* 0x1b3 */
-
-#define REGEX_SET 109 /* 0x6d Regex set, temporary node
- used in pre-optimization
- compilation */
-#define REGEX_SET_tb_pb 436 /* 0x1b4 */
-#define REGEX_SET_tb_p8 437 /* 0x1b5 */
-#define REGEX_SET_t8_pb 438 /* 0x1b6 */
-#define REGEX_SET_t8_p8 439 /* 0x1b7 */
-
- /* ------------ States ------------- */
-#define TRIE_next 110 /* 0x6e state for TRIE */
-#define TRIE_next_tb_pb 440 /* 0x1b8 */
-#define TRIE_next_tb_p8 441 /* 0x1b9 */
-#define TRIE_next_t8_pb 442 /* 0x1ba */
-#define TRIE_next_t8_p8 443 /* 0x1bb */
-
-#define TRIE_next_fail 111 /* 0x6f state for TRIE */
-#define TRIE_next_fail_tb_pb 444 /* 0x1bc */
-#define TRIE_next_fail_tb_p8 445 /* 0x1bd */
-#define TRIE_next_fail_t8_pb 446 /* 0x1be */
-#define TRIE_next_fail_t8_p8 447 /* 0x1bf */
-
-#define EVAL_B 112 /* 0x70 state for EVAL */
-#define EVAL_B_tb_pb 448 /* 0x1c0 */
-#define EVAL_B_tb_p8 449 /* 0x1c1 */
-#define EVAL_B_t8_pb 450 /* 0x1c2 */
-#define EVAL_B_t8_p8 451 /* 0x1c3 */
-
-#define EVAL_B_fail 113 /* 0x71 state for EVAL */
-#define EVAL_B_fail_tb_pb 452 /* 0x1c4 */
-#define EVAL_B_fail_tb_p8 453 /* 0x1c5 */
-#define EVAL_B_fail_t8_pb 454 /* 0x1c6 */
-#define EVAL_B_fail_t8_p8 455 /* 0x1c7 */
-
-#define EVAL_postponed_AB 114 /* 0x72 state for EVAL */
-#define EVAL_postponed_AB_tb_pb 456 /* 0x1c8 */
-#define EVAL_postponed_AB_tb_p8 457 /* 0x1c9 */
-#define EVAL_postponed_AB_t8_pb 458 /* 0x1ca */
-#define EVAL_postponed_AB_t8_p8 459 /* 0x1cb */
-
-#define EVAL_postponed_AB_fail 115 /* 0x73 state for EVAL */
-#define EVAL_postponed_AB_fail_tb_pb 460 /* 0x1cc */
-#define EVAL_postponed_AB_fail_tb_p8 461 /* 0x1cd */
-#define EVAL_postponed_AB_fail_t8_pb 462 /* 0x1ce */
-#define EVAL_postponed_AB_fail_t8_p8 463 /* 0x1cf */
-
-#define CURLYX_end 116 /* 0x74 state for CURLYX */
-#define CURLYX_end_tb_pb 464 /* 0x1d0 */
-#define CURLYX_end_tb_p8 465 /* 0x1d1 */
-#define CURLYX_end_t8_pb 466 /* 0x1d2 */
-#define CURLYX_end_t8_p8 467 /* 0x1d3 */
-
-#define CURLYX_end_fail 117 /* 0x75 state for CURLYX */
-#define CURLYX_end_fail_tb_pb 468 /* 0x1d4 */
-#define CURLYX_end_fail_tb_p8 469 /* 0x1d5 */
-#define CURLYX_end_fail_t8_pb 470 /* 0x1d6 */
-#define CURLYX_end_fail_t8_p8 471 /* 0x1d7 */
-
-#define WHILEM_A_pre 118 /* 0x76 state for WHILEM */
-#define WHILEM_A_pre_tb_pb 472 /* 0x1d8 */
-#define WHILEM_A_pre_tb_p8 473 /* 0x1d9 */
-#define WHILEM_A_pre_t8_pb 474 /* 0x1da */
-#define WHILEM_A_pre_t8_p8 475 /* 0x1db */
-
-#define WHILEM_A_pre_fail 119 /* 0x77 state for WHILEM */
-#define WHILEM_A_pre_fail_tb_pb 476 /* 0x1dc */
-#define WHILEM_A_pre_fail_tb_p8 477 /* 0x1dd */
-#define WHILEM_A_pre_fail_t8_pb 478 /* 0x1de */
-#define WHILEM_A_pre_fail_t8_p8 479 /* 0x1df */
-
-#define WHILEM_A_min 120 /* 0x78 state for WHILEM */
-#define WHILEM_A_min_tb_pb 480 /* 0x1e0 */
-#define WHILEM_A_min_tb_p8 481 /* 0x1e1 */
-#define WHILEM_A_min_t8_pb 482 /* 0x1e2 */
-#define WHILEM_A_min_t8_p8 483 /* 0x1e3 */
-
-#define WHILEM_A_min_fail 121 /* 0x79 state for WHILEM */
-#define WHILEM_A_min_fail_tb_pb 484 /* 0x1e4 */
-#define WHILEM_A_min_fail_tb_p8 485 /* 0x1e5 */
-#define WHILEM_A_min_fail_t8_pb 486 /* 0x1e6 */
-#define WHILEM_A_min_fail_t8_p8 487 /* 0x1e7 */
-
-#define WHILEM_A_max 122 /* 0x7a state for WHILEM */
-#define WHILEM_A_max_tb_pb 488 /* 0x1e8 */
-#define WHILEM_A_max_tb_p8 489 /* 0x1e9 */
-#define WHILEM_A_max_t8_pb 490 /* 0x1ea */
-#define WHILEM_A_max_t8_p8 491 /* 0x1eb */
-
-#define WHILEM_A_max_fail 123 /* 0x7b state for WHILEM */
-#define WHILEM_A_max_fail_tb_pb 492 /* 0x1ec */
-#define WHILEM_A_max_fail_tb_p8 493 /* 0x1ed */
-#define WHILEM_A_max_fail_t8_pb 494 /* 0x1ee */
-#define WHILEM_A_max_fail_t8_p8 495 /* 0x1ef */
-
-#define WHILEM_B_min 124 /* 0x7c state for WHILEM */
-#define WHILEM_B_min_tb_pb 496 /* 0x1f0 */
-#define WHILEM_B_min_tb_p8 497 /* 0x1f1 */
-#define WHILEM_B_min_t8_pb 498 /* 0x1f2 */
-#define WHILEM_B_min_t8_p8 499 /* 0x1f3 */
-
-#define WHILEM_B_min_fail 125 /* 0x7d state for WHILEM */
-#define WHILEM_B_min_fail_tb_pb 500 /* 0x1f4 */
-#define WHILEM_B_min_fail_tb_p8 501 /* 0x1f5 */
-#define WHILEM_B_min_fail_t8_pb 502 /* 0x1f6 */
-#define WHILEM_B_min_fail_t8_p8 503 /* 0x1f7 */
-
-#define WHILEM_B_max 126 /* 0x7e state for WHILEM */
-#define WHILEM_B_max_tb_pb 504 /* 0x1f8 */
-#define WHILEM_B_max_tb_p8 505 /* 0x1f9 */
-#define WHILEM_B_max_t8_pb 506 /* 0x1fa */
-#define WHILEM_B_max_t8_p8 507 /* 0x1fb */
-
-#define WHILEM_B_max_fail 127 /* 0x7f state for WHILEM */
-#define WHILEM_B_max_fail_tb_pb 508 /* 0x1fc */
-#define WHILEM_B_max_fail_tb_p8 509 /* 0x1fd */
-#define WHILEM_B_max_fail_t8_pb 510 /* 0x1fe */
-#define WHILEM_B_max_fail_t8_p8 511 /* 0x1ff */
-
-#define BRANCH_next 128 /* 0x80 state for BRANCH */
-#define BRANCH_next_tb_pb 512 /* 0x200 */
-#define BRANCH_next_tb_p8 513 /* 0x201 */
-#define BRANCH_next_t8_pb 514 /* 0x202 */
-#define BRANCH_next_t8_p8 515 /* 0x203 */
-
-#define BRANCH_next_fail 129 /* 0x81 state for BRANCH */
-#define BRANCH_next_fail_tb_pb 516 /* 0x204 */
-#define BRANCH_next_fail_tb_p8 517 /* 0x205 */
-#define BRANCH_next_fail_t8_pb 518 /* 0x206 */
-#define BRANCH_next_fail_t8_p8 519 /* 0x207 */
-
-#define CURLYM_A 130 /* 0x82 state for CURLYM */
-#define CURLYM_A_tb_pb 520 /* 0x208 */
-#define CURLYM_A_tb_p8 521 /* 0x209 */
-#define CURLYM_A_t8_pb 522 /* 0x20a */
-#define CURLYM_A_t8_p8 523 /* 0x20b */
-
-#define CURLYM_A_fail 131 /* 0x83 state for CURLYM */
-#define CURLYM_A_fail_tb_pb 524 /* 0x20c */
-#define CURLYM_A_fail_tb_p8 525 /* 0x20d */
-#define CURLYM_A_fail_t8_pb 526 /* 0x20e */
-#define CURLYM_A_fail_t8_p8 527 /* 0x20f */
-
-#define CURLYM_B 132 /* 0x84 state for CURLYM */
-#define CURLYM_B_tb_pb 528 /* 0x210 */
-#define CURLYM_B_tb_p8 529 /* 0x211 */
-#define CURLYM_B_t8_pb 530 /* 0x212 */
-#define CURLYM_B_t8_p8 531 /* 0x213 */
-
-#define CURLYM_B_fail 133 /* 0x85 state for CURLYM */
-#define CURLYM_B_fail_tb_pb 532 /* 0x214 */
-#define CURLYM_B_fail_tb_p8 533 /* 0x215 */
-#define CURLYM_B_fail_t8_pb 534 /* 0x216 */
-#define CURLYM_B_fail_t8_p8 535 /* 0x217 */
-
-#define IFMATCH_A 134 /* 0x86 state for IFMATCH */
-#define IFMATCH_A_tb_pb 536 /* 0x218 */
-#define IFMATCH_A_tb_p8 537 /* 0x219 */
-#define IFMATCH_A_t8_pb 538 /* 0x21a */
-#define IFMATCH_A_t8_p8 539 /* 0x21b */
-
-#define IFMATCH_A_fail 135 /* 0x87 state for IFMATCH */
-#define IFMATCH_A_fail_tb_pb 540 /* 0x21c */
-#define IFMATCH_A_fail_tb_p8 541 /* 0x21d */
-#define IFMATCH_A_fail_t8_pb 542 /* 0x21e */
-#define IFMATCH_A_fail_t8_p8 543 /* 0x21f */
-
-#define CURLY_B_min 136 /* 0x88 state for CURLY */
-#define CURLY_B_min_tb_pb 544 /* 0x220 */
-#define CURLY_B_min_tb_p8 545 /* 0x221 */
-#define CURLY_B_min_t8_pb 546 /* 0x222 */
-#define CURLY_B_min_t8_p8 547 /* 0x223 */
-
-#define CURLY_B_min_fail 137 /* 0x89 state for CURLY */
-#define CURLY_B_min_fail_tb_pb 548 /* 0x224 */
-#define CURLY_B_min_fail_tb_p8 549 /* 0x225 */
-#define CURLY_B_min_fail_t8_pb 550 /* 0x226 */
-#define CURLY_B_min_fail_t8_p8 551 /* 0x227 */
-
-#define CURLY_B_max 138 /* 0x8a state for CURLY */
-#define CURLY_B_max_tb_pb 552 /* 0x228 */
-#define CURLY_B_max_tb_p8 553 /* 0x229 */
-#define CURLY_B_max_t8_pb 554 /* 0x22a */
-#define CURLY_B_max_t8_p8 555 /* 0x22b */
-
-#define CURLY_B_max_fail 139 /* 0x8b state for CURLY */
-#define CURLY_B_max_fail_tb_pb 556 /* 0x22c */
-#define CURLY_B_max_fail_tb_p8 557 /* 0x22d */
-#define CURLY_B_max_fail_t8_pb 558 /* 0x22e */
-#define CURLY_B_max_fail_t8_p8 559 /* 0x22f */
-
-#define COMMIT_next 140 /* 0x8c state for COMMIT */
-#define COMMIT_next_tb_pb 560 /* 0x230 */
-#define COMMIT_next_tb_p8 561 /* 0x231 */
-#define COMMIT_next_t8_pb 562 /* 0x232 */
-#define COMMIT_next_t8_p8 563 /* 0x233 */
-
-#define COMMIT_next_fail 141 /* 0x8d state for COMMIT */
-#define COMMIT_next_fail_tb_pb 564 /* 0x234 */
-#define COMMIT_next_fail_tb_p8 565 /* 0x235 */
-#define COMMIT_next_fail_t8_pb 566 /* 0x236 */
-#define COMMIT_next_fail_t8_p8 567 /* 0x237 */
-
-#define MARKPOINT_next 142 /* 0x8e state for MARKPOINT */
-#define MARKPOINT_next_tb_pb 568 /* 0x238 */
-#define MARKPOINT_next_tb_p8 569 /* 0x239 */
-#define MARKPOINT_next_t8_pb 570 /* 0x23a */
-#define MARKPOINT_next_t8_p8 571 /* 0x23b */
-
-#define MARKPOINT_next_fail 143 /* 0x8f state for MARKPOINT */
-#define MARKPOINT_next_fail_tb_pb 572 /* 0x23c */
-#define MARKPOINT_next_fail_tb_p8 573 /* 0x23d */
-#define MARKPOINT_next_fail_t8_pb 574 /* 0x23e */
-#define MARKPOINT_next_fail_t8_p8 575 /* 0x23f */
-
-#define SKIP_next 144 /* 0x90 state for SKIP */
-#define SKIP_next_tb_pb 576 /* 0x240 */
-#define SKIP_next_tb_p8 577 /* 0x241 */
-#define SKIP_next_t8_pb 578 /* 0x242 */
-#define SKIP_next_t8_p8 579 /* 0x243 */
-
-#define SKIP_next_fail 145 /* 0x91 state for SKIP */
-#define SKIP_next_fail_tb_pb 580 /* 0x244 */
-#define SKIP_next_fail_tb_p8 581 /* 0x245 */
-#define SKIP_next_fail_t8_pb 582 /* 0x246 */
-#define SKIP_next_fail_t8_p8 583 /* 0x247 */
-
-#define CUTGROUP_next 146 /* 0x92 state for CUTGROUP */
-#define CUTGROUP_next_tb_pb 584 /* 0x248 */
-#define CUTGROUP_next_tb_p8 585 /* 0x249 */
-#define CUTGROUP_next_t8_pb 586 /* 0x24a */
-#define CUTGROUP_next_t8_p8 587 /* 0x24b */
-
-#define CUTGROUP_next_fail 147 /* 0x93 state for CUTGROUP */
-#define CUTGROUP_next_fail_tb_pb 588 /* 0x24c */
-#define CUTGROUP_next_fail_tb_p8 589 /* 0x24d */
-#define CUTGROUP_next_fail_t8_pb 590 /* 0x24e */
-#define CUTGROUP_next_fail_t8_p8 591 /* 0x24f */
-
-#define KEEPS_next 148 /* 0x94 state for KEEPS */
-#define KEEPS_next_tb_pb 592 /* 0x250 */
-#define KEEPS_next_tb_p8 593 /* 0x251 */
-#define KEEPS_next_t8_pb 594 /* 0x252 */
-#define KEEPS_next_t8_p8 595 /* 0x253 */
-
-#define KEEPS_next_fail 149 /* 0x95 state for KEEPS */
-#define KEEPS_next_fail_tb_pb 596 /* 0x254 */
-#define KEEPS_next_fail_tb_p8 597 /* 0x255 */
-#define KEEPS_next_fail_t8_pb 598 /* 0x256 */
-#define KEEPS_next_fail_t8_p8 599 /* 0x257 */
-
-
-/* PL_regkind[] What type of regop or state is this. */
+#define END 0 /* 0x00 End of program. */
+#define END_tb 0 /* 0x000 */
+#define END_t8 1 /* 0x001 */
+#define END_tb_pb 0 /* 0x000 */
+#define END_tb_p8 1 /* 0x001 */
+#define END_t8_pb 2 /* 0x002 */
+#define END_t8_p8 3 /* 0x003 */
+
+#define SUCCEED 1 /* 0x01 Return from a
+ subroutine, basically. */
+#define SUCCEED_tb 2 /* 0x002 */
+#define SUCCEED_t8 3 /* 0x003 */
+#define SUCCEED_tb_pb 4 /* 0x004 */
+#define SUCCEED_tb_p8 5 /* 0x005 */
+#define SUCCEED_t8_pb 6 /* 0x006 */
+#define SUCCEED_t8_p8 7 /* 0x007 */
+
+#define SBOL 2 /* 0x02 Match "" at beginning
+ of line: /^/, /\A/ */
+#define SBOL_tb 4 /* 0x004 */
+#define SBOL_t8 5 /* 0x005 */
+#define SBOL_tb_pb 8 /* 0x008 */
+#define SBOL_tb_p8 9 /* 0x009 */
+#define SBOL_t8_pb 10 /* 0x00a */
+#define SBOL_t8_p8 11 /* 0x00b */
+
+#define BOL 2 /* 0x02 Match "" at beginning
+ of line: /^/, /\A/ */
+#define BOL_tb 4 /* 0x004 */
+#define BOL_t8 5 /* 0x005 */
+#define BOL_tb_pb 8 /* 0x008 */
+#define BOL_tb_p8 9 /* 0x009 */
+#define BOL_t8_pb 10 /* 0x00a */
+#define BOL_t8_p8 11 /* 0x00b */
+
+#define MBOL 3 /* 0x03 Same, assuming
+ multiline: /^/m */
+#define MBOL_tb 6 /* 0x006 */
+#define MBOL_t8 7 /* 0x007 */
+#define MBOL_tb_pb 12 /* 0x00c */
+#define MBOL_tb_p8 13 /* 0x00d */
+#define MBOL_t8_pb 14 /* 0x00e */
+#define MBOL_t8_p8 15 /* 0x00f */
+
+#define SEOL 4 /* 0x04 Match "" at end of
+ line: /$/ */
+#define SEOL_tb 8 /* 0x008 */
+#define SEOL_t8 9 /* 0x009 */
+#define SEOL_tb_pb 16 /* 0x010 */
+#define SEOL_tb_p8 17 /* 0x011 */
+#define SEOL_t8_pb 18 /* 0x012 */
+#define SEOL_t8_p8 19 /* 0x013 */
+
+#define EOL 4 /* 0x04 Match "" at end of
+ line: /$/ */
+#define EOL_tb 8 /* 0x008 */
+#define EOL_t8 9 /* 0x009 */
+#define EOL_tb_pb 16 /* 0x010 */
+#define EOL_tb_p8 17 /* 0x011 */
+#define EOL_t8_pb 18 /* 0x012 */
+#define EOL_t8_p8 19 /* 0x013 */
+
+#define MEOL 5 /* 0x05 Same, assuming
+ multiline: /$/m */
+#define MEOL_tb 10 /* 0x00a */
+#define MEOL_t8 11 /* 0x00b */
+#define MEOL_tb_pb 20 /* 0x014 */
+#define MEOL_tb_p8 21 /* 0x015 */
+#define MEOL_t8_pb 22 /* 0x016 */
+#define MEOL_t8_p8 23 /* 0x017 */
+
+#define EOS 6 /* 0x06 Match "" at end of
+ string: /\z/ */
+#define EOS_tb 12 /* 0x00c */
+#define EOS_t8 13 /* 0x00d */
+#define EOS_tb_pb 24 /* 0x018 */
+#define EOS_tb_p8 25 /* 0x019 */
+#define EOS_t8_pb 26 /* 0x01a */
+#define EOS_t8_p8 27 /* 0x01b */
+
+#define GPOS 7 /* 0x07 Matches where last m//g
+ left off. */
+#define GPOS_tb 14 /* 0x00e */
+#define GPOS_t8 15 /* 0x00f */
+#define GPOS_tb_pb 28 /* 0x01c */
+#define GPOS_tb_p8 29 /* 0x01d */
+#define GPOS_t8_pb 30 /* 0x01e */
+#define GPOS_t8_p8 31 /* 0x01f */
+
+#define BOUND 8 /* 0x08 Like BOUNDA for
+ non-utf8, otherwise like
+ BOUNDU */
+#define BOUND_tb 16 /* 0x010 */
+#define BOUND_t8 17 /* 0x011 */
+#define BOUND_tb_pb 32 /* 0x020 */
+#define BOUND_tb_p8 33 /* 0x021 */
+#define BOUND_t8_pb 34 /* 0x022 */
+#define BOUND_t8_p8 35 /* 0x023 */
+
+#define BOUNDL 9 /* 0x09 Like BOUND/BOUNDU, but
+ \w and \W are defined by
+ current locale */
+#define BOUNDL_tb 18 /* 0x012 */
+#define BOUNDL_t8 19 /* 0x013 */
+#define BOUNDL_tb_pb 36 /* 0x024 */
+#define BOUNDL_tb_p8 37 /* 0x025 */
+#define BOUNDL_t8_pb 38 /* 0x026 */
+#define BOUNDL_t8_p8 39 /* 0x027 */
+
+#define BOUNDU 10 /* 0x0a Match "" at any
+ boundary of a given type
+ using /u rules. */
+#define BOUNDU_tb 20 /* 0x014 */
+#define BOUNDU_t8 21 /* 0x015 */
+#define BOUNDU_tb_pb 40 /* 0x028 */
+#define BOUNDU_tb_p8 41 /* 0x029 */
+#define BOUNDU_t8_pb 42 /* 0x02a */
+#define BOUNDU_t8_p8 43 /* 0x02b */
+
+#define BOUNDA 11 /* 0x0b Match "" at any
+ boundary between \w\W or
+ \W\w, where \w is
+ [_a-zA-Z0-9] */
+#define BOUNDA_tb 22 /* 0x016 */
+#define BOUNDA_t8 23 /* 0x017 */
+#define BOUNDA_tb_pb 44 /* 0x02c */
+#define BOUNDA_tb_p8 45 /* 0x02d */
+#define BOUNDA_t8_pb 46 /* 0x02e */
+#define BOUNDA_t8_p8 47 /* 0x02f */
+
+#define NBOUND 12 /* 0x0c Like NBOUNDA for
+ non-utf8, otherwise like
+ BOUNDU */
+#define NBOUND_tb 24 /* 0x018 */
+#define NBOUND_t8 25 /* 0x019 */
+#define NBOUND_tb_pb 48 /* 0x030 */
+#define NBOUND_tb_p8 49 /* 0x031 */
+#define NBOUND_t8_pb 50 /* 0x032 */
+#define NBOUND_t8_p8 51 /* 0x033 */
+
+#define NBOUNDL 13 /* 0x0d Like NBOUND/NBOUNDU,
+ but \w and \W are defined by
+ current locale */
+#define NBOUNDL_tb 26 /* 0x01a */
+#define NBOUNDL_t8 27 /* 0x01b */
+#define NBOUNDL_tb_pb 52 /* 0x034 */
+#define NBOUNDL_tb_p8 53 /* 0x035 */
+#define NBOUNDL_t8_pb 54 /* 0x036 */
+#define NBOUNDL_t8_p8 55 /* 0x037 */
+
+#define NBOUNDU 14 /* 0x0e Match "" at any
+ non-boundary of a given type
+ using using /u rules. */
+#define NBOUNDU_tb 28 /* 0x01c */
+#define NBOUNDU_t8 29 /* 0x01d */
+#define NBOUNDU_tb_pb 56 /* 0x038 */
+#define NBOUNDU_tb_p8 57 /* 0x039 */
+#define NBOUNDU_t8_pb 58 /* 0x03a */
+#define NBOUNDU_t8_p8 59 /* 0x03b */
+
+#define NBOUNDA 15 /* 0x0f Match "" betweeen any
+ \w\w or \W\W, where \w is
+ [_a-zA-Z0-9] */
+#define NBOUNDA_tb 30 /* 0x01e */
+#define NBOUNDA_t8 31 /* 0x01f */
+#define NBOUNDA_tb_pb 60 /* 0x03c */
+#define NBOUNDA_tb_p8 61 /* 0x03d */
+#define NBOUNDA_t8_pb 62 /* 0x03e */
+#define NBOUNDA_t8_p8 63 /* 0x03f */
+
+#define REG_ANY 16 /* 0x10 Match any one character
+ (except newline). */
+#define REG_ANY_tb 32 /* 0x020 */
+#define REG_ANY_t8 33 /* 0x021 */
+#define REG_ANY_tb_pb 64 /* 0x040 */
+#define REG_ANY_tb_p8 65 /* 0x041 */
+#define REG_ANY_t8_pb 66 /* 0x042 */
+#define REG_ANY_t8_p8 67 /* 0x043 */
+
+#define SANY 17 /* 0x11 Match any one
+ character. */
+#define SANY_tb 34 /* 0x022 */
+#define SANY_t8 35 /* 0x023 */
+#define SANY_tb_pb 68 /* 0x044 */
+#define SANY_tb_p8 69 /* 0x045 */
+#define SANY_t8_pb 70 /* 0x046 */
+#define SANY_t8_p8 71 /* 0x047 */
+
+#define ANYOF 18 /* 0x12 Match character in (or
+ not in) this class, single
+ char match only */
+#define ANYOF_tb 36 /* 0x024 */
+#define ANYOF_t8 37 /* 0x025 */
+#define ANYOF_tb_pb 72 /* 0x048 */
+#define ANYOF_tb_p8 73 /* 0x049 */
+#define ANYOF_t8_pb 74 /* 0x04a */
+#define ANYOF_t8_p8 75 /* 0x04b */
+
+#define ANYOFD 19 /* 0x13 Like ANYOF, but /d is
+ in effect */
+#define ANYOFD_tb 38 /* 0x026 */
+#define ANYOFD_t8 39 /* 0x027 */
+#define ANYOFD_tb_pb 76 /* 0x04c */
+#define ANYOFD_tb_p8 77 /* 0x04d */
+#define ANYOFD_t8_pb 78 /* 0x04e */
+#define ANYOFD_t8_p8 79 /* 0x04f */
+
+#define ANYOFL 20 /* 0x14 Like ANYOF, but /l is
+ in effect */
+#define ANYOFL_tb 40 /* 0x028 */
+#define ANYOFL_t8 41 /* 0x029 */
+#define ANYOFL_tb_pb 80 /* 0x050 */
+#define ANYOFL_tb_p8 81 /* 0x051 */
+#define ANYOFL_t8_pb 82 /* 0x052 */
+#define ANYOFL_t8_p8 83 /* 0x053 */
+
+#define ANYOFPOSIXL 21 /* 0x15 Like ANYOFL, but
+ matches [[:posix:]] classes
+ */
+#define ANYOFPOSIXL_tb 42 /* 0x02a */
+#define ANYOFPOSIXL_t8 43 /* 0x02b */
+#define ANYOFPOSIXL_tb_pb 84 /* 0x054 */
+#define ANYOFPOSIXL_tb_p8 85 /* 0x055 */
+#define ANYOFPOSIXL_t8_pb 86 /* 0x056 */
+#define ANYOFPOSIXL_t8_p8 87 /* 0x057 */
+
+#define ANYOFH 22 /* 0x16 Like ANYOF, but only
+ has "High" matches, none in
+ the bitmap; the flags field
+ contains the lowest
+ matchable UTF-8 start byte
+ */
+#define ANYOFH_tb 44 /* 0x02c */
+#define ANYOFH_t8 45 /* 0x02d */
+#define ANYOFH_tb_pb 88 /* 0x058 */
+#define ANYOFH_tb_p8 89 /* 0x059 */
+#define ANYOFH_t8_pb 90 /* 0x05a */
+#define ANYOFH_t8_p8 91 /* 0x05b */
+
+#define ANYOFHb 23 /* 0x17 Like ANYOFH, but all
+ matches share the same UTF-8
+ start byte, given in the
+ flags field */
+#define ANYOFHb_tb 46 /* 0x02e */
+#define ANYOFHb_t8 47 /* 0x02f */
+#define ANYOFHb_tb_pb 92 /* 0x05c */
+#define ANYOFHb_tb_p8 93 /* 0x05d */
+#define ANYOFHb_t8_pb 94 /* 0x05e */
+#define ANYOFHb_t8_p8 95 /* 0x05f */
+
+#define ANYOFHr 24 /* 0x18 Like ANYOFH, but the
+ flags field contains packed
+ bounds for all matchable
+ UTF-8 start bytes. */
+#define ANYOFHr_tb 48 /* 0x030 */
+#define ANYOFHr_t8 49 /* 0x031 */
+#define ANYOFHr_tb_pb 96 /* 0x060 */
+#define ANYOFHr_tb_p8 97 /* 0x061 */
+#define ANYOFHr_t8_pb 98 /* 0x062 */
+#define ANYOFHr_t8_p8 99 /* 0x063 */
+
+#define ANYOFHs 25 /* 0x19 Like ANYOFHb, but has a
+ string field that gives the
+ leading matchable UTF-8
+ bytes; flags field is len */
+#define ANYOFHs_tb 50 /* 0x032 */
+#define ANYOFHs_t8 51 /* 0x033 */
+#define ANYOFHs_tb_pb 100 /* 0x064 */
+#define ANYOFHs_tb_p8 101 /* 0x065 */
+#define ANYOFHs_t8_pb 102 /* 0x066 */
+#define ANYOFHs_t8_p8 103 /* 0x067 */
+
+#define ANYOFR 26 /* 0x1a Matches any character
+ in the range given by its
+ packed args: upper 12 bits
+ is the max delta from the
+ base lower 20; the flags
+ field contains the lowest
+ matchable UTF-8 start byte
+ */
+#define ANYOFR_tb 52 /* 0x034 */
+#define ANYOFR_t8 53 /* 0x035 */
+#define ANYOFR_tb_pb 104 /* 0x068 */
+#define ANYOFR_tb_p8 105 /* 0x069 */
+#define ANYOFR_t8_pb 106 /* 0x06a */
+#define ANYOFR_t8_p8 107 /* 0x06b */
+
+#define ANYOFRb 27 /* 0x1b Like ANYOFR, but all
+ matches share the same UTF-8
+ start byte, given in the
+ flags field */
+#define ANYOFRb_tb 54 /* 0x036 */
+#define ANYOFRb_t8 55 /* 0x037 */
+#define ANYOFRb_tb_pb 108 /* 0x06c */
+#define ANYOFRb_tb_p8 109 /* 0x06d */
+#define ANYOFRb_t8_pb 110 /* 0x06e */
+#define ANYOFRb_t8_p8 111 /* 0x06f */
+
+#define ANYOFHbbm 28 /* 0x1c Like ANYOFHb, but only
+ for 2-byte UTF-8 characters;
+ uses a bitmap to match the
+ continuation byte */
+#define ANYOFHbbm_tb 56 /* 0x038 */
+#define ANYOFHbbm_t8 57 /* 0x039 */
+#define ANYOFHbbm_tb_pb 112 /* 0x070 */
+#define ANYOFHbbm_tb_p8 113 /* 0x071 */
+#define ANYOFHbbm_t8_pb 114 /* 0x072 */
+#define ANYOFHbbm_t8_p8 115 /* 0x073 */
+
+#define ANYOFM 29 /* 0x1d Like ANYOF, but matches
+ an invariant byte as
+ determined by the mask and
+ arg */
+#define ANYOFM_tb 58 /* 0x03a */
+#define ANYOFM_t8 59 /* 0x03b */
+#define ANYOFM_tb_pb 116 /* 0x074 */
+#define ANYOFM_tb_p8 117 /* 0x075 */
+#define ANYOFM_t8_pb 118 /* 0x076 */
+#define ANYOFM_t8_p8 119 /* 0x077 */
+
+#define NANYOFM 30 /* 0x1e complement of ANYOFM */
+#define NANYOFM_tb 60 /* 0x03c */
+#define NANYOFM_t8 61 /* 0x03d */
+#define NANYOFM_tb_pb 120 /* 0x078 */
+#define NANYOFM_tb_p8 121 /* 0x079 */
+#define NANYOFM_t8_pb 122 /* 0x07a */
+#define NANYOFM_t8_p8 123 /* 0x07b */
+
+#define POSIXD 31 /* 0x1f Some [[:class:]] under
+ /d; the FLAGS field gives
+ which one */
+#define POSIXD_tb 62 /* 0x03e */
+#define POSIXD_t8 63 /* 0x03f */
+#define POSIXD_tb_pb 124 /* 0x07c */
+#define POSIXD_tb_p8 125 /* 0x07d */
+#define POSIXD_t8_pb 126 /* 0x07e */
+#define POSIXD_t8_p8 127 /* 0x07f */
+
+#define POSIXL 32 /* 0x20 Some [[:class:]] under
+ /l; the FLAGS field gives
+ which one */
+#define POSIXL_tb 64 /* 0x040 */
+#define POSIXL_t8 65 /* 0x041 */
+#define POSIXL_tb_pb 128 /* 0x080 */
+#define POSIXL_tb_p8 129 /* 0x081 */
+#define POSIXL_t8_pb 130 /* 0x082 */
+#define POSIXL_t8_p8 131 /* 0x083 */
+
+#define POSIXU 33 /* 0x21 Some [[:class:]] under
+ /u; the FLAGS field gives
+ which one */
+#define POSIXU_tb 66 /* 0x042 */
+#define POSIXU_t8 67 /* 0x043 */
+#define POSIXU_tb_pb 132 /* 0x084 */
+#define POSIXU_tb_p8 133 /* 0x085 */
+#define POSIXU_t8_pb 134 /* 0x086 */
+#define POSIXU_t8_p8 135 /* 0x087 */
+
+#define POSIXA 34 /* 0x22 Some [[:class:]] under
+ /a; the FLAGS field gives
+ which one */
+#define POSIXA_tb 68 /* 0x044 */
+#define POSIXA_t8 69 /* 0x045 */
+#define POSIXA_tb_pb 136 /* 0x088 */
+#define POSIXA_tb_p8 137 /* 0x089 */
+#define POSIXA_t8_pb 138 /* 0x08a */
+#define POSIXA_t8_p8 139 /* 0x08b */
+
+#define NPOSIXD 35 /* 0x23 complement of POSIXD,
+ [[:^class:]] */
+#define NPOSIXD_tb 70 /* 0x046 */
+#define NPOSIXD_t8 71 /* 0x047 */
+#define NPOSIXD_tb_pb 140 /* 0x08c */
+#define NPOSIXD_tb_p8 141 /* 0x08d */
+#define NPOSIXD_t8_pb 142 /* 0x08e */
+#define NPOSIXD_t8_p8 143 /* 0x08f */
+
+#define NPOSIXL 36 /* 0x24 complement of POSIXL,
+ [[:^class:]] */
+#define NPOSIXL_tb 72 /* 0x048 */
+#define NPOSIXL_t8 73 /* 0x049 */
+#define NPOSIXL_tb_pb 144 /* 0x090 */
+#define NPOSIXL_tb_p8 145 /* 0x091 */
+#define NPOSIXL_t8_pb 146 /* 0x092 */
+#define NPOSIXL_t8_p8 147 /* 0x093 */
+
+#define NPOSIXU 37 /* 0x25 complement of POSIXU,
+ [[:^class:]] */
+#define NPOSIXU_tb 74 /* 0x04a */
+#define NPOSIXU_t8 75 /* 0x04b */
+#define NPOSIXU_tb_pb 148 /* 0x094 */
+#define NPOSIXU_tb_p8 149 /* 0x095 */
+#define NPOSIXU_t8_pb 150 /* 0x096 */
+#define NPOSIXU_t8_p8 151 /* 0x097 */
+
+#define NPOSIXA 38 /* 0x26 complement of POSIXA,
+ [[:^class:]] */
+#define NPOSIXA_tb 76 /* 0x04c */
+#define NPOSIXA_t8 77 /* 0x04d */
+#define NPOSIXA_tb_pb 152 /* 0x098 */
+#define NPOSIXA_tb_p8 153 /* 0x099 */
+#define NPOSIXA_t8_pb 154 /* 0x09a */
+#define NPOSIXA_t8_p8 155 /* 0x09b */
+
+#define CLUMP 39 /* 0x27 Match any extended
+ grapheme cluster sequence */
+#define CLUMP_tb 78 /* 0x04e */
+#define CLUMP_t8 79 /* 0x04f */
+#define CLUMP_tb_pb 156 /* 0x09c */
+#define CLUMP_tb_p8 157 /* 0x09d */
+#define CLUMP_t8_pb 158 /* 0x09e */
+#define CLUMP_t8_p8 159 /* 0x09f */
+
+#define BRANCH 40 /* 0x28 Match this alternative,
+ or the next... */
+#define BRANCH_tb 80 /* 0x050 */
+#define BRANCH_t8 81 /* 0x051 */
+#define BRANCH_tb_pb 160 /* 0x0a0 */
+#define BRANCH_tb_p8 161 /* 0x0a1 */
+#define BRANCH_t8_pb 162 /* 0x0a2 */
+#define BRANCH_t8_p8 163 /* 0x0a3 */
+
+#define EXACT 41 /* 0x29 Match this string
+ (flags field is the length).
+ */
+#define EXACT_tb 82 /* 0x052 */
+#define EXACT_t8 83 /* 0x053 */
+#define EXACT_tb_pb 164 /* 0x0a4 */
+#define EXACT_tb_p8 165 /* 0x0a5 */
+#define EXACT_t8_pb 166 /* 0x0a6 */
+#define EXACT_t8_p8 167 /* 0x0a7 */
+
+#define LEXACT 42 /* 0x2a Match this long string
+ (preceded by length; flags
+ unused). */
+#define LEXACT_tb 84 /* 0x054 */
+#define LEXACT_t8 85 /* 0x055 */
+#define LEXACT_tb_pb 168 /* 0x0a8 */
+#define LEXACT_tb_p8 169 /* 0x0a9 */
+#define LEXACT_t8_pb 170 /* 0x0aa */
+#define LEXACT_t8_p8 171 /* 0x0ab */
+
+#define EXACTL 43 /* 0x2b Like EXACT, but /l is
+ in effect (used so
+ locale-related warnings can
+ be checked for) */
+#define EXACTL_tb 86 /* 0x056 */
+#define EXACTL_t8 87 /* 0x057 */
+#define EXACTL_tb_pb 172 /* 0x0ac */
+#define EXACTL_tb_p8 173 /* 0x0ad */
+#define EXACTL_t8_pb 174 /* 0x0ae */
+#define EXACTL_t8_p8 175 /* 0x0af */
+
+#define EXACTF 44 /* 0x2c Like EXACT, but match
+ using /id rules; (string not
+ UTF-8, ASCII folded;
+ non-ASCII not) */
+#define EXACTF_tb 88 /* 0x058 */
+#define EXACTF_t8 89 /* 0x059 */
+#define EXACTF_tb_pb 176 /* 0x0b0 */
+#define EXACTF_tb_p8 177 /* 0x0b1 */
+#define EXACTF_t8_pb 178 /* 0x0b2 */
+#define EXACTF_t8_p8 179 /* 0x0b3 */
+
+#define EXACTFL 45 /* 0x2d Like EXACT, but match
+ using /il rules; (string not
+ likely to be folded) */
+#define EXACTFL_tb 90 /* 0x05a */
+#define EXACTFL_t8 91 /* 0x05b */
+#define EXACTFL_tb_pb 180 /* 0x0b4 */
+#define EXACTFL_tb_p8 181 /* 0x0b5 */
+#define EXACTFL_t8_pb 182 /* 0x0b6 */
+#define EXACTFL_t8_p8 183 /* 0x0b7 */
+
+#define EXACTFU 46 /* 0x2e Like EXACT, but match
+ using /iu rules; (string
+ folded) */
+#define EXACTFU_tb 92 /* 0x05c */
+#define EXACTFU_t8 93 /* 0x05d */
+#define EXACTFU_tb_pb 184 /* 0x0b8 */
+#define EXACTFU_tb_p8 185 /* 0x0b9 */
+#define EXACTFU_t8_pb 186 /* 0x0ba */
+#define EXACTFU_t8_p8 187 /* 0x0bb */
+
+#define EXACTFAA 47 /* 0x2f Like EXACT, but match
+ using /iaa rules; (string
+ folded except MICRO in
+ non-UTF8 patterns; doesn't
+ contain SHARP S unless
+ UTF-8; folded length <=
+ unfolded) */
+#define EXACTFAA_tb 94 /* 0x05e */
+#define EXACTFAA_t8 95 /* 0x05f */
+#define EXACTFAA_tb_pb 188 /* 0x0bc */
+#define EXACTFAA_tb_p8 189 /* 0x0bd */
+#define EXACTFAA_t8_pb 190 /* 0x0be */
+#define EXACTFAA_t8_p8 191 /* 0x0bf */
+
+#define EXACTFAA_NO_TRIE 48 /* 0x30 Like EXACTFAA, (string
+ not UTF-8, folded except:
+ MICRO, SHARP S; folded
+ length <= unfolded, not
+ currently trie-able) */
+#define EXACTFAA_NO_TRIE_tb 96 /* 0x060 */
+#define EXACTFAA_NO_TRIE_t8 97 /* 0x061 */
+#define EXACTFAA_NO_TRIE_tb_pb 192 /* 0x0c0 */
+#define EXACTFAA_NO_TRIE_tb_p8 193 /* 0x0c1 */
+#define EXACTFAA_NO_TRIE_t8_pb 194 /* 0x0c2 */
+#define EXACTFAA_NO_TRIE_t8_p8 195 /* 0x0c3 */
+
+#define EXACTFUP 49 /* 0x31 Like EXACT, but match
+ using /iu rules; (string not
+ UTF-8, folded except MICRO:
+ hence Problematic) */
+#define EXACTFUP_tb 98 /* 0x062 */
+#define EXACTFUP_t8 99 /* 0x063 */
+#define EXACTFUP_tb_pb 196 /* 0x0c4 */
+#define EXACTFUP_tb_p8 197 /* 0x0c5 */
+#define EXACTFUP_t8_pb 198 /* 0x0c6 */
+#define EXACTFUP_t8_p8 199 /* 0x0c7 */
+
+#define EXACTFLU8 50 /* 0x32 Like EXACTFU, but use
+ /il, UTF-8, (string is
+ folded, and everything in it
+ is above 255 */
+#define EXACTFLU8_tb 100 /* 0x064 */
+#define EXACTFLU8_t8 101 /* 0x065 */
+#define EXACTFLU8_tb_pb 200 /* 0x0c8 */
+#define EXACTFLU8_tb_p8 201 /* 0x0c9 */
+#define EXACTFLU8_t8_pb 202 /* 0x0ca */
+#define EXACTFLU8_t8_p8 203 /* 0x0cb */
+
+#define EXACT_REQ8 51 /* 0x33 Like EXACT, but only
+ UTF-8 encoded targets can
+ match */
+#define EXACT_REQ8_tb 102 /* 0x066 */
+#define EXACT_REQ8_t8 103 /* 0x067 */
+#define EXACT_REQ8_tb_pb 204 /* 0x0cc */
+#define EXACT_REQ8_tb_p8 205 /* 0x0cd */
+#define EXACT_REQ8_t8_pb 206 /* 0x0ce */
+#define EXACT_REQ8_t8_p8 207 /* 0x0cf */
+
+#define LEXACT_REQ8 52 /* 0x34 Like LEXACT, but only
+ UTF-8 encoded targets can
+ match */
+#define LEXACT_REQ8_tb 104 /* 0x068 */
+#define LEXACT_REQ8_t8 105 /* 0x069 */
+#define LEXACT_REQ8_tb_pb 208 /* 0x0d0 */
+#define LEXACT_REQ8_tb_p8 209 /* 0x0d1 */
+#define LEXACT_REQ8_t8_pb 210 /* 0x0d2 */
+#define LEXACT_REQ8_t8_p8 211 /* 0x0d3 */
+
+#define EXACTFU_REQ8 53 /* 0x35 Like EXACTFU, but only
+ UTF-8 encoded targets can
+ match */
+#define EXACTFU_REQ8_tb 106 /* 0x06a */
+#define EXACTFU_REQ8_t8 107 /* 0x06b */
+#define EXACTFU_REQ8_tb_pb 212 /* 0x0d4 */
+#define EXACTFU_REQ8_tb_p8 213 /* 0x0d5 */
+#define EXACTFU_REQ8_t8_pb 214 /* 0x0d6 */
+#define EXACTFU_REQ8_t8_p8 215 /* 0x0d7 */
+
+#define EXACTFU_S_EDGE 54 /* 0x36 /di rules, but nothing
+ in it precludes /ui, except
+ begins and/or ends with
+ [Ss]; (string not UTF-8;
+ compile-time only) */
+#define EXACTFU_S_EDGE_tb 108 /* 0x06c */
+#define EXACTFU_S_EDGE_t8 109 /* 0x06d */
+#define EXACTFU_S_EDGE_tb_pb 216 /* 0x0d8 */
+#define EXACTFU_S_EDGE_tb_p8 217 /* 0x0d9 */
+#define EXACTFU_S_EDGE_t8_pb 218 /* 0x0da */
+#define EXACTFU_S_EDGE_t8_p8 219 /* 0x0db */
+
+#define LNBREAK 55 /* 0x37 generic newline pattern
+ */
+#define LNBREAK_tb 110 /* 0x06e */
+#define LNBREAK_t8 111 /* 0x06f */
+#define LNBREAK_tb_pb 220 /* 0x0dc */
+#define LNBREAK_tb_p8 221 /* 0x0dd */
+#define LNBREAK_t8_pb 222 /* 0x0de */
+#define LNBREAK_t8_p8 223 /* 0x0df */
+
+#define TRIE 56 /* 0x38 Match many
+ EXACT(F[ALU]?)? at once.
+ flags==type */
+#define TRIE_tb 112 /* 0x070 */
+#define TRIE_t8 113 /* 0x071 */
+#define TRIE_tb_pb 224 /* 0x0e0 */
+#define TRIE_tb_p8 225 /* 0x0e1 */
+#define TRIE_t8_pb 226 /* 0x0e2 */
+#define TRIE_t8_p8 227 /* 0x0e3 */
+
+#define TRIEC 57 /* 0x39 Same as TRIE, but with
+ embedded charclass data */
+#define TRIEC_tb 114 /* 0x072 */
+#define TRIEC_t8 115 /* 0x073 */
+#define TRIEC_tb_pb 228 /* 0x0e4 */
+#define TRIEC_tb_p8 229 /* 0x0e5 */
+#define TRIEC_t8_pb 230 /* 0x0e6 */
+#define TRIEC_t8_p8 231 /* 0x0e7 */
+
+#define AHOCORASICK 58 /* 0x3a Aho Corasick stclass.
+ flags==type */
+#define AHOCORASICK_tb 116 /* 0x074 */
+#define AHOCORASICK_t8 117 /* 0x075 */
+#define AHOCORASICK_tb_pb 232 /* 0x0e8 */
+#define AHOCORASICK_tb_p8 233 /* 0x0e9 */
+#define AHOCORASICK_t8_pb 234 /* 0x0ea */
+#define AHOCORASICK_t8_p8 235 /* 0x0eb */
+
+#define AHOCORASICKC 59 /* 0x3b Same as AHOCORASICK,
+ but with embedded charclass
+ data */
+#define AHOCORASICKC_tb 118 /* 0x076 */
+#define AHOCORASICKC_t8 119 /* 0x077 */
+#define AHOCORASICKC_tb_pb 236 /* 0x0ec */
+#define AHOCORASICKC_tb_p8 237 /* 0x0ed */
+#define AHOCORASICKC_t8_pb 238 /* 0x0ee */
+#define AHOCORASICKC_t8_p8 239 /* 0x0ef */
+
+#define NOTHING 60 /* 0x3c Match empty string. */
+#define NOTHING_tb 120 /* 0x078 */
+#define NOTHING_t8 121 /* 0x079 */
+#define NOTHING_tb_pb 240 /* 0x0f0 */
+#define NOTHING_tb_p8 241 /* 0x0f1 */
+#define NOTHING_t8_pb 242 /* 0x0f2 */
+#define NOTHING_t8_p8 243 /* 0x0f3 */
+
+#define TAIL 61 /* 0x3d Match empty string. Can
+ jump here from outside. */
+#define TAIL_tb 122 /* 0x07a */
+#define TAIL_t8 123 /* 0x07b */
+#define TAIL_tb_pb 244 /* 0x0f4 */
+#define TAIL_tb_p8 245 /* 0x0f5 */
+#define TAIL_t8_pb 246 /* 0x0f6 */
+#define TAIL_t8_p8 247 /* 0x0f7 */
+
+#define STAR 62 /* 0x3e Match this (simple)
+ thing 0 or more times:
+ /A{0,}B/ where A is width 1
+ char */
+#define STAR_tb 124 /* 0x07c */
+#define STAR_t8 125 /* 0x07d */
+#define STAR_tb_pb 248 /* 0x0f8 */
+#define STAR_tb_p8 249 /* 0x0f9 */
+#define STAR_t8_pb 250 /* 0x0fa */
+#define STAR_t8_p8 251 /* 0x0fb */
+
+#define PLUS 63 /* 0x3f Match this (simple)
+ thing 1 or more times:
+ /A{1,}B/ where A is width 1
+ char */
+#define PLUS_tb 126 /* 0x07e */
+#define PLUS_t8 127 /* 0x07f */
+#define PLUS_tb_pb 252 /* 0x0fc */
+#define PLUS_tb_p8 253 /* 0x0fd */
+#define PLUS_t8_pb 254 /* 0x0fe */
+#define PLUS_t8_p8 255 /* 0x0ff */
+
+#define CURLY 64 /* 0x40 Match this (simple)
+ thing {n,m} times: /A{m,n}B/
+ where A is width 1 char */
+#define CURLY_tb 128 /* 0x080 */
+#define CURLY_t8 129 /* 0x081 */
+#define CURLY_tb_pb 256 /* 0x100 */
+#define CURLY_tb_p8 257 /* 0x101 */
+#define CURLY_t8_pb 258 /* 0x102 */
+#define CURLY_t8_p8 259 /* 0x103 */
+
+#define CURLYN 65 /* 0x41 Capture next-after-this
+ simple thing: /(A){m,n}B/
+ where A is width 1 char */
+#define CURLYN_tb 130 /* 0x082 */
+#define CURLYN_t8 131 /* 0x083 */
+#define CURLYN_tb_pb 260 /* 0x104 */
+#define CURLYN_tb_p8 261 /* 0x105 */
+#define CURLYN_t8_pb 262 /* 0x106 */
+#define CURLYN_t8_p8 263 /* 0x107 */
+
+#define CURLYM 66 /* 0x42 Capture this
+ medium-complex thing {n,m}
+ times: /(A){m,n}B/ where A
+ is fixed-length */
+#define CURLYM_tb 132 /* 0x084 */
+#define CURLYM_t8 133 /* 0x085 */
+#define CURLYM_tb_pb 264 /* 0x108 */
+#define CURLYM_tb_p8 265 /* 0x109 */
+#define CURLYM_t8_pb 266 /* 0x10a */
+#define CURLYM_t8_p8 267 /* 0x10b */
+
+#define CURLYX 67 /* 0x43 Match/Capture this
+ complex thing {n,m} times.
+ */
+#define CURLYX_tb 134 /* 0x086 */
+#define CURLYX_t8 135 /* 0x087 */
+#define CURLYX_tb_pb 268 /* 0x10c */
+#define CURLYX_tb_p8 269 /* 0x10d */
+#define CURLYX_t8_pb 270 /* 0x10e */
+#define CURLYX_t8_p8 271 /* 0x10f */
+
+#define WHILEM 68 /* 0x44 Do curly processing and
+ see if rest matches. */
+#define WHILEM_tb 136 /* 0x088 */
+#define WHILEM_t8 137 /* 0x089 */
+#define WHILEM_tb_pb 272 /* 0x110 */
+#define WHILEM_tb_p8 273 /* 0x111 */
+#define WHILEM_t8_pb 274 /* 0x112 */
+#define WHILEM_t8_p8 275 /* 0x113 */
+
+#define OPEN 69 /* 0x45 Mark this point in
+ input as start of #n. */
+#define OPEN_tb 138 /* 0x08a */
+#define OPEN_t8 139 /* 0x08b */
+#define OPEN_tb_pb 276 /* 0x114 */
+#define OPEN_tb_p8 277 /* 0x115 */
+#define OPEN_t8_pb 278 /* 0x116 */
+#define OPEN_t8_p8 279 /* 0x117 */
+
+#define CLOSE 70 /* 0x46 Close corresponding
+ OPEN of #n. */
+#define CLOSE_tb 140 /* 0x08c */
+#define CLOSE_t8 141 /* 0x08d */
+#define CLOSE_tb_pb 280 /* 0x118 */
+#define CLOSE_tb_p8 281 /* 0x119 */
+#define CLOSE_t8_pb 282 /* 0x11a */
+#define CLOSE_t8_p8 283 /* 0x11b */
+
+#define SROPEN 71 /* 0x47 Same as OPEN, but for
+ script run */
+#define SROPEN_tb 142 /* 0x08e */
+#define SROPEN_t8 143 /* 0x08f */
+#define SROPEN_tb_pb 284 /* 0x11c */
+#define SROPEN_tb_p8 285 /* 0x11d */
+#define SROPEN_t8_pb 286 /* 0x11e */
+#define SROPEN_t8_p8 287 /* 0x11f */
+
+#define SRCLOSE 72 /* 0x48 Close preceding SROPEN
+ */
+#define SRCLOSE_tb 144 /* 0x090 */
+#define SRCLOSE_t8 145 /* 0x091 */
+#define SRCLOSE_tb_pb 288 /* 0x120 */
+#define SRCLOSE_tb_p8 289 /* 0x121 */
+#define SRCLOSE_t8_pb 290 /* 0x122 */
+#define SRCLOSE_t8_p8 291 /* 0x123 */
+
+#define REF 73 /* 0x49 Match some already
+ matched string */
+#define REF_tb 146 /* 0x092 */
+#define REF_t8 147 /* 0x093 */
+#define REF_tb_pb 292 /* 0x124 */
+#define REF_tb_p8 293 /* 0x125 */
+#define REF_t8_pb 294 /* 0x126 */
+#define REF_t8_p8 295 /* 0x127 */
+
+#define REFF 74 /* 0x4a Match already matched
+ string, using /di rules. */
+#define REFF_tb 148 /* 0x094 */
+#define REFF_t8 149 /* 0x095 */
+#define REFF_tb_pb 296 /* 0x128 */
+#define REFF_tb_p8 297 /* 0x129 */
+#define REFF_t8_pb 298 /* 0x12a */
+#define REFF_t8_p8 299 /* 0x12b */
+
+#define REFFL 75 /* 0x4b Match already matched
+ string, using /li rules. */
+#define REFFL_tb 150 /* 0x096 */
+#define REFFL_t8 151 /* 0x097 */
+#define REFFL_tb_pb 300 /* 0x12c */
+#define REFFL_tb_p8 301 /* 0x12d */
+#define REFFL_t8_pb 302 /* 0x12e */
+#define REFFL_t8_p8 303 /* 0x12f */
+
+#define REFFU 76 /* 0x4c Match already matched
+ string, usng /ui. */
+#define REFFU_tb 152 /* 0x098 */
+#define REFFU_t8 153 /* 0x099 */
+#define REFFU_tb_pb 304 /* 0x130 */
+#define REFFU_tb_p8 305 /* 0x131 */
+#define REFFU_t8_pb 306 /* 0x132 */
+#define REFFU_t8_p8 307 /* 0x133 */
+
+#define REFFA 77 /* 0x4d Match already matched
+ string, using /aai rules. */
+#define REFFA_tb 154 /* 0x09a */
+#define REFFA_t8 155 /* 0x09b */
+#define REFFA_tb_pb 308 /* 0x134 */
+#define REFFA_tb_p8 309 /* 0x135 */
+#define REFFA_t8_pb 310 /* 0x136 */
+#define REFFA_t8_p8 311 /* 0x137 */
+
+#define REFN 78 /* 0x4e Match some already
+ matched string */
+#define REFN_tb 156 /* 0x09c */
+#define REFN_t8 157 /* 0x09d */
+#define REFN_tb_pb 312 /* 0x138 */
+#define REFN_tb_p8 313 /* 0x139 */
+#define REFN_t8_pb 314 /* 0x13a */
+#define REFN_t8_p8 315 /* 0x13b */
+
+#define REFFN 79 /* 0x4f Match already matched
+ string, using /di rules. */
+#define REFFN_tb 158 /* 0x09e */
+#define REFFN_t8 159 /* 0x09f */
+#define REFFN_tb_pb 316 /* 0x13c */
+#define REFFN_tb_p8 317 /* 0x13d */
+#define REFFN_t8_pb 318 /* 0x13e */
+#define REFFN_t8_p8 319 /* 0x13f */
+
+#define REFFLN 80 /* 0x50 Match already matched
+ string, using /li rules. */
+#define REFFLN_tb 160 /* 0x0a0 */
+#define REFFLN_t8 161 /* 0x0a1 */
+#define REFFLN_tb_pb 320 /* 0x140 */
+#define REFFLN_tb_p8 321 /* 0x141 */
+#define REFFLN_t8_pb 322 /* 0x142 */
+#define REFFLN_t8_p8 323 /* 0x143 */
+
+#define REFFUN 81 /* 0x51 Match already matched
+ string, using /ui rules. */
+#define REFFUN_tb 162 /* 0x0a2 */
+#define REFFUN_t8 163 /* 0x0a3 */
+#define REFFUN_tb_pb 324 /* 0x144 */
+#define REFFUN_tb_p8 325 /* 0x145 */
+#define REFFUN_t8_pb 326 /* 0x146 */
+#define REFFUN_t8_p8 327 /* 0x147 */
+
+#define REFFAN 82 /* 0x52 Match already matched
+ string, using /aai rules. */
+#define REFFAN_tb 164 /* 0x0a4 */
+#define REFFAN_t8 165 /* 0x0a5 */
+#define REFFAN_tb_pb 328 /* 0x148 */
+#define REFFAN_tb_p8 329 /* 0x149 */
+#define REFFAN_t8_pb 330 /* 0x14a */
+#define REFFAN_t8_p8 331 /* 0x14b */
+
+#define LONGJMP 83 /* 0x53 Jump far away. */
+#define LONGJMP_tb 166 /* 0x0a6 */
+#define LONGJMP_t8 167 /* 0x0a7 */
+#define LONGJMP_tb_pb 332 /* 0x14c */
+#define LONGJMP_tb_p8 333 /* 0x14d */
+#define LONGJMP_t8_pb 334 /* 0x14e */
+#define LONGJMP_t8_p8 335 /* 0x14f */
+
+#define BRANCHJ 84 /* 0x54 BRANCH with long
+ offset. */
+#define BRANCHJ_tb 168 /* 0x0a8 */
+#define BRANCHJ_t8 169 /* 0x0a9 */
+#define BRANCHJ_tb_pb 336 /* 0x150 */
+#define BRANCHJ_tb_p8 337 /* 0x151 */
+#define BRANCHJ_t8_pb 338 /* 0x152 */
+#define BRANCHJ_t8_p8 339 /* 0x153 */
+
+#define IFMATCH 85 /* 0x55 Succeeds if the
+ following matches; non-zero
+ flags "f", next_off "o"
+ means lookbehind assertion
+ starting "f..(f-o)"
+ characters before current */
+#define IFMATCH_tb 170 /* 0x0aa */
+#define IFMATCH_t8 171 /* 0x0ab */
+#define IFMATCH_tb_pb 340 /* 0x154 */
+#define IFMATCH_tb_p8 341 /* 0x155 */
+#define IFMATCH_t8_pb 342 /* 0x156 */
+#define IFMATCH_t8_p8 343 /* 0x157 */
+
+#define UNLESSM 86 /* 0x56 Fails if the following
+ matches; non-zero flags "f",
+ next_off "o" means
+ lookbehind assertion
+ starting "f..(f-o)"
+ characters before current */
+#define UNLESSM_tb 172 /* 0x0ac */
+#define UNLESSM_t8 173 /* 0x0ad */
+#define UNLESSM_tb_pb 344 /* 0x158 */
+#define UNLESSM_tb_p8 345 /* 0x159 */
+#define UNLESSM_t8_pb 346 /* 0x15a */
+#define UNLESSM_t8_p8 347 /* 0x15b */
+
+#define SUSPEND 87 /* 0x57 "Independent" sub-RE.
+ */
+#define SUSPEND_tb 174 /* 0x0ae */
+#define SUSPEND_t8 175 /* 0x0af */
+#define SUSPEND_tb_pb 348 /* 0x15c */
+#define SUSPEND_tb_p8 349 /* 0x15d */
+#define SUSPEND_t8_pb 350 /* 0x15e */
+#define SUSPEND_t8_p8 351 /* 0x15f */
+
+#define IFTHEN 88 /* 0x58 Switch, should be
+ preceded by switcher. */
+#define IFTHEN_tb 176 /* 0x0b0 */
+#define IFTHEN_t8 177 /* 0x0b1 */
+#define IFTHEN_tb_pb 352 /* 0x160 */
+#define IFTHEN_tb_p8 353 /* 0x161 */
+#define IFTHEN_t8_pb 354 /* 0x162 */
+#define IFTHEN_t8_p8 355 /* 0x163 */
+
+#define GROUPP 89 /* 0x59 Whether the group
+ matched. */
+#define GROUPP_tb 178 /* 0x0b2 */
+#define GROUPP_t8 179 /* 0x0b3 */
+#define GROUPP_tb_pb 356 /* 0x164 */
+#define GROUPP_tb_p8 357 /* 0x165 */
+#define GROUPP_t8_pb 358 /* 0x166 */
+#define GROUPP_t8_p8 359 /* 0x167 */
+
+#define EVAL 90 /* 0x5a Execute some Perl code.
+ */
+#define EVAL_tb 180 /* 0x0b4 */
+#define EVAL_t8 181 /* 0x0b5 */
+#define EVAL_tb_pb 360 /* 0x168 */
+#define EVAL_tb_p8 361 /* 0x169 */
+#define EVAL_t8_pb 362 /* 0x16a */
+#define EVAL_t8_p8 363 /* 0x16b */
+
+#define MINMOD 91 /* 0x5b Next operator is not
+ greedy. */
+#define MINMOD_tb 182 /* 0x0b6 */
+#define MINMOD_t8 183 /* 0x0b7 */
+#define MINMOD_tb_pb 364 /* 0x16c */
+#define MINMOD_tb_p8 365 /* 0x16d */
+#define MINMOD_t8_pb 366 /* 0x16e */
+#define MINMOD_t8_p8 367 /* 0x16f */
+
+#define LOGICAL 92 /* 0x5c Next opcode should set
+ the flag only. */
+#define LOGICAL_tb 184 /* 0x0b8 */
+#define LOGICAL_t8 185 /* 0x0b9 */
+#define LOGICAL_tb_pb 368 /* 0x170 */
+#define LOGICAL_tb_p8 369 /* 0x171 */
+#define LOGICAL_t8_pb 370 /* 0x172 */
+#define LOGICAL_t8_p8 371 /* 0x173 */
+
+#define RENUM 93 /* 0x5d Group with
+ independently numbered
+ parens. */
+#define RENUM_tb 186 /* 0x0ba */
+#define RENUM_t8 187 /* 0x0bb */
+#define RENUM_tb_pb 372 /* 0x174 */
+#define RENUM_tb_p8 373 /* 0x175 */
+#define RENUM_t8_pb 374 /* 0x176 */
+#define RENUM_t8_p8 375 /* 0x177 */
+
+#define GOSUB 94 /* 0x5e recurse to paren arg1
+ at (signed) ofs arg2 */
+#define GOSUB_tb 188 /* 0x0bc */
+#define GOSUB_t8 189 /* 0x0bd */
+#define GOSUB_tb_pb 376 /* 0x178 */
+#define GOSUB_tb_p8 377 /* 0x179 */
+#define GOSUB_t8_pb 378 /* 0x17a */
+#define GOSUB_t8_p8 379 /* 0x17b */
+
+#define GROUPPN 95 /* 0x5f Whether the group
+ matched. */
+#define GROUPPN_tb 190 /* 0x0be */
+#define GROUPPN_t8 191 /* 0x0bf */
+#define GROUPPN_tb_pb 380 /* 0x17c */
+#define GROUPPN_tb_p8 381 /* 0x17d */
+#define GROUPPN_t8_pb 382 /* 0x17e */
+#define GROUPPN_t8_p8 383 /* 0x17f */
+
+#define INSUBP 96 /* 0x60 Whether we are in a
+ specific recurse. */
+#define INSUBP_tb 192 /* 0x0c0 */
+#define INSUBP_t8 193 /* 0x0c1 */
+#define INSUBP_tb_pb 384 /* 0x180 */
+#define INSUBP_tb_p8 385 /* 0x181 */
+#define INSUBP_t8_pb 386 /* 0x182 */
+#define INSUBP_t8_p8 387 /* 0x183 */
+
+#define DEFINEP 97 /* 0x61 Never execute directly.
+ */
+#define DEFINEP_tb 194 /* 0x0c2 */
+#define DEFINEP_t8 195 /* 0x0c3 */
+#define DEFINEP_tb_pb 388 /* 0x184 */
+#define DEFINEP_tb_p8 389 /* 0x185 */
+#define DEFINEP_t8_pb 390 /* 0x186 */
+#define DEFINEP_t8_p8 391 /* 0x187 */
+
+#define ENDLIKE 98 /* 0x62 Used only for the type
+ field of verbs */
+#define ENDLIKE_tb 196 /* 0x0c4 */
+#define ENDLIKE_t8 197 /* 0x0c5 */
+#define ENDLIKE_tb_pb 392 /* 0x188 */
+#define ENDLIKE_tb_p8 393 /* 0x189 */
+#define ENDLIKE_t8_pb 394 /* 0x18a */
+#define ENDLIKE_t8_p8 395 /* 0x18b */
+
+#define OPFAIL 99 /* 0x63 Same as (?!), but with
+ verb arg */
+#define OPFAIL_tb 198 /* 0x0c6 */
+#define OPFAIL_t8 199 /* 0x0c7 */
+#define OPFAIL_tb_pb 396 /* 0x18c */
+#define OPFAIL_tb_p8 397 /* 0x18d */
+#define OPFAIL_t8_pb 398 /* 0x18e */
+#define OPFAIL_t8_p8 399 /* 0x18f */
+
+#define ACCEPT 100 /* 0x64 Accepts the current
+ matched string, with verbar
+ */
+#define ACCEPT_tb 200 /* 0x0c8 */
+#define ACCEPT_t8 201 /* 0x0c9 */
+#define ACCEPT_tb_pb 400 /* 0x190 */
+#define ACCEPT_tb_p8 401 /* 0x191 */
+#define ACCEPT_t8_pb 402 /* 0x192 */
+#define ACCEPT_t8_p8 403 /* 0x193 */
+
+#define VERB 101 /* 0x65 Used only for the type
+ field of verbs */
+#define VERB_tb 202 /* 0x0ca */
+#define VERB_t8 203 /* 0x0cb */
+#define VERB_tb_pb 404 /* 0x194 */
+#define VERB_tb_p8 405 /* 0x195 */
+#define VERB_t8_pb 406 /* 0x196 */
+#define VERB_t8_p8 407 /* 0x197 */
+
+#define PRUNE 102 /* 0x66 Pattern fails at this
+ startpoint if
+ no-backtracking through this
+ */
+#define PRUNE_tb 204 /* 0x0cc */
+#define PRUNE_t8 205 /* 0x0cd */
+#define PRUNE_tb_pb 408 /* 0x198 */
+#define PRUNE_tb_p8 409 /* 0x199 */
+#define PRUNE_t8_pb 410 /* 0x19a */
+#define PRUNE_t8_p8 411 /* 0x19b */
+
+#define MARKPOINT 103 /* 0x67 Push the current
+ location for rollback by
+ cut. */
+#define MARKPOINT_tb 206 /* 0x0ce */
+#define MARKPOINT_t8 207 /* 0x0cf */
+#define MARKPOINT_tb_pb 412 /* 0x19c */
+#define MARKPOINT_tb_p8 413 /* 0x19d */
+#define MARKPOINT_t8_pb 414 /* 0x19e */
+#define MARKPOINT_t8_p8 415 /* 0x19f */
+
+#define SKIP 104 /* 0x68 On failure skip forward
+ (to the mark) before
+ retrying */
+#define SKIP_tb 208 /* 0x0d0 */
+#define SKIP_t8 209 /* 0x0d1 */
+#define SKIP_tb_pb 416 /* 0x1a0 */
+#define SKIP_tb_p8 417 /* 0x1a1 */
+#define SKIP_t8_pb 418 /* 0x1a2 */
+#define SKIP_t8_p8 419 /* 0x1a3 */
+
+#define COMMIT 105 /* 0x69 Pattern fails outright
+ if backtracking through this
+ */
+#define COMMIT_tb 210 /* 0x0d2 */
+#define COMMIT_t8 211 /* 0x0d3 */
+#define COMMIT_tb_pb 420 /* 0x1a4 */
+#define COMMIT_tb_p8 421 /* 0x1a5 */
+#define COMMIT_t8_pb 422 /* 0x1a6 */
+#define COMMIT_t8_p8 423 /* 0x1a7 */
+
+#define CUTGROUP 106 /* 0x6a On failure go to the
+ next alternation in the
+ group */
+#define CUTGROUP_tb 212 /* 0x0d4 */
+#define CUTGROUP_t8 213 /* 0x0d5 */
+#define CUTGROUP_tb_pb 424 /* 0x1a8 */
+#define CUTGROUP_tb_p8 425 /* 0x1a9 */
+#define CUTGROUP_t8_pb 426 /* 0x1aa */
+#define CUTGROUP_t8_p8 427 /* 0x1ab */
+
+#define KEEPS 107 /* 0x6b $& begins here. */
+#define KEEPS_tb 214 /* 0x0d6 */
+#define KEEPS_t8 215 /* 0x0d7 */
+#define KEEPS_tb_pb 428 /* 0x1ac */
+#define KEEPS_tb_p8 429 /* 0x1ad */
+#define KEEPS_t8_pb 430 /* 0x1ae */
+#define KEEPS_t8_p8 431 /* 0x1af */
+
+#define LOOKBEHIND_END 108 /* 0x6c Return from lookbehind
+ (IFMATCH/UNLESSM) and
+ validate position */
+#define LOOKBEHIND_END_tb 216 /* 0x0d8 */
+#define LOOKBEHIND_END_t8 217 /* 0x0d9 */
+#define LOOKBEHIND_END_tb_pb 432 /* 0x1b0 */
+#define LOOKBEHIND_END_tb_p8 433 /* 0x1b1 */
+#define LOOKBEHIND_END_t8_pb 434 /* 0x1b2 */
+#define LOOKBEHIND_END_t8_p8 435 /* 0x1b3 */
+
+#define OPTIMIZED 109 /* 0x6d Placeholder for dump.
+ */
+#define OPTIMIZED_tb 218 /* 0x0da */
+#define OPTIMIZED_t8 219 /* 0x0db */
+#define OPTIMIZED_tb_pb 436 /* 0x1b4 */
+#define OPTIMIZED_tb_p8 437 /* 0x1b5 */
+#define OPTIMIZED_t8_pb 438 /* 0x1b6 */
+#define OPTIMIZED_t8_p8 439 /* 0x1b7 */
+
+#define PSEUDO 110 /* 0x6e Pseudo opcode for
+ internal use. */
+#define PSEUDO_tb 220 /* 0x0dc */
+#define PSEUDO_t8 221 /* 0x0dd */
+#define PSEUDO_tb_pb 440 /* 0x1b8 */
+#define PSEUDO_tb_p8 441 /* 0x1b9 */
+#define PSEUDO_t8_pb 442 /* 0x1ba */
+#define PSEUDO_t8_p8 443 /* 0x1bb */
+
+#define REGEX_SET 111 /* 0x6f Regex set, temporary
+ node used in
+ pre-optimization compilation
+ */
+#define REGEX_SET_tb 222 /* 0x0de */
+#define REGEX_SET_t8 223 /* 0x0df */
+#define REGEX_SET_tb_pb 444 /* 0x1bc */
+#define REGEX_SET_tb_p8 445 /* 0x1bd */
+#define REGEX_SET_t8_pb 446 /* 0x1be */
+#define REGEX_SET_t8_p8 447 /* 0x1bf */
-#ifndef DOINIT
-EXTCONST U8 PL_regkind[];
-#else
-EXTCONST U8 PL_regkind[] = {
- END, /* END */
- END, /* SUCCEED */
- BOL, /* SBOL */
- BOL, /* MBOL */
- EOL, /* SEOL */
- EOL, /* MEOL */
- EOL, /* EOS */
- GPOS, /* GPOS */
- BOUND, /* BOUND */
- BOUND, /* BOUNDL */
- BOUND, /* BOUNDU */
- BOUND, /* BOUNDA */
- NBOUND, /* NBOUND */
- NBOUND, /* NBOUNDL */
- NBOUND, /* NBOUNDU */
- NBOUND, /* NBOUNDA */
- REG_ANY, /* REG_ANY */
- REG_ANY, /* SANY */
- ANYOF, /* ANYOF */
- ANYOF, /* ANYOFD */
- ANYOF, /* ANYOFL */
- ANYOF, /* ANYOFPOSIXL */
- ANYOF, /* ANYOFH */
- ANYOF, /* ANYOFHb */
- ANYOF, /* ANYOFHr */
- ANYOF, /* ANYOFHs */
- ANYOFR, /* ANYOFR */
- ANYOFR, /* ANYOFRb */
- ANYOFM, /* ANYOFM */
- ANYOFM, /* NANYOFM */
- POSIXD, /* POSIXD */
- POSIXD, /* POSIXL */
- POSIXD, /* POSIXU */
- POSIXD, /* POSIXA */
- NPOSIXD, /* NPOSIXD */
- NPOSIXD, /* NPOSIXL */
- NPOSIXD, /* NPOSIXU */
- NPOSIXD, /* NPOSIXA */
- CLUMP, /* CLUMP */
- BRANCH, /* BRANCH */
- EXACT, /* EXACT */
- EXACT, /* LEXACT */
- EXACT, /* EXACTL */
- EXACT, /* EXACTF */
- EXACT, /* EXACTFL */
- EXACT, /* EXACTFU */
- EXACT, /* EXACTFAA */
- EXACT, /* EXACTFAA_NO_TRIE */
- EXACT, /* EXACTFUP */
- EXACT, /* EXACTFLU8 */
- EXACT, /* EXACT_REQ8 */
- EXACT, /* LEXACT_REQ8 */
- EXACT, /* EXACTFU_REQ8 */
- EXACT, /* EXACTFU_S_EDGE */
- LNBREAK, /* LNBREAK */
- TRIE, /* TRIE */
- TRIE, /* TRIEC */
- TRIE, /* AHOCORASICK */
- TRIE, /* AHOCORASICKC */
- NOTHING, /* NOTHING */
- NOTHING, /* TAIL */
- STAR, /* STAR */
- PLUS, /* PLUS */
- CURLY, /* CURLY */
- CURLY, /* CURLYN */
- CURLY, /* CURLYM */
- CURLY, /* CURLYX */
- WHILEM, /* WHILEM */
- OPEN, /* OPEN */
- CLOSE, /* CLOSE */
- SROPEN, /* SROPEN */
- SRCLOSE, /* SRCLOSE */
- REF, /* REF */
- REF, /* REFF */
- REF, /* REFFL */
- REF, /* REFFU */
- REF, /* REFFA */
- REF, /* REFN */
- REF, /* REFFN */
- REF, /* REFFLN */
- REF, /* REFFUN */
- REF, /* REFFAN */
- LONGJMP, /* LONGJMP */
- BRANCHJ, /* BRANCHJ */
- BRANCHJ, /* IFMATCH */
- BRANCHJ, /* UNLESSM */
- BRANCHJ, /* SUSPEND */
- BRANCHJ, /* IFTHEN */
- GROUPP, /* GROUPP */
- EVAL, /* EVAL */
- MINMOD, /* MINMOD */
- LOGICAL, /* LOGICAL */
- BRANCHJ, /* RENUM */
- GOSUB, /* GOSUB */
- GROUPPN, /* GROUPPN */
- INSUBP, /* INSUBP */
- DEFINEP, /* DEFINEP */
- ENDLIKE, /* ENDLIKE */
- ENDLIKE, /* OPFAIL */
- ENDLIKE, /* ACCEPT */
- VERB, /* VERB */
- VERB, /* PRUNE */
- VERB, /* MARKPOINT */
- VERB, /* SKIP */
- VERB, /* COMMIT */
- VERB, /* CUTGROUP */
- KEEPS, /* KEEPS */
- NOTHING, /* OPTIMIZED */
- PSEUDO, /* PSEUDO */
- REGEX_SET, /* REGEX_SET */
/* ------------ States ------------- */
- TRIE, /* TRIE_next */
- TRIE, /* TRIE_next_fail */
- EVAL, /* EVAL_B */
- EVAL, /* EVAL_B_fail */
- EVAL, /* EVAL_postponed_AB */
- EVAL, /* EVAL_postponed_AB_fail */
- CURLYX, /* CURLYX_end */
- CURLYX, /* CURLYX_end_fail */
- WHILEM, /* WHILEM_A_pre */
- WHILEM, /* WHILEM_A_pre_fail */
- WHILEM, /* WHILEM_A_min */
- WHILEM, /* WHILEM_A_min_fail */
- WHILEM, /* WHILEM_A_max */
- WHILEM, /* WHILEM_A_max_fail */
- WHILEM, /* WHILEM_B_min */
- WHILEM, /* WHILEM_B_min_fail */
- WHILEM, /* WHILEM_B_max */
- WHILEM, /* WHILEM_B_max_fail */
- BRANCH, /* BRANCH_next */
- BRANCH, /* BRANCH_next_fail */
- CURLYM, /* CURLYM_A */
- CURLYM, /* CURLYM_A_fail */
- CURLYM, /* CURLYM_B */
- CURLYM, /* CURLYM_B_fail */
- IFMATCH, /* IFMATCH_A */
- IFMATCH, /* IFMATCH_A_fail */
- CURLY, /* CURLY_B_min */
- CURLY, /* CURLY_B_min_fail */
- CURLY, /* CURLY_B_max */
- CURLY, /* CURLY_B_max_fail */
- COMMIT, /* COMMIT_next */
- COMMIT, /* COMMIT_next_fail */
- MARKPOINT, /* MARKPOINT_next */
- MARKPOINT, /* MARKPOINT_next_fail */
- SKIP, /* SKIP_next */
- SKIP, /* SKIP_next_fail */
- CUTGROUP, /* CUTGROUP_next */
- CUTGROUP, /* CUTGROUP_next_fail */
- KEEPS, /* KEEPS_next */
- KEEPS, /* KEEPS_next_fail */
-};
-#endif
-
-#ifdef REG_COMP_C
-
-/* regarglen[] - How large is the argument part of the node (in regnodes) */
-
-static const U8 regarglen[] = {
- 0, /* END */
- 0, /* SUCCEED */
- 0, /* SBOL */
- 0, /* MBOL */
- 0, /* SEOL */
- 0, /* MEOL */
- 0, /* EOS */
- 0, /* GPOS */
- 0, /* BOUND */
- 0, /* BOUNDL */
- 0, /* BOUNDU */
- 0, /* BOUNDA */
- 0, /* NBOUND */
- 0, /* NBOUNDL */
- 0, /* NBOUNDU */
- 0, /* NBOUNDA */
- 0, /* REG_ANY */
- 0, /* SANY */
- EXTRA_SIZE(struct regnode_charclass), /* ANYOF */
- EXTRA_SIZE(struct regnode_charclass), /* ANYOFD */
- EXTRA_SIZE(struct regnode_charclass), /* ANYOFL */
- EXTRA_SIZE(struct regnode_charclass_posixl), /* ANYOFPOSIXL */
- EXTRA_SIZE(struct regnode_1), /* ANYOFH */
- EXTRA_SIZE(struct regnode_1), /* ANYOFHb */
- EXTRA_SIZE(struct regnode_1), /* ANYOFHr */
- EXTRA_SIZE(struct regnode_1), /* ANYOFHs */
- EXTRA_SIZE(struct regnode_1), /* ANYOFR */
- EXTRA_SIZE(struct regnode_1), /* ANYOFRb */
- EXTRA_SIZE(struct regnode_1), /* ANYOFM */
- EXTRA_SIZE(struct regnode_1), /* NANYOFM */
- 0, /* POSIXD */
- 0, /* POSIXL */
- 0, /* POSIXU */
- 0, /* POSIXA */
- 0, /* NPOSIXD */
- 0, /* NPOSIXL */
- 0, /* NPOSIXU */
- 0, /* NPOSIXA */
- 0, /* CLUMP */
- 0, /* BRANCH */
- 0, /* EXACT */
- EXTRA_SIZE(struct regnode_1), /* LEXACT */
- 0, /* EXACTL */
- 0, /* EXACTF */
- 0, /* EXACTFL */
- 0, /* EXACTFU */
- 0, /* EXACTFAA */
- 0, /* EXACTFAA_NO_TRIE */
- 0, /* EXACTFUP */
- 0, /* EXACTFLU8 */
- 0, /* EXACT_REQ8 */
- EXTRA_SIZE(struct regnode_1), /* LEXACT_REQ8 */
- 0, /* EXACTFU_REQ8 */
- 0, /* EXACTFU_S_EDGE */
- 0, /* LNBREAK */
- EXTRA_SIZE(struct regnode_1), /* TRIE */
- EXTRA_SIZE(struct regnode_charclass), /* TRIEC */
- EXTRA_SIZE(struct regnode_1), /* AHOCORASICK */
- EXTRA_SIZE(struct regnode_charclass), /* AHOCORASICKC */
- 0, /* NOTHING */
- 0, /* TAIL */
- 0, /* STAR */
- 0, /* PLUS */
- EXTRA_SIZE(struct regnode_2), /* CURLY */
- EXTRA_SIZE(struct regnode_2), /* CURLYN */
- EXTRA_SIZE(struct regnode_2), /* CURLYM */
- EXTRA_SIZE(struct regnode_2), /* CURLYX */
- 0, /* WHILEM */
- EXTRA_SIZE(struct regnode_1), /* OPEN */
- EXTRA_SIZE(struct regnode_1), /* CLOSE */
- 0, /* SROPEN */
- 0, /* SRCLOSE */
- EXTRA_SIZE(struct regnode_1), /* REF */
- EXTRA_SIZE(struct regnode_1), /* REFF */
- EXTRA_SIZE(struct regnode_1), /* REFFL */
- EXTRA_SIZE(struct regnode_1), /* REFFU */
- EXTRA_SIZE(struct regnode_1), /* REFFA */
- EXTRA_SIZE(struct regnode_1), /* REFN */
- EXTRA_SIZE(struct regnode_1), /* REFFN */
- EXTRA_SIZE(struct regnode_1), /* REFFLN */
- EXTRA_SIZE(struct regnode_1), /* REFFUN */
- EXTRA_SIZE(struct regnode_1), /* REFFAN */
- 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_2L), /* EVAL */
- 0, /* MINMOD */
- 0, /* LOGICAL */
- EXTRA_SIZE(struct regnode_1), /* RENUM */
- EXTRA_SIZE(struct regnode_2L), /* GOSUB */
- EXTRA_SIZE(struct regnode_1), /* GROUPPN */
- EXTRA_SIZE(struct regnode_1), /* INSUBP */
- EXTRA_SIZE(struct regnode_1), /* DEFINEP */
- 0, /* ENDLIKE */
- EXTRA_SIZE(struct regnode_1), /* OPFAIL */
- EXTRA_SIZE(struct regnode_2L), /* ACCEPT */
- EXTRA_SIZE(struct regnode_1), /* VERB */
- EXTRA_SIZE(struct regnode_1), /* PRUNE */
- EXTRA_SIZE(struct regnode_1), /* MARKPOINT */
- EXTRA_SIZE(struct regnode_1), /* SKIP */
- EXTRA_SIZE(struct regnode_1), /* COMMIT */
- EXTRA_SIZE(struct regnode_1), /* CUTGROUP */
- 0, /* KEEPS */
- 0, /* OPTIMIZED */
- 0, /* PSEUDO */
- EXTRA_SIZE(struct regnode_p), /* REGEX_SET */
-};
-
-/* reg_off_by_arg[] - Which argument holds the offset to the next node */
-
-static const char reg_off_by_arg[] = {
- 0, /* END */
- 0, /* SUCCEED */
- 0, /* SBOL */
- 0, /* MBOL */
- 0, /* SEOL */
- 0, /* MEOL */
- 0, /* EOS */
- 0, /* GPOS */
- 0, /* BOUND */
- 0, /* BOUNDL */
- 0, /* BOUNDU */
- 0, /* BOUNDA */
- 0, /* NBOUND */
- 0, /* NBOUNDL */
- 0, /* NBOUNDU */
- 0, /* NBOUNDA */
- 0, /* REG_ANY */
- 0, /* SANY */
- 0, /* ANYOF */
- 0, /* ANYOFD */
- 0, /* ANYOFL */
- 0, /* ANYOFPOSIXL */
- 0, /* ANYOFH */
- 0, /* ANYOFHb */
- 0, /* ANYOFHr */
- 0, /* ANYOFHs */
- 0, /* ANYOFR */
- 0, /* ANYOFRb */
- 0, /* ANYOFM */
- 0, /* NANYOFM */
- 0, /* POSIXD */
- 0, /* POSIXL */
- 0, /* POSIXU */
- 0, /* POSIXA */
- 0, /* NPOSIXD */
- 0, /* NPOSIXL */
- 0, /* NPOSIXU */
- 0, /* NPOSIXA */
- 0, /* CLUMP */
- 0, /* BRANCH */
- 0, /* EXACT */
- 0, /* LEXACT */
- 0, /* EXACTL */
- 0, /* EXACTF */
- 0, /* EXACTFL */
- 0, /* EXACTFU */
- 0, /* EXACTFAA */
- 0, /* EXACTFAA_NO_TRIE */
- 0, /* EXACTFUP */
- 0, /* EXACTFLU8 */
- 0, /* EXACT_REQ8 */
- 0, /* LEXACT_REQ8 */
- 0, /* EXACTFU_REQ8 */
- 0, /* EXACTFU_S_EDGE */
- 0, /* LNBREAK */
- 0, /* TRIE */
- 0, /* TRIEC */
- 0, /* AHOCORASICK */
- 0, /* AHOCORASICKC */
- 0, /* NOTHING */
- 0, /* TAIL */
- 0, /* STAR */
- 0, /* PLUS */
- 0, /* CURLY */
- 0, /* CURLYN */
- 0, /* CURLYM */
- 0, /* CURLYX */
- 0, /* WHILEM */
- 0, /* OPEN */
- 0, /* CLOSE */
- 0, /* SROPEN */
- 0, /* SRCLOSE */
- 0, /* REF */
- 0, /* REFF */
- 0, /* REFFL */
- 0, /* REFFU */
- 0, /* REFFA */
- 0, /* REFN */
- 0, /* REFFN */
- 0, /* REFFLN */
- 0, /* REFFUN */
- 0, /* REFFAN */
- 1, /* LONGJMP */
- 1, /* BRANCHJ */
- 1, /* IFMATCH */
- 1, /* UNLESSM */
- 1, /* SUSPEND */
- 1, /* IFTHEN */
- 0, /* GROUPP */
- 0, /* EVAL */
- 0, /* MINMOD */
- 0, /* LOGICAL */
- 1, /* RENUM */
- 0, /* GOSUB */
- 0, /* GROUPPN */
- 0, /* INSUBP */
- 0, /* DEFINEP */
- 0, /* ENDLIKE */
- 0, /* OPFAIL */
- 0, /* ACCEPT */
- 0, /* VERB */
- 0, /* PRUNE */
- 0, /* MARKPOINT */
- 0, /* SKIP */
- 0, /* COMMIT */
- 0, /* CUTGROUP */
- 0, /* KEEPS */
- 0, /* OPTIMIZED */
- 0, /* PSEUDO */
- 0, /* REGEX_SET */
-};
-
-#endif /* REG_COMP_C */
-
-
-/* reg_name[] - Opcode/state names in string form, for debugging */
+#define TRIE_next 112 /* 0x70 state for TRIE */
+#define TRIE_next_tb 224 /* 0x0e0 */
+#define TRIE_next_t8 225 /* 0x0e1 */
+#define TRIE_next_tb_pb 448 /* 0x1c0 */
+#define TRIE_next_tb_p8 449 /* 0x1c1 */
+#define TRIE_next_t8_pb 450 /* 0x1c2 */
+#define TRIE_next_t8_p8 451 /* 0x1c3 */
+
+#define TRIE_next_fail 113 /* 0x71 state for TRIE */
+#define TRIE_next_fail_tb 226 /* 0x0e2 */
+#define TRIE_next_fail_t8 227 /* 0x0e3 */
+#define TRIE_next_fail_tb_pb 452 /* 0x1c4 */
+#define TRIE_next_fail_tb_p8 453 /* 0x1c5 */
+#define TRIE_next_fail_t8_pb 454 /* 0x1c6 */
+#define TRIE_next_fail_t8_p8 455 /* 0x1c7 */
+
+#define EVAL_B 114 /* 0x72 state for EVAL */
+#define EVAL_B_tb 228 /* 0x0e4 */
+#define EVAL_B_t8 229 /* 0x0e5 */
+#define EVAL_B_tb_pb 456 /* 0x1c8 */
+#define EVAL_B_tb_p8 457 /* 0x1c9 */
+#define EVAL_B_t8_pb 458 /* 0x1ca */
+#define EVAL_B_t8_p8 459 /* 0x1cb */
+
+#define EVAL_B_fail 115 /* 0x73 state for EVAL */
+#define EVAL_B_fail_tb 230 /* 0x0e6 */
+#define EVAL_B_fail_t8 231 /* 0x0e7 */
+#define EVAL_B_fail_tb_pb 460 /* 0x1cc */
+#define EVAL_B_fail_tb_p8 461 /* 0x1cd */
+#define EVAL_B_fail_t8_pb 462 /* 0x1ce */
+#define EVAL_B_fail_t8_p8 463 /* 0x1cf */
+
+#define EVAL_postponed_AB 116 /* 0x74 state for EVAL */
+#define EVAL_postponed_AB_tb 232 /* 0x0e8 */
+#define EVAL_postponed_AB_t8 233 /* 0x0e9 */
+#define EVAL_postponed_AB_tb_pb 464 /* 0x1d0 */
+#define EVAL_postponed_AB_tb_p8 465 /* 0x1d1 */
+#define EVAL_postponed_AB_t8_pb 466 /* 0x1d2 */
+#define EVAL_postponed_AB_t8_p8 467 /* 0x1d3 */
+
+#define EVAL_postponed_AB_fail 117 /* 0x75 state for EVAL */
+#define EVAL_postponed_AB_fail_tb 234 /* 0x0ea */
+#define EVAL_postponed_AB_fail_t8 235 /* 0x0eb */
+#define EVAL_postponed_AB_fail_tb_pb 468 /* 0x1d4 */
+#define EVAL_postponed_AB_fail_tb_p8 469 /* 0x1d5 */
+#define EVAL_postponed_AB_fail_t8_pb 470 /* 0x1d6 */
+#define EVAL_postponed_AB_fail_t8_p8 471 /* 0x1d7 */
+
+#define CURLYX_end 118 /* 0x76 state for CURLYX */
+#define CURLYX_end_tb 236 /* 0x0ec */
+#define CURLYX_end_t8 237 /* 0x0ed */
+#define CURLYX_end_tb_pb 472 /* 0x1d8 */
+#define CURLYX_end_tb_p8 473 /* 0x1d9 */
+#define CURLYX_end_t8_pb 474 /* 0x1da */
+#define CURLYX_end_t8_p8 475 /* 0x1db */
+
+#define CURLYX_end_fail 119 /* 0x77 state for CURLYX */
+#define CURLYX_end_fail_tb 238 /* 0x0ee */
+#define CURLYX_end_fail_t8 239 /* 0x0ef */
+#define CURLYX_end_fail_tb_pb 476 /* 0x1dc */
+#define CURLYX_end_fail_tb_p8 477 /* 0x1dd */
+#define CURLYX_end_fail_t8_pb 478 /* 0x1de */
+#define CURLYX_end_fail_t8_p8 479 /* 0x1df */
+
+#define WHILEM_A_pre 120 /* 0x78 state for WHILEM */
+#define WHILEM_A_pre_tb 240 /* 0x0f0 */
+#define WHILEM_A_pre_t8 241 /* 0x0f1 */
+#define WHILEM_A_pre_tb_pb 480 /* 0x1e0 */
+#define WHILEM_A_pre_tb_p8 481 /* 0x1e1 */
+#define WHILEM_A_pre_t8_pb 482 /* 0x1e2 */
+#define WHILEM_A_pre_t8_p8 483 /* 0x1e3 */
+
+#define WHILEM_A_pre_fail 121 /* 0x79 state for WHILEM */
+#define WHILEM_A_pre_fail_tb 242 /* 0x0f2 */
+#define WHILEM_A_pre_fail_t8 243 /* 0x0f3 */
+#define WHILEM_A_pre_fail_tb_pb 484 /* 0x1e4 */
+#define WHILEM_A_pre_fail_tb_p8 485 /* 0x1e5 */
+#define WHILEM_A_pre_fail_t8_pb 486 /* 0x1e6 */
+#define WHILEM_A_pre_fail_t8_p8 487 /* 0x1e7 */
+
+#define WHILEM_A_min 122 /* 0x7a state for WHILEM */
+#define WHILEM_A_min_tb 244 /* 0x0f4 */
+#define WHILEM_A_min_t8 245 /* 0x0f5 */
+#define WHILEM_A_min_tb_pb 488 /* 0x1e8 */
+#define WHILEM_A_min_tb_p8 489 /* 0x1e9 */
+#define WHILEM_A_min_t8_pb 490 /* 0x1ea */
+#define WHILEM_A_min_t8_p8 491 /* 0x1eb */
+
+#define WHILEM_A_min_fail 123 /* 0x7b state for WHILEM */
+#define WHILEM_A_min_fail_tb 246 /* 0x0f6 */
+#define WHILEM_A_min_fail_t8 247 /* 0x0f7 */
+#define WHILEM_A_min_fail_tb_pb 492 /* 0x1ec */
+#define WHILEM_A_min_fail_tb_p8 493 /* 0x1ed */
+#define WHILEM_A_min_fail_t8_pb 494 /* 0x1ee */
+#define WHILEM_A_min_fail_t8_p8 495 /* 0x1ef */
+
+#define WHILEM_A_max 124 /* 0x7c state for WHILEM */
+#define WHILEM_A_max_tb 248 /* 0x0f8 */
+#define WHILEM_A_max_t8 249 /* 0x0f9 */
+#define WHILEM_A_max_tb_pb 496 /* 0x1f0 */
+#define WHILEM_A_max_tb_p8 497 /* 0x1f1 */
+#define WHILEM_A_max_t8_pb 498 /* 0x1f2 */
+#define WHILEM_A_max_t8_p8 499 /* 0x1f3 */
+
+#define WHILEM_A_max_fail 125 /* 0x7d state for WHILEM */
+#define WHILEM_A_max_fail_tb 250 /* 0x0fa */
+#define WHILEM_A_max_fail_t8 251 /* 0x0fb */
+#define WHILEM_A_max_fail_tb_pb 500 /* 0x1f4 */
+#define WHILEM_A_max_fail_tb_p8 501 /* 0x1f5 */
+#define WHILEM_A_max_fail_t8_pb 502 /* 0x1f6 */
+#define WHILEM_A_max_fail_t8_p8 503 /* 0x1f7 */
+
+#define WHILEM_B_min 126 /* 0x7e state for WHILEM */
+#define WHILEM_B_min_tb 252 /* 0x0fc */
+#define WHILEM_B_min_t8 253 /* 0x0fd */
+#define WHILEM_B_min_tb_pb 504 /* 0x1f8 */
+#define WHILEM_B_min_tb_p8 505 /* 0x1f9 */
+#define WHILEM_B_min_t8_pb 506 /* 0x1fa */
+#define WHILEM_B_min_t8_p8 507 /* 0x1fb */
+
+#define WHILEM_B_min_fail 127 /* 0x7f state for WHILEM */
+#define WHILEM_B_min_fail_tb 254 /* 0x0fe */
+#define WHILEM_B_min_fail_t8 255 /* 0x0ff */
+#define WHILEM_B_min_fail_tb_pb 508 /* 0x1fc */
+#define WHILEM_B_min_fail_tb_p8 509 /* 0x1fd */
+#define WHILEM_B_min_fail_t8_pb 510 /* 0x1fe */
+#define WHILEM_B_min_fail_t8_p8 511 /* 0x1ff */
+
+#define WHILEM_B_max 128 /* 0x80 state for WHILEM */
+#define WHILEM_B_max_tb 256 /* 0x100 */
+#define WHILEM_B_max_t8 257 /* 0x101 */
+#define WHILEM_B_max_tb_pb 512 /* 0x200 */
+#define WHILEM_B_max_tb_p8 513 /* 0x201 */
+#define WHILEM_B_max_t8_pb 514 /* 0x202 */
+#define WHILEM_B_max_t8_p8 515 /* 0x203 */
+
+#define WHILEM_B_max_fail 129 /* 0x81 state for WHILEM */
+#define WHILEM_B_max_fail_tb 258 /* 0x102 */
+#define WHILEM_B_max_fail_t8 259 /* 0x103 */
+#define WHILEM_B_max_fail_tb_pb 516 /* 0x204 */
+#define WHILEM_B_max_fail_tb_p8 517 /* 0x205 */
+#define WHILEM_B_max_fail_t8_pb 518 /* 0x206 */
+#define WHILEM_B_max_fail_t8_p8 519 /* 0x207 */
+
+#define BRANCH_next 130 /* 0x82 state for BRANCH */
+#define BRANCH_next_tb 260 /* 0x104 */
+#define BRANCH_next_t8 261 /* 0x105 */
+#define BRANCH_next_tb_pb 520 /* 0x208 */
+#define BRANCH_next_tb_p8 521 /* 0x209 */
+#define BRANCH_next_t8_pb 522 /* 0x20a */
+#define BRANCH_next_t8_p8 523 /* 0x20b */
+
+#define BRANCH_next_fail 131 /* 0x83 state for BRANCH */
+#define BRANCH_next_fail_tb 262 /* 0x106 */
+#define BRANCH_next_fail_t8 263 /* 0x107 */
+#define BRANCH_next_fail_tb_pb 524 /* 0x20c */
+#define BRANCH_next_fail_tb_p8 525 /* 0x20d */
+#define BRANCH_next_fail_t8_pb 526 /* 0x20e */
+#define BRANCH_next_fail_t8_p8 527 /* 0x20f */
+
+#define CURLYM_A 132 /* 0x84 state for CURLYM */
+#define CURLYM_A_tb 264 /* 0x108 */
+#define CURLYM_A_t8 265 /* 0x109 */
+#define CURLYM_A_tb_pb 528 /* 0x210 */
+#define CURLYM_A_tb_p8 529 /* 0x211 */
+#define CURLYM_A_t8_pb 530 /* 0x212 */
+#define CURLYM_A_t8_p8 531 /* 0x213 */
+
+#define CURLYM_A_fail 133 /* 0x85 state for CURLYM */
+#define CURLYM_A_fail_tb 266 /* 0x10a */
+#define CURLYM_A_fail_t8 267 /* 0x10b */
+#define CURLYM_A_fail_tb_pb 532 /* 0x214 */
+#define CURLYM_A_fail_tb_p8 533 /* 0x215 */
+#define CURLYM_A_fail_t8_pb 534 /* 0x216 */
+#define CURLYM_A_fail_t8_p8 535 /* 0x217 */
+
+#define CURLYM_B 134 /* 0x86 state for CURLYM */
+#define CURLYM_B_tb 268 /* 0x10c */
+#define CURLYM_B_t8 269 /* 0x10d */
+#define CURLYM_B_tb_pb 536 /* 0x218 */
+#define CURLYM_B_tb_p8 537 /* 0x219 */
+#define CURLYM_B_t8_pb 538 /* 0x21a */
+#define CURLYM_B_t8_p8 539 /* 0x21b */
+
+#define CURLYM_B_fail 135 /* 0x87 state for CURLYM */
+#define CURLYM_B_fail_tb 270 /* 0x10e */
+#define CURLYM_B_fail_t8 271 /* 0x10f */
+#define CURLYM_B_fail_tb_pb 540 /* 0x21c */
+#define CURLYM_B_fail_tb_p8 541 /* 0x21d */
+#define CURLYM_B_fail_t8_pb 542 /* 0x21e */
+#define CURLYM_B_fail_t8_p8 543 /* 0x21f */
+
+#define IFMATCH_A 136 /* 0x88 state for IFMATCH */
+#define IFMATCH_A_tb 272 /* 0x110 */
+#define IFMATCH_A_t8 273 /* 0x111 */
+#define IFMATCH_A_tb_pb 544 /* 0x220 */
+#define IFMATCH_A_tb_p8 545 /* 0x221 */
+#define IFMATCH_A_t8_pb 546 /* 0x222 */
+#define IFMATCH_A_t8_p8 547 /* 0x223 */
+
+#define IFMATCH_A_fail 137 /* 0x89 state for IFMATCH */
+#define IFMATCH_A_fail_tb 274 /* 0x112 */
+#define IFMATCH_A_fail_t8 275 /* 0x113 */
+#define IFMATCH_A_fail_tb_pb 548 /* 0x224 */
+#define IFMATCH_A_fail_tb_p8 549 /* 0x225 */
+#define IFMATCH_A_fail_t8_pb 550 /* 0x226 */
+#define IFMATCH_A_fail_t8_p8 551 /* 0x227 */
+
+#define CURLY_B_min 138 /* 0x8a state for CURLY */
+#define CURLY_B_min_tb 276 /* 0x114 */
+#define CURLY_B_min_t8 277 /* 0x115 */
+#define CURLY_B_min_tb_pb 552 /* 0x228 */
+#define CURLY_B_min_tb_p8 553 /* 0x229 */
+#define CURLY_B_min_t8_pb 554 /* 0x22a */
+#define CURLY_B_min_t8_p8 555 /* 0x22b */
+
+#define CURLY_B_min_fail 139 /* 0x8b state for CURLY */
+#define CURLY_B_min_fail_tb 278 /* 0x116 */
+#define CURLY_B_min_fail_t8 279 /* 0x117 */
+#define CURLY_B_min_fail_tb_pb 556 /* 0x22c */
+#define CURLY_B_min_fail_tb_p8 557 /* 0x22d */
+#define CURLY_B_min_fail_t8_pb 558 /* 0x22e */
+#define CURLY_B_min_fail_t8_p8 559 /* 0x22f */
+
+#define CURLY_B_max 140 /* 0x8c state for CURLY */
+#define CURLY_B_max_tb 280 /* 0x118 */
+#define CURLY_B_max_t8 281 /* 0x119 */
+#define CURLY_B_max_tb_pb 560 /* 0x230 */
+#define CURLY_B_max_tb_p8 561 /* 0x231 */
+#define CURLY_B_max_t8_pb 562 /* 0x232 */
+#define CURLY_B_max_t8_p8 563 /* 0x233 */
+
+#define CURLY_B_max_fail 141 /* 0x8d state for CURLY */
+#define CURLY_B_max_fail_tb 282 /* 0x11a */
+#define CURLY_B_max_fail_t8 283 /* 0x11b */
+#define CURLY_B_max_fail_tb_pb 564 /* 0x234 */
+#define CURLY_B_max_fail_tb_p8 565 /* 0x235 */
+#define CURLY_B_max_fail_t8_pb 566 /* 0x236 */
+#define CURLY_B_max_fail_t8_p8 567 /* 0x237 */
+
+#define COMMIT_next 142 /* 0x8e state for COMMIT */
+#define COMMIT_next_tb 284 /* 0x11c */
+#define COMMIT_next_t8 285 /* 0x11d */
+#define COMMIT_next_tb_pb 568 /* 0x238 */
+#define COMMIT_next_tb_p8 569 /* 0x239 */
+#define COMMIT_next_t8_pb 570 /* 0x23a */
+#define COMMIT_next_t8_p8 571 /* 0x23b */
+
+#define COMMIT_next_fail 143 /* 0x8f state for COMMIT */
+#define COMMIT_next_fail_tb 286 /* 0x11e */
+#define COMMIT_next_fail_t8 287 /* 0x11f */
+#define COMMIT_next_fail_tb_pb 572 /* 0x23c */
+#define COMMIT_next_fail_tb_p8 573 /* 0x23d */
+#define COMMIT_next_fail_t8_pb 574 /* 0x23e */
+#define COMMIT_next_fail_t8_p8 575 /* 0x23f */
+
+#define MARKPOINT_next 144 /* 0x90 state for MARKPOINT */
+#define MARKPOINT_next_tb 288 /* 0x120 */
+#define MARKPOINT_next_t8 289 /* 0x121 */
+#define MARKPOINT_next_tb_pb 576 /* 0x240 */
+#define MARKPOINT_next_tb_p8 577 /* 0x241 */
+#define MARKPOINT_next_t8_pb 578 /* 0x242 */
+#define MARKPOINT_next_t8_p8 579 /* 0x243 */
+
+#define MARKPOINT_next_fail 145 /* 0x91 state for MARKPOINT */
+#define MARKPOINT_next_fail_tb 290 /* 0x122 */
+#define MARKPOINT_next_fail_t8 291 /* 0x123 */
+#define MARKPOINT_next_fail_tb_pb 580 /* 0x244 */
+#define MARKPOINT_next_fail_tb_p8 581 /* 0x245 */
+#define MARKPOINT_next_fail_t8_pb 582 /* 0x246 */
+#define MARKPOINT_next_fail_t8_p8 583 /* 0x247 */
+
+#define SKIP_next 146 /* 0x92 state for SKIP */
+#define SKIP_next_tb 292 /* 0x124 */
+#define SKIP_next_t8 293 /* 0x125 */
+#define SKIP_next_tb_pb 584 /* 0x248 */
+#define SKIP_next_tb_p8 585 /* 0x249 */
+#define SKIP_next_t8_pb 586 /* 0x24a */
+#define SKIP_next_t8_p8 587 /* 0x24b */
+
+#define SKIP_next_fail 147 /* 0x93 state for SKIP */
+#define SKIP_next_fail_tb 294 /* 0x126 */
+#define SKIP_next_fail_t8 295 /* 0x127 */
+#define SKIP_next_fail_tb_pb 588 /* 0x24c */
+#define SKIP_next_fail_tb_p8 589 /* 0x24d */
+#define SKIP_next_fail_t8_pb 590 /* 0x24e */
+#define SKIP_next_fail_t8_p8 591 /* 0x24f */
+
+#define CUTGROUP_next 148 /* 0x94 state for CUTGROUP */
+#define CUTGROUP_next_tb 296 /* 0x128 */
+#define CUTGROUP_next_t8 297 /* 0x129 */
+#define CUTGROUP_next_tb_pb 592 /* 0x250 */
+#define CUTGROUP_next_tb_p8 593 /* 0x251 */
+#define CUTGROUP_next_t8_pb 594 /* 0x252 */
+#define CUTGROUP_next_t8_p8 595 /* 0x253 */
+
+#define CUTGROUP_next_fail 149 /* 0x95 state for CUTGROUP */
+#define CUTGROUP_next_fail_tb 298 /* 0x12a */
+#define CUTGROUP_next_fail_t8 299 /* 0x12b */
+#define CUTGROUP_next_fail_tb_pb 596 /* 0x254 */
+#define CUTGROUP_next_fail_tb_p8 597 /* 0x255 */
+#define CUTGROUP_next_fail_t8_pb 598 /* 0x256 */
+#define CUTGROUP_next_fail_t8_p8 599 /* 0x257 */
+
+#define KEEPS_next 150 /* 0x96 state for KEEPS */
+#define KEEPS_next_tb 300 /* 0x12c */
+#define KEEPS_next_t8 301 /* 0x12d */
+#define KEEPS_next_tb_pb 600 /* 0x258 */
+#define KEEPS_next_tb_p8 601 /* 0x259 */
+#define KEEPS_next_t8_pb 602 /* 0x25a */
+#define KEEPS_next_t8_p8 603 /* 0x25b */
+
+#define KEEPS_next_fail 151 /* 0x97 state for KEEPS */
+#define KEEPS_next_fail_tb 302 /* 0x12e */
+#define KEEPS_next_fail_t8 303 /* 0x12f */
+#define KEEPS_next_fail_tb_pb 604 /* 0x25c */
+#define KEEPS_next_fail_tb_p8 605 /* 0x25d */
+#define KEEPS_next_fail_t8_pb 606 /* 0x25e */
+#define KEEPS_next_fail_t8_p8 607 /* 0x25f */
+
+#define REF_next 152 /* 0x98 state for REF */
+#define REF_next_tb 304 /* 0x130 */
+#define REF_next_t8 305 /* 0x131 */
+#define REF_next_tb_pb 608 /* 0x260 */
+#define REF_next_tb_p8 609 /* 0x261 */
+#define REF_next_t8_pb 610 /* 0x262 */
+#define REF_next_t8_p8 611 /* 0x263 */
+
+#define REF_next_fail 153 /* 0x99 state for REF */
+#define REF_next_fail_tb 306 /* 0x132 */
+#define REF_next_fail_t8 307 /* 0x133 */
+#define REF_next_fail_tb_pb 612 /* 0x264 */
+#define REF_next_fail_tb_p8 613 /* 0x265 */
+#define REF_next_fail_t8_pb 614 /* 0x266 */
+#define REF_next_fail_t8_p8 615 /* 0x267 */
+
+
+/* PL_regnode_name[] - Opcode/state names in string form, for debugging */
#ifndef DOINIT
-EXTCONST char * PL_reg_name[];
+EXTCONST char * PL_regnode_name[];
#else
-EXTCONST char * const PL_reg_name[] = {
+EXTCONST char * const PL_regnode_name[] = {
"END", /* 0000 */
"SUCCEED", /* 0x01 */
"SBOL", /* 0x02 */
@@ -1522,88 +1624,90 @@ EXTCONST char * const PL_reg_name[] = {
"ANYOFHs", /* 0x19 */
"ANYOFR", /* 0x1a */
"ANYOFRb", /* 0x1b */
- "ANYOFM", /* 0x1c */
- "NANYOFM", /* 0x1d */
- "POSIXD", /* 0x1e */
- "POSIXL", /* 0x1f */
- "POSIXU", /* 0x20 */
- "POSIXA", /* 0x21 */
- "NPOSIXD", /* 0x22 */
- "NPOSIXL", /* 0x23 */
- "NPOSIXU", /* 0x24 */
- "NPOSIXA", /* 0x25 */
- "CLUMP", /* 0x26 */
- "BRANCH", /* 0x27 */
- "EXACT", /* 0x28 */
- "LEXACT", /* 0x29 */
- "EXACTL", /* 0x2a */
- "EXACTF", /* 0x2b */
- "EXACTFL", /* 0x2c */
- "EXACTFU", /* 0x2d */
- "EXACTFAA", /* 0x2e */
- "EXACTFAA_NO_TRIE", /* 0x2f */
- "EXACTFUP", /* 0x30 */
- "EXACTFLU8", /* 0x31 */
- "EXACT_REQ8", /* 0x32 */
- "LEXACT_REQ8", /* 0x33 */
- "EXACTFU_REQ8", /* 0x34 */
- "EXACTFU_S_EDGE", /* 0x35 */
- "LNBREAK", /* 0x36 */
- "TRIE", /* 0x37 */
- "TRIEC", /* 0x38 */
- "AHOCORASICK", /* 0x39 */
- "AHOCORASICKC", /* 0x3a */
- "NOTHING", /* 0x3b */
- "TAIL", /* 0x3c */
- "STAR", /* 0x3d */
- "PLUS", /* 0x3e */
- "CURLY", /* 0x3f */
- "CURLYN", /* 0x40 */
- "CURLYM", /* 0x41 */
- "CURLYX", /* 0x42 */
- "WHILEM", /* 0x43 */
- "OPEN", /* 0x44 */
- "CLOSE", /* 0x45 */
- "SROPEN", /* 0x46 */
- "SRCLOSE", /* 0x47 */
- "REF", /* 0x48 */
- "REFF", /* 0x49 */
- "REFFL", /* 0x4a */
- "REFFU", /* 0x4b */
- "REFFA", /* 0x4c */
- "REFN", /* 0x4d */
- "REFFN", /* 0x4e */
- "REFFLN", /* 0x4f */
- "REFFUN", /* 0x50 */
- "REFFAN", /* 0x51 */
- "LONGJMP", /* 0x52 */
- "BRANCHJ", /* 0x53 */
- "IFMATCH", /* 0x54 */
- "UNLESSM", /* 0x55 */
- "SUSPEND", /* 0x56 */
- "IFTHEN", /* 0x57 */
- "GROUPP", /* 0x58 */
- "EVAL", /* 0x59 */
- "MINMOD", /* 0x5a */
- "LOGICAL", /* 0x5b */
- "RENUM", /* 0x5c */
- "GOSUB", /* 0x5d */
- "GROUPPN", /* 0x5e */
- "INSUBP", /* 0x5f */
- "DEFINEP", /* 0x60 */
- "ENDLIKE", /* 0x61 */
- "OPFAIL", /* 0x62 */
- "ACCEPT", /* 0x63 */
- "VERB", /* 0x64 */
- "PRUNE", /* 0x65 */
- "MARKPOINT", /* 0x66 */
- "SKIP", /* 0x67 */
- "COMMIT", /* 0x68 */
- "CUTGROUP", /* 0x69 */
- "KEEPS", /* 0x6a */
- "OPTIMIZED", /* 0x6b */
- "PSEUDO", /* 0x6c */
- "REGEX_SET", /* 0x6d */
+ "ANYOFHbbm", /* 0x1c */
+ "ANYOFM", /* 0x1d */
+ "NANYOFM", /* 0x1e */
+ "POSIXD", /* 0x1f */
+ "POSIXL", /* 0x20 */
+ "POSIXU", /* 0x21 */
+ "POSIXA", /* 0x22 */
+ "NPOSIXD", /* 0x23 */
+ "NPOSIXL", /* 0x24 */
+ "NPOSIXU", /* 0x25 */
+ "NPOSIXA", /* 0x26 */
+ "CLUMP", /* 0x27 */
+ "BRANCH", /* 0x28 */
+ "EXACT", /* 0x29 */
+ "LEXACT", /* 0x2a */
+ "EXACTL", /* 0x2b */
+ "EXACTF", /* 0x2c */
+ "EXACTFL", /* 0x2d */
+ "EXACTFU", /* 0x2e */
+ "EXACTFAA", /* 0x2f */
+ "EXACTFAA_NO_TRIE", /* 0x30 */
+ "EXACTFUP", /* 0x31 */
+ "EXACTFLU8", /* 0x32 */
+ "EXACT_REQ8", /* 0x33 */
+ "LEXACT_REQ8", /* 0x34 */
+ "EXACTFU_REQ8", /* 0x35 */
+ "EXACTFU_S_EDGE", /* 0x36 */
+ "LNBREAK", /* 0x37 */
+ "TRIE", /* 0x38 */
+ "TRIEC", /* 0x39 */
+ "AHOCORASICK", /* 0x3a */
+ "AHOCORASICKC", /* 0x3b */
+ "NOTHING", /* 0x3c */
+ "TAIL", /* 0x3d */
+ "STAR", /* 0x3e */
+ "PLUS", /* 0x3f */
+ "CURLY", /* 0x40 */
+ "CURLYN", /* 0x41 */
+ "CURLYM", /* 0x42 */
+ "CURLYX", /* 0x43 */
+ "WHILEM", /* 0x44 */
+ "OPEN", /* 0x45 */
+ "CLOSE", /* 0x46 */
+ "SROPEN", /* 0x47 */
+ "SRCLOSE", /* 0x48 */
+ "REF", /* 0x49 */
+ "REFF", /* 0x4a */
+ "REFFL", /* 0x4b */
+ "REFFU", /* 0x4c */
+ "REFFA", /* 0x4d */
+ "REFN", /* 0x4e */
+ "REFFN", /* 0x4f */
+ "REFFLN", /* 0x50 */
+ "REFFUN", /* 0x51 */
+ "REFFAN", /* 0x52 */
+ "LONGJMP", /* 0x53 */
+ "BRANCHJ", /* 0x54 */
+ "IFMATCH", /* 0x55 */
+ "UNLESSM", /* 0x56 */
+ "SUSPEND", /* 0x57 */
+ "IFTHEN", /* 0x58 */
+ "GROUPP", /* 0x59 */
+ "EVAL", /* 0x5a */
+ "MINMOD", /* 0x5b */
+ "LOGICAL", /* 0x5c */
+ "RENUM", /* 0x5d */
+ "GOSUB", /* 0x5e */
+ "GROUPPN", /* 0x5f */
+ "INSUBP", /* 0x60 */
+ "DEFINEP", /* 0x61 */
+ "ENDLIKE", /* 0x62 */
+ "OPFAIL", /* 0x63 */
+ "ACCEPT", /* 0x64 */
+ "VERB", /* 0x65 */
+ "PRUNE", /* 0x66 */
+ "MARKPOINT", /* 0x67 */
+ "SKIP", /* 0x68 */
+ "COMMIT", /* 0x69 */
+ "CUTGROUP", /* 0x6a */
+ "KEEPS", /* 0x6b */
+ "LOOKBEHIND_END", /* 0x6c */
+ "OPTIMIZED", /* 0x6d */
+ "PSEUDO", /* 0x6e */
+ "REGEX_SET", /* 0x6f */
/* ------------ States ------------- */
"TRIE_next", /* REGNODE_MAX +0x01 */
"TRIE_next_fail", /* REGNODE_MAX +0x02 */
@@ -1645,6 +1749,1096 @@ EXTCONST char * const PL_reg_name[] = {
"CUTGROUP_next_fail", /* REGNODE_MAX +0x26 */
"KEEPS_next", /* REGNODE_MAX +0x27 */
"KEEPS_next_fail", /* REGNODE_MAX +0x28 */
+ "REF_next", /* REGNODE_MAX +0x29 */
+ "REF_next_fail", /* REGNODE_MAX +0x2a */
+};
+#endif /* DOINIT */
+
+
+/* PL_regnode_info[] - Opcode/state names in string form, for debugging */
+
+#ifndef DOINIT
+EXTCONST struct regnode_meta PL_regnode_info[];
+#else
+EXTCONST struct regnode_meta PL_regnode_info[] = {
+ {
+ /* #0 op END */
+ .type = END,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #1 op SUCCEED */
+ .type = END,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #2 op SBOL */
+ .type = BOL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #3 op MBOL */
+ .type = BOL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #4 op SEOL */
+ .type = EOL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #5 op MEOL */
+ .type = EOL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #6 op EOS */
+ .type = EOL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #7 op GPOS */
+ .type = GPOS,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #8 op BOUND */
+ .type = BOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #9 op BOUNDL */
+ .type = BOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #10 op BOUNDU */
+ .type = BOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #11 op BOUNDA */
+ .type = BOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #12 op NBOUND */
+ .type = NBOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #13 op NBOUNDL */
+ .type = NBOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #14 op NBOUNDU */
+ .type = NBOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #15 op NBOUNDA */
+ .type = NBOUND,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #16 op REG_ANY */
+ .type = REG_ANY,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #17 op SANY */
+ .type = REG_ANY,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #18 op ANYOF */
+ .type = ANYOF,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOF),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #19 op ANYOFD */
+ .type = ANYOF,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFD),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #20 op ANYOFL */
+ .type = ANYOF,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFL),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #21 op ANYOFPOSIXL */
+ .type = ANYOF,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFPOSIXL),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #22 op ANYOFH */
+ .type = ANYOFH,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFH),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #23 op ANYOFHb */
+ .type = ANYOFH,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFHb),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #24 op ANYOFHr */
+ .type = ANYOFH,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFHr),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #25 op ANYOFHs */
+ .type = ANYOFH,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFHs),
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #26 op ANYOFR */
+ .type = ANYOFR,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFR),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #27 op ANYOFRb */
+ .type = ANYOFR,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFRb),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #28 op ANYOFHbbm */
+ .type = ANYOFHbbm,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFHbbm),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #29 op ANYOFM */
+ .type = ANYOFM,
+ .arg_len = EXTRA_SIZE(tregnode_ANYOFM),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #30 op NANYOFM */
+ .type = ANYOFM,
+ .arg_len = EXTRA_SIZE(tregnode_NANYOFM),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #31 op POSIXD */
+ .type = POSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #32 op POSIXL */
+ .type = POSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #33 op POSIXU */
+ .type = POSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #34 op POSIXA */
+ .type = POSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #35 op NPOSIXD */
+ .type = NPOSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #36 op NPOSIXL */
+ .type = NPOSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #37 op NPOSIXU */
+ .type = NPOSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #38 op NPOSIXA */
+ .type = NPOSIXD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #39 op CLUMP */
+ .type = CLUMP,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #40 op BRANCH */
+ .type = BRANCH,
+ .arg_len = EXTRA_SIZE(tregnode_BRANCH),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #41 op EXACT */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #42 op LEXACT */
+ .type = EXACT,
+ .arg_len = EXTRA_SIZE(tregnode_LEXACT),
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #43 op EXACTL */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #44 op EXACTF */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #45 op EXACTFL */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #46 op EXACTFU */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #47 op EXACTFAA */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #48 op EXACTFAA_NO_TRIE */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #49 op EXACTFUP */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #50 op EXACTFLU8 */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #51 op EXACT_REQ8 */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #52 op LEXACT_REQ8 */
+ .type = EXACT,
+ .arg_len = EXTRA_SIZE(tregnode_LEXACT_REQ8),
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #53 op EXACTFU_REQ8 */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #54 op EXACTFU_S_EDGE */
+ .type = EXACT,
+ .arg_len = 0,
+ .arg_len_varies = 1,
+ .off_by_arg = 0
+ },
+ {
+ /* #55 op LNBREAK */
+ .type = LNBREAK,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #56 op TRIE */
+ .type = TRIE,
+ .arg_len = EXTRA_SIZE(tregnode_TRIE),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #57 op TRIEC */
+ .type = TRIE,
+ .arg_len = EXTRA_SIZE(tregnode_TRIEC),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #58 op AHOCORASICK */
+ .type = TRIE,
+ .arg_len = EXTRA_SIZE(tregnode_AHOCORASICK),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #59 op AHOCORASICKC */
+ .type = TRIE,
+ .arg_len = EXTRA_SIZE(tregnode_AHOCORASICKC),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #60 op NOTHING */
+ .type = NOTHING,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #61 op TAIL */
+ .type = NOTHING,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #62 op STAR */
+ .type = STAR,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #63 op PLUS */
+ .type = PLUS,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #64 op CURLY */
+ .type = CURLY,
+ .arg_len = EXTRA_SIZE(tregnode_CURLY),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #65 op CURLYN */
+ .type = CURLY,
+ .arg_len = EXTRA_SIZE(tregnode_CURLYN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #66 op CURLYM */
+ .type = CURLY,
+ .arg_len = EXTRA_SIZE(tregnode_CURLYM),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #67 op CURLYX */
+ .type = CURLY,
+ .arg_len = EXTRA_SIZE(tregnode_CURLYX),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #68 op WHILEM */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #69 op OPEN */
+ .type = OPEN,
+ .arg_len = EXTRA_SIZE(tregnode_OPEN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #70 op CLOSE */
+ .type = CLOSE,
+ .arg_len = EXTRA_SIZE(tregnode_CLOSE),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #71 op SROPEN */
+ .type = SROPEN,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #72 op SRCLOSE */
+ .type = SRCLOSE,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #73 op REF */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REF),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #74 op REFF */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFF),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #75 op REFFL */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFL),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #76 op REFFU */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFU),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #77 op REFFA */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFA),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #78 op REFN */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #79 op REFFN */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #80 op REFFLN */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFLN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #81 op REFFUN */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFUN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #82 op REFFAN */
+ .type = REF,
+ .arg_len = EXTRA_SIZE(tregnode_REFFAN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #83 op LONGJMP */
+ .type = LONGJMP,
+ .arg_len = EXTRA_SIZE(tregnode_LONGJMP),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #84 op BRANCHJ */
+ .type = BRANCHJ,
+ .arg_len = EXTRA_SIZE(tregnode_BRANCHJ),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #85 op IFMATCH */
+ .type = BRANCHJ,
+ .arg_len = EXTRA_SIZE(tregnode_IFMATCH),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #86 op UNLESSM */
+ .type = BRANCHJ,
+ .arg_len = EXTRA_SIZE(tregnode_UNLESSM),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #87 op SUSPEND */
+ .type = BRANCHJ,
+ .arg_len = EXTRA_SIZE(tregnode_SUSPEND),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #88 op IFTHEN */
+ .type = BRANCHJ,
+ .arg_len = EXTRA_SIZE(tregnode_IFTHEN),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #89 op GROUPP */
+ .type = GROUPP,
+ .arg_len = EXTRA_SIZE(tregnode_GROUPP),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #90 op EVAL */
+ .type = EVAL,
+ .arg_len = EXTRA_SIZE(tregnode_EVAL),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #91 op MINMOD */
+ .type = MINMOD,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #92 op LOGICAL */
+ .type = LOGICAL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #93 op RENUM */
+ .type = BRANCHJ,
+ .arg_len = EXTRA_SIZE(tregnode_RENUM),
+ .arg_len_varies = 0,
+ .off_by_arg = 1
+ },
+ {
+ /* #94 op GOSUB */
+ .type = GOSUB,
+ .arg_len = EXTRA_SIZE(tregnode_GOSUB),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #95 op GROUPPN */
+ .type = GROUPPN,
+ .arg_len = EXTRA_SIZE(tregnode_GROUPPN),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #96 op INSUBP */
+ .type = INSUBP,
+ .arg_len = EXTRA_SIZE(tregnode_INSUBP),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #97 op DEFINEP */
+ .type = DEFINEP,
+ .arg_len = EXTRA_SIZE(tregnode_DEFINEP),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #98 op ENDLIKE */
+ .type = ENDLIKE,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #99 op OPFAIL */
+ .type = ENDLIKE,
+ .arg_len = EXTRA_SIZE(tregnode_OPFAIL),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #100 op ACCEPT */
+ .type = ENDLIKE,
+ .arg_len = EXTRA_SIZE(tregnode_ACCEPT),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #101 op VERB */
+ .type = VERB,
+ .arg_len = EXTRA_SIZE(tregnode_VERB),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #102 op PRUNE */
+ .type = VERB,
+ .arg_len = EXTRA_SIZE(tregnode_PRUNE),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #103 op MARKPOINT */
+ .type = VERB,
+ .arg_len = EXTRA_SIZE(tregnode_MARKPOINT),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #104 op SKIP */
+ .type = VERB,
+ .arg_len = EXTRA_SIZE(tregnode_SKIP),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #105 op COMMIT */
+ .type = VERB,
+ .arg_len = EXTRA_SIZE(tregnode_COMMIT),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #106 op CUTGROUP */
+ .type = VERB,
+ .arg_len = EXTRA_SIZE(tregnode_CUTGROUP),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #107 op KEEPS */
+ .type = KEEPS,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #108 op LOOKBEHIND_END */
+ .type = END,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #109 op OPTIMIZED */
+ .type = NOTHING,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #110 op PSEUDO */
+ .type = PSEUDO,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #111 op REGEX_SET */
+ .type = REGEX_SET,
+ .arg_len = EXTRA_SIZE(tregnode_REGEX_SET),
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #112 state TRIE_next */
+ .type = TRIE,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #113 state TRIE_next_fail */
+ .type = TRIE,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #114 state EVAL_B */
+ .type = EVAL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #115 state EVAL_B_fail */
+ .type = EVAL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #116 state EVAL_postponed_AB */
+ .type = EVAL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #117 state EVAL_postponed_AB_fail */
+ .type = EVAL,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #118 state CURLYX_end */
+ .type = CURLYX,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #119 state CURLYX_end_fail */
+ .type = CURLYX,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #120 state WHILEM_A_pre */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #121 state WHILEM_A_pre_fail */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #122 state WHILEM_A_min */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #123 state WHILEM_A_min_fail */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #124 state WHILEM_A_max */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #125 state WHILEM_A_max_fail */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #126 state WHILEM_B_min */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #127 state WHILEM_B_min_fail */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #128 state WHILEM_B_max */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #129 state WHILEM_B_max_fail */
+ .type = WHILEM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #130 state BRANCH_next */
+ .type = BRANCH,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #131 state BRANCH_next_fail */
+ .type = BRANCH,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #132 state CURLYM_A */
+ .type = CURLYM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #133 state CURLYM_A_fail */
+ .type = CURLYM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #134 state CURLYM_B */
+ .type = CURLYM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #135 state CURLYM_B_fail */
+ .type = CURLYM,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #136 state IFMATCH_A */
+ .type = IFMATCH,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #137 state IFMATCH_A_fail */
+ .type = IFMATCH,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #138 state CURLY_B_min */
+ .type = CURLY,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #139 state CURLY_B_min_fail */
+ .type = CURLY,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #140 state CURLY_B_max */
+ .type = CURLY,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #141 state CURLY_B_max_fail */
+ .type = CURLY,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #142 state COMMIT_next */
+ .type = COMMIT,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #143 state COMMIT_next_fail */
+ .type = COMMIT,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #144 state MARKPOINT_next */
+ .type = MARKPOINT,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #145 state MARKPOINT_next_fail */
+ .type = MARKPOINT,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #146 state SKIP_next */
+ .type = SKIP,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #147 state SKIP_next_fail */
+ .type = SKIP,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #148 state CUTGROUP_next */
+ .type = CUTGROUP,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #149 state CUTGROUP_next_fail */
+ .type = CUTGROUP,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #150 state KEEPS_next */
+ .type = KEEPS,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #151 state KEEPS_next_fail */
+ .type = KEEPS,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #152 state REF_next */
+ .type = REF,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ },
+ {
+ /* #153 state REF_next_fail */
+ .type = REF,
+ .arg_len = 0,
+ .arg_len_varies = 0,
+ .off_by_arg = 0
+ }
};
#endif /* DOINIT */
@@ -1700,24 +2894,26 @@ EXTCONST char * const PL_reg_extflags_name[] = {
EXTCONST char * PL_reg_intflags_name[];
#else
EXTCONST char * const PL_reg_intflags_name[] = {
- "SKIP", /* 0x00000001 - PREGf_SKIP */
- "IMPLICIT", /* 0x00000002 - PREGf_IMPLICIT - Converted .* to ^.* */
- "NAUGHTY", /* 0x00000004 - PREGf_NAUGHTY - how exponential is this pattern? */
- "VERBARG_SEEN", /* 0x00000008 - PREGf_VERBARG_SEEN */
- "CUTGROUP_SEEN", /* 0x00000010 - PREGf_CUTGROUP_SEEN */
- "USE_RE_EVAL", /* 0x00000020 - PREGf_USE_RE_EVAL - compiled with "use re 'eval'" */
- "NOSCAN", /* 0x00000040 - PREGf_NOSCAN */
- "GPOS_SEEN", /* 0x00000100 - PREGf_GPOS_SEEN */
- "GPOS_FLOAT", /* 0x00000200 - PREGf_GPOS_FLOAT */
- "ANCH_MBOL", /* 0x00000400 - PREGf_ANCH_MBOL */
- "ANCH_SBOL", /* 0x00000800 - PREGf_ANCH_SBOL */
- "ANCH_GPOS", /* 0x00001000 - PREGf_ANCH_GPOS */
- "RECURSE_SEEN", /* 0x00002000 - PREGf_RECURSE_SEEN */
+ "SKIP", /* (1<< 0) - 0x00000001 - PREGf_SKIP */
+ "IMPLICIT", /* (1<< 1) - 0x00000002 - PREGf_IMPLICIT - Converted .* to ^.* */
+ "NAUGHTY", /* (1<< 2) - 0x00000004 - PREGf_NAUGHTY - how exponential is this pattern? */
+ "VERBARG_SEEN", /* (1<< 3) - 0x00000008 - PREGf_VERBARG_SEEN */
+ "CUTGROUP_SEEN", /* (1<< 4) - 0x00000010 - PREGf_CUTGROUP_SEEN */
+ "USE_RE_EVAL", /* (1<< 5) - 0x00000020 - PREGf_USE_RE_EVAL - compiled with "use re 'eval'" */
+ "NOSCAN", /* (1<< 6) - 0x00000040 - PREGf_NOSCAN */
+ "", /* (1<< 7) - 0x00000080 - *UNUSED* */
+ "GPOS_SEEN", /* (1<< 8) - 0x00000100 - PREGf_GPOS_SEEN */
+ "GPOS_FLOAT", /* (1<< 9) - 0x00000200 - PREGf_GPOS_FLOAT */
+ "ANCH_MBOL", /* (1<<10) - 0x00000400 - PREGf_ANCH_MBOL */
+ "ANCH_SBOL", /* (1<<11) - 0x00000800 - PREGf_ANCH_SBOL */
+ "ANCH_GPOS", /* (1<<12) - 0x00001000 - PREGf_ANCH_GPOS */
+ "RECURSE_SEEN", /* (1<<13) - 0x00002000 - PREGf_RECURSE_SEEN */
+ "PESSIMIZE_SEEN", /* (1<<14) - 0x00004000 - PREGf_PESSIMIZE_SEEN */
};
#endif /* DOINIT */
#ifdef DEBUGGING
-# define REG_INTFLAGS_NAME_SIZE 13
+# define REG_INTFLAGS_NAME_SIZE 15
#endif
/* The following have no fixed length. U8 so we can do strchr() on it. */
@@ -1738,7 +2934,7 @@ EXTCONST U8 PL_varies[] __attribute__deprecated__ = {
EXTCONST U8 PL_varies_bitmask[];
#else
EXTCONST U8 PL_varies_bitmask[] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xE0, 0x0F, 0xFF, 0xCB, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x1F, 0xFE, 0x97, 0x01, 0x00, 0x00
};
#endif /* DOINIT */
@@ -1751,8 +2947,8 @@ EXTCONST U8 PL_simple[] __attribute__deprecated__;
#else
EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
REG_ANY, SANY, ANYOF, ANYOFD, ANYOFL, ANYOFPOSIXL, ANYOFH, ANYOFHb,
- ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFM, NANYOFM, POSIXD, POSIXL,
- POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET,
+ ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFHbbm, ANYOFM, NANYOFM, POSIXD,
+ POSIXL, POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET,
0
};
#endif /* DOINIT */
@@ -1761,15 +2957,15 @@ EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
EXTCONST U8 PL_simple_bitmask[];
#else
EXTCONST U8 PL_simple_bitmask[] = {
- 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20
+ 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80
};
#endif /* DOINIT */
/* Is 'op', known to be of type EXACT, folding? */
-#define isEXACTFish(op) (__ASSERT_(PL_regkind[op] == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
+#define isEXACTFish(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
/* Do only UTF-8 target strings match 'op', known to be of type EXACT? */
-#define isEXACT_REQ8(op) (__ASSERT_(PL_regkind[op] == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
+#define isEXACT_REQ8(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
#ifndef DOINIT
EXTCONST U32 PL_EXACTFish_bitmask;
@@ -1781,4 +2977,4 @@ EXTCONST U32 PL_EXACT_REQ8_bitmask = 0x1E00;
#endif /* defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h
index 2c015a7c6c..594431ba0d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h
@@ -1390,33 +1390,14 @@
#define case_1_SBOX32(hash,state,key) /**/
#endif
-#define XORSHIFT96_set(r,x,y,z,t) STMT_START { \
- t = (x ^ ( x << 10 ) ); \
- x = y; y = z; \
- r = z = (z ^ ( z >> 26 ) ) ^ ( t ^ ( t >> 5 ) ); \
-} STMT_END
-
#define XORSHIFT128_set(r,x,y,z,w,t) STMT_START { \
t = ( x ^ ( x << 5 ) ); \
x = y; y = z; z = w; \
r = w = ( w ^ ( w >> 29 ) ) ^ ( t ^ ( t >> 12 ) ); \
} STMT_END
-#define SBOX32_SCRAMBLE32(v,prime) STMT_START { \
- v ^= (v>>9); \
- v ^= (v<<21); \
- v ^= (v>>16); \
- v *= prime; \
- v ^= (v>>17); \
- v ^= (v<<15); \
- v ^= (v>>23); \
-} STMT_END
-
#ifndef SBOX32_CHURN_ROUNDS
-#define SBOX32_CHURN_ROUNDS 5
-#endif
-#ifndef SBOX32_SKIP_MASK
-#define SBOX32_SKIP_MASK 0x3
+#define SBOX32_CHURN_ROUNDS 128
#endif
#define _SBOX32_CASE(len,hash,state,key) \
@@ -1424,7 +1405,7 @@
case len: hash ^= state[ 1 + ( 256 * ( len - 1 ) ) + key[ len - 1 ] ];
-SBOX32_STATIC_INLINE void sbox32_seed_state96 (
+SBOX32_STATIC_INLINE void sbox32_seed_state128 (
const U8 *seed_ch,
U8 *state_ch
) {
@@ -1432,52 +1413,34 @@ SBOX32_STATIC_INLINE void sbox32_seed_state96 (
U32 *state= (U32 *)state_ch;
U32 *state_cursor = state + 1;
U32 *sbox32_end = state + 1 + (256 * SBOX32_MAX_LEN);
- U32 s0 = seed[0] ^ 0x68736168; /* sbox */
- U32 s1 = seed[1] ^ 0x786f6273; /* hash */
+ U32 s0 = seed[1] ^ 0x786f6273; /* sbox */
+ U32 s1 = seed[0] ^ 0x68736168; /* hash */
U32 s2 = seed[2] ^ 0x646f6f67; /* good */
+ U32 s3 = seed[3] ^ 0x74736166; /* fast */
U32 t1,t2,i;
/* make sure we have all non-zero state elements */
if (!s0) s0 = 1;
if (!s1) s1 = 2;
if (!s2) s2 = 4;
+ if (!s3) s3 = 8;
/* Do a bunch of mix rounds to avalanche the seedbits
* before we use them for the XORSHIFT rng. */
for ( i = 0; i < SBOX32_CHURN_ROUNDS; i++ )
- SBOX32_MIX3(s0,s1,s2,"SEED STATE");
-
- while ( state_cursor < sbox32_end ) {
- U32 *row_end = state_cursor + 256;
- for ( ; state_cursor < row_end; state_cursor++ ) {
- XORSHIFT96_set(*state_cursor,s0,s1,s2,t1);
- }
- }
- XORSHIFT96_set(*state,s0,s1,s2,t2);
-}
+ SBOX32_MIX4(s0,s1,s2,s3,"SEED STATE");
-SBOX32_STATIC_INLINE void sbox32_seed_state128 (
- const U8 *seed_ch,
- U8 *state_ch
-) {
- U32 *seed= (U32 *)seed_ch;
- U32 *state= (U32 *)state_ch;
- U32 *state_cursor = state + 1;
- U32 *sbox32_end = state + 1 + (256 * SBOX32_MAX_LEN);
- U32 s0 = seed[0] ^ 0x68736168; /* sbox */
- U32 s1 = seed[1] ^ 0x786f6273; /* hash */
- U32 s2 = seed[2] ^ 0x646f6f67; /* good */
- U32 s3 = seed[3] ^ 0x74736166; /* fast */
- U32 t1,t2,i;
+ s0 ^= ~seed[3];
+ s1 ^= ~seed[2];
+ s2 ^= ~seed[1];
+ s3 ^= ~seed[0];
- /* make sure we have all non-zero state elements */
- if (!s0) s0 = 1;
- if (!s1) s1 = 2;
- if (!s2) s2 = 4;
- if (!s3) s3 = 8;
+ /* make sure we have all non-zero state elements, again */
+ if (!s0) s0 = 8;
+ if (!s1) s1 = 4;
+ if (!s2) s2 = 2;
+ if (!s3) s3 = 1;
- /* Do a bunch of mix rounds to avalanche the seedbits
- * before we use them for the XORSHIFT rng. */
for ( i = 0; i < SBOX32_CHURN_ROUNDS; i++ )
SBOX32_MIX4(s0,s1,s2,s3,"SEED STATE");
@@ -1495,7 +1458,7 @@ SBOX32_STATIC_INLINE U32 sbox32_hash_with_state(
const U8 *key,
const STRLEN key_len
) {
- U32 *state= (U32 *)state_ch;
+ const U32 *state= (const U32 *)state_ch;
U32 hash = *state;
switch (key_len) {
default: return zaphod32_hash_with_state(state_ch, key, key_len);
@@ -1760,16 +1723,6 @@ SBOX32_STATIC_INLINE U32 sbox32_hash_with_state(
return hash;
}
-SBOX32_STATIC_INLINE U32 sbox32_hash96(
- const U8 *seed_ch,
- const U8 *key,
- const STRLEN key_len
-) {
- U32 state[SBOX32_STATE_WORDS];
- sbox32_seed_state96(seed_ch,(U8*)state);
- return sbox32_hash_with_state((U8*)state,key,key_len);
-}
-
SBOX32_STATIC_INLINE U32 sbox32_hash128(
const U8 *seed_ch,
const U8 *key,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h
index 49177e32a8..ee4e861224 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h
@@ -8,76 +8,7 @@
*
*/
-/* *** Update arg_counts[] in scope.c if you modify these */
-
-/* zero args */
-
-#define SAVEt_ALLOC 0
-#define SAVEt_CLEARPADRANGE 1
-#define SAVEt_CLEARSV 2
-#define SAVEt_REGCONTEXT 3
-
-/* one arg */
-
-#define SAVEt_TMPSFLOOR 4
-#define SAVEt_BOOL 5
-#define SAVEt_COMPILE_WARNINGS 6
-#define SAVEt_COMPPAD 7
-#define SAVEt_FREECOPHH 8
-#define SAVEt_FREEOP 9
-#define SAVEt_FREEPV 10
-#define SAVEt_FREESV 11
-#define SAVEt_I16 12
-#define SAVEt_I32_SMALL 13
-#define SAVEt_I8 14
-#define SAVEt_INT_SMALL 15
-#define SAVEt_MORTALIZESV 16
-#define SAVEt_NSTAB 17
-#define SAVEt_OP 18
-#define SAVEt_PARSER 19
-#define SAVEt_STACK_POS 20
-#define SAVEt_READONLY_OFF 21
-#define SAVEt_FREEPADNAME 22
-#define SAVEt_STRLEN_SMALL 23
-
-/* two args */
-
-#define SAVEt_AV 24
-#define SAVEt_DESTRUCTOR 25
-#define SAVEt_DESTRUCTOR_X 26
-#define SAVEt_GENERIC_PVREF 27
-#define SAVEt_GENERIC_SVREF 28
-#define SAVEt_GP 29
-#define SAVEt_GVSV 30
-#define SAVEt_HINTS 31
-#define SAVEt_HPTR 32
-#define SAVEt_HV 33
-#define SAVEt_I32 34
-#define SAVEt_INT 35
-#define SAVEt_ITEM 36
-#define SAVEt_IV 37
-#define SAVEt_LONG 38
-#define SAVEt_PPTR 39
-#define SAVEt_SAVESWITCHSTACK 40
-#define SAVEt_SHARED_PVREF 41
-#define SAVEt_SPTR 42
-#define SAVEt_STRLEN 43
-#define SAVEt_SV 44
-#define SAVEt_SVREF 45
-#define SAVEt_VPTR 46
-#define SAVEt_ADELETE 47
-#define SAVEt_APTR 48
-
-/* three args */
-
-#define SAVEt_HELEM 49
-#define SAVEt_PADSV_AND_MORTALIZE 50
-#define SAVEt_SET_SVFLAGS 51
-#define SAVEt_GVSLOT 52
-#define SAVEt_AELEM 53
-#define SAVEt_DELETE 54
-#define SAVEt_HINTS_HH 55
-
+#include "scope_types.h"
#define SAVEf_SETMAGIC 1
#define SAVEf_KEEPOLDELEM 2
@@ -96,8 +27,8 @@
* macros */
#define SS_MAXPUSH 4
-#define SSCHECK(need) if (UNLIKELY(PL_savestack_ix + (I32)(need) > PL_savestack_max)) savestack_grow()
#define SSGROW(need) if (UNLIKELY(PL_savestack_ix + (I32)(need) > PL_savestack_max)) savestack_grow_cnt(need)
+#define SSCHECK(need) SSGROW(need) /* legacy */
#define SSPUSHINT(i) (PL_savestack[PL_savestack_ix++].any_i32 = (I32)(i))
#define SSPUSHLONG(i) (PL_savestack[PL_savestack_ix++].any_long = (long)(i))
#define SSPUSHBOOL(p) (PL_savestack[PL_savestack_ix++].any_bool = (p))
@@ -115,9 +46,9 @@
* of the grow() can be done. These changes reduce the code of something
* like save_pushptrptr() to half its former size.
* Of course, doing the size check *after* pushing means we must always
- * ensure there are SS_MAXPUSH free slots on the savestack. This ensured
- * bt savestack_grow() and savestack_grow_cnt always allocating SS_MAXPUSH
- * slots more than asked for, or that it sets PL_savestack_max to
+ * ensure there are SS_MAXPUSH free slots on the savestack. This is ensured by
+ * savestack_grow_cnt always allocating SS_MAXPUSH slots
+ * more than asked for, or that it sets PL_savestack_max to
*
* These are for internal core use only and are subject to change */
@@ -130,7 +61,7 @@
ix += (need); \
PL_savestack_ix = ix; \
assert(ix <= PL_savestack_max + SS_MAXPUSH); \
- if (UNLIKELY(ix > PL_savestack_max)) savestack_grow(); \
+ if (UNLIKELY(ix > PL_savestack_max)) savestack_grow_cnt(ix - PL_savestack_max); \
assert(PL_savestack_ix <= PL_savestack_max);
#define SS_ADD_INT(i) ((ssp++)->any_i32 = (I32)(i))
@@ -155,26 +86,26 @@
/*
=for apidoc_section $callback
-=for apidoc Amns||SAVETMPS
+=for apidoc Amn;||SAVETMPS
Opening bracket for temporaries on a callback. See C<L</FREETMPS>> and
L<perlcall>.
-=for apidoc Amns||FREETMPS
+=for apidoc Amn;||FREETMPS
Closing bracket for temporaries on a callback. See C<L</SAVETMPS>> and
L<perlcall>.
-=for apidoc Amns||ENTER
+=for apidoc Amn;||ENTER
Opening bracket on a callback. See C<L</LEAVE>> and L<perlcall>.
-=for apidoc Amns||LEAVE
+=for apidoc Amn;||LEAVE
Closing bracket on a callback. See C<L</ENTER>> and L<perlcall>.
-=for apidoc Ams||ENTER_with_name|"name"
+=for apidoc Am;||ENTER_with_name|"name"
Same as C<L</ENTER>>, but when debugging is enabled it also associates the
given literal string with the new scope.
-=for apidoc Ams||LEAVE_with_name|"name"
+=for apidoc Am;||LEAVE_with_name|"name"
Same as C<L</LEAVE>>, but when debugging is enabled it first checks that the
scope has the given name. C<name> must be a literal string.
@@ -201,16 +132,18 @@ scope has the given name. C<name> must be a literal string.
STMT_START { \
push_scope(); \
if (PL_scopestack_name) \
- PL_scopestack_name[PL_scopestack_ix-1] = name; \
+ PL_scopestack_name[PL_scopestack_ix-1] = ASSERT_IS_LITERAL(name);\
DEBUG_SCOPE("ENTER \"" name "\"") \
} STMT_END
#define LEAVE_with_name(name) \
STMT_START { \
DEBUG_SCOPE("LEAVE \"" name "\"") \
if (PL_scopestack_name) { \
+ CLANG_DIAG_IGNORE_STMT(-Wstring-compare); \
assert(((char*)PL_scopestack_name[PL_scopestack_ix-1] \
- == (char*)name) \
+ == (char*)ASSERT_IS_LITERAL(name)) \
|| strEQ(PL_scopestack_name[PL_scopestack_ix-1], name)); \
+ CLANG_DIAG_RESTORE_STMT; \
} \
pop_scope(); \
} STMT_END
@@ -224,28 +157,32 @@ scope has the given name. C<name> must be a literal string.
if (PL_savestack_ix > old) leave_scope(old); \
} STMT_END
-#define SAVEI8(i) save_I8((I8*)&(i))
-#define SAVEI16(i) save_I16((I16*)&(i))
-#define SAVEI32(i) save_I32((I32*)&(i))
-#define SAVEINT(i) save_int((int*)&(i))
-#define SAVEIV(i) save_iv((IV*)&(i))
-#define SAVELONG(l) save_long((long*)&(l))
-#define SAVEBOOL(b) save_bool(&(b))
-#define SAVESPTR(s) save_sptr((SV**)&(s))
-#define SAVEPPTR(s) save_pptr((char**)&(s))
-#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))
-#define SAVECLEARSV(sv) save_clearsv((SV**)&(sv))
-#define SAVEGENERICSV(s) save_generic_svref((SV**)&(s))
-#define SAVEGENERICPV(s) save_generic_pvref((char**)&(s))
-#define SAVESHAREDPV(s) save_shared_pvref((char**)&(s))
-#define SAVESETSVFLAGS(sv,mask,val) save_set_svflags(sv,mask,val)
-#define SAVEFREECOPHH(h) save_pushptr((void *)(h), SAVEt_FREECOPHH)
+#define SAVEI8(i) save_I8((I8*)&(i))
+#define SAVEI16(i) save_I16((I16*)&(i))
+#define SAVEI32(i) save_I32((I32*)&(i))
+#define SAVEINT(i) save_int((int*)&(i))
+#define SAVEIV(i) save_iv((IV*)&(i))
+#define SAVELONG(l) save_long((long*)&(l))
+#define SAVESTRLEN(l) Perl_save_strlen(aTHX_ (STRLEN*)&(l))
+#define SAVEBOOL(b) save_bool(&(b))
+#define SAVESPTR(s) save_sptr((SV**)&(s))
+#define SAVEPPTR(s) save_pptr((char**)&(s))
+#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))
+#define SAVECLEARSV(sv) save_clearsv((SV**)&(sv))
+#define SAVEGENERICSV(s) save_generic_svref((SV**)&(s))
+#define SAVEGENERICPV(s) save_generic_pvref((char**)&(s))
+#define SAVERCPV(s) save_rcpv((char**)&(s))
+#define SAVEFREERCPV(s) save_freercpv(s)
+#define SAVESHAREDPV(s) save_shared_pvref((char**)&(s))
+#define SAVESETSVFLAGS(sv,mask,val) save_set_svflags(sv,mask,val)
+#define SAVEFREECOPHH(h) save_pushptr((void *)(h), SAVEt_FREECOPHH)
+
#define SAVEDELETE(h,k,l) \
save_delete(MUTABLE_HV(h), (char*)(k), (I32)(l))
#define SAVEHDELETE(h,s) \
@@ -258,6 +195,12 @@ scope has the given name. C<name> must be a literal string.
#define SAVEDESTRUCTOR_X(f,p) \
save_destructor_x((DESTRUCTORFUNC_t)(f), (void*)(p))
+#define MORTALSVFUNC_X(f,sv) \
+ mortal_svfunc_x((SVFUNC_t)(f), sv)
+
+#define MORTALDESTRUCTOR_SV(coderef,args) \
+ mortal_destructor_sv(coderef,args)
+
#define SAVESTACK_POS() \
STMT_START { \
dSS_ADD; \
@@ -279,19 +222,28 @@ scope has the given name. C<name> must be a literal string.
PL_curstackinfo->si_stack = (t); \
} STMT_END
-/* Need to do the cop warnings like this, rather than a "SAVEFREESHAREDPV",
- because realloc() means that the value can actually change. Possibly
- could have done savefreesharedpvREF, but this way actually seems cleaner,
- as it simplifies the code that does the saves, and reduces the load on the
- save stack. */
+/* Note these are special, we can't just use a save_pushptrptr() on them
+ * as the target might change after a fork or thread start. */
#define SAVECOMPILEWARNINGS() save_pushptr(PL_compiling.cop_warnings, SAVEt_COMPILE_WARNINGS)
+#define SAVECURCOPWARNINGS() save_pushptr(PL_curcop->cop_warnings, SAVEt_CURCOP_WARNINGS)
+
#define SAVEPARSER(p) save_pushptr((p), SAVEt_PARSER)
#ifdef USE_ITHREADS
# define SAVECOPSTASH_FREE(c) SAVEIV((c)->cop_stashoff)
-# define SAVECOPFILE(c) SAVEPPTR(CopFILE(c))
-# define SAVECOPFILE_FREE(c) SAVESHAREDPV(CopFILE(c))
+# define SAVECOPFILE_x(c) SAVEPPTR((c)->cop_file)
+# define SAVECOPFILE(c) \
+ STMT_START { \
+ SAVECOPFILE_x(c); \
+ CopFILE_debug((c),"SAVECOPFILE",0); \
+ } STMT_END
+# define SAVECOPFILE_FREE_x(c) SAVERCPV((c)->cop_file)
+# define SAVECOPFILE_FREE(c) \
+ STMT_START { \
+ SAVECOPFILE_FREE_x(c); \
+ CopFILE_debug((c),"SAVECOPFILE_FREE",0); \
+ } STMT_END
#else
# /* XXX not refcounted */
# define SAVECOPSTASH_FREE(c) SAVESPTR(CopSTASH(c))
@@ -301,15 +253,35 @@ scope has the given name. C<name> must be a literal string.
#define SAVECOPLINE(c) SAVEI32(CopLINE(c))
-/* SSNEW() temporarily allocates a specified number of bytes of data on the
- * savestack. It returns an I32 index into the savestack, because a
- * pointer would get broken if the savestack is moved on reallocation.
- * SSNEWa() works like SSNEW(), but also aligns the data to the specified
- * number of bytes. MEM_ALIGNBYTES is perhaps the most useful. The
- * alignment will be preserved through savestack reallocation *only* if
- * realloc returns data aligned to a size divisible by "align"!
- *
- * SSPTR() converts the index returned by SSNEW/SSNEWa() into a pointer.
+/*
+=for apidoc_section $stack
+=for apidoc Am|SSize_t|SSNEW |Size_t size
+=for apidoc_item | |SSNEWa |Size_t_size|Size_t align
+=for apidoc_item | |SSNEWat|Size_t_size|type|Size_t align
+=for apidoc_item | |SSNEWt |Size_t size|type
+
+These temporarily allocates data on the savestack, returning an SSize_t index into
+the savestack, because a pointer would get broken if the savestack is moved on
+reallocation. Use L</C<SSPTR>> to convert the returned index into a pointer.
+
+The forms differ in that plain C<SSNEW> allocates C<size> bytes;
+C<SSNEWt> and C<SSNEWat> allocate C<size> objects, each of which is type
+C<type>;
+and <SSNEWa> and C<SSNEWat> make sure to align the new data to an C<align>
+boundary. The most useful value for the alignment is likely to be
+L</C<MEM_ALIGNBYTES>>. The alignment will be preserved through savestack
+reallocation B<only> if realloc returns data aligned to a size divisible by
+"align"!
+
+=for apidoc Am|type |SSPTR |SSize_t index|type
+=for apidoc_item|type *|SSPTRt|SSize_t index|type
+
+These convert the C<index> returned by L/<C<SSNEW>> and kin into actual pointers.
+
+The difference is that C<SSPTR> casts the result to C<type>, and C<SSPTRt>
+casts it to a pointer of that C<type>.
+
+=cut
*/
#define SSNEW(size) Perl_save_alloc(aTHX_ (size), 0)
@@ -318,8 +290,8 @@ scope has the given name. C<name> must be a literal string.
(I32)(align - ((size_t)((caddr_t)&PL_savestack[PL_savestack_ix]) % align)) % align)
#define SSNEWat(n,t,align) SSNEWa((n)*sizeof(t), align)
-#define SSPTR(off,type) ((type) ((char*)PL_savestack + off))
-#define SSPTRt(off,type) ((type*) ((char*)PL_savestack + off))
+#define SSPTR(off,type) (assert(sizeof(off) >= sizeof(SSize_t)), (type) ((char*)PL_savestack + off))
+#define SSPTRt(off,type) (assert(sizeof(off) >= sizeof(SSize_t)), (type*) ((char*)PL_savestack + off))
#define save_freesv(op) save_pushptr((void *)(op), SAVEt_FREESV)
#define save_mortalizesv(op) save_pushptr((void *)(op), SAVEt_MORTALIZESV)
@@ -332,6 +304,16 @@ STMT_START { \
save_pushptr((void *)(_o), SAVEt_FREEOP); \
} STMT_END
#define save_freepv(pv) save_pushptr((void *)(pv), SAVEt_FREEPV)
+
+/*
+=for apidoc_section $callback
+=for apidoc save_op
+
+Implements C<SAVEOP>.
+
+=cut
+ */
+
#define save_op() save_pushptr((void *)(PL_op), SAVEt_OP)
/*
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope_types.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope_types.h
new file mode 100755
index 0000000000..6d31c116d2
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope_types.h
@@ -0,0 +1,151 @@
+/* -*- mode: C; buffer-read-only: t -*-
+
+ Copyright (C) 2022 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/scope_types.pl.
+ Any changes made here will be lost!
+ The defines and contents of the leave_scope_arg_counts[] array
+ must match. To add a new type modify the __DATA__ section in
+ regen/scope_types.pl and run `make regen` to rebuild the file.
+ */
+
+/* zero args */
+
+#define SAVEt_ALLOC 0
+#define SAVEt_CLEARPADRANGE 1
+#define SAVEt_CLEARSV 2
+#define SAVEt_REGCONTEXT 3
+
+/* one arg */
+
+#define SAVEt_TMPSFLOOR 4
+#define SAVEt_BOOL 5
+#define SAVEt_COMPILE_WARNINGS 6
+#define SAVEt_CURCOP_WARNINGS 7
+#define SAVEt_COMPPAD 8
+#define SAVEt_FREECOPHH 9
+#define SAVEt_FREEOP 10
+#define SAVEt_FREEPV 11
+#define SAVEt_FREESV 12
+#define SAVEt_I16 13
+#define SAVEt_I32_SMALL 14
+#define SAVEt_I8 15
+#define SAVEt_INT_SMALL 16
+#define SAVEt_MORTALIZESV 17
+#define SAVEt_NSTAB 18
+#define SAVEt_OP 19
+#define SAVEt_PARSER 20
+#define SAVEt_STACK_POS 21
+#define SAVEt_READONLY_OFF 22
+#define SAVEt_FREEPADNAME 23
+#define SAVEt_STRLEN_SMALL 24
+#define SAVEt_FREERCPV 25
+
+/* two args */
+
+#define SAVEt_AV 26
+#define SAVEt_DESTRUCTOR 27
+#define SAVEt_DESTRUCTOR_X 28
+#define SAVEt_GENERIC_PVREF 29
+#define SAVEt_GENERIC_SVREF 30
+#define SAVEt_GP 31
+#define SAVEt_GVSV 32
+#define SAVEt_HINTS 33
+#define SAVEt_HPTR 34
+#define SAVEt_HV 35
+#define SAVEt_I32 36
+#define SAVEt_INT 37
+#define SAVEt_ITEM 38
+#define SAVEt_IV 39
+#define SAVEt_LONG 40
+#define SAVEt_PPTR 41
+#define SAVEt_SAVESWITCHSTACK 42
+#define SAVEt_SHARED_PVREF 43
+#define SAVEt_SPTR 44
+#define SAVEt_STRLEN 45
+#define SAVEt_SV 46
+#define SAVEt_SVREF 47
+#define SAVEt_VPTR 48
+#define SAVEt_ADELETE 49
+#define SAVEt_APTR 50
+#define SAVEt_RCPV 51
+
+/* three args */
+
+#define SAVEt_HELEM 52
+#define SAVEt_PADSV_AND_MORTALIZE 53
+#define SAVEt_SET_SVFLAGS 54
+#define SAVEt_GVSLOT 55
+#define SAVEt_AELEM 56
+#define SAVEt_DELETE 57
+#define SAVEt_HINTS_HH 58
+
+static const U8 leave_scope_arg_counts[] = {
+ 0, /* SAVEt_ALLOC */
+ 0, /* SAVEt_CLEARPADRANGE */
+ 0, /* SAVEt_CLEARSV */
+ 0, /* SAVEt_REGCONTEXT */
+ 1, /* SAVEt_TMPSFLOOR */
+ 1, /* SAVEt_BOOL */
+ 1, /* SAVEt_COMPILE_WARNINGS */
+ 1, /* SAVEt_CURCOP_WARNINGS */
+ 1, /* SAVEt_COMPPAD */
+ 1, /* SAVEt_FREECOPHH */
+ 1, /* SAVEt_FREEOP */
+ 1, /* SAVEt_FREEPV */
+ 1, /* SAVEt_FREESV */
+ 1, /* SAVEt_I16 */
+ 1, /* SAVEt_I32_SMALL */
+ 1, /* SAVEt_I8 */
+ 1, /* SAVEt_INT_SMALL */
+ 1, /* SAVEt_MORTALIZESV */
+ 1, /* SAVEt_NSTAB */
+ 1, /* SAVEt_OP */
+ 1, /* SAVEt_PARSER */
+ 1, /* SAVEt_STACK_POS */
+ 1, /* SAVEt_READONLY_OFF */
+ 1, /* SAVEt_FREEPADNAME */
+ 1, /* SAVEt_STRLEN_SMALL */
+ 1, /* SAVEt_FREERCPV */
+ 2, /* SAVEt_AV */
+ 2, /* SAVEt_DESTRUCTOR */
+ 2, /* SAVEt_DESTRUCTOR_X */
+ 2, /* SAVEt_GENERIC_PVREF */
+ 2, /* SAVEt_GENERIC_SVREF */
+ 2, /* SAVEt_GP */
+ 2, /* SAVEt_GVSV */
+ 2, /* SAVEt_HINTS */
+ 2, /* SAVEt_HPTR */
+ 2, /* SAVEt_HV */
+ 2, /* SAVEt_I32 */
+ 2, /* SAVEt_INT */
+ 2, /* SAVEt_ITEM */
+ 2, /* SAVEt_IV */
+ 2, /* SAVEt_LONG */
+ 2, /* SAVEt_PPTR */
+ 2, /* SAVEt_SAVESWITCHSTACK */
+ 2, /* SAVEt_SHARED_PVREF */
+ 2, /* SAVEt_SPTR */
+ 2, /* SAVEt_STRLEN */
+ 2, /* SAVEt_SV */
+ 2, /* SAVEt_SVREF */
+ 2, /* SAVEt_VPTR */
+ 2, /* SAVEt_ADELETE */
+ 2, /* SAVEt_APTR */
+ 2, /* SAVEt_RCPV */
+ 3, /* SAVEt_HELEM */
+ 3, /* SAVEt_PADSV_AND_MORTALIZE */
+ 3, /* SAVEt_SET_SVFLAGS */
+ 3, /* SAVEt_GVSLOT */
+ 3, /* SAVEt_AELEM */
+ 3, /* SAVEt_DELETE */
+ 3 /* SAVEt_HINTS_HH */
+};
+
+#define MAX_SAVEt 58
+
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h
index 240986ca33..2cd4ea2593 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h
@@ -38,9 +38,11 @@ The types are:
SVt_PVCV
SVt_PVFM
SVt_PVIO
+ SVt_PVOBJ
These are most easily explained from the bottom up.
+C<SVt_PVOBJ> is for object instances of the new `use feature 'class'` kind.
C<SVt_PVIO> is for I/O objects, C<SVt_PVFM> for formats, C<SVt_PVCV> for
subroutines, C<SVt_PVHV> for hashes and C<SVt_PVAV> for arrays.
@@ -67,10 +69,13 @@ PVMG, we save memory by allocating smaller structs when possible. All the
other types are just simpler forms of C<SVt_PVMG>, with fewer internal fields.
C<SVt_NULL> can only hold undef. C<SVt_IV> can hold undef, an integer, or a
reference. (C<SVt_RV> is an alias for C<SVt_IV>, which exists for backward
-compatibility.) C<SVt_NV> can hold any of those or a double. C<SVt_PV> can only
-hold C<undef> or a string. C<SVt_PVIV> is a superset of C<SVt_PV> and C<SVt_IV>.
-C<SVt_PVNV> is similar. C<SVt_PVMG> can hold anything C<SVt_PVNV> can hold, but it
-can, but does not have to, be blessed or magical.
+compatibility.) C<SVt_NV> can hold undef or a double. (In builds that support
+headless NVs, these could also hold a reference via a suitable offset, in the
+same way that SVt_IV does, but this is not currently supported and seems to
+be a rare use case.) C<SVt_PV> can hold C<undef>, a string, or a reference.
+C<SVt_PVIV> is a superset of C<SVt_PV> and C<SVt_IV>. C<SVt_PVNV> is a
+superset of C<SVt_PV> and C<SVt_NV>. C<SVt_PVMG> can hold anything C<SVt_PVNV>
+can hold, but it may also be blessed or magical.
=for apidoc AmnU||SVt_NULL
Type flag for scalars. See L</svtype>.
@@ -120,6 +125,9 @@ Type flag for formats. See L</svtype>.
=for apidoc AmnU||SVt_PVIO
Type flag for I/O objects. See L</svtype>.
+=for apidoc AmnUx||SVt_PVOBJ
+Type flag for object instances. See L</svtype>.
+
=cut
These are ordered so that the simpler types have a lower value; SvUPGRADE
@@ -130,35 +138,36 @@ Type flag for I/O objects. See L</svtype>.
typedef enum {
- SVt_NULL, /* 0 */
- /* BIND was here, before INVLIST replaced it. */
- SVt_IV, /* 1 */
- SVt_NV, /* 2 */
- /* RV was here, before it was merged with IV. */
- SVt_PV, /* 3 */
- SVt_INVLIST, /* 4, implemented as a PV */
- SVt_PVIV, /* 5 */
- SVt_PVNV, /* 6 */
- SVt_PVMG, /* 7 */
- SVt_REGEXP, /* 8 */
- /* PVBM was here, before BIND replaced it. */
- SVt_PVGV, /* 9 */
- SVt_PVLV, /* 10 */
- SVt_PVAV, /* 11 */
- SVt_PVHV, /* 12 */
- SVt_PVCV, /* 13 */
- SVt_PVFM, /* 14 */
- SVt_PVIO, /* 15 */
- /* 16-31: Unused, though one should be reserved for a
+ SVt_NULL, /* 0 */
+ /* BIND was here, before INVLIST replaced it. */
+ SVt_IV, /* 1 */
+ SVt_NV, /* 2 */
+ /* RV was here, before it was merged with IV. */
+ SVt_PV, /* 3 */
+ SVt_INVLIST, /* 4, implemented as a PV */
+ SVt_PVIV, /* 5 */
+ SVt_PVNV, /* 6 */
+ SVt_PVMG, /* 7 */
+ SVt_REGEXP, /* 8 */
+ /* PVBM was here, before BIND replaced it. */
+ SVt_PVGV, /* 9 */
+ SVt_PVLV, /* 10 */
+ SVt_PVAV, /* 11 */
+ SVt_PVHV, /* 12 */
+ SVt_PVCV, /* 13 */
+ SVt_PVFM, /* 14 */
+ SVt_PVIO, /* 15 */
+ SVt_PVOBJ, /* 16 */
+ /* 17-31: Unused, though one should be reserved for a
* freed sv, if the other 3 bits below the flags ones
* get allocated */
- SVt_LAST /* keep last in enum. used to size arrays */
+ SVt_LAST /* keep last in enum. used to size arrays */
} svtype;
/* *** any alterations to the SV types above need to be reflected in
* SVt_MASK and the various PL_valid_types_* tables. As of this writing those
* tables are in perl.h. There are also two affected names tables in dump.c,
- * one in B.xs, and 'bodies_by_type[]' in sv.c.
+ * one in B.xs, and 'bodies_by_type[]' in sv_inline.h.
*
* The bits that match 0xe0 are CURRENTLY UNUSED
* The bits above that are for flags, like SVf_IOK */
@@ -173,12 +182,15 @@ typedef enum {
# define SVt_RV SVt_IV
#endif
-/* There is collusion here with sv_clear - sv_clear exits early for SVt_NULL
- so never reaches the clause at the end that uses sv_type_details->body_size
- to determine whether to call safefree(). Hence body_size can be set
- non-zero to record the size of HEs, without fear of bogus frees. */
+/* The array of arena roots for SV bodies is indexed by SvTYPE. SVt_NULL doesn't
+ * use a body, so that arena root is re-used for HEs. SVt_IV also doesn't, so
+ * that arena root is used for HVs with struct xpvhv_aux. */
+
#if defined(PERL_IN_HV_C) || defined(PERL_IN_XS_APITEST)
-#define HE_SVSLOT SVt_NULL
+# define HE_ARENA_ROOT_IX SVt_NULL
+#endif
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+# define HVAUX_ARENA_ROOT_IX SVt_IV
#endif
#ifdef PERL_IN_SV_C
# define SVt_FIRST SVt_NULL /* the type of SV that new_SV() in sv.c returns */
@@ -206,15 +218,15 @@ typedef struct hek HEK;
#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 */ \
- SV** svu_array; \
- HE** svu_hash; \
- GP* svu_gp; \
- PerlIO *svu_fp; \
+ char* svu_pv; /* pointer to malloced string */ \
+ IV svu_iv; \
+ UV svu_uv; \
+ _NV_BODYLESS_UNION \
+ SV* svu_rv; /* pointer to another SV */ \
+ SV** svu_array; \
+ HE** svu_hash; \
+ GP* svu_gp; \
+ PerlIO *svu_fp; \
} sv_u \
_SV_HEAD_DEBUG
@@ -270,6 +282,11 @@ struct invlist {
_SV_HEAD_UNION;
};
+struct object {
+ _SV_HEAD(XPVOBJ*); /* pointer to xobject body */
+ _SV_HEAD_UNION;
+};
+
#undef _SV_HEAD
#undef _SV_HEAD_UNION /* ensure no pollution */
@@ -280,14 +297,14 @@ struct invlist {
Returns the value of the object's reference count. Exposed
to perl code via Internals::SvREFCNT().
-=for apidoc SvREFCNT_inc
-=for apidoc_item SvREFCNT_inc_NN
-=for apidoc_item SvREFCNT_inc_void
-=for apidoc_item |void|SvREFCNT_inc_void_NN|SV* sv
-=for apidoc_item |SV*|SvREFCNT_inc_simple|SV* sv
-=for apidoc_item |SV*|SvREFCNT_inc_simple_NN|SV* sv
+=for apidoc SvREFCNT_inc
+=for apidoc_item SvREFCNT_inc_NN
+=for apidoc_item |SV* |SvREFCNT_inc_simple|SV* sv
+=for apidoc_item |SV* |SvREFCNT_inc_simple_NN|SV* sv
=for apidoc_item |void|SvREFCNT_inc_simple_void|SV* sv
=for apidoc_item |void|SvREFCNT_inc_simple_void_NN|SV* sv
+=for apidoc_item SvREFCNT_inc_void
+=for apidoc_item |void|SvREFCNT_inc_void_NN|SV* sv
These all increment the reference count of the given SV.
The ones without C<void> in their names return the SV.
@@ -319,13 +336,30 @@ effects and you don't need the return value.
C<SvREFCNT_inc_simple_void_NN> can only be used with expressions without side
effects, you don't need the return value, and you know C<sv> is not C<NULL>.
-=for apidoc SvREFCNT_dec
+=for apidoc SvREFCNT_dec
+=for apidoc_item SvREFCNT_dec_set_NULL
+=for apidoc_item SvREFCNT_dec_ret_NULL
=for apidoc_item SvREFCNT_dec_NN
These decrement the reference count of the given SV.
C<SvREFCNT_dec_NN> may only be used when C<sv> is known to not be C<NULL>.
+The function C<SvREFCNT_dec_ret_NULL()> is identical to the
+C<SvREFCNT_dec()> except it returns a NULL C<SV *>. It is used by
+C<SvREFCNT_dec_set_NULL()> which is a macro which will, when passed a
+non-NULL argument, decrement the reference count of its argument and
+then set it to NULL. You can replace code of the following form:
+
+ if (sv) {
+ SvREFCNT_dec_NN(sv);
+ sv = NULL;
+ }
+
+with
+
+ SvREFCNT_dec_set_NULL(sv);
+
=for apidoc Am|svtype|SvTYPE|SV* sv
Returns the type of the SV. See C<L</svtype>>.
@@ -346,12 +380,22 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define SvREFCNT_inc_void(sv) Perl_SvREFCNT_inc_void(MUTABLE_SV(sv))
/* These guys don't need the curly blocks */
-#define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
+#define SvREFCNT_inc_simple_void(sv) \
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ if (sv_) \
+ SvREFCNT(sv_)++; \
+ } STMT_END
+
#define SvREFCNT_inc_simple_NN(sv) (++(SvREFCNT(sv)),MUTABLE_SV(sv))
#define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT(MUTABLE_SV(sv)))
#define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT(MUTABLE_SV(sv)))
#define SvREFCNT_dec(sv) Perl_SvREFCNT_dec(aTHX_ MUTABLE_SV(sv))
+#define SvREFCNT_dec_set_NULL(sv) \
+ STMT_START { \
+ sv = Perl_SvREFCNT_dec_ret_NULL(aTHX_ MUTABLE_SV(sv)); \
+ } STMT_END
#define SvREFCNT_dec_NN(sv) Perl_SvREFCNT_dec_NN(aTHX_ MUTABLE_SV(sv))
#define SVTYPEMASK 0xff
@@ -379,9 +423,9 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define SVphv_CLONEABLE SVp_SCREAM /* PVHV (stashes) clone its objects */
#define SVpgv_GP SVp_SCREAM /* GV has a valid GP */
#define SVprv_PCS_IMPORTED SVp_SCREAM /* RV is a proxy for a constant
- subroutine in another package. Set the
- GvIMPORTED_CV_on() if it needs to be
- expanded to a real GV */
+ subroutine in another package. Set the
+ GvIMPORTED_CV_on() if it needs to be
+ expanded to a real GV */
/* SVf_PROTECT is what SVf_READONLY should have been: i.e. modifying
* this SV is completely illegal. However, SVf_READONLY (via
@@ -394,7 +438,7 @@ perform the upgrade if necessary. See C<L</svtype>>.
#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 */
+ 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 */
@@ -402,10 +446,10 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define SVs_RMG 0x00800000 /* has random magical methods */
#define SVf_FAKE 0x01000000 /* 0: glob is just a copy
- 1: SV head arena wasn't malloc()ed
- 2: For PVCV, whether CvUNIQUE(cv)
- refers to an eval or once only
- [CvEVAL(cv), CvSPECIAL(cv)]
+ 1: SV head arena wasn't malloc()ed
+ 2: For PVCV, whether CvUNIQUE(cv)
+ refers to an eval or once only
+ [CvEVAL(cv), CvSPECIAL(cv)]
3: HV: informally reserved by DAPM
for vtables
4: Together with other flags (or
@@ -413,13 +457,12 @@ perform the upgrade if necessary. See C<L</svtype>>.
including PVLV-as-regex. See
isREGEXP().
*/
-#define SVf_OOK 0x02000000 /* has valid offset value. For a PVHV this
- means that a hv_aux struct is present
- after the main array */
+#define SVf_OOK 0x02000000 /* has valid offset value */
+#define SVphv_HasAUX SVf_OOK /* PVHV has an additional hv_aux struct */
#define SVf_BREAK 0x04000000 /* refcnt is artificially low - used by
- SVs in final arena cleanup.
- Set in S_regtry on PL_reg_curpm, so that
- perl_destruct will skip it.
+ SVs in final arena cleanup.
+ Set in S_regtry on PL_reg_curpm, so that
+ perl_destruct will skip it.
Used for mark and sweep by OP_AASSIGN
*/
#define SVf_READONLY 0x08000000 /* may not be modified */
@@ -428,10 +471,10 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define SVf_THINKFIRST (SVf_READONLY|SVf_PROTECT|SVf_ROK|SVf_FAKE \
- |SVs_RMG|SVf_IsCOW)
+ |SVs_RMG|SVf_IsCOW)
#define SVf_OK (SVf_IOK|SVf_NOK|SVf_POK|SVf_ROK| \
- SVp_IOK|SVp_NOK|SVp_POK|SVpgv_GP)
+ SVp_IOK|SVp_NOK|SVp_POK|SVpgv_GP)
#define PRIVSHIFT 4 /* (SVp_?OK >> PRIVSHIFT) == SVf_?OK */
@@ -443,14 +486,14 @@ perform the upgrade if necessary. See C<L</svtype>>.
*/
#define SVf_AMAGIC 0x10000000 /* has magical overloaded methods */
#define SVf_IsCOW 0x10000000 /* copy on write (shared hash key if
- SvLEN == 0) */
+ SvLEN == 0) */
/* 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
- only happen as a side effect of SvPV() */
+ This is also set on RVs whose overloaded
+ stringification is UTF-8. This might
+ only happen as a side effect of SvPV() */
/* PVHV */
#define SVphv_SHAREKEYS 0x20000000 /* PVHV keys live on shared string table */
@@ -462,6 +505,8 @@ perform the upgrade if necessary. See C<L</svtype>>.
/* Some private flags. */
+/* scalar SVs with SVp_POK */
+#define SVppv_STATIC 0x40000000 /* PV is pointer to static const; must be set with SVf_IsCOW */
/* PVAV */
#define SVpav_REAL 0x40000000 /* free old entries */
/* PVHV */
@@ -482,9 +527,9 @@ perform the upgrade if necessary. See C<L</svtype>>.
union _xmgu xmg_u; \
STRLEN xpv_cur; /* length of svu_pv as a C string */ \
union { \
- STRLEN xpvlenu_len; /* allocated size */ \
+ STRLEN xpvlenu_len; /* allocated size */ \
struct regexp* xpvlenu_rx; /* regex when SV body is XPVLV */ \
- } xpv_len_u
+ } xpv_len_u
#define xpv_len xpv_len_u.xpvlenu_len
@@ -544,13 +589,13 @@ struct xpvlv {
union _xivu xiv_u;
union _xnvu xnv_u;
union {
- STRLEN xlvu_targoff;
- SSize_t xlvu_stargoff;
+ STRLEN xlvu_targoff;
+ SSize_t xlvu_stargoff;
} xlv_targoff_u;
STRLEN xlv_targlen;
SV* xlv_targ;
char xlv_type; /* k=keys .=pos x=substr v=vec /=join/re
- * y=alem/helem/iter t=tie T=tied HE */
+ * y=alem/helem/iter t=tie T=tied HE */
char xlv_flags; /* 1 = negative offset 2 = negative len
4 = out of range (vec) */
};
@@ -582,26 +627,26 @@ typedef U32 cv_flags_t;
#define _XPVCV_COMMON \
HV * xcv_stash; \
union { \
- OP * xcv_start; \
- ANY xcv_xsubany; \
+ OP * xcv_start; \
+ ANY xcv_xsubany; \
} xcv_start_u; \
union { \
- OP * xcv_root; \
- void (*xcv_xsub) (pTHX_ CV*); \
+ OP * xcv_root; \
+ void (*xcv_xsub) (pTHX_ CV*); \
} xcv_root_u; \
union { \
- GV * xcv_gv; \
- HEK * xcv_hek; \
+ GV * xcv_gv; \
+ HEK * xcv_hek; \
} xcv_gv_u; \
char * xcv_file; \
union { \
- PADLIST * xcv_padlist; \
- void * xcv_hscxt; \
+ 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 \
- * sub */ \
+ * compilation) in the lexically enclosing \
+ * sub */ \
cv_flags_t xcv_flags; \
I32 xcv_depth /* >= 2 indicates recursive call */
@@ -628,8 +673,8 @@ struct xpvio {
* to hang any IO disciplines to.
*/
union {
- DIR * xiou_dirp; /* for opendir, readdir, etc */
- void * xiou_any; /* for alignment */
+ DIR * xiou_dirp; /* for opendir, readdir, etc */
+ void * xiou_any; /* for alignment */
} xio_dirpu;
/* IV xio_lines is now in IVX $. */
IV xio_page; /* $% */
@@ -655,7 +700,19 @@ struct xpvio {
#define IOf_UNTAINT 16 /* consider this fp (and its data) "safe" */
#define IOf_NOLINE 32 /* slurped a pseudo-line from empty file */
#define IOf_FAKE_DIRP 64 /* xio_dirp is fake (source filters kludge)
- Also, when this is set, SvPVX() is valid */
+ Also, when this is set, SvPVX() is valid */
+
+struct xobject {
+ HV* xmg_stash;
+ union _xmgu xmg_u;
+ SSize_t xobject_maxfield;
+ SSize_t xobject_iter_sv_at; /* this is only used by Perl_sv_clear() */
+ SV** xobject_fields;
+};
+
+#define ObjectMAXFIELD(inst) ((XPVOBJ *)SvANY(inst))->xobject_maxfield
+#define ObjectITERSVAT(inst) ((XPVOBJ *)SvANY(inst))->xobject_iter_sv_at
+#define ObjectFIELDS(inst) ((XPVOBJ *)SvANY(inst))->xobject_fields
/* The following macros define implementation-independent predicates on SVs. */
@@ -741,6 +798,55 @@ Unsets the PV status of an SV.
Tells an SV that it is a string and disables all other C<OK> bits.
Will also turn off the UTF-8 status.
+=for apidoc Am|U32|SvBoolFlagsOK|SV* sv
+Returns a bool indicating whether the SV has the right flags set such
+that it is safe to call C<BOOL_INTERNALS_sv_isbool()> or
+C<BOOL_INTERNALS_sv_isbool_true()> or
+C<BOOL_INTERNALS_sv_isbool_false()>. Currently equivalent to
+C<SvIandPOK(sv)> or C<SvIOK(sv) && SvPOK(sv)>. Serialization may want to
+unroll this check. If so you are strongly recommended to add code like
+C<assert(SvBoolFlagsOK(sv));> B<before> calling using any of the
+BOOL_INTERNALS macros.
+
+=for apidoc Am|U32|SvIandPOK|SV* sv
+Returns a bool indicating whether the SV is both C<SvPOK()> and
+C<SvIOK()> at the same time. Equivalent to C<SvIOK(sv) && SvPOK(sv)> but
+more efficient.
+
+=for apidoc Am|void|SvIandPOK_on|SV* sv
+Tells an SV that is a string and a number in one operation. Equivalent
+to C<SvIOK_on(sv); SvPOK_on(sv);> but more efficient.
+
+=for apidoc Am|void|SvIandPOK_off|SV* sv
+Unsets the PV and IV status of an SV in one operation. Equivalent to
+C<SvIOK_off(sv); SvPK_off(v);> but more efficient.
+
+=for apidoc Am|bool|BOOL_INTERNALS_sv_isbool|SV* sv
+Checks if a C<SvBoolFlagsOK()> sv is a bool. B<Note> that it is the
+caller's responsibility to ensure that the sv is C<SvBoolFlagsOK()> before
+calling this. This is only useful in specialized logic like
+serialization code where performance is critical and the flags have
+already been checked to be correct. Almost always you should be using
+C<sv_isbool(sv)> instead.
+
+=for apidoc Am|bool|BOOL_INTERNALS_sv_isbool_true|SV* sv
+Checks if a C<SvBoolFlagsOK()> sv is a true bool. B<Note> that it is
+the caller's responsibility to ensure that the sv is C<SvBoolFlagsOK()>
+before calling this. This is only useful in specialized logic like
+serialization code where performance is critical and the flags have
+already been checked to be correct. This is B<NOT> what you should use
+to check if an SV is "true", for that you should be using
+C<SvTRUE(sv)> instead.
+
+=for apidoc Am|bool|BOOL_INTERNALS_sv_isbool_false|SV* sv
+Checks if a C<SvBoolFlagsOK()> sv is a false bool. B<Note> that it is
+the caller's responsibility to ensure that the sv is C<SvBoolFlagsOK()>
+before calling this. This is only useful in specialized logic like
+serialization code where performance is critical and the flags have
+already been checked to be correct. This is B<NOT> what you should use
+to check if an SV is "false", for that you should be using
+C<!SvTRUE(sv)> instead.
+
=for apidoc Am|bool|SvVOK|SV* sv
Returns a boolean indicating whether the SV contains a v-string.
@@ -779,10 +885,10 @@ This is an unnecessary synonym for L</SvUVX>
Returns the raw value in the SV's NV slot, without checks or conversions.
Only use when you are sure C<SvNOK> is true. See also C<L</SvNV>>.
-=for apidoc Am|char*|SvPVX|SV* sv
-=for apidoc_item |char*|SvPVXx|SV* sv
+=for apidoc Am |char* |SvPVX|SV* sv
=for apidoc_item |const char*|SvPVX_const|SV* sv
-=for apidoc_item |char*|SvPVX_mutable|SV* sv
+=for apidoc_item |char* |SvPVX_mutable|SV* sv
+=for apidoc_item |char* |SvPVXx|SV* sv
These return a pointer to the physical string in the SV. The SV must contain a
string. Prior to 5.9.3 it is not safe to execute these unless the SV's
@@ -824,7 +930,7 @@ Returns the stash of the SV.
=for apidoc Am|void|SvIV_set|SV* sv|IV val
Set the value of the IV pointer in sv to val. It is possible to perform
the same function of this macro with an lvalue assignment to C<SvIVX>.
-With future Perls, however, it will be more efficient to use
+With future Perls, however, it will be more efficient to use
C<SvIV_set> instead of the lvalue assignment to C<SvIVX>.
=for apidoc Am|void|SvNV_set|SV* sv|NV val
@@ -869,45 +975,59 @@ Set the size of the string buffer for the SV. See C<L</SvLEN>>.
#define SvNIOK(sv) (SvFLAGS(sv) & (SVf_IOK|SVf_NOK))
#define SvNIOKp(sv) (SvFLAGS(sv) & (SVp_IOK|SVp_NOK))
#define SvNIOK_off(sv) (SvFLAGS(sv) &= ~(SVf_IOK|SVf_NOK| \
- SVp_IOK|SVp_NOK|SVf_IVisUV))
+ SVp_IOK|SVp_NOK|SVf_IVisUV))
#define assert_not_ROK(sv) assert_(!SvROK(sv) || !SvRV(sv))
#define assert_not_glob(sv) assert_(!isGV_with_GP(sv))
#define SvOK(sv) (SvFLAGS(sv) & SVf_OK)
#define SvOK_off(sv) (assert_not_ROK(sv) assert_not_glob(sv) \
- SvFLAGS(sv) &= ~(SVf_OK| \
- SVf_IVisUV|SVf_UTF8), \
- SvOOK_off(sv))
+ SvFLAGS(sv) &= ~(SVf_OK| \
+ SVf_IVisUV|SVf_UTF8), \
+ SvOOK_off(sv))
#define SvOK_off_exc_UV(sv) (assert_not_ROK(sv) \
- SvFLAGS(sv) &= ~(SVf_OK| \
- SVf_UTF8), \
- SvOOK_off(sv))
+ SvFLAGS(sv) &= ~(SVf_OK| \
+ SVf_UTF8), \
+ SvOOK_off(sv))
#define SvOKp(sv) (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK))
#define SvIOKp(sv) (SvFLAGS(sv) & SVp_IOK)
#define SvIOKp_on(sv) (assert_not_glob(sv) \
- SvFLAGS(sv) |= SVp_IOK)
+ SvFLAGS(sv) |= SVp_IOK)
#define SvNOKp(sv) (SvFLAGS(sv) & SVp_NOK)
#define SvNOKp_on(sv) (assert_not_glob(sv) SvFLAGS(sv) |= SVp_NOK)
#define SvPOKp(sv) (SvFLAGS(sv) & SVp_POK)
#define SvPOKp_on(sv) (assert_not_ROK(sv) assert_not_glob(sv) \
- SvFLAGS(sv) |= SVp_POK)
+ SvFLAGS(sv) |= SVp_POK)
#define SvIOK(sv) (SvFLAGS(sv) & SVf_IOK)
#define SvIOK_on(sv) (assert_not_glob(sv) \
- SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
+ SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
#define SvIOK_off(sv) (SvFLAGS(sv) &= ~(SVf_IOK|SVp_IOK|SVf_IVisUV))
#define SvIOK_only(sv) (SvOK_off(sv), \
- SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
+ SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
#define SvIOK_only_UV(sv) (assert_not_glob(sv) SvOK_off_exc_UV(sv), \
- SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
+ SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
#define SvIOK_UV(sv) ((SvFLAGS(sv) & (SVf_IOK|SVf_IVisUV)) \
- == (SVf_IOK|SVf_IVisUV))
+ == (SVf_IOK|SVf_IVisUV))
#define SvUOK(sv) SvIOK_UV(sv)
#define SvIOK_notUV(sv) ((SvFLAGS(sv) & (SVf_IOK|SVf_IVisUV)) \
- == SVf_IOK)
+ == SVf_IOK)
+
+#define SvIandPOK(sv) ((SvFLAGS(sv) & (SVf_IOK|SVf_POK)) == (SVf_IOK|SVf_POK))
+#define SvIandPOK_on(sv) (assert_not_glob(sv) \
+ (SvFLAGS(sv) |= (SVf_IOK|SVp_IOK|SVf_POK|SVp_POK)))
+#define SvIandPOK_off(sv) (SvFLAGS(sv) &= ~(SVf_IOK|SVp_IOK|SVf_IVisUV|SVf_POK|SVp_POK))
+
+#define SvBoolFlagsOK(sv) SvIandPOK(sv)
+
+#define BOOL_INTERNALS_sv_isbool(sv) (SvIsCOW_static(sv) && \
+ (SvPVX_const(sv) == PL_Yes || SvPVX_const(sv) == PL_No))
+#define BOOL_INTERNALS_sv_isbool_true(sv) (SvIsCOW_static(sv) && \
+ (SvPVX_const(sv) == PL_Yes))
+#define BOOL_INTERNALS_sv_isbool_false(sv) (SvIsCOW_static(sv) && \
+ (SvPVX_const(sv) == PL_No))
#define SvIsUV(sv) (SvFLAGS(sv) & SVf_IVisUV)
#define SvIsUV_on(sv) (SvFLAGS(sv) |= SVf_IVisUV)
@@ -915,10 +1035,10 @@ Set the size of the string buffer for the SV. See C<L</SvLEN>>.
#define SvNOK(sv) (SvFLAGS(sv) & SVf_NOK)
#define SvNOK_on(sv) (assert_not_glob(sv) \
- SvFLAGS(sv) |= (SVf_NOK|SVp_NOK))
+ SvFLAGS(sv) |= (SVf_NOK|SVp_NOK))
#define SvNOK_off(sv) (SvFLAGS(sv) &= ~(SVf_NOK|SVp_NOK))
#define SvNOK_only(sv) (SvOK_off(sv), \
- SvFLAGS(sv) |= (SVf_NOK|SVp_NOK))
+ SvFLAGS(sv) |= (SVf_NOK|SVp_NOK))
/*
=for apidoc Am|U32|SvUTF8|SV* sv
@@ -953,19 +1073,19 @@ in gv.h: */
#define SvPOK(sv) (SvFLAGS(sv) & SVf_POK)
#define SvPOK_on(sv) (assert_not_ROK(sv) assert_not_glob(sv) \
- SvFLAGS(sv) |= (SVf_POK|SVp_POK))
+ SvFLAGS(sv) |= (SVf_POK|SVp_POK))
#define SvPOK_off(sv) (SvFLAGS(sv) &= ~(SVf_POK|SVp_POK))
#define SvPOK_only(sv) (assert_not_ROK(sv) assert_not_glob(sv) \
- SvFLAGS(sv) &= ~(SVf_OK| \
- SVf_IVisUV|SVf_UTF8), \
- SvFLAGS(sv) |= (SVf_POK|SVp_POK))
+ SvFLAGS(sv) &= ~(SVf_OK| \
+ SVf_IVisUV|SVf_UTF8), \
+ SvFLAGS(sv) |= (SVf_POK|SVp_POK))
#define SvPOK_only_UTF8(sv) (assert_not_ROK(sv) assert_not_glob(sv) \
- SvFLAGS(sv) &= ~(SVf_OK| \
- SVf_IVisUV), \
- SvFLAGS(sv) |= (SVf_POK|SVp_POK))
+ SvFLAGS(sv) &= ~(SVf_OK| \
+ SVf_IVisUV), \
+ SvFLAGS(sv) |= (SVf_POK|SVp_POK))
#define SvVOK(sv) (SvMAGICAL(sv) \
- && mg_find(sv,PERL_MAGIC_vstring))
+ && mg_find(sv,PERL_MAGIC_vstring))
/*
=for apidoc Am|MAGIC*|SvVSTRING_mg|SV * sv
@@ -974,7 +1094,7 @@ Returns the vstring magic, or NULL if none
=cut
*/
#define SvVSTRING_mg(sv) (SvMAGICAL(sv) \
- ? mg_find(sv,PERL_MAGIC_vstring) : NULL)
+ ? mg_find(sv,PERL_MAGIC_vstring) : NULL)
#define SvOOK(sv) (SvFLAGS(sv) & SVf_OOK)
#define SvOOK_on(sv) (SvFLAGS(sv) |= SVf_OOK)
@@ -1014,8 +1134,17 @@ Remove any string offset.
#define SvRMAGICAL_on(sv) (SvFLAGS(sv) |= SVs_RMG)
#define SvRMAGICAL_off(sv) (SvFLAGS(sv) &= ~SVs_RMG)
+/*
+=for apidoc Am|bool|SvAMAGIC|SV * sv
+
+Returns a boolean as to whether C<sv> has overloading (active magic) enabled or
+not.
+
+=cut
+*/
+
#define SvAMAGIC(sv) (SvROK(sv) && SvOBJECT(SvRV(sv)) && \
- HvAMAGIC(SvSTASH(SvRV(sv))))
+ HvAMAGIC(SvSTASH(SvRV(sv))))
/* To be used on the stashes themselves: */
#define HvAMAGIC(hv) (SvFLAGS(hv) & SVf_AMAGIC)
@@ -1050,6 +1179,17 @@ Remove any string offset.
((SvFLAGS(sv) & (SVf_POK|SVf_UTF8|SVf_IOK|SVf_NOK|SVf_ROK|SVpgv_GP|SVf_THINKFIRST|SVs_GMG)) == SVf_POK)
/*
+=for apidoc Am|bool|SvIsBOOL|SV* sv
+
+Returns true if the SV is one of the special boolean constants (PL_sv_yes or
+PL_sv_no), or is a regular SV whose last assignment stored a copy of one.
+
+=cut
+*/
+
+#define SvIsBOOL(sv) Perl_sv_isbool(aTHX_ sv)
+
+/*
=for apidoc Am|U32|SvGAMAGIC|SV* sv
Returns true if the SV has get magic or
@@ -1066,17 +1206,17 @@ the scalar's value cannot change unless written to.
#define SvGAMAGIC(sv) (SvGMAGICAL(sv) || SvAMAGIC(sv))
#define Gv_AMG(stash) \
- (HvNAME(stash) && Gv_AMupdate(stash,FALSE) \
- ? 1 \
- : (HvAMAGIC_off(stash), 0))
+ (HvNAME(stash) && Gv_AMupdate(stash,FALSE) \
+ ? 1 \
+ : (HvAMAGIC_off(stash), 0))
#define SvWEAKREF(sv) ((SvFLAGS(sv) & (SVf_ROK|SVprv_WEAKREF)) \
- == (SVf_ROK|SVprv_WEAKREF))
+ == (SVf_ROK|SVprv_WEAKREF))
#define SvWEAKREF_on(sv) (SvFLAGS(sv) |= (SVf_ROK|SVprv_WEAKREF))
#define SvWEAKREF_off(sv) (SvFLAGS(sv) &= ~(SVf_ROK|SVprv_WEAKREF))
#define SvPCS_IMPORTED(sv) ((SvFLAGS(sv) & (SVf_ROK|SVprv_PCS_IMPORTED)) \
- == (SVf_ROK|SVprv_PCS_IMPORTED))
+ == (SVf_ROK|SVprv_PCS_IMPORTED))
#define SvPCS_IMPORTED_on(sv) (SvFLAGS(sv) |= (SVf_ROK|SVprv_PCS_IMPORTED))
#define SvPCS_IMPORTED_off(sv) (SvFLAGS(sv) &= ~(SVf_ROK|SVprv_PCS_IMPORTED))
@@ -1107,7 +1247,7 @@ C<sv_force_normal> does nothing.
#define SvTHINKFIRST(sv) (SvFLAGS(sv) & SVf_THINKFIRST)
#define SVs_PADMY 0
-#define SvPADMY(sv) !(SvFLAGS(sv) & SVs_PADTMP)
+#define SvPADMY(sv) (!(SvFLAGS(sv) & SVs_PADTMP))
#ifndef PERL_CORE
# define SvPADMY_on(sv) SvPADTMP_off(sv)
#endif
@@ -1166,12 +1306,12 @@ object type. Exposed to perl code via Internals::SvREADONLY().
#if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
# define SvTAIL(sv) ({ const SV *const _svtail = (const SV *)(sv); \
- assert(SvTYPE(_svtail) != SVt_PVAV); \
- assert(SvTYPE(_svtail) != SVt_PVHV); \
- assert(!(SvFLAGS(_svtail) & (SVf_NOK|SVp_NOK))); \
- assert(SvVALID(_svtail)); \
+ assert(SvTYPE(_svtail) != SVt_PVAV); \
+ assert(SvTYPE(_svtail) != SVt_PVHV); \
+ assert(!(SvFLAGS(_svtail) & (SVf_NOK|SVp_NOK))); \
+ assert(SvVALID(_svtail)); \
((XPVNV*)SvANY(_svtail))->xnv_u.xnv_bm_tail; \
- })
+ })
#else
# define SvTAIL(_svtail) (((XPVNV*)SvANY(_svtail))->xnv_u.xnv_bm_tail)
#endif
@@ -1219,76 +1359,76 @@ object type. Exposed to perl code via Internals::SvREADONLY().
# if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
/* These get expanded inside other macros that already use a variable _sv */
# define SvPVX(sv) \
- (*({ SV *const _svpvx = MUTABLE_SV(sv); \
- assert(PL_valid_types_PVX[SvTYPE(_svpvx) & SVt_MASK]); \
- assert(!isGV_with_GP(_svpvx)); \
- assert(!(SvTYPE(_svpvx) == SVt_PVIO \
- && !(IoFLAGS(_svpvx) & IOf_FAKE_DIRP))); \
- &((_svpvx)->sv_u.svu_pv); \
- }))
+ (*({ SV *const _svpvx = MUTABLE_SV(sv); \
+ assert(PL_valid_types_PVX[SvTYPE(_svpvx) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svpvx)); \
+ assert(!(SvTYPE(_svpvx) == SVt_PVIO \
+ && !(IoFLAGS(_svpvx) & IOf_FAKE_DIRP))); \
+ &((_svpvx)->sv_u.svu_pv); \
+ }))
# ifdef PERL_CORE
# define SvCUR(sv) \
- ({ const SV *const _svcur = (const SV *)(sv); \
- assert(PL_valid_types_PVX[SvTYPE(_svcur) & SVt_MASK]); \
- assert(!isGV_with_GP(_svcur)); \
- assert(!(SvTYPE(_svcur) == SVt_PVIO \
- && !(IoFLAGS(_svcur) & IOf_FAKE_DIRP))); \
- (((XPV*) MUTABLE_PTR(SvANY(_svcur)))->xpv_cur); \
- })
+ ({ const SV *const _svcur = (const SV *)(sv); \
+ assert(PL_valid_types_PVX[SvTYPE(_svcur) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svcur)); \
+ assert(!(SvTYPE(_svcur) == SVt_PVIO \
+ && !(IoFLAGS(_svcur) & IOf_FAKE_DIRP))); \
+ (((XPV*) MUTABLE_PTR(SvANY(_svcur)))->xpv_cur); \
+ })
# else
# define SvCUR(sv) \
- (*({ const SV *const _svcur = (const SV *)(sv); \
- assert(PL_valid_types_PVX[SvTYPE(_svcur) & SVt_MASK]); \
- assert(!isGV_with_GP(_svcur)); \
- assert(!(SvTYPE(_svcur) == SVt_PVIO \
- && !(IoFLAGS(_svcur) & IOf_FAKE_DIRP))); \
- &(((XPV*) MUTABLE_PTR(SvANY(_svcur)))->xpv_cur); \
- }))
+ (*({ const SV *const _svcur = (const SV *)(sv); \
+ assert(PL_valid_types_PVX[SvTYPE(_svcur) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svcur)); \
+ assert(!(SvTYPE(_svcur) == SVt_PVIO \
+ && !(IoFLAGS(_svcur) & IOf_FAKE_DIRP))); \
+ &(((XPV*) MUTABLE_PTR(SvANY(_svcur)))->xpv_cur); \
+ }))
# endif
# define SvIVX(sv) \
- (*({ const SV *const _svivx = (const SV *)(sv); \
- assert(PL_valid_types_IVX[SvTYPE(_svivx) & SVt_MASK]); \
- assert(!isGV_with_GP(_svivx)); \
- &(((XPVIV*) MUTABLE_PTR(SvANY(_svivx)))->xiv_iv); \
- }))
+ (*({ const SV *const _svivx = (const SV *)(sv); \
+ assert(PL_valid_types_IVX[SvTYPE(_svivx) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svivx)); \
+ &(((XPVIV*) MUTABLE_PTR(SvANY(_svivx)))->xiv_iv); \
+ }))
# define SvUVX(sv) \
- (*({ const SV *const _svuvx = (const SV *)(sv); \
- assert(PL_valid_types_IVX[SvTYPE(_svuvx) & SVt_MASK]); \
- assert(!isGV_with_GP(_svuvx)); \
- &(((XPVUV*) MUTABLE_PTR(SvANY(_svuvx)))->xuv_uv); \
- }))
+ (*({ const SV *const _svuvx = (const SV *)(sv); \
+ assert(PL_valid_types_IVX[SvTYPE(_svuvx) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svuvx)); \
+ &(((XPVUV*) MUTABLE_PTR(SvANY(_svuvx)))->xuv_uv); \
+ }))
# define SvNVX(sv) \
- (*({ const SV *const _svnvx = (const SV *)(sv); \
- assert(PL_valid_types_NVX[SvTYPE(_svnvx) & SVt_MASK]); \
- assert(!isGV_with_GP(_svnvx)); \
- &(((XPVNV*) MUTABLE_PTR(SvANY(_svnvx)))->xnv_u.xnv_nv); \
- }))
+ (*({ const SV *const _svnvx = (const SV *)(sv); \
+ assert(PL_valid_types_NVX[SvTYPE(_svnvx) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svnvx)); \
+ &(((XPVNV*) MUTABLE_PTR(SvANY(_svnvx)))->xnv_u.xnv_nv); \
+ }))
# define SvRV(sv) \
- (*({ SV *const _svrv = MUTABLE_SV(sv); \
- assert(PL_valid_types_RV[SvTYPE(_svrv) & SVt_MASK]); \
- assert(!isGV_with_GP(_svrv)); \
- assert(!(SvTYPE(_svrv) == SVt_PVIO \
- && !(IoFLAGS(_svrv) & IOf_FAKE_DIRP))); \
- &((_svrv)->sv_u.svu_rv); \
- }))
+ (*({ SV *const _svrv = MUTABLE_SV(sv); \
+ assert(PL_valid_types_RV[SvTYPE(_svrv) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svrv)); \
+ assert(!(SvTYPE(_svrv) == SVt_PVIO \
+ && !(IoFLAGS(_svrv) & IOf_FAKE_DIRP))); \
+ &((_svrv)->sv_u.svu_rv); \
+ }))
# define SvRV_const(sv) \
- ({ const SV *const _svrv = (const SV *)(sv); \
- assert(PL_valid_types_RV[SvTYPE(_svrv) & SVt_MASK]); \
- assert(!isGV_with_GP(_svrv)); \
- assert(!(SvTYPE(_svrv) == SVt_PVIO \
- && !(IoFLAGS(_svrv) & IOf_FAKE_DIRP))); \
- (_svrv)->sv_u.svu_rv; \
- })
+ ({ const SV *const _svrv = (const SV *)(sv); \
+ assert(PL_valid_types_RV[SvTYPE(_svrv) & SVt_MASK]); \
+ assert(!isGV_with_GP(_svrv)); \
+ assert(!(SvTYPE(_svrv) == SVt_PVIO \
+ && !(IoFLAGS(_svrv) & IOf_FAKE_DIRP))); \
+ (_svrv)->sv_u.svu_rv; \
+ })
# define SvMAGIC(sv) \
- (*({ const SV *const _svmagic = (const SV *)(sv); \
- assert(SvTYPE(_svmagic) >= SVt_PVMG); \
- &(((XPVMG*) MUTABLE_PTR(SvANY(_svmagic)))->xmg_u.xmg_magic); \
- }))
+ (*({ const SV *const _svmagic = (const SV *)(sv); \
+ assert(SvTYPE(_svmagic) >= SVt_PVMG); \
+ &(((XPVMG*) MUTABLE_PTR(SvANY(_svmagic)))->xmg_u.xmg_magic); \
+ }))
# define SvSTASH(sv) \
- (*({ const SV *const _svstash = (const SV *)(sv); \
- assert(SvTYPE(_svstash) >= SVt_PVMG); \
- &(((XPVMG*) MUTABLE_PTR(SvANY(_svstash)))->xmg_stash); \
- }))
+ (*({ const SV *const _svstash = (const SV *)(sv); \
+ assert(SvTYPE(_svstash) >= SVt_PVMG); \
+ &(((XPVMG*) MUTABLE_PTR(SvANY(_svstash)))->xmg_stash); \
+ }))
# else /* Below is not DEBUGGING or can't use brace groups */
# define SvPVX(sv) ((sv)->sv_u.svu_pv)
# define SvCUR(sv) ((XPV*) SvANY(sv))->xpv_cur
@@ -1305,8 +1445,8 @@ object type. Exposed to perl code via Internals::SvREADONLY().
#ifndef PERL_POISON
/* Given that these two are new, there can't be any existing code using them
* as LVALUEs, so prevent that from happening */
-# define SvPVX_mutable(sv) (0 + (sv)->sv_u.svu_pv)
-# define SvPVX_const(sv) ((const char*)(0 + (sv)->sv_u.svu_pv))
+# define SvPVX_mutable(sv) ((char *)((sv)->sv_u.svu_pv))
+# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv))
#else
/* Except for the poison code, which uses & to scribble over the pointer after
free() is called. */
@@ -1326,41 +1466,59 @@ object type. Exposed to perl code via Internals::SvREADONLY().
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) && (SvFLAGS(sv) & (SVf_NOK|SVf_POK))) \
- (void) SvIV(sv); } STMT_END
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ if (!SvIOKp(sv_) && (SvFLAGS(sv_) & (SVf_NOK|SVf_POK))) \
+ (void) SvIV(sv_); \
+ } STMT_END
#define SvIV_please_nomg(sv) \
- (!(SvFLAGS(sv) & (SVf_IOK|SVp_IOK)) && (SvFLAGS(sv) & (SVf_NOK|SVf_POK)) \
- ? (sv_2iv_flags(sv, 0), SvIOK(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 { \
- assert(PL_valid_types_IV_set[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- (((XPVIV*) SvANY(sv))->xiv_iv = (val)); } STMT_END
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert(PL_valid_types_IV_set[SvTYPE(sv_) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv_)); \
+ (((XPVIV*) SvANY(sv_))->xiv_iv = (val)); \
+ } STMT_END
+
#define SvNV_set(sv, val) \
- STMT_START { \
- assert(PL_valid_types_NV_set[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- (((XPVNV*)SvANY(sv))->xnv_u.xnv_nv = (val)); } STMT_END
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert(PL_valid_types_NV_set[SvTYPE(sv_) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv_)); \
+ (((XPVNV*)SvANY(sv_))->xnv_u.xnv_nv = (val)); \
+ } STMT_END
+
#define SvPV_set(sv, val) \
- STMT_START { \
- assert(PL_valid_types_PVX[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- assert(!(SvTYPE(sv) == SVt_PVIO \
- && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
- ((sv)->sv_u.svu_pv = (val)); } STMT_END
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert(PL_valid_types_PVX[SvTYPE(sv_) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv_)); \
+ assert(!(SvTYPE(sv_) == SVt_PVIO \
+ && !(IoFLAGS(sv_) & IOf_FAKE_DIRP))); \
+ ((sv_)->sv_u.svu_pv = (val)); \
+ } STMT_END
+
#define SvUV_set(sv, val) \
- STMT_START { \
- assert(PL_valid_types_IV_set[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- (((XPVUV*)SvANY(sv))->xuv_uv = (val)); } STMT_END
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert(PL_valid_types_IV_set[SvTYPE(sv_) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv_)); \
+ (((XPVUV*)SvANY(sv_))->xuv_uv = (val)); \
+ } STMT_END
+
#define SvRV_set(sv, val) \
STMT_START { \
- assert(PL_valid_types_RV[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- assert(!(SvTYPE(sv) == SVt_PVIO \
- && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
- ((sv)->sv_u.svu_rv = (val)); } STMT_END
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert(PL_valid_types_RV[SvTYPE(sv_) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv_)); \
+ assert(!(SvTYPE(sv_) == SVt_PVIO \
+ && !(IoFLAGS(sv_) & IOf_FAKE_DIRP))); \
+ ((sv_)->sv_u.svu_rv = (val)); \
+ } STMT_END
#define SvMAGIC_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
(((XPVMG*)SvANY(sv))->xmg_u.xmg_magic = (val)); } STMT_END
@@ -1368,28 +1526,28 @@ object type. Exposed to perl code via Internals::SvREADONLY().
STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
(((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END
#define SvCUR_set(sv, val) \
- STMT_START { \
- assert(PL_valid_types_PVX[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- assert(!(SvTYPE(sv) == SVt_PVIO \
- && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
- (((XPV*) SvANY(sv))->xpv_cur = (val)); } STMT_END
+ STMT_START { \
+ assert(PL_valid_types_PVX[SvTYPE(sv) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv)); \
+ assert(!(SvTYPE(sv) == SVt_PVIO \
+ && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
+ (((XPV*) SvANY(sv))->xpv_cur = (val)); } STMT_END
#define SvLEN_set(sv, val) \
- STMT_START { \
- assert(PL_valid_types_PVX[SvTYPE(sv) & SVt_MASK]); \
- assert(!isGV_with_GP(sv)); \
- assert(!(SvTYPE(sv) == SVt_PVIO \
- && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
- (((XPV*) SvANY(sv))->xpv_len = (val)); } STMT_END
+ STMT_START { \
+ assert(PL_valid_types_PVX[SvTYPE(sv) & SVt_MASK]); \
+ assert(!isGV_with_GP(sv)); \
+ assert(!(SvTYPE(sv) == SVt_PVIO \
+ && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
+ (((XPV*) SvANY(sv))->xpv_len = (val)); } STMT_END
#define SvEND_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
- SvCUR_set(sv, (val) - SvPVX(sv)); } STMT_END
+ STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
+ SvCUR_set(sv, (val) - SvPVX(sv)); } STMT_END
/*
=for apidoc Am|void|SvPV_renew|SV* sv|STRLEN len
Low level micro optimization of C<L</SvGROW>>. It is generally better to use
C<SvGROW> instead. This is because C<SvPV_renew> ignores potential issues that
-C<SvGROW> handles. C<sv> needs to have a real C<PV> that is unencombered by
+C<SvGROW> handles. C<sv> needs to have a real C<PV> that is unencumbered by
things like COW. Using C<SV_CHECK_THINKFIRST> or
C<SV_CHECK_THINKFIRST_COW_DROP> before calling this should clean it up, but
why not just use C<SvGROW> if you're not sure about the provenance?
@@ -1397,16 +1555,29 @@ why not just use C<SvGROW> if you're not sure about the provenance?
=cut
*/
#define SvPV_renew(sv,n) \
- STMT_START { SvLEN_set(sv, n); \
- SvPV_set((sv), (MEM_WRAP_CHECK_(n,char) \
- (char*)saferealloc((Malloc_t)SvPVX(sv), \
- (MEM_SIZE)((n))))); \
- } STMT_END
+ STMT_START { SvLEN_set(sv, n); \
+ SvPV_set((sv), (MEM_WRAP_CHECK_(n,char) \
+ (char*)saferealloc((Malloc_t)SvPVX(sv), \
+ (MEM_SIZE)((n))))); \
+ } STMT_END
+/*
+=for apidoc Am|void|SvPV_shrink_to_cur|SV* sv
+
+Trim any trailing unused memory in the PV of C<sv>, which needs to have a real
+C<PV> that is unencumbered by things like COW. Think first before using this
+functionality. Is the space saving really worth giving up COW? Will the
+needed size of C<sv> stay the same?
+
+If the answers are both yes, then use L</C<SV_CHECK_THINKFIRST>> or
+L</C<SV_CHECK_THINKFIRST_COW_DROP>> before calling this.
+
+=cut
+*/
#define SvPV_shrink_to_cur(sv) STMT_START { \
- const STRLEN _lEnGtH = SvCUR(sv) + 1; \
- SvPV_renew(sv, _lEnGtH); \
- } STMT_END
+ const STRLEN _lEnGtH = SvCUR(sv) + 1; \
+ SvPV_renew(sv, _lEnGtH); \
+ } STMT_END
/*
=for apidoc Am|void|SvPV_free|SV * sv
@@ -1418,32 +1589,32 @@ only be used as part of a larger operation
*/
#define SvPV_free(sv) \
STMT_START { \
- assert(SvTYPE(sv) >= SVt_PV); \
- if (SvLEN(sv)) { \
- assert(!SvROK(sv)); \
- if(UNLIKELY(SvOOK(sv))) { \
- STRLEN zok; \
- SvOOK_offset(sv, zok); \
- SvPV_set(sv, SvPVX_mutable(sv) - zok); \
- SvFLAGS(sv) &= ~SVf_OOK; \
- } \
- Safefree(SvPVX(sv)); \
- } \
- } STMT_END
+ assert(SvTYPE(sv) >= SVt_PV); \
+ if (SvLEN(sv)) { \
+ assert(!SvROK(sv)); \
+ if(UNLIKELY(SvOOK(sv))) { \
+ STRLEN zok; \
+ SvOOK_offset(sv, zok); \
+ SvPV_set(sv, SvPVX_mutable(sv) - zok); \
+ SvFLAGS(sv) &= ~SVf_OOK; \
+ } \
+ Safefree(SvPVX(sv)); \
+ } \
+ } STMT_END
#ifdef PERL_CORE
/* Code that crops up in three places to take a scalar and ready it to hold
a reference */
# define prepare_SV_for_RV(sv) \
STMT_START { \
- if (SvTYPE(sv) < SVt_PV && SvTYPE(sv) != SVt_IV) \
- sv_upgrade(sv, SVt_IV); \
- else if (SvTYPE(sv) >= SVt_PV) { \
- SvPV_free(sv); \
- SvLEN_set(sv, 0); \
+ if (SvTYPE(sv) < SVt_PV && SvTYPE(sv) != SVt_IV) \
+ sv_upgrade(sv, SVt_IV); \
+ else if (SvTYPE(sv) >= SVt_PV) { \
+ SvPV_free(sv); \
+ SvLEN_set(sv, 0); \
SvCUR_set(sv, 0); \
- } \
- } STMT_END
+ } \
+ } STMT_END
#endif
#ifndef PERL_CORE
@@ -1452,12 +1623,12 @@ only be used as part of a larger operation
#if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
# define BmUSEFUL(sv) \
- (*({ SV *const _bmuseful = MUTABLE_SV(sv); \
- assert(SvTYPE(_bmuseful) >= SVt_PVIV); \
- assert(SvVALID(_bmuseful)); \
- assert(!SvIOK(_bmuseful)); \
- &(((XPVIV*) SvANY(_bmuseful))->xiv_u.xivu_iv); \
- }))
+ (*({ SV *const _bmuseful = MUTABLE_SV(sv); \
+ assert(SvTYPE(_bmuseful) >= SVt_PVIV); \
+ assert(SvVALID(_bmuseful)); \
+ assert(!SvIOK(_bmuseful)); \
+ &(((XPVIV*) SvANY(_bmuseful))->xiv_u.xivu_iv); \
+ }))
#else
# define BmUSEFUL(sv) ((XPVIV*) SvANY(sv))->xiv_u.xivu_iv
@@ -1511,6 +1682,7 @@ only be used as part of a larger operation
#define IoTYPE_NUMERIC '#' /* fdopen */
/*
+=for apidoc_section $tainting
=for apidoc Am|bool|SvTAINTED|SV* sv
Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if
not.
@@ -1554,19 +1726,20 @@ attention to precisely which outputs are influenced by which inputs.
} STMT_END
/*
-=for apidoc Am|char*|SvPV_force|SV* sv|STRLEN len
-=for apidoc_item ||SvPV_force_nolen|SV* sv
-=for apidoc_item ||SvPVx_force|SV* sv|STRLEN len
-=for apidoc_item ||SvPV_force_nomg|SV* sv|STRLEN len
-=for apidoc_item ||SvPV_force_nomg_nolen|SV * sv
-=for apidoc_item ||SvPV_force_mutable|SV * sv|STRLEN len
-=for apidoc_item ||SvPV_force_flags|SV * sv|STRLEN len|U32 flags
-=for apidoc_item ||SvPV_force_flags_nolen|SV * sv|U32 flags
-=for apidoc_item ||SvPV_force_flags_mutable|SV * sv|STRLEN len|U32 flags
-=for apidoc_item ||SvPVbyte_force
-=for apidoc_item ||SvPVbytex_force
-=for apidoc_item ||SvPVutf8_force
-=for apidoc_item ||SvPVutf8x_force
+=for apidoc_section $SV
+=for apidoc Am|char*|SvPV_force |SV* sv|STRLEN len
+=for apidoc_item ||SvPV_force_flags |SV * sv|STRLEN len|U32 flags
+=for apidoc_item ||SvPV_force_flags_mutable|SV * sv|STRLEN len|U32 flags
+=for apidoc_item ||SvPV_force_flags_nolen |SV * sv |U32 flags
+=for apidoc_item ||SvPV_force_mutable |SV * sv|STRLEN len
+=for apidoc_item ||SvPV_force_nolen |SV* sv
+=for apidoc_item ||SvPV_force_nomg |SV* sv|STRLEN len
+=for apidoc_item ||SvPV_force_nomg_nolen |SV * sv
+=for apidoc_item ||SvPVbyte_force |SV * sv|STRLEN len
+=for apidoc_item ||SvPVbytex_force |SV * sv|STRLEN len
+=for apidoc_item ||SvPVutf8_force |SV * sv|STRLEN len
+=for apidoc_item ||SvPVutf8x_force |SV * sv|STRLEN len
+=for apidoc_item ||SvPVx_force |SV* sv|STRLEN len
These are like C<L</SvPV>>, returning the string in the SV, but will force the
SV into containing a string (C<L</SvPOK>>), and only a string
@@ -1611,37 +1784,37 @@ downgraded from UTF-8, this croaks.
C<SvPVbytex_force> is like C<SvPVbyte_force>, but guarantees to evaluate C<sv>
only once; use the more efficient C<SvPVbyte_force> otherwise.
-=for apidoc Am|char*|SvPV|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVx|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPV_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPV_nolen|SV* sv
-=for apidoc_item |char*|SvPVx_nolen|SV* sv
-=for apidoc_item |char*|SvPV_nomg_nolen|SV* sv
-=for apidoc_item |char*|SvPV_mutable|SV* sv|STRLEN len
-=for apidoc_item |const char*|SvPV_const|SV* sv|STRLEN len
-=for apidoc_item |const char*|SvPVx_const|SV* sv|STRLEN len
-=for apidoc_item |const char*|SvPV_nolen_const|SV* sv
-=for apidoc_item |const char*|SvPVx_nolen_const|SV* sv
-=for apidoc_item |const char*|SvPV_nomg_const|SV* sv|STRLEN len
+=for apidoc Am | char*|SvPV |SV* sv|STRLEN len
+=for apidoc_item |const char*|SvPV_const |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPV_flags |SV* sv|STRLEN len|U32 flags
+=for apidoc_item |const char*|SvPV_flags_const |SV* sv|STRLEN len|U32 flags
+=for apidoc_item | char*|SvPV_flags_mutable |SV* sv|STRLEN len|U32 flags
+=for apidoc_item | char*|SvPV_mutable |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPV_nolen |SV* sv
+=for apidoc_item |const char*|SvPV_nolen_const |SV* sv
+=for apidoc_item | char*|SvPV_nomg |SV* sv|STRLEN len
+=for apidoc_item |const char*|SvPV_nomg_const |SV* sv|STRLEN len
=for apidoc_item |const char*|SvPV_nomg_const_nolen|SV* sv
-=for apidoc_item |char *|SvPV_flags|SV * sv|STRLEN len|U32 flags
-=for apidoc_item |const char *|SvPV_flags_const|SV * sv|STRLEN len|U32 flags
-=for apidoc_item |char *|SvPV_flags_mutable|SV * sv|STRLEN len|U32 flags
-=for apidoc_item |char*|SvPVbyte|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_nolen|SV* sv
-=for apidoc_item |char*|SvPVbytex_nolen|SV* sv
-=for apidoc_item |char*|SvPVbytex|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_or_null|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_or_null_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8x|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8_nolen|SV* sv
-=for apidoc_item |char*|SvPVutf8_or_null|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8_or_null_nomg|SV* sv|STRLEN len
-
-All these return a pointer to the string in C<sv>, or a stringified form of
+=for apidoc_item | char*|SvPV_nomg_nolen |SV* sv
+=for apidoc_item | char*|SvPVbyte |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVbyte_nolen |SV* sv
+=for apidoc_item | char*|SvPVbyte_nomg |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVbyte_or_null |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVbyte_or_null_nomg|SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVbytex |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVbytex_nolen |SV* sv
+=for apidoc_item | char*|SvPVutf8 |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVutf8_nolen |SV* sv
+=for apidoc_item | char*|SvPVutf8_nomg |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVutf8_or_null |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVutf8_or_null_nomg|SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVutf8x |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVx |SV* sv|STRLEN len
+=for apidoc_item |const char*|SvPVx_const |SV* sv|STRLEN len
+=for apidoc_item | char*|SvPVx_nolen |SV* sv
+=for apidoc_item |const char*|SvPVx_nolen_const |SV* sv
+
+These each return a pointer to the string in C<sv>, or a stringified form of
C<sv> if it does not contain a string. The SV may cache the stringified
version becoming C<SvPOK>.
@@ -1687,13 +1860,11 @@ the string (unless you cast away const yourself).
The other forms return a mutable pointer so that the string is modifiable by
the caller; this is emphasized for the ones with C<mutable> in their names.
-The forms whose name ends in C<x> are the same as the corresponding form
-without the C<x>, but the C<x> form is guaranteed to evaluate C<sv> exactly
-once, with a slight loss of efficiency. Use this if C<sv> is an expression
-with side effects.
+As of 5.38, all forms are guaranteed to evaluate C<sv> exactly once. For
+earlier Perls, use a form whose name ends with C<x> for single evaluation.
C<SvPVutf8> is like C<SvPV>, but converts C<sv> to UTF-8 first if not already
-UTF-8. Similiarly, the other forms with C<utf8> in their names correspond to
+UTF-8. Similarly, the other forms with C<utf8> in their names correspond to
their respective forms without.
C<SvPVutf8_or_null> and C<SvPVutf8_or_null_nomg> don't have corresponding
@@ -1702,62 +1873,17 @@ undef, they return C<NULL>.
C<SvPVbyte> is like C<SvPV>, but converts C<sv> to byte representation first if
currently encoded as UTF-8. If C<sv> cannot be downgraded from UTF-8, it
-croaks. Similiarly, the other forms with C<byte> in their names correspond to
+croaks. Similarly, the other forms with C<byte> in their names correspond to
their respective forms without.
C<SvPVbyte_or_null> doesn't have a corresponding non-C<byte> form. Instead it
is like C<SvPVbyte>, but when C<sv> is undef, it returns C<NULL>.
-=for apidoc Am|IV|SvIV|SV* sv
-=for apidoc_item SvIVx
-=for apidoc_item SvIV_nomg
-
-These coerce the given SV to IV and return it. The returned value in many
-circumstances will get stored in C<sv>'s IV slot, but not in all cases. (Use
-C<L</sv_setiv>> to make sure it does).
-
-C<SvIVx> is different from the others in that it is guaranteed to evaluate
-C<sv> exactly once; the others may evaluate it multiple times. Only use this
-form if C<sv> is an expression with side effects, otherwise use the more
-efficient C<SvIV>.
-
-C<SvIV_nomg> is the same as C<SvIV>, but does not perform 'get' magic.
-
-=for apidoc Am|NV|SvNV|SV* sv
-=for apidoc_item SvNVx
-=for apidoc_item SvNV_nomg
-
-These coerce the given SV to NV and return it. The returned value in many
-circumstances will get stored in C<sv>'s NV slot, but not in all cases. (Use
-C<L</sv_setnv>> to make sure it does).
-
-C<SvNVx> is different from the others in that it is guaranteed to evaluate
-C<sv> exactly once; the others may evaluate it multiple times. Only use this
-form if C<sv> is an expression with side effects, otherwise use the more
-efficient C<SvNV>.
-
-C<SvNV_nomg> is the same as C<SvNV>, but does not perform 'get' magic.
-
-=for apidoc Am|UV|SvUV|SV* sv
-=for apidoc_item SvUVx
-=for apidoc_item SvUV_nomg
-
-These coerce the given SV to UV and return it. The returned value in many
-circumstances will get stored in C<sv>'s UV slot, but not in all cases. (Use
-C<L</sv_setuv>> to make sure it does).
-
-C<SvUVx> is different from the others in that it is guaranteed to evaluate
-C<sv> exactly once; the others may evaluate it multiple times. Only use this
-form if C<sv> is an expression with side effects, otherwise use the more
-efficient C<SvUV>.
-
-C<SvUV_nomg> is the same as C<SvUV>, but does not perform 'get' magic.
-
-=for apidoc SvTRUE
-=for apidoc_item SvTRUEx
-=for apidoc_item SvTRUE_nomg
+=for apidoc SvTRUE
=for apidoc_item SvTRUE_NN
+=for apidoc_item SvTRUE_nomg
=for apidoc_item SvTRUE_nomg_NN
+=for apidoc_item SvTRUEx
These return a boolean indicating whether Perl would evaluate the SV as true or
false. See C<L</SvOK>> for a defined/undefined test.
@@ -1778,45 +1904,6 @@ C<SvTRUE_nomg_NN> is like C<L</SvTRUE_nomg>>, but C<sv> is assumed to be
non-null (NN). If there is a possibility that it is NULL, use plain
C<SvTRUE_nomg>.
-=for apidoc Am|char*|SvPVutf8_force|SV* sv|STRLEN len
-Like C<SvPV_force>, but converts C<sv> to UTF-8 first if necessary.
-
-=for apidoc Am|char*|SvPVutf8|SV* sv|STRLEN len
-Like C<SvPV>, but converts C<sv> to UTF-8 first if necessary.
-
-=for apidoc Am|char*|SvPVutf8_nomg|SV* sv|STRLEN len
-Like C<SvPVutf8>, but does not process get magic.
-
-=for apidoc Am|char*|SvPVutf8_or_null|SV* sv|STRLEN len
-Like C<SvPVutf8>, but when C<sv> is undef, returns C<NULL>.
-
-=for apidoc Am|char*|SvPVutf8_or_null_nomg|SV* sv|STRLEN len
-Like C<SvPVutf8_or_null>, but does not process get magic.
-
-=for apidoc Am|char*|SvPVutf8_nolen|SV* sv
-Like C<SvPV_nolen>, but converts C<sv> to UTF-8 first if necessary.
-
-=for apidoc Am|char*|SvPVbyte_force|SV* sv|STRLEN len
-Like C<SvPV_force>, but converts C<sv> to byte representation first if
-necessary. If the SV cannot be downgraded from UTF-8, this croaks.
-
-=for apidoc Am|char*|SvPVbyte|SV* sv|STRLEN len
-Like C<SvPV>, but converts C<sv> to byte representation first if necessary. If
-the SV cannot be downgraded from UTF-8, this croaks.
-
-=for apidoc Am|char*|SvPVbyte_nomg|SV* sv|STRLEN len
-Like C<SvPVbyte>, but does not process get magic.
-
-=for apidoc Am|char*|SvPVbyte_or_null|SV* sv|STRLEN len
-Like C<SvPVbyte>, but when C<sv> is undef, returns C<NULL>.
-
-=for apidoc Am|char*|SvPVbyte_or_null_nomg|SV* sv|STRLEN len
-Like C<SvPVbyte_or_null>, but does not process get magic.
-
-=for apidoc Am|char*|SvPVbyte_nolen|SV* sv
-Like C<SvPV_nolen>, but converts C<sv> to byte representation first if
-necessary. If the SV cannot be downgraded from UTF-8, this croaks.
-
=for apidoc Am|U32|SvIsCOW|SV* sv
Returns a U32 value indicating whether the SV is Copy-On-Write (either shared
hash key scalars, or full Copy On Write scalars if 5.9.0 is configured for
@@ -1829,135 +1916,130 @@ scalar.
=cut
*/
-/* Let us hope that bitmaps for UV and IV are the same */
-#define SvIV(sv) (SvIOK_nog(sv) ? SvIVX(sv) : sv_2iv(sv))
-#define SvUV(sv) (SvUOK_nog(sv) ? SvUVX(sv) : sv_2uv(sv))
-#define SvNV(sv) (SvNOK_nog(sv) ? SvNVX(sv) : sv_2nv(sv))
-
-#define SvIV_nomg(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv_flags(sv, 0))
-#define SvUV_nomg(sv) (SvUOK(sv) ? SvUVX(sv) : sv_2uv_flags(sv, 0))
-#define SvNV_nomg(sv) (SvNOK(sv) ? SvNVX(sv) : sv_2nv_flags(sv, 0))
-
-/* ----*/
-
-#define SvPV(sv, len) SvPV_flags(sv, len, SV_GMAGIC)
-#define SvPV_const(sv, len) SvPV_flags_const(sv, len, SV_GMAGIC)
-#define SvPV_mutable(sv, len) SvPV_flags_mutable(sv, len, SV_GMAGIC)
-
-#define SvPV_flags(sv, len, flags) \
- (SvPOK_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &len, flags))
-#define SvPV_flags_const(sv, len, flags) \
- (SvPOK_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX_const(sv)) : \
- (const char*) sv_2pv_flags(sv, &len, (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)))
-#define SvPV_flags_mutable(sv, len, flags) \
- (SvPOK_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX_mutable(sv)) : \
- sv_2pv_flags(sv, &len, (flags|SV_MUTABLE_RETURN)))
-
-#define SvPV_force(sv, len) SvPV_force_flags(sv, len, SV_GMAGIC)
-#define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
-#define SvPV_force_mutable(sv, len) SvPV_force_flags_mutable(sv, len, SV_GMAGIC)
-
-#define SvPV_force_nomg(sv, len) SvPV_force_flags(sv, len, 0)
-#define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0)
-
-#define SvPV_force_flags(sv, len, flags) \
- (SvPOK_pure_nogthink(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &len, flags))
-
-#define SvPV_force_flags_nolen(sv, flags) \
- (SvPOK_pure_nogthink(sv) \
- ? SvPVX(sv) : sv_pvn_force_flags(sv, 0, flags))
-
-#define SvPV_force_flags_mutable(sv, len, flags) \
- (SvPOK_pure_nogthink(sv) \
- ? ((len = SvCUR(sv)), SvPVX_mutable(sv)) \
- : sv_pvn_force_flags(sv, &len, flags|SV_MUTABLE_RETURN))
+/* To pass the action to the functions called by the following macros */
+typedef enum {
+ SvPVutf8_type_,
+ SvPVbyte_type_,
+ SvPVnormal_type_,
+ SvPVforce_type_,
+ SvPVutf8_pure_type_,
+ SvPVbyte_pure_type_
+} PL_SvPVtype;
+
+START_EXTERN_C
+
+/* When this code was written, embed.fnc could not handle function pointer
+ * parameters; perhaps it still can't */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE char*
+Perl_SvPV_helper(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags, const PL_SvPVtype type, char * (*non_trivial)(pTHX_ SV *, STRLEN * const, const U32), const bool or_null, const U32 return_flags);
+#endif
-#define SvPV_nolen(sv) \
- (SvPOK_nog(sv) \
- ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC))
+END_EXTERN_C
+
+/* This test is "is there a cached PV that we can use directly?"
+ * We can if
+ * a) SVf_POK is true and there's definitely no get magic on the scalar
+ * b) SVp_POK is true, there's no get magic, and we know that the cached PV
+ * came from an IV conversion.
+ * For the latter case, we don't set SVf_POK so that we can distinguish whether
+ * the value originated as a string or as an integer, before we cached the
+ * second representation. */
+#define SvPOK_or_cached_IV(sv) \
+ (((SvFLAGS(sv) & (SVf_POK|SVs_GMG)) == SVf_POK) || ((SvFLAGS(sv) & (SVf_IOK|SVp_POK|SVs_GMG)) == (SVf_IOK|SVp_POK)))
+
+#define SvPV_flags(sv, len, flags) \
+ Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
+ Perl_sv_2pv_flags, FALSE, 0)
+#define SvPV_flags_const(sv, len, flags) \
+ ((const char*) Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
+ Perl_sv_2pv_flags, FALSE, \
+ SV_CONST_RETURN))
+#define SvPV_flags_const_nolen(sv, flags) \
+ ((const char*) Perl_SvPV_helper(aTHX_ sv, NULL, flags, SvPVnormal_type_, \
+ Perl_sv_2pv_flags, FALSE, \
+ SV_CONST_RETURN))
+#define SvPV_flags_mutable(sv, len, flags) \
+ Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
+ Perl_sv_2pv_flags, FALSE, SV_MUTABLE_RETURN)
+
+#define SvPV_nolen(sv) \
+ Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVnormal_type_, \
+ Perl_sv_2pv_flags, FALSE, 0)
+
+#define SvPV_nolen_const(sv) SvPV_flags_const_nolen(sv, SV_GMAGIC)
+
+#define SvPV(sv, len) SvPV_flags(sv, len, SV_GMAGIC)
+#define SvPV_const(sv, len) SvPV_flags_const(sv, len, SV_GMAGIC)
+#define SvPV_mutable(sv, len) SvPV_flags_mutable(sv, len, SV_GMAGIC)
+
+#define SvPV_nomg_nolen(sv) \
+ Perl_SvPV_helper(aTHX_ sv, NULL, 0, SvPVnormal_type_,Perl_sv_2pv_flags, \
+ FALSE, 0)
+#define SvPV_nomg(sv, len) SvPV_flags(sv, len, 0)
+#define SvPV_nomg_const(sv, len) SvPV_flags_const(sv, len, 0)
+#define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
+
+#define SvPV_force_flags(sv, len, flags) \
+ Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVforce_type_, \
+ Perl_sv_pvn_force_flags, FALSE, 0)
+#define SvPV_force_flags_nolen(sv, flags) \
+ Perl_SvPV_helper(aTHX_ sv, NULL, flags, SvPVforce_type_, \
+ Perl_sv_pvn_force_flags, FALSE, 0)
+#define SvPV_force_flags_mutable(sv, len, flags) \
+ Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVforce_type_, \
+ Perl_sv_pvn_force_flags, FALSE, SV_MUTABLE_RETURN)
+
+#define SvPV_force(sv, len) SvPV_force_flags(sv, len, SV_GMAGIC)
+#define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
+#define SvPV_force_mutable(sv, len) SvPV_force_flags_mutable(sv, len, SV_GMAGIC)
/* "_nomg" in these defines means no mg_get() */
-#define SvPV_nomg_nolen(sv) \
- (SvPOK_nog(sv) \
- ? SvPVX(sv) : sv_2pv_flags(sv, 0, 0))
-
-#define SvPV_nolen_const(sv) \
- (SvPOK_nog(sv) \
- ? SvPVX_const(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC|SV_CONST_RETURN))
-
-#define SvPV_nomg(sv, len) SvPV_flags(sv, len, 0)
-#define SvPV_nomg_const(sv, len) SvPV_flags_const(sv, len, 0)
-#define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
-
-/* ----*/
-
-#define SvPVutf8(sv, len) \
- (SvPOK_utf8_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvutf8(sv, &len))
-
-#define SvPVutf8_or_null(sv, len) \
- (SvPOK_utf8_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : (SvGETMAGIC(sv), SvOK(sv)) \
- ? sv_2pvutf8_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVutf8_nomg(sv, len) \
- (SvPOK_utf8_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvutf8_flags(sv, &len, 0))
-
-#define SvPVutf8_or_null_nomg(sv, len) \
- (SvPOK_utf8_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : SvOK(sv) \
- ? sv_2pvutf8_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVutf8_force(sv, len) \
- (SvPOK_utf8_pure_nogthink(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_pvutf8n_force(sv, &len))
-
-#define SvPVutf8_nolen(sv) \
- (SvPOK_utf8_nog(sv) \
- ? SvPVX(sv) : sv_2pvutf8(sv, 0))
-
-/* ----*/
-
-#define SvPVbyte(sv, len) \
- (SvPOK_byte_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &len))
-
-#define SvPVbyte_or_null(sv, len) \
- (SvPOK_byte_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : (SvGETMAGIC(sv), SvOK(sv)) \
- ? sv_2pvbyte_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVbyte_nomg(sv, len) \
- (SvPOK_byte_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte_flags(sv, &len, 0))
-
-#define SvPVbyte_or_null_nomg(sv, len) \
- (SvPOK_utf8_nog(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : SvOK(sv) \
- ? sv_2pvbyte_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVbyte_force(sv, len) \
- (SvPOK_byte_pure_nogthink(sv) \
- ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_pvbyten_force(sv, &len))
-
-#define SvPVbyte_nolen(sv) \
- (SvPOK_byte_nog(sv) \
- ? SvPVX(sv) : sv_2pvbyte(sv, 0))
-
-
-/* define FOOx(): idempotent versions of FOO(). If possible, use a local
- * var to evaluate the arg once; failing that, use a global if possible;
- * failing that, call a function to do the work
- */
+#define SvPV_force_nomg(sv, len) SvPV_force_flags(sv, len, 0)
+#define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0)
+
+#define SvPVutf8(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVutf8_type_, \
+ Perl_sv_2pvutf8_flags, FALSE, 0)
+#define SvPVutf8_nomg(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_type_, \
+ Perl_sv_2pvutf8_flags, FALSE, 0)
+#define SvPVutf8_nolen(sv) \
+ Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVutf8_type_, \
+ Perl_sv_2pvutf8_flags, FALSE, 0)
+#define SvPVutf8_or_null(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVutf8_type_, \
+ Perl_sv_2pvutf8_flags, TRUE, 0)
+#define SvPVutf8_or_null_nomg(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_type_, \
+ Perl_sv_2pvutf8_flags, TRUE, 0)
+
+#define SvPVbyte(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVbyte_type_, \
+ Perl_sv_2pvbyte_flags, FALSE, 0)
+#define SvPVbyte_nomg(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_type_, \
+ Perl_sv_2pvbyte_flags, FALSE, 0)
+#define SvPVbyte_nolen(sv) \
+ Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVbyte_type_, \
+ Perl_sv_2pvbyte_flags, FALSE, 0)
+#define SvPVbyte_or_null(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVbyte_type_, \
+ Perl_sv_2pvbyte_flags, TRUE, 0)
+#define SvPVbyte_or_null_nomg(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_type_, \
+ Perl_sv_2pvbyte_flags, TRUE, 0)
+
+#define SvPVutf8_force(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_pure_type_, \
+ Perl_sv_pvutf8n_force_wrapper, FALSE, 0)
+
+#define SvPVbyte_force(sv, len) \
+ Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_pure_type_, \
+ Perl_sv_pvbyten_force_wrapper, FALSE, 0)
+
+/* define FOOx(): Before FOO(x) was inlined, these were idempotent versions of
+ * FOO(). */
#define SvPVx_force(sv, len) sv_pvn_force(sv, &len)
#define SvPVutf8x_force(sv, len) sv_pvutf8n_force(sv, &len)
@@ -1967,11 +2049,12 @@ scalar.
#define SvTRUEx_nomg(sv) SvTRUE_nomg(sv)
#define SvTRUE_nomg_NN(sv) SvTRUE_common(sv, TRUE)
+# define SvIVx(sv) SvIV(sv)
+# define SvUVx(sv) SvUV(sv)
+# define SvNVx(sv) SvNV(sv)
+
#if defined(PERL_USE_GCC_BRACE_GROUPS)
-# define SvIVx(sv) ({SV *_sv = MUTABLE_SV(sv); SvIV(_sv); })
-# define SvUVx(sv) ({SV *_sv = MUTABLE_SV(sv); SvUV(_sv); })
-# define SvNVx(sv) ({SV *_sv = MUTABLE_SV(sv); SvNV(_sv); })
# define SvPVx(sv, len) ({SV *_sv = (sv); SvPV(_sv, len); })
# define SvPVx_const(sv, len) ({SV *_sv = (sv); SvPV_const(_sv, len); })
# define SvPVx_nolen(sv) ({SV *_sv = (sv); SvPV_nolen(_sv); })
@@ -1985,9 +2068,6 @@ scalar.
/* These inlined macros use globals, which will require a thread
* declaration in user code, so we avoid them under threads */
-# define SvIVx(sv) ((PL_Sv = (sv)), SvIV(PL_Sv))
-# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv))
-# define SvNVx(sv) ((PL_Sv = (sv)), SvNV(PL_Sv))
# define SvPVx(sv, len) ((PL_Sv = (sv)), SvPV(PL_Sv, len))
# define SvPVx_const(sv, len) ((PL_Sv = (sv)), SvPV_const(PL_Sv, len))
# define SvPVx_nolen(sv) ((PL_Sv = (sv)), SvPV_nolen(PL_Sv))
@@ -1997,24 +2077,14 @@ scalar.
# define SvPVbytex_nolen(sv) ((PL_Sv = (sv)), SvPVbyte_nolen(PL_Sv))
#endif /* __GNU__ */
-#define SvPVXtrue(sv) ( \
- ((XPV*)SvANY((sv))) \
- && ( \
- ((XPV*)SvANY((sv)))->xpv_cur > 1 \
- || ( \
- ((XPV*)SvANY((sv)))->xpv_cur \
- && *(sv)->sv_u.svu_pv != '0' \
- ) \
- ) \
-)
-
-#define SvIsCOW(sv) (SvFLAGS(sv) & SVf_IsCOW)
-#define SvIsCOW_on(sv) (SvFLAGS(sv) |= SVf_IsCOW)
-#define SvIsCOW_off(sv) (SvFLAGS(sv) &= ~SVf_IsCOW)
-#define SvIsCOW_shared_hash(sv) (SvIsCOW(sv) && SvLEN(sv) == 0)
+#define SvIsCOW(sv) (SvFLAGS(sv) & SVf_IsCOW)
+#define SvIsCOW_on(sv) (SvFLAGS(sv) |= SVf_IsCOW)
+#define SvIsCOW_off(sv) (SvFLAGS(sv) &= ~(SVf_IsCOW|SVppv_STATIC))
+#define SvIsCOW_shared_hash(sv) ((SvFLAGS(sv) & (SVf_IsCOW|SVppv_STATIC)) == (SVf_IsCOW) && SvLEN(sv) == 0)
+#define SvIsCOW_static(sv) ((SvFLAGS(sv) & (SVf_IsCOW|SVppv_STATIC)) == (SVf_IsCOW|SVppv_STATIC))
#define SvSHARED_HEK_FROM_PV(pvx) \
- ((struct hek*)(pvx - STRUCT_OFFSET(struct hek, hek_key)))
+ ((struct hek*)(pvx - STRUCT_OFFSET(struct hek, hek_key)))
/*
=for apidoc Am|struct hek*|SvSHARED_HASH|SV * sv
Returns the hash for C<sv> created by C<L</newSVpvn_share>>.
@@ -2032,31 +2102,33 @@ Returns the hash for C<sv> created by C<L</newSVpvn_share>>.
=cut
*/
-#define SV_IMMEDIATE_UNREF 1
-#define SV_GMAGIC 2
-#define SV_COW_DROP_PV 4
-#define SV_NOSTEAL 16
-#define SV_CONST_RETURN 32
-#define SV_MUTABLE_RETURN 64
-#define SV_SMAGIC 128
-#define SV_HAS_TRAILING_NUL 256
-#define SV_COW_SHARED_HASH_KEYS 512
+/* Flags used as `U32 flags` arguments to various functions */
+#define SV_IMMEDIATE_UNREF (1 << 0) /* 0x0001 - 1 */
+#define SV_GMAGIC (1 << 1) /* 0x0002 - 2 */
+#define SV_COW_DROP_PV (1 << 2) /* 0x0004 - 4 */
+/* SV_NOT_USED (1 << 3) 0x0008 - 8 */
+#define SV_NOSTEAL (1 << 4) /* 0x0010 - 16 */
+#define SV_CONST_RETURN (1 << 5) /* 0x0020 - 32 */
+#define SV_MUTABLE_RETURN (1 << 6) /* 0x0040 - 64 */
+#define SV_SMAGIC (1 << 7) /* 0x0080 - 128 */
+#define SV_HAS_TRAILING_NUL (1 << 8) /* 0x0100 - 256 */
+#define SV_COW_SHARED_HASH_KEYS (1 << 9) /* 0x0200 - 512 */
/* This one is only enabled for PERL_OLD_COPY_ON_WRITE */
/* XXX This flag actually enabled for any COW. But it appears not to do
anything. Can we just remove it? Or will it serve some future
purpose. */
-#define SV_COW_OTHER_PVS 1024
+#define SV_COW_OTHER_PVS (1 << 10) /* 0x0400 - 1024 */
/* Make sv_2pv_flags return NULL if something is undefined. */
-#define SV_UNDEF_RETURNS_NULL 2048
+#define SV_UNDEF_RETURNS_NULL (1 << 11) /* 0x0800 - 2048 */
/* Tell sv_utf8_upgrade() to not check to see if an upgrade is really needed.
* This is used when the caller has already determined it is, and avoids
* redundant work */
-#define SV_FORCE_UTF8_UPGRADE 4096
+#define SV_FORCE_UTF8_UPGRADE (1 << 12) /* 0x1000 - 4096 */
/* 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
-#define SV_CATBYTES 16384
-#define SV_CATUTF8 32768
+#define SV_SKIP_OVERLOAD (1 << 13) /* 0x2000 - 8192 */
+#define SV_CATBYTES (1 << 14) /* 0x4000 - 16384 */
+#define SV_CATUTF8 (1 << 15) /* 0x8000 - 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.
@@ -2077,32 +2149,51 @@ Returns the hash for C<sv> created by C<L</newSVpvn_share>>.
#define sv_usepvn(sv, p, l) sv_usepvn_flags(sv, p, l, 0)
#define sv_usepvn_mg(sv, p, l) sv_usepvn_flags(sv, p, l, SV_SMAGIC)
-/* We are about to replace the SV's current value. So if it's copy on write
- we need to normalise it. Use the SV_COW_DROP_PV flag hint to say that
- the value is about to get thrown away, so drop the PV rather than go to
- the effort of making a read-write copy only for it to get immediately
- discarded. */
+/*
+=for apidoc Am|void|SV_CHECK_THINKFIRST_COW_DROP|SV * sv
+
+Call this when you are about to replace the PV value in C<sv>, which is
+potentially copy-on-write. It stops any sharing with other SVs, so that no
+Copy on Write (COW) actually happens. This COW would be useless, as it would
+immediately get changed to something else. This function also removes any
+other encumbrances that would be problematic when changing C<sv>.
+
+=cut
+*/
#define SV_CHECK_THINKFIRST_COW_DROP(sv) if (SvTHINKFIRST(sv)) \
- sv_force_normal_flags(sv, SV_COW_DROP_PV)
+ sv_force_normal_flags(sv, SV_COW_DROP_PV)
#ifdef PERL_COPY_ON_WRITE
# define SvCANCOW(sv) \
- (SvIsCOW(sv) \
- ? SvLEN(sv) ? CowREFCNT(sv) != SV_COW_REFCNT_MAX : 1 \
- : (SvFLAGS(sv) & CAN_COW_MASK) == CAN_COW_FLAGS \
- && SvCUR(sv)+1 < SvLEN(sv))
+ (SvIsCOW(sv) \
+ ? SvLEN(sv) ? CowREFCNT(sv) != SV_COW_REFCNT_MAX : 1 \
+ : (SvFLAGS(sv) & CAN_COW_MASK) == CAN_COW_FLAGS \
+ && SvCUR(sv)+1 < SvLEN(sv))
/* Note: To allow 256 COW "copies", a refcnt of 0 means 1. */
# define CowREFCNT(sv) (*(U8 *)(SvPVX(sv)+SvLEN(sv)-1))
# define SV_COW_REFCNT_MAX nBIT_UMAX(sizeof(U8) * CHARBITS)
# define CAN_COW_MASK (SVf_POK|SVf_ROK|SVp_POK|SVf_FAKE| \
- SVf_OOK|SVf_BREAK|SVf_READONLY|SVf_PROTECT)
+ SVf_OOK|SVf_BREAK|SVf_READONLY|SVf_PROTECT)
#endif
#define CAN_COW_FLAGS (SVp_POK|SVf_POK)
+/*
+=for apidoc Am|void|SV_CHECK_THINKFIRST|SV * sv
+
+Remove any encumbrances from C<sv>, that need to be taken care of before it
+is modifiable. For example if it is Copy on Write (COW), now is the time to
+make that copy.
+
+If you know that you are about to change the PV value of C<sv>, instead use
+L</C<SV_CHECK_THINKFIRST_COW_DROP>> to avoid the write that would be
+immediately written again.
+
+=cut
+*/
#define SV_CHECK_THINKFIRST(sv) if (SvTHINKFIRST(sv)) \
- sv_force_normal_flags(sv, 0)
+ sv_force_normal_flags(sv, 0)
/* all these 'functions' are now just macros */
@@ -2119,7 +2210,7 @@ Returns the hash for C<sv> created by C<L</newSVpvn_share>>.
#define sv_catpvn_nomg(dsv, sstr, slen) sv_catpvn_flags(dsv, sstr, slen, 0)
#define sv_catpv_nomg(dsv, sstr) sv_catpv_flags(dsv, sstr, 0)
#define sv_setsv(dsv, ssv) \
- sv_setsv_flags(dsv, ssv, SV_GMAGIC|SV_DO_COW_SVSETSV)
+ sv_setsv_flags(dsv, ssv, SV_GMAGIC|SV_DO_COW_SVSETSV)
#define sv_setsv_nomg(dsv, ssv) sv_setsv_flags(dsv, ssv, SV_DO_COW_SVSETSV)
#define sv_catsv(dsv, ssv) sv_catsv_flags(dsv, ssv, SV_GMAGIC)
#define sv_catsv_nomg(dsv, ssv) sv_catsv_flags(dsv, ssv, 0)
@@ -2143,40 +2234,42 @@ Returns the hash for C<sv> created by C<L</newSVpvn_share>>.
#define sv_eq(sv1, sv2) sv_eq_flags(sv1, sv2, SV_GMAGIC)
#define sv_cmp(sv1, sv2) sv_cmp_flags(sv1, sv2, SV_GMAGIC)
#define sv_cmp_locale(sv1, sv2) sv_cmp_locale_flags(sv1, sv2, SV_GMAGIC)
+#define sv_numeq(sv1, sv2) sv_numeq_flags(sv1, sv2, SV_GMAGIC)
+#define sv_streq(sv1, sv2) sv_streq_flags(sv1, sv2, SV_GMAGIC)
#define sv_collxfrm(sv, nxp) sv_collxfrm_flags(sv, nxp, SV_GMAGIC)
#define sv_2bool(sv) sv_2bool_flags(sv, SV_GMAGIC)
#define sv_2bool_nomg(sv) sv_2bool_flags(sv, 0)
#define sv_insert(bigstr, offset, len, little, littlelen) \
- Perl_sv_insert_flags(aTHX_ (bigstr),(offset), (len), (little), \
- (littlelen), SV_GMAGIC)
+ Perl_sv_insert_flags(aTHX_ (bigstr),(offset), (len), (little), \
+ (littlelen), SV_GMAGIC)
#define sv_mortalcopy(sv) \
- Perl_sv_mortalcopy_flags(aTHX_ sv, SV_GMAGIC|SV_DO_COW_SVSETSV)
+ 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
+ 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) \
- STMT_START { \
- if (!(nsv)) \
- nsv = newSVpvn_flags(sstr, slen, SVs_TEMP); \
- else \
- sv_setpvn(nsv, sstr, slen); \
- SvUTF8_off(nsv); \
- sv_utf8_upgrade(nsv); \
- sv_catsv_nomg(dsv, nsv); \
- } STMT_END
-#define sv_catpvn_nomg_maybeutf8(dsv, sstr, slen, is_utf8) \
- sv_catpvn_flags(dsv, sstr, slen, (is_utf8)?SV_CATUTF8:SV_CATBYTES)
+ STMT_START { \
+ if (!(nsv)) \
+ nsv = newSVpvn_flags(sstr, slen, SVs_TEMP); \
+ else \
+ sv_setpvn(nsv, sstr, slen); \
+ SvUTF8_off(nsv); \
+ sv_utf8_upgrade(nsv); \
+ sv_catsv_nomg(dsv, nsv); \
+ } STMT_END
+#define sv_catpvn_nomg_maybeutf8(dsv, sstr, len, is_utf8) \
+ sv_catpvn_flags(dsv, sstr, len, (is_utf8)?SV_CATUTF8:SV_CATBYTES)
#if defined(PERL_CORE) || defined(PERL_EXT)
# define sv_or_pv_len_utf8(sv, pv, bytelen) \
(SvGAMAGIC(sv) \
- ? utf8_length((U8 *)(pv), (U8 *)(pv)+(bytelen)) \
- : sv_len_utf8(sv))
+ ? utf8_length((U8 *)(pv), (U8 *)(pv)+(bytelen)) \
+ : sv_len_utf8(sv))
#endif
/*
@@ -2196,21 +2289,16 @@ for the original SV is incremented.
/*
=for apidoc_section $SV
-=for apidoc Am|void|SvGETMAGIC|SV* sv
-Invokes C<L</mg_get>> on an SV if it has 'get' magic. For example, this
-will call C<FETCH> on a tied variable. This macro evaluates its
-argument more than once.
-
=for apidoc Am|void|SvSETMAGIC|SV* sv
Invokes C<L</mg_set>> on an SV if it has 'set' magic. This is necessary
after modifying a scalar, in case it is a magical variable like C<$|>
or a tied variable (it calls C<STORE>). This macro evaluates its
argument more than once.
-=for apidoc Am|void|SvSetSV|SV* dsv|SV* ssv
-=for apidoc_item SvSetMagicSV
-=for apidoc_item SvSetSV_nosteal
-=for apidoc_item SvSetMagicSV_nosteal
+=for apidoc Am|void|SvSetMagicSV|SV* dsv|SV* ssv
+=for apidoc_item SvSetMagicSV_nosteal
+=for apidoc_item SvSetSV
+=for apidoc_item SvSetSV_nosteal
if C<dsv> is the same as C<ssv>, these do nothing. Otherwise they all call
some form of C<L</sv_setsv>>. They may evaluate their arguments more than
@@ -2253,42 +2341,55 @@ existing size, but instead it is the total size C<sv> should be.
Ensures that sv is a SVt_PV and that its SvCUR is 0, and that it is
properly null terminated. Equivalent to sv_setpvs(""), but more efficient.
+=for apidoc Am|char *|SvPVCLEAR_FRESH|SV* sv
+
+Like SvPVCLEAR, but optimized for newly-minted SVt_PV/PVIV/PVNV/PVMG
+that already have a PV buffer allocated, but no SvTHINKFIRST.
+
=cut
*/
#define SvPVCLEAR(sv) sv_setpv_bufsize(sv,0,0)
+#define SvPVCLEAR_FRESH(sv) sv_setpv_freshbuf(sv)
#define SvSHARE(sv) PL_sharehook(aTHX_ sv)
#define SvLOCK(sv) PL_lockhook(aTHX_ sv)
#define SvUNLOCK(sv) PL_unlockhook(aTHX_ sv)
#define SvDESTROYABLE(sv) PL_destroyhook(aTHX_ sv)
-#define SvGETMAGIC(x) ((void)(UNLIKELY(SvGMAGICAL(x)) && mg_get(x)))
#define SvSETMAGIC(x) STMT_START { if (UNLIKELY(SvSMAGICAL(x))) mg_set(x); } STMT_END
#define SvSetSV_and(dst,src,finally) \
- STMT_START { \
- if (LIKELY((dst) != (src))) { \
- sv_setsv(dst, src); \
- finally; \
- } \
- } STMT_END
+ STMT_START { \
+ SV * src_ = src; \
+ SV * dst_ = dst; \
+ if (LIKELY((dst_) != (src_))) { \
+ sv_setsv(dst_, src_); \
+ finally; \
+ } \
+ } STMT_END
+
#define SvSetSV_nosteal_and(dst,src,finally) \
- STMT_START { \
- if (LIKELY((dst) != (src))) { \
- sv_setsv_flags(dst, src, SV_GMAGIC | SV_NOSTEAL | SV_DO_COW_SVSETSV); \
- finally; \
- } \
- } STMT_END
+ STMT_START { \
+ SV * src_ = src; \
+ SV * dst_ = dst; \
+ if (LIKELY((dst_) != (src_))) { \
+ sv_setsv_flags(dst_, src_, \
+ SV_GMAGIC \
+ | SV_NOSTEAL \
+ | SV_DO_COW_SVSETSV); \
+ finally; \
+ } \
+ } STMT_END
#define SvSetSV(dst,src) \
- SvSetSV_and(dst,src,/*nothing*/;)
+ SvSetSV_and(dst,src,/*nothing*/;)
#define SvSetSV_nosteal(dst,src) \
- SvSetSV_nosteal_and(dst,src,/*nothing*/;)
+ SvSetSV_nosteal_and(dst,src,/*nothing*/;)
#define SvSetMagicSV(dst,src) \
- SvSetSV_and(dst,src,SvSETMAGIC(dst))
+ SvSetSV_and(dst,src,SvSETMAGIC(dst))
#define SvSetMagicSV_nosteal(dst,src) \
- SvSetSV_nosteal_and(dst,src,SvSETMAGIC(dst))
+ SvSetSV_nosteal_and(dst,src,SvSETMAGIC(dst))
#if !defined(SKIP_DEBUGGING)
@@ -2331,6 +2432,21 @@ See also C<L</PL_sv_yes>> and C<L</PL_sv_no>>.
#define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
+/*
+=for apidoc Am|void|sv_setbool|SV *sv|bool b
+=for apidoc_item |void|sv_setbool_mg|SV *sv|bool b
+
+These set an SV to a true or false boolean value, upgrading first if necessary.
+
+They differ only in that C<sv_setbool_mg> handles 'set' magic; C<sv_setbool>
+does not.
+
+=cut
+*/
+
+#define sv_setbool(sv, b) sv_setsv(sv, boolSV(b))
+#define sv_setbool_mg(sv, b) sv_setsv_mg(sv, boolSV(b))
+
#define isGV(sv) (SvTYPE(sv) == SVt_PVGV)
/* If I give every macro argument a different name, then there won't be bugs
where nested macros get confused. Been there, done that. */
@@ -2342,20 +2458,27 @@ Returns a boolean as to whether or not C<sv> is a GV with a pointer to a GP
=cut
*/
#define isGV_with_GP(pwadak) \
- (((SvFLAGS(pwadak) & (SVp_POK|SVpgv_GP)) == SVpgv_GP) \
- && (SvTYPE(pwadak) == SVt_PVGV || SvTYPE(pwadak) == SVt_PVLV))
-#define isGV_with_GP_on(sv) STMT_START { \
- assert (SvTYPE(sv) == SVt_PVGV || SvTYPE(sv) == SVt_PVLV); \
- assert (!SvPOKp(sv)); \
- assert (!SvIOKp(sv)); \
- (SvFLAGS(sv) |= SVpgv_GP); \
+ (((SvFLAGS(pwadak) & (SVp_POK|SVpgv_GP)) == SVpgv_GP) \
+ && (SvTYPE(pwadak) == SVt_PVGV || SvTYPE(pwadak) == SVt_PVLV))
+
+#define isGV_with_GP_on(sv) \
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert (SvTYPE(sv_) == SVt_PVGV || SvTYPE(sv_) == SVt_PVLV); \
+ assert (!SvPOKp(sv_)); \
+ assert (!SvIOKp(sv_)); \
+ (SvFLAGS(sv_) |= SVpgv_GP); \
} STMT_END
-#define isGV_with_GP_off(sv) STMT_START { \
- assert (SvTYPE(sv) == SVt_PVGV || SvTYPE(sv) == SVt_PVLV); \
- assert (!SvPOKp(sv)); \
- assert (!SvIOKp(sv)); \
- (SvFLAGS(sv) &= ~SVpgv_GP); \
+
+#define isGV_with_GP_off(sv) \
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ assert (SvTYPE(sv_) == SVt_PVGV || SvTYPE(sv_) == SVt_PVLV); \
+ assert (!SvPOKp(sv_)); \
+ assert (!SvIOKp(sv_)); \
+ (SvFLAGS(sv_) &= ~SVpgv_GP); \
} STMT_END
+
#ifdef PERL_CORE
# define isGV_or_RVCV(kadawp) \
(isGV(kadawp) || (SvROK(kadawp) && SvTYPE(SvRV(kadawp)) == SVt_PVCV))
@@ -2363,12 +2486,12 @@ Returns a boolean as to whether or not C<sv> is a GV with a pointer to a GP
#define isREGEXP(sv) \
(SvTYPE(sv) == SVt_REGEXP \
|| (SvFLAGS(sv) & (SVTYPEMASK|SVpgv_GP|SVf_FAKE)) \
- == (SVt_PVLV|SVf_FAKE))
+ == (SVt_PVLV|SVf_FAKE))
#ifdef PERL_ANY_COW
# define SvGROW(sv,len) \
- (SvIsCOW(sv) || SvLEN(sv) < (len) ? sv_grow(sv,len) : SvPVX(sv))
+ (SvIsCOW(sv) || SvLEN(sv) < (len) ? sv_grow(sv,len) : SvPVX(sv))
#else
# define SvGROW(sv,len) (SvLEN(sv) < (len) ? sv_grow(sv,len) : SvPVX(sv))
#endif
@@ -2434,51 +2557,59 @@ Evaluates C<sv> more than once. Sets C<len> to 0 if C<SvOOK(sv)> is false.
10:28 <+meta> Nicholas: crash
*/
# define SvOOK_offset(sv, offset) STMT_START { \
- STATIC_ASSERT_STMT(sizeof(offset) == sizeof(STRLEN)); \
- if (SvOOK(sv)) { \
- const U8 *_crash = (U8*)SvPVX_const(sv); \
- (offset) = *--_crash; \
- if (!(offset)) { \
- _crash -= sizeof(STRLEN); \
- Copy(_crash, (U8 *)&(offset), sizeof(STRLEN), U8); \
- } \
- { \
- /* Validate the preceding buffer's sentinels to \
- verify that no-one is using it. */ \
- const U8 *const _bonk = (U8*)SvPVX_const(sv) - (offset);\
- while (_crash > _bonk) { \
- --_crash; \
- assert (*_crash == (U8)PTR2UV(_crash)); \
- } \
- } \
- } else { \
- (offset) = 0; \
- } \
+ STATIC_ASSERT_STMT(sizeof(offset) == sizeof(STRLEN)); \
+ if (SvOOK(sv)) { \
+ const U8 *_crash = (U8*)SvPVX_const(sv); \
+ (offset) = *--_crash; \
+ if (!(offset)) { \
+ _crash -= sizeof(STRLEN); \
+ Copy(_crash, (U8 *)&(offset), sizeof(STRLEN), U8); \
+ } \
+ { \
+ /* Validate the preceding buffer's sentinels to \
+ verify that no-one is using it. */ \
+ const U8 *const _bonk = (U8*)SvPVX_const(sv) - (offset);\
+ while (_crash > _bonk) { \
+ --_crash; \
+ assert (*_crash == (U8)PTR2UV(_crash)); \
+ } \
+ } \
+ } else { \
+ (offset) = 0; \
+ } \
} STMT_END
#else
/* This is the same code, but avoids using any temporary variables: */
# define SvOOK_offset(sv, offset) STMT_START { \
- STATIC_ASSERT_STMT(sizeof(offset) == sizeof(STRLEN)); \
- if (SvOOK(sv)) { \
- (offset) = ((U8*)SvPVX_const(sv))[-1]; \
- if (!(offset)) { \
- Copy(SvPVX_const(sv) - 1 - sizeof(STRLEN), \
- (U8*)&(offset), sizeof(STRLEN), U8); \
- } \
- } else { \
- (offset) = 0; \
- } \
+ STATIC_ASSERT_STMT(sizeof(offset) == sizeof(STRLEN)); \
+ if (SvOOK(sv)) { \
+ (offset) = ((U8*)SvPVX_const(sv))[-1]; \
+ if (!(offset)) { \
+ Copy(SvPVX_const(sv) - 1 - sizeof(STRLEN), \
+ (U8*)&(offset), sizeof(STRLEN), U8); \
+ } \
+ } else { \
+ (offset) = 0; \
+ } \
} STMT_END
#endif
+/*
+=for apidoc_section $io
+=for apidoc newIO
+
+Create a new IO, setting the reference count to 1.
+
+=cut
+*/
#define newIO() MUTABLE_IO(newSV_type(SVt_PVIO))
#if defined(PERL_CORE) || defined(PERL_EXT)
# define SV_CONST(name) \
- PL_sv_consts[SV_CONST_##name] \
- ? PL_sv_consts[SV_CONST_##name] \
- : (PL_sv_consts[SV_CONST_##name] = newSVpv_share(#name, 0))
+ PL_sv_consts[SV_CONST_##name] \
+ ? PL_sv_consts[SV_CONST_##name] \
+ : (PL_sv_consts[SV_CONST_##name] = newSVpv_share(#name, 0))
# define SV_CONST_TIESCALAR 0
# define SV_CONST_TIEARRAY 1
@@ -2548,14 +2679,36 @@ Evaluates C<sv> more than once. Sets C<len> to 0 if C<SvOOK(sv)> is false.
/* The following two macros compute the necessary offsets for the above
* trick and store them in SvANY for SvIV() (and friends) to use. */
-#ifdef PERL_CORE
# define SET_SVANY_FOR_BODYLESS_IV(sv) \
- SvANY(sv) = (XPVIV*)((char*)&(sv->sv_u.svu_iv) \
- - STRUCT_OFFSET(XPVIV, xiv_iv))
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ SvANY(sv_) = (XPVIV*)((char*)&(sv_->sv_u.svu_iv) \
+ - STRUCT_OFFSET(XPVIV, xiv_iv)); \
+ } STMT_END
# define SET_SVANY_FOR_BODYLESS_NV(sv) \
- SvANY(sv) = (XPVNV*)((char*)&(sv->sv_u.svu_nv) \
- - STRUCT_OFFSET(XPVNV, xnv_u.xnv_nv))
+ STMT_START { \
+ SV * sv_ = MUTABLE_SV(sv); \
+ SvANY(sv_) = (XPVNV*)((char*)&(sv_->sv_u.svu_nv) \
+ - STRUCT_OFFSET(XPVNV, xnv_u.xnv_nv)); \
+ } STMT_END
+
+#if defined(PERL_CORE) && defined(USE_ITHREADS)
+/* Certain cases in Perl_ss_dup have been merged, by relying on the fact
+ that currently av_dup, gv_dup and hv_dup are the same as sv_dup.
+ If this changes, please unmerge ss_dup.
+ Likewise, sv_dup_inc_multiple() relies on this fact. */
+# define sv_dup_inc_NN(s,t) SvREFCNT_inc_NN(sv_dup_inc(s,t))
+# define av_dup(s,t) MUTABLE_AV(sv_dup((const SV *)s,t))
+# define av_dup_inc(s,t) MUTABLE_AV(sv_dup_inc((const SV *)s,t))
+# define hv_dup(s,t) MUTABLE_HV(sv_dup((const SV *)s,t))
+# define hv_dup_inc(s,t) MUTABLE_HV(sv_dup_inc((const SV *)s,t))
+# define cv_dup(s,t) MUTABLE_CV(sv_dup((const SV *)s,t))
+# define cv_dup_inc(s,t) MUTABLE_CV(sv_dup_inc((const SV *)s,t))
+# define io_dup(s,t) MUTABLE_IO(sv_dup((const SV *)s,t))
+# define io_dup_inc(s,t) MUTABLE_IO(sv_dup_inc((const SV *)s,t))
+# define gv_dup(s,t) MUTABLE_GV(sv_dup((const SV *)s,t))
+# define gv_dup_inc(s,t) MUTABLE_GV(sv_dup_inc((const SV *)s,t))
#endif
/*
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv_inline.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv_inline.h
new file mode 100755
index 0000000000..3adc130575
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv_inline.h
@@ -0,0 +1,1002 @@
+/* sv_inline.h
+ *
+ * Copyright (C) 2022 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.
+ *
+ */
+
+/* This file contains the newSV_type and newSV_type_mortal functions, as well as
+ * the various struct and macro definitions they require. In the main, these
+ * definitions were moved from sv.c, where many of them continue to also be used.
+ * (In Perl_more_bodies, Perl_sv_upgrade and Perl_sv_clear, for example.) Code
+ * comments associated with definitions and functions were also copied across
+ * verbatim.
+ *
+ * The rationale for having these as inline functions, rather than in sv.c, is
+ * that the target type is very often known at compile time, and therefore
+ * optimum code can be emitted by the compiler, rather than having all calls
+ * traverse the many branches of Perl_sv_upgrade at runtime.
+ */
+
+/* This definition came from perl.h*/
+
+/* The old value was hard coded at 1008. (4096-16) seems to be a bit faster,
+ at least on FreeBSD. YMMV, so experiment. */
+#ifndef PERL_ARENA_SIZE
+#define PERL_ARENA_SIZE 4080
+#endif
+
+/* All other pre-existing definitions and functions that were moved into this
+ * file originally came from sv.c. */
+
+#ifdef PERL_POISON
+# define SvARENA_CHAIN(sv) ((sv)->sv_u.svu_rv)
+# define SvARENA_CHAIN_SET(sv,val) (sv)->sv_u.svu_rv = MUTABLE_SV((val))
+/* Whilst I'd love to do this, it seems that things like to check on
+ unreferenced scalars
+# define POISON_SV_HEAD(sv) PoisonNew(sv, 1, struct STRUCT_SV)
+*/
+# define POISON_SV_HEAD(sv) PoisonNew(&SvANY(sv), 1, void *), \
+ PoisonNew(&SvREFCNT(sv), 1, U32)
+#else
+# define SvARENA_CHAIN(sv) SvANY(sv)
+# define SvARENA_CHAIN_SET(sv,val) SvANY(sv) = (void *)(val)
+# define POISON_SV_HEAD(sv)
+#endif
+
+#ifdef PERL_MEM_LOG
+# define MEM_LOG_NEW_SV(sv, file, line, func) \
+ Perl_mem_log_new_sv(sv, file, line, func)
+# define MEM_LOG_DEL_SV(sv, file, line, func) \
+ Perl_mem_log_del_sv(sv, file, line, func)
+#else
+# define MEM_LOG_NEW_SV(sv, file, line, func) NOOP
+# define MEM_LOG_DEL_SV(sv, file, line, func) NOOP
+#endif
+
+#define uproot_SV(p) \
+ STMT_START { \
+ (p) = PL_sv_root; \
+ PL_sv_root = MUTABLE_SV(SvARENA_CHAIN(p)); \
+ ++PL_sv_count; \
+ } STMT_END
+
+/* Perl_more_sv lives in sv.c, we don't want to inline it.
+ * but the function declaration seems to be needed. */
+SV* Perl_more_sv(pTHX);
+
+/* new_SV(): return a new, empty SV head */
+
+#ifdef DEBUG_LEAKING_SCALARS
+/* provide a real function for a debugger to play with */
+STATIC SV*
+S_new_SV(pTHX_ const char *file, int line, const char *func)
+{
+ SV* sv;
+
+ if (PL_sv_root)
+ uproot_SV(sv);
+ else
+ sv = Perl_more_sv(aTHX);
+ SvANY(sv) = 0;
+ SvREFCNT(sv) = 1;
+ SvFLAGS(sv) = 0;
+ sv->sv_debug_optype = PL_op ? PL_op->op_type : 0;
+ sv->sv_debug_line = (U16) (PL_parser && PL_parser->copline != NOLINE
+ ? PL_parser->copline
+ : PL_curcop
+ ? CopLINE(PL_curcop)
+ : 0
+ );
+ sv->sv_debug_inpad = 0;
+ sv->sv_debug_parent = NULL;
+ sv->sv_debug_file = PL_curcop ? savesharedpv(CopFILE(PL_curcop)): NULL;
+
+ sv->sv_debug_serial = PL_sv_serial++;
+
+ MEM_LOG_NEW_SV(sv, file, line, func);
+ DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%" UVxf ": (%05ld) new_SV (from %s:%d [%s])\n",
+ PTR2UV(sv), (long)sv->sv_debug_serial, file, line, func));
+
+ return sv;
+}
+# define new_SV(p) (p)=S_new_SV(aTHX_ __FILE__, __LINE__, FUNCTION__)
+
+#else
+# define new_SV(p) \
+ STMT_START { \
+ if (PL_sv_root) \
+ uproot_SV(p); \
+ else \
+ (p) = Perl_more_sv(aTHX); \
+ SvANY(p) = 0; \
+ SvREFCNT(p) = 1; \
+ SvFLAGS(p) = 0; \
+ MEM_LOG_NEW_SV(p, __FILE__, __LINE__, FUNCTION__); \
+ } STMT_END
+#endif
+
+
+typedef struct xpvhv_with_aux XPVHV_WITH_AUX;
+
+struct body_details {
+ U8 body_size; /* Size to allocate */
+ U8 copy; /* Size of structure to copy (may be shorter) */
+ U8 offset; /* Size of unalloced ghost fields to first alloced field*/
+ PERL_BITFIELD8 type : 5; /* We have space for a sanity check. */
+ PERL_BITFIELD8 cant_upgrade : 1;/* Cannot upgrade this type */
+ PERL_BITFIELD8 zero_nv : 1; /* zero the NV when upgrading from this */
+ PERL_BITFIELD8 arena : 1; /* Allocated from an arena */
+ U32 arena_size; /* Size of arena to allocate */
+};
+
+#define ALIGNED_TYPE_NAME(name) name##_aligned
+#define ALIGNED_TYPE(name) \
+ typedef union { \
+ name align_me; \
+ NV nv; \
+ IV iv; \
+ } ALIGNED_TYPE_NAME(name)
+
+ALIGNED_TYPE(regexp);
+ALIGNED_TYPE(XPVGV);
+ALIGNED_TYPE(XPVLV);
+ALIGNED_TYPE(XPVAV);
+ALIGNED_TYPE(XPVHV);
+ALIGNED_TYPE(XPVHV_WITH_AUX);
+ALIGNED_TYPE(XPVCV);
+ALIGNED_TYPE(XPVFM);
+ALIGNED_TYPE(XPVIO);
+ALIGNED_TYPE(XPVOBJ);
+
+#define HADNV FALSE
+#define NONV TRUE
+
+
+#ifdef PURIFY
+/* With -DPURFIY we allocate everything directly, and don't use arenas.
+ This seems a rather elegant way to simplify some of the code below. */
+#define HASARENA FALSE
+#else
+#define HASARENA TRUE
+#endif
+#define NOARENA FALSE
+
+/* Size the arenas to exactly fit a given number of bodies. A count
+ of 0 fits the max number bodies into a PERL_ARENA_SIZE.block,
+ simplifying the default. If count > 0, the arena is sized to fit
+ only that many bodies, allowing arenas to be used for large, rare
+ bodies (XPVFM, XPVIO) without undue waste. The arena size is
+ limited by PERL_ARENA_SIZE, so we can safely oversize the
+ declarations.
+ */
+#define FIT_ARENA0(body_size) \
+ ((size_t)(PERL_ARENA_SIZE / body_size) * body_size)
+#define FIT_ARENAn(count,body_size) \
+ ( count * body_size <= PERL_ARENA_SIZE) \
+ ? count * body_size \
+ : FIT_ARENA0 (body_size)
+#define FIT_ARENA(count,body_size) \
+ (U32)(count \
+ ? FIT_ARENAn (count, body_size) \
+ : FIT_ARENA0 (body_size))
+
+/* Calculate the length to copy. Specifically work out the length less any
+ final padding the compiler needed to add. See the comment in sv_upgrade
+ for why copying the padding proved to be a bug. */
+
+#define copy_length(type, last_member) \
+ STRUCT_OFFSET(type, last_member) \
+ + sizeof (((type*)SvANY((const SV *)0))->last_member)
+
+static const struct body_details bodies_by_type[] = {
+ /* HEs use this offset for their arena. */
+ { 0, 0, 0, SVt_NULL, FALSE, NONV, NOARENA, 0 },
+
+ /* IVs are in the head, so the allocation size is 0. */
+ { 0,
+ sizeof(IV), /* This is used to copy out the IV body. */
+ STRUCT_OFFSET(XPVIV, xiv_iv), SVt_IV, FALSE, NONV,
+ NOARENA /* IVS don't need an arena */, 0
+ },
+
+#if NVSIZE <= IVSIZE
+ { 0, sizeof(NV),
+ STRUCT_OFFSET(XPVNV, xnv_u),
+ SVt_NV, FALSE, HADNV, NOARENA, 0 },
+#else
+ { sizeof(NV), sizeof(NV),
+ STRUCT_OFFSET(XPVNV, xnv_u),
+ SVt_NV, FALSE, HADNV, HASARENA, FIT_ARENA(0, sizeof(NV)) },
+#endif
+
+ { sizeof(XPV) - STRUCT_OFFSET(XPV, xpv_cur),
+ copy_length(XPV, xpv_len) - STRUCT_OFFSET(XPV, xpv_cur),
+ + STRUCT_OFFSET(XPV, xpv_cur),
+ SVt_PV, FALSE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(XPV) - STRUCT_OFFSET(XPV, xpv_cur)) },
+
+ { sizeof(XINVLIST) - STRUCT_OFFSET(XPV, xpv_cur),
+ copy_length(XINVLIST, is_offset) - STRUCT_OFFSET(XPV, xpv_cur),
+ + STRUCT_OFFSET(XPV, xpv_cur),
+ SVt_INVLIST, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(XINVLIST) - STRUCT_OFFSET(XPV, xpv_cur)) },
+
+ { sizeof(XPVIV) - STRUCT_OFFSET(XPV, xpv_cur),
+ copy_length(XPVIV, xiv_u) - STRUCT_OFFSET(XPV, xpv_cur),
+ + STRUCT_OFFSET(XPV, xpv_cur),
+ SVt_PVIV, FALSE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(XPVIV) - STRUCT_OFFSET(XPV, xpv_cur)) },
+
+ { sizeof(XPVNV) - STRUCT_OFFSET(XPV, xpv_cur),
+ copy_length(XPVNV, xnv_u) - STRUCT_OFFSET(XPV, xpv_cur),
+ + STRUCT_OFFSET(XPV, xpv_cur),
+ SVt_PVNV, FALSE, HADNV, HASARENA,
+ FIT_ARENA(0, sizeof(XPVNV) - STRUCT_OFFSET(XPV, xpv_cur)) },
+
+ { sizeof(XPVMG), copy_length(XPVMG, xnv_u), 0, SVt_PVMG, FALSE, HADNV,
+ HASARENA, FIT_ARENA(0, sizeof(XPVMG)) },
+
+ { sizeof(ALIGNED_TYPE_NAME(regexp)),
+ sizeof(regexp),
+ 0,
+ SVt_REGEXP, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(regexp)))
+ },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVGV)), sizeof(XPVGV), 0, SVt_PVGV, TRUE, HADNV,
+ HASARENA, FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVGV))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVLV)), sizeof(XPVLV), 0, SVt_PVLV, TRUE, HADNV,
+ HASARENA, FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVLV))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVAV)),
+ copy_length(XPVAV, xav_alloc),
+ 0,
+ SVt_PVAV, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVAV))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVHV)),
+ copy_length(XPVHV, xhv_max),
+ 0,
+ SVt_PVHV, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVHV))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVCV)),
+ sizeof(XPVCV),
+ 0,
+ SVt_PVCV, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVCV))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVFM)),
+ sizeof(XPVFM),
+ 0,
+ SVt_PVFM, TRUE, NONV, NOARENA,
+ FIT_ARENA(20, sizeof(ALIGNED_TYPE_NAME(XPVFM))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVIO)),
+ sizeof(XPVIO),
+ 0,
+ SVt_PVIO, TRUE, NONV, HASARENA,
+ FIT_ARENA(24, sizeof(ALIGNED_TYPE_NAME(XPVIO))) },
+
+ { sizeof(ALIGNED_TYPE_NAME(XPVOBJ)),
+ copy_length(XPVOBJ, xobject_fields),
+ 0,
+ SVt_PVOBJ, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVOBJ))) },
+};
+
+#define new_body_allocated(sv_type) \
+ (void *)((char *)S_new_body(aTHX_ sv_type) \
+ - bodies_by_type[sv_type].offset)
+
+#ifdef PURIFY
+#if !(NVSIZE <= IVSIZE)
+# define new_XNV() safemalloc(sizeof(XPVNV))
+#endif
+#define new_XPVNV() safemalloc(sizeof(XPVNV))
+#define new_XPVMG() safemalloc(sizeof(XPVMG))
+
+#define del_body_by_type(p, type) safefree(p)
+
+#else /* !PURIFY */
+
+#if !(NVSIZE <= IVSIZE)
+# define new_XNV() new_body_allocated(SVt_NV)
+#endif
+#define new_XPVNV() new_body_allocated(SVt_PVNV)
+#define new_XPVMG() new_body_allocated(SVt_PVMG)
+
+#define del_body_by_type(p, type) \
+ del_body(p + bodies_by_type[(type)].offset, \
+ &PL_body_roots[(type)])
+
+#endif /* PURIFY */
+
+/* no arena for you! */
+
+#define new_NOARENA(details) \
+ safemalloc((details)->body_size + (details)->offset)
+#define new_NOARENAZ(details) \
+ safecalloc((details)->body_size + (details)->offset, 1)
+
+#ifndef PURIFY
+
+/* grab a new thing from the arena's free list, allocating more if necessary. */
+#define new_body_from_arena(xpv, root_index, type_meta) \
+ STMT_START { \
+ void ** const r3wt = &PL_body_roots[root_index]; \
+ xpv = (PTR_TBL_ENT_t*) (*((void **)(r3wt)) \
+ ? *((void **)(r3wt)) : Perl_more_bodies(aTHX_ root_index, \
+ type_meta.body_size,\
+ type_meta.arena_size)); \
+ *(r3wt) = *(void**)(xpv); \
+ } STMT_END
+
+PERL_STATIC_INLINE void *
+S_new_body(pTHX_ const svtype sv_type)
+{
+ void *xpv;
+ new_body_from_arena(xpv, sv_type, bodies_by_type[sv_type]);
+ return xpv;
+}
+
+#endif
+
+static const struct body_details fake_rv =
+ { 0, 0, 0, SVt_IV, FALSE, NONV, NOARENA, 0 };
+
+static const struct body_details fake_hv_with_aux =
+ /* The SVt_IV arena is used for (larger) PVHV bodies. */
+ { sizeof(ALIGNED_TYPE_NAME(XPVHV_WITH_AUX)),
+ copy_length(XPVHV, xhv_max),
+ 0,
+ SVt_PVHV, TRUE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVHV_WITH_AUX))) };
+
+/*
+=for apidoc newSV_type
+
+Creates a new SV, of the type specified. The reference count for the new SV
+is set to 1.
+
+=cut
+*/
+
+PERL_STATIC_INLINE SV *
+Perl_newSV_type(pTHX_ const svtype type)
+{
+ SV *sv;
+ void* new_body;
+ const struct body_details *type_details;
+
+ new_SV(sv);
+
+ type_details = bodies_by_type + type;
+
+ SvFLAGS(sv) &= ~SVTYPEMASK;
+ SvFLAGS(sv) |= type;
+
+ switch (type) {
+ case SVt_NULL:
+ break;
+ case SVt_IV:
+ SET_SVANY_FOR_BODYLESS_IV(sv);
+ SvIV_set(sv, 0);
+ break;
+ case SVt_NV:
+#if NVSIZE <= IVSIZE
+ SET_SVANY_FOR_BODYLESS_NV(sv);
+#else
+ SvANY(sv) = new_XNV();
+#endif
+ SvNV_set(sv, 0);
+ break;
+ case SVt_PVHV:
+ case SVt_PVAV:
+ case SVt_PVOBJ:
+ assert(type_details->body_size);
+
+#ifndef PURIFY
+ assert(type_details->arena);
+ assert(type_details->arena_size);
+ /* This points to the start of the allocated area. */
+ new_body = S_new_body(aTHX_ type);
+ /* xpvav and xpvhv have no offset, so no need to adjust new_body */
+ assert(!(type_details->offset));
+#else
+ /* We always allocated the full length item with PURIFY. To do this
+ we fake things so that arena is false for all 16 types.. */
+ new_body = new_NOARENAZ(type_details);
+#endif
+ SvANY(sv) = new_body;
+
+ SvSTASH_set(sv, NULL);
+ SvMAGIC_set(sv, NULL);
+
+ switch(type) {
+ case SVt_PVAV:
+ AvFILLp(sv) = -1;
+ AvMAX(sv) = -1;
+ AvALLOC(sv) = NULL;
+
+ AvREAL_only(sv);
+ break;
+ case SVt_PVHV:
+ HvTOTALKEYS(sv) = 0;
+ /* start with PERL_HASH_DEFAULT_HvMAX+1 buckets: */
+ HvMAX(sv) = PERL_HASH_DEFAULT_HvMAX;
+
+ assert(!SvOK(sv));
+ SvOK_off(sv);
+#ifndef NODEFAULT_SHAREKEYS
+ HvSHAREKEYS_on(sv); /* key-sharing on by default */
+#endif
+ /* start with PERL_HASH_DEFAULT_HvMAX+1 buckets: */
+ HvMAX(sv) = PERL_HASH_DEFAULT_HvMAX;
+ break;
+ case SVt_PVOBJ:
+ ObjectMAXFIELD(sv) = -1;
+ ObjectFIELDS(sv) = NULL;
+ break;
+ default:
+ NOT_REACHED;
+ }
+
+ sv->sv_u.svu_array = NULL; /* or svu_hash */
+ break;
+
+ case SVt_PVIV:
+ case SVt_PVIO:
+ case SVt_PVGV:
+ case SVt_PVCV:
+ case SVt_PVLV:
+ case SVt_INVLIST:
+ case SVt_REGEXP:
+ case SVt_PVMG:
+ case SVt_PVNV:
+ case SVt_PV:
+ /* For a type known at compile time, it should be possible for the
+ * compiler to deduce the value of (type_details->arena), resolve
+ * that branch below, and inline the relevant values from
+ * bodies_by_type. Except, at least for gcc, it seems not to do that.
+ * We help it out here with two deviations from sv_upgrade:
+ * (1) Minor rearrangement here, so that PVFM - the only type at this
+ * point not to be allocated from an array appears last, not PV.
+ * (2) The ASSUME() statement here for everything that isn't PVFM.
+ * Obviously this all only holds as long as it's a true reflection of
+ * the bodies_by_type lookup table. */
+#ifndef PURIFY
+ ASSUME(type_details->arena);
+#endif
+ /* FALLTHROUGH */
+ case SVt_PVFM:
+
+ assert(type_details->body_size);
+ /* We always allocated the full length item with PURIFY. To do this
+ we fake things so that arena is false for all 16 types.. */
+#ifndef PURIFY
+ if(type_details->arena) {
+ /* This points to the start of the allocated area. */
+ new_body = S_new_body(aTHX_ type);
+ Zero(new_body, type_details->body_size, char);
+ new_body = ((char *)new_body) - type_details->offset;
+ } else
+#endif
+ {
+ new_body = new_NOARENAZ(type_details);
+ }
+ SvANY(sv) = new_body;
+
+ if (UNLIKELY(type == SVt_PVIO)) {
+ IO * const io = MUTABLE_IO(sv);
+ GV *iogv = gv_fetchpvs("IO::File::", GV_ADD, SVt_PVHV);
+
+ SvOBJECT_on(io);
+ /* Clear the stashcache because a new IO could overrule a package
+ name */
+ DEBUG_o(Perl_deb(aTHX_ "sv_upgrade clearing PL_stashcache\n"));
+ hv_clear(PL_stashcache);
+
+ SvSTASH_set(io, MUTABLE_HV(SvREFCNT_inc(GvHV(iogv))));
+ IoPAGE_LEN(sv) = 60;
+ }
+
+ sv->sv_u.svu_rv = NULL;
+ break;
+ default:
+ Perl_croak(aTHX_ "panic: sv_upgrade to unknown type %lu",
+ (unsigned long)type);
+ }
+
+ return sv;
+}
+
+/*
+=for apidoc newSV_type_mortal
+
+Creates a new mortal SV, of the type specified. The reference count for the
+new SV is set to 1.
+
+This is equivalent to
+ SV* sv = sv_2mortal(newSV_type(<some type>))
+and
+ SV* sv = sv_newmortal();
+ sv_upgrade(sv, <some_type>)
+but should be more efficient than both of them. (Unless sv_2mortal is inlined
+at some point in the future.)
+
+=cut
+*/
+
+PERL_STATIC_INLINE SV *
+Perl_newSV_type_mortal(pTHX_ const svtype type)
+{
+ SV *sv = newSV_type(type);
+ SSize_t ix = ++PL_tmps_ix;
+ if (UNLIKELY(ix >= PL_tmps_max))
+ ix = Perl_tmps_grow_p(aTHX_ ix);
+ PL_tmps_stack[ix] = (sv);
+ SvTEMP_on(sv);
+ return sv;
+}
+
+/* The following functions started out in sv.h and then moved to inline.h. They
+ * moved again into this file during the 5.37.x development cycle. */
+
+/*
+=for apidoc_section $SV
+=for apidoc SvPVXtrue
+
+Returns a boolean as to whether or not C<sv> contains a PV that is considered
+TRUE. FALSE is returned if C<sv> doesn't contain a PV, or if the PV it does
+contain is zero length, or consists of just the single character '0'. Every
+other PV value is considered TRUE.
+
+As of Perl v5.37.1, C<sv> is evaluated exactly once; in earlier releases, it
+could be evaluated more than once.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+Perl_SvPVXtrue(pTHX_ SV *sv)
+{
+ PERL_ARGS_ASSERT_SVPVXTRUE;
+
+ if (! (XPV *) SvANY(sv)) {
+ return false;
+ }
+
+ if ( ((XPV *) SvANY(sv))->xpv_cur > 1) { /* length > 1 */
+ return true;
+ }
+
+ if (( (XPV *) SvANY(sv))->xpv_cur == 0) {
+ return false;
+ }
+
+ return *sv->sv_u.svu_pv != '0';
+}
+
+/*
+=for apidoc SvGETMAGIC
+Invokes C<L</mg_get>> on an SV if it has 'get' magic. For example, this
+will call C<FETCH> on a tied variable. As of 5.37.1, this function is
+guaranteed to evaluate its argument exactly once.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_SvGETMAGIC(pTHX_ SV *sv)
+{
+ PERL_ARGS_ASSERT_SVGETMAGIC;
+
+ if (UNLIKELY(SvGMAGICAL(sv))) {
+ mg_get(sv);
+ }
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE(pTHX_ SV *sv)
+{
+ PERL_ARGS_ASSERT_SVTRUE;
+
+ if (UNLIKELY(sv == NULL))
+ return FALSE;
+ SvGETMAGIC(sv);
+ return SvTRUE_nomg_NN(sv);
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_nomg(pTHX_ SV *sv)
+{
+ PERL_ARGS_ASSERT_SVTRUE_NOMG;
+
+ if (UNLIKELY(sv == NULL))
+ return FALSE;
+ return SvTRUE_nomg_NN(sv);
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_NN(pTHX_ SV *sv)
+{
+ PERL_ARGS_ASSERT_SVTRUE_NN;
+
+ SvGETMAGIC(sv);
+ return SvTRUE_nomg_NN(sv);
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
+{
+ PERL_ARGS_ASSERT_SVTRUE_COMMON;
+
+ if (UNLIKELY(SvIMMORTAL_INTERP(sv)))
+ return SvIMMORTAL_TRUE(sv);
+
+ if (! SvOK(sv))
+ return FALSE;
+
+ if (SvPOK(sv))
+ return SvPVXtrue(sv);
+
+ if (SvIOK(sv))
+ return SvIVX(sv) != 0; /* casts to bool */
+
+ if (SvROK(sv) && !(SvOBJECT(SvRV(sv)) && HvAMAGIC(SvSTASH(SvRV(sv)))))
+ return TRUE;
+
+ if (sv_2bool_is_fallback)
+ return sv_2bool_nomg(sv);
+
+ return isGV_with_GP(sv);
+}
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc(SV *sv)
+{
+ if (LIKELY(sv != NULL))
+ SvREFCNT(sv)++;
+ return sv;
+}
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc_NN(SV *sv)
+{
+ PERL_ARGS_ASSERT_SVREFCNT_INC_NN;
+
+ SvREFCNT(sv)++;
+ return sv;
+}
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_inc_void(SV *sv)
+{
+ if (LIKELY(sv != NULL))
+ SvREFCNT(sv)++;
+}
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec(pTHX_ SV *sv)
+{
+ if (LIKELY(sv != NULL)) {
+ U32 rc = SvREFCNT(sv);
+ if (LIKELY(rc > 1))
+ SvREFCNT(sv) = rc - 1;
+ else
+ Perl_sv_free2(aTHX_ sv, rc);
+ }
+}
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_dec_ret_NULL(pTHX_ SV *sv)
+{
+ PERL_ARGS_ASSERT_SVREFCNT_DEC_RET_NULL;
+ Perl_SvREFCNT_dec(aTHX_ sv);
+ return NULL;
+}
+
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec_NN(pTHX_ SV *sv)
+{
+ U32 rc = SvREFCNT(sv);
+
+ PERL_ARGS_ASSERT_SVREFCNT_DEC_NN;
+
+ if (LIKELY(rc > 1))
+ SvREFCNT(sv) = rc - 1;
+ else
+ Perl_sv_free2(aTHX_ sv, rc);
+}
+
+/*
+=for apidoc SvAMAGIC_on
+
+Indicate that C<sv> has overloading (active magic) enabled.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_on(SV *sv)
+{
+ PERL_ARGS_ASSERT_SVAMAGIC_ON;
+ assert(SvROK(sv));
+
+ if (SvOBJECT(SvRV(sv))) HvAMAGIC_on(SvSTASH(SvRV(sv)));
+}
+
+/*
+=for apidoc SvAMAGIC_off
+
+Indicate that C<sv> has overloading (active magic) disabled.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_off(SV *sv)
+{
+ PERL_ARGS_ASSERT_SVAMAGIC_OFF;
+
+ if (SvROK(sv) && SvOBJECT(SvRV(sv)))
+ HvAMAGIC_off(SvSTASH(SvRV(sv)));
+}
+
+PERL_STATIC_INLINE U32
+Perl_SvPADSTALE_on(SV *sv)
+{
+ assert(!(SvFLAGS(sv) & SVs_PADTMP));
+ return SvFLAGS(sv) |= SVs_PADSTALE;
+}
+PERL_STATIC_INLINE U32
+Perl_SvPADSTALE_off(SV *sv)
+{
+ assert(!(SvFLAGS(sv) & SVs_PADTMP));
+ return SvFLAGS(sv) &= ~SVs_PADSTALE;
+}
+
+/*
+=for apidoc_section $SV
+=for apidoc SvIV
+=for apidoc_item SvIV_nomg
+=for apidoc_item SvIVx
+
+These each coerce the given SV to IV and return it. The returned value in many
+circumstances will get stored in C<sv>'s IV slot, but not in all cases. (Use
+C<L</sv_setiv>> to make sure it does).
+
+As of 5.37.1, all are guaranteed to evaluate C<sv> only once.
+
+C<SvIVx> is now identical to C<SvIV>, but prior to 5.37.1, it was the only form
+guaranteed to evaluate C<sv> only once.
+
+C<SvIV_nomg> is the same as C<SvIV>, but does not perform 'get' magic.
+
+=for apidoc SvNV
+=for apidoc_item SvNV_nomg
+=for apidoc_item SvNVx
+
+These each coerce the given SV to NV and return it. The returned value in many
+circumstances will get stored in C<sv>'s NV slot, but not in all cases. (Use
+C<L</sv_setnv>> to make sure it does).
+
+As of 5.37.1, all are guaranteed to evaluate C<sv> only once.
+
+C<SvNVx> is now identical to C<SvNV>, but prior to 5.37.1, it was the only form
+guaranteed to evaluate C<sv> only once.
+
+C<SvNV_nomg> is the same as C<SvNV>, but does not perform 'get' magic.
+
+=for apidoc SvUV
+=for apidoc_item SvUV_nomg
+=for apidoc_item SvUVx
+
+These each coerce the given SV to UV and return it. The returned value in many
+circumstances will get stored in C<sv>'s UV slot, but not in all cases. (Use
+C<L</sv_setuv>> to make sure it does).
+
+As of 5.37.1, all are guaranteed to evaluate C<sv> only once.
+
+C<SvUVx> is now identical to C<SvUV>, but prior to 5.37.1, it was the only form
+guaranteed to evaluate C<sv> only once.
+
+=cut
+*/
+
+PERL_STATIC_INLINE IV
+Perl_SvIV(pTHX_ SV *sv) {
+ PERL_ARGS_ASSERT_SVIV;
+
+ if (SvIOK_nog(sv))
+ return SvIVX(sv);
+ return sv_2iv(sv);
+}
+
+PERL_STATIC_INLINE UV
+Perl_SvUV(pTHX_ SV *sv) {
+ PERL_ARGS_ASSERT_SVUV;
+
+ if (SvUOK_nog(sv))
+ return SvUVX(sv);
+ return sv_2uv(sv);
+}
+
+PERL_STATIC_INLINE NV
+Perl_SvNV(pTHX_ SV *sv) {
+ PERL_ARGS_ASSERT_SVNV;
+
+ if (SvNOK_nog(sv))
+ return SvNVX(sv);
+ return sv_2nv(sv);
+}
+
+PERL_STATIC_INLINE IV
+Perl_SvIV_nomg(pTHX_ SV *sv) {
+ PERL_ARGS_ASSERT_SVIV_NOMG;
+
+ if (SvIOK(sv))
+ return SvIVX(sv);
+ return sv_2iv_flags(sv, 0);
+}
+
+PERL_STATIC_INLINE UV
+Perl_SvUV_nomg(pTHX_ SV *sv) {
+ PERL_ARGS_ASSERT_SVUV_NOMG;
+
+ if (SvIOK_nog(sv))
+ return SvUVX(sv);
+ return sv_2uv_flags(sv, 0);
+}
+
+PERL_STATIC_INLINE NV
+Perl_SvNV_nomg(pTHX_ SV *sv) {
+ PERL_ARGS_ASSERT_SVNV_NOMG;
+
+ if (SvNOK_nog(sv))
+ return SvNVX(sv);
+ return sv_2nv_flags(sv, 0);
+}
+
+#if defined(PERL_CORE) || defined (PERL_EXT)
+PERL_STATIC_INLINE STRLEN
+S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp)
+{
+ PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B;
+ if (SvGAMAGIC(sv)) {
+ U8 *hopped = utf8_hop((U8 *)pv, pos);
+ if (lenp) *lenp = (STRLEN)(utf8_hop(hopped, *lenp) - hopped);
+ return (STRLEN)(hopped - (U8 *)pv);
+ }
+ return sv_pos_u2b_flags(sv,pos,lenp,SV_CONST_RETURN);
+}
+#endif
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvutf8n_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy)
+{
+ /* This is just so can be passed to Perl_SvPV_helper() as a function
+ * pointer with the same signature as all the other such pointers, and
+ * having hence an unused parameter */
+ PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE_WRAPPER;
+ PERL_UNUSED_ARG(dummy);
+
+ return sv_pvutf8n_force(sv, lp);
+}
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvbyten_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy)
+{
+ /* This is just so can be passed to Perl_SvPV_helper() as a function
+ * pointer with the same signature as all the other such pointers, and
+ * having hence an unused parameter */
+ PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE_WRAPPER;
+ PERL_UNUSED_ARG(dummy);
+
+ return sv_pvbyten_force(sv, lp);
+}
+
+PERL_STATIC_INLINE char *
+Perl_SvPV_helper(pTHX_
+ SV * const sv,
+ STRLEN * const lp,
+ const U32 flags,
+ const PL_SvPVtype type,
+ char * (*non_trivial)(pTHX_ SV *, STRLEN * const, const U32),
+ const bool or_null,
+ const U32 return_flags
+ )
+{
+ /* 'type' should be known at compile time, so this is reduced to a single
+ * conditional at runtime */
+ if ( (type == SvPVbyte_type_ && SvPOK_byte_nog(sv))
+ || (type == SvPVforce_type_ && SvPOK_pure_nogthink(sv))
+ || (type == SvPVutf8_type_ && SvPOK_utf8_nog(sv))
+ || (type == SvPVnormal_type_ && SvPOK_nog(sv))
+ || (type == SvPVutf8_pure_type_ && SvPOK_utf8_pure_nogthink(sv))
+ || (type == SvPVbyte_pure_type_ && SvPOK_byte_pure_nogthink(sv))
+ ) {
+ if (lp) {
+ *lp = SvCUR(sv);
+ }
+
+ /* Similarly 'return_flags is known at compile time, so this becomes
+ * branchless */
+ if (return_flags & SV_MUTABLE_RETURN) {
+ return SvPVX_mutable(sv);
+ }
+ else if(return_flags & SV_CONST_RETURN) {
+ return (char *) SvPVX_const(sv);
+ }
+ else {
+ return SvPVX(sv);
+ }
+ }
+
+ if (or_null) { /* This is also known at compile time */
+ if (flags & SV_GMAGIC) { /* As is this */
+ SvGETMAGIC(sv);
+ }
+
+ if (! SvOK(sv)) {
+ if (lp) { /* As is this */
+ *lp = 0;
+ }
+
+ return NULL;
+ }
+ }
+
+ /* Can't trivially handle this, call the function */
+ return non_trivial(aTHX_ sv, lp, (flags|return_flags));
+}
+
+/*
+=for apidoc newRV_noinc
+
+Creates an RV wrapper for an SV. The reference count for the original
+SV is B<not> incremented.
+
+=cut
+*/
+
+PERL_STATIC_INLINE SV *
+Perl_newRV_noinc(pTHX_ SV *const tmpRef)
+{
+ SV *sv = newSV_type(SVt_IV);
+
+ PERL_ARGS_ASSERT_NEWRV_NOINC;
+
+ SvTEMP_off(tmpRef);
+
+ /* inlined, simplified sv_setrv_noinc(sv, tmpRef); */
+ SvRV_set(sv, tmpRef);
+ SvROK_on(sv);
+
+ return sv;
+}
+
+PERL_STATIC_INLINE char *
+Perl_sv_setpv_freshbuf(pTHX_ SV *const sv)
+{
+ PERL_ARGS_ASSERT_SV_SETPV_FRESHBUF;
+ assert(SvTYPE(sv) >= SVt_PV);
+ assert(SvTYPE(sv) <= SVt_PVMG);
+ assert(!SvTHINKFIRST(sv));
+ assert(SvPVX(sv));
+ SvCUR_set(sv, 0);
+ *(SvEND(sv))= '\0';
+ (void)SvPOK_only_UTF8(sv);
+ SvTAINT(sv);
+ return SvPVX(sv);
+}
+
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h
index 8f93fa0429..185e7ddab2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h
@@ -35,7 +35,7 @@ extern "C" {
#endif
#define PERL_BITS_PER_BYTE 8
-#define PERL_NFDBITS (sizeof(Perl_fd_mask)*PERL_BITS_PER_BYTE)
+#define PERL_NFDBITS (sizeof(Perl_fd_mask)*PERL_BITS_PER_BYTE)
typedef int Perl_fd_mask;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h
index dcec0c064b..474c2b43b6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h
@@ -16,8 +16,6 @@
#ifdef WIN32
# include <win32thread.h>
-#elif defined(NETWARE)
-# include <nw5thread.h>
#else
# ifdef OLD_PTHREADS_API /* Here be dragons. */
# define DETACH(t) \
@@ -34,11 +32,6 @@
# define PERL_SET_CONTEXT(t) Perl_set_context((void*)t)
# define PTHREAD_GETSPECIFIC_INT
-# ifdef DJGPP
-# define pthread_addr_t any_t
-# define NEED_PTHREAD_INIT
-# define PTHREAD_CREATE_JOINABLE (1)
-# endif
# ifdef OEMVS
# define pthread_addr_t void *
# define pthread_create(t,a,s,d) pthread_create(t,&(a),s,d)
@@ -61,7 +54,7 @@
# define pthread_mutexattr_init(a) pthread_mutexattr_create(a)
# define pthread_mutexattr_settype(a,t) pthread_mutexattr_setkind_np(a,t)
# endif
-# if defined(DJGPP) || defined(OEMVS)
+# if defined(OEMVS)
# define PTHREAD_ATTR_SETDETACHSTATE(a,s) pthread_attr_setdetachstate(a,&(s))
# define YIELD pthread_yield(NULL)
# endif
@@ -181,20 +174,20 @@
# ifdef MUTEX_INIT_NEEDS_MUTEX_ZEROED
/* Temporary workaround, true bug is deeper. --jhi 1999-02-25 */
# define MUTEX_INIT(m) \
- STMT_START { \
- int _eC_; \
- Zero((m), 1, perl_mutex); \
- if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default))) \
- Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]", \
- _eC_, __FILE__, __LINE__); \
+ STMT_START { \
+ int _eC_; \
+ Zero((m), 1, perl_mutex); \
+ if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default)))\
+ Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]", \
+ _eC_, __FILE__, __LINE__); \
} STMT_END
# else
# define MUTEX_INIT(m) \
STMT_START { \
int _eC_; \
- if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default))) \
- Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]", \
- _eC_, __FILE__, __LINE__); \
+ if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default))) \
+ Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]", \
+ _eC_, __FILE__, __LINE__); \
} STMT_END
# endif
@@ -206,28 +199,38 @@
# define perl_pthread_mutex_unlock(m) pthread_mutex_unlock(m)
# endif
-# define MUTEX_LOCK(m) \
+# define MUTEX_LOCK(m) \
STMT_START { \
+ dSAVE_ERRNO; \
int _eC_; \
- if ((_eC_ = perl_pthread_mutex_lock((m)))) \
- Perl_croak_nocontext("panic: MUTEX_LOCK (%d) [%s:%d]", \
+ if ((_eC_ = perl_pthread_mutex_lock((m)))) \
+ Perl_croak_nocontext("panic: MUTEX_LOCK (%d) [%s:%d]",\
_eC_, __FILE__, __LINE__); \
+ RESTORE_ERRNO; \
} STMT_END
-# define MUTEX_UNLOCK(m) \
+# define MUTEX_UNLOCK(m) \
STMT_START { \
+ dSAVE_ERRNO; /* Shouldn't be necessary as panics if fails */\
int _eC_; \
- if ((_eC_ = perl_pthread_mutex_unlock((m)))) \
- Perl_croak_nocontext("panic: MUTEX_UNLOCK (%d) [%s:%d]", \
+ if ((_eC_ = perl_pthread_mutex_unlock((m)))) { \
+ Perl_croak_nocontext( \
+ "panic: MUTEX_UNLOCK (%d) [%s:%d]", \
_eC_, __FILE__, __LINE__); \
+ } \
+ RESTORE_ERRNO; \
} STMT_END
-# define MUTEX_DESTROY(m) \
- STMT_START { \
- int _eC_; \
- if ((_eC_ = pthread_mutex_destroy((m)))) \
- Perl_croak_nocontext("panic: MUTEX_DESTROY (%d) [%s:%d]", \
- _eC_, __FILE__, __LINE__); \
+# define MUTEX_DESTROY(m) \
+ STMT_START { \
+ int _eC_; \
+ if ((_eC_ = pthread_mutex_destroy((m)))) { \
+ dTHX; \
+ if (PL_phase != PERL_PHASE_DESTRUCT) { \
+ Perl_croak_nocontext("panic: MUTEX_DESTROY (%d) [%s:%d]", \
+ _eC_, __FILE__, __LINE__); \
+ } \
+ } \
} STMT_END
#endif /* MUTEX_INIT */
@@ -265,11 +268,15 @@
} STMT_END
# define COND_DESTROY(c) \
- STMT_START { \
- int _eC_; \
- if ((_eC_ = pthread_cond_destroy((c)))) \
- Perl_croak_nocontext("panic: COND_DESTROY (%d) [%s:%d]", \
- _eC_, __FILE__, __LINE__); \
+ STMT_START { \
+ int _eC_; \
+ if ((_eC_ = pthread_cond_destroy((c)))) { \
+ dTHX; \
+ if (PL_phase != PERL_PHASE_DESTRUCT) { \
+ Perl_croak_nocontext("panic: COND_DESTROY (%d) [%s:%d]", \
+ _eC_, __FILE__, __LINE__); \
+ } \
+ } \
} STMT_END
#endif /* COND_INIT */
@@ -379,19 +386,51 @@
# define PTHREAD_GETSPECIFIC(key) pthread_getspecific(key)
#endif
-#ifndef PERL_GET_CONTEXT
-# define PERL_GET_CONTEXT PTHREAD_GETSPECIFIC(PL_thr_key)
-#endif
-
-#ifndef PERL_SET_CONTEXT
-# define PERL_SET_CONTEXT(t) \
- STMT_START { \
- int _eC_; \
- if ((_eC_ = pthread_setspecific(PL_thr_key, (void *)(t)))) \
- Perl_croak_nocontext("panic: pthread_setspecific (%d) [%s:%d]", \
- _eC_, __FILE__, __LINE__); \
+#if defined(PERL_THREAD_LOCAL) && !defined(PERL_GET_CONTEXT) && !defined(PERL_SET_CONTEXT) && !defined(__cplusplus)
+/* Use C11 thread-local storage, where possible.
+ * Frustratingly we can't use it for C++ extensions, C++ and C disagree on the
+ * syntax used for thread local storage, meaning that the working token that
+ * Configure probed for C turns out to be a compiler error on C++. Great.
+ * (Well, unless one or both is supporting non-standard syntax as an extension)
+ * As Configure doesn't have a way to probe for C++ dialects, we just take the
+ * safe option and do the same as 5.34.0 and earlier - use pthreads on C++.
+ * Of course, if C++ XS extensions really want to avoid *all* this overhead,
+ * they should #define PERL_NO_GET_CONTEXT and pass aTHX/aTHX_ explicitly) */
+# define PERL_USE_THREAD_LOCAL
+extern PERL_THREAD_LOCAL void *PL_current_context;
+
+# define PERL_GET_CONTEXT PL_current_context
+
+/* We must also call pthread_setspecific() always, as C++ code has to read it
+ * with pthreads (the #else side just below) */
+
+# define PERL_SET_CONTEXT(t) \
+ STMT_START { \
+ int _eC_; \
+ if ((_eC_ = pthread_setspecific(PL_thr_key, \
+ PL_current_context = (void *)(t)))) \
+ Perl_croak_nocontext("panic: pthread_setspecific (%d) [%s:%d]", \
+ _eC_, __FILE__, __LINE__); \
+ PERL_SET_NON_tTHX_CONTEXT(t); \
} STMT_END
-#endif /* PERL_SET_CONTEXT */
+
+#else
+/* else fall back to pthreads */
+
+# ifndef PERL_GET_CONTEXT
+# define PERL_GET_CONTEXT PTHREAD_GETSPECIFIC(PL_thr_key)
+# endif
+
+/* For C++ extensions built on a system where the C compiler provides thread
+ * local storage that call PERL_SET_CONTEXT() also need to set
+ * PL_current_context, so need to call into C code to do this.
+ * To avoid exploding code complexity, do this also on C platforms that don't
+ * support thread local storage. PERL_SET_CONTEXT is not called that often. */
+
+# ifndef PERL_SET_CONTEXT
+# define PERL_SET_CONTEXT(t) Perl_set_context((void*)t)
+# endif /* PERL_SET_CONTEXT */
+#endif /* PERL_THREAD_LOCAL */
#ifndef INIT_THREADS
# ifdef NEED_PTHREAD_INIT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h
index 68df40f605..47d586ccf8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h
@@ -50,7 +50,7 @@
* This symbol, if defined, indicates that the chsize routine is available
* to truncate files. You might need a -lx to get this routine.
*/
-/*#define HAS_CHSIZE / **/
+/*#define HAS_CHSIZE / **/
/* HAS_CRYPT:
* This symbol, if defined, indicates that the crypt routine is available
@@ -228,7 +228,7 @@
* This symbol, if defined, indicates that the mbstowcs routine is
* available to convert a multibyte string into a wide character string.
*/
-/*#define HAS_MBSTOWCS / **/
+/*#define HAS_MBSTOWCS / **/
/* HAS_MBTOWC:
* This symbol, if defined, indicates that the mbtowc routine is available
@@ -596,7 +596,7 @@
* This symbol, if defined, indicates to the C program that it should
* include <arpa/inet.h> to get inet_addr and friends declarations.
*/
-/*#define I_ARPA_INET / **/
+/*#define I_ARPA_INET / **/
/* I_DBM:
* This symbol, if defined, indicates that <dbm.h> exists and should
@@ -630,7 +630,7 @@
* This symbol, if defined, indicates to the C program that it should
* include <locale.h>.
*/
-/*#define I_LOCALE / **/
+/*#define I_LOCALE / **/
/* I_NETINET_IN:
* This symbol, if defined, indicates to the C program that it should
@@ -658,7 +658,7 @@
* This symbol, if defined, indicates the <sys/sockio.h> should be included
* to get socket ioctl options, like SIOCATMARK.
*/
-/*#define I_SYS_IOCTL / **/
+/*#define I_SYS_IOCTL / **/
/*#define I_SYS_SOCKIO / **/
/* I_SYS_NDIR:
@@ -696,19 +696,19 @@
* This symbol, if defined, indicates to the C program that it should
* include <sys/stat.h>.
*/
-#define I_SYS_STAT /**/
+#define I_SYS_STAT /**/
/* I_SYS_TIMES:
* This symbol, if defined, indicates to the C program that it should
* include <sys/times.h>.
*/
-/*#define I_SYS_TIMES / **/
+/*#define I_SYS_TIMES / **/
/* I_SYS_TYPES:
* This symbol, if defined, indicates to the C program that it should
* include <sys/types.h>.
*/
-/*#define I_SYS_TYPES / **/
+/*#define I_SYS_TYPES / **/
/* I_SYS_UN:
* This symbol, if defined, indicates to the C program that it should
@@ -862,7 +862,7 @@
* This symbol is defined if the C compiler can cast negative
* or large floating point numbers to 32-bit ints.
*/
-/*#define CASTI32 / **/
+/*#define CASTI32 / **/
/* CASTNEGFLOAT:
* This symbol is defined if the C compiler can cast negative
@@ -876,7 +876,7 @@
* 2 = couldn't cast >= 0x80000000
* 4 = couldn't cast in argument expression list
*/
-/*#define CASTNEGFLOAT / **/
+/*#define CASTNEGFLOAT / **/
#define CASTFLAGS 0 /**/
/* VOID_CLOSEDIR:
@@ -978,13 +978,13 @@
* This symbol, if defined, indicates that siginfo_t has the
* si_value member
*/
-/*#define HAS_SIGINFO_SI_ERRNO / **/
-/*#define HAS_SIGINFO_SI_PID / **/
-/*#define HAS_SIGINFO_SI_UID / **/
-/*#define HAS_SIGINFO_SI_ADDR / **/
-/*#define HAS_SIGINFO_SI_STATUS / **/
-/*#define HAS_SIGINFO_SI_BAND / **/
-/*#define HAS_SIGINFO_SI_VALUE / **/
+/*#define HAS_SIGINFO_SI_ERRNO / **/
+/*#define HAS_SIGINFO_SI_PID / **/
+/*#define HAS_SIGINFO_SI_UID / **/
+/*#define HAS_SIGINFO_SI_ADDR / **/
+/*#define HAS_SIGINFO_SI_STATUS / **/
+/*#define HAS_SIGINFO_SI_BAND / **/
+/*#define HAS_SIGINFO_SI_VALUE / **/
/* HAS_SIGSETJMP:
* This variable indicates to the C program that the sigsetjmp()
@@ -1214,7 +1214,7 @@
* This symbol, if defined, indicates that this system uses
* EBCDIC encoding.
*/
-/*#define EBCDIC / **/
+/*#define EBCDIC / **/
/* ARCHLIB:
* This variable, if defined, holds the name of the directory in
@@ -1229,8 +1229,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.34/unknown" / **/
-/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.34/unknown" / **/
+/*#define ARCHLIB "/usr/local/lib/perl5/5.38/unknown" / **/
+/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.38/unknown" / **/
/* BIN:
* This symbol holds the path of the bin directory where the package will
@@ -1283,8 +1283,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.34" /**/
-#define PRIVLIB_EXP "/usr/local/lib/perl5/5.34" /**/
+#define PRIVLIB "/usr/local/lib/perl5/5.38" /**/
+#define PRIVLIB_EXP "/usr/local/lib/perl5/5.38" /**/
/* SITEARCH:
* This symbol contains the name of the private library for this package.
@@ -1301,8 +1301,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.34/unknown" / **/
-/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.34/unknown" / **/
+/*#define SITEARCH "/usr/local/lib/perl5/5.38/unknown" / **/
+/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.38/unknown" / **/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@@ -1324,8 +1324,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.34" /**/
-#define SITELIB_EXP "/usr/local/lib/perl5/5.34" /**/
+#define SITELIB "/usr/local/lib/perl5/5.38" /**/
+#define SITELIB_EXP "/usr/local/lib/perl5/5.38" /**/
#define SITELIB_STEM "/usr/local/lib/perl5" /**/
/* PERL_VENDORARCH:
@@ -1460,6 +1460,10 @@
* Can we handle GCC attribute for functions that should always be
* inlined.
*/
+/* HASATTRIBUTE_VISIBILITY:
+ * Can we handle GCC attribute for functions that should have a
+ * different visibility.
+ */
/*#define HASATTRIBUTE_DEPRECATED / **/
/*#define HASATTRIBUTE_FORMAT / **/
/*#define PRINTF_FORMAT_NULL_OK / **/
@@ -1470,6 +1474,7 @@
/*#define HASATTRIBUTE_UNUSED / **/
/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
/*#define HASATTRIBUTE_ALWAYS_INLINE / **/
+/*#define HASATTRIBUTE_VISIBILITY / **/
/* HAS_BACKTRACE:
* This symbol, if defined, indicates that the backtrace() routine is
@@ -1541,7 +1546,7 @@
/*#define HAS_ENDPROTOENT / **/
/* HAS_ENDPWENT:
- * This symbol, if defined, indicates that the getgrent routine is
+ * This symbol, if defined, indicates that the endpwent routine is
* available for finalizing sequential access of the passwd database.
*/
/*#define HAS_ENDPWENT / **/
@@ -1556,7 +1561,7 @@
* This symbol, if defined, indicates that the system supports filenames
* longer than 14 characters.
*/
-/*#define FLEXFILENAMES / **/
+/*#define FLEXFILENAMES / **/
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
@@ -1935,16 +1940,16 @@
* This symbol, if defined, indicates the availability of
* struct ipv6_mreq_source;
*/
-/*#define HAS_SOCKET / **/
-/*#define HAS_SOCKETPAIR / **/
-/*#define HAS_SOCKADDR_SA_LEN / **/
-/*#define HAS_SOCKADDR_IN6 / **/
-/*#define HAS_SOCKADDR_STORAGE / **/
-/*#define HAS_SIN6_SCOPE_ID / **/
-/*#define HAS_IP_MREQ / **/
-/*#define HAS_IP_MREQ_SOURCE / **/
-/*#define HAS_IPV6_MREQ / **/
-/*#define HAS_IPV6_MREQ_SOURCE / **/
+/*#define HAS_SOCKET / **/
+/*#define HAS_SOCKETPAIR / **/
+/*#define HAS_SOCKADDR_SA_LEN / **/
+/*#define HAS_SOCKADDR_IN6 / **/
+/*#define HAS_SOCKADDR_STORAGE / **/
+/*#define HAS_SIN6_SCOPE_ID / **/
+/*#define HAS_IP_MREQ / **/
+/*#define HAS_IP_MREQ_SOURCE / **/
+/*#define HAS_IPV6_MREQ / **/
+/*#define HAS_IPV6_MREQ_SOURCE / **/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2146,7 +2151,7 @@
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
*/
-/*#define I_SYSUIO / **/
+/*#define I_SYSUIO / **/
/* I_TERMIO:
* This symbol, if defined, indicates that the program should include
@@ -2245,8 +2250,8 @@
* Perl has been cross-compiled to. Undefined if not a cross-compile.
*/
#ifndef USE_CROSS_COMPILE
-/*#define USE_CROSS_COMPILE / **/
-#define PERL_TARGETARCH "" /**/
+/*#define USE_CROSS_COMPILE / **/
+#define PERL_TARGETARCH "" /**/
#endif
/* PERL_USE_DEVEL:
@@ -2254,7 +2259,7 @@
* -Dusedevel, to enable development features. This should not be
* done for production builds.
*/
-/*#define PERL_USE_DEVEL / **/
+/*#define PERL_USE_DEVEL / **/
/* HAS_ATOLF:
* This symbol, if defined, indicates that the atolf routine is
@@ -2304,6 +2309,13 @@
*/
/*#define HAS_ATANH / **/
+/* HAS_NON_INT_BITFIELDS:
+ * This symbol, if defined, indicates that the C compiler accepts, without
+ * error or warning, struct bitfields that are declared with sizes other
+ * than plain 'int'; for example 'unsigned char' is accepted.
+ */
+#define HAS_NON_INT_BITFIELDS /**/
+
/* HAS_BUILTIN_CHOOSE_EXPR:
* Can we handle GCC builtin for compile-time ternary-like expressions
*/
@@ -2333,7 +2345,7 @@
/* HAS_C99_VARIADIC_MACROS:
* If defined, the compiler supports C99 variadic macros.
*/
-/*#define HAS_C99_VARIADIC_MACROS / **/
+/*#define HAS_C99_VARIADIC_MACROS / **/
/* HAS_CLASS:
* This symbol, if defined, indicates that the class routine is
@@ -2389,10 +2401,10 @@
* to the program to supply one. A good guess is
* extern int dbminit(char *);
*/
-/*#define HAS_DBMINIT_PROTO / **/
+/*#define HAS_DBMINIT_PROTO / **/
/* HAS_DIR_DD_FD:
- * This symbol, if defined, indicates that the the DIR* dirstream
+ * This symbol, if defined, indicates that the DIR* dirstream
* structure contains a member variable named dd_fd.
*/
/*#define HAS_DIR_DD_FD / **/
@@ -2409,7 +2421,7 @@
* makes sense if you *have* dlsym, which we will presume is the
* case if you're using dl_dlopen.xs.
*/
-/*#define DLSYM_NEEDS_UNDERSCORE / **/
+/*#define DLSYM_NEEDS_UNDERSCORE / **/
/* HAS_DUP3:
* This symbol, if defined, indicates that the dup3 routine is
@@ -2480,6 +2492,19 @@
*/
/*#define HAS_FEGETROUND / **/
+/* HAS_FFS:
+ * This symbol, if defined, indicates that the ffs routine is available
+ * to find the first bit set in its argument. If it's not available,
+ * roll your own.
+ */
+/* HAS_FFSL:
+ * This symbol, if defined, indicates that the ffsl routine is available
+ * to find the first bit set in its argument. If it's not available,
+ * roll your own.
+ */
+/*#define HAS_FFS / **/
+/*#define HAS_FFSL / **/
+
/* HAS_FINITE:
* This symbol, if defined, indicates that the finite routine is
* available to check whether a double is finite (non-infinity non-NaN).
@@ -2499,7 +2524,7 @@
* to the program to supply one. A good guess is
* extern int flock(int, int);
*/
-/*#define HAS_FLOCK_PROTO / **/
+/*#define HAS_FLOCK_PROTO / **/
/* HAS_FMA:
* This symbol, if defined, indicates that the fma routine is
@@ -2585,8 +2610,8 @@
* FP_NAN NaN
*
*/
-/*#define HAS_FPCLASSIFY / **/
-/*#define HAS_FP_CLASSIFY / **/
+/*#define HAS_FPCLASSIFY / **/
+/*#define HAS_FP_CLASSIFY / **/
/* HAS_FPCLASSL:
* This symbol, if defined, indicates that the fpclassl routine is
@@ -2615,7 +2640,7 @@
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
-/*#define HAS_FPOS64_T / **/
+/*#define HAS_FPOS64_T / **/
/* HAS_FREXPL:
* This symbol, if defined, indicates that the frexpl routine is
@@ -2645,11 +2670,11 @@
/* HAS_UNLINKAT:
* This symbol is defined if the unlinkat() routine is available.
*/
-/*#define HAS_FCHMODAT / **/
-/*#define HAS_LINKAT / **/
-/*#define HAS_OPENAT / **/
-/*#define HAS_RENAMEAT / **/
-/*#define HAS_UNLINKAT / **/
+/*#define HAS_FCHMODAT / **/
+/*#define HAS_LINKAT / **/
+/*#define HAS_OPENAT / **/
+/*#define HAS_RENAMEAT / **/
+/*#define HAS_UNLINKAT / **/
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
@@ -2857,8 +2882,8 @@
* j0l() function is available for Bessel functions of the first
* kind of the order zero, for long doubles.
*/
-/*#define HAS_J0 / **/
-/*#define HAS_J0L / **/
+/*#define HAS_J0 / **/
+/*#define HAS_J0L / **/
/* HAS_LC_MONETARY_2008:
* This symbol, if defined, indicates that the localeconv routine is
@@ -3087,15 +3112,20 @@
* available to return the name of the locale for a category mask.
*/
/* I_XLOCALE:
- * This symbol, if defined, indicates to the C program that it should
- * include <xlocale.h> to get uselocale() and its friends.
+ * This symbol, if defined, indicates to the C program that the
+ * header xlocale.h is available. See also NEED_XLOCALE_H
*/
-/*#define HAS_NEWLOCALE / **/
-/*#define HAS_FREELOCALE / **/
-/*#define HAS_USELOCALE / **/
-/*#define HAS_DUPLOCALE / **/
-/*#define HAS_QUERYLOCALE / **/
-/*#define I_XLOCALE / **/
+/* NEED_XLOCALE_H:
+ * This symbol, if defined, indicates that the C program should
+ * include <xlocale.h> to get newlocale() and its friends.
+ */
+/*#define HAS_NEWLOCALE / **/
+/*#define HAS_FREELOCALE / **/
+/*#define HAS_USELOCALE / **/
+/*#define HAS_DUPLOCALE / **/
+/*#define HAS_QUERYLOCALE / **/
+/*#define NEED_XLOCALE_H / **/
+/*#define I_XLOCALE / **/
/* HAS_NEXTAFTER:
* This symbol, if defined, indicates that the nextafter routine is
@@ -3121,7 +3151,7 @@
/* HAS_OFF64_T:
* This symbol will be defined if the C compiler supports off64_t.
*/
-/*#define HAS_OFF64_T / **/
+/*#define HAS_OFF64_T / **/
/* HAS_PIPE2:
* This symbol, if defined, indicates that the pipe2 routine is
@@ -3166,7 +3196,7 @@
/* HAS_PTRDIFF_T:
* This symbol will be defined if the C compiler supports ptrdiff_t.
*/
-#define HAS_PTRDIFF_T /**/
+#define HAS_PTRDIFF_T /**/
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
@@ -3213,7 +3243,7 @@
* extern void* sbrk(int);
* extern void* sbrk(size_t);
*/
-/*#define HAS_SBRK_PROTO / **/
+/*#define HAS_SBRK_PROTO / **/
/* HAS_SCALBN:
* This symbol, if defined, indicates that the scalbn routine is
@@ -3234,6 +3264,12 @@
*/
/*#define HAS_SENDMSG / **/
+/* HAS_SETENV:
+ * This symbol, if defined, indicates that the setenv routine is
+ * available for use.
+ */
+/*#define HAS_SETENV / **/
+
/* HAS_SETITIMER:
* This symbol, if defined, indicates that the setitimer routine is
* available to set interval timers.
@@ -3279,7 +3315,7 @@
* be used.
*/
#ifndef USE_SITECUSTOMIZE
-/*#define USE_SITECUSTOMIZE / **/
+/*#define USE_SITECUSTOMIZE / **/
#endif
/* HAS_SNPRINTF:
@@ -3305,7 +3341,7 @@
* to the program to supply one. A good guess is
* extern int sockatmark(int);
*/
-/*#define HAS_SOCKATMARK_PROTO / **/
+/*#define HAS_SOCKATMARK_PROTO / **/
/* HAS_SOCKS5_INIT:
* This symbol, if defined, indicates that the socks5_init routine is
@@ -3325,7 +3361,7 @@
* to the program to supply one. Good guesses are
* extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
*/
-/*#define HAS_SETRESGID_PROTO / **/
+/*#define HAS_SETRESGID_PROTO / **/
/* HAS_SETRESUID_PROTO:
* This symbol, if defined, indicates that the system provides
@@ -3333,7 +3369,7 @@
* to the program to supply one. Good guesses are
* extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
*/
-/*#define HAS_SETRESUID_PROTO / **/
+/*#define HAS_SETRESUID_PROTO / **/
/* HAS_STRUCT_STATFS_F_FLAGS:
* This symbol, if defined, indicates that the struct statfs
@@ -3419,6 +3455,12 @@
*/
/*#define HAS_STRTOUQ / **/
+/* HAS_STRXFRM_L:
+ * This symbol, if defined, indicates that the strxfrm_l() routine is
+ * available to transform strings.
+ */
+/*#define HAS_STRXFRM_L / **/
+
/* HAS_SYSCALL_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the syscall() function. Otherwise, it is up
@@ -3426,7 +3468,7 @@
* extern int syscall(int, ...);
* extern int syscall(long, ...);
*/
-/*#define HAS_SYSCALL_PROTO / **/
+/*#define HAS_SYSCALL_PROTO / **/
/* HAS_TELLDIR_PROTO:
* This symbol, if defined, indicates that the system provides
@@ -3434,7 +3476,7 @@
* to the program to supply one. A good guess is
* extern long telldir(DIR*);
*/
-/*#define HAS_TELLDIR_PROTO / **/
+/*#define HAS_TELLDIR_PROTO / **/
/* HAS_TGAMMA:
* This symbol, if defined, indicates that the tgamma routine is
@@ -3466,12 +3508,12 @@
* This symbol, if defined, indicates that the asctime64 () routine is
* available to do the 64bit variant of asctime ()
*/
-/*#define HAS_CTIME64 / **/
-/*#define HAS_LOCALTIME64 / **/
-/*#define HAS_GMTIME64 / **/
-/*#define HAS_MKTIME64 / **/
-/*#define HAS_DIFFTIME64 / **/
-/*#define HAS_ASCTIME64 / **/
+/*#define HAS_CTIME64 / **/
+/*#define HAS_LOCALTIME64 / **/
+/*#define HAS_GMTIME64 / **/
+/*#define HAS_MKTIME64 / **/
+/*#define HAS_DIFFTIME64 / **/
+/*#define HAS_ASCTIME64 / **/
/* HAS_TIMEGM:
* This symbol, if defined, indicates that the timegm routine is
@@ -3536,7 +3578,7 @@
* to the program to supply one. A good guess is
* extern int usleep(useconds_t);
*/
-/*#define HAS_USLEEP_PROTO / **/
+/*#define HAS_USLEEP_PROTO / **/
/* HAS_USTAT:
* This symbol, if defined, indicates that the ustat system call is
@@ -3552,7 +3594,7 @@
/* HAS_WCSXFRM:
* This symbol, if defined, indicates that the wcsxfrm routine is
- * available to tranform a wide character string for wcscmp().
+ * available to transform a wide character string for wcscmp().
*/
/*#define HAS_WCSXFRM / **/
@@ -3587,20 +3629,20 @@
* Note that if fflushNULL is defined, fflushall will not
* even be probed for and will be left undefined.
*/
-/*#define FFLUSH_NULL / **/
-/*#define FFLUSH_ALL / **/
+/*#define FFLUSH_NULL / **/
+/*#define FFLUSH_ALL / **/
/* I_BFD:
* This symbol, if defined, indicates that <bfd.h> exists and
* can be included.
*/
-/*#define I_BFD / **/
+/*#define I_BFD / **/
/* I_CRYPT:
* This symbol, if defined, indicates that <crypt.h> exists and
* should be included.
*/
-/*#define I_CRYPT / **/
+/*#define I_CRYPT / **/
/* DB_Prefix_t:
* This symbol contains the type of the prefix structure element
@@ -3642,19 +3684,19 @@
* This symbol, if defined, indicates that <fp.h> exists and
* should be included.
*/
-/*#define I_FP / **/
+/*#define I_FP / **/
/* I_FP_CLASS:
* This symbol, if defined, indicates that <fp_class.h> exists and
* should be included.
*/
-/*#define I_FP_CLASS / **/
+/*#define I_FP_CLASS / **/
/* I_IEEEFP:
* This symbol, if defined, indicates that <ieeefp.h> exists and
* should be included.
*/
-/*#define I_IEEEFP / **/
+/*#define I_IEEEFP / **/
/* I_INTTYPES:
* This symbol, if defined, indicates to the C program that it should
@@ -3666,13 +3708,13 @@
* This symbol, if defined, indicates that <langinfo.h> exists and
* should be included.
*/
-/*#define I_LANGINFO / **/
+/*#define I_LANGINFO / **/
/* I_LIBUTIL:
* This symbol, if defined, indicates that <libutil.h> exists and
* should be included.
*/
-/*#define I_LIBUTIL / **/
+/*#define I_LIBUTIL / **/
/* I_MALLOCMALLOC:
* This symbol, if defined, indicates to the C program that it should
@@ -3684,7 +3726,7 @@
* This symbol, if defined, indicates that <mntent.h> exists and
* should be included.
*/
-/*#define I_MNTENT / **/
+/*#define I_MNTENT / **/
/* I_NETINET_TCP:
* This symbol, if defined, indicates to the C program that it should
@@ -3696,37 +3738,37 @@
* This symbol, if defined, indicates that <poll.h> exists and
* should be included. (see also HAS_POLL)
*/
-/*#define I_POLL / **/
+/*#define I_POLL / **/
/* I_PROT:
* This symbol, if defined, indicates that <prot.h> exists and
* should be included.
*/
-/*#define I_PROT / **/
+/*#define I_PROT / **/
/* I_QUADMATH:
* This symbol, if defined, indicates that <quadmath.h> exists and
* should be included.
*/
-/*#define I_QUADMATH / **/
+/*#define I_QUADMATH / **/
/* I_SHADOW:
* This symbol, if defined, indicates that <shadow.h> exists and
* should be included.
*/
-/*#define I_SHADOW / **/
+/*#define I_SHADOW / **/
/* I_SOCKS:
* This symbol, if defined, indicates that <socks.h> exists and
* should be included.
*/
-/*#define I_SOCKS / **/
+/*#define I_SOCKS / **/
/* I_STDBOOL:
* This symbol, if defined, indicates that <stdbool.h> exists and
* can be included.
*/
-/*#define I_STDBOOL / **/
+/*#define I_STDBOOL / **/
/* I_STDINT:
* This symbol, if defined, indicates that <stdint.h> exists and
@@ -3738,54 +3780,59 @@
* This symbol, if defined, indicates that <sunmath.h> exists and
* should be included.
*/
-/*#define I_SUNMATH / **/
+/*#define I_SUNMATH / **/
/* I_SYSLOG:
* This symbol, if defined, indicates that <syslog.h> exists and
* should be included.
*/
-/*#define I_SYSLOG / **/
+/*#define I_SYSLOG / **/
/* I_SYSMODE:
* This symbol, if defined, indicates that <sys/mode.h> exists and
* should be included.
*/
-/*#define I_SYSMODE / **/
+/*#define I_SYSMODE / **/
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
*/
-/*#define I_SYS_MOUNT / **/
+/*#define I_SYS_MOUNT / **/
/* I_SYS_STATFS:
* This symbol, if defined, indicates that <sys/statfs.h> exists.
*/
-/*#define I_SYS_STATFS / **/
+/*#define I_SYS_STATFS / **/
/* I_SYS_STATVFS:
* This symbol, if defined, indicates that <sys/statvfs.h> exists and
* should be included.
*/
-/*#define I_SYS_STATVFS / **/
+/*#define I_SYS_STATVFS / **/
+
+/* I_SYS_SYSCALL:
+ * This symbol, if defined, indicates that <sys/syscall.h> exists.
+ */
+/*#define I_SYS_SYSCALL / **/
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
*/
-/*#define I_SYSUTSNAME / **/
+/*#define I_SYSUTSNAME / **/
/* I_SYS_VFS:
* This symbol, if defined, indicates that <sys/vfs.h> exists and
* should be included.
*/
-/*#define I_SYS_VFS / **/
+/*#define I_SYS_VFS / **/
/* I_USTAT:
* This symbol, if defined, indicates that <ustat.h> exists and
* should be included.
*/
-/*#define I_USTAT / **/
+/*#define I_USTAT / **/
/* I_WCHAR:
* This symbol, if defined, indicates to the C program that <wchar.h>
@@ -3796,7 +3843,7 @@
/* I_WCTYPE:
* This symbol, if defined, indicates that <wctype.h> exists.
*/
-/*#define I_WCTYPE / **/
+/*#define I_WCTYPE / **/
/* DOUBLEINFBYTES:
* This symbol, if defined, is a comma-separated list of
@@ -3947,7 +3994,33 @@
* of copying mechanisms, handy.h defines a platform-
* independent macro, Perl_va_copy(src, dst), to do the job.
*/
-#define NEED_VA_COPY /**/
+#define NEED_VA_COPY /**/
+
+/* I32df:
+ * This symbol defines the format string used for printing a Perl I32
+ * as a signed decimal integer.
+ */
+/* U32uf:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned decimal integer.
+ */
+/* U32of:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned octal integer.
+ */
+/* U32xf:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ * This symbol defines the format string used for printing a Perl U32
+ * as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define I32df "ld" /**/
+#define U32of "lo" /**/
+#define U32uf "lu" /**/
+#define U32xf "lx" /**/
+#define U32Xf "lX" /**/
/* IVTYPE:
* This symbol defines the C type used for Perl's IV.
@@ -4038,35 +4111,35 @@
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
*/
-#define IVTYPE long /**/
-#define UVTYPE unsigned long /**/
-#define I8TYPE signed char /**/
-#define U8TYPE unsigned char /**/
-#define I16TYPE short /**/
-#define U16TYPE unsigned short /**/
-#define I32TYPE long /**/
-#define U32TYPE unsigned long /**/
+#define IVTYPE long /**/
+#define UVTYPE unsigned long /**/
+#define I8TYPE signed char /**/
+#define U8TYPE unsigned char /**/
+#define I16TYPE short /**/
+#define U16TYPE unsigned short /**/
+#define I32TYPE long /**/
+#define U32TYPE unsigned long /**/
#ifdef HAS_QUAD
-#define I64TYPE int64_t /**/
-#define U64TYPE uint64_t /**/
+#define I64TYPE int64_t /**/
+#define U64TYPE uint64_t /**/
#endif
-#define NVTYPE double /**/
-#define IVSIZE 4 /**/
-#define UVSIZE 4 /**/
-#define I8SIZE 1 /**/
-#define U8SIZE 1 /**/
-#define I16SIZE 2 /**/
-#define U16SIZE 2 /**/
-#define I32SIZE 4 /**/
-#define U32SIZE 4 /**/
+#define NVTYPE double /**/
+#define IVSIZE 4 /**/
+#define UVSIZE 4 /**/
+#define I8SIZE 1 /**/
+#define U8SIZE 1 /**/
+#define I16SIZE 2 /**/
+#define U16SIZE 2 /**/
+#define I32SIZE 4 /**/
+#define U32SIZE 4 /**/
#ifdef HAS_QUAD
-#define I64SIZE 8 /**/
-#define U64SIZE 8 /**/
+#define I64SIZE 8 /**/
+#define U64SIZE 8 /**/
#endif
-#define NVSIZE 8 /**/
+#define NVSIZE 8 /**/
#undef NV_PRESERVES_UV
-#define NV_PRESERVES_UV_BITS 0
-#define NV_OVERFLOWS_INTEGERS_AT (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
+#define NV_PRESERVES_UV_BITS 0
+#define NV_OVERFLOWS_INTEGERS_AT (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
#undef NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
@@ -4114,14 +4187,14 @@
* This symbol defines the format string used for printing a Perl NV
* using %g-ish floating point format.
*/
-#define IVdf "ld" /**/
-#define UVuf "lu" /**/
-#define UVof "lo" /**/
-#define UVxf "lx" /**/
-#define UVXf "lX" /**/
-#define NVef "e" /**/
-#define NVff "f" /**/
-#define NVgf "g" /**/
+#define IVdf "ld" /**/
+#define UVuf "lu" /**/
+#define UVof "lo" /**/
+#define UVxf "lx" /**/
+#define UVXf "lX" /**/
+#define NVef "e" /**/
+#define NVff "f" /**/
+#define NVgf "g" /**/
/* SELECT_MIN_BITS:
* This symbol holds the minimum number of bits operated by select.
@@ -4132,6 +4205,16 @@
*/
#define SELECT_MIN_BITS 32 /**/
+/* ST_DEV_SIZE:
+ * This variable contains the size of struct stat's st_dev in bytes.
+ */
+/* ST_DEV_SIGN:
+ * This symbol holds the signedness of struct stat's st_dev.
+ * 1 for unsigned, -1 for signed.
+ */
+#define ST_DEV_SIGN 1 /* st_dev sign */
+#define ST_DEV_SIZE 4 /* st_dev size */
+
/* ST_INO_SIZE:
* This variable contains the size of struct stat's st_ino in bytes.
*/
@@ -4157,7 +4240,7 @@
* This symbol tells the name of the array holding the stdio streams.
* Usual values include _iob, __iob, and __sF.
*/
-/*#define HAS_STDIO_STREAM_ARRAY / **/
+/*#define HAS_STDIO_STREAM_ARRAY / **/
#ifdef HAS_STDIO_STREAM_ARRAY
#define STDIO_STREAM_ARRAY
#endif
@@ -4202,10 +4285,10 @@
* you may need at least to reboot your OS to 64-bit mode.
*/
#ifndef USE_64_BIT_INT
-/*#define USE_64_BIT_INT / **/
+/*#define USE_64_BIT_INT / **/
#endif
#ifndef USE_64_BIT_ALL
-/*#define USE_64_BIT_ALL / **/
+/*#define USE_64_BIT_ALL / **/
#endif
/* USE_C_BACKTRACE:
@@ -4232,7 +4315,7 @@
* Defaults to define in Perls 5.8 and earlier, to undef later.
*/
#ifndef USE_FAST_STDIO
-/*#define USE_FAST_STDIO / **/
+/*#define USE_FAST_STDIO / **/
#endif
/* USE_KERN_PROC_PATHNAME:
@@ -4247,7 +4330,7 @@
* should be used when available.
*/
#ifndef USE_LARGE_FILES
-/*#define USE_LARGE_FILES / **/
+/*#define USE_LARGE_FILES / **/
#endif
/* USE_LONG_DOUBLE:
@@ -4255,7 +4338,7 @@
* be used when available.
*/
#ifndef USE_LONG_DOUBLE
-/*#define USE_LONG_DOUBLE / **/
+/*#define USE_LONG_DOUBLE / **/
#endif
/* USE_MORE_BITS:
@@ -4263,7 +4346,7 @@
* long doubles should be used when available.
*/
#ifndef USE_MORE_BITS
-/*#define USE_MORE_BITS / **/
+/*#define USE_MORE_BITS / **/
#endif
/* MULTIPLICITY:
@@ -4271,7 +4354,7 @@
* be built to use multiplicity.
*/
#ifndef MULTIPLICITY
-/*#define MULTIPLICITY / **/
+/*#define MULTIPLICITY / **/
#endif
/* USE_NSGETEXECUTABLEPATH:
@@ -4287,7 +4370,7 @@
* used in a fully backward compatible manner.
*/
#ifndef USE_PERLIO
-/*#define USE_PERLIO / **/
+/*#define USE_PERLIO / **/
#endif
/* USE_QUADMATH:
@@ -4295,7 +4378,7 @@
* be used when available.
*/
#ifndef USE_QUADMATH
-/*#define USE_QUADMATH / **/
+/*#define USE_QUADMATH / **/
#endif
/* USE_SOCKS:
@@ -4303,7 +4386,7 @@
* be built to use socks.
*/
#ifndef USE_SOCKS
-/*#define USE_SOCKS / **/
+/*#define USE_SOCKS / **/
#endif
/* HAS_DRAND48_PROTO:
@@ -4312,7 +4395,7 @@
* to the program to supply one. A good guess is
* extern double drand48(void);
*/
-/*#define HAS_DRAND48_PROTO / **/
+/*#define HAS_DRAND48_PROTO / **/
/* HAS_GETHOST_PROTOS:
* This symbol, if defined, indicates that <netdb.h> includes
@@ -4320,7 +4403,7 @@
* gethostbyaddr(). Otherwise, it is up to the program to guess
* them. See netdbtype.U for probing for various Netdb_xxx_t types.
*/
-/*#define HAS_GETHOST_PROTOS / **/
+/*#define HAS_GETHOST_PROTOS / **/
/* HAS_GETNET_PROTOS:
* This symbol, if defined, indicates that <netdb.h> includes
@@ -4328,7 +4411,7 @@
* getnetbyaddr(). Otherwise, it is up to the program to guess
* them. See netdbtype.U for probing for various Netdb_xxx_t types.
*/
-/*#define HAS_GETNET_PROTOS / **/
+/*#define HAS_GETNET_PROTOS / **/
/* HAS_GETPROTO_PROTOS:
* This symbol, if defined, indicates that <netdb.h> includes
@@ -4336,7 +4419,7 @@
* getprotobyaddr(). Otherwise, it is up to the program to guess
* them. See netdbtype.U for probing for various Netdb_xxx_t types.
*/
-/*#define HAS_GETPROTO_PROTOS / **/
+/*#define HAS_GETPROTO_PROTOS / **/
/* HAS_GETSERV_PROTOS:
* This symbol, if defined, indicates that <netdb.h> includes
@@ -4344,7 +4427,7 @@
* getservbyaddr(). Otherwise, it is up to the program to guess
* them. See netdbtype.U for probing for various Netdb_xxx_t types.
*/
-/*#define HAS_GETSERV_PROTOS / **/
+/*#define HAS_GETSERV_PROTOS / **/
/* HAS_LSEEK_PROTO:
* This symbol, if defined, indicates that the system provides
@@ -4352,7 +4435,7 @@
* to the program to supply one. A good guess is
* extern off_t lseek(int, off_t, int);
*/
-/*#define HAS_LSEEK_PROTO / **/
+/*#define HAS_LSEEK_PROTO / **/
/* Netdb_host_t:
* This symbol holds the type used for the 1st argument
@@ -4873,10 +4956,15 @@
*/
/*#define HAS_MBRTOWC / **/
+/* HAS_NL_LANGINFO_L:
+ * This symbol, when defined, indicates presence of the nl_langinfo_l()
+ * function
+ */
/* HAS_THREAD_SAFE_NL_LANGINFO_L:
* This symbol, when defined, indicates presence of the nl_langinfo_l()
* function, and that it is thread-safe.
*/
+/*#define HAS_NL_LANGINFO_L / **/
/*#define HAS_THREAD_SAFE_NL_LANGINFO_L / **/
/* OLD_PTHREAD_CREATE_JOINABLE:
@@ -5095,6 +5183,18 @@
*/
/*#define HAS_STRTOLD_L / **/
+/* PERL_THREAD_LOCAL:
+ * This symbol, if defined, gives a linkage specification for thread-local
+ * storage. For example, for a C11 compiler this will be _Thread_local.
+ * Beware, some compilers are sensitive to the C language standard they are
+ * told to parse. For example, suncc defaults to C11, so our probe will
+ * report that _Thread_local can be used. However, if the -std=c99 is later
+ * added to the compiler flags, then _Thread_local will become a syntax
+ * error. Hence it is important for these flags to be consistent between
+ * probing and use.
+ */
+/*#define PERL_THREAD_LOCAL / **/
+
/* HAS_TMPNAM_R:
* This symbol, if defined, indicates that the tmpnam_r routine
* is available to tmpnam re-entrantly.
@@ -5158,10 +5258,10 @@
* try to use the various _r versions of library functions.
* This is extremely experimental.
*/
-/*#define USE_ITHREADS / **/
-/*#define USE_THREADS / **/
-/*#define OLD_PTHREADS_API / **/
-/*#define USE_REENTRANT_API / **/
+/*#define USE_ITHREADS / **/
+/*#define USE_THREADS / **/
+/*#define OLD_PTHREADS_API / **/
+/*#define USE_REENTRANT_API / **/
/* HAS_TIME:
* This symbol, if defined, indicates that the time() routine exists.
@@ -5191,7 +5291,7 @@
/* Gid_t_f:
* This symbol defines the format string used for printing a Gid_t.
*/
-#define Gid_t_f "lu" /**/
+#define Gid_t_f "lu" /**/
/* Gid_t_sign:
* This symbol holds the signedness of a Gid_t.
@@ -5259,7 +5359,7 @@
/* Uid_t_f:
* This symbol defines the format string used for printing a Uid_t.
*/
-#define Uid_t_f "lu" /**/
+#define Uid_t_f "lu" /**/
/* Uid_t_sign:
* This symbol holds the signedness of a Uid_t.
@@ -5282,6 +5382,6 @@
#endif
/* Generated from:
- * 6edd641b187b02d0daa8cb53f5d22f2dcca115a0d3e744f51b0292d2db484ca5 config_h.SH
- * a9ec40c778a205e0256475b5ef025389f7ea06d75d09ac92414f6b99839577e8 uconfig.sh
- * ex: set ro: */
+ * e17a83ff6ae98071d846d4a001f6ce1a669df08c357fe153c2370adc4910135e config_h.SH
+ * 8d785207fec43bbad5118a8125e625d1cc654455994f09a76c1625b2ae2ae2d0 uconfig.sh
+ * ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h
index c085164567..91ae731962 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/mk_invlists.pl from mph.pl.
* Any changes made here will be lost!
@@ -10,176 +10,153 @@
#define MPH_VALt I16
/*
-rows: 7264
-seed: 1348825708
-full length of keys: 101931
-blob length: 10351
-ref length: 58112
-data size: 68463 (%67.17)
+generator script: ./regen/mk_invlists.pl
+split strategy: squeeze
+srand: 1785235451
+rows: 7498
+seed: 1348825711
+full length of keys: 105417
+blob length: 8703
+ref length: 59984
+data size: 68687 (%65.16)
*/
STATIC const unsigned char mph_blob[] =
- "unifiedcanadianaboriginalsyllabicsextendedcjkcompatibilityideogra"
- "phssupplementarabicmathematicalalphabeticsymbolscombiningdiacriti"
- "calmarksforsymbolscombiningdiacriticalmarkssupplementmiscellaneou"
- "ssymbolsandpictographscombiningdiacriticalmarksextendedmiscellane"
- "ousmathematicalsymbolsamiscellaneousmathematicalsymbolsbsupplemen"
- "talmathematicaloperatorssupplementalsymbolsandpictographsegyptian"
- "hieroglyphformatcontrolsideographicdescriptioncharactersideograph"
- "icsymbolsandpunctuationmathematicalalphanumericsymbolscjkunifiedi"
- "deographsextensionacjkunifiedideographsextensionbcjkunifiedideogr"
- "aphsextensionccjkunifiedideographsextensiondcjkunifiedideographse"
- "xtensionecjkunifiedideographsextensionfcjkunifiedideographsextens"
- "iongcuneiformnumbersandpunctuationenclosedalphanumericsupplements"
- "ymbolsandpictographsextendedaenclosedideographicsupplementmiscell"
- "aneoussymbolsandarrowsphoneticextensionssupplementsupplementarypr"
- "ivateuseareaasupplementaryprivateuseareabvariationselectorssupple"
- "mentalphabeticpresentationformsancientgreekmusicalnotationenclose"
- "dcjklettersandmonthsopticalcharacterrecognitionprependedconcatena"
- "tionmark=changeswhennfkccasefolded=conditionaljapanesestarterdefa"
- "ultignorablecodepoint=halfwidthandfullwidthformskatakanaphonetice"
- "xtensionsconsonantinitialpostfixedfullcompositionexclusion=supers"
- "criptsandsubscriptssymbolsandpictographsextasymbolsforlegacycompu"
- "tingarabicpresentationformsaarabicpresentationformsbcanonicalcomb"
- "iningclass=cjksymbolsandpunctuationcombiningmarksforsymbolsconson"
- "antsucceedingrephahighprivateusesurrogatesindicpositionalcategory"
- "=supsymbolsandpictographsbyzantinemusicalsymbolsconsonantprecedin"
- "grephageometricshapesextendedhangulcompatibilityjamolatinextended"
- "additionalshorthandformatcontrolssupplementalpunctuationbidipaire"
- "dbrackettype=changeswhencasefolded=changeswhencasemapped=changesw"
- "henlowercased=changeswhentitlecased=changeswhenuppercased=cjkcomp"
- "atideographssupcommonindicnumberformsdiacriticalsforsymbolsearlyd"
- "ynasticcuneiformindicsyllabiccategory=logicalorderexception=misce"
- "llaneoustechnicalnoncharactercodepoint=spacingmodifierletterstran"
- "sportandmapsymbolscjkcompatibilityformscjkradicalssupplementcyril"
- "licsupplementaryextendedpictographic=graphemeclusterbreak=hanifir"
- "ohingyakinnayainscriptionalparthianmeeteimayekextensionspopdirect"
- "ionalisolatesinhalaarchaicnumbersyijinghexagramsymbolsanatolianhi"
- "eroglyphsconnectorpunctuationconsonantplaceholderconsonantwithsta"
- "ckerglagoliticsupplementinscriptionalpahlavilefttorightembeddingn"
- "yiakengpuachuehmongpopdirectionalformatrighttoleftembeddingtermin"
- "alpunctuation=topandbottomandrightverticalorientation=ancientgree"
- "knumbersbrahmijoiningnumberburushaskiyehbarreeconsonantheadletter"
- "countingrodnumeralsegyptianhieroglyphsenclosedalphanumsuphangulja"
- "moextendedahanguljamoextendedbhangulsyllabletype=idstrinaryoperat"
- "or=lefttorightoverridemeroitichieroglyphsmodifiertonelettersmongo"
- "liansupplementottomansiyaqnumbersrighttoleftoverridesundanesesupp"
- "lementsupplementalarrowsasupplementalarrowsbsupplementalarrowscto"
- "pandbottomandleftattachedaboverightcherokeesupplementcombininghal"
- "fmarksconsonantsubjoinedcopticepactnumbersdecompositiontype=devan"
- "agariextendedemojimodifierbase=emojipresentation=ethiopicsuppleme"
- "nteuropeanterminatorfirststrongisolategeneralpunctuationgeorgians"
- "upplementidsbinaryoperator=initialpunctuationlatinextadditionalle"
- "fttorightisolateornamentaldingbatsparagraphseparatorpatternwhites"
- "pace=regionalindicator=righttoleftisolateruminumeralsymbolssmallk"
- "anaextensiontaixuanjingsymbolstopandleftandrighttransformedrotate"
- "dtransformeduprightvariationselector=alchemicalsymbolsattachedbel"
- "owleftcanadiansyllabicscaucasianalbanianconsonantprefixedcyrillic"
- "extendedacyrillicextendedbcyrillicextendedcethiopicextendedaeurop"
- "eanseparatoridentifierstatus=indicsiyaqnumberskhitansmallscriptle"
- "tterlikesymbolsmanichaeandhamedhmanichaeanhundredmanichaeanthamed"
- "hscriptextensions=sentenceterminal=smallformvariantssuttonsignwri"
- "tingunifiedideograph=arabicsupplementbopomofoextendedcantillation"
- "markcloseparenthesisclosepunctuationcypriotsyllabaryfinalpunctuat"
- "iongeneralcategory=georgianextendedhalfandfullformshanifirohingya"
- "pahighpusurrogatesinvisiblestackerlatin1supplementlinearbideogram"
- "slinearbsyllabarymanichaeandalethmanichaeanlamedhmanichaeansamekh"
- "manichaeantwentymiscmathsymbolsamiscmathsymbolsbmyanmarextendedam"
- "yanmarextendedbotherpunctuationsegmentseparatorsupmathoperatorssy"
- "llablemodifiersyriacsupplementtangutcomponentstangutsupplementvow"
- "elindependentarabicextendedabamumsupplementboundaryneutralbraille"
- "patternscommonseparatorconsonantkillerconsonantmedialcontingentbr"
- "eakcontrolpicturescurrencysymbolsdashpunctuationdiacriticalsextdi"
- "acriticalssupeastasianwidth=emojicomponent=graphemeextend=hanguls"
- "yllablesidentifiertype=imperialaramaiclowercaselettermanichaeanal"
- "ephmanichaeangimelmanichaeansadhemanichaeanzayinmeroiticcursivemi"
- "scpictographsmodifyingletternfkcquickcheck=nfkdquickcheck=oldnort"
- "harabianoldsoutharabianopenpunctuationregistershiftertamilsupplem"
- "enttitlecaseletteruppercaselettervedicextensionsvisualorderleftza"
- "nabazarsquareancientsymbolsasciihexdigit=carriagereturncaseignora"
- "ble=cjkcompatformscomplexcontextconsonantfinalemojimodifier=europ"
- "eannumbergeminationmarkgreekandcoptichamzaonhehgoalhighsurrogates"
- "kanasupplementkangxiradicalslatinextendedblatinextendedclatinexte"
- "ndeddlatinextendedelisusupplementmandatorybreakmanichaeanayinmani"
- "chaeanbethmanichaeanfivemanichaeanhethmanichaeankaphmanichaeanqop"
- "hmanichaeanreshmanichaeantethmanichaeanyodhmodifiersymbolnfcquick"
- "check=nfdquickcheck=nojoininggroupnonspacingmarkpatternsyntax=pho"
- "neticextsuppostfixnumericpsalterpahlaviquotationmark=sentencebrea"
- "k=spaceseparatorsuppunctuationtehmarbutagoalvoweldependent1000000"
- "000000aegeannumbersbidimirrored=blockelementsconsonantdeaddecimal"
- "numberenclosingmarkgraphemebase=greekextendediotasubscriptipaexte"
- "nsionsjoininggroup=kanaextendedalineseparatorlowsurrogatesmalayal"
- "amlllamalayalamnnnamanichaeanmemmanichaeannunmanichaeanonemanicha"
- "eantawmanichaeantenmanichaeanwawmayannumeralsmisctechnicalnotappl"
- "icablenumericvalue=prefixnumericverticalformsalphabeticpfarabicle"
- "tterarabicnumberbidicontrol=breaksymbolschesssymbolscyrillicextac"
- "yrillicextbcyrillicextcethiopicextaextendnumletfinalsemkathglueaf"
- "terzwjgunjalagondihebrewletterideographic=infixnumericjoincontrol"
- "=joiningtype=khmersymbolsletternumbermahjongtilesmalayalambhamala"
- "yalamllamalayalamngamalayalamnnamalayalamnyamalayalamssamalayalam"
- "ttamanichaeanpemasaramgondimathalphanummendekikakuinoncanonicalno"
- "tcharacternotreorderednumberjoinernumerictype=oldhungarianotherne"
- "utralphaistosdiscplayingcardsrightjoiningtrailingjamoxidcontinue="
- "africannoonalphabetic=breakbeforecasedletterdeprecated=dominotile"
- "sdoubleabovedoublebelowdoublequotedualjoiningexclamationinseparab"
- "leinseperablejoincausingkanavoicingkatakanaextleadingjamoleftjoin"
- "inglvtsyllablemalayalamjamalayalamramedefaidrinmiscsymbolsmyanmar"
- "extamyanmarextbnandinagariotherletterothernumberothersymbolpahawh"
- "hmongrecommendedrohingyayehsinglequotesoftdotted=sorasompengstrai"
- "ghtwawsuperandsubsylotinagritopandrighttransparentuncommonuseyehw"
- "ithtailyisyllablesafricanfehafricanqafarabicextabasiclatinbelowri"
- "ghtbidiclass=boxdrawingbreakafterchorasmiancjkstrokescompatjamoda"
- "lathrishdiacritic=divesakuruhanreadingkharoshthiknottedhehlimited"
- "uselinebreak=lowercase=lvsyllablemiscarrowsnonjoiningnonstarterol"
- "dpersianoldsogdianoverstruckphoenicianpresentin=purekillerrestric"
- "tedreversedpesaurashtrasmallformssuparrowsasuparrowsbsuparrowscun"
- "assigneduppercase=warangcitiwordbreak=wordjoineryiradicals-5.00e-"
- "01aboveleftambiguousarabicpfaarabicpfbbhaiksukibreakbothemoticons"
- "extender=inclusioninheritedkhudawadilatinextblatinextclatinextdmi"
- "dlettermidnumletnabataeannewtailuenonjoinerolditalicoldpermicoldt"
- "urkicpalmyrenepaucinhausamaritanscontinuesyriacwawvoweljamowsegsp"
- "acexidstart=1.00e-011.11e-011.25e-011.25e-021.43e-011.50e+001.50e"
- "-011.56e-021.67e-011.88e-012.00e-012.50e+002.50e-012.50e-02200000"
- "003.12e-023.13e-023.13e-033.33e-013.50e+003.75e-013.75e-024.00e-0"
- "14.17e-014.50e+004.69e-025.00e-025.50e+005.83e-016.00e-016.25e-01"
- "6.25e-026.25e-036.50e+006.67e-017.50e+007.50e-018.00e-018.33e-018"
- ".33e-028.50e+008.75e-019.17e-01armenianavagrahabalinesebassavahbu"
- "gineseduployanebasegazextpict=farsiyehfractiongujaratigurmukhihir"
- "aganaisolatedjamoextajamoextbjavanesekanaextalinefeedmahajaninext"
- "lineobsoleteradical=specialsswashkaftagbanwatifinaghtonemarkugari"
- "ticaletterallowedavestanbengalicjkextacjkextbcjkextccjkextdcjkext"
- "ecjkextfcjkextgcompex=deseretelbasanelymaicgranthagrbase=hanunooh"
- "yphen=kannadakayahlilinearamakasarmandaicmarchenmultaninewlinenfk"
- "cqc=nfkdqc=noblocknobreaknotnfkcolchikioletterosmanyaoverlaypatsy"
- "n=phagspascript=sharadashaviansiddhamsoyombosuppuaasuppuabtagalog"
- "taithamtaiviettibetantirhutaucasextunknownvisargawspace=zwspace21"
- "6000300000400000432000500000600000700000800000900000alpha=bidic=b"
- "idim=block=carianccc103ccc107ccc118ccc122ccc129ccc130ccc132ccc133"
- "chakmacirclecwkcf=ecomp=emoji=epres=gothicgrext=hatranjoinc=kaith"
- "ikanbunkhojkilamadhlepchalower=lycianlydiannarrownchar=nfcqc=nfdq"
- "c=notxidpatws=qmark=rejangsterm=teluguthaanauideo=upper=viramawan"
- "choyezidiyudhhe1/1601/32011/12adlamahex=alaphatermbatakbindubuhid"
- "ccc14ccc15ccc16ccc17ccc18ccc19ccc20ccc21ccc22ccc23ccc24ccc25ccc26"
- "ccc27ccc28ccc29ccc30ccc31ccc32ccc33ccc34ccc35ccc36ccc84ccc91cntrl"
- "cwcf=cwcm=dash=dograemod=falseidsb=idst=inpc=insc=khaphlimbumath="
- "maybenuktanushuoghamoriyaosagerunictailetakrivssupxidc=xids=zhain"
- "-1/21/101/201/401/641/8010.011.011/212.113.013/215/217/23/163/203"
- "/643/805/127/12adlmage=aghbahomalefarmiarmnataratblavstbatkbhksbl"
- "k=bpt=buhdcakmcansccc=chrscprtcwl=cwt=cwu=cyrldep=dia=diakdsrtfon"
- "tgcb=gonggonmgrekgujrguruhanohluwhmnghmnphst=kalikhmrkitskndakthi"
- "lanalaoolatnlinalinbloe=medfmeemmercmiaomlymmroomteimymrnarbnbatn"
- "ewankoonshuogamolckorkhoryaosgepcm=phlpphnxplrdprtiqaacqaaiqaphrj"
- "ngrohgrunrsamrsarbscx=seensgnwshawshinshrdsogosyrctagstaletalutam"
- "ltavttfngtglgthaitibttruev100v110v120v121v130vaiiwchowidexpeoxsux"
- "yiiizainzanbzinhzyyyzzzz1/51/71/92/32/520221421822222422622823023"
- "22332342403.23/43/54/55.15.25/65/86.16.37.07/89.09/2bc=behci=di=d"
- "t=ea=ebgfsigafgc=jg=jt=lb=lrelrilromimnv=ocrpdfrehri=sd=smlsqrtah"
- "v20v21v30v31v32v40v41v50v51v52v60v61v62v63v70v80v90vo=vs=wb=yes38"
- "39444546474849b2bkh2h3jljvkvl&l_vrxxzlzpzs_perl_problematic_local"
- "e_foldeds_is_in_multi_char_fold_perl_folds_to_perl_charname_begin"
- "any_foldsquotemetaisxposixisposixblankprintishorizisxperlisperlis"
- "spaceisvertisuni";
-/* mph_blob length: 10351 */
+ "l&cwlocrpcmadlmaghbahexahomarmiavstbatkbhksbuhdcakmcanschamchrscp"
+ "mncprtcwucyrldsrtgonggrekgujrguruhluwhmngzlkawikitskndalaoolatnme"
+ "dfmteimymrnarbnewaoryaosgeougrphlpphnxqaacrjngrohgrunrsamrsgnwtag"
+ "stamltavttfngtglgtibttotowchoxpeoxsuxyiiizanbzyyyzzzzcntrlcwcfcwc"
+ "mcwkcfcwtzpgcb=b2h2jlxxnushu3040nv=90oriyapatwsprintqmarktailevss"
+ "upfsipdfcarianccc=1218491vre=yeschakmasmlsqrgothicgrexthyphen3.26"
+ ".3415161miaoarmndiakgonmhanokhmrlinamroonkooogamolckorkhphliplrdp"
+ "rtiqaaishawsogotnsavaiibehgafhahrehbunkhojkilydiannfdqcnv=3//5nv="
+ "7patsynrejangsb=stangsaebg3.04.0age=56.07.08.09.052avestanccc=22e"
+ "=truedeseretdt=nonewideelbasanelymaicextpictgrbashanunoohst=lvtad"
+ "lambuhiddogralimbuoghamosagerunictakribatakisotheeemnoonseenshinz"
+ "ainkannadakayahlilinearamandaicmarchennfkcqc-1/2/645/27/2olchikio"
+ "smanyahmnpkalilananbatsarbshrdsyrczinhsharadashavianstermuaatagal"
+ "ogtaithamtaiviettibetantirhutauideounknownage=10.0age=v1armenianb"
+ "alinesebassavahbpt=opene=falsecompexsuperduployanextendergujarati"
+ "gurmukhihiraganahatrankaithilepchalycianteluguwanchoyezidijamoext"
+ "bgamalkhaphmahajaninfkdqcnv=1/31/12nv=2erlwordkthilinbmercnshuscx"
+ "=talupecialstagbanwatifinaghvithkuqipfabhaiksuki2435nuktacircleme"
+ "dialea=narrowmoticonsbengaliincjkexgranthainheritedinkanamakasarm"
+ "ultaninoblockphagspasiddhamsoyombouabiscjkexlamadhkhudawadinabata"
+ "eannewtailue1600032000olditalicoldpermicoldturkicolduyghurpalmyre"
+ "nepaucinhausamaritanthaanawb=mixidstartbasiclatinboxdrawingccc=cc"
+ "c1viramachorasmianstrokesdeprecateddivesakuruorizspacebugineseing"
+ "eorgiajamoextajavanesebinduugariticiskanathinyehkharoshthiiscarro"
+ "wsnagmundarioldpersianphoeniciansaurashtraolettermallformssoftdot"
+ "teduprightwarangcitialetternewlineerlspaceblk=cjkextdoverlaycypro"
+ "minoandominotilesfractionisolatedpfbisarabicisspaceisvertfarsiyeh"
+ "swashkaflinefeednextlinemedefaidrinnfcqc=maybenv=10000000pahawhhm"
+ "ongscript=mlymsorasompengerandsubsylotinagriebasegazyisyllablesbi"
+ "dicontrolbidimirroredblk=kanaucasextahesssymbolsambiguousgrapheme"
+ "basegunjalagondiompatjamooldsogdianvisargayiradicalsisposixsyriac"
+ "wawjoiningtype=breakbothbkh3jvmasaramgondiathalphanummendekikakui"
+ "1.0.111e-01.250e-01.429e-01.500e+00.562e-02.563e-02.667e-01.875e-"
+ "01.500e-013.125e-02.333e-01.750e-01nv=4.167e-01.688e-02.000e-02nv"
+ "=5.833e-01nv=6.250e-02nv=8.333e-02oldhungarianphaistosdiscplaying"
+ "cardspresentin=14wsegspacexidcontinueegeannumbersblock=cjkexblock"
+ "elementscaseignorablunassignedreekextendedvoweljamoincyrillicinet"
+ "hiopickatakanaextiscsymbolsinmyanmarnandinagariavagrahatonemarkip"
+ "aextensionsiscasedletterisgeorgiajoincontrolismyanmarisxposixblan"
+ "kjg=africanfehdalathrishknottedhehreversedpenonjoiningbreakaftern"
+ "onstarterwordjoinerowsurrogatesayannumeralsisctechnical-5.000e-01"
+ "patternsyntaxpresentin=56.1verticalformsncientsymbolsbc=righttole"
+ "ftblk=arabichanreadingemojicomponentgc=othereekandcoptichighsurro"
+ "gateslphabeticpfkhmersymbolsnonjoineriscyrillicisethiopicmahjongt"
+ "ilesrohingyayehstraightwawyehwithtaildualjoiningjoincausingleftjo"
+ "iningjt=transparentbreakbeforeexclamationinseparableinseperablenf"
+ "cquickchecknumerictype=epresentin=v1psalterpahlaviquotationmarkdo"
+ "ublequotesinglequoteany_foldsquotemetaasciihexdigitarabicletterot"
+ "herneutralblk=georgiadoubleabovekanavoicingontrolpictureseastasia"
+ "nwidth=letternumbergraphemeextendeadingjamoimperialaramaicoverstr"
+ "uckpurekillerdecimalnumberenclosingmarkfinalsemkathverticaltailri"
+ "ghtjoininghebrewletterinfixnumericmeroiticcursiveiscpictographsnf"
+ "dquickchecknumericvalue=236numericvalue=4oldnortharabianoldsoutha"
+ "rabianextendnumletglueafterzwjzanabazarsquareblk=cyrillicblk=ethi"
+ "opicblock=arabicnotreorderedcypriotsyllabarylineseparatorhalfandf"
+ "ullformshighpusurrogatestrailingjamocompatformsgxiradicalsinlatin"
+ "extendeddphoneticextsupdevanagariextaislatinextendedlisusupplemen"
+ "tnonspacingmarklllajg=malayalamnnnamemtawktoviknumeralsprefixnume"
+ "ricinearbideogramsiscmathsymbolsanfkcquickchecknumericvalue=1/num"
+ "ericvalue=5/8numericvalue=70numericvalue=80numericvalue=9sentence"
+ "terminaltangutcomponentseuropeannumberanadiansyllabicscaucasianal"
+ "banianiotasubscriptemojipresentationgmodifiersymbolspaceseparator"
+ "notapplicableidsbinaryoperatorbraillepatternscurrencysymbolsindic"
+ "siyaqnumbersleftandrightnumberjoinervedicextensionsdashpunctuatio"
+ "ndiacriticalsexthangulsyllableslowercaseletteropenpunctuationhamz"
+ "aonhehgoalbethfivehethkaphqophreshyodhqaphtethkhitansmallscriptca"
+ "rriagereturncomplexcontextmandatorybreakpostfixnumericetterlikesy"
+ "mbolslinebreak=zwspacenfkdquickchecknumericvalue=3/2regionalindic"
+ "atorscriptextensions=mallformvariantsttonsignwritingboundaryneutr"
+ "alcommonseparatorblk=latinextendedblock=cyrillicextcopticepactnum"
+ "berstitlecaseletteruppercaseletteridstrinaryoperatorinitialpunctu"
+ "ationlinearbsyllabaryiscmathsymbolsbbopomofoextendedclosepunctuat"
+ "ionfinalpunctuation1supplementyriacsupplementtangutsupplementalep"
+ "hgimelsadhezayinlaphzhainadditionalcontingentbreaknumericvalue=6o"
+ "rnamentaldingbatsparagraphseparatorpatternwhitespaceruminumeralsy"
+ "mbolssegmentseparatorbamumsupplementdiacriticalssuptamilsupplemen"
+ "tblock=kanaegyptianhieroglyphsemojimodifierbaselchemicalsymbolsge"
+ "minationmarkvoweldependenthanifirohingyapadalethlamedhsamekhjg=ma"
+ "nichaeantwentyyudhhe=closeparenthesisodifiertonelettersottomansiy"
+ "aqnumbersatermarrowsawordbreak=mi_perl_charname_beanatolianhierog"
+ "lyphsblk=myanmarblock=latinextendedconnectorpunctuationextendedpi"
+ "ctographicombininghalfmarksneralpunctuationvisualorderleftmodifyi"
+ "ngletterregistershifterinscriptionalpahlavitaixuanjingsymbolscher"
+ "okeesupplementmallkanaextensiondhamedhhundrednyiakengpuachuehmong"
+ "terminalpunctuationeuropeanterminatorfirststrongisolateattachedbe"
+ "lowleftchangeswhencasefoldedchangeswhencasemappedchangeswhenlower"
+ "casedchangeswhentitlecasedchangeswhenuppercasedgraphemeclusterbre"
+ "ak=identifiertype=notncientgreeknumbersountingrodnumeralsmeroitic"
+ "hieroglyphsantillationmarkinvisiblestackersyllablemodifierinscrip"
+ "tionalparthianinsupplementalarrowsbnclosedalphanumsuphanguljamoex"
+ "tendedamongoliansupplementsundanesesupplementissupplementalarrows"
+ "clogicalorderexceptionnoncharactercodepointsinhalaarchaicnumbersv"
+ "o=transformedrotatedyijinghexagramsymbolsoverridearabicnumberbidi"
+ "pairedbrackettypeblock=ethiopicblock=georgianblock=myanmarmathope"
+ "ratorsfontdiacriticalsforsymbolsarlydynasticcuneiforminsc=consona"
+ "ntprefixedglagoliticsupplementburushaskiyehbarreebreaksymbolsnume"
+ "ricvalue=100000.500e-02.125e-03.750e-02.250e-03bc=lefttorightembe"
+ "ddingpopdirectionalformatblhanguljamoextendedbhangulcompatibility"
+ "jamoobsoletecompatibilityformsradicalssupplementsubjoinedjoiningg"
+ "roup=africanqafsentencebreak=shorthandformatcontrolsznamennymusic"
+ "alnotationhighprivateusesurrogatesstatus=allowedinclusioncompatid"
+ "eographssupommonindicnumberformsiscellaneoustechnicalinpc=topandb"
+ "ottomandleftbrahmijoiningnumberheadletterpacingmodifierletterstra"
+ "nsportandmapsymbolshanifirohingyakinnayajoininggroup=malayalamfol"
+ "ds_to_multi_charmeeteimayekextensionsdevanagariextendedachangeswh"
+ "ennfkccasefoldeddefaultignorablecodepointfullcompositionexclusion"
+ "limitedusebyzantinemusicalsymbolsplaceholderwithstackermetricshap"
+ "esextendederscriptsandsubscriptsymbolsforlegacycomputingcanonical"
+ "combiningclass=2halfwidthandfullwidthformsrecommendeduncommonusei"
+ "narabicpresentationformsbcombiningmarksforsymbolsprependedconcate"
+ "nationmarkis_in_multi_char_foldeuropeanseparatorblk=supplementalc"
+ "anonicalcombiningclass=128nclosedcjklettersandmonthsgeneralcatego"
+ "ry=othestatus=restrictedymbolsandpictographsextanojoininggroupteh"
+ "marbutagoalopticalcharacterrecognitionbidiclass=lefttorightbidicl"
+ "ass=righttoleftatarprecedingrephatakanaphoneticextensionssuppleme"
+ "ntaryprivateuseareaacanonicalcombiningclass=ccc1succeedingrephalp"
+ "habeticpresentationformsancientgreekmusicalnotationlb=conditional"
+ "japanesestarteriscellaneoussymbolsandarrowsdecompositiontype=nonh"
+ "angulsyllabletype=lvtinitialpostfixedryprivateuseareabvariationse"
+ "lectorssupplementjoininggroup=manichaeantpopdirectionalisolatencl"
+ "osedideographicsupplementathematicalalphanumericsymbolsideographi"
+ "cdescriptioncharactersincjkunifiedideographsextensnclosedalphanum"
+ "ericsupplementiscjkunifiedideographsextensuneiformnumbersandpunct"
+ "uationymbolsandpictographsextendedaaboveleftiscellaneousmathemati"
+ "calsymbolsablk=cjkunifiedideographsextensbelowrightgyptianhierogl"
+ "yphformatcontrolsideographicsymbolsandpunctuationmathematicalalph"
+ "abeticsymbolsdoublebelowombiningdiacriticalmarksextendedindicposi"
+ "tionalcategory=topandinmiscellaneousmathematicalsymbolsbblock=cjk"
+ "unifiedideographsextensindicsyllabiccategory=consonantiscellaneou"
+ "ssymbolsandpictographsombiningdiacriticalmarksforsymbols_perl_pro"
+ "blematic_locale_foldeds_compatibilityideographssupplement=bottoma"
+ "ndrightvowelindependentverticalorientation=transformombiningdiacr"
+ "iticalmarkssupplementblock=supplementalmathematicaloperatorsattac"
+ "hedaboverightisunifiedcanadianaboriginalsyllabicsextendeda";
+/* mph_blob length: 8703 */
struct mph_struct {
U16 seed2;
@@ -191,7288 +168,7524 @@ struct mph_struct {
};
#define MPH_RSHIFT 8
-#define MPH_BUCKETS 7264
+#define MPH_BUCKETS 7498
-STATIC const U32 MPH_SEED1 = 0x5065726c;
-STATIC const U32 MPH_FNV_CONST = 0x01000193;
+STATIC const U32 MPH_SEED1 = 0x5065726f;
+STATIC const U32 MPH_FNV32_PRIME = 0x01000193;
/* The comments give the input key for the row it is in */
STATIC const struct mph_struct mph_table[MPH_BUCKETS] = {
- { 2, 9768, 9632, 4, 4, UNI_LINA } /* scx=lina */,
- { 2, 5791, 6572, 13, 4, UNI_JG__NOON } /* joininggroup=noon */,
- { 1, 7325, 9384, 3, 4, UNI_IN__10 } /* in=10.0 */,
- { 2, 9488, 7188, 4, 10, UNI_INKHAROSHTHI } /* blk=kharoshthi */,
- { 1, 1417, 23, 24, 2, UNI_CCC__AL } /* canonicalcombiningclass=al */,
- { 0, 184, 2666, 3, 10, UNI_COUNTINGROD } /* iscountingrod */,
- { 0, 1654, 0, 23, 0, UNI_COMPATJAMO } /* hangulcompatibilityjamo */,
- { 8, 7158, 9836, 10, 4, UNI_DIA } /* diacritic=true */,
- { 2, 8780, 8373, 7, 6, UNI_CJKEXTD } /* block=cjkextd */,
- { 1, 5986, 9973, 13, 3, UNI_NV__5_SLASH_6 } /* numericvalue=5/6 */,
- { 1, 10027, 6323, 3, 5, UNI_JG__GAMAL } /* jg=gamal */,
- { 0, 8900, 0, 6, 0, UNI_KTHI } /* kaithi */,
- { 6, 1537, 2455, 24, 5, UNI_INPC__RIGHT } /* indicpositionalcategory=right */,
- { 0, 7398, 0, 10, 0, UNI_SUPARROWSC } /* suparrowsc */,
- { 1, 9002, 0, 6, 0, UNI_TELU } /* telugu */,
- { 4, 10024, 9503, 3, 2, UNI_MC } /* gc=mc */,
- { 0, 7218, 18, 10, 2, UNI_RI } /* linebreak=ri */,
- { 0, 1856, 0, 21, 0, UNI_CWU } /* changeswhenuppercased */,
- { 1, 2779, 0, 3, 0, UNI_IDS } /* ids */,
- { 8, 10048, 9061, 3, 4, UNI_NV__1_SLASH_12 } /* nv=1/12 */,
- { 0, 10006, 10135, 3, 3, UNI_DI } /* di=yes */,
- { 0, 8780, 5947, 6, 13, UNI_MAYANNUMERALS } /* block=mayannumerals */,
- { 1, 9444, 10108, 4, 3, UNI_AGE__6_DOT_1 } /* age=v61 */,
- { 0, 5186, 0, 14, 0, UNI_HIGHSURROGATES } /* highsurrogates */,
- { 0, 10333, 1528, 3, 8, UNI__PERL_SURROGATE } /* issurrogate */,
- { 1, 7739, 3, 8, 1, -UNI_IDS } /* idstart=f */,
- { 0, 184, 6840, 2, 11, UNI_NAND } /* isnandinagari */,
- { 0, 446, 0, 32, 0, UNI_IDEOGRAPHICSYMBOLS } /* ideographicsymbolsandpunctuation */,
- { 4, 9448, 0, 4, 0, UNI_AGHB } /* aghb */,
- { 3, 3836, 9712, 17, 4, UNI_OSGE } /* scriptextensions=osge */,
- { 0, 9270, 7685, 3, 8, UNI_INPAUCINHAU } /* inpaucinhau */,
- { 0, 10048, 9055, 3, 3, UNI_NV__1_SLASH_3 } /* nv=1/3 */,
- { 7, 1834, 10135, 22, 3, UNI_CWT } /* changeswhentitlecased=yes */,
- { 1, 9768, 8414, 4, 7, UNI_ELBA } /* scx=elbasan */,
- { 4, 8780, 1673, 6, 4, UNI_JAMO } /* block=jamo */,
- { 0, 8688, 5662, 3, 12, UNI_AEGEANNUMBERS } /* isaegeannumbers */,
- { 0, 1552, 5040, 9, 5, UNI_XPOSIXDIGIT } /* category=digit */,
- { 4, 10296, 25, 3, 1, UNI_PS } /* isps */,
- { 0, 1536, 0, 4, 0, UNI_SIND } /* sind */,
- { 0, 1417, 8807, 24, 3, UNI_CCC__118 } /* canonicalcombiningclass=118 */,
- { 5, 8774, 9836, 6, 4, UNI_BIDIM } /* bidim=true */,
- { 2, 9488, 283, 4, 33, UNI_MISCMATHSYMBOLSB } /* blk=miscellaneousmathematicalsymbolsb */,
- { 0, 1823, 0, 9, 0, UNI_XPOSIXLOWER } /* lowercase */,
- { 1, 184, 8924, 2, 4, UNI_LEPC } /* islepc */,
- { 0, 9277, 8243, 3, 8, UNI_SC__MAHJ } /* sc=mahajani */,
- { 1, 9277, 9315, 3, 5, UNI_SC__ORYA } /* sc=oriya */,
- { 3, 9768, 8936, 4, 6, UNI_LYCI } /* scx=lycian */,
- { 1, 5270, 0, 14, 0, UNI_LATINEXTE } /* latinextendede */,
- { 1, 3836, 4448, 17, 4, UNI_BAMU } /* scriptextensions=bamu */,
- { 0, 8267, 26, 8, 1, UNI_RADICAL } /* radical=y */,
- { 0, 32, 0, 2, 0, UNI__PERL_SURROGATE } /* cs */,
- { 16, 1417, 3564, 24, 13, UNI_CCC__202 } /* canonicalcombiningclass=attachedbelow */,
- { 0, 10024, 4943, 3, 15, UNI_TITLE } /* gc=titlecaseletter */,
- { 0, 2182, 406, 21, 7, UNI_GCB__CN } /* graphemeclusterbreak=control */,
- { 1, 6241, 24, 12, 1, UNI_JT__L } /* joiningtype=l */,
- { 0, 10048, 9973, 3, 3, UNI_NV__5_SLASH_6 } /* nv=5/6 */,
- { 1, 21, 7585, 2, 9, UNI_LATINEXTC } /* inlatinextc */,
- { 0, 3836, 9864, 17, 4, UNI_WCHO } /* scriptextensions=wcho */,
- { 1, 3367, 26, 18, 1, UNI__PERL_PATWS } /* patternwhitespace=y */,
- { 0, 8780, 2469, 6, 20, UNI_INNYIAKENGPUACHUEHMONG } /* block=nyiakengpuachuehmong */,
- { 1, 8780, 749, 6, 21, UNI_ENCLOSEDALPHANUM } /* block=enclosedalphanumerics */,
- { 2, 184, 9576, 2, 4, UNI_GURU } /* isguru */,
- { 0, 10333, 9793, 3, 3, UNI_SOGO } /* issogo */,
- { 0, 10048, 7771, 3, 8, UNI_NV__1_SLASH_80 } /* nv=1.25e-02 */,
- { 1, 9444, 9991, 4, 3, UNI_AGE__9 } /* age=9.0 */,
- { 0, 9488, 567, 4, 2, UNI_NB } /* blk=nb */,
- { 0, 9488, 1922, 4, 12, UNI_DIACRITICALS } /* blk=diacriticals */,
- { 13, 1537, 2555, 24, 6, UNI_INPC__BOTTOM } /* indicpositionalcategory=bottom */,
- { 1, 10024, 5497, 3, 11, UNI_MC } /* gc=spacingmark */,
- { 3, 2784, 80, 4, 8, UNI_ARABICMATH } /* inarabicmath */,
- { 0, 5791, 5620, 13, 14, UNI_JG__HAMZAONHEHGOAL } /* joininggroup=tehmarbutagoal */,
- { 32, 4791, 1595, 3, 13, UNI_MUSIC } /* inmusicalsymbols */,
- { 0, 8589, 2329, 7, 20, UNI_HLUW } /* script=anatolianhieroglyphs */,
- { 0, 7088, 3374, 10, 10, UNI_BC__WS } /* bidiclass=whitespace */,
- { 0, 184, 7168, 2, 10, UNI_DIAK } /* isdivesakuru */,
- { 0, 184, 9636, 2, 4, UNI_LINB } /* islinb */,
- { 0, 9488, 7684, 4, 9, UNI_INPAUCINHAU } /* blk=paucinhau */,
- { 0, 6939, 0, 11, 0, UNI_SORA } /* sorasompeng */,
- { 3, 9768, 8131, 4, 8, UNI_DUPL } /* scx=duployan */,
- { 1, 9488, 629, 4, 30, UNI_CJKEXTE } /* blk=cjkunifiedideographsextensione */,
- { 8, 9488, 2098, 4, 21, UNI_CJKCOMPATFORMS } /* blk=cjkcompatibilityforms */,
- { 1, 10290, 96, 6, 5, UNI_XPOSIXALPHA } /* xposixalpha */,
- { 1, 9732, 0, 4, 0, UNI_PRTI } /* prti */,
- { 0, 8589, 3241, 7, 8, UNI_SC__GEOR } /* script=georgian */,
- { 1, 5032, 0, 14, 0, UNI_ahex_values_index } /* asciihexdigit= */,
- { 1, 3529, 36, 18, 1, UNI_VS } /* variationselector=t */,
- { 0, 2569, 409, 20, 2, UNI_VO__TR } /* verticalorientation=tr */,
- { 3, 2182, 6763, 21, 3, UNI_LB__H3 } /* graphemeclusterbreak=lvt */,
- { 1, 9768, 8299, 4, 8, UNI_TFNG } /* scx=tifinagh */,
- { 0, 6553, 0, 11, 0, UNI_XIDC } /* xidcontinue */,
- { 0, 3836, 4793, 17, 15, UNI_MERC } /* scriptextensions=meroiticcursive */,
- { 10, 341, 0, 2, 0, UNI_PE } /* pe */,
- { 1, 3097, 8846, 18, 6, UNI_DT__ENC } /* decompositiontype=circle */,
- { 2, 4688, 6609, 15, 10, UNI_DEP } /* identifiertype=deprecated */,
- { 0, 184, 9231, 3, 3, UNI_CWCF } /* iscwcf */,
- { 2, 8780, 6829, 6, 11, UNI_MYANMAREXTB } /* block=myanmarextb */,
- { 0, 5986, 7781, 13, 1, UNI_NV__4 } /* numericvalue=4 */,
- { 1, 0, 0, 34, 0, UNI_UCAS } /* unifiedcanadianaboriginalsyllabics */,
- { 1, 1417, 3007, 24, 18, UNI_CCC__216 } /* canonicalcombiningclass=attachedaboveright */,
- { 1, 1966, 9090, 22, 5, UNI_INSC__BINDU } /* indicsyllabiccategory=bindu */,
- { 0, 6229, 1025, 12, 2, -UNI_JOINC } /* joincontrol=no */,
- { 2, 9997, 2893, 3, 19, UNI_BC__RLO } /* bc=righttoleftoverride */,
- { 5, 8780, 149, 7, 34, UNI_DIACRITICALSSUP } /* block=combiningdiacriticalmarkssupplement */,
- { 1, 9528, 0, 4, 0, UNI_cwu_values_index } /* cwu= */,
- { 0, 9277, 9440, 3, 4, UNI_SC__ADLM } /* sc=adlm */,
- { 1, 9488, 9032, 4, 6, UNI_INWANCHO } /* blk=wancho */,
- { 7, 10048, 8756, 3, 2, UNI_NV__90 } /* nv=90 */,
- { 0, 9277, 9812, 3, 4, UNI_SC__TAML } /* sc=taml */,
- { 8, 5986, 8720, 13, 6, UNI_NV__400000 } /* numericvalue=400000 */,
- { 1, 10009, 1253, 3, 4, UNI_DT__INIT } /* dt=init */,
- { 0, 7218, 866, 10, 2, UNI_LB__SP } /* linebreak=sp */,
- { 3, 9997, 2449, 3, 11, UNI_BC__L } /* bc=lefttoright */,
- { 2, 3115, 0, 13, 0, UNI_DEVANAGARIEXT } /* devanagariext */,
- { 1, 5791, 3785, 13, 17, UNI_JG__MANICHAEANDHAMEDH } /* joininggroup=manichaeandhamedh */,
- { 1, 9508, 7178, 4, 10, UNI_CCC__6 } /* ccc=hanreading */,
- { 4, 5986, 8750, 13, 3, UNI_NV__800 } /* numericvalue=800 */,
- { 5, 5060, 9255, 14, 5, -UNI_CI } /* caseignorable=false */,
- { 2, 184, 6818, 2, 11, UNI_MYANMAREXTA } /* ismyanmarexta */,
- { 0, 5037, 1, 9, 1, -UNI_XPOSIXXDIGIT } /* hexdigit=n */,
- { 0, 21, 5662, 3, 12, UNI_AEGEANNUMBERS } /* inaegeannumbers */,
- { 1, 4898, 0, 15, 0, UNI_PS } /* openpunctuation */,
- { 8, 5986, 8714, 13, 4, UNI_NV__3000 } /* numericvalue=3000 */,
- { 0, 8589, 9736, 7, 4, UNI_SC__COPT } /* script=qaac */,
- { 0, 7088, 10036, 10, 3, UNI_BC__LRE } /* bidiclass=lre */,
- { 2, 5564, 9836, 14, 4, UNI_QMARK } /* quotationmark=true */,
- { 1, 9277, 9864, 3, 4, UNI_WCHO } /* sc=wcho */,
- { 3, 9508, 7978, 4, 2, UNI_CCC__16 } /* ccc=16 */,
- { 2, 5564, 26, 14, 1, UNI_QMARK } /* quotationmark=y */,
- { 0, 6231, 2120, 3, 20, UNI_CJKRADICALSSUP } /* incjkradicalssupplement */,
- { 7, 10048, 8732, 3, 6, UNI_NV__500000 } /* nv=500000 */,
- { 1, 3836, 9660, 17, 4, UNI_MLYM } /* scriptextensions=mlym */,
- { 0, 1552, 1899, 9, 2, UNI_PC } /* category=pc */,
- { 0, 9768, 78, 4, 4, UNI_ARAB } /* scx=arab */,
- { 21, 10296, 7676, 3, 8, UNI_PALM } /* ispalmyrene */,
- { 0, 27, 0, 2, 0, UNI_LOWERCASELETTER } /* ll */,
- { 1, 1823, 0, 5, 0, UNI_XPOSIXLOWER } /* lower */,
- { 0, 10027, 6349, 3, 12, UNI_JG__MALAYALAMSSA } /* jg=malayalamssa */,
- { 3, 8780, 2203, 6, 14, UNI_INHANIFIROHINGYA } /* block=hanifirohingya */,
- { 2, 184, 8219, 2, 4, UNI_JAVA } /* isjava */,
- { 0, 9488, 4568, 4, 15, UNI_CURRENCYSYMBOLS } /* blk=currencysymbols */,
- { 1, 6420, 1061, 3, 26, UNI_OCR } /* inopticalcharacterrecognition */,
- { 2, 5791, 3802, 13, 17, UNI_JG__MANICHAEANHUNDRED } /* joininggroup=manichaeanhundred */,
- { 16, 1188, 8646, 3, 6, UNI_INTAITHAM } /* intaitham */,
- { 9, 1018, 0, 5, 0, UNI_MUSIC } /* music */,
- { 0, 9488, 7495, 4, 9, UNI_ARABICPFA } /* blk=arabicpfa */,
- { 1, 9260, 0, 5, 0, UNI_idsb_values_index } /* idsb= */,
- { 0, 8589, 9700, 7, 4, UNI_OLCK } /* script=olck */,
- { 0, 1417, 1756, 24, 2, UNI_CCC__BR } /* canonicalcombiningclass=br */,
- { 4, 9270, 472, 3, 2, UNI_PUA } /* inpua */,
- { 0, 184, 9652, 2, 4, UNI_MERC } /* ismerc */,
- { 4, 1189, 0, 3, 0, UNI_nt_values_index } /* nt= */,
- { 8, 9275, 4353, 5, 16, UNI_INSC__SYLLABLEMODIFIER } /* insc=syllablemodifier */,
- { 3, 10288, 2779, 3, 3, UNI_XIDS } /* isxids */,
- { 1, 184, 0, 4, 0, UNI_CE } /* isce */,
- { 3, 8688, 5019, 3, 13, UNI_ANCIENTSYMBOLS } /* isancientsymbols */,
- { 1, 9508, 8823, 5, 4, UNI_CCC__13 } /* ccc=ccc13 */,
- { 1, 9768, 8219, 4, 8, UNI_JAVA } /* scx=javanese */,
- { 2, 8400, 26, 7, 1, UNI_COMPEX } /* compex=y */,
- { 1, 10027, 7016, 3, 11, UNI_JG__YEHWITHTAIL } /* jg=yehwithtail */,
- { 1, 7155, 34, 3, 2, UNI_XPOSIXXDIGIT } /* ishex */,
- { 0, 5986, 7915, 13, 8, UNI_NV__3_SLASH_80 } /* numericvalue=3.75e-02 */,
- { 17, 9997, 1, 4, 1, UNI_BC__BN } /* bc=bn */,
- { 6, 1188, 2077, 3, 21, UNI_TRANSPORTANDMAP } /* intransportandmapsymbols */,
- { 0, 184, 10176, 2, 2, UNI_ZL } /* iszl */,
- { 2, 6469, 11, 12, 2, UNI_NT__DI } /* numerictype=di */,
- { 8, 10033, 7512, 3, 2, UNI_LB__BB } /* lb=bb */,
- { 0, 7325, 9985, 3, 3, UNI_IN__7 } /* in=7.0 */,
- { 0, 2224, 0, 21, 0, UNI_PRTI } /* inscriptionalparthian */,
- { 7, 9768, 9636, 4, 4, UNI_LINB } /* scx=linb */,
- { 1, 8936, 0, 6, 0, UNI_LYCI } /* lycian */,
- { 0, 9997, 3313, 3, 18, UNI_BC__LRI } /* bc=lefttorightisolate */,
- { 2, 8589, 8421, 7, 4, UNI_ELYM } /* script=elym */,
- { 2, 2182, 4305, 21, 5, UNI_GCB__XX } /* graphemeclusterbreak=other */,
- { 1, 8780, 8394, 7, 6, UNI_CJKEXTG } /* block=cjkextg */,
- { 5, 9864, 0, 4, 0, UNI_WCHO } /* wcho */,
- { 0, 9768, 9335, 4, 4, UNI_TAKR } /* scx=takr */,
- { 0, 1828, 0, 6, 0, UNI_cased_values_index } /* cased= */,
- { 2, 184, 4569, 3, 13, UNI_SC } /* iscurrencysymbol */,
- { 2, 8780, 2061, 6, 4, UNI_INMODI } /* block=modi */,
- { 2, 184, 3241, 2, 4, UNI_GEOR } /* isgeor */,
- { 8, 3836, 7651, 17, 4, UNI_ITAL } /* scriptextensions=ital */,
- { 0, 184, 62, 2, 5, UNI_XPOSIXGRAPH } /* isgraph */,
- { 0, 8589, 1628, 7, 4, UNI_SC__PHAG } /* script=phag */,
- { 0, 9014, 1025, 6, 2, -UNI_UIDEO } /* uideo=no */,
- { 2, 979, 0, 27, 0, UNI_ALPHABETICPF } /* alphabeticpresentationforms */,
- { 0, 8589, 2288, 8, 3, UNI_SC__SINH } /* script=sinh */,
- { 2, 8589, 5003, 7, 15, UNI_ZANB } /* script=zanabazarsquare */,
- { 4, 9277, 9704, 3, 4, UNI_ORKH } /* sc=orkh */,
- { 0, 5986, 7899, 13, 8, UNI_NV__7_SLASH_2 } /* numericvalue=3.50e+00 */,
- { 6, 9488, 8673, 4, 7, UNI_UCASEXT } /* blk=ucasext */,
- { 0, 8477, 0, 4, 0, UNI_MAKA } /* maka */,
- { 5, 1417, 8793, 25, 4, UNI_CCC__10 } /* canonicalcombiningclass=ccc10 */,
- { 0, 2245, 0, 14, 0, UNI_MEETEIMAYEKEXT } /* meeteimayekext */,
- { 0, 9277, 8876, 3, 4, UNI_GOTH } /* sc=goth */,
- { 0, 112, 0, 2, 0, UNI_SC } /* sc */,
- { 2, 3836, 9820, 17, 4, UNI_TFNG } /* scriptextensions=tfng */,
- { 1, 10048, 9361, 3, 3, UNI_NV__1_SLASH_2 } /* nv=1/2 */,
- { 11, 8509, 751, 4, 19, UNI_ENCLOSEDALPHANUM } /* inenclosedalphanumerics */,
- { 0, 8780, 3600, 8, 15, UNI_INCAUCASIANALBANIAN } /* block=caucasianalbanian */,
- { 0, 9488, 8171, 4, 8, UNI_INGUJARATI } /* blk=gujarati */,
- { 1, 8780, 2855, 6, 9, UNI_INMONGOLIAN } /* block=mongolian */,
- { 1, 21, 8203, 2, 8, UNI_JAMOEXTA } /* injamoexta */,
- { 5, 4916, 8653, 3, 6, UNI_TAVT } /* istaiviet */,
- { 0, 9488, 250, 4, 33, UNI_MISCMATHSYMBOLSA } /* blk=miscellaneousmathematicalsymbolsa */,
- { 0, 8688, 2469, 3, 2, UNI_ANY } /* isany */,
- { 0, 6241, 7, 12, 1, UNI_JT__C } /* joiningtype=c */,
- { 9, 8786, 0, 6, 0, UNI_CARI } /* carian */,
- { 8, 5256, 0, 14, 0, UNI_LATINEXTD } /* latinextendedd */,
- { 3, 5791, 5179, 13, 3, UNI_JG__HEH } /* joininggroup=heh */,
- { 0, 7218, 414, 10, 11, UNI_LB__ID } /* linebreak=ideographic */,
- { 0, 9277, 8107, 3, 8, UNI_BALI } /* sc=balinese */,
- { 3, 10048, 7835, 3, 8, UNI_NV__5_SLASH_2 } /* nv=2.50e+00 */,
- { 1, 8780, 4273, 6, 16, UNI_MYANMAREXTA } /* block=myanmarextendeda */,
- { 0, 9277, 8888, 3, 4, UNI_HATR } /* sc=hatr */,
- { 1, 7558, 6195, 4, 4, UNI_INHEBREW } /* inhebrew */,
- { 7, 8589, 8187, 7, 8, UNI_SC__HIRA } /* script=hiragana */,
- { 2, 10027, 5410, 3, 14, UNI_JG__MANICHAEANTETH } /* jg=manichaeanteth */,
- { 0, 1417, 10166, 24, 2, UNI_CCC__8 } /* canonicalcombiningclass=kv */,
- { 2, 184, 9640, 2, 3, UNI_LOE } /* isloe */,
- { 0, 8870, 1, 6, 1, -UNI_EPRES } /* epres=n */,
- { 4, 9524, 0, 4, 0, UNI_cwt_values_index } /* cwt= */,
- { 0, 1166, 9255, 26, 5, -UNI_DI } /* defaultignorablecodepoint=false */,
- { 1, 8780, 1922, 6, 12, UNI_DIACRITICALS } /* block=diacriticals */,
- { 13, 3836, 2684, 17, 19, UNI_EGYP } /* scriptextensions=egyptianhieroglyphs */,
- { 2, 8780, 8673, 6, 7, UNI_UCASEXT } /* block=ucasext */,
- { 0, 8780, 8645, 6, 7, UNI_INTAITHAM } /* block=taitham */,
- { 5, 5986, 7843, 13, 8, UNI_NV__1_SLASH_4 } /* numericvalue=2.50e-01 */,
- { 2, 217, 0, 33, 0, UNI_DIACRITICALSEXT } /* combiningdiacriticalmarksextended */,
- { 5, 10024, 6851, 3, 11, UNI_LO } /* gc=otherletter */,
- { 2, 9997, 23, 3, 2, UNI_BC__AL } /* bc=al */,
- { 6, 8780, 2912, 6, 12, UNI_SUNDANESESUP } /* block=sundanesesup */,
- { 1, 3836, 8659, 17, 7, UNI_TIBT } /* scriptextensions=tibetan */,
- { 0, 8645, 0, 7, 0, UNI_LANA } /* taitham */,
- { 2, 9277, 8786, 3, 6, UNI_CARI } /* sc=carian */,
- { 0, 7418, 26, 10, 1, UNI_XPOSIXUPPER } /* uppercase=y */,
- { 20, 7318, 10114, 10, 3, UNI_IN__6_DOT_3 } /* presentin=v63 */,
- { 5, 1188, 3458, 3, 10, UNI_TAIXUANJING } /* intaixuanjing */,
- { 3, 184, 9632, 2, 4, UNI_LINA } /* islina */,
- { 2, 9997, 2489, 3, 20, UNI_BC__PDF } /* bc=popdirectionalformat */,
- { 4, 8780, 8547, 6, 7, UNI_OLCK } /* block=olchiki */,
- { 0, 8942, 0, 4, 0, UNI_LYDI } /* lydi */,
- { 0, 6035, 0, 2, 0, UNI_PF } /* pf */,
- { 7, 9265, 10135, 5, 3, UNI_IDST } /* idst=yes */,
- { 0, 184, 2061, 2, 14, UNI_LM } /* ismodifierletter */,
- { 1, 184, 2287, 2, 21, UNI_SINHALAARCHAICNUMBERS } /* issinhalaarchaicnumbers */,
- { 3, 2569, 471, 20, 2, UNI_VO__TU } /* verticalorientation=tu */,
- { 2, 184, 1631, 2, 18, UNI_GEOMETRICSHAPESEXT } /* isgeometricshapesext */,
- { 4, 10048, 9924, 3, 2, UNI_NV__42 } /* nv=42 */,
- { 2, 184, 339, 2, 2, UNI_LO } /* islo */,
- { 1, 9768, 9330, 4, 5, UNI_TALE } /* scx=taile */,
- { 0, 9277, 6193, 3, 6, UNI_HEBR } /* sc=hebrew */,
- { 1, 184, 8491, 2, 4, UNI_MARC } /* ismarc */,
- { 0, 8780, 467, 6, 11, UNI_INPUNCTUATION } /* block=punctuation */,
- { 16, 9071, 1, 4, 1, -UNI_XPOSIXXDIGIT } /* hex=n */,
- { 1, 9270, 7309, 3, 9, UNI_INPHOENICIAN } /* inphoenician */,
- { 16, 3836, 8414, 17, 7, UNI_ELBA } /* scriptextensions=elbasan */,
- { 0, 3836, 8463, 17, 7, UNI_KALI } /* scriptextensions=kayahli */,
- { 0, 9768, 7188, 4, 4, UNI_KHAR } /* scx=khar */,
- { 0, 10296, 1629, 3, 3, UNI_PHAG } /* isphag */,
- { 2, 5746, 26, 6, 1, UNI_EBASE } /* ebase=y */,
- { 1, 8780, 8315, 6, 8, UNI_INUGARITIC } /* block=ugaritic */,
- { 0, 9277, 9632, 3, 4, UNI_SC__LINA } /* sc=lina */,
- { 5, 8884, 9255, 4, 5, -UNI_EXT } /* ext=false */,
- { 0, 10129, 3, 3, 1, -UNI_VS } /* vs=f */,
- { 3, 9528, 26, 4, 1, UNI_CWU } /* cwu=y */,
- { 1, 6229, 1, 12, 1, -UNI_JOINC } /* joincontrol=n */,
- { 5, 184, 9544, 2, 4, UNI_DIAK } /* isdiak */,
- { 5, 9704, 0, 4, 0, UNI_ORKH } /* orkh */,
- { 0, 9768, 7657, 4, 9, UNI_PERM } /* scx=oldpermic */,
- { 0, 9277, 8291, 3, 8, UNI_SC__TAGB } /* sc=tagbanwa */,
- { 1, 8780, 7531, 6, 9, UNI_EMOTICONS } /* block=emoticons */,
- { 1, 9488, 7504, 4, 9, UNI_ARABICPFB } /* blk=arabicpfb */,
- { 1, 8870, 9836, 6, 4, UNI_EPRES } /* epres=true */,
- { 1, 9270, 0, 5, 0, UNI_inpc_values_index } /* inpc= */,
- { 1, 8694, 9255, 7, 5, -UNI_XPOSIXSPACE } /* wspace=false */,
- { 16, 4791, 2837, 3, 18, UNI_MODIFIERTONELETTERS } /* inmodifiertoneletters */,
- { 1, 9277, 8414, 3, 4, UNI_ELBA } /* sc=elba */,
- { 1, 9768, 9516, 4, 4, UNI_CPRT } /* scx=cprt */,
- { 6, 7318, 10117, 10, 3, UNI_IN__7 } /* presentin=v70 */,
- { 1, 9640, 1025, 4, 2, -UNI_LOE } /* loe=no */,
- { 0, 184, 1587, 2, 1, UNI_Z } /* isz */,
- { 4, 7218, 9557, 10, 2, UNI_LB__CB } /* linebreak=cb */,
- { 16, 9275, 8307, 5, 8, UNI_INSC__TONEMARK } /* insc=tonemark */,
- { 0, 9277, 8936, 3, 6, UNI_LYCI } /* sc=lycian */,
- { 1, 2722, 0, 19, 0, UNI_JAMOEXTA } /* hanguljamoextendeda */,
- { 0, 8512, 17, 8, 1, UNI_NFKCQC__N } /* nfkcqc=no */,
- { 2, 9270, 909, 3, 13, UNI_PUA } /* inprivateusearea */,
- { 0, 9275, 5700, 5, 13, UNI_INSC__CONSONANTDEAD } /* insc=consonantdead */,
- { 2, 9484, 0, 4, 0, UNI_BHKS } /* bhks */,
- { 7, 9768, 4448, 4, 5, UNI_BAMU } /* scx=bamum */,
- { 1, 8589, 3115, 7, 10, UNI_SC__DEVA } /* script=devanagari */,
- { 0, 8852, 0, 6, 0, UNI_cwkcf_values_index } /* cwkcf= */,
- { 2, 6805, 2014, 6, 18, UNI_MISCTECHNICAL } /* inmiscellaneoustechnical */,
- { 4, 8589, 4001, 7, 7, UNI_SC__CPRT } /* script=cypriot */,
- { 4, 9488, 1192, 4, 26, UNI_HALFANDFULLFORMS } /* blk=halfwidthandfullwidthforms */,
- { 2, 8780, 5550, 6, 14, UNI_INPSALTERPAHLAVI } /* block=psalterpahlavi */,
- { 3, 132, 0, 2, 0, UNI_LM } /* lm */,
- { 16, 5986, 7851, 13, 8, UNI_NV__1_SLASH_40 } /* numericvalue=2.50e-02 */,
- { 2, 8780, 8442, 6, 7, UNI_INHANUNOO } /* block=hanunoo */,
- { 1, 9275, 8687, 5, 7, UNI_INSC__VISARGA } /* insc=visarga */,
- { 4, 10033, 8449, 3, 2, UNI_LB__HY } /* lb=hy */,
- { 0, 6805, 861, 6, 6, UNI_MISCARROWS } /* inmiscarrows */,
- { 0, 9488, 599, 4, 30, UNI_CJKEXTD } /* blk=cjkunifiedideographsextensiond */,
- { 0, 9277, 4478, 3, 7, UNI_BRAI } /* sc=braille */,
- { 0, 10033, 25, 3, 2, UNI_LB__SY } /* lb=sy */,
- { 0, 7325, 0, 3, 0, UNI_in_values_index } /* in= */,
- { 2, 7249, 533, 4, 2, UNI_CANS } /* iscans */,
- { 0, 4542, 1633, 4, 16, UNI_GEOMETRICSHAPESEXT } /* ingeometricshapesext */,
- { 3, 9488, 3598, 4, 17, UNI_INCAUCASIANALBANIAN } /* blk=caucasianalbanian */,
- { 1, 3836, 3241, 17, 4, UNI_GEOR } /* scriptextensions=geor */,
- { 0, 4033, 7408, 16, 10, UNI_CN } /* generalcategory=unassigned */,
- { 1, 2224, 3871, 3, 16, UNI_SMALLFORMS } /* insmallformvariants */,
- { 0, 3836, 4145, 17, 7, UNI_LINB } /* scriptextensions=linearb */,
- { 2, 9768, 2140, 4, 8, UNI_CYRL } /* scx=cyrillic */,
- { 0, 9070, 10135, 5, 3, UNI_POSIXXDIGIT } /* ahex=yes */,
- { 10, 8589, 6409, 7, 4, UNI_MEND } /* script=mend */,
- { 1, 6609, 0, 11, 0, UNI_dep_values_index } /* deprecated= */,
- { 0, 9277, 8491, 3, 7, UNI_MARC } /* sc=marchen */,
- { 2, 9508, 9101, 5, 4, UNI_CCC__14 } /* ccc=ccc14 */,
- { 5, 184, 3887, 2, 17, UNI_SUTTONSIGNWRITING } /* issuttonsignwriting */,
- { 1, 21, 9325, 2, 5, UNI_INRUNIC } /* inrunic */,
- { 2, 10024, 8855, 3, 2, UNI_CF } /* gc=cf */,
- { 8, 1417, 8823, 25, 4, UNI_CCC__13 } /* canonicalcombiningclass=ccc13 */,
- { 5, 4113, 25, 3, 1, UNI_INVS } /* invs */,
- { 2, 5986, 8011, 13, 8, UNI_NV__13_SLASH_2 } /* numericvalue=6.50e+00 */,
- { 2, 4853, 1, 15, 1, UNI_NFKDQC__N } /* nfkdquickcheck=n */,
- { 0, 10027, 4209, 3, 16, UNI_JG__MANICHAEANSAMEKH } /* jg=manichaeansamekh */,
- { 1, 569, 0, 30, 0, UNI_CJKEXTC } /* cjkunifiedideographsextensionc */,
- { 2, 9345, 9255, 5, 5, -UNI_XIDC } /* xidc=false */,
- { 1, 9488, 8936, 4, 6, UNI_INLYCIAN } /* blk=lycian */,
- { 0, 184, 3151, 2, 17, UNI_EPRES } /* isemojipresentation */,
- { 1, 8978, 1025, 6, 2, -UNI__PERL_PATWS } /* patws=no */,
- { 1, 10033, 7522, 3, 9, UNI_LB__B2 } /* lb=breakboth */,
- { 2, 1417, 2809, 24, 2, UNI_CCC__1 } /* canonicalcombiningclass=ov */,
- { 1, 8780, 8387, 7, 6, UNI_CJKEXTF } /* block=cjkextf */,
- { 3, 9015, 26, 5, 1, UNI_IDEO } /* ideo=y */,
- { 0, 1552, 6598, 9, 11, UNI_CASEDLETTER } /* category=casedletter */,
- { 1, 9540, 1025, 4, 2, -UNI_DIA } /* dia=no */,
- { 0, 21, 5830, 2, 13, UNI_LOWSURROGATES } /* inlowsurrogates */,
- { 0, 3259, 26, 18, 1, UNI_IDSB } /* idsbinaryoperator=y */,
- { 0, 57, 0, 2, 0, UNI_YI } /* yi */,
- { 1, 184, 2817, 2, 19, UNI_MERO } /* ismeroitichieroglyphs */,
- { 1, 8589, 9804, 7, 4, UNI_SC__TALE } /* script=tale */,
- { 2, 6609, 1, 11, 1, -UNI_DEP } /* deprecated=n */,
- { 2, 5986, 9055, 13, 4, UNI_NV__1_SLASH_32 } /* numericvalue=1/32 */,
- { 0, 9262, 400, 3, 6, UNI_SB__FO } /* sb=format */,
- { 8, 8780, 8414, 6, 7, UNI_INELBASAN } /* block=elbasan */,
- { 0, 7088, 6049, 10, 12, UNI_BC__AN } /* bidiclass=arabicnumber */,
- { 1, 10048, 9364, 3, 4, UNI_NV__1_SLASH_10 } /* nv=1/10 */,
- { 0, 8780, 6961, 6, 11, UNI_SUPERANDSUB } /* block=superandsub */,
- { 3, 184, 5284, 2, 14, UNI_LISUSUP } /* islisusupplement */,
- { 7, 9492, 7, 4, 1, UNI_BPT__C } /* bpt=c */,
- { 8, 9768, 8414, 4, 4, UNI_ELBA } /* scx=elba */,
- { 5, 10024, 467, 3, 5, UNI_P } /* gc=punct */,
- { 0, 1966, 8099, 22, 8, UNI_INSC__AVAGRAHA } /* indicsyllabiccategory=avagraha */,
- { 3, 9275, 4523, 5, 15, UNI_INSC__CONSONANTMEDIAL } /* insc=consonantmedial */,
- { 1, 8589, 9680, 7, 4, UNI_NBAT } /* script=nbat */,
- { 1, 10048, 7747, 3, 8, UNI_NV__1_SLASH_10 } /* nv=1.00e-01 */,
- { 1, 9488, 4065, 4, 16, UNI_HALFANDFULLFORMS } /* blk=halfandfullforms */,
- { 11, 7438, 8139, 10, 8, UNI_WB__EB } /* wordbreak=ebasegaz */,
- { 0, 2224, 2970, 3, 18, UNI_SUPARROWSC } /* insupplementalarrowsc */,
- { 0, 9524, 26, 4, 1, UNI_CWT } /* cwt=y */,
- { 1, 9277, 9572, 3, 4, UNI_SC__GUJR } /* sc=gujr */,
- { 4, 1552, 107, 10, 5, UNI_S } /* category=symbol */,
- { 0, 10048, 5648, 3, 4, UNI_NV__1000 } /* nv=1000 */,
- { 0, 10009, 8163, 3, 3, UNI_DT__FRA } /* dt=fra */,
- { 0, 7558, 0, 9, 0, UNI_QAAI } /* inherited */,
- { 3, 1768, 26, 22, 1, UNI_CWCF } /* changeswhencasefolded=y */,
- { 0, 3836, 2913, 18, 8, UNI_SUND } /* scriptextensions=sundanese */,
- { 10, 9277, 8547, 3, 7, UNI_OLCK } /* sc=olchiki */,
- { 0, 9488, 42, 4, 16, UNI_CJKCOMPAT } /* blk=cjkcompatibility */,
- { 2, 3836, 8315, 17, 4, UNI_UGAR } /* scriptextensions=ugar */,
- { 0, 8996, 0, 7, 0, UNI_STERM } /* sterm=t */,
- { 0, 9488, 4928, 4, 15, UNI_TAMILSUP } /* blk=tamilsupplement */,
- { 0, 3836, 7558, 17, 9, UNI_QAAI } /* scriptextensions=inherited */,
- { 0, 1552, 17, 10, 1, UNI_SO } /* category=so */,
- { 0, 9277, 7675, 3, 4, UNI_PALM } /* sc=palm */,
- { 0, 8780, 7513, 6, 9, UNI_INBHAIKSUKI } /* block=bhaiksuki */,
- { 1, 9250, 0, 5, 0, UNI_emod_values_index } /* emod= */,
- { 4, 8589, 719, 7, 9, UNI_XSUX } /* script=cuneiform */,
- { 0, 9240, 1025, 5, 2, -UNI_DASH } /* dash=no */,
- { 3, 8780, 6807, 6, 11, UNI_MISCSYMBOLS } /* block=miscsymbols */,
- { 1, 10048, 9055, 3, 5, UNI_NV__1_SLASH_320 } /* nv=1/320 */,
- { 1, 4628, 9, 15, 2, UNI_EA__NA } /* eastasianwidth=na */,
- { 0, 184, 1673, 2, 4, UNI_JAMO } /* isjamo */,
- { 3, 7155, 4098, 3, 15, UNI_HIGHPUSURROGATES } /* ishighpusurrogates */,
- { 3, 2779, 36, 19, 1, UNI_IDST } /* idstrinaryoperator=t */,
- { 2, 10027, 7348, 3, 10, UNI_JG__REVERSEDPE } /* jg=reversedpe */,
- { 6, 9488, 2224, 4, 21, UNI_ININSCRIPTIONALPARTHIAN } /* blk=inscriptionalparthian */,
- { 1, 7088, 0, 10, 0, UNI_bc_values_index } /* bidiclass= */,
- { 0, 8589, 8291, 7, 8, UNI_SC__TAGB } /* script=tagbanwa */,
- { 0, 4033, 10180, 16, 2, UNI_ZS } /* generalcategory=zs */,
- { 0, 8780, 1631, 6, 18, UNI_GEOMETRICSHAPESEXT } /* block=geometricshapesext */,
- { 0, 7318, 10111, 10, 3, UNI_IN__6_DOT_2 } /* presentin=v62 */,
- { 0, 8894, 1025, 6, 2, -UNI_JOINC } /* joinc=no */,
- { 2, 3836, 1115, 17, 4, UNI_HANG } /* scriptextensions=hang */,
- { 2, 9596, 9, 4, 2, UNI_HST__NA } /* hst=na */,
- { 1, 8780, 250, 6, 33, UNI_MISCMATHSYMBOLSA } /* block=miscellaneousmathematicalsymbolsa */,
- { 3, 10009, 2280, 3, 3, UNI_DT__ISO } /* dt=iso */,
- { 4, 9488, 5752, 4, 13, UNI_GREEKEXT } /* blk=greekextended */,
- { 17, 7378, 0, 10, 0, UNI_SUPARROWSA } /* suparrowsa */,
- { 2, 9520, 0, 3, 0, UNI_CWL } /* cwl */,
- { 2, 9556, 10174, 4, 2, UNI_GCB__XX } /* gcb=xx */,
- { 1, 10048, 7781, 3, 2, UNI_NV__43 } /* nv=43 */,
- { 1, 8780, 3115, 6, 13, UNI_DEVANAGARIEXT } /* block=devanagariext */,
- { 4, 3836, 6253, 17, 5, UNI_KHMR } /* scriptextensions=khmer */,
- { 8, 3836, 2288, 18, 6, UNI_SINH } /* scriptextensions=sinhala */,
- { 0, 10048, 10144, 3, 2, UNI_NV__45 } /* nv=45 */,
- { 42, 9488, 569, 4, 30, UNI_CJKEXTC } /* blk=cjkunifiedideographsextensionc */,
- { 9, 9536, 26, 4, 1, UNI_DEP } /* dep=y */,
- { 0, 1790, 26, 22, 1, UNI_CWCM } /* changeswhencasemapped=y */,
- { 2, 10048, 8710, 3, 4, UNI_NV__6000 } /* nv=6000 */,
- { 10, 9262, 1159, 3, 2, UNI_SB__ST } /* sb=st */,
- { 0, 21, 4129, 2, 16, UNI_LATIN1 } /* inlatin1supplement */,
- { 1, 3836, 7288, 17, 10, UNI_SOGO } /* scriptextensions=oldsogdian */,
- { 0, 21, 3295, 2, 9, UNI_LATINEXTA } /* inlatinexta */,
- { 1, 184, 9600, 2, 4, UNI_KALI } /* iskali */,
- { 3, 1552, 3359, 10, 8, UNI_Z } /* category=separator */,
- { 12, 5986, 5648, 13, 13, UNI_NV__1000000000000 } /* numericvalue=1000000000000 */,
- { 2, 3382, 26, 3, 1, UNI_CE } /* ce=y */,
- { 1, 5214, 0, 14, 0, UNI_KANGXI } /* kangxiradicals */,
- { 4, 9716, 9836, 4, 4, UNI_PCM } /* pcm=true */,
- { 0, 10132, 10174, 3, 2, UNI_WB__XX } /* wb=xx */,
- { 3, 8780, 6840, 6, 11, UNI_INNANDINAGARI } /* block=nandinagari */,
- { 0, 8589, 2608, 7, 6, UNI_BRAH } /* script=brahmi */,
- { 2, 9277, 9636, 3, 4, UNI_SC__LINB } /* sc=linb */,
- { 0, 3169, 0, 18, 0, UNI_ETHIOPICSUP } /* ethiopicsupplement */,
- { 2, 2224, 2913, 3, 11, UNI_SUNDANESESUP } /* insundanesesup */,
- { 2, 9275, 5102, 5, 14, UNI_INSC__CONSONANTFINAL } /* insc=consonantfinal */,
- { 0, 8780, 1906, 6, 16, UNI_INDICNUMBERFORMS } /* block=indicnumberforms */,
- { 5, 8780, 3547, 6, 10, UNI_ALCHEMICAL } /* block=alchemical */,
- { 0, 8780, 316, 6, 33, UNI_SUPMATHOPERATORS } /* block=supplementalmathematicaloperators */,
- { 3, 21, 8942, 2, 6, UNI_INLYDIAN } /* inlydian */,
- { 2, 9277, 2140, 3, 8, UNI_SC__CYRL } /* sc=cyrillic */,
- { 0, 1867, 0, 9, 0, UNI_XPOSIXUPPER } /* uppercase */,
- { 6, 7088, 865, 10, 2, UNI_BC__WS } /* bidiclass=ws */,
- { 1, 4033, 1287, 16, 2, UNI_UPPERCASELETTER } /* generalcategory=lu */,
- { 6, 7218, 6675, 10, 11, UNI_LB__EX } /* linebreak=exclamation */,
- { 0, 8589, 1900, 7, 6, UNI_SC__ZYYY } /* script=common */,
- { 1, 9768, 8428, 4, 4, UNI_GRAN } /* scx=gran */,
- { 0, 8596, 0, 7, 0, UNI_SHRD } /* sharada */,
- { 3, 1537, 3475, 24, 18, UNI_INPC__TOPANDLEFTANDRIGHT } /* indicpositionalcategory=topandleftandright */,
- { 1, 9488, 8942, 4, 6, UNI_INLYDIAN } /* blk=lydian */,
- { 0, 1552, 4305, 9, 5, UNI_C } /* category=other */,
- { 0, 9277, 8876, 3, 6, UNI_GOTH } /* sc=gothic */,
- { 0, 184, 7531, 2, 9, UNI_EMOTICONS } /* isemoticons */,
- { 0, 1966, 4508, 22, 15, UNI_INSC__CONSONANTKILLER } /* indicsyllabiccategory=consonantkiller */,
- { 1, 9556, 5746, 4, 5, UNI_WB__EB } /* gcb=ebase */,
- { 3, 9277, 6481, 3, 12, UNI_HUNG } /* sc=oldhungarian */,
- { 0, 4643, 0, 14, 0, UNI_ECOMP } /* emojicomponent */,
- { 3, 2224, 8618, 3, 6, UNI_INSOYOMBO } /* insoyombo */,
- { 5, 8780, 2817, 6, 19, UNI_MERO } /* block=meroitichieroglyphs */,
- { 3, 8435, 1, 7, 1, -UNI_GRBASE } /* grbase=n */,
- { 7, 8512, 0, 8, 0, UNI_NFKCQC__N } /* nfkcqc=n */,
- { 0, 48, 0, 1, 0, UNI_P } /* p */,
- { 1, 1812, 1025, 22, 2, -UNI_CWL } /* changeswhenlowercased=no */,
- { 0, 7155, 2204, 3, 3, UNI_HAN } /* ishani */,
- { 1, 9270, 2994, 5, 13, UNI_INPC__BOTTOMANDLEFT } /* inpc=bottomandleft */,
- { 0, 184, 8456, 2, 7, UNI_KNDA } /* iskannada */,
- { 0, 8762, 36, 6, 1, UNI_XPOSIXALPHA } /* alpha=t */,
- { 2, 3937, 0, 11, 0, UNI_BOPOMOFOEXT } /* bopomofoext */,
- { 7, 10024, 1066, 3, 2, UNI_CASEDLETTER } /* gc=lc */,
- { 2, 8477, 0, 7, 0, UNI_MAKA } /* makasar */,
- { 0, 9488, 2140, 4, 21, UNI_CYRILLICSUP } /* blk=cyrillicsupplementary */,
- { 0, 8780, 446, 6, 18, UNI_IDEOGRAPHICSYMBOLS } /* block=ideographicsymbols */,
- { 0, 9488, 9285, 4, 5, UNI_INLIMBU } /* blk=limbu */,
- { 1, 5986, 7795, 13, 8, UNI_NV__3_SLASH_20 } /* numericvalue=1.50e-01 */,
- { 0, 1417, 7477, 24, 9, UNI_CCC__AL } /* canonicalcombiningclass=aboveleft */,
- { 0, 9997, 3700, 3, 17, UNI_BC__ES } /* bc=europeanseparator */,
- { 2, 184, 6972, 2, 11, UNI_SYLO } /* issylotinagri */,
- { 0, 5032, 9255, 14, 5, -UNI_POSIXXDIGIT } /* asciihexdigit=false */,
- { 3, 8688, 3923, 4, 7, UNI_ARABICSUP } /* isarabicsup */,
- { 0, 8780, 2931, 6, 19, UNI_SUPARROWSA } /* block=supplementalarrowsa */,
- { 2, 9488, 2308, 4, 21, UNI_YIJING } /* blk=yijinghexagramsymbols */,
- { 0, 5661, 0, 13, 0, UNI_AEGEANNUMBERS } /* aegeannumbers */,
- { 5, 7076, 4479, 3, 6, UNI_BRAI } /* inbraille */,
- { 0, 184, 4245, 2, 10, UNI_SM } /* ismathsymbol */,
- { 13, 8780, 1585, 6, 14, UNI_BYZANTINEMUSIC } /* block=byzantinemusic */,
- { 0, 9508, 9106, 5, 4, UNI_CCC__15 } /* ccc=ccc15 */,
- { 2, 9768, 4385, 4, 6, UNI_TANG } /* scx=tangut */,
- { 3, 1537, 3343, 4, 6, UNI_DINGBATS } /* indingbats */,
- { 8, 9488, 2054, 4, 22, UNI_MODIFIERLETTERS } /* blk=spacingmodifierletters */,
- { 4, 539, 0, 30, 0, UNI_CJKEXTB } /* cjkunifiedideographsextensionb */,
- { 1, 184, 3439, 2, 12, UNI_SMALLKANAEXT } /* issmallkanaext */,
- { 0, 1269, 3, 25, 1, -UNI_COMPEX } /* fullcompositionexclusion=f */,
- { 26, 9275, 2646, 5, 19, UNI_INSC__CONSONANTHEADLETTER } /* insc=consonantheadletter */,
- { 1, 5986, 9428, 13, 4, UNI_NV__3_SLASH_80 } /* numericvalue=3/80 */,
- { 0, 8780, 8352, 7, 6, UNI_CJKEXTA } /* block=cjkexta */,
- { 1, 8884, 26, 4, 1, UNI_EXT } /* ext=y */,
- { 0, 9997, 8, 3, 2, UNI_BC__AN } /* bc=an */,
- { 6, 9736, 0, 4, 0, UNI_COPT } /* qaac */,
- { 0, 3097, 5012, 18, 6, UNI_DT__SQR } /* decompositiontype=square */,
- { 1, 2119, 0, 21, 0, UNI_CJKRADICALSSUP } /* cjkradicalssupplement */,
- { 0, 10048, 5648, 3, 6, UNI_NV__100000 } /* nv=100000 */,
- { 9, 9270, 3481, 5, 12, UNI_INPC__LEFTANDRIGHT } /* inpc=leftandright */,
- { 0, 8589, 2469, 7, 20, UNI_HMNP } /* script=nyiakengpuachuehmong */,
- { 4, 9488, 6277, 4, 7, UNI_MAHJONG } /* blk=mahjong */,
- { 6, 1552, 341, 9, 2, UNI_PE } /* category=pe */,
- { 0, 3097, 8533, 18, 7, UNI_DT__NB } /* decompositiontype=nobreak */,
- { 0, 3836, 6940, 18, 10, UNI_SORA } /* scriptextensions=sorasompeng */,
- { 0, 4033, 467, 16, 5, UNI_P } /* generalcategory=punct */,
- { 0, 8780, 3870, 6, 17, UNI_SMALLFORMS } /* block=smallformvariants */,
- { 3, 10333, 2913, 3, 3, UNI_SUND } /* issund */,
- { 2, 10024, 727, 3, 2, UNI_MN } /* gc=mn */,
- { 2, 6231, 43, 3, 8, UNI_CJKCOMPAT } /* incjkcompat */,
- { 17, 8589, 9797, 8, 3, UNI_SC__SYRC } /* script=syrc */,
- { 1, 1417, 8811, 25, 4, UNI_CCC__12 } /* canonicalcombiningclass=ccc12 */,
- { 1, 3379, 36, 6, 1, UNI_XPOSIXSPACE } /* space=t */,
- { 1, 10296, 1867, 7, 5, UNI_POSIXUPPER } /* isposixupper */,
- { 1, 3259, 3, 18, 1, -UNI_IDSB } /* idsbinaryoperator=f */,
- { 3, 1417, 3007, 24, 13, UNI_CCC__214 } /* canonicalcombiningclass=attachedabove */,
- { 1, 7028, 9039, 3, 5, UNI_YEZI } /* isyezidi */,
- { 4, 7218, 4360, 10, 9, UNI_EMOD } /* linebreak=emodifier */,
- { 1, 1417, 2455, 24, 5, UNI_CCC__R } /* canonicalcombiningclass=right */,
- { 0, 1273, 10135, 21, 3, UNI_CE } /* compositionexclusion=yes */,
- { 1, 8780, 8603, 6, 7, UNI_SHAW } /* block=shavian */,
- { 3, 9768, 8876, 4, 4, UNI_GOTH } /* scx=goth */,
- { 4, 2182, 0, 21, 0, UNI_gcb_values_index } /* graphemeclusterbreak= */,
- { 0, 8780, 8652, 6, 7, UNI_INTAIVIET } /* block=taiviet */,
- { 8, 9886, 5006, 5, 12, UNI_INZANABAZARSQUARE } /* inzanabazarsquare */,
- { 0, 8589, 8638, 7, 7, UNI_SC__TGLG } /* script=tagalog */,
- { 16, 1768, 1025, 22, 2, -UNI_CWCF } /* changeswhencasefolded=no */,
- { 1, 2224, 2951, 3, 18, UNI_SUPARROWSB } /* insupplementalarrowsb */,
- { 0, 6553, 36, 12, 1, UNI_XIDC } /* xidcontinue=t */,
- { 1, 9564, 0, 4, 0, UNI_GONM } /* gonm */,
- { 7, 8780, 8131, 6, 8, UNI_INDUPLOYAN } /* block=duployan */,
- { 1, 9768, 8786, 4, 4, UNI_CARI } /* scx=cari */,
- { 3, 9277, 1654, 3, 6, UNI_SC__HANG } /* sc=hangul */,
- { 0, 184, 3421, 2, 4, UNI_RUMI } /* isrumi */,
- { 3, 9768, 2817, 4, 4, UNI_MERO } /* scx=mero */,
- { 0, 184, 3785, 2, 4, UNI_MANI } /* ismani */,
- { 11, 9488, 5606, 4, 14, UNI_SUPPUNCTUATION } /* blk=suppunctuation */,
- { 1, 10250, 6556, 15, 8, UNI__PERL_CHARNAME_CONTINUE } /* _perl_charname_continue */,
- { 0, 8780, 8561, 6, 7, UNI_INOSMANYA } /* block=osmanya */,
- { 1, 10027, 9044, 3, 6, UNI_JG__YUDHHE } /* jg=yudhhe */,
- { 0, 9768, 8652, 4, 7, UNI_TAVT } /* scx=taiviet */,
- { 0, 10012, 1192, 3, 9, UNI_EA__H } /* ea=halfwidth */,
- { 3, 3836, 9704, 17, 4, UNI_ORKH } /* scriptextensions=orkh */,
- { 1, 7318, 10108, 10, 3, UNI_IN__6_DOT_1 } /* presentin=v61 */,
- { 12, 5791, 6349, 13, 12, UNI_JG__MALAYALAMSSA } /* joininggroup=malayalamssa */,
- { 0, 10048, 8744, 3, 4, UNI_NV__7000 } /* nv=7000 */,
- { 0, 3367, 36, 18, 1, UNI__PERL_PATWS } /* patternwhitespace=t */,
- { 0, 4853, 0, 15, 0, UNI_nfkdqc_values_index } /* nfkdquickcheck= */,
- { 2, 9488, 809, 4, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* blk=enclosedideographicsupplement */,
- { 4, 184, 749, 2, 30, UNI_ENCLOSEDALPHANUMSUP } /* isenclosedalphanumericsupplement */,
- { 1, 9020, 10135, 6, 3, UNI_XPOSIXUPPER } /* upper=yes */,
- { 1, 5986, 8750, 13, 5, UNI_NV__80000 } /* numericvalue=80000 */,
- { 0, 9768, 8171, 4, 8, UNI_GUJR } /* scx=gujarati */,
- { 0, 3379, 10135, 6, 3, UNI_XPOSIXSPACE } /* space=yes */,
- { 1, 9768, 8582, 4, 7, UNI_PHAG } /* scx=phagspa */,
- { 0, 3836, 3785, 17, 10, UNI_MANI } /* scriptextensions=manichaean */,
- { 5, 9488, 4793, 4, 15, UNI_INMEROITICCURSIVE } /* blk=meroiticcursive */,
- { 0, 184, 6277, 2, 12, UNI_MAHJONG } /* ismahjongtiles */,
- { 0, 9997, 1353, 3, 3, UNI_BC__RLE } /* bc=rle */,
- { 2, 184, 9245, 2, 4, UNI_DOGR } /* isdogr */,
- { 32, 9768, 9644, 4, 4, UNI_MEDF } /* scx=medf */,
- { 0, 9768, 6409, 4, 12, UNI_MEND } /* scx=mendekikakui */,
- { 8, 10132, 5746, 3, 5, UNI_WB__EB } /* wb=ebase */,
- { 0, 10048, 7826, 3, 2, UNI_NV__12 } /* nv=12 */,
- { 6, 10132, 4856, 3, 2, UNI_WB__DQ } /* wb=dq */,
- { 9, 10132, 34, 3, 6, UNI_WB__EXTEND } /* wb=extend */,
- { 6, 10027, 4778, 3, 15, UNI_JG__MANICHAEANZAYIN } /* jg=manichaeanzayin */,
- { 0, 8484, 0, 7, 0, UNI_MAND } /* mandaic */,
- { 2, 184, 9888, 2, 4, UNI_ZANB } /* iszanb */,
- { 1, 3367, 9255, 18, 5, -UNI__PERL_PATWS } /* patternwhitespace=false */,
- { 1, 8589, 1222, 7, 4, UNI_SC__KANA } /* script=kana */,
- { 11, 10024, 2061, 3, 14, UNI_LM } /* gc=modifierletter */,
- { 2, 9488, 8786, 4, 6, UNI_INCARIAN } /* blk=carian */,
- { 3, 9488, 78, 4, 6, UNI_INARABIC } /* blk=arabic */,
- { 2, 5791, 7348, 13, 10, UNI_JG__REVERSEDPE } /* joininggroup=reversedpe */,
- { 4, 10296, 5718, 7, 5, UNI_POSIXALNUM } /* isposixalnum */,
- { 1, 8589, 6193, 7, 4, UNI_HEBR } /* script=hebr */,
- { 2, 10048, 10142, 3, 2, UNI_NV__44 } /* nv=44 */,
- { 1, 9070, 9255, 5, 5, -UNI_POSIXXDIGIT } /* ahex=false */,
- { 5, 9768, 9452, 4, 4, UNI_AHOM } /* scx=ahom */,
- { 6, 1966, 8307, 22, 8, UNI_INSC__TONEMARK } /* indicsyllabiccategory=tonemark */,
- { 8, 2032, 0, 22, 0, UNI_nchar_values_index } /* noncharactercodepoint= */,
- { 0, 184, 4049, 2, 16, UNI_GEORGIANEXT } /* isgeorgianextended */,
- { 0, 9488, 539, 4, 30, UNI_CJKEXTB } /* blk=cjkunifiedideographsextensionb */,
- { 0, 106, 0, 6, 0, UNI_S } /* symbol */,
- { 1, 8780, 6481, 6, 12, UNI_INOLDHUNGARIAN } /* block=oldhungarian */,
- { 2, 9997, 0, 4, 0, UNI_BC__B } /* bc=b */,
- { 1, 8780, 6818, 6, 11, UNI_MYANMAREXTA } /* block=myanmarexta */,
- { 12, 2760, 6763, 19, 3, UNI_LB__H3 } /* hangulsyllabletype=lvt */,
- { 1, 8780, 4129, 6, 6, UNI_LATIN1 } /* block=latin1 */,
- { 2, 5986, 7859, 13, 5, UNI_NV__20000 } /* numericvalue=20000 */,
- { 6, 7218, 10158, 10, 2, UNI_LB__H2 } /* linebreak=h2 */,
- { 0, 10048, 7931, 3, 8, UNI_NV__5_SLASH_12 } /* nv=4.17e-01 */,
- { 10, 4916, 9817, 3, 3, UNI_TAVT } /* istavt */,
- { 0, 4033, 25, 16, 1, UNI_S } /* generalcategory=s */,
- { 1, 8131, 0, 8, 0, UNI_DUPL } /* duployan */,
- { 1, 9716, 26, 4, 1, UNI_PCM } /* pcm=y */,
- { 8, 10180, 0, 2, 0, UNI_ZS } /* zs */,
- { 1, 9488, 3921, 4, 16, UNI_ARABICSUP } /* blk=arabicsupplement */,
- { 2, 10322, 3379, 5, 5, UNI_XPOSIXSPACE } /* xperlspace */,
- { 1, 184, 183, 2, 20, UNI_MISCSYMBOLS } /* ismiscellaneoussymbols */,
- { 0, 7318, 7931, 10, 3, UNI_IN__4_DOT_1 } /* presentin=4.1 */,
- { 3, 8978, 0, 5, 0, UNI__PERL_PATWS } /* patws */,
- { 0, 9556, 34, 4, 2, UNI_GCB__EX } /* gcb=ex */,
- { 4, 9020, 1, 6, 1, -UNI_XPOSIXUPPER } /* upper=n */,
- { 0, 5986, 8710, 13, 2, UNI_NV__60 } /* numericvalue=60 */,
- { 0, 9544, 0, 4, 0, UNI_DIAK } /* diak */,
- { 0, 10308, 0, 5, 0, UNI_XPOSIXPRINT } /* print */,
- { 2, 1966, 5634, 22, 14, UNI_INSC__VOWELDEPENDENT } /* indicsyllabiccategory=voweldependent */,
- { 1, 4033, 1171, 16, 2, UNI_TITLE } /* generalcategory=lt */,
- { 4, 6231, 6098, 3, 11, UNI_CYRILLICEXTA } /* incyrillicexta */,
- { 0, 7325, 9852, 3, 4, UNI_IN__12_DOT_1 } /* in=v121 */,
- { 1, 5564, 36, 14, 1, UNI_QMARK } /* quotationmark=t */,
- { 0, 9091, 8133, 4, 6, UNI_INDUPLOYAN } /* induployan */,
- { 0, 8780, 2308, 6, 21, UNI_YIJING } /* block=yijinghexagramsymbols */,
- { 8, 8930, 10135, 6, 3, UNI_XPOSIXLOWER } /* lower=yes */,
- { 0, 8954, 10135, 6, 3, UNI__PERL_NCHAR } /* nchar=yes */,
- { 2, 184, 3, 3, 1, UNI_CF } /* iscf */,
- { 1, 8589, 3169, 7, 4, UNI_ETHI } /* script=ethi */,
- { 7, 9637, 5690, 5, 10, UNI_BLOCKELEMENTS } /* inblockelements */,
- { 0, 9508, 9111, 5, 4, UNI_CCC__16 } /* ccc=ccc16 */,
- { 5, 8589, 9644, 7, 4, UNI_MEDF } /* script=medf */,
- { 8, 5466, 0, 15, 0, UNI_DT__CAN } /* nfdquickcheck=n */,
- { 1, 8589, 3079, 7, 6, UNI_SC__COPT } /* script=coptic */,
- { 10, 8688, 183, 4, 2, UNI_ARMI } /* isarmi */,
- { 4, 8589, 4703, 7, 15, UNI_ARMI } /* script=imperialaramaic */,
- { 0, 3836, 9285, 17, 4, UNI_LIMB } /* scriptextensions=limb */,
- { 0, 8589, 6884, 7, 11, UNI_HMNG } /* script=pahawhhmong */,
- { 17, 184, 1033, 2, 27, UNI_ENCLOSEDCJK } /* isenclosedcjklettersandmonths */,
- { 1, 8589, 9720, 7, 4, UNI_SC__PHLP } /* script=phlp */,
- { 1, 339, 0, 2, 0, UNI_LO } /* lo */,
- { 3, 9488, 838, 4, 29, UNI_MISCARROWS } /* blk=miscellaneoussymbolsandarrows */,
- { 4, 8966, 26, 6, 1, UNI_NFDQC__Y } /* nfdqc=y */,
- { 1, 8780, 4369, 6, 16, UNI_SYRIACSUP } /* block=syriacsupplement */,
- { 1, 1417, 9151, 25, 4, UNI_CCC__24 } /* canonicalcombiningclass=ccc24 */,
- { 0, 21, 5200, 2, 7, UNI_KANASUP } /* inkanasup */,
- { 5, 1273, 0, 20, 0, UNI_CE } /* compositionexclusion */,
- { 1, 8780, 2950, 6, 19, UNI_SUPARROWSB } /* block=supplementalarrowsb */,
- { 1, 3457, 0, 11, 0, UNI_TAIXUANJING } /* taixuanjing */,
- { 0, 5578, 36, 15, 1, UNI_SB__ST } /* sentencebreak=st */,
- { 2, 184, 43, 3, 35, UNI_CJKCOMPATIDEOGRAPHSSUP } /* iscjkcompatibilityideographssupplement */,
- { 0, 184, 4478, 2, 7, UNI_BRAI } /* isbraille */,
- { 1, 8589, 4385, 7, 6, UNI_TANG } /* script=tangut */,
- { 0, 10033, 9713, 3, 2, UNI_LB__SG } /* lb=sg */,
- { 0, 1192, 0, 26, 0, UNI_HALFANDFULLFORMS } /* halfwidthandfullwidthforms */,
- { 2, 38, 0, 2, 0, UNI_XPOSIXDIGIT } /* nd */,
- { 1, 8589, 9305, 7, 5, UNI_NSHU } /* script=nushu */,
- { 1, 9270, 9, 5, 2, UNI_INPC__NA } /* inpc=na */,
- { 4, 1552, 2268, 9, 2, UNI_PD } /* category=pd */,
- { 0, 629, 0, 30, 0, UNI_CJKEXTE } /* cjkunifiedideographsextensione */,
- { 12, 7249, 5062, 4, 11, UNI_CI } /* iscaseignorable */,
- { 3, 5986, 9412, 13, 4, UNI_NV__17_SLASH_2 } /* numericvalue=17/2 */,
- { 0, 8589, 9588, 7, 4, UNI_HMNG } /* script=hmng */,
- { 1, 7325, 9848, 3, 4, UNI_IN__12 } /* in=v120 */,
- { 0, 8780, 8275, 6, 8, UNI_SPECIALS } /* block=specials */,
- { 6, 9488, 7428, 4, 10, UNI_INWARANGCITI } /* blk=warangciti */,
- { 6, 7228, 1, 10, 1, -UNI_XPOSIXLOWER } /* lowercase=n */,
- { 6, 5986, 8726, 13, 6, UNI_NV__432000 } /* numericvalue=432000 */,
- { 1, 1537, 6621, 3, 10, UNI_DOMINO } /* indominotiles */,
- { 0, 9540, 3, 4, 1, -UNI_DIA } /* dia=f */,
- { 0, 7155, 1514, 3, 23, UNI_HIGHPUSURROGATES } /* ishighprivateusesurrogates */,
- { 0, 5032, 9836, 14, 4, UNI_POSIXXDIGIT } /* asciihexdigit=true */,
- { 0, 10033, 10154, 3, 2, UNI_LB__B2 } /* lb=b2 */,
- { 6, 3904, 0, 17, 0, UNI_uideo_values_index } /* unifiedideograph= */,
- { 1, 3385, 9255, 18, 5, -UNI_RI } /* regionalindicator=false */,
- { 0, 9488, 3734, 4, 17, UNI_INDICSIYAQNUMBERS } /* blk=indicsiyaqnumbers */,
- { 2, 9860, 0, 4, 0, UNI_VAI } /* vaii */,
- { 4, 5791, 4209, 13, 16, UNI_JG__MANICHAEANSAMEKH } /* joininggroup=manichaeansamekh */,
- { 0, 5791, 87, 13, 2, UNI_JG__HE } /* joininggroup=he */,
- { 0, 8589, 9335, 7, 5, UNI_SC__TAKR } /* script=takri */,
- { 13, 9277, 9708, 3, 4, UNI_SC__ORYA } /* sc=orya */,
- { 1, 9277, 2061, 3, 4, UNI_SC__MODI } /* sc=modi */,
- { 2, 10027, 6785, 3, 11, UNI_JG__MALAYALAMRA } /* jg=malayalamra */,
- { 1, 7567, 0, 9, 0, UNI_SIND } /* khudawadi */,
- { 0, 184, 728, 2, 6, UNI_N } /* isnumber */,
- { 0, 9708, 0, 4, 0, UNI_ORYA } /* orya */,
- { 1, 1906, 0, 16, 0, UNI_INDICNUMBERFORMS } /* indicnumberforms */,
- { 0, 8780, 8924, 6, 6, UNI_INLEPCHA } /* block=lepcha */,
- { 0, 10048, 9050, 3, 4, UNI_NV__1_SLASH_16 } /* nv=1/16 */,
- { 0, 10288, 5718, 8, 5, UNI_XPOSIXALNUM } /* isxposixalnum */,
- { 6, 9488, 5661, 4, 13, UNI_AEGEANNUMBERS } /* blk=aegeannumbers */,
- { 8, 3983, 0, 18, 0, UNI_PE } /* isclosepunctuation */,
- { 11, 3097, 4532, 18, 6, UNI_DT__MED } /* decompositiontype=medial */,
- { 0, 10132, 6169, 3, 12, UNI_WB__EB } /* wb=glueafterzwj */,
- { 0, 5791, 5895, 13, 13, UNI_JG__MANICHAEANONE } /* joininggroup=manichaeanone */,
- { 0, 8954, 3, 6, 1, -UNI__PERL_NCHAR } /* nchar=f */,
- { 3, 4658, 36, 15, 1, UNI_GREXT } /* graphemeextend=t */,
- { 2, 7418, 10135, 10, 3, UNI_XPOSIXUPPER } /* uppercase=yes */,
- { 1, 10296, 0, 4, 0, UNI_PO } /* ispo */,
- { 0, 8589, 3785, 7, 4, UNI_SC__MANI } /* script=mani */,
- { 1, 3836, 4703, 17, 15, UNI_ARMI } /* scriptextensions=imperialaramaic */,
- { 1, 2224, 2932, 3, 18, UNI_SUPARROWSA } /* insupplementalarrowsa */,
- { 13, 8780, 4401, 6, 9, UNI_TANGUTSUP } /* block=tangutsup */,
- { 8, 8780, 7129, 7, 9, UNI_CJKSTROKES } /* block=cjkstrokes */,
- { 0, 21, 8211, 2, 8, UNI_JAMOEXTB } /* injamoextb */,
- { 0, 45, 0, 2, 0, UNI_CO } /* co */,
- { 4, 3097, 6421, 18, 8, UNI_DT__NONCANON } /* decompositiontype=noncanon */,
- { 16, 184, 1166, 2, 25, UNI_DI } /* isdefaultignorablecodepoint */,
- { 2, 9277, 9860, 3, 3, UNI_VAI } /* sc=vai */,
- { 1, 8491, 0, 7, 0, UNI_MARC } /* marchen */,
- { 4, 184, 5564, 2, 13, UNI_QMARK } /* isquotationmark */,
- { 2, 10024, 5713, 3, 13, UNI_XPOSIXDIGIT } /* gc=decimalnumber */,
- { 1, 10033, 184, 3, 2, UNI_LB__IS } /* lb=is */,
- { 1, 9315, 0, 5, 0, UNI_ORYA } /* oriya */,
- { 0, 9812, 0, 4, 0, UNI_TAML } /* taml */,
- { 0, 4989, 1868, 3, 4, UNI_XPOSIXUPPER } /* isupper */,
- { 0, 5986, 5648, 13, 5, UNI_NV__10000 } /* numericvalue=10000 */,
- { 16, 8780, 3026, 7, 10, UNI_CHEROKEESUP } /* block=cherokeesup */,
- { 1, 8780, 8610, 6, 7, UNI_INSIDDHAM } /* block=siddham */,
- { 1, 2161, 3, 21, 1, -UNI_EXTPICT } /* extendedpictographic=f */,
- { 1, 9488, 8091, 4, 8, UNI_INARMENIAN } /* blk=armenian */,
- { 1, 9277, 9065, 3, 5, UNI_SC__ADLM } /* sc=adlam */,
- { 12, 3836, 8344, 17, 7, UNI_BENG } /* scriptextensions=bengali */,
- { 0, 2032, 0, 21, 0, UNI__PERL_NCHAR } /* noncharactercodepoint */,
- { 8, 3421, 0, 18, 0, UNI_RUMI } /* ruminumeralsymbols */,
- { 1, 9277, 8115, 3, 4, UNI_BASS } /* sc=bass */,
- { 1, 184, 3169, 2, 8, UNI_ETHI } /* isethiopic */,
- { 0, 3836, 9824, 17, 4, UNI_TGLG } /* scriptextensions=tglg */,
- { 0, 184, 8942, 2, 4, UNI_LYDI } /* islydi */,
- { 0, 1812, 0, 22, 0, UNI_cwl_values_index } /* changeswhenlowercased= */,
- { 3, 7318, 10105, 10, 3, UNI_IN__6 } /* presentin=v60 */,
- { 5, 10296, 9721, 3, 3, UNI_PHLP } /* isphlp */,
- { 3, 10132, 7603, 3, 9, UNI_WB__ML } /* wb=midletter */,
- { 4, 2224, 7694, 3, 8, UNI_INSAMARITAN } /* insamaritan */,
- { 4, 10048, 10148, 3, 2, UNI_NV__47 } /* nv=47 */,
- { 1, 5986, 9409, 13, 3, UNI_NV__5_SLASH_2 } /* numericvalue=5/2 */,
- { 5, 184, 4448, 2, 8, UNI_BAMUMSUP } /* isbamumsup */,
- { 2, 9488, 509, 4, 30, UNI_CJKEXTA } /* blk=cjkunifiedideographsextensiona */,
- { 0, 10027, 4733, 3, 15, UNI_JG__MANICHAEANALEPH } /* jg=manichaeanaleph */,
- { 13, 10033, 10030, 3, 2, UNI_GCB__T } /* lb=jt */,
- { 1, 9277, 6840, 3, 4, UNI_SC__NAND } /* sc=nand */,
- { 2, 9997, 2798, 3, 19, UNI_BC__LRO } /* bc=lefttorightoverride */,
- { 4, 1269, 10135, 25, 3, UNI_COMPEX } /* fullcompositionexclusion=yes */,
- { 1, 8780, 2684, 6, 19, UNI_INEGYPTIANHIEROGLYPHS } /* block=egyptianhieroglyphs */,
- { 0, 8589, 8611, 8, 3, UNI_SIDD } /* script=sidd */,
- { 15, 1591, 2685, 3, 18, UNI_INEGYPTIANHIEROGLYPHS } /* inegyptianhieroglyphs */,
- { 0, 10027, 7198, 3, 10, UNI_JG__KNOTTEDHEH } /* jg=knottedheh */,
- { 1, 8589, 8611, 8, 6, UNI_SIDD } /* script=siddham */,
- { 0, 9065, 0, 5, 0, UNI_ADLM } /* adlam */,
- { 1, 8589, 6973, 8, 3, UNI_SC__SYLO } /* script=sylo */,
- { 0, 1114, 26, 26, 1, UNI_CWKCF } /* changeswhennfkccasefolded=y */,
- { 1, 9768, 2288, 5, 3, UNI_SINH } /* scx=sinh */,
- { 7, 10009, 6421, 3, 8, UNI_DT__NONCANON } /* dt=noncanon */,
- { 0, 9768, 8115, 4, 4, UNI_BASS } /* scx=bass */,
- { 16, 6231, 720, 3, 8, UNI_INCUNEIFORM } /* incuneiform */,
- { 19, 1417, 9211, 25, 4, UNI_CCC__36 } /* canonicalcombiningclass=ccc36 */,
- { 9, 2569, 3511, 20, 18, UNI_VO__TU } /* verticalorientation=transformedupright */,
- { 2, 2529, 1, 20, 1, -UNI_TERM } /* terminalpunctuation=n */,
- { 0, 184, 1911, 2, 11, UNI_NUMBERFORMS } /* isnumberforms */,
- { 0, 3836, 5843, 17, 9, UNI_MLYM } /* scriptextensions=malayalam */,
- { 1, 9508, 9300, 4, 5, UNI_CCC__7 } /* ccc=nukta */,
- { 0, 5674, 1, 13, 1, -UNI_BIDIM } /* bidimirrored=n */,
- { 0, 10132, 1218, 3, 2, UNI_WB__KA } /* wb=ka */,
- { 6, 10182, 25, 29, 1, UNI__PERL_PROBLEMATIC_LOCALE_FOLDS } /* _perl_problematic_locale_folds */,
- { 0, 6554, 36, 11, 1, UNI_IDC } /* idcontinue=t */,
- { 0, 1417, 8813, 24, 3, UNI_CCC__122 } /* canonicalcombiningclass=122 */,
- { 1, 7218, 10160, 10, 2, UNI_LB__H3 } /* linebreak=h3 */,
- { 14, 184, 9496, 2, 4, UNI_BUHD } /* isbuhd */,
- { 21, 6231, 720, 3, 15, UNI_CUNEIFORMNUMBERS } /* incuneiformnumbers */,
- { 1, 9277, 9712, 3, 4, UNI_OSGE } /* sc=osge */,
- { 1, 10178, 0, 2, 0, UNI_ZP } /* zp */,
- { 5, 9488, 8840, 4, 6, UNI_INCHAKMA } /* blk=chakma */,
- { 2, 8589, 2429, 7, 20, UNI_PHLI } /* script=inscriptionalpahlavi */,
- { 1, 5791, 4081, 13, 16, UNI_JG__HANIFIROHINGYAPA } /* joininggroup=hanifirohingyapa */,
- { 2, 6928, 10135, 11, 3, UNI_SD } /* softdotted=yes */,
- { 1, 7088, 3403, 10, 18, UNI_BC__RLI } /* bidiclass=righttoleftisolate */,
- { 1, 8589, 1537, 8, 3, UNI_SC__SIND } /* script=sind */,
- { 0, 5986, 9428, 13, 3, UNI_NV__3_SLASH_8 } /* numericvalue=3/8 */,
- { 4, 3836, 4478, 17, 4, UNI_BRAI } /* scriptextensions=brai */,
- { 0, 8984, 36, 6, 1, UNI_QMARK } /* qmark=t */,
- { 0, 4791, 8499, 3, 6, UNI_INMULTANI } /* inmultani */,
- { 9, 10024, 1899, 3, 2, UNI_PC } /* gc=pc */,
- { 2, 3836, 9624, 17, 4, UNI_LAO } /* scriptextensions=laoo */,
- { 4, 9488, 8526, 4, 7, UNI_NB } /* blk=noblock */,
- { 1, 9277, 9038, 3, 6, UNI_SC__YEZI } /* sc=yezidi */,
- { 2, 9768, 8611, 5, 6, UNI_SIDD } /* scx=siddham */,
- { 0, 2741, 0, 19, 0, UNI_JAMOEXTB } /* hanguljamoextendedb */,
- { 8, 8589, 1013, 7, 5, UNI_SC__GREK } /* script=greek */,
- { 1, 9488, 7378, 4, 10, UNI_SUPARROWSA } /* blk=suparrowsa */,
- { 0, 10290, 10308, 6, 5, UNI_XPOSIXPRINT } /* xposixprint */,
- { 1, 5060, 26, 14, 1, UNI_CI } /* caseignorable=y */,
- { 3, 184, 2245, 2, 11, UNI_MTEI } /* ismeeteimayek */,
- { 1, 10063, 3, 3, 1, -UNI_SD } /* sd=f */,
- { 6, 7318, 7923, 10, 3, UNI_IN__4 } /* presentin=4.0 */,
- { 1, 8589, 4448, 7, 5, UNI_BAMU } /* script=bamum */,
- { 1, 5986, 8750, 13, 2, UNI_NV__80 } /* numericvalue=80 */,
- { 0, 9768, 9544, 4, 4, UNI_DIAK } /* scx=diak */,
- { 0, 7155, 1418, 3, 3, UNI_HANO } /* ishano */,
- { 3, 8780, 1442, 7, 9, UNI_CJKSYMBOLS } /* block=cjksymbols */,
- { 0, 10009, 4017, 3, 3, UNI_DT__FIN } /* dt=fin */,
- { 6, 8589, 7675, 7, 9, UNI_PALM } /* script=palmyrene */,
- { 0, 9488, 7657, 4, 9, UNI_INOLDPERMIC } /* blk=oldpermic */,
- { 4, 1417, 7178, 24, 4, UNI_CCC__6 } /* canonicalcombiningclass=hanr */,
- { 0, 6862, 0, 11, 0, UNI_NO } /* othernumber */,
- { 0, 867, 0, 18, 0, UNI_PHONETICEXT } /* phoneticextensions */,
- { 0, 10009, 3501, 3, 3, UNI_DT__MED } /* dt=med */,
- { 5, 1417, 9156, 25, 4, UNI_CCC__25 } /* canonicalcombiningclass=ccc25 */,
- { 3, 5986, 9055, 13, 5, UNI_NV__1_SLASH_320 } /* numericvalue=1/320 */,
- { 0, 8589, 6792, 8, 3, UNI_SAMR } /* script=samr */,
- { 0, 9488, 8463, 4, 7, UNI_KALI } /* blk=kayahli */,
- { 24, 7076, 3938, 3, 10, UNI_BOPOMOFOEXT } /* inbopomofoext */,
- { 1, 9508, 0, 4, 0, UNI_ccc_values_index } /* ccc= */,
- { 1, 8780, 2969, 6, 19, UNI_SUPARROWSC } /* block=supplementalarrowsc */,
- { 21, 4628, 4471, 15, 7, UNI_EA__N } /* eastasianwidth=neutral */,
- { 2, 9277, 9038, 3, 4, UNI_SC__YEZI } /* sc=yezi */,
- { 1, 8780, 5158, 6, 14, UNI_INGREEK } /* block=greekandcoptic */,
- { 4, 9508, 9116, 5, 4, UNI_CCC__17 } /* ccc=ccc17 */,
- { 5, 8780, 8366, 7, 6, UNI_CJKEXTC } /* block=cjkextc */,
- { 0, 599, 0, 30, 0, UNI_CJKEXTD } /* cjkunifiedideographsextensiond */,
- { 0, 21, 8219, 2, 8, UNI_INJAVANESE } /* injavanese */,
- { 0, 9262, 34, 3, 6, UNI_SB__EX } /* sb=extend */,
- { 1, 7438, 10174, 10, 2, UNI_WB__XX } /* wordbreak=xx */,
- { 0, 8589, 7684, 7, 9, UNI_PAUC } /* script=paucinhau */,
- { 0, 6469, 39, 12, 2, UNI_XPOSIXDIGIT } /* numerictype=de */,
- { 0, 10003, 0, 3, 0, UNI_ci_values_index } /* ci= */,
- { 0, 9488, 6253, 4, 5, UNI_INKHMER } /* blk=khmer */,
- { 0, 9015, 36, 5, 1, UNI_IDEO } /* ideo=t */,
- { 0, 1189, 39, 3, 2, UNI_XPOSIXDIGIT } /* nt=de */,
- { 1, 4916, 8646, 3, 6, UNI_LANA } /* istaitham */,
- { 4, 6193, 0, 6, 0, UNI_HEBR } /* hebrew */,
- { 2, 7318, 9396, 10, 4, UNI_IN__12_DOT_1 } /* presentin=12.1 */,
- { 7, 9488, 2703, 4, 19, UNI_ENCLOSEDALPHANUMSUP } /* blk=enclosedalphanumsup */,
- { 8, 9277, 7558, 3, 9, UNI_SC__QAAI } /* sc=inherited */,
- { 0, 8780, 3734, 6, 17, UNI_INDICSIYAQNUMBERS } /* block=indicsiyaqnumbers */,
- { 1, 1269, 1025, 25, 2, -UNI_COMPEX } /* fullcompositionexclusion=no */,
- { 1, 8966, 0, 8, 0, UNI_DT__CAN } /* nfdqc=no */,
- { 0, 10033, 1186, 3, 2, UNI_LB__PO } /* lb=po */,
- { 1, 8780, 114, 7, 34, UNI_DIACRITICALSFORSYMBOLS } /* block=combiningdiacriticalmarksforsymbols */,
- { 0, 1184, 0, 3, 0, UNI_DEP } /* dep */,
- { 1, 3836, 9560, 17, 4, UNI_GONG } /* scriptextensions=gong */,
- { 35, 9070, 36, 5, 1, UNI_POSIXXDIGIT } /* ahex=t */,
- { 0, 9768, 9572, 4, 4, UNI_GUJR } /* scx=gujr */,
- { 0, 184, 9736, 2, 4, UNI_COPT } /* isqaac */,
- { 0, 7249, 12, 5, 3, UNI_CARI } /* iscarian */,
- { 3, 10027, 341, 3, 2, UNI_JG__PE } /* jg=pe */,
- { 1, 10027, 5480, 3, 14, UNI_JG__NOJOININGGROUP } /* jg=nojoininggroup */,
- { 0, 7325, 10120, 3, 3, UNI_IN__8 } /* in=v80 */,
- { 2, 8780, 4340, 6, 13, UNI_MATHOPERATORS } /* block=mathoperators */,
- { 3, 9492, 5904, 4, 4, UNI_BPT__N } /* bpt=none */,
- { 4, 184, 8179, 2, 8, UNI_GURU } /* isgurmukhi */,
- { 0, 9346, 10135, 4, 3, UNI_IDC } /* idc=yes */,
- { 4, 7076, 1219, 3, 4, UNI_INBATAK } /* inbatak */,
- { 5, 6928, 3, 11, 1, -UNI_SD } /* softdotted=f */,
- { 0, 184, 9680, 2, 4, UNI_NBAT } /* isnbat */,
- { 0, 9488, 4369, 4, 16, UNI_SYRIACSUP } /* blk=syriacsupplement */,
- { 1, 8780, 5214, 6, 6, UNI_KANGXI } /* block=kangxi */,
- { 1, 10132, 34, 3, 2, UNI_WB__EX } /* wb=ex */,
- { 3, 9768, 8219, 4, 4, UNI_JAVA } /* scx=java */,
- { 9, 9768, 3751, 4, 17, UNI_KITS } /* scx=khitansmallscript */,
- { 5, 9556, 5633, 4, 2, UNI_LB__H2 } /* gcb=lv */,
- { 3, 10132, 8144, 3, 3, UNI_WB__EB } /* wb=gaz */,
- { 1, 4385, 0, 4, 0, UNI_TANG } /* tang */,
- { 1, 3734, 0, 17, 0, UNI_INDICSIYAQNUMBERS } /* indicsiyaqnumbers */,
- { 0, 9488, 4385, 4, 16, UNI_TANGUTCOMPONENTS } /* blk=tangutcomponents */,
- { 8, 10048, 8756, 3, 4, UNI_NV__9000 } /* nv=9000 */,
- { 6, 8780, 3457, 6, 18, UNI_TAIXUANJING } /* block=taixuanjingsymbols */,
- { 2, 184, 3026, 3, 17, UNI_CHEROKEESUP } /* ischerokeesupplement */,
- { 0, 9488, 8624, 4, 7, UNI_SUPPUAA } /* blk=suppuaa */,
- { 1, 8774, 1025, 6, 2, -UNI_BIDIM } /* bidim=no */,
- { 2, 7438, 108, 10, 2, UNI_WB__MB } /* wordbreak=mb */,
- { 2, 1910, 0, 2, 0, UNI_CN } /* cn */,
- { 4, 5564, 10135, 14, 3, UNI_QMARK } /* quotationmark=yes */,
- { 1, 7218, 3, 11, 1, UNI_LB__LF } /* linebreak=lf */,
- { 5, 4116, 5779, 3, 12, UNI_IPAEXT } /* isipaextensions */,
- { 8, 9262, 138, 3, 2, UNI_SB__FO } /* sb=fo */,
- { 0, 3097, 3439, 18, 5, UNI_DT__SML } /* decompositiontype=small */,
- { 10, 8589, 6385, 7, 12, UNI_SC__GONM } /* script=masaramgondi */,
- { 5, 4791, 2856, 3, 11, UNI_MONGOLIANSUP } /* inmongoliansup */,
- { 2, 8780, 6397, 6, 12, UNI_MATHALPHANUM } /* block=mathalphanum */,
- { 10, 8589, 2409, 7, 10, UNI_SC__GLAG } /* script=glagolitic */,
- { 0, 8589, 9692, 7, 4, UNI_NSHU } /* script=nshu */,
- { 0, 8780, 8491, 6, 7, UNI_INMARCHEN } /* block=marchen */,
- { 4, 9488, 2329, 4, 20, UNI_INANATOLIANHIEROGLYPHS } /* blk=anatolianhieroglyphs */,
- { 18, 3836, 9616, 17, 4, UNI_KTHI } /* scriptextensions=kthi */,
- { 1, 6420, 6482, 3, 11, UNI_INOLDHUNGARIAN } /* inoldhungarian */,
- { 0, 1505, 2254, 5, 5, UNI_GREEKEXT } /* ingreekext */,
- { 2, 184, 8526, 2, 7, UNI_NB } /* isnoblock */,
- { 0, 719, 0, 16, 0, UNI_CUNEIFORMNUMBERS } /* cuneiformnumbers */,
- { 20, 9488, 2741, 4, 19, UNI_JAMOEXTB } /* blk=hanguljamoextendedb */,
- { 0, 4688, 8259, 15, 8, UNI_IDENTIFIERTYPE__OBSOLETE } /* identifiertype=obsolete */,
- { 8, 9488, 3921, 4, 9, UNI_ARABICSUP } /* blk=arabicsup */,
- { 2, 5060, 10135, 14, 3, UNI_CI } /* caseignorable=yes */,
- { 3, 9488, 7388, 4, 10, UNI_SUPARROWSB } /* blk=suparrowsb */,
- { 9, 4033, 10178, 16, 2, UNI_ZP } /* generalcategory=zp */,
- { 4, 8589, 8477, 7, 7, UNI_MAKA } /* script=makasar */,
- { 0, 6469, 495, 12, 2, UNI_NT__NU } /* numerictype=nu */,
- { 18, 10027, 5843, 3, 13, UNI_JG__MALAYALAMLLLA } /* jg=malayalamllla */,
- { 0, 8780, 3052, 6, 9, UNI_HALFMARKS } /* block=halfmarks */,
- { 2, 8780, 283, 6, 33, UNI_MISCMATHSYMBOLSB } /* block=miscellaneousmathematicalsymbolsb */,
- { 3, 8978, 36, 6, 1, UNI__PERL_PATWS } /* patws=t */,
- { 8, 3836, 8652, 17, 7, UNI_TAVT } /* scriptextensions=taiviet */,
- { 5, 9444, 7408, 4, 10, UNI_AGE__NA } /* age=unassigned */,
- { 10, 9260, 3, 5, 1, -UNI_IDSB } /* idsb=f */,
- { 8, 4628, 865, 15, 1, UNI_EA__W } /* eastasianwidth=w */,
- { 1, 9768, 6840, 4, 11, UNI_NAND } /* scx=nandinagari */,
- { 2, 10048, 10146, 3, 2, UNI_NV__46 } /* nv=46 */,
- { 2, 9230, 9836, 5, 4, UNI_CWCF } /* cwcf=true */,
- { 4, 8894, 10135, 6, 3, UNI_JOINC } /* joinc=yes */,
- { 3, 2032, 26, 22, 1, UNI__PERL_NCHAR } /* noncharactercodepoint=y */,
- { 0, 184, 1066, 2, 2, UNI_CASEDLETTER } /* islc */,
- { 4, 10048, 7877, 3, 2, UNI_NV__13 } /* nv=13 */,
- { 0, 8780, 5214, 6, 14, UNI_KANGXI } /* block=kangxiradicals */,
- { 0, 3836, 9320, 17, 5, UNI_OSGE } /* scriptextensions=osage */,
- { 1, 10024, 0, 3, 0, UNI_gc_values_index } /* gc= */,
- { 1, 21, 7594, 2, 9, UNI_LATINEXTD } /* inlatinextd */,
- { 6, 9488, 5214, 4, 6, UNI_KANGXI } /* blk=kangxi */,
- { 8, 9508, 3564, 4, 17, UNI_WB__EB } /* ccc=attachedbelowleft */,
- { 26, 6193, 0, 4, 0, UNI_HEBR } /* hebr */,
- { 2, 4289, 0, 16, 0, UNI_MYANMAREXTB } /* myanmarextendedb */,
- { 4, 9277, 9804, 3, 4, UNI_SC__TALE } /* sc=tale */,
- { 0, 9230, 3, 5, 1, -UNI_CWCF } /* cwcf=f */,
- { 16, 6231, 7119, 3, 9, UNI_INCHORASMIAN } /* inchorasmian */,
- { 2, 10048, 5648, 3, 2, UNI_NV__10 } /* nv=10 */,
- { 0, 4916, 4402, 3, 8, UNI_TANGUTSUP } /* istangutsup */,
- { 0, 8449, 10135, 7, 3, UNI_HYPHEN } /* hyphen=yes */,
- { 16, 10182, 10270, 6, 9, UNI__PERL_ANY_FOLDS } /* _perl_any_folds */,
- { 0, 10027, 9884, 3, 4, UNI_JG__ZAIN } /* jg=zain */,
- { 12, 10250, 10265, 15, 5, UNI__PERL_CHARNAME_BEGIN } /* _perl_charname_begin */,
- { 0, 3836, 719, 17, 9, UNI_XSUX } /* scriptextensions=cuneiform */,
- { 0, 4033, 727, 16, 2, UNI_MN } /* generalcategory=mn */,
- { 0, 184, 3044, 3, 17, UNI_HALFMARKS } /* iscombininghalfmarks */,
- { 11, 7249, 1017, 4, 2, UNI_CAKM } /* iscakm */,
- { 0, 7358, 0, 10, 0, UNI_SAUR } /* saurashtra */,
- { 0, 10027, 5921, 3, 13, UNI_JG__MANICHAEANTEN } /* jg=manichaeanten */,
- { 1, 9277, 2608, 3, 6, UNI_BRAH } /* sc=brahmi */,
- { 0, 21, 4129, 2, 9, UNI_LATIN1 } /* inlatin1sup */,
- { 0, 7531, 0, 9, 0, UNI_EMOTICONS } /* emoticons */,
- { 13, 3836, 2608, 17, 4, UNI_BRAH } /* scriptextensions=brah */,
- { 4, 9640, 9255, 4, 5, -UNI_LOE } /* loe=false */,
- { 0, 8780, 3583, 8, 15, UNI_UCAS } /* block=canadiansyllabics */,
- { 0, 9592, 0, 4, 0, UNI_HMNP } /* hmnp */,
- { 9, 10027, 2637, 3, 3, UNI_JG__YEH } /* jg=yeh */,
- { 3, 8780, 6939, 6, 11, UNI_INSORASOMPENG } /* block=sorasompeng */,
- { 2, 6231, 6122, 3, 11, UNI_CYRILLICEXTC } /* incyrillicextc */,
- { 4, 4033, 5817, 16, 13, UNI_ZL } /* generalcategory=lineseparator */,
- { 1, 5791, 4733, 13, 15, UNI_JG__MANICHAEANALEPH } /* joininggroup=manichaeanaleph */,
- { 1, 3836, 57, 17, 2, UNI_YI } /* scriptextensions=yi */,
- { 5, 9444, 9396, 4, 4, UNI_AGE__12_DOT_1 } /* age=12.1 */,
- { 1, 7318, 8043, 10, 3, UNI_IN__8 } /* presentin=8.0 */,
- { 1, 5791, 6785, 13, 11, UNI_JG__MALAYALAMRA } /* joininggroup=malayalamra */,
- { 0, 8870, 0, 5, 0, UNI_EPRES } /* epres */,
- { 0, 8519, 26, 7, 1, UNI_DT__NONE } /* nfkdqc=y */,
- { 2, 5578, 1823, 14, 5, UNI_SB__LO } /* sentencebreak=lower */,
- { 1, 9277, 9728, 3, 4, UNI_MIAO } /* sc=plrd */,
- { 0, 9008, 0, 6, 0, UNI_THAA } /* thaana */,
- { 8, 25, 0, 1, 0, UNI_S } /* s */,
- { 2, 4989, 8316, 3, 7, UNI_UGAR } /* isugaritic */,
- { 0, 8984, 10135, 6, 3, UNI_QMARK } /* qmark=yes */,
- { 0, 4718, 0, 15, 0, UNI_LOWERCASELETTER } /* lowercaseletter */,
- { 0, 184, 4129, 2, 9, UNI_LATIN1 } /* islatin1sup */,
- { 0, 8780, 2287, 6, 21, UNI_SINHALAARCHAICNUMBERS } /* block=sinhalaarchaicnumbers */,
- { 0, 4033, 4718, 16, 15, UNI_LOWERCASELETTER } /* generalcategory=lowercaseletter */,
- { 32, 8780, 867, 6, 11, UNI_PHONETICEXT } /* block=phoneticext */,
- { 0, 7218, 6193, 10, 12, UNI_LB__HL } /* linebreak=hebrewletter */,
- { 1, 3133, 1, 18, 1, -UNI_EBASE } /* emojimodifierbase=n */,
- { 0, 8780, 5606, 6, 14, UNI_SUPPUNCTUATION } /* block=suppunctuation */,
- { 1, 1166, 0, 26, 0, UNI_di_values_index } /* defaultignorablecodepoint= */,
- { 0, 10012, 9868, 3, 4, UNI_EA__W } /* ea=wide */,
- { 1, 9488, 4479, 5, 6, UNI_BRAI } /* blk=braille */,
- { 0, 9508, 3007, 4, 13, UNI_CCC__214 } /* ccc=attachedabove */,
- { 1, 1417, 9161, 25, 4, UNI_CCC__26 } /* canonicalcombiningclass=ccc26 */,
- { 0, 21, 8912, 2, 6, UNI_INKHOJKI } /* inkhojki */,
- { 0, 8858, 26, 6, 1, UNI_ECOMP } /* ecomp=y */,
- { 16, 9768, 9724, 4, 4, UNI_PHNX } /* scx=phnx */,
- { 6, 9768, 8091, 4, 8, UNI_ARMN } /* scx=armenian */,
- { 4, 9277, 8107, 3, 4, UNI_BALI } /* sc=bali */,
- { 6, 10132, 10015, 3, 3, UNI_WB__EB } /* wb=ebg */,
- { 0, 689, 0, 30, 0, UNI_CJKEXTG } /* cjkunifiedideographsextensiong */,
- { 3, 6231, 3026, 3, 10, UNI_CHEROKEESUP } /* incherokeesup */,
- { 1, 4703, 0, 15, 0, UNI_ARMI } /* imperialaramaic */,
- { 0, 8589, 8924, 7, 6, UNI_LEPC } /* script=lepcha */,
- { 0, 1552, 6035, 9, 2, UNI_PF } /* category=pf */,
- { 18, 567, 0, 2, 0, UNI_NB } /* nb */,
- { 4, 7218, 908, 10, 2, UNI_LB__PR } /* linebreak=pr */,
- { 0, 4916, 9331, 3, 4, UNI_TALE } /* istaile */,
- { 0, 21, 9038, 2, 6, UNI_INYEZIDI } /* inyezidi */,
- { 6, 5986, 7789, 13, 2, UNI_NV__50 } /* numericvalue=50 */,
- { 5, 10315, 3379, 5, 5, UNI_XPOSIXBLANK } /* horizspace */,
- { 1, 184, 8841, 3, 5, UNI_CAKM } /* ischakma */,
- { 1, 8884, 36, 4, 1, UNI_EXT } /* ext=t */,
- { 0, 9768, 9812, 4, 4, UNI_TAML } /* scx=taml */,
- { 0, 8780, 6620, 6, 6, UNI_DOMINO } /* block=domino */,
- { 1, 8589, 8618, 8, 6, UNI_SOYO } /* script=soyombo */,
- { 3, 3836, 2224, 17, 21, UNI_PRTI } /* scriptextensions=inscriptionalparthian */,
- { 0, 8780, 43, 7, 2, UNI_CJK } /* block=cjk */,
- { 0, 7318, 10078, 10, 3, UNI_IN__2_DOT_1 } /* presentin=v21 */,
- { 5, 8780, 8359, 7, 6, UNI_CJKEXTB } /* block=cjkextb */,
- { 6, 184, 3133, 2, 17, UNI_EBASE } /* isemojimodifierbase */,
- { 0, 8780, 8912, 6, 6, UNI_INKHOJKI } /* block=khojki */,
- { 0, 9277, 3785, 3, 10, UNI_SC__MANI } /* sc=manichaean */,
- { 2, 10003, 36, 3, 1, UNI_CI } /* ci=t */,
- { 1, 9277, 9512, 3, 4, UNI_CHRS } /* sc=chrs */,
- { 3, 3367, 1, 18, 1, -UNI__PERL_PATWS } /* patternwhitespace=n */,
- { 3, 8123, 0, 8, 0, UNI_BUGI } /* buginese */,
- { 1, 10132, 4360, 3, 9, UNI_WB__EB } /* wb=emodifier */,
- { 8, 8780, 2703, 6, 19, UNI_ENCLOSEDALPHANUMSUP } /* block=enclosedalphanumsup */,
- { 1, 8780, 749, 6, 16, UNI_ENCLOSEDALPHANUM } /* block=enclosedalphanum */,
- { 3, 8666, 0, 7, 0, UNI_TIRH } /* tirhuta */,
- { 7, 9997, 10054, 3, 3, UNI_BC__PDF } /* bc=pdf */,
- { 2, 8589, 9085, 7, 5, UNI_BATK } /* script=batak */,
- { 1, 9488, 42, 4, 3, UNI_CJK } /* blk=cjk */,
- { 1, 10033, 18, 3, 2, UNI_RI } /* lb=ri */,
- { 1, 1188, 9003, 3, 5, UNI_INTELUGU } /* intelugu */,
- { 17, 184, 1018, 2, 5, UNI_MUSIC } /* ismusic */,
- { 3, 10024, 1587, 3, 1, UNI_Z } /* gc=z */,
- { 1, 8491, 0, 4, 0, UNI_MARC } /* marc */,
- { 14, 6231, 43, 3, 35, UNI_CJKCOMPATIDEOGRAPHSSUP } /* incjkcompatibilityideographssupplement */,
- { 0, 5037, 9836, 9, 4, UNI_XPOSIXXDIGIT } /* hexdigit=true */,
- { 0, 6420, 7279, 3, 9, UNI_INOLDPERSIAN } /* inoldpersian */,
- { 0, 9488, 8116, 5, 7, UNI_INBASSAVAH } /* blk=bassavah */,
- { 6, 9235, 0, 4, 0, UNI_CWCM } /* cwcm */,
- { 6, 9488, 7693, 4, 9, UNI_INSAMARITAN } /* blk=samaritan */,
- { 8, 1417, 9206, 25, 4, UNI_CCC__35 } /* canonicalcombiningclass=ccc35 */,
- { 0, 10296, 2, 3, 1, UNI_PI } /* ispi */,
- { 2, 9768, 9464, 4, 4, UNI_ARMN } /* scx=armn */,
- { 0, 5508, 3, 14, 1, -UNI_PATSYN } /* patternsyntax=f */,
- { 0, 1008, 0, 2, 0, UNI_CI } /* ci */,
- { 0, 9277, 7291, 3, 4, UNI_SC__SOGD } /* sc=sogd */,
- { 11, 184, 6840, 2, 4, UNI_NAND } /* isnand */,
- { 11, 8147, 1025, 8, 2, -UNI_EXTPICT } /* extpict=no */,
- { 0, 184, 720, 3, 29, UNI_CUNEIFORMNUMBERS } /* iscuneiformnumbersandpunctuation */,
- { 1, 5986, 7819, 13, 8, UNI_NV__3_SLASH_16 } /* numericvalue=1.88e-01 */,
- { 0, 9488, 183, 4, 20, UNI_MISCSYMBOLS } /* blk=miscellaneoussymbols */,
- { 0, 9488, 8407, 4, 7, UNI_DSRT } /* blk=deseret */,
- { 0, 10129, 9255, 3, 5, -UNI_VS } /* vs=false */,
- { 0, 5032, 3, 14, 1, -UNI_POSIXXDIGIT } /* asciihexdigit=f */,
- { 1, 184, 5284, 2, 7, UNI_LISUSUP } /* islisusup */,
- { 2, 9488, 8631, 4, 7, UNI_SUPPUAB } /* blk=suppuab */,
- { 10, 1552, 7, 10, 1, UNI_SC } /* category=sc */,
- { 4, 184, 720, 3, 15, UNI_CUNEIFORMNUMBERS } /* iscuneiformnumbers */,
- { 10, 3151, 0, 18, 0, UNI_epres_values_index } /* emojipresentation= */,
- { 6, 5791, 5382, 13, 14, UNI_JG__MANICHAEANQOPH } /* joininggroup=manichaeanqoph */,
- { 1, 8267, 0, 8, 0, UNI_radical_values_index } /* radical= */,
- { 3, 3374, 26, 11, 1, UNI_XPOSIXSPACE } /* whitespace=y */,
- { 10, 9464, 0, 4, 0, UNI_ARMN } /* armn */,
- { 3, 7028, 9039, 3, 3, UNI_YEZI } /* isyezi */,
- { 1, 8780, 3026, 7, 7, UNI_INCHEROKEE } /* block=cherokee */,
- { 0, 10063, 0, 3, 0, UNI_sd_values_index } /* sd= */,
- { 2, 3836, 1537, 18, 3, UNI_SIND } /* scriptextensions=sind */,
- { 0, 8894, 1, 6, 1, -UNI_JOINC } /* joinc=n */,
- { 10, 10296, 9729, 3, 3, UNI_MIAO } /* isplrd */,
- { 0, 9488, 2722, 4, 19, UNI_JAMOEXTA } /* blk=hanguljamoextendeda */,
- { 1, 10009, 8948, 3, 6, UNI_DT__NAR } /* dt=narrow */,
- { 1, 8780, 6884, 6, 11, UNI_INPAHAWHHMONG } /* block=pahawhhmong */,
- { 2, 3836, 7308, 17, 10, UNI_PHNX } /* scriptextensions=phoenician */,
- { 0, 9235, 36, 5, 1, UNI_CWCM } /* cwcm=t */,
- { 8, 8589, 9688, 7, 4, UNI_NKO } /* script=nkoo */,
- { 1, 9508, 7078, 4, 10, UNI_CCC__BR } /* ccc=belowright */,
- { 4, 6133, 0, 12, 0, UNI_ETHIOPICEXTA } /* ethiopicexta */,
- { 1, 10033, 10164, 3, 2, UNI_GCB__V } /* lb=jv */,
- { 3, 9768, 1222, 4, 4, UNI_KANA } /* scx=kana */,
- { 0, 10048, 9060, 3, 5, UNI_NV__11_SLASH_12 } /* nv=11/12 */,
- { 2, 4033, 48, 16, 1, UNI_P } /* generalcategory=p */,
- { 7, 9997, 4321, 3, 16, UNI_BC__S } /* bc=segmentseparator */,
- { 1, 9768, 9828, 4, 4, UNI_THAI } /* scx=thai */,
- { 0, 184, 5508, 2, 13, UNI_PATSYN } /* ispatternsyntax */,
- { 0, 9277, 2912, 3, 4, UNI_SUND } /* sc=sund */,
- { 0, 3836, 9532, 17, 4, UNI_CYRL } /* scriptextensions=cyrl */,
- { 1, 184, 43, 3, 15, UNI_CJKCOMPAT } /* iscjkcompatibility */,
- { 2, 3529, 1, 18, 1, -UNI_VS } /* variationselector=n */,
- { 0, 9768, 9668, 4, 4, UNI_MTEI } /* scx=mtei */,
- { 0, 8589, 9752, 7, 4, UNI_SC__ROHG } /* script=rohg */,
- { 14, 4583, 0, 4, 0, UNI_DASH } /* dash */,
- { 6, 5986, 10152, 13, 2, UNI_NV__49 } /* numericvalue=49 */,
- { 0, 184, 1060, 3, 3, UNI_COPT } /* iscopt */,
- { 7, 117, 1908, 4, 14, UNI_INDICNUMBERFORMS } /* inindicnumberforms */,
- { 3, 1899, 0, 2, 0, UNI_PC } /* pc */,
- { 0, 7155, 5187, 3, 13, UNI_HIGHSURROGATES } /* ishighsurrogates */,
- { 1, 2182, 34, 21, 2, UNI_GCB__EX } /* graphemeclusterbreak=ex */,
- { 0, 10048, 7754, 3, 2, UNI_NV__11 } /* nv=11 */,
- { 2, 3259, 0, 18, 0, UNI_idsb_values_index } /* idsbinaryoperator= */,
- { 0, 21, 1677, 2, 9, UNI_LATINEXTE } /* inlatinexte */,
- { 0, 8589, 2061, 7, 4, UNI_SC__MODI } /* script=modi */,
- { 6, 7158, 1025, 10, 2, -UNI_DIA } /* diacritic=no */,
- { 0, 10296, 909, 3, 9, UNI_CO } /* isprivateuse */,
- { 0, 1417, 9201, 25, 4, UNI_CCC__34 } /* canonicalcombiningclass=ccc34 */,
- { 0, 7739, 26, 8, 1, UNI_IDS } /* idstart=y */,
- { 0, 809, 0, 22, 0, UNI_ENCLOSEDIDEOGRAPHICSUP } /* enclosedideographicsup */,
- { 3, 9277, 2203, 3, 14, UNI_SC__ROHG } /* sc=hanifirohingya */,
- { 8, 1537, 4600, 4, 13, UNI_DIACRITICALSEXT } /* indiacriticalsext */,
- { 10, 3836, 9038, 17, 4, UNI_YEZI } /* scriptextensions=yezi */,
- { 15, 9997, 3403, 3, 18, UNI_BC__RLI } /* bc=righttoleftisolate */,
- { 0, 184, 6928, 2, 10, UNI_SD } /* issoftdotted */,
- { 12, 9444, 9, 4, 2, UNI_AGE__NA } /* age=na */,
- { 0, 21, 5256, 2, 14, UNI_LATINEXTD } /* inlatinextendedd */,
- { 1, 7739, 9255, 8, 5, -UNI_IDS } /* idstart=false */,
- { 3, 184, 3937, 2, 4, UNI_BOPO } /* isbopo */,
- { 22, 10290, 10303, 6, 5, UNI_XPOSIXBLANK } /* xposixblank */,
- { 1, 3151, 3, 18, 1, -UNI_EPRES } /* emojipresentation=f */,
- { 1, 5037, 36, 9, 1, UNI_XPOSIXXDIGIT } /* hexdigit=t */,
- { 1, 3025, 0, 18, 0, UNI_CHEROKEESUP } /* cherokeesupplement */,
- { 0, 7155, 4066, 3, 15, UNI_HALFANDFULLFORMS } /* ishalfandfullforms */,
- { 0, 10340, 3379, 6, 5, UNI_VERTSPACE } /* isvertspace */,
- { 4, 10012, 9, 3, 2, UNI_EA__NA } /* ea=na */,
- { 6, 8780, 8990, 6, 6, UNI_INREJANG } /* block=rejang */,
- { 0, 7228, 36, 10, 1, UNI_XPOSIXLOWER } /* lowercase=t */,
- { 8, 3836, 9860, 17, 4, UNI_VAI } /* scriptextensions=vaii */,
- { 0, 1417, 8799, 25, 5, UNI_CCC__107 } /* canonicalcombiningclass=ccc107 */,
- { 1, 6231, 6110, 3, 11, UNI_CYRILLICEXTB } /* incyrillicextb */,
- { 0, 9444, 7826, 4, 4, UNI_AGE__12 } /* age=12.0 */,
- { 4, 1812, 10135, 22, 3, UNI_CWL } /* changeswhenlowercased=yes */,
- { 0, 406, 0, 7, 0, UNI_XPOSIXCNTRL } /* control */,
- { 1, 9488, 6884, 4, 11, UNI_INPAHAWHHMONG } /* blk=pahawhhmong */,
- { 11, 8589, 9480, 7, 4, UNI_BATK } /* script=batk */,
- { 3, 5739, 9255, 13, 5, -UNI_GRBASE } /* graphemebase=false */,
- { 7, 8589, 8840, 7, 6, UNI_SC__CAKM } /* script=chakma */,
- { 0, 9488, 7398, 4, 10, UNI_SUPARROWSC } /* blk=suparrowsc */,
- { 0, 9768, 2409, 4, 4, UNI_GLAG } /* scx=glag */,
- { 1, 9277, 2287, 3, 7, UNI_SC__SINH } /* sc=sinhala */,
- { 12, 10024, 339, 3, 2, UNI_LO } /* gc=lo */,
- { 0, 7438, 125, 10, 2, UNI_LB__CR } /* wordbreak=cr */,
- { 0, 9277, 2855, 3, 9, UNI_SC__MONG } /* sc=mongolian */,
- { 1, 8414, 0, 7, 0, UNI_ELBA } /* elbasan */,
- { 0, 10296, 2571, 3, 3, UNI_PRTI } /* isprti */,
- { 1, 3836, 3025, 17, 8, UNI_CHER } /* scriptextensions=cherokee */,
- { 1, 1591, 3170, 3, 7, UNI_INETHIOPIC } /* inethiopic */,
- { 0, 8780, 6620, 6, 11, UNI_DOMINO } /* block=dominotiles */,
- { 0, 1417, 9166, 25, 4, UNI_CCC__27 } /* canonicalcombiningclass=ccc27 */,
- { 2, 4116, 3278, 3, 17, UNI_PI } /* isinitialpunctuation */,
- { 18, 8888, 0, 4, 0, UNI_HATR } /* hatr */,
- { 0, 8589, 7292, 8, 6, UNI_SC__SOGD } /* script=sogdian */,
- { 3, 4791, 2062, 3, 3, UNI_INMODI } /* inmodi */,
- { 1, 2218, 9689, 3, 2, UNI_INNKO } /* innko */,
- { 4, 8930, 9255, 6, 5, -UNI_XPOSIXLOWER } /* lower=false */,
- { 1, 3836, 1654, 17, 6, UNI_HANG } /* scriptextensions=hangul */,
- { 2, 8780, 1466, 7, 23, UNI_DIACRITICALSFORSYMBOLS } /* block=combiningmarksforsymbols */,
- { 2, 8589, 8936, 7, 4, UNI_LYCI } /* script=lyci */,
- { 6, 184, 7, 3, 1, UNI_XPOSIXCNTRL } /* iscc */,
- { 1, 9277, 8786, 3, 4, UNI_CARI } /* sc=cari */,
- { 2, 184, 114, 3, 24, UNI_DIACRITICALS } /* iscombiningdiacriticalmarks */,
- { 5, 9488, 7278, 4, 10, UNI_INOLDPERSIAN } /* blk=oldpersian */,
- { 20, 1552, 206, 9, 2, UNI_PI } /* category=pi */,
- { 1, 9508, 10172, 4, 2, UNI_CCC__9 } /* ccc=vr */,
- { 0, 184, 1442, 3, 23, UNI_CJKSYMBOLS } /* iscjksymbolsandpunctuation */,
- { 2, 10024, 598, 3, 2, UNI_XPOSIXCNTRL } /* gc=cc */,
- { 14, 7325, 10096, 3, 3, UNI_IN__5 } /* in=v50 */,
- { 0, 9277, 8680, 3, 7, UNI_ZZZZ } /* sc=unknown */,
- { 0, 9270, 2555, 5, 6, UNI_INPC__BOTTOM } /* inpc=bottom */,
- { 4, 8589, 1176, 8, 3, UNI_SORA } /* script=sora */,
- { 2, 659, 0, 30, 0, UNI_CJKEXTF } /* cjkunifiedideographsextensionf */,
- { 0, 8960, 17, 7, 1, UNI_COMPEX } /* nfcqc=no */,
- { 1, 1417, 9468, 24, 4, UNI_CCC__216 } /* canonicalcombiningclass=atar */,
- { 4, 8694, 1025, 7, 2, -UNI_XPOSIXSPACE } /* wspace=no */,
- { 0, 9888, 0, 4, 0, UNI_ZANB } /* zanb */,
- { 14, 8780, 3341, 6, 8, UNI_DINGBATS } /* block=dingbats */,
- { 1, 7218, 5746, 10, 5, UNI_EBASE } /* linebreak=ebase */,
- { 1, 8575, 1, 7, 1, -UNI_PATSYN } /* patsyn=n */,
- { 0, 10048, 9380, 3, 4, UNI_NV__1_SLASH_80 } /* nv=1/80 */,
- { 3, 9800, 0, 4, 0, UNI_TAGS } /* tags */,
- { 1, 10290, 5039, 6, 6, UNI_XPOSIXXDIGIT } /* xposixxdigit */,
- { 0, 9488, 2874, 4, 19, UNI_OTTOMANSIYAQNUMBERS } /* blk=ottomansiyaqnumbers */,
- { 1, 9997, 6049, 3, 12, UNI_BC__AN } /* bc=arabicnumber */,
- { 0, 4916, 8292, 3, 7, UNI_TAGB } /* istagbanwa */,
- { 1, 4628, 0, 15, 0, UNI_ea_values_index } /* eastasianwidth= */,
- { 0, 184, 8924, 2, 6, UNI_LEPC } /* islepcha */,
- { 0, 7693, 0, 9, 0, UNI_SAMR } /* samaritan */,
- { 0, 7318, 10075, 10, 3, UNI_IN__2 } /* presentin=v20 */,
- { 5, 9488, 1294, 4, 25, UNI_SUPERANDSUB } /* blk=superscriptsandsubscripts */,
- { 0, 10048, 7859, 3, 4, UNI_NV__2000 } /* nv=2000 */,
- { 12, 21, 7188, 2, 10, UNI_INKHAROSHTHI } /* inkharoshthi */,
- { 7, 3836, 3937, 17, 8, UNI_BOPO } /* scriptextensions=bopomofo */,
- { 0, 9556, 6178, 4, 3, UNI_LB__ZWJ } /* gcb=zwj */,
- { 2, 184, 149, 3, 34, UNI_DIACRITICALSSUP } /* iscombiningdiacriticalmarkssupplement */,
- { 14, 6420, 4869, 3, 14, UNI_NARB } /* inoldnortharabian */,
- { 0, 10030, 0, 4, 0, UNI_JT__L } /* jt=l */,
- { 1, 2203, 0, 14, 0, UNI_ROHG } /* hanifirohingya */,
- { 1, 5791, 6346, 13, 3, UNI_JG__NYA } /* joininggroup=nya */,
- { 0, 8780, 6505, 6, 8, UNI_PHAISTOS } /* block=phaistos */,
- { 4, 184, 9684, 2, 4, UNI_NEWA } /* isnewa */,
- { 32, 4033, 908, 16, 10, UNI_CO } /* generalcategory=privateuse */,
- { 12, 9277, 9484, 3, 4, UNI_BHKS } /* sc=bhks */,
- { 5, 509, 0, 20, 0, UNI_CJK } /* cjkunifiedideographs */,
- { 1, 10027, 7048, 3, 10, UNI_JG__AFRICANQAF } /* jg=africanqaf */,
- { 0, 7438, 5851, 10, 2, UNI_WB__ML } /* wordbreak=ml */,
- { 3, 9612, 0, 4, 0, UNI_KNDA } /* knda */,
- { 1, 9488, 148, 4, 35, UNI_DIACRITICALSSUP } /* blk=combiningdiacriticalmarkssupplement */,
- { 3, 7325, 7755, 3, 3, UNI_IN__1_DOT_1 } /* in=1.1 */,
- { 0, 1552, 32, 9, 2, UNI__PERL_SURROGATE } /* category=cs */,
- { 2, 9508, 6445, 4, 12, UNI_CCC__0 } /* ccc=notreordered */,
- { 0, 2218, 7631, 3, 8, UNI_INNEWTAILUE } /* innewtailue */,
- { 4, 9488, 8227, 4, 8, UNI_KANAEXTA } /* blk=kanaexta */,
- { 0, 1988, 1025, 22, 2, -UNI_LOE } /* logicalorderexception=no */,
- { 26, 8960, 47, 6, 1, UNI_NFCQC__M } /* nfcqc=m */,
- { 0, 5986, 7859, 13, 3, UNI_NV__200 } /* numericvalue=200 */,
- { 4, 3937, 0, 4, 0, UNI_BOPO } /* bopo */,
- { 0, 8894, 9255, 6, 5, -UNI_JOINC } /* joinc=false */,
- { 0, 21, 8924, 2, 6, UNI_INLEPCHA } /* inlepcha */,
- { 0, 6553, 0, 12, 0, UNI_xidc_values_index } /* xidcontinue= */,
- { 7, 7076, 4449, 3, 4, UNI_INBAMUM } /* inbamum */,
- { 1, 10027, 4773, 3, 3, UNI_JG__SAD } /* jg=sad */,
- { 0, 7218, 10174, 10, 2, UNI_LB__XX } /* linebreak=xx */,
- { 0, 8780, 5284, 6, 7, UNI_LISUSUP } /* block=lisusup */,
- { 0, 5578, 9080, 14, 5, UNI_SB__AT } /* sentencebreak=aterm */,
- { 0, 10033, 4360, 3, 9, UNI_EMOD } /* lb=emodifier */,
- { 1, 9277, 1536, 3, 4, UNI_SC__SIND } /* sc=sind */,
- { 1, 8589, 8484, 7, 7, UNI_SC__MAND } /* script=mandaic */,
- { 0, 3385, 0, 18, 0, UNI_ri_values_index } /* regionalindicator= */,
- { 6, 3836, 9888, 17, 4, UNI_ZANB } /* scriptextensions=zanb */,
- { 4, 9768, 2560, 4, 4, UNI_MAND } /* scx=mand */,
- { 0, 6517, 0, 12, 0, UNI_PLAYINGCARDS } /* playingcards */,
- { 1, 8780, 43, 7, 25, UNI_CJKCOMPATIDEOGRAPHS } /* block=cjkcompatibilityideographs */,
- { 3, 8147, 0, 9, 0, -UNI_EXTPICT } /* extpict=f */,
- { 0, 8780, 6517, 6, 12, UNI_PLAYINGCARDS } /* block=playingcards */,
- { 1, 10027, 5856, 3, 13, UNI_JG__MALAYALAMNNNA } /* jg=malayalamnnna */,
- { 1, 6420, 3332, 3, 17, UNI_ORNAMENTALDINGBATS } /* inornamentaldingbats */,
- { 0, 9277, 497, 5, 3, UNI_KHMR } /* sc=khmer */,
- { 0, 8780, 8942, 6, 6, UNI_INLYDIAN } /* block=lydian */,
- { 1, 9488, 749, 4, 21, UNI_ENCLOSEDALPHANUM } /* blk=enclosedalphanumerics */,
- { 0, 4033, 132, 16, 2, UNI_LM } /* generalcategory=lm */,
- { 0, 8780, 3457, 6, 11, UNI_TAIXUANJING } /* block=taixuanjing */,
- { 2, 2224, 896, 3, 27, UNI_SUPPUAA } /* insupplementaryprivateuseareaa */,
- { 0, 3379, 1025, 6, 2, -UNI_XPOSIXSPACE } /* space=no */,
- { 0, 1812, 26, 22, 1, UNI_CWL } /* changeswhenlowercased=y */,
- { 0, 9768, 9680, 4, 4, UNI_NBAT } /* scx=nbat */,
- { 0, 4791, 393, 3, 2, UNI_INMRO } /* inmro */,
- { 1, 184, 9664, 2, 3, UNI_MRO } /* ismro */,
- { 2, 9488, 5804, 4, 13, UNI_KANAEXTA } /* blk=kanaextendeda */,
- { 0, 10132, 0, 3, 0, UNI_wb_values_index } /* wb= */,
- { 0, 8924, 0, 4, 0, UNI_LEPC } /* lepc */,
- { 6, 8659, 0, 7, 0, UNI_TIBT } /* tibetan */,
- { 2, 184, 1060, 3, 5, UNI_COPT } /* iscoptic */,
- { 22, 9508, 9026, 4, 6, UNI_CCC__9 } /* ccc=virama */,
- { 1, 9270, 868, 3, 10, UNI_PHONETICEXT } /* inphoneticext */,
- { 0, 1677, 0, 5, 0, UNI_LATN } /* latin */,
- { 1, 3385, 9836, 18, 4, UNI_RI } /* regionalindicator=true */,
- { 0, 1790, 36, 22, 1, UNI_CWCM } /* changeswhencasemapped=t */,
- { 3, 8589, 9660, 7, 4, UNI_SC__MLYM } /* script=mlym */,
- { 0, 10033, 6169, 3, 4, UNI_LB__GL } /* lb=glue */,
- { 4, 1537, 2988, 24, 19, UNI_INPC__TOPANDBOTTOMANDLEFT } /* indicpositionalcategory=topandbottomandleft */,
- { 3, 5791, 3819, 13, 17, UNI_JG__MANICHAEANTHAMEDH } /* joininggroup=manichaeanthamedh */,
- { 4, 5986, 10150, 13, 2, UNI_NV__48 } /* numericvalue=48 */,
- { 4, 184, 6796, 2, 11, UNI_MEDF } /* ismedefaidrin */,
- { 18, 3382, 36, 3, 1, UNI_CE } /* ce=t */,
- { 8, 10048, 7978, 3, 2, UNI_NV__16 } /* nv=16 */,
- { 1, 7438, 73, 10, 2, UNI_WB__EB } /* wordbreak=em */,
- { 2, 1417, 9196, 25, 4, UNI_CCC__33 } /* canonicalcombiningclass=ccc33 */,
- { 19, 9768, 9620, 4, 4, UNI_LANA } /* scx=lana */,
- { 2, 3382, 10135, 3, 3, UNI_CE } /* ce=yes */,
- { 17, 8780, 4883, 6, 15, UNI_SARB } /* block=oldsoutharabian */,
- { 17, 8243, 0, 8, 0, UNI_MAHJ } /* mahajani */,
- { 1, 5674, 0, 13, 0, UNI_bidim_values_index } /* bidimirrored= */,
- { 2, 9488, 867, 4, 18, UNI_PHONETICEXT } /* blk=phoneticextensions */,
- { 0, 6229, 36, 12, 1, UNI_JOINC } /* joincontrol=t */,
- { 16, 3836, 9576, 17, 4, UNI_GURU } /* scriptextensions=guru */,
- { 4, 5791, 5620, 13, 10, UNI_JG__TEHMARBUTA } /* joininggroup=tehmarbuta */,
- { 2, 10048, 9055, 3, 4, UNI_NV__1_SLASH_32 } /* nv=1/32 */,
- { 0, 21, 5270, 2, 14, UNI_LATINEXTE } /* inlatinextendede */,
- { 1, 10030, 0, 3, 1, UNI_JT__U } /* jt=u */,
- { 0, 184, 9226, 3, 4, UNI_XPOSIXCNTRL } /* iscntrl */,
- { 0, 7218, 25, 10, 2, UNI_LB__SY } /* linebreak=sy */,
- { 7, 3097, 10066, 18, 3, UNI_DT__SML } /* decompositiontype=sml */,
- { 12, 184, 9533, 3, 3, UNI_CYRL } /* iscyrl */,
- { 1, 4791, 2856, 3, 18, UNI_MONGOLIANSUP } /* inmongoliansupplement */,
- { 10, 4658, 9836, 15, 4, UNI_GREXT } /* graphemeextend=true */,
- { 9, 7218, 10156, 10, 2, UNI_LB__BK } /* linebreak=bk */,
- { 1, 9488, 4673, 4, 15, UNI_INHANGUL } /* blk=hangulsyllables */,
- { 3, 184, 2010, 2, 22, UNI_MISCTECHNICAL } /* ismiscellaneoustechnical */,
- { 3, 4033, 5592, 16, 14, UNI_ZS } /* generalcategory=spaceseparator */,
- { 1, 10048, 9413, 3, 3, UNI_NV__7_SLASH_2 } /* nv=7/2 */,
- { 0, 7088, 3773, 10, 3, UNI_BC__RLI } /* bidiclass=rli */,
- { 4, 9488, 3683, 4, 17, UNI_ETHIOPICEXTA } /* blk=ethiopicextendeda */,
- { 2, 9230, 26, 5, 1, UNI_CWCF } /* cwcf=y */,
- { 0, 8589, 9002, 7, 6, UNI_SC__TELU } /* script=telugu */,
- { 0, 10009, 45, 3, 6, UNI_DT__COM } /* dt=compat */,
- { 0, 9240, 9255, 5, 5, -UNI_DASH } /* dash=false */,
- { 0, 10024, 4718, 3, 15, UNI_LOWERCASELETTER } /* gc=lowercaseletter */,
- { 1, 5986, 8720, 13, 3, UNI_NV__400 } /* numericvalue=400 */,
- { 0, 2280, 9316, 3, 4, UNI_ORYA } /* isoriya */,
- { 0, 3374, 1025, 11, 2, -UNI_XPOSIXSPACE } /* whitespace=no */,
- { 1, 8688, 2314, 3, 3, UNI_POSIXXDIGIT } /* isahex */,
- { 6, 9768, 9664, 4, 4, UNI_MRO } /* scx=mroo */,
- { 0, 9768, 2855, 4, 9, UNI_MONG } /* scx=mongolian */,
- { 0, 8780, 6086, 7, 11, UNI_CHESSSYMBOLS } /* block=chesssymbols */,
- { 3, 184, 895, 2, 28, UNI_SUPPUAA } /* issupplementaryprivateuseareaa */,
- { 8, 8882, 10135, 6, 3, UNI_GREXT } /* grext=yes */,
- { 0, 9768, 9748, 4, 4, UNI_RJNG } /* scx=rjng */,
- { 2, 8780, 690, 7, 29, UNI_CJKEXTG } /* block=cjkunifiedideographsextensiong */,
- { 8, 2218, 8527, 3, 6, UNI_NB } /* innoblock */,
- { 2, 8589, 9664, 7, 3, UNI_MRO } /* script=mro */,
- { 0, 10063, 9255, 3, 5, -UNI_SD } /* sd=false */,
- { 20, 4033, 106, 16, 6, UNI_S } /* generalcategory=symbol */,
- { 2, 10027, 9456, 3, 4, UNI_JG__ALEF } /* jg=alef */,
- { 0, 4916, 9009, 3, 5, UNI_THAA } /* isthaana */,
- { 7, 7325, 7827, 3, 3, UNI_IN__2 } /* in=2.0 */,
- { 0, 1417, 9131, 25, 4, UNI_CCC__20 } /* canonicalcombiningclass=ccc20 */,
- { 1, 3374, 0, 10, 0, UNI_XPOSIXSPACE } /* whitespace */,
- { 2, 184, 1700, 2, 23, UNI_SHORTHANDFORMATCONTROLS } /* isshorthandformatcontrols */,
- { 0, 8638, 0, 7, 0, UNI_TGLG } /* tagalog */,
- { 9, 8780, 9002, 6, 6, UNI_INTELUGU } /* block=telugu */,
- { 10, 9488, 1654, 4, 6, UNI_INHANGUL } /* blk=hangul */,
- { 4, 9488, 8610, 4, 7, UNI_INSIDDHAM } /* blk=siddham */,
- { 1, 10012, 4471, 3, 7, UNI_EA__N } /* ea=neutral */,
- { 1, 3836, 9732, 17, 4, UNI_PRTI } /* scriptextensions=prti */,
- { 1, 184, 1218, 2, 26, UNI_KATAKANAEXT } /* iskatakanaphoneticextensions */,
- { 7, 9277, 7569, 5, 7, UNI_SC__SIND } /* sc=khudawadi */,
- { 0, 10291, 62, 5, 5, UNI_POSIXGRAPH } /* posixgraph */,
- { 23, 184, 6620, 2, 11, UNI_DOMINO } /* isdominotiles */,
- { 0, 9896, 0, 4, 0, UNI_ZYYY } /* zyyy */,
- { 0, 10027, 5354, 3, 14, UNI_JG__MANICHAEANHETH } /* jg=manichaeanheth */,
- { 4, 5986, 7468, 13, 9, UNI_NV___MINUS_1_SLASH_2 } /* numericvalue=-5.00e-01 */,
- { 0, 10048, 8043, 3, 8, UNI_NV__4_SLASH_5 } /* nv=8.00e-01 */,
- { 0, 3836, 7657, 17, 9, UNI_PERM } /* scriptextensions=oldpermic */,
- { 1, 184, 1835, 3, 20, UNI_CWT } /* ischangeswhentitlecased */,
- { 4, 9488, 1677, 4, 23, UNI_LATINEXTADDITIONAL } /* blk=latinextendedadditional */,
- { 1, 2280, 9709, 3, 3, UNI_ORYA } /* isorya */,
- { 2, 3836, 8924, 17, 6, UNI_LEPC } /* scriptextensions=lepcha */,
- { 1, 9768, 6193, 4, 4, UNI_HEBR } /* scx=hebr */,
- { 2, 9488, 5816, 5, 7, UNI_INBALINESE } /* blk=balinese */,
- { 1, 9508, 2455, 4, 5, UNI_CCC__R } /* ccc=right */,
- { 0, 1677, 0, 9, 0, UNI_LATINEXTE } /* latinexte */,
- { 0, 9277, 2409, 3, 4, UNI_SC__GLAG } /* sc=glag */,
- { 2, 9488, 5522, 4, 14, UNI_PHONETICEXTSUP } /* blk=phoneticextsup */,
- { 0, 7438, 6917, 10, 11, UNI_WB__SQ } /* wordbreak=singlequote */,
- { 1, 2182, 5633, 21, 2, UNI_LB__H2 } /* graphemeclusterbreak=lv */,
- { 40, 6231, 3026, 3, 17, UNI_CHEROKEESUP } /* incherokeesupplement */,
- { 6, 467, 0, 5, 0, UNI_P } /* punct */,
- { 1, 10024, 5817, 3, 13, UNI_ZL } /* gc=lineseparator */,
- { 0, 9768, 8337, 4, 7, UNI_AVST } /* scx=avestan */,
- { 1, 184, 114, 3, 34, UNI_DIACRITICALSFORSYMBOLS } /* iscombiningdiacriticalmarksforsymbols */,
- { 4, 9488, 1513, 4, 24, UNI_HIGHPUSURROGATES } /* blk=highprivateusesurrogates */,
- { 0, 9277, 4001, 3, 7, UNI_SC__CPRT } /* sc=cypriot */,
- { 0, 5986, 9380, 13, 4, UNI_NV__1_SLASH_80 } /* numericvalue=1/80 */,
- { 0, 10291, 5040, 5, 5, UNI_POSIXDIGIT } /* posixdigit */,
- { 6, 8589, 9310, 7, 5, UNI_OGAM } /* script=ogham */,
- { 0, 184, 2245, 2, 21, UNI_MEETEIMAYEKEXT } /* ismeeteimayekextensions */,
- { 1, 3836, 8442, 17, 7, UNI_HANO } /* scriptextensions=hanunoo */,
- { 1, 6241, 7258, 12, 10, UNI_JT__U } /* joiningtype=nonjoining */,
- { 2, 10009, 4017, 3, 5, UNI_DT__FIN } /* dt=final */,
- { 9, 3836, 6277, 17, 4, UNI_MAHJ } /* scriptextensions=mahj */,
- { 3, 4989, 1129, 3, 3, UNI_UCAS } /* isucas */,
- { 2, 8509, 2705, 4, 17, UNI_ENCLOSEDALPHANUMSUP } /* inenclosedalphanumsup */,
- { 5, 10051, 0, 3, 0, UNI_OCR } /* ocr */,
- { 1, 3717, 8330, 17, 7, UNI_IDENTIFIERSTATUS__ALLOWED } /* identifierstatus=allowed */,
- { 0, 9768, 1628, 4, 4, UNI_PHAG } /* scx=phag */,
- { 1, 10024, 6265, 3, 12, UNI_NL } /* gc=letternumber */,
- { 0, 8996, 9837, 7, 3, UNI_STERM } /* sterm=true */,
- { 0, 9488, 3683, 4, 11, UNI_ETHIOPICEXT } /* blk=ethiopicext */,
- { 1, 9768, 6484, 4, 4, UNI_HUNG } /* scx=hung */,
- { 9, 9038, 0, 6, 0, UNI_YEZI } /* yezidi */,
- { 0, 6231, 7129, 3, 9, UNI_CJKSTROKES } /* incjkstrokes */,
- { 2, 10033, 0, 3, 0, UNI_lb_values_index } /* lb= */,
- { 0, 8960, 0, 7, 0, UNI_COMPEX } /* nfcqc=n */,
- { 0, 1189, 5713, 3, 7, UNI_XPOSIXDIGIT } /* nt=decimal */,
- { 4, 6241, 6, 12, 1, UNI_JT__D } /* joiningtype=d */,
- { 0, 9277, 4883, 3, 15, UNI_SARB } /* sc=oldsoutharabian */,
- { 0, 6805, 206, 6, 11, UNI_MISCPICTOGRAPHS } /* inmiscpictographs */,
- { 8, 10024, 467, 3, 11, UNI_P } /* gc=punctuation */,
- { 9, 9768, 8187, 4, 4, UNI_HIRA } /* scx=hira */,
- { 4, 184, 7513, 2, 9, UNI_BHKS } /* isbhaiksuki */,
- { 2, 5986, 9376, 13, 4, UNI_NV__1_SLASH_64 } /* numericvalue=1/64 */,
- { 21, 9488, 7531, 4, 9, UNI_EMOTICONS } /* blk=emoticons */,
- { 6, 7684, 0, 4, 0, UNI_PAUC } /* pauc */,
- { 12, 4273, 0, 7, 0, UNI_MYMR } /* myanmar */,
- { 12, 7657, 0, 9, 0, UNI_PERM } /* oldpermic */,
- { 0, 6231, 510, 3, 19, UNI_CJK } /* incjkunifiedideographs */,
- { 8, 184, 9644, 2, 4, UNI_MEDF } /* ismedf */,
- { 3, 951, 0, 18, 0, UNI_INVS } /* variationselectors */,
- { 0, 8780, 5018, 6, 14, UNI_ANCIENTSYMBOLS } /* block=ancientsymbols */,
- { 5, 1417, 3015, 24, 10, UNI_CCC__AR } /* canonicalcombiningclass=aboveright */,
- { 1, 4116, 3260, 3, 3, UNI_IDSB } /* isidsb */,
- { 68, 1966, 2389, 22, 20, UNI_INSC__CONSONANTWITHSTACKER } /* indicsyllabiccategory=consonantwithstacker */,
- { 3, 10126, 18, 3, 1, UNI_VO__R } /* vo=r */,
- { 8, 8688, 9441, 3, 3, UNI_ADLM } /* isadlm */,
- { 6, 9277, 2608, 3, 4, UNI_BRAH } /* sc=brah */,
- { 10, 10333, 6, 3, 1, UNI_SD } /* issd */,
- { 0, 4033, 27, 16, 2, UNI_LOWERCASELETTER } /* generalcategory=ll */,
- { 9, 5791, 4778, 13, 15, UNI_JG__MANICHAEANZAYIN } /* joininggroup=manichaeanzayin */,
- { 0, 8780, 1631, 6, 15, UNI_GEOMETRICSHAPES } /* block=geometricshapes */,
- { 0, 8870, 0, 6, 0, UNI_epres_values_index } /* epres= */,
- { 1, 9716, 36, 4, 1, UNI_PCM } /* pcm=t */,
- { 0, 3836, 8498, 17, 7, UNI_MULT } /* scriptextensions=multani */,
- { 0, 184, 4360, 2, 4, UNI_EMOD } /* isemod */,
- { 0, 10033, 42, 3, 2, UNI_LB__CJ } /* lb=cj */,
- { 1, 5986, 8744, 13, 4, UNI_NV__7000 } /* numericvalue=7000 */,
- { 0, 1591, 7533, 4, 7, UNI_EMOTICONS } /* inemoticons */,
- { 2, 9488, 10051, 4, 3, UNI_OCR } /* blk=ocr */,
- { 9, 9768, 7292, 5, 3, UNI_SOGD } /* scx=sogd */,
- { 0, 9768, 9564, 4, 4, UNI_GONM } /* scx=gonm */,
- { 2, 3836, 8477, 17, 7, UNI_MAKA } /* scriptextensions=makasar */,
- { 34, 3836, 6973, 18, 10, UNI_SYLO } /* scriptextensions=sylotinagri */,
- { 2, 1417, 4134, 24, 1, UNI_CCC__1 } /* canonicalcombiningclass=1 */,
- { 9, 9556, 6763, 4, 3, UNI_LB__H3 } /* gcb=lvt */,
- { 0, 184, 1585, 2, 23, UNI_BYZANTINEMUSIC } /* isbyzantinemusicalsymbols */,
- { 0, 1537, 0, 24, 0, UNI_inpc_values_index } /* indicpositionalcategory= */,
- { 0, 1979, 4720, 11, 13, UNI_LOWERCASELETTER } /* category=lowercaseletter */,
- { 0, 5986, 9404, 13, 4, UNI_NV__13_SLASH_2 } /* numericvalue=13/2 */,
- { 0, 8780, 779, 6, 30, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* block=symbolsandpictographsextendeda */,
- { 17, 9277, 8428, 3, 4, UNI_SC__GRAN } /* sc=gran */,
- { 0, 9768, 9692, 4, 4, UNI_NSHU } /* scx=nshu */,
- { 0, 4273, 0, 16, 0, UNI_MYANMAREXTA } /* myanmarextendeda */,
- { 0, 7218, 6178, 10, 3, UNI_LB__ZWJ } /* linebreak=zwj */,
- { 1, 8768, 3, 6, 1, -UNI_BIDIC } /* bidic=f */,
- { 3, 8930, 1025, 6, 2, -UNI_XPOSIXLOWER } /* lower=no */,
- { 8, 10048, 7933, 3, 2, UNI_NV__17 } /* nv=17 */,
- { 1, 1417, 9191, 25, 4, UNI_CCC__32 } /* canonicalcombiningclass=ccc32 */,
- { 5, 9444, 10084, 4, 3, UNI_AGE__3_DOT_1 } /* age=v31 */,
- { 0, 9488, 8582, 4, 7, UNI_INPHAGSPA } /* blk=phagspa */,
- { 4, 8589, 2817, 7, 4, UNI_MERO } /* script=mero */,
- { 8, 8449, 3, 7, 1, -UNI_HYPHEN } /* hyphen=f */,
- { 13, 8997, 3, 5, 1, -UNI_TERM } /* term=f */,
- { 0, 10048, 8708, 3, 6, UNI_NV__216000 } /* nv=216000 */,
- { 0, 7438, 1194, 10, 2, UNI_LB__LF } /* wordbreak=lf */,
- { 1, 3836, 6884, 17, 11, UNI_HMNG } /* scriptextensions=pahawhhmong */,
- { 1, 10027, 9772, 3, 4, UNI_JG__SEEN } /* jg=seen */,
- { 9, 3836, 9448, 17, 4, UNI_AGHB } /* scriptextensions=aghb */,
- { 0, 3836, 3895, 18, 3, UNI_SGNW } /* scriptextensions=sgnw */,
- { 32, 10030, 36, 3, 1, UNI_JT__T } /* jt=t */,
- { 10, 3836, 8171, 17, 8, UNI_GUJR } /* scriptextensions=gujarati */,
- { 15, 21, 5228, 2, 14, UNI_LATINEXTB } /* inlatinextendedb */,
- { 1, 9444, 9985, 4, 3, UNI_AGE__7 } /* age=7.0 */,
- { 9, 4422, 3117, 4, 16, UNI_DEVANAGARIEXT } /* indevanagariextended */,
- { 0, 184, 9480, 2, 4, UNI_BATK } /* isbatk */,
- { 1, 10333, 7292, 3, 3, UNI_SOGD } /* issogd */,
- { 0, 1812, 36, 22, 1, UNI_CWL } /* changeswhenlowercased=t */,
- { 0, 8864, 1025, 6, 2, -UNI_EMOJI } /* emoji=no */,
- { 2, 9508, 8795, 4, 3, UNI_CCC__103 } /* ccc=103 */,
- { 6, 8603, 0, 7, 0, UNI_SHAW } /* shavian */,
- { 0, 4145, 0, 7, 0, UNI_LINB } /* linearb */,
- { 1, 1979, 1045, 10, 5, UNI_L } /* category=letter */,
- { 4, 8456, 0, 7, 0, UNI_KNDA } /* kannada */,
- { 0, 1552, 3349, 9, 18, UNI_ZP } /* category=paragraphseparator */,
- { 2, 9277, 8421, 3, 4, UNI_ELYM } /* sc=elym */,
- { 2, 4688, 7005, 15, 11, UNI_IDENTIFIERTYPE__UNCOMMONUSE } /* identifiertype=uncommonuse */,
- { 1, 4688, 6895, 15, 11, UNI_IDENTIFIERTYPE__RECOMMENDED } /* identifiertype=recommended */,
- { 0, 1417, 9136, 25, 4, UNI_CCC__21 } /* canonicalcombiningclass=ccc21 */,
- { 0, 8688, 1395, 4, 22, UNI_ARABICPFB } /* isarabicpresentationformsb */,
- { 1, 2224, 7292, 3, 6, UNI_INSOGDIAN } /* insogdian */,
- { 9, 8589, 7630, 7, 9, UNI_TALU } /* script=newtailue */,
- { 1, 8780, 4385, 6, 16, UNI_TANGUTCOMPONENTS } /* block=tangutcomponents */,
- { 3, 4033, 3349, 16, 18, UNI_ZP } /* generalcategory=paragraphseparator */,
- { 4, 10048, 7963, 3, 8, UNI_NV__11_SLASH_2 } /* nv=5.50e+00 */,
- { 2, 8768, 0, 6, 0, UNI_bidic_values_index } /* bidic= */,
- { 6, 184, 923, 2, 28, UNI_SUPPUAB } /* issupplementaryprivateuseareab */,
- { 3, 9262, 10174, 3, 2, UNI_SB__XX } /* sb=xx */,
- { 2, 2224, 7369, 3, 9, UNI_SMALLFORMS } /* insmallforms */,
- { 0, 8864, 10135, 6, 3, UNI_EMOJI } /* emoji=yes */,
- { 10, 10024, 132, 3, 2, UNI_LM } /* gc=lm */,
- { 0, 8780, 4433, 6, 15, UNI_ARABICEXTA } /* block=arabicextendeda */,
- { 5, 1171, 0, 2, 0, UNI_TITLE } /* lt */,
- { 0, 9444, 10117, 4, 3, UNI_AGE__7 } /* age=v70 */,
- { 0, 8589, 78, 7, 6, UNI_SC__ARAB } /* script=arabic */,
- { 1, 8780, 9330, 6, 5, UNI_INTAILE } /* block=taile */,
- { 6, 9277, 3785, 3, 4, UNI_SC__MANI } /* sc=mani */,
- { 0, 9997, 6037, 3, 12, UNI_BC__AL } /* bc=arabicletter */,
- { 5, 6241, 0, 12, 0, UNI_jt_values_index } /* joiningtype= */,
- { 0, 4791, 6819, 3, 10, UNI_MYANMAREXTA } /* inmyanmarexta */,
- { 3, 9277, 8617, 3, 7, UNI_SOYO } /* sc=soyombo */,
- { 0, 2288, 1195, 5, 23, UNI_HALFANDFULLFORMS } /* inhalfwidthandfullwidthforms */,
- { 2, 8470, 0, 7, 0, UNI_LINA } /* lineara */,
- { 5, 3374, 9836, 11, 4, UNI_XPOSIXSPACE } /* whitespace=true */,
- { 5, 9014, 26, 6, 1, UNI_UIDEO } /* uideo=y */,
- { 0, 9768, 9824, 4, 4, UNI_TGLG } /* scx=tglg */,
- { 12, 5578, 10174, 14, 2, UNI_SB__XX } /* sentencebreak=xx */,
- { 2, 1537, 2449, 24, 4, UNI_INPC__LEFT } /* indicpositionalcategory=left */,
- { 2, 9488, 867, 4, 28, UNI_PHONETICEXTSUP } /* blk=phoneticextensionssupplement */,
- { 1, 184, 3115, 2, 10, UNI_DEVA } /* isdevanagari */,
- { 3, 9262, 49, 3, 2, UNI_SB__AT } /* sb=at */,
- { 9, 8589, 8498, 7, 7, UNI_SC__MULT } /* script=multani */,
- { 0, 9277, 9824, 3, 4, UNI_SC__TGLG } /* sc=tglg */,
- { 2, 1087, 36, 27, 1, UNI_PCM } /* prependedconcatenationmark=t */,
- { 0, 3311, 0, 3, 0, UNI_ALL } /* all */,
- { 1, 8930, 1, 6, 1, -UNI_XPOSIXLOWER } /* lower=n */,
- { 4, 3901, 6184, 5, 9, UNI_INGUNJALAGONDI } /* ingunjalagondi */,
- { 0, 6420, 7667, 3, 8, UNI_INOLDTURKIC } /* inoldturkic */,
- { 1, 8589, 9892, 7, 4, UNI_SC__QAAI } /* script=zinh */,
- { 0, 184, 8876, 2, 4, UNI_GOTH } /* isgoth */,
- { 5, 10003, 26, 3, 1, UNI_CI } /* ci=y */,
- { 1, 10182, 8979, 7, 4, UNI__PERL_PATWS } /* _perl_patws */,
- { 14, 7158, 1, 10, 1, -UNI_DIA } /* diacritic=n */,
- { 1, 9488, 6253, 4, 12, UNI_KHMERSYMBOLS } /* blk=khmersymbols */,
- { 5, 9290, 36, 5, 1, UNI_MATH } /* math=t */,
- { 0, 184, 435, 2, 5, UNI__PERL_NCHAR } /* isnchar */,
- { 3, 9596, 5633, 4, 2, UNI_LB__H2 } /* hst=lv */,
- { 2, 9277, 9452, 3, 4, UNI_AHOM } /* sc=ahom */,
- { 0, 184, 8477, 2, 4, UNI_MAKA } /* ismaka */,
- { 3, 7594, 0, 9, 0, UNI_LATINEXTD } /* latinextd */,
- { 1, 9277, 7358, 3, 4, UNI_SAUR } /* sc=saur */,
- { 3, 9488, 5284, 4, 7, UNI_LISUSUP } /* blk=lisusup */,
- { 0, 9020, 0, 6, 0, UNI_upper_values_index } /* upper= */,
- { 6, 8864, 0, 6, 0, UNI_emoji_values_index } /* emoji= */,
- { 0, 4422, 3117, 4, 11, UNI_DEVANAGARIEXT } /* indevanagariext */,
- { 0, 8688, 80, 4, 33, UNI_ARABICMATH } /* isarabicmathematicalalphabeticsymbols */,
- { 1, 3836, 0, 17, 0, UNI_scx_values_index } /* scriptextensions= */,
- { 4, 9488, 7308, 4, 10, UNI_INPHOENICIAN } /* blk=phoenician */,
- { 3, 5791, 6313, 13, 12, UNI_JG__MALAYALAMNGA } /* joininggroup=malayalamnga */,
- { 9, 3836, 7168, 17, 10, UNI_DIAK } /* scriptextensions=divesakuru */,
- { 1, 9277, 1219, 4, 7, UNI_SC__KANA } /* sc=katakana */,
- { 0, 4033, 133, 16, 4, UNI_M } /* generalcategory=mark */,
- { 1, 10048, 7939, 3, 8, UNI_NV__9_SLASH_2 } /* nv=4.50e+00 */,
- { 1, 2288, 4098, 3, 15, UNI_HIGHPUSURROGATES } /* inhighpusurrogates */,
- { 4, 9277, 9664, 3, 3, UNI_MRO } /* sc=mro */,
- { 2, 7291, 0, 7, 0, UNI_SOGD } /* sogdian */,
- { 1, 1417, 8837, 24, 3, UNI_WB__EB } /* canonicalcombiningclass=133 */,
- { 0, 4033, 339, 16, 2, UNI_LO } /* generalcategory=lo */,
- { 0, 7540, 36, 9, 1, UNI_EXT } /* extender=t */,
- { 3, 10296, 6, 3, 1, UNI_PD } /* ispd */,
- { 9, 9508, 24, 4, 1, UNI_CCC__L } /* ccc=l */,
- { 0, 1417, 9952, 24, 3, UNI_CCC__IS } /* canonicalcombiningclass=240 */,
- { 0, 7438, 727, 10, 2, UNI_WB__MN } /* wordbreak=mn */,
- { 32, 9488, 1878, 4, 22, UNI_CJKCOMPATIDEOGRAPHSSUP } /* blk=cjkcompatideographssup */,
- { 48, 184, 4145, 2, 16, UNI_LINEARBIDEOGRAMS } /* islinearbideograms */,
- { 0, 3836, 9245, 17, 4, UNI_DOGR } /* scriptextensions=dogr */,
- { 0, 1552, 6862, 9, 11, UNI_NO } /* category=othernumber */,
- { 14, 184, 9656, 2, 4, UNI_MIAO } /* ismiao */,
- { 0, 6576, 36, 11, 1, UNI_XPOSIXALPHA } /* alphabetic=t */,
- { 0, 5791, 6162, 13, 7, UNI_JG__SEMKATH } /* joininggroup=semkath */,
- { 5, 184, 8219, 2, 8, UNI_JAVA } /* isjavanese */,
- { 3, 3836, 8491, 17, 7, UNI_MARC } /* scriptextensions=marchen */,
- { 4, 4033, 400, 16, 6, UNI_CF } /* generalcategory=format */,
- { 9, 8780, 4369, 6, 9, UNI_SYRIACSUP } /* block=syriacsup */,
- { 0, 9488, 3581, 4, 17, UNI_UCAS } /* blk=canadiansyllabics */,
- { 0, 10027, 2627, 3, 19, UNI_JG__BURUSHASKIYEHBARREE } /* jg=burushaskiyehbarree */,
- { 1, 8780, 3080, 7, 17, UNI_COPTICEPACTNUMBERS } /* block=copticepactnumbers */,
- { 1, 9277, 2287, 3, 4, UNI_SC__SINH } /* sc=sinh */,
- { 6, 9716, 1025, 4, 2, -UNI_PCM } /* pcm=no */,
- { 0, 184, 3937, 2, 16, UNI_BOPOMOFOEXT } /* isbopomofoextended */,
- { 0, 8870, 3, 6, 1, -UNI_EPRES } /* epres=f */,
- { 0, 3223, 0, 18, 0, UNI_INPUNCTUATION } /* generalpunctuation */,
- { 3, 8589, 6277, 7, 4, UNI_SC__MAHJ } /* script=mahj */,
- { 3, 9997, 32, 3, 2, UNI_BC__CS } /* bc=cs */,
- { 0, 3151, 1025, 18, 2, -UNI_EPRES } /* emojipresentation=no */,
- { 0, 184, 1677, 2, 9, UNI_LATINEXTE } /* islatinexte */,
- { 0, 7438, 0, 4, 0, UNI_XPOSIXWORD } /* word */,
- { 0, 4033, 112, 16, 2, UNI_SC } /* generalcategory=sc */,
- { 1, 9488, 7621, 4, 9, UNI_INNABATAEAN } /* blk=nabataean */,
- { 0, 9277, 9672, 3, 4, UNI_SC__MYMR } /* sc=mymr */,
- { 3, 7218, 533, 10, 2, UNI_LB__NS } /* linebreak=ns */,
- { 2, 8780, 8115, 6, 8, UNI_INBASSAVAH } /* block=bassavah */,
- { 3, 951, 0, 17, 0, UNI_VS } /* variationselector */,
- { 1, 8589, 9038, 7, 4, UNI_SC__YEZI } /* script=yezi */,
- { 6, 9277, 9736, 3, 4, UNI_SC__COPT } /* sc=qaac */,
- { 0, 8688, 97, 3, 4, UNI_XPOSIXALPHA } /* isalpha */,
- { 2, 4033, 4305, 16, 16, UNI_PO } /* generalcategory=otherpunctuation */,
- { 1, 10132, 6193, 3, 12, UNI_LB__HL } /* wb=hebrewletter */,
- { 17, 1417, 6719, 24, 11, UNI_CCC__8 } /* canonicalcombiningclass=kanavoicing */,
- { 2, 1188, 4386, 3, 5, UNI_INTANGUT } /* intangut */,
- { 1, 9277, 4273, 3, 7, UNI_SC__MYMR } /* sc=myanmar */,
- { 46, 8924, 0, 6, 0, UNI_LEPC } /* lepcha */,
- { 1, 1417, 5649, 24, 1, UNI_CCC__0 } /* canonicalcombiningclass=0 */,
- { 1, 8589, 9896, 7, 4, UNI_SC__ZYYY } /* script=zyyy */,
- { 16, 10009, 0, 3, 0, UNI_dt_values_index } /* dt= */,
- { 6, 2784, 863, 4, 4, UNI_ARROWS } /* inarrows */,
- { 16, 9277, 4478, 3, 4, UNI_BRAI } /* sc=brai */,
- { 11, 9444, 10081, 4, 3, UNI_AGE__3 } /* age=v30 */,
- { 10, 9516, 0, 4, 0, UNI_CPRT } /* cprt */,
- { 2, 184, 9668, 2, 4, UNI_MTEI } /* ismtei */,
- { 0, 184, 6961, 2, 11, UNI_SUPERANDSUB } /* issuperandsub */,
- { 0, 10048, 7930, 3, 2, UNI_NV__14 } /* nv=14 */,
- { 1, 9270, 868, 3, 27, UNI_PHONETICEXTSUP } /* inphoneticextensionssupplement */,
- { 0, 184, 5214, 2, 6, UNI_KANGXI } /* iskangxi */,
- { 0, 9277, 8187, 3, 4, UNI_SC__HIRA } /* sc=hira */,
- { 0, 184, 133, 2, 4, UNI_M } /* ismark */,
- { 3, 7188, 0, 10, 0, UNI_KHAR } /* kharoshthi */,
- { 0, 2280, 8549, 4, 5, UNI_OLCK } /* isolchiki */,
- { 1, 184, 8131, 2, 4, UNI_DUPL } /* isdupl */,
- { 0, 9444, 7806, 4, 1, UNI_AGE__6 } /* age=6 */,
- { 0, 1417, 9186, 25, 4, UNI_CCC__31 } /* canonicalcombiningclass=ccc31 */,
- { 0, 1878, 0, 19, 0, UNI_CJKCOMPATIDEOGRAPHS } /* cjkcompatideographs */,
- { 2, 1417, 6642, 24, 11, UNI_CCC__DB } /* canonicalcombiningclass=doublebelow */,
- { 0, 4916, 8292, 3, 3, UNI_TAGB } /* istagb */,
- { 5, 10027, 6162, 3, 7, UNI_JG__SEMKATH } /* jg=semkath */,
- { 6, 184, 2061, 2, 4, UNI_MODI } /* ismodi */,
- { 4, 2784, 7497, 4, 7, UNI_ARABICPFA } /* inarabicpfa */,
- { 0, 8780, 5778, 6, 6, UNI_IPAEXT } /* block=ipaext */,
- { 1, 3836, 4149, 18, 3, UNI_SARB } /* scriptextensions=sarb */,
- { 1, 10027, 4225, 3, 16, UNI_JG__MANICHAEANTWENTY } /* jg=manichaeantwenty */,
- { 1, 21, 5242, 2, 14, UNI_LATINEXTC } /* inlatinextendedc */,
- { 1, 5986, 7787, 13, 8, UNI_NV__3_SLASH_2 } /* numericvalue=1.50e+00 */,
- { 2, 184, 7567, 2, 9, UNI_SIND } /* iskhudawadi */,
- { 21, 184, 3169, 2, 11, UNI_ETHIOPICSUP } /* isethiopicsup */,
- { 1, 2533, 982, 5, 24, UNI_ALPHABETICPF } /* inalphabeticpresentationforms */,
- { 2, 9310, 0, 5, 0, UNI_OGAM } /* ogham */,
- { 10, 5986, 9368, 13, 4, UNI_NV__1_SLASH_20 } /* numericvalue=1/20 */,
- { 1, 7088, 3349, 10, 18, UNI_BC__B } /* bidiclass=paragraphseparator */,
- { 5, 10048, 9392, 3, 4, UNI_NV__11_SLASH_2 } /* nv=11/2 */,
- { 5, 10024, 27, 3, 2, UNI_LOWERCASELETTER } /* gc=ll */,
- { 8, 9488, 749, 4, 16, UNI_ENCLOSEDALPHANUM } /* blk=enclosedalphanum */,
- { 0, 9071, 3, 4, 1, -UNI_XPOSIXXDIGIT } /* hex=f */,
- { 0, 9997, 0, 3, 0, UNI_bc_values_index } /* bc= */,
- { 0, 5564, 1, 14, 1, -UNI_QMARK } /* quotationmark=n */,
- { 0, 4113, 952, 3, 27, UNI_VSSUP } /* invariationselectorssupplement */,
- { 7, 382, 0, 4, 0, UNI_EGYP } /* egyp */,
- { 2, 7088, 5829, 10, 3, UNI_BC__RLO } /* bidiclass=rlo */,
- { 1, 9488, 183, 4, 34, UNI_MISCPICTOGRAPHS } /* blk=miscellaneoussymbolsandpictographs */,
- { 0, 8912, 0, 6, 0, UNI_KHOJ } /* khojki */,
- { 1, 9804, 0, 4, 0, UNI_TALE } /* tale */,
- { 0, 8688, 1007, 3, 16, UNI_ANCIENTGREEKMUSIC } /* isancientgreekmusic */,
- { 6, 8575, 0, 7, 0, UNI_patsyn_values_index } /* patsyn= */,
- { 2, 9768, 6385, 4, 12, UNI_GONM } /* scx=masaramgondi */,
- { 20, 3385, 36, 18, 1, UNI_RI } /* regionalindicator=t */,
- { 14, 21, 4129, 2, 6, UNI_LATIN1 } /* inlatin1 */,
- { 7, 8780, 446, 6, 32, UNI_IDEOGRAPHICSYMBOLS } /* block=ideographicsymbolsandpunctuation */,
- { 1, 8589, 7648, 7, 9, UNI_ITAL } /* script=olditalic */,
- { 4, 5791, 10072, 13, 3, UNI_JG__TAH } /* joininggroup=tah */,
- { 9, 1188, 4929, 3, 14, UNI_TAMILSUP } /* intamilsupplement */,
- { 0, 9488, 8337, 4, 7, UNI_INAVESTAN } /* blk=avestan */,
- { 0, 10033, 8449, 3, 6, UNI_LB__HY } /* lb=hyphen */,
- { 0, 10333, 2529, 3, 4, UNI_STERM } /* issterm */,
- { 11, 9508, 6719, 4, 11, UNI_CCC__8 } /* ccc=kanavoicing */,
- { 1, 3836, 9315, 17, 5, UNI_ORYA } /* scriptextensions=oriya */,
- { 4, 1287, 0, 2, 0, UNI_UPPERCASELETTER } /* lu */,
- { 4, 1417, 7859, 24, 3, UNI_WB__EB } /* canonicalcombiningclass=200 */,
- { 10, 184, 478, 2, 31, UNI_MATHALPHANUM } /* ismathematicalalphanumericsymbols */,
- { 18, 10033, 202, 3, 2, UNI_LB__SA } /* lb=sa */,
- { 0, 1417, 9472, 24, 4, UNI_WB__EB } /* canonicalcombiningclass=atbl */,
- { 0, 10296, 1823, 7, 5, UNI_POSIXLOWER } /* isposixlower */,
- { 1, 1417, 9141, 25, 4, UNI_CCC__22 } /* canonicalcombiningclass=ccc22 */,
- { 1, 10288, 10308, 8, 5, UNI_XPOSIXPRINT } /* isxposixprint */,
- { 0, 113, 0, 25, 0, UNI_DIACRITICALS } /* combiningdiacriticalmarks */,
- { 2, 7218, 42, 10, 2, UNI_LB__CJ } /* linebreak=cj */,
- { 20, 2287, 0, 7, 0, UNI_SINH } /* sinhala */,
- { 6, 9768, 9588, 4, 4, UNI_HMNG } /* scx=hmng */,
- { 4, 2280, 6852, 3, 10, UNI_LO } /* isotherletter */,
- { 0, 6205, 0, 12, 0, UNI_ideo_values_index } /* ideographic= */,
- { 8, 8780, 7139, 7, 9, UNI_COMPATJAMO } /* block=compatjamo */,
- { 0, 9488, 779, 4, 30, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* blk=symbolsandpictographsextendeda */,
- { 0, 10027, 4177, 3, 16, UNI_JG__MANICHAEANDALETH } /* jg=manichaeandaleth */,
- { 3, 10024, 1910, 3, 2, UNI_CN } /* gc=cn */,
- { 0, 1188, 3458, 3, 17, UNI_TAIXUANJING } /* intaixuanjingsymbols */,
- { 0, 9640, 26, 4, 1, UNI_LOE } /* loe=y */,
- { 2, 8688, 1371, 4, 22, UNI_ARABICPFA } /* isarabicpresentationformsa */,
- { 0, 8589, 7660, 7, 4, UNI_SC__PERM } /* script=perm */,
- { 3, 8852, 9836, 6, 4, UNI_CWKCF } /* cwkcf=true */,
- { 0, 1845, 0, 5, 0, UNI_TITLE } /* title */,
- { 70, 5986, 7875, 13, 8, UNI_NV__1_SLASH_32 } /* numericvalue=3.13e-02 */,
- { 1, 1812, 0, 21, 0, UNI_CWL } /* changeswhenlowercased */,
- { 13, 9548, 0, 4, 0, UNI_DSRT } /* dsrt */,
- { 0, 1269, 26, 25, 1, UNI_COMPEX } /* fullcompositionexclusion=y */,
- { 1, 8780, 8227, 6, 8, UNI_KANAEXTA } /* block=kanaexta */,
- { 0, 3836, 9245, 17, 5, UNI_DOGR } /* scriptextensions=dogra */,
- { 0, 5804, 0, 13, 0, UNI_KANAEXTA } /* kanaextendeda */,
- { 4, 1966, 1244, 22, 9, UNI_INSC__CONSONANT } /* indicsyllabiccategory=consonant */,
- { 1, 3836, 1218, 17, 8, UNI_KANA } /* scriptextensions=katakana */,
- { 0, 9277, 9684, 3, 4, UNI_NEWA } /* sc=newa */,
- { 5, 7155, 6194, 3, 5, UNI_HEBR } /* ishebrew */,
- { 0, 3836, 9896, 17, 4, UNI_ZYYY } /* scriptextensions=zyyy */,
- { 28, 4791, 2338, 10, 11, UNI_MERO } /* inmeroitichieroglyphs */,
- { 1, 6609, 3, 11, 1, -UNI_DEP } /* deprecated=f */,
- { 0, 184, 3223, 2, 18, UNI_INPUNCTUATION } /* isgeneralpunctuation */,
- { 0, 8780, 4973, 6, 15, UNI_VEDICEXT } /* block=vedicextensions */,
- { 8, 9488, 7069, 5, 9, UNI_ASCII } /* blk=basiclatin */,
- { 1, 6505, 0, 8, 0, UNI_PHAISTOS } /* phaistos */,
- { 0, 8780, 7458, 6, 10, UNI_YIRADICALS } /* block=yiradicals */,
- { 4, 7621, 0, 9, 0, UNI_NBAT } /* nabataean */,
- { 1, 5986, 8732, 13, 4, UNI_NV__5000 } /* numericvalue=5000 */,
- { 1, 8589, 9476, 7, 4, UNI_AVST } /* script=avst */,
- { 0, 8966, 10135, 6, 3, UNI_NFDQC__Y } /* nfdqc=yes */,
- { 2, 8780, 3937, 6, 11, UNI_BOPOMOFOEXT } /* block=bopomofoext */,
- { 2, 21, 1007, 3, 16, UNI_ANCIENTGREEKMUSIC } /* inancientgreekmusic */,
- { 2, 10048, 9910, 3, 3, UNI_NV__1_SLASH_9 } /* nv=1/9 */,
- { 0, 1417, 8831, 24, 3, UNI_CCC__132 } /* canonicalcombiningclass=132 */,
- { 1, 10033, 395, 3, 2, UNI_LB__GL } /* lb=gl */,
- { 3, 184, 8906, 2, 6, UNI_KANBUN } /* iskanbun */,
- { 0, 8589, 865, 10, 1, UNI_SHAW } /* script=shaw */,
- { 5, 9277, 9008, 3, 6, UNI_SC__THAA } /* sc=thaana */,
- { 2, 10048, 8750, 3, 2, UNI_NV__80 } /* nv=80 */,
- { 0, 1631, 0, 18, 0, UNI_GEOMETRICSHAPESEXT } /* geometricshapesext */,
- { 33, 10327, 0, 4, 0, UNI_PE } /* ispe */,
- { 1, 8780, 5960, 6, 13, UNI_MISCTECHNICAL } /* block=misctechnical */,
- { 2, 184, 867, 2, 28, UNI_PHONETICEXTSUP } /* isphoneticextensionssupplement */,
- { 0, 9488, 7630, 4, 9, UNI_INNEWTAILUE } /* blk=newtailue */,
- { 0, 9277, 8315, 3, 8, UNI_UGAR } /* sc=ugaritic */,
- { 1, 8884, 0, 4, 0, UNI_ext_values_index } /* ext= */,
- { 0, 184, 720, 3, 8, UNI_XSUX } /* iscuneiform */,
- { 0, 9275, 2844, 5, 10, UNI_INSC__TONELETTER } /* insc=toneletter */,
- { 0, 5791, 5420, 13, 4, UNI_JG__TETH } /* joininggroup=teth */,
- { 1, 21, 5200, 2, 14, UNI_KANASUP } /* inkanasupplement */,
- { 3, 186, 0, 2, 0, UNI_CE } /* ce */,
- { 4, 9250, 26, 5, 1, UNI_EMOD } /* emod=y */,
- { 1, 9235, 10135, 5, 3, UNI_CWCM } /* cwcm=yes */,
- { 1, 2061, 0, 14, 0, UNI_LM } /* modifierletter */,
- { 4, 9768, 9700, 4, 4, UNI_OLCK } /* scx=olck */,
- { 0, 3382, 1, 3, 1, -UNI_CE } /* ce=n */,
- { 20, 9270, 8583, 3, 6, UNI_INPHAGSPA } /* inphagspa */,
- { 1, 7218, 6587, 10, 11, UNI_LB__BB } /* linebreak=breakbefore */,
- { 0, 9768, 8491, 4, 7, UNI_MARC } /* scx=marchen */,
- { 0, 9444, 9856, 4, 4, UNI_AGE__13 } /* age=v130 */,
- { 0, 7418, 3, 10, 1, -UNI_XPOSIXUPPER } /* uppercase=f */,
- { 1, 7651, 0, 4, 0, UNI_ITAL } /* ital */,
- { 3, 184, 43, 3, 8, UNI_CJKCOMPAT } /* iscjkcompat */,
- { 1, 3836, 9756, 17, 4, UNI_RUNR } /* scriptextensions=runr */,
- { 2, 9277, 8924, 3, 6, UNI_LEPC } /* sc=lepcha */,
- { 0, 9768, 3785, 4, 4, UNI_MANI } /* scx=mani */,
- { 0, 184, 510, 3, 19, UNI_CJK } /* iscjkunifiedideographs */,
- { 1, 10027, 5172, 3, 14, UNI_JG__HAMZAONHEHGOAL } /* jg=hamzaonhehgoal */,
- { 4, 9492, 0, 4, 0, UNI_bpt_values_index } /* bpt= */,
- { 13, 4791, 6411, 4, 10, UNI_INMENDEKIKAKUI } /* inmendekikakui */,
- { 3, 9768, 6792, 5, 3, UNI_SAMR } /* scx=samr */,
- { 2, 5791, 9648, 13, 4, UNI_JG__MEEM } /* joininggroup=meem */,
- { 0, 9768, 9804, 4, 4, UNI_TALE } /* scx=tale */,
- { 1, 9488, 1465, 4, 24, UNI_DIACRITICALSFORSYMBOLS } /* blk=combiningmarksforsymbols */,
- { 8, 10048, 10138, 3, 2, UNI_NV__38 } /* nv=38 */,
- { 0, 3379, 10183, 5, 4, UNI_XPOSIXSPACE } /* spaceperl */,
- { 5, 2224, 924, 3, 27, UNI_SUPPUAB } /* insupplementaryprivateuseareab */,
- { 1, 8589, 8618, 8, 3, UNI_SOYO } /* script=soyo */,
- { 8, 4838, 26, 15, 1, UNI_NFKCQC__Y } /* nfkcquickcheck=y */,
- { 10, 3836, 2913, 18, 3, UNI_SUND } /* scriptextensions=sund */,
- { 1, 1417, 7814, 24, 1, UNI_CCC__7 } /* canonicalcombiningclass=7 */,
- { 34, 1417, 78, 24, 2, UNI_CCC__AR } /* canonicalcombiningclass=ar */,
- { 0, 10333, 3895, 3, 3, UNI_SGNW } /* issgnw */,
- { 1, 184, 7139, 3, 9, UNI_COMPATJAMO } /* iscompatjamo */,
- { 6, 1186, 0, 2, 0, UNI_PO } /* po */,
- { 40, 10048, 9108, 3, 2, UNI_NV__15 } /* nv=15 */,
- { 0, 9488, 1906, 4, 16, UNI_INDICNUMBERFORMS } /* blk=indicnumberforms */,
- { 1, 9351, 9255, 4, 5, -UNI_IDS } /* ids=false */,
- { 32, 3421, 0, 4, 0, UNI_RUMI } /* rumi */,
- { 21, 9576, 0, 4, 0, UNI_GURU } /* guru */,
- { 10, 10048, 7899, 3, 8, UNI_NV__7_SLASH_2 } /* nv=3.50e+00 */,
- { 4, 184, 7594, 2, 9, UNI_LATINEXTD } /* islatinextd */,
- { 1, 5986, 10144, 13, 2, UNI_NV__45 } /* numericvalue=45 */,
- { 58, 9768, 8912, 4, 4, UNI_KHOJ } /* scx=khoj */,
- { 0, 3836, 9310, 17, 5, UNI_OGAM } /* scriptextensions=ogham */,
- { 0, 9351, 36, 4, 1, UNI_IDS } /* ids=t */,
- { 16, 8864, 3, 6, 1, -UNI_EMOJI } /* emoji=f */,
- { 1, 1417, 9181, 25, 4, UNI_CCC__30 } /* canonicalcombiningclass=ccc30 */,
- { 0, 184, 8407, 2, 7, UNI_DSRT } /* isdeseret */,
- { 0, 9444, 7814, 4, 1, UNI_AGE__7 } /* age=7 */,
- { 14, 7088, 37, 10, 2, UNI_BC__EN } /* bidiclass=en */,
- { 16, 184, 3115, 2, 4, UNI_DEVA } /* isdeva */,
- { 0, 8589, 3785, 7, 10, UNI_SC__MANI } /* script=manichaean */,
- { 8, 10296, 5039, 7, 6, UNI_POSIXXDIGIT } /* isposixxdigit */,
- { 2, 9250, 0, 10, 0, -UNI_EMOD } /* emod=false */,
- { 2, 9277, 2429, 3, 20, UNI_PHLI } /* sc=inscriptionalpahlavi */,
- { 6, 1417, 7874, 24, 2, UNI_CCC__23 } /* canonicalcombiningclass=23 */,
- { 0, 9488, 1700, 4, 23, UNI_SHORTHANDFORMATCONTROLS } /* blk=shorthandformatcontrols */,
- { 32, 9277, 8123, 3, 4, UNI_SC__BUGI } /* sc=bugi */,
- { 10, 4033, 9503, 16, 2, UNI_MC } /* generalcategory=mc */,
- { 0, 9872, 0, 4, 0, UNI_XPEO } /* xpeo */,
- { 20, 9540, 9836, 4, 4, UNI_DIA } /* dia=true */,
- { 0, 2912, 0, 12, 0, UNI_SUNDANESESUP } /* sundanesesup */,
- { 0, 7218, 5564, 10, 9, UNI_LB__QU } /* linebreak=quotation */,
- { 6, 9768, 7168, 4, 10, UNI_DIAK } /* scx=divesakuru */,
- { 0, 1465, 0, 24, 0, UNI_DIACRITICALSFORSYMBOLS } /* combiningmarksforsymbols */,
- { 16, 3836, 8936, 17, 6, UNI_LYCI } /* scriptextensions=lycian */,
- { 8, 8589, 2409, 7, 4, UNI_SC__GLAG } /* script=glag */,
- { 32, 9768, 9604, 4, 4, UNI_KHMR } /* scx=khmr */,
- { 17, 8780, 3768, 6, 17, UNI_LETTERLIKESYMBOLS } /* block=letterlikesymbols */,
- { 2, 8694, 0, 7, 0, UNI_wspace_values_index } /* wspace= */,
- { 7, 8978, 10135, 6, 3, UNI__PERL_PATWS } /* patws=yes */,
- { 5, 9275, 2369, 5, 20, UNI_INSC__CONSONANTPLACEHOLDER } /* insc=consonantplaceholder */,
- { 1, 9768, 8291, 4, 8, UNI_TAGB } /* scx=tagbanwa */,
- { 3, 3133, 0, 17, 0, UNI_EBASE } /* emojimodifierbase */,
- { 0, 7218, 83, 10, 2, UNI_LB__CM } /* linebreak=cm */,
- { 0, 9277, 9245, 3, 4, UNI_SC__DOGR } /* sc=dogr */,
- { 0, 8780, 6193, 6, 6, UNI_INHEBREW } /* block=hebrew */,
- { 1, 10288, 9877, 3, 3, UNI_XSUX } /* isxsux */,
- { 0, 1417, 8793, 25, 5, UNI_CCC__103 } /* canonicalcombiningclass=ccc103 */,
- { 16, 184, 3768, 2, 17, UNI_LETTERLIKESYMBOLS } /* isletterlikesymbols */,
- { 0, 8780, 7675, 6, 9, UNI_PALM } /* block=palmyrene */,
- { 0, 8780, 8582, 6, 7, UNI_INPHAGSPA } /* block=phagspa */,
- { 0, 3115, 0, 4, 0, UNI_DEVA } /* deva */,
- { 0, 1552, 4943, 9, 15, UNI_TITLE } /* category=titlecaseletter */,
- { 1, 8780, 8428, 6, 7, UNI_INGRANTHA } /* block=grantha */,
- { 0, 8435, 3, 7, 1, -UNI_GRBASE } /* grbase=f */,
- { 2, 9768, 9480, 4, 4, UNI_BATK } /* scx=batk */,
- { 0, 8589, 9820, 7, 4, UNI_TFNG } /* script=tfng */,
- { 4, 10132, 5012, 3, 2, UNI_WB__SQ } /* wb=sq */,
- { 0, 10027, 10045, 3, 3, UNI_JG__MIM } /* jg=mim */,
- { 12, 7218, 34, 10, 2, UNI_LB__EX } /* linebreak=ex */,
- { 0, 1790, 0, 22, 0, UNI_cwcm_values_index } /* changeswhencasemapped= */,
- { 8, 4097, 0, 16, 0, UNI_HIGHPUSURROGATES } /* highpusurrogates */,
- { 4, 1417, 3572, 24, 9, UNI_CCC__BL } /* canonicalcombiningclass=belowleft */,
- { 2, 6609, 9836, 11, 4, UNI_DEP } /* deprecated=true */,
- { 0, 3097, 4017, 18, 3, UNI_DT__FIN } /* decompositiontype=fin */,
- { 0, 8589, 9572, 7, 4, UNI_SC__GUJR } /* script=gujr */,
- { 2, 1033, 0, 11, 0, UNI_ENCLOSEDCJK } /* enclosedcjk */,
- { 2, 1591, 3684, 3, 16, UNI_ETHIOPICEXTA } /* inethiopicextendeda */,
- { 2, 1790, 9836, 22, 4, UNI_CWCM } /* changeswhencasemapped=true */,
- { 1, 1417, 9146, 25, 4, UNI_CCC__23 } /* canonicalcombiningclass=ccc23 */,
- { 0, 9345, 36, 5, 1, UNI_XIDC } /* xidc=t */,
- { 2, 9277, 9584, 3, 4, UNI_HLUW } /* sc=hluw */,
- { 32, 8858, 36, 6, 1, UNI_ECOMP } /* ecomp=t */,
- { 0, 184, 5739, 2, 12, UNI_GRBASE } /* isgraphemebase */,
- { 5, 184, 4161, 2, 16, UNI_LINEARBSYLLABARY } /* islinearbsyllabary */,
- { 0, 184, 17, 3, 1, UNI_CO } /* isco */,
- { 0, 1966, 4417, 22, 16, UNI_INSC__VOWELINDEPENDENT } /* indicsyllabiccategory=vowelindependent */,
- { 0, 3836, 5550, 17, 14, UNI_PHLP } /* scriptextensions=psalterpahlavi */,
- { 1, 1025, 0, 2, 0, UNI_NO } /* no */,
- { 0, 5986, 7883, 13, 8, UNI_NV__1_SLASH_320 } /* numericvalue=3.13e-03 */,
- { 1, 5791, 9456, 13, 4, UNI_JG__ALEF } /* joininggroup=alef */,
- { 1, 8589, 7188, 7, 4, UNI_KHAR } /* script=khar */,
- { 0, 3836, 8888, 17, 4, UNI_HATR } /* scriptextensions=hatr */,
- { 0, 9640, 10135, 4, 3, UNI_LOE } /* loe=yes */,
- { 11, 7228, 9255, 10, 5, -UNI_XPOSIXLOWER } /* lowercase=false */,
- { 1, 8512, 9295, 7, 5, UNI_NFCQC__M } /* nfkcqc=maybe */,
- { 33, 9508, 7859, 4, 2, UNI_CCC__20 } /* ccc=20 */,
- { 8, 1856, 26, 22, 1, UNI_CWU } /* changeswhenuppercased=y */,
- { 1, 8780, 9085, 6, 5, UNI_INBATAK } /* block=batak */,
- { 9, 9536, 1025, 4, 2, -UNI_DEP } /* dep=no */,
- { 17, 8688, 4435, 4, 13, UNI_ARABICEXTA } /* isarabicextendeda */,
- { 0, 8780, 7630, 6, 9, UNI_INNEWTAILUE } /* block=newtailue */,
- { 1, 10024, 4305, 3, 16, UNI_PO } /* gc=otherpunctuation */,
- { 0, 8997, 1025, 5, 2, -UNI_TERM } /* term=no */,
- { 65, 6554, 10135, 11, 3, UNI_IDC } /* idcontinue=yes */,
- { 32, 9508, 9211, 5, 4, UNI_CCC__36 } /* ccc=ccc36 */,
- { 10, 10033, 6697, 3, 11, UNI_LB__IN } /* lb=inseperable */,
- { 1, 8936, 0, 4, 0, UNI_LYCI } /* lyci */,
- { 2, 1269, 0, 24, 0, UNI_COMPEX } /* fullcompositionexclusion */,
- { 0, 8589, 8291, 7, 4, UNI_SC__TAGB } /* script=tagb */,
- { 1, 8780, 4161, 6, 16, UNI_LINEARBSYLLABARY } /* block=linearbsyllabary */,
- { 1, 184, 9740, 2, 4, UNI_QAAI } /* isqaai */,
- { 2, 8780, 8219, 6, 8, UNI_INJAVANESE } /* block=javanese */,
- { 0, 8780, 2224, 6, 21, UNI_ININSCRIPTIONALPARTHIAN } /* block=inscriptionalparthian */,
- { 3, 2874, 0, 19, 0, UNI_OTTOMANSIYAQNUMBERS } /* ottomansiyaqnumbers */,
- { 6, 3259, 1, 18, 1, -UNI_IDSB } /* idsbinaryoperator=n */,
- { 8, 2569, 3504, 20, 7, UNI_VO__R } /* verticalorientation=rotated */,
- { 34, 9768, 7188, 4, 10, UNI_KHAR } /* scx=kharoshthi */,
- { 16, 184, 1025, 2, 2, UNI_NO } /* isno */,
- { 1, 10024, 133, 3, 4, UNI_M } /* gc=mark */,
- { 2, 10024, 45, 3, 2, UNI_CO } /* gc=co */,
- { 1, 9488, 3768, 4, 17, UNI_LETTERLIKESYMBOLS } /* blk=letterlikesymbols */,
- { 81, 2224, 4338, 3, 15, UNI_SUPMATHOPERATORS } /* insupmathoperators */,
- { 12, 2224, 317, 3, 32, UNI_SUPMATHOPERATORS } /* insupplementalmathematicaloperators */,
- { 8, 7088, 4493, 10, 15, UNI_BC__CS } /* bidiclass=commonseparator */,
- { 1, 10048, 9380, 3, 3, UNI_NV__1_SLASH_8 } /* nv=1/8 */,
- { 1, 184, 1791, 3, 20, UNI_CWCM } /* ischangeswhencasemapped */,
- { 2, 1834, 0, 21, 0, UNI_CWT } /* changeswhentitlecased */,
- { 1, 9277, 7278, 3, 10, UNI_XPEO } /* sc=oldpersian */,
- { 0, 3097, 7, 18, 3, UNI_DT__CAN } /* decompositiontype=can */,
- { 20, 184, 7358, 2, 10, UNI_SAUR } /* issaurashtra */,
- { 0, 5116, 10135, 14, 3, UNI_EMOD } /* emojimodifier=yes */,
- { 3, 10296, 3, 3, 1, UNI_PF } /* ispf */,
- { 0, 10132, 18, 3, 2, UNI_RI } /* wb=ri */,
- { 7, 8512, 0, 7, 0, UNI_nfkcqc_values_index } /* nfkcqc= */,
- { 16, 9488, 2912, 4, 9, UNI_INSUNDANESE } /* blk=sundanese */,
- { 4, 9768, 8187, 4, 8, UNI_HIRA } /* scx=hiragana */,
- { 2, 9608, 0, 4, 0, UNI_KITS } /* kits */,
- { 5, 9768, 5550, 4, 14, UNI_PHLP } /* scx=psalterpahlavi */,
- { 1, 1552, 4017, 9, 16, UNI_PF } /* category=finalpunctuation */,
- { 0, 9512, 0, 4, 0, UNI_CHRS } /* chrs */,
- { 1, 7325, 10102, 3, 3, UNI_IN__5_DOT_2 } /* in=v52 */,
- { 32, 9277, 8115, 3, 8, UNI_BASS } /* sc=bassavah */,
- { 0, 7218, 8701, 10, 7, UNI_LB__ZW } /* linebreak=zwspace */,
- { 4, 3836, 7567, 17, 9, UNI_SIND } /* scriptextensions=khudawadi */,
- { 4, 10048, 7814, 3, 1, UNI_NV__7 } /* nv=7 */,
- { 0, 9768, 8942, 4, 6, UNI_LYDI } /* scx=lydian */,
- { 2, 8930, 0, 6, 0, UNI_lower_values_index } /* lower= */,
- { 5, 9768, 2913, 5, 8, UNI_SUND } /* scx=sundanese */,
- { 0, 184, 2950, 2, 19, UNI_SUPARROWSB } /* issupplementalarrowsb */,
- { 0, 3836, 9008, 17, 4, UNI_THAA } /* scriptextensions=thaa */,
- { 0, 10048, 7971, 3, 8, UNI_NV__7_SLASH_12 } /* nv=5.83e-01 */,
- { 12, 8589, 8414, 7, 4, UNI_ELBA } /* script=elba */,
- { 0, 7738, 26, 9, 1, UNI_XIDS } /* xidstart=y */,
- { 1, 8400, 10135, 7, 3, UNI_COMPEX } /* compex=yes */,
- { 0, 9596, 6741, 4, 11, UNI_GCB__L } /* hst=leadingjamo */,
- { 1, 8780, 4401, 6, 16, UNI_TANGUTSUP } /* block=tangutsupplement */,
- { 1, 8589, 2913, 8, 3, UNI_SUND } /* script=sund */,
- { 0, 10182, 6554, 6, 6, UNI__PERL_IDCONT } /* _perl_idcont */,
- { 1, 9488, 9828, 4, 4, UNI_INTHAI } /* blk=thai */,
- { 1, 8589, 9504, 7, 4, UNI_CANS } /* script=cans */,
- { 2, 8589, 9496, 7, 4, UNI_SC__BUHD } /* script=buhd */,
- { 1, 8780, 4145, 6, 16, UNI_LINEARBIDEOGRAMS } /* block=linearbideograms */,
- { 0, 8780, 8477, 6, 7, UNI_INMAKASAR } /* block=makasar */,
- { 0, 1552, 1587, 9, 1, UNI_Z } /* category=z */,
- { 1, 10048, 10140, 3, 2, UNI_NV__39 } /* nv=39 */,
- { 2, 9588, 0, 4, 0, UNI_HMNG } /* hmng */,
- { 0, 2760, 6763, 19, 11, UNI_LB__H3 } /* hangulsyllabletype=lvtsyllable */,
- { 3, 8978, 1, 6, 1, -UNI__PERL_PATWS } /* patws=n */,
- { 5, 5791, 9355, 13, 5, UNI_JG__ZHAIN } /* joininggroup=zhain */,
- { 2, 8589, 2485, 7, 4, UNI_SC__MONG } /* script=mong */,
- { 0, 9556, 24, 4, 1, UNI_GCB__L } /* gcb=l */,
- { 2, 9444, 10087, 4, 3, UNI_AGE__3_DOT_2 } /* age=v32 */,
- { 1, 1417, 7806, 24, 1, UNI_CCC__6 } /* canonicalcombiningclass=6 */,
- { 0, 5986, 8750, 13, 4, UNI_NV__8000 } /* numericvalue=8000 */,
- { 3, 9488, 1631, 4, 15, UNI_GEOMETRICSHAPES } /* blk=geometricshapes */,
- { 5, 8780, 2409, 6, 20, UNI_GLAGOLITICSUP } /* block=glagoliticsupplement */,
- { 1, 8780, 7358, 6, 10, UNI_INSAURASHTRA } /* block=saurashtra */,
- { 3, 4791, 4290, 3, 15, UNI_MYANMAREXTB } /* inmyanmarextendedb */,
- { 16, 7076, 8116, 3, 7, UNI_INBASSAVAH } /* inbassavah */,
- { 1, 9528, 9836, 4, 4, UNI_CWU } /* cwu=true */,
- { 5, 4033, 5497, 16, 11, UNI_MC } /* generalcategory=spacingmark */,
- { 0, 5986, 10142, 13, 2, UNI_NV__44 } /* numericvalue=44 */,
- { 4, 8780, 0, 12, 0, UNI_INCARIAN } /* block=carian */,
- { 2, 9277, 8582, 3, 7, UNI_SC__PHAG } /* sc=phagspa */,
- { 0, 9277, 9516, 3, 4, UNI_SC__CPRT } /* sc=cprt */,
- { 5, 9444, 7781, 4, 1, UNI_AGE__4 } /* age=4 */,
- { 0, 4113, 6013, 3, 12, UNI_VERTICALFORMS } /* inverticalforms */,
- { 0, 5791, 3, 15, 1, UNI_JG__KAF } /* joininggroup=kaf */,
- { 12, 10006, 1025, 3, 2, -UNI_DI } /* di=no */,
- { 34, 1505, 5755, 5, 10, UNI_GREEKEXT } /* ingreekextended */,
- { 2, 8589, 7675, 7, 4, UNI_PALM } /* script=palm */,
- { 1, 1417, 7858, 24, 2, UNI_CCC__22 } /* canonicalcombiningclass=22 */,
- { 17, 1417, 4912, 24, 2, UNI_CCC__0 } /* canonicalcombiningclass=nr */,
- { 0, 7155, 8443, 3, 6, UNI_HANO } /* ishanunoo */,
- { 2, 6061, 1025, 12, 2, -UNI_BIDIC } /* bidicontrol=no */,
- { 1, 7438, 72, 10, 2, UNI_WB__LE } /* wordbreak=le */,
- { 0, 8997, 0, 5, 0, UNI_term_values_index } /* term= */,
- { 0, 10290, 5718, 6, 5, UNI_XPOSIXALNUM } /* xposixalnum */,
- { 7, 10048, 9424, 3, 4, UNI_NV__3_SLASH_64 } /* nv=3/64 */,
- { 0, 478, 0, 31, 0, UNI_MATHALPHANUM } /* mathematicalalphanumericsymbols */,
- { 0, 1979, 7, 10, 1, UNI_CASEDLETTER } /* category=lc */,
- { 0, 1114, 9836, 26, 4, UNI_CWKCF } /* changeswhennfkccasefolded=true */,
- { 1, 21, 1677, 2, 14, UNI_LATINEXTA } /* inlatinextendeda */,
- { 2, 9997, 3349, 3, 18, UNI_BC__B } /* bc=paragraphseparator */,
- { 0, 42, 0, 3, 0, UNI_CJK } /* cjk */,
- { 15, 10333, 1176, 3, 3, UNI_SORA } /* issora */,
- { 10, 9488, 4868, 4, 15, UNI_NARB } /* blk=oldnortharabian */,
- { 15, 9488, 2855, 4, 9, UNI_INMONGOLIAN } /* blk=mongolian */,
- { 0, 2203, 0, 4, 0, UNI_HAN } /* hani */,
- { 0, 4116, 447, 3, 17, UNI_IDEOGRAPHICSYMBOLS } /* isideographicsymbols */,
- { 5, 10012, 865, 3, 1, UNI_EA__W } /* ea=w */,
- { 3, 8688, 29, 4, 4, UNI_ARAB } /* isarabic */,
- { 1, 8589, 4273, 7, 7, UNI_SC__MYMR } /* script=myanmar */,
- { 12, 7218, 6697, 10, 11, UNI_LB__IN } /* linebreak=inseperable */,
- { 1, 6420, 9311, 3, 4, UNI_INOGHAM } /* inogham */,
- { 5, 7228, 26, 10, 1, UNI_XPOSIXLOWER } /* lowercase=y */,
- { 0, 7218, 751, 10, 2, UNI_LB__CL } /* linebreak=cl */,
- { 8, 9508, 1179, 4, 2, UNI_CCC__BL } /* ccc=bl */,
- { 19, 2760, 5973, 19, 13, UNI_HST__NA } /* hangulsyllabletype=notapplicable */,
- { 8, 8589, 2140, 7, 8, UNI_SC__CYRL } /* script=cyrillic */,
- { 0, 5739, 1025, 13, 2, -UNI_GRBASE } /* graphemebase=no */,
- { 0, 3133, 36, 18, 1, UNI_EBASE } /* emojimodifierbase=t */,
- { 0, 184, 1631, 2, 23, UNI_GEOMETRICSHAPESEXT } /* isgeometricshapesextended */,
- { 1, 8589, 4448, 7, 4, UNI_BAMU } /* script=bamu */,
- { 4, 9488, 3043, 4, 18, UNI_HALFMARKS } /* blk=combininghalfmarks */,
- { 2, 1393, 0, 24, 0, UNI_ARABICPFB } /* arabicpresentationformsb */,
- { 0, 9277, 4868, 3, 15, UNI_NARB } /* sc=oldnortharabian */,
- { 1, 10290, 62, 6, 5, UNI_XPOSIXGRAPH } /* xposixgraph */,
- { 0, 10027, 5420, 3, 4, UNI_JG__TETH } /* jg=teth */,
- { 2, 184, 4569, 3, 14, UNI_CURRENCYSYMBOLS } /* iscurrencysymbols */,
- { 2, 10024, 106, 3, 6, UNI_S } /* gc=symbol */,
- { 1, 10048, 8756, 3, 5, UNI_NV__90000 } /* nv=90000 */,
- { 0, 3836, 3751, 17, 17, UNI_KITS } /* scriptextensions=khitansmallscript */,
- { 0, 184, 3080, 3, 17, UNI_COPTICEPACTNUMBERS } /* iscopticepactnumbers */,
- { 6, 8780, 8179, 6, 8, UNI_INGURMUKHI } /* block=gurmukhi */,
- { 3, 3439, 0, 18, 0, UNI_SMALLKANAEXT } /* smallkanaextension */,
- { 6, 1537, 2994, 24, 13, UNI_INPC__BOTTOMANDLEFT } /* indicpositionalcategory=bottomandleft */,
- { 2, 1417, 9919, 24, 3, UNI_CCC__202 } /* canonicalcombiningclass=202 */,
- { 64, 6231, 1467, 4, 22, UNI_DIACRITICALSFORSYMBOLS } /* incombiningmarksforsymbols */,
- { 0, 8780, 1700, 6, 23, UNI_SHORTHANDFORMATCONTROLS } /* block=shorthandformatcontrols */,
- { 0, 21, 3549, 4, 8, UNI_ALCHEMICAL } /* inalchemical */,
- { 7, 21, 5284, 2, 7, UNI_LISUSUP } /* inlisusup */,
- { 1, 2224, 3440, 3, 17, UNI_SMALLKANAEXT } /* insmallkanaextension */,
- { 0, 184, 1, 3, 1, UNI_CN } /* iscn */,
- { 0, 10132, 400, 3, 6, UNI_WB__FO } /* wb=format */,
- { 1, 3836, 8942, 17, 6, UNI_LYDI } /* scriptextensions=lydian */,
- { 3, 5060, 0, 14, 0, UNI_ci_values_index } /* caseignorable= */,
- { 34, 9768, 3598, 4, 17, UNI_AGHB } /* scx=caucasianalbanian */,
- { 1, 8509, 751, 4, 28, UNI_ENCLOSEDALPHANUMSUP } /* inenclosedalphanumericsupplement */,
- { 11, 1822, 0, 2, 0, UNI_NL } /* nl */,
- { 8, 9277, 4703, 3, 15, UNI_ARMI } /* sc=imperialaramaic */,
- { 9, 8780, 5752, 6, 13, UNI_GREEKEXT } /* block=greekextended */,
- { 0, 8589, 8123, 7, 8, UNI_SC__BUGI } /* script=buginese */,
- { 6, 184, 3026, 3, 7, UNI_CHER } /* ischerokee */,
- { 0, 1537, 2549, 24, 12, UNI_INPC__TOPANDBOTTOM } /* indicpositionalcategory=topandbottom */,
- { 2, 9540, 1, 4, 1, -UNI_DIA } /* dia=n */,
- { 0, 7318, 10102, 10, 3, UNI_IN__5_DOT_2 } /* presentin=v52 */,
- { 0, 9508, 9468, 4, 4, UNI_CCC__216 } /* ccc=atar */,
- { 0, 184, 9560, 2, 4, UNI_GONG } /* isgong */,
- { 0, 2161, 0, 20, 0, UNI_EXTPICT } /* extendedpictographic */,
- { 0, 8768, 1025, 6, 2, -UNI_BIDIC } /* bidic=no */,
- { 14, 8780, 3295, 6, 9, UNI_LATINEXTA } /* block=latinexta */,
- { 2, 2280, 2875, 3, 18, UNI_OTTOMANSIYAQNUMBERS } /* isottomansiyaqnumbers */,
- { 3, 10296, 8979, 3, 4, UNI__PERL_PATWS } /* ispatws */,
- { 1, 9508, 7778, 4, 2, UNI_CCC__21 } /* ccc=21 */,
- { 3, 7325, 9397, 3, 3, UNI_IN__2_DOT_1 } /* in=2.1 */,
- { 4, 4868, 0, 15, 0, UNI_NARB } /* oldnortharabian */,
- { 32, 2098, 0, 21, 0, UNI_CJKCOMPATFORMS } /* cjkcompatibilityforms */,
- { 0, 3295, 0, 9, 0, UNI_LATINEXTA } /* latinexta */,
- { 3, 3836, 8123, 17, 8, UNI_BUGI } /* scriptextensions=buginese */,
- { 1, 9488, 3241, 4, 11, UNI_GEORGIANSUP } /* blk=georgiansup */,
- { 8, 1417, 8805, 25, 5, UNI_CCC__118 } /* canonicalcombiningclass=ccc118 */,
- { 2, 9277, 7666, 3, 9, UNI_ORKH } /* sc=oldturkic */,
- { 1, 8774, 10135, 6, 3, UNI_BIDIM } /* bidim=yes */,
- { 5, 8954, 0, 7, 0, -UNI__PERL_NCHAR } /* nchar=n */,
- { 0, 184, 1822, 2, 2, UNI_NL } /* isnl */,
- { 0, 10310, 8301, 4, 6, UNI_INTIFINAGH } /* intifinagh */,
- { 0, 8780, 114, 7, 24, UNI_DIACRITICALS } /* block=combiningdiacriticalmarks */,
- { 0, 1677, 0, 23, 0, UNI_LATINEXTADDITIONAL } /* latinextendedadditional */,
- { 3, 2161, 1, 21, 1, -UNI_EXTPICT } /* extendedpictographic=n */,
- { 2, 1552, 406, 9, 7, UNI_XPOSIXCNTRL } /* category=control */,
- { 11, 7218, 58, 10, 2, UNI_LB__ID } /* linebreak=id */,
- { 16, 4916, 1116, 3, 3, UNI_TANG } /* istang */,
- { 0, 5578, 495, 14, 7, UNI_SB__NU } /* sentencebreak=numeric */,
- { 0, 1417, 8825, 24, 3, UNI_CCC__130 } /* canonicalcombiningclass=130 */,
- { 1, 10288, 5039, 8, 6, UNI_XPOSIXXDIGIT } /* isxposixxdigit */,
- { 1, 9444, 9852, 4, 4, UNI_AGE__12_DOT_1 } /* age=v121 */,
- { 0, 9277, 9448, 3, 4, UNI_AGHB } /* sc=aghb */,
- { 0, 5986, 7827, 13, 8, UNI_NV__1_SLASH_5 } /* numericvalue=2.00e-01 */,
- { 3, 1188, 8653, 3, 6, UNI_INTAIVIET } /* intaiviet */,
- { 4, 2182, 5497, 21, 11, UNI_GCB__SM } /* graphemeclusterbreak=spacingmark */,
- { 1, 8589, 9676, 7, 4, UNI_NARB } /* script=narb */,
- { 2, 4369, 0, 6, 0, UNI_SYRC } /* syriac */,
- { 2, 4305, 0, 16, 0, UNI_PO } /* otherpunctuation */,
- { 0, 9524, 1025, 4, 2, -UNI_CWT } /* cwt=no */,
- { 2, 1966, 728, 22, 6, UNI_INSC__NUMBER } /* indicsyllabiccategory=number */,
- { 12, 2287, 0, 4, 0, UNI_SINH } /* sinh */,
- { 0, 10009, 5012, 3, 6, UNI_DT__SQR } /* dt=square */,
- { 0, 9488, 8421, 4, 7, UNI_INELYMAIC } /* blk=elymaic */,
- { 1, 9277, 7657, 3, 9, UNI_SC__PERM } /* sc=oldpermic */,
- { 2, 9340, 0, 5, 0, UNI_VSSUP } /* vssup */,
- { 1, 8882, 0, 6, 0, UNI_grext_values_index } /* grext= */,
- { 0, 9277, 8219, 3, 8, UNI_SC__JAVA } /* sc=javanese */,
- { 3, 5791, 2637, 13, 3, UNI_JG__YEH } /* joininggroup=yeh */,
- { 21, 3836, 8498, 17, 4, UNI_MULT } /* scriptextensions=mult */,
- { 5, 8774, 1, 6, 1, -UNI_BIDIM } /* bidim=n */,
- { 16, 1188, 9336, 3, 4, UNI_INTAKRI } /* intakri */,
- { 18, 10048, 7806, 3, 1, UNI_NV__6 } /* nv=6 */,
- { 1, 3836, 8131, 17, 8, UNI_DUPL } /* scriptextensions=duployan */,
- { 2, 5739, 1, 13, 1, -UNI_GRBASE } /* graphemebase=n */,
- { 1, 8978, 9836, 6, 4, UNI__PERL_PATWS } /* patws=true */,
- { 5, 9351, 1025, 4, 2, -UNI_IDS } /* ids=no */,
- { 1, 10033, 96, 3, 10, UNI_LB__AL } /* lb=alphabetic */,
- { 0, 7325, 10099, 3, 3, UNI_IN__5_DOT_1 } /* in=v51 */,
- { 0, 1537, 6621, 3, 5, UNI_DOMINO } /* indomino */,
- { 1, 9488, 719, 4, 9, UNI_INCUNEIFORM } /* blk=cuneiform */,
- { 10, 9488, 8603, 4, 7, UNI_SHAW } /* blk=shavian */,
- { 12, 9240, 0, 5, 0, UNI_dash_values_index } /* dash= */,
- { 5, 10027, 6373, 3, 12, UNI_JG__MANICHAEANPE } /* jg=manichaeanpe */,
- { 0, 1552, 4305, 9, 16, UNI_PO } /* category=otherpunctuation */,
- { 1, 184, 8115, 2, 8, UNI_BASS } /* isbassavah */,
- { 3, 8894, 36, 6, 1, UNI_JOINC } /* joinc=t */,
- { 0, 9488, 6409, 4, 12, UNI_INMENDEKIKAKUI } /* blk=mendekikakui */,
- { 0, 8449, 9255, 7, 5, -UNI_HYPHEN } /* hyphen=false */,
- { 0, 8762, 26, 6, 1, UNI_XPOSIXALPHA } /* alpha=y */,
- { 2, 9277, 7428, 3, 10, UNI_WARA } /* sc=warangciti */,
- { 0, 2569, 3493, 20, 18, UNI_VO__TR } /* verticalorientation=transformedrotated */,
- { 0, 3836, 8315, 17, 8, UNI_UGAR } /* scriptextensions=ugaritic */,
- { 0, 8589, 5843, 7, 9, UNI_SC__MLYM } /* script=malayalam */,
- { 1, 1585, 0, 14, 0, UNI_BYZANTINEMUSIC } /* byzantinemusic */,
- { 0, 10027, 8155, 3, 8, UNI_JG__FARSIYEH } /* jg=farsiyeh */,
- { 0, 6805, 287, 6, 29, UNI_MISCMATHSYMBOLSB } /* inmiscellaneousmathematicalsymbolsb */,
- { 2, 9488, 9310, 4, 5, UNI_INOGHAM } /* blk=ogham */,
- { 4, 6231, 3796, 3, 3, UNI_INCHAM } /* incham */,
- { 8, 184, 2931, 2, 19, UNI_SUPARROWSA } /* issupplementalarrowsa */,
- { 17, 7076, 7069, 3, 9, UNI_ASCII } /* inbasiclatin */,
- { 0, 1441, 0, 24, 0, UNI_CJKSYMBOLS } /* cjksymbolsandpunctuation */,
- { 2, 8589, 4145, 7, 7, UNI_SC__LINB } /* script=linearb */,
- { 4, 7660, 0, 4, 0, UNI_PERM } /* perm */,
- { 18, 9768, 3937, 4, 8, UNI_BOPO } /* scx=bopomofo */,
- { 0, 9277, 3079, 3, 4, UNI_SC__COPT } /* sc=copt */,
- { 3, 8617, 0, 7, 0, UNI_SOYO } /* soyombo */,
- { 2, 4916, 8300, 3, 7, UNI_TFNG } /* istifinagh */,
- { 2, 3836, 8912, 17, 4, UNI_KHOJ } /* scriptextensions=khoj */,
- { 13, 9508, 7859, 4, 3, UNI_WB__EB } /* ccc=200 */,
- { 0, 9768, 9732, 4, 4, UNI_PRTI } /* scx=prti */,
- { 0, 2784, 7506, 4, 7, UNI_ARABICPFB } /* inarabicpfb */,
- { 1, 6061, 0, 11, 0, UNI_BIDIC } /* bidicontrol */,
- { 0, 9444, 7469, 4, 1, UNI_AGE__5 } /* age=5 */,
- { 1, 9768, 9325, 4, 5, UNI_RUNR } /* scx=runic */,
- { 0, 6231, 2141, 3, 20, UNI_CYRILLICSUP } /* incyrillicsupplementary */,
- { 1, 8589, 9008, 7, 4, UNI_SC__THAA } /* script=thaa */,
- { 0, 184, 5040, 2, 5, UNI_XPOSIXDIGIT } /* isdigit */,
- { 1, 8589, 8876, 7, 6, UNI_GOTH } /* script=gothic */,
- { 8, 9768, 57, 4, 2, UNI_YI } /* scx=yi */,
- { 0, 4049, 0, 16, 0, UNI_GEORGIANEXT } /* georgianextended */,
- { 0, 1189, 495, 3, 2, UNI_NT__NU } /* nt=nu */,
- { 0, 3374, 36, 11, 1, UNI_XPOSIXSPACE } /* whitespace=t */,
- { 0, 206, 0, 2, 0, UNI_PI } /* pi */,
- { 2, 3379, 0, 5, 0, UNI_XPOSIXSPACE } /* space */,
- { 20, 3836, 9285, 17, 5, UNI_LIMB } /* scriptextensions=limbu */,
- { 5, 3836, 3169, 17, 4, UNI_ETHI } /* scriptextensions=ethi */,
- { 0, 5578, 34, 14, 6, UNI_SB__EX } /* sentencebreak=extend */,
- { 0, 3836, 7666, 17, 9, UNI_ORKH } /* scriptextensions=oldturkic */,
- { 0, 8780, 9325, 6, 5, UNI_INRUNIC } /* block=runic */,
- { 1, 9014, 0, 5, 0, UNI_UIDEO } /* uideo */,
- { 2, 10024, 406, 3, 7, UNI_XPOSIXCNTRL } /* gc=control */,
- { 8, 184, 3349, 2, 18, UNI_ZP } /* isparagraphseparator */,
- { 1, 10126, 3504, 3, 7, UNI_VO__R } /* vo=rotated */,
- { 0, 10009, 2569, 3, 8, UNI_DT__VERT } /* dt=vertical */,
- { 3, 5674, 3, 13, 1, -UNI_BIDIM } /* bidimirrored=f */,
- { 0, 9488, 951, 4, 28, UNI_VSSUP } /* blk=variationselectorssupplement */,
- { 37, 5324, 6279, 4, 10, UNI_MAHJONG } /* inmahjongtiles */,
- { 18, 9508, 8801, 4, 3, UNI_CCC__107 } /* ccc=107 */,
- { 0, 9768, 6884, 4, 11, UNI_HMNG } /* scx=pahawhhmong */,
- { 1, 5986, 10148, 13, 2, UNI_NV__47 } /* numericvalue=47 */,
- { 1, 8780, 5200, 6, 7, UNI_KANASUP } /* block=kanasup */,
- { 4, 9768, 0, 4, 0, UNI_scx_values_index } /* scx= */,
- { 28, 7738, 0, 4, 0, UNI_XIDS } /* xids */,
- { 0, 5778, 0, 13, 0, UNI_IPAEXT } /* ipaextensions */,
- { 2, 7738, 9836, 9, 4, UNI_XIDS } /* xidstart=true */,
- { 0, 1768, 9255, 22, 5, -UNI_CWCF } /* changeswhencasefolded=false */,
- { 0, 10048, 9913, 3, 3, UNI_NV__2_SLASH_3 } /* nv=2/3 */,
- { 2, 6609, 26, 11, 1, UNI_DEP } /* deprecated=y */,
- { 34, 21, 1007, 3, 26, UNI_ANCIENTGREEKMUSIC } /* inancientgreekmusicalnotation */,
- { 0, 2182, 5585, 21, 2, UNI_WB__EB } /* graphemeclusterbreak=eb */,
- { 0, 1988, 10135, 22, 3, UNI_LOE } /* logicalorderexception=yes */,
- { 0, 184, 3367, 2, 17, UNI__PERL_PATWS } /* ispatternwhitespace */,
- { 2, 3385, 26, 18, 1, UNI_RI } /* regionalindicator=y */,
- { 1, 184, 6012, 2, 13, UNI_VERTICALFORMS } /* isverticalforms */,
- { 1, 9270, 6885, 3, 10, UNI_INPAHAWHHMONG } /* inpahawhhmong */,
- { 1, 9768, 7428, 4, 4, UNI_WARA } /* scx=wara */,
- { 1, 8780, 2076, 6, 15, UNI_TRANSPORTANDMAP } /* block=transportandmap */,
- { 2, 78, 0, 4, 0, UNI_ARAB } /* arab */,
- { 0, 9275, 1489, 5, 24, UNI_INSC__CONSONANTSUCCEEDINGREPHA } /* insc=consonantsucceedingrepha */,
- { 12, 9277, 7660, 3, 4, UNI_SC__PERM } /* sc=perm */,
- { 3, 184, 1922, 2, 22, UNI_DIACRITICALSFORSYMBOLS } /* isdiacriticalsforsymbols */,
- { 2, 8589, 9283, 7, 4, UNI_PHLI } /* script=phli */,
- { 6, 10024, 1025, 3, 2, UNI_NO } /* gc=no */,
- { 0, 10009, 2569, 3, 4, UNI_DT__VERT } /* dt=vert */,
- { 6, 4033, 2349, 16, 20, UNI_PC } /* generalcategory=connectorpunctuation */,
- { 0, 10027, 5908, 3, 13, UNI_JG__MANICHAEANTAW } /* jg=manichaeantaw */,
- { 9, 10132, 1218, 3, 8, UNI_WB__KA } /* wb=katakana */,
- { 8, 7228, 0, 10, 0, UNI_lower_values_index } /* lowercase= */,
- { 0, 8780, 8841, 7, 5, UNI_INCHAKMA } /* block=chakma */,
- { 1, 184, 2, 3, 1, UNI_CI } /* isci */,
- { 0, 9768, 4928, 4, 5, UNI_TAML } /* scx=tamil */,
- { 3, 5746, 10135, 6, 3, UNI_EBASE } /* ebase=yes */,
- { 1, 9768, 1218, 4, 8, UNI_KANA } /* scx=katakana */,
- { 1, 2224, 4370, 3, 8, UNI_SYRIACSUP } /* insyriacsup */,
- { 0, 10024, 1822, 3, 2, UNI_NL } /* gc=nl */,
- { 16, 184, 1823, 2, 9, UNI_XPOSIXLOWER } /* islowercase */,
- { 16, 10048, 7979, 3, 8, UNI_NV__3_SLASH_5 } /* nv=6.00e-01 */,
- { 3, 3379, 1, 6, 1, -UNI_XPOSIXSPACE } /* space=n */,
- { 4, 1552, 1186, 9, 2, UNI_PO } /* category=po */,
- { 0, 6623, 2876, 4, 17, UNI_OTTOMANSIYAQNUMBERS } /* inottomansiyaqnumbers */,
- { 17, 9277, 8171, 3, 8, UNI_SC__GUJR } /* sc=gujarati */,
- { 4, 9508, 9201, 5, 4, UNI_CCC__34 } /* ccc=ccc34 */,
- { 2, 9488, 42, 4, 36, UNI_CJKCOMPATIDEOGRAPHSSUP } /* blk=cjkcompatibilityideographssupplement */,
- { 0, 10048, 9420, 3, 4, UNI_NV__3_SLASH_20 } /* nv=3/20 */,
- { 2, 9346, 0, 4, 0, UNI_idc_values_index } /* idc= */,
- { 0, 10027, 1511, 3, 3, UNI_JG__HAH } /* jg=hah */,
- { 0, 10027, 5340, 3, 14, UNI_JG__MANICHAEANFIVE } /* jg=manichaeanfive */,
- { 0, 2912, 0, 19, 0, UNI_SUNDANESESUP } /* sundanesesupplement */,
- { 17, 9768, 719, 4, 9, UNI_XSUX } /* scx=cuneiform */,
- { 0, 3259, 0, 4, 0, UNI_IDSB } /* idsb */,
- { 0, 8589, 8582, 7, 7, UNI_SC__PHAG } /* script=phagspa */,
- { 17, 1552, 9503, 9, 2, UNI_MC } /* category=mc */,
- { 14, 3836, 7684, 17, 9, UNI_PAUC } /* scriptextensions=paucinhau */,
- { 0, 4916, 4944, 3, 14, UNI_TITLE } /* istitlecaseletter */,
- { 5, 9496, 0, 4, 0, UNI_BUHD } /* buhd */,
- { 0, 9508, 7858, 4, 2, UNI_CCC__22 } /* ccc=22 */,
- { 1, 184, 1319, 2, 25, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* issymbolsandpictographsexta */,
- { 1, 10296, 0, 12, 0, UNI_POSIXBLANK } /* isposixblank */,
- { 1, 6928, 1, 11, 1, -UNI_SD } /* softdotted=n */,
- { 2, 3836, 9002, 17, 4, UNI_TELU } /* scriptextensions=telu */,
- { 6, 184, 3683, 2, 11, UNI_ETHIOPICEXT } /* isethiopicext */,
- { 9, 9290, 9255, 5, 5, -UNI_MATH } /* math=false */,
- { 0, 8780, 895, 6, 28, UNI_SUPPUAA } /* block=supplementaryprivateuseareaa */,
- { 16, 8219, 0, 4, 0, UNI_JAVA } /* java */,
- { 0, 9488, 8442, 4, 7, UNI_INHANUNOO } /* blk=hanunoo */,
- { 0, 5791, 4225, 13, 16, UNI_JG__MANICHAEANTWENTY } /* joininggroup=manichaeantwenty */,
- { 19, 184, 6409, 2, 4, UNI_MEND } /* ismend */,
- { 3, 5037, 9255, 9, 5, -UNI_XPOSIXXDIGIT } /* hexdigit=false */,
- { 9, 9560, 0, 4, 0, UNI_GONG } /* gong */,
- { 0, 117, 2226, 4, 19, UNI_ININSCRIPTIONALPARTHIAN } /* ininscriptionalparthian */,
- { 3, 8589, 9512, 7, 4, UNI_CHRS } /* script=chrs */,
- { 3, 5739, 0, 13, 0, UNI_grbase_values_index } /* graphemebase= */,
- { 0, 7218, 6169, 10, 4, UNI_LB__GL } /* linebreak=glue */,
- { 0, 184, 1901, 3, 21, UNI_INDICNUMBERFORMS } /* iscommonindicnumberforms */,
- { 0, 10024, 7, 3, 1, UNI_C } /* gc=c */,
- { 1, 117, 5779, 3, 5, UNI_IPAEXT } /* inipaext */,
- { 1, 8688, 15, 4, 2, UNI_ARAB } /* isarab */,
- { 4, 9444, 9848, 4, 4, UNI_AGE__12 } /* age=v120 */,
- { 3, 9768, 9664, 4, 3, UNI_MRO } /* scx=mro */,
- { 16, 9460, 0, 4, 0, UNI_ARMI } /* armi */,
- { 1, 8589, 3895, 8, 3, UNI_SGNW } /* script=sgnw */,
- { 2, 3836, 8407, 17, 7, UNI_DSRT } /* scriptextensions=deseret */,
- { 0, 10048, 9050, 3, 5, UNI_NV__1_SLASH_160 } /* nv=1/160 */,
- { 1, 9768, 9008, 4, 4, UNI_THAA } /* scx=thaa */,
- { 14, 8960, 0, 6, 0, UNI_nfcqc_values_index } /* nfcqc= */,
- { 3, 9262, 8554, 3, 7, UNI_SB__LE } /* sb=oletter */,
- { 1, 8267, 36, 8, 1, UNI_RADICAL } /* radical=t */,
- { 0, 8855, 0, 2, 0, UNI_CF } /* cf */,
- { 8, 1417, 184, 24, 2, UNI_CCC__IS } /* canonicalcombiningclass=is */,
- { 0, 9250, 36, 5, 1, UNI_EMOD } /* emod=t */,
- { 0, 7155, 8188, 3, 7, UNI_HIRA } /* ishiragana */,
- { 19, 9556, 5497, 4, 11, UNI_GCB__SM } /* gcb=spacingmark */,
- { 2, 184, 6061, 2, 5, UNI_BIDIC } /* isbidic */,
- { 2, 7540, 10135, 9, 3, UNI_EXT } /* extender=yes */,
- { 3, 8780, 8470, 6, 7, UNI_INLINEARA } /* block=lineara */,
- { 8, 10291, 10308, 5, 5, UNI_POSIXPRINT } /* posixprint */,
- { 0, 10027, 6313, 3, 12, UNI_JG__MALAYALAMNGA } /* jg=malayalamnga */,
- { 3, 10048, 7469, 3, 1, UNI_NV__5 } /* nv=5 */,
- { 51, 9351, 26, 4, 1, UNI_IDS } /* ids=y */,
- { 1, 9997, 5829, 3, 3, UNI_BC__RLO } /* bc=rlo */,
- { 0, 9488, 9684, 4, 4, UNI_INNEWA } /* blk=newa */,
- { 2, 9768, 3025, 4, 8, UNI_CHER } /* scx=cherokee */,
- { 0, 1417, 10172, 24, 2, UNI_CCC__9 } /* canonicalcombiningclass=vr */,
- { 15, 10333, 7, 3, 1, UNI_SC } /* issc */,
- { 0, 7318, 7950, 10, 1, UNI_IN__9 } /* presentin=9 */,
- { 0, 2288, 5187, 3, 13, UNI_HIGHSURROGATES } /* inhighsurrogates */,
- { 14, 10009, 4532, 3, 6, UNI_DT__MED } /* dt=medial */,
- { 0, 6231, 2099, 3, 20, UNI_CJKCOMPATFORMS } /* incjkcompatibilityforms */,
- { 16, 3241, 0, 8, 0, UNI_GEOR } /* georgian */,
- { 0, 9270, 6506, 3, 11, UNI_PHAISTOS } /* inphaistosdisc */,
- { 8, 4643, 0, 15, 0, UNI_ecomp_values_index } /* emojicomponent= */,
- { 17, 5791, 8283, 13, 8, UNI_JG__SWASHKAF } /* joininggroup=swashkaf */,
- { 0, 5986, 9050, 13, 4, UNI_NV__1_SLASH_16 } /* numericvalue=1/16 */,
- { 5, 9508, 3015, 4, 10, UNI_CCC__AR } /* ccc=aboveright */,
- { 4, 2280, 9713, 3, 3, UNI_OSGE } /* isosge */,
- { 1, 9768, 4868, 4, 15, UNI_NARB } /* scx=oldnortharabian */,
- { 1, 9260, 1, 5, 1, -UNI_IDSB } /* idsb=n */,
- { 1, 5986, 7803, 13, 8, UNI_NV__1_SLASH_64 } /* numericvalue=1.56e-02 */,
- { 2, 8179, 0, 8, 0, UNI_GURU } /* gurmukhi */,
- { 3, 9488, 8179, 4, 8, UNI_INGURMUKHI } /* blk=gurmukhi */,
- { 0, 9277, 7648, 3, 9, UNI_ITAL } /* sc=olditalic */,
- { 1, 8882, 36, 6, 1, UNI_GREXT } /* grext=t */,
- { 32, 9768, 9315, 4, 5, UNI_ORYA } /* scx=oriya */,
- { 0, 10024, 3358, 3, 9, UNI_Z } /* gc=separator */,
- { 1, 2429, 0, 20, 0, UNI_PHLI } /* inscriptionalpahlavi */,
- { 3, 5986, 10146, 13, 2, UNI_NV__46 } /* numericvalue=46 */,
- { 22, 10048, 8042, 3, 2, UNI_NV__18 } /* nv=18 */,
- { 5, 8954, 9836, 6, 4, UNI__PERL_NCHAR } /* nchar=true */,
- { 0, 4401, 0, 16, 0, UNI_TANGUTSUP } /* tangutsupplement */,
- { 0, 8780, 5284, 6, 4, UNI_INLISU } /* block=lisu */,
- { 0, 9536, 36, 4, 1, UNI_DEP } /* dep=t */,
- { 19, 21, 7027, 2, 11, UNI_YISYLLABLES } /* inyisyllables */,
- { 0, 9444, 7765, 4, 1, UNI_AGE__2 } /* age=2 */,
- { 0, 9768, 3115, 4, 10, UNI_DEVA } /* scx=devanagari */,
- { 0, 184, 3295, 2, 9, UNI_LATINEXTA } /* islatinexta */,
- { 2, 4422, 8409, 4, 5, UNI_DSRT } /* indeseret */,
- { 2, 4478, 0, 15, 0, UNI_BRAI } /* braillepatterns */,
- { 0, 8589, 8470, 7, 7, UNI_SC__LINA } /* script=lineara */,
- { 9, 1988, 1, 22, 1, -UNI_LOE } /* logicalorderexception=n */,
- { 1, 1417, 7859, 24, 2, UNI_CCC__20 } /* canonicalcombiningclass=20 */,
- { 13, 9488, 6517, 4, 12, UNI_PLAYINGCARDS } /* blk=playingcards */,
- { 2, 895, 0, 28, 0, UNI_SUPPUAA } /* supplementaryprivateuseareaa */,
- { 0, 10027, 6950, 3, 11, UNI_JG__STRAIGHTWAW } /* jg=straightwaw */,
- { 0, 2722, 0, 10, 0, UNI_JAMO } /* hanguljamo */,
- { 1, 2224, 5607, 3, 13, UNI_SUPPUNCTUATION } /* insuppunctuation */,
- { 0, 9277, 3079, 3, 6, UNI_SC__COPT } /* sc=coptic */,
- { 1, 5032, 0, 5, 0, UNI_ASCII } /* ascii */,
- { 0, 3836, 9484, 17, 4, UNI_BHKS } /* scriptextensions=bhks */,
- { 0, 10006, 26, 3, 1, UNI_DI } /* di=y */,
- { 1, 10048, 9432, 3, 4, UNI_NV__5_SLASH_12 } /* nv=5/12 */,
- { 0, 1979, 47, 10, 1, UNI_LM } /* category=lm */,
- { 5, 9688, 0, 3, 0, UNI_NKO } /* nko */,
- { 2, 9700, 0, 4, 0, UNI_OLCK } /* olck */,
- { 1, 9580, 0, 4, 0, UNI_HANO } /* hano */,
- { 3, 2182, 1910, 21, 2, UNI_GCB__CN } /* graphemeclusterbreak=cn */,
- { 0, 8780, 9038, 6, 6, UNI_INYEZIDI } /* block=yezidi */,
- { 0, 6553, 10135, 12, 3, UNI_XIDC } /* xidcontinue=yes */,
- { 0, 184, 7428, 2, 4, UNI_WARA } /* iswara */,
- { 9, 7088, 2798, 10, 19, UNI_BC__LRO } /* bidiclass=lefttorightoverride */,
- { 1, 9768, 6409, 4, 4, UNI_MEND } /* scx=mend */,
- { 4, 1417, 756, 24, 2, UNI_CCC__DA } /* canonicalcombiningclass=da */,
- { 1, 9768, 6940, 5, 10, UNI_SORA } /* scx=sorasompeng */,
- { 13, 400, 0, 6, 0, UNI_CF } /* format */,
- { 3, 2182, 3385, 21, 17, UNI_RI } /* graphemeclusterbreak=regionalindicator */,
- { 0, 10288, 467, 8, 5, UNI_XPOSIXPUNCT } /* isxposixpunct */,
- { 0, 5452, 0, 14, 0, UNI_nfcqc_values_index } /* nfcquickcheck= */,
- { 4, 10296, 131, 3, 3, UNI_PALM } /* ispalm */,
- { 1, 4033, 1527, 16, 9, UNI__PERL_SURROGATE } /* generalcategory=surrogate */,
- { 9, 3836, 4370, 18, 5, UNI_SYRC } /* scriptextensions=syriac */,
- { 7, 8984, 1025, 6, 2, -UNI_QMARK } /* qmark=no */,
- { 0, 4033, 32, 16, 2, UNI__PERL_SURROGATE } /* generalcategory=cs */,
- { 2, 8575, 0, 6, 0, UNI_PATSYN } /* patsyn */,
- { 15, 9488, 3295, 4, 18, UNI_LATINEXTADDITIONAL } /* blk=latinextadditional */,
- { 1, 8589, 9864, 7, 4, UNI_WCHO } /* script=wcho */,
- { 0, 8435, 1025, 7, 2, -UNI_GRBASE } /* grbase=no */,
- { 11, 9277, 9796, 3, 4, UNI_SC__SYRC } /* sc=syrc */,
- { 0, 8780, 3887, 6, 17, UNI_SUTTONSIGNWRITING } /* block=suttonsignwriting */,
- { 1, 9277, 2560, 3, 4, UNI_SC__MAND } /* sc=mand */,
- { 20, 3151, 0, 17, 0, UNI_EPRES } /* emojipresentation */,
- { 41, 10012, 8948, 3, 6, UNI_EA__NA } /* ea=narrow */,
- { 2, 184, 8414, 2, 7, UNI_ELBA } /* iselbasan */,
- { 8, 8589, 7666, 7, 9, UNI_ORKH } /* script=oldturkic */,
- { 1, 5578, 2529, 15, 4, UNI_SB__ST } /* sentencebreak=sterm */,
- { 1, 9277, 7118, 3, 10, UNI_CHRS } /* sc=chorasmian */,
- { 2, 4433, 0, 15, 0, UNI_ARABICEXTA } /* arabicextendeda */,
- { 0, 2855, 0, 12, 0, UNI_MONGOLIANSUP } /* mongoliansup */,
- { 1, 1166, 0, 25, 0, UNI_DI } /* defaultignorablecodepoint */,
- { 0, 5508, 0, 13, 0, UNI_PATSYN } /* patternsyntax */,
- { 0, 6796, 0, 11, 0, UNI_MEDF } /* medefaidrin */,
- { 0, 184, 218, 3, 32, UNI_DIACRITICALSEXT } /* iscombiningdiacriticalmarksextended */,
- { 1, 9488, 4973, 4, 15, UNI_VEDICEXT } /* blk=vedicextensions */,
- { 4, 8400, 36, 7, 1, UNI_COMPEX } /* compex=t */,
- { 0, 3836, 382, 17, 4, UNI_EGYP } /* scriptextensions=egyp */,
- { 1, 9014, 36, 6, 1, UNI_UIDEO } /* uideo=t */,
- { 1, 5791, 5179, 13, 7, UNI_JG__HEHGOAL } /* joininggroup=hehgoal */,
- { 1, 6205, 9836, 12, 4, UNI_IDEO } /* ideographic=true */,
- { 0, 8882, 1025, 6, 2, -UNI_GREXT } /* grext=no */,
- { 1, 3259, 10135, 18, 3, UNI_IDSB } /* idsbinaryoperator=yes */,
- { 9, 9275, 6463, 5, 6, UNI_LB__ZWJ } /* insc=joiner */,
- { 0, 184, 43, 3, 25, UNI_CJKCOMPATIDEOGRAPHS } /* iscjkcompatibilityideographs */,
- { 0, 10030, 7258, 3, 10, UNI_JT__U } /* jt=nonjoining */,
- { 0, 7318, 10096, 10, 3, UNI_IN__5 } /* presentin=v50 */,
- { 4, 10027, 5378, 3, 4, UNI_JG__KAPH } /* jg=kaph */,
- { 18, 10048, 5648, 3, 11, UNI_NV__10000000000 } /* nv=10000000000 */,
- { 0, 9345, 26, 5, 1, UNI_XIDC } /* xidc=y */,
- { 0, 8997, 10135, 5, 3, UNI_TERM } /* term=yes */,
- { 5, 8780, 7585, 6, 9, UNI_LATINEXTC } /* block=latinextc */,
- { 5, 10030, 0, 3, 0, UNI_jt_values_index } /* jt= */,
- { 4, 867, 0, 11, 0, UNI_PHONETICEXT } /* phoneticext */,
- { 1, 8780, 43, 7, 15, UNI_CJKCOMPAT } /* block=cjkcompatibility */,
- { 1, 3097, 9552, 18, 4, UNI_DT__FONT } /* decompositiontype=font */,
- { 0, 184, 8936, 2, 4, UNI_LYCI } /* islyci */,
- { 5, 7585, 0, 9, 0, UNI_LATINEXTC } /* latinextc */,
- { 0, 9488, 8638, 4, 7, UNI_INTAGALOG } /* blk=tagalog */,
- { 3, 9508, 7874, 4, 2, UNI_CCC__23 } /* ccc=23 */,
- { 40, 7218, 1751, 10, 2, UNI_LB__AI } /* linebreak=ai */,
- { 0, 9508, 9206, 5, 4, UNI_CCC__35 } /* ccc=ccc35 */,
- { 0, 9488, 5830, 4, 13, UNI_LOWSURROGATES } /* blk=lowsurrogates */,
- { 0, 9488, 7027, 4, 11, UNI_YISYLLABLES } /* blk=yisyllables */,
- { 1, 4791, 2247, 4, 9, UNI_INMEETEIMAYEK } /* inmeeteimayek */,
- { 8, 6231, 4569, 3, 14, UNI_CURRENCYSYMBOLS } /* incurrencysymbols */,
- { 3, 9768, 2817, 4, 19, UNI_MERO } /* scx=meroitichieroglyphs */,
- { 1, 8780, 2874, 6, 19, UNI_OTTOMANSIYAQNUMBERS } /* block=ottomansiyaqnumbers */,
- { 0, 10048, 7781, 3, 1, UNI_NV__4 } /* nv=4 */,
- { 0, 8780, 3937, 6, 16, UNI_BOPOMOFOEXT } /* block=bopomofoextended */,
- { 6, 9508, 3564, 4, 13, UNI_CCC__202 } /* ccc=attachedbelow */,
- { 1, 7076, 4479, 3, 14, UNI_BRAI } /* inbraillepatterns */,
- { 4, 2280, 4306, 3, 4, UNI_C } /* isother */,
- { 0, 9488, 8243, 4, 8, UNI_INMAHAJANI } /* blk=mahajani */,
- { 17, 8780, 809, 6, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* block=enclosedideographicsupplement */,
- { 2, 9768, 8243, 4, 8, UNI_MAHJ } /* scx=mahajani */,
- { 1, 9492, 4898, 4, 4, UNI_BPT__O } /* bpt=open */,
- { 9, 5791, 7048, 13, 10, UNI_JG__AFRICANQAF } /* joininggroup=africanqaf */,
- { 0, 4916, 2532, 5, 16, UNI_TERM } /* isterminalpunctuation */,
- { 1, 5986, 8714, 13, 6, UNI_NV__300000 } /* numericvalue=300000 */,
- { 0, 4116, 415, 3, 10, UNI_IDEO } /* isideographic */,
- { 21, 1465, 0, 13, 0, UNI_M } /* combiningmark */,
- { 0, 8780, 923, 6, 28, UNI_SUPPUAB } /* block=supplementaryprivateuseareab */,
- { 2, 9768, 6481, 4, 12, UNI_HUNG } /* scx=oldhungarian */,
- { 2, 1417, 9026, 24, 6, UNI_CCC__9 } /* canonicalcombiningclass=virama */,
- { 1, 9277, 7684, 3, 9, UNI_PAUC } /* sc=paucinhau */,
- { 1, 184, 951, 2, 17, UNI_VS } /* isvariationselector */,
- { 0, 184, 9604, 2, 4, UNI_KHMR } /* iskhmr */,
- { 10, 6576, 26, 11, 1, UNI_XPOSIXALPHA } /* alphabetic=y */,
- { 11, 7318, 7821, 10, 1, UNI_IN__8 } /* presentin=8 */,
- { 1, 3097, 567, 18, 2, UNI_DT__NB } /* decompositiontype=nb */,
- { 2, 7325, 9844, 3, 4, UNI_IN__11 } /* in=v110 */,
- { 0, 8780, 9320, 6, 5, UNI_INOSAGE } /* block=osage */,
- { 0, 4643, 1025, 15, 2, -UNI_ECOMP } /* emojicomponent=no */,
- { 8, 3259, 9255, 18, 5, -UNI_IDSB } /* idsbinaryoperator=false */,
- { 2, 184, 3341, 2, 8, UNI_DINGBATS } /* isdingbats */,
- { 0, 184, 8227, 2, 8, UNI_KANAEXTA } /* iskanaexta */,
- { 8, 8780, 8666, 6, 7, UNI_INTIRHUTA } /* block=tirhuta */,
- { 1, 8589, 8344, 7, 7, UNI_SC__BENG } /* script=bengali */,
- { 0, 5032, 1, 14, 1, -UNI_POSIXXDIGIT } /* asciihexdigit=n */,
- { 6, 1417, 9300, 24, 5, UNI_CCC__7 } /* canonicalcombiningclass=nukta */,
- { 1, 10298, 0, 10, 0, UNI_POSIXBLANK } /* posixblank */,
- { 3, 10009, 10069, 3, 3, UNI_DT__SQR } /* dt=sqr */,
- { 67, 8589, 8888, 7, 6, UNI_HATR } /* script=hatran */,
- { 0, 2182, 10015, 21, 3, UNI_WB__EB } /* graphemeclusterbreak=ebg */,
- { 3, 1417, 5765, 24, 13, UNI_CCC__IS } /* canonicalcombiningclass=iotasubscript */,
- { 11, 5003, 0, 15, 0, UNI_ZANB } /* zanabazarsquare */,
- { 24, 9277, 8123, 3, 8, UNI_SC__BUGI } /* sc=buginese */,
- { 2, 9508, 78, 4, 2, UNI_CCC__AR } /* ccc=ar */,
- { 0, 5432, 0, 3, 0, UNI_ANY } /* any */,
- { 1, 8589, 9628, 7, 4, UNI_SC__LATN } /* script=latn */,
- { 0, 10048, 9428, 3, 4, UNI_NV__3_SLASH_80 } /* nv=3/80 */,
- { 1, 7438, 0, 10, 0, UNI_wb_values_index } /* wordbreak= */,
- { 10, 184, 6229, 2, 5, UNI_JOINC } /* isjoinc */,
- { 1, 9488, 8652, 4, 7, UNI_INTAIVIET } /* blk=taiviet */,
- { 0, 8147, 26, 8, 1, UNI_EXTPICT } /* extpict=y */,
- { 8, 10048, 9203, 3, 2, UNI_NV__34 } /* nv=34 */,
- { 0, 9528, 9255, 4, 5, -UNI_CWU } /* cwu=false */,
- { 1, 6553, 26, 12, 1, UNI_XIDC } /* xidcontinue=y */,
- { 1, 3836, 6796, 17, 11, UNI_MEDF } /* scriptextensions=medefaidrin */,
- { 16, 3836, 2409, 17, 10, UNI_GLAG } /* scriptextensions=glagolitic */,
- { 2, 1114, 0, 26, 0, UNI_cwkcf_values_index } /* changeswhennfkccasefolded= */,
- { 10, 9508, 9919, 4, 3, UNI_CCC__202 } /* ccc=202 */,
- { 11, 8589, 9812, 7, 4, UNI_SC__TAML } /* script=taml */,
- { 5, 9444, 7782, 4, 1, UNI_AGE__3 } /* age=3 */,
- { 4, 184, 2969, 2, 19, UNI_SUPARROWSC } /* issupplementalarrowsc */,
- { 2, 10048, 8082, 3, 2, UNI_NV__19 } /* nv=19 */,
- { 1, 6231, 43, 3, 2, UNI_CJK } /* incjk */,
- { 0, 5074, 0, 14, 0, UNI_CJKCOMPATFORMS } /* cjkcompatforms */,
- { 0, 8435, 0, 7, 0, UNI_grbase_values_index } /* grbase= */,
- { 1, 8509, 1035, 4, 25, UNI_ENCLOSEDCJK } /* inenclosedcjklettersandmonths */,
- { 3, 9508, 7178, 4, 4, UNI_CCC__6 } /* ccc=hanr */,
- { 2, 6253, 0, 5, 0, UNI_KHMR } /* khmer */,
- { 0, 8589, 3241, 7, 4, UNI_SC__GEOR } /* script=geor */,
- { 8, 9488, 1586, 5, 22, UNI_BYZANTINEMUSIC } /* blk=byzantinemusicalsymbols */,
- { 1, 10027, 2637, 3, 9, UNI_JG__YEHBARREE } /* jg=yehbarree */,
- { 2, 10027, 5336, 3, 4, UNI_JG__BETH } /* jg=beth */,
- { 0, 5986, 9379, 13, 2, UNI_NV__41 } /* numericvalue=41 */,
- { 0, 7218, 8680, 10, 7, UNI_LB__XX } /* linebreak=unknown */,
- { 4, 4658, 1025, 15, 2, -UNI_GREXT } /* graphemeextend=no */,
- { 1, 8876, 0, 6, 0, UNI_GOTH } /* gothic */,
- { 2, 7410, 0, 8, 0, UNI_ASSIGNED } /* assigned */,
- { 1, 2912, 0, 9, 0, UNI_SUND } /* sundanese */,
- { 2, 8780, 8638, 6, 7, UNI_INTAGALOG } /* block=tagalog */,
- { 0, 7318, 9848, 10, 4, UNI_IN__12 } /* presentin=v120 */,
- { 1, 1417, 9168, 24, 2, UNI_CCC__27 } /* canonicalcombiningclass=27 */,
- { 3, 923, 0, 28, 0, UNI_SUPPUAB } /* supplementaryprivateuseareab */,
- { 2, 9488, 2409, 4, 13, UNI_GLAGOLITICSUP } /* blk=glagoliticsup */,
- { 5, 21, 6253, 2, 5, UNI_INKHMER } /* inkhmer */,
- { 0, 5986, 7859, 13, 6, UNI_NV__200000 } /* numericvalue=200000 */,
- { 0, 4989, 1, 3, 33, UNI_UCAS } /* isunifiedcanadianaboriginalsyllabics */,
- { 2, 9520, 3, 4, 1, -UNI_CWL } /* cwl=f */,
- { 4, 9768, 7, 4, 18, UNI_CANS } /* scx=canadianaboriginal */,
- { 6, 8780, 7657, 6, 9, UNI_INOLDPERMIC } /* block=oldpermic */,
- { 1, 3581, 0, 17, 0, UNI_UCAS } /* canadiansyllabics */,
- { 0, 7325, 10123, 3, 3, UNI_IN__9 } /* in=v90 */,
- { 0, 4791, 4274, 3, 15, UNI_MYANMAREXTA } /* inmyanmarextendeda */,
- { 2, 1979, 24, 10, 1, UNI_LOWERCASELETTER } /* category=ll */,
- { 3, 3133, 0, 13, 0, UNI_EMOD } /* emojimodifier */,
- { 85, 9277, 8421, 3, 7, UNI_ELYM } /* sc=elymaic */,
- { 0, 8780, 1631, 6, 23, UNI_GEOMETRICSHAPESEXT } /* block=geometricshapesextended */,
- { 9, 5578, 4305, 14, 5, UNI_SB__XX } /* sentencebreak=other */,
- { 2, 8688, 80, 4, 8, UNI_ARABICMATH } /* isarabicmath */,
- { 0, 10030, 18, 3, 1, UNI_JT__R } /* jt=r */,
- { 33, 10012, 66, 3, 1, UNI_EA__H } /* ea=h */,
- { 5, 3836, 8604, 18, 6, UNI_SHAW } /* scriptextensions=shavian */,
- { 2, 9488, 2469, 4, 20, UNI_INNYIAKENGPUACHUEHMONG } /* blk=nyiakengpuachuehmong */,
- { 0, 6231, 43, 3, 25, UNI_CJKCOMPATIDEOGRAPHS } /* incjkcompatibilityideographs */,
- { 0, 3836, 2608, 17, 6, UNI_BRAH } /* scriptextensions=brahmi */,
- { 1, 10048, 9916, 3, 3, UNI_NV__2_SLASH_5 } /* nv=2/5 */,
- { 0, 9277, 9888, 3, 4, UNI_ZANB } /* sc=zanb */,
- { 0, 8509, 751, 4, 14, UNI_ENCLOSEDALPHANUM } /* inenclosedalphanum */,
- { 5, 10033, 5536, 3, 14, UNI_LB__PO } /* lb=postfixnumeric */,
- { 0, 7739, 9836, 8, 4, UNI_IDS } /* idstart=true */,
- { 4, 10033, 4538, 3, 15, UNI_LB__CB } /* lb=contingentbreak */,
- { 18, 9277, 9644, 3, 4, UNI_MEDF } /* sc=medf */,
- { 18, 9556, 125, 4, 2, UNI_LB__CR } /* gcb=cr */,
- { 3, 3836, 8611, 18, 6, UNI_SIDD } /* scriptextensions=siddham */,
- { 3, 6265, 0, 12, 0, UNI_NL } /* letternumber */,
- { 33, 184, 316, 2, 33, UNI_SUPMATHOPERATORS } /* issupplementalmathematicaloperators */,
- { 1, 9997, 5130, 3, 14, UNI_BC__EN } /* bc=europeannumber */,
- { 14, 9488, 7138, 4, 10, UNI_COMPATJAMO } /* blk=compatjamo */,
- { 0, 8780, 8498, 6, 7, UNI_INMULTANI } /* block=multani */,
- { 2, 9768, 8666, 4, 4, UNI_TIRH } /* scx=tirh */,
- { 2, 8780, 1018, 6, 5, UNI_MUSIC } /* block=music */,
- { 3, 9488, 3115, 4, 13, UNI_DEVANAGARIEXT } /* blk=devanagariext */,
- { 1, 9277, 6972, 3, 11, UNI_SC__SYLO } /* sc=sylotinagri */,
- { 0, 3836, 7660, 17, 4, UNI_PERM } /* scriptextensions=perm */,
- { 0, 8589, 8337, 7, 7, UNI_AVST } /* script=avestan */,
- { 4, 8589, 8456, 7, 7, UNI_SC__KNDA } /* script=kannada */,
- { 6, 9768, 9560, 4, 4, UNI_GONG } /* scx=gong */,
- { 0, 9768, 9660, 4, 4, UNI_MLYM } /* scx=mlym */,
- { 0, 2280, 6323, 3, 3, UNI_OGAM } /* isogam */,
- { 0, 8780, 7567, 6, 9, UNI_INKHUDAWADI } /* block=khudawadi */,
- { 0, 9277, 7168, 3, 10, UNI_DIAK } /* sc=divesakuru */,
- { 0, 7318, 10099, 10, 3, UNI_IN__5_DOT_1 } /* presentin=v51 */,
- { 3, 8589, 8561, 7, 7, UNI_OSMA } /* script=osmanya */,
- { 1, 8780, 951, 6, 18, UNI_INVS } /* block=variationselectors */,
- { 9, 2665, 0, 19, 0, UNI_COUNTINGROD } /* countingrodnumerals */,
- { 0, 8688, 97, 3, 9, UNI_XPOSIXALPHA } /* isalphabetic */,
- { 3, 3374, 0, 11, 0, UNI_wspace_values_index } /* whitespace= */,
- { 8, 9277, 18, 6, 1, UNI_KHAR } /* sc=khar */,
- { 2, 6231, 115, 4, 23, UNI_DIACRITICALS } /* incombiningdiacriticalmarks */,
- { 16, 9640, 36, 4, 1, UNI_LOE } /* loe=t */,
- { 9, 1591, 383, 3, 31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* inegyptianhieroglyphformatcontrols */,
- { 20, 9488, 2140, 4, 18, UNI_CYRILLICSUP } /* blk=cyrillicsupplement */,
- { 2, 8780, 2666, 7, 10, UNI_COUNTINGROD } /* block=countingrod */,
- { 5, 8589, 8315, 7, 8, UNI_UGAR } /* script=ugaritic */,
- { 0, 5986, 8738, 13, 6, UNI_NV__600000 } /* numericvalue=600000 */,
- { 14, 1537, 2555, 24, 14, UNI_INPC__BOTTOMANDRIGHT } /* indicpositionalcategory=bottomandright */,
- { 18, 8780, 7576, 6, 9, UNI_LATINEXTB } /* block=latinextb */,
- { 1, 10296, 467, 7, 5, UNI_POSIXPUNCT } /* isposixpunct */,
- { 2, 9020, 9255, 6, 5, -UNI_XPOSIXUPPER } /* upper=false */,
- { 1, 4049, 0, 11, 0, UNI_GEORGIANEXT } /* georgianext */,
- { 7, 3025, 0, 8, 0, UNI_CHER } /* cherokee */,
- { 0, 8589, 9592, 7, 4, UNI_HMNP } /* script=hmnp */,
- { 4, 10048, 7987, 3, 8, UNI_NV__5_SLASH_8 } /* nv=6.25e-01 */,
- { 0, 10033, 1140, 3, 26, UNI_LB__CJ } /* lb=conditionaljapanesestarter */,
- { 0, 6241, 6708, 12, 11, UNI_JT__C } /* joiningtype=joincausing */,
- { 0, 2122, 0, 7, 0, UNI_RADICAL } /* radical */,
- { 0, 3836, 3025, 17, 4, UNI_CHER } /* scriptextensions=cher */,
- { 0, 10027, 5620, 3, 14, UNI_JG__HAMZAONHEHGOAL } /* jg=tehmarbutagoal */,
- { 0, 7068, 0, 10, 0, UNI_ASCII } /* basiclatin */,
- { 0, 3836, 9335, 17, 5, UNI_TAKR } /* scriptextensions=takri */,
- { 9, 328, 0, 21, 0, UNI_MATHOPERATORS } /* mathematicaloperators */,
- { 0, 21, 1218, 2, 8, UNI_INKATAKANA } /* inkatakana */,
- { 2, 184, 6086, 3, 11, UNI_CHESSSYMBOLS } /* ischesssymbols */,
- { 37, 10012, 0, 3, 0, UNI_ea_values_index } /* ea= */,
- { 1, 5324, 6387, 4, 10, UNI_INMASARAMGONDI } /* inmasaramgondi */,
- { 0, 8589, 7684, 7, 4, UNI_PAUC } /* script=pauc */,
- { 16, 2140, 0, 11, 0, UNI_CYRILLICSUP } /* cyrillicsup */,
- { 1, 5986, 10138, 13, 2, UNI_NV__38 } /* numericvalue=38 */,
- { 3, 9488, 4097, 4, 16, UNI_HIGHPUSURROGATES } /* blk=highpusurrogates */,
- { 1, 9488, 8124, 5, 7, UNI_INBUGINESE } /* blk=buginese */,
- { 5, 184, 382, 2, 4, UNI_EGYP } /* isegyp */,
- { 2, 8780, 3683, 6, 11, UNI_ETHIOPICEXT } /* block=ethiopicext */,
- { 43, 1552, 5498, 10, 10, UNI_MC } /* category=spacingmark */,
- { 4, 10048, 8750, 3, 3, UNI_NV__800 } /* nv=800 */,
- { 1, 3529, 3, 18, 1, -UNI_VS } /* variationselector=f */,
- { 12, 9768, 9002, 4, 4, UNI_TELU } /* scx=telu */,
- { 0, 7028, 2, 3, 1, UNI_YI } /* isyi */,
- { 0, 9528, 1025, 4, 2, -UNI_CWU } /* cwu=no */,
- { 1, 4643, 1, 15, 1, -UNI_ECOMP } /* emojicomponent=n */,
- { 0, 10009, 1294, 3, 5, UNI_DT__SUP } /* dt=super */,
- { 1, 9524, 36, 4, 1, UNI_CWT } /* cwt=t */,
- { 27, 8589, 3937, 7, 4, UNI_SC__BOPO } /* script=bopo */,
- { 1, 7088, 5130, 10, 14, UNI_BC__EN } /* bidiclass=europeannumber */,
- { 0, 10291, 5718, 5, 5, UNI_POSIXALNUM } /* posixalnum */,
- { 14, 8858, 1025, 6, 2, -UNI_ECOMP } /* ecomp=no */,
- { 25, 8780, 1879, 7, 18, UNI_CJKCOMPATIDEOGRAPHS } /* block=cjkcompatideographs */,
- { 3, 8780, 510, 7, 19, UNI_CJK } /* block=cjkunifiedideographs */,
- { 1, 4001, 0, 7, 0, UNI_CPRT } /* cypriot */,
- { 1, 5986, 9055, 13, 3, UNI_NV__1_SLASH_3 } /* numericvalue=1/3 */,
- { 9, 9997, 6493, 3, 12, UNI_BC__ON } /* bc=otherneutral */,
- { 15, 9508, 6642, 4, 11, UNI_CCC__DB } /* ccc=doublebelow */,
- { 6, 8780, 9684, 6, 4, UNI_INNEWA } /* block=newa */,
- { 0, 10033, 21, 3, 2, UNI_LB__IN } /* lb=in */,
- { 2, 1537, 2549, 24, 3, UNI_INPC__TOP } /* indicpositionalcategory=top */,
- { 28, 4017, 0, 16, 0, UNI_PF } /* finalpunctuation */,
- { 0, 8996, 26, 6, 1, UNI_STERM } /* sterm=y */,
- { 3, 8780, 1060, 6, 27, UNI_OCR } /* block=opticalcharacterrecognition */,
- { 5, 10333, 8611, 3, 3, UNI_SIDD } /* issidd */,
- { 0, 2140, 0, 8, 0, UNI_CYRL } /* cyrillic */,
- { 0, 10048, 7782, 3, 1, UNI_NV__3 } /* nv=3 */,
- { 4, 9997, 3773, 3, 3, UNI_BC__RLI } /* bc=rli */,
- { 2, 3836, 3785, 17, 4, UNI_MANI } /* scriptextensions=mani */,
- { 1, 10126, 0, 3, 1, UNI_VO__U } /* vo=u */,
- { 2, 184, 5497, 2, 11, UNI_MC } /* isspacingmark */,
- { 2, 2779, 26, 19, 1, UNI_IDST } /* idstrinaryoperator=y */,
- { 3, 184, 2855, 2, 19, UNI_MONGOLIANSUP } /* ismongoliansupplement */,
- { 2, 10033, 8236, 4, 7, UNI_LB__LF } /* lb=linefeed */,
- { 38, 1768, 0, 22, 0, UNI_cwcf_values_index } /* changeswhencasefolded= */,
- { 18, 10333, 47, 3, 1, UNI_SM } /* issm */,
- { 0, 908, 0, 14, 0, UNI_PUA } /* privateusearea */,
- { 1, 184, 510, 3, 29, UNI_CJKEXTA } /* iscjkunifiedideographsextensiona */,
- { 1, 8435, 0, 6, 0, UNI_GRBASE } /* grbase */,
- { 0, 10048, 9208, 3, 2, UNI_NV__35 } /* nv=35 */,
- { 0, 7218, 495, 10, 2, UNI_LB__NU } /* linebreak=nu */,
- { 0, 10048, 8744, 3, 6, UNI_NV__700000 } /* nv=700000 */,
- { 17, 184, 9628, 2, 4, UNI_LATN } /* islatn */,
- { 0, 8589, 9568, 7, 4, UNI_SC__GREK } /* script=grek */,
- { 0, 8575, 3, 7, 1, -UNI_PATSYN } /* patsyn=f */,
- { 1, 9508, 9191, 5, 4, UNI_CCC__32 } /* ccc=ccc32 */,
- { 0, 10333, 8618, 3, 3, UNI_SOYO } /* issoyo */,
- { 8, 7576, 0, 9, 0, UNI_LATINEXTB } /* latinextb */,
- { 13, 3836, 8219, 17, 4, UNI_JAVA } /* scriptextensions=java */,
- { 3, 3836, 9476, 17, 4, UNI_AVST } /* scriptextensions=avst */,
- { 2, 9640, 0, 3, 0, UNI_LOE } /* loe */,
- { 1, 1966, 6463, 22, 6, UNI_LB__ZWJ } /* indicsyllabiccategory=joiner */,
- { 0, 6805, 254, 6, 29, UNI_MISCMATHSYMBOLSA } /* inmiscellaneousmathematicalsymbolsa */,
- { 0, 8780, 7058, 6, 10, UNI_ARABICEXTA } /* block=arabicexta */,
- { 0, 184, 9325, 2, 5, UNI_RUNR } /* isrunic */,
- { 7, 10024, 9225, 3, 5, UNI_XPOSIXCNTRL } /* gc=cntrl */,
- { 8, 9596, 911, 4, 1, UNI_GCB__V } /* hst=v */,
- { 0, 9277, 4385, 3, 6, UNI_TANG } /* sc=tangut */,
- { 64, 8780, 1911, 6, 11, UNI_NUMBERFORMS } /* block=numberforms */,
- { 38, 5986, 8720, 13, 2, UNI_NV__40 } /* numericvalue=40 */,
- { 1, 8780, 0, 6, 34, UNI_UCAS } /* block=unifiedcanadianaboriginalsyllabics */,
- { 1, 184, 7585, 2, 9, UNI_LATINEXTC } /* islatinextc */,
- { 1, 3836, 9572, 17, 4, UNI_GUJR } /* scriptextensions=gujr */,
- { 1, 8589, 2245, 7, 11, UNI_MTEI } /* script=meeteimayek */,
- { 12, 9488, 3649, 4, 17, UNI_CYRILLICEXTB } /* blk=cyrillicextendedb */,
- { 4, 7438, 8144, 10, 3, UNI_WB__EB } /* wordbreak=gaz */,
- { 10, 7155, 5038, 3, 7, UNI_XPOSIXXDIGIT } /* ishexdigit */,
- { 0, 7540, 1, 9, 1, -UNI_EXT } /* extender=n */,
- { 0, 21, 7567, 2, 9, UNI_INKHUDAWADI } /* inkhudawadi */,
- { 9, 9488, 1219, 5, 4, UNI_INBATAK } /* blk=batak */,
- { 2, 7088, 426, 10, 2, UNI_BC__ES } /* bidiclass=es */,
- { 2, 3836, 9676, 17, 4, UNI_NARB } /* scriptextensions=narb */,
- { 2, 1417, 8002, 24, 2, UNI_CCC__26 } /* canonicalcombiningclass=26 */,
- { 4, 10063, 1, 3, 1, -UNI_SD } /* sd=n */,
- { 0, 4033, 1587, 16, 1, UNI_Z } /* generalcategory=z */,
- { 6, 18, 0, 2, 0, UNI_RI } /* ri */,
- { 0, 6554, 26, 11, 1, UNI_IDC } /* idcontinue=y */,
- { 6, 6829, 0, 11, 0, UNI_MYANMAREXTB } /* myanmarextb */,
- { 1, 7318, 9991, 10, 3, UNI_IN__9 } /* presentin=9.0 */,
- { 0, 9277, 9330, 3, 5, UNI_SC__TALE } /* sc=taile */,
- { 0, 9480, 0, 4, 0, UNI_BATK } /* batk */,
- { 31, 1979, 0, 11, 0, UNI_LO } /* category=lo */,
- { 2, 4116, 7559, 3, 8, UNI_QAAI } /* isinherited */,
- { 0, 1417, 7778, 24, 2, UNI_CCC__21 } /* canonicalcombiningclass=21 */,
- { 2, 8780, 6133, 6, 12, UNI_ETHIOPICEXTA } /* block=ethiopicexta */,
- { 5, 7228, 10135, 10, 3, UNI_XPOSIXLOWER } /* lowercase=yes */,
- { 0, 9277, 7308, 3, 10, UNI_PHNX } /* sc=phoenician */,
- { 2, 9720, 0, 4, 0, UNI_PHLP } /* phlp */,
- { 0, 8589, 9668, 7, 4, UNI_MTEI } /* script=mtei */,
- { 0, 9768, 8876, 4, 6, UNI_GOTH } /* scx=gothic */,
- { 0, 2224, 2913, 3, 8, UNI_INSUNDANESE } /* insundanese */,
- { 41, 8780, 1344, 6, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* block=symbolsforlegacycomputing */,
- { 0, 184, 9748, 2, 4, UNI_RJNG } /* isrjng */,
- { 1, 10048, 8744, 3, 2, UNI_NV__70 } /* nv=70 */,
- { 0, 5843, 0, 9, 0, UNI_MLYM } /* malayalam */,
- { 7, 9275, 4417, 5, 16, UNI_INSC__VOWELINDEPENDENT } /* insc=vowelindependent */,
- { 9, 9488, 8456, 4, 7, UNI_INKANNADA } /* blk=kannada */,
- { 8, 10129, 26, 3, 1, UNI_VS } /* vs=y */,
- { 1, 8780, 4973, 6, 8, UNI_VEDICEXT } /* block=vedicext */,
- { 1, 10182, 435, 6, 5, UNI__PERL_NCHAR } /* _perl_nchar */,
- { 2, 4791, 2247, 4, 19, UNI_MEETEIMAYEKEXT } /* inmeeteimayekextensions */,
- { 28, 184, 1585, 2, 14, UNI_BYZANTINEMUSIC } /* isbyzantinemusic */,
- { 3, 9270, 909, 3, 9, UNI_PUA } /* inprivateuse */,
- { 1, 2182, 8144, 21, 3, UNI_WB__EB } /* graphemeclusterbreak=gaz */,
- { 0, 9290, 10135, 5, 3, UNI_MATH } /* math=yes */,
- { 0, 9277, 9310, 3, 5, UNI_OGAM } /* sc=ogham */,
- { 0, 8449, 0, 6, 0, UNI_HYPHEN } /* hyphen */,
- { 16, 11, 0, 2, 0, UNI_DI } /* di */,
- { 0, 8688, 8338, 3, 6, UNI_AVST } /* isavestan */,
- { 2, 10033, 7486, 3, 9, UNI_LB__AI } /* lb=ambiguous */,
- { 0, 1828, 3, 6, 1, -UNI_CASED } /* cased=f */,
- { 0, 10288, 9225, 8, 5, UNI_XPOSIXCNTRL } /* isxposixcntrl */,
- { 7, 3169, 0, 4, 0, UNI_ETHI } /* ethi */,
- { 24, 1552, 5713, 9, 13, UNI_XPOSIXDIGIT } /* category=decimalnumber */,
- { 0, 8780, 78, 6, 6, UNI_INARABIC } /* block=arabic */,
- { 1, 8780, 382, 6, 32, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* block=egyptianhieroglyphformatcontrols */,
- { 2, 1417, 9171, 25, 4, UNI_CCC__28 } /* canonicalcombiningclass=ccc28 */,
- { 4, 8589, 7428, 7, 4, UNI_WARA } /* script=wara */,
- { 50, 1768, 10135, 22, 3, UNI_CWCF } /* changeswhencasefolded=yes */,
- { 0, 7438, 3385, 10, 17, UNI_RI } /* wordbreak=regionalindicator */,
- { 0, 9536, 9255, 4, 5, -UNI_DEP } /* dep=false */,
- { 32, 7218, 3379, 10, 5, UNI_LB__SP } /* linebreak=space */,
- { 3, 1552, 5438, 9, 14, UNI_SK } /* category=modifiersymbol */,
- { 5, 5791, 10045, 13, 3, UNI_JG__MIM } /* joininggroup=mim */,
- { 2, 42, 0, 36, 0, UNI_CJKCOMPATIDEOGRAPHSSUP } /* cjkcompatibilityideographssupplement */,
- { 7, 8780, 8596, 6, 7, UNI_SC__SHRD } /* block=sharada */,
- { 3, 9488, 8414, 4, 7, UNI_INELBASAN } /* blk=elbasan */,
- { 9, 9488, 5778, 4, 13, UNI_IPAEXT } /* blk=ipaextensions */,
- { 19, 7288, 0, 10, 0, UNI_SOGO } /* oldsogdian */,
- { 1, 10296, 83, 3, 2, UNI_PCM } /* ispcm */,
- { 0, 6231, 6086, 3, 11, UNI_CHESSSYMBOLS } /* inchesssymbols */,
- { 2, 3632, 0, 17, 0, UNI_CYRILLICEXTA } /* cyrillicextendeda */,
- { 0, 8780, 9664, 6, 3, UNI_INMRO } /* block=mro */,
- { 4, 10009, 9552, 3, 4, UNI_DT__FONT } /* dt=font */,
- { 3, 5986, 8744, 13, 6, UNI_NV__700000 } /* numericvalue=700000 */,
- { 6, 7438, 8323, 10, 7, UNI_WB__LE } /* wordbreak=aletter */,
- { 0, 8930, 9836, 6, 4, UNI_XPOSIXLOWER } /* lower=true */,
- { 4, 1417, 3015, 24, 5, UNI_CCC__A } /* canonicalcombiningclass=above */,
- { 2, 9488, 8187, 4, 8, UNI_INHIRAGANA } /* blk=hiragana */,
- { 0, 8780, 1677, 6, 9, UNI_LATINEXTE } /* block=latinexte */,
- { 1, 5324, 8493, 4, 5, UNI_INMARCHEN } /* inmarchen */,
- { 0, 9508, 7765, 4, 2, UNI_CCC__25 } /* ccc=25 */,
- { 10, 9245, 0, 5, 0, UNI_DOGR } /* dogra */,
- { 16, 184, 4658, 2, 14, UNI_GREXT } /* isgraphemeextend */,
- { 0, 1966, 4823, 22, 15, UNI_INSC__MODIFYINGLETTER } /* indicsyllabiccategory=modifyingletter */,
- { 0, 2182, 34, 21, 6, UNI_GCB__EX } /* graphemeclusterbreak=extend */,
- { 0, 9508, 9196, 5, 4, UNI_CCC__33 } /* ccc=ccc33 */,
- { 0, 5986, 10140, 13, 2, UNI_NV__39 } /* numericvalue=39 */,
- { 4, 8780, 720, 7, 15, UNI_CUNEIFORMNUMBERS } /* block=cuneiformnumbers */,
- { 14, 8780, 1013, 6, 5, UNI_INGREEK } /* block=greek */,
- { 0, 4129, 0, 9, 0, UNI_LATIN1 } /* latin1sup */,
- { 0, 10048, 7995, 3, 8, UNI_NV__1_SLASH_16 } /* nv=6.25e-02 */,
- { 6, 9070, 26, 5, 1, UNI_POSIXXDIGIT } /* ahex=y */,
- { 1, 8589, 2684, 7, 19, UNI_EGYP } /* script=egyptianhieroglyphs */,
- { 0, 7218, 6178, 10, 2, UNI_LB__ZW } /* linebreak=zw */,
- { 0, 184, 1677, 2, 23, UNI_LATINEXTADDITIONAL } /* islatinextendedadditional */,
- { 0, 8589, 9065, 7, 5, UNI_SC__ADLM } /* script=adlam */,
- { 32, 6231, 219, 4, 31, UNI_DIACRITICALSEXT } /* incombiningdiacriticalmarksextended */,
- { 4, 8589, 4793, 7, 15, UNI_MERC } /* script=meroiticcursive */,
- { 0, 3836, 9700, 17, 4, UNI_OLCK } /* scriptextensions=olck */,
- { 0, 1966, 4417, 22, 5, UNI_INSC__VOWEL } /* indicsyllabiccategory=vowel */,
- { 1, 10048, 5648, 3, 13, UNI_NV__1000000000000 } /* nv=1000000000000 */,
- { 0, 10024, 4898, 3, 15, UNI_PS } /* gc=openpunctuation */,
- { 1, 2218, 2470, 3, 19, UNI_INNYIAKENGPUACHUEHMONG } /* innyiakengpuachuehmong */,
- { 0, 184, 7068, 2, 10, UNI_ASCII } /* isbasiclatin */,
- { 2, 9488, 8131, 4, 8, UNI_INDUPLOYAN } /* blk=duployan */,
- { 0, 5986, 7987, 13, 8, UNI_NV__5_SLASH_8 } /* numericvalue=6.25e-01 */,
- { 0, 4989, 1368, 3, 3, UNI_UGAR } /* isugar */,
- { 12, 1417, 8817, 25, 5, UNI_CCC__129 } /* canonicalcombiningclass=ccc129 */,
- { 0, 9756, 0, 4, 0, UNI_RUNR } /* runr */,
- { 1, 8780, 8456, 6, 7, UNI_INKANNADA } /* block=kannada */,
- { 8, 8780, 838, 6, 29, UNI_MISCARROWS } /* block=miscellaneoussymbolsandarrows */,
- { 3, 5791, 5368, 13, 14, UNI_JG__MANICHAEANKAPH } /* joininggroup=manichaeankaph */,
- { 2, 184, 3421, 2, 18, UNI_RUMI } /* isruminumeralsymbols */,
- { 0, 10296, 7, 3, 1, UNI_PC } /* ispc */,
- { 5, 10048, 8010, 3, 2, UNI_NV__36 } /* nv=36 */,
- { 41, 598, 0, 2, 0, UNI_XPOSIXCNTRL } /* cc */,
- { 1, 5830, 0, 13, 0, UNI_LOWSURROGATES } /* lowsurrogates */,
- { 1, 9488, 6972, 4, 11, UNI_INSYLOTINAGRI } /* blk=sylotinagri */,
- { 2, 4688, 1284, 15, 9, UNI_IDENTIFIERTYPE__EXCLUSION } /* identifiertype=exclusion */,
- { 32, 8852, 3, 6, 1, -UNI_CWKCF } /* cwkcf=f */,
- { 0, 9508, 7922, 4, 2, UNI_CCC__24 } /* ccc=24 */,
- { 1, 6397, 0, 12, 0, UNI_MATHALPHANUM } /* mathalphanum */,
- { 1, 8780, 8888, 6, 6, UNI_INHATRAN } /* block=hatran */,
- { 1, 10048, 7765, 3, 1, UNI_NV__2 } /* nv=2 */,
- { 4, 5986, 9361, 13, 3, UNI_NV__1_SLASH_2 } /* numericvalue=1/2 */,
- { 0, 1966, 4305, 22, 5, UNI_INSC__OTHER } /* indicsyllabiccategory=other */,
- { 0, 4033, 74, 16, 2, UNI_ME } /* generalcategory=me */,
- { 2, 5986, 7995, 13, 8, UNI_NV__1_SLASH_16 } /* numericvalue=6.25e-02 */,
- { 2, 6231, 2141, 3, 10, UNI_CYRILLICSUP } /* incyrillicsup */,
- { 8, 8996, 3, 6, 1, -UNI_STERM } /* sterm=f */,
- { 0, 184, 9032, 2, 6, UNI_WCHO } /* iswancho */,
- { 8, 3937, 0, 16, 0, UNI_BOPOMOFOEXT } /* bopomofoextended */,
- { 10, 10048, 8066, 3, 2, UNI_NV__28 } /* nv=28 */,
- { 8, 2779, 3, 19, 1, -UNI_IDST } /* idstrinaryoperator=f */,
- { 6, 10009, 1417, 3, 9, UNI_DT__CAN } /* dt=canonical */,
- { 1, 3836, 9748, 17, 4, UNI_RJNG } /* scriptextensions=rjng */,
- { 22, 3836, 7675, 17, 9, UNI_PALM } /* scriptextensions=palmyrene */,
- { 14, 4643, 10135, 15, 3, UNI_ECOMP } /* emojicomponent=yes */,
- { 8, 10033, 125, 3, 2, UNI_LB__CR } /* lb=cr */,
- { 0, 8780, 8187, 6, 8, UNI_INHIRAGANA } /* block=hiragana */,
- { 12, 9500, 0, 4, 0, UNI_CAKM } /* cakm */,
- { 0, 4542, 4051, 4, 14, UNI_GEORGIANEXT } /* ingeorgianextended */,
- { 0, 9235, 1, 5, 1, -UNI_CWCM } /* cwcm=n */,
- { 0, 8780, 4569, 7, 14, UNI_CURRENCYSYMBOLS } /* block=currencysymbols */,
- { 9, 3836, 4273, 17, 7, UNI_MYMR } /* scriptextensions=myanmar */,
- { 1, 3836, 3115, 17, 10, UNI_DEVA } /* scriptextensions=devanagari */,
- { 0, 8589, 8786, 7, 6, UNI_CARI } /* script=carian */,
- { 8, 9277, 9680, 3, 4, UNI_NBAT } /* sc=nbat */,
- { 0, 1417, 7950, 24, 1, UNI_CCC__9 } /* canonicalcombiningclass=9 */,
- { 1, 9277, 9900, 3, 4, UNI_ZZZZ } /* sc=zzzz */,
- { 0, 9680, 0, 4, 0, UNI_NBAT } /* nbat */,
- { 11, 3836, 9504, 17, 4, UNI_CANS } /* scriptextensions=cans */,
- { 0, 1417, 7765, 24, 2, UNI_CCC__25 } /* canonicalcombiningclass=25 */,
- { 0, 2032, 36, 22, 1, UNI__PERL_NCHAR } /* noncharactercodepoint=t */,
- { 33, 10290, 467, 6, 5, UNI_XPOSIXPUNCT } /* xposixpunct */,
- { 0, 2076, 0, 15, 0, UNI_TRANSPORTANDMAP } /* transportandmap */,
- { 34, 9508, 5649, 4, 1, UNI_CCC__0 } /* ccc=0 */,
- { 18, 9260, 9255, 5, 5, -UNI_IDSB } /* idsb=false */,
- { 4, 5986, 7781, 13, 2, UNI_NV__43 } /* numericvalue=43 */,
- { 1, 184, 9305, 2, 5, UNI_NSHU } /* isnushu */,
- { 3, 5986, 7779, 13, 8, UNI_NV__1_SLASH_7 } /* numericvalue=1.43e-01 */,
- { 0, 10132, 495, 3, 2, UNI_WB__NU } /* wb=nu */,
- { 0, 10033, 5746, 3, 5, UNI_EBASE } /* lb=ebase */,
- { 1, 1166, 26, 26, 1, UNI_DI } /* defaultignorablecodepoint=y */,
- { 1, 9768, 1537, 5, 3, UNI_SIND } /* scx=sind */,
- { 0, 7218, 4842, 10, 2, UNI_LB__QU } /* linebreak=qu */,
- { 0, 3921, 0, 9, 0, UNI_ARABICSUP } /* arabicsup */,
- { 1, 7088, 102, 10, 2, UNI_BC__ET } /* bidiclass=et */,
- { 6, 8768, 1, 6, 1, -UNI_BIDIC } /* bidic=n */,
- { 1, 1417, 2449, 24, 4, UNI_CCC__L } /* canonicalcombiningclass=left */,
- { 0, 184, 7576, 2, 9, UNI_LATINEXTB } /* islatinextb */,
- { 1, 9488, 3666, 4, 17, UNI_CYRILLICEXTC } /* blk=cyrillicextendedc */,
- { 1, 7076, 2609, 3, 5, UNI_INBRAHMI } /* inbrahmi */,
- { 0, 8449, 1, 7, 1, -UNI_HYPHEN } /* hyphen=n */,
- { 86, 9556, 1087, 4, 7, UNI_GCB__PP } /* gcb=prepend */,
- { 0, 8997, 1, 5, 1, -UNI_TERM } /* term=n */,
- { 1, 9265, 0, 5, 0, UNI_idst_values_index } /* idst= */,
- { 0, 4033, 2061, 16, 14, UNI_LM } /* generalcategory=modifierletter */,
- { 0, 9488, 2245, 4, 14, UNI_MEETEIMAYEKEXT } /* blk=meeteimayekext */,
- { 0, 8589, 8561, 7, 4, UNI_OSMA } /* script=osma */,
- { 6, 3836, 2485, 17, 4, UNI_MONG } /* scriptextensions=mong */,
- { 0, 2182, 262, 21, 2, UNI_GCB__SM } /* graphemeclusterbreak=sm */,
- { 10, 8589, 3598, 7, 17, UNI_AGHB } /* script=caucasianalbanian */,
- { 100, 3836, 2288, 18, 3, UNI_SINH } /* scriptextensions=sinh */,
- { 14, 9768, 9880, 4, 4, UNI_YI } /* scx=yiii */,
- { 1, 10027, 10000, 3, 3, UNI_JG__BEH } /* jg=beh */,
- { 2, 9488, 4049, 4, 16, UNI_GEORGIANEXT } /* blk=georgianextended */,
- { 1, 5037, 1025, 9, 2, -UNI_XPOSIXXDIGIT } /* hexdigit=no */,
- { 0, 7684, 0, 9, 0, UNI_PAUC } /* paucinhau */,
- { 2, 9070, 9836, 5, 4, UNI_POSIXXDIGIT } /* ahex=true */,
- { 0, 8589, 8187, 7, 4, UNI_SC__HIRA } /* script=hira */,
- { 16, 9768, 9628, 4, 4, UNI_LATN } /* scx=latn */,
- { 0, 1417, 1755, 24, 2, UNI_CCC__DB } /* canonicalcombiningclass=db */,
- { 6, 10048, 1249, 3, 3, UNI_NV__NAN } /* nv=nan */,
- { 32, 2061, 0, 4, 0, UNI_MODI } /* modi */,
- { 2, 9524, 9255, 4, 5, -UNI_CWT } /* cwt=false */,
- { 5, 10288, 5040, 8, 5, UNI_XPOSIXDIGIT } /* isxposixdigit */,
- { 5, 184, 4598, 2, 15, UNI_DIACRITICALSEXT } /* isdiacriticalsext */,
- { 0, 9346, 9255, 4, 5, -UNI_IDC } /* idc=false */,
- { 0, 6181, 0, 12, 0, UNI_GONG } /* gunjalagondi */,
- { 4, 6928, 9836, 11, 4, UNI_SD } /* softdotted=true */,
- { 0, 21, 1673, 2, 4, UNI_JAMO } /* injamo */,
- { 0, 8762, 3, 6, 1, -UNI_XPOSIXALPHA } /* alpha=f */,
- { 3, 1700, 0, 23, 0, UNI_SHORTHANDFORMATCONTROLS } /* shorthandformatcontrols */,
- { 5, 8589, 9712, 7, 4, UNI_OSGE } /* script=osge */,
- { 98, 1417, 9940, 24, 3, UNI_CCC__A } /* canonicalcombiningclass=230 */,
- { 1, 5791, 756, 13, 3, UNI_JG__DAL } /* joininggroup=dal */,
- { 4, 184, 122, 2, 9, UNI_DIA } /* isdiacritic */,
- { 0, 7218, 5585, 10, 2, UNI_EBASE } /* linebreak=eb */,
- { 0, 10291, 96, 5, 5, UNI_POSIXALPHA } /* posixalpha */,
- { 1, 10024, 1287, 3, 2, UNI_UPPERCASELETTER } /* gc=lu */,
- { 41, 9235, 1025, 5, 2, -UNI_CWCM } /* cwcm=no */,
- { 2, 7408, 0, 10, 0, UNI_CN } /* unassigned */,
- { 18, 9262, 0, 3, 0, UNI_sb_values_index } /* sb= */,
- { 0, 3836, 9797, 18, 3, UNI_SYRC } /* scriptextensions=syrc */,
- { 2, 7155, 1655, 3, 5, UNI_HANG } /* ishangul */,
- { 1, 382, 0, 32, 0, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* egyptianhieroglyphformatcontrols */,
- { 0, 5746, 3, 6, 1, -UNI_EBASE } /* ebase=f */,
- { 1, 3385, 10135, 18, 3, UNI_RI } /* regionalindicator=yes */,
- { 7, 9240, 9836, 5, 4, UNI_DASH } /* dash=true */,
- { 1, 7218, 0, 10, 0, UNI_lb_values_index } /* linebreak= */,
- { 4, 1417, 9176, 25, 4, UNI_CCC__29 } /* canonicalcombiningclass=ccc29 */,
- { 1, 10288, 6554, 3, 3, UNI_XIDC } /* isxidc */,
- { 0, 3901, 8173, 4, 6, UNI_INGUJARATI } /* ingujarati */,
- { 1, 3649, 0, 17, 0, UNI_CYRILLICEXTB } /* cyrillicextendedb */,
- { 0, 9277, 7684, 3, 4, UNI_PAUC } /* sc=pauc */,
- { 1, 1417, 7978, 24, 2, UNI_CCC__16 } /* canonicalcombiningclass=16 */,
- { 11, 5214, 0, 6, 0, UNI_KANGXI } /* kangxi */,
- { 0, 5578, 400, 14, 6, UNI_SB__FO } /* sentencebreak=format */,
- { 52, 9277, 2245, 3, 11, UNI_MTEI } /* sc=meeteimayek */,
- { 1, 8780, 9315, 6, 5, UNI_INORIYA } /* block=oriya */,
- { 0, 2218, 16, 3, 1, UNI_NB } /* innb */,
- { 0, 9277, 3241, 3, 4, UNI_SC__GEOR } /* sc=geor */,
- { 2, 1768, 0, 21, 0, UNI_CWCF } /* changeswhencasefolded */,
- { 2, 1856, 36, 22, 1, UNI_CWU } /* changeswhenuppercased=t */,
- { 8, 8589, 8942, 7, 6, UNI_LYDI } /* script=lydian */,
- { 13, 9488, 7368, 4, 10, UNI_SMALLFORMS } /* blk=smallforms */,
- { 0, 8930, 3, 6, 1, -UNI_XPOSIXLOWER } /* lower=f */,
- { 20, 9488, 3600, 4, 4, UNI_UCAS } /* blk=ucas */,
- { 0, 4033, 6851, 16, 11, UNI_LO } /* generalcategory=otherletter */,
- { 16, 8780, 7594, 6, 9, UNI_LATINEXTD } /* block=latinextd */,
- { 1, 7088, 3187, 10, 18, UNI_BC__ET } /* bidiclass=europeanterminator */,
- { 18, 7318, 9982, 10, 3, UNI_IN__6_DOT_3 } /* presentin=6.3 */,
- { 2, 9508, 8002, 4, 2, UNI_CCC__26 } /* ccc=26 */,
- { 1, 8780, 3937, 6, 8, UNI_INBOPOMOFO } /* block=bopomofo */,
- { 0, 9508, 9181, 5, 4, UNI_CCC__30 } /* ccc=ccc30 */,
- { 0, 5452, 26, 14, 1, UNI_NFCQC__Y } /* nfcquickcheck=y */,
- { 0, 1867, 0, 5, 0, UNI_XPOSIXUPPER } /* upper */,
- { 1, 10033, 3379, 3, 5, UNI_LB__SP } /* lb=space */,
- { 1, 10009, 6421, 3, 12, UNI_DT__NONCANON } /* dt=noncanonical */,
- { 1, 9488, 0, 4, 34, UNI_UCAS } /* blk=unifiedcanadianaboriginalsyllabics */,
- { 0, 10048, 8003, 3, 8, UNI_NV__1_SLASH_160 } /* nv=6.25e-03 */,
- { 0, 5116, 26, 14, 1, UNI_EMOD } /* emojimodifier=y */,
- { 0, 8780, 478, 6, 31, UNI_MATHALPHANUM } /* block=mathematicalalphanumericsymbols */,
- { 0, 10333, 8618, 3, 6, UNI_SOYO } /* issoyombo */,
- { 6, 9488, 8666, 4, 7, UNI_INTIRHUTA } /* blk=tirhuta */,
- { 0, 8996, 9255, 6, 5, -UNI_STERM } /* sterm=false */,
- { 0, 8780, 4002, 7, 15, UNI_CYPRIOTSYLLABARY } /* block=cypriotsyllabary */,
- { 1, 10290, 7438, 6, 4, UNI_XPOSIXWORD } /* xposixword */,
- { 1, 1585, 0, 23, 0, UNI_BYZANTINEMUSIC } /* byzantinemusicalsymbols */,
- { 0, 4113, 952, 3, 17, UNI_INVS } /* invariationselectors */,
- { 0, 2280, 9321, 3, 4, UNI_OSGE } /* isosage */,
- { 6, 9672, 0, 4, 0, UNI_MYMR } /* mymr */,
- { 18, 9277, 0, 3, 0, UNI_sc_values_index } /* sc= */,
- { 0, 9277, 9008, 3, 4, UNI_SC__THAA } /* sc=thaa */,
- { 0, 9277, 7428, 3, 4, UNI_WARA } /* sc=wara */,
- { 12, 184, 6385, 2, 12, UNI_GONM } /* ismasaramgondi */,
- { 0, 5947, 0, 13, 0, UNI_MAYANNUMERALS } /* mayannumerals */,
- { 0, 9277, 9628, 3, 4, UNI_SC__LATN } /* sc=latn */,
- { 4, 8894, 0, 6, 0, UNI_joinc_values_index } /* joinc= */,
- { 0, 9275, 6457, 5, 12, UNI_INSC__NUMBERJOINER } /* insc=numberjoiner */,
- { 0, 5986, 9061, 13, 4, UNI_NV__1_SLASH_12 } /* numericvalue=1/12 */,
- { 2, 8187, 0, 8, 0, UNI_HIRA } /* hiragana */,
- { 0, 184, 1879, 3, 21, UNI_CJKCOMPATIDEOGRAPHSSUP } /* iscjkcompatideographssup */,
- { 9, 9508, 3572, 4, 9, UNI_CCC__BL } /* ccc=belowleft */,
- { 1, 3683, 0, 16, 0, UNI_ETHIOPICEXT } /* ethiopicextended */,
- { 0, 184, 3358, 2, 9, UNI_Z } /* isseparator */,
- { 1, 1966, 4523, 22, 15, UNI_INSC__CONSONANTMEDIAL } /* indicsyllabiccategory=consonantmedial */,
- { 0, 9768, 9484, 4, 4, UNI_BHKS } /* scx=bhks */,
- { 1, 8780, 4613, 6, 15, UNI_DIACRITICALSSUP } /* block=diacriticalssup */,
- { 0, 9277, 9792, 3, 4, UNI_SOGO } /* sc=sogo */,
- { 17, 184, 9692, 2, 4, UNI_NSHU } /* isnshu */,
- { 1, 2182, 6169, 21, 12, UNI_WB__EB } /* graphemeclusterbreak=glueafterzwj */,
- { 0, 7318, 9856, 10, 4, UNI_IN__13 } /* presentin=v130 */,
- { 1, 3836, 9832, 17, 4, UNI_TIBT } /* scriptextensions=tibt */,
- { 0, 9270, 468, 3, 10, UNI_INPUNCTUATION } /* inpunctuation */,
- { 2, 5791, 5843, 13, 13, UNI_JG__MALAYALAMLLLA } /* joininggroup=malayalamllla */,
- { 2, 3097, 45, 18, 3, UNI_DT__COM } /* decompositiontype=com */,
- { 0, 10048, 4134, 3, 1, UNI_NV__1 } /* nv=1 */,
- { 0, 8463, 0, 7, 0, UNI_KALI } /* kayahli */,
- { 0, 8435, 9836, 7, 4, UNI_GRBASE } /* grbase=true */,
- { 24, 6553, 3, 12, 1, -UNI_XIDC } /* xidcontinue=f */,
- { 1, 4583, 0, 15, 0, UNI_PD } /* dashpunctuation */,
- { 16, 10288, 5040, 3, 5, UNI_XPOSIXXDIGIT } /* isxdigit */,
- { 0, 9768, 9736, 4, 4, UNI_COPT } /* scx=qaac */,
- { 2, 8780, 4928, 6, 15, UNI_TAMILSUP } /* block=tamilsupplement */,
- { 2, 9768, 9900, 4, 4, UNI_ZZZZ } /* scx=zzzz */,
- { 44, 10333, 17, 3, 1, UNI_SO } /* isso */,
- { 1, 8442, 0, 7, 0, UNI_HANO } /* hanunoo */,
- { 1, 1828, 0, 5, 0, UNI_CASED } /* cased */,
- { 0, 8894, 26, 6, 1, UNI_JOINC } /* joinc=y */,
- { 1, 1834, 26, 22, 1, UNI_CWT } /* changeswhentitlecased=y */,
- { 0, 78, 0, 35, 0, UNI_ARABICMATH } /* arabicmathematicalalphabeticsymbols */,
- { 0, 10033, 3385, 3, 17, UNI_RI } /* lb=regionalindicator */,
- { 1, 8589, 2288, 8, 6, UNI_SC__SINH } /* script=sinhala */,
- { 0, 8688, 5033, 3, 12, UNI_POSIXXDIGIT } /* isasciihexdigit */,
- { 8, 3374, 10135, 11, 3, UNI_XPOSIXSPACE } /* whitespace=yes */,
- { 2, 7158, 3, 10, 1, -UNI_DIA } /* diacritic=f */,
- { 2, 8589, 1218, 7, 8, UNI_SC__KANA } /* script=katakana */,
- { 2, 5986, 9924, 13, 2, UNI_NV__42 } /* numericvalue=42 */,
- { 4, 184, 8853, 3, 4, UNI_CWKCF } /* iscwkcf */,
- { 3, 10048, 9984, 3, 2, UNI_NV__37 } /* nv=37 */,
- { 0, 1845, 0, 9, 0, UNI_TITLE } /* titlecase */,
- { 0, 9350, 0, 5, 0, UNI_xids_values_index } /* xids= */,
- { 2, 8780, 6253, 6, 5, UNI_INKHMER } /* block=khmer */,
- { 0, 184, 570, 3, 29, UNI_CJKEXTC } /* iscjkunifiedideographsextensionc */,
- { 0, 5791, 7016, 13, 11, UNI_JG__YEHWITHTAIL } /* joininggroup=yehwithtail */,
- { 3, 10009, 1253, 3, 7, UNI_DT__INIT } /* dt=initial */,
- { 3, 184, 4808, 2, 15, UNI_MISCPICTOGRAPHS } /* ismiscpictographs */,
- { 3, 9488, 2684, 4, 19, UNI_INEGYPTIANHIEROGLYPHS } /* blk=egyptianhieroglyphs */,
- { 3, 2529, 26, 20, 1, UNI_TERM } /* terminalpunctuation=y */,
- { 1, 9488, 4479, 5, 14, UNI_BRAI } /* blk=braillepatterns */,
- { 1, 2224, 4370, 3, 15, UNI_SYRIACSUP } /* insyriacsupplement */,
- { 0, 8589, 9516, 7, 4, UNI_SC__CPRT } /* script=cprt */,
- { 0, 7088, 0, 11, 0, UNI_BC__B } /* bidiclass=b */,
- { 0, 1417, 7922, 24, 2, UNI_CCC__24 } /* canonicalcombiningclass=24 */,
- { 10, 3836, 8243, 17, 8, UNI_MAHJ } /* scriptextensions=mahajani */,
- { 0, 8589, 9484, 7, 4, UNI_BHKS } /* script=bhks */,
- { 5, 184, 6229, 2, 11, UNI_JOINC } /* isjoincontrol */,
- { 0, 4033, 1217, 16, 2, UNI_SK } /* generalcategory=sk */,
- { 3, 9640, 9836, 4, 4, UNI_LOE } /* loe=true */,
- { 0, 7739, 36, 8, 1, UNI_IDS } /* idstart=t */,
- { 2, 9277, 9668, 3, 4, UNI_MTEI } /* sc=mtei */,
- { 0, 9997, 24, 3, 1, UNI_BC__L } /* bc=l */,
- { 1, 184, 4448, 2, 4, UNI_BAMU } /* isbamu */,
- { 3, 9277, 9592, 3, 4, UNI_HMNP } /* sc=hmnp */,
- { 34, 9277, 9776, 3, 4, UNI_SGNW } /* sc=sgnw */,
- { 3, 6205, 36, 12, 1, UNI_IDEO } /* ideographic=t */,
- { 16, 7088, 3756, 10, 3, UNI_BC__NSM } /* bidiclass=nsm */,
- { 0, 21, 9032, 2, 6, UNI_INWANCHO } /* inwancho */,
- { 3, 2182, 125, 21, 2, UNI_LB__CR } /* graphemeclusterbreak=cr */,
- { 17, 8589, 8179, 7, 8, UNI_SC__GURU } /* script=gurmukhi */,
- { 2, 9277, 8337, 3, 7, UNI_AVST } /* sc=avestan */,
- { 0, 9536, 9836, 4, 4, UNI_DEP } /* dep=true */,
- { 0, 9262, 69, 3, 2, UNI_SB__UP } /* sb=up */,
- { 6, 2054, 0, 22, 0, UNI_MODIFIERLETTERS } /* spacingmodifierletters */,
- { 1, 7218, 7512, 10, 2, UNI_LB__BB } /* linebreak=bb */,
- { 0, 5674, 0, 12, 0, UNI_BIDIM } /* bidimirrored */,
- { 2, 9488, 6481, 4, 12, UNI_INOLDHUNGARIAN } /* blk=oldhungarian */,
- { 10, 184, 11, 2, 3, UNI_DIA } /* isdia */,
- { 6, 4116, 3260, 3, 16, UNI_IDSB } /* isidsbinaryoperator */,
- { 1, 5037, 26, 9, 1, UNI_XPOSIXXDIGIT } /* hexdigit=y */,
- { 32, 9508, 7890, 4, 2, UNI_CCC__33 } /* ccc=33 */,
- { 0, 9277, 9548, 3, 4, UNI_DSRT } /* sc=dsrt */,
- { 0, 5791, 7055, 13, 3, UNI_JG__QAF } /* joininggroup=qaf */,
- { 4, 21, 9285, 2, 5, UNI_INLIMBU } /* inlimbu */,
- { 16, 9277, 719, 3, 9, UNI_XSUX } /* sc=cuneiform */,
- { 8, 8780, 1218, 6, 8, UNI_INKATAKANA } /* block=katakana */,
- { 2, 9488, 1319, 4, 25, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* blk=symbolsandpictographsexta */,
- { 0, 1417, 7821, 24, 1, UNI_CCC__8 } /* canonicalcombiningclass=8 */,
- { 6, 10296, 96, 7, 5, UNI_POSIXALPHA } /* isposixalpha */,
- { 0, 8780, 4448, 6, 15, UNI_BAMUMSUP } /* block=bamumsupplement */,
- { 8, 7218, 3385, 10, 17, UNI_RI } /* linebreak=regionalindicator */,
- { 1, 9636, 0, 4, 0, UNI_LINB } /* linb */,
- { 0, 9488, 467, 4, 11, UNI_INPUNCTUATION } /* blk=punctuation */,
- { 17, 9277, 8942, 3, 6, UNI_LYDI } /* sc=lydian */,
- { 2, 10024, 1171, 3, 2, UNI_TITLE } /* gc=lt */,
- { 0, 4033, 4017, 16, 16, UNI_PF } /* generalcategory=finalpunctuation */,
- { 0, 10033, 6179, 3, 2, UNI_LB__WJ } /* lb=wj */,
- { 38, 4658, 9255, 15, 5, -UNI_GREXT } /* graphemeextend=false */,
- { 16, 10048, 8714, 3, 3, UNI_NV__300 } /* nv=300 */,
- { 1, 9235, 0, 5, 0, UNI_cwcm_values_index } /* cwcm= */,
- { 0, 9596, 36, 4, 1, UNI_GCB__T } /* hst=t */,
- { 20, 9768, 9283, 4, 4, UNI_PHLI } /* scx=phli */,
- { 0, 8762, 9255, 6, 5, -UNI_XPOSIXALPHA } /* alpha=false */,
- { 4, 3836, 8561, 17, 7, UNI_OSMA } /* scriptextensions=osmanya */,
- { 0, 8589, 7, 7, 18, UNI_CANS } /* script=canadianaboriginal */,
- { 1, 9488, 6554, 4, 3, UNI_INIDC } /* blk=idc */,
- { 0, 8984, 1, 6, 1, -UNI_QMARK } /* qmark=n */,
- { 24, 10027, 6301, 3, 12, UNI_JG__MALAYALAMLLA } /* jg=malayalamlla */,
- { 3, 184, 9564, 2, 4, UNI_GONM } /* isgonm */,
- { 0, 4033, 6873, 16, 11, UNI_SO } /* generalcategory=othersymbol */,
- { 0, 8780, 6385, 6, 12, UNI_INMASARAMGONDI } /* block=masaramgondi */,
- { 49, 8762, 9836, 6, 4, UNI_XPOSIXALPHA } /* alpha=true */,
- { 0, 184, 10170, 2, 2, UNI_CASEDLETTER } /* isl_ */,
- { 0, 8589, 9900, 7, 4, UNI_ZZZZ } /* script=zzzz */,
- { 0, 10063, 9836, 3, 4, UNI_SD } /* sd=true */,
- { 0, 9488, 3169, 4, 18, UNI_ETHIOPICSUP } /* blk=ethiopicsupplement */,
- { 2, 6229, 0, 11, 0, UNI_JOINC } /* joincontrol */,
- { 1, 9277, 9002, 3, 6, UNI_SC__TELU } /* sc=telugu */,
- { 1, 8780, 7119, 7, 9, UNI_INCHORASMIAN } /* block=chorasmian */,
- { 13, 6553, 9255, 12, 5, -UNI_XIDC } /* xidcontinue=false */,
- { 2, 9277, 9335, 3, 5, UNI_SC__TAKR } /* sc=takri */,
- { 0, 4829, 2411, 4, 18, UNI_GLAGOLITICSUP } /* inglagoliticsupplement */,
- { 2, 8589, 8491, 7, 7, UNI_MARC } /* script=marchen */,
- { 0, 1856, 9255, 22, 5, -UNI_CWU } /* changeswhenuppercased=false */,
- { 4, 10048, 7923, 3, 8, UNI_NV__2_SLASH_5 } /* nv=4.00e-01 */,
- { 49, 9768, 8942, 4, 4, UNI_LYDI } /* scx=lydi */,
- { 4, 7318, 7987, 10, 3, UNI_IN__6_DOT_2 } /* presentin=6.2 */,
- { 0, 3666, 0, 17, 0, UNI_CYRILLICEXTC } /* cyrillicextendedc */,
- { 5, 9032, 0, 6, 0, UNI_WCHO } /* wancho */,
- { 1, 10027, 6157, 3, 12, UNI_JG__FINALSEMKATH } /* jg=finalsemkath */,
- { 0, 9540, 36, 4, 1, UNI_DIA } /* dia=t */,
- { 0, 3836, 9516, 17, 4, UNI_CPRT } /* scriptextensions=cprt */,
- { 2, 9277, 7, 3, 18, UNI_CANS } /* sc=canadianaboriginal */,
- { 2, 9277, 3025, 3, 4, UNI_CHER } /* sc=cher */,
- { 2, 184, 9752, 2, 4, UNI_ROHG } /* isrohg */,
- { 0, 5564, 3, 14, 1, -UNI_QMARK } /* quotationmark=f */,
- { 1, 9508, 9186, 5, 4, UNI_CCC__31 } /* ccc=ccc31 */,
- { 3, 8780, 9310, 6, 5, UNI_INOGHAM } /* block=ogham */,
- { 1, 9277, 2224, 3, 21, UNI_PRTI } /* sc=inscriptionalparthian */,
- { 0, 1552, 1465, 9, 13, UNI_M } /* category=combiningmark */,
- { 1, 2280, 125, 3, 2, UNI_OCR } /* isocr */,
- { 0, 9508, 9223, 4, 2, UNI_CCC__91 } /* ccc=91 */,
- { 12, 5791, 65, 15, 2, UNI_JG__KAPH } /* joininggroup=kaph */,
- { 0, 184, 951, 2, 18, UNI_INVS } /* isvariationselectors */,
- { 1, 10126, 3511, 3, 18, UNI_VO__TU } /* vo=transformedupright */,
- { 5, 9277, 1115, 3, 4, UNI_SC__HANG } /* sc=hang */,
- { 32, 7218, 21, 10, 2, UNI_LB__IN } /* linebreak=in */,
- { 5, 4916, 9336, 3, 4, UNI_TAKR } /* istakri */,
- { 1, 9277, 8407, 3, 7, UNI_DSRT } /* sc=deseret */,
- { 50, 10132, 8505, 3, 7, UNI_WB__NL } /* wb=newline */,
- { 0, 1417, 7933, 24, 2, UNI_CCC__17 } /* canonicalcombiningclass=17 */,
- { 6, 5791, 2627, 13, 19, UNI_JG__BURUSHASKIYEHBARREE } /* joininggroup=burushaskiyehbarree */,
- { 0, 8780, 2141, 7, 7, UNI_INCYRILLIC } /* block=cyrillic */,
- { 6, 10333, 8604, 3, 6, UNI_SHAW } /* isshavian */,
- { 2, 10027, 5934, 3, 13, UNI_JG__MANICHAEANWAW } /* jg=manichaeanwaw */,
- { 0, 184, 5494, 2, 14, UNI_MN } /* isnonspacingmark */,
- { 9, 5986, 8003, 13, 8, UNI_NV__1_SLASH_160 } /* numericvalue=6.25e-03 */,
- { 0, 10132, 72, 3, 2, UNI_WB__LE } /* wb=le */,
- { 14, 7076, 8346, 4, 5, UNI_INBENGALI } /* inbengali */,
- { 18, 21, 9624, 2, 3, UNI_INLAO } /* inlao */,
- { 1, 9488, 2076, 4, 22, UNI_TRANSPORTANDMAP } /* blk=transportandmapsymbols */,
- { 0, 1988, 0, 21, 0, UNI_LOE } /* logicalorderexception */,
- { 10, 4916, 2077, 3, 14, UNI_TRANSPORTANDMAP } /* istransportandmap */,
- { 2, 5578, 0, 14, 0, UNI_sb_values_index } /* sentencebreak= */,
- { 2, 4791, 6830, 3, 10, UNI_MYANMAREXTB } /* inmyanmarextb */,
- { 0, 8780, 5661, 6, 13, UNI_AEGEANNUMBERS } /* block=aegeannumbers */,
- { 0, 10024, 5592, 3, 14, UNI_ZS } /* gc=spaceseparator */,
- { 6, 2140, 0, 21, 0, UNI_CYRILLICSUP } /* cyrillicsupplementary */,
- { 0, 8852, 10135, 6, 3, UNI_CWKCF } /* cwkcf=yes */,
- { 0, 9488, 923, 4, 28, UNI_SUPPUAB } /* blk=supplementaryprivateuseareab */,
- { 3, 8147, 1942, 10, 3, -UNI_EXTPICT } /* extpict=false */,
- { 2, 8780, 6181, 6, 12, UNI_INGUNJALAGONDI } /* block=gunjalagondi */,
- { 3, 8589, 9732, 7, 4, UNI_PRTI } /* script=prti */,
- { 6, 3382, 3, 3, 1, -UNI_CE } /* ce=f */,
- { 8, 10048, 5649, 3, 1, UNI_NV__0 } /* nv=0 */,
- { 0, 9508, 4134, 4, 1, UNI_CCC__1 } /* ccc=1 */,
- { 0, 7218, 7486, 10, 9, UNI_LB__AI } /* linebreak=ambiguous */,
- { 0, 7308, 0, 10, 0, UNI_PHNX } /* phoenician */,
- { 1, 9277, 57, 3, 2, UNI_SC__YI } /* sc=yi */,
- { 1, 8589, 9832, 7, 4, UNI_TIBT } /* script=tibt */,
- { 2, 1552, 5593, 10, 13, UNI_ZS } /* category=spaceseparator */,
- { 0, 8547, 0, 7, 0, UNI_OLCK } /* olchiki */,
- { 4, 3836, 7621, 17, 9, UNI_NBAT } /* scriptextensions=nabataean */,
- { 0, 6805, 187, 6, 16, UNI_MISCSYMBOLS } /* inmiscellaneoussymbols */,
- { 0, 749, 0, 21, 0, UNI_ENCLOSEDALPHANUM } /* enclosedalphanumerics */,
- { 8, 9768, 8123, 4, 4, UNI_BUGI } /* scx=bugi */,
- { 1, 21, 5033, 3, 4, UNI_ASCII } /* inascii */,
- { 2, 3836, 8942, 17, 4, UNI_LYDI } /* scriptextensions=lydi */,
- { 1, 9768, 9872, 4, 4, UNI_XPEO } /* scx=xpeo */,
- { 28, 10033, 414, 3, 11, UNI_LB__ID } /* lb=ideographic */,
- { 19, 9444, 10120, 4, 3, UNI_AGE__8 } /* age=v80 */,
- { 4, 10033, 988, 3, 2, UNI_LB__CP } /* lb=cp */,
- { 0, 10048, 8714, 3, 2, UNI_NV__30 } /* nv=30 */,
- { 43, 5791, 5892, 13, 3, UNI_JG__NUN } /* joininggroup=nun */,
- { 1, 10129, 9836, 3, 4, UNI_VS } /* vs=true */,
- { 3, 184, 540, 3, 29, UNI_CJKEXTB } /* iscjkunifiedideographsextensionb */,
- { 0, 1552, 0, 10, 0, UNI_S } /* category=s */,
- { 1, 8780, 4793, 6, 15, UNI_INMEROITICCURSIVE } /* block=meroiticcursive */,
- { 4, 9997, 2509, 3, 20, UNI_BC__RLE } /* bc=righttoleftembedding */,
- { 11, 3836, 9592, 17, 4, UNI_HMNP } /* scriptextensions=hmnp */,
- { 0, 3079, 0, 18, 0, UNI_COPTICEPACTNUMBERS } /* copticepactnumbers */,
- { 40, 3836, 9604, 17, 4, UNI_KHMR } /* scriptextensions=khmr */,
- { 0, 8780, 3683, 6, 17, UNI_ETHIOPICEXTA } /* block=ethiopicextendeda */,
- { 0, 7158, 26, 10, 1, UNI_DIA } /* diacritic=y */,
- { 1, 4916, 1846, 3, 8, UNI_TITLE } /* istitlecase */,
- { 1, 8400, 0, 6, 0, UNI_COMPEX } /* compex */,
- { 0, 6469, 5713, 12, 7, UNI_XPOSIXDIGIT } /* numerictype=decimal */,
- { 64, 10024, 728, 3, 6, UNI_N } /* gc=number */,
- { 1, 9508, 7806, 4, 1, UNI_CCC__6 } /* ccc=6 */,
- { 0, 3836, 7630, 17, 9, UNI_TALU } /* scriptextensions=newtailue */,
- { 17, 9277, 9095, 3, 5, UNI_SC__BUHD } /* sc=buhid */,
- { 2, 9728, 0, 4, 0, UNI_MIAO } /* plrd */,
- { 2, 7088, 4321, 10, 16, UNI_BC__S } /* bidiclass=segmentseparator */,
- { 17, 8780, 1294, 6, 25, UNI_SUPERANDSUB } /* block=superscriptsandsubscripts */,
- { 2, 5674, 26, 13, 1, UNI_BIDIM } /* bidimirrored=y */,
- { 9, 9488, 3632, 4, 17, UNI_CYRILLICEXTA } /* blk=cyrillicextendeda */,
- { 0, 3836, 9812, 17, 4, UNI_TAML } /* scriptextensions=taml */,
- { 0, 21, 6253, 2, 12, UNI_KHMERSYMBOLS } /* inkhmersymbols */,
- { 0, 8694, 36, 7, 1, UNI_XPOSIXSPACE } /* wspace=t */,
- { 0, 8864, 1, 6, 1, -UNI_EMOJI } /* emoji=n */,
- { 0, 3836, 8618, 18, 3, UNI_SOYO } /* scriptextensions=soyo */,
- { 3, 8589, 9560, 7, 4, UNI_SC__GONG } /* script=gong */,
- { 32, 184, 4478, 2, 15, UNI_BRAI } /* isbraillepatterns */,
- { 1, 7155, 8889, 3, 5, UNI_HATR } /* ishatran */,
- { 1, 9488, 8275, 4, 8, UNI_SPECIALS } /* blk=specials */,
- { 0, 9508, 8727, 4, 2, UNI_CCC__32 } /* ccc=32 */,
- { 0, 9768, 9704, 4, 4, UNI_ORKH } /* scx=orkh */,
- { 2, 3097, 749, 18, 3, UNI_DT__ENC } /* decompositiontype=enc */,
- { 0, 9768, 1176, 5, 3, UNI_SORA } /* scx=sora */,
- { 0, 10327, 47, 5, 1, UNI_PERM } /* isperm */,
- { 17, 5060, 9836, 14, 4, UNI_CI } /* caseignorable=true */,
- { 2, 8267, 1025, 8, 2, -UNI_RADICAL } /* radical=no */,
- { 1, 10048, 5648, 3, 9, UNI_NV__100000000 } /* nv=100000000 */,
- { 0, 184, 9612, 2, 4, UNI_KNDA } /* isknda */,
- { 0, 7325, 7754, 3, 2, UNI_IN__11 } /* in=11 */,
- { 0, 5791, 6325, 13, 12, UNI_JG__MALAYALAMNNA } /* joininggroup=malayalamnna */,
- { 0, 5060, 3, 14, 1, -UNI_CI } /* caseignorable=f */,
- { 45, 6818, 0, 11, 0, UNI_MYANMAREXTA } /* myanmarexta */,
- { 1, 5578, 34, 14, 2, UNI_SB__EX } /* sentencebreak=ex */,
- { 0, 8589, 8786, 7, 4, UNI_CARI } /* script=cari */,
- { 3, 1552, 728, 9, 6, UNI_N } /* category=number */,
- { 6, 5986, 7947, 13, 8, UNI_NV__3_SLASH_64 } /* numericvalue=4.69e-02 */,
- { 0, 8589, 9448, 7, 4, UNI_AGHB } /* script=aghb */,
- { 0, 4116, 5779, 3, 5, UNI_IPAEXT } /* isipaext */,
- { 7, 8780, 720, 7, 29, UNI_CUNEIFORMNUMBERS } /* block=cuneiformnumbersandpunctuation */,
- { 1, 10320, 17, 5, 1, UNI_XPEO } /* isxpeo */,
- { 14, 9508, 9121, 5, 4, UNI_CCC__18 } /* ccc=ccc18 */,
- { 0, 6231, 2120, 3, 13, UNI_CJKRADICALSSUP } /* incjkradicalssup */,
- { 1, 9277, 6385, 3, 12, UNI_SC__GONM } /* sc=masaramgondi */,
- { 0, 8575, 9836, 7, 4, UNI_PATSYN } /* patsyn=true */,
- { 4, 8589, 8491, 7, 4, UNI_MARC } /* script=marc */,
- { 3, 9277, 8840, 3, 6, UNI_SC__CAKM } /* sc=chakma */,
- { 0, 1417, 9943, 24, 3, UNI_CCC__AR } /* canonicalcombiningclass=232 */,
- { 2, 2784, 3923, 4, 14, UNI_ARABICSUP } /* inarabicsupplement */,
- { 0, 9768, 8315, 4, 8, UNI_UGAR } /* scx=ugaritic */,
- { 0, 9632, 0, 4, 0, UNI_LINA } /* lina */,
- { 0, 10027, 4773, 3, 5, UNI_JG__SADHE } /* jg=sadhe */,
- { 1, 7249, 9, 4, 16, UNI_CANS } /* iscanadianaboriginal */,
- { 0, 2182, 70, 21, 2, UNI_GCB__PP } /* graphemeclusterbreak=pp */,
- { 1, 6928, 1025, 11, 2, -UNI_SD } /* softdotted=no */,
- { 2, 10129, 36, 3, 1, UNI_VS } /* vs=t */,
- { 13, 9768, 1654, 4, 6, UNI_HANG } /* scx=hangul */,
- { 7, 8780, 749, 6, 30, UNI_ENCLOSEDALPHANUMSUP } /* block=enclosedalphanumericsupplement */,
- { 0, 7249, 754, 4, 3, UNI_CASED } /* iscased */,
- { 2, 3295, 0, 18, 0, UNI_LATINEXTADDITIONAL } /* latinextadditional */,
- { 34, 8882, 9836, 6, 4, UNI_GREXT } /* grext=true */,
- { 0, 5578, 7, 15, 1, UNI_SB__SC } /* sentencebreak=sc */,
- { 0, 2529, 9837, 21, 3, UNI_TERM } /* terminalpunctuation=true */,
- { 0, 316, 0, 33, 0, UNI_SUPMATHOPERATORS } /* supplementalmathematicaloperators */,
- { 0, 9262, 3358, 3, 3, UNI_SB__SE } /* sb=sep */,
- { 0, 6231, 3045, 4, 16, UNI_HALFMARKS } /* incombininghalfmarks */,
- { 16, 184, 1857, 3, 20, UNI_CWU } /* ischangeswhenuppercased */,
- { 1, 10009, 435, 4, 2, UNI_DT__ENC } /* dt=enc */,
- { 0, 1552, 4898, 9, 15, UNI_PS } /* category=openpunctuation */,
- { 0, 8589, 6973, 8, 10, UNI_SC__SYLO } /* script=sylotinagri */,
- { 6, 184, 5752, 2, 13, UNI_GREEKEXT } /* isgreekextended */,
- { 3, 7458, 0, 10, 0, UNI_YIRADICALS } /* yiradicals */,
- { 0, 10027, 4203, 3, 3, UNI_JG__LAM } /* jg=lam */,
- { 0, 1828, 1025, 6, 2, -UNI_CASED } /* cased=no */,
- { 0, 10048, 8820, 3, 2, UNI_NV__29 } /* nv=29 */,
- { 0, 1087, 1, 27, 1, -UNI_PCM } /* prependedconcatenationmark=n */,
- { 3, 9768, 8315, 4, 4, UNI_UGAR } /* scx=ugar */,
- { 0, 5564, 9255, 14, 5, -UNI_QMARK } /* quotationmark=false */,
- { 1, 7218, 6686, 10, 11, UNI_LB__IN } /* linebreak=inseparable */,
- { 8, 7738, 1025, 9, 2, -UNI_XIDS } /* xidstart=no */,
- { 8, 42, 0, 9, 0, UNI_CJKCOMPAT } /* cjkcompat */,
- { 2, 8617, 0, 4, 0, UNI_SOYO } /* soyo */,
- { 6, 3598, 0, 17, 0, UNI_AGHB } /* caucasianalbanian */,
- { 0, 9768, 8107, 4, 8, UNI_BALI } /* scx=balinese */,
- { 2, 8996, 0, 6, 0, UNI_sterm_values_index } /* sterm= */,
- { 0, 6409, 0, 4, 0, UNI_MEND } /* mend */,
- { 1, 7318, 9979, 10, 3, UNI_IN__6_DOT_1 } /* presentin=6.1 */,
- { 0, 1552, 74, 9, 2, UNI_ME } /* category=me */,
- { 0, 6620, 0, 11, 0, UNI_DOMINO } /* dominotiles */,
- { 0, 9488, 2076, 4, 15, UNI_TRANSPORTANDMAP } /* blk=transportandmap */,
- { 0, 1922, 0, 22, 0, UNI_DIACRITICALSFORSYMBOLS } /* diacriticalsforsymbols */,
- { 16, 7218, 7108, 10, 10, UNI_LB__BA } /* linebreak=breakafter */,
- { 0, 9444, 10090, 4, 3, UNI_AGE__4 } /* age=v40 */,
- { 4, 9245, 0, 4, 0, UNI_DOGR } /* dogr */,
- { 5, 5986, 7811, 13, 8, UNI_NV__1_SLASH_6 } /* numericvalue=1.67e-01 */,
- { 21, 4033, 1822, 16, 2, UNI_NL } /* generalcategory=nl */,
- { 0, 7218, 23, 10, 2, UNI_LB__AL } /* linebreak=al */,
- { 0, 8589, 8407, 7, 7, UNI_DSRT } /* script=deseret */,
- { 0, 9488, 3079, 4, 18, UNI_COPTICEPACTNUMBERS } /* blk=copticepactnumbers */,
- { 0, 9768, 9708, 4, 4, UNI_ORYA } /* scx=orya */,
- { 3, 6205, 1025, 12, 2, -UNI_IDEO } /* ideographic=no */,
- { 2, 184, 3241, 2, 8, UNI_GEOR } /* isgeorgian */,
- { 0, 5746, 0, 6, 0, UNI_ebase_values_index } /* ebase= */,
- { 3, 184, 34, 2, 3, UNI_EXT } /* isext */,
- { 1, 10027, 8283, 3, 8, UNI_JG__SWASHKAF } /* jg=swashkaf */,
- { 1, 184, 8990, 2, 6, UNI_RJNG } /* isrejang */,
- { 4, 8780, 2836, 6, 19, UNI_MODIFIERTONELETTERS } /* block=modifiertoneletters */,
- { 0, 184, 9620, 2, 4, UNI_LANA } /* islana */,
- { 1, 5791, 10021, 13, 3, UNI_JG__GAF } /* joininggroup=gaf */,
- { 18, 184, 3439, 2, 18, UNI_SMALLKANAEXT } /* issmallkanaextension */,
- { 1, 10132, 1194, 3, 2, UNI_LB__LF } /* wb=lf */,
- { 9, 9071, 9836, 4, 4, UNI_XPOSIXXDIGIT } /* hex=true */,
- { 0, 1417, 7930, 24, 2, UNI_CCC__14 } /* canonicalcombiningclass=14 */,
- { 8, 9277, 8442, 3, 7, UNI_SC__HANO } /* sc=hanunoo */,
- { 1, 6231, 1879, 3, 18, UNI_CJKCOMPATIDEOGRAPHS } /* incjkcompatideographs */,
- { 1, 6469, 5040, 12, 5, UNI_NT__DI } /* numerictype=digit */,
- { 0, 2032, 10135, 22, 3, UNI__PERL_NCHAR } /* noncharactercodepoint=yes */,
- { 1, 5986, 9364, 13, 4, UNI_NV__1_SLASH_10 } /* numericvalue=1/10 */,
- { 16, 3904, 1, 17, 1, -UNI_UIDEO } /* unifiedideograph=n */,
- { 11, 5791, 7045, 13, 2, UNI_JG__FE } /* joininggroup=fe */,
- { 17, 9584, 0, 4, 0, UNI_HLUW } /* hluw */,
- { 4, 113, 0, 35, 0, UNI_DIACRITICALSFORSYMBOLS } /* combiningdiacriticalmarksforsymbols */,
- { 1, 5791, 9044, 13, 6, UNI_JG__YUDHHE } /* joininggroup=yudhhe */,
- { 0, 7318, 7782, 10, 1, UNI_IN__3 } /* presentin=3 */,
- { 3, 9508, 8066, 4, 2, UNI_CCC__28 } /* ccc=28 */,
- { 6, 9277, 9740, 3, 4, UNI_SC__QAAI } /* sc=qaai */,
- { 0, 9508, 8831, 4, 3, UNI_CCC__132 } /* ccc=132 */,
- { 8, 184, 4289, 2, 16, UNI_MYANMAREXTB } /* ismyanmarextendedb */,
- { 1, 9488, 7058, 4, 10, UNI_ARABICEXTA } /* blk=arabicexta */,
- { 8, 6553, 9836, 12, 4, UNI_XIDC } /* xidcontinue=true */,
- { 0, 9556, 8139, 4, 8, UNI_WB__EB } /* gcb=ebasegaz */,
- { 1, 7291, 0, 4, 0, UNI_SOGD } /* sogd */,
- { 0, 5986, 9907, 13, 3, UNI_NV__1_SLASH_7 } /* numericvalue=1/7 */,
- { 2, 7028, 2309, 3, 5, UNI_YIJING } /* isyijing */,
- { 97, 9768, 8900, 4, 6, UNI_KTHI } /* scx=kaithi */,
- { 0, 9768, 7308, 4, 10, UNI_PHNX } /* scx=phoenician */,
- { 0, 10027, 5895, 3, 13, UNI_JG__MANICHAEANONE } /* jg=manichaeanone */,
- { 0, 10003, 9255, 3, 5, -UNI_CI } /* ci=false */,
- { 44, 3751, 0, 17, 0, UNI_KITS } /* khitansmallscript */,
- { 3, 8780, 8344, 6, 7, UNI_INBENGALI } /* block=bengali */,
- { 0, 8780, 7666, 6, 9, UNI_INOLDTURKIC } /* block=oldturkic */,
- { 34, 7218, 6179, 10, 2, UNI_LB__WJ } /* linebreak=wj */,
- { 0, 3836, 9828, 17, 4, UNI_THAI } /* scriptextensions=thai */,
- { 0, 9488, 8299, 4, 8, UNI_INTIFINAGH } /* blk=tifinagh */,
- { 2, 8780, 4097, 6, 16, UNI_HIGHPUSURROGATES } /* block=highpusurrogates */,
- { 0, 8780, 3547, 6, 17, UNI_ALCHEMICAL } /* block=alchemicalsymbols */,
- { 0, 7325, 9400, 3, 4, UNI_IN__13 } /* in=13.0 */,
- { 0, 2760, 24, 19, 1, UNI_GCB__L } /* hangulsyllabletype=l */,
- { 8, 4113, 1751, 3, 2, UNI_INVAI } /* invai */,
- { 3, 4916, 9821, 3, 3, UNI_TFNG } /* istfng */,
- { 0, 4033, 7, 16, 1, UNI_C } /* generalcategory=c */,
- { 0, 184, 630, 3, 29, UNI_CJKEXTE } /* iscjkunifiedideographsextensione */,
- { 0, 9345, 10135, 5, 3, UNI_XIDC } /* xidc=yes */,
- { 0, 9488, 8547, 4, 7, UNI_OLCK } /* blk=olchiki */,
- { 33, 9768, 9532, 4, 4, UNI_CYRL } /* scx=cyrl */,
- { 0, 6939, 0, 4, 0, UNI_SORA } /* sora */,
- { 3, 10033, 6686, 3, 11, UNI_LB__IN } /* lb=inseparable */,
- { 0, 8400, 9836, 7, 4, UNI_COMPEX } /* compex=true */,
- { 6, 8978, 3, 6, 1, -UNI__PERL_PATWS } /* patws=f */,
- { 2, 9488, 446, 4, 32, UNI_IDEOGRAPHICSYMBOLS } /* blk=ideographicsymbolsandpunctuation */,
- { 0, 7138, 0, 10, 0, UNI_COMPATJAMO } /* compatjamo */,
- { 0, 4989, 1, 3, 41, UNI_UCASEXT } /* isunifiedcanadianaboriginalsyllabicsextended */,
- { 1, 184, 3385, 2, 17, UNI_RI } /* isregionalindicator */,
- { 0, 5508, 1025, 14, 2, -UNI_PATSYN } /* patternsyntax=no */,
- { 6, 10290, 3379, 6, 5, UNI_XPOSIXSPACE } /* xposixspace */,
- { 0, 184, 2409, 2, 13, UNI_GLAGOLITICSUP } /* isglagoliticsup */,
- { 0, 9508, 7814, 4, 1, UNI_CCC__7 } /* ccc=7 */,
- { 8, 8561, 0, 7, 0, UNI_OSMA } /* osmanya */,
- { 14, 7438, 6193, 10, 12, UNI_LB__HL } /* wordbreak=hebrewletter */,
- { 2, 184, 8203, 2, 8, UNI_JAMOEXTA } /* isjamoexta */,
- { 5, 1166, 36, 26, 1, UNI_DI } /* defaultignorablecodepoint=t */,
- { 7, 8774, 9255, 6, 5, -UNI_BIDIM } /* bidim=false */,
- { 9, 7088, 24, 10, 1, UNI_BC__L } /* bidiclass=l */,
- { 24, 9277, 8936, 3, 4, UNI_LYCI } /* sc=lyci */,
- { 0, 9277, 8914, 5, 4, UNI_SC__KHOJ } /* sc=khojki */,
- { 0, 9528, 3, 4, 1, -UNI_CWU } /* cwu=f */,
- { 0, 4033, 262, 16, 2, UNI_SM } /* generalcategory=sm */,
- { 2, 6609, 1025, 11, 2, -UNI_DEP } /* deprecated=no */,
- { 0, 9768, 7684, 4, 4, UNI_PAUC } /* scx=pauc */,
- { 4, 7325, 5648, 3, 2, UNI_IN__10 } /* in=10 */,
- { 1, 9997, 18, 3, 1, UNI_BC__R } /* bc=r */,
- { 30, 9085, 0, 5, 0, UNI_BATK } /* batak */,
- { 1, 184, 2409, 2, 10, UNI_GLAG } /* isglagolitic */,
- { 0, 9768, 2608, 4, 6, UNI_BRAH } /* scx=brahmi */,
- { 0, 8780, 8299, 6, 8, UNI_INTIFINAGH } /* block=tifinagh */,
- { 1, 8780, 6025, 6, 12, UNI_ALPHABETICPF } /* block=alphabeticpf */,
- { 4, 119, 8877, 3, 5, UNI_INGOTHIC } /* ingothic */,
- { 0, 10024, 32, 3, 2, UNI__PERL_SURROGATE } /* gc=cs */,
- { 45, 3115, 0, 10, 0, UNI_DEVA } /* devanagari */,
- { 0, 9270, 6506, 3, 7, UNI_PHAISTOS } /* inphaistos */,
- { 14, 184, 4145, 2, 7, UNI_LINB } /* islinearb */,
- { 3, 9508, 9126, 5, 4, UNI_CCC__19 } /* ccc=ccc19 */,
- { 0, 10033, 6073, 3, 12, UNI_LB__SY } /* lb=breaksymbols */,
- { 0, 9277, 2912, 3, 9, UNI_SUND } /* sc=sundanese */,
- { 1, 3259, 0, 17, 0, UNI_IDSB } /* idsbinaryoperator */,
- { 0, 3836, 2245, 17, 11, UNI_MTEI } /* scriptextensions=meeteimayek */,
- { 1, 1856, 0, 22, 0, UNI_cwu_values_index } /* changeswhenuppercased= */,
- { 6, 24, 0, 1, 0, UNI_L } /* l */,
- { 2, 184, 4643, 2, 14, UNI_ECOMP } /* isemojicomponent */,
- { 1, 7218, 8449, 10, 6, UNI_LB__HY } /* linebreak=hyphen */,
- { 1, 10048, 9408, 3, 4, UNI_NV__15_SLASH_2 } /* nv=15/2 */,
- { 1, 7028, 5219, 3, 9, UNI_YIRADICALS } /* isyiradicals */,
- { 5, 7076, 9096, 3, 4, UNI_INBUHID } /* inbuhid */,
- { 1, 184, 7632, 3, 2, UNI_CWT } /* iscwt */,
- { 34, 9277, 9760, 3, 4, UNI_SAMR } /* sc=samr */,
- { 3, 9488, 3223, 4, 18, UNI_INPUNCTUATION } /* blk=generalpunctuation */,
- { 12, 7088, 1353, 10, 3, UNI_BC__RLE } /* bidiclass=rle */,
- { 1, 8780, 3044, 7, 17, UNI_HALFMARKS } /* block=combininghalfmarks */,
- { 0, 21, 7428, 2, 10, UNI_INWARANGCITI } /* inwarangciti */,
- { 19, 1417, 9946, 24, 3, UNI_CCC__DB } /* canonicalcombiningclass=233 */,
- { 1, 184, 1922, 2, 12, UNI_DIACRITICALS } /* isdiacriticals */,
- { 0, 9768, 9728, 4, 4, UNI_MIAO } /* scx=plrd */,
- { 2, 9768, 8344, 4, 7, UNI_BENG } /* scx=bengali */,
- { 1, 9326, 1183, 4, 3, UNI_ANY } /* unicode */,
- { 23, 8589, 7359, 8, 3, UNI_SAUR } /* script=saur */,
- { 12, 5752, 0, 13, 0, UNI_GREEKEXT } /* greekextended */,
- { 0, 4542, 3243, 4, 9, UNI_GEORGIANSUP } /* ingeorgiansup */,
- { 4, 4658, 0, 14, 0, UNI_GREXT } /* graphemeextend */,
- { 0, 9275, 9090, 5, 5, UNI_INSC__BINDU } /* insc=bindu */,
- { 0, 2308, 0, 6, 0, UNI_YIJING } /* yijing */,
- { 1, 9277, 8561, 3, 7, UNI_OSMA } /* sc=osmanya */,
- { 0, 3358, 0, 9, 0, UNI_Z } /* separator */,
- { 0, 8589, 9604, 7, 4, UNI_KHMR } /* script=khmr */,
- { 1, 2529, 0, 19, 0, UNI_TERM } /* terminalpunctuation */,
- { 1, 10027, 6337, 3, 12, UNI_JG__MALAYALAMNYA } /* jg=malayalamnya */,
- { 1, 3259, 1025, 18, 2, -UNI_IDSB } /* idsbinaryoperator=no */,
- { 0, 184, 5687, 2, 13, UNI_BLOCKELEMENTS } /* isblockelements */,
- { 8, 8984, 0, 6, 0, UNI_qmark_values_index } /* qmark= */,
- { 8, 4688, 8540, 15, 7, UNI_IDENTIFIERTYPE__NOTNFKC } /* identifiertype=notnfkc */,
- { 2, 10132, 73, 3, 2, UNI_WB__EB } /* wb=em */,
- { 1, 7438, 7612, 10, 9, UNI_WB__MB } /* wordbreak=midnumlet */,
- { 1, 9692, 0, 4, 0, UNI_NSHU } /* nshu */,
- { 14, 1966, 7328, 22, 10, UNI_INSC__PUREKILLER } /* indicsyllabiccategory=purekiller */,
- { 19, 8589, 1677, 7, 5, UNI_SC__LATN } /* script=latin */,
- { 1, 9488, 9656, 4, 4, UNI_INMIAO } /* blk=miao */,
- { 18, 10126, 3522, 3, 7, UNI_VO__U } /* vo=upright */,
- { 0, 2569, 3522, 20, 7, UNI_VO__U } /* verticalorientation=upright */,
- { 0, 3836, 3241, 17, 8, UNI_GEOR } /* scriptextensions=georgian */,
- { 17, 9768, 7428, 4, 10, UNI_WARA } /* scx=warangciti */,
- { 2, 8688, 8093, 4, 6, UNI_ARMN } /* isarmenian */,
- { 0, 7218, 340, 10, 2, UNI_LB__OP } /* linebreak=op */,
- { 0, 184, 838, 2, 29, UNI_MISCARROWS } /* ismiscellaneoussymbolsandarrows */,
- { 12, 5791, 6361, 13, 12, UNI_JG__MALAYALAMTTA } /* joininggroup=malayalamtta */,
- { 0, 8984, 0, 5, 0, UNI_QMARK } /* qmark */,
- { 3, 10003, 3, 3, 1, -UNI_CI } /* ci=f */,
- { 1, 3836, 3894, 18, 10, UNI_SGNW } /* scriptextensions=signwriting */,
- { 0, 3424, 8316, 3, 7, UNI_INUGARITIC } /* inugaritic */,
- { 0, 184, 2120, 3, 20, UNI_CJKRADICALSSUP } /* iscjkradicalssupplement */,
- { 102, 8780, 6730, 6, 11, UNI_KATAKANAEXT } /* block=katakanaext */,
- { 0, 9071, 0, 4, 0, UNI_hex_values_index } /* hex= */,
- { 4, 9508, 8820, 4, 2, UNI_CCC__29 } /* ccc=29 */,
- { 2, 4829, 2411, 4, 8, UNI_INGLAGOLITIC } /* inglagolitic */,
- { 1, 8780, 3439, 6, 18, UNI_SMALLKANAEXT } /* block=smallkanaextension */,
- { 0, 7318, 7979, 10, 3, UNI_IN__6 } /* presentin=6.0 */,
- { 0, 3836, 2061, 17, 4, UNI_MODI } /* scriptextensions=modi */,
- { 10, 9290, 26, 5, 1, UNI_MATH } /* math=y */,
- { 1, 9444, 10093, 4, 3, UNI_AGE__4_DOT_1 } /* age=v41 */,
- { 16, 7418, 1025, 10, 2, -UNI_XPOSIXUPPER } /* uppercase=no */,
- { 0, 8780, 630, 7, 29, UNI_CJKEXTE } /* block=cjkunifiedideographsextensione */,
- { 11, 10327, 7438, 6, 4, UNI_POSIXWORD } /* isperlword */,
- { 10, 184, 38, 2, 2, UNI_XPOSIXDIGIT } /* isnd */,
- { 1, 1188, 4929, 3, 4, UNI_INTAMIL } /* intamil */,
- { 0, 9508, 3572, 4, 5, UNI_CCC__B } /* ccc=below */,
- { 0, 5986, 9420, 13, 4, UNI_NV__3_SLASH_20 } /* numericvalue=3/20 */,
- { 11, 10063, 1025, 3, 2, -UNI_SD } /* sd=no */,
- { 36, 3853, 9836, 17, 4, UNI_STERM } /* sentenceterminal=true */,
- { 17, 3870, 0, 17, 0, UNI_SMALLFORMS } /* smallformvariants */,
- { 0, 4916, 5994, 3, 3, UNI_TALU } /* istalu */,
- { 1, 5791, 5326, 13, 14, UNI_JG__MANICHAEANBETH } /* joininggroup=manichaeanbeth */,
- { 3, 2280, 9311, 3, 4, UNI_OGAM } /* isogham */,
- { 0, 1417, 9108, 24, 2, UNI_CCC__15 } /* canonicalcombiningclass=15 */,
- { 0, 10048, 5648, 3, 7, UNI_NV__1000000 } /* nv=1000000 */,
- { 1, 9488, 6730, 4, 11, UNI_KATAKANAEXT } /* blk=katakanaext */,
- { 0, 8884, 1025, 4, 2, -UNI_EXT } /* ext=no */,
- { 4, 6231, 3667, 3, 16, UNI_CYRILLICEXTC } /* incyrillicextendedc */,
- { 54, 10009, 8533, 3, 7, UNI_DT__NB } /* dt=nobreak */,
- { 13, 9768, 9888, 4, 4, UNI_ZANB } /* scx=zanb */,
- { 0, 10296, 8576, 3, 5, UNI_PATSYN } /* ispatsyn */,
- { 20, 4478, 0, 4, 0, UNI_BRAI } /* brai */,
- { 0, 4033, 6265, 16, 12, UNI_NL } /* generalcategory=letternumber */,
- { 1, 9488, 8365, 4, 7, UNI_CJKEXTC } /* blk=cjkextc */,
- { 4, 7318, 7765, 10, 1, UNI_IN__2 } /* presentin=2 */,
- { 0, 5116, 36, 14, 1, UNI_EMOD } /* emojimodifier=t */,
- { 0, 2569, 3379, 4, 5, UNI_VERTSPACE } /* vertspace */,
- { 0, 8996, 10135, 6, 3, UNI_STERM } /* sterm=yes */,
- { 0, 5687, 0, 13, 0, UNI_BLOCKELEMENTS } /* blockelements */,
- { 1, 9488, 8645, 4, 7, UNI_INTAITHAM } /* blk=taitham */,
- { 2, 10303, 0, 5, 0, UNI_XPOSIXBLANK } /* blank */,
- { 0, 8589, 9500, 7, 4, UNI_SC__CAKM } /* script=cakm */,
- { 0, 8589, 9245, 7, 4, UNI_SC__DOGR } /* script=dogr */,
- { 0, 5986, 8750, 13, 6, UNI_NV__800000 } /* numericvalue=800000 */,
- { 0, 3904, 10135, 17, 3, UNI_UIDEO } /* unifiedideograph=yes */,
- { 2, 3836, 3079, 17, 4, UNI_COPT } /* scriptextensions=copt */,
- { 1, 9768, 6253, 4, 5, UNI_KHMR } /* scx=khmer */,
- { 1, 8996, 1025, 6, 2, -UNI_STERM } /* sterm=no */,
- { 64, 9768, 8990, 4, 6, UNI_RJNG } /* scx=rejang */,
- { 1, 1188, 9331, 3, 4, UNI_INTAILE } /* intaile */,
- { 5, 8780, 7278, 6, 10, UNI_INOLDPERSIAN } /* block=oldpersian */,
- { 1, 8774, 3, 6, 1, -UNI_BIDIM } /* bidim=f */,
- { 0, 4809, 1162, 4, 2, UNI_CPRT } /* iscprt */,
- { 0, 9508, 8837, 4, 3, UNI_WB__EB } /* ccc=133 */,
- { 8, 10033, 6193, 3, 12, UNI_LB__HL } /* lb=hebrewletter */,
- { 1, 10048, 9428, 3, 3, UNI_NV__3_SLASH_8 } /* nv=3/8 */,
- { 1, 8519, 0, 7, 0, UNI_nfkdqc_values_index } /* nfkdqc= */,
- { 8, 9488, 7248, 4, 10, UNI_MISCARROWS } /* blk=miscarrows */,
- { 32, 184, 4002, 3, 15, UNI_CYPRIOTSYLLABARY } /* iscypriotsyllabary */,
- { 0, 1966, 5700, 22, 13, UNI_INSC__CONSONANTDEAD } /* indicsyllabiccategory=consonantdead */,
- { 0, 1834, 36, 22, 1, UNI_CWT } /* changeswhentitlecased=t */,
- { 121, 9277, 8091, 3, 8, UNI_ARMN } /* sc=armenian */,
- { 6, 10048, 8727, 3, 2, UNI_NV__32 } /* nv=32 */,
- { 0, 1505, 1016, 5, 2, UNI_INGREEK } /* ingreek */,
- { 1, 3836, 4448, 17, 5, UNI_BAMU } /* scriptextensions=bamum */,
- { 2, 9488, 113, 4, 35, UNI_DIACRITICALSFORSYMBOLS } /* blk=combiningdiacriticalmarksforsymbols */,
- { 1, 8942, 0, 6, 0, UNI_LYDI } /* lydian */,
- { 3, 9277, 9476, 3, 4, UNI_AVST } /* sc=avst */,
- { 0, 7418, 1, 10, 1, -UNI_XPOSIXUPPER } /* uppercase=n */,
- { 6, 9488, 719, 4, 16, UNI_CUNEIFORMNUMBERS } /* blk=cuneiformnumbers */,
- { 0, 4853, 10135, 15, 3, UNI_DT__NONE } /* nfkdquickcheck=yes */,
- { 0, 8589, 8666, 7, 7, UNI_SC__TIRH } /* script=tirhuta */,
- { 4, 184, 328, 2, 21, UNI_MATHOPERATORS } /* ismathematicaloperators */,
- { 1, 184, 600, 3, 29, UNI_CJKEXTD } /* iscjkunifiedideographsextensiond */,
- { 0, 9488, 6193, 4, 6, UNI_INHEBREW } /* blk=hebrew */,
- { 3, 8780, 720, 7, 8, UNI_INCUNEIFORM } /* block=cuneiform */,
- { 9, 9508, 6631, 4, 11, UNI_CCC__DA } /* ccc=doubleabove */,
- { 0, 4628, 3, 15, 1, UNI_EA__F } /* eastasianwidth=f */,
- { 9, 9488, 1060, 4, 27, UNI_OCR } /* blk=opticalcharacterrecognition */,
- { 0, 8589, 9440, 7, 4, UNI_SC__ADLM } /* script=adlm */,
- { 9, 10296, 7309, 3, 9, UNI_PHNX } /* isphoenician */,
- { 4, 184, 3853, 2, 16, UNI_STERM } /* issentenceterminal */,
- { 9, 9277, 9496, 3, 4, UNI_SC__BUHD } /* sc=buhd */,
- { 25, 10027, 0, 3, 0, UNI_jg_values_index } /* jg= */,
- { 4, 3836, 6193, 17, 6, UNI_HEBR } /* scriptextensions=hebrew */,
- { 0, 3097, 1417, 18, 9, UNI_DT__CAN } /* decompositiontype=canonical */,
- { 1, 7076, 7514, 3, 8, UNI_INBHAIKSUKI } /* inbhaiksuki */,
- { 3, 3836, 7359, 18, 3, UNI_SAUR } /* scriptextensions=saur */,
- { 1, 3836, 9728, 17, 4, UNI_MIAO } /* scriptextensions=plrd */,
- { 0, 3836, 8876, 17, 6, UNI_GOTH } /* scriptextensions=gothic */,
- { 0, 1273, 3, 21, 1, -UNI_CE } /* compositionexclusion=f */,
- { 5, 3836, 8547, 17, 7, UNI_OLCK } /* scriptextensions=olchiki */,
- { 2, 9768, 4385, 4, 4, UNI_TANG } /* scx=tang */,
- { 5, 9997, 25, 3, 1, UNI_BC__S } /* bc=s */,
- { 0, 6229, 26, 12, 1, UNI_JOINC } /* joincontrol=y */,
- { 61, 10048, 8051, 3, 8, UNI_NV__5_SLASH_6 } /* nv=8.33e-01 */,
- { 7, 9014, 9255, 6, 5, -UNI_UIDEO } /* uideo=false */,
- { 32, 9768, 7292, 5, 6, UNI_SOGD } /* scx=sogdian */,
- { 2, 3151, 26, 18, 1, UNI_EPRES } /* emojipresentation=y */,
- { 3, 8589, 8131, 7, 4, UNI_SC__DUPL } /* script=dupl */,
- { 1, 7218, 2640, 10, 2, UNI_LB__BA } /* linebreak=ba */,
- { 1, 8780, 5843, 6, 9, UNI_INMALAYALAM } /* block=malayalam */,
- { 17, 4916, 8667, 3, 3, UNI_TIRH } /* istirh */,
- { 0, 5324, 330, 4, 19, UNI_MATHOPERATORS } /* inmathematicaloperators */,
- { 7, 1417, 8820, 24, 2, UNI_CCC__29 } /* canonicalcombiningclass=29 */,
- { 7, 4916, 9833, 3, 3, UNI_TIBT } /* istibt */,
- { 0, 9508, 8714, 4, 2, UNI_CCC__30 } /* ccc=30 */,
- { 0, 9277, 8645, 3, 7, UNI_LANA } /* sc=taitham */,
- { 17, 6229, 9255, 12, 5, -UNI_JOINC } /* joincontrol=false */,
- { 2, 4033, 5438, 16, 14, UNI_SK } /* generalcategory=modifiersymbol */,
- { 8, 7218, 10154, 10, 2, UNI_LB__B2 } /* linebreak=b2 */,
- { 0, 47, 0, 1, 0, UNI_M } /* m */,
- { 3, 10333, 9797, 3, 3, UNI_SYRC } /* issyrc */,
- { 9, 184, 8211, 2, 8, UNI_JAMOEXTB } /* isjamoextb */,
- { 1, 10168, 0, 2, 0, UNI_CASEDLETTER } /* l& */,
- { 0, 9277, 9880, 3, 4, UNI_SC__YI } /* sc=yiii */,
- { 0, 8589, 7657, 7, 9, UNI_SC__PERM } /* script=oldpermic */,
- { 2, 9488, 2409, 4, 20, UNI_GLAGOLITICSUP } /* blk=glagoliticsupplement */,
- { 1, 184, 7188, 2, 10, UNI_KHAR } /* iskharoshthi */,
- { 4, 184, 9529, 3, 2, UNI_CWU } /* iscwu */,
- { 71, 8147, 10135, 8, 3, UNI_EXTPICT } /* extpict=yes */,
- { 6, 7325, 7923, 3, 3, UNI_IN__4 } /* in=4.0 */,
- { 0, 1417, 9949, 24, 3, UNI_CCC__DA } /* canonicalcombiningclass=234 */,
- { 5, 10291, 1823, 5, 5, UNI_POSIXLOWER } /* posixlower */,
- { 0, 2224, 6973, 3, 10, UNI_INSYLOTINAGRI } /* insylotinagri */,
- { 3, 7076, 4449, 3, 7, UNI_BAMUMSUP } /* inbamumsup */,
- { 21, 9768, 9038, 4, 6, UNI_YEZI } /* scx=yezidi */,
- { 22, 9476, 0, 4, 0, UNI_AVST } /* avst */,
- { 0, 8780, 3223, 6, 18, UNI_INPUNCTUATION } /* block=generalpunctuation */,
- { 6, 9488, 8428, 4, 7, UNI_INGRANTHA } /* blk=grantha */,
- { 0, 7325, 7877, 3, 2, UNI_IN__13 } /* in=13 */,
- { 2, 5578, 5, 15, 1, UNI_SB__SE } /* sentencebreak=se */,
- { 3, 9508, 9188, 4, 2, UNI_CCC__31 } /* ccc=31 */,
- { 7, 9488, 8358, 4, 7, UNI_CJKEXTB } /* blk=cjkextb */,
- { 0, 9277, 9624, 3, 3, UNI_LAO } /* sc=lao */,
- { 0, 184, 9548, 2, 4, UNI_DSRT } /* isdsrt */,
- { 96, 7325, 10111, 3, 3, UNI_IN__6_DOT_2 } /* in=v62 */,
- { 10, 9508, 8823, 5, 5, UNI_CCC__130 } /* ccc=ccc130 */,
- { 32, 9488, 1561, 4, 24, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* blk=supsymbolsandpictographs */,
- { 0, 10340, 25, 3, 1, UNI_VS } /* isvs */,
- { 0, 5032, 36, 14, 1, UNI_POSIXXDIGIT } /* asciihexdigit=t */,
- { 0, 9524, 9836, 4, 4, UNI_CWT } /* cwt=true */,
- { 19, 7438, 10015, 10, 3, UNI_WB__EB } /* wordbreak=ebg */,
- { 5, 10048, 8059, 3, 8, UNI_NV__1_SLASH_12 } /* nv=8.33e-02 */,
- { 4, 10290, 1823, 6, 5, UNI_XPOSIXLOWER } /* xposixlower */,
- { 1, 5739, 3, 13, 1, -UNI_GRBASE } /* graphemebase=f */,
- { 0, 184, 5242, 2, 14, UNI_LATINEXTC } /* islatinextendedc */,
- { 48, 3379, 3, 6, 1, -UNI_XPOSIXSPACE } /* space=f */,
- { 1, 10024, 38, 3, 2, UNI_XPOSIXDIGIT } /* gc=nd */,
- { 0, 10027, 6346, 3, 3, UNI_JG__NYA } /* jg=nya */,
- { 2, 2224, 8276, 3, 7, UNI_SPECIALS } /* inspecials */,
- { 2, 8780, 7308, 6, 10, UNI_INPHOENICIAN } /* block=phoenician */,
- { 3, 8780, 8337, 6, 7, UNI_INAVESTAN } /* block=avestan */,
- { 0, 9488, 4401, 4, 9, UNI_TANGUTSUP } /* blk=tangutsup */,
- { 9, 8780, 7098, 6, 10, UNI_BOXDRAWING } /* block=boxdrawing */,
- { 0, 10048, 9168, 3, 2, UNI_NV__27 } /* nv=27 */,
- { 6, 4916, 1846, 3, 4, UNI_TITLE } /* istitle */,
- { 2, 184, 9896, 2, 4, UNI_ZYYY } /* iszyyy */,
- { 1, 184, 3241, 2, 18, UNI_GEORGIANSUP } /* isgeorgiansupplement */,
- { 18, 10048, 9188, 3, 2, UNI_NV__31 } /* nv=31 */,
- { 0, 10033, 1751, 3, 2, UNI_LB__AI } /* lb=ai */,
- { 0, 10048, 8744, 3, 5, UNI_NV__70000 } /* nv=70000 */,
- { 2, 10012, 1, 3, 1, UNI_EA__N } /* ea=n */,
- { 0, 1269, 36, 25, 1, UNI_COMPEX } /* fullcompositionexclusion=t */,
- { 0, 3836, 9789, 18, 3, UNI_SHRD } /* scriptextensions=shrd */,
- { 32, 9540, 26, 4, 1, UNI_DIA } /* dia=y */,
- { 27, 1552, 0, 9, 0, UNI_gc_values_index } /* category= */,
- { 0, 9488, 5947, 4, 13, UNI_MAYANNUMERALS } /* blk=mayannumerals */,
- { 1, 7438, 1218, 10, 8, UNI_WB__KA } /* wordbreak=katakana */,
- { 0, 2329, 0, 20, 0, UNI_HLUW } /* anatolianhieroglyphs */,
- { 1, 10027, 5312, 3, 14, UNI_JG__MANICHAEANAYIN } /* jg=manichaeanayin */,
- { 0, 7318, 7469, 10, 3, UNI_IN__5 } /* presentin=5.0 */,
- { 0, 1417, 8829, 25, 5, UNI_CCC__132 } /* canonicalcombiningclass=ccc132 */,
- { 26, 3097, 68, 18, 3, UNI_DT__SUP } /* decompositiontype=sup */,
- { 20, 9240, 36, 5, 1, UNI_DASH } /* dash=t */,
- { 11, 8780, 600, 7, 29, UNI_CJKEXTD } /* block=cjkunifiedideographsextensiond */,
- { 1, 8780, 9656, 6, 4, UNI_INMIAO } /* block=miao */,
- { 20, 9997, 10039, 3, 3, UNI_BC__LRI } /* bc=lri */,
- { 0, 7325, 10114, 3, 3, UNI_IN__6_DOT_3 } /* in=v63 */,
- { 6, 5986, 9376, 13, 3, UNI_NV__1_SLASH_6 } /* numericvalue=1/6 */,
- { 0, 184, 9688, 2, 4, UNI_NKO } /* isnkoo */,
- { 0, 8780, 9245, 6, 5, UNI_INDOGRA } /* block=dogra */,
- { 5, 1417, 7826, 24, 2, UNI_CCC__12 } /* canonicalcombiningclass=12 */,
- { 1, 8589, 9724, 7, 4, UNI_PHNX } /* script=phnx */,
- { 0, 5791, 7711, 13, 9, UNI_JG__SYRIACWAW } /* joininggroup=syriacwaw */,
- { 0, 58, 0, 4, 0, UNI_IDEO } /* ideo */,
- { 2, 8780, 9860, 6, 3, UNI_INVAI } /* block=vai */,
- { 1, 9508, 5765, 4, 13, UNI_CCC__IS } /* ccc=iotasubscript */,
- { 0, 9768, 7694, 5, 8, UNI_SAMR } /* scx=samaritan */,
- { 0, 9277, 2684, 3, 19, UNI_EGYP } /* sc=egyptianhieroglyphs */,
- { 2, 5324, 6399, 4, 10, UNI_MATHALPHANUM } /* inmathalphanum */,
- { 0, 2784, 29, 4, 4, UNI_INARABIC } /* inarabic */,
- { 0, 2608, 0, 4, 0, UNI_BRAH } /* brah */,
- { 0, 4658, 10135, 15, 3, UNI_GREXT } /* graphemeextend=yes */,
- { 5, 9488, 5843, 4, 9, UNI_INMALAYALAM } /* blk=malayalam */,
- { 6, 1417, 7178, 24, 10, UNI_CCC__6 } /* canonicalcombiningclass=hanreading */,
- { 0, 4643, 9836, 15, 4, UNI_ECOMP } /* emojicomponent=true */,
- { 2, 10033, 4842, 3, 2, UNI_LB__QU } /* lb=qu */,
- { 0, 9768, 7630, 4, 9, UNI_TALU } /* scx=newtailue */,
- { 0, 9508, 8825, 4, 3, UNI_CCC__130 } /* ccc=130 */,
- { 0, 9488, 895, 4, 28, UNI_SUPPUAA } /* blk=supplementaryprivateuseareaa */,
- { 5, 3836, 9876, 17, 4, UNI_XSUX } /* scriptextensions=xsux */,
- { 1, 184, 9095, 2, 5, UNI_BUHD } /* isbuhid */,
- { 0, 9277, 859, 4, 3, UNI_SC__KNDA } /* sc=knda */,
- { 0, 5324, 6279, 4, 5, UNI_MAHJONG } /* inmahjong */,
- { 0, 4553, 0, 15, 0, UNI_CONTROLPICTURES } /* controlpictures */,
- { 0, 5986, 9904, 13, 3, UNI_NV__1_SLASH_5 } /* numericvalue=1/5 */,
- { 2, 3424, 8674, 3, 6, UNI_UCASEXT } /* inucasext */,
- { 5, 8589, 9624, 7, 3, UNI_LAO } /* script=lao */,
- { 17, 8589, 8421, 7, 7, UNI_ELYM } /* script=elymaic */,
- { 1, 184, 3633, 3, 16, UNI_CYRILLICEXTA } /* iscyrillicextendeda */,
- { 7, 8589, 9616, 7, 4, UNI_SC__KTHI } /* script=kthi */,
- { 0, 9488, 6818, 4, 11, UNI_MYANMAREXTA } /* blk=myanmarexta */,
- { 10, 1834, 9255, 22, 5, -UNI_CWT } /* changeswhentitlecased=false */,
- { 1, 1828, 9836, 6, 4, UNI_CASED } /* cased=true */,
- { 0, 9444, 7827, 4, 3, UNI_AGE__2 } /* age=2.0 */,
- { 0, 9277, 493, 3, 3, UNI_SC__HAN } /* sc=han */,
- { 194, 184, 2245, 2, 14, UNI_MEETEIMAYEKEXT } /* ismeeteimayekext */,
- { 0, 1552, 48, 9, 1, UNI_P } /* category=p */,
- { 1, 9768, 3115, 4, 4, UNI_DEVA } /* scx=deva */,
- { 0, 10333, 44, 3, 1, UNI_SK } /* issk */,
- { 0, 7218, 8236, 11, 7, UNI_LB__LF } /* linebreak=linefeed */,
- { 1, 9277, 7693, 3, 9, UNI_SAMR } /* sc=samaritan */,
- { 18, 5986, 7755, 13, 8, UNI_NV__1_SLASH_9 } /* numericvalue=1.11e-01 */,
- { 7, 184, 4049, 2, 11, UNI_GEORGIANEXT } /* isgeorgianext */,
- { 2, 8960, 9295, 6, 5, UNI_NFCQC__M } /* nfcqc=maybe */,
- { 4, 9014, 9836, 6, 4, UNI_UIDEO } /* uideo=true */,
- { 16, 10048, 7890, 3, 2, UNI_NV__33 } /* nv=33 */,
- { 0, 8589, 5171, 7, 4, UNI_CHAM } /* script=cham */,
- { 3, 5791, 4763, 13, 15, UNI_JG__MANICHAEANSADHE } /* joininggroup=manichaeansadhe */,
- { 0, 10048, 8714, 3, 6, UNI_NV__300000 } /* nv=300000 */,
- { 1, 9277, 9732, 3, 4, UNI_PRTI } /* sc=prti */,
- { 1, 8780, 5075, 7, 13, UNI_CJKCOMPATFORMS } /* block=cjkcompatforms */,
- { 20, 184, 690, 3, 29, UNI_CJKEXTG } /* iscjkunifiedideographsextensiong */,
- { 1, 184, 5522, 2, 14, UNI_PHONETICEXTSUP } /* isphoneticextsup */,
- { 34, 7248, 0, 10, 0, UNI_MISCARROWS } /* miscarrows */,
- { 3, 1966, 8687, 22, 7, UNI_INSC__VISARGA } /* indicsyllabiccategory=visarga */,
- { 17, 9508, 8835, 5, 5, UNI_WB__EB } /* ccc=ccc133 */,
- { 9, 9283, 0, 4, 0, UNI_PHLI } /* phli */,
- { 0, 9624, 0, 4, 0, UNI_LAO } /* laoo */,
- { 6, 10333, 7359, 3, 3, UNI_SAUR } /* issaur */,
- { 0, 6469, 495, 12, 7, UNI_NT__NU } /* numerictype=numeric */,
- { 1, 184, 727, 2, 2, UNI_MN } /* ismn */,
- { 51, 10033, 58, 3, 2, UNI_LB__ID } /* lb=id */,
- { 1, 9488, 9624, 4, 3, UNI_INLAO } /* blk=lao */,
- { 1, 1988, 3, 22, 1, -UNI_LOE } /* logicalorderexception=f */,
- { 0, 1513, 0, 24, 0, UNI_HIGHPUSURROGATES } /* highprivateusesurrogates */,
- { 8, 1552, 1025, 9, 2, UNI_NO } /* category=no */,
- { 1, 9768, 8428, 4, 7, UNI_GRAN } /* scx=grantha */,
- { 1, 10048, 8075, 3, 8, UNI_NV__7_SLASH_8 } /* nv=8.75e-01 */,
- { 0, 8780, 7621, 6, 9, UNI_INNABATAEAN } /* block=nabataean */,
- { 0, 184, 1274, 3, 19, UNI_CE } /* iscompositionexclusion */,
- { 0, 5791, 1511, 13, 3, UNI_JG__HAH } /* joininggroup=hah */,
- { 0, 9277, 9808, 3, 4, UNI_TALU } /* sc=talu */,
- { 2, 4033, 1059, 16, 2, UNI_SO } /* generalcategory=so */,
- { 17, 6554, 9836, 11, 4, UNI_IDC } /* idcontinue=true */,
- { 3, 3836, 4883, 17, 15, UNI_SARB } /* scriptextensions=oldsoutharabian */,
- { 8, 184, 2122, 2, 7, UNI_RADICAL } /* isradical */,
- { 1, 7325, 7826, 3, 2, UNI_IN__12 } /* in=12 */,
- { 17, 7158, 10135, 10, 3, UNI_DIA } /* diacritic=yes */,
- { 1, 8589, 7168, 7, 10, UNI_DIAK } /* script=divesakuru */,
- { 0, 9330, 0, 5, 0, UNI_TALE } /* taile */,
- { 1, 1417, 8066, 24, 2, UNI_CCC__28 } /* canonicalcombiningclass=28 */,
- { 0, 10296, 7438, 7, 4, UNI_POSIXWORD } /* isposixword */,
- { 2, 184, 1033, 2, 11, UNI_ENCLOSEDCJK } /* isenclosedcjk */,
- { 34, 7368, 0, 10, 0, UNI_SMALLFORMS } /* smallforms */,
- { 4, 184, 9900, 2, 4, UNI_ZZZZ } /* iszzzz */,
- { 3, 10027, 4748, 3, 15, UNI_JG__MANICHAEANGIMEL } /* jg=manichaeangimel */,
- { 9, 3836, 6409, 17, 4, UNI_MEND } /* scriptextensions=mend */,
- { 0, 10012, 8, 3, 1, UNI_EA__A } /* ea=a */,
- { 0, 1834, 1025, 22, 2, -UNI_CWT } /* changeswhentitlecased=no */,
- { 2, 7155, 4674, 3, 14, UNI_INHANGUL } /* ishangulsyllables */,
- { 128, 10033, 3985, 3, 16, UNI_LB__CL } /* lb=closepunctuation */,
- { 7, 10132, 495, 3, 7, UNI_WB__NU } /* wb=numeric */,
- { 0, 1, 0, 1, 0, UNI_N } /* n */,
- { 131, 5986, 8710, 13, 3, UNI_NV__600 } /* numericvalue=600 */,
- { 0, 9768, 6193, 4, 6, UNI_HEBR } /* scx=hebrew */,
- { 1, 1115, 0, 4, 0, UNI_HANG } /* hang */,
- { 0, 1417, 9121, 25, 4, UNI_CCC__18 } /* canonicalcombiningclass=ccc18 */,
- { 0, 7325, 7931, 3, 3, UNI_IN__4_DOT_1 } /* in=4.1 */,
- { 0, 9277, 8610, 3, 4, UNI_SIDD } /* sc=sidd */,
- { 0, 184, 3115, 2, 18, UNI_DEVANAGARIEXT } /* isdevanagariextended */,
- { 2, 9277, 2240, 4, 3, UNI_SC__KTHI } /* sc=kthi */,
- { 0, 5986, 7891, 13, 8, UNI_NV__1_SLASH_3 } /* numericvalue=3.33e-01 */,
- { 0, 7218, 8251, 10, 8, UNI_LB__NL } /* linebreak=nextline */,
- { 3, 9768, 9896, 4, 4, UNI_ZYYY } /* scx=zyyy */,
- { 0, 7218, 6217, 10, 12, UNI_LB__IS } /* linebreak=infixnumeric */,
- { 4, 9277, 9756, 3, 4, UNI_RUNR } /* sc=runr */,
- { 8, 9488, 9008, 4, 6, UNI_INTHAANA } /* blk=thaana */,
- { 0, 6409, 0, 12, 0, UNI_MEND } /* mendekikakui */,
- { 0, 4305, 0, 5, 0, UNI_C } /* other */,
- { 0, 7325, 8043, 3, 3, UNI_IN__8 } /* in=8.0 */,
- { 1, 9277, 9480, 3, 4, UNI_BATK } /* sc=batk */,
- { 0, 8589, 9608, 7, 4, UNI_KITS } /* script=kits */,
- { 3, 3785, 0, 4, 0, UNI_MANI } /* mani */,
- { 0, 9660, 0, 4, 0, UNI_MLYM } /* mlym */,
- { 9, 6061, 36, 12, 1, UNI_BIDIC } /* bidicontrol=t */,
- { 1, 9652, 0, 4, 0, UNI_MERC } /* merc */,
- { 0, 10024, 4568, 3, 14, UNI_SC } /* gc=currencysymbol */,
- { 168, 1856, 1025, 22, 2, -UNI_CWU } /* changeswhenuppercased=no */,
- { 0, 9488, 2203, 4, 14, UNI_INHANIFIROHINGYA } /* blk=hanifirohingya */,
- { 2, 184, 8435, 2, 6, UNI_GRBASE } /* isgrbase */,
- { 4, 8688, 5033, 3, 4, UNI_ASCII } /* isascii */,
- { 9, 9768, 4478, 4, 7, UNI_BRAI } /* scx=braille */,
- { 0, 9768, 8547, 4, 7, UNI_OLCK } /* scx=olchiki */,
- { 4, 7648, 0, 9, 0, UNI_ITAL } /* olditalic */,
- { 0, 9277, 8942, 3, 4, UNI_LYDI } /* sc=lydi */,
- { 19, 1552, 4245, 9, 10, UNI_SM } /* category=mathsymbol */,
- { 0, 8589, 8547, 7, 7, UNI_OLCK } /* script=olchiki */,
- { 1, 10132, 6917, 3, 11, UNI_WB__SQ } /* wb=singlequote */,
- { 1, 8780, 8936, 6, 6, UNI_INLYCIAN } /* block=lycian */,
- { 1, 9488, 4257, 4, 16, UNI_MISCMATHSYMBOLSB } /* blk=miscmathsymbolsb */,
- { 3, 4033, 4305, 16, 5, UNI_C } /* generalcategory=other */,
- { 0, 8780, 9065, 6, 5, UNI_INADLAM } /* block=adlam */,
- { 0, 8780, 9340, 6, 5, UNI_VSSUP } /* block=vssup */,
- { 0, 10236, 10220, 14, 11, UNI__PERL_FOLDS_TO_MULTI_CHAR } /* _perl_folds_to_multi_char */,
- { 1, 3836, 4385, 17, 4, UNI_TANG } /* scriptextensions=tang */,
- { 2, 10048, 8002, 3, 2, UNI_NV__26 } /* nv=26 */,
- { 1, 6884, 0, 11, 0, UNI_HMNG } /* pahawhhmong */,
- { 10, 2288, 2076, 4, 4, UNI_INHATRAN } /* inhatran */,
- { 32, 184, 5200, 2, 14, UNI_KANASUP } /* iskanasupplement */,
- { 33, 3097, 45, 18, 6, UNI_DT__COM } /* decompositiontype=compat */,
- { 0, 7218, 3969, 10, 16, UNI_LB__CP } /* linebreak=closeparenthesis */,
- { 16, 7318, 9967, 10, 3, UNI_IN__5_DOT_1 } /* presentin=5.1 */,
- { 0, 2032, 9255, 22, 5, -UNI__PERL_NCHAR } /* noncharactercodepoint=false */,
- { 9, 1417, 7877, 24, 2, UNI_CCC__13 } /* canonicalcombiningclass=13 */,
- { 11, 9997, 865, 3, 2, UNI_BC__WS } /* bc=ws */,
- { 1, 184, 5713, 2, 13, UNI_XPOSIXDIGIT } /* isdecimalnumber */,
- { 4, 3836, 3115, 17, 4, UNI_DEVA } /* scriptextensions=deva */,
- { 0, 8780, 2120, 7, 13, UNI_CJKRADICALSSUP } /* block=cjkradicalssup */,
- { 38, 9488, 3341, 4, 8, UNI_DINGBATS } /* blk=dingbats */,
- { 0, 5158, 0, 14, 0, UNI_INGREEK } /* greekandcoptic */,
- { 0, 3079, 0, 4, 0, UNI_COPT } /* copt */,
- { 0, 8589, 9032, 7, 6, UNI_WCHO } /* script=wancho */,
- { 0, 9277, 5171, 3, 4, UNI_CHAM } /* sc=cham */,
- { 0, 9277, 9724, 3, 4, UNI_PHNX } /* sc=phnx */,
- { 0, 9860, 0, 3, 0, UNI_VAI } /* vai */,
- { 4, 184, 7248, 2, 10, UNI_MISCARROWS } /* ismiscarrows */,
- { 68, 7738, 10135, 9, 3, UNI_XIDS } /* xidstart=yes */,
- { 21, 184, 567, 2, 2, UNI_NB } /* isnb */,
- { 8, 1417, 9216, 25, 4, UNI_CCC__84 } /* canonicalcombiningclass=ccc84 */,
- { 0, 21, 3421, 2, 4, UNI_RUMI } /* inrumi */,
- { 0, 4448, 0, 5, 0, UNI_BAMU } /* bamum */,
- { 1, 8589, 9460, 7, 4, UNI_ARMI } /* script=armi */,
- { 0, 7325, 7821, 3, 1, UNI_IN__8 } /* in=8 */,
- { 4, 9768, 4448, 4, 4, UNI_BAMU } /* scx=bamu */,
- { 16, 9488, 6012, 4, 13, UNI_VERTICALFORMS } /* blk=verticalforms */,
- { 34, 8589, 9728, 7, 4, UNI_MIAO } /* script=plrd */,
- { 0, 9444, 9397, 4, 3, UNI_AGE__2_DOT_1 } /* age=2.1 */,
- { 0, 719, 0, 30, 0, UNI_CUNEIFORMNUMBERS } /* cuneiformnumbersandpunctuation */,
- { 0, 9768, 3169, 4, 4, UNI_ETHI } /* scx=ethi */,
- { 0, 8780, 2010, 6, 22, UNI_MISCTECHNICAL } /* block=miscellaneoustechnical */,
- { 0, 10126, 0, 3, 0, UNI_vo_values_index } /* vo= */,
- { 7, 1988, 9836, 22, 4, UNI_LOE } /* logicalorderexception=true */,
- { 2, 8589, 57, 7, 2, UNI_SC__YI } /* script=yi */,
- { 0, 8400, 1025, 7, 2, -UNI_COMPEX } /* compex=no */,
- { 1, 3836, 8666, 17, 4, UNI_TIRH } /* scriptextensions=tirh */,
- { 1, 10060, 0, 3, 0, UNI_ri_values_index } /* ri= */,
- { 1, 8449, 0, 7, 0, UNI_hyphen_values_index } /* hyphen= */,
- { 0, 9488, 6829, 4, 11, UNI_MYANMAREXTB } /* blk=myanmarextb */,
- { 0, 5578, 8554, 14, 7, UNI_SB__LE } /* sentencebreak=oletter */,
- { 50, 6231, 3633, 3, 16, UNI_CYRILLICEXTA } /* incyrillicextendeda */,
- { 4, 10033, 10174, 3, 2, UNI_LB__XX } /* lb=xx */,
- { 0, 184, 9236, 3, 3, UNI_CWCM } /* iscwcm */,
- { 1, 3836, 8414, 17, 4, UNI_ELBA } /* scriptextensions=elba */,
- { 0, 184, 6277, 2, 7, UNI_MAHJONG } /* ismahjong */,
- { 0, 5791, 6906, 13, 11, UNI_JG__ROHINGYAYEH } /* joininggroup=rohingyayeh */,
- { 0, 11, 0, 3, 0, UNI_DIA } /* dia */,
- { 1, 9488, 3547, 4, 10, UNI_ALCHEMICAL } /* blk=alchemical */,
- { 0, 10060, 1025, 3, 2, -UNI_RI } /* ri=no */,
- { 23, 8954, 9255, 6, 5, -UNI__PERL_NCHAR } /* nchar=false */,
- { 11, 7738, 36, 9, 1, UNI_XIDS } /* xidstart=t */,
- { 16, 1628, 0, 4, 0, UNI_PHAG } /* phag */,
- { 0, 9488, 8351, 4, 7, UNI_CJKEXTA } /* blk=cjkexta */,
- { 5, 4916, 9825, 3, 3, UNI_TGLG } /* istglg */,
- { 2, 1417, 8835, 25, 5, UNI_WB__EB } /* canonicalcombiningclass=ccc133 */,
- { 1, 184, 3650, 3, 16, UNI_CYRILLICEXTB } /* iscyrillicextendedb */,
- { 7, 5986, 9372, 13, 3, UNI_NV__1_SLASH_4 } /* numericvalue=1/4 */,
- { 1, 10033, 6178, 3, 2, UNI_LB__ZW } /* lb=zw */,
- { 79, 1591, 3684, 3, 15, UNI_ETHIOPICEXT } /* inethiopicextended */,
- { 0, 8780, 4673, 6, 15, UNI_INHANGUL } /* block=hangulsyllables */,
- { 0, 4116, 2780, 3, 3, UNI_IDST } /* isidst */,
- { 0, 8780, 3169, 6, 18, UNI_ETHIOPICSUP } /* block=ethiopicsupplement */,
- { 195, 7325, 9991, 3, 3, UNI_IN__9 } /* in=9.0 */,
- { 1, 1537, 2549, 24, 20, UNI_INPC__TOPANDBOTTOMANDRIGHT } /* indicpositionalcategory=topandbottomandright */,
- { 2, 8589, 8888, 7, 4, UNI_HATR } /* script=hatr */,
- { 24, 9225, 0, 5, 0, UNI_XPOSIXCNTRL } /* cntrl */,
- { 17, 9768, 9568, 4, 4, UNI_GREK } /* scx=grek */,
- { 0, 9290, 0, 5, 0, UNI_math_values_index } /* math= */,
- { 0, 7218, 73, 10, 2, UNI_EMOD } /* linebreak=em */,
- { 0, 10333, 8597, 3, 6, UNI_SHRD } /* issharada */,
- { 1, 10129, 1025, 3, 2, -UNI_VS } /* vs=no */,
- { 0, 184, 660, 3, 29, UNI_CJKEXTF } /* iscjkunifiedideographsextensionf */,
- { 21, 9488, 6133, 4, 12, UNI_ETHIOPICEXTA } /* blk=ethiopicexta */,
- { 0, 9768, 9038, 4, 4, UNI_YEZI } /* scx=yezi */,
- { 0, 5791, 341, 13, 2, UNI_JG__PE } /* joininggroup=pe */,
- { 3, 9346, 3, 4, 1, -UNI_IDC } /* idc=f */,
- { 1, 9508, 8829, 5, 5, UNI_CCC__132 } /* ccc=ccc132 */,
- { 8, 2032, 1, 22, 1, -UNI__PERL_NCHAR } /* noncharactercodepoint=n */,
- { 0, 8780, 4129, 6, 9, UNI_LATIN1 } /* block=latin1sup */,
- { 0, 184, 11, 2, 2, UNI_DI } /* isdi */,
- { 5, 9230, 1025, 5, 2, -UNI_CWCF } /* cwcf=no */,
- { 1, 10063, 10135, 3, 3, UNI_SD } /* sd=yes */,
- { 3, 5986, 8059, 13, 8, UNI_NV__1_SLASH_12 } /* numericvalue=8.33e-02 */,
- { 17, 10009, 68, 3, 3, UNI_DT__SUP } /* dt=sup */,
- { 12, 9528, 10135, 4, 3, UNI_CWU } /* cwu=yes */,
- { 0, 7318, 10093, 10, 3, UNI_IN__4_DOT_1 } /* presentin=v41 */,
- { 11, 184, 5228, 2, 14, UNI_LATINEXTB } /* islatinextendedb */,
- { 32, 62, 0, 5, 0, UNI_XPOSIXGRAPH } /* graph */,
- { 49, 3836, 8299, 17, 8, UNI_TFNG } /* scriptextensions=tifinagh */,
- { 11, 9277, 9688, 3, 4, UNI_NKO } /* sc=nkoo */,
- { 0, 184, 4273, 2, 16, UNI_MYANMAREXTA } /* ismyanmarextendeda */,
- { 1, 10060, 26, 3, 1, UNI_RI } /* ri=y */,
- { 19, 10310, 8661, 4, 5, UNI_INTIBETAN } /* intibetan */,
- { 8, 9768, 2608, 4, 4, UNI_BRAH } /* scx=brah */,
- { 0, 2288, 2743, 4, 17, UNI_JAMOEXTB } /* inhanguljamoextendedb */,
- { 0, 8509, 1035, 4, 9, UNI_ENCLOSEDCJK } /* inenclosedcjk */,
- { 0, 1273, 1025, 21, 2, -UNI_CE } /* compositionexclusion=no */,
- { 0, 8894, 9836, 6, 4, UNI_JOINC } /* joinc=true */,
- { 1, 9488, 7567, 4, 9, UNI_INKHUDAWADI } /* blk=khudawadi */,
- { 6, 9556, 5585, 4, 2, UNI_WB__EB } /* gcb=eb */,
- { 1, 3836, 2469, 17, 20, UNI_HMNP } /* scriptextensions=nyiakengpuachuehmong */,
- { 0, 9768, 9892, 4, 4, UNI_QAAI } /* scx=zinh */,
- { 1, 9444, 9844, 4, 4, UNI_AGE__11 } /* age=v110 */,
- { 5, 9768, 4793, 4, 15, UNI_MERC } /* scx=meroiticcursive */,
- { 16, 9275, 7328, 5, 10, UNI_INSC__PUREKILLER } /* insc=purekiller */,
- { 2, 9488, 3547, 4, 17, UNI_ALCHEMICAL } /* blk=alchemicalsymbols */,
- { 0, 9071, 1025, 4, 2, -UNI_XPOSIXXDIGIT } /* hex=no */,
- { 1, 9277, 9696, 3, 4, UNI_OGAM } /* sc=ogam */,
- { 2, 9768, 2684, 4, 19, UNI_EGYP } /* scx=egyptianhieroglyphs */,
- { 3, 9536, 10135, 4, 3, UNI_DEP } /* dep=yes */,
- { 7, 6554, 0, 11, 0, UNI_idc_values_index } /* idcontinue= */,
- { 1, 7438, 5585, 10, 2, UNI_WB__EB } /* wordbreak=eb */,
- { 3, 9768, 9820, 4, 4, UNI_TFNG } /* scx=tfng */,
- { 0, 4033, 406, 16, 7, UNI_XPOSIXCNTRL } /* generalcategory=control */,
- { 0, 8984, 3, 6, 1, -UNI_QMARK } /* qmark=f */,
- { 0, 9768, 9335, 4, 5, UNI_TAKR } /* scx=takri */,
- { 16, 8147, 0, 7, 0, UNI_EXTPICT } /* extpict */,
- { 44, 4688, 1166, 15, 16, UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE } /* identifiertype=defaultignorable */,
- { 0, 8780, 9624, 6, 3, UNI_INLAO } /* block=lao */,
- { 24, 10027, 5944, 3, 3, UNI_JG__WAW } /* jg=waw */,
- { 1, 3836, 8840, 17, 6, UNI_CAKM } /* scriptextensions=chakma */,
- { 2, 8519, 0, 8, 0, UNI_NFKDQC__N } /* nfkdqc=n */,
- { 2, 2182, 8139, 21, 8, UNI_WB__EB } /* graphemeclusterbreak=ebasegaz */,
- { 5, 10024, 74, 3, 2, UNI_ME } /* gc=me */,
- { 1, 9520, 1, 4, 1, -UNI_CWL } /* cwl=n */,
- { 21, 10048, 8738, 3, 5, UNI_NV__60000 } /* nv=60000 */,
- { 3, 10063, 36, 3, 1, UNI_SD } /* sd=t */,
- { 0, 184, 1013, 2, 5, UNI_GREK } /* isgreek */,
- { 2, 9240, 10135, 5, 3, UNI_DASH } /* dash=yes */,
- { 14, 9768, 9832, 4, 4, UNI_TIBT } /* scx=tibt */,
- { 0, 8780, 979, 6, 27, UNI_ALPHABETICPF } /* block=alphabeticpresentationforms */,
- { 2, 8780, 3295, 6, 18, UNI_LATINEXTADDITIONAL } /* block=latinextadditional */,
- { 0, 184, 779, 2, 30, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* issymbolsandpictographsextendeda */,
- { 0, 9488, 6961, 4, 11, UNI_SUPERANDSUB } /* blk=superandsub */,
- { 1, 9350, 3, 5, 1, -UNI_XIDS } /* xids=f */,
- { 2, 8589, 8243, 7, 8, UNI_SC__MAHJ } /* script=mahajani */,
- { 0, 2409, 0, 4, 0, UNI_GLAG } /* glag */,
- { 0, 5986, 8051, 13, 8, UNI_NV__5_SLASH_6 } /* numericvalue=8.33e-01 */,
- { 0, 1552, 10176, 9, 2, UNI_ZL } /* category=zl */,
- { 4, 3133, 26, 18, 1, UNI_EBASE } /* emojimodifierbase=y */,
- { 1, 7325, 10105, 3, 3, UNI_IN__6 } /* in=v60 */,
- { 0, 10048, 8720, 3, 4, UNI_NV__4000 } /* nv=4000 */,
- { 1, 1417, 9126, 25, 4, UNI_CCC__19 } /* canonicalcombiningclass=ccc19 */,
- { 43, 3836, 9305, 17, 5, UNI_NSHU } /* scriptextensions=nushu */,
- { 0, 10027, 6325, 3, 12, UNI_JG__MALAYALAMNNA } /* jg=malayalamnna */,
- { 1, 9508, 8010, 4, 2, UNI_CCC__36 } /* ccc=36 */,
- { 0, 8780, 2722, 6, 10, UNI_JAMO } /* block=hanguljamo */,
- { 1, 6808, 0, 4, 0, UNI__PERL_SURROGATE } /* iscs */,
- { 0, 42, 0, 16, 0, UNI_CJKCOMPAT } /* cjkcompatibility */,
- { 14, 8589, 6796, 7, 11, UNI_MEDF } /* script=medefaidrin */,
- { 1, 5508, 0, 14, 0, UNI_patsyn_values_index } /* patternsyntax= */,
- { 0, 10288, 1867, 8, 5, UNI_XPOSIXUPPER } /* isxposixupper */,
- { 3, 8589, 7567, 7, 9, UNI_SC__SIND } /* script=khudawadi */,
- { 0, 7325, 10075, 3, 3, UNI_IN__2 } /* in=v20 */,
- { 24, 9604, 0, 4, 0, UNI_KHMR } /* khmr */,
- { 1, 8780, 0, 6, 42, UNI_UCASEXT } /* block=unifiedcanadianaboriginalsyllabicsextended */,
- { 1, 1537, 61, 3, 4, UNI_INDOGRA } /* indogra */,
- { 38, 10027, 6565, 3, 11, UNI_JG__AFRICANNOON } /* jg=africannoon */,
- { 1, 184, 9285, 2, 4, UNI_LIMB } /* islimb */,
- { 3, 5466, 0, 16, 0, UNI_DT__CAN } /* nfdquickcheck=no */,
- { 0, 7438, 6145, 10, 12, UNI_WB__EX } /* wordbreak=extendnumlet */,
- { 7, 1790, 10135, 22, 3, UNI_CWCM } /* changeswhencasemapped=yes */,
- { 1, 8421, 0, 4, 0, UNI_ELYM } /* elym */,
- { 0, 9488, 4001, 4, 16, UNI_CYPRIOTSYLLABARY } /* blk=cypriotsyllabary */,
- { 1, 3836, 8179, 17, 8, UNI_GURU } /* scriptextensions=gurmukhi */,
- { 3, 10006, 9255, 3, 5, -UNI_DI } /* di=false */,
- { 4, 9277, 8187, 3, 8, UNI_SC__HIRA } /* sc=hiragana */,
- { 1, 10009, 45, 3, 3, UNI_DT__COM } /* dt=com */,
- { 1, 6598, 0, 11, 0, UNI_CASEDLETTER } /* casedletter */,
- { 1, 9351, 0, 4, 0, UNI_ids_values_index } /* ids= */,
- { 0, 2950, 0, 19, 0, UNI_SUPARROWSB } /* supplementalarrowsb */,
- { 0, 2784, 8093, 4, 6, UNI_INARMENIAN } /* inarmenian */,
- { 16, 9768, 8115, 4, 8, UNI_BASS } /* scx=bassavah */,
- { 8, 8610, 0, 4, 0, UNI_SIDD } /* sidd */,
- { 2, 5032, 1025, 14, 2, -UNI_POSIXXDIGIT } /* asciihexdigit=no */,
- { 1, 8780, 660, 7, 29, UNI_CJKEXTF } /* block=cjkunifiedideographsextensionf */,
- { 35, 8589, 8171, 7, 8, UNI_SC__GUJR } /* script=gujarati */,
- { 5, 184, 8912, 2, 6, UNI_KHOJ } /* iskhojki */,
- { 0, 3836, 9708, 17, 4, UNI_ORYA } /* scriptextensions=orya */,
- { 7, 7325, 7950, 3, 1, UNI_IN__9 } /* in=9 */,
- { 0, 5986, 8714, 13, 2, UNI_NV__30 } /* numericvalue=30 */,
- { 1, 9488, 5018, 4, 14, UNI_ANCIENTSYMBOLS } /* blk=ancientsymbols */,
- { 0, 2224, 6940, 3, 10, UNI_INSORASOMPENG } /* insorasompeng */,
- { 5, 3367, 9836, 18, 4, UNI__PERL_PATWS } /* patternwhitespace=true */,
- { 4, 9488, 6025, 4, 12, UNI_ALPHABETICPF } /* blk=alphabeticpf */,
- { 0, 1417, 5648, 24, 2, UNI_CCC__10 } /* canonicalcombiningclass=10 */,
- { 3, 10024, 47, 3, 1, UNI_M } /* gc=m */,
- { 0, 3836, 8107, 17, 8, UNI_BALI } /* scriptextensions=balinese */,
- { 0, 2224, 2055, 3, 21, UNI_MODIFIERLETTERS } /* inspacingmodifierletters */,
- { 8, 3836, 7513, 17, 9, UNI_BHKS } /* scriptextensions=bhaiksuki */,
- { 38, 3836, 8484, 17, 7, UNI_MAND } /* scriptextensions=mandaic */,
- { 3, 5791, 2637, 13, 9, UNI_JG__YEHBARREE } /* joininggroup=yehbarree */,
- { 0, 4643, 3, 15, 1, -UNI_ECOMP } /* emojicomponent=f */,
- { 3, 1417, 8823, 25, 5, UNI_CCC__130 } /* canonicalcombiningclass=ccc130 */,
- { 4, 7325, 10078, 3, 3, UNI_IN__2_DOT_1 } /* in=v21 */,
- { 25, 3836, 9612, 17, 4, UNI_KNDA } /* scriptextensions=knda */,
- { 1, 10048, 9404, 3, 4, UNI_NV__13_SLASH_2 } /* nv=13/2 */,
- { 2, 21, 8338, 3, 6, UNI_INAVESTAN } /* inavestan */,
- { 2, 184, 3026, 3, 3, UNI_CHER } /* ischer */,
- { 1, 3836, 9720, 17, 4, UNI_PHLP } /* scriptextensions=phlp */,
- { 0, 7318, 7814, 10, 1, UNI_IN__7 } /* presentin=7 */,
- { 0, 9488, 5214, 4, 14, UNI_KANGXI } /* blk=kangxiradicals */,
- { 2, 3836, 8131, 17, 4, UNI_DUPL } /* scriptextensions=dupl */,
- { 16, 8780, 2141, 7, 20, UNI_CYRILLICSUP } /* block=cyrillicsupplementary */,
- { 1, 4928, 0, 15, 0, UNI_TAMILSUP } /* tamilsupplement */,
- { 1, 184, 8401, 3, 5, UNI_COMPEX } /* iscompex */,
- { 50, 1537, 3475, 24, 10, UNI_INPC__TOPANDLEFT } /* indicpositionalcategory=topandleft */,
- { 1, 7325, 9955, 3, 3, UNI_IN__3_DOT_2 } /* in=3.2 */,
- { 37, 9277, 5550, 3, 14, UNI_SC__PHLP } /* sc=psalterpahlavi */,
- { 51, 10288, 7739, 3, 7, UNI_XIDS } /* isxidstart */,
- { 4, 7318, 9970, 10, 3, UNI_IN__5_DOT_2 } /* presentin=5.2 */,
- { 0, 3547, 0, 10, 0, UNI_ALCHEMICAL } /* alchemical */,
- { 32, 9997, 3205, 3, 18, UNI_BC__FSI } /* bc=firststrongisolate */,
- { 0, 5986, 8732, 13, 5, UNI_NV__50000 } /* numericvalue=50000 */,
- { 32, 9536, 0, 4, 0, UNI_dep_values_index } /* dep= */,
- { 1, 8780, 78, 6, 10, UNI_ARABICMATH } /* block=arabicmath */,
- { 3, 184, 407, 3, 6, UNI_XPOSIXCNTRL } /* iscontrol */,
- { 0, 184, 1677, 2, 14, UNI_LATINEXTA } /* islatinextendeda */,
- { 2, 3836, 9584, 17, 4, UNI_HLUW } /* scriptextensions=hluw */,
- { 2, 9488, 0, 4, 0, UNI_blk_values_index } /* blk= */,
- { 0, 8589, 78, 7, 4, UNI_SC__ARAB } /* script=arab */,
- { 1, 184, 3667, 3, 16, UNI_CYRILLICEXTC } /* iscyrillicextendedc */,
- { 0, 8774, 26, 6, 1, UNI_BIDIM } /* bidim=y */,
- { 179, 184, 5726, 2, 13, UNI_ME } /* isenclosingmark */,
- { 5, 9270, 2549, 5, 3, UNI_INPC__TOP } /* inpc=top */,
- { 5, 9488, 9340, 4, 5, UNI_VSSUP } /* blk=vssup */,
- { 44, 8589, 8414, 7, 7, UNI_ELBA } /* script=elbasan */,
- { 4, 1189, 495, 3, 7, UNI_NT__NU } /* nt=numeric */,
- { 1, 4033, 1044, 16, 6, UNI_L } /* generalcategory=letter */,
- { 0, 4033, 5494, 16, 14, UNI_MN } /* generalcategory=nonspacingmark */,
- { 11, 10340, 1751, 3, 2, UNI_VAI } /* isvai */,
- { 20, 184, 9572, 2, 4, UNI_GUJR } /* isgujr */,
- { 8, 3836, 8291, 17, 4, UNI_TAGB } /* scriptextensions=tagb */,
- { 0, 8589, 9688, 7, 3, UNI_NKO } /* script=nko */,
- { 60, 2855, 0, 9, 0, UNI_MONG } /* mongolian */,
- { 2, 184, 2608, 2, 6, UNI_BRAH } /* isbrahmi */,
- { 0, 184, 1218, 2, 8, UNI_KANA } /* iskatakana */,
- { 0, 9536, 1, 4, 1, -UNI_DEP } /* dep=n */,
- { 3, 8780, 1513, 6, 24, UNI_HIGHPUSURROGATES } /* block=highprivateusesurrogates */,
- { 0, 7318, 10090, 10, 3, UNI_IN__4 } /* presentin=v40 */,
- { 0, 4628, 8, 15, 1, UNI_EA__A } /* eastasianwidth=a */,
- { 1, 78, 0, 10, 0, UNI_ARABICMATH } /* arabicmath */,
- { 12, 9277, 6939, 3, 4, UNI_SORA } /* sc=sora */,
- { 1, 4791, 1019, 3, 4, UNI_MUSIC } /* inmusic */,
- { 0, 7218, 2444, 10, 2, UNI_LB__HL } /* linebreak=hl */,
- { 33, 4673, 0, 15, 0, UNI_INHANGUL } /* hangulsyllables */,
- { 1, 184, 8428, 2, 7, UNI_GRAN } /* isgrantha */,
- { 4, 3382, 9255, 3, 5, -UNI_CE } /* ce=false */,
- { 2, 4033, 1563, 16, 2, UNI_PS } /* generalcategory=ps */,
- { 0, 1746, 752, 23, 4, UNI_BPT__C } /* bidipairedbrackettype=close */,
- { 0, 184, 8882, 2, 5, UNI_GREXT } /* isgrext */,
- { 3, 6231, 3026, 3, 7, UNI_INCHEROKEE } /* incherokee */,
- { 0, 184, 7098, 2, 10, UNI_BOXDRAWING } /* isboxdrawing */,
- { 0, 7540, 3, 9, 1, -UNI_EXT } /* extender=f */,
- { 0, 1591, 6134, 3, 11, UNI_ETHIOPICEXTA } /* inethiopicexta */,
- { 0, 10340, 67, 3, 4, UNI_VSSUP } /* isvssup */,
- { 2, 9520, 9836, 4, 4, UNI_CWL } /* cwl=true */,
- { 57, 8780, 6796, 6, 11, UNI_INMEDEFAIDRIN } /* block=medefaidrin */,
- { 6, 9488, 3421, 4, 18, UNI_RUMI } /* blk=ruminumeralsymbols */,
- { 12, 9265, 3, 5, 1, -UNI_IDST } /* idst=f */,
- { 4, 9508, 9208, 4, 2, UNI_CCC__35 } /* ccc=35 */,
- { 1, 6805, 187, 6, 30, UNI_MISCPICTOGRAPHS } /* inmiscellaneoussymbolsandpictographs */,
- { 5, 5466, 0, 14, 0, UNI_nfdqc_values_index } /* nfdquickcheck= */,
- { 1, 9488, 6939, 4, 11, UNI_INSORASOMPENG } /* blk=sorasompeng */,
- { 0, 9230, 36, 5, 1, UNI_CWCF } /* cwcf=t */,
- { 1, 9444, 7821, 4, 1, UNI_AGE__8 } /* age=8 */,
- { 0, 6554, 9255, 11, 5, -UNI_IDC } /* idcontinue=false */,
- { 0, 9277, 7291, 3, 7, UNI_SC__SOGD } /* sc=sogdian */,
- { 13, 8589, 9285, 7, 4, UNI_SC__LIMB } /* script=limb */,
- { 3, 3836, 9496, 17, 4, UNI_BUHD } /* scriptextensions=buhd */,
- { 0, 2931, 0, 19, 0, UNI_SUPARROWSA } /* supplementalarrowsa */,
- { 64, 184, 2684, 2, 19, UNI_EGYP } /* isegyptianhieroglyphs */,
- { 2, 8509, 811, 4, 27, UNI_ENCLOSEDIDEOGRAPHICSUP } /* inenclosedideographicsupplement */,
- { 0, 9277, 6793, 5, 2, UNI_KHMR } /* sc=khmr */,
- { 0, 8780, 1319, 6, 25, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* block=symbolsandpictographsexta */,
- { 69, 5986, 8820, 13, 2, UNI_NV__29 } /* numericvalue=29 */,
- { 0, 184, 5947, 2, 13, UNI_MAYANNUMERALS } /* ismayannumerals */,
- { 9, 6805, 2023, 6, 9, UNI_MISCTECHNICAL } /* inmisctechnical */,
- { 1, 9277, 8603, 3, 7, UNI_SHAW } /* sc=shavian */,
- { 0, 1828, 10135, 6, 3, UNI_CASED } /* cased=yes */,
- { 0, 9768, 4478, 4, 4, UNI_BRAI } /* scx=brai */,
- { 5, 9768, 8666, 4, 7, UNI_TIRH } /* scx=tirhuta */,
- { 0, 9275, 7639, 5, 9, UNI_INSC__NONJOINER } /* insc=nonjoiner */,
- { 1, 1114, 36, 26, 1, UNI_CWKCF } /* changeswhennfkccasefolded=t */,
- { 0, 3836, 9564, 17, 4, UNI_GONM } /* scriptextensions=gonm */,
- { 0, 8589, 9612, 7, 4, UNI_SC__KNDA } /* script=knda */,
- { 0, 4958, 0, 15, 0, UNI_UPPERCASELETTER } /* uppercaseletter */,
- { 1, 10333, 4149, 3, 3, UNI_SARB } /* issarb */,
- { 7, 1828, 1, 6, 1, -UNI_CASED } /* cased=n */,
- { 0, 9277, 9002, 3, 4, UNI_SC__TELU } /* sc=telu */,
- { 0, 9444, 9384, 4, 4, UNI_AGE__10 } /* age=10.0 */,
- { 0, 8780, 3921, 6, 16, UNI_ARABICSUP } /* block=arabicsupplement */,
- { 0, 8589, 9532, 7, 4, UNI_SC__CYRL } /* script=cyrl */,
- { 1, 5986, 9436, 13, 4, UNI_NV__7_SLASH_12 } /* numericvalue=7/12 */,
- { 1, 1561, 0, 24, 0, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* supsymbolsandpictographs */,
- { 0, 4916, 4402, 3, 15, UNI_TANGUTSUP } /* istangutsupplement */,
- { 48, 7325, 9840, 3, 4, UNI_IN__10 } /* in=v100 */,
- { 1, 7325, 10108, 3, 3, UNI_IN__6_DOT_1 } /* in=v61 */,
- { 2, 7318, 7755, 10, 3, UNI_IN__1_DOT_1 } /* presentin=1.1 */,
- { 7, 9070, 0, 4, 0, UNI_POSIXXDIGIT } /* ahex */,
- { 1, 3836, 7188, 17, 4, UNI_KHAR } /* scriptextensions=khar */,
- { 0, 719, 0, 9, 0, UNI_XSUX } /* cuneiform */,
- { 96, 8780, 4448, 6, 8, UNI_BAMUMSUP } /* block=bamumsup */,
- { 0, 9488, 1441, 4, 10, UNI_CJKSYMBOLS } /* blk=cjksymbols */,
- { 21, 10132, 6653, 3, 11, UNI_WB__DQ } /* wb=doublequote */,
- { 1, 8780, 6972, 6, 11, UNI_INSYLOTINAGRI } /* block=sylotinagri */,
- { 0, 3836, 2817, 17, 19, UNI_MERO } /* scriptextensions=meroitichieroglyphs */,
- { 0, 184, 3683, 2, 16, UNI_ETHIOPICEXT } /* isethiopicextended */,
- { 0, 9014, 1, 6, 1, -UNI_UIDEO } /* uideo=n */,
- { 1, 8400, 1, 7, 1, -UNI_COMPEX } /* compex=n */,
- { 0, 9277, 8888, 3, 6, UNI_HATR } /* sc=hatran */,
- { 0, 1166, 9836, 26, 4, UNI_DI } /* defaultignorablecodepoint=true */,
- { 0, 10291, 1867, 5, 5, UNI_POSIXUPPER } /* posixupper */,
- { 0, 6231, 3650, 3, 16, UNI_CYRILLICEXTB } /* incyrillicextendedb */,
- { 1, 8589, 493, 7, 3, UNI_SC__HAN } /* script=han */,
- { 0, 8780, 2099, 7, 20, UNI_CJKCOMPATFORMS } /* block=cjkcompatibilityforms */,
- { 2, 5986, 7979, 13, 8, UNI_NV__3_SLASH_5 } /* numericvalue=6.00e-01 */,
- { 2, 10048, 7922, 3, 2, UNI_NV__24 } /* nv=24 */,
- { 3, 2469, 0, 20, 0, UNI_HMNP } /* nyiakengpuachuehmong */,
- { 25, 4829, 2411, 4, 11, UNI_GLAGOLITICSUP } /* inglagoliticsup */,
- { 3, 21, 4145, 2, 16, UNI_LINEARBIDEOGRAMS } /* inlinearbideograms */,
- { 0, 809, 0, 29, 0, UNI_ENCLOSEDIDEOGRAPHICSUP } /* enclosedideographicsupplement */,
- { 0, 1856, 1, 22, 1, -UNI_CWU } /* changeswhenuppercased=n */,
- { 0, 184, 2141, 3, 20, UNI_CYRILLICSUP } /* iscyrillicsupplementary */,
- { 0, 5986, 9188, 13, 2, UNI_NV__31 } /* numericvalue=31 */,
- { 2, 8780, 43, 7, 35, UNI_CJKCOMPATIDEOGRAPHSSUP } /* block=cjkcompatibilityideographssupplement */,
- { 1, 10033, 23, 3, 2, UNI_LB__AL } /* lb=al */,
- { 0, 10027, 87, 3, 2, UNI_JG__HE } /* jg=he */,
- { 4, 10132, 108, 3, 2, UNI_WB__MB } /* wb=mb */,
- { 2, 4033, 1465, 16, 13, UNI_M } /* generalcategory=combiningmark */,
- { 1, 9325, 0, 5, 0, UNI_RUNR } /* runic */,
- { 1, 1552, 727, 9, 2, UNI_MN } /* category=mn */,
- { 0, 7088, 10054, 10, 3, UNI_BC__PDF } /* bidiclass=pdf */,
- { 1, 9656, 0, 4, 0, UNI_MIAO } /* miao */,
- { 0, 2969, 0, 19, 0, UNI_SUPARROWSC } /* supplementalarrowsc */,
- { 1, 9508, 8708, 4, 3, UNI_CCC__216 } /* ccc=216 */,
- { 0, 9768, 9616, 4, 4, UNI_KTHI } /* scx=kthi */,
- { 0, 6609, 36, 11, 1, UNI_DEP } /* deprecated=t */,
- { 0, 8780, 510, 7, 29, UNI_CJKEXTA } /* block=cjkunifiedideographsextensiona */,
- { 6, 10027, 6572, 3, 4, UNI_JG__NOON } /* jg=noon */,
- { 1, 2182, 1194, 21, 2, UNI_LB__LF } /* graphemeclusterbreak=lf */,
- { 0, 8589, 4478, 7, 4, UNI_BRAI } /* script=brai */,
- { 1, 9768, 9576, 4, 4, UNI_GURU } /* scx=guru */,
- { 0, 8780, 1006, 6, 27, UNI_ANCIENTGREEKMUSIC } /* block=ancientgreekmusicalnotation */,
- { 0, 8858, 9836, 6, 4, UNI_ECOMP } /* ecomp=true */,
- { 16, 8780, 3241, 6, 8, UNI_INGEORGIAN } /* block=georgian */,
- { 0, 5739, 0, 12, 0, UNI_GRBASE } /* graphemebase */,
- { 40, 4928, 0, 5, 0, UNI_TAML } /* tamil */,
- { 0, 10024, 24, 3, 1, UNI_L } /* gc=l */,
- { 0, 9768, 9793, 5, 3, UNI_SOGO } /* scx=sogo */,
- { 25, 1768, 3, 22, 1, -UNI_CWCF } /* changeswhencasefolded=f */,
- { 29, 1417, 7754, 24, 2, UNI_CCC__11 } /* canonicalcombiningclass=11 */,
- { 0, 8589, 7651, 7, 4, UNI_ITAL } /* script=ital */,
- { 0, 9488, 8393, 4, 7, UNI_CJKEXTG } /* blk=cjkextg */,
- { 1, 9508, 18, 4, 1, UNI_CCC__R } /* ccc=r */,
- { 34, 8688, 7411, 3, 7, UNI_ASSIGNED } /* isassigned */,
- { 0, 21, 3295, 2, 18, UNI_LATINEXTADDITIONAL } /* inlatinextadditional */,
- { 1, 9997, 4464, 4, 14, UNI_BC__BN } /* bc=boundaryneutral */,
- { 0, 2760, 9, 19, 2, UNI_HST__NA } /* hangulsyllabletype=na */,
- { 1, 7318, 7806, 10, 1, UNI_IN__6 } /* presentin=6 */,
- { 43, 10033, 6587, 3, 11, UNI_LB__BB } /* lb=breakbefore */,
- { 1, 9716, 0, 4, 0, UNI_pcm_values_index } /* pcm= */,
- { 0, 9277, 1628, 3, 4, UNI_SC__PHAG } /* sc=phag */,
- { 3, 2529, 9255, 20, 5, -UNI_TERM } /* terminalpunctuation=false */,
- { 0, 9488, 5032, 4, 5, UNI_ASCII } /* blk=ascii */,
- { 0, 9488, 8484, 4, 7, UNI_INMANDAIC } /* blk=mandaic */,
- { 8, 8852, 1, 6, 1, -UNI_CWKCF } /* cwkcf=n */,
- { 4, 7325, 7867, 3, 3, UNI_IN__3_DOT_1 } /* in=3.1 */,
- { 0, 9275, 1608, 5, 23, UNI_INSC__CONSONANTPRECEDINGREPHA } /* insc=consonantprecedingrepha */,
- { 0, 1273, 9255, 21, 5, -UNI_CE } /* compositionexclusion=false */,
- { 1, 8996, 1, 6, 1, -UNI_STERM } /* sterm=n */,
- { 1, 9792, 0, 4, 0, UNI_SOGO } /* sogo */,
- { 0, 184, 6409, 2, 12, UNI_MEND } /* ismendekikakui */,
- { 3, 9508, 9168, 4, 2, UNI_CCC__27 } /* ccc=27 */,
- { 5, 4853, 26, 15, 1, UNI_DT__NONE } /* nfkdquickcheck=y */,
- { 6, 9277, 8344, 3, 7, UNI_SC__BENG } /* sc=bengali */,
- { 2, 9277, 2469, 3, 20, UNI_HMNP } /* sc=nyiakengpuachuehmong */,
- { 1, 1417, 9928, 24, 3, UNI_CCC__BR } /* canonicalcombiningclass=222 */,
- { 0, 3836, 3937, 17, 4, UNI_BOPO } /* scriptextensions=bopo */,
- { 4, 3836, 7118, 17, 10, UNI_CHRS } /* scriptextensions=chorasmian */,
- { 6, 8589, 9756, 7, 4, UNI_RUNR } /* script=runr */,
- { 0, 9277, 5003, 3, 15, UNI_ZANB } /* sc=zanabazarsquare */,
- { 0, 2182, 6178, 21, 3, UNI_LB__ZWJ } /* graphemeclusterbreak=zwj */,
- { 2, 9508, 5377, 4, 2, UNI_CCC__7 } /* ccc=nk */,
- { 0, 2779, 1, 19, 1, -UNI_IDST } /* idstrinaryoperator=n */,
- { 2, 9488, 2010, 4, 22, UNI_MISCTECHNICAL } /* blk=miscellaneoustechnical */,
- { 19, 1966, 0, 22, 0, UNI_insc_values_index } /* indicsyllabiccategory= */,
- { 0, 9277, 7288, 3, 10, UNI_SOGO } /* sc=oldsogdian */,
- { 2, 9488, 9688, 4, 3, UNI_INNKO } /* blk=nko */,
- { 16, 8589, 8123, 7, 4, UNI_SC__BUGI } /* script=bugi */,
- { 1, 5986, 8756, 13, 3, UNI_NV__900 } /* numericvalue=900 */,
- { 0, 9235, 3, 5, 1, -UNI_CWCM } /* cwcm=f */,
- { 6, 8589, 9704, 7, 4, UNI_ORKH } /* script=orkh */,
- { 4, 8780, 4808, 6, 15, UNI_MISCPICTOGRAPHS } /* block=miscpictographs */,
- { 2, 9520, 1025, 4, 2, -UNI_CWL } /* cwl=no */,
- { 0, 9277, 9720, 3, 4, UNI_SC__PHLP } /* sc=phlp */,
- { 64, 7738, 0, 8, 0, UNI_XIDS } /* xidstart */,
- { 42, 9768, 5284, 4, 4, UNI_LISU } /* scx=lisu */,
- { 0, 8561, 0, 4, 0, UNI_OSMA } /* osma */,
- { 145, 6241, 6664, 12, 11, UNI_JT__D } /* joiningtype=dualjoining */,
- { 4, 8882, 26, 6, 1, UNI_GREXT } /* grext=y */,
- { 3, 1552, 1822, 9, 2, UNI_NL } /* category=nl */,
- { 5, 3529, 10135, 18, 3, UNI_VS } /* variationselector=yes */,
- { 0, 7675, 0, 4, 0, UNI_PALM } /* palm */,
- { 0, 10009, 8195, 3, 8, UNI_DT__ISO } /* dt=isolated */,
- { 16, 7504, 0, 9, 0, UNI_ARABICPFB } /* arabicpfb */,
- { 0, 9760, 0, 4, 0, UNI_SAMR } /* samr */,
- { 1, 9508, 7821, 4, 1, UNI_CCC__8 } /* ccc=8 */,
- { 2, 184, 9503, 2, 2, UNI_MC } /* ismc */,
- { 2, 3836, 8924, 17, 4, UNI_LEPC } /* scriptextensions=lepc */,
- { 0, 9556, 70, 4, 2, UNI_GCB__PP } /* gcb=pp */,
- { 3, 184, 8428, 2, 4, UNI_GRAN } /* isgran */,
- { 49, 6576, 9836, 11, 4, UNI_XPOSIXALPHA } /* alphabetic=true */,
- { 0, 10048, 9368, 3, 4, UNI_NV__1_SLASH_20 } /* nv=1/20 */,
- { 15, 9488, 78, 4, 10, UNI_ARABICMATH } /* blk=arabicmath */,
- { 0, 8864, 36, 6, 1, UNI_EMOJI } /* emoji=t */,
- { 1, 9350, 9255, 5, 5, -UNI_XIDS } /* xids=false */,
- { 1, 7438, 6178, 10, 3, UNI_LB__ZWJ } /* wordbreak=zwj */,
- { 40, 4928, 0, 8, 0, UNI_TAMILSUP } /* tamilsup */,
- { 0, 9270, 6518, 3, 11, UNI_PLAYINGCARDS } /* inplayingcards */,
- { 31, 9275, 4823, 5, 15, UNI_INSC__MODIFYINGLETTER } /* insc=modifyingletter */,
- { 0, 3836, 9085, 17, 5, UNI_BATK } /* scriptextensions=batak */,
- { 0, 8688, 3548, 3, 16, UNI_ALCHEMICAL } /* isalchemicalsymbols */,
- { 0, 9508, 9203, 4, 2, UNI_CCC__34 } /* ccc=34 */,
- { 7, 2589, 0, 19, 0, UNI_ANCIENTGREEKNUMBERS } /* ancientgreeknumbers */,
- { 2, 10006, 36, 3, 1, UNI_DI } /* di=t */,
- { 0, 8997, 9255, 5, 5, -UNI_TERM } /* term=false */,
- { 0, 10030, 6, 3, 1, UNI_JT__D } /* jt=d */,
- { 1, 9768, 2203, 4, 14, UNI_ROHG } /* scx=hanifirohingya */,
- { 1, 184, 24, 2, 1, UNI_L } /* isl */,
- { 1, 2760, 7238, 19, 10, UNI_LB__H2 } /* hangulsyllabletype=lvsyllable */,
- { 4, 8589, 8498, 7, 4, UNI_SC__MULT } /* script=mult */,
- { 0, 1114, 10135, 26, 3, UNI_CWKCF } /* changeswhennfkccasefolded=yes */,
- { 0, 3985, 0, 16, 0, UNI_PE } /* closepunctuation */,
- { 10, 9768, 8491, 4, 4, UNI_MARC } /* scx=marc */,
- { 1, 9768, 4273, 4, 7, UNI_MYMR } /* scx=myanmar */,
- { 4, 5466, 10135, 14, 3, UNI_NFDQC__Y } /* nfdquickcheck=yes */,
- { 1, 5986, 8066, 13, 2, UNI_NV__28 } /* numericvalue=28 */,
- { 1, 7228, 3, 10, 1, -UNI_XPOSIXLOWER } /* lowercase=f */,
- { 139, 8780, 2912, 6, 9, UNI_INSUNDANESE } /* block=sundanese */,
- { 0, 5746, 9836, 6, 4, UNI_EBASE } /* ebase=true */,
- { 1, 5791, 9044, 13, 4, UNI_JG__YUDH } /* joininggroup=yudh */,
- { 0, 8780, 1654, 6, 23, UNI_COMPATJAMO } /* block=hangulcompatibilityjamo */,
- { 22, 10132, 138, 3, 2, UNI_WB__FO } /* wb=fo */,
- { 0, 10027, 10057, 3, 3, UNI_JG__REH } /* jg=reh */,
- { 0, 5986, 9424, 13, 4, UNI_NV__3_SLASH_64 } /* numericvalue=3/64 */,
- { 0, 8589, 7359, 8, 9, UNI_SAUR } /* script=saurashtra */,
- { 4, 1417, 3564, 24, 17, UNI_WB__EB } /* canonicalcombiningclass=attachedbelowleft */,
- { 0, 10033, 6178, 3, 3, UNI_LB__ZWJ } /* lb=zwj */,
- { 3, 8762, 1, 6, 1, -UNI_XPOSIXALPHA } /* alpha=n */,
- { 8, 7088, 8, 10, 2, UNI_BC__AN } /* bidiclass=an */,
- { 1, 184, 18, 2, 2, UNI_RI } /* isri */,
- { 17, 10027, 5382, 3, 14, UNI_JG__MANICHAEANQOPH } /* jg=manichaeanqoph */,
- { 1, 9768, 7660, 4, 4, UNI_PERM } /* scx=perm */,
- { 0, 3836, 9464, 17, 4, UNI_ARMN } /* scriptextensions=armn */,
- { 0, 512, 0, 16, 0, UNI_UIDEO } /* unifiedideograph */,
- { 0, 9488, 2245, 4, 21, UNI_MEETEIMAYEKEXT } /* blk=meeteimayekextensions */,
- { 3, 7738, 9255, 9, 5, -UNI_XIDS } /* xidstart=false */,
- { 33, 8694, 10135, 7, 3, UNI_XPOSIXSPACE } /* wspace=yes */,
- { 17, 9444, 7950, 4, 1, UNI_AGE__9 } /* age=9 */,
- { 74, 2817, 0, 19, 0, UNI_MERO } /* meroitichieroglyphs */,
- { 0, 8589, 9620, 7, 4, UNI_LANA } /* script=lana */,
- { 0, 9768, 5003, 4, 15, UNI_ZANB } /* scx=zanabazarsquare */,
- { 1, 5746, 1, 6, 1, -UNI_EBASE } /* ebase=n */,
- { 0, 8780, 9032, 6, 6, UNI_INWANCHO } /* block=wancho */,
- { 8, 5284, 0, 4, 0, UNI_LISU } /* lisu */,
- { 20, 1900, 0, 22, 0, UNI_INDICNUMBERFORMS } /* commonindicnumberforms */,
- { 0, 6576, 10135, 11, 3, UNI_XPOSIXALPHA } /* alphabetic=yes */,
- { 0, 1006, 0, 17, 0, UNI_ANCIENTGREEKMUSIC } /* ancientgreekmusic */,
- { 0, 5986, 8714, 13, 3, UNI_NV__300 } /* numericvalue=300 */,
- { 0, 3043, 0, 18, 0, UNI_HALFMARKS } /* combininghalfmarks */,
- { 0, 9277, 9335, 3, 4, UNI_SC__TAKR } /* sc=takr */,
- { 8, 7738, 0, 9, 0, UNI_xids_values_index } /* xidstart= */,
- { 0, 184, 9756, 2, 4, UNI_RUNR } /* isrunr */,
- { 1, 184, 7188, 2, 4, UNI_KHAR } /* iskhar */,
- { 3, 8884, 1, 4, 1, -UNI_EXT } /* ext=n */,
- { 4, 9351, 10135, 4, 3, UNI_IDS } /* ids=yes */,
- { 1, 184, 3169, 2, 4, UNI_ETHI } /* isethi */,
- { 10, 2224, 1345, 3, 24, UNI_SYMBOLSFORLEGACYCOMPUTING } /* insymbolsforlegacycomputing */,
- { 2, 8780, 3026, 7, 17, UNI_CHEROKEESUP } /* block=cherokeesupplement */,
- { 4, 9444, 9844, 4, 3, UNI_IN__1_DOT_1 } /* age=v11 */,
- { 0, 9768, 382, 4, 4, UNI_EGYP } /* scx=egyp */,
- { 89, 3277, 0, 18, 0, UNI_PI } /* initialpunctuation */,
- { 4, 9488, 9664, 4, 3, UNI_INMRO } /* blk=mro */,
- { 0, 9277, 8561, 3, 4, UNI_OSMA } /* sc=osma */,
- { 0, 3098, 0, 5, 0, UNI_ECOMP } /* ecomp */,
- { 0, 10012, 1204, 3, 9, UNI_EA__F } /* ea=fullwidth */,
- { 16, 1537, 9, 24, 2, UNI_INPC__NA } /* indicpositionalcategory=na */,
- { 0, 10048, 7874, 3, 2, UNI_NV__23 } /* nv=23 */,
- { 0, 5791, 5354, 13, 14, UNI_JG__MANICHAEANHETH } /* joininggroup=manichaeanheth */,
- { 1, 1114, 1025, 26, 2, -UNI_CWKCF } /* changeswhennfkccasefolded=no */,
- { 2, 3853, 9255, 17, 5, -UNI_STERM } /* sentenceterminal=false */,
- { 0, 7088, 2268, 10, 3, UNI_BC__PDI } /* bidiclass=pdi */,
- { 2, 184, 9616, 2, 4, UNI_KTHI } /* iskthi */,
- { 4, 10027, 5, 3, 1, UNI_JG__E } /* jg=e */,
- { 0, 1344, 0, 25, 0, UNI_SYMBOLSFORLEGACYCOMPUTING } /* symbolsforlegacycomputing */,
- { 0, 2703, 0, 19, 0, UNI_ENCLOSEDALPHANUMSUP } /* enclosedalphanumsup */,
- { 1, 7318, 9852, 10, 4, UNI_IN__12_DOT_1 } /* presentin=v121 */,
- { 1, 8589, 2608, 7, 4, UNI_BRAH } /* script=brah */,
- { 58, 9488, 6109, 4, 12, UNI_CYRILLICEXTB } /* blk=cyrillicextb */,
- { 35, 6231, 720, 3, 29, UNI_CUNEIFORMNUMBERS } /* incuneiformnumbersandpunctuation */,
- { 98, 9277, 9828, 3, 4, UNI_THAI } /* sc=thai */,
- { 37, 2288, 3055, 5, 6, UNI_HALFMARKS } /* inhalfmarks */,
- { 7, 5986, 8727, 13, 2, UNI_NV__32 } /* numericvalue=32 */,
- { 0, 8852, 0, 5, 0, UNI_CWKCF } /* cwkcf */,
- { 2, 9488, 6807, 4, 11, UNI_MISCSYMBOLS } /* blk=miscsymbols */,
- { 1, 8589, 9872, 7, 4, UNI_XPEO } /* script=xpeo */,
- { 3, 1979, 5818, 10, 12, UNI_ZL } /* category=lineseparator */,
- { 3, 1417, 3572, 24, 5, UNI_CCC__B } /* canonicalcombiningclass=below */,
- { 17, 1369, 0, 24, 0, UNI_ARABICPFA } /* arabicpresentationformsa */,
- { 82, 9262, 751, 3, 5, UNI_SB__CL } /* sb=close */,
- { 13, 2529, 0, 21, 0, UNI_TERM } /* terminalpunctuation=t */,
- { 3, 9488, 4241, 4, 16, UNI_MISCMATHSYMBOLSA } /* blk=miscmathsymbolsa */,
- { 0, 9488, 8386, 4, 7, UNI_CJKEXTF } /* blk=cjkextf */,
- { 12, 8780, 1033, 6, 11, UNI_ENCLOSEDCJK } /* block=enclosedcjk */,
- { 1, 9277, 8428, 3, 7, UNI_SC__GRAN } /* sc=grantha */,
- { 0, 749, 0, 16, 0, UNI_ENCLOSEDALPHANUM } /* enclosedalphanum */,
- { 0, 9488, 1369, 4, 24, UNI_ARABICPFA } /* blk=arabicpresentationformsa */,
- { 2, 3331, 0, 18, 0, UNI_ORNAMENTALDINGBATS } /* ornamentaldingbats */,
- { 1, 9524, 1, 4, 1, -UNI_CWT } /* cwt=n */,
- { 0, 7076, 4449, 3, 14, UNI_BAMUMSUP } /* inbamumsupplement */,
- { 2, 7318, 7469, 10, 1, UNI_IN__5 } /* presentin=5 */,
- { 0, 9230, 0, 4, 0, UNI_CWCF } /* cwcf */,
- { 1, 9277, 9688, 3, 3, UNI_NKO } /* sc=nko */,
- { 0, 8631, 0, 7, 0, UNI_SUPPUAB } /* suppuab */,
- { 142, 9540, 9255, 4, 5, -UNI_DIA } /* dia=false */,
- { 2, 4033, 4568, 16, 14, UNI_SC } /* generalcategory=currencysymbol */,
- { 30, 8870, 26, 6, 1, UNI_EPRES } /* epres=y */,
- { 1, 9768, 6886, 5, 3, UNI_SHAW } /* scx=shaw */,
- { 1, 5032, 26, 14, 1, UNI_POSIXXDIGIT } /* asciihexdigit=y */,
- { 6, 5986, 9910, 13, 3, UNI_NV__1_SLASH_9 } /* numericvalue=1/9 */,
- { 0, 3836, 9688, 17, 4, UNI_NKO } /* scriptextensions=nkoo */,
- { 0, 9277, 9780, 3, 4, UNI_SHAW } /* sc=shaw */,
- { 6, 10048, 7950, 3, 1, UNI_NV__9 } /* nv=9 */,
- { 0, 7325, 9401, 3, 3, UNI_IN__3 } /* in=3.0 */,
- { 24, 5739, 26, 13, 1, UNI_GRBASE } /* graphemebase=y */,
- { 3, 184, 2836, 2, 19, UNI_MODIFIERTONELETTERS } /* ismodifiertoneletters */,
- { 2, 1834, 0, 22, 0, UNI_cwt_values_index } /* changeswhentitlecased= */,
- { 0, 184, 951, 2, 28, UNI_VSSUP } /* isvariationselectorssupplement */,
- { 0, 9768, 9448, 4, 4, UNI_AGHB } /* scx=aghb */,
- { 1, 9768, 9789, 5, 3, UNI_SHRD } /* scx=shrd */,
- { 0, 9508, 8805, 5, 5, UNI_CCC__118 } /* ccc=ccc118 */,
- { 6, 6085, 0, 12, 0, UNI_CHESSSYMBOLS } /* chesssymbols */,
- { 3, 10048, 8710, 3, 2, UNI_NV__60 } /* nv=60 */,
- { 0, 3097, 10069, 18, 3, UNI_DT__SQR } /* decompositiontype=sqr */,
- { 1, 6553, 1, 12, 1, -UNI_XIDC } /* xidcontinue=n */,
- { 0, 8147, 36, 8, 1, UNI_EXTPICT } /* extpict=t */,
- { 1, 8780, 809, 6, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* block=enclosedideographicsup */,
- { 5, 117, 4704, 3, 14, UNI_INIMPERIALARAMAIC } /* inimperialaramaic */,
- { 24, 9277, 3937, 3, 8, UNI_SC__BOPO } /* sc=bopomofo */,
- { 0, 8996, 0, 5, 0, UNI_STERM } /* sterm */,
- { 5, 184, 6620, 2, 6, UNI_DOMINO } /* isdomino */,
- { 0, 3836, 4478, 17, 7, UNI_BRAI } /* scriptextensions=braille */,
- { 3, 8147, 0, 8, 0, UNI_extpict_values_index } /* extpict= */,
- { 1, 4422, 3117, 4, 8, UNI_INDEVANAGARI } /* indevanagari */,
- { 0, 5578, 751, 14, 2, UNI_SB__CL } /* sentencebreak=cl */,
- { 0, 10048, 7765, 3, 2, UNI_NV__25 } /* nv=25 */,
- { 7, 8954, 0, 6, 0, UNI_nchar_values_index } /* nchar= */,
- { 26, 9488, 7118, 4, 10, UNI_INCHORASMIAN } /* blk=chorasmian */,
- { 5, 184, 1466, 3, 12, UNI_M } /* iscombiningmark */,
- { 0, 10296, 10309, 3, 4, UNI_XPOSIXPRINT } /* isprint */,
- { 1, 10048, 0, 3, 0, UNI_nv_values_index } /* nv= */,
- { 8, 7218, 7268, 10, 10, UNI_LB__NS } /* linebreak=nonstarter */,
- { 2, 5791, 4177, 13, 16, UNI_JG__MANICHAEANDALETH } /* joininggroup=manichaeandaleth */,
- { 5, 8589, 8606, 10, 4, UNI_SHAW } /* script=shavian */,
- { 1, 9688, 0, 4, 0, UNI_NKO } /* nkoo */,
- { 0, 8780, 2589, 6, 19, UNI_ANCIENTGREEKNUMBERS } /* block=ancientgreeknumbers */,
- { 0, 8589, 9696, 7, 4, UNI_OGAM } /* script=ogam */,
- { 33, 10027, 6774, 3, 11, UNI_JG__MALAYALAMJA } /* jg=malayalamja */,
- { 0, 3853, 10135, 17, 3, UNI_STERM } /* sentenceterminal=yes */,
- { 17, 2288, 2724, 4, 17, UNI_JAMOEXTA } /* inhanguljamoextendeda */,
- { 0, 7155, 9585, 3, 3, UNI_HLUW } /* ishluw */,
- { 0, 10048, 9376, 3, 4, UNI_NV__1_SLASH_64 } /* nv=1/64 */,
- { 0, 184, 3133, 2, 5, UNI_EMOJI } /* isemoji */,
- { 42, 2140, 0, 18, 0, UNI_CYRILLICSUP } /* cyrillicsupplement */,
- { 4, 184, 4793, 2, 15, UNI_MERC } /* ismeroiticcursive */,
- { 11, 7540, 9836, 9, 4, UNI_EXT } /* extender=true */,
- { 0, 78, 0, 6, 0, UNI_ARAB } /* arabic */,
- { 0, 9520, 9255, 4, 5, -UNI_CWL } /* cwl=false */,
- { 1, 184, 2032, 2, 21, UNI__PERL_NCHAR } /* isnoncharactercodepoint */,
- { 5, 8351, 0, 7, 0, UNI_CJKEXTA } /* cjkexta */,
- { 5, 7438, 4856, 10, 2, UNI_WB__DQ } /* wordbreak=dq */,
- { 0, 8589, 8299, 7, 8, UNI_TFNG } /* script=tifinagh */,
- { 13, 4628, 1192, 15, 9, UNI_EA__H } /* eastasianwidth=halfwidth */,
- { 2, 9508, 9934, 4, 3, UNI_CCC__R } /* ccc=226 */,
- { 0, 8589, 8990, 7, 6, UNI_RJNG } /* script=rejang */,
- { 29, 10048, 7803, 3, 8, UNI_NV__1_SLASH_64 } /* nv=1.56e-02 */,
- { 0, 8780, 951, 6, 28, UNI_VSSUP } /* block=variationselectorssupplement */,
- { 0, 6484, 0, 4, 0, UNI_HUNG } /* hung */,
- { 2, 3097, 6421, 18, 12, UNI_DT__NONCANON } /* decompositiontype=noncanonical */,
- { 0, 3836, 7428, 17, 4, UNI_WARA } /* scriptextensions=wara */,
- { 6, 10060, 36, 3, 1, UNI_RI } /* ri=t */,
- { 2, 1188, 8292, 3, 7, UNI_INTAGBANWA } /* intagbanwa */,
- { 3, 184, 47, 2, 1, UNI_M } /* ism */,
- { 12, 6710, 3881, 4, 4, UNI_INCARIAN } /* incarian */,
- { 0, 8780, 4273, 6, 7, UNI_INMYANMAR } /* block=myanmar */,
- { 3, 9275, 3061, 5, 18, UNI_INSC__CONSONANTSUBJOINED } /* insc=consonantsubjoined */,
- { 0, 9508, 9221, 5, 4, UNI_CCC__91 } /* ccc=ccc91 */,
- { 13, 8589, 4385, 7, 4, UNI_TANG } /* script=tang */,
- { 0, 7088, 2893, 10, 19, UNI_BC__RLO } /* bidiclass=righttoleftoverride */,
- { 0, 8589, 7558, 7, 9, UNI_SC__QAAI } /* script=inherited */,
- { 1, 7088, 10018, 10, 3, UNI_BC__FSI } /* bidiclass=fsi */,
- { 3, 8780, 6505, 6, 12, UNI_PHAISTOS } /* block=phaistosdisc */,
- { 0, 10024, 10168, 3, 2, UNI_CASEDLETTER } /* gc=l& */,
- { 2, 10033, 5564, 3, 9, UNI_LB__QU } /* lb=quotation */,
- { 3, 9488, 1033, 4, 27, UNI_ENCLOSEDCJK } /* blk=enclosedcjklettersandmonths */,
- { 6, 2224, 780, 3, 29, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* insymbolsandpictographsextendeda */,
- { 1, 184, 3870, 2, 17, UNI_SMALLFORMS } /* issmallformvariants */,
- { 0, 9808, 0, 4, 0, UNI_TALU } /* talu */,
- { 5, 6805, 4261, 6, 12, UNI_MISCMATHSYMBOLSB } /* inmiscmathsymbolsb */,
- { 8, 3836, 9008, 17, 6, UNI_THAA } /* scriptextensions=thaana */,
- { 6, 9277, 78, 3, 4, UNI_SC__ARAB } /* sc=arab */,
- { 1, 2218, 9685, 3, 3, UNI_INNEWA } /* innewa */,
- { 1, 3367, 0, 18, 0, UNI_patws_values_index } /* patternwhitespace= */,
- { 1, 6061, 10135, 12, 3, UNI_BIDIC } /* bidicontrol=yes */,
- { 0, 8780, 9305, 6, 5, UNI_INNUSHU } /* block=nushu */,
- { 1, 9488, 8596, 4, 7, UNI_SC__SHRD } /* blk=sharada */,
- { 0, 9768, 8344, 4, 4, UNI_BENG } /* scx=beng */,
- { 6, 3853, 3, 17, 1, -UNI_STERM } /* sentenceterminal=f */,
- { 1, 779, 0, 30, 0, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* symbolsandpictographsextendeda */,
- { 1, 9260, 1025, 5, 2, -UNI_IDSB } /* idsb=no */,
- { 1, 9768, 7621, 4, 9, UNI_NBAT } /* scx=nabataean */,
- { 3, 8780, 2076, 6, 22, UNI_TRANSPORTANDMAP } /* block=transportandmapsymbols */,
- { 0, 6469, 0, 12, 0, UNI_nt_values_index } /* numerictype= */,
- { 0, 7218, 7522, 10, 9, UNI_LB__B2 } /* linebreak=breakboth */,
- { 0, 9277, 9245, 3, 5, UNI_SC__DOGR } /* sc=dogra */,
- { 0, 9488, 908, 4, 10, UNI_PUA } /* blk=privateuse */,
- { 7, 10027, 6906, 3, 11, UNI_JG__ROHINGYAYEH } /* jg=rohingyayeh */,
- { 3, 2288, 1656, 4, 21, UNI_COMPATJAMO } /* inhangulcompatibilityjamo */,
- { 2, 3097, 1294, 18, 5, UNI_DT__SUP } /* decompositiontype=super */,
- { 2, 9488, 4598, 4, 15, UNI_DIACRITICALSEXT } /* blk=diacriticalsext */,
- { 0, 9508, 7950, 4, 1, UNI_CCC__9 } /* ccc=9 */,
- { 5, 4065, 0, 16, 0, UNI_HALFANDFULLFORMS } /* halfandfullforms */,
- { 2, 7088, 3700, 10, 17, UNI_BC__ES } /* bidiclass=europeanseparator */,
- { 48, 8589, 2855, 7, 9, UNI_SC__MONG } /* script=mongolian */,
- { 0, 7218, 395, 10, 2, UNI_LB__GL } /* linebreak=gl */,
- { 1, 9008, 0, 4, 0, UNI_THAA } /* thaa */,
- { 3, 9488, 6121, 4, 12, UNI_CYRILLICEXTC } /* blk=cyrillicextc */,
- { 4, 184, 1944, 2, 22, UNI_EARLYDYNASTICCUNEIFORM } /* isearlydynasticcuneiform */,
- { 8, 10024, 6035, 3, 2, UNI_PF } /* gc=pf */,
- { 0, 10048, 8750, 3, 4, UNI_NV__8000 } /* nv=8000 */,
- { 2, 4116, 6, 3, 2, UNI_IDC } /* isidc */,
- { 7, 10048, 7858, 3, 2, UNI_NV__22 } /* nv=22 */,
- { 1, 9488, 2609, 5, 5, UNI_INBRAHMI } /* blk=brahmi */,
- { 0, 8115, 0, 4, 0, UNI_BASS } /* bass */,
- { 2, 9768, 8477, 4, 7, UNI_MAKA } /* scx=makasar */,
- { 0, 8780, 570, 7, 29, UNI_CJKEXTC } /* block=cjkunifiedideographsextensionc */,
- { 0, 10033, 5585, 3, 2, UNI_EBASE } /* lb=eb */,
- { 14, 2119, 0, 14, 0, UNI_CJKRADICALSSUP } /* cjkradicalssup */,
- { 0, 493, 0, 3, 0, UNI_HAN } /* han */,
- { 1, 3836, 2817, 17, 4, UNI_MERO } /* scriptextensions=mero */,
- { 1, 10288, 6554, 3, 10, UNI_XIDC } /* isxidcontinue */,
- { 65, 184, 6807, 2, 11, UNI_MISCSYMBOLS } /* ismiscsymbols */,
- { 65, 9508, 9922, 4, 3, UNI_CCC__214 } /* ccc=214 */,
- { 100, 8275, 0, 8, 0, UNI_SPECIALS } /* specials */,
- { 0, 5986, 7890, 13, 2, UNI_NV__33 } /* numericvalue=33 */,
- { 0, 2288, 1514, 3, 23, UNI_HIGHPUSURROGATES } /* inhighprivateusesurrogates */,
- { 24, 2760, 5633, 19, 2, UNI_LB__H2 } /* hangulsyllabletype=lv */,
- { 17, 184, 908, 2, 14, UNI_PUA } /* isprivateusearea */,
- { 0, 9768, 8659, 4, 7, UNI_TIBT } /* scx=tibetan */,
- { 4, 10129, 10135, 3, 3, UNI_VS } /* vs=yes */,
- { 1, 7540, 9255, 9, 5, -UNI_EXT } /* extender=false */,
- { 1, 9350, 1025, 5, 2, -UNI_XIDS } /* xids=no */,
- { 1, 9768, 8645, 4, 7, UNI_LANA } /* scx=taitham */,
- { 0, 8589, 2817, 7, 19, UNI_MERO } /* script=meroitichieroglyphs */,
- { 11, 9504, 0, 4, 0, UNI_CANS } /* cans */,
- { 0, 9277, 9580, 3, 4, UNI_SC__HANO } /* sc=hano */,
- { 15, 10024, 1, 3, 1, UNI_N } /* gc=n */,
- { 21, 3836, 9740, 17, 4, UNI_QAAI } /* scriptextensions=qaai */,
- { 22, 10033, 5088, 3, 14, UNI_LB__SA } /* lb=complexcontext */,
- { 0, 1417, 9223, 24, 2, UNI_CCC__91 } /* canonicalcombiningclass=91 */,
- { 0, 9596, 6541, 4, 12, UNI_GCB__T } /* hst=trailingjamo */,
- { 0, 8688, 3923, 4, 14, UNI_ARABICSUP } /* isarabicsupplement */,
- { 4, 184, 3893, 2, 11, UNI_SGNW } /* issignwriting */,
- { 0, 7118, 0, 10, 0, UNI_CHRS } /* chorasmian */,
- { 4, 0, 0, 42, 0, UNI_UCASEXT } /* unifiedcanadianaboriginalsyllabicsextended */,
- { 3, 10333, 6973, 3, 3, UNI_SYLO } /* issylo */,
- { 5, 7088, 2509, 10, 11, UNI_BC__R } /* bidiclass=righttoleft */,
- { 5, 9275, 4417, 5, 5, UNI_INSC__VOWEL } /* insc=vowel */,
- { 0, 10024, 5494, 3, 14, UNI_MN } /* gc=nonspacingmark */,
- { 32, 1552, 9225, 9, 5, UNI_XPOSIXCNTRL } /* category=cntrl */,
- { 16, 9262, 9080, 3, 5, UNI_SB__AT } /* sb=aterm */,
- { 0, 10033, 908, 3, 2, UNI_LB__PR } /* lb=pr */,
- { 0, 7318, 7781, 10, 1, UNI_IN__4 } /* presentin=4 */,
- { 0, 4883, 0, 15, 0, UNI_SARB } /* oldsoutharabian */,
- { 0, 5791, 4773, 13, 3, UNI_JG__SAD } /* joininggroup=sad */,
- { 1, 183, 0, 20, 0, UNI_MISCSYMBOLS } /* miscellaneoussymbols */,
- { 1, 6231, 3081, 4, 16, UNI_COPTICEPACTNUMBERS } /* incopticepactnumbers */,
- { 1, 5116, 1, 14, 1, -UNI_EMOD } /* emojimodifier=n */,
- { 0, 3836, 9636, 17, 4, UNI_LINB } /* scriptextensions=linb */,
- { 32, 8780, 349, 6, 33, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* block=supplementalsymbolsandpictographs */,
- { 0, 5018, 0, 14, 0, UNI_ANCIENTSYMBOLS } /* ancientsymbols */,
- { 4, 10048, 7821, 3, 1, UNI_NV__8 } /* nv=8 */,
- { 3, 5986, 9380, 13, 3, UNI_NV__1_SLASH_8 } /* numericvalue=1/8 */,
- { 3, 9488, 8379, 4, 7, UNI_CJKEXTE } /* blk=cjkexte */,
- { 24, 4916, 3458, 3, 10, UNI_TAIXUANJING } /* istaixuanjing */,
- { 1, 8864, 9255, 6, 5, -UNI_EMOJI } /* emoji=false */,
- { 1, 3836, 2560, 17, 4, UNI_MAND } /* scriptextensions=mand */,
- { 1, 8912, 0, 4, 0, UNI_KHOJ } /* khoj */,
- { 0, 8780, 8243, 6, 8, UNI_INMAHAJANI } /* block=mahajani */,
- { 1, 9277, 3241, 3, 8, UNI_SC__GEOR } /* sc=georgian */,
- { 1, 8187, 0, 4, 0, UNI_HIRA } /* hira */,
- { 23, 184, 2054, 2, 22, UNI_MODIFIERLETTERS } /* isspacingmodifierletters */,
- { 0, 1417, 7858, 24, 3, UNI_CCC__B } /* canonicalcombiningclass=220 */,
- { 0, 9290, 9836, 5, 4, UNI_MATH } /* math=true */,
- { 1, 5986, 9432, 13, 4, UNI_NV__5_SLASH_12 } /* numericvalue=5/12 */,
- { 1, 9768, 9808, 4, 4, UNI_TALU } /* scx=talu */,
- { 15, 3529, 9255, 18, 5, -UNI_VS } /* variationselector=false */,
- { 0, 1537, 7170, 4, 8, UNI_INDIVESAKURU } /* indivesakuru */,
- { 1, 3529, 9836, 18, 4, UNI_VS } /* variationselector=true */,
- { 8, 1834, 1, 22, 1, -UNI_CWT } /* changeswhentitlecased=n */,
- { 0, 3097, 2569, 18, 4, UNI_DT__VERT } /* decompositiontype=vert */,
- { 2, 4916, 2297, 3, 3, UNI_THAI } /* isthai */,
- { 51, 9556, 34, 4, 6, UNI_GCB__EX } /* gcb=extend */,
- { 1, 184, 2350, 3, 19, UNI_PC } /* isconnectorpunctuation */,
- { 8, 7158, 0, 10, 0, UNI_dia_values_index } /* diacritic= */,
- { 2, 4033, 728, 16, 6, UNI_N } /* generalcategory=number */,
- { 0, 10048, 8756, 3, 3, UNI_NV__900 } /* nv=900 */,
- { 2, 9488, 113, 4, 25, UNI_DIACRITICALS } /* blk=combiningdiacriticalmarks */,
- { 1, 96, 0, 10, 0, UNI_XPOSIXALPHA } /* alphabetic */,
- { 0, 9488, 1677, 4, 9, UNI_LATINEXTE } /* blk=latinexte */,
- { 0, 184, 809, 2, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* isenclosedideographicsupplement */,
- { 3, 8589, 8876, 7, 4, UNI_GOTH } /* script=goth */,
- { 0, 10048, 7778, 3, 2, UNI_NV__21 } /* nv=21 */,
- { 1, 2529, 1025, 20, 2, -UNI_TERM } /* terminalpunctuation=no */,
- { 1, 184, 5746, 2, 5, UNI_EBASE } /* isebase */,
- { 0, 8589, 1115, 7, 4, UNI_SC__HANG } /* script=hang */,
- { 54, 184, 3295, 2, 18, UNI_LATINEXTADDITIONAL } /* islatinextadditional */,
- { 31, 9488, 3683, 4, 16, UNI_ETHIOPICEXT } /* blk=ethiopicextended */,
- { 3, 7438, 5746, 10, 5, UNI_WB__EB } /* wordbreak=ebase */,
- { 5, 8589, 8091, 7, 8, UNI_ARMN } /* script=armenian */,
- { 22, 7076, 1586, 3, 22, UNI_BYZANTINEMUSIC } /* inbyzantinemusicalsymbols */,
- { 0, 7155, 8450, 3, 5, UNI_HYPHEN } /* ishyphen */,
- { 0, 5791, 5, 13, 1, UNI_JG__E } /* joininggroup=e */,
- { 1, 9277, 9656, 3, 4, UNI_MIAO } /* sc=miao */,
- { 3, 10132, 8139, 3, 8, UNI_WB__EB } /* wb=ebasegaz */,
- { 2, 1417, 0, 24, 0, UNI_ccc_values_index } /* canonicalcombiningclass= */,
- { 1, 2529, 10135, 20, 3, UNI_TERM } /* terminalpunctuation=yes */,
- { 4, 9816, 0, 4, 0, UNI_TAVT } /* tavt */,
- { 5, 8768, 36, 6, 1, UNI_BIDIC } /* bidic=t */,
- { 0, 9768, 8107, 4, 4, UNI_BALI } /* scx=bali */,
- { 0, 8449, 36, 7, 1, UNI_HYPHEN } /* hyphen=t */,
- { 1, 9444, 10102, 4, 3, UNI_AGE__5_DOT_2 } /* age=v52 */,
- { 14, 5986, 8732, 13, 6, UNI_NV__500000 } /* numericvalue=500000 */,
- { 0, 4916, 8584, 3, 3, UNI_TAGS } /* istags */,
- { 8, 9788, 0, 4, 0, UNI_SHRD } /* shrd */,
- { 2, 9488, 4973, 4, 8, UNI_VEDICEXT } /* blk=vedicext */,
- { 1, 9488, 2855, 4, 12, UNI_MONGOLIANSUP } /* blk=mongoliansup */,
- { 0, 9020, 36, 6, 1, UNI_XPOSIXUPPER } /* upper=t */,
- { 24, 1417, 9221, 25, 4, UNI_CCC__91 } /* canonicalcombiningclass=ccc91 */,
- { 1, 9488, 2429, 4, 20, UNI_ININSCRIPTIONALPAHLAVI } /* blk=inscriptionalpahlavi */,
- { 1, 6277, 0, 12, 0, UNI_MAHJONG } /* mahjongtiles */,
- { 0, 184, 8484, 2, 7, UNI_MAND } /* ismandaic */,
- { 3, 8780, 2666, 7, 18, UNI_COUNTINGROD } /* block=countingrodnumerals */,
- { 1, 184, 9864, 2, 4, UNI_WCHO } /* iswcho */,
- { 33, 5060, 1, 14, 1, -UNI_CI } /* caseignorable=n */,
- { 0, 184, 1, 2, 1, UNI_N } /* isn */,
- { 7, 8780, 4478, 6, 7, UNI_BRAI } /* block=braille */,
- { 8, 5578, 1867, 14, 5, UNI_SB__UP } /* sentencebreak=upper */,
- { 6, 9768, 7651, 4, 4, UNI_ITAL } /* scx=ital */,
- { 4, 10048, 8738, 3, 6, UNI_NV__600000 } /* nv=600000 */,
- { 13, 3079, 0, 6, 0, UNI_COPT } /* coptic */,
- { 8, 8589, 2224, 7, 21, UNI_PRTI } /* script=inscriptionalparthian */,
- { 1, 3836, 9600, 17, 4, UNI_KALI } /* scriptextensions=kali */,
- { 47, 1417, 16, 24, 1, UNI_CCC__B } /* canonicalcombiningclass=b */,
- { 1, 8589, 2913, 8, 8, UNI_SUND } /* script=sundanese */,
- { 33, 10048, 8019, 3, 8, UNI_NV__2_SLASH_3 } /* nv=6.67e-01 */,
- { 32, 3424, 1, 3, 41, UNI_UCASEXT } /* inunifiedcanadianaboriginalsyllabicsextended */,
- { 16, 9768, 8442, 4, 7, UNI_HANO } /* scx=hanunoo */,
- { 26, 9070, 1025, 5, 2, -UNI_POSIXXDIGIT } /* ahex=no */,
- { 0, 184, 8936, 2, 6, UNI_LYCI } /* islycian */,
- { 1, 6253, 0, 12, 0, UNI_KHMERSYMBOLS } /* khmersymbols */,
- { 0, 9768, 5843, 4, 9, UNI_MLYM } /* scx=malayalam */,
- { 0, 10024, 341, 3, 2, UNI_PE } /* gc=pe */,
- { 7, 9488, 3331, 4, 18, UNI_ORNAMENTALDINGBATS } /* blk=ornamentaldingbats */,
- { 4, 9508, 3015, 4, 5, UNI_CCC__A } /* ccc=above */,
- { 1, 9488, 3457, 4, 18, UNI_TAIXUANJING } /* blk=taixuanjingsymbols */,
- { 0, 5791, 7199, 14, 9, UNI_JG__KNOTTEDHEH } /* joininggroup=knottedheh */,
- { 5, 1417, 8795, 24, 3, UNI_CCC__103 } /* canonicalcombiningclass=103 */,
- { 1, 5791, 10057, 13, 3, UNI_JG__REH } /* joininggroup=reh */,
- { 3, 9488, 5688, 5, 12, UNI_BLOCKELEMENTS } /* blk=blockelements */,
- { 0, 1878, 0, 22, 0, UNI_CJKCOMPATIDEOGRAPHSSUP } /* cjkcompatideographssup */,
- { 1, 7318, 9840, 10, 4, UNI_IN__10 } /* presentin=v100 */,
- { 0, 8780, 7291, 6, 7, UNI_INSOGDIAN } /* block=sogdian */,
- { 24, 9277, 8990, 3, 6, UNI_RJNG } /* sc=rejang */,
- { 0, 10027, 9648, 3, 4, UNI_JG__MEEM } /* jg=meem */,
- { 5, 9724, 0, 4, 0, UNI_PHNX } /* phnx */,
- { 2, 184, 2855, 2, 12, UNI_MONGOLIANSUP } /* ismongoliansup */,
- { 1, 9768, 3241, 4, 8, UNI_GEOR } /* scx=georgian */,
- { 4, 10033, 10160, 3, 2, UNI_LB__H3 } /* lb=h3 */,
- { 2, 9492, 751, 4, 5, UNI_BPT__C } /* bpt=close */,
- { 8, 8407, 0, 7, 0, UNI_DSRT } /* deseret */,
- { 56, 10048, 8750, 3, 6, UNI_NV__800000 } /* nv=800000 */,
- { 1, 2409, 0, 13, 0, UNI_GLAGOLITICSUP } /* glagoliticsup */,
- { 16, 9768, 9592, 4, 4, UNI_HMNP } /* scx=hmnp */,
- { 9, 8589, 9584, 7, 4, UNI_HLUW } /* script=hluw */,
- { 1, 2280, 4885, 4, 13, UNI_SARB } /* isoldsoutharabian */,
- { 1, 3836, 9664, 17, 4, UNI_MRO } /* scriptextensions=mroo */,
- { 176, 6420, 9321, 3, 4, UNI_INOSAGE } /* inosage */,
- { 1, 8780, 8906, 6, 6, UNI_KANBUN } /* block=kanbun */,
- { 81, 1944, 0, 22, 0, UNI_EARLYDYNASTICCUNEIFORM } /* earlydynasticcuneiform */,
- { 2, 9277, 382, 3, 4, UNI_EGYP } /* sc=egyp */,
- { 0, 1087, 3, 27, 1, -UNI_PCM } /* prependedconcatenationmark=f */,
- { 0, 8589, 7288, 7, 10, UNI_SOGO } /* script=oldsogdian */,
- { 10, 9488, 5270, 4, 14, UNI_LATINEXTE } /* blk=latinextendede */,
- { 112, 3836, 9900, 17, 4, UNI_ZZZZ } /* scriptextensions=zzzz */,
- { 0, 8688, 2590, 3, 18, UNI_ANCIENTGREEKNUMBERS } /* isancientgreeknumbers */,
- { 65, 9997, 10042, 3, 3, UNI_BC__LRO } /* bc=lro */,
- { 0, 10033, 1465, 3, 13, UNI_LB__CM } /* lb=combiningmark */,
- { 28, 8780, 43, 7, 8, UNI_CJKCOMPAT } /* block=cjkcompat */,
- { 32, 7630, 0, 9, 0, UNI_TALU } /* newtailue */,
- { 3, 9768, 493, 4, 3, UNI_HAN } /* scx=han */,
- { 4, 10340, 9861, 3, 3, UNI_VAI } /* isvaii */,
- { 4, 10027, 7045, 3, 3, UNI_JG__FEH } /* jg=feh */,
- { 1, 6710, 3583, 4, 15, UNI_UCAS } /* incanadiansyllabics */,
- { 2, 4791, 6798, 4, 9, UNI_INMEDEFAIDRIN } /* inmedefaidrin */,
- { 4, 9768, 8456, 4, 7, UNI_KNDA } /* scx=kannada */,
- { 56, 1527, 0, 9, 0, UNI__PERL_SURROGATE } /* surrogate */,
- { 1, 8780, 2855, 6, 12, UNI_MONGOLIANSUP } /* block=mongoliansup */,
- { 0, 6807, 0, 11, 0, UNI_MISCSYMBOLS } /* miscsymbols */,
- { 1, 9290, 3, 5, 1, -UNI_MATH } /* math=f */,
- { 0, 8780, 1677, 6, 23, UNI_LATINEXTADDITIONAL } /* block=latinextendedadditional */,
- { 7, 9071, 10135, 4, 3, UNI_XPOSIXXDIGIT } /* hex=yes */,
- { 0, 5986, 9203, 13, 2, UNI_NV__34 } /* numericvalue=34 */,
- { 2, 8780, 540, 7, 29, UNI_CJKEXTB } /* block=cjkunifiedideographsextensionb */,
- { 0, 9038, 0, 4, 0, UNI_YEZI } /* yezi */,
- { 33, 5284, 0, 14, 0, UNI_LISUSUP } /* lisusupplement */,
- { 9, 4033, 4958, 16, 15, UNI_UPPERCASELETTER } /* generalcategory=uppercaseletter */,
- { 0, 3836, 9808, 17, 4, UNI_TALU } /* scriptextensions=talu */,
- { 8, 3836, 9860, 17, 3, UNI_VAI } /* scriptextensions=vai */,
- { 5, 9768, 9008, 4, 6, UNI_THAA } /* scx=thaana */,
- { 0, 8589, 7278, 7, 10, UNI_XPEO } /* script=oldpersian */,
- { 0, 3836, 3169, 17, 8, UNI_ETHI } /* scriptextensions=ethiopic */,
- { 9, 1828, 9255, 6, 5, -UNI_CASED } /* cased=false */,
- { 0, 10030, 6994, 3, 11, UNI_JT__T } /* jt=transparent */,
- { 0, 9768, 8421, 4, 4, UNI_ELYM } /* scx=elym */,
- { 2, 9488, 2061, 4, 15, UNI_MODIFIERLETTERS } /* blk=modifierletters */,
- { 1, 8589, 9464, 7, 4, UNI_ARMN } /* script=armn */,
- { 7, 9488, 8372, 4, 7, UNI_CJKEXTD } /* blk=cjkextd */,
- { 100, 8589, 8912, 7, 6, UNI_SC__KHOJ } /* script=khojki */,
- { 0, 9488, 4449, 5, 4, UNI_INBAMUM } /* blk=bamum */,
- { 57, 8780, 8659, 6, 7, UNI_INTIBETAN } /* block=tibetan */,
- { 2, 9235, 9255, 5, 5, -UNI_CWCM } /* cwcm=false */,
- { 0, 3904, 3, 17, 1, -UNI_UIDEO } /* unifiedideograph=f */,
- { 0, 7188, 0, 4, 0, UNI_KHAR } /* khar */,
- { 2, 8780, 2477, 6, 3, UNI_PUA } /* block=pua */,
- { 32, 8780, 7248, 6, 10, UNI_MISCARROWS } /* block=miscarrows */,
- { 138, 9270, 5523, 3, 13, UNI_PHONETICEXTSUP } /* inphoneticextsup */,
- { 0, 4916, 4929, 3, 14, UNI_TAMILSUP } /* istamilsupplement */,
- { 1, 3836, 9632, 17, 4, UNI_LINA } /* scriptextensions=lina */,
- { 0, 8780, 0, 6, 0, UNI_blk_values_index } /* block= */,
- { 68, 8589, 9002, 7, 4, UNI_SC__TELU } /* script=telu */,
- { 22, 5578, 339, 14, 2, UNI_SB__LO } /* sentencebreak=lo */,
- { 0, 2349, 0, 20, 0, UNI_PC } /* connectorpunctuation */,
- { 1, 184, 5674, 2, 5, UNI_BIDIM } /* isbidim */,
- { 24, 10024, 908, 3, 10, UNI_CO } /* gc=privateuse */,
- { 64, 21, 2308, 2, 21, UNI_YIJING } /* inyijinghexagramsymbols */,
- { 0, 3836, 7648, 17, 9, UNI_ITAL } /* scriptextensions=olditalic */,
- { 0, 9508, 3007, 4, 18, UNI_CCC__216 } /* ccc=attachedaboveright */,
- { 2, 9503, 0, 2, 0, UNI_MC } /* mc */,
- { 8, 9277, 5843, 3, 9, UNI_SC__MLYM } /* sc=malayalam */,
- { 0, 9716, 1, 4, 1, -UNI_PCM } /* pcm=n */,
- { 29, 9997, 2266, 3, 21, UNI_BC__PDI } /* bc=popdirectionalisolate */,
- { 0, 10296, 10308, 7, 5, UNI_POSIXPRINT } /* isposixprint */,
- { 32, 10027, 4193, 3, 16, UNI_JG__MANICHAEANLAMEDH } /* jg=manichaeanlamedh */,
- { 138, 10333, 6886, 3, 3, UNI_SHAW } /* isshaw */,
- { 0, 9488, 5074, 4, 14, UNI_CJKCOMPATFORMS } /* blk=cjkcompatforms */,
- { 31, 3683, 0, 11, 0, UNI_ETHIOPICEXT } /* ethiopicext */,
- { 17, 9768, 9740, 4, 4, UNI_QAAI } /* scx=qaai */,
- { 3, 7218, 495, 10, 7, UNI_LB__NU } /* linebreak=numeric */,
- { 6, 9540, 0, 4, 0, UNI_dia_values_index } /* dia= */,
- { 0, 9070, 0, 5, 0, UNI_ahex_values_index } /* ahex= */,
- { 0, 8780, 3633, 7, 16, UNI_CYRILLICEXTA } /* block=cyrillicextendeda */,
- { 2, 4385, 0, 16, 0, UNI_TANGUTCOMPONENTS } /* tangutcomponents */,
- { 50, 8780, 6098, 7, 11, UNI_CYRILLICEXTA } /* block=cyrillicexta */,
- { 0, 9275, 4113, 5, 16, UNI_INSC__INVISIBLESTACKER } /* insc=invisiblestacker */,
- { 0, 9488, 1344, 4, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* blk=symbolsforlegacycomputing */,
- { 1, 4542, 1633, 4, 13, UNI_GEOMETRICSHAPES } /* ingeometricshapes */,
- { 4, 9488, 6397, 4, 12, UNI_MATHALPHANUM } /* blk=mathalphanum */,
- { 4, 9345, 0, 5, 0, UNI_xidc_values_index } /* xidc= */,
- { 1, 3836, 9588, 17, 4, UNI_HMNG } /* scriptextensions=hmng */,
- { 0, 7228, 9836, 10, 4, UNI_XPOSIXLOWER } /* lowercase=true */,
- { 166, 10024, 400, 3, 6, UNI_CF } /* gc=format */,
- { 2, 9488, 5158, 4, 14, UNI_INGREEK } /* blk=greekandcoptic */,
- { 1, 838, 0, 29, 0, UNI_MISCARROWS } /* miscellaneoussymbolsandarrows */,
- { 4, 8882, 3, 6, 1, -UNI_GREXT } /* grext=f */,
- { 16, 2288, 4675, 4, 13, UNI_INHANGUL } /* inhangulsyllables */,
- { 0, 9270, 2549, 5, 20, UNI_INPC__TOPANDBOTTOMANDRIGHT } /* inpc=topandbottomandright */,
- { 0, 3921, 0, 16, 0, UNI_ARABICSUP } /* arabicsupplement */,
- { 8, 21, 2308, 2, 6, UNI_YIJING } /* inyijing */,
- { 0, 7495, 0, 9, 0, UNI_ARABICPFA } /* arabicpfa */,
- { 0, 184, 4340, 2, 13, UNI_MATHOPERATORS } /* ismathoperators */,
- { 0, 9488, 5778, 4, 6, UNI_IPAEXT } /* blk=ipaext */,
- { 0, 10027, 5620, 3, 10, UNI_JG__TEHMARBUTA } /* jg=tehmarbuta */,
- { 0, 2182, 73, 21, 2, UNI_WB__EB } /* graphemeclusterbreak=em */,
- { 0, 1979, 10169, 10, 1, UNI_CASEDLETTER } /* category=l& */,
- { 0, 9528, 1, 4, 1, -UNI_CWU } /* cwu=n */,
- { 0, 2760, 7720, 19, 9, UNI_GCB__V } /* hangulsyllabletype=voweljamo */,
- { 5, 184, 10168, 2, 2, UNI_CASEDLETTER } /* isl& */,
- { 182, 8365, 0, 7, 0, UNI_CJKEXTC } /* cjkextc */,
- { 4, 9768, 2224, 4, 21, UNI_PRTI } /* scx=inscriptionalparthian */,
- { 2, 9320, 0, 5, 0, UNI_OSGE } /* osage */,
- { 144, 9020, 1025, 6, 2, -UNI_XPOSIXUPPER } /* upper=no */,
- { 0, 9488, 1900, 4, 22, UNI_INDICNUMBERFORMS } /* blk=commonindicnumberforms */,
- { 1, 5986, 8075, 13, 8, UNI_NV__7_SLASH_8 } /* numericvalue=8.75e-01 */,
- { 0, 5116, 1025, 14, 2, -UNI_EMOD } /* emojimodifier=no */,
- { 141, 9444, 10099, 4, 3, UNI_AGE__5_DOT_1 } /* age=v51 */,
- { 0, 8688, 5719, 3, 4, UNI_XPOSIXALNUM } /* isalnum */,
- { 12, 10333, 0, 7, 0, UNI_XPOSIXSPACE } /* isspace */,
- { 2, 1631, 0, 23, 0, UNI_GEOMETRICSHAPESEXT } /* geometricshapesextended */,
- { 1, 2288, 8188, 3, 7, UNI_INHIRAGANA } /* inhiragana */,
- { 3, 9230, 10135, 5, 3, UNI_CWCF } /* cwcf=yes */,
- { 9, 9508, 9931, 4, 3, UNI_CCC__L } /* ccc=224 */,
- { 8, 9768, 9245, 4, 4, UNI_DOGR } /* scx=dogr */,
- { 1, 6420, 7649, 3, 8, UNI_INOLDITALIC } /* inolditalic */,
- { 0, 9768, 6973, 5, 3, UNI_SYLO } /* scx=sylo */,
- { 37, 5578, 69, 14, 2, UNI_SB__UP } /* sentencebreak=up */,
- { 2, 2280, 7290, 4, 8, UNI_SOGO } /* isoldsogdian */,
- { 0, 5116, 9836, 14, 4, UNI_EMOD } /* emojimodifier=true */,
- { 0, 9277, 6409, 3, 4, UNI_MEND } /* sc=mend */,
- { 113, 10333, 2913, 3, 8, UNI_SUND } /* issundanese */,
- { 2, 3836, 7675, 17, 4, UNI_PALM } /* scriptextensions=palm */,
- { 34, 8589, 9548, 7, 4, UNI_DSRT } /* script=dsrt */,
- { 10, 9768, 7118, 4, 10, UNI_CHRS } /* scx=chorasmian */,
- { 0, 9997, 3374, 3, 10, UNI_BC__WS } /* bc=whitespace */,
- { 1, 8852, 1025, 6, 2, -UNI_CWKCF } /* cwkcf=no */,
- { 7, 2477, 0, 3, 0, UNI_PUA } /* pua */,
- { 1, 184, 809, 2, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* isenclosedideographicsup */,
- { 0, 1417, 8, 24, 1, UNI_CCC__A } /* canonicalcombiningclass=a */,
- { 46, 5466, 26, 14, 1, UNI_NFDQC__Y } /* nfdquickcheck=y */,
- { 0, 2182, 24, 21, 1, UNI_GCB__L } /* graphemeclusterbreak=l */,
- { 5, 9275, 1244, 5, 9, UNI_INSC__CONSONANT } /* insc=consonant */,
- { 1, 10048, 8732, 3, 5, UNI_NV__50000 } /* nv=50000 */,
- { 0, 10024, 10176, 3, 2, UNI_ZL } /* gc=zl */,
- { 5, 9488, 4883, 4, 15, UNI_SARB } /* blk=oldsoutharabian */,
- { 43, 184, 5270, 2, 14, UNI_LATINEXTE } /* islatinextendede */,
- { 0, 10063, 26, 3, 1, UNI_SD } /* sd=y */,
- { 0, 5791, 5918, 13, 3, UNI_JG__TAW } /* joininggroup=taw */,
- { 10, 3385, 3, 18, 1, -UNI_RI } /* regionalindicator=f */,
- { 2, 9488, 7594, 4, 9, UNI_LATINEXTD } /* blk=latinextd */,
- { 0, 3836, 1900, 17, 6, UNI_ZYYY } /* scriptextensions=common */,
- { 0, 10033, 10158, 3, 2, UNI_LB__H2 } /* lb=h2 */,
- { 144, 9768, 7359, 5, 3, UNI_SAUR } /* scx=saur */,
- { 1, 10048, 7859, 3, 6, UNI_NV__200000 } /* nv=200000 */,
- { 0, 5986, 7923, 13, 8, UNI_NV__2_SLASH_5 } /* numericvalue=4.00e-01 */,
- { 32, 184, 2141, 3, 10, UNI_CYRILLICSUP } /* iscyrillicsup */,
- { 0, 4916, 3458, 3, 17, UNI_TAIXUANJING } /* istaixuanjingsymbols */,
- { 4, 8780, 2141, 7, 17, UNI_CYRILLICSUP } /* block=cyrillicsupplement */,
- { 7, 8780, 4448, 6, 5, UNI_INBAMUM } /* block=bamum */,
- { 1, 8091, 0, 8, 0, UNI_ARMN } /* armenian */,
- { 32, 184, 0, 3, 0, UNI_C } /* isc */,
- { 0, 184, 8115, 2, 4, UNI_BASS } /* isbass */,
- { 3, 184, 4583, 2, 4, UNI_DASH } /* isdash */,
- { 1, 9488, 4401, 4, 16, UNI_TANGUTSUP } /* blk=tangutsupplement */,
- { 1, 8780, 4257, 6, 16, UNI_MISCMATHSYMBOLSB } /* block=miscmathsymbolsb */,
- { 2, 9015, 1, 5, 1, -UNI_IDEO } /* ideo=n */,
- { 0, 184, 1677, 2, 5, UNI_LATN } /* islatin */,
- { 12, 10288, 3379, 8, 5, UNI_XPOSIXSPACE } /* isxposixspace */,
- { 89, 9488, 3439, 4, 18, UNI_SMALLKANAEXT } /* blk=smallkanaextension */,
- { 1, 2569, 0, 20, 0, UNI_vo_values_index } /* verticalorientation= */,
- { 0, 10024, 2268, 3, 2, UNI_PD } /* gc=pd */,
- { 30, 9488, 5256, 4, 14, UNI_LATINEXTD } /* blk=latinextendedd */,
- { 0, 8780, 567, 6, 2, UNI_NB } /* block=nb */,
- { 4, 10048, 7859, 3, 2, UNI_NV__20 } /* nv=20 */,
- { 0, 9444, 10123, 4, 3, UNI_AGE__9 } /* age=v90 */,
- { 0, 1417, 8811, 25, 5, UNI_CCC__122 } /* canonicalcombiningclass=ccc122 */,
- { 0, 9488, 7291, 4, 7, UNI_INSOGDIAN } /* blk=sogdian */,
- { 36, 10003, 1, 3, 1, -UNI_CI } /* ci=n */,
- { 1, 9277, 2817, 3, 4, UNI_MERO } /* sc=mero */,
- { 0, 10030, 6529, 3, 12, UNI_JT__R } /* jt=rightjoining */,
- { 2, 3836, 9325, 17, 5, UNI_RUNR } /* scriptextensions=runic */,
- { 0, 7058, 0, 10, 0, UNI_ARABICEXTA } /* arabicexta */,
- { 0, 3836, 8786, 17, 6, UNI_CARI } /* scriptextensions=carian */,
- { 8, 4658, 1, 15, 1, -UNI_GREXT } /* graphemeextend=n */,
- { 6, 9768, 1900, 4, 6, UNI_ZYYY } /* scx=common */,
- { 25, 9488, 2817, 4, 19, UNI_MERO } /* blk=meroitichieroglyphs */,
- { 0, 21, 5214, 2, 6, UNI_KANGXI } /* inkangxi */,
- { 65, 9488, 8990, 4, 6, UNI_INREJANG } /* blk=rejang */,
- { 0, 7318, 9955, 10, 3, UNI_IN__3_DOT_2 } /* presentin=3.2 */,
- { 0, 7325, 9388, 3, 4, UNI_IN__11 } /* in=11.0 */,
- { 1, 5791, 4193, 13, 16, UNI_JG__MANICHAEANLAMEDH } /* joininggroup=manichaeanlamedh */,
- { 3, 10027, 3785, 3, 17, UNI_JG__MANICHAEANDHAMEDH } /* jg=manichaeandhamedh */,
- { 2, 2855, 0, 19, 0, UNI_MONGOLIANSUP } /* mongoliansupplement */,
- { 0, 749, 0, 30, 0, UNI_ENCLOSEDALPHANUMSUP } /* enclosedalphanumericsupplement */,
- { 0, 8780, 6012, 6, 13, UNI_VERTICALFORMS } /* block=verticalforms */,
- { 1, 7325, 7765, 3, 1, UNI_IN__2 } /* in=2 */,
- { 2, 9488, 6097, 4, 12, UNI_CYRILLICEXTA } /* blk=cyrillicexta */,
- { 2, 8589, 0, 7, 0, UNI_sc_values_index } /* script= */,
- { 3, 446, 0, 18, 0, UNI_IDEOGRAPHICSYMBOLS } /* ideographicsymbols */,
- { 0, 5986, 9208, 13, 2, UNI_NV__35 } /* numericvalue=35 */,
- { 0, 9277, 2203, 3, 4, UNI_SC__HAN } /* sc=hani */,
- { 10, 9277, 2409, 3, 10, UNI_SC__GLAG } /* sc=glagolitic */,
- { 2, 8984, 9836, 6, 4, UNI_QMARK } /* qmark=true */,
- { 3, 5452, 9295, 14, 5, UNI_NFCQC__M } /* nfcquickcheck=maybe */,
- { 0, 9508, 9218, 4, 2, UNI_CCC__84 } /* ccc=84 */,
- { 1, 5791, 5312, 13, 14, UNI_JG__MANICHAEANAYIN } /* joininggroup=manichaeanayin */,
- { 3, 184, 3683, 2, 17, UNI_ETHIOPICEXTA } /* isethiopicextendeda */,
- { 2, 10027, 7055, 3, 3, UNI_JG__QAF } /* jg=qaf */,
- { 0, 2076, 0, 22, 0, UNI_TRANSPORTANDMAP } /* transportandmapsymbols */,
- { 2, 21, 8900, 2, 6, UNI_INKAITHI } /* inkaithi */,
- { 0, 8882, 0, 5, 0, UNI_GREXT } /* grext */,
- { 24, 9488, 1393, 4, 24, UNI_ARABICPFB } /* blk=arabicpresentationformsb */,
- { 64, 1552, 4583, 9, 15, UNI_PD } /* category=dashpunctuation */,
- { 0, 7438, 7730, 11, 8, UNI_WB__WSEGSPACE } /* wordbreak=wsegspace */,
- { 0, 9768, 9864, 4, 4, UNI_WCHO } /* scx=wcho */,
- { 1, 10024, 10178, 3, 2, UNI_ZP } /* gc=zp */,
- { 0, 10027, 6361, 3, 12, UNI_JG__MALAYALAMTTA } /* jg=malayalamtta */,
- { 40, 5986, 9408, 13, 4, UNI_NV__15_SLASH_2 } /* numericvalue=15/2 */,
- { 5, 5791, 5410, 13, 14, UNI_JG__MANICHAEANTETH } /* joininggroup=manichaeanteth */,
- { 13, 7088, 6493, 10, 12, UNI_BC__ON } /* bidiclass=otherneutral */,
- { 32, 8780, 1060, 7, 5, UNI_INCOPTIC } /* block=coptic */,
- { 32, 9488, 5186, 4, 14, UNI_HIGHSURROGATES } /* blk=highsurrogates */,
- { 8, 9768, 7648, 4, 9, UNI_ITAL } /* scx=olditalic */,
- { 37, 3529, 0, 18, 0, UNI_vs_values_index } /* variationselector= */,
- { 3, 8624, 0, 7, 0, UNI_SUPPUAA } /* suppuaa */,
- { 0, 1188, 2077, 3, 14, UNI_TRANSPORTANDMAP } /* intransportandmap */,
- { 97, 9488, 4449, 5, 7, UNI_BAMUMSUP } /* blk=bamumsup */,
- { 1, 184, 8344, 2, 4, UNI_BENG } /* isbeng */,
- { 1, 1417, 9934, 24, 3, UNI_CCC__R } /* canonicalcombiningclass=226 */,
- { 6, 9768, 9816, 4, 4, UNI_TAVT } /* scx=tavt */,
- { 82, 7738, 1, 9, 1, -UNI_XIDS } /* xidstart=n */,
- { 2, 8123, 0, 4, 0, UNI_BUGI } /* bugi */,
- { 166, 4257, 0, 16, 0, UNI_MISCMATHSYMBOLSB } /* miscmathsymbolsb */,
- { 56, 5986, 9416, 13, 4, UNI_NV__3_SLASH_16 } /* numericvalue=3/16 */,
- { 0, 9768, 8924, 4, 6, UNI_LEPC } /* scx=lepcha */,
- { 33, 8966, 0, 6, 0, UNI_nfdqc_values_index } /* nfdqc= */,
- { 0, 1087, 9255, 27, 5, -UNI_PCM } /* prependedconcatenationmark=false */,
- { 0, 8780, 3169, 6, 8, UNI_INETHIOPIC } /* block=ethiopic */,
- { 0, 184, 5256, 2, 14, UNI_LATINEXTD } /* islatinextendedd */,
- { 0, 8589, 8115, 7, 4, UNI_BASS } /* script=bass */,
- { 0, 7155, 1655, 3, 22, UNI_COMPATJAMO } /* ishangulcompatibilityjamo */,
- { 0, 8780, 3650, 7, 16, UNI_CYRILLICEXTB } /* block=cyrillicextendedb */,
- { 53, 9997, 5494, 3, 14, UNI_BC__NSM } /* bc=nonspacingmark */,
- { 0, 5791, 5396, 13, 14, UNI_JG__MANICHAEANRESH } /* joininggroup=manichaeanresh */,
- { 2, 9556, 18, 4, 2, UNI_RI } /* gcb=ri */,
- { 2, 8780, 6110, 7, 11, UNI_CYRILLICEXTB } /* block=cyrillicextb */,
- { 3, 9488, 3079, 4, 6, UNI_INCOPTIC } /* blk=coptic */,
- { 8, 7155, 6485, 3, 3, UNI_HUNG } /* ishung */,
- { 0, 5791, 5882, 13, 13, UNI_JG__MANICHAEANNUN } /* joininggroup=manichaeannun */,
- { 1, 5791, 7038, 13, 10, UNI_JG__AFRICANFEH } /* joininggroup=africanfeh */,
- { 2, 4628, 1, 15, 1, UNI_EA__N } /* eastasianwidth=n */,
- { 1, 9768, 3169, 4, 8, UNI_ETHI } /* scx=ethiopic */,
- { 1, 8780, 7504, 6, 9, UNI_ARABICPFB } /* block=arabicpfb */,
- { 0, 10033, 10162, 3, 2, UNI_GCB__L } /* lb=jl */,
- { 0, 9277, 9764, 3, 4, UNI_SARB } /* sc=sarb */,
- { 3, 21, 5284, 2, 4, UNI_INLISU } /* inlisu */,
- { 0, 8780, 9452, 6, 4, UNI_INAHOM } /* block=ahom */,
- { 0, 3097, 8163, 18, 3, UNI_DT__FRA } /* decompositiontype=fra */,
- { 1, 9260, 10135, 5, 3, UNI_IDSB } /* idsb=yes */,
- { 3, 9262, 112, 3, 2, UNI_SB__SC } /* sb=sc */,
- { 6, 9768, 3937, 4, 4, UNI_BOPO } /* scx=bopo */,
- { 3, 3382, 0, 3, 0, UNI_ce_values_index } /* ce= */,
- { 0, 5986, 5648, 13, 3, UNI_NV__100 } /* numericvalue=100 */,
- { 1, 7438, 138, 10, 2, UNI_WB__FO } /* wordbreak=fo */,
- { 214, 8882, 9255, 6, 5, -UNI_GREXT } /* grext=false */,
- { 1, 9351, 3, 4, 1, -UNI_IDS } /* ids=f */,
- { 0, 1273, 1, 21, 1, -UNI_CE } /* compositionexclusion=n */,
- { 1, 9277, 9788, 3, 4, UNI_SC__SHRD } /* sc=shrd */,
- { 1, 9488, 4161, 4, 16, UNI_LINEARBSYLLABARY } /* blk=linearbsyllabary */,
- { 0, 21, 8456, 2, 7, UNI_INKANNADA } /* inkannada */,
- { 0, 8589, 6181, 7, 12, UNI_SC__GONG } /* script=gunjalagondi */,
- { 16, 8358, 0, 7, 0, UNI_CJKEXTB } /* cjkextb */,
- { 1, 9262, 125, 3, 2, UNI_LB__CR } /* sb=cr */,
- { 1, 10027, 5882, 3, 13, UNI_JG__MANICHAEANNUN } /* jg=manichaeannun */,
- { 2, 8589, 9564, 7, 4, UNI_SC__GONM } /* script=gonm */,
- { 0, 9768, 9095, 4, 5, UNI_BUHD } /* scx=buhid */,
- { 0, 9444, 10096, 4, 3, UNI_AGE__5 } /* age=v50 */,
- { 2, 1188, 4929, 3, 7, UNI_TAMILSUP } /* intamilsup */,
- { 8, 7218, 202, 10, 2, UNI_LB__SA } /* linebreak=sa */,
- { 33, 9277, 7358, 3, 10, UNI_SAUR } /* sc=saurashtra */,
- { 0, 7218, 988, 10, 2, UNI_LB__CP } /* linebreak=cp */,
- { 1, 7088, 2489, 10, 20, UNI_BC__PDF } /* bidiclass=popdirectionalformat */,
- { 5, 10027, 5179, 3, 7, UNI_JG__HEHGOAL } /* jg=hehgoal */,
- { 8, 10024, 2349, 3, 20, UNI_PC } /* gc=connectorpunctuation */,
- { 9, 1966, 3061, 22, 18, UNI_INSC__CONSONANTSUBJOINED } /* indicsyllabiccategory=consonantsubjoined */,
- { 48, 7325, 9396, 3, 4, UNI_IN__12_DOT_1 } /* in=12.1 */,
- { 0, 7438, 34, 10, 2, UNI_WB__EX } /* wordbreak=ex */,
- { 24, 10012, 3, 3, 1, UNI_EA__F } /* ea=f */,
- { 1, 4033, 5040, 16, 5, UNI_XPOSIXDIGIT } /* generalcategory=digit */,
- { 2, 10333, 8632, 3, 6, UNI_SUPPUAB } /* issuppuab */,
- { 105, 9768, 9684, 4, 4, UNI_NEWA } /* scx=newa */,
- { 32, 1166, 1025, 26, 2, -UNI_DI } /* defaultignorablecodepoint=no */,
- { 3, 9488, 7128, 4, 10, UNI_CJKSTROKES } /* blk=cjkstrokes */,
- { 0, 5791, 4773, 13, 5, UNI_JG__SADHE } /* joininggroup=sadhe */,
- { 14, 4033, 467, 16, 11, UNI_P } /* generalcategory=punctuation */,
- { 0, 8780, 8291, 6, 8, UNI_INTAGBANWA } /* block=tagbanwa */,
- { 1, 6553, 0, 4, 0, UNI_XIDC } /* xidc */,
- { 10, 8435, 26, 7, 1, UNI_GRBASE } /* grbase=y */,
- { 16, 9488, 809, 4, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* blk=enclosedideographicsup */,
- { 36, 6805, 4245, 6, 12, UNI_MISCMATHSYMBOLSA } /* inmiscmathsymbolsa */,
- { 137, 184, 5752, 2, 8, UNI_GREEKEXT } /* isgreekext */,
- { 3, 7088, 2266, 10, 21, UNI_BC__PDI } /* bidiclass=popdirectionalisolate */,
- { 67, 9270, 2455, 5, 5, UNI_INPC__RIGHT } /* inpc=right */,
- { 0, 1417, 7078, 24, 10, UNI_CCC__BR } /* canonicalcombiningclass=belowright */,
- { 4, 4916, 4929, 3, 4, UNI_TAML } /* istamil */,
- { 65, 7088, 2509, 10, 20, UNI_BC__RLE } /* bidiclass=righttoleftembedding */,
- { 0, 9768, 8421, 4, 7, UNI_ELYM } /* scx=elymaic */,
- { 9, 8694, 9836, 7, 4, UNI_XPOSIXSPACE } /* wspace=true */,
- { 0, 3836, 7359, 18, 9, UNI_SAUR } /* scriptextensions=saurashtra */,
- { 4, 7076, 8124, 3, 7, UNI_INBUGINESE } /* inbuginese */,
- { 0, 1966, 5102, 22, 14, UNI_INSC__CONSONANTFINAL } /* indicsyllabiccategory=consonantfinal */,
- { 4, 9768, 8131, 4, 4, UNI_DUPL } /* scx=dupl */,
- { 0, 8780, 1006, 6, 17, UNI_ANCIENTGREEKMUSIC } /* block=ancientgreekmusic */,
- { 1, 9488, 8291, 4, 8, UNI_INTAGBANWA } /* blk=tagbanwa */,
- { 3, 184, 4129, 2, 16, UNI_LATIN1 } /* islatin1supplement */,
- { 0, 9265, 9836, 5, 4, UNI_IDST } /* idst=true */,
- { 42, 9488, 5171, 4, 4, UNI_INCHAM } /* blk=cham */,
- { 3, 9488, 2287, 4, 21, UNI_SINHALAARCHAICNUMBERS } /* blk=sinhalaarchaicnumbers */,
- { 1, 9488, 7585, 4, 9, UNI_LATINEXTC } /* blk=latinextc */,
- { 0, 9488, 328, 4, 21, UNI_MATHOPERATORS } /* blk=mathematicaloperators */,
- { 0, 4628, 9868, 15, 4, UNI_EA__W } /* eastasianwidth=wide */,
- { 57, 10333, 2288, 3, 6, UNI_SINH } /* issinhala */,
- { 0, 4033, 3358, 16, 9, UNI_Z } /* generalcategory=separator */,
- { 12, 5791, 6323, 13, 5, UNI_JG__GAMAL } /* joininggroup=gamal */,
- { 0, 9488, 5003, 4, 15, UNI_INZANABAZARSQUARE } /* blk=zanabazarsquare */,
- { 2, 9345, 3, 5, 1, -UNI_XIDC } /* xidc=f */,
- { 16, 3836, 9880, 17, 4, UNI_YI } /* scriptextensions=yiii */,
- { 260, 3836, 8666, 17, 7, UNI_TIRH } /* scriptextensions=tirhuta */,
- { 0, 5791, 8155, 13, 8, UNI_JG__FARSIYEH } /* joininggroup=farsiyeh */,
- { 0, 8780, 4241, 6, 16, UNI_MISCMATHSYMBOLSA } /* block=miscmathsymbolsa */,
- { 3, 10009, 5904, 3, 4, UNI_DT__NONE } /* dt=none */,
- { 275, 184, 8352, 3, 6, UNI_CJKEXTA } /* iscjkexta */,
- { 0, 9277, 6884, 3, 11, UNI_HMNG } /* sc=pahawhhmong */,
- { 19, 10033, 5046, 3, 14, UNI_LB__CR } /* lb=carriagereturn */,
- { 2, 2224, 1562, 3, 23, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* insupsymbolsandpictographs */,
- { 5, 9488, 42, 4, 26, UNI_CJKCOMPATIDEOGRAPHS } /* blk=cjkcompatibilityideographs */,
- { 93, 7088, 23, 10, 2, UNI_BC__AL } /* bidiclass=al */,
- { 9, 8780, 5270, 6, 14, UNI_LATINEXTE } /* block=latinextendede */,
- { 1, 9488, 7168, 4, 10, UNI_INDIVESAKURU } /* blk=divesakuru */,
- { 2, 184, 4017, 2, 16, UNI_PF } /* isfinalpunctuation */,
- { 2, 5986, 8067, 13, 8, UNI_NV__17_SLASH_2 } /* numericvalue=8.50e+00 */,
- { 0, 8780, 8484, 6, 7, UNI_INMANDAIC } /* block=mandaic */,
- { 6, 8780, 3421, 6, 4, UNI_RUMI } /* block=rumi */,
- { 0, 10027, 5326, 3, 14, UNI_JG__MANICHAEANBETH } /* jg=manichaeanbeth */,
- { 0, 3836, 78, 17, 4, UNI_ARAB } /* scriptextensions=arab */,
- { 5, 3836, 8645, 17, 7, UNI_LANA } /* scriptextensions=taitham */,
- { 1, 9277, 8477, 3, 4, UNI_MAKA } /* sc=maka */,
- { 1, 1537, 7298, 24, 10, UNI_INPC__OVERSTRUCK } /* indicpositionalcategory=overstruck */,
- { 1, 9488, 9800, 4, 4, UNI_TAGS } /* blk=tags */,
- { 0, 5606, 0, 14, 0, UNI_SUPPUNCTUATION } /* suppunctuation */,
- { 0, 6554, 0, 3, 0, UNI_IDC } /* idc */,
- { 86, 3836, 5284, 17, 4, UNI_LISU } /* scriptextensions=lisu */,
- { 1, 9488, 3887, 4, 17, UNI_SUTTONSIGNWRITING } /* blk=suttonsignwriting */,
- { 0, 8435, 10135, 7, 3, UNI_GRBASE } /* grbase=yes */,
- { 0, 184, 4002, 3, 6, UNI_CPRT } /* iscypriot */,
- { 0, 10033, 9557, 3, 2, UNI_LB__CB } /* lb=cb */,
- { 0, 8780, 2141, 7, 10, UNI_CYRILLICSUP } /* block=cyrillicsup */,
- { 1, 3836, 78, 17, 6, UNI_ARAB } /* scriptextensions=arabic */,
- { 13, 184, 9608, 2, 4, UNI_KITS } /* iskits */,
- { 137, 184, 7540, 2, 8, UNI_EXT } /* isextender */,
- { 1, 7325, 7782, 3, 1, UNI_IN__3 } /* in=3 */,
- { 36, 2308, 0, 21, 0, UNI_YIJING } /* yijinghexagramsymbols */,
- { 0, 5986, 8010, 13, 2, UNI_NV__36 } /* numericvalue=36 */,
- { 1, 5578, 1089, 15, 2, UNI_SB__SE } /* sentencebreak=sep */,
- { 3, 9668, 0, 4, 0, UNI_MTEI } /* mtei */,
- { 2, 3379, 9836, 6, 4, UNI_XPOSIXSPACE } /* space=true */,
- { 0, 6061, 9255, 12, 5, -UNI_BIDIC } /* bidicontrol=false */,
- { 0, 6609, 0, 10, 0, UNI_DEP } /* deprecated */,
- { 2, 10048, 7947, 3, 8, UNI_NV__3_SLASH_64 } /* nv=4.69e-02 */,
- { 3, 4643, 9255, 15, 5, -UNI_ECOMP } /* emojicomponent=false */,
- { 64, 8780, 8631, 6, 7, UNI_SUPPUAB } /* block=suppuab */,
- { 3, 184, 8498, 2, 4, UNI_MULT } /* ismult */,
- { 1, 9644, 0, 4, 0, UNI_MEDF } /* medf */,
- { 0, 10048, 9416, 3, 4, UNI_NV__3_SLASH_16 } /* nv=3/16 */,
- { 1, 9265, 1025, 5, 2, -UNI_IDST } /* idst=no */,
- { 0, 1006, 0, 27, 0, UNI_ANCIENTGREEKMUSIC } /* ancientgreekmusicalnotation */,
- { 1, 8589, 9672, 7, 4, UNI_SC__MYMR } /* script=mymr */,
- { 1, 21, 3751, 2, 17, UNI_INKHITANSMALLSCRIPT } /* inkhitansmallscript */,
- { 0, 4116, 415, 3, 31, UNI_INIDC } /* isideographicdescriptioncharacters */,
- { 3, 10024, 10180, 3, 2, UNI_ZS } /* gc=zs */,
- { 1, 10033, 340, 3, 2, UNI_LB__OP } /* lb=op */,
- { 5, 9488, 749, 4, 30, UNI_ENCLOSEDALPHANUMSUP } /* blk=enclosedalphanumericsupplement */,
- { 14, 184, 1184, 2, 3, UNI_DEP } /* isdep */,
- { 2, 6231, 2667, 4, 17, UNI_COUNTINGROD } /* incountingrodnumerals */,
- { 0, 8780, 8526, 6, 7, UNI_NB } /* block=noblock */,
- { 79, 7438, 7612, 10, 6, UNI_WB__MN } /* wordbreak=midnum */,
- { 136, 5986, 7955, 13, 8, UNI_NV__1_SLASH_20 } /* numericvalue=5.00e-02 */,
- { 5, 184, 2161, 2, 20, UNI_EXTPICT } /* isextendedpictographic */,
- { 3, 2280, 1759, 4, 2, UNI_OLCK } /* isolck */,
- { 0, 184, 1115, 3, 24, UNI_CWKCF } /* ischangeswhennfkccasefolded */,
- { 2, 9071, 9255, 4, 5, -UNI_XPOSIXXDIGIT } /* hex=false */,
- { 0, 184, 1044, 2, 6, UNI_L } /* isletter */,
- { 0, 9768, 3785, 4, 10, UNI_MANI } /* scx=manichaean */,
- { 4, 3836, 6484, 17, 4, UNI_HUNG } /* scriptextensions=hung */,
- { 0, 9488, 979, 4, 27, UNI_ALPHABETICPF } /* blk=alphabeticpresentationforms */,
- { 4, 5791, 9884, 13, 4, UNI_JG__ZAIN } /* joininggroup=zain */,
- { 31, 8780, 7239, 6, 2, UNI_INVS } /* block=vs */,
- { 72, 9997, 4493, 3, 15, UNI_BC__CS } /* bc=commonseparator */,
- { 2, 1768, 9836, 22, 4, UNI_CWCF } /* changeswhencasefolded=true */,
- { 0, 7318, 0, 10, 0, UNI_in_values_index } /* presentin= */,
- { 13, 10024, 4017, 3, 16, UNI_PF } /* gc=finalpunctuation */,
- { 2, 10048, 9360, 3, 4, UNI_NV___MINUS_1_SLASH_2 } /* nv=-1/2 */,
- { 0, 4241, 0, 16, 0, UNI_MISCMATHSYMBOLSA } /* miscmathsymbolsa */,
- { 0, 10048, 8726, 3, 6, UNI_NV__432000 } /* nv=432000 */,
- { 0, 3836, 9688, 17, 3, UNI_NKO } /* scriptextensions=nko */,
- { 1, 8780, 6122, 7, 11, UNI_CYRILLICEXTC } /* block=cyrillicextc */,
- { 4, 8780, 2061, 6, 15, UNI_MODIFIERLETTERS } /* block=modifierletters */,
- { 0, 8780, 8123, 6, 8, UNI_INBUGINESE } /* block=buginese */,
- { 3, 8780, 3667, 7, 16, UNI_CYRILLICEXTC } /* block=cyrillicextendedc */,
- { 137, 414, 0, 32, 0, UNI_INIDC } /* ideographicdescriptioncharacters */,
- { 290, 9488, 7288, 4, 10, UNI_INOLDSOGDIAN } /* blk=oldsogdian */,
- { 0, 9786, 8598, 4, 5, UNI_SC__SHRD } /* insharada */,
- { 0, 9768, 8463, 4, 7, UNI_KALI } /* scx=kayahli */,
- { 0, 1188, 4402, 3, 8, UNI_TANGUTSUP } /* intangutsup */,
- { 0, 184, 867, 2, 11, UNI_PHONETICEXT } /* isphoneticext */,
- { 4, 10296, 7207, 3, 3, UNI_PHLI } /* isphli */,
- { 11, 9508, 9928, 4, 3, UNI_CCC__BR } /* ccc=222 */,
- { 8, 3367, 0, 17, 0, UNI__PERL_PATWS } /* patternwhitespace */,
- { 1, 5986, 7859, 13, 8, UNI_NV__20000000 } /* numericvalue=20000000 */,
- { 0, 728, 0, 6, 0, UNI_N } /* number */,
- { 1, 10048, 7779, 3, 8, UNI_NV__1_SLASH_7 } /* nv=1.43e-01 */,
- { 1, 1166, 1, 26, 1, -UNI_DI } /* defaultignorablecodepoint=n */,
- { 9, 9752, 0, 4, 0, UNI_ROHG } /* rohg */,
- { 0, 1966, 3615, 22, 17, UNI_INSC__CONSONANTPREFIXED } /* indicsyllabiccategory=consonantprefixed */,
- { 6, 8780, 7388, 6, 10, UNI_SUPARROWSB } /* block=suparrowsb */,
- { 2, 1966, 2369, 22, 20, UNI_INSC__CONSONANTPLACEHOLDER } /* indicsyllabiccategory=consonantplaceholder */,
- { 0, 5986, 7859, 13, 4, UNI_NV__2000 } /* numericvalue=2000 */,
- { 4, 4129, 0, 6, 0, UNI_LATIN1 } /* latin1 */,
- { 4, 10033, 3, 4, 1, UNI_LB__LF } /* lb=lf */,
- { 5, 9275, 3953, 5, 16, UNI_INSC__CANTILLATIONMARK } /* insc=cantillationmark */,
- { 36, 4033, 206, 16, 2, UNI_PI } /* generalcategory=pi */,
- { 7, 9572, 0, 4, 0, UNI_GUJR } /* gujr */,
- { 1, 6961, 0, 11, 0, UNI_SUPERANDSUB } /* superandsub */,
- { 5, 9488, 509, 4, 20, UNI_CJK } /* blk=cjkunifiedideographs */,
- { 0, 1294, 0, 25, 0, UNI_SUPERANDSUB } /* superscriptsandsubscripts */,
- { 76, 9277, 8659, 3, 7, UNI_TIBT } /* sc=tibetan */,
- { 1, 7249, 6600, 4, 9, UNI_CASEDLETTER } /* iscasedletter */,
- { 0, 4033, 3985, 16, 16, UNI_PE } /* generalcategory=closepunctuation */,
- { 0, 9270, 3475, 5, 10, UNI_INPC__TOPANDLEFT } /* inpc=topandleft */,
- { 1, 3836, 8115, 17, 4, UNI_BASS } /* scriptextensions=bass */,
- { 2, 8780, 7027, 6, 11, UNI_YISYLLABLES } /* block=yisyllables */,
- { 1, 9351, 9836, 4, 4, UNI_IDS } /* ids=true */,
- { 0, 8379, 0, 7, 0, UNI_CJKEXTE } /* cjkexte */,
- { 0, 8780, 4129, 6, 16, UNI_LATIN1 } /* block=latin1supplement */,
- { 43, 9277, 9876, 3, 4, UNI_XSUX } /* sc=xsux */,
- { 0, 10030, 7, 3, 1, UNI_JT__C } /* jt=c */,
- { 0, 5986, 7874, 13, 2, UNI_NV__23 } /* numericvalue=23 */,
- { 0, 9488, 6620, 4, 6, UNI_DOMINO } /* blk=domino */,
- { 8, 9508, 8568, 4, 7, UNI_CCC__1 } /* ccc=overlay */,
- { 3, 184, 7388, 2, 10, UNI_SUPARROWSB } /* issuparrowsb */,
- { 0, 3836, 8597, 18, 6, UNI_SHRD } /* scriptextensions=sharada */,
- { 39, 9488, 3751, 4, 17, UNI_INKHITANSMALLSCRIPT } /* blk=khitansmallscript */,
- { 0, 9488, 7576, 4, 9, UNI_LATINEXTB } /* blk=latinextb */,
- { 31, 8589, 7694, 8, 8, UNI_SAMR } /* script=samaritan */,
- { 82, 9997, 2449, 3, 20, UNI_BC__LRE } /* bc=lefttorightembedding */,
- { 1, 9768, 1677, 4, 5, UNI_LATN } /* scx=latin */,
- { 32, 1537, 4615, 4, 13, UNI_DIACRITICALSSUP } /* indiacriticalssup */,
- { 0, 4116, 2225, 3, 20, UNI_PRTI } /* isinscriptionalparthian */,
- { 2, 5037, 0, 9, 0, UNI_hex_values_index } /* hexdigit= */,
- { 0, 1966, 9300, 22, 5, UNI_INSC__NUKTA } /* indicsyllabiccategory=nukta */,
- { 1, 6710, 3601, 5, 14, UNI_INCAUCASIANALBANIAN } /* incaucasianalbanian */,
- { 26, 7155, 5585, 3, 3, UNI_HEBR } /* ishebr */,
- { 0, 7325, 9967, 3, 3, UNI_IN__5_DOT_1 } /* in=5.1 */,
- { 65, 1746, 0, 23, 0, UNI_BPT__C } /* bidipairedbrackettype=c */,
- { 0, 10003, 1025, 3, 2, -UNI_CI } /* ci=no */,
- { 74, 4033, 598, 16, 2, UNI_XPOSIXCNTRL } /* generalcategory=cc */,
- { 0, 184, 9085, 2, 5, UNI_BATK } /* isbatak */,
- { 1, 9488, 4613, 4, 15, UNI_DIACRITICALSSUP } /* blk=diacriticalssup */,
- { 0, 9488, 2140, 4, 8, UNI_INCYRILLIC } /* blk=cyrillic */,
- { 1, 3379, 9255, 6, 5, -UNI_XPOSIXSPACE } /* space=false */,
- { 1, 3836, 6481, 17, 12, UNI_HUNG } /* scriptextensions=oldhungarian */,
- { 2, 8780, 1192, 6, 26, UNI_HALFANDFULLFORMS } /* block=halfwidthandfullwidthforms */,
- { 0, 1189, 5040, 3, 5, UNI_NT__DI } /* nt=digit */,
- { 55, 3836, 3079, 17, 6, UNI_COPT } /* scriptextensions=coptic */,
- { 16, 184, 5438, 2, 14, UNI_SK } /* ismodifiersymbol */,
- { 0, 10183, 3379, 4, 5, UNI_POSIXSPACE } /* perlspace */,
- { 2, 5986, 9413, 13, 3, UNI_NV__7_SLASH_2 } /* numericvalue=7/2 */,
- { 3, 3133, 10135, 18, 3, UNI_EBASE } /* emojimodifierbase=yes */,
- { 2, 10027, 7038, 3, 10, UNI_JG__AFRICANFEH } /* jg=africanfeh */,
- { 1, 8858, 1, 6, 1, -UNI_ECOMP } /* ecomp=n */,
- { 0, 9488, 1673, 4, 4, UNI_JAMO } /* blk=jamo */,
- { 0, 5578, 125, 14, 2, UNI_LB__CR } /* sentencebreak=cr */,
- { 3, 3382, 9836, 3, 4, UNI_CE } /* ce=true */,
- { 0, 3836, 9668, 17, 4, UNI_MTEI } /* scriptextensions=mtei */,
- { 2, 8978, 0, 6, 0, UNI_patws_values_index } /* patws= */,
- { 0, 9768, 7675, 4, 4, UNI_PALM } /* scx=palm */,
- { 3, 3836, 6193, 17, 4, UNI_HEBR } /* scriptextensions=hebr */,
- { 1, 3904, 9836, 17, 4, UNI_UIDEO } /* unifiedideograph=true */,
- { 13, 1552, 1563, 9, 2, UNI_PS } /* category=ps */,
- { 0, 184, 349, 2, 33, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* issupplementalsymbolsandpictographs */,
- { 68, 1087, 1025, 27, 2, -UNI_PCM } /* prependedconcatenationmark=no */,
- { 73, 9277, 8131, 3, 4, UNI_SC__DUPL } /* sc=dupl */,
- { 0, 9488, 2140, 4, 11, UNI_CYRILLICSUP } /* blk=cyrillicsup */,
- { 8, 10340, 4975, 4, 6, UNI_VEDICEXT } /* isvedicext */,
- { 64, 9488, 8876, 4, 6, UNI_INGOTHIC } /* blk=gothic */,
- { 1, 8589, 7188, 7, 10, UNI_KHAR } /* script=kharoshthi */,
- { 2, 1417, 8708, 24, 3, UNI_CCC__216 } /* canonicalcombiningclass=216 */,
- { 11, 1591, 8415, 3, 6, UNI_INELBASAN } /* inelbasan */,
- { 142, 8780, 5256, 6, 14, UNI_LATINEXTD } /* block=latinextendedd */,
- { 138, 9768, 1115, 4, 4, UNI_HANG } /* scx=hang */,
- { 33, 4688, 7550, 16, 8, UNI_IDENTIFIERTYPE__INCLUSION } /* identifiertype=inclusion */,
- { 48, 8589, 9684, 7, 4, UNI_NEWA } /* script=newa */,
- { 58, 9768, 9476, 4, 4, UNI_AVST } /* scx=avst */,
- { 158, 5508, 26, 14, 1, UNI_PATSYN } /* patternsyntax=y */,
- { 0, 5986, 9964, 13, 3, UNI_NV__4_SLASH_5 } /* numericvalue=4/5 */,
- { 0, 9900, 0, 4, 0, UNI_ZZZZ } /* zzzz */,
- { 24, 10048, 7907, 3, 8, UNI_NV__3_SLASH_8 } /* nv=3.75e-01 */,
- { 3, 9488, 4273, 4, 16, UNI_MYANMAREXTA } /* blk=myanmarextendeda */,
- { 0, 9768, 9624, 4, 4, UNI_LAO } /* scx=laoo */,
- { 1, 5739, 10135, 13, 3, UNI_GRBASE } /* graphemebase=yes */,
- { 0, 10048, 5648, 3, 3, UNI_NV__100 } /* nv=100 */,
- { 5, 8852, 36, 6, 1, UNI_CWKCF } /* cwkcf=t */,
- { 9, 184, 8107, 2, 8, UNI_BALI } /* isbalinese */,
- { 2, 10048, 9964, 3, 3, UNI_NV__4_SLASH_5 } /* nv=4/5 */,
- { 1, 9508, 9925, 4, 3, UNI_CCC__BL } /* ccc=218 */,
- { 0, 9768, 4703, 4, 15, UNI_ARMI } /* scx=imperialaramaic */,
- { 0, 9488, 5200, 4, 14, UNI_KANASUP } /* blk=kanasupplement */,
- { 20, 5986, 9984, 13, 2, UNI_NV__37 } /* numericvalue=37 */,
- { 1, 21, 8227, 2, 8, UNI_KANAEXTA } /* inkanaexta */,
- { 2, 8131, 0, 4, 0, UNI_DUPL } /* dupl */,
- { 3, 9768, 9688, 4, 4, UNI_NKO } /* scx=nkoo */,
- { 0, 3836, 9892, 17, 4, UNI_QAAI } /* scriptextensions=zinh */,
- { 6, 7218, 7448, 10, 10, UNI_LB__WJ } /* linebreak=wordjoiner */,
- { 2, 9488, 2245, 4, 11, UNI_INMEETEIMAYEK } /* blk=meeteimayek */,
- { 5, 9768, 8840, 4, 6, UNI_CAKM } /* scx=chakma */,
- { 37, 9488, 478, 4, 31, UNI_MATHALPHANUM } /* blk=mathematicalalphanumericsymbols */,
- { 1, 5791, 5340, 13, 14, UNI_JG__MANICHAEANFIVE } /* joininggroup=manichaeanfive */,
- { 1, 10048, 9405, 3, 3, UNI_NV__3_SLASH_2 } /* nv=3/2 */,
- { 1, 184, 7129, 3, 9, UNI_CJKSTROKES } /* iscjkstrokes */,
- { 0, 3836, 2429, 17, 20, UNI_PHLI } /* scriptextensions=inscriptionalpahlavi */,
- { 1, 9488, 2409, 4, 10, UNI_INGLAGOLITIC } /* blk=glagolitic */,
- { 1, 9556, 6170, 5, 11, UNI_WB__EB } /* gcb=glueafterzwj */,
- { 0, 9997, 37, 3, 2, UNI_BC__EN } /* bc=en */,
- { 33, 9768, 2469, 4, 20, UNI_HMNP } /* scx=nyiakengpuachuehmong */,
- { 0, 184, 5817, 2, 13, UNI_ZL } /* islineseparator */,
- { 13, 3904, 26, 17, 1, UNI_UIDEO } /* unifiedideograph=y */,
- { 0, 9768, 2485, 4, 4, UNI_MONG } /* scx=mong */,
- { 0, 5116, 0, 14, 0, UNI_emod_values_index } /* emojimodifier= */,
- { 0, 10288, 1823, 8, 5, UNI_XPOSIXLOWER } /* isxposixlower */,
- { 7, 9768, 7278, 4, 10, UNI_XPEO } /* scx=oldpersian */,
- { 0, 9262, 495, 3, 2, UNI_SB__NU } /* sb=nu */,
- { 2, 9508, 7477, 4, 9, UNI_CCC__AL } /* ccc=aboveleft */,
- { 1, 8449, 9836, 7, 4, UNI_HYPHEN } /* hyphen=true */,
- { 2, 3836, 9568, 17, 4, UNI_GREK } /* scriptextensions=grek */,
- { 84, 10048, 8720, 3, 6, UNI_NV__400000 } /* nv=400000 */,
- { 1, 1552, 7408, 9, 10, UNI_CN } /* category=unassigned */,
- { 0, 7418, 0, 10, 0, UNI_upper_values_index } /* uppercase= */,
- { 1, 4033, 10176, 16, 2, UNI_ZL } /* generalcategory=zl */,
- { 2, 4793, 0, 15, 0, UNI_MERC } /* meroiticcursive */,
- { 0, 8589, 6484, 7, 4, UNI_HUNG } /* script=hung */,
- { 0, 184, 8942, 2, 6, UNI_LYDI } /* islydian */,
- { 0, 3367, 3, 18, 1, -UNI__PERL_PATWS } /* patternwhitespace=f */,
- { 48, 5791, 9744, 13, 4, UNI_JG__QAPH } /* joininggroup=qaph */,
- { 90, 4916, 8660, 3, 6, UNI_TIBT } /* istibetan */,
- { 1, 3097, 8163, 18, 8, UNI_DT__FRA } /* decompositiontype=fraction */,
- { 2, 2784, 3923, 4, 7, UNI_ARABICSUP } /* inarabicsup */,
- { 3, 184, 3796, 3, 3, UNI_CHAM } /* ischam */,
- { 0, 4116, 1907, 3, 15, UNI_INDICNUMBERFORMS } /* isindicnumberforms */,
- { 1, 3836, 2203, 17, 14, UNI_ROHG } /* scriptextensions=hanifirohingya */,
- { 1, 1966, 4353, 22, 16, UNI_INSC__SYLLABLEMODIFIER } /* indicsyllabiccategory=syllablemodifier */,
- { 1, 1417, 9931, 24, 3, UNI_CCC__L } /* canonicalcombiningclass=224 */,
- { 1, 9488, 7099, 5, 9, UNI_BOXDRAWING } /* blk=boxdrawing */,
- { 0, 8589, 8428, 7, 7, UNI_SC__GRAN } /* script=grantha */,
- { 1, 9768, 8912, 4, 6, UNI_KHOJ } /* scx=khojki */,
- { 5, 9488, 9065, 4, 5, UNI_INADLAM } /* blk=adlam */,
- { 0, 184, 5960, 2, 13, UNI_MISCTECHNICAL } /* ismisctechnical */,
- { 66, 7325, 7408, 3, 10, UNI_AGE__NA } /* in=unassigned */,
- { 0, 9556, 911, 4, 1, UNI_GCB__V } /* gcb=v */,
- { 0, 9275, 4305, 5, 5, UNI_INSC__OTHER } /* insc=other */,
- { 1, 9600, 0, 4, 0, UNI_KALI } /* kali */,
- { 0, 8852, 9255, 6, 5, -UNI_CWKCF } /* cwkcf=false */,
- { 10, 10296, 9225, 7, 5, UNI_POSIXCNTRL } /* isposixcntrl */,
- { 1, 7318, 9401, 10, 3, UNI_IN__3 } /* presentin=3.0 */,
- { 28, 8267, 10135, 8, 3, UNI_RADICAL } /* radical=yes */,
- { 0, 9768, 7513, 4, 9, UNI_BHKS } /* scx=bhaiksuki */,
- { 0, 5039, 0, 6, 0, UNI_XPOSIXXDIGIT } /* xdigit */,
- { 0, 9488, 5284, 4, 4, UNI_INLISU } /* blk=lisu */,
- { 1, 5986, 8708, 13, 6, UNI_NV__216000 } /* numericvalue=216000 */,
- { 3, 8780, 4928, 6, 8, UNI_TAMILSUP } /* block=tamilsup */,
- { 16, 8780, 9335, 6, 5, UNI_INTAKRI } /* block=takri */,
- { 0, 9346, 1, 4, 1, -UNI_IDC } /* idc=n */,
- { 0, 2032, 3, 22, 1, -UNI__PERL_NCHAR } /* noncharactercodepoint=f */,
- { 1, 6928, 0, 10, 0, UNI_SD } /* softdotted */,
- { 0, 3893, 0, 11, 0, UNI_SGNW } /* signwriting */,
- { 3, 8780, 4065, 6, 16, UNI_HALFANDFULLFORMS } /* block=halfandfullforms */,
- { 0, 9440, 0, 4, 0, UNI_ADLM } /* adlm */,
- { 1, 9262, 33, 3, 2, UNI_SB__SE } /* sb=se */,
- { 0, 4628, 66, 15, 1, UNI_EA__H } /* eastasianwidth=h */,
- { 66, 1988, 26, 22, 1, UNI_LOE } /* logicalorderexception=y */,
- { 0, 8780, 7398, 6, 10, UNI_SUPARROWSC } /* block=suparrowsc */,
- { 20, 7028, 2309, 3, 20, UNI_YIJING } /* isyijinghexagramsymbols */,
- { 3, 184, 7398, 2, 10, UNI_SUPARROWSC } /* issuparrowsc */,
- { 0, 9768, 8618, 5, 3, UNI_SOYO } /* scx=soyo */,
- { 9, 8780, 908, 6, 10, UNI_PUA } /* block=privateuse */,
- { 0, 1790, 1, 22, 1, -UNI_CWCM } /* changeswhencasemapped=n */,
- { 34, 8589, 9600, 7, 4, UNI_SC__KALI } /* script=kali */,
- { 16, 8372, 0, 7, 0, UNI_CJKEXTD } /* cjkextd */,
- { 0, 1188, 4402, 3, 15, UNI_TANGUTSUP } /* intangutsupplement */,
- { 69, 9275, 5144, 5, 14, UNI_INSC__GEMINATIONMARK } /* insc=geminationmark */,
- { 6, 8780, 3169, 6, 11, UNI_ETHIOPICSUP } /* block=ethiopicsup */,
- { 7, 9488, 414, 4, 32, UNI_INIDC } /* blk=ideographicdescriptioncharacters */,
- { 1, 8589, 9320, 7, 5, UNI_OSGE } /* script=osage */,
- { 0, 9768, 8561, 4, 7, UNI_OSMA } /* scx=osmanya */,
- { 33, 8780, 5522, 6, 14, UNI_PHONETICEXTSUP } /* block=phoneticextsup */,
- { 4, 10006, 1, 3, 1, -UNI_DI } /* di=n */,
- { 72, 184, 2061, 2, 15, UNI_MODIFIERLETTERS } /* ismodifierletters */,
- { 0, 9508, 1756, 4, 2, UNI_CCC__BR } /* ccc=br */,
- { 0, 5986, 7858, 13, 2, UNI_NV__22 } /* numericvalue=22 */,
- { 1, 9540, 10135, 4, 3, UNI_DIA } /* dia=yes */,
- { 35, 6205, 26, 12, 1, UNI_IDEO } /* ideographic=y */,
- { 4, 4146, 1947, 5, 19, UNI_EARLYDYNASTICCUNEIFORM } /* inearlydynasticcuneiform */,
- { 1, 6231, 600, 3, 29, UNI_CJKEXTD } /* incjkunifiedideographsextensiond */,
- { 1, 5674, 36, 13, 1, UNI_BIDIM } /* bidimirrored=t */,
- { 5, 3836, 8115, 17, 8, UNI_BASS } /* scriptextensions=bassavah */,
- { 0, 9508, 8082, 4, 2, UNI_CCC__19 } /* ccc=19 */,
- { 3, 7325, 7469, 3, 3, UNI_IN__5 } /* in=5.0 */,
- { 2, 7438, 8505, 10, 7, UNI_WB__NL } /* wordbreak=newline */,
- { 1, 7218, 125, 10, 2, UNI_LB__CR } /* linebreak=cr */,
- { 7, 9444, 7755, 4, 3, UNI_IN__1_DOT_1 } /* age=1.1 */,
- { 78, 9488, 2836, 4, 19, UNI_MODIFIERTONELETTERS } /* blk=modifiertoneletters */,
- { 1, 9488, 4289, 4, 16, UNI_MYANMAREXTB } /* blk=myanmarextendedb */,
- { 2, 10296, 5040, 7, 5, UNI_POSIXDIGIT } /* isposixdigit */,
- { 1, 5791, 9281, 14, 4, UNI_JG__KHAPH } /* joininggroup=khaph */,
- { 0, 7325, 9856, 3, 4, UNI_IN__13 } /* in=v130 */,
- { 2, 3853, 1025, 17, 2, -UNI_STERM } /* sentenceterminal=no */,
- { 0, 10024, 4958, 3, 15, UNI_UPPERCASELETTER } /* gc=uppercaseletter */,
- { 0, 184, 8131, 2, 8, UNI_DUPL } /* isduployan */,
- { 2, 21, 3768, 2, 17, UNI_LETTERLIKESYMBOLS } /* inletterlikesymbols */,
- { 7, 7325, 10084, 3, 3, UNI_IN__3_DOT_1 } /* in=v31 */,
- { 0, 7155, 5219, 3, 3, UNI_HIRA } /* ishira */,
- { 2, 9508, 184, 4, 2, UNI_CCC__IS } /* ccc=is */,
- { 197, 1417, 8801, 24, 3, UNI_CCC__107 } /* canonicalcombiningclass=107 */,
- { 68, 9768, 7288, 4, 10, UNI_SOGO } /* scx=oldsogdian */,
- { 3, 184, 74, 2, 2, UNI_ME } /* isme */,
- { 1, 9997, 10018, 3, 3, UNI_BC__FSI } /* bc=fsi */,
- { 40, 9350, 1, 5, 1, -UNI_XIDS } /* xids=n */,
- { 10, 7325, 7826, 3, 4, UNI_IN__12 } /* in=12.0 */,
- { 1, 9488, 3295, 4, 9, UNI_LATINEXTA } /* blk=latinexta */,
- { 124, 5986, 8720, 13, 4, UNI_NV__4000 } /* numericvalue=4000 */,
- { 0, 5791, 6301, 13, 12, UNI_JG__MALAYALAMLLA } /* joininggroup=malayalamlla */,
- { 4, 1631, 0, 15, 0, UNI_GEOMETRICSHAPES } /* geometricshapes */,
- { 34, 1087, 0, 26, 0, UNI_PCM } /* prependedconcatenationmark */,
- { 1, 1746, 5904, 22, 4, UNI_BPT__N } /* bidipairedbrackettype=none */,
- { 1, 2161, 9255, 21, 5, -UNI_EXTPICT } /* extendedpictographic=false */,
- { 18, 8589, 8107, 7, 4, UNI_BALI } /* script=bali */,
- { 0, 8673, 0, 7, 0, UNI_UCASEXT } /* ucasext */,
- { 35, 1417, 1179, 24, 2, UNI_CCC__BL } /* canonicalcombiningclass=bl */,
- { 0, 8780, 5242, 6, 14, UNI_LATINEXTC } /* block=latinextendedc */,
- { 1, 184, 8366, 3, 6, UNI_CJKEXTC } /* iscjkextc */,
- { 0, 9305, 0, 5, 0, UNI_NSHU } /* nushu */,
- { 6, 9488, 2061, 4, 4, UNI_INMODI } /* blk=modi */,
- { 0, 2061, 0, 15, 0, UNI_MODIFIERLETTERS } /* modifierletters */,
- { 149, 8780, 8107, 6, 8, UNI_INBALINESE } /* block=balinese */,
- { 3, 4628, 8948, 15, 6, UNI_EA__NA } /* eastasianwidth=narrow */,
- { 0, 7318, 7867, 10, 3, UNI_IN__3_DOT_1 } /* presentin=3.1 */,
- { 128, 10024, 206, 3, 2, UNI_PI } /* gc=pi */,
- { 40, 7155, 2507, 3, 3, UNI_HATR } /* ishatr */,
- { 0, 10310, 8668, 4, 5, UNI_INTIRHUTA } /* intirhuta */,
- { 10, 9488, 1677, 4, 14, UNI_LATINEXTA } /* blk=latinextendeda */,
- { 8, 4568, 0, 15, 0, UNI_CURRENCYSYMBOLS } /* currencysymbols */,
- { 16, 9768, 8123, 4, 8, UNI_BUGI } /* scx=buginese */,
- { 0, 8780, 8407, 6, 7, UNI_DSRT } /* block=deseret */,
- { 100, 21, 4161, 2, 16, UNI_LINEARBSYLLABARY } /* inlinearbsyllabary */,
- { 23, 184, 4337, 2, 16, UNI_SUPMATHOPERATORS } /* issupmathoperators */,
- { 2, 8780, 183, 6, 34, UNI_MISCPICTOGRAPHS } /* block=miscellaneoussymbolsandpictographs */,
- { 0, 9556, 4360, 4, 9, UNI_WB__EB } /* gcb=emodifier */,
- { 0, 8589, 9808, 7, 4, UNI_TALU } /* script=talu */,
- { 3, 9488, 1218, 4, 26, UNI_KATAKANAEXT } /* blk=katakanaphoneticextensions */,
- { 0, 9596, 6763, 4, 3, UNI_LB__H3 } /* hst=lvt */,
- { 0, 9596, 0, 4, 0, UNI_hst_values_index } /* hst= */,
- { 0, 8171, 0, 8, 0, UNI_GUJR } /* gujarati */,
- { 34, 9277, 8617, 3, 4, UNI_SOYO } /* sc=soyo */,
- { 1, 3259, 36, 18, 1, UNI_IDSB } /* idsbinaryoperator=t */,
- { 2, 8575, 9255, 7, 5, -UNI_PATSYN } /* patsyn=false */,
- { 0, 10048, 7915, 3, 8, UNI_NV__3_SLASH_80 } /* nv=3.75e-02 */,
- { 104, 5778, 0, 6, 0, UNI_IPAEXT } /* ipaext */,
- { 0, 3367, 1025, 18, 2, -UNI__PERL_PATWS } /* patternwhitespace=no */,
- { 201, 9488, 4273, 4, 7, UNI_INMYANMAR } /* blk=myanmar */,
- { 1, 349, 0, 33, 0, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* supplementalsymbolsandpictographs */,
- { 251, 10126, 409, 3, 2, UNI_VO__TR } /* vo=tr */,
- { 2, 2161, 36, 21, 1, UNI_EXTPICT } /* extendedpictographic=t */,
- { 1, 9508, 9146, 5, 4, UNI_CCC__23 } /* ccc=ccc23 */,
- { 0, 6420, 125, 3, 2, UNI_OCR } /* inocr */,
- { 16, 8589, 0, 14, 0, UNI_SC__SHRD } /* script=sharada */,
- { 2, 8694, 26, 7, 1, UNI_XPOSIXSPACE } /* wspace=y */,
- { 195, 1417, 8042, 24, 2, UNI_CCC__18 } /* canonicalcombiningclass=18 */,
- { 1, 7318, 10123, 10, 3, UNI_IN__9 } /* presentin=v90 */,
- { 0, 8954, 36, 6, 1, UNI__PERL_NCHAR } /* nchar=t */,
- { 5, 4628, 7486, 15, 9, UNI_EA__A } /* eastasianwidth=ambiguous */,
- { 4, 184, 3241, 2, 11, UNI_GEORGIANSUP } /* isgeorgiansup */,
- { 0, 2224, 3440, 3, 11, UNI_SMALLKANAEXT } /* insmallkanaext */,
- { 1, 7318, 9400, 10, 4, UNI_IN__13 } /* presentin=13.0 */,
- { 0, 8589, 2203, 7, 14, UNI_SC__ROHG } /* script=hanifirohingya */,
- { 0, 1552, 1910, 9, 2, UNI_CN } /* category=cn */,
- { 2, 184, 4554, 3, 14, UNI_CONTROLPICTURES } /* iscontrolpictures */,
- { 3, 10027, 6289, 3, 12, UNI_JG__MALAYALAMBHA } /* jg=malayalambha */,
- { 2, 4116, 7740, 3, 6, UNI_IDS } /* isidstart */,
- { 6, 9768, 2288, 5, 6, UNI_SINH } /* scx=sinhala */,
- { 16, 6241, 18, 12, 1, UNI_JT__R } /* joiningtype=r */,
- { 6, 7318, 7827, 10, 3, UNI_IN__2 } /* presentin=2.0 */,
- { 0, 10132, 4305, 3, 5, UNI_WB__XX } /* wb=other */,
- { 4, 10048, 9961, 3, 3, UNI_NV__3_SLASH_5 } /* nv=3/5 */,
- { 13, 9556, 5008, 5, 2, UNI_WB__EB } /* gcb=gaz */,
- { 0, 9768, 3079, 4, 6, UNI_COPT } /* scx=coptic */,
- { 0, 9768, 9612, 4, 4, UNI_KNDA } /* scx=knda */,
- { 0, 9235, 9836, 5, 4, UNI_CWCM } /* cwcm=true */,
- { 0, 8780, 5003, 6, 15, UNI_INZANABAZARSQUARE } /* block=zanabazarsquare */,
- { 8, 5674, 0, 5, 0, UNI_BIDIM } /* bidim */,
- { 7, 2161, 0, 21, 0, UNI_extpict_values_index } /* extendedpictographic= */,
- { 1, 9768, 9624, 4, 3, UNI_LAO } /* scx=lao */,
- { 0, 8780, 2409, 6, 10, UNI_INGLAGOLITIC } /* block=glagolitic */,
- { 0, 3836, 8936, 17, 4, UNI_LYCI } /* scriptextensions=lyci */,
- { 5, 4791, 4274, 3, 6, UNI_INMYANMAR } /* inmyanmar */,
- { 83, 8589, 8680, 7, 7, UNI_ZZZZ } /* script=unknown */,
- { 1, 9277, 2278, 4, 3, UNI_SC__KALI } /* sc=kali */,
- { 3, 9488, 8477, 4, 7, UNI_INMAKASAR } /* blk=makasar */,
- { 32, 4568, 0, 14, 0, UNI_SC } /* currencysymbol */,
- { 0, 184, 7693, 2, 9, UNI_SAMR } /* issamaritan */,
- { 2, 5986, 5648, 13, 9, UNI_NV__100000000 } /* numericvalue=100000000 */,
- { 0, 184, 3026, 3, 10, UNI_CHEROKEESUP } /* ischerokeesup */,
- { 3, 5718, 0, 5, 0, UNI_XPOSIXALNUM } /* alnum */,
- { 32, 8780, 414, 6, 32, UNI_INIDC } /* block=ideographicdescriptioncharacters */,
- { 0, 9488, 6085, 4, 12, UNI_CHESSSYMBOLS } /* blk=chesssymbols */,
- { 193, 8780, 2409, 6, 13, UNI_GLAGOLITICSUP } /* block=glagoliticsup */,
- { 2, 8589, 6840, 7, 11, UNI_SC__NAND } /* script=nandinagari */,
- { 4, 9277, 8498, 3, 7, UNI_SC__MULT } /* sc=multani */,
- { 1, 7155, 2723, 3, 18, UNI_JAMOEXTA } /* ishanguljamoextendeda */,
- { 11, 184, 250, 2, 33, UNI_MISCMATHSYMBOLSA } /* ismiscellaneousmathematicalsymbolsa */,
- { 0, 9488, 7675, 4, 9, UNI_PALM } /* blk=palmyrene */,
- { 9, 9262, 7702, 3, 9, UNI_SB__SC } /* sb=scontinue */,
- { 1, 10132, 6178, 3, 3, UNI_LB__ZWJ } /* wb=zwj */,
- { 4, 8589, 4370, 8, 5, UNI_SC__SYRC } /* script=syriac */,
- { 33, 9768, 8611, 5, 3, UNI_SIDD } /* scx=sidd */,
- { 11, 5986, 7939, 13, 8, UNI_NV__9_SLASH_2 } /* numericvalue=4.50e+00 */,
- { 0, 7158, 36, 10, 1, UNI_DIA } /* diacritic=t */,
- { 1, 1552, 1, 9, 1, UNI_N } /* category=n */,
- { 83, 3836, 8618, 18, 6, UNI_SOYO } /* scriptextensions=soyombo */,
- { 3, 184, 5200, 2, 7, UNI_KANASUP } /* iskanasup */,
- { 5, 9277, 9283, 3, 4, UNI_PHLI } /* sc=phli */,
- { 96, 9275, 0, 5, 0, UNI_insc_values_index } /* insc= */,
- { 0, 8428, 0, 4, 0, UNI_GRAN } /* gran */,
- { 0, 9346, 9836, 4, 4, UNI_IDC } /* idc=true */,
- { 2, 3836, 9624, 17, 3, UNI_LAO } /* scriptextensions=lao */,
- { 0, 21, 1218, 2, 26, UNI_KATAKANAEXT } /* inkatakanaphoneticextensions */,
- { 17, 2161, 1025, 21, 2, -UNI_EXTPICT } /* extendedpictographic=no */,
- { 0, 8780, 1218, 6, 26, UNI_KATAKANAEXT } /* block=katakanaphoneticextensions */,
- { 12, 9768, 2913, 5, 3, UNI_SUND } /* scx=sund */,
- { 0, 184, 1269, 2, 24, UNI_COMPEX } /* isfullcompositionexclusion */,
- { 1, 10048, 7827, 3, 8, UNI_NV__1_SLASH_5 } /* nv=2.00e-01 */,
- { 3, 9488, 6277, 4, 12, UNI_MAHJONG } /* blk=mahjongtiles */,
- { 352, 9262, 495, 3, 7, UNI_SB__NU } /* sb=numeric */,
- { 1, 10296, 9725, 3, 3, UNI_PHNX } /* isphnx */,
- { 2, 8780, 7495, 6, 9, UNI_ARABICPFA } /* block=arabicpfa */,
- { 0, 6805, 0, 13, 0, UNI_MISCSYMBOLS } /* inmiscsymbols */,
- { 0, 9716, 0, 3, 0, UNI_PCM } /* pcm */,
- { 258, 9277, 3598, 3, 17, UNI_AGHB } /* sc=caucasianalbanian */,
- { 4, 8768, 26, 6, 1, UNI_BIDIC } /* bidic=y */,
- { 2, 8780, 9095, 6, 5, UNI_INBUHID } /* block=buhid */,
- { 1, 8393, 0, 7, 0, UNI_CJKEXTG } /* cjkextg */,
- { 3, 117, 415, 3, 31, UNI_INIDC } /* inideographicdescriptioncharacters */,
- { 0, 1417, 6631, 24, 11, UNI_CCC__DA } /* canonicalcombiningclass=doubleabove */,
- { 80, 9265, 1, 5, 1, -UNI_IDST } /* idst=n */,
- { 63, 9488, 3115, 4, 10, UNI_INDEVANAGARI } /* blk=devanagari */,
- { 0, 2224, 4370, 3, 5, UNI_INSYRIAC } /* insyriac */,
- { 0, 6205, 3, 12, 1, -UNI_IDEO } /* ideographic=f */,
- { 37, 184, 9660, 2, 4, UNI_MLYM } /* ismlym */,
- { 1, 5791, 4748, 13, 15, UNI_JG__MANICHAEANGIMEL } /* joininggroup=manichaeangimel */,
- { 1, 184, 5592, 2, 14, UNI_ZS } /* isspaceseparator */,
- { 9, 6554, 3, 11, 1, -UNI_IDC } /* idcontinue=f */,
- { 3, 5986, 7778, 13, 2, UNI_NV__21 } /* numericvalue=21 */,
- { 2, 9508, 7858, 4, 3, UNI_CCC__B } /* ccc=220 */,
- { 0, 1900, 0, 6, 0, UNI_ZYYY } /* common */,
- { 25, 3836, 9452, 17, 4, UNI_AHOM } /* scriptextensions=ahom */,
- { 0, 9508, 9136, 5, 4, UNI_CCC__21 } /* ccc=ccc21 */,
- { 0, 2529, 0, 20, 0, UNI_term_values_index } /* terminalpunctuation= */,
- { 1, 8768, 9836, 6, 4, UNI_BIDIC } /* bidic=true */,
- { 0, 8780, 3785, 6, 10, UNI_INMANICHAEAN } /* block=manichaean */,
- { 8, 10333, 8625, 3, 6, UNI_SUPPUAA } /* issuppuaa */,
- { 256, 10024, 112, 3, 2, UNI_SC } /* gc=sc */,
- { 4, 9508, 8042, 4, 2, UNI_CCC__18 } /* ccc=18 */,
- { 177, 10048, 8067, 3, 8, UNI_NV__17_SLASH_2 } /* nv=8.50e+00 */,
- { 96, 9768, 8638, 4, 7, UNI_TGLG } /* scx=tagalog */,
- { 0, 4791, 2856, 3, 8, UNI_INMONGOLIAN } /* inmongolian */,
- { 0, 8688, 9477, 3, 3, UNI_AVST } /* isavst */,
- { 11, 9488, 8498, 4, 7, UNI_INMULTANI } /* blk=multani */,
- { 42, 6231, 630, 3, 29, UNI_CJKEXTE } /* incjkunifiedideographsextensione */,
- { 2, 6231, 1061, 4, 4, UNI_INCOPTIC } /* incoptic */,
- { 1, 7325, 10081, 3, 3, UNI_IN__3 } /* in=v30 */,
- { 5, 1552, 908, 9, 10, UNI_CO } /* category=privateuse */,
- { 0, 1591, 8422, 3, 6, UNI_INELYMAIC } /* inelymaic */,
- { 64, 9275, 9300, 5, 5, UNI_INSC__NUKTA } /* insc=nukta */,
- { 5, 3836, 9460, 17, 4, UNI_ARMI } /* scriptextensions=armi */,
- { 0, 8688, 9449, 3, 3, UNI_AGHB } /* isaghb */,
- { 0, 3097, 3501, 18, 3, UNI_DT__MED } /* decompositiontype=med */,
- { 0, 184, 8123, 2, 4, UNI_BUGI } /* isbugi */,
- { 8, 9014, 10135, 6, 3, UNI_UIDEO } /* uideo=yes */,
- { 5, 9536, 3, 4, 1, -UNI_DEP } /* dep=f */,
- { 2, 8589, 9888, 7, 4, UNI_ZANB } /* script=zanb */,
- { 9, 10048, 8732, 3, 3, UNI_NV__500 } /* nv=500 */,
- { 1, 184, 8870, 2, 5, UNI_EPRES } /* isepres */,
- { 0, 9277, 8477, 3, 7, UNI_MAKA } /* sc=makasar */,
- { 10, 3382, 1025, 3, 2, -UNI_CE } /* ce=no */,
- { 10, 5324, 480, 4, 29, UNI_MATHALPHANUM } /* inmathematicalalphanumericsymbols */,
- { 1, 10033, 5999, 3, 13, UNI_LB__PR } /* lb=prefixnumeric */,
- { 1, 2779, 0, 18, 0, UNI_IDST } /* idstrinaryoperator */,
- { 0, 4033, 5726, 16, 13, UNI_ME } /* generalcategory=enclosingmark */,
- { 0, 10027, 5364, 3, 4, UNI_JG__HETH } /* jg=heth */,
- { 0, 1979, 6266, 10, 11, UNI_NL } /* category=letternumber */,
- { 3, 9488, 2665, 4, 19, UNI_COUNTINGROD } /* blk=countingrodnumerals */,
- { 208, 8780, 7188, 6, 10, UNI_INKHAROSHTHI } /* block=kharoshthi */,
- { 84, 184, 8359, 3, 6, UNI_CJKEXTB } /* iscjkextb */,
- { 0, 9768, 2203, 4, 4, UNI_HAN } /* scx=hani */,
- { 0, 2182, 1087, 21, 7, UNI_GCB__PP } /* graphemeclusterbreak=prepend */,
- { 288, 2409, 0, 20, 0, UNI_GLAGOLITICSUP } /* glagoliticsupplement */,
- { 256, 9488, 2912, 4, 12, UNI_SUNDANESESUP } /* blk=sundanesesup */,
- { 0, 8780, 4703, 6, 15, UNI_INIMPERIALARAMAIC } /* block=imperialaramaic */,
- { 6, 9014, 3, 6, 1, -UNI_UIDEO } /* uideo=f */,
- { 0, 7218, 1186, 10, 2, UNI_LB__PO } /* linebreak=po */,
- { 0, 7438, 6169, 10, 12, UNI_WB__EB } /* wordbreak=glueafterzwj */,
- { 0, 184, 6181, 2, 12, UNI_GONG } /* isgunjalagondi */,
- { 1, 10033, 34, 3, 2, UNI_LB__EX } /* lb=ex */,
- { 2, 2280, 6874, 3, 10, UNI_SO } /* isothersymbol */,
- { 1, 9277, 3115, 3, 4, UNI_SC__DEVA } /* sc=deva */,
- { 0, 9488, 6505, 4, 12, UNI_PHAISTOS } /* blk=phaistosdisc */,
- { 176, 8780, 5228, 6, 14, UNI_LATINEXTB } /* block=latinextendedb */,
- { 25, 2533, 6028, 5, 9, UNI_ALPHABETICPF } /* inalphabeticpf */,
- { 5, 9997, 2509, 3, 11, UNI_BC__R } /* bc=righttoleft */,
- { 0, 8780, 7288, 6, 10, UNI_INOLDSOGDIAN } /* block=oldsogdian */,
- { 186, 9277, 8131, 3, 8, UNI_SC__DUPL } /* sc=duployan */,
- { 45, 1673, 0, 4, 0, UNI_JAMO } /* jamo */,
- { 66, 6061, 0, 12, 0, UNI_bidic_values_index } /* bidicontrol= */,
- { 0, 8589, 9038, 7, 6, UNI_SC__YEZI } /* script=yezidi */,
- { 0, 1856, 3, 22, 1, -UNI_CWU } /* changeswhenuppercased=f */,
- { 256, 10183, 7438, 4, 4, UNI_POSIXWORD } /* perlword */,
- { 1, 9070, 3, 5, 1, -UNI_POSIXXDIGIT } /* ahex=f */,
- { 0, 9277, 8596, 3, 7, UNI_SC__SHRD } /* sc=sharada */,
- { 3, 5986, 0, 13, 0, UNI_nv_values_index } /* numericvalue= */,
- { 3, 184, 8243, 2, 8, UNI_MAHJ } /* ismahajani */,
- { 0, 9240, 26, 5, 1, UNI_DASH } /* dash=y */,
- { 4, 3025, 0, 11, 0, UNI_CHEROKEESUP } /* cherokeesup */,
- { 2, 6420, 4884, 3, 14, UNI_SARB } /* inoldsoutharabian */,
- { 1, 9262, 72, 3, 2, UNI_SB__LE } /* sb=le */,
- { 0, 9520, 0, 4, 0, UNI_cwl_values_index } /* cwl= */,
- { 2, 7325, 7806, 3, 1, UNI_IN__6 } /* in=6 */,
- { 2, 1417, 9922, 24, 3, UNI_CCC__214 } /* canonicalcombiningclass=214 */,
- { 0, 3836, 9283, 17, 4, UNI_PHLI } /* scriptextensions=phli */,
- { 0, 4916, 47, 5, 1, UNI_TERM } /* isterm */,
- { 104, 7318, 9388, 10, 4, UNI_IN__11 } /* presentin=11.0 */,
- { 0, 1417, 8082, 24, 2, UNI_CCC__19 } /* canonicalcombiningclass=19 */,
- { 0, 2182, 911, 21, 1, UNI_GCB__V } /* graphemeclusterbreak=v */,
- { 1, 262, 0, 2, 0, UNI_SM } /* sm */,
- { 98, 1552, 5494, 9, 14, UNI_MN } /* category=nonspacingmark */,
- { 1, 184, 1222, 2, 4, UNI_KANA } /* iskana */,
- { 1, 5986, 7469, 13, 8, UNI_NV__1_SLASH_2 } /* numericvalue=5.00e-01 */,
- { 57, 8780, 8624, 6, 7, UNI_SUPPUAA } /* block=suppuaa */,
- { 3, 21, 5019, 3, 13, UNI_ANCIENTSYMBOLS } /* inancientsymbols */,
- { 0, 3836, 4928, 17, 5, UNI_TAML } /* scriptextensions=tamil */,
- { 0, 1552, 45, 9, 2, UNI_CO } /* category=co */,
- { 3, 9444, 9388, 4, 4, UNI_AGE__11 } /* age=11.0 */,
- { 1, 4161, 0, 16, 0, UNI_LINEARBSYLLABARY } /* linearbsyllabary */,
- { 0, 9768, 2245, 4, 11, UNI_MTEI } /* scx=meeteimayek */,
- { 3, 10024, 4305, 3, 5, UNI_C } /* gc=other */,
- { 1, 1768, 1, 22, 1, -UNI_CWCF } /* changeswhencasefolded=n */,
- { 2, 5752, 0, 8, 0, UNI_GREEKEXT } /* greekext */,
- { 34, 9768, 8477, 4, 4, UNI_MAKA } /* scx=maka */,
- { 2, 10048, 9958, 3, 3, UNI_NV__3_SLASH_4 } /* nv=3/4 */,
- { 20, 184, 749, 2, 16, UNI_ENCLOSEDALPHANUM } /* isenclosedalphanum */,
- { 0, 9488, 9320, 4, 5, UNI_INOSAGE } /* blk=osage */,
- { 0, 8227, 0, 8, 0, UNI_KANAEXTA } /* kanaexta */,
- { 22, 4448, 0, 8, 0, UNI_BAMUMSUP } /* bamumsup */,
- { 65, 3836, 8888, 17, 6, UNI_HATR } /* scriptextensions=hatran */,
- { 0, 3904, 9255, 17, 5, -UNI_UIDEO } /* unifiedideograph=false */,
- { 3, 9444, 9840, 4, 4, UNI_AGE__10 } /* age=v100 */,
- { 36, 3836, 9548, 17, 4, UNI_DSRT } /* scriptextensions=dsrt */,
- { 128, 10048, 7795, 3, 8, UNI_NV__3_SLASH_20 } /* nv=1.50e-01 */,
- { 11, 3529, 1025, 18, 2, -UNI_VS } /* variationselector=no */,
- { 0, 3768, 0, 17, 0, UNI_LETTERLIKESYMBOLS } /* letterlikesymbols */,
- { 40, 8400, 3, 7, 1, -UNI_COMPEX } /* compex=f */,
- { 0, 184, 3751, 2, 17, UNI_KITS } /* iskhitansmallscript */,
- { 0, 9488, 1654, 4, 23, UNI_COMPATJAMO } /* blk=hangulcompatibilityjamo */,
- { 1, 10027, 3819, 3, 17, UNI_JG__MANICHAEANTHAMEDH } /* jg=manichaeanthamedh */,
- { 0, 414, 0, 11, 0, UNI_IDEO } /* ideographic */,
- { 16, 184, 4448, 2, 5, UNI_BAMU } /* isbamum */,
- { 259, 10048, 7859, 3, 5, UNI_NV__20000 } /* nv=20000 */,
- { 1, 1966, 7639, 22, 9, UNI_INSC__NONJOINER } /* indicsyllabiccategory=nonjoiner */,
- { 0, 9488, 1218, 4, 8, UNI_INKATAKANA } /* blk=katakana */,
- { 288, 1591, 3170, 3, 10, UNI_ETHIOPICSUP } /* inethiopicsup */,
- { 9, 8780, 4049, 6, 11, UNI_GEORGIANEXT } /* block=georgianext */,
- { 4, 9768, 8470, 4, 7, UNI_LINA } /* scx=lineara */,
- { 1, 3097, 2569, 18, 8, UNI_DT__VERT } /* decompositiontype=vertical */,
- { 2, 3133, 9255, 18, 5, -UNI_EBASE } /* emojimodifierbase=false */,
- { 4, 7325, 10117, 3, 3, UNI_IN__7 } /* in=v70 */,
- { 6, 4033, 1, 16, 1, UNI_N } /* generalcategory=n */,
- { 296, 9556, 36, 4, 1, UNI_GCB__T } /* gcb=t */,
- { 0, 1552, 47, 9, 1, UNI_M } /* category=m */,
- { 1, 5791, 9772, 13, 4, UNI_JG__SEEN } /* joininggroup=seen */,
- { 1, 9270, 3475, 5, 18, UNI_INPC__TOPANDLEFTANDRIGHT } /* inpc=topandleftandright */,
- { 33, 9532, 0, 4, 0, UNI_CYRL } /* cyrl */,
- { 2, 1087, 10135, 27, 3, UNI_PCM } /* prependedconcatenationmark=yes */,
- { 1, 7318, 9384, 10, 4, UNI_IN__10 } /* presentin=10.0 */,
- { 0, 5986, 7950, 13, 1, UNI_NV__9 } /* numericvalue=9 */,
- { 1, 4116, 2780, 3, 17, UNI_IDST } /* isidstrinaryoperator */,
- { 49, 9768, 8888, 4, 4, UNI_HATR } /* scx=hatr */,
- { 0, 4116, 59, 3, 3, UNI_IDEO } /* isideo */,
- { 0, 9488, 951, 4, 18, UNI_INVS } /* blk=variationselectors */,
- { 289, 3385, 0, 17, 0, UNI_RI } /* regionalindicator */,
- { 1, 8780, 7378, 6, 10, UNI_SUPARROWSA } /* block=suparrowsa */,
- { 8, 7088, 25, 10, 1, UNI_BC__S } /* bidiclass=s */,
- { 1, 1552, 38, 9, 2, UNI_XPOSIXDIGIT } /* category=nd */,
- { 65, 4448, 0, 4, 0, UNI_BAMU } /* bamu */,
- { 0, 7438, 495, 10, 2, UNI_WB__NU } /* wordbreak=nu */,
- { 1, 5324, 5845, 4, 7, UNI_INMALAYALAM } /* inmalayalam */,
- { 18, 9488, 1922, 4, 22, UNI_DIACRITICALSFORSYMBOLS } /* blk=diacriticalsforsymbols */,
- { 3, 3785, 0, 10, 0, UNI_MANI } /* manichaean */,
- { 98, 6231, 150, 4, 33, UNI_DIACRITICALSSUP } /* incombiningdiacriticalmarkssupplement */,
- { 10, 1273, 9836, 21, 4, UNI_CE } /* compositionexclusion=true */,
- { 1, 6481, 0, 12, 0, UNI_HUNG } /* oldhungarian */,
- { 0, 8386, 0, 7, 0, UNI_CJKEXTF } /* cjkextf */,
- { 4, 3385, 1025, 18, 2, -UNI_RI } /* regionalindicator=no */,
- { 16, 2224, 2288, 3, 6, UNI_INSINHALA } /* insinhala */,
- { 0, 8589, 6409, 7, 12, UNI_MEND } /* script=mendekikakui */,
- { 1, 4989, 1868, 3, 8, UNI_XPOSIXUPPER } /* isuppercase */,
- { 0, 5791, 2223, 13, 3, UNI_JG__AIN } /* joininggroup=ain */,
- { 197, 8780, 328, 6, 21, UNI_MATHOPERATORS } /* block=mathematicaloperators */,
- { 0, 6420, 8548, 3, 6, UNI_OLCK } /* inolchiki */,
- { 0, 9488, 8345, 5, 6, UNI_INBENGALI } /* blk=bengali */,
- { 0, 9488, 4553, 4, 15, UNI_CONTROLPICTURES } /* blk=controlpictures */,
- { 130, 184, 7378, 2, 10, UNI_SUPARROWSA } /* issuparrowsa */,
- { 4, 10048, 8750, 3, 5, UNI_NV__80000 } /* nv=80000 */,
- { 17, 9488, 7666, 4, 9, UNI_INOLDTURKIC } /* blk=oldturkic */,
- { 5, 3836, 8582, 17, 7, UNI_PHAG } /* scriptextensions=phagspa */,
- { 2, 1552, 133, 9, 4, UNI_M } /* category=mark */,
- { 1, 5986, 7859, 13, 2, UNI_NV__20 } /* numericvalue=20 */,
- { 32, 9776, 0, 4, 0, UNI_SGNW } /* sgnw */,
- { 1, 8780, 4337, 6, 16, UNI_SUPMATHOPERATORS } /* block=supmathoperators */,
- { 0, 6231, 660, 3, 29, UNI_CJKEXTF } /* incjkunifiedideographsextensionf */,
- { 0, 9508, 9131, 5, 4, UNI_CCC__20 } /* ccc=ccc20 */,
- { 0, 7428, 0, 10, 0, UNI_WARA } /* warangciti */,
- { 0, 7438, 6653, 10, 11, UNI_WB__DQ } /* wordbreak=doublequote */,
- { 1, 250, 0, 33, 0, UNI_MISCMATHSYMBOLSA } /* miscellaneousmathematicalsymbolsa */,
- { 0, 3367, 10135, 18, 3, UNI__PERL_PATWS } /* patternwhitespace=yes */,
- { 21, 9277, 2329, 3, 20, UNI_HLUW } /* sc=anatolianhieroglyphs */,
- { 3, 1033, 0, 27, 0, UNI_ENCLOSEDCJK } /* enclosedcjklettersandmonths */,
- { 3, 9768, 9584, 4, 4, UNI_HLUW } /* scx=hluw */,
- { 35, 6231, 8359, 3, 6, UNI_CJKEXTB } /* incjkextb */,
- { 0, 7325, 9970, 3, 3, UNI_IN__5_DOT_2 } /* in=5.2 */,
- { 1, 8512, 26, 7, 1, UNI_NFKCQC__Y } /* nfkcqc=y */,
- { 0, 8589, 9325, 7, 5, UNI_RUNR } /* script=runic */,
- { 0, 3836, 9095, 17, 5, UNI_BUHD } /* scriptextensions=buhid */,
- { 0, 9488, 2912, 4, 19, UNI_SUNDANESESUP } /* blk=sundanesesupplement */,
- { 1, 184, 8984, 2, 5, UNI_QMARK } /* isqmark */,
- { 1, 10170, 0, 2, 0, UNI_CASEDLETTER } /* l_ */,
- { 0, 4033, 8855, 16, 2, UNI_CF } /* generalcategory=cf */,
- { 1, 10290, 9225, 6, 5, UNI_XPOSIXCNTRL } /* xposixcntrl */,
- { 18, 9488, 1013, 4, 5, UNI_INGREEK } /* blk=greek */,
- { 64, 9488, 3025, 4, 11, UNI_CHEROKEESUP } /* blk=cherokeesup */,
- { 0, 2560, 0, 4, 0, UNI_MAND } /* mand */,
- { 3, 9270, 7298, 5, 10, UNI_INPC__OVERSTRUCK } /* inpc=overstruck */,
- { 0, 9277, 9860, 3, 4, UNI_VAI } /* sc=vaii */,
- { 97, 3836, 9480, 17, 4, UNI_BATK } /* scriptextensions=batk */,
- { 12, 9488, 9452, 4, 4, UNI_INAHOM } /* blk=ahom */,
- { 0, 9277, 3169, 3, 4, UNI_ETHI } /* sc=ethi */,
- { 47, 184, 10180, 2, 2, UNI_ZS } /* iszs */,
- { 0, 5171, 0, 4, 0, UNI_CHAM } /* cham */,
- { 4, 5674, 1025, 13, 2, -UNI_BIDIM } /* bidimirrored=no */,
- { 19, 2684, 0, 19, 0, UNI_EGYP } /* egyptianhieroglyphs */,
- { 0, 10009, 3439, 3, 5, UNI_DT__SML } /* dt=small */,
- { 1, 8780, 9285, 6, 5, UNI_INLIMBU } /* block=limbu */,
- { 0, 9596, 7238, 4, 10, UNI_LB__H2 } /* hst=lvsyllable */,
- { 5, 7318, 9397, 10, 3, UNI_IN__2_DOT_1 } /* presentin=2.1 */,
- { 36, 6229, 10135, 12, 3, UNI_JOINC } /* joincontrol=yes */,
- { 130, 9768, 3894, 5, 10, UNI_SGNW } /* scx=signwriting */,
- { 6, 3717, 0, 17, 0, UNI_identifierstatus_values_index } /* identifierstatus= */,
- { 112, 8589, 6253, 7, 5, UNI_KHMR } /* script=khmer */,
- { 2, 8780, 2329, 6, 20, UNI_INANATOLIANHIEROGLYPHS } /* block=anatolianhieroglyphs */,
- { 0, 1273, 0, 21, 0, UNI_ce_values_index } /* compositionexclusion= */,
- { 1, 10024, 1186, 3, 2, UNI_PO } /* gc=po */,
- { 4, 9488, 8659, 4, 7, UNI_INTIBETAN } /* blk=tibetan */,
- { 394, 5674, 9255, 13, 5, -UNI_BIDIM } /* bidimirrored=false */,
- { 22, 9488, 5242, 4, 14, UNI_LATINEXTC } /* blk=latinextendedc */,
- { 1, 8780, 1677, 6, 14, UNI_LATINEXTA } /* block=latinextendeda */,
- { 0, 184, 8380, 3, 6, UNI_CJKEXTE } /* iscjkexte */,
- { 0, 9488, 2855, 4, 19, UNI_MONGOLIANSUP } /* blk=mongoliansupplement */,
- { 0, 3052, 0, 9, 0, UNI_HALFMARKS } /* halfmarks */,
- { 0, 8780, 1944, 6, 22, UNI_EARLYDYNASTICCUNEIFORM } /* block=earlydynasticcuneiform */,
- { 0, 8780, 9008, 6, 6, UNI_INTHAANA } /* block=thaana */,
- { 6, 8884, 3, 4, 1, -UNI_EXT } /* ext=f */,
- { 2, 184, 1988, 2, 21, UNI_LOE } /* islogicalorderexception */,
- { 0, 5986, 8738, 13, 5, UNI_NV__60000 } /* numericvalue=60000 */,
- { 0, 21, 3549, 4, 15, UNI_ALCHEMICAL } /* inalchemicalsymbols */,
- { 2, 5986, 7867, 13, 8, UNI_NV__1_SLASH_32 } /* numericvalue=3.12e-02 */,
- { 0, 5986, 7971, 13, 8, UNI_NV__7_SLASH_12 } /* numericvalue=5.83e-01 */,
- { 0, 5508, 36, 14, 1, UNI_PATSYN } /* patternsyntax=t */,
- { 0, 5739, 9836, 13, 4, UNI_GRBASE } /* graphemebase=true */,
- { 0, 2182, 18, 21, 2, UNI_RI } /* graphemeclusterbreak=ri */,
- { 4, 4033, 6862, 16, 11, UNI_NO } /* generalcategory=othernumber */,
- { 0, 8780, 5778, 6, 13, UNI_IPAEXT } /* block=ipaextensions */,
- { 0, 9768, 9712, 4, 4, UNI_OSGE } /* scx=osge */,
- { 0, 9262, 1194, 3, 2, UNI_LB__LF } /* sb=lf */,
- { 182, 2218, 9306, 3, 4, UNI_INNUSHU } /* innushu */,
- { 0, 117, 2431, 4, 18, UNI_ININSCRIPTIONALPAHLAVI } /* ininscriptionalpahlavi */,
- { 0, 3836, 1628, 17, 4, UNI_PHAG } /* scriptextensions=phag */,
- { 2, 5284, 0, 7, 0, UNI_LISUSUP } /* lisusup */,
- { 0, 7325, 7814, 3, 1, UNI_IN__7 } /* in=7 */,
- { 1, 9997, 10036, 3, 3, UNI_BC__LRE } /* bc=lre */,
- { 10, 6231, 2141, 3, 17, UNI_CYRILLICSUP } /* incyrillicsupplement */,
- { 0, 8780, 9800, 6, 4, UNI_TAGS } /* block=tags */,
- { 56, 10048, 8714, 3, 4, UNI_NV__3000 } /* nv=3000 */,
- { 0, 8780, 3439, 6, 12, UNI_SMALLKANAEXT } /* block=smallkanaext */,
- { 0, 1591, 3684, 3, 10, UNI_ETHIOPICEXT } /* inethiopicext */,
- { 0, 7318, 10081, 10, 3, UNI_IN__3 } /* presentin=v30 */,
- { 3, 10009, 7, 3, 3, UNI_DT__CAN } /* dt=can */,
- { 0, 5791, 5424, 13, 14, UNI_JG__MANICHAEANYODH } /* joininggroup=manichaeanyodh */,
- { 3, 1188, 2297, 3, 3, UNI_INTHAI } /* inthai */,
- { 0, 8589, 6940, 8, 10, UNI_SORA } /* script=sorasompeng */,
- { 0, 9277, 7191, 6, 7, UNI_KHAR } /* sc=kharoshthi */,
- { 20, 184, 9513, 3, 3, UNI_CHRS } /* ischrs */,
- { 0, 8780, 5687, 6, 13, UNI_BLOCKELEMENTS } /* block=blockelements */,
- { 5, 1552, 6851, 9, 11, UNI_LO } /* category=otherletter */,
- { 0, 9488, 3241, 4, 18, UNI_GEORGIANSUP } /* blk=georgiansupplement */,
- { 11, 3836, 9684, 17, 4, UNI_NEWA } /* scriptextensions=newa */,
- { 0, 9524, 3, 4, 1, -UNI_CWT } /* cwt=f */,
- { 2, 9488, 8924, 4, 6, UNI_INLEPCHA } /* blk=lepcha */,
- { 32, 1441, 0, 10, 0, UNI_CJKSYMBOLS } /* cjksymbols */,
- { 0, 6420, 7289, 3, 9, UNI_INOLDSOGDIAN } /* inoldsogdian */,
- { 1, 7438, 495, 10, 7, UNI_WB__NU } /* wordbreak=numeric */,
- { 0, 8589, 5550, 7, 14, UNI_SC__PHLP } /* script=psalterpahlavi */,
- { 3, 10048, 7755, 3, 8, UNI_NV__1_SLASH_9 } /* nv=1.11e-01 */,
- { 0, 8589, 9828, 7, 4, UNI_THAI } /* script=thai */,
- { 2, 10033, 6217, 3, 12, UNI_LB__IS } /* lb=infixnumeric */,
- { 0, 8852, 26, 6, 1, UNI_CWKCF } /* cwkcf=y */,
- { 3, 184, 2409, 2, 4, UNI_GLAG } /* isglag */,
- { 2, 6061, 0, 5, 0, UNI_BIDIC } /* bidic */,
- { 85, 5578, 72, 14, 2, UNI_SB__LE } /* sentencebreak=le */,
- { 162, 1966, 1489, 22, 24, UNI_INSC__CONSONANTSUCCEEDINGREPHA } /* indicsyllabiccategory=consonantsucceedingrepha */,
- { 0, 3836, 9664, 17, 3, UNI_MRO } /* scriptextensions=mro */,
- { 0, 5986, 5648, 13, 8, UNI_NV__10000000 } /* numericvalue=10000000 */,
- { 0, 184, 5075, 3, 13, UNI_CJKCOMPATFORMS } /* iscjkcompatforms */,
- { 0, 10033, 7108, 3, 10, UNI_LB__BA } /* lb=breakafter */,
- { 0, 2182, 4360, 21, 9, UNI_WB__EB } /* graphemeclusterbreak=emodifier */,
- { 21, 6231, 1442, 3, 23, UNI_CJKSYMBOLS } /* incjksymbolsandpunctuation */,
- { 35, 6873, 0, 11, 0, UNI_SO } /* othersymbol */,
- { 0, 8589, 9860, 7, 3, UNI_VAI } /* script=vai */,
- { 0, 8688, 6026, 3, 11, UNI_ALPHABETICPF } /* isalphabeticpf */,
- { 0, 9277, 8457, 4, 6, UNI_SC__KNDA } /* sc=kannada */,
- { 38, 6805, 5176, 4, 2, UNI_INMIAO } /* inmiao */,
- { 8, 9768, 8888, 4, 6, UNI_HATR } /* scx=hatran */,
- { 0, 184, 749, 2, 21, UNI_ENCLOSEDALPHANUM } /* isenclosedalphanumerics */,
- { 0, 8589, 9315, 7, 5, UNI_SC__ORYA } /* script=oriya */,
- { 133, 7438, 5012, 10, 2, UNI_WB__SQ } /* wordbreak=sq */,
- { 0, 9275, 9026, 5, 6, UNI_INSC__VIRAMA } /* insc=virama */,
- { 2, 4973, 0, 8, 0, UNI_VEDICEXT } /* vedicext */,
- { 52, 74, 0, 2, 0, UNI_ME } /* me */,
- { 26, 1979, 0, 10, 0, UNI_L } /* category=l */,
- { 0, 5986, 9060, 13, 5, UNI_NV__11_SLASH_12 } /* numericvalue=11/12 */,
- { 1, 8589, 8219, 7, 4, UNI_SC__JAVA } /* script=java */,
- { 0, 4033, 47, 16, 1, UNI_M } /* generalcategory=m */,
- { 6, 10048, 7787, 3, 8, UNI_NV__3_SLASH_2 } /* nv=1.50e+00 */,
- { 1, 1966, 4113, 22, 16, UNI_INSC__INVISIBLESTACKER } /* indicsyllabiccategory=invisiblestacker */,
- { 1, 4033, 4943, 16, 15, UNI_TITLE } /* generalcategory=titlecaseletter */,
- { 0, 8589, 6840, 7, 4, UNI_SC__NAND } /* script=nand */,
- { 1, 10060, 10135, 3, 3, UNI_RI } /* ri=yes */,
- { 256, 9488, 78, 4, 35, UNI_ARABICMATH } /* blk=arabicmathematicalalphabeticsymbols */,
- { 0, 9716, 10135, 4, 3, UNI_PCM } /* pcm=yes */,
- { 6, 9768, 9285, 4, 5, UNI_LIMB } /* scx=limbu */,
- { 1, 9768, 8484, 4, 7, UNI_MAND } /* scx=mandaic */,
- { 5, 3836, 1013, 17, 5, UNI_GREK } /* scriptextensions=greek */,
- { 6, 7325, 10087, 3, 3, UNI_IN__3_DOT_2 } /* in=v32 */,
- { 0, 5324, 4342, 4, 11, UNI_MATHOPERATORS } /* inmathoperators */,
- { 1, 4001, 0, 16, 0, UNI_CYPRIOTSYLLABARY } /* cypriotsyllabary */,
- { 0, 8299, 0, 8, 0, UNI_TFNG } /* tifinagh */,
- { 196, 2288, 1656, 4, 4, UNI_INHANGUL } /* inhangul */,
- { 2, 5986, 7821, 13, 1, UNI_NV__8 } /* numericvalue=8 */,
- { 64, 184, 7428, 2, 10, UNI_WARA } /* iswarangciti */,
- { 1, 3836, 6409, 17, 12, UNI_MEND } /* scriptextensions=mendekikakui */,
- { 3, 5986, 8744, 13, 5, UNI_NV__70000 } /* numericvalue=70000 */,
- { 1, 9488, 4129, 4, 9, UNI_LATIN1 } /* blk=latin1sup */,
- { 0, 7088, 18, 10, 1, UNI_BC__R } /* bidiclass=r */,
- { 0, 6231, 8366, 3, 6, UNI_CJKEXTC } /* incjkextc */,
- { 2, 183, 0, 34, 0, UNI_MISCPICTOGRAPHS } /* miscellaneoussymbolsandpictographs */,
- { 0, 2280, 6863, 3, 10, UNI_NO } /* isothernumber */,
- { 0, 9528, 36, 4, 1, UNI_CWU } /* cwu=t */,
- { 265, 8589, 8900, 7, 6, UNI_SC__KTHI } /* script=kaithi */,
- { 46, 6231, 43, 3, 15, UNI_CJKCOMPAT } /* incjkcompatibility */,
- { 0, 9277, 8484, 3, 7, UNI_SC__MAND } /* sc=mandaic */,
- { 4, 184, 9624, 2, 4, UNI_LAO } /* islaoo */,
- { 3, 3836, 9692, 17, 4, UNI_NSHU } /* scriptextensions=nshu */,
- { 1, 3151, 36, 18, 1, UNI_EPRES } /* emojipresentation=t */,
- { 58, 3836, 7292, 18, 3, UNI_SOGD } /* scriptextensions=sogd */,
- { 81, 9488, 8561, 4, 7, UNI_INOSMANYA } /* blk=osmanya */,
- { 3, 21, 8990, 2, 6, UNI_INREJANG } /* inrejang */,
- { 32, 7088, 10039, 10, 3, UNI_BC__LRI } /* bidiclass=lri */,
- { 4, 10024, 1563, 3, 2, UNI_PS } /* gc=ps */,
- { 1, 3836, 8680, 17, 7, UNI_ZZZZ } /* scriptextensions=unknown */,
- { 1, 9768, 9672, 4, 4, UNI_MYMR } /* scx=mymr */,
- { 0, 9071, 26, 4, 1, UNI_XPOSIXXDIGIT } /* hex=y */,
- { 0, 5986, 9168, 13, 2, UNI_NV__27 } /* numericvalue=27 */,
- { 0, 10033, 495, 3, 2, UNI_LB__NU } /* lb=nu */,
- { 31, 8780, 2722, 6, 19, UNI_JAMOEXTA } /* block=hanguljamoextendeda */,
- { 1, 184, 8414, 2, 4, UNI_ELBA } /* iselba */,
- { 99, 2784, 80, 4, 33, UNI_ARABICMATH } /* inarabicmathematicalalphabeticsymbols */,
- { 0, 6277, 0, 4, 0, UNI_MAHJ } /* mahj */,
- { 35, 117, 3736, 4, 15, UNI_INDICSIYAQNUMBERS } /* inindicsiyaqnumbers */,
- { 1, 8589, 9330, 7, 5, UNI_SC__TALE } /* script=taile */,
- { 0, 9277, 9085, 3, 5, UNI_BATK } /* sc=batak */,
- { 0, 9488, 4928, 4, 5, UNI_INTAMIL } /* blk=tamil */,
- { 49, 3341, 0, 8, 0, UNI_DINGBATS } /* dingbats */,
- { 0, 9488, 2665, 4, 11, UNI_COUNTINGROD } /* blk=countingrod */,
- { 35, 4033, 0, 16, 0, UNI_gc_values_index } /* generalcategory= */,
- { 4, 1114, 1, 26, 1, -UNI_CWKCF } /* changeswhennfkccasefolded=n */,
- { 7, 6231, 690, 3, 29, UNI_CJKEXTG } /* incjkunifiedideographsextensiong */,
- { 3, 7438, 18, 10, 2, UNI_RI } /* wordbreak=ri */,
- { 0, 184, 10178, 2, 2, UNI_ZP } /* iszp */,
- { 3, 5986, 9916, 13, 3, UNI_NV__2_SLASH_5 } /* numericvalue=2/5 */,
- { 2, 8780, 8900, 6, 6, UNI_INKAITHI } /* block=kaithi */,
- { 0, 2817, 0, 4, 0, UNI_MERO } /* mero */,
- { 0, 10024, 4583, 3, 15, UNI_PD } /* gc=dashpunctuation */,
- { 0, 7675, 0, 9, 0, UNI_PALM } /* palmyrene */,
- { 16, 184, 2141, 3, 17, UNI_CYRILLICSUP } /* iscyrillicsupplement */,
- { 3, 8780, 5830, 6, 13, UNI_LOWSURROGATES } /* block=lowsurrogates */,
- { 0, 4033, 9225, 16, 5, UNI_XPOSIXCNTRL } /* generalcategory=cntrl */,
- { 8, 21, 8936, 2, 6, UNI_INLYCIAN } /* inlycian */,
- { 16, 5791, 9075, 13, 5, UNI_JG__ALAPH } /* joininggroup=alaph */,
- { 3, 4989, 4959, 3, 14, UNI_UPPERCASELETTER } /* isuppercaseletter */,
- { 120, 184, 3937, 2, 8, UNI_BOPO } /* isbopomofo */,
- { 0, 10132, 8323, 3, 7, UNI_WB__LE } /* wb=aletter */,
- { 4, 8589, 9245, 7, 5, UNI_SC__DOGR } /* script=dogra */,
- { 67, 3853, 1, 17, 1, -UNI_STERM } /* sentenceterminal=n */,
- { 0, 10182, 1159, 33, 5, UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START } /* _perl_problematic_locale_foldeds_start */,
- { 3, 9768, 9002, 4, 6, UNI_TELU } /* scx=telugu */,
- { 0, 5040, 0, 5, 0, UNI_XPOSIXDIGIT } /* digit */,
- { 2, 5564, 1025, 14, 2, -UNI_QMARK } /* quotationmark=no */,
- { 0, 7, 0, 1, 0, UNI_C } /* c */,
- { 1, 9640, 1, 4, 1, -UNI_LOE } /* loe=n */,
- { 0, 8780, 3921, 6, 9, UNI_ARABICSUP } /* block=arabicsup */,
- { 0, 9828, 0, 4, 0, UNI_THAI } /* thai */,
- { 0, 9488, 3241, 4, 8, UNI_INGEORGIAN } /* blk=georgian */,
- { 0, 3836, 9440, 17, 4, UNI_ADLM } /* scriptextensions=adlm */,
- { 163, 6609, 10135, 11, 3, UNI_DEP } /* deprecated=yes */,
- { 4, 10296, 62, 7, 5, UNI_POSIXGRAPH } /* isposixgraph */,
- { 0, 184, 8373, 3, 6, UNI_CJKEXTD } /* iscjkextd */,
- { 103, 9488, 5228, 4, 14, UNI_LATINEXTB } /* blk=latinextendedb */,
- { 1, 4791, 0, 17, 0, UNI_INMEROITICCURSIVE } /* inmeroiticcursive */,
- { 4, 1812, 9255, 22, 5, -UNI_CWL } /* changeswhenlowercased=false */,
- { 0, 9768, 8498, 4, 7, UNI_MULT } /* scx=multani */,
- { 1, 9277, 4369, 3, 6, UNI_SC__SYRC } /* sc=syriac */,
- { 1, 9270, 7676, 3, 8, UNI_PALM } /* inpalmyrene */,
- { 0, 9277, 9325, 3, 5, UNI_RUNR } /* sc=runic */,
- { 474, 1552, 467, 9, 5, UNI_P } /* category=punct */,
- { 0, 4116, 6555, 3, 9, UNI_IDC } /* isidcontinue */,
- { 0, 9716, 3, 4, 1, -UNI_PCM } /* pcm=f */,
- { 0, 6620, 0, 6, 0, UNI_DOMINO } /* domino */,
- { 0, 3836, 4868, 17, 15, UNI_NARB } /* scriptextensions=oldnortharabian */,
- { 2, 184, 4973, 2, 15, UNI_VEDICEXT } /* isvedicextensions */,
- { 11, 1828, 36, 6, 1, UNI_CASED } /* cased=t */,
- { 20, 9488, 8315, 4, 8, UNI_INUGARITIC } /* blk=ugaritic */,
- { 0, 7218, 184, 10, 2, UNI_LB__IS } /* linebreak=is */,
- { 0, 7739, 1025, 8, 2, -UNI_IDS } /* idstart=no */,
- { 4, 9488, 9038, 4, 6, UNI_INYEZIDI } /* blk=yezidi */,
- { 0, 8589, 9285, 7, 5, UNI_SC__LIMB } /* script=limbu */,
- { 2, 7325, 7987, 3, 3, UNI_IN__6_DOT_2 } /* in=6.2 */,
- { 3, 7155, 2723, 3, 9, UNI_JAMO } /* ishanguljamo */,
- { 0, 7318, 10084, 10, 3, UNI_IN__3_DOT_1 } /* presentin=v31 */,
- { 1, 3097, 9868, 18, 4, UNI_EA__F } /* decompositiontype=wide */,
- { 106, 9277, 6939, 3, 11, UNI_SORA } /* sc=sorasompeng */,
- { 0, 9488, 8211, 4, 8, UNI_JAMOEXTB } /* blk=jamoextb */,
- { 12, 9556, 0, 4, 0, UNI_gcb_values_index } /* gcb= */,
- { 41, 2182, 36, 21, 1, UNI_GCB__T } /* graphemeclusterbreak=t */,
- { 0, 7325, 7781, 3, 1, UNI_IN__4 } /* in=4 */,
- { 3, 8762, 10135, 6, 3, UNI_XPOSIXALPHA } /* alpha=yes */,
- { 0, 1552, 6873, 9, 11, UNI_SO } /* category=othersymbol */,
- { 5, 1059, 0, 2, 0, UNI_SO } /* so */,
- { 0, 9556, 1194, 4, 2, UNI_LB__LF } /* gcb=lf */,
- { 0, 3836, 8786, 17, 4, UNI_CARI } /* scriptextensions=cari */,
- { 0, 10333, 8611, 3, 6, UNI_SIDD } /* issiddham */,
- { 7, 5986, 9994, 13, 3, UNI_NV__9_SLASH_2 } /* numericvalue=9/2 */,
- { 48, 5578, 138, 14, 2, UNI_SB__FO } /* sentencebreak=fo */,
- { 6, 9277, 8638, 3, 7, UNI_SC__TGLG } /* sc=tagalog */,
- { 69, 4643, 26, 15, 1, UNI_ECOMP } /* emojicomponent=y */,
- { 128, 5200, 0, 14, 0, UNI_KANASUP } /* kanasupplement */,
- { 1, 5986, 8042, 13, 2, UNI_NV__18 } /* numericvalue=18 */,
- { 0, 8906, 0, 6, 0, UNI_KANBUN } /* kanbun */,
- { 2, 4916, 9336, 3, 3, UNI_TAKR } /* istakr */,
- { 1, 184, 2120, 3, 13, UNI_CJKRADICALSSUP } /* iscjkradicalssup */,
- { 18, 3097, 1253, 18, 4, UNI_DT__INIT } /* decompositiontype=init */,
- { 3, 9640, 0, 4, 0, UNI_loe_values_index } /* loe= */,
- { 25, 3097, 5904, 18, 4, UNI_DT__NONE } /* decompositiontype=none */,
- { 9, 7318, 10120, 10, 3, UNI_IN__8 } /* presentin=v80 */,
- { 0, 6097, 0, 12, 0, UNI_CYRILLICEXTA } /* cyrillicexta */,
- { 88, 9488, 2119, 4, 21, UNI_CJKRADICALSSUP } /* blk=cjkradicalssupplement */,
- { 6, 184, 7621, 2, 9, UNI_NBAT } /* isnabataean */,
- { 1, 8780, 7368, 6, 10, UNI_SMALLFORMS } /* block=smallforms */,
- { 1, 8884, 9836, 4, 4, UNI_EXT } /* ext=true */,
- { 3, 8610, 0, 7, 0, UNI_SIDD } /* siddham */,
- { 344, 5116, 3, 14, 1, -UNI_EMOD } /* emojimodifier=f */,
- { 0, 9508, 9940, 4, 3, UNI_CCC__A } /* ccc=230 */,
- { 1, 908, 0, 10, 0, UNI_CO } /* privateuse */,
- { 1, 184, 10303, 2, 5, UNI_XPOSIXBLANK } /* isblank */,
- { 0, 3836, 9672, 17, 4, UNI_MYMR } /* scriptextensions=mymr */,
- { 0, 9768, 9512, 4, 4, UNI_CHRS } /* scx=chrs */,
- { 38, 6231, 5075, 3, 13, UNI_CJKCOMPATFORMS } /* incjkcompatforms */,
- { 5, 5564, 0, 13, 0, UNI_QMARK } /* quotationmark */,
- { 0, 184, 283, 2, 33, UNI_MISCMATHSYMBOLSB } /* ismiscellaneousmathematicalsymbolsb */,
- { 5, 1417, 9937, 24, 3, UNI_CCC__AL } /* canonicalcombiningclass=228 */,
- { 1, 1188, 9009, 3, 5, UNI_INTHAANA } /* inthaana */,
- { 0, 4033, 24, 16, 1, UNI_L } /* generalcategory=l */,
- { 8, 9277, 2817, 3, 19, UNI_MERO } /* sc=meroitichieroglyphs */,
- { 4, 3836, 9628, 17, 4, UNI_LATN } /* scriptextensions=latn */,
- { 1, 1834, 3, 22, 1, -UNI_CWT } /* changeswhentitlecased=f */,
- { 2, 8774, 36, 6, 1, UNI_BIDIM } /* bidim=t */,
- { 0, 5791, 5856, 13, 13, UNI_JG__MALAYALAMNNNA } /* joininggroup=malayalamnnna */,
- { 11, 5791, 6289, 13, 12, UNI_JG__MALAYALAMBHA } /* joininggroup=malayalambha */,
- { 99, 7218, 4538, 10, 15, UNI_LB__CB } /* linebreak=contingentbreak */,
- { 84, 2218, 6842, 4, 9, UNI_INNANDINAGARI } /* innandinagari */,
- { 5, 4916, 9009, 3, 3, UNI_THAA } /* isthaa */,
- { 1, 1552, 7, 9, 1, UNI_C } /* category=c */,
- { 150, 2218, 1912, 3, 10, UNI_NUMBERFORMS } /* innumberforms */,
- { 5, 9277, 9285, 3, 5, UNI_SC__LIMB } /* sc=limbu */,
- { 135, 9768, 9797, 5, 3, UNI_SYRC } /* scx=syrc */,
- { 10, 184, 4273, 2, 7, UNI_MYMR } /* ismyanmar */,
- { 3, 8780, 4598, 6, 15, UNI_DIACRITICALSEXT } /* block=diacriticalsext */,
- { 0, 9488, 3025, 4, 18, UNI_CHEROKEESUP } /* blk=cherokeesupplement */,
- { 1, 1790, 0, 21, 0, UNI_CWCM } /* changeswhencasemapped */,
- { 1, 7155, 2742, 3, 18, UNI_JAMOEXTB } /* ishanguljamoextendedb */,
- { 23, 8780, 4478, 6, 15, UNI_BRAI } /* block=braillepatterns */,
- { 0, 10333, 10183, 7, 4, UNI_XPOSIXSPACE } /* isspaceperl */,
- { 6, 10027, 5179, 3, 3, UNI_JG__HEH } /* jg=heh */,
- { 0, 8589, 9580, 7, 4, UNI_SC__HANO } /* script=hano */,
- { 26, 10182, 7739, 6, 7, UNI__PERL_IDSTART } /* _perl_idstart */,
- { 0, 9350, 36, 5, 1, UNI_XIDS } /* xids=t */,
- { 306, 2224, 3888, 3, 16, UNI_SUTTONSIGNWRITING } /* insuttonsignwriting */,
- { 88, 7325, 9982, 3, 3, UNI_IN__6_DOT_3 } /* in=6.3 */,
- { 258, 10006, 9836, 3, 4, UNI_DI } /* di=true */,
- { 0, 8954, 17, 7, 1, -UNI__PERL_NCHAR } /* nchar=no */,
- { 0, 184, 1723, 2, 23, UNI_SUPPUNCTUATION } /* issupplementalpunctuation */,
- { 0, 10024, 1527, 3, 9, UNI__PERL_SURROGATE } /* gc=surrogate */,
- { 0, 3836, 9724, 17, 4, UNI_PHNX } /* scriptextensions=phnx */,
- { 232, 6840, 0, 4, 0, UNI_NAND } /* nand */,
- { 1, 10027, 5892, 3, 3, UNI_JG__NUN } /* jg=nun */,
- { 32, 10327, 3379, 6, 5, UNI_POSIXSPACE } /* isperlspace */,
- { 0, 7168, 0, 10, 0, UNI_DIAK } /* divesakuru */,
- { 1, 2836, 0, 19, 0, UNI_MODIFIERTONELETTERS } /* modifiertoneletters */,
- { 1, 8858, 10135, 6, 3, UNI_ECOMP } /* ecomp=yes */,
- { 0, 9768, 9500, 4, 4, UNI_CAKM } /* scx=cakm */,
- { 1, 7218, 9713, 10, 2, UNI_LB__SG } /* linebreak=sg */,
- { 0, 9768, 7558, 4, 9, UNI_QAAI } /* scx=inherited */,
- { 33, 9250, 10135, 5, 3, UNI_EMOD } /* emod=yes */,
- { 0, 1273, 36, 21, 1, UNI_CE } /* compositionexclusion=t */,
- { 0, 1417, 5377, 24, 2, UNI_CCC__7 } /* canonicalcombiningclass=nk */,
- { 0, 1979, 0, 10, 1, UNI_UPPERCASELETTER } /* category=lu */,
- { 1, 9488, 6181, 4, 12, UNI_INGUNJALAGONDI } /* blk=gunjalagondi */,
- { 0, 9277, 9305, 3, 5, UNI_NSHU } /* sc=nushu */,
- { 2, 7128, 0, 10, 0, UNI_CJKSTROKES } /* cjkstrokes */,
- { 1, 9488, 7358, 4, 10, UNI_INSAURASHTRA } /* blk=saurashtra */,
- { 2, 184, 9624, 2, 3, UNI_LAO } /* islao */,
- { 0, 5986, 8002, 13, 2, UNI_NV__26 } /* numericvalue=26 */,
- { 0, 7218, 10162, 10, 2, UNI_GCB__L } /* linebreak=jl */,
- { 32, 9508, 9141, 5, 4, UNI_CCC__22 } /* ccc=ccc22 */,
- { 3, 3836, 8900, 17, 6, UNI_KTHI } /* scriptextensions=kaithi */,
- { 1, 4360, 0, 4, 0, UNI_EMOD } /* emod */,
- { 97, 10132, 1822, 3, 2, UNI_WB__NL } /* wb=nl */,
- { 1, 3836, 9500, 17, 4, UNI_CAKM } /* scriptextensions=cakm */,
- { 1, 9768, 2429, 4, 20, UNI_PHLI } /* scx=inscriptionalpahlavi */,
- { 0, 9488, 9335, 4, 5, UNI_INTAKRI } /* blk=takri */,
- { 0, 5438, 0, 14, 0, UNI_SK } /* modifiersymbol */,
- { 0, 8512, 10135, 7, 3, UNI_NFKCQC__Y } /* nfkcqc=yes */,
- { 64, 9768, 9876, 4, 4, UNI_XSUX } /* scx=xsux */,
- { 0, 5037, 10135, 9, 3, UNI_XPOSIXXDIGIT } /* hexdigit=yes */,
- { 11, 2161, 10135, 21, 3, UNI_EXTPICT } /* extendedpictographic=yes */,
- { 1, 6928, 9255, 11, 5, -UNI_SD } /* softdotted=false */,
- { 0, 1189, 5904, 3, 4, UNI_NV__NAN } /* nt=none */,
- { 32, 1856, 10135, 22, 3, UNI_CWU } /* changeswhenuppercased=yes */,
- { 4, 9488, 0, 4, 42, UNI_UCASEXT } /* blk=unifiedcanadianaboriginalsyllabicsextended */,
- { 6, 8315, 0, 4, 0, UNI_UGAR } /* ugar */,
- { 81, 5986, 8732, 13, 3, UNI_NV__500 } /* numericvalue=500 */,
- { 12, 6928, 0, 11, 0, UNI_sd_values_index } /* softdotted= */,
- { 0, 9277, 7675, 3, 9, UNI_PALM } /* sc=palmyrene */,
- { 1, 9768, 4370, 5, 5, UNI_SYRC } /* scx=syriac */,
- { 2, 7438, 1218, 10, 2, UNI_WB__KA } /* wordbreak=ka */,
- { 4, 9768, 9676, 4, 4, UNI_NARB } /* scx=narb */,
- { 0, 2760, 0, 19, 0, UNI_hst_values_index } /* hangulsyllabletype= */,
- { 9, 2760, 6541, 19, 12, UNI_GCB__T } /* hangulsyllabletype=trailingjamo */,
- { 3, 3836, 6886, 18, 3, UNI_SHAW } /* scriptextensions=shaw */,
- { 332, 6061, 26, 12, 1, UNI_BIDIC } /* bidicontrol=y */,
- { 0, 3836, 7, 17, 18, UNI_CANS } /* scriptextensions=canadianaboriginal */,
- { 30, 7228, 1025, 10, 2, -UNI_XPOSIXLOWER } /* lowercase=no */,
- { 8, 9444, 9400, 4, 4, UNI_AGE__13 } /* age=13.0 */,
- { 4, 2032, 9836, 22, 4, UNI__PERL_NCHAR } /* noncharactercodepoint=true */,
- { 0, 6840, 0, 11, 0, UNI_NAND } /* nandinagari */,
- { 1, 10333, 6792, 3, 3, UNI_SAMR } /* issamr */,
- { 0, 9488, 2119, 4, 14, UNI_CJKRADICALSSUP } /* blk=cjkradicalssup */,
- { 0, 5550, 0, 14, 0, UNI_PHLP } /* psalterpahlavi */,
- { 0, 9768, 9496, 4, 4, UNI_BUHD } /* scx=buhd */,
- { 0, 2280, 7650, 4, 7, UNI_ITAL } /* isolditalic */,
- { 4, 10048, 7789, 3, 2, UNI_NV__50 } /* nv=50 */,
- { 532, 9277, 9532, 3, 4, UNI_SC__CYRL } /* sc=cyrl */,
- { 117, 5791, 10000, 13, 3, UNI_JG__BEH } /* joininggroup=beh */,
- { 0, 8589, 8942, 7, 4, UNI_LYDI } /* script=lydi */,
- { 4, 8589, 8666, 7, 4, UNI_SC__TIRH } /* script=tirh */,
- { 512, 9277, 3169, 3, 8, UNI_ETHI } /* sc=ethiopic */,
- { 0, 9768, 9860, 4, 3, UNI_VAI } /* scx=vai */,
- { 544, 4688, 7208, 15, 10, UNI_IDENTIFIERTYPE__LIMITEDUSE } /* identifiertype=limiteduse */,
- { 0, 9488, 1723, 4, 23, UNI_SUPPUNCTUATION } /* blk=supplementalpunctuation */,
- { 0, 7218, 5046, 10, 14, UNI_LB__CR } /* linebreak=carriagereturn */,
- { 0, 184, 8394, 3, 6, UNI_CJKEXTG } /* iscjkextg */,
- { 2, 4916, 4188, 3, 3, UNI_TALE } /* istale */,
- { 0, 6609, 9255, 11, 5, -UNI_DEP } /* deprecated=false */,
- { 26, 8780, 3115, 6, 18, UNI_DEVANAGARIEXT } /* block=devanagariextended */,
- { 1, 9488, 2589, 4, 19, UNI_ANCIENTGREEKNUMBERS } /* blk=ancientgreeknumbers */,
- { 0, 5324, 8245, 4, 6, UNI_INMAHAJANI } /* inmahajani */,
- { 0, 8858, 3, 6, 1, -UNI_ECOMP } /* ecomp=f */,
- { 0, 9768, 6796, 4, 11, UNI_MEDF } /* scx=medefaidrin */,
- { 0, 5986, 8082, 13, 2, UNI_NV__19 } /* numericvalue=19 */,
- { 0, 7318, 7408, 10, 10, UNI_AGE__NA } /* presentin=unassigned */,
- { 32, 6231, 8841, 3, 5, UNI_INCHAKMA } /* inchakma */,
- { 0, 1087, 0, 27, 0, UNI_pcm_values_index } /* prependedconcatenationmark= */,
- { 1, 8780, 9828, 6, 4, UNI_INTHAI } /* block=thai */,
- { 0, 2287, 0, 21, 0, UNI_SINHALAARCHAICNUMBERS } /* sinhalaarchaicnumbers */,
- { 0, 9290, 1, 5, 1, -UNI_MATH } /* math=n */,
- { 40, 9768, 2061, 4, 4, UNI_MODI } /* scx=modi */,
- { 0, 1060, 0, 27, 0, UNI_OCR } /* opticalcharacterrecognition */,
- { 0, 3097, 1309, 18, 3, UNI_DT__SUB } /* decompositiontype=sub */,
- { 82, 10027, 7148, 3, 10, UNI_JG__DALATHRISH } /* jg=dalathrish */,
- { 0, 7318, 10087, 10, 3, UNI_IN__3_DOT_2 } /* presentin=v32 */,
- { 65, 10033, 751, 3, 2, UNI_LB__CL } /* lb=cl */,
- { 0, 9240, 3, 5, 1, -UNI_DASH } /* dash=f */,
- { 0, 3836, 9544, 17, 4, UNI_DIAK } /* scriptextensions=diak */,
- { 0, 9275, 1244, 5, 25, UNI_INSC__CONSONANTINITIALPOSTFIXED } /* insc=consonantinitialpostfixed */,
- { 1, 4116, 447, 3, 31, UNI_IDEOGRAPHICSYMBOLS } /* isideographicsymbolsandpunctuation */,
- { 0, 9488, 7648, 4, 9, UNI_INOLDITALIC } /* blk=olditalic */,
- { 1, 7325, 7469, 3, 1, UNI_IN__5 } /* in=5 */,
- { 11, 4628, 1204, 15, 9, UNI_EA__F } /* eastasianwidth=fullwidth */,
- { 9, 3133, 9836, 18, 4, UNI_EBASE } /* emojimodifierbase=true */,
- { 73, 9277, 6972, 3, 4, UNI_SC__SYLO } /* sc=sylo */,
- { 4, 6061, 9836, 12, 4, UNI_BIDIC } /* bidicontrol=true */,
- { 0, 184, 5284, 2, 4, UNI_LISU } /* islisu */,
- { 1, 3836, 8421, 17, 7, UNI_ELYM } /* scriptextensions=elymaic */,
- { 0, 9230, 0, 5, 0, UNI_cwcf_values_index } /* cwcf= */,
- { 0, 184, 1561, 2, 24, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* issupsymbolsandpictographs */,
- { 0, 4658, 3, 15, 1, -UNI_GREXT } /* graphemeextend=f */,
- { 1, 9488, 217, 4, 33, UNI_DIACRITICALSEXT } /* blk=combiningdiacriticalmarksextended */,
- { 1, 5578, 6556, 15, 8, UNI_SB__SC } /* sentencebreak=scontinue */,
- { 3, 9250, 9836, 5, 4, UNI_EMOD } /* emod=true */,
- { 98, 9260, 36, 5, 1, UNI_IDSB } /* idsb=t */,
- { 173, 1966, 6457, 22, 12, UNI_INSC__NUMBERJOINER } /* indicsyllabiccategory=numberjoiner */,
- { 104, 4688, 0, 15, 0, UNI_identifiertype_values_index } /* identifiertype= */,
- { 260, 8589, 9576, 7, 4, UNI_SC__GURU } /* script=guru */,
- { 16, 3836, 9696, 17, 4, UNI_OGAM } /* scriptextensions=ogam */,
- { 1, 8400, 9255, 7, 5, -UNI_COMPEX } /* compex=false */,
- { 36, 10296, 3379, 7, 5, UNI_POSIXSPACE } /* isposixspace */,
- { 0, 9508, 9946, 4, 3, UNI_CCC__DB } /* ccc=233 */,
- { 0, 6109, 0, 12, 0, UNI_CYRILLICEXTB } /* cyrillicextb */,
- { 0, 184, 8900, 2, 6, UNI_KTHI } /* iskaithi */,
- { 0, 951, 0, 28, 0, UNI_VSSUP } /* variationselectorssupplement */,
- { 276, 9596, 5973, 4, 13, UNI_HST__NA } /* hst=notapplicable */,
- { 61, 1723, 0, 23, 0, UNI_SUPPUNCTUATION } /* supplementalpunctuation */,
- { 3, 3097, 4017, 18, 5, UNI_DT__FIN } /* decompositiontype=final */,
- { 0, 9345, 9836, 5, 4, UNI_XIDC } /* xidc=true */,
- { 461, 8589, 9793, 8, 3, UNI_SOGO } /* script=sogo */,
- { 0, 8780, 5032, 6, 5, UNI_ASCII } /* block=ascii */,
- { 0, 8589, 9624, 7, 4, UNI_LAO } /* script=laoo */,
- { 5, 2288, 2205, 4, 12, UNI_INHANIFIROHINGYA } /* inhanifirohingya */,
- { 3, 42, 0, 26, 0, UNI_CJKCOMPATIDEOGRAPHS } /* cjkcompatibilityideographs */,
- { 1, 8780, 5284, 6, 14, UNI_LISUSUP } /* block=lisusupplement */,
- { 0, 8291, 0, 4, 0, UNI_TAGB } /* tagb */,
- { 0, 4989, 7409, 3, 9, UNI_CN } /* isunassigned */,
- { 10, 8870, 36, 6, 1, UNI_EPRES } /* epres=t */,
- { 1, 9488, 5960, 4, 13, UNI_MISCTECHNICAL } /* blk=misctechnical */,
- { 6, 8589, 8645, 7, 7, UNI_LANA } /* script=taitham */,
- { 5, 9488, 1006, 4, 27, UNI_ANCIENTGREEKMUSIC } /* blk=ancientgreekmusicalnotation */,
- { 0, 4113, 4974, 3, 7, UNI_VEDICEXT } /* invedicext */,
- { 2, 122, 0, 9, 0, UNI_DIA } /* diacritic */,
- { 0, 1812, 1, 22, 1, -UNI_CWL } /* changeswhenlowercased=n */,
- { 71, 9488, 3870, 4, 17, UNI_SMALLFORMS } /* blk=smallformvariants */,
- { 0, 2224, 1724, 3, 22, UNI_SUPPUNCTUATION } /* insupplementalpunctuation */,
- { 32, 184, 84, 2, 4, UNI_MATH } /* ismath */,
- { 0, 6231, 1879, 3, 21, UNI_CJKCOMPATIDEOGRAPHSSUP } /* incjkcompatideographssup */,
- { 0, 8780, 7648, 6, 9, UNI_INOLDITALIC } /* block=olditalic */,
- { 0, 9768, 8179, 4, 8, UNI_GURU } /* scx=gurmukhi */,
- { 3, 184, 1171, 2, 2, UNI_TITLE } /* islt */,
- { 0, 3836, 6840, 17, 11, UNI_NAND } /* scriptextensions=nandinagari */,
- { 0, 1966, 2844, 22, 10, UNI_INSC__TONELETTER } /* indicsyllabiccategory=toneletter */,
- { 1, 3547, 0, 17, 0, UNI_ALCHEMICAL } /* alchemicalsymbols */,
- { 0, 8421, 0, 7, 0, UNI_ELYM } /* elymaic */,
- { 3, 10048, 10152, 3, 2, UNI_NV__49 } /* nv=49 */,
- { 0, 9488, 9315, 4, 5, UNI_INORIYA } /* blk=oriya */,
- { 35, 9277, 8315, 3, 4, UNI_UGAR } /* sc=ugar */,
- { 0, 9508, 9156, 5, 4, UNI_CCC__25 } /* ccc=ccc25 */,
- { 36, 3836, 5171, 17, 4, UNI_CHAM } /* scriptextensions=cham */,
- { 6, 4033, 1186, 16, 2, UNI_PO } /* generalcategory=po */,
- { 2, 8882, 1, 6, 1, -UNI_GREXT } /* grext=n */,
- { 17, 9277, 9816, 3, 4, UNI_TAVT } /* sc=tavt */,
- { 0, 1563, 0, 2, 0, UNI_PS } /* ps */,
- { 66, 9488, 8906, 4, 6, UNI_KANBUN } /* blk=kanbun */,
- { 0, 9444, 8043, 4, 3, UNI_AGE__8 } /* age=8.0 */,
- { 0, 9290, 1025, 5, 2, -UNI_MATH } /* math=no */,
- { 11, 1979, 36, 10, 1, UNI_TITLE } /* category=lt */,
- { 3, 10048, 9976, 3, 3, UNI_NV__5_SLASH_8 } /* nv=5/8 */,
- { 0, 8997, 0, 6, 0, UNI_TERM } /* term=t */,
- { 0, 184, 6730, 2, 11, UNI_KATAKANAEXT } /* iskatakanaext */,
- { 262, 8780, 3600, 6, 4, UNI_UCAS } /* block=ucas */,
- { 8, 7155, 9593, 3, 3, UNI_HMNP } /* ishmnp */,
- { 5, 7155, 1193, 3, 25, UNI_HALFANDFULLFORMS } /* ishalfwidthandfullwidthforms */,
- { 316, 9768, 8597, 5, 6, UNI_SHRD } /* scx=sharada */,
- { 0, 1988, 36, 22, 1, UNI_LOE } /* logicalorderexception=t */,
- { 0, 3374, 1, 11, 1, -UNI_XPOSIXSPACE } /* whitespace=n */,
- { 0, 9444, 10075, 4, 3, UNI_AGE__2 } /* age=v20 */,
- { 8, 9444, 9955, 4, 3, UNI_AGE__3_DOT_2 } /* age=3.2 */,
- { 0, 2288, 8444, 4, 5, UNI_INHANUNOO } /* inhanunoo */,
- { 0, 6231, 510, 3, 29, UNI_CJKEXTA } /* incjkunifiedideographsextensiona */,
- { 2, 184, 6098, 3, 11, UNI_CYRILLICEXTA } /* iscyrillicexta */,
- { 0, 10060, 1, 3, 1, -UNI_RI } /* ri=n */,
- { 0, 6231, 8352, 3, 6, UNI_CJKEXTA } /* incjkexta */,
- { 0, 1988, 9255, 22, 5, -UNI_LOE } /* logicalorderexception=false */,
- { 2, 5791, 7045, 13, 3, UNI_JG__FEH } /* joininggroup=feh */,
- { 64, 4116, 325, 3, 3, UNI_ITAL } /* isital */,
- { 0, 7088, 10042, 10, 3, UNI_BC__LRO } /* bidiclass=lro */,
- { 47, 7155, 8, 3, 2, UNI_HAN } /* ishan */,
- { 0, 5986, 7765, 13, 2, UNI_NV__25 } /* numericvalue=25 */,
- { 3, 9488, 4340, 4, 13, UNI_MATHOPERATORS } /* blk=mathoperators */,
- { 0, 10033, 8680, 3, 7, UNI_LB__XX } /* lb=unknown */,
- { 2, 10024, 1059, 3, 2, UNI_SO } /* gc=so */,
- { 8, 7088, 407, 10, 2, UNI_BC__ON } /* bidiclass=on */,
- { 3, 4245, 0, 10, 0, UNI_SM } /* mathsymbol */,
- { 32, 8780, 4928, 6, 5, UNI_INTAMIL } /* block=tamil */,
- { 0, 9488, 5550, 4, 14, UNI_INPSALTERPAHLAVI } /* blk=psalterpahlavi */,
- { 3, 8870, 1025, 6, 2, -UNI_EPRES } /* epres=no */,
- { 4, 9876, 0, 4, 0, UNI_XSUX } /* xsux */,
- { 3, 8966, 0, 7, 0, UNI_DT__CAN } /* nfdqc=n */,
- { 4, 9265, 9255, 5, 5, -UNI_IDST } /* idst=false */,
- { 11, 7218, 5088, 10, 14, UNI_LB__SA } /* linebreak=complexcontext */,
- { 1, 3836, 3598, 17, 17, UNI_AGHB } /* scriptextensions=caucasianalbanian */,
- { 0, 8780, 4049, 6, 16, UNI_GEORGIANEXT } /* block=georgianextended */,
- { 10, 3385, 1, 18, 1, -UNI_RI } /* regionalindicator=n */,
- { 0, 8589, 9095, 7, 5, UNI_SC__BUHD } /* script=buhid */,
- { 1, 10024, 10170, 3, 2, UNI_CASEDLETTER } /* gc=l_ */,
- { 1, 5791, 6774, 13, 11, UNI_JG__MALAYALAMJA } /* joininggroup=malayalamja */,
- { 4, 117, 5779, 3, 12, UNI_IPAEXT } /* inipaextensions */,
- { 56, 5986, 8756, 13, 6, UNI_NV__900000 } /* numericvalue=900000 */,
- { 2, 8589, 3169, 7, 8, UNI_ETHI } /* script=ethiopic */,
- { 0, 10033, 2444, 3, 2, UNI_LB__HL } /* lb=hl */,
- { 6, 1114, 9255, 26, 5, -UNI_CWKCF } /* changeswhennfkccasefolded=false */,
- { 0, 10027, 9044, 3, 4, UNI_JG__YUDH } /* jg=yudh */,
- { 2, 4385, 0, 6, 0, UNI_TANG } /* tangut */,
- { 2, 8780, 2245, 6, 14, UNI_MEETEIMAYEKEXT } /* block=meeteimayekext */,
- { 32, 3836, 9330, 17, 5, UNI_TALE } /* scriptextensions=taile */,
- { 0, 3836, 8107, 17, 4, UNI_BALI } /* scriptextensions=bali */,
- { 32, 5986, 5648, 13, 7, UNI_NV__1000000 } /* numericvalue=1000000 */,
- { 24, 8780, 4369, 6, 6, UNI_INSYRIAC } /* block=syriac */,
- { 206, 4838, 17, 16, 1, UNI_NFKCQC__N } /* nfkcquickcheck=no */,
- { 2, 6061, 3, 12, 1, -UNI_BIDIC } /* bidicontrol=f */,
- { 0, 9277, 8344, 3, 4, UNI_SC__BENG } /* sc=beng */,
- { 0, 9277, 9544, 3, 4, UNI_DIAK } /* sc=diak */,
- { 426, 4369, 0, 16, 0, UNI_SYRIACSUP } /* syriacsupplement */,
- { 1, 6231, 1902, 4, 20, UNI_INDICNUMBERFORMS } /* incommonindicnumberforms */,
- { 1, 10027, 9075, 3, 5, UNI_JG__ALAPH } /* jg=alaph */,
- { 2, 4478, 0, 7, 0, UNI_BRAI } /* braille */,
- { 1, 8589, 1654, 7, 6, UNI_SC__HANG } /* script=hangul */,
- { 68, 9508, 8817, 5, 5, UNI_CCC__129 } /* ccc=ccc129 */,
- { 0, 9015, 3, 5, 1, -UNI_IDEO } /* ideo=f */,
- { 8, 1417, 9472, 24, 3, UNI_CCC__202 } /* canonicalcombiningclass=atb */,
- { 24, 184, 4613, 2, 15, UNI_DIACRITICALSSUP } /* isdiacriticalssup */,
- { 0, 9488, 4337, 4, 16, UNI_SUPMATHOPERATORS } /* blk=supmathoperators */,
- { 7, 1594, 0, 14, 0, UNI_MUSIC } /* musicalsymbols */,
- { 97, 4791, 2247, 4, 12, UNI_MEETEIMAYEKEXT } /* inmeeteimayekext */,
- { 3, 184, 1344, 2, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* issymbolsforlegacycomputing */,
- { 51, 9488, 446, 4, 18, UNI_IDEOGRAPHICSYMBOLS } /* blk=ideographicsymbols */,
- { 10, 9488, 5284, 4, 14, UNI_LISUSUP } /* blk=lisusupplement */,
- { 0, 9620, 0, 4, 0, UNI_LANA } /* lana */,
- { 0, 9488, 1631, 4, 23, UNI_GEOMETRICSHAPESEXT } /* blk=geometricshapesextended */,
- { 0, 6231, 1442, 3, 9, UNI_CJKSYMBOLS } /* incjksymbols */,
- { 0, 10132, 727, 3, 2, UNI_WB__MN } /* wb=mn */,
- { 68, 1166, 10135, 26, 3, UNI_DI } /* defaultignorablecodepoint=yes */,
- { 0, 1188, 8639, 3, 6, UNI_INTAGALOG } /* intagalog */,
- { 320, 9488, 6796, 4, 11, UNI_INMEDEFAIDRIN } /* blk=medefaidrin */,
- { 402, 3836, 8491, 17, 4, UNI_MARC } /* scriptextensions=marc */,
- { 4, 9488, 5752, 4, 8, UNI_GREEKEXT } /* blk=greekext */,
- { 1, 7088, 4465, 12, 13, UNI_BC__BN } /* bidiclass=boundaryneutral */,
- { 91, 8688, 863, 4, 4, UNI_ARROWS } /* isarrows */,
- { 0, 184, 867, 2, 18, UNI_PHONETICEXT } /* isphoneticextensions */,
- { 0, 8107, 0, 4, 0, UNI_BALI } /* bali */,
- { 1, 10333, 4370, 3, 8, UNI_SYRIACSUP } /* issyriacsup */,
- { 0, 8337, 0, 7, 0, UNI_AVST } /* avestan */,
- { 8, 184, 43, 3, 2, UNI_CJK } /* iscjk */,
- { 0, 9488, 8470, 4, 7, UNI_INLINEARA } /* blk=lineara */,
- { 0, 9768, 4145, 4, 7, UNI_LINB } /* scx=linearb */,
- { 496, 7325, 7979, 3, 3, UNI_IN__6 } /* in=6.0 */,
- { 0, 2218, 7623, 4, 7, UNI_INNABATAEAN } /* innabataean */,
- { 22, 9748, 0, 4, 0, UNI_RJNG } /* rjng */,
- { 0, 3836, 9736, 17, 4, UNI_COPT } /* scriptextensions=qaac */,
- { 97, 2784, 4435, 4, 13, UNI_ARABICEXTA } /* inarabicextendeda */,
- { 38, 9444, 9967, 4, 3, UNI_AGE__5_DOT_1 } /* age=5.1 */,
- { 121, 3836, 8876, 17, 4, UNI_GOTH } /* scriptextensions=goth */,
- { 5, 10033, 83, 3, 2, UNI_LB__CM } /* lb=cm */,
- { 4, 9997, 102, 3, 2, UNI_BC__ET } /* bc=et */,
- { 0, 5452, 10135, 14, 3, UNI_NFCQC__Y } /* nfcquickcheck=yes */,
- { 12, 9488, 3025, 4, 8, UNI_INCHEROKEE } /* blk=cherokee */,
- { 72, 9524, 10135, 4, 3, UNI_CWT } /* cwt=yes */,
- { 22, 9277, 2485, 3, 4, UNI_SC__MONG } /* sc=mong */,
- { 136, 8267, 1, 8, 1, -UNI_RADICAL } /* radical=n */,
- { 68, 8219, 0, 8, 0, UNI_JAVA } /* javanese */,
- { 1, 21, 9066, 3, 4, UNI_INADLAM } /* inadlam */,
- { 385, 1966, 1608, 22, 23, UNI_INSC__CONSONANTPRECEDINGREPHA } /* indicsyllabiccategory=consonantprecedingrepha */,
- { 0, 6576, 3, 11, 1, -UNI_XPOSIXALPHA } /* alphabetic=f */,
- { 8, 5986, 7978, 13, 2, UNI_NV__16 } /* numericvalue=16 */,
- { 41, 1552, 598, 9, 2, UNI_XPOSIXCNTRL } /* category=cc */,
- { 8, 6241, 0, 12, 1, UNI_JT__U } /* joiningtype=u */,
- { 2, 10024, 6598, 3, 11, UNI_CASEDLETTER } /* gc=casedletter */,
- { 0, 9250, 1, 5, 1, -UNI_EMOD } /* emod=n */,
- { 1, 6121, 0, 12, 0, UNI_CYRILLICEXTC } /* cyrillicextc */,
- { 0, 6554, 0, 10, 0, UNI_IDC } /* idcontinue */,
- { 0, 2760, 6741, 19, 11, UNI_GCB__L } /* hangulsyllabletype=leadingjamo */,
- { 2, 5986, 9988, 13, 3, UNI_NV__7_SLASH_8 } /* numericvalue=7/8 */,
- { 38, 5578, 1194, 14, 2, UNI_LB__LF } /* sentencebreak=lf */,
- { 7, 10132, 3385, 3, 17, UNI_RI } /* wb=regionalindicator */,
- { 2, 8589, 8428, 7, 4, UNI_SC__GRAN } /* script=gran */,
- { 1, 4838, 9295, 15, 5, UNI_NFCQC__M } /* nfkcquickcheck=maybe */,
- { 0, 9768, 9310, 4, 5, UNI_OGAM } /* scx=ogham */,
- { 1, 3424, 1, 3, 33, UNI_UCAS } /* inunifiedcanadianaboriginalsyllabics */,
- { 12, 21, 5804, 2, 13, UNI_KANAEXTA } /* inkanaextendeda */,
- { 1, 1044, 0, 6, 0, UNI_L } /* letter */,
- { 106, 9508, 9943, 4, 3, UNI_CCC__AR } /* ccc=232 */,
- { 0, 7738, 3, 9, 1, -UNI_XIDS } /* xidstart=f */,
- { 0, 184, 8491, 2, 7, UNI_MARC } /* ismarchen */,
- { 32, 8589, 3751, 7, 17, UNI_KITS } /* script=khitansmallscript */,
- { 0, 2280, 4899, 3, 14, UNI_PS } /* isopenpunctuation */,
- { 1, 8780, 3241, 6, 11, UNI_GEORGIANSUP } /* block=georgiansup */,
- { 1, 5791, 2203, 13, 21, UNI_JG__HANIFIROHINGYAKINNAYA } /* joininggroup=hanifirohingyakinnaya */,
- { 92, 1966, 5144, 22, 14, UNI_INSC__GEMINATIONMARK } /* indicsyllabiccategory=geminationmark */,
- { 0, 9768, 9085, 4, 5, UNI_BATK } /* scx=batak */,
- { 1, 9768, 9652, 4, 4, UNI_MERC } /* scx=merc */,
- { 0, 96, 0, 5, 0, UNI_XPOSIXALPHA } /* alpha */,
- { 12, 8589, 9632, 7, 4, UNI_SC__LINA } /* script=lina */,
- { 4, 8498, 0, 7, 0, UNI_MULT } /* multani */,
- { 17, 1966, 9026, 22, 6, UNI_INSC__VIRAMA } /* indicsyllabiccategory=virama */,
- { 0, 7438, 2444, 10, 2, UNI_LB__HL } /* wordbreak=hl */,
- { 258, 7318, 9844, 10, 4, UNI_IN__11 } /* presentin=v110 */,
- { 0, 9768, 9440, 4, 4, UNI_ADLM } /* scx=adlm */,
- { 0, 8589, 7118, 7, 10, UNI_CHRS } /* script=chorasmian */,
- { 36, 5508, 9836, 14, 4, UNI_PATSYN } /* patternsyntax=true */,
- { 2, 3836, 9656, 17, 4, UNI_MIAO } /* scriptextensions=miao */,
- { 25, 3097, 8195, 18, 8, UNI_DT__ISO } /* decompositiontype=isolated */,
- { 45, 5791, 5336, 13, 4, UNI_JG__BETH } /* joininggroup=beth */,
- { 3, 10048, 10150, 3, 2, UNI_NV__48 } /* nv=48 */,
- { 4, 4853, 1025, 15, 2, UNI_NFKDQC__N } /* nfkdquickcheck=no */,
- { 1, 10048, 8756, 3, 6, UNI_NV__900000 } /* nv=900000 */,
- { 7, 9346, 36, 4, 1, UNI_IDC } /* idc=t */,
- { 1, 10024, 5438, 3, 14, UNI_SK } /* gc=modifiersymbol */,
- { 0, 9444, 7923, 4, 3, UNI_AGE__4 } /* age=4.0 */,
- { 1, 9488, 4369, 4, 6, UNI_INSYRIAC } /* blk=syriac */,
- { 69, 4916, 9004, 4, 4, UNI_TELU } /* istelugu */,
- { 8, 184, 1287, 2, 2, UNI_UPPERCASELETTER } /* islu */,
- { 0, 8589, 2203, 7, 4, UNI_SC__HAN } /* script=hani */,
- { 1, 6928, 36, 11, 1, UNI_SD } /* softdotted=t */,
- { 14, 9508, 9472, 4, 3, UNI_CCC__202 } /* ccc=atb */,
- { 3, 3836, 9816, 17, 4, UNI_TAVT } /* scriptextensions=tavt */,
- { 0, 9277, 9620, 3, 4, UNI_LANA } /* sc=lana */,
- { 0, 7739, 1, 8, 1, -UNI_IDS } /* idstart=n */,
- { 5, 7218, 8449, 10, 2, UNI_LB__HY } /* linebreak=hy */,
- { 49, 8780, 3331, 6, 18, UNI_ORNAMENTALDINGBATS } /* block=ornamentaldingbats */,
- { 0, 8780, 8091, 6, 8, UNI_INARMENIAN } /* block=armenian */,
- { 41, 9488, 4049, 4, 11, UNI_GEORGIANEXT } /* blk=georgianext */,
- { 0, 9351, 1, 4, 1, -UNI_IDS } /* ids=n */,
- { 49, 9444, 10078, 4, 3, UNI_AGE__2_DOT_1 } /* age=v21 */,
- { 134, 10009, 1309, 3, 3, UNI_DT__SUB } /* dt=sub */,
- { 296, 9277, 9464, 3, 4, UNI_ARMN } /* sc=armn */,
- { 6, 8780, 7168, 6, 10, UNI_INDIVESAKURU } /* block=divesakuru */,
- { 0, 8694, 3, 7, 1, -UNI_XPOSIXSPACE } /* wspace=f */,
- { 100, 10132, 7729, 3, 9, UNI_WB__WSEGSPACE } /* wb=wsegspace */,
- { 1, 5791, 5480, 13, 14, UNI_JG__NOJOININGGROUP } /* joininggroup=nojoininggroup */,
- { 257, 3259, 9836, 18, 4, UNI_IDSB } /* idsbinaryoperator=true */,
- { 590, 5986, 9961, 13, 3, UNI_NV__3_SLASH_5 } /* numericvalue=3/5 */,
- { 2, 7218, 5536, 10, 14, UNI_LB__PO } /* linebreak=postfixnumeric */,
- { 39, 7428, 0, 4, 0, UNI_WARA } /* wara */,
- { 0, 6231, 8387, 3, 6, UNI_CJKEXTF } /* incjkextf */,
- { 0, 184, 8123, 2, 8, UNI_BUGI } /* isbuginese */,
- { 0, 8509, 811, 4, 20, UNI_ENCLOSEDIDEOGRAPHICSUP } /* inenclosedideographicsup */,
- { 1, 5986, 7922, 13, 2, UNI_NV__24 } /* numericvalue=24 */,
- { 0, 9277, 7630, 3, 9, UNI_TALU } /* sc=newtailue */,
- { 32, 8780, 2741, 6, 19, UNI_JAMOEXTB } /* block=hanguljamoextendedb */,
- { 2, 10346, 1182, 5, 4, UNI_ANY } /* isunicode */,
- { 128, 5060, 36, 14, 1, UNI_CI } /* caseignorable=t */,
- { 0, 9508, 9151, 5, 4, UNI_CCC__24 } /* ccc=ccc24 */,
- { 0, 9071, 36, 4, 1, UNI_XPOSIXXDIGIT } /* hex=t */,
- { 0, 6231, 540, 3, 29, UNI_CJKEXTB } /* incjkunifiedideographsextensionb */,
- { 107, 10296, 0, 3, 0, UNI_P } /* isp */,
- { 0, 8115, 0, 8, 0, UNI_BASS } /* bassavah */,
- { 16, 7540, 0, 9, 0, UNI_ext_values_index } /* extender= */,
- { 128, 184, 9484, 2, 4, UNI_BHKS } /* isbhks */,
- { 21, 8864, 26, 6, 1, UNI_EMOJI } /* emoji=y */,
- { 0, 5986, 5648, 13, 11, UNI_NV__10000000000 } /* numericvalue=10000000000 */,
- { 0, 4340, 0, 13, 0, UNI_MATHOPERATORS } /* mathoperators */,
- { 0, 9768, 7359, 5, 9, UNI_SAUR } /* scx=saurashtra */,
- { 6, 10132, 7612, 3, 9, UNI_WB__MB } /* wb=midnumlet */,
- { 66, 1066, 0, 2, 0, UNI_CASEDLETTER } /* lc */,
- { 0, 10027, 7112, 3, 3, UNI_JG__KAF } /* jg=kaf */,
- { 0, 8876, 0, 4, 0, UNI_GOTH } /* goth */,
- { 6, 6231, 2141, 3, 7, UNI_INCYRILLIC } /* incyrillic */,
- { 0, 8589, 1165, 9, 2, UNI_SC__SHRD } /* script=shrd */,
- { 40, 1552, 10180, 9, 2, UNI_ZS } /* category=zs */,
- { 0, 4033, 5713, 16, 13, UNI_XPOSIXDIGIT } /* generalcategory=decimalnumber */,
- { 577, 9015, 9255, 5, 5, -UNI_IDEO } /* ideo=false */,
- { 0, 8780, 9688, 6, 3, UNI_INNKO } /* block=nko */,
- { 132, 9277, 8414, 3, 7, UNI_ELBA } /* sc=elbasan */,
- { 0, 10048, 8720, 3, 3, UNI_NV__400 } /* nv=400 */,
- { 2, 1828, 26, 6, 1, UNI_CASED } /* cased=y */,
- { 0, 184, 8912, 2, 4, UNI_KHOJ } /* iskhoj */,
- { 32, 9768, 6181, 4, 12, UNI_GONG } /* scx=gunjalagondi */,
- { 21, 184, 6517, 2, 12, UNI_PLAYINGCARDS } /* isplayingcards */,
- { 0, 3097, 2280, 18, 3, UNI_DT__ISO } /* decompositiontype=iso */,
- { 0, 4033, 6598, 16, 11, UNI_CASEDLETTER } /* generalcategory=casedletter */,
- { 10, 8780, 4868, 6, 15, UNI_NARB } /* block=oldnortharabian */,
- { 0, 184, 3133, 2, 13, UNI_EMOD } /* isemojimodifier */,
- { 68, 10048, 8720, 3, 5, UNI_NV__40000 } /* nv=40000 */,
- { 4, 10048, 7819, 3, 8, UNI_NV__3_SLASH_16 } /* nv=1.88e-01 */,
- { 2, 9488, 6620, 4, 11, UNI_DOMINO } /* blk=dominotiles */,
- { 428, 9345, 1, 5, 1, -UNI_XIDC } /* xidc=n */,
- { 0, 3836, 2855, 17, 9, UNI_MONG } /* scriptextensions=mongolian */,
- { 5, 10333, 8277, 4, 6, UNI_SPECIALS } /* isspecials */,
- { 32, 10048, 7867, 3, 8, UNI_NV__1_SLASH_32 } /* nv=3.12e-02 */,
- { 0, 7088, 32, 10, 2, UNI_BC__CS } /* bidiclass=cs */,
- { 1, 9488, 7458, 4, 10, UNI_YIRADICALS } /* blk=yiradicals */,
- { 0, 4838, 0, 15, 0, UNI_nfkcqc_values_index } /* nfkcquickcheck= */,
- { 1, 8589, 8115, 7, 8, UNI_BASS } /* script=bassavah */,
- { 71, 7438, 4305, 10, 5, UNI_WB__XX } /* wordbreak=other */,
- { 1, 9277, 8498, 3, 4, UNI_SC__MULT } /* sc=mult */,
- { 3, 5817, 0, 13, 0, UNI_ZL } /* lineseparator */,
- { 5, 9277, 9832, 3, 4, UNI_TIBT } /* sc=tibt */,
- { 1, 10033, 10156, 3, 2, UNI_LB__BK } /* lb=bk */,
- { 0, 10030, 6664, 3, 11, UNI_JT__D } /* jt=dualjoining */,
- { 17, 184, 8344, 2, 7, UNI_BENG } /* isbengali */,
- { 108, 6231, 115, 4, 33, UNI_DIACRITICALSFORSYMBOLS } /* incombiningdiacriticalmarksforsymbols */,
- { 0, 9277, 8666, 3, 4, UNI_SC__TIRH } /* sc=tirh */,
- { 39, 184, 6110, 3, 11, UNI_CYRILLICEXTB } /* iscyrillicextb */,
- { 1, 6972, 0, 4, 0, UNI_SYLO } /* sylo */,
- { 60, 84, 0, 4, 0, UNI_MATH } /* math */,
- { 3, 1552, 3985, 9, 16, UNI_PE } /* category=closepunctuation */,
- { 0, 9768, 9032, 4, 6, UNI_WCHO } /* scx=wancho */,
- { 5, 7325, 9979, 3, 3, UNI_IN__6_DOT_1 } /* in=6.1 */,
- { 0, 1269, 9836, 25, 4, UNI_COMPEX } /* fullcompositionexclusion=true */,
- { 0, 6231, 4002, 3, 15, UNI_CYPRIOTSYLLABARY } /* incypriotsyllabary */,
- { 16, 7438, 34, 10, 6, UNI_WB__EXTEND } /* wordbreak=extend */,
- { 0, 9275, 2389, 5, 20, UNI_INSC__CONSONANTWITHSTACKER } /* insc=consonantwithstacker */,
- { 20, 9277, 9664, 3, 4, UNI_MRO } /* sc=mroo */,
- { 0, 1417, 6445, 24, 12, UNI_CCC__0 } /* canonicalcombiningclass=notreordered */,
- { 100, 9277, 9564, 3, 4, UNI_SC__GONM } /* sc=gonm */,
- { 0, 9444, 7867, 4, 3, UNI_AGE__3_DOT_1 } /* age=3.1 */,
- { 0, 4145, 0, 16, 0, UNI_LINEARBIDEOGRAMS } /* linearbideograms */,
- { 1, 7076, 3938, 3, 15, UNI_BOPOMOFOEXT } /* inbopomofoextended */,
- { 1, 8780, 7428, 6, 10, UNI_INWARANGCITI } /* block=warangciti */,
- { 1, 5564, 0, 14, 0, UNI_qmark_values_index } /* quotationmark= */,
- { 27, 9444, 7469, 4, 3, UNI_AGE__5 } /* age=5.0 */,
- { 0, 9488, 8203, 4, 8, UNI_JAMOEXTA } /* blk=jamoexta */,
- { 16, 8780, 1654, 6, 6, UNI_INHANGUL } /* block=hangul */,
- { 1, 8884, 10135, 4, 3, UNI_EXT } /* ext=yes */,
- { 0, 9002, 0, 4, 0, UNI_TELU } /* telu */,
- { 1, 10003, 10135, 3, 3, UNI_CI } /* ci=yes */,
- { 3, 9768, 4149, 5, 3, UNI_SARB } /* scx=sarb */,
- { 1, 5986, 7963, 13, 8, UNI_NV__11_SLASH_2 } /* numericvalue=5.50e+00 */,
- { 549, 6231, 7140, 4, 8, UNI_COMPATJAMO } /* incompatjamo */,
- { 0, 8780, 3241, 6, 18, UNI_GEORGIANSUP } /* block=georgiansupplement */,
- { 3, 4643, 36, 15, 1, UNI_ECOMP } /* emojicomponent=t */,
- { 0, 1269, 9255, 25, 5, -UNI_COMPEX } /* fullcompositionexclusion=false */,
- { 4, 1552, 467, 9, 11, UNI_P } /* category=punctuation */,
- { 3, 6241, 36, 12, 1, UNI_JT__T } /* joiningtype=t */,
- { 3, 21, 8463, 2, 7, UNI_KALI } /* inkayahli */,
- { 334, 9508, 2449, 4, 4, UNI_CCC__L } /* ccc=left */,
- { 41, 10033, 8251, 3, 8, UNI_LB__NL } /* lb=nextline */,
- { 6, 9335, 0, 5, 0, UNI_TAKR } /* takri */,
- { 2, 9488, 861, 4, 6, UNI_ARROWS } /* blk=arrows */,
- { 0, 9350, 9836, 5, 4, UNI_XIDS } /* xids=true */,
- { 7, 5986, 7933, 13, 2, UNI_NV__17 } /* numericvalue=17 */,
- { 0, 184, 8107, 2, 4, UNI_BALI } /* isbali */,
- { 0, 8780, 8617, 6, 7, UNI_INSOYOMBO } /* block=soyombo */,
- { 0, 10048, 7955, 3, 8, UNI_NV__1_SLASH_20 } /* nv=5.00e-02 */,
- { 4, 3836, 8187, 17, 8, UNI_HIRA } /* scriptextensions=hiragana */,
- { 512, 3836, 8611, 18, 3, UNI_SIDD } /* scriptextensions=sidd */,
- { 0, 9488, 8912, 4, 6, UNI_INKHOJKI } /* blk=khojki */,
- { 3, 9444, 0, 4, 0, UNI_age_values_index } /* age= */,
- { 67, 7666, 0, 9, 0, UNI_ORKH } /* oldturkic */,
- { 1, 10333, 4370, 3, 5, UNI_SYRC } /* issyriac */,
- { 399, 184, 8694, 2, 6, UNI_XPOSIXSPACE } /* iswspace */,
- { 64, 184, 1594, 2, 14, UNI_MUSIC } /* ismusicalsymbols */,
- { 16, 9488, 6505, 4, 8, UNI_PHAISTOS } /* blk=phaistos */,
- { 4, 9277, 7513, 3, 9, UNI_BHKS } /* sc=bhaiksuki */,
- { 164, 3836, 8337, 17, 7, UNI_AVST } /* scriptextensions=avestan */,
- { 5, 8589, 7513, 7, 9, UNI_BHKS } /* script=bhaiksuki */,
- { 18, 9508, 23, 4, 2, UNI_CCC__AL } /* ccc=al */,
- { 0, 8780, 6409, 6, 12, UNI_INMENDEKIKAKUI } /* block=mendekikakui */,
- { 104, 9768, 9752, 4, 4, UNI_ROHG } /* scx=rohg */,
- { 234, 2010, 0, 22, 0, UNI_MISCTECHNICAL } /* miscellaneoustechnical */,
- { 0, 3836, 2203, 17, 4, UNI_HAN } /* scriptextensions=hani */,
- { 6, 10333, 107, 3, 5, UNI_S } /* issymbol */,
- { 0, 6851, 0, 11, 0, UNI_LO } /* otherletter */,
- { 1, 5791, 4203, 13, 3, UNI_JG__LAM } /* joininggroup=lam */,
- { 0, 7438, 4360, 10, 9, UNI_WB__EB } /* wordbreak=emodifier */,
- { 263, 10027, 2203, 3, 21, UNI_JG__HANIFIROHINGYAKINNAYA } /* jg=hanifirohingyakinnaya */,
- { 0, 7218, 3985, 10, 16, UNI_LB__CL } /* linebreak=closepunctuation */,
- { 0, 9277, 9872, 3, 4, UNI_XPEO } /* sc=xpeo */,
- { 128, 10320, 3379, 7, 5, UNI_XPOSIXSPACE } /* isxperlspace */,
- { 280, 9488, 1878, 4, 19, UNI_CJKCOMPATIDEOGRAPHS } /* blk=cjkcompatideographs */,
- { 0, 8780, 2287, 6, 7, UNI_INSINHALA } /* block=sinhala */,
- { 2, 10033, 8701, 3, 7, UNI_LB__ZW } /* lb=zwspace */,
- { 7, 9488, 1594, 4, 14, UNI_MUSIC } /* blk=musicalsymbols */,
- { 64, 10288, 96, 8, 5, UNI_XPOSIXALPHA } /* isxposixalpha */,
- { 0, 184, 3169, 2, 18, UNI_ETHIOPICSUP } /* isethiopicsupplement */,
- { 0, 8688, 7060, 4, 8, UNI_ARABICEXTA } /* isarabicexta */,
- { 38, 10033, 6675, 3, 11, UNI_LB__EX } /* lb=exclamation */,
- { 12, 6231, 8394, 3, 6, UNI_CJKEXTG } /* incjkextg */,
- { 1, 9277, 9896, 3, 4, UNI_SC__ZYYY } /* sc=zyyy */,
- { 0, 5986, 9372, 13, 4, UNI_NV__1_SLASH_40 } /* numericvalue=1/40 */,
- { 2, 21, 9453, 3, 3, UNI_INAHOM } /* inahom */,
- { 512, 9277, 9752, 3, 4, UNI_SC__ROHG } /* sc=rohg */,
- { 11, 9444, 7931, 4, 3, UNI_AGE__4_DOT_1 } /* age=4.1 */,
- { 0, 4838, 10135, 15, 3, UNI_NFKCQC__Y } /* nfkcquickcheck=yes */,
- { 0, 8780, 3683, 6, 16, UNI_ETHIOPICEXT } /* block=ethiopicextended */,
- { 7, 9508, 1219, 4, 3, UNI_CCC__214 } /* ccc=ata */,
- { 0, 9277, 9460, 3, 4, UNI_ARMI } /* sc=armi */,
- { 512, 184, 2666, 3, 18, UNI_COUNTINGROD } /* iscountingrodnumerals */,
- { 3, 9277, 1900, 3, 6, UNI_SC__ZYYY } /* sc=common */,
- { 0, 5986, 8043, 13, 8, UNI_NV__4_SLASH_5 } /* numericvalue=8.00e-01 */,
- { 1, 7218, 6073, 10, 12, UNI_LB__SY } /* linebreak=breaksymbols */,
- { 0, 3836, 2140, 17, 8, UNI_CYRL } /* scriptextensions=cyrillic */,
- { 2, 867, 0, 28, 0, UNI_PHONETICEXTSUP } /* phoneticextensionssupplement */,
- { 2, 8780, 1033, 6, 27, UNI_ENCLOSEDCJK } /* block=enclosedcjklettersandmonths */,
- { 0, 8449, 26, 7, 1, UNI_HYPHEN } /* hyphen=y */,
- { 4, 1166, 3, 26, 1, -UNI_DI } /* defaultignorablecodepoint=f */,
- { 0, 1273, 26, 21, 1, UNI_CE } /* compositionexclusion=y */,
- { 132, 10048, 7875, 3, 8, UNI_NV__1_SLASH_32 } /* nv=3.13e-02 */,
- { 17, 8589, 9708, 7, 4, UNI_SC__ORYA } /* script=orya */,
- { 0, 9997, 2268, 3, 3, UNI_BC__PDI } /* bc=pdi */,
- { 44, 9265, 36, 5, 1, UNI_IDST } /* idst=t */,
- { 35, 1552, 4958, 9, 15, UNI_UPPERCASELETTER } /* category=uppercaseletter */,
- { 6, 9556, 73, 4, 2, UNI_WB__EB } /* gcb=em */,
- { 0, 10048, 8011, 3, 8, UNI_NV__13_SLASH_2 } /* nv=6.50e+00 */,
- { 1, 9250, 1025, 5, 2, -UNI_EMOD } /* emod=no */,
- { 0, 5986, 7763, 13, 8, UNI_NV__1_SLASH_8 } /* numericvalue=1.25e-01 */,
- { 0, 9020, 26, 6, 1, UNI_XPOSIXUPPER } /* upper=y */,
- { 0, 9277, 6277, 3, 4, UNI_SC__MAHJ } /* sc=mahj */,
- { 0, 5037, 3, 9, 1, -UNI_XPOSIXXDIGIT } /* hexdigit=f */,
- { 135, 9277, 1677, 3, 5, UNI_SC__LATN } /* sc=latin */,
- { 36, 10024, 1044, 3, 6, UNI_L } /* gc=letter */,
- { 15, 4033, 1066, 16, 2, UNI_CASEDLETTER } /* generalcategory=lc */,
- { 0, 10048, 8744, 3, 3, UNI_NV__700 } /* nv=700 */,
- { 0, 9508, 9166, 5, 4, UNI_CCC__27 } /* ccc=ccc27 */,
- { 3, 184, 6122, 3, 11, UNI_CYRILLICEXTC } /* iscyrillicextc */,
- { 64, 9262, 34, 3, 2, UNI_SB__EX } /* sb=ex */,
- { 0, 184, 9892, 2, 4, UNI_QAAI } /* iszinh */,
- { 1, 10024, 262, 3, 2, UNI_SM } /* gc=sm */,
- { 393, 9768, 7567, 4, 9, UNI_SIND } /* scx=khudawadi */,
- { 0, 10129, 1, 3, 1, -UNI_VS } /* vs=n */,
- { 2, 4369, 0, 9, 0, UNI_SYRIACSUP } /* syriacsup */,
- { 177, 21, 2590, 3, 18, UNI_ANCIENTGREEKNUMBERS } /* inancientgreeknumbers */,
- { 2, 3836, 4385, 17, 6, UNI_TANG } /* scriptextensions=tangut */,
- { 5, 10048, 8714, 3, 5, UNI_NV__30000 } /* nv=30000 */,
- { 2, 5986, 7747, 13, 8, UNI_NV__1_SLASH_10 } /* numericvalue=1.00e-01 */,
- { 1, 184, 9672, 2, 4, UNI_MYMR } /* ismymr */,
- { 1, 3836, 9065, 17, 5, UNI_ADLM } /* scriptextensions=adlam */,
- { 17, 8997, 9837, 6, 3, UNI_TERM } /* term=true */,
- { 0, 9556, 3385, 4, 17, UNI_RI } /* gcb=regionalindicator */,
- { 1, 7318, 9985, 10, 3, UNI_IN__7 } /* presentin=7.0 */,
- { 0, 10132, 6145, 3, 12, UNI_WB__EX } /* wb=extendnumlet */,
- { 0, 10333, 7292, 3, 6, UNI_SOGD } /* issogdian */,
- { 1, 7513, 0, 9, 0, UNI_BHKS } /* bhaiksuki */,
- { 0, 1114, 0, 25, 0, UNI_CWKCF } /* changeswhennfkccasefolded */,
- { 1, 3836, 7292, 18, 6, UNI_SOGD } /* scriptextensions=sogdian */,
- { 6, 1966, 2608, 22, 19, UNI_INSC__BRAHMIJOININGNUMBER } /* indicsyllabiccategory=brahmijoiningnumber */,
- { 3, 10033, 866, 3, 2, UNI_LB__SP } /* lb=sp */,
- { 22, 9488, 5200, 4, 7, UNI_KANASUP } /* blk=kanasup */,
- { 0, 184, 6253, 2, 5, UNI_KHMR } /* iskhmer */,
- { 4, 9664, 0, 3, 0, UNI_MRO } /* mro */,
- { 1, 1911, 0, 11, 0, UNI_NUMBERFORMS } /* numberforms */,
- { 3, 9768, 9600, 4, 4, UNI_KALI } /* scx=kali */,
- { 1, 10033, 4898, 3, 15, UNI_LB__OP } /* lb=openpunctuation */,
- { 1, 4033, 4245, 16, 10, UNI_SM } /* generalcategory=mathsymbol */,
- { 0, 8589, 7621, 7, 9, UNI_NBAT } /* script=nabataean */,
- { 5, 9488, 3938, 5, 7, UNI_INBOPOMOFO } /* blk=bopomofo */,
- { 0, 9488, 3115, 4, 18, UNI_DEVANAGARIEXT } /* blk=devanagariextended */,
- { 5, 117, 6, 3, 2, UNI_INIDC } /* inidc */,
- { 5, 9277, 3135, 5, 2, UNI_SC__KHOJ } /* sc=khoj */,
- { 598, 1319, 0, 25, 0, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* symbolsandpictographsexta */,
- { 0, 9768, 9580, 4, 4, UNI_HANO } /* scx=hano */,
- { 79, 8780, 1594, 6, 14, UNI_MUSIC } /* block=musicalsymbols */,
- { 0, 5791, 6157, 13, 12, UNI_JG__FINALSEMKATH } /* joininggroup=finalsemkath */,
- { 64, 4033, 4898, 16, 15, UNI_PS } /* generalcategory=openpunctuation */,
- { 1, 4989, 8674, 3, 6, UNI_UCASEXT } /* isucasext */,
- { 0, 184, 3785, 2, 10, UNI_MANI } /* ismanichaean */,
- { 0, 184, 1813, 3, 20, UNI_CWL } /* ischangeswhenlowercased */,
- { 0, 9740, 0, 4, 0, UNI_QAAI } /* qaai */,
- { 0, 5986, 8083, 13, 8, UNI_NV__11_SLASH_12 } /* numericvalue=9.17e-01 */,
- { 0, 9488, 1631, 4, 18, UNI_GEOMETRICSHAPESEXT } /* blk=geometricshapesext */,
- { 0, 184, 8463, 2, 7, UNI_KALI } /* iskayahli */,
- { 4, 10027, 4081, 3, 16, UNI_JG__HANIFIROHINGYAPA } /* jg=hanifirohingyapa */,
- { 0, 3836, 9512, 17, 4, UNI_CHRS } /* scriptextensions=chrs */,
- { 19, 7318, 7826, 10, 2, UNI_IN__12 } /* presentin=12 */,
- { 64, 9556, 262, 4, 2, UNI_GCB__SM } /* gcb=sm */,
- { 3, 10132, 5851, 3, 2, UNI_WB__ML } /* wb=ml */,
- { 1, 9488, 1586, 5, 13, UNI_BYZANTINEMUSIC } /* blk=byzantinemusic */,
- { 3, 3133, 0, 18, 0, UNI_ebase_values_index } /* emojimodifierbase= */,
- { 206, 10027, 9355, 3, 5, UNI_JG__ZHAIN } /* jg=zhain */,
- { 204, 9277, 3937, 3, 4, UNI_SC__BOPO } /* sc=bopo */,
- { 1, 10291, 9225, 5, 5, UNI_POSIXCNTRL } /* posixcntrl */,
- { 3, 34, 0, 3, 0, UNI_EXT } /* ext */,
- { 25, 7088, 2449, 10, 11, UNI_BC__L } /* bidiclass=lefttoright */,
- { 2, 5986, 9958, 13, 3, UNI_NV__3_SLASH_4 } /* numericvalue=3/4 */,
- { 66, 4973, 0, 15, 0, UNI_VEDICEXT } /* vedicextensions */,
- { 1, 9444, 9401, 4, 3, UNI_AGE__3 } /* age=3.0 */,
- { 41, 9014, 0, 6, 0, UNI_uideo_values_index } /* uideo= */,
- { 26, 9768, 3079, 4, 4, UNI_COPT } /* scx=copt */,
- { 0, 10024, 6873, 3, 11, UNI_SO } /* gc=othersymbol */,
- { 14, 9277, 6484, 3, 4, UNI_HUNG } /* sc=hung */,
- { 0, 1834, 9836, 22, 4, UNI_CWT } /* changeswhentitlecased=true */,
- { 0, 6277, 0, 7, 0, UNI_MAHJONG } /* mahjong */,
- { 41, 9015, 1025, 5, 2, -UNI_IDEO } /* ideo=no */,
- { 208, 9488, 8219, 4, 8, UNI_INJAVANESE } /* blk=javanese */,
- { 1, 9488, 1033, 4, 11, UNI_ENCLOSEDCJK } /* blk=enclosedcjk */,
- { 5, 9277, 6193, 3, 4, UNI_HEBR } /* sc=hebr */,
- { 0, 1217, 0, 2, 0, UNI_SK } /* sk */,
- { 4, 10024, 7408, 3, 10, UNI_CN } /* gc=unassigned */,
- { 0, 10030, 6753, 4, 10, UNI_JT__L } /* jt=leftjoining */,
- { 0, 9277, 9032, 3, 6, UNI_WCHO } /* sc=wancho */,
- { 16, 9444, 5648, 4, 2, UNI_AGE__10 } /* age=10 */,
- { 0, 2280, 9705, 3, 3, UNI_ORKH } /* isorkh */,
- { 0, 4658, 26, 15, 1, UNI_GREXT } /* graphemeextend=y */,
- { 0, 9997, 3187, 3, 18, UNI_BC__ET } /* bc=europeanterminator */,
- { 329, 7155, 2204, 3, 13, UNI_ROHG } /* ishanifirohingya */,
- { 0, 9508, 8799, 5, 5, UNI_CCC__107 } /* ccc=ccc107 */,
- { 74, 9508, 9216, 5, 4, UNI_CCC__84 } /* ccc=ccc84 */,
- { 1, 8589, 8463, 7, 7, UNI_SC__KALI } /* script=kayahli */,
- { 0, 10291, 467, 5, 5, UNI_POSIXPUNCT } /* posixpunct */,
- { 0, 8780, 2855, 6, 19, UNI_MONGOLIANSUP } /* block=mongoliansupplement */,
- { 0, 5986, 7930, 13, 2, UNI_NV__14 } /* numericvalue=14 */,
- { 1, 8589, 3894, 8, 10, UNI_SGNW } /* script=signwriting */,
- { 88, 10182, 10215, 6, 21, UNI__PERL_IS_IN_MULTI_CHAR_FOLD } /* _perl_is_in_multi_char_fold */,
- { 14, 8589, 3115, 7, 4, UNI_SC__DEVA } /* script=deva */,
- { 5, 7318, 5648, 10, 2, UNI_IN__10 } /* presentin=10 */,
- { 9, 6229, 9836, 12, 4, UNI_JOINC } /* joincontrol=true */,
- { 4, 9508, 8793, 5, 5, UNI_CCC__103 } /* ccc=ccc103 */,
- { 10, 9488, 1944, 4, 22, UNI_EARLYDYNASTICCUNEIFORM } /* blk=earlydynasticcuneiform */,
- { 1, 9508, 9949, 4, 3, UNI_CCC__DA } /* ccc=234 */,
- { 224, 3836, 9620, 17, 4, UNI_LANA } /* scriptextensions=lana */,
- { 292, 9488, 4433, 4, 15, UNI_ARABICEXTA } /* blk=arabicextendeda */,
- { 0, 2224, 8625, 3, 6, UNI_SUPPUAA } /* insuppuaa */,
- { 1, 184, 8387, 3, 6, UNI_CJKEXTF } /* iscjkextf */,
- { 1, 3424, 1129, 3, 3, UNI_UCAS } /* inucas */,
- { 516, 5508, 10135, 14, 3, UNI_PATSYN } /* patternsyntax=yes */,
- { 5, 8688, 27, 3, 2, UNI_ALL } /* isall */,
- { 0, 184, 8876, 2, 6, UNI_GOTH } /* isgothic */,
- { 0, 5739, 36, 13, 1, UNI_GRBASE } /* graphemebase=t */,
- { 2, 9556, 4305, 4, 5, UNI_GCB__XX } /* gcb=other */,
- { 21, 21, 1677, 2, 23, UNI_LATINEXTADDITIONAL } /* inlatinextendedadditional */,
- { 0, 184, 400, 2, 6, UNI_CF } /* isformat */,
- { 261, 7739, 0, 8, 0, UNI_ids_values_index } /* idstart= */,
- { 0, 21, 8906, 2, 6, UNI_KANBUN } /* inkanbun */,
- { 37, 21, 5214, 2, 14, UNI_KANGXI } /* inkangxiradicals */,
- { 334, 9235, 26, 5, 1, UNI_CWCM } /* cwcm=y */,
- { 37, 8780, 6253, 6, 12, UNI_KHMERSYMBOLS } /* block=khmersymbols */,
- { 0, 10048, 7883, 3, 8, UNI_NV__1_SLASH_320 } /* nv=3.13e-03 */,
- { 36, 4033, 10170, 16, 2, UNI_CASEDLETTER } /* generalcategory=l_ */,
- { 0, 184, 4369, 2, 16, UNI_SYRIACSUP } /* issyriacsupplement */,
- { 5, 8688, 7506, 4, 7, UNI_ARABICPFB } /* isarabicpfb */,
- { 0, 7739, 0, 7, 0, UNI_IDS } /* idstart */,
- { 1, 184, 6939, 2, 11, UNI_SORA } /* issorasompeng */,
- { 0, 7088, 2449, 10, 20, UNI_BC__LRE } /* bidiclass=lefttorightembedding */,
- { 0, 1966, 2646, 22, 19, UNI_INSC__CONSONANTHEADLETTER } /* indicsyllabiccategory=consonantheadletter */,
- { 135, 7218, 1822, 10, 2, UNI_LB__NL } /* linebreak=nl */,
- { 1, 9768, 2409, 4, 10, UNI_GLAG } /* scx=glagolitic */,
- { 0, 8589, 4883, 7, 15, UNI_SARB } /* script=oldsoutharabian */,
- { 207, 3133, 0, 5, 0, UNI_EMOJI } /* emoji */,
- { 5, 9444, 7754, 4, 2, UNI_AGE__11 } /* age=11 */,
- { 0, 4033, 4583, 16, 15, UNI_PD } /* generalcategory=dashpunctuation */,
- { 32, 5522, 0, 14, 0, UNI_PHONETICEXTSUP } /* phoneticextsup */,
- { 128, 9508, 1755, 4, 2, UNI_CCC__DB } /* ccc=db */,
- { 0, 9488, 6840, 4, 11, UNI_INNANDINAGARI } /* blk=nandinagari */,
- { 392, 1537, 3481, 24, 12, UNI_INPC__LEFTANDRIGHT } /* indicpositionalcategory=leftandright */,
- { 0, 8997, 26, 5, 1, UNI_TERM } /* term=y */,
- { 1, 9277, 9748, 3, 4, UNI_RJNG } /* sc=rjng */,
- { 0, 1790, 3, 22, 1, -UNI_CWCM } /* changeswhencasemapped=f */,
- { 0, 184, 6133, 2, 12, UNI_ETHIOPICEXTA } /* isethiopicexta */,
- { 26, 3241, 0, 18, 0, UNI_GEORGIANSUP } /* georgiansupplement */,
- { 0, 2280, 7659, 4, 7, UNI_PERM } /* isoldpermic */,
- { 8, 5986, 7782, 13, 1, UNI_NV__3 } /* numericvalue=3 */,
- { 9, 9488, 9330, 4, 5, UNI_INTAILE } /* blk=taile */,
- { 33, 6229, 3, 12, 1, -UNI_JOINC } /* joincontrol=f */,
- { 128, 184, 1879, 3, 18, UNI_CJKCOMPATIDEOGRAPHS } /* iscjkcompatideographs */,
- { 3, 10030, 6708, 3, 11, UNI_JT__C } /* jt=joincausing */,
- { 141, 6231, 570, 3, 29, UNI_CJKEXTC } /* incjkunifiedideographsextensionc */,
- { 32, 9277, 3025, 3, 8, UNI_CHER } /* sc=cherokee */,
- { 0, 3836, 8344, 17, 4, UNI_BENG } /* scriptextensions=beng */,
- { 2, 3151, 9836, 18, 4, UNI_EPRES } /* emojipresentation=true */,
- { 0, 9262, 751, 3, 2, UNI_SB__CL } /* sb=cl */,
- { 37, 6231, 8373, 3, 6, UNI_CJKEXTD } /* incjkextd */,
- { 4, 3836, 9793, 18, 3, UNI_SOGO } /* scriptextensions=sogo */,
- { 1, 3836, 8456, 17, 7, UNI_KNDA } /* scriptextensions=kannada */,
- { 4, 9488, 4385, 4, 6, UNI_INTANGUT } /* blk=tangut */,
- { 17, 8428, 0, 7, 0, UNI_GRAN } /* grantha */,
- { 48, 10006, 3, 3, 1, -UNI_DI } /* di=f */,
- { 32, 1552, 1529, 11, 7, UNI__PERL_SURROGATE } /* category=surrogate */,
- { 18, 10313, 3379, 7, 5, UNI_XPOSIXBLANK } /* ishorizspace */,
- { 0, 8589, 3025, 7, 4, UNI_CHER } /* script=cher */,
- { 193, 9270, 6983, 5, 11, UNI_INPC__TOPANDRIGHT } /* inpc=topandright */,
- { 0, 2779, 10135, 19, 3, UNI_IDST } /* idstrinaryoperator=yes */,
- { 0, 10027, 5424, 3, 14, UNI_JG__MANICHAEANYODH } /* jg=manichaeanyodh */,
- { 1, 10296, 468, 3, 4, UNI_P } /* ispunct */,
- { 0, 9508, 9161, 5, 4, UNI_CCC__26 } /* ccc=ccc26 */,
- { 290, 5986, 8744, 13, 2, UNI_NV__70 } /* numericvalue=70 */,
- { 1, 7218, 4898, 10, 15, UNI_LB__OP } /* linebreak=openpunctuation */,
- { 0, 7088, 3205, 10, 18, UNI_BC__FSI } /* bidiclass=firststrongisolate */,
- { 3, 6025, 0, 12, 0, UNI_ALPHABETICPF } /* alphabeticpf */,
- { 0, 9768, 9065, 4, 5, UNI_ADLM } /* scx=adlam */,
- { 257, 8519, 0, 9, 0, UNI_NFKDQC__N } /* nfkdqc=no */,
- { 4, 9488, 3785, 4, 10, UNI_INMANICHAEAN } /* blk=manichaean */,
- { 0, 117, 447, 3, 17, UNI_IDEOGRAPHICSYMBOLS } /* inideographicsymbols */,
- { 10, 8780, 867, 6, 28, UNI_PHONETICEXTSUP } /* block=phoneticextensionssupplement */,
- { 33, 8589, 9008, 7, 6, UNI_SC__THAA } /* script=thaana */,
- { 1, 2314, 0, 3, 0, UNI_XPOSIXXDIGIT } /* hex */,
- { 1, 9508, 7754, 4, 2, UNI_CCC__11 } /* ccc=11 */,
- { 34, 5791, 5908, 13, 13, UNI_JG__MANICHAEANTAW } /* joininggroup=manichaeantaw */,
- { 0, 3836, 8123, 17, 4, UNI_BUGI } /* scriptextensions=bugi */,
- { 118, 10048, 7891, 3, 8, UNI_NV__1_SLASH_3 } /* nv=3.33e-01 */,
- { 0, 8575, 1025, 7, 2, -UNI_PATSYN } /* patsyn=no */,
- { 0, 184, 1087, 2, 26, UNI_PCM } /* isprependedconcatenationmark */,
- { 0, 9015, 10135, 5, 3, UNI_IDEO } /* ideo=yes */,
- { 75, 10296, 468, 3, 10, UNI_P } /* ispunctuation */,
- { 108, 5986, 8756, 13, 5, UNI_NV__90000 } /* numericvalue=90000 */,
- { 32, 8589, 8652, 7, 7, UNI_TAVT } /* script=taiviet */,
- { 4, 2224, 1320, 3, 24, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* insymbolsandpictographsexta */,
- { 90, 8435, 9255, 7, 5, -UNI_GRBASE } /* grbase=false */,
- { 30, 1552, 3277, 9, 18, UNI_PI } /* category=initialpunctuation */,
- { 0, 8344, 0, 4, 0, UNI_BENG } /* beng */,
- { 1, 3169, 0, 8, 0, UNI_ETHI } /* ethiopic */,
- { 1, 1417, 8714, 24, 2, UNI_CCC__30 } /* canonicalcombiningclass=30 */,
- { 0, 9508, 16, 4, 1, UNI_CCC__B } /* ccc=b */,
- { 593, 9488, 9325, 4, 5, UNI_INRUNIC } /* blk=runic */,
- { 1, 7218, 5298, 10, 14, UNI_LB__BK } /* linebreak=mandatorybreak */,
- { 96, 3439, 0, 12, 0, UNI_SMALLKANAEXT } /* smallkanaext */,
- { 321, 3836, 9002, 17, 6, UNI_TELU } /* scriptextensions=telugu */,
- { 2, 9768, 9504, 4, 4, UNI_CANS } /* scx=cans */,
- { 338, 8688, 9453, 3, 3, UNI_AHOM } /* isahom */,
- { 0, 7318, 7826, 10, 4, UNI_IN__12 } /* presentin=12.0 */,
- { 518, 8688, 980, 3, 26, UNI_ALPHABETICPF } /* isalphabeticpresentationforms */,
- { 0, 2409, 0, 10, 0, UNI_GLAG } /* glagolitic */,
- { 1, 9508, 8813, 4, 3, UNI_CCC__122 } /* ccc=122 */,
- { 185, 1417, 1219, 24, 3, UNI_CCC__214 } /* canonicalcombiningclass=ata */,
- { 47, 9444, 9970, 4, 3, UNI_AGE__5_DOT_2 } /* age=5.2 */,
- { 70, 9260, 9836, 5, 4, UNI_IDSB } /* idsb=true */,
- { 416, 2224, 2913, 3, 18, UNI_SUNDANESESUP } /* insundanesesupplement */,
- { 0, 10048, 5648, 3, 5, UNI_NV__10000 } /* nv=10000 */,
- { 0, 10027, 5869, 3, 13, UNI_JG__MANICHAEANMEM } /* jg=manichaeanmem */,
- { 72, 10132, 5585, 3, 2, UNI_WB__EB } /* wb=eb */,
- { 1, 6241, 6752, 12, 11, UNI_JT__L } /* joiningtype=leftjoining */,
- { 129, 7318, 7877, 10, 2, UNI_IN__13 } /* presentin=13 */,
- { 0, 8575, 26, 7, 1, UNI_PATSYN } /* patsyn=y */,
- { 68, 9270, 4988, 5, 15, UNI_LOE } /* inpc=visualorderleft */,
- { 8, 5674, 9836, 13, 4, UNI_BIDIM } /* bidimirrored=true */,
- { 1, 5746, 0, 5, 0, UNI_EBASE } /* ebase */,
- { 7, 10027, 9280, 3, 5, UNI_JG__KHAPH } /* jg=khaph */,
- { 0, 9277, 8924, 3, 4, UNI_LEPC } /* sc=lepc */,
- { 0, 9277, 9676, 3, 4, UNI_NARB } /* sc=narb */,
- { 0, 21, 5284, 2, 14, UNI_LISUSUP } /* inlisusupplement */,
- { 2, 10024, 3349, 3, 18, UNI_ZP } /* gc=paragraphseparator */,
- { 84, 10126, 3493, 3, 18, UNI_VO__TR } /* vo=transformedrotated */,
- { 0, 9277, 9660, 3, 4, UNI_SC__MLYM } /* sc=mlym */,
- { 192, 9768, 3895, 5, 3, UNI_SGNW } /* scx=sgnw */,
- { 25, 6229, 0, 12, 0, UNI_joinc_values_index } /* joincontrol= */,
- { 0, 184, 1769, 3, 20, UNI_CWCF } /* ischangeswhencasefolded */,
- { 0, 8780, 1901, 7, 21, UNI_INDICNUMBERFORMS } /* block=commonindicnumberforms */,
- { 0, 9768, 7666, 4, 9, UNI_ORKH } /* scx=oldturkic */,
- { 5, 8780, 8463, 6, 7, UNI_KALI } /* block=kayahli */,
- { 6, 8147, 9836, 8, 4, UNI_EXTPICT } /* extpict=true */,
- { 0, 8780, 2245, 6, 11, UNI_INMEETEIMAYEK } /* block=meeteimayek */,
- { 3, 9277, 9692, 3, 4, UNI_NSHU } /* sc=nshu */,
- { 2, 2245, 0, 11, 0, UNI_MTEI } /* meeteimayek */,
- { 512, 9508, 8807, 4, 3, UNI_CCC__118 } /* ccc=118 */,
- { 135, 9270, 2988, 5, 19, UNI_INPC__TOPANDBOTTOMANDLEFT } /* inpc=topandbottomandleft */,
- { 1, 2485, 0, 4, 0, UNI_MONG } /* mong */,
- { 0, 9488, 3457, 4, 11, UNI_TAIXUANJING } /* blk=taixuanjing */,
- { 150, 10048, 5648, 3, 8, UNI_NV__10000000 } /* nv=10000000 */,
- { 2, 9488, 8888, 4, 6, UNI_INHATRAN } /* blk=hatran */,
- { 0, 2280, 8562, 3, 6, UNI_OSMA } /* isosmanya */,
- { 1, 9488, 9860, 4, 3, UNI_INVAI } /* blk=vai */,
- { 714, 9277, 8901, 4, 5, UNI_SC__KTHI } /* sc=kaithi */,
- { 69, 10296, 3599, 3, 3, UNI_PAUC } /* ispauc */,
- { 184, 1552, 8855, 9, 2, UNI_CF } /* category=cf */,
- { 2, 10027, 7045, 3, 2, UNI_JG__FE } /* jg=fe */,
- { 198, 10048, 7859, 3, 3, UNI_NV__200 } /* nv=200 */,
- { 288, 10027, 10072, 3, 3, UNI_JG__TAH } /* jg=tah */,
- { 128, 3097, 1253, 18, 7, UNI_DT__INIT } /* decompositiontype=initial */,
- { 1, 3836, 8912, 17, 6, UNI_KHOJ } /* scriptextensions=khojki */,
- { 0, 3836, 7684, 17, 4, UNI_PAUC } /* scriptextensions=pauc */,
- { 0, 5242, 0, 14, 0, UNI_LATINEXTC } /* latinextendedc */,
- { 11, 2569, 0, 20, 1, UNI_VO__U } /* verticalorientation=u */,
- { 585, 5986, 9108, 13, 2, UNI_NV__15 } /* numericvalue=15 */,
- { 0, 3241, 0, 4, 0, UNI_GEOR } /* geor */,
- { 0, 1013, 0, 5, 0, UNI_GREK } /* greek */,
- { 0, 184, 5214, 2, 14, UNI_KANGXI } /* iskangxiradicals */,
- { 12, 4943, 0, 15, 0, UNI_TITLE } /* titlecaseletter */,
- { 11, 9596, 6763, 4, 11, UNI_LB__H3 } /* hst=lvtsyllable */,
- { 0, 5324, 8487, 5, 4, UNI_INMANDAIC } /* inmandaic */,
- { 0, 6576, 0, 11, 0, UNI_alpha_values_index } /* alphabetic= */,
- { 0, 3836, 8428, 17, 7, UNI_GRAN } /* scriptextensions=grantha */,
- { 513, 5986, 8744, 13, 3, UNI_NV__700 } /* numericvalue=700 */,
- { 0, 10009, 567, 3, 2, UNI_DT__NB } /* dt=nb */,
- { 4, 8589, 8219, 7, 8, UNI_SC__JAVA } /* script=javanese */,
- { 9, 8780, 2054, 6, 22, UNI_MODIFIERLETTERS } /* block=spacingmodifierletters */,
- { 516, 3457, 0, 18, 0, UNI_TAIXUANJING } /* taixuanjingsymbols */,
- { 4, 7088, 6037, 10, 12, UNI_BC__AL } /* bidiclass=arabicletter */,
- { 128, 9488, 382, 4, 32, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* blk=egyptianhieroglyphformatcontrols */,
- { 25, 148, 0, 35, 0, UNI_DIACRITICALSSUP } /* combiningdiacriticalmarkssupplement */,
- { 0, 1552, 2061, 9, 14, UNI_LM } /* category=modifierletter */,
- { 2, 9015, 9836, 5, 4, UNI_IDEO } /* ideo=true */,
- { 2, 7325, 10090, 3, 3, UNI_IN__4 } /* in=v40 */,
- { 1, 7158, 9255, 10, 5, -UNI_DIA } /* diacritic=false */,
- { 2, 3836, 9580, 17, 4, UNI_HANO } /* scriptextensions=hano */,
- { 7, 8780, 1585, 6, 23, UNI_BYZANTINEMUSIC } /* block=byzantinemusicalsymbols */,
- { 0, 5791, 5172, 13, 14, UNI_JG__HAMZAONHEHGOAL } /* joininggroup=hamzaonhehgoal */,
- { 13, 2280, 6483, 4, 10, UNI_HUNG } /* isoldhungarian */,
- { 0, 8589, 9636, 7, 4, UNI_SC__LINB } /* script=linb */,
- { 0, 8780, 78, 6, 35, UNI_ARABICMATH } /* block=arabicmathematicalalphabeticsymbols */,
- { 0, 8344, 0, 7, 0, UNI_BENG } /* bengali */,
- { 0, 8291, 0, 8, 0, UNI_TAGB } /* tagbanwa */,
- { 3, 10132, 2444, 3, 2, UNI_LB__HL } /* wb=hl */,
- { 0, 8589, 9860, 7, 4, UNI_VAI } /* script=vaii */,
- { 320, 8589, 8936, 7, 6, UNI_LYCI } /* script=lycian */,
- { 0, 9260, 26, 5, 1, UNI_IDSB } /* idsb=y */,
- { 20, 9524, 0, 3, 0, UNI_CWT } /* cwt */,
- { 512, 8978, 26, 6, 1, UNI__PERL_PATWS } /* patws=y */,
- { 256, 9892, 0, 4, 0, UNI_QAAI } /* zinh */,
- { 3, 10048, 8732, 3, 4, UNI_NV__5000 } /* nv=5000 */,
- { 0, 9488, 7514, 5, 8, UNI_INBHAIKSUKI } /* blk=bhaiksuki */,
- { 99, 9488, 2950, 4, 19, UNI_SUPARROWSB } /* blk=supplementalarrowsb */,
- { 11, 8786, 0, 4, 0, UNI_CARI } /* cari */,
- { 2, 2779, 9255, 19, 5, -UNI_IDST } /* idstrinaryoperator=false */,
- { 2, 5986, 7765, 13, 1, UNI_NV__2 } /* numericvalue=2 */,
- { 129, 184, 8498, 2, 7, UNI_MULT } /* ismultani */,
- { 3, 10027, 3802, 3, 17, UNI_JG__MANICHAEANHUNDRED } /* jg=manichaeanhundred */,
- { 27, 4033, 1899, 16, 2, UNI_PC } /* generalcategory=pc */,
- { 2, 10024, 6862, 3, 11, UNI_NO } /* gc=othernumber */,
- { 0, 184, 4257, 2, 16, UNI_MISCMATHSYMBOLSB } /* ismiscmathsymbolsb */,
- { 65, 3887, 0, 17, 0, UNI_SUTTONSIGNWRITING } /* suttonsignwriting */,
- { 0, 8519, 10135, 7, 3, UNI_DT__NONE } /* nfkdqc=yes */,
- { 47, 7249, 2, 5, 1, UNI_CARI } /* iscari */,
- { 0, 8888, 0, 6, 0, UNI_HATR } /* hatran */,
- { 0, 3097, 8948, 18, 6, UNI_DT__NAR } /* decompositiontype=narrow */,
- { 3, 9488, 9305, 4, 5, UNI_INNUSHU } /* blk=nushu */,
- { 12, 9277, 9609, 4, 3, UNI_KITS } /* sc=kits */,
- { 0, 9346, 26, 4, 1, UNI_IDC } /* idc=y */,
- { 0, 6928, 26, 11, 1, UNI_SD } /* softdotted=y */,
- { 1, 184, 3374, 2, 10, UNI_XPOSIXSPACE } /* iswhitespace */,
- { 290, 6554, 1, 11, 1, -UNI_IDC } /* idcontinue=n */,
- { 48, 7438, 1822, 10, 2, UNI_WB__NL } /* wordbreak=nl */,
- { 53, 4916, 1287, 4, 2, UNI_TELU } /* istelu */,
- { 97, 184, 2141, 3, 7, UNI_CYRL } /* iscyrillic */,
- { 513, 9277, 4928, 3, 5, UNI_SC__TAML } /* sc=tamil */,
- { 6, 3836, 8477, 17, 4, UNI_MAKA } /* scriptextensions=maka */,
- { 1, 6205, 1, 12, 1, -UNI_IDEO } /* ideographic=n */,
- { 153, 184, 5606, 2, 14, UNI_SUPPUNCTUATION } /* issuppunctuation */,
- { 2, 7358, 0, 4, 0, UNI_SAUR } /* saur */,
- { 4, 9508, 9937, 4, 3, UNI_CCC__AL } /* ccc=228 */,
- { 0, 8780, 5200, 6, 14, UNI_KANASUP } /* block=kanasupplement */,
- { 9, 9277, 8179, 3, 8, UNI_SC__GURU } /* sc=gurmukhi */,
- { 0, 9488, 9002, 4, 6, UNI_INTELUGU } /* blk=telugu */,
- { 6, 6231, 8380, 3, 6, UNI_CJKEXTE } /* incjkexte */,
- { 249, 10333, 0, 3, 0, UNI_S } /* iss */,
- { 1, 8589, 9740, 7, 4, UNI_SC__QAAI } /* script=qaai */,
- { 1, 9508, 9176, 5, 4, UNI_CCC__29 } /* ccc=ccc29 */,
- { 7, 10033, 533, 3, 2, UNI_LB__NS } /* lb=ns */,
- { 24, 7540, 0, 8, 0, UNI_EXT } /* extender */,
- { 1, 8780, 3115, 6, 10, UNI_INDEVANAGARI } /* block=devanagari */,
- { 1, 9277, 78, 3, 6, UNI_SC__ARAB } /* sc=arabic */,
- { 3, 9768, 9720, 4, 4, UNI_PHLP } /* scx=phlp */,
- { 0, 8589, 9452, 7, 4, UNI_AHOM } /* script=ahom */,
- { 10, 8414, 0, 4, 0, UNI_ELBA } /* elba */,
- { 0, 9508, 5648, 4, 2, UNI_CCC__10 } /* ccc=10 */,
- { 0, 10024, 1217, 3, 2, UNI_SK } /* gc=sk */,
- { 4, 10182, 10279, 6, 9, UNI__PERL_QUOTEMETA } /* _perl_quotemeta */,
- { 0, 4033, 38, 16, 2, UNI_XPOSIXDIGIT } /* generalcategory=nd */,
- { 131, 3853, 0, 16, 0, UNI_STERM } /* sentenceterminal */,
- { 37, 184, 5804, 2, 13, UNI_KANAEXTA } /* iskanaextendeda */,
- { 357, 861, 0, 6, 0, UNI_ARROWS } /* arrows */,
- { 133, 184, 8147, 2, 7, UNI_EXTPICT } /* isextpict */,
- { 64, 3836, 8638, 17, 7, UNI_TGLG } /* scriptextensions=tagalog */,
- { 1, 21, 2330, 3, 19, UNI_INANATOLIANHIEROGLYPHS } /* inanatolianhieroglyphs */,
- { 7, 184, 7438, 2, 4, UNI_XPOSIXWORD } /* isword */,
- { 2, 184, 7630, 2, 9, UNI_TALU } /* isnewtailue */,
- { 35, 5986, 9913, 13, 3, UNI_NV__2_SLASH_3 } /* numericvalue=2/3 */,
- { 146, 9350, 26, 5, 1, UNI_XIDS } /* xids=y */,
- { 0, 8780, 2120, 7, 20, UNI_CJKRADICALSSUP } /* block=cjkradicalssupplement */,
- { 33, 1922, 0, 12, 0, UNI_DIACRITICALS } /* diacriticals */,
- { 0, 1552, 10178, 9, 2, UNI_ZP } /* category=zp */,
- { 0, 10027, 8918, 3, 6, UNI_JG__LAMADH } /* jg=lamadh */,
- { 0, 8400, 0, 7, 0, UNI_compex_values_index } /* compex= */,
- { 215, 7278, 0, 10, 0, UNI_XPEO } /* oldpersian */,
- { 256, 4916, 4386, 3, 5, UNI_TANG } /* istangut */,
- { 516, 3853, 36, 17, 1, UNI_STERM } /* sentenceterminal=t */,
- { 0, 10333, 2288, 3, 3, UNI_SINH } /* issinh */,
- { 0, 9277, 3893, 3, 11, UNI_SGNW } /* sc=signwriting */,
- { 171, 1269, 1, 25, 1, -UNI_COMPEX } /* fullcompositionexclusion=n */,
- { 311, 9270, 2555, 5, 14, UNI_INPC__BOTTOMANDRIGHT } /* inpc=bottomandright */,
- { 0, 2224, 6962, 3, 10, UNI_SUPERANDSUB } /* insuperandsub */,
- { 314, 3241, 0, 11, 0, UNI_GEORGIANSUP } /* georgiansup */,
- { 0, 5791, 5869, 13, 13, UNI_JG__MANICHAEANMEM } /* joininggroup=manichaeanmem */,
- { 152, 5986, 8035, 13, 8, UNI_NV__3_SLASH_4 } /* numericvalue=7.50e-01 */,
- { 288, 8858, 0, 6, 0, UNI_ecomp_values_index } /* ecomp= */,
- { 0, 7739, 10135, 8, 3, UNI_IDS } /* idstart=yes */,
- { 1, 8780, 2912, 6, 19, UNI_SUNDANESESUP } /* block=sundanesesupplement */,
- { 512, 10060, 9255, 3, 5, -UNI_RI } /* ri=false */,
- { 4, 8589, 8477, 7, 4, UNI_MAKA } /* script=maka */,
- { 0, 9616, 0, 4, 0, UNI_KTHI } /* kthi */,
- { 35, 8589, 8442, 7, 7, UNI_SC__HANO } /* script=hanunoo */,
- { 603, 5791, 7148, 13, 10, UNI_JG__DALATHRISH } /* joininggroup=dalathrish */,
- { 2, 7088, 1, 11, 1, UNI_BC__BN } /* bidiclass=bn */,
- { 265, 2779, 0, 4, 0, UNI_IDST } /* idst */,
- { 28, 10048, 8035, 3, 8, UNI_NV__3_SLASH_4 } /* nv=7.50e-01 */,
- { 0, 10033, 495, 3, 7, UNI_LB__NU } /* lb=numeric */,
- { 0, 4989, 58, 3, 4, UNI_UIDEO } /* isuideo */,
- { 13, 8768, 9255, 6, 5, -UNI_BIDIC } /* bidic=false */,
- { 292, 3836, 2409, 17, 4, UNI_GLAG } /* scriptextensions=glag */,
- { 1, 9277, 9652, 3, 4, UNI_MERC } /* sc=merc */,
- { 1, 9277, 8666, 3, 7, UNI_SC__TIRH } /* sc=tirhuta */,
- { 64, 9277, 8291, 3, 4, UNI_SC__TAGB } /* sc=tagb */,
- { 13, 4916, 8639, 3, 6, UNI_TGLG } /* istagalog */,
- { 0, 9277, 8470, 3, 7, UNI_SC__LINA } /* sc=lineara */,
- { 5, 184, 5830, 2, 13, UNI_LOWSURROGATES } /* islowsurrogates */,
- { 714, 184, 2855, 2, 9, UNI_MONG } /* ismongolian */,
- { 73, 9070, 1, 5, 1, -UNI_POSIXXDIGIT } /* ahex=n */,
- { 36, 9488, 1018, 4, 5, UNI_MUSIC } /* blk=music */,
- { 65, 5746, 1025, 6, 2, -UNI_EBASE } /* ebase=no */,
- { 161, 10288, 7438, 8, 4, UNI_XPOSIXWORD } /* isxposixword */,
- { 25, 8107, 0, 8, 0, UNI_BALI } /* balinese */,
- { 2, 4613, 0, 15, 0, UNI_DIACRITICALSSUP } /* diacriticalssup */,
- { 0, 9596, 7720, 4, 9, UNI_GCB__V } /* hst=voweljamo */,
- { 212, 8780, 7684, 6, 9, UNI_INPAUCINHAU } /* block=paucinhau */,
- { 1, 9262, 1823, 3, 5, UNI_SB__LO } /* sb=lower */,
- { 0, 8498, 0, 4, 0, UNI_MULT } /* mult */,
- { 0, 2245, 0, 21, 0, UNI_MEETEIMAYEKEXT } /* meeteimayekextensions */,
- { 0, 9275, 2608, 5, 19, UNI_INSC__BRAHMIJOININGNUMBER } /* insc=brahmijoiningnumber */,
- { 543, 9488, 3052, 4, 9, UNI_HALFMARKS } /* blk=halfmarks */,
- { 0, 3097, 2785, 18, 3, UNI_DT__NAR } /* decompositiontype=nar */,
- { 16, 4916, 5850, 3, 3, UNI_TAML } /* istaml */,
- { 0, 3717, 7338, 17, 10, UNI_IDENTIFIERSTATUS__RESTRICTED } /* identifierstatus=restricted */,
- { 3, 4129, 0, 16, 0, UNI_LATIN1 } /* latin1supplement */,
- { 0, 3836, 2329, 17, 20, UNI_HLUW } /* scriptextensions=anatolianhieroglyphs */,
- { 0, 10024, 4245, 3, 10, UNI_SM } /* gc=mathsymbol */,
- { 389, 184, 1294, 2, 25, UNI_SUPERANDSUB } /* issuperscriptsandsubscripts */,
- { 0, 5674, 10135, 13, 3, UNI_BIDIM } /* bidimirrored=yes */,
- { 73, 4542, 1633, 4, 21, UNI_GEOMETRICSHAPESEXT } /* ingeometricshapesextended */,
- { 1, 9768, 9860, 4, 4, UNI_VAI } /* scx=vaii */,
- { 1024, 6576, 9255, 11, 5, -UNI_XPOSIXALPHA } /* alphabetic=false */,
- { 0, 5228, 0, 14, 0, UNI_LATINEXTB } /* latinextendedb */,
- { 0, 21, 3421, 2, 18, UNI_RUMI } /* inruminumeralsymbols */,
- { 0, 5986, 7826, 13, 2, UNI_NV__12 } /* numericvalue=12 */,
- { 513, 9488, 4129, 4, 16, UNI_LATIN1 } /* blk=latin1supplement */,
- { 1, 10291, 7438, 5, 4, UNI_POSIXWORD } /* posixword */,
- { 0, 8960, 26, 6, 1, UNI_NFCQC__Y } /* nfcqc=y */,
- { 199, 9508, 9472, 4, 4, UNI_WB__EB } /* ccc=atbl */,
- { 2, 9277, 8610, 3, 7, UNI_SIDD } /* sc=siddham */,
- { 0, 10009, 9868, 3, 4, UNI_EA__F } /* dt=wide */,
- { 0, 10048, 7469, 3, 8, UNI_NV__1_SLASH_2 } /* nv=5.00e-01 */,
- { 16, 5986, 8756, 13, 2, UNI_NV__90 } /* numericvalue=90 */,
- { 3, 2760, 36, 19, 1, UNI_GCB__T } /* hangulsyllabletype=t */,
- { 31, 9568, 0, 4, 0, UNI_GREK } /* grek */,
- { 0, 184, 8421, 2, 7, UNI_ELYM } /* iselymaic */,
- { 5, 3937, 0, 8, 0, UNI_BOPO } /* bopomofo */,
- { 815, 8680, 0, 7, 0, UNI_ZZZZ } /* unknown */,
- { 3, 5324, 0, 12, 0, UNI_INMANICHAEAN } /* inmanichaean */,
- { 2, 3836, 1222, 17, 4, UNI_KANA } /* scriptextensions=kana */,
- { 0, 9285, 0, 4, 0, UNI_LIMB } /* limb */,
- { 71, 184, 3115, 2, 13, UNI_DEVANAGARIEXT } /* isdevanagariext */,
- { 518, 1505, 3827, 4, 5, UNI_INGRANTHA } /* ingrantha */,
- { 151, 10033, 5298, 3, 14, UNI_LB__BK } /* lb=mandatorybreak */,
- { 0, 8589, 9816, 7, 4, UNI_TAVT } /* script=tavt */,
- { 67, 9488, 9245, 4, 5, UNI_INDOGRA } /* blk=dogra */,
- { 0, 3836, 9752, 17, 4, UNI_ROHG } /* scriptextensions=rohg */,
- { 32, 9270, 2549, 5, 12, UNI_INPC__TOPANDBOTTOM } /* inpc=topandbottom */,
- { 0, 184, 5003, 2, 15, UNI_ZANB } /* iszanabazarsquare */,
- { 6, 8203, 0, 8, 0, UNI_JAMOEXTA } /* jamoexta */,
- { 1, 5037, 0, 8, 0, UNI_XPOSIXXDIGIT } /* hexdigit */,
- { 48, 9335, 0, 4, 0, UNI_TAKR } /* takr */,
- { 0, 1537, 1924, 4, 10, UNI_DIACRITICALS } /* indiacriticals */,
- { 1, 9444, 7877, 4, 2, UNI_AGE__13 } /* age=13 */,
- { 0, 727, 0, 2, 0, UNI_MN } /* mn */,
- { 1, 9488, 2969, 4, 19, UNI_SUPARROWSC } /* blk=supplementalarrowsc */,
- { 1, 5986, 8027, 13, 8, UNI_NV__15_SLASH_2 } /* numericvalue=7.50e+00 */,
- { 34, 4838, 0, 16, 0, UNI_NFKCQC__N } /* nfkcquickcheck=n */,
- { 0, 4401, 0, 9, 0, UNI_TANGUTSUP } /* tangutsup */,
- { 32, 8589, 8131, 7, 8, UNI_SC__DUPL } /* script=duployan */,
- { 21, 9275, 4913, 5, 15, UNI_INSC__REGISTERSHIFTER } /* insc=registershifter */,
- { 52, 9528, 0, 3, 0, UNI_CWU } /* cwu */,
- { 2, 184, 6061, 2, 11, UNI_BIDIC } /* isbidicontrol */,
- { 0, 10033, 3969, 3, 16, UNI_LB__CP } /* lb=closeparenthesis */,
- { 128, 9488, 4703, 4, 15, UNI_INIMPERIALARAMAIC } /* blk=imperialaramaic */,
- { 84, 3529, 26, 18, 1, UNI_VS } /* variationselector=y */,
- { 0, 8582, 0, 7, 0, UNI_PHAG } /* phagspa */,
- { 545, 9277, 8491, 3, 4, UNI_MARC } /* sc=marc */,
- { 0, 10048, 8083, 3, 8, UNI_NV__11_SLASH_12 } /* nv=9.17e-01 */,
- { 0, 9768, 78, 4, 6, UNI_ARAB } /* scx=arabic */,
- { 4, 9452, 0, 4, 0, UNI_AHOM } /* ahom */,
- { 5, 184, 4241, 2, 16, UNI_MISCMATHSYMBOLSA } /* ismiscmathsymbolsa */,
- { 129, 9488, 3169, 4, 11, UNI_ETHIOPICSUP } /* blk=ethiopicsup */,
- { 0, 6229, 0, 5, 0, UNI_JOINC } /* joinc */,
- { 0, 9277, 5284, 3, 4, UNI_LISU } /* sc=lisu */,
- { 928, 8315, 0, 8, 0, UNI_UGAR } /* ugaritic */,
- { 0, 1552, 400, 9, 6, UNI_CF } /* category=format */,
- { 0, 10048, 9994, 3, 3, UNI_NV__9_SLASH_2 } /* nv=9/2 */,
- { 279, 10048, 7811, 3, 8, UNI_NV__1_SLASH_6 } /* nv=1.67e-01 */,
- { 0, 8978, 9255, 6, 5, -UNI__PERL_PATWS } /* patws=false */,
- { 581, 3836, 1677, 17, 5, UNI_LATN } /* scriptextensions=latin */,
- { 562, 9488, 1441, 4, 24, UNI_CJKSYMBOLS } /* blk=cjksymbolsandpunctuation */,
- { 32, 1417, 8819, 24, 3, UNI_CCC__129 } /* canonicalcombiningclass=129 */,
- { 1, 5452, 17, 15, 1, UNI_COMPEX } /* nfcquickcheck=no */,
- { 128, 9277, 9504, 3, 4, UNI_CANS } /* sc=cans */,
- { 0, 10006, 0, 3, 0, UNI_di_values_index } /* di= */,
- { 2, 8780, 6277, 6, 7, UNI_MAHJONG } /* block=mahjong */,
- { 145, 8780, 5186, 6, 14, UNI_HIGHSURROGATES } /* block=highsurrogates */,
- { 0, 1417, 9188, 24, 2, UNI_CCC__31 } /* canonicalcombiningclass=31 */,
- { 0, 1856, 9836, 22, 4, UNI_CWU } /* changeswhenuppercased=true */,
- { 139, 9277, 9588, 3, 4, UNI_HMNG } /* sc=hmng */,
- { 716, 9265, 26, 5, 1, UNI_IDST } /* idst=y */,
- { 12, 4688, 2023, 15, 9, UNI_IDENTIFIERTYPE__TECHNICAL } /* identifiertype=technical */,
- { 0, 7218, 10164, 10, 2, UNI_GCB__V } /* linebreak=jv */,
- { 1, 10182, 1527, 6, 9, UNI__PERL_SURROGATE } /* _perl_surrogate */,
- { 0, 2224, 350, 3, 32, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* insupplementalsymbolsandpictographs */,
- { 0, 1505, 5161, 5, 11, UNI_INGREEK } /* ingreekandcoptic */,
- { 65, 8589, 4868, 7, 15, UNI_NARB } /* script=oldnortharabian */,
- { 0, 8589, 9656, 7, 4, UNI_MIAO } /* script=miao */,
- { 301, 184, 4583, 2, 15, UNI_PD } /* isdashpunctuation */,
- { 1, 9508, 9171, 5, 4, UNI_CCC__28 } /* ccc=ccc28 */,
- { 1, 4113, 67, 3, 4, UNI_VSSUP } /* invssup */,
- { 390, 2280, 4306, 3, 15, UNI_PO } /* isotherpunctuation */,
- { 138, 10024, 1465, 3, 13, UNI_M } /* gc=combiningmark */,
- { 1, 9508, 7877, 4, 2, UNI_CCC__13 } /* ccc=13 */,
- { 4, 184, 4129, 2, 6, UNI_LATIN1 } /* islatin1 */,
- { 147, 6241, 6529, 12, 12, UNI_JT__R } /* joiningtype=rightjoining */,
- { 2, 6231, 2667, 4, 9, UNI_COUNTINGROD } /* incountingrod */,
- { 2, 2280, 3332, 3, 17, UNI_ORNAMENTALDINGBATS } /* isornamentaldingbats */,
- { 0, 5986, 7771, 13, 8, UNI_NV__1_SLASH_80 } /* numericvalue=1.25e-02 */,
- { 0, 1417, 24, 24, 1, UNI_CCC__L } /* canonicalcombiningclass=l */,
- { 2, 9020, 3, 6, 1, -UNI_XPOSIXUPPER } /* upper=f */,
- { 3, 1746, 1, 22, 1, UNI_BPT__N } /* bidipairedbrackettype=n */,
- { 1, 6730, 0, 11, 0, UNI_KATAKANAEXT } /* katakanaext */,
- { 1, 9880, 0, 4, 0, UNI_YI } /* yiii */,
- { 321, 9556, 406, 4, 7, UNI_GCB__CN } /* gcb=control */,
- { 0, 9488, 3169, 4, 8, UNI_INETHIOPIC } /* blk=ethiopic */,
- { 0, 9768, 8291, 4, 4, UNI_TAGB } /* scx=tagb */,
- { 0, 10009, 8846, 3, 6, UNI_DT__ENC } /* dt=circle */,
- { 0, 4033, 1910, 16, 2, UNI_CN } /* generalcategory=cn */,
- { 0, 9508, 8811, 5, 5, UNI_CCC__122 } /* ccc=ccc122 */,
- { 0, 9768, 7684, 4, 9, UNI_PAUC } /* scx=paucinhau */,
- { 0, 2224, 8632, 3, 6, UNI_SUPPUAB } /* insuppuab */,
- { 38, 9768, 8407, 4, 7, UNI_DSRT } /* scx=deseret */,
- { 1, 8589, 3937, 7, 8, UNI_SC__BOPO } /* script=bopomofo */,
- { 0, 10027, 756, 3, 3, UNI_JG__DAL } /* jg=dal */,
- { 555, 435, 0, 5, 0, UNI__PERL_NCHAR } /* nchar */,
- { 19, 3836, 8428, 17, 4, UNI_GRAN } /* scriptextensions=gran */,
- { 0, 3097, 0, 18, 0, UNI_dt_values_index } /* decompositiontype= */,
- { 3, 7076, 7099, 3, 9, UNI_BOXDRAWING } /* inboxdrawing */,
- { 2, 1988, 0, 22, 0, UNI_loe_values_index } /* logicalorderexception= */,
- { 641, 1966, 3953, 22, 16, UNI_INSC__CANTILLATIONMARK } /* indicsyllabiccategory=cantillationmark */,
- { 0, 8870, 10135, 6, 3, UNI_EPRES } /* epres=yes */,
- { 523, 1790, 1025, 22, 2, -UNI_CWCM } /* changeswhencasemapped=no */,
- { 0, 9488, 2287, 4, 7, UNI_INSINHALA } /* blk=sinhala */,
- { 16, 1087, 26, 27, 1, UNI_PCM } /* prependedconcatenationmark=y */,
- { 0, 8780, 1561, 6, 24, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* block=supsymbolsandpictographs */,
- { 0, 2665, 0, 11, 0, UNI_COUNTINGROD } /* countingrod */,
- { 0, 1417, 9106, 25, 4, UNI_CCC__15 } /* canonicalcombiningclass=ccc15 */,
- { 1, 8780, 8876, 6, 6, UNI_INGOTHIC } /* block=gothic */,
- { 0, 21, 7458, 2, 10, UNI_YIRADICALS } /* inyiradicals */,
- { 4, 3836, 9680, 17, 4, UNI_NBAT } /* scriptextensions=nbat */,
- { 1, 8780, 2429, 6, 20, UNI_ININSCRIPTIONALPAHLAVI } /* block=inscriptionalpahlavi */,
- { 9, 10003, 9836, 3, 4, UNI_CI } /* ci=true */,
- { 768, 7076, 5816, 3, 7, UNI_INBALINESE } /* inbalinese */,
- { 5, 2779, 0, 19, 0, UNI_idst_values_index } /* idstrinaryoperator= */,
- { 0, 8930, 26, 6, 1, UNI_XPOSIXLOWER } /* lower=y */,
- { 0, 9277, 4448, 3, 4, UNI_BAMU } /* sc=bamu */,
- { 14, 7318, 7754, 10, 2, UNI_IN__11 } /* presentin=11 */,
- { 0, 3115, 0, 18, 0, UNI_DEVANAGARIEXT } /* devanagariextended */,
- { 0, 9095, 0, 5, 0, UNI_BUHD } /* buhid */,
- { 32, 5452, 0, 15, 0, UNI_COMPEX } /* nfcquickcheck=n */,
- { 0, 1746, 0, 22, 0, UNI_bpt_values_index } /* bidipairedbrackettype= */,
- { 22, 3374, 9255, 11, 5, -UNI_XPOSIXSPACE } /* whitespace=false */,
- { 27, 8688, 2330, 3, 19, UNI_HLUW } /* isanatolianhieroglyphs */,
- { 40, 5497, 0, 11, 0, UNI_MC } /* spacingmark */,
- { 2, 9768, 9608, 4, 4, UNI_KITS } /* scx=kits */,
- { 43, 2784, 1395, 4, 22, UNI_ARABICPFB } /* inarabicpresentationformsb */,
- { 0, 9768, 6840, 4, 4, UNI_NAND } /* scx=nand */,
- { 104, 3836, 7188, 17, 10, UNI_KHAR } /* scriptextensions=kharoshthi */,
- { 23, 5986, 9392, 13, 4, UNI_NV__11_SLASH_2 } /* numericvalue=11/2 */,
- { 320, 10048, 9372, 3, 4, UNI_NV__1_SLASH_40 } /* nv=1/40 */,
- { 0, 9768, 6277, 4, 4, UNI_MAHJ } /* scx=mahj */,
- { 6, 9997, 407, 3, 2, UNI_BC__ON } /* bc=on */,
- { 72, 6205, 9255, 12, 5, -UNI_IDEO } /* ideographic=false */,
- { 258, 184, 6277, 2, 4, UNI_MAHJ } /* ismahj */,
- { 192, 7540, 1025, 9, 2, -UNI_EXT } /* extender=no */,
- { 0, 9277, 9892, 3, 4, UNI_SC__QAAI } /* sc=zinh */,
- { 9, 2912, 0, 4, 0, UNI_SUND } /* sund */,
- { 0, 8688, 1007, 3, 26, UNI_ANCIENTGREEKMUSIC } /* isancientgreekmusicalnotation */,
- { 379, 9488, 719, 4, 30, UNI_CUNEIFORMNUMBERS } /* blk=cuneiformnumbersandpunctuation */,
- { 0, 21, 8470, 2, 7, UNI_INLINEARA } /* inlineara */,
- { 0, 9277, 9624, 3, 4, UNI_LAO } /* sc=laoo */,
- { 1, 5791, 5364, 13, 4, UNI_JG__HETH } /* joininggroup=heth */,
- { 1, 3025, 0, 4, 0, UNI_CHER } /* cher */,
- { 38, 10048, 9907, 3, 3, UNI_NV__1_SLASH_7 } /* nv=1/7 */,
- { 0, 2224, 7399, 3, 9, UNI_SUPARROWSC } /* insuparrowsc */,
- { 6, 7325, 10093, 3, 3, UNI_IN__4_DOT_1 } /* in=v41 */,
- { 1, 10024, 48, 3, 1, UNI_P } /* gc=p */,
- { 0, 1921, 0, 2, 0, UNI_SD } /* sd */,
- { 0, 9488, 42, 4, 9, UNI_CJKCOMPAT } /* blk=cjkcompat */,
- { 0, 5791, 9784, 13, 4, UNI_JG__SHIN } /* joininggroup=shin */,
- { 0, 8589, 9544, 7, 4, UNI_DIAK } /* script=diak */,
- { 105, 9997, 426, 3, 2, UNI_BC__ES } /* bc=es */,
- { 459, 3904, 36, 17, 1, UNI_UIDEO } /* unifiedideograph=t */,
- { 40, 9345, 1025, 5, 2, -UNI_XIDC } /* xidc=no */,
- { 0, 5986, 7877, 13, 2, UNI_NV__13 } /* numericvalue=13 */,
- { 0, 1677, 0, 14, 0, UNI_LATINEXTA } /* latinextendeda */,
- { 0, 7218, 96, 10, 10, UNI_LB__AL } /* linebreak=alphabetic */,
- { 0, 10009, 2785, 3, 3, UNI_DT__NAR } /* dt=nar */,
- { 572, 283, 0, 33, 0, UNI_MISCMATHSYMBOLSB } /* miscellaneousmathematicalsymbolsb */,
- { 2, 9768, 4883, 4, 15, UNI_SARB } /* scx=oldsoutharabian */,
- { 0, 8526, 0, 7, 0, UNI_NB } /* noblock */,
- { 20, 9824, 0, 4, 0, UNI_TGLG } /* tglg */,
- { 0, 9768, 8561, 4, 4, UNI_OSMA } /* scx=osma */,
- { 0, 9285, 0, 5, 0, UNI_LIMB } /* limbu */,
- { 6, 9277, 4145, 3, 7, UNI_SC__LINB } /* sc=linearb */,
- { 330, 9275, 4508, 5, 15, UNI_INSC__CONSONANTKILLER } /* insc=consonantkiller */,
- { 0, 5986, 4134, 13, 1, UNI_NV__1 } /* numericvalue=1 */,
- { 20, 9640, 3, 4, 1, -UNI_LOE } /* loe=f */,
- { 0, 3836, 4001, 17, 7, UNI_CPRT } /* scriptextensions=cypriot */,
- { 0, 6972, 0, 11, 0, UNI_SYLO } /* sylotinagri */,
- { 306, 5986, 8710, 13, 4, UNI_NV__6000 } /* numericvalue=6000 */,
- { 11, 5746, 9255, 6, 5, -UNI_EBASE } /* ebase=false */,
- { 962, 184, 6397, 2, 12, UNI_MATHALPHANUM } /* ismathalphanum */,
- { 1, 5032, 0, 13, 0, UNI_POSIXXDIGIT } /* asciihexdigit */,
- { 0, 9277, 1013, 3, 5, UNI_SC__GREK } /* sc=greek */,
- { 0, 1979, 10171, 10, 1, UNI_CASEDLETTER } /* category=l_ */,
- { 0, 10126, 471, 3, 2, UNI_VO__TU } /* vo=tu */,
- { 0, 9508, 4912, 4, 2, UNI_CCC__0 } /* ccc=nr */,
- { 0, 9832, 0, 4, 0, UNI_TIBT } /* tibt */,
- { 1, 8435, 36, 7, 1, UNI_GRBASE } /* grbase=t */,
- { 0, 9508, 756, 4, 2, UNI_CCC__DA } /* ccc=da */,
- { 4, 8211, 0, 8, 0, UNI_JAMOEXTB } /* jamoextb */,
- { 125, 1537, 4988, 24, 15, UNI_LOE } /* indicpositionalcategory=visualorderleft */,
- { 0, 10048, 7843, 3, 8, UNI_NV__1_SLASH_4 } /* nv=2.50e-01 */,
- { 0, 5200, 0, 7, 0, UNI_KANASUP } /* kanasup */,
- { 0, 8780, 861, 6, 6, UNI_ARROWS } /* block=arrows */,
- { 1, 6805, 842, 6, 25, UNI_MISCARROWS } /* inmiscellaneoussymbolsandarrows */,
- { 0, 9596, 24, 4, 1, UNI_GCB__L } /* hst=l */,
- { 0, 5986, 8714, 13, 5, UNI_NV__30000 } /* numericvalue=30000 */,
- { 8, 9277, 4385, 3, 4, UNI_TANG } /* sc=tang */,
- { 0, 8575, 10135, 7, 3, UNI_PATSYN } /* patsyn=yes */,
- { 0, 1218, 0, 26, 0, UNI_KATAKANAEXT } /* katakanaphoneticextensions */,
- { 3, 5986, 5649, 13, 1, UNI_NV__0 } /* numericvalue=0 */,
- { 64, 10027, 5368, 3, 14, UNI_JG__MANICHAEANKAPH } /* jg=manichaeankaph */,
- { 0, 10048, 9409, 3, 3, UNI_NV__5_SLASH_2 } /* nv=5/2 */,
- { 776, 184, 5843, 2, 9, UNI_MLYM } /* ismalayalam */,
- { 0, 4116, 2430, 3, 19, UNI_PHLI } /* isinscriptionalpahlavi */,
- { 557, 9444, 7826, 4, 2, UNI_AGE__12 } /* age=12 */,
- { 9, 10009, 10066, 3, 3, UNI_DT__SML } /* dt=sml */,
- { 0, 9488, 4808, 4, 15, UNI_MISCPICTOGRAPHS } /* blk=miscpictographs */,
- { 0, 8589, 9652, 7, 4, UNI_MERC } /* script=merc */,
- { 1, 8589, 8315, 7, 4, UNI_UGAR } /* script=ugar */,
- { 3, 8589, 3025, 7, 8, UNI_CHER } /* script=cherokee */,
- { 0, 2529, 3, 20, 1, -UNI_TERM } /* terminalpunctuation=f */,
- { 66, 9262, 8996, 3, 5, UNI_SB__ST } /* sb=sterm */,
- { 0, 6012, 0, 13, 0, UNI_VERTICALFORMS } /* verticalforms */,
- { 0, 8990, 0, 6, 0, UNI_RJNG } /* rejang */,
- { 0, 9488, 6385, 4, 12, UNI_INMASARAMGONDI } /* blk=masaramgondi */,
- { 0, 8960, 10135, 6, 3, UNI_NFCQC__Y } /* nfcqc=yes */,
- { 4, 9520, 36, 4, 1, UNI_CWL } /* cwl=t */,
- { 75, 1222, 0, 4, 0, UNI_KANA } /* kana */,
- { 41, 4033, 341, 16, 2, UNI_PE } /* generalcategory=pe */,
- { 11, 9820, 0, 4, 0, UNI_TFNG } /* tfng */,
- { 0, 2288, 4068, 5, 13, UNI_HALFANDFULLFORMS } /* inhalfandfullforms */,
- { 10, 5060, 1025, 14, 2, -UNI_CI } /* caseignorable=no */,
- { 0, 9262, 4305, 3, 5, UNI_SB__XX } /* sb=other */,
- { 90, 7155, 3053, 3, 8, UNI_HALFMARKS } /* ishalfmarks */,
- { 404, 10290, 5040, 6, 5, UNI_XPOSIXDIGIT } /* xposixdigit */,
- { 0, 10027, 7711, 3, 9, UNI_JG__SYRIACWAW } /* jg=syriacwaw */,
- { 672, 7098, 0, 10, 0, UNI_BOXDRAWING } /* boxdrawing */,
- { 1, 9768, 1013, 4, 5, UNI_GREK } /* scx=greek */,
- { 0, 9444, 7987, 4, 3, UNI_AGE__6_DOT_2 } /* age=6.2 */,
- { 0, 3133, 1025, 18, 2, -UNI_EBASE } /* emojimodifierbase=no */,
- { 16, 1812, 9836, 22, 4, UNI_CWL } /* changeswhenlowercased=true */,
- { 1, 117, 447, 3, 31, UNI_IDEOGRAPHICSYMBOLS } /* inideographicsymbolsandpunctuation */,
- { 87, 1417, 8727, 24, 2, UNI_CCC__32 } /* canonicalcombiningclass=32 */,
- { 546, 9768, 7675, 4, 9, UNI_PALM } /* scx=palmyrene */,
- { 32, 9768, 3241, 4, 4, UNI_GEOR } /* scx=geor */,
- { 0, 9764, 0, 4, 0, UNI_SARB } /* sarb */,
- { 0, 10033, 73, 3, 2, UNI_EMOD } /* lb=em */,
- { 4, 3836, 9335, 17, 4, UNI_TAKR } /* scriptextensions=takr */,
- { 1097, 10291, 5039, 5, 6, UNI_POSIXXDIGIT } /* posixxdigit */,
- { 128, 7249, 3583, 4, 15, UNI_UCAS } /* iscanadiansyllabics */,
- { 268, 8589, 7308, 7, 10, UNI_PHNX } /* script=phoenician */,
- { 36, 184, 2485, 2, 4, UNI_MONG } /* ismong */,
- { 0, 8694, 0, 6, 0, UNI_XPOSIXSPACE } /* wspace */,
- { 2, 9508, 7826, 4, 2, UNI_CCC__12 } /* ccc=12 */,
- { 15, 1587, 0, 1, 0, UNI_Z } /* z */,
- { 10, 10048, 9436, 3, 4, UNI_NV__7_SLASH_12 } /* nv=7/12 */,
- { 2, 9488, 2308, 4, 6, UNI_YIJING } /* blk=yijing */,
- { 0, 2182, 10174, 21, 2, UNI_GCB__XX } /* graphemeclusterbreak=xx */,
- { 0, 1746, 17, 22, 1, UNI_BPT__O } /* bidipairedbrackettype=o */,
- { 0, 3836, 493, 17, 3, UNI_HAN } /* scriptextensions=han */,
- { 1, 1087, 9836, 27, 4, UNI_PCM } /* prependedconcatenationmark=true */,
- { 0, 7418, 9255, 10, 5, -UNI_XPOSIXUPPER } /* uppercase=false */,
- { 4, 1114, 3, 26, 1, -UNI_CWKCF } /* changeswhennfkccasefolded=f */,
- { 0, 7028, 9881, 3, 3, UNI_YI } /* isyiii */,
- { 4, 4033, 45, 16, 2, UNI_CO } /* generalcategory=co */,
- { 0, 4916, 2077, 3, 21, UNI_TRANSPORTANDMAP } /* istransportandmapsymbols */,
- { 0, 8780, 8203, 6, 8, UNI_JAMOEXTA } /* block=jamoexta */,
- { 7, 7155, 1116, 3, 3, UNI_HANG } /* ishang */,
- { 89, 8780, 2308, 6, 6, UNI_YIJING } /* block=yijing */,
- { 21, 184, 8171, 2, 8, UNI_GUJR } /* isgujarati */,
- { 1024, 9768, 8924, 4, 4, UNI_LEPC } /* scx=lepc */,
- { 5, 10129, 0, 3, 0, UNI_vs_values_index } /* vs= */,
- { 3, 9664, 0, 4, 0, UNI_MRO } /* mroo */,
- { 0, 8780, 2245, 6, 21, UNI_MEETEIMAYEKEXT } /* block=meeteimayekextensions */,
- { 0, 6576, 1025, 11, 2, -UNI_XPOSIXALPHA } /* alphabetic=no */,
- { 29, 184, 382, 2, 32, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* isegyptianhieroglyphformatcontrols */,
- { 2, 9270, 868, 3, 17, UNI_PHONETICEXT } /* inphoneticextensions */,
- { 9, 9015, 0, 5, 0, UNI_ideo_values_index } /* ideo= */,
- { 0, 10033, 7448, 3, 10, UNI_LB__WJ } /* lb=wordjoiner */,
- { 7, 7239, 0, 2, 0, UNI_VS } /* vs */,
- { 352, 9488, 3938, 5, 15, UNI_BOPOMOFOEXT } /* blk=bopomofoextended */,
- { 0, 9488, 2477, 4, 3, UNI_PUA } /* blk=pua */,
- { 7, 184, 2817, 2, 4, UNI_MERO } /* ismero */,
- { 0, 5960, 0, 13, 0, UNI_MISCTECHNICAL } /* misctechnical */,
- { 160, 8840, 0, 6, 0, UNI_CAKM } /* chakma */,
- { 521, 5726, 0, 13, 0, UNI_ME } /* enclosingmark */,
- { 23, 1417, 9101, 25, 4, UNI_CCC__14 } /* canonicalcombiningclass=ccc14 */,
- { 2, 8688, 727, 4, 2, UNI_ARMN } /* isarmn */,
- { 2, 184, 2469, 2, 20, UNI_HMNP } /* isnyiakengpuachuehmong */,
- { 757, 10290, 1867, 6, 5, UNI_XPOSIXUPPER } /* xposixupper */,
- { 8, 10132, 125, 3, 2, UNI_LB__CR } /* wb=cr */,
- { 161, 9768, 4001, 4, 7, UNI_CPRT } /* scx=cypriot */,
- { 0, 184, 1442, 3, 9, UNI_CJKSYMBOLS } /* iscjksymbols */,
- { 0, 9768, 9548, 4, 4, UNI_DSRT } /* scx=dsrt */,
- { 0, 3836, 6792, 18, 3, UNI_SAMR } /* scriptextensions=samr */,
- { 144, 4542, 3226, 5, 15, UNI_INPUNCTUATION } /* ingeneralpunctuation */,
- { 634, 4116, 1308, 3, 2, UNI_IDS } /* isids */,
- { 10, 9346, 1025, 4, 2, -UNI_IDC } /* idc=no */,
- { 32, 184, 8421, 2, 4, UNI_ELYM } /* iselym */,
- { 4, 9275, 8099, 5, 8, UNI_INSC__AVAGRAHA } /* insc=avagraha */,
- { 132, 8575, 36, 7, 1, UNI_PATSYN } /* patsyn=t */,
- { 0, 3836, 8091, 17, 8, UNI_ARMN } /* scriptextensions=armenian */,
- { 0, 5791, 6565, 13, 11, UNI_JG__AFRICANNOON } /* joininggroup=africannoon */,
- { 1, 2288, 2724, 4, 8, UNI_JAMO } /* inhanguljamo */,
- { 0, 5452, 47, 14, 1, UNI_NFCQC__M } /* nfcquickcheck=m */,
- { 1, 9684, 0, 4, 0, UNI_NEWA } /* newa */,
- { 549, 9488, 867, 4, 11, UNI_PHONETICEXT } /* blk=phoneticext */,
- { 513, 8762, 1025, 6, 2, -UNI_XPOSIXALPHA } /* alpha=no */,
- { 455, 8780, 5804, 6, 13, UNI_KANAEXTA } /* block=kanaextendeda */,
- { 1, 184, 3937, 2, 11, UNI_BOPOMOFOEXT } /* isbopomofoext */,
- { 783, 5986, 9050, 13, 5, UNI_NV__1_SLASH_160 } /* numericvalue=1/160 */,
- { 7, 10024, 3277, 3, 18, UNI_PI } /* gc=initialpunctuation */,
- { 0, 9262, 339, 3, 2, UNI_SB__LO } /* sb=lo */,
- { 0, 2161, 26, 21, 1, UNI_EXTPICT } /* extendedpictographic=y */,
- { 1140, 7249, 3600, 4, 15, UNI_AGHB } /* iscaucasianalbanian */,
- { 3, 9768, 9320, 4, 5, UNI_OSGE } /* scx=osage */,
- { 0, 5060, 0, 13, 0, UNI_CI } /* caseignorable */,
- { 147, 10048, 9376, 3, 3, UNI_NV__1_SLASH_6 } /* nv=1/6 */,
- { 301, 7027, 0, 11, 0, UNI_YISYLLABLES } /* yisyllables */,
- { 9, 10033, 7268, 3, 10, UNI_LB__NS } /* lb=nonstarter */,
- { 192, 5508, 9255, 14, 5, -UNI_PATSYN } /* patternsyntax=false */,
- { 1, 8954, 26, 6, 1, UNI__PERL_NCHAR } /* nchar=y */,
- { 1, 5986, 5648, 13, 6, UNI_NV__100000 } /* numericvalue=100000 */,
- { 5, 2224, 7389, 3, 9, UNI_SUPARROWSB } /* insuparrowsb */,
- { 0, 10024, 25, 3, 1, UNI_S } /* gc=s */,
- { 0, 5986, 7835, 13, 8, UNI_NV__5_SLASH_2 } /* numericvalue=2.50e+00 */,
- { 303, 5986, 1249, 13, 3, UNI_NV__NAN } /* numericvalue=nan */,
- { 1, 1768, 36, 22, 1, UNI_CWCF } /* changeswhencasefolded=t */,
- { 0, 8688, 7497, 4, 7, UNI_ARABICPFA } /* isarabicpfa */,
- { 264, 8780, 183, 6, 20, UNI_MISCSYMBOLS } /* block=miscellaneoussymbols */,
- { 0, 9277, 6796, 3, 11, UNI_MEDF } /* sc=medefaidrin */,
- { 672, 184, 1466, 3, 23, UNI_DIACRITICALSFORSYMBOLS } /* iscombiningmarksforsymbols */,
- { 3, 9997, 3756, 3, 3, UNI_BC__NSM } /* bc=nsm */,
- { 4, 2569, 18, 20, 1, UNI_VO__R } /* verticalorientation=r */,
- { 3, 9508, 10166, 4, 2, UNI_CCC__8 } /* ccc=kv */,
- { 0, 8762, 0, 6, 0, UNI_alpha_values_index } /* alpha= */,
- { 13, 9768, 8498, 4, 4, UNI_MULT } /* scx=mult */,
- { 2, 5986, 5648, 13, 2, UNI_NV__10 } /* numericvalue=10 */,
- { 0, 8864, 9836, 6, 4, UNI_EMOJI } /* emoji=true */,
- { 0, 2224, 7359, 3, 9, UNI_INSAURASHTRA } /* insaurashtra */,
- { 514, 9444, 10111, 4, 3, UNI_AGE__6_DOT_2 } /* age=v62 */,
- { 1, 184, 2703, 2, 19, UNI_ENCLOSEDALPHANUMSUP } /* isenclosedalphanumsup */,
- { 0, 9768, 9305, 4, 5, UNI_NSHU } /* scx=nushu */,
- { 152, 1746, 4898, 22, 4, UNI_BPT__O } /* bidipairedbrackettype=open */,
- { 15, 184, 183, 2, 34, UNI_MISCPICTOGRAPHS } /* ismiscellaneoussymbolsandpictographs */,
- { 617, 7438, 7603, 10, 9, UNI_WB__ML } /* wordbreak=midletter */,
- { 0, 5986, 8019, 13, 8, UNI_NV__2_SLASH_3 } /* numericvalue=6.67e-01 */,
- { 2306, 9277, 9700, 3, 4, UNI_OLCK } /* sc=olck */,
- { 2184, 9488, 349, 4, 33, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* blk=supplementalsymbolsandpictographs */,
- { 3, 5324, 8479, 4, 5, UNI_INMAKASAR } /* inmakasar */,
- { 1, 9277, 9500, 3, 4, UNI_SC__CAKM } /* sc=cakm */,
- { 2, 3836, 1176, 18, 3, UNI_SORA } /* scriptextensions=sora */,
- { 0, 8589, 7292, 8, 3, UNI_SC__SOGD } /* script=sogd */,
- { 0, 3836, 9038, 17, 6, UNI_YEZI } /* scriptextensions=yezidi */,
- { 0, 5791, 5944, 13, 3, UNI_JG__WAW } /* joininggroup=waw */,
- { 22, 6505, 0, 12, 0, UNI_PHAISTOS } /* phaistosdisc */,
- { 9, 8858, 9255, 6, 5, -UNI_ECOMP } /* ecomp=false */,
- { 1, 9020, 9836, 6, 4, UNI_XPOSIXUPPER } /* upper=true */,
- { 355, 2760, 911, 19, 1, UNI_GCB__V } /* hangulsyllabletype=v */,
- { 0, 1417, 8010, 24, 2, UNI_CCC__36 } /* canonicalcombiningclass=36 */,
- { 0, 9277, 9820, 3, 4, UNI_TFNG } /* sc=tfng */,
- { 1, 1537, 6983, 24, 11, UNI_INPC__TOPANDRIGHT } /* indicpositionalcategory=topandright */,
- { 0, 9277, 8, 4, 3, UNI_SC__KANA } /* sc=kana */,
- { 1, 184, 4718, 2, 15, UNI_LOWERCASELETTER } /* islowercaseletter */,
- { 1, 2529, 0, 4, 0, UNI_TERM } /* term */,
- { 90, 9768, 5171, 4, 4, UNI_CHAM } /* scx=cham */,
- { 1157, 8589, 3079, 7, 4, UNI_SC__COPT } /* script=copt */,
- { 1116, 9488, 2931, 4, 19, UNI_SUPARROWSA } /* blk=supplementalarrowsa */,
- { 1, 8589, 4928, 7, 5, UNI_SC__TAML } /* script=tamil */,
- { 2148, 4598, 0, 15, 0, UNI_DIACRITICALSEXT } /* diacriticalsext */,
- { 10, 9277, 8652, 3, 7, UNI_TAVT } /* sc=taiviet */,
- { 0, 9277, 6181, 3, 12, UNI_SC__GONG } /* sc=gunjalagondi */,
- { 531, 9277, 4448, 3, 5, UNI_BAMU } /* sc=bamum */,
- { 49, 6420, 9316, 3, 4, UNI_INORIYA } /* inoriya */,
- { 1, 10048, 7859, 3, 8, UNI_NV__20000000 } /* nv=20000000 */,
- { 0, 10048, 7851, 3, 8, UNI_NV__1_SLASH_40 } /* nv=2.50e-02 */,
- { 6, 9768, 8786, 4, 6, UNI_CARI } /* scx=carian */,
- { 1, 5986, 7814, 13, 1, UNI_NV__7 } /* numericvalue=7 */,
- { 1, 4033, 3277, 16, 18, UNI_PI } /* generalcategory=initialpunctuation */,
- { 0, 4916, 4386, 3, 15, UNI_TANGUTCOMPONENTS } /* istangutcomponents */,
- { 253, 8652, 0, 7, 0, UNI_TAVT } /* taiviet */,
- { 0, 9488, 908, 4, 14, UNI_PUA } /* blk=privateusearea */,
- { 0, 10288, 10303, 8, 5, UNI_XPOSIXBLANK } /* isxposixblank */,
- { 0, 10048, 7763, 3, 8, UNI_NV__1_SLASH_8 } /* nv=1.25e-01 */,
- { 26, 9488, 3421, 4, 4, UNI_RUMI } /* blk=rumi */,
- { 4, 9488, 4928, 4, 8, UNI_TAMILSUP } /* blk=tamilsup */,
- { 1540, 7088, 3313, 10, 18, UNI_BC__LRI } /* bidiclass=lefttorightisolate */,
- { 0, 3151, 10135, 18, 3, UNI_EPRES } /* emojipresentation=yes */,
- { 0, 4033, 2268, 16, 2, UNI_PD } /* generalcategory=pd */,
- { 2343, 4113, 4974, 3, 14, UNI_VEDICEXT } /* invedicextensions */,
- { 100, 9768, 8936, 4, 4, UNI_LYCI } /* scx=lyci */,
- { 0, 3836, 8291, 17, 8, UNI_TAGB } /* scriptextensions=tagbanwa */,
- { 0, 467, 0, 11, 0, UNI_P } /* punctuation */,
- { 17, 10048, 8710, 3, 3, UNI_NV__600 } /* nv=600 */,
- { 0, 3836, 8421, 17, 4, UNI_ELYM } /* scriptextensions=elym */,
- { 66, 8589, 8924, 7, 4, UNI_LEPC } /* script=lepc */,
- { 2, 9230, 1, 5, 1, -UNI_CWCF } /* cwcf=n */,
- { 6, 9488, 8617, 4, 7, UNI_INSOYOMBO } /* blk=soyombo */,
- { 0, 2608, 0, 6, 0, UNI_BRAH } /* brahmi */,
- { 357, 184, 6829, 2, 11, UNI_MYANMAREXTB } /* ismyanmarextb */,
- { 2136, 9444, 9982, 4, 3, UNI_AGE__6_DOT_3 } /* age=6.3 */,
- { 1655, 9768, 9688, 4, 3, UNI_NKO } /* scx=nko */,
- { 1541, 1417, 7890, 24, 2, UNI_CCC__33 } /* canonicalcombiningclass=33 */,
- { 1, 8774, 0, 6, 0, UNI_bidim_values_index } /* bidim= */,
- { 0, 9768, 9245, 4, 5, UNI_DOGR } /* scx=dogra */,
- { 12, 9508, 9108, 4, 2, UNI_CCC__15 } /* ccc=15 */,
- { 0, 10027, 9784, 3, 4, UNI_JG__SHIN } /* jg=shin */,
- { 280, 8589, 8659, 7, 7, UNI_TIBT } /* script=tibetan */,
- { 17, 10033, 1822, 3, 2, UNI_LB__NL } /* lb=nl */,
- { 1, 3904, 1025, 17, 2, -UNI_UIDEO } /* unifiedideograph=no */,
- { 227, 10048, 9988, 3, 3, UNI_NV__7_SLASH_8 } /* nv=7/8 */,
- { 0, 9768, 3025, 4, 4, UNI_CHER } /* scx=cher */,
- { 2, 3836, 9652, 17, 4, UNI_MERC } /* scriptextensions=merc */,
- { 0, 1417, 18, 24, 1, UNI_CCC__R } /* canonicalcombiningclass=r */,
- { 1, 3836, 8219, 17, 8, UNI_JAVA } /* scriptextensions=javanese */,
- { 0, 4989, 513, 3, 15, UNI_UIDEO } /* isunifiedideograph */,
- { 3, 184, 4478, 2, 4, UNI_BRAI } /* isbrai */,
- { 17, 184, 5158, 2, 14, UNI_INGREEK } /* isgreekandcoptic */,
- { 304, 3836, 7428, 17, 10, UNI_WARA } /* scriptextensions=warangciti */,
- { 832, 2779, 9836, 19, 4, UNI_IDST } /* idstrinaryoperator=true */,
- { 192, 9768, 9285, 4, 4, UNI_LIMB } /* scx=limb */,
- { 5, 3853, 0, 17, 0, UNI_sterm_values_index } /* sentenceterminal= */,
- { 0, 10024, 3985, 3, 16, UNI_PE } /* gc=closepunctuation */,
- { 0, 7088, 5494, 10, 14, UNI_BC__NSM } /* bidiclass=nonspacingmark */,
- { 1232, 4542, 3243, 4, 16, UNI_GEORGIANSUP } /* ingeorgiansupplement */,
- { 1026, 8780, 8211, 6, 8, UNI_JAMOEXTB } /* block=jamoextb */,
- { 8, 9556, 1910, 4, 2, UNI_GCB__CN } /* gcb=cn */,
- { 1, 3133, 3, 18, 1, -UNI_EBASE } /* emojimodifierbase=f */,
- { 0, 8589, 8912, 7, 4, UNI_SC__KHOJ } /* script=khoj */,
- { 0, 184, 8470, 2, 7, UNI_LINA } /* islineara */,
- { 1, 7218, 10030, 10, 2, UNI_GCB__T } /* linebreak=jt */,
- { 136, 10291, 3379, 5, 5, UNI_POSIXSPACE } /* posixspace */,
- { 26, 4116, 4704, 3, 14, UNI_ARMI } /* isimperialaramaic */,
- { 0, 5592, 0, 14, 0, UNI_ZS } /* spaceseparator */,
- { 39, 10048, 7468, 3, 9, UNI_NV___MINUS_1_SLASH_2 } /* nv=-5.00e-01 */,
- { 2405, 8984, 9255, 6, 5, -UNI_QMARK } /* qmark=false */,
- { 1, 8589, 9880, 7, 4, UNI_SC__YI } /* script=yiii */,
- { 0, 21, 6730, 2, 11, UNI_KATAKANAEXT } /* inkatakanaext */,
- { 776, 184, 8477, 2, 7, UNI_MAKA } /* ismakasar */,
- { 1, 2224, 2288, 3, 20, UNI_SINHALAARCHAICNUMBERS } /* insinhalaarchaicnumbers */,
- { 1540, 10296, 8583, 3, 6, UNI_PHAG } /* isphagspa */,
- { 19, 9508, 8793, 5, 4, UNI_CCC__10 } /* ccc=ccc10 */,
- { 0, 9270, 5551, 3, 13, UNI_INPSALTERPAHLAVI } /* inpsalterpahlavi */,
- { 36, 2032, 1025, 22, 2, -UNI__PERL_NCHAR } /* noncharactercodepoint=no */,
- { 23, 9488, 4145, 4, 16, UNI_LINEARBIDEOGRAMS } /* blk=linearbideograms */,
- { 617, 3379, 26, 6, 1, UNI_XPOSIXSPACE } /* space=y */,
- { 137, 184, 2912, 2, 19, UNI_SUNDANESESUP } /* issundanesesupplement */,
- { 770, 9508, 2809, 4, 2, UNI_CCC__1 } /* ccc=ov */,
- { 0, 1417, 9116, 25, 4, UNI_CCC__17 } /* canonicalcombiningclass=ccc17 */,
- { 271, 5986, 7907, 13, 8, UNI_NV__3_SLASH_8 } /* numericvalue=3.75e-01 */,
- { 1028, 8780, 4554, 7, 14, UNI_CONTROLPICTURES } /* block=controlpictures */,
- { 400, 8780, 8421, 6, 7, UNI_INELYMAIC } /* block=elymaic */,
- { 0, 9270, 2449, 5, 4, UNI_INPC__LEFT } /* inpc=left */,
- { 0, 8688, 9066, 3, 4, UNI_ADLM } /* isadlam */,
- { 0, 8589, 9748, 7, 4, UNI_RJNG } /* script=rjng */,
- { 0, 9230, 9255, 5, 5, -UNI_CWCF } /* cwcf=false */,
- { 3, 5116, 9255, 14, 5, -UNI_EMOD } /* emojimodifier=false */,
- { 259, 5578, 49, 14, 2, UNI_SB__AT } /* sentencebreak=at */,
- { 0, 9277, 7621, 3, 9, UNI_NBAT } /* sc=nabataean */,
- { 2, 184, 3098, 2, 5, UNI_ECOMP } /* isecomp */,
- { 36, 3836, 9872, 17, 4, UNI_XPEO } /* scriptextensions=xpeo */,
- { 1808, 10027, 2223, 3, 3, UNI_JG__AIN } /* jg=ain */,
- { 0, 4116, 3735, 3, 16, UNI_INDICSIYAQNUMBERS } /* isindicsiyaqnumbers */,
- { 0, 10033, 2640, 3, 2, UNI_LB__BA } /* lb=ba */,
- { 0, 10346, 8682, 4, 5, UNI_ZZZZ } /* isunknown */,
- { 1, 9277, 9560, 3, 4, UNI_SC__GONG } /* sc=gong */,
- { 14, 5508, 1, 14, 1, -UNI_PATSYN } /* patternsyntax=n */,
- { 1, 10009, 8163, 3, 8, UNI_DT__FRA } /* dt=fraction */,
- { 13, 8589, 382, 7, 4, UNI_EGYP } /* script=egyp */,
- { 0, 2182, 5746, 21, 5, UNI_WB__EB } /* graphemeclusterbreak=ebase */,
- { 542, 184, 7368, 2, 10, UNI_SMALLFORMS } /* issmallforms */,
- { 0, 9240, 1, 5, 1, -UNI_DASH } /* dash=n */,
- { 0, 3836, 6840, 17, 4, UNI_NAND } /* scriptextensions=nand */,
- { 0, 9277, 6840, 3, 11, UNI_SC__NAND } /* sc=nandinagari */,
- { 0, 8780, 1723, 6, 23, UNI_SUPPUNCTUATION } /* block=supplementalpunctuation */,
- { 0, 9492, 17, 4, 1, UNI_BPT__O } /* bpt=o */,
- { 1, 3600, 0, 4, 0, UNI_UCAS } /* ucas */,
- { 329, 5578, 495, 14, 2, UNI_SB__NU } /* sentencebreak=nu */,
- { 0, 8780, 10051, 6, 3, UNI_OCR } /* block=ocr */,
- { 1295, 10296, 6506, 3, 7, UNI_PHAISTOS } /* isphaistos */,
- { 72, 3836, 9804, 17, 4, UNI_TALE } /* scriptextensions=tale */,
- { 0, 10027, 5396, 3, 14, UNI_JG__MANICHAEANRESH } /* jg=manichaeanresh */,
- { 4, 10048, 9904, 3, 3, UNI_NV__1_SLASH_5 } /* nv=1/5 */,
- { 2184, 133, 0, 4, 0, UNI_M } /* mark */,
- { 1, 184, 6609, 2, 10, UNI_DEP } /* isdeprecated */,
- { 76, 4688, 6433, 15, 12, UNI_IDENTIFIERTYPE__NOTCHARACTER } /* identifiertype=notcharacter */,
- { 0, 2224, 1295, 3, 24, UNI_SUPERANDSUB } /* insuperscriptsandsubscripts */,
- { 0, 9277, 3115, 3, 10, UNI_SC__DEVA } /* sc=devanagari */,
- { 0, 2224, 7379, 3, 9, UNI_SUPARROWSA } /* insuparrowsa */,
- { 0, 10048, 8027, 3, 8, UNI_NV__15_SLASH_2 } /* nv=7.50e+00 */,
- { 12, 1552, 44, 10, 1, UNI_SK } /* category=sk */,
- { 0, 184, 2560, 2, 4, UNI_MAND } /* ismand */,
- { 0, 9508, 8, 4, 1, UNI_CCC__A } /* ccc=a */,
- { 261, 6385, 0, 12, 0, UNI_GONM } /* masaramgondi */,
- { 1, 8780, 1393, 6, 24, UNI_ARABICPFB } /* block=arabicpresentationformsb */,
- { 62, 1417, 8568, 24, 7, UNI_CCC__1 } /* canonicalcombiningclass=overlay */,
- { 386, 5986, 7754, 13, 2, UNI_NV__11 } /* numericvalue=11 */,
- { 0, 9628, 0, 4, 0, UNI_LATN } /* latn */,
- { 0, 9275, 5634, 5, 14, UNI_INSC__VOWELDEPENDENT } /* insc=voweldependent */,
- { 0, 9444, 10114, 4, 3, UNI_AGE__6_DOT_3 } /* age=v63 */,
- { 139, 8780, 2608, 6, 6, UNI_INBRAHMI } /* block=brahmi */,
- { 0, 8780, 4289, 6, 16, UNI_MYANMAREXTB } /* block=myanmarextendedb */,
- { 91, 10060, 3, 3, 1, -UNI_RI } /* ri=f */,
- { 74, 8589, 9824, 7, 4, UNI_SC__TGLG } /* script=tglg */,
- { 15, 9277, 3753, 5, 15, UNI_KITS } /* sc=khitansmallscript */,
- { 0, 9676, 0, 4, 0, UNI_NARB } /* narb */,
- { 1, 2784, 7060, 4, 8, UNI_ARABICEXTA } /* inarabicexta */,
- { 6, 8589, 9876, 7, 4, UNI_XSUX } /* script=xsux */,
- { 0, 2280, 7280, 4, 8, UNI_XPEO } /* isoldpersian */,
- { 0, 184, 5674, 2, 12, UNI_BIDIM } /* isbidimirrored */,
- { 1305, 8894, 3, 6, 1, -UNI_JOINC } /* joinc=f */,
- { 13, 5791, 6337, 13, 12, UNI_JG__MALAYALAMNYA } /* joininggroup=malayalamnya */,
- { 798, 184, 1631, 2, 15, UNI_GEOMETRICSHAPES } /* isgeometricshapes */,
- { 1, 1188, 4386, 3, 15, UNI_TANGUTCOMPONENTS } /* intangutcomponents */,
- { 513, 10033, 1527, 3, 9, UNI_LB__SG } /* lb=surrogate */,
- { 5, 184, 7119, 3, 9, UNI_CHRS } /* ischorasmian */,
- { 224, 9712, 0, 4, 0, UNI_OSGE } /* osge */,
- { 0, 8267, 9836, 8, 4, UNI_RADICAL } /* radical=true */,
- { 59, 9768, 6973, 5, 10, UNI_SYLO } /* scx=sylotinagri */,
- { 1, 8780, 218, 7, 32, UNI_DIACRITICALSEXT } /* block=combiningdiacriticalmarksextended */,
- { 608, 5986, 9976, 13, 3, UNI_NV__5_SLASH_8 } /* numericvalue=5/8 */,
- { 2, 5986, 9360, 13, 4, UNI_NV___MINUS_1_SLASH_2 } /* numericvalue=-1/2 */,
- { 705, 10024, 5726, 3, 13, UNI_ME } /* gc=enclosingmark */,
- { 82, 8589, 4149, 8, 3, UNI_SARB } /* script=sarb */,
- { 0, 7418, 36, 10, 1, UNI_XPOSIXUPPER } /* uppercase=t */,
- { 0, 5791, 8918, 13, 6, UNI_JG__LAMADH } /* joininggroup=lamadh */,
- { 514, 8589, 8107, 7, 8, UNI_BALI } /* script=balinese */,
- { 0, 2161, 9836, 21, 4, UNI_EXTPICT } /* extendedpictographic=true */,
- { 64, 3836, 8187, 17, 4, UNI_HIRA } /* scriptextensions=hira */,
- { 16, 9488, 7239, 4, 2, UNI_INVS } /* blk=vs */,
- { 1616, 8589, 7428, 7, 10, UNI_WARA } /* script=warangciti */,
- { 0, 10288, 62, 8, 5, UNI_XPOSIXGRAPH } /* isxposixgraph */,
- { 1, 3379, 0, 6, 0, UNI_wspace_values_index } /* space= */,
- { 1042, 4658, 0, 15, 0, UNI_grext_values_index } /* graphemeextend= */,
- { 1, 10048, 9379, 3, 2, UNI_NV__41 } /* nv=41 */,
- { 5, 2280, 262, 3, 3, UNI_OSMA } /* isosma */,
- { 0, 1966, 4913, 22, 15, UNI_INSC__REGISTERSHIFTER } /* indicsyllabiccategory=registershifter */,
- { 0, 1812, 3, 22, 1, -UNI_CWL } /* changeswhenlowercased=f */,
- { 0, 184, 27, 2, 2, UNI_LOWERCASELETTER } /* isll */,
- { 0, 8780, 1879, 7, 21, UNI_CJKCOMPATIDEOGRAPHSSUP } /* block=cjkcompatideographssup */,
- { 0, 10048, 9412, 3, 4, UNI_NV__17_SLASH_2 } /* nv=17/2 */,
- { 0, 9262, 866, 3, 2, UNI_SB__SP } /* sb=sp */,
- { 37, 4838, 47, 15, 1, UNI_NFCQC__M } /* nfkcquickcheck=m */,
- { 224, 8589, 9664, 7, 4, UNI_MRO } /* script=mroo */,
- { 1, 9488, 689, 4, 30, UNI_CJKEXTG } /* blk=cjkunifiedideographsextensiong */,
- { 1, 184, 9285, 2, 5, UNI_LIMB } /* islimbu */,
- { 17, 5986, 7806, 13, 1, UNI_NV__6 } /* numericvalue=6 */,
- { 0, 7540, 26, 9, 1, UNI_EXT } /* extender=y */,
- { 607, 9277, 9320, 3, 5, UNI_OSGE } /* sc=osage */,
- { 2, 9768, 8618, 5, 6, UNI_SOYO } /* scx=soyombo */,
- { 0, 5746, 36, 6, 1, UNI_EBASE } /* ebase=t */,
- { 0, 3836, 8990, 17, 6, UNI_RJNG } /* scriptextensions=rejang */,
- { 5, 9768, 9696, 4, 4, UNI_OGAM } /* scx=ogam */,
- { 4, 3374, 3, 11, 1, -UNI_XPOSIXSPACE } /* whitespace=f */,
- { 12, 184, 1901, 3, 5, UNI_ZYYY } /* iscommon */,
- { 546, 10296, 7685, 3, 8, UNI_PAUC } /* ispaucinhau */,
- { 0, 6469, 5904, 12, 4, UNI_NV__NAN } /* numerictype=none */,
- { 80, 9277, 4793, 3, 15, UNI_MERC } /* sc=meroiticcursive */,
- { 128, 8780, 6554, 6, 3, UNI_INIDC } /* block=idc */,
- { 2, 9444, 7979, 4, 3, UNI_AGE__6 } /* age=6.0 */,
- { 0, 1269, 0, 25, 0, UNI_compex_values_index } /* fullcompositionexclusion= */,
- { 1040, 9277, 8464, 4, 6, UNI_SC__KALI } /* sc=kayahli */,
- { 1, 1417, 9203, 24, 2, UNI_CCC__34 } /* canonicalcombiningclass=34 */,
- { 29, 3836, 6181, 17, 12, UNI_GONG } /* scriptextensions=gunjalagondi */,
- { 0, 3151, 1, 18, 1, -UNI_EPRES } /* emojipresentation=n */,
- { 45, 5791, 6373, 13, 12, UNI_JG__MANICHAEANPE } /* joininggroup=manichaeanpe */,
- { 0, 2224, 8611, 3, 6, UNI_INSIDDHAM } /* insiddham */,
- { 24, 6061, 1, 12, 1, -UNI_BIDIC } /* bidicontrol=n */,
- { 4, 184, 6505, 2, 12, UNI_PHAISTOS } /* isphaistosdisc */,
- { 0, 5986, 9405, 13, 3, UNI_NV__3_SLASH_2 } /* numericvalue=3/2 */,
- { 0, 1552, 4568, 9, 14, UNI_SC } /* category=currencysymbol */,
- { 80, 10333, 9789, 3, 3, UNI_SHRD } /* isshrd */,
- { 3, 9275, 3615, 5, 17, UNI_INSC__CONSONANTPREFIXED } /* insc=consonantprefixed */,
- { 0, 9508, 7930, 4, 2, UNI_CCC__14 } /* ccc=14 */,
- { 0, 9277, 6409, 3, 12, UNI_MEND } /* sc=mendekikakui */,
- { 33, 9277, 9576, 3, 4, UNI_SC__GURU } /* sc=guru */,
- { 0, 4916, 4929, 3, 7, UNI_TAMILSUP } /* istamilsup */,
- { 18, 9488, 3938, 5, 10, UNI_BOPOMOFOEXT } /* blk=bopomofoext */,
- { 19, 184, 2608, 2, 4, UNI_BRAH } /* isbrah */,
- { 1, 9488, 8900, 4, 6, UNI_INKAITHI } /* blk=kaithi */,
- { 0, 5791, 6950, 13, 11, UNI_JG__STRAIGHTWAW } /* joininggroup=straightwaw */,
- { 16, 9262, 1867, 3, 5, UNI_SB__UP } /* sb=upper */,
- { 2, 4916, 8667, 3, 6, UNI_TIRH } /* istirhuta */,
- { 3, 8267, 9255, 8, 5, -UNI_RADICAL } /* radical=false */,
- { 2185, 9488, 4129, 4, 6, UNI_LATIN1 } /* blk=latin1 */,
- { 986, 184, 2099, 3, 20, UNI_CJKCOMPATFORMS } /* iscjkcompatibilityforms */,
- { 680, 3901, 8181, 4, 6, UNI_INGURMUKHI } /* ingurmukhi */,
- { 1185, 1188, 8584, 3, 3, UNI_TAGS } /* intags */,
- { 242, 9768, 8604, 5, 6, UNI_SHAW } /* scx=shavian */,
- { 0, 184, 3576, 3, 2, UNI_CWL } /* iscwl */,
- { 0, 1417, 9925, 24, 3, UNI_CCC__BL } /* canonicalcombiningclass=218 */,
- { 436, 3836, 6385, 17, 12, UNI_GONM } /* scriptextensions=masaramgondi */,
- { 0, 184, 9568, 2, 4, UNI_GREK } /* isgrek */,
- { 6, 4542, 4051, 4, 9, UNI_GEORGIANEXT } /* ingeorgianext */,
- { 0, 3836, 9032, 17, 6, UNI_WCHO } /* scriptextensions=wancho */,
- { 0, 4688, 8972, 15, 6, UNI_IDENTIFIERTYPE__NOTXID } /* identifiertype=notxid */,
- { 1, 9520, 10135, 4, 3, UNI_CWL } /* cwl=yes */,
- { 232, 184, 1823, 2, 5, UNI_XPOSIXLOWER } /* islower */,
- { 2, 184, 6265, 2, 12, UNI_NL } /* isletternumber */,
- { 462, 9508, 9952, 4, 3, UNI_CCC__IS } /* ccc=240 */,
- { 133, 3836, 8470, 17, 7, UNI_LINA } /* scriptextensions=lineara */,
- { 164, 9716, 9255, 4, 5, -UNI_PCM } /* pcm=false */,
- { 1876, 10333, 1537, 3, 3, UNI_SIND } /* issind */,
- { 0, 9508, 8805, 5, 4, UNI_CCC__11 } /* ccc=ccc11 */,
- { 3, 8589, 4478, 7, 7, UNI_BRAI } /* script=braille */,
- { 17, 9508, 8819, 4, 3, UNI_CCC__129 } /* ccc=129 */,
- { 1, 3349, 0, 18, 0, UNI_ZP } /* paragraphseparator */,
- { 2098, 8780, 4385, 6, 6, UNI_INTANGUT } /* block=tangut */,
- { 0, 10027, 10021, 3, 3, UNI_JG__GAF } /* jg=gaf */,
- { 0, 7218, 5999, 10, 13, UNI_LB__PR } /* linebreak=prefixnumeric */,
- { 49, 1417, 9111, 25, 4, UNI_CCC__16 } /* canonicalcombiningclass=ccc16 */,
- { 45, 2779, 1025, 19, 2, -UNI_IDST } /* idstrinaryoperator=no */,
- { 0, 5324, 5949, 4, 11, UNI_MAYANNUMERALS } /* inmayannumerals */,
- { 216, 7218, 1465, 10, 13, UNI_LB__CM } /* linebreak=combiningmark */,
- { 1408, 4337, 0, 16, 0, UNI_SUPMATHOPERATORS } /* supmathoperators */,
- { 0, 1552, 2349, 9, 20, UNI_PC } /* category=connectorpunctuation */,
- { 0, 8930, 36, 6, 1, UNI_XPOSIXLOWER } /* lower=t */,
- { 0, 5578, 751, 14, 5, UNI_SB__CL } /* sentencebreak=close */,
- { 0, 5791, 0, 13, 0, UNI_jg_values_index } /* joininggroup= */,
- { 8, 184, 2912, 2, 12, UNI_SUNDANESESUP } /* issundanesesup */,
- { 1363, 5494, 0, 14, 0, UNI_MN } /* nonspacingmark */,
- { 0, 9488, 8491, 4, 7, UNI_INMARCHEN } /* blk=marchen */,
- { 0, 3836, 6973, 18, 3, UNI_SYLO } /* scriptextensions=sylo */,
- { 0, 7388, 0, 10, 0, UNI_SUPARROWSB } /* suparrowsb */,
- { 927, 9768, 9756, 4, 4, UNI_RUNR } /* scx=runr */,
- { 0, 3151, 9255, 18, 5, -UNI_EPRES } /* emojipresentation=false */,
- { 0, 6420, 8562, 3, 6, UNI_INOSMANYA } /* inosmanya */,
- { 5, 9488, 1006, 4, 17, UNI_ANCIENTGREEKMUSIC } /* blk=ancientgreekmusic */,
- { 0, 9556, 10015, 4, 3, UNI_WB__EB } /* gcb=ebg */,
- { 0, 8780, 867, 6, 18, UNI_PHONETICEXT } /* block=phoneticextensions */,
- { 0, 3836, 9644, 17, 4, UNI_MEDF } /* scriptextensions=medf */,
- { 0, 5986, 7931, 13, 8, UNI_NV__5_SLASH_12 } /* numericvalue=4.17e-01 */,
- { 0, 9275, 728, 5, 6, UNI_INSC__NUMBER } /* insc=number */,
- { 1, 5986, 8720, 13, 5, UNI_NV__40000 } /* numericvalue=40000 */,
- { 769, 5791, 5934, 13, 13, UNI_JG__MANICHAEANWAW } /* joininggroup=manichaeanwaw */,
- { 2308, 3836, 5003, 17, 15, UNI_ZANB } /* scriptextensions=zanabazarsquare */,
- { 10, 2784, 1371, 4, 22, UNI_ARABICPFA } /* inarabicpresentationformsa */,
- { 0, 9492, 1, 4, 1, UNI_BPT__N } /* bpt=n */,
- { 1, 9780, 0, 4, 0, UNI_SHAW } /* shaw */,
- { 40, 7076, 1586, 3, 13, UNI_BYZANTINEMUSIC } /* inbyzantinemusic */,
- { 0, 9488, 9096, 5, 4, UNI_INBUHID } /* blk=buhid */,
- { 1364, 8589, 2560, 7, 4, UNI_SC__MAND } /* script=mand */,
- { 541, 2280, 7668, 4, 7, UNI_ORKH } /* isoldturkic */,
- { 11, 10048, 9372, 3, 3, UNI_NV__1_SLASH_4 } /* nv=1/4 */,
- { 0, 3836, 9608, 17, 4, UNI_KITS } /* scriptextensions=kits */,
- { 1, 9277, 7651, 3, 4, UNI_ITAL } /* sc=ital */,
- { 0, 8780, 8171, 6, 8, UNI_INGUJARATI } /* block=gujarati */,
- { 4, 10027, 4763, 3, 15, UNI_JG__MANICHAEANSADHE } /* jg=manichaeansadhe */,
- { 2560, 8780, 3421, 6, 18, UNI_RUMI } /* block=ruminumeralsymbols */,
- { 691, 10027, 5918, 3, 3, UNI_JG__TAW } /* jg=taw */,
- { 1, 10024, 5040, 3, 5, UNI_XPOSIXDIGIT } /* gc=digit */,
- { 0, 8780, 1922, 6, 22, UNI_DIACRITICALSFORSYMBOLS } /* block=diacriticalsforsymbols */,
- { 7, 9768, 9460, 4, 4, UNI_ARMI } /* scx=armi */,
- { 0, 9768, 2329, 4, 20, UNI_HLUW } /* scx=anatolianhieroglyphs */,
- { 786, 1552, 5726, 9, 13, UNI_ME } /* category=enclosingmark */,
- { 5, 8267, 3, 8, 1, -UNI_RADICAL } /* radical=f */,
- { 3779, 8780, 1369, 6, 24, UNI_ARABICPFA } /* block=arabicpresentationformsa */,
- { 0, 7438, 400, 10, 6, UNI_WB__FO } /* wordbreak=format */,
- { 1028, 7218, 1527, 10, 9, UNI_LB__SG } /* linebreak=surrogate */,
- { 0, 9768, 9656, 4, 4, UNI_MIAO } /* scx=miao */,
- { 0, 9277, 9285, 3, 4, UNI_SC__LIMB } /* sc=limb */,
- { 21, 9444, 10105, 4, 3, UNI_AGE__6 } /* age=v60 */,
- { 0, 4448, 0, 15, 0, UNI_BAMUMSUP } /* bamumsupplement */,
- { 404, 184, 9245, 2, 5, UNI_DOGR } /* isdogra */,
- { 0, 3169, 0, 11, 0, UNI_ETHIOPICSUP } /* ethiopicsup */,
- { 833, 184, 4448, 2, 15, UNI_BAMUMSUP } /* isbamumsupplement */,
- { 0, 9488, 2722, 4, 10, UNI_JAMO } /* blk=hanguljamo */,
- { 11, 9696, 0, 4, 0, UNI_OGAM } /* ogam */,
- { 1713, 8589, 9335, 7, 4, UNI_SC__TAKR } /* script=takr */,
- { 5, 10060, 9836, 3, 4, UNI_RI } /* ri=true */,
- { 0, 8780, 7068, 6, 10, UNI_ASCII } /* block=basiclatin */,
- { 16, 9796, 0, 4, 0, UNI_SYRC } /* syrc */,
- { 1097, 6576, 1, 11, 1, -UNI_XPOSIXALPHA } /* alphabetic=n */,
- { 0, 4033, 10168, 16, 2, UNI_CASEDLETTER } /* generalcategory=l& */,
- { 0, 7076, 3938, 3, 7, UNI_INBOPOMOFO } /* inbopomofo */,
- { 0, 8780, 3796, 7, 3, UNI_INCHAM } /* block=cham */,
- { 18, 184, 6884, 2, 11, UNI_HMNG } /* ispahawhhmong */,
- { 1061, 8147, 1, 8, 1, -UNI_EXTPICT } /* extpict=n */,
- { 1898, 10296, 472, 3, 2, UNI_PUA } /* ispua */,
- { 1, 9786, 1702, 4, 21, UNI_SHORTHANDFORMATCONTROLS } /* inshorthandformatcontrols */,
- { 1921, 8780, 1442, 7, 23, UNI_CJKSYMBOLS } /* block=cjksymbolsandpunctuation */,
- { 5, 4808, 0, 15, 0, UNI_MISCPICTOGRAPHS } /* miscpictographs */,
- { 0, 1966, 1244, 22, 25, UNI_INSC__CONSONANTINITIALPOSTFIXED } /* indicsyllabiccategory=consonantinitialpostfixed */,
- { 576, 5986, 8756, 13, 4, UNI_NV__9000 } /* numericvalue=9000 */,
- { 2, 8780, 8380, 7, 6, UNI_CJKEXTE } /* block=cjkexte */,
- { 0, 9488, 316, 4, 33, UNI_SUPMATHOPERATORS } /* blk=supplementalmathematicaloperators */,
- { 243, 9488, 659, 4, 30, UNI_CJKEXTF } /* blk=cjkunifiedideographsextensionf */,
- { 0, 184, 9664, 2, 4, UNI_MRO } /* ismroo */,
- { 0, 9488, 3439, 4, 12, UNI_SMALLKANAEXT } /* blk=smallkanaext */,
- { 184, 184, 6253, 2, 12, UNI_KHMERSYMBOLS } /* iskhmersymbols */,
- { 476, 3836, 7278, 17, 10, UNI_XPEO } /* scriptextensions=oldpersian */,
- { 0, 8666, 0, 4, 0, UNI_TIRH } /* tirh */,
- { 224, 184, 2409, 2, 20, UNI_GLAGOLITICSUP } /* isglagoliticsupplement */,
- { 626, 8589, 5284, 7, 4, UNI_LISU } /* script=lisu */,
- { 20, 2280, 1061, 3, 26, UNI_OCR } /* isopticalcharacterrecognition */,
- { 568, 9277, 8299, 3, 8, UNI_TFNG } /* sc=tifinagh */,
- { 0, 6205, 10135, 12, 3, UNI_IDEO } /* ideographic=yes */,
- { 0, 5713, 0, 13, 0, UNI_XPOSIXDIGIT } /* decimalnumber */,
- { 0, 21, 7576, 2, 9, UNI_LATINEXTB } /* inlatinextb */,
- { 3194, 10048, 8720, 3, 2, UNI_NV__40 } /* nv=40 */,
- { 0, 5791, 5921, 13, 13, UNI_JG__MANICHAEANTEN } /* joininggroup=manichaeanten */,
- { 4, 6231, 4560, 9, 8, UNI_CONTROLPICTURES } /* incontrolpictures */,
- { 1284, 8768, 10135, 6, 3, UNI_BIDIC } /* bidic=yes */,
- { 3068, 2268, 0, 2, 0, UNI_PD } /* pd */,
- { 0, 6553, 1025, 12, 2, -UNI_XIDC } /* xidcontinue=no */,
- { 14, 184, 132, 2, 2, UNI_LM } /* islm */,
- { 8, 8589, 6481, 7, 12, UNI_HUNG } /* script=oldhungarian */,
- { 0, 10132, 7612, 3, 6, UNI_WB__MN } /* wb=midnum */,
- { 0, 4033, 6035, 16, 2, UNI_PF } /* generalcategory=pf */,
- { 4, 9520, 26, 4, 1, UNI_CWL } /* cwl=y */,
- { 1, 5986, 7469, 13, 1, UNI_NV__5 } /* numericvalue=5 */,
- { 0, 9488, 4449, 5, 14, UNI_BAMUMSUP } /* blk=bamumsupplement */,
- { 4, 8780, 908, 6, 14, UNI_PUA } /* block=privateusearea */,
- { 2707, 8694, 1, 7, 1, -UNI_XPOSIXSPACE } /* wspace=n */,
- { 292, 3683, 0, 17, 0, UNI_ETHIOPICEXTA } /* ethiopicextendeda */,
- { 0, 9768, 8680, 4, 7, UNI_ZZZZ } /* scx=unknown */,
- { 323, 4791, 2062, 3, 14, UNI_MODIFIERLETTERS } /* inmodifierletters */,
- { 20, 7028, 7028, 3, 10, UNI_YISYLLABLES } /* isyisyllables */,
- { 1, 9624, 0, 3, 0, UNI_LAO } /* lao */,
- { 2, 8870, 9255, 6, 5, -UNI_EPRES } /* epres=false */,
- { 529, 3836, 7694, 18, 8, UNI_SAMR } /* scriptextensions=samaritan */,
- { 3055, 9444, 9979, 4, 3, UNI_AGE__6_DOT_1 } /* age=6.1 */,
- { 3202, 10012, 7486, 3, 9, UNI_EA__A } /* ea=ambiguous */,
- { 0, 1417, 9208, 24, 2, UNI_CCC__35 } /* canonicalcombiningclass=35 */,
- { 1, 184, 9688, 2, 3, UNI_NKO } /* isnko */,
- { 0, 9350, 10135, 5, 3, UNI_XIDS } /* xids=yes */,
- { 161, 7418, 9836, 10, 4, UNI_XPOSIXUPPER } /* uppercase=true */,
- { 0, 1552, 47, 10, 1, UNI_SM } /* category=sm */,
- { 0, 9277, 9568, 3, 4, UNI_SC__GREK } /* sc=grek */,
- { 0, 8589, 6193, 7, 6, UNI_HEBR } /* script=hebrew */,
- { 3120, 184, 5550, 2, 14, UNI_PHLP } /* ispsalterpahlavi */,
- { 1046, 7155, 6321, 3, 3, UNI_HMNG } /* ishmng */,
- { 0, 8984, 26, 6, 1, UNI_QMARK } /* qmark=y */,
- { 73, 1218, 0, 8, 0, UNI_KANA } /* katakana */,
- { 0, 8589, 8344, 7, 4, UNI_SC__BENG } /* script=beng */,
- { 1289, 7, 0, 18, 0, UNI_CANS } /* canadianaboriginal */,
- { 1836, 1591, 3170, 3, 17, UNI_ETHIOPICSUP } /* inethiopicsupplement */,
- { 3201, 5032, 10135, 14, 3, UNI_POSIXXDIGIT } /* asciihexdigit=yes */,
- { 7, 8449, 1025, 7, 2, -UNI_HYPHEN } /* hyphen=no */,
- { 136, 9488, 1911, 4, 11, UNI_NUMBERFORMS } /* blk=numberforms */,
- { 1674, 9508, 7933, 4, 2, UNI_CCC__17 } /* ccc=17 */,
- { 0, 8512, 47, 7, 1, UNI_NFCQC__M } /* nfkcqc=m */,
- { 139, 9786, 8605, 4, 5, UNI_SHAW } /* inshavian */,
- { 0, 6420, 7658, 3, 8, UNI_INOLDPERMIC } /* inoldpermic */,
- { 0, 1654, 0, 6, 0, UNI_HANG } /* hangul */,
- { 0, 5578, 0, 16, 0, UNI_SB__SP } /* sentencebreak=sp */,
- { 332, 4033, 1025, 16, 2, UNI_NO } /* generalcategory=no */,
- { 2690, 1417, 9218, 24, 2, UNI_CCC__84 } /* canonicalcombiningclass=84 */,
- { 0, 1189, 11, 3, 2, UNI_NT__DI } /* nt=di */,
- { 12, 7218, 1140, 10, 26, UNI_LB__CJ } /* linebreak=conditionaljapanesestarter */,
- { 3801, 6241, 6994, 12, 11, UNI_JT__T } /* joiningtype=transparent */,
- { 0, 8688, 3548, 3, 9, UNI_ALCHEMICAL } /* isalchemical */,
- { 816, 6554, 1025, 11, 2, -UNI_IDC } /* idcontinue=no */,
- { 1, 10176, 0, 2, 0, UNI_ZL } /* zl */,
- { 24, 9250, 0, 6, 0, -UNI_EMOD } /* emod=f */,
- { 0, 1790, 9255, 22, 5, -UNI_CWCM } /* changeswhencasemapped=false */,
- { 2428, 10027, 9744, 3, 4, UNI_JG__QAPH } /* jg=qaph */,
- { 1, 3853, 26, 17, 1, UNI_STERM } /* sentenceterminal=y */,
- { 2398, 4542, 3243, 4, 6, UNI_INGEORGIAN } /* ingeorgian */,
- { 531, 184, 9676, 2, 4, UNI_NARB } /* isnarb */,
- { 12, 8780, 7693, 6, 9, UNI_INSAMARITAN } /* block=samaritan */,
- { 5, 1417, 8805, 25, 4, UNI_CCC__11 } /* canonicalcombiningclass=ccc11 */,
- { 0, 9488, 4369, 4, 9, UNI_SYRIACSUP } /* blk=syriacsup */,
- { 4367, 8780, 5752, 6, 8, UNI_GREEKEXT } /* block=greekext */,
- { 0, 1537, 1924, 4, 20, UNI_DIACRITICALSFORSYMBOLS } /* indiacriticalsforsymbols */,
- { 0, 3836, 8561, 17, 4, UNI_OSMA } /* scriptextensions=osma */,
- { 3590, 9508, 8811, 5, 4, UNI_CCC__12 } /* ccc=ccc12 */,
- { 7694, 509, 0, 30, 0, UNI_CJKEXTA } /* cjkunifiedideographsextensiona */,
- { 0, 8780, 6277, 6, 12, UNI_MAHJONG } /* block=mahjongtiles */,
- { 4, 5986, 5648, 13, 4, UNI_NV__1000 } /* numericvalue=1000 */,
- { 0, 2280, 4870, 4, 13, UNI_NARB } /* isoldnortharabian */,
- { 7122, 8780, 3751, 6, 17, UNI_INKHITANSMALLSCRIPT } /* block=khitansmallscript */,
- { 5, 9277, 8219, 3, 4, UNI_SC__JAVA } /* sc=java */
+ { 12, 2732, 4987, 5, 9, UNI_ALCHEMICAL } /* blk=alchemical */,
+ { 1, 2, 8214, 1, 32, UNI_DIACRITICALSEXT } /* combiningdiacriticalmarksextended */,
+ { 2, 517, 1072, 4, 3, UNI_NV__7_SLASH_12 } /* nv=7/12 */,
+ { 0, 1823, 1385, 7, 6, UNI_SC__THAA } /* script=thaana */,
+ { 5, 895, 569, 5, 2, UNI_AGE__5_DOT_2 } /* age=v52 */,
+ { 0, 1823, 137, 8, 3, UNI_SC__MYMR } /* script=mymr */,
+ { 1, 292, 2655, 3, 10, UNI_NV___MINUS_1_SLASH_2 } /* nv=-5.000e-01 */,
+ { 0, 5658, 5940, 18, 9, UNI_IDENTIFIERTYPE__NOTCHARACTER } /* identifiertype=notcharacter */,
+ { 0, 2324, 991, 6, 6, UNI_INHATRAN } /* block=hatran */,
+ { 3, 339, 582, 5, 2, UNI_CCC__122 } /* ccc=122 */,
+ { 1, 1397, 585, 4, 5, UNI_IDST } /* idst=true */,
+ { 0, 5937, 585, 21, 5, UNI__PERL_NCHAR } /* noncharactercodepoint=true */,
+ { 3, 461, 208, 2, 4, UNI_TGLG } /* istglg */,
+ { 0, 3633, 5635, 13, 3, UNI_LATINEXTG } /* inlatinextendedg */,
+ { 5, 1396, 6621, 3, 3, UNI_XIDC } /* xidc=t */,
+ { 0, 2766, 2483, 3, 11, UNI_CASEDLETTER } /* gc=casedletter */,
+ { 5, 4002, 0, 14, 0, UNI_SK } /* modifiersymbol */,
+ { 1, 4043, 599, 4, 2, -UNI_IDSB } /* idsb=n */,
+ { 0, 6165, 2009, 3, 6, UNI_SC__SYRC } /* sc=syriac */,
+ { 2, 4970, 933, 16, 7, -UNI_EBASE } /* emojimodifierbase=false */,
+ { 3, 1492, 6945, 5, 12, UNI_GEOMETRICSHAPES } /* ingeometricshapes */,
+ { 0, 2324, 1376, 6, 9, UNI_INSAMARITAN } /* block=samaritan */,
+ { 1, 339, 2735, 3, 3, UNI_CCC__AR } /* ccc=ar */,
+ { 3, 8601, 4441, 7, 16, UNI_SMALLFORMS } /* block=smallformvariants */,
+ { 1, 7274, 3554, 9, 13, UNI_ZL } /* category=lineseparator */,
+ { 0, 339, 288, 5, 2, UNI_CCC__130 } /* ccc=130 */,
+ { 0, 461, 248, 2, 5, UNI_XPOSIXCNTRL } /* iscntrl */,
+ { 0, 1823, 369, 7, 6, UNI_GOTH } /* script=gothic */,
+ { 0, 10, 2631, 1, 12, UNI_MAYANNUMERALS } /* mayannumerals */,
+ { 6, 309, 3954, 2, 17, UNI_INCAUCASIANALBANIAN } /* incaucasianalbanian */,
+ { 0, 1396, 934, 8, 6, -UNI_XIDS } /* xidstart=false */,
+ { 6, 1396, 341, 3, 2, UNI_xidc_values_index } /* xidc= */,
+ { 0, 1102, 430, 4, 4, UNI_NKO } /* scx=nkoo */,
+ { 5, 339, 295, 4, 1, UNI_CCC__9 } /* ccc=9 */,
+ { 0, 1671, 0, 7, 0, UNI_CJKEXTD } /* cjkextd */,
+ { 0, 735, 2538, 2, 2, UNI_EA__A } /* ea=a */,
+ { 0, 461, 3026, 2, 2, UNI_PS } /* isps */,
+ { 1, 2324, 5958, 6, 21, UNI_SINHALAARCHAICNUMBERS } /* block=sinhalaarchaicnumbers */,
+ { 2, 1823, 790, 7, 4, UNI_SC__KALI } /* script=kali */,
+ { 0, 7495, 388, 27, 2, UNI_CCC__26 } /* canonicalcombiningclass=ccc26 */,
+ { 10, 3633, 4659, 7, 9, UNI_LATINEXTC } /* inlatinextendedc */,
+ { 1, 4896, 0, 8, 0, UNI_BAMUMSUP } /* bamumsup */,
+ { 4, 172, 0, 4, 0, UNI_RJNG } /* rjng */,
+ { 1, 1397, 934, 7, 2, -UNI_IDS } /* idstart=f */,
+ { 1, 11, 2312, 1, 12, UNI_AEGEANNUMBERS } /* aegeannumbers */,
+ { 1, 6163, 6661, 14, 10, UNI_INSC__CONSONANTHEADLETTER } /* insc=consonantheadletter */,
+ { 1, 406, 599, 2, 3, -UNI_DI } /* di=no */,
+ { 0, 257, 934, 4, 6, -UNI_CWCM } /* cwcm=false */,
+ { 8, 292, 2090, 3, 9, UNI_NV__1_SLASH_8 } /* nv=1.250e-01 */,
+ { 1, 1409, 4698, 4, 12, UNI_LATIN1 } /* latin1supplement */,
+ { 0, 4360, 1479, 10, 5, UNI_LB__SP } /* linebreak=space */,
+ { 0, 1223, 0, 4, 0, UNI_KANA } /* kana */,
+ { 1, 4360, 2043, 10, 2, UNI_GCB__V } /* linebreak=jv */,
+ { 2, 216, 216, 2, 2, UNI_TOTO } /* toto */,
+ { 0, 1494, 5863, 5, 6, UNI_GEORGIANSUP } /* georgiansup */,
+ { 1, 16, 2773, 1, 13, UNI_INGREEK } /* greekandcoptic */,
+ { 3, 1667, 1914, 4, 4, UNI_UCAS } /* blk=ucas */,
+ { 1, 1667, 5778, 4, 21, UNI_ININSCRIPTIONALPARTHIAN } /* blk=inscriptionalparthian */,
+ { 0, 2256, 0, 12, 0, UNI_PHAISTOS } /* phaistosdisc */,
+ { 0, 1102, 4271, 4, 17, UNI_KITS } /* scx=khitansmallscript */,
+ { 0, 6165, 1322, 3, 9, UNI_ITAL } /* sc=olditalic */,
+ { 0, 940, 934, 6, 6, -UNI_COMPEX } /* compex=false */,
+ { 0, 6450, 306, 14, 2, UNI_SB__SP } /* sentencebreak=sp */,
+ { 0, 1906, 1037, 8, 4, UNI_KANAEXTB } /* blk=kanaextb */,
+ { 2, 1667, 5712, 4, 19, UNI_MERO } /* blk=meroitichieroglyphs */,
+ { 0, 7274, 5235, 9, 20, UNI_PC } /* category=connectorpunctuation */,
+ { 0, 1404, 1409, 5, 5, UNI_ASCII } /* basiclatin */,
+ { 3, 2232, 1314, 4, 3, UNI_NV__8000 } /* nv=8000 */,
+ { 2, 5939, 599, 5, 2, -UNI__PERL_NCHAR } /* nchar=n */,
+ { 0, 7495, 346, 27, 2, UNI_CCC__84 } /* canonicalcombiningclass=ccc84 */,
+ { 0, 4424, 1978, 17, 4, UNI_SOGD } /* scriptextensions=sogd */,
+ { 1, 1667, 967, 4, 8, UNI_INGUJARATI } /* blk=gujarati */,
+ { 0, 4424, 406, 17, 4, UNI_DIAK } /* scriptextensions=diak */,
+ { 0, 461, 4845, 2, 17, UNI__PERL_PATWS } /* ispatternwhitespace */,
+ { 0, 4424, 1331, 17, 9, UNI_PERM } /* scriptextensions=oldpermic */,
+ { 0, 309, 499, 2, 6, UNI_INLYDIAN } /* inlydian */,
+ { 1, 2503, 599, 5, 2, -UNI_JOINC } /* joinc=n */,
+ { 1, 2324, 7086, 6, 24, UNI_ARABICPFB } /* block=arabicpresentationformsb */,
+ { 0, 2324, 746, 6, 7, UNI_INMARCHEN } /* block=marchen */,
+ { 0, 4191, 585, 5, 2, UNI_XPOSIXLOWER } /* lower=t */,
+ { 3, 2208, 0, 12, 0, UNI_NV__7_SLASH_12 } /* nv=5.833e-01 */,
+ { 0, 309, 6487, 2, 23, UNI_ZNAMENNYMUSIC } /* inznamennymusicalnotation */,
+ { 2, 6165, 779, 3, 7, UNI_OSMA } /* sc=osmanya */,
+ { 4, 1391, 3191, 2, 3, UNI_WB__LE } /* wb=le */,
+ { 0, 1667, 4725, 4, 16, UNI_TANGUTSUP } /* blk=tangutsupplement */,
+ { 0, 832, 353, 5, 2, UNI_STERM } /* sterm=y */,
+ { 5, 1102, 1829, 3, 5, UNI_MLYM } /* scx=mlym */,
+ { 3, 1667, 3421, 4, 15, UNI_NARB } /* blk=oldnortharabian */,
+ { 1, 1726, 6193, 6, 12, UNI_ARABICSUP } /* isarabicsupplement */,
+ { 0, 1667, 430, 4, 3, UNI_INNKO } /* blk=nko */,
+ { 1, 3984, 353, 17, 4, UNI_EPRES } /* emojipresentation=yes */,
+ { 19, 6163, 1985, 5, 7, UNI_INSC__VISARGA } /* insc=visarga */,
+ { 1, 309, 8660, 2, 42, UNI_UCASEXT } /* inunifiedcanadianaboriginalsyllabicsextended */,
+ { 2, 521, 8556, 5, 3, UNI_PATSYN } /* patsyn=t */,
+ { 0, 461, 168, 2, 4, UNI_COPT } /* isqaac */,
+ { 1, 1582, 0, 10, 0, UNI_PHNX } /* phoenician */,
+ { 6, 2432, 4511, 9, 9, UNI_MYANMAREXTB } /* inmyanmarextendedb */,
+ { 3, 4424, 216, 17, 4, UNI_TOTO } /* scriptextensions=toto */,
+ { 2, 2324, 861, 6, 7, UNI_INTIBETAN } /* block=tibetan */,
+ { 2, 8, 0, 3, 0, UNI_PCM } /* pcm */,
+ { 4, 7134, 1669, 25, 2, UNI_pcm_values_index } /* prependedconcatenationmark= */,
+ { 0, 1823, 4620, 7, 7, UNI_SC__LINB } /* script=linearb */,
+ { 0, 1272, 1037, 5, 4, UNI_CJKEXTB } /* iscjkextb */,
+ { 2, 4424, 493, 17, 4, UNI_KHOJ } /* scriptextensions=khoj */,
+ { 1, 5205, 1553, 5, 9, UNI_MISCARROWS } /* blk=miscarrows */,
+ { 1, 2324, 6228, 8, 8, UNI_CJKSYMBOLS } /* block=cjksymbols */,
+ { 1, 3677, 589, 13, 3, UNI_LATINEXTE } /* islatinextendede */,
+ { 1, 7537, 934, 10, 6, -UNI_XPOSIXALPHA } /* alphabetic=false */,
+ { 3, 380, 0, 6, 0, UNI_HYPHEN } /* hyphen */,
+ { 2, 375, 585, 5, 5, UNI_GREXT } /* grext=true */,
+ { 2, 461, 4620, 2, 7, UNI_LINB } /* islinearb */,
+ { 0, 4360, 209, 10, 2, UNI_LB__GL } /* linebreak=gl */,
+ { 1, 232, 0, 2, 0, UNI_YI } /* yi */,
+ { 1, 5595, 934, 21, 6, -UNI_CWT } /* changeswhentitlecased=false */,
+ { 2, 3502, 7241, 5, 26, UNI_ENCLOSEDCJK } /* blk=enclosedcjklettersandmonths */,
+ { 9, 7274, 8, 9, 1, UNI_P } /* category=p */,
+ { 0, 298, 599, 2, 2, -UNI_RI } /* ri=n */,
+ { 0, 1994, 0, 7, 0, UNI_RADICAL } /* radical */,
+ { 0, 2324, 847, 6, 7, UNI_INTAITHAM } /* block=taitham */,
+ { 0, 4941, 324, 10, 3, UNI_KANASUP } /* block=kanasup */,
+ { 1, 6165, 658, 3, 4, UNI_SC__DOGR } /* sc=dogr */,
+ { 9, 2324, 1834, 6, 11, UNI_INSORASOMPENG } /* block=sorasompeng */,
+ { 4, 21, 2931, 2, 3, UNI_EXT } /* ext=t */,
+ { 2, 4845, 352, 16, 3, UNI__PERL_PATWS } /* patternwhitespace=y */,
+ { 0, 7267, 535, 15, 2, UNI_S } /* generalcategory=s */,
+ { 0, 4360, 2955, 10, 11, UNI_LB__EX } /* linebreak=exclamation */,
+ { 0, 2718, 6312, 3, 3, UNI_BC__PDI } /* bc=pdi */,
+ { 0, 30, 4209, 1, 12, UNI_INPUNCTUATION } /* inpunctuation */,
+ { 4, 1667, 683, 4, 5, UNI_INTAKRI } /* blk=takri */,
+ { 0, 1823, 615, 7, 4, UNI_ELYM } /* script=elym */,
+ { 0, 16, 1426, 1, 4, UNI_XPOSIXCNTRL } /* gc=cc */,
+ { 3, 2514, 2046, 3, 11, UNI_GONM } /* ismasaramgondi */,
+ { 2, 4424, 499, 17, 4, UNI_LYDI } /* scriptextensions=lydi */,
+ { 5, 1823, 1572, 7, 10, UNI_XPEO } /* script=oldpersian */,
+ { 9, 423, 2800, 3, 11, UNI_ALPHABETICPF } /* inalphabeticpf */,
+ { 0, 2842, 5848, 10, 9, UNI_ETHIOPICEXTA } /* isethiopicextendeda */,
+ { 2, 309, 668, 2, 5, UNI_INOGHAM } /* inogham */,
+ { 4, 1509, 0, 4, 0, UNI_JAVA } /* java */,
+ { 7, 6165, 1484, 3, 4, UNI_SC__BUGI } /* sc=bugi */,
+ { 16, 6427, 6447, 13, 3, UNI_JG__QAF } /* joininggroup=qaf */,
+ { 0, 59, 0, 4, 0, UNI_CHRS } /* chrs */,
+ { 2, 7591, 283, 3, 2, UNI_LB__NU } /* lb=nu */,
+ { 2, 2324, 3692, 6, 7, UNI_LISUSUP } /* block=lisusup */,
+ { 0, 7274, 4206, 9, 15, UNI_PS } /* category=openpunctuation */,
+ { 2, 461, 6642, 2, 6, UNI_BRAH } /* isbrahmi */,
+ { 1, 5216, 1505, 11, 4, UNI_LATINEXTA } /* block=latinexta */,
+ { 3, 1776, 1184, 4, 7, UNI_EMOTICONS } /* inemoticons */,
+ { 2, 292, 2084, 3, 2, UNI_NV__11 } /* nv=11 */,
+ { 1, 2536, 6447, 3, 3, UNI_JG__QAF } /* jg=qaf */,
+ { 2, 2324, 1914, 6, 4, UNI_UCAS } /* block=ucas */,
+ { 0, 6076, 2773, 7, 13, UNI_INGREEK } /* block=greekandcoptic */,
+ { 0, 11, 2705, 1, 13, UNI_ANCIENTSYMBOLS } /* ancientsymbols */,
+ { 1, 339, 288, 4, 2, UNI_CCC__30 } /* ccc=30 */,
+ { 2, 3391, 1070, 13, 2, UNI_NV__31 } /* numericvalue=31 */,
+ { 0, 3502, 1037, 12, 4, UNI_ETHIOPICEXTB } /* blk=ethiopicextb */,
+ { 0, 1391, 281, 3, 2, UNI_WB__XX } /* wb=xx */,
+ { 2, 7591, 1864, 3, 5, UNI_EBASE } /* lb=ebase */,
+ { 8, 6165, 1205, 3, 7, UNI_SC__GRAN } /* sc=grantha */,
+ { 3, 2536, 702, 10, 4, UNI_JG__AFRICANNOON } /* jg=africannoon */,
+ { 5, 2842, 2374, 10, 8, UNI_ETHIOPICEXT } /* isethiopicextended */,
+ { 2, 1198, 6557, 5, 19, UNI_CJKCOMPATIDEOGRAPHSSUP } /* incjkcompatideographssup */,
+ { 0, 6165, 608, 3, 4, UNI_ELBA } /* sc=elba */,
+ { 0, 30, 6486, 1, 14, UNI_ZNAMENNYMUSIC } /* isznamennymusic */,
+ { 1, 1823, 1834, 7, 11, UNI_SORA } /* script=sorasompeng */,
+ { 1, 6816, 585, 25, 5, UNI_CWKCF } /* changeswhennfkccasefolded=true */,
+ { 3, 2324, 967, 6, 8, UNI_INGUJARATI } /* block=gujarati */,
+ { 0, 7274, 2814, 12, 8, UNI_SO } /* category=othersymbol */,
+ { 9, 2302, 933, 9, 7, -UNI_IDC } /* idcontinue=false */,
+ { 1, 461, 6692, 2, 15, UNI_TRANSPORTANDMAP } /* istransportandmap */,
+ { 1, 578, 0, 6, 0, UNI_CCC__22 } /* ccc=22 */,
+ { 2, 7134, 353, 26, 4, UNI_PCM } /* prependedconcatenationmark=yes */,
+ { 2, 1790, 0, 11, 0, UNI_NFCQC__M } /* nfcqc=maybe */,
+ { 1, 2324, 4951, 6, 19, UNI_INEGYPTIANHIEROGLYPHS } /* block=egyptianhieroglyphs */,
+ { 0, 1479, 584, 4, 6, UNI_XPOSIXSPACE } /* space=true */,
+ { 0, 5168, 5939, 6, 5, UNI__PERL_NCHAR } /* _perl_nchar */,
+ { 12, 461, 1975, 2, 10, UNI_SOGO } /* isoldsogdian */,
+ { 0, 4502, 70, 11, 2, UNI_LATINEXTC } /* blk=latinextc */,
+ { 0, 1823, 991, 7, 4, UNI_HATR } /* script=hatr */,
+ { 2, 30, 1454, 1, 11, UNI_DEP } /* isdeprecated */,
+ { 1, 1728, 7545, 4, 20, UNI_ARABICPFA } /* arabicpresentationformsa */,
+ { 1, 1102, 1909, 3, 5, UNI_KANA } /* scx=kana */,
+ { 0, 2, 7972, 1, 15, UNI_CUNEIFORMNUMBERS } /* cuneiformnumbers */,
+ { 3, 4424, 1205, 17, 7, UNI_GRAN } /* scriptextensions=grantha */,
+ { 1, 7011, 2538, 23, 2, UNI_CCC__A } /* canonicalcombiningclass=a */,
+ { 0, 11, 0, 4, 0, UNI_ADLM } /* adlm */,
+ { 2, 6165, 1248, 3, 4, UNI_SC__PHAG } /* sc=phag */,
+ { 0, 7214, 345, 25, 2, UNI_CCC__118 } /* canonicalcombiningclass=118 */,
+ { 1, 461, 54, 2, 2, UNI_SC } /* issc */,
+ { 9, 2324, 739, 6, 7, UNI_INMANDAIC } /* block=mandaic */,
+ { 2, 4506, 0, 14, 0, UNI_LATINEXTB } /* latinextendedb */,
+ { 1, 4896, 0, 4, 0, UNI_BAMU } /* bamu */,
+ { 1, 1667, 8660, 4, 43, UNI_UCASEXTA } /* blk=unifiedcanadianaboriginalsyllabicsextendeda */,
+ { 12, 1823, 232, 7, 4, UNI_SC__YI } /* script=yiii */,
+ { 0, 461, 1015, 2, 6, UNI_TELU } /* istelugu */,
+ { 0, 0, 273, 1, 4, UNI_LB__B2 } /* lb=b2 */,
+ { 3, 2, 5694, 1, 10, UNI_COUNTINGROD } /* countingrod */,
+ { 0, 7752, 2270, 23, 4, UNI_JG__MANICHAEANAYIN } /* joininggroup=manichaeanayin */,
+ { 0, 991, 0, 6, 0, UNI_HATR } /* hatran */,
+ { 0, 1015, 0, 4, 0, UNI_TELU } /* telu */,
+ { 0, 271, 2768, 3, 6, UNI_GCB__XX } /* gcb=other */,
+ { 0, 5769, 599, 4, 2, -UNI_EMOD } /* emod=n */,
+ { 0, 3391, 2107, 14, 8, UNI_NV__5_SLASH_2 } /* numericvalue=2.500e+00 */,
+ { 0, 7011, 1678, 24, 2, UNI_CCC__1 } /* canonicalcombiningclass=ov */,
+ { 17, 2324, 6120, 6, 22, UNI_DIACRITICALSFORSYMBOLS } /* block=diacriticalsforsymbols */,
+ { 1, 1823, 156, 7, 4, UNI_SC__OUGR } /* script=ougr */,
+ { 7, 5916, 934, 21, 6, -UNI_LOE } /* logicalorderexception=false */,
+ { 0, 30, 1941, 1, 13, UNI_GRBASE } /* isgraphemebase */,
+ { 0, 2434, 1037, 7, 4, UNI_MYANMAREXTB } /* myanmarextb */,
+ { 0, 1830, 0, 4, 0, UNI_MLYM } /* mlym */,
+ { 1, 4191, 5671, 8, 3, -UNI_XPOSIXLOWER } /* lowercase=n */,
+ { 1, 32, 353, 2, 4, UNI_VS } /* vs=yes */,
+ { 11, 1823, 3436, 7, 15, UNI_SARB } /* script=oldsoutharabian */,
+ { 2, 6427, 4761, 14, 4, UNI_JG__ALAPH } /* joininggroup=alaph */,
+ { 0, 2220, 2107, 4, 8, UNI_NV__13_SLASH_2 } /* nv=6.500e+00 */,
+ { 7, 5574, 599, 21, 3, -UNI_CWL } /* changeswhenlowercased=no */,
+ { 3, 533, 959, 3, 6, UNI_SB__EX } /* sb=extend */,
+ { 0, 461, 176, 2, 4, UNI_ROHG } /* isrohg */,
+ { 0, 2324, 297, 6, 5, UNI_INORIYA } /* block=oriya */,
+ { 4, 4360, 4206, 10, 15, UNI_LB__OP } /* linebreak=openpunctuation */,
+ { 0, 309, 3228, 2, 15, UNI_INIMPERIALARAMAIC } /* inimperialaramaic */,
+ { 2, 271, 585, 3, 2, UNI_GCB__T } /* gcb=t */,
+ { 1, 2324, 3349, 6, 15, UNI_INMEROITICCURSIVE } /* block=meroiticcursive */,
+ { 17, 1479, 933, 4, 3, -UNI_XPOSIXSPACE } /* space=f */,
+ { 0, 34, 4726, 1, 8, UNI_TANGUTSUP } /* tangutsup */,
+ { 1, 2324, 1914, 6, 7, UNI_UCASEXT } /* block=ucasext */,
+ { 4, 6165, 4089, 3, 4, UNI_SC__SIND } /* sc=sind */,
+ { 3, 3014, 343, 11, 3, UNI_IN__12_DOT_1 } /* presentin=v121 */,
+ { 1, 461, 1241, 2, 7, UNI_NB } /* isnoblock */,
+ { 0, 2302, 352, 9, 3, UNI_IDC } /* idcontinue=y */,
+ { 1, 1455, 274, 10, 1, UNI_dep_values_index } /* deprecated= */,
+ { 1, 309, 917, 2, 8, UNI_INBASSAVAH } /* inbassavah */,
+ { 13, 380, 934, 6, 2, -UNI_HYPHEN } /* hyphen=f */,
+ { 2, 997, 0, 6, 0, UNI_KTHI } /* kaithi */,
+ { 1, 2, 7972, 1, 29, UNI_CUNEIFORMNUMBERS } /* cuneiformnumbersandpunctuation */,
+ { 1, 2536, 20, 3, 2, UNI_JG__HE } /* jg=he */,
+ { 2, 7011, 391, 24, 2, UNI_CCC__34 } /* canonicalcombiningclass=34 */,
+ { 4, 4424, 571, 17, 7, UNI_AVST } /* scriptextensions=avestan */,
+ { 2, 6165, 1978, 3, 7, UNI_SC__SOGD } /* sc=sogdian */,
+ { 4, 1456, 4439, 4, 2, UNI_epres_values_index } /* epres= */,
+ { 2, 1102, 951, 4, 4, UNI_DUPL } /* scx=dupl */,
+ { 1, 6165, 3421, 3, 15, UNI_NARB } /* sc=oldnortharabian */,
+ { 3, 1728, 1037, 6, 4, UNI_ARABICEXTB } /* arabicextb */,
+ { 0, 1200, 3611, 3, 6, UNI_CJKCOMPAT } /* cjkcompat */,
+ { 0, 991, 0, 4, 0, UNI_HATR } /* hatr */,
+ { 0, 4424, 1133, 17, 8, UNI_VITH } /* scriptextensions=vithkuqi */,
+ { 3, 1823, 3228, 7, 15, UNI_ARMI } /* script=imperialaramaic */,
+ { 2, 4424, 6185, 17, 10, UNI_GLAG } /* scriptextensions=glagolitic */,
+ { 1, 2432, 8039, 3, 32, UNI_MISCMATHSYMBOLSA } /* inmiscellaneousmathematicalsymbolsa */,
+ { 0, 30, 6796, 1, 19, UNI_DEVANAGARIEXT } /* isdevanagariextended */,
+ { 15, 7267, 4667, 16, 16, UNI_PE } /* generalcategory=closepunctuation */,
+ { 0, 4424, 951, 17, 4, UNI_DUPL } /* scriptextensions=dupl */,
+ { 35658, 6165, 3436, 3, 15, UNI_SARB } /* sc=oldsoutharabian */,
+ { 2, 2324, 8660, 6, 34, UNI_UCAS } /* block=unifiedcanadianaboriginalsyllabics */,
+ { 0, 7011, 1243, 24, 2, UNI_CCC__BL } /* canonicalcombiningclass=bl */,
+ { 1, 2966, 2767, 3, 7, UNI_INSC__OTHER } /* insc=other */,
+ { 0, 1102, 1294, 4, 9, UNI_NBAT } /* scx=nabataean */,
+ { 7, 2766, 269, 3, 2, UNI_ZP } /* gc=zp */,
+ { 1, 1823, 160, 7, 4, UNI_SC__PHLP } /* script=phlp */,
+ { 0, 309, 854, 2, 7, UNI_INTAIVIET } /* intaiviet */,
+ { 9, 959, 599, 8, 2, -UNI_EXT } /* extender=n */,
+ { 0, 461, 3892, 2, 16, UNI_STERM } /* issentenceterminal */,
+ { 1, 6427, 1046, 13, 5, UNI_JG__KHAPH } /* joininggroup=khaph */,
+ { 1, 8658, 5949, 5, 4, UNI_ANY } /* isunicode */,
+ { 4, 7669, 0, 19, 0, UNI_hst_values_index } /* hangulsyllabletype= */,
+ { 0, 1409, 1674, 5, 4, UNI_LATINEXTD } /* latinextd */,
+ { 2, 461, 1543, 2, 4, UNI_KHAR } /* iskhar */,
+ { 1, 2324, 1033, 6, 4, UNI_JAMO } /* block=jamo */,
+ { 5, 54, 5067, 2, 11, UNI_SC__MANI } /* sc=manichaean */,
+ { 3, 6165, 82, 3, 4, UNI_SC__GONG } /* sc=gong */,
+ { 0, 6163, 0, 14, 0, UNI_INSC__CONSONANT } /* insc=consonant */,
+ { 0, 1479, 5671, 4, 4, -UNI_XPOSIXSPACE } /* space=no */,
+ { 1, 1102, 180, 4, 4, UNI_RUNR } /* scx=runr */,
+ { 4, 6427, 2875, 13, 11, UNI_JG__STRAIGHTWAW } /* joininggroup=straightwaw */,
+ { 0, 271, 7134, 4, 7, UNI_GCB__PP } /* gcb=prepend */,
+ { 2, 1823, 2244, 7, 12, UNI_HUNG } /* script=oldhungarian */,
+ { 0, 406, 0, 4, 0, UNI_DIAK } /* diak */,
+ { 5, 1102, 1027, 4, 6, UNI_YEZI } /* scx=yezidi */,
+ { 3, 8343, 7692, 32, 15, UNI_INSC__CONSONANTINITIALPOSTFIXED } /* indicsyllabiccategory=consonantinitialpostfixed */,
+ { 0, 309, 1572, 2, 10, UNI_INOLDPERSIAN } /* inoldpersian */,
+ { 0, 461, 1144, 2, 9, UNI_BHKS } /* isbhaiksuki */,
+ { 0, 2832, 6193, 8, 12, UNI_CYRILLICSUP } /* iscyrillicsupplement */,
+ { 1, 4502, 590, 16, 2, UNI_LATINEXTE } /* blk=latinextendede */,
+ { 0, 2514, 2643, 3, 12, UNI_MISCTECHNICAL } /* ismisctechnical */,
+ { 0, 1883, 934, 11, 2, -UNI_BIDIC } /* bidicontrol=f */,
+ { 2, 4845, 352, 16, 2, UNI_patws_values_index } /* patternwhitespace= */,
+ { 6, 2324, 7796, 6, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* block=enclosedideographicsup */,
+ { 17, 4424, 4176, 17, 4, UNI_HANG } /* scriptextensions=hang */,
+ { 3, 622, 934, 7, 6, -UNI_EXTPICT } /* extpict=false */,
+ { 1, 2324, 1349, 6, 9, UNI_INOLDUYGHUR } /* block=olduyghur */,
+ { 0, 6165, 1819, 3, 4, UNI_SC__MONG } /* sc=mong */,
+ { 1, 3817, 2123, 14, 8, UNI_NV__1_SLASH_64 } /* numericvalue=1.563e-02 */,
+ { 0, 6450, 281, 14, 2, UNI_SB__XX } /* sentencebreak=xx */,
+ { 0, 4970, 584, 16, 3, UNI_EBASE } /* emojimodifierbase=t */,
+ { 7, 3391, 1805, 14, 4, UNI_NV__20000 } /* numericvalue=20000 */,
+ { 2, 5637, 4407, 21, 17, UNI_RI } /* graphemeclusterbreak=regionalindicator */,
+ { 0, 2324, 1117, 6, 8, UNI_INTAGBANWA } /* block=tagbanwa */,
+ { 3, 597, 1743, 3, 4, UNI_DT__VERT } /* dt=vert */,
+ { 2, 6041, 599, 21, 2, UNI_BPT__N } /* bidipairedbrackettype=n */,
+ { 16, 6165, 5857, 3, 9, UNI_SC__MONG } /* sc=mongolian */,
+ { 0, 5532, 934, 21, 2, -UNI_CWCF } /* changeswhencasefolded=f */,
+ { 1, 2766, 50, 3, 2, UNI_MC } /* gc=mc */,
+ { 1, 718, 490, 3, 3, UNI_KANBUN } /* kanbun */,
+ { 0, 257, 0, 4, 0, UNI_CWCM } /* cwcm */,
+ { 0, 3130, 5863, 9, 6, UNI_GEORGIANSUP } /* blk=georgiansup */,
+ { 0, 1823, 450, 7, 4, UNI_MIAO } /* script=plrd */,
+ { 2, 552, 557, 4, 3, UNI_AGE__6 } /* age=6.0 */,
+ { 0, 1102, 6185, 4, 10, UNI_GLAG } /* scx=glagolitic */,
+ { 1, 6062, 1183, 7, 8, UNI_EMOTICONS } /* block=emoticons */,
+ { 57317, 1075, 0, 4, 0, UNI_NV__2 } /* nv=2 */,
+ { 0, 1174, 1933, 3, 9, UNI_EA__A } /* ea=ambiguous */,
+ { 0, 30, 4553, 1, 10, UNI_TITLE } /* istitlecase */,
+ { 0, 4043, 0, 4, 0, UNI_IDSB } /* idsb */,
+ { 3, 466, 82, 2, 2, UNI_SOGO } /* sogo */,
+ { 1, 1667, 3475, 4, 15, UNI_INZANABAZARSQUARE } /* blk=zanabazarsquare */,
+ { 0, 7011, 1905, 24, 2, UNI_CCC__DB } /* canonicalcombiningclass=db */,
+ { 0, 461, 1894, 2, 12, UNI_BIDIM } /* isbidimirrored */,
+ { 0, 309, 1779, 2, 11, UNI_INMEDEFAIDRIN } /* inmedefaidrin */,
+ { 0, 5637, 6, 21, 2, UNI_LB__CR } /* graphemeclusterbreak=cr */,
+ { 2, 725, 0, 7, 0, UNI_KALI } /* kayahli */,
+ { 5, 1200, 377, 3, 4, UNI_CJKEXTH } /* cjkexth */,
+ { 8, 4043, 934, 17, 2, -UNI_IDSB } /* idsbinaryoperator=f */,
+ { 0, 2324, 8214, 7, 32, UNI_DIACRITICALSEXT } /* block=combiningdiacriticalmarksextended */,
+ { 1, 6165, 236, 3, 4, UNI_ZANB } /* sc=zanb */,
+ { 3, 2832, 1037, 10, 4, UNI_CYRILLICEXTB } /* iscyrillicextb */,
+ { 2, 4424, 137, 18, 3, UNI_MYMR } /* scriptextensions=mymr */,
+ { 4, 4360, 7804, 10, 11, UNI_LB__ID } /* linebreak=ideographic */,
+ { 5, 2401, 0, 10, 0, UNI_INETHIOPIC } /* inethiopic */,
+ { 0, 461, 1872, 2, 11, UNI_YISYLLABLES } /* isyisyllables */,
+ { 2, 3502, 4511, 12, 9, UNI_ETHIOPICEXTB } /* blk=ethiopicextendedb */,
+ { 3, 7495, 345, 27, 2, UNI_CCC__18 } /* canonicalcombiningclass=ccc18 */,
+ { 5, 4651, 0, 16, 0, UNI_BOPOMOFOEXT } /* bopomofoextended */,
+ { 0, 1667, 5373, 4, 11, UNI_TAIXUANJING } /* blk=taixuanjing */,
+ { 0, 4206, 0, 15, 0, UNI_PS } /* openpunctuation */,
+ { 0, 1667, 7449, 4, 28, UNI_PHONETICEXTSUP } /* blk=phoneticextensionssupplement */,
+ { 3, 1102, 790, 4, 4, UNI_KALI } /* scx=kali */,
+ { 1, 7383, 6310, 10, 20, UNI_BC__PDF } /* bidiclass=popdirectionalformat */,
+ { 1, 1272, 8474, 5, 23, UNI_CJKCOMPATIDEOGRAPHS } /* iscjkcompatibilityideographs */,
+ { 1, 1102, 39, 4, 4, UNI_BHKS } /* scx=bhks */,
+ { 1, 6185, 0, 4, 0, UNI_GLAG } /* glag */,
+ { 2, 5353, 0, 20, 0, UNI_PHLI } /* inscriptionalpahlavi */,
+ { 0, 2766, 3709, 3, 11, UNI_MC } /* gc=spacingmark */,
+ { 0, 4360, 4667, 10, 16, UNI_LB__CL } /* linebreak=closepunctuation */,
+ { 2, 30, 1925, 1, 7, UNI_S } /* issymbol */,
+ { 0, 3391, 759, 13, 4, UNI_NV___MINUS_1_SLASH_2 } /* numericvalue=-1/2 */,
+ { 2, 1942, 584, 11, 3, UNI_GRBASE } /* graphemebase=t */,
+ { 1, 3093, 585, 13, 5, UNI_POSIXXDIGIT } /* asciihexdigit=true */,
+ { 3, 1102, 1209, 4, 4, UNI_THAI } /* scx=thai */,
+ { 3, 3013, 585, 5, 2, UNI_EPRES } /* epres=t */,
+ { 0, 7274, 3191, 8, 13, UNI_NL } /* category=letternumber */,
+ { 0, 3817, 769, 14, 3, UNI_NV__17_SLASH_2 } /* numericvalue=17/2 */,
+ { 4, 1667, 5897, 4, 19, UNI_SUPARROWSC } /* blk=supplementalarrowsc */,
+ { 0, 461, 283, 2, 5, UNI_NSHU } /* isnushu */,
+ { 1, 2018, 584, 10, 3, UNI_JT__T } /* joiningtype=t */,
+ { 1, 309, 1367, 2, 9, UNI_INPAUCINHAU } /* inpaucinhau */,
+ { 0, 597, 693, 3, 3, UNI_DT__ISO } /* dt=iso */,
+ { 0, 7383, 6291, 11, 19, UNI_BC__LRE } /* bidiclass=lefttorightembedding */,
+ { 2, 5156, 5769, 10, 9, UNI_WB__EB } /* wordbreak=emodifier */,
+ { 0, 5156, 3064, 10, 11, UNI_WB__SQ } /* wordbreak=singlequote */,
+ { 5, 2391, 7467, 10, 13, UNI_CYRILLICSUP } /* incyrillicsupplementary */,
+ { 7, 3633, 4698, 6, 5, UNI_LATIN1 } /* inlatin1sup */,
+ { 1, 6165, 6642, 3, 6, UNI_BRAH } /* sc=brahmi */,
+ { 3, 1102, 1465, 4, 10, UNI_DIAK } /* scx=divesakuru */,
+ { 1, 1102, 402, 4, 4, UNI_ARMN } /* scx=armn */,
+ { 2, 2766, 225, 3, 2, UNI_PE } /* gc=pe */,
+ { 1, 6735, 661, 22, 2, UNI_JG__MALAYALAMRA } /* joininggroup=malayalamra */,
+ { 3, 461, 6776, 2, 21, UNI_MEETEIMAYEKEXT } /* ismeeteimayekextensions */,
+ { 4, 5216, 0, 15, 0, UNI_LATINEXTE } /* block=latinexte */,
+ { 0, 1391, 1645, 3, 7, UNI_WB__LE } /* wb=aletter */,
+ { 2, 461, 1696, 2, 11, UNI_DOMINO } /* isdominotiles */,
+ { 1, 461, 951, 2, 4, UNI_DUPL } /* isdupl */,
+ { 7, 4424, 673, 17, 5, UNI_OSGE } /* scriptextensions=osage */,
+ { 2, 4519, 4511, 14, 9, UNI_CYRILLICEXTB } /* block=cyrillicextendedb */,
+ { 10, 7648, 3276, 18, 3, UNI_DT__ENC } /* decompositiontype=enc */,
+ { 2, 4424, 668, 17, 5, UNI_OGAM } /* scriptextensions=ogham */,
+ { 3, 2301, 933, 10, 7, -UNI_XIDC } /* xidcontinue=false */,
+ { 0, 6735, 783, 22, 3, UNI_JG__MALAYALAMNYA } /* joininggroup=malayalamnya */,
+ { 12, 1102, 909, 4, 8, UNI_BALI } /* scx=balinese */,
+ { 0, 2665, 599, 13, 3, -UNI_PATSYN } /* patternsyntax=no */,
+ { 1, 271, 3191, 2, 7, UNI_L } /* gc=letter */,
+ { 0, 461, 663, 2, 5, UNI_LIMB } /* islimbu */,
+ { 0, 461, 6103, 2, 13, UNI_MATHOPERATORS } /* ismathoperators */,
+ { 0, 2536, 4235, 3, 4, UNI_JG__BETH } /* jg=beth */,
+ { 0, 753, 1792, 3, 5, UNI_NFCQC__M } /* nfkcqc=m */,
+ { 5, 2966, 5409, 3, 17, UNI_SMALLKANAEXT } /* insmallkanaextension */,
+ { 10, 7011, 2290, 25, 2, UNI_CCC__214 } /* canonicalcombiningclass=214 */,
+ { 2, 7274, 3709, 9, 11, UNI_MC } /* category=spacingmark */,
+ { 1, 7274, 199, 9, 2, UNI_TITLE } /* category=lt */,
+ { 0, 7404, 1715, 21, 7, UNI_BC__RLI } /* bidiclass=righttoleftisolate */,
+ { 0, 3391, 1803, 12, 9, UNI_NV__10000000 } /* numericvalue=10000000 */,
+ { 4, 1102, 1438, 4, 10, UNI_CHRS } /* scx=chorasmian */,
+ { 16, 6450, 325, 14, 2, UNI_SB__UP } /* sentencebreak=up */,
+ { 3, 2732, 1037, 10, 4, UNI_ARABICEXTB } /* blk=arabicextb */,
+ { 1, 3817, 389, 14, 1, UNI_NV__16 } /* numericvalue=16 */,
+ { 1, 4845, 5671, 16, 3, -UNI__PERL_PATWS } /* patternwhitespace=n */,
+ { 1, 2, 3938, 1, 16, UNI_UCAS } /* canadiansyllabics */,
+ { 2, 1823, 1205, 7, 4, UNI_SC__GRAN } /* script=gran */,
+ { 0, 2536, 2566, 3, 3, UNI_JG__HEH } /* jg=heh */,
+ { 0, 410, 0, 4, 0, UNI_GONM } /* gonm */,
+ { 5, 2514, 2057, 3, 11, UNI_MATHALPHANUM } /* ismathalphanum */,
+ { 0, 1198, 8214, 3, 32, UNI_DIACRITICALSEXT } /* incombiningdiacriticalmarksextended */,
+ { 2, 309, 6693, 3, 21, UNI_TRANSPORTANDMAP } /* intransportandmapsymbols */,
+ { 0, 7591, 3001, 3, 7, UNI_LB__NU } /* lb=numeric */,
+ { 2, 6427, 7328, 13, 14, UNI_JG__NOJOININGGROUP } /* joininggroup=nojoininggroup */,
+ { 2, 65, 0, 2, 0, UNI_MN } /* mn */,
+ { 0, 1823, 333, 7, 4, UNI_CARI } /* script=cari */,
+ { 1, 33, 463, 1, 3, UNI_SHAW } /* shaw */,
+ { 0, 1906, 3622, 7, 3, UNI_KANGXI } /* blk=kangxi */,
+ { 0, 6427, 7342, 13, 14, UNI_JG__HAMZAONHEHGOAL } /* joininggroup=tehmarbutagoal */,
+ { 0, 5937, 2931, 20, 3, UNI__PERL_NCHAR } /* noncharactercodepoint=t */,
+ { 1, 461, 4620, 2, 16, UNI_LINEARBSYLLABARY } /* islinearbsyllabary */,
+ { 4, 461, 3984, 2, 17, UNI_EPRES } /* isemojipresentation */,
+ { 10, 2766, 3706, 3, 14, UNI_MN } /* gc=nonspacingmark */,
+ { 1, 2536, 6205, 3, 19, UNI_JG__BURUSHASKIYEHBARREE } /* jg=burushaskiyehbarree */,
+ { 2, 1823, 1223, 7, 4, UNI_SC__KANA } /* script=kana */,
+ { 0, 6165, 5440, 3, 20, UNI_HMNP } /* sc=nyiakengpuachuehmong */,
+ { 4, 1272, 1214, 3, 3, UNI_CHER } /* ischer */,
+ { 1, 1715, 440, 4, 2, UNI_OLCK } /* isolck */,
+ { 0, 292, 1318, 3, 3, UNI_NV__200 } /* nv=200 */,
+ { 0, 461, 1397, 2, 4, UNI_IDST } /* isidst */,
+ { 1, 461, 5068, 2, 4, UNI_MANI } /* ismani */,
+ { 0, 2280, 2656, 10, 3, UNI_IN__5 } /* presentin=5.0 */,
+ { 0, 1059, 599, 6, 2, UNI_NFKDQC__N } /* nfkdqc=n */,
+ { 0, 552, 386, 4, 3, UNI_AGE__3_DOT_2 } /* age=3.2 */,
+ { 1, 6185, 0, 20, 0, UNI_GLAGOLITICSUP } /* glagoliticsupplement */,
+ { 0, 1667, 825, 4, 7, UNI_SHAW } /* blk=shavian */,
+ { 1, 916, 584, 4, 3, UNI_EBASE } /* ebase=t */,
+ { 0, 6165, 1144, 3, 9, UNI_BHKS } /* sc=bhaiksuki */,
+ { 0, 1396, 353, 8, 2, UNI_XIDS } /* xidstart=y */,
+ { 1, 1102, 120, 4, 4, UNI_LAO } /* scx=laoo */,
+ { 4, 1667, 746, 4, 7, UNI_INMARCHEN } /* blk=marchen */,
+ { 1, 30, 1591, 1, 11, UNI_INSAURASHTRA } /* insaurashtra */,
+ { 2, 3349, 0, 15, 0, UNI_MERC } /* meroiticcursive */,
+ { 6, 339, 8030, 4, 9, UNI_CCC__AL } /* ccc=aboveleft */,
+ { 16, 1424, 2290, 7, 2, UNI_CCC__14 } /* ccc=ccc14 */,
+ { 1, 461, 1212, 2, 9, UNI_QAAI } /* isinherited */,
+ { 1, 6450, 5090, 13, 6, UNI_SB__CL } /* sentencebreak=close */,
+ { 3, 1011, 599, 2, 2, -UNI_CI } /* ci=n */,
+ { 0, 4424, 3692, 17, 4, UNI_LISU } /* scriptextensions=lisu */,
+ { 0, 257, 934, 4, 2, -UNI_CWCM } /* cwcm=f */,
+ { 0, 1102, 1572, 4, 10, UNI_XPEO } /* scx=oldpersian */,
+ { 2, 292, 393, 3, 2, UNI_NV__15 } /* nv=15 */,
+ { 2, 7669, 32, 20, 1, UNI_LB__H2 } /* hangulsyllabletype=lv */,
+ { 1, 261, 353, 5, 4, UNI_CWKCF } /* cwkcf=yes */,
+ { 3, 6165, 732, 3, 7, UNI_SC__LINA } /* sc=lineara */,
+ { 2, 7648, 363, 18, 3, UNI_DT__SML } /* decompositiontype=sml */,
+ { 0, 339, 388, 4, 2, UNI_CCC__26 } /* ccc=26 */,
+ { 3, 309, 8619, 2, 21, UNI_MATHOPERATORS } /* inmathematicaloperators */,
+ { 8, 3514, 2705, 7, 13, UNI_ANCIENTSYMBOLS } /* block=ancientsymbols */,
+ { 0, 8343, 2613, 22, 6, UNI_LB__ZWJ } /* indicsyllabiccategory=joiner */,
+ { 2, 609, 928, 2, 3, UNI_LB__OP } /* lb=op */,
+ { 0, 2483, 585, 5, 2, UNI_CASED } /* cased=t */,
+ { 3, 5460, 934, 19, 6, -UNI_TERM } /* terminalpunctuation=false */,
+ { 0, 21, 7241, 1, 10, UNI_ENCLOSEDCJK } /* enclosedcjk */,
+ { 8, 3021, 295, 4, 2, UNI_IN__9 } /* in=v90 */,
+ { 16, 7591, 2944, 3, 11, UNI_LB__BB } /* lb=breakbefore */,
+ { 1, 4360, 63, 10, 2, UNI_LB__CP } /* linebreak=cp */,
+ { 3, 4941, 1037, 10, 4, UNI_KANAEXTB } /* block=kanaextb */,
+ { 0, 6165, 1465, 3, 10, UNI_DIAK } /* sc=divesakuru */,
+ { 0, 3013, 934, 5, 6, -UNI_EPRES } /* epres=false */,
+ { 0, 1667, 3093, 4, 5, UNI_ASCII } /* blk=ascii */,
+ { 0, 1191, 0, 4, 0, UNI_BENG } /* beng */,
+ { 4, 1397, 598, 3, 3, -UNI_IDST } /* idst=n */,
+ { 2, 309, 2222, 2, 2, UNI_IN__6 } /* in=6 */,
+ { 0, 4360, 9, 10, 2, UNI_LB__CM } /* linebreak=cm */,
+ { 7, 461, 2468, 2, 13, UNI_IPAEXT } /* isipaextensions */,
+ { 1, 3490, 1037, 12, 4, UNI_CYRILLICEXTB } /* blk=cyrillicextb */,
+ { 1, 4424, 430, 17, 4, UNI_NKO } /* scriptextensions=nkoo */,
+ { 0, 1667, 4176, 4, 15, UNI_INHANGUL } /* blk=hangulsyllables */,
+ { 0, 2766, 6677, 3, 14, UNI_LM } /* gc=modifierletter */,
+ { 1, 19, 599, 4, 2, -UNI_POSIXXDIGIT } /* ahex=n */,
+ { 7, 6427, 484, 13, 3, UNI_JG__HAH } /* joininggroup=hah */,
+ { 5, 6165, 527, 3, 6, UNI_RJNG } /* sc=rejang */,
+ { 4, 1086, 0, 4, 0, UNI_KTHI } /* kthi */,
+ { 4, 7011, 6289, 23, 5, UNI_CCC__L } /* canonicalcombiningclass=left */,
+ { 4, 7752, 225, 23, 2, UNI_JG__MANICHAEANPE } /* joininggroup=manichaeanpe */,
+ { 0, 6165, 369, 3, 6, UNI_GOTH } /* sc=gothic */,
+ { 2, 1667, 5185, 4, 20, UNI_INANATOLIANHIEROGLYPHS } /* blk=anatolianhieroglyphs */,
+ { 2, 1391, 1652, 3, 7, UNI_WB__NL } /* wb=newline */,
+ { 2, 1065, 2083, 4, 8, UNI_NV__1_SLASH_9 } /* nv=1.111e-01 */,
+ { 0, 5156, 1645, 10, 7, UNI_WB__LE } /* wordbreak=aletter */,
+ { 0, 2232, 2119, 8, 4, UNI_NV__1_SLASH_12 } /* nv=8.333e-02 */,
+ { 0, 292, 2106, 3, 9, UNI_NV__3_SLASH_2 } /* nv=1.500e+00 */,
+ { 4, 6870, 353, 20, 2, UNI_CE } /* compositionexclusion=y */,
+ { 4, 3817, 3876, 15, 2, UNI_NV__1_SLASH_80 } /* numericvalue=1/80 */,
+ { 0, 4424, 5876, 17, 9, UNI_SUND } /* scriptextensions=sundanese */,
+ { 2, 7537, 353, 10, 2, UNI_XPOSIXALPHA } /* alphabetic=y */,
+ { 0, 1272, 7972, 3, 29, UNI_CUNEIFORMNUMBERS } /* iscuneiformnumbersandpunctuation */,
+ { 8, 1455, 934, 3, 2, -UNI_DEP } /* dep=f */,
+ { 1, 1823, 5958, 7, 7, UNI_SC__SINH } /* script=sinhala */,
+ { 0, 5065, 4255, 13, 4, UNI_JG__MANICHAEANRESH } /* jg=manichaeanresh */,
+ { 0, 7274, 4602, 9, 18, UNI_PI } /* category=initialpunctuation */,
+ { 2, 1102, 369, 4, 4, UNI_GOTH } /* scx=goth */,
+ { 5, 2348, 5671, 12, 4, -UNI_CI } /* caseignorable=no */,
+ { 1, 2718, 327, 3, 3, UNI_BC__FSI } /* bc=fsi */,
+ { 1, 3021, 3861, 4, 2, UNI_IN__7 } /* in=v70 */,
+ { 4, 6165, 414, 3, 3, UNI_SC__HAN } /* sc=han */,
+ { 1, 4043, 353, 4, 4, UNI_IDSB } /* idsb=yes */,
+ { 2, 2002, 1479, 7, 5, UNI_POSIXSPACE } /* isposixspace */,
+ { 4, 8246, 5308, 24, 15, UNI_LOE } /* indicpositionalcategory=visualorderleft */,
+ { 2, 4424, 462, 17, 4, UNI_SHAW } /* scriptextensions=shaw */,
+ { 4, 2220, 0, 12, 0, UNI_NV__1_SLASH_16 } /* nv=6.250e-02 */,
+ { 4, 1455, 353, 3, 2, UNI_DEP } /* dep=y */,
+ { 0, 3791, 585, 4, 5, UNI_MATH } /* math=true */,
+ { 0, 2280, 2080, 11, 3, UNI_IN__11 } /* presentin=11.0 */,
+ { 1, 622, 934, 7, 2, -UNI_EXTPICT } /* extpict=f */,
+ { 2, 2068, 0, 4, 0, UNI_MEND } /* mend */,
+ { 0, 6427, 6205, 13, 19, UNI_JG__BURUSHASKIYEHBARREE } /* joininggroup=burushaskiyehbarree */,
+ { 0, 461, 3101, 2, 5, UNI_XPOSIXDIGIT } /* isdigit */,
+ { 2, 3817, 891, 15, 2, UNI_NV__1_SLASH_10 } /* numericvalue=1/10 */,
+ { 0, 2324, 3228, 6, 15, UNI_INIMPERIALARAMAIC } /* block=imperialaramaic */,
+ { 0, 2, 1966, 1, 9, UNI_COMPATJAMO } /* compatjamo */,
+ { 0, 30, 5124, 1, 20, UNI_OTTOMANSIYAQNUMBERS } /* isottomansiyaqnumbers */,
+ { 3, 6062, 5848, 14, 9, UNI_ETHIOPICEXTA } /* block=ethiopicextendeda */,
+ { 7, 4407, 274, 17, 1, UNI_ri_values_index } /* regionalindicator= */,
+ { 0, 7011, 2735, 23, 3, UNI_CCC__AR } /* canonicalcombiningclass=ar */,
+ { 1, 30, 2263, 1, 3, UNI_DI } /* isdi */,
+ { 0, 7011, 288, 24, 2, UNI_CCC__30 } /* canonicalcombiningclass=30 */,
+ { 1, 6866, 353, 24, 4, UNI_COMPEX } /* fullcompositionexclusion=yes */,
+ { 0, 7537, 353, 10, 4, UNI_XPOSIXALPHA } /* alphabetic=yes */,
+ { 0, 1667, 499, 4, 6, UNI_INLYDIAN } /* blk=lydian */,
+ { 1, 597, 1127, 3, 3, UNI_DT__FIN } /* dt=fin */,
+ { 0, 298, 274, 2, 1, UNI_ri_values_index } /* ri= */,
+ { 0, 1223, 5848, 4, 9, UNI_KANAEXTA } /* kanaextendeda */,
+ { 2, 1823, 1975, 7, 10, UNI_SOGO } /* script=oldsogdian */,
+ { 1, 271, 363, 4, 2, UNI_GCB__SM } /* gcb=sm */,
+ { 1, 3848, 0, 14, 0, UNI_NV__7 } /* numericvalue=7 */,
+ { 0, 309, 3663, 2, 10, UNI_INDEVANAGARI } /* indevanagari */,
+ { 2, 622, 598, 6, 2, UNI_extpict_values_index } /* extpict= */,
+ { 0, 2324, 4176, 6, 6, UNI_INHANGUL } /* block=hangul */,
+ { 0, 1065, 2131, 4, 8, UNI_NV__1_SLASH_6 } /* nv=1.667e-01 */,
+ { 0, 461, 236, 2, 4, UNI_ZANB } /* iszanb */,
+ { 0, 2018, 2908, 12, 11, UNI_JT__C } /* joiningtype=joincausing */,
+ { 0, 461, 13, 2, 2, UNI_LM } /* islm */,
+ { 1, 3130, 5292, 6, 16, UNI_INPUNCTUATION } /* blk=generalpunctuation */,
+ { 0, 461, 3098, 2, 8, UNI_XPOSIXXDIGIT } /* ishexdigit */,
+ { 1, 1823, 414, 7, 3, UNI_SC__HAN } /* script=han */,
+ { 0, 4360, 2599, 10, 10, UNI_LB__NS } /* linebreak=nonstarter */,
+ { 1, 6120, 0, 22, 0, UNI_DIACRITICALSFORSYMBOLS } /* diacriticalsforsymbols */,
+ { 0, 7383, 4827, 10, 18, UNI_BC__B } /* bidiclass=paragraphseparator */,
+ { 1, 7591, 4667, 3, 16, UNI_LB__CL } /* lb=closepunctuation */,
+ { 0, 1243, 8073, 4, 22, UNI_CJK } /* block=cjkunifiedideographs */,
+ { 1, 5658, 6374, 15, 8, UNI_IDENTIFIERTYPE__OBSOLETE } /* identifiertype=obsolete */,
+ { 1, 887, 546, 5, 3, UNI_AGE__13 } /* age=13.0 */,
+ { 1, 1801, 0, 8, 0, UNI_NV__10000 } /* nv=10000 */,
+ { 0, 2324, 2068, 6, 12, UNI_INMENDEKIKAKUI } /* block=mendekikakui */,
+ { 0, 1102, 658, 4, 5, UNI_DOGR } /* scx=dogra */,
+ { 0, 5916, 353, 21, 2, UNI_LOE } /* logicalorderexception=y */,
+ { 2, 1823, 5067, 6, 5, UNI_SC__MANI } /* script=mani */,
+ { 2, 8601, 837, 10, 3, UNI_SUPPUAA } /* block=suppuaa */,
+ { 2, 253, 353, 4, 4, UNI_CWCF } /* cwcf=yes */,
+ { 16, 1823, 673, 7, 5, UNI_OSGE } /* script=osage */,
+ { 0, 30, 4089, 1, 18, UNI_INDICSIYAQNUMBERS } /* isindicsiyaqnumbers */,
+ { 1, 152, 0, 4, 0, UNI_OSGE } /* osge */,
+ { 0, 641, 644, 3, 4, UNI_LB__H3 } /* hst=lvt */,
+ { 2, 2287, 2199, 4, 3, UNI_IN__12 } /* in=12.0 */,
+ { 3, 5156, 1829, 9, 3, UNI_WB__ML } /* wordbreak=ml */,
+ { 2, 461, 3093, 2, 13, UNI_POSIXXDIGIT } /* isasciihexdigit */,
+ { 4, 3391, 2155, 13, 9, UNI_NV__1_SLASH_32 } /* numericvalue=3.125e-02 */,
+ { 0, 1102, 446, 4, 4, UNI_PHLI } /* scx=phli */,
+ { 10, 2324, 4896, 6, 8, UNI_BAMUMSUP } /* block=bamumsup */,
+ { 0, 309, 8142, 2, 32, UNI_IDEOGRAPHICSYMBOLS } /* inideographicsymbolsandpunctuation */,
+ { 1, 1272, 6228, 4, 8, UNI_CJKSYMBOLS } /* iscjksymbols */,
+ { 0, 461, 967, 2, 8, UNI_GUJR } /* isgujarati */,
+ { 0, 3724, 919, 12, 3, UNI_JG__MALAYALAMSSA } /* jg=malayalamssa */,
+ { 0, 461, 5769, 2, 4, UNI_EMOD } /* isemod */,
+ { 4, 4502, 5848, 9, 9, UNI_LATINEXTA } /* blk=latinextendeda */,
+ { 1, 2766, 1611, 3, 2, UNI_LOWERCASELETTER } /* gc=ll */,
+ { 2, 7495, 582, 28, 2, UNI_CCC__122 } /* canonicalcombiningclass=ccc122 */,
+ { 1, 4043, 934, 4, 6, -UNI_IDSB } /* idsb=false */,
+ { 5, 6165, 840, 3, 7, UNI_SC__TGLG } /* sc=tagalog */,
+ { 3, 461, 1610, 2, 3, UNI_ALL } /* isall */,
+ { 0, 2842, 6142, 3, 21, UNI_EARLYDYNASTICCUNEIFORM } /* isearlydynasticcuneiform */,
+ { 0, 461, 454, 2, 4, UNI_PRTI } /* isprti */,
+ { 0, 2766, 3263, 3, 13, UNI_XPOSIXDIGIT } /* gc=decimalnumber */,
+ { 0, 3817, 2091, 14, 8, UNI_NV__1_SLASH_8 } /* numericvalue=1.250e-01 */,
+ { 3, 1424, 288, 8, 2, UNI_CCC__130 } /* ccc=ccc130 */,
+ { 0, 309, 32, 2, 2, UNI_INVS } /* invs */,
+ { 0, 499, 0, 4, 0, UNI_LYDI } /* lydi */,
+ { 2, 5065, 3740, 13, 3, UNI_JG__MANICHAEANMEM } /* jg=manichaeanmem */,
+ { 4, 597, 604, 3, 4, UNI_EA__F } /* dt=wide */,
+ { 0, 6103, 0, 13, 0, UNI_MATHOPERATORS } /* mathoperators */,
+ { 1, 2403, 4511, 8, 9, UNI_ETHIOPICEXTB } /* ethiopicextendedb */,
+ { 0, 309, 1562, 2, 10, UNI_INNAGMUNDARI } /* innagmundari */,
+ { 0, 32, 353, 2, 2, UNI_VS } /* vs=y */,
+ { 3, 7274, 117, 9, 2, UNI_XPOSIXDIGIT } /* category=nd */,
+ { 8, 7804, 599, 11, 2, -UNI_IDEO } /* ideographic=n */,
+ { 1, 7084, 4659, 8, 9, UNI_ARABICEXTC } /* inarabicextendedc */,
+ { 2, 1823, 1358, 7, 4, UNI_PALM } /* script=palm */,
+ { 29636, 309, 3663, 2, 13, UNI_DEVANAGARIEXT } /* indevanagariext */,
+ { 0, 3391, 0, 13, 0, UNI_nv_values_index } /* numericvalue= */,
+ { 8, 461, 5876, 2, 4, UNI_SUND } /* issund */,
+ { 2, 2718, 5497, 3, 18, UNI_BC__FSI } /* bc=firststrongisolate */,
+ { 0, 7752, 636, 23, 3, UNI_JG__MANICHAEANNUN } /* joininggroup=manichaeannun */,
+ { 3, 461, 537, 2, 6, UNI_TNSA } /* istangsa */,
+ { 0, 6510, 0, 24, 0, UNI_HIGHPUSURROGATES } /* highprivateusesurrogates */,
+ { 0, 1102, 1125, 4, 8, UNI_TFNG } /* scx=tifinagh */,
+ { 2, 2220, 0, 4, 0, UNI_NV__6 } /* nv=6 */,
+ { 0, 7480, 0, 14, 0, UNI_PUA } /* privateusearea */,
+ { 0, 1823, 3538, 7, 7, UNI_SC__CPRT } /* script=cypriot */,
+ { 2, 1530, 1505, 6, 4, UNI_KANAEXTA } /* iskanaexta */,
+ { 0, 461, 2301, 2, 11, UNI_XIDC } /* isxidcontinue */,
+ { 6, 1667, 3649, 4, 11, UNI_PHONETICEXT } /* blk=phoneticext */,
+ { 6, 3803, 599, 14, 3, UNI_NFKCQC__N } /* nfkcquickcheck=no */,
+ { 2, 7669, 3218, 20, 10, UNI_GCB__L } /* hangulsyllabletype=leadingjamo */,
+ { 0, 461, 132, 2, 4, UNI_MTEI } /* ismtei */,
+ { 2, 3490, 5848, 12, 9, UNI_CYRILLICEXTA } /* blk=cyrillicextendeda */,
+ { 0, 6076, 5292, 8, 16, UNI_INPUNCTUATION } /* block=generalpunctuation */,
+ { 4, 4424, 2780, 17, 6, UNI_COPT } /* scriptextensions=coptic */,
+ { 0, 309, 2009, 2, 6, UNI_INSYRIAC } /* insyriac */,
+ { 0, 461, 2301, 2, 4, UNI_XIDC } /* isxidc */,
+ { 2, 1823, 1582, 7, 10, UNI_PHNX } /* script=phoenician */,
+ { 0, 1102, 1107, 5, 3, UNI_TALU } /* scx=talu */,
+ { 14, 5958, 0, 4, 0, UNI_SINH } /* sinh */,
+ { 0, 3724, 699, 4, 3, UNI_JG__MEEM } /* jg=meem */,
+ { 0, 309, 5876, 2, 12, UNI_SUNDANESESUP } /* insundanesesup */,
+ { 8, 2324, 2335, 6, 13, UNI_BLOCKELEMENTS } /* block=blockelements */,
+ { 0, 1994, 585, 7, 5, UNI_RADICAL } /* radical=true */,
+ { 4, 3677, 4770, 15, 10, UNI_LATINEXTADDITIONAL } /* islatinextendedadditional */,
+ { 0, 6165, 1592, 3, 10, UNI_SAUR } /* sc=saurashtra */,
+ { 3, 253, 274, 4, 1, UNI_cwcf_values_index } /* cwcf= */,
+ { 0, 6163, 4119, 5, 12, UNI_INSC__NUMBERJOINER } /* insc=numberjoiner */,
+ { 0, 2018, 5089, 10, 3, UNI_JT__C } /* joiningtype=c */,
+ { 0, 732, 5652, 4, 8, UNI_LB__ID } /* linebreak=id */,
+ { 0, 2514, 129, 3, 3, UNI_MEDF } /* ismedf */,
+ { 0, 406, 0, 3, 0, UNI_DIA } /* dia */,
+ { 0, 3633, 1674, 7, 4, UNI_LATINEXTD } /* inlatinextd */,
+ { 0, 1102, 4896, 4, 5, UNI_BAMU } /* scx=bamum */,
+ { 1, 7198, 4457, 6, 15, UNI_SUTTONSIGNWRITING } /* blk=suttonsignwriting */,
+ { 1, 4941, 4511, 10, 9, UNI_KANAEXTB } /* block=kanaextendedb */,
+ { 0, 461, 32, 2, 2, UNI_VS } /* isvs */,
+ { 0, 2324, 5876, 6, 19, UNI_SUNDANESESUP } /* block=sundanesesupplement */,
+ { 2, 6165, 1262, 3, 7, UNI_SOYO } /* sc=soyombo */,
+ { 0, 1396, 0, 4, 0, UNI_XIDS } /* xids */,
+ { 0, 1823, 653, 7, 5, UNI_SC__BUHD } /* script=buhid */,
+ { 2, 533, 54, 3, 2, UNI_SB__SC } /* sb=sc */,
+ { 4, 4424, 3436, 17, 15, UNI_SARB } /* scriptextensions=oldsoutharabian */,
+ { 2, 5799, 837, 6, 3, UNI_SUPPUAA } /* insuppuaa */,
+ { 1, 4970, 352, 16, 2, UNI_ebase_values_index } /* emojimodifierbase= */,
+ { 5, 1667, 2852, 4, 7, UNI_MAHJONG } /* blk=mahjong */,
+ { 0, 2391, 4659, 10, 9, UNI_CYRILLICEXTC } /* incyrillicextendedc */,
+ { 1, 2766, 625, 3, 2, UNI_PI } /* gc=pi */,
+ { 0, 2930, 2919, 3, 11, UNI_JT__L } /* jt=leftjoining */,
+ { 4, 309, 3349, 2, 15, UNI_INMEROITICCURSIVE } /* inmeroiticcursive */,
+ { 0, 7084, 0, 26, 0, UNI_ARABICPFB } /* inarabicpresentationformsb */,
+ { 0, 7011, 3526, 24, 12, UNI_CCC__0 } /* canonicalcombiningclass=notreordered */,
+ { 1, 5939, 934, 5, 2, -UNI__PERL_NCHAR } /* nchar=f */,
+ { 2, 1823, 909, 7, 4, UNI_BALI } /* script=bali */,
+ { 0, 1200, 6557, 3, 19, UNI_CJKCOMPATIDEOGRAPHSSUP } /* cjkcompatideographssup */,
+ { 2, 2494, 3639, 9, 9, UNI_GEORGIANEXT } /* isgeorgianextended */,
+ { 0, 2324, 6900, 6, 14, UNI_BYZANTINEMUSIC } /* block=byzantinemusic */,
+ { 1, 6816, 599, 25, 2, -UNI_CWKCF } /* changeswhennfkccasefolded=n */,
+ { 0, 5065, 2015, 13, 3, UNI_JG__MANICHAEANWAW } /* jg=manichaeanwaw */,
+ { 4, 5205, 1505, 11, 4, UNI_MYANMAREXTA } /* blk=myanmarexta */,
+ { 0, 3677, 204, 9, 2, UNI_LATINEXTF } /* islatinextf */,
+ { 0, 292, 295, 3, 2, UNI_NV__90 } /* nv=90 */,
+ { 0, 4360, 2609, 10, 10, UNI_LB__WJ } /* linebreak=wordjoiner */,
+ { 3, 5595, 585, 21, 2, UNI_CWT } /* changeswhentitlecased=t */,
+ { 3, 7011, 344, 24, 3, UNI_CCC__BL } /* canonicalcombiningclass=218 */,
+ { 0, 6165, 499, 3, 6, UNI_LYDI } /* sc=lydian */,
+ { 0, 461, 7537, 2, 27, UNI_ALPHABETICPF } /* isalphabeticpresentationforms */,
+ { 1, 4407, 353, 17, 4, UNI_RI } /* regionalindicator=yes */,
+ { 1, 461, 6332, 2, 19, UNI_JAMOEXTB } /* ishanguljamoextendedb */,
+ { 4, 309, 283, 2, 5, UNI_INNUSHU } /* innushu */,
+ { 0, 5274, 8575, 9, 26, UNI_DIACRITICALSSUP } /* combiningdiacriticalmarkssupplement */,
+ { 3, 2536, 1536, 3, 7, UNI_JG__THINYEH } /* jg=thinyeh */,
+ { 3, 8276, 4639, 6, 12, UNI_MISCMATHSYMBOLSB } /* inmiscmathsymbolsb */,
+ { 0, 1102, 67, 4, 4, UNI_CPRT } /* scx=cprt */,
+ { 0, 4424, 1191, 17, 4, UNI_BENG } /* scriptextensions=beng */,
+ { 1, 4424, 4951, 17, 4, UNI_EGYP } /* scriptextensions=egyp */,
+ { 1, 15, 4806, 2, 3, UNI_AGE__6 } /* age=6 */,
+ { 0, 1243, 1669, 4, 9, UNI_CJKEXTD } /* block=cjkextd */,
+ { 0, 510, 395, 5, 2, UNI_NV__3_SLASH_16 } /* nv=3/16 */,
+ { 1, 2732, 2705, 5, 13, UNI_ANCIENTSYMBOLS } /* blk=ancientsymbols */,
+ { 0, 1667, 6576, 5, 21, UNI_INDICNUMBERFORMS } /* blk=commonindicnumberforms */,
+ { 3, 6165, 4176, 3, 6, UNI_SC__HANG } /* sc=hangul */,
+ { 4, 1212, 0, 9, 0, UNI_QAAI } /* inherited */,
+ { 1, 3391, 342, 12, 3, UNI_NV__12 } /* numericvalue=12 */,
+ { 0, 1414, 0, 10, 0, UNI_BOXDRAWING } /* boxdrawing */,
+ { 1, 8246, 140, 24, 2, UNI_INPC__NA } /* indicpositionalcategory=na */,
+ { 0, 2, 6576, 1, 21, UNI_INDICNUMBERFORMS } /* commonindicnumberforms */,
+ { 1, 2503, 353, 11, 2, UNI_JOINC } /* joincontrol=y */,
+ { 1, 7404, 0, 11, 0, UNI_BC__R } /* bidiclass=r */,
+ { 8, 4424, 1098, 17, 4, UNI_NSHU } /* scriptextensions=nshu */,
+ { 1, 1667, 3026, 4, 14, UNI_INPSALTERPAHLAVI } /* blk=psalterpahlavi */,
+ { 15, 461, 1484, 2, 4, UNI_BUGI } /* isbugi */,
+ { 8, 298, 934, 2, 2, -UNI_RI } /* ri=f */,
+ { 1, 5065, 4741, 13, 5, UNI_JG__MANICHAEANALEPH } /* jg=manichaeanaleph */,
+ { 4, 1331, 0, 9, 0, UNI_PERM } /* oldpermic */,
+ { 3, 2766, 4150, 3, 5, UNI_P } /* gc=punct */,
+ { 4, 6618, 6629, 5, 13, UNI_INPC__BOTTOMANDLEFT } /* inpc=bottomandleft */,
+ { 5, 5216, 4770, 14, 10, UNI_LATINEXTADDITIONAL } /* block=latinextadditional */,
+ { 5, 1102, 454, 4, 4, UNI_PRTI } /* scx=prti */,
+ { 1, 271, 644, 2, 2, UNI_L } /* gc=l */,
+ { 2, 2503, 599, 11, 3, -UNI_JOINC } /* joincontrol=no */,
+ { 0, 1334, 0, 4, 0, UNI_PERM } /* perm */,
+ { 2, 7752, 4235, 23, 4, UNI_JG__MANICHAEANBETH } /* joininggroup=manichaeanbeth */,
+ { 1, 292, 3860, 2, 3, UNI_NV__70 } /* nv=70 */,
+ { 1, 461, 4176, 2, 15, UNI_INHANGUL } /* ishangulsyllables */,
+ { 3, 2324, 8142, 6, 32, UNI_IDEOGRAPHICSYMBOLS } /* block=ideographicsymbolsandpunctuation */,
+ { 12, 6427, 3743, 13, 3, UNI_JG__TAW } /* joininggroup=taw */,
+ { 0, 7198, 4150, 7, 11, UNI_SUPPUNCTUATION } /* blk=suppunctuation */,
+ { 0, 461, 673, 2, 5, UNI_OSGE } /* isosage */,
+ { 2, 3502, 0, 12, 0, UNI_INETHIOPIC } /* blk=ethiopic */,
+ { 1, 1823, 802, 7, 4, UNI_SARB } /* script=sarb */,
+ { 11, 3863, 1805, 14, 5, UNI_NV__800000 } /* numericvalue=800000 */,
+ { 0, 1272, 3611, 5, 6, UNI_CJKCOMPAT } /* iscjkcompat */,
+ { 0, 8601, 5909, 9, 7, UNI_SUPARROWSC } /* block=suparrowsc */,
+ { 0, 4360, 7110, 10, 13, UNI_LB__CM } /* linebreak=combiningmark */,
+ { 4, 339, 350, 4, 2, UNI_CCC__9 } /* ccc=vr */,
+ { 1, 13, 0, 2, 0, UNI_LM } /* lm */,
+ { 5, 8607, 0, 33, 0, UNI_SUPMATHOPERATORS } /* supplementalmathematicaloperators */,
+ { 2, 2, 8214, 1, 24, UNI_DIACRITICALS } /* combiningdiacriticalmarks */,
+ { 2, 4371, 933, 5, 7, -UNI_XPOSIXSPACE } /* wspace=false */,
+ { 0, 339, 430, 4, 2, UNI_CCC__7 } /* ccc=nk */,
+ { 0, 1424, 891, 7, 2, UNI_CCC__10 } /* ccc=ccc10 */,
+ { 2, 30, 6486, 1, 24, UNI_ZNAMENNYMUSIC } /* isznamennymusicalnotation */,
+ { 2, 6165, 63, 3, 4, UNI_SC__CPMN } /* sc=cpmn */,
+ { 0, 7648, 7011, 21, 5, UNI_DT__NONCANON } /* decompositiontype=noncanon */,
+ { 0, 6165, 1133, 3, 8, UNI_VITH } /* sc=vithkuqi */,
+ { 1, 6165, 1358, 3, 9, UNI_PALM } /* sc=palmyrene */,
+ { 2, 461, 7889, 2, 20, UNI_CJK } /* iscjkunifiedideographs */,
+ { 1, 5460, 599, 19, 2, -UNI_TERM } /* terminalpunctuation=n */,
+ { 0, 2324, 3908, 6, 16, UNI_TANGUTCOMPONENTS } /* block=tangutcomponents */,
+ { 0, 461, 2441, 2, 4, UNI_NAND } /* isnand */,
+ { 1, 7449, 3696, 18, 10, UNI_PHONETICEXTSUP } /* phoneticextensionssupplement */,
+ { 0, 6062, 6193, 12, 5, UNI_ETHIOPICSUP } /* block=ethiopicsup */,
+ { 2, 1102, 1191, 4, 4, UNI_BENG } /* scx=beng */,
+ { 2, 5205, 0, 11, 0, UNI_INMYANMAR } /* blk=myanmar */,
+ { 1, 461, 5448, 2, 3, UNI_PUA } /* ispua */,
+ { 3, 309, 4819, 2, 8, UNI_DINGBATS } /* indingbats */,
+ { 2, 461, 4896, 2, 4, UNI_BAMU } /* isbamu */,
+ { 0, 339, 348, 4, 2, UNI_CCC__91 } /* ccc=91 */,
+ { 0, 2766, 4002, 3, 14, UNI_SK } /* gc=modifiersymbol */,
+ { 0, 6165, 4951, 3, 19, UNI_EGYP } /* sc=egyptianhieroglyphs */,
+ { 0, 7537, 341, 9, 2, UNI_alpha_values_index } /* alphabetic= */,
+ { 4, 7669, 2382, 19, 9, UNI_GCB__V } /* hangulsyllabletype=voweljamo */,
+ { 1, 3514, 4511, 12, 9, UNI_ARABICEXTB } /* block=arabicextendedb */,
+ { 4, 339, 345, 4, 2, UNI_CCC__18 } /* ccc=18 */,
+ { 0, 5616, 585, 21, 5, UNI_CWU } /* changeswhenuppercased=true */,
+ { 0, 8601, 8386, 9, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* block=supsymbolsandpictographs */,
+ { 8, 7011, 3152, 24, 11, UNI_CCC__8 } /* canonicalcombiningclass=kanavoicing */,
+ { 0, 461, 2811, 2, 12, UNI_KHMERSYMBOLS } /* iskhmersymbols */,
+ { 0, 1823, 1322, 7, 9, UNI_ITAL } /* script=olditalic */,
+ { 0, 2280, 6262, 10, 3, UNI_IN__2_DOT_1 } /* presentin=2.1 */,
+ { 1, 6163, 6923, 14, 11, UNI_INSC__CONSONANTPLACEHOLDER } /* insc=consonantplaceholder */,
+ { 0, 3014, 290, 12, 2, UNI_IN__14 } /* presentin=v140 */,
+ { 1, 1823, 1015, 7, 4, UNI_SC__TELU } /* script=telu */,
+ { 0, 2718, 4472, 3, 15, UNI_BC__BN } /* bc=boundaryneutral */,
+ { 2, 1102, 3505, 3, 9, UNI_ETHI } /* scx=ethiopic */,
+ { 0, 4360, 5090, 9, 17, UNI_LB__CP } /* linebreak=closeparenthesis */,
+ { 1, 1272, 0, 5, 0, UNI_CJK } /* iscjk */,
+ { 6, 1011, 0, 2, 0, UNI_CI } /* ci */,
+ { 8, 517, 761, 4, 2, UNI_NV__7_SLASH_2 } /* nv=7/2 */,
+ { 1, 309, 581, 2, 2, UNI_IN__2 } /* in=2 */,
+ { 0, 461, 20, 2, 3, UNI_XPOSIXXDIGIT } /* ishex */,
+ { 0, 2811, 0, 5, 0, UNI_KHMR } /* khmer */,
+ { 3, 6165, 1562, 3, 4, UNI_NAGM } /* sc=nagm */,
+ { 1, 1102, 232, 4, 2, UNI_YI } /* scx=yi */,
+ { 2, 1102, 1358, 4, 4, UNI_PALM } /* scx=palm */,
+ { 0, 2732, 2312, 5, 12, UNI_AEGEANNUMBERS } /* blk=aegeannumbers */,
+ { 3, 461, 1285, 2, 9, UNI_SIND } /* iskhudawadi */,
+ { 1, 1396, 585, 8, 5, UNI_XIDS } /* xidstart=true */,
+ { 25, 3848, 1805, 14, 5, UNI_NV__700000 } /* numericvalue=700000 */,
+ { 0, 875, 934, 5, 2, -UNI_UIDEO } /* uideo=f */,
+ { 1, 2503, 0, 5, 0, UNI_JOINC } /* joinc */,
+ { 0, 6450, 1612, 14, 2, UNI_LB__LF } /* sentencebreak=lf */,
+ { 0, 1391, 3451, 3, 12, UNI_WB__EX } /* wb=extendnumlet */,
+ { 0, 2732, 1723, 10, 3, UNI_ARABICPFB } /* blk=arabicpfb */,
+ { 3, 634, 0, 7, 0, UNI_HANO } /* hanunoo */,
+ { 0, 2004, 3100, 5, 6, UNI_POSIXXDIGIT } /* posixxdigit */,
+ { 2, 6841, 598, 24, 4, -UNI_DI } /* defaultignorablecodepoint=no */,
+ { 0, 887, 2080, 5, 3, UNI_AGE__11 } /* age=11.0 */,
+ { 1, 7591, 2043, 3, 2, UNI_GCB__V } /* lb=jv */,
+ { 0, 6090, 2643, 7, 12, UNI_MISCTECHNICAL } /* block=misctechnical */,
+ { 5, 1823, 2780, 7, 6, UNI_SC__COPT } /* script=coptic */,
+ { 1, 1726, 0, 6, 0, UNI_ARAB } /* isarab */,
+ { 2, 4424, 6642, 17, 6, UNI_BRAH } /* scriptextensions=brahmi */,
+ { 0, 30, 8141, 1, 33, UNI_IDEOGRAPHICSYMBOLS } /* isideographicsymbolsandpunctuation */,
+ { 8, 461, 200, 2, 4, UNI_TAVT } /* istavt */,
+ { 10, 461, 5172, 2, 2, UNI_CASEDLETTER } /* isl_ */,
+ { 3, 3984, 599, 17, 3, -UNI_EPRES } /* emojipresentation=no */,
+ { 6, 7011, 8101, 24, 10, UNI_CCC__BR } /* canonicalcombiningclass=belowright */,
+ { 4, 5065, 4235, 13, 4, UNI_JG__MANICHAEANBETH } /* jg=manichaeanbeth */,
+ { 5, 895, 392, 5, 2, UNI_AGE__4_DOT_1 } /* age=v41 */,
+ { 3, 461, 1582, 2, 10, UNI_PHNX } /* isphoenician */,
+ { 0, 6062, 5820, 7, 18, UNI_ENCLOSEDALPHANUMSUP } /* block=enclosedalphanumsup */,
+ { 0, 3633, 4698, 6, 12, UNI_LATIN1 } /* inlatin1supplement */,
+ { 1, 430, 0, 4, 0, UNI_NKO } /* nkoo */,
+ { 0, 461, 152, 2, 4, UNI_OSGE } /* isosge */,
+ { 0, 461, 4150, 2, 11, UNI_P } /* ispunctuation */,
+ { 4, 552, 2656, 4, 3, UNI_AGE__5 } /* age=5.0 */,
+ { 14, 1823, 5682, 7, 5, UNI_SC__GREK } /* script=greek */,
+ { 1, 3040, 934, 13, 6, -UNI_QMARK } /* quotationmark=false */,
+ { 0, 2302, 934, 3, 2, -UNI_IDC } /* idc=f */,
+ { 2, 1396, 934, 4, 6, -UNI_XIDS } /* xids=false */,
+ { 7, 590, 6438, 2, 2, UNI_dep_values_index } /* dep= */,
+ { 1, 7591, 6, 3, 2, UNI_LB__CR } /* lb=cr */,
+ { 2, 5, 0, 3, 0, UNI_OCR } /* ocr */,
+ { 1, 461, 148, 2, 4, UNI_ORYA } /* isorya */,
+ { 1, 6427, 6714, 13, 21, UNI_JG__HANIFIROHINGYAKINNAYA } /* joininggroup=hanifirohingyakinnaya */,
+ { 3, 3021, 2117, 4, 2, UNI_IN__6_DOT_2 } /* in=v62 */,
+ { 1, 461, 1117, 2, 8, UNI_TAGB } /* istagbanwa */,
+ { 0, 4391, 0, 14, 0, UNI_NV__3 } /* numericvalue=3 */,
+ { 4, 1059, 1793, 4, 3, UNI_nfkdqc_values_index } /* nfkdqc= */,
+ { 1, 1385, 0, 4, 0, UNI_THAA } /* thaa */,
+ { 1, 1667, 1992, 4, 10, UNI_YIRADICALS } /* blk=yiradicals */,
+ { 0, 3677, 2619, 3, 12, UNI_LOWSURROGATES } /* islowsurrogates */,
+ { 1, 1102, 132, 4, 4, UNI_MTEI } /* scx=mtei */,
+ { 0, 1790, 353, 5, 2, UNI_NFCQC__Y } /* nfcqc=y */,
+ { 5, 4731, 8386, 12, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* supplementalsymbolsandpictographs */,
+ { 6, 3832, 1314, 14, 3, UNI_NV__5000 } /* numericvalue=5000 */,
+ { 3, 302, 934, 5, 2, -UNI__PERL_PATWS } /* patws=f */,
+ { 1, 1065, 0, 6, 0, UNI_NV__1_SLASH_3 } /* nv=1/3 */,
+ { 2, 461, 608, 2, 7, UNI_ELBA } /* iselbasan */,
+ { 0, 2766, 313, 3, 4, UNI_M } /* gc=mark */,
+ { 1, 461, 339, 2, 2, UNI_XPOSIXCNTRL } /* iscc */,
+ { 1, 406, 353, 2, 4, UNI_DI } /* di=yes */,
+ { 1, 3021, 2093, 4, 2, UNI_IN__5 } /* in=v50 */,
+ { 3, 8505, 590, 3, 2, UNI_XPOSIXDIGIT } /* nt=de */,
+ { 0, 461, 4016, 2, 14, UNI_ZS } /* isspaceseparator */,
+ { 0, 2766, 2424, 3, 2, UNI__PERL_SURROGATE } /* gc=cs */,
+ { 1, 2259, 216, 4, 2, UNI_TOTO } /* istoto */,
+ { 1, 461, 6586, 2, 11, UNI_NUMBERFORMS } /* isnumberforms */,
+ { 9, 1065, 760, 4, 3, UNI_NV__11_SLASH_2 } /* nv=11/2 */,
+ { 4, 6163, 7523, 14, 15, UNI_INSC__CONSONANTSUCCEEDINGREPHA } /* insc=consonantsucceedingrepha */,
+ { 3, 461, 3100, 2, 6, UNI_XPOSIXXDIGIT } /* isxdigit */,
+ { 1, 1667, 8153, 7, 21, UNI_CJKSYMBOLS } /* blk=cjksymbolsandpunctuation */,
+ { 2, 4424, 772, 17, 7, UNI_OLCK } /* scriptextensions=olchiki */,
+ { 4, 5895, 5149, 5, 7, UNI_SUPARROWSA } /* issuparrowsa */,
+ { 1, 6165, 3026, 3, 14, UNI_SC__PHLP } /* sc=psalterpahlavi */,
+ { 0, 1667, 7564, 4, 27, UNI_ANCIENTGREEKMUSIC } /* blk=ancientgreekmusicalnotation */,
+ { 2, 17, 415, 1, 3, UNI_HANO } /* hano */,
+ { 6, 1667, 1303, 4, 9, UNI_INNEWTAILUE } /* blk=newtailue */,
+ { 3, 461, 140, 2, 4, UNI_NARB } /* isnarb */,
+ { 12, 2324, 825, 6, 7, UNI_SHAW } /* block=shavian */,
+ { 0, 3514, 5676, 7, 18, UNI_ANCIENTGREEKNUMBERS } /* block=ancientgreeknumbers */,
+ { 0, 1823, 5391, 7, 4, UNI_CHER } /* script=cher */,
+ { 2, 6165, 951, 3, 4, UNI_SC__DUPL } /* sc=dupl */,
+ { 6, 461, 6776, 2, 14, UNI_MEETEIMAYEKEXT } /* ismeeteimayekext */,
+ { 0, 1102, 4951, 4, 4, UNI_EGYP } /* scx=egyp */,
+ { 0, 1726, 903, 4, 6, UNI_ARMN } /* isarmenian */,
+ { 3, 1667, 493, 4, 6, UNI_INKHOJKI } /* blk=khojki */,
+ { 3, 461, 2256, 2, 8, UNI_PHAISTOS } /* isphaistos */,
+ { 0, 309, 2411, 2, 11, UNI_KATAKANAEXT } /* inkatakanaext */,
+ { 0, 597, 1168, 3, 6, UNI_DT__MED } /* dt=medial */,
+ { 6, 1667, 6776, 4, 11, UNI_INMEETEIMAYEK } /* blk=meeteimayek */,
+ { 0, 4424, 414, 17, 4, UNI_HANO } /* scriptextensions=hano */,
+ { 0, 4584, 353, 18, 2, UNI_IDST } /* idstrinaryoperator=y */,
+ { 3, 1102, 2735, 3, 5, UNI_ARAB } /* scx=arab */,
+ { 0, 10, 7825, 1, 30, UNI_MATHALPHANUM } /* mathematicalalphanumericsymbols */,
+ { 1, 5979, 1626, 12, 9, UNI_VO__TU } /* vo=transformedupright */,
+ { 4, 312, 585, 5, 2, UNI_QMARK } /* qmark=t */,
+ { 1, 7591, 3760, 3, 13, UNI_LB__PR } /* lb=prefixnumeric */,
+ { 0, 4424, 725, 17, 7, UNI_KALI } /* scriptextensions=kayahli */,
+ { 0, 3677, 1037, 7, 4, UNI_LATINEXTB } /* islatinextb */,
+ { 1, 1667, 216, 4, 4, UNI_INTOTO } /* blk=toto */,
+ { 9, 1883, 599, 11, 2, -UNI_BIDIC } /* bidicontrol=n */,
+ { 5, 461, 1086, 2, 4, UNI_KTHI } /* iskthi */,
+ { 0, 1065, 4404, 4, 3, UNI_NV__13_SLASH_2 } /* nv=13/2 */,
+ { 0, 1823, 1117, 7, 4, UNI_SC__TAGB } /* script=tagb */,
+ { 5, 4391, 1805, 14, 5, UNI_NV__300000 } /* numericvalue=300000 */,
+ { 0, 4424, 2247, 17, 4, UNI_HUNG } /* scriptextensions=hung */,
+ { 1, 6076, 0, 14, 0, UNI_INGEORGIAN } /* block=georgian */,
+ { 0, 7669, 585, 18, 2, UNI_GCB__T } /* hangulsyllabletype=t */,
+ { 8, 5205, 2057, 5, 11, UNI_MATHALPHANUM } /* blk=mathalphanum */,
+ { 2, 10, 4636, 1, 15, UNI_MISCMATHSYMBOLSB } /* miscmathsymbolsb */,
+ { 4, 4043, 599, 17, 2, -UNI_IDSB } /* idsbinaryoperator=n */,
+ { 14, 6450, 592, 14, 2, UNI_SB__SE } /* sentencebreak=se */,
+ { 1, 3706, 3282, 7, 7, UNI_MN } /* nonspacingmark */,
+ { 5, 1391, 3053, 3, 11, UNI_WB__DQ } /* wb=doublequote */,
+ { 0, 1823, 4002, 7, 4, UNI_SC__MODI } /* script=modi */,
+ { 2, 461, 8667, 2, 18, UNI_CANS } /* iscanadianaboriginal */,
+ { 0, 2324, 673, 6, 5, UNI_INOSAGE } /* block=osage */,
+ { 2, 3263, 0, 13, 0, UNI_XPOSIXDIGIT } /* decimalnumber */,
+ { 1, 5799, 6965, 5, 22, UNI_SUPERANDSUB } /* insuperscriptsandsubscripts */,
+ { 0, 3892, 274, 16, 1, UNI_sterm_values_index } /* sentenceterminal= */,
+ { 0, 461, 2503, 2, 5, UNI_JOINC } /* isjoinc */,
+ { 1, 1391, 3456, 5, 7, UNI_WB__MB } /* wb=midnumlet */,
+ { 1, 2483, 585, 5, 5, UNI_CASED } /* cased=true */,
+ { 0, 5255, 341, 19, 2, UNI_extpict_values_index } /* extendedpictographic= */,
+ { 0, 1823, 2247, 7, 4, UNI_HUNG } /* script=hung */,
+ { 1, 53, 598, 1, 2, UNI_nt_values_index } /* nt= */,
+ { 1, 814, 0, 4, 0, UNI_QAAI } /* zinh */,
+ { 1, 2280, 2083, 11, 2, UNI_IN__1_DOT_1 } /* presentin=1.1 */,
+ { 0, 605, 4439, 2, 2, UNI_ids_values_index } /* ids= */,
+ { 2, 2752, 274, 5, 1, UNI_emoji_values_index } /* emoji= */,
+ { 2, 7274, 4667, 9, 16, UNI_PE } /* category=closepunctuation */,
+ { 1, 1667, 120, 4, 3, UNI_INLAO } /* blk=lao */,
+ { 1, 309, 725, 2, 7, UNI_KALI } /* inkayahli */,
+ { 5, 5065, 5059, 13, 6, UNI_JG__MANICHAEANSAMEKH } /* jg=manichaeansamekh */,
+ { 0, 132, 0, 4, 0, UNI_MTEI } /* mtei */,
+ { 0, 1823, 590, 7, 7, UNI_DSRT } /* script=deseret */,
+ { 8, 2324, 901, 6, 8, UNI_INARMENIAN } /* block=armenian */,
+ { 0, 2324, 6185, 6, 13, UNI_GLAGOLITICSUP } /* block=glagoliticsup */,
+ { 16, 6090, 0, 13, 0, UNI_INMYANMAR } /* block=myanmar */,
+ { 0, 2324, 493, 6, 6, UNI_INKHOJKI } /* block=khojki */,
+ { 1, 461, 521, 2, 6, UNI_PATSYN } /* ispatsyn */,
+ { 3, 461, 8278, 2, 33, UNI_MISCMATHSYMBOLSB } /* ismiscellaneousmathematicalsymbolsb */,
+ { 3, 1823, 3349, 7, 4, UNI_MERO } /* script=mero */,
+ { 0, 7011, 5515, 24, 13, UNI_CCC__202 } /* canonicalcombiningclass=attachedbelow */,
+ { 2, 292, 0, 3, 0, UNI_nv_values_index } /* nv= */,
+ { 1, 30, 1302, 1, 10, UNI_INNEWTAILUE } /* innewtailue */,
+ { 3, 4424, 357, 17, 6, UNI_CAKM } /* scriptextensions=chakma */,
+ { 3, 2391, 1037, 10, 4, UNI_CYRILLICEXTB } /* incyrillicextb */,
+ { 3, 461, 369, 2, 6, UNI_GOTH } /* isgothic */,
+ { 8, 6427, 487, 13, 3, UNI_JG__REH } /* joininggroup=reh */,
+ { 0, 30, 7466, 1, 29, UNI_SUPPUAA } /* issupplementaryprivateuseareaa */,
+ { 0, 1102, 6776, 4, 11, UNI_MTEI } /* scx=meeteimayek */,
+ { 0, 2324, 5712, 6, 19, UNI_MERO } /* block=meroitichieroglyphs */,
+ { 1, 6165, 1385, 3, 4, UNI_SC__THAA } /* sc=thaa */,
+ { 17, 309, 5391, 2, 18, UNI_CHEROKEESUP } /* incherokeesupplement */,
+ { 1, 4941, 490, 9, 3, UNI_KANBUN } /* block=kanbun */,
+ { 0, 461, 917, 2, 8, UNI_BASS } /* isbassavah */,
+ { 1, 7495, 288, 27, 2, UNI_CCC__30 } /* canonicalcombiningclass=ccc30 */,
+ { 1, 7383, 6312, 10, 3, UNI_BC__PDI } /* bidiclass=pdi */,
+ { 2, 8142, 0, 32, 0, UNI_IDEOGRAPHICSYMBOLS } /* ideographicsymbolsandpunctuation */,
+ { 1, 4191, 934, 5, 6, -UNI_XPOSIXLOWER } /* lower=false */,
+ { 0, 2766, 3196, 6, 8, UNI_NO } /* gc=othernumber */,
+ { 0, 2324, 4651, 6, 16, UNI_BOPOMOFOEXT } /* block=bopomofoextended */,
+ { 8, 461, 1367, 2, 9, UNI_PAUC } /* ispaucinhau */,
+ { 0, 1102, 3692, 4, 4, UNI_LISU } /* scx=lisu */,
+ { 6, 1241, 0, 7, 0, UNI_NB } /* noblock */,
+ { 3, 3040, 585, 13, 2, UNI_QMARK } /* quotationmark=t */,
+ { 3, 6165, 1975, 3, 10, UNI_SOGO } /* sc=oldsogdian */,
+ { 6, 2494, 6945, 5, 12, UNI_GEOMETRICSHAPES } /* isgeometricshapes */,
+ { 2, 1734, 7304, 3, 24, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* issymbolsandpictographsexta */,
+ { 3, 4569, 0, 9, 0, UNI_XPOSIXUPPER } /* uppercase */,
+ { 2, 6165, 2068, 3, 12, UNI_MEND } /* sc=mendekikakui */,
+ { 0, 8, 0, 2, 0, UNI_PC } /* pc */,
+ { 1, 6165, 4740, 3, 4, UNI_SC__TALE } /* sc=tale */,
+ { 0, 2766, 6683, 6, 8, UNI_LO } /* gc=otherletter */,
+ { 1, 309, 5185, 2, 20, UNI_INANATOLIANHIEROGLYPHS } /* inanatolianhieroglyphs */,
+ { 1, 1823, 493, 7, 6, UNI_SC__KHOJ } /* script=khojki */,
+ { 13, 2483, 934, 5, 6, -UNI_CASED } /* cased=false */,
+ { 0, 6165, 1125, 3, 8, UNI_TFNG } /* sc=tifinagh */,
+ { 2, 1618, 599, 10, 2, -UNI_SD } /* softdotted=n */,
+ { 11, 6062, 6142, 7, 21, UNI_EARLYDYNASTICCUNEIFORM } /* block=earlydynasticcuneiform */,
+ { 8, 8278, 7632, 13, 16, UNI_MISCARROWS } /* miscellaneoussymbolsandarrows */,
+ { 3, 5553, 353, 21, 4, UNI_CWCM } /* changeswhencasemapped=yes */,
+ { 0, 15, 3402, 2, 3, UNI_AGE__2 } /* age=2 */,
+ { 7, 1667, 1812, 4, 11, UNI_INPAHAWHHMONG } /* blk=pahawhhmong */,
+ { 2, 2, 352, 1, 2, UNI_ce_values_index } /* ce= */,
+ { 7, 4043, 599, 4, 3, -UNI_IDSB } /* idsb=no */,
+ { 2, 4360, 880, 10, 7, UNI_LB__XX } /* linebreak=unknown */,
+ { 0, 6165, 1212, 3, 9, UNI_SC__QAAI } /* sc=inherited */,
+ { 3, 7274, 1611, 9, 2, UNI_LOWERCASELETTER } /* category=ll */,
+ { 2, 2009, 0, 6, 0, UNI_SYRC } /* syriac */,
+ { 5, 597, 3276, 3, 3, UNI_DT__ENC } /* dt=enc */,
+ { 0, 1667, 4161, 4, 12, UNI_DIACRITICALS } /* blk=diacriticals */,
+ { 0, 2536, 7342, 3, 14, UNI_JG__HAMZAONHEHGOAL } /* jg=tehmarbutagoal */,
+ { 1, 1726, 2800, 3, 11, UNI_ALPHABETICPF } /* isalphabeticpf */,
+ { 2, 1424, 3405, 7, 2, UNI_CCC__36 } /* ccc=ccc36 */,
+ { 6, 1823, 3421, 7, 15, UNI_NARB } /* script=oldnortharabian */,
+ { 3, 1823, 3908, 7, 6, UNI_TANG } /* script=tangut */,
+ { 1, 309, 1027, 2, 6, UNI_INYEZIDI } /* inyezidi */,
+ { 3, 309, 5958, 2, 21, UNI_SINHALAARCHAICNUMBERS } /* insinhalaarchaicnumbers */,
+ { 4, 7267, 330, 16, 2, UNI_PD } /* generalcategory=pd */,
+ { 12, 406, 274, 2, 1, UNI_di_values_index } /* di= */,
+ { 9, 1102, 634, 4, 7, UNI_HANO } /* scx=hanunoo */,
+ { 5, 7591, 21, 3, 2, UNI_LB__EX } /* lb=ex */,
+ { 6, 7944, 6554, 28, 4, UNI_CJKEXTC } /* iscjkunifiedideographsextensionc */,
+ { 1, 2852, 0, 7, 0, UNI_MAHJONG } /* mahjong */,
+ { 1, 693, 6683, 5, 8, UNI_LO } /* isotherletter */,
+ { 2, 1102, 5391, 4, 4, UNI_CHER } /* scx=cher */,
+ { 1, 818, 0, 7, 0, UNI_SHRD } /* sharada */,
+ { 6, 1823, 23, 7, 4, UNI_AHOM } /* script=ahom */,
+ { 1, 1396, 599, 4, 3, -UNI_XIDS } /* xids=no */,
+ { 0, 2842, 5820, 3, 18, UNI_ENCLOSEDALPHANUMSUP } /* isenclosedalphanumsup */,
+ { 0, 6427, 2566, 13, 3, UNI_JG__HEH } /* joininggroup=heh */,
+ { 0, 1823, 74, 7, 4, UNI_SC__CYRL } /* script=cyrl */,
+ { 0, 309, 7449, 2, 18, UNI_PHONETICEXT } /* inphoneticextensions */,
+ { 0, 3391, 1313, 13, 2, UNI_NV__60 } /* numericvalue=60 */,
+ { 0, 7011, 7239, 25, 2, UNI_CCC__AL } /* canonicalcombiningclass=228 */,
+ { 1, 292, 759, 3, 4, UNI_NV___MINUS_1_SLASH_2 } /* nv=-1/2 */,
+ { 0, 1734, 8001, 3, 29, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* issymbolsandpictographsextendeda */,
+ { 0, 6165, 1227, 3, 4, UNI_MAKA } /* sc=maka */,
+ { 2, 292, 761, 4, 2, UNI_NV__9_SLASH_2 } /* nv=9/2 */,
+ { 0, 71, 934, 3, 2, -UNI_CWU } /* cwu=f */,
+ { 5, 1667, 6986, 4, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* blk=symbolsforlegacycomputing */,
+ { 5, 6165, 1592, 3, 4, UNI_SAUR } /* sc=saur */,
+ { 3, 1894, 274, 5, 1, UNI_bidim_values_index } /* bidim= */,
+ { 4, 1102, 814, 4, 4, UNI_QAAI } /* scx=zinh */,
+ { 2, 1102, 917, 4, 4, UNI_BASS } /* scx=bass */,
+ { 0, 1102, 1227, 4, 4, UNI_MAKA } /* scx=maka */,
+ { 1, 4731, 5149, 12, 7, UNI_SUPARROWSA } /* supplementalarrowsa */,
+ { 4, 1667, 4862, 4, 4, UNI_RUMI } /* blk=rumi */,
+ { 1, 1667, 653, 4, 5, UNI_INBUHID } /* blk=buhid */,
+ { 0, 5156, 3634, 10, 2, UNI_WB__NL } /* wordbreak=nl */,
+ { 9, 5769, 274, 4, 1, UNI_emod_values_index } /* emod= */,
+ { 4, 461, 120, 2, 3, UNI_LAO } /* islao */,
+ { 6, 6165, 1385, 3, 6, UNI_SC__THAA } /* sc=thaana */,
+ { 5, 5065, 4239, 13, 4, UNI_JG__MANICHAEANFIVE } /* jg=manichaeanfive */,
+ { 2, 6062, 0, 14, 0, UNI_INETHIOPIC } /* block=ethiopic */,
+ { 4, 292, 2100, 3, 2, UNI_NV__42 } /* nv=42 */,
+ { 0, 7889, 5252, 26, 4, UNI_CJKEXTE } /* cjkunifiedideographsextensione */,
+ { 0, 461, 312, 2, 5, UNI_QMARK } /* isqmark */,
+ { 0, 4941, 3696, 10, 10, UNI_KANASUP } /* block=kanasupplement */,
+ { 5, 7591, 4316, 3, 14, UNI_LB__BK } /* lb=mandatorybreak */,
+ { 3, 909, 0, 8, 0, UNI_BALI } /* balinese */,
+ { 0, 461, 1522, 2, 8, UNI_UGAR } /* isugaritic */,
+ { 0, 257, 599, 4, 2, -UNI_CWCM } /* cwcm=n */,
+ { 6, 552, 6262, 4, 3, UNI_AGE__2_DOT_1 } /* age=2.1 */,
+ { 0, 2324, 4176, 6, 15, UNI_INHANGUL } /* block=hangulsyllables */,
+ { 2, 1391, 1864, 3, 5, UNI_WB__EB } /* wb=ebase */,
+ { 0, 8343, 8522, 22, 16, UNI_INSC__VOWELINDEPENDENT } /* indicsyllabiccategory=vowelindependent */,
+ { 0, 292, 581, 2, 3, UNI_NV__22 } /* nv=22 */,
+ { 0, 5876, 0, 12, 0, UNI_SUNDANESESUP } /* sundanesesup */,
+ { 3, 1726, 1505, 8, 4, UNI_ARABICEXTA } /* isarabicexta */,
+ { 1, 461, 1978, 2, 7, UNI_SOGD } /* issogdian */,
+ { 1, 6163, 5746, 5, 16, UNI_INSC__INVISIBLESTACKER } /* insc=invisiblestacker */,
+ { 0, 21, 7915, 1, 20, UNI_ENCLOSEDALPHANUM } /* enclosedalphanumerics */,
+ { 3, 1424, 582, 7, 2, UNI_CCC__22 } /* ccc=ccc22 */,
+ { 2, 4502, 0, 13, 0, UNI_LATINEXTE } /* blk=latinexte */,
+ { 0, 1726, 649, 3, 4, UNI_ADLM } /* isadlam */,
+ { 0, 0, 4344, 1, 16, UNI_LETTERLIKESYMBOLS } /* letterlikesymbols */,
+ { 3, 1667, 1414, 4, 10, UNI_BOXDRAWING } /* blk=boxdrawing */,
+ { 2, 1823, 983, 7, 4, UNI_SC__HIRA } /* script=hira */,
+ { 3, 5156, 281, 10, 2, UNI_WB__XX } /* wordbreak=xx */,
+ { 0, 2393, 6193, 6, 5, UNI_CYRILLICSUP } /* cyrillicsup */,
+ { 0, 4424, 1117, 17, 8, UNI_TAGB } /* scriptextensions=tagbanwa */,
+ { 0, 4424, 283, 17, 5, UNI_NSHU } /* scriptextensions=nushu */,
+ { 0, 7591, 3337, 3, 12, UNI_LB__IS } /* lb=infixnumeric */,
+ { 0, 2842, 1037, 10, 4, UNI_ETHIOPICEXTB } /* isethiopicextb */,
+ { 8, 3021, 392, 4, 2, UNI_IN__4_DOT_1 } /* in=v41 */,
+ { 1, 5637, 585, 20, 2, UNI_GCB__T } /* graphemeclusterbreak=t */,
+ { 0, 292, 2093, 3, 2, UNI_NV__50 } /* nv=50 */,
+ { 0, 4424, 212, 17, 4, UNI_TIBT } /* scriptextensions=tibt */,
+ { 1, 2752, 585, 5, 2, UNI_EMOJI } /* emoji=t */,
+ { 0, 1198, 1922, 3, 11, UNI_CHESSSYMBOLS } /* inchesssymbols */,
+ { 4, 1102, 5031, 4, 14, UNI_ROHG } /* scx=hanifirohingya */,
+ { 6, 1906, 324, 8, 3, UNI_KANASUP } /* blk=kanasup */,
+ { 0, 8658, 0, 36, 0, UNI_UCAS } /* isunifiedcanadianaboriginalsyllabics */,
+ { 0, 461, 2852, 2, 4, UNI_MAHJ } /* ismahj */,
+ { 0, 823, 0, 4, 0, UNI_DASH } /* dash */,
+ { 1, 461, 4926, 2, 15, UNI_TAMILSUP } /* istamilsupplement */,
+ { 3, 4424, 27, 17, 4, UNI_ARMI } /* scriptextensions=armi */,
+ { 6, 3021, 1070, 4, 2, UNI_IN__3_DOT_1 } /* in=v31 */,
+ { 0, 461, 6154, 2, 9, UNI_XSUX } /* iscuneiform */,
+ { 1, 1102, 967, 4, 8, UNI_GUJR } /* scx=gujarati */,
+ { 2, 309, 2468, 2, 13, UNI_IPAEXT } /* inipaextensions */,
+ { 0, 8311, 3998, 32, 4, UNI_CJKEXTG } /* block=cjkunifiedideographsextensiong */,
+ { 2, 1102, 4651, 4, 8, UNI_BOPO } /* scx=bopomofo */,
+ { 0, 1455, 599, 3, 2, -UNI_DEP } /* dep=n */,
+ { 0, 1102, 2441, 4, 11, UNI_NAND } /* scx=nandinagari */,
+ { 0, 8538, 2720, 19, 2, UNI_VO__R } /* verticalorientation=r */,
+ { 0, 2324, 6400, 9, 18, UNI_CJKRADICALSSUP } /* block=cjkradicalssupplement */,
+ { 0, 461, 7796, 2, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* isenclosedideographicsupplement */,
+ { 10, 240, 0, 4, 0, UNI_ZYYY } /* zyyy */,
+ { 0, 6165, 6185, 3, 10, UNI_SC__GLAG } /* sc=glagolitic */,
+ { 3, 6165, 571, 3, 7, UNI_AVST } /* sc=avestan */,
+ { 3, 7274, 4146, 9, 15, UNI_PD } /* category=dashpunctuation */,
+ { 2, 317, 5376, 3, 8, UNI_TAIXUANJING } /* taixuanjing */,
+ { 0, 461, 302, 2, 5, UNI__PERL_PATWS } /* ispatws */,
+ { 1, 940, 353, 6, 2, UNI_COMPEX } /* compex=y */,
+ { 0, 4502, 4698, 8, 5, UNI_LATIN1 } /* blk=latin1sup */,
+ { 4, 4360, 184, 10, 2, UNI_LB__SA } /* linebreak=sa */,
+ { 8, 1102, 200, 4, 4, UNI_TAVT } /* scx=tavt */,
+ { 0, 1065, 520, 5, 1, UNI_NV__1_SLASH_7 } /* nv=1/7 */,
+ { 10, 309, 297, 2, 5, UNI_INORIYA } /* inoriya */,
+ { 3, 510, 1318, 5, 2, UNI_NV__3_SLASH_20 } /* nv=3/20 */,
+ { 2, 1198, 8474, 5, 23, UNI_CJKCOMPATIDEOGRAPHS } /* incjkcompatibilityideographs */,
+ { 0, 461, 3436, 2, 15, UNI_SARB } /* isoldsoutharabian */,
+ { 2, 1894, 0, 5, 0, UNI_BIDIM } /* bidim */,
+ { 3, 2324, 499, 6, 6, UNI_INLYDIAN } /* block=lydian */,
+ { 1, 2287, 2155, 3, 3, UNI_IN__3_DOT_1 } /* in=3.1 */,
+ { 15, 1728, 6193, 4, 5, UNI_ARABICSUP } /* arabicsup */,
+ { 1, 5156, 700, 10, 2, UNI_WB__EB } /* wordbreak=em */,
+ { 1, 4424, 333, 17, 6, UNI_CARI } /* scriptextensions=carian */,
+ { 0, 461, 7356, 2, 27, UNI_OCR } /* isopticalcharacterrecognition */,
+ { 1, 1102, 5958, 4, 7, UNI_SINH } /* scx=sinhala */,
+ { 0, 461, 746, 2, 4, UNI_MARC } /* ismarc */,
+ { 2, 5553, 0, 21, 0, UNI_CWCM } /* changeswhencasemapped */,
+ { 0, 6487, 0, 13, 0, UNI_ZNAMENNYMUSIC } /* znamennymusic */,
+ { 0, 6427, 702, 13, 4, UNI_JG__NOON } /* joininggroup=noon */,
+ { 5, 1823, 184, 7, 4, UNI_SAMR } /* script=samr */,
+ { 0, 1894, 585, 12, 2, UNI_BIDIM } /* bidimirrored=t */,
+ { 3, 533, 2968, 3, 3, UNI_SB__SE } /* sb=sep */,
+ { 16, 1823, 6642, 7, 4, UNI_BRAH } /* script=brah */,
+ { 1, 4424, 653, 17, 5, UNI_BUHD } /* scriptextensions=buhid */,
+ { 0, 446, 0, 4, 0, UNI_PHLI } /* phli */,
+ { 0, 461, 50, 2, 2, UNI_MC } /* ismc */,
+ { 0, 292, 1313, 3, 4, UNI_NV__6000 } /* nv=6000 */,
+ { 0, 1667, 2256, 4, 12, UNI_PHAISTOS } /* blk=phaistosdisc */,
+ { 3, 7267, 4207, 17, 14, UNI_PS } /* generalcategory=openpunctuation */,
+ { 2, 7011, 393, 24, 2, UNI_CCC__15 } /* canonicalcombiningclass=15 */,
+ { 0, 4845, 584, 16, 6, UNI__PERL_PATWS } /* patternwhitespace=true */,
+ { 0, 6427, 3294, 13, 7, UNI_JG__SEMKATH } /* joininggroup=semkath */,
+ { 0, 461, 615, 2, 7, UNI_ELYM } /* iselymaic */,
+ { 5, 4424, 112, 17, 4, UNI_KITS } /* scriptextensions=kits */,
+ { 3, 2287, 2689, 3, 3, UNI_IN__6_DOT_1 } /* in=6.1 */,
+ { 13, 2842, 1183, 3, 8, UNI_EMOTICONS } /* isemoticons */,
+ { 1, 6163, 1168, 14, 6, UNI_INSC__CONSONANTMEDIAL } /* insc=consonantmedial */,
+ { 0, 895, 396, 5, 2, UNI_AGE__6_DOT_1 } /* age=v61 */,
+ { 1, 4191, 4196, 5, 10, UNI_LOWERCASELETTER } /* lowercaseletter */,
+ { 2, 3848, 2107, 14, 8, UNI_NV__15_SLASH_2 } /* numericvalue=7.500e+00 */,
+ { 2, 5156, 0, 10, 0, UNI_wb_values_index } /* wordbreak= */,
+ { 11, 5637, 1869, 21, 3, UNI_WB__EB } /* graphemeclusterbreak=gaz */,
+ { 24, 2259, 848, 3, 6, UNI_LANA } /* istaitham */,
+ { 4, 4424, 51, 17, 4, UNI_CANS } /* scriptextensions=cans */,
+ { 0, 2302, 3401, 8, 3, UNI_idc_values_index } /* idcontinue= */,
+ { 0, 309, 7855, 2, 32, UNI_INIDC } /* inideographicdescriptioncharacters */,
+ { 2, 461, 991, 2, 4, UNI_HATR } /* ishatr */,
+ { 1, 20, 353, 3, 2, UNI_XPOSIXXDIGIT } /* hex=y */,
+ { 7, 1667, 6400, 7, 18, UNI_CJKRADICALSSUP } /* blk=cjkradicalssupplement */,
+ { 1, 895, 343, 6, 1, UNI_IN__1_DOT_1 } /* age=v11 */,
+ { 0, 2434, 4511, 7, 9, UNI_MYANMAREXTB } /* myanmarextendedb */,
+ { 6, 5553, 585, 21, 2, UNI_CWCM } /* changeswhencasemapped=t */,
+ { 2, 8071, 3998, 30, 4, UNI_CJKEXTG } /* blk=cjkunifiedideographsextensiong */,
+ { 0, 339, 1432, 4, 6, UNI_CCC__9 } /* ccc=virama */,
+ { 0, 6165, 1376, 3, 9, UNI_SAMR } /* sc=samaritan */,
+ { 2, 1823, 772, 7, 7, UNI_OLCK } /* script=olchiki */,
+ { 4, 4424, 951, 17, 8, UNI_DUPL } /* scriptextensions=duployan */,
+ { 0, 5156, 6324, 10, 6, UNI_WB__FO } /* wordbreak=format */,
+ { 3, 6062, 7915, 7, 29, UNI_ENCLOSEDALPHANUMSUP } /* block=enclosedalphanumericsupplement */,
+ { 1, 4424, 5876, 17, 4, UNI_SUND } /* scriptextensions=sund */,
+ { 0, 339, 2101, 5, 2, UNI_CCC__129 } /* ccc=129 */,
+ { 0, 2324, 1241, 6, 7, UNI_NB } /* block=noblock */,
+ { 2, 2514, 1037, 9, 4, UNI_MYANMAREXTB } /* ismyanmarextb */,
+ { 6, 1801, 1805, 9, 7, UNI_NV__1000000000000 } /* nv=1000000000000 */,
+ { 5, 309, 3093, 2, 5, UNI_ASCII } /* inascii */,
+ { 0, 8343, 1432, 22, 6, UNI_INSC__VIRAMA } /* indicsyllabiccategory=virama */,
+ { 2, 4424, 683, 17, 4, UNI_TAKR } /* scriptextensions=takr */,
+ { 0, 1102, 466, 4, 4, UNI_SOGO } /* scx=sogo */,
+ { 0, 2324, 537, 6, 6, UNI_INTANGSA } /* block=tangsa */,
+ { 4, 4407, 0, 17, 0, UNI_RI } /* regionalindicator */,
+ { 1, 4424, 2046, 18, 11, UNI_GONM } /* scriptextensions=masaramgondi */,
+ { 3, 6427, 783, 13, 3, UNI_JG__NYA } /* joininggroup=nya */,
+ { 1, 4424, 3133, 16, 5, UNI_GEOR } /* scriptextensions=geor */,
+ { 0, 4424, 317, 17, 5, UNI_TALE } /* scriptextensions=taile */,
+ { 2, 1667, 868, 4, 7, UNI_INTIRHUTA } /* blk=tirhuta */,
+ { 0, 5156, 3456, 12, 7, UNI_WB__MB } /* wordbreak=midnumlet */,
+ { 0, 4424, 1954, 17, 12, UNI_GONG } /* scriptextensions=gunjalagondi */,
+ { 0, 7648, 1850, 18, 3, UNI_DT__SUB } /* decompositiontype=sub */,
+ { 0, 1667, 238, 4, 2, UNI_NB } /* blk=nb */,
+ { 1, 6450, 4569, 14, 5, UNI_SB__UP } /* sentencebreak=upper */,
+ { 0, 5574, 274, 21, 1, UNI_cwl_values_index } /* changeswhenlowercased= */,
+ { 0, 2208, 1072, 4, 3, UNI_NV__5_SLASH_12 } /* nv=5/12 */,
+ { 0, 30, 4826, 1, 19, UNI_ZP } /* isparagraphseparator */,
+ { 0, 32, 934, 2, 2, -UNI_VS } /* vs=f */,
+ { 1, 7214, 1317, 25, 2, UNI_CCC__132 } /* canonicalcombiningclass=132 */,
+ { 0, 695, 5243, 4, 12, UNI_PO } /* otherpunctuation */,
+ { 2, 1011, 353, 2, 4, UNI_CI } /* ci=yes */,
+ { 5, 1667, 3611, 7, 6, UNI_CJKCOMPAT } /* blk=cjkcompat */,
+ { 5, 688, 0, 5, 0, UNI_BATK } /* batak */,
+ { 0, 4043, 353, 4, 2, UNI_IDSB } /* idsb=y */,
+ { 6, 3177, 7036, 15, 9, UNI_EA__H } /* eastasianwidth=halfwidth */,
+ { 0, 4360, 0, 17, 0, UNI_LB__ZW } /* linebreak=zwspace */,
+ { 1, 1223, 1037, 4, 4, UNI_KANAEXTB } /* kanaextb */,
+ { 6, 1667, 739, 4, 7, UNI_INMANDAIC } /* blk=mandaic */,
+ { 0, 7804, 934, 11, 2, -UNI_IDEO } /* ideographic=f */,
+ { 1, 3514, 2800, 7, 11, UNI_ALPHABETICPF } /* block=alphabeticpf */,
+ { 1, 6870, 353, 20, 4, UNI_CE } /* compositionexclusion=yes */,
+ { 4, 7274, 3634, 9, 2, UNI_NL } /* category=nl */,
+ { 0, 2324, 4161, 6, 12, UNI_DIACRITICALS } /* block=diacriticals */,
+ { 2, 6165, 1349, 3, 9, UNI_SC__OUGR } /* sc=olduyghur */,
+ { 1, 461, 5031, 2, 4, UNI_HAN } /* ishani */,
+ { 0, 4371, 599, 6, 3, -UNI_XPOSIXSPACE } /* wspace=no */,
+ { 4, 4424, 5391, 17, 8, UNI_CHER } /* scriptextensions=cherokee */,
+ { 1, 6062, 6193, 12, 12, UNI_ETHIOPICSUP } /* block=ethiopicsupplement */,
+ { 0, 4569, 0, 15, 0, UNI_UPPERCASELETTER } /* uppercaseletter */,
+ { 0, 1667, 6357, 7, 13, UNI_CJKCOMPAT } /* blk=cjkcompatibility */,
+ { 1, 1478, 0, 2, 0, UNI_ZS } /* zs */,
+ { 8, 7267, 269, 16, 2, UNI_ZP } /* generalcategory=zp */,
+ { 2, 4161, 353, 9, 2, UNI_DIA } /* diacritic=y */,
+ { 1, 2, 274, 3, 1, UNI_cwl_values_index } /* cwl= */,
+ { 14, 1696, 1704, 8, 3, UNI_DOMINO } /* dominotiles */,
+ { 0, 6082, 0, 8, 0, UNI_GEOR } /* georgian */,
+ { 0, 6642, 0, 4, 0, UNI_BRAH } /* brah */,
+ { 2, 4424, 790, 17, 4, UNI_KALI } /* scriptextensions=kali */,
+ { 0, 461, 590, 2, 7, UNI_DSRT } /* isdeseret */,
+ { 2, 2324, 4725, 6, 9, UNI_TANGUTSUP } /* block=tangutsup */,
+ { 1, 2301, 599, 4, 3, -UNI_XIDC } /* xidc=no */,
+ { 1, 309, 144, 2, 4, UNI_INNEWA } /* innewa */,
+ { 3, 5916, 8553, 17, 5, UNI_loe_values_index } /* logicalorderexception= */,
+ { 0, 33, 5409, 1, 17, UNI_SMALLKANAEXT } /* smallkanaextension */,
+ { 1, 1174, 604, 3, 4, UNI_EA__W } /* ea=wide */,
+ { 1, 4424, 67, 17, 4, UNI_CPRT } /* scriptextensions=cprt */,
+ { 6, 8246, 4107, 30, 12, UNI_INPC__TOPANDLEFTANDRIGHT } /* indicpositionalcategory=topandleftandright */,
+ { 1, 1102, 1009, 4, 6, UNI_LYCI } /* scx=lycian */,
+ { 0, 875, 585, 5, 5, UNI_UIDEO } /* uideo=true */,
+ { 2, 271, 1864, 4, 5, UNI_WB__EB } /* gcb=ebase */,
+ { 0, 7267, 106, 16, 2, UNI_ZL } /* generalcategory=zl */,
+ { 0, 4424, 683, 17, 5, UNI_TAKR } /* scriptextensions=takri */,
+ { 0, 3724, 135, 4, 2, UNI_JG__MIM } /* jg=mim */,
+ { 8, 1065, 1071, 4, 4, UNI_NV__11_SLASH_12 } /* nv=11/12 */,
+ { 0, 1102, 172, 4, 4, UNI_RJNG } /* scx=rjng */,
+ { 4, 1454, 585, 2, 5, UNI_SD } /* sd=true */,
+ { 11, 521, 353, 6, 2, UNI_PATSYN } /* patsyn=y */,
+ { 0, 1397, 934, 3, 2, -UNI_IDS } /* ids=f */,
+ { 1, 1102, 136, 4, 4, UNI_MYMR } /* scx=mymr */,
+ { 7, 2752, 0, 5, 0, UNI_EMOJI } /* emoji */,
+ { 32394, 1102, 4089, 4, 4, UNI_SIND } /* scx=sind */,
+ { 1, 6427, 5031, 13, 16, UNI_JG__HANIFIROHINGYAPA } /* joininggroup=hanifirohingyapa */,
+ { 2, 2324, 5801, 6, 19, UNI_SUPARROWSB } /* block=supplementalarrowsb */,
+ { 3, 5637, 5769, 21, 9, UNI_WB__EB } /* graphemeclusterbreak=emodifier */,
+ { 1, 847, 0, 7, 0, UNI_LANA } /* taitham */,
+ { 2, 1391, 3634, 3, 2, UNI_WB__NL } /* wb=nl */,
+ { 3, 2523, 3100, 8, 6, UNI_XPOSIXXDIGIT } /* isxposixxdigit */,
+ { 1, 939, 585, 5, 2, UNI_ECOMP } /* ecomp=t */,
+ { 8, 533, 6, 3, 2, UNI_LB__CR } /* sb=cr */,
+ { 3, 1618, 353, 10, 2, UNI_SD } /* softdotted=y */,
+ { 4, 54, 6081, 2, 9, UNI_SC__GEOR } /* sc=georgian */,
+ { 0, 6816, 934, 25, 2, -UNI_CWKCF } /* changeswhennfkccasefolded=f */,
+ { 2, 461, 4150, 2, 5, UNI_P } /* ispunct */,
+ { 2, 4424, 983, 17, 8, UNI_HIRA } /* scriptextensions=hiragana */,
+ { 2, 7267, 3192, 16, 12, UNI_NL } /* generalcategory=letternumber */,
+ { 5, 1221, 1505, 6, 4, UNI_KANAEXTA } /* inkanaexta */,
+ { 7, 1994, 599, 7, 2, -UNI_RADICAL } /* radical=n */,
+ { 0, 6618, 2728, 20, 4, UNI_INPC__TOPANDBOTTOMANDLEFT } /* inpc=topandbottomandleft */,
+ { 3, 3848, 3846, 14, 2, UNI_NV__7_SLASH_8 } /* numericvalue=7/8 */,
+ { 1, 7495, 520, 28, 1, UNI_CCC__17 } /* canonicalcombiningclass=ccc17 */,
+ { 0, 2324, 6000, 6, 6, UNI_YIJING } /* block=yijing */,
+ { 6, 3633, 3773, 3, 15, UNI_LINEARBIDEOGRAMS } /* inlinearbideograms */,
+ { 0, 461, 4569, 2, 15, UNI_UPPERCASELETTER } /* isuppercaseletter */,
+ { 14, 196, 0, 4, 0, UNI_TAML } /* taml */,
+ { 0, 1823, 840, 7, 7, UNI_SC__TGLG } /* script=tagalog */,
+ { 3, 1823, 232, 7, 2, UNI_SC__YI } /* script=yi */,
+ { 0, 1102, 1325, 4, 4, UNI_ITAL } /* scx=ital */,
+ { 1, 3848, 1314, 14, 3, UNI_NV__7000 } /* numericvalue=7000 */,
+ { 1, 5065, 4746, 13, 5, UNI_JG__MANICHAEANGIMEL } /* jg=manichaeangimel */,
+ { 9, 6165, 220, 3, 4, UNI_WCHO } /* sc=wcho */,
+ { 19, 7495, 3405, 27, 2, UNI_CCC__36 } /* canonicalcombiningclass=ccc36 */,
+ { 1, 309, 6464, 2, 23, UNI_SHORTHANDFORMATCONTROLS } /* inshorthandformatcontrols */,
+ { 0, 0, 1036, 1, 2, UNI_LOE } /* loe */,
+ { 0, 461, 4569, 2, 9, UNI_XPOSIXUPPER } /* isuppercase */,
+ { 9, 1801, 0, 10, 0, UNI_NV__1000000 } /* nv=1000000 */,
+ { 0, 461, 402, 2, 4, UNI_ARMN } /* isarmn */,
+ { 0, 7944, 3998, 28, 4, UNI_CJKEXTG } /* iscjkunifiedideographsextensiong */,
+ { 1, 302, 599, 5, 2, -UNI__PERL_PATWS } /* patws=n */,
+ { 0, 4819, 0, 8, 0, UNI_DINGBATS } /* dingbats */,
+ { 2, 5916, 599, 21, 3, -UNI_LOE } /* logicalorderexception=no */,
+ { 0, 1424, 1317, 7, 2, UNI_CCC__32 } /* ccc=ccc32 */,
+ { 5, 1667, 4075, 4, 15, UNI_CURRENCYSYMBOLS } /* blk=currencysymbols */,
+ { 5, 3130, 3639, 11, 9, UNI_GEORGIANEXT } /* blk=georgianextended */,
+ { 0, 461, 3554, 2, 13, UNI_ZL } /* islineseparator */,
+ { 1, 1823, 438, 7, 4, UNI_OLCK } /* script=olck */,
+ { 8, 641, 644, 3, 3, UNI_LB__H2 } /* hst=lv */,
+ { 5, 6581, 0, 16, 0, UNI_INDICNUMBERFORMS } /* indicnumberforms */,
+ { 9, 1894, 585, 5, 2, UNI_BIDIM } /* bidim=t */,
+ { 0, 1667, 5694, 5, 18, UNI_COUNTINGROD } /* blk=countingrodnumerals */,
+ { 2, 2280, 512, 9, 2, UNI_IN__3 } /* presentin=3 */,
+ { 0, 1667, 398, 4, 4, UNI_INMIAO } /* blk=miao */,
+ { 17, 1075, 6255, 4, 8, UNI_NV__1_SLASH_40 } /* nv=2.500e-02 */,
+ { 3, 2324, 1015, 6, 6, UNI_INTELUGU } /* block=telugu */,
+ { 0, 339, 1678, 4, 2, UNI_CCC__1 } /* ccc=ov */,
+ { 2, 5979, 1628, 3, 7, UNI_VO__U } /* vo=upright */,
+ { 4, 4424, 1009, 17, 6, UNI_LYCI } /* scriptextensions=lycian */,
+ { 2, 8343, 6642, 22, 19, UNI_INSC__BRAHMIJOININGNUMBER } /* indicsyllabiccategory=brahmijoiningnumber */,
+ { 0, 3391, 346, 14, 1, UNI_NV__28 } /* numericvalue=28 */,
+ { 0, 1667, 1635, 4, 10, UNI_INWARANGCITI } /* blk=warangciti */,
+ { 0, 8601, 1845, 9, 8, UNI_SUPERANDSUB } /* block=superandsub */,
+ { 2, 4075, 0, 15, 0, UNI_CURRENCYSYMBOLS } /* currencysymbols */,
+ { 2, 8343, 6661, 31, 10, UNI_INSC__CONSONANTHEADLETTER } /* indicsyllabiccategory=consonantheadletter */,
+ { 12, 7274, 330, 9, 2, UNI_PD } /* category=pd */,
+ { 9, 5156, 283, 10, 2, UNI_WB__NU } /* wordbreak=nu */,
+ { 2, 1102, 1205, 4, 7, UNI_GRAN } /* scx=grantha */,
+ { 1, 6427, 2015, 13, 3, UNI_JG__WAW } /* joininggroup=waw */,
+ { 8, 533, 2304, 4, 8, UNI_SB__SC } /* sb=scontinue */,
+ { 0, 4360, 2029, 9, 10, UNI_LB__B2 } /* linebreak=breakboth */,
+ { 0, 6076, 976, 7, 7, UNI_INGURMUKHI } /* block=gurmukhi */,
+ { 7, 5460, 353, 19, 2, UNI_TERM } /* terminalpunctuation=y */,
+ { 3, 1102, 5440, 4, 20, UNI_HMNP } /* scx=nyiakengpuachuehmong */,
+ { 8, 1530, 7443, 4, 24, UNI_KATAKANAEXT } /* iskatakanaphoneticextensions */,
+ { 0, 5460, 934, 19, 2, -UNI_TERM } /* terminalpunctuation=f */,
+ { 0, 1102, 1234, 4, 7, UNI_MULT } /* scx=multani */,
+ { 1, 2766, 2317, 3, 6, UNI_N } /* gc=number */,
+ { 1, 30, 4160, 1, 16, UNI_DIACRITICALSEXT } /* indiacriticalsext */,
+ { 6, 2324, 1914, 6, 8, UNI_UCASEXTA } /* block=ucasexta */,
+ { 20, 641, 2931, 2, 3, UNI_GCB__T } /* hst=t */,
+ { 0, 4424, 59, 17, 4, UNI_CHRS } /* scriptextensions=chrs */,
+ { 0, 309, 6000, 2, 21, UNI_YIJING } /* inyijinghexagramsymbols */,
+ { 0, 1102, 1562, 4, 10, UNI_NAGM } /* scx=nagmundari */,
+ { 2, 2411, 0, 11, 0, UNI_KATAKANAEXT } /* katakanaext */,
+ { 1, 99, 0, 2, 0, UNI_UPPERCASELETTER } /* lu */,
+ { 4, 2180, 389, 4, 1, UNI_NV__46 } /* nv=46 */,
+ { 0, 2766, 117, 3, 2, UNI_XPOSIXDIGIT } /* gc=nd */,
+ { 2, 510, 1805, 4, 5, UNI_NV__300000 } /* nv=300000 */,
+ { 2, 1424, 345, 7, 2, UNI_CCC__18 } /* ccc=ccc18 */,
+ { 2, 309, 1954, 2, 12, UNI_INGUNJALAGONDI } /* ingunjalagondi */,
+ { 2, 7889, 4410, 26, 4, UNI_CJKEXTA } /* cjkunifiedideographsextensiona */,
+ { 0, 309, 4060, 2, 15, UNI_BRAI } /* inbraillepatterns */,
+ { 0, 309, 7724, 2, 18, UNI_INVS } /* invariationselectors */,
+ { 0, 461, 7449, 2, 18, UNI_PHONETICEXT } /* isphoneticextensions */,
+ { 1, 1125, 0, 8, 0, UNI_TFNG } /* tifinagh */,
+ { 0, 6618, 6288, 3, 6, UNI_INPC__LEFT } /* inpc=left */,
+ { 0, 2004, 4569, 5, 5, UNI_POSIXUPPER } /* posixupper */,
+ { 0, 292, 1071, 3, 4, UNI_NV__1_SLASH_12 } /* nv=1/12 */,
+ { 1, 406, 934, 2, 6, -UNI_DI } /* di=false */,
+ { 0, 1667, 7356, 4, 27, UNI_OCR } /* blk=opticalcharacterrecognition */,
+ { 1, 1102, 4060, 4, 4, UNI_BRAI } /* scx=brai */,
+ { 4, 7591, 281, 3, 2, UNI_LB__XX } /* lb=xx */,
+ { 1, 2302, 353, 3, 4, UNI_IDC } /* idc=yes */,
+ { 0, 1424, 388, 7, 2, UNI_CCC__26 } /* ccc=ccc26 */,
+ { 2, 461, 1021, 2, 6, UNI_WCHO } /* iswancho */,
+ { 16, 2525, 3100, 5, 6, UNI_XPOSIXDIGIT } /* xposixdigit */,
+ { 1, 19, 353, 4, 2, UNI_POSIXXDIGIT } /* ahex=y */,
+ { 0, 3908, 0, 16, 0, UNI_TANGUTCOMPONENTS } /* tangutcomponents */,
+ { 6, 339, 890, 3, 3, UNI_CCC__10 } /* ccc=10 */,
+ { 2, 909, 0, 4, 0, UNI_BALI } /* bali */,
+ { 0, 309, 1262, 2, 7, UNI_INSOYOMBO } /* insoyombo */,
+ { 0, 339, 2719, 2, 7, UNI_CCC__R } /* ccc=right */,
+ { 16, 309, 4896, 2, 15, UNI_BAMUMSUP } /* inbamumsupplement */,
+ { 9, 253, 353, 4, 2, UNI_CWCF } /* cwcf=y */,
+ { 2, 8311, 6554, 32, 4, UNI_CJKEXTC } /* block=cjkunifiedideographsextensionc */,
+ { 1, 3677, 4698, 6, 5, UNI_LATIN1 } /* islatin1sup */,
+ { 1, 5156, 1864, 10, 5, UNI_WB__EB } /* wordbreak=ebase */,
+ { 17, 4, 933, 2, 7, -UNI_LOE } /* loe=false */,
+ { 5, 6165, 798, 3, 4, UNI_NBAT } /* sc=nbat */,
+ { 0, 2988, 599, 13, 3, UNI_COMPEX } /* nfcquickcheck=no */,
+ { 0, 521, 934, 6, 6, -UNI_PATSYN } /* patsyn=false */,
+ { 1, 461, 74, 2, 4, UNI_CYRL } /* iscyrl */,
+ { 0, 7648, 4602, 18, 4, UNI_DT__INIT } /* decompositiontype=init */,
+ { 3, 823, 599, 4, 3, -UNI_DASH } /* dash=no */,
+ { 1, 552, 342, 3, 3, UNI_AGE__12 } /* age=12 */,
+ { 0, 292, 388, 3, 2, UNI_NV__26 } /* nv=26 */,
+ { 0, 7267, 1611, 16, 2, UNI_LOWERCASELETTER } /* generalcategory=ll */,
+ { 0, 6165, 868, 3, 4, UNI_SC__TIRH } /* sc=tirh */,
+ { 1, 7855, 0, 32, 0, UNI_INIDC } /* ideographicdescriptioncharacters */,
+ { 2, 1853, 0, 4, 0, UNI_SYLO } /* sylo */,
+ { 1, 2287, 2084, 3, 2, UNI_IN__11 } /* in=11 */,
+ { 4, 1823, 658, 7, 5, UNI_SC__DOGR } /* script=dogra */,
+ { 8, 271, 1864, 4, 8, UNI_WB__EB } /* gcb=ebasegaz */,
+ { 6, 1667, 4533, 7, 4, UNI_CJKEXTC } /* blk=cjkextc */,
+ { 11, 271, 959, 4, 6, UNI_GCB__EX } /* gcb=extend */,
+ { 4, 5205, 6597, 5, 21, UNI_MISCTECHNICAL } /* blk=miscellaneoustechnical */,
+ { 1, 1102, 493, 4, 6, UNI_KHOJ } /* scx=khojki */,
+ { 0, 4424, 438, 17, 4, UNI_OLCK } /* scriptextensions=olck */,
+ { 1, 116, 0, 4, 0, UNI_KNDA } /* knda */,
+ { 0, 875, 599, 5, 2, -UNI_UIDEO } /* uideo=n */,
+ { 0, 5205, 5107, 5, 18, UNI_MODIFIERTONELETTERS } /* blk=modifiertoneletters */,
+ { 14, 3021, 344, 4, 2, UNI_IN__2_DOT_1 } /* in=v21 */,
+ { 2, 7648, 1743, 18, 4, UNI_DT__VERT } /* decompositiontype=vert */,
+ { 0, 461, 238, 2, 2, UNI_NB } /* isnb */,
+ { 0, 7887, 4218, 28, 4, UNI_CJKEXTH } /* incjkunifiedideographsextensionh */,
+ { 1, 2002, 1942, 7, 5, UNI_POSIXGRAPH } /* isposixgraph */,
+ { 3, 6618, 5308, 5, 15, UNI_LOE } /* inpc=visualorderleft */,
+ { 6, 4424, 997, 17, 6, UNI_KTHI } /* scriptextensions=kaithi */,
+ { 0, 406, 1175, 2, 2, UNI_dia_values_index } /* dia= */,
+ { 0, 1667, 3611, 7, 11, UNI_CJKCOMPATFORMS } /* blk=cjkcompatforms */,
+ { 4, 6163, 2460, 5, 8, UNI_INSC__TONEMARK } /* insc=tonemark */,
+ { 4, 4360, 3337, 10, 12, UNI_LB__IS } /* linebreak=infixnumeric */,
+ { 0, 4424, 224, 17, 4, UNI_XPEO } /* scriptextensions=xpeo */,
+ { 0, 4424, 6081, 16, 9, UNI_GEOR } /* scriptextensions=georgian */,
+ { 10, 30, 7563, 1, 28, UNI_ANCIENTGREEKMUSIC } /* isancientgreekmusicalnotation */,
+ { 2, 3407, 1314, 14, 3, UNI_NV__4000 } /* numericvalue=4000 */,
+ { 0, 3677, 0, 7, 0, UNI_LATN } /* islatin */,
+ { 0, 2324, 6557, 9, 16, UNI_CJKCOMPATIDEOGRAPHS } /* block=cjkcompatideographs */,
+ { 2, 4424, 31, 17, 4, UNI_AVST } /* scriptextensions=avst */,
+ { 5, 6866, 0, 24, 0, UNI_COMPEX } /* fullcompositionexclusion */,
+ { 1, 2930, 44, 3, 1, UNI_JT__U } /* jt=u */,
+ { 1, 533, 1602, 3, 7, UNI_SB__LE } /* sb=oletter */,
+ { 1, 1424, 2101, 8, 2, UNI_CCC__129 } /* ccc=ccc129 */,
+ { 0, 461, 1834, 2, 11, UNI_SORA } /* issorasompeng */,
+ { 5, 1790, 599, 5, 2, UNI_COMPEX } /* nfcqc=n */,
+ { 0, 1667, 673, 4, 5, UNI_INOSAGE } /* blk=osage */,
+ { 6, 2302, 599, 3, 2, -UNI_IDC } /* idc=n */,
+ { 0, 4424, 39, 17, 4, UNI_BHKS } /* scriptextensions=bhks */,
+ { 0, 1834, 0, 11, 0, UNI_SORA } /* sorasompeng */,
+ { 4, 1209, 0, 4, 0, UNI_THAI } /* thai */,
+ { 0, 339, 7425, 4, 4, UNI_CCC__216 } /* ccc=atar */,
+ { 0, 7011, 2084, 24, 2, UNI_CCC__11 } /* canonicalcombiningclass=11 */,
+ { 0, 461, 1294, 2, 9, UNI_NBAT } /* isnabataean */,
+ { 1, 292, 4403, 2, 4, UNI_NV__3_SLASH_2 } /* nv=3/2 */,
+ { 13, 1894, 353, 12, 4, UNI_BIDIM } /* bidimirrored=yes */,
+ { 0, 1198, 5694, 3, 10, UNI_COUNTINGROD } /* incountingrod */,
+ { 0, 298, 585, 2, 5, UNI_RI } /* ri=true */,
+ { 0, 11, 649, 1, 4, UNI_ADLM } /* adlam */,
+ { 1, 4569, 353, 5, 2, UNI_XPOSIXUPPER } /* upper=y */,
+ { 3, 5799, 6103, 5, 13, UNI_SUPMATHOPERATORS } /* insupmathoperators */,
+ { 0, 7267, 6324, 16, 6, UNI_CF } /* generalcategory=format */,
+ { 1, 1102, 825, 4, 7, UNI_SHAW } /* scx=shavian */,
+ { 8, 292, 2184, 4, 8, UNI_NV__11_SLASH_12 } /* nv=9.167e-01 */,
+ { 1, 4, 5671, 2, 4, -UNI_LOE } /* loe=no */,
+ { 0, 461, 718, 2, 7, UNI_KNDA } /* iskannada */,
+ { 2, 1102, 1522, 4, 8, UNI_UGAR } /* scx=ugaritic */,
+ { 2, 1198, 81, 7, 2, UNI_CJKEXTG } /* incjkextg */,
+ { 0, 7011, 344, 24, 2, UNI_CCC__21 } /* canonicalcombiningclass=21 */,
+ { 2, 2665, 1104, 12, 2, UNI_patsyn_values_index } /* patternsyntax= */,
+ { 3, 309, 3421, 2, 15, UNI_NARB } /* inoldnortharabian */,
+ { 1, 887, 2656, 5, 3, UNI_AGE__15 } /* age=15.0 */,
+ { 2, 5553, 274, 21, 1, UNI_cwcm_values_index } /* changeswhencasemapped= */,
+ { 4, 5637, 959, 21, 6, UNI_GCB__EX } /* graphemeclusterbreak=extend */,
+ { 5, 271, 700, 4, 2, UNI_WB__EB } /* gcb=em */,
+ { 25, 30, 5390, 1, 9, UNI_CHER } /* ischerokee */,
+ { 1, 2494, 5292, 4, 16, UNI_INPUNCTUATION } /* isgeneralpunctuation */,
+ { 2, 6165, 1509, 3, 8, UNI_SC__JAVA } /* sc=javanese */,
+ { 12, 4424, 244, 17, 4, UNI_ZZZZ } /* scriptextensions=zzzz */,
+ { 2, 8071, 6554, 30, 4, UNI_CJKEXTC } /* blk=cjkunifiedideographsextensionc */,
+ { 0, 2324, 4651, 6, 8, UNI_INBOPOMOFO } /* block=bopomofo */,
+ { 0, 2324, 5876, 6, 9, UNI_INSUNDANESE } /* block=sundanese */,
+ { 0, 753, 599, 6, 3, UNI_NFKCQC__N } /* nfkcqc=no */,
+ { 0, 3892, 585, 16, 5, UNI_STERM } /* sentenceterminal=true */,
+ { 9, 1021, 0, 6, 0, UNI_WCHO } /* wancho */,
+ { 0, 1667, 2411, 4, 8, UNI_INKATAKANA } /* blk=katakana */,
+ { 0, 5895, 1269, 6, 3, UNI_SUPPUAB } /* issuppuab */,
+ { 2, 1494, 3639, 7, 9, UNI_GEORGIANEXT } /* georgianextended */,
+ { 5, 641, 1874, 6, 8, UNI_LB__H2 } /* hst=lvsyllable */,
+ { 8, 30, 1882, 1, 12, UNI_BIDIC } /* isbidicontrol */,
+ { 0, 4176, 0, 4, 0, UNI_HANG } /* hang */,
+ { 3, 1243, 6462, 4, 25, UNI_SHORTHANDFORMATCONTROLS } /* block=shorthandformatcontrols */,
+ { 3, 2, 585, 3, 5, UNI_CWL } /* cwl=true */,
+ { 16, 2494, 2370, 3, 12, UNI_GREEKEXT } /* isgreekextended */,
+ { 0, 6041, 5089, 20, 3, UNI_BPT__C } /* bidipairedbrackettype=c */,
+ { 3, 7495, 345, 28, 2, UNI_CCC__118 } /* canonicalcombiningclass=ccc118 */,
+ { 5, 461, 1556, 2, 6, UNI_ARROWS } /* isarrows */,
+ { 10, 4519, 1505, 14, 4, UNI_CYRILLICEXTA } /* block=cyrillicexta */,
+ { 4, 1823, 446, 7, 4, UNI_PHLI } /* script=phli */,
+ { 0, 461, 1033, 2, 8, UNI_JAMOEXTB } /* isjamoextb */,
+ { 0, 261, 585, 5, 5, UNI_CWKCF } /* cwkcf=true */,
+ { 0, 3391, 290, 14, 1, UNI_NV__24 } /* numericvalue=24 */,
+ { 5, 5216, 2619, 7, 12, UNI_LOWSURROGATES } /* block=lowsurrogates */,
+ { 2, 1102, 51, 4, 4, UNI_CANS } /* scx=cans */,
+ { 3, 292, 295, 3, 1, UNI_NV__9 } /* nv=9 */,
+ { 1, 298, 353, 2, 4, UNI_RI } /* ri=yes */,
+ { 0, 1667, 6776, 4, 14, UNI_MEETEIMAYEKEXT } /* blk=meeteimayekext */,
+ { 0, 1198, 8474, 5, 33, UNI_CJKCOMPATIDEOGRAPHSSUP } /* incjkcompatibilityideographssupplement */,
+ { 0, 4941, 4272, 7, 16, UNI_INKHITANSMALLSCRIPT } /* block=khitansmallscript */,
+ { 6, 1823, 430, 7, 3, UNI_SC__NKO } /* script=nko */,
+ { 0, 3040, 353, 13, 4, UNI_QMARK } /* quotationmark=yes */,
+ { 4, 339, 2222, 3, 2, UNI_CCC__6 } /* ccc=6 */,
+ { 1, 1726, 3790, 7, 5, UNI_ARABICMATH } /* isarabicmath */,
+ { 2, 1667, 6351, 4, 23, UNI_COMPATJAMO } /* blk=hangulcompatibilityjamo */,
+ { 1, 2324, 6557, 9, 19, UNI_CJKCOMPATIDEOGRAPHSSUP } /* block=cjkcompatideographssup */,
+ { 8, 2324, 6900, 6, 23, UNI_BYZANTINEMUSIC } /* block=byzantinemusicalsymbols */,
+ { 2, 4461, 0, 11, 0, UNI_SGNW } /* signwriting */,
+ { 4, 3407, 1805, 14, 5, UNI_NV__400000 } /* numericvalue=400000 */,
+ { 8, 1174, 17, 3, 1, UNI_EA__H } /* ea=h */,
+ { 2, 8660, 0, 34, 0, UNI_UCAS } /* unifiedcanadianaboriginalsyllabics */,
+ { 30, 3633, 0, 16, 0, UNI_LATINEXTD } /* inlatinextendedd */,
+ { 8, 5799, 4150, 5, 11, UNI_SUPPUNCTUATION } /* insuppunctuation */,
+ { 0, 6816, 934, 25, 6, -UNI_CWKCF } /* changeswhennfkccasefolded=false */,
+ { 0, 5391, 0, 18, 0, UNI_CHEROKEESUP } /* cherokeesupplement */,
+ { 0, 3817, 3846, 14, 2, UNI_NV__1_SLASH_8 } /* numericvalue=1/8 */,
+ { 1, 1667, 2786, 4, 14, UNI_HIGHSURROGATES } /* blk=highsurrogates */,
+ { 2, 1823, 5876, 7, 9, UNI_SUND } /* script=sundanese */,
+ { 2, 461, 779, 2, 4, UNI_OSMA } /* isosma */,
+ { 8, 1102, 108, 4, 4, UNI_KAWI } /* scx=kawi */,
+ { 8, 6618, 4107, 5, 12, UNI_INPC__LEFTANDRIGHT } /* inpc=leftandright */,
+ { 0, 7011, 8640, 24, 13, UNI_CCC__214 } /* canonicalcombiningclass=attachedabove */,
+ { 0, 2692, 0, 13, 0, UNI_VERTICALFORMS } /* verticalforms */,
+ { 0, 4424, 90, 17, 4, UNI_GUJR } /* scriptextensions=gujr */,
+ { 0, 3863, 1314, 14, 2, UNI_NV__800 } /* numericvalue=800 */,
+ { 2, 5205, 8374, 5, 33, UNI_MISCPICTOGRAPHS } /* blk=miscellaneoussymbolsandpictographs */,
+ { 1, 7011, 290, 25, 2, UNI_CCC__IS } /* canonicalcombiningclass=240 */,
+ { 4, 4360, 119, 10, 2, UNI_LB__AL } /* linebreak=al */,
+ { 2, 7495, 348, 27, 2, UNI_CCC__91 } /* canonicalcombiningclass=ccc91 */,
+ { 0, 2766, 4191, 3, 15, UNI_LOWERCASELETTER } /* gc=lowercaseletter */,
+ { 2, 6165, 2244, 3, 12, UNI_HUNG } /* sc=oldhungarian */,
+ { 4, 5979, 5993, 3, 7, UNI_VO__R } /* vo=rotated */,
+ { 1, 7892, 599, 16, 3, -UNI_UIDEO } /* unifiedideograph=no */,
+ { 2, 8, 934, 3, 2, -UNI_PCM } /* pcm=f */,
+ { 0, 2718, 384, 3, 2, UNI_BC__EN } /* bc=en */,
+ { 0, 2832, 3640, 10, 9, UNI_CYRILLICEXTD } /* iscyrillicextendedd */,
+ { 0, 578, 2165, 5, 2, UNI_CCC__DB } /* ccc=233 */,
+ { 8, 5637, 543, 21, 2, UNI_WB__EB } /* graphemeclusterbreak=eb */,
+ { 2, 461, 3584, 3, 15, UNI_HIGHPUSURROGATES } /* ishighpusurrogates */,
+ { 3, 461, 1853, 2, 11, UNI_SYLO } /* issylotinagri */,
+ { 0, 6165, 5185, 3, 20, UNI_HLUW } /* sc=anatolianhieroglyphs */,
+ { 0, 1667, 5694, 5, 10, UNI_COUNTINGROD } /* blk=countingrod */,
+ { 1, 2536, 2728, 4, 3, UNI_JG__ALEF } /* jg=alef */,
+ { 0, 2401, 6193, 8, 5, UNI_ETHIOPICSUP } /* inethiopicsup */,
+ { 0, 4424, 880, 17, 7, UNI_ZZZZ } /* scriptextensions=unknown */,
+ { 4, 6165, 1209, 3, 4, UNI_THAI } /* sc=thai */,
+ { 1, 7267, 2317, 16, 6, UNI_N } /* generalcategory=number */,
+ { 9, 716, 3746, 4, 14, UNI_KAKTOVIKNUMERALS } /* inkaktoviknumerals */,
+ { 0, 1255, 0, 4, 0, UNI_SIDD } /* sidd */,
+ { 1, 3177, 2538, 14, 2, UNI_EA__A } /* eastasianwidth=a */,
+ { 6, 5216, 5635, 17, 3, UNI_LATINEXTG } /* block=latinextendedg */,
+ { 0, 309, 683, 2, 5, UNI_INTAKRI } /* intakri */,
+ { 2, 4424, 1543, 17, 4, UNI_KHAR } /* scriptextensions=khar */,
+ { 2, 461, 678, 2, 5, UNI_RUNR } /* isrunic */,
+ { 1, 6076, 2370, 7, 7, UNI_GREEKEXT } /* block=greekext */,
+ { 2, 2514, 3788, 3, 15, UNI_MISCMATHSYMBOLSA } /* ismiscmathsymbolsa */,
+ { 0, 4391, 289, 16, 1, UNI_NV__3_SLASH_20 } /* numericvalue=3/20 */,
+ { 1, 1102, 5958, 4, 4, UNI_SINH } /* scx=sinh */,
+ { 1, 2002, 3268, 7, 5, UNI_POSIXALNUM } /* isposixalnum */,
+ { 12, 6165, 917, 3, 8, UNI_BASS } /* sc=bassavah */,
+ { 9, 5532, 353, 21, 4, UNI_CWCF } /* changeswhencasefolded=yes */,
+ { 0, 6165, 11, 3, 4, UNI_SC__ADLM } /* sc=adlm */,
+ { 4, 2301, 352, 10, 3, UNI_XIDC } /* xidcontinue=y */,
+ { 9, 6797, 0, 18, 0, UNI_DEVANAGARIEXT } /* devanagariextended */,
+ { 2, 3407, 389, 14, 1, UNI_NV__46 } /* numericvalue=46 */,
+ { 8, 7274, 128, 9, 2, UNI_ME } /* category=me */,
+ { 41562, 5916, 585, 21, 5, UNI_LOE } /* logicalorderexception=true */,
+ { 1, 1272, 2373, 4, 5, UNI_CJKEXTE } /* iscjkexte */,
+ { 1, 1174, 0, 3, 0, UNI_ea_values_index } /* ea= */,
+ { 3, 2401, 620, 8, 5, UNI_ETHIOPICEXT } /* inethiopicext */,
+ { 16, 461, 4002, 2, 14, UNI_SK } /* ismodifiersymbol */,
+ { 1, 6165, 997, 3, 6, UNI_SC__KTHI } /* sc=kaithi */,
+ { 1, 1102, 82, 4, 4, UNI_GONG } /* scx=gong */,
+ { 6, 1102, 47, 4, 4, UNI_CAKM } /* scx=cakm */,
+ { 2, 6427, 3301, 13, 12, UNI_JG__VERTICALTAIL } /* joininggroup=verticaltail */,
+ { 1, 779, 0, 4, 0, UNI_OSMA } /* osma */,
+ { 1, 7011, 1153, 25, 2, UNI_CCC__L } /* canonicalcombiningclass=224 */,
+ { 10, 6165, 60, 4, 3, UNI_CHRS } /* sc=chrs */,
+ { 6, 4424, 1543, 17, 10, UNI_KHAR } /* scriptextensions=kharoshthi */,
+ { 0, 7752, 5427, 24, 6, UNI_JG__MANICHAEANTHAMEDH } /* joininggroup=manichaeanthamedh */,
+ { 1, 2180, 2193, 5, 7, UNI_NV__3_SLASH_64 } /* nv=4.688e-02 */,
+ { 0, 6076, 5863, 11, 13, UNI_GEORGIANSUP } /* block=georgiansupplement */,
+ { 3, 1618, 934, 10, 2, -UNI_SD } /* softdotted=f */,
+ { 4, 1667, 1872, 4, 11, UNI_YISYLLABLES } /* blk=yisyllables */,
+ { 1, 2208, 1805, 4, 4, UNI_NV__50000 } /* nv=50000 */,
+ { 8, 4424, 369, 17, 4, UNI_GOTH } /* scriptextensions=goth */,
+ { 1, 4845, 352, 16, 5, UNI__PERL_PATWS } /* patternwhitespace=yes */,
+ { 1, 7648, 4602, 18, 7, UNI_DT__INIT } /* decompositiontype=initial */,
+ { 0, 2280, 343, 11, 1, UNI_IN__11 } /* presentin=11 */,
+ { 0, 292, 2165, 3, 2, UNI_NV__33 } /* nv=33 */,
+ { 6, 5156, 2768, 9, 6, UNI_WB__XX } /* wordbreak=other */,
+ { 5, 0, 0, 1, 0, UNI_L } /* l */,
+ { 0, 1391, 283, 3, 2, UNI_WB__NU } /* wb=nu */,
+ { 4, 461, 2483, 2, 5, UNI_CASED } /* iscased */,
+ { 21, 2752, 8504, 11, 4, UNI_ecomp_values_index } /* emojicomponent= */,
+ { 0, 3130, 2370, 5, 7, UNI_GREEKEXT } /* blk=greekext */,
+ { 0, 7198, 5409, 5, 17, UNI_SMALLKANAEXT } /* blk=smallkanaextension */,
+ { 3, 461, 8, 2, 3, UNI_PCM } /* ispcm */,
+ { 2, 5616, 0, 21, 0, UNI_CWU } /* changeswhenuppercased */,
+ { 11, 2324, 8660, 6, 43, UNI_UCASEXTA } /* block=unifiedcanadianaboriginalsyllabicsextendeda */,
+ { 1, 4360, 3634, 10, 2, UNI_LB__NL } /* linebreak=nl */,
+ { 2, 2280, 519, 9, 2, UNI_IN__7 } /* presentin=7 */,
+ { 2, 2324, 1484, 6, 8, UNI_INBUGINESE } /* block=buginese */,
+ { 8, 6165, 663, 3, 5, UNI_SC__LIMB } /* sc=limbu */,
+ { 1, 5255, 599, 20, 3, -UNI_EXTPICT } /* extendedpictographic=no */,
+ { 2, 510, 2164, 4, 8, UNI_NV__1_SLASH_3 } /* nv=3.333e-01 */,
+ { 8, 6165, 806, 3, 4, UNI_SC__SHRD } /* sc=shrd */,
+ { 12, 1102, 493, 4, 4, UNI_KHOJ } /* scx=khoj */,
+ { 0, 3633, 4770, 15, 10, UNI_LATINEXTADDITIONAL } /* inlatinextendedadditional */,
+ { 0, 4620, 0, 16, 0, UNI_LINEARBSYLLABARY } /* linearbsyllabary */,
+ { 0, 2287, 2656, 4, 3, UNI_IN__15 } /* in=15.0 */,
+ { 0, 1102, 2735, 3, 7, UNI_ARAB } /* scx=arabic */,
+ { 0, 2718, 3106, 3, 12, UNI_BC__AL } /* bc=arabicletter */,
+ { 3, 939, 599, 5, 3, -UNI_ECOMP } /* ecomp=no */,
+ { 0, 1102, 1285, 4, 9, UNI_SIND } /* scx=khudawadi */,
+ { 17, 6287, 0, 14, 0, UNI_BC__L } /* bc=lefttoright */,
+ { 19, 461, 1914, 2, 7, UNI_UCASEXT } /* isucasext */,
+ { 0, 4651, 0, 11, 0, UNI_BOPOMOFOEXT } /* bopomofoext */,
+ { 0, 7011, 1318, 25, 2, UNI_CCC__B } /* canonicalcombiningclass=220 */,
+ { 0, 2324, 4926, 6, 8, UNI_TAMILSUP } /* block=tamilsup */,
+ { 14, 1102, 2068, 4, 12, UNI_MEND } /* scx=mendekikakui */,
+ { 1, 7724, 599, 17, 3, -UNI_VS } /* variationselector=no */,
+ { 8, 71, 599, 3, 2, -UNI_CWU } /* cwu=n */,
+ { 4, 4554, 0, 5, 0, UNI_TITLE } /* title */,
+ { 2, 33, 4441, 1, 16, UNI_SMALLFORMS } /* smallformvariants */,
+ { 11, 1823, 1027, 7, 4, UNI_SC__YEZI } /* script=yezi */,
+ { 0, 7591, 2041, 3, 2, UNI_LB__H3 } /* lb=h3 */,
+ { 0, 5065, 5047, 13, 6, UNI_JG__MANICHAEANDALETH } /* jg=manichaeandaleth */,
+ { 0, 4360, 3325, 10, 12, UNI_LB__HL } /* linebreak=hebrewletter */,
+ { 2, 3407, 1314, 14, 2, UNI_NV__400 } /* numericvalue=400 */,
+ { 1, 1102, 86, 4, 4, UNI_GREK } /* scx=grek */,
+ { 2, 1667, 1227, 4, 7, UNI_INMAKASAR } /* blk=makasar */,
+ { 0, 2514, 1095, 3, 3, UNI_MERC } /* ismerc */,
+ { 3, 1102, 35, 4, 4, UNI_BATK } /* scx=batk */,
+ { 3, 261, 934, 5, 6, -UNI_CWKCF } /* cwkcf=false */,
+ { 0, 1823, 51, 7, 4, UNI_CANS } /* script=cans */,
+ { 0, 6618, 4111, 8, 8, UNI_INPC__TOPANDRIGHT } /* inpc=topandright */,
+ { 0, 1823, 1262, 7, 7, UNI_SOYO } /* script=soyombo */,
+ { 1, 1102, 571, 4, 7, UNI_AVST } /* scx=avestan */,
+ { 0, 7267, 3709, 16, 11, UNI_MC } /* generalcategory=spacingmark */,
+ { 1, 461, 5274, 2, 18, UNI_HALFMARKS } /* iscombininghalfmarks */,
+ { 1, 4424, 236, 17, 4, UNI_ZANB } /* scriptextensions=zanb */,
+ { 0, 1823, 176, 7, 4, UNI_SC__ROHG } /* script=rohg */,
+ { 0, 1409, 6957, 5, 9, UNI_LATINEXTE } /* latinextendede */,
+ { 4, 33, 1609, 1, 9, UNI_SMALLFORMS } /* smallforms */,
+ { 6, 3014, 891, 12, 2, UNI_IN__11 } /* presentin=v110 */,
+ { 0, 3633, 4770, 10, 10, UNI_LATINEXTADDITIONAL } /* inlatinextadditional */,
+ { 2, 1322, 0, 9, 0, UNI_ITAL } /* olditalic */,
+ { 1, 1667, 1522, 4, 8, UNI_INUGARITIC } /* blk=ugaritic */,
+ { 0, 1883, 585, 11, 5, UNI_BIDIC } /* bidicontrol=true */,
+ { 2, 7274, 2483, 9, 11, UNI_CASEDLETTER } /* category=casedletter */,
+ { 0, 7274, 2621, 9, 9, UNI__PERL_SURROGATE } /* category=surrogate */,
+ { 3, 1667, 81, 9, 2, UNI_CJKEXTG } /* blk=cjkextg */,
+ { 3, 2503, 353, 5, 4, UNI_JOINC } /* joinc=yes */,
+ { 11, 1065, 395, 5, 2, UNI_NV__1_SLASH_16 } /* nv=1/16 */,
+ { 3, 438, 0, 4, 0, UNI_OLCK } /* olck */,
+ { 1, 339, 2289, 3, 3, UNI_CCC__14 } /* ccc=14 */,
+ { 0, 2536, 3294, 3, 7, UNI_JG__SEMKATH } /* jg=semkath */,
+ { 0, 2324, 0, 9, 0, UNI_CJK } /* block=cjk */,
+ { 2, 5068, 0, 4, 0, UNI_MANI } /* mani */,
+ { 1, 2302, 352, 9, 5, UNI_IDC } /* idcontinue=yes */,
+ { 2, 1102, 144, 4, 4, UNI_NEWA } /* scx=newa */,
+ { 0, 3014, 295, 11, 2, UNI_IN__9 } /* presentin=v90 */,
+ { 0, 1667, 1562, 4, 10, UNI_INNAGMUNDARI } /* blk=nagmundari */,
+ { 3, 4970, 585, 13, 2, UNI_EMOD } /* emojimodifier=t */,
+ { 5, 461, 5857, 2, 9, UNI_MONG } /* ismongolian */,
+ { 0, 3014, 2117, 11, 2, UNI_IN__6_DOT_2 } /* presentin=v62 */,
+ { 1, 6866, 599, 24, 3, -UNI_COMPEX } /* fullcompositionexclusion=no */,
+ { 0, 1726, 4531, 6, 6, UNI_ARABICEXTC } /* isarabicextc */,
+ { 4, 461, 4371, 2, 6, UNI_XPOSIXSPACE } /* iswspace */,
+ { 2, 2324, 1294, 6, 9, UNI_INNABATAEAN } /* block=nabataean */,
+ { 1, 5156, 543, 10, 2, UNI_WB__EB } /* wordbreak=eb */,
+ { 16, 461, 786, 2, 4, UNI_HMNP } /* ishmnp */,
+ { 2, 3803, 353, 14, 2, UNI_NFKCQC__Y } /* nfkcquickcheck=y */,
+ { 1, 5065, 4751, 13, 5, UNI_JG__MANICHAEANSADHE } /* jg=manichaeansadhe */,
+ { 4, 1102, 148, 4, 4, UNI_ORYA } /* scx=orya */,
+ { 3, 5658, 1455, 15, 10, UNI_DEP } /* identifiertype=deprecated */,
+ { 0, 3391, 1805, 14, 7, UNI_NV__20000000 } /* numericvalue=20000000 */,
+ { 0, 2324, 6382, 9, 18, UNI_CJKCOMPATFORMS } /* block=cjkcompatibilityforms */,
+ { 4, 1391, 543, 3, 3, UNI_WB__EB } /* wb=ebg */,
+ { 0, 1790, 353, 5, 4, UNI_NFCQC__Y } /* nfcqc=yes */,
+ { 1, 461, 917, 2, 4, UNI_BASS } /* isbass */,
+ { 0, 621, 0, 2, 0, UNI_CE } /* ce */,
+ { 1, 292, 796, 3, 3, UNI_NV__NAN } /* nv=nan */,
+ { 0, 309, 322, 2, 5, UNI_VSSUP } /* invssup */,
+ { 0, 2287, 393, 3, 2, UNI_IN__15 } /* in=15 */,
+ { 2, 1424, 346, 7, 2, UNI_CCC__84 } /* ccc=ccc84 */,
+ { 0, 2180, 1805, 4, 4, UNI_NV__40000 } /* nv=40000 */,
+ { 0, 74, 1687, 2, 9, UNI_CPMN } /* cyprominoan */,
+ { 2, 2324, 653, 6, 5, UNI_INBUHID } /* block=buhid */,
+ { 6, 1823, 1484, 7, 8, UNI_SC__BUGI } /* script=buginese */,
+ { 1, 2718, 0, 3, 0, UNI_bc_values_index } /* bc= */,
+ { 1, 1102, 1248, 4, 7, UNI_PHAG } /* scx=phagspa */,
+ { 5, 4424, 1592, 17, 4, UNI_SAUR } /* scriptextensions=saur */,
+ { 0, 6165, 648, 3, 5, UNI_SC__ADLM } /* sc=adlam */,
+ { 0, 4424, 5440, 17, 20, UNI_HMNP } /* scriptextensions=nyiakengpuachuehmong */,
+ { 0, 7887, 4158, 28, 4, UNI_CJKEXTD } /* incjkunifiedideographsextensiond */,
+ { 0, 461, 90, 2, 4, UNI_GUJR } /* isgujr */,
+ { 2, 1894, 599, 12, 3, -UNI_BIDIM } /* bidimirrored=no */,
+ { 1, 5255, 6621, 19, 3, UNI_EXTPICT } /* extendedpictographic=t */,
+ { 0, 292, 2155, 3, 9, UNI_NV__1_SLASH_32 } /* nv=3.125e-02 */,
+ { 0, 8246, 6622, 23, 20, UNI_INPC__TOPANDBOTTOMANDLEFT } /* indicpositionalcategory=topandbottomandleft */,
+ { 1, 6165, 779, 3, 4, UNI_OSMA } /* sc=osma */,
+ { 0, 8246, 6629, 24, 13, UNI_INPC__BOTTOMANDLEFT } /* indicpositionalcategory=bottomandleft */,
+ { 1, 5799, 5813, 5, 7, UNI_SUPARROWSB } /* insuparrowsb */,
+ { 0, 309, 5897, 2, 19, UNI_SUPARROWSC } /* insupplementalarrowsc */,
+ { 1, 7591, 153, 3, 2, UNI_LB__SG } /* lb=sg */,
+ { 1, 8343, 1168, 31, 6, UNI_INSC__CONSONANTMEDIAL } /* indicsyllabiccategory=consonantmedial */,
+ { 0, 533, 0, 3, 0, UNI_sb_values_index } /* sb= */,
+ { 3, 2324, 5353, 6, 20, UNI_ININSCRIPTIONALPAHLAVI } /* block=inscriptionalpahlavi */,
+ { 4, 2432, 5848, 9, 9, UNI_MYANMAREXTA } /* inmyanmarextendeda */,
+ { 1, 832, 599, 5, 3, -UNI_STERM } /* sterm=no */,
+ { 2, 2280, 546, 10, 3, UNI_IN__3 } /* presentin=3.0 */,
+ { 0, 1667, 6909, 4, 14, UNI_MUSIC } /* blk=musicalsymbols */,
+ { 0, 461, 313, 2, 4, UNI_M } /* ismark */,
+ { 24, 1200, 8474, 3, 33, UNI_CJKCOMPATIDEOGRAPHSSUP } /* cjkcompatibilityideographssupplement */,
+ { 5, 1823, 168, 7, 4, UNI_SC__COPT } /* script=qaac */,
+ { 2, 1667, 1009, 4, 6, UNI_INLYCIAN } /* blk=lycian */,
+ { 8, 461, 7086, 2, 24, UNI_ARABICPFB } /* isarabicpresentationformsb */,
+ { 0, 6163, 3217, 14, 4, UNI_INSC__CONSONANTDEAD } /* insc=consonantdead */,
+ { 0, 2348, 933, 12, 7, -UNI_CI } /* caseignorable=false */,
+ { 0, 1667, 5857, 4, 9, UNI_INMONGOLIAN } /* blk=mongolian */,
+ { 3, 4424, 458, 17, 4, UNI_QAAI } /* scriptextensions=qaai */,
+ { 3, 5156, 507, 10, 2, UNI_WB__DQ } /* wordbreak=dq */,
+ { 2, 5799, 4607, 12, 13, UNI_SUPPUNCTUATION } /* insupplementalpunctuation */,
+ { 0, 2766, 106, 3, 2, UNI_ZL } /* gc=zl */,
+ { 3, 4060, 0, 7, 0, UNI_BRAI } /* braille */,
+ { 0, 2752, 353, 5, 4, UNI_EMOJI } /* emoji=yes */,
+ { 8, 2280, 557, 10, 3, UNI_IN__6 } /* presentin=6.0 */,
+ { 0, 8278, 1926, 13, 7, UNI_MISCSYMBOLS } /* miscellaneoussymbols */,
+ { 0, 2752, 934, 14, 2, -UNI_ECOMP } /* emojicomponent=f */,
+ { 16, 5637, 363, 21, 2, UNI_GCB__SM } /* graphemeclusterbreak=sm */,
+ { 3, 7267, 4075, 16, 14, UNI_SC } /* generalcategory=currencysymbol */,
+ { 0, 2324, 3567, 6, 16, UNI_HALFANDFULLFORMS } /* block=halfandfullforms */,
+ { 1, 5205, 3788, 5, 15, UNI_MISCMATHSYMBOLSA } /* blk=miscmathsymbolsa */,
+ { 1, 1883, 0, 11, 0, UNI_BIDIC } /* bidicontrol */,
+ { 0, 6450, 1602, 14, 7, UNI_SB__LE } /* sentencebreak=oletter */,
+ { 0, 1823, 1285, 7, 9, UNI_SC__SIND } /* script=khudawadi */,
+ { 0, 6618, 6635, 8, 7, UNI_INPC__TOPANDLEFT } /* inpc=topandleft */,
+ { 0, 1198, 4533, 5, 4, UNI_CJKEXTC } /* incjkextc */,
+ { 2, 2324, 192, 6, 4, UNI_TAGS } /* block=tags */,
+ { 0, 5799, 8386, 14, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* insupplementalsymbolsandpictographs */,
+ { 0, 1102, 1015, 4, 6, UNI_TELU } /* scx=telugu */,
+ { 0, 309, 6677, 2, 15, UNI_MODIFIERLETTERS } /* inmodifierletters */,
+ { 3, 461, 668, 2, 5, UNI_OGAM } /* isogham */,
+ { 3, 7011, 2092, 24, 2, UNI_CCC__25 } /* canonicalcombiningclass=25 */,
+ { 1, 4424, 3325, 17, 4, UNI_HEBR } /* scriptextensions=hebr */,
+ { 1, 1102, 418, 4, 4, UNI_KHMR } /* scx=khmr */,
+ { 0, 6165, 462, 3, 4, UNI_SHAW } /* sc=shaw */,
+ { 1, 461, 164, 2, 4, UNI_PHNX } /* isphnx */,
+ { 0, 6165, 772, 3, 7, UNI_OLCK } /* sc=olchiki */,
+ { 0, 7011, 348, 24, 2, UNI_CCC__91 } /* canonicalcombiningclass=91 */,
+ { 2, 292, 2098, 3, 9, UNI_NV__1_SLASH_7 } /* nv=1.429e-01 */,
+ { 2, 2324, 5694, 7, 18, UNI_COUNTINGROD } /* block=countingrodnumerals */,
+ { 1, 339, 1678, 4, 7, UNI_CCC__1 } /* ccc=overlay */,
+ { 6, 4569, 352, 8, 5, UNI_XPOSIXUPPER } /* uppercase=yes */,
+ { 0, 4150, 0, 11, 0, UNI_P } /* punctuation */,
+ { 0, 1823, 5857, 7, 9, UNI_SC__MONG } /* script=mongolian */,
+ { 0, 7267, 1393, 15, 2, UNI_M } /* generalcategory=m */,
+ { 0, 1734, 189, 3, 3, UNI_SGNW } /* issgnw */,
+ { 0, 461, 991, 2, 6, UNI_HATR } /* ishatran */,
+ { 6, 1667, 6557, 7, 16, UNI_CJKCOMPATIDEOGRAPHS } /* blk=cjkcompatideographs */,
+ { 1, 461, 1834, 2, 4, UNI_SORA } /* issora */,
+ { 0, 7804, 0, 11, 0, UNI_IDEO } /* ideographic */,
+ { 4, 2362, 0, 8, 0, UNI_ASSIGNED } /* assigned */,
+ { 1, 32, 585, 2, 5, UNI_VS } /* vs=true */,
+ { 1, 2324, 4896, 6, 5, UNI_INBAMUM } /* block=bamum */,
+ { 0, 7274, 3263, 9, 13, UNI_XPOSIXDIGIT } /* category=decimalnumber */,
+ { 8, 6495, 0, 5, 0, UNI_MUSIC } /* music */,
+ { 1, 1823, 1248, 7, 7, UNI_SC__PHAG } /* script=phagspa */,
+ { 2, 6165, 43, 3, 4, UNI_SC__BUHD } /* sc=buhd */,
+ { 1, 7648, 940, 18, 3, UNI_DT__COM } /* decompositiontype=com */,
+ { 5, 309, 1176, 2, 3, UNI_IN__NA } /* in=na */,
+ { 2, 4926, 0, 5, 0, UNI_TAML } /* tamil */,
+ { 16, 510, 2172, 4, 8, UNI_NV__3_SLASH_8 } /* nv=3.750e-01 */,
+ { 1, 309, 3727, 2, 9, UNI_INMALAYALAM } /* inmalayalam */,
+ { 0, 3892, 0, 16, 0, UNI_STERM } /* sentenceterminal */,
+ { 1, 578, 290, 5, 2, UNI_CCC__IS } /* ccc=240 */,
+ { 0, 7267, 3791, 16, 10, UNI_SM } /* generalcategory=mathsymbol */,
+ { 4, 7495, 3404, 27, 2, UNI_CCC__23 } /* canonicalcombiningclass=ccc23 */,
+ { 6, 4043, 0, 17, 0, UNI_IDSB } /* idsbinaryoperator */,
+ { 4, 7267, 363, 16, 2, UNI_SM } /* generalcategory=sm */,
+ { 10, 363, 0, 2, 0, UNI_SM } /* sm */,
+ { 2, 6450, 2768, 13, 6, UNI_SB__XX } /* sentencebreak=other */,
+ { 0, 1200, 70, 5, 2, UNI_CJKEXTC } /* cjkextc */,
+ { 14, 7383, 3505, 9, 3, UNI_BC__ET } /* bidiclass=et */,
+ { 11, 32, 599, 2, 2, -UNI_VS } /* vs=n */,
+ { 3, 1823, 1635, 7, 4, UNI_WARA } /* script=wara */,
+ { 1, 521, 585, 6, 5, UNI_PATSYN } /* patsyn=true */,
+ { 4, 2, 3539, 1, 6, UNI_CPRT } /* cypriot */,
+ { 5, 1667, 357, 4, 6, UNI_INCHAKMA } /* blk=chakma */,
+ { 2, 1823, 5440, 7, 20, UNI_HMNP } /* script=nyiakengpuachuehmong */,
+ { 1, 1823, 5208, 6, 8, UNI_SC__MYMR } /* script=myanmar */,
+ { 0, 6618, 1630, 20, 5, UNI_INPC__TOPANDBOTTOMANDRIGHT } /* inpc=topandbottomandright */,
+ { 0, 1823, 991, 7, 6, UNI_HATR } /* script=hatran */,
+ { 0, 6165, 1086, 3, 4, UNI_SC__KTHI } /* sc=kthi */,
+ { 4, 6165, 156, 3, 4, UNI_SC__OUGR } /* sc=ougr */,
+ { 3, 3817, 290, 15, 1, UNI_NV__1_SLASH_4 } /* numericvalue=1/4 */,
+ { 4, 1479, 5169, 5, 4, UNI_XPOSIXSPACE } /* spaceperl */,
+ { 5, 4424, 806, 17, 4, UNI_SHRD } /* scriptextensions=shrd */,
+ { 2, 461, 5939, 2, 5, UNI__PERL_NCHAR } /* isnchar */,
+ { 5, 6165, 5391, 3, 8, UNI_CHER } /* sc=cherokee */,
+ { 0, 615, 0, 4, 0, UNI_ELYM } /* elym */,
+ { 0, 2301, 353, 4, 4, UNI_XIDC } /* xidc=yes */,
+ { 0, 1102, 3325, 4, 6, UNI_HEBR } /* scx=hebrew */,
+ { 1, 20, 934, 3, 6, -UNI_XPOSIXXDIGIT } /* hex=false */,
+ { 1, 1823, 1685, 7, 11, UNI_SC__CPMN } /* script=cyprominoan */,
+ { 0, 339, 6288, 2, 3, UNI_CCC__L } /* ccc=l */,
+ { 1, 7495, 2154, 27, 2, UNI_CCC__13 } /* canonicalcombiningclass=ccc13 */,
+ { 0, 309, 2302, 2, 3, UNI_INIDC } /* inidc */,
+ { 8, 733, 6142, 3, 21, UNI_EARLYDYNASTICCUNEIFORM } /* inearlydynasticcuneiform */,
+ { 36, 2432, 0, 9, 0, UNI_INMYANMAR } /* inmyanmar */,
+ { 4, 4424, 1484, 17, 4, UNI_BUGI } /* scriptextensions=bugi */,
+ { 0, 4360, 461, 10, 2, UNI_LB__IS } /* linebreak=is */,
+ { 5, 309, 2393, 2, 8, UNI_INCYRILLIC } /* incyrillic */,
+ { 2, 2514, 0, 3, 0, UNI_M } /* ism */,
+ { 0, 1823, 140, 7, 4, UNI_NARB } /* script=narb */,
+ { 5, 4360, 7537, 10, 10, UNI_LB__AL } /* linebreak=alphabetic */,
+ { 0, 148, 0, 4, 0, UNI_ORYA } /* orya */,
+ { 3, 4424, 1234, 17, 4, UNI_MULT } /* scriptextensions=mult */,
+ { 5, 1823, 1095, 8, 3, UNI_MERC } /* script=merc */,
+ { 1, 2718, 4880, 3, 16, UNI_BC__S } /* bc=segmentseparator */,
+ { 13, 2685, 387, 4, 2, UNI_IN__5_DOT_2 } /* in=5.2 */,
+ { 4, 4424, 1582, 17, 10, UNI_PHNX } /* scriptextensions=phoenician */,
+ { 0, 3514, 7545, 10, 20, UNI_ARABICPFA } /* block=arabicpresentationformsa */,
+ { 5, 1994, 599, 7, 3, -UNI_RADICAL } /* radical=no */,
+ { 0, 4424, 82, 17, 4, UNI_GONG } /* scriptextensions=gong */,
+ { 1, 5216, 4659, 11, 9, UNI_LATINEXTC } /* block=latinextendedc */,
+ { 1, 1823, 732, 7, 7, UNI_SC__LINA } /* script=lineara */,
+ { 5, 1397, 934, 4, 6, -UNI_IDST } /* idst=false */,
+ { 8, 7267, 128, 16, 2, UNI_ME } /* generalcategory=me */,
+ { 0, 2514, 2631, 3, 12, UNI_MAYANNUMERALS } /* ismayannumerals */,
+ { 3, 30, 6486, 1, 2, UNI_Z } /* isz */,
+ { 2, 1455, 353, 3, 4, UNI_DEP } /* dep=yes */,
+ { 0, 2930, 2938, 8, 6, UNI_JT__T } /* jt=transparent */,
+ { 3, 309, 608, 2, 7, UNI_INELBASAN } /* inelbasan */,
+ { 5, 1726, 0, 8, 0, UNI_ARAB } /* isarabic */,
+ { 1, 3391, 2100, 13, 2, UNI_NV__42 } /* numericvalue=42 */,
+ { 13, 1397, 599, 3, 2, -UNI_IDS } /* ids=n */,
+ { 11, 2966, 5409, 3, 11, UNI_SMALLKANAEXT } /* insmallkanaext */,
+ { 2, 2432, 7825, 3, 30, UNI_MATHALPHANUM } /* inmathematicalalphanumericsymbols */,
+ { 0, 1667, 1003, 4, 6, UNI_INLEPCHA } /* blk=lepcha */,
+ { 3, 74, 0, 4, 0, UNI_CYRL } /* cyrl */,
+ { 4, 1823, 1191, 7, 7, UNI_SC__BENG } /* script=bengali */,
+ { 0, 5595, 353, 21, 2, UNI_CWT } /* changeswhentitlecased=y */,
+ { 0, 1102, 11, 4, 4, UNI_ADLM } /* scx=adlm */,
+ { 3, 461, 39, 2, 4, UNI_BHKS } /* isbhks */,
+ { 3, 1102, 90, 4, 4, UNI_GUJR } /* scx=gujr */,
+ { 0, 1272, 1505, 5, 4, UNI_CJKEXTA } /* iscjkexta */,
+ { 0, 7267, 4607, 5, 13, UNI_INPUNCTUATION } /* generalpunctuation */,
+ { 1, 6165, 1027, 3, 6, UNI_SC__YEZI } /* sc=yezidi */,
+ { 5, 461, 940, 2, 6, UNI_COMPEX } /* iscompex */,
+ { 2, 461, 732, 2, 7, UNI_LINA } /* islineara */,
+ { 1, 2004, 2060, 5, 5, UNI_POSIXALPHA } /* posixalpha */,
+ { 0, 7383, 3118, 10, 12, UNI_BC__ON } /* bidiclass=otherneutral */,
+ { 3, 1667, 6487, 4, 13, UNI_ZNAMENNYMUSIC } /* blk=znamennymusic */,
+ { 0, 309, 5712, 2, 19, UNI_MERO } /* inmeroitichieroglyphs */,
+ { 1, 1994, 934, 7, 2, -UNI_RADICAL } /* radical=f */,
+ { 1, 5156, 3325, 10, 12, UNI_LB__HL } /* wordbreak=hebrewletter */,
+ { 8, 825, 0, 7, 0, UNI_SHAW } /* shavian */,
+ { 3, 4360, 283, 10, 2, UNI_LB__NU } /* linebreak=nu */,
+ { 9, 309, 6909, 2, 14, UNI_MUSIC } /* inmusicalsymbols */,
+ { 4, 7383, 6021, 21, 8, UNI_BC__LRO } /* bidiclass=lefttorightoverride */,
+ { 4, 2324, 6510, 6, 24, UNI_HIGHPUSURROGATES } /* block=highprivateusesurrogates */,
+ { 0, 6165, 4926, 3, 5, UNI_SC__TAML } /* sc=tamil */,
+ { 0, 510, 520, 4, 1, UNI_NV__37 } /* nv=37 */,
+ { 2, 2280, 2182, 9, 4, UNI_IN__4_DOT_1 } /* presentin=4.1 */,
+ { 9, 1667, 3692, 4, 14, UNI_LISUSUP } /* blk=lisusupplement */,
+ { 1, 4620, 0, 7, 0, UNI_LINB } /* linearb */,
+ { 1, 1530, 3696, 6, 10, UNI_KANASUP } /* iskanasupplement */,
+ { 2, 4424, 1027, 17, 4, UNI_YEZI } /* scriptextensions=yezi */,
+ { 0, 2324, 4620, 6, 16, UNI_LINEARBSYLLABARY } /* block=linearbsyllabary */,
+ { 0, 2718, 143, 3, 2, UNI_BC__BN } /* bc=bn */,
+ { 2, 1823, 4896, 7, 4, UNI_BAMU } /* script=bamu */,
+ { 8, 6165, 1334, 3, 4, UNI_SC__PERM } /* sc=perm */,
+ { 0, 3325, 0, 6, 0, UNI_HEBR } /* hebrew */,
+ { 2, 4424, 11, 17, 4, UNI_ADLM } /* scriptextensions=adlm */,
+ { 4, 1272, 5617, 3, 20, UNI_CWU } /* ischangeswhenuppercased */,
+ { 0, 533, 21, 3, 2, UNI_SB__EX } /* sb=ex */,
+ { 2, 461, 192, 2, 4, UNI_TAGS } /* istags */,
+ { 1, 1391, 2411, 3, 8, UNI_WB__KA } /* wb=katakana */,
+ { 1, 1223, 324, 4, 3, UNI_KANASUP } /* kanasup */,
+ { 4, 1102, 8667, 4, 18, UNI_CANS } /* scx=canadianaboriginal */,
+ { 5, 3391, 1318, 13, 2, UNI_NV__20 } /* numericvalue=20 */,
+ { 0, 1667, 725, 4, 7, UNI_KALI } /* blk=kayahli */,
+ { 3, 6165, 991, 3, 4, UNI_HATR } /* sc=hatr */,
+ { 1, 309, 5838, 2, 10, UNI_JAMO } /* inhanguljamo */,
+ { 4, 2004, 0, 2, 0, UNI_PO } /* po */,
+ { 7, 3177, 1933, 15, 9, UNI_EA__A } /* eastasianwidth=ambiguous */,
+ { 0, 1667, 4150, 4, 11, UNI_INPUNCTUATION } /* blk=punctuation */,
+ { 0, 537, 0, 4, 0, UNI_TANG } /* tang */,
+ { 0, 309, 8660, 2, 34, UNI_UCAS } /* inunifiedcanadianaboriginalsyllabics */,
+ { 0, 4424, 102, 17, 4, UNI_HMNG } /* scriptextensions=hmng */,
+ { 0, 7383, 18, 10, 1, UNI_BC__B } /* bidiclass=b */,
+ { 1, 521, 353, 6, 4, UNI_PATSYN } /* patsyn=yes */,
+ { 0, 2324, 3692, 6, 14, UNI_LISUSUP } /* block=lisusupplement */,
+ { 1, 597, 7011, 6, 5, UNI_DT__NONCANON } /* dt=noncanon */,
+ { 9, 1823, 975, 7, 8, UNI_SC__GURU } /* script=gurmukhi */,
+ { 4, 4424, 5682, 17, 5, UNI_GREK } /* scriptextensions=greek */,
+ { 1, 6165, 678, 3, 5, UNI_RUNR } /* sc=runic */,
+ { 1, 3391, 3405, 13, 2, UNI_NV__36 } /* numericvalue=36 */,
+ { 0, 108, 3746, 2, 14, UNI_KAKTOVIKNUMERALS } /* kaktoviknumerals */,
+ { 1, 7011, 1317, 25, 2, UNI_CCC__AR } /* canonicalcombiningclass=232 */,
+ { 0, 1823, 90, 7, 4, UNI_SC__GUJR } /* script=gujr */,
+ { 1, 1823, 1635, 7, 10, UNI_WARA } /* script=warangciti */,
+ { 11, 5937, 598, 20, 2, UNI_nchar_values_index } /* noncharactercodepoint= */,
+ { 14, 6165, 1248, 3, 7, UNI_SC__PHAG } /* sc=phagspa */,
+ { 0, 30, 1917, 1, 4, UNI_EXT } /* isext */,
+ { 9, 461, 232, 2, 4, UNI_YI } /* isyiii */,
+ { 1, 1883, 934, 5, 2, -UNI_BIDIC } /* bidic=f */,
+ { 1, 2324, 772, 6, 7, UNI_OLCK } /* block=olchiki */,
+ { 0, 7267, 4002, 16, 14, UNI_SK } /* generalcategory=modifiersymbol */,
+ { 7, 292, 342, 2, 3, UNI_NV__12 } /* nv=12 */,
+ { 2, 7274, 54, 9, 2, UNI_SC } /* category=sc */,
+ { 0, 4502, 4344, 5, 16, UNI_LETTERLIKESYMBOLS } /* blk=letterlikesymbols */,
+ { 0, 8441, 1399, 33, 5, UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START } /* _perl_problematic_locale_foldeds_start */,
+ { 6, 309, 1853, 2, 11, UNI_INSYLOTINAGRI } /* insylotinagri */,
+ { 0, 4371, 352, 5, 3, UNI_XPOSIXSPACE } /* wspace=y */,
+ { 4, 6427, 225, 13, 2, UNI_JG__PE } /* joininggroup=pe */,
+ { 0, 271, 281, 4, 2, UNI_GCB__XX } /* gcb=xx */,
+ { 2, 6163, 2382, 5, 5, UNI_INSC__VOWEL } /* insc=vowel */,
+ { 4, 1726, 2705, 3, 13, UNI_ANCIENTSYMBOLS } /* isancientsymbols */,
+ { 17, 2514, 747, 3, 6, UNI_MARC } /* ismarchen */,
+ { 4, 1823, 1015, 7, 6, UNI_SC__TELU } /* script=telugu */,
+ { 2, 7011, 1318, 24, 3, UNI_WB__EB } /* canonicalcombiningclass=200 */,
+ { 0, 7267, 5172, 16, 2, UNI_CASEDLETTER } /* generalcategory=l_ */,
+ { 0, 4424, 0, 17, 0, UNI_scx_values_index } /* scriptextensions= */,
+ { 5, 2766, 3634, 3, 2, UNI_NL } /* gc=nl */,
+ { 0, 2842, 0, 6, 0, UNI_ETHI } /* isethi */,
+ { 0, 42, 3191, 2, 3, UNI_SB__LE } /* sb=le */,
+ { 0, 597, 3289, 3, 5, UNI_DT__FIN } /* dt=final */,
+ { 3, 6866, 8554, 21, 4, UNI_compex_values_index } /* fullcompositionexclusion= */,
+ { 0, 7591, 380, 3, 2, UNI_LB__HY } /* lb=hy */,
+ { 1, 6062, 8111, 7, 31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* block=egyptianhieroglyphformatcontrols */,
+ { 2, 30, 1014, 1, 7, UNI_INTELUGU } /* intelugu */,
+ { 1, 7274, 6683, 12, 8, UNI_LO } /* category=otherletter */,
+ { 13, 1667, 1922, 5, 11, UNI_CHESSSYMBOLS } /* blk=chesssymbols */,
+ { 0, 6165, 232, 3, 2, UNI_SC__YI } /* sc=yi */,
+ { 3, 1102, 1635, 4, 10, UNI_WARA } /* scx=warangciti */,
+ { 1, 1667, 2411, 4, 11, UNI_KATAKANAEXT } /* blk=katakanaext */,
+ { 2, 1667, 5391, 4, 8, UNI_INCHEROKEE } /* blk=cherokee */,
+ { 1, 6165, 430, 3, 3, UNI_SC__NKO } /* sc=nko */,
+ { 0, 2432, 3364, 3, 14, UNI_MISCPICTOGRAPHS } /* inmiscpictographs */,
+ { 17, 1409, 5848, 5, 9, UNI_LATINEXTA } /* latinextendeda */,
+ { 2, 7591, 2991, 3, 2, UNI_LB__QU } /* lb=qu */,
+ { 64, 1823, 55, 7, 4, UNI_CHAM } /* script=cham */,
+ { 1, 7198, 6965, 7, 22, UNI_SUPERANDSUB } /* blk=superscriptsandsubscripts */,
+ { 0, 309, 537, 2, 6, UNI_INTANGSA } /* intangsa */,
+ { 1, 875, 0, 5, 0, UNI_UIDEO } /* uideo */,
+ { 1, 7648, 1176, 17, 7, UNI_DT__NAR } /* decompositiontype=narrow */,
+ { 1, 1823, 6081, 6, 9, UNI_SC__GEOR } /* script=georgian */,
+ { 0, 3325, 0, 4, 0, UNI_HEBR } /* hebr */,
+ { 0, 605, 5980, 3, 2, UNI_ideo_values_index } /* ideo= */,
+ { 6, 1726, 8174, 8, 29, UNI_ARABICMATH } /* isarabicmathematicalalphabeticsymbols */,
+ { 0, 309, 663, 2, 5, UNI_INLIMBU } /* inlimbu */,
+ { 0, 7267, 199, 16, 2, UNI_TITLE } /* generalcategory=lt */,
+ { 2, 3391, 2093, 13, 2, UNI_NV__50 } /* numericvalue=50 */,
+ { 2, 461, 5235, 2, 20, UNI_PC } /* isconnectorpunctuation */,
+ { 0, 2324, 1812, 6, 11, UNI_INPAHAWHHMONG } /* block=pahawhhmong */,
+ { 0, 292, 1805, 4, 5, UNI_NV__900000 } /* nv=900000 */,
+ { 5, 8505, 3001, 3, 7, UNI_NT__NU } /* nt=numeric */,
+ { 0, 7591, 4206, 3, 15, UNI_LB__OP } /* lb=openpunctuation */,
+ { 1, 2393, 5848, 8, 9, UNI_CYRILLICEXTA } /* cyrillicextendeda */,
+ { 0, 3663, 0, 4, 0, UNI_DEVA } /* deva */,
+ { 0, 6163, 2317, 5, 6, UNI_INSC__NUMBER } /* insc=number */,
+ { 16, 2324, 3663, 6, 14, UNI_DEVANAGARIEXTA } /* block=devanagariexta */,
+ { 7, 7383, 6289, 9, 12, UNI_BC__L } /* bidiclass=lefttoright */,
+ { 0, 1667, 1509, 4, 8, UNI_INJAVANESE } /* blk=javanese */,
+ { 16, 6165, 128, 3, 4, UNI_MEDF } /* sc=medf */,
+ { 17, 461, 6776, 2, 11, UNI_MTEI } /* ismeeteimayek */,
+ { 0, 2324, 5391, 6, 8, UNI_INCHEROKEE } /* block=cherokee */,
+ { 0, 1221, 4511, 6, 9, UNI_KANAEXTB } /* inkanaextendedb */,
+ { 1, 1667, 2302, 4, 3, UNI_INIDC } /* blk=idc */,
+ { 1, 2988, 1795, 13, 6, UNI_NFCQC__M } /* nfcquickcheck=maybe */,
+ { 2, 4424, 1133, 17, 4, UNI_VITH } /* scriptextensions=vith */,
+ { 1, 8601, 4710, 7, 15, UNI_SYRIACSUP } /* block=syriacsupplement */,
+ { 2, 461, 798, 2, 4, UNI_NBAT } /* isnbat */,
+ { 1, 3014, 3861, 11, 2, UNI_IN__7 } /* presentin=v70 */,
+ { 1, 1823, 112, 7, 4, UNI_KITS } /* script=kits */,
+ { 0, 6841, 353, 25, 2, UNI_DI } /* defaultignorablecodepoint=y */,
+ { 3, 244, 0, 4, 0, UNI_ZZZZ } /* zzzz */,
+ { 10, 3040, 1669, 12, 2, UNI_qmark_values_index } /* quotationmark= */,
+ { 4, 461, 1033, 2, 4, UNI_JAMO } /* isjamo */,
+ { 1, 1667, 688, 4, 5, UNI_INBATAK } /* blk=batak */,
+ { 0, 4424, 1385, 17, 4, UNI_THAA } /* scriptextensions=thaa */,
+ { 0, 271, 644, 3, 2, UNI_GCB__L } /* gcb=l */,
+ { 0, 8343, 3253, 22, 10, UNI_INSC__PUREKILLER } /* indicsyllabiccategory=purekiller */,
+ { 0, 5216, 4698, 10, 2, UNI_LATIN1 } /* block=latin1 */,
+ { 7, 1728, 1505, 6, 4, UNI_ARABICEXTA } /* arabicexta */,
+ { 5, 1823, 144, 7, 4, UNI_NEWA } /* script=newa */,
+ { 0, 1102, 1117, 4, 4, UNI_TAGB } /* scx=tagb */,
+ { 0, 3021, 290, 5, 2, UNI_IN__14 } /* in=v140 */,
+ { 0, 4424, 5712, 17, 19, UNI_MERO } /* scriptextensions=meroitichieroglyphs */,
+ { 1, 6165, 333, 3, 4, UNI_CARI } /* sc=cari */,
+ { 14, 6165, 1509, 3, 4, UNI_SC__JAVA } /* sc=java */,
+ { 1, 1455, 599, 3, 3, -UNI_DEP } /* dep=no */,
+ { 8, 2988, 599, 13, 2, UNI_COMPEX } /* nfcquickcheck=n */,
+ { 6, 2324, 5682, 6, 5, UNI_INGREEK } /* block=greek */,
+ { 3, 2324, 1556, 6, 6, UNI_ARROWS } /* block=arrows */,
+ { 6, 19, 1104, 3, 2, UNI_ahex_values_index } /* ahex= */,
+ { 4, 4970, 599, 13, 3, -UNI_EMOD } /* emojimodifier=no */,
+ { 2, 1391, 5769, 3, 9, UNI_WB__EB } /* wb=emodifier */,
+ { 0, 8276, 0, 35, 0, UNI_MISCMATHSYMBOLSB } /* inmiscellaneousmathematicalsymbolsb */,
+ { 0, 1894, 585, 5, 5, UNI_BIDIM } /* bidim=true */,
+ { 0, 6427, 1755, 13, 8, UNI_JG__SWASHKAF } /* joininggroup=swashkaf */,
+ { 0, 7214, 295, 25, 1, UNI_CCC__19 } /* canonicalcombiningclass=19 */,
+ { 1, 461, 248, 2, 2, UNI_CN } /* iscn */,
+ { 12, 4424, 1227, 17, 4, UNI_MAKA } /* scriptextensions=maka */,
+ { 0, 461, 6514, 2, 10, UNI_CO } /* isprivateuse */,
+ { 10, 1409, 4533, 5, 4, UNI_LATINEXTC } /* latinextc */,
+ { 0, 309, 1125, 2, 8, UNI_INTIFINAGH } /* intifinagh */,
+ { 1, 461, 5532, 2, 21, UNI_CWCF } /* ischangeswhencasefolded */,
+ { 3, 309, 1248, 2, 7, UNI_INPHAGSPA } /* inphagspa */,
+ { 0, 8, 599, 3, 2, -UNI_PCM } /* pcm=n */,
+ { 3, 7537, 0, 10, 0, UNI_XPOSIXALPHA } /* alphabetic */,
+ { 0, 6427, 715, 13, 3, UNI_JG__AIN } /* joininggroup=ain */,
+ { 3, 1102, 1543, 4, 10, UNI_KHAR } /* scx=kharoshthi */,
+ { 0, 2422, 0, 4, 0, UNI__PERL_SURROGATE } /* iscs */,
+ { 1, 2208, 2200, 4, 8, UNI_NV__1_SLASH_20 } /* nv=5.000e-02 */,
+ { 2, 895, 394, 5, 2, UNI_AGE__5_DOT_1 } /* age=v51 */,
+ { 9, 1667, 2009, 4, 6, UNI_INSYRIAC } /* blk=syriac */,
+ { 1, 7591, 1763, 3, 8, UNI_LB__LF } /* lb=linefeed */,
+ { 9, 7011, 2101, 24, 2, UNI_CCC__29 } /* canonicalcombiningclass=29 */,
+ { 6, 4519, 1687, 8, 9, UNI_INCYPROMINOAN } /* block=cyprominoan */,
+ { 1, 461, 298, 2, 2, UNI_RI } /* isri */,
+ { 9, 3817, 1318, 15, 2, UNI_NV__1_SLASH_20 } /* numericvalue=1/20 */,
+ { 1, 8538, 1628, 20, 7, UNI_VO__U } /* verticalorientation=upright */,
+ { 0, 1823, 1385, 7, 4, UNI_SC__THAA } /* script=thaa */,
+ { 1, 370, 3196, 3, 8, UNI_NO } /* othernumber */,
+ { 0, 916, 933, 4, 7, -UNI_EBASE } /* ebase=false */,
+ { 9, 3204, 934, 14, 6, -UNI_GREXT } /* graphemeextend=false */,
+ { 0, 940, 353, 6, 4, UNI_COMPEX } /* compex=yes */,
+ { 0, 533, 3001, 3, 7, UNI_SB__NU } /* sb=numeric */,
+ { 5, 1823, 63, 7, 4, UNI_SC__CPMN } /* script=cpmn */,
+ { 1, 2324, 6154, 6, 9, UNI_INCUNEIFORM } /* block=cuneiform */,
+ { 0, 6165, 204, 3, 4, UNI_TFNG } /* sc=tfng */,
+ { 1, 959, 599, 8, 3, -UNI_EXT } /* extender=no */,
+ { 1, 2766, 252, 3, 2, UNI_CASEDLETTER } /* gc=lc */,
+ { 2, 7267, 2768, 15, 6, UNI_C } /* generalcategory=other */,
+ { 3, 4424, 1834, 17, 11, UNI_SORA } /* scriptextensions=sorasompeng */,
+ { 0, 1667, 7972, 5, 15, UNI_CUNEIFORMNUMBERS } /* blk=cuneiformnumbers */,
+ { 0, 895, 288, 6, 2, UNI_AGE__13 } /* age=v130 */,
+ { 4, 4970, 934, 13, 6, -UNI_EMOD } /* emojimodifier=false */,
+ { 2, 1823, 410, 7, 4, UNI_SC__GONM } /* script=gonm */,
+ { 0, 609, 4369, 2, 8, UNI_LB__ZW } /* lb=zwspace */,
+ { 0, 7198, 1110, 5, 7, UNI_SPECIALS } /* blk=specials */,
+ { 0, 6165, 1853, 3, 4, UNI_SC__SYLO } /* sc=sylo */,
+ { 5, 461, 5031, 2, 14, UNI_ROHG } /* ishanifirohingya */,
+ { 2, 1823, 124, 7, 4, UNI_SC__LATN } /* script=latn */,
+ { 0, 5574, 0, 21, 0, UNI_CWL } /* changeswhenlowercased */,
+ { 0, 4602, 4150, 7, 11, UNI_PI } /* initialpunctuation */,
+ { 5, 4360, 524, 10, 2, UNI_LB__SY } /* linebreak=sy */,
+ { 2, 7383, 4276, 10, 3, UNI_BC__NSM } /* bidiclass=nsm */,
+ { 11, 7591, 2017, 3, 2, UNI_LB__WJ } /* lb=wj */,
+ { 5, 2324, 4862, 6, 18, UNI_RUMI } /* block=ruminumeralsymbols */,
+ { 0, 461, 3276, 2, 13, UNI_ME } /* isenclosingmark */,
+ { 2, 6450, 36, 14, 2, UNI_SB__AT } /* sentencebreak=at */,
+ { 0, 1667, 3938, 5, 16, UNI_UCAS } /* blk=canadiansyllabics */,
+ { 4, 309, 2692, 2, 13, UNI_VERTICALFORMS } /* inverticalforms */,
+ { 0, 461, 3325, 2, 6, UNI_HEBR } /* ishebrew */,
+ { 0, 7669, 4030, 19, 13, UNI_HST__NA } /* hangulsyllabletype=notapplicable */,
+ { 18, 4360, 279, 10, 2, UNI_GCB__L } /* linebreak=jl */,
+ { 1, 7495, 768, 27, 2, UNI_CCC__27 } /* canonicalcombiningclass=ccc27 */,
+ { 5, 7404, 4, 11, 2, UNI_BC__RLO } /* bidiclass=rlo */,
+ { 0, 1200, 81, 5, 2, UNI_CJKEXTG } /* cjkextg */,
+ { 0, 1065, 0, 4, 0, UNI_NV__1 } /* nv=1 */,
+ { 6, 895, 290, 6, 2, UNI_AGE__14 } /* age=v140 */,
+ { 0, 7669, 202, 20, 2, UNI_LB__H3 } /* hangulsyllabletype=lvt */,
+ { 2, 7267, 6683, 19, 8, UNI_LO } /* generalcategory=otherletter */,
+ { 0, 1102, 1509, 4, 8, UNI_JAVA } /* scx=javanese */,
+ { 72, 2403, 0, 8, 0, UNI_ETHI } /* ethiopic */,
+ { 0, 2324, 8567, 7, 34, UNI_DIACRITICALSSUP } /* block=combiningdiacriticalmarkssupplement */,
+ { 1, 5205, 2643, 5, 12, UNI_MISCTECHNICAL } /* blk=misctechnical */,
+ { 0, 309, 8607, 2, 33, UNI_SUPMATHOPERATORS } /* insupplementalmathematicaloperators */,
+ { 0, 7724, 353, 17, 2, UNI_VS } /* variationselector=y */,
+ { 0, 8343, 1157, 22, 5, UNI_INSC__NUKTA } /* indicsyllabiccategory=nukta */,
+ { 0, 309, 357, 2, 6, UNI_INCHAKMA } /* inchakma */,
+ { 0, 6427, 1536, 13, 7, UNI_JG__THINYEH } /* joininggroup=thinyeh */,
+ { 2, 4667, 0, 16, 0, UNI_PE } /* closepunctuation */,
+ { 0, 71, 599, 3, 3, -UNI_CWU } /* cwu=no */,
+ { 2, 1102, 653, 4, 5, UNI_BUHD } /* scx=buhid */,
+ { 8, 3791, 599, 4, 3, -UNI_MATH } /* math=no */,
+ { 1, 925, 1427, 3, 2, UNI_BPT__C } /* bpt=c */,
+ { 1, 1819, 0, 4, 0, UNI_MONG } /* mong */,
+ { 4, 6090, 2631, 7, 12, UNI_MAYANNUMERALS } /* block=mayannumerals */,
+ { 0, 6165, 67, 3, 4, UNI_SC__CPRT } /* sc=cprt */,
+ { 3, 1102, 683, 4, 4, UNI_TAKR } /* scx=takr */,
+ { 0, 1102, 5712, 4, 19, UNI_MERO } /* scx=meroitichieroglyphs */,
+ { 0, 6165, 1015, 3, 6, UNI_SC__TELU } /* sc=telugu */,
+ { 3, 461, 975, 2, 8, UNI_GURU } /* isgurmukhi */,
+ { 3, 292, 3844, 2, 4, UNI_NV__5_SLASH_8 } /* nv=5/8 */,
+ { 0, 1618, 585, 10, 5, UNI_SD } /* softdotted=true */,
+ { 0, 1667, 1262, 4, 7, UNI_INSOYOMBO } /* blk=soyombo */,
+ { 9, 3013, 353, 5, 2, UNI_EPRES } /* epres=y */,
+ { 12, 3192, 0, 12, 0, UNI_NL } /* letternumber */,
+ { 18, 4941, 3746, 8, 14, UNI_KAKTOVIKNUMERALS } /* block=kaktoviknumerals */,
+ { 3, 7134, 0, 26, 0, UNI_PCM } /* prependedconcatenationmark */,
+ { 7, 1726, 5848, 8, 9, UNI_ARABICEXTA } /* isarabicextendeda */,
+ { 0, 6427, 4228, 13, 7, UNI_JG__HEHGOAL } /* joininggroup=hehgoal */,
+ { 0, 4191, 599, 5, 3, -UNI_XPOSIXLOWER } /* lower=no */,
+ { 0, 7267, 4369, 15, 2, UNI_Z } /* generalcategory=z */,
+ { 9, 7198, 8001, 5, 29, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* blk=symbolsandpictographsextendeda */,
+ { 5, 4502, 4698, 8, 12, UNI_LATIN1 } /* blk=latin1supplement */,
+ { 2, 3724, 783, 12, 3, UNI_JG__MALAYALAMNYA } /* jg=malayalamnya */,
+ { 1, 6165, 1522, 3, 8, UNI_UGAR } /* sc=ugaritic */,
+ { 17, 3502, 7915, 5, 20, UNI_ENCLOSEDALPHANUM } /* blk=enclosedalphanumerics */,
+ { 1, 461, 806, 2, 4, UNI_SHRD } /* isshrd */,
+ { 0, 461, 1027, 2, 4, UNI_YEZI } /* isyezi */,
+ { 0, 1391, 1612, 3, 2, UNI_LB__LF } /* wb=lf */,
+ { 1, 832, 934, 5, 2, -UNI_STERM } /* sterm=f */,
+ { 0, 1102, 4002, 4, 4, UNI_MODI } /* scx=modi */,
+ { 0, 461, 959, 2, 8, UNI_EXT } /* isextender */,
+ { 4, 7267, 117, 16, 2, UNI_XPOSIXDIGIT } /* generalcategory=nd */,
+ { 1, 309, 6986, 2, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* insymbolsforlegacycomputing */,
+ { 0, 4424, 442, 17, 4, UNI_ORKH } /* scriptextensions=orkh */,
+ { 2, 3663, 0, 14, 0, UNI_DEVANAGARIEXTA } /* devanagariexta */,
+ { 3, 6165, 4620, 3, 7, UNI_SC__LINB } /* sc=linearb */,
+ { 0, 312, 585, 5, 5, UNI_QMARK } /* qmark=true */,
+ { 6, 7648, 128, 18, 3, UNI_DT__MED } /* decompositiontype=med */,
+ { 12, 6163, 5114, 5, 10, UNI_INSC__TONELETTER } /* insc=toneletter */,
+ { 1, 1823, 2009, 7, 6, UNI_SC__SYRC } /* script=syriac */,
+ { 3, 1906, 7443, 6, 24, UNI_KATAKANAEXT } /* blk=katakanaphoneticextensions */,
+ { 0, 4424, 128, 17, 4, UNI_MEDF } /* scriptextensions=medf */,
+ { 0, 1198, 6400, 5, 18, UNI_CJKRADICALSSUP } /* incjkradicalssupplement */,
+ { 0, 6165, 1133, 3, 4, UNI_VITH } /* sc=vith */,
+ { 0, 1823, 0, 7, 0, UNI_sc_values_index } /* script= */,
+ { 0, 2280, 393, 10, 2, UNI_IN__15 } /* presentin=15 */,
+ { 17, 461, 1978, 2, 4, UNI_SOGD } /* issogd */,
+ { 0, 461, 4896, 2, 8, UNI_BAMUMSUP } /* isbamumsup */,
+ { 2, 641, 3218, 5, 10, UNI_GCB__L } /* hst=leadingjamo */,
+ { 0, 6487, 0, 23, 0, UNI_ZNAMENNYMUSIC } /* znamennymusicalnotation */,
+ { 1, 5156, 959, 10, 6, UNI_WB__EXTEND } /* wordbreak=extend */,
+ { 0, 4424, 418, 17, 4, UNI_KHMR } /* scriptextensions=khmr */,
+ { 0, 461, 3635, 2, 14, UNI_LATINEXTD } /* islatinextendedd */,
+ { 2, 3001, 599, 11, 5, UNI_NV__NAN } /* numerictype=none */,
+ { 0, 2766, 1926, 3, 6, UNI_S } /* gc=symbol */,
+ { 1, 1272, 8407, 3, 34, UNI_DIACRITICALSFORSYMBOLS } /* iscombiningdiacriticalmarksforsymbols */,
+ { 1, 3663, 334, 7, 3, UNI_DEVA } /* devanagari */,
+ { 0, 5156, 3191, 9, 3, UNI_WB__LE } /* wordbreak=le */,
+ { 12, 8246, 6289, 23, 5, UNI_INPC__LEFT } /* indicpositionalcategory=left */,
+ { 0, 7274, 535, 8, 2, UNI_S } /* category=s */,
+ { 2, 679, 5949, 3, 4, UNI_ANY } /* unicode */,
+ { 8, 939, 0, 5, 0, UNI_ECOMP } /* ecomp */,
+ { 3, 461, 4926, 2, 8, UNI_TAMILSUP } /* istamilsup */,
+ { 0, 8343, 2317, 22, 6, UNI_INSC__NUMBER } /* indicsyllabiccategory=number */,
+ { 2, 1102, 2780, 4, 6, UNI_COPT } /* scx=coptic */,
+ { 3, 3677, 4770, 10, 10, UNI_LATINEXTADDITIONAL } /* islatinextadditional */,
+ { 0, 6165, 810, 3, 4, UNI_SC__SYRC } /* sc=syrc */,
+ { 10, 2732, 4659, 10, 9, UNI_ARABICEXTC } /* blk=arabicextendedc */,
+ { 0, 1102, 739, 4, 7, UNI_MAND } /* scx=mandaic */,
+ { 0, 1994, 274, 7, 1, UNI_radical_values_index } /* radical= */,
+ { 0, 4569, 352, 8, 3, UNI_XPOSIXUPPER } /* uppercase=y */,
+ { 16, 917, 0, 8, 0, UNI_BASS } /* bassavah */,
+ { 0, 2180, 0, 12, 0, UNI_NV__5_SLASH_12 } /* nv=4.167e-01 */,
+ { 13, 5937, 353, 21, 2, UNI__PERL_NCHAR } /* noncharactercodepoint=y */,
+ { 6, 53, 18, 1, 1, UNI_NB } /* nb */,
+ { 0, 1455, 934, 10, 6, -UNI_DEP } /* deprecated=false */,
+ { 2, 4424, 4461, 17, 11, UNI_SGNW } /* scriptextensions=signwriting */,
+ { 0, 1075, 515, 4, 2, UNI_NV__2_SLASH_5 } /* nv=2/5 */,
+ { 1, 461, 5916, 2, 21, UNI_LOE } /* islogicalorderexception */,
+ { 1, 4424, 2244, 17, 12, UNI_HUNG } /* scriptextensions=oldhungarian */,
+ { 2, 1272, 8214, 3, 24, UNI_DIACRITICALS } /* iscombiningdiacriticalmarks */,
+ { 0, 309, 688, 2, 5, UNI_INBATAK } /* inbatak */,
+ { 1, 4569, 934, 5, 6, -UNI_XPOSIXUPPER } /* upper=false */,
+ { 2, 312, 353, 5, 4, UNI_QMARK } /* qmark=yes */,
+ { 0, 1667, 333, 4, 6, UNI_INCARIAN } /* blk=carian */,
+ { 0, 2842, 4511, 10, 9, UNI_ETHIOPICEXTB } /* isethiopicextendedb */,
+ { 0, 4424, 470, 17, 4, UNI_TNSA } /* scriptextensions=tnsa */,
+ { 3, 1823, 806, 7, 4, UNI_SC__SHRD } /* script=shrd */,
+ { 11, 4176, 0, 15, 0, UNI_INHANGUL } /* hangulsyllables */,
+ { 0, 7214, 0, 25, 0, UNI_CCC__1 } /* canonicalcombiningclass=1 */,
+ { 3, 7274, 269, 9, 2, UNI_ZP } /* category=zp */,
+ { 1, 1479, 3282, 4, 7, UNI_MC } /* spacingmark */,
+ { 0, 2766, 8, 3, 1, UNI_P } /* gc=p */,
+ { 1, 510, 764, 5, 2, UNI_NV__3_SLASH_64 } /* nv=3/64 */,
+ { 1, 6427, 4765, 13, 5, UNI_JG__ZHAIN } /* joininggroup=zhain */,
+ { 16, 2324, 732, 6, 7, UNI_INLINEARA } /* block=lineara */,
+ { 6, 4424, 1212, 17, 9, UNI_QAAI } /* scriptextensions=inherited */,
+ { 22, 2393, 1674, 8, 4, UNI_CYRILLICEXTD } /* cyrillicextd */,
+ { 3, 339, 2165, 4, 2, UNI_CCC__33 } /* ccc=33 */,
+ { 2, 309, 474, 2, 3, UNI_INVAI } /* invai */,
+ { 2, 1667, 658, 4, 5, UNI_INDOGRA } /* blk=dogra */,
+ { 0, 461, 1509, 2, 8, UNI_JAVA } /* isjavanese */,
+ { 2, 5799, 4457, 4, 15, UNI_SUTTONSIGNWRITING } /* insuttonsignwriting */,
+ { 1, 6076, 6945, 9, 12, UNI_GEOMETRICSHAPES } /* block=geometricshapes */,
+ { 12, 1823, 1349, 7, 9, UNI_SC__OUGR } /* script=olduyghur */,
+ { 5, 1494, 5863, 5, 13, UNI_GEORGIANSUP } /* georgiansupplement */,
+ { 1, 370, 2814, 3, 8, UNI_SO } /* othersymbol */,
+ { 2, 4424, 825, 17, 7, UNI_SHAW } /* scriptextensions=shavian */,
+ { 0, 461, 4584, 2, 18, UNI_IDST } /* isidstrinaryoperator */,
+ { 0, 1396, 934, 4, 2, -UNI_XIDS } /* xids=f */,
+ { 0, 7274, 466, 9, 2, UNI_SO } /* category=so */,
+ { 0, 3098, 598, 7, 3, -UNI_XPOSIXXDIGIT } /* hexdigit=n */,
+ { 0, 292, 395, 3, 2, UNI_NV__16 } /* nv=16 */,
+ { 5, 461, 406, 2, 4, UNI_DIAK } /* isdiak */,
+ { 0, 2966, 4441, 3, 16, UNI_SMALLFORMS } /* insmallformvariants */,
+ { 9, 339, 3403, 3, 3, UNI_CCC__23 } /* ccc=23 */,
+ { 1, 4391, 276, 14, 1, UNI_NV__32 } /* numericvalue=32 */,
+ { 2, 3130, 6945, 7, 20, UNI_GEOMETRICSHAPESEXT } /* blk=geometricshapesextended */,
+ { 0, 6427, 2546, 13, 3, UNI_JG__FEH } /* joininggroup=feh */,
+ { 0, 6870, 585, 20, 2, UNI_CE } /* compositionexclusion=t */,
+ { 0, 1667, 1051, 4, 8, UNI_INMAHAJANI } /* blk=mahajani */,
+ { 4, 1823, 4089, 7, 4, UNI_SC__SIND } /* script=sind */,
+ { 4, 2324, 32, 6, 2, UNI_INVS } /* block=vs */,
+ { 7, 1883, 353, 5, 2, UNI_BIDIC } /* bidic=y */,
+ { 2, 6163, 0, 5, 0, UNI_insc_values_index } /* insc= */,
+ { 3, 939, 585, 5, 5, UNI_ECOMP } /* ecomp=true */,
+ { 35, 833, 0, 4, 0, UNI_TERM } /* term */,
+ { 1, 6163, 5003, 5, 14, UNI_INSC__GEMINATIONMARK } /* insc=geminationmark */,
+ { 2, 5156, 98, 10, 2, UNI_LB__HL } /* wordbreak=hl */,
+ { 0, 2766, 1478, 3, 2, UNI_ZS } /* gc=zs */,
+ { 1, 2287, 2080, 4, 3, UNI_IN__11 } /* in=11.0 */,
+ { 0, 1667, 1358, 4, 9, UNI_PALM } /* blk=palmyrene */,
+ { 1, 4, 933, 2, 3, -UNI_LOE } /* loe=f */,
+ { 0, 2842, 5820, 3, 15, UNI_ENCLOSEDALPHANUM } /* isenclosedalphanum */,
+ { 8, 3514, 8174, 12, 29, UNI_ARABICMATH } /* block=arabicmathematicalalphabeticsymbols */,
+ { 1, 3021, 2084, 4, 2, UNI_IN__1_DOT_1 } /* in=v11 */,
+ { 1, 2324, 6692, 6, 15, UNI_TRANSPORTANDMAP } /* block=transportandmap */,
+ { 1, 7134, 934, 26, 6, -UNI_PCM } /* prependedconcatenationmark=false */,
+ { 1, 2301, 934, 4, 6, -UNI_XIDC } /* xidc=false */,
+ { 1, 7274, 1887, 9, 7, UNI_XPOSIXCNTRL } /* category=control */,
+ { 2, 2523, 1479, 8, 5, UNI_XPOSIXSPACE } /* isxposixspace */,
+ { 0, 3832, 0, 16, 0, UNI_NV__5_SLASH_8 } /* numericvalue=5/8 */,
+ { 2, 5637, 2720, 20, 3, UNI_RI } /* graphemeclusterbreak=ri */,
+ { 1, 4377, 353, 14, 4, UNI_DT__NONE } /* nfkdquickcheck=yes */,
+ { 0, 1823, 499, 7, 6, UNI_LYDI } /* script=lydian */,
+ { 2, 1667, 5838, 4, 10, UNI_JAMO } /* blk=hanguljamo */,
+ { 0, 5574, 353, 21, 4, UNI_CWL } /* changeswhenlowercased=yes */,
+ { 0, 1102, 590, 4, 7, UNI_DSRT } /* scx=deseret */,
+ { 0, 1102, 3663, 4, 10, UNI_DEVA } /* scx=devanagari */,
+ { 3, 375, 0, 5, 0, UNI_GREXT } /* grext */,
+ { 0, 108, 0, 4, 0, UNI_KAWI } /* kawi */,
+ { 0, 609, 5657, 2, 3, UNI_LB__ID } /* lb=id */,
+ { 5, 6165, 1117, 3, 4, UNI_SC__TAGB } /* sc=tagb */,
+ { 19, 7404, 6021, 21, 8, UNI_BC__RLO } /* bidiclass=righttoleftoverride */,
+ { 8, 609, 2720, 2, 3, UNI_RI } /* lb=ri */,
+ { 2, 1102, 74, 4, 4, UNI_CYRL } /* scx=cyrl */,
+ { 4, 2, 599, 3, 2, -UNI_CWL } /* cwl=n */,
+ { 1, 1198, 3611, 5, 6, UNI_CJKCOMPAT } /* incjkcompat */,
+ { 1, 2287, 566, 3, 3, UNI_IN__9 } /* in=9.0 */,
+ { 0, 377, 353, 3, 4, UNI_EXT } /* ext=yes */,
+ { 0, 5637, 248, 21, 2, UNI_GCB__CN } /* graphemeclusterbreak=cn */,
+ { 0, 5574, 585, 21, 2, UNI_CWL } /* changeswhenlowercased=t */,
+ { 4, 292, 347, 3, 2, UNI_NV__49 } /* nv=49 */,
+ { 19, 369, 0, 4, 0, UNI_GOTH } /* goth */,
+ { 4, 7724, 274, 17, 1, UNI_vs_values_index } /* variationselector= */,
+ { 46, 1102, 1592, 4, 10, UNI_SAUR } /* scx=saurashtra */,
+ { 0, 461, 3692, 2, 7, UNI_LISUSUP } /* islisusup */,
+ { 0, 1102, 6154, 4, 9, UNI_XSUX } /* scx=cuneiform */,
+ { 0, 1823, 240, 7, 4, UNI_SC__ZYYY } /* script=zyyy */,
+ { 3, 959, 585, 8, 2, UNI_EXT } /* extender=t */,
+ { 0, 5979, 44, 3, 1, UNI_VO__U } /* vo=u */,
+ { 0, 2324, 3421, 6, 15, UNI_NARB } /* block=oldnortharabian */,
+ { 0, 823, 934, 4, 6, -UNI_DASH } /* dash=false */,
+ { 6, 1823, 132, 7, 4, UNI_MTEI } /* script=mtei */,
+ { 9, 7591, 306, 3, 2, UNI_LB__SP } /* lb=sp */,
+ { 3, 597, 4277, 3, 5, UNI_DT__SML } /* dt=small */,
+ { 0, 461, 1248, 2, 7, UNI_PHAG } /* isphagspa */,
+ { 6, 4360, 2039, 10, 2, UNI_LB__BK } /* linebreak=bk */,
+ { 0, 292, 2108, 3, 3, UNI_NV__500 } /* nv=500 */,
+ { 0, 7669, 3599, 19, 12, UNI_GCB__T } /* hangulsyllabletype=trailingjamo */,
+ { 0, 1823, 779, 7, 7, UNI_OSMA } /* script=osmanya */,
+ { 1, 629, 933, 5, 7, -UNI_GRBASE } /* grbase=false */,
+ { 0, 2525, 2060, 6, 5, UNI_XPOSIXALPHA } /* xposixalpha */,
+ { 9, 7011, 1155, 24, 2, UNI_CCC__35 } /* canonicalcombiningclass=35 */,
+ { 0, 2302, 353, 3, 2, UNI_IDC } /* idc=y */,
+ { 0, 2301, 352, 10, 5, UNI_XIDC } /* xidcontinue=yes */,
+ { 6, 5895, 6103, 5, 13, UNI_SUPMATHOPERATORS } /* issupmathoperators */,
+ { 0, 1823, 854, 7, 7, UNI_TAVT } /* script=taiviet */,
+ { 5, 7648, 4277, 18, 5, UNI_DT__SML } /* decompositiontype=small */,
+ { 0, 597, 1707, 3, 3, UNI_DT__FRA } /* dt=fra */,
+ { 10, 2665, 353, 13, 4, UNI_PATSYN } /* patternsyntax=yes */,
+ { 0, 749, 1924, 3, 9, UNI_CHESSSYMBOLS } /* chesssymbols */,
+ { 2, 461, 4131, 2, 15, UNI_VEDICEXT } /* isvedicextensions */,
+ { 1, 2752, 598, 13, 3, -UNI_ECOMP } /* emojicomponent=n */,
+ { 1, 1102, 1635, 4, 4, UNI_WARA } /* scx=wara */,
+ { 0, 4424, 144, 17, 4, UNI_NEWA } /* scriptextensions=newa */,
+ { 0, 6165, 673, 3, 5, UNI_OSGE } /* sc=osage */,
+ { 0, 2002, 307, 7, 5, UNI_POSIXPRINT } /* isposixprint */,
+ { 1, 1424, 2165, 8, 2, UNI_WB__EB } /* ccc=ccc133 */,
+ { 0, 461, 1385, 2, 6, UNI_THAA } /* isthaana */,
+ { 0, 461, 2360, 2, 10, UNI_CN } /* isunassigned */,
+ { 0, 7267, 5235, 16, 20, UNI_PC } /* generalcategory=connectorpunctuation */,
+ { 2, 1667, 1340, 4, 9, UNI_INOLDTURKIC } /* blk=oldturkic */,
+ { 0, 271, 1612, 4, 2, UNI_LB__LF } /* gcb=lf */,
+ { 0, 590, 6843, 2, 23, UNI_DI } /* defaultignorablecodepoint */,
+ { 2, 8601, 1269, 10, 3, UNI_SUPPUAB } /* block=suppuab */,
+ { 0, 19, 585, 4, 5, UNI_POSIXXDIGIT } /* ahex=true */,
+ { 5, 3635, 81, 7, 2, UNI_LATINEXTG } /* latinextg */,
+ { 2, 6735, 720, 22, 3, UNI_JG__MALAYALAMNNA } /* joininggroup=malayalamnna */,
+ { 8, 552, 563, 4, 3, UNI_AGE__8 } /* age=8.0 */,
+ { 0, 5937, 353, 21, 4, UNI__PERL_NCHAR } /* noncharactercodepoint=yes */,
+ { 1, 1667, 4060, 4, 15, UNI_BRAI } /* blk=braillepatterns */,
+ { 4, 1272, 60, 3, 3, UNI_CHRS } /* ischrs */,
+ { 9, 1667, 322, 4, 5, UNI_VSSUP } /* blk=vssup */,
+ { 10, 3130, 2773, 5, 13, UNI_INGREEK } /* blk=greekandcoptic */,
+ { 7, 339, 6328, 4, 4, UNI_WB__EB } /* ccc=atbl */,
+ { 3, 21, 598, 2, 2, UNI_ext_values_index } /* ext= */,
+ { 8, 1494, 957, 6, 5, UNI_GEORGIANEXT } /* georgianext */,
+ { 0, 693, 2814, 5, 8, UNI_SO } /* isothersymbol */,
+ { 0, 1009, 0, 6, 0, UNI_LYCI } /* lycian */,
+ { 0, 3791, 1926, 4, 6, UNI_SM } /* mathsymbol */,
+ { 2, 309, 1051, 2, 8, UNI_INMAHAJANI } /* inmahajani */,
+ { 17, 333, 0, 4, 0, UNI_CARI } /* cari */,
+ { 6, 3817, 1317, 15, 2, UNI_NV__1_SLASH_32 } /* numericvalue=1/32 */,
+ { 0, 4584, 934, 18, 6, -UNI_IDST } /* idstrinaryoperator=false */,
+ { 1, 1667, 3635, 4, 14, UNI_LATINEXTD } /* blk=latinextendedd */,
+ { 1, 461, 2692, 2, 13, UNI_VERTICALFORMS } /* isverticalforms */,
+ { 4, 375, 2931, 4, 3, UNI_GREXT } /* grext=t */,
+ { 4, 1492, 958, 9, 4, UNI_GEORGIANEXT } /* ingeorgianext */,
+ { 3, 2526, 0, 10, 0, UNI_POSIXBLANK } /* posixblank */,
+ { 0, 30, 6580, 1, 17, UNI_INDICNUMBERFORMS } /* inindicnumberforms */,
+ { 0, 1667, 7086, 4, 24, UNI_ARABICPFB } /* blk=arabicpresentationformsb */,
+ { 2, 1942, 584, 11, 6, UNI_GRBASE } /* graphemebase=true */,
+ { 4, 2536, 1920, 3, 3, UNI_JG__TAH } /* jg=tah */,
+ { 1, 461, 688, 2, 5, UNI_BATK } /* isbatak */,
+ { 1, 4191, 352, 8, 5, UNI_XPOSIXLOWER } /* lowercase=yes */,
+ { 12, 2766, 4, 3, 2, UNI_LO } /* gc=lo */,
+ { 1, 2832, 0, 10, 0, UNI_CYRL } /* iscyrillic */,
+ { 0, 3177, 3123, 15, 7, UNI_EA__N } /* eastasianwidth=neutral */,
+ { 4, 2468, 0, 6, 0, UNI_IPAEXT } /* ipaext */,
+ { 3, 6041, 928, 21, 2, UNI_BPT__O } /* bidipairedbrackettype=o */,
+ { 0, 302, 4439, 4, 2, UNI_patws_values_index } /* patws= */,
+ { 0, 2324, 779, 6, 7, UNI_INOSMANYA } /* block=osmanya */,
+ { 8, 4424, 4896, 17, 4, UNI_BAMU } /* scriptextensions=bamu */,
+ { 0, 3021, 288, 5, 2, UNI_IN__13 } /* in=v130 */,
+ { 1, 6165, 1205, 3, 4, UNI_SC__GRAN } /* sc=gran */,
+ { 2, 2514, 5107, 3, 18, UNI_MODIFIERTONELETTERS } /* ismodifiertoneletters */,
+ { 1, 461, 1779, 2, 11, UNI_MEDF } /* ismedefaidrin */,
+ { 1, 1667, 3649, 4, 14, UNI_PHONETICEXTSUP } /* blk=phoneticextsup */,
+ { 0, 375, 353, 5, 4, UNI_GREXT } /* grext=yes */,
+ { 0, 309, 7537, 2, 27, UNI_ALPHABETICPF } /* inalphabeticpresentationforms */,
+ { 14, 3204, 585, 14, 2, UNI_GREXT } /* graphemeextend=t */,
+ { 0, 1667, 4896, 4, 15, UNI_BAMUMSUP } /* blk=bamumsupplement */,
+ { 2, 6427, 1540, 13, 3, UNI_JG__YEH } /* joininggroup=yeh */,
+ { 0, 1667, 4926, 4, 15, UNI_TAMILSUP } /* blk=tamilsupplement */,
+ { 1, 552, 2689, 4, 3, UNI_AGE__6_DOT_1 } /* age=6.1 */,
+ { 0, 1102, 648, 4, 5, UNI_ADLM } /* scx=adlam */,
+ { 0, 7011, 118, 24, 2, UNI_CCC__DA } /* canonicalcombiningclass=da */,
+ { 1, 4043, 585, 4, 2, UNI_IDSB } /* idsb=t */,
+ { 0, 54, 3726, 2, 10, UNI_SC__MLYM } /* sc=malayalam */,
+ { 0, 2208, 0, 4, 0, UNI_NV__5 } /* nv=5 */,
+ { 4, 3093, 0, 13, 0, UNI_POSIXXDIGIT } /* asciihexdigit */,
+ { 1, 6165, 1117, 3, 8, UNI_SC__TAGB } /* sc=tagbanwa */,
+ { 1, 4424, 1009, 17, 4, UNI_LYCI } /* scriptextensions=lyci */,
+ { 1, 1454, 585, 2, 2, UNI_SD } /* sd=t */,
+ { 0, 1102, 3954, 4, 17, UNI_AGHB } /* scx=caucasianalbanian */,
+ { 6, 3633, 4344, 3, 16, UNI_LETTERLIKESYMBOLS } /* inletterlikesymbols */,
+ { 0, 678, 0, 5, 0, UNI_RUNR } /* runic */,
+ { 2, 1102, 1009, 4, 4, UNI_LYCI } /* scx=lyci */,
+ { 3, 1198, 0, 5, 0, UNI_CJK } /* incjk */,
+ { 3, 3490, 4511, 12, 9, UNI_CYRILLICEXTB } /* blk=cyrillicextendedb */,
+ { 0, 261, 353, 5, 2, UNI_CWKCF } /* cwkcf=y */,
+ { 3, 951, 0, 4, 0, UNI_DUPL } /* dupl */,
+ { 3, 461, 4525, 2, 12, UNI_CYRILLICEXTC } /* iscyrillicextc */,
+ { 3, 1914, 0, 7, 0, UNI_UCASEXT } /* ucasext */,
+ { 0, 1823, 527, 7, 6, UNI_RJNG } /* script=rejang */,
+ { 0, 406, 934, 2, 2, -UNI_DI } /* di=f */,
+ { 0, 1198, 1966, 3, 9, UNI_COMPATJAMO } /* incompatjamo */,
+ { 2, 2852, 0, 12, 0, UNI_MAHJONG } /* mahjongtiles */,
+ { 2, 1530, 1037, 6, 4, UNI_KANAEXTB } /* iskanaextb */,
+ { 0, 461, 4131, 2, 8, UNI_VEDICEXT } /* isvedicext */,
+ { 10, 7724, 934, 17, 6, -UNI_VS } /* variationselector=false */,
+ { 2, 5769, 0, 4, 0, UNI_EMOD } /* emod */,
+ { 11, 925, 0, 5, 0, UNI_BPT__O } /* bpt=o */,
+ { 13, 4424, 333, 17, 4, UNI_CARI } /* scriptextensions=cari */,
+ { 2, 7198, 4710, 5, 15, UNI_SYRIACSUP } /* blk=syriacsupplement */,
+ { 10, 967, 0, 8, 0, UNI_GUJR } /* gujarati */,
+ { 9, 3633, 1505, 7, 4, UNI_LATINEXTA } /* inlatinexta */,
+ { 3, 4424, 466, 17, 4, UNI_SOGO } /* scriptextensions=sogo */,
+ { 10, 309, 5373, 2, 18, UNI_TAIXUANJING } /* intaixuanjingsymbols */,
+ { 32, 1823, 1117, 7, 8, UNI_SC__TAGB } /* script=tagbanwa */,
+ { 1, 4424, 132, 17, 4, UNI_MTEI } /* scriptextensions=mtei */,
+ { 2, 5216, 4698, 10, 5, UNI_LATIN1 } /* block=latin1sup */,
+ { 3, 339, 1157, 4, 5, UNI_CCC__7 } /* ccc=nukta */,
+ { 0, 324, 4150, 3, 11, UNI_SUPPUNCTUATION } /* suppunctuation */,
+ { 0, 3984, 934, 17, 2, -UNI_EPRES } /* emojipresentation=f */,
+ { 1, 4424, 537, 17, 4, UNI_TANG } /* scriptextensions=tang */,
+ { 0, 461, 3649, 2, 11, UNI_PHONETICEXT } /* isphoneticext */,
+ { 6, 4502, 1037, 9, 4, UNI_LATINEXTB } /* blk=latinextb */,
+ { 1, 309, 3663, 2, 14, UNI_DEVANAGARIEXTA } /* indevanagariexta */,
+ { 0, 339, 3147, 4, 5, UNI_CCC__A } /* ccc=above */,
+ { 8, 2324, 5392, 7, 17, UNI_CHEROKEESUP } /* block=cherokeesupplement */,
+ { 1, 2232, 1805, 4, 5, UNI_NV__800000 } /* nv=800000 */,
+ { 0, 2494, 5800, 9, 11, UNI_GEORGIANSUP } /* isgeorgiansupplement */,
+ { 28, 6090, 1553, 7, 9, UNI_MISCARROWS } /* block=miscarrows */,
+ { 16, 461, 2362, 2, 8, UNI_ASSIGNED } /* isassigned */,
+ { 2, 2766, 330, 3, 2, UNI_PD } /* gc=pd */,
+ { 0, 309, 4536, 2, 18, UNI_COPTICEPACTNUMBERS } /* incopticepactnumbers */,
+ { 1, 5216, 1674, 11, 4, UNI_LATINEXTD } /* block=latinextd */,
+ { 2, 7752, 5047, 23, 6, UNI_JG__MANICHAEANDALETH } /* joininggroup=manichaeandaleth */,
+ { 3, 1667, 818, 4, 7, UNI_SC__SHRD } /* blk=sharada */,
+ { 10, 5065, 4247, 13, 4, UNI_JG__MANICHAEANKAPH } /* jg=manichaeankaph */,
+ { 32, 3514, 6193, 10, 5, UNI_ARABICSUP } /* block=arabicsup */,
+ { 3, 1883, 599, 5, 3, -UNI_BIDIC } /* bidic=no */,
+ { 0, 309, 678, 2, 5, UNI_INRUNIC } /* inrunic */,
+ { 0, 2718, 4, 4, 2, UNI_BC__RLO } /* bc=rlo */,
+ { 13, 1667, 5876, 4, 12, UNI_SUNDANESESUP } /* blk=sundanesesup */,
+ { 7, 4519, 4659, 14, 9, UNI_CYRILLICEXTC } /* block=cyrillicextendedc */,
+ { 9, 2766, 3554, 3, 13, UNI_ZL } /* gc=lineseparator */,
+ { 1, 2324, 4533, 9, 4, UNI_CJKEXTC } /* block=cjkextc */,
+ { 0, 3677, 0, 11, 0, UNI_LATINEXTE } /* islatinexte */,
+ { 2, 1823, 1090, 7, 4, UNI_SC__LINB } /* script=linb */,
+ { 0, 1667, 377, 7, 4, UNI_CJKEXTH } /* blk=cjkexth */,
+ { 0, 454, 0, 4, 0, UNI_PRTI } /* prti */,
+ { 18, 1823, 4896, 7, 5, UNI_BAMU } /* script=bamum */,
+ { 9, 309, 6120, 2, 22, UNI_DIACRITICALSFORSYMBOLS } /* indiacriticalsforsymbols */,
+ { 2, 461, 5838, 2, 19, UNI_JAMOEXTA } /* ishanguljamoextendeda */,
+ { 3, 1438, 0, 10, 0, UNI_CHRS } /* chorasmian */,
+ { 3, 2514, 1553, 3, 9, UNI_MISCARROWS } /* ismiscarrows */,
+ { 0, 3663, 0, 13, 0, UNI_DEVANAGARIEXT } /* devanagariext */,
+ { 11, 19, 1104, 3, 3, UNI_POSIXXDIGIT } /* ahex=t */,
+ { 5, 1942, 0, 12, 0, UNI_GRBASE } /* graphemebase */,
+ { 1, 6165, 168, 3, 4, UNI_SC__COPT } /* sc=qaac */,
+ { 35, 461, 1248, 2, 4, UNI_PHAG } /* isphag */,
+ { 1, 6165, 317, 3, 5, UNI_SC__TALE } /* sc=taile */,
+ { 0, 1667, 991, 4, 6, UNI_INHATRAN } /* blk=hatran */,
+ { 0, 6165, 1635, 3, 4, UNI_WARA } /* sc=wara */,
+ { 0, 629, 933, 5, 3, -UNI_GRBASE } /* grbase=f */,
+ { 1, 3817, 520, 14, 1, UNI_NV__17 } /* numericvalue=17 */,
+ { 0, 2732, 1505, 10, 4, UNI_ARABICEXTA } /* blk=arabicexta */,
+ { 1, 6165, 55, 3, 4, UNI_CHAM } /* sc=cham */,
+ { 0, 7267, 8, 16, 2, UNI_PC } /* generalcategory=pc */,
+ { 0, 461, 4487, 2, 6, UNI_ZYYY } /* iscommon */,
+ { 17, 5205, 2046, 5, 11, UNI_INMASARAMGONDI } /* blk=masaramgondi */,
+ { 0, 7198, 5149, 7, 7, UNI_SUPARROWSA } /* blk=suparrowsa */,
+ { 0, 4161, 585, 9, 5, UNI_DIA } /* diacritic=true */,
+ { 0, 461, 1133, 2, 4, UNI_VITH } /* isvith */,
+ { 0, 6165, 880, 3, 7, UNI_ZZZZ } /* sc=unknown */,
+ { 30, 461, 1349, 2, 9, UNI_OUGR } /* isolduyghur */,
+ { 0, 7383, 305, 10, 2, UNI_BC__WS } /* bidiclass=ws */,
+ { 0, 2280, 890, 9, 5, UNI_IN__10 } /* presentin=10.0 */,
+ { 2, 7892, 585, 16, 2, UNI_UIDEO } /* unifiedideograph=t */,
+ { 5, 2718, 7776, 3, 21, UNI_BC__PDI } /* bc=popdirectionalisolate */,
+ { 1, 1823, 4740, 7, 4, UNI_SC__TALE } /* script=tale */,
+ { 0, 1522, 0, 8, 0, UNI_UGAR } /* ugaritic */,
+ { 6, 5658, 6890, 15, 10, UNI_IDENTIFIERTYPE__LIMITEDUSE } /* identifiertype=limiteduse */,
+ { 6, 590, 0, 7, 0, UNI_DSRT } /* deseret */,
+ { 0, 1102, 244, 4, 4, UNI_ZZZZ } /* scx=zzzz */,
+ { 0, 1198, 6400, 5, 11, UNI_CJKRADICALSSUP } /* incjkradicalssup */,
+ { 1, 1065, 769, 4, 3, UNI_NV__17_SLASH_2 } /* nv=17/2 */,
+ { 1, 4407, 599, 17, 3, -UNI_RI } /* regionalindicator=no */,
+ { 1, 1823, 220, 7, 4, UNI_WCHO } /* script=wcho */,
+ { 0, 4407, 599, 17, 2, -UNI_RI } /* regionalindicator=n */,
+ { 16, 1391, 366, 3, 2, UNI_WB__SQ } /* wb=sq */,
+ { 1, 7752, 5053, 23, 6, UNI_JG__MANICHAEANLAMEDH } /* joininggroup=manichaeanlamedh */,
+ { 3, 2678, 2083, 11, 2, UNI_IN__5_DOT_1 } /* presentin=5.1 */,
+ { 4, 552, 2155, 4, 3, UNI_AGE__3_DOT_1 } /* age=3.1 */,
+ { 0, 1823, 2780, 7, 4, UNI_SC__COPT } /* script=copt */,
+ { 0, 6090, 5107, 7, 18, UNI_MODIFIERTONELETTERS } /* block=modifiertoneletters */,
+ { 19, 4970, 585, 13, 5, UNI_EMOD } /* emojimodifier=true */,
+ { 6, 4424, 983, 17, 4, UNI_HIRA } /* scriptextensions=hira */,
+ { 9, 2244, 0, 12, 0, UNI_HUNG } /* oldhungarian */,
+ { 2, 461, 369, 2, 4, UNI_GOTH } /* isgoth */,
+ { 1, 5637, 3463, 21, 12, UNI_WB__EB } /* graphemeclusterbreak=glueafterzwj */,
+ { 0, 309, 5391, 2, 8, UNI_INCHEROKEE } /* incherokee */,
+ { 2, 2060, 934, 5, 6, -UNI_XPOSIXALPHA } /* alpha=false */,
+ { 0, 369, 0, 6, 0, UNI_GOTH } /* gothic */,
+ { 1, 380, 2288, 5, 2, UNI_hyphen_values_index } /* hyphen= */,
+ { 0, 1102, 2811, 4, 5, UNI_KHMR } /* scx=khmer */,
+ { 0, 1667, 1975, 4, 10, UNI_INOLDSOGDIAN } /* blk=oldsogdian */,
+ { 0, 876, 0, 4, 0, UNI_IDEO } /* ideo */,
+ { 4, 2280, 549, 11, 3, UNI_IN__14 } /* presentin=14.0 */,
+ { 7, 292, 1313, 3, 3, UNI_NV__600 } /* nv=600 */,
+ { 1, 1424, 393, 7, 2, UNI_CCC__15 } /* ccc=ccc15 */,
+ { 0, 6586, 0, 11, 0, UNI_NUMBERFORMS } /* numberforms */,
+ { 0, 1667, 3163, 5, 14, UNI_CONTROLPICTURES } /* blk=controlpictures */,
+ { 7, 3514, 4531, 10, 6, UNI_ARABICEXTC } /* block=arabicextc */,
+ { 0, 4424, 1021, 17, 6, UNI_WCHO } /* scriptextensions=wancho */,
+ { 6, 668, 0, 5, 0, UNI_OGAM } /* ogham */,
+ { 10, 8246, 6635, 27, 7, UNI_INPC__TOPANDLEFT } /* indicpositionalcategory=topandleft */,
+ { 8, 1914, 0, 8, 0, UNI_UCASEXTA } /* ucasexta */,
+ { 0, 7752, 4243, 23, 4, UNI_JG__MANICHAEANHETH } /* joininggroup=manichaeanheth */,
+ { 2, 1883, 599, 5, 2, -UNI_BIDIC } /* bidic=n */,
+ { 1, 7274, 115, 9, 2, UNI_SK } /* category=sk */,
+ { 13, 30, 5711, 1, 5, UNI_MERO } /* ismero */,
+ { 3, 6427, 2864, 13, 11, UNI_JG__ROHINGYAYEH } /* joininggroup=rohingyayeh */,
+ { 4, 5616, 585, 21, 2, UNI_CWU } /* changeswhenuppercased=t */,
+ { 0, 3391, 1803, 12, 6, UNI_NV__10000 } /* numericvalue=10000 */,
+ { 1, 339, 768, 4, 2, UNI_CCC__27 } /* ccc=27 */,
+ { 0, 98, 0, 4, 0, UNI_HLUW } /* hluw */,
+ { 3, 309, 4911, 2, 15, UNI_DIACRITICALSSUP } /* indiacriticalssup */,
+ { 35, 6427, 3012, 12, 2, UNI_JG__E } /* joininggroup=e */,
+ { 0, 4407, 934, 17, 6, -UNI_RI } /* regionalindicator=false */,
+ { 16, 3514, 5848, 12, 9, UNI_ARABICEXTA } /* block=arabicextendeda */,
+ { 1, 3001, 590, 12, 2, UNI_XPOSIXDIGIT } /* numerictype=de */,
+ { 2, 716, 4272, 3, 16, UNI_INKHITANSMALLSCRIPT } /* inkhitansmallscript */,
+ { 0, 4360, 5090, 9, 3, UNI_LB__CL } /* linebreak=cl */,
+ { 6, 4424, 3663, 17, 10, UNI_DEVA } /* scriptextensions=devanagari */,
+ { 1, 154, 6945, 3, 12, UNI_GEOMETRICSHAPES } /* geometricshapes */,
+ { 19, 7011, 7387, 18, 7, UNI_CCC__L } /* canonicalcombiningclass=l */,
+ { 0, 461, 1819, 2, 4, UNI_MONG } /* ismong */,
+ { 1, 5769, 585, 4, 2, UNI_EMOD } /* emod=t */,
+ { 4, 4424, 1015, 17, 6, UNI_TELU } /* scriptextensions=telugu */,
+ { 0, 461, 2852, 2, 12, UNI_MAHJONG } /* ismahjongtiles */,
+ { 2, 1243, 4523, 2, 14, UNI_CYRILLICEXTC } /* blk=cyrillicextc */,
+ { 0, 1823, 1367, 7, 9, UNI_PAUC } /* script=paucinhau */,
+ { 0, 461, 6324, 2, 6, UNI_CF } /* isformat */,
+ { 0, 7267, 2360, 16, 10, UNI_CN } /* generalcategory=unassigned */,
+ { 0, 309, 519, 2, 2, UNI_IN__7 } /* in=7 */,
+ { 1, 7648, 51, 18, 3, UNI_DT__CAN } /* decompositiontype=can */,
+ { 0, 1667, 1027, 4, 6, UNI_INYEZIDI } /* blk=yezidi */,
+ { 14, 1065, 1318, 5, 2, UNI_NV__1_SLASH_20 } /* nv=1/20 */,
+ { 0, 2, 353, 3, 2, UNI_CWL } /* cwl=y */,
+ { 0, 5769, 585, 4, 5, UNI_EMOD } /* emod=true */,
+ { 0, 7274, 106, 9, 2, UNI_ZL } /* category=zl */,
+ { 0, 7537, 599, 10, 3, -UNI_XPOSIXALPHA } /* alphabetic=no */,
+ { 21, 7724, 0, 17, 0, UNI_VS } /* variationselector */,
+ { 3, 6163, 3257, 14, 6, UNI_INSC__CONSONANTKILLER } /* insc=consonantkiller */,
+ { 38, 5373, 0, 18, 0, UNI_TAIXUANJING } /* taixuanjingsymbols */,
+ { 0, 4391, 6263, 14, 8, UNI_NV__1_SLASH_320 } /* numericvalue=3.125e-03 */,
+ { 6, 2536, 2549, 3, 10, UNI_JG__DALATHRISH } /* jg=dalathrish */,
+ { 18, 380, 353, 6, 4, UNI_HYPHEN } /* hyphen=yes */,
+ { 0, 1102, 3349, 4, 4, UNI_MERO } /* scx=mero */,
+ { 13, 6870, 0, 20, 0, UNI_CE } /* compositionexclusion */,
+ { 4, 1102, 725, 4, 7, UNI_KALI } /* scx=kayahli */,
+ { 3, 1734, 4441, 3, 16, UNI_SMALLFORMS } /* issmallformvariants */,
+ { 2, 6450, 0, 14, 0, UNI_sb_values_index } /* sentencebreak= */,
+ { 4, 1823, 474, 7, 4, UNI_VAI } /* script=vaii */,
+ { 0, 309, 6586, 2, 11, UNI_NUMBERFORMS } /* innumberforms */,
+ { 1, 2324, 1853, 6, 11, UNI_INSYLOTINAGRI } /* block=sylotinagri */,
+ { 0, 257, 599, 4, 3, -UNI_CWCM } /* cwcm=no */,
+ { 7, 1479, 3558, 5, 9, UNI_ZS } /* spaceseparator */,
+ { 0, 2483, 353, 5, 4, UNI_CASED } /* cased=yes */,
+ { 5, 2302, 584, 9, 3, UNI_IDC } /* idcontinue=t */,
+ { 0, 6841, 934, 25, 2, -UNI_DI } /* defaultignorablecodepoint=f */,
+ { 2, 309, 4651, 2, 16, UNI_BOPOMOFOEXT } /* inbopomofoextended */,
+ { 0, 7267, 4554, 16, 15, UNI_TITLE } /* generalcategory=titlecaseletter */,
+ { 1, 406, 934, 3, 6, -UNI_DIA } /* dia=false */,
+ { 1, 1391, 0, 3, 0, UNI_wb_values_index } /* wb= */,
+ { 0, 6165, 991, 3, 6, UNI_HATR } /* sc=hatran */,
+ { 0, 1102, 1978, 4, 4, UNI_SOGD } /* scx=sogd */,
+ { 1, 6163, 5762, 5, 16, UNI_INSC__SYLLABLEMODIFIER } /* insc=syllablemodifier */,
+ { 1, 1667, 6185, 4, 20, UNI_GLAGOLITICSUP } /* blk=glagoliticsupplement */,
+ { 0, 1075, 1805, 4, 5, UNI_NV__200000 } /* nv=200000 */,
+ { 3, 1823, 1592, 7, 4, UNI_SAUR } /* script=saur */,
+ { 2, 6618, 4107, 11, 12, UNI_INPC__TOPANDLEFTANDRIGHT } /* inpc=topandleftandright */,
+ { 2, 6062, 4511, 14, 9, UNI_ETHIOPICEXTB } /* block=ethiopicextendedb */,
+ { 17, 1102, 5778, 4, 21, UNI_PRTI } /* scx=inscriptionalparthian */,
+ { 0, 7724, 585, 17, 5, UNI_VS } /* variationselector=true */,
+ { 2, 16, 2370, 1, 12, UNI_GREEKEXT } /* greekextended */,
+ { 2, 6236, 1805, 17, 7, UNI_NV__10000000000 } /* numericvalue=10000000000 */,
+ { 0, 7011, 1070, 24, 2, UNI_CCC__31 } /* canonicalcombiningclass=31 */,
+ { 2, 7011, 1432, 24, 6, UNI_CCC__9 } /* canonicalcombiningclass=virama */,
+ { 1, 2220, 6279, 4, 8, UNI_NV__1_SLASH_160 } /* nv=6.250e-03 */,
+ { 0, 5799, 7707, 13, 17, UNI_SUPPUAB } /* insupplementaryprivateuseareab */,
+ { 4, 1942, 933, 11, 7, -UNI_GRBASE } /* graphemebase=false */,
+ { 0, 1223, 4511, 4, 9, UNI_KANAEXTB } /* kanaextendedb */,
+ { 0, 1823, 1227, 7, 7, UNI_MAKA } /* script=makasar */,
+ { 3, 2401, 4511, 10, 9, UNI_ETHIOPICEXTB } /* inethiopicextendedb */,
+ { 1, 2766, 4667, 3, 16, UNI_PE } /* gc=closepunctuation */,
+ { 7, 4424, 1209, 17, 4, UNI_THAI } /* scriptextensions=thai */,
+ { 0, 7724, 0, 18, 0, UNI_INVS } /* variationselectors */,
+ { 0, 4795, 0, 14, 0, UNI_NV__6 } /* numericvalue=6 */,
+ { 2, 339, 3971, 4, 13, UNI_CCC__IS } /* ccc=iotasubscript */,
+ { 3, 4424, 1367, 17, 4, UNI_PAUC } /* scriptextensions=pauc */,
+ { 0, 461, 255, 2, 2, UNI_CF } /* iscf */,
+ { 0, 2280, 560, 10, 3, UNI_IN__7 } /* presentin=7.0 */,
+ { 0, 7383, 52, 10, 2, UNI_BC__AN } /* bidiclass=an */,
+ { 1, 461, 3192, 2, 12, UNI_NL } /* isletternumber */,
+ { 1, 2324, 144, 6, 4, UNI_INNEWA } /* block=newa */,
+ { 0, 4424, 2735, 16, 5, UNI_ARAB } /* scriptextensions=arab */,
+ { 4, 5205, 7620, 5, 19, UNI_MISCSYMBOLS } /* blk=miscellaneoussymbols */,
+ { 0, 5553, 599, 21, 3, -UNI_CWCM } /* changeswhencasemapped=no */,
+ { 1, 6165, 0, 3, 0, UNI_sc_values_index } /* sc= */,
+ { 1, 461, 3263, 2, 13, UNI_XPOSIXDIGIT } /* isdecimalnumber */,
+ { 0, 2018, 2579, 12, 10, UNI_JT__U } /* joiningtype=nonjoining */,
+ { 1, 3817, 1317, 15, 3, UNI_NV__1_SLASH_320 } /* numericvalue=1/320 */,
+ { 5, 2324, 909, 6, 8, UNI_INBALINESE } /* block=balinese */,
+ { 2, 2966, 6671, 3, 21, UNI_MODIFIERLETTERS } /* inspacingmodifierletters */,
+ { 0, 2324, 6581, 6, 16, UNI_INDICNUMBERFORMS } /* block=indicnumberforms */,
+ { 0, 6163, 1157, 5, 5, UNI_INSC__NUKTA } /* insc=nukta */,
+ { 3, 6165, 136, 3, 4, UNI_SC__MYMR } /* sc=mymr */,
+ { 1, 597, 6116, 3, 4, UNI_DT__FONT } /* dt=font */,
+ { 1, 461, 5373, 2, 11, UNI_TAIXUANJING } /* istaixuanjing */,
+ { 4, 6165, 184, 3, 4, UNI_SAMR } /* sc=samr */,
+ { 0, 8601, 6965, 9, 22, UNI_SUPERANDSUB } /* block=superscriptsandsubscripts */,
+ { 0, 3724, 720, 13, 3, UNI_JG__MALAYALAMNNNA } /* jg=malayalamnnna */,
+ { 9, 3791, 585, 4, 2, UNI_MATH } /* math=t */,
+ { 7, 2002, 308, 3, 4, UNI_XPOSIXPRINT } /* isprint */,
+ { 8, 1667, 5125, 4, 19, UNI_OTTOMANSIYAQNUMBERS } /* blk=ottomansiyaqnumbers */,
+ { 22, 2324, 7972, 7, 15, UNI_CUNEIFORMNUMBERS } /* block=cuneiformnumbers */,
+ { 0, 1667, 474, 4, 3, UNI_INVAI } /* blk=vai */,
+ { 0, 4424, 1812, 17, 11, UNI_HMNG } /* scriptextensions=pahawhhmong */,
+ { 7, 7648, 6116, 18, 4, UNI_DT__FONT } /* decompositiontype=font */,
+ { 0, 8343, 1985, 22, 7, UNI_INSC__VISARGA } /* indicsyllabiccategory=visarga */,
+ { 1, 6165, 1015, 3, 4, UNI_SC__TELU } /* sc=telu */,
+ { 9, 2301, 934, 4, 2, -UNI_XIDC } /* xidc=f */,
+ { 9, 1421, 2370, 3, 12, UNI_GREEKEXT } /* ingreekextended */,
+ { 1, 4424, 204, 17, 4, UNI_TFNG } /* scriptextensions=tfng */,
+ { 0, 4970, 5671, 16, 3, -UNI_EBASE } /* emojimodifierbase=n */,
+ { 8, 2718, 3924, 3, 14, UNI_BC__EN } /* bc=europeannumber */,
+ { 4, 1007, 3570, 3, 13, UNI_HALFANDFULLFORMS } /* halfandfullforms */,
+ { 0, 6165, 430, 3, 4, UNI_SC__NKO } /* sc=nkoo */,
+ { 11, 4131, 0, 8, 0, UNI_VEDICEXT } /* vedicext */,
+ { 1, 1397, 598, 3, 4, -UNI_IDST } /* idst=no */,
+ { 21, 1391, 3472, 3, 3, UNI_LB__ZWJ } /* wb=zwj */,
+ { 0, 533, 832, 3, 5, UNI_SB__ST } /* sb=sterm */,
+ { 0, 716, 0, 9, 0, UNI_INKANNADA } /* inkannada */,
+ { 3, 6165, 608, 3, 7, UNI_ELBA } /* sc=elbasan */,
+ { 0, 8343, 0, 31, 0, UNI_INSC__CONSONANT } /* indicsyllabiccategory=consonant */,
+ { 2, 3391, 2106, 13, 9, UNI_NV__3_SLASH_2 } /* numericvalue=1.500e+00 */,
+ { 5, 339, 119, 4, 2, UNI_CCC__AL } /* ccc=al */,
+ { 0, 7804, 599, 11, 3, -UNI_IDEO } /* ideographic=no */,
+ { 14, 1397, 0, 4, 0, UNI_IDST } /* idst */,
+ { 0, 2324, 6797, 6, 19, UNI_DEVANAGARIEXTA } /* block=devanagariextendeda */,
+ { 3, 1823, 1051, 7, 8, UNI_SC__MAHJ } /* script=mahajani */,
+ { 0, 1667, 5, 4, 3, UNI_OCR } /* blk=ocr */,
+ { 0, 1455, 585, 10, 2, UNI_DEP } /* deprecated=t */,
+ { 8, 1200, 0, 3, 0, UNI_CJK } /* cjk */,
+ { 4, 3502, 4952, 5, 18, UNI_INEGYPTIANHIEROGLYPHS } /* blk=egyptianhieroglyphs */,
+ { 0, 461, 225, 2, 2, UNI_PE } /* ispe */,
+ { 3, 1198, 1448, 5, 7, UNI_CJKSTROKES } /* incjkstrokes */,
+ { 0, 1234, 0, 4, 0, UNI_MULT } /* mult */,
+ { 0, 622, 598, 6, 4, -UNI_EXTPICT } /* extpict=no */,
+ { 0, 2523, 229, 3, 3, UNI_XSUX } /* isxsux */,
+ { 5, 7591, 7537, 3, 10, UNI_LB__AL } /* lb=alphabetic */,
+ { 1, 2068, 0, 12, 0, UNI_MEND } /* mendekikakui */,
+ { 0, 2302, 599, 10, 3, -UNI_IDC } /* idcontinue=no */,
+ { 18, 2002, 161, 3, 3, UNI_PHLP } /* isphlp */,
+ { 0, 1823, 3475, 7, 15, UNI_ZANB } /* script=zanabazarsquare */,
+ { 0, 4424, 3493, 16, 9, UNI_CYRL } /* scriptextensions=cyrillic */,
+ { 3, 309, 6185, 2, 10, UNI_INGLAGOLITIC } /* inglagolitic */,
+ { 3, 1272, 1966, 3, 9, UNI_COMPATJAMO } /* iscompatjamo */,
+ { 9, 309, 1914, 2, 7, UNI_UCASEXT } /* inucasext */,
+ { 5, 1530, 3622, 5, 3, UNI_KANGXI } /* iskangxi */,
+ { 18, 2018, 2897, 12, 11, UNI_JT__D } /* joiningtype=dualjoining */,
+ { 0, 461, 380, 2, 6, UNI_HYPHEN } /* ishyphen */,
+ { 2, 2481, 6848, 6, 9, UNI_CI } /* iscaseignorable */,
+ { 44, 6427, 4263, 13, 4, UNI_JG__QAPH } /* joininggroup=qaph */,
+ { 3, 3391, 1803, 12, 5, UNI_NV__1000 } /* numericvalue=1000 */,
+ { 18, 30, 78, 1, 2, UNI_IDS } /* ids */,
+ { 9, 10, 3788, 1, 15, UNI_MISCMATHSYMBOLSA } /* miscmathsymbolsa */,
+ { 0, 959, 585, 8, 5, UNI_EXT } /* extender=true */,
+ { 0, 1102, 3505, 3, 5, UNI_ETHI } /* scx=ethi */,
+ { 0, 2732, 4987, 5, 16, UNI_ALCHEMICAL } /* blk=alchemicalsymbols */,
+ { 16, 7267, 3101, 16, 5, UNI_XPOSIXDIGIT } /* generalcategory=digit */,
+ { 0, 7267, 3634, 16, 2, UNI_NL } /* generalcategory=nl */,
+ { 44, 6165, 4271, 3, 17, UNI_KITS } /* sc=khitansmallscript */,
+ { 0, 2324, 6400, 9, 11, UNI_CJKRADICALSSUP } /* block=cjkradicalssup */,
+ { 6, 2208, 2107, 4, 8, UNI_NV__11_SLASH_2 } /* nv=5.500e+00 */,
+ { 3, 1823, 951, 7, 4, UNI_SC__DUPL } /* script=dupl */,
+ { 1, 1102, 27, 4, 4, UNI_ARMI } /* scx=armi */,
+ { 0, 3724, 1144, 12, 3, UNI_JG__MALAYALAMBHA } /* jg=malayalambha */,
+ { 8, 571, 0, 7, 0, UNI_AVST } /* avestan */,
+ { 1, 2536, 4247, 3, 4, UNI_JG__KAPH } /* jg=kaph */,
+ { 1, 2514, 8039, 3, 32, UNI_MISCMATHSYMBOLSA } /* ismiscellaneousmathematicalsymbolsa */,
+ { 0, 2324, 317, 6, 5, UNI_INTAILE } /* block=taile */,
+ { 0, 1102, 4060, 4, 7, UNI_BRAI } /* scx=braille */,
+ { 0, 30, 4190, 1, 6, UNI_XPOSIXLOWER } /* islower */,
+ { 18, 461, 1954, 2, 12, UNI_GONG } /* isgunjalagondi */,
+ { 0, 3633, 0, 11, 0, UNI_LATINEXTE } /* inlatinexte */,
+ { 2, 6427, 1041, 13, 5, UNI_JG__GAMAL } /* joininggroup=gamal */,
+ { 0, 3378, 2327, 11, 3, UNI_nfdqc_values_index } /* nfdquickcheck= */,
+ { 1, 2393, 7467, 8, 13, UNI_CYRILLICSUP } /* cyrillicsupplementary */,
+ { 6, 5958, 0, 7, 0, UNI_SINH } /* sinhala */,
+ { 1, 2766, 3026, 3, 2, UNI_PS } /* gc=ps */,
+ { 2, 1102, 236, 4, 4, UNI_ZANB } /* scx=zanb */,
+ { 5, 1102, 5208, 3, 8, UNI_MYMR } /* scx=myanmar */,
+ { 0, 2536, 702, 3, 4, UNI_JG__NOON } /* jg=noon */,
+ { 1, 5895, 7707, 13, 17, UNI_SUPPUAB } /* issupplementaryprivateuseareab */,
+ { 1, 3514, 1141, 12, 3, UNI_ARABICPFA } /* block=arabicpfa */,
+ { 8, 1198, 6557, 5, 16, UNI_CJKCOMPATIDEOGRAPHS } /* incjkcompatideographs */,
+ { 3, 3803, 353, 14, 4, UNI_NFKCQC__Y } /* nfkcquickcheck=yes */,
+ { 0, 6165, 909, 3, 8, UNI_BALI } /* sc=balinese */,
+ { 0, 2766, 4554, 3, 15, UNI_TITLE } /* gc=titlecaseletter */,
+ { 0, 2391, 4511, 10, 9, UNI_CYRILLICEXTB } /* incyrillicextendedb */,
+ { 0, 339, 1243, 4, 2, UNI_CCC__BL } /* ccc=bl */,
+ { 1, 5637, 21, 21, 2, UNI_GCB__EX } /* graphemeclusterbreak=ex */,
+ { 0, 2525, 4569, 6, 5, UNI_XPOSIXUPPER } /* xposixupper */,
+ { 5, 6041, 2025, 17, 5, UNI_bpt_values_index } /* bidipairedbrackettype= */,
+ { 0, 823, 353, 4, 2, UNI_DASH } /* dash=y */,
+ { 0, 19, 934, 4, 6, -UNI_POSIXXDIGIT } /* ahex=false */,
+ { 3, 7274, 65, 9, 2, UNI_MN } /* category=mn */,
+ { 2, 7752, 5059, 23, 6, UNI_JG__MANICHAEANSAMEKH } /* joininggroup=manichaeansamekh */,
+ { 1, 94, 0, 4, 0, UNI_GURU } /* guru */,
+ { 1, 4424, 1303, 17, 9, UNI_TALU } /* scriptextensions=newtailue */,
+ { 4, 832, 599, 5, 2, -UNI_STERM } /* sterm=n */,
+ { 3, 1102, 1322, 4, 9, UNI_ITAL } /* scx=olditalic */,
+ { 0, 1823, 5876, 7, 4, UNI_SUND } /* script=sund */,
+ { 8, 1667, 678, 4, 5, UNI_INRUNIC } /* blk=runic */,
+ { 0, 5205, 1037, 11, 4, UNI_MYANMAREXTB } /* blk=myanmarextb */,
+ { 3, 33, 1110, 1, 7, UNI_SPECIALS } /* specials */,
+ { 1, 2536, 484, 3, 3, UNI_JG__HAH } /* jg=hah */,
+ { 0, 2324, 8474, 9, 23, UNI_CJKCOMPATIDEOGRAPHS } /* block=cjkcompatibilityideographs */,
+ { 0, 15, 3859, 2, 3, UNI_AGE__7 } /* age=7 */,
+ { 2, 2324, 81, 11, 2, UNI_CJKEXTG } /* block=cjkextg */,
+ { 2, 3391, 2098, 13, 9, UNI_NV__1_SLASH_7 } /* numericvalue=1.429e-01 */,
+ { 1, 6165, 2441, 3, 4, UNI_SC__NAND } /* sc=nand */,
+ { 0, 333, 0, 6, 0, UNI_CARI } /* carian */,
+ { 0, 7267, 313, 16, 4, UNI_M } /* generalcategory=mark */,
+ { 0, 309, 7564, 2, 17, UNI_ANCIENTGREEKMUSIC } /* inancientgreekmusic */,
+ { 0, 7011, 1157, 24, 5, UNI_CCC__7 } /* canonicalcombiningclass=nukta */,
+ { 0, 2514, 1235, 3, 6, UNI_MULT } /* ismultani */,
+ { 3, 3817, 288, 14, 1, UNI_NV__13 } /* numericvalue=13 */,
+ { 3, 1667, 1834, 4, 11, UNI_INSORASOMPENG } /* blk=sorasompeng */,
+ { 1, 377, 934, 3, 2, -UNI_EXT } /* ext=f */,
+ { 0, 4002, 5111, 5, 14, UNI_MODIFIERTONELETTERS } /* modifiertoneletters */,
+ { 45719, 7011, 8030, 24, 9, UNI_CCC__AL } /* canonicalcombiningclass=aboveleft */,
+ { 1, 7383, 3106, 10, 12, UNI_BC__AL } /* bidiclass=arabicletter */,
+ { 0, 3677, 1505, 7, 4, UNI_LATINEXTA } /* islatinexta */,
+ { 1, 6165, 208, 3, 4, UNI_SC__TGLG } /* sc=tglg */,
+ { 2, 4795, 6279, 14, 8, UNI_NV__1_SLASH_160 } /* numericvalue=6.250e-03 */,
+ { 9, 2, 584, 1, 3, UNI_CE } /* ce=t */,
+ { 4, 461, 330, 2, 2, UNI_PD } /* ispd */,
+ { 3, 597, 4602, 3, 7, UNI_DT__INIT } /* dt=initial */,
+ { 0, 3984, 8549, 9, 9, UNI_epres_values_index } /* emojipresentation= */,
+ { 3, 461, 19, 2, 4, UNI_POSIXXDIGIT } /* isahex */,
+ { 1, 292, 392, 3, 2, UNI_NV__41 } /* nv=41 */,
+ { 8, 4407, 353, 17, 2, UNI_RI } /* regionalindicator=y */,
+ { 0, 4424, 615, 17, 7, UNI_ELYM } /* scriptextensions=elymaic */,
+ { 5, 7591, 4330, 3, 14, UNI_LB__PO } /* lb=postfixnumeric */,
+ { 2, 975, 0, 8, 0, UNI_GURU } /* gurmukhi */,
+ { 9, 461, 2268, 2, 12, UNI_PLAYINGCARDS } /* isplayingcards */,
+ { 0, 940, 0, 6, 0, UNI_COMPEX } /* compex */,
+ { 0, 1530, 662, 3, 3, UNI_KALI } /* iskali */,
+ { 22, 461, 868, 2, 4, UNI_TIRH } /* istirh */,
+ { 0, 959, 274, 8, 1, UNI_ext_values_index } /* extender= */,
+ { 12, 309, 1340, 2, 9, UNI_INOLDTURKIC } /* inoldturkic */,
+ { 0, 7591, 880, 3, 7, UNI_LB__XX } /* lb=unknown */,
+ { 16, 6090, 1505, 13, 4, UNI_MYANMAREXTA } /* block=myanmarexta */,
+ { 8, 6076, 3448, 11, 6, UNI_GEORGIANEXT } /* block=georgianext */,
+ { 0, 1887, 0, 7, 0, UNI_XPOSIXCNTRL } /* control */,
+ { 2, 6041, 5090, 21, 6, UNI_BPT__C } /* bidipairedbrackettype=close */,
+ { 1, 16, 1426, 1, 3, UNI_C } /* gc=c */,
+ { 0, 4424, 1562, 17, 10, UNI_NAGM } /* scriptextensions=nagmundari */,
+ { 2, 7752, 600, 22, 4, UNI_JG__MANICHAEANONE } /* joininggroup=manichaeanone */,
+ { 0, 6165, 132, 3, 4, UNI_MTEI } /* sc=mtei */,
+ { 0, 7011, 8203, 24, 11, UNI_CCC__DB } /* canonicalcombiningclass=doublebelow */,
+ { 5, 1391, 2292, 3, 9, UNI_WB__WSEGSPACE } /* wb=wsegspace */,
+ { 0, 7011, 294, 23, 2, UNI_CCC__9 } /* canonicalcombiningclass=9 */,
+ { 23, 3803, 6093, 12, 4, UNI_NFCQC__M } /* nfkcquickcheck=m */,
+ { 0, 6450, 5144, 14, 5, UNI_SB__AT } /* sentencebreak=aterm */,
+ { 10, 1823, 3663, 7, 10, UNI_SC__DEVA } /* script=devanagari */,
+ { 0, 8505, 3101, 3, 5, UNI_NT__DI } /* nt=digit */,
+ { 0, 1391, 4407, 3, 17, UNI_RI } /* wb=regionalindicator */,
+ { 0, 3407, 515, 14, 2, UNI_NV__4_SLASH_5 } /* numericvalue=4/5 */,
+ { 10, 461, 3093, 2, 5, UNI_ASCII } /* isascii */,
+ { 0, 2324, 1227, 6, 7, UNI_INMAKASAR } /* block=makasar */,
+ { 0, 2718, 18, 3, 1, UNI_BC__B } /* bc=b */,
+ { 0, 7892, 3190, 15, 2, UNI_uideo_values_index } /* unifiedideograph= */,
+ { 0, 3378, 353, 13, 4, UNI_NFDQC__Y } /* nfdquickcheck=yes */,
+ { 18, 5205, 3364, 5, 14, UNI_MISCPICTOGRAPHS } /* blk=miscpictographs */,
+ { 1, 128, 0, 2, 0, UNI_ME } /* me */,
+ { 2, 7274, 3791, 9, 10, UNI_SM } /* category=mathsymbol */,
+ { 2, 5939, 274, 5, 1, UNI_nchar_values_index } /* nchar= */,
+ { 16, 1424, 2084, 7, 2, UNI_CCC__11 } /* ccc=ccc11 */,
+ { 0, 168, 0, 4, 0, UNI_COPT } /* qaac */,
+ { 0, 3098, 934, 8, 2, -UNI_XPOSIXXDIGIT } /* hexdigit=f */,
+ { 4, 1618, 274, 10, 1, UNI_sd_values_index } /* softdotted= */,
+ { 0, 2536, 3012, 2, 2, UNI_JG__E } /* jg=e */,
+ { 39, 6165, 402, 3, 4, UNI_ARMN } /* sc=armn */,
+ { 0, 1349, 0, 9, 0, UNI_OUGR } /* olduyghur */,
+ { 2, 6464, 0, 23, 0, UNI_SHORTHANDFORMATCONTROLS } /* shorthandformatcontrols */,
+ { 0, 2324, 238, 6, 2, UNI_NB } /* block=nb */,
+ { 0, 6427, 1767, 13, 2, UNI_JG__FE } /* joininggroup=fe */,
+ { 1, 7591, 2966, 3, 11, UNI_LB__IN } /* lb=inseparable */,
+ { 2, 1424, 344, 7, 2, UNI_CCC__21 } /* ccc=ccc21 */,
+ { 12, 461, 82, 2, 4, UNI_GONG } /* isgong */,
+ { 1, 2348, 584, 12, 3, UNI_CI } /* caseignorable=t */,
+ { 7, 1396, 599, 4, 2, -UNI_XIDS } /* xids=n */,
+ { 0, 3098, 598, 7, 2, UNI_hex_values_index } /* hexdigit= */,
+ { 0, 1823, 4505, 6, 6, UNI_SC__LATN } /* script=latin */,
+ { 7, 7011, 350, 24, 2, UNI_CCC__9 } /* canonicalcombiningclass=vr */,
+ { 0, 6165, 5712, 3, 19, UNI_MERO } /* sc=meroitichieroglyphs */,
+ { 0, 1102, 3663, 4, 4, UNI_DEVA } /* scx=deva */,
+ { 0, 309, 2068, 2, 12, UNI_INMENDEKIKAKUI } /* inmendekikakui */,
+ { 1, 7404, 0, 21, 0, UNI_BC__R } /* bidiclass=righttoleft */,
+ { 0, 2280, 2199, 10, 3, UNI_IN__2 } /* presentin=2.0 */,
+ { 0, 2324, 2302, 6, 3, UNI_INIDC } /* block=idc */,
+ { 8, 35, 0, 4, 0, UNI_BATK } /* batk */,
+ { 4, 1823, 297, 7, 5, UNI_SC__ORYA } /* script=oriya */,
+ { 0, 6165, 466, 3, 4, UNI_SOGO } /* sc=sogo */,
+ { 9, 271, 5769, 4, 9, UNI_WB__EB } /* gcb=emodifier */,
+ { 8, 1102, 2780, 4, 4, UNI_COPT } /* scx=copt */,
+ { 1, 3391, 2182, 12, 10, UNI_NV__5_SLASH_12 } /* numericvalue=4.167e-01 */,
+ { 2, 8246, 1630, 30, 5, UNI_INPC__TOPANDRIGHT } /* indicpositionalcategory=topandright */,
+ { 0, 663, 0, 4, 0, UNI_LIMB } /* limb */,
+ { 1, 461, 4852, 2, 10, UNI_XPOSIXSPACE } /* iswhitespace */,
+ { 0, 7267, 248, 16, 2, UNI_CN } /* generalcategory=cn */,
+ { 0, 1823, 1133, 7, 8, UNI_VITH } /* script=vithkuqi */,
+ { 2, 54, 5208, 2, 8, UNI_SC__MYMR } /* sc=myanmar */,
+ { 2, 309, 512, 2, 2, UNI_IN__3 } /* in=3 */,
+ { 11, 7591, 5769, 3, 9, UNI_EMOD } /* lb=emodifier */,
+ { 2, 7267, 252, 16, 2, UNI_CASEDLETTER } /* generalcategory=lc */,
+ { 0, 7495, 2165, 27, 2, UNI_CCC__33 } /* canonicalcombiningclass=ccc33 */,
+ { 0, 1823, 1212, 7, 9, UNI_SC__QAAI } /* script=inherited */,
+ { 6, 128, 130, 2, 2, UNI_MEDF } /* medf */,
+ { 0, 1667, 8619, 4, 21, UNI_MATHOPERATORS } /* blk=mathematicaloperators */,
+ { 2, 5637, 4504, 19, 3, UNI_GCB__L } /* graphemeclusterbreak=l */,
+ { 5, 1492, 6945, 5, 15, UNI_GEOMETRICSHAPESEXT } /* ingeometricshapesext */,
+ { 11, 4951, 0, 4, 0, UNI_EGYP } /* egyp */,
+ { 0, 1065, 1317, 5, 2, UNI_NV__1_SLASH_32 } /* nv=1/32 */,
+ { 4, 380, 599, 6, 3, -UNI_HYPHEN } /* hyphen=no */,
+ { 0, 8538, 44, 20, 1, UNI_VO__U } /* verticalorientation=u */,
+ { 1, 8601, 5409, 7, 17, UNI_SMALLKANAEXT } /* block=smallkanaextension */,
+ { 5, 1144, 1147, 3, 6, UNI_BHKS } /* bhaiksuki */,
+ { 0, 2432, 7620, 3, 19, UNI_MISCSYMBOLS } /* inmiscellaneoussymbols */,
+ { 14, 4191, 585, 5, 5, UNI_XPOSIXLOWER } /* lower=true */,
+ { 1, 2018, 0, 12, 0, UNI_jt_values_index } /* joiningtype= */,
+ { 0, 1102, 94, 4, 4, UNI_GURU } /* scx=guru */,
+ { 5, 5658, 7287, 10, 17, UNI_IDENTIFIERSTATUS__RESTRICTED } /* identifierstatus=restricted */,
+ { 5, 2, 934, 3, 2, -UNI_CWL } /* cwl=f */,
+ { 3, 8343, 6934, 31, 11, UNI_INSC__CONSONANTWITHSTACKER } /* indicsyllabiccategory=consonantwithstacker */,
+ { 32, 6450, 3191, 13, 3, UNI_SB__LE } /* sentencebreak=le */,
+ { 2, 4424, 172, 17, 4, UNI_RJNG } /* scriptextensions=rjng */,
+ { 2, 7274, 248, 9, 5, UNI_XPOSIXCNTRL } /* category=cntrl */,
+ { 3, 1424, 582, 8, 2, UNI_CCC__122 } /* ccc=ccc122 */,
+ { 4, 1102, 196, 4, 4, UNI_TAML } /* scx=taml */,
+ { 2, 292, 760, 3, 3, UNI_NV__1_SLASH_2 } /* nv=1/2 */,
+ { 0, 380, 585, 6, 2, UNI_HYPHEN } /* hyphen=t */,
+ { 5, 71, 274, 3, 1, UNI_cwu_values_index } /* cwu= */,
+ { 0, 21, 6142, 1, 21, UNI_EARLYDYNASTICCUNEIFORM } /* earlydynasticcuneiform */,
+ { 0, 4424, 108, 17, 4, UNI_KAWI } /* scriptextensions=kawi */,
+ { 0, 1479, 352, 4, 3, UNI_XPOSIXSPACE } /* space=y */,
+ { 8, 1667, 108, 4, 4, UNI_INKAWI } /* blk=kawi */,
+ { 9, 2301, 933, 10, 3, -UNI_XIDC } /* xidcontinue=f */,
+ { 8, 8278, 0, 33, 0, UNI_MISCMATHSYMBOLSB } /* miscellaneousmathematicalsymbolsb */,
+ { 1, 5065, 4251, 13, 4, UNI_JG__MANICHAEANQOPH } /* jg=manichaeanqoph */,
+ { 0, 2766, 0, 8, 0, UNI_C } /* gc=other */,
+ { 3, 1883, 341, 4, 2, UNI_bidic_values_index } /* bidic= */,
+ { 5, 3696, 1269, 4, 3, UNI_SUPPUAB } /* suppuab */,
+ { 1, 6165, 398, 3, 4, UNI_MIAO } /* sc=miao */,
+ { 0, 6165, 3954, 3, 17, UNI_AGHB } /* sc=caucasianalbanian */,
+ { 1, 895, 3861, 5, 2, UNI_AGE__7 } /* age=v70 */,
+ { 2, 1726, 6193, 6, 5, UNI_ARABICSUP } /* isarabicsup */,
+ { 0, 307, 0, 5, 0, UNI_XPOSIXPRINT } /* print */,
+ { 2, 3021, 2125, 4, 2, UNI_IN__6_DOT_3 } /* in=v63 */,
+ { 0, 1667, 2852, 4, 12, UNI_MAHJONG } /* blk=mahjongtiles */,
+ { 0, 461, 3475, 2, 15, UNI_ZANB } /* iszanabazarsquare */,
+ { 0, 4424, 779, 17, 7, UNI_OSMA } /* scriptextensions=osmanya */,
+ { 1, 406, 585, 3, 5, UNI_DIA } /* dia=true */,
+ { 5, 42, 2768, 2, 6, UNI_SB__XX } /* sb=other */,
+ { 1, 6332, 0, 19, 0, UNI_JAMOEXTB } /* hanguljamoextendedb */,
+ { 0, 461, 4667, 2, 16, UNI_PE } /* isclosepunctuation */,
+ { 18, 1102, 1303, 4, 9, UNI_TALU } /* scx=newtailue */,
+ { 0, 3391, 0, 14, 0, UNI_NV__2 } /* numericvalue=2 */,
+ { 0, 895, 2117, 5, 2, UNI_AGE__6_DOT_2 } /* age=v62 */,
+ { 0, 1174, 7036, 3, 9, UNI_EA__H } /* ea=halfwidth */,
+ { 2, 733, 7241, 3, 10, UNI_ENCLOSEDCJK } /* inenclosedcjk */,
+ { 0, 1102, 1685, 4, 11, UNI_CPMN } /* scx=cyprominoan */,
+ { 9, 2766, 4569, 3, 15, UNI_UPPERCASELETTER } /* gc=uppercaseletter */,
+ { 0, 461, 4161, 2, 9, UNI_DIA } /* isdiacritic */,
+ { 0, 257, 585, 4, 2, UNI_CWCM } /* cwcm=t */,
+ { 0, 271, 644, 3, 3, UNI_LB__H2 } /* gcb=lv */,
+ { 8, 1667, 1255, 4, 7, UNI_INSIDDHAM } /* blk=siddham */,
+ { 3, 1198, 6576, 3, 21, UNI_INDICNUMBERFORMS } /* incommonindicnumberforms */,
+ { 5, 7084, 0, 8, 0, UNI_INARABIC } /* inarabic */,
+ { 0, 1823, 196, 7, 4, UNI_SC__TAML } /* script=taml */,
+ { 2, 2324, 4896, 6, 15, UNI_BAMUMSUP } /* block=bamumsupplement */,
+ { 1, 2766, 4146, 3, 15, UNI_PD } /* gc=dashpunctuation */,
+ { 1, 4554, 0, 9, 0, UNI_TITLE } /* titlecase */,
+ { 0, 3803, 2327, 12, 3, UNI_nfkcqc_values_index } /* nfkcquickcheck= */,
+ { 2, 461, 474, 2, 4, UNI_VAI } /* isvaii */,
+ { 11, 6165, 1834, 3, 11, UNI_SORA } /* sc=sorasompeng */,
+ { 2, 597, 1850, 3, 3, UNI_DT__SUB } /* dt=sub */,
+ { 19, 6165, 124, 3, 4, UNI_SC__LATN } /* sc=latn */,
+ { 0, 6735, 4724, 22, 3, UNI_JG__MALAYALAMTTA } /* joininggroup=malayalamtta */,
+ { 1, 2324, 615, 6, 7, UNI_INELYMAIC } /* block=elymaic */,
+ { 2, 683, 0, 4, 0, UNI_TAKR } /* takr */,
+ { 0, 6165, 3325, 3, 6, UNI_HEBR } /* sc=hebrew */,
+ { 6, 6165, 1009, 3, 6, UNI_LYCI } /* sc=lycian */,
+ { 2, 5895, 5813, 5, 7, UNI_SUPARROWSB } /* issuparrowsb */,
+ { 0, 6427, 2559, 13, 10, UNI_JG__KNOTTEDHEH } /* joininggroup=knottedheh */,
+ { 2, 461, 1003, 2, 6, UNI_LEPC } /* islepcha */,
+ { 1, 1883, 353, 11, 4, UNI_BIDIC } /* bidicontrol=yes */,
+ { 0, 309, 6642, 2, 6, UNI_INBRAHMI } /* inbrahmi */,
+ { 0, 1667, 6797, 4, 18, UNI_DEVANAGARIEXT } /* blk=devanagariextended */,
+ { 0, 2324, 1696, 6, 6, UNI_DOMINO } /* block=domino */,
+ { 0, 1667, 1978, 4, 7, UNI_INSOGDIAN } /* blk=sogdian */,
+ { 6, 6287, 176, 4, 2, UNI_BC__LRO } /* bc=lro */,
+ { 1, 1075, 2657, 4, 8, UNI_NV__1_SLASH_5 } /* nv=2.000e-01 */,
+ { 11, 1667, 3908, 4, 6, UNI_INTANGUT } /* blk=tangut */,
+ { 1, 4271, 0, 17, 0, UNI_KITS } /* khitansmallscript */,
+ { 0, 1102, 3133, 3, 5, UNI_GEOR } /* scx=geor */,
+ { 1, 1102, 5067, 3, 11, UNI_MANI } /* scx=manichaean */,
+ { 0, 309, 3692, 2, 7, UNI_LISUSUP } /* inlisusup */,
+ { 5, 461, 1812, 2, 11, UNI_HMNG } /* ispahawhhmong */,
+ { 0, 309, 4161, 2, 12, UNI_DIACRITICALS } /* indiacriticals */,
+ { 25, 6165, 1562, 3, 10, UNI_NAGM } /* sc=nagmundari */,
+ { 0, 1823, 1209, 7, 4, UNI_THAI } /* script=thai */,
+ { 0, 3001, 3101, 12, 5, UNI_NT__DI } /* numerictype=digit */,
+ { 4, 461, 1696, 2, 6, UNI_DOMINO } /* isdomino */,
+ { 11, 309, 3583, 2, 16, UNI_HIGHPUSURROGATES } /* inhighpusurrogates */,
+ { 14, 7495, 7239, 27, 2, UNI_CCC__28 } /* canonicalcombiningclass=ccc28 */,
+ { 2, 3502, 5820, 5, 15, UNI_ENCLOSEDALPHANUM } /* blk=enclosedalphanum */,
+ { 3, 2280, 295, 10, 1, UNI_IN__9 } /* presentin=9 */,
+ { 2, 2732, 3790, 9, 5, UNI_ARABICMATH } /* blk=arabicmath */,
+ { 0, 2301, 585, 4, 5, UNI_XIDC } /* xidc=true */,
+ { 1, 266, 353, 3, 4, UNI_CWT } /* cwt=yes */,
+ { 0, 7274, 599, 8, 3, UNI_NO } /* category=no */,
+ { 0, 1397, 2931, 6, 3, UNI_IDS } /* idstart=t */,
+ { 0, 4424, 5958, 17, 7, UNI_SINH } /* scriptextensions=sinhala */,
+ { 0, 1391, 1864, 3, 8, UNI_WB__EB } /* wb=ebasegaz */,
+ { 3, 1102, 909, 4, 4, UNI_BALI } /* scx=bali */,
+ { 0, 86, 2372, 3, 5, UNI_GREEKEXT } /* greekext */,
+ { 0, 1102, 112, 4, 4, UNI_KITS } /* scx=kits */,
+ { 13, 357, 0, 6, 0, UNI_CAKM } /* chakma */,
+ { 0, 5156, 3451, 10, 12, UNI_WB__EX } /* wordbreak=extendnumlet */,
+ { 0, 461, 406, 2, 3, UNI_DIA } /* isdia */,
+ { 0, 1272, 8567, 3, 34, UNI_DIACRITICALSSUP } /* iscombiningdiacriticalmarkssupplement */,
+ { 4, 1102, 537, 4, 6, UNI_TNSA } /* scx=tangsa */,
+ { 0, 4360, 3040, 10, 9, UNI_LB__QU } /* linebreak=quotation */,
+ { 0, 309, 6082, 2, 8, UNI_INGEORGIAN } /* ingeorgian */,
+ { 65, 2324, 5876, 6, 12, UNI_SUNDANESESUP } /* block=sundanesesup */,
+ { 2, 716, 490, 5, 3, UNI_KANBUN } /* inkanbun */,
+ { 0, 1823, 798, 7, 4, UNI_NBAT } /* script=nbat */,
+ { 1, 4161, 6621, 8, 3, UNI_DIA } /* diacritic=t */,
+ { 2, 54, 5067, 2, 5, UNI_SC__MANI } /* sc=mani */,
+ { 4, 269, 0, 2, 0, UNI_ZP } /* zp */,
+ { 3, 552, 560, 4, 3, UNI_AGE__7 } /* age=7.0 */,
+ { 1, 2324, 3163, 7, 14, UNI_CONTROLPICTURES } /* block=controlpictures */,
+ { 0, 339, 2538, 3, 2, UNI_CCC__A } /* ccc=a */,
+ { 0, 292, 1314, 4, 2, UNI_NV__900 } /* nv=900 */,
+ { 3, 4424, 160, 17, 4, UNI_PHLP } /* scriptextensions=phlp */,
+ { 0, 38, 7442, 1, 25, UNI_KATAKANAEXT } /* katakanaphoneticextensions */,
+ { 17, 1734, 5409, 3, 17, UNI_SMALLKANAEXT } /* issmallkanaextension */,
+ { 41, 2536, 3289, 3, 12, UNI_JG__FINALSEMKATH } /* jg=finalsemkath */,
+ { 0, 6165, 422, 3, 4, UNI_SC__LINA } /* sc=lina */,
+ { 1, 1033, 0, 8, 0, UNI_JAMOEXTB } /* jamoextb */,
+ { 2, 309, 369, 2, 6, UNI_INGOTHIC } /* ingothic */,
+ { 8, 1667, 6776, 4, 21, UNI_MEETEIMAYEKEXT } /* blk=meeteimayekextensions */,
+ { 0, 461, 8619, 2, 21, UNI_MATHOPERATORS } /* ismathematicaloperators */,
+ { 0, 1272, 6557, 5, 16, UNI_CJKCOMPATIDEOGRAPHS } /* iscjkcompatideographs */,
+ { 0, 406, 599, 2, 2, -UNI_DI } /* di=n */,
+ { 22, 7134, 934, 26, 2, -UNI_PCM } /* prependedconcatenationmark=f */,
+ { 17, 140, 0, 4, 0, UNI_NARB } /* narb */,
+ { 0, 1102, 1367, 4, 4, UNI_PAUC } /* scx=pauc */,
+ { 4, 7274, 5172, 9, 2, UNI_CASEDLETTER } /* category=l_ */,
+ { 9, 6165, 4896, 3, 4, UNI_BAMU } /* sc=bamu */,
+ { 0, 461, 1914, 2, 4, UNI_UCAS } /* isucas */,
+ { 14, 4620, 3779, 7, 9, UNI_LINEARBIDEOGRAMS } /* linearbideograms */,
+ { 0, 30, 195, 1, 5, UNI_TAML } /* istaml */,
+ { 0, 2391, 1505, 10, 4, UNI_CYRILLICEXTA } /* incyrillicexta */,
+ { 4, 4191, 934, 5, 2, -UNI_XPOSIXLOWER } /* lower=f */,
+ { 0, 461, 2503, 2, 11, UNI_JOINC } /* isjoincontrol */,
+ { 2, 3984, 599, 17, 2, -UNI_EPRES } /* emojipresentation=n */,
+ { 8, 4424, 615, 17, 4, UNI_ELYM } /* scriptextensions=elym */,
+ { 1, 7669, 140, 19, 2, UNI_HST__NA } /* hangulsyllabletype=na */,
+ { 12, 4424, 1144, 17, 9, UNI_BHKS } /* scriptextensions=bhaiksuki */,
+ { 0, 6062, 2374, 14, 8, UNI_ETHIOPICEXT } /* block=ethiopicextended */,
+ { 1, 6163, 129, 20, 2, UNI_INSC__CONSONANTPREFIXED } /* insc=consonantprefixed */,
+ { 0, 2180, 1314, 4, 2, UNI_NV__400 } /* nv=400 */,
+ { 1, 4191, 353, 5, 2, UNI_XPOSIXLOWER } /* lower=y */,
+ { 0, 3177, 599, 14, 2, UNI_EA__N } /* eastasianwidth=n */,
+ { 0, 6165, 35, 3, 4, UNI_BATK } /* sc=batk */,
+ { 1, 3378, 353, 13, 2, UNI_NFDQC__Y } /* nfdquickcheck=y */,
+ { 0, 324, 8386, 3, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* supsymbolsandpictographs */,
+ { 1, 1667, 6400, 7, 11, UNI_CJKRADICALSSUP } /* blk=cjkradicalssup */,
+ { 0, 2324, 357, 6, 6, UNI_INCHAKMA } /* block=chakma */,
+ { 4, 3391, 347, 13, 2, UNI_NV__49 } /* numericvalue=49 */,
+ { 0, 2324, 6909, 6, 14, UNI_MUSIC } /* block=musicalsymbols */,
+ { 0, 1667, 8407, 5, 34, UNI_DIACRITICALSFORSYMBOLS } /* blk=combiningdiacriticalmarksforsymbols */,
+ { 1, 1667, 1685, 4, 11, UNI_INCYPROMINOAN } /* blk=cyprominoan */,
+ { 0, 5125, 0, 19, 0, UNI_OTTOMANSIYAQNUMBERS } /* ottomansiyaqnumbers */,
+ { 0, 339, 342, 3, 2, UNI_CCC__1 } /* ccc=1 */,
+ { 0, 461, 3663, 2, 14, UNI_DEVANAGARIEXTA } /* isdevanagariexta */,
+ { 0, 7198, 1845, 7, 8, UNI_SUPERANDSUB } /* blk=superandsub */,
+ { 0, 2324, 7480, 6, 14, UNI_PUA } /* block=privateusearea */,
+ { 0, 2718, 2424, 3, 2, UNI_BC__CS } /* bc=cs */,
+ { 0, 2220, 1805, 4, 4, UNI_NV__60000 } /* nv=60000 */,
+ { 5, 3098, 353, 8, 4, UNI_XPOSIXXDIGIT } /* hexdigit=yes */,
+ { 8, 1823, 1294, 7, 9, UNI_NBAT } /* script=nabataean */,
+ { 0, 6165, 1954, 3, 12, UNI_SC__GONG } /* sc=gunjalagondi */,
+ { 0, 1240, 6, 3, 2, UNI_OCR } /* inocr */,
+ { 12, 1823, 4951, 7, 4, UNI_EGYP } /* script=egyp */,
+ { 0, 50, 0, 2, 0, UNI_MC } /* mc */,
+ { 10, 1397, 934, 7, 6, -UNI_IDS } /* idstart=false */,
+ { 4, 15, 4402, 2, 3, UNI_AGE__3 } /* age=3 */,
+ { 1, 4424, 1978, 17, 7, UNI_SOGD } /* scriptextensions=sogdian */,
+ { 0, 1455, 0, 10, 0, UNI_DEP } /* deprecated */,
+ { 0, 2324, 2256, 6, 8, UNI_PHAISTOS } /* block=phaistos */,
+ { 0, 7274, 4, 9, 2, UNI_LO } /* category=lo */,
+ { 0, 5065, 2270, 13, 4, UNI_JG__MANICHAEANAYIN } /* jg=manichaeanayin */,
+ { 0, 144, 1306, 3, 6, UNI_TALU } /* newtailue */,
+ { 4, 1823, 2045, 7, 12, UNI_SC__GONM } /* script=masaramgondi */,
+ { 7, 1823, 2811, 7, 5, UNI_KHMR } /* script=khmer */,
+ { 0, 461, 1367, 2, 4, UNI_PAUC } /* ispauc */,
+ { 0, 629, 5671, 5, 3, -UNI_GRBASE } /* grbase=n */,
+ { 0, 2324, 6351, 6, 23, UNI_COMPATJAMO } /* block=hangulcompatibilityjamo */,
+ { 0, 4795, 2091, 14, 8, UNI_NV__5_SLASH_8 } /* numericvalue=6.250e-01 */,
+ { 0, 7944, 7380, 28, 4, UNI_CJKEXTB } /* iscjkunifiedideographsextensionb */,
+ { 2, 5658, 2646, 15, 9, UNI_IDENTIFIERTYPE__TECHNICAL } /* identifiertype=technical */,
+ { 0, 4161, 341, 8, 2, UNI_dia_values_index } /* diacritic= */,
+ { 3, 1823, 120, 7, 3, UNI_LAO } /* script=lao */,
+ { 0, 3391, 515, 14, 2, UNI_NV__2_SLASH_5 } /* numericvalue=2/5 */,
+ { 0, 1102, 861, 4, 7, UNI_TIBT } /* scx=tibetan */,
+ { 6, 6165, 454, 3, 4, UNI_PRTI } /* sc=prti */,
+ { 16, 5205, 2422, 5, 10, UNI_MISCSYMBOLS } /* blk=miscsymbols */,
+ { 0, 1823, 5958, 7, 4, UNI_SC__SINH } /* script=sinh */,
+ { 0, 4424, 1349, 17, 9, UNI_OUGR } /* scriptextensions=olduyghur */,
+ { 0, 461, 4043, 2, 4, UNI_IDSB } /* isidsb */,
+ { 1, 1894, 353, 5, 2, UNI_BIDIM } /* bidim=y */,
+ { 0, 4391, 0, 16, 0, UNI_NV__3_SLASH_2 } /* numericvalue=3/2 */,
+ { 1, 2732, 6193, 8, 5, UNI_ARABICSUP } /* blk=arabicsup */,
+ { 0, 2718, 330, 3, 3, UNI_BC__PDF } /* bc=pdf */,
+ { 0, 4424, 917, 17, 4, UNI_BASS } /* scriptextensions=bass */,
+ { 0, 7274, 8, 9, 2, UNI_PC } /* category=pc */,
+ { 1, 33, 4710, 1, 8, UNI_SYRIACSUP } /* syriacsup */,
+ { 2, 2324, 2780, 6, 6, UNI_INCOPTIC } /* block=coptic */,
+ { 0, 2324, 3538, 6, 16, UNI_CYPRIOTSYLLABARY } /* block=cypriotsyllabary */,
+ { 0, 1272, 1448, 5, 7, UNI_CJKSTROKES } /* iscjkstrokes */,
+ { 1, 7383, 6029, 10, 12, UNI_BC__AN } /* bidiclass=arabicnumber */,
+ { 1, 641, 2382, 4, 9, UNI_GCB__V } /* hst=voweljamo */,
+ { 12, 868, 0, 7, 0, UNI_TIRH } /* tirhuta */,
+ { 0, 4424, 1322, 17, 9, UNI_ITAL } /* scriptextensions=olditalic */,
+ { 7, 8, 585, 3, 5, UNI_PCM } /* pcm=true */,
+ { 8, 4407, 934, 17, 2, -UNI_RI } /* regionalindicator=f */,
+ { 3, 19, 599, 4, 3, -UNI_POSIXXDIGIT } /* ahex=no */,
+ { 0, 1823, 917, 7, 4, UNI_BASS } /* script=bass */,
+ { 3, 5801, 0, 19, 0, UNI_SUPARROWSB } /* supplementalarrowsb */,
+ { 0, 7110, 0, 13, 0, UNI_M } /* combiningmark */,
+ { 9, 309, 238, 2, 2, UNI_NB } /* innb */,
+ { 5, 1667, 1209, 4, 4, UNI_INTHAI } /* blk=thai */,
+ { 29, 461, 2468, 2, 6, UNI_IPAEXT } /* isipaext */,
+ { 0, 192, 319, 2, 3, UNI_TALE } /* taile */,
+ { 10, 7198, 6671, 5, 21, UNI_MODIFIERLETTERS } /* blk=spacingmodifierletters */,
+ { 16, 5168, 7160, 6, 21, UNI__PERL_IS_IN_MULTI_CHAR_FOLD } /* _perl_is_in_multi_char_fold */,
+ { 0, 1102, 1834, 4, 11, UNI_SORA } /* scx=sorasompeng */,
+ { 6, 505, 599, 5, 3, UNI_DT__CAN } /* nfdqc=no */,
+ { 0, 1198, 8153, 5, 21, UNI_CJKSYMBOLS } /* incjksymbolsandpunctuation */,
+ { 1, 292, 765, 3, 2, UNI_NV__45 } /* nv=45 */,
+ { 1, 5031, 150, 12, 2, UNI_ROHG } /* hanifirohingya */,
+ { 1, 2, 599, 3, 3, -UNI_CWL } /* cwl=no */,
+ { 1, 7889, 5417, 20, 10, UNI_CJKEXTD } /* cjkunifiedideographsextensiond */,
+ { 0, 4502, 733, 5, 6, UNI_INLINEARA } /* blk=lineara */,
+ { 2, 1011, 353, 2, 2, UNI_CI } /* ci=y */,
+ { 7, 6163, 1432, 5, 6, UNI_INSC__VIRAMA } /* insc=virama */,
+ { 1, 4391, 1314, 14, 3, UNI_NV__3000 } /* numericvalue=3000 */,
+ { 4, 641, 644, 3, 2, UNI_GCB__L } /* hst=l */,
+ { 1, 339, 8640, 4, 13, UNI_CCC__214 } /* ccc=attachedabove */,
+ { 4, 8601, 4710, 7, 8, UNI_SYRIACSUP } /* block=syriacsup */,
+ { 1, 2280, 890, 9, 3, UNI_IN__10 } /* presentin=10 */,
+ { 0, 54, 4505, 2, 6, UNI_SC__LATN } /* sc=latin */,
+ { 18, 629, 5671, 5, 4, -UNI_GRBASE } /* grbase=no */,
+ { 5, 4424, 402, 17, 4, UNI_ARMN } /* scriptextensions=armn */,
+ { 0, 1823, 212, 7, 4, UNI_TIBT } /* script=tibt */,
+ { 1, 4502, 1674, 9, 4, UNI_LATINEXTD } /* blk=latinextd */,
+ { 0, 7591, 98, 3, 2, UNI_LB__HL } /* lb=hl */,
+ { 11, 6427, 1747, 13, 8, UNI_JG__FARSIYEH } /* joininggroup=farsiyeh */,
+ { 16, 4191, 933, 8, 3, -UNI_XPOSIXLOWER } /* lowercase=f */,
+ { 20, 228, 0, 4, 0, UNI_XSUX } /* xsux */,
+ { 0, 6735, 529, 22, 2, UNI_JG__MALAYALAMJA } /* joininggroup=malayalamja */,
+ { 0, 1424, 2092, 7, 2, UNI_CCC__25 } /* ccc=ccc25 */,
+ { 3, 339, 2154, 4, 2, UNI_CCC__13 } /* ccc=13 */,
+ { 3, 6165, 152, 3, 4, UNI_OSGE } /* sc=osge */,
+ { 0, 309, 1438, 2, 10, UNI_INCHORASMIAN } /* inchorasmian */,
+ { 0, 8311, 4680, 32, 4, UNI_CJKEXTF } /* block=cjkunifiedideographsextensionf */,
+ { 0, 2536, 2546, 3, 3, UNI_JG__FEH } /* jg=feh */,
+ { 0, 5895, 4150, 5, 11, UNI_SUPPUNCTUATION } /* issuppunctuation */,
+ { 0, 292, 344, 3, 2, UNI_NV__21 } /* nv=21 */,
+ { 4, 7752, 4259, 23, 4, UNI_JG__MANICHAEANYODH } /* joininggroup=manichaeanyodh */,
+ { 1, 309, 2268, 2, 12, UNI_PLAYINGCARDS } /* inplayingcards */,
+ { 1, 2505, 5276, 4, 16, UNI_HALFMARKS } /* incombininghalfmarks */,
+ { 0, 2441, 0, 11, 0, UNI_NAND } /* nandinagari */,
+ { 0, 1667, 590, 4, 7, UNI_DSRT } /* blk=deseret */,
+ { 17, 2324, 1191, 6, 7, UNI_INBENGALI } /* block=bengali */,
+ { 0, 1102, 1376, 4, 9, UNI_SAMR } /* scx=samaritan */,
+ { 5, 1667, 6495, 4, 5, UNI_MUSIC } /* blk=music */,
+ { 4, 461, 120, 2, 4, UNI_LAO } /* islaoo */,
+ { 1, 552, 393, 4, 2, UNI_AGE__15 } /* age=15 */,
+ { 23, 1667, 3955, 5, 16, UNI_INCAUCASIANALBANIAN } /* blk=caucasianalbanian */,
+ { 8, 3014, 2093, 11, 2, UNI_IN__5 } /* presentin=v50 */,
+ { 1, 3391, 2655, 13, 10, UNI_NV___MINUS_1_SLASH_2 } /* numericvalue=-5.000e-01 */,
+ { 27, 7267, 4, 16, 2, UNI_LO } /* generalcategory=lo */,
+ { 0, 1102, 1133, 4, 8, UNI_VITH } /* scx=vithkuqi */,
+ { 2, 2525, 4191, 6, 5, UNI_XPOSIXLOWER } /* xposixlower */,
+ { 0, 1667, 615, 4, 7, UNI_INELYMAIC } /* blk=elymaic */,
+ { 0, 1667, 4131, 4, 8, UNI_VEDICEXT } /* blk=vedicext */,
+ { 1, 461, 1562, 2, 4, UNI_NAGM } /* isnagm */,
+ { 1, 3021, 288, 4, 2, UNI_IN__3 } /* in=v30 */,
+ { 9, 1455, 585, 3, 5, UNI_DEP } /* dep=true */,
+ { 2, 461, 416, 2, 2, UNI_NO } /* isno */,
+ { 37, 5156, 3472, 10, 3, UNI_LB__ZWJ } /* wordbreak=zwj */,
+ { 2, 8246, 0, 27, 0, UNI_INPC__TOP } /* indicpositionalcategory=top */,
+ { 0, 4424, 1358, 17, 4, UNI_PALM } /* scriptextensions=palm */,
+ { 1, 1102, 802, 4, 4, UNI_SARB } /* scx=sarb */,
+ { 0, 309, 634, 2, 7, UNI_INHANUNOO } /* inhanunoo */,
+ { 2, 1728, 0, 4, 0, UNI_ARAB } /* arab */,
+ { 3, 4519, 0, 14, 0, UNI_INCYRILLIC } /* block=cyrillic */,
+ { 0, 7011, 1678, 24, 7, UNI_CCC__1 } /* canonicalcombiningclass=overlay */,
+ { 3, 2718, 4852, 3, 10, UNI_BC__WS } /* bc=whitespace */,
+ { 17, 2002, 3100, 7, 6, UNI_POSIXXDIGIT } /* isposixxdigit */,
+ { 2, 4424, 1227, 17, 7, UNI_MAKA } /* scriptextensions=makasar */,
+ { 11, 2324, 1562, 6, 10, UNI_INNAGMUNDARI } /* block=nagmundari */,
+ { 1, 461, 1003, 2, 4, UNI_LEPC } /* islepc */,
+ { 0, 1065, 389, 5, 1, UNI_NV__1_SLASH_6 } /* nv=1/6 */,
+ { 0, 1823, 458, 7, 4, UNI_SC__QAAI } /* script=qaai */,
+ { 0, 8356, 0, 10, 0, UNI_C } /* category=c */,
+ { 0, 2324, 7036, 6, 26, UNI_HALFANDFULLFORMS } /* block=halfwidthandfullwidthforms */,
+ { 4, 1823, 658, 7, 4, UNI_SC__DOGR } /* script=dogr */,
+ { 10, 3021, 3876, 4, 2, UNI_IN__8 } /* in=v80 */,
+ { 2, 7274, 3558, 9, 9, UNI_Z } /* category=separator */,
+ { 21, 6841, 599, 25, 2, -UNI_DI } /* defaultignorablecodepoint=n */,
+ { 20, 1065, 2123, 4, 8, UNI_NV__1_SLASH_64 } /* nv=1.563e-02 */,
+ { 1, 7404, 6300, 20, 10, UNI_BC__RLE } /* bidiclass=righttoleftembedding */,
+ { 5, 2348, 584, 12, 6, UNI_CI } /* caseignorable=true */,
+ { 0, 7267, 0, 16, 0, UNI_gc_values_index } /* generalcategory= */,
+ { 1, 144, 0, 4, 0, UNI_NEWA } /* newa */,
+ { 3, 1391, 1869, 3, 3, UNI_WB__EB } /* wb=gaz */,
+ { 5, 916, 352, 4, 2, UNI_ebase_values_index } /* ebase= */,
+ { 0, 1667, 297, 4, 5, UNI_INORIYA } /* blk=oriya */,
+ { 0, 5895, 5149, 14, 7, UNI_SUPARROWSA } /* issupplementalarrowsa */,
+ { 1, 552, 549, 4, 3, UNI_AGE__4 } /* age=4.0 */,
+ { 0, 1102, 4505, 3, 6, UNI_LATN } /* scx=latin */,
+ { 1, 510, 515, 4, 2, UNI_NV__3_SLASH_5 } /* nv=3/5 */,
+ { 11, 4424, 2068, 17, 12, UNI_MEND } /* scriptextensions=mendekikakui */,
+ { 0, 1198, 6228, 4, 8, UNI_CJKSYMBOLS } /* incjksymbols */,
+ { 4, 6090, 5848, 13, 9, UNI_MYANMAREXTA } /* block=myanmarextendeda */,
+ { 1, 2, 598, 2, 2, UNI_cwt_values_index } /* cwt= */,
+ { 5, 30, 1208, 1, 5, UNI_INTHAI } /* inthai */,
+ { 9, 4569, 585, 5, 2, UNI_XPOSIXUPPER } /* upper=t */,
+ { 9, 1102, 1853, 4, 11, UNI_SYLO } /* scx=sylotinagri */,
+ { 0, 7892, 0, 16, 0, UNI_UIDEO } /* unifiedideograph */,
+ { 0, 7011, 395, 24, 2, UNI_CCC__16 } /* canonicalcombiningclass=16 */,
+ { 1, 1102, 160, 4, 4, UNI_PHLP } /* scx=phlp */,
+ { 0, 2287, 2223, 3, 3, UNI_IN__6_DOT_2 } /* in=6.2 */,
+ { 0, 461, 854, 2, 7, UNI_TAVT } /* istaiviet */,
+ { 0, 6165, 244, 3, 4, UNI_ZZZZ } /* sc=zzzz */,
+ { 2, 2324, 3663, 6, 10, UNI_INDEVANAGARI } /* block=devanagari */,
+ { 3, 2324, 6776, 6, 14, UNI_MEETEIMAYEKEXT } /* block=meeteimayekext */,
+ { 1, 2324, 3649, 6, 14, UNI_PHONETICEXTSUP } /* block=phoneticextsup */,
+ { 0, 2536, 2569, 3, 10, UNI_JG__REVERSEDPE } /* jg=reversedpe */,
+ { 0, 8, 353, 3, 2, UNI_PCM } /* pcm=y */,
+ { 0, 2301, 599, 4, 2, -UNI_XIDC } /* xidc=n */,
+ { 4, 2503, 934, 11, 6, -UNI_JOINC } /* joincontrol=false */,
+ { 1, 461, 3663, 2, 13, UNI_DEVANAGARIEXT } /* isdevanagariext */,
+ { 0, 271, 543, 4, 2, UNI_WB__EB } /* gcb=eb */,
+ { 5, 8071, 4680, 30, 4, UNI_CJKEXTF } /* blk=cjkunifiedideographsextensionf */,
+ { 2, 461, 5838, 2, 10, UNI_JAMO } /* ishanguljamo */,
+ { 1, 2766, 363, 3, 2, UNI_SM } /* gc=sm */,
+ { 0, 6165, 1853, 3, 11, UNI_SC__SYLO } /* sc=sylotinagri */,
+ { 0, 5658, 6548, 15, 9, UNI_IDENTIFIERTYPE__INCLUSION } /* identifiertype=inclusion */,
+ { 4, 5205, 5848, 11, 9, UNI_MYANMAREXTA } /* blk=myanmarextendeda */,
+ { 0, 1883, 585, 11, 2, UNI_BIDIC } /* bidicontrol=t */,
+ { 0, 461, 1009, 2, 6, UNI_LYCI } /* islycian */,
+ { 10, 4970, 274, 13, 1, UNI_emod_values_index } /* emojimodifier= */,
+ { 1, 2494, 4982, 3, 5, UNI_GRBASE } /* isgrbase */,
+ { 0, 1102, 798, 4, 4, UNI_NBAT } /* scx=nbat */,
+ { 1, 30, 633, 1, 4, UNI_HAN } /* ishan */,
+ { 1, 309, 1975, 2, 10, UNI_INOLDSOGDIAN } /* inoldsogdian */,
+ { 0, 1102, 450, 4, 4, UNI_MIAO } /* scx=plrd */,
+ { 0, 461, 47, 2, 4, UNI_CAKM } /* iscakm */,
+ { 0, 2536, 3743, 3, 3, UNI_JG__TAW } /* jg=taw */,
+ { 1, 21, 7915, 1, 29, UNI_ENCLOSEDALPHANUMSUP } /* enclosedalphanumericsupplement */,
+ { 5, 1906, 3746, 6, 14, UNI_KAKTOVIKNUMERALS } /* blk=kaktoviknumerals */,
+ { 6, 6165, 120, 3, 3, UNI_LAO } /* sc=lao */,
+ { 3, 461, 6510, 2, 24, UNI_HIGHPUSURROGATES } /* ishighprivateusesurrogates */,
+ { 0, 2432, 2422, 3, 10, UNI_MISCSYMBOLS } /* inmiscsymbols */,
+ { 2, 1823, 3325, 7, 6, UNI_HEBR } /* script=hebrew */,
+ { 2, 4970, 933, 16, 3, -UNI_EBASE } /* emojimodifierbase=f */,
+ { 38, 30, 4969, 1, 14, UNI_EMOD } /* isemojimodifier */,
+ { 12, 2766, 3791, 3, 10, UNI_SM } /* gc=mathsymbol */,
+ { 0, 4043, 585, 17, 2, UNI_IDSB } /* idsbinaryoperator=t */,
+ { 0, 5532, 585, 21, 2, UNI_CWCF } /* changeswhencasefolded=t */,
+ { 0, 4519, 1037, 14, 4, UNI_CYRILLICEXTB } /* block=cyrillicextb */,
+ { 20, 2536, 1279, 3, 6, UNI_JG__LAMADH } /* jg=lamadh */,
+ { 16, 7495, 2101, 28, 2, UNI_CCC__129 } /* canonicalcombiningclass=ccc129 */,
+ { 16, 6735, 1876, 22, 3, UNI_JG__MALAYALAMLLA } /* joininggroup=malayalamlla */,
+ { 16, 309, 5125, 2, 19, UNI_OTTOMANSIYAQNUMBERS } /* inottomansiyaqnumbers */,
+ { 1, 7267, 1478, 16, 2, UNI_ZS } /* generalcategory=zs */,
+ { 1, 2514, 5848, 9, 9, UNI_MYANMAREXTA } /* ismyanmarextendeda */,
+ { 0, 7591, 2955, 3, 11, UNI_LB__EX } /* lb=exclamation */,
+ { 9, 7804, 585, 11, 5, UNI_IDEO } /* ideographic=true */,
+ { 0, 6450, 959, 14, 6, UNI_SB__EX } /* sentencebreak=extend */,
+ { 0, 8505, 283, 3, 2, UNI_NT__NU } /* nt=nu */,
+ { 9, 6165, 108, 3, 4, UNI_KAWI } /* sc=kawi */,
+ { 0, 7011, 8640, 24, 18, UNI_CCC__216 } /* canonicalcombiningclass=attachedaboveright */,
+ { 0, 578, 395, 5, 2, UNI_CCC__216 } /* ccc=216 */,
+ { 1, 4424, 208, 17, 4, UNI_TGLG } /* scriptextensions=tglg */,
+ { 5, 1102, 1812, 4, 11, UNI_HMNG } /* scx=pahawhhmong */,
+ { 5, 339, 1905, 4, 2, UNI_CCC__DB } /* ccc=db */,
+ { 0, 450, 0, 4, 0, UNI_MIAO } /* plrd */,
+ { 0, 423, 4987, 3, 9, UNI_ALCHEMICAL } /* inalchemical */,
+ { 1, 2766, 7110, 3, 13, UNI_M } /* gc=combiningmark */,
+ { 0, 3391, 796, 13, 3, UNI_NV__NAN } /* numericvalue=nan */,
+ { 0, 8601, 4457, 8, 15, UNI_SUTTONSIGNWRITING } /* block=suttonsignwriting */,
+ { 3, 493, 0, 4, 0, UNI_KHOJ } /* khoj */,
+ { 40, 5876, 0, 4, 0, UNI_SUND } /* sund */,
+ { 26, 1667, 6797, 4, 19, UNI_DEVANAGARIEXTA } /* blk=devanagariextendeda */,
+ { 8, 4926, 0, 8, 0, UNI_TAMILSUP } /* tamilsup */,
+ { 3, 7383, 3312, 10, 3, UNI_BC__LRI } /* bidiclass=lri */,
+ { 4, 2301, 584, 10, 6, UNI_XIDC } /* xidcontinue=true */,
+ { 0, 2536, 5031, 3, 16, UNI_JG__HANIFIROHINGYAPA } /* jg=hanifirohingyapa */,
+ { 1, 1102, 779, 4, 4, UNI_OSMA } /* scx=osma */,
+ { 1, 474, 0, 3, 0, UNI_VAI } /* vai */,
+ { 0, 578, 1314, 5, 2, UNI_WB__EB } /* ccc=200 */,
+ { 0, 257, 353, 4, 4, UNI_CWCM } /* cwcm=yes */,
+ { 1, 6076, 6945, 9, 15, UNI_GEOMETRICSHAPESEXT } /* block=geometricshapesext */,
+ { 16, 2004, 1082, 5, 4, UNI_POSIXWORD } /* posixword */,
+ { 3, 1823, 1105, 6, 5, UNI_TALU } /* script=talu */,
+ { 4, 1618, 599, 10, 3, -UNI_SD } /* softdotted=no */,
+ { 0, 67, 0, 4, 0, UNI_CPRT } /* cprt */,
+ { 0, 5216, 4698, 10, 12, UNI_LATIN1 } /* block=latin1supplement */,
+ { 1, 925, 0, 4, 0, UNI_bpt_values_index } /* bpt= */,
+ { 1, 2324, 7972, 7, 29, UNI_CUNEIFORMNUMBERS } /* block=cuneiformnumbersandpunctuation */,
+ { 1, 1667, 8142, 4, 18, UNI_IDEOGRAPHICSYMBOLS } /* blk=ideographicsymbols */,
+ { 16, 1198, 3611, 5, 11, UNI_CJKCOMPATFORMS } /* incjkcompatforms */,
+ { 0, 1823, 5185, 7, 20, UNI_HLUW } /* script=anatolianhieroglyphs */,
+ { 2, 2832, 5848, 10, 9, UNI_CYRILLICEXTA } /* iscyrillicextendeda */,
+ { 16, 7892, 585, 16, 5, UNI_UIDEO } /* unifiedideograph=true */,
+ { 8, 339, 3526, 4, 12, UNI_CCC__0 } /* ccc=notreordered */,
+ { 5, 5168, 2621, 6, 9, UNI__PERL_SURROGATE } /* _perl_surrogate */,
+ { 0, 6165, 537, 3, 6, UNI_TNSA } /* sc=tangsa */,
+ { 1, 5156, 3456, 12, 4, UNI_WB__MN } /* wordbreak=midnum */,
+ { 13, 2536, 481, 3, 3, UNI_JG__GAF } /* jg=gaf */,
+ { 1, 6165, 1009, 3, 4, UNI_LYCI } /* sc=lyci */,
+ { 0, 6427, 650, 13, 3, UNI_JG__LAM } /* joininggroup=lam */,
+ { 1, 461, 1887, 2, 7, UNI_XPOSIXCNTRL } /* iscontrol */,
+ { 2, 3502, 7915, 5, 29, UNI_ENCLOSEDALPHANUMSUP } /* blk=enclosedalphanumericsupplement */,
+ { 5, 309, 772, 2, 7, UNI_OLCK } /* inolchiki */,
+ { 0, 4377, 599, 14, 2, UNI_NFKDQC__N } /* nfkdquickcheck=n */,
+ { 1, 309, 5373, 2, 11, UNI_TAIXUANJING } /* intaixuanjing */,
+ { 9, 7274, 599, 8, 2, UNI_N } /* category=n */,
+ { 2, 2324, 1009, 6, 6, UNI_INLYCIAN } /* block=lycian */,
+ { 5, 1102, 2852, 4, 4, UNI_MAHJ } /* scx=mahj */,
+ { 0, 154, 6945, 3, 15, UNI_GEOMETRICSHAPESEXT } /* geometricshapesext */,
+ { 3, 5712, 0, 19, 0, UNI_MERO } /* meroitichieroglyphs */,
+ { 10, 4424, 608, 17, 7, UNI_ELBA } /* scriptextensions=elbasan */,
+ { 1, 1823, 59, 7, 4, UNI_CHRS } /* script=chrs */,
+ { 8, 1102, 688, 4, 5, UNI_BATK } /* scx=batak */,
+ { 0, 6165, 725, 3, 7, UNI_SC__KALI } /* sc=kayahli */,
+ { 0, 3407, 2107, 14, 8, UNI_NV__9_SLASH_2 } /* numericvalue=4.500e+00 */,
+ { 10, 4377, 2327, 12, 3, UNI_nfkdqc_values_index } /* nfkdquickcheck= */,
+ { 9, 4845, 933, 16, 7, -UNI__PERL_PATWS } /* patternwhitespace=false */,
+ { 0, 2536, 6714, 3, 21, UNI_JG__HANIFIROHINGYAKINNAYA } /* jg=hanifirohingyakinnaya */,
+ { 0, 2842, 7241, 3, 26, UNI_ENCLOSEDCJK } /* isenclosedcjklettersandmonths */,
+ { 0, 2324, 5897, 6, 19, UNI_SUPARROWSC } /* block=supplementalarrowsc */,
+ { 18, 5939, 353, 5, 2, UNI__PERL_NCHAR } /* nchar=y */,
+ { 0, 3040, 353, 13, 2, UNI_QMARK } /* quotationmark=y */,
+ { 0, 2483, 0, 11, 0, UNI_CASEDLETTER } /* casedletter */,
+ { 0, 1272, 377, 5, 4, UNI_CJKEXTH } /* iscjkexth */,
+ { 0, 510, 1314, 4, 3, UNI_NV__3000 } /* nv=3000 */,
+ { 2, 2536, 650, 3, 3, UNI_JG__LAM } /* jg=lam */,
+ { 0, 3391, 765, 13, 2, UNI_NV__45 } /* numericvalue=45 */,
+ { 9, 1272, 0, 3, 0, UNI_C } /* isc */,
+ { 0, 5937, 598, 20, 4, -UNI__PERL_NCHAR } /* noncharactercodepoint=no */,
+ { 4, 6165, 1331, 3, 9, UNI_SC__PERM } /* sc=oldpermic */,
+ { 1, 330, 0, 2, 0, UNI_PD } /* pd */,
+ { 32, 2324, 3093, 6, 5, UNI_ASCII } /* block=ascii */,
+ { 0, 461, 252, 2, 2, UNI_CASEDLETTER } /* islc */,
+ { 20, 7198, 6103, 7, 13, UNI_SUPMATHOPERATORS } /* blk=supmathoperators */,
+ { 1, 4391, 2107, 14, 8, UNI_NV__7_SLASH_2 } /* numericvalue=3.500e+00 */,
+ { 3, 7198, 1609, 5, 9, UNI_SMALLFORMS } /* blk=smallforms */,
+ { 0, 2280, 581, 9, 2, UNI_IN__2 } /* presentin=2 */,
+ { 0, 1667, 4002, 4, 4, UNI_INMODI } /* blk=modi */,
+ { 1, 3177, 3, 15, 1, UNI_EA__W } /* eastasianwidth=w */,
+ { 1, 461, 499, 2, 4, UNI_LYDI } /* islydi */,
+ { 0, 5460, 599, 19, 3, -UNI_TERM } /* terminalpunctuation=no */,
+ { 4, 1102, 1227, 4, 7, UNI_MAKA } /* scx=makasar */,
+ { 0, 3391, 1313, 13, 3, UNI_NV__600 } /* numericvalue=600 */,
+ { 1, 1667, 2268, 4, 12, UNI_PLAYINGCARDS } /* blk=playingcards */,
+ { 0, 1102, 124, 4, 4, UNI_LATN } /* scx=latn */,
+ { 6, 6062, 7241, 7, 10, UNI_ENCLOSEDCJK } /* block=enclosedcjk */,
+ { 2, 1424, 2165, 7, 2, UNI_CCC__33 } /* ccc=ccc33 */,
+ { 1, 4360, 3001, 10, 7, UNI_LB__NU } /* linebreak=numeric */,
+ { 0, 1396, 4439, 3, 2, UNI_xids_values_index } /* xids= */,
+ { 2, 416, 0, 2, 0, UNI_NO } /* no */,
+ { 12, 21, 598, 2, 3, -UNI_EXT } /* ext=n */,
+ { 0, 6165, 406, 3, 4, UNI_DIAK } /* sc=diak */,
+ { 1, 292, 288, 3, 2, UNI_NV__30 } /* nv=30 */,
+ { 0, 461, 5682, 2, 5, UNI_GREK } /* isgreek */,
+ { 4, 3204, 353, 14, 4, UNI_GREXT } /* graphemeextend=yes */,
+ { 0, 156, 0, 4, 0, UNI_OUGR } /* ougr */,
+ { 2, 1667, 4896, 4, 8, UNI_BAMUMSUP } /* blk=bamumsup */,
+ { 0, 3391, 294, 12, 3, UNI_NV__90 } /* numericvalue=90 */,
+ { 1, 7944, 4680, 28, 4, UNI_CJKEXTF } /* iscjkunifiedideographsextensionf */,
+ { 1, 7267, 2004, 16, 2, UNI_PO } /* generalcategory=po */,
+ { 19, 6427, 20, 13, 2, UNI_JG__HE } /* joininggroup=he */,
+ { 13, 1823, 4271, 7, 17, UNI_KITS } /* script=khitansmallscript */,
+ { 0, 3391, 768, 13, 2, UNI_NV__27 } /* numericvalue=27 */,
+ { 4, 1102, 1212, 4, 9, UNI_QAAI } /* scx=inherited */,
+ { 0, 1667, 8474, 7, 33, UNI_CJKCOMPATIDEOGRAPHSSUP } /* blk=cjkcompatibilityideographssupplement */,
+ { 0, 1391, 1613, 3, 2, UNI_WB__FO } /* wb=fo */,
+ { 4, 6165, 2247, 3, 4, UNI_HUNG } /* sc=hung */,
+ { 1, 2060, 353, 5, 4, UNI_XPOSIXALPHA } /* alpha=yes */,
+ { 0, 1667, 668, 4, 5, UNI_INOGHAM } /* blk=ogham */,
+ { 17, 7267, 0, 16, 2, UNI_CASEDLETTER } /* generalcategory=l& */,
+ { 1, 1667, 1404, 4, 10, UNI_ASCII } /* blk=basiclatin */,
+ { 1, 7648, 7011, 21, 9, UNI_DT__NONCANON } /* decompositiontype=noncanonical */,
+ { 1, 1667, 1376, 4, 9, UNI_INSAMARITAN } /* blk=samaritan */,
+ { 7, 324, 5149, 3, 7, UNI_SUPARROWSA } /* suparrowsa */,
+ { 1, 4424, 232, 17, 2, UNI_YI } /* scriptextensions=yi */,
+ { 8, 30, 2255, 1, 13, UNI_PHAISTOS } /* inphaistosdisc */,
+ { 16, 1823, 2852, 7, 4, UNI_SC__MAHJ } /* script=mahj */,
+ { 0, 309, 890, 2, 5, UNI_IN__10 } /* in=10.0 */,
+ { 1, 1397, 598, 6, 2, UNI_ids_values_index } /* idstart= */,
+ { 0, 2536, 1760, 3, 3, UNI_JG__KAF } /* jg=kaf */,
+ { 18, 2324, 1635, 6, 10, UNI_INWARANGCITI } /* block=warangciti */,
+ { 4, 6165, 493, 3, 4, UNI_SC__KHOJ } /* sc=khoj */,
+ { 2, 5172, 0, 2, 0, UNI_CASEDLETTER } /* l_ */,
+ { 0, 1396, 598, 7, 3, -UNI_XIDS } /* xidstart=n */,
+ { 1, 461, 4176, 2, 6, UNI_HANG } /* ishangul */,
+ { 0, 6324, 0, 6, 0, UNI_CF } /* format */,
+ { 0, 5895, 8386, 5, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* issupsymbolsandpictographs */,
+ { 0, 3098, 353, 8, 2, UNI_XPOSIXXDIGIT } /* hexdigit=y */,
+ { 4, 309, 2468, 2, 6, UNI_IPAEXT } /* inipaext */,
+ { 1, 30, 4553, 1, 6, UNI_TITLE } /* istitle */,
+ { 0, 1396, 353, 4, 2, UNI_XIDS } /* xids=y */,
+ { 8, 1667, 917, 4, 8, UNI_INBASSAVAH } /* blk=bassavah */,
+ { 3, 868, 0, 4, 0, UNI_TIRH } /* tirh */,
+ { 3, 11, 4987, 1, 16, UNI_ALCHEMICAL } /* alchemicalsymbols */,
+ { 8, 3177, 0, 15, 0, UNI_ea_values_index } /* eastasianwidth= */,
+ { 3, 461, 1325, 2, 4, UNI_ITAL } /* isital */,
+ { 1, 2536, 478, 3, 3, UNI_JG__BEH } /* jg=beh */,
+ { 3, 7796, 0, 22, 0, UNI_ENCLOSEDIDEOGRAPHICSUP } /* enclosedideographicsup */,
+ { 5, 461, 172, 2, 4, UNI_RJNG } /* isrjng */,
+ { 0, 1667, 369, 4, 6, UNI_INGOTHIC } /* blk=gothic */,
+ { 3, 309, 2441, 2, 11, UNI_INNANDINAGARI } /* innandinagari */,
+ { 0, 1391, 2720, 2, 3, UNI_RI } /* wb=ri */,
+ { 0, 7591, 209, 3, 2, UNI_LB__GL } /* lb=gl */,
+ { 2, 1823, 786, 7, 4, UNI_HMNP } /* script=hmnp */,
+ { 0, 5216, 4770, 19, 10, UNI_LATINEXTADDITIONAL } /* block=latinextendedadditional */,
+ { 0, 309, 1033, 2, 8, UNI_JAMOEXTB } /* injamoextb */,
+ { 1, 1667, 1037, 7, 4, UNI_CJKEXTB } /* blk=cjkextb */,
+ { 0, 6165, 74, 3, 4, UNI_SC__CYRL } /* sc=cyrl */,
+ { 6, 1102, 983, 4, 8, UNI_HIRA } /* scx=hiragana */,
+ { 1, 533, 283, 3, 2, UNI_SB__NU } /* sb=nu */,
+ { 3, 7591, 2589, 3, 10, UNI_LB__BA } /* lb=breakafter */,
+ { 6, 1424, 2101, 7, 2, UNI_CCC__29 } /* ccc=ccc29 */,
+ { 0, 2324, 5392, 7, 10, UNI_CHEROKEESUP } /* block=cherokeesup */,
+ { 1, 339, 520, 5, 1, UNI_CCC__17 } /* ccc=17 */,
+ { 37, 3204, 585, 14, 5, UNI_GREXT } /* graphemeextend=true */,
+ { 0, 2324, 8607, 6, 33, UNI_SUPMATHOPERATORS } /* block=supplementalmathematicaloperators */,
+ { 0, 309, 1003, 2, 6, UNI_INLEPCHA } /* inlepcha */,
+ { 0, 8311, 7380, 32, 4, UNI_CJKEXTB } /* block=cjkunifiedideographsextensionb */,
+ { 0, 1285, 0, 9, 0, UNI_SIND } /* khudawadi */,
+ { 14, 7274, 313, 9, 4, UNI_M } /* category=mark */,
+ { 1, 1667, 1501, 4, 8, UNI_JAMOEXTA } /* blk=jamoexta */,
+ { 2, 6165, 196, 3, 4, UNI_SC__TAML } /* sc=taml */,
+ { 1, 3001, 406, 12, 2, UNI_NT__DI } /* numerictype=di */,
+ { 1, 292, 2092, 3, 2, UNI_NV__25 } /* nv=25 */,
+ { 0, 1667, 4176, 4, 6, UNI_INHANGUL } /* blk=hangul */,
+ { 2, 5959, 3570, 5, 13, UNI_HALFANDFULLFORMS } /* inhalfandfullforms */,
+ { 3, 1726, 5676, 3, 18, UNI_ANCIENTGREEKNUMBERS } /* isancientgreeknumbers */,
+ { 0, 3984, 0, 17, 0, UNI_EPRES } /* emojipresentation */,
+ { 8, 1667, 2692, 4, 13, UNI_VERTICALFORMS } /* blk=verticalforms */,
+ { 0, 4424, 3421, 17, 15, UNI_NARB } /* scriptextensions=oldnortharabian */,
+ { 1, 1102, 1094, 4, 4, UNI_MERC } /* scx=merc */,
+ { 3, 916, 933, 4, 3, -UNI_EBASE } /* ebase=f */,
+ { 6, 7267, 255, 16, 2, UNI_CF } /* generalcategory=cf */,
+ { 0, 1823, 4926, 7, 5, UNI_SC__TAML } /* script=tamil */,
+ { 1, 552, 2084, 4, 2, UNI_AGE__11 } /* age=11 */,
+ { 0, 537, 0, 6, 0, UNI_TNSA } /* tangsa */,
+ { 1, 3832, 1805, 14, 5, UNI_NV__500000 } /* numericvalue=500000 */,
+ { 1, 4970, 352, 16, 5, UNI_EBASE } /* emojimodifierbase=yes */,
+ { 5, 309, 890, 2, 3, UNI_IN__10 } /* in=10 */,
+ { 0, 33, 5409, 1, 11, UNI_SMALLKANAEXT } /* smallkanaext */,
+ { 1, 7383, 4852, 10, 10, UNI_BC__WS } /* bidiclass=whitespace */,
+ { 3, 597, 1707, 3, 8, UNI_DT__FRA } /* dt=fraction */,
+ { 0, 1667, 909, 4, 8, UNI_INBALINESE } /* blk=balinese */,
+ { 4, 2514, 3364, 3, 14, UNI_MISCPICTOGRAPHS } /* ismiscpictographs */,
+ { 6, 7537, 934, 10, 2, -UNI_XPOSIXALPHA } /* alphabetic=f */,
+ { 13, 1543, 0, 4, 0, UNI_KHAR } /* khar */,
+ { 0, 3391, 1318, 13, 3, UNI_NV__200 } /* numericvalue=200 */,
+ { 2, 461, 65, 2, 2, UNI_MN } /* ismn */,
+ { 16, 629, 584, 5, 6, UNI_GRBASE } /* grbase=true */,
+ { 1, 461, 2009, 2, 6, UNI_SYRC } /* issyriac */,
+ { 0, 1102, 2244, 4, 12, UNI_HUNG } /* scx=oldhungarian */,
+ { 14, 1801, 1805, 5, 6, UNI_NV__10000000 } /* nv=10000000 */,
+ { 0, 1743, 1479, 4, 5, UNI_VERTSPACE } /* vertspace */,
+ { 0, 733, 5820, 3, 15, UNI_ENCLOSEDALPHANUM } /* inenclosedalphanum */,
+ { 7, 3848, 1805, 14, 4, UNI_NV__70000 } /* numericvalue=70000 */,
+ { 5, 1102, 164, 4, 4, UNI_PHNX } /* scx=phnx */,
+ { 0, 461, 1234, 2, 4, UNI_MULT } /* ismult */,
+ { 0, 1667, 1125, 4, 8, UNI_INTIFINAGH } /* blk=tifinagh */,
+ { 5, 7591, 2039, 3, 2, UNI_LB__BK } /* lb=bk */,
+ { 2, 5799, 5149, 5, 7, UNI_SUPARROWSA } /* insuparrowsa */,
+ { 3, 7591, 1165, 3, 2, UNI_LB__CL } /* lb=cl */,
+ { 0, 1667, 6000, 4, 21, UNI_YIJING } /* blk=yijinghexagramsymbols */,
+ { 0, 2930, 0, 4, 0, UNI_JT__T } /* jt=t */,
+ { 0, 2256, 0, 8, 0, UNI_PHAISTOS } /* phaistos */,
+ { 17, 2324, 369, 6, 6, UNI_INGOTHIC } /* block=gothic */,
+ { 2, 8343, 6416, 29, 11, UNI_INSC__CONSONANTSUBJOINED } /* indicsyllabiccategory=consonantsubjoined */,
+ { 1, 7011, 3147, 24, 5, UNI_CCC__A } /* canonicalcombiningclass=above */,
+ { 0, 6165, 1255, 3, 4, UNI_SIDD } /* sc=sidd */,
+ { 4, 5532, 0, 21, 0, UNI_CWCF } /* changeswhencasefolded */,
+ { 0, 8, 599, 3, 3, -UNI_PCM } /* pcm=no */,
+ { 11, 461, 2317, 2, 6, UNI_N } /* isnumber */,
+ { 1, 1883, 274, 11, 1, UNI_bidic_values_index } /* bidicontrol= */,
+ { 54, 1726, 7545, 6, 20, UNI_ARABICPFA } /* isarabicpresentationformsa */,
+ { 0, 1424, 345, 8, 2, UNI_CCC__118 } /* ccc=ccc118 */,
+ { 1, 1102, 414, 4, 4, UNI_HANO } /* scx=hano */,
+ { 0, 605, 6621, 2, 3, UNI_IDC } /* idc=t */,
+ { 3, 2324, 6514, 6, 10, UNI_PUA } /* block=privateuse */,
+ { 2, 2523, 1659, 4, 8, UNI_XPOSIXSPACE } /* isxperlspace */,
+ { 0, 3014, 288, 11, 2, UNI_IN__3 } /* presentin=v30 */,
+ { 12, 7214, 0, 26, 0, UNI_CCC__12 } /* canonicalcombiningclass=12 */,
+ { 6, 271, 3472, 4, 3, UNI_LB__ZWJ } /* gcb=zwj */,
+ { 3, 2280, 389, 10, 3, UNI_IN__6_DOT_3 } /* presentin=6.3 */,
+ { 1, 4424, 4620, 17, 7, UNI_LINB } /* scriptextensions=linearb */,
+ { 1, 6076, 6945, 9, 20, UNI_GEOMETRICSHAPESEXT } /* block=geometricshapesextended */,
+ { 2, 309, 4060, 2, 7, UNI_BRAI } /* inbraille */,
+ { 0, 1492, 3639, 9, 9, UNI_GEORGIANEXT } /* ingeorgianextended */,
+ { 3, 2832, 7467, 10, 13, UNI_CYRILLICSUP } /* iscyrillicsupplementary */,
+ { 1, 1823, 108, 7, 4, UNI_KAWI } /* script=kawi */,
+ { 1, 309, 7110, 2, 24, UNI_DIACRITICALSFORSYMBOLS } /* incombiningmarksforsymbols */,
+ { 0, 461, 15, 2, 4, UNI_AGHB } /* isaghb */,
+ { 0, 1734, 1609, 3, 9, UNI_SMALLFORMS } /* issmallforms */,
+ { 0, 1102, 537, 4, 4, UNI_TANG } /* scx=tang */,
+ { 0, 1198, 3938, 3, 16, UNI_UCAS } /* incanadiansyllabics */,
+ { 1, 3014, 3876, 11, 2, UNI_IN__8 } /* presentin=v80 */,
+ { 0, 8658, 0, 45, 0, UNI_UCASEXTA } /* isunifiedcanadianaboriginalsyllabicsextendeda */,
+ { 9, 2324, 6986, 6, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* block=symbolsforlegacycomputing */,
+ { 3, 6236, 0, 16, 0, UNI_NV__100 } /* numericvalue=100 */,
+ { 0, 7011, 289, 25, 1, UNI_CCC__20 } /* canonicalcombiningclass=20 */,
+ { 0, 309, 1671, 2, 7, UNI_CJKEXTD } /* incjkextd */,
+ { 16, 6450, 6324, 14, 6, UNI_SB__FO } /* sentencebreak=format */,
+ { 0, 6165, 414, 3, 4, UNI_SC__HANO } /* sc=hano */,
+ { 0, 7591, 2599, 3, 10, UNI_LB__NS } /* lb=nonstarter */,
+ { 27, 1102, 1562, 4, 4, UNI_NAGM } /* scx=nagm */,
+ { 2, 1272, 6576, 3, 21, UNI_INDICNUMBERFORMS } /* iscommonindicnumberforms */,
+ { 2, 1667, 8278, 4, 33, UNI_MISCMATHSYMBOLSB } /* blk=miscellaneousmathematicalsymbolsb */,
+ { 0, 4519, 7467, 14, 13, UNI_CYRILLICSUP } /* block=cyrillicsupplementary */,
+ { 0, 8071, 7380, 30, 4, UNI_CJKEXTB } /* blk=cjkunifiedideographsextensionb */,
+ { 0, 2220, 1805, 4, 5, UNI_NV__600000 } /* nv=600000 */,
+ { 3, 4424, 1779, 17, 11, UNI_MEDF } /* scriptextensions=medefaidrin */,
+ { 2, 7495, 1317, 28, 2, UNI_CCC__132 } /* canonicalcombiningclass=ccc132 */,
+ { 16, 5778, 0, 21, 0, UNI_PRTI } /* inscriptionalparthian */,
+ { 15, 377, 934, 3, 6, -UNI_EXT } /* ext=false */,
+ { 0, 833, 353, 4, 2, UNI_TERM } /* term=y */,
+ { 4, 309, 4896, 2, 5, UNI_INBAMUM } /* inbamum */,
+ { 1, 461, 156, 2, 4, UNI_OUGR } /* isougr */,
+ { 2, 4424, 450, 17, 4, UNI_MIAO } /* scriptextensions=plrd */,
+ { 22, 7648, 0, 18, 0, UNI_dt_values_index } /* decompositiontype= */,
+ { 0, 1102, 4896, 4, 4, UNI_BAMU } /* scx=bamu */,
+ { 0, 7267, 5243, 20, 12, UNI_PO } /* generalcategory=otherpunctuation */,
+ { 16, 7084, 6193, 6, 5, UNI_ARABICSUP } /* inarabicsup */,
+ { 3, 461, 1465, 2, 10, UNI_DIAK } /* isdivesakuru */,
+ { 4, 339, 8648, 4, 10, UNI_CCC__AR } /* ccc=aboveright */,
+ { 1, 1667, 1592, 4, 10, UNI_INSAURASHTRA } /* blk=saurashtra */,
+ { 21, 6163, 8522, 5, 16, UNI_INSC__VOWELINDEPENDENT } /* insc=vowelindependent */,
+ { 1, 1667, 4161, 4, 15, UNI_DIACRITICALSEXT } /* blk=diacriticalsext */,
+ { 1, 309, 5876, 2, 19, UNI_SUNDANESESUP } /* insundanesesupplement */,
+ { 0, 2287, 546, 3, 3, UNI_IN__3 } /* in=3.0 */,
+ { 0, 309, 1009, 2, 6, UNI_INLYCIAN } /* inlycian */,
+ { 0, 309, 55, 2, 4, UNI_INCHAM } /* incham */,
+ { 0, 4360, 306, 10, 2, UNI_LB__SP } /* linebreak=sp */,
+ { 0, 4424, 15, 17, 4, UNI_AGHB } /* scriptextensions=aghb */,
+ { 0, 1530, 5848, 6, 9, UNI_KANAEXTA } /* iskanaextendeda */,
+ { 1, 339, 519, 3, 2, UNI_CCC__7 } /* ccc=7 */,
+ { 0, 2324, 8660, 6, 42, UNI_UCASEXT } /* block=unifiedcanadianaboriginalsyllabicsextended */,
+ { 31, 2287, 2199, 3, 3, UNI_IN__2 } /* in=2.0 */,
+ { 12, 940, 1104, 5, 3, UNI_COMPEX } /* compex=t */,
+ { 20, 2, 8407, 1, 34, UNI_DIACRITICALSFORSYMBOLS } /* combiningdiacriticalmarksforsymbols */,
+ { 0, 2324, 5694, 7, 10, UNI_COUNTINGROD } /* block=countingrod */,
+ { 0, 1391, 1829, 2, 3, UNI_WB__ML } /* wb=ml */,
+ { 0, 2232, 0, 4, 0, UNI_NV__8 } /* nv=8 */,
+ { 3, 510, 6271, 4, 8, UNI_NV__3_SLASH_80 } /* nv=3.750e-02 */,
+ { 12, 3633, 6957, 7, 9, UNI_LATINEXTE } /* inlatinextendede */,
+ { 0, 2, 584, 1, 6, UNI_CE } /* ce=true */,
+ { 6, 461, 909, 2, 8, UNI_BALI } /* isbalinese */,
+ { 2, 1942, 0, 5, 0, UNI_XPOSIXGRAPH } /* graph */,
+ { 6, 461, 625, 2, 2, UNI_PI } /* ispi */,
+ { 0, 1823, 1367, 7, 4, UNI_PAUC } /* script=pauc */,
+ { 9, 461, 1376, 2, 9, UNI_SAMR } /* issamaritan */,
+ { 2, 309, 120, 2, 3, UNI_INLAO } /* inlao */,
+ { 0, 6076, 5863, 11, 6, UNI_GEORGIANSUP } /* block=georgiansup */,
+ { 0, 309, 2811, 2, 12, UNI_KHMERSYMBOLS } /* inkhmersymbols */,
+ { 6, 461, 1830, 2, 4, UNI_MLYM } /* ismlym */,
+ { 4, 939, 6438, 4, 2, UNI_ecomp_values_index } /* ecomp= */,
+ { 6, 1454, 353, 2, 2, UNI_SD } /* sd=y */,
+ { 3, 1823, 3133, 6, 5, UNI_SC__GEOR } /* script=geor */,
+ { 1, 4360, 2720, 9, 3, UNI_RI } /* linebreak=ri */,
+ { 0, 461, 6677, 2, 15, UNI_MODIFIERLETTERS } /* ismodifierletters */,
+ { 3, 7383, 87, 11, 2, UNI_BC__LRE } /* bidiclass=lre */,
+ { 2, 4424, 414, 17, 3, UNI_HAN } /* scriptextensions=han */,
+ { 3, 164, 0, 4, 0, UNI_PHNX } /* phnx */,
+ { 0, 4424, 1635, 17, 4, UNI_WARA } /* scriptextensions=wara */,
+ { 0, 461, 5283, 2, 9, UNI_HALFMARKS } /* ishalfmarks */,
+ { 9, 7495, 395, 27, 2, UNI_CCC__16 } /* canonicalcombiningclass=ccc16 */,
+ { 10, 2514, 0, 9, 0, UNI_MYMR } /* ismyanmar */,
+ { 0, 895, 1804, 5, 3, UNI_AGE__10 } /* age=v100 */,
+ { 1, 5916, 8553, 17, 6, UNI_LOE } /* logicalorderexception=t */,
+ { 0, 4424, 47, 17, 4, UNI_CAKM } /* scriptextensions=cakm */,
+ { 2, 597, 7011, 6, 9, UNI_DT__NONCANON } /* dt=noncanonical */,
+ { 8, 1102, 5067, 3, 5, UNI_MANI } /* scx=mani */,
+ { 0, 802, 0, 4, 0, UNI_SARB } /* sarb */,
+ { 1, 1823, 442, 7, 4, UNI_ORKH } /* script=orkh */,
+ { 2, 578, 1317, 5, 2, UNI_CCC__AR } /* ccc=232 */,
+ { 0, 1667, 317, 4, 5, UNI_INTAILE } /* blk=taile */,
+ { 0, 1667, 5391, 4, 11, UNI_CHEROKEESUP } /* blk=cherokeesup */,
+ { 0, 7011, 182, 24, 2, UNI_CCC__0 } /* canonicalcombiningclass=nr */,
+ { 0, 30, 996, 1, 7, UNI_INKAITHI } /* inkaithi */,
+ { 0, 2324, 658, 6, 5, UNI_INDOGRA } /* block=dogra */,
+ { 0, 8343, 3217, 31, 4, UNI_INSC__CONSONANTDEAD } /* indicsyllabiccategory=consonantdead */,
+ { 6, 1942, 5671, 11, 4, -UNI_GRBASE } /* graphemebase=no */,
+ { 0, 2732, 6193, 8, 12, UNI_ARABICSUP } /* blk=arabicsupplement */,
+ { 6, 6165, 739, 3, 7, UNI_SC__MAND } /* sc=mandaic */,
+ { 1, 7648, 238, 18, 2, UNI_DT__NB } /* decompositiontype=nb */,
+ { 0, 2324, 2811, 6, 12, UNI_KHMERSYMBOLS } /* block=khmersymbols */,
+ { 1, 5216, 129, 17, 3, UNI_LATINEXTF } /* block=latinextendedf */,
+ { 0, 6165, 148, 3, 4, UNI_SC__ORYA } /* sc=orya */,
+ { 0, 4424, 739, 17, 4, UNI_MAND } /* scriptextensions=mand */,
+ { 0, 4360, 98, 10, 2, UNI_LB__HL } /* linebreak=hl */,
+ { 0, 4191, 599, 5, 2, -UNI_XPOSIXLOWER } /* lower=n */,
+ { 1, 1667, 983, 4, 8, UNI_INHIRAGANA } /* blk=hiragana */,
+ { 6, 8538, 0, 22, 0, UNI_VO__TR } /* verticalorientation=tr */,
+ { 7, 1102, 779, 4, 7, UNI_OSMA } /* scx=osmanya */,
+ { 1, 578, 1318, 5, 2, UNI_CCC__B } /* ccc=220 */,
+ { 4, 3177, 934, 14, 2, UNI_EA__F } /* eastasianwidth=f */,
+ { 8, 1823, 128, 7, 4, UNI_MEDF } /* script=medf */,
+ { 0, 1102, 1385, 4, 6, UNI_THAA } /* scx=thaana */,
+ { 1, 7134, 599, 26, 2, -UNI_PCM } /* prependedconcatenationmark=n */,
+ { 0, 7892, 934, 16, 6, -UNI_UIDEO } /* unifiedideograph=false */,
+ { 3, 1424, 295, 8, 1, UNI_CCC__19 } /* ccc=ccc19 */,
+ { 4, 461, 3908, 2, 16, UNI_TANGUTCOMPONENTS } /* istangutcomponents */,
+ { 0, 2324, 608, 6, 7, UNI_INELBASAN } /* block=elbasan */,
+ { 0, 309, 658, 2, 5, UNI_INDOGRA } /* indogra */,
+ { 0, 3391, 392, 13, 2, UNI_NV__41 } /* numericvalue=41 */,
+ { 0, 1102, 297, 4, 5, UNI_ORYA } /* scx=oriya */,
+ { 0, 461, 1671, 2, 7, UNI_CJKEXTD } /* iscjkextd */,
+ { 0, 2002, 4191, 7, 5, UNI_POSIXLOWER } /* isposixlower */,
+ { 4, 7495, 1318, 27, 2, UNI_CCC__20 } /* canonicalcombiningclass=ccc20 */,
+ { 0, 461, 317, 2, 5, UNI_TALE } /* istaile */,
+ { 2, 461, 1205, 2, 4, UNI_GRAN } /* isgran */,
+ { 0, 2718, 119, 3, 2, UNI_BC__AL } /* bc=al */,
+ { 0, 832, 934, 5, 6, -UNI_STERM } /* sterm=false */,
+ { 0, 2432, 2057, 3, 11, UNI_MATHALPHANUM } /* inmathalphanum */,
+ { 1, 7495, 1155, 27, 2, UNI_CCC__35 } /* canonicalcombiningclass=ccc35 */,
+ { 8, 2280, 342, 9, 3, UNI_IN__12 } /* presentin=12 */,
+ { 40, 2514, 8374, 3, 33, UNI_MISCPICTOGRAPHS } /* ismiscellaneoussymbolsandpictographs */,
+ { 0, 1728, 4659, 6, 9, UNI_ARABICEXTC } /* arabicextendedc */,
+ { 4, 2324, 1954, 6, 12, UNI_INGUNJALAGONDI } /* block=gunjalagondi */,
+ { 30, 302, 585, 5, 2, UNI__PERL_PATWS } /* patws=t */,
+ { 1, 5895, 8386, 14, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* issupplementalsymbolsandpictographs */,
+ { 8, 3407, 1805, 14, 4, UNI_NV__40000 } /* numericvalue=40000 */,
+ { 0, 1102, 3538, 4, 7, UNI_CPRT } /* scx=cypriot */,
+ { 0, 7752, 4741, 23, 5, UNI_JG__MANICHAEANALEPH } /* joininggroup=manichaeanaleph */,
+ { 0, 4424, 180, 17, 4, UNI_RUNR } /* scriptextensions=runr */,
+ { 0, 1823, 1438, 7, 10, UNI_CHRS } /* script=chorasmian */,
+ { 27, 1248, 0, 4, 0, UNI_PHAG } /* phag */,
+ { 0, 2002, 3100, 6, 6, UNI_POSIXDIGIT } /* isposixdigit */,
+ { 0, 3502, 2374, 12, 8, UNI_ETHIOPICEXT } /* blk=ethiopicextended */,
+ { 16, 1734, 5409, 3, 11, UNI_SMALLKANAEXT } /* issmallkanaext */,
+ { 16, 461, 204, 2, 4, UNI_TFNG } /* istfng */,
+ { 0, 292, 391, 3, 2, UNI_NV__34 } /* nv=34 */,
+ { 1, 3892, 585, 16, 2, UNI_STERM } /* sentenceterminal=t */,
+ { 37, 517, 1805, 4, 4, UNI_NV__70000 } /* nv=70000 */,
+ { 2, 292, 2138, 3, 9, UNI_NV__3_SLASH_16 } /* nv=1.875e-01 */,
+ { 0, 7892, 353, 16, 2, UNI_UIDEO } /* unifiedideograph=y */,
+ { 0, 1734, 5169, 7, 4, UNI_XPOSIXSPACE } /* isspaceperl */,
+ { 30, 2, 352, 1, 5, UNI_CE } /* ce=yes */,
+ { 3, 461, 1090, 2, 4, UNI_LINB } /* islinb */,
+ { 3, 4424, 748, 19, 5, UNI_MARC } /* scriptextensions=marchen */,
+ { 20, 2280, 2222, 9, 2, UNI_IN__6 } /* presentin=6 */,
+ { 2, 7267, 3026, 16, 2, UNI_PS } /* generalcategory=ps */,
+ { 9, 7591, 3472, 3, 3, UNI_LB__ZWJ } /* lb=zwj */,
+ { 0, 1133, 0, 4, 0, UNI_VITH } /* vith */,
+ { 8, 5637, 644, 20, 4, UNI_LB__H3 } /* graphemeclusterbreak=lvt */,
+ { 0, 71, 585, 3, 2, UNI_CWU } /* cwu=t */,
+ { 7, 6165, 5958, 3, 7, UNI_SC__SINH } /* sc=sinhala */,
+ { 0, 6427, 5084, 13, 6, UNI_JG__YUDHHE } /* joininggroup=yudhhe */,
+ { 0, 3490, 6193, 10, 12, UNI_CYRILLICSUP } /* blk=cyrillicsupplement */,
+ { 3, 4862, 0, 18, 0, UNI_RUMI } /* ruminumeralsymbols */,
+ { 1, 3391, 0, 15, 0, UNI_NV__23 } /* numericvalue=23 */,
+ { 0, 2, 933, 1, 7, -UNI_CE } /* ce=false */,
+ { 0, 2324, 668, 6, 5, UNI_INOGHAM } /* block=ogham */,
+ { 10, 4424, 2441, 17, 4, UNI_NAND } /* scriptextensions=nand */,
+ { 1, 0, 733, 1, 6, UNI_LINA } /* lineara */,
+ { 0, 377, 353, 3, 2, UNI_EXT } /* ext=y */,
+ { 1, 461, 1592, 2, 4, UNI_SAUR } /* issaur */,
+ { 4, 6165, 983, 3, 8, UNI_SC__HIRA } /* sc=hiragana */,
+ { 4, 309, 2780, 2, 6, UNI_INCOPTIC } /* incoptic */,
+ { 43, 184, 0, 4, 0, UNI_SAMR } /* samr */,
+ { 3, 2503, 0, 11, 0, UNI_JOINC } /* joincontrol */,
+ { 2, 3130, 1955, 5, 11, UNI_INGUNJALAGONDI } /* blk=gunjalagondi */,
+ { 0, 2324, 5125, 6, 19, UNI_OTTOMANSIYAQNUMBERS } /* block=ottomansiyaqnumbers */,
+ { 1, 3391, 1318, 13, 4, UNI_NV__2000 } /* numericvalue=2000 */,
+ { 0, 6776, 0, 11, 0, UNI_MTEI } /* meeteimayek */,
+ { 5, 7591, 277, 3, 2, UNI_LB__H2 } /* lb=h2 */,
+ { 1, 54, 1909, 2, 5, UNI_SC__KANA } /* sc=kana */,
+ { 6, 6165, 3538, 3, 7, UNI_SC__CPRT } /* sc=cypriot */,
+ { 2, 4371, 933, 5, 3, -UNI_XPOSIXSPACE } /* wspace=f */,
+ { 3, 6165, 39, 3, 4, UNI_BHKS } /* sc=bhks */,
+ { 0, 1823, 1262, 7, 4, UNI_SOYO } /* script=soyo */,
+ { 2, 11, 4987, 1, 9, UNI_ALCHEMICAL } /* alchemical */,
+ { 4, 4926, 0, 15, 0, UNI_TAMILSUP } /* tamilsupplement */,
+ { 9, 1391, 98, 3, 2, UNI_LB__HL } /* wb=hl */,
+ { 2, 2324, 1696, 6, 11, UNI_DOMINO } /* block=dominotiles */,
+ { 0, 2324, 4150, 6, 11, UNI_INPUNCTUATION } /* block=punctuation */,
+ { 10, 4651, 0, 8, 0, UNI_BOPO } /* bopomofo */,
+ { 2, 1667, 1914, 4, 8, UNI_UCASEXTA } /* blk=ucasexta */,
+ { 0, 3502, 8111, 5, 31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* blk=egyptianhieroglyphformatcontrols */,
+ { 0, 6165, 653, 3, 5, UNI_SC__BUHD } /* sc=buhid */,
+ { 1, 2483, 599, 5, 2, -UNI_CASED } /* cased=n */,
+ { 2, 1102, 156, 4, 4, UNI_OUGR } /* scx=ougr */,
+ { 0, 1667, 2335, 4, 13, UNI_BLOCKELEMENTS } /* blk=blockelements */,
+ { 3, 1102, 3726, 3, 10, UNI_MLYM } /* scx=malayalam */,
+ { 7, 4424, 3026, 17, 14, UNI_PHLP } /* scriptextensions=psalterpahlavi */,
+ { 0, 1492, 5863, 7, 6, UNI_GEORGIANSUP } /* ingeorgiansup */,
+ { 0, 951, 956, 5, 3, UNI_DUPL } /* duployan */,
+ { 7, 461, 499, 2, 6, UNI_LYDI } /* islydian */,
+ { 1, 1823, 794, 7, 4, UNI_LANA } /* script=lana */,
+ { 0, 1667, 204, 9, 2, UNI_CJKEXTF } /* blk=cjkextf */,
+ { 0, 5156, 3001, 10, 7, UNI_WB__NU } /* wordbreak=numeric */,
+ { 3, 3378, 599, 13, 3, UNI_DT__CAN } /* nfdquickcheck=no */,
+ { 2, 2324, 5373, 6, 11, UNI_TAIXUANJING } /* block=taixuanjing */,
+ { 5, 1667, 7796, 4, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* blk=enclosedideographicsup */,
+ { 20, 1823, 668, 7, 5, UNI_OGAM } /* script=ogham */,
+ { 0, 2324, 7855, 6, 32, UNI_INIDC } /* block=ideographicdescriptioncharacters */,
+ { 0, 505, 353, 5, 4, UNI_NFDQC__Y } /* nfdqc=yes */,
+ { 2, 2301, 5671, 10, 4, -UNI_XIDC } /* xidcontinue=no */,
+ { 0, 4360, 2977, 10, 11, UNI_LB__IN } /* linebreak=inseperable */,
+ { 4, 4795, 2107, 14, 8, UNI_NV__13_SLASH_2 } /* numericvalue=6.500e+00 */,
+ { 1, 1667, 3436, 4, 15, UNI_SARB } /* blk=oldsoutharabian */,
+ { 3, 3635, 0, 14, 0, UNI_LATINEXTD } /* latinextendedd */,
+ { 34, 292, 2101, 3, 2, UNI_NV__29 } /* nv=29 */,
+ { 0, 1726, 1037, 8, 4, UNI_ARABICEXTB } /* isarabicextb */,
+ { 0, 1667, 6382, 7, 18, UNI_CJKCOMPATFORMS } /* blk=cjkcompatibilityforms */,
+ { 4, 895, 295, 5, 2, UNI_AGE__9 } /* age=v90 */,
+ { 12, 3863, 2172, 14, 8, UNI_NV__7_SLASH_8 } /* numericvalue=8.750e-01 */,
+ { 0, 302, 1814, 2, 9, UNI_HMNG } /* pahawhhmong */,
+ { 0, 4424, 3908, 17, 6, UNI_TANG } /* scriptextensions=tangut */,
+ { 1, 309, 6351, 2, 23, UNI_COMPATJAMO } /* inhangulcompatibilityjamo */,
+ { 9, 461, 7724, 2, 17, UNI_VS } /* isvariationselector */,
+ { 1, 1102, 1191, 4, 7, UNI_BENG } /* scx=bengali */,
+ { 1, 4043, 274, 17, 1, UNI_idsb_values_index } /* idsbinaryoperator= */,
+ { 0, 1102, 772, 4, 7, UNI_OLCK } /* scx=olchiki */,
+ { 0, 3817, 2083, 14, 8, UNI_NV__1_SLASH_9 } /* numericvalue=1.111e-01 */,
+ { 3, 3014, 396, 11, 2, UNI_IN__6_DOT_1 } /* presentin=v61 */,
+ { 1, 1667, 3663, 4, 13, UNI_DEVANAGARIEXT } /* blk=devanagariext */,
+ { 39, 2002, 1659, 3, 8, UNI_POSIXSPACE } /* isperlspace */,
+ { 2, 1667, 5958, 4, 7, UNI_INSINHALA } /* blk=sinhala */,
+ { 1, 597, 0, 3, 0, UNI_dt_values_index } /* dt= */,
+ { 0, 124, 0, 4, 0, UNI_LATN } /* latn */,
+ { 0, 2324, 3611, 9, 11, UNI_CJKCOMPATFORMS } /* block=cjkcompatforms */,
+ { 2, 2287, 0, 5, 0, UNI_IN__14 } /* in=14 */,
+ { 3, 8343, 0, 22, 0, UNI_insc_values_index } /* indicsyllabiccategory= */,
+ { 1, 6841, 934, 25, 6, -UNI_DI } /* defaultignorablecodepoint=false */,
+ { 0, 1102, 176, 4, 4, UNI_ROHG } /* scx=rohg */,
+ { 10, 6165, 86, 3, 4, UNI_SC__GREK } /* sc=grek */,
+ { 2, 5255, 599, 20, 2, -UNI_EXTPICT } /* extendedpictographic=n */,
+ { 1, 8601, 8386, 18, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* block=supplementalsymbolsandpictographs */,
+ { 0, 6165, 668, 3, 5, UNI_OGAM } /* sc=ogham */,
+ { 0, 5937, 0, 21, 0, UNI__PERL_NCHAR } /* noncharactercodepoint */,
+ { 2, 4424, 608, 17, 4, UNI_ELBA } /* scriptextensions=elba */,
+ { 1, 4424, 426, 17, 3, UNI_MRO } /* scriptextensions=mro */,
+ { 16, 4424, 474, 17, 3, UNI_VAI } /* scriptextensions=vai */,
+ { 0, 3093, 2931, 12, 3, UNI_POSIXXDIGIT } /* asciihexdigit=t */,
+ { 0, 4970, 599, 17, 3, -UNI_EBASE } /* emojimodifierbase=no */,
+ { 33, 510, 6263, 4, 8, UNI_NV__1_SLASH_320 } /* nv=3.125e-03 */,
+ { 1, 7804, 353, 11, 4, UNI_IDEO } /* ideographic=yes */,
+ { 1, 51, 0, 4, 0, UNI_CANS } /* cans */,
+ { 0, 1102, 2009, 4, 6, UNI_SYRC } /* scx=syriac */,
+ { 4, 7887, 5252, 28, 4, UNI_CJKEXTE } /* incjkunifiedideographsextensione */,
+ { 1, 271, 644, 3, 4, UNI_LB__H3 } /* gcb=lvt */,
+ { 0, 6090, 2057, 7, 11, UNI_MATHALPHANUM } /* block=mathalphanum */,
+ { 21, 7591, 524, 3, 2, UNI_LB__SY } /* lb=sy */,
+ { 7, 5799, 0, 21, 0, UNI_SUPARROWSB } /* insupplementalarrowsb */,
+ { 0, 4951, 6473, 18, 14, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* egyptianhieroglyphformatcontrols */,
+ { 0, 461, 4651, 2, 11, UNI_BOPOMOFOEXT } /* isbopomofoext */,
+ { 4, 4424, 3663, 17, 4, UNI_DEVA } /* scriptextensions=deva */,
+ { 0, 5168, 2304, 15, 8, UNI__PERL_CHARNAME_CONTINUE } /* _perl_charname_continue */,
+ { 1, 2020, 5354, 3, 19, UNI_ININSCRIPTIONALPAHLAVI } /* ininscriptionalpahlavi */,
+ { 0, 925, 0, 8, 0, UNI_BPT__O } /* bpt=open */,
+ { 32, 2280, 2155, 10, 3, UNI_IN__3_DOT_1 } /* presentin=3.1 */,
+ { 0, 7669, 1874, 22, 8, UNI_LB__H3 } /* hangulsyllabletype=lvtsyllable */,
+ { 32, 2002, 2060, 7, 5, UNI_POSIXALPHA } /* isposixalpha */,
+ { 18, 30, 1106, 1, 3, UNI_ITAL } /* ital */,
+ { 0, 10, 0, 1, 0, UNI_M } /* m */,
+ { 0, 6427, 1279, 13, 6, UNI_JG__LAMADH } /* joininggroup=lamadh */,
+ { 1, 6450, 283, 14, 2, UNI_SB__NU } /* sentencebreak=nu */,
+ { 8, 7274, 255, 9, 2, UNI_CF } /* category=cf */,
+ { 7, 1272, 7972, 3, 15, UNI_CUNEIFORMNUMBERS } /* iscuneiformnumbers */,
+ { 12, 1915, 6848, 4, 9, UNI_CI } /* caseignorable */,
+ { 10, 4424, 4060, 17, 4, UNI_BRAI } /* scriptextensions=brai */,
+ { 10, 4424, 196, 17, 4, UNI_TAML } /* scriptextensions=taml */,
+ { 9, 6165, 3325, 3, 4, UNI_HEBR } /* sc=hebr */,
+ { 13, 1075, 1805, 4, 4, UNI_NV__20000 } /* nv=20000 */,
+ { 2, 6165, 4060, 3, 7, UNI_BRAI } /* sc=braille */,
+ { 0, 33, 4710, 1, 15, UNI_SYRIACSUP } /* syriacsupplement */,
+ { 0, 6165, 6642, 3, 4, UNI_BRAH } /* sc=brah */,
+ { 1, 7383, 5479, 10, 18, UNI_BC__ET } /* bidiclass=europeanterminator */,
+ { 1, 2766, 4206, 3, 15, UNI_PS } /* gc=openpunctuation */,
+ { 5, 7752, 109, 24, 2, UNI_JG__MANICHAEANTAW } /* joininggroup=manichaeantaw */,
+ { 3, 5682, 0, 5, 0, UNI_GREK } /* greek */,
+ { 0, 4360, 6224, 10, 12, UNI_LB__SY } /* linebreak=breaksymbols */,
+ { 20, 605, 8144, 2, 16, UNI_IDEOGRAPHICSYMBOLS } /* ideographicsymbols */,
+ { 1, 517, 1314, 4, 3, UNI_NV__7000 } /* nv=7000 */,
+ { 0, 309, 983, 2, 8, UNI_INHIRAGANA } /* inhiragana */,
+ { 2, 1667, 4537, 5, 17, UNI_COPTICEPACTNUMBERS } /* blk=copticepactnumbers */,
+ { 0, 2324, 1543, 6, 10, UNI_INKHAROSHTHI } /* block=kharoshthi */,
+ { 4, 718, 3622, 3, 11, UNI_KANGXI } /* kangxiradicals */,
+ { 1, 1391, 6, 3, 2, UNI_LB__CR } /* wb=cr */,
+ { 8, 4424, 4176, 17, 6, UNI_HANG } /* scriptextensions=hangul */,
+ { 3, 461, 363, 2, 2, UNI_SM } /* issm */,
+ { 0, 7011, 1153, 24, 2, UNI_CCC__24 } /* canonicalcombiningclass=24 */,
+ { 18, 33, 8001, 1, 29, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* symbolsandpictographsextendeda */,
+ { 0, 461, 779, 2, 7, UNI_OSMA } /* isosmanya */,
+ { 8, 1227, 0, 7, 0, UNI_MAKA } /* makasar */,
+ { 0, 1102, 3908, 4, 6, UNI_TANG } /* scx=tangut */,
+ { 0, 895, 343, 5, 3, UNI_AGE__12_DOT_1 } /* age=v121 */,
+ { 3, 2766, 5235, 3, 20, UNI_PC } /* gc=connectorpunctuation */,
+ { 40, 1102, 1975, 4, 10, UNI_SOGO } /* scx=oldsogdian */,
+ { 0, 7214, 559, 25, 2, UNI_CCC__107 } /* canonicalcombiningclass=107 */,
+ { 10, 27, 29, 2, 2, UNI_ARMI } /* armi */,
+ { 17, 7267, 644, 15, 2, UNI_L } /* generalcategory=l */,
+ { 1, 461, 3013, 2, 5, UNI_EPRES } /* isepres */,
+ { 1, 6076, 3639, 13, 9, UNI_GEORGIANEXT } /* block=georgianextended */,
+ { 0, 309, 7796, 2, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* inenclosedideographicsupplement */,
+ { 1, 2324, 1255, 6, 7, UNI_INSIDDHAM } /* block=siddham */,
+ { 5, 1198, 7972, 3, 29, UNI_CUNEIFORMNUMBERS } /* incuneiformnumbersandpunctuation */,
+ { 2, 2301, 0, 11, 0, UNI_XIDC } /* xidcontinue */,
+ { 3, 309, 3649, 2, 14, UNI_PHONETICEXTSUP } /* inphoneticextsup */,
+ { 0, 1102, 615, 4, 4, UNI_ELYM } /* scx=elym */,
+ { 3, 6165, 180, 3, 4, UNI_RUNR } /* sc=runr */,
+ { 0, 2766, 128, 3, 2, UNI_ME } /* gc=me */,
+ { 1, 418, 0, 4, 0, UNI_KHMR } /* khmr */,
+ { 10, 7274, 2424, 9, 2, UNI__PERL_SURROGATE } /* category=cs */,
+ { 10, 3514, 6193, 10, 12, UNI_ARABICSUP } /* block=arabicsupplement */,
+ { 11, 4584, 599, 18, 2, -UNI_IDST } /* idstrinaryoperator=n */,
+ { 2, 1823, 27, 7, 4, UNI_ARMI } /* script=armi */,
+ { 1, 7591, 2977, 3, 11, UNI_LB__IN } /* lb=inseperable */,
+ { 0, 5255, 934, 20, 6, -UNI_EXTPICT } /* extendedpictographic=false */,
+ { 0, 339, 1317, 5, 2, UNI_CCC__132 } /* ccc=132 */,
+ { 2, 2536, 6439, 2, 11, UNI_JG__AFRICANQAF } /* jg=africanqaf */,
+ { 10, 2060, 1175, 4, 2, UNI_alpha_values_index } /* alpha= */,
+ { 0, 4424, 1003, 17, 6, UNI_LEPC } /* scriptextensions=lepcha */,
+ { 32, 6165, 144, 3, 4, UNI_NEWA } /* sc=newa */,
+ { 40, 3878, 1314, 14, 2, UNI_NV__900 } /* numericvalue=900 */,
+ { 1, 461, 4896, 2, 15, UNI_BAMUMSUP } /* isbamumsupplement */,
+ { 0, 3832, 2107, 14, 8, UNI_NV__11_SLASH_2 } /* numericvalue=5.500e+00 */,
+ { 2, 4424, 1367, 17, 9, UNI_PAUC } /* scriptextensions=paucinhau */,
+ { 1, 6165, 1051, 3, 8, UNI_SC__MAHJ } /* sc=mahajani */,
+ { 2, 7495, 1153, 27, 2, UNI_CCC__24 } /* canonicalcombiningclass=ccc24 */,
+ { 1, 461, 1322, 2, 9, UNI_ITAL } /* isolditalic */,
+ { 4, 6062, 1505, 14, 4, UNI_ETHIOPICEXTA } /* block=ethiopicexta */,
+ { 1, 30, 4969, 1, 18, UNI_EBASE } /* isemojimodifierbase */,
+ { 1, 1200, 1037, 3, 4, UNI_CJKEXTB } /* cjkextb */,
+ { 14, 2536, 710, 3, 4, UNI_JG__SHIN } /* jg=shin */,
+ { 6, 7889, 0, 20, 0, UNI_CJK } /* cjkunifiedideographs */,
+ { 8, 309, 6776, 2, 21, UNI_MEETEIMAYEKEXT } /* inmeeteimayekextensions */,
+ { 0, 7036, 0, 26, 0, UNI_HALFANDFULLFORMS } /* halfwidthandfullwidthforms */,
+ { 1, 3633, 5848, 7, 9, UNI_LATINEXTA } /* inlatinextendeda */,
+ { 0, 7724, 585, 17, 2, UNI_VS } /* variationselector=t */,
+ { 64, 6090, 6597, 7, 21, UNI_MISCTECHNICAL } /* block=miscellaneoustechnical */,
+ { 18, 4360, 2930, 10, 2, UNI_GCB__T } /* linebreak=jt */,
+ { 0, 4424, 527, 17, 6, UNI_RJNG } /* scriptextensions=rejang */,
+ { 9, 3817, 520, 15, 1, UNI_NV__1_SLASH_7 } /* numericvalue=1/7 */,
+ { 12, 875, 599, 5, 3, -UNI_UIDEO } /* uideo=no */,
+ { 2, 2301, 3401, 9, 3, UNI_xidc_values_index } /* xidcontinue= */,
+ { 4, 2324, 678, 6, 5, UNI_INRUNIC } /* block=runic */,
+ { 0, 442, 0, 4, 0, UNI_ORKH } /* orkh */,
+ { 3, 7495, 343, 27, 2, UNI_CCC__12 } /* canonicalcombiningclass=ccc12 */,
+ { 12, 30, 1561, 1, 2, UNI_N } /* isn */,
+ { 1, 4360, 2991, 10, 2, UNI_LB__QU } /* linebreak=qu */,
+ { 1, 1102, 1133, 4, 4, UNI_VITH } /* scx=vith */,
+ { 0, 3490, 0, 12, 0, UNI_INCYRILLIC } /* blk=cyrillic */,
+ { 2, 1853, 298, 9, 2, UNI_SYLO } /* sylotinagri */,
+ { 0, 2232, 2107, 4, 8, UNI_NV__17_SLASH_2 } /* nv=8.500e+00 */,
+ { 34, 2732, 5676, 5, 18, UNI_ANCIENTGREEKNUMBERS } /* blk=ancientgreeknumbers */,
+ { 4, 6165, 6154, 3, 9, UNI_XSUX } /* sc=cuneiform */,
+ { 0, 4424, 1635, 17, 10, UNI_WARA } /* scriptextensions=warangciti */,
+ { 0, 2302, 0, 3, 0, UNI_IDC } /* idc */,
+ { 0, 1667, 6510, 4, 24, UNI_HIGHPUSURROGATES } /* blk=highprivateusesurrogates */,
+ { 2, 6866, 585, 24, 2, UNI_COMPEX } /* fullcompositionexclusion=t */,
+ { 0, 461, 1082, 2, 4, UNI_XPOSIXWORD } /* isword */,
+ { 4, 1823, 663, 7, 4, UNI_SC__LIMB } /* script=limb */,
+ { 0, 823, 585, 4, 2, UNI_DASH } /* dash=t */,
+ { 0, 461, 261, 2, 5, UNI_CWKCF } /* iscwkcf */,
+ { 1, 2232, 1805, 4, 4, UNI_NV__80000 } /* nv=80000 */,
+ { 1, 1667, 7796, 4, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* blk=enclosedideographicsupplement */,
+ { 4, 1102, 991, 4, 4, UNI_HATR } /* scx=hatr */,
+ { 4, 2665, 1104, 12, 3, UNI_PATSYN } /* patternsyntax=t */,
+ { 0, 1243, 4504, 4, 16, UNI_LATINEXTB } /* block=latinextendedb */,
+ { 0, 2685, 2083, 4, 2, UNI_IN__5_DOT_1 } /* in=5.1 */,
+ { 0, 4360, 2589, 10, 10, UNI_LB__BA } /* linebreak=breakafter */,
+ { 0, 4519, 3642, 16, 7, UNI_CYRILLICEXTD } /* block=cyrillicextendedd */,
+ { 0, 1102, 458, 4, 4, UNI_QAAI } /* scx=qaai */,
+ { 0, 1823, 983, 7, 8, UNI_SC__HIRA } /* script=hiragana */,
+ { 0, 1572, 0, 10, 0, UNI_XPEO } /* oldpersian */,
+ { 31, 1741, 1479, 6, 5, UNI_VERTSPACE } /* isvertspace */,
+ { 0, 309, 2335, 2, 13, UNI_BLOCKELEMENTS } /* inblockelements */,
+ { 9, 1667, 5031, 4, 14, UNI_INHANIFIROHINGYA } /* blk=hanifirohingya */,
+ { 7, 1823, 216, 7, 4, UNI_TOTO } /* script=toto */,
+ { 0, 2766, 8, 3, 2, UNI_PC } /* gc=pc */,
+ { 1, 4090, 0, 17, 0, UNI_INDICSIYAQNUMBERS } /* indicsiyaqnumbers */,
+ { 0, 2718, 3706, 3, 14, UNI_BC__NSM } /* bc=nonspacingmark */,
+ { 1, 1198, 6357, 5, 13, UNI_CJKCOMPAT } /* incjkcompatibility */,
+ { 2, 6816, 585, 25, 2, UNI_CWKCF } /* changeswhennfkccasefolded=t */,
+ { 0, 4424, 164, 17, 4, UNI_PHNX } /* scriptextensions=phnx */,
+ { 0, 20, 585, 3, 5, UNI_XPOSIXXDIGIT } /* hex=true */,
+ { 1, 578, 1153, 5, 2, UNI_CCC__L } /* ccc=224 */,
+ { 0, 30, 1882, 1, 6, UNI_BIDIC } /* isbidic */,
+ { 2, 309, 6776, 2, 11, UNI_INMEETEIMAYEK } /* inmeeteimayek */,
+ { 16, 309, 1294, 2, 9, UNI_INNABATAEAN } /* innabataean */,
+ { 0, 7267, 248, 16, 5, UNI_XPOSIXCNTRL } /* generalcategory=cntrl */,
+ { 1, 6866, 934, 24, 6, -UNI_COMPEX } /* fullcompositionexclusion=false */,
+ { 9, 461, 4683, 2, 16, UNI_PF } /* isfinalpunctuation */,
+ { 4, 4845, 5671, 16, 4, -UNI__PERL_PATWS } /* patternwhitespace=no */,
+ { 8, 2018, 2720, 11, 2, UNI_JT__R } /* joiningtype=r */,
+ { 0, 6165, 3908, 3, 6, UNI_TANG } /* sc=tangut */,
+ { 2, 4360, 928, 9, 3, UNI_LB__OP } /* linebreak=op */,
+ { 1, 2536, 5084, 3, 6, UNI_JG__YUDHHE } /* jg=yudhhe */,
+ { 0, 461, 6677, 2, 14, UNI_LM } /* ismodifierletter */,
+ { 3, 2665, 0, 13, 0, UNI_PATSYN } /* patternsyntax */,
+ { 4, 663, 0, 5, 0, UNI_LIMB } /* limbu */,
+ { 0, 5065, 4756, 13, 5, UNI_JG__MANICHAEANZAYIN } /* jg=manichaeanzayin */,
+ { 33, 1102, 746, 4, 4, UNI_MARC } /* scx=marc */,
+ { 0, 3677, 4659, 7, 9, UNI_LATINEXTC } /* islatinextendedc */,
+ { 0, 887, 549, 5, 3, UNI_AGE__14 } /* age=14.0 */,
+ { 0, 1667, 5274, 4, 18, UNI_HALFMARKS } /* blk=combininghalfmarks */,
+ { 1, 2503, 599, 5, 3, -UNI_JOINC } /* joinc=no */,
+ { 11, 1102, 333, 4, 4, UNI_CARI } /* scx=cari */,
+ { 0, 2302, 599, 3, 3, -UNI_IDC } /* idc=no */,
+ { 4, 2930, 2908, 3, 11, UNI_JT__C } /* jt=joincausing */,
+ { 1, 7274, 252, 9, 2, UNI_CASEDLETTER } /* category=lc */,
+ { 16, 6090, 1235, 7, 6, UNI_INMULTANI } /* block=multani */,
+ { 35, 7752, 4751, 23, 5, UNI_JG__MANICHAEANSADHE } /* joininggroup=manichaeansadhe */,
+ { 6, 2280, 549, 10, 3, UNI_IN__4 } /* presentin=4.0 */,
+ { 1, 1823, 688, 7, 5, UNI_BATK } /* script=batak */,
+ { 3, 2536, 118, 3, 3, UNI_JG__DAL } /* jg=dal */,
+ { 9, 30, 3435, 1, 16, UNI_SARB } /* inoldsoutharabian */,
+ { 0, 7591, 3634, 3, 2, UNI_LB__NL } /* lb=nl */,
+ { 1, 2324, 1003, 6, 6, UNI_INLEPCHA } /* block=lepcha */,
+ { 14, 510, 346, 4, 1, UNI_NV__38 } /* nv=38 */,
+ { 0, 7011, 8648, 24, 10, UNI_CCC__AR } /* canonicalcombiningclass=aboveright */,
+ { 0, 1272, 3938, 3, 16, UNI_UCAS } /* iscanadiansyllabics */,
+ { 11, 2536, 706, 3, 4, UNI_JG__SEEN } /* jg=seen */,
+ { 0, 533, 325, 3, 2, UNI_SB__UP } /* sb=up */,
+ { 2, 7591, 700, 3, 2, UNI_EMOD } /* lb=em */,
+ { 0, 5799, 8386, 5, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* insupsymbolsandpictographs */,
+ { 19, 4, 352, 2, 3, UNI_LOE } /* loe=y */,
+ { 10, 2324, 6576, 7, 21, UNI_INDICNUMBERFORMS } /* block=commonindicnumberforms */,
+ { 35, 2432, 747, 3, 6, UNI_INMARCHEN } /* inmarchen */,
+ { 7, 1823, 188, 7, 4, UNI_SGNW } /* script=sgnw */,
+ { 1, 10, 2422, 1, 10, UNI_MISCSYMBOLS } /* miscsymbols */,
+ { 55, 1906, 1544, 5, 9, UNI_INKHAROSHTHI } /* blk=kharoshthi */,
+ { 1, 461, 474, 2, 3, UNI_VAI } /* isvai */,
+ { 20, 461, 6464, 2, 23, UNI_SHORTHANDFORMATCONTROLS } /* isshorthandformatcontrols */,
+ { 2, 533, 1612, 3, 2, UNI_LB__LF } /* sb=lf */,
+ { 0, 1102, 1098, 4, 4, UNI_NSHU } /* scx=nshu */,
+ { 0, 1397, 353, 3, 4, UNI_IDS } /* ids=yes */,
+ { 36, 7591, 53, 3, 2, UNI_LB__NS } /* lb=ns */,
+ { 0, 7274, 1478, 9, 2, UNI_ZS } /* category=zs */,
+ { 0, 32, 599, 2, 3, -UNI_VS } /* vs=no */,
+ { 0, 271, 535, 2, 2, UNI_S } /* gc=s */,
+ { 0, 7084, 1505, 8, 4, UNI_ARABICEXTA } /* inarabicexta */,
+ { 0, 4584, 0, 18, 0, UNI_IDST } /* idstrinaryoperator */,
+ { 4, 1823, 3505, 6, 5, UNI_ETHI } /* script=ethi */,
+ { 4, 7274, 2004, 9, 2, UNI_PO } /* category=po */,
+ { 17, 192, 18, 3, 1, UNI_TAGB } /* tagb */,
+ { 2, 2536, 1041, 3, 5, UNI_JG__GAMAL } /* jg=gamal */,
+ { 0, 78, 0, 4, 0, UNI_DSRT } /* dsrt */,
+ { 39, 4970, 353, 13, 4, UNI_EMOD } /* emojimodifier=yes */,
+ { 1, 339, 3405, 4, 2, UNI_CCC__36 } /* ccc=36 */,
+ { 6, 2525, 1942, 6, 5, UNI_XPOSIXGRAPH } /* xposixgraph */,
+ { 0, 1033, 0, 4, 0, UNI_JAMO } /* jamo */,
+ { 0, 4525, 192, 10, 2, UNI_CYRILLICEXTA } /* cyrillicexta */,
+ { 20, 1667, 854, 4, 7, UNI_INTAIVIET } /* blk=taiviet */,
+ { 0, 1396, 934, 8, 2, -UNI_XIDS } /* xidstart=f */,
+ { 1, 1823, 102, 7, 4, UNI_HMNG } /* script=hmng */,
+ { 0, 461, 3663, 2, 10, UNI_DEVA } /* isdevanagari */,
+ { 0, 1728, 3790, 5, 5, UNI_ARABICMATH } /* arabicmath */,
+ { 1, 876, 585, 4, 2, UNI_IDEO } /* ideo=t */,
+ { 4, 7011, 2165, 25, 2, UNI_CCC__DB } /* canonicalcombiningclass=233 */,
+ { 1, 461, 333, 2, 4, UNI_CARI } /* iscari */,
+ { 1, 3177, 140, 15, 2, UNI_EA__NA } /* eastasianwidth=na */,
+ { 1, 309, 4176, 2, 6, UNI_INHANGUL } /* inhangul */,
+ { 24, 739, 0, 7, 0, UNI_MAND } /* mandaic */,
+ { 1, 7889, 4218, 26, 4, UNI_CJKEXTH } /* cjkunifiedideographsextensionh */,
+ { 0, 2718, 0, 4, 0, UNI_BC__R } /* bc=r */,
+ { 0, 1065, 288, 4, 1, UNI_NV__13 } /* nv=13 */,
+ { 3, 4970, 584, 16, 6, UNI_EBASE } /* emojimodifierbase=true */,
+ { 26, 1198, 3163, 3, 14, UNI_CONTROLPICTURES } /* incontrolpictures */,
+ { 0, 2348, 352, 12, 3, UNI_CI } /* caseignorable=y */,
+ { 38, 4424, 6776, 17, 11, UNI_MTEI } /* scriptextensions=meeteimayek */,
+ { 2, 257, 353, 4, 2, UNI_CWCM } /* cwcm=y */,
+ { 0, 271, 599, 2, 3, UNI_NO } /* gc=no */,
+ { 12, 533, 1613, 3, 2, UNI_SB__FO } /* sb=fo */,
+ { 0, 6165, 847, 3, 7, UNI_LANA } /* sc=taitham */,
+ { 16, 2324, 1051, 6, 8, UNI_INMAHAJANI } /* block=mahajani */,
+ { 13, 4391, 520, 14, 1, UNI_NV__37 } /* numericvalue=37 */,
+ { 0, 53, 35, 1, 3, UNI_NBAT } /* nbat */,
+ { 1, 1823, 414, 7, 4, UNI_SC__HANO } /* script=hano */,
+ { 0, 4424, 1334, 17, 4, UNI_PERM } /* scriptextensions=perm */,
+ { 13, 4852, 5671, 9, 4, -UNI_XPOSIXSPACE } /* whitespace=no */,
+ { 0, 3204, 599, 14, 3, -UNI_GREXT } /* graphemeextend=no */,
+ { 4, 5156, 2487, 12, 7, UNI_WB__ML } /* wordbreak=midletter */,
+ { 1, 4424, 98, 17, 4, UNI_HLUW } /* scriptextensions=hluw */,
+ { 3, 2424, 0, 2, 0, UNI__PERL_SURROGATE } /* cs */,
+ { 0, 4360, 92, 12, 1, UNI_LB__ZWJ } /* linebreak=zwj */,
+ { 1, 6427, 710, 13, 4, UNI_JG__SHIN } /* joininggroup=shin */,
+ { 1, 3013, 353, 5, 4, UNI_EPRES } /* epres=yes */,
+ { 74, 1102, 810, 4, 4, UNI_SYRC } /* scx=syrc */,
+ { 0, 916, 5671, 4, 3, -UNI_EBASE } /* ebase=n */,
+ { 2, 461, 1227, 2, 4, UNI_MAKA } /* ismaka */,
+ { 0, 2, 5671, 1, 4, -UNI_CE } /* ce=no */,
+ { 1, 7267, 2424, 16, 2, UNI__PERL_SURROGATE } /* generalcategory=cs */,
+ { 0, 2832, 6193, 8, 5, UNI_CYRILLICSUP } /* iscyrillicsup */,
+ { 12, 6986, 0, 25, 0, UNI_SYMBOLSFORLEGACYCOMPUTING } /* symbolsforlegacycomputing */,
+ { 0, 4970, 353, 13, 2, UNI_EMOD } /* emojimodifier=y */,
+ { 9, 1397, 353, 4, 2, UNI_IDST } /* idst=y */,
+ { 14, 3391, 2657, 14, 8, UNI_NV__1_SLASH_5 } /* numericvalue=2.000e-01 */,
+ { 64, 2393, 0, 8, 0, UNI_CYRL } /* cyrillic */,
+ { 3, 2280, 0, 10, 0, UNI_in_values_index } /* presentin= */,
+ { 10, 2752, 934, 14, 6, -UNI_ECOMP } /* emojicomponent=false */,
+ { 7, 54, 3505, 2, 9, UNI_ETHI } /* sc=ethiopic */,
+ { 2, 916, 584, 4, 6, UNI_EBASE } /* ebase=true */,
+ { 34, 1391, 3463, 3, 12, UNI_WB__EB } /* wb=glueafterzwj */,
+ { 1, 1823, 1465, 7, 10, UNI_DIAK } /* script=divesakuru */,
+ { 0, 2393, 4511, 8, 9, UNI_CYRILLICEXTB } /* cyrillicextendedb */,
+ { 5, 4852, 584, 9, 3, UNI_XPOSIXSPACE } /* whitespace=t */,
+ { 13, 6427, 3726, 12, 14, UNI_JG__MALAYALAMNNNA } /* joininggroup=malayalamnnna */,
+ { 0, 7591, 279, 3, 2, UNI_GCB__L } /* lb=jl */,
+ { 4, 840, 0, 7, 0, UNI_TGLG } /* tagalog */,
+ { 0, 6165, 663, 3, 4, UNI_SC__LIMB } /* sc=limb */,
+ { 0, 609, 4369, 2, 3, UNI_LB__ZW } /* lb=zw */,
+ { 0, 7537, 599, 10, 2, -UNI_XPOSIXALPHA } /* alphabetic=n */,
+ { 0, 1823, 3505, 6, 9, UNI_ETHI } /* script=ethiopic */,
+ { 0, 1823, 1834, 7, 4, UNI_SORA } /* script=sora */,
+ { 2, 1543, 0, 10, 0, UNI_KHAR } /* kharoshthi */,
+ { 0, 20, 353, 3, 4, UNI_XPOSIXXDIGIT } /* hex=yes */,
+ { 0, 1823, 5353, 7, 20, UNI_PHLI } /* script=inscriptionalpahlavi */,
+ { 1, 1221, 5848, 6, 9, UNI_KANAEXTA } /* inkanaextendeda */,
+ { 0, 875, 353, 5, 2, UNI_UIDEO } /* uideo=y */,
+ { 0, 2852, 0, 4, 0, UNI_MAHJ } /* mahj */,
+ { 1, 3014, 392, 11, 2, UNI_IN__4_DOT_1 } /* presentin=v41 */,
+ { 3, 6450, 21, 14, 2, UNI_SB__EX } /* sentencebreak=ex */,
+ { 1, 7887, 4410, 28, 4, UNI_CJKEXTA } /* incjkunifiedideographsextensiona */,
+ { 0, 3817, 395, 15, 2, UNI_NV__1_SLASH_16 } /* numericvalue=1/16 */,
+ { 13, 5274, 5283, 9, 9, UNI_HALFMARKS } /* combininghalfmarks */,
+ { 0, 461, 51, 2, 4, UNI_CANS } /* iscans */,
+ { 0, 1823, 5067, 6, 11, UNI_SC__MANI } /* script=manichaean */,
+ { 2, 895, 1317, 5, 2, UNI_AGE__3_DOT_2 } /* age=v32 */,
+ { 0, 339, 8203, 4, 11, UNI_CCC__DB } /* ccc=doublebelow */,
+ { 1, 6427, 0, 23, 0, UNI_JG__AFRICANQAF } /* joininggroup=africanqaf */,
+ { 1, 7011, 3405, 24, 2, UNI_CCC__36 } /* canonicalcombiningclass=36 */,
+ { 0, 309, 7356, 2, 27, UNI_OCR } /* inopticalcharacterrecognition */,
+ { 12, 92, 643, 1, 3, UNI_JT__L } /* jt=l */,
+ { 0, 6165, 4896, 3, 5, UNI_BAMU } /* sc=bamum */,
+ { 0, 8246, 2720, 23, 6, UNI_INPC__RIGHT } /* indicpositionalcategory=right */,
+ { 1, 2988, 5164, 12, 3, UNI_NFCQC__M } /* nfcquickcheck=m */,
+ { 0, 5156, 21, 10, 2, UNI_WB__EX } /* wordbreak=ex */,
+ { 3, 3878, 0, 14, 0, UNI_NV__9 } /* numericvalue=9 */,
+ { 2, 1823, 148, 7, 4, UNI_SC__ORYA } /* script=orya */,
+ { 0, 1102, 4176, 4, 4, UNI_HANG } /* scx=hang */,
+ { 2, 6165, 4176, 3, 4, UNI_SC__HANG } /* sc=hang */,
+ { 0, 876, 585, 4, 5, UNI_IDEO } /* ideo=true */,
+ { 0, 1191, 0, 7, 0, UNI_BENG } /* bengali */,
+ { 0, 895, 1318, 5, 2, UNI_AGE__2 } /* age=v20 */,
+ { 0, 461, 1255, 2, 7, UNI_SIDD } /* issiddham */,
+ { 0, 2324, 2244, 6, 12, UNI_INOLDHUNGARIAN } /* block=oldhungarian */,
+ { 0, 7267, 1887, 16, 7, UNI_XPOSIXCNTRL } /* generalcategory=control */,
+ { 2, 4161, 599, 9, 3, -UNI_DIA } /* diacritic=no */,
+ { 0, 1397, 353, 7, 4, UNI_IDS } /* idstart=yes */,
+ { 36, 309, 317, 2, 5, UNI_INTAILE } /* intaile */,
+ { 19, 2324, 398, 6, 4, UNI_INMIAO } /* block=miao */,
+ { 1, 1823, 6185, 7, 4, UNI_SC__GLAG } /* script=glag */,
+ { 12, 1409, 1037, 5, 4, UNI_LATINEXTB } /* latinextb */,
+ { 0, 2411, 0, 8, 0, UNI_KANA } /* katakana */,
+ { 72, 2, 4076, 1, 13, UNI_SC } /* currencysymbol */,
+ { 2, 5637, 3472, 21, 3, UNI_LB__ZWJ } /* graphemeclusterbreak=zwj */,
+ { 3, 43, 0, 4, 0, UNI_BUHD } /* buhd */,
+ { 7, 7383, 7776, 10, 21, UNI_BC__PDI } /* bidiclass=popdirectionalisolate */,
+ { 4, 1102, 116, 4, 4, UNI_KNDA } /* scx=knda */,
+ { 0, 7356, 0, 27, 0, UNI_OCR } /* opticalcharacterrecognition */,
+ { 0, 1439, 1477, 3, 7, UNI_XPOSIXBLANK } /* horizspace */,
+ { 0, 30, 492, 1, 7, UNI_INKHOJKI } /* inkhojki */,
+ { 2, 1667, 7467, 4, 28, UNI_SUPPUAA } /* blk=supplementaryprivateuseareaa */,
+ { 1, 4584, 353, 18, 4, UNI_IDST } /* idstrinaryoperator=yes */,
+ { 0, 4360, 1771, 10, 8, UNI_LB__NL } /* linebreak=nextline */,
+ { 6, 7011, 5016, 24, 2, UNI_CCC__8 } /* canonicalcombiningclass=kv */,
+ { 4, 461, 1396, 2, 8, UNI_XIDS } /* isxidstart */,
+ { 6, 3014, 288, 12, 2, UNI_IN__13 } /* presentin=v130 */,
+ { 15, 3421, 0, 15, 0, UNI_NARB } /* oldnortharabian */,
+ { 1, 895, 2093, 5, 2, UNI_AGE__5 } /* age=v50 */,
+ { 9, 7011, 346, 25, 1, UNI_CCC__28 } /* canonicalcombiningclass=28 */,
+ { 0, 7214, 1316, 25, 2, UNI_CCC__103 } /* canonicalcombiningclass=103 */,
+ { 0, 3130, 5863, 9, 13, UNI_GEORGIANSUP } /* blk=georgiansupplement */,
+ { 1, 461, 1478, 2, 2, UNI_ZS } /* iszs */,
+ { 6, 1272, 6357, 5, 13, UNI_CJKCOMPAT } /* iscjkcompatibility */,
+ { 1, 2766, 2621, 3, 9, UNI__PERL_SURROGATE } /* gc=surrogate */,
+ { 3, 1734, 819, 3, 6, UNI_SHRD } /* issharada */,
+ { 4, 3021, 343, 4, 3, UNI_IN__12_DOT_1 } /* in=v121 */,
+ { 24, 4502, 5635, 15, 3, UNI_LATINEXTG } /* blk=latinextendedg */,
+ { 9, 1823, 283, 7, 5, UNI_NSHU } /* script=nushu */,
+ { 0, 271, 898, 3, 2, UNI_GCB__V } /* gcb=v */,
+ { 28, 2324, 2009, 6, 6, UNI_INSYRIAC } /* block=syriac */,
+ { 0, 597, 1715, 3, 8, UNI_DT__ISO } /* dt=isolated */,
+ { 19, 2324, 4926, 6, 15, UNI_TAMILSUP } /* block=tamilsupplement */,
+ { 4, 461, 1404, 2, 10, UNI_ASCII } /* isbasiclatin */,
+ { 3, 4424, 909, 17, 4, UNI_BALI } /* scriptextensions=bali */,
+ { 4, 2324, 3611, 9, 6, UNI_CJKCOMPAT } /* block=cjkcompat */,
+ { 0, 461, 1191, 2, 7, UNI_BENG } /* isbengali */,
+ { 3, 6427, 3289, 13, 12, UNI_JG__FINALSEMKATH } /* joininggroup=finalsemkath */,
+ { 4, 2324, 5857, 6, 9, UNI_INMONGOLIAN } /* block=mongolian */,
+ { 0, 8601, 1609, 7, 9, UNI_SMALLFORMS } /* block=smallforms */,
+ { 2, 7198, 7304, 5, 24, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* blk=symbolsandpictographsexta */,
+ { 6, 6165, 909, 3, 4, UNI_BALI } /* sc=bali */,
+ { 0, 4424, 658, 17, 5, UNI_DOGR } /* scriptextensions=dogra */,
+ { 5, 6165, 1543, 3, 10, UNI_KHAR } /* sc=kharoshthi */,
+ { 9, 423, 5676, 3, 18, UNI_ANCIENTGREEKNUMBERS } /* inancientgreeknumbers */,
+ { 25, 1102, 991, 4, 6, UNI_HATR } /* scx=hatran */,
+ { 1, 20, 934, 3, 2, -UNI_XPOSIXXDIGIT } /* hex=f */,
+ { 0, 6165, 746, 3, 7, UNI_MARC } /* sc=marchen */,
+ { 0, 1397, 353, 7, 2, UNI_IDS } /* idstart=y */,
+ { 12, 7804, 6621, 10, 3, UNI_IDEO } /* ideographic=t */,
+ { 2, 1671, 131, 6, 1, UNI_CJKEXTF } /* cjkextf */,
+ { 0, 552, 2222, 3, 4, UNI_AGE__6_DOT_2 } /* age=6.2 */,
+ { 1, 461, 446, 2, 4, UNI_PHLI } /* isphli */,
+ { 2, 3724, 720, 12, 3, UNI_JG__MALAYALAMNNA } /* jg=malayalamnna */,
+ { 5, 4424, 4651, 17, 8, UNI_BOPO } /* scriptextensions=bopomofo */,
+ { 0, 2432, 1037, 9, 4, UNI_MYANMAREXTB } /* inmyanmarextb */,
+ { 0, 292, 289, 3, 1, UNI_NV__0 } /* nv=0 */,
+ { 0, 5156, 1869, 10, 3, UNI_WB__EB } /* wordbreak=gaz */,
+ { 2, 6735, 3720, 22, 4, UNI_JG__MALAYALAMLLLA } /* joininggroup=malayalamllla */,
+ { 12, 461, 1051, 2, 8, UNI_MAHJ } /* ismahajani */,
+ { 0, 309, 2786, 2, 14, UNI_HIGHSURROGATES } /* inhighsurrogates */,
+ { 5, 3391, 2165, 13, 2, UNI_NV__33 } /* numericvalue=33 */,
+ { 2, 30, 4190, 1, 16, UNI_LOWERCASELETTER } /* islowercaseletter */,
+ { 0, 7537, 585, 10, 5, UNI_XPOSIXALPHA } /* alphabetic=true */,
+ { 18, 1667, 1582, 4, 10, UNI_INPHOENICIAN } /* blk=phoenician */,
+ { 0, 7383, 0, 10, 0, UNI_bc_values_index } /* bidiclass= */,
+ { 0, 2832, 1674, 10, 4, UNI_CYRILLICEXTD } /* iscyrillicextd */,
+ { 11, 3863, 2107, 14, 8, UNI_NV__17_SLASH_2 } /* numericvalue=8.500e+00 */,
+ { 42, 2324, 1978, 6, 7, UNI_INSOGDIAN } /* block=sogdian */,
+ { 2, 1883, 934, 5, 6, -UNI_BIDIC } /* bidic=false */,
+ { 14, 1484, 0, 8, 0, UNI_BUGI } /* buginese */,
+ { 3, 309, 1543, 2, 10, UNI_INKHAROSHTHI } /* inkharoshthi */,
+ { 7, 4424, 4926, 17, 5, UNI_TAML } /* scriptextensions=tamil */,
+ { 32, 1117, 0, 8, 0, UNI_TAGB } /* tagbanwa */,
+ { 0, 6165, 15, 3, 4, UNI_AGHB } /* sc=aghb */,
+ { 4, 3391, 1067, 12, 4, UNI_NV__1_SLASH_3 } /* numericvalue=1/3 */,
+ { 5, 3633, 1037, 7, 4, UNI_LATINEXTB } /* inlatinextb */,
+ { 8, 673, 0, 5, 0, UNI_OSGE } /* osage */,
+ { 1, 2514, 2422, 3, 10, UNI_MISCSYMBOLS } /* ismiscsymbols */,
+ { 0, 461, 1358, 2, 9, UNI_PALM } /* ispalmyrene */,
+ { 3, 339, 5016, 4, 2, UNI_CCC__8 } /* ccc=kv */,
+ { 1, 1667, 4651, 4, 11, UNI_BOPOMOFOEXT } /* blk=bopomofoext */,
+ { 0, 6165, 1340, 3, 9, UNI_ORKH } /* sc=oldturkic */,
+ { 0, 2280, 140, 10, 2, UNI_IN__NA } /* presentin=na */,
+ { 0, 461, 1414, 2, 10, UNI_BOXDRAWING } /* isboxdrawing */,
+ { 2, 298, 0, 2, 0, UNI_RI } /* ri */,
+ { 0, 2523, 4191, 8, 5, UNI_XPOSIXLOWER } /* isxposixlower */,
+ { 8, 461, 825, 2, 7, UNI_SHAW } /* isshavian */,
+ { 6, 4191, 933, 8, 7, -UNI_XPOSIXLOWER } /* lowercase=false */,
+ { 1, 461, 3569, 4, 14, UNI_HALFANDFULLFORMS } /* ishalfandfullforms */,
+ { 3, 3093, 353, 13, 4, UNI_POSIXXDIGIT } /* asciihexdigit=yes */,
+ { 0, 2324, 6776, 6, 11, UNI_INMEETEIMAYEK } /* block=meeteimayek */,
+ { 24, 461, 4060, 2, 4, UNI_BRAI } /* isbrai */,
+ { 1, 3696, 837, 4, 3, UNI_SUPPUAA } /* suppuaa */,
+ { 1, 2348, 352, 12, 5, UNI_CI } /* caseignorable=yes */,
+ { 0, 4424, 739, 17, 7, UNI_MAND } /* scriptextensions=mandaic */,
+ { 7, 20, 1104, 2, 2, UNI_hex_values_index } /* hex= */,
+ { 0, 1667, 5283, 4, 9, UNI_HALFMARKS } /* blk=halfmarks */,
+ { 0, 6163, 6934, 14, 11, UNI_INSC__CONSONANTWITHSTACKER } /* insc=consonantwithstacker */,
+ { 0, 3276, 0, 13, 0, UNI_ME } /* enclosingmark */,
+ { 35, 461, 1475, 3, 9, UNI_XPOSIXBLANK } /* ishorizspace */,
+ { 2, 517, 1805, 4, 5, UNI_NV__700000 } /* nv=700000 */,
+ { 2, 533, 592, 3, 2, UNI_SB__SE } /* sb=se */,
+ { 23, 6450, 5090, 13, 3, UNI_SB__CL } /* sentencebreak=cl */,
+ { 0, 2324, 1205, 6, 7, UNI_INGRANTHA } /* block=grantha */,
+ { 2, 5216, 4533, 11, 4, UNI_LATINEXTC } /* block=latinextc */,
+ { 0, 578, 346, 6, 1, UNI_CCC__AL } /* ccc=228 */,
+ { 0, 4424, 1248, 17, 7, UNI_PHAG } /* scriptextensions=phagspa */,
+ { 2, 3791, 934, 4, 6, -UNI_MATH } /* math=false */,
+ { 3, 3093, 0, 5, 0, UNI_ASCII } /* ascii */,
+ { 0, 461, 6351, 2, 23, UNI_COMPATJAMO } /* ishangulcompatibilityjamo */,
+ { 0, 2468, 0, 13, 0, UNI_IPAEXT } /* ipaextensions */,
+ { 1, 2232, 1314, 4, 2, UNI_NV__800 } /* nv=800 */,
+ { 8, 2324, 1448, 9, 7, UNI_CJKSTROKES } /* block=cjkstrokes */,
+ { 0, 5065, 3894, 12, 4, UNI_JG__MANICHAEANTEN } /* jg=manichaeanten */,
+ { 49, 461, 244, 2, 4, UNI_ZZZZ } /* iszzzz */,
+ { 10, 1823, 422, 7, 4, UNI_SC__LINA } /* script=lina */,
+ { 0, 552, 2360, 4, 10, UNI_IN__NA } /* age=unassigned */,
+ { 34, 1618, 585, 10, 2, UNI_SD } /* softdotted=t */,
+ { 1, 1667, 5958, 4, 21, UNI_SINHALAARCHAICNUMBERS } /* blk=sinhalaarchaicnumbers */,
+ { 0, 3878, 1314, 14, 3, UNI_NV__9000 } /* numericvalue=9000 */,
+ { 1, 597, 7011, 3, 9, UNI_DT__CAN } /* dt=canonical */,
+ { 0, 1667, 634, 4, 7, UNI_INHANUNOO } /* blk=hanunoo */,
+ { 1, 3130, 976, 5, 7, UNI_INGURMUKHI } /* blk=gurmukhi */,
+ { 0, 6618, 8507, 4, 7, UNI_INPC__BOTTOM } /* inpc=bottom */,
+ { 21, 1667, 3228, 4, 15, UNI_INIMPERIALARAMAIC } /* blk=imperialaramaic */,
+ { 0, 2732, 4511, 10, 9, UNI_ARABICEXTB } /* blk=arabicextendedb */,
+ { 4, 5939, 585, 5, 5, UNI__PERL_NCHAR } /* nchar=true */,
+ { 12, 3436, 0, 15, 0, UNI_SARB } /* oldsoutharabian */,
+ { 5, 309, 1205, 2, 7, UNI_INGRANTHA } /* ingrantha */,
+ { 2, 309, 7564, 2, 27, UNI_ANCIENTGREEKMUSIC } /* inancientgreekmusicalnotation */,
+ { 1, 3677, 5635, 13, 3, UNI_LATINEXTG } /* islatinextendedg */,
+ { 0, 106, 0, 1, 0, UNI_Z } /* z */,
+ { 0, 2060, 1175, 4, 3, -UNI_XPOSIXALPHA } /* alpha=n */,
+ { 0, 1790, 599, 5, 3, UNI_COMPEX } /* nfcqc=no */,
+ { 7, 7198, 5813, 7, 7, UNI_SUPARROWSB } /* blk=suparrowsb */,
+ { 0, 5637, 2768, 20, 6, UNI_GCB__XX } /* graphemeclusterbreak=other */,
+ { 1, 4424, 4951, 17, 19, UNI_EGYP } /* scriptextensions=egyptianhieroglyphs */,
+ { 3, 5156, 1612, 10, 2, UNI_LB__LF } /* wordbreak=lf */,
+ { 1, 1635, 0, 10, 0, UNI_WARA } /* warangciti */,
+ { 2, 3724, 529, 12, 2, UNI_JG__MALAYALAMJA } /* jg=malayalamja */,
+ { 1, 2525, 248, 6, 5, UNI_XPOSIXCNTRL } /* xposixcntrl */,
+ { 1, 4424, 2441, 17, 11, UNI_NAND } /* scriptextensions=nandinagari */,
+ { 3, 1823, 357, 7, 6, UNI_SC__CAKM } /* script=chakma */,
+ { 97, 2966, 7304, 3, 24, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* insymbolsandpictographsexta */,
+ { 2, 5979, 1343, 3, 2, UNI_VO__TU } /* vo=tu */,
+ { 0, 7011, 395, 25, 2, UNI_CCC__216 } /* canonicalcombiningclass=216 */,
+ { 33, 3407, 1317, 14, 5, UNI_NV__432000 } /* numericvalue=432000 */,
+ { 17, 2002, 4150, 7, 5, UNI_POSIXPUNCT } /* isposixpunct */,
+ { 76, 597, 2692, 3, 8, UNI_DT__VERT } /* dt=vertical */,
+ { 14, 309, 5391, 2, 11, UNI_CHEROKEESUP } /* incherokeesup */,
+ { 3, 6165, 5876, 3, 9, UNI_SUND } /* sc=sundanese */,
+ { 1, 5658, 7073, 15, 11, UNI_IDENTIFIERTYPE__UNCOMMONUSE } /* identifiertype=uncommonuse */,
+ { 1, 32, 0, 2, 0, UNI_VS } /* vs */,
+ { 0, 30, 1561, 1, 11, UNI_NAGM } /* isnagmundari */,
+ { 1, 1823, 94, 7, 4, UNI_SC__GURU } /* script=guru */,
+ { 2, 2324, 683, 6, 5, UNI_INTAKRI } /* block=takri */,
+ { 0, 2259, 1126, 3, 7, UNI_TFNG } /* istifinagh */,
+ { 0, 1667, 951, 4, 8, UNI_INDUPLOYAN } /* blk=duployan */,
+ { 2, 4424, 3228, 17, 15, UNI_ARMI } /* scriptextensions=imperialaramaic */,
+ { 1, 3677, 4344, 3, 16, UNI_LETTERLIKESYMBOLS } /* isletterlikesymbols */,
+ { 0, 2503, 599, 11, 2, -UNI_JOINC } /* joincontrol=n */,
+ { 1, 4043, 599, 17, 3, -UNI_IDSB } /* idsbinaryoperator=no */,
+ { 0, 7011, 289, 24, 1, UNI_CCC__0 } /* canonicalcombiningclass=0 */,
+ { 2, 605, 341, 2, 2, UNI_idc_values_index } /* idc= */,
+ { 40, 285, 452, 2, 2, UNI_SHRD } /* shrd */,
+ { 5, 1102, 369, 4, 6, UNI_GOTH } /* scx=gothic */,
+ { 1, 1667, 3583, 4, 16, UNI_HIGHPUSURROGATES } /* blk=highpusurrogates */,
+ { 8, 7274, 3026, 9, 2, UNI_PS } /* category=ps */,
+ { 15, 1883, 353, 5, 4, UNI_BIDIC } /* bidic=yes */,
+ { 2, 7011, 3971, 24, 13, UNI_CCC__IS } /* canonicalcombiningclass=iotasubscript */,
+ { 2, 2324, 5185, 6, 20, UNI_INANATOLIANHIEROGLYPHS } /* block=anatolianhieroglyphs */,
+ { 0, 916, 352, 4, 5, UNI_EBASE } /* ebase=yes */,
+ { 2, 6165, 1635, 3, 10, UNI_WARA } /* sc=warangciti */,
+ { 0, 2180, 346, 4, 1, UNI_NV__48 } /* nv=48 */,
+ { 6, 2401, 1037, 10, 4, UNI_ETHIOPICEXTB } /* inethiopicextb */,
+ { 3, 309, 4131, 2, 8, UNI_VEDICEXT } /* invedicext */,
+ { 7, 30, 938, 1, 6, UNI_ECOMP } /* isecomp */,
+ { 13, 339, 1317, 4, 2, UNI_CCC__32 } /* ccc=32 */,
+ { 11, 1823, 228, 7, 4, UNI_XSUX } /* script=xsux */,
+ { 0, 252, 0, 2, 0, UNI_CASEDLETTER } /* lc */,
+ { 0, 16, 4982, 1, 5, UNI_GRBASE } /* grbase */,
+ { 0, 4502, 1505, 9, 4, UNI_LATINEXTA } /* blk=latinexta */,
+ { 11, 876, 353, 4, 4, UNI_IDEO } /* ideo=yes */,
+ { 0, 1065, 520, 4, 1, UNI_NV__17 } /* nv=17 */,
+ { 32, 5460, 585, 19, 2, UNI_TERM } /* terminalpunctuation=t */,
+ { 0, 1667, 7564, 4, 17, UNI_ANCIENTGREEKMUSIC } /* blk=ancientgreekmusic */,
+ { 4, 5616, 353, 21, 2, UNI_CWU } /* changeswhenuppercased=y */,
+ { 0, 339, 1318, 4, 2, UNI_CCC__20 } /* ccc=20 */,
+ { 0, 6165, 6185, 3, 4, UNI_SC__GLAG } /* sc=glag */,
+ { 2, 6165, 90, 3, 4, UNI_SC__GUJR } /* sc=gujr */,
+ { 2, 309, 825, 2, 7, UNI_SHAW } /* inshavian */,
+ { 0, 4360, 6, 10, 2, UNI_LB__CR } /* linebreak=cr */,
+ { 17, 6427, 706, 13, 4, UNI_JG__SEEN } /* joininggroup=seen */,
+ { 2, 6163, 5731, 6, 15, UNI_INSC__CANTILLATIONMARK } /* insc=cantillationmark */,
+ { 0, 6165, 917, 3, 4, UNI_BASS } /* sc=bass */,
+ { 0, 6165, 438, 3, 4, UNI_OLCK } /* sc=olck */,
+ { 1, 5205, 2631, 5, 12, UNI_MAYANNUMERALS } /* blk=mayannumerals */,
+ { 0, 3514, 0, 12, 0, UNI_INARABIC } /* block=arabic */,
+ { 1, 3908, 0, 6, 0, UNI_TANG } /* tangut */,
+ { 0, 309, 4896, 2, 8, UNI_BAMUMSUP } /* inbamumsup */,
+ { 0, 4569, 585, 5, 5, UNI_XPOSIXUPPER } /* upper=true */,
+ { 2, 339, 5523, 4, 9, UNI_CCC__BL } /* ccc=belowleft */,
+ { 2, 1102, 430, 4, 3, UNI_NKO } /* scx=nko */,
+ { 2, 3817, 4404, 14, 3, UNI_NV__13_SLASH_2 } /* numericvalue=13/2 */,
+ { 12, 253, 934, 4, 2, -UNI_CWCF } /* cwcf=f */,
+ { 0, 5205, 7825, 5, 30, UNI_MATHALPHANUM } /* blk=mathematicalalphanumericsymbols */,
+ { 0, 6165, 5031, 3, 14, UNI_SC__ROHG } /* sc=hanifirohingya */,
+ { 1, 1667, 1117, 4, 8, UNI_INTAGBANWA } /* blk=tagbanwa */,
+ { 6, 4970, 934, 13, 2, -UNI_EMOD } /* emojimodifier=f */,
+ { 0, 1823, 470, 7, 4, UNI_TNSA } /* script=tnsa */,
+ { 4, 309, 2182, 2, 2, UNI_IN__4 } /* in=4 */,
+ { 8, 517, 3846, 4, 2, UNI_NV__7_SLASH_8 } /* nv=7/8 */,
+ { 0, 1102, 1255, 4, 7, UNI_SIDD } /* scx=siddham */,
+ { 4, 3514, 4987, 7, 16, UNI_ALCHEMICAL } /* block=alchemicalsymbols */,
+ { 4, 309, 7796, 2, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* inenclosedideographicsup */,
+ { 1, 1823, 634, 7, 7, UNI_SC__HANO } /* script=hanunoo */,
+ { 0, 5895, 6965, 5, 22, UNI_SUPERANDSUB } /* issuperscriptsandsubscripts */,
+ { 27, 461, 1340, 2, 9, UNI_ORKH } /* isoldturkic */,
+ { 2, 2434, 1505, 7, 4, UNI_MYANMAREXTA } /* myanmarexta */,
+ { 3, 1102, 1592, 4, 4, UNI_SAUR } /* scx=saur */,
+ { 0, 6165, 1003, 3, 4, UNI_LEPC } /* sc=lepc */,
+ { 3, 6163, 3289, 14, 5, UNI_INSC__CONSONANTFINAL } /* insc=consonantfinal */,
+ { 3, 1726, 1141, 8, 3, UNI_ARABICPFA } /* isarabicpfa */,
+ { 2, 1667, 426, 4, 3, UNI_INMRO } /* blk=mro */,
+ { 2, 6165, 4651, 3, 8, UNI_SC__BOPO } /* sc=bopomofo */,
+ { 36, 4424, 975, 17, 8, UNI_GURU } /* scriptextensions=gurmukhi */,
+ { 1, 8538, 5981, 19, 19, UNI_VO__TR } /* verticalorientation=transformedrotated */,
+ { 0, 10, 2643, 1, 12, UNI_MISCTECHNICAL } /* misctechnical */,
+ { 2, 8343, 6923, 31, 11, UNI_INSC__CONSONANTPLACEHOLDER } /* indicsyllabiccategory=consonantplaceholder */,
+ { 2, 6816, 353, 25, 4, UNI_CWKCF } /* changeswhennfkccasefolded=yes */,
+ { 20, 30, 2255, 1, 9, UNI_PHAISTOS } /* inphaistos */,
+ { 40, 1102, 220, 4, 4, UNI_WCHO } /* scx=wcho */,
+ { 5, 2287, 2083, 4, 2, UNI_IN__1_DOT_1 } /* in=1.1 */,
+ { 16, 339, 5515, 4, 13, UNI_CCC__202 } /* ccc=attachedbelow */,
+ { 6, 7383, 2424, 10, 2, UNI_BC__CS } /* bidiclass=cs */,
+ { 5, 1530, 324, 6, 3, UNI_KANASUP } /* iskanasup */,
+ { 0, 1102, 55, 4, 4, UNI_CHAM } /* scx=cham */,
+ { 1, 7591, 119, 3, 2, UNI_LB__AL } /* lb=al */,
+ { 18, 5255, 934, 20, 2, -UNI_EXTPICT } /* extendedpictographic=f */,
+ { 2, 552, 140, 4, 2, UNI_IN__NA } /* age=na */,
+ { 28, 1667, 6581, 4, 16, UNI_INDICNUMBERFORMS } /* blk=indicnumberforms */,
+ { 72, 2494, 958, 9, 4, UNI_GEORGIANEXT } /* isgeorgianext */,
+ { 0, 4424, 868, 17, 4, UNI_TIRH } /* scriptextensions=tirh */,
+ { 1, 6062, 7915, 7, 20, UNI_ENCLOSEDALPHANUM } /* block=enclosedalphanumerics */,
+ { 3, 4424, 4271, 17, 17, UNI_KITS } /* scriptextensions=khitansmallscript */,
+ { 1, 4424, 5958, 17, 4, UNI_SINH } /* scriptextensions=sinh */,
+ { 8, 309, 4926, 2, 15, UNI_TAMILSUP } /* intamilsupplement */,
+ { 80, 833, 934, 4, 6, -UNI_TERM } /* term=false */,
+ { 0, 1396, 585, 4, 5, UNI_XIDS } /* xids=true */,
+ { 3, 4424, 86, 17, 4, UNI_GREK } /* scriptextensions=grek */,
+ { 2, 224, 1660, 3, 7, UNI_XPOSIXSPACE } /* xperlspace */,
+ { 1, 3391, 1071, 13, 4, UNI_NV__1_SLASH_12 } /* numericvalue=1/12 */,
+ { 0, 1102, 854, 4, 7, UNI_TAVT } /* scx=taiviet */,
+ { 2, 7011, 1317, 24, 2, UNI_CCC__32 } /* canonicalcombiningclass=32 */,
+ { 34, 1823, 35, 7, 4, UNI_BATK } /* script=batk */,
+ { 0, 6165, 537, 3, 4, UNI_TANG } /* sc=tang */,
+ { 1, 5156, 65, 10, 2, UNI_WB__MN } /* wordbreak=mn */,
+ { 0, 4360, 2966, 10, 11, UNI_LB__IN } /* linebreak=inseparable */,
+ { 0, 54, 1829, 2, 5, UNI_SC__MLYM } /* sc=mlym */,
+ { 8, 1667, 3325, 4, 6, UNI_INHEBREW } /* blk=hebrew */,
+ { 0, 220, 0, 4, 0, UNI_WCHO } /* wcho */,
+ { 1, 461, 4536, 2, 18, UNI_COPTICEPACTNUMBERS } /* iscopticepactnumbers */,
+ { 2, 4424, 663, 17, 5, UNI_LIMB } /* scriptextensions=limbu */,
+ { 1, 33, 189, 1, 3, UNI_SGNW } /* sgnw */,
+ { 0, 3490, 6193, 10, 5, UNI_CYRILLICSUP } /* blk=cyrillicsup */,
+ { 0, 6163, 2823, 5, 9, UNI_INSC__NONJOINER } /* insc=nonjoiner */,
+ { 3, 309, 590, 2, 7, UNI_DSRT } /* indeseret */,
+ { 0, 1667, 4819, 4, 8, UNI_DINGBATS } /* blk=dingbats */,
+ { 0, 5156, 366, 10, 2, UNI_WB__SQ } /* wordbreak=sq */,
+ { 1, 6618, 5125, 12, 5, UNI_INPC__TOPANDBOTTOM } /* inpc=topandbottom */,
+ { 0, 3832, 0, 14, 0, UNI_NV__5 } /* numericvalue=5 */,
+ { 5, 6165, 746, 3, 4, UNI_MARC } /* sc=marc */,
+ { 1, 940, 599, 6, 3, -UNI_COMPEX } /* compex=no */,
+ { 0, 1823, 5391, 7, 8, UNI_CHER } /* script=cherokee */,
+ { 0, 1994, 934, 7, 6, -UNI_RADICAL } /* radical=false */,
+ { 1, 7274, 248, 9, 2, UNI_CN } /* category=cn */,
+ { 16, 30, 4190, 1, 3, UNI_LO } /* islo */,
+ { 1, 461, 3706, 2, 14, UNI_MN } /* isnonspacingmark */,
+ { 3, 7591, 1479, 3, 5, UNI_LB__SP } /* lb=space */,
+ { 0, 8246, 0, 24, 0, UNI_inpc_values_index } /* indicpositionalcategory= */,
+ { 0, 6450, 1613, 14, 2, UNI_SB__FO } /* sentencebreak=fo */,
+ { 4, 30, 3094, 1, 3, UNI_CI } /* isci */,
+ { 0, 2432, 5107, 3, 18, UNI_MODIFIERTONELETTERS } /* inmodifiertoneletters */,
+ { 0, 2494, 5863, 7, 6, UNI_GEORGIANSUP } /* isgeorgiansup */,
+ { 0, 608, 0, 4, 0, UNI_ELBA } /* elba */,
+ { 2, 7267, 1926, 16, 6, UNI_S } /* generalcategory=symbol */,
+ { 0, 3635, 204, 7, 2, UNI_LATINEXTF } /* latinextf */,
+ { 3, 683, 0, 5, 0, UNI_TAKR } /* takri */,
+ { 1, 339, 1316, 5, 2, UNI_CCC__103 } /* ccc=103 */,
+ { 1, 6427, 6215, 13, 9, UNI_JG__YEHBARREE } /* joininggroup=yehbarree */,
+ { 1, 6165, 446, 3, 4, UNI_PHLI } /* sc=phli */,
+ { 0, 309, 1509, 2, 8, UNI_INJAVANESE } /* injavanese */,
+ { 6, 1198, 377, 5, 4, UNI_CJKEXTH } /* incjkexth */,
+ { 5, 8246, 8507, 23, 7, UNI_INPC__BOTTOM } /* indicpositionalcategory=bottom */,
+ { 2, 1102, 216, 4, 4, UNI_TOTO } /* scx=toto */,
+ { 1, 1801, 0, 6, 0, UNI_NV__100 } /* nv=100 */,
+ { 0, 1272, 358, 3, 5, UNI_CAKM } /* ischakma */,
+ { 4, 1102, 868, 4, 4, UNI_TIRH } /* scx=tirh */,
+ { 16, 1823, 3325, 7, 4, UNI_HEBR } /* script=hebr */,
+ { 24, 7887, 0, 22, 0, UNI_CJK } /* incjkunifiedideographs */,
+ { 3, 461, 6581, 2, 16, UNI_INDICNUMBERFORMS } /* isindicnumberforms */,
+ { 14, 5031, 0, 4, 0, UNI_HAN } /* hani */,
+ { 0, 3001, 3001, 12, 7, UNI_NT__NU } /* numerictype=numeric */,
+ { 32464, 4502, 4659, 9, 9, UNI_LATINEXTC } /* blk=latinextendedc */,
+ { 4, 8601, 8001, 7, 29, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* block=symbolsandpictographsextendeda */,
+ { 2, 2718, 305, 3, 2, UNI_BC__WS } /* bc=ws */,
+ { 0, 2, 933, 1, 3, -UNI_CE } /* ce=f */,
+ { 0, 2732, 7545, 8, 20, UNI_ARABICPFA } /* blk=arabicpresentationformsa */,
+ { 0, 5532, 353, 21, 2, UNI_CWCF } /* changeswhencasefolded=y */,
+ { 0, 2018, 6621, 4, 3, UNI_JOINC } /* joinc=t */,
+ { 0, 1667, 1966, 5, 9, UNI_COMPATJAMO } /* blk=compatjamo */,
+ { 3, 461, 1635, 2, 4, UNI_WARA } /* iswara */,
+ { 0, 4360, 153, 10, 2, UNI_LB__SG } /* linebreak=sg */,
+ { 2, 3490, 4659, 12, 9, UNI_CYRILLICEXTC } /* blk=cyrillicextendedc */,
+ { 10, 1823, 1543, 7, 4, UNI_KHAR } /* script=khar */,
+ { 0, 1424, 1317, 8, 2, UNI_CCC__132 } /* ccc=ccc132 */,
+ { 0, 1492, 6945, 5, 20, UNI_GEOMETRICSHAPESEXT } /* ingeometricshapesextended */,
+ { 2, 2752, 598, 13, 4, -UNI_ECOMP } /* emojicomponent=no */,
+ { 0, 2, 5694, 1, 18, UNI_COUNTINGROD } /* countingrodnumerals */,
+ { 5, 2324, 5283, 6, 9, UNI_HALFMARKS } /* block=halfmarks */,
+ { 0, 4584, 934, 18, 2, -UNI_IDST } /* idstrinaryoperator=f */,
+ { 3, 1455, 353, 10, 2, UNI_DEP } /* deprecated=y */,
+ { 0, 292, 1314, 4, 3, UNI_NV__9000 } /* nv=9000 */,
+ { 0, 7274, 2768, 8, 6, UNI_C } /* category=other */,
+ { 3, 309, 653, 2, 5, UNI_INBUHID } /* inbuhid */,
+ { 17, 406, 353, 3, 4, UNI_DIA } /* dia=yes */,
+ { 0, 1409, 4698, 4, 5, UNI_LATIN1 } /* latin1sup */,
+ { 1, 2324, 7356, 6, 27, UNI_OCR } /* block=opticalcharacterrecognition */,
+ { 7, 30, 6796, 1, 5, UNI_DEVA } /* isdeva */,
+ { 40, 2004, 1942, 5, 5, UNI_POSIXGRAPH } /* posixgraph */,
+ { 4, 5637, 0, 21, 0, UNI_gcb_values_index } /* graphemeclusterbreak= */,
+ { 2, 1454, 0, 2, 0, UNI_SD } /* sd */,
+ { 9, 3677, 3773, 3, 15, UNI_LINEARBIDEOGRAMS } /* islinearbideograms */,
+ { 2, 461, 326, 2, 2, UNI_PF } /* ispf */,
+ { 6, 2180, 0, 4, 0, UNI_NV__4 } /* nv=4 */,
+ { 15, 4795, 1805, 14, 5, UNI_NV__600000 } /* numericvalue=600000 */,
+ { 4, 461, 4176, 2, 4, UNI_HANG } /* ishang */,
+ { 1, 6165, 1227, 3, 7, UNI_MAKA } /* sc=makasar */,
+ { 3, 2536, 2886, 3, 11, UNI_JG__YEHWITHTAIL } /* jg=yehwithtail */,
+ { 5, 1367, 0, 4, 0, UNI_PAUC } /* pauc */,
+ { 0, 1667, 5440, 4, 20, UNI_INNYIAKENGPUACHUEHMONG } /* blk=nyiakengpuachuehmong */,
+ { 3, 1823, 608, 7, 7, UNI_ELBA } /* script=elbasan */,
+ { 3, 0, 2619, 1, 12, UNI_LOWSURROGATES } /* lowsurrogates */,
+ { 20, 6090, 1037, 13, 4, UNI_MYANMAREXTB } /* block=myanmarextb */,
+ { 0, 1667, 2468, 4, 6, UNI_IPAEXT } /* blk=ipaext */,
+ { 32, 339, 5515, 4, 17, UNI_WB__EB } /* ccc=attachedbelowleft */,
+ { 1, 309, 6185, 2, 13, UNI_GLAGOLITICSUP } /* inglagoliticsup */,
+ { 0, 4424, 3954, 17, 17, UNI_AGHB } /* scriptextensions=caucasianalbanian */,
+ { 9, 1667, 283, 4, 5, UNI_INNUSHU } /* blk=nushu */,
+ { 1, 2287, 546, 4, 3, UNI_IN__13 } /* in=13.0 */,
+ { 2, 5216, 4344, 7, 16, UNI_LETTERLIKESYMBOLS } /* block=letterlikesymbols */,
+ { 3, 30, 5390, 1, 19, UNI_CHEROKEESUP } /* ischerokeesupplement */,
+ { 1, 6165, 5391, 3, 4, UNI_CHER } /* sc=cher */,
+ { 1, 4424, 3325, 17, 6, UNI_HEBR } /* scriptextensions=hebrew */,
+ { 0, 6165, 357, 3, 6, UNI_SC__CAKM } /* sc=chakma */,
+ { 1, 461, 1334, 2, 4, UNI_PERM } /* isperm */,
+ { 1, 3554, 0, 13, 0, UNI_ZL } /* lineseparator */,
+ { 2, 7274, 0, 9, 2, UNI_CASEDLETTER } /* category=l& */,
+ { 8, 1667, 4131, 4, 15, UNI_VEDICEXT } /* blk=vedicextensions */,
+ { 1, 3633, 204, 9, 2, UNI_LATINEXTF } /* inlatinextf */,
+ { 1, 430, 0, 3, 0, UNI_NKO } /* nko */,
+ { 14, 339, 2029, 3, 3, UNI_CCC__BR } /* ccc=br */,
+ { 4, 461, 2531, 2, 5, UNI_XPOSIXBLANK } /* isblank */,
+ { 2, 1667, 5857, 4, 19, UNI_MONGOLIANSUP } /* blk=mongoliansupplement */,
+ { 0, 925, 598, 2, 3, UNI_BPT__N } /* bpt=n */,
+ { 0, 7198, 5149, 16, 7, UNI_SUPARROWSA } /* blk=supplementalarrowsa */,
+ { 4, 6165, 825, 3, 7, UNI_SHAW } /* sc=shavian */,
+ { 17, 1823, 4060, 7, 7, UNI_BRAI } /* script=braille */,
+ { 2, 6165, 1303, 3, 9, UNI_TALU } /* sc=newtailue */,
+ { 2, 2536, 636, 3, 3, UNI_JG__NUN } /* jg=nun */,
+ { 10, 7383, 143, 10, 2, UNI_BC__BN } /* bidiclass=bn */,
+ { 0, 832, 353, 5, 4, UNI_STERM } /* sterm=yes */,
+ { 0, 4502, 2619, 5, 12, UNI_LOWSURROGATES } /* blk=lowsurrogates */,
+ { 0, 2324, 590, 6, 7, UNI_DSRT } /* block=deseret */,
+ { 51, 6165, 818, 3, 7, UNI_SC__SHRD } /* sc=sharada */,
+ { 1, 2766, 6324, 3, 6, UNI_CF } /* gc=format */,
+ { 0, 3130, 2370, 5, 12, UNI_GREEKEXT } /* blk=greekextended */,
+ { 5, 552, 2234, 3, 2, UNI_AGE__8 } /* age=8 */,
+ { 1, 3514, 1723, 12, 3, UNI_ARABICPFB } /* block=arabicpfb */,
+ { 18, 6165, 814, 3, 4, UNI_SC__QAAI } /* sc=zinh */,
+ { 0, 786, 0, 4, 0, UNI_HMNP } /* hmnp */,
+ { 0, 7267, 65, 16, 2, UNI_MN } /* generalcategory=mn */,
+ { 0, 461, 6841, 2, 25, UNI_DI } /* isdefaultignorablecodepoint */,
+ { 15, 1618, 353, 10, 4, UNI_SD } /* softdotted=yes */,
+ { 15, 597, 128, 3, 3, UNI_DT__MED } /* dt=med */,
+ { 5, 406, 599, 3, 2, -UNI_DIA } /* dia=n */,
+ { 3, 309, 3538, 2, 16, UNI_CYPRIOTSYLLABARY } /* incypriotsyllabary */,
+ { 37, 5216, 81, 13, 2, UNI_LATINEXTG } /* block=latinextg */,
+ { 3, 8538, 1626, 29, 9, UNI_VO__TU } /* verticalorientation=transformedupright */,
+ { 2, 6427, 2549, 13, 10, UNI_JG__DALATHRISH } /* joininggroup=dalathrish */,
+ { 8, 160, 162, 2, 2, UNI_PHLP } /* phlp */,
+ { 5, 2752, 585, 5, 5, UNI_EMOJI } /* emoji=true */,
+ { 0, 2324, 1037, 9, 4, UNI_CJKEXTB } /* block=cjkextb */,
+ { 42, 1667, 1367, 4, 9, UNI_INPAUCINHAU } /* blk=paucinhau */,
+ { 0, 3677, 1674, 7, 4, UNI_LATINEXTD } /* islatinextd */,
+ { 8, 2324, 1303, 6, 9, UNI_INNEWTAILUE } /* block=newtailue */,
+ { 0, 1562, 0, 10, 0, UNI_NAGM } /* nagmundari */,
+ { 1, 4360, 2017, 10, 2, UNI_LB__WJ } /* linebreak=wj */,
+ { 0, 7274, 1926, 9, 6, UNI_S } /* category=symbol */,
+ { 0, 8538, 5993, 20, 7, UNI_VO__R } /* verticalorientation=rotated */,
+ { 4, 1667, 1021, 4, 6, UNI_INWANCHO } /* blk=wancho */,
+ { 5, 1667, 7111, 5, 23, UNI_DIACRITICALSFORSYMBOLS } /* blk=combiningmarksforsymbols */,
+ { 0, 1823, 1376, 7, 9, UNI_SAMR } /* script=samaritan */,
+ { 0, 229, 4457, 2, 15, UNI_SUTTONSIGNWRITING } /* suttonsignwriting */,
+ { 0, 1734, 0, 3, 0, UNI_S } /* iss */,
+ { 0, 30, 6691, 1, 23, UNI_TRANSPORTANDMAP } /* istransportandmapsymbols */,
+ { 0, 2301, 584, 10, 3, UNI_XIDC } /* xidcontinue=t */,
+ { 5, 2324, 1975, 6, 10, UNI_INOLDSOGDIAN } /* block=oldsogdian */,
+ { 5, 4360, 277, 10, 2, UNI_LB__H2 } /* linebreak=h2 */,
+ { 61144, 3514, 1037, 12, 4, UNI_ARABICEXTB } /* block=arabicextb */,
+ { 0, 38, 662, 1, 3, UNI_KALI } /* kali */,
+ { 3, 1994, 353, 7, 2, UNI_RADICAL } /* radical=y */,
+ { 1, 21, 598, 2, 4, -UNI_EXT } /* ext=no */,
+ { 1, 2503, 274, 11, 1, UNI_joinc_values_index } /* joincontrol= */,
+ { 0, 4424, 967, 17, 8, UNI_GUJR } /* scriptextensions=gujarati */,
+ { 0, 3391, 2289, 12, 3, UNI_NV__14 } /* numericvalue=14 */,
+ { 3, 1102, 880, 4, 7, UNI_ZZZZ } /* scx=unknown */,
+ { 0, 461, 3791, 2, 4, UNI_MATH } /* ismath */,
+ { 18, 1200, 8474, 3, 23, UNI_CJKCOMPATIDEOGRAPHS } /* cjkcompatibilityideographs */,
+ { 4, 1667, 1205, 4, 7, UNI_INGRANTHA } /* blk=grantha */,
+ { 4, 3391, 2146, 13, 9, UNI_NV__3_SLASH_20 } /* numericvalue=1.500e-01 */,
+ { 1, 461, 658, 2, 5, UNI_DOGR } /* isdogra */,
+ { 4, 1198, 8407, 3, 34, UNI_DIACRITICALSFORSYMBOLS } /* incombiningdiacriticalmarksforsymbols */,
+ { 0, 3514, 2312, 7, 12, UNI_AEGEANNUMBERS } /* block=aegeannumbers */,
+ { 3, 7564, 0, 27, 0, UNI_ANCIENTGREEKMUSIC } /* ancientgreekmusicalnotation */,
+ { 0, 1102, 1509, 4, 4, UNI_JAVA } /* scx=java */,
+ { 4, 1102, 983, 4, 4, UNI_HIRA } /* scx=hira */,
+ { 2, 8343, 5003, 22, 14, UNI_INSC__GEMINATIONMARK } /* indicsyllabiccategory=geminationmark */,
+ { 0, 309, 4090, 2, 17, UNI_INDICSIYAQNUMBERS } /* inindicsiyaqnumbers */,
+ { 0, 4569, 584, 8, 3, UNI_XPOSIXUPPER } /* uppercase=t */,
+ { 0, 1942, 352, 11, 5, UNI_GRBASE } /* graphemebase=yes */,
+ { 4, 461, 4862, 2, 4, UNI_RUMI } /* isrumi */,
+ { 9, 6090, 8374, 7, 33, UNI_MISCPICTOGRAPHS } /* block=miscellaneoussymbolsandpictographs */,
+ { 3, 271, 599, 2, 2, UNI_N } /* gc=n */,
+ { 1, 880, 0, 7, 0, UNI_ZZZZ } /* unknown */,
+ { 2, 461, 3908, 2, 6, UNI_TANG } /* istangut */,
+ { 0, 1065, 2147, 4, 8, UNI_NV__3_SLASH_20 } /* nv=1.500e-01 */,
+ { 0, 6450, 3001, 14, 7, UNI_SB__NU } /* sentencebreak=numeric */,
+ { 0, 4424, 6154, 17, 9, UNI_XSUX } /* scriptextensions=cuneiform */,
+ { 1, 398, 0, 4, 0, UNI_MIAO } /* miao */,
+ { 0, 5156, 1652, 10, 7, UNI_WB__NL } /* wordbreak=newline */,
+ { 1, 552, 546, 4, 3, UNI_AGE__3 } /* age=3.0 */,
+ { 1, 4424, 5391, 17, 4, UNI_CHER } /* scriptextensions=cher */,
+ { 2, 4424, 901, 17, 8, UNI_ARMN } /* scriptextensions=armenian */,
+ { 0, 2766, 3276, 3, 13, UNI_ME } /* gc=enclosingmark */,
+ { 6, 2678, 387, 11, 2, UNI_IN__5_DOT_2 } /* presentin=5.2 */,
+ { 18, 6165, 98, 3, 4, UNI_HLUW } /* sc=hluw */,
+ { 0, 461, 4461, 2, 11, UNI_SGNW } /* issignwriting */,
+ { 0, 7648, 1715, 18, 8, UNI_DT__ISO } /* decompositiontype=isolated */,
+ { 8, 7591, 7111, 4, 12, UNI_LB__CM } /* lb=combiningmark */,
+ { 0, 2536, 714, 3, 4, UNI_JG__ZAIN } /* jg=zain */,
+ { 1, 5168, 6757, 6, 19, UNI__PERL_FOLDS_TO_MULTI_CHAR } /* _perl_folds_to_multi_char */,
+ { 3, 1667, 1484, 4, 8, UNI_INBUGINESE } /* blk=buginese */,
+ { 2, 461, 1572, 2, 10, UNI_XPEO } /* isoldpersian */,
+ { 2, 4424, 1358, 17, 9, UNI_PALM } /* scriptextensions=palmyrene */,
+ { 1, 309, 3908, 2, 16, UNI_TANGUTCOMPONENTS } /* intangutcomponents */,
+ { 56, 4, 0, 2, 0, UNI_LO } /* lo */,
+ { 0, 7591, 6224, 3, 12, UNI_LB__SY } /* lb=breaksymbols */,
+ { 24, 1424, 395, 7, 2, UNI_CCC__16 } /* ccc=ccc16 */,
+ { 0, 6165, 333, 3, 6, UNI_CARI } /* sc=carian */,
+ { 49, 8601, 5149, 9, 7, UNI_SUPARROWSA } /* block=suparrowsa */,
+ { 5, 493, 0, 6, 0, UNI_KHOJ } /* khojki */,
+ { 0, 5939, 599, 5, 3, -UNI__PERL_NCHAR } /* nchar=no */,
+ { 2, 3724, 1876, 12, 3, UNI_JG__MALAYALAMLLA } /* jg=malayalamlla */,
+ { 7, 2280, 2234, 9, 2, UNI_IN__8 } /* presentin=8 */,
+ { 3, 7274, 2317, 9, 6, UNI_N } /* category=number */,
+ { 5, 533, 4569, 3, 5, UNI_SB__UP } /* sb=upper */,
+ { 0, 1494, 0, 4, 0, UNI_GEOR } /* geor */,
+ { 2, 1823, 4651, 7, 4, UNI_SC__BOPO } /* script=bopo */,
+ { 0, 4371, 5671, 5, 3, -UNI_XPOSIXSPACE } /* wspace=n */,
+ { 1, 578, 290, 5, 1, UNI_CCC__24 } /* ccc=24 */,
+ { 0, 461, 725, 2, 7, UNI_KALI } /* iskayahli */,
+ { 45931, 7267, 4569, 16, 15, UNI_UPPERCASELETTER } /* generalcategory=uppercaseletter */,
+ { 0, 4191, 274, 5, 1, UNI_lower_values_index } /* lower= */,
+ { 0, 1734, 4710, 3, 8, UNI_SYRIACSUP } /* issyriacsup */,
+ { 3, 266, 934, 3, 2, -UNI_CWT } /* cwt=f */,
+ { 0, 1272, 56, 3, 3, UNI_CHAM } /* ischam */,
+ { 1, 309, 5857, 2, 12, UNI_MONGOLIANSUP } /* inmongoliansup */,
+ { 3, 517, 2147, 4, 8, UNI_NV__3_SLASH_4 } /* nv=7.500e-01 */,
+ { 0, 339, 8640, 4, 18, UNI_CCC__216 } /* ccc=attachedaboveright */,
+ { 2, 6870, 599, 20, 3, -UNI_CE } /* compositionexclusion=no */,
+ { 34, 3101, 0, 5, 0, UNI_XPOSIXDIGIT } /* digit */,
+ { 1, 1728, 1141, 6, 3, UNI_ARABICPFA } /* arabicpfa */,
+ { 21, 7648, 946, 18, 5, UNI_DT__SUP } /* decompositiontype=super */,
+ { 21, 2324, 1021, 6, 6, UNI_INWANCHO } /* block=wancho */,
+ { 10, 1391, 2487, 5, 7, UNI_WB__ML } /* wb=midletter */,
+ { 0, 4161, 0, 15, 0, UNI_DIACRITICALSEXT } /* diacriticalsext */,
+ { 0, 3490, 1674, 12, 4, UNI_CYRILLICEXTD } /* blk=cyrillicextd */,
+ { 0, 7011, 5523, 24, 5, UNI_CCC__B } /* canonicalcombiningclass=below */,
+ { 14, 461, 5068, 2, 10, UNI_MANI } /* ismanichaean */,
+ { 1, 1102, 901, 4, 8, UNI_ARMN } /* scx=armenian */,
+ { 0, 1823, 4176, 7, 4, UNI_SC__HANG } /* script=hang */,
+ { 0, 1102, 3475, 4, 15, UNI_ZANB } /* scx=zanabazarsquare */,
+ { 0, 1667, 4620, 4, 16, UNI_LINEARBSYLLABARY } /* blk=linearbsyllabary */,
+ { 2, 1102, 1051, 4, 8, UNI_MAHJ } /* scx=mahajani */,
+ { 2, 10, 137, 1, 3, UNI_MYMR } /* mymr */,
+ { 12, 4424, 868, 17, 7, UNI_TIRH } /* scriptextensions=tirhuta */,
+ { 1, 2018, 3313, 12, 12, UNI_JT__R } /* joiningtype=rightjoining */,
+ { 12, 4487, 0, 6, 0, UNI_ZYYY } /* common */,
+ { 32, 5574, 599, 21, 2, -UNI_CWL } /* changeswhenlowercased=n */,
+ { 3, 461, 2256, 2, 12, UNI_PHAISTOS } /* isphaistosdisc */,
+ { 56, 1090, 0, 4, 0, UNI_LINB } /* linb */,
+ { 0, 2988, 353, 13, 4, UNI_NFCQC__Y } /* nfcquickcheck=yes */,
+ { 0, 1667, 56, 5, 3, UNI_INCHAM } /* blk=cham */,
+ { 0, 533, 36, 3, 2, UNI_SB__AT } /* sb=at */,
+ { 3, 1102, 5876, 4, 9, UNI_SUND } /* scx=sundanese */,
+ { 6, 4191, 584, 8, 3, UNI_XPOSIXLOWER } /* lowercase=t */,
+ { 0, 30, 5711, 1, 3, UNI_ME } /* isme */,
+ { 3, 6165, 2782, 5, 4, UNI_SC__COPT } /* sc=coptic */,
+ { 10, 1667, 2068, 4, 12, UNI_INMENDEKIKAKUI } /* blk=mendekikakui */,
+ { 3, 7467, 0, 28, 0, UNI_SUPPUAA } /* supplementaryprivateuseareaa */,
+ { 0, 3803, 599, 14, 2, UNI_NFKCQC__N } /* nfkcquickcheck=n */,
+ { 0, 1102, 15, 4, 4, UNI_AGHB } /* scx=aghb */,
+ { 2, 309, 5778, 2, 21, UNI_ININSCRIPTIONALPARTHIAN } /* ininscriptionalparthian */,
+ { 0, 302, 524, 3, 3, UNI_PATSYN } /* patsyn */,
+ { 24, 1667, 7449, 4, 18, UNI_PHONETICEXT } /* blk=phoneticextensions */,
+ { 0, 1823, 3954, 7, 17, UNI_AGHB } /* script=caucasianalbanian */,
+ { 1, 1954, 0, 12, 0, UNI_GONG } /* gunjalagondi */,
+ { 1, 2382, 2720, 2, 2, UNI_VO__R } /* vo=r */,
+ { 0, 461, 398, 2, 4, UNI_MIAO } /* ismiao */,
+ { 5, 7591, 2930, 3, 2, UNI_GCB__T } /* lb=jt */,
+ { 0, 1174, 140, 3, 2, UNI_EA__NA } /* ea=na */,
+ { 16, 2324, 474, 6, 3, UNI_INVAI } /* block=vai */,
+ { 36, 2324, 648, 6, 5, UNI_INADLAM } /* block=adlam */,
+ { 2, 1883, 0, 5, 0, UNI_BIDIC } /* bidic */,
+ { 16, 1667, 537, 4, 6, UNI_INTANGSA } /* blk=tangsa */,
+ { 3, 309, 5857, 2, 9, UNI_INMONGOLIAN } /* inmongolian */,
+ { 14, 4424, 1090, 17, 4, UNI_LINB } /* scriptextensions=linb */,
+ { 29, 6165, 1191, 3, 7, UNI_SC__BENG } /* sc=bengali */,
+ { 1, 208, 0, 4, 0, UNI_TGLG } /* tglg */,
+ { 12, 2324, 4161, 6, 15, UNI_DIACRITICALSEXT } /* block=diacriticalsext */,
+ { 1, 8343, 3289, 31, 5, UNI_INSC__CONSONANTFINAL } /* indicsyllabiccategory=consonantfinal */,
+ { 0, 7449, 0, 18, 0, UNI_PHONETICEXT } /* phoneticextensions */,
+ { 0, 6163, 3253, 5, 10, UNI_INSC__PUREKILLER } /* insc=purekiller */,
+ { 0, 10, 8039, 1, 32, UNI_MISCMATHSYMBOLSA } /* miscellaneousmathematicalsymbolsa */,
+ { 0, 2324, 430, 6, 3, UNI_INNKO } /* block=nko */,
+ { 3, 5156, 652, 10, 2, UNI_WB__MB } /* wordbreak=mb */,
+ { 3, 1823, 1325, 7, 4, UNI_ITAL } /* script=ital */,
+ { 3, 461, 199, 2, 2, UNI_TITLE } /* islt */,
+ { 1, 19, 353, 4, 4, UNI_POSIXXDIGIT } /* ahex=yes */,
+ { 0, 2505, 8568, 4, 33, UNI_DIACRITICALSSUP } /* incombiningdiacriticalmarkssupplement */,
+ { 5, 3021, 891, 5, 2, UNI_IN__11 } /* in=v110 */,
+ { 0, 2930, 12, 3, 1, UNI_JT__D } /* jt=d */,
+ { 3, 309, 7467, 2, 28, UNI_SUPPUAA } /* insupplementaryprivateuseareaa */,
+ { 32, 3021, 1313, 4, 2, UNI_IN__6 } /* in=v60 */,
+ { 2, 2360, 2367, 7, 3, UNI_CN } /* unassigned */,
+ { 0, 5838, 0, 19, 0, UNI_JAMOEXTA } /* hanguljamoextendeda */,
+ { 3, 2752, 2931, 13, 3, UNI_ECOMP } /* emojicomponent=t */,
+ { 0, 461, 663, 2, 4, UNI_LIMB } /* islimb */,
+ { 1, 2401, 5848, 10, 9, UNI_ETHIOPICEXTA } /* inethiopicextendeda */,
+ { 2, 3817, 0, 14, 0, UNI_NV__1 } /* numericvalue=1 */,
+ { 15, 309, 1322, 2, 9, UNI_INOLDITALIC } /* inolditalic */,
+ { 1, 2769, 0, 5, 0, UNI_C } /* other */,
+ { 1, 10, 1235, 1, 6, UNI_MULT } /* multani */,
+ { 1, 2324, 4911, 6, 15, UNI_DIACRITICALSSUP } /* block=diacriticalssup */,
+ { 6, 1102, 732, 4, 7, UNI_LINA } /* scx=lineara */,
+ { 0, 1133, 0, 8, 0, UNI_VITH } /* vithkuqi */,
+ { 4, 7011, 2029, 23, 3, UNI_CCC__BR } /* canonicalcombiningclass=br */,
+ { 1, 309, 6514, 2, 10, UNI_PUA } /* inprivateuse */,
+ { 0, 6597, 0, 4, 0, UNI_CE } /* isce */,
+ { 2, 461, 782, 2, 3, UNI_ANY } /* isany */,
+ { 2, 461, 3692, 2, 14, UNI_LISUSUP } /* islisusupplement */,
+ { 0, 1102, 283, 4, 5, UNI_NSHU } /* scx=nushu */,
+ { 0, 461, 7796, 2, 22, UNI_ENCLOSEDIDEOGRAPHICSUP } /* isenclosedideographicsup */,
+ { 6, 6165, 861, 3, 7, UNI_TIBT } /* sc=tibetan */,
+ { 16, 1102, 232, 4, 4, UNI_YI } /* scx=yiii */,
+ { 0, 3514, 3790, 11, 5, UNI_ARABICMATH } /* block=arabicmath */,
+ { 0, 261, 585, 5, 2, UNI_CWKCF } /* cwkcf=t */,
+ { 0, 5637, 7134, 21, 7, UNI_GCB__PP } /* graphemeclusterbreak=prepend */,
+ { 1, 2536, 487, 3, 3, UNI_JG__REH } /* jg=reh */,
+ { 1, 283, 0, 5, 0, UNI_NSHU } /* nushu */,
+ { 1, 32, 323, 1, 4, UNI_VSSUP } /* vssup */,
+ { 1, 1065, 295, 5, 1, UNI_NV__1_SLASH_9 } /* nv=1/9 */,
+ { 0, 5658, 1396, 18, 3, UNI_IDENTIFIERTYPE__NOTXID } /* identifiertype=notxid */,
+ { 0, 6236, 0, 19, 0, UNI_NV__100000 } /* numericvalue=100000 */,
+ { 0, 7267, 3276, 16, 13, UNI_ME } /* generalcategory=enclosingmark */,
+ { 0, 833, 585, 4, 2, UNI_TERM } /* term=t */,
+ { 0, 7648, 140, 18, 3, UNI_DT__NAR } /* decompositiontype=nar */,
+ { 0, 4651, 0, 4, 0, UNI_BOPO } /* bopo */,
+ { 1, 317, 857, 3, 4, UNI_TAVT } /* taiviet */,
+ { 1, 2766, 99, 3, 2, UNI_UPPERCASELETTER } /* gc=lu */,
+ { 0, 309, 5068, 2, 10, UNI_INMANICHAEAN } /* inmanichaean */,
+ { 8, 2718, 1715, 14, 7, UNI_BC__RLI } /* bc=righttoleftisolate */,
+ { 32, 461, 1635, 2, 10, UNI_WARA } /* iswarangciti */,
+ { 1, 5939, 0, 5, 0, UNI__PERL_NCHAR } /* nchar */,
+ { 5, 505, 599, 5, 2, UNI_DT__CAN } /* nfdqc=n */,
+ { 0, 2324, 663, 6, 5, UNI_INLIMBU } /* block=limbu */,
+ { 0, 3093, 934, 13, 6, -UNI_POSIXXDIGIT } /* asciihexdigit=false */,
+ { 0, 54, 3505, 2, 5, UNI_ETHI } /* sc=ethi */,
+ { 0, 1667, 861, 4, 7, UNI_INTIBETAN } /* blk=tibetan */,
+ { 4, 20, 0, 3, 0, UNI_XPOSIXXDIGIT } /* hex */,
+ { 4, 6165, 794, 3, 4, UNI_LANA } /* sc=lana */,
+ { 0, 1421, 2370, 3, 7, UNI_GREEKEXT } /* ingreekext */,
+ { 3, 1397, 934, 3, 6, -UNI_IDS } /* ids=false */,
+ { 0, 4424, 5031, 17, 4, UNI_HAN } /* scriptextensions=hani */,
+ { 2, 309, 1144, 2, 9, UNI_INBHAIKSUKI } /* inbhaiksuki */,
+ { 5, 339, 559, 5, 2, UNI_CCC__107 } /* ccc=107 */,
+ { 1, 6090, 2422, 7, 10, UNI_MISCSYMBOLS } /* block=miscsymbols */,
+ { 0, 4191, 5671, 8, 4, -UNI_XPOSIXLOWER } /* lowercase=no */,
+ { 0, 86, 0, 4, 0, UNI_GREK } /* grek */,
+ { 17, 925, 5090, 3, 6, UNI_BPT__C } /* bpt=close */,
+ { 1, 7669, 897, 17, 3, UNI_GCB__V } /* hangulsyllabletype=v */,
+ { 0, 1454, 599, 2, 2, -UNI_SD } /* sd=n */,
+ { 6, 461, 2411, 2, 11, UNI_KATAKANAEXT } /* iskatakanaext */,
+ { 50, 6165, 160, 3, 4, UNI_SC__PHLP } /* sc=phlp */,
+ { 0, 20, 599, 3, 2, -UNI_XPOSIXXDIGIT } /* hex=n */,
+ { 0, 7267, 3263, 16, 13, UNI_XPOSIXDIGIT } /* generalcategory=decimalnumber */,
+ { 0, 3204, 353, 14, 2, UNI_GREXT } /* graphemeextend=y */,
+ { 4, 939, 934, 5, 6, -UNI_ECOMP } /* ecomp=false */,
+ { 49, 4951, 0, 19, 0, UNI_EGYP } /* egyptianhieroglyphs */,
+ { 11, 2514, 7825, 3, 30, UNI_MATHALPHANUM } /* ismathematicalalphanumericsymbols */,
+ { 1, 6165, 1367, 3, 9, UNI_PAUC } /* sc=paucinhau */,
+ { 4, 3677, 81, 9, 2, UNI_LATINEXTG } /* islatinextg */,
+ { 5, 1174, 3, 3, 1, UNI_EA__W } /* ea=w */,
+ { 2, 3863, 1805, 14, 4, UNI_NV__80000 } /* numericvalue=80000 */,
+ { 1, 5616, 934, 21, 6, -UNI_CWU } /* changeswhenuppercased=false */,
+ { 5, 1864, 0, 5, 0, UNI_EBASE } /* ebase */,
+ { 3, 7944, 5252, 28, 4, UNI_CJKEXTE } /* iscjkunifiedideographsextensione */,
+ { 1, 5616, 274, 21, 1, UNI_cwu_values_index } /* changeswhenuppercased= */,
+ { 8, 461, 683, 2, 4, UNI_TAKR } /* istakr */,
+ { 1, 4424, 2411, 17, 8, UNI_KANA } /* scriptextensions=katakana */,
+ { 5, 4360, 0, 12, 0, UNI_LB__ZW } /* linebreak=zw */,
+ { 1, 1667, 4725, 4, 9, UNI_TANGUTSUP } /* blk=tangutsup */,
+ { 131, 6165, 739, 3, 4, UNI_SC__MAND } /* sc=mand */,
+ { 18, 4424, 1015, 17, 4, UNI_TELU } /* scriptextensions=telu */,
+ { 38, 339, 18, 4, 1, UNI_CCC__B } /* ccc=b */,
+ { 1, 7084, 5848, 8, 9, UNI_ARABICEXTA } /* inarabicextendeda */,
+ { 0, 7011, 346, 24, 2, UNI_CCC__84 } /* canonicalcombiningclass=84 */,
+ { 3, 461, 2302, 2, 3, UNI_IDC } /* isidc */,
+ { 0, 1823, 6777, 8, 10, UNI_MTEI } /* script=meeteimayek */,
+ { 13, 1102, 410, 4, 4, UNI_GONM } /* scx=gonm */,
+ { 0, 2811, 2815, 4, 8, UNI_KHMERSYMBOLS } /* khmersymbols */,
+ { 5, 6450, 54, 14, 2, UNI_SB__SC } /* sentencebreak=sc */,
+ { 0, 1340, 0, 9, 0, UNI_ORKH } /* oldturkic */,
+ { 1, 461, 240, 2, 4, UNI_ZYYY } /* iszyyy */,
+ { 0, 4424, 840, 17, 7, UNI_TGLG } /* scriptextensions=tagalog */,
+ { 3, 18, 6901, 1, 13, UNI_BYZANTINEMUSIC } /* byzantinemusic */,
+ { 18, 309, 840, 2, 7, UNI_INTAGALOG } /* intagalog */,
+ { 0, 2718, 3505, 2, 3, UNI_BC__ET } /* bc=et */,
+ { 0, 1823, 11, 7, 4, UNI_SC__ADLM } /* script=adlm */,
+ { 0, 4502, 3773, 5, 15, UNI_LINEARBIDEOGRAMS } /* blk=linearbideograms */,
+ { 2, 2514, 7620, 3, 28, UNI_MISCARROWS } /* ismiscellaneoussymbolsandarrows */,
+ { 0, 4391, 2164, 14, 8, UNI_NV__1_SLASH_3 } /* numericvalue=3.333e-01 */,
+ { 0, 2766, 4075, 3, 14, UNI_SC } /* gc=currencysymbol */,
+ { 0, 7752, 4746, 23, 5, UNI_JG__MANICHAEANGIMEL } /* joininggroup=manichaeangimel */,
+ { 40, 54, 2735, 2, 5, UNI_SC__ARAB } /* sc=arab */,
+ { 0, 309, 527, 2, 6, UNI_INREJANG } /* inrejang */,
+ { 2, 2391, 1674, 10, 4, UNI_CYRILLICEXTD } /* incyrillicextd */,
+ { 1, 1102, 1262, 4, 7, UNI_SOYO } /* scx=soyombo */,
+ { 1, 3863, 2164, 14, 8, UNI_NV__5_SLASH_6 } /* numericvalue=8.333e-01 */,
+ { 9, 4424, 1205, 17, 4, UNI_GRAN } /* scriptextensions=gran */,
+ { 0, 4360, 1763, 10, 8, UNI_LB__LF } /* linebreak=linefeed */,
+ { 3, 4424, 5067, 16, 5, UNI_MANI } /* scriptextensions=mani */,
+ { 0, 8, 353, 3, 4, UNI_PCM } /* pcm=yes */,
+ { 6, 1696, 0, 6, 0, UNI_DOMINO } /* domino */,
+ { 0, 7495, 1317, 27, 2, UNI_CCC__32 } /* canonicalcombiningclass=ccc32 */,
+ { 0, 2391, 5848, 10, 9, UNI_CYRILLICEXTA } /* incyrillicextendeda */,
+ { 14, 7134, 353, 26, 2, UNI_PCM } /* prependedconcatenationmark=y */,
+ { 2, 1102, 357, 4, 6, UNI_CAKM } /* scx=chakma */,
+ { 0, 461, 861, 2, 7, UNI_TIBT } /* istibetan */,
+ { 4, 1667, 1285, 4, 9, UNI_INKHUDAWADI } /* blk=khudawadi */,
+ { 3, 1102, 499, 4, 6, UNI_LYDI } /* scx=lydian */,
+ { 1, 1906, 3622, 7, 11, UNI_KANGXI } /* blk=kangxiradicals */,
+ { 1, 2525, 1479, 6, 5, UNI_XPOSIXSPACE } /* xposixspace */,
+ { 1, 2766, 2004, 3, 2, UNI_PO } /* gc=po */,
+ { 0, 54, 3133, 2, 5, UNI_SC__GEOR } /* sc=geor */,
+ { 4, 461, 880, 2, 7, UNI_ZZZZ } /* isunknown */,
+ { 0, 510, 3876, 5, 2, UNI_NV__3_SLASH_80 } /* nv=3/80 */,
+ { 2, 3502, 324, 12, 3, UNI_ETHIOPICSUP } /* blk=ethiopicsup */,
+ { 4, 6165, 688, 3, 5, UNI_BATK } /* sc=batak */,
+ { 56, 1174, 7048, 3, 9, UNI_EA__F } /* ea=fullwidth */,
+ { 0, 7267, 599, 15, 3, UNI_NO } /* generalcategory=no */,
+ { 1, 7274, 6677, 9, 14, UNI_LM } /* category=modifierletter */,
+ { 2, 3391, 3876, 13, 2, UNI_NV__80 } /* numericvalue=80 */,
+ { 2, 2324, 204, 11, 2, UNI_CJKEXTF } /* block=cjkextf */,
+ { 2, 461, 458, 2, 4, UNI_QAAI } /* isqaai */,
+ { 3, 4502, 4770, 17, 10, UNI_LATINEXTADDITIONAL } /* blk=latinextendedadditional */,
+ { 3, 1106, 0, 4, 0, UNI_TALU } /* talu */,
+ { 0, 2324, 1501, 6, 8, UNI_JAMOEXTA } /* block=jamoexta */,
+ { 3, 2060, 353, 5, 2, UNI_XPOSIXALPHA } /* alpha=y */,
+ { 1, 1823, 398, 7, 4, UNI_MIAO } /* script=miao */,
+ { 2, 15, 3418, 2, 3, UNI_AGE__4 } /* age=4 */,
+ { 2, 7383, 327, 10, 3, UNI_BC__FSI } /* bidiclass=fsi */,
+ { 0, 1667, 1331, 4, 9, UNI_INOLDPERMIC } /* blk=oldpermic */,
+ { 0, 1667, 5857, 4, 12, UNI_MONGOLIANSUP } /* blk=mongoliansup */,
+ { 1, 7564, 0, 17, 0, UNI_ANCIENTGREEKMUSIC } /* ancientgreekmusic */,
+ { 3, 4424, 23, 17, 4, UNI_AHOM } /* scriptextensions=ahom */,
+ { 2, 30, 536, 1, 5, UNI_TANG } /* istang */,
+ { 0, 7752, 2403, 24, 3, UNI_JG__MANICHAEANTETH } /* joininggroup=manichaeanteth */,
+ { 0, 7274, 4369, 8, 2, UNI_Z } /* category=z */,
+ { 1, 2060, 934, 5, 2, -UNI_XPOSIXALPHA } /* alpha=f */,
+ { 0, 2287, 549, 3, 3, UNI_IN__4 } /* in=4.0 */,
+ { 42, 1102, 975, 4, 8, UNI_GURU } /* scx=gurmukhi */,
+ { 14, 423, 2312, 3, 12, UNI_AEGEANNUMBERS } /* inaegeannumbers */,
+ { 1, 4391, 763, 14, 3, UNI_NV__3_SLASH_64 } /* numericvalue=3/64 */,
+ { 0, 2324, 2852, 6, 7, UNI_MAHJONG } /* block=mahjong */,
+ { 4, 6236, 0, 15, 0, UNI_NV__10 } /* numericvalue=10 */,
+ { 3, 887, 0, 8, 0, UNI_AGE__10 } /* age=10.0 */,
+ { 0, 7267, 326, 16, 2, UNI_PF } /* generalcategory=pf */,
+ { 1, 7752, 4239, 23, 4, UNI_JG__MANICHAEANFIVE } /* joininggroup=manichaeanfive */,
+ { 3, 82, 0, 4, 0, UNI_GONG } /* gong */,
+ { 0, 1906, 5848, 8, 9, UNI_KANAEXTA } /* blk=kanaextendeda */,
+ { 3, 3093, 598, 12, 4, -UNI_POSIXXDIGIT } /* asciihexdigit=no */,
+ { 0, 309, 4506, 2, 14, UNI_LATINEXTB } /* inlatinextendedb */,
+ { 3, 7267, 4150, 16, 5, UNI_P } /* generalcategory=punct */,
+ { 0, 5937, 598, 20, 3, -UNI__PERL_NCHAR } /* noncharactercodepoint=n */,
+ { 0, 1823, 4461, 7, 11, UNI_SGNW } /* script=signwriting */,
+ { 0, 1823, 3349, 7, 15, UNI_MERC } /* script=meroiticcursive */,
+ { 5, 3407, 2192, 14, 8, UNI_NV__3_SLASH_64 } /* numericvalue=4.688e-02 */,
+ { 0, 236, 0, 4, 0, UNI_ZANB } /* zanb */,
+ { 6, 782, 0, 3, 0, UNI_ANY } /* any */,
+ { 1, 3228, 0, 15, 0, UNI_ARMI } /* imperialaramaic */,
+ { 0, 1454, 599, 2, 3, -UNI_SD } /* sd=no */,
+ { 2, 2324, 0, 6, 0, UNI_blk_values_index } /* block= */,
+ { 9, 1102, 1340, 4, 9, UNI_ORKH } /* scx=oldturkic */,
+ { 1, 1102, 4461, 4, 11, UNI_SGNW } /* scx=signwriting */,
+ { 4, 5595, 0, 21, 0, UNI_CWT } /* changeswhentitlecased */,
+ { 20, 2503, 934, 11, 2, -UNI_JOINC } /* joincontrol=f */,
+ { 3, 4424, 746, 17, 4, UNI_MARC } /* scriptextensions=marc */,
+ { 0, 2324, 1385, 6, 6, UNI_INTHAANA } /* block=thaana */,
+ { 0, 6090, 7825, 7, 30, UNI_MATHALPHANUM } /* block=mathematicalalphanumericsymbols */,
+ { 0, 339, 182, 4, 2, UNI_CCC__0 } /* ccc=nr */,
+ { 22, 2268, 0, 12, 0, UNI_PLAYINGCARDS } /* playingcards */,
+ { 1, 3391, 2223, 13, 9, UNI_NV__1_SLASH_16 } /* numericvalue=6.250e-02 */,
+ { 0, 7011, 2234, 23, 2, UNI_CCC__8 } /* canonicalcombiningclass=8 */,
+ { 0, 1667, 663, 4, 5, UNI_INLIMBU } /* blk=limbu */,
+ { 0, 8071, 0, 24, 0, UNI_CJK } /* blk=cjkunifiedideographs */,
+ { 1, 8246, 8508, 24, 14, UNI_INPC__BOTTOMANDRIGHT } /* indicpositionalcategory=bottomandright */,
+ { 16, 6165, 1779, 3, 11, UNI_MEDF } /* sc=medefaidrin */,
+ { 0, 622, 0, 7, 0, UNI_EXTPICT } /* extpict */,
+ { 1, 21, 7241, 1, 26, UNI_ENCLOSEDCJK } /* enclosedcjklettersandmonths */,
+ { 0, 2324, 5, 6, 3, UNI_OCR } /* block=ocr */,
+ { 65, 6165, 1255, 3, 7, UNI_SIDD } /* sc=siddham */,
+ { 0, 5616, 599, 21, 2, -UNI_CWU } /* changeswhenuppercased=n */,
+ { 1, 192, 0, 4, 0, UNI_TAGS } /* tags */,
+ { 0, 833, 353, 4, 4, UNI_TERM } /* term=yes */,
+ { 9, 15, 0, 4, 0, UNI_AGHB } /* aghb */,
+ { 4, 2348, 5671, 12, 3, -UNI_CI } /* caseignorable=n */,
+ { 2, 1424, 343, 7, 2, UNI_CCC__12 } /* ccc=ccc12 */,
+ { 0, 309, 1033, 2, 4, UNI_JAMO } /* injamo */,
+ { 0, 7889, 3998, 26, 4, UNI_CJKEXTG } /* cjkunifiedideographsextensiong */,
+ { 1, 1011, 585, 2, 2, UNI_CI } /* ci=t */,
+ { 3, 292, 290, 3, 2, UNI_NV__40 } /* nv=40 */,
+ { 66, 1391, 6324, 3, 6, UNI_WB__FO } /* wb=format */,
+ { 1, 6165, 27, 3, 4, UNI_ARMI } /* sc=armi */,
+ { 0, 461, 3268, 2, 5, UNI_XPOSIXALNUM } /* isalnum */,
+ { 6, 6165, 51, 3, 4, UNI_CANS } /* sc=cans */,
+ { 21, 4970, 599, 13, 2, -UNI_EMOD } /* emojimodifier=n */,
+ { 2, 1396, 0, 8, 0, UNI_XIDS } /* xidstart */,
+ { 6, 517, 1314, 4, 2, UNI_NV__700 } /* nv=700 */,
+ { 0, 339, 7239, 4, 2, UNI_CCC__28 } /* ccc=28 */,
+ { 1, 1424, 1318, 7, 2, UNI_CCC__20 } /* ccc=ccc20 */,
+ { 64, 753, 1792, 3, 9, UNI_NFCQC__M } /* nfkcqc=maybe */,
+ { 0, 7084, 6193, 6, 12, UNI_ARABICSUP } /* inarabicsupplement */,
+ { 1, 339, 5523, 4, 5, UNI_CCC__B } /* ccc=below */,
+ { 0, 1272, 7111, 3, 23, UNI_DIACRITICALSFORSYMBOLS } /* iscombiningmarksforsymbols */,
+ { 1, 7011, 7408, 18, 7, UNI_CCC__R } /* canonicalcombiningclass=r */,
+ { 2, 2536, 5084, 3, 4, UNI_JG__YUDH } /* jg=yudh */,
+ { 0, 2766, 4683, 3, 16, UNI_PF } /* gc=finalpunctuation */,
+ { 0, 552, 0, 4, 0, UNI_age_values_index } /* age= */,
+ { 17, 461, 2769, 2, 5, UNI_C } /* isother */,
+ { 1, 3791, 2060, 4, 8, UNI_MATHALPHANUM } /* mathalphanum */,
+ { 0, 2403, 620, 6, 5, UNI_ETHIOPICEXT } /* ethiopicext */,
+ { 1, 8343, 5762, 22, 16, UNI_INSC__SYLLABLEMODIFIER } /* indicsyllabiccategory=syllablemodifier */,
+ { 2, 2324, 6332, 6, 19, UNI_JAMOEXTB } /* block=hanguljamoextendedb */,
+ { 26, 4502, 81, 11, 2, UNI_LATINEXTG } /* blk=latinextg */,
+ { 5, 5532, 274, 21, 1, UNI_cwcf_values_index } /* changeswhencasefolded= */,
+ { 2, 2494, 2773, 3, 13, UNI_INGREEK } /* isgreekandcoptic */,
+ { 0, 1823, 1027, 7, 6, UNI_SC__YEZI } /* script=yezidi */,
+ { 65, 940, 0, 2, 0, UNI_CO } /* co */,
+ { 1, 615, 0, 7, 0, UNI_ELYM } /* elymaic */,
+ { 64, 1240, 1332, 3, 8, UNI_INOLDPERMIC } /* inoldpermic */,
+ { 0, 6165, 78, 3, 4, UNI_DSRT } /* sc=dsrt */,
+ { 0, 5769, 353, 4, 2, UNI_EMOD } /* emod=y */,
+ { 46, 4795, 1805, 14, 4, UNI_NV__60000 } /* numericvalue=60000 */,
+ { 2, 6165, 868, 3, 7, UNI_SC__TIRH } /* sc=tirhuta */,
+ { 1, 6870, 934, 20, 2, -UNI_CE } /* compositionexclusion=f */,
+ { 0, 1082, 0, 4, 0, UNI_XPOSIXWORD } /* word */,
+ { 3, 253, 599, 4, 2, -UNI_CWCF } /* cwcf=n */,
+ { 0, 1823, 430, 7, 4, UNI_SC__NKO } /* script=nkoo */,
+ { 0, 2718, 6300, 13, 10, UNI_BC__RLE } /* bc=righttoleftembedding */,
+ { 2, 1823, 608, 7, 4, UNI_ELBA } /* script=elba */,
+ { 3, 7267, 8356, 7, 11, UNI_CO } /* generalcategory=co */,
+ { 1, 1823, 15, 7, 4, UNI_AGHB } /* script=aghb */,
+ { 0, 8278, 1556, 4, 6, UNI_MISCARROWS } /* miscarrows */,
+ { 8, 461, 7449, 2, 28, UNI_PHONETICEXTSUP } /* isphoneticextensionssupplement */,
+ { 10, 7134, 585, 26, 5, UNI_PCM } /* prependedconcatenationmark=true */,
+ { 0, 4424, 124, 17, 4, UNI_LATN } /* scriptextensions=latn */,
+ { 9, 1823, 1205, 7, 7, UNI_SC__GRAN } /* script=grantha */,
+ { 16, 461, 3634, 2, 2, UNI_NL } /* isnl */,
+ { 7, 1102, 5353, 4, 20, UNI_PHLI } /* scx=inscriptionalpahlavi */,
+ { 0, 552, 387, 5, 2, UNI_AGE__5_DOT_2 } /* age=5.2 */,
+ { 0, 461, 0, 2, 2, UNI_CASEDLETTER } /* isl& */,
+ { 4, 309, 398, 2, 4, UNI_INMIAO } /* inmiao */,
+ { 2, 7274, 3196, 12, 8, UNI_NO } /* category=othernumber */,
+ { 1, 7274, 5243, 13, 12, UNI_PO } /* category=otherpunctuation */,
+ { 0, 1102, 3421, 4, 15, UNI_NARB } /* scx=oldnortharabian */,
+ { 0, 1479, 0, 5, 0, UNI_XPOSIXSPACE } /* space */,
+ { 1, 461, 4002, 2, 4, UNI_MODI } /* ismodi */,
+ { 5, 1667, 7724, 4, 18, UNI_INVS } /* blk=variationselectors */,
+ { 8, 2403, 6193, 6, 5, UNI_ETHIOPICSUP } /* ethiopicsup */,
+ { 18, 3093, 353, 13, 2, UNI_POSIXXDIGIT } /* asciihexdigit=y */,
+ { 0, 1734, 467, 3, 3, UNI_SOGO } /* issogo */,
+ { 25, 1790, 0, 6, 0, UNI_nfcqc_values_index } /* nfcqc= */,
+ { 2, 3848, 1072, 14, 3, UNI_NV__7_SLASH_12 } /* numericvalue=7/12 */,
+ { 83, 1823, 1340, 7, 9, UNI_ORKH } /* script=oldturkic */,
+ { 2, 833, 585, 4, 5, UNI_TERM } /* term=true */,
+ { 0, 6427, 4751, 13, 3, UNI_JG__SAD } /* joininggroup=sad */,
+ { 26, 895, 2125, 5, 2, UNI_AGE__6_DOT_3 } /* age=v63 */,
+ { 3, 1065, 394, 5, 1, UNI_NV__1_SLASH_5 } /* nv=1/5 */,
+ { 0, 1412, 0, 12, 0, UNI_BOXDRAWING } /* inboxdrawing */,
+ { 72, 1102, 868, 4, 7, UNI_TIRH } /* scx=tirhuta */,
+ { 0, 1409, 4698, 4, 2, UNI_LATIN1 } /* latin1 */,
+ { 2, 7274, 4683, 9, 16, UNI_PF } /* category=finalpunctuation */,
+ { 1, 2280, 546, 11, 3, UNI_IN__13 } /* presentin=13.0 */,
+ { 7, 3817, 764, 15, 2, UNI_NV__1_SLASH_64 } /* numericvalue=1/64 */,
+ { 2, 1667, 4651, 4, 8, UNI_INBOPOMOFO } /* blk=bopomofo */,
+ { 3, 7591, 63, 3, 2, UNI_LB__CP } /* lb=cp */,
+ { 65, 1667, 4911, 4, 15, UNI_DIACRITICALSSUP } /* blk=diacriticalssup */,
+ { 70, 510, 3846, 4, 2, UNI_NV__3_SLASH_8 } /* nv=3/8 */,
+ { 1, 597, 2030, 5, 5, UNI_DT__NB } /* dt=nobreak */,
+ { 1, 693, 5243, 6, 12, UNI_PO } /* isotherpunctuation */,
+ { 12, 2536, 2015, 3, 3, UNI_JG__WAW } /* jg=waw */,
+ { 8, 6427, 478, 13, 3, UNI_JG__BEH } /* joininggroup=beh */,
+ { 0, 5065, 636, 13, 3, UNI_JG__MANICHAEANNUN } /* jg=manichaeannun */,
+ { 4, 5574, 585, 21, 5, UNI_CWL } /* changeswhenlowercased=true */,
+ { 50, 4424, 3726, 16, 10, UNI_MLYM } /* scriptextensions=malayalam */,
+ { 11, 1102, 63, 4, 4, UNI_CPMN } /* scx=cpmn */,
+ { 0, 1823, 1003, 7, 6, UNI_LEPC } /* script=lepcha */,
+ { 1, 6427, 1760, 13, 3, UNI_JG__KAF } /* joininggroup=kaf */,
+ { 1, 7724, 0, 28, 0, UNI_VSSUP } /* variationselectorssupplement */,
+ { 1, 4584, 274, 18, 1, UNI_idst_values_index } /* idstrinaryoperator= */,
+ { 1, 1223, 3696, 4, 10, UNI_KANASUP } /* kanasupplement */,
+ { 0, 1102, 1003, 4, 6, UNI_LEPC } /* scx=lepcha */,
+ { 0, 2324, 6677, 6, 15, UNI_MODIFIERLETTERS } /* block=modifierletters */,
+ { 0, 1667, 3908, 4, 16, UNI_TANGUTCOMPONENTS } /* blk=tangutcomponents */,
+ { 1, 2324, 6692, 6, 22, UNI_TRANSPORTANDMAP } /* block=transportandmapsymbols */,
+ { 2, 876, 934, 4, 6, -UNI_IDEO } /* ideo=false */,
+ { 2, 5168, 1397, 6, 7, UNI__PERL_IDSTART } /* _perl_idstart */,
+ { 19, 1227, 0, 4, 0, UNI_MAKA } /* maka */,
+ { 3, 7274, 6324, 9, 6, UNI_CF } /* category=format */,
+ { 0, 1667, 6000, 4, 6, UNI_YIJING } /* blk=yijing */,
+ { 24, 716, 3622, 5, 3, UNI_KANGXI } /* inkangxi */,
+ { 0, 461, 571, 2, 7, UNI_AVST } /* isavestan */,
+ { 1, 5065, 5427, 14, 6, UNI_JG__MANICHAEANTHAMEDH } /* jg=manichaeanthamedh */,
+ { 1, 7383, 3924, 10, 14, UNI_BC__EN } /* bidiclass=europeannumber */,
+ { 1, 3502, 6193, 10, 12, UNI_ETHIOPICSUP } /* blk=ethiopicsupplement */,
+ { 3, 8071, 5252, 30, 4, UNI_CJKEXTE } /* blk=cjkunifiedideographsextensione */,
+ { 0, 7011, 5515, 24, 17, UNI_WB__EB } /* canonicalcombiningclass=attachedbelowleft */,
+ { 4, 6165, 410, 3, 4, UNI_SC__GONM } /* sc=gonm */,
+ { 1, 5895, 5909, 5, 7, UNI_SUPARROWSC } /* issuparrowsc */,
+ { 2, 8, 1079, 1, 7, UNI_POSIXWORD } /* perlword */,
+ { 2, 461, 4651, 2, 8, UNI_BOPO } /* isbopomofo */,
+ { 34, 2441, 0, 4, 0, UNI_NAND } /* nand */,
+ { 1, 5205, 4511, 11, 9, UNI_MYANMAREXTB } /* blk=myanmarextendedb */,
+ { 18, 3391, 1803, 12, 8, UNI_NV__1000000 } /* numericvalue=1000000 */,
+ { 3, 292, 1805, 4, 4, UNI_NV__90000 } /* nv=90000 */,
+ { 9, 309, 3475, 2, 15, UNI_INZANABAZARSQUARE } /* inzanabazarsquare */,
+ { 0, 1667, 5353, 4, 20, UNI_ININSCRIPTIONALPAHLAVI } /* blk=inscriptionalpahlavi */,
+ { 0, 6165, 212, 3, 4, UNI_TIBT } /* sc=tibt */,
+ { 4, 2503, 353, 11, 4, UNI_JOINC } /* joincontrol=yes */,
+ { 0, 1102, 997, 4, 6, UNI_KTHI } /* scx=kaithi */,
+ { 1, 658, 0, 5, 0, UNI_DOGR } /* dogra */,
+ { 0, 5065, 4259, 13, 4, UNI_JG__MANICHAEANYODH } /* jg=manichaeanyodh */,
+ { 4, 733, 8111, 3, 31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* inegyptianhieroglyphformatcontrols */,
+ { 56, 324, 6103, 3, 13, UNI_SUPMATHOPERATORS } /* supmathoperators */,
+ { 1, 3696, 4607, 10, 13, UNI_SUPPUNCTUATION } /* supplementalpunctuation */,
+ { 0, 5460, 353, 19, 4, UNI_TERM } /* terminalpunctuation=yes */,
+ { 1, 3021, 569, 4, 2, UNI_IN__5_DOT_2 } /* in=v52 */,
+ { 0, 658, 0, 4, 0, UNI_DOGR } /* dogr */,
+ { 0, 461, 527, 2, 6, UNI_RJNG } /* isrejang */,
+ { 8, 6427, 7342, 13, 10, UNI_JG__TEHMARBUTA } /* joininggroup=tehmarbuta */,
+ { 2, 5916, 353, 21, 4, UNI_LOE } /* logicalorderexception=yes */,
+ { 0, 2324, 4809, 6, 18, UNI_ORNAMENTALDINGBATS } /* block=ornamentaldingbats */,
+ { 11, 1667, 1133, 4, 8, UNI_INVITHKUQI } /* blk=vithkuqi */,
+ { 9, 735, 599, 2, 2, UNI_EA__N } /* ea=n */,
+ { 7, 3204, 934, 14, 2, -UNI_GREXT } /* graphemeextend=f */,
+ { 17, 3817, 2115, 14, 8, UNI_NV__1_SLASH_64 } /* numericvalue=1.562e-02 */,
+ { 84, 309, 1914, 2, 8, UNI_UCASEXTA } /* inucasexta */,
+ { 3, 1823, 1144, 7, 9, UNI_BHKS } /* script=bhaiksuki */,
+ { 0, 7495, 2101, 27, 2, UNI_CCC__29 } /* canonicalcombiningclass=ccc29 */,
+ { 1, 925, 598, 2, 6, UNI_BPT__N } /* bpt=none */,
+ { 4, 5637, 1864, 21, 8, UNI_WB__EB } /* graphemeclusterbreak=ebasegaz */,
+ { 0, 309, 4651, 2, 11, UNI_BOPOMOFOEXT } /* inbopomofoext */,
+ { 2, 939, 353, 5, 4, UNI_ECOMP } /* ecomp=yes */,
+ { 0, 4424, 5857, 17, 9, UNI_MONG } /* scriptextensions=mongolian */,
+ { 5, 1455, 934, 3, 6, -UNI_DEP } /* dep=false */,
+ { 0, 1391, 543, 3, 2, UNI_WB__EB } /* wb=eb */,
+ { 0, 1667, 1926, 7, 7, UNI_CJKSYMBOLS } /* blk=cjksymbols */,
+ { 3, 2324, 108, 6, 4, UNI_INKAWI } /* block=kawi */,
+ { 2, 2324, 1414, 6, 10, UNI_BOXDRAWING } /* block=boxdrawing */,
+ { 10, 6427, 118, 13, 3, UNI_JG__DAL } /* joininggroup=dal */,
+ { 0, 461, 414, 2, 4, UNI_HANO } /* ishano */,
+ { 0, 6427, 4247, 13, 4, UNI_JG__KAPH } /* joininggroup=kaph */,
+ { 20, 461, 1262, 2, 7, UNI_SOYO } /* issoyombo */,
+ { 3, 1823, 1191, 7, 4, UNI_SC__BENG } /* script=beng */,
+ { 0, 8343, 2823, 22, 9, UNI_INSC__NONJOINER } /* indicsyllabiccategory=nonjoiner */,
+ { 1, 2766, 2814, 6, 8, UNI_SO } /* gc=othersymbol */,
+ { 4, 7383, 384, 10, 2, UNI_BC__EN } /* bidiclass=en */,
+ { 3, 461, 2060, 2, 5, UNI_XPOSIXALPHA } /* isalpha */,
+ { 33, 1823, 4487, 7, 6, UNI_SC__ZYYY } /* script=common */,
+ { 34, 2536, 3301, 3, 12, UNI_JG__VERTICALTAIL } /* jg=verticaltail */,
+ { 0, 4424, 2009, 17, 6, UNI_SYRC } /* scriptextensions=syriac */,
+ { 3, 406, 585, 2, 2, UNI_DI } /* di=t */,
+ { 32, 533, 6324, 3, 6, UNI_SB__FO } /* sb=format */,
+ { 0, 2324, 1248, 6, 7, UNI_INPHAGSPA } /* block=phagspa */,
+ { 80, 1102, 683, 4, 5, UNI_TAKR } /* scx=takri */,
+ { 0, 461, 2786, 2, 14, UNI_HIGHSURROGATES } /* ishighsurrogates */,
+ { 3, 1883, 585, 5, 5, UNI_BIDIC } /* bidic=true */,
+ { 0, 597, 1178, 4, 5, UNI_DT__NAR } /* dt=narrow */,
+ { 68, 8246, 3243, 24, 10, UNI_INPC__OVERSTRUCK } /* indicpositionalcategory=overstruck */,
+ { 40, 6165, 1090, 3, 4, UNI_SC__LINB } /* sc=linb */,
+ { 0, 461, 983, 2, 8, UNI_HIRA } /* ishiragana */,
+ { 24, 2732, 24, 5, 3, UNI_INAHOM } /* blk=ahom */,
+ { 4, 1102, 3493, 3, 9, UNI_CYRL } /* scx=cyrillic */,
+ { 2, 309, 5958, 2, 7, UNI_INSINHALA } /* insinhala */,
+ { 1, 106, 0, 2, 0, UNI_ZL } /* zl */,
+ { 0, 2842, 6193, 8, 12, UNI_ETHIOPICSUP } /* isethiopicsupplement */,
+ { 35, 4360, 4316, 10, 14, UNI_LB__BK } /* linebreak=mandatorybreak */,
+ { 0, 1823, 499, 7, 4, UNI_LYDI } /* script=lydi */,
+ { 4, 641, 3599, 4, 12, UNI_GCB__T } /* hst=trailingjamo */,
+ { 25, 461, 6866, 2, 24, UNI_COMPEX } /* isfullcompositionexclusion */,
+ { 13, 5769, 934, 4, 6, -UNI_EMOD } /* emod=false */,
+ { 0, 1272, 8153, 5, 21, UNI_CJKSYMBOLS } /* iscjksymbolsandpunctuation */,
+ { 69, 5637, 644, 20, 3, UNI_LB__H2 } /* graphemeclusterbreak=lv */,
+ { 33, 2324, 6495, 6, 5, UNI_MUSIC } /* block=music */,
+ { 0, 959, 353, 8, 4, UNI_EXT } /* extender=yes */,
+ { 0, 3013, 599, 5, 2, -UNI_EPRES } /* epres=n */,
+ { 1, 2324, 2268, 6, 12, UNI_PLAYINGCARDS } /* block=playingcards */,
+ { 0, 1221, 3696, 6, 10, UNI_KANASUP } /* inkanasupplement */,
+ { 6, 1396, 353, 8, 4, UNI_XIDS } /* xidstart=yes */,
+ { 0, 1894, 274, 12, 1, UNI_bidim_values_index } /* bidimirrored= */,
+ { 5, 832, 585, 5, 2, UNI_STERM } /* sterm=t */,
+ { 134, 1397, 353, 3, 2, UNI_IDS } /* ids=y */,
+ { 0, 6427, 5084, 13, 4, UNI_JG__YUDH } /* joininggroup=yudh */,
+ { 6, 1391, 507, 3, 2, UNI_WB__DQ } /* wb=dq */,
+ { 0, 3093, 598, 12, 2, UNI_ahex_values_index } /* asciihexdigit= */,
+ { 4, 1823, 1853, 7, 4, UNI_SC__SYLO } /* script=sylo */,
+ { 0, 6776, 0, 21, 0, UNI_MEETEIMAYEKEXT } /* meeteimayekextensions */,
+ { 0, 2536, 4751, 3, 3, UNI_JG__SAD } /* jg=sad */,
+ { 3, 6427, 4235, 13, 4, UNI_JG__BETH } /* joininggroup=beth */,
+ { 0, 461, 67, 2, 4, UNI_CPRT } /* iscprt */,
+ { 0, 2752, 585, 14, 5, UNI_ECOMP } /* emojicomponent=true */,
+ { 4, 7198, 8386, 7, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* blk=supsymbolsandpictographs */,
+ { 1, 2180, 1317, 4, 5, UNI_NV__432000 } /* nv=432000 */,
+ { 34, 7274, 50, 9, 2, UNI_MC } /* category=mc */,
+ { 4, 3407, 346, 14, 1, UNI_NV__48 } /* numericvalue=48 */,
+ { 7, 1823, 2735, 6, 7, UNI_SC__ARAB } /* script=arabic */,
+ { 4, 8660, 0, 43, 0, UNI_UCASEXTA } /* unifiedcanadianaboriginalsyllabicsextendeda */,
+ { 2, 309, 732, 2, 7, UNI_INLINEARA } /* inlineara */,
+ { 3, 4941, 7442, 7, 25, UNI_KATAKANAEXT } /* block=katakanaphoneticextensions */,
+ { 9, 1479, 352, 4, 5, UNI_XPOSIXSPACE } /* space=yes */,
+ { 0, 309, 7449, 2, 28, UNI_PHONETICEXTSUP } /* inphoneticextensionssupplement */,
+ { 1, 271, 0, 4, 0, UNI_gcb_values_index } /* gcb= */,
+ { 5, 5595, 599, 21, 2, -UNI_CWT } /* changeswhentitlecased=n */,
+ { 0, 1823, 683, 7, 4, UNI_SC__TAKR } /* script=takr */,
+ { 2, 32, 4439, 1, 2, UNI_vs_values_index } /* vs= */,
+ { 1, 4424, 398, 17, 4, UNI_MIAO } /* scriptextensions=miao */,
+ { 3, 406, 934, 3, 2, -UNI_DIA } /* dia=f */,
+ { 5, 4424, 410, 17, 4, UNI_GONM } /* scriptextensions=gonm */,
+ { 0, 1243, 6462, 2, 25, UNI_SHORTHANDFORMATCONTROLS } /* blk=shorthandformatcontrols */,
+ { 66, 461, 4651, 2, 4, UNI_BOPO } /* isbopo */,
+ { 1, 3268, 0, 5, 0, UNI_XPOSIXALNUM } /* alnum */,
+ { 1, 4161, 0, 9, 0, UNI_DIA } /* diacritic */,
+ { 120, 2324, 2692, 6, 13, UNI_VERTICALFORMS } /* block=verticalforms */,
+ { 1, 7198, 8386, 16, 21, UNI_SUPSYMBOLSANDPICTOGRAPHS } /* blk=supplementalsymbolsandpictographs */,
+ { 2, 7274, 1393, 8, 2, UNI_M } /* category=m */,
+ { 1, 2018, 2932, 11, 12, UNI_JT__T } /* joiningtype=transparent */,
+ { 0, 257, 274, 4, 1, UNI_cwcm_values_index } /* cwcm= */,
+ { 1, 1424, 391, 7, 2, UNI_CCC__34 } /* ccc=ccc34 */,
+ { 0, 1102, 658, 4, 4, UNI_DOGR } /* scx=dogr */,
+ { 1, 6165, 901, 3, 8, UNI_ARMN } /* sc=armenian */,
+ { 3, 1102, 1015, 4, 4, UNI_TELU } /* scx=telu */,
+ { 2, 4845, 584, 16, 3, UNI__PERL_PATWS } /* patternwhitespace=t */,
+ { 12, 3634, 0, 2, 0, UNI_NL } /* nl */,
+ { 32, 313, 0, 4, 0, UNI_M } /* mark */,
+ { 1, 2766, 0, 3, 0, UNI_gc_values_index } /* gc= */,
+ { 0, 309, 2852, 2, 12, UNI_MAHJONG } /* inmahjongtiles */,
+ { 0, 7944, 4410, 28, 4, UNI_CJKEXTA } /* iscjkunifiedideographsextensiona */,
+ { 24, 1667, 8142, 4, 32, UNI_IDEOGRAPHICSYMBOLS } /* blk=ideographicsymbolsandpunctuation */,
+ { 7, 4360, 4288, 10, 14, UNI_LB__CR } /* linebreak=carriagereturn */,
+ { 0, 6165, 1234, 3, 7, UNI_SC__MULT } /* sc=multani */,
+ { 5, 1823, 1954, 7, 12, UNI_SC__GONG } /* script=gunjalagondi */,
+ { 3, 461, 658, 2, 4, UNI_DOGR } /* isdogr */,
+ { 0, 4360, 5769, 10, 9, UNI_EMOD } /* linebreak=emodifier */,
+ { 0, 6165, 1438, 3, 10, UNI_CHRS } /* sc=chorasmian */,
+ { 0, 5876, 0, 19, 0, UNI_SUNDANESESUP } /* sundanesesupplement */,
+ { 0, 1102, 951, 4, 8, UNI_DUPL } /* scx=duployan */,
+ { 48, 6618, 140, 5, 2, UNI_INPC__NA } /* inpc=na */,
+ { 4, 461, 6870, 2, 20, UNI_CE } /* iscompositionexclusion */,
+ { 0, 6165, 6776, 3, 11, UNI_MTEI } /* sc=meeteimayek */,
+ { 2, 5897, 0, 19, 0, UNI_SUPARROWSC } /* supplementalarrowsc */,
+ { 67, 30, 7854, 1, 5, UNI_IDEO } /* isideo */,
+ { 24, 461, 4271, 2, 17, UNI_KITS } /* iskhitansmallscript */,
+ { 1, 4424, 499, 17, 6, UNI_LYDI } /* scriptextensions=lydian */,
+ { 0, 2, 5671, 1, 3, -UNI_CE } /* ce=n */,
+ { 2, 2718, 6029, 3, 12, UNI_BC__AN } /* bc=arabicnumber */,
+ { 0, 200, 0, 4, 0, UNI_TAVT } /* tavt */,
+ { 0, 6165, 1003, 3, 6, UNI_LEPC } /* sc=lepcha */,
+ { 53, 461, 1522, 2, 4, UNI_UGAR } /* isugar */,
+ { 0, 7889, 6553, 25, 5, UNI_CJKEXTC } /* cjkunifiedideographsextensionc */,
+ { 1, 4360, 4780, 10, 15, UNI_LB__CB } /* linebreak=contingentbreak */,
+ { 49, 833, 599, 4, 3, -UNI_TERM } /* term=no */,
+ { 22, 309, 430, 2, 3, UNI_INNKO } /* innko */,
+ { 8, 6165, 8667, 3, 18, UNI_CANS } /* sc=canadianaboriginal */,
+ { 0, 5916, 0, 21, 0, UNI_LOE } /* logicalorderexception */,
+ { 6, 309, 847, 2, 7, UNI_INTAITHAM } /* intaitham */,
+ { 4, 641, 898, 3, 2, UNI_GCB__V } /* hst=v */,
+ { 3, 5939, 353, 5, 4, UNI__PERL_NCHAR } /* nchar=yes */,
+ { 6, 4360, 1612, 10, 2, UNI_LB__LF } /* linebreak=lf */,
+ { 0, 2324, 7537, 6, 27, UNI_ALPHABETICPF } /* block=alphabeticpresentationforms */,
+ { 0, 6165, 94, 3, 4, UNI_SC__GURU } /* sc=guru */,
+ { 69, 1198, 7972, 3, 15, UNI_CUNEIFORMNUMBERS } /* incuneiformnumbers */,
+ { 0, 641, 4030, 4, 13, UNI_HST__NA } /* hst=notapplicable */,
+ { 0, 1396, 585, 4, 2, UNI_XIDS } /* xids=t */,
+ { 0, 2060, 585, 5, 5, UNI_XPOSIXALPHA } /* alpha=true */,
+ { 11, 1294, 0, 9, 0, UNI_NBAT } /* nabataean */,
+ { 0, 1823, 1003, 7, 4, UNI_LEPC } /* script=lepc */,
+ { 0, 2180, 290, 4, 1, UNI_NV__44 } /* nv=44 */,
+ { 5, 3863, 1314, 14, 3, UNI_NV__8000 } /* numericvalue=8000 */,
+ { 0, 7796, 0, 29, 0, UNI_ENCLOSEDIDEOGRAPHICSUP } /* enclosedideographicsupplement */,
+ { 0, 3848, 0, 15, 0, UNI_NV__70 } /* numericvalue=70 */,
+ { 1, 2, 598, 2, 3, -UNI_CWT } /* cwt=n */,
+ { 69, 8343, 6167, 21, 18, UNI_INSC__CONSONANTPREFIXED } /* indicsyllabiccategory=consonantprefixed */,
+ { 4, 1397, 585, 3, 5, UNI_IDS } /* ids=true */,
+ { 4, 1667, 3692, 4, 4, UNI_INLISU } /* blk=lisu */,
+ { 1, 1667, 779, 4, 7, UNI_INOSMANYA } /* blk=osmanya */,
+ { 3, 309, 2852, 2, 7, UNI_MAHJONG } /* inmahjong */,
+ { 8, 2718, 5479, 3, 18, UNI_BC__ET } /* bc=europeanterminator */,
+ { 5, 1424, 1153, 7, 2, UNI_CCC__24 } /* ccc=ccc24 */,
+ { 4, 1823, 120, 7, 4, UNI_LAO } /* script=laoo */,
+ { 5, 6165, 2411, 3, 8, UNI_SC__KANA } /* sc=katakana */,
+ { 1, 4, 584, 2, 3, UNI_LOE } /* loe=t */,
+ { 32, 5065, 3743, 13, 3, UNI_JG__MANICHAEANTAW } /* jg=manichaeantaw */,
+ { 0, 2335, 0, 13, 0, UNI_BLOCKELEMENTS } /* blockelements */,
+ { 24, 4424, 590, 17, 7, UNI_DSRT } /* scriptextensions=deseret */,
+ { 3, 4424, 810, 17, 4, UNI_SYRC } /* scriptextensions=syrc */,
+ { 0, 5637, 898, 20, 2, UNI_GCB__V } /* graphemeclusterbreak=v */,
+ { 3, 339, 0, 6, 0, UNI_CCC__12 } /* ccc=12 */,
+ { 0, 8311, 5252, 32, 4, UNI_CJKEXTE } /* block=cjkunifiedideographsextensione */,
+ { 5, 6165, 854, 3, 7, UNI_TAVT } /* sc=taiviet */,
+ { 0, 461, 4725, 2, 16, UNI_TANGUTSUP } /* istangutsupplement */,
+ { 4, 4424, 297, 17, 5, UNI_ORYA } /* scriptextensions=oriya */,
+ { 3, 3391, 1805, 14, 5, UNI_NV__200000 } /* numericvalue=200000 */,
+ { 4, 1102, 1262, 4, 4, UNI_SOYO } /* scx=soyo */,
+ { 6, 292, 1318, 3, 2, UNI_NV__20 } /* nv=20 */,
+ { 50, 2180, 1805, 4, 5, UNI_NV__400000 } /* nv=400000 */,
+ { 0, 597, 366, 3, 3, UNI_DT__SQR } /* dt=sqr */,
+ { 0, 470, 0, 4, 0, UNI_TNSA } /* tnsa */,
+ { 0, 7267, 2483, 16, 11, UNI_CASEDLETTER } /* generalcategory=casedletter */,
+ { 0, 1823, 1509, 7, 4, UNI_SC__JAVA } /* script=java */,
+ { 0, 7267, 1427, 15, 3, UNI_XPOSIXCNTRL } /* generalcategory=cc */,
+ { 1, 6165, 1978, 3, 4, UNI_SC__SOGD } /* sc=sogd */,
+ { 0, 1397, 2931, 3, 3, UNI_IDST } /* idst=t */,
+ { 1, 552, 2289, 3, 3, UNI_AGE__14 } /* age=14 */,
+ { 4, 1065, 763, 4, 3, UNI_NV__1_SLASH_64 } /* nv=1/64 */,
+ { 1, 7267, 50, 16, 2, UNI_MC } /* generalcategory=mc */,
+ { 1, 1823, 1255, 7, 4, UNI_SIDD } /* script=sidd */,
+ { 0, 3391, 2210, 12, 10, UNI_NV__7_SLASH_12 } /* numericvalue=5.833e-01 */,
+ { 2, 309, 1685, 2, 11, UNI_INCYPROMINOAN } /* incyprominoan */,
+ { 3, 3014, 394, 11, 2, UNI_IN__5_DOT_1 } /* presentin=v51 */,
+ { 2, 2324, 3583, 6, 16, UNI_HIGHPUSURROGATES } /* block=highpusurrogates */,
+ { 0, 6076, 2370, 7, 12, UNI_GREEKEXT } /* block=greekextended */,
+ { 2, 309, 6103, 2, 13, UNI_MATHOPERATORS } /* inmathoperators */,
+ { 0, 5574, 934, 21, 2, -UNI_CWL } /* changeswhenlowercased=f */,
+ { 0, 309, 192, 2, 4, UNI_TAGS } /* intags */,
+ { 129, 339, 0, 2, 0, UNI_XPOSIXCNTRL } /* cc */,
+ { 0, 1248, 0, 7, 0, UNI_PHAG } /* phagspa */,
+ { 0, 3817, 1071, 14, 4, UNI_NV__11_SLASH_12 } /* numericvalue=11/12 */,
+ { 3, 1667, 0, 4, 0, UNI_blk_values_index } /* blk= */,
+ { 25, 7648, 1162, 18, 6, UNI_DT__ENC } /* decompositiontype=circle */,
+ { 1, 461, 5460, 2, 19, UNI_TERM } /* isterminalpunctuation */,
+ { 0, 1479, 352, 4, 2, UNI_wspace_values_index } /* space= */,
+ { 0, 2842, 8111, 3, 31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS } /* isegyptianhieroglyphformatcontrols */,
+ { 0, 1102, 4176, 4, 6, UNI_HANG } /* scx=hangul */,
+ { 0, 1823, 418, 7, 4, UNI_KHMR } /* script=khmr */,
+ { 6, 271, 248, 4, 2, UNI_GCB__CN } /* gcb=cn */,
+ { 64, 2324, 1592, 6, 10, UNI_INSAURASHTRA } /* block=saurashtra */,
+ { 43, 1205, 0, 4, 0, UNI_GRAN } /* gran */,
+ { 6, 1823, 1812, 7, 11, UNI_HMNG } /* script=pahawhhmong */,
+ { 6, 1823, 1133, 7, 4, UNI_VITH } /* script=vith */,
+ { 81, 1479, 584, 4, 3, UNI_XPOSIXSPACE } /* space=t */,
+ { 2, 1479, 933, 4, 7, -UNI_XPOSIXSPACE } /* space=false */,
+ { 5, 5637, 1887, 21, 7, UNI_GCB__CN } /* graphemeclusterbreak=control */,
+ { 17, 1823, 663, 7, 5, UNI_SC__LIMB } /* script=limbu */,
+ { 0, 608, 0, 7, 0, UNI_ELBA } /* elbasan */,
+ { 1, 5156, 3463, 10, 12, UNI_WB__EB } /* wordbreak=glueafterzwj */,
+ { 0, 1667, 4896, 4, 5, UNI_INBAMUM } /* blk=bamum */,
+ { 0, 3014, 344, 11, 2, UNI_IN__2_DOT_1 } /* presentin=v21 */,
+ { 2, 30, 1695, 1, 7, UNI_DOMINO } /* indomino */,
+ { 1, 461, 2780, 2, 6, UNI_COPT } /* iscoptic */,
+ { 2, 4424, 4089, 17, 4, UNI_SIND } /* scriptextensions=sind */,
+ { 0, 461, 7036, 2, 26, UNI_HALFANDFULLFORMS } /* ishalfwidthandfullwidthforms */,
+ { 0, 5065, 5425, 12, 8, UNI_JG__MANICHAEANDHAMEDH } /* jg=manichaeandhamedh */,
+ { 1, 2287, 389, 3, 3, UNI_IN__6_DOT_3 } /* in=6.3 */,
+ { 0, 2483, 274, 5, 1, UNI_cased_values_index } /* cased= */,
+ { 1, 5895, 4607, 12, 13, UNI_SUPPUNCTUATION } /* issupplementalpunctuation */,
+ { 3, 1667, 7855, 4, 32, UNI_INIDC } /* blk=ideographicdescriptioncharacters */,
+ { 0, 4827, 0, 18, 0, UNI_ZP } /* paragraphseparator */,
+ { 0, 1823, 1522, 7, 4, UNI_UGAR } /* script=ugar */,
+ { 4, 6165, 116, 3, 4, UNI_SC__KNDA } /* sc=knda */,
+ { 0, 461, 5801, 2, 19, UNI_SUPARROWSB } /* issupplementalarrowsb */,
+ { 4, 510, 290, 5, 1, UNI_NV__3_SLASH_4 } /* nv=3/4 */,
+ { 65, 7214, 520, 25, 1, UNI_CCC__17 } /* canonicalcombiningclass=17 */,
+ { 0, 552, 2182, 3, 4, UNI_AGE__4_DOT_1 } /* age=4.1 */,
+ { 0, 959, 353, 8, 2, UNI_EXT } /* extender=y */,
+ { 0, 6090, 4511, 13, 9, UNI_MYANMAREXTB } /* block=myanmarextendedb */,
+ { 4, 1667, 7972, 5, 29, UNI_CUNEIFORMNUMBERS } /* blk=cuneiformnumbersandpunctuation */,
+ { 0, 4424, 168, 17, 4, UNI_COPT } /* scriptextensions=qaac */,
+ { 0, 261, 599, 5, 3, -UNI_CWKCF } /* cwkcf=no */,
+ { 3, 2494, 6945, 5, 15, UNI_GEOMETRICSHAPESEXT } /* isgeometricshapesext */,
+ { 1, 2766, 248, 3, 2, UNI_CN } /* gc=cn */,
+ { 0, 8071, 4410, 30, 4, UNI_CJKEXTA } /* blk=cjkunifiedideographsextensiona */,
+ { 4, 2514, 7620, 3, 19, UNI_MISCSYMBOLS } /* ismiscellaneoussymbols */,
+ { 0, 1102, 2068, 4, 4, UNI_MEND } /* scx=mend */,
+ { 81, 1102, 818, 4, 7, UNI_SHRD } /* scx=sharada */,
+ { 4, 510, 1805, 4, 4, UNI_NV__30000 } /* nv=30000 */,
+ { 24, 5460, 0, 19, 0, UNI_TERM } /* terminalpunctuation */,
+ { 33, 505, 353, 5, 2, UNI_NFDQC__Y } /* nfdqc=y */,
+ { 2, 1102, 1358, 4, 9, UNI_PALM } /* scx=palmyrene */,
+ { 0, 1200, 6382, 3, 18, UNI_CJKCOMPATFORMS } /* cjkcompatibilityforms */,
+ { 4, 6450, 4191, 14, 5, UNI_SB__LO } /* sentencebreak=lower */,
+ { 0, 2432, 1553, 3, 9, UNI_MISCARROWS } /* inmiscarrows */,
+ { 17, 1243, 6080, 2, 10, UNI_INGEORGIAN } /* blk=georgian */,
+ { 1, 298, 599, 2, 3, -UNI_RI } /* ri=no */,
+ { 7, 2536, 1540, 3, 3, UNI_JG__YEH } /* jg=yeh */,
+ { 256, 4424, 779, 17, 4, UNI_OSMA } /* scriptextensions=osma */,
+ { 2, 6165, 1191, 3, 4, UNI_SC__BENG } /* sc=beng */,
+ { 4, 6236, 1805, 19, 7, UNI_NV__1000000000000 } /* numericvalue=1000000000000 */,
+ { 13, 5595, 353, 21, 4, UNI_CWT } /* changeswhentitlecased=yes */,
+ { 0, 2494, 2370, 3, 7, UNI_GREEKEXT } /* isgreekext */,
+ { 62, 7267, 4827, 16, 18, UNI_ZP } /* generalcategory=paragraphseparator */,
+ { 0, 7804, 341, 10, 2, UNI_ideo_values_index } /* ideographic= */,
+ { 2, 4970, 352, 16, 3, UNI_EBASE } /* emojimodifierbase=y */,
+ { 0, 8343, 3257, 31, 6, UNI_INSC__CONSONANTKILLER } /* indicsyllabiccategory=consonantkiller */,
+ { 0, 1823, 31, 7, 4, UNI_AVST } /* script=avst */,
+ { 0, 5156, 543, 10, 3, UNI_WB__EB } /* wordbreak=ebg */,
+ { 5, 5168, 1486, 17, 3, UNI__PERL_CHARNAME_BEGIN } /* _perl_charname_begin */,
+ { 0, 461, 5857, 2, 19, UNI_MONGOLIANSUP } /* ismongoliansupplement */,
+ { 1, 6165, 2811, 3, 5, UNI_KHMR } /* sc=khmer */,
+ { 0, 6163, 2613, 5, 6, UNI_LB__ZWJ } /* insc=joiner */,
+ { 2, 597, 1162, 3, 6, UNI_DT__ENC } /* dt=circle */,
+ { 1, 4519, 0, 18, 0, UNI_CYRILLICEXTC } /* block=cyrillicextc */,
+ { 14, 461, 7724, 2, 28, UNI_VSSUP } /* isvariationselectorssupplement */,
+ { 14, 2004, 248, 5, 5, UNI_POSIXCNTRL } /* posixcntrl */,
+ { 3, 4391, 2172, 14, 8, UNI_NV__3_SLASH_8 } /* numericvalue=3.750e-01 */,
+ { 1, 0, 3693, 1, 3, UNI_LISU } /* lisu */,
+ { 9, 2002, 4569, 7, 5, UNI_POSIXUPPER } /* isposixupper */,
+ { 0, 2324, 2441, 6, 11, UNI_INNANDINAGARI } /* block=nandinagari */,
+ { 86, 5769, 599, 4, 3, -UNI_EMOD } /* emod=no */,
+ { 4, 7724, 353, 17, 4, UNI_VS } /* variationselector=yes */,
+ { 0, 461, 909, 2, 4, UNI_BALI } /* isbali */,
+ { 0, 2403, 0, 4, 0, UNI_ETHI } /* ethi */,
+ { 1, 1102, 2441, 4, 4, UNI_NAND } /* scx=nand */,
+ { 0, 115, 0, 2, 0, UNI_SK } /* sk */,
+ { 1, 5979, 0, 3, 0, UNI_vo_values_index } /* vo= */,
+ { 0, 5574, 934, 21, 6, -UNI_CWL } /* changeswhenlowercased=false */,
+ { 40, 339, 289, 4, 1, UNI_CCC__0 } /* ccc=0 */,
+ { 1, 2180, 2657, 4, 8, UNI_NV__2_SLASH_5 } /* nv=4.000e-01 */,
+ { 0, 309, 7480, 2, 14, UNI_PUA } /* inprivateusearea */,
+ { 1, 7214, 288, 25, 2, UNI_CCC__130 } /* canonicalcombiningclass=130 */,
+ { 25, 1667, 5682, 4, 5, UNI_INGREEK } /* blk=greek */,
+ { 1, 461, 4060, 2, 15, UNI_BRAI } /* isbraillepatterns */,
+ { 0, 7804, 353, 11, 2, UNI_IDEO } /* ideographic=y */,
+ { 0, 1454, 934, 2, 2, -UNI_SD } /* sd=f */,
+ { 94, 7267, 115, 16, 2, UNI_SK } /* generalcategory=sk */,
+ { 0, 1667, 7480, 4, 14, UNI_PUA } /* blk=privateusearea */,
+ { 0, 5658, 6881, 15, 9, UNI_IDENTIFIERTYPE__EXCLUSION } /* identifiertype=exclusion */,
+ { 115, 1801, 1805, 7, 5, UNI_NV__100000000 } /* nv=100000000 */,
+ { 2, 1667, 3692, 4, 7, UNI_LISUSUP } /* blk=lisusup */,
+ { 0, 8343, 2382, 22, 5, UNI_INSC__VOWEL } /* indicsyllabiccategory=vowel */,
+ { 2, 1667, 6332, 4, 19, UNI_JAMOEXTB } /* blk=hanguljamoextendedb */,
+ { 0, 309, 1834, 2, 11, UNI_INSORASOMPENG } /* insorasompeng */,
+ { 1, 2324, 1509, 6, 8, UNI_INJAVANESE } /* block=javanese */,
+ { 1, 4391, 3876, 15, 2, UNI_NV__3_SLASH_80 } /* numericvalue=3/80 */,
+ { 0, 7495, 393, 27, 2, UNI_CCC__15 } /* canonicalcombiningclass=ccc15 */,
+ { 1, 461, 98, 2, 4, UNI_HLUW } /* ishluw */,
+ { 1, 6165, 176, 3, 4, UNI_SC__ROHG } /* sc=rohg */,
+ { 0, 5658, 6534, 10, 14, UNI_IDENTIFIERSTATUS__ALLOWED } /* identifierstatus=allowed */,
+ { 0, 339, 2742, 4, 4, UNI_CCC__6 } /* ccc=hanr */,
+ { 0, 3490, 7467, 12, 13, UNI_CYRILLICSUP } /* blk=cyrillicsupplementary */,
+ { 3, 1667, 1322, 4, 9, UNI_INOLDITALIC } /* blk=olditalic */,
+ { 1, 4424, 4060, 17, 7, UNI_BRAI } /* scriptextensions=braille */,
+ { 2, 1102, 1205, 4, 4, UNI_GRAN } /* scx=gran */,
+ { 2, 3391, 2108, 13, 3, UNI_NV__500 } /* numericvalue=500 */,
+ { 1, 716, 7443, 4, 24, UNI_KATAKANAEXT } /* inkatakanaphoneticextensions */,
+ { 0, 423, 24, 3, 3, UNI_INAHOM } /* inahom */,
+ { 0, 1728, 8174, 6, 29, UNI_ARABICMATH } /* arabicmathematicalalphabeticsymbols */,
+ { 0, 4424, 917, 17, 8, UNI_BASS } /* scriptextensions=bassavah */,
+ { 0, 2432, 6597, 3, 21, UNI_MISCTECHNICAL } /* inmiscellaneoustechnical */,
+ { 0, 309, 6900, 2, 14, UNI_BYZANTINEMUSIC } /* inbyzantinemusic */,
+ { 0, 6841, 8505, 23, 3, UNI_di_values_index } /* defaultignorablecodepoint= */,
+ { 7, 253, 585, 4, 5, UNI_CWCF } /* cwcf=true */,
+ { 0, 339, 3141, 4, 11, UNI_CCC__DA } /* ccc=doubleabove */,
+ { 22, 6450, 2968, 14, 3, UNI_SB__SE } /* sentencebreak=sep */,
+ { 1, 2525, 0, 11, 0, UNI_XPOSIXBLANK } /* xposixblank */,
+ { 1, 2832, 4511, 10, 9, UNI_CYRILLICEXTB } /* iscyrillicextendedb */,
+ { 85, 309, 333, 2, 6, UNI_INCARIAN } /* incarian */,
+ { 2, 2280, 2199, 11, 3, UNI_IN__12 } /* presentin=12.0 */,
+ { 3, 6165, 3475, 3, 15, UNI_ZANB } /* sc=zanabazarsquare */,
+ { 17, 461, 1027, 2, 6, UNI_YEZI } /* isyezidi */,
+ { 86, 2732, 649, 5, 4, UNI_INADLAM } /* blk=adlam */,
+ { 4, 1102, 152, 4, 4, UNI_OSGE } /* scx=osge */,
+ { 0, 461, 4725, 2, 9, UNI_TANGUTSUP } /* istangutsup */,
+ { 3, 309, 6495, 2, 5, UNI_MUSIC } /* inmusic */,
+ { 0, 5216, 6957, 11, 9, UNI_LATINEXTE } /* block=latinextendede */,
+ { 0, 10, 2046, 1, 11, UNI_GONM } /* masaramgondi */,
+ { 70, 5895, 5878, 4, 17, UNI_SUNDANESESUP } /* issundanesesupplement */,
+ { 8, 2536, 4228, 3, 7, UNI_JG__HEHGOAL } /* jg=hehgoal */,
+ { 2, 375, 934, 5, 6, -UNI_GREXT } /* grext=false */,
+ { 1, 461, 426, 2, 4, UNI_MRO } /* ismroo */,
+ { 5, 1243, 995, 2, 3, UNI_XPOSIXBLANK } /* blank */,
+ { 0, 4360, 309, 10, 2, UNI_LB__IN } /* linebreak=in */,
+ { 17, 4852, 584, 9, 6, UNI_XPOSIXSPACE } /* whitespace=true */,
+ { 1, 4360, 1933, 10, 9, UNI_LB__AI } /* linebreak=ambiguous */,
+ { 1, 8667, 0, 18, 0, UNI_CANS } /* canadianaboriginal */,
+ { 2, 309, 216, 2, 4, UNI_INTOTO } /* intoto */,
+ { 2, 461, 43, 2, 4, UNI_BUHD } /* isbuhd */,
+ { 20, 2432, 2046, 3, 11, UNI_INMASARAMGONDI } /* inmasaramgondi */,
+ { 0, 1823, 1086, 7, 4, UNI_SC__KTHI } /* script=kthi */,
+ { 2, 2514, 4511, 9, 9, UNI_MYANMAREXTB } /* ismyanmarextendedb */,
+ { 0, 1397, 0, 7, 0, UNI_IDS } /* idstart */,
+ { 4, 1667, 6103, 4, 13, UNI_MATHOPERATORS } /* blk=mathoperators */,
+ { 1, 3098, 598, 7, 4, -UNI_XPOSIXXDIGIT } /* hexdigit=no */,
+ { 0, 461, 422, 2, 4, UNI_LINA } /* islina */,
+ { 0, 4424, 474, 17, 4, UNI_VAI } /* scriptextensions=vaii */,
+ { 2, 3407, 290, 14, 1, UNI_NV__44 } /* numericvalue=44 */,
+ { 0, 7752, 4251, 23, 4, UNI_JG__MANICHAEANQOPH } /* joininggroup=manichaeanqoph */,
+ { 0, 406, 353, 3, 2, UNI_DIA } /* dia=y */,
+ { 6, 225, 0, 2, 0, UNI_PE } /* pe */,
+ { 0, 6090, 4636, 7, 15, UNI_MISCMATHSYMBOLSB } /* block=miscmathsymbolsb */,
+ { 0, 2324, 1572, 6, 10, UNI_INOLDPERSIAN } /* block=oldpersian */,
+ { 4, 461, 3040, 2, 13, UNI_QMARK } /* isquotationmark */,
+ { 1, 6618, 0, 8, 0, UNI_INPC__TOP } /* inpc=top */,
+ { 0, 6165, 474, 3, 4, UNI_VAI } /* sc=vaii */,
+ { 0, 1823, 1562, 7, 10, UNI_NAGM } /* script=nagmundari */,
+ { 0, 2324, 7467, 6, 28, UNI_SUPPUAA } /* block=supplementaryprivateuseareaa */,
+ { 2, 1102, 1779, 4, 11, UNI_MEDF } /* scx=medefaidrin */,
+ { 0, 461, 434, 2, 4, UNI_OGAM } /* isogam */,
+ { 3, 1272, 3163, 3, 14, UNI_CONTROLPICTURES } /* iscontrolpictures */,
+ { 0, 2002, 1079, 3, 7, UNI_POSIXWORD } /* isperlword */,
+ { 4, 2842, 6193, 8, 5, UNI_ETHIOPICSUP } /* isethiopicsup */,
+ { 0, 1823, 3026, 7, 14, UNI_SC__PHLP } /* script=psalterpahlavi */,
+ { 0, 2324, 4651, 6, 11, UNI_BOPOMOFOEXT } /* block=bopomofoext */,
+ { 1, 1376, 0, 9, 0, UNI_SAMR } /* samaritan */,
+ { 6, 4360, 272, 10, 2, UNI_LB__CB } /* linebreak=cb */,
+ { 1, 7267, 4191, 16, 15, UNI_LOWERCASELETTER } /* generalcategory=lowercaseletter */,
+ { 65, 339, 0, 4, 0, UNI_ccc_values_index } /* ccc= */,
+ { 0, 461, 608, 2, 4, UNI_ELBA } /* iselba */,
+ { 6, 292, 1070, 3, 2, UNI_NV__31 } /* nv=31 */,
+ { 12, 1424, 288, 7, 2, UNI_CCC__30 } /* ccc=ccc30 */,
+ { 0, 1823, 43, 7, 4, UNI_SC__BUHD } /* script=buhd */,
+ { 8, 1823, 78, 7, 4, UNI_DSRT } /* script=dsrt */,
+ { 4, 3984, 934, 17, 6, -UNI_EPRES } /* emojipresentation=false */,
+ { 16, 3892, 353, 16, 2, UNI_STERM } /* sentenceterminal=y */,
+ { 0, 1255, 0, 7, 0, UNI_SIDD } /* siddham */,
+ { 2, 7011, 689, 24, 3, UNI_CCC__214 } /* canonicalcombiningclass=ata */,
+ { 6, 3391, 345, 13, 2, UNI_NV__18 } /* numericvalue=18 */,
+ { 2, 4424, 991, 17, 6, UNI_HATR } /* scriptextensions=hatran */,
+ { 1, 3391, 388, 13, 2, UNI_NV__26 } /* numericvalue=26 */,
+ { 2, 2536, 4221, 3, 14, UNI_JG__HAMZAONHEHGOAL } /* jg=hamzaonhehgoal */,
+ { 36, 1823, 917, 7, 8, UNI_BASS } /* script=bassavah */,
+ { 10, 309, 5448, 2, 3, UNI_PUA } /* inpua */,
+ { 0, 154, 6945, 3, 20, UNI_GEOMETRICSHAPESEXT } /* geometricshapesextended */,
+ { 0, 1102, 1144, 4, 9, UNI_BHKS } /* scx=bhaiksuki */,
+ { 0, 5937, 934, 21, 2, -UNI__PERL_NCHAR } /* noncharactercodepoint=f */,
+ { 0, 6618, 0, 5, 0, UNI_inpc_values_index } /* inpc= */,
+ { 0, 4043, 585, 17, 5, UNI_IDSB } /* idsbinaryoperator=true */,
+ { 1, 6427, 702, 20, 4, UNI_JG__AFRICANNOON } /* joininggroup=africannoon */,
+ { 5, 533, 4, 3, 2, UNI_SB__LO } /* sb=lo */,
+ { 5, 4424, 2811, 17, 5, UNI_KHMR } /* scriptextensions=khmer */,
+ { 2, 461, 7537, 2, 10, UNI_XPOSIXALPHA } /* isalphabetic */,
+ { 12, 6287, 6021, 14, 8, UNI_BC__LRO } /* bc=lefttorightoverride */,
+ { 0, 7011, 582, 25, 2, UNI_CCC__BR } /* canonicalcombiningclass=222 */,
+ { 2, 7274, 326, 9, 2, UNI_PF } /* category=pf */,
+ { 1, 4391, 394, 15, 1, UNI_NV__3_SLASH_5 } /* numericvalue=3/5 */,
+ { 0, 5065, 4267, 13, 4, UNI_JG__MANICHAEANTETH } /* jg=manichaeanteth */,
+ { 132, 5185, 0, 20, 0, UNI_HLUW } /* anatolianhieroglyphs */,
+ { 3, 1492, 5863, 7, 13, UNI_GEORGIANSUP } /* ingeorgiansupplement */,
+ { 5, 461, 840, 2, 7, UNI_TGLG } /* istagalog */,
+ { 12, 271, 4369, 2, 2, UNI_Z } /* gc=z */,
+ { 1, 1894, 599, 5, 3, -UNI_BIDIM } /* bidim=no */,
+ { 1, 4360, 543, 10, 2, UNI_EBASE } /* linebreak=eb */,
+ { 3, 324, 5813, 3, 7, UNI_SUPARROWSB } /* suparrowsb */,
+ { 9, 2348, 933, 12, 3, -UNI_CI } /* caseignorable=f */,
+ { 1, 6165, 369, 3, 4, UNI_GOTH } /* sc=goth */,
+ { 9, 2523, 1942, 8, 5, UNI_XPOSIXGRAPH } /* isxposixgraph */,
+ { 33, 204, 84, 2, 2, UNI_TFNG } /* tfng */,
+ { 2, 7591, 380, 3, 6, UNI_LB__HY } /* lb=hyphen */,
+ { 7, 266, 353, 3, 2, UNI_CWT } /* cwt=y */,
+ { 17, 5283, 0, 9, 0, UNI_HALFMARKS } /* halfmarks */,
+ { 0, 461, 1303, 2, 9, UNI_TALU } /* isnewtailue */,
+ { 2, 2324, 2852, 6, 12, UNI_MAHJONG } /* block=mahjongtiles */,
+ { 0, 292, 345, 3, 2, UNI_NV__18 } /* nv=18 */,
+ { 0, 309, 4862, 2, 4, UNI_RUMI } /* inrumi */,
+ { 18, 6870, 599, 20, 2, -UNI_CE } /* compositionexclusion=n */,
+ { 0, 5616, 934, 21, 2, -UNI_CWU } /* changeswhenuppercased=f */,
+ { 26, 1102, 1003, 4, 4, UNI_LEPC } /* scx=lepc */,
+ { 2, 6165, 634, 3, 7, UNI_SC__HANO } /* sc=hanunoo */,
+ { 4, 1667, 32, 4, 2, UNI_INVS } /* blk=vs */,
+ { 6, 309, 426, 2, 3, UNI_INMRO } /* inmro */,
+ { 2, 1065, 891, 5, 2, UNI_NV__1_SLASH_10 } /* nv=1/10 */,
+ { 8, 2324, 3938, 7, 16, UNI_UCAS } /* block=canadiansyllabics */,
+ { 4, 4424, 794, 17, 4, UNI_LANA } /* scriptextensions=lana */,
+ { 2, 461, 6000, 2, 21, UNI_YIJING } /* isyijinghexagramsymbols */,
+ { 0, 4569, 0, 5, 0, UNI_XPOSIXUPPER } /* upper */,
+ { 1, 1667, 1505, 7, 4, UNI_CJKEXTA } /* blk=cjkexta */,
+ { 2, 30, 1384, 1, 7, UNI_INTHAANA } /* inthaana */,
+ { 0, 370, 6683, 3, 8, UNI_LO } /* otherletter */,
+ { 1, 309, 1501, 2, 8, UNI_JAMOEXTA } /* injamoexta */,
+ { 3, 461, 794, 2, 4, UNI_LANA } /* islana */,
+ { 1, 1667, 1033, 4, 8, UNI_JAMOEXTB } /* blk=jamoextb */,
+ { 1, 1667, 4926, 4, 5, UNI_INTAMIL } /* blk=tamil */,
+ { 6, 248, 0, 5, 0, UNI_XPOSIXCNTRL } /* cntrl */,
+ { 0, 4360, 18, 10, 2, UNI_LB__BA } /* linebreak=ba */,
+ { 8, 309, 1234, 2, 7, UNI_INMULTANI } /* inmultani */,
+ { 1, 1424, 7239, 7, 2, UNI_CCC__28 } /* ccc=ccc28 */,
+ { 5, 461, 6185, 2, 13, UNI_GLAGOLITICSUP } /* isglagoliticsup */,
+ { 1, 339, 389, 5, 1, UNI_CCC__16 } /* ccc=16 */,
+ { 1, 6692, 0, 22, 0, UNI_TRANSPORTANDMAP } /* transportandmapsymbols */,
+ { 0, 5065, 0, 19, 0, UNI_JG__MANICHAEANTWENTY } /* jg=manichaeantwenty */,
+ { 15, 8311, 4410, 32, 4, UNI_CJKEXTA } /* block=cjkunifiedideographsextensiona */,
+ { 99, 30, 4553, 1, 16, UNI_TITLE } /* istitlecaseletter */,
+ { 2, 292, 1153, 3, 2, UNI_NV__24 } /* nv=24 */,
+ { 0, 32, 934, 2, 6, -UNI_VS } /* vs=false */,
+ { 5, 887, 0, 6, 0, UNI_AGE__10 } /* age=10 */,
+ { 0, 461, 4951, 2, 4, UNI_EGYP } /* isegyp */,
+ { 0, 4391, 346, 14, 1, UNI_NV__38 } /* numericvalue=38 */,
+ { 1, 271, 2720, 3, 3, UNI_RI } /* gcb=ri */,
+ { 1, 1667, 1696, 4, 11, UNI_DOMINO } /* blk=dominotiles */,
+ { 0, 30, 867, 1, 8, UNI_INTIRHUTA } /* intirhuta */,
+ { 2, 375, 598, 4, 2, UNI_grext_values_index } /* grext= */,
+ { 4, 2280, 563, 10, 3, UNI_IN__8 } /* presentin=8.0 */,
+ { 11, 1667, 6677, 4, 15, UNI_MODIFIERLETTERS } /* blk=modifierletters */,
+ { 5, 1667, 6900, 4, 14, UNI_BYZANTINEMUSIC } /* blk=byzantinemusic */,
+ { 0, 4424, 4487, 17, 6, UNI_ZYYY } /* scriptextensions=common */,
+ { 15, 461, 683, 2, 5, UNI_TAKR } /* istakri */,
+ { 1, 461, 117, 2, 2, UNI_XPOSIXDIGIT } /* isnd */,
+ { 0, 1823, 1098, 7, 4, UNI_NSHU } /* script=nshu */,
+ { 46, 1102, 188, 4, 4, UNI_SGNW } /* scx=sgnw */,
+ { 1, 461, 3649, 2, 14, UNI_PHONETICEXTSUP } /* isphoneticextsup */,
+ { 0, 2287, 2154, 3, 2, UNI_IN__13 } /* in=13 */,
+ { 2, 940, 585, 6, 5, UNI_COMPEX } /* compex=true */,
+ { 0, 309, 6487, 2, 13, UNI_ZNAMENNYMUSIC } /* inznamennymusic */,
+ { 1, 2324, 917, 6, 8, UNI_INBASSAVAH } /* block=bassavah */,
+ { 0, 1391, 3001, 3, 7, UNI_WB__NU } /* wb=numeric */,
+ { 14, 5216, 3773, 7, 15, UNI_LINEARBIDEOGRAMS } /* block=linearbideograms */,
+ { 1, 4002, 0, 4, 0, UNI_MODI } /* modi */,
+ { 8, 1455, 585, 3, 2, UNI_DEP } /* dep=t */,
+ { 36, 1823, 718, 7, 7, UNI_SC__KNDA } /* script=kannada */,
+ { 0, 4146, 0, 15, 0, UNI_PD } /* dashpunctuation */,
+ { 2, 2324, 951, 6, 8, UNI_INDUPLOYAN } /* block=duployan */,
+ { 0, 271, 6, 4, 2, UNI_LB__CR } /* gcb=cr */,
+ { 4, 7887, 4680, 28, 4, UNI_CJKEXTF } /* incjkunifiedideographsextensionf */,
+ { 23, 2324, 3649, 6, 11, UNI_PHONETICEXT } /* block=phoneticext */,
+ { 1, 5156, 2292, 10, 9, UNI_WB__WSEGSPACE } /* wordbreak=wsegspace */,
+ { 2, 1883, 599, 11, 3, -UNI_BIDIC } /* bidicontrol=no */,
+ { 1, 2324, 4075, 6, 15, UNI_CURRENCYSYMBOLS } /* block=currencysymbols */,
+ { 1, 2324, 333, 6, 6, UNI_INCARIAN } /* block=carian */,
+ { 8, 1102, 208, 4, 4, UNI_TGLG } /* scx=tglg */,
+ { 80, 6618, 2719, 3, 7, UNI_INPC__RIGHT } /* inpc=right */,
+ { 4, 2324, 1209, 6, 4, UNI_INTHAI } /* block=thai */,
+ { 0, 1102, 6642, 4, 6, UNI_BRAH } /* scx=brahmi */,
+ { 0, 4424, 5185, 17, 20, UNI_HLUW } /* scriptextensions=anatolianhieroglyphs */,
+ { 2, 1823, 810, 7, 4, UNI_SC__SYRC } /* script=syrc */,
+ { 1, 4424, 1572, 17, 10, UNI_XPEO } /* scriptextensions=oldpersian */,
+ { 3, 21, 5820, 1, 15, UNI_ENCLOSEDALPHANUM } /* enclosedalphanum */,
+ { 0, 3014, 1070, 11, 2, UNI_IN__3_DOT_1 } /* presentin=v31 */,
+ { 8, 7591, 9, 3, 2, UNI_LB__CM } /* lb=cm */,
+ { 0, 2280, 386, 10, 3, UNI_IN__3_DOT_2 } /* presentin=3.2 */,
+ { 0, 1102, 1522, 4, 4, UNI_UGAR } /* scx=ugar */,
+ { 0, 5205, 8039, 5, 32, UNI_MISCMATHSYMBOLSA } /* blk=miscellaneousmathematicalsymbolsa */,
+ { 3, 3391, 2656, 13, 9, UNI_NV__1_SLASH_2 } /* numericvalue=5.000e-01 */,
+ { 0, 1667, 3349, 4, 15, UNI_INMEROITICCURSIVE } /* blk=meroiticcursive */,
+ { 0, 1894, 0, 12, 0, UNI_BIDIM } /* bidimirrored */,
+ { 0, 339, 6328, 4, 3, UNI_CCC__202 } /* ccc=atb */,
+ { 0, 30, 1695, 1, 12, UNI_DOMINO } /* indominotiles */,
+ { 2, 2525, 4150, 6, 5, UNI_XPOSIXPUNCT } /* xposixpunct */,
+ { 58, 2324, 1331, 6, 9, UNI_INOLDPERMIC } /* block=oldpermic */,
+ { 0, 4424, 184, 17, 4, UNI_SAMR } /* scriptextensions=samr */,
+ { 9, 309, 3692, 2, 14, UNI_LISUSUP } /* inlisusupplement */,
+ { 0, 7495, 2165, 28, 2, UNI_WB__EB } /* canonicalcombiningclass=ccc133 */,
+ { 0, 4424, 732, 17, 7, UNI_LINA } /* scriptextensions=lineara */,
+ { 0, 7267, 2815, 20, 7, UNI_SO } /* generalcategory=othersymbol */,
+ { 15, 6165, 172, 3, 4, UNI_RJNG } /* sc=rjng */,
+ { 0, 2280, 2222, 9, 4, UNI_IN__6_DOT_2 } /* presentin=6.2 */,
+ { 2, 7011, 2154, 24, 2, UNI_CCC__13 } /* canonicalcombiningclass=13 */,
+ { 0, 2988, 353, 13, 2, UNI_NFCQC__Y } /* nfcquickcheck=y */,
+ { 0, 7591, 184, 3, 2, UNI_LB__SA } /* lb=sa */,
+ { 6, 1823, 3663, 7, 4, UNI_SC__DEVA } /* script=deva */,
+ { 1, 1102, 43, 4, 4, UNI_BUHD } /* scx=buhd */,
+ { 20, 1823, 1978, 7, 7, UNI_SC__SOGD } /* script=sogdian */,
+ { 5, 1198, 5694, 3, 18, UNI_COUNTINGROD } /* incountingrodnumerals */,
+ { 1, 1011, 934, 2, 6, -UNI_CI } /* ci=false */,
+ { 0, 2324, 1144, 6, 9, UNI_INBHAIKSUKI } /* block=bhaiksuki */,
+ { 1, 7011, 5523, 24, 9, UNI_CCC__BL } /* canonicalcombiningclass=belowleft */,
+ { 0, 7495, 1316, 28, 2, UNI_CCC__103 } /* canonicalcombiningclass=ccc103 */,
+ { 0, 2324, 868, 6, 7, UNI_INTIRHUTA } /* block=tirhuta */,
+ { 1, 7011, 3403, 23, 3, UNI_CCC__23 } /* canonicalcombiningclass=23 */,
+ { 0, 916, 5671, 4, 4, -UNI_EBASE } /* ebase=no */,
+ { 10, 1942, 933, 11, 3, -UNI_GRBASE } /* graphemebase=f */,
+ { 1, 3954, 0, 17, 0, UNI_AGHB } /* caucasianalbanian */,
+ { 0, 7198, 4607, 14, 13, UNI_SUPPUNCTUATION } /* blk=supplementalpunctuation */,
+ { 0, 1075, 2107, 4, 8, UNI_NV__5_SLASH_2 } /* nv=2.500e+00 */,
+ { 32, 2, 585, 3, 2, UNI_CWL } /* cwl=t */,
+ { 1, 597, 324, 3, 3, UNI_DT__SUP } /* dt=sup */,
+ { 2, 7274, 4191, 9, 15, UNI_LOWERCASELETTER } /* category=lowercaseletter */,
+ { 20, 1272, 6557, 5, 19, UNI_CJKCOMPATIDEOGRAPHSSUP } /* iscjkcompatideographssup */,
+ { 137, 1883, 353, 11, 2, UNI_BIDIC } /* bidicontrol=y */,
+ { 2, 1198, 2373, 4, 5, UNI_CJKEXTE } /* incjkexte */,
+ { 3, 641, 1874, 7, 8, UNI_LB__H3 } /* hst=lvtsyllable */,
+ { 0, 375, 598, 4, 4, -UNI_GREXT } /* grext=no */,
+ { 0, 6427, 4751, 13, 5, UNI_JG__SADHE } /* joininggroup=sadhe */,
+ { 0, 461, 5440, 2, 20, UNI_HMNP } /* isnyiakengpuachuehmong */,
+ { 0, 309, 5283, 2, 9, UNI_HALFMARKS } /* inhalfmarks */,
+ { 0, 3633, 2619, 3, 12, UNI_LOWSURROGATES } /* inlowsurrogates */,
+ { 64, 7267, 3191, 15, 7, UNI_L } /* generalcategory=letter */,
+ { 0, 3407, 2657, 14, 8, UNI_NV__2_SLASH_5 } /* numericvalue=4.000e-01 */,
+ { 0, 309, 3026, 2, 14, UNI_INPSALTERPAHLAVI } /* inpsalterpahlavi */,
+ { 0, 309, 571, 2, 7, UNI_INAVESTAN } /* inavestan */,
+ { 2, 3514, 24, 7, 3, UNI_INAHOM } /* block=ahom */,
+ { 7, 2324, 4819, 6, 8, UNI_DINGBATS } /* block=dingbats */,
+ { 51, 4896, 0, 15, 0, UNI_BAMUMSUP } /* bamumsupplement */,
+ { 2, 1823, 1255, 7, 7, UNI_SIDD } /* script=siddham */,
+ { 0, 461, 266, 2, 3, UNI_CWT } /* iscwt */,
+ { 1, 309, 6797, 2, 18, UNI_DEVANAGARIEXT } /* indevanagariextended */,
+ { 8, 6351, 0, 23, 0, UNI_COMPATJAMO } /* hangulcompatibilityjamo */,
+ { 12, 1102, 1853, 4, 4, UNI_SYLO } /* scx=sylo */,
+ { 0, 7198, 837, 8, 3, UNI_SUPPUAA } /* blk=suppuaa */,
+ { 4, 6909, 0, 14, 0, UNI_MUSIC } /* musicalsymbols */,
+ { 1, 2523, 3268, 8, 5, UNI_XPOSIXALNUM } /* isxposixalnum */,
+ { 11, 466, 0, 2, 0, UNI_SO } /* so */,
+ { 1, 3349, 0, 4, 0, UNI_MERO } /* mero */,
+ { 1, 3204, 599, 14, 2, -UNI_GREXT } /* graphemeextend=n */,
+ { 0, 8601, 1110, 7, 7, UNI_SPECIALS } /* block=specials */,
+ { 0, 4377, 599, 14, 3, UNI_NFKDQC__N } /* nfkdquickcheck=no */,
+ { 0, 1667, 1465, 4, 10, UNI_INDIVESAKURU } /* blk=divesakuru */,
+ { 0, 2287, 6262, 3, 3, UNI_IN__2_DOT_1 } /* in=2.1 */,
+ { 0, 1530, 4511, 6, 9, UNI_KANAEXTB } /* iskanaextendedb */,
+ { 0, 7752, 4255, 23, 4, UNI_JG__MANICHAEANRESH } /* joininggroup=manichaeanresh */,
+ { 0, 7383, 5318, 10, 3, UNI_BC__RLE } /* bidiclass=rle */,
+ { 32, 6062, 1037, 14, 4, UNI_ETHIOPICEXTB } /* block=ethiopicextb */,
+ { 1, 7267, 466, 16, 2, UNI_SO } /* generalcategory=so */,
+ { 34, 1200, 1505, 3, 4, UNI_CJKEXTA } /* cjkexta */,
+ { 0, 887, 6262, 5, 3, UNI_AGE__12_DOT_1 } /* age=12.1 */,
+ { 0, 3633, 130, 14, 2, UNI_LATINEXTF } /* inlatinextendedf */,
+ { 0, 7383, 5497, 10, 18, UNI_BC__FSI } /* bidiclass=firststrongisolate */,
+ { 2, 5460, 585, 19, 5, UNI_TERM } /* terminalpunctuation=true */,
+ { 0, 3878, 1805, 14, 5, UNI_NV__900000 } /* numericvalue=900000 */,
+ { 4, 735, 934, 2, 2, UNI_EA__F } /* ea=f */,
+ { 1, 1391, 959, 3, 6, UNI_WB__EXTEND } /* wb=extend */,
+ { 3, 521, 599, 6, 2, -UNI_PATSYN } /* patsyn=n */,
+ { 0, 30, 8141, 1, 19, UNI_IDEOGRAPHICSYMBOLS } /* isideographicsymbols */,
+ { 0, 2403, 1505, 8, 4, UNI_ETHIOPICEXTA } /* ethiopicexta */,
+ { 68, 3803, 1795, 14, 6, UNI_NFCQC__M } /* nfkcquickcheck=maybe */,
+ { 0, 625, 0, 2, 0, UNI_PI } /* pi */,
+ { 0, 7495, 344, 27, 2, UNI_CCC__21 } /* canonicalcombiningclass=ccc21 */,
+ { 0, 7495, 343, 28, 1, UNI_CCC__11 } /* canonicalcombiningclass=ccc11 */,
+ { 0, 461, 4896, 2, 5, UNI_BAMU } /* isbamum */,
+ { 0, 5595, 934, 21, 2, -UNI_CWT } /* changeswhentitlecased=f */,
+ { 0, 3100, 0, 6, 0, UNI_XPOSIXXDIGIT } /* xdigit */,
+ { 3, 7383, 4880, 10, 16, UNI_BC__S } /* bidiclass=segmentseparator */,
+ { 1, 4424, 446, 17, 4, UNI_PHLI } /* scriptextensions=phli */,
+ { 25, 6165, 1021, 3, 6, UNI_WCHO } /* sc=wancho */,
+ { 4, 2503, 585, 11, 5, UNI_JOINC } /* joincontrol=true */,
+ { 36, 605, 533, 2, 3, UNI_idsb_values_index } /* idsb= */,
+ { 12, 6165, 1098, 3, 4, UNI_NSHU } /* sc=nshu */,
+ { 9, 271, 543, 4, 3, UNI_WB__EB } /* gcb=ebg */,
+ { 0, 4424, 1285, 17, 9, UNI_SIND } /* scriptextensions=khudawadi */,
+ { 2, 309, 1358, 2, 9, UNI_PALM } /* inpalmyrene */,
+ { 0, 2324, 527, 6, 6, UNI_INREJANG } /* block=rejang */,
+ { 192, 1272, 6382, 5, 18, UNI_CJKCOMPATFORMS } /* iscjkcompatibilityforms */,
+ { 147, 6165, 164, 3, 4, UNI_PHNX } /* sc=phnx */,
+ { 26, 1011, 599, 2, 3, -UNI_CI } /* ci=no */,
+ { 6, 3391, 769, 13, 3, UNI_NV__7_SLASH_2 } /* numericvalue=7/2 */,
+ { 0, 2324, 3026, 6, 14, UNI_INPSALTERPAHLAVI } /* block=psalterpahlavi */,
+ { 7, 1397, 353, 4, 4, UNI_IDST } /* idst=yes */,
+ { 0, 7134, 599, 26, 3, -UNI_PCM } /* prependedconcatenationmark=no */,
+ { 33, 7267, 4016, 16, 14, UNI_ZS } /* generalcategory=spaceseparator */,
+ { 3, 1823, 1235, 8, 6, UNI_SC__MULT } /* script=multani */,
+ { 12, 533, 281, 3, 2, UNI_SB__XX } /* sb=xx */,
+ { 17, 6165, 499, 3, 4, UNI_LYDI } /* sc=lydi */,
+ { 0, 2536, 4263, 3, 4, UNI_JG__QAPH } /* jg=qaph */,
+ { 0, 4407, 585, 17, 2, UNI_RI } /* regionalindicator=t */,
+ { 103, 7495, 391, 27, 2, UNI_CCC__34 } /* canonicalcombiningclass=ccc34 */,
+ { 9, 7274, 3101, 9, 5, UNI_XPOSIXDIGIT } /* category=digit */,
+ { 4, 4424, 1853, 17, 4, UNI_SYLO } /* scriptextensions=sylo */,
+ { 17, 5216, 5848, 11, 9, UNI_LATINEXTA } /* block=latinextendeda */,
+ { 0, 1734, 4710, 3, 15, UNI_SYRIACSUP } /* issyriacsupplement */,
+ { 1, 3013, 934, 5, 2, -UNI_EPRES } /* epres=f */,
+ { 9, 339, 118, 4, 2, UNI_CCC__DA } /* ccc=da */,
+ { 34, 309, 951, 2, 8, UNI_INDUPLOYAN } /* induployan */,
+ { 80, 1102, 1334, 4, 4, UNI_PERM } /* scx=perm */,
+ { 0, 6816, 353, 25, 2, UNI_CWKCF } /* changeswhennfkccasefolded=y */,
+ { 5, 1823, 847, 7, 7, UNI_LANA } /* script=taitham */,
+ { 79, 2766, 2360, 3, 10, UNI_CN } /* gc=unassigned */,
+ { 154, 461, 4569, 2, 5, UNI_XPOSIXUPPER } /* isupper */,
+ { 12, 6165, 802, 3, 4, UNI_SARB } /* sc=sarb */,
+ { 1, 3391, 290, 13, 2, UNI_NV__40 } /* numericvalue=40 */,
+ { 0, 1667, 1033, 4, 4, UNI_JAMO } /* blk=jamo */,
+ { 1, 733, 5820, 3, 18, UNI_ENCLOSEDALPHANUMSUP } /* inenclosedalphanumsup */,
+ { 5, 6735, 919, 22, 3, UNI_JG__MALAYALAMSSA } /* joininggroup=malayalamssa */,
+ { 1, 2, 34, 2, 1, UNI_CWT } /* cwt */,
+ { 0, 3001, 0, 12, 0, UNI_nt_values_index } /* numerictype= */,
+ { 78, 414, 0, 3, 0, UNI_HAN } /* han */,
+ { 0, 5857, 0, 12, 0, UNI_MONGOLIANSUP } /* mongoliansup */,
+ { 0, 7267, 3196, 19, 8, UNI_NO } /* generalcategory=othernumber */,
+ { 22, 5939, 585, 5, 2, UNI__PERL_NCHAR } /* nchar=t */,
+ { 22, 1272, 81, 7, 2, UNI_CJKEXTG } /* iscjkextg */,
+ { 0, 2766, 5243, 7, 12, UNI_PO } /* gc=otherpunctuation */,
+ { 4, 4424, 454, 17, 4, UNI_PRTI } /* scriptextensions=prti */,
+ { 2, 1102, 0, 4, 0, UNI_scx_values_index } /* scx= */,
+ { 1, 1726, 4987, 3, 16, UNI_ALCHEMICAL } /* isalchemicalsymbols */,
+ { 4, 339, 1155, 4, 2, UNI_CCC__35 } /* ccc=35 */,
+ { 0, 53, 0, 1, 0, UNI_N } /* n */,
+ { 1, 3724, 661, 12, 2, UNI_JG__MALAYALAMRA } /* jg=malayalamra */,
+ { 6, 3892, 599, 16, 2, -UNI_STERM } /* sentenceterminal=n */,
+ { 0, 2280, 2154, 10, 2, UNI_IN__13 } /* presentin=13 */,
+ { 2, 4862, 0, 4, 0, UNI_RUMI } /* rumi */,
+ { 69, 6165, 1834, 3, 4, UNI_SORA } /* sc=sora */,
+ { 0, 1728, 4511, 6, 9, UNI_ARABICEXTB } /* arabicextendedb */,
+ { 66, 7591, 2602, 22, 7, UNI_LB__CJ } /* lb=conditionaljapanesestarter */,
+ { 141, 2525, 307, 6, 5, UNI_XPOSIXPRINT } /* xposixprint */,
+ { 1, 2786, 0, 14, 0, UNI_HIGHSURROGATES } /* highsurrogates */,
+ { 6, 1667, 3726, 3, 10, UNI_INMALAYALAM } /* blk=malayalam */,
+ { 67, 1667, 6185, 4, 13, UNI_GLAGOLITICSUP } /* blk=glagoliticsup */,
+ { 1, 1823, 8667, 7, 18, UNI_CANS } /* script=canadianaboriginal */,
+ { 65, 4424, 232, 17, 4, UNI_YI } /* scriptextensions=yiii */,
+ { 4, 6427, 4267, 13, 4, UNI_JG__TETH } /* joininggroup=teth */,
+ { 16, 5979, 0, 5, 0, UNI_VO__TR } /* vo=tr */,
+ { 2, 10, 747, 1, 3, UNI_MARC } /* marc */,
+ { 10, 292, 1155, 3, 2, UNI_NV__35 } /* nv=35 */,
+ { 73, 6165, 297, 3, 5, UNI_SC__ORYA } /* sc=oriya */,
+ { 104, 3502, 6142, 5, 21, UNI_EARLYDYNASTICCUNEIFORM } /* blk=earlydynasticcuneiform */,
+ { 1, 823, 3190, 3, 2, UNI_dash_values_index } /* dash= */,
+ { 39, 7274, 4016, 9, 14, UNI_ZS } /* category=spaceseparator */,
+ { 8, 117, 0, 2, 0, UNI_XPOSIXDIGIT } /* nd */,
+ { 0, 1667, 901, 4, 8, UNI_INARMENIAN } /* blk=armenian */,
+ { 0, 2259, 869, 3, 6, UNI_TIRH } /* istirhuta */,
+ { 5, 6165, 4002, 3, 4, UNI_SC__MODI } /* sc=modi */,
+ { 0, 861, 0, 7, 0, UNI_TIBT } /* tibetan */,
+ { 0, 4569, 933, 8, 7, -UNI_XPOSIXUPPER } /* uppercase=false */,
+ { 24, 3391, 581, 12, 3, UNI_NV__22 } /* numericvalue=22 */,
+ { 48, 7591, 3040, 3, 9, UNI_LB__QU } /* lb=quotation */,
+ { 1, 8343, 5114, 22, 10, UNI_INSC__TONELETTER } /* indicsyllabiccategory=toneletter */,
+ { 0, 4424, 1340, 17, 9, UNI_ORKH } /* scriptextensions=oldturkic */,
+ { 0, 461, 1592, 2, 10, UNI_SAUR } /* issaurashtra */,
+ { 0, 461, 6185, 2, 20, UNI_GLAGOLITICSUP } /* isglagoliticsupplement */,
+ { 2, 983, 0, 8, 0, UNI_HIRA } /* hiragana */,
+ { 0, 6841, 353, 25, 4, UNI_DI } /* defaultignorablecodepoint=yes */,
+ { 4, 7011, 519, 23, 2, UNI_CCC__7 } /* canonicalcombiningclass=7 */,
+ { 48, 7011, 388, 25, 2, UNI_CCC__R } /* canonicalcombiningclass=226 */,
+ { 5, 6165, 590, 3, 7, UNI_DSRT } /* sc=deseret */,
+ { 3, 2324, 3692, 6, 4, UNI_INLISU } /* block=lisu */,
+ { 12, 1102, 663, 4, 4, UNI_LIMB } /* scx=limb */,
+ { 0, 1015, 90, 4, 2, UNI_TELU } /* telugu */,
+ { 0, 2434, 2437, 3, 4, UNI_MYMR } /* myanmar */,
+ { 0, 2393, 1037, 8, 4, UNI_CYRILLICEXTB } /* cyrillicextb */,
+ { 0, 2536, 2875, 3, 11, UNI_JG__STRAIGHTWAW } /* jg=straightwaw */,
+ { 52, 6618, 8507, 4, 15, UNI_INPC__BOTTOMANDRIGHT } /* inpc=bottomandright */,
+ { 2, 3391, 391, 13, 2, UNI_NV__34 } /* numericvalue=34 */,
+ { 74, 6287, 0, 4, 0, UNI_BC__L } /* bc=l */,
+ { 0, 10, 8374, 1, 33, UNI_MISCPICTOGRAPHS } /* miscellaneoussymbolsandpictographs */,
+ { 0, 1823, 537, 7, 6, UNI_TNSA } /* script=tangsa */,
+ { 1, 597, 140, 3, 3, UNI_DT__NAR } /* dt=nar */,
+ { 33, 1174, 1178, 4, 5, UNI_EA__NA } /* ea=narrow */,
+ { 3, 1823, 1303, 7, 9, UNI_TALU } /* script=newtailue */,
+ { 24, 1823, 236, 7, 4, UNI_ZANB } /* script=zanb */,
+ { 0, 3098, 2931, 7, 3, UNI_XPOSIXXDIGIT } /* hexdigit=t */,
+ { 10, 7591, 3463, 3, 4, UNI_LB__GL } /* lb=glue */,
+ { 2, 1027, 0, 6, 0, UNI_YEZI } /* yezidi */,
+ { 86, 309, 1465, 2, 10, UNI_INDIVESAKURU } /* indivesakuru */,
+ { 108, 309, 6693, 3, 14, UNI_TRANSPORTANDMAP } /* intransportandmap */,
+ { 1, 3649, 0, 11, 0, UNI_PHONETICEXT } /* phoneticext */,
+ { 0, 380, 585, 6, 5, UNI_HYPHEN } /* hyphen=true */,
+ { 0, 1397, 598, 6, 4, -UNI_IDS } /* idstart=no */,
+ { 3, 4424, 120, 17, 3, UNI_LAO } /* scriptextensions=lao */,
+ { 1, 7011, 288, 25, 2, UNI_CCC__A } /* canonicalcombiningclass=230 */,
+ { 5, 1667, 772, 4, 7, UNI_OLCK } /* blk=olchiki */,
+ { 9, 1667, 2373, 6, 5, UNI_CJKEXTE } /* blk=cjkexte */,
+ { 6, 271, 1869, 4, 3, UNI_WB__EB } /* gcb=gaz */,
+ { 0, 1667, 1779, 4, 11, UNI_INMEDEFAIDRIN } /* blk=medefaidrin */,
+ { 0, 309, 1117, 2, 8, UNI_INTAGBANWA } /* intagbanwa */,
+ { 37, 3791, 0, 4, 0, UNI_MATH } /* math */,
+ { 0, 8343, 2768, 21, 6, UNI_INSC__OTHER } /* indicsyllabiccategory=other */,
+ { 172, 5769, 353, 4, 4, UNI_EMOD } /* emod=yes */,
+ { 16, 772, 0, 7, 0, UNI_OLCK } /* olchiki */,
+ { 2, 2324, 5274, 6, 18, UNI_HALFMARKS } /* block=combininghalfmarks */,
+ { 0, 4424, 4002, 17, 4, UNI_MODI } /* scriptextensions=modi */,
+ { 9, 461, 6909, 2, 14, UNI_MUSIC } /* ismusicalsymbols */,
+ { 33, 5440, 1818, 15, 5, UNI_HMNP } /* nyiakengpuachuehmong */,
+ { 2, 5065, 5433, 13, 7, UNI_JG__MANICHAEANHUNDRED } /* jg=manichaeanhundred */,
+ { 5, 746, 0, 7, 0, UNI_MARC } /* marchen */,
+ { 4, 1059, 353, 6, 4, UNI_DT__NONE } /* nfkdqc=yes */,
+ { 0, 309, 4726, 3, 8, UNI_TANGUTSUP } /* intangutsup */,
+ { 3, 1667, 8474, 7, 23, UNI_CJKCOMPATIDEOGRAPHS } /* blk=cjkcompatibilityideographs */,
+ { 1, 1102, 184, 4, 4, UNI_SAMR } /* scx=samr */,
+ { 1, 3635, 5635, 11, 3, UNI_LATINEXTG } /* latinextendedg */,
+ { 0, 2324, 55, 6, 4, UNI_INCHAM } /* block=cham */,
+ { 13, 6165, 615, 3, 7, UNI_ELYM } /* sc=elymaic */,
+ { 1, 461, 5958, 2, 7, UNI_SINH } /* issinhala */,
+ { 8, 292, 7239, 3, 2, UNI_NV__28 } /* nv=28 */,
+ { 4, 3391, 766, 13, 3, UNI_NV__5_SLASH_2 } /* numericvalue=5/2 */,
+ { 0, 1667, 608, 4, 7, UNI_INELBASAN } /* blk=elbasan */,
+ { 0, 4424, 94, 17, 4, UNI_GURU } /* scriptextensions=guru */,
+ { 9, 1272, 6400, 5, 18, UNI_CJKRADICALSSUP } /* iscjkradicalssupplement */,
+ { 1, 30, 5390, 1, 12, UNI_CHEROKEESUP } /* ischerokeesup */,
+ { 34, 3014, 1804, 11, 3, UNI_IN__10 } /* presentin=v100 */,
+ { 1, 2678, 0, 11, 0, UNI_IN__5 } /* presentin=5 */,
+ { 0, 6000, 0, 6, 0, UNI_YIJING } /* yijing */,
+ { 6, 6776, 0, 14, 0, UNI_MEETEIMAYEKEXT } /* meeteimayekext */,
+ { 0, 33, 0, 1, 0, UNI_S } /* s */,
+ { 1, 5156, 2411, 10, 8, UNI_WB__KA } /* wordbreak=katakana */,
+ { 0, 309, 4926, 2, 5, UNI_INTAMIL } /* intamil */,
+ { 2, 1635, 0, 4, 0, UNI_WARA } /* wara */,
+ { 0, 3724, 1193, 12, 3, UNI_JG__MALAYALAMNGA } /* jg=malayalamnga */,
+ { 1, 3014, 1313, 11, 2, UNI_IN__6 } /* presentin=v60 */,
+ { 0, 309, 1635, 2, 10, UNI_INWARANGCITI } /* inwarangciti */,
+ { 4, 6870, 585, 20, 5, UNI_CE } /* compositionexclusion=true */,
+ { 6, 2536, 2864, 3, 11, UNI_JG__ROHINGYAYEH } /* jg=rohingyayeh */,
+ { 1, 7591, 309, 3, 2, UNI_LB__IN } /* lb=in */,
+ { 1, 461, 220, 2, 4, UNI_WCHO } /* iswcho */,
+ { 100, 1396, 598, 7, 4, -UNI_XIDS } /* xidstart=no */,
+ { 35, 1823, 2068, 7, 12, UNI_MEND } /* script=mendekikakui */,
+ { 3, 1823, 152, 7, 4, UNI_OSGE } /* script=osge */,
+ { 0, 2302, 0, 10, 0, UNI_IDC } /* idcontinue */,
+ { 0, 4424, 6185, 17, 4, UNI_GLAG } /* scriptextensions=glag */,
+ { 0, 1421, 2773, 3, 13, UNI_INGREEK } /* ingreekandcoptic */,
+ { 2, 339, 3152, 4, 11, UNI_CCC__8 } /* ccc=kanavoicing */,
+ { 13, 6165, 5682, 3, 5, UNI_SC__GREK } /* sc=greek */,
+ { 0, 875, 5980, 4, 3, UNI_UIDEO } /* uideo=t */,
+ { 0, 7887, 7380, 28, 4, UNI_CJKEXTB } /* incjkunifiedideographsextensionb */,
+ { 64, 5553, 934, 21, 6, -UNI_CWCM } /* changeswhencasemapped=false */,
+ { 47, 4519, 6193, 12, 5, UNI_CYRILLICSUP } /* block=cyrillicsup */,
+ { 0, 23, 0, 4, 0, UNI_AHOM } /* ahom */,
+ { 0, 5168, 3075, 6, 9, UNI__PERL_ANY_FOLDS } /* _perl_any_folds */,
+ { 49, 5799, 5149, 14, 7, UNI_SUPARROWSA } /* insupplementalarrowsa */,
+ { 2, 7274, 4827, 9, 18, UNI_ZP } /* category=paragraphseparator */,
+ { 1, 5391, 0, 11, 0, UNI_CHEROKEESUP } /* cherokeesup */,
+ { 0, 6427, 0, 13, 0, UNI_jg_values_index } /* joininggroup= */,
+ { 0, 895, 1070, 5, 2, UNI_AGE__3_DOT_1 } /* age=v31 */,
+ { 1, 3817, 290, 15, 2, UNI_NV__1_SLASH_40 } /* numericvalue=1/40 */,
+ { 68, 7648, 366, 18, 3, UNI_DT__SQR } /* decompositiontype=sqr */,
+ { 5, 461, 4060, 2, 7, UNI_BRAI } /* isbraille */,
+ { 3, 1667, 1385, 4, 6, UNI_INTHAANA } /* blk=thaana */,
+ { 13, 2324, 5031, 6, 14, UNI_INHANIFIROHINGYA } /* block=hanifirohingya */,
+ { 30, 622, 2931, 6, 3, UNI_EXTPICT } /* extpict=t */,
+ { 2, 1726, 4659, 8, 9, UNI_ARABICEXTC } /* isarabicextendedc */,
+ { 17, 4424, 1117, 17, 4, UNI_TAGB } /* scriptextensions=tagb */,
+ { 0, 1065, 290, 5, 2, UNI_NV__1_SLASH_40 } /* nv=1/40 */,
+ { 21, 2324, 8278, 6, 33, UNI_MISCMATHSYMBOLSB } /* block=miscellaneousmathematicalsymbolsb */,
+ { 1, 309, 1241, 2, 7, UNI_NB } /* innoblock */,
+ { 0, 461, 5876, 2, 12, UNI_SUNDANESESUP } /* issundanesesup */,
+ { 0, 309, 2411, 2, 8, UNI_INKATAKANA } /* inkatakana */,
+ { 33, 6165, 718, 3, 7, UNI_SC__KNDA } /* sc=kannada */,
+ { 0, 2536, 715, 3, 3, UNI_JG__AIN } /* jg=ain */,
+ { 13, 2004, 3268, 5, 5, UNI_POSIXALNUM } /* posixalnum */,
+ { 0, 1667, 3663, 4, 14, UNI_DEVANAGARIEXTA } /* blk=devanagariexta */,
+ { 3, 4569, 934, 5, 2, -UNI_XPOSIXUPPER } /* upper=f */,
+ { 0, 7011, 119, 24, 2, UNI_CCC__AL } /* canonicalcombiningclass=al */,
+ { 105, 461, 2247, 2, 4, UNI_HUNG } /* ishung */,
+ { 121, 4424, 6642, 17, 4, UNI_BRAH } /* scriptextensions=brah */,
+ { 6, 2766, 255, 3, 2, UNI_CF } /* gc=cf */,
+ { 38, 1823, 1484, 7, 4, UNI_SC__BUGI } /* script=bugi */,
+ { 1, 2317, 0, 6, 0, UNI_N } /* number */,
+ { 0, 339, 345, 5, 2, UNI_CCC__118 } /* ccc=118 */,
+ { 10, 4424, 1685, 17, 11, UNI_CPMN } /* scriptextensions=cyprominoan */,
+ { 0, 3878, 1805, 14, 4, UNI_NV__90000 } /* numericvalue=90000 */,
+ { 2, 5916, 599, 21, 2, -UNI_LOE } /* logicalorderexception=n */,
+ { 0, 6165, 4060, 3, 4, UNI_BRAI } /* sc=brai */,
+ { 0, 1409, 1505, 5, 4, UNI_LATINEXTA } /* latinexta */,
+ { 1, 6165, 216, 3, 4, UNI_TOTO } /* sc=toto */,
+ { 136, 6165, 1367, 3, 4, UNI_PAUC } /* sc=pauc */,
+ { 0, 1667, 7036, 4, 26, UNI_HALFANDFULLFORMS } /* blk=halfwidthandfullwidthforms */,
+ { 2, 6165, 47, 3, 4, UNI_SC__CAKM } /* sc=cakm */,
+ { 48, 1823, 244, 7, 4, UNI_ZZZZ } /* script=zzzz */,
+ { 0, 7495, 559, 28, 2, UNI_CCC__107 } /* canonicalcombiningclass=ccc107 */,
+ { 2, 120, 122, 2, 2, UNI_LAO } /* laoo */,
+ { 36, 1734, 1854, 3, 3, UNI_SYLO } /* issylo */,
+ { 0, 461, 1015, 2, 4, UNI_TELU } /* istelu */,
+ { 1, 1198, 1505, 5, 4, UNI_CJKEXTA } /* incjkexta */,
+ { 93, 1823, 1819, 7, 4, UNI_SC__MONG } /* script=mong */,
+ { 0, 6165, 1358, 3, 4, UNI_PALM } /* sc=palm */,
+ { 0, 895, 1318, 6, 2, UNI_AGE__12 } /* age=v120 */,
+ { 2, 461, 269, 2, 2, UNI_ZP } /* iszp */,
+ { 2, 1454, 274, 2, 1, UNI_sd_values_index } /* sd= */,
+ { 0, 309, 1522, 2, 8, UNI_INUGARITIC } /* inugaritic */,
+ { 0, 2536, 4761, 4, 4, UNI_JG__ALAPH } /* jg=alaph */,
+ { 0, 2324, 1966, 7, 9, UNI_COMPATJAMO } /* block=compatjamo */,
+ { 0, 7011, 768, 24, 2, UNI_CCC__27 } /* canonicalcombiningclass=27 */,
+ { 4, 5156, 3053, 10, 11, UNI_WB__DQ } /* wordbreak=doublequote */,
+ { 0, 6427, 4221, 13, 14, UNI_JG__HAMZAONHEHGOAL } /* joininggroup=hamzaonhehgoal */,
+ { 0, 2324, 322, 6, 5, UNI_VSSUP } /* block=vssup */,
+ { 0, 1667, 1144, 4, 9, UNI_INBHAIKSUKI } /* blk=bhaiksuki */,
+ { 2, 1823, 4651, 7, 8, UNI_SC__BOPO } /* script=bopomofo */,
+ { 0, 7011, 7425, 24, 4, UNI_CCC__216 } /* canonicalcombiningclass=atar */,
+ { 0, 7267, 8356, 7, 10, UNI_C } /* generalcategory=c */,
+ { 0, 2324, 6487, 6, 13, UNI_ZNAMENNYMUSIC } /* block=znamennymusic */,
+ { 84, 6165, 188, 3, 4, UNI_SGNW } /* sc=sgnw */,
+ { 2, 2259, 1107, 3, 3, UNI_TALU } /* istalu */,
+ { 3, 1734, 6671, 3, 21, UNI_MODIFIERLETTERS } /* isspacingmodifierletters */,
+ { 1, 6165, 4461, 3, 11, UNI_SGNW } /* sc=signwriting */,
+ { 0, 4360, 380, 10, 6, UNI_LB__HY } /* linebreak=hyphen */,
+ { 20, 2752, 599, 5, 3, -UNI_EMOJI } /* emoji=no */,
+ { 0, 461, 1255, 2, 4, UNI_SIDD } /* issidd */,
+ { 4, 7267, 3558, 16, 9, UNI_Z } /* generalcategory=separator */,
+ { 45, 339, 2165, 5, 2, UNI_WB__EB } /* ccc=133 */,
+ { 7, 4360, 2944, 10, 11, UNI_LB__BB } /* linebreak=breakbefore */,
+ { 3, 253, 0, 4, 0, UNI_CWCF } /* cwcf */,
+ { 134, 4569, 353, 5, 4, UNI_XPOSIXUPPER } /* upper=yes */,
+ { 0, 3892, 599, 16, 3, -UNI_STERM } /* sentenceterminal=no */,
+ { 2, 3692, 0, 7, 0, UNI_LISUSUP } /* lisusup */,
+ { 1, 2966, 819, 3, 6, UNI_SC__SHRD } /* insharada */,
+ { 1, 4424, 1975, 17, 10, UNI_SOGO } /* scriptextensions=oldsogdian */,
+ { 13, 7404, 422, 11, 2, UNI_BC__RLI } /* bidiclass=rli */,
+ { 1, 2287, 2360, 3, 10, UNI_IN__NA } /* in=unassigned */,
+ { 0, 339, 2234, 3, 2, UNI_CCC__8 } /* ccc=8 */,
+ { 0, 54, 0, 2, 0, UNI_SC } /* sc */,
+ { 6, 7495, 2092, 27, 2, UNI_CCC__25 } /* canonicalcombiningclass=ccc25 */,
+ { 0, 6165, 2068, 3, 4, UNI_MEND } /* sc=mend */,
+ { 0, 1667, 4060, 4, 7, UNI_BRAI } /* blk=braille */,
+ { 0, 1200, 2373, 2, 5, UNI_CJKEXTE } /* cjkexte */,
+ { 64, 5391, 0, 8, 0, UNI_CHER } /* cherokee */,
+ { 25, 4809, 0, 18, 0, UNI_ORNAMENTALDINGBATS } /* ornamentaldingbats */,
+ { 3, 8601, 5409, 7, 11, UNI_SMALLKANAEXT } /* block=smallkanaext */,
+ { 67, 461, 5553, 2, 21, UNI_CWCM } /* ischangeswhencasemapped */,
+ { 0, 21, 5820, 1, 18, UNI_ENCLOSEDALPHANUMSUP } /* enclosedalphanumsup */,
+ { 0, 6165, 5353, 3, 20, UNI_PHLI } /* sc=inscriptionalpahlavi */,
+ { 0, 6165, 470, 3, 4, UNI_TNSA } /* sc=tnsa */,
+ { 0, 302, 353, 5, 4, UNI__PERL_PATWS } /* patws=yes */,
+ { 0, 4161, 934, 9, 2, -UNI_DIA } /* diacritic=f */,
+ { 0, 6870, 934, 20, 6, -UNI_CE } /* compositionexclusion=false */,
+ { 0, 309, 5838, 2, 19, UNI_JAMOEXTA } /* inhanguljamoextendeda */,
+ { 6, 3817, 389, 15, 1, UNI_NV__1_SLASH_6 } /* numericvalue=1/6 */,
+ { 0, 2280, 566, 10, 3, UNI_IN__9 } /* presentin=9.0 */,
+ { 0, 7198, 7707, 15, 17, UNI_SUPPUAB } /* blk=supplementaryprivateuseareab */,
+ { 0, 1065, 2115, 4, 8, UNI_NV__1_SLASH_64 } /* nv=1.562e-02 */,
+ { 49, 2004, 1479, 5, 5, UNI_POSIXSPACE } /* posixspace */,
+ { 1, 4424, 369, 17, 6, UNI_GOTH } /* scriptextensions=gothic */,
+ { 0, 8343, 1517, 22, 5, UNI_INSC__BINDU } /* indicsyllabiccategory=bindu */,
+ { 49, 2180, 515, 4, 2, UNI_NV__4_SLASH_5 } /* nv=4/5 */,
+ { 95, 4424, 1465, 17, 10, UNI_DIAK } /* scriptextensions=divesakuru */,
+ { 0, 1065, 766, 4, 3, UNI_NV__15_SLASH_2 } /* nv=15/2 */,
+ { 1, 2324, 1125, 6, 8, UNI_INTIFINAGH } /* block=tifinagh */,
+ { 4, 1906, 1505, 8, 4, UNI_KANAEXTA } /* blk=kanaexta */,
+ { 0, 1667, 3567, 4, 16, UNI_HALFANDFULLFORMS } /* blk=halfandfullforms */,
+ { 0, 7274, 4554, 9, 15, UNI_TITLE } /* category=titlecaseletter */,
+ { 0, 461, 1397, 2, 3, UNI_IDS } /* isids */,
+ { 8, 2324, 7449, 6, 18, UNI_PHONETICEXT } /* block=phoneticextensions */,
+ { 0, 339, 2719, 2, 3, UNI_CCC__R } /* ccc=r */,
+ { 8, 3878, 2184, 14, 8, UNI_NV__11_SLASH_12 } /* numericvalue=9.167e-01 */,
+ { 0, 1200, 6400, 3, 11, UNI_CJKRADICALSSUP } /* cjkradicalssup */,
+ { 0, 2324, 7564, 6, 17, UNI_ANCIENTGREEKMUSIC } /* block=ancientgreekmusic */,
+ { 1, 7267, 54, 16, 2, UNI_SC } /* generalcategory=sc */,
+ { 1, 1102, 739, 4, 4, UNI_MAND } /* scx=mand */,
+ { 1, 7011, 274, 23, 2, UNI_CCC__B } /* canonicalcombiningclass=b */,
+ { 0, 461, 94, 2, 4, UNI_GURU } /* isguru */,
+ { 2, 4424, 1255, 17, 4, UNI_SIDD } /* scriptextensions=sidd */,
+ { 18, 4424, 688, 17, 5, UNI_BATK } /* scriptextensions=batak */,
+ { 58, 6450, 2304, 15, 8, UNI_SB__SC } /* sentencebreak=scontinue */,
+ { 1, 2287, 2656, 3, 3, UNI_IN__5 } /* in=5.0 */,
+ { 0, 309, 6510, 2, 24, UNI_HIGHPUSURROGATES } /* inhighprivateusesurrogates */,
+ { 0, 7134, 585, 26, 2, UNI_PCM } /* prependedconcatenationmark=t */,
+ { 0, 1102, 438, 4, 4, UNI_OLCK } /* scx=olck */,
+ { 116, 1726, 2312, 3, 12, UNI_AEGEANNUMBERS } /* isaegeannumbers */,
+ { 1, 33, 6671, 1, 21, UNI_MODIFIERLETTERS } /* spacingmodifierletters */,
+ { 3, 4424, 1191, 17, 7, UNI_BENG } /* scriptextensions=bengali */,
+ { 2, 10, 6597, 1, 21, UNI_MISCTECHNICAL } /* miscellaneoustechnical */,
+ { 0, 5553, 585, 21, 5, UNI_CWCM } /* changeswhencasemapped=true */,
+ { 101, 2432, 1505, 9, 4, UNI_MYANMAREXTA } /* inmyanmarexta */,
+ { 1, 1823, 2735, 6, 5, UNI_SC__ARAB } /* script=arab */,
+ { 1, 8538, 1343, 20, 2, UNI_VO__TU } /* verticalorientation=tu */,
+ { 134, 4424, 4896, 17, 5, UNI_BAMU } /* scriptextensions=bamum */,
+ { 22, 6866, 585, 24, 5, UNI_COMPEX } /* fullcompositionexclusion=true */,
+ { 3, 5746, 1135, 4, 6, UNI_INVITHKUQI } /* invithkuqi */,
+ { 5, 8246, 4107, 24, 12, UNI_INPC__LEFTANDRIGHT } /* indicpositionalcategory=leftandright */,
+ { 0, 30, 7854, 1, 33, UNI_INIDC } /* isideographicdescriptioncharacters */,
+ { 2, 1823, 3493, 6, 9, UNI_SC__CYRL } /* script=cyrillic */,
+ { 1, 1667, 1914, 4, 7, UNI_UCASEXT } /* blk=ucasext */,
+ { 1, 2324, 2468, 6, 6, UNI_IPAEXT } /* block=ipaext */,
+ { 18, 7274, 3276, 9, 13, UNI_ME } /* category=enclosingmark */,
+ { 3, 461, 4407, 2, 17, UNI_RI } /* isregionalindicator */,
+ { 0, 2718, 5318, 3, 3, UNI_BC__RLE } /* bc=rle */,
+ { 0, 3040, 934, 13, 2, -UNI_QMARK } /* quotationmark=f */,
+ { 75, 1272, 4533, 5, 4, UNI_CJKEXTC } /* iscjkextc */,
+ { 82, 4424, 152, 17, 4, UNI_OSGE } /* scriptextensions=osge */,
+ { 0, 1522, 0, 4, 0, UNI_UGAR } /* ugar */,
+ { 0, 1667, 5876, 4, 19, UNI_SUNDANESESUP } /* blk=sundanesesupplement */,
+ { 0, 461, 78, 2, 4, UNI_DSRT } /* isdsrt */,
+ { 24, 339, 1070, 4, 2, UNI_CCC__31 } /* ccc=31 */,
+ { 129, 1102, 3228, 4, 15, UNI_ARMI } /* scx=imperialaramaic */,
+ { 0, 2766, 4150, 3, 11, UNI_P } /* gc=punctuation */,
+ { 0, 4424, 1325, 17, 4, UNI_ITAL } /* scriptextensions=ital */,
+ { 0, 1102, 1021, 4, 6, UNI_WCHO } /* scx=wancho */,
+ { 24, 1914, 0, 4, 0, UNI_UCAS } /* ucas */,
+ { 1, 2514, 6597, 3, 21, UNI_MISCTECHNICAL } /* ismiscellaneoustechnical */,
+ { 13, 461, 4506, 2, 14, UNI_LATINEXTB } /* islatinextendedb */,
+ { 0, 4740, 0, 4, 0, UNI_TALE } /* tale */,
+ { 0, 1065, 1312, 5, 3, UNI_NV__1_SLASH_160 } /* nv=1/160 */,
+ { 0, 1102, 128, 4, 4, UNI_MEDF } /* scx=medf */,
+ { 26, 6165, 683, 3, 4, UNI_SC__TAKR } /* sc=takr */,
+ { 0, 2324, 3475, 6, 15, UNI_INZANABAZARSQUARE } /* block=zanabazarsquare */,
+ { 10, 302, 353, 5, 2, UNI__PERL_PATWS } /* patws=y */,
+ { 0, 5255, 353, 20, 4, UNI_EXTPICT } /* extendedpictographic=yes */,
+ { 2, 3817, 766, 14, 3, UNI_NV__15_SLASH_2 } /* numericvalue=15/2 */,
+ { 0, 2324, 5857, 6, 19, UNI_MONGOLIANSUP } /* block=mongoliansupplement */,
+ { 0, 1823, 1234, 7, 4, UNI_SC__MULT } /* script=mult */,
+ { 24, 510, 295, 4, 1, UNI_NV__39 } /* nv=39 */,
+ { 0, 1667, 2811, 4, 5, UNI_INKHMER } /* blk=khmer */,
+ { 7, 1027, 0, 4, 0, UNI_YEZI } /* yezi */,
+ { 17, 733, 7241, 3, 26, UNI_ENCLOSEDCJK } /* inenclosedcjklettersandmonths */,
+ { 0, 2324, 688, 6, 5, UNI_INBATAK } /* block=batak */,
+ { 3, 7267, 4150, 16, 11, UNI_P } /* generalcategory=punctuation */,
+ { 1, 2324, 634, 6, 7, UNI_INHANUNOO } /* block=hanunoo */,
+ { 5, 832, 274, 5, 1, UNI_sterm_values_index } /* sterm= */,
+ { 0, 1823, 2068, 7, 4, UNI_MEND } /* script=mend */,
+ { 56, 309, 4002, 2, 4, UNI_INMODI } /* inmodi */,
+ { 23, 1455, 585, 10, 5, UNI_DEP } /* deprecated=true */,
+ { 258, 1894, 599, 5, 2, -UNI_BIDIM } /* bidim=n */,
+ { 7, 2391, 6193, 8, 12, UNI_CYRILLICSUP } /* incyrillicsupplement */,
+ { 0, 1455, 0, 3, 0, UNI_DEP } /* dep */,
+ { 0, 298, 585, 2, 2, UNI_RI } /* ri=t */,
+ { 4, 7383, 0, 11, 0, UNI_BC__L } /* bidiclass=l */,
+ { 0, 2, 3163, 1, 14, UNI_CONTROLPICTURES } /* controlpictures */,
+ { 0, 2, 352, 1, 3, UNI_CE } /* ce=y */,
+ { 7, 426, 0, 4, 0, UNI_MRO } /* mroo */,
+ { 3, 1065, 2657, 4, 8, UNI_NV__1_SLASH_10 } /* nv=1.000e-01 */,
+ { 0, 461, 739, 2, 4, UNI_MAND } /* ismand */,
+ { 0, 4424, 1294, 17, 9, UNI_NBAT } /* scriptextensions=nabataean */,
+ { 2, 1102, 840, 4, 7, UNI_TGLG } /* scx=tagalog */,
+ { 18, 1102, 102, 4, 4, UNI_HMNG } /* scx=hmng */,
+ { 3, 292, 3875, 2, 3, UNI_NV__80 } /* nv=80 */,
+ { 0, 1272, 5694, 3, 18, UNI_COUNTINGROD } /* iscountingrodnumerals */,
+ { 214, 1102, 608, 4, 7, UNI_ELBA } /* scx=elbasan */,
+ { 6, 6165, 102, 3, 4, UNI_HMNG } /* sc=hmng */,
+ { 1, 1823, 1978, 7, 4, UNI_SC__SOGD } /* script=sogd */,
+ { 14, 3391, 288, 13, 2, UNI_NV__30 } /* numericvalue=30 */,
+ { 3, 461, 4043, 2, 17, UNI_IDSB } /* isidsbinaryoperator */,
+ { 7, 1823, 2441, 7, 4, UNI_SC__NAND } /* script=nand */,
+ { 13, 4424, 3475, 17, 15, UNI_ZANB } /* scriptextensions=zanabazarsquare */,
+ { 1, 7084, 1037, 8, 4, UNI_ARABICEXTB } /* inarabicextb */,
+ { 0, 1262, 0, 7, 0, UNI_SOYO } /* soyombo */,
+ { 0, 2432, 7620, 3, 28, UNI_MISCARROWS } /* inmiscellaneoussymbolsandarrows */,
+ { 32, 4360, 0, 10, 0, UNI_lb_values_index } /* linebreak= */,
+ { 0, 2324, 997, 6, 6, UNI_INKAITHI } /* block=kaithi */,
+ { 159, 3502, 1505, 12, 4, UNI_ETHIOPICEXTA } /* blk=ethiopicexta */,
+ { 0, 1098, 0, 4, 0, UNI_NSHU } /* nshu */,
+ { 24, 7591, 1933, 3, 9, UNI_LB__AI } /* lb=ambiguous */,
+ { 0, 2766, 4602, 3, 18, UNI_PI } /* gc=initialpunctuation */,
+ { 0, 1667, 997, 4, 6, UNI_INKAITHI } /* blk=kaithi */,
+ { 0, 7011, 391, 25, 2, UNI_CCC__DA } /* canonicalcombiningclass=234 */,
+ { 0, 7274, 363, 9, 2, UNI_SM } /* category=sm */,
+ { 195, 461, 2780, 2, 4, UNI_COPT } /* iscopt */,
+ { 0, 309, 5031, 2, 14, UNI_INHANIFIROHINGYA } /* inhanifirohingya */,
+ { 0, 887, 2083, 5, 2, UNI_IN__1_DOT_1 } /* age=1.1 */,
+ { 12, 461, 7480, 2, 14, UNI_PUA } /* isprivateusearea */,
+ { 31, 4424, 1509, 17, 4, UNI_JAVA } /* scriptextensions=java */,
+ { 1, 7198, 4441, 5, 16, UNI_SMALLFORMS } /* blk=smallformvariants */,
+ { 0, 309, 6776, 2, 14, UNI_MEETEIMAYEKEXT } /* inmeeteimayekext */,
+ { 0, 1667, 6514, 4, 10, UNI_PUA } /* blk=privateuse */,
+ { 0, 1391, 3064, 3, 11, UNI_WB__SQ } /* wb=singlequote */,
+ { 3, 1618, 0, 10, 0, UNI_SD } /* softdotted */,
+ { 42, 1801, 0, 5, 0, UNI_NV__10 } /* nv=10 */,
+ { 1, 7011, 2121, 25, 2, UNI_CCC__202 } /* canonicalcombiningclass=202 */,
+ { 0, 1102, 422, 4, 4, UNI_LINA } /* scx=lina */,
+ { 2, 461, 5876, 2, 9, UNI_SUND } /* issundanese */,
+ { 18, 3832, 343, 15, 2, UNI_NV__5_SLASH_12 } /* numericvalue=5/12 */,
+ { 1, 3391, 1312, 14, 5, UNI_NV__216000 } /* numericvalue=216000 */,
+ { 11, 7648, 1168, 18, 6, UNI_DT__MED } /* decompositiontype=medial */,
+ { 0, 4424, 63, 17, 4, UNI_CPMN } /* scriptextensions=cpmn */,
+ { 0, 253, 599, 4, 3, -UNI_CWCF } /* cwcf=no */,
+ { 32, 4360, 1669, 8, 4, UNI_LB__CJ } /* linebreak=cj */,
+ { 0, 2718, 535, 2, 2, UNI_BC__S } /* bc=s */,
+ { 0, 6163, 2452, 5, 8, UNI_INSC__AVAGRAHA } /* insc=avagraha */,
+ { 14, 6163, 5323, 5, 15, UNI_INSC__MODIFYINGLETTER } /* insc=modifyingletter */,
+ { 0, 292, 1313, 3, 2, UNI_NV__60 } /* nv=60 */,
+ { 136, 7084, 1723, 8, 3, UNI_ARABICPFB } /* inarabicpfb */,
+ { 96, 2523, 4150, 8, 5, UNI_XPOSIXPUNCT } /* isxposixpunct */,
+ { 3, 5616, 353, 21, 4, UNI_CWU } /* changeswhenuppercased=yes */,
+ { 2, 3832, 763, 14, 2, UNI_NV__5_SLASH_6 } /* numericvalue=5/6 */,
+ { 34, 1409, 4659, 5, 9, UNI_LATINEXTC } /* latinextendedc */,
+ { 4, 4424, 3538, 17, 7, UNI_CPRT } /* scriptextensions=cypriot */,
+ { 2, 1823, 67, 7, 4, UNI_SC__CPRT } /* script=cprt */,
+ { 0, 3391, 2147, 14, 8, UNI_NV__1_SLASH_4 } /* numericvalue=2.500e-01 */,
+ { 0, 2324, 571, 6, 7, UNI_INAVESTAN } /* block=avestan */,
+ { 194, 30, 4969, 1, 6, UNI_EMOJI } /* isemoji */,
+ { 0, 1726, 1723, 8, 3, UNI_ARABICPFB } /* isarabicpfb */,
+ { 1, 377, 0, 3, 0, UNI_EXT } /* ext */,
+ { 2, 7537, 6621, 9, 3, UNI_XPOSIXALPHA } /* alphabetic=t */,
+ { 4, 653, 0, 5, 0, UNI_BUHD } /* buhid */,
+ { 1, 2393, 4659, 8, 9, UNI_CYRILLICEXTC } /* cyrillicextendedc */,
+ { 1, 6450, 4, 14, 2, UNI_SB__LO } /* sentencebreak=lo */,
+ { 0, 7804, 934, 11, 6, -UNI_IDEO } /* ideographic=false */,
+ { 1, 1734, 1110, 3, 7, UNI_SPECIALS } /* isspecials */,
+ { 1, 1823, 180, 7, 4, UNI_RUNR } /* script=runr */,
+ { 89, 1102, 1834, 4, 4, UNI_SORA } /* scx=sora */,
+ { 0, 461, 375, 2, 5, UNI_GREXT } /* isgrext */,
+ { 0, 3204, 0, 14, 0, UNI_GREXT } /* graphemeextend */,
+ { 19, 461, 6900, 2, 14, UNI_BYZANTINEMUSIC } /* isbyzantinemusic */,
+ { 104, 4795, 2657, 14, 8, UNI_NV__3_SLASH_5 } /* numericvalue=6.000e-01 */,
+ { 2, 7274, 2360, 9, 10, UNI_CN } /* category=unassigned */,
+ { 2, 733, 7915, 3, 29, UNI_ENCLOSEDALPHANUMSUP } /* inenclosedalphanumericsupplement */,
+ { 42, 5156, 298, 10, 2, UNI_RI } /* wordbreak=ri */,
+ { 2, 4424, 5353, 17, 20, UNI_PHLI } /* scriptextensions=inscriptionalpahlavi */,
+ { 0, 6165, 1582, 3, 10, UNI_PHNX } /* sc=phoenician */,
+ { 0, 3093, 598, 12, 3, -UNI_POSIXXDIGIT } /* asciihexdigit=n */,
+ { 8, 1667, 6487, 4, 23, UNI_ZNAMENNYMUSIC } /* blk=znamennymusicalnotation */,
+ { 4, 7591, 318, 3, 2, UNI_LB__AI } /* lb=ai */,
+ { 38, 1009, 0, 4, 0, UNI_LYCI } /* lyci */,
+ { 0, 3014, 1318, 12, 2, UNI_IN__12 } /* presentin=v120 */,
+ { 0, 1667, 1448, 7, 7, UNI_CJKSTROKES } /* blk=cjkstrokes */,
+ { 48, 1667, 6692, 4, 22, UNI_TRANSPORTANDMAP } /* blk=transportandmapsymbols */,
+ { 0, 309, 1992, 2, 10, UNI_YIRADICALS } /* inyiradicals */,
+ { 22, 2930, 1427, 2, 2, UNI_JT__C } /* jt=c */,
+ { 0, 1667, 5392, 5, 17, UNI_CHEROKEESUP } /* blk=cherokeesupplement */,
+ { 1, 2208, 1314, 4, 3, UNI_NV__5000 } /* nv=5000 */,
+ { 7, 4424, 847, 17, 7, UNI_LANA } /* scriptextensions=taitham */,
+ { 0, 90, 0, 4, 0, UNI_GUJR } /* gujr */,
+ { 0, 1823, 172, 7, 4, UNI_RJNG } /* script=rjng */,
+ { 0, 4424, 1592, 17, 10, UNI_SAUR } /* scriptextensions=saurashtra */,
+ { 32, 461, 1209, 2, 4, UNI_THAI } /* isthai */,
+ { 3, 7591, 4650, 3, 2, UNI_LB__BB } /* lb=bb */,
+ { 2, 461, 3228, 2, 15, UNI_ARMI } /* isimperialaramaic */,
+ { 0, 2393, 6193, 6, 12, UNI_CYRILLICSUP } /* cyrillicsupplement */,
+ { 5, 1728, 4531, 4, 6, UNI_ARABICEXTC } /* arabicextc */,
+ { 22, 3014, 290, 11, 2, UNI_IN__4 } /* presentin=v40 */,
+ { 272, 4391, 1805, 14, 4, UNI_NV__30000 } /* numericvalue=30000 */,
+ { 0, 7214, 2101, 25, 2, UNI_CCC__129 } /* canonicalcombiningclass=129 */,
+ { 1, 461, 31, 2, 4, UNI_AVST } /* isavst */,
+ { 0, 461, 6185, 2, 10, UNI_GLAG } /* isglagolitic */,
+ { 0, 461, 4161, 2, 15, UNI_DIACRITICALSEXT } /* isdiacriticalsext */,
+ { 12, 3863, 0, 14, 0, UNI_NV__8 } /* numericvalue=8 */,
+ { 0, 1102, 414, 4, 3, UNI_HAN } /* scx=han */,
+ { 28, 1823, 4176, 7, 6, UNI_SC__HANG } /* script=hangul */,
+ { 1, 895, 344, 5, 2, UNI_AGE__2_DOT_1 } /* age=v21 */,
+ { 146, 1823, 648, 7, 5, UNI_SC__ADLM } /* script=adlam */,
+ { 0, 3014, 2093, 12, 2, UNI_IN__15 } /* presentin=v150 */,
+ { 0, 2403, 2374, 8, 8, UNI_ETHIOPICEXT } /* ethiopicextended */,
+ { 17, 4371, 584, 5, 6, UNI_XPOSIXSPACE } /* wspace=true */,
+ { 0, 3177, 7048, 15, 9, UNI_EA__F } /* eastasianwidth=fullwidth */,
+ { 13, 7274, 1427, 8, 3, UNI_XPOSIXCNTRL } /* category=cc */,
+ { 3, 5168, 2302, 6, 6, UNI__PERL_IDCONT } /* _perl_idcont */,
+ { 0, 1823, 683, 7, 5, UNI_SC__TAKR } /* script=takri */,
+ { 3, 1454, 934, 2, 6, -UNI_SD } /* sd=false */,
+ { 33, 461, 136, 2, 4, UNI_MYMR } /* ismymr */,
+ { 35, 517, 2107, 4, 8, UNI_NV__15_SLASH_2 } /* nv=7.500e+00 */,
+ { 17, 55, 0, 4, 0, UNI_CHAM } /* cham */,
+ { 8, 1728, 4714, 5, 11, UNI_ARABICSUP } /* arabicsupplement */,
+ { 114, 4424, 1909, 16, 5, UNI_KANA } /* scriptextensions=kana */,
+ { 1, 3021, 2093, 5, 2, UNI_IN__15 } /* in=v150 */,
+ { 0, 3635, 0, 9, 0, UNI_LATINEXTE } /* latinexte */,
+ { 4, 461, 1262, 2, 4, UNI_SOYO } /* issoyo */,
+ { 0, 6165, 120, 3, 4, UNI_LAO } /* sc=laoo */,
+ { 4, 1667, 2256, 4, 8, UNI_PHAISTOS } /* blk=phaistos */,
+ { 1, 309, 5857, 2, 19, UNI_MONGOLIANSUP } /* inmongoliansupplement */,
+ { 22, 2324, 5373, 6, 18, UNI_TAIXUANJING } /* block=taixuanjingsymbols */,
+ { 36, 1942, 5671, 11, 3, -UNI_GRBASE } /* graphemebase=n */,
+ { 0, 4424, 1234, 17, 7, UNI_MULT } /* scriptextensions=multani */,
+ { 264, 2324, 854, 6, 7, UNI_INTAIVIET } /* block=taiviet */,
+ { 1, 2324, 4725, 6, 16, UNI_TANGUTSUP } /* block=tangutsupplement */,
+ { 9, 5637, 281, 21, 2, UNI_GCB__XX } /* graphemeclusterbreak=xx */,
+ { 12, 2232, 2172, 4, 8, UNI_NV__7_SLASH_8 } /* nv=8.750e-01 */,
+ { 1, 2525, 3100, 6, 6, UNI_XPOSIXXDIGIT } /* xposixxdigit */,
+ { 8, 1823, 1853, 7, 11, UNI_SC__SYLO } /* script=sylotinagri */,
+ { 0, 461, 144, 2, 4, UNI_NEWA } /* isnewa */,
+ { 2, 1102, 120, 4, 3, UNI_LAO } /* scx=lao */,
+ { 22, 1823, 1779, 7, 11, UNI_MEDF } /* script=medefaidrin */,
+ { 65, 402, 0, 4, 0, UNI_ARMN } /* armn */,
+ { 0, 461, 3349, 2, 15, UNI_MERC } /* ismeroiticcursive */,
+ { 1, 3021, 1318, 5, 2, UNI_IN__12 } /* in=v120 */,
+ { 64, 461, 1543, 2, 10, UNI_KHAR } /* iskharoshthi */,
+ { 0, 2536, 4765, 3, 5, UNI_JG__ZHAIN } /* jg=zhain */,
+ { 38, 2, 934, 3, 6, -UNI_CWL } /* cwl=false */,
+ { 39, 6163, 7429, 14, 14, UNI_INSC__CONSONANTPRECEDINGREPHA } /* insc=consonantprecedingrepha */,
+ { 138, 1823, 474, 7, 3, UNI_VAI } /* script=vai */,
+ { 0, 461, 814, 2, 4, UNI_QAAI } /* iszinh */,
+ { 4, 7591, 5092, 4, 15, UNI_LB__CP } /* lb=closeparenthesis */,
+ { 0, 4569, 599, 5, 3, -UNI_XPOSIXUPPER } /* upper=no */,
+ { 0, 4371, 352, 5, 5, UNI_XPOSIXSPACE } /* wspace=yes */,
+ { 90, 2523, 0, 13, 0, UNI_XPOSIXBLANK } /* isxposixblank */,
+ { 0, 4502, 129, 15, 3, UNI_LATINEXTF } /* blk=latinextendedf */,
+ { 7, 271, 3463, 4, 12, UNI_WB__EB } /* gcb=glueafterzwj */,
+ { 22, 461, 2, 2, 3, UNI_CWL } /* iscwl */,
+ { 0, 940, 934, 6, 2, -UNI_COMPEX } /* compex=f */,
+ { 2, 2301, 353, 4, 2, UNI_XIDC } /* xidc=y */,
+ { 0, 461, 2068, 2, 4, UNI_MEND } /* ismend */,
+ { 1, 5799, 1845, 5, 8, UNI_SUPERANDSUB } /* insuperandsub */,
+ { 2, 1823, 402, 7, 4, UNI_ARMN } /* script=armn */,
+ { 0, 6062, 5820, 7, 15, UNI_ENCLOSEDALPHANUM } /* block=enclosedalphanum */,
+ { 0, 7084, 3791, 8, 4, UNI_ARABICMATH } /* inarabicmath */,
+ { 0, 2483, 599, 5, 3, -UNI_CASED } /* cased=no */,
+ { 8, 1978, 0, 7, 0, UNI_SOGD } /* sogdian */,
+ { 2, 641, 0, 4, 0, UNI_hst_values_index } /* hst= */,
+ { 131, 312, 934, 5, 2, -UNI_QMARK } /* qmark=f */,
+ { 86, 552, 389, 4, 3, UNI_AGE__6_DOT_3 } /* age=6.3 */,
+ { 2, 5235, 2961, 15, 5, UNI_PC } /* connectorpunctuation */,
+ { 33, 1003, 0, 6, 0, UNI_LEPC } /* lepcha */,
+ { 3, 32, 585, 2, 2, UNI_VS } /* vs=t */,
+ { 0, 1272, 8214, 3, 32, UNI_DIACRITICALSEXT } /* iscombiningdiacriticalmarksextended */,
+ { 2, 176, 178, 2, 2, UNI_ROHG } /* rohg */,
+ { 1, 4043, 353, 17, 2, UNI_IDSB } /* idsbinaryoperator=y */,
+ { 6, 1823, 317, 7, 5, UNI_SC__TALE } /* script=taile */,
+ { 15, 2536, 2559, 3, 10, UNI_JG__KNOTTEDHEH } /* jg=knottedheh */,
+ { 1, 5658, 6534, 10, 7, UNI_identifierstatus_values_index } /* identifierstatus= */,
+ { 5, 510, 0, 4, 0, UNI_NV__3 } /* nv=3 */,
+ { 13, 2718, 6021, 14, 8, UNI_BC__RLO } /* bc=righttoleftoverride */,
+ { 5, 309, 4951, 2, 19, UNI_INEGYPTIANHIEROGLYPHS } /* inegyptianhieroglyphs */,
+ { 0, 4424, 2852, 17, 4, UNI_MAHJ } /* scriptextensions=mahj */,
+ { 6, 3538, 0, 16, 0, UNI_CYPRIOTSYLLABARY } /* cypriotsyllabary */,
+ { 0, 521, 934, 6, 2, -UNI_PATSYN } /* patsyn=f */,
+ { 2, 6165, 418, 3, 4, UNI_KHMR } /* sc=khmr */,
+ { 50, 309, 8142, 2, 18, UNI_IDEOGRAPHICSYMBOLS } /* inideographicsymbols */,
+ { 3, 1667, 5801, 4, 19, UNI_SUPARROWSB } /* blk=supplementalarrowsb */,
+ { 18, 3391, 760, 13, 3, UNI_NV__1_SLASH_2 } /* numericvalue=1/2 */,
+ { 143, 1102, 474, 4, 4, UNI_VAI } /* scx=vaii */,
+ { 36, 1198, 4076, 3, 14, UNI_CURRENCYSYMBOLS } /* incurrencysymbols */,
+ { 3, 1065, 2224, 4, 8, UNI_NV__1_SLASH_80 } /* nv=1.250e-02 */,
+ { 2, 7495, 295, 28, 1, UNI_CCC__19 } /* canonicalcombiningclass=ccc19 */,
+ { 0, 31, 0, 4, 0, UNI_AVST } /* avst */,
+ { 2, 1728, 1723, 6, 3, UNI_ARABICPFB } /* arabicpfb */,
+ { 8, 895, 2093, 6, 2, UNI_AGE__15 } /* age=v150 */,
+ { 0, 3130, 6945, 7, 12, UNI_GEOMETRICSHAPES } /* blk=geometricshapes */,
+ { 169, 2324, 7564, 6, 27, UNI_ANCIENTGREEKMUSIC } /* block=ancientgreekmusicalnotation */,
+ { 0, 4424, 228, 17, 4, UNI_XSUX } /* scriptextensions=xsux */,
+ { 1, 8538, 0, 20, 0, UNI_vo_values_index } /* verticalorientation= */,
+ { 1, 2324, 4862, 6, 4, UNI_RUMI } /* block=rumi */,
+ { 0, 6163, 6642, 5, 19, UNI_INSC__BRAHMIJOININGNUMBER } /* insc=brahmijoiningnumber */,
+ { 128, 533, 4667, 3, 5, UNI_SB__CL } /* sb=close */,
+ { 66, 1391, 21, 3, 2, UNI_WB__EX } /* wb=ex */,
+ { 6, 6090, 2046, 7, 11, UNI_INMASARAMGONDI } /* block=masaramgondi */,
+ { 0, 3633, 4533, 7, 4, UNI_LATINEXTC } /* inlatinextc */,
+ { 392, 2621, 0, 9, 0, UNI__PERL_SURROGATE } /* surrogate */,
+ { 0, 4424, 140, 17, 4, UNI_NARB } /* scriptextensions=narb */,
+ { 0, 2324, 6586, 6, 11, UNI_NUMBERFORMS } /* block=numberforms */,
+ { 0, 2002, 248, 7, 5, UNI_POSIXCNTRL } /* isposixcntrl */,
+ { 4, 1102, 1543, 4, 4, UNI_KHAR } /* scx=khar */,
+ { 9, 271, 4407, 4, 17, UNI_RI } /* gcb=regionalindicator */,
+ { 0, 1823, 4951, 7, 19, UNI_EGYP } /* script=egyptianhieroglyphs */,
+ { 3, 309, 2811, 2, 5, UNI_INKHMER } /* inkhmer */,
+ { 1, 4424, 678, 17, 5, UNI_RUNR } /* scriptextensions=runic */,
+ { 0, 5637, 1612, 21, 2, UNI_LB__LF } /* graphemeclusterbreak=lf */,
+ { 0, 3984, 353, 17, 2, UNI_EPRES } /* emojipresentation=y */,
+ { 0, 2018, 44, 12, 1, UNI_JT__U } /* joiningtype=u */,
+ { 1, 461, 6642, 2, 4, UNI_BRAH } /* isbrah */,
+ { 0, 461, 2068, 2, 12, UNI_MEND } /* ismendekikakui */,
+ { 3, 4377, 353, 14, 2, UNI_DT__NONE } /* nfkdquickcheck=y */,
+ { 1, 1397, 585, 3, 2, UNI_IDS } /* ids=t */,
+ { 22, 461, 333, 2, 6, UNI_CARI } /* iscarian */,
+ { 69, 4360, 68, 10, 2, UNI_LB__PR } /* linebreak=pr */,
+ { 4, 4002, 5118, 8, 7, UNI_MODIFIERLETTERS } /* modifierletters */,
+ { 3, 2766, 326, 3, 2, UNI_PF } /* gc=pf */,
+ { 1, 693, 4810, 3, 17, UNI_ORNAMENTALDINGBATS } /* isornamentaldingbats */,
+ { 1, 30, 6399, 1, 8, UNI_RADICAL } /* isradical */,
+ { 2, 461, 1358, 2, 4, UNI_PALM } /* ispalm */,
+ { 10, 5216, 1037, 11, 4, UNI_LATINEXTB } /* block=latinextb */,
+ { 10, 2324, 5857, 6, 12, UNI_MONGOLIANSUP } /* block=mongoliansup */,
+ { 2, 4424, 854, 17, 7, UNI_TAVT } /* scriptextensions=taiviet */,
+ { 48, 2324, 1505, 9, 4, UNI_CJKEXTA } /* block=cjkexta */,
+ { 0, 8, 274, 3, 1, UNI_pcm_values_index } /* pcm= */,
+ { 117, 2208, 1805, 4, 5, UNI_NV__500000 } /* nv=500000 */,
+ { 2, 1823, 369, 7, 4, UNI_GOTH } /* script=goth */,
+ { 0, 2718, 421, 3, 3, UNI_BC__RLI } /* bc=rli */,
+ { 1, 1823, 82, 7, 4, UNI_SC__GONG } /* script=gong */,
+ { 0, 4519, 5848, 14, 9, UNI_CYRILLICEXTA } /* block=cyrillicextendeda */,
+ { 0, 2324, 7724, 6, 28, UNI_VSSUP } /* block=variationselectorssupplement */,
+ { 0, 7274, 99, 9, 2, UNI_UPPERCASELETTER } /* category=lu */,
+ { 1, 1667, 8567, 5, 34, UNI_DIACRITICALSSUP } /* blk=combiningdiacriticalmarkssupplement */,
+ { 4, 3724, 3720, 12, 4, UNI_JG__MALAYALAMLLLA } /* jg=malayalamllla */,
+ { 0, 6165, 426, 3, 4, UNI_MRO } /* sc=mroo */,
+ { 2, 2002, 0, 3, 0, UNI_P } /* isp */,
+ { 3, 753, 599, 6, 2, UNI_NFKCQC__N } /* nfkcqc=n */,
+ { 0, 6041, 928, 21, 5, UNI_BPT__O } /* bidipairedbrackettype=open */,
+ { 268, 2732, 4531, 8, 6, UNI_ARABICEXTC } /* blk=arabicextc */,
+ { 0, 7591, 1612, 3, 2, UNI_LB__LF } /* lb=lf */,
+ { 10, 2180, 1314, 4, 3, UNI_NV__4000 } /* nv=4000 */,
+ { 0, 7198, 5909, 7, 7, UNI_SUPARROWSC } /* blk=suparrowsc */,
+ { 100, 2732, 5848, 10, 9, UNI_ARABICEXTA } /* blk=arabicextendeda */,
+ { 0, 2401, 1505, 10, 4, UNI_ETHIOPICEXTA } /* inethiopicexta */,
+ { 0, 1455, 353, 10, 4, UNI_DEP } /* deprecated=yes */,
+ { 1, 4360, 53, 10, 2, UNI_LB__NS } /* linebreak=ns */,
+ { 1, 1667, 2780, 4, 6, UNI_INCOPTIC } /* blk=coptic */,
+ { 0, 1667, 5067, 3, 11, UNI_INMANICHAEAN } /* blk=manichaean */,
+ { 0, 3892, 934, 16, 2, -UNI_STERM } /* sentenceterminal=f */,
+ { 52, 461, 4911, 2, 15, UNI_DIACRITICALSSUP } /* isdiacriticalssup */,
+ { 0, 1530, 3622, 5, 11, UNI_KANGXI } /* iskangxiradicals */,
+ { 0, 1075, 1069, 4, 2, UNI_NV__2_SLASH_3 } /* nv=2/3 */,
+ { 1, 1618, 934, 10, 6, -UNI_SD } /* softdotted=false */,
+ { 0, 6816, 0, 25, 0, UNI_CWKCF } /* changeswhennfkccasefolded */,
+ { 1, 339, 6288, 2, 6, UNI_CCC__L } /* ccc=left */,
+ { 2, 6427, 2728, 14, 3, UNI_JG__ALEF } /* joininggroup=alef */,
+ { 1, 629, 352, 5, 3, UNI_GRBASE } /* grbase=y */,
+ { 2, 1205, 0, 7, 0, UNI_GRAN } /* grantha */,
+ { 0, 7383, 7181, 10, 17, UNI_BC__ES } /* bidiclass=europeanseparator */,
+ { 1, 4424, 861, 17, 7, UNI_TIBT } /* scriptextensions=tibetan */,
+ { 33, 4424, 1125, 17, 8, UNI_TFNG } /* scriptextensions=tifinagh */,
+ { 192, 510, 1314, 4, 2, UNI_NV__300 } /* nv=300 */,
+ { 0, 6062, 620, 12, 5, UNI_ETHIOPICEXT } /* block=ethiopicext */,
+ { 2, 5460, 8552, 14, 6, UNI_term_values_index } /* terminalpunctuation= */,
+ { 2, 6735, 1144, 22, 3, UNI_JG__MALAYALAMBHA } /* joininggroup=malayalambha */,
+ { 258, 6165, 1522, 3, 4, UNI_UGAR } /* sc=ugar */,
+ { 159, 1823, 5031, 7, 14, UNI_SC__ROHG } /* script=hanifirohingya */,
+ { 0, 1003, 0, 4, 0, UNI_LEPC } /* lepc */,
+ { 37, 2766, 4016, 3, 14, UNI_ZS } /* gc=spaceseparator */,
+ { 0, 6165, 442, 3, 4, UNI_ORKH } /* sc=orkh */,
+ { 0, 309, 3649, 2, 11, UNI_PHONETICEXT } /* inphoneticext */,
+ { 8, 1667, 7537, 4, 27, UNI_ALPHABETICPF } /* blk=alphabeticpresentationforms */,
+ { 2, 521, 2288, 5, 2, UNI_patsyn_values_index } /* patsyn= */,
+ { 32, 1823, 1334, 7, 4, UNI_SC__PERM } /* script=perm */,
+ { 0, 1556, 0, 6, 0, UNI_ARROWS } /* arrows */,
+ { 77, 3514, 1505, 12, 4, UNI_ARABICEXTA } /* block=arabicexta */,
+ { 161, 30, 1617, 1, 11, UNI_SD } /* issoftdotted */,
+ { 0, 1102, 398, 4, 4, UNI_MIAO } /* scx=miao */,
+ { 0, 597, 51, 3, 3, UNI_DT__CAN } /* dt=can */,
+ { 1, 6165, 5876, 3, 4, UNI_SUND } /* sc=sund */,
+ { 0, 1059, 599, 6, 3, UNI_NFKDQC__N } /* nfkdqc=no */,
+ { 7, 1728, 0, 6, 0, UNI_ARAB } /* arabic */,
+ { 23, 30, 1581, 1, 11, UNI_INPHOENICIAN } /* inphoenician */,
+ { 29, 7383, 4472, 10, 15, UNI_BC__BN } /* bidiclass=boundaryneutral */,
+ { 35, 1823, 740, 8, 6, UNI_SC__MAND } /* script=mandaic */,
+ { 0, 1823, 333, 7, 6, UNI_CARI } /* script=carian */,
+ { 60, 5857, 0, 19, 0, UNI_MONGOLIANSUP } /* mongoliansupplement */,
+ { 2, 4360, 4407, 10, 17, UNI_RI } /* linebreak=regionalindicator */,
+ { 0, 2324, 5440, 6, 20, UNI_INNYIAKENGPUACHUEHMONG } /* block=nyiakengpuachuehmong */,
+ { 26, 1102, 663, 4, 5, UNI_LIMB } /* scx=limbu */,
+ { 0, 168, 318, 2, 2, UNI_QAAI } /* qaai */,
+ { 266, 8343, 7429, 31, 14, UNI_INSC__CONSONANTPRECEDINGREPHA } /* indicsyllabiccategory=consonantprecedingrepha */,
+ { 0, 53, 598, 1, 6, UNI_NV__NAN } /* nt=none */,
+ { 3, 261, 0, 5, 0, UNI_CWKCF } /* cwkcf */,
+ { 200, 2324, 1027, 6, 6, UNI_INYEZIDI } /* block=yezidi */,
+ { 0, 3727, 0, 9, 0, UNI_MLYM } /* malayalam */,
+ { 25, 406, 0, 2, 0, UNI_DI } /* di */,
+ { 0, 4360, 3760, 10, 13, UNI_LB__PR } /* linebreak=prefixnumeric */,
+ { 6, 1667, 5448, 4, 3, UNI_PUA } /* blk=pua */,
+ { 0, 461, 102, 2, 4, UNI_HMNG } /* ishmng */,
+ { 0, 3677, 130, 14, 2, UNI_LATINEXTF } /* islatinextendedf */,
+ { 2, 7086, 0, 24, 0, UNI_ARABICPFB } /* arabicpresentationformsb */,
+ { 0, 718, 0, 7, 0, UNI_KNDA } /* kannada */,
+ { 16, 312, 934, 5, 6, -UNI_QMARK } /* qmark=false */,
+ { 5, 6165, 4951, 3, 4, UNI_EGYP } /* sc=egyp */,
+ { 1, 1667, 6120, 4, 22, UNI_DIACRITICALSFORSYMBOLS } /* blk=diacriticalsforsymbols */,
+ { 0, 461, 5574, 2, 21, UNI_CWL } /* ischangeswhenlowercased */,
+ { 34, 1391, 2768, 2, 6, UNI_WB__XX } /* wb=other */,
+ { 0, 1667, 1572, 4, 10, UNI_INOLDPERSIAN } /* blk=oldpersian */,
+ { 64, 5895, 4457, 4, 15, UNI_SUTTONSIGNWRITING } /* issuttonsignwriting */,
+ { 0, 2403, 6193, 6, 12, UNI_ETHIOPICSUP } /* ethiopicsupplement */,
+ { 0, 5637, 1864, 21, 5, UNI_WB__EB } /* graphemeclusterbreak=ebase */,
+ { 6, 1102, 474, 4, 3, UNI_VAI } /* scx=vai */,
+ { 0, 4043, 934, 17, 6, -UNI_IDSB } /* idsbinaryoperator=false */,
+ { 34, 461, 6185, 2, 4, UNI_GLAG } /* isglag */,
+ { 1, 3098, 934, 8, 6, -UNI_XPOSIXXDIGIT } /* hexdigit=false */,
+ { 1, 2324, 1779, 6, 11, UNI_INMEDEFAIDRIN } /* block=medefaidrin */,
+ { 3, 2324, 725, 6, 7, UNI_KALI } /* block=kayahli */,
+ { 2, 1823, 3728, 8, 8, UNI_SC__MLYM } /* script=malayalam */,
+ { 6, 309, 991, 2, 6, UNI_INHATRAN } /* inhatran */,
+ { 1, 5595, 585, 21, 5, UNI_CWT } /* changeswhentitlecased=true */,
+ { 0, 461, 6082, 2, 8, UNI_GEOR } /* isgeorgian */,
+ { 2, 461, 410, 2, 4, UNI_GONM } /* isgonm */,
+ { 0, 1391, 3456, 5, 4, UNI_WB__MN } /* wb=midnum */,
+ { 0, 422, 0, 4, 0, UNI_LINA } /* lina */,
+ { 3, 7267, 3706, 16, 14, UNI_MN } /* generalcategory=nonspacingmark */,
+ { 2, 3490, 1505, 12, 4, UNI_CYRILLICEXTA } /* blk=cyrillicexta */,
+ { 0, 2232, 2164, 4, 8, UNI_NV__5_SLASH_6 } /* nv=8.333e-01 */,
+ { 58, 7267, 6677, 16, 14, UNI_LM } /* generalcategory=modifierletter */,
+ { 0, 7537, 131, 11, 1, UNI_ALPHABETICPF } /* alphabeticpf */,
+ { 0, 6287, 0, 23, 0, UNI_BC__LRE } /* bc=lefttorightembedding */,
+ { 1, 7752, 3894, 22, 4, UNI_JG__MANICHAEANTEN } /* joininggroup=manichaeanten */,
+ { 3, 1667, 144, 4, 4, UNI_INNEWA } /* blk=newa */,
+ { 10, 6000, 1926, 14, 7, UNI_YIJING } /* yijinghexagramsymbols */,
+ { 133, 309, 3325, 2, 6, UNI_INHEBREW } /* inhebrew */,
+ { 14, 2752, 934, 5, 2, -UNI_EMOJI } /* emoji=f */,
+ { 1, 5156, 1908, 8, 4, UNI_WB__KA } /* wordbreak=ka */,
+ { 2, 4176, 0, 6, 0, UNI_HANG } /* hangul */,
+ { 0, 1530, 0, 6, 0, UNI_KANA } /* iskana */,
+ { 0, 716, 3622, 5, 11, UNI_KANGXI } /* inkangxiradicals */,
+ { 0, 309, 555, 2, 2, UNI_IN__5 } /* in=5 */,
+ { 0, 7467, 1143, 26, 2, UNI_SUPPUAB } /* supplementaryprivateuseareab */,
+ { 1, 1102, 1484, 4, 8, UNI_BUGI } /* scx=buginese */,
+ { 1, 6165, 200, 3, 4, UNI_TAVT } /* sc=tavt */,
+ { 0, 2018, 2919, 12, 11, UNI_JT__L } /* joiningtype=leftjoining */,
+ { 1, 622, 353, 7, 4, UNI_EXTPICT } /* extpict=yes */,
+ { 0, 4569, 599, 5, 2, -UNI_XPOSIXUPPER } /* upper=n */,
+ { 4, 1102, 847, 4, 7, UNI_LANA } /* scx=taitham */,
+ { 0, 461, 1509, 2, 4, UNI_JAVA } /* isjava */,
+ { 0, 461, 2811, 2, 5, UNI_KHMR } /* iskhmer */,
+ { 1, 3130, 6945, 7, 15, UNI_GEOMETRICSHAPESEXT } /* blk=geometricshapesext */,
+ { 1, 4424, 1255, 17, 7, UNI_SIDD } /* scriptextensions=siddham */,
+ { 1, 1823, 909, 7, 8, UNI_BALI } /* script=balinese */,
+ { 0, 309, 1376, 2, 9, UNI_INSAMARITAN } /* insamaritan */,
+ { 13, 1823, 0, 11, 0, UNI_SC__MLYM } /* script=mlym */,
+ { 1, 1823, 426, 7, 3, UNI_MRO } /* script=mro */,
+ { 194, 2536, 4267, 3, 4, UNI_JG__TETH } /* jg=teth */,
+ { 66, 1994, 353, 7, 4, UNI_RADICAL } /* radical=yes */,
+ { 5, 7011, 0, 24, 0, UNI_ccc_values_index } /* canonicalcombiningclass= */,
+ { 110, 4360, 2621, 10, 9, UNI_LB__SG } /* linebreak=surrogate */,
+ { 1, 597, 946, 3, 5, UNI_DT__SUP } /* dt=super */,
+ { 5, 4424, 74, 17, 4, UNI_CYRL } /* scriptextensions=cyrl */,
+ { 23, 1667, 1294, 4, 9, UNI_INNABATAEAN } /* blk=nabataean */,
+ { 70, 6165, 2045, 3, 12, UNI_SC__GONM } /* sc=masaramgondi */,
+ { 0, 1102, 1027, 4, 4, UNI_YEZI } /* scx=yezi */,
+ { 34, 2180, 2107, 4, 8, UNI_NV__9_SLASH_2 } /* nv=4.500e+00 */,
+ { 0, 5255, 0, 20, 0, UNI_EXTPICT } /* extendedpictographic */,
+ { 124, 7011, 2165, 24, 2, UNI_CCC__33 } /* canonicalcombiningclass=33 */,
+ { 0, 2287, 6262, 4, 3, UNI_IN__12_DOT_1 } /* in=12.1 */,
+ { 44, 3407, 0, 14, 0, UNI_NV__4 } /* numericvalue=4 */,
+ { 0, 1102, 4487, 4, 6, UNI_ZYYY } /* scx=common */,
+ { 13410, 6165, 1686, 4, 10, UNI_SC__CPMN } /* sc=cyprominoan */,
+ { 1, 832, 585, 5, 5, UNI_STERM } /* sterm=true */,
+ { 0, 7274, 4150, 9, 11, UNI_P } /* category=punctuation */,
+ { 2, 6797, 0, 19, 0, UNI_DEVANAGARIEXTA } /* devanagariextendeda */,
+ { 0, 461, 253, 2, 4, UNI_CWCF } /* iscwcf */,
+ { 1, 5637, 163, 21, 2, UNI_GCB__PP } /* graphemeclusterbreak=pp */,
+ { 0, 4424, 1086, 17, 4, UNI_KTHI } /* scriptextensions=kthi */,
+ { 0, 7011, 461, 24, 2, UNI_CCC__IS } /* canonicalcombiningclass=is */,
+ { 10, 7648, 1707, 18, 3, UNI_DT__FRA } /* decompositiontype=fra */,
+ { 2, 461, 2665, 2, 13, UNI_PATSYN } /* ispatternsyntax */,
+ { 0, 6165, 3692, 3, 4, UNI_LISU } /* sc=lisu */,
+ { 0, 6165, 615, 3, 4, UNI_ELYM } /* sc=elym */,
+ { 81, 2766, 4827, 3, 18, UNI_ZP } /* gc=paragraphseparator */,
+ { 30, 7591, 3325, 3, 12, UNI_LB__HL } /* lb=hebrewletter */,
+ { 8, 461, 951, 2, 8, UNI_DUPL } /* isduployan */,
+ { 7, 461, 1611, 2, 2, UNI_LOWERCASELETTER } /* isll */,
+ { 34, 461, 3709, 2, 11, UNI_MC } /* isspacingmark */,
+ { 5, 7267, 8, 16, 1, UNI_P } /* generalcategory=p */,
+ { 28, 533, 5144, 3, 5, UNI_SB__AT } /* sb=aterm */,
+ { 0, 2324, 4090, 6, 17, UNI_INDICSIYAQNUMBERS } /* block=indicsiyaqnumbers */,
+ { 0, 5205, 7620, 5, 28, UNI_MISCARROWS } /* blk=miscellaneoussymbolsandarrows */,
+ { 1, 8356, 0, 11, 0, UNI_CO } /* category=co */,
+ { 0, 6165, 450, 3, 4, UNI_MIAO } /* sc=plrd */,
+ { 6, 4424, 3505, 16, 5, UNI_ETHI } /* scriptextensions=ethi */,
+ { 0, 2324, 5838, 6, 10, UNI_JAMO } /* block=hanguljamo */,
+ { 38, 2752, 1185, 3, 6, UNI_EMOTICONS } /* emoticons */,
+ { 0, 5916, 934, 21, 2, -UNI_LOE } /* logicalorderexception=f */,
+ { 0, 271, 21, 4, 2, UNI_GCB__EX } /* gcb=ex */,
+ { 21, 4161, 934, 9, 6, -UNI_DIA } /* diacritic=false */,
+ { 64, 461, 1438, 2, 10, UNI_CHRS } /* ischorasmian */,
+ { 0, 3013, 0, 5, 0, UNI_EPRES } /* epres */,
+ { 0, 4161, 353, 9, 4, UNI_DIA } /* diacritic=yes */,
+ { 3, 2324, 8142, 6, 18, UNI_IDEOGRAPHICSYMBOLS } /* block=ideographicsymbols */,
+ { 0, 120, 0, 3, 0, UNI_LAO } /* lao */,
+ { 259, 1992, 0, 10, 0, UNI_YIRADICALS } /* yiradicals */,
+ { 1, 2503, 585, 5, 5, UNI_JOINC } /* joinc=true */,
+ { 48, 5255, 585, 20, 5, UNI_EXTPICT } /* extendedpictographic=true */,
+ { 110, 461, 1454, 2, 2, UNI_SD } /* issd */,
+ { 2, 6287, 87, 4, 2, UNI_BC__LRE } /* bc=lre */,
+ { 2, 629, 352, 5, 2, UNI_grbase_values_index } /* grbase= */,
+ { 0, 7383, 83, 10, 2, UNI_BC__ON } /* bidiclass=on */,
+ { 0, 2324, 8214, 7, 24, UNI_DIACRITICALS } /* block=combiningdiacriticalmarks */,
+ { 205, 4502, 0, 18, 0, UNI_LATINEXTB } /* blk=latinextendedb */,
+ { 24, 7648, 7201, 17, 4, UNI_DT__SUP } /* decompositiontype=sup */,
+ { 10, 4852, 0, 10, 0, UNI_XPOSIXSPACE } /* whitespace */,
+ { 57, 309, 1978, 2, 7, UNI_INSOGDIAN } /* insogdian */,
+ { 0, 6735, 1193, 22, 3, UNI_JG__MALAYALAMNGA } /* joininggroup=malayalamnga */,
+ { 0, 7591, 0, 3, 0, UNI_lb_values_index } /* lb= */,
+ { 3, 7752, 5433, 23, 7, UNI_JG__MANICHAEANHUNDRED } /* joininggroup=manichaeanhundred */,
+ { 1, 4424, 1376, 17, 9, UNI_SAMR } /* scriptextensions=samaritan */,
+ { 7, 2324, 8474, 9, 33, UNI_CJKCOMPATIDEOGRAPHSSUP } /* block=cjkcompatibilityideographssupplement */,
+ { 1, 1391, 652, 3, 2, UNI_WB__MB } /* wb=mb */,
+ { 0, 309, 4725, 2, 16, UNI_TANGUTSUP } /* intangutsupplement */,
+ { 0, 2766, 13, 3, 2, UNI_LM } /* gc=lm */,
+ { 1, 461, 27, 2, 4, UNI_ARMI } /* isarmi */,
+ { 1, 2766, 65, 3, 2, UNI_MN } /* gc=mn */,
+ { 0, 1562, 0, 4, 0, UNI_NAGM } /* nagm */,
+ { 0, 2752, 353, 14, 4, UNI_ECOMP } /* emojicomponent=yes */,
+ { 1, 6165, 240, 3, 4, UNI_SC__ZYYY } /* sc=zyyy */,
+ { 13, 4424, 220, 17, 4, UNI_WCHO } /* scriptextensions=wcho */,
+ { 5, 2403, 5848, 8, 9, UNI_ETHIOPICEXTA } /* ethiopicextendeda */,
+ { 0, 1667, 1556, 4, 6, UNI_ARROWS } /* blk=arrows */,
+ { 2, 1102, 794, 4, 4, UNI_LANA } /* scx=lana */,
+ { 7, 309, 1556, 2, 6, UNI_ARROWS } /* inarrows */,
+ { 6, 1823, 3692, 7, 4, UNI_LISU } /* script=lisu */,
+ { 0, 339, 344, 4, 3, UNI_CCC__BL } /* ccc=218 */,
+ { 0, 461, 3325, 2, 4, UNI_HEBR } /* ishebr */,
+ { 0, 1094, 0, 4, 0, UNI_MERC } /* merc */,
+ { 1, 33, 7304, 1, 24, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* symbolsandpictographsexta */,
+ { 0, 7274, 3191, 8, 7, UNI_L } /* category=letter */,
+ { 4, 1102, 5876, 4, 4, UNI_SUND } /* scx=sund */,
+ { 2, 309, 6185, 2, 20, UNI_GLAGOLITICSUP } /* inglagoliticsupplement */,
+ { 0, 7274, 3706, 9, 14, UNI_MN } /* category=nonspacingmark */,
+ { 22, 5553, 934, 21, 2, -UNI_CWCM } /* changeswhencasemapped=f */,
+ { 0, 2324, 3325, 6, 6, UNI_INHEBREW } /* block=hebrew */,
+ { 6, 461, 5958, 2, 21, UNI_SINHALAARCHAICNUMBERS } /* issinhalaarchaicnumbers */,
+ { 0, 7084, 4511, 8, 9, UNI_ARABICEXTB } /* inarabicextendedb */,
+ { 28, 2324, 4131, 6, 8, UNI_VEDICEXT } /* block=vedicext */,
+ { 15, 5979, 1461, 17, 4, UNI_VO__TR } /* vo=transformedrotated */,
+ { 0, 2483, 0, 5, 0, UNI_CASED } /* cased */,
+ { 0, 517, 0, 4, 0, UNI_NV__7 } /* nv=7 */,
+ { 7, 1823, 1009, 7, 6, UNI_LYCI } /* script=lycian */,
+ { 0, 2966, 8001, 3, 29, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* insymbolsandpictographsextendeda */,
+ { 0, 4852, 352, 9, 5, UNI_XPOSIXSPACE } /* whitespace=yes */,
+ { 262, 3021, 1314, 5, 2, UNI_IN__10 } /* in=v100 */,
+ { 76, 4161, 599, 9, 2, -UNI_DIA } /* diacritic=n */,
+ { 3, 2832, 1505, 10, 4, UNI_CYRILLICEXTA } /* iscyrillicexta */,
+ { 0, 339, 2742, 4, 10, UNI_CCC__6 } /* ccc=hanreading */,
+ { 34, 3558, 0, 9, 0, UNI_Z } /* separator */,
+ { 7, 1734, 811, 3, 3, UNI_SYRC } /* issyrc */,
+ { 151, 3502, 5848, 12, 9, UNI_ETHIOPICEXTA } /* blk=ethiopicextendeda */,
+ { 80, 2536, 7342, 3, 10, UNI_JG__TEHMARBUTA } /* jg=tehmarbuta */,
+ { 165, 6165, 434, 3, 4, UNI_OGAM } /* sc=ogam */,
+ { 4, 4424, 909, 17, 8, UNI_BALI } /* scriptextensions=balinese */,
+ { 10, 1906, 4511, 8, 9, UNI_KANAEXTB } /* blk=kanaextendedb */,
+ { 6, 6165, 3663, 3, 10, UNI_SC__DEVA } /* sc=devanagari */,
+ { 6, 2208, 763, 4, 2, UNI_NV__5_SLASH_6 } /* nv=5/6 */,
+ { 0, 1530, 109, 3, 3, UNI_KAWI } /* iskawi */,
+ { 3, 8601, 6671, 7, 21, UNI_MODIFIERLETTERS } /* block=spacingmodifierletters */,
+ { 1, 3001, 3263, 12, 7, UNI_XPOSIXDIGIT } /* numerictype=decimal */,
+ { 53, 7724, 934, 17, 2, -UNI_VS } /* variationselector=f */,
+ { 0, 3633, 81, 9, 2, UNI_LATINEXTG } /* inlatinextg */,
+ { 0, 4424, 1003, 17, 4, UNI_LEPC } /* scriptextensions=lepc */,
+ { 4, 6450, 6, 14, 2, UNI_LB__CR } /* sentencebreak=cr */,
+ { 0, 7648, 3484, 18, 6, UNI_DT__SQR } /* decompositiontype=square */,
+ { 82, 2280, 2656, 11, 3, UNI_IN__15 } /* presentin=15.0 */,
+ { 2, 1823, 1125, 7, 8, UNI_TFNG } /* script=tifinagh */,
+ { 0, 7274, 0, 9, 0, UNI_gc_values_index } /* category= */,
+ { 3, 2018, 7683, 7, 6, UNI_JT__L } /* joiningtype=l */,
+ { 1, 2232, 2657, 4, 8, UNI_NV__4_SLASH_5 } /* nv=8.000e-01 */,
+ { 2, 7084, 7545, 6, 20, UNI_ARABICPFA } /* inarabicpresentationformsa */,
+ { 1, 1102, 442, 4, 4, UNI_ORKH } /* scx=orkh */,
+ { 0, 6165, 1812, 3, 11, UNI_HMNG } /* sc=pahawhhmong */,
+ { 87, 4941, 3622, 9, 11, UNI_KANGXI } /* block=kangxiradicals */,
+ { 0, 1530, 490, 5, 3, UNI_KANBUN } /* iskanbun */,
+ { 0, 3013, 585, 5, 5, UNI_EPRES } /* epres=true */,
+ { 0, 461, 450, 2, 4, UNI_MIAO } /* isplrd */,
+ { 0, 312, 0, 5, 0, UNI_QMARK } /* qmark */,
+ { 0, 718, 3622, 3, 3, UNI_KANGXI } /* kangxi */,
+ { 4, 3724, 4724, 12, 3, UNI_JG__MALAYALAMTTA } /* jg=malayalamtta */,
+ { 0, 2301, 5671, 10, 3, -UNI_XIDC } /* xidcontinue=n */,
+ { 258, 4360, 380, 10, 2, UNI_LB__HY } /* linebreak=hy */,
+ { 6, 3040, 599, 13, 2, -UNI_QMARK } /* quotationmark=n */,
+ { 0, 461, 3421, 2, 15, UNI_NARB } /* isoldnortharabian */,
+ { 8, 461, 1098, 2, 4, UNI_NSHU } /* isnshu */,
+ { 1, 4360, 2041, 10, 2, UNI_LB__H3 } /* linebreak=h3 */,
+ { 12, 4424, 176, 17, 4, UNI_ROHG } /* scriptextensions=rohg */,
+ { 0, 3378, 599, 13, 2, UNI_DT__CAN } /* nfdquickcheck=n */,
+ { 3, 2324, 1033, 6, 8, UNI_JAMOEXTB } /* block=jamoextb */,
+ { 0, 5216, 204, 13, 2, UNI_LATINEXTF } /* block=latinextf */,
+ { 26, 2523, 4569, 8, 5, UNI_XPOSIXUPPER } /* isxposixupper */,
+ { 0, 7591, 2609, 3, 10, UNI_LB__WJ } /* lb=wordjoiner */,
+ { 0, 2324, 2373, 8, 5, UNI_CJKEXTE } /* block=cjkexte */,
+ { 138, 5065, 225, 13, 2, UNI_JG__MANICHAEANPE } /* jg=manichaeanpe */,
+ { 0, 2324, 2411, 6, 11, UNI_KATAKANAEXT } /* block=katakanaext */,
+ { 1, 1823, 725, 7, 7, UNI_SC__KALI } /* script=kayahli */,
+ { 2, 609, 2029, 2, 10, UNI_LB__B2 } /* lb=breakboth */,
+ { 27, 533, 1165, 3, 2, UNI_SB__CL } /* sb=cl */,
+ { 4, 6163, 6416, 12, 11, UNI_INSC__CONSONANTSUBJOINED } /* insc=consonantsubjoined */,
+ { 9, 6735, 135, 14, 2, UNI_JG__MIM } /* joininggroup=mim */,
+ { 132, 7274, 4569, 9, 15, UNI_UPPERCASELETTER } /* category=uppercaseletter */,
+ { 3, 15, 3889, 2, 3, UNI_AGE__9 } /* age=9 */,
+ { 4, 8619, 0, 21, 0, UNI_MATHOPERATORS } /* mathematicaloperators */,
+ { 0, 5658, 753, 18, 4, UNI_IDENTIFIERTYPE__NOTNFKC } /* identifiertype=notnfkc */,
+ { 14, 1102, 1367, 4, 9, UNI_PAUC } /* scx=paucinhau */,
+ { 0, 2432, 3788, 3, 15, UNI_MISCMATHSYMBOLSA } /* inmiscmathsymbolsa */,
+ { 0, 6163, 7690, 13, 17, UNI_INSC__CONSONANTINITIALPOSTFIXED } /* insc=consonantinitialpostfixed */,
+ { 65, 461, 7892, 2, 16, UNI_UIDEO } /* isunifiedideograph */,
+ { 33, 2766, 1887, 3, 7, UNI_XPOSIXCNTRL } /* gc=control */,
+ { 0, 2060, 599, 5, 3, -UNI_XPOSIXALPHA } /* alpha=no */,
+ { 50, 2324, 8407, 7, 34, UNI_DIACRITICALSFORSYMBOLS } /* block=combiningdiacriticalmarksforsymbols */,
+ { 0, 1823, 462, 7, 4, UNI_SHAW } /* script=shaw */,
+ { 3, 1726, 4987, 3, 9, UNI_ALCHEMICAL } /* isalchemical */,
+ { 0, 6677, 0, 14, 0, UNI_LM } /* modifierletter */,
+ { 103, 461, 5255, 2, 20, UNI_EXTPICT } /* isextendedpictographic */,
+ { 16, 4941, 5848, 10, 9, UNI_KANAEXTA } /* block=kanaextendeda */,
+ { 1, 7383, 535, 9, 2, UNI_BC__S } /* bidiclass=s */,
+ { 0, 461, 1685, 2, 11, UNI_CPMN } /* iscyprominoan */,
+ { 54, 6165, 1543, 3, 4, UNI_KHAR } /* sc=khar */,
+ { 0, 3391, 393, 13, 2, UNI_NV__15 } /* numericvalue=15 */,
+ { 4, 3391, 1069, 14, 2, UNI_NV__2_SLASH_3 } /* numericvalue=2/3 */,
+ { 3, 1198, 6382, 5, 18, UNI_CJKCOMPATFORMS } /* incjkcompatibilityforms */,
+ { 389, 4060, 0, 15, 0, UNI_BRAI } /* braillepatterns */,
+ { 0, 6427, 2009, 13, 9, UNI_JG__SYRIACWAW } /* joininggroup=syriacwaw */,
+ { 2, 16, 1794, 1, 3, UNI_M } /* gc=m */,
+ { 3, 2718, 6310, 3, 20, UNI_BC__PDF } /* bc=popdirectionalformat */,
+ { 1, 4683, 0, 16, 0, UNI_PF } /* finalpunctuation */,
+ { 10, 4360, 7593, 9, 27, UNI_LB__CJ } /* linebreak=conditionaljapanesestarter */,
+ { 71, 461, 4089, 2, 4, UNI_SIND } /* issind */,
+ { 69, 2004, 3100, 4, 6, UNI_POSIXDIGIT } /* posixdigit */,
+ { 2, 4391, 346, 15, 1, UNI_NV__3_SLASH_8 } /* numericvalue=3/8 */,
+ { 0, 533, 4191, 3, 5, UNI_SB__LO } /* sb=lower */,
+ { 69, 2324, 6776, 6, 21, UNI_MEETEIMAYEKEXT } /* block=meeteimayekextensions */,
+ { 1, 4569, 352, 8, 2, UNI_upper_values_index } /* uppercase= */,
+ { 3, 1894, 934, 5, 2, -UNI_BIDIM } /* bidim=f */,
+ { 29, 6450, 832, 14, 5, UNI_SB__ST } /* sentencebreak=sterm */,
+ { 21, 3098, 585, 8, 5, UNI_XPOSIXXDIGIT } /* hexdigit=true */,
+ { 1, 2483, 934, 5, 2, -UNI_CASED } /* cased=f */,
+ { 1, 6514, 0, 10, 0, UNI_CO } /* privateuse */,
+ { 0, 71, 353, 3, 2, UNI_CWU } /* cwu=y */,
+ { 1, 7383, 1715, 21, 7, UNI_BC__LRI } /* bidiclass=lefttorightisolate */,
+ { 5, 6427, 1920, 13, 3, UNI_JG__TAH } /* joininggroup=tah */,
+ { 0, 3583, 0, 16, 0, UNI_HIGHPUSURROGATES } /* highpusurrogates */,
+ { 0, 7267, 7110, 16, 13, UNI_M } /* generalcategory=combiningmark */,
+ { 8, 6165, 3349, 3, 15, UNI_MERC } /* sc=meroiticcursive */,
+ { 2, 1667, 847, 4, 7, UNI_INTAITHAM } /* blk=taitham */,
+ { 1, 1396, 2931, 7, 3, UNI_XIDS } /* xidstart=t */,
+ { 5, 2494, 6945, 5, 20, UNI_GEOMETRICSHAPESEXT } /* isgeometricshapesextended */,
+ { 0, 1272, 6400, 5, 11, UNI_CJKRADICALSSUP } /* iscjkradicalssup */,
+ { 7, 1823, 5778, 7, 21, UNI_PRTI } /* script=inscriptionalparthian */,
+ { 0, 641, 140, 4, 2, UNI_HST__NA } /* hst=na */,
+ { 0, 461, 6986, 2, 25, UNI_SYMBOLSFORLEGACYCOMPUTING } /* issymbolsforlegacycomputing */,
+ { 73, 2302, 585, 10, 5, UNI_IDC } /* idcontinue=true */,
+ { 19, 30, 1116, 1, 5, UNI_TAGB } /* istagb */,
+ { 2, 461, 7110, 2, 13, UNI_M } /* iscombiningmark */,
+ { 0, 3677, 4698, 6, 12, UNI_LATIN1 } /* islatin1supplement */,
+ { 13, 1424, 520, 8, 1, UNI_CCC__17 } /* ccc=ccc17 */,
+ { 13, 1667, 0, 7, 0, UNI_CJK } /* blk=cjk */,
+ { 38, 461, 1992, 2, 10, UNI_YIRADICALS } /* isyiradicals */,
+ { 3, 1611, 0, 2, 0, UNI_LOWERCASELETTER } /* ll */,
+ { 0, 7648, 7011, 18, 9, UNI_DT__CAN } /* decompositiontype=canonical */,
+ { 0, 8601, 5813, 9, 7, UNI_SUPARROWSB } /* block=suparrowsb */,
+ { 30, 1823, 615, 7, 7, UNI_ELYM } /* script=elymaic */,
+ { 29, 1823, 1248, 7, 4, UNI_SC__PHAG } /* script=phag */,
+ { 29, 1174, 3123, 3, 7, UNI_EA__N } /* ea=neutral */,
+ { 0, 4424, 1262, 17, 4, UNI_SOYO } /* scriptextensions=soyo */,
+ { 0, 6165, 23, 3, 4, UNI_AHOM } /* sc=ahom */,
+ { 65, 1102, 4926, 4, 5, UNI_TAML } /* scx=tamil */,
+ { 38, 339, 2092, 4, 2, UNI_CCC__25 } /* ccc=25 */,
+ { 2, 1424, 348, 7, 2, UNI_CCC__91 } /* ccc=ccc91 */,
+ { 2, 4941, 1505, 10, 4, UNI_KANAEXTA } /* block=kanaexta */,
+ { 5, 5658, 0, 15, 0, UNI_identifiertype_values_index } /* identifiertype= */,
+ { 130, 309, 6900, 2, 23, UNI_BYZANTINEMUSIC } /* inbyzantinemusicalsymbols */,
+ { 62, 4584, 599, 18, 3, -UNI_IDST } /* idstrinaryoperator=no */,
+ { 2, 3514, 4659, 12, 9, UNI_ARABICEXTC } /* block=arabicextendedc */,
+ { 71, 4569, 5671, 8, 3, -UNI_XPOSIXUPPER } /* uppercase=n */,
+ { 11, 339, 295, 5, 1, UNI_CCC__19 } /* ccc=19 */,
+ { 2, 7648, 2030, 20, 5, UNI_DT__NB } /* decompositiontype=nobreak */,
+ { 0, 6090, 7620, 7, 19, UNI_MISCSYMBOLS } /* block=miscellaneoussymbols */,
+ { 8, 3908, 3696, 6, 10, UNI_TANGUTSUP } /* tangutsupplement */,
+ { 0, 2324, 1872, 6, 11, UNI_YISYLLABLES } /* block=yisyllables */,
+ { 1, 876, 934, 4, 2, -UNI_IDEO } /* ideo=f */,
+ { 118, 461, 802, 2, 4, UNI_SARB } /* issarb */,
+ { 224, 309, 8660, 2, 43, UNI_UCASEXTA } /* inunifiedcanadianaboriginalsyllabicsextendeda */,
+ { 211, 4941, 1286, 7, 8, UNI_INKHUDAWADI } /* block=khudawadi */,
+ { 70, 0, 0, 2, 0, UNI_CASEDLETTER } /* l& */,
+ { 0, 461, 5778, 2, 21, UNI_PRTI } /* isinscriptionalparthian */,
+ { 1, 2002, 1082, 7, 4, UNI_POSIXWORD } /* isposixword */,
+ { 204, 8, 1659, 1, 8, UNI_POSIXSPACE } /* perlspace */,
+ { 0, 2718, 7181, 3, 17, UNI_BC__ES } /* bc=europeanseparator */,
+ { 2, 461, 184, 2, 4, UNI_SAMR } /* issamr */,
+ { 1, 4424, 1853, 17, 11, UNI_SYLO } /* scriptextensions=sylotinagri */,
+ { 0, 1906, 3696, 8, 10, UNI_KANASUP } /* blk=kanasupplement */,
+ { 67, 2324, 2411, 6, 8, UNI_INKATAKANA } /* block=katakana */,
+ { 0, 4852, 933, 9, 3, -UNI_XPOSIXSPACE } /* whitespace=f */,
+ { 0, 8343, 2452, 22, 8, UNI_INSC__AVAGRAHA } /* indicsyllabiccategory=avagraha */,
+ { 1, 461, 2411, 2, 8, UNI_KANA } /* iskatakana */,
+ { 3, 17, 984, 1, 3, UNI_HIRA } /* hira */,
+ { 2, 266, 934, 3, 6, -UNI_CWT } /* cwt=false */,
+ { 1, 4424, 200, 17, 4, UNI_TAVT } /* scriptextensions=tavt */,
+ { 0, 4424, 8667, 17, 18, UNI_CANS } /* scriptextensions=canadianaboriginal */,
+ { 69, 4043, 585, 4, 5, UNI_IDSB } /* idsb=true */,
+ { 194, 1198, 8214, 3, 24, UNI_DIACRITICALS } /* incombiningdiacriticalmarks */,
+ { 67, 5068, 0, 10, 0, UNI_MANI } /* manichaean */,
+ { 0, 7648, 604, 18, 4, UNI_EA__F } /* decompositiontype=wide */,
+ { 0, 8071, 4218, 30, 4, UNI_CJKEXTH } /* blk=cjkunifiedideographsextensionh */,
+ { 144, 1823, 204, 7, 4, UNI_TFNG } /* script=tfng */,
+ { 1, 461, 322, 2, 5, UNI_VSSUP } /* isvssup */,
+ { 3, 605, 642, 2, 3, UNI_idst_values_index } /* idst= */,
+ { 140, 2324, 1262, 6, 7, UNI_INSOYOMBO } /* block=soyombo */,
+ { 2, 2732, 1141, 10, 3, UNI_ARABICPFA } /* blk=arabicpfa */,
+ { 0, 7267, 3554, 16, 13, UNI_ZL } /* generalcategory=lineseparator */,
+ { 193, 1102, 426, 4, 4, UNI_MRO } /* scx=mroo */,
+ { 1, 1823, 537, 7, 4, UNI_TANG } /* script=tang */,
+ { 1, 406, 585, 2, 5, UNI_DI } /* di=true */,
+ { 0, 461, 1385, 2, 4, UNI_THAA } /* isthaa */,
+ { 2, 552, 2083, 5, 2, UNI_AGE__5_DOT_1 } /* age=5.1 */,
+ { 0, 3791, 353, 4, 4, UNI_MATH } /* math=yes */,
+ { 12, 1102, 5682, 4, 5, UNI_GREK } /* scx=greek */,
+ { 1, 4424, 422, 17, 4, UNI_LINA } /* scriptextensions=lina */,
+ { 0, 3093, 934, 13, 2, -UNI_POSIXXDIGIT } /* asciihexdigit=f */,
+ { 3, 3635, 4770, 13, 10, UNI_LATINEXTADDITIONAL } /* latinextendedadditional */,
+ { 66, 5255, 353, 20, 2, UNI_EXTPICT } /* extendedpictographic=y */,
+ { 0, 895, 290, 5, 2, UNI_AGE__4 } /* age=v40 */,
+ { 17, 2324, 283, 6, 5, UNI_INNUSHU } /* block=nushu */,
+ { 20, 2718, 2728, 10, 4, UNI_BC__R } /* bc=righttoleft */,
+ { 7, 1823, 454, 7, 4, UNI_PRTI } /* script=prti */,
+ { 1, 4424, 78, 17, 4, UNI_DSRT } /* scriptextensions=dsrt */,
+ { 1, 2220, 2091, 4, 8, UNI_NV__5_SLASH_8 } /* nv=6.250e-01 */,
+ { 0, 4424, 55, 17, 4, UNI_CHAM } /* scriptextensions=cham */,
+ { 0, 8343, 5731, 23, 15, UNI_INSC__CANTILLATIONMARK } /* indicsyllabiccategory=cantillationmark */,
+ { 1, 2988, 2327, 11, 3, UNI_nfcqc_values_index } /* nfcquickcheck= */,
+ { 30, 1065, 3876, 5, 2, UNI_NV__1_SLASH_80 } /* nv=1/80 */,
+ { 15, 7274, 4002, 9, 14, UNI_SK } /* category=modifiersymbol */,
+ { 0, 2324, 5958, 6, 7, UNI_INSINHALA } /* block=sinhala */,
+ { 0, 4424, 802, 17, 4, UNI_SARB } /* scriptextensions=sarb */,
+ { 169, 71, 585, 3, 5, UNI_CWU } /* cwu=true */,
+ { 1, 3021, 394, 4, 2, UNI_IN__5_DOT_1 } /* in=v51 */,
+ { 0, 1102, 4620, 4, 7, UNI_LINB } /* scx=linearb */,
+ { 1, 8505, 3263, 3, 7, UNI_XPOSIXDIGIT } /* nt=decimal */,
+ { 82, 4424, 1105, 16, 5, UNI_TALU } /* scriptextensions=talu */,
+ { 0, 7383, 119, 10, 2, UNI_BC__AL } /* bidiclass=al */,
+ { 259, 3391, 289, 13, 1, UNI_NV__0 } /* numericvalue=0 */,
+ { 0, 3021, 396, 4, 2, UNI_IN__6_DOT_1 } /* in=v61 */,
+ { 32, 4, 352, 2, 2, UNI_loe_values_index } /* loe= */,
+ { 10, 309, 4862, 2, 18, UNI_RUMI } /* inruminumeralsymbols */,
+ { 0, 1396, 353, 4, 4, UNI_XIDS } /* xids=yes */,
+ { 1, 6165, 790, 3, 4, UNI_SC__KALI } /* sc=kali */,
+ { 0, 8601, 819, 7, 6, UNI_SC__SHRD } /* block=sharada */,
+ { 51, 1823, 39, 7, 4, UNI_BHKS } /* script=bhks */,
+ { 1, 4424, 663, 17, 4, UNI_LIMB } /* scriptextensions=limb */,
+ { 1, 7267, 4602, 16, 18, UNI_PI } /* generalcategory=initialpunctuation */,
+ { 0, 5876, 0, 9, 0, UNI_SUND } /* sundanese */,
+ { 0, 1102, 806, 4, 4, UNI_SHRD } /* scx=shrd */,
+ { 1, 461, 3727, 2, 9, UNI_MLYM } /* ismalayalam */,
+ { 2, 2718, 3118, 3, 12, UNI_BC__ON } /* bc=otherneutral */,
+ { 142, 1823, 98, 7, 4, UNI_HLUW } /* script=hluw */,
+ { 1, 2766, 3101, 3, 5, UNI_XPOSIXDIGIT } /* gc=digit */,
+ { 3, 461, 5373, 2, 18, UNI_TAIXUANJING } /* istaixuanjingsymbols */,
+ { 4, 461, 653, 2, 5, UNI_BUHD } /* isbuhid */,
+ { 1, 1200, 1448, 3, 7, UNI_CJKSTROKES } /* cjkstrokes */,
+ { 0, 30, 1190, 1, 5, UNI_BENG } /* isbeng */,
+ { 135, 2766, 115, 3, 2, UNI_SK } /* gc=sk */,
+ { 11, 1102, 668, 4, 5, UNI_OGAM } /* scx=ogham */,
+ { 3, 2766, 5172, 3, 2, UNI_CASEDLETTER } /* gc=l_ */,
+ { 2, 4424, 1522, 17, 8, UNI_UGAR } /* scriptextensions=ugaritic */,
+ { 0, 1823, 739, 7, 4, UNI_SC__MAND } /* script=mand */,
+ { 8, 1272, 5694, 3, 10, UNI_COUNTINGROD } /* iscountingrod */,
+ { 263, 1667, 8214, 5, 32, UNI_DIACRITICALSEXT } /* blk=combiningdiacriticalmarksextended */,
+ { 0, 2324, 426, 6, 3, UNI_INMRO } /* block=mro */,
+ { 147, 8660, 0, 42, 0, UNI_UCASEXT } /* unifiedcanadianaboriginalsyllabicsextended */,
+ { 140, 1894, 599, 12, 2, -UNI_BIDIM } /* bidimirrored=n */,
+ { 1, 4852, 352, 9, 2, UNI_wspace_values_index } /* whitespace= */,
+ { 38, 4970, 0, 13, 0, UNI_EMOD } /* emojimodifier */,
+ { 1, 7648, 1707, 18, 8, UNI_DT__FRA } /* decompositiontype=fraction */,
+ { 0, 375, 598, 4, 3, -UNI_GREXT } /* grext=n */,
+ { 0, 2324, 216, 6, 4, UNI_INTOTO } /* block=toto */,
+ { 132, 5939, 934, 5, 6, -UNI__PERL_NCHAR } /* nchar=false */,
+ { 36, 3817, 2224, 14, 8, UNI_NV__1_SLASH_80 } /* numericvalue=1.250e-02 */,
+ { 4, 4424, 798, 17, 4, UNI_NBAT } /* scriptextensions=nbat */,
+ { 2, 2766, 199, 3, 2, UNI_TITLE } /* gc=lt */,
+ { 0, 309, 1404, 2, 10, UNI_ASCII } /* inbasiclatin */,
+ { 6, 6287, 298, 4, 2, UNI_BC__LRI } /* bc=lri */,
+ { 2, 461, 622, 2, 7, UNI_EXTPICT } /* isextpict */,
+ { 2, 2324, 2468, 6, 13, UNI_IPAEXT } /* block=ipaextensions */,
+ { 35, 6165, 31, 3, 4, UNI_AVST } /* sc=avst */,
+ { 18, 6165, 1262, 3, 4, UNI_SOYO } /* sc=soyo */,
+ { 0, 4424, 188, 17, 4, UNI_SGNW } /* scriptextensions=sgnw */,
+ { 40, 3984, 585, 17, 5, UNI_EPRES } /* emojipresentation=true */,
+ { 4, 461, 7724, 2, 18, UNI_INVS } /* isvariationselectors */,
+ { 0, 461, 2335, 2, 13, UNI_BLOCKELEMENTS } /* isblockelements */,
+ { 9, 1396, 598, 7, 2, UNI_xids_values_index } /* xidstart= */,
+ { 6, 309, 5876, 2, 9, UNI_INSUNDANESE } /* insundanese */,
+ { 37, 20, 1104, 2, 3, UNI_XPOSIXXDIGIT } /* hex=t */,
+ { 70, 4970, 0, 17, 0, UNI_EBASE } /* emojimodifierbase */,
+ { 139, 30, 4190, 1, 10, UNI_XPOSIXLOWER } /* islowercase */,
+ { 812, 940, 599, 6, 2, -UNI_COMPEX } /* compex=n */,
+ { 0, 1102, 499, 4, 4, UNI_LYDI } /* scx=lydi */,
+ { 228, 4424, 634, 17, 7, UNI_HANO } /* scriptextensions=hanunoo */,
+ { 0, 1102, 1117, 4, 8, UNI_TAGB } /* scx=tagbanwa */,
+ { 1, 461, 875, 2, 5, UNI_UIDEO } /* isuideo */,
+ { 0, 7198, 4710, 5, 8, UNI_SYRIACSUP } /* blk=syriacsup */,
+ { 0, 232, 0, 4, 0, UNI_YI } /* yiii */,
+ { 56, 1391, 700, 3, 2, UNI_WB__EB } /* wb=em */,
+ { 0, 461, 4161, 2, 12, UNI_DIACRITICALS } /* isdiacriticals */,
+ { 0, 112, 114, 2, 2, UNI_KITS } /* kits */,
+ { 3, 1102, 1582, 4, 10, UNI_PHNX } /* scx=phoenician */,
+ { 0, 461, 8, 2, 2, UNI_PC } /* ispc */,
+ { 0, 2324, 1367, 6, 9, UNI_INPAUCINHAU } /* block=paucinhau */,
+ { 320, 6185, 0, 10, 0, UNI_GLAG } /* glagolitic */,
+ { 11, 1667, 2811, 4, 12, UNI_KHMERSYMBOLS } /* blk=khmersymbols */,
+ { 29, 4502, 4770, 12, 10, UNI_LATINEXTADDITIONAL } /* blk=latinextadditional */,
+ { 177, 7383, 176, 11, 2, UNI_BC__LRO } /* bidiclass=lro */,
+ { 3, 2732, 2800, 5, 11, UNI_ALPHABETICPF } /* blk=alphabeticpf */,
+ { 0, 6427, 4243, 13, 4, UNI_JG__HETH } /* joininggroup=heth */,
+ { 5, 4360, 3463, 10, 4, UNI_LB__GL } /* linebreak=glue */,
+ { 4, 461, 6120, 2, 22, UNI_DIACRITICALSFORSYMBOLS } /* isdiacriticalsforsymbols */,
+ { 34, 1978, 0, 4, 0, UNI_SOGD } /* sogd */,
+ { 0, 312, 599, 5, 2, -UNI_QMARK } /* qmark=n */,
+ { 0, 6090, 7620, 7, 28, UNI_MISCARROWS } /* block=miscellaneoussymbolsandarrows */,
+ { 0, 8601, 4150, 9, 11, UNI_SUPPUNCTUATION } /* block=suppunctuation */,
+ { 0, 2287, 0, 3, 0, UNI_in_values_index } /* in= */,
+ { 3, 939, 599, 5, 2, -UNI_ECOMP } /* ecomp=n */,
+ { 1, 3490, 3640, 12, 9, UNI_CYRILLICEXTD } /* blk=cyrillicextendedd */,
+ { 33, 1801, 1805, 7, 7, UNI_NV__10000000000 } /* nv=10000000000 */,
+ { 0, 8601, 6103, 9, 13, UNI_SUPMATHOPERATORS } /* block=supmathoperators */,
+ { 1, 2324, 4060, 6, 7, UNI_BRAI } /* block=braille */,
+ { 259, 30, 4074, 1, 16, UNI_CURRENCYSYMBOLS } /* iscurrencysymbols */,
+ { 0, 499, 0, 6, 0, UNI_LYDI } /* lydian */,
+ { 16, 7591, 4783, 6, 12, UNI_LB__CB } /* lb=contingentbreak */,
+ { 356, 4424, 1829, 16, 5, UNI_MLYM } /* scriptextensions=mlym */,
+ { 0, 2004, 307, 5, 5, UNI_POSIXPRINT } /* posixprint */,
+ { 4, 292, 766, 3, 3, UNI_NV__5_SLASH_2 } /* nv=5/2 */,
+ { 3, 7752, 2015, 23, 3, UNI_JG__MANICHAEANWAW } /* joininggroup=manichaeanwaw */,
+ { 3, 7648, 3289, 18, 5, UNI_DT__FIN } /* decompositiontype=final */,
+ { 0, 6165, 493, 3, 6, UNI_SC__KHOJ } /* sc=khojki */,
+ { 469, 4360, 4330, 10, 14, UNI_LB__PO } /* linebreak=postfixnumeric */,
+ { 0, 823, 934, 4, 2, -UNI_DASH } /* dash=f */,
+ { 96, 7198, 5409, 5, 11, UNI_SMALLKANAEXT } /* blk=smallkanaext */,
+ { 2, 1823, 747, 8, 3, UNI_MARC } /* script=marc */,
+ { 0, 1823, 434, 7, 4, UNI_OGAM } /* script=ogam */,
+ { 0, 5799, 1269, 6, 3, UNI_SUPPUAB } /* insuppuab */,
+ { 0, 6165, 658, 3, 5, UNI_SC__DOGR } /* sc=dogra */,
+ { 101, 309, 4525, 2, 12, UNI_CYRILLICEXTC } /* incyrillicextc */,
+ { 77, 4424, 434, 17, 4, UNI_OGAM } /* scriptextensions=ogam */,
+ { 0, 6866, 353, 24, 2, UNI_COMPEX } /* fullcompositionexclusion=y */,
+ { 16, 2780, 0, 4, 0, UNI_COPT } /* copt */,
+ { 0, 6236, 1805, 15, 7, UNI_NV__100000000 } /* numericvalue=100000000 */,
+ { 192, 7669, 1874, 21, 8, UNI_LB__H2 } /* hangulsyllabletype=lvsyllable */,
+ { 0, 1455, 599, 10, 3, -UNI_DEP } /* deprecated=no */,
+ { 0, 7495, 1070, 27, 2, UNI_CCC__31 } /* canonicalcombiningclass=ccc31 */,
+ { 7, 3391, 2234, 12, 10, UNI_NV__1_SLASH_12 } /* numericvalue=8.333e-02 */,
+ { 1, 4131, 0, 15, 0, UNI_VEDICEXT } /* vedicextensions */,
+ { 0, 4360, 2004, 10, 2, UNI_LB__PO } /* linebreak=po */,
+ { 1, 1102, 317, 4, 5, UNI_TALE } /* scx=taile */,
+ { 0, 1823, 967, 7, 8, UNI_SC__GUJR } /* script=gujarati */,
+ { 2, 7383, 330, 10, 3, UNI_BC__PDF } /* bidiclass=pdf */,
+ { 0, 2665, 353, 13, 2, UNI_PATSYN } /* patternsyntax=y */,
+ { 35, 939, 353, 5, 2, UNI_ECOMP } /* ecomp=y */,
+ { 0, 1272, 4076, 3, 13, UNI_SC } /* iscurrencysymbol */,
+ { 294, 1221, 324, 6, 3, UNI_KANASUP } /* inkanasup */,
+ { 66, 3177, 17, 15, 1, UNI_EA__H } /* eastasianwidth=h */,
+ { 2, 30, 614, 1, 8, UNI_INELYMAIC } /* inelymaic */,
+ { 13, 2665, 934, 13, 2, -UNI_PATSYN } /* patternsyntax=f */,
+ { 0, 8658, 0, 44, 0, UNI_UCASEXT } /* isunifiedcanadianaboriginalsyllabicsextended */,
+ { 669, 6165, 1234, 3, 4, UNI_SC__MULT } /* sc=mult */,
+ { 0, 1667, 2244, 4, 12, UNI_INOLDHUNGARIAN } /* blk=oldhungarian */,
+ { 3, 6692, 0, 15, 0, UNI_TRANSPORTANDMAP } /* transportandmap */,
+ { 0, 2324, 1438, 6, 10, UNI_INCHORASMIAN } /* block=chorasmian */,
+ { 0, 6816, 274, 25, 1, UNI_cwkcf_values_index } /* changeswhennfkccasefolded= */,
+ { 0, 302, 585, 5, 5, UNI__PERL_PATWS } /* patws=true */,
+ { 2, 810, 0, 4, 0, UNI_SYRC } /* syrc */,
+ { 7, 461, 11, 2, 4, UNI_ADLM } /* isadlm */,
+ { 0, 1102, 406, 4, 4, UNI_DIAK } /* scx=diak */,
+ { 1, 1102, 3436, 4, 15, UNI_SARB } /* scx=oldsoutharabian */,
+ { 1, 3677, 4533, 7, 4, UNI_LATINEXTC } /* islatinextc */,
+ { 0, 1667, 1696, 4, 6, UNI_DOMINO } /* blk=domino */,
+ { 49, 1102, 240, 4, 4, UNI_ZYYY } /* scx=zyyy */,
+ { 1, 6165, 283, 3, 5, UNI_NSHU } /* sc=nushu */,
+ { 580, 4424, 1248, 17, 4, UNI_PHAG } /* scriptextensions=phag */,
+ { 178, 4424, 4505, 16, 6, UNI_LATN } /* scriptextensions=latin */,
+ { 282, 15, 554, 2, 3, UNI_AGE__5 } /* age=5 */,
+ { 0, 324, 6965, 3, 22, UNI_SUPERANDSUB } /* superscriptsandsubscripts */,
+ { 0, 4569, 584, 8, 6, UNI_XPOSIXUPPER } /* uppercase=true */,
+ { 2, 7274, 13, 9, 2, UNI_LM } /* category=lm */,
+ { 1, 629, 352, 5, 5, UNI_GRBASE } /* grbase=yes */,
+ { 1, 461, 5937, 2, 21, UNI__PERL_NCHAR } /* isnoncharactercodepoint */,
+ { 0, 4424, 4651, 17, 4, UNI_BOPO } /* scriptextensions=bopo */,
+ { 1, 5637, 3709, 21, 11, UNI_GCB__SM } /* graphemeclusterbreak=spacingmark */,
+ { 17, 2324, 4131, 6, 15, UNI_VEDICEXT } /* block=vedicextensions */,
+ { 0, 309, 2182, 2, 4, UNI_IN__4_DOT_1 } /* in=4.1 */,
+ { 1, 3677, 1036, 3, 2, UNI_LOE } /* isloe */,
+ { 39, 461, 493, 2, 6, UNI_KHOJ } /* iskhojki */,
+ { 0, 2, 0, 1, 0, UNI_C } /* c */,
+ { 389, 309, 901, 2, 8, UNI_INARMENIAN } /* inarmenian */,
+ { 0, 2324, 6185, 6, 20, UNI_GLAGOLITICSUP } /* block=glagoliticsupplement */,
+ { 0, 63, 0, 4, 0, UNI_CPMN } /* cpmn */,
+ { 6, 461, 5958, 2, 4, UNI_SINH } /* issinh */,
+ { 1, 4569, 5671, 8, 4, -UNI_XPOSIXUPPER } /* uppercase=no */,
+ { 0, 3391, 2084, 13, 2, UNI_NV__11 } /* numericvalue=11 */,
+ { 0, 461, 772, 2, 7, UNI_OLCK } /* isolchiki */,
+ { 384, 7267, 225, 16, 2, UNI_PE } /* generalcategory=pe */,
+ { 1, 3848, 2147, 14, 8, UNI_NV__3_SLASH_4 } /* numericvalue=7.500e-01 */,
+ { 9, 6165, 474, 3, 3, UNI_VAI } /* sc=vai */,
+ { 0, 1734, 0, 7, 0, UNI_XPOSIXSPACE } /* isspace */,
+ { 11, 5895, 1845, 5, 8, UNI_SUPERANDSUB } /* issuperandsub */,
+ { 1, 7892, 599, 16, 2, -UNI_UIDEO } /* unifiedideograph=n */,
+ { 0, 1823, 1331, 7, 9, UNI_SC__PERM } /* script=oldpermic */,
+ { 1, 7267, 4683, 16, 16, UNI_PF } /* generalcategory=finalpunctuation */,
+ { 0, 8343, 5323, 22, 15, UNI_INSC__MODIFYINGLETTER } /* indicsyllabiccategory=modifyingletter */,
+ { 4, 2536, 1755, 3, 8, UNI_JG__SWASHKAF } /* jg=swashkaf */,
+ { 0, 7084, 8174, 8, 29, UNI_ARABICMATH } /* inarabicmathematicalalphabeticsymbols */,
+ { 0, 2966, 4710, 3, 15, UNI_SYRIACSUP } /* insyriacsupplement */,
+ { 2, 4, 352, 2, 5, UNI_LOE } /* loe=yes */,
+ { 2, 7648, 1127, 18, 3, UNI_DT__FIN } /* decompositiontype=fin */,
+ { 0, 7591, 543, 3, 2, UNI_EBASE } /* lb=eb */,
+ { 1, 6165, 228, 3, 4, UNI_XSUX } /* sc=xsux */,
+ { 0, 1823, 1522, 7, 8, UNI_UGAR } /* script=ugaritic */,
+ { 0, 4360, 700, 10, 2, UNI_EMOD } /* linebreak=em */,
+ { 0, 4150, 0, 5, 0, UNI_P } /* punct */,
+ { 1, 302, 599, 5, 3, -UNI__PERL_PATWS } /* patws=no */,
+ { 2, 292, 1154, 3, 2, UNI_NV__43 } /* nv=43 */,
+ { 0, 1667, 7724, 4, 28, UNI_VSSUP } /* blk=variationselectorssupplement */,
+ { 14, 5937, 934, 21, 6, -UNI__PERL_NCHAR } /* noncharactercodepoint=false */,
+ { 1, 1667, 4809, 4, 18, UNI_ORNAMENTALDINGBATS } /* blk=ornamentaldingbats */,
+ { 103, 6165, 1484, 3, 8, UNI_SC__BUGI } /* sc=buginese */,
+ { 1, 7383, 3706, 10, 14, UNI_BC__NSM } /* bidiclass=nonspacingmark */,
+ { 12, 3892, 934, 16, 6, -UNI_STERM } /* sentenceterminal=false */,
+ { 0, 4424, 818, 17, 7, UNI_SHRD } /* scriptextensions=sharada */,
+ { 2, 1358, 0, 4, 0, UNI_PALM } /* palm */,
+ { 86, 6165, 3663, 3, 4, UNI_SC__DEVA } /* sc=deva */,
+ { 3, 2324, 6797, 6, 18, UNI_DEVANAGARIEXT } /* block=devanagariextended */,
+ { 0, 461, 1397, 2, 7, UNI_IDS } /* isidstart */,
+ { 14, 461, 6000, 2, 6, UNI_YIJING } /* isyijing */,
+ { 2, 4424, 3349, 17, 15, UNI_MERC } /* scriptextensions=meroiticcursive */,
+ { 1, 7889, 4680, 26, 4, UNI_CJKEXTF } /* cjkunifiedideographsextensionf */,
+ { 9, 4371, 584, 5, 3, UNI_XPOSIXSPACE } /* wspace=t */,
+ { 29, 1424, 2154, 7, 2, UNI_CCC__13 } /* ccc=ccc13 */,
+ { 619, 4424, 718, 17, 7, UNI_KNDA } /* scriptextensions=kannada */,
+ { 6, 2324, 5448, 6, 3, UNI_PUA } /* block=pua */,
+ { 10, 1823, 6185, 7, 10, UNI_SC__GLAG } /* script=glagolitic */,
+ { 3, 339, 461, 4, 2, UNI_CCC__IS } /* ccc=is */,
+ { 7, 2766, 3192, 3, 12, UNI_NL } /* gc=letternumber */,
+ { 610, 552, 2199, 4, 3, UNI_AGE__2 } /* age=2.0 */,
+ { 19, 4424, 537, 17, 6, UNI_TNSA } /* scriptextensions=tangsa */,
+ { 1, 6287, 1715, 14, 7, UNI_BC__LRI } /* bc=lefttorightisolate */,
+ { 3, 1994, 585, 7, 2, UNI_RADICAL } /* radical=t */,
+ { 4, 876, 353, 4, 2, UNI_IDEO } /* ideo=y */,
+ { 2, 2930, 0, 3, 0, UNI_jt_values_index } /* jt= */,
+ { 0, 578, 295, 5, 1, UNI_CCC__29 } /* ccc=29 */,
+ { 1, 461, 1603, 2, 6, UNI_L } /* isletter */,
+ { 7, 2732, 0, 10, 0, UNI_INARABIC } /* blk=arabic */,
+ { 2, 8343, 2460, 22, 8, UNI_INSC__TONEMARK } /* indicsyllabiccategory=tonemark */,
+ { 8, 1667, 2468, 4, 13, UNI_IPAEXT } /* blk=ipaextensions */,
+ { 9, 1424, 3404, 7, 2, UNI_CCC__23 } /* ccc=ccc23 */,
+ { 0, 1667, 6154, 4, 9, UNI_INCUNEIFORM } /* blk=cuneiform */,
+ { 0, 597, 3484, 3, 6, UNI_DT__SQR } /* dt=square */,
+ { 0, 2324, 120, 6, 3, UNI_INLAO } /* block=lao */,
+ { 105, 461, 4951, 2, 19, UNI_EGYP } /* isegyptianhieroglyphs */,
+ { 1, 597, 940, 3, 3, UNI_DT__COM } /* dt=com */,
+ { 0, 253, 585, 4, 2, UNI_CWCF } /* cwcf=t */,
+ { 6, 6165, 4651, 3, 4, UNI_SC__BOPO } /* sc=bopo */,
+ { 16, 3021, 290, 4, 2, UNI_IN__4 } /* in=v40 */,
+ { 0, 4502, 204, 11, 2, UNI_LATINEXTF } /* blk=latinextf */,
+ { 0, 8311, 4218, 32, 4, UNI_CJKEXTH } /* block=cjkunifiedideographsextensionh */,
+ { 0, 1391, 3325, 3, 12, UNI_LB__HL } /* wb=hebrewletter */,
+ { 3, 4519, 6193, 12, 12, UNI_CYRILLICSUP } /* block=cyrillicsupplement */,
+ { 0, 1667, 4926, 4, 8, UNI_TAMILSUP } /* blk=tamilsup */,
+ { 0, 292, 2289, 2, 3, UNI_NV__14 } /* nv=14 */,
+ { 0, 2324, 3663, 6, 13, UNI_DEVANAGARIEXT } /* block=devanagariext */,
+ { 3, 248, 0, 2, 0, UNI_CN } /* cn */,
+ { 1, 292, 3403, 2, 3, UNI_NV__23 } /* nv=23 */,
+ { 3, 6165, 232, 3, 4, UNI_SC__YI } /* sc=yiii */,
+ { 2, 1894, 934, 12, 6, -UNI_BIDIM } /* bidimirrored=false */,
+ { 10, 2348, 352, 12, 2, UNI_ci_values_index } /* caseignorable= */,
+ { 1, 7591, 461, 3, 2, UNI_LB__IS } /* lb=is */,
+ { 58, 4424, 2068, 17, 4, UNI_MEND } /* scriptextensions=mend */,
+ { 13, 4584, 585, 18, 5, UNI_IDST } /* idstrinaryoperator=true */,
+ { 321, 3014, 569, 11, 2, UNI_IN__5_DOT_2 } /* presentin=v52 */,
+ { 3, 3021, 1317, 4, 2, UNI_IN__3_DOT_2 } /* in=v32 */,
+ { 106, 1272, 3539, 3, 6, UNI_CPRT } /* iscypriot */,
+ { 0, 1262, 0, 4, 0, UNI_SOYO } /* soyo */,
+ { 272, 2752, 599, 5, 2, -UNI_EMOJI } /* emoji=n */,
+ { 0, 1667, 1234, 4, 7, UNI_INMULTANI } /* blk=multani */,
+ { 0, 461, 470, 2, 4, UNI_TNSA } /* istnsa */,
+ { 371, 30, 3953, 1, 18, UNI_AGHB } /* iscaucasianalbanian */,
+ { 8, 7274, 4075, 9, 14, UNI_SC } /* category=currencysymbol */,
+ { 0, 4852, 352, 9, 3, UNI_XPOSIXSPACE } /* whitespace=y */,
+ { 4, 597, 3611, 3, 6, UNI_DT__COM } /* dt=compat */,
+ { 84, 4191, 352, 8, 3, UNI_XPOSIXLOWER } /* lowercase=y */,
+ { 2, 1667, 8660, 4, 34, UNI_UCAS } /* blk=unifiedcanadianaboriginalsyllabics */,
+ { 0, 6427, 714, 13, 4, UNI_JG__ZAIN } /* joininggroup=zain */,
+ { 135, 4424, 5067, 16, 11, UNI_MANI } /* scriptextensions=manichaean */,
+ { 0, 2324, 4002, 6, 4, UNI_INMODI } /* block=modi */,
+ { 1, 1667, 571, 4, 7, UNI_INAVESTAN } /* blk=avestan */,
+ { 1, 1102, 527, 4, 6, UNI_RJNG } /* scx=rejang */,
+ { 224, 3677, 4698, 6, 2, UNI_LATIN1 } /* islatin1 */,
+ { 3, 1102, 140, 4, 4, UNI_NARB } /* scx=narb */,
+ { 0, 1667, 4651, 4, 16, UNI_BOPOMOFOEXT } /* blk=bopomofoextended */,
+ { 2, 309, 7724, 2, 28, UNI_VSSUP } /* invariationselectorssupplement */,
+ { 0, 1592, 0, 10, 0, UNI_SAUR } /* saurashtra */,
+ { 1, 833, 274, 4, 1, UNI_term_values_index } /* term= */,
+ { 0, 2324, 5778, 6, 21, UNI_ININSCRIPTIONALPARTHIAN } /* block=inscriptionalparthian */,
+ { 0, 1065, 290, 5, 1, UNI_NV__1_SLASH_4 } /* nv=1/4 */,
+ { 1, 2536, 225, 3, 2, UNI_JG__PE } /* jg=pe */,
+ { 3, 609, 1670, 2, 3, UNI_LB__CJ } /* lb=cj */,
+ { 5, 622, 353, 7, 2, UNI_EXTPICT } /* extpict=y */,
+ { 46, 1102, 1234, 4, 4, UNI_MULT } /* scx=mult */,
+ { 3, 461, 23, 2, 4, UNI_AHOM } /* isahom */,
+ { 6, 2287, 557, 3, 3, UNI_IN__6 } /* in=6.0 */,
+ { 0, 875, 5980, 4, 2, UNI_uideo_values_index } /* uideo= */,
+ { 0, 1592, 0, 4, 0, UNI_SAUR } /* saur */,
+ { 132, 3817, 2131, 14, 8, UNI_NV__1_SLASH_6 } /* numericvalue=1.667e-01 */,
+ { 0, 6165, 5031, 3, 4, UNI_SC__HAN } /* sc=hani */,
+ { 1, 6165, 3228, 3, 15, UNI_ARMI } /* sc=imperialaramaic */,
+ { 2, 30, 908, 1, 9, UNI_INBALINESE } /* inbalinese */,
+ { 10, 1102, 31, 4, 4, UNI_AVST } /* scx=avst */,
+ { 1, 7011, 7408, 18, 11, UNI_CCC__R } /* canonicalcombiningclass=right */,
+ { 103, 2718, 4276, 3, 3, UNI_BC__NSM } /* bc=nsm */,
+ { 0, 2766, 6514, 3, 10, UNI_CO } /* gc=privateuse */,
+ { 8, 1975, 0, 10, 0, UNI_SOGO } /* oldsogdian */,
+ { 71, 19, 0, 4, 0, UNI_POSIXXDIGIT } /* ahex */,
+ { 0, 7011, 2289, 23, 3, UNI_CCC__14 } /* canonicalcombiningclass=14 */,
+ { 0, 309, 1914, 2, 4, UNI_UCAS } /* inucas */,
+ { 0, 1823, 4060, 7, 4, UNI_BRAI } /* script=brai */,
+ { 2, 1823, 678, 7, 5, UNI_RUNR } /* script=runic */,
+ { 13, 7752, 3740, 23, 3, UNI_JG__MANICHAEANMEM } /* joininggroup=manichaeanmem */,
+ { 7, 6427, 2569, 13, 10, UNI_JG__REVERSEDPE } /* joininggroup=reversedpe */,
+ { 0, 7591, 7804, 3, 11, UNI_LB__ID } /* lb=ideographic */,
+ { 2, 2766, 0, 3, 2, UNI_CASEDLETTER } /* gc=l& */,
+ { 0, 1823, 224, 7, 4, UNI_XPEO } /* script=xpeo */,
+ { 1, 7267, 6514, 16, 10, UNI_CO } /* generalcategory=privateuse */,
+ { 0, 1942, 352, 11, 3, UNI_GRBASE } /* graphemebase=y */,
+ { 0, 895, 1313, 5, 2, UNI_AGE__6 } /* age=v60 */,
+ { 0, 5448, 0, 3, 0, UNI_PUA } /* pua */,
+ { 1, 6165, 3349, 3, 4, UNI_MERO } /* sc=mero */,
+ { 25, 461, 1455, 2, 3, UNI_DEP } /* isdep */,
+ { 0, 261, 599, 5, 2, -UNI_CWKCF } /* cwkcf=n */,
+ { 2, 4191, 0, 9, 0, UNI_XPOSIXLOWER } /* lowercase */,
+ { 3, 309, 1255, 2, 7, UNI_INSIDDHAM } /* insiddham */,
+ { 1, 461, 6816, 2, 25, UNI_CWKCF } /* ischangeswhennfkccasefolded */,
+ { 325, 1894, 353, 12, 2, UNI_BIDIM } /* bidimirrored=y */,
+ { 418, 461, 2621, 2, 9, UNI__PERL_SURROGATE } /* issurrogate */,
+ { 44, 30, 4145, 1, 5, UNI_DASH } /* isdash */,
+ { 0, 8343, 4119, 22, 12, UNI_INSC__NUMBERJOINER } /* indicsyllabiccategory=numberjoiner */,
+ { 3, 2434, 5848, 7, 9, UNI_MYANMAREXTA } /* myanmarextendeda */,
+ { 0, 2766, 466, 3, 2, UNI_SO } /* gc=so */,
+ { 1, 2324, 8153, 9, 21, UNI_CJKSYMBOLS } /* block=cjksymbolsandpunctuation */,
+ { 1, 2220, 2131, 4, 8, UNI_NV__2_SLASH_3 } /* nv=6.667e-01 */,
+ { 0, 461, 1864, 2, 5, UNI_EBASE } /* isebase */,
+ { 0, 597, 4602, 3, 4, UNI_DT__INIT } /* dt=init */,
+ { 0, 8601, 7304, 7, 24, UNI_SYMBOLSANDPICTOGRAPHSEXTA } /* block=symbolsandpictographsexta */,
+ { 15, 8071, 4158, 30, 4, UNI_CJKEXTD } /* blk=cjkunifiedideographsextensiond */,
+ { 11, 1424, 559, 8, 2, UNI_CCC__107 } /* ccc=ccc107 */,
+ { 0, 3791, 599, 4, 2, -UNI_MATH } /* math=n */,
+ { 0, 1894, 934, 12, 2, -UNI_BIDIM } /* bidimirrored=f */,
+ { 17, 2324, 4926, 6, 5, UNI_INTAMIL } /* block=tamil */,
+ { 0, 3391, 6270, 13, 9, UNI_NV__3_SLASH_80 } /* numericvalue=3.750e-02 */,
+ { 66, 461, 99, 2, 2, UNI_UPPERCASELETTER } /* islu */,
+ { 0, 1272, 1922, 3, 11, UNI_CHESSSYMBOLS } /* ischesssymbols */,
+ { 0, 3848, 1314, 14, 2, UNI_NV__700 } /* numericvalue=700 */,
+ { 0, 2718, 83, 3, 2, UNI_BC__ON } /* bc=on */,
+ { 4, 2324, 6642, 6, 6, UNI_INBRAHMI } /* block=brahmi */,
+ { 68, 309, 6000, 2, 6, UNI_YIJING } /* inyijing */,
+ { 0, 2930, 7, 3, 1, UNI_JT__R } /* jt=r */,
+ { 192, 309, 2234, 2, 2, UNI_IN__8 } /* in=8 */,
+ { 68, 4584, 585, 18, 2, UNI_IDST } /* idstrinaryoperator=t */,
+ { 2, 2324, 3955, 7, 16, UNI_INCAUCASIANALBANIAN } /* block=caucasianalbanian */,
+ { 68, 2523, 1082, 8, 4, UNI_XPOSIXWORD } /* isxposixword */,
+ { 7, 7669, 644, 18, 2, UNI_GCB__L } /* hangulsyllabletype=l */,
+ { 1029, 7011, 6328, 24, 4, UNI_WB__EB } /* canonicalcombiningclass=atbl */,
+ { 0, 4569, 274, 5, 1, UNI_upper_values_index } /* upper= */,
+ { 220, 309, 1349, 2, 9, UNI_INOLDUYGHUR } /* inolduyghur */,
+ { 6, 2324, 7110, 6, 24, UNI_DIACRITICALSFORSYMBOLS } /* block=combiningmarksforsymbols */,
+ { 546, 1894, 934, 5, 6, -UNI_BIDIM } /* bidim=false */,
+ { 0, 1823, 164, 7, 4, UNI_PHNX } /* script=phnx */,
+ { 16, 6165, 1572, 3, 10, UNI_XPEO } /* sc=oldpersian */,
+ { 3, 1102, 1954, 4, 12, UNI_GONG } /* scx=gunjalagondi */,
+ { 144, 7084, 4531, 6, 6, UNI_ARABICEXTC } /* inarabicextc */,
+ { 54, 7214, 2165, 25, 2, UNI_WB__EB } /* canonicalcombiningclass=133 */,
+ { 4, 1455, 599, 10, 2, -UNI_DEP } /* deprecated=n */,
+ { 480, 6642, 0, 6, 0, UNI_BRAH } /* brahmi */,
+ { 4, 1102, 470, 4, 4, UNI_TNSA } /* scx=tnsa */,
+ { 21, 4424, 240, 17, 4, UNI_ZYYY } /* scriptextensions=zyyy */,
+ { 72, 6866, 934, 24, 2, -UNI_COMPEX } /* fullcompositionexclusion=f */,
+ { 0, 6165, 140, 3, 4, UNI_NARB } /* sc=narb */,
+ { 0, 7724, 599, 17, 2, -UNI_VS } /* variationselector=n */,
+ { 10, 1240, 4810, 3, 17, UNI_ORNAMENTALDINGBATS } /* inornamentaldingbats */,
+ { 0, 266, 585, 3, 5, UNI_CWT } /* cwt=true */,
+ { 17, 4391, 395, 15, 2, UNI_NV__3_SLASH_16 } /* numericvalue=3/16 */,
+ { 92, 5553, 599, 21, 2, -UNI_CWCM } /* changeswhencasemapped=n */,
+ { 432, 2002, 0, 4, 0, UNI_PO } /* ispo */,
+ { 18, 2060, 0, 5, 0, UNI_XPOSIXALPHA } /* alpha */,
+ { 16, 1823, 1509, 7, 8, UNI_SC__JAVA } /* script=javanese */,
+ { 50, 1102, 1978, 4, 7, UNI_SOGD } /* scx=sogdian */,
+ { 40, 5658, 6841, 15, 16, UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE } /* identifiertype=defaultignorable */,
+ { 2, 832, 0, 5, 0, UNI_STERM } /* sterm */,
+ { 6, 4845, 0, 17, 0, UNI__PERL_PATWS } /* patternwhitespace */,
+ { 0, 2432, 8374, 3, 33, UNI_MISCPICTOGRAPHS } /* inmiscellaneoussymbolsandpictographs */,
+ { 1, 1823, 901, 7, 8, UNI_ARMN } /* script=armenian */,
+ { 1, 4060, 0, 4, 0, UNI_BRAI } /* brai */,
+ { 0, 2018, 341, 4, 2, UNI_joinc_values_index } /* joinc= */,
+ { 569, 3649, 0, 14, 0, UNI_PHONETICEXTSUP } /* phoneticextsup */,
+ { 1, 6165, 975, 3, 8, UNI_SC__GURU } /* sc=gurmukhi */,
+ { 4, 6165, 112, 3, 4, UNI_KITS } /* sc=kits */,
+ { 67, 3878, 761, 14, 2, UNI_NV__9_SLASH_2 } /* numericvalue=9/2 */,
+ { 0, 2324, 2811, 6, 5, UNI_INKHMER } /* block=khmer */,
+ { 0, 4424, 5208, 16, 8, UNI_MYMR } /* scriptextensions=myanmar */,
+ { 706, 5616, 599, 21, 3, -UNI_CWU } /* changeswhenuppercased=no */,
+ { 0, 4424, 1027, 17, 6, UNI_YEZI } /* scriptextensions=yezidi */,
+ { 2, 7752, 4247, 23, 4, UNI_JG__MANICHAEANKAPH } /* joininggroup=manichaeankaph */,
+ { 0, 6185, 0, 13, 0, UNI_GLAGOLITICSUP } /* glagoliticsup */,
+ { 6, 1667, 6642, 4, 6, UNI_INBRAHMI } /* blk=brahmi */,
+ { 0, 461, 3692, 2, 4, UNI_LISU } /* islisu */,
+ { 524, 2718, 355, 3, 2, UNI_BC__ES } /* bc=es */,
+ { 0, 271, 1887, 4, 7, UNI_GCB__CN } /* gcb=control */,
+ { 11, 578, 391, 5, 2, UNI_CCC__DA } /* ccc=234 */,
+ { 1, 4424, 1509, 17, 8, UNI_JAVA } /* scriptextensions=javanese */,
+ { 258, 2930, 3313, 3, 12, UNI_JT__R } /* jt=rightjoining */,
+ { 0, 1102, 917, 4, 8, UNI_BASS } /* scx=bassavah */,
+ { 176, 2018, 12, 12, 1, UNI_JT__D } /* joiningtype=d */,
+ { 2, 1102, 78, 4, 4, UNI_DSRT } /* scx=dsrt */,
+ { 17, 423, 4987, 3, 16, UNI_ALCHEMICAL } /* inalchemicalsymbols */,
+ { 1168, 7274, 4150, 9, 5, UNI_P } /* category=punct */,
+ { 5, 2536, 4243, 3, 4, UNI_JG__HETH } /* jg=heth */,
+ { 0, 1823, 814, 7, 4, UNI_SC__QAAI } /* script=zinh */,
+ { 0, 30, 4619, 1, 17, UNI_LINEARBSYLLABARY } /* inlinearbsyllabary */,
+ { 6, 2324, 983, 6, 8, UNI_INHIRAGANA } /* block=hiragana */,
+ { 1, 1051, 0, 8, 0, UNI_MAHJ } /* mahajani */,
+ { 1592, 2302, 934, 3, 6, -UNI_IDC } /* idc=false */,
+ { 199, 309, 1285, 2, 9, UNI_INKHUDAWADI } /* inkhudawadi */,
+ { 0, 1243, 3726, 5, 10, UNI_INMALAYALAM } /* block=malayalam */,
+ { 322, 1667, 3663, 4, 10, UNI_INDEVANAGARI } /* blk=devanagari */,
+ { 0, 6090, 3788, 7, 15, UNI_MISCMATHSYMBOLSA } /* block=miscmathsymbolsa */,
+ { 0, 2324, 7449, 6, 28, UNI_PHONETICEXTSUP } /* block=phoneticextensionssupplement */,
+ { 29, 2391, 3640, 10, 9, UNI_CYRILLICEXTD } /* incyrillicextendedd */,
+ { 8, 461, 6797, 2, 19, UNI_DEVANAGARIEXTA } /* isdevanagariextendeda */,
+ { 0, 1823, 746, 7, 7, UNI_MARC } /* script=marchen */,
+ { 296, 298, 934, 2, 6, -UNI_RI } /* ri=false */,
+ { 0, 2665, 934, 13, 6, -UNI_PATSYN } /* patternsyntax=false */,
+ { 3, 3013, 599, 5, 3, -UNI_EPRES } /* epres=no */,
+ { 0, 8601, 5149, 18, 7, UNI_SUPARROWSA } /* block=supplementalarrowsa */,
+ { 0, 510, 2107, 4, 8, UNI_NV__7_SLASH_2 } /* nv=3.500e+00 */,
+ { 36, 18, 918, 1, 3, UNI_BASS } /* bass */,
+ { 0, 6165, 951, 3, 8, UNI_SC__DUPL } /* sc=duployan */,
+ { 6, 4360, 281, 10, 2, UNI_LB__XX } /* linebreak=xx */,
+ { 22, 1823, 200, 7, 4, UNI_TAVT } /* script=tavt */,
+ { 0, 1221, 1037, 6, 4, UNI_KANAEXTB } /* inkanaextb */,
+ { 0, 461, 224, 2, 4, UNI_XPEO } /* isxpeo */,
+ { 0, 326, 0, 2, 0, UNI_PF } /* pf */,
+ { 0, 2324, 1582, 6, 10, UNI_INPHOENICIAN } /* block=phoenician */,
+ { 0, 30, 115, 1, 5, UNI_KNDA } /* isknda */,
+ { 260, 2842, 7915, 3, 29, UNI_ENCLOSEDALPHANUMSUP } /* isenclosedalphanumericsupplement */,
+ { 0, 8601, 7707, 17, 17, UNI_SUPPUAB } /* block=supplementaryprivateuseareab */,
+ { 0, 7752, 5425, 22, 8, UNI_JG__MANICHAEANDHAMEDH } /* joininggroup=manichaeandhamedh */,
+ { 276, 1272, 3539, 3, 15, UNI_CYPRIOTSYLLABARY } /* iscypriotsyllabary */,
+ { 0, 7274, 644, 8, 2, UNI_L } /* category=l */,
+ { 0, 6165, 1325, 3, 4, UNI_ITAL } /* sc=ital */,
+ { 0, 3391, 2138, 13, 9, UNI_NV__3_SLASH_16 } /* numericvalue=1.875e-01 */,
+ { 0, 339, 344, 4, 2, UNI_CCC__21 } /* ccc=21 */,
+ { 771, 1397, 585, 7, 5, UNI_IDS } /* idstart=true */,
+ { 1, 18, 6901, 1, 22, UNI_BYZANTINEMUSIC } /* byzantinemusicalsymbols */,
+ { 1, 7267, 625, 16, 2, UNI_PI } /* generalcategory=pi */,
+ { 16, 474, 0, 4, 0, UNI_VAI } /* vaii */,
+ { 565, 6090, 3364, 7, 14, UNI_MISCPICTOGRAPHS } /* block=miscpictographs */,
+ { 5, 2842, 7915, 3, 20, UNI_ENCLOSEDALPHANUM } /* isenclosedalphanumerics */,
+ { 868, 4391, 1314, 14, 2, UNI_NV__300 } /* numericvalue=300 */,
+ { 0, 1011, 274, 2, 1, UNI_ci_values_index } /* ci= */,
+ { 0, 2966, 1110, 3, 7, UNI_SPECIALS } /* inspecials */,
+ { 1, 1894, 353, 5, 4, UNI_BIDIM } /* bidim=yes */,
+ { 1, 1424, 1155, 7, 2, UNI_CCC__35 } /* ccc=ccc35 */,
+ { 1, 6165, 458, 3, 4, UNI_SC__QAAI } /* sc=qaai */,
+ { 0, 7011, 6328, 24, 3, UNI_CCC__202 } /* canonicalcombiningclass=atb */,
+ { 1, 823, 353, 4, 4, UNI_DASH } /* dash=yes */,
+ { 0, 4424, 786, 17, 4, UNI_HMNP } /* scriptextensions=hmnp */,
+ { 0, 20, 599, 3, 3, -UNI_XPOSIXXDIGIT } /* hex=no */,
+ { 136, 461, 4862, 2, 18, UNI_RUMI } /* isruminumeralsymbols */,
+ { 7, 298, 353, 2, 2, UNI_RI } /* ri=y */,
+ { 1, 309, 2244, 2, 12, UNI_INOLDHUNGARIAN } /* inoldhungarian */,
+ { 0, 461, 212, 2, 4, UNI_TIBT } /* istibt */,
+ { 1, 4569, 933, 8, 3, -UNI_XPOSIXUPPER } /* uppercase=f */,
+ { 9, 552, 566, 4, 3, UNI_AGE__9 } /* age=9.0 */,
+ { 0, 434, 0, 4, 0, UNI_OGAM } /* ogam */,
+ { 2, 7648, 3611, 18, 6, UNI_DT__COM } /* decompositiontype=compat */,
+ { 770, 4424, 3505, 16, 9, UNI_ETHI } /* scriptextensions=ethiopic */,
+ { 902, 3391, 2101, 13, 2, UNI_NV__29 } /* numericvalue=29 */,
+ { 260, 7892, 353, 16, 4, UNI_UIDEO } /* unifiedideograph=yes */,
+ { 80, 1102, 1248, 4, 4, UNI_PHAG } /* scx=phag */,
+ { 0, 309, 648, 2, 5, UNI_INADLAM } /* inadlam */,
+ { 0, 1501, 0, 8, 0, UNI_JAMOEXTA } /* jamoexta */,
+ { 1, 1102, 212, 4, 4, UNI_TIBT } /* scx=tibt */,
+ { 86, 461, 983, 2, 4, UNI_HIRA } /* ishira */,
+ { 3, 7274, 225, 9, 2, UNI_PE } /* category=pe */,
+ { 189, 5156, 1613, 10, 2, UNI_WB__FO } /* wordbreak=fo */,
+ { 5, 461, 35, 2, 4, UNI_BATK } /* isbatk */,
+ { 1, 1272, 8474, 5, 33, UNI_CJKCOMPATIDEOGRAPHSSUP } /* iscjkcompatibilityideographssupplement */,
+ { 0, 3130, 3448, 9, 6, UNI_GEORGIANEXT } /* blk=georgianext */,
+ { 104, 5156, 4407, 10, 17, UNI_RI } /* wordbreak=regionalindicator */,
+ { 523, 1059, 353, 6, 2, UNI_DT__NONE } /* nfkdqc=y */,
+ { 0, 1102, 786, 4, 4, UNI_HMNP } /* scx=hmnp */,
+ { 273, 1823, 208, 7, 4, UNI_SC__TGLG } /* script=tglg */,
+ { 0, 2, 353, 3, 4, UNI_CWL } /* cwl=yes */,
+ { 19, 7648, 693, 18, 3, UNI_DT__ISO } /* decompositiontype=iso */,
+ { 0, 1667, 4862, 4, 18, UNI_RUMI } /* blk=ruminumeralsymbols */,
+ { 0, 339, 8101, 4, 10, UNI_CCC__BR } /* ccc=belowright */,
+ { 26, 7591, 4288, 3, 14, UNI_LB__CR } /* lb=carriagereturn */,
+ { 0, 4424, 1562, 17, 4, UNI_NAGM } /* scriptextensions=nagm */,
+ { 848, 2220, 2657, 4, 8, UNI_NV__3_SLASH_5 } /* nv=6.000e-01 */,
+ { 59, 2, 2931, 2, 3, UNI_CWT } /* cwt=t */,
+ { 0, 1075, 1312, 4, 5, UNI_NV__216000 } /* nv=216000 */,
+ { 0, 3817, 2657, 14, 8, UNI_NV__1_SLASH_10 } /* numericvalue=1.000e-01 */,
+ { 265, 4191, 352, 8, 2, UNI_lower_values_index } /* lowercase= */,
+ { 0, 2180, 520, 4, 1, UNI_NV__47 } /* nv=47 */,
+ { 2, 4896, 0, 5, 0, UNI_BAMU } /* bamum */,
+ { 1, 876, 599, 4, 2, -UNI_IDEO } /* ideo=n */,
+ { 2, 1102, 228, 4, 4, UNI_XSUX } /* scx=xsux */,
+ { 1, 3502, 7241, 5, 10, UNI_ENCLOSEDCJK } /* blk=enclosedcjk */,
+ { 290, 7889, 7380, 26, 4, UNI_CJKEXTB } /* cjkunifiedideographsextensionb */,
+ { 16, 199, 0, 2, 0, UNI_TITLE } /* lt */,
+ { 0, 6618, 3243, 5, 10, UNI_INPC__OVERSTRUCK } /* inpc=overstruck */,
+ { 20, 8278, 3367, 4, 11, UNI_MISCPICTOGRAPHS } /* miscpictographs */,
+ { 12, 461, 5857, 2, 12, UNI_MONGOLIANSUP } /* ismongoliansup */,
+ { 0, 3817, 1312, 15, 3, UNI_NV__1_SLASH_160 } /* numericvalue=1/160 */,
+ { 2, 2324, 1922, 7, 11, UNI_CHESSSYMBOLS } /* block=chesssymbols */,
+ { 3, 8343, 5746, 22, 16, UNI_INSC__INVISIBLESTACKER } /* indicsyllabiccategory=invisiblestacker */,
+ { 2, 1883, 6621, 4, 3, UNI_BIDIC } /* bidic=t */,
+ { 23, 4191, 584, 8, 6, UNI_XPOSIXLOWER } /* lowercase=true */,
+ { 0, 309, 1484, 2, 8, UNI_INBUGINESE } /* inbuginese */,
+ { 1, 6062, 7241, 7, 26, UNI_ENCLOSEDCJK } /* block=enclosedcjklettersandmonths */,
+ { 0, 7591, 68, 3, 2, UNI_LB__PR } /* lb=pr */,
+ { 80, 461, 3204, 2, 14, UNI_GREXT } /* isgraphemeextend */,
+ { 128, 309, 1872, 2, 11, UNI_YISYLLABLES } /* inyisyllables */,
+ { 128, 1823, 868, 7, 4, UNI_SC__TIRH } /* script=tirh */,
+ { 1, 1102, 6642, 4, 4, UNI_BRAH } /* scx=brah */,
+ { 0, 2483, 353, 5, 2, UNI_CASED } /* cased=y */,
+ { 0, 8246, 6622, 23, 13, UNI_INPC__TOPANDBOTTOM } /* indicpositionalcategory=topandbottom */,
+ { 0, 339, 2084, 4, 2, UNI_CCC__11 } /* ccc=11 */,
+ { 19, 7944, 4218, 28, 4, UNI_CJKEXTH } /* iscjkunifiedideographsextensionh */,
+ { 0, 2432, 2631, 3, 12, UNI_MAYANNUMERALS } /* inmayannumerals */,
+ { 1, 292, 768, 3, 2, UNI_NV__27 } /* nv=27 */,
+ { 0, 7591, 2004, 3, 2, UNI_LB__PO } /* lb=po */,
+ { 0, 1667, 6900, 4, 23, UNI_BYZANTINEMUSIC } /* blk=byzantinemusicalsymbols */,
+ { 3, 8311, 5417, 26, 10, UNI_CJKEXTD } /* block=cjkunifiedideographsextensiond */,
+ { 100, 71, 353, 3, 4, UNI_CWU } /* cwu=yes */,
+ { 0, 461, 615, 2, 4, UNI_ELYM } /* iselym */,
+ { 27, 2842, 1505, 10, 4, UNI_ETHIOPICEXTA } /* isethiopicexta */,
+ { 16, 2324, 1358, 6, 9, UNI_PALM } /* block=palmyrene */,
+ { 1, 2324, 1322, 6, 9, UNI_INOLDITALIC } /* block=olditalic */,
+ { 2, 339, 346, 4, 2, UNI_CCC__84 } /* ccc=84 */,
+ { 1, 461, 493, 2, 4, UNI_KHOJ } /* iskhoj */,
+ { 1, 309, 294, 2, 2, UNI_IN__9 } /* in=9 */,
+ { 0, 426, 0, 3, 0, UNI_MRO } /* mro */,
+ { 146, 552, 2154, 4, 2, UNI_AGE__13 } /* age=13 */,
+ { 6, 461, 442, 2, 4, UNI_ORKH } /* isorkh */,
+ { 3, 7267, 13, 16, 2, UNI_LM } /* generalcategory=lm */,
+ { 1, 4852, 5671, 9, 3, -UNI_XPOSIXSPACE } /* whitespace=n */,
+ { 1234, 3633, 4698, 6, 2, UNI_LATIN1 } /* inlatin1 */,
+ { 134, 302, 0, 5, 0, UNI__PERL_PATWS } /* patws */,
+ { 20, 5574, 353, 21, 2, UNI_CWL } /* changeswhenlowercased=y */,
+ { 0, 2523, 3100, 7, 6, UNI_XPOSIXDIGIT } /* isxposixdigit */,
+ { 11, 5156, 6, 10, 2, UNI_LB__CR } /* wordbreak=cr */,
+ { 0, 4424, 658, 17, 4, UNI_DOGR } /* scriptextensions=dogr */,
+ { 7, 2503, 934, 5, 6, -UNI_JOINC } /* joinc=false */,
+ { 3, 4, 5671, 2, 3, -UNI_LOE } /* loe=n */,
+ { 0, 2930, 2897, 3, 11, UNI_JT__D } /* jt=dualjoining */,
+ { 1, 916, 352, 4, 3, UNI_EBASE } /* ebase=y */,
+ { 0, 377, 585, 3, 5, UNI_EXT } /* ext=true */,
+ { 0, 1102, 1349, 4, 9, UNI_OUGR } /* scx=olduyghur */,
+ { 18, 1102, 4651, 4, 4, UNI_BOPO } /* scx=bopo */,
+ { 5, 3021, 1318, 4, 2, UNI_IN__2 } /* in=v20 */,
+ { 172, 6816, 599, 25, 3, -UNI_CWKCF } /* changeswhennfkccasefolded=no */,
+ { 1, 779, 0, 7, 0, UNI_OSMA } /* osmanya */,
+ { 0, 693, 3196, 5, 8, UNI_NO } /* isothernumber */,
+ { 0, 1102, 333, 4, 6, UNI_CARI } /* scx=carian */,
+ { 103, 2966, 1609, 3, 9, UNI_SMALLFORMS } /* insmallforms */,
+ { 3, 309, 3908, 2, 6, UNI_INTANGUT } /* intangut */,
+ { 1, 1102, 6185, 4, 4, UNI_GLAG } /* scx=glag */,
+ { 0, 3014, 1318, 11, 2, UNI_IN__2 } /* presentin=v20 */,
+ { 110, 1065, 3846, 4, 2, UNI_NV__1_SLASH_8 } /* nv=1/8 */,
+ { 120, 1823, 997, 7, 6, UNI_SC__KTHI } /* script=kaithi */,
+ { 77, 461, 6495, 2, 5, UNI_MUSIC } /* ismusic */,
+ { 0, 1102, 5391, 4, 8, UNI_CHER } /* scx=cherokee */,
+ { 4, 1102, 4740, 4, 4, UNI_TALE } /* scx=tale */,
+ { 377, 8343, 7523, 31, 15, UNI_INSC__CONSONANTSUCCEEDINGREPHA } /* indicsyllabiccategory=consonantsucceedingrepha */,
+ { 820, 7383, 4487, 10, 15, UNI_BC__CS } /* bidiclass=commonseparator */,
+ { 0, 6427, 636, 13, 3, UNI_JG__NUN } /* joininggroup=nun */,
+ { 0, 7495, 288, 28, 2, UNI_CCC__130 } /* canonicalcombiningclass=ccc130 */,
+ { 4, 2302, 5671, 9, 3, -UNI_IDC } /* idcontinue=n */,
+ { 0, 4424, 1819, 17, 4, UNI_MONG } /* scriptextensions=mong */,
+ { 0, 461, 4819, 2, 8, UNI_DINGBATS } /* isdingbats */,
+ { 0, 5065, 5053, 13, 6, UNI_JG__MANICHAEANLAMEDH } /* jg=manichaeanlamedh */,
+ { 0, 4424, 5031, 17, 14, UNI_ROHG } /* scriptextensions=hanifirohingya */,
+ { 0, 1823, 6154, 7, 9, UNI_XSUX } /* script=cuneiform */,
+ { 0, 30, 7563, 1, 18, UNI_ANCIENTGREEKMUSIC } /* isancientgreekmusic */,
+ { 16, 1102, 5031, 4, 4, UNI_HAN } /* scx=hani */,
+ { 7, 30, 5711, 1, 20, UNI_MERO } /* ismeroitichieroglyphs */,
+ { 0, 4, 584, 2, 6, UNI_LOE } /* loe=true */,
+ { 3, 1454, 353, 2, 4, UNI_SD } /* sd=yes */,
+ { 84, 6165, 2441, 3, 11, UNI_SC__NAND } /* sc=nandinagari */,
+ { 29, 1790, 0, 7, 0, UNI_NFCQC__M } /* nfcqc=m */,
+ { 3, 5749, 5354, 3, 19, UNI_PHLI } /* isinscriptionalpahlavi */,
+ { 3, 5895, 0, 21, 0, UNI_SUPARROWSC } /* issupplementalarrowsc */,
+ { 1, 1102, 2247, 4, 4, UNI_HUNG } /* scx=hung */,
+ { 1036, 6841, 585, 25, 5, UNI_DI } /* defaultignorablecodepoint=true */,
+ { 213, 7011, 890, 23, 3, UNI_CCC__10 } /* canonicalcombiningclass=10 */,
+ { 6, 3892, 353, 16, 4, UNI_STERM } /* sentenceterminal=yes */,
+ { 2, 16, 6166, 1, 4, UNI_CO } /* gc=co */,
+ { 2, 1367, 0, 9, 0, UNI_PAUC } /* paucinhau */,
+ { 39, 1823, 493, 7, 4, UNI_SC__KHOJ } /* script=khoj */,
+ { 0, 2324, 1992, 6, 10, UNI_YIRADICALS } /* block=yiradicals */,
+ { 1, 1834, 0, 4, 0, UNI_SORA } /* sora */,
+ { 1, 1102, 5857, 4, 9, UNI_MONG } /* scx=mongolian */,
+ { 0, 8, 934, 3, 6, -UNI_PCM } /* pcm=false */,
+ { 5, 461, 4146, 2, 15, UNI_PD } /* isdashpunctuation */,
+ { 11, 876, 599, 4, 3, -UNI_IDEO } /* ideo=no */,
+ { 0, 6165, 1094, 3, 4, UNI_MERC } /* sc=merc */,
+ { 50, 2287, 547, 5, 2, UNI_IN__14 } /* in=14.0 */,
+ { 0, 1509, 0, 8, 0, UNI_JAVA } /* javanese */,
+ { 2, 4424, 3349, 17, 4, UNI_MERO } /* scriptextensions=mero */,
+ { 1, 1823, 116, 7, 4, UNI_SC__KNDA } /* script=knda */,
+ { 0, 1200, 6400, 3, 18, UNI_CJKRADICALSSUP } /* cjkradicalssupplement */,
+ { 5, 1198, 204, 7, 2, UNI_CJKEXTF } /* incjkextf */,
+ { 35, 833, 934, 4, 2, -UNI_TERM } /* term=f */,
+ { 16, 2401, 2374, 10, 8, UNI_ETHIOPICEXT } /* inethiopicextended */,
+ { 385, 1424, 1316, 8, 2, UNI_CCC__103 } /* ccc=ccc103 */,
+ { 18, 1243, 8605, 2, 35, UNI_SUPMATHOPERATORS } /* blk=supplementalmathematicaloperators */,
+ { 0, 2842, 7241, 3, 10, UNI_ENCLOSEDCJK } /* isenclosedcjk */,
+ { 0, 2766, 54, 3, 2, UNI_SC } /* gc=sc */,
+ { 651, 5168, 302, 6, 5, UNI__PERL_PATWS } /* _perl_patws */,
+ { 9, 753, 353, 6, 4, UNI_NFKCQC__Y } /* nfkcqc=yes */,
+ { 1057, 4424, 1385, 17, 6, UNI_THAA } /* scriptextensions=thaana */,
+ { 0, 1779, 0, 11, 0, UNI_MEDF } /* medefaidrin */,
+ { 103, 5895, 837, 6, 3, UNI_SUPPUAA } /* issuppuaa */,
+ { 20, 1667, 2441, 4, 11, UNI_INNANDINAGARI } /* blk=nandinagari */,
+ { 17, 2324, 1465, 6, 10, UNI_INDIVESAKURU } /* block=divesakuru */,
+ { 0, 4424, 814, 17, 4, UNI_QAAI } /* scriptextensions=zinh */,
+ { 1307, 4424, 426, 17, 4, UNI_MRO } /* scriptextensions=mroo */,
+ { 0, 375, 934, 5, 2, -UNI_GREXT } /* grext=f */,
+ { 0, 2514, 1505, 9, 4, UNI_MYANMAREXTA } /* ismyanmarexta */,
+ { 1, 1823, 818, 7, 7, UNI_SC__SHRD } /* script=sharada */,
+ { 518, 212, 0, 4, 0, UNI_TIBT } /* tibt */,
+ { 1390, 461, 106, 2, 2, UNI_ZL } /* iszl */,
+ { 14, 1102, 3026, 4, 14, UNI_PHLP } /* scx=psalterpahlavi */,
+ { 2, 461, 232, 2, 2, UNI_YI } /* isyi */,
+ { 0, 1102, 3325, 4, 4, UNI_HEBR } /* scx=hebr */,
+ { 0, 3040, 585, 13, 5, UNI_QMARK } /* quotationmark=true */,
+ { 6, 5595, 274, 21, 1, UNI_cwt_values_index } /* changeswhentitlecased= */,
+ { 168, 1102, 4951, 4, 19, UNI_EGYP } /* scx=egyptianhieroglyphs */,
+ { 0, 309, 861, 2, 7, UNI_INTIBETAN } /* intibetan */,
+ { 0, 309, 739, 2, 7, UNI_INMANDAIC } /* inmandaic */,
+ { 4, 54, 3493, 2, 9, UNI_SC__CYRL } /* sc=cyrillic */,
+ { 2, 5553, 353, 21, 2, UNI_CWCM } /* changeswhencasemapped=y */,
+ { 776, 5637, 700, 21, 2, UNI_WB__EB } /* graphemeclusterbreak=em */,
+ { 1284, 2324, 5838, 6, 19, UNI_JAMOEXTA } /* block=hanguljamoextendeda */,
+ { 0, 1667, 4271, 4, 17, UNI_INKHITANSMALLSCRIPT } /* blk=khitansmallscript */,
+ { 16, 939, 934, 5, 2, -UNI_ECOMP } /* ecomp=f */,
+ { 0, 2324, 2256, 6, 12, UNI_PHAISTOS } /* block=phaistosdisc */,
+ { 28, 1391, 65, 3, 2, UNI_WB__MN } /* wb=mn */,
+ { 136, 257, 585, 4, 5, UNI_CWCM } /* cwcm=true */,
+ { 513, 2324, 2786, 6, 14, UNI_HIGHSURROGATES } /* block=highsurrogates */,
+ { 841, 4360, 4302, 10, 14, UNI_LB__SA } /* linebreak=complexcontext */,
+ { 1, 578, 2290, 5, 2, UNI_CCC__214 } /* ccc=214 */,
+ { 1, 1823, 571, 7, 7, UNI_AVST } /* script=avestan */,
+ { 23, 2966, 4710, 3, 8, UNI_SYRIACSUP } /* insyriacsup */,
+ { 0, 1200, 6557, 3, 16, UNI_CJKCOMPATIDEOGRAPHS } /* cjkcompatideographs */,
+ { 581, 1223, 1505, 4, 4, UNI_KANAEXTA } /* kanaexta */,
+ { 1073, 1823, 6642, 7, 6, UNI_BRAH } /* script=brahmi */,
+ { 52, 6163, 5338, 5, 15, UNI_INSC__REGISTERSHIFTER } /* insc=registershifter */,
+ { 0, 1102, 224, 4, 4, UNI_XPEO } /* scx=xpeo */,
+ { 0, 1397, 598, 6, 3, -UNI_IDS } /* idstart=n */,
+ { 0, 1667, 5838, 4, 19, UNI_JAMOEXTA } /* blk=hanguljamoextendeda */,
+ { 0, 4424, 148, 17, 4, UNI_ORYA } /* scriptextensions=orya */,
+ { 0, 2403, 1037, 8, 4, UNI_ETHIOPICEXTB } /* ethiopicextb */,
+ { 1, 312, 1669, 4, 2, UNI_qmark_values_index } /* qmark= */,
+ { 0, 7495, 2290, 27, 2, UNI_CCC__14 } /* canonicalcombiningclass=ccc14 */,
+ { 0, 461, 1396, 2, 4, UNI_XIDS } /* isxids */,
+ { 1, 3817, 295, 15, 1, UNI_NV__1_SLASH_9 } /* numericvalue=1/9 */,
+ { 0, 309, 5682, 2, 5, UNI_INGREEK } /* ingreek */,
+ { 39, 7383, 355, 10, 2, UNI_BC__ES } /* bidiclass=es */,
+ { 0, 1823, 426, 7, 4, UNI_MRO } /* script=mroo */,
+ { 5, 1823, 880, 7, 7, UNI_ZZZZ } /* script=unknown */,
+ { 13, 380, 934, 6, 6, -UNI_HYPHEN } /* hyphen=false */,
+ { 99, 6427, 2886, 13, 11, UNI_JG__YEHWITHTAIL } /* joininggroup=yehwithtail */,
+ { 0, 406, 599, 3, 3, -UNI_DIA } /* dia=no */,
+ { 18, 461, 124, 2, 4, UNI_LATN } /* islatn */,
+ { 10, 461, 430, 2, 3, UNI_NKO } /* isnko */,
+ { 0, 1801, 0, 9, 0, UNI_NV__100000 } /* nv=100000 */,
+ { 3, 578, 2121, 5, 2, UNI_CCC__202 } /* ccc=202 */,
+ { 1, 6165, 786, 3, 4, UNI_HMNP } /* sc=hmnp */,
+ { 224, 2930, 2579, 3, 10, UNI_JT__U } /* jt=nonjoining */,
+ { 3, 1610, 0, 3, 0, UNI_ALL } /* all */,
+ { 0, 309, 1812, 2, 11, UNI_INPAHAWHHMONG } /* inpahawhhmong */,
+ { 1500, 6866, 599, 24, 2, -UNI_COMPEX } /* fullcompositionexclusion=n */,
+ { 11, 1823, 1009, 7, 4, UNI_LYCI } /* script=lyci */,
+ { 1051, 1823, 2411, 7, 8, UNI_SC__KANA } /* script=katakana */,
+ { 0, 578, 288, 5, 2, UNI_CCC__A } /* ccc=230 */,
+ { 291, 3040, 599, 13, 3, -UNI_QMARK } /* quotationmark=no */,
+ { 0, 823, 599, 4, 2, -UNI_DASH } /* dash=n */,
+ { 0, 2301, 0, 4, 0, UNI_XIDC } /* xidc */,
+ { 0, 2832, 4659, 10, 9, UNI_CYRILLICEXTC } /* iscyrillicextendedc */,
+ { 656, 8343, 5017, 22, 14, UNI_INSC__VOWELDEPENDENT } /* indicsyllabiccategory=voweldependent */,
+ { 4, 461, 462, 2, 4, UNI_SHAW } /* isshaw */,
+ { 296, 2503, 934, 5, 2, -UNI_JOINC } /* joinc=f */,
+ { 0, 3391, 1313, 13, 4, UNI_NV__6000 } /* numericvalue=6000 */,
+ { 0, 875, 353, 5, 4, UNI_UIDEO } /* uideo=yes */,
+ { 7, 7011, 3141, 24, 11, UNI_CCC__DA } /* canonicalcombiningclass=doubleabove */,
+ { 16, 2665, 599, 13, 2, -UNI_PATSYN } /* patternsyntax=n */,
+ { 14, 3026, 0, 14, 0, UNI_PHLP } /* psalterpahlavi */,
+ { 0, 1102, 168, 4, 4, UNI_COPT } /* scx=qaac */,
+ { 648, 2280, 6262, 11, 3, UNI_IN__12_DOT_1 } /* presentin=12.1 */,
+ { 1074, 578, 582, 5, 2, UNI_CCC__BR } /* ccc=222 */,
+ { 0, 406, 1467, 2, 8, UNI_DIAK } /* divesakuru */,
+ { 71, 3984, 585, 17, 2, UNI_EPRES } /* emojipresentation=t */,
+ { 2, 6163, 5017, 5, 14, UNI_INSC__VOWELDEPENDENT } /* insc=voweldependent */,
+ { 1152, 5838, 0, 10, 0, UNI_JAMO } /* hanguljamo */,
+ { 0, 2324, 6357, 9, 13, UNI_CJKCOMPAT } /* block=cjkcompatibility */,
+ { 1548, 533, 33, 3, 2, UNI_SB__ST } /* sb=st */,
+ { 0, 6165, 967, 3, 8, UNI_SC__GUJR } /* sc=gujarati */,
+ { 0, 2503, 353, 5, 2, UNI_JOINC } /* joinc=y */,
+ { 0, 406, 353, 2, 2, UNI_DI } /* di=y */,
+ { 0, 1421, 976, 3, 7, UNI_INGURMUKHI } /* ingurmukhi */,
+ { 6, 2324, 6000, 6, 21, UNI_YIJING } /* block=yijinghexagramsymbols */,
+ { 0, 1200, 3611, 3, 11, UNI_CJKCOMPATFORMS } /* cjkcompatforms */,
+ { 26, 461, 1009, 2, 4, UNI_LYCI } /* islyci */,
+ { 0, 461, 3791, 2, 10, UNI_SM } /* ismathsymbol */,
+ { 0, 3407, 520, 14, 1, UNI_NV__47 } /* numericvalue=47 */,
+ { 4, 6041, 599, 21, 5, UNI_BPT__N } /* bidipairedbrackettype=none */,
+ { 571, 461, 4602, 2, 18, UNI_PI } /* isinitialpunctuation */,
+ { 0, 3098, 0, 8, 0, UNI_XPOSIXXDIGIT } /* hexdigit */,
+ { 0, 102, 0, 4, 0, UNI_HMNG } /* hmng */,
+ { 15, 2324, 3635, 6, 14, UNI_LATINEXTD } /* block=latinextendedd */,
+ { 1763, 753, 353, 6, 2, UNI_NFKCQC__Y } /* nfkcqc=y */,
+ { 0, 2780, 0, 6, 0, UNI_COPT } /* coptic */,
+ { 1096, 1102, 2411, 4, 8, UNI_KANA } /* scx=katakana */,
+ { 0, 8, 0, 1, 0, UNI_P } /* p */,
+ { 0, 622, 585, 7, 5, UNI_EXTPICT } /* extpict=true */,
+ { 0, 2, 0, 3, 0, UNI_CWL } /* cwl */,
+ { 6, 461, 5, 2, 3, UNI_OCR } /* isocr */,
+ { 360, 3475, 0, 15, 0, UNI_ZANB } /* zanabazarsquare */,
+ { 0, 1728, 5848, 6, 9, UNI_ARABICEXTA } /* arabicextendeda */,
+ { 0, 1823, 1592, 7, 10, UNI_SAUR } /* script=saurashtra */,
+ { 0, 1823, 825, 7, 7, UNI_SHAW } /* script=shavian */,
+ { 1, 309, 967, 2, 8, UNI_INGUJARATI } /* ingujarati */,
+ { 5, 1198, 6155, 3, 8, UNI_INCUNEIFORM } /* incuneiform */,
+ { 302, 3040, 0, 13, 0, UNI_QMARK } /* quotationmark */,
+ { 157, 3817, 295, 14, 1, UNI_NV__19 } /* numericvalue=19 */,
+ { 1545, 1102, 1255, 4, 4, UNI_SIDD } /* scx=sidd */,
+ { 65, 292, 1317, 3, 2, UNI_NV__32 } /* nv=32 */,
+ { 0, 629, 584, 5, 3, UNI_GRBASE } /* grbase=t */,
+ { 9, 5637, 543, 21, 3, UNI_WB__EB } /* graphemeclusterbreak=ebg */,
+ { 0, 2324, 3436, 6, 15, UNI_SARB } /* block=oldsoutharabian */,
+ { 1, 8441, 3078, 24, 6, UNI__PERL_PROBLEMATIC_LOCALE_FOLDS } /* _perl_problematic_locale_folds */,
+ { 31, 1424, 1070, 7, 2, UNI_CCC__31 } /* ccc=ccc31 */,
+ { 5, 4554, 0, 15, 0, UNI_TITLE } /* titlecaseletter */,
+ { 1, 309, 108, 2, 4, UNI_INKAWI } /* inkawi */,
+ { 0, 1906, 490, 7, 3, UNI_KANBUN } /* blk=kanbun */,
+ { 0, 1075, 2147, 4, 8, UNI_NV__1_SLASH_4 } /* nv=2.500e-01 */,
+ { 47, 6165, 983, 3, 4, UNI_SC__HIRA } /* sc=hira */,
+ { 0, 1872, 0, 11, 0, UNI_YISYLLABLES } /* yisyllables */,
+ { 6, 3502, 620, 10, 5, UNI_ETHIOPICEXT } /* blk=ethiopicext */,
+ { 17, 1667, 1438, 4, 10, UNI_INCHORASMIAN } /* blk=chorasmian */,
+ { 7, 2718, 4827, 3, 18, UNI_BC__B } /* bc=paragraphseparator */,
+ { 1, 3391, 2092, 13, 2, UNI_NV__25 } /* numericvalue=25 */,
+ { 692, 2503, 585, 11, 2, UNI_JOINC } /* joincontrol=t */,
+ { 0, 461, 6900, 2, 23, UNI_BYZANTINEMUSIC } /* isbyzantinemusicalsymbols */,
+ { 790, 4360, 274, 9, 3, UNI_LB__B2 } /* linebreak=b2 */,
+ { 0, 4360, 21, 10, 2, UNI_LB__EX } /* linebreak=ex */,
+ { 3, 7944, 4158, 28, 4, UNI_CJKEXTD } /* iscjkunifiedideographsextensiond */,
+ { 1178, 2523, 2060, 8, 5, UNI_XPOSIXALPHA } /* isxposixalpha */,
+ { 1, 7892, 934, 16, 2, -UNI_UIDEO } /* unifiedideograph=f */,
+ { 0, 1823, 2441, 7, 11, UNI_SC__NAND } /* script=nandinagari */,
+ { 4, 6165, 1285, 3, 9, UNI_SC__SIND } /* sc=khudawadi */,
+ { 0, 1823, 466, 7, 4, UNI_SOGO } /* script=sogo */,
+ { 55, 6165, 683, 3, 5, UNI_SC__TAKR } /* sc=takri */,
+ { 3, 4391, 290, 15, 1, UNI_NV__3_SLASH_4 } /* numericvalue=3/4 */,
+ { 0, 7274, 625, 9, 2, UNI_PI } /* category=pi */,
+ { 134, 4391, 295, 14, 1, UNI_NV__39 } /* numericvalue=39 */,
+ { 0, 324, 5909, 3, 7, UNI_SUPARROWSC } /* suparrowsc */,
+ { 0, 4424, 1834, 17, 4, UNI_SORA } /* scriptextensions=sora */,
+ { 1, 2004, 4150, 5, 5, UNI_POSIXPUNCT } /* posixpunct */,
+ { 647, 1823, 779, 7, 4, UNI_OSMA } /* script=osma */,
+ { 73, 1823, 1227, 7, 4, UNI_MAKA } /* script=maka */,
+ { 3, 2732, 8174, 10, 29, UNI_ARABICMATH } /* blk=arabicmathematicalalphabeticsymbols */,
+ { 8, 1102, 434, 4, 4, UNI_OGAM } /* scx=ogam */,
+ { 18, 1823, 951, 7, 8, UNI_SC__DUPL } /* script=duployan */,
+ { 1, 309, 1191, 2, 7, UNI_INBENGALI } /* inbengali */,
+ { 0, 11, 5676, 1, 18, UNI_ANCIENTGREEKNUMBERS } /* ancientgreeknumbers */,
+ { 0, 1424, 768, 7, 2, UNI_CCC__27 } /* ccc=ccc27 */,
+ { 1, 461, 4926, 2, 5, UNI_TAML } /* istamil */,
+ { 0, 4360, 1864, 10, 5, UNI_EBASE } /* linebreak=ebase */,
+ { 154, 1065, 295, 4, 1, UNI_NV__19 } /* nv=19 */,
+ { 0, 2523, 307, 8, 5, UNI_XPOSIXPRINT } /* isxposixprint */,
+ { 556, 461, 180, 2, 4, UNI_RUNR } /* isrunr */,
+ { 650, 1102, 746, 4, 7, UNI_MARC } /* scx=marchen */,
+ { 0, 4424, 35, 17, 4, UNI_BATK } /* scriptextensions=batk */,
+ { 74, 2536, 7328, 3, 14, UNI_JG__NOJOININGGROUP } /* jg=nojoininggroup */,
+ { 0, 5168, 3084, 6, 9, UNI__PERL_QUOTEMETA } /* _perl_quotemeta */,
+ { 0, 255, 0, 2, 0, UNI_CF } /* cf */,
+ { 0, 4191, 353, 5, 4, UNI_XPOSIXLOWER } /* lower=yes */,
+ { 0, 54, 2735, 2, 7, UNI_SC__ARAB } /* sc=arabic */,
+ { 0, 1667, 1248, 4, 7, UNI_INPHAGSPA } /* blk=phagspa */,
+ { 6, 940, 1104, 5, 2, UNI_compex_values_index } /* compex= */,
+ { 0, 461, 4206, 2, 15, UNI_PS } /* isopenpunctuation */,
+ { 1079, 6165, 926, 5, 2, UNI_SC__COPT } /* sc=copt */,
+ { 142, 1823, 1562, 7, 4, UNI_NAGM } /* script=nagm */,
+ { 29, 959, 934, 8, 6, -UNI_EXT } /* extender=false */,
+ { 0, 7648, 601, 19, 3, UNI_DT__NONE } /* decompositiontype=none */,
+ { 1, 1823, 406, 7, 4, UNI_DIAK } /* script=diak */,
+ { 1096, 959, 0, 8, 0, UNI_EXT } /* extender */,
+ { 0, 1200, 1926, 3, 7, UNI_CJKSYMBOLS } /* cjksymbols */,
+ { 1, 3391, 1154, 13, 2, UNI_NV__43 } /* numericvalue=43 */,
+ { 0, 4360, 4650, 10, 2, UNI_LB__BB } /* linebreak=bb */,
+ { 1, 1272, 3611, 5, 11, UNI_CJKCOMPATFORMS } /* iscjkcompatforms */,
+ { 1, 1102, 23, 4, 4, UNI_AHOM } /* scx=ahom */,
+ { 546, 461, 1914, 2, 8, UNI_UCASEXTA } /* isucasexta */,
+ { 0, 2287, 560, 3, 3, UNI_IN__7 } /* in=7.0 */,
+ { 0, 1823, 5031, 7, 4, UNI_SC__HAN } /* script=hani */,
+ { 132, 339, 393, 4, 2, UNI_CCC__15 } /* ccc=15 */,
+ { 2, 2324, 718, 6, 7, UNI_INKANNADA } /* block=kannada */,
+ { 0, 5595, 599, 21, 3, -UNI_CWT } /* changeswhentitlecased=no */,
+ { 0, 7274, 7110, 9, 13, UNI_M } /* category=combiningmark */,
+ { 0, 180, 0, 4, 0, UNI_RUNR } /* runr */,
+ { 2, 597, 238, 3, 2, UNI_DT__NB } /* dt=nb */,
+ { 21, 461, 4651, 2, 16, UNI_BOPOMOFOEXT } /* isbopomofoextended */,
+ { 128, 4424, 1484, 17, 8, UNI_BUGI } /* scriptextensions=buginese */,
+ { 10, 5769, 934, 4, 2, -UNI_EMOD } /* emod=f */,
+ { 3, 4502, 4698, 8, 2, UNI_LATIN1 } /* blk=latin1 */,
+ { 0, 4407, 585, 17, 5, UNI_RI } /* regionalindicator=true */,
+ { 0, 2536, 6215, 3, 9, UNI_JG__YEHBARREE } /* jg=yehbarree */,
+ { 411, 6870, 8554, 17, 4, UNI_ce_values_index } /* compositionexclusion= */,
+ { 1705, 2393, 3640, 8, 9, UNI_CYRILLICEXTD } /* cyrillicextendedd */,
+ { 0, 1065, 1317, 5, 3, UNI_NV__1_SLASH_320 } /* nv=1/320 */,
+ { 1089, 6427, 2546, 20, 3, UNI_JG__AFRICANFEH } /* joininggroup=africanfeh */,
+ { 124, 1102, 462, 4, 4, UNI_SHAW } /* scx=shaw */,
+ { 0, 3014, 2125, 11, 2, UNI_IN__6_DOT_3 } /* presentin=v63 */,
+ { 0, 3817, 760, 14, 3, UNI_NV__11_SLASH_2 } /* numericvalue=11/2 */,
+ { 1, 2665, 585, 13, 5, UNI_PATSYN } /* patternsyntax=true */,
+ { 2, 1102, 426, 4, 3, UNI_MRO } /* scx=mro */,
+ { 144, 1492, 5292, 4, 16, UNI_INPUNCTUATION } /* ingeneralpunctuation */,
+ { 0, 2536, 1747, 3, 8, UNI_JG__FARSIYEH } /* jg=farsiyeh */,
+ { 115, 3204, 274, 14, 1, UNI_grext_values_index } /* graphemeextend= */,
+ { 0, 2324, 6185, 6, 10, UNI_INGLAGOLITIC } /* block=glagolitic */,
+ { 0, 461, 3026, 2, 14, UNI_PHLP } /* ispsalterpahlavi */,
+ { 1, 309, 342, 2, 3, UNI_IN__12 } /* in=12 */,
+ { 0, 461, 8607, 2, 33, UNI_SUPMATHOPERATORS } /* issupplementalmathematicaloperators */,
+ { 167, 4941, 3622, 9, 3, UNI_KANGXI } /* block=kangxi */,
+ { 0, 461, 426, 2, 3, UNI_MRO } /* ismro */,
+ { 0, 1102, 718, 4, 7, UNI_KNDA } /* scx=kannada */,
+ { 0, 1479, 5671, 4, 3, -UNI_XPOSIXSPACE } /* space=n */,
+ { 3, 4161, 0, 12, 0, UNI_DIACRITICALS } /* diacriticals */,
+ { 11, 461, 2852, 2, 7, UNI_MAHJONG } /* ismahjong */,
+ { 2, 7887, 3998, 28, 4, UNI_CJKEXTG } /* incjkunifiedideographsextensiong */,
+ { 0, 4852, 933, 9, 7, -UNI_XPOSIXSPACE } /* whitespace=false */,
+ { 4, 8343, 5338, 22, 15, UNI_INSC__REGISTERSHIFTER } /* indicsyllabiccategory=registershifter */,
+ { 163, 30, 7133, 1, 27, UNI_PCM } /* isprependedconcatenationmark */,
+ { 1, 339, 689, 4, 3, UNI_CCC__214 } /* ccc=ata */,
+ { 257, 4424, 1522, 17, 4, UNI_UGAR } /* scriptextensions=ugar */,
+ { 1, 1385, 0, 6, 0, UNI_THAA } /* thaana */,
+ { 23, 5065, 4243, 13, 4, UNI_JG__MANICHAEANHETH } /* jg=manichaeanheth */,
+ { 1131, 4371, 352, 5, 2, UNI_wspace_values_index } /* wspace= */,
+ { 5, 6090, 8039, 7, 32, UNI_MISCMATHSYMBOLSA } /* block=miscellaneousmathematicalsymbolsa */,
+ { 2, 6841, 2931, 24, 3, UNI_DI } /* defaultignorablecodepoint=t */,
+ { 22, 5156, 1864, 10, 8, UNI_WB__EB } /* wordbreak=ebasegaz */,
+ { 0, 1102, 98, 4, 4, UNI_HLUW } /* scx=hluw */,
+ { 349, 2324, 3908, 6, 6, UNI_INTANGUT } /* block=tangut */,
+ { 209, 1926, 0, 6, 0, UNI_S } /* symbol */,
+ { 1, 7591, 272, 3, 2, UNI_LB__CB } /* lb=cb */,
+ { 1, 5799, 5909, 5, 7, UNI_SUPARROWSC } /* insuparrowsc */,
+ { 2429, 461, 257, 2, 4, UNI_CWCM } /* iscwcm */,
+ { 1113, 1200, 8153, 3, 21, UNI_CJKSYMBOLS } /* cjksymbolsandpunctuation */,
+ { 6, 3014, 1317, 11, 2, UNI_IN__3_DOT_2 } /* presentin=v32 */,
+ { 1054, 733, 7915, 3, 20, UNI_ENCLOSEDALPHANUM } /* inenclosedalphanumerics */,
+ { 0, 1667, 6185, 4, 10, UNI_INGLAGOLITIC } /* blk=glagolitic */,
+ { 1, 7214, 582, 25, 2, UNI_CCC__122 } /* canonicalcombiningclass=122 */,
+ { 2, 6427, 481, 13, 3, UNI_JG__GAF } /* joininggroup=gaf */,
+ { 112, 1667, 6692, 4, 15, UNI_TRANSPORTANDMAP } /* blk=transportandmap */,
+ { 1565, 380, 599, 6, 2, -UNI_HYPHEN } /* hyphen=n */,
+ { 0, 794, 0, 4, 0, UNI_LANA } /* lana */,
+ { 115, 3177, 604, 15, 4, UNI_EA__W } /* eastasianwidth=wide */,
+ { 0, 309, 4131, 2, 15, UNI_VEDICEXT } /* invedicextensions */,
+ { 0, 461, 3558, 2, 9, UNI_Z } /* isseparator */,
+ { 3, 1102, 1331, 4, 9, UNI_PERM } /* scx=oldpermic */,
+ { 0, 2324, 1133, 6, 8, UNI_INVITHKUQI } /* block=vithkuqi */,
+ { 1671, 2324, 1340, 6, 9, UNI_INOLDTURKIC } /* block=oldturkic */,
+ { 0, 2324, 7796, 6, 29, UNI_ENCLOSEDIDEOGRAPHICSUP } /* block=enclosedideographicsupplement */,
+ { 1, 3832, 2200, 14, 8, UNI_NV__1_SLASH_20 } /* numericvalue=5.000e-02 */,
+ { 0, 2752, 353, 14, 2, UNI_ECOMP } /* emojicomponent=y */,
+ { 0, 1102, 1484, 4, 4, UNI_BUGI } /* scx=bugi */,
+ { 11, 7591, 2621, 3, 9, UNI_LB__SG } /* lb=surrogate */,
+ { 0, 3633, 3693, 3, 3, UNI_INLISU } /* inlisu */,
+ { 329, 5532, 585, 21, 5, UNI_CWCF } /* changeswhencasefolded=true */,
+ { 4, 1102, 678, 4, 5, UNI_RUNR } /* scx=runic */,
+ { 1, 4424, 1094, 17, 4, UNI_MERC } /* scriptextensions=merc */,
+ { 515, 3635, 4770, 8, 10, UNI_LATINEXTADDITIONAL } /* latinextadditional */,
+ { 1, 261, 934, 5, 2, -UNI_CWKCF } /* cwkcf=f */,
+ { 901, 5205, 4636, 5, 15, UNI_MISCMATHSYMBOLSB } /* blk=miscmathsymbolsb */,
+ { 1, 3791, 353, 4, 2, UNI_MATH } /* math=y */,
+ { 1, 7198, 1269, 8, 3, UNI_SUPPUAB } /* blk=suppuab */,
+ { 0, 1198, 1037, 5, 4, UNI_CJKEXTB } /* incjkextb */,
+ { 3, 1102, 608, 4, 4, UNI_ELBA } /* scx=elba */,
+ { 1172, 2280, 2689, 10, 3, UNI_IN__6_DOT_1 } /* presentin=6.1 */,
+ { 1796, 4191, 0, 5, 0, UNI_XPOSIXLOWER } /* lower */,
+ { 1, 1102, 59, 4, 4, UNI_CHRS } /* scx=chrs */,
+ { 1003, 30, 1617, 1, 3, UNI_SO } /* isso */,
+ { 18, 5658, 7062, 15, 11, UNI_IDENTIFIERTYPE__RECOMMENDED } /* identifiertype=recommended */,
+ { 2, 47, 0, 4, 0, UNI_CAKM } /* cakm */,
+ { 273, 521, 599, 6, 3, -UNI_PATSYN } /* patsyn=no */,
+ { 3, 597, 363, 3, 3, UNI_DT__SML } /* dt=sml */,
+ { 516, 3177, 1176, 14, 7, UNI_EA__NA } /* eastasianwidth=narrow */,
+ { 1200, 7011, 581, 23, 3, UNI_CCC__22 } /* canonicalcombiningclass=22 */,
+ { 260, 7267, 4146, 16, 15, UNI_PD } /* generalcategory=dashpunctuation */,
+ { 800, 7648, 2692, 18, 8, UNI_DT__VERT } /* decompositiontype=vertical */,
+ { 0, 959, 934, 8, 2, -UNI_EXT } /* extender=f */,
+ { 0, 7267, 599, 15, 2, UNI_N } /* generalcategory=n */,
+ { 6, 6165, 1027, 3, 4, UNI_SC__YEZI } /* sc=yezi */,
+ { 0, 753, 1792, 3, 4, UNI_nfkcqc_values_index } /* nfkcqc= */,
+ { 0, 461, 71, 2, 3, UNI_CWU } /* iscwu */,
+ { 0, 4424, 2780, 17, 4, UNI_COPT } /* scriptextensions=copt */,
+ { 6, 6165, 2852, 3, 4, UNI_SC__MAHJ } /* sc=mahj */,
+ { 149, 312, 353, 5, 2, UNI_QMARK } /* qmark=y */,
+ { 5, 4519, 1674, 14, 4, UNI_CYRILLICEXTD } /* block=cyrillicextd */,
+ { 31, 2, 598, 2, 4, -UNI_CWT } /* cwt=no */,
+ { 3, 309, 779, 2, 7, UNI_INOSMANYA } /* inosmanya */,
+ { 385, 7267, 2621, 16, 9, UNI__PERL_SURROGATE } /* generalcategory=surrogate */,
+ { 0, 10, 3189, 2, 3, UNI_math_values_index } /* math= */,
+ { 644, 1102, 615, 4, 7, UNI_ELYM } /* scx=elymaic */,
+ { 410, 5532, 599, 21, 2, -UNI_CWCF } /* changeswhencasefolded=n */,
+ { 5, 2287, 386, 3, 3, UNI_IN__3_DOT_2 } /* in=3.2 */,
+ { 1348, 309, 4176, 2, 15, UNI_INHANGUL } /* inhangulsyllables */,
+ { 0, 2842, 620, 8, 5, UNI_ETHIOPICEXT } /* isethiopicext */,
+ { 7, 1667, 4090, 4, 17, UNI_INDICSIYAQNUMBERS } /* blk=indicsiyaqnumbers */,
+ { 32, 461, 1484, 2, 8, UNI_BUGI } /* isbuginese */,
+ { 423, 1011, 585, 2, 5, UNI_CI } /* ci=true */,
+ { 838, 4424, 430, 17, 3, UNI_NKO } /* scriptextensions=nko */,
+ { 2, 253, 934, 4, 6, -UNI_CWCF } /* cwcf=false */,
+ { 896, 461, 1501, 2, 8, UNI_JAMOEXTA } /* isjamoexta */,
+ { 0, 3863, 2657, 14, 8, UNI_NV__4_SLASH_5 } /* numericvalue=8.000e-01 */,
+ { 32, 1484, 0, 4, 0, UNI_BUGI } /* bugi */,
+ { 258, 309, 1227, 2, 7, UNI_INMAKASAR } /* inmakasar */,
+ { 0, 1397, 599, 3, 3, -UNI_IDS } /* ids=no */,
+ { 138, 887, 2199, 5, 3, UNI_AGE__12 } /* age=12.0 */,
+ { 642, 1455, 934, 10, 2, -UNI_DEP } /* deprecated=f */,
+ { 2, 461, 2441, 2, 11, UNI_NAND } /* isnandinagari */,
+ { 15, 7495, 582, 27, 2, UNI_CCC__22 } /* canonicalcombiningclass=ccc22 */,
+ { 0, 3791, 934, 4, 2, -UNI_MATH } /* math=f */,
+ { 262, 4043, 934, 4, 2, -UNI_IDSB } /* idsb=f */,
+ { 0, 1883, 934, 11, 6, -UNI_BIDIC } /* bidicontrol=false */,
+ { 954, 7011, 2742, 24, 10, UNI_CCC__6 } /* canonicalcombiningclass=hanreading */,
+ { 5, 8601, 4607, 16, 13, UNI_SUPPUNCTUATION } /* block=supplementalpunctuation */,
+ { 3658, 1102, 2045, 4, 12, UNI_GONM } /* scx=masaramgondi */,
+ { 0, 1358, 0, 9, 0, UNI_PALM } /* palmyrene */,
+ { 130, 224, 0, 4, 0, UNI_XPEO } /* xpeo */,
+ { 2199, 3817, 515, 14, 2, UNI_NV__1_SLASH_5 } /* numericvalue=1/5 */,
+ { 1, 309, 6332, 2, 19, UNI_JAMOEXTB } /* inhanguljamoextendedb */,
+ { 7, 4424, 1262, 17, 7, UNI_SOYO } /* scriptextensions=soyombo */,
+ { 476, 2525, 3268, 6, 5, UNI_XPOSIXALNUM } /* xposixalnum */,
+ { 3, 7495, 891, 27, 2, UNI_CCC__10 } /* canonicalcombiningclass=ccc10 */,
+ { 4116, 7591, 1771, 3, 8, UNI_LB__NL } /* lb=nextline */,
+ { 0, 7011, 430, 24, 2, UNI_CCC__7 } /* canonicalcombiningclass=nk */,
+ { 4, 2324, 6103, 6, 13, UNI_MATHOPERATORS } /* block=mathoperators */,
+ { 1921, 4795, 2131, 14, 8, UNI_NV__2_SLASH_3 } /* numericvalue=6.667e-01 */,
+ { 516, 4089, 0, 4, 0, UNI_SIND } /* sind */,
+ { 0, 4424, 991, 17, 4, UNI_HATR } /* scriptextensions=hatr */,
+ { 4097, 2536, 2009, 3, 9, UNI_JG__SYRIACWAW } /* jg=syriacwaw */,
+ { 0, 423, 2705, 3, 13, UNI_ANCIENTSYMBOLS } /* inancientsymbols */,
+ { 108, 4360, 318, 10, 2, UNI_LB__AI } /* linebreak=ai */,
+ { 1, 461, 112, 2, 4, UNI_KITS } /* iskits */,
+ { 0, 1102, 1819, 4, 4, UNI_MONG } /* scx=mong */,
+ { 0, 1667, 527, 4, 6, UNI_INREJANG } /* blk=rejang */,
+ { 1, 6450, 535, 13, 3, UNI_SB__ST } /* sentencebreak=st */,
+ { 5294, 4424, 2735, 16, 7, UNI_ARAB } /* scriptextensions=arabic */,
+ { 14, 2514, 740, 3, 6, UNI_MAND } /* ismandaic */,
+ { 8, 2391, 6193, 8, 5, UNI_CYRILLICSUP } /* incyrillicsup */,
+ { 4140, 2766, 3558, 3, 9, UNI_Z } /* gc=separator */,
+ { 233, 3677, 0, 3, 0, UNI_L } /* isl */,
+ { 3, 1102, 1385, 4, 4, UNI_THAA } /* scx=thaa */,
+ { 8, 6163, 1517, 5, 5, UNI_INSC__BINDU } /* insc=bindu */,
+ { 0, 339, 391, 4, 2, UNI_CCC__34 } /* ccc=34 */,
+ { 0, 895, 891, 6, 2, UNI_AGE__11 } /* age=v110 */,
+ { 0, 6165, 224, 3, 4, UNI_XPEO } /* sc=xpeo */,
+ { 1, 461, 2483, 2, 11, UNI_CASEDLETTER } /* iscasedletter */,
+ { 0, 30, 1941, 1, 6, UNI_XPOSIXGRAPH } /* isgraph */,
+ { 0, 461, 1331, 2, 9, UNI_PERM } /* isoldpermic */,
+ { 0, 533, 306, 3, 2, UNI_SB__SP } /* sb=sp */,
+ { 2762, 4911, 0, 15, 0, UNI_DIACRITICALSSUP } /* diacriticalssup */,
+ { 0, 461, 4740, 2, 4, UNI_TALE } /* istale */,
+ { 1043, 2536, 4751, 3, 5, UNI_JG__SADHE } /* jg=sadhe */,
+ { 0, 1667, 6586, 4, 11, UNI_NUMBERFORMS } /* blk=numberforms */,
+ { 9, 578, 388, 5, 2, UNI_CCC__R } /* ccc=226 */,
+ { 0, 1075, 1805, 4, 7, UNI_NV__20000000 } /* nv=20000000 */,
+ { 2057, 2302, 585, 3, 5, UNI_IDC } /* idc=true */,
+ { 0, 1667, 718, 4, 7, UNI_INKANNADA } /* blk=kannada */,
+ { 0, 2287, 563, 3, 3, UNI_IN__8 } /* in=8.0 */,
+ { 2060, 2514, 4636, 3, 15, UNI_MISCMATHSYMBOLSB } /* ismiscmathsymbolsb */,
+ { 81, 1894, 585, 12, 5, UNI_BIDIM } /* bidimirrored=true */,
+ { 25, 4424, 1051, 17, 8, UNI_MAHJ } /* scriptextensions=mahajani */,
+ { 4097, 3026, 0, 2, 0, UNI_PS } /* ps */,
+ { 1178, 1667, 1191, 4, 7, UNI_INBENGALI } /* blk=bengali */,
+ { 0, 461, 2244, 2, 12, UNI_HUNG } /* isoldhungarian */,
+ { 10, 2324, 377, 9, 4, UNI_CJKEXTH } /* block=cjkexth */,
+ { 0, 461, 1894, 2, 5, UNI_BIDIM } /* isbidim */,
+ { 1735, 406, 585, 3, 2, UNI_DIA } /* dia=t */,
+ { 0, 6165, 1294, 3, 9, UNI_NBAT } /* sc=nabataean */,
+ { 0, 292, 1318, 3, 4, UNI_NV__2000 } /* nv=2000 */,
+ { 151, 2718, 4487, 3, 15, UNI_BC__CS } /* bc=commonseparator */,
+ { 0, 3677, 5848, 7, 9, UNI_LATINEXTA } /* islatinextendeda */,
+ { 298, 4845, 933, 16, 3, -UNI__PERL_PATWS } /* patternwhitespace=f */,
+ { 4163, 309, 1021, 2, 6, UNI_INWANCHO } /* inwancho */,
+ { 0, 1272, 204, 7, 2, UNI_CJKEXTF } /* iscjkextf */,
+ { 0, 54, 1105, 2, 5, UNI_TALU } /* sc=talu */,
+ { 0, 6165, 4487, 3, 6, UNI_SC__ZYYY } /* sc=common */,
+ { 8, 2718, 52, 3, 2, UNI_BC__AN } /* bc=an */,
+ { 38, 461, 2302, 2, 10, UNI_IDC } /* isidcontinue */,
+ { 0, 7752, 4756, 23, 5, UNI_JG__MANICHAEANZAYIN } /* joininggroup=manichaeanzayin */,
+ { 4336, 1667, 8214, 5, 24, UNI_DIACRITICALS } /* blk=combiningdiacriticalmarks */,
+ { 2, 2060, 585, 5, 2, UNI_XPOSIXALPHA } /* alpha=t */,
+ { 2254, 1530, 3746, 4, 14, UNI_KAKTOVIKNUMERALS } /* iskaktoviknumerals */,
+ { 2088, 1667, 1241, 4, 7, UNI_NB } /* blk=noblock */,
+ { 4098, 71, 0, 3, 0, UNI_CWU } /* cwu */,
+ { 0, 2324, 1404, 6, 10, UNI_ASCII } /* block=basiclatin */,
+ { 2, 1823, 861, 7, 7, UNI_TIBT } /* script=tibetan */,
+ { 0, 1667, 192, 4, 4, UNI_TAGS } /* blk=tags */,
+ { 1, 39, 0, 4, 0, UNI_BHKS } /* bhks */,
+ { 4494, 2004, 4191, 5, 5, UNI_POSIXLOWER } /* posixlower */,
+ { 0, 461, 2752, 2, 14, UNI_ECOMP } /* isemojicomponent */,
+ { 2096, 297, 0, 5, 0, UNI_ORYA } /* oriya */,
+ { 4160, 2536, 0, 3, 0, UNI_jg_values_index } /* jg= */,
+ { 5, 1667, 5876, 4, 9, UNI_INSUNDANESE } /* blk=sundanese */,
+ { 0, 292, 3405, 3, 2, UNI_NV__36 } /* nv=36 */,
+ { 0, 1667, 1853, 4, 11, UNI_INSYLOTINAGRI } /* blk=sylotinagri */,
+ { 2154, 6165, 426, 3, 3, UNI_MRO } /* sc=mro */,
+ { 4, 6735, 699, 14, 3, UNI_JG__MEEM } /* joininggroup=meem */,
+ { 0, 2401, 6193, 8, 12, UNI_ETHIOPICSUP } /* inethiopicsupplement */,
+ { 1024, 2280, 0, 12, 0, UNI_IN__14 } /* presentin=14 */,
+ { 1323, 1823, 868, 7, 7, UNI_SC__TIRH } /* script=tirhuta */,
+ { 5635, 2766, 248, 3, 5, UNI_XPOSIXCNTRL } /* gc=cntrl */,
+ { 0, 2536, 1046, 3, 5, UNI_JG__KHAPH } /* jg=khaph */,
+ { 0, 2494, 0, 6, 0, UNI_GEOR } /* isgeor */,
+ { 1, 6154, 0, 9, 0, UNI_XSUX } /* cuneiform */,
+ { 2689, 3391, 344, 13, 2, UNI_NV__21 } /* numericvalue=21 */,
+ { 2155, 2752, 934, 5, 6, -UNI_EMOJI } /* emoji=false */,
+ { 0, 2280, 2182, 9, 2, UNI_IN__4 } /* presentin=4 */,
+ { 3081, 1603, 0, 6, 0, UNI_L } /* letter */,
+ { 3, 1942, 352, 11, 2, UNI_grbase_values_index } /* graphemebase= */,
+ { 2224, 461, 430, 2, 4, UNI_NKO } /* isnkoo */,
+ { 15, 461, 5595, 2, 21, UNI_CWT } /* ischangeswhentitlecased */,
+ { 10, 7591, 4304, 5, 12, UNI_LB__SA } /* lb=complexcontext */,
+ { 4096, 1801, 0, 7, 0, UNI_NV__1000 } /* nv=1000 */,
+ { 7, 4424, 1438, 17, 10, UNI_CHRS } /* scriptextensions=chorasmian */,
+ { 364, 309, 4651, 2, 8, UNI_INBOPOMOFO } /* inbopomofo */,
+ { 4281, 1391, 1909, 2, 3, UNI_WB__KA } /* wb=ka */,
+ { 0, 2432, 2643, 3, 12, UNI_MISCTECHNICAL } /* inmisctechnical */,
+ { 1, 8246, 8508, 30, 14, UNI_INPC__TOPANDBOTTOMANDRIGHT } /* indicpositionalcategory=topandbottomandright */,
+ { 0, 309, 5440, 2, 20, UNI_INNYIAKENGPUACHUEHMONG } /* innyiakengpuachuehmong */,
+ { 2375, 2536, 783, 3, 3, UNI_JG__NYA } /* jg=nya */,
+ { 5, 1667, 1349, 4, 9, UNI_INOLDUYGHUR } /* blk=olduyghur */,
+ { 0, 1102, 5185, 4, 20, UNI_HLUW } /* scx=anatolianhieroglyphs */,
+ { 0, 4525, 0, 12, 0, UNI_CYRILLICEXTC } /* cyrillicextc */,
+ { 28, 7011, 2222, 23, 2, UNI_CCC__6 } /* canonicalcombiningclass=6 */,
+ { 1050, 4043, 353, 17, 4, UNI_IDSB } /* idsbinaryoperator=yes */,
+ { 23, 901, 0, 8, 0, UNI_ARMN } /* armenian */,
+ { 13, 3391, 1155, 13, 2, UNI_NV__35 } /* numericvalue=35 */,
+ { 0, 7011, 2742, 24, 4, UNI_CCC__6 } /* canonicalcombiningclass=hanr */,
+ { 4192, 597, 0, 7, 0, UNI_DT__NONE } /* dt=none */,
+ { 0, 1823, 5712, 7, 19, UNI_MERO } /* script=meroitichieroglyphs */,
+ { 0, 302, 934, 5, 6, -UNI__PERL_PATWS } /* patws=false */,
+ { 4116, 2324, 1522, 6, 8, UNI_INUGARITIC } /* block=ugaritic */,
+ { 0, 5532, 934, 21, 6, -UNI_CWCF } /* changeswhencasefolded=false */,
+ { 2061, 4424, 116, 17, 4, UNI_KNDA } /* scriptextensions=knda */,
+ { 0, 1530, 419, 3, 3, UNI_KHMR } /* iskhmr */,
+ { 2, 505, 1793, 3, 3, UNI_nfdqc_values_index } /* nfdqc= */,
+ { 5, 1011, 934, 2, 2, -UNI_CI } /* ci=f */,
+ { 2507, 309, 7036, 2, 26, UNI_HALFANDFULLFORMS } /* inhalfwidthandfullwidthforms */,
+ { 7, 461, 832, 2, 5, UNI_STERM } /* issterm */,
+ { 0, 2324, 840, 6, 7, UNI_INTAGALOG } /* block=tagalog */,
+ { 32, 1667, 1015, 4, 6, UNI_INTELUGU } /* blk=telugu */,
+ { 0, 3692, 0, 14, 0, UNI_LISUSUP } /* lisusupplement */,
+ { 295, 1667, 840, 4, 7, UNI_INTAGALOG } /* blk=tagalog */,
+ { 8, 3502, 1183, 5, 8, UNI_EMOTICONS } /* blk=emoticons */,
+ { 6172, 5532, 599, 21, 3, -UNI_CWCF } /* changeswhencasefolded=no */,
+ { 0, 461, 86, 2, 4, UNI_GREK } /* isgrek */,
+ { 0, 4424, 120, 17, 4, UNI_LAO } /* scriptextensions=laoo */,
+ { 459, 271, 3709, 4, 11, UNI_GCB__SM } /* gcb=spacingmark */,
+ { 9, 2525, 1082, 6, 4, UNI_XPOSIXWORD } /* xposixword */,
+ { 1, 875, 934, 5, 6, -UNI_UIDEO } /* uideo=false */,
+ { 0, 461, 997, 2, 6, UNI_KTHI } /* iskaithi */,
+ { 2056, 1667, 0, 11, 0, UNI_CJKEXTD } /* blk=cjkextd */,
+ { 3079, 312, 599, 5, 3, -UNI_QMARK } /* qmark=no */,
+ { 0, 1102, 1090, 4, 4, UNI_LINB } /* scx=linb */,
+ { 1, 271, 163, 4, 2, UNI_GCB__PP } /* gcb=pp */,
+ { 15, 7084, 1141, 8, 3, UNI_ARABICPFA } /* inarabicpfa */,
+ { 0, 30, 7854, 1, 12, UNI_IDEO } /* isideographic */,
+ { 4103, 461, 297, 2, 5, UNI_ORYA } /* isoriya */,
+ { 4527, 3014, 343, 12, 1, UNI_IN__1_DOT_1 } /* presentin=v11 */,
+ { 0, 19, 934, 4, 2, -UNI_POSIXXDIGIT } /* ahex=f */,
+ { 0, 2324, 4060, 6, 15, UNI_BRAI } /* block=braillepatterns */,
+ { 909, 2324, 8619, 6, 21, UNI_MATHOPERATORS } /* block=mathematicaloperators */,
+ { 4997, 1397, 934, 4, 2, -UNI_IDST } /* idst=f */,
+ { 0, 3635, 129, 11, 3, UNI_LATINEXTF } /* latinextendedf */,
+ { 1, 1823, 86, 7, 4, UNI_SC__GREK } /* script=grek */,
+ { 527, 4424, 493, 17, 6, UNI_KHOJ } /* scriptextensions=khojki */,
+ { 0, 1200, 6357, 3, 13, UNI_CJKCOMPAT } /* cjkcompatibility */,
+ { 2132, 3391, 6255, 14, 8, UNI_NV__1_SLASH_40 } /* numericvalue=2.500e-02 */,
+ { 2358, 6165, 5778, 3, 21, UNI_PRTI } /* sc=inscriptionalparthian */,
+ { 2912, 2324, 7724, 6, 18, UNI_INVS } /* block=variationselectors */,
+ { 0, 309, 673, 2, 5, UNI_INOSAGE } /* inosage */,
+ { 1682, 7537, 0, 27, 0, UNI_ALPHABETICPF } /* alphabeticpresentationforms */,
+ { 131, 261, 274, 5, 1, UNI_cwkcf_values_index } /* cwkcf= */,
+ { 0, 1102, 1086, 4, 4, UNI_KTHI } /* scx=kthi */,
+ { 0, 2, 1214, 1, 3, UNI_CHER } /* cher */,
+ { 0, 461, 1227, 2, 7, UNI_MAKA } /* ismakasar */,
+ { 1, 2752, 353, 5, 2, UNI_EMOJI } /* emoji=y */,
+ { 1, 2752, 0, 14, 0, UNI_ECOMP } /* emojicomponent */,
+ { 6218, 71, 934, 3, 6, -UNI_CWU } /* cwu=false */,
+ { 6, 895, 3876, 5, 2, UNI_AGE__8 } /* age=v80 */,
+ { 5511, 7267, 99, 16, 2, UNI_UPPERCASELETTER } /* generalcategory=lu */,
+ { 0, 1667, 6557, 7, 19, UNI_CJKCOMPATIDEOGRAPHSSUP } /* blk=cjkcompatideographssup */,
+ { 3, 739, 0, 4, 0, UNI_MAND } /* mand */,
+ { 2066, 30, 62, 1, 5, UNI_CPMN } /* iscpmn */,
+ { 0, 30, 832, 1, 5, UNI_TERM } /* isterm */,
+ { 0, 2842, 0, 10, 0, UNI_ETHI } /* isethiopic */,
+ { 0, 1667, 3538, 4, 16, UNI_CYPRIOTSYLLABARY } /* blk=cypriotsyllabary */,
+ { 1, 1667, 8660, 4, 42, UNI_UCASEXT } /* blk=unifiedcanadianaboriginalsyllabicsextended */,
+ { 0, 30, 633, 1, 8, UNI_HANO } /* ishanunoo */,
+ { 2188, 4536, 0, 18, 0, UNI_COPTICEPACTNUMBERS } /* copticepactnumbers */,
+ { 4936, 461, 1205, 2, 7, UNI_GRAN } /* isgrantha */,
+ { 0, 380, 353, 6, 2, UNI_HYPHEN } /* hyphen=y */,
+ { 2, 1726, 4511, 8, 9, UNI_ARABICEXTB } /* isarabicextendedb */,
+ { 0, 622, 598, 6, 3, -UNI_EXTPICT } /* extpict=n */,
+ { 0, 1102, 6082, 4, 8, UNI_GEOR } /* scx=georgian */,
+ { 0, 7591, 4407, 3, 17, UNI_RI } /* lb=regionalindicator */,
+ { 2486, 4424, 648, 17, 5, UNI_ADLM } /* scriptextensions=adlam */,
+ { 3, 5065, 600, 12, 4, UNI_JG__MANICHAEANONE } /* jg=manichaeanone */,
+ { 6356, 6165, 5958, 3, 4, UNI_SC__SINH } /* sc=sinh */,
+ { 0, 5857, 0, 9, 0, UNI_MONG } /* mongolian */,
+ { 20, 2324, 4536, 6, 18, UNI_COPTICEPACTNUMBERS } /* block=copticepactnumbers */,
+ { 4196, 1823, 1543, 7, 10, UNI_KHAR } /* script=kharoshthi */,
+ { 4864, 7752, 5079, 24, 5, UNI_JG__MANICHAEANTWENTY } /* joininggroup=manichaeantwenty */,
+ { 4160, 1102, 205, 5, 3, UNI_TFNG } /* scx=tfng */,
+ { 9, 7110, 0, 24, 0, UNI_DIACRITICALSFORSYMBOLS } /* combiningmarksforsymbols */,
+ { 3265, 1823, 1358, 7, 9, UNI_PALM } /* script=palmyrene */,
+ { 1, 7887, 6553, 27, 5, UNI_CJKEXTC } /* incjkunifiedideographsextensionc */,
+ { 5507, 4371, 0, 6, 0, UNI_XPOSIXSPACE } /* wspace */,
+ { 6145, 3001, 283, 12, 2, UNI_NT__NU } /* numerictype=nu */,
+ { 1550, 461, 1133, 2, 8, UNI_VITH } /* isvithkuqi */,
+ { 0, 895, 288, 5, 2, UNI_AGE__3 } /* age=v30 */,
+ { 2, 823, 585, 4, 5, UNI_DASH } /* dash=true */,
+ { 4615, 4424, 43, 17, 4, UNI_BUHD } /* scriptextensions=buhd */,
+ { 0, 2302, 933, 9, 3, -UNI_IDC } /* idcontinue=f */,
+ { 2068, 2536, 2539, 3, 10, UNI_JG__AFRICANFEH } /* jg=africanfeh */,
+ { 8, 461, 2526, 2, 10, UNI_POSIXBLANK } /* isposixblank */,
+ { 2325, 1243, 5067, 5, 11, UNI_INMANICHAEAN } /* block=manichaean */,
+ { 0, 8, 585, 3, 2, UNI_PCM } /* pcm=t */,
+ { 0, 4424, 5778, 17, 21, UNI_PRTI } /* scriptextensions=inscriptionalparthian */,
+ { 20, 1102, 673, 4, 5, UNI_OSGE } /* scx=osage */,
+ { 8, 4424, 156, 17, 4, UNI_OUGR } /* scriptextensions=ougr */,
+ { 0, 1823, 47, 7, 4, UNI_SC__CAKM } /* script=cakm */,
+ { 4112, 1667, 5373, 4, 18, UNI_TAIXUANJING } /* blk=taixuanjingsymbols */,
+ { 8, 7591, 18, 3, 2, UNI_LB__BA } /* lb=ba */,
+ { 1, 4424, 4740, 17, 4, UNI_TALE } /* scriptextensions=tale */,
+ { 0, 309, 4926, 2, 8, UNI_TAMILSUP } /* intamilsup */,
+ { 0, 7011, 345, 24, 2, UNI_CCC__18 } /* canonicalcombiningclass=18 */,
+ { 0, 2324, 6487, 6, 23, UNI_ZNAMENNYMUSIC } /* block=znamennymusicalnotation */,
+ { 14, 2247, 0, 4, 0, UNI_HUNG } /* hung */,
+ { 0, 527, 0, 6, 0, UNI_RJNG } /* rejang */,
+ { 2313, 461, 940, 2, 2, UNI_CO } /* isco */,
+ { 0, 309, 6797, 2, 19, UNI_DEVANAGARIEXTA } /* indevanagariextendeda */,
+ { 2946, 2536, 1767, 3, 2, UNI_JG__FE } /* jg=fe */,
+ { 0, 1102, 3349, 4, 15, UNI_MERC } /* scx=meroiticcursive */,
+ { 0, 2280, 2360, 10, 10, UNI_IN__NA } /* presentin=unassigned */,
+ { 1, 3514, 4987, 7, 9, UNI_ALCHEMICAL } /* block=alchemical */,
+ { 0, 461, 5185, 2, 20, UNI_HLUW } /* isanatolianhieroglyphs */,
+ { 1196, 946, 1847, 5, 6, UNI_SUPERANDSUB } /* superandsub */,
+ { 2226, 7274, 6514, 9, 10, UNI_CO } /* category=privateuse */,
+ { 7, 3502, 5820, 5, 18, UNI_ENCLOSEDALPHANUMSUP } /* blk=enclosedalphanumsup */,
+ { 3164, 2523, 248, 8, 5, UNI_XPOSIXCNTRL } /* isxposixcntrl */,
+ { 0, 292, 2656, 3, 9, UNI_NV__1_SLASH_2 } /* nv=5.000e-01 */,
+ { 4234, 3832, 1805, 14, 4, UNI_NV__50000 } /* numericvalue=50000 */,
+ { 0, 7011, 388, 24, 2, UNI_CCC__26 } /* canonicalcombiningclass=26 */,
+ { 711, 1823, 1021, 7, 6, UNI_WCHO } /* script=wancho */,
+ { 2144, 5958, 0, 21, 0, UNI_SINHALAARCHAICNUMBERS } /* sinhalaarchaicnumbers */,
+ { 2, 461, 115, 2, 2, UNI_SK } /* issk */,
+ { 4297, 833, 599, 4, 2, -UNI_TERM } /* term=n */,
+ { 20, 1409, 0, 5, 0, UNI_LATN } /* latin */,
+ { 0, 375, 353, 5, 2, UNI_GREXT } /* grext=y */,
+ { 2, 8505, 406, 3, 2, UNI_NT__DI } /* nt=di */
};
-MPH_VALt match_uniprop( const unsigned char * const key, const U16 key_len ) {
+MPH_VALt
+match_uniprop( const unsigned char * const key, const U16 key_len ) {
const unsigned char * ptr= key;
const unsigned char * ptr_end= key + key_len;
U32 h= MPH_SEED1;
U32 s;
U32 n;
+ /* this is FNV-1a 32bit unrolled. */
do {
h ^= NATIVE_TO_LATIN1(*ptr); /* table collated in Latin1 */
- h *= MPH_FNV_CONST;
+ h *= MPH_FNV32_PRIME;
} while ( ++ptr < ptr_end );
n= h % MPH_BUCKETS;
s = mph_table[n].seed2;
@@ -7494,58 +7707,59 @@ MPH_VALt match_uniprop( const unsigned char * const key, const U16 key_len ) {
#endif /* #if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) */
/* Generated from:
- * d60b1a3dffe16c4aaaf3f00d21993bb320d05e9828b106182214764d4c69935c lib/Unicode/UCD.pm
- * ce96627d4fc91b4fd886c409caeb9b76cf7bd345e12f05c6701add7f233f6437 lib/unicore/ArabicShaping.txt
- * 0e69eef3da722cc104522d8372e86d5b86bb7afcc761b0c991e39e832294946d lib/unicore/BidiBrackets.txt
- * a00d9d21585106a52113fb7b1d3d0373a5835be72e76862fb559ebddd474d70e lib/unicore/BidiMirroring.txt
- * 81a82b6a9fcf1a9c12f588d7a1decd73a9afdc4cac95b0eb7e576e7942d6c19f lib/unicore/Blocks.txt
- * 99d231d7c91688bbe8ca8ccebcc2f46b5b222f844babe4827295bae11e2abe5f lib/unicore/CaseFolding.txt
- * 38badafd818d8405324fe298c0676be0c95186368c84b5368375fd871a645144 lib/unicore/CompositionExclusions.txt
- * e779a443d3aa2a3166a15becaa2b737c922480e32c0453d5956093633555078f lib/unicore/DAge.txt
- * a5d45f59b39deaab3c72ce8c1a2e212a5e086dff11b1f9d5bb0e352642e82248 lib/unicore/DCoreProperties.txt
- * 3ac44e11c84bdaf6b207d2c2c20eed857ae17052393fc7f71b0fe951186ba906 lib/unicore/DNormalizationProps.txt
- * 4f822ec7a9ebbb3138ad29bade8b9688d25b39c7a3c0b7431f01e7229e4fcb6e lib/unicore/EastAsianWidth.txt
- * fc535aa1047a70105ab9a22c2b4c3f363a2ff02fe48ebbc5eeb9873b2752ff0b lib/unicore/EquivalentUnifiedIdeograph.txt
- * b9c5158ce944d2fec57e0e4ecb716bdabfc3bdde73525f1772fe03f61a30d473 lib/unicore/HangulSyllableType.txt
- * 36c1b2a626ff1fb23b8b21e6ea8712698f8ce668dded1cb48b8ddf6a6a1b04e9 lib/unicore/IdStatus.txt
- * 4857c4ffa3898e6128b2d46b0a02e499a663fb91464a69ef3611096f01293acc lib/unicore/IdType.txt
- * 69197b019fa5f2fb0d8c6ed1ed8acb9f2e8b5b8f45a947953ffa652f3bf54983 lib/unicore/IndicPositionalCategory.txt
- * 6604e2f0fde7428675364aa0006bc686b79488dcc60ae8cb29800af2be3352e8 lib/unicore/IndicSyllabicCategory.txt
- * 84ead63924aaa74b988b2eaf254a8733276ed108633ce2ef77a9ee1de7818162 lib/unicore/Jamo.txt
- * d5abcd8f54c8a2aa912924c485ccf7f968ad98feaa303d8e9a29ad89172f1faf lib/unicore/LineBreak.txt
- * 985128e8c8b2540233331d9b27d897d2c23bd5bcf1d05da960befce6efc59542 lib/unicore/NameAliases.txt
- * 27282b8aa01d4d0c44aef436cb74195ae8639ffa187aeee4e6247af76febea76 lib/unicore/NamedSequences.txt
- * 485b5a3ed25dbf1f94dfa5a9b69d8b4550ffd0c33045ccc55ccfd7c80b2a40cf lib/unicore/PropList.txt
- * 6b3902e9268cd843fe65cbdea992108c9528343ec0679f800b96f356bb553e5a lib/unicore/PropValueAliases.txt
- * 2bd5777847e3d6add3c7e5c0d1393ddcab89e5a0ac3ff498cb0c53041f0b86e4 lib/unicore/PropertyAliases.txt
- * 03a61dc89422e44cc2b73e8e893321007880ab69e2a4d281c0f1bc29c602b9d0 lib/unicore/ScriptExtensions.txt
- * 9a5ed1ec9b5f0d7147e9371ad792ab39203611af7637cff2aa4a5c663b172cde lib/unicore/Scripts.txt
- * 6424312f1dc39b22e0ff9c0ffb13dfad424d9b03e6a6dc6bca941f6bf5ef1ffd lib/unicore/SpecialCasing.txt
- * bdbffbbfc8ad4d3a6d01b5891510458f3d36f7170422af4ea2bed3211a73e8bb lib/unicore/UnicodeData.txt
- * 160f41816234addb511901d5f21febd69574578dd93de6ef8153e35693325575 lib/unicore/VerticalOrientation.txt
- * 32dfb37d21db530529a6ec3dc13d96f21f8e7c7faf7ff3db8a9760cd76cec81d lib/unicore/auxiliary/GCBTest.txt
- * 2bd3c5e2d62701ff81fb3ec318e179a4618cabb1493b1e0dd2b4e7e56c5437c4 lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * c51fbebfa82a0f36473b44bfd71d5ef6cb6a1f81fb313375dc9a1910d79bb2b6 lib/unicore/auxiliary/LBTest.txt
- * 80b0107750818d8f370bd120b6fe56b6855b60581f72affe8b60409a469b4b65 lib/unicore/auxiliary/SBTest.txt
- * 09e3166ebab166ac630a227f77f4e794ebd433271abd5588f5a67e7f199c71ee lib/unicore/auxiliary/SentenceBreakProperty.txt
- * bf5373ce28a5df06796c93dc159dd15a997bb2950c92704b40ae8190cfc3716d lib/unicore/auxiliary/WBTest.txt
- * a2b7373cf2fe3fa3b26dbb53405ca849985f771ff47f1c61743978003ff80499 lib/unicore/auxiliary/WordBreakProperty.txt
- * d2686f400a638c80775d7c662556fb8fa8dd3bbe4aa548d9d31624264c6e1bb1 lib/unicore/emoji/emoji.txt
- * b827ae5da8c2b08947cc9a120a7b7fd2f1676fb160b508df78075381635b127c lib/unicore/extracted/DBidiClass.txt
- * 6fdc5b5ef40444a8f0c772e6b67c00498d4216fe0c0fdf76744ce338f2ad3810 lib/unicore/extracted/DBinaryProperties.txt
- * e14928a5bf6ad5958a80332bd42e96e14420080a95c660e5da29384e496755d0 lib/unicore/extracted/DCombiningClass.txt
- * 579a03281fbe87b78d5d9a8523de4d255edd7e4ca6eab0e4c7729de97e9b89b1 lib/unicore/extracted/DDecompositionType.txt
- * ad83c59b257e9d480ffd3001d4ac240c5fed7cb1919453e1c4e8877035256bcd lib/unicore/extracted/DEastAsianWidth.txt
- * 4502f0969e4e6558c4b4c6ca4c23dad70b863d61dd3d5eed1a62a6c3c99fd570 lib/unicore/extracted/DGeneralCategory.txt
- * 00bb88b89e2adb646f3177f9444e2d3192386b81a5de9556104b338274b253e1 lib/unicore/extracted/DJoinGroup.txt
- * ac835b6e11a60c9820d3cf2d1cb0558dd68efb8f53f404a51632e4726690a6d7 lib/unicore/extracted/DJoinType.txt
- * baba9dfc133e3cb770a89aaf0973b1341fa61c2da6c176baf6428898b3b568d8 lib/unicore/extracted/DLineBreak.txt
- * 6d4a8c945dd7db83ed617cbb7d937de7f4ecf016ff22970d846e996a7c9a2a5d lib/unicore/extracted/DNumType.txt
- * 5b7c14380d5cceeaffcfbc18db1ed936391d2af2d51f5a41f1a17b692c77e59b lib/unicore/extracted/DNumValues.txt
- * 28076ceb3f4e2514ea9db243f4b918b9a7c2807b036237e2276b99b2659d9474 lib/unicore/mktables
- * 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version
- * 24120d5e0c9685c442c93bc1dbea9b85ef973bf8e9474baf0e55b160c288226b regen/charset_translations.pl
- * 9f74e34278592ddf58fef8c32236b294e94ea5e12627f911f4563e8040a07292 regen/mk_PL_charclass.pl
- * 5eb9e6c825496cc9aa705e3cd33bc6d5a9657dcca16d4c4acc4824ff30b34a26 regen/mk_invlists.pl
- * cf1d68efb7d919d302c4005641eae8d36da6d7850816ad374b0c00b45e609f43 regen/mph.pl
- * ex: set ro: */
+ * 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
+ * eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+ * 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+ * b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+ * 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+ * cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+ * 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+ * 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+ * d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+ * d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+ * 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+ * f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+ * 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+ * 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+ * 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+ * 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+ * ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+ * 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+ * 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+ * 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+ * 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+ * fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+ * e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+ * 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+ * e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+ * 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+ * cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+ * 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+ * 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+ * ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+ * 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+ * 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+ * f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+ * 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+ * 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+ * 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+ * f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+ * ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+ * db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+ * d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+ * fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+ * e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+ * c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+ * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+ * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+ * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+ * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
+ * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
+ * c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl
+ * cdbafee25193032242e77f2a6332b731d8392ce342fa616dbabc2c14c7b44eb6 regen/mk_invlists.pl
+ * d6987e01ad538d1567394851cf199f99815f7701bebd6092be4bc7a6d8f147c6 regen/mph.pl
+ * ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unicode_constants.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unicode_constants.h
index eea66f6ba4..07a02b300b 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unicode_constants.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unicode_constants.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
* This file is built by regen/unicode_constants.pl from Unicode data.
* Any changes made here will be lost!
@@ -45,7 +45,7 @@ bytes.
=cut
*/
-#define UNICODE_MAJOR_VERSION 13
+#define UNICODE_MAJOR_VERSION 15
#define UNICODE_DOT_VERSION 0
#define UNICODE_DOT_DOT_VERSION 0
@@ -89,9 +89,23 @@ bytes.
# define MICRO_SIGN_NATIVE 0xB5 /* U+00B5 */
# define MICRO_SIGN_UTF8 "\xC2\xB5" /* U+00B5 */
-# ifdef PERL_IN_REGCOMP_C
-# define MAX_PRINT_A 0x7E /* The max code point that isPRINT_A */
-# endif
+# ifdef PERL_IN_TOKE_C
+ /* Paired characters for quote-like operators, in UTF-8 */
+# define EXTRA_OPENING_UTF8_BRACKETS "\x28\x3C\x5B\x7B\xC2\xAB\xC2\xBB\xDC\x86\xE0\xBC\xBA\xE0\xBC\xBC\xE1\x9A\x9B\xE2\x80\x98\xE2\x80\x99\xE2\x80\x9C\xE2\x80\x9D\xE2\x80\xB5\xE2\x80\xB6\xE2\x80\xB7\xE2\x80\xB9\xE2\x80\xBA\xE2\x81\x85\xE2\x81\x8D\xE2\x81\xBD\xE2\x82\x8D\xE2\x86\x92\xE2\x86\x9B\xE2\x86\x9D\xE2\x86\xA0\xE2\x86\xA3\xE2\x86\xA6\xE2\x86\xAA\xE2\x86\xAC\xE2\x86\xB1\xE2\x86\xB3\xE2\x87\x80\xE2\x87\x81\xE2\x87\x89\xE2\x87\x8F\xE2\x87\x92\xE2\x87\x9B\xE2\x87\x9D\xE2\x87\xA2\xE2\x87\xA5\xE2\x87\xA8\xE2\x87\xB4\xE2\x87\xB6\xE2\x87\xB8\xE2\x87\xBB\xE2\x87\xBE\xE2\x88\x88\xE2\x88\x89\xE2\x88\x8A\xE2\x89\xA4\xE2\x89\xA6\xE2\x89\xA8\xE2\x89\xAA\xE2\x89\xAE\xE2\x89\xB0\xE2\x89\xB2\xE2\x89\xB4\xE2\x89\xBA\xE2\x89\xBC\xE2\x89\xBE\xE2\x8A\x80\xE2\x8A\x82\xE2\x8A\x84\xE2\x8A\x86\xE2\x8A\x88\xE2\x8A\x8A\xE2\x8A\xA3\xE2\x8A\xA6\xE2\x8A\xA8\xE2\x8A\xA9\xE2\x8A\xB0\xE2\x8B\x90\xE2\x8B\x96\xE2\x8B\x98\xE2\x8B\x9C\xE2\x8B\x9E\xE2\x8B\xA0\xE2\x8B\xA6\xE2\x8B\xA8\xE2\x8B\xB2\xE2\x8B\xB3\xE2\x8B\xB4\xE2\x8B\xB6\xE2\x8B\xB7\xE2\x8C\x88\xE2\x8C\x8A\xE2\x8C\xA6\xE2\x8C\xA9\xE2\x8D\x88\xE2\x8F\xA9\xE2\x8F\xAD\xE2\x98\x9B\xE2\x98\x9E\xE2\x9A\x9E\xE2\x9D\xA8\xE2\x9D\xAA\xE2\x9D\xAC\xE2\x9D\xAE\xE2\x9D\xB0\xE2\x9D\xB2\xE2\x9D\xB4\xE2\x9F\x83\xE2\x9F\x85\xE2\x9F\x88\xE2\x9F\x9E\xE2\x9F\xA6\xE2\x9F\xA8\xE2\x9F\xAA\xE2\x9F\xAC\xE2\x9F\xAE\xE2\x9F\xB4\xE2\x9F\xB6\xE2\x9F\xB9\xE2\x9F\xBC\xE2\x9F\xBE\xE2\x9F\xBF\xE2\xA4\x80\xE2\xA4\x81\xE2\xA4\x83\xE2\xA4\x85\xE2\xA4\x87\xE2\xA4\x8D\xE2\xA4\x8F\xE2\xA4\x90\xE2\xA4\x91\xE2\xA4\x94\xE2\xA4\x95\xE2\xA4\x96\xE2\xA4\x97\xE2\xA4\x98\xE2\xA4\x9A\xE2\xA4\x9C\xE2\xA4\x9E\xE2\xA4\xA0\xE2\xA4\xB3\xE2\xA4\xB7\xE2\xA5\x85\xE2\xA5\x87\xE2\xA5\x93\xE2\xA5\x97\xE2\xA5\x9B\xE2\xA5\x9F\xE2\xA5\xA4\xE2\xA5\xAC\xE2\xA5\xAD\xE2\xA5\xB1\xE2\xA5\xB2\xE2\xA5\xB4\xE2\xA5\xB5\xE2\xA5\xB9\xE2\xA6\x83\xE2\xA6\x85\xE2\xA6\x87\xE2\xA6\x89\xE2\xA6\x8B\xE2\xA6\x8D\xE2\xA6\x8F\xE2\xA6\x91\xE2\xA6\x93\xE2\xA6\x95\xE2\xA6\x97\xE2\xA6\xA8\xE2\xA6\xAA\xE2\xA6\xB3\xE2\xA7\x80\xE2\xA7\x98\xE2\xA7\x9A\xE2\xA7\xBC\xE2\xA9\xB9\xE2\xA9\xBB\xE2\xA9\xBD\xE2\xA9\xBF\xE2\xAA\x81\xE2\xAA\x83\xE2\xAA\x85\xE2\xAA\x87\xE2\xAA\x89\xE2\xAA\x8D\xE2\xAA\x95\xE2\xAA\x97\xE2\xAA\x99\xE2\xAA\x9B\xE2\xAA\x9D\xE2\xAA\x9F\xE2\xAA\xA1\xE2\xAA\xA6\xE2\xAA\xA8\xE2\xAA\xAA\xE2\xAA\xAC\xE2\xAA\xAF\xE2\xAA\xB1\xE2\xAA\xB3\xE2\xAA\xB5\xE2\xAA\xB7\xE2\xAA\xB9\xE2\xAA\xBB\xE2\xAA\xBD\xE2\xAA\xBF\xE2\xAB\x81\xE2\xAB\x83\xE2\xAB\x85\xE2\xAB\x87\xE2\xAB\x89\xE2\xAB\x8B\xE2\xAB\x8F\xE2\xAB\x91\xE2\xAB\x95\xE2\xAB\xA5\xE2\xAB\xB7\xE2\xAB\xB9\xE2\xAD\x86\xE2\xAD\x87\xE2\xAD\x88\xE2\xAD\x8C\xE2\xAD\xA2\xE2\xAD\xAC\xE2\xAD\xB2\xE2\xAD\xBC\xE2\xAE\x86\xE2\xAE\x8A\xE2\xAE\x95\xE2\xAE\x9A\xE2\xAE\x9E\xE2\xAE\xA1\xE2\xAE\xA3\xE2\xAE\xA9\xE2\xAE\xAB\xE2\xAE\xB1\xE2\xAE\xB3\xE2\xAF\xAE\xE2\xB8\x82\xE2\xB8\x83\xE2\xB8\x84\xE2\xB8\x85\xE2\xB8\x89\xE2\xB8\x8A\xE2\xB8\x8C\xE2\xB8\x8D\xE2\xB8\x91\xE2\xB8\x9C\xE2\xB8\x9D\xE2\xB8\xA0\xE2\xB8\xA1\xE2\xB8\xA2\xE2\xB8\xA4\xE2\xB8\xA6\xE2\xB8\xA8\xE2\xB8\xB6\xE2\xB9\x82\xE2\xB9\x95\xE2\xB9\x97\xE2\xB9\x99\xE2\xB9\x9B\xE3\x80\x88\xE3\x80\x8A\xE3\x80\x8C\xE3\x80\x8E\xE3\x80\x90\xE3\x80\x94\xE3\x80\x96\xE3\x80\x98\xE3\x80\x9A\xE3\x80\x9D\xEA\xA7\x81\xEF\xB4\xBE\xEF\xB9\x99\xEF\xB9\x9B\xEF\xB9\x9D\xEF\xB9\xA4\xEF\xBC\x88\xEF\xBC\x9C\xEF\xBC\xBB\xEF\xBD\x9B\xEF\xBD\x9F\xEF\xBD\xA2\xEF\xBF\xAB\xF0\x9D\x84\x83\xF0\x9D\x84\x86\xF0\x9F\x91\x89\xF0\x9F\x94\x88\xF0\x9F\x94\x89\xF0\x9F\x94\x8A\xF0\x9F\x95\xBB\xF0\x9F\x96\x99\xF0\x9F\x96\x9B\xF0\x9F\x96\x9D\xF0\x9F\x97\xA6\xF0\x9F\xA0\x82\xF0\x9F\xA0\x86\xF0\x9F\xA0\x8A\xF0\x9F\xA0\x92\xF0\x9F\xA0\x96\xF0\x9F\xA0\x9A\xF0\x9F\xA0\x9E\xF0\x9F\xA0\xA2\xF0\x9F\xA0\xA6\xF0\x9F\xA0\xAA\xF0\x9F\xA0\xAE\xF0\x9F\xA0\xB2\xF0\x9F\xA0\xB6\xF0\x9F\xA0\xBA\xF0\x9F\xA0\xBE\xF0\x9F\xA1\x82\xF0\x9F\xA1\x86\xF0\x9F\xA1\x92\xF0\x9F\xA1\xA2\xF0\x9F\xA1\xAA\xF0\x9F\xA1\xB2\xF0\x9F\xA1\xBA\xF0\x9F\xA2\x82\xF0\x9F\xA2\x92\xF0\x9F\xA2\x96\xF0\x9F\xA2\x9A\xF0\x9F\xA2\xA1\xF0\x9F\xA2\xA3\xF0\x9F\xA2\xA5\xF0\x9F\xA2\xA7\xF0\x9F\xA2\xA9\xF0\x9F\xA2\xAB"
+# define EXTRA_CLOSING_UTF8_BRACKETS "\x29\x3E\x5D\x7D\xC2\xBB\xC2\xAB\xDC\x87\xE0\xBC\xBB\xE0\xBC\xBD\xE1\x9A\x9C\xE2\x80\x99\xE2\x80\x98\xE2\x80\x9D\xE2\x80\x9C\xE2\x80\xB2\xE2\x80\xB3\xE2\x80\xB4\xE2\x80\xBA\xE2\x80\xB9\xE2\x81\x86\xE2\x81\x8C\xE2\x81\xBE\xE2\x82\x8E\xE2\x86\x90\xE2\x86\x9A\xE2\x86\x9C\xE2\x86\x9E\xE2\x86\xA2\xE2\x86\xA4\xE2\x86\xA9\xE2\x86\xAB\xE2\x86\xB0\xE2\x86\xB2\xE2\x86\xBC\xE2\x86\xBD\xE2\x87\x87\xE2\x87\x8D\xE2\x87\x90\xE2\x87\x9A\xE2\x87\x9C\xE2\x87\xA0\xE2\x87\xA4\xE2\x87\xA6\xE2\xAC\xB0\xE2\xAC\xB1\xE2\x87\xB7\xE2\x87\xBA\xE2\x87\xBD\xE2\x88\x8B\xE2\x88\x8C\xE2\x88\x8D\xE2\x89\xA5\xE2\x89\xA7\xE2\x89\xA9\xE2\x89\xAB\xE2\x89\xAF\xE2\x89\xB1\xE2\x89\xB3\xE2\x89\xB5\xE2\x89\xBB\xE2\x89\xBD\xE2\x89\xBF\xE2\x8A\x81\xE2\x8A\x83\xE2\x8A\x85\xE2\x8A\x87\xE2\x8A\x89\xE2\x8A\x8B\xE2\x8A\xA2\xE2\xAB\x9E\xE2\xAB\xA4\xE2\xAB\xA3\xE2\x8A\xB1\xE2\x8B\x91\xE2\x8B\x97\xE2\x8B\x99\xE2\x8B\x9D\xE2\x8B\x9F\xE2\x8B\xA1\xE2\x8B\xA7\xE2\x8B\xA9\xE2\x8B\xBA\xE2\x8B\xBB\xE2\x8B\xBC\xE2\x8B\xBD\xE2\x8B\xBE\xE2\x8C\x89\xE2\x8C\x8B\xE2\x8C\xAB\xE2\x8C\xAA\xE2\x8D\x87\xE2\x8F\xAA\xE2\x8F\xAE\xE2\x98\x9A\xE2\x98\x9C\xE2\x9A\x9F\xE2\x9D\xA9\xE2\x9D\xAB\xE2\x9D\xAD\xE2\x9D\xAF\xE2\x9D\xB1\xE2\x9D\xB3\xE2\x9D\xB5\xE2\x9F\x84\xE2\x9F\x86\xE2\x9F\x89\xE2\x9F\x9D\xE2\x9F\xA7\xE2\x9F\xA9\xE2\x9F\xAB\xE2\x9F\xAD\xE2\x9F\xAF\xE2\xAC\xB2\xE2\x9F\xB5\xE2\x9F\xB8\xE2\x9F\xBB\xE2\x9F\xBD\xE2\xAC\xB3\xE2\xAC\xB4\xE2\xAC\xB5\xE2\xA4\x82\xE2\xAC\xB6\xE2\xA4\x86\xE2\xA4\x8C\xE2\xA4\x8E\xE2\xAC\xB7\xE2\xAC\xB8\xE2\xAC\xB9\xE2\xAC\xBA\xE2\xAC\xBB\xE2\xAC\xBC\xE2\xAC\xBD\xE2\xA4\x99\xE2\xA4\x9B\xE2\xA4\x9D\xE2\xA4\x9F\xE2\xAC\xBF\xE2\xA4\xB6\xE2\xA5\x86\xE2\xAC\xBE\xE2\xA5\x92\xE2\xA5\x96\xE2\xA5\x9A\xE2\xA5\x9E\xE2\xA5\xA2\xE2\xA5\xAA\xE2\xA5\xAB\xE2\xAD\x80\xE2\xAD\x81\xE2\xAD\x8B\xE2\xAD\x82\xE2\xA5\xBB\xE2\xA6\x84\xE2\xA6\x86\xE2\xA6\x88\xE2\xA6\x8A\xE2\xA6\x8C\xE2\xA6\x90\xE2\xA6\x8E\xE2\xA6\x92\xE2\xA6\x94\xE2\xA6\x96\xE2\xA6\x98\xE2\xA6\xA9\xE2\xA6\xAB\xE2\xA6\xB4\xE2\xA7\x81\xE2\xA7\x99\xE2\xA7\x9B\xE2\xA7\xBD\xE2\xA9\xBA\xE2\xA9\xBC\xE2\xA9\xBE\xE2\xAA\x80\xE2\xAA\x82\xE2\xAA\x84\xE2\xAA\x86\xE2\xAA\x88\xE2\xAA\x8A\xE2\xAA\x8E\xE2\xAA\x96\xE2\xAA\x98\xE2\xAA\x9A\xE2\xAA\x9C\xE2\xAA\x9E\xE2\xAA\xA0\xE2\xAA\xA2\xE2\xAA\xA7\xE2\xAA\xA9\xE2\xAA\xAB\xE2\xAA\xAD\xE2\xAA\xB0\xE2\xAA\xB2\xE2\xAA\xB4\xE2\xAA\xB6\xE2\xAA\xB8\xE2\xAA\xBA\xE2\xAA\xBC\xE2\xAA\xBE\xE2\xAB\x80\xE2\xAB\x82\xE2\xAB\x84\xE2\xAB\x86\xE2\xAB\x88\xE2\xAB\x8A\xE2\xAB\x8C\xE2\xAB\x90\xE2\xAB\x92\xE2\xAB\x96\xE2\x8A\xAB\xE2\xAB\xB8\xE2\xAB\xBA\xE2\xAD\x85\xE2\xAD\x89\xE2\xAD\x8A\xE2\xA5\xB3\xE2\xAD\xA0\xE2\xAD\xAA\xE2\xAD\xB0\xE2\xAD\xBA\xE2\xAE\x84\xE2\xAE\x88\xE2\xAC\x85\xE2\xAE\x98\xE2\xAE\x9C\xE2\xAE\xA0\xE2\xAE\xA2\xE2\xAE\xA8\xE2\xAE\xAA\xE2\xAE\xB0\xE2\xAE\xB2\xE2\xAF\xAC\xE2\xB8\x83\xE2\xB8\x82\xE2\xB8\x85\xE2\xB8\x84\xE2\xB8\x8A\xE2\xB8\x89\xE2\xB8\x8D\xE2\xB8\x8C\xE2\xB8\x90\xE2\xB8\x9D\xE2\xB8\x9C\xE2\xB8\xA1\xE2\xB8\xA0\xE2\xB8\xA3\xE2\xB8\xA5\xE2\xB8\xA7\xE2\xB8\xA9\xE2\xB8\xB7\xE2\x80\x9E\xE2\xB9\x96\xE2\xB9\x98\xE2\xB9\x9A\xE2\xB9\x9C\xE3\x80\x89\xE3\x80\x8B\xE3\x80\x8D\xE3\x80\x8F\xE3\x80\x91\xE3\x80\x95\xE3\x80\x97\xE3\x80\x99\xE3\x80\x9B\xE3\x80\x9E\xEA\xA7\x82\xEF\xB4\xBF\xEF\xB9\x9A\xEF\xB9\x9C\xEF\xB9\x9E\xEF\xB9\xA5\xEF\xBC\x89\xEF\xBC\x9E\xEF\xBC\xBD\xEF\xBD\x9D\xEF\xBD\xA0\xEF\xBD\xA3\xEF\xBF\xA9\xF0\x9D\x84\x82\xF0\x9D\x84\x87\xF0\x9F\x91\x88\xF0\x9F\x95\xA8\xF0\x9F\x95\xA9\xF0\x9F\x95\xAA\xF0\x9F\x95\xBD\xF0\x9F\x96\x98\xF0\x9F\x96\x9A\xF0\x9F\x96\x9C\xF0\x9F\x97\xA7\xF0\x9F\xA0\x80\xF0\x9F\xA0\x84\xF0\x9F\xA0\x88\xF0\x9F\xA0\x90\xF0\x9F\xA0\x94\xF0\x9F\xA0\x98\xF0\x9F\xA0\x9C\xF0\x9F\xA0\xA0\xF0\x9F\xA0\xA4\xF0\x9F\xA0\xA8\xF0\x9F\xA0\xAC\xF0\x9F\xA0\xB0\xF0\x9F\xA0\xB4\xF0\x9F\xA0\xB8\xF0\x9F\xA0\xBC\xF0\x9F\xA1\x80\xF0\x9F\xA1\x84\xF0\x9F\xA1\x90\xF0\x9F\xA1\xA0\xF0\x9F\xA1\xA8\xF0\x9F\xA1\xB0\xF0\x9F\xA1\xB8\xF0\x9F\xA2\x80\xF0\x9F\xA2\x90\xF0\x9F\xA2\x94\xF0\x9F\xA2\x98\xF0\x9F\xA2\xA0\xF0\x9F\xA2\xA2\xF0\x9F\xA2\xA6\xF0\x9F\xA2\xA4\xF0\x9F\xA2\xA8\xF0\x9F\xA2\xAA"
+
+ /* And not in UTF-8 */
+# define EXTRA_OPENING_NON_UTF8_BRACKETS "\x28\x3C\x5B\x7B\xAB\xBB"
+# define EXTRA_CLOSING_NON_UTF8_BRACKETS "\x29\x3E\x5D\x7D\xBB\xAB"
+
+ /* And what's deprecated */
+# define DEPRECATED_OPENING_UTF8_BRACKETS "\xC2\xAB\xC2\xBB\xC2\xBB\xDC\x86\xDC\x87\xE0\xBC\xBA\xE0\xBC\xBB\xE0\xBC\xBC\xE0\xBC\xBD\xE1\x9A\x9B\xE1\x9A\x9C\xE2\x80\x98\xE2\x80\x99\xE2\x80\x99\xE2\x80\x9C\xE2\x80\x9D\xE2\x80\x9D\xE2\x80\xB5\xE2\x80\xB2\xE2\x80\xB6\xE2\x80\xB3\xE2\x80\xB7\xE2\x80\xB4\xE2\x80\xB9\xE2\x80\xBA\xE2\x80\xBA\xE2\x81\x85\xE2\x81\x86\xE2\x81\x8D\xE2\x81\x8C\xE2\x81\xBD\xE2\x81\xBE\xE2\x82\x8D\xE2\x82\x8E\xE2\x86\x92\xE2\x86\x90\xE2\x86\x9B\xE2\x86\x9A\xE2\x86\x9D\xE2\x86\x9C\xE2\x86\xA0\xE2\x86\x9E\xE2\x86\xA3\xE2\x86\xA2\xE2\x86\xA6\xE2\x86\xA4\xE2\x86\xAA\xE2\x86\xA9\xE2\x86\xAC\xE2\x86\xAB\xE2\x86\xB1\xE2\x86\xB0\xE2\x86\xB3\xE2\x86\xB2\xE2\x87\x80\xE2\x86\xBC\xE2\x87\x81\xE2\x86\xBD\xE2\x87\x89\xE2\x87\x87\xE2\x87\x8F\xE2\x87\x8D\xE2\x87\x92\xE2\x87\x90\xE2\x87\x9B\xE2\x87\x9A\xE2\x87\x9D\xE2\x87\x9C\xE2\x87\xA2\xE2\x87\xA0\xE2\x87\xA5\xE2\x87\xA4\xE2\x87\xA8\xE2\x87\xA6\xE2\x87\xB4\xE2\xAC\xB0\xE2\x87\xB6\xE2\xAC\xB1\xE2\x87\xB8\xE2\x87\xB7\xE2\x87\xBB\xE2\x87\xBA\xE2\x87\xBE\xE2\x87\xBD\xE2\x88\x88\xE2\x88\x8B\xE2\x88\x89\xE2\x88\x8C\xE2\x88\x8A\xE2\x88\x8D\xE2\x89\xA4\xE2\x89\xA5\xE2\x89\xA6\xE2\x89\xA7\xE2\x89\xA8\xE2\x89\xA9\xE2\x89\xAA\xE2\x89\xAB\xE2\x89\xAE\xE2\x89\xAF\xE2\x89\xB0\xE2\x89\xB1\xE2\x89\xB2\xE2\x89\xB3\xE2\x89\xB4\xE2\x89\xB5\xE2\x89\xBA\xE2\x89\xBB\xE2\x89\xBC\xE2\x89\xBD\xE2\x89\xBE\xE2\x89\xBF\xE2\x8A\x80\xE2\x8A\x81\xE2\x8A\x82\xE2\x8A\x83\xE2\x8A\x84\xE2\x8A\x85\xE2\x8A\x86\xE2\x8A\x87\xE2\x8A\x88\xE2\x8A\x89\xE2\x8A\x8A\xE2\x8A\x8B\xE2\x8A\xA3\xE2\x8A\xA2\xE2\x8A\xA6\xE2\xAB\x9E\xE2\x8A\xA8\xE2\xAB\xA4\xE2\x8A\xA9\xE2\xAB\xA3\xE2\x8A\xB0\xE2\x8A\xB1\xE2\x8B\x90\xE2\x8B\x91\xE2\x8B\x96\xE2\x8B\x97\xE2\x8B\x98\xE2\x8B\x99\xE2\x8B\x9C\xE2\x8B\x9D\xE2\x8B\x9E\xE2\x8B\x9F\xE2\x8B\xA0\xE2\x8B\xA1\xE2\x8B\xA6\xE2\x8B\xA7\xE2\x8B\xA8\xE2\x8B\xA9\xE2\x8B\xB2\xE2\x8B\xBA\xE2\x8B\xB3\xE2\x8B\xBB\xE2\x8B\xB4\xE2\x8B\xBC\xE2\x8B\xB6\xE2\x8B\xBD\xE2\x8B\xB7\xE2\x8B\xBE\xE2\x8C\x88\xE2\x8C\x89\xE2\x8C\x8A\xE2\x8C\x8B\xE2\x8C\xA6\xE2\x8C\xAB\xE2\x8C\xA9\xE2\x8C\xAA\xE2\x8D\x88\xE2\x8D\x87\xE2\x8F\xA9\xE2\x8F\xAA\xE2\x8F\xAD\xE2\x8F\xAE\xE2\x98\x9B\xE2\x98\x9A\xE2\x98\x9E\xE2\x98\x9C\xE2\x9A\x9E\xE2\x9A\x9F\xE2\x9D\xA8\xE2\x9D\xA9\xE2\x9D\xAA\xE2\x9D\xAB\xE2\x9D\xAC\xE2\x9D\xAD\xE2\x9D\xAE\xE2\x9D\xAF\xE2\x9D\xB0\xE2\x9D\xB1\xE2\x9D\xB2\xE2\x9D\xB3\xE2\x9D\xB4\xE2\x9D\xB5\xE2\x9F\x83\xE2\x9F\x84\xE2\x9F\x85\xE2\x9F\x86\xE2\x9F\x88\xE2\x9F\x89\xE2\x9F\x9E\xE2\x9F\x9D\xE2\x9F\xA6\xE2\x9F\xA7\xE2\x9F\xA8\xE2\x9F\xA9\xE2\x9F\xAA\xE2\x9F\xAB\xE2\x9F\xAC\xE2\x9F\xAD\xE2\x9F\xAE\xE2\x9F\xAF\xE2\x9F\xB4\xE2\xAC\xB2\xE2\x9F\xB6\xE2\x9F\xB5\xE2\x9F\xB9\xE2\x9F\xB8\xE2\x9F\xBC\xE2\x9F\xBB\xE2\x9F\xBE\xE2\x9F\xBD\xE2\x9F\xBF\xE2\xAC\xB3\xE2\xA4\x80\xE2\xAC\xB4\xE2\xA4\x81\xE2\xAC\xB5\xE2\xA4\x83\xE2\xA4\x82\xE2\xA4\x85\xE2\xAC\xB6\xE2\xA4\x87\xE2\xA4\x86\xE2\xA4\x8D\xE2\xA4\x8C\xE2\xA4\x8F\xE2\xA4\x8E\xE2\xA4\x90\xE2\xAC\xB7\xE2\xA4\x91\xE2\xAC\xB8\xE2\xA4\x94\xE2\xAC\xB9\xE2\xA4\x95\xE2\xAC\xBA\xE2\xA4\x96\xE2\xAC\xBB\xE2\xA4\x97\xE2\xAC\xBC\xE2\xA4\x98\xE2\xAC\xBD\xE2\xA4\x9A\xE2\xA4\x99\xE2\xA4\x9C\xE2\xA4\x9B\xE2\xA4\x9E\xE2\xA4\x9D\xE2\xA4\xA0\xE2\xA4\x9F\xE2\xA4\xB3\xE2\xAC\xBF\xE2\xA4\xB7\xE2\xA4\xB6\xE2\xA5\x85\xE2\xA5\x86\xE2\xA5\x87\xE2\xAC\xBE\xE2\xA5\x93\xE2\xA5\x92\xE2\xA5\x97\xE2\xA5\x96\xE2\xA5\x9B\xE2\xA5\x9A\xE2\xA5\x9F\xE2\xA5\x9E\xE2\xA5\xA4\xE2\xA5\xA2\xE2\xA5\xAC\xE2\xA5\xAA\xE2\xA5\xAD\xE2\xA5\xAB\xE2\xA5\xB1\xE2\xAD\x80\xE2\xA5\xB2\xE2\xAD\x81\xE2\xA5\xB4\xE2\xAD\x8B\xE2\xA5\xB5\xE2\xAD\x82\xE2\xA5\xB9\xE2\xA5\xBB\xE2\xA6\x83\xE2\xA6\x84\xE2\xA6\x85\xE2\xA6\x86\xE2\xA6\x87\xE2\xA6\x88\xE2\xA6\x89\xE2\xA6\x8A\xE2\xA6\x8B\xE2\xA6\x8C\xE2\xA6\x8D\xE2\xA6\x90\xE2\xA6\x8F\xE2\xA6\x8E\xE2\xA6\x91\xE2\xA6\x92\xE2\xA6\x93\xE2\xA6\x94\xE2\xA6\x95\xE2\xA6\x96\xE2\xA6\x97\xE2\xA6\x98\xE2\xA6\xA8\xE2\xA6\xA9\xE2\xA6\xAA\xE2\xA6\xAB\xE2\xA6\xB3\xE2\xA6\xB4\xE2\xA7\x80\xE2\xA7\x81\xE2\xA7\x98\xE2\xA7\x99\xE2\xA7\x9A\xE2\xA7\x9B\xE2\xA7\xBC\xE2\xA7\xBD\xE2\xA9\xB9\xE2\xA9\xBA\xE2\xA9\xBB\xE2\xA9\xBC\xE2\xA9\xBD\xE2\xA9\xBE\xE2\xA9\xBF\xE2\xAA\x80\xE2\xAA\x81\xE2\xAA\x82\xE2\xAA\x83\xE2\xAA\x84\xE2\xAA\x85\xE2\xAA\x86\xE2\xAA\x87\xE2\xAA\x88\xE2\xAA\x89\xE2\xAA\x8A\xE2\xAA\x8D\xE2\xAA\x8E\xE2\xAA\x95\xE2\xAA\x96\xE2\xAA\x97\xE2\xAA\x98\xE2\xAA\x99\xE2\xAA\x9A\xE2\xAA\x9B\xE2\xAA\x9C\xE2\xAA\x9D\xE2\xAA\x9E\xE2\xAA\x9F\xE2\xAA\xA0\xE2\xAA\xA1\xE2\xAA\xA2\xE2\xAA\xA6\xE2\xAA\xA7\xE2\xAA\xA8\xE2\xAA\xA9\xE2\xAA\xAA\xE2\xAA\xAB\xE2\xAA\xAC\xE2\xAA\xAD\xE2\xAA\xAF\xE2\xAA\xB0\xE2\xAA\xB1\xE2\xAA\xB2\xE2\xAA\xB3\xE2\xAA\xB4\xE2\xAA\xB5\xE2\xAA\xB6\xE2\xAA\xB7\xE2\xAA\xB8\xE2\xAA\xB9\xE2\xAA\xBA\xE2\xAA\xBB\xE2\xAA\xBC\xE2\xAA\xBD\xE2\xAA\xBE\xE2\xAA\xBF\xE2\xAB\x80\xE2\xAB\x81\xE2\xAB\x82\xE2\xAB\x83\xE2\xAB\x84\xE2\xAB\x85\xE2\xAB\x86\xE2\xAB\x87\xE2\xAB\x88\xE2\xAB\x89\xE2\xAB\x8A\xE2\xAB\x8B\xE2\xAB\x8C\xE2\xAB\x8F\xE2\xAB\x90\xE2\xAB\x91\xE2\xAB\x92\xE2\xAB\x95\xE2\xAB\x96\xE2\xAB\xA5\xE2\x8A\xAB\xE2\xAB\xB7\xE2\xAB\xB8\xE2\xAB\xB9\xE2\xAB\xBA\xE2\xAD\x86\xE2\xAD\x85\xE2\xAD\x87\xE2\xAD\x89\xE2\xAD\x88\xE2\xAD\x8A\xE2\xAD\x8C\xE2\xA5\xB3\xE2\xAD\xA2\xE2\xAD\xA0\xE2\xAD\xAC\xE2\xAD\xAA\xE2\xAD\xB2\xE2\xAD\xB0\xE2\xAD\xBC\xE2\xAD\xBA\xE2\xAE\x86\xE2\xAE\x84\xE2\xAE\x8A\xE2\xAE\x88\xE2\xAE\x95\xE2\xAC\x85\xE2\xAE\x9A\xE2\xAE\x98\xE2\xAE\x9E\xE2\xAE\x9C\xE2\xAE\xA1\xE2\xAE\xA0\xE2\xAE\xA3\xE2\xAE\xA2\xE2\xAE\xA9\xE2\xAE\xA8\xE2\xAE\xAB\xE2\xAE\xAA\xE2\xAE\xB1\xE2\xAE\xB0\xE2\xAE\xB3\xE2\xAE\xB2\xE2\xAF\xAE\xE2\xAF\xAC\xE2\xB8\x82\xE2\xB8\x83\xE2\xB8\x83\xE2\xB8\x84\xE2\xB8\x85\xE2\xB8\x85\xE2\xB8\x89\xE2\xB8\x8A\xE2\xB8\x8A\xE2\xB8\x8C\xE2\xB8\x8D\xE2\xB8\x8D\xE2\xB8\x91\xE2\xB8\x90\xE2\xB8\x9C\xE2\xB8\x9D\xE2\xB8\x9D\xE2\xB8\xA0\xE2\xB8\xA1\xE2\xB8\xA1\xE2\xB8\xA2\xE2\xB8\xA3\xE2\xB8\xA4\xE2\xB8\xA5\xE2\xB8\xA6\xE2\xB8\xA7\xE2\xB8\xA8\xE2\xB8\xA9\xE2\xB8\xB6\xE2\xB8\xB7\xE2\xB9\x82\xE2\x80\x9E\xE2\xB9\x95\xE2\xB9\x96\xE2\xB9\x97\xE2\xB9\x98\xE2\xB9\x99\xE2\xB9\x9A\xE2\xB9\x9B\xE2\xB9\x9C\xE3\x80\x88\xE3\x80\x89\xE3\x80\x8A\xE3\x80\x8B\xE3\x80\x8C\xE3\x80\x8D\xE3\x80\x8E\xE3\x80\x8F\xE3\x80\x90\xE3\x80\x91\xE3\x80\x94\xE3\x80\x95\xE3\x80\x96\xE3\x80\x97\xE3\x80\x98\xE3\x80\x99\xE3\x80\x9A\xE3\x80\x9B\xE3\x80\x9D\xE3\x80\x9E\xEA\xA7\x81\xEA\xA7\x82\xEF\xB4\xBE\xEF\xB4\xBF\xEF\xB9\x99\xEF\xB9\x9A\xEF\xB9\x9B\xEF\xB9\x9C\xEF\xB9\x9D\xEF\xB9\x9E\xEF\xB9\xA4\xEF\xB9\xA5\xEF\xBC\x88\xEF\xBC\x89\xEF\xBC\x9C\xEF\xBC\x9E\xEF\xBC\xBB\xEF\xBC\xBD\xEF\xBD\x9B\xEF\xBD\x9D\xEF\xBD\x9F\xEF\xBD\xA0\xEF\xBD\xA2\xEF\xBD\xA3\xEF\xBF\xAB\xEF\xBF\xA9\xF0\x9D\x84\x83\xF0\x9D\x84\x82\xF0\x9D\x84\x86\xF0\x9D\x84\x87\xF0\x9F\x91\x89\xF0\x9F\x91\x88\xF0\x9F\x94\x88\xF0\x9F\x95\xA8\xF0\x9F\x94\x89\xF0\x9F\x95\xA9\xF0\x9F\x94\x8A\xF0\x9F\x95\xAA\xF0\x9F\x95\xBB\xF0\x9F\x95\xBD\xF0\x9F\x96\x99\xF0\x9F\x96\x98\xF0\x9F\x96\x9B\xF0\x9F\x96\x9A\xF0\x9F\x96\x9D\xF0\x9F\x96\x9C\xF0\x9F\x97\xA6\xF0\x9F\x97\xA7\xF0\x9F\xA0\x82\xF0\x9F\xA0\x80\xF0\x9F\xA0\x86\xF0\x9F\xA0\x84\xF0\x9F\xA0\x8A\xF0\x9F\xA0\x88\xF0\x9F\xA0\x92\xF0\x9F\xA0\x90\xF0\x9F\xA0\x96\xF0\x9F\xA0\x94\xF0\x9F\xA0\x9A\xF0\x9F\xA0\x98\xF0\x9F\xA0\x9E\xF0\x9F\xA0\x9C\xF0\x9F\xA0\xA2\xF0\x9F\xA0\xA0\xF0\x9F\xA0\xA6\xF0\x9F\xA0\xA4\xF0\x9F\xA0\xAA\xF0\x9F\xA0\xA8\xF0\x9F\xA0\xAE\xF0\x9F\xA0\xAC\xF0\x9F\xA0\xB2\xF0\x9F\xA0\xB0\xF0\x9F\xA0\xB6\xF0\x9F\xA0\xB4\xF0\x9F\xA0\xBA\xF0\x9F\xA0\xB8\xF0\x9F\xA0\xBE\xF0\x9F\xA0\xBC\xF0\x9F\xA1\x82\xF0\x9F\xA1\x80\xF0\x9F\xA1\x86\xF0\x9F\xA1\x84\xF0\x9F\xA1\x92\xF0\x9F\xA1\x90\xF0\x9F\xA1\xA2\xF0\x9F\xA1\xA0\xF0\x9F\xA1\xAA\xF0\x9F\xA1\xA8\xF0\x9F\xA1\xB2\xF0\x9F\xA1\xB0\xF0\x9F\xA1\xBA\xF0\x9F\xA1\xB8\xF0\x9F\xA2\x82\xF0\x9F\xA2\x80\xF0\x9F\xA2\x92\xF0\x9F\xA2\x90\xF0\x9F\xA2\x96\xF0\x9F\xA2\x94\xF0\x9F\xA2\x9A\xF0\x9F\xA2\x98\xF0\x9F\xA2\xA1\xF0\x9F\xA2\xA0\xF0\x9F\xA2\xA3\xF0\x9F\xA2\xA2\xF0\x9F\xA2\xA5\xF0\x9F\xA2\xA6\xF0\x9F\xA2\xA7\xF0\x9F\xA2\xA4\xF0\x9F\xA2\xA9\xF0\x9F\xA2\xA8\xF0\x9F\xA2\xAB\xF0\x9F\xA2\xAA"
+# define DEPRECATED_OPENING_NON_UTF8_BRACKETS "\xAB\xBB"
+# endif
+
+# ifdef PERL_IN_REGCOMP_ANY
+# define MAX_PRINT_A 0x7E /* The max code point that isPRINT_A */
+# endif
#endif /* ASCII/Latin1 */
#if 'A' == 193 /* EBCDIC 1047 */ \
@@ -136,9 +150,23 @@ bytes.
# define MICRO_SIGN_NATIVE 0xA0 /* U+00B5 */
# define MICRO_SIGN_UTF8 "\x80\x64" /* U+00B5 */
-# ifdef PERL_IN_REGCOMP_C
-# define MAX_PRINT_A 0xF9 /* The max code point that isPRINT_A */
-# endif
+# ifdef PERL_IN_TOKE_C
+ /* Paired characters for quote-like operators, in UTF-8 */
+# define EXTRA_OPENING_UTF8_BRACKETS "\x4D\x4C\xAD\xC0\x80\x52\x80\x6A\xB8\x67\x47\xBA\x68\x69\xBA\x68\x70\xBC\x63\x6A\xCA\x41\x67\xCA\x41\x68\xCA\x41\x70\xCA\x41\x71\xCA\x42\x64\xCA\x42\x65\xCA\x42\x66\xCA\x42\x68\xCA\x42\x69\xCA\x43\x46\xCA\x43\x54\xCA\x44\x71\xCA\x45\x54\xCA\x53\x59\xCA\x53\x6A\xCA\x53\x71\xCA\x54\x41\xCA\x54\x44\xCA\x54\x47\xCA\x54\x51\xCA\x54\x53\xCA\x54\x58\xCA\x54\x62\xCA\x55\x41\xCA\x55\x42\xCA\x55\x4A\xCA\x55\x56\xCA\x55\x59\xCA\x55\x6A\xCA\x55\x71\xCA\x56\x43\xCA\x56\x46\xCA\x56\x49\xCA\x56\x63\xCA\x56\x65\xCA\x56\x67\xCA\x56\x6A\xCA\x56\x72\xCA\x57\x49\xCA\x57\x4A\xCA\x57\x51\xCA\x62\x45\xCA\x62\x47\xCA\x62\x49\xCA\x62\x51\xCA\x62\x55\xCA\x62\x57\xCA\x62\x59\xCA\x62\x63\xCA\x62\x69\xCA\x62\x70\xCA\x62\x72\xCA\x63\x41\xCA\x63\x43\xCA\x63\x45\xCA\x63\x47\xCA\x63\x49\xCA\x63\x51\xCA\x64\x44\xCA\x64\x47\xCA\x64\x49\xCA\x64\x4A\xCA\x64\x57\xCA\x65\x57\xCA\x65\x65\xCA\x65\x67\xCA\x65\x70\xCA\x65\x72\xCA\x66\x41\xCA\x66\x47\xCA\x66\x49\xCA\x66\x59\xCA\x66\x62\xCA\x66\x63\xCA\x66\x65\xCA\x66\x66\xCA\x67\x49\xCA\x67\x51\xCA\x68\x47\xCA\x68\x4A\xCA\x69\x49\xCA\x73\x4A\xCA\x73\x54\xCB\x57\x6A\xCB\x57\x72\xCB\x63\x72\xCB\x6A\x49\xCB\x6A\x51\xCB\x6A\x53\xCB\x6A\x55\xCB\x6A\x57\xCB\x6A\x59\xCB\x6A\x63\xCB\x72\x44\xCB\x72\x46\xCB\x72\x49\xCB\x72\x72\xCB\x73\x47\xCB\x73\x49\xCB\x73\x51\xCB\x73\x53\xCB\x73\x55\xCB\x73\x63\xCB\x73\x65\xCB\x73\x68\xCB\x73\x70\xCB\x73\x72\xCB\x73\x73\xCC\x49\x41\xCC\x49\x42\xCC\x49\x44\xCC\x49\x46\xCC\x49\x48\xCC\x49\x54\xCC\x49\x56\xCC\x49\x57\xCC\x49\x58\xCC\x49\x63\xCC\x49\x64\xCC\x49\x65\xCC\x49\x66\xCC\x49\x67\xCC\x49\x69\xCC\x49\x70\xCC\x49\x72\xCC\x4A\x41\xCC\x4A\x62\xCC\x4A\x66\xCC\x51\x46\xCC\x51\x48\xCC\x51\x62\xCC\x51\x66\xCC\x51\x6A\xCC\x51\x73\xCC\x52\x45\xCC\x52\x53\xCC\x52\x54\xCC\x52\x58\xCC\x52\x59\xCC\x52\x63\xCC\x52\x64\xCC\x52\x68\xCC\x53\x44\xCC\x53\x46\xCC\x53\x48\xCC\x53\x4A\xCC\x53\x52\xCC\x53\x54\xCC\x53\x56\xCC\x53\x58\xCC\x53\x62\xCC\x53\x64\xCC\x53\x66\xCC\x54\x49\xCC\x54\x51\xCC\x54\x62\xCC\x55\x41\xCC\x55\x67\xCC\x55\x69\xCC\x56\x70\xCC\x62\x68\xCC\x62\x6A\xCC\x62\x71\xCC\x62\x73\xCC\x63\x42\xCC\x63\x44\xCC\x63\x46\xCC\x63\x48\xCC\x63\x4A\xCC\x63\x54\xCC\x63\x64\xCC\x63\x66\xCC\x63\x68\xCC\x63\x6A\xCC\x63\x71\xCC\x63\x73\xCC\x64\x42\xCC\x64\x47\xCC\x64\x49\xCC\x64\x51\xCC\x64\x53\xCC\x64\x56\xCC\x64\x58\xCC\x64\x62\xCC\x64\x64\xCC\x64\x66\xCC\x64\x68\xCC\x64\x6A\xCC\x64\x71\xCC\x64\x73\xCC\x65\x42\xCC\x65\x44\xCC\x65\x46\xCC\x65\x48\xCC\x65\x4A\xCC\x65\x52\xCC\x65\x56\xCC\x65\x58\xCC\x65\x64\xCC\x66\x46\xCC\x66\x66\xCC\x66\x68\xCC\x69\x47\xCC\x69\x48\xCC\x69\x49\xCC\x69\x53\xCC\x6A\x43\xCC\x6A\x53\xCC\x6A\x59\xCC\x6A\x70\xCC\x70\x47\xCC\x70\x51\xCC\x70\x64\xCC\x70\x69\xCC\x70\x72\xCC\x71\x42\xCC\x71\x44\xCC\x71\x4A\xCC\x71\x52\xCC\x71\x58\xCC\x71\x62\xCC\x73\x55\xCD\x57\x43\xCD\x57\x44\xCD\x57\x45\xCD\x57\x46\xCD\x57\x4A\xCD\x57\x51\xCD\x57\x53\xCD\x57\x54\xCD\x57\x58\xCD\x57\x70\xCD\x57\x71\xCD\x58\x41\xCD\x58\x42\xCD\x58\x43\xCD\x58\x45\xCD\x58\x47\xCD\x58\x49\xCD\x58\x65\xCD\x59\x43\xCD\x59\x64\xCD\x59\x66\xCD\x59\x68\xCD\x59\x6A\xCE\x41\x49\xCE\x41\x51\xCE\x41\x53\xCE\x41\x55\xCE\x41\x57\xCE\x41\x63\xCE\x41\x65\xCE\x41\x67\xCE\x41\x69\xCE\x41\x71\xDD\x51\x55\x42\xDD\x73\x4A\x72\xDD\x73\x59\x68\xDD\x73\x59\x6A\xDD\x73\x59\x71\xDD\x73\x62\x45\xDD\x73\x67\x49\xDD\x73\x67\x70\xDD\x73\x68\x6A\xDD\x73\x69\x6A\xDD\x73\x69\x73\xDD\x73\x6A\x43\xDD\x73\x73\x52\xDF\x63\x49\x44\xDF\x63\x49\x47\xDF\x71\x43\x4A\xDF\x71\x49\x49\xDF\x71\x49\x4A\xDF\x71\x49\x51\xDF\x71\x52\x6A\xDF\x71\x53\x68\xDF\x71\x53\x6A\xDF\x71\x53\x71\xDF\x71\x56\x47\xDF\x72\x41\x43\xDF\x72\x41\x47\xDF\x72\x41\x51\xDF\x72\x41\x59\xDF\x72\x41\x65\xDF\x72\x41\x69\xDF\x72\x41\x72\xDF\x72\x42\x43\xDF\x72\x42\x47\xDF\x72\x42\x51\xDF\x72\x42\x55\xDF\x72\x42\x59\xDF\x72\x42\x65\xDF\x72\x42\x69\xDF\x72\x42\x72\xDF\x72\x43\x43\xDF\x72\x43\x47\xDF\x72\x43\x59\xDF\x72\x44\x43\xDF\x72\x44\x51\xDF\x72\x44\x59\xDF\x72\x44\x69\xDF\x72\x45\x43\xDF\x72\x45\x59\xDF\x72\x45\x65\xDF\x72\x45\x69\xDF\x72\x46\x42\xDF\x72\x46\x44\xDF\x72\x46\x46\xDF\x72\x46\x48\xDF\x72\x46\x4A\xDF\x72\x46\x52"
+# define EXTRA_CLOSING_UTF8_BRACKETS "\x5D\x6E\xBD\xD0\x80\x6A\x80\x52\xB8\x67\x48\xBA\x68\x6A\xBA\x68\x71\xBC\x63\x70\xCA\x41\x68\xCA\x41\x67\xCA\x41\x71\xCA\x41\x70\xCA\x42\x59\xCA\x42\x62\xCA\x42\x63\xCA\x42\x69\xCA\x42\x68\xCA\x43\x47\xCA\x43\x53\xCA\x44\x72\xCA\x45\x55\xCA\x53\x57\xCA\x53\x69\xCA\x53\x70\xCA\x53\x72\xCA\x54\x43\xCA\x54\x45\xCA\x54\x4A\xCA\x54\x52\xCA\x54\x57\xCA\x54\x59\xCA\x54\x70\xCA\x54\x71\xCA\x55\x48\xCA\x55\x54\xCA\x55\x57\xCA\x55\x69\xCA\x55\x70\xCA\x56\x41\xCA\x56\x45\xCA\x56\x47\xCC\x68\x57\xCC\x68\x58\xCA\x56\x66\xCA\x56\x69\xCA\x56\x71\xCA\x57\x52\xCA\x57\x53\xCA\x57\x54\xCA\x62\x46\xCA\x62\x48\xCA\x62\x4A\xCA\x62\x52\xCA\x62\x56\xCA\x62\x58\xCA\x62\x62\xCA\x62\x64\xCA\x62\x6A\xCA\x62\x71\xCA\x62\x73\xCA\x63\x42\xCA\x63\x44\xCA\x63\x46\xCA\x63\x48\xCA\x63\x4A\xCA\x63\x52\xCA\x64\x43\xCC\x65\x72\xCC\x66\x45\xCC\x66\x44\xCA\x64\x58\xCA\x65\x58\xCA\x65\x66\xCA\x65\x68\xCA\x65\x71\xCA\x65\x73\xCA\x66\x42\xCA\x66\x48\xCA\x66\x4A\xCA\x66\x69\xCA\x66\x6A\xCA\x66\x70\xCA\x66\x71\xCA\x66\x72\xCA\x67\x4A\xCA\x67\x52\xCA\x68\x52\xCA\x68\x51\xCA\x69\x48\xCA\x73\x51\xCA\x73\x55\xCB\x57\x69\xCB\x57\x70\xCB\x63\x73\xCB\x6A\x4A\xCB\x6A\x52\xCB\x6A\x54\xCB\x6A\x56\xCB\x6A\x58\xCB\x6A\x62\xCB\x6A\x64\xCB\x72\x45\xCB\x72\x47\xCB\x72\x4A\xCB\x72\x71\xCB\x73\x48\xCB\x73\x4A\xCB\x73\x52\xCB\x73\x54\xCB\x73\x56\xCC\x68\x59\xCB\x73\x64\xCB\x73\x67\xCB\x73\x6A\xCB\x73\x71\xCC\x68\x62\xCC\x68\x63\xCC\x68\x64\xCC\x49\x43\xCC\x68\x65\xCC\x49\x47\xCC\x49\x53\xCC\x49\x55\xCC\x68\x66\xCC\x68\x67\xCC\x68\x68\xCC\x68\x69\xCC\x68\x6A\xCC\x68\x70\xCC\x68\x71\xCC\x49\x68\xCC\x49\x6A\xCC\x49\x71\xCC\x49\x73\xCC\x68\x73\xCC\x4A\x65\xCC\x51\x47\xCC\x68\x72\xCC\x51\x59\xCC\x51\x65\xCC\x51\x69\xCC\x51\x72\xCC\x52\x43\xCC\x52\x51\xCC\x52\x52\xCC\x69\x41\xCC\x69\x42\xCC\x69\x52\xCC\x69\x43\xCC\x52\x6A\xCC\x53\x45\xCC\x53\x47\xCC\x53\x49\xCC\x53\x51\xCC\x53\x53\xCC\x53\x57\xCC\x53\x55\xCC\x53\x59\xCC\x53\x63\xCC\x53\x65\xCC\x53\x67\xCC\x54\x4A\xCC\x54\x52\xCC\x54\x63\xCC\x55\x42\xCC\x55\x68\xCC\x55\x6A\xCC\x56\x71\xCC\x62\x69\xCC\x62\x70\xCC\x62\x72\xCC\x63\x41\xCC\x63\x43\xCC\x63\x45\xCC\x63\x47\xCC\x63\x49\xCC\x63\x51\xCC\x63\x55\xCC\x63\x65\xCC\x63\x67\xCC\x63\x69\xCC\x63\x70\xCC\x63\x72\xCC\x64\x41\xCC\x64\x43\xCC\x64\x48\xCC\x64\x4A\xCC\x64\x52\xCC\x64\x54\xCC\x64\x57\xCC\x64\x59\xCC\x64\x63\xCC\x64\x65\xCC\x64\x67\xCC\x64\x69\xCC\x64\x70\xCC\x64\x72\xCC\x65\x41\xCC\x65\x43\xCC\x65\x45\xCC\x65\x47\xCC\x65\x49\xCC\x65\x51\xCC\x65\x53\xCC\x65\x57\xCC\x65\x59\xCC\x65\x65\xCA\x64\x52\xCC\x66\x67\xCC\x66\x69\xCC\x69\x46\xCC\x69\x4A\xCC\x69\x51\xCC\x52\x62\xCC\x6A\x41\xCC\x6A\x51\xCC\x6A\x57\xCC\x6A\x69\xCC\x70\x45\xCC\x70\x49\xCC\x67\x46\xCC\x70\x67\xCC\x70\x70\xCC\x71\x41\xCC\x71\x43\xCC\x71\x49\xCC\x71\x51\xCC\x71\x57\xCC\x71\x59\xCC\x73\x53\xCD\x57\x44\xCD\x57\x43\xCD\x57\x46\xCD\x57\x45\xCD\x57\x51\xCD\x57\x4A\xCD\x57\x54\xCD\x57\x53\xCD\x57\x57\xCD\x57\x71\xCD\x57\x70\xCD\x58\x42\xCD\x58\x41\xCD\x58\x44\xCD\x58\x46\xCD\x58\x48\xCD\x58\x4A\xCD\x58\x66\xCA\x41\x72\xCD\x59\x65\xCD\x59\x67\xCD\x59\x69\xCD\x59\x70\xCE\x41\x4A\xCE\x41\x52\xCE\x41\x54\xCE\x41\x56\xCE\x41\x58\xCE\x41\x64\xCE\x41\x66\xCE\x41\x68\xCE\x41\x6A\xCE\x41\x72\xDD\x51\x55\x43\xDD\x73\x4A\x73\xDD\x73\x59\x69\xDD\x73\x59\x70\xDD\x73\x59\x72\xDD\x73\x62\x46\xDD\x73\x67\x4A\xDD\x73\x67\x72\xDD\x73\x68\x71\xDD\x73\x69\x71\xDD\x73\x6A\x41\xDD\x73\x6A\x44\xDD\x73\x73\x4A\xDF\x63\x49\x43\xDF\x63\x49\x48\xDF\x71\x43\x49\xDF\x71\x52\x49\xDF\x71\x52\x4A\xDF\x71\x52\x51\xDF\x71\x52\x71\xDF\x71\x53\x67\xDF\x71\x53\x69\xDF\x71\x53\x70\xDF\x71\x56\x48\xDF\x72\x41\x41\xDF\x72\x41\x45\xDF\x72\x41\x49\xDF\x72\x41\x57\xDF\x72\x41\x63\xDF\x72\x41\x67\xDF\x72\x41\x70\xDF\x72\x42\x41\xDF\x72\x42\x45\xDF\x72\x42\x49\xDF\x72\x42\x53\xDF\x72\x42\x57\xDF\x72\x42\x63\xDF\x72\x42\x67\xDF\x72\x42\x70\xDF\x72\x43\x41\xDF\x72\x43\x45\xDF\x72\x43\x57\xDF\x72\x44\x41\xDF\x72\x44\x49\xDF\x72\x44\x57\xDF\x72\x44\x67\xDF\x72\x45\x41\xDF\x72\x45\x57\xDF\x72\x45\x63\xDF\x72\x45\x67\xDF\x72\x46\x41\xDF\x72\x46\x43\xDF\x72\x46\x47\xDF\x72\x46\x45\xDF\x72\x46\x49\xDF\x72\x46\x51"
+
+ /* And not in UTF-8 */
+# define EXTRA_OPENING_NON_UTF8_BRACKETS "\x4D\x4C\xAD\xC0\x8A\x8B"
+# define EXTRA_CLOSING_NON_UTF8_BRACKETS "\x5D\x6E\xBD\xD0\x8B\x8A"
+
+ /* And what's deprecated */
+# define DEPRECATED_OPENING_UTF8_BRACKETS "\x80\x52\x80\x6A\x80\x6A\xB8\x67\x47\xB8\x67\x48\xBA\x68\x69\xBA\x68\x6A\xBA\x68\x70\xBA\x68\x71\xBC\x63\x6A\xBC\x63\x70\xCA\x41\x67\xCA\x41\x68\xCA\x41\x68\xCA\x41\x70\xCA\x41\x71\xCA\x41\x71\xCA\x42\x64\xCA\x42\x59\xCA\x42\x65\xCA\x42\x62\xCA\x42\x66\xCA\x42\x63\xCA\x42\x68\xCA\x42\x69\xCA\x42\x69\xCA\x43\x46\xCA\x43\x47\xCA\x43\x54\xCA\x43\x53\xCA\x44\x71\xCA\x44\x72\xCA\x45\x54\xCA\x45\x55\xCA\x53\x59\xCA\x53\x57\xCA\x53\x6A\xCA\x53\x69\xCA\x53\x71\xCA\x53\x70\xCA\x54\x41\xCA\x53\x72\xCA\x54\x44\xCA\x54\x43\xCA\x54\x47\xCA\x54\x45\xCA\x54\x51\xCA\x54\x4A\xCA\x54\x53\xCA\x54\x52\xCA\x54\x58\xCA\x54\x57\xCA\x54\x62\xCA\x54\x59\xCA\x55\x41\xCA\x54\x70\xCA\x55\x42\xCA\x54\x71\xCA\x55\x4A\xCA\x55\x48\xCA\x55\x56\xCA\x55\x54\xCA\x55\x59\xCA\x55\x57\xCA\x55\x6A\xCA\x55\x69\xCA\x55\x71\xCA\x55\x70\xCA\x56\x43\xCA\x56\x41\xCA\x56\x46\xCA\x56\x45\xCA\x56\x49\xCA\x56\x47\xCA\x56\x63\xCC\x68\x57\xCA\x56\x65\xCC\x68\x58\xCA\x56\x67\xCA\x56\x66\xCA\x56\x6A\xCA\x56\x69\xCA\x56\x72\xCA\x56\x71\xCA\x57\x49\xCA\x57\x52\xCA\x57\x4A\xCA\x57\x53\xCA\x57\x51\xCA\x57\x54\xCA\x62\x45\xCA\x62\x46\xCA\x62\x47\xCA\x62\x48\xCA\x62\x49\xCA\x62\x4A\xCA\x62\x51\xCA\x62\x52\xCA\x62\x55\xCA\x62\x56\xCA\x62\x57\xCA\x62\x58\xCA\x62\x59\xCA\x62\x62\xCA\x62\x63\xCA\x62\x64\xCA\x62\x69\xCA\x62\x6A\xCA\x62\x70\xCA\x62\x71\xCA\x62\x72\xCA\x62\x73\xCA\x63\x41\xCA\x63\x42\xCA\x63\x43\xCA\x63\x44\xCA\x63\x45\xCA\x63\x46\xCA\x63\x47\xCA\x63\x48\xCA\x63\x49\xCA\x63\x4A\xCA\x63\x51\xCA\x63\x52\xCA\x64\x44\xCA\x64\x43\xCA\x64\x47\xCC\x65\x72\xCA\x64\x49\xCC\x66\x45\xCA\x64\x4A\xCC\x66\x44\xCA\x64\x57\xCA\x64\x58\xCA\x65\x57\xCA\x65\x58\xCA\x65\x65\xCA\x65\x66\xCA\x65\x67\xCA\x65\x68\xCA\x65\x70\xCA\x65\x71\xCA\x65\x72\xCA\x65\x73\xCA\x66\x41\xCA\x66\x42\xCA\x66\x47\xCA\x66\x48\xCA\x66\x49\xCA\x66\x4A\xCA\x66\x59\xCA\x66\x69\xCA\x66\x62\xCA\x66\x6A\xCA\x66\x63\xCA\x66\x70\xCA\x66\x65\xCA\x66\x71\xCA\x66\x66\xCA\x66\x72\xCA\x67\x49\xCA\x67\x4A\xCA\x67\x51\xCA\x67\x52\xCA\x68\x47\xCA\x68\x52\xCA\x68\x4A\xCA\x68\x51\xCA\x69\x49\xCA\x69\x48\xCA\x73\x4A\xCA\x73\x51\xCA\x73\x54\xCA\x73\x55\xCB\x57\x6A\xCB\x57\x69\xCB\x57\x72\xCB\x57\x70\xCB\x63\x72\xCB\x63\x73\xCB\x6A\x49\xCB\x6A\x4A\xCB\x6A\x51\xCB\x6A\x52\xCB\x6A\x53\xCB\x6A\x54\xCB\x6A\x55\xCB\x6A\x56\xCB\x6A\x57\xCB\x6A\x58\xCB\x6A\x59\xCB\x6A\x62\xCB\x6A\x63\xCB\x6A\x64\xCB\x72\x44\xCB\x72\x45\xCB\x72\x46\xCB\x72\x47\xCB\x72\x49\xCB\x72\x4A\xCB\x72\x72\xCB\x72\x71\xCB\x73\x47\xCB\x73\x48\xCB\x73\x49\xCB\x73\x4A\xCB\x73\x51\xCB\x73\x52\xCB\x73\x53\xCB\x73\x54\xCB\x73\x55\xCB\x73\x56\xCB\x73\x63\xCC\x68\x59\xCB\x73\x65\xCB\x73\x64\xCB\x73\x68\xCB\x73\x67\xCB\x73\x70\xCB\x73\x6A\xCB\x73\x72\xCB\x73\x71\xCB\x73\x73\xCC\x68\x62\xCC\x49\x41\xCC\x68\x63\xCC\x49\x42\xCC\x68\x64\xCC\x49\x44\xCC\x49\x43\xCC\x49\x46\xCC\x68\x65\xCC\x49\x48\xCC\x49\x47\xCC\x49\x54\xCC\x49\x53\xCC\x49\x56\xCC\x49\x55\xCC\x49\x57\xCC\x68\x66\xCC\x49\x58\xCC\x68\x67\xCC\x49\x63\xCC\x68\x68\xCC\x49\x64\xCC\x68\x69\xCC\x49\x65\xCC\x68\x6A\xCC\x49\x66\xCC\x68\x70\xCC\x49\x67\xCC\x68\x71\xCC\x49\x69\xCC\x49\x68\xCC\x49\x70\xCC\x49\x6A\xCC\x49\x72\xCC\x49\x71\xCC\x4A\x41\xCC\x49\x73\xCC\x4A\x62\xCC\x68\x73\xCC\x4A\x66\xCC\x4A\x65\xCC\x51\x46\xCC\x51\x47\xCC\x51\x48\xCC\x68\x72\xCC\x51\x62\xCC\x51\x59\xCC\x51\x66\xCC\x51\x65\xCC\x51\x6A\xCC\x51\x69\xCC\x51\x73\xCC\x51\x72\xCC\x52\x45\xCC\x52\x43\xCC\x52\x53\xCC\x52\x51\xCC\x52\x54\xCC\x52\x52\xCC\x52\x58\xCC\x69\x41\xCC\x52\x59\xCC\x69\x42\xCC\x52\x63\xCC\x69\x52\xCC\x52\x64\xCC\x69\x43\xCC\x52\x68\xCC\x52\x6A\xCC\x53\x44\xCC\x53\x45\xCC\x53\x46\xCC\x53\x47\xCC\x53\x48\xCC\x53\x49\xCC\x53\x4A\xCC\x53\x51\xCC\x53\x52\xCC\x53\x53\xCC\x53\x54\xCC\x53\x57\xCC\x53\x56\xCC\x53\x55\xCC\x53\x58\xCC\x53\x59\xCC\x53\x62\xCC\x53\x63\xCC\x53\x64\xCC\x53\x65\xCC\x53\x66\xCC\x53\x67\xCC\x54\x49\xCC\x54\x4A\xCC\x54\x51\xCC\x54\x52\xCC\x54\x62\xCC\x54\x63\xCC\x55\x41\xCC\x55\x42\xCC\x55\x67\xCC\x55\x68\xCC\x55\x69\xCC\x55\x6A\xCC\x56\x70\xCC\x56\x71\xCC\x62\x68\xCC\x62\x69\xCC\x62\x6A\xCC\x62\x70\xCC\x62\x71\xCC\x62\x72\xCC\x62\x73\xCC\x63\x41\xCC\x63\x42\xCC\x63\x43\xCC\x63\x44\xCC\x63\x45\xCC\x63\x46\xCC\x63\x47\xCC\x63\x48\xCC\x63\x49\xCC\x63\x4A\xCC\x63\x51\xCC\x63\x54\xCC\x63\x55\xCC\x63\x64\xCC\x63\x65\xCC\x63\x66\xCC\x63\x67\xCC\x63\x68\xCC\x63\x69\xCC\x63\x6A\xCC\x63\x70\xCC\x63\x71\xCC\x63\x72\xCC\x63\x73\xCC\x64\x41\xCC\x64\x42\xCC\x64\x43\xCC\x64\x47\xCC\x64\x48\xCC\x64\x49\xCC\x64\x4A\xCC\x64\x51\xCC\x64\x52\xCC\x64\x53\xCC\x64\x54\xCC\x64\x56\xCC\x64\x57\xCC\x64\x58\xCC\x64\x59\xCC\x64\x62\xCC\x64\x63\xCC\x64\x64\xCC\x64\x65\xCC\x64\x66\xCC\x64\x67\xCC\x64\x68\xCC\x64\x69\xCC\x64\x6A\xCC\x64\x70\xCC\x64\x71\xCC\x64\x72\xCC\x64\x73\xCC\x65\x41\xCC\x65\x42\xCC\x65\x43\xCC\x65\x44\xCC\x65\x45\xCC\x65\x46\xCC\x65\x47\xCC\x65\x48\xCC\x65\x49\xCC\x65\x4A\xCC\x65\x51\xCC\x65\x52\xCC\x65\x53\xCC\x65\x56\xCC\x65\x57\xCC\x65\x58\xCC\x65\x59\xCC\x65\x64\xCC\x65\x65\xCC\x66\x46\xCA\x64\x52\xCC\x66\x66\xCC\x66\x67\xCC\x66\x68\xCC\x66\x69\xCC\x69\x47\xCC\x69\x46\xCC\x69\x48\xCC\x69\x4A\xCC\x69\x49\xCC\x69\x51\xCC\x69\x53\xCC\x52\x62\xCC\x6A\x43\xCC\x6A\x41\xCC\x6A\x53\xCC\x6A\x51\xCC\x6A\x59\xCC\x6A\x57\xCC\x6A\x70\xCC\x6A\x69\xCC\x70\x47\xCC\x70\x45\xCC\x70\x51\xCC\x70\x49\xCC\x70\x64\xCC\x67\x46\xCC\x70\x69\xCC\x70\x67\xCC\x70\x72\xCC\x70\x70\xCC\x71\x42\xCC\x71\x41\xCC\x71\x44\xCC\x71\x43\xCC\x71\x4A\xCC\x71\x49\xCC\x71\x52\xCC\x71\x51\xCC\x71\x58\xCC\x71\x57\xCC\x71\x62\xCC\x71\x59\xCC\x73\x55\xCC\x73\x53\xCD\x57\x43\xCD\x57\x44\xCD\x57\x44\xCD\x57\x45\xCD\x57\x46\xCD\x57\x46\xCD\x57\x4A\xCD\x57\x51\xCD\x57\x51\xCD\x57\x53\xCD\x57\x54\xCD\x57\x54\xCD\x57\x58\xCD\x57\x57\xCD\x57\x70\xCD\x57\x71\xCD\x57\x71\xCD\x58\x41\xCD\x58\x42\xCD\x58\x42\xCD\x58\x43\xCD\x58\x44\xCD\x58\x45\xCD\x58\x46\xCD\x58\x47\xCD\x58\x48\xCD\x58\x49\xCD\x58\x4A\xCD\x58\x65\xCD\x58\x66\xCD\x59\x43\xCA\x41\x72\xCD\x59\x64\xCD\x59\x65\xCD\x59\x66\xCD\x59\x67\xCD\x59\x68\xCD\x59\x69\xCD\x59\x6A\xCD\x59\x70\xCE\x41\x49\xCE\x41\x4A\xCE\x41\x51\xCE\x41\x52\xCE\x41\x53\xCE\x41\x54\xCE\x41\x55\xCE\x41\x56\xCE\x41\x57\xCE\x41\x58\xCE\x41\x63\xCE\x41\x64\xCE\x41\x65\xCE\x41\x66\xCE\x41\x67\xCE\x41\x68\xCE\x41\x69\xCE\x41\x6A\xCE\x41\x71\xCE\x41\x72\xDD\x51\x55\x42\xDD\x51\x55\x43\xDD\x73\x4A\x72\xDD\x73\x4A\x73\xDD\x73\x59\x68\xDD\x73\x59\x69\xDD\x73\x59\x6A\xDD\x73\x59\x70\xDD\x73\x59\x71\xDD\x73\x59\x72\xDD\x73\x62\x45\xDD\x73\x62\x46\xDD\x73\x67\x49\xDD\x73\x67\x4A\xDD\x73\x67\x70\xDD\x73\x67\x72\xDD\x73\x68\x6A\xDD\x73\x68\x71\xDD\x73\x69\x6A\xDD\x73\x69\x71\xDD\x73\x69\x73\xDD\x73\x6A\x41\xDD\x73\x6A\x43\xDD\x73\x6A\x44\xDD\x73\x73\x52\xDD\x73\x73\x4A\xDF\x63\x49\x44\xDF\x63\x49\x43\xDF\x63\x49\x47\xDF\x63\x49\x48\xDF\x71\x43\x4A\xDF\x71\x43\x49\xDF\x71\x49\x49\xDF\x71\x52\x49\xDF\x71\x49\x4A\xDF\x71\x52\x4A\xDF\x71\x49\x51\xDF\x71\x52\x51\xDF\x71\x52\x6A\xDF\x71\x52\x71\xDF\x71\x53\x68\xDF\x71\x53\x67\xDF\x71\x53\x6A\xDF\x71\x53\x69\xDF\x71\x53\x71\xDF\x71\x53\x70\xDF\x71\x56\x47\xDF\x71\x56\x48\xDF\x72\x41\x43\xDF\x72\x41\x41\xDF\x72\x41\x47\xDF\x72\x41\x45\xDF\x72\x41\x51\xDF\x72\x41\x49\xDF\x72\x41\x59\xDF\x72\x41\x57\xDF\x72\x41\x65\xDF\x72\x41\x63\xDF\x72\x41\x69\xDF\x72\x41\x67\xDF\x72\x41\x72\xDF\x72\x41\x70\xDF\x72\x42\x43\xDF\x72\x42\x41\xDF\x72\x42\x47\xDF\x72\x42\x45\xDF\x72\x42\x51\xDF\x72\x42\x49\xDF\x72\x42\x55\xDF\x72\x42\x53\xDF\x72\x42\x59\xDF\x72\x42\x57\xDF\x72\x42\x65\xDF\x72\x42\x63\xDF\x72\x42\x69\xDF\x72\x42\x67\xDF\x72\x42\x72\xDF\x72\x42\x70\xDF\x72\x43\x43\xDF\x72\x43\x41\xDF\x72\x43\x47\xDF\x72\x43\x45\xDF\x72\x43\x59\xDF\x72\x43\x57\xDF\x72\x44\x43\xDF\x72\x44\x41\xDF\x72\x44\x51\xDF\x72\x44\x49\xDF\x72\x44\x59\xDF\x72\x44\x57\xDF\x72\x44\x69\xDF\x72\x44\x67\xDF\x72\x45\x43\xDF\x72\x45\x41\xDF\x72\x45\x59\xDF\x72\x45\x57\xDF\x72\x45\x65\xDF\x72\x45\x63\xDF\x72\x45\x69\xDF\x72\x45\x67\xDF\x72\x46\x42\xDF\x72\x46\x41\xDF\x72\x46\x44\xDF\x72\x46\x43\xDF\x72\x46\x46\xDF\x72\x46\x47\xDF\x72\x46\x48\xDF\x72\x46\x45\xDF\x72\x46\x4A\xDF\x72\x46\x49\xDF\x72\x46\x52\xDF\x72\x46\x51"
+# define DEPRECATED_OPENING_NON_UTF8_BRACKETS "\x8A\x8B"
+# endif
+
+# ifdef PERL_IN_REGCOMP_ANY
+# define MAX_PRINT_A 0xF9 /* The max code point that isPRINT_A */
+# endif
#endif /* EBCDIC 1047 */
#if 'A' == 193 /* EBCDIC 037 */ \
@@ -183,14 +211,28 @@ bytes.
# define MICRO_SIGN_NATIVE 0xA0 /* U+00B5 */
# define MICRO_SIGN_UTF8 "\x78\x63" /* U+00B5 */
-# ifdef PERL_IN_REGCOMP_C
-# define MAX_PRINT_A 0xF9 /* The max code point that isPRINT_A */
-# endif
+# ifdef PERL_IN_TOKE_C
+ /* Paired characters for quote-like operators, in UTF-8 */
+# define EXTRA_OPENING_UTF8_BRACKETS "\x4D\x4C\xBA\xC0\x78\x52\x78\x69\xB7\x66\x47\xB9\x67\x68\xB9\x67\x6A\xBD\x62\x69\xCA\x41\x66\xCA\x41\x67\xCA\x41\x6A\xCA\x41\x70\xCA\x42\x63\xCA\x42\x64\xCA\x42\x65\xCA\x42\x67\xCA\x42\x68\xCA\x43\x46\xCA\x43\x54\xCA\x44\x70\xCA\x45\x54\xCA\x53\x59\xCA\x53\x69\xCA\x53\x70\xCA\x54\x41\xCA\x54\x44\xCA\x54\x47\xCA\x54\x51\xCA\x54\x53\xCA\x54\x58\xCA\x54\x5F\xCA\x55\x41\xCA\x55\x42\xCA\x55\x4A\xCA\x55\x56\xCA\x55\x59\xCA\x55\x69\xCA\x55\x70\xCA\x56\x43\xCA\x56\x46\xCA\x56\x49\xCA\x56\x62\xCA\x56\x64\xCA\x56\x66\xCA\x56\x69\xCA\x56\x71\xCA\x57\x49\xCA\x57\x4A\xCA\x57\x51\xCA\x5F\x45\xCA\x5F\x47\xCA\x5F\x49\xCA\x5F\x51\xCA\x5F\x55\xCA\x5F\x57\xCA\x5F\x59\xCA\x5F\x62\xCA\x5F\x68\xCA\x5F\x6A\xCA\x5F\x71\xCA\x62\x41\xCA\x62\x43\xCA\x62\x45\xCA\x62\x47\xCA\x62\x49\xCA\x62\x51\xCA\x63\x44\xCA\x63\x47\xCA\x63\x49\xCA\x63\x4A\xCA\x63\x57\xCA\x64\x57\xCA\x64\x64\xCA\x64\x66\xCA\x64\x6A\xCA\x64\x71\xCA\x65\x41\xCA\x65\x47\xCA\x65\x49\xCA\x65\x59\xCA\x65\x5F\xCA\x65\x62\xCA\x65\x64\xCA\x65\x65\xCA\x66\x49\xCA\x66\x51\xCA\x67\x47\xCA\x67\x4A\xCA\x68\x49\xCA\x72\x4A\xCA\x72\x54\xCB\x57\x69\xCB\x57\x71\xCB\x62\x71\xCB\x69\x49\xCB\x69\x51\xCB\x69\x53\xCB\x69\x55\xCB\x69\x57\xCB\x69\x59\xCB\x69\x62\xCB\x71\x44\xCB\x71\x46\xCB\x71\x49\xCB\x71\x71\xCB\x72\x47\xCB\x72\x49\xCB\x72\x51\xCB\x72\x53\xCB\x72\x55\xCB\x72\x62\xCB\x72\x64\xCB\x72\x67\xCB\x72\x6A\xCB\x72\x71\xCB\x72\x72\xCC\x49\x41\xCC\x49\x42\xCC\x49\x44\xCC\x49\x46\xCC\x49\x48\xCC\x49\x54\xCC\x49\x56\xCC\x49\x57\xCC\x49\x58\xCC\x49\x62\xCC\x49\x63\xCC\x49\x64\xCC\x49\x65\xCC\x49\x66\xCC\x49\x68\xCC\x49\x6A\xCC\x49\x71\xCC\x4A\x41\xCC\x4A\x5F\xCC\x4A\x65\xCC\x51\x46\xCC\x51\x48\xCC\x51\x5F\xCC\x51\x65\xCC\x51\x69\xCC\x51\x72\xCC\x52\x45\xCC\x52\x53\xCC\x52\x54\xCC\x52\x58\xCC\x52\x59\xCC\x52\x62\xCC\x52\x63\xCC\x52\x67\xCC\x53\x44\xCC\x53\x46\xCC\x53\x48\xCC\x53\x4A\xCC\x53\x52\xCC\x53\x54\xCC\x53\x56\xCC\x53\x58\xCC\x53\x5F\xCC\x53\x63\xCC\x53\x65\xCC\x54\x49\xCC\x54\x51\xCC\x54\x5F\xCC\x55\x41\xCC\x55\x66\xCC\x55\x68\xCC\x56\x6A\xCC\x5F\x67\xCC\x5F\x69\xCC\x5F\x70\xCC\x5F\x72\xCC\x62\x42\xCC\x62\x44\xCC\x62\x46\xCC\x62\x48\xCC\x62\x4A\xCC\x62\x54\xCC\x62\x63\xCC\x62\x65\xCC\x62\x67\xCC\x62\x69\xCC\x62\x70\xCC\x62\x72\xCC\x63\x42\xCC\x63\x47\xCC\x63\x49\xCC\x63\x51\xCC\x63\x53\xCC\x63\x56\xCC\x63\x58\xCC\x63\x5F\xCC\x63\x63\xCC\x63\x65\xCC\x63\x67\xCC\x63\x69\xCC\x63\x70\xCC\x63\x72\xCC\x64\x42\xCC\x64\x44\xCC\x64\x46\xCC\x64\x48\xCC\x64\x4A\xCC\x64\x52\xCC\x64\x56\xCC\x64\x58\xCC\x64\x63\xCC\x65\x46\xCC\x65\x65\xCC\x65\x67\xCC\x68\x47\xCC\x68\x48\xCC\x68\x49\xCC\x68\x53\xCC\x69\x43\xCC\x69\x53\xCC\x69\x59\xCC\x69\x6A\xCC\x6A\x47\xCC\x6A\x51\xCC\x6A\x63\xCC\x6A\x68\xCC\x6A\x71\xCC\x70\x42\xCC\x70\x44\xCC\x70\x4A\xCC\x70\x52\xCC\x70\x58\xCC\x70\x5F\xCC\x72\x55\xCD\x57\x43\xCD\x57\x44\xCD\x57\x45\xCD\x57\x46\xCD\x57\x4A\xCD\x57\x51\xCD\x57\x53\xCD\x57\x54\xCD\x57\x58\xCD\x57\x6A\xCD\x57\x70\xCD\x58\x41\xCD\x58\x42\xCD\x58\x43\xCD\x58\x45\xCD\x58\x47\xCD\x58\x49\xCD\x58\x64\xCD\x59\x43\xCD\x59\x63\xCD\x59\x65\xCD\x59\x67\xCD\x59\x69\xCE\x41\x49\xCE\x41\x51\xCE\x41\x53\xCE\x41\x55\xCE\x41\x57\xCE\x41\x62\xCE\x41\x64\xCE\x41\x66\xCE\x41\x68\xCE\x41\x70\xDD\x51\x55\x42\xDD\x72\x4A\x71\xDD\x72\x59\x67\xDD\x72\x59\x69\xDD\x72\x59\x70\xDD\x72\x5F\x45\xDD\x72\x66\x49\xDD\x72\x66\x6A\xDD\x72\x67\x69\xDD\x72\x68\x69\xDD\x72\x68\x72\xDD\x72\x69\x43\xDD\x72\x72\x52\xDF\x62\x49\x44\xDF\x62\x49\x47\xDF\x70\x43\x4A\xDF\x70\x49\x49\xDF\x70\x49\x4A\xDF\x70\x49\x51\xDF\x70\x52\x69\xDF\x70\x53\x67\xDF\x70\x53\x69\xDF\x70\x53\x70\xDF\x70\x56\x47\xDF\x71\x41\x43\xDF\x71\x41\x47\xDF\x71\x41\x51\xDF\x71\x41\x59\xDF\x71\x41\x64\xDF\x71\x41\x68\xDF\x71\x41\x71\xDF\x71\x42\x43\xDF\x71\x42\x47\xDF\x71\x42\x51\xDF\x71\x42\x55\xDF\x71\x42\x59\xDF\x71\x42\x64\xDF\x71\x42\x68\xDF\x71\x42\x71\xDF\x71\x43\x43\xDF\x71\x43\x47\xDF\x71\x43\x59\xDF\x71\x44\x43\xDF\x71\x44\x51\xDF\x71\x44\x59\xDF\x71\x44\x68\xDF\x71\x45\x43\xDF\x71\x45\x59\xDF\x71\x45\x64\xDF\x71\x45\x68\xDF\x71\x46\x42\xDF\x71\x46\x44\xDF\x71\x46\x46\xDF\x71\x46\x48\xDF\x71\x46\x4A\xDF\x71\x46\x52"
+# define EXTRA_CLOSING_UTF8_BRACKETS "\x5D\x6E\xBB\xD0\x78\x69\x78\x52\xB7\x66\x48\xB9\x67\x69\xB9\x67\x70\xBD\x62\x6A\xCA\x41\x67\xCA\x41\x66\xCA\x41\x70\xCA\x41\x6A\xCA\x42\x59\xCA\x42\x5F\xCA\x42\x62\xCA\x42\x68\xCA\x42\x67\xCA\x43\x47\xCA\x43\x53\xCA\x44\x71\xCA\x45\x55\xCA\x53\x57\xCA\x53\x68\xCA\x53\x6A\xCA\x53\x71\xCA\x54\x43\xCA\x54\x45\xCA\x54\x4A\xCA\x54\x52\xCA\x54\x57\xCA\x54\x59\xCA\x54\x6A\xCA\x54\x70\xCA\x55\x48\xCA\x55\x54\xCA\x55\x57\xCA\x55\x68\xCA\x55\x6A\xCA\x56\x41\xCA\x56\x45\xCA\x56\x47\xCC\x67\x57\xCC\x67\x58\xCA\x56\x65\xCA\x56\x68\xCA\x56\x70\xCA\x57\x52\xCA\x57\x53\xCA\x57\x54\xCA\x5F\x46\xCA\x5F\x48\xCA\x5F\x4A\xCA\x5F\x52\xCA\x5F\x56\xCA\x5F\x58\xCA\x5F\x5F\xCA\x5F\x63\xCA\x5F\x69\xCA\x5F\x70\xCA\x5F\x72\xCA\x62\x42\xCA\x62\x44\xCA\x62\x46\xCA\x62\x48\xCA\x62\x4A\xCA\x62\x52\xCA\x63\x43\xCC\x64\x71\xCC\x65\x45\xCC\x65\x44\xCA\x63\x58\xCA\x64\x58\xCA\x64\x65\xCA\x64\x67\xCA\x64\x70\xCA\x64\x72\xCA\x65\x42\xCA\x65\x48\xCA\x65\x4A\xCA\x65\x68\xCA\x65\x69\xCA\x65\x6A\xCA\x65\x70\xCA\x65\x71\xCA\x66\x4A\xCA\x66\x52\xCA\x67\x52\xCA\x67\x51\xCA\x68\x48\xCA\x72\x51\xCA\x72\x55\xCB\x57\x68\xCB\x57\x6A\xCB\x62\x72\xCB\x69\x4A\xCB\x69\x52\xCB\x69\x54\xCB\x69\x56\xCB\x69\x58\xCB\x69\x5F\xCB\x69\x63\xCB\x71\x45\xCB\x71\x47\xCB\x71\x4A\xCB\x71\x70\xCB\x72\x48\xCB\x72\x4A\xCB\x72\x52\xCB\x72\x54\xCB\x72\x56\xCC\x67\x59\xCB\x72\x63\xCB\x72\x66\xCB\x72\x69\xCB\x72\x70\xCC\x67\x5F\xCC\x67\x62\xCC\x67\x63\xCC\x49\x43\xCC\x67\x64\xCC\x49\x47\xCC\x49\x53\xCC\x49\x55\xCC\x67\x65\xCC\x67\x66\xCC\x67\x67\xCC\x67\x68\xCC\x67\x69\xCC\x67\x6A\xCC\x67\x70\xCC\x49\x67\xCC\x49\x69\xCC\x49\x70\xCC\x49\x72\xCC\x67\x72\xCC\x4A\x64\xCC\x51\x47\xCC\x67\x71\xCC\x51\x59\xCC\x51\x64\xCC\x51\x68\xCC\x51\x71\xCC\x52\x43\xCC\x52\x51\xCC\x52\x52\xCC\x68\x41\xCC\x68\x42\xCC\x68\x52\xCC\x68\x43\xCC\x52\x69\xCC\x53\x45\xCC\x53\x47\xCC\x53\x49\xCC\x53\x51\xCC\x53\x53\xCC\x53\x57\xCC\x53\x55\xCC\x53\x59\xCC\x53\x62\xCC\x53\x64\xCC\x53\x66\xCC\x54\x4A\xCC\x54\x52\xCC\x54\x62\xCC\x55\x42\xCC\x55\x67\xCC\x55\x69\xCC\x56\x70\xCC\x5F\x68\xCC\x5F\x6A\xCC\x5F\x71\xCC\x62\x41\xCC\x62\x43\xCC\x62\x45\xCC\x62\x47\xCC\x62\x49\xCC\x62\x51\xCC\x62\x55\xCC\x62\x64\xCC\x62\x66\xCC\x62\x68\xCC\x62\x6A\xCC\x62\x71\xCC\x63\x41\xCC\x63\x43\xCC\x63\x48\xCC\x63\x4A\xCC\x63\x52\xCC\x63\x54\xCC\x63\x57\xCC\x63\x59\xCC\x63\x62\xCC\x63\x64\xCC\x63\x66\xCC\x63\x68\xCC\x63\x6A\xCC\x63\x71\xCC\x64\x41\xCC\x64\x43\xCC\x64\x45\xCC\x64\x47\xCC\x64\x49\xCC\x64\x51\xCC\x64\x53\xCC\x64\x57\xCC\x64\x59\xCC\x64\x64\xCA\x63\x52\xCC\x65\x66\xCC\x65\x68\xCC\x68\x46\xCC\x68\x4A\xCC\x68\x51\xCC\x52\x5F\xCC\x69\x41\xCC\x69\x51\xCC\x69\x57\xCC\x69\x68\xCC\x6A\x45\xCC\x6A\x49\xCC\x66\x46\xCC\x6A\x66\xCC\x6A\x6A\xCC\x70\x41\xCC\x70\x43\xCC\x70\x49\xCC\x70\x51\xCC\x70\x57\xCC\x70\x59\xCC\x72\x53\xCD\x57\x44\xCD\x57\x43\xCD\x57\x46\xCD\x57\x45\xCD\x57\x51\xCD\x57\x4A\xCD\x57\x54\xCD\x57\x53\xCD\x57\x57\xCD\x57\x70\xCD\x57\x6A\xCD\x58\x42\xCD\x58\x41\xCD\x58\x44\xCD\x58\x46\xCD\x58\x48\xCD\x58\x4A\xCD\x58\x65\xCA\x41\x71\xCD\x59\x64\xCD\x59\x66\xCD\x59\x68\xCD\x59\x6A\xCE\x41\x4A\xCE\x41\x52\xCE\x41\x54\xCE\x41\x56\xCE\x41\x58\xCE\x41\x63\xCE\x41\x65\xCE\x41\x67\xCE\x41\x69\xCE\x41\x71\xDD\x51\x55\x43\xDD\x72\x4A\x72\xDD\x72\x59\x68\xDD\x72\x59\x6A\xDD\x72\x59\x71\xDD\x72\x5F\x46\xDD\x72\x66\x4A\xDD\x72\x66\x71\xDD\x72\x67\x70\xDD\x72\x68\x70\xDD\x72\x69\x41\xDD\x72\x69\x44\xDD\x72\x72\x4A\xDF\x62\x49\x43\xDF\x62\x49\x48\xDF\x70\x43\x49\xDF\x70\x52\x49\xDF\x70\x52\x4A\xDF\x70\x52\x51\xDF\x70\x52\x70\xDF\x70\x53\x66\xDF\x70\x53\x68\xDF\x70\x53\x6A\xDF\x70\x56\x48\xDF\x71\x41\x41\xDF\x71\x41\x45\xDF\x71\x41\x49\xDF\x71\x41\x57\xDF\x71\x41\x62\xDF\x71\x41\x66\xDF\x71\x41\x6A\xDF\x71\x42\x41\xDF\x71\x42\x45\xDF\x71\x42\x49\xDF\x71\x42\x53\xDF\x71\x42\x57\xDF\x71\x42\x62\xDF\x71\x42\x66\xDF\x71\x42\x6A\xDF\x71\x43\x41\xDF\x71\x43\x45\xDF\x71\x43\x57\xDF\x71\x44\x41\xDF\x71\x44\x49\xDF\x71\x44\x57\xDF\x71\x44\x66\xDF\x71\x45\x41\xDF\x71\x45\x57\xDF\x71\x45\x62\xDF\x71\x45\x66\xDF\x71\x46\x41\xDF\x71\x46\x43\xDF\x71\x46\x47\xDF\x71\x46\x45\xDF\x71\x46\x49\xDF\x71\x46\x51"
+
+ /* And not in UTF-8 */
+# define EXTRA_OPENING_NON_UTF8_BRACKETS "\x4D\x4C\xBA\xC0\x8A\x8B"
+# define EXTRA_CLOSING_NON_UTF8_BRACKETS "\x5D\x6E\xBB\xD0\x8B\x8A"
+
+ /* And what's deprecated */
+# define DEPRECATED_OPENING_UTF8_BRACKETS "\x78\x52\x78\x69\x78\x69\xB7\x66\x47\xB7\x66\x48\xB9\x67\x68\xB9\x67\x69\xB9\x67\x6A\xB9\x67\x70\xBD\x62\x69\xBD\x62\x6A\xCA\x41\x66\xCA\x41\x67\xCA\x41\x67\xCA\x41\x6A\xCA\x41\x70\xCA\x41\x70\xCA\x42\x63\xCA\x42\x59\xCA\x42\x64\xCA\x42\x5F\xCA\x42\x65\xCA\x42\x62\xCA\x42\x67\xCA\x42\x68\xCA\x42\x68\xCA\x43\x46\xCA\x43\x47\xCA\x43\x54\xCA\x43\x53\xCA\x44\x70\xCA\x44\x71\xCA\x45\x54\xCA\x45\x55\xCA\x53\x59\xCA\x53\x57\xCA\x53\x69\xCA\x53\x68\xCA\x53\x70\xCA\x53\x6A\xCA\x54\x41\xCA\x53\x71\xCA\x54\x44\xCA\x54\x43\xCA\x54\x47\xCA\x54\x45\xCA\x54\x51\xCA\x54\x4A\xCA\x54\x53\xCA\x54\x52\xCA\x54\x58\xCA\x54\x57\xCA\x54\x5F\xCA\x54\x59\xCA\x55\x41\xCA\x54\x6A\xCA\x55\x42\xCA\x54\x70\xCA\x55\x4A\xCA\x55\x48\xCA\x55\x56\xCA\x55\x54\xCA\x55\x59\xCA\x55\x57\xCA\x55\x69\xCA\x55\x68\xCA\x55\x70\xCA\x55\x6A\xCA\x56\x43\xCA\x56\x41\xCA\x56\x46\xCA\x56\x45\xCA\x56\x49\xCA\x56\x47\xCA\x56\x62\xCC\x67\x57\xCA\x56\x64\xCC\x67\x58\xCA\x56\x66\xCA\x56\x65\xCA\x56\x69\xCA\x56\x68\xCA\x56\x71\xCA\x56\x70\xCA\x57\x49\xCA\x57\x52\xCA\x57\x4A\xCA\x57\x53\xCA\x57\x51\xCA\x57\x54\xCA\x5F\x45\xCA\x5F\x46\xCA\x5F\x47\xCA\x5F\x48\xCA\x5F\x49\xCA\x5F\x4A\xCA\x5F\x51\xCA\x5F\x52\xCA\x5F\x55\xCA\x5F\x56\xCA\x5F\x57\xCA\x5F\x58\xCA\x5F\x59\xCA\x5F\x5F\xCA\x5F\x62\xCA\x5F\x63\xCA\x5F\x68\xCA\x5F\x69\xCA\x5F\x6A\xCA\x5F\x70\xCA\x5F\x71\xCA\x5F\x72\xCA\x62\x41\xCA\x62\x42\xCA\x62\x43\xCA\x62\x44\xCA\x62\x45\xCA\x62\x46\xCA\x62\x47\xCA\x62\x48\xCA\x62\x49\xCA\x62\x4A\xCA\x62\x51\xCA\x62\x52\xCA\x63\x44\xCA\x63\x43\xCA\x63\x47\xCC\x64\x71\xCA\x63\x49\xCC\x65\x45\xCA\x63\x4A\xCC\x65\x44\xCA\x63\x57\xCA\x63\x58\xCA\x64\x57\xCA\x64\x58\xCA\x64\x64\xCA\x64\x65\xCA\x64\x66\xCA\x64\x67\xCA\x64\x6A\xCA\x64\x70\xCA\x64\x71\xCA\x64\x72\xCA\x65\x41\xCA\x65\x42\xCA\x65\x47\xCA\x65\x48\xCA\x65\x49\xCA\x65\x4A\xCA\x65\x59\xCA\x65\x68\xCA\x65\x5F\xCA\x65\x69\xCA\x65\x62\xCA\x65\x6A\xCA\x65\x64\xCA\x65\x70\xCA\x65\x65\xCA\x65\x71\xCA\x66\x49\xCA\x66\x4A\xCA\x66\x51\xCA\x66\x52\xCA\x67\x47\xCA\x67\x52\xCA\x67\x4A\xCA\x67\x51\xCA\x68\x49\xCA\x68\x48\xCA\x72\x4A\xCA\x72\x51\xCA\x72\x54\xCA\x72\x55\xCB\x57\x69\xCB\x57\x68\xCB\x57\x71\xCB\x57\x6A\xCB\x62\x71\xCB\x62\x72\xCB\x69\x49\xCB\x69\x4A\xCB\x69\x51\xCB\x69\x52\xCB\x69\x53\xCB\x69\x54\xCB\x69\x55\xCB\x69\x56\xCB\x69\x57\xCB\x69\x58\xCB\x69\x59\xCB\x69\x5F\xCB\x69\x62\xCB\x69\x63\xCB\x71\x44\xCB\x71\x45\xCB\x71\x46\xCB\x71\x47\xCB\x71\x49\xCB\x71\x4A\xCB\x71\x71\xCB\x71\x70\xCB\x72\x47\xCB\x72\x48\xCB\x72\x49\xCB\x72\x4A\xCB\x72\x51\xCB\x72\x52\xCB\x72\x53\xCB\x72\x54\xCB\x72\x55\xCB\x72\x56\xCB\x72\x62\xCC\x67\x59\xCB\x72\x64\xCB\x72\x63\xCB\x72\x67\xCB\x72\x66\xCB\x72\x6A\xCB\x72\x69\xCB\x72\x71\xCB\x72\x70\xCB\x72\x72\xCC\x67\x5F\xCC\x49\x41\xCC\x67\x62\xCC\x49\x42\xCC\x67\x63\xCC\x49\x44\xCC\x49\x43\xCC\x49\x46\xCC\x67\x64\xCC\x49\x48\xCC\x49\x47\xCC\x49\x54\xCC\x49\x53\xCC\x49\x56\xCC\x49\x55\xCC\x49\x57\xCC\x67\x65\xCC\x49\x58\xCC\x67\x66\xCC\x49\x62\xCC\x67\x67\xCC\x49\x63\xCC\x67\x68\xCC\x49\x64\xCC\x67\x69\xCC\x49\x65\xCC\x67\x6A\xCC\x49\x66\xCC\x67\x70\xCC\x49\x68\xCC\x49\x67\xCC\x49\x6A\xCC\x49\x69\xCC\x49\x71\xCC\x49\x70\xCC\x4A\x41\xCC\x49\x72\xCC\x4A\x5F\xCC\x67\x72\xCC\x4A\x65\xCC\x4A\x64\xCC\x51\x46\xCC\x51\x47\xCC\x51\x48\xCC\x67\x71\xCC\x51\x5F\xCC\x51\x59\xCC\x51\x65\xCC\x51\x64\xCC\x51\x69\xCC\x51\x68\xCC\x51\x72\xCC\x51\x71\xCC\x52\x45\xCC\x52\x43\xCC\x52\x53\xCC\x52\x51\xCC\x52\x54\xCC\x52\x52\xCC\x52\x58\xCC\x68\x41\xCC\x52\x59\xCC\x68\x42\xCC\x52\x62\xCC\x68\x52\xCC\x52\x63\xCC\x68\x43\xCC\x52\x67\xCC\x52\x69\xCC\x53\x44\xCC\x53\x45\xCC\x53\x46\xCC\x53\x47\xCC\x53\x48\xCC\x53\x49\xCC\x53\x4A\xCC\x53\x51\xCC\x53\x52\xCC\x53\x53\xCC\x53\x54\xCC\x53\x57\xCC\x53\x56\xCC\x53\x55\xCC\x53\x58\xCC\x53\x59\xCC\x53\x5F\xCC\x53\x62\xCC\x53\x63\xCC\x53\x64\xCC\x53\x65\xCC\x53\x66\xCC\x54\x49\xCC\x54\x4A\xCC\x54\x51\xCC\x54\x52\xCC\x54\x5F\xCC\x54\x62\xCC\x55\x41\xCC\x55\x42\xCC\x55\x66\xCC\x55\x67\xCC\x55\x68\xCC\x55\x69\xCC\x56\x6A\xCC\x56\x70\xCC\x5F\x67\xCC\x5F\x68\xCC\x5F\x69\xCC\x5F\x6A\xCC\x5F\x70\xCC\x5F\x71\xCC\x5F\x72\xCC\x62\x41\xCC\x62\x42\xCC\x62\x43\xCC\x62\x44\xCC\x62\x45\xCC\x62\x46\xCC\x62\x47\xCC\x62\x48\xCC\x62\x49\xCC\x62\x4A\xCC\x62\x51\xCC\x62\x54\xCC\x62\x55\xCC\x62\x63\xCC\x62\x64\xCC\x62\x65\xCC\x62\x66\xCC\x62\x67\xCC\x62\x68\xCC\x62\x69\xCC\x62\x6A\xCC\x62\x70\xCC\x62\x71\xCC\x62\x72\xCC\x63\x41\xCC\x63\x42\xCC\x63\x43\xCC\x63\x47\xCC\x63\x48\xCC\x63\x49\xCC\x63\x4A\xCC\x63\x51\xCC\x63\x52\xCC\x63\x53\xCC\x63\x54\xCC\x63\x56\xCC\x63\x57\xCC\x63\x58\xCC\x63\x59\xCC\x63\x5F\xCC\x63\x62\xCC\x63\x63\xCC\x63\x64\xCC\x63\x65\xCC\x63\x66\xCC\x63\x67\xCC\x63\x68\xCC\x63\x69\xCC\x63\x6A\xCC\x63\x70\xCC\x63\x71\xCC\x63\x72\xCC\x64\x41\xCC\x64\x42\xCC\x64\x43\xCC\x64\x44\xCC\x64\x45\xCC\x64\x46\xCC\x64\x47\xCC\x64\x48\xCC\x64\x49\xCC\x64\x4A\xCC\x64\x51\xCC\x64\x52\xCC\x64\x53\xCC\x64\x56\xCC\x64\x57\xCC\x64\x58\xCC\x64\x59\xCC\x64\x63\xCC\x64\x64\xCC\x65\x46\xCA\x63\x52\xCC\x65\x65\xCC\x65\x66\xCC\x65\x67\xCC\x65\x68\xCC\x68\x47\xCC\x68\x46\xCC\x68\x48\xCC\x68\x4A\xCC\x68\x49\xCC\x68\x51\xCC\x68\x53\xCC\x52\x5F\xCC\x69\x43\xCC\x69\x41\xCC\x69\x53\xCC\x69\x51\xCC\x69\x59\xCC\x69\x57\xCC\x69\x6A\xCC\x69\x68\xCC\x6A\x47\xCC\x6A\x45\xCC\x6A\x51\xCC\x6A\x49\xCC\x6A\x63\xCC\x66\x46\xCC\x6A\x68\xCC\x6A\x66\xCC\x6A\x71\xCC\x6A\x6A\xCC\x70\x42\xCC\x70\x41\xCC\x70\x44\xCC\x70\x43\xCC\x70\x4A\xCC\x70\x49\xCC\x70\x52\xCC\x70\x51\xCC\x70\x58\xCC\x70\x57\xCC\x70\x5F\xCC\x70\x59\xCC\x72\x55\xCC\x72\x53\xCD\x57\x43\xCD\x57\x44\xCD\x57\x44\xCD\x57\x45\xCD\x57\x46\xCD\x57\x46\xCD\x57\x4A\xCD\x57\x51\xCD\x57\x51\xCD\x57\x53\xCD\x57\x54\xCD\x57\x54\xCD\x57\x58\xCD\x57\x57\xCD\x57\x6A\xCD\x57\x70\xCD\x57\x70\xCD\x58\x41\xCD\x58\x42\xCD\x58\x42\xCD\x58\x43\xCD\x58\x44\xCD\x58\x45\xCD\x58\x46\xCD\x58\x47\xCD\x58\x48\xCD\x58\x49\xCD\x58\x4A\xCD\x58\x64\xCD\x58\x65\xCD\x59\x43\xCA\x41\x71\xCD\x59\x63\xCD\x59\x64\xCD\x59\x65\xCD\x59\x66\xCD\x59\x67\xCD\x59\x68\xCD\x59\x69\xCD\x59\x6A\xCE\x41\x49\xCE\x41\x4A\xCE\x41\x51\xCE\x41\x52\xCE\x41\x53\xCE\x41\x54\xCE\x41\x55\xCE\x41\x56\xCE\x41\x57\xCE\x41\x58\xCE\x41\x62\xCE\x41\x63\xCE\x41\x64\xCE\x41\x65\xCE\x41\x66\xCE\x41\x67\xCE\x41\x68\xCE\x41\x69\xCE\x41\x70\xCE\x41\x71\xDD\x51\x55\x42\xDD\x51\x55\x43\xDD\x72\x4A\x71\xDD\x72\x4A\x72\xDD\x72\x59\x67\xDD\x72\x59\x68\xDD\x72\x59\x69\xDD\x72\x59\x6A\xDD\x72\x59\x70\xDD\x72\x59\x71\xDD\x72\x5F\x45\xDD\x72\x5F\x46\xDD\x72\x66\x49\xDD\x72\x66\x4A\xDD\x72\x66\x6A\xDD\x72\x66\x71\xDD\x72\x67\x69\xDD\x72\x67\x70\xDD\x72\x68\x69\xDD\x72\x68\x70\xDD\x72\x68\x72\xDD\x72\x69\x41\xDD\x72\x69\x43\xDD\x72\x69\x44\xDD\x72\x72\x52\xDD\x72\x72\x4A\xDF\x62\x49\x44\xDF\x62\x49\x43\xDF\x62\x49\x47\xDF\x62\x49\x48\xDF\x70\x43\x4A\xDF\x70\x43\x49\xDF\x70\x49\x49\xDF\x70\x52\x49\xDF\x70\x49\x4A\xDF\x70\x52\x4A\xDF\x70\x49\x51\xDF\x70\x52\x51\xDF\x70\x52\x69\xDF\x70\x52\x70\xDF\x70\x53\x67\xDF\x70\x53\x66\xDF\x70\x53\x69\xDF\x70\x53\x68\xDF\x70\x53\x70\xDF\x70\x53\x6A\xDF\x70\x56\x47\xDF\x70\x56\x48\xDF\x71\x41\x43\xDF\x71\x41\x41\xDF\x71\x41\x47\xDF\x71\x41\x45\xDF\x71\x41\x51\xDF\x71\x41\x49\xDF\x71\x41\x59\xDF\x71\x41\x57\xDF\x71\x41\x64\xDF\x71\x41\x62\xDF\x71\x41\x68\xDF\x71\x41\x66\xDF\x71\x41\x71\xDF\x71\x41\x6A\xDF\x71\x42\x43\xDF\x71\x42\x41\xDF\x71\x42\x47\xDF\x71\x42\x45\xDF\x71\x42\x51\xDF\x71\x42\x49\xDF\x71\x42\x55\xDF\x71\x42\x53\xDF\x71\x42\x59\xDF\x71\x42\x57\xDF\x71\x42\x64\xDF\x71\x42\x62\xDF\x71\x42\x68\xDF\x71\x42\x66\xDF\x71\x42\x71\xDF\x71\x42\x6A\xDF\x71\x43\x43\xDF\x71\x43\x41\xDF\x71\x43\x47\xDF\x71\x43\x45\xDF\x71\x43\x59\xDF\x71\x43\x57\xDF\x71\x44\x43\xDF\x71\x44\x41\xDF\x71\x44\x51\xDF\x71\x44\x49\xDF\x71\x44\x59\xDF\x71\x44\x57\xDF\x71\x44\x68\xDF\x71\x44\x66\xDF\x71\x45\x43\xDF\x71\x45\x41\xDF\x71\x45\x59\xDF\x71\x45\x57\xDF\x71\x45\x64\xDF\x71\x45\x62\xDF\x71\x45\x68\xDF\x71\x45\x66\xDF\x71\x46\x42\xDF\x71\x46\x41\xDF\x71\x46\x44\xDF\x71\x46\x43\xDF\x71\x46\x46\xDF\x71\x46\x47\xDF\x71\x46\x48\xDF\x71\x46\x45\xDF\x71\x46\x4A\xDF\x71\x46\x49\xDF\x71\x46\x52\xDF\x71\x46\x51"
+# define DEPRECATED_OPENING_NON_UTF8_BRACKETS "\x8A\x8B"
+# endif
+
+# ifdef PERL_IN_REGCOMP_ANY
+# define MAX_PRINT_A 0xF9 /* The max code point that isPRINT_A */
+# endif
#endif /* EBCDIC 037 */
/* The number of code points not matching \pC */
-#ifdef PERL_IN_REGCOMP_C
-# define NON_OTHER_COUNT 143698
+#ifdef PERL_IN_REGCOMP_ANY
+# define NON_OTHER_COUNT 149016
#endif
/* The highest code point that has any type of case change */
@@ -200,4 +242,4 @@ bytes.
#endif /* PERL_UNICODE_CONSTANTS_H_ */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h
index eafc6f1e8b..097b85da2f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h
@@ -21,7 +21,7 @@
* This symbol, if defined, indicates that the ioctl() routine is
* available to set I/O characteristics
*/
-#define HAS_IOCTL /**/
+#define HAS_IOCTL /**/
/* HAS_UTIME:
* This symbol, if defined, indicates that the routine utime() is
@@ -136,28 +136,34 @@ int afstat(int fd, struct stat *statb);
#define Mkdir(path,mode) mkdir((path),(mode))
#if defined(__amigaos4__)
-# define PERL_SYS_INIT_BODY(c,v) \
- MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT; MALLOC_INIT; amigaos4_init_fork_array(); amigaos4_init_environ_sema();
-# define PERL_SYS_TERM_BODY() \
- HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
- OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
- MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM; \
- ENV_TERM; \
- amigaos4_dispose_fork_array();
+# define PLATFORM_SYS_TERM_ amigaos4_dispose_fork_array()
+# define PLATFORM_SYS_INIT_ STMT_START { \
+ amigaos4_init_fork_array(); \
+ amigaos4_init_environ_sema(); \
+ } STMT_END
+#else
+# define PLATFORM_SYS_TERM_ NOOP
+# define PLATFORM_SYS_INIT_ NOOP
#endif
#ifndef PERL_SYS_INIT_BODY
-# define PERL_SYS_INIT_BODY(c,v) \
- MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT; MALLOC_INIT
+#define PERL_SYS_INIT_BODY(c,v) \
+ MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT; \
+ MALLOC_INIT; PLATFORM_SYS_INIT_;
#endif
+/* Generally add things last-in first-terminated. IO and memory terminations
+ * need to be generally last
+ *
+ * BEWARE that using PerlIO in these will be using freed memory, so may appear
+ * to work, but must NOT be retained in production code. */
#ifndef PERL_SYS_TERM_BODY
-# define PERL_SYS_TERM_BODY() \
- HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
- OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
- MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM; \
- ENV_TERM;
-
+# define PERL_SYS_TERM_BODY() \
+ ENV_TERM; USER_PROP_MUTEX_TERM; LOCALE_TERM; \
+ HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
+ OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; \
+ PERLIO_TERM; MALLOC_TERM; \
+ PLATFORM_SYS_TERM_;
#endif
#define BIT_BUCKET "/dev/null"
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h
index 3bec01989f..3256cf649a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h
@@ -12,11 +12,103 @@
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
+ * A note on nomenclature: The term UTF-8 is used loosely and inconsistently
+ * in Perl documentation. For one, perl uses an extension of UTF-8 to
+ * represent code points that Unicode considers illegal. For another, ASCII
+ * platform UTF-8 is usually conflated with EBCDIC platform UTF-EBCDIC, because
+ * outside some of the macros in this this file, the differences are hopefully
+ * invisible at the semantic level.
+ *
+ * UTF-EBCDIC has an isomorphic translation named I8 (for "Intermediate eight")
+ * which differs from UTF-8 only in a few details. It is often useful to
+ * translate UTF-EBCDIC into this form for processing. In general, macros and
+ * functions that are expecting their inputs to be either in I8 or UTF-8 are
+ * named UTF_foo (without an '8'), to indicate this.
+ *
+ * Unfortunately there are inconsistencies.
+ *
*/
#ifndef PERL_UTF8_H_ /* Guard against recursive inclusion */
#define PERL_UTF8_H_ 1
+/*
+=for apidoc Ay||utf8ness_t
+
+This typedef is used by several core functions that return PV strings, to
+indicate the UTF-8ness of those strings.
+
+(If you write a new function, you probably should instead return the PV in an
+SV with the UTF-8 flag of the SV properly set, rather than use this mechanism.)
+
+The possible values this can be are:
+
+=over
+
+=item C<UTF8NESS_YES>
+
+This means the string definitely should be treated as a sequence of
+UTF-8-encoded characters.
+
+Most code that needs to handle this typedef should be of the form:
+
+ if (utf8ness_flag == UTF8NESS_YES) {
+ treat as utf8; // like turning on an SV UTF-8 flag
+ }
+
+=item C<UTF8NESS_NO>
+
+This means the string definitely should be treated as a sequence of bytes, not
+encoded as UTF-8.
+
+=item C<UTF8NESS_IMMATERIAL>
+
+This means it is equally valid to treat the string as bytes, or as UTF-8
+characters; use whichever way you want. This happens when the string consists
+entirely of characters which have the same representation whether encoded in
+UTF-8 or not.
+
+=item C<UTF8NESS_UNKNOWN>
+
+This means it is unknown how the string should be treated. No core function
+will ever return this value to a non-core caller. Instead, it is used by the
+caller to initialize a variable to a non-legal value. A typical call will look like:
+
+ utf8ness_t string_is_utf8 = UTF8NESS_UNKNOWN
+ const char * string = foo(arg1, arg2, ..., &string_is_utf8);
+ if (string_is_utf8 == UTF8NESS_YES) {
+ do something for UTF-8;
+ }
+
+=back
+
+The following relationships hold between the enum values:
+
+=over
+
+=item S<C<0 E<lt>= I<enum value> E<lt>= UTF8NESS_IMMATERIAL>>
+
+the string may be treated in code as non-UTF8
+
+=item S<C<UTF8NESS_IMMATERIAL E<lt>= <I<enum value>>>
+
+the string may be treated in code as encoded in UTF-8
+
+=back
+
+=cut
+*/
+
+typedef enum {
+ UTF8NESS_NO = 0, /* Definitely not UTF-8 */
+ UTF8NESS_IMMATERIAL = 1, /* Representation is the same in UTF-8 as
+ not, so the UTF8ness doesn't actually
+ matter */
+ UTF8NESS_YES = 2, /* Defintely is UTF-8, wideness
+ unspecified */
+ UTF8NESS_UNKNOWN = -1, /* Undetermined so far */
+} utf8ness_t;
+
/* Use UTF-8 as the default script encoding?
* Turning this on will break scripts having non-UTF-8 binary
* data (such as Latin-1) in string literals. */
@@ -67,6 +159,15 @@ the string is invariant.
#define utf8n_to_uvchr_error(s, len, lenp, flags, errors) \
utf8n_to_uvchr_msgs(s, len, lenp, flags, errors, 0)
+#define utf16_to_utf8(p, d, bytelen, newlen) \
+ utf16_to_utf8_base(p, d, bytelen, newlen, 0, 1)
+#define utf16_to_utf8_reversed(p, d, bytelen, newlen) \
+ utf16_to_utf8_base(p, d, bytelen, newlen, 1, 0)
+#define utf8_to_utf16(p, d, bytelen, newlen) \
+ utf8_to_utf16_base(p, d, bytelen, newlen, 0, 1)
+#define utf8_to_utf16_reversed(p, d, bytelen, newlen) \
+ utf8_to_utf16_base(p, d, bytelen, newlen, 1, 0)
+
#define to_uni_fold(c, p, lenp) _to_uni_fold_flags(c, p, lenp, FOLD_FLAGS_FULL)
#define foldEQ_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2) \
@@ -78,32 +179,31 @@ the string is invariant.
#define FOLDEQ_S1_FOLDS_SANE (1 << 4)
#define FOLDEQ_S2_FOLDS_SANE (1 << 5)
-#ifdef EBCDIC
-/* The equivalent of these macros but implementing UTF-EBCDIC
- are in the following header file:
- */
-
-#include "utfebcdic.h"
+/* This will be described more fully below, but it turns out that the
+ * fundamental difference between UTF-8 and UTF-EBCDIC is that the former has
+ * the upper 2 bits of a continuation byte be '10', and the latter has the
+ * upper 3 bits be '101', leaving 6 and 5 significant bits respectively.
+ *
+ * It is helpful to know the EBCDIC value on ASCII platforms, mainly to avoid
+ * some #ifdef's */
+#define UTF_EBCDIC_CONTINUATION_BYTE_INFO_BITS 5
-#else /* ! EBCDIC */
-START_EXTERN_C
+/* See explanation below at 'UTF8_MAXBYTES' */
+#define ASCII_PLATFORM_UTF8_MAXBYTES 13
-/*
+#ifdef EBCDIC
-=for apidoc AmnU|STRLEN|UTF8_MAXBYTES
+/* The equivalent of the next few macros but implementing UTF-EBCDIC are in the
+ * following header file: */
+# include "utfebcdic.h"
-The maximum width of a single UTF-8 encoded character, in bytes.
+# else /* ! EBCDIC */
-NOTE: Strictly speaking Perl's UTF-8 should not be called UTF-8 since UTF-8
-is an encoding of Unicode, and Unicode's upper limit, 0x10FFFF, can be
-expressed with 4 bytes. However, Perl thinks of UTF-8 as a way to encode
-non-negative integers in a binary format, even those above Unicode.
-
-=cut
- */
-#define UTF8_MAXBYTES 13
+START_EXTERN_C
-#ifdef DOINIT
+# ifndef DOINIT
+EXTCONST unsigned char PL_utf8skip[];
+# else
EXTCONST unsigned char PL_utf8skip[] = {
/* 0x00 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ascii */
/* 0x10 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ascii */
@@ -125,11 +225,9 @@ EXTCONST unsigned char PL_utf8skip[] = {
/* Perl extended (never was official UTF-8). Up to 36 bit */
/* 0xFE */ 7,
/* More extended, Up to 72 bits (64-bit + reserved) */
-/* 0xFF */ UTF8_MAXBYTES
+/* 0xFF */ ASCII_PLATFORM_UTF8_MAXBYTES
};
-#else
-EXTCONST unsigned char PL_utf8skip[];
-#endif
+# endif
END_EXTERN_C
@@ -178,8 +276,8 @@ adding no time nor space requirements to the implementation.
=cut
*/
-#define NATIVE_TO_LATIN1(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
-#define LATIN1_TO_NATIVE(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
+#define NATIVE_TO_LATIN1(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch)))
+#define LATIN1_TO_NATIVE(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch)))
/* I8 is an intermediate version of UTF-8 used only in UTF-EBCDIC. We thus
* consider it to be identical to UTF-8 on ASCII platforms. Strictly speaking
@@ -187,11 +285,11 @@ adding no time nor space requirements to the implementation.
* because they are 8-bit encodings that serve the same purpose in Perl, and
* rarely do we need to distinguish them. The term "NATIVE_UTF8" applies to
* whichever one is applicable on the current platform */
-#define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
-#define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
+#define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch)))
+#define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch)))
-#define UNI_TO_NATIVE(ch) ((UV) ((ch) | 0))
-#define NATIVE_TO_UNI(ch) ((UV) ((ch) | 0))
+#define UNI_TO_NATIVE(ch) ((UV) ASSERT_NOT_PTR(ch))
+#define NATIVE_TO_UNI(ch) ((UV) ASSERT_NOT_PTR(ch))
/*
@@ -226,10 +324,7 @@ possible to UTF-8-encode a single code point in different ways, but that is
explicitly forbidden, and the shortest possible encoding should always be used
(and that is what Perl does). The non-shortest ones are called 'overlongs'.
- */
-
-/*
- Another way to look at it, as bits:
+Another way to look at it, as bits:
Code Points 1st Byte 2nd Byte 3rd Byte 4th Byte
@@ -252,27 +347,30 @@ are in the character. */
* sequence contributes to the specification of the code point. In the bit
* maps above, you see that the first 2 bits are a constant '10', leaving 6 of
* real information */
-#define UTF_ACCUMULATION_SHIFT 6
+# define UTF_CONTINUATION_BYTE_INFO_BITS 6
/* ^? is defined to be DEL on ASCII systems. See the definition of toCTRL()
* for more */
-#define QUESTION_MARK_CTRL DEL_NATIVE
+# define QUESTION_MARK_CTRL DEL_NATIVE
-/* Surrogates, non-character code points and above-Unicode code points are
- * problematic in some contexts. This allows code that needs to check for
- * those to quickly exclude the vast majority of code points it will
- * encounter */
-#define isUTF8_POSSIBLY_PROBLEMATIC(c) (__ASSERT_(FITS_IN_8_BITS(c)) \
- (U8) c >= 0xED)
+#endif /* EBCDIC vs ASCII */
-#define UNICODE_IS_PERL_EXTENDED(uv) UNLIKELY((UV) (uv) > 0x7FFFFFFF)
+/* It turns out that in a number of cases, that handling ASCII vs EBCDIC is a
+ * matter of being off-by-one. So this is a convenience macro, used to avoid
+ * some #ifdefs. */
+#define ONE_IF_EBCDIC_ZERO_IF_NOT \
+ (UTF_CONTINUATION_BYTE_INFO_BITS == UTF_EBCDIC_CONTINUATION_BYTE_INFO_BITS)
-#endif /* EBCDIC vs ASCII */
+/* Since the significant bits in a continuation byte are stored in the
+ * least-significant positions, we often find ourselves shifting by that
+ * amount. This is a clearer name in such situations */
+#define UTF_ACCUMULATION_SHIFT UTF_CONTINUATION_BYTE_INFO_BITS
-/* 2**UTF_ACCUMULATION_SHIFT - 1. This masks out all but the bits that carry
- * real information in a continuation byte. This turns out to be 0x3F in
- * UTF-8, 0x1F in UTF-EBCDIC. */
-#define UTF_CONTINUATION_MASK ((U8) (nBIT_MASK(UTF_ACCUMULATION_SHIFT)))
+/* 2**info_bits - 1. This masks out all but the bits that carry real
+ * information in a continuation byte. This turns out to be 0x3F in UTF-8,
+ * 0x1F in UTF-EBCDIC. */
+#define UTF_CONTINUATION_MASK \
+ ((U8) nBIT_MASK(UTF_CONTINUATION_BYTE_INFO_BITS))
/* For use in UTF8_IS_CONTINUATION(). This turns out to be 0xC0 in UTF-8,
* E0 in UTF-EBCDIC */
@@ -281,9 +379,13 @@ are in the character. */
/* This defines the bits that are to be in the continuation bytes of a
* multi-byte UTF-8 encoded character that mark it is a continuation byte.
* This turns out to be 0x80 in UTF-8, 0xA0 in UTF-EBCDIC. (khw doesn't know
- * the underlying reason that B0 works here) */
+ * the underlying reason that B0 works here, except it just happens to work.
+ * One could solve for two linear equations and come up with it.) */
#define UTF_CONTINUATION_MARK (UTF_IS_CONTINUATION_MASK & 0xB0)
+/* This value is clearer in some contexts */
+#define UTF_MIN_CONTINUATION_BYTE UTF_CONTINUATION_MARK
+
/* Is the byte 'c' part of a multi-byte UTF8-8 encoded sequence, and not the
* first byte thereof? */
#define UTF8_IS_CONTINUATION(c) (__ASSERT_(FITS_IN_8_BITS(c)) \
@@ -293,7 +395,8 @@ are in the character. */
/* Is the representation of the Unicode code point 'cp' the same regardless of
* being encoded in UTF-8 or not? This is a fundamental property of
* UTF-8,EBCDIC */
-#define OFFUNI_IS_INVARIANT(c) (((WIDEST_UTYPE)(c)) < UTF_CONTINUATION_MARK)
+#define OFFUNI_IS_INVARIANT(c) \
+ (((WIDEST_UTYPE)(c)) < UTF_MIN_CONTINUATION_BYTE)
/*
=for apidoc Am|bool|UVCHR_IS_INVARIANT|UV cp
@@ -307,54 +410,142 @@ C<cp> is Unicode if above 255; otherwise is platform-native.
*/
#define UVCHR_IS_INVARIANT(cp) (OFFUNI_IS_INVARIANT(NATIVE_TO_UNI(cp)))
-/* Internal macro to be used only in this file to aid in constructing other
- * publicly accessible macros.
- * The number of bytes required to express this uv in UTF-8, for just those
- * uv's requiring 2 through 6 bytes, as these are common to all platforms and
- * word sizes. The number of bytes needed is given by the number of leading 1
- * bits in the start byte. There are 32 start bytes that have 2 initial 1 bits
- * (C0-DF); there are 16 that have 3 initial 1 bits (E0-EF); 8 that have 4
- * initial 1 bits (F0-F8); 4 that have 5 initial 1 bits (F9-FB), and 2 that
- * have 6 initial 1 bits (FC-FD). The largest number a string of n bytes can
- * represent is (the number of possible start bytes for 'n')
- * * (the number of possiblities for each start byte
- * The latter in turn is
- * 2 ** ( (how many continuation bytes there are)
- * * (the number of bits of information each
- * continuation byte holds))
+/* This defines the 1-bits that are to be in the first byte of a multi-byte
+ * UTF-8 encoded character that mark it as a start byte and give the number of
+ * bytes that comprise the character. 'len' is that number.
*
- * If we were on a platform where we could use a fast find first set bit
- * instruction (or count leading zeros instruction) this could be replaced by
- * using that to find the log2 of the uv, and divide that by the number of bits
- * of information in each continuation byte, adjusting for large cases and how
- * much information is in a start byte for that length */
-#define __COMMON_UNI_SKIP(uv) \
- (UV) (uv) < (32 * (1U << ( UTF_ACCUMULATION_SHIFT))) ? 2 : \
- (UV) (uv) < (16 * (1U << (2 * UTF_ACCUMULATION_SHIFT))) ? 3 : \
- (UV) (uv) < ( 8 * (1U << (3 * UTF_ACCUMULATION_SHIFT))) ? 4 : \
- (UV) (uv) < ( 4 * (1U << (4 * UTF_ACCUMULATION_SHIFT))) ? 5 : \
- (UV) (uv) < ( 2 * (1U << (5 * UTF_ACCUMULATION_SHIFT))) ? 6 :
-
-/* Internal macro to be used only in this file.
- * This adds to __COMMON_UNI_SKIP the details at this platform's upper range.
- * For any-sized EBCDIC platforms, or 64-bit ASCII ones, we need one more test
- * to see if just 7 bytes is needed, or if the maximum is needed. For 32-bit
- * ASCII platforms, everything is representable by 7 bytes */
-#if defined(UV_IS_QUAD) || defined(EBCDIC)
-# define __BASE_UNI_SKIP(uv) (__COMMON_UNI_SKIP(uv) \
- LIKELY((UV) (uv) < ((UV) 1U << (6 * UTF_ACCUMULATION_SHIFT))) \
- ? 7 \
- : UTF8_MAXBYTES)
-#else
-# define __BASE_UNI_SKIP(uv) (__COMMON_UNI_SKIP(uv) 7)
-#endif
+ * To illustrate: len = 2 => ((U8) ~ 0b0011_1111) or 1100_0000
+ * 7 => ((U8) ~ 0b0000_0001) or 1111_1110
+ * > 7 => 0xFF
+ *
+ * This is not to be used on a single-byte character. As in many places in
+ * perl, U8 must be 8 bits
+ */
+#define UTF_START_MARK(len) ((U8) ~(0xFF >> (len)))
-/* The next two macros use the base macro defined above, and add in the tests
- * at the low-end of the range, for just 1 byte, yielding complete macros,
- * publicly accessible. */
+/* Masks out the initial one bits in a start byte, leaving the following 0 bit
+ * and the real data bits. 'len' is the number of bytes in the multi-byte
+ * sequence that comprises the character.
+ *
+ * To illustrate: len = 2 => 0b0011_1111 works on start byte 110xxxxx
+ * 6 => 0b0000_0011 works on start byte 1111110x
+ * >= 7 => There are no data bits in the start byte
+ * Note that on ASCII platforms, this can be passed a len=1 byte; and all the
+ * real data bits will be returned:
+ len = 1 => 0b0111_1111
+ * This isn't true on EBCDIC platforms, where some len=1 bytes are of the form
+ * 0b101x_xxxx, so this can't be used there on single-byte characters. */
+#define UTF_START_MASK(len) (0xFF >> (len))
-/* Input is a true Unicode (not-native) code point */
-#define OFFUNISKIP(uv) (OFFUNI_IS_INVARIANT(uv) ? 1 : __BASE_UNI_SKIP(uv))
+/*
+
+=for apidoc AmnU|STRLEN|UTF8_MAXBYTES
+
+The maximum width of a single UTF-8 encoded character, in bytes.
+
+NOTE: Strictly speaking Perl's UTF-8 should not be called UTF-8 since UTF-8
+is an encoding of Unicode, and Unicode's upper limit, 0x10FFFF, can be
+expressed with 4 bytes. However, Perl thinks of UTF-8 as a way to encode
+non-negative integers in a binary format, even those above Unicode.
+
+=cut
+
+The start byte 0xFE, never used in any ASCII platform UTF-8 specification, has
+an obvious meaning, namely it has its upper 7 bits set, so it should start a
+sequence of 7 bytes. And in fact, this is exactly what standard UTF-EBCDIC
+does.
+
+The start byte FF, on the other hand could have several different plausible
+meanings:
+ 1) The meaning in standard UTF-EBCDIC, namely as an FE start byte, with the
+ bottom bit that should be a fixed '0' to form FE, instead acting as an
+ info bit, 0 or 1.
+ 2) That the sequence should have exactly 8 bytes.
+ 3) That the next byte is to be treated as a sort of extended start byte,
+ which in combination with this one gives the total length of the sequence.
+ There are published UTF-8 extensions that do this, some string together
+ multiple initial FF start bytes to achieve arbitrary precision.
+ 4) That the sequence has exactly n bytes, where n is what the implementation
+ chooses.
+
+Perl has chosen 4).
+The goal is to be able to represent 64-bit values in UTF-8 or UTF-EBCDIC. That
+rules out items 1) and 2). Item 3) has the deal-breaking disadvantage of
+requiring one to read more than one byte to determine the total length of the
+sequence. So in Perl, a start byte of FF indicates a UTF-8 string consisting
+of the start byte, plus enough continuation bytes to encode a 64 bit value.
+This turns out to be 13 total bytes in UTF-8 and 14 in UTF-EBCDIC. This is
+because we get zero info bits from the start byte, plus
+ 12 * 6 bits of info per continuation byte (could encode 72-bit numbers) on
+ UTF-8 (khw knows not why 11, which would encode 66 bits wasn't
+ chosen instead); and
+ 13 * 5 bits of info per byte (could encode 65-bit numbers) on UTF-EBCDIC
+
+The disadvantages of this method are:
+ 1) There's potentially a lot of wasted bytes for all but the largest values.
+ For example, something that could be represented by 7 continuation bytes,
+ instead requires the full 12 or 13.
+ 2) There would be problems should larger values, 128-bit say, ever need to be
+ represented.
+
+WARNING: This number must be in sync with the value in
+regen/charset_translations.pl. */
+#define UTF8_MAXBYTES \
+ (ASCII_PLATFORM_UTF8_MAXBYTES + ONE_IF_EBCDIC_ZERO_IF_NOT)
+
+/* Calculate how many bytes are necessary to represent a value whose most
+ * significant 1 bit is in bit position 'pos' of the word. For 0x1, 'pos would
+ * be 0; and for 0x400, 'pos' would be 10, and the result would be:
+ * EBCDIC floor((-1 + (10 + 5 - 1 - 1)) / (5 - 1))
+ * = floor((-1 + (13)) / 4)
+ * = floor(12 / 4)
+ * = 3
+ * ASCII floor(( 0 + (10 + 6 - 1 - 1)) / (6 - 1))
+ * = floor(14 / 5)
+ * = 2
+ * The reason this works is because the number of bits needed to represent a
+ * value is proportional to (UTF_CONTINUATION_BYTE_INFO_BITS - 1). The -1 is
+ * because each new continuation byte removes one bit of information from the
+ * start byte.
+ *
+ * This is a step function (we need to allocate a full extra byte if we
+ * overflow by just a single bit)
+ *
+ * The caller is responsible for making sure 'pos' is at least 8 (occupies 9
+ * bits), as it breaks down at the lower edge. At the high end, if it returns
+ * 8 or more, Perl instead anomalously uses MAX_BYTES, so this would be wrong.
+ * */
+#define UNISKIP_BY_MSB_(pos) \
+ ( ( -ONE_IF_EBCDIC_ZERO_IF_NOT /* platform break pos's are off-by-one */ \
+ + (pos) + ((UTF_CONTINUATION_BYTE_INFO_BITS - 1) - 1)) /* Step fcn */ \
+ / (UTF_CONTINUATION_BYTE_INFO_BITS - 1)) /* take floor of */
+
+/* Compute the number of UTF-8 bytes required for representing the input uv,
+ * which must be a Unicode, not native value.
+ *
+ * This uses msbit_pos() which doesn't work on NUL, and UNISKIP_BY_MSB_ breaks
+ * down for small code points. So first check if the input is invariant to get
+ * around that, and use a helper for high code points to accommodate the fact
+ * that above 7 btyes, the value is anomalous. The helper is empty on
+ * platforms that don't go that high */
+#define OFFUNISKIP(uv) \
+ ((OFFUNI_IS_INVARIANT(uv)) \
+ ? 1 \
+ : (OFFUNISKIP_helper_(uv) UNISKIP_BY_MSB_(msbit_pos(uv))))
+
+/* We need to go to MAX_BYTES when we can't represent 'uv' by the number of
+ * information bits in 6 continuation bytes (when we get to 6, the start byte
+ * has no information bits to add to the total). But on 32-bit ASCII
+ * platforms, that doesn't happen until 6*6 bits, so on those platforms, this
+ * will always be false */
+#if UVSIZE * CHARBITS > (6 * UTF_CONTINUATION_BYTE_INFO_BITS)
+# define HAS_EXTRA_LONG_UTF8
+# define OFFUNISKIP_helper_(uv) \
+ UNLIKELY(uv > nBIT_UMAX(6 * UTF_CONTINUATION_BYTE_INFO_BITS)) \
+ ? UTF8_MAXBYTES :
+#else
+# define OFFUNISKIP_helper_(uv)
+#endif
/*
@@ -365,10 +556,56 @@ encoded as UTF-8. C<cp> is a native (ASCII or EBCDIC) code point if less than
=cut
*/
-#define UVCHR_SKIP(uv) ( UVCHR_IS_INVARIANT(uv) ? 1 : __BASE_UNI_SKIP(uv))
+#define UVCHR_SKIP(uv) OFFUNISKIP(NATIVE_TO_UNI(uv))
+
+#define NATIVE_SKIP(uv) UVCHR_SKIP(uv) /* Old terminology */
+
+/* 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 UVCHR_SKIP,
+ * NATIVE_SKIP, or OFFUNISKIP */
+#define UNISKIP(uv) UVCHR_SKIP(uv)
+
+/* Compute the start byte for a given code point. This requires the log2 of
+ * the code point, which is hard to compute at compile time, which this macro
+ * wants to be. (Perhaps deBruijn sequences could be used.) So a parameter
+ * for the number of bits the value occupies is passed in, which the programmer
+ * has had to figure out to get compile-time effect. And asserts are used to
+ * make sure the value is correct.
+ *
+ * Since we are interested only in the start byte, we ignore the lower bits
+ * accounted for by the continuation bytes. Each continuation byte eats up
+ * UTF_CONTINUATION_BYTE_INFO_BITS bits, so the number of continuation bytes
+ * needed is floor(bits / UTF_CONTINUATION_BYTE_INFO_BITS). That number is fed
+ * to UTF_START_MARK() to get the upper part of the start byte. The left over
+ * bits form the lower part which is OR'd with the mark
+ *
+ * Note that on EBCDIC platforms, this is actually the I8 */
+#define UTF_START_BYTE(uv, bits) \
+ (__ASSERT_((uv) >> ((bits) - 1)) /* At least 'bits' */ \
+ __ASSERT_(((uv) & ~nBIT_MASK(bits)) == 0) /* No extra bits */ \
+ UTF_START_MARK(UNISKIP_BY_MSB_((bits) - 1)) \
+ | ((uv) >> (((bits) / UTF_CONTINUATION_BYTE_INFO_BITS) \
+ * UTF_CONTINUATION_BYTE_INFO_BITS)))
+
+/* Compute the first continuation byte for a given code point. This is mostly
+ * for compile-time, so how many bits it occupies is also passed in).
+ *
+ * We are interested in the first continuation byte, so we ignore the lower
+ * bits accounted for by the rest of the continuation bytes by right shifting
+ * out their info bit, and mask out the higher bits that will go into the start
+ * byte.
+ *
+ * Note that on EBCDIC platforms, this is actually the I8 */
+#define UTF_FIRST_CONT_BYTE(uv, bits) \
+ (__ASSERT_((uv) >> ((bits) - 1)) /* At least 'bits' */ \
+ __ASSERT_(((uv) & ~nBIT_MASK(bits)) == 0) /* No extra bits */ \
+ UTF_CONTINUATION_MARK \
+ | ( UTF_CONTINUATION_MASK \
+ & ((uv) >> ((((bits) / UTF_CONTINUATION_BYTE_INFO_BITS) - 1) \
+ * UTF_CONTINUATION_BYTE_INFO_BITS))))
-#define UTF_MIN_START_BYTE \
- ((UTF_CONTINUATION_MARK >> UTF_ACCUMULATION_SHIFT) | UTF_START_MARK(2))
+#define UTF_MIN_START_BYTE UTF_START_BYTE(UTF_MIN_CONTINUATION_BYTE, 8)
/* Is the byte 'c' the first byte of a multi-byte UTF8-8 encoded sequence?
* This excludes invariants (they are single-byte). It also excludes the
@@ -385,8 +622,7 @@ encoded as UTF-8. C<cp> is a native (ASCII or EBCDIC) code point if less than
# define UTF8_IS_START(c) UTF8_IS_START_base(c)
#endif
-#define UTF_MIN_ABOVE_LATIN1_BYTE \
- ((0x100 >> UTF_ACCUMULATION_SHIFT) | UTF_START_MARK(2))
+#define UTF_MIN_ABOVE_LATIN1_BYTE UTF_START_BYTE(0x100, 9)
/* Is the UTF8-encoded byte 'c' the first byte of a sequence of bytes that
* represent a code point > 255? */
@@ -397,18 +633,27 @@ encoded as UTF-8. C<cp> is a native (ASCII or EBCDIC) code point if less than
* UTF8_IS_NEXT_CHAR_DOWNGRADEABLE() instead if the input isn't known to
* be well-formed. */
#define UTF8_IS_DOWNGRADEABLE_START(c) (__ASSERT_(FITS_IN_8_BITS(c)) \
- inRANGE(NATIVE_UTF8_TO_I8(c), \
+ inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(c), \
UTF_MIN_START_BYTE, UTF_MIN_ABOVE_LATIN1_BYTE - 1))
/* The largest code point representable by two UTF-8 bytes on this platform.
- * As explained in the comments for __COMMON_UNI_SKIP, 32 start bytes with
- * UTF_ACCUMULATION_SHIFT bits of information each */
-#define MAX_UTF8_TWO_BYTE (32 * (1U << UTF_ACCUMULATION_SHIFT) - 1)
+ * The binary for that code point is:
+ * 1101_1111 10xx_xxxx in UTF-8, and
+ * 1101_1111 101y_yyyy in UTF-EBCDIC I8.
+ * where both x and y are 1, and shown this way to indicate there is one more x
+ * than there is y. The number of x and y bits are their platform's respective
+ * UTF_CONTINUATION_BYTE_INFO_BITS. Squeezing out the bits that don't
+ * contribute to the value, these evaluate to:
+ * 1_1111 xx_xxxx in UTF-8, and
+ * 1_1111 y_yyyy in UTF-EBCDIC I8.
+ * or, the maximum value of an unsigned with (5 + info_bit_count) bits */
+#define MAX_UTF8_TWO_BYTE nBIT_UMAX(5 + UTF_CONTINUATION_BYTE_INFO_BITS)
/* The largest code point representable by two UTF-8 bytes on any platform that
- * Perl runs on. This value is constrained by EBCDIC which has 5 bits per
- * continuation byte */
-#define MAX_PORTABLE_UTF8_TWO_BYTE (32 * nBIT_UMAX(5))
+ * Perl runs on. */
+#define MAX_PORTABLE_UTF8_TWO_BYTE \
+ nBIT_UMAX(5 + MIN( UTF_CONTINUATION_BYTE_INFO_BITS, \
+ UTF_EBCDIC_CONTINUATION_BYTE_INFO_BITS))
/*
@@ -428,8 +673,8 @@ uppercase/lowercase/titlecase/fold into.
*
=cut
*/
-#define UTF8_MAXBYTES_CASE \
- MAX(UTF8_MAXBYTES, UTF8_MAX_FOLD_CHAR_EXPAND * OFFUNISKIP(0x10FFFF))
+#define UTF8_MAXBYTES_CASE \
+ MAX(UTF8_MAXBYTES, UTF8_MAX_FOLD_CHAR_EXPAND * UNISKIP_BY_MSB_(20))
/* Rest of these are attributes of Unicode and perl's internals rather than the
* encoding, or happen to be the same in both ASCII and EBCDIC (at least at
@@ -448,19 +693,6 @@ uppercase/lowercase/titlecase/fold into.
#define I8_TO_NATIVE(ch) I8_TO_NATIVE_UTF8(ch)
#define NATIVE8_TO_UNI(ch) NATIVE_TO_LATIN1(ch)
-/* This defines the 1-bits that are to be in the first byte of a multi-byte
- * UTF-8 encoded character that mark it as a start byte and give the number of
- * bytes that comprise the character. 'len' is the number of bytes in the
- * multi-byte sequence. */
-#define UTF_START_MARK(len) (UNLIKELY((len) > 7) \
- ? 0xFF \
- : ((U8) (0xFE << (7-(len)))))
-
-/* Masks out the initial one bits in a start byte, leaving the real data ones.
- * Doesn't work on an invariant byte. 'len' is the number of bytes in the
- * multi-byte sequence that comprises the character. */
-#define UTF_START_MASK(len) (UNLIKELY((len) >= 7) ? 0x00 : (0x1F >> ((len)-2)))
-
/* Adds a UTF8 continuation byte 'new' of information to a running total code
* point 'old' of all the continuation bytes so far. This is designed to be
* used in a loop to convert from UTF-8 to the code point represented. Note
@@ -474,19 +706,10 @@ uppercase/lowercase/titlecase/fold into.
/* This works in the face of malformed UTF-8. */
#define UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(s, e) \
- ( UTF8_IS_DOWNGRADEABLE_START(*(s)) \
- && ( (e) - (s) > 1) \
+ ( ( (e) - (s) > 1) \
+ && UTF8_IS_DOWNGRADEABLE_START(*(s)) \
&& UTF8_IS_CONTINUATION(*((s)+1)))
-/* Number of bytes a code point occupies in UTF-8. */
-#define NATIVE_SKIP(uv) UVCHR_SKIP(uv)
-
-/* 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 UVCHR_SKIP,
- * NATIVE_SKIP, or OFFUNISKIP */
-#define UNISKIP(uv) UVCHR_SKIP(uv)
-
/* Longer, but more accurate name */
#define UTF8_IS_ABOVE_LATIN1_START(c) UTF8_IS_ABOVE_LATIN1(c)
@@ -513,7 +736,7 @@ uppercase/lowercase/titlecase/fold into.
#define TWO_BYTE_UTF8_TO_NATIVE(HI, LO) \
(__ASSERT_(FITS_IN_8_BITS(HI)) \
__ASSERT_(FITS_IN_8_BITS(LO)) \
- __ASSERT_(PL_utf8skip[HI] == 2) \
+ __ASSERT_(PL_utf8skip[(U8) HI] == 2) \
__ASSERT_(UTF8_IS_CONTINUATION(LO)) \
UNI_TO_NATIVE(UTF8_ACCUMULATE((NATIVE_UTF8_TO_I8(HI) & UTF_START_MASK(2)), \
(LO))))
@@ -545,7 +768,7 @@ of the input buffer.
=cut
*/
-#define UTF8SKIP(s) PL_utf8skip[*(const U8*)(s)]
+#define UTF8SKIP(s) PL_utf8skip[*(const U8*)(ASSERT_IS_PTR(s))]
/*
=for apidoc Am|STRLEN|UTF8_SKIP|char* s
@@ -615,10 +838,8 @@ The reason it works on both UTF-8 encoded strings and non-UTF-8 encoded, is
that it returns TRUE in each for the exact same set of bit patterns. It is
valid on a subset of what UVCHR_IS_INVARIANT is valid on, so can just use that;
and the compiler should optimize out anything extraneous given the
-implementation of the latter. The |0 makes sure this isn't mistakenly called
-with a ptr argument.
-*/
-#define UTF8_IS_INVARIANT(c) UVCHR_IS_INVARIANT((c) | 0)
+implementation of the latter. */
+#define UTF8_IS_INVARIANT(c) UVCHR_IS_INVARIANT(ASSERT_NOT_PTR(c))
/* Like the above, but its name implies a non-UTF8 input, which as the comments
* above show, doesn't matter as to its implementation */
@@ -695,12 +916,12 @@ with a ptr argument.
: isWORDCHAR_utf8_safe((U8 *) p, (U8 *) e))
#define isALNUM_lazy_if_safe(p, e, UTF) isWORDCHAR_lazy_if_safe(p, e, UTF)
-#define UTF8_MAXLEN UTF8_MAXBYTES
+#define UTF8_MAXLEN UTF8_MAXBYTES
/* A Unicode character can fold to up to 3 characters */
-#define UTF8_MAX_FOLD_CHAR_EXPAND 3
+#define UTF8_MAX_FOLD_CHAR_EXPAND 3
-#define IN_BYTES UNLIKELY(CopHINTS_get(PL_curcop) & HINT_BYTES)
+#define IN_BYTES UNLIKELY(CopHINTS_get(PL_curcop) & HINT_BYTES)
/*
@@ -717,8 +938,8 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
/* Should all strings be treated as Unicode, and not just UTF-8 encoded ones?
* Is so within 'feature unicode_strings' or 'locale :not_characters', and not
- * within 'use bytes'. UTF-8 locales are not tested for here, but perhaps
- * could be */
+ * within 'use bytes'. UTF-8 locales are not tested for here, because it gets
+ * complicated by the probability of having categories in different locales. */
#define IN_UNI_8_BIT \
(( ( (CopHINTS_get(PL_curcop) & HINT_UNI_8_BIT)) \
|| ( CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL \
@@ -726,6 +947,188 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
&& _is_in_locale_category(FALSE, -1))) \
&& (! IN_BYTES))
+#define UNICODE_SURROGATE_FIRST 0xD800
+#define UNICODE_SURROGATE_LAST 0xDFFF
+
+/*
+=for apidoc Am|bool|UNICODE_IS_SURROGATE|const UV uv
+
+Returns a boolean as to whether or not C<uv> is one of the Unicode surrogate
+code points
+
+=for apidoc Am|bool|UTF8_IS_SURROGATE|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents one
+of the Unicode surrogate code points; otherwise it evaluates to 0. If
+non-zero, the value gives how many bytes starting at C<s> comprise the code
+point's representation.
+
+=cut
+ */
+
+#define UNICODE_IS_SURROGATE(uv) UNLIKELY(inRANGE(uv, UNICODE_SURROGATE_FIRST, \
+ UNICODE_SURROGATE_LAST))
+#define UTF8_IS_SURROGATE(s, e) is_SURROGATE_utf8_safe(s, e)
+
+/*
+
+=for apidoc AmnU|UV|UNICODE_REPLACEMENT
+
+Evaluates to 0xFFFD, the code point of the Unicode REPLACEMENT CHARACTER
+
+=for apidoc Am|bool|UNICODE_IS_REPLACEMENT|const UV uv
+
+Returns a boolean as to whether or not C<uv> is the Unicode REPLACEMENT
+CHARACTER
+
+=for apidoc Am|bool|UTF8_IS_REPLACEMENT|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents the
+Unicode REPLACEMENT CHARACTER; otherwise it evaluates to 0. If non-zero, the
+value gives how many bytes starting at C<s> comprise the code point's
+representation.
+
+=cut
+ */
+#define UNICODE_REPLACEMENT 0xFFFD
+#define UNICODE_IS_REPLACEMENT(uv) UNLIKELY((UV) (uv) == UNICODE_REPLACEMENT)
+#define UTF8_IS_REPLACEMENT(s, send) \
+ UNLIKELY( \
+ ((send) - (s)) >= ((SSize_t)(sizeof(REPLACEMENT_CHARACTER_UTF8) - 1))\
+ && memEQ((s), REPLACEMENT_CHARACTER_UTF8, \
+ sizeof(REPLACEMENT_CHARACTER_UTF8) - 1))
+
+/* Max legal code point according to Unicode */
+#define PERL_UNICODE_MAX 0x10FFFF
+
+/*
+
+=for apidoc Am|bool|UNICODE_IS_SUPER|const UV uv
+
+Returns a boolean as to whether or not C<uv> is above the maximum legal Unicode
+code point of U+10FFFF.
+
+=cut
+*/
+
+#define UNICODE_IS_SUPER(uv) UNLIKELY((UV) (uv) > PERL_UNICODE_MAX)
+
+/*
+=for apidoc Am|bool|UTF8_IS_SUPER|const U8 *s|const U8 *e
+
+Recall that Perl recognizes an extension to UTF-8 that can encode code
+points larger than the ones defined by Unicode, which are 0..0x10FFFF.
+
+This macro evaluates to non-zero if the first few bytes of the string starting
+at C<s> and looking no further than S<C<e - 1>> are from this UTF-8 extension;
+otherwise it evaluates to 0. If non-zero, the return is how many bytes
+starting at C<s> comprise the code point's representation.
+
+0 is returned if the bytes are not well-formed extended UTF-8, or if they
+represent a code point that cannot fit in a UV on the current platform. Hence
+this macro can give different results when run on a 64-bit word machine than on
+one with a 32-bit word size.
+
+Note that it is illegal in Perl to have code points that are larger than what can
+fit in an IV on the current machine; and illegal in Unicode to have any that
+this macro matches
+
+=cut
+
+ * ASCII EBCDIC I8
+ * 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
+ */
+#define UTF_START_BYTE_110000_ UTF_START_BYTE(PERL_UNICODE_MAX + 1, 21)
+#define UTF_FIRST_CONT_BYTE_110000_ \
+ UTF_FIRST_CONT_BYTE(PERL_UNICODE_MAX + 1, 21)
+#define UTF8_IS_SUPER(s, e) \
+ ( ((e) - (s)) >= UNISKIP_BY_MSB_(20) \
+ && ( NATIVE_UTF8_TO_I8(s[0]) >= UTF_START_BYTE_110000_ \
+ && ( NATIVE_UTF8_TO_I8(s[0]) > UTF_START_BYTE_110000_ \
+ || NATIVE_UTF8_TO_I8(s[1]) >= UTF_FIRST_CONT_BYTE_110000_))) \
+ ? isUTF8_CHAR(s, e) \
+ : 0
+
+/*
+=for apidoc Am|bool|UNICODE_IS_NONCHAR|const UV uv
+
+Returns a boolean as to whether or not C<uv> is one of the Unicode
+non-character code points
+
+=cut
+*/
+
+/* Is 'uv' one of the 32 contiguous-range noncharacters? */
+#define UNICODE_IS_32_CONTIGUOUS_NONCHARS(uv) \
+ UNLIKELY(inRANGE(uv, 0xFDD0, 0xFDEF))
+
+/* Is 'uv' one of the 34 plane-ending noncharacters 0xFFFE, 0xFFFF, 0x1FFFE,
+ * 0x1FFFF, ... 0x10FFFE, 0x10FFFF, given that we know that 'uv' is not above
+ * the Unicode legal max */
+#define UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER(uv) \
+ UNLIKELY(((UV) (uv) & 0xFFFE) == 0xFFFE)
+
+#define UNICODE_IS_NONCHAR(uv) \
+ ( UNLIKELY(UNICODE_IS_32_CONTIGUOUS_NONCHARS(uv)) \
+ || ( UNLIKELY(UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER(uv)) \
+ && LIKELY(! UNICODE_IS_SUPER(uv))))
+
+/*
+=for apidoc Am|bool|UTF8_IS_NONCHAR|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents one
+of the Unicode non-character code points; otherwise it evaluates to 0. If
+non-zero, the value gives how many bytes starting at C<s> comprise the code
+point's representation.
+
+=cut
+*/
+#define UTF8_IS_NONCHAR(s, e) is_NONCHAR_utf8_safe(s,e)
+
+/* This is now machine generated, and the 'given' clause is no longer
+ * applicable */
+#define UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s, e) \
+ UTF8_IS_NONCHAR(s, e)
+
+/* Surrogates, non-character code points and above-Unicode code points are
+ * problematic in some contexts. These macros allow code that needs to check
+ * for those to quickly exclude the vast majority of code points it will
+ * encounter.
+ *
+ * The lowest such code point is the smallest surrogate, U+D800. We calculate
+ * the start byte of that. 0xD800 occupies 16 bits. */
+#define isUNICODE_POSSIBLY_PROBLEMATIC(uv) ((uv) >= UNICODE_SURROGATE_FIRST)
+#define isUTF8_POSSIBLY_PROBLEMATIC(c) \
+ (NATIVE_UTF8_TO_I8(c) >= UTF_START_BYTE(UNICODE_SURROGATE_FIRST, 16))
+
+/* Perl extends Unicode so that it is possible to encode (as extended UTF-8 or
+ * UTF-EBCDIC) any 64-bit value. No standard known to khw ever encoded higher
+ * than a 31 bit value. On ASCII platforms this just meant arbitrarily saying
+ * nothing could be higher than this. On these the start byte FD gets you to
+ * 31 bits, and FE and FF are forbidden as start bytes. On EBCDIC platforms,
+ * FD gets you only to 26 bits; adding FE to mean 7 total bytes gets you to 30
+ * bits. To get to 31 bits, they treated an initial FF byte idiosyncratically.
+ * It was considered to be the start byte FE meaning it had 7 total bytes, and
+ * the final 1 was treated as an information bit, getting you to 31 bits.
+ *
+ * Perl used to accept this idiosyncratic interpretation of FF, but now rejects
+ * it in order to get to being able to encode 64 bits. The bottom line is that
+ * it is a Perl extension to use the start bytes FE and FF on ASCII platforms,
+ * and the start byte FF on EBCDIC ones. That translates into that it is a
+ * Perl extension to represent anything occupying more than 31 bits on ASCII
+ * platforms; 30 bits on EBCDIC. */
+#define UNICODE_IS_PERL_EXTENDED(uv) \
+ UNLIKELY((UV) (uv) > nBIT_UMAX(31 - ONE_IF_EBCDIC_ZERO_IF_NOT))
+#define UTF8_IS_PERL_EXTENDED(s) \
+ (UTF8SKIP(s) > 6 + ONE_IF_EBCDIC_ZERO_IF_NOT)
+
+/* Largest code point we accept from external sources */
+#define MAX_LEGAL_CP ((UV)IV_MAX)
#define UTF8_ALLOW_EMPTY 0x0001 /* Allow a zero length string */
#define UTF8_GOT_EMPTY UTF8_ALLOW_EMPTY
@@ -822,100 +1225,6 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
#define UTF8_ALLOW_ANYUV 0
#define UTF8_ALLOW_DEFAULT UTF8_ALLOW_ANYUV
-/*
-=for apidoc Am|bool|UTF8_IS_SURROGATE|const U8 *s|const U8 *e
-
-Evaluates to non-zero if the first few bytes of the string starting at C<s> and
-looking no further than S<C<e - 1>> are well-formed UTF-8 that represents one
-of the Unicode surrogate code points; otherwise it evaluates to 0. If
-non-zero, the value gives how many bytes starting at C<s> comprise the code
-point's representation.
-
-=cut
- */
-#define UTF8_IS_SURROGATE(s, e) is_SURROGATE_utf8_safe(s, e)
-
-
-#define UTF8_IS_REPLACEMENT(s, send) is_REPLACEMENT_utf8_safe(s,send)
-
-#define MAX_LEGAL_CP ((UV)IV_MAX)
-
-/*
-=for apidoc Am|bool|UTF8_IS_SUPER|const U8 *s|const U8 *e
-
-Recall that Perl recognizes an extension to UTF-8 that can encode code
-points larger than the ones defined by Unicode, which are 0..0x10FFFF.
-
-This macro evaluates to non-zero if the first few bytes of the string starting
-at C<s> and looking no further than S<C<e - 1>> are from this UTF-8 extension;
-otherwise it evaluates to 0. If non-zero, the value gives how many bytes
-starting at C<s> comprise the code point's representation.
-
-0 is returned if the bytes are not well-formed extended UTF-8, or if they
-represent a code point that cannot fit in a UV on the current platform. Hence
-this macro can give different results when run on a 64-bit word machine than on
-one with a 32-bit word size.
-
-Note that it is illegal to have code points that are larger than what can
-fit in an IV on the current machine.
-
-=cut
-
- * ASCII EBCDIC I8
- * 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
- */
-#ifdef EBCDIC
-# define UTF8_IS_SUPER(s, e) \
- (( ((e) > (s) + 4) \
- && (NATIVE_UTF8_TO_I8(*(s)) >= 0xF9) \
- && UNLIKELY( NATIVE_UTF8_TO_I8(*(s)) > 0xF9 \
- || (NATIVE_UTF8_TO_I8(*((s) + 1)) >= 0xA2)) \
- && LIKELY((s) + UTF8SKIP(s) <= (e))) \
- ? is_utf8_char_helper(s, s + UTF8SKIP(s), 0) : 0)
-#else
-# define UTF8_IS_SUPER(s, e) \
- (( ((e) > (s) + 3) \
- && (*(U8*) (s)) >= 0xF4 \
- && (UNLIKELY( ((*(U8*) (s)) > 0xF4) \
- || (*((U8*) (s) + 1) >= 0x90))) \
- && LIKELY((s) + UTF8SKIP(s) <= (e))) \
- ? is_utf8_char_helper(s, s + UTF8SKIP(s), 0) : 0)
-#endif
-
-/* These are now machine generated, and the 'given' clause is no longer
- * applicable */
-#define UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s, e) \
- cBOOL(is_NONCHAR_utf8_safe(s,e))
-
-/*
-=for apidoc Am|bool|UTF8_IS_NONCHAR|const U8 *s|const U8 *e
-
-Evaluates to non-zero if the first few bytes of the string starting at C<s> and
-looking no further than S<C<e - 1>> are well-formed UTF-8 that represents one
-of the Unicode non-character code points; otherwise it evaluates to 0. If
-non-zero, the value gives how many bytes starting at C<s> comprise the code
-point's representation.
-
-=for apidoc AmnU|UV|UNICODE_REPLACEMENT
-
-Evaluates to 0xFFFD, the code point of the Unicode REPLACEMENT CHARACTER
-
-=cut
- */
-#define UTF8_IS_NONCHAR(s, e) \
- UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s, e)
-
-#define UNICODE_SURROGATE_FIRST 0xD800
-#define UNICODE_SURROGATE_LAST 0xDFFF
-#define UNICODE_REPLACEMENT 0xFFFD
-#define UNICODE_BYTE_ORDER_MARK 0xFEFF
-
-/* Though our UTF-8 encoding can go beyond this,
- * let's be conservative and do as Unicode says. */
-#define PERL_UNICODE_MAX 0x10FFFF
-
#define UNICODE_WARN_SURROGATE 0x0001 /* UTF-16 surrogates */
#define UNICODE_WARN_NONCHAR 0x0002 /* Non-char code points */
#define UNICODE_WARN_SUPER 0x0004 /* Above 0x10FFFF */
@@ -950,31 +1259,9 @@ Evaluates to 0xFFFD, the code point of the Unicode REPLACEMENT CHARACTER
#define UNICODE_ALLOW_SUPER 0
#define UNICODE_ALLOW_ANY 0
-/* This matches the 2048 code points between UNICODE_SURROGATE_FIRST (0xD800) and
- * UNICODE_SURROGATE_LAST (0xDFFF) */
-#define UNICODE_IS_SURROGATE(uv) UNLIKELY(((UV) (uv) & (~0xFFFF | 0xF800)) \
- == 0xD800)
-
-#define UNICODE_IS_REPLACEMENT(uv) UNLIKELY((UV) (uv) == UNICODE_REPLACEMENT)
-#define UNICODE_IS_BYTE_ORDER_MARK(uv) UNLIKELY((UV) (uv) \
- == UNICODE_BYTE_ORDER_MARK)
-
-/* Is 'uv' one of the 32 contiguous-range noncharacters? */
-#define UNICODE_IS_32_CONTIGUOUS_NONCHARS(uv) UNLIKELY((UV) (uv) >= 0xFDD0 \
- && (UV) (uv) <= 0xFDEF)
-
-/* Is 'uv' one of the 34 plane-ending noncharacters 0xFFFE, 0xFFFF, 0x1FFFE,
- * 0x1FFFF, ... 0x10FFFE, 0x10FFFF, given that we know that 'uv' is not above
- * the Unicode legal max */
-#define UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER(uv) \
- UNLIKELY(((UV) (uv) & 0xFFFE) == 0xFFFE)
-
-#define UNICODE_IS_NONCHAR(uv) \
- ( UNICODE_IS_32_CONTIGUOUS_NONCHARS(uv) \
- || ( LIKELY( ! UNICODE_IS_SUPER(uv)) \
- && UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER(uv)))
-
-#define UNICODE_IS_SUPER(uv) UNLIKELY((UV) (uv) > PERL_UNICODE_MAX)
+#define UNICODE_BYTE_ORDER_MARK 0xFEFF
+#define UNICODE_IS_BYTE_ORDER_MARK(uv) UNLIKELY((UV) (uv) \
+ == UNICODE_BYTE_ORDER_MARK)
#define LATIN_SMALL_LETTER_SHARP_S LATIN_SMALL_LETTER_SHARP_S_NATIVE
#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS \
@@ -1020,45 +1307,6 @@ Evaluates to 0xFFFD, the code point of the Unicode REPLACEMENT CHARACTER
#define bytes_from_utf8(s, lenp, is_utf8p) \
bytes_from_utf8_loc(s, lenp, is_utf8p, 0)
-/*
-
-=for apidoc Am|STRLEN|isUTF8_CHAR_flags|const U8 *s|const U8 *e| const U32 flags
-
-Evaluates to non-zero if the first few bytes of the string starting at C<s> and
-looking no further than S<C<e - 1>> are well-formed UTF-8, as extended by Perl,
-that represents some code point, subject to the restrictions given by C<flags>;
-otherwise it evaluates to 0. If non-zero, the value gives how many bytes
-starting at C<s> comprise the code point's representation. Any bytes remaining
-before C<e>, but beyond the ones needed to form the first code point in C<s>,
-are not examined.
-
-If C<flags> is 0, this gives the same results as C<L</isUTF8_CHAR>>;
-if C<flags> is C<UTF8_DISALLOW_ILLEGAL_INTERCHANGE>, this gives the same results
-as C<L</isSTRICT_UTF8_CHAR>>;
-and if C<flags> is C<UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE>, this gives
-the same results as C<L</isC9_STRICT_UTF8_CHAR>>.
-Otherwise C<flags> may be any combination of the C<UTF8_DISALLOW_I<foo>> flags
-understood by C<L</utf8n_to_uvchr>>, with the same meanings.
-
-The three alternative macros are for the most commonly needed validations; they
-are likely to run somewhat faster than this more general one, as they can be
-inlined into your code.
-
-Use L</is_utf8_string_flags>, L</is_utf8_string_loc_flags>, and
-L</is_utf8_string_loclen_flags> to check entire strings.
-
-=cut
-*/
-
-#define isUTF8_CHAR_flags(s, e, flags) \
- (UNLIKELY((e) <= (s)) \
- ? 0 \
- : (UTF8_IS_INVARIANT(*s)) \
- ? 1 \
- : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
- ? 0 \
- : is_utf8_char_helper(s, e, flags))
-
/* 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)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h
index ce9981b427..347a7b121f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h
@@ -8,15 +8,18 @@
*
* Macros to implement UTF-EBCDIC as perl's internal encoding
* Adapted from version 7.1 of Unicode Technical Report #16:
- * http://www.unicode.org/unicode/reports/tr16
+ * http://www.unicode.org/reports/tr16
*
* To summarize, the way it works is:
* To convert an EBCDIC code point to UTF-EBCDIC:
- * 1) convert to Unicode. No conversion is necesary for code points above
+ * 1) convert to Unicode. No conversion is necessary for code points above
* 255, as Unicode and EBCDIC are identical in this range. For smaller
* code points, the conversion is done by lookup in the PL_e2a table (with
* inverse PL_a2e) in the generated file 'ebcdic_tables.h'. The 'a'
- * stands for ASCII platform, meaning 0-255 Unicode.
+ * stands for ASCII platform, meaning 0-255 Unicode. Use
+ * NATIVE_TO_LATIN1() and LATIN1_TO_NATIVE(), respectively to perform this
+ * lookup. NATIVE_TO_UNI() and UNI_TO_NATIVE() are similarly used for any
+ * input, and know to avoid the lookup for inputs above 255.
* 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
@@ -45,7 +48,8 @@
* so that lexically comparing two UTF-EBCDIC-variant characters yields
* the Unicode code point order. (To get native code point order, one has
* to convert the latin1-range characters to their native code point
- * value.)
+ * value.) The macros NATIVE_UTF8_TO_I8() and I8_TO_NATIVE_UTF8() do the
+ * table lookups.
*
* 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
@@ -65,10 +69,11 @@
*
* 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,
- * 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
+ * generally, one has to undo step 3 into a temporary to use them, using the
+ * macro NATIVE_TO_I8(). However, 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
@@ -136,20 +141,10 @@ END_EXTERN_C
#define I8_TO_NATIVE_UTF8(b) (__ASSERT_(FITS_IN_8_BITS(b)) PL_utf2e[(U8)(b)])
/* Transforms in wide UV chars */
-#define NATIVE_TO_UNI(ch) (FITS_IN_8_BITS(ch) ? NATIVE_TO_LATIN1(ch) : (UV) (ch))
-#define UNI_TO_NATIVE(ch) (FITS_IN_8_BITS(ch) ? LATIN1_TO_NATIVE(ch) : (UV) (ch))
-
-/* How wide can a single UTF-8 encoded character become in bytes. */
-/* NOTE: Strictly speaking Perl's UTF-8 should not be called UTF-8 since UTF-8
- * is an encoding of Unicode, and Unicode's upper limit, 0x10FFFF, can be
- * expressed with 5 bytes. However, Perl thinks of UTF-8 as a way to encode
- * non-negative integers in a binary format, even those above Unicode. 14 is
- * the smallest number that covers 2**64
- *
- * WARNING: This number must be in sync with the value in
- * regen/charset_translations.pl. */
-#define UTF8_MAXBYTES 14
-
+#define NATIVE_TO_UNI(ch) \
+ (FITS_IN_8_BITS(ch) ? NATIVE_TO_LATIN1(ch) : (UV) (ch))
+#define UNI_TO_NATIVE(ch) \
+ (FITS_IN_8_BITS(ch) ? LATIN1_TO_NATIVE(ch) : (UV) (ch))
/*
The following table is adapted from tr16, it shows the I8 encoding of Unicode code points.
@@ -202,276 +197,12 @@ possible to UTF-8-encode a single code point in different ways, but that is
explicitly forbidden, and the shortest possible encoding should always be used
(and that is what Perl does). */
-/* It turns out that just this one number is sufficient to derive all the basic
- * macros for UTF-8 and UTF-EBCDIC. Everything follows from the fact that
- * there are 6 bits of real information in a UTF-8 continuation byte vs. 5 bits
- * in a UTF-EBCDIC one. */
-
-#define UTF_ACCUMULATION_SHIFT 5
-
-/* Also needed is how perl handles a start byte of 8 one bits. The decision
- * was made to just append the minimal number of bytes after that so that code
- * points up to 64 bits wide could be represented. In UTF-8, that was an extra
- * 5 bytes, and in UTF-EBCDIC it's 6. The result is in UTF8_MAXBYTES defined
- * above. This implementation has the advantage that you have everything you
- * need in the first byte. Other ways of extending UTF-8 have been devised,
- * some to arbitrarily high code points. But they require looking at the next
- * byte(s) when the first one is 8 one bits. */
+#define UTF_CONTINUATION_BYTE_INFO_BITS UTF_EBCDIC_CONTINUATION_BYTE_INFO_BITS
-/* These others are for efficiency or for other decisions we've made */
-
-#define isUTF8_POSSIBLY_PROBLEMATIC(c) \
- _generic_isCC(c, _CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE)
-
-/* ^? is defined to be APC on EBCDIC systems. See the definition of toCTRL()
- * for more */
+/* ^? is defined to be APC on EBCDIC systems, as specified in Unicode Technical
+ * Report #16. See the definition of toCTRL() for more */
#define QUESTION_MARK_CTRL LATIN1_TO_NATIVE(0x9F)
-#define UNICODE_IS_PERL_EXTENDED(uv) UNLIKELY((UV) (uv) > 0x3FFFFFFF)
-
-/* Helper macros for isUTF8_CHAR_foo, so use those instead of this. These were
- * generated by regen/regcharclass.pl, and then moved here. Then they were
- * hand-edited to add some LIKELY() calls, presuming that malformations are
- * unlikely. The lines that generated it were then commented out. This was
- * done because it takes on the order of 10 minutes to generate, and is never
- * going to change, unless the generated code is improved, and figuring out the
- * LIKELYs there would be hard.
- *
- */
-
-#if '^' == 95 /* CP 1047 */
-/* UTF8_CHAR: Matches legal UTF-EBCDIC variant code points up through 0x1FFFFFF
-
- 0xA0 - 0x1FFFFF
-*/
-
-/*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB6 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
-: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( 0xDC == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( ( 0xDD <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( 0xED == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
-: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
-
-/* UTF8_CHAR_STRICT: Matches legal Unicode UTF-8 variant code points, no
- surrrogates nor non-character code points */
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) \
-( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
- : ( 0x73 == ((const U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
- : LIKELY( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
- : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) \
-( ( 0xED == ((const U8*)s)[0] ) ? \
- ( ( ( ( ((const U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xF9 ) == 0x51 ) || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) ?\
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
- : ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
- : ( 0x73 == ((const U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ? 5 : 0 )\
- : LIKELY( ( 0x73 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFE ) == 0x70 ) ) ? 5 : 0 )\
- : 0 ) \
- : 0 ) \
-: ( 0xEE == ((const U8*)s)[0] ) ? \
- ( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
- : ( 0x42 == ((const U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
- : ( 0x73 == ((const U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ? 5 : 0 )\
- : LIKELY( ( 0x73 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFE ) == 0x70 ) ) ? 5 : 0 )\
- : 0 ) \
- : 0 ) \
-: 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB6 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
-: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( 0xDC == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( 0xDD == ((const U8*)s)[0] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x64 ) || ( 0x67 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
- : ( 0x73 == ((const U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
- : ( 0x55 == ((const U8*)s)[2] ) ? \
- ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
- : ( 0x56 == ((const U8*)s)[2] ) ? \
- ( LIKELY( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
- : LIKELY( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
- : 0 ) \
-: ( 0xDE == ((const U8*)s)[0] || 0xE1 == ((const U8*)s)[0] || 0xEB == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
-
-/* C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points
- including non-character code points, no surrogates
- 0x00A0 - 0xD7FF
- 0xE000 - 0x10FFFF
-*/
-/*** GENERATED CODE ***/
-#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB6 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
-: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( 0xDC == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( 0xDD == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x64 ) || ( 0x67 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( ( ((const U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-: ( 0xED == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
-: LIKELY( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] || 0x42 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
-
-#endif
-
-#if '^' == 176 /* CP 037 */
-
-/*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB5 ) ) ?\
- ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
-: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
- ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( 0xDC == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-: ( ( 0xDD <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
- ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-: ( 0xED == ((const U8*)s)[0] ) ? \
- ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
-: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
-
-/* XXX Below do not have LIKELY() added */
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) \
-( ( ( ( ((const U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xF9 ) == 0x51 ) || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ((const U8*)s)[1] == 0x71 ) ?\
- ( ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
- : ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
- ( ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
- : ( 0x72 == ((const U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ? 5 : 0 )\
- : ( ( 0x72 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || 0x70 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
- : 0 ) \
- : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) \
-( ( 0xEE == ((const U8*)s)[0] ) ? \
- ( ( 0x41 == ((const U8*)s)[1] ) ? \
- ( ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
- : ( 0x42 == ((const U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
- ( ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
- : ( 0x72 == ((const U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ? 5 : 0 )\
- : ( ( 0x72 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || 0x70 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
- : 0 ) \
- : 0 ) \
-: 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2(s) \
-( ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3(s) \
-( ( 0xDD == ((const U8*)s)[0] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( ((const U8*)s)[1] & 0xFE ) == 0x62 || ( 0x66 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFE ) == 0x70 ) ?\
- ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
- : ( 0x72 == ((const U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
- : ( 0x55 == ((const U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
- : ( 0x56 == ((const U8*)s)[2] ) ? \
- ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
- : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
-: ( 0xDE == ((const U8*)s)[0] || 0xE1 == ((const U8*)s)[0] || 0xEB == ((const U8*)s)[0] ) ?\
- ( ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-: ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFE ) == 0x70 ) ?\
- ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
- : ( 0x72 == ((const U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
- : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
-: ( 0xED == ((const U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
-
-
-/*** GENERATED CODE ***/
-#define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB5 ) ) ?\
- ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
-: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
- ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( 0xDC == ((const U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2(s) : is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3(s) )
-
-/* C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points
- including non-character code points, no surrogates
- 0x00A0 - 0xD7FF
- 0xE000 - 0x10FFFF
-*/
-/*** GENERATED CODE ***/
-#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) \
-( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) \
-( ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
- ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( 0xDC == ((const U8*)s)[0] ) ? \
- ( ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-: ( 0xDD == ((const U8*)s)[0] ) ? \
- ( ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( ((const U8*)s)[1] & 0xFE ) == 0x62 || ( 0x66 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-: ( ( ((const U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
- ( ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-: ( 0xED == ((const U8*)s)[0] ) ? \
- ( ( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
-: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] || 0x42 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
-
-
-/*** GENERATED CODE ***/
-#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB5 ) ) ? is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
-
-#endif
-
-/* is_UTF8_CHAR_utf8_no_length_checks() in both code pages handles UTF-8 that
- * has this start byte (expressed in I8) as the maximum */
-#define _IS_UTF8_CHAR_HIGHEST_START_BYTE 0xF9
-
/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h
index b2e0b7797b..d9b61611e4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h
@@ -23,11 +23,6 @@
# define PERL_FILE_IS_ABSOLUTE(f) \
(*(f) == '/' || *(f) == '\\' /* UNC/rooted path */ \
|| ((f)[0] && (f)[1] == ':')) /* drive name */
-#elif defined(NETWARE)
-# define PERL_FILE_IS_ABSOLUTE(f) \
- (((f)[0] && (f)[1] == ':') /* drive name */ \
- || ((f)[0] == '\\' && (f)[1] == '\\') /* UNC path */ \
- || ((f)[3] == ':')) /* volume name, currently only sys */
#elif defined(DOSISH)
# define PERL_FILE_IS_ABSOLUTE(f) \
(*(f) == '/' \
@@ -189,7 +184,7 @@ typedef struct {
/* 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 HSf_IMP_CXT 0x00000080 /* ABI, threaded, MULTIPLICITY, 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
@@ -203,7 +198,7 @@ typedef struct {
/* 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_GETXSVERLEN(key) ((U8) ((key) >> 8))
#define HS_GETAPIVERLEN(key) ((key) & HSm_APIVERLEN)
/* internal to util.h macro to create a packed handshake key, all args must be constants */
@@ -226,7 +221,7 @@ means arg not present, 1 is empty string/null byte */
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
+#ifdef MULTIPLICITY
# define HS_KEY(setxsubfn, popmark, apiver, xsver) \
HS_KEYp(sizeof(PerlInterpreter), TRUE, setxsubfn, popmark, \
sizeof("" apiver "")-1, sizeof("" xsver "")-1)
@@ -252,7 +247,9 @@ returning NULL if not found. The terminating NUL bytes are not compared.
#ifdef HAS_MEMMEM
# define ninstr(big, bigend, little, lend) \
- ((char *) memmem((big), (bigend) - (big), \
+ (__ASSERT_(bigend >= big) \
+ __ASSERT_(lend >= little) \
+ (char *) memmem((big), (bigend) - (big), \
(little), (lend) - (little)))
#else
# define ninstr(a,b,c,d) Perl_ninstr(a,b,c,d)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h
index bd765f68e2..c425ae187a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h
@@ -64,19 +64,37 @@ inline void MEMODSlx(char *str, long x)
/*
* Pass all memory requests through to the compiler's msvcr*.dll.
- * Optionaly track by using a doubly linked header.
+ * Optionally track by using a doubly linked header.
*/
#ifdef _USE_LINKED_LIST
class VMem;
+
+/*
+ * Address an alignment issue with x64 mingw-w64 ports of gcc-12 and
+ * (presumably) later. We do the same thing again 16 lines further down.
+ * See https://github.com/Perl/perl5/issues/19824
+ */
+
+#if defined(__MINGW64__) && __GNUC__ > 11
+typedef struct _MemoryBlockHeader* PMEMORY_BLOCK_HEADER __attribute__ ((aligned(16)));
+#else
typedef struct _MemoryBlockHeader* PMEMORY_BLOCK_HEADER;
+#endif
+
typedef struct _MemoryBlockHeader {
PMEMORY_BLOCK_HEADER pNext;
PMEMORY_BLOCK_HEADER pPrev;
VMem *owner;
+
+#if defined(__MINGW64__) && __GNUC__ > 11
+} MEMORY_BLOCK_HEADER __attribute__ ((aligned(16))), *PMEMORY_BLOCK_HEADER;
+#else
} MEMORY_BLOCK_HEADER, *PMEMORY_BLOCK_HEADER;
#endif
+#endif
+
class VMem
{
public:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h
index 61caf70ba5..9484e25483 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h
@@ -10,122 +10,12 @@
* AV *av2 = MUTABLE_AV(sv); <== GOOD: it may warn
*/
-#ifndef MUTABLE_PTR
-# 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
-#endif
-
-#ifndef MUTABLE_AV
-# define MUTABLE_AV(p) ((AV *)MUTABLE_PTR(p))
-#endif
-#ifndef MUTABLE_CV
-# define MUTABLE_CV(p) ((CV *)MUTABLE_PTR(p))
-#endif
-#ifndef MUTABLE_GV
-# define MUTABLE_GV(p) ((GV *)MUTABLE_PTR(p))
-#endif
-#ifndef MUTABLE_HV
-# define MUTABLE_HV(p) ((HV *)MUTABLE_PTR(p))
-#endif
-#ifndef MUTABLE_IO
-# define MUTABLE_IO(p) ((IO *)MUTABLE_PTR(p))
-#endif
-#ifndef MUTABLE_SV
-# define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
-#endif
-
-#ifndef SvPVx_nolen_const
-# if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-# define SvPVx_nolen_const(sv) ({SV *_sv = (sv); SvPV_nolen_const(_sv); })
-# else
-# define SvPVx_nolen_const(sv) (SvPV_nolen_const(sv))
-# endif
-#endif
-
-#ifndef PERL_ARGS_ASSERT_CK_WARNER
-static void Perl_ck_warner(pTHX_ U32 err, const char* pat, ...);
-
-# ifdef vwarner
-static
-void
-Perl_ck_warner(pTHX_ U32 err, const char* pat, ...)
-{
- va_list args;
-
- PERL_UNUSED_ARG(err);
- if (ckWARN(err)) {
- va_list args;
- va_start(args, pat);
- vwarner(err, pat, &args);
- va_end(args);
- }
-}
-# else
-/* yes this replicates my_warner */
-static
-void
-Perl_ck_warner(pTHX_ U32 err, const char* pat, ...)
-{
- SV *sv;
- va_list args;
-
- PERL_UNUSED_ARG(err);
-
- va_start(args, pat);
- sv = vnewSVpvf(pat, &args);
- va_end(args);
- sv_2mortal(sv);
- warn("%s", SvPV_nolen(sv));
-}
-# endif
-#endif
-
#if PERL_VERSION_LT(5,15,4)
# define ISA_VERSION_OBJ(v) (sv_isobject(v) && sv_derived_from(v,"version"))
#else
# define ISA_VERSION_OBJ(v) (sv_isobject(v) && sv_derived_from_pvn(v,"version",7,0))
#endif
-#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
-#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
-
-/* prototype to pass -Wmissing-prototypes */
-STATIC void
-S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params);
-
-STATIC void
-S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
-{
- const GV *const gv = CvGV(cv);
-
- PERL_ARGS_ASSERT_CROAK_XS_USAGE;
-
- if (gv) {
- const char *const gvname = GvNAME(gv);
- const HV *const stash = GvSTASH(gv);
- const char *const hvname = stash ? HvNAME(stash) : NULL;
-
- if (hvname)
- Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params);
- else
- Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
- } else {
- /* Pants. I don't think that it should be possible to get here. */
- Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
- }
-}
-
-#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
-
#if PERL_VERSION_GE(5,9,0) && !defined(PERL_CORE)
# define VUTIL_REPLACE_CORE 1
@@ -221,44 +111,4 @@ const char * Perl_prescan_version(pTHX_ const char *s, bool strict, const char**
assert(pat)
#endif
-
-#if PERL_VERSION_LT(5,27,9)
-# define LC_NUMERIC_LOCK(cond)
-# define LC_NUMERIC_UNLOCK
-# if PERL_VERSION_LT(5,19,0)
-# undef STORE_LC_NUMERIC_SET_STANDARD
-# undef RESTORE_LC_NUMERIC
-# undef DECLARATION_FOR_LC_NUMERIC_MANIPULATION
-# ifdef USE_LOCALE
-# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION char *loc
-# define STORE_NUMERIC_SET_STANDARD()\
- loc = savepv(setlocale(LC_NUMERIC, NULL)); \
- SAVEFREEPV(loc); \
- setlocale(LC_NUMERIC, "C");
-# define RESTORE_LC_NUMERIC()\
- setlocale(LC_NUMERIC, loc);
-# else
-# define DECLARATION_FOR_LC_NUMERIC_MANIPULATION
-# define STORE_LC_NUMERIC_SET_STANDARD()
-# define RESTORE_LC_NUMERIC()
-# endif
-# endif
-#endif
-
-#ifndef LOCK_NUMERIC_STANDARD
-# define LOCK_NUMERIC_STANDARD()
-#endif
-
-#ifndef UNLOCK_NUMERIC_STANDARD
-# define UNLOCK_NUMERIC_STANDARD()
-#endif
-
-/* The names of these changed in 5.28 */
-#ifndef LOCK_LC_NUMERIC_STANDARD
-# define LOCK_LC_NUMERIC_STANDARD() LOCK_NUMERIC_STANDARD()
-#endif
-#ifndef UNLOCK_LC_NUMERIC_STANDARD
-# define UNLOCK_LC_NUMERIC_STANDARD() UNLOCK_NUMERIC_STANDARD()
-#endif
-
/* ex: set ro: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h
index 5547a1161a..ce1765e983 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by regen/warnings.pl.
Any changes made here will be lost!
@@ -9,7 +9,6 @@
#define Perl_Warn_Bit_(x) (1 << ((x) % 8))
#define PerlWarnIsSet_(a, x) ((a)[Perl_Warn_Off_(x)] & Perl_Warn_Bit_(x))
-
#define G_WARN_OFF 0 /* $^W == 0 */
#define G_WARN_ON 1 /* -w flag and $^W != 0 */
#define G_WARN_ALL_ON 2 /* -W flag */
@@ -18,8 +17,8 @@
#define G_WARN_ALL_MASK (G_WARN_ALL_ON|G_WARN_ALL_OFF)
#define pWARN_STD NULL
-#define pWARN_ALL (STRLEN *) &PL_WARN_ALL /* use warnings 'all' */
-#define pWARN_NONE (STRLEN *) &PL_WARN_NONE /* no warnings 'all' */
+#define pWARN_ALL &PL_WARN_ALL /* use warnings 'all' */
+#define pWARN_NONE &PL_WARN_NONE /* no warnings 'all' */
#define specialWARN(x) ((x) == pWARN_STD || (x) == pWARN_ALL || \
(x) == pWARN_NONE)
@@ -81,75 +80,106 @@
#define WARN_IMPRECISION 46
#define WARN_ILLEGALPROTO 47
+/* Warnings Categories added in Perl 5.011003 */
+
+#define WARN_DEPRECATED__GOTO_CONSTRUCT 48
+#define WARN_DEPRECATED__UNICODE_PROPERTY_NAME 49
+
/* Warnings Categories added in Perl 5.013 */
-#define WARN_NON_UNICODE 48
-#define WARN_NONCHAR 49
-#define WARN_SURROGATE 50
+#define WARN_NON_UNICODE 50
+#define WARN_NONCHAR 51
+#define WARN_SURROGATE 52
/* Warnings Categories added in Perl 5.017 */
-#define WARN_EXPERIMENTAL 51
-#define WARN_EXPERIMENTAL__LEXICAL_SUBS 52
-#define WARN_EXPERIMENTAL__REGEX_SETS 53
-#define WARN_EXPERIMENTAL__SMARTMATCH 54
+#define WARN_EXPERIMENTAL 53
+#define WARN_EXPERIMENTAL__REGEX_SETS 54
/* Warnings Categories added in Perl 5.019 */
-#define WARN_EXPERIMENTAL__POSTDEREF 55
-#define WARN_EXPERIMENTAL__SIGNATURES 56
-#define WARN_SYSCALLS 57
+#define WARN_SYSCALLS 55
/* Warnings Categories added in Perl 5.021 */
-#define WARN_EXPERIMENTAL__BITWISE 58
-#define WARN_EXPERIMENTAL__CONST_ATTR 59
-#define WARN_EXPERIMENTAL__RE_STRICT 60
-#define WARN_EXPERIMENTAL__REFALIASING 61
-#define WARN_EXPERIMENTAL__WIN32_PERLIO 62
-#define WARN_LOCALE 63
-#define WARN_MISSING 64
-#define WARN_REDUNDANT 65
+#define WARN_EXPERIMENTAL__CONST_ATTR 56
+#define WARN_EXPERIMENTAL__RE_STRICT 57
+#define WARN_EXPERIMENTAL__REFALIASING 58
+#define WARN_LOCALE 59
+#define WARN_MISSING 60
+#define WARN_REDUNDANT 61
/* Warnings Categories added in Perl 5.025 */
-#define WARN_EXPERIMENTAL__DECLARED_REFS 66
+#define WARN_EXPERIMENTAL__DECLARED_REFS 62
+
+/* Warnings Categories added in Perl 5.025011 */
+
+#define WARN_DEPRECATED__DOT_IN_INC 63
/* Warnings Categories added in Perl 5.027 */
-#define WARN_EXPERIMENTAL__ALPHA_ASSERTIONS 67
-#define WARN_EXPERIMENTAL__SCRIPT_RUN 68
-#define WARN_SHADOW 69
+#define WARN_SHADOW 64
/* Warnings Categories added in Perl 5.029 */
-#define WARN_EXPERIMENTAL__PRIVATE_USE 70
-#define WARN_EXPERIMENTAL__UNIPROP_WILDCARDS 71
-#define WARN_EXPERIMENTAL__VLB 72
+#define WARN_EXPERIMENTAL__PRIVATE_USE 65
+#define WARN_EXPERIMENTAL__UNIPROP_WILDCARDS 66
+#define WARN_EXPERIMENTAL__VLB 67
-/* Warnings Categories added in Perl 5.031 */
+/* Warnings Categories added in Perl 5.033 */
-#define WARN_EXPERIMENTAL__ISA 73
+#define WARN_EXPERIMENTAL__TRY 68
-/* Warnings Categories added in Perl 5.033 */
+/* Warnings Categories added in Perl 5.035 */
+
+#define WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES 69
+#define WARN_EXPERIMENTAL__BUILTIN 70
+#define WARN_EXPERIMENTAL__DEFER 71
+#define WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS 72
+#define WARN_EXPERIMENTAL__FOR_LIST 73
+#define WARN_SCALAR 74
+
+/* Warnings Categories added in Perl 5.035009 */
+
+#define WARN_DEPRECATED__VERSION_DOWNGRADE 75
+
+/* Warnings Categories added in Perl 5.03501 */
+
+#define WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED 76
+
+/* Warnings Categories added in Perl 5.037 */
+
+#define WARN_EXPERIMENTAL__CLASS 77
+
+/* Warnings Categories added in Perl 5.037009 */
+
+#define WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR 78
+
+/* Warnings Categories added in Perl 5.03701 */
-#define WARN_EXPERIMENTAL__TRY 74
-#define WARNsize 19
-#define WARN_ALLstring "\125\125\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\0\0"
+#define WARN_DEPRECATED__SMARTMATCH 79
+#define WARNsize 20
+#define WARN_ALLstring "\125\125\125\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\0\0\0"
#define isLEXWARN_on \
cBOOL(PL_curcop && PL_curcop->cop_warnings != pWARN_STD)
#define isLEXWARN_off \
cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
#define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x) (PerlWarnIsSet_((U8 *)(c + 1), 2*(x)))
-#define isWARNf_on(c,x) (PerlWarnIsSet_((U8 *)(c + 1), 2*(x)+1))
+#define hasWARNBIT(c,x) (RCPV_LEN(c) > (2*(x)/8))
+#define isWARN_on(c,x) (hasWARNBIT(c,x) \
+ ? PerlWarnIsSet_((U8 *)(c), 2*(x)) \
+ : 0)
+#define isWARNf_on(c,x) (hasWARNBIT(c,x) \
+ ? PerlWarnIsSet_((U8 *)(c), 2*(x)+1) \
+ : 0)
#define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p)
#define free_and_set_cop_warnings(cmp,w) STMT_START { \
- if (!specialWARN((cmp)->cop_warnings)) PerlMemShared_free((cmp)->cop_warnings); \
+ if (!specialWARN((cmp)->cop_warnings)) rcpv_free((cmp)->cop_warnings); \
(cmp)->cop_warnings = w; \
} STMT_END
@@ -224,10 +254,10 @@ category parameters passed.
#define packWARN3(a,b,c) ((a) | ((b)<<8) | ((c)<<16) )
#define packWARN4(a,b,c,d) ((a) | ((b)<<8) | ((c)<<16) | ((d) <<24))
-#define unpackWARN1(x) ((x) & 0xFF)
-#define unpackWARN2(x) (((x) >>8) & 0xFF)
-#define unpackWARN3(x) (((x) >>16) & 0xFF)
-#define unpackWARN4(x) (((x) >>24) & 0xFF)
+#define unpackWARN1(x) ((U8) (x) )
+#define unpackWARN2(x) ((U8) ((x) >> 8))
+#define unpackWARN3(x) ((U8) ((x) >> 16))
+#define unpackWARN4(x) ((U8) ((x) >> 24))
#define ckDEAD(x) \
(PL_curcop && \
@@ -291,37 +321,42 @@ category parameters passed.
=for apidoc Amnh||WARN_VOID
=for apidoc Amnh||WARN_IMPRECISION
=for apidoc Amnh||WARN_ILLEGALPROTO
+=for apidoc Amnh||WARN_DEPRECATED__GOTO_CONSTRUCT
+=for apidoc Amnh||WARN_DEPRECATED__UNICODE_PROPERTY_NAME
=for apidoc Amnh||WARN_NON_UNICODE
=for apidoc Amnh||WARN_NONCHAR
=for apidoc Amnh||WARN_SURROGATE
=for apidoc Amnh||WARN_EXPERIMENTAL
-=for apidoc Amnh||WARN_EXPERIMENTAL__LEXICAL_SUBS
=for apidoc Amnh||WARN_EXPERIMENTAL__REGEX_SETS
-=for apidoc Amnh||WARN_EXPERIMENTAL__SMARTMATCH
-=for apidoc Amnh||WARN_EXPERIMENTAL__POSTDEREF
-=for apidoc Amnh||WARN_EXPERIMENTAL__SIGNATURES
=for apidoc Amnh||WARN_SYSCALLS
-=for apidoc Amnh||WARN_EXPERIMENTAL__BITWISE
=for apidoc Amnh||WARN_EXPERIMENTAL__CONST_ATTR
=for apidoc Amnh||WARN_EXPERIMENTAL__RE_STRICT
=for apidoc Amnh||WARN_EXPERIMENTAL__REFALIASING
-=for apidoc Amnh||WARN_EXPERIMENTAL__WIN32_PERLIO
=for apidoc Amnh||WARN_LOCALE
=for apidoc Amnh||WARN_MISSING
=for apidoc Amnh||WARN_REDUNDANT
=for apidoc Amnh||WARN_EXPERIMENTAL__DECLARED_REFS
-=for apidoc Amnh||WARN_EXPERIMENTAL__ALPHA_ASSERTIONS
-=for apidoc Amnh||WARN_EXPERIMENTAL__SCRIPT_RUN
+=for apidoc Amnh||WARN_DEPRECATED__DOT_IN_INC
=for apidoc Amnh||WARN_SHADOW
=for apidoc Amnh||WARN_EXPERIMENTAL__PRIVATE_USE
=for apidoc Amnh||WARN_EXPERIMENTAL__UNIPROP_WILDCARDS
=for apidoc Amnh||WARN_EXPERIMENTAL__VLB
-=for apidoc Amnh||WARN_EXPERIMENTAL__ISA
=for apidoc Amnh||WARN_EXPERIMENTAL__TRY
+=for apidoc Amnh||WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES
+=for apidoc Amnh||WARN_EXPERIMENTAL__BUILTIN
+=for apidoc Amnh||WARN_EXPERIMENTAL__DEFER
+=for apidoc Amnh||WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS
+=for apidoc Amnh||WARN_EXPERIMENTAL__FOR_LIST
+=for apidoc Amnh||WARN_SCALAR
+=for apidoc Amnh||WARN_DEPRECATED__VERSION_DOWNGRADE
+=for apidoc Amnh||WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED
+=for apidoc Amnh||WARN_EXPERIMENTAL__CLASS
+=for apidoc Amnh||WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR
+=for apidoc Amnh||WARN_DEPRECATED__SMARTMATCH
=cut
*/
/* end of file warnings.h */
-/* ex: set ro: */
+/* ex: set ro ft=c: */
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h
index 6d5e186204..211c55ce7e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h
@@ -15,49 +15,19 @@
/* Win32 only optimizations for faster building */
#ifdef PERL_IS_MINIPERL
-/* this macro will remove Winsock only on miniperl, PERL_IMPLICIT_SYS and
- * makedef.pl create dependencies that will keep Winsock linked in even with
- * this macro defined, even though sockets will be umimplemented from a script
- * level in full perl
- */
-# define WIN32_NO_SOCKETS
/* less I/O calls during each require */
# define PERL_DISABLE_PMC
-/* unnecessery for miniperl to lookup anything from an "installed" perl */
+/* unnecessary for miniperl to lookup anything from an "installed" perl */
# define WIN32_NO_REGISTRY
/* allow minitest to work */
# define PERL_TEXTMODE_SCRIPTS
#endif
-#ifdef WIN32_NO_SOCKETS
-# undef HAS_SOCKET
-# undef HAS_GETPROTOBYNAME
-# undef HAS_GETPROTOBYNUMBER
-# undef HAS_GETPROTOENT
-# undef HAS_GETNETBYNAME
-# undef HAS_GETNETBYADDR
-# undef HAS_GETNETENT
-# undef HAS_GETSERVBYNAME
-# undef HAS_GETSERVBYPORT
-# undef HAS_GETSERVENT
-# undef HAS_GETHOSTBYNAME
-# undef HAS_GETHOSTBYADDR
-# undef HAS_GETHOSTENT
-# undef HAS_SELECT
-# undef HAS_IOCTL
-# undef HAS_NTOHL
-# undef HAS_HTONL
-# undef HAS_HTONS
-# undef HAS_NTOHS
-# define WIN32SCK_IS_STDSCK
-#endif
-
#if defined(PERL_IMPLICIT_SYS)
# define DYNAMIC_ENV_FETCH
# define HAS_GETENV_LEN
-# define prime_env_iter()
# define WIN32IO_IS_STDIO /* don't pull in custom stdio layer */
# define WIN32SCK_IS_STDSCK /* don't pull in custom wsock layer */
#endif
@@ -234,10 +204,10 @@ struct utsname {
/* access() mode bits */
#ifndef R_OK
-# define R_OK 4
-# define W_OK 2
-# define X_OK 1
-# define F_OK 0
+# define R_OK 4
+# define W_OK 2
+# define X_OK 1
+# define F_OK 0
#endif
/* for waitpid() */
@@ -261,17 +231,9 @@ typedef long uid_t;
typedef long gid_t;
typedef unsigned short mode_t;
-#if _MSC_VER < 1800
-#define isnan _isnan /* Defined already in VC++ 12.0 */
-#endif
#define snprintf _snprintf
#define vsnprintf _vsnprintf
-/* on VS2003, msvcrt.lib is missing these symbols */
-#if _MSC_VER >= 1300 && _MSC_VER < 1400
-# pragma intrinsic(_rotl64,_rotr64)
-#endif
-
MSVC_DIAG_IGNORE(4756 4056)
PERL_STATIC_INLINE
double S_Infinity() {
@@ -293,8 +255,8 @@ MSVC_DIAG_RESTORE
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 };
+union PerlNan { unsigned __int64 __q; double __d; };
+extern const __declspec(selectany) union PerlNan __PL_nan_u = { 0x7FF8000000000000UI64 };
#define NV_NAN ((NV)__PL_nan_u.__d)
/* The CRT was rewritten in VS2015. */
@@ -464,7 +426,6 @@ 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(WIN32_NO_REGISTRY_M_(const char *pl) STRLEN *const len);
extern char * win32_get_sitelib(const char *pl, STRLEN *const len);
extern char * win32_get_vendorlib(const char *pl, STRLEN *const len);
@@ -604,113 +565,6 @@ void win32_wait_for_children(pTHX);
# define PERL_WAIT_FOR_CHILDREN win32_wait_for_children(aTHX)
#endif
-/* The following ioinfo struct manipulations had been removed but were
- * reinstated to fix RT#120091/118059. However, they do not work with
- * the rewritten CRT in VS2015 so they are removed once again for VS2015
- * onwards, which will therefore suffer from the reintroduction of the
- * close socket bug. */
-#if (!defined(_MSC_VER)) || (defined(_MSC_VER) && _MSC_VER < 1900)
-
-#ifdef PERL_CORE
-
-/* C doesn't like repeat struct definitions */
-#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION>=3)
-# undef _CRTIMP
-#endif
-#ifndef _CRTIMP
-# define _CRTIMP __declspec(dllimport)
-#endif
-
-
-/* VS2005 has multiple ioinfo struct definitions through VS2005's release life
- * VS2008-2012 have been stable but do not assume future VSs will have the
- * same ioinfo struct, just because past struct stability. If research is done
- * on the CRTs of future VSs, the version check can be bumped up so the newer
- * VS uses a fixed ioinfo size. (Actually, only VS2013 (_MSC_VER 1800) hasn't
- * been looked at; after that we cannot use the ioinfo struct anyway (see the
- * #if above).)
- */
-#if ! (_MSC_VER < 1400 || (_MSC_VER >= 1500 && _MSC_VER <= 1700) \
- || defined(__MINGW32__))
-/* size of ioinfo struct is determined at runtime */
-# define WIN32_DYN_IOINFO_SIZE
-#endif
-
-#ifndef WIN32_DYN_IOINFO_SIZE
-/*
- * Control structure for lowio file handles
- */
-typedef struct {
- intptr_t osfhnd;/* underlying OS file HANDLE */
- char osfile; /* attributes of file (e.g., open in text mode?) */
- char pipech; /* one char buffer for handles opened on pipes */
- int lockinitflag;
- CRITICAL_SECTION lock;
-/* 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
-/* VS2005 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
- /* Not used in the safecrt downlevel. We do not define them, so we cannot
- * use them accidentally */
- char textmode : 7;/* __IOINFO_TM_ANSI or __IOINFO_TM_UTF8 or __IOINFO_TM_UTF16LE */
- char unicode : 1; /* Was the file opened as unicode? */
- char pipech2[2]; /* 2 more peak ahead chars for UNICODE mode */
- __int64 startpos; /* File position that matches buffer start */
- BOOL utf8translations; /* Buffer contains translations other than CRLF*/
- char dbcsBuffer; /* Buffer for the lead byte of dbcs when converting from dbcs to unicode */
- BOOL dbcsBufferUsed; /* Bool for the lead byte buffer is used or not */
-# endif
-# endif
-} ioinfo;
-#else
-typedef intptr_t ioinfo;
-#endif
-
-/*
- * Array of arrays of control structures for lowio files.
- */
-EXTERN_C _CRTIMP ioinfo* __pioinfo[];
-
-/*
- * Definition of IOINFO_L2E, the log base 2 of the number of elements in each
- * array of ioinfo structs.
- */
-#define IOINFO_L2E 5
-
-/*
- * Definition of IOINFO_ARRAY_ELTS, the number of elements in ioinfo array
- */
-#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E)
-
-/*
- * Access macros for getting at an ioinfo struct and its fields from a
- * file handle
- */
-#ifdef WIN32_DYN_IOINFO_SIZE
-# define _pioinfo(i) ((intptr_t *) \
- (((Size_t)__pioinfo[(i) >> IOINFO_L2E])/* * to head of array ioinfo [] */\
- /* offset to the head of a particular ioinfo struct */ \
- + (((i) & (IOINFO_ARRAY_ELTS - 1)) * w32_ioinfo_size)) \
- )
-/* first slice of ioinfo is always the OS handle */
-# define _osfhnd(i) (*(_pioinfo(i)))
-#else
-# define _pioinfo(i) (__pioinfo[(i) >> IOINFO_L2E] + ((i) & (IOINFO_ARRAY_ELTS - 1)))
-# define _osfhnd(i) (_pioinfo(i)->osfhnd)
-#endif
-
-/* since we are not doing a dup2(), this works fine */
-#define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = (intptr_t)osfh)
-
-#endif /* PERL_CORE */
-
-#endif /* !defined(_MSC_VER) || _MSC_VER<1900 */
-
/* IO.xs and POSIX.xs define PERLIO_NOT_STDIO to 1 */
#if defined(PERL_EXT_IO) || defined(PERL_EXT_POSIX)
#undef PERLIO_NOT_STDIO
@@ -733,11 +587,20 @@ DllExport void *win32_signal_context(void);
/* ucrt at least seems to allocate a whole bit per type,
just mask off one bit from the mask for our symlink
- file type.
+ and socket file types.
*/
-#define _S_IFLNK ((unsigned)(_S_IFMT ^ (_S_IFMT & -_S_IFMT)))
+#define _S_IFLNK ((unsigned)(_S_IFDIR | _S_IFCHR))
+#define _S_IFSOCK ((unsigned)(_S_IFDIR | _S_IFIFO))
+/* mingw64 defines _S_IFBLK to 0x3000 which is _S_IFDIR | _S_IFIFO */
+#ifndef _S_IFBLK
+# define _S_IFBLK ((unsigned)(_S_IFCHR | _S_IFIFO))
+#endif
#undef S_ISLNK
#define S_ISLNK(mode) (((mode) & _S_IFMT) == _S_IFLNK)
+#undef S_ISSOCK
+#define S_ISSOCK(mode) (((mode) & _S_IFMT) == _S_IFSOCK)
+#undef S_ISBLK
+#define S_ISBLK(mode) (((mode) & _S_IFMT) == _S_IFBLK)
/*
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h
index 9733d7b532..a50d840a2d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h
@@ -200,7 +200,7 @@ END_EXTERN_C
#define stderr win32_stderr()
#define stdout win32_stdout()
-#define stdin win32_stdin()
+#define stdin win32_stdin()
#define feof(f) win32_feof(f)
#define ferror(f) win32_ferror(f)
#define errno (*win32_errno())
@@ -210,17 +210,17 @@ END_EXTERN_C
* redirect to our own version
*/
#undef fprintf
-#define fprintf win32_fprintf
-#define vfprintf win32_vfprintf
-#define printf win32_printf
-#define vprintf win32_vprintf
+#define fprintf win32_fprintf
+#define vfprintf win32_vfprintf
+#define printf win32_printf
+#define vprintf win32_vprintf
#define fread(buf,size,count,f) win32_fread(buf,size,count,f)
#define fwrite(buf,size,count,f) win32_fwrite(buf,size,count,f)
#define fopen win32_fopen
#undef fdopen
#define fdopen win32_fdopen
#define freopen win32_freopen
-#define fclose(f) win32_fclose(f)
+#define fclose(f) win32_fclose(f)
#define fputs(s,f) win32_fputs(s,f)
#define fputc(c,f) win32_fputc(c,f)
#define ungetc(c,f) win32_ungetc(c,f)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h
index 8b15adfb45..834d8cb3fd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h
@@ -133,12 +133,17 @@ void zaphod32_seed_state (
const U32 *seed= (const U32 *)seed_ch;
U32 *state= (U32 *)state_ch;
- /* hex expansion of pi, skipping first two digits. pi= 3.2[43f6...]*/
- /* pi value in hex from here:
- * http://turner.faculty.swau.edu/mathematics/materialslibrary/pi/pibases.html*/
- /* Ensure that the three state vectors are nonzero regardless of the seed. */
- /* The idea of these two steps is to ensure that the 0 state comes from a seed
- * utterly unlike that of the value we replace it with.*/
+ /* hex expansion of PI, skipping first two digits. PI= 3.2[43f6...]
+ *
+ * PI value in hex from here:
+ *
+ * http://turner.faculty.swau.edu/mathematics/materialslibrary/pi/pibases.html
+ *
+ * Ensure that the three state vectors are nonzero regardless of
+ * the seed. The idea of these two steps is to ensure that the 0
+ * state comes from a seed utterly unlike that of the value we
+ * replace it with.
+ */
state[0]= seed[0] ^ 0x43f6a888;
state[1]= seed[1] ^ 0x5a308d31;
state[2]= seed[2] ^ 0x3198a2e0;
@@ -178,7 +183,7 @@ U32 zaphod32_hash_with_state(
const U8 *key,
const STRLEN key_len
) {
- U32 *state= (U32 *)state_ch;
+ const U32 *state= (const U32 *)state_ch;
const U8 *end;
STRLEN len = key_len;
U32 v0= state[0];
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm
index c93d98e8db..1e257b5c21 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm
@@ -2,7 +2,7 @@
# vim: ts=4 sts=4 sw=4:
use strict;
package CPAN;
-$CPAN::VERSION = '2.28';
+$CPAN::VERSION = '2.36';
$CPAN::VERSION =~ s/_//;
# we need to run chdir all over and we would get at wrong libraries
@@ -549,8 +549,9 @@ sub _yaml_module () {
# CPAN::_yaml_loadfile
sub _yaml_loadfile {
- my($self,$local_file) = @_;
+ my($self,$local_file,$opt) = @_;
return +[] unless -s $local_file;
+ my $opt_loadblessed = $opt->{loadblessed} || $CPAN::Config->{yaml_load_code} || 0;
my $yaml_module = _yaml_module;
if ($CPAN::META->has_inst($yaml_module)) {
# temporarily enable yaml code deserialisation
@@ -560,7 +561,7 @@ sub _yaml_loadfile {
my $old_loadcode = ${"$yaml_module\::LoadCode"};
my $old_loadblessed = ${"$yaml_module\::LoadBlessed"};
${ "$yaml_module\::LoadCode" } = $CPAN::Config->{yaml_load_code} || 0;
- ${ "$yaml_module\::LoadBlessed" } = 1;
+ ${ "$yaml_module\::LoadBlessed" } = $opt_loadblessed ? 1 : 0;
my ($code, @yaml);
if ($code = UNIVERSAL::can($yaml_module, "LoadFile")) {
@@ -1114,6 +1115,28 @@ sub has_usable {
sub {require Net::FTP},
sub {require Net::Config},
],
+ 'IO::Socket::SSL' => [
+ sub {
+ require IO::Socket::SSL;
+ unless (CPAN::Version->vge(IO::Socket::SSL::->VERSION,1.56)) {
+ for ("Will not use IO::Socket::SSL, need 1.56\n") {
+ $CPAN::Frontend->mywarn($_);
+ die $_;
+ }
+ }
+ }
+ ],
+ 'Net::SSLeay' => [
+ sub {
+ require Net::SSLeay;
+ unless (CPAN::Version->vge(Net::SSLeay::->VERSION,1.49)) {
+ for ("Will not use Net::SSLeay, need 1.49\n") {
+ $CPAN::Frontend->mywarn($_);
+ die $_;
+ }
+ }
+ }
+ ],
'HTTP::Tiny' => [
sub {
require HTTP::Tiny;
@@ -2252,6 +2275,8 @@ currently defined:
prefs_dir local directory to store per-distro build options
proxy_user username for accessing an authenticating proxy
proxy_pass password for accessing an authenticating proxy
+ pushy_https use https to cpan.org when possible, otherwise use http
+ to cpan.org and issue a warning
randomize_urllist add some randomness to the sequence of the urllist
recommends_policy whether recommended prerequisites should be included
scan_cache controls scanning of cache ('atstart', 'atexit' or 'never')
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm
index 3412108539..6ce0572ef7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm
@@ -9,7 +9,7 @@ use File::Path ();
use POSIX ":sys_wait_h";
@CPAN::Distribution::ISA = qw(CPAN::InfoObj);
use vars qw($VERSION);
-$VERSION = "2.27";
+$VERSION = "2.34";
my $run_allow_installing_within_test = 1; # boolean; either in test or in install, there is no third option
@@ -1445,8 +1445,14 @@ sub verifyCHECKSUM {
local($") = "/";
if (my $size = -s $lc_want) {
$self->debug("lc_want[$lc_want]size[$size]") if $CPAN::DEBUG;
- if ($self->CHECKSUM_check_file($lc_want,1)) {
- return $self->{CHECKSUM_STATUS} = "OK";
+ my @stat = stat $lc_want;
+ my $epoch_starting_support_of_cpan_path = 1637471530;
+ if ($stat[9] >= $epoch_starting_support_of_cpan_path) {
+ if ($self->CHECKSUM_check_file($lc_want, 1)) {
+ return $self->{CHECKSUM_STATUS} = "OK";
+ }
+ } else {
+ unlink $lc_want;
}
}
$lc_file = CPAN::FTP->localize("authors/id/@local",
@@ -1473,18 +1479,32 @@ sub SIG_check_file {
my($self,$chk_file) = @_;
my $rv = eval { Module::Signature::_verify($chk_file) };
- if ($rv == Module::Signature::SIGNATURE_OK()) {
+ if ($rv eq Module::Signature::CANNOT_VERIFY()) {
+ $CPAN::Frontend->myprint(qq{\nSignature for }.
+ qq{file $chk_file could not be verified for an unknown reason. }.
+ $self->as_string.
+ qq{Module::Signature verification returned value $rv\n\n}
+ );
+
+ my $wrap = qq{The manual says for this case: Cannot verify the
+OpenPGP signature, maybe due to the lack of a network connection to
+the key server, or if neither gnupg nor Crypt::OpenPGP exists on the
+system. You probably want to analyse the situation and if you cannot
+fix it you will have to decide whether you want to stop this session
+or you want to turn off signature verification. The latter would be
+done with the command 'o conf init check_sigs'};
+
+ $CPAN::Frontend->mydie(Text::Wrap::wrap("","",$wrap));
+ } if ($rv == Module::Signature::SIGNATURE_OK()) {
$CPAN::Frontend->myprint("Signature for $chk_file ok\n");
return $self->{SIG_STATUS} = "OK";
} else {
- $CPAN::Frontend->myprint(qq{\nSignature invalid for }.
- qq{distribution file. }.
+ $CPAN::Frontend->mywarn(qq{\nSignature invalid for }.
+ qq{file $chk_file. }.
qq{Please investigate.\n\n}.
- $self->as_string,
- $CPAN::META->instance(
- 'CPAN::Author',
- $self->cpan_userid
- )->as_string);
+ $self->as_string.
+ qq{Module::Signature verification returned value $rv\n\n}
+ );
my $wrap = qq{I\'d recommend removing $chk_file. Its signature
is invalid. Maybe you have configured your 'urllist' with
@@ -1519,20 +1539,44 @@ sub CHECKSUM_check_file {
$file = $self->{localfile};
$basename = File::Basename::basename($file);
+ my($signed_data);
my $fh = FileHandle->new;
- if (open $fh, $chk_file) {
- local($/);
- my $eval = <$fh>;
- $eval =~ s/\015?\012/\n/g;
- close $fh;
- my($compmt) = Safe->new();
- $cksum = $compmt->reval($eval);
- if ($@) {
- rename $chk_file, "$chk_file.bad";
- Carp::confess($@) if $@;
+ if ($check_sigs) {
+ my $tempdir;
+ if ($CPAN::META->has_usable("File::Temp")) {
+ $tempdir = File::Temp::tempdir("CHECKSUMS-XXXX", CLEANUP => 1, DIR => "/tmp" );
+ } else {
+ $tempdir = File::Spec->catdir(File::Spec->tmpdir, "CHECKSUMS-$$");
+ File::Path::mkpath($tempdir);
}
+ my $tempfile = File::Spec->catfile($tempdir, "CHECKSUMS.$$");
+ unlink $tempfile; # ignore missing file
+ my $devnull = File::Spec->devnull;
+ my $gpg = $CPAN::Config->{gpg} or
+ $CPAN::Frontend->mydie("Your configuration suggests that you do not have 'gpg' installed. This is needed to verify checksums with the config variable 'check_sigs' on. Please configure it with 'o conf init gpg'");
+ my $system = qq{"$gpg" --verify --batch --no-tty --output "$tempfile" "$chk_file" 2> "$devnull"};
+ 0 == system $system or $CPAN::Frontend->mydie("gpg run was failing, cannot continue: $system");
+ open $fh, $tempfile or $CPAN::Frontend->mydie("Could not open $tempfile: $!");
+ local $/;
+ $signed_data = <$fh>;
+ close $fh;
+ File::Path::rmtree($tempdir);
} else {
- Carp::carp "Could not open $chk_file for reading";
+ my $fh = FileHandle->new;
+ if (open $fh, $chk_file) {
+ local($/);
+ $signed_data = <$fh>;
+ } else {
+ $CPAN::Frontend->mydie("Could not open $chk_file for reading");
+ }
+ close $fh;
+ }
+ $signed_data =~ s/\015?\012/\n/g;
+ my($compmt) = Safe->new();
+ $cksum = $compmt->reval($signed_data);
+ if ($@) {
+ rename $chk_file, "$chk_file.bad";
+ Carp::confess($@) if $@;
}
if (! ref $cksum or ref $cksum ne "HASH") {
@@ -1546,6 +1590,30 @@ for further processing, but got garbage instead.
$answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.\n");
$self->{CHECKSUM_STATUS} = "NIL -- CHECKSUMS file broken";
return;
+ } elsif (exists $cksum->{$basename} && ! exists $cksum->{$basename}{cpan_path}) {
+ $CPAN::Frontend->mywarn(qq{
+Warning: checksum file '$chk_file' not conforming.
+
+The cksum does not contain the key 'cpan_path' for '$basename'.
+});
+ my $answer = CPAN::Shell::colorable_makemaker_prompt("Proceed nonetheless?", "no");
+ $answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.\n");
+ $self->{CHECKSUM_STATUS} = "NIL -- CHECKSUMS file without cpan_path";
+ return;
+ } elsif (exists $cksum->{$basename} && substr($self->{ID},0,length($cksum->{$basename}{cpan_path}))
+ ne $cksum->{$basename}{cpan_path}) {
+ $CPAN::Frontend->mywarn(qq{
+Warning: checksum file not matching path '$self->{ID}'.
+
+The cksum contain the key 'cpan_path=$cksum->{$basename}{cpan_path}'
+which does not match the ID of the distribution '$self->{ID}'.
+Something's suspicious might be going on here. Please investigate.
+
+});
+ my $answer = CPAN::Shell::colorable_makemaker_prompt("Proceed nonetheless?", "no");
+ $answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.\n");
+ $self->{CHECKSUM_STATUS} = "NIL -- CHECKSUMS non-matching cpan_path vs. ID";
+ return;
} elsif (exists $cksum->{$basename}{sha256}) {
$self->debug("Found checksum for $basename:" .
"$cksum->{$basename}{sha256}\n") if $CPAN::DEBUG;
@@ -2882,7 +2950,7 @@ sub prereqs_for_slot {
}
if (-f "Build.PL"
&& ! -f File::Spec->catfile($self->{build_dir},"Makefile.PL")
- && ! $merged->requirements_for_module("Module::Build")
+ && ! @{[ $merged->required_modules ]}
&& ! $CPAN::META->has_inst("Module::Build")
) {
$CPAN::Frontend->mywarn(
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm
index 268522f78f..652f5be774 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm
@@ -15,7 +15,7 @@ use vars qw($connect_to_internet_ok $Ua $Thesite $ThesiteURL $Themethod);
use vars qw(
$VERSION
);
-$VERSION = "5.5013";
+$VERSION = "5.5016";
sub _plus_append_open {
my($fh, $file) = @_;
@@ -63,7 +63,7 @@ sub _ftp_statistics {
_plus_append_open($fh, $file);
}
}
- my $stats = eval { CPAN->_yaml_loadfile($file); };
+ my $stats = eval { CPAN->_yaml_loadfile($file, {loadblessed => 1}); };
if ($@) {
if (ref $@) {
if (ref $@ eq "CPAN::Exception::yaml_not_installed") {
@@ -319,6 +319,190 @@ sub localize {
my $longmess = Carp::longmess();
$self->debug("file[$file] aslocal[$aslocal] force[$force] carplongmess[$longmess]");
}
+ for ($CPAN::Config->{connect_to_internet_ok}) {
+ $connect_to_internet_ok = $_ if not defined $connect_to_internet_ok and defined $_;
+ }
+ my $ph = $CPAN::Config->{pushy_https};
+ if (!defined $ph || $ph) {
+ return $self->localize_2021($file,$aslocal,$force,$with_defaults);
+ } else {
+ return $self->localize_1995ff($file,$aslocal,$force,$with_defaults);
+ }
+}
+
+sub have_promising_aslocal {
+ my($self, $aslocal, $force) = @_;
+ if (-f $aslocal && -r _ && !($force & 1)) {
+ my $size;
+ if ($size = -s $aslocal) {
+ $self->debug("aslocal[$aslocal]size[$size]") if $CPAN::DEBUG;
+ return 1;
+ } else {
+ # empty file from a previous unsuccessful attempt to download it
+ unlink $aslocal or
+ $CPAN::Frontend->mydie("Found a zero-length '$aslocal' that I ".
+ "could not remove.");
+ }
+ }
+ return;
+}
+
+#-> sub CPAN::FTP::localize ;
+sub localize_2021 {
+ my($self,$file,$aslocal,$force,$with_defaults) = @_;
+ return $aslocal if $self->have_promising_aslocal($aslocal, $force);
+ my($aslocal_dir) = dirname($aslocal);
+ my $ret;
+ $self->mymkpath($aslocal_dir);
+ my $aslocal_tempfile = $aslocal . ".tmp" . $$;
+ my $base;
+ if (
+ ($CPAN::META->has_usable('HTTP::Tiny')
+ && $CPAN::META->has_usable('Net::SSLeay')
+ && $CPAN::META->has_usable('IO::Socket::SSL')
+ )
+ || $CPAN::Config->{curl}
+ || $CPAN::Config->{wget}
+ ) {
+ for my $prx (qw(https_proxy no_proxy)) {
+ $ENV{$prx} = $CPAN::Config->{$prx} if $CPAN::Config->{$prx};
+ }
+ $base = "https://cpan.org/";
+ } else {
+ my @missing_modules = grep { ! $CPAN::META->has_usable($_) } qw(HTTP::Tiny Net::SSLeay IO::Socket::SSL);
+ my $miss = join ", ", map { "'$_'" } @missing_modules;
+ my $modules = @missing_modules == 1 ? "module" : "modules";
+ $CPAN::Frontend->mywarn("Missing or unusable $modules $miss, and found neither curl nor wget installed.\n");
+ if ($CPAN::META->has_usable('HTTP::Tiny')) {
+ $CPAN::Frontend->mywarn("Need to fall back to http.\n")
+ }
+ for my $prx (qw(http_proxy no_proxy)) {
+ $ENV{$prx} = $CPAN::Config->{$prx} if $CPAN::Config->{$prx};
+ }
+ $base = "http://www.cpan.org/";
+ }
+ $ret = $self->hostdl_2021($base,$file,$aslocal_tempfile);
+ if ($ret) { # c&p from below
+ CPAN->debug("ret[$ret]aslocal[$aslocal]") if $CPAN::DEBUG;
+ if ($ret eq $aslocal_tempfile) {
+ # if we got it exactly as we asked for, only then we
+ # want to rename
+ rename $aslocal_tempfile, $aslocal
+ or $CPAN::Frontend->mydie("Error while trying to rename ".
+ "'$ret' to '$aslocal': $!");
+ $ret = $aslocal;
+ }
+ } else {
+ unlink $aslocal_tempfile;
+ return;
+ }
+ return $ret;
+}
+
+sub hostdl_2021 {
+ my($self, $base, $file, $aslocal) = @_; # the $aslocal is $aslocal_tempfile in the caller (old convention)
+ my $proxy_vars = $self->_proxy_vars($base);
+ my($proto) = $base =~ /^(https?)/;
+ my $url = "$base$file";
+ # hostdl_2021 may be called with either http or https urls
+ if (
+ $CPAN::META->has_usable('HTTP::Tiny')
+ &&
+ (
+ $proto eq "http"
+ ||
+ ( $CPAN::META->has_usable('Net::SSLeay')
+ && $CPAN::META->has_usable('IO::Socket::SSL') )
+ )
+ ){
+ # mostly c&p from below
+ require CPAN::HTTP::Client;
+ my $chc = CPAN::HTTP::Client->new(
+ proxy => $CPAN::Config->{http_proxy} || $ENV{http_proxy},
+ no_proxy => $CPAN::Config->{no_proxy} || $ENV{no_proxy},
+ );
+ for my $try ( $url, ( $url !~ /\.gz(?!\n)\Z/ ? "$url.gz" : () ) ) {
+ $CPAN::Frontend->myprint("Fetching with HTTP::Tiny:\n$try\n");
+ my $res = eval { $chc->mirror($try, $aslocal) };
+ if ( $res && $res->{success} ) {
+ my $now = time;
+ utime $now, $now, $aslocal; # download time is more
+ # important than upload
+ # time
+ return $aslocal;
+ }
+ elsif ( $res && $res->{status} ne '599') {
+ $CPAN::Frontend->myprint(sprintf(
+ "HTTP::Tiny failed with code[%s] message[%s]\n",
+ $res->{status},
+ $res->{reason},
+ )
+ );
+ }
+ elsif ( $res && $res->{status} eq '599') {
+ $CPAN::Frontend->myprint(sprintf(
+ "HTTP::Tiny failed with an internal error: %s\n",
+ $res->{content},
+ )
+ );
+ }
+ else {
+ my $err = $@ || 'Unknown error';
+ $CPAN::Frontend->myprint(sprintf(
+ "Error downloading with HTTP::Tiny: %s\n", $err
+ )
+ );
+ }
+ }
+ } elsif ($CPAN::Config->{curl} || $CPAN::Config->{wget}){
+ # c&p from further down
+ my($src_switch, $stdout_redir);
+ my($devnull) = $CPAN::Config->{devnull} || "";
+ DLPRG: for my $dlprg (qw(curl wget)) {
+ my $dlprg_configured = $CPAN::Config->{$dlprg};
+ next unless defined $dlprg_configured && length $dlprg_configured;
+ my $funkyftp = CPAN::HandleConfig->safe_quote($dlprg_configured);
+ if ($dlprg eq "wget") {
+ $src_switch = " -O \"$aslocal\"";
+ $stdout_redir = "";
+ } elsif ($dlprg eq 'curl') {
+ $src_switch = ' -L -f -s -S --netrc-optional';
+ $stdout_redir = " > \"$aslocal\"";
+ if ($proxy_vars->{http_proxy}) {
+ $src_switch .= qq{ -U "$proxy_vars->{proxy_user}:$proxy_vars->{proxy_pass}" -x "$proxy_vars->{http_proxy}"};
+ }
+ }
+ $CPAN::Frontend->myprint(
+ qq[
+Trying with
+ $funkyftp$src_switch
+to get
+ $url
+]);
+ my($system) =
+ "$funkyftp$src_switch \"$url\" $devnull$stdout_redir";
+ $self->debug("system[$system]") if $CPAN::DEBUG;
+ my($wstatus) = system($system);
+ if ($wstatus == 0) {
+ return $aslocal;
+ } else {
+ my $estatus = $wstatus >> 8;
+ my $size = -f $aslocal ?
+ ", left\n$aslocal with size ".-s _ :
+ "\nWarning: expected file [$aslocal] doesn't exist";
+ $CPAN::Frontend->myprint(qq{
+ Function system("$system")
+ returned status $estatus (wstat $wstatus)$size
+ });
+ }
+ } # DLPRG
+ } # curl, wget
+ return;
+}
+
+#-> sub CPAN::FTP::localize ;
+sub localize_1995ff {
+ my($self,$file,$aslocal,$force,$with_defaults) = @_;
if ($^O eq 'MacOS') {
# Comment by AK on 2000-09-03: Uniq short filenames would be
# available in CHECKSUMS file
@@ -343,18 +527,7 @@ sub localize {
}
}
- if (-f $aslocal && -r _ && !($force & 1)) {
- my $size;
- if ($size = -s $aslocal) {
- $self->debug("aslocal[$aslocal]size[$size]") if $CPAN::DEBUG;
- return $aslocal;
- } else {
- # empty file from a previous unsuccessful attempt to download it
- unlink $aslocal or
- $CPAN::Frontend->mydie("Found a zero-length '$aslocal' that I ".
- "could not remove.");
- }
- }
+ return $aslocal if $self->have_promising_aslocal($aslocal, $force);
my($maybe_restore) = 0;
if (-f $aslocal) {
rename $aslocal, "$aslocal.bak$$";
@@ -433,9 +606,6 @@ sub localize {
$CPAN::Config->{ftp_passive} : 1;
my $ret;
my $stats = $self->_new_stats($file);
- for ($CPAN::Config->{connect_to_internet_ok}) {
- $connect_to_internet_ok = $_ if not defined $connect_to_internet_ok and defined $_;
- }
LEVEL: for $levelno (0..$#levels) {
my $level_tuple = $levels[$levelno];
my($level,$scheme,$sitetag) = @$level_tuple;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm
index 310e73abef..8934f4a2c3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm
@@ -11,7 +11,7 @@ use File::Spec ();
use CPAN::Mirrors ();
use CPAN::Version ();
use vars qw($VERSION $auto_config);
-$VERSION = "5.5315";
+$VERSION = "5.5317";
=head1 NAME
@@ -126,7 +126,7 @@ To considerably speed up the initial CPAN shell startup, it is
possible to use Storable to create a cache of metadata. If Storable is
not available, the normal index mechanism will be used.
-Note: this mechanism is not used when use_sqlite is on and SQLLite is
+Note: this mechanism is not used when use_sqlite is on and SQLite is
running.
Cache metadata (yes/no)?
@@ -451,6 +451,20 @@ Please set your policy to one of the three values.
Policy on building prerequisites (follow, ask or ignore)?
+=item pushy_https
+
+Boolean. Defaults to true. If this option is true, the cpan shell will
+use https://cpan.org/ to download stuff from the CPAN. It will fall
+back to http://cpan.org/ if it can't handle https for some reason
+(missing modules, missing programs). Whenever it falls back to the
+http protocol, it will issue a warning.
+
+If this option is true, the option C<urllist> will be ignored.
+Consequently, if you want to work with local mirrors via your own
+configured list of URLs, you will have to choose no below.
+
+Do you want to turn the pushy_https behaviour on?
+
=item randomize_urllist
CPAN.pm can introduce some randomness when using hosts for download
@@ -1315,6 +1329,7 @@ sub init {
# Let's assume they want to use the internet and make them turn it
# off if they really don't.
my_yn_prompt("connect_to_internet_ok" => 1, $matcher);
+ my_yn_prompt("pushy_https" => 1, $matcher);
# Allow matching but don't show during manual config
if ($matcher) {
@@ -1344,7 +1359,11 @@ sub init {
);
}
else {
- $CPAN::Config->{urllist} = [ 'http://www.cpan.org/' ];
+ # Hint: as of 2021-11: to get http, use http://www.cpan.org/
+ $CPAN::Config->{urllist} = [ 'https://cpan.org/' ];
+ $CPAN::Frontend->myprint(
+ "We initialized your 'urllist' to @{$CPAN::Config->{urllist}}. Type 'o conf init urllist' to change it.\n"
+ );
}
}
elsif (!$matcher || "urllist" =~ $matcher) {
@@ -1362,9 +1381,15 @@ sub init {
if ( $CPAN::Config->{install_help} eq 'local::lib' ) {
if ( ! @{ $CPAN::Config->{urllist} } ) {
$CPAN::Frontend->myprint(
- "Skipping local::lib bootstrap because 'urllist' is not configured.\n"
+ "\nALERT: Skipping local::lib bootstrap because 'urllist' is not configured.\n"
);
}
+ elsif (! $CPAN::Config->{make} ) {
+ $CPAN::Frontend->mywarn(
+ "\nALERT: Skipping local::lib bootstrap because 'make' is not configured.\n"
+ );
+ _beg_for_make(); # repetitive, but we don't want users to miss it
+ }
else {
$CPAN::Frontend->myprint("\nAttempting to bootstrap local::lib...\n");
$CPAN::Frontend->myprint("\nWriting $configpm for bootstrap...\n");
@@ -1645,12 +1670,17 @@ Windows users may want to follow this procedure when back in the CPAN shell:
perl alien_nmake.pl
This will install nmake on your system which can be used as a 'make'
-substitute. You can then revisit this dialog with
+substitute.
+
+HERE
+ }
+
+ $CPAN::Frontend->mywarn(<<"HERE");
+You can then retry the 'make' configuration step with
o conf init make
HERE
- }
}
sub init_cpan_home {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm
index 4fc792c26a..b2c86d0bd1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm
@@ -6,7 +6,7 @@ use vars qw(@ISA);
use CPAN::HTTP::Credentials;
use HTTP::Tiny 0.005;
-$CPAN::HTTP::Client::VERSION = $CPAN::HTTP::Client::VERSION = "1.9601";
+$CPAN::HTTP::Client::VERSION = $CPAN::HTTP::Client::VERSION = "1.9602";
# CPAN::HTTP::Client is adapted from parts of cpanm by Tatsuhiko Miyagawa
# and parts of LWP by Gisle Aas
@@ -32,6 +32,7 @@ sub mirror {
my $want_proxy = $self->_want_proxy($uri);
my $http = HTTP::Tiny->new(
+ verify_SSL => 1,
$want_proxy ? (proxy => $self->{proxy}) : ()
);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
index e24a969c11..c9d0dc7056 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
@@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm
=cut
-$VERSION = "5.5011"; # see also CPAN::Config::VERSION at end of file
+$VERSION = "5.5012"; # see also CPAN::Config::VERSION at end of file
%can = (
commit => "Commit changes to disk",
@@ -25,8 +25,9 @@ $VERSION = "5.5011"; # see also CPAN::Config::VERSION at end of file
# A1: svn diff -r 757:758 # where dagolden added test_report [git e997b71de88f1019a1472fc13cb97b1b7f96610f]
# A2: svn diff -r 985:986 # where andk added yaml_module [git 312b6d9b12b1bdec0b6e282d853482145475021f]
# A3: 1. add new config option to %keys below
-# 2. add a Pod description in CPAN::FirstTime; it should include a
-# prompt line; see others for examples
+# 2. add a Pod description in CPAN::FirstTime in the DESCRIPTION
+# section; it should include a prompt line; see others for
+# examples
# 3. add a "matcher" section in CPAN::FirstTime::init that includes
# a prompt function; see others for examples
# 4. add config option to documentation section in CPAN.pm
@@ -98,6 +99,7 @@ $VERSION = "5.5011"; # see also CPAN::Config::VERSION at end of file
"prerequisites_policy",
"proxy_pass",
"proxy_user",
+ "pushy_https",
"randomize_urllist",
"recommends_policy",
"scan_cache",
@@ -561,6 +563,23 @@ sub load {
my @miss = $self->missing_config_data;
CPAN->debug("do_init[$do_init]loading[$loading]miss[@miss]") if $CPAN::DEBUG;
return unless $do_init || @miss;
+ if (@miss==1 and $miss[0] eq "pushy_https" && !$do_init) {
+ $CPAN::Frontend->myprint(<<'END');
+
+Starting with version 2.29 of the cpan shell, a new download mechanism
+is the default which exclusively uses cpan.org as the host to download
+from. The configuration variable pushy_https can be used to (de)select
+the new mechanism. Please read more about it and make your choice
+between the old and the new mechanism by running
+
+ o conf init pushy_https
+
+Once you have done that and stored the config variable this dialog
+will disappear.
+END
+
+ return;
+ }
# I'm not how we'd ever wind up in a recursive loop, but I'm leaving
# this here for safety's sake -- dagolden, 2011-01-19
@@ -677,6 +696,7 @@ sub missing_config_data {
"no_proxy",
#"pager",
"prerequisites_policy",
+ "pushy_https",
"scan_cache",
#"tar",
#"unzip",
@@ -776,7 +796,7 @@ sub prefs_lookup {
use strict;
use vars qw($AUTOLOAD $VERSION);
- $VERSION = "5.5011";
+ $VERSION = "5.5012";
# formerly CPAN::HandleConfig was known as CPAN::Config
sub AUTOLOAD { ## no critic
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm
index 59e75dcaee..06b16b6958 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm
@@ -1,7 +1,7 @@
package CPAN::Index;
use strict;
use vars qw($LAST_TIME $DATE_OF_02 $DATE_OF_03 $HAVE_REANIMATED $VERSION);
-$VERSION = "2.12";
+$VERSION = "2.29";
@CPAN::Index::ISA = qw(CPAN::Debug);
$LAST_TIME ||= 0;
$DATE_OF_03 ||= 0;
@@ -137,7 +137,7 @@ sub reanimate_build_dir {
));
DISTRO: for $i (0..$#candidates) {
my $dirent = $candidates[$i];
- my $y = eval {CPAN->_yaml_loadfile(File::Spec->catfile($d,$dirent))};
+ my $y = eval {CPAN->_yaml_loadfile(File::Spec->catfile($d,$dirent), {loadblessed => 1})};
if ($@) {
warn "Error while parsing file '$dirent'; error: '$@'";
next DISTRO;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm
index df563d06a2..20b970800a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm
@@ -179,7 +179,7 @@ BEGIN {
? do { require "overload.pm"; _fetch_sub overload => 'mycan' }
: \&UNIVERSAL::can;
- # _blessed is either UNIVERAL::isa(...), or, in the presence of an
+ # _blessed is either UNIVERSAL::isa(...), or, in the presence of an
# override, a hideous, but fairly reliable, workaround.
*_blessed = $isa
? sub { &$isa($_[0], "UNIVERSAL") }
@@ -211,7 +211,7 @@ BEGIN {
}
-our $VERSION = '1.52';
+our $VERSION = '1.54';
$VERSION =~ tr/_//d;
our $MaxEvalLen = 0;
@@ -776,8 +776,8 @@ Carp - alternative warn and die for modules
# cluck, longmess and shortmess not exported by default
use Carp qw(cluck longmess shortmess);
cluck "This is how we got here!"; # warn with stack backtrace
- $long_message = longmess( "message from cluck() or confess()" );
- $short_message = shortmess( "message from carp() or croak()" );
+ my $long_message = longmess( "message from cluck() or confess()" );
+ my $short_message = shortmess( "message from carp() or croak()" );
=head1 DESCRIPTION
@@ -802,7 +802,7 @@ Of course, C<Carp> can't guarantee the latter.
You can also alter the way the output and logic of C<Carp> works, by
changing some global variables in the C<Carp> namespace. See the
-section on C<GLOBAL VARIABLES> below.
+section on L</GLOBAL VARIABLES> below.
Here is a more complete description of how C<carp> and C<croak> work.
What they do is search the call-stack for a function call stack where
@@ -868,7 +868,7 @@ or by including the string C<-MCarp=verbose> in the PERL5OPT
environment variable.
Alternately, you can set the global variable C<$Carp::Verbose> to true.
-See the C<GLOBAL VARIABLES> section below.
+See the L</GLOBAL VARIABLES> section below.
=head2 Stack Trace formatting
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm
index fdb3e52ef6..043e345620 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm
@@ -2,7 +2,7 @@ package Carp::Heavy;
use Carp ();
-our $VERSION = '1.52';
+our $VERSION = '1.54';
$VERSION =~ tr/_//d;
# Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm
index c593dc7c39..a574734e5c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm
@@ -14,7 +14,7 @@ require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(struct);
-$VERSION = '0.66';
+$VERSION = '0.68';
my $print = 0;
sub printem {
@@ -84,7 +84,7 @@ sub struct {
}
else {
$base_type = 'ARRAY';
- $class = (caller())[0];
+ $class = caller();
@decls = @_;
}
@@ -275,24 +275,24 @@ Class::Struct - declare struct-like datatypes as Perl classes
# declare struct with four types of elements:
struct( s => '$', a => '@', h => '%', c => 'My_Other_Class' );
- $obj = new Myobj; # constructor
+ my $obj = Myobj->new; # constructor
# scalar type accessor:
- $element_value = $obj->s; # element value
+ my $element_value = $obj->s; # element value
$obj->s('new value'); # assign to element
# array type accessor:
- $ary_ref = $obj->a; # reference to whole array
- $ary_element_value = $obj->a(2); # array element value
+ my $ary_ref = $obj->a; # reference to whole array
+ my $ary_element_value = $obj->a(2); # array element value
$obj->a(2, 'new value'); # assign to array element
# hash type accessor:
- $hash_ref = $obj->h; # reference to whole hash
- $hash_element_value = $obj->h('x'); # hash element value
+ my $hash_ref = $obj->h; # reference to whole hash
+ my $hash_element_value = $obj->h('x'); # hash element value
$obj->h('x', 'new value'); # assign to hash element
# class type accessor:
- $element_value = $obj->c; # object reference
+ my $element_value = $obj->c; # object reference
$obj->c->method(...); # call method of object
$obj->c(new My_Other_Class); # assign a new object
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
index 0b2bec0c6f..94c04278da 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
@@ -11,7 +11,7 @@ use Carp ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
-$VERSION = '2.101';
+$VERSION = '2.204_001';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -384,7 +384,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
index 2cb6f1e48d..7250f382a6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
+++ b/systems/texlive/tlnet/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.101';
+$VERSION = '2.204_001';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -96,6 +96,14 @@ $VERSION = eval $VERSION;
Z_UNKNOWN
Z_VERSION_ERROR
+ ZLIBNG_VERSION
+ ZLIBNG_VERNUM
+ ZLIBNG_VER_MAJOR
+ ZLIBNG_VER_MINOR
+ ZLIBNG_VER_REVISION
+ ZLIBNG_VER_STATUS
+ ZLIBNG_VER_MODIFIED
+
WANT_GZIP
WANT_GZIP_OR_ZLIB
);
@@ -598,7 +606,7 @@ __END__
=head1 NAME
-Compress::Raw::Zlib - Low-Level Interface to zlib compression library
+Compress::Raw::Zlib - Low-Level Interface to zlib or zlib-ng compression library
=head1 SYNOPSIS
@@ -641,11 +649,18 @@ Compress::Raw::Zlib - Low-Level Interface to zlib compression library
my $version = Compress::Raw::Zlib::zlib_version();
my $flags = Compress::Raw::Zlib::zlibCompileFlags();
+ is_zlib_native();
+ is_zlibng_native();
+ is_zlibng_compat();
+ is_zlibng();
+
=head1 DESCRIPTION
-The I<Compress::Raw::Zlib> module provides a Perl interface to the I<zlib>
-compression library (see L</AUTHOR> for details about where to get
-I<zlib>).
+The I<Compress::Raw::Zlib> module provides a Perl interface to the I<zlib> or I<zlib-ng>
+compression libraries (see L</SEE ALSO> for details about where to get
+I<zlib> or I<zlib-ng>).
+
+In the text below all references to I<zlib> are also applicable to I<zlib-ng> unless otherwise stated.
=head1 Compress::Raw::Zlib::Deflate
@@ -1300,12 +1315,20 @@ Refer to the I<zlib> documentation for more details.
=head2 my $version = Compress::Raw::Zlib::zlib_version();
-Returns the version of the zlib library.
+Returns the version of the I<zlib> library if this module has been built with the I<zlib> library.
+If this module has been built with I<zlib-ng> in native mode, this function will return a empty string.
+If this module has been built with I<zlib-ng> in compat mode, this function will return the Izlib> API
+verion that I<zlib-ng> is supporting.
+
+=head2 my $version = Compress::Raw::Zlib::zlibng_version();
+
+Returns the version of the zlib-ng library if this module has been built with the I<zlib-ng> library.
+If this module has been built with I<zlib>, this function will return a empty string.
=head2 my $flags = Compress::Raw::Zlib::zlibCompileFlags();
Returns the flags indicating compile-time options that were used to build
-the zlib library. See the zlib documentation for a description of the flags
+the zlib or zlib-ng library. See the zlib documentation for a description of the flags
returned by C<zlibCompileFlags>.
Note that when the zlib sources are built along with this module the
@@ -1313,6 +1336,21 @@ C<sprintf> flags (bits 24, 25 and 26) should be ignored.
If you are using zlib 1.2.0 or older, C<zlibCompileFlags> will return 0.
+=head2 is_zlib_native();
+=head2 is_zlibng_native();
+=head2 is_zlibng_compat();
+=head2 is_zlibng();
+
+These function can use used to check if C<Compress::Raw::Zlib> was been built with I<zlib> or I<zlib-ng>.
+
+The function C<is_zlib_native> returns true if C<Compress::Raw::Zlib> was built with I<zlib>.
+The function C<is_zlibng> returns true if C<Compress::Raw::Zlib> was built with I<zlib-ng>.
+
+The I<zlib-ng> library has an option to build with a zlib-compataible API.
+The c<is_zlibng_compat> function retuens true if zlib-ng has ben built with this API.
+
+Finally, C<is_zlibng_native> returns true if I<zlib-ng> was built with its native API.
+
=head1 The LimitOutput option.
By default C<< $i->inflate($input, $output) >> will uncompress I<all> data
@@ -1574,9 +1612,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -1584,6 +1622,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1596,7 +1637,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Zlib.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Zlib.pm
index 059571de1e..68a5a5115a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Zlib.pm
+++ b/systems/texlive/tlnet/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.101 ;
-use Compress::Raw::Zlib 2.101 ;
-use IO::Compress::Gzip 2.101 ;
-use IO::Uncompress::Gunzip 2.101 ;
+use IO::Compress::Base::Common 2.204 ;
+use Compress::Raw::Zlib 2.204 ;
+use IO::Compress::Gzip 2.204 ;
+use IO::Uncompress::Gunzip 2.204 ;
use strict ;
use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.102';
+$VERSION = '2.204';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -461,7 +461,7 @@ sub inflate
package Compress::Zlib ;
-use IO::Compress::Gzip::Constants 2.101 ;
+use IO::Compress::Gzip::Constants 2.204 ;
sub memGzip($)
{
@@ -1484,9 +1484,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -1494,6 +1494,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1506,7 +1509,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 1995-2021 Paul Marquess. All rights reserved.
+Copyright (c) 1995-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm.orig b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.orig.pm
index 2afc712a6d..df2a12b790 100644..100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm.orig
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.orig.pm
@@ -1,111 +1,111 @@
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-# for a description of the variables, please have a look at the
-# Glossary file, as written in the Porting folder, or use the url:
-# https://github.com/Perl/perl5/blob/blead/Porting/Glossary
-
-package Config;
-use strict;
-use warnings;
-our ( %Config, $VERSION );
-
-$VERSION = "5.034000";
-
-# 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
-# lifetime of Perl 5.
-my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
- config_re => 1, compile_date => 1, local_patches => 1,
- bincompat_options => 1, non_bincompat_options => 1,
- header_files => 1);
-
-@Config::EXPORT = qw(%Config);
-@Config::EXPORT_OK = keys %Export_Cache;
-
-# Need to stub all the functions to make code such as print Config::config_sh
-# keep working
-
-sub bincompat_options;
-sub compile_date;
-sub config_re;
-sub config_sh;
-sub config_vars;
-sub header_files;
-sub local_patches;
-sub myconfig;
-sub non_bincompat_options;
-
-# Define our own import method to avoid pulling in the full Exporter:
-sub import {
- shift;
- @_ = @Config::EXPORT unless @_;
-
- my @funcs = grep $_ ne '%Config', @_;
- my $export_Config = @funcs < @_ ? 1 : 0;
-
- no strict 'refs';
- my $callpkg = caller(0);
- foreach my $func (@funcs) {
- die qq{"$func" is not exported by the Config module\n}
- unless $Export_Cache{$func};
- *{$callpkg.'::'.$func} = \&{$func};
- }
-
- *{"$callpkg\::Config"} = \%Config if $export_Config;
- return;
-}
-
-die "$0: Perl lib version (5.34.0) doesn't match executable '$^X' version ($])"
- unless $^V;
-
-$^V eq 5.34.0
- or die sprintf "%s: Perl lib version (5.34.0) doesn't match executable '$^X' version (%vd)", $0, $^V;
-
-
-sub FETCH {
- my($self, $key) = @_;
-
- # check for cached value (which may be undef so we use exists not defined)
- return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
-}
-
-sub TIEHASH {
- bless $_[1], $_[0];
-}
-
-sub DESTROY { }
-
-sub AUTOLOAD {
- require 'Config_heavy.pl';
- goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
- die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
-}
-
-# tie returns the object, so the value returned to require will be true.
-tie %Config, 'Config', {
- archlibexp => 'E:\\tlperl\\lib',
- archname => 'MSWin32-x64-multi-thread',
- cc => 'gcc',
- d_readlink => 'define',
- d_symlink => 'define',
- dlext => 'dll',
- dlsrc => 'dl_win32.xs',
- dont_use_nlink => undef,
- exe_ext => '.exe',
- inc_version_list => '',
- intsize => '4',
- ldlibpthname => '',
- libpth => 'E:\\mingw64\\lib E:\\mingw64\\x86_64-w64-mingw32\\lib E:\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.3.0',
- osname => 'MSWin32',
- osvers => '10.0.19042.508',
- path_sep => ';',
- privlibexp => 'E:\\tlperl\\lib',
- scriptdir => 'E:\\tlperl\\bin',
- sitearchexp => 'E:\\tlperl\\site\\lib',
- sitelibexp => 'E:\\tlperl\\site\\lib',
- so => 'dll',
- useithreads => 'define',
- usevendorprefix => undef,
- version => '5.34.0',
-};
+# This file was created by configpm when Perl was built. Any changes
+# made to this file will be lost the next time perl is built.
+
+# for a description of the variables, please have a look at the
+# Glossary file, as written in the Porting folder, or use the url:
+# https://github.com/Perl/perl5/blob/blead/Porting/Glossary
+
+package Config;
+use strict;
+use warnings;
+our ( %Config, $VERSION );
+
+$VERSION = "5.038002";
+
+# 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
+# lifetime of Perl 5.
+my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
+ config_re => 1, compile_date => 1, local_patches => 1,
+ bincompat_options => 1, non_bincompat_options => 1,
+ header_files => 1);
+
+@Config::EXPORT = qw(%Config);
+@Config::EXPORT_OK = keys %Export_Cache;
+
+# Need to stub all the functions to make code such as print Config::config_sh
+# keep working
+
+sub bincompat_options;
+sub compile_date;
+sub config_re;
+sub config_sh;
+sub config_vars;
+sub header_files;
+sub local_patches;
+sub myconfig;
+sub non_bincompat_options;
+
+# Define our own import method to avoid pulling in the full Exporter:
+sub import {
+ shift;
+ @_ = @Config::EXPORT unless @_;
+
+ my @funcs = grep $_ ne '%Config', @_;
+ my $export_Config = @funcs < @_ ? 1 : 0;
+
+ no strict 'refs';
+ my $callpkg = caller(0);
+ foreach my $func (@funcs) {
+ die qq{"$func" is not exported by the Config module\n}
+ unless $Export_Cache{$func};
+ *{$callpkg.'::'.$func} = \&{$func};
+ }
+
+ *{"$callpkg\::Config"} = \%Config if $export_Config;
+ return;
+}
+
+die "$0: Perl lib version (5.38.2) doesn't match executable '$^X' version ($])"
+ unless $^V;
+
+$^V eq 5.38.2
+ or die sprintf "%s: Perl lib version (5.38.2) doesn't match executable '$^X' version (%vd)", $0, $^V;
+
+
+sub FETCH {
+ my($self, $key) = @_;
+
+ # check for cached value (which may be undef so we use exists not defined)
+ return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
+}
+
+sub TIEHASH {
+ bless $_[1], $_[0];
+}
+
+sub DESTROY { }
+
+sub AUTOLOAD {
+ require 'Config_heavy.pl';
+ goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
+ die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
+}
+
+# tie returns the object, so the value returned to require will be true.
+tie %Config, 'Config', {
+ archlibexp => 'd:\\tlperl\\lib',
+ archname => 'MSWin32-x64-multi-thread',
+ cc => 'cl',
+ d_readlink => 'define',
+ d_symlink => 'define',
+ dlext => 'dll',
+ dlsrc => 'dl_win32.xs',
+ dont_use_nlink => undef,
+ exe_ext => '.exe',
+ inc_version_list => '',
+ intsize => '4',
+ ldlibpthname => '',
+ libpth => '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\\\lib\\x64"',
+ osname => 'MSWin32',
+ osvers => '10.0.22631.3085',
+ path_sep => ';',
+ privlibexp => 'd:\\tlperl\\lib',
+ scriptdir => 'd:\\tlperl\\bin',
+ sitearchexp => 'd:\\tlperl\\site\\lib',
+ sitelibexp => 'd:\\tlperl\\site\\lib',
+ so => 'dll',
+ useithreads => 'define',
+ usevendorprefix => undef,
+ version => '5.38.2',
+};
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm
index de0e8b432a..39afdda3f9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm
@@ -10,15 +10,15 @@ use strict;
use warnings;
our ( %Config, $VERSION );
-$VERSION = "5.034000";
+$VERSION = "5.038002";
# 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
# lifetime of Perl 5.
my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
- config_re => 1, compile_date => 1, local_patches => 1,
- bincompat_options => 1, non_bincompat_options => 1,
- header_files => 1);
+ config_re => 1, compile_date => 1, local_patches => 1,
+ bincompat_options => 1, non_bincompat_options => 1,
+ header_files => 1);
@Config::EXPORT = qw(%Config);
@Config::EXPORT_OK = keys %Export_Cache;
@@ -47,20 +47,20 @@ sub import {
no strict 'refs';
my $callpkg = caller(0);
foreach my $func (@funcs) {
- die qq{"$func" is not exported by the Config module\n}
- unless $Export_Cache{$func};
- *{$callpkg.'::'.$func} = \&{$func};
+ die qq{"$func" is not exported by the Config module\n}
+ unless $Export_Cache{$func};
+ *{$callpkg.'::'.$func} = \&{$func};
}
*{"$callpkg\::Config"} = \%Config if $export_Config;
return;
}
-die "$0: Perl lib version (5.34.0) doesn't match executable '$^X' version ($])"
+die "$0: Perl lib version (5.38.2) doesn't match executable '$^X' version ($])"
unless $^V;
-$^V eq 5.34.0
- or die sprintf "%s: Perl lib version (5.34.0) doesn't match executable '$^X' version (%vd)", $0, $^V;
+$^V eq 5.38.2
+ or die sprintf "%s: Perl lib version (5.38.2) doesn't match executable '$^X' version (%vd)", $0, $^V;
sub FETCH {
@@ -81,17 +81,16 @@ sub AUTOLOAD {
goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
}
-
+
my $rootdir = __FILE__;
$rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!;
$rootdir =~ s!/!\\!g;
-my $mingdir = "E:\\mingw64";
# tie returns the object, so the value returned to require will be true.
tie %Config, 'Config', {
archlibexp => "$rootdir\\lib",
archname => 'MSWin32-x64-multi-thread',
- cc => 'gcc',
+ cc => 'cl',
d_readlink => 'define',
d_symlink => 'define',
dlext => 'dll',
@@ -101,9 +100,9 @@ tie %Config, 'Config', {
inc_version_list => '',
intsize => '4',
ldlibpthname => '',
- libpth => "$mingdir\\lib $mingdir\\x86_64-w64-mingw32\\lib $mingdir\\lib\\gcc\\x86_64-w64-mingw32\\8.3.0",
+ libpth => '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\\\lib\\x64"',
osname => 'MSWin32',
- osvers => '10.0.19042.508',
+ osvers => '10.0.22631.3085',
path_sep => ';',
privlibexp => "$rootdir\\lib",
scriptdir => "$rootdir\\bin",
@@ -112,5 +111,5 @@ tie %Config, 'Config', {
so => 'dll',
useithreads => 'define',
usevendorprefix => undef,
- version => '5.34.0',
+ version => '5.38.2',
};
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod
index 629d2eca92..49edf62cd0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod
@@ -8,8 +8,8 @@ Config - access Perl configuration information
use Config;
if ($Config{usethreads}) {
- print "has thread support\n"
- }
+ print "has thread support\n"
+ }
use Config qw(myconfig config_sh config_vars config_re);
@@ -25,7 +25,7 @@ Config - access Perl configuration information
=head1 DESCRIPTION
The Config module contains all the information that was available to
-the C<Configure> program at Perl build time (over 900 values).
+the F<Configure> program at Perl build time (over 900 values).
Shell variables from the F<config.sh> file (written by Configure) are
stored in the readonly-variable C<%Config>, indexed by their names.
@@ -104,19 +104,19 @@ Here's a more sophisticated example of using %Config:
my %sig_num;
my @sig_name;
unless($Config{sig_name} && $Config{sig_num}) {
- die "No sigs?";
+ die "No sigs?";
} else {
- my @names = split ' ', $Config{sig_name};
- @sig_num{@names} = split ' ', $Config{sig_num};
- foreach (@names) {
- $sig_name[$sig_num{$_}] ||= $_;
- }
+ my @names = split ' ', $Config{sig_name};
+ @sig_num{@names} = split ' ', $Config{sig_num};
+ foreach (@names) {
+ $sig_name[$sig_num{$_}] ||= $_;
+ }
}
print "signal #17 = $sig_name[17]\n";
- if ($sig_num{ALRM}) {
- print "SIGALRM is $sig_num{ALRM}\n";
- }
+ if ($sig_num{ALRM}) {
+ print "SIGALRM is $sig_num{ALRM}\n";
+ }
=head1 WARNING
@@ -148,6 +148,80 @@ in such cases.
=cut
+=head2 P
+
+=over 4
+
+=item C<PERL_API_REVISION>
+
+From F<patchlevel.h>:
+
+This number describes the earliest compatible C<PERL_REVISION> of
+Perl (C<compatibility> here being defined as sufficient F<binary/C<API>>
+compatibility to run C<XS> code built with the older version).
+Normally this does not change across maintenance releases.
+Please read the comment in F<patchlevel.h>.
+
+=item C<PERL_API_SUBVERSION>
+
+From F<patchlevel.h>:
+
+This number describes the earliest compatible C<PERL_SUBVERSION> of
+Perl (C<compatibility> here being defined as sufficient F<binary/C<API>>
+compatibility to run C<XS> code built with the older version).
+Normally this does not change across maintenance releases.
+Please read the comment in F<patchlevel.h>.
+
+=item C<PERL_API_VERSION>
+
+From F<patchlevel.h>:
+
+This number describes the earliest compatible C<PERL_VERSION> of
+Perl (C<compatibility> here being defined as sufficient F<binary/C<API>>
+compatibility to run C<XS> code built with the older version).
+Normally this does not change across maintenance releases.
+Please read the comment in F<patchlevel.h>.
+
+=item C<PERL_CONFIG_SH>
+
+From F<Oldsyms.U>:
+
+This is set to C<true> in F<config.sh> so that a shell script
+sourcing F<config.sh> can tell if it has been sourced already.
+
+=item C<PERL_PATCHLEVEL>
+
+From F<Oldsyms.U>:
+
+This symbol reflects the patchlevel, if available. Will usually
+come from the F<.patch> file, which is available when the perl
+source tree was fetched with rsync.
+
+=item C<PERL_REVISION>
+
+From F<Oldsyms.U>:
+
+In a Perl version number such as 5.6.2, this is the 5.
+This value is manually set in F<patchlevel.h>
+
+=item C<PERL_SUBVERSION>
+
+From F<Oldsyms.U>:
+
+In a Perl version number such as 5.6.2, this is the 2.
+Values greater than 50 represent potentially unstable
+development subversions.
+This value is manually set in F<patchlevel.h>
+
+=item C<PERL_VERSION>
+
+From F<Oldsyms.U>:
+
+In a Perl version number such as 5.6.2, this is the 6.
+This value is manually set in F<patchlevel.h>
+
+=back
+
=head2 _
=over 4
@@ -771,6 +845,130 @@ is defined.
=over 4
+=item C<d_Gconvert>
+
+From F<d_gconvert.U>:
+
+This variable holds what Gconvert is defined as to convert
+floating point numbers into strings. By default, Configure
+sets C<this> macro to use the first of gconvert, gcvt, or sprintf
+that pass sprintf-%g-like behavior tests. If perl is using
+long doubles, the macro uses the first of the following
+functions that pass Configure's tests: qgcvt, sprintf (if
+Configure knows how to make sprintf format long doubles--see
+sPRIgldbl), gconvert, gcvt, and sprintf (casting to double).
+The gconvert_preference and gconvert_ld_preference variables
+can be used to alter Configure's preferences, for doubles and
+long doubles, respectively. If present, they contain a
+space-separated list of one or more of the above function
+names in the order they should be tried.
+
+d_Gconvert may be set to override Configure with a platform-
+specific function. If this function expects a double, a
+different value may need to be set by the F<uselongdouble.cbu>
+call-back unit so that long doubles can be formatted without
+loss of precision.
+
+=item C<d_PRIEUldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to print long doubles.
+The C<U> in the name is to separate this from d_PRIeldbl so that even
+case-blind systems can see the difference.
+
+=item C<d_PRIFUldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to print long doubles.
+The C<U> in the name is to separate this from d_PRIfldbl so that even
+case-blind systems can see the difference.
+
+=item C<d_PRIGUldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to print long doubles.
+The C<U> in the name is to separate this from d_PRIgldbl so that even
+case-blind systems can see the difference.
+
+=item C<d_PRIXU64>
+
+From F<quadfio.U>:
+
+This variable conditionally defines the PERL_PRIXU64 symbol, which
+indicates that stdio has a symbol to print 64-bit hExADECimAl numbers.
+The C<U> in the name is to separate this from d_PRIx64 so that even
+case-blind systems can see the difference.
+
+=item C<d_PRId64>
+
+From F<quadfio.U>:
+
+This variable conditionally defines the PERL_PRId64 symbol, which
+indicates that stdio has a symbol to print 64-bit decimal numbers.
+
+=item C<d_PRIeldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to print long doubles.
+
+=item C<d_PRIfldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to print long doubles.
+
+=item C<d_PRIgldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to print long doubles.
+
+=item C<d_PRIi64>
+
+From F<quadfio.U>:
+
+This variable conditionally defines the PERL_PRIi64 symbol, which
+indicates that stdio has a symbol to print 64-bit decimal numbers.
+
+=item C<d_PRIo64>
+
+From F<quadfio.U>:
+
+This variable conditionally defines the PERL_PRIo64 symbol, which
+indicates that stdio has a symbol to print 64-bit octal numbers.
+
+=item C<d_PRIu64>
+
+From F<quadfio.U>:
+
+This variable conditionally defines the PERL_PRIu64 symbol, which
+indicates that stdio has a symbol to print 64-bit unsigned decimal
+numbers.
+
+=item C<d_PRIx64>
+
+From F<quadfio.U>:
+
+This variable conditionally defines the PERL_PRIx64 symbol, which
+indicates that stdio has a symbol to print 64-bit hexadecimal numbers.
+
+=item C<d_SCNfldbl>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the PERL_PRIfldbl symbol, which
+indicates that stdio has a symbol to scan long doubles.
+
=item C<d__fwalk>
From F<d__fwalk.U>:
@@ -937,6 +1135,13 @@ indicates that the C compiler can know that certain variables
and arguments may not always be used, and to not throw warnings
if they don't get used.
+=item C<d_attribute_visibility>
+
+From F<d_attribut.U>:
+
+This variable conditionally defines the C<HASATTRIBUTE_VISIBILITY> symbol,
+and indicates different C<GCC> attribute visibility
+
=item C<d_attribute_warn_unused_result>
From F<d_attribut.U>:
@@ -1603,6 +1808,22 @@ 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_ffs>
+
+From F<d_ffs.U>:
+
+This variable conditionally defines the C<HAS_FFS> symbol, which
+indicates to the C program that the ffs() routine is available
+to find the first bit which is set in its integer argument.
+
+=item C<d_ffsl>
+
+From F<d_ffs.U>:
+
+This variable conditionally defines the C<HAS_FFSL> symbol, which
+indicates to the C program that the ffsl() routine is available
+to find the first bit which is set in its long integer argument.
+
=item C<d_fgetpos>
From F<d_fgetpos.U>:
@@ -1827,30 +2048,6 @@ if the gai_strerror() routine is available and can be used to
translate error codes returned by getaddrinfo() into human
readable strings.
-=item C<d_Gconvert>
-
-From F<d_gconvert.U>:
-
-This variable holds what Gconvert is defined as to convert
-floating point numbers into strings. By default, Configure
-sets C<this> macro to use the first of gconvert, gcvt, or sprintf
-that pass sprintf-%g-like behavior tests. If perl is using
-long doubles, the macro uses the first of the following
-functions that pass Configure's tests: qgcvt, sprintf (if
-Configure knows how to make sprintf format long doubles--see
-sPRIgldbl), gconvert, gcvt, and sprintf (casting to double).
-The gconvert_preference and gconvert_ld_preference variables
-can be used to alter Configure's preferences, for doubles and
-long doubles, respectively. If present, they contain a
-space-separated list of one or more of the above function
-names in the order they should be tried.
-
-d_Gconvert may be set to override Configure with a platform-
-specific function. If this function expects a double, a
-different value may need to be set by the F<uselongdouble.cbu>
-call-back unit so that long doubles can be formatted without
-loss of precision.
-
=item C<d_gdbm_ndbm_h_uses_prototypes>
From F<i_ndbm.U>:
@@ -3221,6 +3418,22 @@ From F<d_nl_langinfo.U>:
This variable conditionally defines the C<HAS_NL_LANGINFO> symbol, which
indicates to the C program that the nl_langinfo() routine is available.
+=item C<d_nl_langinfo_l>
+
+From F<d_nl_langinfo_l.U>:
+
+This variable contains the eventual value of the
+C<HAS_NL_LANGINFO_L> symbol, which indicates if the
+nl_langinfo_l() function exists.
+
+=item C<d_non_int_bitfields>
+
+From F<d_bitfield.U>:
+
+This variable conditionally defines C<HAS_NON_INT_BITFIELDS>
+which indicates that the C compiler accepts struct bitfields of sizes
+that aren't C<int> or C<unsigned int>
+
=item C<d_nv_preserves_uv>
From F<perlxv.U>:
@@ -3361,68 +3574,6 @@ This variable conditionally defines the C<HAS_PRCTL_SET_NAME> symbol,
which indicates to the C program that the prctl() routine supports
the C<PR_SET_NAME> option.
-=item C<d_PRId64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRId64 symbol, which
-indicates that stdio has a symbol to print 64-bit decimal numbers.
-
-=item C<d_PRIeldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to print long doubles.
-
-=item C<d_PRIEUldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to print long doubles.
-The C<U> in the name is to separate this from d_PRIeldbl so that even
-case-blind systems can see the difference.
-
-=item C<d_PRIfldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to print long doubles.
-
-=item C<d_PRIFUldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to print long doubles.
-The C<U> in the name is to separate this from d_PRIfldbl so that even
-case-blind systems can see the difference.
-
-=item C<d_PRIgldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to print long doubles.
-
-=item C<d_PRIGUldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to print long doubles.
-The C<U> in the name is to separate this from d_PRIgldbl so that even
-case-blind systems can see the difference.
-
-=item C<d_PRIi64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIi64 symbol, which
-indicates that stdio has a symbol to print 64-bit decimal numbers.
-
=item C<d_printf_format_null>
From F<d_attribut.U>:
@@ -3430,37 +3581,6 @@ From F<d_attribut.U>:
This variable conditionally defines C<PRINTF_FORMAT_NULL_OK>, which
indicates the C compiler allows printf-like formats to be null.
-=item C<d_PRIo64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIo64 symbol, which
-indicates that stdio has a symbol to print 64-bit octal numbers.
-
-=item C<d_PRIu64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIu64 symbol, which
-indicates that stdio has a symbol to print 64-bit unsigned decimal
-numbers.
-
-=item C<d_PRIx64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIx64 symbol, which
-indicates that stdio has a symbol to print 64-bit hexadecimal numbers.
-
-=item C<d_PRIXU64>
-
-From F<quadfio.U>:
-
-This variable conditionally defines the PERL_PRIXU64 symbol, which
-indicates that stdio has a symbol to print 64-bit hExADECimAl numbers.
-The C<U> in the name is to separate this from d_PRIx64 so that even
-case-blind systems can see the difference.
-
=item C<d_procselfexe>
From F<d_procselfexe.U>:
@@ -3758,13 +3878,6 @@ This variable conditionally defines the C<HAS_SCM_RIGHTS> symbol,
which indicates that the C<SCM_RIGHTS> is available. #ifdef is
not enough because it may be an enum, glibc has been known to do this.
-=item C<d_SCNfldbl>
-
-From F<longdblfio.U>:
-
-This variable conditionally defines the PERL_PRIfldbl symbol, which
-indicates that stdio has a symbol to scan long doubles.
-
=item C<d_seekdir>
From F<d_readdir.U>:
@@ -3837,6 +3950,13 @@ This variable conditionally defines the C<HAS_SETEGID> symbol, which
indicates to the C program that the setegid() routine is available
to change the effective gid of the current program.
+=item C<d_setenv>
+
+From F<d_setenv.U>:
+
+This variable conditionally defines the C<HAS_SETENV> symbol, which
+indicates to the C program that the setenv routine is available.
+
=item C<d_seteuid>
From F<d_seteuid.U>:
@@ -4574,6 +4694,13 @@ From F<d_strxfrm.U>:
This variable conditionally defines C<HAS_STRXFRM> if strxfrm() is
available to transform strings.
+=item C<d_strxfrm_l>
+
+From F<d_strxfrm_l.U>:
+
+This variable conditionally defines C<HAS_STRXFRM_L> if strxfrm_l() is
+available to transform strings.
+
=item C<d_suidsafe>
From F<d_dosuid.U>:
@@ -4674,6 +4801,13 @@ 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_thread_local>
+
+From F<d_thread_local.U>:
+
+This variable conditionally defines the C<PERL_THREAD_LOCAL> symbol. In
+turn that gives a linkage specification for thread-local storage.
+
=item C<d_thread_safe_nl_langinfo_l>
From F<d_nl_langinfo_l.U>:
@@ -5321,6 +5455,15 @@ This variable holds a list of extra modules to install.
=over 4
+=item C<fflushNULL>
+
+From F<fflushall.U>:
+
+This symbol, if defined, tells that fflush(C<NULL>) correctly
+flushes all pending stdio output without side effects. In
+particular, on some platforms calling fflush(C<NULL>) *still*
+corrupts C<STDIN> if it is a pipe.
+
=item C<fflushall>
From F<fflushall.U>:
@@ -5331,15 +5474,6 @@ the stdio file handles stored in an array and fflush them.
Note that if fflushNULL is defined, fflushall will not
even be probed for and will be left undefined.
-=item C<fflushNULL>
-
-From F<fflushall.U>:
-
-This symbol, if defined, tells that fflush(C<NULL>) correctly
-flushes all pending stdio output without side effects. In
-particular, on some platforms calling fflush(C<NULL>) *still*
-corrupts C<STDIN> if it is a pipe.
-
=item C<find>
From F<Loc.U>:
@@ -5840,6 +5974,13 @@ From F<perlxv.U>:
This variable contains the C type used for Perl's I16.
+=item C<i32dformat>
+
+From F<perlx32f.U>:
+
+This variable contains the format string used for printing
+a Perl I32 as a signed decimal integer.
+
=item C<i32size>
From F<perlxv.U>:
@@ -6344,6 +6485,13 @@ From F<i_sysstatvfs.U>:
This variable conditionally defines the C<I_SYSSTATVFS> symbol,
and indicates whether a C program should include <sys/statvfs.h>.
+=item C<i_syssyscall>
+
+From F<i_syssyscall.U>:
+
+This variable conditionally defines the C<I_SYS_SYSCALL> symbol,
+and indicates whether a C program should include <sys/syscall.h>.
+
=item C<i_systime>
From F<i_time.U>:
@@ -6478,8 +6626,8 @@ that indicates whether a C program may include <wctype.h>.
From F<d_newlocale.U>:
-This symbol, if defined, indicates to the C program that it should
-include <xlocale.h> to get uselocale() and its friends
+This symbol, if defined, indicates to the C program that the
+header F<xlocale.h> is available. See also xlocale_needed.
=item C<ignore_versioned_solibs>
@@ -7498,6 +7646,27 @@ This variable is used internally by Configure to determine the
full pathname (if any) of the nroff program. After Configure runs,
the value is reset to a plain C<nroff> and is not useful.
+=item C<nvEUformat>
+
+From F<perlxvf.U>:
+
+This variable contains the format string used for printing
+a Perl C<NV> using %E-ish floating point format.
+
+=item C<nvFUformat>
+
+From F<perlxvf.U>:
+
+This variable contains the format string used for printing
+a Perl C<NV> using %F-ish floating point format.
+
+=item C<nvGUformat>
+
+From F<perlxvf.U>:
+
+This variable contains the format string used for printing
+a Perl C<NV> using %G-ish floating point format.
+
=item C<nv_overflows_integers_at>
From F<perlxv.U>:
@@ -7520,13 +7689,6 @@ From F<perlxvf.U>:
This variable contains the format string used for printing
a Perl C<NV> using %e-ish floating point format.
-=item C<nvEUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %E-ish floating point format.
-
=item C<nvfformat>
From F<perlxvf.U>:
@@ -7534,13 +7696,6 @@ From F<perlxvf.U>:
This variable contains the format string used for printing
a Perl C<NV> using %f-ish floating point format.
-=item C<nvFUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %F-ish floating point format.
-
=item C<nvgformat>
From F<perlxvf.U>:
@@ -7548,13 +7703,6 @@ From F<perlxvf.U>:
This variable contains the format string used for printing
a Perl C<NV> using %g-ish floating point format.
-=item C<nvGUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<NV> using %G-ish floating point format.
-
=item C<nvmantbits>
From F<mantbits.U>:
@@ -7717,57 +7865,6 @@ This variable contains the full path (if any) to a previously
installed F<perl5.005> or later suitable for running the script
to determine inc_version_list.
-=back
-
-=head2 P
-
-=over 4
-
-=item C<PERL_API_REVISION>
-
-From F<patchlevel.h>:
-
-This number describes the earliest compatible C<PERL_REVISION> of
-Perl (C<compatibility> here being defined as sufficient F<binary/C<API>>
-compatibility to run C<XS> code built with the older version).
-Normally this does not change across maintenance releases.
-Please read the comment in F<patchlevel.h>.
-
-=item C<PERL_API_SUBVERSION>
-
-From F<patchlevel.h>:
-
-This number describes the earliest compatible C<PERL_SUBVERSION> of
-Perl (C<compatibility> here being defined as sufficient F<binary/C<API>>
-compatibility to run C<XS> code built with the older version).
-Normally this does not change across maintenance releases.
-Please read the comment in F<patchlevel.h>.
-
-=item C<PERL_API_VERSION>
-
-From F<patchlevel.h>:
-
-This number describes the earliest compatible C<PERL_VERSION> of
-Perl (C<compatibility> here being defined as sufficient F<binary/C<API>>
-compatibility to run C<XS> code built with the older version).
-Normally this does not change across maintenance releases.
-Please read the comment in F<patchlevel.h>.
-
-=item C<PERL_CONFIG_SH>
-
-From F<Oldsyms.U>:
-
-This is set to C<true> in F<config.sh> so that a shell script
-sourcing F<config.sh> can tell if it has been sourced already.
-
-=item C<PERL_PATCHLEVEL>
-
-From F<Oldsyms.U>:
-
-This symbol reflects the patchlevel, if available. Will usually
-come from the F<.patch> file, which is available when the perl
-source tree was fetched with rsync.
-
=item C<perl_patchlevel>
From F<patchlevel.U>:
@@ -7779,13 +7876,6 @@ It does not correlate with the Perl version numbers or
the maintenance versus development dichotomy except
by also being increasing.
-=item C<PERL_REVISION>
-
-From F<Oldsyms.U>:
-
-In a Perl version number such as 5.6.2, this is the 5.
-This value is manually set in F<patchlevel.h>
-
=item C<perl_static_inline>
From F<d_static_inline.U>:
@@ -7799,21 +7889,12 @@ static __inline (C<MSVC>)
static _inline (older C<MSVC>)
static (c89 compilers)
-=item C<PERL_SUBVERSION>
-
-From F<Oldsyms.U>:
-
-In a Perl version number such as 5.6.2, this is the 2.
-Values greater than 50 represent potentially unstable
-development subversions.
-This value is manually set in F<patchlevel.h>
-
-=item C<PERL_VERSION>
+=item C<perl_thread_local>
-From F<Oldsyms.U>:
+From F<d_thread_local.U>:
-In a Perl version number such as 5.6.2, this is the 6.
-This value is manually set in F<patchlevel.h>
+This variable gives the value for the C<PERL_THREAD_LOCAL> symbol (when
+defined), which gives a linkage specification for thread-local storage.
=item C<perladmin>
@@ -8081,6 +8162,133 @@ of usenm and the flags on the Configure command line.
=over 4
+=item C<sGMTIME_max>
+
+From F<time_size.U>:
+
+This variable defines the maximum value of the time_t offset that
+the system function gmtime () accepts
+
+=item C<sGMTIME_min>
+
+From F<time_size.U>:
+
+This variable defines the minimum value of the time_t offset that
+the system function gmtime () accepts
+
+=item C<sLOCALTIME_max>
+
+From F<time_size.U>:
+
+This variable defines the maximum value of the time_t offset that
+the system function localtime () accepts
+
+=item C<sLOCALTIME_min>
+
+From F<time_size.U>:
+
+This variable defines the minimum value of the time_t offset that
+the system function localtime () accepts
+
+=item C<sPRIEUldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<E>) for output.
+The C<U> in the name is to separate this from sPRIeldbl so that even
+case-blind systems can see the difference.
+
+=item C<sPRIFUldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<F>) for output.
+The C<U> in the name is to separate this from sPRIfldbl so that even
+case-blind systems can see the difference.
+
+=item C<sPRIGUldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<G>) for output.
+The C<U> in the name is to separate this from sPRIgldbl so that even
+case-blind systems can see the difference.
+
+=item C<sPRIXU64>
+
+From F<quadfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format 64-bit hExADECimAl numbers (format C<X>) for output.
+The C<U> in the name is to separate this from sPRIx64 so that even
+case-blind systems can see the difference.
+
+=item C<sPRId64>
+
+From F<quadfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format 64-bit decimal numbers (format C<d>) for output.
+
+=item C<sPRIeldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<e>) for output.
+
+=item C<sPRIfldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<f>) for output.
+
+=item C<sPRIgldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<g>) for output.
+
+=item C<sPRIi64>
+
+From F<quadfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format 64-bit decimal numbers (format C<i>) for output.
+
+=item C<sPRIo64>
+
+From F<quadfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format 64-bit octal numbers (format C<o>) for output.
+
+=item C<sPRIu64>
+
+From F<quadfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format 64-bit unsigned decimal numbers (format C<u>) for output.
+
+=item C<sPRIx64>
+
+From F<quadfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format 64-bit hexadecimal numbers (format C<x>) for output.
+
+=item C<sSCNfldbl>
+
+From F<longdblfio.U>:
+
+This variable, if defined, contains the string used by stdio to
+format long doubles (format C<f>) for input.
+
=item C<sched_yield>
From F<d_pthread_y.U>:
@@ -8209,20 +8417,6 @@ It is zero if d_setservent_r is undef, and one of the
C<REENTRANT_PROTO_T_ABC> macros of F<reentr.h> if d_setservent_r
is defined.
-=item C<sGMTIME_max>
-
-From F<time_size.U>:
-
-This variable defines the maximum value of the time_t offset that
-the system function gmtime () accepts
-
-=item C<sGMTIME_min>
-
-From F<time_size.U>:
-
-This variable defines the minimum value of the time_t offset that
-the system function gmtime () accepts
-
=item C<sh>
From F<sh.U>:
@@ -8560,20 +8754,6 @@ From F<Loc.U>:
This variable is defined but not used by Configure.
The value is the empty string and is not useful.
-=item C<sLOCALTIME_max>
-
-From F<time_size.U>:
-
-This variable defines the maximum value of the time_t offset that
-the system function localtime () accepts
-
-=item C<sLOCALTIME_min>
-
-From F<time_size.U>:
-
-This variable defines the minimum value of the time_t offset that
-the system function localtime () accepts
-
=item C<smail>
From F<Loc.U>:
@@ -8631,98 +8811,6 @@ From F<spitshell.U>:
This variable contains the command necessary to spit out a runnable
shell on this system. It is either cat or a grep C<-v> for # comments.
-=item C<sPRId64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit decimal numbers (format C<d>) for output.
-
-=item C<sPRIeldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<e>) for output.
-
-=item C<sPRIEUldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<E>) for output.
-The C<U> in the name is to separate this from sPRIeldbl so that even
-case-blind systems can see the difference.
-
-=item C<sPRIfldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<f>) for output.
-
-=item C<sPRIFUldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<F>) for output.
-The C<U> in the name is to separate this from sPRIfldbl so that even
-case-blind systems can see the difference.
-
-=item C<sPRIgldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<g>) for output.
-
-=item C<sPRIGUldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<G>) for output.
-The C<U> in the name is to separate this from sPRIgldbl so that even
-case-blind systems can see the difference.
-
-=item C<sPRIi64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit decimal numbers (format C<i>) for output.
-
-=item C<sPRIo64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit octal numbers (format C<o>) for output.
-
-=item C<sPRIu64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit unsigned decimal numbers (format C<u>) for output.
-
-=item C<sPRIx64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit hexadecimal numbers (format C<x>) for output.
-
-=item C<sPRIXU64>
-
-From F<quadfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format 64-bit hExADECimAl numbers (format C<X>) for output.
-The C<U> in the name is to separate this from sPRIx64 so that even
-case-blind systems can see the difference.
-
=item C<srand48_r_proto>
From F<d_srand48_r.U>:
@@ -8749,13 +8837,6 @@ This variable holds the (possibly relative) path of the package source.
It is up to the Makefile to use this variable and set C<VPATH> accordingly
to find the sources remotely. Use $pkgsrc to have an absolute path.
-=item C<sSCNfldbl>
-
-From F<longdblfio.U>:
-
-This variable, if defined, contains the string used by stdio to
-format long doubles (format C<f>) for input.
-
=item C<ssizetype>
From F<ssizetype.U>:
@@ -8765,6 +8846,19 @@ long or int. It is used by functions that return a count
of bytes or an error condition. It must be a signed type.
We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
+=item C<st_dev_sign>
+
+From F<st_dev_def.U>:
+
+This variable contains the signedness of struct stat's st_dev.
+1 for unsigned, -1 for signed.
+
+=item C<st_dev_size>
+
+From F<st_dev_def.U>:
+
+This variable contains the size of struct stat's st_dev in bytes.
+
=item C<st_ino_sign>
From F<st_ino_def.U>:
@@ -8918,6 +9012,26 @@ From F<Loc.U>:
This variable is defined but not used by Configure.
The value is the empty string and is not useful.
+=item C<taint_disabled>
+
+From define: C<SILENT_NO_TAINT_SUPPORT> or C<NO_TAINT_SUPPORT>
+
+If this perl is compiled with support for taint mode this variable will
+be set to the empty string, if it was compiled with
+C<SILENT_NO_TAINT_SUPPORT> defined then it will be set to be "silent",
+and if it was compiled with C<NO_TAINT_SUPPORT> defined it will be
+'define'. Either of the above defines will results in it being a true
+value. This property was added in 5.37.11. See also L</taint_support>.
+
+=item C<taint_support>
+
+From define: C<SILENT_NO_TAINT_SUPPORT> or C<NO_TAINT_SUPPORT>
+
+If this perl is compiled with support for taint mode this variable will
+be set to 'define', if it is not it will be set to the empty string.
+Either of the above defines will result in it being empty. This property
+was added in version 5.37.11. See also L</taint_disabled>.
+
=item C<tar>
From F<Loc.U>:
@@ -9094,6 +9208,20 @@ From F<perlxv.U>:
This variable contains the C type used for Perl's U16.
+=item C<u32XUformat>
+
+From F<perlx32f.U>:
+
+This variable contains the format string used for printing
+a Perl U32 as an unsigned hexadecimal integer in uppercase C<ABCDEF>.
+
+=item C<u32oformat>
+
+From F<perlx32f.U>:
+
+This variable contains the format string used for printing
+a Perl U32 as an unsigned octal integer.
+
=item C<u32size>
From F<perlxv.U>:
@@ -9106,6 +9234,20 @@ From F<perlxv.U>:
This variable contains the C type used for Perl's U32.
+=item C<u32uformat>
+
+From F<perlx32f.U>:
+
+This variable contains the format string used for printing
+a Perl U32 as an unsigned decimal integer.
+
+=item C<u32xformat>
+
+From F<perlx32f.U>:
+
+This variable contains the format string used for printing
+a Perl U32 as an unsigned hexadecimal integer in lowercase abcdef.
+
=item C<u64size>
From F<perlxv.U>:
@@ -9463,6 +9605,13 @@ From F<Loc.U>:
This variable is defined but not used by Configure.
The value is the empty string and is not useful.
+=item C<uvXUformat>
+
+From F<perlxvf.U>:
+
+This variable contains the format string used for printing
+a Perl C<UV> as an unsigned hexadecimal integer in uppercase C<ABCDEF>.
+
=item C<uvoformat>
From F<perlxvf.U>:
@@ -9496,13 +9645,6 @@ From F<perlxvf.U>:
This variable contains the format string used for printing
a Perl C<UV> as an unsigned hexadecimal integer in lowercase abcdef.
-=item C<uvXUformat>
-
-From F<perlxvf.U>:
-
-This variable contains the format string used for printing
-a Perl C<UV> as an unsigned hexadecimal integer in uppercase C<ABCDEF>.
-
=back
=head2 v
@@ -9742,6 +9884,13 @@ This variable holds extra path (space-separated) used to find
libraries on this platform, for example C<CPU>-specific libraries
(on multi-C<CPU> platforms) may be listed here.
+=item C<xlocale_needed>
+
+From F<d_newlocale.U>:
+
+This symbol, if defined, indicates that the C program should
+include <xlocale.h> to get newlocale() and its friends.
+
=back
=head2 y
@@ -9783,9 +9932,9 @@ This variable is used internally by Configure to determine the
full pathname (if any) of the zip program. After Configure runs,
the value is reset to a plain C<zip> and is not useful.
-
=back
+
=head1 GIT DATA
Information on the git commit from which the current perl binary was compiled
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm
index 774446a83f..d8fd2a8e4e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm
@@ -6,7 +6,7 @@ use warnings;
use Config;
use Exporter;
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION = "0.33";
+$VERSION = "0.36";
@ISA = qw( Exporter );
@EXPORT_OK = qw( plv2hash summary myconfig signature );
%EXPORT_TAGS = (
@@ -29,6 +29,8 @@ my %BTD = map {( $_ => 0 )} qw(
DEBUGGING
NO_HASH_SEED
NO_MATHOMS
+ NO_PERL_INTERNAL_RAND_SEED
+ NO_PERL_RAND_SEED
NO_TAINT_SUPPORT
PERL_BOOL_AS_CHAR
PERL_COPY_ON_WRITE
@@ -57,9 +59,11 @@ my %BTD = map {( $_ => 0 )} qw(
PERL_PERTURB_KEYS_DISABLED
PERL_PERTURB_KEYS_RANDOM
PERL_PRESERVE_IVUV
+ PERL_RC_STACK
PERL_RELOCATABLE_INCPUSH
PERL_USE_DEVEL
PERL_USE_SAFE_PUTENV
+ PERL_USE_UNSHARED_KEYS_IN_LARGE_HASHES
SILENT_NO_TAINT_SUPPORT
UNLINK_ALL_VERSIONS
USE_ATTRIBUTES_FOR_PERLIO
@@ -81,10 +85,13 @@ my %BTD = map {( $_ => 0 )} qw(
HAVE_INTERP_INTERN
MULTIPLICITY
MYMALLOC
+ NO_HASH_SEED
PERL_DEBUG_READONLY_COW
PERL_DEBUG_READONLY_OPS
PERL_GLOBAL_STRUCT
PERL_GLOBAL_STRUCT_PRIVATE
+ PERL_HASH_NO_SBOX32
+ PERL_HASH_USE_SBOX32
PERL_IMPLICIT_CONTEXT
PERL_IMPLICIT_SYS
PERLIO_LAYERS
@@ -263,7 +270,10 @@ sub plv2hash {
$config{$k} = $v;
}
- if (my %kv = ($pv =~ m{\b
+ my %kv;
+ if ($pv =~ m{\S,? (?:osvers|archname)=}) { # attr is not the first on the line
+ # up to and including 5.24, a line could have multiple kv pairs
+ %kv = ($pv =~ m{\b
(\w+) # key
\s*= # assign
( '\s*[^']*?\s*' # quoted value
@@ -271,17 +281,27 @@ sub plv2hash {
| \S+ # unquoted value
| \s*\n # empty
)
- (?:,?\s+|\s*\n)? # separator (5.8.x reports did not have a ','
- }gx)) { # between every kv pair
-
- while (my ($k, $v) = each %kv) {
- $k =~ s{\s+$} {};
- $v =~ s{\s*\n\z} {};
- $v =~ s{,$} {};
- $v =~ m{^'(.*)'$} and $v = $1;
- $v =~ s{\s+$} {};
- $config{$k} = $v;
- }
+ (?:,?\s+|\s*\n)? # optional separator (5.8.x reports did
+ }gx); # not have a ',' between every kv pair)
+ }
+ else {
+ # as of 5.25, each kv pair is listed on its own line
+ %kv = ($pv =~ m{^
+ \s+
+ (\w+) # key
+ \s*=\s* # assign
+ (.*?) # value
+ \s*,?\s*$
+ }gmx);
+ }
+
+ while (my ($k, $v) = each %kv) {
+ $k =~ s{\s+$} {};
+ $v =~ s{\s*\n\z} {};
+ $v =~ s{,$} {};
+ $v =~ m{^'(.*)'$} and $v = $1;
+ $v =~ s{\s+$} {};
+ $config{$k} = $v;
}
my $build = { %empty_build };
@@ -554,7 +574,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2009-2020 H.Merijn Brand
+Copyright (C) 2009-2023 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/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl.orig b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.orig.pl
index 56a868cc99..86ce1b9484 100644..100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl.orig
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.orig.pl
@@ -1,1470 +1,1507 @@
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-package Config;
-use strict;
-use warnings;
-our %Config;
-
-sub bincompat_options {
- return split ' ', (Internals::V())[0];
-}
-
-sub non_bincompat_options {
- return split ' ', (Internals::V())[1];
-}
-
-sub compile_date {
- return (Internals::V())[2]
-}
-
-sub local_patches {
- my (undef, undef, undef, @patches) = Internals::V();
- return @patches;
-}
-
-sub _V {
- die "Perl lib was built for 'MSWin32' but is being run on '$^O'"
- unless "MSWin32" eq $^O;
-
- my ($bincompat, $non_bincompat, $date, @patches) = Internals::V();
-
- my @opts = sort split ' ', "$bincompat $non_bincompat";
-
- print Config::myconfig();
- print "\nCharacteristics of this binary (from libperl): \n";
-
- print " Compile-time options:\n";
- print " $_\n" for @opts;
-
- if (@patches) {
- print " Locally applied patches:\n";
- print " $_\n" foreach @patches;
- }
-
- print " Built under MSWin32\n";
-
- print " $date\n" if defined $date;
-
- my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV;
-
- if (@env) {
- print " \%ENV:\n";
- print " $_\n" foreach @env;
- }
- print " \@INC:\n";
- print " $_\n" foreach @INC;
-}
-
-sub header_files {
- return qw(EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h
- dosish.h embed.h embedvar.h form.h gv.h handy.h hv.h hv_func.h
- intrpvar.h iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h
- pad.h parser.h patchlevel.h perl.h perlio.h perliol.h perlsdio.h
- perlvars.h perly.h pp.h pp_proto.h proto.h regcomp.h regexp.h
- regnodes.h scope.h sv.h thread.h time64.h unixish.h utf8.h
- util.h);
-}
-
-### Configured by: siepo@DESKTOP-7HC7FHH
-### Target system: WIN32
-
-our $summary = <<'!END!';
-Summary of my $package (revision $revision $version_patchlevel_string) configuration:
- $git_commit_id_title $git_commit_id$git_ancestor_line
- Platform:
- osname=$osname
- osvers=$osvers
- archname=$archname
- uname='$myuname'
- config_args='$config_args'
- hint=$hint
- useposix=$useposix
- d_sigaction=$d_sigaction
- useithreads=$useithreads
- usemultiplicity=$usemultiplicity
- use64bitint=$use64bitint
- use64bitall=$use64bitall
- uselongdouble=$uselongdouble
- usemymalloc=$usemymalloc
- default_inc_excludes_dot=$default_inc_excludes_dot
- Compiler:
- cc='$cc'
- ccflags ='$ccflags'
- optimize='$optimize'
- cppflags='$cppflags'
- ccversion='$ccversion'
- gccversion='$gccversion'
- gccosandvers='$gccosandvers'
- 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:
- ld='$ld'
- ldflags ='$ldflags'
- libpth=$libpth
- libs=$libs
- perllibs=$perllibs
- libc=$libc
- so=$so
- useshrplib=$useshrplib
- libperl=$libperl
- gnulibc_version='$gnulibc_version'
- Dynamic Linking:
- dlsrc=$dlsrc
- dlext=$dlext
- d_dlsymun=$d_dlsymun
- ccdlflags='$ccdlflags'
- cccdlflags='$cccdlflags'
- lddlflags='$lddlflags'
-
-!END!
-my $summary_expanded;
-
-sub myconfig {
- return $summary_expanded if $summary_expanded;
- ($summary_expanded = $summary) =~ s{\$(\w+)}
- {
- my $c;
- if ($1 eq 'git_ancestor_line') {
- if ($Config::Config{git_ancestor}) {
- $c= "\n Ancestor: $Config::Config{git_ancestor}";
- } else {
- $c= "";
- }
- } else {
- $c = $Config::Config{$1};
- }
- defined($c) ? $c : 'undef'
- }ge;
- $summary_expanded;
-}
-
-local *_ = \my $a;
-$_ = <<'!END!';
-Author=''
-CONFIG='true'
-Date='$Date'
-Header=''
-Id='$Id'
-Locker=''
-Log='$Log'
-PATCHLEVEL='34'
-PERL_API_REVISION='5'
-PERL_API_SUBVERSION='0'
-PERL_API_VERSION='34'
-PERL_CONFIG_SH='true'
-PERL_PATCHLEVEL=''
-PERL_REVISION='5'
-PERL_SUBVERSION='0'
-PERL_VERSION='34'
-RCSfile='$RCSfile'
-Revision='$Revision'
-SUBVERSION='0'
-Source=''
-State=''
-_a='.a'
-_exe='.exe'
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-aphostname=''
-api_revision='5'
-api_subversion='0'
-api_version='34'
-api_versionstring='5.34.0'
-ar='ar'
-archlib='E:\tlperl\lib'
-archlibexp='E:\tlperl\lib'
-archname='MSWin32-x64-multi-thread'
-archname64=''
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5'
-bash=''
-bin='E:\tlperl\bin'
-binexp='E:\tlperl\bin'
-bison=''
-bootstrap_charset='undef'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='type'
-cc='gcc'
-cccdlflags=' '
-ccdlflags=' '
-ccflags=' -DWIN32 -DWIN64 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO -fwrapv -fno-strict-aliasing -mms-bitfields'
-ccflags_uselargefiles=''
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='siepo'
-cf_email='siepo@DESKTOP-7HC7FHH'
-cf_time='Mon Jul 11 03:22:33 2022'
-charbits='8'
-chgrp=''
-chmod=''
-chown=''
-clocktype='clock_t'
-comm=''
-compress=''
-contains='grep'
-cp='copy'
-cpio=''
-cpp='gcc -E'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-DWIN32'
-cpplast=''
-cppminus='-'
-cpprun='gcc -E'
-cppstdin='gcc -E'
-cppsymbols=''
-crypt_r_proto='0'
-cryptlib=''
-csh='undef'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='undef'
-d_PRIFUldbl='undef'
-d_PRIGUldbl='undef'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='undef'
-d_PRIfldbl='undef'
-d_PRIgldbl='undef'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='undef'
-d__fwalk='undef'
-d_accept4='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='define'
-d_asctime64='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_always_inline='undef'
-d_attribute_deprecated='undef'
-d_attribute_format='undef'
-d_attribute_malloc='undef'
-d_attribute_nonnull='undef'
-d_attribute_noreturn='undef'
-d_attribute_pure='undef'
-d_attribute_unused='undef'
-d_attribute_warn_unused_result='undef'
-d_backtrace='undef'
-d_bsd='define'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_add_overflow='undef'
-d_builtin_choose_expr='undef'
-d_builtin_expect='undef'
-d_builtin_mul_overflow='undef'
-d_builtin_sub_overflow='undef'
-d_c99_variadic_macros='undef'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_chown='undef'
-d_chroot='undef'
-d_chsize='define'
-d_class='undef'
-d_clearenv='undef'
-d_closedir='define'
-d_cmsghdr_s='undef'
-d_copysign='define'
-d_copysignl='define'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='undef'
-d_ctermid_r='undef'
-d_ctime64='undef'
-d_ctime_r='undef'
-d_cuserid='undef'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_difftime64='undef'
-d_dir_dd_fd='undef'
-d_dirfd='undef'
-d_dirnamlen='define'
-d_dladdr='undef'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_double_has_inf='define'
-d_double_has_nan='define'
-d_double_has_negative_zero='define'
-d_double_has_subnormals='define'
-d_double_style_cray='undef'
-d_double_style_ibm='undef'
-d_double_style_ieee='define'
-d_double_style_vax='undef'
-d_drand48_r='undef'
-d_drand48proto='undef'
-d_dup2='define'
-d_dup3='undef'
-d_duplocale='undef'
-d_eaccess='undef'
-d_endgrent='undef'
-d_endgrent_r='undef'
-d_endhent='undef'
-d_endhostent_r='undef'
-d_endnent='undef'
-d_endnetent_r='undef'
-d_endpent='undef'
-d_endprotoent_r='undef'
-d_endpwent='undef'
-d_endpwent_r='undef'
-d_endsent='undef'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='undef'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='define'
-d_fchdir='undef'
-d_fchmod='undef'
-d_fchmodat='undef'
-d_fchown='undef'
-d_fcntl='undef'
-d_fcntl_can_lock='undef'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdclose='undef'
-d_fdim='undef'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='undef'
-d_fmax='define'
-d_fmin='define'
-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_freelocale='undef'
-d_frexpl='define'
-d_fs_data_s='undef'
-d_fseeko='undef'
-d_fsetpos='define'
-d_fstatfs='undef'
-d_fstatvfs='undef'
-d_fsync='undef'
-d_ftello='undef'
-d_ftime='define'
-d_futimes='undef'
-d_gai_strerror='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='undef'
-d_getcwd='define'
-d_getenv_preserves_other_thread='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='undef'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='undef'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='undef'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='undef'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='undef'
-d_getnameinfo='undef'
-d_getnbyaddr='undef'
-d_getnbyname='undef'
-d_getnent='undef'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='undef'
-d_getpagsz='undef'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='undef'
-d_getpgid='undef'
-d_getpgrp='undef'
-d_getpgrp2='undef'
-d_getppid='undef'
-d_getprior='undef'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='undef'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='undef'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='undef'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime64='undef'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='undef'
-d_has_C_UTF8='undef'
-d_hasmntopt='undef'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='define'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='undef'
-d_inetntop='undef'
-d_inetpton='undef'
-d_int64_t='undef'
-d_ip_mreq='undef'
-d_ip_mreq_source='undef'
-d_ipv6_mreq='undef'
-d_ipv6_mreq_source='undef'
-d_isascii='define'
-d_isblank='undef'
-d_isfinite='undef'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='undef'
-d_isless='define'
-d_isnan='define'
-d_isnanl='define'
-d_isnormal='define'
-d_j0='define'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='undef'
-d_lchown='undef'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='undef'
-d_libm_lib_version='undef'
-d_link='define'
-d_linkat='undef'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localeconv_l='undef'
-d_localtime64='undef'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='undef'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_long_double_style_ieee='undef'
-d_long_double_style_ieee_doubledouble='undef'
-d_long_double_style_ieee_extended='define'
-d_long_double_style_ieee_std='undef'
-d_long_double_style_vax='undef'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='undef'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbrlen='undef'
-d_mbrtowc='undef'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memmem='undef'
-d_memrchr='undef'
-d_mkdir='define'
-d_mkdtemp='undef'
-d_mkfifo='undef'
-d_mkostemp='undef'
-d_mkstemp='undef'
-d_mkstemps='undef'
-d_mktime='define'
-d_mktime64='undef'
-d_mmap='undef'
-d_modfl='define'
-d_modfl_pow32_bug='undef'
-d_modflproto='define'
-d_mprotect='undef'
-d_msg='undef'
-d_msg_ctrunc='undef'
-d_msg_dontroute='undef'
-d_msg_oob='undef'
-d_msg_peek='undef'
-d_msg_proxy='undef'
-d_msgctl='undef'
-d_msgget='undef'
-d_msghdr_s='undef'
-d_msgrcv='undef'
-d_msgsnd='undef'
-d_msync='undef'
-d_munmap='undef'
-d_mymalloc='undef'
-d_nan='define'
-d_nanosleep='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_nearbyint='define'
-d_newlocale='undef'
-d_nextafter='define'
-d_nexttoward='define'
-d_nice='undef'
-d_nl_langinfo='undef'
-d_nv_preserves_uv='undef'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='undef'
-d_openat='undef'
-d_pathconf='undef'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_pipe2='undef'
-d_poll='undef'
-d_portable='define'
-d_prctl='undef'
-d_prctl_set_name='undef'
-d_printf_format_null='undef'
-d_procselfexe='undef'
-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'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='undef'
-d_pwpasswd='undef'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_querylocale='undef'
-d_random_r='undef'
-d_readdir='define'
-d_readdir64_r='undef'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='undef'
-d_recvmsg='undef'
-d_regcomp='undef'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_renameat='undef'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_sbrkproto='undef'
-d_scalbn='define'
-d_scalbnl='define'
-d_sched_yield='undef'
-d_scm_rights='undef'
-d_seekdir='define'
-d_select='define'
-d_sem='undef'
-d_semctl='undef'
-d_semctl_semid_ds='undef'
-d_semctl_semun='undef'
-d_semget='undef'
-d_semop='undef'
-d_sendmsg='undef'
-d_setegid='undef'
-d_seteuid='undef'
-d_setgrent='undef'
-d_setgrent_r='undef'
-d_setgrps='undef'
-d_sethent='undef'
-d_sethostent_r='undef'
-d_setitimer='undef'
-d_setlinebuf='undef'
-d_setlocale='define'
-d_setlocale_accepts_any_locale_name='undef'
-d_setlocale_r='undef'
-d_setnent='undef'
-d_setnetent_r='undef'
-d_setpent='undef'
-d_setpgid='undef'
-d_setpgrp='undef'
-d_setpgrp2='undef'
-d_setprior='undef'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='undef'
-d_setpwent_r='undef'
-d_setregid='undef'
-d_setresgid='undef'
-d_setresuid='undef'
-d_setreuid='undef'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='undef'
-d_setservent_r='undef'
-d_setsid='undef'
-d_setvbuf='define'
-d_shm='undef'
-d_shmat='undef'
-d_shmatprototype='undef'
-d_shmctl='undef'
-d_shmdt='undef'
-d_shmget='undef'
-d_sigaction='undef'
-d_siginfo_si_addr='undef'
-d_siginfo_si_band='undef'
-d_siginfo_si_errno='undef'
-d_siginfo_si_pid='undef'
-d_siginfo_si_status='undef'
-d_siginfo_si_uid='undef'
-d_siginfo_si_value='undef'
-d_signbit='define'
-d_sigprocmask='undef'
-d_sigsetjmp='undef'
-d_sin6_scope_id='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockaddr_in6='undef'
-d_sockaddr_sa_len='undef'
-d_sockaddr_storage='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='undef'
-d_sockpair='undef'
-d_socks5_init='undef'
-d_sqrtl='define'
-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'
-d_static_inline='define'
-d_statvfs='undef'
-d_stdio_cnt_lval='define'
-d_stdio_ptr_lval='define'
-d_stdio_ptr_lval_nochange_cnt='define'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='define'
-d_stdstdio='define'
-d_strcoll='define'
-d_strerror_l='undef'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='undef'
-d_strlcpy='undef'
-d_strnlen='undef'
-d_strtod='define'
-d_strtod_l='undef'
-d_strtol='define'
-d_strtold='undef'
-d_strtold_l='undef'
-d_strtoll='define'
-d_strtoq='undef'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='undef'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='undef'
-d_syscallproto='undef'
-d_sysconf='undef'
-d_sysernlst=''
-d_syserrlst='define'
-d_system='define'
-d_tcgetpgrp='undef'
-d_tcsetpgrp='undef'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_thread_safe_nl_langinfo_l='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_towlower='undef'
-d_towupper='undef'
-d_trunc='define'
-d_truncate='undef'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='undef'
-d_umask='define'
-d_uname='define'
-d_union_semun='define'
-d_unlinkat='undef'
-d_unordered='undef'
-d_unsetenv='undef'
-d_uselocale='undef'
-d_usleep='undef'
-d_usleepproto='undef'
-d_ustat='undef'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_vsnprintf='define'
-d_wait4='undef'
-d_waitpid='define'
-d_wcrtomb='undef'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='undef'
-d_xenix='undef'
-date='date'
-db_hashtype='int'
-db_prefixtype='int'
-db_version_major='0'
-db_version_minor='0'
-db_version_patch='0'
-default_inc_excludes_dot='define'
-direntrytype='struct direct'
-dlext='dll'
-dlltool='dlltool'
-dlsrc='dl_win32.xs'
-doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
-doublekind='3'
-doublemantbits='52'
-doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
-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 I18N/Langinfo IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File XS/APItest XS/Typemap attributes mro re threads threads/shared'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext='.exe'
-expr='expr'
-extensions='Archive/Tar Attribute/Handlers AutoLoader B 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/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call FindBin 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 JSON/PP List/Util 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 Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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 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'
-fflushall='undef'
-find='find'
-firstmakefile='makefile'
-flex=''
-fpossize='8'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar=''
-full_csh=''
-full_sed=''
-gccansipedantic=''
-gccosandvers=''
-gccversion='8.3.0'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"ld"'
-gidsign='-1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/shlib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat=''
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='ypcat hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='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_fp='undef'
-i_fp_class='undef'
-i_gdbm='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_grp='undef'
-i_ieeefp='undef'
-i_inttypes='undef'
-i_langinfo='undef'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_mallocmalloc='undef'
-i_mntent='undef'
-i_ndbm='undef'
-i_netdb='undef'
-i_neterrno='undef'
-i_netinettcp='undef'
-i_niin='undef'
-i_poll='undef'
-i_prot='undef'
-i_pthread='undef'
-i_pwd='undef'
-i_quadmath='undef'
-i_rpcsvcdbm='undef'
-i_sgtty='undef'
-i_shadow='undef'
-i_socks='undef'
-i_stdbool='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='undef'
-i_sysfile='undef'
-i_sysfilio='define'
-i_sysin='undef'
-i_sysioctl='undef'
-i_syslog='undef'
-i_sysmman='undef'
-i_sysmode='undef'
-i_sysmount='undef'
-i_sysndir='undef'
-i_sysparam='undef'
-i_syspoll='undef'
-i_sysresrc='undef'
-i_syssecrt='undef'
-i_sysselct='undef'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='undef'
-i_sysstatvfs='undef'
-i_systime='undef'
-i_systimek='undef'
-i_systimes='undef'
-i_systypes='define'
-i_sysuio='undef'
-i_sysun='undef'
-i_sysutsname='undef'
-i_sysvfs='undef'
-i_syswait='undef'
-i_termio='undef'
-i_termios='undef'
-i_time='define'
-i_unistd='undef'
-i_ustat='undef'
-i_utime='define'
-i_vfork='undef'
-i_wchar='undef'
-i_wctype='undef'
-i_xlocale='undef'
-ignore_versioned_solibs=''
-inc_version_list=''
-inc_version_list_init='0'
-incpath='E:\mingw64\include'
-inews=''
-initialinstalllocation=''
-installarchlib='E:\tlperl\lib'
-installbin='E:\tlperl\bin'
-installhtml1dir=''
-installhtml3dir=''
-installhtmldir='E:\tlperl\html'
-installhtmlhelpdir='E:\tlperl\htmlhelp'
-installman1dir='E:\tlperl\man\man1'
-installman3dir='E:\tlperl\man\man3'
-installprefix='E:\tlperl'
-installprefixexp='E:\tlperl'
-installprivlib='E:\tlperl\lib'
-installscript='E:\tlperl\bin'
-installsitearch='E:\tlperl\site\lib'
-installsitebin='E:\tlperl\bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsitelib='E:\tlperl\site\lib'
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript=''
-installstyle='lib'
-installusrbinperl='undef'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink=''
-ivdformat='"I64d"'
-ivsize='8'
-ivtype='long long'
-known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B 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/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call FindBin 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/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 Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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 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"E:\tlperl\lib\CORE" -L"E:\mingw64\lib" -L"E:\mingw64\x86_64-w64-mingw32\lib" -L"E:\mingw64\lib\gcc\x86_64-w64-mingw32\8.3.0"'
-ldflags='-s -L"E:\tlperl\lib\CORE" -L"E:\mingw64\lib" -L"E:\mingw64\x86_64-w64-mingw32\lib" -L"E:\mingw64\lib\gcc\x86_64-w64-mingw32\8.3.0"'
-ldflags_uselargefiles=''
-ldlibpthname=''
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl534.a'
-libpth='E:\mingw64\lib E:\mingw64\x86_64-w64-mingw32\lib E:\mingw64\lib\gcc\x86_64-w64-mingw32\8.3.0'
-libs=' -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
-libsdirs=''
-libsfiles=''
-libsfound=''
-libspath=''
-libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x'
-libswanted_uselargefiles='net socket inet nsl nm ndbm gdbm dbm db malloc dl ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x'
-line='line'
-lint=''
-lkflags=''
-ln=''
-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'
-longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
-longdblkind='3'
-longdblmantbits='64'
-longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
-longdblsize='16'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='dir'
-lseeksize='8'
-lseektype='long long'
-mad='undef'
-mail=''
-mailx=''
-make='gmake'
-make_set_make='#'
-mallocobj='malloc.o'
-mallocsrc='malloc.c'
-malloctype='void *'
-man1dir='E:\tlperl\man\man1'
-man1direxp='E:\tlperl\man\man1'
-man1ext='1'
-man3dir='E:\tlperl\man\man3'
-man3direxp='E:\tlperl\man\man3'
-man3ext='3'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more /e'
-multiarch='undef'
-mv=''
-myarchname='MSWin32'
-mydomain=''
-myhostname=''
-myuname=''
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='int'
-netdb_host_type='char *'
-netdb_name_type='char *'
-netdb_net_type='long'
-nm='nm'
-nm_opt=''
-nm_so_opt=''
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple FindBin Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP 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 Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
-nroff=''
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvmantbits='52'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-s -O2'
-orderlib='false'
-osname='MSWin32'
-osvers='10.0.19042.508'
-otherlibdirs=''
-package='perl5'
-pager='more /e'
-passcat=''
-patchlevel='34'
-path_sep=';'
-perl='perl'
-perl5=''
-perl_patchlevel=''
-perl_static_inline='static __inline__'
-perladmin=''
-perllibs=' -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
-perlpath='E:\tlperl\bin\perl.exe'
-pg=''
-phostname='hostname'
-pidtype='int'
-plibpth=''
-pmake=''
-pr=''
-prefix='E:\tlperl'
-prefixexp='E:\tlperl'
-privlib='E:\tlperl\lib'
-privlibexp='E:\tlperl\lib'
-procselfexe=''
-prototype='define'
-ptrsize='8'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='Perl_drand48'
-random_r_proto='0'
-randseedtype='U32'
-ranlib='rem'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='del'
-rm_try=''
-rmail=''
-run=''
-runnm='true'
-sGMTIME_max="2147483647"
-sGMTIME_min="0"
-sLOCALTIME_max="2147483647"
-sLOCALTIME_min="0"
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"I64X"'
-sPRId64='"I64d"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"I64i"'
-sPRIo64='"I64o"'
-sPRIu64='"I64u"'
-sPRIx64='"I64x"'
-sSCNfldbl='"Lf"'
-sched_yield=''
-scriptdir='E:\tlperl\bin'
-scriptdirexp='E:\tlperl\bin'
-sed='sed'
-seedfunc='Perl_drand48_init'
-selectminbits='32'
-selecttype='Perl_fd_set *'
-sendmail='blat'
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='cmd /x /c'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='26'
-sig_name='ZERO HUP INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM NUM16 NUM17 NUM18 NUM19 CHLD BREAK ABRT STOP NUM24 CONT CLD'
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0'
-sig_num='0 1 2 21 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20'
-sig_num_init='0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
-sig_size='27'
-signal_t='void'
-sitearch='E:\tlperl\site\lib'
-sitearchexp='E:\tlperl\site\lib'
-sitebin='E:\tlperl\site\bin'
-sitebinexp='E:\tlperl\site\bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib='E:\tlperl\site\lib'
-sitelib_stem=''
-sitelibexp='E:\tlperl\site\lib'
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='E:\tlperl\site'
-siteprefixexp='E:\tlperl\site'
-sitescript=''
-sitescriptexp=''
-sizesize='8'
-sizetype='size_t'
-sleep=''
-smail=''
-so='dll'
-sockethdr=''
-socketlib=''
-socksizetype='int'
-sort='sort'
-spackage='Perl5'
-spitshell=''
-srand48_r_proto='0'
-srandom_r_proto='0'
-src=''
-ssizetype='long long'
-st_ino_sign='1'
-st_ino_size='8'
-startperl='#!perl'
-startsh='#!/bin/sh'
-static_ext='Win32CORE'
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-strings='/usr/include/string.h'
-submit=''
-subversion='0'
-sysman='/usr/man/man1'
-tail=''
-tar=''
-targetarch=''
-targetsh='cmd /x /c'
-tbl=''
-tee=''
-test=''
-timeincl='/usr/include/sys/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr=''
-trnl='\012'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"ld"'
-uidsign='-1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use64bitall='undef'
-use64bitint='define'
-usecbacktrace='undef'
-usecrosscompile='undef'
-usedefaultstrict='undef'
-usedevel='undef'
-usedl='define'
-usedtrace='undef'
-usefaststdio='undef'
-useithreads='define'
-usekernprocpathname='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='false'
-usensgetexecutablepath='undef'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='/usr/include'
-uuname=''
-uvXUformat='"I64X"'
-uvoformat='"I64o"'
-uvsize='8'
-uvtype='unsigned long long'
-uvuformat='"I64u"'
-uvxformat='"I64x"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-version='5.34.0'
-version_patchlevel_string='version 34 subversion 0'
-versiononly='undef'
-vi=''
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-!END!
-
-my $i = ord(8);
-foreach my $c (7,6,5,4,3,2,1) { $i <<= 8; $i |= ord($c); }
-our $byteorder = join('', unpack('aaaaaaaa', pack('Q', $i)));
-s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
-
-my $config_sh_len = length $_;
-
-our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
-ccflags_nolargefiles=' -DWIN32 -DWIN64 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO -fwrapv -fno-strict-aliasing -mms-bitfields'
-ldflags_nolargefiles='-s -L"E:\tlperl\lib\CORE" -L"E:\mingw64\lib" -L"E:\mingw64\x86_64-w64-mingw32\lib" -L"E:\mingw64\lib\gcc\x86_64-w64-mingw32\8.3.0"'
-libs_nolargefiles='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
-libswanted_nolargefiles=''
-EOVIRTUAL
-eval {
- # do not have hairy conniptions if this isnt available
- require 'Config_git.pl';
- $Config_SH_expanded .= $Config::Git_Data;
- 1;
-} or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n";
-
-# Search for it in the big string
-sub fetch_string {
- my($self, $key) = @_;
-
- return undef unless my ($quote_type, $value) = $Config_SH_expanded =~ /\n$key=(['"])(.*?)\1\n/s;
-
- # If we had a double-quote, we'd better eval it so escape
- # sequences and such can be interpolated. Since the incoming
- # value is supposed to follow shell rules and not perl rules,
- # we escape any perl variable markers
-
- # Historically, since " 'support' was added in change 1409, the
- # interpolation was done before the undef. Stick to this arguably buggy
- # behaviour as we're refactoring.
- if ($quote_type eq '"') {
- $value =~ s/\$/\\\$/g;
- $value =~ s/\@/\\\@/g;
- eval "\$value = \"$value\"";
- }
-
- # So we can say "if $Config{'foo'}".
- $self->{$key} = $value eq 'undef' ? undef : $value; # cache it
-}
-
-my $prevpos = 0;
-
-sub FIRSTKEY {
- $prevpos = 0;
- substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 );
-}
-
-sub NEXTKEY {
- # Find out how the current key's quoted so we can skip to its end.
- my $quote = substr($Config_SH_expanded,
- index($Config_SH_expanded, "=", $prevpos)+1, 1);
- my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2;
- my $len = index($Config_SH_expanded, "=", $pos) - $pos;
- $prevpos = $pos;
- $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef;
-}
-
-sub EXISTS {
- return 1 if exists($_[0]->{$_[1]});
-
- return(index($Config_SH_expanded, "\n$_[1]='") != -1
- or index($Config_SH_expanded, "\n$_[1]=\"") != -1
- );
-}
-
-sub STORE { die "\%Config::Config is read-only\n" }
-*DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space
-
-sub config_sh {
- substr $Config_SH_expanded, 1, $config_sh_len;
-}
-
-sub config_re {
- my $re = shift;
- return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/,
- $Config_SH_expanded;
-}
-
-sub config_vars {
- # implements -V:cfgvar option (see perlrun -V:)
- foreach (@_) {
- # find optional leading, trailing colons; and query-spec
- my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft,
- # map colon-flags to print decorations
- my $prfx = $notag ? '': "$qry="; # tag-prefix for print
- my $lnend = $lncont ? ' ' : ";\n"; # line ending for print
-
- # all config-vars are by definition \w only, any \W means regex
- if ($qry =~ /\W/) {
- my @matches = config_re($qry);
- print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag;
- print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag;
- } else {
- my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry}
- : 'UNKNOWN';
- $v = 'undef' unless defined $v;
- print "${prfx}'${v}'$lnend";
- }
- }
-}
-
-# Called by the real AUTOLOAD
-sub launcher {
- undef &AUTOLOAD;
- goto \&$Config::AUTOLOAD;
-}
-
-1;
+# This file was created by configpm when Perl was built. Any changes
+# made to this file will be lost the next time perl is built.
+
+package Config;
+use strict;
+use warnings;
+our %Config;
+
+sub bincompat_options {
+ return split ' ', (Internals::V())[0];
+}
+
+sub non_bincompat_options {
+ return split ' ', (Internals::V())[1];
+}
+
+sub compile_date {
+ return (Internals::V())[2]
+}
+
+sub local_patches {
+ my (undef, undef, undef, @patches) = Internals::V();
+ return @patches;
+}
+
+sub _V {
+ die "Perl lib was built for 'MSWin32' but is being run on '$^O'"
+ unless "MSWin32" eq $^O;
+
+ my ($bincompat, $non_bincompat, $date, @patches) = Internals::V();
+
+ my @opts = sort split ' ', "$bincompat $non_bincompat";
+
+ print Config::myconfig();
+ print "\nCharacteristics of this binary (from libperl): \n";
+
+ print " Compile-time options:\n";
+ print " $_\n" for @opts;
+
+ if (@patches) {
+ print " Locally applied patches:\n";
+ print " $_\n" foreach @patches;
+ }
+
+ print " Built under MSWin32\n";
+
+ print " $date\n" if defined $date;
+
+ my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV;
+
+ if (@env) {
+ print " \%ENV:\n";
+ print " $_\n" foreach @env;
+ }
+ print " \@INC:\n";
+ print " $_\n" foreach @INC;
+}
+
+sub header_files {
+ return qw(EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h
+ dosish.h embed.h embedvar.h form.h gv.h handy.h hv.h hv_func.h
+ intrpvar.h iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h
+ pad.h parser.h patchlevel.h perl.h perlio.h perliol.h perlsdio.h
+ perlvars.h perly.h pp.h pp_proto.h proto.h regcomp.h regexp.h
+ regnodes.h scope.h sv.h thread.h time64.h unixish.h utf8.h
+ util.h);
+}
+
+### Configured by: tex-live@tug.org
+### Target system: WIN32
+
+our $summary = <<'!END!';
+Summary of my $package (revision $revision $version_patchlevel_string) configuration:
+ $git_commit_id_title $git_commit_id$git_ancestor_line
+ Platform:
+ osname=$osname
+ osvers=$osvers
+ archname=$archname
+ uname='$myuname'
+ config_args='$config_args'
+ hint=$hint
+ useposix=$useposix
+ d_sigaction=$d_sigaction
+ useithreads=$useithreads
+ usemultiplicity=$usemultiplicity
+ use64bitint=$use64bitint
+ use64bitall=$use64bitall
+ uselongdouble=$uselongdouble
+ usemymalloc=$usemymalloc
+ default_inc_excludes_dot=$default_inc_excludes_dot
+ Compiler:
+ cc='$cc'
+ ccflags ='$ccflags'
+ optimize='$optimize'
+ cppflags='$cppflags'
+ ccversion='$ccversion'
+ gccversion='$gccversion'
+ gccosandvers='$gccosandvers'
+ 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:
+ ld='$ld'
+ ldflags ='$ldflags'
+ libpth=$libpth
+ libs=$libs
+ perllibs=$perllibs
+ libc=$libc
+ so=$so
+ useshrplib=$useshrplib
+ libperl=$libperl
+ gnulibc_version='$gnulibc_version'
+ Dynamic Linking:
+ dlsrc=$dlsrc
+ dlext=$dlext
+ d_dlsymun=$d_dlsymun
+ ccdlflags='$ccdlflags'
+ cccdlflags='$cccdlflags'
+ lddlflags='$lddlflags'
+
+!END!
+my $summary_expanded;
+
+sub myconfig {
+ return $summary_expanded if $summary_expanded;
+ ($summary_expanded = $summary) =~ s{\$(\w+)}
+ {
+ my $c;
+ if ($1 eq 'git_ancestor_line') {
+ if ($Config::Config{git_ancestor}) {
+ $c= "\n Ancestor: $Config::Config{git_ancestor}";
+ } else {
+ $c= "";
+ }
+ } else {
+ $c = $Config::Config{$1};
+ }
+ defined($c) ? $c : 'undef'
+ }ge;
+ $summary_expanded;
+}
+
+local *_ = \my $a;
+$_ = <<'!END!';
+Author=''
+CONFIG='true'
+Date='$Date'
+Header=''
+Id='$Id'
+Locker=''
+Log='$Log'
+PATCHLEVEL='38'
+PERL_API_REVISION='5'
+PERL_API_SUBVERSION='0'
+PERL_API_VERSION='38'
+PERL_CONFIG_SH='true'
+PERL_PATCHLEVEL=''
+PERL_REVISION='5'
+PERL_SUBVERSION='2'
+PERL_VERSION='38'
+RCSfile='$RCSfile'
+Revision='$Revision'
+SUBVERSION='2'
+Source=''
+State=''
+_a='.lib'
+_exe='.exe'
+_o='.obj'
+afs='false'
+afsroot='/afs'
+alignbytes='8'
+aphostname=''
+api_revision='5'
+api_subversion='0'
+api_version='38'
+api_versionstring='5.38.0'
+ar='lib -ltcg'
+archlib='d:\tlperl\lib'
+archlibexp='d:\tlperl\lib'
+archname='MSWin32-x64-multi-thread'
+archname64=''
+archobjs=''
+asctime_r_proto='0'
+awk='awk'
+baserev='5'
+bash=''
+bin='d:\tlperl\bin'
+binexp='d:\tlperl\bin'
+bison=''
+bootstrap_charset='undef'
+byacc='byacc'
+byteorder='1234'
+c=''
+castflags='0'
+cat='type'
+cc='cl'
+cccdlflags=' '
+ccdlflags=' '
+ccflags='-nologo -GF -W3 -MD -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY'
+ccflags_uselargefiles=''
+ccname='cl'
+ccsymbols=''
+ccversion='19.38.33135'
+cf_by='siepo'
+cf_email='tex-live@tug.org'
+cf_time='Mon Feb 12 11:14:47 2024'
+charbits='8'
+chgrp=''
+chmod=''
+chown=''
+clocktype='clock_t'
+comm=''
+compress=''
+contains='grep'
+cp='copy'
+cpio=''
+cpp='cl -nologo -E'
+cpp_stuff='42'
+cppccsymbols=''
+cppflags='-DWIN32'
+cpplast=''
+cppminus=''
+cpprun='cl -nologo -E'
+cppstdin='cppstdin'
+cppsymbols=''
+crypt_r_proto='0'
+cryptlib=''
+csh='undef'
+ctermid_r_proto='0'
+ctime_r_proto='0'
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+d_PRIEUldbl='undef'
+d_PRIFUldbl='undef'
+d_PRIGUldbl='undef'
+d_PRIXU64='define'
+d_PRId64='define'
+d_PRIeldbl='undef'
+d_PRIfldbl='undef'
+d_PRIgldbl='undef'
+d_PRIi64='define'
+d_PRIo64='define'
+d_PRIu64='define'
+d_PRIx64='define'
+d_SCNfldbl='undef'
+d__fwalk='undef'
+d_accept4='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='define'
+d_attribute_always_inline='undef'
+d_attribute_deprecated='undef'
+d_attribute_format='undef'
+d_attribute_malloc='undef'
+d_attribute_nonnull='undef'
+d_attribute_noreturn='undef'
+d_attribute_pure='undef'
+d_attribute_unused='undef'
+d_attribute_visibility='undef'
+d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
+d_bsd='define'
+d_bsdgetpgrp='undef'
+d_bsdsetpgrp='undef'
+d_builtin_add_overflow='undef'
+d_builtin_choose_expr='undef'
+d_builtin_expect='undef'
+d_builtin_mul_overflow='undef'
+d_builtin_sub_overflow='undef'
+d_c99_variadic_macros='undef'
+d_casti32='undef'
+d_castneg='define'
+d_cbrt='undef'
+d_chown='undef'
+d_chroot='undef'
+d_chsize='define'
+d_class='undef'
+d_clearenv='undef'
+d_closedir='define'
+d_cmsghdr_s='undef'
+d_copysign='undef'
+d_copysignl='undef'
+d_cplusplus='undef'
+d_crypt='define'
+d_crypt_r='undef'
+d_csh='undef'
+d_ctermid='undef'
+d_ctermid_r='undef'
+d_ctime64='undef'
+d_ctime_r='undef'
+d_cuserid='undef'
+d_dbl_dig='define'
+d_dbminitproto='undef'
+d_difftime='define'
+d_difftime64='undef'
+d_dir_dd_fd='undef'
+d_dirfd='undef'
+d_dirnamlen='define'
+d_dladdr='undef'
+d_dlerror='define'
+d_dlopen='define'
+d_dlsymun='undef'
+d_dosuid='undef'
+d_double_has_inf='define'
+d_double_has_nan='define'
+d_double_has_negative_zero='define'
+d_double_has_subnormals='define'
+d_double_style_cray='undef'
+d_double_style_ibm='undef'
+d_double_style_ieee='define'
+d_double_style_vax='undef'
+d_drand48_r='undef'
+d_drand48proto='undef'
+d_dup2='define'
+d_dup3='undef'
+d_duplocale='undef'
+d_eaccess='undef'
+d_endgrent='undef'
+d_endgrent_r='undef'
+d_endhent='undef'
+d_endhostent_r='undef'
+d_endnent='undef'
+d_endnetent_r='undef'
+d_endpent='undef'
+d_endprotoent_r='undef'
+d_endpwent='undef'
+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'
+d_fchmodat='undef'
+d_fchown='undef'
+d_fcntl='undef'
+d_fcntl_can_lock='undef'
+d_fd_macros='define'
+d_fd_set='define'
+d_fdclose='undef'
+d_fdim='undef'
+d_fds_bits='define'
+d_fegetround='undef'
+d_ffs='undef'
+d_ffsl='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_freelocale='undef'
+d_frexpl='undef'
+d_fs_data_s='undef'
+d_fseeko='undef'
+d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
+d_fsync='undef'
+d_ftello='undef'
+d_ftime='define'
+d_futimes='undef'
+d_gai_strerror='undef'
+d_gdbm_ndbm_h_uses_prototypes='undef'
+d_gdbmndbm_h_uses_prototypes='undef'
+d_getaddrinfo='undef'
+d_getcwd='define'
+d_getenv_preserves_other_thread='define'
+d_getespwnam='undef'
+d_getfsstat='undef'
+d_getgrent='undef'
+d_getgrent_r='undef'
+d_getgrgid_r='undef'
+d_getgrnam_r='undef'
+d_getgrps='undef'
+d_gethbyaddr='define'
+d_gethbyname='define'
+d_gethent='undef'
+d_gethname='define'
+d_gethostbyaddr_r='undef'
+d_gethostbyname_r='undef'
+d_gethostent_r='undef'
+d_gethostprotos='define'
+d_getitimer='undef'
+d_getlogin='define'
+d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
+d_getnameinfo='undef'
+d_getnbyaddr='undef'
+d_getnbyname='undef'
+d_getnent='undef'
+d_getnetbyaddr_r='undef'
+d_getnetbyname_r='undef'
+d_getnetent_r='undef'
+d_getnetprotos='undef'
+d_getpagsz='undef'
+d_getpbyname='define'
+d_getpbynumber='define'
+d_getpent='undef'
+d_getpgid='undef'
+d_getpgrp='undef'
+d_getpgrp2='undef'
+d_getppid='undef'
+d_getprior='undef'
+d_getprotobyname_r='undef'
+d_getprotobynumber_r='undef'
+d_getprotoent_r='undef'
+d_getprotoprotos='define'
+d_getprpwnam='undef'
+d_getpwent='undef'
+d_getpwent_r='undef'
+d_getpwnam_r='undef'
+d_getpwuid_r='undef'
+d_getsbyname='define'
+d_getsbyport='define'
+d_getsent='undef'
+d_getservbyname_r='undef'
+d_getservbyport_r='undef'
+d_getservent_r='undef'
+d_getservprotos='define'
+d_getspnam='undef'
+d_getspnam_r='undef'
+d_gettimeod='define'
+d_gmtime64='undef'
+d_gmtime_r='undef'
+d_gnulibc='undef'
+d_grpasswd='undef'
+d_has_C_UTF8='undef'
+d_hasmntopt='undef'
+d_htonl='define'
+d_hypot='undef'
+d_ilogb='undef'
+d_ilogbl='undef'
+d_inc_version_list='undef'
+d_index='undef'
+d_inetaton='undef'
+d_inetntop='undef'
+d_inetpton='undef'
+d_int64_t='undef'
+d_ip_mreq='undef'
+d_ip_mreq_source='undef'
+d_ipv6_mreq='undef'
+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_linkat='undef'
+d_llrint='undef'
+d_llrintl='undef'
+d_llround='undef'
+d_llroundl='undef'
+d_localeconv_l='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_long_double_style_ieee='undef'
+d_long_double_style_ieee_doubledouble='undef'
+d_long_double_style_ieee_extended='define'
+d_long_double_style_ieee_std='undef'
+d_long_double_style_vax='undef'
+d_longdbl='define'
+d_longlong='undef'
+d_lrint='undef'
+d_lrintl='undef'
+d_lround='undef'
+d_lroundl='undef'
+d_lseekproto='define'
+d_lstat='define'
+d_madvise='undef'
+d_malloc_good_size='undef'
+d_malloc_size='undef'
+d_mblen='define'
+d_mbrlen='undef'
+d_mbrtowc='undef'
+d_mbstowcs='define'
+d_mbtowc='define'
+d_memmem='undef'
+d_memrchr='undef'
+d_mkdir='define'
+d_mkdtemp='undef'
+d_mkfifo='undef'
+d_mkostemp='undef'
+d_mkstemp='undef'
+d_mkstemps='undef'
+d_mktime='define'
+d_mktime64='undef'
+d_mmap='undef'
+d_modfl='undef'
+d_modfl_pow32_bug='undef'
+d_modflproto='undef'
+d_mprotect='undef'
+d_msg='undef'
+d_msg_ctrunc='undef'
+d_msg_dontroute='undef'
+d_msg_oob='undef'
+d_msg_peek='undef'
+d_msg_proxy='undef'
+d_msgctl='undef'
+d_msgget='undef'
+d_msghdr_s='undef'
+d_msgrcv='undef'
+d_msgsnd='undef'
+d_msync='undef'
+d_munmap='undef'
+d_mymalloc='undef'
+d_nan='undef'
+d_nanosleep='undef'
+d_ndbm='undef'
+d_ndbm_h_uses_prototypes='undef'
+d_nearbyint='undef'
+d_newlocale='undef'
+d_nextafter='undef'
+d_nexttoward='undef'
+d_nice='undef'
+d_nl_langinfo='undef'
+d_nl_langinfo_l='undef'
+d_non_int_bitfields='define'
+d_nv_preserves_uv='undef'
+d_nv_zero_is_allbits_zero='define'
+d_off64_t='undef'
+d_old_pthread_create_joinable='undef'
+d_oldpthreads='undef'
+d_oldsock='undef'
+d_open3='undef'
+d_openat='undef'
+d_pathconf='undef'
+d_pause='define'
+d_perl_otherlibdirs='undef'
+d_phostname='undef'
+d_pipe='define'
+d_pipe2='undef'
+d_poll='undef'
+d_portable='define'
+d_prctl='undef'
+d_prctl_set_name='undef'
+d_printf_format_null='undef'
+d_procselfexe='undef'
+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'
+d_pwcomment='undef'
+d_pwexpire='undef'
+d_pwgecos='undef'
+d_pwpasswd='undef'
+d_pwquota='undef'
+d_qgcvt='undef'
+d_quad='define'
+d_querylocale='undef'
+d_random_r='undef'
+d_readdir='define'
+d_readdir64_r='undef'
+d_readdir_r='undef'
+d_readlink='define'
+d_readv='undef'
+d_recvmsg='undef'
+d_regcomp='undef'
+d_remainder='undef'
+d_remquo='undef'
+d_rename='define'
+d_renameat='undef'
+d_rewinddir='define'
+d_rint='undef'
+d_rmdir='define'
+d_round='undef'
+d_sbrkproto='undef'
+d_scalbn='undef'
+d_scalbnl='undef'
+d_sched_yield='undef'
+d_scm_rights='undef'
+d_seekdir='define'
+d_select='define'
+d_sem='undef'
+d_semctl='undef'
+d_semctl_semid_ds='undef'
+d_semctl_semun='undef'
+d_semget='undef'
+d_semop='undef'
+d_sendmsg='undef'
+d_setegid='undef'
+d_setenv='undef'
+d_seteuid='undef'
+d_setgrent='undef'
+d_setgrent_r='undef'
+d_setgrps='undef'
+d_sethent='undef'
+d_sethostent_r='undef'
+d_setitimer='undef'
+d_setlinebuf='undef'
+d_setlocale='define'
+d_setlocale_accepts_any_locale_name='undef'
+d_setlocale_r='undef'
+d_setnent='undef'
+d_setnetent_r='undef'
+d_setpent='undef'
+d_setpgid='undef'
+d_setpgrp='undef'
+d_setpgrp2='undef'
+d_setprior='undef'
+d_setproctitle='undef'
+d_setprotoent_r='undef'
+d_setpwent='undef'
+d_setpwent_r='undef'
+d_setregid='undef'
+d_setresgid='undef'
+d_setresuid='undef'
+d_setreuid='undef'
+d_setrgid='undef'
+d_setruid='undef'
+d_setsent='undef'
+d_setservent_r='undef'
+d_setsid='undef'
+d_setvbuf='define'
+d_shm='undef'
+d_shmat='undef'
+d_shmatprototype='undef'
+d_shmctl='undef'
+d_shmdt='undef'
+d_shmget='undef'
+d_sigaction='undef'
+d_siginfo_si_addr='undef'
+d_siginfo_si_band='undef'
+d_siginfo_si_errno='undef'
+d_siginfo_si_pid='undef'
+d_siginfo_si_status='undef'
+d_siginfo_si_uid='undef'
+d_siginfo_si_value='undef'
+d_signbit='undef'
+d_sigprocmask='undef'
+d_sigsetjmp='undef'
+d_sin6_scope_id='define'
+d_sitearch='define'
+d_snprintf='define'
+d_sockaddr_in6='undef'
+d_sockaddr_sa_len='undef'
+d_sockaddr_storage='define'
+d_sockatmark='undef'
+d_sockatmarkproto='undef'
+d_socket='define'
+d_socklen_t='undef'
+d_sockpair='undef'
+d_socks5_init='undef'
+d_sqrtl='undef'
+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'
+d_static_inline='define'
+d_statvfs='undef'
+d_stdio_cnt_lval='define'
+d_stdio_ptr_lval='define'
+d_stdio_ptr_lval_nochange_cnt='define'
+d_stdio_ptr_lval_sets_cnt='undef'
+d_stdio_stream_array='undef'
+d_stdiobase='define'
+d_stdstdio='define'
+d_strcoll='define'
+d_strerror_l='undef'
+d_strerror_r='undef'
+d_strftime='define'
+d_strlcat='undef'
+d_strlcpy='undef'
+d_strnlen='undef'
+d_strtod='define'
+d_strtod_l='undef'
+d_strtol='define'
+d_strtold='undef'
+d_strtold_l='undef'
+d_strtoll='define'
+d_strtoq='undef'
+d_strtoul='define'
+d_strtoull='define'
+d_strtouq='undef'
+d_strxfrm='define'
+d_strxfrm_l='undef'
+d_suidsafe='undef'
+d_symlink='define'
+d_syscall='undef'
+d_syscallproto='undef'
+d_sysconf='undef'
+d_sysernlst=''
+d_syserrlst='define'
+d_system='define'
+d_tcgetpgrp='undef'
+d_tcsetpgrp='undef'
+d_telldir='define'
+d_telldirproto='define'
+d_tgamma='undef'
+d_thread_local='undef'
+d_thread_safe_nl_langinfo_l='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_towlower='undef'
+d_towupper='undef'
+d_trunc='undef'
+d_truncate='undef'
+d_truncl='undef'
+d_ttyname_r='undef'
+d_tzname='define'
+d_u32align='define'
+d_ualarm='undef'
+d_umask='define'
+d_uname='define'
+d_union_semun='define'
+d_unlinkat='undef'
+d_unordered='undef'
+d_unsetenv='undef'
+d_uselocale='undef'
+d_usleep='undef'
+d_usleepproto='undef'
+d_ustat='undef'
+d_vendorarch='undef'
+d_vendorbin='undef'
+d_vendorlib='undef'
+d_vendorscript='undef'
+d_vfork='undef'
+d_void_closedir='undef'
+d_voidsig='define'
+d_voidtty=''
+d_vsnprintf='define'
+d_wait4='undef'
+d_waitpid='define'
+d_wcrtomb='undef'
+d_wcscmp='define'
+d_wcstombs='define'
+d_wcsxfrm='define'
+d_wctomb='define'
+d_writev='undef'
+d_xenix='undef'
+date='date'
+db_hashtype='int'
+db_prefixtype='int'
+db_version_major='0'
+db_version_minor='0'
+db_version_patch='0'
+default_inc_excludes_dot='define'
+direntrytype='struct direct'
+dlext='dll'
+dlsrc='dl_win32.xs'
+doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
+doublekind='3'
+doublemantbits='52'
+doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
+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 I18N/Langinfo IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File XS/APItest XS/Typemap attributes mro re threads threads/shared'
+eagain='EAGAIN'
+ebcdic='undef'
+echo='echo'
+egrep='egrep'
+emacs=''
+endgrent_r_proto='0'
+endhostent_r_proto='0'
+endnetent_r_proto='0'
+endprotoent_r_proto='0'
+endpwent_r_proto='0'
+endservent_r_proto='0'
+eunicefix=':'
+exe_ext='.exe'
+expr='expr'
+extensions='Archive/Tar Attribute/Handlers AutoLoader B 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/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call FindBin 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 JSON/PP List/Util 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 Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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 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'
+fflushall='undef'
+find='find'
+firstmakefile='makefile'
+flex=''
+fpossize='8'
+fpostype='fpos_t'
+freetype='void'
+from=':'
+full_ar=''
+full_csh=''
+full_sed=''
+gccansipedantic=''
+gccosandvers=''
+gccversion=''
+getgrent_r_proto='0'
+getgrgid_r_proto='0'
+getgrnam_r_proto='0'
+gethostbyaddr_r_proto='0'
+gethostbyname_r_proto='0'
+gethostent_r_proto='0'
+getlogin_r_proto='0'
+getnetbyaddr_r_proto='0'
+getnetbyname_r_proto='0'
+getnetent_r_proto='0'
+getprotobyname_r_proto='0'
+getprotobynumber_r_proto='0'
+getprotoent_r_proto='0'
+getpwent_r_proto='0'
+getpwnam_r_proto='0'
+getpwuid_r_proto='0'
+getservbyname_r_proto='0'
+getservbyport_r_proto='0'
+getservent_r_proto='0'
+getspnam_r_proto='0'
+gidformat='"ld"'
+gidsign='-1'
+gidsize='4'
+gidtype='gid_t'
+glibpth='/usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/shlib '
+gmake='gmake'
+gmtime_r_proto='0'
+gnulibc_version=''
+grep='grep'
+groupcat=''
+groupstype='gid_t'
+gzip='gzip'
+h_fcntl='false'
+h_sysfile='true'
+hint='recommended'
+hostcat='ypcat hosts'
+html1dir=' '
+html1direxp=''
+html3dir=' '
+html3direxp=''
+i16size='2'
+i16type='short'
+i32dformat='"ld"'
+i32size='4'
+i32type='long'
+i64size='8'
+i64type='__int64'
+i8size='1'
+i8type='char'
+i_arpainet='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_fp='undef'
+i_fp_class='undef'
+i_gdbm='undef'
+i_gdbm_ndbm='undef'
+i_gdbmndbm='undef'
+i_grp='undef'
+i_ieeefp='undef'
+i_inttypes='undef'
+i_langinfo='undef'
+i_libutil='undef'
+i_limits='define'
+i_locale='define'
+i_machcthr='undef'
+i_malloc='define'
+i_mallocmalloc='undef'
+i_mntent='undef'
+i_ndbm='undef'
+i_netdb='undef'
+i_neterrno='undef'
+i_netinettcp='undef'
+i_niin='undef'
+i_poll='undef'
+i_prot='undef'
+i_pthread='undef'
+i_pwd='undef'
+i_quadmath='undef'
+i_rpcsvcdbm='undef'
+i_sgtty='undef'
+i_shadow='undef'
+i_socks='undef'
+i_stdbool='define'
+i_stdint='define'
+i_stdlib='define'
+i_string='define'
+i_sunmath='undef'
+i_sysaccess='undef'
+i_sysdir='undef'
+i_sysfile='undef'
+i_sysfilio='define'
+i_sysin='undef'
+i_sysioctl='undef'
+i_syslog='undef'
+i_sysmman='undef'
+i_sysmode='undef'
+i_sysmount='undef'
+i_sysndir='undef'
+i_sysparam='undef'
+i_syspoll='undef'
+i_sysresrc='undef'
+i_syssecrt='undef'
+i_sysselct='undef'
+i_syssockio='undef'
+i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
+i_syssyscall='undef'
+i_systime='undef'
+i_systimek='undef'
+i_systimes='undef'
+i_systypes='define'
+i_sysuio='undef'
+i_sysun='undef'
+i_sysutsname='undef'
+i_sysvfs='undef'
+i_syswait='undef'
+i_termio='undef'
+i_termios='undef'
+i_time='define'
+i_unistd='undef'
+i_ustat='undef'
+i_utime='define'
+i_vfork='undef'
+i_wchar='undef'
+i_wctype='undef'
+i_xlocale='undef'
+ignore_versioned_solibs=''
+inc_version_list=''
+inc_version_list_init='0'
+incpath='"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\\include"'
+inews=''
+initialinstalllocation=''
+installarchlib='d:\tlperl\lib'
+installbin='d:\tlperl\bin'
+installhtml1dir=''
+installhtml3dir=''
+installhtmldir='d:\tlperl\html'
+installhtmlhelpdir='d:\tlperl\htmlhelp'
+installman1dir='d:\tlperl\man\man1'
+installman3dir='d:\tlperl\man\man3'
+installprefix='d:\tlperl'
+installprefixexp='d:\tlperl'
+installprivlib='d:\tlperl\lib'
+installscript='d:\tlperl\bin'
+installsitearch='d:\tlperl\site\lib'
+installsitebin='d:\tlperl\bin'
+installsitehtml1dir=''
+installsitehtml3dir=''
+installsitelib='d:\tlperl\site\lib'
+installsiteman1dir=''
+installsiteman3dir=''
+installsitescript=''
+installstyle='lib'
+installusrbinperl='undef'
+installvendorarch=''
+installvendorbin=''
+installvendorhtml1dir=''
+installvendorhtml3dir=''
+installvendorlib=''
+installvendorman1dir=''
+installvendorman3dir=''
+installvendorscript=''
+intsize='4'
+issymlink=''
+ivdformat='"I64d"'
+ivsize='8'
+ivtype='__int64'
+known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B 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/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call FindBin 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/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 Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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 attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+ksh=''
+ld='link'
+lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"d:\tlperl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"'
+ldflags='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"d:\tlperl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"'
+ldflags_uselargefiles=''
+ldlibpthname=''
+less='less'
+lib_ext='.lib'
+libc='ucrt.lib'
+libperl='perl538.lib'
+libpth='"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\\lib\x64"'
+libs='oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib'
+libsdirs=''
+libsfiles=''
+libsfound=''
+libspath=''
+libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x'
+libswanted_uselargefiles='net socket inet nsl nm ndbm gdbm dbm db malloc dl ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x'
+line='line'
+lint=''
+lkflags=''
+ln=''
+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'
+longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
+longdblkind='0'
+longdblmantbits='52'
+longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
+longdblsize='8'
+longlongsize='8'
+longsize='4'
+lp=''
+lpr=''
+ls='dir'
+lseeksize='8'
+lseektype='__int64'
+mad='undef'
+mail=''
+mailx=''
+make='nmake'
+make_set_make='#'
+mallocobj='malloc.o'
+mallocsrc='malloc.c'
+malloctype='void *'
+man1dir='d:\tlperl\man\man1'
+man1direxp='d:\tlperl\man\man1'
+man1ext='1'
+man3dir='d:\tlperl\man\man3'
+man3direxp='d:\tlperl\man\man3'
+man3ext='3'
+mips_type=''
+mistrustnm=''
+mkdir='mkdir'
+mmaptype='void *'
+modetype='mode_t'
+more='more /e'
+multiarch='undef'
+mv=''
+myarchname='MSWin32'
+mydomain=''
+myhostname=''
+myuname=''
+n='-n'
+need_va_copy='undef'
+netdb_hlen_type='int'
+netdb_host_type='char *'
+netdb_name_type='char *'
+netdb_net_type='long'
+nm=''
+nm_opt=''
+nm_so_opt=''
+nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple FindBin Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP 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 Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
+nroff=''
+nvEUformat='"E"'
+nvFUformat='"F"'
+nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
+nv_preserves_uv_bits='53'
+nveformat='"e"'
+nvfformat='"f"'
+nvgformat='"g"'
+nvmantbits='52'
+nvsize='8'
+nvtype='double'
+o_nonblock='O_NONBLOCK'
+obj_ext='.obj'
+old_pthread_create_joinable=''
+optimize='-O1 -Zi -GL -fp:precise'
+orderlib='false'
+osname='MSWin32'
+osvers='10.0.22631.3085'
+otherlibdirs=''
+package='perl5'
+pager='more /e'
+passcat=''
+patchlevel='38'
+path_sep=';'
+perl='perl'
+perl5=''
+perl_patchlevel=''
+perl_static_inline='static __inline'
+perl_thread_local=''
+perladmin=''
+perllibs='oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib'
+perlpath='d:\tlperl\bin\perl.exe'
+pg=''
+phostname='hostname'
+pidtype='int'
+plibpth=''
+pmake=''
+pr=''
+prefix='d:\tlperl'
+prefixexp='d:\tlperl'
+privlib='d:\tlperl\lib'
+privlibexp='d:\tlperl\lib'
+procselfexe=''
+prototype='define'
+ptrsize='8'
+quadkind='5'
+quadtype='__int64'
+randbits='48'
+randfunc='Perl_drand48'
+random_r_proto='0'
+randseedtype='U32'
+ranlib='rem'
+rd_nodata='-1'
+readdir64_r_proto='0'
+readdir_r_proto='0'
+revision='5'
+rm='del'
+rm_try=''
+rmail=''
+run=''
+runnm='true'
+sGMTIME_max='32535291599'
+sGMTIME_min="0"
+sLOCALTIME_max='32535244799'
+sLOCALTIME_min="0"
+sPRIEUldbl='"E"'
+sPRIFUldbl='"F"'
+sPRIGUldbl='"G"'
+sPRIXU64='"I64X"'
+sPRId64='"I64d"'
+sPRIeldbl='"e"'
+sPRIfldbl='"f"'
+sPRIgldbl='"g"'
+sPRIi64='"I64i"'
+sPRIo64='"I64o"'
+sPRIu64='"I64u"'
+sPRIx64='"I64x"'
+sSCNfldbl='"f"'
+sched_yield=''
+scriptdir='d:\tlperl\bin'
+scriptdirexp='d:\tlperl\bin'
+sed='sed'
+seedfunc='Perl_drand48_init'
+selectminbits='32'
+selecttype='Perl_fd_set *'
+sendmail='blat'
+setgrent_r_proto='0'
+sethostent_r_proto='0'
+setlocale_r_proto='0'
+setnetent_r_proto='0'
+setprotoent_r_proto='0'
+setpwent_r_proto='0'
+setservent_r_proto='0'
+sh='cmd /x /c'
+shar=''
+sharpbang='#!'
+shmattype='void *'
+shortsize='2'
+shrpenv=''
+shsharp='true'
+sig_count='26'
+sig_name='ZERO HUP INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM NUM16 NUM17 NUM18 NUM19 CHLD BREAK ABRT STOP NUM24 CONT CLD'
+sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0'
+sig_num='0 1 2 21 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20'
+sig_num_init='0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
+sig_size='27'
+signal_t='void'
+sitearch='d:\tlperl\site\lib'
+sitearchexp='d:\tlperl\site\lib'
+sitebin='d:\tlperl\site\bin'
+sitebinexp='d:\tlperl\site\bin'
+sitehtml1dir=''
+sitehtml1direxp=''
+sitehtml3dir=''
+sitehtml3direxp=''
+sitelib='d:\tlperl\site\lib'
+sitelib_stem=''
+sitelibexp='d:\tlperl\site\lib'
+siteman1dir=''
+siteman1direxp=''
+siteman3dir=''
+siteman3direxp=''
+siteprefix='d:\tlperl\site'
+siteprefixexp='d:\tlperl\site'
+sitescript=''
+sitescriptexp=''
+sizesize='8'
+sizetype='size_t'
+sleep=''
+smail=''
+so='dll'
+sockethdr=''
+socketlib=''
+socksizetype='int'
+sort='sort'
+spackage='Perl5'
+spitshell=''
+srand48_r_proto='0'
+srandom_r_proto='0'
+src=''
+ssizetype='__int64'
+st_dev_sign='1'
+st_dev_size='4'
+st_ino_sign='1'
+st_ino_size='8'
+startperl='#!perl'
+startsh='#!/bin/sh'
+static_ext='Win32CORE'
+stdchar='char'
+stdio_base='PERLIO_FILE_base(fp)'
+stdio_bufsiz='(PERLIO_FILE_cnt(fp) + PERLIO_FILE_ptr(fp) - PERLIO_FILE_base(fp))'
+stdio_cnt='PERLIO_FILE_cnt(fp)'
+stdio_filbuf=''
+stdio_ptr='PERLIO_FILE_ptr(fp)'
+stdio_stream_array=''
+strerror_r_proto='0'
+strings='/usr/include/string.h'
+submit=''
+subversion='2'
+sysman='/usr/man/man1'
+tail=''
+taint_disabled=''
+taint_support=''
+tar=''
+targetarch=''
+targetsh='cmd /x /c'
+tbl=''
+tee=''
+test=''
+timeincl='/usr/include/sys/time.h '
+timetype='time_t'
+tmpnam_r_proto='0'
+to=':'
+touch='touch'
+tr=''
+trnl='\012'
+troff=''
+ttyname_r_proto='0'
+u16size='2'
+u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
+u32size='4'
+u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
+u64size='8'
+u64type='unsigned __int64'
+u8size='1'
+u8type='unsigned char'
+uidformat='"ld"'
+uidsign='-1'
+uidsize='4'
+uidtype='uid_t'
+uname='uname'
+uniq='uniq'
+uquadtype='unsigned __int64'
+use64bitall='undef'
+use64bitint='define'
+usecbacktrace='undef'
+usecrosscompile='undef'
+usedefaultstrict='undef'
+usedevel='undef'
+usedl='define'
+usedtrace='undef'
+usefaststdio='undef'
+useithreads='define'
+usekernprocpathname='undef'
+uselargefiles='define'
+uselongdouble='undef'
+usemallocwrap='define'
+usemorebits='undef'
+usemultiplicity='define'
+usemymalloc='n'
+usenm='false'
+usensgetexecutablepath='undef'
+useopcode='true'
+useperlio='define'
+useposix='true'
+usequadmath='undef'
+usereentrant='undef'
+userelocatableinc='undef'
+useshrplib='true'
+usesitecustomize='undef'
+usesocks='undef'
+usethreads='define'
+usevendorprefix='undef'
+usevfork='false'
+usrinc='/usr/include'
+uuname=''
+uvXUformat='"I64X"'
+uvoformat='"I64o"'
+uvsize='8'
+uvtype='unsigned __int64'
+uvuformat='"I64u"'
+uvxformat='"I64x"'
+vendorarch=''
+vendorarchexp=''
+vendorbin=''
+vendorbinexp=''
+vendorhtml1dir=' '
+vendorhtml1direxp=''
+vendorhtml3dir=' '
+vendorhtml3direxp=''
+vendorlib=''
+vendorlib_stem=''
+vendorlibexp=''
+vendorman1dir=' '
+vendorman1direxp=''
+vendorman3dir=' '
+vendorman3direxp=''
+vendorprefix=''
+vendorprefixexp=''
+vendorscript=''
+vendorscriptexp=''
+version='5.38.2'
+version_patchlevel_string='version 38 subversion 2'
+versiononly='undef'
+vi=''
+xlibpth='/usr/lib/386 /lib/386'
+xlocale_needed='undef'
+yacc='yacc'
+yaccflags=''
+zcat=''
+zip='zip'
+!END!
+
+my $i = ord(8);
+foreach my $c (7,6,5,4,3,2,1) { $i <<= 8; $i |= ord($c); }
+our $byteorder = join('', unpack('aaaaaaaa', pack('Q', $i)));
+s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
+
+{
+ # We have to set this up late as Win32 does not build miniperl
+ # with the same defines and CC flags as it builds perl itself.
+ my $defines = join " ", (Internals::V)[0,1];
+ if (
+ $defines =~ /\b(SILENT_NO_TAINT_SUPPORT)\b/ ||
+ $defines =~ /\b(NO_TAINT_SUPPORT)\b/
+ ){
+ my $which = $1;
+ my $taint_disabled = ($which eq "SILENT_NO_TAINT_SUPPORT")
+ ? "silent" : "define";
+ s/^(taint_disabled=['"])(["'])/$1$taint_disabled$2/m;
+ }
+ else {
+ my $taint_support = 'define';
+ s/^(taint_support=['"])(["'])/$1$taint_support$2/m;
+ }
+}
+my $config_sh_len = length $_;
+
+our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
+ccflags_nolargefiles='-nologo -GF -W3 -MD -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY'
+ldflags_nolargefiles='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"d:\tlperl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"'
+libs_nolargefiles=''
+libswanted_nolargefiles=''
+EOVIRTUAL
+eval {
+ # do not have hairy conniptions if this isnt available
+ require 'Config_git.pl';
+ $Config_SH_expanded .= $Config::Git_Data;
+ 1;
+} or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n";
+
+# Search for it in the big string
+sub fetch_string {
+ my($self, $key) = @_;
+
+ return undef unless my ($quote_type, $value) = $Config_SH_expanded =~ /\n$key=(['"])(.*?)\1\n/s;
+
+ # If we had a double-quote, we'd better eval it so escape
+ # sequences and such can be interpolated. Since the incoming
+ # value is supposed to follow shell rules and not perl rules,
+ # we escape any perl variable markers
+
+ # Historically, since " 'support' was added in change 1409, the
+ # interpolation was done before the undef. Stick to this arguably buggy
+ # behaviour as we're refactoring.
+ if ($quote_type eq '"') {
+ $value =~ s/\$/\\\$/g;
+ $value =~ s/\@/\\\@/g;
+ eval "\$value = \"$value\"";
+ }
+
+ # So we can say "if $Config{'foo'}".
+ $self->{$key} = $value eq 'undef' ? undef : $value; # cache it
+}
+
+my $prevpos = 0;
+
+sub FIRSTKEY {
+ $prevpos = 0;
+ substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 );
+}
+
+sub NEXTKEY {
+ # Find out how the current key's quoted so we can skip to its end.
+ my $quote = substr($Config_SH_expanded,
+ index($Config_SH_expanded, "=", $prevpos)+1, 1);
+ my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2;
+ my $len = index($Config_SH_expanded, "=", $pos) - $pos;
+ $prevpos = $pos;
+ $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef;
+}
+
+sub EXISTS {
+ return 1 if exists($_[0]->{$_[1]});
+
+ return(index($Config_SH_expanded, "\n$_[1]='") != -1
+ or index($Config_SH_expanded, "\n$_[1]=\"") != -1
+ );
+}
+
+sub STORE { die "\%Config::Config is read-only\n" }
+*DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space
+
+sub config_sh {
+ substr $Config_SH_expanded, 1, $config_sh_len;
+}
+
+sub config_re {
+ my $re = shift;
+ return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/,
+ $Config_SH_expanded;
+}
+
+sub config_vars {
+ # implements -V:cfgvar option (see perlrun -V:)
+ foreach (@_) {
+ # find optional leading, trailing colons; and query-spec
+ my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft,
+ # map colon-flags to print decorations
+ my $prfx = $notag ? '': "$qry="; # tag-prefix for print
+ my $lnend = $lncont ? ' ' : ";\n"; # line ending for print
+
+ # all config-vars are by definition \w only, any \W means regex
+ if ($qry =~ /\W/) {
+ my @matches = config_re($qry);
+ print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag;
+ print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag;
+ } else {
+ my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry}
+ : 'UNKNOWN';
+ $v = 'undef' unless defined $v;
+ print "${prfx}'${v}'$lnend";
+ }
+ }
+}
+
+# Called by the real AUTOLOAD
+sub launcher {
+ undef &AUTOLOAD;
+ goto \&$Config::AUTOLOAD;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl
index 503a456327..e1c691d9bb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl
@@ -140,26 +140,25 @@ my $summary_expanded;
sub myconfig {
return $summary_expanded if $summary_expanded;
($summary_expanded = $summary) =~ s{\$(\w+)}
- {
- my $c;
- if ($1 eq 'git_ancestor_line') {
- if ($Config::Config{git_ancestor}) {
- $c= "\n Ancestor: $Config::Config{git_ancestor}";
- } else {
- $c= "";
- }
- } else {
- $c = $Config::Config{$1};
- }
- defined($c) ? $c : 'undef'
- }ge;
+ {
+ my $c;
+ if ($1 eq 'git_ancestor_line') {
+ if ($Config::Config{git_ancestor}) {
+ $c= "\n Ancestor: $Config::Config{git_ancestor}";
+ } else {
+ $c= "";
+ }
+ } else {
+ $c = $Config::Config{$1};
+ }
+ defined($c) ? $c : 'undef'
+ }ge;
$summary_expanded;
}
-
+
my $rootdir = __FILE__;
$rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!;
$rootdir =~ s!/!\\!g;
-my $mingdir = "E:\\mingw64";
local *_ = \my $a;
$_ = <<"!END!";
@@ -170,32 +169,32 @@ Header=''
Id='\$Id'
Locker=''
Log='\$Log'
-PATCHLEVEL='34'
+PATCHLEVEL='38'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
-PERL_API_VERSION='34'
+PERL_API_VERSION='38'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
-PERL_SUBVERSION='0'
-PERL_VERSION='34'
+PERL_SUBVERSION='2'
+PERL_VERSION='38'
RCSfile='\$RCSfile'
Revision='\$Revision'
-SUBVERSION='0'
+SUBVERSION='2'
Source=''
State=''
-_a='.a'
+_a='.lib'
_exe='.exe'
-_o='.o'
+_o='.obj'
afs='false'
afsroot='/afs'
alignbytes='8'
aphostname=''
api_revision='5'
api_subversion='0'
-api_version='34'
-api_versionstring='5.34.0'
-ar='ar'
+api_version='38'
+api_versionstring='5.38.0'
+ar='lib -ltcg'
archlib='$rootdir\\lib'
archlibexp='$rootdir\\lib'
archname='MSWin32-x64-multi-thread'
@@ -214,17 +213,17 @@ byteorder='1234'
c=''
castflags='0'
cat='type'
-cc='gcc'
+cc='cl'
cccdlflags=' '
ccdlflags=' '
-ccflags=' -DWIN32 -DWIN64 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO -fwrapv -fno-strict-aliasing -mms-bitfields'
+ccflags='-nologo -GF -W3 -MD -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY'
ccflags_uselargefiles=''
-ccname='gcc'
+ccname='cl'
ccsymbols=''
-ccversion=''
+ccversion='19.38.33135'
cf_by='siepo'
cf_email='tex-live\@tug.org'
-cf_time='Mon Jul 11 03:22:33 2022'
+cf_time='Mon Feb 12 11:14:47 2024'
charbits='8'
chgrp=''
chmod=''
@@ -235,14 +234,14 @@ compress=''
contains='grep'
cp='copy'
cpio=''
-cpp='gcc -E'
+cpp='cl -nologo -E'
cpp_stuff='42'
cppccsymbols=''
cppflags='-DWIN32'
cpplast=''
-cppminus='-'
-cpprun='gcc -E'
-cppstdin='gcc -E'
+cppminus=''
+cpprun='cl -nologo -E'
+cppstdin='cppstdin'
cppsymbols=''
crypt_r_proto='0'
cryptlib=''
@@ -267,14 +266,14 @@ d__fwalk='undef'
d_accept4='undef'
d_access='define'
d_accessx='undef'
-d_acosh='define'
+d_acosh='undef'
d_aintl='undef'
d_alarm='define'
d_archlib='define'
d_asctime64='undef'
d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
+d_asinh='undef'
+d_atanh='undef'
d_atolf='undef'
d_atoll='define'
d_attribute_always_inline='undef'
@@ -285,6 +284,7 @@ d_attribute_nonnull='undef'
d_attribute_noreturn='undef'
d_attribute_pure='undef'
d_attribute_unused='undef'
+d_attribute_visibility='undef'
d_attribute_warn_unused_result='undef'
d_backtrace='undef'
d_bsd='define'
@@ -296,9 +296,9 @@ d_builtin_expect='undef'
d_builtin_mul_overflow='undef'
d_builtin_sub_overflow='undef'
d_c99_variadic_macros='undef'
-d_casti32='define'
+d_casti32='undef'
d_castneg='define'
-d_cbrt='define'
+d_cbrt='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='define'
@@ -306,8 +306,8 @@ d_class='undef'
d_clearenv='undef'
d_closedir='define'
d_cmsghdr_s='undef'
-d_copysign='define'
-d_copysignl='define'
+d_copysign='undef'
+d_copysignl='undef'
d_cplusplus='undef'
d_crypt='define'
d_crypt_r='undef'
@@ -356,11 +356,11 @@ d_endpwent_r='undef'
d_endsent='undef'
d_endservent_r='undef'
d_eofnblk='define'
-d_erf='define'
+d_erf='undef'
d_erfc='undef'
d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
+d_exp2='undef'
+d_expm1='undef'
d_faststdio='define'
d_fchdir='undef'
d_fchmod='undef'
@@ -374,15 +374,17 @@ d_fdclose='undef'
d_fdim='undef'
d_fds_bits='define'
d_fegetround='undef'
+d_ffs='undef'
+d_ffsl='undef'
d_fgetpos='define'
-d_finite='define'
+d_finite='undef'
d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_flockproto='define'
d_fma='undef'
-d_fmax='define'
-d_fmin='define'
+d_fmax='undef'
+d_fmin='undef'
d_fork='undef'
d_fp_class='undef'
d_fp_classify='undef'
@@ -394,7 +396,7 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_freelocale='undef'
-d_frexpl='define'
+d_frexpl='undef'
d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
@@ -473,9 +475,9 @@ d_grpasswd='undef'
d_has_C_UTF8='undef'
d_hasmntopt='undef'
d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='define'
+d_hypot='undef'
+d_ilogb='undef'
+d_ilogbl='undef'
d_inc_version_list='undef'
d_index='undef'
d_inetaton='undef'
@@ -490,48 +492,48 @@ d_isascii='define'
d_isblank='undef'
d_isfinite='undef'
d_isfinitel='undef'
-d_isinf='define'
+d_isinf='undef'
d_isinfl='undef'
-d_isless='define'
+d_isless='undef'
d_isnan='define'
-d_isnanl='define'
-d_isnormal='define'
-d_j0='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='define'
-d_lgamma='define'
+d_ldexpl='undef'
+d_lgamma='undef'
d_lgamma_r='undef'
d_libm_lib_version='undef'
d_link='define'
d_linkat='undef'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
+d_llrint='undef'
+d_llrintl='undef'
+d_llround='undef'
+d_llroundl='undef'
d_localeconv_l='undef'
d_localtime64='undef'
d_localtime_r='undef'
d_localtime_r_needs_tzset='undef'
d_locconv='define'
d_lockf='undef'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
+d_log1p='undef'
+d_log2='undef'
+d_logb='undef'
d_long_double_style_ieee='undef'
d_long_double_style_ieee_doubledouble='undef'
d_long_double_style_ieee_extended='define'
d_long_double_style_ieee_std='undef'
d_long_double_style_vax='undef'
d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
+d_longlong='undef'
+d_lrint='undef'
+d_lrintl='undef'
+d_lround='undef'
+d_lroundl='undef'
d_lseekproto='define'
d_lstat='define'
d_madvise='undef'
@@ -553,9 +555,9 @@ d_mkstemps='undef'
d_mktime='define'
d_mktime64='undef'
d_mmap='undef'
-d_modfl='define'
+d_modfl='undef'
d_modfl_pow32_bug='undef'
-d_modflproto='define'
+d_modflproto='undef'
d_mprotect='undef'
d_msg='undef'
d_msg_ctrunc='undef'
@@ -571,16 +573,18 @@ d_msgsnd='undef'
d_msync='undef'
d_munmap='undef'
d_mymalloc='undef'
-d_nan='define'
+d_nan='undef'
d_nanosleep='undef'
d_ndbm='undef'
d_ndbm_h_uses_prototypes='undef'
-d_nearbyint='define'
+d_nearbyint='undef'
d_newlocale='undef'
-d_nextafter='define'
-d_nexttoward='define'
+d_nextafter='undef'
+d_nexttoward='undef'
d_nice='undef'
d_nl_langinfo='undef'
+d_nl_langinfo_l='undef'
+d_non_int_bitfields='define'
d_nv_preserves_uv='undef'
d_nv_zero_is_allbits_zero='define'
d_off64_t='undef'
@@ -625,17 +629,17 @@ d_readlink='define'
d_readv='undef'
d_recvmsg='undef'
d_regcomp='undef'
-d_remainder='define'
-d_remquo='define'
+d_remainder='undef'
+d_remquo='undef'
d_rename='define'
d_renameat='undef'
d_rewinddir='define'
-d_rint='define'
+d_rint='undef'
d_rmdir='define'
-d_round='define'
+d_round='undef'
d_sbrkproto='undef'
-d_scalbn='define'
-d_scalbnl='define'
+d_scalbn='undef'
+d_scalbnl='undef'
d_sched_yield='undef'
d_scm_rights='undef'
d_seekdir='define'
@@ -648,6 +652,7 @@ d_semget='undef'
d_semop='undef'
d_sendmsg='undef'
d_setegid='undef'
+d_setenv='undef'
d_seteuid='undef'
d_setgrent='undef'
d_setgrent_r='undef'
@@ -694,7 +699,7 @@ d_siginfo_si_pid='undef'
d_siginfo_si_status='undef'
d_siginfo_si_uid='undef'
d_siginfo_si_value='undef'
-d_signbit='define'
+d_signbit='undef'
d_sigprocmask='undef'
d_sigsetjmp='undef'
d_sin6_scope_id='define'
@@ -709,7 +714,7 @@ d_socket='define'
d_socklen_t='undef'
d_sockpair='undef'
d_socks5_init='undef'
-d_sqrtl='define'
+d_sqrtl='undef'
d_srand48_r='undef'
d_srandom_r='undef'
d_sresgproto='undef'
@@ -745,6 +750,7 @@ d_strtoul='define'
d_strtoull='define'
d_strtouq='undef'
d_strxfrm='define'
+d_strxfrm_l='undef'
d_suidsafe='undef'
d_symlink='define'
d_syscall='undef'
@@ -757,7 +763,8 @@ d_tcgetpgrp='undef'
d_tcsetpgrp='undef'
d_telldir='define'
d_telldirproto='define'
-d_tgamma='define'
+d_tgamma='undef'
+d_thread_local='undef'
d_thread_safe_nl_langinfo_l='undef'
d_time='define'
d_timegm='undef'
@@ -767,9 +774,9 @@ d_tm_tm_zone='undef'
d_tmpnam_r='undef'
d_towlower='undef'
d_towupper='undef'
-d_trunc='define'
+d_trunc='undef'
d_truncate='undef'
-d_truncl='define'
+d_truncl='undef'
d_ttyname_r='undef'
d_tzname='define'
d_u32align='define'
@@ -811,7 +818,6 @@ db_version_patch='0'
default_inc_excludes_dot='define'
direntrytype='struct direct'
dlext='dll'
-dlltool='dlltool'
dlsrc='dl_win32.xs'
doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
doublekind='3'
@@ -853,7 +859,7 @@ full_csh=''
full_sed=''
gccansipedantic=''
gccosandvers=''
-gccversion='8.3.0'
+gccversion=''
getgrent_r_proto='0'
getgrgid_r_proto='0'
getgrnam_r_proto='0'
@@ -896,10 +902,11 @@ html3dir=' '
html3direxp=''
i16size='2'
i16type='short'
+i32dformat='"ld"'
i32size='4'
i32type='long'
i64size='8'
-i64type='long long'
+i64type='__int64'
i8size='1'
i8type='char'
i_arpainet='define'
@@ -968,6 +975,7 @@ i_syssockio='undef'
i_sysstat='define'
i_sysstatfs='undef'
i_sysstatvfs='undef'
+i_syssyscall='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -990,7 +998,7 @@ i_xlocale='undef'
ignore_versioned_solibs=''
inc_version_list=''
inc_version_list_init='0'
-incpath='$mingdir\\include'
+incpath='"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\include"'
inews=''
initialinstalllocation=''
installarchlib='$rootdir\\lib'
@@ -1027,20 +1035,20 @@ intsize='4'
issymlink=''
ivdformat='"I64d"'
ivsize='8'
-ivtype='long long'
+ivtype='__int64'
known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B 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/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call FindBin 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/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 Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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 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" -L"$mingdir\\x86_64-w64-mingw32\lib" -L"$mingdir\\lib\\gcc\\x86_64-w64-mingw32\\8.3.0"'
-ldflags='-s -L"rootdir\\lib\\CORE" -L"mingdir\\lib" -L"$mingdir\\x86_64-w64-mingw32\\lib" -L"$mingdir\\lib\\gcc\\x86_64-w64-mingw32\\8.3.0"'
+ld='link'
+lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"$rootdir\\lib\\CORE" -machine:AMD64 -subsystem:console,"5.02"'
+ldflags='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"$rootdir\\lib\\CORE" -machine:AMD64 -subsystem:console,"5.02"'
ldflags_uselargefiles=''
ldlibpthname=''
less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl534.a'
-libpth='$mingdir\\lib $mingdir\\x86_64-w64-mingw32\lib $mingdir\\lib\\gcc\\x86_64-w64-mingw32\\8.3.0'
-libs=' -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
+lib_ext='.lib'
+libc='ucrt.lib'
+libperl='perl538.lib'
+libpth='"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\lib\\x64"'
+libs='oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib'
libsdirs=''
libsfiles=''
libsfound=''
@@ -1055,22 +1063,22 @@ 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'
-longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
-longdblkind='3'
-longdblmantbits='64'
-longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
-longdblsize='16'
+longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
+longdblkind='0'
+longdblmantbits='52'
+longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'
+longdblsize='8'
longlongsize='8'
longsize='4'
lp=''
lpr=''
ls='dir'
lseeksize='8'
-lseektype='long long'
+lseektype='__int64'
mad='undef'
mail=''
mailx=''
-make='gmake'
+make='nmake'
make_set_make='#'
mallocobj='malloc.o'
mallocsrc='malloc.c'
@@ -1099,7 +1107,7 @@ netdb_hlen_type='int'
netdb_host_type='char *'
netdb_name_type='char *'
netdb_net_type='long'
-nm='nm'
+nm=''
nm_opt=''
nm_so_opt=''
nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple FindBin Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP 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 Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html 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/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
@@ -1116,24 +1124,25 @@ nvmantbits='52'
nvsize='8'
nvtype='double'
o_nonblock='O_NONBLOCK'
-obj_ext='.o'
+obj_ext='.obj'
old_pthread_create_joinable=''
-optimize='-s -O2'
+optimize='-O1 -Zi -GL -fp:precise'
orderlib='false'
osname='MSWin32'
-osvers='10.0.19042.508'
+osvers='10.0.22631.3085'
otherlibdirs=''
package='perl5'
pager='more /e'
passcat=''
-patchlevel='34'
+patchlevel='38'
path_sep=';'
perl='perl'
perl5=''
perl_patchlevel=''
-perl_static_inline='static __inline__'
+perl_static_inline='static __inline'
+perl_thread_local=''
perladmin=''
-perllibs=' -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
+perllibs='oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib'
perlpath='$rootdir\\bin\\perl.exe'
pg=''
phostname='hostname'
@@ -1148,8 +1157,8 @@ privlibexp='$rootdir\\lib'
procselfexe=''
prototype='define'
ptrsize='8'
-quadkind='3'
-quadtype='long long'
+quadkind='5'
+quadtype='__int64'
randbits='48'
randfunc='Perl_drand48'
random_r_proto='0'
@@ -1164,23 +1173,23 @@ rm_try=''
rmail=''
run=''
runnm='true'
-sGMTIME_max="2147483647"
+sGMTIME_max='32535291599'
sGMTIME_min="0"
-sLOCALTIME_max="2147483647"
+sLOCALTIME_max='32535244799'
sLOCALTIME_min="0"
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
+sPRIEUldbl='"E"'
+sPRIFUldbl='"F"'
+sPRIGUldbl='"G"'
sPRIXU64='"I64X"'
sPRId64='"I64d"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
+sPRIeldbl='"e"'
+sPRIfldbl='"f"'
+sPRIgldbl='"g"'
sPRIi64='"I64i"'
sPRIo64='"I64o"'
sPRIu64='"I64u"'
sPRIx64='"I64x"'
-sSCNfldbl='"Lf"'
+sSCNfldbl='"f"'
sched_yield=''
scriptdir='$rootdir\\bin'
scriptdirexp='$rootdir\\bin'
@@ -1243,25 +1252,29 @@ spitshell=''
srand48_r_proto='0'
srandom_r_proto='0'
src=''
-ssizetype='long long'
+ssizetype='__int64'
+st_dev_sign='1'
+st_dev_size='4'
st_ino_sign='1'
st_ino_size='8'
startperl='#!perl'
startsh='#!/bin/sh'
static_ext='Win32CORE'
stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
+stdio_base='PERLIO_FILE_base(fp)'
+stdio_bufsiz='(PERLIO_FILE_cnt(fp) + PERLIO_FILE_ptr(fp) - PERLIO_FILE_base(fp))'
+stdio_cnt='PERLIO_FILE_cnt(fp)'
stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
+stdio_ptr='PERLIO_FILE_ptr(fp)'
stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='0'
+subversion='2'
sysman='/usr/man/man1'
tail=''
+taint_disabled=''
+taint_support=''
tar=''
targetarch=''
targetsh='cmd /x /c'
@@ -1279,10 +1292,14 @@ troff=''
ttyname_r_proto='0'
u16size='2'
u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
u32size='4'
u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
u64size='8'
-u64type='unsigned long long'
+u64type='unsigned __int64'
u8size='1'
u8type='unsigned char'
uidformat='"ld"'
@@ -1291,7 +1308,7 @@ uidsize='4'
uidtype='uid_t'
uname='uname'
uniq='uniq'
-uquadtype='unsigned long long'
+uquadtype='unsigned __int64'
use64bitall='undef'
use64bitint='define'
usecbacktrace='undef'
@@ -1328,7 +1345,7 @@ uuname=''
uvXUformat='"I64X"'
uvoformat='"I64o"'
uvsize='8'
-uvtype='unsigned long long'
+uvtype='unsigned __int64'
uvuformat='"I64u"'
uvxformat='"I64x"'
vendorarch=''
@@ -1350,11 +1367,12 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.34.0'
-version_patchlevel_string='version 34 subversion 0'
+version='5.38.2'
+version_patchlevel_string='version 38 subversion 2'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
+xlocale_needed='undef'
yacc='yacc'
yaccflags=''
zcat=''
@@ -1366,19 +1384,37 @@ foreach my $c (7,6,5,4,3,2,1) { $i <<= 8; $i |= ord($c); }
our $byteorder = join('', unpack('aaaaaaaa', pack('Q', $i)));
s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
+{
+ # We have to set this up late as Win32 does not build miniperl
+ # with the same defines and CC flags as it builds perl itself.
+ my $defines = join " ", (Internals::V)[0,1];
+ if (
+ $defines =~ /\b(SILENT_NO_TAINT_SUPPORT)\b/ ||
+ $defines =~ /\b(NO_TAINT_SUPPORT)\b/
+ ){
+ my $which = $1;
+ my $taint_disabled = ($which eq "SILENT_NO_TAINT_SUPPORT")
+ ? "silent" : "define";
+ s/^(taint_disabled=['"])(["'])/$1$taint_disabled$2/m;
+ }
+ else {
+ my $taint_support = 'define';
+ s/^(taint_support=['"])(["'])/$1$taint_support$2/m;
+ }
+}
my $config_sh_len = length $_;
-our $Config_SH_expanded = "\n$_" . << "EOVIRTUAL";
-ccflags_nolargefiles=' -DWIN32 -DWIN64 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO -fwrapv -fno-strict-aliasing -mms-bitfields'
-ldflags_nolargefiles='-s -L"$rootdir\\lib\\CORE" -L"$mingdir\\lib" -L"mingdir\\x86_64-w64-mingw32\\lib" -L"$mingdir\\lib\\gcc\\x86_64-w64-mingw32\\8.3.0"'
-libs_nolargefiles='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
+our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
+ccflags_nolargefiles='-nologo -GF -W3 -MD -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY'
+ldflags_nolargefiles='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"$rootdir\\lib\\CORE" -machine:AMD64 -subsystem:console,"5.02"'
+libs_nolargefiles=''
libswanted_nolargefiles=''
EOVIRTUAL
eval {
- # do not have hairy conniptions if this isnt available
- require 'Config_git.pl';
- $Config_SH_expanded .= $Config::Git_Data;
- 1;
+ # do not have hairy conniptions if this isnt available
+ require 'Config_git.pl';
+ $Config_SH_expanded .= $Config::Git_Data;
+ 1;
} or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n";
# Search for it in the big string
@@ -1396,9 +1432,9 @@ sub fetch_string {
# interpolation was done before the undef. Stick to this arguably buggy
# behaviour as we're refactoring.
if ($quote_type eq '"') {
- $value =~ s/\$/\\\$/g;
- $value =~ s/\@/\\\@/g;
- eval "\$value = \"$value\"";
+ $value =~ s/\$/\\\$/g;
+ $value =~ s/\@/\\\@/g;
+ eval "\$value = \"$value\"";
}
# So we can say "if $Config{'foo'}".
@@ -1415,7 +1451,7 @@ sub FIRSTKEY {
sub NEXTKEY {
# Find out how the current key's quoted so we can skip to its end.
my $quote = substr($Config_SH_expanded,
- index($Config_SH_expanded, "=", $prevpos)+1, 1);
+ index($Config_SH_expanded, "=", $prevpos)+1, 1);
my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2;
my $len = index($Config_SH_expanded, "=", $pos) - $pos;
$prevpos = $pos;
@@ -1446,23 +1482,23 @@ sub config_re {
sub config_vars {
# implements -V:cfgvar option (see perlrun -V:)
foreach (@_) {
- # find optional leading, trailing colons; and query-spec
- my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft,
- # map colon-flags to print decorations
- my $prfx = $notag ? '': "$qry="; # tag-prefix for print
- my $lnend = $lncont ? ' ' : ";\n"; # line ending for print
+ # find optional leading, trailing colons; and query-spec
+ my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft,
+ # map colon-flags to print decorations
+ my $prfx = $notag ? '': "$qry="; # tag-prefix for print
+ my $lnend = $lncont ? ' ' : ";\n"; # line ending for print
- # all config-vars are by definition \w only, any \W means regex
- if ($qry =~ /\W/) {
- my @matches = config_re($qry);
- print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag;
- print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag;
- } else {
- my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry}
- : 'UNKNOWN';
- $v = 'undef' unless defined $v;
- print "${prfx}'${v}'$lnend";
- }
+ # all config-vars are by definition \w only, any \W means regex
+ if ($qry =~ /\W/) {
+ my @matches = config_re($qry);
+ print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag;
+ print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag;
+ } else {
+ my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry}
+ : 'UNKNOWN';
+ $v = 'undef' unless defined $v;
+ print "${prfx}'${v}'$lnend";
+ }
}
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm
index 6a1d2f17ee..dbf08a6059 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm
@@ -3,7 +3,7 @@ use strict;
use Exporter;
-our $VERSION = '3.80';
+our $VERSION = '3.89';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
@@ -181,12 +181,6 @@ if ($^O =~ /android/) {
}
my $found_pwd_cmd = defined($pwd_cmd);
-unless ($pwd_cmd) {
- # Isn't this wrong? _backtick_pwd() will fail if someone has
- # pwd in their path but it is not /bin/pwd or /usr/bin/pwd?
- # See [perl #16774]. --jhi
- $pwd_cmd = 'pwd';
-}
# Lazy-load Carp
sub _carp { require Carp; Carp::carp(@_) }
@@ -198,8 +192,14 @@ sub _backtick_pwd {
# Localize %ENV entries in a way that won't create new hash keys.
# Under AmigaOS we don't want to localize as it stops perl from
# finding 'sh' in the PATH.
- my @localize = grep exists $ENV{$_}, qw(PATH IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos";
+ my @localize = grep exists $ENV{$_}, qw(IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos";
local @ENV{@localize} if @localize;
+ # empty PATH is the same as "." on *nix, so localize it to /something/
+ # we won't *use* the path as code above turns $pwd_cmd into a specific
+ # executable, but it will blow up anyway under taint. We could set it to
+ # anything absolute. Perhaps "/" would be better.
+ local $ENV{PATH}= "/usr/bin"
+ if $^O ne "amigaos";
my $cwd = `$pwd_cmd`;
# Belt-and-suspenders in case someone said "undef $/".
@@ -213,26 +213,13 @@ sub _backtick_pwd {
# we take care not to override an existing definition for cwd().
unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) {
- # The pwd command is not available in some chroot(2)'ed environments
- my $sep = $Config::Config{path_sep} || ':';
- my $os = $^O; # Protect $^O from tainting
-
-
- # Try again to find a pwd, this time searching the whole PATH.
- if (defined $ENV{PATH} and $os ne 'MSWin32') { # no pwd on Windows
- my @candidates = split($sep, $ENV{PATH});
- while (!$found_pwd_cmd and @candidates) {
- my $candidate = shift @candidates;
- $found_pwd_cmd = 1 if -x "$candidate/pwd";
- }
- }
-
if( $found_pwd_cmd )
{
*cwd = \&_backtick_pwd;
}
else {
- *cwd = \&getcwd;
+ # getcwd() might have an empty prototype
+ *cwd = sub { getcwd(); };
}
}
@@ -275,7 +262,7 @@ sub fastcwd_ {
($odev, $oino) = ($cdev, $cino);
CORE::chdir('..') || return undef;
($cdev, $cino) = stat('.');
- last if $odev == $cdev && $oino == $cino;
+ last if $odev == $cdev && $oino eq $cino;
opendir(DIR, '.') || return undef;
for (;;) {
$direntry = readdir(DIR);
@@ -284,7 +271,7 @@ sub fastcwd_ {
next if $direntry eq '..';
($tdev, $tino) = lstat($direntry);
- last unless $tdev != $odev || $tino != $oino;
+ last unless $tdev != $odev || $tino ne $oino;
}
closedir(DIR);
return undef unless defined $direntry; # should never happen
@@ -298,7 +285,7 @@ sub fastcwd_ {
&& CORE::chdir($1) or return undef;
($cdev, $cino) = stat('.');
die "Unstable directory path, current directory changed unexpectedly"
- if $cdev != $orig_cdev || $cino != $orig_cino;
+ if $cdev != $orig_cdev || $cino ne $orig_cino;
$path;
}
if (not defined &fastcwd) { *fastcwd = \&fastcwd_ }
@@ -315,7 +302,7 @@ sub chdir_init {
if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') {
my($dd,$di) = stat('.');
my($pd,$pi) = stat($ENV{'PWD'});
- if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) {
+ if (!defined $dd or !defined $pd or $di ne $pi or $dd != $pd) {
$ENV{'PWD'} = cwd();
}
}
@@ -328,7 +315,7 @@ sub chdir_init {
if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) {
my($pd,$pi) = stat($2);
my($dd,$di) = stat($1);
- if (defined $pd and defined $dd and $di == $pi and $dd == $pd) {
+ if (defined $pd and defined $dd and $di ne $pi and $dd == $pd) {
$ENV{'PWD'}="$2$3";
}
}
@@ -430,7 +417,7 @@ sub _perl_abs_path
$! = $e;
return undef;
}
- if ($pst[0] == $cst[0] && $pst[1] == $cst[1])
+ if ($pst[0] == $cst[0] && $pst[1] eq $cst[1])
{
$dir = undef;
}
@@ -448,7 +435,7 @@ sub _perl_abs_path
$tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir"))
}
while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] ||
- $tst[1] != $pst[1]);
+ $tst[1] ne $pst[1]);
}
$cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ;
closedir(PARENT);
@@ -820,9 +807,7 @@ C<fast_abs_path()>.
=head1 AUTHOR
-Originally by the perl5-porters.
-
-Maintained by Ken Williams <KWILLIAMS@cpan.org>
+Maintained by perl5-porters <F<perl5-porters@perl.org>>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm
index 267cb92aae..bb6d3caedb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm
@@ -14,10 +14,11 @@ use warnings;
#$| = 1;
-use 5.006_001;
+use 5.008_001;
require Exporter;
use constant IS_PRE_516_PERL => $] < 5.016;
+use constant SUPPORTS_CORE_BOOLS => defined &builtin::is_bool;
use Carp ();
@@ -29,7 +30,7 @@ our ( $Indent, $Trailingcomma, $Purity, $Pad, $Varname, $Useqq, $Terse, $Freezer
our ( @ISA, @EXPORT, @EXPORT_OK, $VERSION );
BEGIN {
- $VERSION = '2.179'; # Don't forget to set version and release
+ $VERSION = '2.188'; # Don't forget to set version and release
# date in POD below!
@ISA = qw(Exporter);
@@ -123,46 +124,17 @@ sub new {
# Packed numeric addresses take less memory. Plus pack is faster than sprintf
-# Most users of current versions of Data::Dumper will be 5.008 or later.
-# Anyone on 5.6.1 and 5.6.2 upgrading will be rare (particularly judging by
-# the bug reports from users on those platforms), so for the common case avoid
-# complexity, and avoid even compiling the unneeded code.
-
-sub init_refaddr_format {
-}
-
sub format_refaddr {
require Scalar::Util;
pack "J", Scalar::Util::refaddr(shift);
};
-if ($] < 5.008) {
- eval <<'EOC' or die;
- no warnings 'redefine';
- my $refaddr_format;
- sub init_refaddr_format {
- require Config;
- my $f = $Config::Config{uvxformat};
- $f =~ tr/"//d;
- $refaddr_format = "0x%" . $f;
- }
-
- sub format_refaddr {
- require Scalar::Util;
- sprintf $refaddr_format, Scalar::Util::refaddr(shift);
- }
-
- 1
-EOC
-}
-
#
# add-to or query the table of already seen references
#
sub Seen {
my($s, $g) = @_;
if (defined($g) && (ref($g) eq 'HASH')) {
- init_refaddr_format();
my($k, $v, $id);
while (($k, $v) = each %$g) {
if (defined $v) {
@@ -252,7 +224,6 @@ sub Dumpperl {
my(@out, $val, $name);
my($i) = 0;
local(@post);
- init_refaddr_format();
$s = $s->new(@_) unless ref $s;
@@ -394,7 +365,16 @@ sub _dump {
else {
$pat = "$val";
}
- $pat =~ s <(\\.)|/> { $1 || '\\/' }ge;
+ $pat =~ s <
+ (\\.) # anything backslash escaped
+ | (\$)(?![)|]|\z) # any unescaped $, except $| $) and end
+ | / # any unescaped /
+ >
+ {
+ $1 ? $1
+ : $2 ? '${\q($)}'
+ : '\\/'
+ }gex;
$out .= "qr/$pat/$flags";
}
elsif ($realtype eq 'SCALAR' || $realtype eq 'REF'
@@ -545,7 +525,7 @@ sub _dump {
else {
local $s->{useqq} = IS_PRE_516_PERL && ($s->{useqq} || $name =~ /[^\x00-\x7f]/) ? 1 : $s->{useqq};
$sname = $s->_dump(
- $name eq 'main::' || $] < 5.007 && $name eq "main::\0"
+ $name eq 'main::'
? ''
: $name,
"",
@@ -572,13 +552,32 @@ sub _dump {
elsif (!defined($val)) {
$out .= "undef";
}
+ elsif (SUPPORTS_CORE_BOOLS && do {
+ BEGIN { SUPPORTS_CORE_BOOLS and warnings->unimport("experimental::builtin") }
+ builtin::is_bool($val)
+ }) {
+ $out .= $val ? '!!1' : '!!0';
+ }
+ # This calls the XSUB _vstring (if the XS code is loaded). I'm not *sure* if
+ # if belongs in the "Pure Perl" implementation. It sort of depends on what
+ # was meant by "Pure Perl", as this subroutine already relies Scalar::Util
+ # loading, which means that it has an XS dependency. De facto, it's the
+ # "Pure Perl" implementation of dumping (which uses XS helper code), as
+ # opposed to the C implementation (which calls out to Perl helper code).
+ # So in that sense this is fine - it just happens to be a local XS helper.
elsif (defined &_vstring and $v = _vstring($val)
and !_bad_vsmg || eval $v eq $val) {
$out .= $v;
}
+ # However the confusion comes here - if we *can't* find our XS helper, we
+ # fall back to this code, which generates different (worse) results. That's
+ # better than nothing, *but* it means that if you run the regression tests
+ # with Dumper.so missing, the test for "vstrings" fails, because this code
+ # here generates a different result. So there are actually "three" different
+ # implementations of Data::Dumper (kind of sort of) but we only test two.
elsif (!defined &_vstring
and ref $ref eq 'VSTRING' || eval{Scalar::Util::isvstring($val)}) {
- $out .= sprintf "%vd", $val;
+ $out .= sprintf "v%vd", $val;
}
# \d here would treat "1\x{660}" as a safe decimal number
elsif ($val =~ /^(?:0|-?[1-9][0-9]{0,8})\z/) { # safe decimal number
@@ -748,15 +747,15 @@ 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]/;
+# The low controls are considered to be everything below SPACE, plus the
+# outlier \c? control (but that wasn't properly in existence in early perls,
+# so reconstruct its value here. This abandons EBCDIC support for this
+# character for perls below 5.8)
+my $low_controls = join "", map { quotemeta chr $_ } 0.. (ord(" ") - 1);
+$low_controls .= ($] < 5.008 || $IS_ASCII)
+ ? "\x7f"
+ : chr utf8::unicode_to_native(0x9F);
+my $low_controls_re = qr/[$low_controls]/;
# put a string value in double quotes
sub qquote {
@@ -766,19 +765,10 @@ sub qquote {
# 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{}.
+ # controls.
my $bytes; { use bytes; $bytes = length }
- s/([^[:ascii:]\0-\x3f])/sprintf("\\x{%x}",ord($1))/ge
- if $bytes > length
-
- # 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($_));
+ s/([^[:ascii:]$low_controls])/sprintf("\\x{%x}",ord($1))/ge
+ if $bytes > length;
return qq("$_") unless /[[:^print:]]/; # fast exit if only printables
@@ -787,21 +777,17 @@ sub qquote {
s/([\a\b\t\n\f\r\e])/$esc{$1}/g;
# no need for 3 digits in escape for octals not followed by a digit.
- s/($low_controls)(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
+ s/($low_controls_re)(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
# But otherwise use 3 digits
- s/($low_controls)/'\\'.sprintf('%03o',ord($1))/eg;
+ s/($low_controls_re)/'\\'.sprintf('%03o',ord($1))/eg;
# all but last branch below not supported --BEHAVIOR SUBJECT TO CHANGE--
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;
- }
+ # Could use /u and [:cntrl:] etc, if khw were confident it worked in
+ # early early perls
+ s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg if $IS_ASCII;
} elsif ($high eq "utf8") {
# Some discussion of what to do here is in
# https://rt.perl.org/Ticket/Display.html?id=113088
@@ -817,10 +803,6 @@ sub qquote {
return qq("$_");
}
-# helper sub to sort hash keys in Perl < 5.8.0 where we don't have
-# access to sortsv() from XS
-sub _sortkeys { [ sort keys %{$_[0]} ] }
-
sub _refine_name {
my $s = shift;
my ($name, $val, $i) = @_;
@@ -884,7 +866,7 @@ Data::Dumper - stringified perl data structures, suitable for both printing and
}
# OO usage
- $d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
+ my $d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
...
print $d->Dump;
...
@@ -909,7 +891,7 @@ to substructures within C<$VAR>I<n> will be appropriately labeled using arrow
notation. You can specify names for individual values to be dumped if you
use the C<Dump()> method, or you can change the default C<$VAR> prefix to
something else. See C<$Data::Dumper::Varname> and C<$Data::Dumper::Terse>
-below.
+in L</Configuration Variables or Methods> below.
The default output of self-referential structures can be C<eval>ed, but the
nested references to C<$VAR>I<n> will be undefined, since a recursive
@@ -1451,12 +1433,9 @@ for L<B::Deparse>.
SCALAR objects have the weirdest looking C<bless> workaround.
-Pure Perl version of C<Data::Dumper> escapes UTF-8 strings correctly
-only in Perl 5.8.0 and later.
-
=head2 NOTE
-Starting from Perl 5.8.1 different runs of Perl will have different
+Different runs of Perl will have different
ordering of hash keys. The change was done for greater security,
see L<perlsec/"Algorithmic Complexity Attacks">. This means that
different runs of Perl will have different Data::Dumper outputs if
@@ -1476,7 +1455,7 @@ modify it under the same terms as Perl itself.
=head1 VERSION
-Version 2.179
+Version 2.188
=head1 SEE ALSO
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm
index f047db1b9c..90f0e06c97 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm
@@ -56,7 +56,7 @@ 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_07 to 5.33.1 are supported.
+Perl versions from 5.003_07 to 5.35.9 are supported.
C<GetFileContents> can be used to retrieve the file contents rather than
writing it out.
@@ -127,7 +127,7 @@ of the would-be file rather than writing it out.
=head1 COMPATIBILITY
-F<ppport.h> supports Perl versions from 5.003_07 to 5.33.1
+F<ppport.h> supports Perl versions from 5.003_07 to 5.35.9
in threaded and non-threaded configurations.
=head2 Provided Perl compatibility API
@@ -143,6 +143,7 @@ sorted by version> for that information.)
aMY_CXT
aMY_CXT_
__ASSERT_
+ ASSUME
aTHX
aTHX_
aTHXR
@@ -437,6 +438,7 @@ sorted by version> for that information.)
Newxc
Newxz
NOOP
+ NOT_REACHED
NUM2PTR
NVef
NVff
@@ -525,6 +527,7 @@ sorted by version> for that information.)
PERL_SHORT_MAX
PERL_SHORT_MIN
PERL_SIGNALS_UNSAFE_FLAG
+ PERL_STATIC_INLINE
PERL_UCHAR_MAX
PERL_UCHAR_MIN
PERL_UINT_MAX
@@ -662,6 +665,7 @@ sorted by version> for that information.)
SV_NOSTEAL
SvNV_nomg
SvPVbyte
+ SvPVCLEAR
SvPV_const
SvPV_flags
SvPV_flags_const
@@ -873,35 +877,108 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=over 4
-=item perl 5.33.1
-
- dMY_CXT_SV
-
-=item perl 5.33.0
+=item perl 5.35.9
+ NV_ZERO_IS_ALLBITS_ZERO
PERL_INC_VERSION_LIST
+ sv_numeq
+ sv_numeq_flags
+ sv_streq
+ sv_streq_flags
USE_C_BACKTRACE
+ WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES
+ WARN_EXPERIMENTAL__BUILTIN
-=item perl 5.32.0
+=item perl 5.35.8
- HAS_SOCKADDR_STORAGE
+ op_wrap_finally (marked experimental)
-=item perl 5.31.7
+=item perl 5.35.7
- HASATTRIBUTE_ALWAYS_INLINE
- HAS_ISLESS
- HAS_WCRTOMB
- sv_isa_sv (marked experimental)
- WARN_EXPERIMENTAL__ISA
+ phase_name
+
+=item perl 5.35.6
+
+ CopFILEAVn
+ sv_setpvn_fresh
+
+=item perl 5.35.5
+
+ SAVESTRLEN
+ WARN_EXPERIMENTAL__FOR_LIST
+
+=item perl 5.35.4
-=item perl 5.31.6
+ newDEFEROP (marked experimental)
+ PERL_THREAD_LOCAL
+ ST_DEV_SIGN
+ ST_DEV_SIZE
+ SvIsBOOL
+ sv_setbool
+ sv_setbool_mg
+ sv_setrv_inc
+ sv_setrv_inc_mg
+ sv_setrv_noinc
+ sv_setrv_noinc_mg
+ WARN_EXPERIMENTAL__DEFER
+
+=item perl 5.35.1
+
+ av_new_alloc
+ HAS_FFS
+ HAS_FFSL
+ HAS_NL_LANGINFO_L
+ HAS_NON_INT_BITFIELDS
+ HAS_STRXFRM_L
+ newAV_alloc_x
+ newAV_alloc_xz
+
+=item perl 5.33.8
+
+ cophh_exists_pv (marked experimental)
+ cophh_exists_pvn (marked experimental)
+ cophh_exists_pvs (marked experimental)
+ cophh_exists_sv (marked experimental)
+ cop_hints_exists_pv
+ cop_hints_exists_pvn
+ cop_hints_exists_pvs
+ cop_hints_exists_sv
+
+=item perl 5.33.7
+
+ newTRYCATCHOP (marked experimental)
+ WARN_EXPERIMENTAL__TRY
+
+=item perl 5.33.5
+
+ GETENV_PRESERVES_OTHER_THREAD
+ pad_compname_type (DEPRECATED)
+
+=item perl 5.33.2
+
+ pack_cat (DEPRECATED)
+
+=item perl 5.32.1
GDBMNDBM_H_USES_PROTOTYPES
HAS_DBMINIT_PROTO
+ HAS_SOCKADDR_STORAGE
I_DBM
I_NDBM
NDBM_H_USES_PROTOTYPES
+=item perl 5.31.9
+
+ UNI_DISPLAY_BACKSPACE
+
+=item perl 5.31.7
+
+ HASATTRIBUTE_ALWAYS_INLINE
+ HAS_ISLESS
+ HAS_WCRTOMB
+ sv_isa_sv (marked experimental)
+ WARN_EXPERIMENTAL__ISA
+
=item perl 5.31.5
isALPHANUMERIC_utf8
@@ -928,10 +1005,11 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.31.4
- sv_2pvbyte_flags
+ cop_fetch_label (marked experimental)
+ cop_store_label (marked experimental)
+ sv_2pvbyte_flags (undocumented)
sv_2pvutf8_flags (undocumented)
- SvAMAGIC_off
- SvAMAGIC_on
+ sv_nolocking (DEPRECATED)
SvPVbyte_nomg
SvPVbyte_or_null
SvPVbyte_or_null_nomg
@@ -1025,12 +1103,14 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.27.2
Perl_setlocale
+ UNICODE_DISALLOW_PERL_EXTENDED
+ UNICODE_WARN_PERL_EXTENDED
UTF8_DISALLOW_PERL_EXTENDED
+ UTF8_GOT_PERL_EXTENDED
UTF8_WARN_PERL_EXTENDED
=item perl 5.27.1
- bytes_from_utf8_loc (marked experimental) (undocumented)
is_utf8_invariant_string_loc
=item perl 5.25.11
@@ -1080,6 +1160,15 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
is_utf8_string_loclen_flags
SvPVCLEAR
sv_setpv_bufsize
+ UTF8_GOT_CONTINUATION
+ UTF8_GOT_EMPTY
+ UTF8_GOT_LONG
+ UTF8_GOT_NONCHAR
+ UTF8_GOT_NON_CONTINUATION
+ UTF8_GOT_OVERFLOW
+ UTF8_GOT_SHORT
+ UTF8_GOT_SUPER
+ UTF8_GOT_SURROGATE
utf8n_to_uvchr_error
=item perl 5.25.5
@@ -1089,6 +1178,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
isUTF8_CHAR_flags
is_utf8_valid_partial_char
is_utf8_valid_partial_char_flags
+ UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE
+ UNICODE_WARN_ILLEGAL_C9_INTERCHANGE
UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE
UTF8_WARN_ILLEGAL_C9_INTERCHANGE
@@ -1137,7 +1228,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_SIGINFO_SI_UID
HAS_SIGINFO_SI_VALUE
leave_adjust_stacks (marked experimental) (undocumented)
- savetmps (marked experimental) (undocumented)
+ Perl_savetmps (undocumented)
=item perl 5.23.6
@@ -1145,6 +1236,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE
LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE
LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE
+ UNICODE_DISALLOW_ABOVE_31_BIT
+ UNICODE_WARN_ABOVE_31_BIT
=item perl 5.23.5
@@ -1161,9 +1254,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
I_SYS_STATVFS
I_SYS_VFS
I_USTAT
+ sv_ref
=item perl 5.23.2
+ INT64_C
+ UINT64_C
UTF8_IS_NONCHAR
UTF8_IS_SUPER
UTF8_IS_SURROGATE
@@ -1219,6 +1315,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.21.6
+ block_end
+ block_start
DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
@@ -1264,6 +1362,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_SCALBN
HAS_TGAMMA
HAS_TRUNC
+ intro_my
newDEFSVOP
op_convert_list
WARN_LOCALE
@@ -1297,6 +1396,14 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
I_FENV
isinfnan
I_STDINT
+ Perl_acos
+ Perl_asin
+ Perl_atan
+ Perl_cosh
+ Perl_log10
+ Perl_sinh
+ Perl_tan
+ Perl_tanh
=item perl 5.21.3
@@ -1310,6 +1417,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN
LONG_DOUBLEKIND
+ Perl_ldexp
=item perl 5.21.2
@@ -1328,7 +1436,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_WCSXFRM
I_EXECINFO
markstack_grow (undocumented)
- WARN_EXPERIMENTAL__WIN32_PERLIO
=item perl 5.19.10
@@ -1365,8 +1472,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.19.1
toFOLD
+ toFOLD_A
+ toLOWER_A
toLOWER_L1
toTITLE
+ toTITLE_A
+ toUPPER_A
=item perl 5.18.0
@@ -1460,9 +1571,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.15.4
- gv_autoload_pv
- gv_autoload_pvn
- gv_autoload_sv
+ gv_autoload_pv (undocumented)
+ gv_autoload_pvn (undocumented)
+ gv_autoload_sv (undocumented)
gv_fetchmethod_pv_flags (marked experimental) (undocumented)
gv_fetchmethod_pvn_flags (marked experimental) (undocumented)
gv_fetchmethod_sv_flags (marked experimental) (undocumented)
@@ -1485,7 +1596,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
sv_does_pv
sv_does_pvn
sv_does_sv
- sv_ref
whichsig_pv
whichsig_pvn
whichsig_sv
@@ -1502,21 +1612,24 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
ST_INO_SIGN
ST_INO_SIZE
- XS_EXTERNAL
- XS_INTERNAL
+ XS_EXTERNAL (undocumented)
+ XS_INTERNAL (undocumented)
=item perl 5.15.1
- cop_fetch_label (marked experimental)
- cop_store_label (marked experimental)
+ cv_clone
+ pad_add_anon
pad_add_name_pv
pad_add_name_pvn
pad_add_name_pvs
pad_add_name_sv
+ pad_alloc (marked experimental)
pad_findmy_pv
pad_findmy_pvn
pad_findmy_pvs
pad_findmy_sv
+ pad_new
+ pad_tidy (marked experimental)
=item perl 5.13.10
@@ -1528,6 +1641,16 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_SIN6_SCOPE_ID
PERL_PV_ESCAPE_NONASCII
+ UNICODE_DISALLOW_ILLEGAL_INTERCHANGE
+ UNICODE_DISALLOW_NONCHAR
+ UNICODE_DISALLOW_SUPER
+ UNICODE_DISALLOW_SURROGATE
+ UNICODE_IS_NONCHAR
+ UNICODE_IS_SUPER
+ UNICODE_WARN_ILLEGAL_INTERCHANGE
+ UNICODE_WARN_NONCHAR
+ UNICODE_WARN_SUPER
+ UNICODE_WARN_SURROGATE
UTF8_DISALLOW_ILLEGAL_INTERCHANGE
UTF8_DISALLOW_NONCHAR
UTF8_DISALLOW_SUPER
@@ -1570,9 +1693,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
cop_hints_fetch_pvn
cop_hints_fetch_pvs
cop_hints_fetch_sv
- custom_op_register
dirp_dup (undocumented)
HvENAME
+ lex_start (marked experimental)
newFOROP
newWHILEOP
OP_CLASS
@@ -1582,6 +1705,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
parse_block (marked experimental)
parse_label (marked experimental)
PARSE_OPTIONAL
+ Perl_custom_op_register (undocumented)
PL_phase
XopDISABLE
XopENABLE
@@ -1600,6 +1724,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
gv_fetchpvn
lex_stuff_pv (marked experimental)
LINKLIST
+ load_module_nocontext
mg_free_type
newSVpv_share
op_append_elem
@@ -1612,6 +1737,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
rv2cv_op_cv
RV2CVOPCV_MARK_EARLY
RV2CVOPCV_RETURN_NAME_GV
+ save_pushi32ptr (undocumented)
+ save_pushptrptr (undocumented)
savesharedpvs
savesharedsvpv
sv_catpv_flags
@@ -1628,9 +1755,11 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.13.5
+ hv_copy_hints_hv
lex_stuff_pvs (marked experimental)
parse_fullstmt (marked experimental)
PL_rpeepp
+ save_hints (undocumented)
=item perl 5.13.4
@@ -1640,16 +1769,16 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.13.3
- blockhook_register (marked experimental)
+ Perl_blockhook_register (undocumented)
=item perl 5.13.2
- clone_params_del (undocumented)
- clone_params_new (undocumented)
find_rundefsv
foldEQ
foldEQ_locale
- hv_fill
+ Perl_clone_params_del (undocumented)
+ Perl_clone_params_new (undocumented)
+ Perl_hv_fill (undocumented)
sv_dec_nomg
sv_dup_inc (undocumented)
sv_inc_nomg
@@ -1691,11 +1820,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
LEX_STUFF_UTF8
lex_unstuff (marked experimental)
PL_keyword_plugin (marked experimental)
-
-=item perl 5.11.1
-
- ck_warner
- ck_warner_d
+ toLOWER_LATIN1
=item perl 5.11.0
@@ -1711,6 +1836,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
save_aelem_flags (undocumented)
save_hdelete (undocumented)
save_helem_flags (undocumented)
+ setdefout
+ SV_FORCE_UTF8_UPGRADE
SvOOK_offset
SVt_REGEXP
sv_utf8_upgrade_flags_grow
@@ -1727,28 +1854,21 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_INETNTOP
HAS_INETPTON
HAS_TIMEGM
+ HvMROMETA
I_SYS_POLL
LOCALTIME_MAX
LOCALTIME_MIN
- mro_get_from_name (undocumented)
- mro_get_private_data
- mro_register
- mro_set_mro (undocumented)
- mro_set_private_data
- MUTABLE_AV
- MUTABLE_CV
- MUTABLE_GV
- MUTABLE_HV
- MUTABLE_IO
+ MRO_GET_PRIVATE_DATA
NV_OVERFLOWS_INTEGERS_AT
+ Perl_mro_get_from_name (undocumented)
+ Perl_mro_register (undocumented)
+ Perl_mro_set_mro (undocumented)
+ Perl_mro_set_private_data (undocumented)
PERL_USE_DEVEL
SAVEFREEOP
- save_hints (undocumented)
save_op (undocumented)
save_padsv_and_mortalize (undocumented)
- save_pushi32ptr (undocumented)
save_pushptr (undocumented)
- save_pushptrptr (undocumented)
sv_insert_flags
=item perl 5.10.0
@@ -1792,29 +1912,28 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_TMPNAM_R
HAS_TTYNAME_R
LOCALTIME_R_NEEDS_TZSET
- my_cxt_init (undocumented)
START_MY_CXT
sv_destroyable
USE_ITHREADS
+ UVf (DEPRECATED)
=item perl 5.9.5
- av_create_and_push (marked experimental)
- av_create_and_unshift_one (marked experimental)
CopLABEL
+ find_runcv
gv_fetchfile_flags
HAS_CTERMID
HAS_PTHREAD_YIELD
HAS_SIGNBIT
- lex_start (marked experimental)
L_R_TZSET
mro_get_linear_isa
mro_method_changed_in
my_dirfd (undocumented)
+ Perl_av_create_and_push (undocumented)
+ Perl_av_create_and_unshift_one (undocumented)
Perl_signbit (marked experimental)
pregcomp
PRINTF_FORMAT_NULL_OK
- ptr_table_clear (DEPRECATED) (undocumented)
ptr_table_fetch (undocumented)
ptr_table_free (undocumented)
ptr_table_new (undocumented)
@@ -1831,13 +1950,13 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
GV_NOTQUAL
HAS_BUILTIN_CHOOSE_EXPR
HAS_C99_VARIADIC_MACROS
- hv_copy_hints_hv
my_vsnprintf
newXS_flags (marked experimental) (undocumented)
- PerlIO_context_layers (undocumented)
PERL_MAGIC_hints
PERL_MAGIC_hintselem
+ Perl_PerlIO_context_layers (undocumented)
sv_does
+ sv_nounlocking (DEPRECATED)
sv_usepvn_flags
=item perl 5.9.3
@@ -1860,28 +1979,31 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_SNPRINTF
HAS_UNSETENV
HAS_VSNPRINTF
- hv_eiter_p (undocumented)
- hv_eiter_set (undocumented)
hv_name_set (undocumented)
- hv_placeholders_get (undocumented)
- hv_placeholders_set (undocumented)
- hv_riter_p (undocumented)
- hv_riter_set (undocumented)
is_utf8_string_loclen
LIBM_LIB_VERSION
MULTICALL
newGIVENOP
newSVhek
- NV_ZERO_IS_ALLBITS_ZERO
- pad_compname_type (DEPRECATED)
- PERLIO_FUNCS_DECL
+ Perl_hv_eiter_p (undocumented)
+ Perl_hv_eiter_set (undocumented)
+ Perl_hv_placeholders_get (undocumented)
+ Perl_hv_placeholders_set (undocumented)
+ Perl_hv_riter_p (undocumented)
+ Perl_hv_riter_set (undocumented)
+ PERLIO_FUNCS_DECL (undocumented)
PERL_MAGIC_arylen_p
PERL_MAGIC_rhash
PERL_MAGIC_symtab
POP_MULTICALL
savepvs
+ seed (undocumented)
+ share_hek (undocumented)
sortsv_flags
- SvPV_shrink_to_cur
+ SvPVbytex_nolen
+ SvPV_free
+ SvPVx_const
+ SvPVx_nolen
vverify
=item perl 5.9.2
@@ -1898,6 +2020,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
hv_clear_placeholders
hv_scalar
+ Perl_ceil
scan_version
sv_2iv_flags
sv_2uv_flags
@@ -1914,6 +2037,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
MY_CXT_INIT
new_version
parser_dup (undocumented)
+ Perl_my_cxt_init (undocumented)
_pMY_CXT
pMY_CXT
pMY_CXT_
@@ -1923,9 +2047,14 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
vnumify
vstringify
+=item perl 5.8.9
+
+ Perl_hv_assert (undocumented)
+
=item perl 5.8.8
__ASSERT_
+ rvpv_dup (undocumented)
=item perl 5.8.3
@@ -1935,7 +2064,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.8.1
CvPADLIST (marked experimental)
- find_runcv
HAS_COPYSIGNL
HAS_FAST_STDIO
HAS_ILOGBL
@@ -1945,13 +2073,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
IN_PERL_RUNTIME
is_utf8_string_loc
packlist
- pad_add_anon
- pad_new
- pad_tidy (marked experimental)
PL_comppad (marked experimental)
SAVEBOOL
savestack_grow_cnt (undocumented)
- seed (undocumented)
sv_cat_decode
sv_setpviv (DEPRECATED)
sv_setpviv_mg (DEPRECATED)
@@ -2019,14 +2143,10 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
=item perl 5.7.3
- ckWARN3
- ckWARN3_d
- ckWARN4
- ckWARN4_d
+ atfork_lock (undocumented)
+ atfork_unlock (undocumented)
custom_op_desc (DEPRECATED)
custom_op_name (DEPRECATED)
- deb (undocumented)
- deb_nocontext (undocumented)
debstack (undocumented)
debstackptrs (undocumented)
foldEQ_utf8
@@ -2045,10 +2165,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
my_socketpair (undocumented)
OP_DESC
OP_NAME
- pack_cat (DEPRECATED)
- packWARN2
- packWARN3
- packWARN4
+ Perl_deb (undocumented)
+ Perl_deb_nocontext (undocumented)
perl_destruct
PERL_EXIT_DESTRUCT_END
PerlIO_clearerr
@@ -2056,12 +2174,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PerlIO_eof
PerlIO_error
PerlIO_fileno
- PerlIO_fill (undocumented)
PerlIO_flush
PerlIO_get_base
PerlIO_get_bufsiz
PerlIO_get_cnt
PerlIO_get_ptr
+ PERLIO_K_MULTIARG
PerlIO_read
PerlIO_seek
PerlIO_set_cnt
@@ -2073,10 +2191,11 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PerlIO_tell
PerlIO_unread (undocumented)
PerlIO_write
+ Perl_isfinite
+ Perl_isinf
PL_peepp
PROCSELFEXE_PATH
pv_uni_display
- rvpv_dup (undocumented)
savesharedpv
save_shared_pvref (undocumented)
si_dup (undocumented)
@@ -2086,22 +2205,21 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
sv_dup (undocumented)
SvLOCK
sv_magicext
- sv_nolocking (DEPRECATED)
sv_nosharing
- sv_nounlocking (DEPRECATED)
sv_recode_to_utf8
SvSHARE
sv_uni_display
SvUNLOCK
+ UNI_DISPLAY_BACKSLASH
+ UNI_DISPLAY_ISPRINT
+ UNI_DISPLAY_QQ
+ UNI_DISPLAY_REGEX
unpack_str (DEPRECATED)
uvchr_to_utf8_flags
vdeb (undocumented)
=item perl 5.7.2
- atfork_lock (undocumented)
- atfork_unlock (undocumented)
- calloc
DB_VERSION_MAJOR_CFG
DB_VERSION_MINOR_CFG
DB_VERSION_PATCH_CFG
@@ -2115,18 +2233,21 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
HAS_USLEEP_PROTO
I_LANGINFO
init_tm (undocumented)
- malloc
- mfree (undocumented)
mini_mktime
- my_strftime
op_null
OSVERS
+ Perl_calloc (undocumented)
+ Perl_malloc (undocumented)
+ Perl_mfree (undocumented)
+ Perl_my_strftime (undocumented)
+ Perl_realloc (undocumented)
PERL_TARGETARCH
- realloc
sv_catpvn_flags
sv_catsv_flags
sv_utf8_upgrade_flags
sv_utf8_upgrade_nomg
+ U_32
+ UNICODE_IS_REPLACEMENT
=item perl 5.7.1
@@ -2167,9 +2288,27 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PerlIO_apply_layers
PerlIO_binmode
PerlIO_debug
- PERLIO_FUNCS_CAST
+ PERLIO_F_APPEND
+ PERLIO_F_CANREAD
+ PERLIO_F_CANWRITE
+ PERLIO_F_CRLF
+ PERLIO_F_EOF
+ PERLIO_F_ERROR
+ PERLIO_F_FASTGETS
+ PERLIO_F_LINEBUF
+ PERLIO_F_OPEN
+ PERLIO_F_RDBUF
+ PERLIO_F_TEMP
+ PERLIO_F_TRUNCATE
+ PERLIO_F_UNBUF
+ PERLIO_F_UTF8
+ PERLIO_F_WRBUF
+ PERLIO_K_BUFFERED
+ PERLIO_K_CANCRLF
+ PERLIO_K_FASTGETS
+ PERLIO_K_RAW
+ Perl_printf_nocontext (undocumented)
POPpbytex
- printf_nocontext (DEPRECATED) (undocumented)
SAVEMORTALIZESV
SIG_SIZE
STDIO_PTR_LVAL_SETS_CNT
@@ -2178,6 +2317,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
sv_unref_flags
sv_utf8_upgrade
U32_ALIGNMENT_REQUIRED
+ UNICODE_IS_SURROGATE
USE_PERLIO
UTF8_CHECK_ONLY
utf8_length
@@ -2185,6 +2325,14 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
uvchr_to_utf8
UVXf
+=item perl 5.7.0
+
+ FILE_base
+ FILE_bufsiz
+ FILE_cnt
+ FILE_ptr
+ PerlIO_fill (undocumented)
+
=item perl 5.6.1
apply_attrs_string (marked experimental) (undocumented)
@@ -2200,6 +2348,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
is_utf8_string
NV_PRESERVES_UV_BITS
NVSIZE
+ Perl_isnan
PERL_PRIeldbl
PERL_SCNfldbl
save_generic_pvref (undocumented)
@@ -2214,13 +2363,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
av_exists
call_atexit (undocumented)
caller_cx
- ckWARN2
- ckWARN2_d
- ckWARN_d
CopLINE
CPPLAST
CPPRUN
- die_nocontext
do_open9 (DEPRECATED) (undocumented)
DO_UTF8
Drand01
@@ -2230,8 +2375,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
dump_packsubs
dump_sub (undocumented)
FFLUSH_NULL
- form_nocontext
- fprintf_nocontext (DEPRECATED) (undocumented)
get_context (undocumented)
get_ppaddr (undocumented)
Gid_t_f
@@ -2333,7 +2476,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
I_SYSLOG
I_SYSUIO
I_SYSUTSNAME
- load_module_nocontext
LSEEKSIZE
magic_dump (undocumented)
Mmap_t
@@ -2342,17 +2484,28 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
my_fflush_all (undocumented)
newANONATTRSUB (undocumented)
newATTRSUB
- newSVpvf_nocontext
newXS
newXSproto
Off_t_size
op_dump
OPpEARLY_CV
+ PERL_ASYNC_CHECK
+ Perl_atan2
+ Perl_cos
PERL_EXIT_EXPECTED
+ Perl_exp
+ Perl_floor
+ Perl_fmod
+ Perl_frexp
+ Perl_log
+ Perl_modf
perl_parse
+ Perl_pow
PERL_PRIfldbl
PERL_PRIgldbl
PERL_REVISION (DEPRECATED)
+ Perl_sin
+ Perl_sqrt
PERL_SYS_INIT3
PHOSTNAME
PL_check
@@ -2373,6 +2526,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
safesysrealloc
save_alloc (undocumented)
SAVEDESTRUCTOR
+ SAVEDESTRUCTOR_X
SAVEI8
save_vptr (undocumented)
scan_bin
@@ -2387,14 +2541,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
Strtol
Strtoul
sv_2pvutf8
- sv_catpvf_mg_nocontext
- sv_catpvf_nocontext
sv_force_normal
SvIOK_notUV
SvIOK_only_UV
SvIOK_UV
sv_len_utf8
- sv_len_utf8_nomg (undocumented)
+ sv_len_utf8_nomg
SvPOK_only_UTF8
sv_pos_b2u
sv_pos_u2b
@@ -2407,8 +2559,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
SvPVutf8x
SvPVutf8x_force
sv_rvweaken
- sv_setpvf_mg_nocontext
- sv_setpvf_nocontext
SvUOK
sv_utf8_decode
sv_utf8_downgrade
@@ -2450,9 +2600,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
UTF8SKIP
vcroak
vform
- vwarn
- vwarner
- warn_nocontext
=item perl 5.005_03
@@ -2461,6 +2608,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
POPpx
save_generic_svref (undocumented)
SELECT_MIN_BITS
+ SvTIED_obj
USE_STAT_BLOCKS
=item perl 5.005
@@ -2524,11 +2672,15 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
Pid_t
PL_curpad (marked experimental)
PL_in_my_stash (undocumented)
+ PL_maxsysfd
PL_modglobal
+ PL_restartop
PTRSIZE
PWPASSWD
+ regdump (undocumented)
sv_peek (undocumented)
sv_pvn_nomg (DEPRECATED) (undocumented)
+ SvPVx_force
=item perl 5.004_05
@@ -2546,12 +2698,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
ARCHNAME
BIN_EXP
- block_end
block_gimme (undocumented)
- block_start
call_list (undocumented)
delimcpy
- form
GIMME_V
gv_autoload4
gv_fetchmethod_autoload
@@ -2570,7 +2719,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
IN_LOCALE
IN_LOCALE_COMPILETIME
IN_LOCALE_RUNTIME
- intro_my
isALNUM_LC
isALPHA_LC
isALPHANUMERIC_LC
@@ -2582,11 +2730,19 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
isSPACE_LC
isUPPER_LC
isWORDCHAR_LC
- mess
- mess_nocontext
+ JMPENV_JUMP
mess_sv
my_failure_exit (undocumented)
- newSVpvf
+ Perl_ck_warner (undocumented)
+ Perl_ck_warner_d (undocumented)
+ Perl_form (undocumented)
+ Perl_mess (undocumented)
+ Perl_newSVpvf (undocumented)
+ Perl_sv_catpvf (undocumented)
+ Perl_sv_catpvf_mg (undocumented)
+ Perl_sv_setpvf (undocumented)
+ Perl_sv_setpvf_mg (undocumented)
+ Perl_warner (undocumented)
Perl_warner_nocontext (undocumented)
PL_mess_sv (undocumented)
POPu
@@ -2595,17 +2751,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
save_gp
SAVEI16
SAVESTACK_POS
- share_hek (undocumented)
SHORTSIZE
- sv_catpvf
- sv_catpvf_mg
sv_cmp_locale
sv_derived_from
sv_magic_portable (undocumented)
SvSetMagicSV
SvSetMagicSV_nosteal
- sv_setpvf
- sv_setpvf_mg
SvSetSV_nosteal
SvTAINTED
SvTAINTED_off
@@ -2620,25 +2771,25 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
toLOWER_LC
vmess
vnewSVpvf
- warner
- warner_nocontext
+ vwarner
=item perl 5.003_07 (or maybe earlier)
amagic_call (undocumented)
ARCHLIB
ARCHLIB_EXP
+ ASSUME
aTHX
aTHX_
aTHXR (undocumented)
aTHXR_ (undocumented)
+ AvARRAY
av_clear
av_count
av_extend
av_fetch
av_fill
AvFILL
- AvFILLp
av_len
av_make
av_pop
@@ -2665,6 +2816,13 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
CAT2
cBOOL
ckWARN
+ ckWARN2
+ ckWARN2_d
+ ckWARN3
+ ckWARN3_d
+ ckWARN4
+ ckWARN4_d
+ ckWARN_d
CLASS
CopFILE
CopFILEAV
@@ -2681,16 +2839,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
CPERLscope (DEPRECATED)
CPPMINUS
CPPSTDIN
- croak
- croak_memory_wrap (undocumented)
- croak_nocontext
croak_no_modify
croak_sv
croak_xs_usage
CSH
- cv_clone
cv_const_sv
- CvDEPTH
+ CvDEPTH (undocumented)
CvGV
CvSTASH
cv_undef
@@ -2700,16 +2854,18 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
DB_Prefix_t
DEFSV
DEFSV_set
- die
die_sv
Direntry_t
dITEMS
dMARK
+ dMY_CXT_SV
dNOOP
do_close (undocumented)
do_join (undocumented)
do_open (undocumented)
dORIGMARK
+ do_sprintf (undocumented)
+ dounwind (undocumented)
dowantarray (undocumented)
dSP
dTARGET
@@ -2732,10 +2888,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
eval_sv
EXTEND
EXTERN_C
- FILE_base
- FILE_bufsiz
- FILE_cnt
- FILE_ptr
filter_add
filter_del (undocumented)
filter_read
@@ -2743,7 +2895,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
Fpos_t
Free_t
FREETMPS
- G_ARRAY
Gconvert
G_DISCARD
get_av
@@ -2756,6 +2907,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
Gid_t
GIMME (DEPRECATED)
G_KEEPERR
+ G_LIST
G_METHOD
G_NOARGS
gp_free (undocumented)
@@ -2914,12 +3066,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
hv_ksplit (undocumented)
hv_magic
HvNAME
- HvNAME_get
HvNAMELEN_get
hv_store
hv_store_ent
hv_stores
hv_undef
+ I_32
ibcmp
I_DIRENT
I_DLFCN
@@ -2928,7 +3080,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
I_NETINET_IN
IN_PERL_COMPILETIME
instr
+ INT16_C
INT2PTR
+ INT32_C
INTMAX_C
INTSIZE
I_PWD
@@ -3020,9 +3174,10 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
I_TIME
I_UNISTD
I_UTIME
+ I_V
IVdf
- IV_MAX (undocumented)
- IV_MIN (undocumented)
+ IV_MAX
+ IV_MIN
IVSIZE
IVTYPE
ix
@@ -3042,6 +3197,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
memEQs
memNE
memNEs
+ memzero
mg_clear
mg_copy
mg_find
@@ -3058,6 +3214,11 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
mPUSHp
mPUSHs
mPUSHu
+ MUTABLE_AV
+ MUTABLE_CV
+ MUTABLE_GV
+ MUTABLE_HV
+ MUTABLE_IO
MUTABLE_PTR
MUTABLE_SV
mXPUSHi
@@ -3069,7 +3230,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
my_pclose (undocumented)
my_popen (undocumented)
my_setenv
- my_snprintf
my_sprintf (DEPRECATED)
my_strlcat
my_strlcpy
@@ -3103,7 +3263,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
newPROG (undocumented)
newPVOP
newRANGE
- newRV (undocumented)
+ newRV
newRV_inc
newRV_noinc
newSLICEOP
@@ -3124,7 +3284,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
newSVREF (undocumented)
newSVrv
newSVsv
- newSVsv_flags (undocumented)
+ newSVsv_flags
newSVsv_nomg
newSV_type
newSVuv
@@ -3134,12 +3294,12 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
Newxz
ninstr
NOOP
+ NOT_REACHED (undocumented)
Nullav (DEPRECATED)
Nullch
Nullcv (DEPRECATED)
Nullhv (DEPRECATED)
Nullsv
- NUM2PTR
NVef
NVff
NVgf
@@ -3156,10 +3316,15 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
ORIGMARK
OSNAME
packWARN
- pad_alloc (marked experimental)
+ packWARN2
+ packWARN3
+ packWARN4
PERL_ABS
perl_alloc
+ PERL_BCDVERSION (undocumented)
perl_construct
+ Perl_croak (undocumented)
+ Perl_die (undocumented)
Perl_eval_pv (undocumented)
Perl_eval_sv (undocumented)
perl_free
@@ -3231,6 +3396,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PERL_MAGIC_uvar_elem
PERL_MAGIC_vec
PERL_MAGIC_vstring
+ Perl_my_snprintf (undocumented)
PERL_PV_ESCAPE_ALL
PERL_PV_ESCAPE_FIRSTCHAR
PERL_PV_ESCAPE_NOBACKSLASH
@@ -3239,12 +3405,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PERL_PV_ESCAPE_RE
PERL_PV_ESCAPE_UNI
PERL_PV_ESCAPE_UNI_DETECT
- PERL_PV_PRETTY_DUMP
PERL_PV_PRETTY_ELLIPSES
PERL_PV_PRETTY_LTGT
- PERL_PV_PRETTY_NOCLEAR
PERL_PV_PRETTY_QUOTE
- PERL_PV_PRETTY_REGPROP
PERL_QUAD_MAX
PERL_QUAD_MIN
perl_run
@@ -3279,6 +3442,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PERL_VERSION_GT
PERL_VERSION_LE
PERL_VERSION_LT
+ Perl_warn (undocumented)
PL_bufend (undocumented)
PL_bufptr (undocumented)
PL_compiling (undocumented)
@@ -3286,14 +3450,10 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PL_curcop
PL_curstash
PL_DBsignal (undocumented)
- PL_DBsingle
- PL_DBsub
- PL_DBtrace
PL_debstash (undocumented)
PL_defgv
PL_diehook (undocumented)
PL_dirty (undocumented)
- PL_dowarn
PL_errgv
PL_error_count (undocumented)
PL_expect (undocumented)
@@ -3317,7 +3477,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PL_stack_sp (undocumented)
PL_statcache (undocumented)
PL_stdingv (undocumented)
- PL_Sv
PL_sv_arenaroot (undocumented)
PL_sv_no
PL_sv_undef
@@ -3347,7 +3506,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
PTR2NV
PTR2ul
PTR2UV
- PTRV
+ PTRV (undocumented)
PUSHi
PUSHMARK
PUSHmortal
@@ -3396,7 +3555,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
scan_hex
scan_oct
Select_fd_set_t
- setdefout
Shmat_t
SH_PATH
Sigjmp_buf
@@ -3435,10 +3593,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
sv_2io
sv_2mortal
sv_2pvbyte
- sv_2pvbyte_nolen
- sv_2pv_flags
- sv_2pv_nolen
- sv_2uv (undocumented)
+ SvAMAGIC_off (undocumented)
+ SvAMAGIC_on (undocumented)
sv_backoff
sv_bless
sv_catpv
@@ -3522,7 +3678,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
SvPV_const
SvPV_flags
SvPV_flags_const
- SvPV_flags_const_nolen
SvPV_flags_mutable
SvPV_force
SvPV_force_flags
@@ -3546,6 +3701,8 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
SvPVx
SvPVX_const
SvPVX_mutable
+ SvPVx_nolen_const
+ SvPVXx
SvREADONLY
SvREADONLY_off
SvREADONLY_on
@@ -3615,7 +3772,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
SvTRUE_nomg
SvTRUEx
SvTYPE
- svtype
+ svtype (undocumented)
sv_unmagic
sv_unmagicext
sv_unref
@@ -3625,7 +3782,6 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
sv_usepvn_mg
SvUTF8
SV_UTF8_NO_ENCODING (DEPRECATED)
- sv_uv (DEPRECATED)
SvUV
SvUV_nomg
SvUV_set
@@ -3635,12 +3791,16 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
SvVSTRING_mg
switch_to_global_locale
sync_locale
+ taint_env (undocumented)
+ taint_proper (undocumented)
TARG
THIS
Time_t
toLOWER
toUPPER
Uid_t
+ UINT16_C
+ UINT32_C
UINTMAX_C
UNDERBAR
UNICODE_REPLACEMENT
@@ -3652,10 +3812,11 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
UTF8fARG
UTF8_IS_INVARIANT
UTF8_MAXBYTES_CASE
+ U_V
UVCHR_IS_INVARIANT
UVCHR_SKIP
- UV_MAX (undocumented)
- UV_MIN (undocumented)
+ UV_MAX
+ UV_MIN
UVof
UVSIZE
UVTYPE
@@ -3664,7 +3825,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
VAL_EAGAIN
VAL_O_NONBLOCK
vload_module
- warn
+ vwarn
WARN_ALL
WARN_AMBIGUOUS
WARN_ASSERTIONS (undocumented)
@@ -3714,7 +3875,7 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
WARN_UTF8
WARN_VOID
whichsig
- WIDEST_UTYPE
+ WIDEST_UTYPE (undocumented)
XCPT_CATCH
XCPT_RETHROW
XCPT_TRY_END
@@ -3725,9 +3886,9 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
XPUSHp
XPUSHs
XPUSHu
- XS
+ XS (undocumented)
XSprePUSH (undocumented)
- XSPROTO
+ XSPROTO (undocumented)
XSRETURN
XSRETURN_EMPTY
XSRETURN_IV
@@ -3753,14 +3914,15 @@ backported, first send mail to L<mailto:perl5-porters@perl.org>.
LC_NUMERIC_LOCK (undocumented)
LC_NUMERIC_UNLOCK (undocumented)
- LOCK_LC_NUMERIC_STANDARD (undocumented)
LOCK_NUMERIC_STANDARD (undocumented)
- PERL_ARGS_ASSERT_CROAK_XS_USAGE (undocumented)
+ NUM2PTR (undocumented)
+ PERLIO_FUNCS_CAST (undocumented)
+ PERLIO_FUNCS_DECL (undocumented)
STORE_LC_NUMERIC_SET_STANDARD (undocumented)
STORE_NUMERIC_SET_STANDARD (undocumented)
- SvPVx_nolen_const (undocumented)
- UNLOCK_LC_NUMERIC_STANDARD (undocumented)
+ SvPV_flags_const_nolen (undocumented)
UNLOCK_NUMERIC_STANDARD (undocumented)
+ XSPROTO (undocumented)
=back
@@ -3807,7 +3969,7 @@ modify it under the same terms as Perl itself.
=head1 SEE ALSO
-See L<h2xs>, L<ppport.h>.
+See L<h2xs>, F<ppport.h>.
=cut
@@ -3816,7 +3978,7 @@ package Devel::PPPort;
use strict;
use vars qw($VERSION $data);
-$VERSION = '3.62';
+$VERSION = '3.71';
sub _init_data
{
@@ -3910,7 +4072,7 @@ SKIP
|>=head1 COMPATIBILITY
|>
|>This version of F<ppport.h> is designed to support operation with Perl
-|>installations back to 5.003_07, and has been tested up to 5.33.1.
+|>installations back to 5.003_07, and has been tested up to 5.35.9.
|>
|>=head1 OPTIONS
|>
@@ -4408,9 +4570,14 @@ sub _dictionary_order { # Sort caselessly, ignoring punct
$lc_b = lc $valid_b;
$squeezed_a = $lc_a;
- $squeezed_a =~ s/[\W_]//g; # No punct, including no underscore
+ $squeezed_a =~ s/^_+//g; # No leading underscores
+ $squeezed_a =~ s/\B_+\B//g; # No connecting underscores
+ $squeezed_a =~ s/[\W]//g; # No punct
+
$squeezed_b = $lc_b;
- $squeezed_b =~ s/[\W_]//g;
+ $squeezed_b =~ s/^_+//g;
+ $squeezed_b =~ s/\B_+\B//g;
+ $squeezed_b =~ s/[\W]//g;
return( $squeezed_a cmp $squeezed_b
or $lc_a cmp $lc_b
@@ -4420,9 +4587,9 @@ sub _dictionary_order { # Sort caselessly, ignoring punct
sub sort_api_lines # Sort lines of the form flags|return|name|args...
# by 'name'
{
- $a =~ / ^ [^|]* \| [^|]* \| (\w+) /x; # 3rd field '|' is sep
+ $a =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x; # 3rd field '|' is sep
my $a_name = $1;
- $b =~ / ^ [^|]* \| [^|]* \| (\w+) /x;
+ $b =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x;
my $b_name = $1;
return dictionary_order($a_name, $b_name);
}
@@ -4532,6 +4699,12 @@ abort|5.005000||Viu
abort_execution|5.025010||Viu
accept|5.005000||Viu
ACCEPT|5.009005||Viu
+ACCEPT_t8|5.035004||Viu
+ACCEPT_t8_p8|5.033003||Viu
+ACCEPT_t8_pb|5.033003||Viu
+ACCEPT_tb|5.035004||Viu
+ACCEPT_tb_p8|5.033003||Viu
+ACCEPT_tb_pb|5.033003||Viu
access|5.005000||Viu
add_above_Latin1_folds|5.021001||Viu
add_cp_to_invlist|5.013011||Viu
@@ -4545,6 +4718,20 @@ advance_one_SB|5.021009||Viu
advance_one_WB|5.021009||Viu
AHOCORASICK|5.009005||Viu
AHOCORASICKC|5.009005||Viu
+AHOCORASICKC_t8|5.035004||Viu
+AHOCORASICKC_t8_p8|5.033003||Viu
+AHOCORASICKC_t8_pb|5.033003||Viu
+AHOCORASICKC_tb|5.035004||Viu
+AHOCORASICKC_tb_p8|5.033003||Viu
+AHOCORASICKC_tb_pb|5.033003||Viu
+AHOCORASICK_t8|5.035004||Viu
+AHOCORASICK_t8_p8|5.033003||Viu
+AHOCORASICK_t8_pb|5.033003||Viu
+AHOCORASICK_tb|5.035004||Viu
+AHOCORASICK_tb_p8|5.033003||Viu
+AHOCORASICK_tb_pb|5.033003||Viu
+ALIGNED_TYPE_NAME|||Viu
+ALIGNED_TYPE|||Viu
alloccopstash|5.017001|5.017001|x
alloc_LOGOP|5.025004||xViu
allocmy|5.008001||Viu
@@ -4552,15 +4739,15 @@ ALLOC_THREAD_KEY|5.005003||Viu
ALT_DIGITS|5.027010||Viu
amagic_call|5.003007|5.003007|u
amagic_cmp|5.009003||Viu
-amagic_cmp_desc|5.031010||Viu
+amagic_cmp_desc|5.031011||Viu
amagic_cmp_locale|5.009003||Viu
-amagic_cmp_locale_desc|5.031010||Viu
+amagic_cmp_locale_desc|5.031011||Viu
amagic_deref_call|5.013007|5.013007|u
amagic_i_ncmp|5.009003||Viu
-amagic_i_ncmp_desc|5.031010||Viu
+amagic_i_ncmp_desc|5.031011||Viu
amagic_is_enabled|5.015008||Viu
amagic_ncmp|5.009003||Viu
-amagic_ncmp_desc|5.031010||Viu
+amagic_ncmp_desc|5.031011||Viu
AMG_CALLun|5.003007||Viu
AMG_CALLunary|5.013009||Viu
AMGfallNEVER|5.003007||Viu
@@ -4579,8 +4766,8 @@ AMT_AMAGIC_off|5.004000||Viu
AMT_AMAGIC_on|5.004000||Viu
AMTf_AMAGIC|5.004000||Viu
_aMY_CXT|5.009000|5.009000|p
-aMY_CXT_|5.009000|5.009000|p
aMY_CXT|5.009000|5.009000|p
+aMY_CXT_|5.009000|5.009000|p
anchored_end_shift|5.009005||Viu
anchored_offset|5.005000||Viu
anchored_substr|5.005000||Viu
@@ -4613,15 +4800,44 @@ ANYOF_CNTRL|5.006000||Viu
ANYOF_COMMON_FLAGS|5.019008||Viu
ANYOFD|5.023003||Viu
ANYOF_DIGIT|5.006000||Viu
+ANYOFD_t8|5.035004||Viu
+ANYOFD_t8_p8|5.033003||Viu
+ANYOFD_t8_pb|5.033003||Viu
+ANYOFD_tb|5.035004||Viu
+ANYOFD_tb_p8|5.033003||Viu
+ANYOFD_tb_pb|5.033003||Viu
ANYOF_FLAGS|5.006000||Viu
ANYOF_FLAGS_ALL|5.006000||Viu
-ANYOF_FOLD_SHARP_S|5.007003||Viu
ANYOF_GRAPH|5.006000||Viu
ANYOFH|5.029007||Viu
ANYOFHb|5.031001||Viu
+ANYOFHb_t8|5.035004||Viu
+ANYOFHb_t8_p8|5.033003||Viu
+ANYOFHb_t8_pb|5.033003||Viu
+ANYOFHb_tb|5.035004||Viu
+ANYOFHb_tb_p8|5.033003||Viu
+ANYOFHb_tb_pb|5.033003||Viu
ANYOF_HORIZWS|5.009005||Viu
ANYOFHr|5.031002||Viu
+ANYOFHr_t8|5.035004||Viu
+ANYOFHr_t8_p8|5.033003||Viu
+ANYOFHr_t8_pb|5.033003||Viu
+ANYOFHr_tb|5.035004||Viu
+ANYOFHr_tb_p8|5.033003||Viu
+ANYOFHr_tb_pb|5.033003||Viu
ANYOFHs|5.031007||Viu
+ANYOFHs_t8|5.035004||Viu
+ANYOFHs_t8_p8|5.033003||Viu
+ANYOFHs_t8_pb|5.033003||Viu
+ANYOFHs_tb|5.035004||Viu
+ANYOFHs_tb_p8|5.033003||Viu
+ANYOFHs_tb_pb|5.033003||Viu
+ANYOFH_t8|5.035004||Viu
+ANYOFH_t8_p8|5.033003||Viu
+ANYOFH_t8_pb|5.033003||Viu
+ANYOFH_tb|5.035004||Viu
+ANYOFH_tb_p8|5.033003||Viu
+ANYOFH_tb_pb|5.033003||Viu
ANYOF_INVERT|5.004000||Viu
ANYOFL|5.021008||Viu
ANYOFL_FOLD|5.023007||Viu
@@ -4629,11 +4845,23 @@ ANYOF_LOCALE_FLAGS|5.019005||Viu
ANYOF_LOWER|5.006000||Viu
ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD|5.023007||Viu
ANYOFL_SOME_FOLDS_ONLY_IN_UTF8_LOCALE|5.023007||Viu
+ANYOFL_t8|5.035004||Viu
+ANYOFL_t8_p8|5.033003||Viu
+ANYOFL_t8_pb|5.033003||Viu
+ANYOFL_tb|5.035004||Viu
+ANYOFL_tb_p8|5.033003||Viu
+ANYOFL_tb_pb|5.033003||Viu
ANYOFL_UTF8_LOCALE_REQD|5.023007||Viu
ANYOFM|5.027009||Viu
ANYOF_MATCHES_ALL_ABOVE_BITMAP|5.021004||Viu
ANYOF_MATCHES_POSIXL|5.021004||Viu
ANYOF_MAX|5.006000||Viu
+ANYOFM_t8|5.035004||Viu
+ANYOFM_t8_p8|5.033003||Viu
+ANYOFM_t8_pb|5.033003||Viu
+ANYOFM_tb|5.035004||Viu
+ANYOFM_tb_p8|5.033003||Viu
+ANYOFM_tb_pb|5.033003||Viu
ANYOF_NALNUM|5.006000||Viu
ANYOF_NALNUML|5.004000||Viu
ANYOF_NALPHA|5.006000||Viu
@@ -4657,6 +4885,7 @@ ANYOF_NXDIGIT|5.006000||Viu
ANYOF_ONLY_HAS_BITMAP|5.021004||Viu
ANYOFPOSIXL|5.029004||Viu
ANYOF_POSIXL_AND|5.019005||Viu
+ANYOF_POSIXL_BITMAP|5.035003||Viu
ANYOF_POSIXL_CLEAR|5.019005||Viu
ANYOF_POSIXL_MAX|5.019005||Viu
ANYOF_POSIXL_OR|5.019005||Viu
@@ -4665,6 +4894,12 @@ ANYOF_POSIXL_SETALL|5.019005||Viu
ANYOF_POSIXL_SET_TO_BITMAP|5.029004||Viu
ANYOF_POSIXL_SSC_TEST_ALL_SET|5.019009||Viu
ANYOF_POSIXL_SSC_TEST_ANY_SET|5.019009||Viu
+ANYOFPOSIXL_t8|5.035004||Viu
+ANYOFPOSIXL_t8_p8|5.033003||Viu
+ANYOFPOSIXL_t8_pb|5.033003||Viu
+ANYOFPOSIXL_tb|5.035004||Viu
+ANYOFPOSIXL_tb_p8|5.033003||Viu
+ANYOFPOSIXL_tb_pb|5.033003||Viu
ANYOF_POSIXL_TEST|5.019005||Viu
ANYOF_POSIXL_TEST_ALL_SET|5.019005||Viu
ANYOF_POSIXL_TEST_ANY_SET|5.019005||Viu
@@ -4675,11 +4910,29 @@ ANYOFR|5.031007||Viu
ANYOFRb|5.031007||Viu
ANYOFRbase|5.031007||Viu
ANYOFR_BASE_BITS|5.031007||Viu
+ANYOFRb_t8|5.035004||Viu
+ANYOFRb_t8_p8|5.033003||Viu
+ANYOFRb_t8_pb|5.033003||Viu
+ANYOFRb_tb|5.035004||Viu
+ANYOFRb_tb_p8|5.033003||Viu
+ANYOFRb_tb_pb|5.033003||Viu
ANYOFRdelta|5.031007||Viu
+ANYOFR_t8|5.035004||Viu
+ANYOFR_t8_p8|5.033003||Viu
+ANYOFR_t8_pb|5.033003||Viu
+ANYOFR_tb|5.035004||Viu
+ANYOFR_tb_p8|5.033003||Viu
+ANYOFR_tb_pb|5.033003||Viu
ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER|5.023003||Viu
ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP|5.023006||Viu
ANYOF_SPACE|5.006000||Viu
ANYOF_SPACEL|5.004000||Viu
+ANYOF_t8|5.035004||Viu
+ANYOF_t8_p8|5.033003||Viu
+ANYOF_t8_pb|5.033003||Viu
+ANYOF_tb|5.035004||Viu
+ANYOF_tb_p8|5.033003||Viu
+ANYOF_tb_pb|5.033003||Viu
ANYOF_UNIPROP|5.017006||Viu
ANYOF_UPPER|5.006000||Viu
ANYOF_VERTWS|5.009005||Viu
@@ -4706,9 +4959,9 @@ ARG2L_SET|5.009005||Viu
ARG2_SET|5.005000||Viu
ARG|5.005000||Viu
ARG_LOC|5.005000||Viu
-ARGp|5.031009||Viu
-ARGp_LOC|5.031009||Viu
-ARGp_SET|5.031009||Viu
+ARGp|5.031010||Viu
+ARGp_LOC|5.031010||Viu
+ARGp_SET|5.031010||Viu
ARG__SET|5.005000||Viu
ARG_SET|5.005000||Viu
ARGTARG|5.003007||Viu
@@ -4716,6 +4969,7 @@ ARG_VALUE|5.005000||Viu
argvout_final|5.029006||Viu
ASCIIish|5.005003||Viu
ASCII_MORE_RESTRICT_PAT_MODS|5.013010||Viu
+ASCII_PLATFORM_UTF8_MAXBYTES|5.035004||Viu
ASCII_RESTRICT_PAT_MOD|5.013009||Viu
ASCII_RESTRICT_PAT_MODS|5.013009||Viu
ASCII_TO_NATIVE|5.007001||Viu
@@ -4726,44 +4980,49 @@ assert|5.003007||Viu
__ASSERT_|5.019007|5.008008|p
ASSERT_CURPAD_ACTIVE|5.008001||Viu
ASSERT_CURPAD_LEGAL|5.008001||Viu
+ASSERT_IS_LITERAL|||Viu
+ASSERT_IS_PTR|||Viu
assert_not_glob|5.009004||Viu
+ASSERT_NOT_PTR|5.035004||Viu
assert_not_ROK|5.008001||Viu
assert_uft8_cache_coherent|5.013003||Viu
assignment_type|5.021005||Viu
-ASSUME|5.019006||Viu
-atfork_lock|5.007002|5.007002|nu
-atfork_unlock|5.007002|5.007002|nu
-aTHX_|5.006000|5.003007|p
+ASSUME|5.019006|5.003007|p
+atfork_lock|5.007003|5.007003|nu
+atfork_unlock|5.007003|5.007003|nu
aTHX|5.006000|5.003007|p
+aTHX_|5.006000|5.003007|p
aTHXa|5.017006||Viu
aTHXo|5.006000||Viu
-aTHXR_||5.003007|ponu
aTHXR||5.003007|ponu
+aTHXR_||5.003007|ponu
aTHXx|5.006000||Viu
Atof|5.006000||Viu
Atol|5.006000||Viu
atoll|5.008000||Viu
Atoul|5.006000||Viu
AvALLOC|5.003007||Viu
-AvARRAY|5.003007||Viu
+AvARRAY|5.003007|5.003007|
AvARYLEN|5.003007||Viu
av_arylen_p|||cu
av_clear|5.003007|5.003007|
av_count|5.033001|5.003007|p
-av_create_and_push|5.009005|5.009005|x
-av_create_and_unshift_one|5.009005|5.009005|x
+av_create_and_push|||
+av_create_and_unshift_one|||
av_delete|5.006000|5.006000|
av_exists|5.006000|5.006000|
av_extend|5.003007|5.003007|
av_extend_guts|5.017004||Viu
av_fetch|5.003007|5.003007|
+av_fetch_simple|5.035002||cV
av_fill|5.003007|5.003007|
AvFILL|5.003007|5.003007|
-AvFILLp|5.004005|5.003007|poV
+AvFILLp|5.004005||pcV
av_iter_p|||cu
av_len|5.003007|5.003007|
av_make|5.003007|5.003007|
AvMAX|5.003007||Viu
+av_new_alloc|5.035001|5.035001|
av_nonelem|5.027009||Viu
av_pop|5.003007|5.003007|
av_push|5.003007|5.003007|
@@ -4779,6 +5038,7 @@ AvREIFY_on|5.003007||Viu
AvREIFY_only|5.009003||Viu
av_shift|5.003007|5.003007|
av_store|5.003007|5.003007|
+av_store_simple|5.035002||cV
av_tindex|5.017009|5.003007|p
av_tindex_skip_len_mg|5.025010||Viu
av_top_index|5.017009|5.003007|p
@@ -4807,7 +5067,6 @@ BIN|5.003007|5.003007|Vn
bind|5.005000||Viu
bind_match|5.003007||Viu
BIN_EXP|5.004000|5.004000|Vn
-Bit|5.006000||Viu
BIT_BUCKET|5.003007||Viu
BIT_DIGITS|5.004000||Viu
BITMAP_BYTE|5.009005||Viu
@@ -4826,31 +5085,85 @@ blk_oldsp|5.003007||Viu
blk_old_tmpsfloor|5.023008||Viu
blk_sub|5.003007||Viu
blk_u16|5.011000||Viu
-block_end|5.004000|5.004000|
+block_end|5.021006|5.021006|
block_gimme|5.004000|5.004000|u
-blockhook_register|5.013003|5.013003|x
-block_start|5.004000|5.004000|
+blockhook_register|||x
+block_start|5.021006|5.021006|
BmFLAGS|5.009005||Viu
BmPREVIOUS|5.003007||Viu
BmRARE|5.003007||Viu
BmUSEFUL|5.003007||Viu
BOL|5.003007||Viu
+BOL_t8|5.035004||Viu
+BOL_t8_p8|5.033003||Viu
+BOL_t8_pb|5.033003||Viu
+BOL_tb|5.035004||Viu
+BOL_tb_p8|5.033003||Viu
+BOL_tb_pb|5.033003||Viu
BOM_UTF8|5.025005|5.003007|p
BOM_UTF8_FIRST_BYTE|5.019004||Viu
BOM_UTF8_TAIL|5.019004||Viu
-bool|5.003007||Viu
boolSV|5.004000|5.003007|p
+boot_core_builtin|5.035007||Viu
boot_core_mro|5.009005||Viu
boot_core_PerlIO|5.007002||Viu
boot_core_UNIVERSAL|5.003007||Viu
BOUND|5.003007||Viu
BOUNDA|5.013009||Viu
+BOUNDA_t8|5.035004||Viu
+BOUNDA_t8_p8|5.033003||Viu
+BOUNDA_t8_pb|5.033003||Viu
+BOUNDA_tb|5.035004||Viu
+BOUNDA_tb_p8|5.033003||Viu
+BOUNDA_tb_pb|5.033003||Viu
BOUNDL|5.004000||Viu
+BOUNDL_t8|5.035004||Viu
+BOUNDL_t8_p8|5.033003||Viu
+BOUNDL_t8_pb|5.033003||Viu
+BOUNDL_tb|5.035004||Viu
+BOUNDL_tb_p8|5.033003||Viu
+BOUNDL_tb_pb|5.033003||Viu
+BOUND_t8|5.035004||Viu
+BOUND_t8_p8|5.033003||Viu
+BOUND_t8_pb|5.033003||Viu
+BOUND_tb|5.035004||Viu
+BOUND_tb_p8|5.033003||Viu
+BOUND_tb_pb|5.033003||Viu
BOUNDU|5.013009||Viu
+BOUNDU_t8|5.035004||Viu
+BOUNDU_t8_p8|5.033003||Viu
+BOUNDU_t8_pb|5.033003||Viu
+BOUNDU_tb|5.035004||Viu
+BOUNDU_tb_p8|5.033003||Viu
+BOUNDU_tb_pb|5.033003||Viu
BRANCH|5.003007||Viu
BRANCHJ|5.005000||Viu
+BRANCHJ_t8|5.035004||Viu
+BRANCHJ_t8_p8|5.033003||Viu
+BRANCHJ_t8_pb|5.033003||Viu
+BRANCHJ_tb|5.035004||Viu
+BRANCHJ_tb_p8|5.033003||Viu
+BRANCHJ_tb_pb|5.033003||Viu
BRANCH_next|5.009005||Viu
BRANCH_next_fail|5.009005||Viu
+BRANCH_next_fail_t8|5.035004||Viu
+BRANCH_next_fail_t8_p8|5.033003||Viu
+BRANCH_next_fail_t8_pb|5.033003||Viu
+BRANCH_next_fail_tb|5.035004||Viu
+BRANCH_next_fail_tb_p8|5.033003||Viu
+BRANCH_next_fail_tb_pb|5.033003||Viu
+BRANCH_next_t8|5.035004||Viu
+BRANCH_next_t8_p8|5.033003||Viu
+BRANCH_next_t8_pb|5.033003||Viu
+BRANCH_next_tb|5.035004||Viu
+BRANCH_next_tb_p8|5.033003||Viu
+BRANCH_next_tb_pb|5.033003||Viu
+BRANCH_t8|5.035004||Viu
+BRANCH_t8_p8|5.033003||Viu
+BRANCH_t8_pb|5.033003||Viu
+BRANCH_tb|5.035004||Viu
+BRANCH_tb_p8|5.033003||Viu
+BRANCH_tb_pb|5.033003||Viu
BSD_GETPGRP|5.003007||Viu
BSDish|5.008001||Viu
BSD_SETPGRP|5.003007||Viu
@@ -4859,7 +5172,7 @@ _byte_dump_string|5.025006||cViu
BYTEORDER|5.003007|5.003007|Vn
bytes_cmp_utf8|5.013007|5.013007|
bytes_from_utf8|5.007001|5.007001|x
-bytes_from_utf8_loc|5.027001|5.027001|xnu
+bytes_from_utf8_loc|5.027001||xcVn
bytes_to_utf8|5.006001|5.006001|x
call_argv|5.006000|5.003007|p
call_atexit|5.006000|5.006000|u
@@ -4869,7 +5182,7 @@ caller_cx|5.013005|5.006000|p
CALL_FPTR|5.006000||Viu
call_list|5.004000|5.004000|u
call_method|5.006000|5.003007|p
-calloc|5.007002|5.007002|n
+calloc|5.029005||Vn
call_pv|5.006000|5.003007|p
CALLREGCOMP|5.005000||Viu
CALLREGCOMP_ENG|5.009005||Viu
@@ -5161,11 +5474,11 @@ case_99_SBOX32|5.027001||Viu
case_9_SBOX32|5.027001||Viu
CASE_STD_PMMOD_FLAGS_PARSE_SET|5.009005||Viu
CASTFLAGS|5.003007|5.003007|Vn
-cast_i32|5.006000||cVn
-cast_iv|5.006000||cVn
+cast_i32|5.006000||cVnu
+cast_iv|5.006000||cVnu
CASTNEGFLOAT|5.003007|5.003007|Vn
-cast_ulong|5.003007||cVn
-cast_uv|5.006000||cVn
+cast_ulong|5.003007||cVnu
+cast_uv|5.006000||cVnu
CAT2|5.003007|5.003007|Vn
CATCH_GET|5.004000||Viu
CATCH_SET|5.004000||Viu
@@ -5206,19 +5519,19 @@ ck_entersub_args_core|||iu
ck_entersub_args_list|5.013006|5.013006|
ck_entersub_args_proto|5.013006|5.013006|
ck_entersub_args_proto_or_list|5.013006|5.013006|
-ckWARN2|5.006000|5.006000|p
-ckWARN2_d|5.006000|5.006000|p
-ckWARN3|5.007003|5.007003|p
-ckWARN3_d|5.007003|5.007003|p
-ckWARN4|5.007003|5.007003|p
-ckWARN4_d|5.007003|5.007003|p
+ckWARN2|5.006000|5.003007|p
+ckWARN2_d|5.006000|5.003007|p
+ckWARN3|5.007003|5.003007|p
+ckWARN3_d|5.007003|5.003007|p
+ckWARN4|5.007003|5.003007|p
+ckWARN4_d|5.007003|5.003007|p
ckWARN|5.006000|5.003007|p
ckwarn_common|5.011001||Viu
ckwarn|||cu
-ckWARN_d|5.006000|5.006000|p
+ckWARN_d|5.006000|5.003007|p
ckwarn_d|||cu
-ck_warner|5.011001|5.011001|pv
-ck_warner_d|5.011001|5.011001|pv
+ck_warner|5.011001||pvV
+ck_warner_d|5.011001||pvV
CLANG_DIAG_IGNORE|5.023006||Viu
CLANG_DIAG_IGNORE_DECL|5.027007||Viu
CLANG_DIAG_IGNORE_STMT|5.027007||Viu
@@ -5244,8 +5557,8 @@ CLONEf_CLONE_HOST|5.007002||Viu
CLONEf_COPY_STACKS|5.007001||Viu
CLONEf_JOIN_IN|5.008001||Viu
CLONEf_KEEP_PTR_TABLE|5.007001||Viu
-clone_params_del|5.013002|5.013002|nu
-clone_params_new|5.013002|5.013002|nu
+clone_params_del|||nu
+clone_params_new|||nu
cLOOP|5.003007||Viu
cLOOPo|5.004005||Viu
cLOOPx|5.006000||Viu
@@ -5253,17 +5566,29 @@ CLOSE|5.003007||Viu
close|5.005000||Viu
closedir|5.005000||Viu
closest_cop|5.007002||Viu
+CLOSE_t8|5.035004||Viu
+CLOSE_t8_p8|5.033003||Viu
+CLOSE_t8_pb|5.033003||Viu
+CLOSE_tb|5.035004||Viu
+CLOSE_tb_p8|5.033003||Viu
+CLOSE_tb_pb|5.033003||Viu
CLUMP_2IV|5.006000||Viu
CLUMP_2UV|5.006000||Viu
CLUMP|5.006000||Viu
+CLUMP_t8|5.035004||Viu
+CLUMP_t8_p8|5.033003||Viu
+CLUMP_t8_pb|5.033003||Viu
+CLUMP_tb|5.035004||Viu
+CLUMP_tb_p8|5.033003||Viu
+CLUMP_tb_pb|5.033003||Viu
cMETHOPx|5.021005||Viu
cMETHOPx_meth|5.021005||Viu
cMETHOPx_rclass|5.021007||Viu
-cmpchain_extend|5.031010||Viu
-cmpchain_finish|5.031010||Viu
-cmpchain_start|5.031010||Viu
-cmp_desc|5.031010||Viu
-cmp_locale_desc|5.031010||Viu
+cmpchain_extend|5.031011||Viu
+cmpchain_finish|5.031011||Viu
+cmpchain_start|5.031011||Viu
+cmp_desc|5.031011||Viu
+cmp_locale_desc|5.031011||Viu
cntrl_to_mnemonic|5.021004||cVniu
CODESET|5.027010||Viu
COMBINING_DOT_ABOVE_UTF8|5.029008||Viu
@@ -5271,7 +5596,25 @@ COMBINING_GRAVE_ACCENT_UTF8|5.017004||Viu
COMMIT|5.009005||Viu
COMMIT_next|5.009005||Viu
COMMIT_next_fail|5.009005||Viu
-compile_wildcard|5.031009||Viu
+COMMIT_next_fail_t8|5.035004||Viu
+COMMIT_next_fail_t8_p8|5.033003||Viu
+COMMIT_next_fail_t8_pb|5.033003||Viu
+COMMIT_next_fail_tb|5.035004||Viu
+COMMIT_next_fail_tb_p8|5.033003||Viu
+COMMIT_next_fail_tb_pb|5.033003||Viu
+COMMIT_next_t8|5.035004||Viu
+COMMIT_next_t8_p8|5.033003||Viu
+COMMIT_next_t8_pb|5.033003||Viu
+COMMIT_next_tb|5.035004||Viu
+COMMIT_next_tb_p8|5.033003||Viu
+COMMIT_next_tb_pb|5.033003||Viu
+COMMIT_t8|5.035004||Viu
+COMMIT_t8_p8|5.033003||Viu
+COMMIT_t8_pb|5.033003||Viu
+COMMIT_tb|5.035004||Viu
+COMMIT_tb_p8|5.033003||Viu
+COMMIT_tb_pb|5.033003||Viu
+compile_wildcard|5.031010||Viu
compute_EXACTish|5.017003||Vniu
COND_BROADCAST|5.005000||Viu
COND_DESTROY|5.005000||Viu
@@ -5281,9 +5624,11 @@ COND_WAIT|5.005000||Viu
connect|5.005000||Viu
construct_ahocorasick_from_trie|5.021001||Viu
CONTINUE_PAT_MOD|5.009005||Viu
-cop_fetch_label|5.015001|5.015001|x
+cop_fetch_label|5.031004|5.031004|x
CopFILE|5.006000|5.003007|p
CopFILEAV|5.006000|5.003007|p
+CopFILEAVn|5.035006|5.035006|
+cop_file_avn|5.035006||cVu
CopFILEAVx|5.009003||Viu
CopFILE_free|5.007003||Viu
CopFILEGV|5.006000|5.003007|p
@@ -5298,6 +5643,11 @@ cophh_delete_pv|5.013007|5.013007|x
cophh_delete_pvn|5.013007|5.013007|x
cophh_delete_pvs|5.013007|5.013007|x
cophh_delete_sv|5.013007|5.013007|x
+COPHH_EXISTS|5.033008||Viu
+cophh_exists_pv|5.033008|5.033008|x
+cophh_exists_pvn|5.033008|5.033008|x
+cophh_exists_pvs|5.033008|5.033008|x
+cophh_exists_sv|5.033008|5.033008|x
cophh_fetch_pv|5.013007|5.013007|x
cophh_fetch_pvn|5.013007|5.013007|x
cophh_fetch_pvs|5.013007|5.013007|x
@@ -5312,6 +5662,10 @@ cophh_store_sv|5.013007|5.013007|x
CopHINTHASH_get|5.013007||Viu
CopHINTHASH_set|5.013007||Viu
cop_hints_2hv|5.013007|5.013007|
+cop_hints_exists_pv|5.033008|5.033008|
+cop_hints_exists_pvn|5.033008|5.033008|
+cop_hints_exists_pvs|5.033008|5.033008|
+cop_hints_exists_sv|5.033008|5.033008|
cop_hints_fetch_pv|5.013007|5.013007|
cop_hints_fetch_pvn|5.013007|5.013007|
cop_hints_fetch_pvs|5.013007|5.013007|
@@ -5335,9 +5689,10 @@ CopSTASH_ne|5.006000||Viu
CopSTASHPV|5.006000|5.003007|p
CopSTASHPV_set|5.017001|5.017001|p
CopSTASH_set|5.006000|5.003007|p
-cop_store_label|5.015001|5.015001|x
+cop_store_label|5.031004|5.031004|x
Copy|5.003007|5.003007|
CopyD|5.009002|5.003007|p
+copy_length|||Viu
core_prototype|5.015002||Vi
coresub_op|5.015003||Viu
CowREFCNT|5.017007||Viu
@@ -5359,10 +5714,10 @@ cPVOPx|5.006000||Viu
create_eval_scope|5.009004||xViu
CR_NATIVE|5.019004||Viu
CRNCYSTR|5.027010||Viu
-croak|5.006000|5.003007|v
+croak|5.003007||vV
croak_caller|5.025004||vVniu
-croak_memory_wrap|5.019003|5.003007|pocVnu
-croak_nocontext|5.006000|5.003007|pvn
+croak_memory_wrap|5.019003||pcVnu
+croak_nocontext|5.006000||pvVn
croak_no_mem|5.017006||Vniu
croak_no_modify|5.013003|5.003007|pn
croak_popstack|5.017008||cVniu
@@ -5397,17 +5752,101 @@ cUNOPx|5.006000||Viu
CURLY|5.003007||Viu
CURLY_B_max|5.009005||Viu
CURLY_B_max_fail|5.009005||Viu
+CURLY_B_max_fail_t8|5.035004||Viu
+CURLY_B_max_fail_t8_p8|5.033003||Viu
+CURLY_B_max_fail_t8_pb|5.033003||Viu
+CURLY_B_max_fail_tb|5.035004||Viu
+CURLY_B_max_fail_tb_p8|5.033003||Viu
+CURLY_B_max_fail_tb_pb|5.033003||Viu
+CURLY_B_max_t8|5.035004||Viu
+CURLY_B_max_t8_p8|5.033003||Viu
+CURLY_B_max_t8_pb|5.033003||Viu
+CURLY_B_max_tb|5.035004||Viu
+CURLY_B_max_tb_p8|5.033003||Viu
+CURLY_B_max_tb_pb|5.033003||Viu
CURLY_B_min|5.009005||Viu
CURLY_B_min_fail|5.009005||Viu
+CURLY_B_min_fail_t8|5.035004||Viu
+CURLY_B_min_fail_t8_p8|5.033003||Viu
+CURLY_B_min_fail_t8_pb|5.033003||Viu
+CURLY_B_min_fail_tb|5.035004||Viu
+CURLY_B_min_fail_tb_p8|5.033003||Viu
+CURLY_B_min_fail_tb_pb|5.033003||Viu
+CURLY_B_min_t8|5.035004||Viu
+CURLY_B_min_t8_p8|5.033003||Viu
+CURLY_B_min_t8_pb|5.033003||Viu
+CURLY_B_min_tb|5.035004||Viu
+CURLY_B_min_tb_p8|5.033003||Viu
+CURLY_B_min_tb_pb|5.033003||Viu
CURLYM|5.005000||Viu
CURLYM_A|5.009005||Viu
CURLYM_A_fail|5.009005||Viu
+CURLYM_A_fail_t8|5.035004||Viu
+CURLYM_A_fail_t8_p8|5.033003||Viu
+CURLYM_A_fail_t8_pb|5.033003||Viu
+CURLYM_A_fail_tb|5.035004||Viu
+CURLYM_A_fail_tb_p8|5.033003||Viu
+CURLYM_A_fail_tb_pb|5.033003||Viu
+CURLYM_A_t8|5.035004||Viu
+CURLYM_A_t8_p8|5.033003||Viu
+CURLYM_A_t8_pb|5.033003||Viu
+CURLYM_A_tb|5.035004||Viu
+CURLYM_A_tb_p8|5.033003||Viu
+CURLYM_A_tb_pb|5.033003||Viu
CURLYM_B|5.009005||Viu
CURLYM_B_fail|5.009005||Viu
+CURLYM_B_fail_t8|5.035004||Viu
+CURLYM_B_fail_t8_p8|5.033003||Viu
+CURLYM_B_fail_t8_pb|5.033003||Viu
+CURLYM_B_fail_tb|5.035004||Viu
+CURLYM_B_fail_tb_p8|5.033003||Viu
+CURLYM_B_fail_tb_pb|5.033003||Viu
+CURLYM_B_t8|5.035004||Viu
+CURLYM_B_t8_p8|5.033003||Viu
+CURLYM_B_t8_pb|5.033003||Viu
+CURLYM_B_tb|5.035004||Viu
+CURLYM_B_tb_p8|5.033003||Viu
+CURLYM_B_tb_pb|5.033003||Viu
+CURLYM_t8|5.035004||Viu
+CURLYM_t8_p8|5.033003||Viu
+CURLYM_t8_pb|5.033003||Viu
+CURLYM_tb|5.035004||Viu
+CURLYM_tb_p8|5.033003||Viu
+CURLYM_tb_pb|5.033003||Viu
CURLYN|5.005000||Viu
+CURLYN_t8|5.035004||Viu
+CURLYN_t8_p8|5.033003||Viu
+CURLYN_t8_pb|5.033003||Viu
+CURLYN_tb|5.035004||Viu
+CURLYN_tb_p8|5.033003||Viu
+CURLYN_tb_pb|5.033003||Viu
+CURLY_t8|5.035004||Viu
+CURLY_t8_p8|5.033003||Viu
+CURLY_t8_pb|5.033003||Viu
+CURLY_tb|5.035004||Viu
+CURLY_tb_p8|5.033003||Viu
+CURLY_tb_pb|5.033003||Viu
CURLYX|5.003007||Viu
CURLYX_end|5.009005||Viu
CURLYX_end_fail|5.009005||Viu
+CURLYX_end_fail_t8|5.035004||Viu
+CURLYX_end_fail_t8_p8|5.033003||Viu
+CURLYX_end_fail_t8_pb|5.033003||Viu
+CURLYX_end_fail_tb|5.035004||Viu
+CURLYX_end_fail_tb_p8|5.033003||Viu
+CURLYX_end_fail_tb_pb|5.033003||Viu
+CURLYX_end_t8|5.035004||Viu
+CURLYX_end_t8_p8|5.033003||Viu
+CURLYX_end_t8_pb|5.033003||Viu
+CURLYX_end_tb|5.035004||Viu
+CURLYX_end_tb_p8|5.033003||Viu
+CURLYX_end_tb_pb|5.033003||Viu
+CURLYX_t8|5.035004||Viu
+CURLYX_t8_p8|5.033003||Viu
+CURLYX_t8_pb|5.033003||Viu
+CURLYX_tb|5.035004||Viu
+CURLYX_tb_p8|5.033003||Viu
+CURLYX_tb_pb|5.033003||Viu
CURRENT_FEATURE_BUNDLE|5.015007||Viu
CURRENT_HINTS|5.015007||Viu
current_re_engine|5.017001||cViu
@@ -5415,10 +5854,28 @@ curse|5.013009||Viu
custom_op_desc|5.007003|5.007003|d
custom_op_get_field|5.019006||cViu
custom_op_name|5.007003|5.007003|d
-custom_op_register|5.013007|5.013007|
+custom_op_register|||
CUTGROUP|5.009005||Viu
CUTGROUP_next|5.009005||Viu
CUTGROUP_next_fail|5.009005||Viu
+CUTGROUP_next_fail_t8|5.035004||Viu
+CUTGROUP_next_fail_t8_p8|5.033003||Viu
+CUTGROUP_next_fail_t8_pb|5.033003||Viu
+CUTGROUP_next_fail_tb|5.035004||Viu
+CUTGROUP_next_fail_tb_p8|5.033003||Viu
+CUTGROUP_next_fail_tb_pb|5.033003||Viu
+CUTGROUP_next_t8|5.035004||Viu
+CUTGROUP_next_t8_p8|5.033003||Viu
+CUTGROUP_next_t8_pb|5.033003||Viu
+CUTGROUP_next_tb|5.035004||Viu
+CUTGROUP_next_tb_p8|5.033003||Viu
+CUTGROUP_next_tb_pb|5.033003||Viu
+CUTGROUP_t8|5.035004||Viu
+CUTGROUP_t8_p8|5.033003||Viu
+CUTGROUP_t8_pb|5.033003||Viu
+CUTGROUP_tb|5.035004||Viu
+CUTGROUP_tb_p8|5.033003||Viu
+CUTGROUP_tb_pb|5.033003||Viu
CvANON|5.003007||Viu
CvANONCONST|5.021008||Viu
CvANONCONST_off|5.021008||Viu
@@ -5430,8 +5887,8 @@ CvAUTOLOAD_off|5.015004||Viu
CvAUTOLOAD_on|5.015004||Viu
cv_ckproto|5.009004||Viu
cv_ckproto_len_flags|5.015004||xcViu
-cv_clone|5.003007|5.003007|
CvCLONE|5.003007||Viu
+cv_clone|5.015001|5.015001|
CvCLONED|5.003007||Viu
CvCLONED_off|5.003007||Viu
CvCLONED_on|5.003007||Viu
@@ -5446,7 +5903,7 @@ cv_const_sv_or_av|5.019003||Vniu
CvCVGV_RC|5.013003||Viu
CvCVGV_RC_off|5.013003||Viu
CvCVGV_RC_on|5.013003||Viu
-CvDEPTH|5.003007|5.003007|n
+CvDEPTH|5.003007|5.003007|nu
CvDEPTHunsafe|5.021006||Viu
cv_dump|5.006000||Vi
CvDYNFILE|5.015002||Viu
@@ -5476,6 +5933,7 @@ CVf_METHOD|5.005000||Viu
CVf_NAMED|5.017004||Viu
CVf_NODEBUG|5.004000||Viu
cv_forget_slab|5.017002||Vi
+CVf_SIGNATURE|5.035009||Viu
CVf_SLABBED|5.017002||Viu
CVf_UNIQUE|5.004000||Viu
CVf_WEAKOUTSIDE|5.008001||Viu
@@ -5520,6 +5978,9 @@ CvPROTOLEN|5.015004||Viu
CvROOT|5.003007||Viu
cv_set_call_checker|5.013006|5.013006|
cv_set_call_checker_flags|5.021004|5.021004|
+CvSIGNATURE|5.035009||Viu
+CvSIGNATURE_off|5.035009||Viu
+CvSIGNATURE_on|5.035009||Viu
CvSLABBED|5.017002||Viu
CvSLABBED_off|5.017002||Viu
CvSLABBED_on|5.017002||Viu
@@ -5547,6 +6008,7 @@ CX_CURPAD_SV|5.008001||Vi
CX_DEBUG|5.023008||Viu
cx_dump|5.003007||cVu
cx_dup|5.006000||cVu
+CxEVALBLOCK|5.033007||Viu
CxEVAL_TXT_REFCNTED|5.025007||Viu
CxFOREACH|5.009003||Viu
CxHASARGS|5.010001||Viu
@@ -5563,6 +6025,8 @@ CxOLD_IN_EVAL|5.010001||Viu
CxOLD_OP_TYPE|5.010001||Viu
CxONCE|5.010001||Viu
CxPADLOOP|5.006000||Viu
+CXp_EVALBLOCK|5.033007||Viu
+CXp_FINALLY|5.035008||Viu
CXp_FOR_DEF|5.027008||Viu
CXp_FOR_GV|5.023008||Viu
CXp_FOR_LVREF|5.021005||Viu
@@ -5585,6 +6049,7 @@ cx_popwhen|5.027008||xcVu
CXp_REAL|5.005003||Viu
CXp_SUB_RE|5.018000||Viu
CXp_SUB_RE_FAKE|5.018000||Viu
+CXp_TRY|5.033007||Viu
CXp_TRYBLOCK|5.006000||Viu
cx_pushblock|5.023008||xcVu
cx_pusheval|5.023008||xcVu
@@ -5595,12 +6060,14 @@ cx_pushloop_plain|5.023008||xcVu
cx_pushsub|5.023008||xcVu
CX_PUSHSUB_GET_LVALUE_MASK|5.023008||Viu
CX_PUSHSUBST|5.023008||Viu
+cx_pushtry|5.033007||xcVu
cx_pushwhen|5.027008||xcVu
CxREALEVAL|5.005003||Viu
cxstack|5.005000||Viu
cxstack_ix|5.005000||Viu
cxstack_max|5.005000||Viu
CXt_BLOCK|5.003007||Viu
+CXt_DEFER|5.035004||Viu
CXt_EVAL|5.003007||Viu
CXt_FORMAT|5.006000||Viu
CXt_GIVEN|5.027008||Viu
@@ -5611,6 +6078,7 @@ CXt_LOOP_LIST|5.023008||Viu
CXt_LOOP_PLAIN|5.011000||Viu
CXt_NULL|5.003007||Viu
cx_topblock|5.023008||xcVu
+CxTRY|5.033007||Viu
CxTRYBLOCK|5.006000||Viu
CXt_SUB|5.003007||Viu
CXt_SUBST|5.003007||Viu
@@ -5640,9 +6108,9 @@ DBVARMG_TRACE|5.021005||Viu
DB_VERSION_MAJOR_CFG|5.007002|5.007002|Vn
DB_VERSION_MINOR_CFG|5.007002|5.007002|Vn
DB_VERSION_PATCH_CFG|5.007002|5.007002|Vn
-deb|5.007003|5.007003|vu
+deb|5.003007||vVu
deb_curcv|5.007002||Viu
-deb_nocontext|5.007003|5.007003|vnu
+deb_nocontext|5.006000||vVnu
debop|5.005000|5.005000|u
debprof|5.005000||Viu
debprofdump|5.005000|5.005000|u
@@ -5656,6 +6124,7 @@ DEBUG_A_FLAG|5.009001||Viu
DEBUG_A_TEST|5.009001||Viu
DEBUG_B|5.011000||Viu
DEBUG_B_FLAG|5.011000||Viu
+DEBUG_BOTH_FLAGS_TEST|5.033007||Viu
DEBUG_B_TEST|5.011000||Viu
DEBUG_BUFFERS_r|5.009005||Viu
DEBUG_c|5.003007||Viu
@@ -5701,7 +6170,6 @@ DEBUG_M_FLAG|5.027008||Viu
DEBUG_m_TEST|5.007001||Viu
DEBUG_M_TEST|5.027008||Viu
DEBUG_o|5.003007||Viu
-DEBUG_OFFSETS_r|5.009002||Viu
DEBUG_o_FLAG|5.007001||Viu
DEBUG_OPTIMISE_MORE_r|5.009005||Viu
DEBUG_OPTIMISE_r|5.009002||Viu
@@ -5711,6 +6179,8 @@ DEBUG_p|5.003007||Viu
DEBUG_PARSE_r|5.009004||Viu
DEBUG_P_FLAG|5.007001||Viu
DEBUG_p_FLAG|5.007001||Viu
+DEBUG_POST_STMTS|5.033008||Viu
+DEBUG_PRE_STMTS|5.033008||Viu
DEBUG_P_TEST|5.007001||Viu
DEBUG_p_TEST|5.007001||Viu
DEBUG_Pv|5.013008||Viu
@@ -5731,7 +6201,6 @@ DEBUG_SCOPE|5.008001||Viu
DEBUG_s_FLAG|5.007001||Viu
DEBUG_S_FLAG|5.017002||Viu
DEBUG_STACK_r|5.009005||Viu
-DEBUG_STADTX_HASH|5.027001||Viu
debug_start_match|5.009004||Viu
DEBUG_STATE_r|5.009004||Viu
DEBUG_s_TEST|5.007001||Viu
@@ -5775,18 +6244,25 @@ DEBUG_yv|5.031007||Viu
DEBUG_yv_TEST|5.031007||Viu
DEBUG_ZAPHOD32_HASH|5.027001||Viu
DECLARATION_FOR_LC_NUMERIC_MANIPULATION|5.021010|5.021010|p
-DECLARE_AND_GET_RE_DEBUG_FLAGS|5.031010||Viu
-DECLARE_AND_GET_RE_DEBUG_FLAGS_NON_REGEX|5.031010||Viu
+DECLARE_AND_GET_RE_DEBUG_FLAGS|5.031011||Viu
+DECLARE_AND_GET_RE_DEBUG_FLAGS_NON_REGEX|5.031011||Viu
DEFAULT_INC_EXCLUDES_DOT|5.025011|5.025011|Vn
DEFAULT_PAT_MOD|5.013006||Viu
defelem_target|5.019002||Viu
DEFINE_INC_MACROS|5.027006||Viu
DEFINEP|5.009005||Viu
+DEFINEP_t8|5.035004||Viu
+DEFINEP_t8_p8|5.033003||Viu
+DEFINEP_t8_pb|5.033003||Viu
+DEFINEP_tb|5.035004||Viu
+DEFINEP_tb_p8|5.033003||Viu
+DEFINEP_tb_pb|5.033003||Viu
DEFSV|5.004005|5.003007|p
DEFSV_set|5.010001|5.003007|p
+del_body_by_type|||Viu
delete_eval_scope|5.009004||xViu
delimcpy|5.004000|5.004000|n
-delimcpy_no_escape|5.025005||Vni
+delimcpy_no_escape|5.025005||cVni
DEL_NATIVE|5.017010||Viu
del_sv|5.005000||Viu
DEPENDS_PAT_MOD|5.013009||Viu
@@ -5799,10 +6275,13 @@ destroy_matcher|5.027008||Viu
DETACH|5.005000||Viu
dEXT|5.003007||Viu
dEXTCONST|5.004000||Viu
+DFA_RETURN_FAILURE|5.035004||Viu
+DFA_RETURN_SUCCESS|5.035004||Viu
+DFA_TEASE_APART_FF|5.035004||Viu
D_FMT|5.027010||Viu
DIE|5.003007||Viu
-die|5.006000|5.003007|v
-die_nocontext|5.006000|5.006000|vn
+die|5.003007||vV
+die_nocontext|5.006000||vVn
die_sv|5.013001|5.003007|p
die_unwind|5.013001||Viu
Direntry_t|5.003007|5.003007|Vn
@@ -5823,7 +6302,7 @@ DM_UID|5.003007||Viu
dMULTICALL|5.009003|5.009003|
dMY_CXT|5.009000|5.009000|p
dMY_CXT_INTERP|5.009003||Viu
-dMY_CXT_SV|5.033001|5.033001|p
+dMY_CXT_SV|5.007003|5.003007|pV
dNOOP|5.006000|5.003007|p
do_aexec|5.009003||Viu
do_aexec5|5.006000||Viu
@@ -5882,15 +6361,15 @@ DOSISH|5.003007||Viu
do_smartmatch|5.027008||Viu
do_spawn|5.008000||Vu
do_spawn_nowait|5.008000||Vu
-do_sprintf|5.003007||cVu
+do_sprintf|5.003007|5.003007|u
do_sv_dump|5.006000||cVu
do_sysseek|5.004000||Viu
do_tell|5.003007||Viu
do_trans|5.003007||Viu
do_trans_complex|5.006001||Viu
do_trans_count|5.006001||Viu
-do_trans_count_invmap|5.031007||Viu
-do_trans_invmap|5.031007||Viu
+do_trans_count_invmap|5.031006||Viu
+do_trans_invmap|5.031006||Viu
do_trans_simple|5.006001||Viu
DOUBLE_BIG_ENDIAN|5.021009||Viu
DOUBLE_HAS_INF|5.025003|5.025003|Vn
@@ -5923,8 +6402,8 @@ DOUBLENANBYTES|5.023000|5.023000|Vn
DOUBLESIZE|5.005000|5.005000|Vn
DOUBLE_STYLE_IEEE|5.025007|5.025007|Vn
DOUBLE_VAX_ENDIAN|5.025003||Viu
-do_uniprop_match|5.031010||cVniu
-dounwind|5.003007||cVu
+do_uniprop_match|5.031011||cVniu
+dounwind|5.003007|5.003007|u
DO_UTF8|5.006000|5.006000|
do_vecget|5.006000||Viu
do_vecset|5.003007||Viu
@@ -5949,7 +6428,7 @@ dPOPXiirl_ul_nomg|5.013002||Viu
dPOPXnnrl|5.004000||Viu
dPOPXssrl|5.004000||Viu
DPTR2FPTR|5.009003||Viu
-Drand01|5.006000|5.006000|Vn
+Drand01|5.006000|5.006000|
drand48_init_r|||cniu
drand48_r|||cniu
DRAND48_R_PROTO|5.008000|5.008000|Vn
@@ -6027,6 +6506,12 @@ ENDGRENT_R_PROTO|5.008000|5.008000|Vn
endhostent|5.005000||Viu
ENDHOSTENT_R_PROTO|5.008000|5.008000|Vn
ENDLIKE|5.009005||Viu
+ENDLIKE_t8|5.035004||Viu
+ENDLIKE_t8_p8|5.033003||Viu
+ENDLIKE_t8_pb|5.033003||Viu
+ENDLIKE_tb|5.035004||Viu
+ENDLIKE_tb_p8|5.033003||Viu
+ENDLIKE_tb_pb|5.033003||Viu
endnetent|5.005000||Viu
ENDNETENT_R_PROTO|5.008000|5.008000|Vn
endprotoent|5.005000||Viu
@@ -6036,21 +6521,41 @@ ENDPWENT_R_HAS_FPTR|5.008000||Viu
ENDPWENT_R_PROTO|5.008000|5.008000|Vn
endservent|5.005000||Viu
ENDSERVENT_R_PROTO|5.008000|5.008000|Vn
+END_t8|5.035004||Viu
+END_t8_p8|5.033003||Viu
+END_t8_pb|5.033003||Viu
+END_tb|5.035004||Viu
+END_tb_p8|5.033003||Viu
+END_tb_pb|5.033003||Viu
ENTER|5.003007|5.003007|
ENTER_with_name|5.011002|5.011002|
-ENV_INIT|5.031010||Viu
+ENV_INIT|5.031011||Viu
environ|5.003007||Viu
-ENV_LOCALE_LOCK|5.031010||Viu
-ENV_LOCALE_READ_LOCK|5.031010||Viu
-ENV_LOCALE_READ_UNLOCK|5.031010||Viu
-ENV_LOCALE_UNLOCK|5.031010||Viu
-ENV_LOCK|5.031010||Viu
-ENV_TERM|5.031010||Viu
-ENV_UNLOCK|5.031010||Viu
+ENV_LOCALE_LOCK|5.031011||Viu
+ENV_LOCALE_READ_LOCK|5.031011||Viu
+ENV_LOCALE_READ_UNLOCK|5.031011||Viu
+ENV_LOCALE_UNLOCK|5.031011||Viu
+ENV_LOCK|5.031011||Viu
+ENV_READ_LOCK|5.033005||Viu
+ENV_READ_UNLOCK|5.033005||Viu
+ENV_TERM|5.031011||Viu
+ENV_UNLOCK|5.031011||Viu
EOF|5.003007||Viu
EOF_NONBLOCK|5.003007|5.003007|Vn
EOL|5.003007||Viu
+EOL_t8|5.035004||Viu
+EOL_t8_p8|5.033003||Viu
+EOL_t8_pb|5.033003||Viu
+EOL_tb|5.035004||Viu
+EOL_tb_p8|5.033003||Viu
+EOL_tb_pb|5.033003||Viu
EOS|5.005000||Viu
+EOS_t8|5.035004||Viu
+EOS_t8_p8|5.033003||Viu
+EOS_t8_pb|5.033003||Viu
+EOS_tb|5.035004||Viu
+EOS_tb_p8|5.033003||Viu
+EOS_tb_pb|5.033003||Viu
ERA|5.027010||Viu
ERA_D_FMT|5.027010||Viu
ERA_D_T_FMT|5.027010||Viu
@@ -6060,34 +6565,136 @@ ESC_NATIVE|5.021004||Viu
EVAL|5.005000||Viu
EVAL_B|5.025010||Viu
EVAL_B_fail|5.025010||Viu
+EVAL_B_fail_t8|5.035004||Viu
+EVAL_B_fail_t8_p8|5.033003||Viu
+EVAL_B_fail_t8_pb|5.033003||Viu
+EVAL_B_fail_tb|5.035004||Viu
+EVAL_B_fail_tb_p8|5.033003||Viu
+EVAL_B_fail_tb_pb|5.033003||Viu
+EVAL_B_t8|5.035004||Viu
+EVAL_B_t8_p8|5.033003||Viu
+EVAL_B_t8_pb|5.033003||Viu
+EVAL_B_tb|5.035004||Viu
+EVAL_B_tb_p8|5.033003||Viu
+EVAL_B_tb_pb|5.033003||Viu
EVAL_INEVAL|5.006000||Viu
EVAL_INREQUIRE|5.007001||Viu
EVAL_KEEPERR|5.006000||Viu
EVAL_NULL|5.006000||Viu
EVAL_postponed_AB|5.025010||Viu
EVAL_postponed_AB_fail|5.025010||Viu
+EVAL_postponed_AB_fail_t8|5.035004||Viu
+EVAL_postponed_AB_fail_t8_p8|5.033003||Viu
+EVAL_postponed_AB_fail_t8_pb|5.033003||Viu
+EVAL_postponed_AB_fail_tb|5.035004||Viu
+EVAL_postponed_AB_fail_tb_p8|5.033003||Viu
+EVAL_postponed_AB_fail_tb_pb|5.033003||Viu
+EVAL_postponed_AB_t8|5.035004||Viu
+EVAL_postponed_AB_t8_p8|5.033003||Viu
+EVAL_postponed_AB_t8_pb|5.033003||Viu
+EVAL_postponed_AB_tb|5.035004||Viu
+EVAL_postponed_AB_tb_p8|5.033003||Viu
+EVAL_postponed_AB_tb_pb|5.033003||Viu
eval_pv|5.006000|5.003007|p
EVAL_RE_REPARSING|5.017011||Viu
eval_sv|5.006000|5.003007|p
+EVAL_t8|5.035004||Viu
+EVAL_t8_p8|5.033003||Viu
+EVAL_t8_pb|5.033003||Viu
+EVAL_tb|5.035004||Viu
+EVAL_tb_p8|5.033003||Viu
+EVAL_tb_pb|5.033003||Viu
EVAL_WARNONLY|5.006000||Viu
EXACT|5.004000||Viu
EXACTF|5.004000||Viu
EXACTFAA|5.027009||Viu
EXACTFAA_NO_TRIE|5.027009||Viu
+EXACTFAA_NO_TRIE_t8|5.035004||Viu
+EXACTFAA_NO_TRIE_t8_p8|5.033003||Viu
+EXACTFAA_NO_TRIE_t8_pb|5.033003||Viu
+EXACTFAA_NO_TRIE_tb|5.035004||Viu
+EXACTFAA_NO_TRIE_tb_p8|5.033003||Viu
+EXACTFAA_NO_TRIE_tb_pb|5.033003||Viu
+EXACTFAA_t8|5.035004||Viu
+EXACTFAA_t8_p8|5.033003||Viu
+EXACTFAA_t8_pb|5.033003||Viu
+EXACTFAA_tb|5.035004||Viu
+EXACTFAA_tb_p8|5.033003||Viu
+EXACTFAA_tb_pb|5.033003||Viu
EXACTFL|5.004000||Viu
+EXACTFL_t8|5.035004||Viu
+EXACTFL_t8_p8|5.033003||Viu
+EXACTFL_t8_pb|5.033003||Viu
+EXACTFL_tb|5.035004||Viu
+EXACTFL_tb_p8|5.033003||Viu
+EXACTFL_tb_pb|5.033003||Viu
EXACTFLU8|5.021008||Viu
+EXACTFLU8_t8|5.035004||Viu
+EXACTFLU8_t8_p8|5.033003||Viu
+EXACTFLU8_t8_pb|5.033003||Viu
+EXACTFLU8_tb|5.035004||Viu
+EXACTFLU8_tb_p8|5.033003||Viu
+EXACTFLU8_tb_pb|5.033003||Viu
+EXACTF_t8|5.035004||Viu
+EXACTF_t8_p8|5.033003||Viu
+EXACTF_t8_pb|5.033003||Viu
+EXACTF_tb|5.035004||Viu
+EXACTF_tb_p8|5.033003||Viu
+EXACTF_tb_pb|5.033003||Viu
EXACTFU|5.013008||Viu
EXACTFUP|5.029007||Viu
+EXACTFUP_t8|5.035004||Viu
+EXACTFUP_t8_p8|5.033003||Viu
+EXACTFUP_t8_pb|5.033003||Viu
+EXACTFUP_tb|5.035004||Viu
+EXACTFUP_tb_p8|5.033003||Viu
+EXACTFUP_tb_pb|5.033003||Viu
EXACTFU_REQ8|5.031006||Viu
+EXACTFU_REQ8_t8|5.035004||Viu
+EXACTFU_REQ8_t8_p8|5.033003||Viu
+EXACTFU_REQ8_t8_pb|5.033003||Viu
+EXACTFU_REQ8_tb|5.035004||Viu
+EXACTFU_REQ8_tb_p8|5.033003||Viu
+EXACTFU_REQ8_tb_pb|5.033003||Viu
EXACTFU_S_EDGE|5.029007||Viu
+EXACTFU_S_EDGE_t8|5.035004||Viu
+EXACTFU_S_EDGE_t8_p8|5.033003||Viu
+EXACTFU_S_EDGE_t8_pb|5.033003||Viu
+EXACTFU_S_EDGE_tb|5.035004||Viu
+EXACTFU_S_EDGE_tb_p8|5.033003||Viu
+EXACTFU_S_EDGE_tb_pb|5.033003||Viu
+EXACTFU_t8|5.035004||Viu
+EXACTFU_t8_p8|5.033003||Viu
+EXACTFU_t8_pb|5.033003||Viu
+EXACTFU_tb|5.035004||Viu
+EXACTFU_tb_p8|5.033003||Viu
+EXACTFU_tb_pb|5.033003||Viu
EXACTL|5.021008||Viu
+EXACTL_t8|5.035004||Viu
+EXACTL_t8_p8|5.033003||Viu
+EXACTL_t8_pb|5.033003||Viu
+EXACTL_tb|5.035004||Viu
+EXACTL_tb_p8|5.033003||Viu
+EXACTL_tb_pb|5.033003||Viu
EXACT_REQ8|5.031006||Viu
+EXACT_REQ8_t8|5.035004||Viu
+EXACT_REQ8_t8_p8|5.033003||Viu
+EXACT_REQ8_t8_pb|5.033003||Viu
+EXACT_REQ8_tb|5.035004||Viu
+EXACT_REQ8_tb_p8|5.033003||Viu
+EXACT_REQ8_tb_pb|5.033003||Viu
+EXACT_t8|5.035004||Viu
+EXACT_t8_p8|5.033003||Viu
+EXACT_t8_pb|5.033003||Viu
+EXACT_tb|5.035004||Viu
+EXACT_tb_p8|5.033003||Viu
+EXACT_tb_pb|5.033003||Viu
EXEC_ARGV_CAST|5.007001||Viu
exec_failed|5.009004||Viu
execl|5.005000||Viu
EXEC_PAT_MOD|5.009005||Viu
EXEC_PAT_MODS|5.009005||Viu
-execute_wildcard|5.031009||Viu
+execute_wildcard|5.031010||Viu
execv|5.005000||Viu
execvp|5.005000||Viu
exit|5.005000||Viu
@@ -6102,7 +6709,6 @@ EXTEND_SKIP|5.027002||Viu
EXTERN_C|5.005000|5.003007|pV
EXT_MGVTBL|5.009004||Viu
EXT_PAT_MODS|5.009005||Viu
-EXTPERLIO|5.009003||Viu
EXTRA_SIZE|5.005000||Viu
EXTRA_STEP_2ARGS|5.005000||Viu
F0convert|5.009003||Vniu
@@ -6130,6 +6736,8 @@ fdopen|5.003007||Viu
FD_SET|5.008000||Viu
fd_set|5.008000||Viu
FD_ZERO|5.008000||Viu
+FEATURE_BAREWORD_FILEHANDLES_BIT|5.033006||Viu
+FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED|5.033006||Viu
FEATURE_BITWISE_BIT|5.031006||Viu
FEATURE_BITWISE_IS_ENABLED|5.021009||Viu
FEATURE_BUNDLE_510|5.015007||Viu
@@ -6137,17 +6745,22 @@ FEATURE_BUNDLE_511|5.015007||Viu
FEATURE_BUNDLE_515|5.015007||Viu
FEATURE_BUNDLE_523|5.023001||Viu
FEATURE_BUNDLE_527|5.027008||Viu
+FEATURE_BUNDLE_535|5.035003||Viu
FEATURE_BUNDLE_CUSTOM|5.015007||Viu
FEATURE_BUNDLE_DEFAULT|5.015007||Viu
+FEATURE_DEFER_BIT|5.035004||Viu
+FEATURE_DEFER_IS_ENABLED|5.035004||Viu
FEATURE_EVALBYTES_BIT|5.031006||Viu
FEATURE_EVALBYTES_IS_ENABLED|5.015007||Viu
FEATURE_FC_BIT|5.031006||Viu
FEATURE_FC_IS_ENABLED|5.015008||Viu
-FEATURE_INDIRECT_BIT|5.031009||Viu
-FEATURE_INDIRECT_IS_ENABLED|5.031009||Viu
+FEATURE_INDIRECT_BIT|5.031010||Viu
+FEATURE_INDIRECT_IS_ENABLED|5.031010||Viu
FEATURE_ISA_BIT|5.031007||Viu
FEATURE_ISA_IS_ENABLED|5.031007||Viu
FEATURE_IS_ENABLED_MASK|5.031006||Viu
+FEATURE_MULTIDIMENSIONAL_BIT|5.033001||Viu
+FEATURE_MULTIDIMENSIONAL_IS_ENABLED|5.033001||Viu
FEATURE_MYREF_BIT|5.031006||Viu
FEATURE_MYREF_IS_ENABLED|5.025003||Viu
FEATURE_POSTDEREF_QQ_BIT|5.031006||Viu
@@ -6164,6 +6777,8 @@ FEATURE___SUB___BIT|5.031006||Viu
FEATURE___SUB___IS_ENABLED|5.015007||Viu
FEATURE_SWITCH_BIT|5.031006||Viu
FEATURE_SWITCH_IS_ENABLED|5.015007||Viu
+FEATURE_TRY_BIT|5.033007||Viu
+FEATURE_TRY_IS_ENABLED|5.033007||Viu
FEATURE_UNICODE_BIT|5.031006||Viu
FEATURE_UNICODE_IS_ENABLED|5.015007||Viu
FEATURE_UNIEVAL_BIT|5.031006||Viu
@@ -6197,15 +6812,15 @@ fgetc|5.003007||Viu
fgetpos|5.003007||Viu
fgets|5.003007||Viu
FILE|5.003007||Viu
-FILE_base|5.003007|5.003007|Vn
-FILE_bufsiz|5.003007|5.003007|Vn
-FILE_cnt|5.003007|5.003007|Vn
+FILE_base|5.007000|5.007000|
+FILE_bufsiz|5.007000|5.007000|
+FILE_cnt|5.007000|5.007000|
fileno|5.003007||Viu
-FILE_ptr|5.003007|5.003007|Vn
+FILE_ptr|5.007000|5.007000|
FILL_ADVANCE_NODE_2L_ARG|5.021005||Viu
FILL_ADVANCE_NODE|5.005000||Viu
FILL_ADVANCE_NODE_ARG|5.005000||Viu
-FILL_ADVANCE_NODE_ARGp|5.031009||Viu
+FILL_ADVANCE_NODE_ARGp|5.031010||Viu
FILL_NODE|5.029004||Viu
filter_add|5.003007|5.003007|
FILTER_DATA|5.003007||Viu
@@ -6226,7 +6841,7 @@ find_hash_subscript|5.009004||Viu
find_in_my_stash|5.006001||Viu
find_lexical_cv|5.019001||Viu
find_next_masked|5.027009||Vniu
-find_runcv|5.008001|5.008001|
+find_runcv|5.009005|5.009005|
FIND_RUNCV_level_eq|5.017002||Viu
FIND_RUNCV_padid_eq|5.017004||Viu
find_runcv_where|5.017002||Viu
@@ -6238,6 +6853,9 @@ find_span_end_mask|5.027009||Vniu
find_uninit_var|5.009002||xVi
FIRST_NON_ASCII_DECIMAL_DIGIT|5.027007||Viu
first_symbol|5.009003||Vniu
+FIT_ARENA0|||Viu
+FIT_ARENAn|||Viu
+FIT_ARENA|||Viu
FITS_IN_8_BITS|5.013005||Viu
fixup_errno_string|5.019007||Viu
FLAGS|5.013006||Viu
@@ -6256,14 +6874,14 @@ foldEQ|5.013002|5.013002|n
foldEQ_latin1|5.013008||cVnu
foldEQ_latin1_s2_folded|5.029007||Vniu
foldEQ_locale|5.013002|5.013002|n
-FOLDEQ_LOCALE|5.019009||Viu
-FOLDEQ_S1_ALREADY_FOLDED|5.015004||Viu
-FOLDEQ_S1_FOLDS_SANE|5.021008||Viu
-FOLDEQ_S2_ALREADY_FOLDED|5.015004||Viu
-FOLDEQ_S2_FOLDS_SANE|5.021008||Viu
+FOLDEQ_LOCALE|5.019009||cV
+FOLDEQ_S1_ALREADY_FOLDED|5.015004||cV
+FOLDEQ_S1_FOLDS_SANE|5.021008||cV
+FOLDEQ_S2_ALREADY_FOLDED|5.015004||cV
+FOLDEQ_S2_FOLDS_SANE|5.021008||cV
foldEQ_utf8|5.013002|5.007003|p
foldEQ_utf8_flags|5.013010||cVu
-FOLDEQ_UTF8_NOMIX_ASCII|5.013010||Viu
+FOLDEQ_UTF8_NOMIX_ASCII|5.013010||cV
FOLD_FLAGS_FULL|5.015006||Viu
FOLD_FLAGS_LOCALE|5.015006||Viu
FOLD_FLAGS_NOMIX_ASCII|5.017000||Viu
@@ -6278,23 +6896,23 @@ force_strict_version|5.011004||Viu
force_version|5.005000||Viu
force_word|5.003007||Viu
forget_pmop|5.017007||Viu
-form|5.006000|5.004000|v
+form|5.004000||vV
form_alien_digit_msg|5.031009||cViu
form_cp_too_large_msg|5.031009||cViu
-form_nocontext|5.006000|5.006000|vn
+form_nocontext|5.006000||vVn
fp_dup|5.007003|5.007003|u
Fpos_t|5.003007|5.003007|Vn
F_pow_amg|5.004000||Viu
FP_PINF|5.021004||Viu
FP_QNAN|5.021004||Viu
fprintf|5.003007||Viu
-fprintf_nocontext|5.006000|5.006000|vdnu
+fprintf_nocontext|5.006000||vdVnu
FPTR2DPTR|5.009003||Viu
fputc|5.003007||Viu
fputs|5.003007||Viu
fread|5.003007||Viu
free|5.003007||Viu
-free_and_set_cop_warnings|5.031010||Viu
+free_and_set_cop_warnings|5.031011||Viu
free_c_backtrace|5.021001||Vi
FreeOp|5.008001||Viu
Free_t|5.003007|5.003007|Vn
@@ -6320,7 +6938,7 @@ FUNCTION|5.009003||Viu
funlockfile|5.003007||Viu
fwrite1|5.003007||Viu
fwrite|5.003007||Viu
-G_ARRAY|5.003007|5.003007|
+G_ARRAY|5.003007||Viu
GCB_BREAKABLE|5.025003||Viu
GCB_EX_then_EM|5.025003||Viu
GCB_Maybe_Emoji_NonBreak|5.029002||Viu
@@ -6333,8 +6951,8 @@ GCC_DIAG_PRAGMA|5.021001||Viu
GCC_DIAG_RESTORE|5.019007||Viu
GCC_DIAG_RESTORE_DECL|5.027007||Viu
GCC_DIAG_RESTORE_STMT|5.027007||Viu
-Gconvert|5.003007|5.003007|Vn
-GDBMNDBM_H_USES_PROTOTYPES|5.031006|5.031006|Vn
+Gconvert|5.003007|5.003007|
+GDBMNDBM_H_USES_PROTOTYPES|5.032001|5.032001|Vn
G_DISCARD|5.003007|5.003007|
gen_constant_list|5.003007||Viu
get_and_check_backslash_N_name|5.017006||cViu
@@ -6355,10 +6973,13 @@ get_cvs|5.011000|5.003007|p
getcwd_sv|5.007002|5.007002|
get_db_sub|||iu
get_debug_opts|5.008001||Viu
-get_deprecated_property_msg|5.031010||cVniu
+get_deprecated_property_msg|5.031011||cVniu
getegid|5.005000||Viu
getenv|5.005000||Viu
getenv_len|5.006000||Viu
+GETENV_LOCK|5.033005||Viu
+GETENV_PRESERVES_OTHER_THREAD|5.033005|5.033005|Vn
+GETENV_UNLOCK|5.033005||Viu
geteuid|5.005000||Viu
getgid|5.005000||Viu
getgrent|5.009000||Viu
@@ -6421,8 +7042,8 @@ get_op_names|5.005000|5.005000|u
getpeername|5.005000||Viu
getpid|5.006000||Viu
get_ppaddr|5.006000|5.006000|u
-get_prop_definition|5.031010||cViu
-get_prop_values|5.031010||cVniu
+get_prop_definition|5.031011||cViu
+get_prop_values|5.031011||cVniu
getprotobyname|5.005000||Viu
GETPROTOBYNAME_R_HAS_BUFFER|5.008000||Viu
GETPROTOBYNAME_R_HAS_PTR|5.008000||Viu
@@ -6447,9 +7068,10 @@ GETPWNAM_R_PROTO|5.008000|5.008000|Vn
getpwuid|5.009000||Viu
GETPWUID_R_HAS_PTR|5.008000||Viu
GETPWUID_R_PROTO|5.008000|5.008000|Vn
+get_quantifier_value|5.033006||Viu
get_re_arg|||xciu
-get_re_gclass_nonbitmap_data|5.031010||Viu
-get_regclass_nonbitmap_data|5.031010||Viu
+get_re_gclass_nonbitmap_data|5.031011||Viu
+get_regclass_nonbitmap_data|5.031011||Viu
get_regex_charset_name|5.031004||Vniu
getservbyname|5.005000||Viu
GETSERVBYNAME_R_HAS_BUFFER|5.008000||Viu
@@ -6466,7 +7088,7 @@ GETSERVENT_R_PROTO|5.008000|5.008000|Vn
getsockname|5.005000||Viu
getsockopt|5.005000||Viu
getspnam|5.009000||Viu
-GETSPNAM_R_HAS_BUFFER|5.031010||Viu
+GETSPNAM_R_HAS_BUFFER|5.031011||Viu
GETSPNAM_R_HAS_PTR|5.008000||Viu
GETSPNAM_R_PROTO|5.008000|5.008000|Vn
get_sv|5.006000|5.003007|p
@@ -6486,21 +7108,34 @@ GIMME|5.003007|5.003007|d
GIMME_V|5.004000|5.004000|
gimme_V|5.031005||xcVu
G_KEEPERR|5.003007|5.003007|
+G_LIST|5.035001|5.003007|
glob_2number|5.009004||Viu
GLOBAL_PAT_MOD|5.009005||Viu
glob_assign_glob|5.009004||Viu
G_METHOD|5.006001|5.003007|p
G_METHOD_NAMED|5.019002|5.019002|
-gmtime|5.031010||Viu
+gmtime|5.031011||Viu
GMTIME_MAX|5.010001|5.010001|Vn
GMTIME_MIN|5.010001|5.010001|Vn
GMTIME_R_PROTO|5.008000|5.008000|Vn
G_NOARGS|5.003007|5.003007|
G_NODEBUG|5.004005||Viu
GOSUB|5.009005||Viu
+GOSUB_t8|5.035004||Viu
+GOSUB_t8_p8|5.033003||Viu
+GOSUB_t8_pb|5.033003||Viu
+GOSUB_tb|5.035004||Viu
+GOSUB_tb_p8|5.033003||Viu
+GOSUB_tb_pb|5.033003||Viu
gp_dup|5.007003|5.007003|u
gp_free|5.003007|5.003007|u
GPOS|5.004000||Viu
+GPOS_t8|5.035004||Viu
+GPOS_t8_p8|5.033003||Viu
+GPOS_t8_pb|5.033003||Viu
+GPOS_tb|5.035004||Viu
+GPOS_tb_p8|5.033003||Viu
+GPOS_tb_pb|5.033003||Viu
gp_ref|5.003007|5.003007|u
GREEK_CAPITAL_LETTER_MU|5.013011||Viu
GREEK_SMALL_LETTER_MU|5.013008||Viu
@@ -6523,6 +7158,18 @@ grok_oct|5.007003|5.003007|p
group_end|5.007003||Viu
GROUPP|5.005000||Viu
GROUPPN|5.031001||Viu
+GROUPPN_t8|5.035004||Viu
+GROUPPN_t8_p8|5.033003||Viu
+GROUPPN_t8_pb|5.033003||Viu
+GROUPPN_tb|5.035004||Viu
+GROUPPN_tb_p8|5.033003||Viu
+GROUPPN_tb_pb|5.033003||Viu
+GROUPP_t8|5.035004||Viu
+GROUPP_t8_p8|5.033003||Viu
+GROUPP_t8_pb|5.033003||Viu
+GROUPP_tb|5.035004||Viu
+GROUPP_tb_p8|5.033003||Viu
+GROUPP_tb_pb|5.033003||Viu
Groups_t|5.003007|5.003007|Vn
GRPASSWD|5.005000|5.005000|Vn
G_SCALAR|5.003007|5.003007|
@@ -6540,9 +7187,9 @@ GvASSUMECV_on|5.003007||Viu
gv_autoload4|5.004000|5.004000|
GV_AUTOLOAD|5.011000||Viu
GV_AUTOLOAD_ISMETHOD|5.015004||Viu
-gv_autoload_pv|5.015004|5.015004|
-gv_autoload_pvn|5.015004|5.015004|
-gv_autoload_sv|5.015004|5.015004|
+gv_autoload_pv|5.015004|5.015004|u
+gv_autoload_pvn|5.015004|5.015004|u
+gv_autoload_sv|5.015004|5.015004|u
GvAV|5.003007|5.003007|
gv_AVadd|5.003007|5.003007|u
GvAVn|5.003007||Viu
@@ -6601,6 +7248,7 @@ GVf_IMPORTED_SV|5.003007||Viu
GVf_INTRO|5.003007||Viu
GvFLAGS|5.003007||Viu
GVf_MULTI|5.003007||Viu
+GVF_NOADD|5.035006||Viu
GvFORM|5.003007||Viu
gv_fullname3|5.003007|5.003007|u
gv_fullname4|5.006001|5.006001|u
@@ -6663,6 +7311,7 @@ GV_NOEXPAND|5.009003|5.009003|
GV_NOINIT|5.004005|5.004005|
GV_NO_SVGMAGIC|5.015003|5.015003|
GV_NOTQUAL|5.009004|5.009004|
+GV_NOUNIVERSAL|5.033009||Viu
G_VOID|5.004000|5.004000|
gv_override|5.019006||Viu
GvREFCNT|5.003007||Viu
@@ -6688,8 +7337,9 @@ G_WARN_OFF|5.006000||Viu
G_WARN_ON|5.006000||Viu
G_WARN_ONCE|5.006000||Viu
G_WRITING_TO_STDERR|5.013009||Viu
+HADNV|||Viu
handle_named_backref|5.023008||Viu
-handle_names_wildcard|5.031010||Viu
+handle_names_wildcard|5.031011||Viu
handle_possible_posix|5.023008||Viu
handle_regex_sets|5.017009||Viu
handle_user_defined_property|5.029008||Viu
@@ -6697,6 +7347,7 @@ HAS_ACCEPT4|5.027008|5.027008|Vn
HAS_ACCESS|5.006000|5.006000|Vn
HAS_ACOSH|5.021004|5.021004|Vn
HAS_ALARM|5.003007|5.003007|Vn
+HASARENA|||Viu
HAS_ASCTIME_R|5.010000|5.010000|Vn
HAS_ASINH|5.021006|5.021006|Vn
HAS_ATANH|5.021006|5.021006|Vn
@@ -6711,9 +7362,9 @@ HASATTRIBUTE_PURE|5.009003|5.009003|Vn
HASATTRIBUTE_UNUSED|5.009003|5.009003|Vn
HASATTRIBUTE_WARN_UNUSED_RESULT|5.009003|5.009003|Vn
HAS_BACKTRACE|5.021001|5.021001|Vn
-HAS_BOOL|5.003007||Viu
HAS_BUILTIN_CHOOSE_EXPR|5.009004|5.009004|Vn
HAS_BUILTIN_EXPECT|5.010001|5.010001|Vn
+HAS_BUILTIN_UNREACHABLE|5.033003||Viu
HAS_C99|5.021004||Viu
HAS_C99_VARIADIC_MACROS|5.009004|5.009004|Vn
HAS_CBRT|5.021006|5.021006|Vn
@@ -6730,7 +7381,7 @@ HAS_CSH|5.005000|5.005000|Vn
HAS_CTERMID|5.009005|5.009005|Vn
HAS_CTIME_R|5.010000|5.010000|Vn
HAS_CUSERID|5.003007|5.003007|Vn
-HAS_DBMINIT_PROTO|5.031006|5.031006|Vn
+HAS_DBMINIT_PROTO|5.032001|5.032001|Vn
HAS_DIFFTIME|5.003007|5.003007|Vn
HAS_DIRFD|5.007003|5.007003|Vn
HAS_DLADDR|5.021001|5.021001|Vn
@@ -6751,6 +7402,7 @@ HAS_ERF|5.021006|5.021006|Vn
HAS_ERFC|5.021006|5.021006|Vn
HAS_EXP2|5.021006|5.021006|Vn
HAS_EXPM1|5.021006|5.021006|Vn
+HAS_EXTRA_LONG_UTF8|5.035004||Viu
HAS_FAST_STDIO|5.008001|5.008001|Vn
HAS_FCHDIR|5.007002|5.007002|Vn
HAS_FCHMOD|5.003007|5.003007|Vn
@@ -6760,6 +7412,8 @@ HAS_FCNTL|5.003007|5.003007|Vn
HAS_FDIM|5.021006|5.021006|Vn
HAS_FD_SET|5.006000|5.006000|Vn
HAS_FEGETROUND|5.021004|5.021004|Vn
+HAS_FFS|5.035001|5.035001|Vn
+HAS_FFSL|5.035001|5.035001|Vn
HAS_FGETPOS|5.003007|5.003007|Vn
HAS_FINITE|5.007003|5.007003|Vn
HAS_FINITEL|5.007003|5.007003|Vn
@@ -6922,6 +7576,10 @@ HAS_NEXTAFTER|5.021006|5.021006|Vn
HAS_NEXTTOWARD|5.021006|5.021006|Vn
HAS_NICE|5.003007|5.003007|Vn
HAS_NL_LANGINFO|5.007002|5.007002|Vn
+HAS_NL_LANGINFO_L|5.035001|5.035001|Vn
+HAS_NON_INT_BITFIELDS|5.035001|5.035001|Vn
+HAS_NONLATIN1_FOLD_CLOSURE|5.033005||Viu
+HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE|5.033005||Viu
HAS_NTOHL|5.003007|5.003007|Vn
HAS_NTOHS|5.003007|5.003007|Vn
HAS_OFF64_T|5.010000|5.010000|Vn
@@ -7008,7 +7666,7 @@ HAS_SIN6_SCOPE_ID|5.013009|5.013009|Vn
HAS_SKIP_LOCALE_INIT|5.019002||Viu
HAS_SNPRINTF|5.009003|5.009003|Vn
HAS_SOCKADDR_IN6|5.015008|5.015008|Vn
-HAS_SOCKADDR_STORAGE|5.032000|5.032000|Vn
+HAS_SOCKADDR_STORAGE|5.032001|5.032001|Vn
HAS_SOCKATMARK|5.007001|5.007001|Vn
HAS_SOCKATMARK_PROTO|5.007002|5.007002|Vn
HAS_SOCKET|5.003007|5.003007|Vn
@@ -7038,6 +7696,7 @@ HAS_STRUCT_MSGHDR|5.007001|5.007001|Vn
HAS_STRUCT_STATFS|5.023005|5.023005|Vn
HAS_STRUCT_STATFS_F_FLAGS|5.023005|5.023005|Vn
HAS_STRXFRM|5.003007|5.003007|Vn
+HAS_STRXFRM_L|5.035001|5.035001|Vn
HAS_SYMLINK|5.003007|5.003007|Vn
HAS_SYSCALL|5.003007|5.003007|Vn
HAS_SYSCALL_PROTO|5.007002|5.007002|Vn
@@ -7085,6 +7744,7 @@ HAS_WCSTOMBS|5.003007|5.003007|Vn
HAS_WCSXFRM|5.021001|5.021001|Vn
HAS_WCTOMB|5.003007|5.003007|Vn
HAS_WRITEV|5.007001|5.007001|Vn
+HE_ARENA_ROOT_IX|5.035005||Viu
he_dup|5.007003|5.007003|u
HEf_SVKEY|5.003007|5.003007|p
HeHASH|5.003007|5.003007|
@@ -7116,12 +7776,12 @@ HePV|5.004000|5.004000|
HeSVKEY|5.003007|5.003007|
HeSVKEY_force|5.003007|5.003007|
HeSVKEY_set|5.004000|5.004000|
-HE_SVSLOT|5.009003||Viu
HeUTF8|5.010001|5.008000|p
HeVAL|5.003007|5.003007|
hfree_next_entry|||iu
HIGHEST_ANYOF_HRx_BYTE|5.031002||Viu
-HIGHEST_CASE_CHANGING_CP_FOR_USE_ONLY_BY_UTF8_DOT_C|5.023006||Viu
+HIGHEST_CASE_CHANGING_CP|5.033005||Viu
+HINT_ALL_STRICT|5.033002||Viu
HINT_BLOCK_SCOPE|5.003007||Viu
HINT_BYTES|5.007002||Viu
HINT_EXPLICIT_STRICT_REFS|5.016000||Viu
@@ -7145,8 +7805,7 @@ HINT_NO_AMAGIC|5.010001||Viu
HINT_RE_EVAL|5.005000||Viu
HINT_RE_FLAGS|5.013007||Viu
HINT_RE_TAINT|5.004005||Viu
-HINT_SORT_STABLE|5.007003||Viu
-HINT_SORT_UNSTABLE|5.027004||Viu
+HINTS_DEFAULT|5.033002||Viu
HINTS_REFCNT_INIT|5.009004||Viu
HINTS_REFCNT_LOCK|5.009004||Viu
HINTS_REFCNT_TERM|5.009004||Viu
@@ -7183,19 +7842,20 @@ HvAMAGIC|5.017000||Viu
HvAMAGIC_off|5.017000||Viu
HvAMAGIC_on|5.017000||Viu
HvARRAY|5.003007||Viu
-hv_assert|||c
+hv_assert|||
HvAUX|5.009003||Viu
+hv_auxalloc|||iu
+HVAUX_ARENA_ROOT_IX|5.035005||Viu
HvAUXf_NO_DEREF|5.019010||Viu
HvAUXf_SCAN_STASH|5.019010||Viu
hv_auxinit|5.009003||Viu
-hv_auxinit_internal|5.019010||Vniu
hv_backreferences_p|||xiu
hv_bucket_ratio|5.025003|5.025003|x
hv_clear|5.003007|5.003007|
hv_clear_placeholders|5.009001|5.009001|
hv_common|5.010000||cVu
hv_common_key_len|5.010000||cVu
-hv_copy_hints_hv|5.009004|5.009004|
+hv_copy_hints_hv|5.013005|5.013005|
hv_delayfree_ent|5.004000|5.004000|u
hv_delete|5.003007|5.003007|
HV_DELETE|5.009005||Viu
@@ -7206,9 +7866,9 @@ hv_deletes|5.025006||Viu
HV_DISABLE_UVAR_XKEY|5.010000||Viu
HvEITER|5.003007||Viu
HvEITER_get|5.009003||Viu
-hv_eiter_p|5.009003|5.009003|u
-hv_eiter_set|5.009003|5.009003|u
+hv_eiter_p|||u
HvEITER_set|5.009003||Viu
+hv_eiter_set|||u
HvENAME|5.013007|5.013007|
hv_ename_add|5.013007||Vi
hv_ename_delete|5.013007||Vi
@@ -7220,6 +7880,7 @@ HvENAMELEN_get|5.013007||Viu
HvENAMEUTF8|5.015004|5.015004|
hv_exists|5.003007|5.003007|
hv_exists_ent|5.003007|5.003007|
+hv_existshek|5.035003||Viu
hv_existss|5.025006||Viu
hv_fetch|5.003007|5.003007|
HV_FETCH_EMPTY_HE|5.013007||Viu
@@ -7230,8 +7891,8 @@ HV_FETCH_ISSTORE|5.009005||Viu
HV_FETCH_JUST_SV|5.009005||Viu
HV_FETCH_LVALUE|5.009005||Viu
hv_fetchs|5.009003|5.003007|p
+hv_fill|||
HvFILL|5.003007|5.003007|
-hv_fill|5.013002|5.013002|
hv_free_ent|5.004000|5.004000|u
hv_free_ent_ret|5.015000||Viu
hv_free_entries|5.027002||Viu
@@ -7264,9 +7925,9 @@ HvLAZYDEL_on|5.003007||Viu
hv_magic|5.003007|5.003007|
hv_magic_check|5.006000||Vniu
HvMAX|5.003007||Viu
-HvMROMETA|5.009005||Viu
+HvMROMETA|5.010001|5.010001|
HvNAME|5.003007|5.003007|
-HvNAME_get|5.009003|5.003007|pocV
+HvNAME_get|5.009003||pcV
HvNAME_HEK|5.009003||Viu
HvNAME_HEK_NN|5.013007||Viu
HvNAMELEN|5.015004|5.015004|
@@ -7277,11 +7938,11 @@ hv_name_sets|5.025006||Viu
HvNAMEUTF8|5.015004|5.015004|
hv_notallowed|5.008000||Viu
HvPLACEHOLDERS|5.007003||Viu
-hv_placeholders_get|5.009003|5.009003|u
HvPLACEHOLDERS_get|5.009003||Viu
+hv_placeholders_get|||u
hv_placeholders_p|||ciu
-hv_placeholders_set|5.009003|5.009003|u
HvPLACEHOLDERS_set|5.009003||Viu
+hv_placeholders_set|||u
hv_pushkv|5.027003||Viu
HvRAND_get|5.017011||Viu
hv_rand_set|5.018000|5.018000|u
@@ -7294,9 +7955,9 @@ HVrhek_undef|5.009004||Viu
HVrhek_UV|5.009004||Viu
HvRITER|5.003007||Viu
HvRITER_get|5.009003||Viu
-hv_riter_p|5.009003|5.009003|u
-hv_riter_set|5.009003|5.009003|u
+hv_riter_p|||u
HvRITER_set|5.009003||Viu
+hv_riter_set|||u
hv_scalar|5.009001|5.009001|
HvSHAREKEYS|5.003007||Viu
HvSHAREKEYS_off|5.003007||Viu
@@ -7315,7 +7976,7 @@ I16_MAX|5.003007||Viu
I16_MIN|5.003007||Viu
I16SIZE|5.006000|5.006000|Vn
I16TYPE|5.006000|5.006000|Vn
-I_32|5.003007||Viu
+I_32|5.006000|5.003007|
I32_MAX|5.003007||Viu
I32_MAX_P1|5.007002||Viu
I32_MIN|5.003007||Viu
@@ -7332,7 +7993,7 @@ ibcmp|5.003007|5.003007|
ibcmp_locale|5.004000|5.004000|
ibcmp_utf8|5.007003|5.007003|
I_CRYPT|5.008000|5.008000|Vn
-I_DBM|5.031006|5.031006|Vn
+I_DBM|5.032001|5.032001|Vn
I_DIRENT|5.003007|5.003007|Vn
I_DLFCN|5.003007|5.003007|Vn
I_EXECINFO|5.021001|5.021001|Vn
@@ -7340,7 +8001,31 @@ I_FENV|5.021004|5.021004|Vn
IFMATCH|5.003007||Viu
IFMATCH_A|5.009005||Viu
IFMATCH_A_fail|5.009005||Viu
+IFMATCH_A_fail_t8|5.035004||Viu
+IFMATCH_A_fail_t8_p8|5.033003||Viu
+IFMATCH_A_fail_t8_pb|5.033003||Viu
+IFMATCH_A_fail_tb|5.035004||Viu
+IFMATCH_A_fail_tb_p8|5.033003||Viu
+IFMATCH_A_fail_tb_pb|5.033003||Viu
+IFMATCH_A_t8|5.035004||Viu
+IFMATCH_A_t8_p8|5.033003||Viu
+IFMATCH_A_t8_pb|5.033003||Viu
+IFMATCH_A_tb|5.035004||Viu
+IFMATCH_A_tb_p8|5.033003||Viu
+IFMATCH_A_tb_pb|5.033003||Viu
+IFMATCH_t8|5.035004||Viu
+IFMATCH_t8_p8|5.033003||Viu
+IFMATCH_t8_pb|5.033003||Viu
+IFMATCH_tb|5.035004||Viu
+IFMATCH_tb_p8|5.033003||Viu
+IFMATCH_tb_pb|5.033003||Viu
IFTHEN|5.005000||Viu
+IFTHEN_t8|5.035004||Viu
+IFTHEN_t8_p8|5.033003||Viu
+IFTHEN_t8_pb|5.033003||Viu
+IFTHEN_tb|5.035004||Viu
+IFTHEN_tb_p8|5.033003||Viu
+IFTHEN_tb_pb|5.033003||Viu
I_GDBM|5.021007|5.021007|Vn
I_GDBMNDBM|5.021007|5.021007|Vn
IGNORE_PAT_MOD|5.009005||Viu
@@ -7371,7 +8056,7 @@ INCPUSH_SITEARCH_EXP|5.027006||Viu
INCPUSH_SITELIB_EXP|5.027006||Viu
INCPUSH_SITELIB_STEM|5.027006||Viu
incpush_use_sep|5.011000||Viu
-I_NDBM|5.031006|5.031006|Vn
+I_NDBM|5.032001|5.032001|Vn
inet_addr|5.005000||Viu
I_NETDB|5.005000|5.005000|Vn
I_NETINET_IN|5.003007|5.003007|Vn
@@ -7415,19 +8100,28 @@ IN_PERL_COMPILETIME|5.008001|5.003007|p
IN_PERL_RUNTIME|5.008001|5.008001|
inplace_aassign|5.015003||Viu
inRANGE|5.029010||Viu
+inRANGE_helper|5.033005||Viu
IN_SOME_LOCALE_FORM|5.015008||Viu
IN_SOME_LOCALE_FORM_COMPILETIME|5.015008||Viu
IN_SOME_LOCALE_FORM_RUNTIME|5.015008||Viu
instr|5.003007|5.003007|n
INSUBP|5.009005||Viu
+INSUBP_t8|5.035004||Viu
+INSUBP_t8_p8|5.033003||Viu
+INSUBP_t8_pb|5.033003||Viu
+INSUBP_tb|5.035004||Viu
+INSUBP_tb_p8|5.033003||Viu
+INSUBP_tb_pb|5.033003||Viu
+INT16_C|5.003007|5.003007|
INT2PTR|5.006000|5.003007|p
+INT32_C|5.003007|5.003007|
INT32_MIN|5.007002||Viu
-INT64_C|5.007001||Viu
+INT64_C|5.023002|5.023002|
INT64_MIN|5.007002||Viu
INT_64_T|5.011000||Viu
INTMAX_C|5.003007|5.003007|
INT_PAT_MODS|5.009005||Viu
-intro_my|5.004000|5.004000|
+intro_my|5.021006|5.021006|
INTSIZE|5.003007|5.003007|Vn
intuit_method|5.005000||Viu
intuit_more|5.003007||Viu
@@ -7464,7 +8158,7 @@ _invlist_subtract|5.015001||Viu
invlist_trim|5.013010||Vniu
_invlist_union|5.015001||cVu
_invlist_union_maybe_complement_2nd|5.015008||cViu
-invmap_dump|5.031007||Viu
+invmap_dump|5.031006||Viu
invoke_exception_hook|5.013001||Viu
IoANY|5.006001||Viu
IoBOTTOM_GV|5.003007||Viu
@@ -7581,9 +8275,6 @@ isBLANK_utf8|5.031005|5.031005|
isBLANK_utf8_safe|5.025009|5.006000|p
isBLANK_uvchr|5.023009|5.006000|p
isC9_STRICT_UTF8_CHAR|5.025005|5.025005|n
-is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu
-is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025008||Viu
-is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025008||Viu
is_c9strict_utf8_string|5.025006|5.025006|n
is_c9strict_utf8_string_loc|5.025006|5.025006|n
is_c9strict_utf8_string_loclen|5.025006|5.025006|n
@@ -7600,7 +8291,7 @@ isCNTRL_utf8|5.031005|5.031005|
isCNTRL_utf8_safe|5.025009|5.006000|p
isCNTRL_uvchr|5.023009|5.006000|p
_is_cur_LC_category_utf8|5.021001||cVu
-isDEBUG_WILDCARD|5.031010||Viu
+isDEBUG_WILDCARD|5.031011||Viu
isDIGIT|5.003007|5.003007|p
isDIGIT_A|5.013006|5.003007|p
isDIGIT_L1|5.013006|5.003007|p
@@ -7612,9 +8303,11 @@ isDIGIT_uni|5.006000||Viu
isDIGIT_utf8|5.031005|5.031005|
isDIGIT_utf8_safe|5.025009|5.006000|p
isDIGIT_uvchr|5.023009|5.006000|p
-isFF_OVERLONG|5.025007||Vniu
+isEXACTFish|5.033003||Viu
+isEXACT_REQ8|5.033003||Viu
+isFF_overlong|5.035004||Vniu
is_FOLDS_TO_MULTI_utf8|5.019009||Viu
-isFOO_lc|5.017007||cViu
+isFOO_lc|5.017007||Viu
isFOO_utf8_lc|5.017008||Viu
isGCB|5.021009||Viu
isGRAPH|5.006000|5.003007|p
@@ -7665,8 +8358,10 @@ isIDFIRST_uvchr|5.023009|5.006000|p
isinfnan|5.021004|5.021004|n
isinfnansv|5.021005||Vi
_is_in_locale_category|5.021001||cViu
+IS_IN_SOME_FOLD_L1|5.033005||Viu
is_invariant_string|5.021007|5.011000|pn
is_invlist|5.029002||Vniu
+is_LARGER_NON_CHARS_utf8|5.035003||Viu
is_LAX_VERSION|5.011004||Viu
isLB|5.023007||Viu
isLEXWARN_off|5.006000||Viu
@@ -7694,6 +8389,7 @@ is_MULTI_CHAR_FOLD_utf8_safe_part1|5.019010||Viu
is_MULTI_CHAR_FOLD_utf8_safe_part2|5.025008||Viu
is_MULTI_CHAR_FOLD_utf8_safe_part3|5.025008||Viu
is_NONCHAR_utf8_safe|5.025005||Viu
+IS_NON_FINAL_FOLD|5.033005||Viu
isnormal|5.021004||Viu
IS_NUMBER_GREATER_THAN_UV_MAX|5.007002|5.003007|p
IS_NUMBER_INFINITY|5.007002|5.003007|p
@@ -7708,7 +8404,6 @@ isOCTAL_A|5.013006|5.003007|p
isOCTAL_L1|5.013006|5.003007|p
IS_PADCONST|5.006000||Viu
IS_PADGV|5.006000||Viu
-is_PATWS_cp|5.017008||Viu
is_PATWS_safe|5.017008||Viu
isPOWER_OF_2|5.029006||Viu
isPRINT|5.004000|5.003007|p
@@ -7749,14 +8444,13 @@ isPUNCT_utf8|5.031005|5.031005|
isPUNCT_utf8_safe|5.025009|5.006000|p
isPUNCT_uvchr|5.023009|5.006000|p
is_QUOTEMETA_high|5.017004||Viu
-is_QUOTEMETA_high_part0|5.021001||Viu
-is_QUOTEMETA_high_part1|5.021001||Viu
isREGEXP|5.017006||Viu
IS_SAFE_PATHNAME|5.019004||Viu
IS_SAFE_SYSCALL|5.019004|5.019004|
is_safe_syscall|5.019004|5.019004|
isSB|5.021009||Viu
isSCRIPT_RUN|5.027008||cVi
+is_SHORTER_NON_CHARS_utf8|5.035003||Viu
isSPACE|5.003007|5.003007|p
isSPACE_A|5.013006|5.003007|p
isSPACE_L1|5.013006|5.003007|p
@@ -7770,15 +8464,11 @@ isSPACE_utf8_safe|5.025009|5.006000|p
isSPACE_uvchr|5.023009|5.006000|p
is_ssc_worth_it|5.021005||Vniu
isSTRICT_UTF8_CHAR|5.025005|5.025005|n
-is_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu
-is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025005||Viu
-is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025005||Viu
-is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2|5.025008||Viu
-is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3|5.025008||Viu
is_strict_utf8_string|5.025006|5.025006|n
is_strict_utf8_string_loc|5.025006|5.025006|n
is_strict_utf8_string_loclen|5.025006|5.025006|n
is_STRICT_VERSION|5.011004||Viu
+is_SURROGATE_utf8|5.035004||Viu
is_SURROGATE_utf8_safe|5.025005||Viu
I_STDARG|5.003007||Viu
I_STDBOOL|5.015003|5.015003|Vn
@@ -7788,6 +8478,7 @@ is_THREE_CHAR_FOLD_HEAD_utf8_safe|5.031007||Viu
is_THREE_CHAR_FOLD_latin1_safe|5.031007||Viu
is_THREE_CHAR_FOLD_utf8_safe|5.031007||Viu
IS_TRIE_AC|5.009005||Viu
+isUNICODE_POSSIBLY_PROBLEMATIC|5.035004||Viu
_is_uni_FOO|5.017008||cVu
_is_uni_perl_idcont|5.017008||cVu
_is_uni_perl_idstart|5.017007||cVu
@@ -7806,11 +8497,10 @@ is_utf8_char|5.006000|5.006000|dn
IS_UTF8_CHAR|5.009003||Viu
isUTF8_CHAR|5.021001|5.006001|pn
is_utf8_char_buf|5.015008|5.015008|n
-isUTF8_CHAR_flags|5.025005|5.025005|
-is_utf8_char_helper|5.031004||cVnu
-is_UTF8_CHAR_utf8_no_length_checks|5.021001||Viu
+isUTF8_CHAR_flags|5.025005|5.025005|n
+is_utf8_char_helper_|5.035004||cVnu
is_utf8_common|5.009003||Viu
-is_utf8_cp_above_31_bits|5.025005||Vniu
+is_utf8_FF_helper_|5.035004||cVnu
is_utf8_fixed_width_buf_flags|5.025006|5.025006|n
is_utf8_fixed_width_buf_loc_flags|5.025006|5.025006|n
is_utf8_fixed_width_buf_loclen_flags|5.025006|5.025006|n
@@ -7818,7 +8508,7 @@ _is_utf8_FOO|5.031006||cVu
is_utf8_invariant_string|5.025005|5.011000|pn
is_utf8_invariant_string_loc|5.027001|5.027001|n
is_utf8_non_invariant_string|5.027007||cVni
-is_utf8_overlong_given_start_byte_ok|5.025006||Vniu
+is_utf8_overlong|5.035004||Vniu
_is_utf8_perl_idcont|5.031006||cVu
_is_utf8_perl_idstart|5.031006||cVu
isUTF8_POSSIBLY_PROBLEMATIC|5.023003||Viu
@@ -7893,13 +8583,13 @@ I_TIME|5.003007|5.003007|Vn
I_UNISTD|5.003007|5.003007|Vn
I_USTAT|5.023005|5.023005|Vn
I_UTIME|5.003007|5.003007|Vn
-I_V|5.003007||Viu
-IVdf|5.006000|5.003007|p
+I_V|5.006000|5.003007|
+IVdf|5.006000|5.003007|poVn
IV_DIG|5.006000||Viu
IV_IS_QUAD|5.006000||Viu
-IV_MAX|5.003007|5.003007|oVnu
+IV_MAX|5.003007|5.003007|
IV_MAX_P1|5.007002||Viu
-IV_MIN|5.003007|5.003007|oVnu
+IV_MIN|5.003007|5.003007|
IVSIZE|5.006000|5.003007|poVn
IVTYPE|5.006000|5.003007|poVn
I_WCHAR|5.027006|5.027006|Vn
@@ -7911,7 +8601,7 @@ JE_OLD_STACK_HWM_save|5.027002||Viu
JE_OLD_STACK_HWM_zero|5.027002||Viu
jmaybe|5.003007||Viu
JMPENV_BOOTSTRAP|5.006000||Viu
-JMPENV_JUMP|5.004000||Viu
+JMPENV_JUMP|5.004000|5.004000|
JMPENV_POP|5.004000||Viu
JMPENV_PUSH|5.004000||Viu
JOIN|5.005000||Viu
@@ -7923,6 +8613,24 @@ KEEPCOPY_PAT_MODS|5.009005||Viu
KEEPS|5.009005||Viu
KEEPS_next|5.009005||Viu
KEEPS_next_fail|5.009005||Viu
+KEEPS_next_fail_t8|5.035004||Viu
+KEEPS_next_fail_t8_p8|5.033003||Viu
+KEEPS_next_fail_t8_pb|5.033003||Viu
+KEEPS_next_fail_tb|5.035004||Viu
+KEEPS_next_fail_tb_p8|5.033003||Viu
+KEEPS_next_fail_tb_pb|5.033003||Viu
+KEEPS_next_t8|5.035004||Viu
+KEEPS_next_t8_p8|5.033003||Viu
+KEEPS_next_t8_pb|5.033003||Viu
+KEEPS_next_tb|5.035004||Viu
+KEEPS_next_tb_p8|5.033003||Viu
+KEEPS_next_tb_pb|5.033003||Viu
+KEEPS_t8|5.035004||Viu
+KEEPS_t8_p8|5.033003||Viu
+KEEPS_t8_pb|5.033003||Viu
+KEEPS_tb|5.035004||Viu
+KEEPS_tb_p8|5.033003||Viu
+KEEPS_tb_pb|5.033003||Viu
KELVIN_SIGN|5.017003||Viu
KERNEL|5.003007||Viu
KEY_abs|5.003007||Viu
@@ -7937,6 +8645,7 @@ KEY_binmode|5.003007||Viu
KEY_bless|5.003007||Viu
KEY_break|5.027008||Viu
KEY_caller|5.003007||Viu
+KEY_catch|5.033007||Viu
KEY_chdir|5.003007||Viu
KEY_CHECK|5.006000||Viu
KEY_chmod|5.003007||Viu
@@ -7956,6 +8665,7 @@ KEY___DATA|5.003007||Viu
KEY_dbmclose|5.003007||Viu
KEY_dbmopen|5.003007||Viu
KEY_default|5.027008||Viu
+KEY_defer|5.035004||Viu
KEY_defined|5.003007||Viu
KEY_delete|5.003007||Viu
KEY_DESTROY|5.003007||Viu
@@ -7985,6 +8695,7 @@ KEY_fc|5.015008||Viu
KEY_fcntl|5.003007||Viu
KEY___FILE|5.003007||Viu
KEY_fileno|5.003007||Viu
+KEY_finally|5.035008||Viu
KEY_flock|5.003007||Viu
KEY_for|5.003007||Viu
KEY_foreach|5.003007||Viu
@@ -8018,7 +8729,7 @@ KEY_getservbyport|5.003007||Viu
KEY_getservent|5.003007||Viu
KEY_getsockname|5.003007||Viu
KEY_getsockopt|5.003007||Viu
-KEY_getspnam|5.031010||Viu
+KEY_getspnam|5.031011||Viu
KEY_given|5.009003||Viu
KEY_glob|5.003007||Viu
KEY_gmtime|5.003007||Viu
@@ -8158,6 +8869,7 @@ KEY_time|5.003007||Viu
KEY_times|5.003007||Viu
KEY_tr|5.003007||Viu
KEY_truncate|5.003007||Viu
+KEY_try|5.033007||Viu
KEY_uc|5.003007||Viu
KEY_ucfirst|5.003007||Viu
KEY_umask|5.003007||Viu
@@ -8221,6 +8933,7 @@ LATIN_SMALL_LETTER_LONG_S|5.017003||Viu
LATIN_SMALL_LETTER_LONG_S_UTF8|5.019001||Viu
LATIN_SMALL_LETTER_SHARP_S|5.011002||Viu
LATIN_SMALL_LETTER_SHARP_S_NATIVE|5.017004||Viu
+LATIN_SMALL_LETTER_SHARP_S_UTF8|5.033003||Viu
LATIN_SMALL_LETTER_Y_WITH_DIAERESIS|5.011002||Viu
LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE|5.017004||Viu
LATIN_SMALL_LIGATURE_LONG_S_T|5.019004||Viu
@@ -8237,8 +8950,8 @@ LB_RI_then_RI|5.025003||Viu
LB_SP_foo|5.023007||Viu
LB_SY_or_IS_then_various|5.023007||Viu
LB_various_then_PO_or_PR|5.023007||Viu
-LC_NUMERIC_LOCK|5.027009||pViu
-LC_NUMERIC_UNLOCK|5.027009||pViu
+LC_NUMERIC_LOCK|5.027009||pVu
+LC_NUMERIC_UNLOCK|5.027009||pVu
LDBL_DIG|5.006000||Viu
LEAVE|5.003007|5.003007|
leave_adjust_stacks|5.023008|5.023008|xu
@@ -8247,6 +8960,18 @@ LEAVE_SCOPE|5.003007||Viu
LEAVE_with_name|5.011002|5.011002|
LEXACT|5.031005||Viu
LEXACT_REQ8|5.031006||Viu
+LEXACT_REQ8_t8|5.035004||Viu
+LEXACT_REQ8_t8_p8|5.033003||Viu
+LEXACT_REQ8_t8_pb|5.033003||Viu
+LEXACT_REQ8_tb|5.035004||Viu
+LEXACT_REQ8_tb_p8|5.033003||Viu
+LEXACT_REQ8_tb_pb|5.033003||Viu
+LEXACT_t8|5.035004||Viu
+LEXACT_t8_p8|5.033003||Viu
+LEXACT_t8_pb|5.033003||Viu
+LEXACT_tb|5.035004||Viu
+LEXACT_tb_p8|5.033003||Viu
+LEXACT_tb_pb|5.033003||Viu
lex_bufutf8|5.011002|5.011002|x
lex_discard_to|5.011002|5.011002|x
LEX_DONT_CLOSE_RSFP|5.015009||Viu
@@ -8260,7 +8985,7 @@ lex_peek_unichar|5.011002|5.011002|x
lex_read_space|5.011002|5.011002|x
lex_read_to|5.011002|5.011002|x
lex_read_unichar|5.011002|5.011002|x
-lex_start|5.009005|5.009005|x
+lex_start|5.013007|5.013007|x
LEX_START_COPIED|5.015005||Viu
LEX_START_FLAGS|5.015005||Viu
LEX_START_SAME_FILTER|5.014000||Viu
@@ -8280,30 +9005,47 @@ list|5.003007||Viu
listen|5.005000||Viu
listkids|5.003007||Viu
LNBREAK|5.009005||Viu
-load_charnames|5.031009||cViu
+LNBREAK_t8|5.035004||Viu
+LNBREAK_t8_p8|5.033003||Viu
+LNBREAK_t8_pb|5.033003||Viu
+LNBREAK_tb|5.035004||Viu
+LNBREAK_tb_p8|5.033003||Viu
+LNBREAK_tb_pb|5.033003||Viu
+load_charnames|5.031010||cViu
load_module|5.006000|5.003007|pv
-load_module_nocontext|5.006000|5.006000|vn
+load_module_nocontext|5.013006|5.013006|vn
+LOCALECONV_LOCK|5.033005||Viu
+LOCALECONV_UNLOCK|5.033005||Viu
LOCALE_INIT|5.024000||Viu
+LOCALE_INIT_LC_NUMERIC|5.033005||Viu
LOCALE_LOCK|5.024000||Viu
-LOCALE_LOCK_V|5.027010||Viu
LOCALE_PAT_MOD|5.013006||Viu
LOCALE_PAT_MODS|5.013006||Viu
+LOCALE_READ_LOCK|5.033005||Viu
+LOCALE_READ_UNLOCK|5.033005||Viu
LOCALE_TERM|5.024000||Viu
+LOCALE_TERM_LC_NUMERIC|5.033005||Viu
+LOCALE_TERM_POSIX_2008|5.033005||Viu
LOCALE_UNLOCK|5.024000||Viu
-LOCALE_UNLOCK_V|5.027010||Viu
localize|5.003007||Viu
LOCAL_PATCH_COUNT|5.003007||Viu
-localtime|5.031010||Viu
+localtime|5.031011||Viu
LOCALTIME_MAX|5.010001|5.010001|Vn
LOCALTIME_MIN|5.010001|5.010001|Vn
LOCALTIME_R_NEEDS_TZSET|5.010000|5.010000|Vn
LOCALTIME_R_PROTO|5.008000|5.008000|Vn
LOCK_DOLLARZERO_MUTEX|5.008001||Viu
lockf|5.006000||Viu
-LOCK_LC_NUMERIC_STANDARD|5.021010||pViu
-LOCK_NUMERIC_STANDARD|5.021001||pViu
+LOCK_LC_NUMERIC_STANDARD|5.021010||poVnu
+LOCK_NUMERIC_STANDARD|||piu
LOC_SED|5.003007|5.003007|Vn
LOGICAL|5.005000||Viu
+LOGICAL_t8|5.035004||Viu
+LOGICAL_t8_p8|5.033003||Viu
+LOGICAL_t8_pb|5.033003||Viu
+LOGICAL_tb|5.035004||Viu
+LOGICAL_tb_p8|5.033003||Viu
+LOGICAL_tb_pb|5.033003||Viu
LONGDBLINFBYTES|5.023000|5.023000|Vn
LONGDBLMANTBITS|5.023000|5.023000|Vn
LONGDBLNANBYTES|5.023000|5.023000|Vn
@@ -8333,8 +9075,21 @@ LONGDOUBLE_VAX_ENDIAN|5.025004||Viu
LONGDOUBLE_X86_80_BIT|5.021009||Viu
LONGJMP|5.005000||Viu
longjmp|5.005000||Viu
+LONGJMP_t8|5.035004||Viu
+LONGJMP_t8_p8|5.033003||Viu
+LONGJMP_t8_pb|5.033003||Viu
+LONGJMP_tb|5.035004||Viu
+LONGJMP_tb_p8|5.033003||Viu
+LONGJMP_tb_pb|5.033003||Viu
LONGLONGSIZE|5.005000|5.005000|Vn
LONGSIZE|5.004000|5.003007|oVn
+LOOKBEHIND_END_t8_p8|||Viu
+LOOKBEHIND_END_t8_pb|||Viu
+LOOKBEHIND_END_t8|||Viu
+LOOKBEHIND_END_tb_p8|||Viu
+LOOKBEHIND_END_tb_pb|||Viu
+LOOKBEHIND_END_tb|||Viu
+LOOKBEHIND_END|||Viu
looks_like_bool|5.027008||Viu
looks_like_number|5.003007|5.003007|
LOOP_PAT_MODS|5.009005||Viu
@@ -8342,6 +9097,10 @@ lop|5.005000||Viu
lossless_NV_to_IV|5.031001||Vniu
LOWEST_ANYOF_HRx_BYTE|5.031002||Viu
L_R_TZSET|5.009005|5.009005|Vn
+lsbit_pos32|5.035003||cVnu
+lsbit_pos|5.035004||Viu
+lsbit_pos64|5.035003||cVnu
+lsbit_pos_uintmax|5.035003||Viu
lseek|5.005000||Viu
LSEEKSIZE|5.006000|5.006000|Vn
lstat|5.005000||Viu
@@ -8355,6 +9114,7 @@ LvTARG|5.003007||Viu
LvTARGLEN|5.003007||Viu
LvTARGOFF|5.003007||Viu
LvTYPE|5.003007||Viu
+LZC_TO_MSBIT_POS|5.035003||Viu
magic_clear_all_env|5.004001||Viu
magic_cleararylen_p|5.017002||Viu
magic_clearenv|5.003007||Viu
@@ -8367,7 +9127,10 @@ magic_copycallchecker|5.017000||Viu
magic_dump|5.006000|5.006000|u
magic_existspack|5.003007||Viu
magic_freearylen_p|5.009003||Viu
+magic_freecollxfrm|5.033004||Viu
+magic_freemglob|5.033004||Viu
magic_freeovrld|5.007001||Viu
+magic_freeutf8|5.033004||Viu
magic_get|5.003007||Viu
magic_getarylen|5.003007||Viu
magic_getdebugvar|5.021005||Viu
@@ -8408,6 +9171,7 @@ magic_setpack|5.003007||Viu
magic_setpos|5.003007||Viu
magic_setregexp|5.008001||Viu
magic_setsig|5.003007||Viu
+magic_setsigall|5.035001||Viu
magic_setsubstr|5.003007||Viu
magic_settaint|5.003007||Viu
magic_setutf8|5.008001||Viu
@@ -8415,10 +9179,10 @@ magic_setuvar|5.003007||Viu
magic_setvec|5.003007||Viu
magic_sizepack|5.005000||Viu
magic_wipepack|5.003007||Viu
-make_exactf_invlist|5.031007||Viu
+make_exactf_invlist|5.031006||Viu
make_matcher|5.027008||Viu
make_trie|5.009002||Viu
-malloc|5.007002|5.007002|n
+malloc|5.003007||Vn
MALLOC_CHECK_TAINT2|5.008001||Viu
MALLOC_CHECK_TAINT|5.008001||Viu
malloced_size|5.005000||Vniu
@@ -8432,6 +9196,24 @@ MARK|5.003007|5.003007|
MARKPOINT|5.009005||Viu
MARKPOINT_next|5.009005||Viu
MARKPOINT_next_fail|5.009005||Viu
+MARKPOINT_next_fail_t8|5.035004||Viu
+MARKPOINT_next_fail_t8_p8|5.033003||Viu
+MARKPOINT_next_fail_t8_pb|5.033003||Viu
+MARKPOINT_next_fail_tb|5.035004||Viu
+MARKPOINT_next_fail_tb_p8|5.033003||Viu
+MARKPOINT_next_fail_tb_pb|5.033003||Viu
+MARKPOINT_next_t8|5.035004||Viu
+MARKPOINT_next_t8_p8|5.033003||Viu
+MARKPOINT_next_t8_pb|5.033003||Viu
+MARKPOINT_next_tb|5.035004||Viu
+MARKPOINT_next_tb_p8|5.033003||Viu
+MARKPOINT_next_tb_pb|5.033003||Viu
+MARKPOINT_t8|5.035004||Viu
+MARKPOINT_t8_p8|5.033003||Viu
+MARKPOINT_t8_pb|5.033003||Viu
+MARKPOINT_tb|5.035004||Viu
+MARKPOINT_tb_p8|5.033003||Viu
+MARKPOINT_tb_pb|5.033003||Viu
markstack_grow|5.021001|5.021001|u
matcher_matches_sv|5.027008||Viu
MAX|5.025006||Viu
@@ -8441,10 +9223,11 @@ MAX_CHARSET_NAME_LENGTH|5.013009||Viu
MAX_FEATURE_LEN|5.013010||Viu
MAX_FOLD_FROMS|5.029006||Viu
MAX_LEGAL_CP|5.029002||Viu
+MAX_MATCHES|5.033005||Viu
MAXO|5.003007||Viu
MAXPATHLEN|5.006000||Viu
MAX_PORTABLE_UTF8_TWO_BYTE|5.011002||Viu
-MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C|5.021004||Viu
+MAX_PRINT_A|5.033005||Viu
MAX_RECURSE_EVAL_NOCHANGE_DEPTH|5.009005||Viu
MAXSYSFD|5.003007||Viu
MAX_UNICODE_UTF8|5.027006||Viu
@@ -8455,7 +9238,17 @@ MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
+MBLEN_LOCK|5.033005||Viu
+MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
+MBOL_t8|5.035004||Viu
+MBOL_t8_p8|5.033003||Viu
+MBOL_t8_pb|5.033003||Viu
+MBOL_tb|5.035004||Viu
+MBOL_tb_p8|5.033003||Viu
+MBOL_tb_pb|5.033003||Viu
+MBTOWC_LOCK|5.033005||Viu
+MBTOWC_UNLOCK|5.033005||Viu
MDEREF_ACTION_MASK|5.021007||Viu
MDEREF_AV_gvav_aelem|5.021007||Viu
MDEREF_AV_gvsv_vivify_rv2av_aelem|5.021007||Viu
@@ -8483,7 +9276,7 @@ MEM_ALIGNBYTES|5.003007|5.003007|Vn
memBEGINPs|5.027006||Viu
memBEGINs|5.027006||Viu
MEMBER_TO_FPTR|5.006000||Viu
-memCHRs|5.031007|5.003007|p
+memCHRs|5.031008|5.003007|p
mem_collxfrm|5.003007||dViu
_mem_collxfrm|5.025002||Viu
memENDPs|5.027006||Viu
@@ -8496,8 +9289,10 @@ memLE|5.025005||Viu
MEM_LOG_ALLOC|5.009003||Viu
mem_log_alloc|5.024000||Vniu
mem_log_common|5.010001||Vniu
+MEM_LOG_DEL_SV|||Viu
MEM_LOG_FREE|5.009003||Viu
mem_log_free|5.024000||Vniu
+MEM_LOG_NEW_SV|||Viu
MEM_LOG_REALLOC|5.009003||Viu
mem_log_realloc|5.024000||Vniu
memLT|5.025005||Viu
@@ -8508,14 +9303,20 @@ MEM_SIZE_MAX|5.009005||Viu
MEM_WRAP_CHECK_1|5.009002||Viu
MEM_WRAP_CHECK|5.009002||Viu
MEM_WRAP_CHECK_s|5.027010||Viu
-memzero|5.003007||Viu
+memzero|5.003007|5.003007|
MEOL|5.003007||Viu
-mess|5.006000|5.004000|pv
+MEOL_t8|5.035004||Viu
+MEOL_t8_p8|5.033003||Viu
+MEOL_t8_pb|5.033003||Viu
+MEOL_tb|5.035004||Viu
+MEOL_tb_p8|5.033003||Viu
+MEOL_tb_pb|5.033003||Viu
+mess|5.003007||pvV
mess_alloc|5.005000||Viu
-mess_nocontext|5.006000|5.004000|pvn
+mess_nocontext|5.006000||pvVn
mess_sv|5.013001|5.004000|p
MEXTEND|5.003007||Viu
-mfree|5.007002|5.007002|nu
+mfree|||nu
MgBYTEPOS|5.019004||Viu
MgBYTEPOS_set|5.019004||Viu
mg_clear|5.003007|5.003007|
@@ -8546,17 +9347,24 @@ MgPV_const|5.009003||Viu
MgPV_nolen_const|5.009003||Viu
mg_set|5.003007|5.003007|
mg_size|5.005000|5.005000|u
+MgSV|5.033009||Viu
MgTAINTEDDIR|5.003007||Viu
MgTAINTEDDIR_off|5.004000||Viu
MgTAINTEDDIR_on|5.003007||Viu
MICRO_SIGN|5.011002||Viu
MICRO_SIGN_NATIVE|5.017004||Viu
+MICRO_SIGN_UTF8|5.033003||Viu
MIN|5.025006||Viu
mini_mktime|5.007002|5.007002|n
MINMOD|5.003007||Viu
+MINMOD_t8|5.035004||Viu
+MINMOD_t8_p8|5.033003||Viu
+MINMOD_t8_pb|5.033003||Viu
+MINMOD_tb|5.035004||Viu
+MINMOD_tb_p8|5.033003||Viu
+MINMOD_tb_pb|5.033003||Viu
minus_v|5.015006||Viu
missingterm|5.005000||Viu
-MJD_OFFSET_DEBUG|5.009004||Viu
Mkdir|5.004000||Viu
mkdir|5.005000||Viu
mktemp|5.005000||Viu
@@ -8576,10 +9384,10 @@ MON_6|5.027010||Viu
MON_7|5.027010||Viu
MON_8|5.027010||Viu
MON_9|5.027010||Viu
-more_bodies|||iu
-more_sv|5.009004||Viu
+more_bodies|||cu
+more_sv|5.009004||cVu
moreswitches|5.003007||cVu
-mortal_getenv|5.031010||cVnu
+mortal_getenv|5.031011||cVnu
Move|5.003007|5.003007|
MoveD|5.009002|5.003007|p
move_proto_attr|5.019005||Viu
@@ -8594,19 +9402,24 @@ mPUSHs|5.010001|5.003007|p
mPUSHu|5.009002|5.003007|p
mro_clean_isarev|5.013007||Viu
mro_gather_and_rename|5.013007||Viu
-mro_get_from_name|5.010001|5.010001|u
+mro_get_from_name|||u
mro_get_linear_isa|5.009005|5.009005|
+mro_get_linear_isa_c3|||i
mro_get_linear_isa_dfs|5.009005||Vi
-mro_get_private_data|5.010001|5.010001|
-MRO_GET_PRIVATE_DATA|5.010001||Viu
+MRO_GET_PRIVATE_DATA|5.010001|5.010001|
+mro_get_private_data|||cu
mro_isa_changed_in|5.009005||Vi
mro_meta_dup|5.009005||Viu
mro_meta_init|||ciu
mro_method_changed_in|5.009005|5.009005|
mro_package_moved|5.013006||Vi
-mro_register|5.010001|5.010001|
-mro_set_mro|5.010001|5.010001|u
-mro_set_private_data|5.010001|5.010001|
+mro_register|||
+mro_set_mro|||u
+mro_set_private_data|||
+msbit_pos32|5.035003||cVnu
+msbit_pos|5.035004||Viu
+msbit_pos64|5.035003||cVnu
+msbit_pos_uintmax|5.035003||Viu
MSPAGAIN|5.003007||Viu
MSVC_DIAG_IGNORE|5.029010||Viu
MSVC_DIAG_IGNORE_DECL|5.029010||Viu
@@ -8620,11 +9433,11 @@ multiconcat_stringify|5.027006||cViu
multideref_stringify|5.021009||cViu
MULTILINE_PAT_MOD|5.009005||Viu
MULTIPLICITY|5.006000|5.006000|Vn
-MUTABLE_AV|5.010001|5.010001|p
-MUTABLE_CV|5.010001|5.010001|p
-MUTABLE_GV|5.010001|5.010001|p
-MUTABLE_HV|5.010001|5.010001|p
-MUTABLE_IO|5.010001|5.010001|p
+MUTABLE_AV|5.010001|5.003007|p
+MUTABLE_CV|5.010001|5.003007|p
+MUTABLE_GV|5.010001|5.003007|p
+MUTABLE_HV|5.010001|5.003007|p
+MUTABLE_IO|5.010001|5.003007|p
MUTABLE_PTR|5.010001|5.003007|p
MUTABLE_SV|5.010001|5.003007|p
MUTEX_DESTROY|5.005000||Viu
@@ -8650,9 +9463,9 @@ MY_CXT|5.009000|5.009000|p
MY_CXT_CLONE|5.009002|5.009000|p
MY_CXT_INDEX|5.009005||Viu
MY_CXT_INIT|5.009000|5.009000|p
-my_cxt_init|5.010000|5.010000|u
MY_CXT_INIT_ARG|5.013005||Viu
MY_CXT_INIT_INTERP|5.009003||Viu
+my_cxt_init|||u
my_dirfd|5.009005|5.009005|nu
my_exit|5.003007|5.003007|
my_exit_jump|5.005000||Viu
@@ -8672,13 +9485,13 @@ my_pclose|5.003007|5.003007|u
my_popen|5.003007|5.003007|u
my_popen_list|5.007001|5.007001|u
my_setenv|5.003007|5.003007|
-my_snprintf|5.009004|5.003007|pvn
+my_snprintf|5.009004||pvVn
my_socketpair|5.007003|5.007003|nu
my_sprintf|5.009003|5.003007|pdn
my_stat|5.013003||Viu
my_stat_flags|5.013003||cViu
my_strerror|5.021001||Viu
-my_strftime|5.007002|5.007002|
+my_strftime|5.007002||V
my_strlcat|5.009004|5.003007|pn
my_strlcpy|5.009004|5.003007|pn
my_strnlen|5.027006|5.003007|pn
@@ -8699,6 +9512,12 @@ N8|5.029001||Viu
N9|5.029001||Viu
NAN_COMPARE_BROKEN|5.021005||Viu
NANYOFM|5.029005||Viu
+NANYOFM_t8|5.035004||Viu
+NANYOFM_t8_p8|5.033003||Viu
+NANYOFM_t8_pb|5.033003||Viu
+NANYOFM_tb|5.035004||Viu
+NANYOFM_tb_p8|5.033003||Viu
+NANYOFM_tb_pb|5.033003||Viu
NATIVE8_TO_UNI|5.011000||Viu
NATIVE_BYTE_IS_INVARIANT|5.019004||Viu
NATIVE_SKIP|5.019004||Viu
@@ -8713,13 +9532,36 @@ nBIT_MASK|5.033001||Viu
nBIT_UMAX|5.033001||Viu
NBOUND|5.003007||Viu
NBOUNDA|5.013009||Viu
+NBOUNDA_t8|5.035004||Viu
+NBOUNDA_t8_p8|5.033003||Viu
+NBOUNDA_t8_pb|5.033003||Viu
+NBOUNDA_tb|5.035004||Viu
+NBOUNDA_tb_p8|5.033003||Viu
+NBOUNDA_tb_pb|5.033003||Viu
NBOUNDL|5.004000||Viu
+NBOUNDL_t8|5.035004||Viu
+NBOUNDL_t8_p8|5.033003||Viu
+NBOUNDL_t8_pb|5.033003||Viu
+NBOUNDL_tb|5.035004||Viu
+NBOUNDL_tb_p8|5.033003||Viu
+NBOUNDL_tb_pb|5.033003||Viu
+NBOUND_t8|5.035004||Viu
+NBOUND_t8_p8|5.033003||Viu
+NBOUND_t8_pb|5.033003||Viu
+NBOUND_tb|5.035004||Viu
+NBOUND_tb_p8|5.033003||Viu
+NBOUND_tb_pb|5.033003||Viu
NBOUNDU|5.013009||Viu
+NBOUNDU_t8|5.035004||Viu
+NBOUNDU_t8_p8|5.033003||Viu
+NBOUNDU_t8_pb|5.033003||Viu
+NBOUNDU_tb|5.035004||Viu
+NBOUNDU_tb_p8|5.033003||Viu
+NBOUNDU_tb_pb|5.033003||Viu
NBSP_NATIVE|5.021001||Viu
NBSP_UTF8|5.021001||Viu
-NDBM_H_USES_PROTOTYPES|5.031006|5.031006|Vn
+NDBM_H_USES_PROTOTYPES|5.032001|5.032001|Vn
NDEBUG|5.021007||Viu
-NEED_PTHREAD_INIT|5.005000||Viu
need_utf8|5.009003||Vniu
NEED_VA_COPY|5.007001|5.007001|Vn
NEGATIVE_INDICES_VAR|5.008001||Viu
@@ -8737,8 +9579,12 @@ newASSIGNOP|5.003007|5.003007|
newATTRSUB|5.006000|5.006000|
newATTRSUB_x|5.019008||cVi
newAV|5.003007|5.003007|
+newAV_alloc_x|5.035001|5.035001|
+newAV_alloc_xz|5.035001|5.035001|
newAVREF|5.003007|5.003007|u
newBINOP|5.003007|5.003007|
+new_body_allocated|||Viu
+new_body_from_arena|||Viu
Newc|5.003007||Viu
new_collate|5.006000||Viu
newCONDOP|5.003007|5.003007|
@@ -8747,6 +9593,7 @@ newCONSTSUB|5.004005|5.003007|p
newCONSTSUB_flags|5.015006|5.015006|
new_ctype|5.006000||Viu
newCVREF|5.003007|5.003007|u
+newDEFEROP|5.035004|5.035004|x
newDEFSVOP|5.021006|5.021006|
newFORM|5.003007|5.003007|u
newFOROP|5.013007|5.013007|
@@ -8774,6 +9621,8 @@ newMETHOP_internal|5.021005||Viu
newMETHOP_named|5.021005|5.021005|
new_msg_hv|5.027009||Viu
newMYSUB|5.017004|5.017004|u
+new_NOARENA|||Viu
+new_NOARENAZ|||Viu
newNULLLIST|5.003007|5.003007|
new_numeric|5.006000||Viu
newOP|5.003007|5.003007|
@@ -8786,8 +9635,7 @@ newPMOP|5.003007|5.003007|
newPROG|5.003007|5.003007|u
newPVOP|5.003007|5.003007|
newRANGE|5.003007|5.003007|
-new_regcurly|5.027001||Vniu
-newRV|5.003007|5.003007|u
+newRV|5.003007|5.003007|
newRV_inc|5.004000|5.003007|p
newRV_noinc|5.004000|5.003007|p
newSLICEOP|5.003007|5.003007|
@@ -8804,8 +9652,8 @@ newSVnv|5.006000|5.003007|
newSVOP|5.003007|5.003007|
newSVpadname|5.017004|5.017004|x
newSVpv|5.003007|5.003007|
-newSVpvf|5.006000|5.004000|v
-newSVpvf_nocontext|5.006000|5.006000|vn
+newSVpvf|5.004000||vV
+newSVpvf_nocontext|5.006000||vVn
newSVpvn|5.004005|5.003007|p
newSVpvn_flags|5.010001|5.003007|p
newSVpvn_share|5.007001|5.003007|p
@@ -8817,10 +9665,13 @@ newSVpvs_share|5.009003|5.003007|p
newSVREF|5.003007|5.003007|u
newSVrv|5.003007|5.003007|
newSVsv|5.003007|5.003007|
-newSVsv_flags|5.029009|5.003007|pocVu
+newSVsv_flags|5.029009|5.003007|p
newSVsv_nomg|5.029009|5.003007|p
newSV_type|5.009005|5.003007|p
+newSV_type_mortal|||
newSVuv|5.006000|5.003007|p
+new_SV|||Viu
+newTRYCATCHOP|5.033007|5.033007|x
newUNOP|5.003007|5.003007|
newUNOP_AUX|5.021007|5.021007|
new_version|5.009000|5.009000|
@@ -8830,6 +9681,9 @@ newWHENOP|5.027008|5.027008|
newWHILEOP|5.013007|5.013007|
Newx|5.009003|5.003007|p
Newxc|5.009003|5.003007|p
+new_XNV|||Viu
+new_XPVMG|||Viu
+new_XPVNV|||Viu
newXS|5.006000|5.006000|
newXS_deffile|5.021006||cViu
newXS_flags|5.009004|5.009004|xu
@@ -8841,10 +9695,13 @@ nextargv|5.003007||Viu
nextchar|5.005000||Viu
NEXT_LINE_CHAR|5.007003||Viu
NEXT_OFF|5.005000||Viu
-NEXTOPER|5.003007||Viu
next_symbol|5.007003||Viu
ninstr|5.003007|5.003007|n
+NL_LANGINFO_LOCK|5.033005||Viu
+NL_LANGINFO_UNLOCK|5.033005||Viu
+NOARENA|||Viu
no_bareword_allowed|5.005004||Viu
+no_bareword_filehandle|5.033006||Viu
NOCAPTURE_PAT_MOD|5.021008||Viu
NOCAPTURE_PAT_MODS|5.021008||Viu
NODE_ALIGN|5.005000||Viu
@@ -8857,10 +9714,10 @@ NofAMmeth|5.003007||Viu
no_fh_allowed|5.003007||Viu
NOLINE|5.003007||Viu
NO_LOCALE|5.007000||Viu
-NO_LOCALECONV_MON_THOUSANDS_SEP|5.005000||Viu
NONDESTRUCT_PAT_MOD|5.013002||Viu
NONDESTRUCT_PAT_MODS|5.013002||Viu
-NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C|5.021005||Viu
+NON_OTHER_COUNT|5.033005||Viu
+NONV|||Viu
no_op|5.003007||Viu
NOOP|5.005000|5.003007|p
noperl_die|5.021006||vVniu
@@ -8871,15 +9728,45 @@ NO_TAINT_SUPPORT|5.017006||Viu
not_a_number|5.005000||Viu
NOTE3|5.027001||Viu
NOTHING|5.003007||Viu
+NOTHING_t8|5.035004||Viu
+NOTHING_t8_p8|5.033003||Viu
+NOTHING_t8_pb|5.033003||Viu
+NOTHING_tb|5.035004||Viu
+NOTHING_tb_p8|5.033003||Viu
+NOTHING_tb_pb|5.033003||Viu
nothreadhook|5.008000|5.008000|
notify_parser_that_changed_to_utf8|5.025010||Viu
not_incrementable|5.021002||Viu
NOT_IN_PAD|5.005000||Viu
-NOT_REACHED|5.019006||Viu
+NOT_REACHED|5.019006|5.003007|poVnu
NPOSIXA|5.017003||Viu
+NPOSIXA_t8|5.035004||Viu
+NPOSIXA_t8_p8|5.033003||Viu
+NPOSIXA_t8_pb|5.033003||Viu
+NPOSIXA_tb|5.035004||Viu
+NPOSIXA_tb_p8|5.033003||Viu
+NPOSIXA_tb_pb|5.033003||Viu
NPOSIXD|5.017003||Viu
+NPOSIXD_t8|5.035004||Viu
+NPOSIXD_t8_p8|5.033003||Viu
+NPOSIXD_t8_pb|5.033003||Viu
+NPOSIXD_tb|5.035004||Viu
+NPOSIXD_tb_p8|5.033003||Viu
+NPOSIXD_tb_pb|5.033003||Viu
NPOSIXL|5.017003||Viu
+NPOSIXL_t8|5.035004||Viu
+NPOSIXL_t8_p8|5.033003||Viu
+NPOSIXL_t8_pb|5.033003||Viu
+NPOSIXL_tb|5.035004||Viu
+NPOSIXL_tb_p8|5.033003||Viu
+NPOSIXL_tb_pb|5.033003||Viu
NPOSIXU|5.017003||Viu
+NPOSIXU_t8|5.035004||Viu
+NPOSIXU_t8_p8|5.033003||Viu
+NPOSIXU_t8_pb|5.033003||Viu
+NPOSIXU_tb|5.035004||Viu
+NPOSIXU_tb_p8|5.033003||Viu
+NPOSIXU_tb_pb|5.033003||Viu
NSIG|5.009003||Viu
ntohi|5.003007||Viu
ntohl|5.003007||Viu
@@ -8896,16 +9783,16 @@ Nullhek|5.004000||Viu
Nullhv|5.003007|5.003007|d
Nullop|5.003007||Viu
Nullsv|5.003007|5.003007|
-NUM2PTR|5.006000|5.003007|pocV
+NUM2PTR|5.006000||pVu
NUM_ANYOF_CODE_POINTS|5.021004||Viu
NUM_CLASSES|5.029001||Viu
num_overflow|5.009001||Vniu
NV_BIG_ENDIAN|5.021009||Viu
NV_DIG|5.006000||Viu
-NVef|5.006001|5.003007|p
+NVef|5.006001|5.003007|poVn
NV_EPSILON|5.007003||Viu
-NVff|5.006001|5.003007|p
-NVgf|5.006001|5.003007|p
+NVff|5.006001|5.003007|poVn
+NVgf|5.006001|5.003007|poVn
NV_IMPLICIT_BIT|5.021009||Viu
NV_INF|5.007003||Viu
NV_LITTLE_ENDIAN|5.021009||Viu
@@ -8955,7 +9842,7 @@ NV_VAX_ENDIAN|5.025003||Viu
NV_WITHIN_IV|5.006000||Viu
NV_WITHIN_UV|5.006000||Viu
NV_X86_80_BIT|5.025004||Viu
-NV_ZERO_IS_ALLBITS_ZERO|5.009003|5.009003|Vn
+NV_ZERO_IS_ALLBITS_ZERO|5.035009|5.035009|Vn
OA_AVREF|5.003007||Viu
OA_BASEOP|5.005000||Viu
OA_BASEOP_OR_UNOP|5.005000||Viu
@@ -8994,20 +9881,20 @@ O_BINARY|5.006000||Viu
O_CREAT|5.006000||Viu
OCSHIFT|5.006000||Viu
OCTAL_VALUE|5.019008||Viu
-Off|5.006000||Viu
Off_t|5.003007|5.003007|Vn
Off_t_size|5.006000|5.006000|Vn
OFFUNI_IS_INVARIANT|5.023003||Viu
OFFUNISKIP|5.019004||Viu
+OFFUNISKIP_helper|5.035004||Viu
ONCE_PAT_MOD|5.009005||Viu
ONCE_PAT_MODS|5.009005||Viu
+ONE_IF_EBCDIC_ZERO_IF_NOT|5.035004||Viu
oopsAV|5.003007||Viu
oopsHV|5.003007||Viu
OP|5.003007||Viu
op_append_elem|5.013006|5.013006|
op_append_list|5.013006|5.013006|
opASSIGN|5.003007||Viu
-OP_BINARY|5.004000||Viu
OP_CHECK_MUTEX_INIT|5.015008||Viu
OP_CHECK_MUTEX_LOCK|5.015008||Viu
OP_CHECK_MUTEX_TERM|5.015008||Viu
@@ -9026,10 +9913,22 @@ opendir|5.005000||Viu
openn_cleanup|5.019010||Viu
openn_setup|5.019010||Viu
open_script|5.005000||Viu
+OPEN_t8|5.035004||Viu
+OPEN_t8_p8|5.033003||Viu
+OPEN_t8_pb|5.033003||Viu
+OPEN_tb|5.035004||Viu
+OPEN_tb_p8|5.033003||Viu
+OPEN_tb_pb|5.033003||Viu
OPERAND|5.003007||Viu
OPERANDl|5.031005||Viu
OPERANDs|5.031005||Viu
OPFAIL|5.009005||Viu
+OPFAIL_t8|5.035004||Viu
+OPFAIL_t8_p8|5.033003||Viu
+OPFAIL_t8_pb|5.033003||Viu
+OPFAIL_tb|5.035004||Viu
+OPFAIL_tb_p8|5.033003||Viu
+OPFAIL_tb_pb|5.033003||Viu
OPf_FOLDED|5.021007||Viu
OPf_KIDS|5.003007|5.003007|
OPf_KNOW|5.003007||Viu
@@ -9093,6 +9992,7 @@ OPpCOREARGS_DEREF1|5.015003||Viu
OPpCOREARGS_DEREF2|5.015003||Viu
OPpCOREARGS_PUSHMARK|5.015003||Viu
OPpCOREARGS_SCALARMOD|5.015003||Viu
+OPpDEFER_FINALLY|5.035008||Viu
OPpDEREF|5.004000||Viu
OPpDEREF_AV|5.003007||Viu
OPpDEREF_HV|5.003007||Viu
@@ -9164,15 +10064,13 @@ OPpSORT_INPLACE|5.009001||Viu
OPpSORT_INTEGER|5.006000||Viu
OPpSORT_NUMERIC|5.006000||Viu
OPpSORT_REVERSE|5.006000||Viu
-OPpSORT_STABLE|5.009003||Viu
-OPpSORT_UNSTABLE|5.027004||Viu
OPpSPLIT_ASSIGN|5.025006||Viu
OPpSPLIT_IMPLIM|5.019002||Viu
OPpSPLIT_LEX|5.025006||Viu
OPpSUBSTR_REPL_FIRST|5.015006||Viu
OPpTARGET_MY|5.006000||Viu
OPpTRANS_ALL|5.009001||Viu
-OPpTRANS_CAN_FORCE_UTF8|5.031007||Viu
+OPpTRANS_CAN_FORCE_UTF8|5.031006||Viu
OPpTRANS_COMPLEMENT|5.003007||Viu
OPpTRANS_DELETE|5.003007||Viu
OPpTRANS_FROM_UTF|5.006000||Viu
@@ -9180,8 +10078,9 @@ OPpTRANS_GROWS|5.006000||Viu
OPpTRANS_IDENTICAL|5.006000||Viu
OPpTRANS_SQUASH|5.003007||Viu
OPpTRANS_TO_UTF|5.006000||Viu
-OPpTRANS_USE_SVOP|5.031007||Viu
+OPpTRANS_USE_SVOP|5.031006||Viu
OPpTRUEBOOL|5.017004||Viu
+OPpUSEINT|5.035005||Viu
OpREFCNT_dec|5.006000||Viu
op_refcnt_dec|||xiu
OpREFCNT_inc|5.006000||Viu
@@ -9206,11 +10105,18 @@ OpslabREFCNT_dec|5.017002||Viu
OpslabREFCNT_dec_padok|5.017002||Viu
OpSLOT|5.017002||Viu
OPSLOT_HEADER|5.017002||Viu
-OPSLOT_HEADER_P|5.017002||Viu
+OpSLOToff|5.033001||Viu
op_std_init|5.015003||Viu
OPTIMIZED|5.005000||Viu
+OPTIMIZED_t8|5.035004||Viu
+OPTIMIZED_t8_p8|5.033003||Viu
+OPTIMIZED_t8_pb|5.033003||Viu
+OPTIMIZED_tb|5.035004||Viu
+OPTIMIZED_tb_p8|5.033003||Viu
+OPTIMIZED_tb_pb|5.033003||Viu
optimize_op|5.027006||Viu
optimize_optree|5.027006||Vi
+optimize_regclass|5.035001||Viu
OP_TYPE_IS|5.019007|5.019007|
OP_TYPE_IS_NN|5.019010||Viu
OP_TYPE_ISNT|5.019010||Viu
@@ -9220,6 +10126,7 @@ OP_TYPE_ISNT_NN|5.019010||Viu
OP_TYPE_IS_OR_WAS|5.019010|5.019010|
OP_TYPE_IS_OR_WAS_NN|5.019010||Viu
op_unscope|5.017003||xViu
+op_wrap_finally|5.035008|5.035008|x
O_RDONLY|5.006000||Viu
O_RDWR|5.006000||Viu
ORIGMARK|5.003007|5.003007|
@@ -9233,14 +10140,14 @@ O_VMS_DELETEONCLOSE|5.031002||Viu
O_WRONLY|5.006000||Viu
package|5.003007||Viu
package_version|5.011001||Viu
-pack_cat|5.007003|5.007003|d
+pack_cat|5.033002|5.033002|d
packlist|5.008001|5.008001|
pack_rec|5.008001||Viu
-packWARN2|5.007003|5.007003|p
-packWARN3|5.007003|5.007003|p
-packWARN4|5.007003|5.007003|p
+packWARN2|5.007003|5.003007|p
+packWARN3|5.007003|5.003007|p
+packWARN4|5.007003|5.003007|p
packWARN|5.007003|5.003007|p
-pad_add_anon|5.008001|5.008001|
+pad_add_anon|5.015001|5.015001|
pad_add_name_pv|5.015001|5.015001|
pad_add_name_pvn|5.015001|5.015001|
pad_add_name_pvs|5.015001|5.015001|
@@ -9250,7 +10157,7 @@ padadd_OUR|5.011002||Viu
padadd_STALEOK|5.017003||Viu
padadd_STATE|5.011002||Viu
pad_add_weakref|5.021007||Viu
-pad_alloc|5.003007|5.003007|x
+pad_alloc|5.015001|5.015001|x
pad_alloc_name|5.015001||Vi
PadARRAY|5.017004|5.017004|x
PAD_BASE_SV|5.008001||Vi
@@ -9266,7 +10173,7 @@ PAD_COMPNAME_OURSTASH|5.008001||Vi
PAD_COMPNAME_PV|5.008001||Vi
PAD_COMPNAME_SV|5.009005||Viu
PAD_COMPNAME_TYPE|5.008001||Vi
-pad_compname_type|5.009003|5.009003|d
+pad_compname_type|5.033005|5.033005|d
PAD_FAKELEX_ANON|5.009005||Viu
PAD_FAKELEX_MULTI|5.009005||Viu
pad_findlex|5.005000||Vi
@@ -9322,7 +10229,7 @@ PADNAMEt_TYPED|5.021007||Viu
PadnameTYPE|5.017004||Vi
PadnameTYPE_set|5.021007||Viu
PadnameUTF8|5.017004|5.017004|x
-pad_new|5.008001|5.008001|
+pad_new|5.015001|5.015001|
padnew_CLONE|5.008001||Viu
padnew_SAVE|5.008001||Viu
padnew_SAVESUB|5.008001||Viu
@@ -9340,7 +10247,7 @@ pad_sv|5.003007||cV
PAD_SV|5.003007||Vi
PAD_SVl|5.008001||Vi
pad_swipe|5.003007||Vi
-pad_tidy|5.008001|5.008001|x
+pad_tidy|5.015001|5.015001|x
panic_write2|5.008001||Viu
PARENT_FAKELEX_FLAGS|5.009005||Viu
PARENT_PAD_INDEX|5.009005||Viu
@@ -9372,7 +10279,7 @@ pclose|5.003007||Viu
peep|5.003007||Viu
pending_ident|5.017004||Viu
PERL_ABS|5.008001|5.003007|p
-Perl_acos|5.021004||Viu
+Perl_acos|5.021004|5.021004|n
perl_alloc|5.003007|5.003007|n
PERL_ALLOC_CHECK|5.006000||Viu
perl_alloc_using|5.006000||Vnu
@@ -9383,32 +10290,36 @@ PERL_API_VERSION|5.006000||Viu
PERL_API_VERSION_STRING|5.013004||Viu
PERL_ARENA_ROOTS_SIZE|5.009004||Viu
PERL_ARENA_SIZE|5.009003||Viu
-PERL_ARGS_ASSERT_CROAK_XS_USAGE|||piu
-Perl_asin|5.021004||Viu
+PERL_ARGS_ASSERT_CROAK_XS_USAGE|||ponu
+Perl_asin|5.021004|5.021004|n
Perl_assert|5.011000||Viu
perl_assert_ptr|5.027004||Viu
-PERL_ASYNC_CHECK|5.006000||Viu
-Perl_atan2|5.006000||Viu
-Perl_atan|5.021004||Viu
+PERL_ASYNC_CHECK|5.006000|5.006000|
+Perl_atan2|5.006000|5.006000|n
+Perl_atan|5.021004|5.021004|n
Perl_atof2|5.006001||Viu
Perl_atof|5.006000||Viu
+PERL_BCDVERSION||5.003007|onu
PERL_BISON_VERSION|5.023008||Viu
PERL_BITFIELD16|5.010001||Viu
PERL_BITFIELD32|5.010001||Viu
PERL_BITFIELD8|5.010001||Viu
PERL_CALLCONV|5.005002||Viu
PERL_CALLCONV_NO_RET|5.017002||Viu
-Perl_calloc|5.006000||Viu
-Perl_ceil|5.009001||Viu
+Perl_ceil|5.009001|5.009001|n
PERL_CKDEF|5.006000||Viu
perl_clone|5.006000||Vn
perl_clone_using|5.006000||Vnu
+PERL_CLZ_32|5.035003||Viu
+PERL_CLZ_64|5.035003||Viu
perl_construct|5.003007|5.003007|n
PERL_COP_SEQMAX|5.013010||Viu
PERL_COPY_ON_WRITE|5.023001||Viu
-Perl_cos|5.006000||Viu
-Perl_cosh|5.021004||Viu
+Perl_cos|5.006000|5.006000|n
+Perl_cosh|5.021004|5.021004|n
PERL_COUNT_MULTIPLIER|5.027007||Viu
+PERL_CTZ_32|5.035003||Viu
+PERL_CTZ_64|5.035003||Viu
Perl_custom_op_xop|5.019006||V
PERLDB_ALL|5.004002||Viu
PERLDBf_GOTO|5.004005||Viu
@@ -9440,6 +10351,10 @@ PERLDB_SUBLINE|5.004002||Viu
PERLDB_SUB_NN|5.004005||Viu
PERL_DEB2|5.021007||Viu
PERL_DEB|5.008001||Viu
+PERL_deBruijnMagic32|5.035003||Viu
+PERL_deBruijnMagic64|5.035003||Viu
+PERL_deBruijnShift32|5.035003||Viu
+PERL_deBruijnShift64|5.035003||Viu
PERL_DEBUG|5.008001||Viu
Perl_debug_log|5.003007||Viu
PERL_DEBUG_PAD|5.007003||Viu
@@ -9496,13 +10411,14 @@ PERL_EXIT_ABORT|5.019003|5.019003|
PERL_EXIT_DESTRUCT_END|5.007003|5.007003|
PERL_EXIT_EXPECTED|5.006000|5.006000|
PERL_EXIT_WARN|5.019003|5.019003|
-Perl_exp|5.006000||Viu
+Perl_exp|5.006000|5.006000|n
+Perl_fabs|5.035005||Viu
PERL_FEATURE_H|5.029006||Viu
PERL_FILE_IS_ABSOLUTE|5.006000||Viu
PERL_FILTER_EXISTS|5.009005||Viu
-Perl_floor|5.006000||Viu
+Perl_floor|5.006000|5.006000|n
PERL_FLUSHALL_FOR_CHILD|5.006000||Viu
-Perl_fmod|5.006000||Viu
+Perl_fmod|5.006000|5.006000|n
Perl_fp_class|5.007003||Viu
Perl_fp_class_denorm|5.007003||Viu
Perl_fp_class_inf|5.007003||Viu
@@ -9524,21 +10440,28 @@ PERL_FPU_POST_EXEC|5.008001||Viu
PERL_FPU_PRE_EXEC|5.008001||Viu
perl_free|5.003007|5.003007|n
Perl_free_c_backtrace|5.021001||Viu
-Perl_frexp|5.006000||Viu
+Perl_frexp|5.006000|5.006000|n
PERL_FS_VER_FMT|5.006000||Viu
PERL_FS_VERSION|5.010001||Viu
PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||Viu
+PERL_GCC_VERSION_GE|5.035003||Viu
+PERL_GCC_VERSION_GT|5.035003||Viu
+PERL_GCC_VERSION_LE|5.035003||Viu
+PERL_GCC_VERSION_LT|5.035003||Viu
PERL_GET_CONTEXT|5.006000||Viu
PERL_GET_INTERP|5.006000||Viu
PERL_GET_THX|5.006000||Viu
-PERL_GIT_UNCOMMITTED_CHANGES|5.033000||Viu
PERL_GIT_UNPUSHED_COMMITS|5.010001||Viu
PERL_GPROF_MONCONTROL|5.007002||Viu
PERL_HANDY_H|5.027001||Viu
+PERL_HAS_FAST_GET_LSB_POS32|5.035003||Viu
+PERL_HAS_FAST_GET_LSB_POS64|5.035003||Viu
+PERL_HAS_FAST_GET_MSB_POS32|5.035003||Viu
+PERL_HAS_FAST_GET_MSB_POS64|5.035003||Viu
PERL_HASH|5.003007|5.003007|p
PERL_HASH_DEFAULT_HvMAX|5.017011||Viu
PERL_HASH_FUNC|5.017006||Viu
-PERL_HASH_FUNC_STADTX|5.027001||Viu
+PERL_HASH_FUNC_SIPHASH13|5.033007||Viu
PERL_HASH_FUNC_ZAPHOD32|5.027001||Viu
PERL_HASH_INTERNAL|5.008002||Viu
PERL_HASH_ITER_BUCKET|5.018000||Viu
@@ -9546,15 +10469,16 @@ PERL_HASH_RANDOMIZE_KEYS|5.018000||Viu
PERL_HASH_SEED|5.008001||Viu
PERL_HASH_SEED_BYTES|5.017006||Viu
PERL_HASH_SEED_STATE|5.027001||Viu
+PERL_HASH_SEED_WORDS|5.033007||Viu
PERL_HASH_STATE_BYTES|5.027001||Viu
+PERL_HASH_STATE_WORDS|5.033007||Viu
PERL_HASH_USE_SBOX32_ALSO|5.027001||Viu
PERL_HASH_WITH_SEED|5.021001||Viu
PERL_HASH_WITH_STATE|5.027001||Viu
-PERL_HV_ALLOC_AUX_SIZE|5.019010||Viu
PERL_HV_ARRAY_ALLOC_BYTES|5.006000||Viu
PERL___I|5.009005||Viu
PERL_IMPLICIT_CONTEXT|5.006000||Viu
-PERL_INC_VERSION_LIST|5.033000|5.033000|Vn
+PERL_INC_VERSION_LIST|5.035009|5.035009|Vn
Perl_internal_drand48|5.027004||Viu
PERL_INTERPRETER_SIZE_UPTO_MEMBER|5.010000||Viu
PERL_INT_MAX|5.003007|5.003007|p
@@ -9569,39 +10493,39 @@ PERLIOBUF_DEFAULT_BUFSIZ|5.013007||Viu
PerlIO_canset_cnt|5.003007|5.003007|n
PerlIO_clearerr|5.007003|5.007003|
PerlIO_close|5.007003|5.007003|
-PerlIO_context_layers|5.009004|5.009004|u
+PerlIO_context_layers|||u
PerlIO_debug|5.007001|5.007001|
PERLIO_DUP_CLONE|5.007003||Viu
PERLIO_DUP_FD|5.007003||Viu
PerlIO_eof|5.007003|5.007003|
PerlIO_error|5.007003|5.007003|
PerlIO_exportFILE|5.003007|5.003007|n
-PERLIO_F_APPEND|5.007001||Viu
+PERLIO_F_APPEND|5.007001|5.007001|
PerlIO_fast_gets|5.003007|5.003007|n
-PERLIO_F_CANREAD|5.007001||Viu
-PERLIO_F_CANWRITE|5.007001||Viu
+PERLIO_F_CANREAD|5.007001|5.007001|
+PERLIO_F_CANWRITE|5.007001|5.007001|
PERLIO_F_CLEARED|5.013008||Viu
-PERLIO_F_CRLF|5.007001||Viu
+PERLIO_F_CRLF|5.007001|5.007001|
PerlIO_fdopen|5.003007|5.003007|n
-PERLIO_F_EOF|5.007001||Viu
-PERLIO_F_ERROR|5.007001||Viu
-PERLIO_F_FASTGETS|5.007001||Viu
+PERLIO_F_EOF|5.007001|5.007001|
+PERLIO_F_ERROR|5.007001|5.007001|
+PERLIO_F_FASTGETS|5.007001|5.007001|
PerlIO_fileno|5.007003|5.007003|
-PerlIO_fill|5.007003|5.007003|u
+PerlIO_fill|5.007000|5.007000|u
PerlIO_findFILE|5.003007|5.003007|n
-PERLIO_F_LINEBUF|5.007001||Viu
+PERLIO_F_LINEBUF|5.007001|5.007001|
PerlIO_flush|5.007003|5.007003|
PERLIO_F_NOTREG|5.008001||Viu
-PERLIO_F_OPEN|5.007001||Viu
-PERLIO_F_RDBUF|5.007001||Viu
-PERLIO_F_TEMP|5.007001||Viu
-PERLIO_F_TRUNCATE|5.007001||Viu
+PERLIO_F_OPEN|5.007001|5.007001|
+PERLIO_F_RDBUF|5.007001|5.007001|
+PERLIO_F_TEMP|5.007001|5.007001|
+PERLIO_F_TRUNCATE|5.007001|5.007001|
PERLIO_F_TTY|5.007001||Viu
-PERLIO_F_UNBUF|5.007001||Viu
-PERLIO_FUNCS_CAST|5.009003|5.007001|p
-PERLIO_FUNCS_DECL|5.009003|5.009003|pV
-PERLIO_F_UTF8|5.007001||Viu
-PERLIO_F_WRBUF|5.007001||Viu
+PERLIO_F_UNBUF|5.007001|5.007001|
+PERLIO_FUNCS_CAST|5.009003||pVu
+PERLIO_FUNCS_DECL|5.009003|5.009003|pVu
+PERLIO_F_UTF8|5.007001|5.007001|
+PERLIO_F_WRBUF|5.007001|5.007001|
PerlIO_get_base|5.007003|5.007003|
PerlIO_get_bufsiz|5.007003|5.007003|
PerlIO_getc|5.003007|5.003007|n
@@ -9613,13 +10537,13 @@ PerlIO_has_base|5.003007|5.003007|n
PerlIO_has_cntptr|5.003007|5.003007|n
PerlIO_importFILE|5.003007|5.003007|n
PERLIO_INIT|5.009005||Viu
-PERLIO_K_BUFFERED|5.007001||Viu
-PERLIO_K_CANCRLF|5.007001||Viu
+PERLIO_K_BUFFERED|5.007001|5.007001|
+PERLIO_K_CANCRLF|5.007001|5.007001|
PERLIO_K_DESTRUCT|5.007001||Viu
PERLIO_K_DUMMY|5.007001||Viu
-PERLIO_K_FASTGETS|5.007001||Viu
-PERLIO_K_MULTIARG|5.007003||Viu
-PERLIO_K_RAW|5.007001||Viu
+PERLIO_K_FASTGETS|5.007001|5.007001|
+PERLIO_K_MULTIARG|5.007003|5.007003|
+PERLIO_K_RAW|5.007001|5.007001|
PERLIO_K_UTF8|5.007001||Viu
PERLIO_LAYERS|5.007001||Viu
PERLIOL_H|5.027001||Viu
@@ -9631,7 +10555,7 @@ PerlIO_putc|5.003007|5.003007|n
PerlIO_puts|5.003007|5.003007|n
PerlIO_read|5.007003|5.007003|
PerlIO_releaseFILE|5.003007|5.003007|n
-PerlIO_reopen|5.003007|5.003007|
+PerlIO_reopen|5.003007|5.003007|n
PerlIO_restore_errno|5.021006||cViu
PerlIO_rewind|5.003007|5.003007|n
PerlIO_save_errno|5.021006||cViu
@@ -9654,16 +10578,18 @@ PERLIO_USING_CRLF|5.007003||Viu
PerlIOValid|5.007003||Viu
PerlIO_vprintf|5.003007|5.003007|n
PerlIO_write|5.007003|5.007003|
-Perl_isfinite|5.007003||Viu
+Perl_isfinite|5.007003|5.007003|n
Perl_isfinitel|5.021004||Viu
-PERL_IS_GCC|5.031011||Viu
-Perl_isinf|5.007003||Viu
-Perl_isnan|5.006001||Viu
+PERL_IS_GCC|5.032001||Viu
+Perl_isinf|5.007003|5.007003|n
+Perl_isnan|5.006001|5.006001|n
PERL_IS_SUBWORD_ADDR|5.027007||Viu
+PERL_IS_UTF8_CHAR_DFA|5.035004||Viu
+PERL_JNP_TO_DECIMAL|5.033001||Viu
Perl_langinfo|5.027004|5.027004|n
PERL_LANGINFO_H|5.027004||Viu
PERL_LAST_5_18_0_INTERP_MEMBER|5.017009||Viu
-Perl_ldexp|5.021003||Viu
+Perl_ldexp|5.021003|5.021003|n
PerlLIO_access|5.005000||Viu
PerlLIO_chmod|5.005000||Viu
PerlLIO_chown|5.005000||Viu
@@ -9686,9 +10612,11 @@ PerlLIO_open3_cloexec|5.027008||Viu
PerlLIO_open|5.005000||Viu
PerlLIO_open_cloexec|5.027008||Viu
PerlLIO_read|5.005000||Viu
+PerlLIO_readlink|5.033005||Viu
PerlLIO_rename|5.005000||Viu
PerlLIO_setmode|5.005000||Viu
PerlLIO_stat|5.005000||Viu
+PerlLIO_symlink|5.033005||Viu
PerlLIO_tmpnam|5.005000||Viu
PerlLIO_umask|5.005000||Viu
PerlLIO_unlink|5.005000||Viu
@@ -9697,8 +10625,8 @@ PerlLIO_write|5.005000||Viu
PERL_LOADMOD_DENY|5.006000|5.003007|
PERL_LOADMOD_IMPORT_OPS|5.006000|5.003007|
PERL_LOADMOD_NOIMPORT|5.006000|5.003007|
-Perl_log10|5.021004||Viu
-Perl_log|5.006000||Viu
+Perl_log10|5.021004|5.021004|n
+Perl_log|5.006000|5.006000|n
PERL_LONG_MAX|5.003007|5.003007|p
PERL_LONG_MIN|5.003007|5.003007|p
PERL_MAGIC_arylen|5.007002|5.003007|p
@@ -9755,7 +10683,6 @@ PERL_MAGIC_VALUE_MAGIC|5.015000||Viu
PERL_MAGIC_vec|5.007002|5.003007|p
PERL_MAGIC_vstring|5.008001|5.003007|p
PERL_MAGIC_VTABLE_MASK|5.015000||Viu
-Perl_malloc|5.006000||Viu
PERL_MALLOC_CTL_H|5.027001||Viu
Perl_malloc_good_size|5.010001||Viu
PERL_MALLOC_WRAP|5.009002|5.009002|Vn
@@ -9781,9 +10708,8 @@ PerlMemShared_get_lock|5.006000||Viu
PerlMemShared_is_locked|5.006000||Viu
PerlMemShared_malloc|5.006000||Viu
PerlMemShared_realloc|5.006000||Viu
-Perl_mfree|5.006000||Viu
PERL_MG_UFUNC|5.007001||Viu
-Perl_modf|5.006000||Viu
+Perl_modf|5.006000|5.006000|n
PERL_MULTICONCAT_HEADER_SIZE|5.027006||Viu
PERL_MULTICONCAT_IX_LENGTHS|5.027006||Viu
PERL_MULTICONCAT_IX_NARGS|5.027006||Viu
@@ -9799,6 +10725,7 @@ PERL_MY_SNPRINTF_POST_GUARD|5.021002||Viu
PERL_MY_VSNPRINTF_GUARDED|5.009004||Viu
PERL_MY_VSNPRINTF_POST_GUARD|5.021002||Viu
PERL_NO_DEV_RANDOM|5.009004||Viu
+PERL_NON_CORE_CHECK_EMPTY|5.035004||Viu
PERL_OBJECT_THIS|5.005000||Viu
PERL_OP_PARENT|5.025001||Viu
PERL_PADNAME_MINIMAL|5.021007||Viu
@@ -9807,7 +10734,7 @@ perl_parse|5.006000|5.006000|n
PERL_PATCHLEVEL_H_IMPLICIT|5.006000||Viu
PERL_PATCHNUM|5.010001||Viu
PERL_POISON_EXPR|5.019006||Viu
-Perl_pow|5.006000||Viu
+Perl_pow|5.006000|5.006000|n
Perl_pp_accept|5.013009||Viu
Perl_pp_aelemfast_lex|5.015000||Viu
Perl_pp_andassign|5.013009||Viu
@@ -9967,6 +10894,7 @@ perl_pthread_mutex_lock|5.023006||Viu
perl_pthread_mutex_unlock|5.023006||Viu
PERL_PV_ESCAPE_ALL|5.009004|5.003007|p
PERL_PV_ESCAPE_DWIM|5.019008||Viu
+PERL_PV_ESCAPE_DWIM_ALL_HEX|||Viu
PERL_PV_ESCAPE_FIRSTCHAR|5.009004|5.003007|p
PERL_PV_ESCAPE_NOBACKSLASH|5.009004|5.003007|p
PERL_PV_ESCAPE_NOCLEAR|5.009004|5.003007|p
@@ -9975,69 +10903,71 @@ PERL_PV_ESCAPE_QUOTE|5.009004|5.003007|p
PERL_PV_ESCAPE_RE|5.009005|5.003007|p
PERL_PV_ESCAPE_UNI|5.009004|5.003007|p
PERL_PV_ESCAPE_UNI_DETECT|5.009004|5.003007|p
-PERL_PV_PRETTY_DUMP|5.009004|5.003007|pocV
+PERL_PV_PRETTY_DUMP|5.009004||pcV
PERL_PV_PRETTY_ELLIPSES|5.010000|5.003007|p
PERL_PV_PRETTY_EXACTSIZE|5.021005||Viu
PERL_PV_PRETTY_LTGT|5.009004|5.003007|p
-PERL_PV_PRETTY_NOCLEAR|5.010000|5.003007|pocV
+PERL_PV_PRETTY_NOCLEAR|5.010000||pcV
PERL_PV_PRETTY_QUOTE|5.009004|5.003007|p
-PERL_PV_PRETTY_REGPROP|5.009004|5.003007|pocV
+PERL_PV_PRETTY_REGPROP|5.009004||pcV
PERL_QUAD_MAX|5.003007|5.003007|p
PERL_QUAD_MIN|5.003007|5.003007|p
-Perl_realloc|5.006000||Viu
+PERL_READ_LOCK|5.033005||Viu
+PERL_READ_UNLOCK|5.033005||Viu
PERL_REENTR_API|5.009005||Viu
PERL_REENTR_H|5.027001||Viu
-PERL_REENTR_USING_ASCTIME_R|5.031010||Viu
-PERL_REENTR_USING_CRYPT_R|5.031010||Viu
-PERL_REENTR_USING_CTERMID_R|5.031010||Viu
-PERL_REENTR_USING_CTIME_R|5.031010||Viu
-PERL_REENTR_USING_ENDGRENT_R|5.031010||Viu
-PERL_REENTR_USING_ENDHOSTENT_R|5.031010||Viu
-PERL_REENTR_USING_ENDNETENT_R|5.031010||Viu
-PERL_REENTR_USING_ENDPROTOENT_R|5.031010||Viu
-PERL_REENTR_USING_ENDPWENT_R|5.031010||Viu
-PERL_REENTR_USING_ENDSERVENT_R|5.031010||Viu
-PERL_REENTR_USING_GETGRENT_R|5.031010||Viu
-PERL_REENTR_USING_GETGRGID_R|5.031010||Viu
-PERL_REENTR_USING_GETGRNAM_R|5.031010||Viu
-PERL_REENTR_USING_GETHOSTBYADDR_R|5.031010||Viu
-PERL_REENTR_USING_GETHOSTBYNAME_R|5.031010||Viu
-PERL_REENTR_USING_GETHOSTENT_R|5.031010||Viu
-PERL_REENTR_USING_GETLOGIN_R|5.031010||Viu
-PERL_REENTR_USING_GETNETBYADDR_R|5.031010||Viu
-PERL_REENTR_USING_GETNETBYNAME_R|5.031010||Viu
-PERL_REENTR_USING_GETNETENT_R|5.031010||Viu
-PERL_REENTR_USING_GETPROTOBYNAME_R|5.031010||Viu
-PERL_REENTR_USING_GETPROTOBYNUMBER_R|5.031010||Viu
-PERL_REENTR_USING_GETPROTOENT_R|5.031010||Viu
-PERL_REENTR_USING_GETPWENT_R|5.031010||Viu
-PERL_REENTR_USING_GETPWNAM_R|5.031010||Viu
-PERL_REENTR_USING_GETPWUID_R|5.031010||Viu
-PERL_REENTR_USING_GETSERVBYNAME_R|5.031010||Viu
-PERL_REENTR_USING_GETSERVBYPORT_R|5.031010||Viu
-PERL_REENTR_USING_GETSERVENT_R|5.031010||Viu
-PERL_REENTR_USING_GETSPNAM_R|5.031010||Viu
-PERL_REENTR_USING_GMTIME_R|5.031010||Viu
-PERL_REENTR_USING_LOCALTIME_R|5.031010||Viu
-PERL_REENTR_USING_READDIR64_R|5.031010||Viu
-PERL_REENTR_USING_READDIR_R|5.031010||Viu
-PERL_REENTR_USING_SETGRENT_R|5.031010||Viu
-PERL_REENTR_USING_SETHOSTENT_R|5.031010||Viu
-PERL_REENTR_USING_SETLOCALE_R|5.031010||Viu
-PERL_REENTR_USING_SETNETENT_R|5.031010||Viu
-PERL_REENTR_USING_SETPROTOENT_R|5.031010||Viu
-PERL_REENTR_USING_SETPWENT_R|5.031010||Viu
-PERL_REENTR_USING_SETSERVENT_R|5.031010||Viu
-PERL_REENTR_USING_STRERROR_R|5.031010||Viu
-PERL_REENTR_USING_TMPNAM_R|5.031010||Viu
-PERL_REENTR_USING_TTYNAME_R|5.031010||Viu
+PERL_REENTR_USING_ASCTIME_R|5.031011||Viu
+PERL_REENTR_USING_CRYPT_R|5.031011||Viu
+PERL_REENTR_USING_CTERMID_R|5.031011||Viu
+PERL_REENTR_USING_CTIME_R|5.031011||Viu
+PERL_REENTR_USING_ENDGRENT_R|5.031011||Viu
+PERL_REENTR_USING_ENDHOSTENT_R|5.031011||Viu
+PERL_REENTR_USING_ENDNETENT_R|5.031011||Viu
+PERL_REENTR_USING_ENDPROTOENT_R|5.031011||Viu
+PERL_REENTR_USING_ENDPWENT_R|5.031011||Viu
+PERL_REENTR_USING_ENDSERVENT_R|5.031011||Viu
+PERL_REENTR_USING_GETGRENT_R|5.031011||Viu
+PERL_REENTR_USING_GETGRGID_R|5.031011||Viu
+PERL_REENTR_USING_GETGRNAM_R|5.031011||Viu
+PERL_REENTR_USING_GETHOSTBYADDR_R|5.031011||Viu
+PERL_REENTR_USING_GETHOSTBYNAME_R|5.031011||Viu
+PERL_REENTR_USING_GETHOSTENT_R|5.031011||Viu
+PERL_REENTR_USING_GETLOGIN_R|5.031011||Viu
+PERL_REENTR_USING_GETNETBYADDR_R|5.031011||Viu
+PERL_REENTR_USING_GETNETBYNAME_R|5.031011||Viu
+PERL_REENTR_USING_GETNETENT_R|5.031011||Viu
+PERL_REENTR_USING_GETPROTOBYNAME_R|5.031011||Viu
+PERL_REENTR_USING_GETPROTOBYNUMBER_R|5.031011||Viu
+PERL_REENTR_USING_GETPROTOENT_R|5.031011||Viu
+PERL_REENTR_USING_GETPWENT_R|5.031011||Viu
+PERL_REENTR_USING_GETPWNAM_R|5.031011||Viu
+PERL_REENTR_USING_GETPWUID_R|5.031011||Viu
+PERL_REENTR_USING_GETSERVBYNAME_R|5.031011||Viu
+PERL_REENTR_USING_GETSERVBYPORT_R|5.031011||Viu
+PERL_REENTR_USING_GETSERVENT_R|5.031011||Viu
+PERL_REENTR_USING_GETSPNAM_R|5.031011||Viu
+PERL_REENTR_USING_GMTIME_R|5.031011||Viu
+PERL_REENTR_USING_LOCALTIME_R|5.031011||Viu
+PERL_REENTR_USING_READDIR64_R|5.031011||Viu
+PERL_REENTR_USING_READDIR_R|5.031011||Viu
+PERL_REENTR_USING_SETGRENT_R|5.031011||Viu
+PERL_REENTR_USING_SETHOSTENT_R|5.031011||Viu
+PERL_REENTR_USING_SETLOCALE_R|5.031011||Viu
+PERL_REENTR_USING_SETNETENT_R|5.031011||Viu
+PERL_REENTR_USING_SETPROTOENT_R|5.031011||Viu
+PERL_REENTR_USING_SETPWENT_R|5.031011||Viu
+PERL_REENTR_USING_SETSERVENT_R|5.031011||Viu
+PERL_REENTR_USING_STRERROR_R|5.031011||Viu
+PERL_REENTR_USING_TMPNAM_R|5.031011||Viu
+PERL_REENTR_USING_TTYNAME_R|5.031011||Viu
PERL_REGCHARCLASS_H|5.027001||Viu
PERL_REGCOMP_H|5.029006||Viu
PERL_REGMATCH_SLAB_SLOTS|5.009004||Viu
PERL_RELOCATABLE_INC|5.017002|5.017002|Vn
PERL_REVISION|5.006000|5.006000|d
perl_run|5.003007|5.003007|n
-PERL_RVS_TO_DECIMAL|5.033000||Viu
+PERL_RW_MUTEX_DESTROY|5.033005||Viu
+PERL_RW_MUTEX_INIT|5.033005||Viu
Perl_safesysmalloc_size|5.010001||Viu
PERL_SAWAMPERSAND|5.017010||Viu
PERL_SCAN_ALLOW_MEDIAL_UNDERSCORES|5.031009||Viu
@@ -10068,8 +10998,8 @@ Perl_signbit|5.009005|5.009005|xn
PERLSI_MAGIC|5.005000||Viu
PERLSI_MAIN|5.005000||Viu
PERLSI_MULTICALL|5.023000||Viu
-Perl_sin|5.006000||Viu
-Perl_sinh|5.021004||Viu
+Perl_sin|5.006000|5.006000|n
+Perl_sinh|5.021004|5.021004|n
PerlSIO_canset_cnt|5.007001||Viu
PerlSIO_clearerr|5.007001||Viu
PerlSIO_fast_gets|5.007001||Viu
@@ -10115,14 +11045,13 @@ PerlSIO_ungetc|5.007001||Viu
PERLSI_OVERLOAD|5.005000||Viu
PerlSIO_vprintf|5.007001||Viu
PERL_SIPHASH_FNC|5.025008||Viu
-PERLSI_REGCOMP|5.031010||Viu
+PERLSI_REGCOMP|5.031011||Viu
PERLSI_REQUIRE|5.005000||Viu
PERLSI_SIGNAL|5.005000||Viu
PERLSI_SORT|5.005000||Viu
PERLSI_UNDEF|5.005000||Viu
PERLSI_UNKNOWN|5.005000||Viu
PERLSI_WARNHOOK|5.005000||Viu
-PERL_SMALL_MACRO_BUFFER|5.023008||Viu
PERL_SNPRINTF_CHECK|5.021002||Viu
PerlSock_accept|5.005000||Viu
PerlSock_accept_cloexec|5.027008||Viu
@@ -10172,11 +11101,11 @@ PerlSock_socket|5.005000||Viu
PerlSock_socket_cloexec|5.027008||Viu
PerlSock_socketpair|5.005000||Viu
PerlSock_socketpair_cloexec|5.027008||Viu
-Perl_sqrt|5.006000||Viu
+Perl_sqrt|5.006000|5.006000|n
PERL_STACK_OVERFLOW_CHECK|5.006000||Viu
-PERL_STATIC_FORCE_INLINE|5.031010||Viu
-PERL_STATIC_FORCE_INLINE_NO_RET|5.031010||Viu
-PERL_STATIC_INLINE|5.013004|5.013004|Vn
+PERL_STATIC_FORCE_INLINE|5.031011||Viu
+PERL_STATIC_FORCE_INLINE_NO_RET|5.031011||Viu
+PERL_STATIC_INLINE|5.013004|5.013004|poVn
PERL_STATIC_INLINE_NO_RET|5.017005||Viu
PERL_STATIC_NO_RET|5.017005||Viu
PERL_STRLEN_EXPAND_SHIFT|5.013004||Viu
@@ -10192,9 +11121,10 @@ PERL_SYS_INIT|5.003007|5.003007|
PERL_SYS_INIT_BODY|5.010000||Viu
PERL_SYS_TERM|5.003007|5.003007|
PERL_SYS_TERM_BODY|5.010000||Viu
-Perl_tan|5.021004||Viu
-Perl_tanh|5.021004||Viu
+Perl_tan|5.021004|5.021004|n
+Perl_tanh|5.021004|5.021004|n
PERL_TARGETARCH|5.007002|5.007002|Vn
+PERL_THREAD_LOCAL|5.035004|5.035004|Vn
PERL_TIME64_CONFIG_H|5.027001||Viu
PERL_TIME64_H|5.027001||Viu
PERL_TRACK_MEMPOOL|5.009003||Viu
@@ -10251,6 +11181,7 @@ PERL_UQUAD_MIN|5.003007|5.003007|p
PERL_USE_DEVEL|5.010001|5.010001|Vn
PERL_USE_GCC_BRACE_GROUPS|5.009004|5.003007|pV
PERL_USES_PL_PIDSTATUS|5.009003||Viu
+PERL_USE_THREAD_LOCAL|5.035004||Viu
PERL_USHORT_MAX|5.003007|5.003007|p
PERL_USHORT_MIN|5.003007|5.003007|p
PERL_UTF8_H|5.027001||Viu
@@ -10262,21 +11193,29 @@ PERLVARI|5.005000||Viu
PERL_VARIANTS_WORD_MASK|5.027007||Viu
PERLVARIC|5.005000||Viu
PERL_VERSION|5.006000|5.003007|d
-PERL_VERSION_EQ|5.033000||p
-PERL_VERSION_GE|5.033000|5.003007|p
-PERL_VERSION_GT|5.033000|5.003007|p
-PERL_VERSION_LE|5.033000|5.003007|p
-PERL_VERSION_LT|5.033000|5.003007|p
-PERL_VERSION_NE|5.033000||p
+PERL_VERSION_EQ|5.033001||p
+PERL_VERSION_GE|5.033001|5.003007|p
+PERL_VERSION_GT|5.033001|5.003007|p
+PERL_VERSION_LE|5.033001|5.003007|p
+PERL_VERSION_LT|5.033001|5.003007|p
+PERL_VERSION_MAJOR|5.033001||Viu
+PERL_VERSION_MINOR|5.033001||Viu
+PERL_VERSION_NE|5.033001||p
+PERL_VERSION_PATCH|5.033001||Viu
PERL_VERSION_STRING|5.010001||Viu
PERL_WAIT_FOR_CHILDREN|5.006000||Viu
+Perl_Warn_Bit|5.033003||Viu
Perl_warner_nocontext||5.004000|ponu
PERL_WARNHOOK_FATAL|5.009004||Viu
+Perl_Warn_Off|5.033003||Viu
PERL_WORD_BOUNDARY_MASK|5.027007||Viu
PERL_WORDSIZE|5.027007||Viu
+PERL_WRITE_LOCK|5.033005||Viu
PERL_WRITE_MSG_TO_CONSOLE|5.007003||Viu
+PERL_WRITE_UNLOCK|5.033005||Viu
PERL_XSUB_H|5.027001||Viu
perly_sighandler|5.031007||cVnu
+phase_name|5.035007|5.035007|
PHOSTNAME|5.006000|5.006000|Vn
pidgone|5.003007||Viu
Pid_t|5.005000|5.005000|Vn
@@ -10322,7 +11261,6 @@ PL_comppad_name_floor|5.005000||Viu
PL_constpadix|5.021004||Viu
PL_copline||5.003007|ponu
PL_cop_seqmax|5.005000||Viu
-PL_cryptseen|5.005000||Viu
PL_cshlen|5.005000||Viu
PL_curcop|5.004005|5.003007|p
PL_curcopdb|5.005000||Viu
@@ -10345,10 +11283,10 @@ PL_DBgv|5.005000||Viu
PL_DBline|5.005000||Viu
PL_DBsignal|5.005000|5.003007|poVnu
PL_DBsignal_iv|5.021005||Viu
-PL_DBsingle|5.005000|5.003007|poV
+PL_DBsingle|5.005000||pV
PL_DBsingle_iv|5.021005||Viu
-PL_DBsub|5.005000|5.003007|poV
-PL_DBtrace|5.005000|5.003007|poV
+PL_DBsub|5.005000||pV
+PL_DBtrace|5.005000||pV
PL_DBtrace_iv|5.021005||Viu
PL_debstash|5.005000|5.003007|poVnu
PL_debug|5.005000||Viu
@@ -10367,7 +11305,7 @@ PL_diehook|5.005000|5.003007|poVnu
PL_Dir|5.006000||Viu
PL_dirty|5.005000|5.003007|poVnu
PL_doswitches|5.005000||Viu
-PL_dowarn|5.005000|5.003007|poV
+PL_dowarn|5.005000||pV
PL_dumper_fd|5.009003||Viu
PL_dumpindent|5.006000||Viu
PL_dump_re_max_len|5.023008||Viu
@@ -10402,6 +11340,8 @@ PL_globhook|5.015005||Viu
PL_hash_rand_bits|5.017010||Viu
PL_HASH_RAND_BITS_ENABLED|5.018000||Viu
PL_hash_rand_bits_enabled|5.018000||Viu
+PL_hash_seed|5.033007||Viu
+PL_hash_state|5.033007||Viu
PL_HasMultiCharFold|5.017005||Viu
PL_hexdigit||5.003007|pn
PL_hintgv|5.005000||Viu
@@ -10451,10 +11391,11 @@ PL_markstack_max|5.005000||Viu
PL_markstack_ptr|5.005000||Viu
PL_max_intro_pending|5.005000||Viu
PL_maxo|5.005000||Viu
-PL_maxsysfd|5.005000||Viu
-PL_mbrlen_ps|5.031009||Viu
-PL_mbrtowc_ps|5.031009||Viu
+PL_maxsysfd|5.005000|5.005000|
+PL_mbrlen_ps|5.031010||Viu
+PL_mbrtowc_ps|5.031010||Viu
PL_Mem|5.006000||Viu
+PL_mem_log|5.033005||Viu
PL_memory_debug_header|5.009004||Viu
PL_MemParse|5.006000||Viu
PL_MemShared|5.006000||Viu
@@ -10510,6 +11451,7 @@ PL_pidstatus|5.005000||Viu
PL_Posix_ptrs|5.029000||Viu
PL_ppaddr||5.003007|ponu
PL_preambleav|5.005000||Viu
+PL_prevailing_version|5.035009||Viu
PL_Private_Use|5.029009||Viu
PL_Proc|5.006000||Viu
PL_profiledata|5.005000||Viu
@@ -10529,7 +11471,7 @@ PL_regmatch_slab|5.009004||Viu
PL_regmatch_state|5.009004||Viu
PL_replgv|5.005000||Viu
PL_restartjmpenv|5.013001||Viu
-PL_restartop|5.005000||Viu
+PL_restartop|5.005000|5.005000|
PL_rpeepp|5.013005|5.013005|
PL_rs|5.005000||Vi
PL_rsfp||5.003007|ponu
@@ -10585,7 +11527,7 @@ PL_strxfrm_NUL_replacement|5.025008||Viu
PL_sub_generation|5.005000||Viu
PL_subline|5.005000||Viu
PL_subname|5.005000||Viu
-PL_Sv|5.005000|5.003007|p
+PL_Sv|5.005000||pcV
PL_sv_arenaroot|5.005000|5.003007|poVnu
PL_sv_consts|5.019002||Viu
PL_sv_count|5.005000||Viu
@@ -10608,7 +11550,7 @@ PL_tmps_stack|5.005000||Viu
PL_tokenbuf||5.003007|ponu
PL_top_env|5.005000||Viu
PL_toptarget|5.005000||Viu
-PL_TR_SPECIAL_HANDLING_UTF8|5.031007||Viu
+PL_TR_SPECIAL_HANDLING_UTF8|5.031006||Viu
PL_underlying_numeric_obj|5.027009||Viu
PL_unicode|5.008001||Viu
PL_unitcheckav|5.009005||Viu
@@ -10617,6 +11559,12 @@ PL_unlockhook|5.007003||Viu
PL_unsafe|5.005000||Viu
PL_UpperLatin1|5.019005||Viu
PLUS|5.003007||Viu
+PLUS_t8|5.035004||Viu
+PLUS_t8_p8|5.033003||Viu
+PLUS_t8_pb|5.033003||Viu
+PLUS_tb|5.035004||Viu
+PLUS_tb_p8|5.033003||Viu
+PLUS_tb_pb|5.033003||Viu
PL_utf8cache|5.009004||Viu
PL_utf8_charname_begin|5.017006||Viu
PL_utf8_charname_continue|5.017006||Viu
@@ -10661,6 +11609,7 @@ PL_vtbl_pos|5.015000||Viu
PL_vtbl_regdata|5.015000||Viu
PL_vtbl_regdatum|5.015000||Viu
PL_vtbl_regexp|5.015000||Viu
+PL_vtbl_sig|5.035001||Viu
PL_vtbl_sigelem|5.015000||Viu
PL_vtbl_substr|5.015000||Viu
PL_vtbl_sv|5.015000||Viu
@@ -10673,7 +11622,7 @@ PL_warn_locale|5.021008||Viu
PL_watchaddr|5.006000||Viu
PL_watchok|5.006000||Viu
PL_WB_invlist|5.021009||Viu
-PL_wcrtomb_ps|5.031009||Viu
+PL_wcrtomb_ps|5.031010||Viu
PL_XPosix_ptrs|5.017008||Viu
PL_Xpv|5.005000|5.003007|poVnu
PL_xsubfilename|5.021006||Viu
@@ -10703,7 +11652,7 @@ PMf_SPLIT|5.017011||Viu
PMf_STRICT|5.021008||Viu
PMf_USED|5.009005||Viu
PMf_USE_RE_EVAL|5.017001||Viu
-PMf_WILDCARD|5.031009||Viu
+PMf_WILDCARD|5.031010||Viu
PM_GETRE|5.007002||Viu
pmop_dump|5.006000|5.006000|u
PmopSTASH|5.007001||Viu
@@ -10723,6 +11672,7 @@ Poison|5.008000|5.003007|p
PoisonFree|5.009004|5.003007|p
PoisonNew|5.009004|5.003007|p
PoisonPADLIST|5.021006||Viu
+POISON_SV_HEAD|||Viu
PoisonWith|5.009004|5.003007|p
popen|5.003007||Viu
POPi|5.003007|5.003007|
@@ -10743,14 +11693,38 @@ POPul|5.006000|5.006000|
populate_ANYOF_from_invlist|5.019005||Viu
populate_isa|||viu
POSIXA|5.017003||Viu
+POSIXA_t8|5.035004||Viu
+POSIXA_t8_p8|5.033003||Viu
+POSIXA_t8_pb|5.033003||Viu
+POSIXA_tb|5.035004||Viu
+POSIXA_tb_p8|5.033003||Viu
+POSIXA_tb_pb|5.033003||Viu
POSIX_CC_COUNT|5.017008||Viu
POSIXD|5.017003||Viu
+POSIXD_t8|5.035004||Viu
+POSIXD_t8_p8|5.033003||Viu
+POSIXD_t8_pb|5.033003||Viu
+POSIXD_tb|5.035004||Viu
+POSIXD_tb_p8|5.033003||Viu
+POSIXD_tb_pb|5.033003||Viu
POSIXL|5.017003||Viu
POSIXL_CLEAR|5.029004||Viu
POSIXL_SET|5.029004||Viu
+POSIXL_t8|5.035004||Viu
+POSIXL_t8_p8|5.033003||Viu
+POSIXL_t8_pb|5.033003||Viu
+POSIXL_tb|5.035004||Viu
+POSIXL_tb_p8|5.033003||Viu
+POSIXL_tb_pb|5.033003||Viu
POSIXL_TEST|5.029004||Viu
POSIXL_ZERO|5.029004||Viu
POSIXU|5.017003||Viu
+POSIXU_t8|5.035004||Viu
+POSIXU_t8_p8|5.033003||Viu
+POSIXU_t8_pb|5.033003||Viu
+POSIXU_tb|5.035004||Viu
+POSIXU_tb_p8|5.033003||Viu
+POSIXU_tb_pb|5.033003||Viu
PP|5.003007||Viu
pregcomp|5.009005|5.009005|
pregexec|5.003007|5.003007|
@@ -10773,21 +11747,32 @@ PREGf_VERBARG_SEEN|5.009005||Viu
prepare_SV_for_RV|5.010001||Viu
prescan_version|5.011004|5.011004|
PRESCAN_VERSION|5.019008||Viu
-PREVOPER|5.003007||Viu
PREV_RANGE_MATCHES_INVLIST|5.023002||Viu
printbuf|5.009004||Viu
print_bytes_for_locale|5.027002||Viu
print_collxfrm_input_and_return|5.025004||Viu
printf|5.003007||Viu
PRINTF_FORMAT_NULL_OK|5.009005|5.009005|Vn
-printf_nocontext|5.007001|5.007001|vdnu
+printf_nocontext|5.007001||vdVnu
PRIVLIB|5.003007|5.003007|Vn
PRIVLIB_EXP|5.003007|5.003007|Vn
PRIVSHIFT|5.003007||Viu
process_special_blocks|5.009005||Viu
PROCSELFEXE_PATH|5.007003|5.007003|Vn
PRUNE|5.009005||Viu
+PRUNE_t8|5.035004||Viu
+PRUNE_t8_p8|5.033003||Viu
+PRUNE_t8_pb|5.033003||Viu
+PRUNE_tb|5.035004||Viu
+PRUNE_tb_p8|5.033003||Viu
+PRUNE_tb_pb|5.033003||Viu
PSEUDO|5.009004||Viu
+PSEUDO_t8|5.035004||Viu
+PSEUDO_t8_p8|5.033003||Viu
+PSEUDO_t8_pb|5.033003||Viu
+PSEUDO_tb|5.035004||Viu
+PSEUDO_tb_p8|5.033003||Viu
+PSEUDO_tb_pb|5.033003||Viu
pthread_addr_t|5.005000||Viu
PTHREAD_ATFORK|5.007002||Viu
pthread_attr_init|5.006000||Viu
@@ -10808,13 +11793,13 @@ pTHX_1|5.006000||Viu
pTHX_2|5.006000||Viu
pTHX_3|5.006000||Viu
pTHX_4|5.006000||Viu
-pTHX_||5.003007|p
pTHX|5.006000|5.003007|p
pTHX_5|5.009003||Viu
pTHX_6|5.009003||Viu
pTHX_7|5.009003||Viu
pTHX_8|5.009003||Viu
pTHX_9|5.009003||Viu
+pTHX_||5.003007|p
pTHX__FORMAT|5.009002||Viu
pTHX_FORMAT|5.009002||Viu
pTHXo|5.006000||Viu
@@ -10829,14 +11814,13 @@ PTR2UV|5.006000|5.003007|p
Ptrdiff_t|5.029003||Viu
ptr_hash|5.017010||Vniu
PTRSIZE|5.005000|5.005000|Vn
-ptr_table_clear|5.009005|5.009005|du
ptr_table_fetch|5.009005|5.009005|u
ptr_table_find|5.009004||Vniu
ptr_table_free|5.009005|5.009005|u
ptr_table_new|5.009005|5.009005|u
ptr_table_split|5.009005|5.009005|u
ptr_table_store|5.009005|5.009005|u
-PTRV|5.006000|5.003007|pV
+PTRV|5.006000|5.003007|poVnu
PUSHi|5.003007|5.003007|
PUSHMARK|5.003007|5.003007|
PUSHmortal|5.009002|5.003007|p
@@ -10886,8 +11870,8 @@ RADIXCHAR|5.027010||Viu
RANDBITS|5.003007|5.003007|Vn
RANDOM_R_PROTO|5.008000|5.008000|Vn
Rand_seed_t|5.006000|5.006000|Vn
-RANGE_INDICATOR|5.031007||Viu
-rck_elide_nothing|5.032000||Viu
+RANGE_INDICATOR|5.031006||Viu
+rck_elide_nothing|5.032001||Viu
RD_NODATA|5.003007|5.003007|Vn
read|5.005000||Viu
readdir|5.005000||Viu
@@ -10895,7 +11879,7 @@ readdir64|5.009000||Viu
READDIR64_R_PROTO|5.008000|5.008000|Vn
READDIR_R_PROTO|5.008000|5.008000|Vn
READ_XDIGIT|5.017006|5.017006|
-realloc|5.007002|5.007002|n
+realloc|5.003007||Vn
ReANY|5.017006||cVnu
re_compile|5.009005|5.009005|u
RE_COMPILE_RECURSION_INIT|5.029009||Viu
@@ -10918,13 +11902,11 @@ RE_DEBUG_EXTRA_BUFFERS|5.009005||Viu
RE_DEBUG_EXTRA_DUMP_PRE_OPTIMIZE|5.031004||Viu
RE_DEBUG_EXTRA_GPOS|5.011000||Viu
RE_DEBUG_EXTRA_MASK|5.009004||Viu
-RE_DEBUG_EXTRA_OFFDEBUG|5.009005||Viu
-RE_DEBUG_EXTRA_OFFSETS|5.009004||Viu
RE_DEBUG_EXTRA_OPTIMISE|5.009005||Viu
RE_DEBUG_EXTRA_STACK|5.009005||Viu
RE_DEBUG_EXTRA_STATE|5.009004||Viu
RE_DEBUG_EXTRA_TRIE|5.009004||Viu
-RE_DEBUG_EXTRA_WILDCARD|5.031010||Viu
+RE_DEBUG_EXTRA_WILDCARD|5.031011||Viu
RE_DEBUG_FLAG|5.009004||Viu
RE_DEBUG_FLAGS|5.009002||Viu
re_dup_guts|5.011000|5.011000|
@@ -10996,7 +11978,7 @@ REENTRANT_PROTO_S_SBI|5.008000||Viu
REENTRANT_PROTO_S_SBIE|5.008000||Viu
REENTRANT_PROTO_S_SBW|5.008000||Viu
REENTRANT_PROTO_S_TISBI|5.008000||Viu
-REENTRANT_PROTO_S_TS|5.031010||Viu
+REENTRANT_PROTO_S_TS|5.031011||Viu
REENTRANT_PROTO_S_TSBI|5.008000||Viu
REENTRANT_PROTO_S_TSBIE|5.008000||Viu
REENTRANT_PROTO_S_TWISBIE|5.008000||Viu
@@ -11027,19 +12009,85 @@ refcounted_he_value|5.009004||Viu
REFF|5.004001||Viu
REFFA|5.013010||Viu
REFFAN|5.031001||Viu
+REFFAN_t8|5.035004||Viu
+REFFAN_t8_p8|5.033003||Viu
+REFFAN_t8_pb|5.033003||Viu
+REFFAN_tb|5.035004||Viu
+REFFAN_tb_p8|5.033003||Viu
+REFFAN_tb_pb|5.033003||Viu
+REFFA_t8|5.035004||Viu
+REFFA_t8_p8|5.033003||Viu
+REFFA_t8_pb|5.033003||Viu
+REFFA_tb|5.035004||Viu
+REFFA_tb_p8|5.033003||Viu
+REFFA_tb_pb|5.033003||Viu
REFFL|5.004001||Viu
REFFLN|5.031001||Viu
+REFFLN_t8|5.035004||Viu
+REFFLN_t8_p8|5.033003||Viu
+REFFLN_t8_pb|5.033003||Viu
+REFFLN_tb|5.035004||Viu
+REFFLN_tb_p8|5.033003||Viu
+REFFLN_tb_pb|5.033003||Viu
+REFFL_t8|5.035004||Viu
+REFFL_t8_p8|5.033003||Viu
+REFFL_t8_pb|5.033003||Viu
+REFFL_tb|5.035004||Viu
+REFFL_tb_p8|5.033003||Viu
+REFFL_tb_pb|5.033003||Viu
REFFN|5.031001||Viu
+REFFN_t8|5.035004||Viu
+REFFN_t8_p8|5.033003||Viu
+REFFN_t8_pb|5.033003||Viu
+REFFN_tb|5.035004||Viu
+REFFN_tb_p8|5.033003||Viu
+REFFN_tb_pb|5.033003||Viu
+REFF_t8|5.035004||Viu
+REFF_t8_p8|5.033003||Viu
+REFF_t8_pb|5.033003||Viu
+REFF_tb|5.035004||Viu
+REFF_tb_p8|5.033003||Viu
+REFF_tb_pb|5.033003||Viu
REFFU|5.013008||Viu
REFFUN|5.031001||Viu
+REFFUN_t8|5.035004||Viu
+REFFUN_t8_p8|5.033003||Viu
+REFFUN_t8_pb|5.033003||Viu
+REFFUN_tb|5.035004||Viu
+REFFUN_tb_p8|5.033003||Viu
+REFFUN_tb_pb|5.033003||Viu
+REFFU_t8|5.035004||Viu
+REFFU_t8_p8|5.033003||Viu
+REFFU_t8_pb|5.033003||Viu
+REFFU_tb|5.035004||Viu
+REFFU_tb_p8|5.033003||Viu
+REFFU_tb_pb|5.033003||Viu
REF_HE_KEY|5.009005||Viu
refkids|5.003007||Viu
REFN|5.031001||Viu
+REFN_t8|5.035004||Viu
+REFN_t8_p8|5.033003||Viu
+REFN_t8_pb|5.033003||Viu
+REFN_tb|5.035004||Viu
+REFN_tb_p8|5.033003||Viu
+REFN_tb_pb|5.033003||Viu
+REF_t8|5.035004||Viu
+REF_t8_p8|5.033003||Viu
+REF_t8_pb|5.033003||Viu
+REF_tb|5.035004||Viu
+REF_tb_p8|5.033003||Viu
+REF_tb_pb|5.033003||Viu
refto|5.005000||Viu
reg2Lanode|5.021005||Viu
reg|5.005000||Viu
reganode|5.005000||Viu
REG_ANY|5.006000||Viu
+REG_ANY_t8|5.035004||Viu
+REG_ANY_t8_p8|5.033003||Viu
+REG_ANY_t8_pb|5.033003||Viu
+REG_ANY_tb|5.035004||Viu
+REG_ANY_tb_p8|5.033003||Viu
+REG_ANY_tb_pb|5.033003||Viu
regatom|5.005000||Viu
regbranch|5.005000||Viu
reg_check_named_buff_matched|5.009005||Vniu
@@ -11047,15 +12095,21 @@ regclass|5.005000||Viu
regcppop|5.005000||Viu
regcppush|5.005000||Viu
regcp_restore|5.025006||Viu
-regcurly|5.013010||Vniu
+regcurly|5.013010||cVniu
REG_CUTGROUP_SEEN|5.019009||Viu
-regdump|5.003007||cVu
+regdump|5.005000|5.005000|u
regdump_extflags|5.009005||Viu
regdump_intflags|5.019002||Viu
regdupe_internal|5.009005||cVu
regexec_flags|5.005000||cVu
-REGEX_SET|5.031009||Viu
+REGEX_SET|5.031010||Viu
regex_set_precedence|5.021010||Vniu
+REGEX_SET_t8|5.035004||Viu
+REGEX_SET_t8_p8|5.033003||Viu
+REGEX_SET_t8_pb|5.033003||Viu
+REGEX_SET_tb|5.035004||Viu
+REGEX_SET_tb_p8|5.033003||Viu
+REGEX_SET_tb_pb|5.033003||Viu
REG_EXTFLAGS_NAME_SIZE|5.020000||Viu
regfree_internal|5.009005||cVu
REG_GPOS_SEEN|5.019009||Viu
@@ -11068,6 +12122,9 @@ reginitcolors|5.006000||cVu
reginsert|5.005000||Viu
REG_INTFLAGS_NAME_SIZE|5.020000||Viu
register|5.003007||Viu
+reg_la_NOTHING|||Viu
+reg_la_OPFAIL|||Viu
+REG_LB_SEEN|||Viu
REG_LOOKBEHIND_SEEN|5.019009||Viu
REG_MAGIC|5.006000||Viu
regmatch|5.005000||Viu
@@ -11082,7 +12139,10 @@ reg_named_buff_nextkey|5.009005||cVu
reg_named_buff_scalar|5.009005||cVu
regnext|5.003007||cVu
reg_node|5.005000||Viu
+REGNODE_AFTER|5.003007||Viu
+REGNODE_BEFORE|5.003007||Viu
regnode_guts|5.021005||Viu
+regnode_guts_debug|||Viu
REGNODE_MAX|5.009004||Viu
REGNODE_SIMPLE|5.013002||Viu
REGNODE_VARIES|5.013002||Viu
@@ -11090,7 +12150,7 @@ reg_numbered_buff_fetch|5.009005||cViu
reg_numbered_buff_length|5.009005||cViu
reg_numbered_buff_store|5.009005||cViu
regpiece|5.005000||Viu
-regpnode|5.031009||Viu
+regpnode|5.031010||Viu
regprop|5.003007||Viu
reg_qr_package|5.009005||cViu
REG_RECURSE_SEEN|5.019009||Viu
@@ -11114,6 +12174,12 @@ rename|5.005000||Viu
Renew|5.003007|5.003007|
Renewc|5.003007|5.003007|
RENUM|5.005000||Viu
+RENUM_t8|5.035004||Viu
+RENUM_t8_p8|5.033003||Viu
+RENUM_t8_pb|5.033003||Viu
+RENUM_tb|5.035004||Viu
+RENUM_tb_p8|5.033003||Viu
+RENUM_tb_pb|5.033003||Viu
re_op_compile|5.017001||Viu
repeatcpy|5.003007|5.003007|nu
REPLACEMENT_CHARACTER_UTF8|5.025005|5.003007|p
@@ -11138,7 +12204,6 @@ RE_SV_TAIL|5.009004||Viu
RETPUSHNO|5.003007||Viu
RETPUSHUNDEF|5.003007||Viu
RETPUSHYES|5.003007||Viu
-RE_TRACK_PATTERN_OFFSETS|5.009005||Viu
RE_TRIE_MAXBUF_INIT|5.009002||Viu
RE_TRIE_MAXBUF_NAME|5.009002||Viu
RETSETNO|5.003007||Viu
@@ -11194,7 +12259,7 @@ RV2CVOPCV_MARK_EARLY|5.013006|5.013006|
RV2CVOPCV_MAYBE_NAME_GV|5.021004||Viu
RV2CVOPCV_RETURN_NAME_GV|5.013006|5.013006|
RV2CVOPCV_RETURN_STUB|5.021004||Viu
-rvpv_dup|5.007003|5.007003|u
+rvpv_dup|5.008008|5.008008|u
RX_ANCHORED_SUBSTR|5.010001||Viu
RX_ANCHORED_UTF8|5.010001||Viu
RXapif_ALL|5.009005||Viu
@@ -11338,6 +12403,12 @@ SAFE_TRIE_NODENUM|5.009002||Viu
same_dirent|5.003007||Viu
SANE_ERRSV|5.031003|5.031003|
SANY|5.003007||Viu
+SANY_t8|5.035004||Viu
+SANY_t8_p8|5.033003||Viu
+SANY_t8_pb|5.033003||Viu
+SANY_tb|5.035004||Viu
+SANY_tb_p8|5.033003||Viu
+SANY_tb_pb|5.033003||Viu
save_adelete|5.011000|5.011000|u
SAVEADELETE|5.011000||Viu
save_aelem|5.004005|5.004005|u
@@ -11360,8 +12431,8 @@ SAVEDELETE|5.003007|5.003007|
save_delete|5.003007||cVu
save_destructor|5.003007||cVu
SAVEDESTRUCTOR|5.006000|5.006000|
+SAVEDESTRUCTOR_X|5.006000|5.006000|
save_destructor_x|5.006000||cVu
-SAVEDESTRUCTOR_X|5.006000||Viu
SAVE_ERRNO|5.010001||Vi
SAVEFEATUREBITS|5.031006||Viu
SAVEf_KEEPOLDELEM|5.011000||Viu
@@ -11386,7 +12457,7 @@ save_hek_flags|5.008000||Vniu
save_helem|5.004005|5.004005|u
save_helem_flags|5.011000|5.011000|u
SAVEHINTS|5.005000||Viu
-save_hints|5.010001|5.010001|u
+save_hints|5.013005|5.013005|u
save_hptr|5.003007|5.003007|
SAVEI16|5.004000|5.004000|
save_I16|5.004000||cVu
@@ -11416,10 +12487,10 @@ SAVEPADSV|||i
SAVEPARSER|5.009005||Viu
SAVEPPTR|5.003007|5.003007|
save_pptr|5.003007||cVu
-save_pushi32ptr|5.010001|5.010001|u
+save_pushi32ptr|5.013006|5.013006|u
save_pushptr|5.010001|5.010001|u
save_pushptri32ptr|5.010001||Viu
-save_pushptrptr|5.010001|5.010001|u
+save_pushptrptr|5.013006|5.013006|u
savepv|5.003007|5.003007|
savepvn|5.003007|5.003007|
savepvs|5.009003|5.009003|
@@ -11440,6 +12511,7 @@ savestack_grow|5.003007|5.003007|u
savestack_grow_cnt|5.008001|5.008001|u
SAVESTACK_POS|5.004000|5.004000|
save_strlen|5.019004||cViu
+SAVESTRLEN|5.035005|5.035005|
savesvpv|5.009002|5.009002|
save_svref|5.003007|5.003007|
SAVESWITCHSTACK|5.009002||Viu
@@ -11468,6 +12540,7 @@ SAVEt_GVSLOT|5.017007||Viu
SAVEt_GVSV|5.013005||Viu
SAVEt_HELEM|5.004005||Viu
SAVEt_HINTS|5.005000||Viu
+SAVEt_HINTS_HH|5.033001||Viu
SAVEt_HPTR|5.003007||Viu
SAVEt_HV|5.003007||Viu
SAVEt_I16|5.004000||Viu
@@ -11482,7 +12555,7 @@ SAVEt_IV|5.003007||Viu
SAVEt_LONG|5.003007||Viu
SAVEt_MORTALIZESV|5.007001||Viu
SAVETMPS|5.003007|5.003007|
-savetmps|5.023008|5.023008|xu
+savetmps|||xu
SAVEt_NSTAB|5.003007||Viu
save_to_buffer|5.027004||Vniu
SAVEt_OP|5.005000||Viu
@@ -11497,6 +12570,7 @@ SAVEt_SHARED_PVREF|5.007003||Viu
SAVEt_SPTR|5.003007||Viu
SAVEt_STACK_POS|5.004000||Viu
SAVEt_STRLEN|5.019004||Viu
+SAVEt_STRLEN_SMALL|5.033005||Viu
SAVEt_SV|5.003007||Viu
SAVEt_SVREF|5.003007||Viu
SAVEt_TMPSFLOOR|5.023008||Viu
@@ -11512,6 +12586,12 @@ sb_iters|5.003007||Viu
sb_m|5.003007||Viu
sb_maxiters|5.003007||Viu
SBOL|5.003007||Viu
+SBOL_t8|5.035004||Viu
+SBOL_t8_p8|5.033003||Viu
+SBOL_t8_pb|5.033003||Viu
+SBOL_tb|5.035004||Viu
+SBOL_tb_p8|5.033003||Viu
+SBOL_tb_pb|5.033003||Viu
sb_orig|5.003007||Viu
SBOX32_CHURN_ROUNDS|5.027001||Viu
SBOX32_MAX_LEN|5.027001||Viu
@@ -11539,7 +12619,6 @@ scalar|5.003007||Viu
scalarboolean|5.005000||Viu
scalarkids|5.003007||Viu
scalar_mod_type|5.006000||Vniu
-scalarseq|5.003007||Viu
scalarvoid|5.003007||Viu
scan_bin|5.006000|5.006000|
scan_commit|5.005000||Viu
@@ -11565,8 +12644,8 @@ scan_word|5.003007||xcViu
SCHED_YIELD|5.006000|5.006000|Vn
SCOPE_SAVES_SIGNAL_MASK|5.007001||Viu
search_const|5.010001||Viu
-seed|5.008001|5.008001|u
-seedDrand01|5.006000|5.006000|Vn
+seed|5.009003|5.009003|u
+seedDrand01|5.006000|5.006000|
SEEK_CUR|5.003007||Viu
seekdir|5.005000||Viu
SEEK_END|5.003007||Viu
@@ -11579,13 +12658,19 @@ semun|5.006000||Viu
send|5.005000||Viu
sendto|5.005000||Viu
SEOL|5.003007||Viu
+SEOL_t8|5.035004||Viu
+SEOL_t8_p8|5.033003||Viu
+SEOL_t8_pb|5.033003||Viu
+SEOL_tb|5.035004||Viu
+SEOL_tb_p8|5.033003||Viu
+SEOL_tb_pb|5.033003||Viu
sequence_num|5.009003||Viu
set_ANYOF_arg|5.019005||Viu
set_ANYOF_SYNTHETIC|5.019009||Viu
setbuf|5.003007||Viu
set_caret_X|5.019006||Viu
set_context|5.006000|5.006000|nu
-setdefout|5.003007|5.003007|
+setdefout|5.011000|5.011000|
SETERRNO|5.003007||Vi
setfd_cloexec|5.027008||Vniu
setfd_cloexec_for_nonsysfd|5.027008||Viu
@@ -11603,7 +12688,9 @@ setjmp|5.005000||Viu
setlinebuf|5.005000||Viu
setlocale|5.009000||Viu
setlocale_debug_string|5.027002||Vniu
+SETLOCALE_LOCK|5.033005||Viu
SETLOCALE_R_PROTO|5.008000|5.008000|Vn
+SETLOCALE_UNLOCK|5.033005||Viu
SET_MARK_OFFSET|5.006000||Viu
setmode|5.005000||Viu
SETn|5.003007||Viu
@@ -11638,7 +12725,7 @@ SETu|5.004000||Viu
setuid|5.005000||Viu
_setup_canned_invlist|5.019008||cViu
setvbuf|5.003007||Viu
-share_hek|5.004000|5.004000|u
+share_hek|5.009003|5.009003|u
share_hek_flags|5.008000||Viu
share_hek_hek|5.009003||Viu
sharepvn|5.005000||Viu
@@ -11646,7 +12733,7 @@ SHARP_S_SKIP|5.007003||Viu
Shmat_t|5.003007|5.003007|Vn
SHORTSIZE|5.004000|5.004000|Vn
should_warn_nl|5.021001||Vniu
-should_we_output_Debug_r|5.031010||Viu
+should_we_output_Debug_r|5.031011||Viu
SH_PATH|5.003007|5.003007|Vn
shutdown|5.005000||Viu
si_dup|5.007003|5.007003|u
@@ -11659,14 +12746,16 @@ sighandler3|5.031007||Vniu
sighandler|5.003007||Vniu
SIGILL|5.003007||Viu
Sigjmp_buf|5.003007|5.003007|Vn
-Siglongjmp|5.003007|5.003007|Vn
+Siglongjmp|5.003007|5.003007|
signal|5.005000||Viu
Signal_t|5.003007|5.003007|Vn
SIG_NAME|5.003007|5.003007|Vn
SIG_NUM|5.003007|5.003007|Vn
-Sigsetjmp|5.003007|5.003007|Vn
+Sigsetjmp|5.003007|5.003007|
SIG_SIZE|5.007001|5.007001|Vn
simplify_sort|5.006000||Viu
+single_1bit_pos32|5.035003||cVnu
+single_1bit_pos64|5.035003||cVnu
SINGLE_PAT_MOD|5.009005||Viu
SIPHASH_SEED_STATE|5.027001||Viu
SIPROUND|5.017006||Viu
@@ -11705,7 +12794,25 @@ Size_t_size|5.006000|5.006000|Vn
SKIP|5.009005||Viu
SKIP_next|5.009005||Viu
SKIP_next_fail|5.009005||Viu
+SKIP_next_fail_t8|5.035004||Viu
+SKIP_next_fail_t8_p8|5.033003||Viu
+SKIP_next_fail_t8_pb|5.033003||Viu
+SKIP_next_fail_tb|5.035004||Viu
+SKIP_next_fail_tb_p8|5.033003||Viu
+SKIP_next_fail_tb_pb|5.033003||Viu
+SKIP_next_t8|5.035004||Viu
+SKIP_next_t8_p8|5.033003||Viu
+SKIP_next_t8_pb|5.033003||Viu
+SKIP_next_tb|5.035004||Viu
+SKIP_next_tb_p8|5.033003||Viu
+SKIP_next_tb_pb|5.033003||Viu
skipspace_flags|5.019002||xcViu
+SKIP_t8|5.035004||Viu
+SKIP_t8_p8|5.033003||Viu
+SKIP_t8_pb|5.033003||Viu
+SKIP_tb|5.035004||Viu
+SKIP_tb_p8|5.033003||Viu
+SKIP_tb_pb|5.033003||Viu
skip_to_be_ignored_text|5.023004||Viu
Slab_Alloc|5.006000||cViu
Slab_Free|5.007003||cViu
@@ -11723,7 +12830,7 @@ sortcv_stacked|5.009003||Viu
sortcv_xsub|5.009003||Viu
sortsv|5.007003|5.007003|
sortsv_flags|5.009003|5.009003|
-sortsv_flags_impl|5.031010||Viu
+sortsv_flags_impl|5.031011||Viu
SP|5.003007|5.003007|
space_join_names_mortal|5.009004||Viu
SPAGAIN|5.003007|5.003007|
@@ -11732,7 +12839,19 @@ specialWARN|5.006000||Viu
SRAND48_R_PROTO|5.008000|5.008000|Vn
SRANDOM_R_PROTO|5.008000|5.008000|Vn
SRCLOSE|5.027008||Viu
+SRCLOSE_t8|5.035004||Viu
+SRCLOSE_t8_p8|5.033003||Viu
+SRCLOSE_t8_pb|5.033003||Viu
+SRCLOSE_tb|5.035004||Viu
+SRCLOSE_tb_p8|5.033003||Viu
+SRCLOSE_tb_pb|5.033003||Viu
SROPEN|5.027008||Viu
+SROPEN_t8|5.035004||Viu
+SROPEN_t8_p8|5.033003||Viu
+SROPEN_t8_pb|5.033003||Viu
+SROPEN_tb|5.035004||Viu
+SROPEN_tb_p8|5.033003||Viu
+SROPEN_tb_pb|5.033003||Viu
SS_ACCVIO|5.008001||Viu
SS_ADD_BOOL|5.017007||Viu
SS_ADD_DPTR|5.017007||Viu
@@ -11791,19 +12910,14 @@ SSPUSHPTR|5.003007||Viu
SSPUSHUV|5.013001||Viu
ST|5.003007|5.003007|
stack_grow|5.003007||cVu
-STADTX_HASH_H|5.027001||Viu
-STADTX_K0_U64|5.027001||Viu
-STADTX_K1_U64|5.027001||Viu
-STADTX_K2_U32|5.027001||Viu
-STADTX_K2_U64|5.027001||Viu
-STADTX_K3_U32|5.027001||Viu
-STADTX_K3_U64|5.027001||Viu
-STADTX_K4_U32|5.027001||Viu
-STADTX_K5_U32|5.027001||Viu
-STADTX_SCRAMBLE64|5.027001||Viu
-STADTX_STATIC_INLINE|5.027001||Viu
STANDARD_C|5.003007||Viu
STAR|5.003007||Viu
+STAR_t8|5.035004||Viu
+STAR_t8_p8|5.033003||Viu
+STAR_t8_pb|5.033003||Viu
+STAR_tb|5.035004||Viu
+STAR_tb_p8|5.033003||Viu
+STAR_tb_pb|5.033003||Viu
START_EXTERN_C|5.005000|5.003007|pV
start_glob|||xi
START_MY_CXT|5.010000|5.010000|p
@@ -11830,6 +12944,8 @@ STATUS_UNIX_EXIT_SET|5.009003||Viu
STATUS_UNIX_SET|5.009003||Viu
STDCHAR|5.003007|5.003007|Vn
stderr|5.003007||Viu
+ST_DEV_SIGN|5.035004|5.035004|Vn
+ST_DEV_SIZE|5.035004|5.035004|Vn
stdin|5.003007||Viu
STDIO_PTR_LVAL_SETS_CNT|5.007001|5.007001|Vn
STDIO_PTR_LVALUE|5.006000|5.006000|Vn
@@ -11845,10 +12961,10 @@ STMT_END|5.003007|5.003007|pV
STMT_START|5.003007|5.003007|pV
STOREFEATUREBITSHH|5.031006||Viu
STORE_LC_NUMERIC_FORCE_TO_UNDERLYING|5.021010|5.021010|
-STORE_LC_NUMERIC_SET_STANDARD|5.027009||pViu
+STORE_LC_NUMERIC_SET_STANDARD|5.027009||pVu
STORE_LC_NUMERIC_SET_TO_NEEDED|5.021010|5.021010|
STORE_LC_NUMERIC_SET_TO_NEEDED_IN|5.031003|5.031003|
-STORE_NUMERIC_SET_STANDARD|5.027009||pViu
+STORE_NUMERIC_SET_STANDARD|||piu
strBEGINs|5.027006||Viu
strEQ|5.003007|5.003007|
Strerror|5.003007||Viu
@@ -11893,7 +13009,19 @@ SUBST_TAINT_RETAINT|5.013010||Viu
SUBST_TAINT_STR|5.013010||Viu
SUBVERSION|5.003007||Viu
SUCCEED|5.003007||Viu
+SUCCEED_t8|5.035004||Viu
+SUCCEED_t8_p8|5.033003||Viu
+SUCCEED_t8_pb|5.033003||Viu
+SUCCEED_tb|5.035004||Viu
+SUCCEED_tb_p8|5.033003||Viu
+SUCCEED_tb_pb|5.033003||Viu
SUSPEND|5.005000||Viu
+SUSPEND_t8|5.035004||Viu
+SUSPEND_t8_p8|5.033003||Viu
+SUSPEND_t8_pb|5.033003||Viu
+SUSPEND_tb|5.035004||Viu
+SUSPEND_tb_p8|5.033003||Viu
+SUSPEND_tb_pb|5.033003||Viu
sv_2bool|5.013006||cV
sv_2bool_flags|5.013006||cV
sv_2bool_nomg|5.017002||Viu
@@ -11909,22 +13037,24 @@ sv_2nv|5.013001||Viu
sv_2nv_flags|5.013001|5.013001|
sv_2pv|5.005000||cVu
sv_2pvbyte|5.006000|5.003007|p
-sv_2pvbyte_flags|5.031004|5.031004|
-sv_2pvbyte_nolen|5.009003|5.003007|pocV
-sv_2pv_flags|5.007002|5.003007|pocV
-sv_2pv_nolen|5.009003|5.003007|pocV
+sv_2pvbyte_flags|5.031004|5.031004|u
+sv_2pvbyte_nolen|5.009003||pcV
+sv_2pv_flags|5.007002||pcV
+sv_2pv_nolen|5.009003||pcV
sv_2pv_nomg|5.007002||Viu
sv_2pvutf8|5.006000|5.006000|
sv_2pvutf8_flags|5.031004|5.031004|u
sv_2pvutf8_nolen|5.009003||cV
-sv_2uv|5.009001|5.003007|pocVu
+sv_2uv|5.009001||pcVu
sv_2uv_flags|5.009001|5.009001|
sv_add_arena|5.003007||Vi
sv_add_backref|||iu
SvAMAGIC|5.003007||Viu
-SvAMAGIC_off|5.031004|5.031004|n
-SvAMAGIC_on|5.031004|5.031004|n
+SvAMAGIC_off|5.003007|5.003007|nu
+SvAMAGIC_on|5.003007|5.003007|nu
SvANY|5.003007||Viu
+SvARENA_CHAIN_SET|||Viu
+SvARENA_CHAIN|||Viu
sv_backoff|5.003007|5.003007|n
sv_bless|5.003007|5.003007|
sv_buf_to_ro|5.019008||Viu
@@ -11935,11 +13065,11 @@ SV_CATBYTES|5.021005|5.021005|
sv_cat_decode|5.008001|5.008001|
sv_cathek|5.021004||Viu
sv_catpv|5.003007|5.003007|
-sv_catpvf|5.006000|5.004000|v
+sv_catpvf|5.004000||vV
sv_catpv_flags|5.013006|5.013006|
-sv_catpvf_mg|5.006000|5.004000|pv
-sv_catpvf_mg_nocontext|5.006000|5.006000|pvn
-sv_catpvf_nocontext|5.006000|5.006000|vn
+sv_catpvf_mg|5.004005||pvV
+sv_catpvf_mg_nocontext|5.006000||pvVn
+sv_catpvf_nocontext|5.006000||vVn
sv_catpv_mg|5.004005|5.003007|p
sv_catpvn|5.003007|5.003007|
sv_catpvn_flags|5.007002|5.007002|
@@ -12027,7 +13157,7 @@ sv_derived_from|5.004000|5.004000|
sv_derived_from_pv|5.015004|5.015004|
sv_derived_from_pvn|5.015004|5.015004|
sv_derived_from_sv|5.015004|5.015004|
-sv_derived_from_svpvn|5.031007||Viu
+sv_derived_from_svpvn|5.031006||Viu
sv_destroyable|5.010000|5.010000|
SvDESTROYABLE|5.010000||Viu
sv_display|5.021002||Viu
@@ -12066,7 +13196,7 @@ SVf_OK|5.003007||Viu
SVf_OOK|5.003007||Viu
sv_force_normal|5.006000|5.006000|
sv_force_normal_flags|5.007001|5.007001|
-SV_FORCE_UTF8_UPGRADE|5.011000||Viu
+SV_FORCE_UTF8_UPGRADE|5.011000|5.011000|
SVf_POK|5.003007||Viu
SVf_PROTECT|5.021005||Viu
SVf_READONLY|5.003007||Viu
@@ -12088,6 +13218,7 @@ SvGMAGICAL_on|5.003007||Viu
SvGROW|5.003007|5.003007|
sv_grow|5.003007||cV
Sv_Grow|5.003007||Viu
+sv_grow_fresh|5.035006||cV
SvGROW_mutable|5.009003||Viu
SV_HAS_TRAILING_NUL|5.009004|5.003007|p
SV_IMMEDIATE_UNREF|5.007001|5.003007|p
@@ -12096,7 +13227,7 @@ SvIMMORTAL_INTERP|5.027003||Viu
SvIMMORTAL_TRUE|5.027003||Viu
sv_inc|5.003007|5.003007|
sv_i_ncmp|5.009003||Viu
-sv_i_ncmp_desc|5.031010||Viu
+sv_i_ncmp_desc|5.031011||Viu
sv_inc_nomg|5.013002|5.013002|
sv_insert|5.003007|5.003007|
sv_insert_flags|5.010001|5.010001|
@@ -12113,6 +13244,7 @@ SvIOKp_on|5.003007||Viu
SvIOK_UV|5.006000|5.006000|
sv_isa|5.003007|5.003007|
sv_isa_sv|5.031007|5.031007|x
+SvIsBOOL|5.035004|5.035004|
SvIsCOW|5.008003|5.008003|
SvIsCOW_shared_hash|5.008003|5.008003|
SvIS_FREED|5.009003||Viu
@@ -12131,7 +13263,7 @@ sv_len|5.003007|5.003007|
SvLEN|5.003007|5.003007|
SvLEN_set|5.003007|5.003007|
sv_len_utf8|5.006000|5.006000|p
-sv_len_utf8_nomg|5.017004|5.006000|poViu
+sv_len_utf8_nomg||5.006000|p
SvLENx|5.003007||Viu
SvLOCK|5.007003|5.007003|
sv_magic|5.003007|5.003007|
@@ -12144,10 +13276,10 @@ sv_magicext_mglob|5.019002||cViu
sv_magic_portable||5.004000|pou
SvMAGIC_set|5.009003|5.003007|p
sv_mortalcopy|5.003007|5.003007|
-sv_mortalcopy_flags|5.017005|5.003007|p
+sv_mortalcopy_flags|5.031001|5.003007|p
SV_MUTABLE_RETURN|5.009003|5.003007|poVnu
sv_ncmp|5.009003||Viu
-sv_ncmp_desc|5.031010||Viu
+sv_ncmp_desc|5.031011||Viu
sv_newmortal|5.003007|5.003007|
sv_newref|5.003007||cV
SvNIOK|5.003007|5.003007|
@@ -12163,10 +13295,12 @@ SvNOK_on|5.003007|5.003007|
SvNOK_only|5.003007|5.003007|
SvNOKp|5.003007|5.003007|
SvNOKp_on|5.003007||Viu
-sv_nolocking|5.007003|5.007003|d
+sv_nolocking|5.031004|5.031004|d
sv_nosharing|5.007003|5.007003|
SV_NOSTEAL|5.009002|5.003007|p
-sv_nounlocking|5.007003|5.007003|d
+sv_nounlocking|5.009004|5.009004|d
+sv_numeq|5.035009|5.035009|
+sv_numeq_flags|5.035009|5.035009|
sv_nv|5.005000||dcV
SvNV|5.006000|5.003007|
SvNV_nomg|5.013002|5.003007|p
@@ -12231,6 +13365,7 @@ SvPOK_off|5.003007|5.003007|
SvPOK_on|5.003007|5.003007|
SvPOK_only|5.003007|5.003007|
SvPOK_only_UTF8|5.006000|5.006000|
+SvPOK_or_cached_IV|||Viu
SvPOKp|5.003007|5.003007|
SvPOKp_on|5.003007||Viu
SvPOK_pure_nogthink|5.017003||Viu
@@ -12246,6 +13381,7 @@ sv_pos_u2b_flags|5.011005|5.011005|
sv_pos_u2b_forwards|5.009004||Vniu
sv_pos_u2b_midway|5.009004||Vniu
SVp_POK|5.003007||Viu
+SVppv_STATIC|5.035004||Viu
SVprv_PCS_IMPORTED|5.009005||Viu
SVprv_WEAKREF|5.006000||Viu
SVp_SCREAM|5.003007||Viu
@@ -12256,19 +13392,18 @@ sv_pvbyte|5.008000||cV
SvPVbyte_force|5.009002|5.009002|
sv_pvbyten|5.006000||dcV
sv_pvbyten_force|5.006000||cV
-sv_pvbyten_force_wrapper|||iu
SvPVbyte_nolen|5.006000|5.006000|
SvPVbyte_nomg|5.031004|5.031004|
SvPVbyte_or_null|5.031004|5.031004|
SvPVbyte_or_null_nomg|5.031004|5.031004|
SvPVbytex|5.006000|5.006000|
SvPVbytex_force|5.006000|5.006000|
-SvPVbytex_nolen|5.009003||Viu
-SvPVCLEAR|5.025006|5.025006|
+SvPVbytex_nolen|5.009003|5.009003|
+SvPVCLEAR|5.025006|5.025006|p
SvPV_const|5.009003|5.003007|p
SvPV_flags|5.007002|5.003007|p
SvPV_flags_const|5.009003|5.003007|p
-SvPV_flags_const_nolen|5.009003|5.003007|p
+SvPV_flags_const_nolen|5.009003||pVu
SvPV_flags_mutable|5.009003|5.003007|p
SvPV_force|5.003007|5.003007|p
SvPV_force_flags|5.007002|5.003007|p
@@ -12278,7 +13413,7 @@ SvPV_force_mutable|5.009003|5.003007|p
SvPV_force_nolen|5.009003|5.003007|p
SvPV_force_nomg|5.007002|5.003007|p
SvPV_force_nomg_nolen|5.009003|5.003007|p
-SvPV_free|5.009003||Viu
+SvPV_free|5.009003|5.009003|
SvPV_mutable|5.009003|5.003007|p
sv_pvn|5.004000||dcV
sv_pvn_force|5.005000||cV
@@ -12293,13 +13428,12 @@ SvPV_nomg_const_nolen|5.009003|5.003007|p
SvPV_nomg_nolen|5.013007|5.003007|p
SvPV_renew|5.009003|5.003007|p
SvPV_set|5.003007|5.003007|
-SvPV_shrink_to_cur|5.009003|5.009003|
+SvPV_shrink_to_cur|5.009003||Viu
SvPVutf8|5.006000|5.006000|
sv_pvutf8|5.008000||cV
SvPVutf8_force|5.006000|5.006000|
sv_pvutf8n|5.006000||dcV
sv_pvutf8n_force|5.006000||cV
-sv_pvutf8n_force_wrapper|||iu
SvPVutf8_nolen|5.006000|5.006000|
SvPVutf8_nomg|5.031004|5.031004|
SvPVutf8_or_null|5.031004|5.031004|
@@ -12309,30 +13443,30 @@ SvPVutf8x_force|5.006000|5.006000|
SvPVX|5.003007|5.003007|
SvPVx|5.003007|5.003007|
SvPVX_const|5.009003|5.003007|p
-SvPVx_const|5.009003||Viu
-SvPVx_force|5.003007||Viu
+SvPVx_const|5.009003|5.009003|
+SvPVx_force|5.005000|5.005000|
SvPVX_mutable|5.009003|5.003007|p
-SvPVx_nolen|5.009003||Viu
-SvPVx_nolen_const|5.009003||pViu
+SvPVx_nolen|5.009003|5.009003|
+SvPVx_nolen_const|5.009003|5.003007|p
SvPVXtrue|5.017002||Viu
-SvPVXx|5.003007||Viu
+SvPVXx|5.003007|5.003007|
SvREADONLY|5.003007|5.003007|
SvREADONLY_off|5.003007|5.003007|
SvREADONLY_on|5.003007|5.003007|
sv_recode_to_utf8|5.007003|5.007003|
-sv_ref|5.015004|5.015004|
+sv_ref|5.023005|5.023005|
SvREFCNT|5.003007|5.003007|
SvREFCNT_dec|5.003007|5.003007|
SvREFCNT_dec_NN|5.017007|5.017007|
SvREFCNT_IMMORTAL|5.017008||Viu
SvREFCNT_inc|5.003007|5.003007|pn
SvREFCNT_inc_NN|5.009004|5.003007|pn
-SvREFCNT_inc_simple|5.009004|5.003007|p
-SvREFCNT_inc_simple_NN|5.009004|5.003007|p
-SvREFCNT_inc_simple_void|5.009004|5.003007|p
-SvREFCNT_inc_simple_void_NN|5.009004|5.003007|p
+SvREFCNT_inc_simple|5.009004|5.003007|pn
+SvREFCNT_inc_simple_NN|5.009004|5.003007|pn
+SvREFCNT_inc_simple_void|5.009004|5.003007|pn
+SvREFCNT_inc_simple_void_NN|5.009004|5.003007|pn
SvREFCNT_inc_void|5.009004|5.003007|pn
-SvREFCNT_inc_void_NN|5.009004|5.003007|p
+SvREFCNT_inc_void_NN|5.009004|5.003007|pn
sv_reftype|5.003007|5.003007|
sv_replace|5.003007|5.003007|
sv_report_used|5.003007|5.003007|
@@ -12356,6 +13490,8 @@ SV_SAVED_COPY|5.009005||Viu
SvSCREAM|5.003007||Viu
SvSCREAM_off|5.003007||Viu
SvSCREAM_on|5.003007||Viu
+sv_setbool|5.035004|5.035004|
+sv_setbool_mg|5.035004|5.035004|
sv_setgid|5.019001||Viu
sv_sethek|5.015004||cViu
sv_setiv|5.003007|5.003007|
@@ -12367,14 +13503,15 @@ sv_setnv|5.006000|5.003007|
sv_setnv_mg|5.006000|5.003007|p
sv_setpv|5.003007|5.003007|
sv_setpv_bufsize|5.025006|5.025006|
-sv_setpvf|5.006000|5.004000|v
-sv_setpvf_mg|5.006000|5.004000|pv
-sv_setpvf_mg_nocontext|5.006000|5.006000|pvn
-sv_setpvf_nocontext|5.006000|5.006000|vn
+sv_setpvf|5.004000||vV
+sv_setpvf_mg|5.004005||pvV
+sv_setpvf_mg_nocontext|5.006000||pvVn
+sv_setpvf_nocontext|5.006000||vVn
sv_setpviv|5.008001|5.008001|d
sv_setpviv_mg|5.008001|5.008001|d
sv_setpv_mg|5.004005|5.003007|p
sv_setpvn|5.003007|5.003007|
+sv_setpvn_fresh|5.035006|5.035006|
sv_setpvn_mg|5.004005|5.003007|p
sv_setpvs|5.009004|5.003007|p
sv_setpvs_mg|5.013006|5.013006|
@@ -12384,6 +13521,10 @@ sv_setref_pv|5.003007|5.003007|
sv_setref_pvn|5.003007|5.003007|
sv_setref_pvs|5.013006|5.013006|
sv_setref_uv|5.007001|5.007001|
+sv_setrv_inc|5.035004|5.035004|
+sv_setrv_inc_mg|5.035004|5.035004|
+sv_setrv_noinc|5.035004|5.035004|
+sv_setrv_noinc_mg|5.035004|5.035004|
sv_setsv|5.003007|5.003007|
SvSetSV|5.003007|5.003007|
sv_setsv_cow|5.009000||xcViu
@@ -12413,6 +13554,8 @@ SVs_SMG|5.003007||Viu
SvSTASH|5.003007|5.003007|
SvSTASH_set|5.009003|5.003007|p
SVs_TEMP|5.003007|5.003007|
+sv_streq|5.035009|5.035009|
+sv_streq_flags|5.035009|5.035009|
sv_string_from_errnum|5.027003|5.027003|
SvTAIL|5.003007||Viu
SvTAINT|5.003007|5.003007|
@@ -12427,7 +13570,7 @@ SvTEMP_on|5.003007||Viu
SVt_FIRST|5.021005||Viu
SvTHINKFIRST|5.003007||Vi
SvTIED_mg|5.005003||Viu
-SvTIED_obj|5.005003||Viu
+SvTIED_obj|5.005003|5.005003|
SVt_INVLIST|||c
SVt_IV|5.003007|5.003007|
SVt_MASK|5.015001||Viu
@@ -12448,14 +13591,13 @@ SVt_PVNV|5.003007|5.003007|
SVt_REGEXP|5.011000|5.011000|
SvTRUE|5.003007|5.003007|
sv_true|5.005000||cV
-SvTRUE_common|5.017002||cVu
+SvTRUE_common|5.033005||cVu
SvTRUE_NN|5.017007|5.017007|
SvTRUE_nomg|5.013006|5.003007|p
SvTRUE_nomg_NN|5.017007|5.017007|
SvTRUEx|5.003007|5.003007|
SvTRUEx_nomg|5.017002||Viu
SVt_RV|5.011000||Viu
-svtype||5.003007|
SvTYPE|5.003007|5.003007|
SVTYPEMASK|5.003007||Viu
SvUID|5.019001||Viu
@@ -12490,7 +13632,7 @@ sv_utf8_upgrade_flags|5.007002|5.007002|
sv_utf8_upgrade_flags_grow|5.011000|5.011000|
sv_utf8_upgrade_nomg|5.007002|5.007002|
SvUV|5.004000|5.003007|p
-sv_uv|5.005000|5.003007|podcV
+sv_uv|5.005000||pdcV
SvUV_nomg|5.009001|5.003007|p
SvUV_set|5.009003|5.003007|p
SvUVX|5.004000|5.003007|p
@@ -12525,15 +13667,21 @@ SYSTEM_LOCALTIME_MAX|5.011000||Viu
SYSTEM_LOCALTIME_MIN|5.011000||Viu
sys_term|||cnu
TAIL|5.005000||Viu
+TAIL_t8|5.035004||Viu
+TAIL_t8_p8|5.033003||Viu
+TAIL_t8_pb|5.033003||Viu
+TAIL_tb|5.035004||Viu
+TAIL_tb_p8|5.033003||Viu
+TAIL_tb_pb|5.033003||Viu
TAINT|5.004000||Viu
-taint_env|5.003007||cVu
+taint_env|5.003007|5.003007|u
TAINT_ENV|5.003007||Viu
TAINT_get|5.017006||Viu
TAINT_IF|5.003007||Viu
TAINTING_get|5.017006||Viu
TAINTING_set|5.017006||Viu
TAINT_NOT|5.003007||Viu
-taint_proper|5.003007||cVu
+taint_proper|5.003007|5.003007|u
TAINT_PROPER|5.003007||Viu
TAINT_set|5.017006||Viu
TAINT_WARN_get|5.017006||Viu
@@ -12565,9 +13713,10 @@ tmpnam|5.005000||Viu
TMPNAM_R_PROTO|5.008000|5.008000|Vn
tmps_grow_p|5.021005||cViu
to_byte_substr|5.008000||Viu
+to_case_cp_list|5.035004||Viu
toCTRL|5.004000||Viu
toFOLD|5.019001|5.019001|
-toFOLD_A|5.019001||Viu
+toFOLD_A|5.019001|5.019001|
_to_fold_latin1|5.015005||cVniu
toFOLD_LC|5.019001||Viu
toFOLD_uni|5.007003||Viu
@@ -12579,9 +13728,9 @@ tokenize_use|5.009003||Viu
tokeq|5.005000||Viu
tokereport|5.007001||Viu
toLOWER|5.003007|5.003007|
-toLOWER_A|5.019001||Viu
+toLOWER_A|5.019001|5.019001|
toLOWER_L1|5.019001|5.019001|
-toLOWER_LATIN1|5.011002||Viu
+toLOWER_LATIN1|5.013006|5.011002|
to_lower_latin1|5.015005||Vniu
toLOWER_LC|5.004000|5.004000|
toLOWER_uni|5.006000||Viu
@@ -12603,7 +13752,7 @@ TOPs|5.003007||Viu
TOPu|5.004000||Viu
TOPul|5.006000||Viu
toTITLE|5.019001|5.019001|
-toTITLE_A|5.019001||Viu
+toTITLE_A|5.019001|5.019001|
toTITLE_uni|5.006000||Viu
toTITLE_utf8|5.031005|5.031005|
toTITLE_utf8_safe|5.025009|5.006000|p
@@ -12614,7 +13763,7 @@ to_uni_lower|5.006000||cVu
to_uni_title|5.006000||cVu
to_uni_upper|5.006000||cVu
toUPPER|5.003007|5.003007|
-toUPPER_A|5.019001||Viu
+toUPPER_A|5.019001|5.019001|
toUPPER_LATIN1_MOD|5.011002||Viu
toUPPER_LC|5.004000||Viu
_to_upper_title_latin1|5.015005||Viu
@@ -12630,7 +13779,7 @@ _to_utf8_title_flags|5.015006||cVu
_to_utf8_upper_flags|5.015006||cVu
translate_substr_offsets|5.015006||Vniu
traverse_op_tree|5.029008||Vi
-TR_DELETE|5.031007||Viu
+TR_DELETE|5.031006||Viu
TRIE|5.009002||Viu
TRIE_BITMAP|5.009004||Viu
TRIE_BITMAP_BYTE|5.009004||Viu
@@ -12639,18 +13788,42 @@ TRIE_BITMAP_SET|5.009004||Viu
TRIE_BITMAP_TEST|5.009004||Viu
TRIEC|5.009004||Viu
TRIE_CHARCOUNT|5.009004||Viu
+TRIEC_t8|5.035004||Viu
+TRIEC_t8_p8|5.033003||Viu
+TRIEC_t8_pb|5.033003||Viu
+TRIEC_tb|5.035004||Viu
+TRIEC_tb_p8|5.033003||Viu
+TRIEC_tb_pb|5.033003||Viu
TRIE_next|5.009005||Viu
TRIE_next_fail|5.009005||Viu
+TRIE_next_fail_t8|5.035004||Viu
+TRIE_next_fail_t8_p8|5.033003||Viu
+TRIE_next_fail_t8_pb|5.033003||Viu
+TRIE_next_fail_tb|5.035004||Viu
+TRIE_next_fail_tb_p8|5.033003||Viu
+TRIE_next_fail_tb_pb|5.033003||Viu
+TRIE_next_t8|5.035004||Viu
+TRIE_next_t8_p8|5.033003||Viu
+TRIE_next_t8_pb|5.033003||Viu
+TRIE_next_tb|5.035004||Viu
+TRIE_next_tb_p8|5.033003||Viu
+TRIE_next_tb_pb|5.033003||Viu
TRIE_NODEIDX|5.009002||Viu
TRIE_NODENUM|5.009002||Viu
+TRIE_t8|5.035004||Viu
+TRIE_t8_p8|5.033003||Viu
+TRIE_t8_pb|5.033003||Viu
+TRIE_tb|5.035004||Viu
+TRIE_tb_p8|5.033003||Viu
+TRIE_tb_pb|5.033003||Viu
TRIE_WORDS_OFFSET|5.009005||Viu
-TR_OOB|5.031007||Viu
-TR_R_EMPTY|5.031007||Viu
-TR_SPECIAL_HANDLING|5.031007||Viu
+TR_OOB|5.031006||Viu
+TR_R_EMPTY|5.031006||Viu
+TR_SPECIAL_HANDLING|5.031006||Viu
TRUE|5.003007||Viu
truncate|5.006000||Viu
-TR_UNLISTED|5.031007||Viu
-TR_UNMAPPED|5.031007||Viu
+TR_UNLISTED|5.031006||Viu
+TR_UNMAPPED|5.031006||Viu
try_amagic_bin|||ciu
tryAMAGICbin_MG|5.013002||Viu
try_amagic_un|||ciu
@@ -12673,7 +13846,7 @@ U16_MAX|5.003007||Viu
U16_MIN|5.003007||Viu
U16SIZE|5.006000|5.006000|Vn
U16TYPE|5.006000|5.006000|Vn
-U_32|5.007002||Viu
+U_32|5.007002|5.007002|
U32|5.027001||Viu
U32_ALIGNMENT_REQUIRED|5.007001|5.007001|Vn
U32_MAX|5.003007||Viu
@@ -12699,10 +13872,10 @@ Uid_t|5.003007|5.003007|Vn
Uid_t_f|5.006000|5.006000|Vn
Uid_t_sign|5.006000|5.006000|Vn
Uid_t_size|5.006000|5.006000|Vn
-UINT16_C|5.027007||Viu
-UINT32_C|5.027007||Viu
+UINT16_C|5.003007|5.003007|
+UINT32_C|5.003007|5.003007|
UINT32_MIN|5.006000||Viu
-UINT64_C|5.007001||Viu
+UINT64_C|5.023002|5.023002|
UINT64_MIN|5.006000||Viu
UINTMAX_C|5.003007|5.003007|
uiv_2buf|5.009003||Vniu
@@ -12733,18 +13906,18 @@ UNI_ccc_values_index|5.029009||Viu
UNI_ce_values_index|5.029009||Viu
UNI_ci_values_index|5.029009||Viu
UNI_CNTRL|5.029002||Viu
-UNICODE_ALLOW_ABOVE_IV_MAX|5.031007||Viu
+UNICODE_ALLOW_ABOVE_IV_MAX|5.031006||Viu
UNICODE_ALLOW_ANY|5.007003||Viu
UNICODE_ALLOW_SUPER|5.007003||Viu
UNICODE_ALLOW_SURROGATE|5.007003||Viu
UNICODE_BYTE_ORDER_MARK|5.008000||Viu
-UNICODE_DISALLOW_ABOVE_31_BIT|5.023006||Viu
-UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005||Viu
-UNICODE_DISALLOW_ILLEGAL_INTERCHANGE|5.013009||Viu
-UNICODE_DISALLOW_NONCHAR|5.013009||Viu
-UNICODE_DISALLOW_PERL_EXTENDED|5.027002||Viu
-UNICODE_DISALLOW_SUPER|5.013009||Viu
-UNICODE_DISALLOW_SURROGATE|5.013009||Viu
+UNICODE_DISALLOW_ABOVE_31_BIT|5.023006|5.023006|
+UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
+UNICODE_DISALLOW_ILLEGAL_INTERCHANGE|5.013009|5.013009|
+UNICODE_DISALLOW_NONCHAR|5.013009|5.013009|
+UNICODE_DISALLOW_PERL_EXTENDED|5.027002|5.027002|
+UNICODE_DISALLOW_SUPER|5.013009|5.013009|
+UNICODE_DISALLOW_SURROGATE|5.013009|5.013009|
UNICODE_DOT_DOT_VERSION|5.023002||Viu
UNICODE_DOT_VERSION|5.023002||Viu
UNICODE_GOT_NONCHAR|5.027009||Viu
@@ -12757,24 +13930,24 @@ UNICODE_GREEK_SMALL_LETTER_SIGMA|5.007003||Viu
UNICODE_IS_32_CONTIGUOUS_NONCHARS|5.023006||Viu
UNICODE_IS_BYTE_ORDER_MARK|5.007001||Viu
UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER|5.023006||Viu
-UNICODE_IS_NONCHAR|5.013009||Viu
+UNICODE_IS_NONCHAR|5.013009|5.013009|
UNICODE_IS_PERL_EXTENDED|5.027002||Viu
-UNICODE_IS_REPLACEMENT|5.007001||Viu
-UNICODE_IS_SUPER|5.013009||Viu
-UNICODE_IS_SURROGATE|5.007001||Viu
+UNICODE_IS_REPLACEMENT|5.007002|5.007002|
+UNICODE_IS_SUPER|5.013009|5.013009|
+UNICODE_IS_SURROGATE|5.007001|5.007001|
UNICODE_MAJOR_VERSION|5.023002||Viu
UNICODE_PAT_MOD|5.013006||Viu
UNICODE_PAT_MODS|5.013006||Viu
UNICODE_REPLACEMENT|5.007001|5.003007|p
UNICODE_SURROGATE_FIRST|5.007001||Viu
UNICODE_SURROGATE_LAST|5.007001||Viu
-UNICODE_WARN_ABOVE_31_BIT|5.023006||Viu
-UNICODE_WARN_ILLEGAL_C9_INTERCHANGE|5.025005||Viu
-UNICODE_WARN_ILLEGAL_INTERCHANGE|5.013009||Viu
-UNICODE_WARN_NONCHAR|5.013009||Viu
-UNICODE_WARN_PERL_EXTENDED|5.027002||Viu
-UNICODE_WARN_SUPER|5.013009||Viu
-UNICODE_WARN_SURROGATE|5.013009||Viu
+UNICODE_WARN_ABOVE_31_BIT|5.023006|5.023006|
+UNICODE_WARN_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
+UNICODE_WARN_ILLEGAL_INTERCHANGE|5.013009|5.013009|
+UNICODE_WARN_NONCHAR|5.013009|5.013009|
+UNICODE_WARN_PERL_EXTENDED|5.027002|5.027002|
+UNICODE_WARN_SUPER|5.013009|5.013009|
+UNICODE_WARN_SURROGATE|5.013009|5.013009|
UNI_compex_values_index|5.029009||Viu
UNI_CONTROL|5.029002||Viu
UNI_cwcf_values_index|5.029009||Viu
@@ -12788,20 +13961,20 @@ UNI_DECIMALNUMBER|5.029002||Viu
UNI_dep_values_index|5.029009||Viu
UNI_dia_values_index|5.029009||Viu
UNI_DIGIT|5.029002||Viu
-UNI_DISPLAY_BACKSLASH|5.007003||Viu
-UNI_DISPLAY_BACKSPACE|5.031009||Viu
-UNI_DISPLAY_ISPRINT|5.007003||Viu
-UNI_DISPLAY_QQ|5.007003||Viu
-UNI_DISPLAY_REGEX|5.007003||Viu
+UNI_DISPLAY_BACKSLASH|5.007003|5.007003|
+UNI_DISPLAY_BACKSPACE|5.031009|5.031009|
+UNI_DISPLAY_ISPRINT|5.007003|5.007003|
+UNI_DISPLAY_QQ|5.007003|5.007003|
+UNI_DISPLAY_REGEX|5.007003|5.007003|
UNI_di_values_index|5.029009||Viu
UNI_dt_values_index|5.029009||Viu
UNI_ea_values_index|5.029009||Viu
-UNI_ebase_values_index|5.031009||Viu
-UNI_ecomp_values_index|5.031009||Viu
-UNI_emod_values_index|5.031009||Viu
-UNI_emoji_values_index|5.031009||Viu
-UNI_epres_values_index|5.031009||Viu
-UNI_extpict_values_index|5.031009||Viu
+UNI_ebase_values_index|5.031010||Viu
+UNI_ecomp_values_index|5.031010||Viu
+UNI_emod_values_index|5.031010||Viu
+UNI_emoji_values_index|5.031010||Viu
+UNI_epres_values_index|5.031010||Viu
+UNI_extpict_values_index|5.031010||Viu
UNI_ext_values_index|5.029009||Viu
UNI_gcb_values_index|5.029009||Viu
UNI_gc_values_index|5.029009||Viu
@@ -12816,8 +13989,8 @@ UNI_hst_values_index|5.029009||Viu
UNI_HYPHEN|5.029002||Viu
UNI_hyphen_values_index|5.029009||Viu
UNI_idc_values_index|5.029009||Viu
-UNI_identifierstatus_values_index|5.031009||Viu
-UNI_identifiertype_values_index|5.031009||Viu
+UNI_identifierstatus_values_index|5.031010||Viu
+UNI_identifiertype_values_index|5.031010||Viu
UNI_ideo_values_index|5.029009||Viu
UNI_idsb_values_index|5.029009||Viu
UNI_idst_values_index|5.029009||Viu
@@ -12864,6 +14037,7 @@ UNI_sc_values_index|5.029009||Viu
UNI_scx_values_index|5.029009||Viu
UNI_sd_values_index|5.029009||Viu
UNISKIP|5.007001||Viu
+UNISKIP_BY_MSB|5.035004||Viu
UNI_SPACE|5.029002||Viu
UNI_SPACEPERL|5.029002||Viu
UNI_sterm_values_index|5.029009||Viu
@@ -12888,13 +14062,19 @@ UNI_xids_values_index|5.029009||Viu
UNI_XPERLSPACE|5.029002||Viu
UNKNOWN_ERRNO_MSG|5.019007||Viu
UNLESSM|5.003007||Viu
+UNLESSM_t8|5.035004||Viu
+UNLESSM_t8_p8|5.033003||Viu
+UNLESSM_t8_pb|5.033003||Viu
+UNLESSM_tb|5.035004||Viu
+UNLESSM_tb_p8|5.033003||Viu
+UNLESSM_tb_pb|5.033003||Viu
UNLIKELY|5.009004|5.003007|p
UNLINK|5.003007||Viu
unlink|5.005000||Viu
unlnk|5.003007||cVu
UNLOCK_DOLLARZERO_MUTEX|5.008001||Viu
-UNLOCK_LC_NUMERIC_STANDARD|5.021010||pViu
-UNLOCK_NUMERIC_STANDARD|5.021001||pViu
+UNLOCK_LC_NUMERIC_STANDARD|5.021010||poVnu
+UNLOCK_NUMERIC_STANDARD|||piu
UNOP_AUX_item_sv|5.021007||Viu
unpack_rec|5.008001||Viu
unpack_str|5.007003|5.007003|d
@@ -12911,6 +14091,7 @@ unwind_handler_stack|5.009003||Viu
update_debugger_info|5.009005||Viu
upg_version|5.009005|5.009005|
UPG_VERSION|5.019008||Viu
+uproot_SV|||Viu
Uquad_t|5.006000|5.006000|Vn
U_S|5.003007||Viu
usage|5.005000||Viu
@@ -12919,7 +14100,7 @@ USE_64_BIT_INT|5.006000|5.006000|Vn
USE_64_BIT_RAWIO|5.006000||Viu
USE_64_BIT_STDIO|5.006000||Viu
USE_BSDPGRP|5.003007||Viu
-USE_C_BACKTRACE|5.033000|5.033000|Vn
+USE_C_BACKTRACE|5.035009|5.035009|Vn
USE_DYNAMIC_LOADING|5.003007|5.003007|Vn
USE_ENVIRON_ARRAY|5.007001||Viu
USE_GRENT_BUFFER|5.008000||Viu
@@ -12968,7 +14149,7 @@ USE_SEMCTL_SEMID_DS|5.004005|5.004005|Vn
USE_SEMCTL_SEMUN|5.004005|5.004005|Vn
USE_SERVENT_BUFFER|5.008000||Viu
USE_SERVENT_PTR|5.008000||Viu
-USE_SPENT_BUFFER|5.031010||Viu
+USE_SPENT_BUFFER|5.031011||Viu
USE_SPENT_PTR|5.008000||Viu
USE_STAT_BLOCKS|5.005003|5.005003|Vn
USE_STAT_RDEV|5.003007||Viu
@@ -12982,8 +14163,9 @@ USE_THREAD_SAFE_LOCALE|5.025004||Viu
USE_TM64|5.011000||Viu
USE_UTF8_IN_NAMES|5.007003||Viu
utf16_textfilter|5.011001||Viu
-utf16_to_utf8|5.006000||cViu
-utf16_to_utf8_reversed|5.006000||cViu
+utf16_to_utf8|5.035004||cViu
+utf16_to_utf8_base|5.035004||cViu
+utf16_to_utf8_reversed|5.035004||cViu
UTF8_ACCUMULATE|5.007001||Viu
UTF8_ALLOW_ANY|5.007001||Viu
UTF8_ALLOW_ANYUV|5.007001||Viu
@@ -13014,16 +14196,16 @@ UTF8_EIGHT_BIT_LO|5.007001||Viu
UTF8f|5.019001|5.003007|p
UTF8fARG|5.019002|5.003007|p
UTF8_GOT_ABOVE_31_BIT|5.025006||Viu
-UTF8_GOT_CONTINUATION|5.025006||Viu
-UTF8_GOT_EMPTY|5.025006||Viu
-UTF8_GOT_LONG|5.025006||Viu
-UTF8_GOT_NONCHAR|5.025006||Viu
-UTF8_GOT_NON_CONTINUATION|5.025006||Viu
-UTF8_GOT_OVERFLOW|5.025006||Viu
-UTF8_GOT_PERL_EXTENDED|5.027002||Viu
-UTF8_GOT_SHORT|5.025006||Viu
-UTF8_GOT_SUPER|5.025006||Viu
-UTF8_GOT_SURROGATE|5.025006||Viu
+UTF8_GOT_CONTINUATION|5.025006|5.025006|
+UTF8_GOT_EMPTY|5.025006|5.025006|
+UTF8_GOT_LONG|5.025006|5.025006|
+UTF8_GOT_NONCHAR|5.025006|5.025006|
+UTF8_GOT_NON_CONTINUATION|5.025006|5.025006|
+UTF8_GOT_OVERFLOW|5.025006|5.025006|
+UTF8_GOT_PERL_EXTENDED|5.027002|5.027002|
+UTF8_GOT_SHORT|5.025006|5.025006|
+UTF8_GOT_SUPER|5.025006|5.025006|
+UTF8_GOT_SURROGATE|5.025006|5.025006|
utf8_hop|5.006000|5.006000|n
utf8_hop_back|5.025007|5.025007|n
utf8_hop_forward|5.025007|5.025007|n
@@ -13037,7 +14219,8 @@ UTF8_IS_INVARIANT|5.007001|5.003007|p
UTF8_IS_NEXT_CHAR_DOWNGRADEABLE|5.017006||Viu
UTF8_IS_NONCHAR|5.023002|5.023002|
UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC|5.013009||Viu
-UTF8_IS_REPLACEMENT|5.017000||Viu
+UTF8_IS_PERL_EXTENDED|5.035004||Viu
+UTF8_IS_REPLACEMENT|||
UTF8_IS_START|5.007001||Viu
UTF8_IS_START_base|5.031007||Viu
UTF8_IS_SUPER|5.023002|5.023002|
@@ -13058,6 +14241,9 @@ UTF8_SAFE_SKIP|5.029009|5.006000|p
UTF8SKIP|5.006000|5.006000|
UTF8_SKIP|5.023002|5.006000|p
utf8_to_bytes|5.006001|5.006001|x
+utf8_to_utf16|5.035004||Viu
+utf8_to_utf16_base|5.035004||xcViu
+utf8_to_utf16_reversed|5.035004||Viu
utf8_to_uvchr|5.007001|5.006001|pd
utf8_to_uvchr_buf|5.015009|5.006001|p
utf8_to_uvchr_buf_helper|5.031004||cVu
@@ -13076,38 +14262,45 @@ UTF8_WARN_PERL_EXTENDED|5.027002|5.027002|
UTF8_WARN_SUPER|5.013009|5.013009|
UTF8_WARN_SURROGATE|5.013009|5.013009|
UTF_ACCUMULATION_SHIFT|5.007001||Viu
+UTF_CONTINUATION_BYTE_INFO_BITS|5.035004||Viu
UTF_CONTINUATION_MARK|5.007001||Viu
UTF_CONTINUATION_MASK|5.007001||Viu
+UTF_EBCDIC_CONTINUATION_BYTE_INFO_BITS|5.035004||Viu
+UTF_FIRST_CONT_BYTE_110000|5.035004||Viu
+UTF_FIRST_CONT_BYTE|5.035004||Viu
UTF_IS_CONTINUATION_MASK|5.023006||Viu
UTF_MIN_ABOVE_LATIN1_BYTE|5.031006||Viu
+UTF_MIN_CONTINUATION_BYTE|5.035004||Viu
UTF_MIN_START_BYTE|5.031006||Viu
+UTF_START_BYTE_110000|5.035004||Viu
+UTF_START_BYTE|5.035004||Viu
UTF_START_MARK|5.007001||Viu
UTF_START_MASK|5.007001||Viu
UTF_TO_NATIVE|5.007001||Viu
utilize|5.003007||Viu
utime|5.005000||Viu
-U_V|5.003007||Viu
+U_V|5.006000|5.003007|
UVCHR_IS_INVARIANT|5.019004|5.003007|p
UVCHR_SKIP|5.022000|5.003007|p
uvchr_to_utf8|5.007001|5.007001|
uvchr_to_utf8_flags|5.007003|5.007003|
uvchr_to_utf8_flags_msgs|5.027009|5.027009|
UV_DIG|5.006000||Viu
-UVf|5.007001||Viu
+UVf|5.010000|5.010000|d
UV_IS_QUAD|5.006000||Viu
-UV_MAX|5.003007|5.003007|oVnu
+UV_MAX|5.003007|5.003007|
UV_MAX_P1|5.007002||Viu
UV_MAX_P1_HALF|5.007002||Viu
-UV_MIN|5.003007|5.003007|oVnu
-UVof|5.006000|5.003007|p
+UV_MIN|5.003007|5.003007|
+UVof|5.006000|5.003007|poVn
uvoffuni_to_utf8_flags|5.027009||cV
uvoffuni_to_utf8_flags_msgs|5.027009||cVu
UVSIZE|5.006000|5.003007|poVn
UVTYPE|5.006000|5.003007|poVn
-UVuf|5.006000|5.003007|p
+UVuf|5.006000|5.003007|poVn
uvuni_to_utf8|5.019004||cVu
uvuni_to_utf8_flags|5.007003||dcV
-UVxf|5.006000|5.003007|p
+UVxf|5.006000|5.003007|poVn
UVXf|5.007001|5.007001|poVn
VAL_EAGAIN|5.003007|5.003007|Vn
validate_proto|5.019002||xcVi
@@ -13123,6 +14316,12 @@ VCMP|5.019008||Viu
vcroak|5.006000|5.006000|
vdeb|5.007003|5.007003|u
VERB|5.009005||Viu
+VERB_t8|5.035004||Viu
+VERB_t8_p8|5.033003||Viu
+VERB_t8_pb|5.033003||Viu
+VERB_tb|5.035004||Viu
+VERB_tb_p8|5.033003||Viu
+VERB_tb_pb|5.033003||Viu
vform|5.006000|5.006000|
vfprintf|5.003007||Viu
visit|5.005000||Viu
@@ -13135,6 +14334,7 @@ vnormal|5.009002|5.009002|
VNORMAL|5.019008||Viu
vnumify|5.009000|5.009000|
VNUMIFY|5.019008||Viu
+voidnonfinal|5.035002||Viu
VOL|5.003007||Viu
vstringify|5.009000|5.009000|
VSTRINGIFY|5.019008||Viu
@@ -13172,13 +14372,13 @@ vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
-vwarn|5.006000|5.006000|
-vwarner|5.006000|5.006000|p
+vwarn|5.006000|5.003007|
+vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
-warn|5.006000|5.003007|v
+warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
WARN_AMBIGUOUS|5.006000|5.003007|p
@@ -13189,15 +14389,19 @@ WARN_CLOSURE|5.006000|5.003007|p
WARN_DEBUGGING|5.006000|5.003007|p
WARN_DEPRECATED|5.006000|5.003007|p
WARN_DIGIT|5.006000|5.003007|p
-warner|5.006000|5.004000|pv
-warner_nocontext|5.006000|5.004000|vn
+warner|5.006000||pvV
+warner_nocontext|5.006000||vVn
WARN_EXEC|5.006000|5.003007|p
WARN_EXITING|5.006000|5.003007|p
WARN_EXPERIMENTAL|5.017004|5.017004|
WARN_EXPERIMENTAL__ALPHA_ASSERTIONS|5.027009|5.027009|
+WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES|5.035009|5.035009|
WARN_EXPERIMENTAL__BITWISE|5.021009|5.021009|
+WARN_EXPERIMENTAL__BUILTIN|5.035009|5.035009|
WARN_EXPERIMENTAL__CONST_ATTR|5.021008|5.021008|
WARN_EXPERIMENTAL__DECLARED_REFS|5.025003|5.025003|
+WARN_EXPERIMENTAL__DEFER|5.035004|5.035004|
+WARN_EXPERIMENTAL__FOR_LIST|5.035005|5.035005|
WARN_EXPERIMENTAL__ISA|5.031007|5.031007|
WARN_EXPERIMENTAL__LEXICAL_SUBS|5.017005|5.017005|
WARN_EXPERIMENTAL__POSTDEREF|5.019005|5.019005|
@@ -13208,9 +14412,9 @@ WARN_EXPERIMENTAL__RE_STRICT|5.021008|5.021008|
WARN_EXPERIMENTAL__SCRIPT_RUN|5.027008|5.027008|
WARN_EXPERIMENTAL__SIGNATURES|5.019009|5.019009|
WARN_EXPERIMENTAL__SMARTMATCH|5.017011|5.017011|
+WARN_EXPERIMENTAL__TRY|5.033007|5.033007|
WARN_EXPERIMENTAL__UNIPROP_WILDCARDS|5.029009|5.029009|
WARN_EXPERIMENTAL__VLB|5.029009|5.029009|
-WARN_EXPERIMENTAL__WIN32_PERLIO|5.021001|5.021001|
WARN_GLOB|5.006000|5.003007|p
WARN_ILLEGALPROTO|5.011004|5.011004|
WARN_IMPRECISION|5.011000|5.011000|
@@ -13223,7 +14427,7 @@ WARN_MALLOC|5.006000|5.003007|p
WARN_MISC|5.006000|5.003007|p
WARN_MISSING|5.021002|5.021002|
WARN_NEWLINE|5.006000|5.003007|p
-warn_nocontext|5.006000|5.006000|pvn
+warn_nocontext|5.006000||pvVn
WARN_NONCHAR|5.013010|5.013010|
WARN_NONEstring|5.006000||Viu
WARN_NON_UNICODE|5.013010|5.013010|
@@ -13277,7 +14481,18 @@ WB_MB_or_MN_or_SQ_then_NU|5.023008||Viu
WB_NOBREAK|5.023008||Viu
WB_NU_then_MB_or_MN_or_SQ|5.023008||Viu
WB_RI_then_RI|5.025003||Viu
-WEXITSTATUS|5.008001||Viu
+WCTOMB_LOCK|5.033005||Viu
+WCTOMB_UNLOCK|5.033005||Viu
+what_MULTI_CHAR_FOLD_latin1_safe|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part0|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part1|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part2|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part3|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part4|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part5|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part6|5.033005||Viu
+what_MULTI_CHAR_FOLD_utf8_safe_part7|5.033005||Viu
whichsig|5.003007|5.003007|
whichsig_pv|5.015004|5.015004|
whichsig_pvn|5.015004|5.015004|
@@ -13285,39 +14500,100 @@ whichsig_sv|5.015004|5.015004|
WHILEM|5.003007||Viu
WHILEM_A_max|5.009005||Viu
WHILEM_A_max_fail|5.009005||Viu
+WHILEM_A_max_fail_t8|5.035004||Viu
+WHILEM_A_max_fail_t8_p8|5.033003||Viu
+WHILEM_A_max_fail_t8_pb|5.033003||Viu
+WHILEM_A_max_fail_tb|5.035004||Viu
+WHILEM_A_max_fail_tb_p8|5.033003||Viu
+WHILEM_A_max_fail_tb_pb|5.033003||Viu
+WHILEM_A_max_t8|5.035004||Viu
+WHILEM_A_max_t8_p8|5.033003||Viu
+WHILEM_A_max_t8_pb|5.033003||Viu
+WHILEM_A_max_tb|5.035004||Viu
+WHILEM_A_max_tb_p8|5.033003||Viu
+WHILEM_A_max_tb_pb|5.033003||Viu
WHILEM_A_min|5.009005||Viu
WHILEM_A_min_fail|5.009005||Viu
+WHILEM_A_min_fail_t8|5.035004||Viu
+WHILEM_A_min_fail_t8_p8|5.033003||Viu
+WHILEM_A_min_fail_t8_pb|5.033003||Viu
+WHILEM_A_min_fail_tb|5.035004||Viu
+WHILEM_A_min_fail_tb_p8|5.033003||Viu
+WHILEM_A_min_fail_tb_pb|5.033003||Viu
+WHILEM_A_min_t8|5.035004||Viu
+WHILEM_A_min_t8_p8|5.033003||Viu
+WHILEM_A_min_t8_pb|5.033003||Viu
+WHILEM_A_min_tb|5.035004||Viu
+WHILEM_A_min_tb_p8|5.033003||Viu
+WHILEM_A_min_tb_pb|5.033003||Viu
WHILEM_A_pre|5.009005||Viu
WHILEM_A_pre_fail|5.009005||Viu
+WHILEM_A_pre_fail_t8|5.035004||Viu
+WHILEM_A_pre_fail_t8_p8|5.033003||Viu
+WHILEM_A_pre_fail_t8_pb|5.033003||Viu
+WHILEM_A_pre_fail_tb|5.035004||Viu
+WHILEM_A_pre_fail_tb_p8|5.033003||Viu
+WHILEM_A_pre_fail_tb_pb|5.033003||Viu
+WHILEM_A_pre_t8|5.035004||Viu
+WHILEM_A_pre_t8_p8|5.033003||Viu
+WHILEM_A_pre_t8_pb|5.033003||Viu
+WHILEM_A_pre_tb|5.035004||Viu
+WHILEM_A_pre_tb_p8|5.033003||Viu
+WHILEM_A_pre_tb_pb|5.033003||Viu
WHILEM_B_max|5.009005||Viu
WHILEM_B_max_fail|5.009005||Viu
+WHILEM_B_max_fail_t8|5.035004||Viu
+WHILEM_B_max_fail_t8_p8|5.033003||Viu
+WHILEM_B_max_fail_t8_pb|5.033003||Viu
+WHILEM_B_max_fail_tb|5.035004||Viu
+WHILEM_B_max_fail_tb_p8|5.033003||Viu
+WHILEM_B_max_fail_tb_pb|5.033003||Viu
+WHILEM_B_max_t8|5.035004||Viu
+WHILEM_B_max_t8_p8|5.033003||Viu
+WHILEM_B_max_t8_pb|5.033003||Viu
+WHILEM_B_max_tb|5.035004||Viu
+WHILEM_B_max_tb_p8|5.033003||Viu
+WHILEM_B_max_tb_pb|5.033003||Viu
WHILEM_B_min|5.009005||Viu
WHILEM_B_min_fail|5.009005||Viu
-WIDEST_UTYPE|5.015004|5.003007|p
-WIFEXITED|5.008001||Viu
-WIFSIGNALED|5.008001||Viu
-WIFSTOPPED|5.008001||Viu
+WHILEM_B_min_fail_t8|5.035004||Viu
+WHILEM_B_min_fail_t8_p8|5.033003||Viu
+WHILEM_B_min_fail_t8_pb|5.033003||Viu
+WHILEM_B_min_fail_tb|5.035004||Viu
+WHILEM_B_min_fail_tb_p8|5.033003||Viu
+WHILEM_B_min_fail_tb_pb|5.033003||Viu
+WHILEM_B_min_t8|5.035004||Viu
+WHILEM_B_min_t8_p8|5.033003||Viu
+WHILEM_B_min_t8_pb|5.033003||Viu
+WHILEM_B_min_tb|5.035004||Viu
+WHILEM_B_min_tb_p8|5.033003||Viu
+WHILEM_B_min_tb_pb|5.033003||Viu
+WHILEM_t8|5.035004||Viu
+WHILEM_t8_p8|5.033003||Viu
+WHILEM_t8_pb|5.033003||Viu
+WHILEM_tb|5.035004||Viu
+WHILEM_tb_p8|5.033003||Viu
+WHILEM_tb_pb|5.033003||Viu
+WIDEST_UTYPE|5.015004|5.003007|poVnu
win32_croak_not_implemented|5.017006||Vniu
WIN32SCK_IS_STDSCK|5.007001||Viu
win32_setlocale|5.027006||Viu
withinCOUNT|5.031004||Viu
+withinCOUNT_KNOWN_VALID|5.033005||Viu
WITH_LC_NUMERIC_SET_TO_NEEDED|5.031003|5.031003|
WITH_LC_NUMERIC_SET_TO_NEEDED_IN|5.031003|5.031003|
with_queued_errors|5.013001||Viu
-WNOHANG|5.008001||Viu
+with_tp_UTF8ness|5.033003||Viu
+with_t_UTF8ness|5.035004||Viu
wrap_keyword_plugin|5.027006|5.027006|x
wrap_op_checker|5.015008|5.015008|
write|5.005000||Viu
write_to_stderr|5.008001||Viu
-WSTOPSIG|5.008001||Viu
-WTERMSIG|5.008001||Viu
-WUNTRACED|5.008001||Viu
XCPT_CATCH|5.009002|5.003007|p
XCPT_RETHROW|5.009002|5.003007|p
XCPT_TRY_END|5.009002|5.003007|p
XCPT_TRY_START|5.009002|5.003007|p
XDIGIT_VALUE|5.019008||Viu
-XHvTOTALKEYS|5.007003||Viu
xio_any|5.006001||Viu
xio_dirp|5.006001||Viu
xiv_iv|5.009003||Viu
@@ -13347,7 +14623,7 @@ XPUSHTARG|5.003007||Viu
XPUSHu|5.004000|5.003007|p
XPUSHundef|5.006000||Viu
xpv_len|5.017006||Viu
-XS|5.003007|5.003007|V
+XS|5.003007|5.003007|Vu
XSANY|5.003007||Viu
XS_APIVERSION_BOOTCHECK|5.013004|5.013004|
XS_APIVERSION_POPMARK_BOOTCHECK|5.021006||Viu
@@ -13357,15 +14633,15 @@ XS_BOTHVERSION_BOOTCHECK|5.021006||Viu
XS_BOTHVERSION_POPMARK_BOOTCHECK|5.021006||Viu
XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK|5.021006||Viu
XS_DYNAMIC_FILENAME|5.009004||Viu
-XS_EXTERNAL|5.015002|5.015002|V
+XS_EXTERNAL|5.015002|5.015002|Vu
xs_handshake|||vcniu
XSINTERFACE_CVT|5.005000||Viu
XSINTERFACE_CVT_ANON|5.010000||Viu
XSINTERFACE_FUNC|5.005000||Viu
XSINTERFACE_FUNC_SET|5.005000||Viu
-XS_INTERNAL|5.015002|5.015002|V
+XS_INTERNAL|5.015002|5.015002|Vu
XSprePUSH|5.006000|5.003007|poVnu
-XSPROTO|5.010000|5.003007|pV
+XSPROTO|5.010000|5.003007|pVu
XSRETURN|5.003007|5.003007|p
XSRETURN_EMPTY|5.003007|5.003007|
XSRETURN_IV|5.003007|5.003007|
@@ -14306,7 +15582,7 @@ __DATA__
#define DPPP_CAT2(x,y) CAT2(x,y)
#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
-#define D_PPP_RELEASE_DATE 1602806400 /* 2020-10-16 */
+#define D_PPP_RELEASE_DATE 1647561600 /* 2022-03-18 */
#if ! defined(PERL_REVISION) && ! defined(PERL_VERSION_MAJOR)
# if ! defined(__PATCHLEVEL_H_INCLUDED__) \
@@ -15237,6 +16513,18 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
#ifndef PERL_MAGIC_ext
# define PERL_MAGIC_ext '~'
#endif
+
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#ifndef PERL_STATIC_INLINE
+# define PERL_STATIC_INLINE static inline
+#endif
+
+#else
+#ifndef PERL_STATIC_INLINE
+# define PERL_STATIC_INLINE static
+#endif
+
+#endif
#ifndef cBOOL
# define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0)
#endif
@@ -15276,6 +16564,43 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
#endif
#endif
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+#if __has_builtin(__builtin_unreachable)
+# define D_PPP_HAS_BUILTIN_UNREACHABLE
+#elif (defined(__GNUC__) && ( __GNUC__ > 4 \
+ || __GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+# define D_PPP_HAS_BUILTIN_UNREACHABLE
+#endif
+
+#ifndef ASSUME
+# ifdef DEBUGGING
+# define ASSUME(x) assert(x)
+# elif defined(_MSC_VER)
+# define ASSUME(x) __assume(x)
+# elif defined(__ARMCC_VERSION)
+# define ASSUME(x) __promise(x)
+# elif defined(D_PPP_HAS_BUILTIN_UNREACHABLE)
+# define ASSUME(x) ((x) ? (void) 0 : __builtin_unreachable())
+# else
+# define ASSUME(x) assert(x)
+# endif
+#endif
+
+#ifndef NOT_REACHED
+# ifdef D_PPP_HAS_BUILTIN_UNREACHABLE
+# define NOT_REACHED \
+ STMT_START { \
+ ASSUME(!"UNREACHABLE"); __builtin_unreachable(); \
+ } STMT_END
+# elif ! defined(__GNUC__) && (defined(__sun) || defined(__hpux))
+# define NOT_REACHED
+# else
+# define NOT_REACHED ASSUME(!"UNREACHABLE")
+# endif
+#endif
#ifndef WIDEST_UTYPE
# ifdef QUADKIND
@@ -15422,8 +16747,12 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
# define NOOP /*EMPTY*/(void)0
#endif
+#if (PERL_BCDVERSION < 0x5006001) && (PERL_BCDVERSION < 0x5027007)
+#undef dNOOP
#ifndef dNOOP
-# define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL
+# define dNOOP struct Perl___notused_struct
+#endif
+
#endif
#ifndef NVTYPE
@@ -15498,7 +16827,9 @@ typedef NVTYPE NV;
# endif
#endif
-#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus)
+#if ! defined(__GNUC__) || defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) || defined(__cplusplus)
+# undef PERL_USE_GCC_BRACE_GROUPS
+#else
# ifndef PERL_USE_GCC_BRACE_GROUPS
# define PERL_USE_GCC_BRACE_GROUPS
# endif
@@ -15506,17 +16837,12 @@ typedef NVTYPE NV;
#undef STMT_START
#undef STMT_END
-#ifdef PERL_USE_GCC_BRACE_GROUPS
-# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
-# define STMT_END )
-#else
-# if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
+#if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
# define STMT_START if (1)
# define STMT_END else (void)0
-# else
+#else
# define STMT_START do
# define STMT_END while (0)
-# endif
#endif
#ifndef boolSV
# define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
@@ -15730,8 +17056,8 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
#ifdef EBCDIC
/* This is the first version where these macros are fully correct on EBCDIC
- * platforms. Relying on * the C library functions, as earlier releases did,
- * causes problems with * locales */
+ * platforms. Relying on the C library functions, as earlier releases did,
+ * causes problems with locales */
# if (PERL_BCDVERSION < 0x5022000)
# undef isALNUM
# undef isALNUM_A
@@ -15912,16 +17238,16 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
#endif
#ifndef isCNTRL_L1
-# define isCNTRL_L1(c) (isCNTRL(c) || ( (WIDEST_UTYPE) (c) <= 0x9F \
- && (WIDEST_UTYPE) (c) >= 0x80))
+# define isCNTRL_L1(c) ( (WIDEST_UTYPE) (c) < ' ' \
+ || inRANGE((c), 0x7F, 0x9F))
#endif
#ifndef isLOWER
-# define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
+# define isLOWER(c) inRANGE((c), 'a', 'z')
#endif
#ifndef isUPPER
-# define isUPPER(c) ((c) <= 'Z' && (c) >= 'A')
+# define isUPPER(c) inRANGE((c), 'A', 'Z')
#endif
#endif /* Below are definitions common to EBCDIC and ASCII */
@@ -16115,8 +17441,8 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
#ifndef isXDIGIT
# define isXDIGIT(c) ( isDIGIT(c) \
- || ((c) >= 'a' && (c) <= 'f') \
- || ((c) >= 'A' && (c) <= 'F'))
+ || inRANGE((c), 'a', 'f') \
+ || inRANGE((c), 'A', 'F'))
#endif
#ifndef isXDIGIT_L1
@@ -17222,6 +18548,9 @@ DPPP_(my_sv_setpvf_mg_nocontext)(SV * const sv, const char * const pat, ...)
(Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \
} STMT_END
#endif
+#ifndef SvPVCLEAR
+# define SvPVCLEAR(sv) sv_setpvs((sv), "")
+#endif
#ifndef WARN_ALL
# define WARN_ALL 0
#endif
@@ -17804,17 +19133,18 @@ DPPP_(my_my_strnlen)(const char *str, Size_t maxlen)
# else
# define D_PPP_FIX_UTF8_ERRSV_FOR_SV(sv) STMT_START {} STMT_END
# endif
-# define croak_sv(sv) \
- STMT_START { \
- SV *_sv = (sv); \
- if (SvROK(_sv)) { \
- sv_setsv(ERRSV, _sv); \
- croak(NULL); \
- } else { \
- D_PPP_FIX_UTF8_ERRSV_FOR_SV(_sv); \
- croak("%" SVf, SVfARG(_sv)); \
- } \
- } STMT_END
+PERL_STATIC_INLINE void D_PPP_croak_sv(SV *sv) {
+ dTHX;
+ SV *_sv = (sv);
+ if (SvROK(_sv)) {
+ sv_setsv(ERRSV, _sv);
+ croak(NULL);
+ } else {
+ D_PPP_FIX_UTF8_ERRSV_FOR_SV(_sv);
+ croak("%" SVf, SVfARG(_sv));
+ }
+}
+# define croak_sv(sv) D_PPP_croak_sv(sv)
#elif (PERL_BCDVERSION >= 0x5004000)
# define croak_sv(sv) croak("%" SVf, SVfARG(sv))
#else
@@ -18021,7 +19351,8 @@ extern void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const par
#define croak_xs_usage DPPP_(my_croak_xs_usage)
#define Perl_croak_xs_usage DPPP_(my_croak_xs_usage)
-
+#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
+#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
void
DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
@@ -18029,11 +19360,7 @@ DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
dTHX;
const GV *const gv = CvGV(cv);
-#ifdef PERL_ARGS_ASSERT_CROAK_XS_USAGE
PERL_ARGS_ASSERT_CROAK_XS_USAGE;
-#else
- assert(cv); assert(params);
-#endif
if (gv) {
const char *const gvname = GvNAME(gv);
@@ -18051,6 +19378,7 @@ DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
}
#endif
#endif
+#endif
#ifndef mPUSHs
# define mPUSHs(s) PUSHs(sv_2mortal(s))
#endif
@@ -18139,6 +19467,9 @@ DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
#endif
#endif
+#ifndef G_LIST
+# define G_LIST G_ARRAY /* Replace */
+#endif
#ifndef PERL_LOADMOD_DENY
# define PERL_LOADMOD_DENY 0x1
#endif
@@ -18152,9 +19483,22 @@ DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
#endif
#if defined(PERL_USE_GCC_BRACE_GROUPS)
-# define D_PPP_CROAK_IF_ERROR(cond) ({ SV *_errsv; ((cond) && (_errsv = ERRSV) && (SvROK(_errsv) || SvTRUE(_errsv)) && (croak_sv(_errsv), 1)); })
+# define D_PPP_CROAK_IF_ERROR(cond) ({ \
+ SV *_errsv; \
+ ( (cond) \
+ && (_errsv = ERRSV) \
+ && (SvROK(_errsv) || SvTRUE(_errsv)) \
+ && (croak_sv(_errsv), 1)); \
+ })
#else
-# define D_PPP_CROAK_IF_ERROR(cond) ((cond) && (SvROK(ERRSV) || SvTRUE(ERRSV)) && (croak_sv(ERRSV), 1))
+ PERL_STATIC_INLINE void D_PPP_CROAK_IF_ERROR(int cond) {
+ dTHX;
+ SV *errsv;
+ if (!cond) return;
+ errsv = ERRSV;
+ if (SvROK(errsv) || SvTRUE(errsv)) croak_sv(errsv);
+ }
+# define D_PPP_CROAK_IF_ERROR(cond) D_PPP_CROAK_IF_ERROR(cond)
#endif
#ifndef G_METHOD
@@ -18261,9 +19605,9 @@ DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args)
OP * const modname = newSVOP(OP_CONST, 0, name);
/* 5.005 has a somewhat hacky force_normal that doesn't croak on
- SvREADONLY() if PL_compling is true. Current perls take care in
+ SvREADONLY() if PL_compiling is true. Current perls take care in
ck_require() to correctly turn off SvREADONLY before calling
- force_normal_flags(). This seems a better fix than fudging PL_compling
+ force_normal_flags(). This seems a better fix than fudging PL_compiling
*/
SvREADONLY_off(((SVOP*)modname)->op_sv);
modname->op_private |= OPpCONST_BARE;
@@ -18548,11 +19892,25 @@ DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
#endif
#ifndef newSVpvn_flags
-#if defined(PERL_USE_GCC_BRACE_GROUPS)
-# define newSVpvn_flags(s, len, flags) ({ SV *_sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len)); SvFLAGS(_sv) |= ((flags) & SVf_UTF8); ((flags) & SVs_TEMP) ? sv_2mortal(_sv) : _sv; })
-#else
-# define newSVpvn_flags(s, len, flags) ((PL_Sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len))), SvFLAGS(PL_Sv) |= ((flags) & SVf_UTF8), (((flags) & SVs_TEMP) ? sv_2mortal(PL_Sv) : PL_Sv))
-#endif
+# if defined(PERL_USE_GCC_BRACE_GROUPS)
+# define newSVpvn_flags(s, len, flags) \
+ ({ \
+ SV * sv = newSVpvn(D_PPP_CONSTPV_ARG(s), (len)); \
+ SvFLAGS(sv) |= ((flags) & SVf_UTF8); \
+ if ((flags) & SVs_TEMP) sv = sv_2mortal(sv); \
+ sv; \
+ })
+# else
+ PERL_STATIC_INLINE SV* D_PPP_newSVpvn_flags(const char *const s, const STRLEN len, const U32 flags)
+ {
+ dTHX;
+ SV * sv = newSVpvn(s, len);
+ SvFLAGS(sv) |= (flags & SVf_UTF8);
+ if (flags & SVs_TEMP) return sv_2mortal(sv);
+ return sv;
+ }
+# define newSVpvn_flags(s, len, flags) D_PPP_newSVpvn_flags((s), (len), (flags))
+# endif
#endif
#ifndef SV_NOSTEAL
# define SV_NOSTEAL 16
@@ -18572,6 +19930,7 @@ DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
} \
} STMT_END
#else
+#define sv_setsv_flags(dstr, sstr, flags) \
( \
(((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) ? ( \
SvTEMP_off((SV *)(sstr)), \
@@ -18645,16 +20004,24 @@ DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
#endif
-#if defined(PERL_USE_GCC_BRACE_GROUPS)
-#ifndef newSVsv_flags
-# define newSVsv_flags(sv, flags) ({ SV *_sv = newSV(0); sv_setsv_flags(_sv, (sv), (flags)); _sv; })
-#endif
-
-#else
#ifndef newSVsv_flags
-# define newSVsv_flags(sv, flags) ((PL_Sv = newSV(0)), sv_setsv_flags(PL_Sv, (sv), (flags)), PL_Sv)
-#endif
-
+# if defined(PERL_USE_GCC_BRACE_GROUPS)
+# define newSVsv_flags(sv, flags) \
+ ({ \
+ SV *n= newSV(0); \
+ sv_setsv_flags(n, (sv), (flags)); \
+ n; \
+ })
+# else
+ PERL_STATIC_INLINE SV* D_PPP_newSVsv_flags(SV *const old, I32 flags)
+ {
+ dTHX;
+ SV *n= newSV(0);
+ sv_setsv_flags(n, old, flags);
+ return n;
+ }
+# define newSVsv_flags(sv, flags) D_PPP_newSVsv_flags(sv, flags)
+# endif
#endif
#ifndef newSVsv_nomg
# define newSVsv_nomg(sv) newSVsv_flags((sv), SV_NOSTEAL)
@@ -18856,8 +20223,10 @@ DPPP_(my_newSVpvn_share)(pTHX_ const char *s, I32 len, U32 hash)
#ifndef get_cvs
# define get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags)
#endif
+
+#undef SvGETMAGIC
#ifndef SvGETMAGIC
-# define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
+# define SvGETMAGIC(x) ((void)(UNLIKELY(SvGMAGICAL(x)) && mg_get(x)))
#endif
/* That's the best we can do... */
@@ -19086,10 +20455,10 @@ DPPP_(my_mg_findext)(const SV * sv, int type, const MGVTBL *vtbl) {
#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 int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, const MGVTBL * vtbl);
static
#else
-extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl);
+extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, const MGVTBL * vtbl);
#endif
#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL)
@@ -19102,7 +20471,7 @@ extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL *
int
-DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
+DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, const MGVTBL *vtbl)
{
MAGIC* mg;
MAGIC** mgp;
@@ -20131,8 +21500,9 @@ DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size)
(((len) > 7) ? 0xFF : (0xFF & (0xFE << (7-(len)))))
#endif
-#if (PERL_BCDVERSION < 0x5018000) /* On non-EBCDIC was valid before this, */
- /* but easier to just do one check */
+/* On non-EBCDIC was valid for some releases earlier than this, but easier to
+ * just do one check */
+#if (PERL_BCDVERSION < 0x5018000)
# undef UTF8_MAXBYTES_CASE
#endif
@@ -20380,10 +21750,10 @@ DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size)
# error Unknown character set
#endif
-#if (PERL_BCDVERSION < 0x5031004)
- /* Versions prior to this accepted things that are now considered
- * malformations, and didn't return -1 on error with warnings enabled
- * */
+#if (PERL_BCDVERSION < 0x5035010)
+ /* Versions prior to 5.31.4 accepted things that are now considered
+ * malformations, and didn't return -1 on error with warnings enabled.
+ * Versions before 5.35.10 dereferenced empty input without checking */
# undef utf8_to_uvchr_buf
#endif
@@ -20440,6 +21810,34 @@ extern UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLE
UV
DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
{
+# if (PERL_BCDVERSION >= 0x5031004) /* But from above, must be < 5.35.10 */
+# if (PERL_BCDVERSION != 0x5035009)
+
+ /* Versions less than 5.35.9 could dereference s on zero length, so
+ * pass it something where no harm comes from that. */
+ if (send <= s) s = send = (U8 *) "?";
+ return Perl_utf8_to_uvchr_buf_helper(aTHX_ s, send, retlen);
+
+# else /* Below is 5.35.9, which also works on non-empty input, but
+ for empty input, can wrongly dereference, and additionally is
+ also just plain broken */
+ if (send > s) return Perl_utf8_to_uvchr_buf_helper(aTHX_ s, send, retlen);
+ if (! ckWARN_d(WARN_UTF8)) {
+ if (retlen) *retlen = 0;
+ return UNICODE_REPLACEMENT;
+ }
+ else {
+ s = send = (U8 *) "?";
+
+ /* Call just for its warning */
+ (void) Perl__utf8n_to_uvchr_msgs_helper(s, 0, NULL, 0, NULL, NULL);
+ if (retlen) *retlen = (STRLEN) -1;
+ return 0;
+ }
+
+# endif
+# else
+
UV ret;
STRLEN curlen;
bool overflows = 0;
@@ -20461,7 +21859,7 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
}
}
-# if (PERL_BCDVERSION < 0x5026000) && ! defined(EBCDIC)
+# if (PERL_BCDVERSION < 0x5026000) && ! defined(EBCDIC)
/* Perl did not properly detect overflow for much of its history on
* non-EBCDIC platforms, often returning an overlong value which may or may
@@ -20516,7 +21914,7 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
}
else
-# endif /* < 5.26 */
+# endif /* < 5.26 */
/* Here, we are either in a release that properly detects overflow, or
* we have checked for overflow and the next statement is executing as
@@ -20529,7 +21927,7 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
s, curlen, retlen, (UTF8_ALLOW_ANYUV
& ~(UTF8_ALLOW_LONG|UTF8_ALLOW_EMPTY)));
-# if (PERL_BCDVERSION >= 0x5026000) && (PERL_BCDVERSION < 0x5028000)
+# if (PERL_BCDVERSION >= 0x5026000) && (PERL_BCDVERSION < 0x5028000)
/* But actually, more modern versions restrict the UV to being no more than
* what an IV can hold, so it could still have gotten it wrong about
@@ -20538,7 +21936,7 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
overflows = 1;
}
-# endif
+# endif
if (UNLIKELY(overflows)) {
if (! do_warnings) {
@@ -20572,7 +21970,9 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
* disabled, so this 'if' will be true, and so later on, we know that
* 's' is dereferencible */
if (do_warnings) {
- *retlen = (STRLEN) -1;
+ if (retlen) {
+ *retlen = (STRLEN) -1;
+ }
}
else {
ret = D_PPP_utf8_to_uvchr_buf_callee(
@@ -20582,7 +21982,7 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
* modern version of this function returns */
ret = UNICODE_REPLACEMENT;
-# if (PERL_BCDVERSION < 0x5016000)
+# if (PERL_BCDVERSION < 0x5016000)
/* Versions earlier than this don't necessarily return the proper
* length. It should not extend past the end of string, nor past
@@ -20594,11 +21994,11 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
*retlen = D_PPP_MIN(*retlen, curlen);
*retlen = D_PPP_MIN(*retlen, UTF8SKIP(s));
do {
-# ifdef UTF8_IS_CONTINUATION
+# ifdef UTF8_IS_CONTINUATION
if (! UTF8_IS_CONTINUATION(s[i]))
-# else /* Versions without the above don't support EBCDIC anyway */
+# else /* Versions without the above don't support EBCDIC anyway */
if (s[i] < 0x80 || s[i] > 0xBF)
-# endif
+# endif
{
*retlen = i;
break;
@@ -20606,12 +22006,15 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
} while (++i < *retlen);
}
-# endif
+# endif /* end of < 5.16.0 */
}
}
return ret;
+
+# endif /* end of < 5.31.4 */
+
}
# endif
@@ -20642,29 +22045,80 @@ DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
/* Replace utf8_to_uvchr with utf8_to_uvchr_buf */
#ifdef sv_len_utf8
- /* Older Perl versions have broken sv_len_utf8() when passed sv does not have SVf_UTF8 flag set */
- /* Also note that SvGETMAGIC() may change presence of SVf_UTF8 flag */
-# if (PERL_BCDVERSION < 0x5017005)
+# if (PERL_BCDVERSION >= 0x5017005)
+# ifndef sv_len_utf8_nomg
+# if defined(PERL_USE_GCC_BRACE_GROUPS)
+# define sv_len_utf8_nomg(sv) \
+ ({ \
+ SV *sv_ = (sv); \
+ sv_len_utf8(!SvGMAGICAL(sv_) \
+ ? sv_ \
+ : sv_mortalcopy_flags(sv_, SV_NOSTEAL)); \
+ })
+# else
+ PERL_STATIC_INLINE STRLEN D_PPP_sv_len_utf8_nomg(SV * sv)
+ {
+ dTHX;
+ if (SvGMAGICAL(sv))
+ return sv_len_utf8(sv_mortalcopy_flags(sv,
+ SV_NOSTEAL));
+ else return sv_len_utf8(sv);
+ }
+# define sv_len_utf8_nomg(sv) D_PPP_sv_len_utf8_nomg(sv)
+# endif
+# endif
+# else /* < 5.17.5 */
+ /* Older Perl versions have broken sv_len_utf8() when passed sv does not
+ * have SVf_UTF8 flag set */
+ /* Also note that SvGETMAGIC() may change presence of SVf_UTF8 flag */
# undef sv_len_utf8
# if defined(PERL_USE_GCC_BRACE_GROUPS)
-# define sv_len_utf8_nomg(sv) ({ SV *_sv2 = (sv); (SvUTF8(_sv2) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(_sv2) ? _sv2 : sv_mortalcopy_flags(_sv2, SV_NOSTEAL))) : ({ STRLEN _len; SvPV_nomg(_sv2, _len); _len; })); })
-# define sv_len_utf8(sv) ({ SV *_sv1 = (sv); SvGETMAGIC(_sv1); sv_len_utf8_nomg(_sv1); })
-# else
-# define sv_len_utf8_nomg(sv) (PL_Sv = (sv), (SvUTF8(PL_Sv) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(PL_Sv) ? PL_Sv : sv_mortalcopy_flags(PL_Sv, SV_NOSTEAL))) : (SvPV_nomg(PL_Sv, PL_na), PL_na)))
-# define sv_len_utf8(sv) (PL_Sv = (sv), SvGETMAGIC(PL_Sv), sv_len_utf8_nomg(PL_Sv))
+# define sv_len_utf8_nomg(sv) \
+ ({ \
+ SV *sv2 = (sv); \
+ STRLEN len; \
+ if (SvUTF8(sv2)) { \
+ if (SvGMAGICAL(sv2)) \
+ len = Perl_sv_len_utf8(aTHX_ \
+ sv_mortalcopy_flags(sv2, \
+ SV_NOSTEAL));\
+ else \
+ len = Perl_sv_len_utf8(aTHX_ sv2); \
+ } \
+ else SvPV_nomg(sv2, len); \
+ len; \
+ })
+# define sv_len_utf8(sv) ({ SV *_sv1 = (sv); \
+ SvGETMAGIC(_sv1); \
+ sv_len_utf8_nomg(_sv1); \
+ })
+# else /* Below is no brace groups */
+ PERL_STATIC_INLINE STRLEN D_PPP_sv_len_utf8_nomg(SV * sv)
+ {
+ dTHX;
+ STRLEN len;
+ if (SvUTF8(sv)) {
+ if (SvGMAGICAL(sv))
+ len = Perl_sv_len_utf8(aTHX_
+ sv_mortalcopy_flags(sv,
+ SV_NOSTEAL));
+ else
+ len = Perl_sv_len_utf8(aTHX_ sv);
+ }
+ else SvPV_nomg(sv, len);
+ return len;
+ }
+# define sv_len_utf8_nomg(sv) D_PPP_sv_len_utf8_nomg(sv)
+
+ PERL_STATIC_INLINE STRLEN D_PPP_sv_len_utf8(SV * sv)
+ {
+ dTHX;
+ SvGETMAGIC(sv);
+ return sv_len_utf8_nomg(sv);
+ }
+# define sv_len_utf8(sv) D_PPP_sv_len_utf8(sv)
# endif
-# endif
-# if defined(PERL_USE_GCC_BRACE_GROUPS)
-#ifndef sv_len_utf8_nomg
-# define sv_len_utf8_nomg(sv) ({ SV *_sv = (sv); sv_len_utf8(!SvGMAGICAL(_sv) ? _sv : sv_mortalcopy_flags(_sv, SV_NOSTEAL)); })
-#endif
-
-# else
-#ifndef sv_len_utf8_nomg
-# define sv_len_utf8_nomg(sv) ((PL_Sv = (sv)), sv_len_utf8(!SvGMAGICAL(PL_Sv) ? PL_Sv : sv_mortalcopy_flags(PL_Sv, SV_NOSTEAL)))
-#endif
-
-# endif
+# endif /* End of < 5.17.5 */
#endif
#ifndef PERL_PV_ESCAPE_QUOTE
# define PERL_PV_ESCAPE_QUOTE 0x0001
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm
index 1879bf9d6e..f539650efb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm
@@ -3,14 +3,13 @@
package Devel::Peek;
-$VERSION = '1.30';
+$VERSION = '1.33';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
require Exporter;
require XSLoader;
-@ISA = qw(Exporter);
@EXPORT = qw(Dump mstat DeadCode DumpArray DumpWithOP DumpProg
fill_mstats mstats_fillhash mstats2hash runops_debug debug_flags);
@EXPORT_OK = qw(SvREFCNT CvGV);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm
index 97f55d048a..b62ef64d85 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm
@@ -3,7 +3,7 @@ package Digest;
use strict;
use warnings;
-our $VERSION = "1.19";
+our $VERSION = "1.20";
our %MMAP = (
"SHA-1" => [ [ "Digest::SHA", 1 ], "Digest::SHA1", [ "Digest::SHA2", 1 ] ],
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm
index 81e5142e4d..65a86f4e35 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm
@@ -3,7 +3,7 @@ package Digest::MD5;
use strict;
use warnings;
-our $VERSION = '2.58';
+our $VERSION = '2.58_01';
require Exporter;
*import = \&Exporter::import;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm
index dccc0e7aeb..37a31e969a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm
@@ -6,9 +6,10 @@ use strict;
use warnings;
use vars qw($VERSION @ISA @EXPORT_OK $errmsg);
use Fcntl qw(O_RDONLY O_RDWR);
+use Cwd qw(getcwd);
use integer;
-$VERSION = '6.02';
+$VERSION = '6.04';
require Exporter;
@ISA = qw(Exporter);
@@ -120,9 +121,18 @@ sub addfile {
## by attempting to open with mode O_RDWR
local *FH;
- $file eq '-' and open(FH, '< -')
- or sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY)
+ if ($file eq '-') {
+ if (-d STDIN) {
+ sysopen(FH, getcwd(), O_RDWR)
+ or _bail('Open failed');
+ }
+ open(FH, '< -')
+ or _bail('Open failed');
+ }
+ else {
+ sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY)
or _bail('Open failed');
+ }
if ($BITS) {
my ($n, $buf) = (0, "");
@@ -810,7 +820,7 @@ darkness and moored it in so perfect a calm and in so brilliant a light"
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2003-2018 Mark Shelor
+Copyright (C) 2003-2022 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/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm
index 0f3afcbda9..539559b261 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm
@@ -3,7 +3,7 @@ package Digest::base;
use strict;
use warnings;
-our $VERSION = "1.19";
+our $VERSION = "1.20";
# subclass is supposed to implement at least these
sub new;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm
index 7d46938c0c..088fabf4b9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm
@@ -7,7 +7,7 @@ use Exporter ();
use Carp qw(croak);
use Digest ();
-our $VERSION = "1.19";
+our $VERSION = "1.20";
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(digest_file_ctx digest_file digest_file_hex digest_file_base64);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm
index a4d71b4a37..62369daf7c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm
@@ -1,6 +1,8 @@
# Generated from DynaLoader_pm.PL, this file is unique for every OS
+use strict;
+
package DynaLoader;
# And Gandalf said: 'Many folk like to know beforehand what is to
@@ -16,9 +18,17 @@ package DynaLoader;
# Tim.Bunce@ig.co.uk, August 1994
BEGIN {
- $VERSION = '1.50';
+ our $VERSION = '1.54';
}
+# Note: in almost any other piece of code "our" would have been a better
+# option than "use vars", but DynaLoader's bootstrap files need the
+# side effect of the variable being declared in any scope whose current
+# package is DynaLoader, not just the current lexical one.
+use vars qw(@dl_library_path @dl_resolve_using @dl_require_symbols
+ $dl_debug @dl_librefs @dl_modules @dl_shared_objects
+ $dl_dlext $dl_so $dlsrc @args $module @dirs $file $bscode);
+
use Config;
# enable debug/trace messages from DynaLoader perl code
@@ -40,8 +50,11 @@ sub dl_load_flags { 0x00 }
($dl_dlext, $dl_so, $dlsrc) = @Config::Config{qw(dlext so dlsrc)};
-
-$do_expand = 0;
+# Some systems need special handling to expand file specifications
+# (VMS support by Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>)
+# See dl_expandspec() for more details. Should be harmless but
+# inefficient to define on systems that don't need it.
+my $do_expand = 0;
@dl_require_symbols = (); # names of symbols we need
@dl_library_path = (); # path to look for files
@@ -96,6 +109,8 @@ sub croak { require Carp; Carp::croak(@_) }
sub bootstrap_inherit {
my $module = $_[0];
+
+ no strict qw/refs vars/;
local *isa = *{"$module\::ISA"};
local @isa = (@isa, 'DynaLoader');
# Cannot goto due to delocalization. Will report errors on a wrong line?
@@ -131,8 +146,6 @@ sub bootstrap {
# It may also edit @modparts if required.
$modfname = &mod2fname(\@modparts) if defined &mod2fname;
-
-
my $modpname = join('/',@modparts);
print STDERR "DynaLoader::bootstrap for $module ",
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm
index d3eb3c1b11..8a2727fc44 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm
@@ -1,5 +1,5 @@
#
-# $Id: Encode.pm,v 3.08 2020/12/02 01:27:44 dankogai Exp $
+# $Id: Encode.pm,v 3.19 2022/08/04 04:42:30 dankogai Exp $
#
package Encode;
use strict;
@@ -7,7 +7,7 @@ use warnings;
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
our $VERSION;
BEGIN {
- $VERSION = sprintf "%d.%02d", q$Revision: 3.08 $ =~ /(\d+)/g;
+ $VERSION = sprintf "%d.%02d", q$Revision: 3.19 $ =~ /(\d+)/g;
require XSLoader;
XSLoader::load( __PACKAGE__, $VERSION );
}
@@ -65,8 +65,8 @@ require Encode::Config;
eval {
local $SIG{__DIE__};
local $SIG{__WARN__};
- local @INC = @INC || ();
- pop @INC if $INC[-1] eq '.';
+ local @INC = @INC;
+ pop @INC if @INC && $INC[-1] eq '.';
require Encode::ConfigLocal;
};
@@ -202,18 +202,6 @@ if ($ON_EBCDIC) {
$_[1] = '' if $chk;
return $res;
}
-} else {
- package Encode::Internal;
- use parent 'Encode::Encoding';
- my $obj = bless { Name => "Internal" } => "Encode::Internal";
- Encode::define_encoding($obj, 'Unicode');
- sub decode {
- my ( undef, $str, $chk ) = @_;
- utf8::upgrade($str);
- $_[1] = '' if $chk;
- return $str;
- }
- *encode = \&decode;
}
{
@@ -499,19 +487,25 @@ followed by C<encode> as follows:
$octets = encode_utf8($string);
+B<WARNING>: L<This function can produce invalid UTF-8!|/UTF-8 vs. utf8 vs. UTF8>
+Do not use it for data exchange.
+Unless you want Perl's older "lax" mode, prefer
+C<$octets = encode("UTF-8", $string)>.
+
Equivalent to C<$octets = encode("utf8", $string)>. The characters in
$string are encoded in Perl's internal format, and the result is returned
as a sequence of octets. Because all possible characters in Perl have a
(loose, not strict) utf8 representation, this function cannot fail.
-B<WARNING>: do not use this function for data exchange as it can produce
-not strict utf8 $octets! For strictly valid UTF-8 output use
-C<$octets = encode("UTF-8", $string)>.
-
=head3 decode_utf8
$string = decode_utf8($octets [, CHECK]);
+B<WARNING>: L<This function accepts invalid UTF-8!|/UTF-8 vs. utf8 vs. UTF8>
+Do not use it for data exchange.
+Unless you want Perl's older "lax" mode, prefer
+C<$string = decode("UTF-8", $octets [, CHECK])>.
+
Equivalent to C<$string = decode("utf8", $octets [, CHECK])>.
The sequence of octets represented by $octets is decoded
from (loose, not strict) utf8 into a sequence of logical characters.
@@ -519,10 +513,6 @@ Because not all sequences of octets are valid not strict utf8,
it is quite possible for this function to fail.
For CHECK, see L</"Handling Malformed Data">.
-B<WARNING>: do not use this function for data exchange as it can produce
-$string with not strict utf8 representation! For strictly valid UTF-8
-$string representation use C<$string = decode("UTF-8", $octets [, CHECK])>.
-
B<CAVEAT>: the input I<$octets> might be modified in-place depending on
what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
left unchanged.
@@ -927,6 +917,20 @@ important distinction between C<"UTF-8"> and C<"utf8">.
encode("utf8", "\x{FFFF_FFFF}", 1); # okay
encode("UTF-8", "\x{FFFF_FFFF}", 1); # croaks
+This distinction is also important for decoding. In the following,
+C<$s> stores character U+200000, which exceeds UTF-8's allowed range.
+C<$s> thus stores an invalid Unicode code point:
+
+ $s = decode("utf8", "\xf8\x88\x80\x80\x80");
+
+C<"UTF-8">, by contrast, will either coerce the input to something valid:
+
+ $s = decode("UTF-8", "\xf8\x88\x80\x80\x80"); # U+FFFD
+
+.. or croak:
+
+ decode("UTF-8", "\xf8\x88\x80\x80\x80", FB_CROAK|LEAVE_SRC);
+
In the C<Encode> module, C<"UTF-8"> is actually a canonical name for
C<"utf-8-strict">. That hyphen between the C<"UTF"> and the C<"8"> is
critical; without it, C<Encode> goes "liberal" and (perhaps overly-)permissive:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm
index dbfa01b618..cca72a3d84 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm
@@ -1,7 +1,7 @@
package Encode::Alias;
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.24 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.25 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use Exporter 'import';
@@ -162,6 +162,10 @@ sub init_aliases {
# Allow variants of iso-8859-1 etc.
define_alias( qr/\biso[-_]?(\d+)[-_](\d+)$/i => '"iso-$1-$2"' );
+ # ISO-8859-8-I => ISO-8859-8
+ # https://en.wikipedia.org/wiki/ISO-8859-8-I
+ define_alias( qr/\biso[-_]8859[-_]8[-_]I$/i => '"iso-8859-8"' );
+
# At least HP-UX has these.
define_alias( qr/\biso8859(\d+)$/i => '"iso-8859-$1"' );
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm
index 644d445285..b149c6dc9c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm
@@ -1,5 +1,5 @@
#
-# $Id: GSM0338.pm,v 2.9 2020/12/02 01:28:17 dankogai Exp dankogai $
+# $Id: GSM0338.pm,v 2.10 2021/05/24 10:56:53 dankogai Exp $
#
package Encode::GSM0338;
@@ -8,7 +8,7 @@ use warnings;
use Carp;
use vars qw($VERSION);
-$VERSION = do { my @r = ( q$Revision: 2.9 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+$VERSION = do { my @r = ( q$Revision: 2.10 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(:fallbacks);
@@ -159,12 +159,12 @@ our %UNI2GSM = (
"\x{20AC}" => "\x1B\x65", # EURO SIGN
);
our %GSM2UNI = reverse %UNI2GSM;
-our $ESC = "\x1b";
+our $ESC = "\x1b";
sub decode ($$;$) {
my ( $obj, $bytes, $chk ) = @_;
return undef unless defined $bytes;
- my $str = substr($bytes, 0, 0); # to propagate taintedness;
+ my $str = substr( $bytes, 0, 0 ); # to propagate taintedness;
while ( length $bytes ) {
my $seq = '';
my $c;
@@ -173,53 +173,57 @@ sub decode ($$;$) {
$seq .= $c;
} while ( length $bytes and $c eq $ESC );
my $u =
- exists $GSM2UNI{$seq}
- ? $GSM2UNI{$seq}
- : ($chk && ref $chk eq 'CODE')
- ? $chk->( unpack 'C*', $seq )
- : "\x{FFFD}";
+ exists $GSM2UNI{$seq} ? $GSM2UNI{$seq}
+ : ( $chk && ref $chk eq 'CODE' ) ? $chk->( unpack 'C*', $seq )
+ : "\x{FFFD}";
if ( not exists $GSM2UNI{$seq} and $chk and not ref $chk ) {
- if ( substr($seq, 0, 1) eq $ESC and ($chk & Encode::STOP_AT_PARTIAL) ) {
+ if ( substr( $seq, 0, 1 ) eq $ESC
+ and ( $chk & Encode::STOP_AT_PARTIAL ) )
+ {
$bytes .= $seq;
last;
}
- croak join( '', map { sprintf "\\x%02X", $_ } unpack 'C*', $seq ) . ' does not map to Unicode' if $chk & Encode::DIE_ON_ERR;
- carp join( '', map { sprintf "\\x%02X", $_ } unpack 'C*', $seq ) . ' does not map to Unicode' if $chk & Encode::WARN_ON_ERR;
- if ($chk & Encode::RETURN_ON_ERR) {
+ croak join( '', map { sprintf "\\x%02X", $_ } unpack 'C*', $seq )
+ . ' does not map to Unicode'
+ if $chk & Encode::DIE_ON_ERR;
+ carp join( '', map { sprintf "\\x%02X", $_ } unpack 'C*', $seq )
+ . ' does not map to Unicode'
+ if $chk & Encode::WARN_ON_ERR;
+ if ( $chk & Encode::RETURN_ON_ERR ) {
$bytes .= $seq;
last;
}
}
$str .= $u;
}
- $_[1] = $bytes if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ $_[1] = $bytes if not ref $chk and $chk and !( $chk & Encode::LEAVE_SRC );
return $str;
}
sub encode($$;$) {
my ( $obj, $str, $chk ) = @_;
return undef unless defined $str;
- my $bytes = substr($str, 0, 0); # to propagate taintedness
+ my $bytes = substr( $str, 0, 0 ); # to propagate taintedness
while ( length $str ) {
my $u = substr( $str, 0, 1, '' );
my $c;
my $seq =
- exists $UNI2GSM{$u}
- ? $UNI2GSM{$u}
- : ($chk && ref $chk eq 'CODE')
- ? $chk->( ord($u) )
- : $UNI2GSM{'?'};
+ exists $UNI2GSM{$u} ? $UNI2GSM{$u}
+ : ( $chk && ref $chk eq 'CODE' ) ? $chk->( ord($u) )
+ : $UNI2GSM{'?'};
if ( not exists $UNI2GSM{$u} and $chk and not ref $chk ) {
- croak sprintf( "\\x{%04x} does not map to %s", ord($u), $obj->name ) if $chk & Encode::DIE_ON_ERR;
- carp sprintf( "\\x{%04x} does not map to %s", ord($u), $obj->name ) if $chk & Encode::WARN_ON_ERR;
- if ($chk & Encode::RETURN_ON_ERR) {
+ croak sprintf( "\\x{%04x} does not map to %s", ord($u), $obj->name )
+ if $chk & Encode::DIE_ON_ERR;
+ carp sprintf( "\\x{%04x} does not map to %s", ord($u), $obj->name )
+ if $chk & Encode::WARN_ON_ERR;
+ if ( $chk & Encode::RETURN_ON_ERR ) {
$str .= $u;
last;
}
}
$bytes .= $seq;
}
- $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ $_[1] = $str if not ref $chk and $chk and !( $chk & Encode::LEAVE_SRC );
return $bytes;
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm
index 4251170c56..09efaaa8c3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm
@@ -7,7 +7,7 @@ BEGIN {
use strict;
use warnings;
use Encode;
-our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use XSLoader;
XSLoader::load( __PACKAGE__, $VERSION );
@@ -50,8 +50,8 @@ supported are as follows.
cp932 /\bwindows-31j$/i Code Page 932
= Shift JIS + MS/IBM vendor mappings
jis0201-raw JIS0201, raw format
- jis0208-raw JIS0201, raw format
- jis0212-raw JIS0201, raw format
+ jis0208-raw JIS0208, raw format
+ jis0212-raw JIS0212, raw format
--------------------------------------------------------------------
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm
index 848de99fa4..4d4574447e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm
@@ -2,7 +2,7 @@ package Encode::MIME::Header;
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.28 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.29 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Carp ();
use Encode ();
@@ -55,7 +55,7 @@ my $re_capture_encoded_word_split = qr/=\?($re_charset)((?:\*$re_language)?)\?($
# in strict mode check also for valid base64 characters and also for valid quoted printable codes
my $re_encoding_strict_b = qr/[Bb]/;
my $re_encoding_strict_q = qr/[Qq]/;
-my $re_encoded_text_strict_b = qr/[0-9A-Za-z\+\/]*={0,2}/;
+my $re_encoded_text_strict_b = qr/(?:[0-9A-Za-z\+\/]{4})*(?:[0-9A-Za-z\+\/]{2}==|[0-9A-Za-z\+\/]{3}=|)/;
my $re_encoded_text_strict_q = qr/(?:[\x21-\x3C\x3E\x40-\x7E]|=[0-9A-Fa-f]{2})*/; # NOTE: first part are printable US-ASCII except ?, =, SPACE and TAB
my $re_encoded_word_strict = qr/=\?$re_charset(?:\*$re_language)?\?(?:$re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
my $re_capture_encoded_word_strict = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
@@ -94,6 +94,10 @@ sub decode($$;$) {
$stop = 1 unless length($line) or length($sep);
+ # in non strict mode append missing '=' padding characters for b words
+ # fixes below concatenation of consecutive encoded mime words
+ 1 while not $STRICT_DECODE and $line =~ s/(=\?$re_charset(?:\*$re_language)?\?[Bb]\?)((?:[^\?]{4})*[^\?]{1,3})(\?=)/$1.$2.('='x(4-length($2)%4)).$3/se;
+
# NOTE: this code partially could break $chk support
# in non strict mode concat consecutive encoded mime words with same charset, language and encoding
# fixes breaking inside multi-byte characters
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm
index 540337e94f..965803772f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm
@@ -3,7 +3,7 @@ package Encode::Unicode;
use strict;
use warnings;
-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.20 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use XSLoader;
XSLoader::load( __PACKAGE__, $VERSION );
@@ -170,7 +170,7 @@ simply treated as a normal character (ZERO WIDTH NO-BREAK SPACE).
When BE or LE is omitted during decode(), it checks if BOM is at the
beginning of the string; if one is found, the endianness is set to
-what the BOM says.
+what the BOM says.
=item *
@@ -258,15 +258,15 @@ Consider that "division by zero" of Encode :)
=head1 SEE ALSO
-L<Encode>, L<Encode::Unicode::UTF7>, L<http://www.unicode.org/glossary/>,
-L<http://www.unicode.org/unicode/faq/utf_bom.html>,
+L<Encode>, L<Encode::Unicode::UTF7>, L<https://www.unicode.org/glossary/>,
+L<https://www.unicode.org/faq/utf_bom.html>,
RFC 2781 L<http://www.ietf.org/rfc/rfc2781.txt>,
-The whole Unicode standard L<http://www.unicode.org/unicode/uni2book/u2.html>
+The whole Unicode standard L<https://www.unicode.org/standard/standard.html>
-Ch. 15, pp. 403 of C<Programming Perl (3rd Edition)>
-by Larry Wall, Tom Christiansen, Jon Orwant;
-O'Reilly & Associates; ISBN 0-596-00027-8
+Ch. 6 pp. 275 of C<Programming Perl (3rd Edition)>
+by Tom Christiansen, brian d foy & Larry Wall;
+O'Reilly & Associates; ISBN 978-0-596-00492-7
=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm
index eaf30f15a3..991afddc02 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm
@@ -1,6 +1,6 @@
package Env;
-our $VERSION = '1.05';
+our $VERSION = '1.06';
=head1 NAME
@@ -75,7 +75,7 @@ Gregor N. Purdy E<lt>F<gregor@focusresearch.com>E<gt>
=cut
sub import {
- my ($callpack) = caller(0);
+ my $callpack = caller(0);
my $pack = shift;
my @vars = grep /^[\$\@]?[A-Za-z_]\w*$/, (@_ ? @_ : keys(%ENV));
return unless @vars;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm
index e044eb982a..d19804e094 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm
@@ -5,17 +5,16 @@
#
package Errno;
-require Exporter;
+use Exporter 'import';
use strict;
use Config;
"$Config{'archname'}-$Config{'osvers'}" eq
-"MSWin32-x64-multi-thread-10.0.19042.508" or
- die "Errno architecture (MSWin32-x64-multi-thread-10.0.19042.508) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
+"MSWin32-x64-multi-thread-10.0.22631.3085" or
+ die "Errno architecture (MSWin32-x64-multi-thread-10.0.22631.3085) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
-our $VERSION = "1.33";
+our $VERSION = "1.37";
$VERSION = eval $VERSION;
-our @ISA = 'Exporter';
my %err;
@@ -25,6 +24,7 @@ BEGIN {
ENUM_CURRENT_SETTINGS => -1,
EXCEPTION_CONTINUE_EXECUTION => -1,
EC_ENABLEALL => 0,
+ EFS_SUBVER_UNKNOWN => 0,
ELF_CULTURE_LATIN => 0,
ELF_VERSION => 0,
EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X => 0,
@@ -43,10 +43,12 @@ BEGIN {
EXCEPTION_CONTINUE_SEARCH => 0,
EXCEPTION_READ_FAULT => 0,
EXIT_SUCCESS => 0,
- ExceptionContinueExecution => 0,
EC_LEFTMARGIN => 1,
EDD_GET_DEVICE_INTERFACE_NAME => 1,
EEInfoPreviousRecordsMissing => 1,
+ EFS_EFS_SUBVER_EFS_CERT => 1,
+ EFS_METADATA_ADD_USER => 1,
+ EFS_TRACKED_OFFSET_HEADER_FLAG => 1,
EFS_USE_RECOVERY_KEYS => 1,
EIMES_GETCOMPSTRATONCE => 1,
ELEMENT_STATUS_FULL => 1,
@@ -60,6 +62,9 @@ BEGIN {
EMSIS_COMPOSITIONSTRING => 1,
ENABLE_PROCESSED_INPUT => 1,
ENABLE_PROCESSED_OUTPUT => 1,
+ ENCLAVE_TYPE_SGX => 1,
+ ENCLAVE_VBS_FLAG_DEBUG => 1,
+ ENCRYPTED_DATA_INFO_SPARSE_FILE => 1,
ENCRYPTION_FORMAT_DEFAULT => 1,
ENDSESSION_CLOSEAPP => 1,
ENLISTMENT_MAXIMUM_OPTION => 1,
@@ -85,20 +90,21 @@ BEGIN {
EXCEPTION_NONCONTINUABLE => 1,
EXCEPTION_WRITE_FAULT => 1,
EXIT_FAILURE => 1,
- ExceptionContinueSearch => 1,
EC_QUERYWAITING => 2,
EC_RIGHTMARGIN => 2,
EDS_RAWMODE => 2,
EEInfoNextRecordsMissing => 2,
+ EFS_METADATA_REMOVE_USER => 2,
+ EFS_PFILE_SUBVER_RMS => 2,
EIMES_CANCELCOMPSTRINFOCUS => 2,
ELEMENT_STATUS_IMPEXP => 2,
EMARCH_ENC_I17_IMM41c_INST_WORD_X => 2,
EMR_POLYBEZIER => 2,
ENABLE_LINE_INPUT => 2,
ENABLE_WRAP_AT_EOL_OUTPUT => 2,
+ ENCLAVE_TYPE_SGX2 => 2,
ENLISTMENT_SET_INFORMATION => 2,
ENOENT => 2,
- ENOFILE => 2,
ERROR_FILE_NOT_FOUND => 2,
ERROR_LABEL_QUESTIONABLE => 2,
ESB_DISABLE_DOWN => 2,
@@ -117,7 +123,7 @@ BEGIN {
EWX_REBOOT => 2,
EXCEPTION_UNWINDING => 2,
EXTEND_IEPORT => 2,
- ExceptionNestedException => 2,
+ EFS_PFILE_SUBVER_APPX => 3,
EMARCH_ENC_I17_IC_INST_WORD_X => 3,
EMARCH_ENC_I17_IMM5C_INST_WORD_X => 3,
EMARCH_ENC_I17_IMM7B_INST_WORD_X => 3,
@@ -128,8 +134,9 @@ BEGIN {
ESB_DISABLE_BOTH => 3,
ESRCH => 3,
EVENT_SYSTEM_FOREGROUND => 3,
- ExceptionCollidedUnwind => 3,
+ EDS_ROTATEDMODE => 4,
EEInfoUseFileTime => 4,
+ EFS_METADATA_REPLACE_USER => 4,
EIMES_COMPLETECOMPSTRKILLFOCUS => 4,
EINTR => 4,
ELEMENT_STATUS_EXCEPT => 4,
@@ -137,6 +144,7 @@ BEGIN {
EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X => 4,
EMR_POLYLINE => 4,
ENABLE_ECHO_INPUT => 4,
+ ENABLE_VIRTUAL_TERMINAL_PROCESSING => 4,
ENLISTMENT_RECOVER => 4,
ERROR_SLOT_NOT_PRESENT => 4,
ERROR_TOO_MANY_OPEN_FILES => 4,
@@ -152,8 +160,8 @@ BEGIN {
EXCEPTION_EXIT_UNWIND => 4,
EXIT_THREAD_DEBUG_EVENT => 4,
EXPORT_PRIVATE_KEYS => 4,
- ExceptionExecuteHandler => 4,
EDGE_RAISED => 5,
+ EFS_COMPATIBILITY_VERSION_NCRYPT_PROTECTOR => 5,
EIO => 5,
EMARCH_ENC_I17_IMM5C_SIZE_X => 5,
EMR_POLYBEZIERTO => 5,
@@ -161,6 +169,7 @@ BEGIN {
EVENT_SYSTEM_MENUEND => 5,
EXIT_PROCESS_DEBUG_EVENT => 5,
EDGE_ETCHED => 6,
+ EFS_COMPATIBILITY_VERSION_PFILE_PROTECTOR => 6,
EMR_POLYLINETO => 6,
ENXIO => 6,
ERROR_INVALID_HANDLE => 6,
@@ -173,6 +182,7 @@ BEGIN {
EVENT_SYSTEM_MENUPOPUPEND => 7,
EC_DISABLE => 8,
EFSRPC_SECURE_ONLY => 8,
+ EFS_METADATA_GENERAL_OP => 8,
ELEMENT_STATUS_ACCESS => 8,
EMARCH_ENC_I17_IMM41b_SIZE_X => 8,
EMR_POLYPOLYGON => 8,
@@ -180,6 +190,7 @@ BEGIN {
ENLISTMENT_SUBORDINATE_RIGHTS => 8,
ENOEXEC => 8,
ERROR_DRIVE_NOT_INSTALLED => 8,
+ ERROR_HISTORY_DIRECTORY_ENTRY_DEFAULT_COUNT => 8,
ERROR_NOT_ENOUGH_MEMORY => 8,
ES_UPPERCASE => 8,
EVENTLOG_AUDIT_SUCCESS => 8,
@@ -229,10 +240,14 @@ BEGIN {
EVENT_SYSTEM_DRAGDROPEND => 15,
EXCEPTION_MAXIMUM_PARAMETERS => 15,
EBUSY => 16,
+ EFS_DROP_ALTERNATE_STREAMS => 16,
ELEMENT_STATUS_EXENAB => 16,
EMARCH_ENC_I17_IMM5C_VAL_POS_X => 16,
EMR_SETMAPPERFLAGS => 16,
+ ENABLE_LVB_GRID_WORLDWIDE => 16,
ENABLE_MOUSE_INPUT => 16,
+ ENCLAVE_SHORT_ID_LENGTH => 16,
+ ENCLAVE_TYPE_VBS => 16,
ENLISTMENT_SUPERIOR_RIGHTS => 16,
ERROR_CURRENT_DIRECTORY => 16,
ERROR_TRAY_MALFUNCTION => 16,
@@ -246,6 +261,7 @@ BEGIN {
EXCEPTION_NESTED_CALL => 16,
EEXIST => 17,
EMR_SETMAPMODE => 17,
+ ENCLAVE_TYPE_VBS_BASIC => 17,
ERROR_INIT_STATUS_NEEDED => 17,
ERROR_NOT_SAME_DEVICE => 17,
EVENT_SYSTEM_DIALOGEND => 17,
@@ -308,9 +324,11 @@ BEGIN {
EMARCH_ENC_I17_IMM41b_VAL_POS_X => 32,
EMR_SCALEWINDOWEXTEX => 32,
ENABLE_INSERT_MODE => 32,
+ ENCLAVE_LONG_ID_LENGTH => 32,
EPIPE => 32,
ERROR_SHARING_VIOLATION => 32,
ES_PASSWORD => 32,
+ EVENT_SYSTEM_DESKTOPSWITCH => 32,
EV_RLSD => 32,
EWX_QUICKRESOLVE => 32,
EXCEPTION_TARGET_UNWIND => 32,
@@ -327,18 +345,23 @@ BEGIN {
EDEADLOCK => 36,
EMR_MODIFYWORLDTRANSFORM => 36,
ERROR_SHARING_BUFFER_EXCEEDED => 36,
+ EVENT_SYSTEM_SWITCHER_APPGRABBED => 36,
EMR_SELECTOBJECT => 37,
+ EVENT_SYSTEM_SWITCHER_APPOVERTARGET => 37,
EMR_CREATEPEN => 38,
ENAMETOOLONG => 38,
ERROR_HANDLE_EOF => 38,
+ EVENT_SYSTEM_SWITCHER_APPDROPPED => 38,
EMR_CREATEBRUSHINDIRECT => 39,
ENOLCK => 39,
ERROR_HANDLE_DISK_FULL => 39,
+ EVENT_SYSTEM_SWITCHER_CANCELLED => 39,
EMARCH_ENC_I17_IMM41c_VAL_POS_X => 40,
EMR_DELETEOBJECT => 40,
ENOSYS => 40,
EMR_ANGLEARC => 41,
ENOTEMPTY => 41,
+ EVENT_SYSTEM_IME_KEY_NOTIFICATION => 41,
EILSEQ => 42,
EMR_ELLIPSE => 42,
EMR_RECTANGLE => 43,
@@ -385,6 +408,7 @@ BEGIN {
ES_AUTOVSCROLL => 64,
ES_AWAYMODE_REQUIRED => 64,
EV_BREAK => 64,
+ EWX_RESTARTAPPS => 64,
EXCEPTION_COLLIDED_UNWIND => 64,
EMR_FLATTENPATH => 65,
ERROR_NETWORK_ACCESS_DENIED => 65,
@@ -524,10 +548,12 @@ BEGIN {
ES_AUTOHSCROLL => 128,
ETO_RTLREADING => 128,
EV_ERR => 128,
+ EXCEPTION_SOFTWARE_ORIGINATE => 128,
ENOTSUP => 129,
ERROR_CHILD_NOT_COMPLETE => 129,
EOPNOTSUPP => 130,
ERROR_DIRECT_ACCESS_HANDLE => 130,
+ EOTHER => 131,
ERROR_NEGATIVE_SEEK => 131,
EOVERFLOW => 132,
ERROR_SEEK_ON_DEVICE => 132,
@@ -572,6 +598,7 @@ BEGIN {
ERROR_MAX_THRDS_REACHED => 164,
ERROR_LOCK_FAILED => 167,
ERROR_BUSY => 170,
+ ERROR_DEVICE_SUPPORT_IN_PROGRESS => 171,
ERROR_CANCEL_VIOLATION => 173,
ERROR_ATOMIC_LOCKS_NOT_SUPPORTED => 174,
EM_GETSEL => 176,
@@ -648,6 +675,7 @@ BEGIN {
ERROR_EXE_MACHINE_TYPE_MISMATCH => 216,
EM_GETIMESTATUS => 217,
ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY => 217,
+ EM_ENABLEFEATURE => 218,
ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY => 218,
ENABLE_DISABLE_AUTO_OFFLINE => 219,
ERROR_FILE_CHECKED_OUT => 220,
@@ -655,21 +683,26 @@ BEGIN {
ERROR_BAD_FILE_TYPE => 222,
ERROR_FILE_TOO_LARGE => 223,
ERROR_FORMS_AUTH_REQUIRED => 224,
+ ERROR_VIRUS_INFECTED => 225,
+ ERROR_VIRUS_DELETED => 226,
ERROR_PIPE_LOCAL => 229,
ERROR_BAD_PIPE => 230,
ERROR_PIPE_BUSY => 231,
ERROR_NO_DATA => 232,
ERROR_PIPE_NOT_CONNECTED => 233,
ERROR_MORE_DATA => 234,
+ ERROR_NO_WORK_DONE => 235,
EASTEUROPE_CHARSET => 238,
ERROR_VC_DISCONNECTED => 240,
ERROR_INVALID_EA_NAME => 254,
ERROR_EA_LIST_INCONSISTENT => 255,
+ EVENT_SYSTEM_END => 255,
ENABLE_AUTO_POSITION => 256,
ENHANCED_KEY => 256,
EN_SETFOCUS => 256,
ES_NOHIDESEL => 256,
EV_RING => 256,
+ EVENT_OEM_DEFINED_START => 257,
ERROR_NO_MORE_ITEMS => 259,
ERROR_CANNOT_COPY => 266,
ERROR_DIRECTORY => 267,
@@ -685,16 +718,386 @@ BEGIN {
ERROR_INVALID_OPLOCK_PROTOCOL => 301,
ERROR_DISK_TOO_FRAGMENTED => 302,
ERROR_DELETE_PENDING => 303,
+ ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING => 304,
+ ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME => 305,
+ ERROR_SECURITY_STREAM_IS_INCONSISTENT => 306,
+ ERROR_INVALID_LOCK_RANGE => 307,
+ ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT => 308,
+ ERROR_NOTIFICATION_GUID_ALREADY_DEFINED => 309,
+ ERROR_INVALID_EXCEPTION_HANDLER => 310,
+ ERROR_DUPLICATE_PRIVILEGES => 311,
+ ERROR_NO_RANGES_PROCESSED => 312,
+ ERROR_NOT_ALLOWED_ON_SYSTEM_FILE => 313,
+ ERROR_DISK_RESOURCES_EXHAUSTED => 314,
ERROR_INVALID_TOKEN => 315,
+ ERROR_DEVICE_FEATURE_NOT_SUPPORTED => 316,
ERROR_MR_MID_NOT_FOUND => 317,
ERROR_SCOPE_NOT_FOUND => 318,
+ ERROR_UNDEFINED_SCOPE => 319,
+ ERROR_INVALID_CAP => 320,
+ ERROR_DEVICE_UNREACHABLE => 321,
+ ERROR_DEVICE_NO_RESOURCES => 322,
+ ERROR_DATA_CHECKSUM_ERROR => 323,
+ ERROR_INTERMIXED_KERNEL_EA_OPERATION => 324,
+ ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED => 326,
+ ERROR_OFFSET_ALIGNMENT_VIOLATION => 327,
+ ERROR_INVALID_FIELD_IN_PARAMETER_LIST => 328,
+ ERROR_OPERATION_IN_PROGRESS => 329,
+ ERROR_BAD_DEVICE_PATH => 330,
+ ERROR_TOO_MANY_DESCRIPTORS => 331,
+ ERROR_SCRUB_DATA_DISABLED => 332,
+ ERROR_NOT_REDUNDANT_STORAGE => 333,
+ ERROR_RESIDENT_FILE_NOT_SUPPORTED => 334,
+ ERROR_COMPRESSED_FILE_NOT_SUPPORTED => 335,
+ ERROR_DIRECTORY_NOT_SUPPORTED => 336,
+ ERROR_NOT_READ_FROM_COPY => 337,
+ ERROR_FT_WRITE_FAILURE => 338,
+ ERROR_FT_DI_SCAN_REQUIRED => 339,
+ ERROR_INVALID_KERNEL_INFO_VERSION => 340,
+ ERROR_INVALID_PEP_INFO_VERSION => 341,
+ ERROR_OBJECT_NOT_EXTERNALLY_BACKED => 342,
+ ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN => 343,
+ ERROR_COMPRESSION_NOT_BENEFICIAL => 344,
+ ERROR_STORAGE_TOPOLOGY_ID_MISMATCH => 345,
+ ERROR_BLOCKED_BY_PARENTAL_CONTROLS => 346,
+ ERROR_BLOCK_TOO_MANY_REFERENCES => 347,
+ ERROR_MARKED_TO_DISALLOW_WRITES => 348,
+ ERROR_ENCLAVE_FAILURE => 349,
+ ERROR_FAIL_NOACTION_REBOOT => 350,
+ ERROR_FAIL_SHUTDOWN => 351,
+ ERROR_FAIL_RESTART => 352,
+ ERROR_MAX_SESSIONS_REACHED => 353,
+ ERROR_NETWORK_ACCESS_DENIED_EDP => 354,
+ ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL => 355,
+ ERROR_EDP_POLICY_DENIES_OPERATION => 356,
+ ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED => 357,
+ ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT => 358,
+ ERROR_DEVICE_IN_MAINTENANCE => 359,
+ ERROR_NOT_SUPPORTED_ON_DAX => 360,
+ ERROR_DAX_MAPPING_EXISTS => 361,
+ ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING => 362,
+ ERROR_CLOUD_FILE_METADATA_CORRUPT => 363,
+ ERROR_CLOUD_FILE_METADATA_TOO_LARGE => 364,
+ ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE => 365,
+ ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH => 366,
+ ERROR_CHILD_PROCESS_BLOCKED => 367,
+ ERROR_STORAGE_LOST_DATA_PERSISTENCE => 368,
+ ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE => 369,
+ ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT => 370,
+ ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY => 371,
+ ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN => 372,
+ ERROR_GDI_HANDLE_LEAK => 373,
+ ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS => 374,
+ ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED => 375,
+ ERROR_NOT_A_CLOUD_FILE => 376,
+ ERROR_CLOUD_FILE_NOT_IN_SYNC => 377,
+ ERROR_CLOUD_FILE_ALREADY_CONNECTED => 378,
+ ERROR_CLOUD_FILE_NOT_SUPPORTED => 379,
+ ERROR_CLOUD_FILE_INVALID_REQUEST => 380,
+ ERROR_CLOUD_FILE_READ_ONLY_VOLUME => 381,
+ ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY => 382,
+ ERROR_CLOUD_FILE_VALIDATION_FAILED => 383,
+ ERROR_SMB1_NOT_AVAILABLE => 384,
+ ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION => 385,
+ ERROR_CLOUD_FILE_AUTHENTICATION_FAILED => 386,
+ ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES => 387,
+ ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE => 388,
+ ERROR_CLOUD_FILE_UNSUCCESSFUL => 389,
+ ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT => 390,
+ ERROR_CLOUD_FILE_IN_USE => 391,
+ ERROR_CLOUD_FILE_PINNED => 392,
+ ERROR_CLOUD_FILE_REQUEST_ABORTED => 393,
+ ERROR_CLOUD_FILE_PROPERTY_CORRUPT => 394,
+ ERROR_CLOUD_FILE_ACCESS_DENIED => 395,
+ ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS => 396,
+ ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT => 397,
+ ERROR_CLOUD_FILE_REQUEST_CANCELED => 398,
+ ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED => 399,
+ ERROR_THREAD_MODE_ALREADY_BACKGROUND => 400,
+ ERROR_THREAD_MODE_NOT_BACKGROUND => 401,
+ ERROR_PROCESS_MODE_ALREADY_BACKGROUND => 402,
+ ERROR_PROCESS_MODE_NOT_BACKGROUND => 403,
+ ERROR_CLOUD_FILE_PROVIDER_TERMINATED => 404,
+ ERROR_NOT_A_CLOUD_SYNC_ROOT => 405,
+ ERROR_FILE_PROTECTED_UNDER_DPL => 406,
+ ERROR_VOLUME_NOT_CLUSTER_ALIGNED => 407,
+ ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND => 408,
+ ERROR_APPX_FILE_NOT_ENCRYPTED => 409,
+ ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED => 410,
+ ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET => 411,
+ ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE => 412,
+ ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER => 413,
+ ERROR_LINUX_SUBSYSTEM_NOT_PRESENT => 414,
+ ERROR_FT_READ_FAILURE => 415,
+ ERROR_STORAGE_RESERVE_ID_INVALID => 416,
+ ERROR_STORAGE_RESERVE_DOES_NOT_EXIST => 417,
+ ERROR_STORAGE_RESERVE_ALREADY_EXISTS => 418,
+ ERROR_STORAGE_RESERVE_NOT_EMPTY => 419,
+ ERROR_NOT_A_DAX_VOLUME => 420,
+ ERROR_NOT_DAX_MAPPABLE => 421,
+ ERROR_TIME_SENSITIVE_THREAD => 422,
+ ERROR_DPL_NOT_SUPPORTED_FOR_USER => 423,
+ ERROR_CASE_DIFFERING_NAMES_IN_DIR => 424,
+ ERROR_FILE_NOT_SUPPORTED => 425,
+ ERROR_CLOUD_FILE_REQUEST_TIMEOUT => 426,
+ ERROR_NO_TASK_QUEUE => 427,
+ ERROR_SRC_SRV_DLL_LOAD_FAILED => 428,
+ ERROR_NOT_SUPPORTED_WITH_BTT => 429,
+ ERROR_ENCRYPTION_DISABLED => 430,
+ ERROR_ENCRYPTING_METADATA_DISALLOWED => 431,
+ ERROR_CANT_CLEAR_ENCRYPTION_FLAG => 432,
+ ERROR_NO_SUCH_DEVICE => 433,
+ ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED => 434,
+ ERROR_FILE_SNAP_IN_PROGRESS => 435,
+ ERROR_FILE_SNAP_USER_SECTION_NOT_SUPPORTED => 436,
+ ERROR_FILE_SNAP_MODIFY_NOT_SUPPORTED => 437,
+ ERROR_FILE_SNAP_IO_NOT_COORDINATED => 438,
+ ERROR_FILE_SNAP_UNEXPECTED_ERROR => 439,
+ ERROR_FILE_SNAP_INVALID_PARAMETER => 440,
+ ERROR_UNSATISFIED_DEPENDENCIES => 441,
+ ERROR_CASE_SENSITIVE_PATH => 442,
+ ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR => 443,
+ ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED => 444,
+ ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION => 445,
+ ERROR_DLP_POLICY_DENIES_OPERATION => 446,
+ ERROR_SECURITY_DENIES_OPERATION => 447,
+ ERROR_UNTRUSTED_MOUNT_POINT => 448,
+ ERROR_DLP_POLICY_SILENTLY_FAIL => 449,
+ ERROR_CAPAUTHZ_NOT_DEVUNLOCKED => 450,
+ ERROR_CAPAUTHZ_CHANGE_TYPE => 451,
+ ERROR_CAPAUTHZ_NOT_PROVISIONED => 452,
+ ERROR_CAPAUTHZ_NOT_AUTHORIZED => 453,
+ ERROR_CAPAUTHZ_NO_POLICY => 454,
+ ERROR_CAPAUTHZ_DB_CORRUPTED => 455,
+ ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG => 456,
+ ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY => 457,
+ ERROR_CAPAUTHZ_SCCD_PARSE_ERROR => 458,
+ ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED => 459,
+ ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH => 460,
+ ERROR_CIMFS_IMAGE_CORRUPT => 470,
+ ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED => 471,
+ ERROR_STORAGE_STACK_ACCESS_DENIED => 472,
+ ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES => 473,
+ ERROR_INDEX_OUT_OF_BOUNDS => 474,
+ ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT => 475,
+ ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT => 480,
+ ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT => 481,
+ ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT => 482,
+ ERROR_DEVICE_HARDWARE_ERROR => 483,
ERROR_INVALID_ADDRESS => 487,
+ ERROR_HAS_SYSTEM_CRITICAL_FILES => 488,
+ ERROR_ENCRYPTED_FILE_NOT_SUPPORTED => 489,
+ ERROR_SPARSE_FILE_NOT_SUPPORTED => 490,
+ ERROR_PAGEFILE_NOT_SUPPORTED => 491,
+ ERROR_VOLUME_NOT_SUPPORTED => 492,
+ ERROR_NOT_SUPPORTED_WITH_BYPASSIO => 493,
+ ERROR_NO_BYPASSIO_DRIVER_SUPPORT => 494,
+ ERROR_NOT_SUPPORTED_WITH_ENCRYPTION => 495,
+ ERROR_NOT_SUPPORTED_WITH_COMPRESSION => 496,
+ ERROR_NOT_SUPPORTED_WITH_REPLICATION => 497,
+ ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION => 498,
+ ERROR_NOT_SUPPORTED_WITH_AUDITING => 499,
+ ERROR_USER_PROFILE_LOAD => 500,
+ ERROR_SESSION_KEY_TOO_SHORT => 501,
+ ERROR_ACCESS_DENIED_APPDATA => 502,
+ ERROR_NOT_SUPPORTED_WITH_MONITORING => 503,
+ ERROR_NOT_SUPPORTED_WITH_SNAPSHOT => 504,
+ ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION => 505,
+ ERROR_BYPASSIO_FLT_NOT_SUPPORTED => 506,
+ ERROR_DEVICE_RESET_REQUIRED => 507,
+ ERROR_VOLUME_WRITE_ACCESS_DENIED => 508,
+ ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE => 509,
+ ERROR_FS_METADATA_INCONSISTENT => 510,
+ EVENT_OEM_DEFINED_END => 511,
+ ENABLE_VIRTUAL_TERMINAL_INPUT => 512,
EN_KILLFOCUS => 512,
EV_PERR => 512,
EXTTEXTOUT => 512,
ERROR_ARITHMETIC_OVERFLOW => 534,
ERROR_PIPE_CONNECTED => 535,
ERROR_PIPE_LISTENING => 536,
+ ERROR_VERIFIER_STOP => 537,
+ ERROR_ABIOS_ERROR => 538,
+ ERROR_WX86_WARNING => 539,
+ ERROR_WX86_ERROR => 540,
+ ERROR_TIMER_NOT_CANCELED => 541,
+ ERROR_UNWIND => 542,
+ ERROR_BAD_STACK => 543,
+ ERROR_INVALID_UNWIND_TARGET => 544,
+ ERROR_INVALID_PORT_ATTRIBUTES => 545,
+ ERROR_PORT_MESSAGE_TOO_LONG => 546,
+ ERROR_INVALID_QUOTA_LOWER => 547,
+ ERROR_DEVICE_ALREADY_ATTACHED => 548,
+ ERROR_INSTRUCTION_MISALIGNMENT => 549,
+ ERROR_PROFILING_NOT_STARTED => 550,
+ ERROR_PROFILING_NOT_STOPPED => 551,
+ ERROR_COULD_NOT_INTERPRET => 552,
+ ERROR_PROFILING_AT_LIMIT => 553,
+ ERROR_CANT_WAIT => 554,
+ ERROR_CANT_TERMINATE_SELF => 555,
+ ERROR_UNEXPECTED_MM_CREATE_ERR => 556,
+ ERROR_UNEXPECTED_MM_MAP_ERROR => 557,
+ ERROR_UNEXPECTED_MM_EXTEND_ERR => 558,
+ ERROR_BAD_FUNCTION_TABLE => 559,
+ ERROR_NO_GUID_TRANSLATION => 560,
+ ERROR_INVALID_LDT_SIZE => 561,
+ ERROR_INVALID_LDT_OFFSET => 563,
+ ERROR_INVALID_LDT_DESCRIPTOR => 564,
+ ERROR_TOO_MANY_THREADS => 565,
+ ERROR_THREAD_NOT_IN_PROCESS => 566,
+ ERROR_PAGEFILE_QUOTA_EXCEEDED => 567,
+ ERROR_LOGON_SERVER_CONFLICT => 568,
+ ERROR_SYNCHRONIZATION_REQUIRED => 569,
+ ERROR_NET_OPEN_FAILED => 570,
+ ERROR_IO_PRIVILEGE_FAILED => 571,
+ ERROR_CONTROL_C_EXIT => 572,
+ ERROR_MISSING_SYSTEMFILE => 573,
+ ERROR_UNHANDLED_EXCEPTION => 574,
+ ERROR_APP_INIT_FAILURE => 575,
+ ERROR_PAGEFILE_CREATE_FAILED => 576,
+ ERROR_INVALID_IMAGE_HASH => 577,
+ ERROR_NO_PAGEFILE => 578,
+ ERROR_ILLEGAL_FLOAT_CONTEXT => 579,
+ ERROR_NO_EVENT_PAIR => 580,
+ ERROR_DOMAIN_CTRLR_CONFIG_ERROR => 581,
+ ERROR_ILLEGAL_CHARACTER => 582,
+ ERROR_UNDEFINED_CHARACTER => 583,
+ ERROR_FLOPPY_VOLUME => 584,
+ ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT => 585,
+ ERROR_BACKUP_CONTROLLER => 586,
+ ERROR_MUTANT_LIMIT_EXCEEDED => 587,
+ ERROR_FS_DRIVER_REQUIRED => 588,
+ ERROR_CANNOT_LOAD_REGISTRY_FILE => 589,
+ ERROR_DEBUG_ATTACH_FAILED => 590,
+ ERROR_SYSTEM_PROCESS_TERMINATED => 591,
+ ERROR_DATA_NOT_ACCEPTED => 592,
+ ERROR_VDM_HARD_ERROR => 593,
+ ERROR_DRIVER_CANCEL_TIMEOUT => 594,
+ ERROR_REPLY_MESSAGE_MISMATCH => 595,
+ ERROR_LOST_WRITEBEHIND_DATA => 596,
+ ERROR_CLIENT_SERVER_PARAMETERS_INVALID => 597,
+ ERROR_NOT_TINY_STREAM => 598,
+ ERROR_STACK_OVERFLOW_READ => 599,
+ ERROR_CONVERT_TO_LARGE => 600,
+ ERROR_FOUND_OUT_OF_SCOPE => 601,
+ ERROR_ALLOCATE_BUCKET => 602,
+ ERROR_MARSHALL_OVERFLOW => 603,
+ ERROR_INVALID_VARIANT => 604,
+ ERROR_BAD_COMPRESSION_BUFFER => 605,
+ ERROR_AUDIT_FAILED => 606,
+ ERROR_TIMER_RESOLUTION_NOT_SET => 607,
+ ERROR_INSUFFICIENT_LOGON_INFO => 608,
+ ERROR_BAD_DLL_ENTRYPOINT => 609,
+ ERROR_BAD_SERVICE_ENTRYPOINT => 610,
+ ERROR_IP_ADDRESS_CONFLICT1 => 611,
+ ERROR_IP_ADDRESS_CONFLICT2 => 612,
+ ERROR_REGISTRY_QUOTA_LIMIT => 613,
+ ERROR_NO_CALLBACK_ACTIVE => 614,
+ ERROR_PWD_TOO_SHORT => 615,
+ ERROR_PWD_TOO_RECENT => 616,
+ ERROR_PWD_HISTORY_CONFLICT => 617,
+ ERROR_UNSUPPORTED_COMPRESSION => 618,
+ ERROR_INVALID_HW_PROFILE => 619,
+ ERROR_INVALID_PLUGPLAY_DEVICE_PATH => 620,
+ ERROR_QUOTA_LIST_INCONSISTENT => 621,
+ ERROR_EVALUATION_EXPIRATION => 622,
+ ERROR_ILLEGAL_DLL_RELOCATION => 623,
+ ERROR_DLL_INIT_FAILED_LOGOFF => 624,
+ ERROR_VALIDATE_CONTINUE => 625,
+ ERROR_NO_MORE_MATCHES => 626,
+ ERROR_RANGE_LIST_CONFLICT => 627,
+ ERROR_SERVER_SID_MISMATCH => 628,
+ ERROR_CANT_ENABLE_DENY_ONLY => 629,
+ ERROR_FLOAT_MULTIPLE_FAULTS => 630,
+ ERROR_FLOAT_MULTIPLE_TRAPS => 631,
+ ERROR_NOINTERFACE => 632,
+ ERROR_DRIVER_FAILED_SLEEP => 633,
+ ERROR_CORRUPT_SYSTEM_FILE => 634,
+ ERROR_COMMITMENT_MINIMUM => 635,
+ ERROR_PNP_RESTART_ENUMERATION => 636,
+ ERROR_SYSTEM_IMAGE_BAD_SIGNATURE => 637,
+ ERROR_PNP_REBOOT_REQUIRED => 638,
+ ERROR_INSUFFICIENT_POWER => 639,
+ ERROR_MULTIPLE_FAULT_VIOLATION => 640,
+ ERROR_SYSTEM_SHUTDOWN => 641,
+ ERROR_PORT_NOT_SET => 642,
+ ERROR_DS_VERSION_CHECK_FAILURE => 643,
+ ERROR_RANGE_NOT_FOUND => 644,
+ ERROR_NOT_SAFE_MODE_DRIVER => 646,
+ ERROR_FAILED_DRIVER_ENTRY => 647,
+ ERROR_DEVICE_ENUMERATION_ERROR => 648,
+ ERROR_MOUNT_POINT_NOT_RESOLVED => 649,
+ ERROR_INVALID_DEVICE_OBJECT_PARAMETER => 650,
+ ERROR_MCA_OCCURED => 651,
+ ERROR_DRIVER_DATABASE_ERROR => 652,
+ ERROR_SYSTEM_HIVE_TOO_LARGE => 653,
+ ERROR_DRIVER_FAILED_PRIOR_UNLOAD => 654,
+ ERROR_VOLSNAP_PREPARE_HIBERNATE => 655,
+ ERROR_HIBERNATION_FAILURE => 656,
+ ERROR_PWD_TOO_LONG => 657,
+ ERROR_FILE_SYSTEM_LIMITATION => 665,
+ ERROR_ASSERTION_FAILURE => 668,
+ ERROR_ACPI_ERROR => 669,
+ ERROR_WOW_ASSERTION => 670,
+ ERROR_PNP_BAD_MPS_TABLE => 671,
+ ERROR_PNP_TRANSLATION_FAILED => 672,
+ ERROR_PNP_IRQ_TRANSLATION_FAILED => 673,
+ ERROR_PNP_INVALID_ID => 674,
+ ERROR_WAKE_SYSTEM_DEBUGGER => 675,
+ ERROR_HANDLES_CLOSED => 676,
+ ERROR_EXTRANEOUS_INFORMATION => 677,
+ ERROR_RXACT_COMMIT_NECESSARY => 678,
+ ERROR_MEDIA_CHECK => 679,
+ ERROR_GUID_SUBSTITUTION_MADE => 680,
+ ERROR_STOPPED_ON_SYMLINK => 681,
+ ERROR_LONGJUMP => 682,
+ ERROR_PLUGPLAY_QUERY_VETOED => 683,
+ ERROR_UNWIND_CONSOLIDATE => 684,
+ ERROR_REGISTRY_HIVE_RECOVERED => 685,
+ ERROR_DLL_MIGHT_BE_INSECURE => 686,
+ ERROR_DLL_MIGHT_BE_INCOMPATIBLE => 687,
+ ERROR_DBG_EXCEPTION_NOT_HANDLED => 688,
+ ERROR_DBG_REPLY_LATER => 689,
+ ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE => 690,
+ ERROR_DBG_TERMINATE_THREAD => 691,
+ ERROR_DBG_TERMINATE_PROCESS => 692,
+ ERROR_DBG_CONTROL_C => 693,
+ ERROR_DBG_PRINTEXCEPTION_C => 694,
+ ERROR_DBG_RIPEXCEPTION => 695,
+ ERROR_DBG_CONTROL_BREAK => 696,
+ ERROR_DBG_COMMAND_EXCEPTION => 697,
+ ERROR_OBJECT_NAME_EXISTS => 698,
+ ERROR_THREAD_WAS_SUSPENDED => 699,
+ ERROR_IMAGE_NOT_AT_BASE => 700,
+ ERROR_RXACT_STATE_CREATED => 701,
+ ERROR_SEGMENT_NOTIFICATION => 702,
+ ERROR_BAD_CURRENT_DIRECTORY => 703,
+ ERROR_FT_READ_RECOVERY_FROM_BACKUP => 704,
+ ERROR_FT_WRITE_RECOVERY => 705,
+ ERROR_IMAGE_MACHINE_TYPE_MISMATCH => 706,
+ ERROR_RECEIVE_PARTIAL => 707,
+ ERROR_RECEIVE_EXPEDITED => 708,
+ ERROR_RECEIVE_PARTIAL_EXPEDITED => 709,
+ ERROR_EVENT_DONE => 710,
+ ERROR_EVENT_PENDING => 711,
+ ERROR_CHECKING_FILE_SYSTEM => 712,
+ ERROR_FATAL_APP_EXIT => 713,
+ ERROR_PREDEFINED_HANDLE => 714,
+ ERROR_WAS_UNLOCKED => 715,
+ ERROR_SERVICE_NOTIFICATION => 716,
+ ERROR_WAS_LOCKED => 717,
+ ERROR_LOG_HARD_ERROR => 718,
+ ERROR_ALREADY_WIN32 => 719,
+ ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE => 720,
+ ERROR_NO_YIELD_PERFORMED => 721,
+ ERROR_TIMER_RESUME_IGNORED => 722,
+ ERROR_ARBITRATION_UNHANDLED => 723,
+ ERROR_CARDBUS_NOT_SUPPORTED => 724,
+ ERROR_MP_PROCESSOR_MISMATCH => 725,
+ ERROR_HIBERNATED => 726,
+ ERROR_RESUME_HIBERNATION => 727,
+ ERROR_FIRMWARE_UPDATED => 728,
+ ERROR_DRIVERS_LEAKING_LOCKED_PAGES => 729,
ERROR_WAKE_SYSTEM => 730,
ERROR_WAIT_1 => 731,
ERROR_WAIT_2 => 732,
@@ -705,9 +1108,89 @@ BEGIN {
ERROR_USER_APC => 737,
ERROR_KERNEL_APC => 738,
ERROR_ALERTED => 739,
+ ERROR_ELEVATION_REQUIRED => 740,
+ ERROR_REPARSE => 741,
+ ERROR_OPLOCK_BREAK_IN_PROGRESS => 742,
+ ERROR_VOLUME_MOUNTED => 743,
+ ERROR_RXACT_COMMITTED => 744,
+ ERROR_NOTIFY_CLEANUP => 745,
+ ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED => 746,
+ ERROR_PAGE_FAULT_TRANSITION => 747,
+ ERROR_PAGE_FAULT_DEMAND_ZERO => 748,
+ ERROR_PAGE_FAULT_COPY_ON_WRITE => 749,
+ ERROR_PAGE_FAULT_GUARD_PAGE => 750,
+ ERROR_PAGE_FAULT_PAGING_FILE => 751,
+ ERROR_CACHE_PAGE_LOCKED => 752,
+ ERROR_CRASH_DUMP => 753,
+ ERROR_BUFFER_ALL_ZEROS => 754,
+ ERROR_REPARSE_OBJECT => 755,
+ ERROR_RESOURCE_REQUIREMENTS_CHANGED => 756,
+ ERROR_TRANSLATION_COMPLETE => 757,
+ ERROR_NOTHING_TO_TERMINATE => 758,
+ ERROR_PROCESS_NOT_IN_JOB => 759,
+ ERROR_PROCESS_IN_JOB => 760,
+ ERROR_VOLSNAP_HIBERNATE_READY => 761,
+ ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY => 762,
+ ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED => 763,
+ ERROR_INTERRUPT_STILL_CONNECTED => 764,
+ ERROR_WAIT_FOR_OPLOCK => 765,
+ ERROR_DBG_EXCEPTION_HANDLED => 766,
+ ERROR_DBG_CONTINUE => 767,
ENABLERELATIVEWIDTHS => 768,
EN_CHANGE => 768,
+ ERROR_CALLBACK_POP_STACK => 768,
ENABLEPAIRKERNING => 769,
+ ERROR_COMPRESSION_DISABLED => 769,
+ ERROR_CANTFETCHBACKWARDS => 770,
+ ERROR_CANTSCROLLBACKWARDS => 771,
+ ERROR_ROWSNOTRELEASED => 772,
+ ERROR_BAD_ACCESSOR_FLAGS => 773,
+ ERROR_ERRORS_ENCOUNTERED => 774,
+ ERROR_NOT_CAPABLE => 775,
+ ERROR_REQUEST_OUT_OF_SEQUENCE => 776,
+ ERROR_VERSION_PARSE_ERROR => 777,
+ ERROR_BADSTARTPOSITION => 778,
+ ERROR_MEMORY_HARDWARE => 779,
+ ERROR_DISK_REPAIR_DISABLED => 780,
+ ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE => 781,
+ ERROR_SYSTEM_POWERSTATE_TRANSITION => 782,
+ ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION => 783,
+ ERROR_MCA_EXCEPTION => 784,
+ ERROR_ACCESS_AUDIT_BY_POLICY => 785,
+ ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY => 786,
+ ERROR_ABANDON_HIBERFILE => 787,
+ ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED => 788,
+ ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR => 789,
+ ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR => 790,
+ ERROR_BAD_MCFG_TABLE => 791,
+ ERROR_DISK_REPAIR_REDIRECTED => 792,
+ ERROR_DISK_REPAIR_UNSUCCESSFUL => 793,
+ ERROR_CORRUPT_LOG_OVERFULL => 794,
+ ERROR_CORRUPT_LOG_CORRUPTED => 795,
+ ERROR_CORRUPT_LOG_UNAVAILABLE => 796,
+ ERROR_CORRUPT_LOG_DELETED_FULL => 797,
+ ERROR_CORRUPT_LOG_CLEARED => 798,
+ ERROR_ORPHAN_NAME_EXHAUSTED => 799,
+ ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE => 800,
+ ERROR_CANNOT_GRANT_REQUESTED_OPLOCK => 801,
+ ERROR_CANNOT_BREAK_OPLOCK => 802,
+ ERROR_OPLOCK_HANDLE_CLOSED => 803,
+ ERROR_NO_ACE_CONDITION => 804,
+ ERROR_INVALID_ACE_CONDITION => 805,
+ ERROR_FILE_HANDLE_REVOKED => 806,
+ ERROR_IMAGE_AT_DIFFERENT_BASE => 807,
+ ERROR_ENCRYPTED_IO_NOT_POSSIBLE => 808,
+ ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS => 809,
+ ERROR_QUOTA_ACTIVITY => 810,
+ ERROR_HANDLE_REVOKED => 811,
+ ERROR_CALLBACK_INVOKE_INLINE => 812,
+ ERROR_CPU_SET_INVALID => 813,
+ ERROR_ENCLAVE_NOT_TERMINATED => 814,
+ ERROR_ENCLAVE_VIOLATION => 815,
+ ERROR_SERVER_TRANSPORT_CONFLICT => 816,
+ ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT => 817,
+ ERROR_FT_READ_FROM_COPY_FAILURE => 818,
+ ERROR_SECTION_DIRECT_MAP_ONLY => 819,
ERROR_EA_ACCESS_DENIED => 994,
ERROR_OPERATION_ABORTED => 995,
ERROR_IO_INCOMPLETE => 996,
@@ -841,6 +1324,10 @@ BEGIN {
ERROR_JOURNAL_NOT_ACTIVE => 1179,
ERROR_POTENTIAL_FILE_FOUND => 1180,
ERROR_JOURNAL_ENTRY_DELETED => 1181,
+ ERROR_PARTITION_TERMINATING => 1184,
+ ERROR_SHUTDOWN_IS_SCHEDULED => 1190,
+ ERROR_SHUTDOWN_USERS_LOGGED_ON => 1191,
+ ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE => 1192,
ERROR_BAD_DEVICE => 1200,
ERROR_CONNECTION_UNAVAIL => 1201,
ERROR_DEVICE_ALREADY_REMEMBERED => 1202,
@@ -908,6 +1395,7 @@ BEGIN {
ERROR_SMARTCARD_SUBSYSTEM_FAILURE => 1264,
ERROR_DOWNGRADE_DETECTED => 1265,
ERROR_MACHINE_LOCKED => 1271,
+ ERROR_SMB_GUEST_LOGON_BLOCKED => 1272,
ERROR_CALLBACK_SUPPLIED_INVALID_DATA => 1273,
ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED => 1274,
ERROR_DRIVER_BLOCKED => 1275,
@@ -925,6 +1413,18 @@ BEGIN {
ERROR_DELAY_LOAD_FAILED => 1285,
ERROR_VDM_DISALLOWED => 1286,
ERROR_UNIDENTIFIED_ERROR => 1287,
+ ERROR_INVALID_CRUNTIME_PARAMETER => 1288,
+ ERROR_BEYOND_VDL => 1289,
+ ERROR_INCOMPATIBLE_SERVICE_SID_TYPE => 1290,
+ ERROR_DRIVER_PROCESS_TERMINATED => 1291,
+ ERROR_IMPLEMENTATION_LIMIT => 1292,
+ ERROR_PROCESS_IS_PROTECTED => 1293,
+ ERROR_SERVICE_NOTIFY_CLIENT_LAGGING => 1294,
+ ERROR_DISK_QUOTA_EXCEEDED => 1295,
+ ERROR_CONTENT_BLOCKED => 1296,
+ ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE => 1297,
+ ERROR_APP_HANG => 1298,
+ ERROR_INVALID_LABEL => 1299,
ERROR_NOT_ALL_ASSIGNED => 1300,
ERROR_SOME_NOT_MAPPED => 1301,
ERROR_NO_QUOTAS_FOR_ACCOUNT => 1302,
@@ -1100,8 +1600,13 @@ BEGIN {
ERROR_EVENTLOG_CANT_START => 1501,
ERROR_LOG_FILE_FULL => 1502,
ERROR_EVENTLOG_FILE_CHANGED => 1503,
+ ERROR_CONTAINER_ASSIGNED => 1504,
+ ERROR_JOB_NO_CONTAINER => 1505,
EN_HSCROLL => 1537,
EN_VSCROLL => 1538,
+ ERROR_INVALID_TASK_NAME => 1550,
+ ERROR_INVALID_TASK_INDEX => 1551,
+ ERROR_THREAD_ALREADY_IN_TASK => 1552,
ERROR_INSTALL_SERVICE_FAILURE => 1601,
ERROR_INSTALL_USEREXIT => 1602,
ERROR_INSTALL_FAILURE => 1603,
@@ -1147,6 +1652,21 @@ BEGIN {
ERROR_PATCH_PACKAGE_REJECTED => 1643,
ERROR_INSTALL_TRANSFORM_REJECTED => 1644,
ERROR_INSTALL_REMOTE_PROHIBITED => 1645,
+ ERROR_PATCH_REMOVAL_UNSUPPORTED => 1646,
+ ERROR_UNKNOWN_PATCH => 1647,
+ ERROR_PATCH_NO_SEQUENCE => 1648,
+ ERROR_PATCH_REMOVAL_DISALLOWED => 1649,
+ ERROR_INVALID_PATCH_XML => 1650,
+ ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT => 1651,
+ ERROR_INSTALL_SERVICE_SAFEBOOT => 1652,
+ ERROR_FAIL_FAST_EXCEPTION => 1653,
+ ERROR_INSTALL_REJECTED => 1654,
+ ERROR_DYNAMIC_CODE_BLOCKED => 1655,
+ ERROR_NOT_SAME_OBJECT => 1656,
+ ERROR_STRICT_CFG_VIOLATION => 1657,
+ ERROR_SET_CONTEXT_DENIED => 1660,
+ ERROR_CROSS_PARTITION_VIOLATION => 1661,
+ ERROR_RETURN_ADDRESS_HIJACK_ATTEMPT => 1662,
EPT_S_INVALID_ENTRY => 1751,
EPT_S_CANT_PERFORM_OP => 1752,
EPT_S_NOT_REGISTERED => 1753,
@@ -1203,6 +1723,9 @@ BEGIN {
ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED => 1934,
ERROR_AUTHENTICATION_FIREWALL_FAILED => 1935,
ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED => 1936,
+ ERROR_NTLM_BLOCKED => 1937,
+ ERROR_PASSWORD_CHANGE_REQUIRED => 1938,
+ ERROR_LOST_MODE_LOGON_RESTRICTION => 1939,
ERROR_INVALID_PIXEL_FORMAT => 2000,
ERROR_BAD_DRIVER => 2001,
ERROR_INVALID_WINDOW_STYLE => 2002,
@@ -1222,9 +1745,12 @@ BEGIN {
ERROR_INVALID_TRANSFORM => 2020,
ERROR_COLORSPACE_MISMATCH => 2021,
ERROR_INVALID_COLORINDEX => 2022,
+ ERROR_PROFILE_DOES_NOT_MATCH_DEVICE => 2023,
+ EN_BEFORE_PASTE => 2048,
ES_READONLY => 2048,
ETO_NUMERICSLATIN => 2048,
EV_EVENT1 => 2048,
+ EN_AFTER_PASTE => 2049,
ERROR_CONNECTED_OTHER_PASSWORD => 2108,
ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT => 2109,
ERROR_BAD_USERNAME => 2202,
@@ -1247,6 +1773,47 @@ BEGIN {
ERROR_PRINTER_NOT_FOUND => 3012,
ERROR_PRINTER_DRIVER_WARNED => 3013,
ERROR_PRINTER_DRIVER_BLOCKED => 3014,
+ ERROR_PRINTER_DRIVER_PACKAGE_IN_USE => 3015,
+ ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND => 3016,
+ ERROR_FAIL_REBOOT_REQUIRED => 3017,
+ ERROR_FAIL_REBOOT_INITIATED => 3018,
+ ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED => 3019,
+ ERROR_PRINT_JOB_RESTART_REQUIRED => 3020,
+ ERROR_INVALID_PRINTER_DRIVER_MANIFEST => 3021,
+ ERROR_PRINTER_NOT_SHAREABLE => 3022,
+ ERROR_REQUEST_PAUSED => 3050,
+ ERROR_APPEXEC_CONDITION_NOT_SATISFIED => 3060,
+ ERROR_APPEXEC_HANDLE_INVALIDATED => 3061,
+ ERROR_APPEXEC_INVALID_HOST_GENERATION => 3062,
+ ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION => 3063,
+ ERROR_APPEXEC_INVALID_HOST_STATE => 3064,
+ ERROR_APPEXEC_NO_DONOR => 3065,
+ ERROR_APPEXEC_HOST_ID_MISMATCH => 3066,
+ ERROR_APPEXEC_UNKNOWN_USER => 3067,
+ ERROR_APPEXEC_APP_COMPAT_BLOCK => 3068,
+ ERROR_APPEXEC_CALLER_WAIT_TIMEOUT => 3069,
+ ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION => 3070,
+ ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING => 3071,
+ ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES => 3072,
+ ERROR_VRF_VOLATILE_CFG_AND_IO_ENABLED => 3080,
+ ERROR_VRF_VOLATILE_NOT_STOPPABLE => 3081,
+ ERROR_VRF_VOLATILE_SAFE_MODE => 3082,
+ ERROR_VRF_VOLATILE_NOT_RUNNABLE_SYSTEM => 3083,
+ ERROR_VRF_VOLATILE_NOT_SUPPORTED_RULECLASS => 3084,
+ ERROR_VRF_VOLATILE_PROTECTED_DRIVER => 3085,
+ ERROR_VRF_VOLATILE_NMI_REGISTERED => 3086,
+ ERROR_VRF_VOLATILE_SETTINGS_CONFLICT => 3087,
+ ERROR_DIF_IOCALLBACK_NOT_REPLACED => 3190,
+ ERROR_DIF_LIVEDUMP_LIMIT_EXCEEDED => 3191,
+ ERROR_DIF_VOLATILE_SECTION_NOT_LOCKED => 3192,
+ ERROR_DIF_VOLATILE_DRIVER_HOTPATCHED => 3193,
+ ERROR_DIF_VOLATILE_INVALID_INFO => 3194,
+ ERROR_DIF_VOLATILE_DRIVER_IS_NOT_RUNNING => 3195,
+ ERROR_DIF_VOLATILE_PLUGIN_IS_NOT_RUNNING => 3196,
+ ERROR_DIF_VOLATILE_PLUGIN_CHANGE_NOT_ALLOWED => 3197,
+ ERROR_DIF_VOLATILE_NOT_ALLOWED => 3198,
+ ERROR_DIF_BINDING_API_NOT_FOUND => 3199,
+ ERROR_IO_REISSUE_AS_CACHED => 3950,
ERROR_WINS_INTERNAL => 4000,
ERROR_CAN_NOT_DEL_LOCAL_WINS => 4001,
ERROR_STATIC_INIT => 4002,
@@ -1277,6 +1844,10 @@ BEGIN {
ERROR_WMI_ALREADY_DISABLED => 4212,
ERROR_WMI_READ_ONLY => 4213,
ERROR_WMI_SET_FAILURE => 4214,
+ ERROR_NOT_APPCONTAINER => 4250,
+ ERROR_APPCONTAINER_REQUIRED => 4251,
+ ERROR_NOT_SUPPORTED_IN_APPCONTAINER => 4252,
+ ERROR_INVALID_PACKAGE_SID_LENGTH => 4253,
ERROR_INVALID_MEDIA => 4300,
ERROR_INVALID_LIBRARY => 4301,
ERROR_INVALID_MEDIA_POOL => 4302,
@@ -1327,7 +1898,58 @@ BEGIN {
ERROR_INVALID_REPARSE_DATA => 4392,
ERROR_REPARSE_TAG_INVALID => 4393,
ERROR_REPARSE_TAG_MISMATCH => 4394,
+ ERROR_REPARSE_POINT_ENCOUNTERED => 4395,
+ ERROR_APP_DATA_NOT_FOUND => 4400,
+ ERROR_APP_DATA_EXPIRED => 4401,
+ ERROR_APP_DATA_CORRUPT => 4402,
+ ERROR_APP_DATA_LIMIT_EXCEEDED => 4403,
+ ERROR_APP_DATA_REBOOT_REQUIRED => 4404,
+ ERROR_SECUREBOOT_ROLLBACK_DETECTED => 4420,
+ ERROR_SECUREBOOT_POLICY_VIOLATION => 4421,
+ ERROR_SECUREBOOT_INVALID_POLICY => 4422,
+ ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND => 4423,
+ ERROR_SECUREBOOT_POLICY_NOT_SIGNED => 4424,
+ ERROR_SECUREBOOT_NOT_ENABLED => 4425,
+ ERROR_SECUREBOOT_FILE_REPLACED => 4426,
+ ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED => 4427,
+ ERROR_SECUREBOOT_POLICY_UNKNOWN => 4428,
+ ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION => 4429,
+ ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH => 4430,
+ ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED => 4431,
+ ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH => 4432,
+ ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING => 4433,
+ ERROR_SECUREBOOT_NOT_BASE_POLICY => 4434,
+ ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY => 4435,
+ ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED => 4440,
+ ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED => 4441,
+ ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED => 4442,
+ ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED => 4443,
+ ERROR_ALREADY_HAS_STREAM_ID => 4444,
+ ERROR_SMR_GARBAGE_COLLECTION_REQUIRED => 4445,
+ ERROR_WOF_WIM_HEADER_CORRUPT => 4446,
+ ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT => 4447,
+ ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT => 4448,
+ ERROR_OBJECT_IS_IMMUTABLE => 4449,
ERROR_VOLUME_NOT_SIS_ENABLED => 4500,
+ ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED => 4550,
+ ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION => 4551,
+ ERROR_SYSTEM_INTEGRITY_INVALID_POLICY => 4552,
+ ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED => 4553,
+ ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES => 4554,
+ ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED => 4555,
+ ERROR_SYSTEM_INTEGRITY_REPUTATION_MALICIOUS => 4556,
+ ERROR_SYSTEM_INTEGRITY_REPUTATION_PUA => 4557,
+ ERROR_SYSTEM_INTEGRITY_REPUTATION_DANGEROUS_EXT => 4558,
+ ERROR_SYSTEM_INTEGRITY_REPUTATION_OFFLINE => 4559,
+ ERROR_VSM_NOT_INITIALIZED => 4560,
+ ERROR_VSM_DMA_PROTECTION_NOT_IN_USE => 4561,
+ ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED => 4570,
+ ERROR_PLATFORM_MANIFEST_INVALID => 4571,
+ ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED => 4572,
+ ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED => 4573,
+ ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND => 4574,
+ ERROR_PLATFORM_MANIFEST_NOT_ACTIVE => 4575,
+ ERROR_PLATFORM_MANIFEST_NOT_SIGNED => 4576,
ERROR_DEPENDENT_RESOURCE_EXISTS => 5001,
ERROR_DEPENDENCY_NOT_FOUND => 5002,
ERROR_DEPENDENCY_ALREADY_EXISTS => 5003,
@@ -1416,6 +2038,7 @@ BEGIN {
ERROR_DATABASE_BACKUP_CORRUPT => 5087,
ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT => 5088,
ERROR_RESOURCE_PROPERTY_UNCHANGEABLE => 5089,
+ ERROR_NO_ADMIN_ACCESS_POINT => 5090,
ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE => 5890,
ERROR_CLUSTER_QUORUMLOG_NOT_FOUND => 5891,
ERROR_CLUSTER_MEMBERSHIP_HALT => 5892,
@@ -1432,6 +2055,100 @@ BEGIN {
ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT => 5903,
ERROR_CLUSTER_OLD_VERSION => 5904,
ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME => 5905,
+ ERROR_CLUSTER_NO_NET_ADAPTERS => 5906,
+ ERROR_CLUSTER_POISONED => 5907,
+ ERROR_CLUSTER_GROUP_MOVING => 5908,
+ ERROR_CLUSTER_RESOURCE_TYPE_BUSY => 5909,
+ ERROR_RESOURCE_CALL_TIMED_OUT => 5910,
+ ERROR_INVALID_CLUSTER_IPV6_ADDRESS => 5911,
+ ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION => 5912,
+ ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS => 5913,
+ ERROR_CLUSTER_PARTIAL_SEND => 5914,
+ ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION => 5915,
+ ERROR_CLUSTER_INVALID_STRING_TERMINATION => 5916,
+ ERROR_CLUSTER_INVALID_STRING_FORMAT => 5917,
+ ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS => 5918,
+ ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS => 5919,
+ ERROR_CLUSTER_NULL_DATA => 5920,
+ ERROR_CLUSTER_PARTIAL_READ => 5921,
+ ERROR_CLUSTER_PARTIAL_WRITE => 5922,
+ ERROR_CLUSTER_CANT_DESERIALIZE_DATA => 5923,
+ ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT => 5924,
+ ERROR_CLUSTER_NO_QUORUM => 5925,
+ ERROR_CLUSTER_INVALID_IPV6_NETWORK => 5926,
+ ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK => 5927,
+ ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP => 5928,
+ ERROR_DEPENDENCY_TREE_TOO_COMPLEX => 5929,
+ ERROR_EXCEPTION_IN_RESOURCE_CALL => 5930,
+ ERROR_CLUSTER_RHS_FAILED_INITIALIZATION => 5931,
+ ERROR_CLUSTER_NOT_INSTALLED => 5932,
+ ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE => 5933,
+ ERROR_CLUSTER_MAX_NODES_IN_CLUSTER => 5934,
+ ERROR_CLUSTER_TOO_MANY_NODES => 5935,
+ ERROR_CLUSTER_OBJECT_ALREADY_USED => 5936,
+ ERROR_NONCORE_GROUPS_FOUND => 5937,
+ ERROR_FILE_SHARE_RESOURCE_CONFLICT => 5938,
+ ERROR_CLUSTER_EVICT_INVALID_REQUEST => 5939,
+ ERROR_CLUSTER_SINGLETON_RESOURCE => 5940,
+ ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE => 5941,
+ ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED => 5942,
+ ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR => 5943,
+ ERROR_CLUSTER_GROUP_BUSY => 5944,
+ ERROR_CLUSTER_NOT_SHARED_VOLUME => 5945,
+ ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR => 5946,
+ ERROR_CLUSTER_SHARED_VOLUMES_IN_USE => 5947,
+ ERROR_CLUSTER_USE_SHARED_VOLUMES_API => 5948,
+ ERROR_CLUSTER_BACKUP_IN_PROGRESS => 5949,
+ ERROR_NON_CSV_PATH => 5950,
+ ERROR_CSV_VOLUME_NOT_LOCAL => 5951,
+ ERROR_CLUSTER_WATCHDOG_TERMINATING => 5952,
+ ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES => 5953,
+ ERROR_CLUSTER_INVALID_NODE_WEIGHT => 5954,
+ ERROR_CLUSTER_RESOURCE_VETOED_CALL => 5955,
+ ERROR_RESMON_SYSTEM_RESOURCES_LACKING => 5956,
+ ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION => 5957,
+ ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE => 5958,
+ ERROR_CLUSTER_GROUP_QUEUED => 5959,
+ ERROR_CLUSTER_RESOURCE_LOCKED_STATUS => 5960,
+ ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED => 5961,
+ ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS => 5962,
+ ERROR_CLUSTER_DISK_NOT_CONNECTED => 5963,
+ ERROR_DISK_NOT_CSV_CAPABLE => 5964,
+ ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE => 5965,
+ ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED => 5966,
+ ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED => 5967,
+ ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES => 5968,
+ ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES => 5969,
+ ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE => 5970,
+ ERROR_CLUSTER_AFFINITY_CONFLICT => 5971,
+ ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE => 5972,
+ ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS => 5973,
+ ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED => 5974,
+ ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED => 5975,
+ ERROR_CLUSTER_UPGRADE_IN_PROGRESS => 5976,
+ ERROR_CLUSTER_UPGRADE_INCOMPLETE => 5977,
+ ERROR_CLUSTER_NODE_IN_GRACE_PERIOD => 5978,
+ ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT => 5979,
+ ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER => 5980,
+ ERROR_CLUSTER_RESOURCE_NOT_MONITORED => 5981,
+ ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED => 5982,
+ ERROR_CLUSTER_RESOURCE_IS_REPLICATED => 5983,
+ ERROR_CLUSTER_NODE_ISOLATED => 5984,
+ ERROR_CLUSTER_NODE_QUARANTINED => 5985,
+ ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED => 5986,
+ ERROR_CLUSTER_SPACE_DEGRADED => 5987,
+ ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED => 5988,
+ ERROR_CLUSTER_CSV_INVALID_HANDLE => 5989,
+ ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR => 5990,
+ ERROR_GROUPSET_NOT_AVAILABLE => 5991,
+ ERROR_GROUPSET_NOT_FOUND => 5992,
+ ERROR_GROUPSET_CANT_PROVIDE => 5993,
+ ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND => 5994,
+ ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY => 5995,
+ ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION => 5996,
+ ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS => 5997,
+ ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME => 5998,
+ ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE => 5999,
ERROR_ENCRYPTION_FAILED => 6000,
ERROR_DECRYPTION_FAILED => 6001,
ERROR_FILE_ENCRYPTED => 6002,
@@ -1449,7 +2166,150 @@ BEGIN {
ERROR_VOLUME_NOT_SUPPORT_EFS => 6014,
ERROR_EFS_DISABLED => 6015,
ERROR_EFS_VERSION_NOT_SUPPORT => 6016,
+ ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE => 6017,
+ ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER => 6018,
+ ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE => 6019,
+ ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE => 6020,
+ ERROR_CS_ENCRYPTION_FILE_NOT_CSE => 6021,
+ ERROR_ENCRYPTION_POLICY_DENIES_OPERATION => 6022,
+ ERROR_WIP_ENCRYPTION_FAILED => 6023,
ERROR_NO_BROWSER_SERVERS_FOUND => 6118,
+ ERROR_CLUSTER_OBJECT_IS_CLUSTER_SET_VM => 6250,
+ ERROR_LOG_SECTOR_INVALID => 6600,
+ ERROR_LOG_SECTOR_PARITY_INVALID => 6601,
+ ERROR_LOG_SECTOR_REMAPPED => 6602,
+ ERROR_LOG_BLOCK_INCOMPLETE => 6603,
+ ERROR_LOG_INVALID_RANGE => 6604,
+ ERROR_LOG_BLOCKS_EXHAUSTED => 6605,
+ ERROR_LOG_READ_CONTEXT_INVALID => 6606,
+ ERROR_LOG_RESTART_INVALID => 6607,
+ ERROR_LOG_BLOCK_VERSION => 6608,
+ ERROR_LOG_BLOCK_INVALID => 6609,
+ ERROR_LOG_READ_MODE_INVALID => 6610,
+ ERROR_LOG_NO_RESTART => 6611,
+ ERROR_LOG_METADATA_CORRUPT => 6612,
+ ERROR_LOG_METADATA_INVALID => 6613,
+ ERROR_LOG_METADATA_INCONSISTENT => 6614,
+ ERROR_LOG_RESERVATION_INVALID => 6615,
+ ERROR_LOG_CANT_DELETE => 6616,
+ ERROR_LOG_CONTAINER_LIMIT_EXCEEDED => 6617,
+ ERROR_LOG_START_OF_LOG => 6618,
+ ERROR_LOG_POLICY_ALREADY_INSTALLED => 6619,
+ ERROR_LOG_POLICY_NOT_INSTALLED => 6620,
+ ERROR_LOG_POLICY_INVALID => 6621,
+ ERROR_LOG_POLICY_CONFLICT => 6622,
+ ERROR_LOG_PINNED_ARCHIVE_TAIL => 6623,
+ ERROR_LOG_RECORD_NONEXISTENT => 6624,
+ ERROR_LOG_RECORDS_RESERVED_INVALID => 6625,
+ ERROR_LOG_SPACE_RESERVED_INVALID => 6626,
+ ERROR_LOG_TAIL_INVALID => 6627,
+ ERROR_LOG_FULL => 6628,
+ ERROR_COULD_NOT_RESIZE_LOG => 6629,
+ ERROR_LOG_MULTIPLEXED => 6630,
+ ERROR_LOG_DEDICATED => 6631,
+ ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS => 6632,
+ ERROR_LOG_ARCHIVE_IN_PROGRESS => 6633,
+ ERROR_LOG_EPHEMERAL => 6634,
+ ERROR_LOG_NOT_ENOUGH_CONTAINERS => 6635,
+ ERROR_LOG_CLIENT_ALREADY_REGISTERED => 6636,
+ ERROR_LOG_CLIENT_NOT_REGISTERED => 6637,
+ ERROR_LOG_FULL_HANDLER_IN_PROGRESS => 6638,
+ ERROR_LOG_CONTAINER_READ_FAILED => 6639,
+ ERROR_LOG_CONTAINER_WRITE_FAILED => 6640,
+ ERROR_LOG_CONTAINER_OPEN_FAILED => 6641,
+ ERROR_LOG_CONTAINER_STATE_INVALID => 6642,
+ ERROR_LOG_STATE_INVALID => 6643,
+ ERROR_LOG_PINNED => 6644,
+ ERROR_LOG_METADATA_FLUSH_FAILED => 6645,
+ ERROR_LOG_INCONSISTENT_SECURITY => 6646,
+ ERROR_LOG_APPENDED_FLUSH_FAILED => 6647,
+ ERROR_LOG_PINNED_RESERVATION => 6648,
+ ERROR_INVALID_TRANSACTION => 6700,
+ ERROR_TRANSACTION_NOT_ACTIVE => 6701,
+ ERROR_TRANSACTION_REQUEST_NOT_VALID => 6702,
+ ERROR_TRANSACTION_NOT_REQUESTED => 6703,
+ ERROR_TRANSACTION_ALREADY_ABORTED => 6704,
+ ERROR_TRANSACTION_ALREADY_COMMITTED => 6705,
+ ERROR_TM_INITIALIZATION_FAILED => 6706,
+ ERROR_RESOURCEMANAGER_READ_ONLY => 6707,
+ ERROR_TRANSACTION_NOT_JOINED => 6708,
+ ERROR_TRANSACTION_SUPERIOR_EXISTS => 6709,
+ ERROR_CRM_PROTOCOL_ALREADY_EXISTS => 6710,
+ ERROR_TRANSACTION_PROPAGATION_FAILED => 6711,
+ ERROR_CRM_PROTOCOL_NOT_FOUND => 6712,
+ ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER => 6713,
+ ERROR_CURRENT_TRANSACTION_NOT_VALID => 6714,
+ ERROR_TRANSACTION_NOT_FOUND => 6715,
+ ERROR_RESOURCEMANAGER_NOT_FOUND => 6716,
+ ERROR_ENLISTMENT_NOT_FOUND => 6717,
+ ERROR_TRANSACTIONMANAGER_NOT_FOUND => 6718,
+ ERROR_TRANSACTIONMANAGER_NOT_ONLINE => 6719,
+ ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION => 6720,
+ ERROR_TRANSACTION_NOT_ROOT => 6721,
+ ERROR_TRANSACTION_OBJECT_EXPIRED => 6722,
+ ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED => 6723,
+ ERROR_TRANSACTION_RECORD_TOO_LONG => 6724,
+ ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED => 6725,
+ ERROR_TRANSACTION_INTEGRITY_VIOLATED => 6726,
+ ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH => 6727,
+ ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT => 6728,
+ ERROR_TRANSACTION_MUST_WRITETHROUGH => 6729,
+ ERROR_TRANSACTION_NO_SUPERIOR => 6730,
+ ERROR_HEURISTIC_DAMAGE_POSSIBLE => 6731,
+ ERROR_TRANSACTIONAL_CONFLICT => 6800,
+ ERROR_RM_NOT_ACTIVE => 6801,
+ ERROR_RM_METADATA_CORRUPT => 6802,
+ ERROR_DIRECTORY_NOT_RM => 6803,
+ ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE => 6805,
+ ERROR_LOG_RESIZE_INVALID_SIZE => 6806,
+ ERROR_OBJECT_NO_LONGER_EXISTS => 6807,
+ ERROR_STREAM_MINIVERSION_NOT_FOUND => 6808,
+ ERROR_STREAM_MINIVERSION_NOT_VALID => 6809,
+ ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION => 6810,
+ ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT => 6811,
+ ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS => 6812,
+ ERROR_REMOTE_FILE_VERSION_MISMATCH => 6814,
+ ERROR_HANDLE_NO_LONGER_VALID => 6815,
+ ERROR_NO_TXF_METADATA => 6816,
+ ERROR_LOG_CORRUPTION_DETECTED => 6817,
+ ERROR_CANT_RECOVER_WITH_HANDLE_OPEN => 6818,
+ ERROR_RM_DISCONNECTED => 6819,
+ ERROR_ENLISTMENT_NOT_SUPERIOR => 6820,
+ ERROR_RECOVERY_NOT_NEEDED => 6821,
+ ERROR_RM_ALREADY_STARTED => 6822,
+ ERROR_FILE_IDENTITY_NOT_PERSISTENT => 6823,
+ ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY => 6824,
+ ERROR_CANT_CROSS_RM_BOUNDARY => 6825,
+ ERROR_TXF_DIR_NOT_EMPTY => 6826,
+ ERROR_INDOUBT_TRANSACTIONS_EXIST => 6827,
+ ERROR_TM_VOLATILE => 6828,
+ ERROR_ROLLBACK_TIMER_EXPIRED => 6829,
+ ERROR_TXF_ATTRIBUTE_CORRUPT => 6830,
+ ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION => 6831,
+ ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED => 6832,
+ ERROR_LOG_GROWTH_FAILED => 6833,
+ ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE => 6834,
+ ERROR_TXF_METADATA_ALREADY_PRESENT => 6835,
+ ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET => 6836,
+ ERROR_TRANSACTION_REQUIRED_PROMOTION => 6837,
+ ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION => 6838,
+ ERROR_TRANSACTIONS_NOT_FROZEN => 6839,
+ ERROR_TRANSACTION_FREEZE_IN_PROGRESS => 6840,
+ ERROR_NOT_SNAPSHOT_VOLUME => 6841,
+ ERROR_NO_SAVEPOINT_WITH_OPEN_FILES => 6842,
+ ERROR_DATA_LOST_REPAIR => 6843,
+ ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION => 6844,
+ ERROR_TM_IDENTITY_MISMATCH => 6845,
+ ERROR_FLOATED_SECTION => 6846,
+ ERROR_CANNOT_ACCEPT_TRANSACTED_WORK => 6847,
+ ERROR_CANNOT_ABORT_TRANSACTIONS => 6848,
+ ERROR_BAD_CLUSTERS => 6849,
+ ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION => 6850,
+ ERROR_VOLUME_DIRTY => 6851,
+ ERROR_NO_LINK_TRACKING_IN_TRANSACTION => 6852,
+ ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION => 6853,
+ ERROR_EXPIRED_HANDLE => 6854,
+ ERROR_TRANSACTION_NOT_ENLISTED => 6855,
ERROR_CTX_WINSTATION_NAME_INVALID => 7001,
ERROR_CTX_INVALID_PD => 7002,
ERROR_CTX_PD_NOT_FOUND => 7003,
@@ -1490,6 +2350,17 @@ BEGIN {
ERROR_CTX_SHADOW_NOT_RUNNING => 7057,
ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE => 7058,
ERROR_ACTIVATION_COUNT_EXCEEDED => 7059,
+ ERROR_CTX_WINSTATIONS_DISABLED => 7060,
+ ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED => 7061,
+ ERROR_CTX_SESSION_IN_USE => 7062,
+ ERROR_CTX_NO_FORCE_LOGOFF => 7063,
+ ERROR_CTX_ACCOUNT_RESTRICTION => 7064,
+ ERROR_RDP_PROTOCOL_ERROR => 7065,
+ ERROR_CTX_CDM_CONNECT => 7066,
+ ERROR_CTX_CDM_DISCONNECT => 7067,
+ ERROR_CTX_SECURITY_LAYER_ERROR => 7068,
+ ERROR_TS_INCOMPATIBLE_SESSIONS => 7069,
+ ERROR_TS_VIDEO_SUBSYSTEM_ERROR => 7070,
ELEMENT_STATUS_ID_VALID => 8192,
ES_NUMBER => 8192,
ETO_PDY => 8192,
@@ -1555,6 +2426,7 @@ BEGIN {
ERROR_DS_REFERRAL_LIMIT_EXCEEDED => 8260,
ERROR_DS_SORT_CONTROL_MISSING => 8261,
ERROR_DS_OFFSET_RANGE_ERROR => 8262,
+ ERROR_DS_RIDMGR_DISABLED => 8263,
ERROR_DS_ROOT_MUST_BE_NC => 8301,
ERROR_DS_ADD_REPLICA_INHIBITED => 8302,
ERROR_DS_ATT_NOT_DEF_IN_SCHEMA => 8303,
@@ -1871,6 +2743,42 @@ BEGIN {
ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER => 8615,
ERROR_DS_LDAP_SEND_QUEUE_FULL => 8616,
ERROR_DS_DRA_OUT_SCHEDULE_WINDOW => 8617,
+ ERROR_DS_POLICY_NOT_KNOWN => 8618,
+ ERROR_NO_SITE_SETTINGS_OBJECT => 8619,
+ ERROR_NO_SECRETS => 8620,
+ ERROR_NO_WRITABLE_DC_FOUND => 8621,
+ ERROR_DS_NO_SERVER_OBJECT => 8622,
+ ERROR_DS_NO_NTDSA_OBJECT => 8623,
+ ERROR_DS_NON_ASQ_SEARCH => 8624,
+ ERROR_DS_AUDIT_FAILURE => 8625,
+ ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE => 8626,
+ ERROR_DS_INVALID_SEARCH_FLAG_TUPLE => 8627,
+ ERROR_DS_HIERARCHY_TABLE_TOO_DEEP => 8628,
+ ERROR_DS_DRA_CORRUPT_UTD_VECTOR => 8629,
+ ERROR_DS_DRA_SECRETS_DENIED => 8630,
+ ERROR_DS_RESERVED_MAPI_ID => 8631,
+ ERROR_DS_MAPI_ID_NOT_AVAILABLE => 8632,
+ ERROR_DS_DRA_MISSING_KRBTGT_SECRET => 8633,
+ ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST => 8634,
+ ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST => 8635,
+ ERROR_INVALID_USER_PRINCIPAL_NAME => 8636,
+ ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS => 8637,
+ ERROR_DS_OID_NOT_FOUND => 8638,
+ ERROR_DS_DRA_RECYCLED_TARGET => 8639,
+ ERROR_DS_DISALLOWED_NC_REDIRECT => 8640,
+ ERROR_DS_HIGH_ADLDS_FFL => 8641,
+ ERROR_DS_HIGH_DSA_VERSION => 8642,
+ ERROR_DS_LOW_ADLDS_FFL => 8643,
+ ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION => 8644,
+ ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED => 8645,
+ ERROR_INCORRECT_ACCOUNT_TYPE => 8646,
+ ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST => 8647,
+ ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST => 8648,
+ ERROR_DS_MISSING_FOREST_TRUST => 8649,
+ ERROR_DS_VALUE_KEY_NOT_UNIQUE => 8650,
+ ERROR_WEAK_WHFBKEY_BLOCKED => 8651,
+ ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD => 8652,
+ ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED => 8653,
WSAEINTR => 10004,
WSAEBADF => 10009,
WSAEACCES => 10013,
@@ -1942,18 +2850,31 @@ BEGIN {
ERROR_IPSEC_MM_POLICY_NOT_FOUND => 13004,
ERROR_BIDI_SCHEMA_NOT_SUPPORTED => 13005,
ERROR_IPSEC_MM_POLICY_IN_USE => 13005,
+ ERROR_BIDI_SET_DIFFERENT_TYPE => 13006,
ERROR_IPSEC_MM_FILTER_EXISTS => 13006,
+ ERROR_BIDI_SET_MULTIPLE_SCHEMAPATH => 13007,
ERROR_IPSEC_MM_FILTER_NOT_FOUND => 13007,
+ ERROR_BIDI_SET_INVALID_SCHEMAPATH => 13008,
ERROR_IPSEC_TRANSPORT_FILTER_EXISTS => 13008,
+ ERROR_BIDI_SET_UNKNOWN_FAILURE => 13009,
ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND => 13009,
+ ERROR_BIDI_SCHEMA_WRITE_ONLY => 13010,
ERROR_IPSEC_MM_AUTH_EXISTS => 13010,
+ ERROR_BIDI_GET_REQUIRES_ARGUMENT => 13011,
ERROR_IPSEC_MM_AUTH_NOT_FOUND => 13011,
+ ERROR_BIDI_GET_ARGUMENT_NOT_SUPPORTED => 13012,
ERROR_IPSEC_MM_AUTH_IN_USE => 13012,
+ ERROR_BIDI_GET_MISSING_ARGUMENT => 13013,
ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND => 13013,
+ ERROR_BIDI_DEVICE_CONFIG_UNCHANGED => 13014,
ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND => 13014,
+ ERROR_BIDI_NO_LOCALIZED_RESOURCES => 13015,
ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND => 13015,
+ ERROR_BIDI_NO_BIDI_SCHEMA_EXTENSIONS => 13016,
ERROR_IPSEC_TUNNEL_FILTER_EXISTS => 13016,
+ ERROR_BIDI_UNSUPPORTED_CLIENT_LANGUAGE => 13017,
ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND => 13017,
+ ERROR_BIDI_UNSUPPORTED_RESOURCE_FORMAT => 13018,
ERROR_IPSEC_MM_FILTER_PENDING_DELETION => 13018,
ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION => 13019,
ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION => 13020,
@@ -1981,7 +2902,9 @@ BEGIN {
ERROR_IPSEC_IKE_INVALID_KEY_USAGE => 13818,
ERROR_IPSEC_IKE_INVALID_CERT_TYPE => 13819,
ERROR_IPSEC_IKE_NO_PRIVATE_KEY => 13820,
+ ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY => 13821,
ERROR_IPSEC_IKE_DH_FAIL => 13822,
+ ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED => 13823,
ERROR_IPSEC_IKE_INVALID_HEADER => 13824,
ERROR_IPSEC_IKE_NO_POLICY => 13825,
ERROR_IPSEC_IKE_INVALID_SIGNATURE => 13826,
@@ -2038,6 +2961,7 @@ BEGIN {
ERROR_IPSEC_IKE_RPC_DELETE => 13877,
ERROR_IPSEC_IKE_BENIGN_REINIT => 13878,
ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY => 13879,
+ ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION => 13880,
ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN => 13881,
ERROR_IPSEC_IKE_MM_LIMIT => 13882,
ERROR_IPSEC_IKE_NEGOTIATION_DISABLED => 13883,
@@ -2195,6 +3119,7 @@ BEGIN {
ERROR_SMI_PRIMITIVE_INSTALLER_FAILED => 14108,
ERROR_GENERIC_COMMAND_FAILED => 14109,
ERROR_SXS_FILE_HASH_MISSING => 14110,
+ ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS => 14111,
ERROR_EVT_INVALID_CHANNEL_PATH => 15000,
ERROR_EVT_INVALID_QUERY => 15001,
ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND => 15002,
@@ -2269,6 +3194,26 @@ BEGIN {
ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE => 15138,
ERROR_MRM_AUTOMERGE_ENABLED => 15139,
ERROR_MRM_TOO_MANY_RESOURCES => 15140,
+ ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE => 15141,
+ ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE => 15142,
+ ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD => 15143,
+ ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST => 15144,
+ ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT => 15145,
+ ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE => 15146,
+ ERROR_MRM_GENERATION_COUNT_MISMATCH => 15147,
+ ERROR_PRI_MERGE_VERSION_MISMATCH => 15148,
+ ERROR_PRI_MERGE_MISSING_SCHEMA => 15149,
+ ERROR_PRI_MERGE_LOAD_FILE_FAILED => 15150,
+ ERROR_PRI_MERGE_ADD_FILE_FAILED => 15151,
+ ERROR_PRI_MERGE_WRITE_FILE_FAILED => 15152,
+ ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED => 15153,
+ ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED => 15154,
+ ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED => 15155,
+ ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED => 15156,
+ ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED => 15157,
+ ERROR_PRI_MERGE_INVALID_FILE_NAME => 15158,
+ ERROR_MRM_PACKAGE_NOT_FOUND => 15159,
+ ERROR_MRM_MISSING_DEFAULT_LANGUAGE => 15160,
ERROR_MCA_INVALID_CAPABILITIES_STRING => 15200,
ERROR_MCA_INVALID_VCP_VERSION => 15201,
ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION => 15202,
@@ -2322,6 +3267,49 @@ BEGIN {
ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN => 15624,
ERROR_RESILIENCY_FILE_CORRUPT => 15625,
ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING => 15626,
+ ERROR_PACKAGE_MOVE_FAILED => 15627,
+ ERROR_INSTALL_VOLUME_NOT_EMPTY => 15628,
+ ERROR_INSTALL_VOLUME_OFFLINE => 15629,
+ ERROR_INSTALL_VOLUME_CORRUPT => 15630,
+ ERROR_NEEDS_REGISTRATION => 15631,
+ ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE => 15632,
+ ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED => 15633,
+ ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE => 15634,
+ ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM => 15635,
+ ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING => 15636,
+ ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE => 15637,
+ ERROR_PACKAGE_STAGING_ONHOLD => 15638,
+ ERROR_INSTALL_INVALID_RELATED_SET_UPDATE => 15639,
+ ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY => 15640,
+ ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF => 15641,
+ ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED => 15642,
+ ERROR_PACKAGES_REPUTATION_CHECK_FAILED => 15643,
+ ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT => 15644,
+ ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED => 15645,
+ ERROR_APPINSTALLER_ACTIVATION_BLOCKED => 15646,
+ ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED => 15647,
+ ERROR_APPX_RAW_DATA_WRITE_FAILED => 15648,
+ ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE => 15649,
+ ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE => 15650,
+ ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY => 15651,
+ ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY => 15652,
+ ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER => 15653,
+ ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED => 15654,
+ ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE => 15655,
+ ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES => 15656,
+ ERROR_REDIRECTION_TO_DEFAULT_ACCOUNT_NOT_ALLOWED => 15657,
+ ERROR_PACKAGE_LACKS_CAPABILITY_TO_DEPLOY_ON_HOST => 15658,
+ ERROR_UNSIGNED_PACKAGE_INVALID_CONTENT => 15659,
+ ERROR_UNSIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE => 15660,
+ ERROR_SIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE => 15661,
+ ERROR_PACKAGE_EXTERNAL_LOCATION_NOT_ALLOWED => 15662,
+ ERROR_INSTALL_FULLTRUST_HOSTRUNTIME_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY => 15663,
+ ERROR_PACKAGE_LACKS_CAPABILITY_FOR_MANDATORY_STARTUPTASKS => 15664,
+ ERROR_INSTALL_RESOLVE_HOSTRUNTIME_DEPENDENCY_FAILED => 15665,
+ ERROR_MACHINE_SCOPE_NOT_ALLOWED => 15666,
+ ERROR_CLASSIC_COMPAT_MODE_NOT_ALLOWED => 15667,
+ ERROR_STAGEFROMUPDATEAGENT_PACKAGE_NOT_APPLICABLE => 15668,
+ ERROR_PACKAGE_NOT_REGISTERED_FOR_USER => 15669,
ERROR_STATE_LOAD_STORE_FAILED => 15800,
ERROR_STATE_GET_VERSION_FAILED => 15801,
ERROR_STATE_SET_VERSION_FAILED => 15802,
@@ -2349,6 +3337,11 @@ BEGIN {
EVENT_CONSOLE_LAYOUT => 16389,
EVENT_CONSOLE_START_APPLICATION => 16390,
EVENT_CONSOLE_END_APPLICATION => 16391,
+ EVENT_CONSOLE_END => 16639,
+ EVENT_UIA_EVENTID_START => 19968,
+ EVENT_UIA_EVENTID_END => 20223,
+ EVENT_UIA_PROPID_START => 29952,
+ EVENT_UIA_PROPID_END => 30207,
ELEMENT_STATUS_NOT_BUS => 32768,
EVENT_OBJECT_CREATE => 32768,
EVENT_OBJECT_DESTROY => 32769,
@@ -2369,8 +3362,30 @@ BEGIN {
EVENT_OBJECT_HELPCHANGE => 32784,
EVENT_OBJECT_DEFACTIONCHANGE => 32785,
EVENT_OBJECT_ACCELERATORCHANGE => 32786,
+ EVENT_OBJECT_INVOKED => 32787,
+ EVENT_OBJECT_TEXTSELECTIONCHANGED => 32788,
+ EVENT_OBJECT_CONTENTSCROLLED => 32789,
+ EVENT_SYSTEM_ARRANGMENTPREVIEW => 32790,
+ EVENT_OBJECT_CLOAKED => 32791,
+ EVENT_OBJECT_UNCLOAKED => 32792,
+ EVENT_OBJECT_LIVEREGIONCHANGED => 32793,
+ EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED => 32800,
+ EVENT_OBJECT_DRAGSTART => 32801,
+ EVENT_OBJECT_DRAGCANCEL => 32802,
+ EVENT_OBJECT_DRAGCOMPLETE => 32803,
+ EVENT_OBJECT_DRAGENTER => 32804,
+ EVENT_OBJECT_DRAGLEAVE => 32805,
+ EVENT_OBJECT_DRAGDROPPED => 32806,
+ EVENT_OBJECT_IME_SHOW => 32807,
+ EVENT_OBJECT_IME_HIDE => 32808,
+ EVENT_OBJECT_IME_CHANGE => 32809,
+ EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED => 32816,
+ EVENT_OBJECT_END => 33023,
+ EVENT_AIA_START => 40960,
+ EVENT_AIA_END => 45055,
EC_USEFONTINFO => 65535,
EMBDHLP_DELAYCREATE => 65536,
+ ETO_REVERSE_INDEX_MAP => 65536,
ENLISTMENT_GENERIC_READ => 131073,
ENLISTMENT_GENERIC_EXECUTE => 131100,
ENLISTMENT_GENERIC_WRITE => 131102,
@@ -2384,14 +3399,34 @@ BEGIN {
ENLISTMENT_ALL_ACCESS => 983071,
ERROR_FLT_IO_COMPLETE => 2031617,
EVENT_ALL_ACCESS => 2031619,
+ ERROR_MONITOR_NO_DESCRIPTOR => 2494465,
+ ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT => 2494466,
+ ERROR_GRAPHICS_MODE_NOT_PINNED => 2499335,
+ ERROR_GRAPHICS_NO_PREFERRED_MODE => 2499358,
+ ERROR_GRAPHICS_DATASET_IS_EMPTY => 2499403,
+ ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET => 2499404,
+ ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED => 2499409,
+ ERROR_NDIS_INDICATION_REQUIRED => 3407873,
+ ERROR_HV_PENDING_PAGE_REQUESTS => 3473497,
ELEMENT_STATUS_INVERT => 4194304,
EWX_HYBRID_SHUTDOWN => 4194304,
ELEMENT_STATUS_SVALID => 8388608,
+ ERROR_SPACES_POOL_WAS_DELETED => 15138817,
EWX_BOOTOPTIONS => 16777216,
+ EWX_ARSO => 67108864,
+ EWX_CHECK_SAFE_FOR_SERVER => 134217728,
ELEMENT_STATUS_PVOLTAG => 268435456,
+ EWX_SYSTEM_INITIATED => 268435456,
ELEMENT_STATUS_AVOLTAG => 536870912,
ENDSESSION_CRITICAL => 1073741824,
ERROR_SEVERITY_INFORMATIONAL => 1073741824,
+ ERROR_GRAPHICS_PARTIAL_DATA_POPULATED => 1076240394,
+ ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION => 1076240897,
+ ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS => 1076241455,
+ ERROR_GRAPHICS_LEADLINK_START_DEFERRED => 1076241463,
+ ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY => 1076241465,
+ ERROR_GRAPHICS_START_DEFERRED => 1076241466,
+ ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS => 1076241468,
ENHMETA_SIGNATURE => 1179469088,
EPS_SIGNATURE => 1179865157,
EVENT_MAX => 2147483647,
@@ -2404,6 +3439,15 @@ BEGIN {
EXCEPTION_BREAKPOINT => 2147483651,
EXCEPTION_SINGLE_STEP => 2147483652,
E_PENDING => 2147483658,
+ E_BOUNDS => 2147483659,
+ E_CHANGED_STATE => 2147483660,
+ E_ILLEGAL_STATE_CHANGE => 2147483661,
+ E_ILLEGAL_METHOD_CALL => 2147483662,
+ E_STRING_NOT_NULL_TERMINATED => 2147483671,
+ E_ILLEGAL_DELEGATE_ASSIGNMENT => 2147483672,
+ E_ASYNC_OPERATION_NOT_STARTED => 2147483673,
+ E_APPLICATION_EXITING => 2147483674,
+ E_APPLICATION_VIEW_EXITING => 2147483675,
E_NOTIMPL => 2147500033,
E_NOINTERFACE => 2147500034,
E_POINTER => 2147500035,
@@ -2434,6 +3478,7 @@ BEGIN {
E_HANDLE => 2147942406,
E_OUTOFMEMORY => 2147942414,
E_INVALIDARG => 2147942487,
+ ERROR_CRED_REQUIRES_CONFIRMATION => 2148102169,
ERROR_FLT_NO_HANDLER_DEFINED => 2149515265,
ERROR_FLT_CONTEXT_ALREADY_DEFINED => 2149515266,
ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST => 2149515267,
@@ -2464,6 +3509,230 @@ BEGIN {
ERROR_FLT_CONTEXT_ALREADY_LINKED => 2149515292,
ERROR_FLT_NO_WAITER_FOR_REPLY => 2149515296,
ERROR_FLT_REGISTRATION_BUSY => 2149515299,
+ ERROR_FLT_WCOS_NOT_SUPPORTED => 2149515300,
+ ERROR_HUNG_DISPLAY_DRIVER_THREAD => 2149974017,
+ E_MONITOR_RESOLUTION_TOO_LOW => 2150040144,
+ E_ELEVATED_ACTIVATION_NOT_SUPPORTED => 2150040145,
+ E_UAC_DISABLED => 2150040146,
+ E_FULL_ADMIN_NOT_SUPPORTED => 2150040147,
+ E_APPLICATION_NOT_REGISTERED => 2150040148,
+ E_MULTIPLE_EXTENSIONS_FOR_APPLICATION => 2150040149,
+ E_MULTIPLE_PACKAGES_FOR_FAMILY => 2150040150,
+ E_APPLICATION_MANAGER_NOT_RUNNING => 2150040151,
+ E_APPLICATION_ACTIVATION_TIMED_OUT => 2150040154,
+ E_APPLICATION_ACTIVATION_EXEC_FAILURE => 2150040155,
+ E_APPLICATION_TEMPORARY_LICENSE_ERROR => 2150040156,
+ E_APPLICATION_TRIAL_LICENSE_EXPIRED => 2150040157,
+ E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED => 2150040160,
+ E_SKYDRIVE_ROOT_TARGET_OVERLAP => 2150040161,
+ E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX => 2150040162,
+ E_SKYDRIVE_FILE_NOT_UPLOADED => 2150040163,
+ E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL => 2150040164,
+ E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED => 2150040165,
+ ERROR_NDIS_INTERFACE_CLOSING => 2150891522,
+ ERROR_NDIS_BAD_VERSION => 2150891524,
+ ERROR_NDIS_BAD_CHARACTERISTICS => 2150891525,
+ ERROR_NDIS_ADAPTER_NOT_FOUND => 2150891526,
+ ERROR_NDIS_OPEN_FAILED => 2150891527,
+ ERROR_NDIS_DEVICE_FAILED => 2150891528,
+ ERROR_NDIS_MULTICAST_FULL => 2150891529,
+ ERROR_NDIS_MULTICAST_EXISTS => 2150891530,
+ ERROR_NDIS_MULTICAST_NOT_FOUND => 2150891531,
+ ERROR_NDIS_REQUEST_ABORTED => 2150891532,
+ ERROR_NDIS_RESET_IN_PROGRESS => 2150891533,
+ ERROR_NDIS_INVALID_PACKET => 2150891535,
+ ERROR_NDIS_INVALID_DEVICE_REQUEST => 2150891536,
+ ERROR_NDIS_ADAPTER_NOT_READY => 2150891537,
+ ERROR_NDIS_INVALID_LENGTH => 2150891540,
+ ERROR_NDIS_INVALID_DATA => 2150891541,
+ ERROR_NDIS_BUFFER_TOO_SHORT => 2150891542,
+ ERROR_NDIS_INVALID_OID => 2150891543,
+ ERROR_NDIS_ADAPTER_REMOVED => 2150891544,
+ ERROR_NDIS_UNSUPPORTED_MEDIA => 2150891545,
+ ERROR_NDIS_GROUP_ADDRESS_IN_USE => 2150891546,
+ ERROR_NDIS_FILE_NOT_FOUND => 2150891547,
+ ERROR_NDIS_ERROR_READING_FILE => 2150891548,
+ ERROR_NDIS_ALREADY_MAPPED => 2150891549,
+ ERROR_NDIS_RESOURCE_CONFLICT => 2150891550,
+ ERROR_NDIS_MEDIA_DISCONNECTED => 2150891551,
+ ERROR_NDIS_INVALID_ADDRESS => 2150891554,
+ ERROR_NDIS_PAUSED => 2150891562,
+ ERROR_NDIS_INTERFACE_NOT_FOUND => 2150891563,
+ ERROR_NDIS_UNSUPPORTED_REVISION => 2150891564,
+ ERROR_NDIS_INVALID_PORT => 2150891565,
+ ERROR_NDIS_INVALID_PORT_STATE => 2150891566,
+ ERROR_NDIS_LOW_POWER_STATE => 2150891567,
+ ERROR_NDIS_REINIT_REQUIRED => 2150891568,
+ ERROR_NDIS_NO_QUEUES => 2150891569,
+ ERROR_NDIS_NOT_SUPPORTED => 2150891707,
+ ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED => 2150899712,
+ ERROR_NDIS_DOT11_MEDIA_IN_USE => 2150899713,
+ ERROR_NDIS_DOT11_POWER_STATE_INVALID => 2150899714,
+ ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL => 2150899715,
+ ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL => 2150899716,
+ ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE => 2150899717,
+ ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE => 2150899718,
+ ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED => 2150899719,
+ ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED => 2150899720,
+ ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED => 2151088129,
+ ERROR_VOLMGR_INCOMPLETE_REGENERATION => 2151153665,
+ ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION => 2151153666,
+ ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED => 2151219201,
+ ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED => 2151219203,
+ ERROR_QUERY_STORAGE_ERROR => 2151284737,
+ ERROR_QUIC_HANDSHAKE_FAILURE => 2151743488,
+ ERROR_QUIC_VER_NEG_FAILURE => 2151743489,
+ ERROR_QUIC_USER_CANCELED => 2151743490,
+ ERROR_QUIC_INTERNAL_ERROR => 2151743491,
+ ERROR_QUIC_PROTOCOL_VIOLATION => 2151743492,
+ ERROR_QUIC_CONNECTION_IDLE => 2151743493,
+ ERROR_QUIC_CONNECTION_TIMEOUT => 2151743494,
+ ERROR_QUIC_ALPN_NEG_FAILURE => 2151743495,
+ E_MBN_CONTEXT_NOT_ACTIVATED => 2153021953,
+ E_MBN_BAD_SIM => 2153021954,
+ E_MBN_DATA_CLASS_NOT_AVAILABLE => 2153021955,
+ E_MBN_INVALID_ACCESS_STRING => 2153021956,
+ E_MBN_MAX_ACTIVATED_CONTEXTS => 2153021957,
+ E_MBN_PACKET_SVC_DETACHED => 2153021958,
+ E_MBN_PROVIDER_NOT_VISIBLE => 2153021959,
+ E_MBN_RADIO_POWER_OFF => 2153021960,
+ E_MBN_SERVICE_NOT_ACTIVATED => 2153021961,
+ E_MBN_SIM_NOT_INSERTED => 2153021962,
+ E_MBN_VOICE_CALL_IN_PROGRESS => 2153021963,
+ E_MBN_INVALID_CACHE => 2153021964,
+ E_MBN_NOT_REGISTERED => 2153021965,
+ E_MBN_PROVIDERS_NOT_FOUND => 2153021966,
+ E_MBN_PIN_NOT_SUPPORTED => 2153021967,
+ E_MBN_PIN_REQUIRED => 2153021968,
+ E_MBN_PIN_DISABLED => 2153021969,
+ E_MBN_FAILURE => 2153021970,
+ E_MBN_INVALID_PROFILE => 2153021976,
+ E_MBN_DEFAULT_PROFILE_EXIST => 2153021977,
+ E_MBN_SMS_ENCODING_NOT_SUPPORTED => 2153021984,
+ E_MBN_SMS_FILTER_NOT_SUPPORTED => 2153021985,
+ E_MBN_SMS_INVALID_MEMORY_INDEX => 2153021986,
+ E_MBN_SMS_LANG_NOT_SUPPORTED => 2153021987,
+ E_MBN_SMS_MEMORY_FAILURE => 2153021988,
+ E_MBN_SMS_NETWORK_TIMEOUT => 2153021989,
+ E_MBN_SMS_UNKNOWN_SMSC_ADDRESS => 2153021990,
+ E_MBN_SMS_FORMAT_NOT_SUPPORTED => 2153021991,
+ E_MBN_SMS_OPERATION_NOT_ALLOWED => 2153021992,
+ E_MBN_SMS_MEMORY_FULL => 2153021993,
+ EAS_E_POLICY_NOT_MANAGED_BY_OS => 2153054209,
+ EAS_E_POLICY_COMPLIANT_WITH_ACTIONS => 2153054210,
+ EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE => 2153054211,
+ EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD => 2153054212,
+ EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE => 2153054213,
+ EAS_E_USER_CANNOT_CHANGE_PASSWORD => 2153054214,
+ EAS_E_ADMINS_HAVE_BLANK_PASSWORD => 2153054215,
+ EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD => 2153054216,
+ EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD => 2153054217,
+ EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS => 2153054218,
+ EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD => 2153054219,
+ EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER => 2153054220,
+ EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD => 2153054221,
+ E_BLUETOOTH_ATT_INVALID_HANDLE => 2154102785,
+ E_BLUETOOTH_ATT_READ_NOT_PERMITTED => 2154102786,
+ E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED => 2154102787,
+ E_BLUETOOTH_ATT_INVALID_PDU => 2154102788,
+ E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION => 2154102789,
+ E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED => 2154102790,
+ E_BLUETOOTH_ATT_INVALID_OFFSET => 2154102791,
+ E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION => 2154102792,
+ E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL => 2154102793,
+ E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND => 2154102794,
+ E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG => 2154102795,
+ E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE => 2154102796,
+ E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH => 2154102797,
+ E_BLUETOOTH_ATT_UNLIKELY => 2154102798,
+ E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION => 2154102799,
+ E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE => 2154102800,
+ E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES => 2154102801,
+ E_BLUETOOTH_ATT_UNKNOWN_ERROR => 2154106880,
+ E_AUDIO_ENGINE_NODE_NOT_FOUND => 2154168321,
+ E_HDAUDIO_EMPTY_CONNECTION_LIST => 2154168322,
+ E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED => 2154168323,
+ E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED => 2154168324,
+ E_HDAUDIO_NULL_LINKED_LIST_ENTRY => 2154168325,
+ ERROR_VOLSNAP_BOOTFILE_NOT_VALID => 2156003329,
+ ERROR_VOLSNAP_ACTIVATION_TIMEOUT => 2156003330,
+ ERROR_VOLSNAP_NO_BYPASSIO_WITH_SNAPSHOT => 2156003331,
+ ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME => 2156068865,
+ ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS => 2156068866,
+ ERROR_TIERING_STORAGE_TIER_NOT_FOUND => 2156068867,
+ ERROR_TIERING_INVALID_FILE_ID => 2156068868,
+ ERROR_TIERING_WRONG_CLUSTER_NODE => 2156068869,
+ ERROR_TIERING_ALREADY_PROCESSING => 2156068870,
+ ERROR_TIERING_CANNOT_PIN_OBJECT => 2156068871,
+ ERROR_TIERING_FILE_IS_NOT_PINNED => 2156068872,
+ ERROR_NOT_A_TIERED_VOLUME => 2156068873,
+ ERROR_ATTRIBUTE_NOT_PRESENT => 2156068874,
+ ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN => 2159017985,
+ ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN => 2159017986,
+ ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN => 2159017987,
+ ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN => 2159017988,
+ ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID => 2162622465,
+ ERROR_SPACES_INTERNAL_ERROR => 2162622466,
+ ERROR_SPACES_RESILIENCY_TYPE_INVALID => 2162622467,
+ ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID => 2162622468,
+ ERROR_SPACES_DRIVE_REDUNDANCY_INVALID => 2162622470,
+ ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID => 2162622471,
+ ERROR_SPACES_PARITY_LAYOUT_INVALID => 2162622472,
+ ERROR_SPACES_INTERLEAVE_LENGTH_INVALID => 2162622473,
+ ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID => 2162622474,
+ ERROR_SPACES_NOT_ENOUGH_DRIVES => 2162622475,
+ ERROR_SPACES_EXTENDED_ERROR => 2162622476,
+ ERROR_SPACES_PROVISIONING_TYPE_INVALID => 2162622477,
+ ERROR_SPACES_ALLOCATION_SIZE_INVALID => 2162622478,
+ ERROR_SPACES_ENCLOSURE_AWARE_INVALID => 2162622479,
+ ERROR_SPACES_WRITE_CACHE_SIZE_INVALID => 2162622480,
+ ERROR_SPACES_NUMBER_OF_GROUPS_INVALID => 2162622481,
+ ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID => 2162622482,
+ ERROR_SPACES_ENTRY_INCOMPLETE => 2162622483,
+ ERROR_SPACES_ENTRY_INVALID => 2162622484,
+ ERROR_SPACES_UPDATE_COLUMN_STATE => 2162622485,
+ ERROR_SPACES_MAP_REQUIRED => 2162622486,
+ ERROR_SPACES_UNSUPPORTED_VERSION => 2162622487,
+ ERROR_SPACES_CORRUPT_METADATA => 2162622488,
+ ERROR_SPACES_DRT_FULL => 2162622489,
+ ERROR_SPACES_INCONSISTENCY => 2162622490,
+ ERROR_SPACES_LOG_NOT_READY => 2162622491,
+ ERROR_SPACES_NO_REDUNDANCY => 2162622492,
+ ERROR_SPACES_DRIVE_NOT_READY => 2162622493,
+ ERROR_SPACES_DRIVE_SPLIT => 2162622494,
+ ERROR_SPACES_DRIVE_LOST_DATA => 2162622495,
+ ERROR_SPACES_MARK_DIRTY => 2162622496,
+ ERROR_SPACES_FLUSH_METADATA => 2162622501,
+ ERROR_SPACES_CACHE_FULL => 2162622502,
+ E_INVALID_PROTOCOL_OPERATION => 2205548545,
+ E_INVALID_PROTOCOL_FORMAT => 2205548546,
+ E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED => 2205548547,
+ E_SUBPROTOCOL_NOT_SUPPORTED => 2205548548,
+ E_PROTOCOL_VERSION_NOT_SUPPORTED => 2205548549,
+ E_SYNCENGINE_FILE_SIZE_OVER_LIMIT => 2281877505,
+ E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA => 2281877506,
+ E_SYNCENGINE_UNSUPPORTED_FILE_NAME => 2281877507,
+ E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED => 2281877508,
+ E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR => 2281877509,
+ E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE => 2281877510,
+ E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN => 2281881602,
+ E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED => 2281881603,
+ E_SYNCENGINE_UNKNOWN_SERVICE_ERROR => 2281881604,
+ E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE => 2281881605,
+ E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE => 2281881606,
+ E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR => 2281881607,
+ E_SYNCENGINE_FOLDER_INACCESSIBLE => 2281885697,
+ E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME => 2281885698,
+ E_SYNCENGINE_UNSUPPORTED_MARKET => 2281885699,
+ E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED => 2281885700,
+ E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED => 2281885701,
+ E_SYNCENGINE_CLIENT_UPDATE_NEEDED => 2281885702,
+ E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED => 2281885703,
+ E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED => 2281885704,
+ E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT => 2281885705,
+ E_SYNCENGINE_STORAGE_SERVICE_BLOCKED => 2281885706,
+ E_SYNCENGINE_FOLDER_IN_REDIRECTION => 2281885707,
+ ERROR_IO_PREEMPTED => 2298544129,
ERROR_SEVERITY_ERROR => 3221225472,
EXCEPTION_ACCESS_VIOLATION => 3221225477,
EXCEPTION_IN_PAGE_ERROR => 3221225478,
@@ -2485,6 +3754,490 @@ BEGIN {
EXCEPTION_STACK_OVERFLOW => 3221225725,
ERROR_AUDITING_DISABLED => 3221815297,
ERROR_ALL_SIDS_FILTERED => 3221815298,
+ ERROR_BIZRULES_NOT_ENABLED => 3221815299,
+ ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS => 3223717352,
+ ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM => 3223719939,
+ ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK => 3223719940,
+ ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED => 3223719941,
+ ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK => 3223719942,
+ ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK => 3223719943,
+ ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA => 3223719944,
+ ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK => 3223719945,
+ ERROR_MONITOR_INVALID_MANUFACTURE_DATE => 3223719946,
+ ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER => 3223724032,
+ ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER => 3223724033,
+ ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER => 3223724034,
+ ERROR_GRAPHICS_ADAPTER_WAS_RESET => 3223724035,
+ ERROR_GRAPHICS_INVALID_DRIVER_MODEL => 3223724036,
+ ERROR_GRAPHICS_PRESENT_MODE_CHANGED => 3223724037,
+ ERROR_GRAPHICS_PRESENT_OCCLUDED => 3223724038,
+ ERROR_GRAPHICS_PRESENT_DENIED => 3223724039,
+ ERROR_GRAPHICS_CANNOTCOLORCONVERT => 3223724040,
+ ERROR_GRAPHICS_DRIVER_MISMATCH => 3223724041,
+ ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED => 3223724043,
+ ERROR_GRAPHICS_PRESENT_UNOCCLUDED => 3223724044,
+ ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE => 3223724045,
+ ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED => 3223724046,
+ ERROR_GRAPHICS_PRESENT_INVALID_WINDOW => 3223724047,
+ ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND => 3223724048,
+ ERROR_GRAPHICS_VAIL_STATE_CHANGED => 3223724049,
+ ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN => 3223724050,
+ ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED => 3223724051,
+ ERROR_GRAPHICS_VAIL_FAILED_TO_SEND_CREATE_SUPERWETINK_MESSAGE => 3223724052,
+ ERROR_GRAPHICS_VAIL_FAILED_TO_SEND_DESTROY_SUPERWETINK_MESSAGE => 3223724053,
+ ERROR_GRAPHICS_VAIL_FAILED_TO_SEND_COMPOSITION_WINDOW_DPI_MESSAGE => 3223724054,
+ ERROR_GRAPHICS_NO_VIDEO_MEMORY => 3223724288,
+ ERROR_GRAPHICS_CANT_LOCK_MEMORY => 3223724289,
+ ERROR_GRAPHICS_ALLOCATION_BUSY => 3223724290,
+ ERROR_GRAPHICS_TOO_MANY_REFERENCES => 3223724291,
+ ERROR_GRAPHICS_TRY_AGAIN_LATER => 3223724292,
+ ERROR_GRAPHICS_TRY_AGAIN_NOW => 3223724293,
+ ERROR_GRAPHICS_ALLOCATION_INVALID => 3223724294,
+ ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE => 3223724295,
+ ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED => 3223724296,
+ ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION => 3223724297,
+ ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE => 3223724304,
+ ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION => 3223724305,
+ ERROR_GRAPHICS_ALLOCATION_CLOSED => 3223724306,
+ ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE => 3223724307,
+ ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE => 3223724308,
+ ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE => 3223724309,
+ ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST => 3223724310,
+ ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE => 3223724544,
+ ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY => 3223724800,
+ ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED => 3223724801,
+ ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED => 3223724802,
+ ERROR_GRAPHICS_INVALID_VIDPN => 3223724803,
+ ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE => 3223724804,
+ ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET => 3223724805,
+ ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED => 3223724806,
+ ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET => 3223724808,
+ ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET => 3223724809,
+ ERROR_GRAPHICS_INVALID_FREQUENCY => 3223724810,
+ ERROR_GRAPHICS_INVALID_ACTIVE_REGION => 3223724811,
+ ERROR_GRAPHICS_INVALID_TOTAL_REGION => 3223724812,
+ ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE => 3223724816,
+ ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE => 3223724817,
+ ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET => 3223724818,
+ ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY => 3223724819,
+ ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET => 3223724820,
+ ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET => 3223724821,
+ ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET => 3223724822,
+ ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET => 3223724823,
+ ERROR_GRAPHICS_TARGET_ALREADY_IN_SET => 3223724824,
+ ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH => 3223724825,
+ ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY => 3223724826,
+ ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET => 3223724827,
+ ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE => 3223724828,
+ ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET => 3223724829,
+ ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET => 3223724831,
+ ERROR_GRAPHICS_STALE_MODESET => 3223724832,
+ ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET => 3223724833,
+ ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE => 3223724834,
+ ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN => 3223724835,
+ ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE => 3223724836,
+ ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION => 3223724837,
+ ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES => 3223724838,
+ ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY => 3223724839,
+ ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE => 3223724840,
+ ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET => 3223724841,
+ ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET => 3223724842,
+ ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR => 3223724843,
+ ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET => 3223724844,
+ ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET => 3223724845,
+ ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE => 3223724846,
+ ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE => 3223724847,
+ ERROR_GRAPHICS_RESOURCES_NOT_RELATED => 3223724848,
+ ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE => 3223724849,
+ ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE => 3223724850,
+ ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET => 3223724851,
+ ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER => 3223724852,
+ ERROR_GRAPHICS_NO_VIDPNMGR => 3223724853,
+ ERROR_GRAPHICS_NO_ACTIVE_VIDPN => 3223724854,
+ ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY => 3223724855,
+ ERROR_GRAPHICS_MONITOR_NOT_CONNECTED => 3223724856,
+ ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY => 3223724857,
+ ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE => 3223724858,
+ ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE => 3223724859,
+ ERROR_GRAPHICS_INVALID_STRIDE => 3223724860,
+ ERROR_GRAPHICS_INVALID_PIXELFORMAT => 3223724861,
+ ERROR_GRAPHICS_INVALID_COLORBASIS => 3223724862,
+ ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE => 3223724863,
+ ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY => 3223724864,
+ ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT => 3223724865,
+ ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE => 3223724866,
+ ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN => 3223724867,
+ ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL => 3223724868,
+ ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION => 3223724869,
+ ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED => 3223724870,
+ ERROR_GRAPHICS_INVALID_GAMMA_RAMP => 3223724871,
+ ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED => 3223724872,
+ ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED => 3223724873,
+ ERROR_GRAPHICS_MODE_NOT_IN_MODESET => 3223724874,
+ ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON => 3223724877,
+ ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE => 3223724878,
+ ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE => 3223724879,
+ ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS => 3223724880,
+ ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING => 3223724882,
+ ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED => 3223724883,
+ ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS => 3223724884,
+ ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT => 3223724885,
+ ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM => 3223724886,
+ ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN => 3223724887,
+ ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT => 3223724888,
+ ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED => 3223724889,
+ ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION => 3223724890,
+ ERROR_GRAPHICS_INVALID_CLIENT_TYPE => 3223724891,
+ ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET => 3223724892,
+ ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED => 3223725056,
+ ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED => 3223725057,
+ ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER => 3223725104,
+ ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED => 3223725105,
+ ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED => 3223725106,
+ ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY => 3223725107,
+ ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED => 3223725108,
+ ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON => 3223725109,
+ ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE => 3223725110,
+ ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER => 3223725112,
+ ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED => 3223725115,
+ ERROR_GRAPHICS_OPM_NOT_SUPPORTED => 3223725312,
+ ERROR_GRAPHICS_COPP_NOT_SUPPORTED => 3223725313,
+ ERROR_GRAPHICS_UAB_NOT_SUPPORTED => 3223725314,
+ ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS => 3223725315,
+ ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST => 3223725317,
+ ERROR_GRAPHICS_OPM_INTERNAL_ERROR => 3223725323,
+ ERROR_GRAPHICS_OPM_INVALID_HANDLE => 3223725324,
+ ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH => 3223725326,
+ ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED => 3223725327,
+ ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED => 3223725328,
+ ERROR_GRAPHICS_PVP_HFS_FAILED => 3223725329,
+ ERROR_GRAPHICS_OPM_INVALID_SRM => 3223725330,
+ ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP => 3223725331,
+ ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP => 3223725332,
+ ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA => 3223725333,
+ ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET => 3223725334,
+ ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH => 3223725335,
+ ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE => 3223725336,
+ ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS => 3223725338,
+ ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS => 3223725339,
+ ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS => 3223725340,
+ ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST => 3223725341,
+ ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR => 3223725342,
+ ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS => 3223725343,
+ ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED => 3223725344,
+ ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST => 3223725345,
+ ERROR_GRAPHICS_I2C_NOT_SUPPORTED => 3223725440,
+ ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST => 3223725441,
+ ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA => 3223725442,
+ ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA => 3223725443,
+ ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED => 3223725444,
+ ERROR_GRAPHICS_DDCCI_INVALID_DATA => 3223725445,
+ ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE => 3223725446,
+ ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING => 3223725447,
+ ERROR_GRAPHICS_MCA_INTERNAL_ERROR => 3223725448,
+ ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND => 3223725449,
+ ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH => 3223725450,
+ ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM => 3223725451,
+ ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE => 3223725452,
+ ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS => 3223725453,
+ ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE => 3223725528,
+ ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION => 3223725529,
+ ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION => 3223725530,
+ ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH => 3223725531,
+ ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION => 3223725532,
+ ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED => 3223725534,
+ ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE => 3223725535,
+ ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED => 3223725536,
+ ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME => 3223725537,
+ ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP => 3223725538,
+ ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED => 3223725539,
+ ERROR_GRAPHICS_INVALID_POINTER => 3223725540,
+ ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE => 3223725541,
+ ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL => 3223725542,
+ ERROR_GRAPHICS_INTERNAL_ERROR => 3223725543,
+ ERROR_NDIS_OFFLOAD_POLICY => 3224637455,
+ ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED => 3224637458,
+ ERROR_NDIS_OFFLOAD_PATH_REJECTED => 3224637459,
+ ERROR_HV_INVALID_HYPERCALL_CODE => 3224698882,
+ ERROR_HV_INVALID_HYPERCALL_INPUT => 3224698883,
+ ERROR_HV_INVALID_ALIGNMENT => 3224698884,
+ ERROR_HV_INVALID_PARAMETER => 3224698885,
+ ERROR_HV_ACCESS_DENIED => 3224698886,
+ ERROR_HV_INVALID_PARTITION_STATE => 3224698887,
+ ERROR_HV_OPERATION_DENIED => 3224698888,
+ ERROR_HV_UNKNOWN_PROPERTY => 3224698889,
+ ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE => 3224698890,
+ ERROR_HV_INSUFFICIENT_MEMORY => 3224698891,
+ ERROR_HV_PARTITION_TOO_DEEP => 3224698892,
+ ERROR_HV_INVALID_PARTITION_ID => 3224698893,
+ ERROR_HV_INVALID_VP_INDEX => 3224698894,
+ ERROR_HV_INVALID_PORT_ID => 3224698897,
+ ERROR_HV_INVALID_CONNECTION_ID => 3224698898,
+ ERROR_HV_INSUFFICIENT_BUFFERS => 3224698899,
+ ERROR_HV_NOT_ACKNOWLEDGED => 3224698900,
+ ERROR_HV_INVALID_VP_STATE => 3224698901,
+ ERROR_HV_ACKNOWLEDGED => 3224698902,
+ ERROR_HV_INVALID_SAVE_RESTORE_STATE => 3224698903,
+ ERROR_HV_INVALID_SYNIC_STATE => 3224698904,
+ ERROR_HV_OBJECT_IN_USE => 3224698905,
+ ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO => 3224698906,
+ ERROR_HV_NO_DATA => 3224698907,
+ ERROR_HV_INACTIVE => 3224698908,
+ ERROR_HV_NO_RESOURCES => 3224698909,
+ ERROR_HV_FEATURE_UNAVAILABLE => 3224698910,
+ ERROR_HV_INSUFFICIENT_BUFFER => 3224698931,
+ ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS => 3224698936,
+ ERROR_HV_CPUID_FEATURE_VALIDATION => 3224698940,
+ ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION => 3224698941,
+ ERROR_HV_PROCESSOR_STARTUP_TIMEOUT => 3224698942,
+ ERROR_HV_SMX_ENABLED => 3224698943,
+ ERROR_HV_INVALID_LP_INDEX => 3224698945,
+ ERROR_HV_INVALID_REGISTER_VALUE => 3224698960,
+ ERROR_HV_INVALID_VTL_STATE => 3224698961,
+ ERROR_HV_NX_NOT_DETECTED => 3224698965,
+ ERROR_HV_INVALID_DEVICE_ID => 3224698967,
+ ERROR_HV_INVALID_DEVICE_STATE => 3224698968,
+ ERROR_HV_PAGE_REQUEST_INVALID => 3224698976,
+ ERROR_HV_INVALID_CPU_GROUP_ID => 3224698991,
+ ERROR_HV_INVALID_CPU_GROUP_STATE => 3224698992,
+ ERROR_HV_OPERATION_FAILED => 3224698993,
+ ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE => 3224698994,
+ ERROR_HV_INSUFFICIENT_ROOT_MEMORY => 3224698995,
+ ERROR_HV_EVENT_BUFFER_ALREADY_FREED => 3224698996,
+ ERROR_HV_INSUFFICIENT_CONTIGUOUS_MEMORY => 3224698997,
+ ERROR_HV_DEVICE_NOT_IN_DOMAIN => 3224698998,
+ ERROR_HV_NESTED_VM_EXIT => 3224698999,
+ ERROR_HV_MSR_ACCESS_FAILED => 3224699008,
+ ERROR_HV_NOT_PRESENT => 3224702976,
+ ERROR_VID_DUPLICATE_HANDLER => 3224829953,
+ ERROR_VID_TOO_MANY_HANDLERS => 3224829954,
+ ERROR_VID_QUEUE_FULL => 3224829955,
+ ERROR_VID_HANDLER_NOT_PRESENT => 3224829956,
+ ERROR_VID_INVALID_OBJECT_NAME => 3224829957,
+ ERROR_VID_PARTITION_NAME_TOO_LONG => 3224829958,
+ ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG => 3224829959,
+ ERROR_VID_PARTITION_ALREADY_EXISTS => 3224829960,
+ ERROR_VID_PARTITION_DOES_NOT_EXIST => 3224829961,
+ ERROR_VID_PARTITION_NAME_NOT_FOUND => 3224829962,
+ ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS => 3224829963,
+ ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT => 3224829964,
+ ERROR_VID_MB_STILL_REFERENCED => 3224829965,
+ ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED => 3224829966,
+ ERROR_VID_INVALID_NUMA_SETTINGS => 3224829967,
+ ERROR_VID_INVALID_NUMA_NODE_INDEX => 3224829968,
+ ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED => 3224829969,
+ ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE => 3224829970,
+ ERROR_VID_PAGE_RANGE_OVERFLOW => 3224829971,
+ ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE => 3224829972,
+ ERROR_VID_INVALID_GPA_RANGE_HANDLE => 3224829973,
+ ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE => 3224829974,
+ ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED => 3224829975,
+ ERROR_VID_INVALID_PPM_HANDLE => 3224829976,
+ ERROR_VID_MBPS_ARE_LOCKED => 3224829977,
+ ERROR_VID_MESSAGE_QUEUE_CLOSED => 3224829978,
+ ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED => 3224829979,
+ ERROR_VID_STOP_PENDING => 3224829980,
+ ERROR_VID_INVALID_PROCESSOR_STATE => 3224829981,
+ ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT => 3224829982,
+ ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED => 3224829983,
+ ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET => 3224829984,
+ ERROR_VID_MMIO_RANGE_DESTROYED => 3224829985,
+ ERROR_VID_INVALID_CHILD_GPA_PAGE_SET => 3224829986,
+ ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED => 3224829987,
+ ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL => 3224829988,
+ ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE => 3224829989,
+ ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT => 3224829990,
+ ERROR_VID_SAVED_STATE_CORRUPT => 3224829991,
+ ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM => 3224829992,
+ ERROR_VID_SAVED_STATE_INCOMPATIBLE => 3224829993,
+ ERROR_VID_VTL_ACCESS_DENIED => 3224829994,
+ ERROR_VMCOMPUTE_TERMINATED_DURING_START => 3224830208,
+ ERROR_VMCOMPUTE_IMAGE_MISMATCH => 3224830209,
+ ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED => 3224830210,
+ ERROR_VMCOMPUTE_OPERATION_PENDING => 3224830211,
+ ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS => 3224830212,
+ ERROR_VMCOMPUTE_INVALID_STATE => 3224830213,
+ ERROR_VMCOMPUTE_UNEXPECTED_EXIT => 3224830214,
+ ERROR_VMCOMPUTE_TERMINATED => 3224830215,
+ ERROR_VMCOMPUTE_CONNECT_FAILED => 3224830216,
+ ERROR_VMCOMPUTE_TIMEOUT => 3224830217,
+ ERROR_VMCOMPUTE_CONNECTION_CLOSED => 3224830218,
+ ERROR_VMCOMPUTE_UNKNOWN_MESSAGE => 3224830219,
+ ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION => 3224830220,
+ ERROR_VMCOMPUTE_INVALID_JSON => 3224830221,
+ ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND => 3224830222,
+ ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS => 3224830223,
+ ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED => 3224830224,
+ ERROR_VMCOMPUTE_PROTOCOL_ERROR => 3224830225,
+ ERROR_VMCOMPUTE_INVALID_LAYER => 3224830226,
+ ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED => 3224830227,
+ ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND => 3224830464,
+ ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND => 3224830976,
+ ERROR_VSMB_SAVED_STATE_CORRUPT => 3224830977,
+ ERROR_VOLMGR_DATABASE_FULL => 3224895489,
+ ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED => 3224895490,
+ ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC => 3224895491,
+ ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED => 3224895492,
+ ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME => 3224895493,
+ ERROR_VOLMGR_DISK_DUPLICATE => 3224895494,
+ ERROR_VOLMGR_DISK_DYNAMIC => 3224895495,
+ ERROR_VOLMGR_DISK_ID_INVALID => 3224895496,
+ ERROR_VOLMGR_DISK_INVALID => 3224895497,
+ ERROR_VOLMGR_DISK_LAST_VOTER => 3224895498,
+ ERROR_VOLMGR_DISK_LAYOUT_INVALID => 3224895499,
+ ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS => 3224895500,
+ ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED => 3224895501,
+ ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL => 3224895502,
+ ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS => 3224895503,
+ ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS => 3224895504,
+ ERROR_VOLMGR_DISK_MISSING => 3224895505,
+ ERROR_VOLMGR_DISK_NOT_EMPTY => 3224895506,
+ ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE => 3224895507,
+ ERROR_VOLMGR_DISK_REVECTORING_FAILED => 3224895508,
+ ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID => 3224895509,
+ ERROR_VOLMGR_DISK_SET_NOT_CONTAINED => 3224895510,
+ ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS => 3224895511,
+ ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES => 3224895512,
+ ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED => 3224895513,
+ ERROR_VOLMGR_EXTENT_ALREADY_USED => 3224895514,
+ ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS => 3224895515,
+ ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION => 3224895516,
+ ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED => 3224895517,
+ ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION => 3224895518,
+ ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH => 3224895519,
+ ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED => 3224895520,
+ ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID => 3224895521,
+ ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS => 3224895522,
+ ERROR_VOLMGR_MEMBER_IN_SYNC => 3224895523,
+ ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE => 3224895524,
+ ERROR_VOLMGR_MEMBER_INDEX_INVALID => 3224895525,
+ ERROR_VOLMGR_MEMBER_MISSING => 3224895526,
+ ERROR_VOLMGR_MEMBER_NOT_DETACHED => 3224895527,
+ ERROR_VOLMGR_MEMBER_REGENERATING => 3224895528,
+ ERROR_VOLMGR_ALL_DISKS_FAILED => 3224895529,
+ ERROR_VOLMGR_NO_REGISTERED_USERS => 3224895530,
+ ERROR_VOLMGR_NO_SUCH_USER => 3224895531,
+ ERROR_VOLMGR_NOTIFICATION_RESET => 3224895532,
+ ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID => 3224895533,
+ ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID => 3224895534,
+ ERROR_VOLMGR_PACK_DUPLICATE => 3224895535,
+ ERROR_VOLMGR_PACK_ID_INVALID => 3224895536,
+ ERROR_VOLMGR_PACK_INVALID => 3224895537,
+ ERROR_VOLMGR_PACK_NAME_INVALID => 3224895538,
+ ERROR_VOLMGR_PACK_OFFLINE => 3224895539,
+ ERROR_VOLMGR_PACK_HAS_QUORUM => 3224895540,
+ ERROR_VOLMGR_PACK_WITHOUT_QUORUM => 3224895541,
+ ERROR_VOLMGR_PARTITION_STYLE_INVALID => 3224895542,
+ ERROR_VOLMGR_PARTITION_UPDATE_FAILED => 3224895543,
+ ERROR_VOLMGR_PLEX_IN_SYNC => 3224895544,
+ ERROR_VOLMGR_PLEX_INDEX_DUPLICATE => 3224895545,
+ ERROR_VOLMGR_PLEX_INDEX_INVALID => 3224895546,
+ ERROR_VOLMGR_PLEX_LAST_ACTIVE => 3224895547,
+ ERROR_VOLMGR_PLEX_MISSING => 3224895548,
+ ERROR_VOLMGR_PLEX_REGENERATING => 3224895549,
+ ERROR_VOLMGR_PLEX_TYPE_INVALID => 3224895550,
+ ERROR_VOLMGR_PLEX_NOT_RAID5 => 3224895551,
+ ERROR_VOLMGR_PLEX_NOT_SIMPLE => 3224895552,
+ ERROR_VOLMGR_STRUCTURE_SIZE_INVALID => 3224895553,
+ ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS => 3224895554,
+ ERROR_VOLMGR_TRANSACTION_IN_PROGRESS => 3224895555,
+ ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE => 3224895556,
+ ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK => 3224895557,
+ ERROR_VOLMGR_VOLUME_ID_INVALID => 3224895558,
+ ERROR_VOLMGR_VOLUME_LENGTH_INVALID => 3224895559,
+ ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE => 3224895560,
+ ERROR_VOLMGR_VOLUME_NOT_MIRRORED => 3224895561,
+ ERROR_VOLMGR_VOLUME_NOT_RETAINED => 3224895562,
+ ERROR_VOLMGR_VOLUME_OFFLINE => 3224895563,
+ ERROR_VOLMGR_VOLUME_RETAINED => 3224895564,
+ ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID => 3224895565,
+ ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE => 3224895566,
+ ERROR_VOLMGR_BAD_BOOT_DISK => 3224895567,
+ ERROR_VOLMGR_PACK_CONFIG_OFFLINE => 3224895568,
+ ERROR_VOLMGR_PACK_CONFIG_ONLINE => 3224895569,
+ ERROR_VOLMGR_NOT_PRIMARY_PACK => 3224895570,
+ ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED => 3224895571,
+ ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID => 3224895572,
+ ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID => 3224895573,
+ ERROR_VOLMGR_VOLUME_MIRRORED => 3224895574,
+ ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED => 3224895575,
+ ERROR_VOLMGR_NO_VALID_LOG_COPIES => 3224895576,
+ ERROR_VOLMGR_PRIMARY_PACK_PRESENT => 3224895577,
+ ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID => 3224895578,
+ ERROR_VOLMGR_MIRROR_NOT_SUPPORTED => 3224895579,
+ ERROR_VOLMGR_RAID5_NOT_SUPPORTED => 3224895580,
+ ERROR_BCD_TOO_MANY_ELEMENTS => 3224961026,
+ ERROR_VHD_DRIVE_FOOTER_MISSING => 3225026561,
+ ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH => 3225026562,
+ ERROR_VHD_DRIVE_FOOTER_CORRUPT => 3225026563,
+ ERROR_VHD_FORMAT_UNKNOWN => 3225026564,
+ ERROR_VHD_FORMAT_UNSUPPORTED_VERSION => 3225026565,
+ ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH => 3225026566,
+ ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION => 3225026567,
+ ERROR_VHD_SPARSE_HEADER_CORRUPT => 3225026568,
+ ERROR_VHD_BLOCK_ALLOCATION_FAILURE => 3225026569,
+ ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT => 3225026570,
+ ERROR_VHD_INVALID_BLOCK_SIZE => 3225026571,
+ ERROR_VHD_BITMAP_MISMATCH => 3225026572,
+ ERROR_VHD_PARENT_VHD_NOT_FOUND => 3225026573,
+ ERROR_VHD_CHILD_PARENT_ID_MISMATCH => 3225026574,
+ ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH => 3225026575,
+ ERROR_VHD_METADATA_READ_FAILURE => 3225026576,
+ ERROR_VHD_METADATA_WRITE_FAILURE => 3225026577,
+ ERROR_VHD_INVALID_SIZE => 3225026578,
+ ERROR_VHD_INVALID_FILE_SIZE => 3225026579,
+ ERROR_VIRTDISK_PROVIDER_NOT_FOUND => 3225026580,
+ ERROR_VIRTDISK_NOT_VIRTUAL_DISK => 3225026581,
+ ERROR_VHD_PARENT_VHD_ACCESS_DENIED => 3225026582,
+ ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH => 3225026583,
+ ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED => 3225026584,
+ ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT => 3225026585,
+ ERROR_VIRTUAL_DISK_LIMITATION => 3225026586,
+ ERROR_VHD_INVALID_TYPE => 3225026587,
+ ERROR_VHD_INVALID_STATE => 3225026588,
+ ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE => 3225026589,
+ ERROR_VIRTDISK_DISK_ALREADY_OWNED => 3225026590,
+ ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE => 3225026591,
+ ERROR_CTLOG_TRACKING_NOT_INITIALIZED => 3225026592,
+ ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE => 3225026593,
+ ERROR_CTLOG_VHD_CHANGED_OFFLINE => 3225026594,
+ ERROR_CTLOG_INVALID_TRACKING_STATE => 3225026595,
+ ERROR_CTLOG_INCONSISTENT_TRACKING_FILE => 3225026596,
+ ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA => 3225026597,
+ ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE => 3225026598,
+ ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE => 3225026599,
+ ERROR_VHD_METADATA_FULL => 3225026600,
+ ERROR_VHD_INVALID_CHANGE_TRACKING_ID => 3225026601,
+ ERROR_VHD_CHANGE_TRACKING_DISABLED => 3225026602,
+ ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION => 3225026608,
+ ERROR_SVHDX_ERROR_STORED => 3227254784,
+ ERROR_SVHDX_ERROR_NOT_AVAILABLE => 3227320064,
+ ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE => 3227320065,
+ ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED => 3227320066,
+ ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED => 3227320067,
+ ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED => 3227320068,
+ ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED => 3227320069,
+ ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED => 3227320070,
+ ERROR_SVHDX_RESERVATION_CONFLICT => 3227320071,
+ ERROR_SVHDX_WRONG_FILE_TYPE => 3227320072,
+ ERROR_SVHDX_VERSION_MISMATCH => 3227320073,
+ ERROR_VHD_SHARED => 3227320074,
+ ERROR_SVHDX_NO_INITIATOR => 3227320075,
+ ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND => 3227320076,
+ ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP => 3227320320,
+ ERROR_SMB_BAD_CLUSTER_DIALECT => 3227320321,
+ ERROR_SMB_NO_SIGNING_ALGORITHM_OVERLAP => 3227320322,
+ ERROR_SECCORE_INVALID_COMMAND => 3236429824,
+ ERROR_NO_APPLICABLE_APP_LICENSES_FOUND => 3236560897,
+ ERROR_CLIP_LICENSE_NOT_FOUND => 3236560898,
+ ERROR_CLIP_DEVICE_LICENSE_MISSING => 3236560899,
+ ERROR_CLIP_LICENSE_INVALID_SIGNATURE => 3236560900,
+ ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID => 3236560901,
+ ERROR_CLIP_LICENSE_EXPIRED => 3236560902,
+ ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE => 3236560903,
+ ERROR_CLIP_LICENSE_NOT_SIGNED => 3236560904,
+ ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE => 3236560905,
+ ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH => 3236560906,
ENUM_ALL_CALENDARS => 4294967295,
ERROR_UNHANDLED_ERROR => 4294967295,
);
@@ -2525,17 +4278,17 @@ our %EXPORT_TAGS = (
ETXTBSY EUSERS EWOULDBLOCK EXDEV
)],
WINSOCK => [qw(
- WSAEINVALIDPROCTABLE WSAEWOULDBLOCK WSAETOOMANYREFS WSAEMSGSIZE
- WSAENOBUFS WSAEHOSTUNREACH WSAEREMOTE WSAENETDOWN WSAENOTCONN
- WSAEAFNOSUPPORT WSAEPROTONOSUPPORT WSAEINVAL WSAEPROVIDERFAILEDINIT
- WSAECANCELLED WSAEDQUOT WSAEREFUSED WSAESHUTDOWN WSAEUSERS
- WSAECONNABORTED WSAESOCKTNOSUPPORT WSAEADDRNOTAVAIL WSAEINTR WSAESTALE
- WSAENOMORE WSAENETRESET WSAEISCONN WSAEINPROGRESS WSAEDISCON WSAELOOP
- WSAEALREADY WSAEPROTOTYPE WSAEOPNOTSUPP WSAENAMETOOLONG WSAENOTEMPTY
- WSAEADDRINUSE WSAEPROCLIM WSAEPFNOSUPPORT WSAEACCES WSAEFAULT
- WSAEINVALIDPROVIDER WSAEBADF WSAEHOSTDOWN WSAENOTSOCK WSAECONNREFUSED
- WSAEMFILE WSAECONNRESET WSAEDESTADDRREQ WSAETIMEDOUT WSAENOPROTOOPT
- WSAENETUNREACH
+ WSAEACCES WSAEADDRINUSE WSAEADDRNOTAVAIL WSAEAFNOSUPPORT WSAEALREADY
+ WSAEBADF WSAECANCELLED WSAECONNABORTED WSAECONNREFUSED WSAECONNRESET
+ WSAEDESTADDRREQ WSAEDISCON WSAEDQUOT WSAEFAULT WSAEHOSTDOWN
+ WSAEHOSTUNREACH WSAEINPROGRESS WSAEINTR WSAEINVAL WSAEINVALIDPROCTABLE
+ WSAEINVALIDPROVIDER WSAEISCONN WSAELOOP WSAEMFILE WSAEMSGSIZE
+ WSAENAMETOOLONG WSAENETDOWN WSAENETRESET WSAENETUNREACH WSAENOBUFS
+ WSAENOMORE WSAENOPROTOOPT WSAENOTCONN WSAENOTEMPTY WSAENOTSOCK
+ WSAEOPNOTSUPP WSAEPFNOSUPPORT WSAEPROCLIM WSAEPROTONOSUPPORT
+ WSAEPROTOTYPE WSAEPROVIDERFAILEDINIT WSAEREFUSED WSAEREMOTE
+ WSAESHUTDOWN WSAESOCKTNOSUPPORT WSAESTALE WSAETIMEDOUT WSAETOOMANYREFS
+ WSAEUSERS WSAEWOULDBLOCK
)],
);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm
index 28a6873d9f..ab3cfd7fbb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm
@@ -6,7 +6,7 @@ no strict 'refs';
our $Debug = 0;
our $ExportLevel = 0;
our $Verbose ||= 0;
-our $VERSION = '5.76';
+our $VERSION = '5.77';
our %Cache;
sub as_heavy {
@@ -102,14 +102,20 @@ Exporter - Implements default import method for modules
In module F<YourModule.pm>:
package YourModule;
+ use Exporter 'import';
+ our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
+
+or
+
+ package YourModule;
require Exporter;
- our @ISA = qw(Exporter);
+ our @ISA = qw(Exporter); # inherit all of Exporter's methods
our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
or
package YourModule;
- use Exporter 'import'; # gives you Exporter's import() method directly
+ use parent 'Exporter'; # inherit all of Exporter's methods
our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
In other files which wish to use C<YourModule>:
@@ -143,8 +149,8 @@ symbols can represent functions, scalars, arrays, hashes, or typeglobs.
The symbols must be given by full name with the exception that the
ampersand in front of a function is optional, e.g.
- our @EXPORT = qw(afunc $scalar @array); # afunc is a function
- our @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc
+ our @EXPORT = qw(afunc $scalar @array); # afunc is a function
+ our @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc
If you are only exporting function names it is recommended to omit the
ampersand, as the implementation is faster this way.
@@ -309,7 +315,7 @@ Note: Be careful not to modify C<@_> at all before you call export_to_level
By including Exporter in your C<@ISA> you inherit an Exporter's import() method
but you also inherit several other helper methods which you probably don't
-want. To avoid this you can do:
+want and complicate the inheritance tree. To avoid this you can do:
package YourModule;
use Exporter qw(import);
@@ -473,8 +479,8 @@ This may happen for instance with mutually recursive
modules, which are affected by the time the relevant
constructions are executed.
-The ideal (but a bit ugly) way to never have to think
-about that is to use C<BEGIN> blocks. So the first part
+The ideal way to never have to think about that is to use
+C<BEGIN> blocks and the simple import method. So the first part
of the L</SYNOPSIS> code could be rewritten as:
package YourModule;
@@ -482,16 +488,27 @@ of the L</SYNOPSIS> code could be rewritten as:
use strict;
use warnings;
- our (@ISA, @EXPORT_OK);
+ use Exporter 'import';
+ BEGIN {
+ our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
+ }
+
+Or if you need to inherit from Exporter:
+
+ package YourModule;
+
+ use strict;
+ use warnings;
+
BEGIN {
- require Exporter;
- @ISA = qw(Exporter);
- @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
+ require Exporter;
+ our @ISA = qw(Exporter); # inherit all of Exporter's methods
+ our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request
}
The C<BEGIN> will assure that the loading of F<Exporter.pm>
and the assignments to C<@ISA> and C<@EXPORT_OK> happen
-immediately, leaving no room for something to get awry
+immediately like C<use>, leaving no room for something to get awry
or just plain wrong.
With respect to loading C<Exporter> and inheriting, there
@@ -502,7 +519,7 @@ are alternatives with the use of modules like C<base> and C<parent>.
use parent qw(Exporter);
Any of these statements are nice replacements for
-C<BEGIN { require Exporter; @ISA = qw(Exporter); }>
+C<BEGIN { require Exporter; our @ISA = qw(Exporter); }>
with the same compile-time effect. The basic difference
is that C<base> code interacts with declared C<fields>
while C<parent> is a streamlined version of the older
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm
index 404b4c122b..338aae35eb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm
@@ -4,7 +4,7 @@ use strict;
no strict 'refs';
# On one line so MakeMaker will see it.
-our $VERSION = '5.76';
+our $VERSION = '5.77';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm
index e470d41676..705d30af03 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm
@@ -7,7 +7,7 @@ use Perl::OSType qw/os_type/;
use warnings;
use strict;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA;
# We only use this once - don't waste a symbol table entry on it.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm
index 8ee248dfab..0494cafd95 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm
@@ -9,7 +9,7 @@ use Text::ParseWords;
use IPC::Cmd qw(can_run);
use File::Temp qw(tempfile);
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
# More details about C/C++ compilers:
# http://developers.sun.com/sunstudio/documentation/product/compiler.jsp
@@ -335,10 +335,24 @@ sub _do_link {
return wantarray ? ($out, @temp_files) : $out;
}
+sub quote_literal {
+ my ($self, $string) = @_;
+
+ if (length $string && $string !~ /[^a-zA-Z0-9,._+@%\/-]/) {
+ return $string;
+ }
+
+ $string =~ s{'}{'\\''}g;
+
+ return "'$string'";
+}
sub do_system {
my ($self, @cmd) = @_;
- print "@cmd\n" if !$self->{quiet};
+ if (!$self->{quiet}) {
+ my $full = join ' ', map $self->quote_literal($_), @cmd;
+ print $full . "\n";
+ }
return !system(@cmd);
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm
index 590068ca6f..2eaf591bbe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm
@@ -4,7 +4,7 @@ use warnings;
use strict;
use ExtUtils::CBuilder::Base;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Base);
sub link_executable {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm
index d9b1fbd571..d09a608fef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm
@@ -4,7 +4,7 @@ use warnings;
use strict;
use ExtUtils::CBuilder::Base;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Base);
use File::Spec::Functions qw(catfile catdir);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm
index b81384f629..2fffc83d13 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm
@@ -8,7 +8,7 @@ use File::Spec;
use ExtUtils::CBuilder::Base;
use IO::File;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Base);
=begin comment
@@ -51,6 +51,22 @@ sub _compiler_type {
: 'GCC');
}
+# native quoting, not shell quoting
+sub quote_literal {
+ my ($self, $string) = @_;
+
+ # some of these characters don't need to be quoted for "native" quoting, but
+ # quote them anyway so they are more likely to make it through cmd.exe
+ if (length $string && $string !~ /[ \t\n\x0b"|<>%]/) {
+ return $string;
+ }
+
+ $string =~ s{(\\*)(?="|\z)}{$1$1}g;
+ $string =~ s{"}{\\"}g;
+
+ return qq{"$string"};
+}
+
sub split_like_shell {
# Since Windows will pass the whole command string (not an argument
# array) to the target program and make the program parse it itself,
@@ -65,10 +81,15 @@ sub split_like_shell {
sub do_system {
# See above
my $self = shift;
- my $cmd = join(" ",
- grep length,
- map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a}
- grep defined, @_);
+ my $cmd = join ' ',
+ grep length,
+ map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a}
+ grep defined, @_;
+
+ if (!$self->{quiet}) {
+ print $cmd . "\n";
+ }
+ local $self->{quiet} = 1;
return $self->SUPER::do_system($cmd);
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
index 657241a214..6ab48ba88f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
@@ -1,6 +1,6 @@
package ExtUtils::CBuilder::Platform::Windows::BCC;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
use strict;
use warnings;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
index 52664c7083..c3eb7a0e63 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
@@ -1,6 +1,6 @@
package ExtUtils::CBuilder::Platform::Windows::GCC;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
use warnings;
use strict;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
index 6cbcc9b276..ce5e99f082 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
@@ -1,6 +1,6 @@
package ExtUtils::CBuilder::Platform::Windows::MSVC;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
use warnings;
use strict;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm
index 2ef8b38c06..35de7fa89c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm
@@ -5,7 +5,7 @@ use strict;
use ExtUtils::CBuilder::Platform::Unix;
use File::Spec;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm
index 8500ab93e3..44ad646f1f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm
@@ -6,7 +6,7 @@ use File::Spec;
use ExtUtils::CBuilder::Platform::Unix;
use Config;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
# The Android linker will not recognize symbols from
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
index 3c8beacdeb..14d814ca5a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
@@ -5,7 +5,7 @@ use strict;
use File::Spec;
use ExtUtils::CBuilder::Platform::Unix;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
# TODO: If a specific exe_file name is requested, if the exe created
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm
index e050e32ae7..7e8ae7a4c7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm
@@ -3,10 +3,14 @@ package ExtUtils::CBuilder::Platform::darwin;
use warnings;
use strict;
use ExtUtils::CBuilder::Platform::Unix;
+use Config;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+my ($osver) = split /\./, $Config{osvers};
+my $apple_cor = $^X eq "/usr/bin/perl" && $osver >= 18;
+
sub compile {
my $self = shift;
my $cf = $self->{config};
@@ -22,5 +26,18 @@ sub compile {
$self->SUPER::compile(@_);
}
+sub arg_include_dirs {
+ my $self = shift;
+
+ if ($apple_cor) {
+ my $perl_inc = $self->perl_inc;
+ return map {
+ $_ eq $perl_inc ? ("-iwithsysroot", $_ ) : "-I$_"
+ } @_;
+ }
+ else {
+ return $self->SUPER::arg_include_dirs(@_);
+ }
+}
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
index 971cf93ff5..6b97095b51 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
@@ -5,7 +5,7 @@ use strict;
use ExtUtils::CBuilder::Platform::Unix;
use File::Spec;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub link_executable {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm
index 58d316b57e..a7d11dceea 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm
@@ -4,7 +4,7 @@ use warnings;
use strict;
use ExtUtils::CBuilder::Platform::Unix;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm
index e36453608e..39cf5f2ffd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm
@@ -4,11 +4,10 @@ use 5.00503;
use strict;
use warnings;
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 = '7.62';
+our @ISA = qw(Exporter);
+our @EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
+ dos2unix);
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
my $Is_VMS = $^O eq 'VMS';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
index 62fd8682d3..52198855ef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
+++ b/systems/texlive/tlnet/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 = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
my $Is_VMS = $^O eq 'VMS';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm
index bd0d8a784b..2500f8dcff 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm
@@ -5,7 +5,7 @@ use vars qw($VERSION);
use Carp;
use Text::Wrap;
use ExtUtils::Constant::Utils qw(C_stringify perl_stringify);
-$VERSION = '0.06';
+$VERSION = '0.07';
use constant is_perl56 => ($] < 5.007 && $] > 5.005_50);
@@ -716,7 +716,7 @@ sub normalise_items
# tr///c is broken on 5.6.1 for utf8, so my original tr/\0-\177//c
# doesn't work. Upgrade to 5.8
# if ($name !~ tr/\0-\177//c || $] < 5.005_50) {
- if ($name =~ tr/\0-\177// == length $name || $] < 5.005_50
+ if ($name !~ /[[:^ascii:]]/ || $] < 5.005_50
|| $args->{disable_utf8_duplication}) {
# No characters outside 7 bit ASCII.
if (exists $items->{$name}) {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm
index 96081806f7..83db80df50 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm
@@ -32,11 +32,11 @@ ExtUtils::Install - install files from here to there
=head1 VERSION
-2.20
+2.22
=cut
-our $VERSION = '2.20'; # <-- do not forget to update the POD section just above this line!
+our $VERSION = '2.22'; # <-- do not forget to update the POD section just above this line!
$VERSION = eval $VERSION;
=pod
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm
index 0cfd96b507..c82861bd1d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm
@@ -15,7 +15,7 @@ my $DOSISH = ($^O =~ /^(MSWin\d\d|os2|dos|mint)$/);
require VMS::Filespec if $Is_VMS;
-our $VERSION = '2.20';
+our $VERSION = '2.22';
$VERSION = eval $VERSION;
sub _is_prefix {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
index 16c13d91cf..a21e16dc72 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
@@ -3,7 +3,7 @@ package ExtUtils::Liblist;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use File::Spec;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
index 3a715fb082..298a026bc4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
@@ -11,7 +11,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
@@ -58,6 +58,11 @@ sub _unix_os2_ext {
my ( $fullname, @fullname );
my ( $pwd ) = cwd(); # from Cwd.pm
my ( $found ) = 0;
+ if ($Config{gccversion}) {
+ chomp(my @incpath = grep s/^ //, grep { /^#include </ .. /^End of search / } `$Config{cc} -E -v - </dev/null 2>&1 >/dev/null`);
+ unshift @libpath, map { s{/include[^/]*}{/lib}; $_ } @incpath
+ }
+ @libpath = grep -d, @libpath;
if ( $^O eq 'darwin' or $^O eq 'next' ) {
# 'escape' Mach-O ld -framework and -F flags, so they aren't dropped later on
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm
index b7765f05b2..554e6fbb1c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::Liblist;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
index 562ee34520..d6519d2f4e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_AIX;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
index 69a94920ee..45136821c4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_Any;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use Carp;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
index 2c12ad1be7..e544515a3f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
@@ -27,7 +27,7 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
index 190db104bd..f44877b257 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
@@ -10,7 +10,7 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
index 5a9eb22707..c23ec5dcf2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM_DOS;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
index 5db448b9be..24f48d902e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
@@ -8,7 +8,7 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
index 60c149157e..e186b916d0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM_MacOS;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
sub new {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
index c345fcb4d9..e2ba1dfcdb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
@@ -23,7 +23,7 @@ use warnings;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Win32;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
index 788eb6ec01..2cbec89fd8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
@@ -6,7 +6,7 @@ use warnings;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm
index 172d27c85f..cb78ecaaf1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_OS390;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
@@ -61,8 +61,8 @@ sub xs_make_dynamic_lib {
$ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
}
- push @m, sprintf <<'MAKE', $ld_run_path_shell, $dlsyms_arg, $self->xs_obj_opt('$@'), $ldfrom, $libs, $exportlist;
- %s$(LD) $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) %s \
+ push @m, sprintf <<'MAKE', $ld_run_path_shell, $self->xs_obj_opt('$@'), $dlsyms_arg, $ldfrom, $libs, $exportlist;
+ %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
$(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
$(INST_DYNAMIC_FIX)
$(CHMOD) $(PERM_RWX) $@
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
index 475711278c..ee06364810 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_QNX;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Unix;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
index 4eabbcabd4..64852a127e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_UWIN;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Unix;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
index 977b50ed02..fe385984f1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
@@ -13,10 +13,11 @@ our %Config_Override;
use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
-# If we make $VERSION an our variable parse_version() breaks
-use vars qw($VERSION);
-$VERSION = '7.62';
+# If $VERSION is in scope, parse_version() breaks
+{
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
+}
require ExtUtils::MM_Any;
our @ISA = qw(ExtUtils::MM_Any);
@@ -34,13 +35,16 @@ BEGIN {
$Is{SunOS4} = $^O eq 'sunos';
$Is{Solaris} = $^O eq 'solaris';
$Is{SunOS} = $Is{SunOS4} || $Is{Solaris};
- $Is{BSD} = ($^O =~ /^(?:free|net|open)bsd$/ or
+ $Is{BSD} = ($^O =~ /^(?:free|midnight|net|open)bsd$/ or
grep( $^O eq $_, qw(bsdos interix dragonfly) )
);
$Is{Android} = $^O =~ /android/;
- if ( $^O eq 'darwin' && $^X eq '/usr/bin/perl' ) {
+ if ( $^O eq 'darwin' ) {
my @osvers = split /\./, $Config{osvers};
- $Is{ApplCor} = ( $osvers[0] >= 18 );
+ if ( $^X eq '/usr/bin/perl' ) {
+ $Is{ApplCor} = ( $osvers[0] >= 18 );
+ }
+ $Is{AppleRPath} = ( $osvers[0] >= 9 );
}
}
@@ -141,9 +145,9 @@ sub c_o {
$flags =~ s/"-I(\$\(PERL_INC\))"/-iwithsysroot "$1"/;
}
- if (my $cpp = $Config{cpprun}) {
+ if (my $cpp = $self->{CPPRUN}) {
my $cpp_cmd = $self->const_cccmd;
- $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/$cpp/;
+ $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/\$(CPPRUN)/;
push @m, qq{
.c.i:
$cpp_cmd $flags \$*.c > \$*.i
@@ -1048,9 +1052,19 @@ sub xs_make_dynamic_lib {
}
$ldfrom = "-all $ldfrom -none" if $Is{OSF};
+ my $ldrun = '';
# The IRIX linker doesn't use LD_RUN_PATH
- my $ldrun = $Is{IRIX} && $self->{LD_RUN_PATH} ?
- qq{-rpath "$self->{LD_RUN_PATH}"} : '';
+ if ( $self->{LD_RUN_PATH} ) {
+ if ( $Is{IRIX} ) {
+ $ldrun = qq{-rpath "$self->{LD_RUN_PATH}"};
+ }
+ elsif ( $^O eq 'darwin' && $Is{AppleRPath} ) {
+ # both clang and gcc support -Wl,-rpath, but only clang supports
+ # -rpath so by using -Wl,-rpath we avoid having to check for the
+ # type of compiler
+ $ldrun = qq{-Wl,-rpath,"$self->{LD_RUN_PATH}"};
+ }
+ }
# For example in AIX the shared objects/libraries from previous builds
# linger quite a while in the shared dynalinker cache even when nobody
@@ -1315,7 +1329,7 @@ sub _fixin_replace_shebang {
if ($self->maybe_command($origcmd) && grep { $_ eq $origdir } @absdirs) {
my ($odev, $oino) = stat $origcmd;
my ($idev, $iino) = stat $interpreter;
- if ($odev == $idev && $oino == $iino) {
+ if ($odev == $idev && $oino eq $iino) {
warn "$origcmd is the same as $interpreter, leaving alone"
if $Verbose;
$interpreter = $origcmd;
@@ -2183,7 +2197,7 @@ Add MM_Unix_VERSION.
sub init_platform {
my($self) = shift;
- $self->{MM_Unix_VERSION} = $VERSION;
+ $self->{MM_Unix_VERSION} = our $VERSION;
$self->{PERL_MALLOC_DEF} = '-DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc '.
'-Dfree=Perl_mfree -Drealloc=Perl_realloc '.
'-Dcalloc=Perl_calloc';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
index 414ee4b20c..4ed4e26e72 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
@@ -16,7 +16,7 @@ BEGIN {
use File::Basename;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
index 72f472cca2..cdbd1afdd6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_VOS;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Unix;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
index ab2e0b9b68..5d931b4e5a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
$ENV{EMXSHELL} = 'sh'; # to run `commands`
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
index e415beb2ae..e907fb1a39 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM_Win95;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Win32;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm
index 6640c33157..4b24422ee3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm
@@ -3,7 +3,7 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
our @ISA = qw(ExtUtils::MM);
@@ -30,7 +30,7 @@ ExtUtils::MY - ExtUtils::MakeMaker subclass for customization
B<FOR INTERNAL USE ONLY>
-ExtUtils::MY is a subclass of L<ExtUtils::MM>. Its provided in your
+ExtUtils::MY is a subclass of L<ExtUtils::MM>. It is provided in your
Makefile.PL for you to add and override MakeMaker functionality.
It also provides a convenient alias via the MY class.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
index b9b38368e0..e8c3808b38 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
@@ -25,7 +25,7 @@ my %Recognized_Att_Keys;
our %macro_fsentity; # whether a macro is a filesystem name
our %macro_dep; # whether a macro is a dependency
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
# Emulate something resembling CVS $Revision$
@@ -393,7 +393,7 @@ sub full_setup {
# we will use all these variables in the Makefile
@Get_from_Config =
qw(
- ar cc cccdlflags ccdlflags dlext dlsrc exe_ext full_ar ld
+ ar cc cccdlflags ccdlflags cpprun dlext dlsrc exe_ext full_ar ld
lddlflags ldflags libc lib_ext obj_ext osname osvers ranlib
sitelibexp sitearchexp so
);
@@ -525,7 +525,10 @@ sub new {
# simulate "use warnings FATAL => 'all'" for vintage perls
die @_;
};
- version->new( $perl_version )->numify;
+ my $v = version->new($perl_version);
+ # we care about parse issues, not numify warnings
+ no warnings;
+ $v->numify;
};
$perl_version =~ tr/_//d
if defined $perl_version;
@@ -634,7 +637,7 @@ END
if (%unsatisfied && $self->{PREREQ_FATAL}){
my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"}
- sort { $a cmp $b } keys %unsatisfied;
+ sort { lc $a cmp lc $b } keys %unsatisfied;
die <<"END";
MakeMaker FATAL: prerequisites not found.
$failedprereqs
@@ -720,7 +723,7 @@ END
# RT#91540 PREREQ_FATAL not recognized on command line
if (%unsatisfied && $self->{PREREQ_FATAL}){
my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"}
- sort { $a cmp $b } keys %unsatisfied;
+ sort { lc $a cmp lc $b } keys %unsatisfied;
die <<"END";
MakeMaker FATAL: prerequisites not found.
$failedprereqs
@@ -1151,19 +1154,20 @@ sub check_hints {
}
sub _run_hintfile {
- my ($self, $hint_file) = @_;
+ our $self;
+ local($self) = shift; # make $self available to the hint file.
+ my($hint_file) = shift;
local($@, $!);
print "Processing hints file $hint_file\n" if $Verbose;
- if(open(my $fh, '<', $hint_file)) {
- my $hints_content = do { local $/; <$fh> };
- no strict;
- eval $hints_content;
- warn "Failed to run hint file $hint_file: $@" if $@;
- }
- else {
- warn "Could not open $hint_file for read: $!";
+ # Just in case the ./ isn't on the hint file, which File::Spec can
+ # often strip off, we bung the curdir into @INC
+ local @INC = (File::Spec->curdir, @INC);
+ my $ret = do $hint_file;
+ if( !defined $ret ) {
+ my $error = $@ || $!;
+ warn $error;
}
}
@@ -1262,6 +1266,7 @@ sub write_file_via_tmp {
die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents;
for my $chunk (@$contents) {
my $to_write = $chunk;
+ $to_write = '' unless defined $to_write;
utf8::encode $to_write if !$CAN_DECODE && "$]" > 5.008;
print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!";
}
@@ -1331,26 +1336,6 @@ sub neatvalue {
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;
-}
-
sub selfdocument {
my($self) = @_;
my(@m);
@@ -1836,7 +1821,11 @@ currently used by MakeMaker but may be handy in Makefile.PLs.
=item CCFLAGS
String that will be included in the compiler call command line between
-the arguments INC and OPTIMIZE.
+the arguments INC and OPTIMIZE. Note that setting this will overwrite its
+default value (C<$Config::Config{ccflags}>); to preserve that, include
+the default value directly, e.g.:
+
+ CCFLAGS => "$Config::Config{ccflags} ..."
=item CONFIG
@@ -1846,6 +1835,7 @@ ar
cc
cccdlflags
ccdlflags
+cpprun
dlext
dlsrc
ld
@@ -2671,10 +2661,9 @@ instead. See above, or the L<ExtUtils::MakeMaker::FAQ> entry.
=item POLLUTE
-Release 5.005 grandfathered old global symbol names by providing preprocessor
-macros for extension source compatibility. As of release 5.6, these
-preprocessor definitions are not available by default. The POLLUTE flag
-specifies that the old names should still be defined:
+Prior to 5.6 various interpreter variables were available without a C<PL_>
+prefix, eg. C<PL_undef> was available as C<undef>. As of release 5.6, these
+are only defined if the POLLUTE flag is enabled:
perl Makefile.PL POLLUTE=1
@@ -3293,7 +3282,7 @@ are generated when F<Makefile.PL> generates a F<Makefile> (if L<CPAN::Meta>
is installed). Clients like L<CPAN> or L<CPANPLUS> will read these
files to see what prerequisites must be fulfilled before building or testing
the distribution. If you wish to shut this feature off, set the C<NO_MYMETA>
-C<WriteMakeFile()> flag to true.
+C<WriteMakefile()> flag to true.
=head2 Disabling an extension
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
index 323b1575f7..abc9db1ade 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
@@ -3,7 +3,7 @@ package ExtUtils::MakeMaker::Config;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use Config ();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
index 4b0b237500..76dca18e89 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
1;
@@ -129,7 +129,7 @@ Let's take the following test directory structure:
t/bar/othertest.t
t/bar/baz/anothertest.t
-Now, inside of the C<WriteMakeFile()> function in your F<Makefile.PL>, specify
+Now, inside of the C<WriteMakefile()> function in your F<Makefile.PL>, specify
where your tests are located with the C<test> directive:
test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
@@ -536,8 +536,7 @@ And of course a very basic test:
t/cool.t:
--------
- use Test;
- BEGIN { plan tests => 1 };
+ use Test::More tests => 1;
use Cool::Foo;
use Cool::Bar;
Cool::Foo::perl_rules();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
index a842bb40d6..7a75411a7a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Locale;
use strict;
use warnings;
-our $VERSION = "7.62";
+our $VERSION = "7.70";
$VERSION =~ tr/_//d;
use base 'Exporter';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
index eafccc9d10..9e545b37f9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
@@ -112,7 +112,7 @@ example:
t/foo/subdir_test.t
-To do this, you need to inform C<WriteMakeFile()> in your I<Makefile.PL> file
+To do this, you need to inform C<WriteMakefile()> in your I<Makefile.PL> file
in the following fashion:
test => {TESTS => 't/*.t t/*/*.t'}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
index 0208a1f932..59fb20e5ce 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
@@ -16,7 +16,7 @@ use warnings;
use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
-$VERSION = '7.62';
+$VERSION = '7.70';
$VERSION =~ tr/_//d;
$CLASS = 'version';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
index cdc1244f02..18627f8a5e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
@@ -1,12 +1,11 @@
#!./perl -w
package ExtUtils::Miniperl;
use strict;
-require Exporter;
+use Exporter 'import';
use ExtUtils::Embed 1.31, qw(xsi_header xsi_protos xsi_body);
-our @ISA = qw(Exporter);
our @EXPORT = qw(writemain);
-our $VERSION = '1.10';
+our $VERSION = '1.13';
# blead will run this with miniperl, hence we can't use autodie or File::Temp
my $temp;
@@ -100,9 +99,6 @@ main(int argc, char **argv, char **env)
#ifndef NO_ENV_ARRAY_IN_MAIN
PERL_UNUSED_ARG(env);
#endif
-#ifndef PERL_USE_SAFE_PUTENV
- PL_use_safe_putenv = FALSE;
-#endif /* PERL_USE_SAFE_PUTENV */
/* if user wants control of gprof profiling off by default */
/* noop unless Configure is given -Accflags=-DPERL_GPROF_CONTROL */
@@ -139,8 +135,29 @@ main(int argc, char **argv, char **env)
PL_perl_destruct_level = 0;
}
PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
- if (!perl_parse(my_perl, xs_init, argc, argv, (char **)NULL))
+ if (!perl_parse(my_perl, xs_init, argc, argv, (char **)NULL)) {
+
+ /* perl_parse() may end up starting its own run loops, which
+ * might end up "leaking" PL_restartop from the parse phase into
+ * the run phase which then ends up confusing run_body(). This
+ * leakage shouldn't happen and if it does its a bug.
+ *
+ * Note we do not do this assert in perl_run() or perl_parse()
+ * as there are modules out there which explicitly set
+ * PL_restartop before calling perl_run() directly from XS code
+ * (Coro), and it is conceivable PL_restartop could be set prior
+ * to calling perl_parse() by XS code as well.
+ *
+ * What we want to check is that the top level perl_parse(),
+ * perl_run() pairing does not allow a leaking PL_restartop, as
+ * that indicates a bug in perl. By putting the assert here we
+ * can validate that Perl itself is operating correctly without
+ * risking breakage to XS code under DEBUGGING. - Yves
+ */
+ assert(!PL_restartop);
+
perl_run(my_perl);
+ }
#ifndef PERL_MICRO
/* Unregister our signal handler before destroying my_perl */
@@ -155,19 +172,6 @@ main(int argc, char **argv, char **env)
perl_free(my_perl);
-#if defined(USE_ENVIRON_ARRAY) && defined(PERL_TRACK_MEMPOOL) && !defined(NO_ENV_ARRAY_IN_MAIN)
- /*
- * The old environment may have been freed by perl_free()
- * when PERL_TRACK_MEMPOOL is defined, but without having
- * been restored by perl_destruct() before (this is only
- * done if destruct_level > 0).
- *
- * It is important to have a valid environment for atexit()
- * routines that are eventually called.
- */
- environ = env;
-#endif
-
PERL_SYS_TERM();
exit(exitstatus);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
index 1f14ee9e76..9a490a60a9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
require Exporter;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
index 2a7c455e8e..ec074dca22 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
@@ -11,7 +11,7 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
sub Mksymlists {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/PL2Bat.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/PL2Bat.pm
index 070e186fec..6807417945 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/PL2Bat.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/PL2Bat.pm
@@ -1,5 +1,5 @@
package ExtUtils::PL2Bat;
-$ExtUtils::PL2Bat::VERSION = '0.004';
+$ExtUtils::PL2Bat::VERSION = '0.005';
use strict;
use warnings;
@@ -122,7 +122,7 @@ ExtUtils::PL2Bat - Batch file creation to run perl scripts on Windows
=head1 VERSION
-version 0.004
+version 0.005
=head1 OVERVIEW
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm
index 98d09e3d82..5fa93ff274 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm
@@ -4,7 +4,7 @@ use strict;
use Carp qw();
use Config;
our $Relocations;
-our $VERSION = '2.20';
+our $VERSION = '2.22';
$VERSION = eval $VERSION;
# Used for generating filehandle globs. IO::File might not be available!
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
index d2205acd5a..0721582250 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
@@ -11,7 +11,7 @@ use Symbol;
our $VERSION;
BEGIN {
- $VERSION = '3.43';
+ $VERSION = '3.51';
require ExtUtils::ParseXS::Constants; ExtUtils::ParseXS::Constants->VERSION($VERSION);
require ExtUtils::ParseXS::CountLines; ExtUtils::ParseXS::CountLines->VERSION($VERSION);
require ExtUtils::ParseXS::Utilities; ExtUtils::ParseXS::Utilities->VERSION($VERSION);
@@ -31,6 +31,7 @@ use ExtUtils::ParseXS::Utilities qw(
analyze_preprocessor_statements
set_cond
Warn
+ WarnHint
current_line_number
blurt
death
@@ -47,7 +48,10 @@ our @EXPORT_OK = qw(
##############################
# A number of "constants"
-
+our $DIE_ON_ERROR;
+our $AUTHOR_WARNINGS;
+$AUTHOR_WARNINGS = ($ENV{AUTHOR_WARNINGS} || 0)
+ unless defined $AUTHOR_WARNINGS;
our ($C_group_rex, $C_arg);
# Group in C (no support for comments or literals)
$C_group_rex = qr/ [({\[]
@@ -103,6 +107,8 @@ sub process_file {
typemap => [],
versioncheck => 1,
FH => Symbol::gensym(),
+ die_on_error => $DIE_ON_ERROR, # if true we die() and not exit() after errors
+ author_warnings => $AUTHOR_WARNINGS,
%options,
);
$args{except} = $args{except} ? ' TRY' : '';
@@ -119,9 +125,9 @@ sub process_file {
}
@{ $self->{XSStack} } = ({type => 'none'});
$self->{InitFileCode} = [ @ExtUtils::ParseXS::Constants::InitFileCode ];
- $self->{Overload} = 0; # bool
+ $self->{Overloaded} = {}; # hashref of Package => Packid
+ $self->{Fallback} = {}; # hashref of Package => fallback setting
$self->{errors} = 0; # count
- $self->{Fallback} = '&PL_sv_undef';
# Most of the 1500 lines below uses these globals. We'll have to
# clean this up sometime, probably. For now, we just pull them out
@@ -133,6 +139,9 @@ sub process_file {
$self->{WantLineNumbers} = $args{linenumbers};
$self->{IncludedFiles} = {};
+ $self->{die_on_error} = $args{die_on_error};
+ $self->{author_warnings} = $args{author_warnings};
+
die "Missing required parameter 'filename'" unless $args{filename};
$self->{filepathname} = $args{filename};
($self->{dir}, $self->{filename}) =
@@ -301,6 +310,7 @@ EOM
$self->{interface_macro_set} = 'XSINTERFACE_FUNC_SET';
$self->{ProtoThisXSUB} = $self->{WantPrototypes}; # states 0 (none), 1 (yes), 2 (empty prototype)
$self->{ScopeThisXSUB} = 0; # bool
+ $self->{OverloadsThisXSUB} = {}; # overloaded operators (as hash keys, to de-dup)
my $xsreturn = 0;
@@ -626,7 +636,16 @@ EOF
$self->print_section();
$self->death("PPCODE must be last thing") if @{ $self->{line} };
print "\tLEAVE;\n" if $self->{ScopeThisXSUB};
+ print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+ "#pragma diag_suppress 2111\n",
+ "#endif\n"
+ if $^O eq "hpux";
print "\tPUTBACK;\n\treturn;\n";
+ print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+ "#pragma diag_default 2111\n",
+ "#endif\n"
+ if $^O eq "hpux";
+
}
elsif ($self->check_keyword("CODE")) {
my $consumed_code = $self->print_section();
@@ -690,10 +709,17 @@ EOF
do_push => undef,
} ) for grep $self->{in_out}->{$_} =~ /OUT$/, sort keys %{ $self->{in_out} };
- my $prepush_done;
+ my $outlist_count = @{ $outlist_ref };
+ if ($outlist_count) {
+ my $ext = $outlist_count;
+ ++$ext if $self->{gotRETVAL} || $wantRETVAL;
+ print "\tXSprePUSH;";
+ print "\tEXTEND(SP,$ext);\n";
+ }
# all OUTPUT done, so now push the return value on the stack
if ($self->{gotRETVAL} && $self->{RETVAL_code}) {
print "\t$self->{RETVAL_code}\n";
+ print "\t++SP;\n" if $outlist_count;
}
elsif ($self->{gotRETVAL} || $wantRETVAL) {
my $outputmap = $self->{typemap}->get_outputmap( ctype => $self->{ret_type} );
@@ -708,8 +734,9 @@ EOF
);
if (not $trgt->{with_size} and $trgt->{type} eq 'p') { # sv_setpv
# PUSHp corresponds to sv_setpvn. Treat sv_setpv directly
- print "\tsv_setpv(TARG, $what); XSprePUSH; PUSHTARG;\n";
- $prepush_done = 1;
+ print "\tsv_setpv(TARG, $what);\n";
+ print "\tXSprePUSH;\n" unless $outlist_count;
+ print "\tPUSHTARG;\n";
}
else {
my $tsize = $trgt->{what_size};
@@ -718,8 +745,8 @@ EOF
qq("$tsize"),
{var => $var, type => $self->{ret_type}}
);
- print "\tXSprePUSH; PUSH$trgt->{type}($what$tsize);\n";
- $prepush_done = 1;
+ print "\tXSprePUSH;\n" unless $outlist_count;
+ print "\tPUSH$trgt->{type}($what$tsize);\n";
}
}
else {
@@ -731,15 +758,13 @@ EOF
do_setmagic => 0,
do_push => undef,
} );
+ print "\t++SP;\n" if $outlist_count;
}
}
$xsreturn = 1 if $self->{ret_type} ne "void";
my $num = $xsreturn;
- my $c = @{ $outlist_ref };
- print "\tXSprePUSH;" if $c and not $prepush_done;
- print "\tEXTEND(SP,$c);\n" if $c;
- $xsreturn += $c;
+ $xsreturn += $outlist_count;
$self->generate_output( {
type => $self->{var_types}->{$_},
num => $num++,
@@ -782,6 +807,10 @@ EOF
# if (errbuf[0])
# Perl_croak(aTHX_ errbuf);
EOF
+ print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+ "#pragma diag_suppress 2128\n",
+ "#endif\n"
+ if $^O eq "hpux";
if ($xsreturn) {
print Q(<<"EOF") unless $PPCODE;
@@ -793,6 +822,10 @@ EOF
# XSRETURN_EMPTY;
EOF
}
+ print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+ "#pragma diag_default 2128\n",
+ "#endif\n"
+ if $^O eq "hpux";
print Q(<<"EOF");
#]]
@@ -865,12 +898,20 @@ EOF
push(@{ $self->{InitFileCode} },
" (void)$self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
}
+
+ for my $operator (sort keys %{ $self->{OverloadsThisXSUB} }) {
+ $self->{Overloaded}->{$self->{Package}} = $self->{Packid};
+ my $overload = "$self->{Package}\::($operator";
+ push(@{ $self->{InitFileCode} },
+ " (void)$self->{newXS}(\"$overload\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
+ }
} # END 'PARAGRAPH' 'while' loop
- if ($self->{Overload}) { # make it findable with fetchmethod
+ for my $package (sort keys %{ $self->{Overloaded} }) { # make them findable with fetchmethod
+ my $packid = $self->{Overloaded}->{$package};
print Q(<<"EOF");
-#XS_EUPXS(XS_$self->{Packid}_nil); /* prototype to pass -Wmissing-prototypes */
-#XS_EUPXS(XS_$self->{Packid}_nil)
+#XS_EUPXS(XS_${packid}_nil); /* prototype to pass -Wmissing-prototypes */
+#XS_EUPXS(XS_${packid}_nil)
#{
# dXSARGS;
# PERL_UNUSED_VAR(items);
@@ -878,11 +919,11 @@ EOF
#}
#
EOF
- unshift(@{ $self->{InitFileCode} }, <<"MAKE_FETCHMETHOD_WORK");
- /* 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$self->{file}$self->{proto});
+ unshift(@{ $self->{InitFileCode} }, Q(<<"MAKE_FETCHMETHOD_WORK"));
+# /* Making a sub named "${package}::()" allows the package */
+# /* to be findable via fetchmethod(), and causes */
+# /* overload::Overloaded("$package") to return true. */
+# (void)newXS_deffile("${package}::()", XS_${packid}_nil);
MAKE_FETCHMETHOD_WORK
}
@@ -890,7 +931,7 @@ MAKE_FETCHMETHOD_WORK
print Q(<<"EOF");
##ifdef __cplusplus
-#extern "C"
+#extern "C" {
##endif
EOF
@@ -953,19 +994,28 @@ EOF
#
EOF
- print Q(<<"EOF") if ($self->{Overload});
+ if (keys %{ $self->{Overloaded} }) {
+ # once if any overloads
+ print Q(<<"EOF");
# /* register the overloading (type 'A') magic */
##if PERL_VERSION_LE(5, 8, 999) /* PERL_VERSION_LT is 5.33+ */
# PL_amagic_generation++;
##endif
+EOF
+ for my $package (sort keys %{ $self->{Overloaded} }) {
+ # once for each package with overloads
+ my $fallback = $self->{Fallback}->{$package} || "&PL_sv_undef";
+ print Q(<<"EOF");
# /* The magic for overload gets a GV* via gv_fetchmeth as */
# /* mentioned above, and looks in the SV* slot of it for */
# /* the "fallback" status. */
# sv_setsv(
-# get_sv( "$self->{Package}::()", TRUE ),
-# $self->{Fallback}
+# get_sv( "${package}::()", TRUE ),
+# $fallback
# );
EOF
+ }
+ }
print @{ $self->{InitFileCode} };
@@ -992,6 +1042,9 @@ EOF
##endif
#]]
#
+##ifdef __cplusplus
+#}
+##endif
EOF
warn("Please specify prototyping behavior for $self->{filename} (see perlxs manual)\n")
@@ -1286,26 +1339,89 @@ sub get_aliases {
my ($line) = @_;
my ($orig) = $line;
+ # we use this later for symbolic aliases
+ my $fname = $self->{Packprefix} . $self->{func_name};
+
# Parse alias definitions
# format is
- # alias = value alias = value ...
-
- while ($line =~ s/^\s*([\w:]+)\s*=\s*(\w+)\s*//) {
- my ($alias, $value) = ($1, $2);
+ # alias = value Pack::alias = value ...
+ # or
+ # alias => other
+ # or
+ # alias => Pack::other
+ # or
+ # Pack::alias => Other::alias
+
+ while ($line =~ s/^\s*([\w:]+)\s*=(>?)\s*([\w:]+)\s*//) {
+ my ($alias, $is_symbolic, $value) = ($1, $2, $3);
my $orig_alias = $alias;
+ blurt( $self, "Error: In alias definition for '$alias' the value may not"
+ . " contain ':' unless it is symbolic.")
+ if !$is_symbolic and $value=~/:/;
+
# check for optional package definition in the alias
$alias = $self->{Packprefix} . $alias if $alias !~ /::/;
+ if ($is_symbolic) {
+ my $orig_value = $value;
+ $value = $self->{Packprefix} . $value if $value !~ /::/;
+ if (defined $self->{XsubAliases}->{$value}) {
+ $value = $self->{XsubAliases}->{$value};
+ } elsif ($value eq $fname) {
+ $value = 0;
+ } else {
+ blurt( $self, "Error: Unknown alias '$value' in symbolic definition for '$orig_alias'");
+ }
+ }
+
# check for duplicate alias name & duplicate value
- Warn( $self, "Warning: Ignoring duplicate alias '$orig_alias'")
- if defined $self->{XsubAliases}->{$alias};
+ my $prev_value = $self->{XsubAliases}->{$alias};
+ if (defined $prev_value) {
+ if ($prev_value eq $value) {
+ Warn( $self, "Warning: Ignoring duplicate alias '$orig_alias'")
+ } else {
+ Warn( $self, "Warning: Conflicting duplicate alias '$orig_alias'"
+ . " changes definition from '$prev_value' to '$value'");
+ delete $self->{XsubAliasValues}->{$prev_value}{$alias};
+ }
+ }
- Warn( $self, "Warning: Aliases '$orig_alias' and '$self->{XsubAliasValues}->{$value}' have identical values")
- if $self->{XsubAliasValues}->{$value};
+ # Check and see if this alias results in two aliases having the same
+ # value, we only check non-symbolic definitions as the whole point of
+ # symbolic definitions is to say we want to duplicate the value and
+ # it is NOT a mistake.
+ unless ($is_symbolic) {
+ my @keys= sort keys %{$self->{XsubAliasValues}->{$value}||{}};
+ # deal with an alias of 0, which might not be in the XsubAlias dataset
+ # yet as 0 is the default for the base function ($fname)
+ push @keys, $fname
+ if $value eq "0" and !defined $self->{XsubAlias}{$fname};
+ if (@keys and $self->{author_warnings}) {
+ # We do not warn about value collisions unless author_warnings
+ # are enabled. They aren't helpful to a module consumer, only
+ # the module author.
+ @keys= map { "'$_'" }
+ map { my $copy= $_;
+ $copy=~s/^$self->{Packprefix}//;
+ $copy
+ } @keys;
+ WarnHint( $self,
+ "Warning: Aliases '$orig_alias' and "
+ . join(", ", @keys)
+ . " have identical values of $value"
+ . ( $value eq "0"
+ ? " - the base function"
+ : "" ),
+ !$self->{XsubAliasValueClashHinted}++
+ ? "If this is deliberate use a symbolic alias instead."
+ : undef
+ );
+ }
+ }
$self->{XsubAliases}->{$alias} = $value;
- $self->{XsubAliasValues}->{$value} = $orig_alias;
+ $self->{XsubAliasValues}->{$value}{$alias}++;
}
blurt( $self, "Error: Cannot parse ALIAS definitions from '$orig'")
@@ -1342,10 +1458,7 @@ sub OVERLOAD_handler {
next unless /\S/;
trim_whitespace($_);
while ( s/^\s*([\w:"\\)\+\-\*\/\%\<\>\.\&\|\^\!\~\{\}\=]+)\s*//) {
- $self->{Overload} = 1 unless $self->{Overload};
- my $overload = "$self->{Package}\::(".$1;
- push(@{ $self->{InitFileCode} },
- " (void)$self->{newXS}(\"$overload\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
+ $self->{OverloadsThisXSUB}->{$1} = 1;
}
}
}
@@ -1368,7 +1481,7 @@ sub FALLBACK_handler {
# check for valid FALLBACK value
$self->death("Error: FALLBACK: TRUE/FALSE/UNDEF") unless exists $map{$setting};
- $self->{Fallback} = $map{$setting};
+ $self->{Fallback}->{$self->{Package}} = $map{$setting};
}
@@ -1779,11 +1892,17 @@ sub fetch_para {
$self->_process_module_xs_line($1, $2, $3);
}
+ # count how many #ifdef levels we see in this paragraph
+ # decrementing when we see an endif. if we see an elsif
+ # or endif without a corresponding #ifdef then we dont
+ # consider it part of this paragraph.
+ my $if_level = 0;
for (;;) {
$self->_maybe_skip_pod;
$self->_maybe_parse_typemap_block;
+ my $final;
if ($self->{lastline} !~ /^\s*#/ # not a CPP directive
# CPP directives:
# ANSI: if ifdef ifndef elif else endif define undef
@@ -1793,7 +1912,7 @@ sub fetch_para {
# others: ident (gcc notes that some cpps have this one)
|| $self->{lastline} =~ /^\#[ \t]*
(?:
- (?:if|ifn?def|elif|else|endif|
+ (?:if|ifn?def|elif|else|endif|elifn?def|
define|undef|pragma|error|
warning|line\s+\d+|ident)
\b
@@ -1804,6 +1923,31 @@ sub fetch_para {
)
{
last if $self->{lastline} =~ /^\S/ && @{ $self->{line} } && $self->{line}->[-1] eq "";
+ if ($self->{lastline}=~/^#[ \t]*(if|ifn?def|elif|else|endif|elifn?def)\b/) {
+ my $type = $1; # highest defined capture buffer, "if" for any if like condition
+ if ($type =~ /^if/) {
+ if (@{$self->{line}}) {
+ # increment level
+ $if_level++;
+ } else {
+ $final = 1;
+ }
+ } elsif ($type eq "endif") {
+ if ($if_level) { # are we in an if that was started in this paragraph?
+ $if_level--; # yep- so decrement to end this if block
+ } else {
+ $final = 1;
+ }
+ } elsif (!$if_level) {
+ # not in an #ifdef from this paragraph, thus
+ # this directive should not be part of this paragraph.
+ $final = 1;
+ }
+ }
+ if ($final and @{$self->{line}}) {
+ return 1;
+ }
+
push(@{ $self->{line} }, $self->{lastline});
push(@{ $self->{line_no} }, $self->{lastline_no});
}
@@ -1817,6 +1961,9 @@ sub fetch_para {
chomp $self->{lastline};
$self->{lastline} =~ s/^\s+$//;
+ if ($final) {
+ last;
+ }
}
# Nuke trailing "line" entries until there's one that's not empty
@@ -2022,8 +2169,9 @@ sub generate_output {
(my $ntype = $type) =~ s/\s*\*/Ptr/g;
$ntype =~ s/\(\)//g;
(my $subtype = $ntype) =~ s/(?:Array)?(?:Ptr)?$//;
+ $type =~ tr/:/_/ unless $self->{RetainCplusplusHierarchicalTypes};
- my $eval_vars = {%$argsref, subtype => $subtype, ntype => $ntype, arg => $arg};
+ my $eval_vars = {%$argsref, subtype => $subtype, ntype => $ntype, arg => $arg, type => $type };
my $expr = $outputmap->cleaned_code;
if ($expr =~ /DO_ARRAY_ELEM/) {
my $subtypemap = $typemaps->get_typemap(ctype => $subtype);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod
index 80bf13fd07..093a3175fc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod
@@ -19,6 +19,7 @@ ExtUtils::ParseXS - converts Perl XS code into C code
linenumbers => 1,
optimize => 1,
prototypes => 1,
+ die_on_error => 0,
);
# Legacy non-OO interface using a singleton:
@@ -119,6 +120,15 @@ Default is true.
I<Maintainer note:> I have no clue what this does. Strips function prefixes?
+=item B<die_on_error>
+
+Normally ExtUtils::ParseXS will terminate the program with an C<exit(1)> after
+printing the details of the exception to STDERR via (warn). This can be awkward
+when it is used programmatically and not via xsubpp, so this option can be used
+to cause it to die instead by providing a true value. When not provided this
+defaults to the value of C<$ExtUtils::ParseXS::DIE_ON_ERROR> which in turn
+defaults to false.
+
=back
=item $pxs->report_error_count()
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
index d7668c4733..012ba557cb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Symbol;
-our $VERSION = '3.43';
+our $VERSION = '3.51';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
index c592621e03..cca6e74c4a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
@@ -1,7 +1,7 @@
package ExtUtils::ParseXS::CountLines;
use strict;
-our $VERSION = '3.43';
+our $VERSION = '3.51';
our $SECTION_END_MARKER;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
index c509531d2f..a7c3920e82 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
@@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
use strict;
use warnings;
-our $VERSION = '3.43';
+our $VERSION = '3.51';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
index 6cc8a0e408..b2674b3605 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
@@ -5,7 +5,7 @@ use Exporter;
use File::Spec;
use ExtUtils::ParseXS::Constants ();
-our $VERSION = '3.43';
+our $VERSION = '3.51';
our (@ISA, @EXPORT_OK);
@ISA = qw(Exporter);
@@ -21,6 +21,7 @@ our (@ISA, @EXPORT_OK);
analyze_preprocessor_statements
set_cond
Warn
+ WarnHint
current_line_number
blurt
death
@@ -654,18 +655,85 @@ sub current_line_number {
=item * Purpose
+Print warnings with line number details at the end.
+
=item * Arguments
+List of text to output.
+
=item * Return Value
+None.
+
=back
=cut
sub Warn {
+ my ($self)=shift;
+ $self->WarnHint(@_,undef);
+}
+
+=head2 C<WarnHint()>
+
+=over 4
+
+=item * Purpose
+
+Prints warning with line number details. The last argument is assumed
+to be a hint string.
+
+=item * Arguments
+
+List of strings to warn, followed by one argument representing a hint.
+If that argument is defined then it will be split on newlines and output
+line by line after the main warning.
+
+=item * Return Value
+
+None.
+
+=back
+
+=cut
+
+sub WarnHint {
+ warn _MsgHint(@_);
+}
+
+=head2 C<_MsgHint()>
+
+=over 4
+
+=item * Purpose
+
+Constructs an exception message with line number details. The last argument is
+assumed to be a hint string.
+
+=item * Arguments
+
+List of strings to warn, followed by one argument representing a hint.
+If that argument is defined then it will be split on newlines and concatenated
+line by line (parenthesized) after the main message.
+
+=item * Return Value
+
+The constructed string.
+
+=back
+
+=cut
+
+
+sub _MsgHint {
my $self = shift;
+ my $hint = pop;
my $warn_line_number = $self->current_line_number();
- print STDERR "@_ in $self->{filename}, line $warn_line_number\n";
+ my $ret = join("",@_) . " in $self->{filename}, line $warn_line_number\n";
+ if ($hint) {
+ $ret .= " ($_)\n" for split /\n/, $hint;
+ }
+ return $ret;
}
=head2 C<blurt()>
@@ -703,8 +771,13 @@ sub blurt {
=cut
sub death {
- my $self = shift;
- $self->Warn(@_);
+ my ($self) = (@_);
+ my $message = _MsgHint(@_,"");
+ if ($self->{die_on_error}) {
+ die $message;
+ } else {
+ warn $message;
+ }
exit 1;
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
index 62a2b1b606..2a324a6459 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.43';
+our $VERSION = '3.51';
require ExtUtils::ParseXS;
require ExtUtils::ParseXS::Constants;
@@ -378,7 +378,7 @@ sub remove_inputmap {
return $self->_remove($xstype, $self->{input_section}, $self->{input_lookup});
}
-=head2 remove_inputmap
+=head2 remove_outputmap
Removes an C<OUTPUT> entry from the typemap.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
index 5bddcc0569..73f8b710ca 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
+++ b/systems/texlive/tlnet/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.43';
+our $VERSION = '3.51';
use ExtUtils::Typemaps;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
index fd2efc878d..5b18021377 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
+++ b/systems/texlive/tlnet/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.43';
+our $VERSION = '3.51';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
index d4210c5576..d5aacdb786 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
+++ b/systems/texlive/tlnet/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.43';
+our $VERSION = '3.51';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
index 36d575339c..9970281bfc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
require ExtUtils::Typemaps;
-our $VERSION = '3.43';
+our $VERSION = '3.51';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm
index 5826a12736..2de002827f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.70';
$VERSION =~ tr/_//d;
use Cwd;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/typemap b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/typemap
index db700b75bf..a07e83f901 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/typemap
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/typemap
@@ -217,38 +217,54 @@ T_REF_IV_REF
IV tmp = SvIV((SV*)SvRV($arg));
$var = *INT2PTR($type *, tmp);
}
- else
- Perl_croak_nocontext(\"%s: %s is not of type %s\",
+ else {
+ const char* refstr = SvROK($arg) ? \"\" : SvOK($arg) ? \"scalar \" : \"undef\";
+ Perl_croak_nocontext(\"%s: Expected %s to be of type %s; got %s%\" SVf \" instead\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
- \"$var\", \"$ntype\")
+ \"$var\", \"$ntype\",
+ refstr, $arg
+ );
+ }
T_REF_IV_PTR
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = INT2PTR($type, tmp);
}
- else
- Perl_croak_nocontext(\"%s: %s is not of type %s\",
+ else {
+ const char* refstr = SvROK($arg) ? \"\" : SvOK($arg) ? \"scalar \" : \"undef\";
+ Perl_croak_nocontext(\"%s: Expected %s to be of type %s; got %s%\" SVf \" instead\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
- \"$var\", \"$ntype\")
+ \"$var\", \"$ntype\",
+ refstr, $arg
+ );
+ }
T_PTROBJ
if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = INT2PTR($type,tmp);
}
- else
- Perl_croak_nocontext(\"%s: %s is not of type %s\",
+ else {
+ const char* refstr = SvROK($arg) ? \"\" : SvOK($arg) ? \"scalar \" : \"undef\";
+ Perl_croak_nocontext(\"%s: Expected %s to be of type %s; got %s%\" SVf \" instead\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
- \"$var\", \"$ntype\")
+ \"$var\", \"$ntype\",
+ refstr, $arg
+ );
+ }
T_PTRDESC
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
${type}_desc = (\U${type}_DESC\E*) tmp;
$var = ${type}_desc->ptr;
}
- else
- Perl_croak_nocontext(\"%s: %s is not of type %s\",
+ else {
+ const char* refstr = SvROK($arg) ? \"\" : SvOK($arg) ? \"scalar \" : \"undef\";
+ Perl_croak_nocontext(\"%s: Expected %s to be of type %s; got %s%\" SVf \" instead\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
- \"$var\", \"$ntype\")
+ \"$var\", \"$ntype\",
+ refstr, $arg
+ );
+ }
T_REFREF
if (SvROK($arg)) {
IV tmp = SvIV((SV*)SvRV($arg));
@@ -263,10 +279,14 @@ T_REFOBJ
IV tmp = SvIV((SV*)SvRV($arg));
$var = *INT2PTR($type,tmp);
}
- else
- Perl_croak_nocontext(\"%s: %s is not of type %s\",
+ else {
+ const char* refstr = SvROK($arg) ? \"\" : SvOK($arg) ? \"scalar \" : \"undef\";
+ Perl_croak_nocontext(\"%s: Expected %s to be of type %s; got %s%\" SVf \" instead\",
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
- \"$var\", \"$ntype\")
+ \"$var\", \"$ntype\",
+ refstr, $arg
+ );
+ }
T_OPAQUE
$var = *($type *)SvPV_nolen($arg)
T_OPAQUEPTR
@@ -295,23 +315,23 @@ T_OUT
#############################################################################
OUTPUT
T_SV
- $arg = $var;
+ ${ "$var" eq "RETVAL" ? \"$arg = $var;" : \"sv_setsv_mg($arg, $var);" }
T_SVREF
$arg = newRV((SV*)$var);
T_SVREF_REFCOUNT_FIXED
- $arg = newRV_noinc((SV*)$var);
+ ${ "$var" eq "RETVAL" ? \"$arg = newRV_noinc((SV*)$var);" : \"sv_setrv_noinc($arg, (SV*)$var);" }
T_AVREF
$arg = newRV((SV*)$var);
T_AVREF_REFCOUNT_FIXED
- $arg = newRV_noinc((SV*)$var);
+ ${ "$var" eq "RETVAL" ? \"$arg = newRV_noinc((SV*)$var);" : \"sv_setrv_noinc($arg, (SV*)$var);" }
T_HVREF
$arg = newRV((SV*)$var);
T_HVREF_REFCOUNT_FIXED
- $arg = newRV_noinc((SV*)$var);
+ ${ "$var" eq "RETVAL" ? \"$arg = newRV_noinc((SV*)$var);" : \"sv_setrv_noinc($arg, (SV*)$var);" }
T_CVREF
$arg = newRV((SV*)$var);
T_CVREF_REFCOUNT_FIXED
- $arg = newRV_noinc((SV*)$var);
+ ${ "$var" eq "RETVAL" ? \"$arg = newRV_noinc((SV*)$var);" : \"sv_setrv_noinc($arg, (SV*)$var);" }
T_IV
sv_setiv($arg, (IV)$var);
T_UV
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm
index 744ca7228b..debfc2d1af 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm
@@ -55,7 +55,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.34'; # VERSION: Generated by DZP::OurPkg::Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg::Version
our $Debug ||= 0;
@@ -170,6 +170,8 @@ my %TAGS = (
':2.32' => [qw(:default)],
':2.33' => [qw(:default)],
':2.34' => [qw(:default)],
+ ':2.35' => [qw(:default)],
+ ':2.36' => [qw(:default)],
);
@@ -1088,6 +1090,7 @@ sub _one_invocation {
my $code = qq[
no warnings qw(unopened uninitialized numeric);
no if \$\] >= 5.017011, warnings => "experimental::smartmatch";
+ no if \$warnings::Offsets{"deprecated::smartmatch"}, warnings => "deprecated";
if (wantarray) {
my \@results = $call(@argv);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm
index d964b9d4ec..57687e6288 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm
@@ -56,17 +56,15 @@ See L<perlfunc/stat> about the S_I* constants.
=cut
use strict;
-our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-require Exporter;
+use Exporter 'import';
require XSLoader;
-@ISA = qw(Exporter);
-$VERSION = '1.14';
+our $VERSION = '1.15';
XSLoader::load();
# Named groups of exports
-%EXPORT_TAGS = (
+our %EXPORT_TAGS = (
'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
@@ -87,7 +85,7 @@ XSLoader::load();
# Items to export into callers namespace by default
# (move infrequently used names to @EXPORT_OK below)
-@EXPORT =
+our @EXPORT =
qw(
FD_CLOEXEC
F_ALLOCSP
@@ -160,7 +158,7 @@ XSLoader::load();
);
# Other items we are prepared to export if requested
-@EXPORT_OK = (qw(
+our @EXPORT_OK = (qw(
DN_ACCESS
DN_ATTRIB
DN_CREATE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Basename.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Basename.pm
index 4b4fe95cfd..c3c611fbbc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Basename.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Basename.pm
@@ -6,11 +6,11 @@ File::Basename - Parse file paths into directory, filename and suffix.
use File::Basename;
- ($name,$path,$suffix) = fileparse($fullname,@suffixlist);
- $name = fileparse($fullname,@suffixlist);
+ my ($name, $path, $suffix) = fileparse($fullname, @suffixlist);
+ my $name = fileparse($fullname, @suffixlist);
- $basename = basename($fullname,@suffixlist);
- $dirname = dirname($fullname);
+ my $basename = basename($fullname, @suffixlist);
+ my $dirname = dirname($fullname);
=head1 DESCRIPTION
@@ -54,7 +54,7 @@ our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase);
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(fileparse fileparse_set_fstype basename dirname);
-$VERSION = "2.85";
+$VERSION = "2.86";
fileparse_set_fstype($^O);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm
index 05e1c41d21..d6940d333b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm
@@ -1,18 +1,14 @@
-package File::Compare;
+package File::Compare 1.1007;
-use 5.006;
-use strict;
+use v5.12;
use warnings;
-our($VERSION, @ISA, @EXPORT, @EXPORT_OK, $Too_Big);
-require Exporter;
+use Exporter 'import';
-$VERSION = '1.1006';
-@ISA = qw(Exporter);
-@EXPORT = qw(compare);
-@EXPORT_OK = qw(cmp compare_text);
+our @EXPORT = qw(compare);
+our @EXPORT_OK = qw(cmp compare_text);
-$Too_Big = 1024 * 1024 * 2;
+our $Too_Big = 1024 * 1024 * 2;
sub croak {
require Carp;
@@ -127,8 +123,7 @@ sub compare_text {
if @_ == 3 && ref($cmp) ne 'CODE';
# Using a negative buffer size puts compare into text_mode too
- $cmp = -1 unless defined $cmp;
- compare($from, $to, $cmp);
+ compare($from, $to, $cmp // -1);
}
1;
@@ -177,6 +172,3 @@ are equal, 1 if the files are unequal, or -1 if an error was encountered.
File::Compare was written by Nick Ing-Simmons.
Its original documentation was written by Chip Salzenberg.
-
-=cut
-
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm
index ac98cc2df0..1dc1d2d95c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm
@@ -7,15 +7,14 @@
package File::Copy;
-use 5.006;
+use 5.035007;
use strict;
use warnings; no warnings 'newline';
+no warnings 'experimental::builtin';
+use builtin 'blessed';
+use overload;
use File::Spec;
use Config;
-# During perl build, we need File::Copy but Scalar::Util might not be built yet
-# And then we need these games to avoid loading overload, as that will
-# confuse miniperl during the bootstrap of perl.
-my $Scalar_Util_loaded = eval q{ require Scalar::Util; require overload; 1 };
# We want HiRes stat and utime if available
BEGIN { eval q{ use Time::HiRes qw( stat utime ) } };
our(@ISA, @EXPORT, @EXPORT_OK, $VERSION, $Too_Big, $Syscopy_is_copy);
@@ -24,7 +23,7 @@ sub syscopy;
sub cp;
sub mv;
-$VERSION = '2.35';
+$VERSION = '2.41';
require Exporter;
@ISA = qw(Exporter);
@@ -46,8 +45,8 @@ sub carp {
sub _catname {
my($from, $to) = @_;
if (not defined &basename) {
- require File::Basename;
- import File::Basename 'basename';
+ require File::Basename;
+ File::Basename->import( 'basename' );
}
return File::Spec->catfile($to, basename($from));
@@ -56,8 +55,7 @@ sub _catname {
# _eq($from, $to) tells whether $from and $to are identical
sub _eq {
my ($from, $to) = map {
- $Scalar_Util_loaded && Scalar::Util::blessed($_)
- && overload::Method($_, q{""})
+ blessed($_) && overload::Method($_, q{""})
? "$_"
: $_
} (@_);
@@ -104,7 +102,7 @@ sub copy {
my @fs = stat($from);
if (@fs) {
my @ts = stat($to);
- if (@ts && $fs[0] == $ts[0] && $fs[1] == $ts[1] && !-p $from) {
+ if (@ts && $fs[0] == $ts[0] && $fs[1] eq $ts[1] && !-p $from) {
carp("'$from' and '$to' are identical (not copied)");
return 0;
}
@@ -119,7 +117,6 @@ sub copy {
&& !$to_a_handle
&& !($from_a_handle && $^O eq 'os2' ) # OS/2 cannot handle handles
&& !($from_a_handle && $^O eq 'MSWin32')
- && !($from_a_handle && $^O eq 'NetWare')
)
{
if ($^O eq 'VMS' && -e $from
@@ -342,14 +339,14 @@ File::Copy - Copy files or filehandles
use File::Copy;
- copy("sourcefile","destinationfile") or die "Copy failed: $!";
- copy("Copy.pm",\*STDOUT);
- move("/dev1/sourcefile","/dev2/destinationfile");
+ copy("sourcefile", "destinationfile") or die "Copy failed: $!";
+ copy("Copy.pm", \*STDOUT);
+ move("/dev1/sourcefile", "/dev2/destinationfile");
use File::Copy "cp";
- $n = FileHandle->new("/a/file","r");
- cp($n,"x");
+ my $n = FileHandle->new("/a/file", "r");
+ cp($n, "x");
=head1 DESCRIPTION
@@ -398,9 +395,12 @@ You may use the syntax C<use File::Copy "cp"> to get at the C<cp>
alias for this function. The syntax is I<exactly> the same. The
behavior is nearly the same as well: as of version 2.15, C<cp> will
preserve the source file's permission bits like the shell utility
-C<cp(1)> would do, while C<copy> uses the default permissions for the
-target file (which may depend on the process' C<umask>, file
-ownership, inherited ACLs, etc.). If an error occurs in setting
+C<cp(1)> would do with default options, while C<copy> uses the default
+permissions for the target file (which may depend on the process'
+C<umask>, file ownership, inherited ACLs, etc.). That is, if the
+destination file already exists, C<cp> will leave its permissions
+unchanged; otherwise the permissions are taken from the source file
+and modified by the C<umask>. If an error occurs in setting
permissions, C<cp> will return 0, regardless of whether the file was
successfully copied.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm
index 76c641d2e7..157f308ade 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm
@@ -22,7 +22,7 @@ use vars qw[ $VERBOSE $PREFER_BIN $FROM_EMAIL $USER_AGENT
$FTP_PASSIVE $TIMEOUT $DEBUG $WARN $FORCEIPV4
];
-$VERSION = '1.00';
+$VERSION = '1.04';
$VERSION = eval $VERSION; # avoid warnings with development releases
$PREFER_BIN = 0; # XXX TODO implement
$FROM_EMAIL = 'File-Fetch@example.com';
@@ -359,7 +359,7 @@ sub _parse_uri {
$href->{scheme} = $1;
### See rfc 1738 section 3.10
- ### http://www.faqs.org/rfcs/rfc1738.html
+ ### https://datatracker.ietf.org/doc/html/rfc1738#section-3.10
### And wikipedia for more on windows file:// urls
### http://en.wikipedia.org/wiki/File://
if( $href->{scheme} eq 'file' ) {
@@ -906,7 +906,7 @@ sub _wget_fetch {
push(@$cmd, '--timeout=' . $TIMEOUT) if $TIMEOUT;
### run passive if specified ###
- push @$cmd, '--passive-ftp' if $FTP_PASSIVE;
+ push @$cmd, '--passive-ftp' if $self->scheme eq 'ftp' && $FTP_PASSIVE;
### set the output document, add the uri ###
push @$cmd, '--output-document', $to, $self->uri;
@@ -1315,7 +1315,7 @@ sub _fetch_fetch {
### use File::Copy for fetching file:// urls ###
###
-### See section 3.10 of RFC 1738 (http://www.faqs.org/rfcs/rfc1738.html)
+### See section 3.10 of RFC 1738 (https://datatracker.ietf.org/doc/html/rfc1738#section-3.10)
### Also see wikipedia on file:// (http://en.wikipedia.org/wiki/File://)
###
@@ -1698,7 +1698,7 @@ the C<URI::Escape> module from CPAN, and pre-encode your URI before
passing it to C<File::Fetch>. You can read about the details of URIs
and URI encoding here:
- http://www.faqs.org/rfcs/rfc2396.html
+L<https://datatracker.ietf.org/doc/html/rfc2396>
=head1 TODO
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm
index 5f5f1468e7..a41a6f5a56 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm
@@ -3,11 +3,10 @@ use 5.006;
use strict;
use warnings;
use warnings::register;
-our $VERSION = '1.39';
-require Exporter;
+our $VERSION = '1.43';
+use Exporter 'import';
require Cwd;
-our @ISA = qw(Exporter);
our @EXPORT = qw(find finddepth);
@@ -44,25 +43,35 @@ sub contract_name {
return $abs_name;
}
+sub _is_absolute {
+ return $_[0] =~ m|^(?:[A-Za-z]:)?/| if $Is_Win32;
+ return substr($_[0], 0, 1) eq '/';
+}
+
+sub _is_root {
+ return $_[0] =~ m|^(?:[A-Za-z]:)?/\z| if $Is_Win32;
+ return $_[0] eq '/';
+}
+
sub PathCombine($$) {
my ($Base,$Name) = @_;
my $AbsName;
- if (substr($Name,0,1) eq '/') {
- $AbsName= $Name;
+ if (_is_absolute($Name)) {
+ $AbsName= $Name;
}
else {
- $AbsName= contract_name($Base,$Name);
+ $AbsName= contract_name($Base,$Name);
}
# (simple) check for recursion
my $newlen= length($AbsName);
if ($newlen <= length($Base)) {
- if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/')
- && $AbsName eq substr($Base,0,$newlen))
- {
- return undef;
- }
+ if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/')
+ && $AbsName eq substr($Base,0,$newlen))
+ {
+ return undef;
+ }
}
return $AbsName;
}
@@ -74,37 +83,40 @@ sub Follow_SymLink($) {
($DEV, $INO)= lstat $AbsName;
while (-l _) {
- if ($SLnkSeen{$DEV, $INO}++) {
- if ($follow_skip < 2) {
- die "$AbsName is encountered a second time";
- }
- else {
- return undef;
- }
- }
- $NewName= PathCombine($AbsName, readlink($AbsName));
- unless(defined $NewName) {
- if ($follow_skip < 2) {
- die "$AbsName is a recursive symbolic link";
- }
- else {
- return undef;
- }
- }
- else {
- $AbsName= $NewName;
- }
- ($DEV, $INO) = lstat($AbsName);
- return undef unless defined $DEV; # dangling symbolic link
+ if ($SLnkSeen{$DEV, $INO}++) {
+ if ($follow_skip < 2) {
+ die "$AbsName is encountered a second time";
+ }
+ else {
+ return undef;
+ }
+ }
+ my $Link = readlink($AbsName);
+ # canonicalize directory separators
+ $Link =~ s|\\|/|g if $Is_Win32;
+ $NewName= PathCombine($AbsName, $Link);
+ unless(defined $NewName) {
+ if ($follow_skip < 2) {
+ die "$AbsName is a recursive symbolic link";
+ }
+ else {
+ return undef;
+ }
+ }
+ else {
+ $AbsName= $NewName;
+ }
+ ($DEV, $INO) = lstat($AbsName);
+ return undef unless defined $DEV; # dangling symbolic link
}
if ($full_check && defined $DEV && $SLnkSeen{$DEV, $INO}++) {
- if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) {
- die "$AbsName encountered a second time";
- }
- else {
- return undef;
- }
+ if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) {
+ die "$AbsName encountered a second time";
+ }
+ else {
+ return undef;
+ }
}
return $AbsName;
@@ -124,6 +136,7 @@ sub is_tainted_pp {
return length($@) != 0;
}
+
sub _find_opt {
my $wanted = shift;
return unless @_;
@@ -134,25 +147,25 @@ sub _find_opt {
local %SLnkSeen;
local ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow,
- $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat,
- $pre_process, $post_process, $dangling_symlinks);
+ $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat,
+ $pre_process, $post_process, $dangling_symlinks);
local($dir, $name, $fullname, $prune);
local *_ = \my $a;
my $cwd = $wanted->{bydepth} ? Cwd::fastcwd() : Cwd::getcwd();
if ($Is_VMS) {
- # VMS returns this by default in VMS format which just doesn't
- # work for the rest of this module.
- $cwd = VMS::Filespec::unixpath($cwd);
-
- # Apparently this is not expected to have a trailing space.
- # To attempt to make VMS/UNIX conversions mostly reversible,
- # a trailing slash is needed. The run-time functions ignore the
- # resulting double slash, but it causes the perl tests to fail.
+ # VMS returns this by default in VMS format which just doesn't
+ # work for the rest of this module.
+ $cwd = VMS::Filespec::unixpath($cwd);
+
+ # Apparently this is not expected to have a trailing space.
+ # To attempt to make VMS/UNIX conversions mostly reversible,
+ # a trailing slash is needed. The run-time functions ignore the
+ # resulting double slash, but it causes the perl tests to fail.
$cwd =~ s#/\z##;
- # This comes up in upper case now, but should be lower.
- # In the future this could be exact case, no need to change.
+ # This comes up in upper case now, but should be lower.
+ # In the future this could be exact case, no need to change.
}
my $cwd_untainted = $cwd;
my $check_t_cwd = 1;
@@ -179,109 +192,107 @@ sub _find_opt {
Proc_Top_Item:
foreach my $TOP (@_) {
- my $top_item = $TOP;
- $top_item = VMS::Filespec::unixify($top_item) if $Is_VMS;
-
- ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
-
- if ($Is_Win32) {
- $top_item =~ s|[/\\]\z||
- unless $top_item =~ m{^(?:\w:)?[/\\]$};
- }
- else {
- $top_item =~ s|/\z|| unless $top_item eq '/';
- }
-
- $Is_Dir= 0;
-
- if ($follow) {
-
- if (substr($top_item,0,1) eq '/') {
- $abs_dir = $top_item;
- }
- elsif ($top_item eq $File::Find::current_dir) {
- $abs_dir = $cwd;
- }
- else { # care about any ../
- $top_item =~ s/\.dir\z//i if $Is_VMS;
- $abs_dir = contract_name("$cwd/",$top_item);
- }
- $abs_dir= Follow_SymLink($abs_dir);
- unless (defined $abs_dir) {
- if ($dangling_symlinks) {
- if (ref $dangling_symlinks eq 'CODE') {
- $dangling_symlinks->($top_item, $cwd);
- } else {
- warnings::warnif "$top_item is a dangling symbolic link\n";
- }
- }
- next Proc_Top_Item;
- }
-
- if (-d _) {
- $top_item =~ s/\.dir\z//i if $Is_VMS;
- _find_dir_symlnk($wanted, $abs_dir, $top_item);
- $Is_Dir= 1;
- }
- }
- else { # no follow
- $topdir = $top_item;
- unless (defined $topnlink) {
- warnings::warnif "Can't stat $top_item: $!\n";
- next Proc_Top_Item;
- }
- if (-d _) {
- $top_item =~ s/\.dir\z//i if $Is_VMS;
- _find_dir($wanted, $top_item, $topnlink);
- $Is_Dir= 1;
- }
- else {
- $abs_dir= $top_item;
- }
- }
-
- unless ($Is_Dir) {
- unless (($_,$dir) = File::Basename::fileparse($abs_dir)) {
- ($dir,$_) = ('./', $top_item);
- }
-
- $abs_dir = $dir;
- if (( $untaint ) && (is_tainted($dir) )) {
- ( $abs_dir ) = $dir =~ m|$untaint_pat|;
- unless (defined $abs_dir) {
- if ($untaint_skip == 0) {
- die "directory $dir is still tainted";
- }
- else {
- next Proc_Top_Item;
- }
- }
- }
-
- unless ($no_chdir || chdir $abs_dir) {
- warnings::warnif "Couldn't chdir $abs_dir: $!\n";
- next Proc_Top_Item;
- }
-
- $name = $abs_dir . $_; # $File::Find::name
- $_ = $name if $no_chdir;
-
- { $wanted_callback->() }; # protect against wild "next"
-
- }
-
- unless ( $no_chdir ) {
- if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) {
- ( $cwd_untainted ) = $cwd =~ m|$untaint_pat|;
- unless (defined $cwd_untainted) {
- die "insecure cwd in find(depth)";
- }
- $check_t_cwd = 0;
- }
- unless (chdir $cwd_untainted) {
- die "Can't cd to $cwd: $!\n";
- }
- }
+ my $top_item = $TOP;
+ $top_item = VMS::Filespec::unixify($top_item) if $Is_VMS;
+
+ ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
+
+ # canonicalize directory separators
+ $top_item =~ s|[/\\]|/|g if $Is_Win32;
+
+ # no trailing / unless path is root
+ $top_item =~ s|/\z|| unless _is_root($top_item);
+
+ $Is_Dir= 0;
+
+ if ($follow) {
+
+ if (_is_absolute($top_item)) {
+ $abs_dir = $top_item;
+ }
+ elsif ($top_item eq $File::Find::current_dir) {
+ $abs_dir = $cwd;
+ }
+ else { # care about any ../
+ $top_item =~ s/\.dir\z//i if $Is_VMS;
+ $abs_dir = contract_name("$cwd/",$top_item);
+ }
+ $abs_dir= Follow_SymLink($abs_dir);
+ unless (defined $abs_dir) {
+ if ($dangling_symlinks) {
+ if (ref $dangling_symlinks eq 'CODE') {
+ $dangling_symlinks->($top_item, $cwd);
+ } else {
+ warnings::warnif "$top_item is a dangling symbolic link\n";
+ }
+ }
+ next Proc_Top_Item;
+ }
+
+ if (-d _) {
+ $top_item =~ s/\.dir\z//i if $Is_VMS;
+ _find_dir_symlnk($wanted, $abs_dir, $top_item);
+ $Is_Dir= 1;
+ }
+ }
+ else { # no follow
+ $topdir = $top_item;
+ unless (defined $topnlink) {
+ warnings::warnif "Can't stat $top_item: $!\n";
+ next Proc_Top_Item;
+ }
+ if (-d _) {
+ $top_item =~ s/\.dir\z//i if $Is_VMS;
+ _find_dir($wanted, $top_item, $topnlink);
+ $Is_Dir= 1;
+ }
+ else {
+ $abs_dir= $top_item;
+ }
+ }
+
+ unless ($Is_Dir) {
+ unless (($_,$dir) = File::Basename::fileparse($abs_dir)) {
+ ($dir,$_) = ('./', $top_item);
+ }
+
+ $abs_dir = $dir;
+ if (( $untaint ) && (is_tainted($dir) )) {
+ ( $abs_dir ) = $dir =~ m|$untaint_pat|;
+ unless (defined $abs_dir) {
+ if ($untaint_skip == 0) {
+ die "directory $dir is still tainted";
+ }
+ else {
+ next Proc_Top_Item;
+ }
+ }
+ }
+
+ unless ($no_chdir || chdir $abs_dir) {
+ warnings::warnif "Couldn't chdir $abs_dir: $!\n";
+ next Proc_Top_Item;
+ }
+
+ $name = $abs_dir . $_; # $File::Find::name
+ $_ = $name if $no_chdir;
+
+ { $wanted_callback->() }; # protect against wild "next"
+
+ }
+
+ unless ( $no_chdir ) {
+ if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) {
+ ( $cwd_untainted ) = $cwd =~ m|$untaint_pat|;
+ unless (defined $cwd_untainted) {
+ die "insecure cwd in find(depth)";
+ }
+ $check_t_cwd = 0;
+ }
+ unless (chdir $cwd_untainted) {
+ die "Can't cd to $cwd: $!\n";
+ }
+ }
}
}
@@ -305,178 +316,170 @@ sub _find_dir($$$) {
my $tainted = 0;
my $no_nlink;
- if ($Is_Win32) {
- $dir_pref
- = ($p_dir =~ m{^(?:\w:[/\\]?|[/\\])$} ? $p_dir : "$p_dir/" );
- } elsif ($Is_VMS) {
-
- # VMS is returning trailing .dir on directories
- # and trailing . on files and symbolic links
- # in UNIX syntax.
- #
+ if ($Is_VMS) {
+ # VMS is returning trailing .dir on directories
+ # and trailing . on files and symbolic links
+ # in UNIX syntax.
+ #
- $p_dir =~ s/\.(dir)?$//i unless $p_dir eq '.';
+ $p_dir =~ s/\.(dir)?$//i unless $p_dir eq '.';
- $dir_pref = ($p_dir =~ m/[\]>]+$/ ? $p_dir : "$p_dir/" );
+ $dir_pref = ($p_dir =~ m/[\]>]+$/ ? $p_dir : "$p_dir/" );
}
else {
- $dir_pref= ( $p_dir eq '/' ? '/' : "$p_dir/" );
+ $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/";
}
- local ($dir, $name, $prune, *DIR);
+ local ($dir, $name, $prune);
unless ( $no_chdir || ($p_dir eq $File::Find::current_dir)) {
- my $udir = $p_dir;
- if (( $untaint ) && (is_tainted($p_dir) )) {
- ( $udir ) = $p_dir =~ m|$untaint_pat|;
- unless (defined $udir) {
- if ($untaint_skip == 0) {
- die "directory $p_dir is still tainted";
- }
- else {
- return;
- }
- }
- }
- unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
- warnings::warnif "Can't cd to $udir: $!\n";
- return;
- }
+ my $udir = $p_dir;
+ if (( $untaint ) && (is_tainted($p_dir) )) {
+ ( $udir ) = $p_dir =~ m|$untaint_pat|;
+ unless (defined $udir) {
+ if ($untaint_skip == 0) {
+ die "directory $p_dir is still tainted";
+ }
+ else {
+ return;
+ }
+ }
+ }
+ unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
+ warnings::warnif "Can't cd to $udir: $!\n";
+ return;
+ }
}
# push the starting directory
push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth;
while (defined $SE) {
- unless ($bydepth) {
- $dir= $p_dir; # $File::Find::dir
- $name= $dir_name; # $File::Find::name
- $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
- # prune may happen here
- $prune= 0;
- { $wanted_callback->() }; # protect against wild "next"
- next if $prune;
- }
-
- # change to that directory
- unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
- my $udir= $dir_rel;
- if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) {
- ( $udir ) = $dir_rel =~ m|$untaint_pat|;
- unless (defined $udir) {
- if ($untaint_skip == 0) {
- die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted";
- } else { # $untaint_skip == 1
- next;
- }
- }
- }
- unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
- warnings::warnif "Can't cd to (" .
- ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n";
- next;
- }
- $CdLvl++;
- }
-
- $dir= $dir_name; # $File::Find::dir
-
- # Get the list of files in the current directory.
- unless (opendir DIR, ($no_chdir ? $dir_name : $File::Find::current_dir)) {
- warnings::warnif "Can't opendir($dir_name): $!\n";
- next;
- }
- @filenames = readdir DIR;
- closedir(DIR);
- @filenames = $pre_process->(@filenames) if $pre_process;
- push @Stack,[$CdLvl,$dir_name,"",-2] if $post_process;
-
- # default: use whatever was specified
+ unless ($bydepth) {
+ $dir= $p_dir; # $File::Find::dir
+ $name= $dir_name; # $File::Find::name
+ $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
+ # prune may happen here
+ $prune= 0;
+ { $wanted_callback->() }; # protect against wild "next"
+ next if $prune;
+ }
+
+ # change to that directory
+ unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
+ my $udir= $dir_rel;
+ if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) {
+ ( $udir ) = $dir_rel =~ m|$untaint_pat|;
+ unless (defined $udir) {
+ if ($untaint_skip == 0) {
+ die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted";
+ } else { # $untaint_skip == 1
+ next;
+ }
+ }
+ }
+ unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
+ warnings::warnif "Can't cd to (" .
+ ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n";
+ next;
+ }
+ $CdLvl++;
+ }
+
+ $dir= $dir_name; # $File::Find::dir
+
+ # Get the list of files in the current directory.
+ my $dh;
+ unless (opendir $dh, ($no_chdir ? $dir_name : $File::Find::current_dir)) {
+ warnings::warnif "Can't opendir($dir_name): $!\n";
+ next;
+ }
+ @filenames = readdir $dh;
+ closedir($dh);
+ @filenames = $pre_process->(@filenames) if $pre_process;
+ push @Stack,[$CdLvl,$dir_name,"",-2] if $post_process;
+
+ # default: use whatever was specified
# (if $nlink >= 2, and $avoid_nlink == 0, this will switch back)
$no_nlink = $avoid_nlink;
# if dir has wrong nlink count, force switch to slower stat method
$no_nlink = 1 if ($nlink < 2);
- if ($nlink == 2 && !$no_nlink) {
- # This dir has no subdirectories.
- for my $FN (@filenames) {
- if ($Is_VMS) {
- # Big hammer here - Compensate for VMS trailing . and .dir
- # No win situation until this is changed, but this
- # will handle the majority of the cases with breaking the fewest
-
- $FN =~ s/\.dir\z//i;
- $FN =~ s#\.$## if ($FN ne '.');
- }
- next if $FN =~ $File::Find::skip_pattern;
-
- $name = $dir_pref . $FN; # $File::Find::name
- $_ = ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
-
- }
- else {
- # This dir has subdirectories.
- $subcount = $nlink - 2;
-
- # HACK: insert directories at this position, so as to preserve
- # the user pre-processed ordering of files (thus ensuring
- # directory traversal is in user sorted order, not at random).
+ if ($nlink == 2 && !$no_nlink) {
+ # This dir has no subdirectories.
+ for my $FN (@filenames) {
+ if ($Is_VMS) {
+ # Big hammer here - Compensate for VMS trailing . and .dir
+ # No win situation until this is changed, but this
+ # will handle the majority of the cases with breaking the fewest
+
+ $FN =~ s/\.dir\z//i;
+ $FN =~ s#\.$## if ($FN ne '.');
+ }
+ next if $FN =~ $File::Find::skip_pattern;
+
+ $name = $dir_pref . $FN; # $File::Find::name
+ $_ = ($no_chdir ? $name : $FN); # $_
+ { $wanted_callback->() }; # protect against wild "next"
+ }
+
+ }
+ else {
+ # This dir has subdirectories.
+ $subcount = $nlink - 2;
+
+ # HACK: insert directories at this position, so as to preserve
+ # the user pre-processed ordering of files (thus ensuring
+ # directory traversal is in user sorted order, not at random).
my $stack_top = @Stack;
- for my $FN (@filenames) {
- next if $FN =~ $File::Find::skip_pattern;
- if ($subcount > 0 || $no_nlink) {
- # Seen all the subdirs?
- # check for directoriness.
- # stat is faster for a file in the current directory
- $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3];
-
- if (-d _) {
- --$subcount;
- $FN =~ s/\.dir\z//i if $Is_VMS;
- # HACK: replace push to preserve dir traversal order
- #push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink];
- splice @Stack, $stack_top, 0,
- [$CdLvl,$dir_name,$FN,$sub_nlink];
- }
- else {
- $name = $dir_pref . $FN; # $File::Find::name
- $_= ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
- }
- else {
- $name = $dir_pref . $FN; # $File::Find::name
- $_= ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
- }
- }
+ for my $FN (@filenames) {
+ next if $FN =~ $File::Find::skip_pattern;
+ if ($subcount > 0 || $no_nlink) {
+ # Seen all the subdirs?
+ # check for directoriness.
+ # stat is faster for a file in the current directory
+ $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3];
+
+ if (-d _) {
+ --$subcount;
+ $FN =~ s/\.dir\z//i if $Is_VMS;
+ # HACK: replace push to preserve dir traversal order
+ #push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink];
+ splice @Stack, $stack_top, 0,
+ [$CdLvl,$dir_name,$FN,$sub_nlink];
+ }
+ else {
+ $name = $dir_pref . $FN; # $File::Find::name
+ $_= ($no_chdir ? $name : $FN); # $_
+ { $wanted_callback->() }; # protect against wild "next"
+ }
+ }
+ else {
+ $name = $dir_pref . $FN; # $File::Find::name
+ $_= ($no_chdir ? $name : $FN); # $_
+ { $wanted_callback->() }; # protect against wild "next"
+ }
+ }
+ }
}
continue {
- while ( defined ($SE = pop @Stack) ) {
- ($Level, $p_dir, $dir_rel, $nlink) = @$SE;
- if ($CdLvl > $Level && !$no_chdir) {
- my $tmp;
- if ($Is_VMS) {
- $tmp = '[' . ('-' x ($CdLvl-$Level)) . ']';
- }
- else {
- $tmp = join('/',('..') x ($CdLvl-$Level));
- }
- die "Can't cd to $tmp from $dir_name: $!"
- unless chdir ($tmp);
- $CdLvl = $Level;
- }
-
- if ($Is_Win32) {
- $dir_name = ($p_dir =~ m{^(?:\w:[/\\]?|[/\\])$}
- ? "$p_dir$dir_rel" : "$p_dir/$dir_rel");
- $dir_pref = "$dir_name/";
- }
- elsif ($^O eq 'VMS') {
+ while ( defined ($SE = pop @Stack) ) {
+ ($Level, $p_dir, $dir_rel, $nlink) = @$SE;
+ if ($CdLvl > $Level && !$no_chdir) {
+ my $tmp;
+ if ($Is_VMS) {
+ $tmp = '[' . ('-' x ($CdLvl-$Level)) . ']';
+ }
+ else {
+ $tmp = join('/',('..') x ($CdLvl-$Level));
+ }
+ die "Can't cd to $tmp from $dir_name: $!"
+ unless chdir ($tmp);
+ $CdLvl = $Level;
+ }
+
+ if ($^O eq 'VMS') {
if ($p_dir =~ m/[\]>]+$/) {
$dir_name = $p_dir;
$dir_name =~ s/([\]>]+)$/.$dir_rel$1/;
@@ -486,34 +489,34 @@ sub _find_dir($$$) {
$dir_name = "$p_dir/$dir_rel";
$dir_pref = "$dir_name/";
}
- }
- else {
- $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
- $dir_pref = "$dir_name/";
- }
-
- if ( $nlink == -2 ) {
- $name = $dir = $p_dir; # $File::Find::name / dir
+ }
+ else {
+ $dir_name = _is_root($p_dir) ? "$p_dir$dir_rel" : "$p_dir/$dir_rel";
+ $dir_pref = "$dir_name/";
+ }
+
+ if ( $nlink == -2 ) {
+ $name = $dir = $p_dir; # $File::Find::name / dir
$_ = $File::Find::current_dir;
- $post_process->(); # End-of-directory processing
- }
- elsif ( $nlink < 0 ) { # must be finddepth, report dirname now
- $name = $dir_name;
- if ( substr($name,-2) eq '/.' ) {
- substr($name, length($name) == 2 ? -1 : -2) = '';
- }
- $dir = $p_dir;
- $_ = ($no_chdir ? $dir_name : $dir_rel );
- if ( substr($_,-2) eq '/.' ) {
- substr($_, length($_) == 2 ? -1 : -2) = '';
- }
- { $wanted_callback->() }; # protect against wild "next"
- }
- else {
- push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth;
- last;
- }
- }
+ $post_process->(); # End-of-directory processing
+ }
+ elsif ( $nlink < 0 ) { # must be finddepth, report dirname now
+ $name = $dir_name;
+ if ( substr($name,-2) eq '/.' ) {
+ substr($name, length($name) == 2 ? -1 : -2) = '';
+ }
+ $dir = $p_dir;
+ $_ = ($no_chdir ? $dir_name : $dir_rel );
+ if ( substr($_,-2) eq '/.' ) {
+ substr($_, length($_) == 2 ? -1 : -2) = '';
+ }
+ { $wanted_callback->() }; # protect against wild "next"
+ }
+ else {
+ push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth;
+ last;
+ }
+ }
}
}
@@ -540,171 +543,172 @@ sub _find_dir_symlnk($$$) {
my $tainted = 0;
my $ok = 1;
- $dir_pref = ( $p_dir eq '/' ? '/' : "$p_dir/" );
- $loc_pref = ( $dir_loc eq '/' ? '/' : "$dir_loc/" );
+ $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/";
+ $loc_pref = _is_root($dir_loc) ? $dir_loc : "$dir_loc/";
- local ($dir, $name, $fullname, $prune, *DIR);
+ local ($dir, $name, $fullname, $prune);
unless ($no_chdir) {
- # untaint the topdir
- if (( $untaint ) && (is_tainted($dir_loc) )) {
- ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted
- # once untainted, $updir_loc is pushed on the stack (as parent directory);
- # hence, we don't need to untaint the parent directory every time we chdir
- # to it later
- unless (defined $updir_loc) {
- if ($untaint_skip == 0) {
- die "directory $dir_loc is still tainted";
- }
- else {
- return;
- }
- }
- }
- $ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir);
- unless ($ok) {
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- return;
- }
+ # untaint the topdir
+ if (( $untaint ) && (is_tainted($dir_loc) )) {
+ ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted
+ # once untainted, $updir_loc is pushed on the stack (as parent directory);
+ # hence, we don't need to untaint the parent directory every time we chdir
+ # to it later
+ unless (defined $updir_loc) {
+ if ($untaint_skip == 0) {
+ die "directory $dir_loc is still tainted";
+ }
+ else {
+ return;
+ }
+ }
+ }
+ $ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir);
+ unless ($ok) {
+ warnings::warnif "Can't cd to $updir_loc: $!\n";
+ return;
+ }
}
push @Stack,[$dir_loc,$updir_loc,$p_dir,$dir_rel,-1] if $bydepth;
while (defined $SE) {
- unless ($bydepth) {
- # change (back) to parent directory (always untainted)
- unless ($no_chdir) {
- unless (chdir $updir_loc) {
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- next;
- }
- }
- $dir= $p_dir; # $File::Find::dir
- $name= $dir_name; # $File::Find::name
- $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
- $fullname= $dir_loc; # $File::Find::fullname
- # prune may happen here
- $prune= 0;
- lstat($_); # make sure file tests with '_' work
- { $wanted_callback->() }; # protect against wild "next"
- next if $prune;
- }
-
- # change to that directory
- unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
- $updir_loc = $dir_loc;
- if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) {
- # untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir
- ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|;
- unless (defined $updir_loc) {
- if ($untaint_skip == 0) {
- die "directory $dir_loc is still tainted";
- }
- else {
- next;
- }
- }
- }
- unless (chdir $updir_loc) {
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- next;
- }
- }
-
- $dir = $dir_name; # $File::Find::dir
-
- # Get the list of files in the current directory.
- unless (opendir DIR, ($no_chdir ? $dir_loc : $File::Find::current_dir)) {
- warnings::warnif "Can't opendir($dir_loc): $!\n";
- next;
- }
- @filenames = readdir DIR;
- closedir(DIR);
-
- for my $FN (@filenames) {
- if ($Is_VMS) {
- # Big hammer here - Compensate for VMS trailing . and .dir
- # No win situation until this is changed, but this
- # will handle the majority of the cases with breaking the fewest.
-
- $FN =~ s/\.dir\z//i;
- $FN =~ s#\.$## if ($FN ne '.');
- }
- next if $FN =~ $File::Find::skip_pattern;
-
- # follow symbolic links / do an lstat
- $new_loc = Follow_SymLink($loc_pref.$FN);
-
- # ignore if invalid symlink
- unless (defined $new_loc) {
- if (!defined -l _ && $dangling_symlinks) {
+ unless ($bydepth) {
+ # change (back) to parent directory (always untainted)
+ unless ($no_chdir) {
+ unless (chdir $updir_loc) {
+ warnings::warnif "Can't cd to $updir_loc: $!\n";
+ next;
+ }
+ }
+ $dir= $p_dir; # $File::Find::dir
+ $name= $dir_name; # $File::Find::name
+ $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
+ $fullname= $dir_loc; # $File::Find::fullname
+ # prune may happen here
+ $prune= 0;
+ lstat($_); # make sure file tests with '_' work
+ { $wanted_callback->() }; # protect against wild "next"
+ next if $prune;
+ }
+
+ # change to that directory
+ unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
+ $updir_loc = $dir_loc;
+ if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) {
+ # untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir
+ ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|;
+ unless (defined $updir_loc) {
+ if ($untaint_skip == 0) {
+ die "directory $dir_loc is still tainted";
+ }
+ else {
+ next;
+ }
+ }
+ }
+ unless (chdir $updir_loc) {
+ warnings::warnif "Can't cd to $updir_loc: $!\n";
+ next;
+ }
+ }
+
+ $dir = $dir_name; # $File::Find::dir
+
+ # Get the list of files in the current directory.
+ my $dh;
+ unless (opendir $dh, ($no_chdir ? $dir_loc : $File::Find::current_dir)) {
+ warnings::warnif "Can't opendir($dir_loc): $!\n";
+ next;
+ }
+ @filenames = readdir $dh;
+ closedir($dh);
+
+ for my $FN (@filenames) {
+ if ($Is_VMS) {
+ # Big hammer here - Compensate for VMS trailing . and .dir
+ # No win situation until this is changed, but this
+ # will handle the majority of the cases with breaking the fewest.
+
+ $FN =~ s/\.dir\z//i;
+ $FN =~ s#\.$## if ($FN ne '.');
+ }
+ next if $FN =~ $File::Find::skip_pattern;
+
+ # follow symbolic links / do an lstat
+ $new_loc = Follow_SymLink($loc_pref.$FN);
+
+ # ignore if invalid symlink
+ unless (defined $new_loc) {
+ if (!defined -l _ && $dangling_symlinks) {
$fullname = undef;
- if (ref $dangling_symlinks eq 'CODE') {
- $dangling_symlinks->($FN, $dir_pref);
- } else {
- warnings::warnif "$dir_pref$FN is a dangling symbolic link\n";
- }
- }
+ if (ref $dangling_symlinks eq 'CODE') {
+ $dangling_symlinks->($FN, $dir_pref);
+ } else {
+ warnings::warnif "$dir_pref$FN is a dangling symbolic link\n";
+ }
+ }
else {
$fullname = $loc_pref . $FN;
}
- $name = $dir_pref . $FN;
- $_ = ($no_chdir ? $name : $FN);
- { $wanted_callback->() };
- next;
- }
-
- if (-d _) {
- if ($Is_VMS) {
- $FN =~ s/\.dir\z//i;
- $FN =~ s#\.$## if ($FN ne '.');
- $new_loc =~ s/\.dir\z//i;
- $new_loc =~ s#\.$## if ($new_loc ne '.');
- }
- push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1];
- }
- else {
- $fullname = $new_loc; # $File::Find::fullname
- $name = $dir_pref . $FN; # $File::Find::name
- $_ = ($no_chdir ? $name : $FN); # $_
- { $wanted_callback->() }; # protect against wild "next"
- }
- }
+ $name = $dir_pref . $FN;
+ $_ = ($no_chdir ? $name : $FN);
+ { $wanted_callback->() };
+ next;
+ }
+
+ if (-d _) {
+ if ($Is_VMS) {
+ $FN =~ s/\.dir\z//i;
+ $FN =~ s#\.$## if ($FN ne '.');
+ $new_loc =~ s/\.dir\z//i;
+ $new_loc =~ s#\.$## if ($new_loc ne '.');
+ }
+ push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1];
+ }
+ else {
+ $fullname = $new_loc; # $File::Find::fullname
+ $name = $dir_pref . $FN; # $File::Find::name
+ $_ = ($no_chdir ? $name : $FN); # $_
+ { $wanted_callback->() }; # protect against wild "next"
+ }
+ }
}
continue {
- while (defined($SE = pop @Stack)) {
- ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE;
- $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
- $dir_pref = "$dir_name/";
- $loc_pref = "$dir_loc/";
- if ( $byd_flag < 0 ) { # must be finddepth, report dirname now
- unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
- unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted
- warnings::warnif "Can't cd to $updir_loc: $!\n";
- next;
- }
- }
- $fullname = $dir_loc; # $File::Find::fullname
- $name = $dir_name; # $File::Find::name
- if ( substr($name,-2) eq '/.' ) {
- substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name
- }
- $dir = $p_dir; # $File::Find::dir
- $_ = ($no_chdir ? $dir_name : $dir_rel); # $_
- if ( substr($_,-2) eq '/.' ) {
- substr($_, length($_) == 2 ? -1 : -2) = '';
- }
-
- lstat($_); # make sure file tests with '_' work
- { $wanted_callback->() }; # protect against wild "next"
- }
- else {
- push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1] if $bydepth;
- last;
- }
- }
+ while (defined($SE = pop @Stack)) {
+ ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE;
+ $dir_name = _is_root($p_dir) ? "$p_dir$dir_rel" : "$p_dir/$dir_rel";
+ $dir_pref = "$dir_name/";
+ $loc_pref = "$dir_loc/";
+ if ( $byd_flag < 0 ) { # must be finddepth, report dirname now
+ unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
+ unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted
+ warnings::warnif "Can't cd to $updir_loc: $!\n";
+ next;
+ }
+ }
+ $fullname = $dir_loc; # $File::Find::fullname
+ $name = $dir_name; # $File::Find::name
+ if ( substr($name,-2) eq '/.' ) {
+ substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name
+ }
+ $dir = $p_dir; # $File::Find::dir
+ $_ = ($no_chdir ? $dir_name : $dir_rel); # $_
+ if ( substr($_,-2) eq '/.' ) {
+ substr($_, length($_) == 2 ? -1 : -2) = '';
+ }
+
+ lstat($_); # make sure file tests with '_' work
+ { $wanted_callback->() }; # protect against wild "next"
+ }
+ else {
+ push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1] if $bydepth;
+ last;
+ }
+ }
}
}
@@ -912,8 +916,6 @@ 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
@@ -922,8 +924,6 @@ 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
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm
index b7e71abcd3..f7b89f490a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm
@@ -1,16 +1,14 @@
package File::Glob;
use strict;
-our($VERSION, @ISA, @EXPORT_OK, @EXPORT_FAIL, %EXPORT_TAGS, $DEFAULT_FLAGS);
+our($DEFAULT_FLAGS);
require XSLoader;
-@ISA = qw(Exporter);
-
# NOTE: The glob() export is only here for compatibility with 5.6.0.
# csh_glob() should not be used directly, unless you know what you're doing.
-%EXPORT_TAGS = (
+our %EXPORT_TAGS = (
'glob' => [ qw(
GLOB_ABEND
GLOB_ALPHASORT
@@ -33,9 +31,9 @@ require XSLoader;
);
$EXPORT_TAGS{bsd_glob} = [@{$EXPORT_TAGS{glob}}];
-@EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
+our @EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
-$VERSION = '1.33';
+our $VERSION = '1.40';
sub import {
require Exporter;
@@ -66,7 +64,7 @@ sub import {
XSLoader::load();
$DEFAULT_FLAGS = GLOB_CSH();
-if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos)$/) {
+if ($^O =~ /^(?:MSWin32|VMS|os2|riscos)$/) {
$DEFAULT_FLAGS |= GLOB_NOCASE();
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm
index 30d883b61b..fc10c0f244 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm
@@ -2,7 +2,7 @@ package File::Spec;
use strict;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
my %module = (
@@ -33,13 +33,13 @@ File::Spec - portably perform operations on file names
use File::Spec;
- $x=File::Spec->catfile('a', 'b', 'c');
+ my $x = File::Spec->catfile('a', 'b', 'c');
which returns 'a/b/c' under Unix. Or:
use File::Spec::Functions;
- $x = catfile('a', 'b', 'c');
+ my $x = catfile('a', 'b', 'c');
=head1 DESCRIPTION
@@ -316,7 +316,7 @@ L<ExtUtils::MakeMaker>
=head1 AUTHOR
-Currently maintained by Ken Williams C<< <KWILLIAMS@cpan.org> >>.
+Maintained by perl5-porters <F<perl5-porters@perl.org>>.
The vast majority of the code was written by
Kenneth Albanowski C<< <kjahds@kjahds.com> >>,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm
index fd9da81cdf..3fc3c98996 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm
@@ -3,7 +3,7 @@ package File::Spec::AmigaOS;
use strict;
require File::Spec::Unix;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
our @ISA = qw(File::Spec::Unix);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
index 953c23361a..fb3eaaac3e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
@@ -3,7 +3,7 @@ package File::Spec::Cygwin;
use strict;
require File::Spec::Unix;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
our @ISA = qw(File::Spec::Unix);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm
index fcb9e894e3..9391f3a05a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm
@@ -2,7 +2,7 @@ package File::Spec::Epoc;
use strict;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
require File::Spec::Unix;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm
index e14ad2f745..a0d864182a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm
@@ -3,7 +3,7 @@ package File::Spec::Functions;
use File::Spec;
use strict;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
require Exporter;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm
index 8026edcb12..5f5cca9cd7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm
@@ -4,7 +4,7 @@ use strict;
use Cwd ();
require File::Spec::Unix;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
our @ISA = qw(File::Spec::Unix);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm
index 3c35ba99b4..eea5328124 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm
@@ -4,7 +4,7 @@ use strict;
use Cwd ();
require File::Spec::Unix;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
our @ISA = qw(File::Spec::Unix);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm
index c06d18f468..2d5af10827 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm
@@ -3,7 +3,7 @@ package File::Spec::Unix;
use strict;
use Cwd ();
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
=head1 NAME
@@ -530,7 +530,7 @@ 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.
-Please submit bug reports and patches to perlbug@perl.org.
+Please submit bug reports at L<https://github.com/Perl/perl5/issues>.
=head1 SEE ALSO
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm
index 9b78c8b4bc..e5d5a38f20 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm
@@ -4,7 +4,7 @@ use strict;
use Cwd ();
require File::Spec::Unix;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
our @ISA = qw(File::Spec::Unix);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm
index 1537442023..292c2f8d1a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm
@@ -5,7 +5,7 @@ use strict;
use Cwd ();
require File::Spec::Unix;
-our $VERSION = '3.80';
+our $VERSION = '3.88';
$VERSION =~ tr/_//d;
our @ISA = qw(File::Spec::Unix);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm
index 863092c93d..373afd22cb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm
@@ -11,7 +11,7 @@ BEGIN { *warnif = \&warnings::warnif }
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-our $VERSION = '1.09';
+our $VERSION = '1.13';
our @fields;
our ( $st_dev, $st_ino, $st_mode,
@@ -83,7 +83,7 @@ sub _ingroup {
# component (at which point we might as well just call Perl_cando and
# have done with it).
-if (grep $^O eq $_, qw/os2 MSWin32 dos/) {
+if (grep $^O eq $_, qw/os2 MSWin32/) {
# from doio.c
*cando = sub { ($_[0][2] & $_[1]) ? 1 : "" };
@@ -233,8 +233,8 @@ File::stat - by-name interface to Perl's built-in stat() functions
=head1 SYNOPSIS
use File::stat;
- $st = stat($file) or die "No $file: $!";
- if ( ($st->mode & 0111) && $st->nlink > 1) ) {
+ my $st = stat($file) or die "No $file: $!";
+ if ( ($st->mode & 0111) && ($st->nlink > 1) ) {
print "$file is executable with lotsa links\n";
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm
index 133221bb6b..a4ae1e437c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
our($VERSION, @ISA, @EXPORT, @EXPORT_OK);
-$VERSION = "2.03";
+$VERSION = "2.05";
require IO::File;
@ISA = qw(IO::File);
@@ -111,36 +111,36 @@ FileHandle - supply object methods for filehandles
use FileHandle;
- $fh = FileHandle->new;
+ my $fh = FileHandle->new;
if ($fh->open("< file")) {
print <$fh>;
$fh->close;
}
- $fh = FileHandle->new("> FOO");
+ my $fh = FileHandle->new("> FOO");
if (defined $fh) {
print $fh "bar\n";
$fh->close;
}
- $fh = FileHandle->new("file", "r");
+ my $fh = FileHandle->new("file", "r");
if (defined $fh) {
print <$fh>;
undef $fh; # automatically closes the file
}
- $fh = FileHandle->new("file", O_WRONLY|O_APPEND);
+ my $fh = FileHandle->new("file", O_WRONLY|O_APPEND);
if (defined $fh) {
print $fh "corge\n";
undef $fh; # automatically closes the file
}
- $pos = $fh->getpos;
+ my $pos = $fh->getpos;
$fh->setpos($pos);
- $fh->setvbuf($buffer_var, _IOLBF, 1024);
+ $fh->setvbuf(my $buffer_var, _IOLBF, 1024);
- ($readfh, $writefh) = FileHandle::pipe;
+ my ($readfh, $writefh) = FileHandle::pipe;
autoflush STDOUT 1;
@@ -149,7 +149,7 @@ FileHandle - supply object methods for filehandles
NOTE: This class is now a front-end to the IO::* classes.
C<FileHandle::new> creates a C<FileHandle>, which is a reference to a
-newly created symbol (see the C<Symbol> package). If it receives any
+newly created symbol (see the L<Symbol> package). If it receives any
parameters, they are passed to C<FileHandle::open>; if the open fails,
the C<FileHandle> object is destroyed. Otherwise, it is returned to
the caller.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm
index 0805ae7335..8652a40988 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm
@@ -1,7 +1,7 @@
# Call.pm
#
# Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
-# Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+# Copyright (c) 2011-2014, 2018-2022 Reini Urban. All rights reserved.
# Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@ use warnings;
our @ISA = qw(Exporter);
our @EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
-our $VERSION = "1.60" ;
+our $VERSION = "1.64" ;
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -528,7 +528,7 @@ Paul Marquess
=head1 LICENSE
Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
-Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+Copyright (c) 2011-2014, 2018-2022 Reini Urban. All rights reserved.
Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
This program is free software; you can redistribute it and/or
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm
index a1b768a107..fa61dd334e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm
@@ -61,9 +61,8 @@ workaround was to force the C<BEGIN> block to be executed again:
=head1 AUTHORS
-FindBin is supported as part of the core perl distribution. Please send bug
-reports to E<lt>F<perlbug@perl.org>E<gt> using the perlbug program
-included with perl.
+FindBin is supported as part of the core perl distribution. Please submit bug
+reports at L<https://github.com/Perl/perl5/issues>.
Graham Barr E<lt>F<gbarr@pobox.com>E<gt>
Nick Ing-Simmons E<lt>F<nik@tiuk.ti.com>E<gt>
@@ -91,7 +90,7 @@ our @EXPORT_OK = qw($Bin $Script $RealBin $RealScript $Dir $RealDir);
our %EXPORT_TAGS = (ALL => [qw($Bin $Script $RealBin $RealScript $Dir $RealDir)]);
our @ISA = qw(Exporter);
-our $VERSION = "1.52";
+our $VERSION = "1.53";
# needed for VMS-specific filename translation
if( $^O eq 'VMS' ) {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm
index 8263e21713..fda1fc3a8f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm
@@ -4,12 +4,14 @@
# Author : Johan Vromans
# Created On : Tue Sep 11 15:00:12 1990
# Last Modified By: Johan Vromans
-# Last Modified On: Tue Aug 18 14:48:05 2020
-# Update Count : 1739
+# Last Modified On: Thu Nov 17 17:45:27 2022
+# Update Count : 1777
# Status : Released
################ Module Preamble ################
+# There are no CPAN testers for very old versions of Perl.
+# Getopt::Long is reported to run under 5.8.
use 5.004;
use strict;
@@ -18,10 +20,10 @@ use warnings;
package Getopt::Long;
use vars qw($VERSION);
-$VERSION = 2.52;
+$VERSION = 2.54;
# For testing versions only.
use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.52";
+$VERSION_STRING = "2.54";
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK);
@@ -258,9 +260,9 @@ use constant PAT_XINT =>
")";
use constant PAT_FLOAT =>
"[-+]?". # optional sign
- "(?=[0-9.])". # must start with digit or dec.point
+ "(?=\\.?[0-9])". # must start with digit or dec.point
"[0-9_]*". # digits before the dec.point
- "(\.[0-9_]+)?". # optional fraction
+ "(\\.[0-9_]*)?". # optional fraction
"([eE][-+]?[0-9_]+)?"; # optional exponent
sub GetOptions(@) {
@@ -525,8 +527,9 @@ sub GetOptionsFromArray(@) {
my $key; # key (if hash type)
my $arg; # option argument
my $ctl; # the opctl entry
+ my $starter; # the actual starter character(s)
- ($found, $opt, $ctl, $arg, $key) =
+ ($found, $opt, $ctl, $starter, $arg, $key) =
FindOption ($argv, $prefix, $argend, $opt, \%opctl);
if ( $found ) {
@@ -606,12 +609,13 @@ sub GetOptionsFromArray(@) {
eval {
&{$linkage{$opt}}
(Getopt::Long::CallBack->new
- (name => $opt,
- given => $given,
- ctl => $ctl,
- opctl => \%opctl,
- linkage => \%linkage,
- prefix => $prefix,
+ (name => $opt,
+ given => $given,
+ ctl => $ctl,
+ opctl => \%opctl,
+ linkage => \%linkage,
+ prefix => $prefix,
+ starter => $starter,
),
$ctl->[CTL_DEST] == CTL_DEST_HASH ? ($key) : (),
$arg);
@@ -818,7 +822,7 @@ sub ParseOptionSpec ($$) {
[=:] [ionfs] [@%]? (?: \{\d*,?\d*\} )?
|
# ... or an optional-with-default spec
- : (?: -?\d+ | \+ ) [@%]?
+ : (?: 0[0-7]+ | 0[xX][0-9a-fA-F]+ | 0[bB][01]+ | -?\d+ | \+ ) [@%]?
)?
$;x ) {
return (undef, "Error in option spec: \"$opt\"\n");
@@ -851,10 +855,23 @@ sub ParseOptionSpec ($$) {
# Fields are hard-wired here.
$entry = [$spec,$orig,undef,CTL_DEST_SCALAR,0,0];
}
- elsif ( $spec =~ /^:(-?\d+|\+)([@%])?$/ ) {
+ elsif ( $spec =~ /^:(0[0-7]+|0x[0-9a-f]+|0b[01]+|-?\d+|\+)([@%])?$/i ) {
my $def = $1;
my $dest = $2;
- my $type = $def eq '+' ? 'I' : 'i';
+ my $type = 'i'; # assume integer
+ if ( $def eq '+' ) {
+ # Increment.
+ $type = 'I';
+ }
+ elsif ( $def =~ /^(0[0-7]+|0[xX][0-9a-fA-F]+|0[bB][01]+)$/ ) {
+ # Octal, binary or hex.
+ $type = 'o';
+ $def = oct($def);
+ }
+ elsif ( $def =~ /^-?\d+$/ ) {
+ # Integer.
+ $def = 0 + $def;
+ }
$dest ||= '$';
$dest = $dest eq '@' ? CTL_DEST_ARRAY
: $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR;
@@ -923,7 +940,7 @@ sub ParseOptionSpec ($$) {
# Option lookup.
sub FindOption ($$$$$) {
- # returns (1, $opt, $ctl, $arg, $key) if okay,
+ # returns (1, $opt, $ctl, $starter, $arg, $key) if okay,
# returns (1, undef) if option in error,
# returns (0) otherwise.
@@ -1104,7 +1121,7 @@ sub FindOption ($$$$$) {
$arg = 0; # supply explicit value
}
unshift (@$argv, $starter.$rest) if defined $rest;
- return (1, $opt, $ctl, $arg);
+ return (1, $opt, $ctl, $starter, $arg);
}
# Get mandatory status and type info.
@@ -1127,15 +1144,15 @@ sub FindOption ($$$$$) {
# Fake incremental type.
my @c = @$ctl;
$c[CTL_TYPE] = '+';
- return (1, $opt, \@c, 1);
+ return (1, $opt, \@c, $starter, 1);
}
my $val
= defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT]
: $type eq 's' ? ''
: 0;
- return (1, $opt, $ctl, $val);
+ return (1, $opt, $ctl, $starter, $val);
}
- return (1, $opt, $ctl, $type eq 's' ? '' : 0)
+ return (1, $opt, $ctl, $starter, $type eq 's' ? '' : 0)
if $optargtype == 1; # --foo= -> return nothing
}
@@ -1155,9 +1172,9 @@ sub FindOption ($$$$$) {
# Fake incremental type.
my @c = @$ctl;
$c[CTL_TYPE] = '+';
- return (1, $opt, \@c, 1);
+ return (1, $opt, \@c, $starter, 1);
}
- return (1, $opt, $ctl,
+ return (1, $opt, $ctl, $starter,
defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] :
$type eq 's' ? '' : 0);
}
@@ -1187,16 +1204,16 @@ sub FindOption ($$$$$) {
if ( $type eq 's' ) { # string
# A mandatory string takes anything.
- return (1, $opt, $ctl, $arg, $key) if $mand;
+ return (1, $opt, $ctl, $starter, $arg, $key) if $mand;
# Same for optional string as a hash value
- return (1, $opt, $ctl, $arg, $key)
+ return (1, $opt, $ctl, $starter, $arg, $key)
if $ctl->[CTL_DEST] == CTL_DEST_HASH;
# An optional string takes almost anything.
- return (1, $opt, $ctl, $arg, $key)
+ return (1, $opt, $ctl, $starter, $arg, $key)
if defined $optarg || defined $rest;
- return (1, $opt, $ctl, $arg, $key) if $arg eq "-"; # ??
+ return (1, $opt, $ctl, $starter, $arg, $key) if $arg eq "-"; # ??
# Check for option or option list terminator.
if ($arg eq $argend ||
@@ -1248,7 +1265,7 @@ sub FindOption ($$$$$) {
# Fake incremental type.
my @c = @$ctl;
$c[CTL_TYPE] = '+';
- return (1, $opt, \@c, 1);
+ return (1, $opt, \@c, $starter, 1);
}
# Supply default value.
$arg = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : 0;
@@ -1293,7 +1310,7 @@ sub FindOption ($$$$$) {
else {
die("Getopt::Long internal error (Can't happen)\n");
}
- return (1, $opt, $ctl, $arg, $key);
+ return (1, $opt, $ctl, $starter, $arg, $key);
}
sub ValidValue ($$$$$) {
@@ -1529,8 +1546,9 @@ sub setup_pa_args($@) {
if ( UNIVERSAL::isa($pa, 'HASH') ) {
# Get rid of -msg vs. -message ambiguity.
- $pa->{-message} = $pa->{-msg};
- delete($pa->{-msg});
+ if (!defined $pa->{-message}) {
+ $pa->{-message} = delete($pa->{-msg});
+ }
}
elsif ( $pa =~ /^-?\d+$/ ) {
$pa = { -exitval => $pa };
@@ -1714,6 +1732,9 @@ disable C<$verbose> by setting its value to C<0>. Using a suitable
default value, the program can find out whether C<$verbose> is false
by default, or disabled by using C<--noverbose>.
+(If both C<--verbose> and C<--noverbose> are given, whichever is given
+last takes precedence.)
+
An incremental option is specified with a plus C<+> after the
option name:
@@ -1766,6 +1787,10 @@ of the equals sign indicates that the option value is optional. In
this case, if no suitable value is supplied, string valued options get
an empty string C<''> assigned, while numeric options are set to C<0>.
+(If the same option appears more than once on the command line, the
+last given value is used. If you want to take all the values, see
+below.)
+
=head2 Options with multiple values
Options sometimes take several values. For example, a program could
@@ -2010,6 +2035,8 @@ considered an option on itself.
Like C<:i>, but if the value is omitted, the I<number> will be assigned.
+If the I<number> is octal, hexadecimal or binary, behaves like C<:o>.
+
=item : + [ I<desttype> ]
Like C<:i>, but if the value is omitted, the current value for the
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm
index 5803e4599f..8939b42867 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
# ABSTRACT: A small, simple, correct HTTP/1.1 client
-our $VERSION = '0.076';
+our $VERSION = '0.086';
sub _croak { require Carp; Carp::croak(@_) }
@@ -26,8 +26,8 @@ sub _croak { require Carp; Carp::croak(@_) }
#pod scheme, host and port) (defaults to 1)
#pod * C<max_redirect> — Maximum number of redirects allowed (defaults to 5)
#pod * C<max_size> — Maximum response size in bytes (only when not using a data
-#pod callback). If defined, responses larger than this will return an
-#pod exception.
+#pod callback). If defined, requests with responses larger than this will return
+#pod a 599 status code.
#pod * C<http_proxy> — URL of a proxy server to use for HTTP connections
#pod (default is C<$ENV{http_proxy}> — if set)
#pod * C<https_proxy> — URL of a proxy server to use for HTTPS connections
@@ -38,23 +38,31 @@ sub _croak { require Carp; Carp::croak(@_) }
#pod be a comma-separated string or an array reference. (default is
#pod C<$ENV{no_proxy}> —)
#pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
-#pod read or write takes longer than the timeout, an exception is thrown.
-#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
-#pod certificate of an C<https> — connection (default is false)
+#pod read or write takes longer than the timeout, the request response status code
+#pod will be 599.
+#pod * C<verify_SSL> — A boolean that indicates whether to validate the TLS/SSL
+#pod certificate of an C<https> — connection (default is true). Changed from false
+#pod to true in version 0.083.
#pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
#pod L<IO::Socket::SSL>
+#pod * C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}> - Changes the default
+#pod certificate verification behavior to not check server identity if set to 1.
+#pod Only effective if C<verify_SSL> is not set. Added in version 0.083.
+#pod
+#pod
+#pod An accessor/mutator method exists for each attribute.
#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 Errors during request execution will result in a pseudo-HTTP status code of 599
+#pod and a reason of "Internal Exception". The content field in the response will
+#pod contain the text of the error.
#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 single destination scheme, host and port. If any connection-relevant
+#pod attributes are modified via accessor, or if the process ID or thread ID change,
+#pod the 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.
@@ -108,11 +116,17 @@ sub timeout {
sub new {
my($class, %args) = @_;
+ # Support lower case verify_ssl argument, but only if verify_SSL is not
+ # true.
+ if ( exists $args{verify_ssl} ) {
+ $args{verify_SSL} ||= $args{verify_ssl};
+ }
+
my $self = {
max_redirect => 5,
timeout => defined $args{timeout} ? $args{timeout} : 60,
keep_alive => 1,
- verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
+ verify_SSL => defined $args{verify_SSL} ? $args{verify_SSL} : _verify_SSL_default(),
no_proxy => $ENV{no_proxy},
};
@@ -131,6 +145,13 @@ sub new {
return $self;
}
+sub _verify_SSL_default {
+ my ($self) = @_;
+ # Check if insecure default certificate verification behaviour has been
+ # changed by the user by setting PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1
+ return (($ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
+}
+
sub _set_proxies {
my ($self) = @_;
@@ -152,7 +173,7 @@ sub _set_proxies {
# 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};
+ local $ENV{HTTP_PROXY} = ($ENV{CGI_HTTP_PROXY} || "") if $ENV{REQUEST_METHOD};
$self->{http_proxy} = $ENV{http_proxy} || $ENV{HTTP_PROXY} || $self->{proxy};
}
@@ -186,7 +207,7 @@ sub _set_proxies {
return;
}
-#pod =method get|head|put|post|delete
+#pod =method get|head|put|post|patch|delete
#pod
#pod $response = $http->get($url);
#pod $response = $http->get($url, \%options);
@@ -200,7 +221,7 @@ sub _set_proxies {
#pod
#pod =cut
-for my $sub_name ( qw/get head put post delete/ ) {
+for my $sub_name ( qw/get head put post patch delete/ ) {
my $req_method = uc $sub_name;
no strict 'refs';
eval <<"HERE"; ## no critic
@@ -242,9 +263,10 @@ sub post_form {
while ( my ($key, $value) = each %{$args->{headers} || {}} ) {
$headers->{lc $key} = $value;
}
- delete $args->{headers};
return $self->request('POST', $url, {
+ # Any existing 'headers' key in $args will be overridden with a
+ # normalized version below.
%$args,
content => $self->www_form_urlencode($data),
headers => {
@@ -386,6 +408,10 @@ sub mirror {
#pod customizing the action of the callback based on the C<status> or C<headers>
#pod received prior to the content body.)
#pod
+#pod Content data in the request/response is handled as "raw bytes". Any
+#pod encoding/decoding (with associated headers) are the responsibility of the
+#pod caller.
+#pod
#pod The C<request> method returns a hashref containing the response. The hashref
#pod will have the following keys:
#pod
@@ -416,8 +442,8 @@ sub mirror {
#pod redirects in the same order that redirections occurred. If it does
#pod not exist, then no redirections occurred.
#pod
-#pod On an exception during the execution of the request, the C<status> field will
-#pod contain 599, and the C<content> field will contain the text of the exception.
+#pod On an error 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 error.
#pod
#pod =cut
@@ -434,7 +460,7 @@ sub request {
for ( 0 .. 1 ) {
$response = eval { $self->_request($method, $url, $args) };
last unless $@ && $idempotent{$method}
- && $@ =~ m{^(?:Socket closed|Unexpected end)};
+ && $@ =~ m{^(?:Socket closed|Unexpected end|SSL read error)};
}
if (my $e = $@) {
@@ -490,6 +516,8 @@ sub www_form_urlencode {
my @terms;
while( @params ) {
my ($key, $value) = splice(@params, 0, 2);
+ _croak("form data keys must not be undef")
+ if !defined($key);
if ( ref $value eq 'ARRAY' ) {
unshift @params, map { $key => $_ } @$value;
}
@@ -573,16 +601,8 @@ sub can_ssl {
sub connected {
my ($self) = @_;
- # If a socket exists...
- if ($self->{handle} && $self->{handle}{fh}) {
- my $socket = $self->{handle}{fh};
-
- # ...and is connected, return the peer host and port.
- if ($socket->connected) {
- return wantarray
- ? ($socket->peerhost, $socket->peerport)
- : join(':', $socket->peerhost, $socket->peerport);
- }
+ if ( $self->{handle} ) {
+ return $self->{handle}->connected;
}
return;
}
@@ -599,7 +619,9 @@ my %DefaultPort = (
sub _agent {
my $class = ref($_[0]) || $_[0];
(my $default_agent = $class) =~ s{::}{-}g;
- return $default_agent . "/" . $class->VERSION;
+ my $version = $class->VERSION;
+ $default_agent .= "/$version" if defined $version;
+ return $default_agent;
}
sub _request {
@@ -607,6 +629,10 @@ sub _request {
my ($scheme, $host, $port, $path_query, $auth) = $self->_split_url($url);
+ if ($scheme ne 'http' && $scheme ne 'https') {
+ die(qq/Unsupported URL scheme '$scheme'\n/);
+ }
+
my $request = {
method => $method,
scheme => $scheme,
@@ -659,6 +685,7 @@ sub _request {
}
if ( $self->{keep_alive}
+ && $handle->connected
&& $known_message_length
&& $response->{protocol} eq 'HTTP/1.1'
&& ($response->{headers}{connection} || '') ne 'close'
@@ -812,13 +839,25 @@ sub _prepare_headers_and_cb {
$request->{headers}{'connection'} = "close"
unless $self->{keep_alive};
+ # Some servers error on an empty-body PUT/POST without a content-length
+ if ( $request->{method} eq 'PUT' || $request->{method} eq 'POST' ) {
+ if (!defined($args->{content}) || !length($args->{content}) ) {
+ $request->{headers}{'content-length'} = 0;
+ }
+ }
+
if ( defined $args->{content} ) {
- if (ref $args->{content} eq 'CODE') {
- $request->{headers}{'content-type'} ||= "application/octet-stream";
- $request->{headers}{'transfer-encoding'} = 'chunked'
- unless $request->{headers}{'content-length'}
+ if ( ref $args->{content} eq 'CODE' ) {
+ if ( exists $request->{'content-length'} && $request->{'content-length'} == 0 ) {
+ $request->{cb} = sub { "" };
+ }
+ else {
+ $request->{headers}{'content-type'} ||= "application/octet-stream";
+ $request->{headers}{'transfer-encoding'} = 'chunked'
+ unless exists $request->{headers}{'content-length'}
|| $request->{headers}{'transfer-encoding'};
- $request->{cb} = $args->{content};
+ $request->{cb} = $args->{content};
+ }
}
elsif ( length $args->{content} ) {
my $content = $args->{content};
@@ -988,6 +1027,7 @@ my $unsafe_char = qr/[^A-Za-z0-9\-\._~]/;
sub _uri_escape {
my ($self, $str) = @_;
+ return "" if !defined $str;
if ( $] ge '5.008' ) {
utf8::encode($str);
}
@@ -1014,7 +1054,7 @@ use Socket qw[SOL_SOCKET SO_KEEPALIVE];
# not intended for general, per-client use and may be removed in the future
my $SOCKET_CLASS =
$ENV{PERL_HTTP_TINY_IPV4_ONLY} ? 'IO::Socket::INET' :
- eval { require IO::Socket::IP; IO::Socket::IP->VERSION(0.25) } ? 'IO::Socket::IP' :
+ eval { require IO::Socket::IP; IO::Socket::IP->VERSION(0.32) } ? 'IO::Socket::IP' :
'IO::Socket::INET';
sub BUFSIZE () { 32768 } ## no critic
@@ -1038,7 +1078,7 @@ sub new {
timeout => 60,
max_line_size => 16384,
max_header_lines => 64,
- verify_SSL => 0,
+ verify_SSL => HTTP::Tiny::_verify_SSL_default(),
SSL_options => {},
%args
}, $class;
@@ -1062,9 +1102,7 @@ sub connect {
if ( $scheme eq 'https' ) {
$self->_assert_ssl;
}
- elsif ( $scheme ne 'http' ) {
- die(qq/Unsupported URL scheme '$scheme'\n/);
- }
+
$self->{fh} = $SOCKET_CLASS->new(
PeerHost => $peer,
PeerPort => $port,
@@ -1097,6 +1135,16 @@ sub connect {
return $self;
}
+sub connected {
+ my ($self) = @_;
+ if ( $self->{fh} && $self->{fh}->connected ) {
+ return wantarray
+ ? ( $self->{fh}->peerhost, $self->{fh}->peerport )
+ : join( ':', $self->{fh}->peerhost, $self->{fh}->peerport );
+ }
+ return;
+}
+
sub start_ssl {
my ($self, $host) = @_;
@@ -1186,6 +1234,11 @@ sub read {
$len -= $take;
}
+ # Ignore SIGPIPE because SSL reads can result in writes that might error.
+ # See "Expecting exactly the same behavior as plain sockets" in
+ # https://metacpan.org/dist/IO-Socket-SSL/view/lib/IO/Socket/SSL.pod#Common-Usage-Errors
+ local $SIG{PIPE} = 'IGNORE';
+
while ($len > 0) {
$self->can_read
or die(q/Timed out while waiting for socket to become ready for reading/ . "\n");
@@ -1376,7 +1429,8 @@ sub read_body {
sub write_body {
@_ == 2 || die(q/Usage: $handle->write_body(request)/ . "\n");
my ($self, $request) = @_;
- if ($request->{headers}{'content-length'}) {
+ if (exists $request->{headers}{'content-length'}) {
+ return unless $request->{headers}{'content-length'};
return $self->write_content_body($request);
}
else {
@@ -1493,10 +1547,11 @@ sub read_response_header {
my $line = $self->readline;
- $line =~ /\A (HTTP\/(0*\d+\.0*\d+)) [\x09\x20]+ ([0-9]{3}) [\x09\x20]+ ([^\x0D\x0A]*) \x0D?\x0A/x
+ $line =~ /\A (HTTP\/(0*\d+\.0*\d+)) [\x09\x20]+ ([0-9]{3}) (?: [\x09\x20]+ ([^\x0D\x0A]*) )? \x0D?\x0A/x
or die(q/Malformed Status-Line: / . $Printable->($line). "\n");
my ($protocol, $version, $status, $reason) = ($1, $2, $3, $4);
+ $reason = "" unless defined $reason;
die (qq/Unsupported HTTP protocol: $protocol\n/)
unless $version =~ /0*1\.0*[01]/;
@@ -1672,7 +1727,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client
=head1 VERSION
-version 0.076
+version 0.086
=head1 SYNOPSIS
@@ -1741,7 +1796,7 @@ C<max_redirect> — Maximum number of redirects allowed (defaults to 5)
=item *
-C<max_size> — Maximum response size in bytes (only when not using a data callback). If defined, responses larger than this will return an exception.
+C<max_size> — Maximum response size in bytes (only when not using a data callback). If defined, requests with responses larger than this will return a 599 status code.
=item *
@@ -1761,34 +1816,40 @@ C<no_proxy> — List of domain suffixes that should not be proxied. Must be a c
=item *
-C<timeout> — Request timeout in seconds (default is 60) If a socket open, read or write takes longer than the timeout, an exception is thrown.
+C<timeout> — Request timeout in seconds (default is 60) If a socket open, read or write takes longer than the timeout, the request response status code will be 599.
=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 TLS/SSL certificate of an C<https> — connection (default is true). Changed from false to true in version 0.083.
=item *
C<SSL_options> — A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL>
+=item *
+
+C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}> - Changes the default certificate verification behavior to not check server identity if set to 1. Only effective if C<verify_SSL> is not set. Added in version 0.083.
+
=back
+An accessor/mutator method exists for each attribute.
+
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.
+Errors during request execution 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 error.
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, or if the process ID or thread ID change, the
-persistent connection will be dropped. If you want persistent connections
+single destination scheme, host and port. If any connection-relevant
+attributes are modified via accessor, 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.
-=head2 get|head|put|post|delete
+=head2 get|head|put|post|patch|delete
$response = $http->get($url);
$response = $http->get($url, \%options);
@@ -1909,6 +1970,10 @@ 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.)
+Content data in the request/response is handled as "raw bytes". Any
+encoding/decoding (with associated headers) are the responsibility of the
+caller.
+
The C<request> method returns a hashref containing the response. The hashref
will have the following keys:
@@ -1948,8 +2013,8 @@ C<redirects> If this field exists, it is an arrayref of response hash references
=back
-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.
+On an error during the execution of the request, the C<status> field will
+contain 599, and the C<content> field will contain the text of the error.
=head2 www_form_urlencode
@@ -2009,11 +2074,11 @@ proxy
timeout
verify_SSL
-=head1 SSL SUPPORT
+=head1 TLS/SSL SUPPORT
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 new enough versions of these modules are not installed or if the SSL
+greater and L<Net::SSLeay> 1.49 or greater are installed. An error will occur
+if new enough versions of these modules are not installed or if the TLS
encryption fails. You can also use C<HTTP::Tiny::can_ssl()> utility function
that returns boolean to see if the required modules are installed.
@@ -2021,7 +2086,7 @@ An C<https> connection may be made via an C<http> proxy that supports the CONNEC
command (i.e. RFC 2817). You may not proxy C<https> via a proxy that itself
requires C<https> to communicate.
-SSL provides two distinct capabilities:
+TLS/SSL provides two distinct capabilities:
=over 4
@@ -2035,24 +2100,17 @@ Verification of server identity
=back
-B<By default, HTTP::Tiny does not verify server identity>.
+B<By default, HTTP::Tiny verifies server identity>.
-Server identity verification is controversial and potentially tricky because it
-depends on a (usually paid) third-party Certificate Authority (CA) trust model
-to validate a certificate as legitimate. This discriminates against servers
-with self-signed certificates or certificates signed by free, community-driven
-CA's such as L<CAcert.org|http://cacert.org>.
+This was changed in version 0.083 due to security concerns. The previous default
+behavior can be enabled by setting C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}>
+to 1.
-By default, HTTP::Tiny does not make any assumptions about your trust model,
-threat level or risk tolerance. It just aims to give you an encrypted channel
-when you need one.
-
-Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify
-that an SSL connection has a valid SSL certificate corresponding to the host
-name of the connection and that the SSL certificate has been verified by a CA.
-Assuming you trust the CA, this will protect against a L<man-in-the-middle
-attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are
-concerned about security, you should enable this option.
+Verification is done by checking that that the TLS/SSL connection has a valid
+certificate corresponding to the host name of the connection and that the
+certificate has been verified by a CA. Assuming you trust the CA, this will
+protect against L<machine-in-the-middle
+attacks|http://en.wikipedia.org/wiki/Machine-in-the-middle_attack>.
Certificate verification requires a file containing trusted CA certificates.
@@ -2060,9 +2118,7 @@ If the environment variable C<SSL_CERT_FILE> is present, HTTP::Tiny
will try to find a CA certificate file in that location.
If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file
-included with it as a source of trusted CA's. (This means you trust Mozilla,
-the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the
-toolchain used to install it, and your operating system security, right?)
+included with it as a source of trusted CA's.
If that module is not available, then HTTP::Tiny will search several
system-specific default locations for a CA certificate file:
@@ -2081,13 +2137,33 @@ system-specific default locations for a CA certificate file:
/etc/ssl/ca-bundle.pem
+=item *
+
+/etc/openssl/certs/ca-certificates.crt
+
+=item *
+
+/etc/ssl/cert.pem
+
+=item *
+
+/usr/local/share/certs/ca-root-nss.crt
+
+=item *
+
+/etc/pki/tls/cacert.pem
+
+=item *
+
+/etc/certs/ca-certificates.crt
+
=back
-An exception will be raised if C<verify_SSL> is true and no CA certificate file
+An error will be occur if C<verify_SSL> is true and no CA certificate file
is available.
-If you desire complete control over SSL connections, the C<SSL_options> attribute
-lets you provide a hash reference that will be passed through to
+If you desire complete control over TLS/SSL connections, the C<SSL_options>
+attribute lets you provide a hash reference that will be passed through to
C<IO::Socket::SSL::start_SSL()>, overriding any options set by HTTP::Tiny. For
example, to provide your own trusted CA file:
@@ -2097,7 +2173,7 @@ example, to provide your own trusted CA file:
The C<SSL_options> attribute could also be used for such things as providing a
client certificate for authentication to a server or controlling the choice of
-cipher used for the SSL connection. See L<IO::Socket::SSL> documentation for
+cipher used for the TLS/SSL connection. See L<IO::Socket::SSL> documentation for
details.
=head1 PROXY SUPPORT
@@ -2127,7 +2203,7 @@ all_proxy or ALL_PROXY
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.
+variant only) is ignored, but C<CGI_HTTP_PROXY> is considered instead.
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>
@@ -2178,7 +2254,7 @@ L<HTTP/1.1 specifications|http://www.w3.org/Protocols/>:
It attempts to meet all "MUST" requirements of the specification, but does not
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.)
+spec.) Additionally, HTTP::Tiny supports the C<PATCH> method of RFC 5789.
Some particular limitations of note include:
@@ -2268,7 +2344,7 @@ L<Net::SSLeay> - Required for SSL support
=back
-=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
+=for :stopwords cpan testmatrix url bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
=head1 SUPPORT
@@ -2303,7 +2379,7 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
-=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Mitchell Dean Pearce Edward Zborowski Felipe Gasper James Raspass Jeremy Mates Jess Robinson Karen Etheridge Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Nicolas Rochelemagne Olaf Alders Olivier Mengué Petr Písař Serguei Trouchelle Shoichi Kaji SkyMarshal Sören Kornetzki Steve Grazzini Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook
+=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Mitchell Dean Pearce Edward Zborowski Felipe Gasper Graham Knop Greg Kennedy James E Keenan Raspass Jeremy Mates Jess Robinson Karen Etheridge Lukas Eklund Martin J. Evans Martin-Louis Bright Matthew Horsfall Michael R. Davis Mike Doherty Nicolas Rochelemagne Olaf Alders Olivier Mengué Petr Písař sanjay-cpu Serguei Trouchelle Shoichi Kaji SkyMarshal Sören Kornetzki Steve Grazzini Stig Palmquist Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook Xavier Guimard
=over 4
@@ -2373,6 +2449,18 @@ Felipe Gasper <felipe@felipegasper.com>
=item *
+Graham Knop <haarg@haarg.org>
+
+=item *
+
+Greg Kennedy <kennedy.greg@gmail.com>
+
+=item *
+
+James E Keenan <jkeenan@cpan.org>
+
+=item *
+
James Raspass <jraspass@gmail.com>
=item *
@@ -2401,6 +2489,14 @@ Martin-Louis Bright <mlbright@gmail.com>
=item *
+Matthew Horsfall <wolfsage@gmail.com>
+
+=item *
+
+Michael R. Davis <mrdvt92@users.noreply.github.com>
+
+=item *
+
Mike Doherty <doherty@cpan.org>
=item *
@@ -2421,6 +2517,10 @@ Petr Písař <ppisar@redhat.com>
=item *
+sanjay-cpu <snjkmr32@gmail.com>
+
+=item *
+
Serguei Trouchelle <stro@cpan.org>
=item *
@@ -2441,6 +2541,10 @@ Steve Grazzini <steve.grazzini@grantstreet.com>
=item *
+Stig Palmquist <git@stig.io>
+
+=item *
+
Syohei YOSHIDA <syohex@gmail.com>
=item *
@@ -2455,11 +2559,15 @@ Tom Hukins <tom@eborcom.com>
Tony Cook <tony@develop-help.com>
+=item *
+
+Xavier Guimard <yadd@debian.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2018 by Christian Hansen.
+This software is copyright (c) 2023 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/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm
index 5a3e626be8..a0da8ba1b0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm
@@ -6,10 +6,10 @@ use Carp;
use warnings;
no warnings 'uninitialized';
use warnings::register;
-use Scalar::Util qw(reftype);
+no warnings 'experimental::builtin';
+use builtin qw(reftype);
require Exporter;
-our @ISA = qw(Exporter);
our @EXPORT_OK = qw(
fieldhash fieldhashes
@@ -42,7 +42,7 @@ our @EXPORT_OK = qw(
BEGIN {
# make sure all our XS routines are available early so their prototypes
# are correctly applied in the following code.
- our $VERSION = '0.25';
+ our $VERSION = '0.30';
require XSLoader;
XSLoader::load();
}
@@ -92,7 +92,7 @@ Hash::Util - A selection of general-utility hash subroutines
hash_traversal_mask
);
- %hash = (foo => 42, bar => 23);
+ my %hash = (foo => 42, bar => 23);
# Ways to restrict a hash
lock_keys(%hash);
lock_keys(%hash, @keyset);
@@ -510,13 +510,22 @@ Perl has been built with. Possible sizes may be but are not limited to
=item B<hash_value>
my $hash_value = hash_value($string);
-
-hash_value() returns the current perl's internal hash value for a given
-string.
-
-Returns a 32 bit integer representing the hash value of the string passed
-in. This value is only reliable for the lifetime of the process. It may
-be different depending on invocation, environment variables, perl version,
+ my $hash_value = hash_value($string, $seed);
+
+C<hash_value($string)>
+returns
+the current perl's internal hash value for a given string.
+C<hash_value($string, $seed)>
+returns the hash value as if computed with a different seed.
+If the custom seed is too short, the function errors out.
+The minimum length of the seed is implementation-dependent.
+
+Returns a 32-bit integer
+representing the hash value of the string passed in.
+The 1-parameter value is only reliable
+for the lifetime of the process.
+It may be different
+depending on invocation, environment variables, perl version,
architectures, and build options.
B<Note that the hash value of a given string is sensitive information>:
@@ -833,6 +842,9 @@ hv_store() is from Array::RefElem, Copyright 2000 Gisle Aas.
Additional code by Yves Orton.
+Description of C<hash_value($string, $seed)>
+by Christopher Yeleighton <ne01026@shark.2a.pl>
+
=head1 SEE ALSO
L<Scalar::Util>, L<List::Util> and L<perlsec/"Algorithmic Complexity Attacks">.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm
index 06343ae80a..f010b2d03c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm
@@ -1,14 +1,13 @@
package Hash::Util::FieldHash;
-use 5.009004;
use strict;
use warnings;
-use Scalar::Util qw( reftype);
+no warnings 'experimental::builtin';
+use builtin qw(reftype);
-our $VERSION = '1.21';
+our $VERSION = '1.26';
-require Exporter;
-our @ISA = qw(Exporter);
+use Exporter 'import';
our %EXPORT_TAGS = (
'all' => [ qw(
fieldhash
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm
index 5eef8eebaf..17ac9b111b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm
@@ -4,7 +4,7 @@ package I18N::LangTags::List;
# Time-stamp: "2004-10-06 23:26:21 ADT"
use strict;
our (%Name, %Is_Disrec, $Debug);
-our $VERSION = '0.40';
+our $VERSION = '0.41';
# POD at the end.
#----------------------------------------------------------------------
@@ -353,9 +353,9 @@ eq Zend
eq Azeri
Notable forms:
-{az-Arab} Azerbaijani in Arabic script;
-{az-Cyrl} Azerbaijani in Cyrillic script;
-{az-Latn} Azerbaijani in Latin script.
+{az-arab} Azerbaijani in Arabic script;
+{az-cyrl} Azerbaijani in Cyrillic script;
+{az-latn} Azerbaijani in Latin script.
=item {ban} : Balinese
@@ -473,8 +473,8 @@ eq Nyanja. eq Chinyanja.
Many forms are mutually un-intelligible in spoken media.
Notable forms:
-{zh-Hans} Chinese, in simplified script;
-{zh-Hant} Chinese, in traditional script;
+{zh-hans} Chinese, in simplified script;
+{zh-hant} Chinese, in traditional script;
{zh-tw} Taiwan Chinese;
{zh-cn} PRC Chinese;
{zh-sg} Singapore Chinese;
@@ -1370,8 +1370,8 @@ NOT Scots Gaelic!
eq Serb. NOT Sorbian.
Notable forms:
-{sr-Cyrl} : Serbian in Cyrillic script;
-{sr-Latn} : Serbian in Latin script.
+{sr-cyrl} : Serbian in Cyrillic script;
+{sr-latn} : Serbian in Latin script.
=item {srr} : Serer
@@ -1612,8 +1612,8 @@ Not a tag for normal use.
eq E<Ouml>zbek
Notable forms:
-{uz-Cyrl} Uzbek in Cyrillic script;
-{uz-Latn} Uzbek in Latin script.
+{uz-cyrl} Uzbek in Cyrillic script;
+{uz-latn} Uzbek in Latin script.
=item {vai} : Vai
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm
index 7206e1ce85..8ff6eda2d7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm
@@ -5,11 +5,9 @@ use strict;
use warnings;
use Carp;
-require Exporter;
+use Exporter 'import';
require XSLoader;
-our @ISA = qw(Exporter);
-
our @EXPORT = qw(langinfo);
our @EXPORT_OK = qw(
@@ -72,7 +70,7 @@ our @EXPORT_OK = qw(
YESSTR
);
-our $VERSION = '0.19';
+our $VERSION = '0.22';
XSLoader::load();
@@ -182,8 +180,11 @@ For the eras based on typically some ruler, such as the Japanese Emperor
=head2 For systems without C<nl_langinfo>
-Starting in Perl 5.28, this module is available even on systems that lack a
-native C<nl_langinfo>. On such systems, it uses various methods to construct
+This module originally was just a wrapper for the libc C<nl_langinfo>
+function, and did not work on systems lacking it, such as Windows.
+
+Starting in Perl 5.28, this module works on all platforms. When
+C<nl_langinfo> is not available, it uses various methods to construct
what that function, if present, would return. But there are potential
glitches. These are the items that could be different:
@@ -195,8 +196,11 @@ Unimplemented, so returns C<"">.
=item C<CODESET>
-Unimplemented, except on Windows, due to the vagaries of vendor locale names,
-returning C<""> on non-Windows.
+This should work properly for Windows platforms. On almost all other modern
+platforms, it will reliably return "UTF-8" if that is the code set.
+Otherwise, it depends on the locale's name. If that is of the form
+C<foo.bar>, it will assume C<bar> is the code set; and it also knows about the
+two locales "C" and "POSIX". If none of those apply it returns C<"">.
=item C<YESEXPR>
@@ -226,15 +230,14 @@ representation.
=item C<CRNCYSTR>
The return may be incorrect for those rare locales where the currency symbol
-replaces the radix character.
-Send email to L<mailto:perlbug@perl.org> if you have examples of it needing
-to work differently.
+replaces the radix character. If you have examples of it needing to work
+differently, please file a report at L<https://github.com/Perl/perl5/issues>.
=item C<ALT_DIGITS>
-Currently this gives the same results as Linux does.
-Send email to L<mailto:perlbug@perl.org> if you have examples of it needing
-to work differently.
+Currently this gives the same results as Linux does. If you have examples of
+it needing to work differently, please file a report at
+L<https://github.com/Perl/perl5/issues>.
=item C<ERA_D_FMT>
@@ -275,8 +278,6 @@ workaround for this; patches welcome: see L<perlapi/switch_to_global_locale>.
L<perllocale>, L<POSIX/localeconv>, L<POSIX/setlocale>, L<nl_langinfo(3)>.
-The langinfo() function is just a wrapper for the C nl_langinfo() interface.
-
=head1 AUTHOR
Jarkko Hietaniemi, E<lt>jhi@hut.fiE<gt>. Now maintained by Perl 5 porters.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm
index 8c094f802e..256f37507a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm
@@ -7,7 +7,7 @@ use Carp;
use strict;
use warnings;
-our $VERSION = "1.46";
+our $VERSION = "1.52";
XSLoader::load 'IO', $VERSION;
sub import {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
index c157520f08..e19755123d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status);
+use IO::Compress::Base::Common 2.204 qw(:Status);
-use Compress::Raw::Bzip2 2.101 ;
+use Compress::Raw::Bzip2 2.204 ;
our ($VERSION);
-$VERSION = '2.102';
+$VERSION = '2.204';
sub mkCompObject
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
index 1048dbda82..54696ffd78 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
@@ -4,13 +4,13 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status);
-use Compress::Raw::Zlib 2.101 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.204 qw(:Status);
+use Compress::Raw::Zlib 2.204 qw( !crc32 !adler32 ) ;
require Exporter;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
-$VERSION = '2.102';
+$VERSION = '2.204';
@ISA = qw(Exporter);
@EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
%EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
@@ -40,6 +40,29 @@ sub mkCompObject
} ;
}
+sub mkCompObject1
+{
+ my $crc32 = shift ;
+ my $adler32 = shift ;
+ my $level = shift ;
+ my $strategy = shift ;
+
+ my ($def, $status) = Compress::Raw::Zlib::Deflate->new(
+ -AppendOutput => 1,
+ -CRC32 => $crc32,
+ -ADLER32 => $adler32,
+ -Level => $level,
+ -Strategy => $strategy,
+ -WindowBits => MAX_WBITS);
+
+ return (undef, "Cannot create Deflate object: $status", $status)
+ if $status != Z_OK;
+
+ return bless {'Def' => $def,
+ 'Error' => '',
+ } ;
+}
+
sub compr
{
my $self = shift ;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
index 8b92a3cea6..5938d13697 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
@@ -4,10 +4,10 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status);
+use IO::Compress::Base::Common 2.204 qw(:Status);
our ($VERSION);
-$VERSION = '2.102';
+$VERSION = '2.204';
sub mkCompObject
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm
index 269f10c7a4..37a0df94f3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm
@@ -6,7 +6,7 @@ require 5.006 ;
use strict ;
use warnings;
-use IO::Compress::Base::Common 2.101 ;
+use IO::Compress::Base::Common 2.204 ;
use IO::File (); ;
use Scalar::Util ();
@@ -20,7 +20,7 @@ use Symbol();
our (@ISA, $VERSION);
@ISA = qw(IO::File Exporter);
-$VERSION = '2.102';
+$VERSION = '2.204';
#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.
@@ -1051,7 +1051,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
index 67882cf515..32c4aa3464 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
+++ b/systems/texlive/tlnet/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.102';
+$VERSION = '2.204';
@EXPORT = qw( isaFilehandle isaFilename isaScalar
whatIsInput whatIsOutput
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
index 2d333fd1e6..6aa0ddd4cb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
@@ -5,16 +5,16 @@ use warnings;
use bytes;
require Exporter ;
-use IO::Compress::Base 2.101 ;
+use IO::Compress::Base 2.204 ;
-use IO::Compress::Base::Common 2.101 qw();
-use IO::Compress::Adapter::Bzip2 2.101 ;
+use IO::Compress::Base::Common 2.204 qw();
+use IO::Compress::Adapter::Bzip2 2.204 ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
-$VERSION = '2.102';
+$VERSION = '2.204';
$Bzip2Error = '';
@ISA = qw(IO::Compress::Base Exporter);
@@ -51,7 +51,7 @@ sub getExtraParams
{
my $self = shift ;
- use IO::Compress::Base::Common 2.101 qw(:Parse);
+ use IO::Compress::Base::Common 2.204 qw(:Parse);
return (
'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1],
@@ -818,7 +818,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
index 9e71977df4..a34a6ba6e6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
@@ -8,16 +8,16 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.101 ();
-use IO::Compress::Adapter::Deflate 2.101 ;
+use IO::Compress::RawDeflate 2.204 ();
+use IO::Compress::Adapter::Deflate 2.204 ;
-use IO::Compress::Zlib::Constants 2.101 ;
-use IO::Compress::Base::Common 2.101 qw();
+use IO::Compress::Zlib::Constants 2.204 ;
+use IO::Compress::Base::Common 2.204 qw();
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$DeflateError = '';
@ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -42,92 +42,35 @@ sub deflate
return $obj->_def(@_);
}
-
-sub bitmask($$$$)
-{
- my $into = shift ;
- my $value = shift ;
- my $offset = shift ;
- my $mask = shift ;
-
- return $into | (($value & $mask) << $offset ) ;
-}
-
-sub mkDeflateHdr($$$;$)
-{
- my $method = shift ;
- my $cinfo = shift;
- my $level = shift;
- my $fdict_adler = shift ;
-
- my $cmf = 0;
- my $flg = 0;
- my $fdict = 0;
- $fdict = 1 if defined $fdict_adler;
-
- $cmf = bitmask($cmf, $method, ZLIB_CMF_CM_OFFSET, ZLIB_CMF_CM_BITS);
- $cmf = bitmask($cmf, $cinfo, ZLIB_CMF_CINFO_OFFSET, ZLIB_CMF_CINFO_BITS);
-
- $flg = bitmask($flg, $fdict, ZLIB_FLG_FDICT_OFFSET, ZLIB_FLG_FDICT_BITS);
- $flg = bitmask($flg, $level, ZLIB_FLG_LEVEL_OFFSET, ZLIB_FLG_LEVEL_BITS);
-
- my $fcheck = 31 - ($cmf * 256 + $flg) % 31 ;
- $flg = bitmask($flg, $fcheck, ZLIB_FLG_FCHECK_OFFSET, ZLIB_FLG_FCHECK_BITS);
-
- my $hdr = pack("CC", $cmf, $flg) ;
- $hdr .= pack("N", $fdict_adler) if $fdict ;
-
- return $hdr;
-}
-
-sub mkHeader
+sub mkComp
{
my $self = shift ;
- my $param = shift ;
+ my $got = shift ;
- my $level = $param->getValue('level');
- my $strategy = $param->getValue('strategy');
+ my ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject1(
+ $got->getValue('crc32'),
+ $got->getValue('adler32'),
+ $got->getValue('level'),
+ $got->getValue('strategy')
+ );
- my $lflag ;
- $level = 6
- if $level == Z_DEFAULT_COMPRESSION ;
+ return $self->saveErrorString(undef, $errstr, $errno)
+ if ! defined $obj;
- if (ZLIB_VERNUM >= 0x1210)
- {
- if ($strategy >= Z_HUFFMAN_ONLY || $level < 2)
- { $lflag = ZLIB_FLG_LEVEL_FASTEST }
- elsif ($level < 6)
- { $lflag = ZLIB_FLG_LEVEL_FAST }
- elsif ($level == 6)
- { $lflag = ZLIB_FLG_LEVEL_DEFAULT }
- else
- { $lflag = ZLIB_FLG_LEVEL_SLOWEST }
- }
- else
- {
- $lflag = ($level - 1) >> 1 ;
- $lflag = 3 if $lflag > 3 ;
- }
-
- #my $wbits = (MAX_WBITS - 8) << 4 ;
- my $wbits = 7;
- mkDeflateHdr(ZLIB_CMF_CM_DEFLATED, $wbits, $lflag);
+ return $obj;
}
-sub ckParams
+
+sub mkHeader
{
my $self = shift ;
- my $got = shift;
-
- $got->setValue('adler32' => 1);
- return 1 ;
+ return '';
}
-
sub mkTrailer
{
my $self = shift ;
- return pack("N", *$self->{Compress}->adler32()) ;
+ return '';
}
sub mkFinalTrailer
@@ -135,12 +78,6 @@ sub mkFinalTrailer
return '';
}
-#sub newHeader
-#{
-# my $self = shift ;
-# return *$self->{Header};
-#}
-
sub getExtraParams
{
my $self = shift ;
@@ -930,9 +867,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -940,6 +877,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -952,7 +892,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod
index 367468ec07..549ea2a7b4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod
@@ -197,7 +197,7 @@ L<ftp://ftp.info-zip.org/pub/infozip/doc/>
=head2 Gzip Resources
The primary reference for gzip files is RFC 1952
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The primary site for gzip is L<http://www.gzip.org>.
@@ -682,7 +682,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
index 4111d07938..6b142d4521 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
@@ -8,12 +8,12 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.101 () ;
-use IO::Compress::Adapter::Deflate 2.101 ;
+use IO::Compress::RawDeflate 2.204 () ;
+use IO::Compress::Adapter::Deflate 2.204 ;
-use IO::Compress::Base::Common 2.101 qw(:Status );
-use IO::Compress::Gzip::Constants 2.101 ;
-use IO::Compress::Zlib::Extra 2.101 ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
+use IO::Compress::Gzip::Constants 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
BEGIN
{
@@ -25,7 +25,7 @@ BEGIN
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$GzipError = '' ;
@ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -1242,9 +1242,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -1252,6 +1252,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1264,7 +1267,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
index a3d09e2e21..f56612d729 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
+++ b/systems/texlive/tlnet/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.102';
+$VERSION = '2.204';
@ISA = qw(Exporter);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
index 6a0ff6e0f3..75ee62ba48 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
@@ -6,16 +6,16 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base 2.101 ;
-use IO::Compress::Base::Common 2.101 qw(:Status :Parse);
-use IO::Compress::Adapter::Deflate 2.101 ;
-use Compress::Raw::Zlib 2.101 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base 2.204 ;
+use IO::Compress::Base::Common 2.204 qw(:Status :Parse);
+use IO::Compress::Adapter::Deflate 2.204 ;
+use Compress::Raw::Zlib 2.204 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$RawDeflateError = '';
@ISA = qw(IO::Compress::Base Exporter);
@@ -985,9 +985,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -995,6 +995,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1007,7 +1010,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm
index fea487af67..856ae7b08a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm
@@ -4,41 +4,41 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status );
-use IO::Compress::RawDeflate 2.101 ();
-use IO::Compress::Adapter::Deflate 2.101 ;
-use IO::Compress::Adapter::Identity 2.101 ;
-use IO::Compress::Zlib::Extra 2.101 ;
-use IO::Compress::Zip::Constants 2.101 ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
+use IO::Compress::RawDeflate 2.204 ();
+use IO::Compress::Adapter::Deflate 2.204 ;
+use IO::Compress::Adapter::Identity 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
+use IO::Compress::Zip::Constants 2.204 ;
use File::Spec();
use Config;
-use Compress::Raw::Zlib 2.101 ();
+use Compress::Raw::Zlib 2.204 ();
BEGIN
{
eval { require IO::Compress::Adapter::Bzip2 ;
- IO::Compress::Adapter::Bzip2->import( 2.101 );
+ IO::Compress::Adapter::Bzip2->import( 2.201 );
require IO::Compress::Bzip2 ;
- IO::Compress::Bzip2->import( 2.101 );
+ IO::Compress::Bzip2->import( 2.201 );
} ;
eval { require IO::Compress::Adapter::Lzma ;
- IO::Compress::Adapter::Lzma->import( 2.101 );
+ IO::Compress::Adapter::Lzma->import( 2.201 );
require IO::Compress::Lzma ;
- IO::Compress::Lzma->import( 2.101 );
+ IO::Compress::Lzma->import( 2.201 );
} ;
eval { require IO::Compress::Adapter::Xz ;
- IO::Compress::Adapter::Xz->import( 2.101 );
+ IO::Compress::Adapter::Xz->import( 2.201 );
require IO::Compress::Xz ;
- IO::Compress::Xz->import( 2.101 );
+ IO::Compress::Xz->import( 2.201 );
} ;
eval { require IO::Compress::Adapter::Zstd ;
- IO::Compress::Adapter::Zstd->import( 2.101 );
+ IO::Compress::Adapter::Zstd->import( 2.201 );
require IO::Compress::Zstd ;
- IO::Compress::Zstd->import( 2.101 );
+ IO::Compress::Zstd->import( 2.201 );
} ;
}
@@ -47,7 +47,7 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$ZipError = '';
@ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -85,20 +85,24 @@ sub isMethodAvailable
if $method == ZIP_CM_STORE || $method == ZIP_CM_DEFLATE ;
return 1
- if $method == ZIP_CM_BZIP2 and
- defined $IO::Compress::Adapter::Bzip2::VERSION;
+ if $method == ZIP_CM_BZIP2 &&
+ defined $IO::Compress::Adapter::Bzip2::VERSION &&
+ defined &{ "IO::Compress::Adapter::Bzip2::mkRawZipCompObject" };
return 1
- if $method == ZIP_CM_LZMA and
- defined $IO::Compress::Adapter::Lzma::VERSION;
+ if $method == ZIP_CM_LZMA &&
+ defined $IO::Compress::Adapter::Lzma::VERSION &&
+ defined &{ "IO::Compress::Adapter::Lzma::mkRawZipCompObject" };
return 1
- if $method == ZIP_CM_XZ and
- defined $IO::Compress::Adapter::Xz::VERSION;
+ if $method == ZIP_CM_XZ &&
+ defined $IO::Compress::Adapter::Xz::VERSION &&
+ defined &{ "IO::Compress::Adapter::Xz::mkRawZipCompObject" };
return 1
- if $method == ZIP_CM_ZSTD and
- defined $IO::Compress::Adapter::ZSTD::VERSION;
+ if $method == ZIP_CM_ZSTD &&
+ defined $IO::Compress::Adapter::ZSTD::VERSION &&
+ defined &{ "IO::Compress::Adapter::ZSTD::mkRawZipCompObject" };
return 0;
}
@@ -566,6 +570,8 @@ sub mkFinalTrailer
$z64e .= U64::pack_V64 $entries ; # entries in central dir
$z64e .= U64::pack_V64 $cd_len ; # size of central dir
$z64e .= *$self->{ZipData}{Offset}->getPacked_V64() ; # offset to start central dir
+ $z64e .= *$self->{ZipData}{extrafieldzip64} # otional extra field
+ if defined *$self->{ZipData}{extrafieldzip64} ;
$z64e = pack("V", ZIP64_END_CENTRAL_REC_HDR_SIG) # signature
. U64::pack_V64(length $z64e)
@@ -638,7 +644,7 @@ sub ckParams
}
*$self->{ZipData}{AnyZip64} = 1
- if $got->getValue('zip64');
+ if $got->getValue('zip64') || $got->getValue('extrafieldzip64') ;
*$self->{ZipData}{Zip64} = $got->getValue('zip64');
*$self->{ZipData}{Stream} = $got->getValue('stream');
@@ -658,7 +664,7 @@ sub ckParams
*$self->{ZipData}{ZipComment} = $got->getValue('zipcomment') ;
- for my $name (qw( extrafieldlocal extrafieldcentral ))
+ for my $name (qw( extrafieldlocal extrafieldcentral extrafieldzip64))
{
my $data = $got->getValue($name) ;
if (defined $data) {
@@ -667,6 +673,7 @@ sub ckParams
if $bad ;
$got->setValue($name, $data) ;
+ *$self->{ZipData}{$name} = $data;
}
}
@@ -731,6 +738,7 @@ our %PARAMS = (
'textflag' => [IO::Compress::Base::Common::Parse_boolean, 0],
'extrafieldlocal' => [IO::Compress::Base::Common::Parse_any, undef],
'extrafieldcentral'=> [IO::Compress::Base::Common::Parse_any, undef],
+ 'extrafieldzip64' => [IO::Compress::Base::Common::Parse_any, undef],
# Lzma
'preset' => [IO::Compress::Base::Common::Parse_unsigned, 6],
@@ -1053,12 +1061,24 @@ See L<File::GlobMapper|File::GlobMapper> for more details.
If the C<$input_filename_or_reference> parameter is any other type,
C<undef> will be returned.
-In addition, if C<$input_filename_or_reference> is a simple filename,
-the default values for
-the C<Name>, C<Time>, C<TextFlag>, C<ExtAttr>, C<exUnixN> and C<exTime> options will be sourced from that file.
+In addition, if C<$input_filename_or_reference> corresponds to a filename
+from the filesystem, a number of zip file header fields will be populated by default
+using the following attributes from the input file
+
+=over 5
+
+=item * the full filename contained in C<$input_filename_or_reference>
+
+=item * the file protection attributes
+
+=item * the UID/GID for the file
+
+=item * the file timestamps
+
+=back
If you do not want to use these defaults they can be overridden by
-explicitly setting the C<Name>, C<Time>, C<TextFlag>, C<ExtAttr>, C<exUnixN> and C<exTime> options or by setting the
+explicitly setting one, or more, of the C<Name>, C<Time>, C<TextFlag>, C<ExtAttr>, C<exUnixN> and C<exTime> options or by setting the
C<Minimal> parameter.
=head3 The C<$output_filename_or_reference> parameter
@@ -2121,9 +2141,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -2131,6 +2151,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -2143,7 +2166,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
index 7982fc32f6..b6e0d35fed 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
@@ -7,7 +7,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
-$VERSION = '2.102';
+$VERSION = '2.204';
@ISA = qw(Exporter);
@@ -20,6 +20,7 @@ $VERSION = '2.102';
ZIP_CM_PPMD
ZIP_CM_XZ
ZIP_CM_ZSTD
+ ZIP_CM_AES
ZIP_LOCAL_HDR_SIG
ZIP_DATA_HDR_SIG
@@ -69,6 +70,7 @@ use constant ZIP_CM_LZMA => 14 ;
use constant ZIP_CM_ZSTD => 93 ;
use constant ZIP_CM_XZ => 95 ;
use constant ZIP_CM_PPMD => 98 ; # Not Supported yet
+use constant ZIP_CM_AES => 99 ;
# General Purpose Flag
use constant ZIP_GP_FLAG_ENCRYPTED_MASK => (1 << 0) ;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
index 937101e427..b0eb4cfcc3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT);
-$VERSION = '2.102';
+$VERSION = '2.204';
@ISA = qw(Exporter);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
index ab7446a464..9767fe1694 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
@@ -8,9 +8,9 @@ use bytes;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.102';
+$VERSION = '2.204';
-use IO::Compress::Gzip::Constants 2.101 ;
+use IO::Compress::Gzip::Constants 2.204 ;
sub ExtraFieldError
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm
index 3cfd5f3b48..72cbed3522 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm
@@ -18,7 +18,7 @@ use File::stat;
use File::Spec;
our @ISA = qw(Tie::Hash Exporter);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
our @EXPORT_OK = qw(DIR_UNLINK);
@@ -153,7 +153,7 @@ IO::Dir - supply object methods for directory handles
=head1 SYNOPSIS
use IO::Dir;
- $d = IO::Dir->new(".");
+ my $d = IO::Dir->new(".");
if (defined $d) {
while (defined($_ = $d->read)) { something($_); }
$d->rewind;
@@ -161,7 +161,7 @@ IO::Dir - supply object methods for directory handles
undef $d;
}
- tie %dir, 'IO::Dir', ".";
+ tie my %dir, 'IO::Dir', ".";
foreach (keys %dir) {
print $_, " " , $dir{$_}->size,"\n";
}
@@ -236,7 +236,7 @@ L<File::stat>
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all
-bugs to <perlbug@perl.org>.
+bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm
index e2accf7d2a..a3ff37af50 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm
@@ -10,29 +10,29 @@ IO::File - supply object methods for filehandles
use IO::File;
- $fh = IO::File->new();
+ my $fh = IO::File->new();
if ($fh->open("< file")) {
print <$fh>;
$fh->close;
}
- $fh = IO::File->new("> file");
+ my $fh = IO::File->new("> file");
if (defined $fh) {
print $fh "bar\n";
$fh->close;
}
- $fh = IO::File->new("file", "r");
+ my $fh = IO::File->new("file", "r");
if (defined $fh) {
print <$fh>;
undef $fh; # automatically closes the file
}
- $fh = IO::File->new("file", O_WRONLY|O_APPEND);
+ my $fh = IO::File->new("file", O_WRONLY|O_APPEND);
if (defined $fh) {
print $fh "corge\n";
- $pos = $fh->getpos;
+ my $pos = $fh->getpos;
$fh->setpos($pos);
undef $fh; # automatically closes the file
@@ -135,7 +135,7 @@ require Exporter;
our @ISA = qw(IO::Handle IO::Seekable Exporter);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
our @EXPORT = @IO::Seekable::EXPORT;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm
index 2010bb831e..18fe7140c1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm
@@ -8,20 +8,20 @@ IO::Handle - supply object methods for I/O handles
use IO::Handle;
- $io = IO::Handle->new();
+ my $io = IO::Handle->new();
if ($io->fdopen(fileno(STDIN),"r")) {
print $io->getline;
$io->close;
}
- $io = IO::Handle->new();
+ my $io = IO::Handle->new();
if ($io->fdopen(fileno(STDOUT),"w")) {
$io->print("Some text\n");
}
# setvbuf is not available by default on Perls 5.8.0 and later.
use IO::Handle '_IOLBF';
- $io->setvbuf($buffer_var, _IOLBF, 1024);
+ $io->setvbuf(my $buffer_var, _IOLBF, 1024);
undef $io; # automatically closes the file if it's open
@@ -234,7 +234,7 @@ the taint-clean flag failed. (eg invalid handle)
=head1 NOTE
An C<IO::Handle> object is a reference to a symbol/GLOB reference (see
-the C<Symbol> package). Some modules that
+the L<Symbol> package). Some modules that
inherit from C<IO::Handle> may want to keep object related variables
in the hash table part of the GLOB. In an attempt to prevent modules
trampling on each other I propose the that any such module should prefix
@@ -270,7 +270,7 @@ use IO (); # Load the XS module
require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
our @EXPORT_OK = qw(
autoflush
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm
index 7b195ca643..a99391edc4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm
@@ -13,7 +13,7 @@ use strict;
use Carp;
use Symbol;
-our $VERSION = "1.46";
+our $VERSION = "1.52";
sub new {
my $type = shift;
@@ -203,7 +203,7 @@ processes.
=item new ( [READER, WRITER] )
Creates an C<IO::Pipe>, which is a reference to a newly created symbol
-(see the C<Symbol> package). C<IO::Pipe::new> optionally takes two
+(see the L<Symbol> package). C<IO::Pipe::new> optionally takes two
arguments, which should be objects blessed into C<IO::Handle>, or a
subclass thereof. These two objects will be used for the system call
to C<pipe>. If no arguments are given then method C<handles> is called
@@ -245,7 +245,7 @@ L<IO::Handle>
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all
-bugs to <perlbug@perl.org>.
+bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm
index 20f630bb73..091461f6d7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm
@@ -12,7 +12,7 @@ use IO::Handle;
use Exporter ();
our @ISA = qw(Exporter);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
our @EXPORT = qw( POLLIN
POLLOUT
@@ -197,7 +197,7 @@ L<poll(2)>, L<IO::Handle>, L<IO::Select>
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all
-bugs to <perlbug@perl.org>.
+bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm
index 5d44d7af07..c2a1b308b6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm
@@ -106,7 +106,7 @@ require Exporter;
our @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
our @ISA = qw(Exporter);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
sub seek {
@_ == 3 or croak 'usage: $io->seek(POS, WHENCE)';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm
index fe07f3b2e6..7eb99bd0ea 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm
@@ -10,7 +10,7 @@ use strict;
use warnings::register;
require Exporter;
-our $VERSION = "1.46";
+our $VERSION = "1.52";
our @ISA = qw(Exporter); # This is only so we can do version checking
@@ -68,7 +68,7 @@ sub _fileno
# previously registered and has since been closed. ->remove still wants to
# know what fileno it had
foreach my $i ( FIRST_FD .. $#$self ) {
- return $i - FIRST_FD if $self->[$i] == $f;
+ return $i - FIRST_FD if defined $self->[$i] && $self->[$i] == $f;
}
return undef;
}
@@ -405,7 +405,7 @@ listening for more connections on a listen socket
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all
-bugs to <perlbug@perl.org>.
+bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm
index b7cdf06d3a..7c2540b35c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm
@@ -23,7 +23,7 @@ require IO::Socket::UNIX if ($^O ne 'epoc' && $^O ne 'symbian');
our @ISA = qw(IO::Handle);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
our @EXPORT_OK = qw(sockatmark);
@@ -916,8 +916,8 @@ L<IO::Socket::IP>
=head1 AUTHOR
-Graham Barr. atmark() by Lincoln Stein. Currently maintained by the
-Perl Porters. Please report all bugs to <perlbug@perl.org>.
+Graham Barr. atmark() by Lincoln Stein. Currently maintained by the Perl 5
+Porters. Please report all bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm
index 5b76c2e3f5..97d445043c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm
@@ -14,7 +14,7 @@ use Exporter;
use Errno;
our @ISA = qw(IO::Socket);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
my $EINVAL = exists(&Errno::EINVAL) ? Errno::EINVAL() : 1;
@@ -330,7 +330,7 @@ inherits all the methods defined by L<IO::Socket>.
=item new ( [ARGS] )
Creates an C<IO::Socket::INET> object, which is a reference to a
-newly created symbol (see the C<Symbol> package). C<new>
+newly created symbol (see the L<Symbol> package). C<new>
optionally takes arguments, these arguments are in key-value pairs.
In addition to the key-value pairs accepted by L<IO::Socket>,
@@ -401,7 +401,7 @@ Examples:
$sock = IO::Socket::INET->new(
PeerPort => 9999,
PeerAddr => inet_ntoa(INADDR_BROADCAST),
- Proto => udp,
+ Proto => 'udp',
LocalAddr => 'localhost',
Broadcast => 1 )
or die "Can't bind : $IO::Socket::errstr\n";
@@ -460,7 +460,7 @@ L<Socket>, L<IO::Socket>
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all
-bugs to <perlbug@perl.org>.
+bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm
index 3158ef55ab..2601c716af 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm
@@ -12,7 +12,8 @@ use warnings;
# $VERSION needs to be set before use base 'IO::Socket'
# - https://rt.cpan.org/Ticket/Display.html?id=92107
BEGIN {
- our $VERSION = '0.41';
+ our $VERSION = '0.41_01';
+ $VERSION = eval $VERSION;
}
use base qw( IO::Socket );
@@ -154,6 +155,12 @@ sub import
die "Cannot socket(PF_INET6) - $!";
if( setsockopt $testsock, IPPROTO_IPV6, IPV6_V6ONLY, 0 ) {
+ if ($^O eq "dragonfly") {
+ # dragonflybsd 6.4 lies about successfully turning this off
+ if (getsockopt $testsock, IPPROTO_IPV6, IPV6_V6ONLY) {
+ return $can_disable_v6only = 0;
+ }
+ }
return $can_disable_v6only = 1;
}
elsif( $! == EINVAL || $! == EOPNOTSUPP ) {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm
index a93456c052..89deec2620 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm
@@ -11,7 +11,7 @@ use IO::Socket;
use Carp;
our @ISA = qw(IO::Socket);
-our $VERSION = "1.46";
+our $VERSION = "1.52";
IO::Socket::UNIX->register_domain( AF_UNIX );
@@ -111,7 +111,7 @@ inherits all the methods defined by L<IO::Socket>.
=item new ( [ARGS] )
Creates an C<IO::Socket::UNIX> object, which is a reference to a
-newly created symbol (see the C<Symbol> package). C<new>
+newly created symbol (see the L<Symbol> package). C<new>
optionally takes arguments, these arguments are in key-value pairs.
In addition to the key-value pairs accepted by L<IO::Socket>,
@@ -162,7 +162,7 @@ L<Socket>, L<IO::Socket>
=head1 AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all
-bugs to <perlbug@perl.org>.
+bugs at L<https://github.com/Perl/perl5/issues>.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
index 2964125105..229f8fa470 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status);
+use IO::Compress::Base::Common 2.204 qw(:Status);
-use Compress::Raw::Bzip2 2.101 ;
+use Compress::Raw::Bzip2 2.204 ;
our ($VERSION, @ISA);
-$VERSION = '2.102';
+$VERSION = '2.204';
sub mkUncompObject
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
index 4fedcae46a..bf64a79c9f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
@@ -4,14 +4,14 @@ use warnings;
use strict;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status);
+use IO::Compress::Base::Common 2.204 qw(:Status);
use IO::Compress::Zip::Constants ;
our ($VERSION);
-$VERSION = '2.102';
+$VERSION = '2.204';
-use Compress::Raw::Zlib 2.101 ();
+use Compress::Raw::Zlib 2.204 ();
sub mkUncompObject
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
index 315b0c32ce..7469c36a97 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
@@ -4,11 +4,11 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status);
-use Compress::Raw::Zlib 2.101 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common 2.204 qw(:Status);
+use Compress::Raw::Zlib 2.204 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
our ($VERSION);
-$VERSION = '2.102';
+$VERSION = '2.204';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
index 6de82bae87..5c542957e7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
@@ -6,22 +6,22 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Parse);
+use IO::Compress::Base::Common 2.204 qw(:Parse);
-use IO::Uncompress::Adapter::Inflate 2.101 ();
+use IO::Uncompress::Adapter::Inflate 2.204 ();
-use IO::Uncompress::Base 2.101 ;
-use IO::Uncompress::Gunzip 2.101 ;
-use IO::Uncompress::Inflate 2.101 ;
-use IO::Uncompress::RawInflate 2.101 ;
-use IO::Uncompress::Unzip 2.101 ;
+use IO::Uncompress::Base 2.204 ;
+use IO::Uncompress::Gunzip 2.204 ;
+use IO::Uncompress::Inflate 2.204 ;
+use IO::Uncompress::RawInflate 2.204 ;
+use IO::Uncompress::Unzip 2.204 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$AnyInflateError = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -976,9 +976,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -986,6 +986,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -998,7 +1001,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
index c922220ac2..2e2d83c0f9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
@@ -4,16 +4,16 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 ();
+use IO::Compress::Base::Common 2.204 ();
-use IO::Uncompress::Base 2.101 ;
+use IO::Uncompress::Base 2.204 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$AnyUncompressError = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -33,26 +33,26 @@ BEGIN
# Don't trigger any __DIE__ Hooks.
local $SIG{__DIE__};
- eval ' use IO::Uncompress::Adapter::Inflate 2.101 ;';
- eval ' use IO::Uncompress::Adapter::Bunzip2 2.101 ;';
- eval ' use IO::Uncompress::Adapter::LZO 2.101 ;';
- eval ' use IO::Uncompress::Adapter::Lzf 2.101 ;';
- eval ' use IO::Uncompress::Adapter::UnLzma 2.101 ;';
- eval ' use IO::Uncompress::Adapter::UnXz 2.101 ;';
- eval ' use IO::Uncompress::Adapter::UnZstd 2.101 ;';
- eval ' use IO::Uncompress::Adapter::UnLzip 2.101 ;';
-
- eval ' use IO::Uncompress::Bunzip2 2.101 ;';
- eval ' use IO::Uncompress::UnLzop 2.101 ;';
- eval ' use IO::Uncompress::Gunzip 2.101 ;';
- eval ' use IO::Uncompress::Inflate 2.101 ;';
- eval ' use IO::Uncompress::RawInflate 2.101 ;';
- eval ' use IO::Uncompress::Unzip 2.101 ;';
- eval ' use IO::Uncompress::UnLzf 2.101 ;';
- eval ' use IO::Uncompress::UnLzma 2.101 ;';
- eval ' use IO::Uncompress::UnXz 2.101 ;';
- eval ' use IO::Uncompress::UnZstd 2.101 ;';
- eval ' use IO::Uncompress::UnLzip 2.101 ;';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::Lzf 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzma 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::UnXz 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::UnZstd 2.204 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzip 2.204 ;';
+
+ eval ' use IO::Uncompress::Bunzip2 2.204 ;';
+ eval ' use IO::Uncompress::UnLzop 2.204 ;';
+ eval ' use IO::Uncompress::Gunzip 2.204 ;';
+ eval ' use IO::Uncompress::Inflate 2.204 ;';
+ eval ' use IO::Uncompress::RawInflate 2.204 ;';
+ eval ' use IO::Uncompress::Unzip 2.204 ;';
+ eval ' use IO::Uncompress::UnLzf 2.204 ;';
+ eval ' use IO::Uncompress::UnLzma 2.204 ;';
+ eval ' use IO::Uncompress::UnXz 2.204 ;';
+ eval ' use IO::Uncompress::UnZstd 2.204 ;';
+ eval ' use IO::Uncompress::UnLzip 2.204 ;';
}
@@ -1077,7 +1077,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
index 31a34eb3f0..2ad0a769c0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
@@ -9,12 +9,12 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
@ISA = qw(IO::File Exporter);
-$VERSION = '2.102';
+$VERSION = '2.204';
use constant G_EOF => 0 ;
use constant G_ERR => -1 ;
-use IO::Compress::Base::Common 2.101 ;
+use IO::Compress::Base::Common 2.204 ;
use IO::File ;
use Symbol;
@@ -1006,6 +1006,11 @@ sub nextStream
{
my $self = shift ;
+ # An uncompressed file cannot have a next stream, so
+ # return immediately.
+ return 0
+ if *$self->{Plain} ;
+
my $status = $self->gotoNextStream();
$status == 1
or return $status ;
@@ -1562,7 +1567,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
index 38fff645a3..d234c464ff 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
@@ -4,15 +4,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status );
+use IO::Compress::Base::Common 2.204 qw(:Status );
-use IO::Uncompress::Base 2.101 ;
-use IO::Uncompress::Adapter::Bunzip2 2.101 ;
+use IO::Uncompress::Base 2.204 ;
+use IO::Uncompress::Adapter::Bunzip2 2.204 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
-$VERSION = '2.102';
+$VERSION = '2.204';
$Bunzip2Error = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -130,7 +130,9 @@ sub chkTrailer
sub isBzip2Magic
{
my $buffer = shift ;
- return $buffer =~ /^BZh\d$/;
+
+ # ASCII: B Z h 0 9
+ return $buffer =~ qr/^\x42\x5A\x68[\x30-\x39]$/;
}
1 ;
@@ -907,7 +909,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
index 54757132a6..eeadb214ff 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
@@ -9,12 +9,12 @@ use strict ;
use warnings;
use bytes;
-use IO::Uncompress::RawInflate 2.101 ;
+use IO::Uncompress::RawInflate 2.204 ;
-use Compress::Raw::Zlib 2.101 () ;
-use IO::Compress::Base::Common 2.101 qw(:Status );
-use IO::Compress::Gzip::Constants 2.101 ;
-use IO::Compress::Zlib::Extra 2.101 ;
+use Compress::Raw::Zlib 2.204 () ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
+use IO::Compress::Gzip::Constants 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
require Exporter ;
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
$GunzipError = '';
-$VERSION = '2.102';
+$VERSION = '2.204';
sub new
{
@@ -1100,9 +1100,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -1110,6 +1110,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1122,7 +1125,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
index 26d2e38aca..1573ba3f42 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
@@ -5,15 +5,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.101 qw(:Status );
-use IO::Compress::Zlib::Constants 2.101 ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
+use IO::Compress::Zlib::Constants 2.204 ;
-use IO::Uncompress::RawInflate 2.101 ;
+use IO::Uncompress::RawInflate 2.204 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$InflateError = '';
@ISA = qw(IO::Uncompress::RawInflate Exporter);
@@ -972,9 +972,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -982,6 +982,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -994,7 +997,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
index 5d7d2e0258..80ff3f198e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
@@ -5,16 +5,16 @@ use strict ;
use warnings;
use bytes;
-use Compress::Raw::Zlib 2.101 ;
-use IO::Compress::Base::Common 2.101 qw(:Status );
+use Compress::Raw::Zlib 2.204 ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
-use IO::Uncompress::Base 2.101 ;
-use IO::Uncompress::Adapter::Inflate 2.101 ;
+use IO::Uncompress::Base 2.204 ;
+use IO::Uncompress::Adapter::Inflate 2.204 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
-$VERSION = '2.102';
+$VERSION = '2.204';
$RawInflateError = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -1100,9 +1100,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -1110,6 +1110,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1122,7 +1125,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
index 98fcea71a9..f1d806b4ac 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
@@ -9,14 +9,14 @@ use warnings;
use bytes;
use IO::File;
-use IO::Uncompress::RawInflate 2.101 ;
-use IO::Compress::Base::Common 2.101 qw(:Status );
-use IO::Uncompress::Adapter::Inflate 2.101 ;
-use IO::Uncompress::Adapter::Identity 2.101 ;
-use IO::Compress::Zlib::Extra 2.101 ;
-use IO::Compress::Zip::Constants 2.101 ;
+use IO::Uncompress::RawInflate 2.204 ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
+use IO::Uncompress::Adapter::Inflate 2.204 ;
+use IO::Uncompress::Adapter::Identity 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
+use IO::Compress::Zip::Constants 2.204 ;
-use Compress::Raw::Zlib 2.101 () ;
+use Compress::Raw::Zlib 2.204 () ;
BEGIN
{
@@ -38,11 +38,11 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
-$VERSION = '2.102';
+$VERSION = '2.204';
$UnzipError = '';
@ISA = qw(IO::Uncompress::RawInflate Exporter);
-@EXPORT_OK = qw( $UnzipError unzip );
+@EXPORT_OK = qw($UnzipError unzip );
%EXPORT_TAGS = %IO::Uncompress::RawInflate::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
Exporter::export_ok_tags('all');
@@ -812,12 +812,11 @@ sub _dosToUnixTime
my $min = ( ( $dt >> 5 ) & 0x3f );
my $sec = ( ( $dt << 1 ) & 0x3e );
-
- use POSIX 'mktime';
-
- my $time_t = mktime( $sec, $min, $hour, $mday, $mon, $year, 0, 0, -1 );
+ use Time::Local ;
+ my $time_t = Time::Local::timelocal( $sec, $min, $hour, $mday, $mon, $year);
return 0 if ! defined $time_t;
- return $time_t;
+ return $time_t;
+
}
#sub scanCentralDirectory
@@ -1943,9 +1942,9 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-L<http://www.faqs.org/rfcs/rfc1950.html>,
-L<http://www.faqs.org/rfcs/rfc1951.html> and
-L<http://www.faqs.org/rfcs/rfc1952.html>
+L<https://datatracker.ietf.org/doc/html/rfc1950>,
+L<https://datatracker.ietf.org/doc/html/rfc1951> and
+L<https://datatracker.ietf.org/doc/html/rfc1952>
The I<zlib> compression library was written by Jean-loup Gailly
C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
@@ -1953,6 +1952,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
L<http://www.zlib.org>.
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
@@ -1965,7 +1967,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm
index 84aa5e428f..2c2e869ff8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm
@@ -291,7 +291,7 @@ use Fcntl qw(SEEK_SET);
use Symbol;
use Tie::Handle;
-our $VERSION = "1.11";
+our $VERSION = "1.14";
our $AUTOLOAD;
our @ISA = qw(Tie::Handle);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm
index cd33050799..4b8a43a44f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm
@@ -1,14 +1,12 @@
package IPC::Open2;
use strict;
-our ($VERSION, @ISA, @EXPORT);
-require 5.000;
-require Exporter;
+require 5.006;
+use Exporter 'import';
-$VERSION = 1.05;
-@ISA = qw(Exporter);
-@EXPORT = qw(open2);
+our $VERSION = 1.06;
+our @EXPORT = qw(open2);
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm
index ce39d78f1e..b74609db62 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm
@@ -2,16 +2,14 @@ package IPC::Open3;
use strict;
no strict 'refs'; # because users pass me bareword filehandles
-our ($VERSION, @ISA, @EXPORT);
-require Exporter;
+use Exporter 'import';
use Carp;
use Symbol qw(gensym qualify);
-$VERSION = '1.21';
-@ISA = qw(Exporter);
-@EXPORT = qw(open3);
+our $VERSION = '1.22';
+our @EXPORT = qw(open3);
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm
index 2475fe1e87..fc8fcbc8f0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm
@@ -2,21 +2,22 @@ package JSON::PP;
# JSON-2.0
-use 5.005;
+use 5.008;
use strict;
use Exporter ();
-BEGIN { @JSON::PP::ISA = ('Exporter') }
+BEGIN { our @ISA = ('Exporter') }
use overload ();
use JSON::PP::Boolean;
use Carp ();
+use Scalar::Util qw(blessed reftype refaddr);
#use Devel::Peek;
-$JSON::PP::VERSION = '4.06';
+our $VERSION = '4.16';
-@JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
+our @EXPORT = qw(encode_json decode_json from_json to_json);
# instead of hash-access, i tried index-access for speed.
# but this method is not faster than what i expected. so it will be changed.
@@ -44,8 +45,19 @@ use constant P_AS_NONBLESSED => 17;
use constant P_ALLOW_UNKNOWN => 18;
use constant P_ALLOW_TAGS => 19;
-use constant OLD_PERL => $] < 5.008 ? 1 : 0;
use constant USE_B => $ENV{PERL_JSON_PP_USE_B} || 0;
+use constant CORE_BOOL => defined &builtin::is_bool;
+
+my $invalid_char_re;
+
+BEGIN {
+ $invalid_char_re = "[";
+ for my $i (0 .. 0x01F, 0x22, 0x5c) { # '/' is ok
+ $invalid_char_re .= quotemeta chr utf8::unicode_to_native($i);
+ }
+
+ $invalid_char_re = qr/$invalid_char_re]/;
+}
BEGIN {
if (USE_B) {
@@ -64,14 +76,6 @@ BEGIN {
allow_barekey escape_slash as_nonblessed
);
- # Perl version check, Unicode handling is enabled?
- # Helper module sets @JSON::PP::_properties.
- if ( OLD_PERL ) {
- my $helper = $] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';
- eval qq| require $helper |;
- if ($@) { Carp::croak $@; }
- }
-
for my $name (@xs_compati_bit_properties, @pp_bit_properties) {
my $property_id = 'P_' . uc($name);
@@ -201,13 +205,54 @@ sub boolean_values {
my ($false, $true) = @_;
$self->{false} = $false;
$self->{true} = $true;
+ if (CORE_BOOL) {
+ BEGIN { CORE_BOOL and warnings->unimport(qw(experimental::builtin)) }
+ if (builtin::is_bool($true) && builtin::is_bool($false) && $true && !$false) {
+ $self->{core_bools} = !!1;
+ }
+ else {
+ delete $self->{core_bools};
+ }
+ }
} else {
delete $self->{false};
delete $self->{true};
+ delete $self->{core_bools};
}
return $self;
}
+sub core_bools {
+ my $self = shift;
+ my $core_bools = defined $_[0] ? $_[0] : 1;
+ if ($core_bools) {
+ $self->{true} = !!1;
+ $self->{false} = !!0;
+ $self->{core_bools} = !!1;
+ }
+ else {
+ $self->{true} = $JSON::PP::true;
+ $self->{false} = $JSON::PP::false;
+ $self->{core_bools} = !!0;
+ }
+ return $self;
+}
+
+sub get_core_bools {
+ my $self = shift;
+ return !!$self->{core_bools};
+}
+
+sub unblessed_bool {
+ my $self = shift;
+ return $self->core_bools(@_);
+}
+
+sub get_unblessed_bool {
+ my $self = shift;
+ return $self->get_core_bools(@_);
+}
+
sub get_boolean_values {
my $self = shift;
if (exists $self->{true} and exists $self->{false}) {
@@ -326,14 +371,6 @@ sub allow_bigint {
$str .= "\n" if ( $indent ); # JSON::XS 2.26 compatible
- unless ($ascii or $latin1 or $utf8) {
- utf8::upgrade($str);
- }
-
- if ($props->[ P_SHRINK ]) {
- utf8::downgrade($str, 1);
- }
-
return $str;
}
@@ -412,7 +449,6 @@ sub allow_bigint {
my $del = ($space_before ? ' ' : '') . ':' . ($space_after ? ' ' : '');
for my $k ( _sort( $obj ) ) {
- if ( OLD_PERL ) { utf8::decode($k) } # key for Perl 5.6 / be optimized
push @res, $self->string_to_json( $k )
. $del
. ( ref $obj->{$k} ? $self->object_to_json( $obj->{$k} ) : $self->value_to_json( $obj->{$k} ) );
@@ -476,7 +512,11 @@ sub allow_bigint {
my $type = ref($value);
if (!$type) {
- if (_looks_like_number($value)) {
+ BEGIN { CORE_BOOL and warnings->unimport('experimental::builtin') }
+ if (CORE_BOOL && builtin::is_bool($value)) {
+ return $value ? 'true' : 'false';
+ }
+ elsif (_looks_like_number($value)) {
return $value;
}
return $self->string_to_json($value);
@@ -527,16 +567,18 @@ sub allow_bigint {
sub string_to_json {
my ($self, $arg) = @_;
- $arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g;
+ $arg =~ s/(["\\\n\r\t\f\b])/$esc{$1}/g;
$arg =~ s/\//\\\//g if ($escape_slash);
- $arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg;
+
+ # On ASCII platforms, matches [\x00-\x08\x0b\x0e-\x1f]
+ $arg =~ s/([^\n\t\c?[:^cntrl:][:^ascii:]])/'\\u00' . unpack('H2', $1)/eg;
if ($ascii) {
- $arg = JSON_PP_encode_ascii($arg);
+ $arg = _encode_ascii($arg);
}
if ($latin1) {
- $arg = JSON_PP_encode_latin1($arg);
+ $arg = _encode_latin1($arg);
}
if ($utf8) {
@@ -604,7 +646,7 @@ sub allow_bigint {
sub _encode_ascii {
join('',
map {
- $_ <= 127 ?
+ chr($_) =~ /[[:ascii:]]/ ?
chr($_) :
$_ <= 65535 ?
sprintf('\u%04x', $_) : sprintf('\u%x\u%x', _encode_surrogates($_));
@@ -658,11 +700,11 @@ BEGIN {
{ # PARSE
my %escapes = ( # by Jeremy Muhlich <jmuhlich [at] bitflood.org>
- b => "\x8",
- t => "\x9",
- n => "\xA",
- f => "\xC",
- r => "\xD",
+ b => "\b",
+ t => "\t",
+ n => "\n",
+ f => "\f",
+ r => "\r",
'\\' => '\\',
'"' => '"',
'/' => '/',
@@ -736,7 +778,6 @@ BEGIN {
}
}
else {
- utf8::upgrade( $text );
utf8::encode( $text );
}
@@ -845,7 +886,7 @@ BEGIN {
decode_error("missing high surrogate character in surrogate pair");
}
$is_utf8 = 1;
- $s .= JSON_PP_decode_surrogates($utf16, $u) || next;
+ $s .= _decode_surrogates($utf16, $u) || next;
$utf16 = undef;
}
else {
@@ -853,9 +894,10 @@ BEGIN {
decode_error("surrogate pair expected");
}
- if ( ( my $hex = hex( $u ) ) > 127 ) {
+ my $hex = hex( $u );
+ if ( chr $u =~ /[[:^ascii:]]/ ) {
$is_utf8 = 1;
- $s .= JSON_PP_decode_unicode($u) || next;
+ $s .= _decode_unicode($u) || next;
}
else {
$s .= chr $hex;
@@ -873,7 +915,7 @@ BEGIN {
}
else{
- if ( ord $ch > 127 ) {
+ if ( $ch =~ /[[:^ascii:]]/ ) {
unless( $ch = is_valid_utf8($ch) ) {
$at -= 1;
decode_error("malformed UTF-8 character in JSON string");
@@ -886,10 +928,12 @@ BEGIN {
}
if (!$loose) {
- if ($ch =~ /[\x00-\x1f\x22\x5c]/) { # '/' ok
+ if ($ch =~ $invalid_char_re) { # '/' ok
if (!$relaxed or $ch ne "\t") {
$at--;
- decode_error('invalid character encountered while parsing JSON string');
+ decode_error(sprintf "invalid character 0x%X"
+ . " encountered while parsing JSON string",
+ ord $ch);
}
}
}
@@ -1102,7 +1146,7 @@ BEGIN {
sub bareKey { # doesn't strictly follow Standard ECMA-262 3rd Edition
my $key;
- while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){
+ while($ch =~ /[\$\w[:^ascii:]]/){
$key .= $ch;
next_chr();
}
@@ -1235,31 +1279,55 @@ BEGIN {
return $is_dec ? $v/1.0 : 0+$v;
}
+ # Compute how many bytes are in the longest legal official Unicode
+ # character
+ my $max_unicode_length = do {
+ no warnings 'utf8';
+ chr 0x10FFFF;
+ };
+ utf8::encode($max_unicode_length);
+ $max_unicode_length = length $max_unicode_length;
sub is_valid_utf8 {
- $utf8_len = $_[0] =~ /[\x00-\x7F]/ ? 1
- : $_[0] =~ /[\xC2-\xDF]/ ? 2
- : $_[0] =~ /[\xE0-\xEF]/ ? 3
- : $_[0] =~ /[\xF0-\xF4]/ ? 4
- : 0
- ;
-
- return unless $utf8_len;
-
- my $is_valid_utf8 = substr($text, $at - 1, $utf8_len);
-
- return ( $is_valid_utf8 =~ /^(?:
- [\x00-\x7F]
- |[\xC2-\xDF][\x80-\xBF]
- |[\xE0][\xA0-\xBF][\x80-\xBF]
- |[\xE1-\xEC][\x80-\xBF][\x80-\xBF]
- |[\xED][\x80-\x9F][\x80-\xBF]
- |[\xEE-\xEF][\x80-\xBF][\x80-\xBF]
- |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF]
- |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF]
- |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF]
- )$/x ) ? $is_valid_utf8 : '';
+ # Returns undef (setting $utf8_len to 0) unless the next bytes in $text
+ # comprise a well-formed UTF-8 encoded character, in which case,
+ # return those bytes, setting $utf8_len to their count.
+
+ my $start_point = substr($text, $at - 1);
+
+ # Look no further than the maximum number of bytes in a single
+ # character
+ my $limit = $max_unicode_length;
+ $limit = length($start_point) if $limit > length($start_point);
+
+ # Find the number of bytes comprising the first character in $text
+ # (without having to know the details of its internal representation).
+ # This loop will iterate just once on well-formed input.
+ while ($limit > 0) { # Until we succeed or exhaust the input
+ my $copy = substr($start_point, 0, $limit);
+
+ # decode() will return true if all bytes are valid; false
+ # if any aren't.
+ if (utf8::decode($copy)) {
+
+ # Is valid: get the first character, convert back to bytes,
+ # and return those bytes.
+ $copy = substr($copy, 0, 1);
+ utf8::encode($copy);
+ $utf8_len = length $copy;
+ return substr($start_point, 0, $utf8_len);
+ }
+
+ # If it didn't work, it could be that there is a full legal character
+ # followed by a partial or malformed one. Narrow the window and
+ # try again.
+ $limit--;
+ }
+
+ # Failed to find a legal UTF-8 character.
+ $utf8_len = 0;
+ return;
}
@@ -1270,22 +1338,15 @@ BEGIN {
my $mess = '';
my $type = 'U*';
- if ( OLD_PERL ) {
- my $type = $] < 5.006 ? 'C*'
- : utf8::is_utf8( $str ) ? 'U*' # 5.6
- : 'C*'
- ;
- }
-
for my $c ( unpack( $type, $str ) ) { # emulate pv_uni_display() ?
- $mess .= $c == 0x07 ? '\a'
- : $c == 0x09 ? '\t'
- : $c == 0x0a ? '\n'
- : $c == 0x0d ? '\r'
- : $c == 0x0c ? '\f'
- : $c < 0x20 ? sprintf('\x{%x}', $c)
- : $c == 0x5c ? '\\\\'
- : $c < 0x80 ? chr($c)
+ my $chr_c = chr($c);
+ $mess .= $chr_c eq '\\' ? '\\\\'
+ : $chr_c =~ /[[:print:]]/ ? $chr_c
+ : $chr_c eq '\a' ? '\a'
+ : $chr_c eq '\t' ? '\t'
+ : $chr_c eq '\n' ? '\n'
+ : $chr_c eq '\r' ? '\r'
+ : $chr_c eq '\f' ? '\f'
: sprintf('\x{%x}', $c)
;
if ( length $mess >= 20 ) {
@@ -1364,136 +1425,54 @@ sub _decode_unicode {
return $un;
}
-#
-# Setup for various Perl versions (the code from JSON::PP58)
-#
-
-BEGIN {
-
- unless ( defined &utf8::is_utf8 ) {
- require Encode;
- *utf8::is_utf8 = *Encode::is_utf8;
- }
-
- if ( !OLD_PERL ) {
- *JSON::PP::JSON_PP_encode_ascii = \&_encode_ascii;
- *JSON::PP::JSON_PP_encode_latin1 = \&_encode_latin1;
- *JSON::PP::JSON_PP_decode_surrogates = \&_decode_surrogates;
- *JSON::PP::JSON_PP_decode_unicode = \&_decode_unicode;
-
- if ($] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken.
- package JSON::PP;
- require subs;
- subs->import('join');
- eval q|
- sub join {
- return '' if (@_ < 2);
- my $j = shift;
- my $str = shift;
- for (@_) { $str .= $j . $_; }
- return $str;
- }
- |;
- }
- }
+sub incr_parse {
+ local $Carp::CarpLevel = 1;
+ ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ );
+}
- sub JSON::PP::incr_parse {
- local $Carp::CarpLevel = 1;
- ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ );
- }
+sub incr_skip {
+ ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip;
+}
- sub JSON::PP::incr_skip {
- ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip;
- }
+sub incr_reset {
+ ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset;
+}
+sub incr_text : lvalue {
+ $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
- sub JSON::PP::incr_reset {
- ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset;
+ if ( $_[0]->{_incr_parser}->{incr_pos} ) {
+ Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
}
-
- eval q{
- sub JSON::PP::incr_text : lvalue {
- $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
-
- if ( $_[0]->{_incr_parser}->{incr_pos} ) {
- Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
- }
- $_[0]->{_incr_parser}->{incr_text};
- }
- } if ( $] >= 5.006 );
-
-} # Setup for various Perl versions (the code from JSON::PP58)
+ $_[0]->{_incr_parser}->{incr_text};
+}
###############################
# Utilities
#
-BEGIN {
- eval 'require Scalar::Util';
- unless($@){
- *JSON::PP::blessed = \&Scalar::Util::blessed;
- *JSON::PP::reftype = \&Scalar::Util::reftype;
- *JSON::PP::refaddr = \&Scalar::Util::refaddr;
- }
- else{ # This code is from Scalar::Util.
- # warn $@;
- eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';
- *JSON::PP::blessed = sub {
- local($@, $SIG{__DIE__}, $SIG{__WARN__});
- ref($_[0]) ? eval { $_[0]->a_sub_not_likely_to_be_here } : undef;
- };
- require B;
- my %tmap = qw(
- B::NULL SCALAR
- B::HV HASH
- B::AV ARRAY
- B::CV CODE
- B::IO IO
- B::GV GLOB
- B::REGEXP REGEXP
- );
- *JSON::PP::reftype = sub {
- my $r = shift;
-
- return undef unless length(ref($r));
-
- my $t = ref(B::svref_2object($r));
-
- return
- exists $tmap{$t} ? $tmap{$t}
- : length(ref($$r)) ? 'REF'
- : 'SCALAR';
- };
- *JSON::PP::refaddr = sub {
- return undef unless length(ref($_[0]));
-
- my $addr;
- if(defined(my $pkg = blessed($_[0]))) {
- $addr .= bless $_[0], 'Scalar::Util::Fake';
- bless $_[0], $pkg;
- }
- else {
- $addr .= $_[0]
- }
-
- $addr =~ /0x(\w+)/;
- local $^W;
- #no warnings 'portable';
- hex($1);
- }
- }
-}
-
-
# shamelessly copied and modified from JSON::XS code.
$JSON::PP::true = do { bless \(my $dummy = 1), "JSON::PP::Boolean" };
$JSON::PP::false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" };
-sub is_bool { blessed $_[0] and ( $_[0]->isa("JSON::PP::Boolean") or $_[0]->isa("Types::Serialiser::BooleanBase") or $_[0]->isa("JSON::XS::Boolean") ); }
+sub is_bool {
+ if (blessed $_[0]) {
+ return (
+ $_[0]->isa("JSON::PP::Boolean")
+ or $_[0]->isa("Types::Serialiser::BooleanBase")
+ or $_[0]->isa("JSON::XS::Boolean")
+ );
+ }
+ elsif (CORE_BOOL) {
+ BEGIN { CORE_BOOL and warnings->unimport('experimental::builtin') }
+ return builtin::is_bool($_[0]);
+ }
+ return !!0;
+}
sub true { $JSON::PP::true }
sub false { $JSON::PP::false }
@@ -1514,7 +1493,7 @@ use constant INCR_M_C1 => 5;
use constant INCR_M_TFN => 6;
use constant INCR_M_NUM => 7;
-$JSON::PP::IncrParser::VERSION = '1.01';
+our $VERSION = '1.01';
sub new {
my ( $class ) = @_;
@@ -1534,10 +1513,6 @@ sub incr_parse {
$self->{incr_text} = '' unless ( defined $self->{incr_text} );
if ( defined $text ) {
- if ( utf8::is_utf8( $text ) and !utf8::is_utf8( $self->{incr_text} ) ) {
- utf8::upgrade( $self->{incr_text} ) ;
- utf8::decode( $self->{incr_text} ) ;
- }
$self->{incr_text} .= $text;
}
@@ -1563,6 +1538,10 @@ sub incr_parse {
}
}
+ unless ( $coder->get_utf8 ) {
+ utf8::decode( $self->{incr_text} );
+ }
+
my ($obj, $offset) = $coder->PP_decode_json( $self->{incr_text}, 0x00000001 );
push @ret, $obj;
use bytes;
@@ -1600,7 +1579,7 @@ INCR_PARSE:
while ( $len > $p ) {
$s = substr( $text, $p, 1 );
last INCR_PARSE unless defined $s;
- if ( ord($s) > 0x20 ) {
+ if ( ord($s) > ord " " ) {
if ( $s eq '#' ) {
$self->{incr_mode} = INCR_M_C0;
redo INCR_PARSE;
@@ -1627,6 +1606,7 @@ INCR_PARSE:
}
next;
} elsif ( $mode == INCR_M_TFN ) {
+ last INCR_PARSE if $p >= $len && $self->{incr_nest};
while ( $len > $p ) {
$s = substr( $text, $p++, 1 );
next if defined $s and $s =~ /[rueals]/;
@@ -1638,6 +1618,7 @@ INCR_PARSE:
last INCR_PARSE unless $self->{incr_nest};
redo INCR_PARSE;
} elsif ( $mode == INCR_M_NUM ) {
+ last INCR_PARSE if $p >= $len && $self->{incr_nest};
while ( $len > $p ) {
$s = substr( $text, $p++, 1 );
next if defined $s and $s =~ /[0-9eE.+\-]/;
@@ -1674,7 +1655,7 @@ INCR_PARSE:
if ( $s eq "\x00" ) {
$p--;
last INCR_PARSE;
- } elsif ( $s eq "\x09" or $s eq "\x0a" or $s eq "\x0d" or $s eq "\x20" ) {
+ } elsif ( $s =~ /^[\t\n\r ]$/) {
if ( !$self->{incr_nest} ) {
$p--; # do not eat the whitespace, let the next round do it
last INCR_PARSE;
@@ -1770,10 +1751,6 @@ JSON::PP - JSON::XS compatible pure-Perl module.
use JSON;
-=head1 VERSION
-
- 4.05
-
=head1 DESCRIPTION
JSON::PP is a pure perl JSON decoder/encoder, and (almost) compatible to much
@@ -1833,6 +1810,9 @@ Returns true if the passed scalar represents either JSON::PP::true or
JSON::PP::false, two constants that act like C<1> and C<0> respectively
and are also used to represent JSON C<true> and C<false> in Perl strings.
+On perl 5.36 and above, will also return true when given one of perl's
+standard boolean values, such as the result of a comparison.
+
See L<MAPPING>, below, for more information on how JSON values are mapped to
Perl.
@@ -2249,6 +2229,22 @@ to their default values.
C<get_boolean_values> will return both C<$false> and C<$true> values, or
the empty list when they are set to the default.
+=head2 core_bools
+
+ $json->core_bools([$enable]);
+
+If C<$enable> is true (or missing), then C<decode>, will produce standard
+perl boolean values. Equivalent to calling:
+
+ $json->boolean_values(!!1, !!0)
+
+C<get_core_bools> will return true if this has been set. On perl 5.36, it will
+also return true if the boolean values have been set to perl's core booleans
+using the C<boolean_values> method.
+
+The methods C<unblessed_bool> and C<get_unblessed_bool> are provided as aliases
+for compatibility with L<Cpanel::JSON::XS>.
+
=head2 filter_json_object
$json = $json->filter_json_object([$coderef])
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm
index a6b9ee1137..146446e93d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm
@@ -1,8 +1,9 @@
package JSON::PP::Boolean;
use strict;
-require overload;
-local $^W;
+use warnings;
+use overload ();
+overload::unimport('overload', qw(0+ ++ -- fallback));
overload::import('overload',
"0+" => sub { ${$_[0]} },
"++" => sub { $_[0] = ${$_[0]} + 1 },
@@ -10,7 +11,7 @@ overload::import('overload',
fallback => 1,
);
-$JSON::PP::Boolean::VERSION = '4.06';
+our $VERSION = '4.16';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm
index e582d60874..3766b06d89 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm
@@ -13,10 +13,10 @@ require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(
all any first min max minstr maxstr none notall product reduce reductions sum sum0
- sample shuffle uniq uniqint uniqnum uniqstr
+ sample shuffle uniq uniqint uniqnum uniqstr zip zip_longest zip_shortest mesh mesh_longest mesh_shortest
head tail pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst
);
-our $VERSION = "1.55";
+our $VERSION = "1.63";
our $XS_VERSION = $VERSION;
$VERSION =~ tr/_//d;
@@ -57,7 +57,7 @@ List::Util - A selection of general-utility list subroutines
pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap
- shuffle uniq uniqint uniqnum uniqstr
+ shuffle uniq uniqint uniqnum uniqstr zip mesh
);
=head1 DESCRIPTION
@@ -653,6 +653,83 @@ all but the first C<$size> elements from C<@list>.
@result = tail -2, qw( foo bar baz );
# baz
+=head2 zip
+
+ my @result = zip [1..3], ['a'..'c'];
+ # [1, 'a'], [2, 'b'], [3, 'c']
+
+I<Since version 1.56.>
+
+Returns a list of array references, composed of elements from the given list
+of array references. Each array in the returned list is composed of elements
+at that corresponding position from each of the given input arrays. If any
+input arrays run out of elements before others, then C<undef> will be inserted
+into the result to fill in the gaps.
+
+The C<zip> function is particularly handy for iterating over multiple arrays
+at the same time with a C<foreach> loop, taking one element from each:
+
+ foreach ( zip \@xs, \@ys, \@zs ) {
+ my ($x, $y, $z) = @$_;
+ ...
+ }
+
+B<NOTE> to users of L<List::MoreUtils>: This function does not behave the same
+as C<List::MoreUtils::zip>, but is actually a non-prototyped equivalent to
+C<List::MoreUtils::zip_unflatten>. This function does not apply a prototype,
+so make sure to invoke it with references to arrays.
+
+For a function similar to the C<zip> function from C<List::MoreUtils>, see
+L<mesh>.
+
+ my @result = zip_shortest ...
+
+A variation of the function that differs in how it behaves when given input
+arrays of differing lengths. C<zip_shortest> will stop as soon as any one of
+the input arrays run out of elements, discarding any remaining unused values
+from the others.
+
+ my @result = zip_longest ...
+
+C<zip_longest> is an alias to the C<zip> function, provided simply to be
+explicit about that behaviour as compared to C<zip_shortest>.
+
+=head2 mesh
+
+ my @result = mesh [1..3], ['a'..'c'];
+ # (1, 'a', 2, 'b', 3, 'c')
+
+I<Since version 1.56.>
+
+Returns a list of items collected from elements of the given list of array
+references. Each section of items in the returned list is composed of elements
+at the corresponding position from each of the given input arrays. If any
+input arrays run out of elements before others, then C<undef> will be inserted
+into the result to fill in the gaps.
+
+This is similar to L<zip>, except that all of the ranges in the result are
+returned in one long flattened list, instead of being bundled into separate
+arrays.
+
+Because it returns a flat list of items, the C<mesh> function is particularly
+useful for building a hash out of two separate arrays of keys and values:
+
+ my %hash = mesh \@keys, \@values;
+
+ my $href = { mesh \@keys, \@values };
+
+B<NOTE> to users of L<List::MoreUtils>: This function is a non-prototyped
+equivalent to C<List::MoreUtils::mesh> or C<List::MoreUtils::zip> (themselves
+aliases of each other). This function does not apply a prototype, so make sure
+to invoke it with references to arrays.
+
+ my @result = mesh_shortest ...
+
+ my @result = mesh_longest ...
+
+These variations are similar to those of L<zip>, in that they differ in
+behaviour when one of the input lists runs out of elements before the others.
+
=head1 CONFIGURATION VARIABLES
=head2 $RAND
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm
index 88f663f0ec..28cf6928f4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use List::Util;
-our $VERSION = "1.55"; # FIXUP
+our $VERSION = "1.63"; # FIXUP
$VERSION =~ tr/_//d; # FIXUP
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm
index f70438b78d..8979c202f0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm
@@ -25,7 +25,7 @@ BEGIN {
}
-our $VERSION = '1.29';
+our $VERSION = '1.33';
our @ISA = ();
our $MATCH_SUPERS = 1;
@@ -136,19 +136,20 @@ sub fail_with { # an actual attribute method!
#--------------------------------------------------------------------------
-sub blacklist {
- my ( $handle, @methods ) = @_;
+sub _exclude {
+ my ( $handle, @methods ) = @_;
- unless ( defined $handle->{'blacklist'} ) {
+ unless ( defined $handle->{'denylist'} ) {
no strict 'refs';
# Don't let people call methods they're not supposed to from maketext.
# Explicitly exclude all methods in this package that start with an
# underscore on principle.
- $handle->{'blacklist'} = {
+ $handle->{'denylist'} = {
map { $_ => 1 } (
qw/
blacklist
+ denylist
encoding
fail_with
failure_handler_auto
@@ -160,30 +161,55 @@ sub blacklist {
maketext
new
whitelist
+ allowlist
/, grep { /^_/ } keys %{ __PACKAGE__ . "::" }
),
};
}
if ( scalar @methods ) {
- $handle->{'blacklist'} = { %{ $handle->{'blacklist'} }, map { $_ => 1 } @methods };
+ $handle->{'denylist'} = { %{ $handle->{'denylist'} }, map { $_ => 1 } @methods };
}
delete $handle->{'_external_lex_cache'};
return;
}
-sub whitelist {
+sub blacklist {
+ my ( $handle, @methods ) = @_;
+ _exclude ( $handle, @methods );
+ return;
+}
+
+sub denylist {
+ my ( $handle, @methods ) = @_;
+ _exclude ( $handle, @methods );
+ return;
+}
+
+sub _include {
my ( $handle, @methods ) = @_;
if ( scalar @methods ) {
- $handle->{'whitelist'} = {} unless defined $handle->{'whitelist'};
- $handle->{'whitelist'} = { %{ $handle->{'whitelist'} }, map { $_ => 1 } @methods };
+ $handle->{'allowlist'} = {} unless defined $handle->{'allowlist'};
+ $handle->{'allowlist'} = { %{ $handle->{'allowlist'} }, map { $_ => 1 } @methods };
}
delete $handle->{'_external_lex_cache'};
return;
}
+sub whitelist {
+ my ( $handle, @methods ) = @_;
+ _include ( $handle, @methods );
+ return;
+}
+
+sub allowlist {
+ my ( $handle, @methods ) = @_;
+ _include ( $handle, @methods );
+ return;
+}
+
#--------------------------------------------------------------------------
sub failure_handler_auto {
@@ -228,6 +254,7 @@ sub new {
my $class = ref($_[0]) || $_[0];
my $handle = bless {}, $class;
$handle->blacklist;
+ $handle->denylist;
$handle->init;
return $handle;
}
@@ -679,8 +706,10 @@ sub _compile {
}
elsif($m =~ /^\w+$/s
&& !$handle->{'blacklist'}{$m}
+ && !$handle->{'denylist'}{$m}
&& ( !defined $handle->{'whitelist'} || $handle->{'whitelist'}{$m} )
- # exclude anything fancy and restrict to the whitelist/blacklist.
+ && ( !defined $handle->{'allowlist'} || $handle->{'allowlist'}{$m} )
+ # exclude anything fancy and restrict to the allowlist/denylist (and historical whitelist/blacklist).
) {
push @code, ' $_[0]->' . $m . '(';
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod
index 26be348353..761e6abc22 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod
@@ -45,7 +45,7 @@ derive a "project class".
The project class (with a name like "TkBocciBall::Localize",
which you then use in your module) is in turn the base class
for all the "language classes" for your project
-(with names "TkBocciBall::Localize::it",
+(with names "TkBocciBall::Localize::it",
"TkBocciBall::Localize::en",
"TkBocciBall::Localize::fr", etc.).
@@ -122,9 +122,9 @@ If it runs thru the entire given list of language-tags, and finds no classes
for those exact terms, it then tries "superordinate" language classes.
So if no "en-US" class (i.e., YourProjClass::en_us)
was found, nor classes for anything else in that list, we then try
-its superordinate, "en" (i.e., YourProjClass::en), and so on thru
+its superordinate, "en" (i.e., YourProjClass::en), and so on thru
the other language-tags in the given list: "es".
-(The other language-tags in our example list:
+(The other language-tags in our example list:
happen to have no superordinates.)
If none of those language-tags leads to loadable classes, we then
@@ -307,9 +307,9 @@ interested in hearing about it.)
These two methods are discussed in the section "Controlling
Lookup Failure".
-=item $lh->blacklist(@list)
+=item $lh->denylist(@list) <or> $lh->blacklist(@list)
-=item $lh->whitelist(@list)
+=item $lh->allowlist(@list) <or> $lh->whitelist(@list)
These methods are discussed in the section "Bracket Notation
Security".
@@ -331,7 +331,7 @@ Bracket Notation or not).
=item $language->quant($number, $singular, $plural, $negative)
This is generally meant to be called from inside Bracket Notation
-(which is discussed later), as in
+(which is discussed later), as in
"Your search matched [quant,_1,document]!"
@@ -482,8 +482,8 @@ to YourProjClass . "::". So this:
'en-US', 'fr', 'kon', 'i-klingon', 'i-klingon-romanized'
);
-will try loading the classes
-YourProjClass::en_us (note lowercase!), YourProjClass::fr,
+will try loading the classes
+YourProjClass::en_us (note lowercase!), YourProjClass::fr,
YourProjClass::kon,
YourProjClass::i_klingon
and YourProjClass::i_klingon_romanized. (And it'll stop at the
@@ -875,17 +875,17 @@ bracket notation methods from normal class or object methods. This
design makes it vulnerable to format string attacks whenever it is
used to process strings provided by untrusted users.
-Locale::Maketext does support blacklist and whitelist functionality
+Locale::Maketext does support denylist and allowlist functionality
to limit which methods may be called as bracket notation methods.
-By default, Locale::Maketext blacklists all methods in the
+By default, Locale::Maketext denies all methods in the
Locale::Maketext namespace that begin with the '_' character,
and all methods which include Perl's namespace separator characters.
-The default blacklist for Locale::Maketext also prevents use of the
+The default denylist for Locale::Maketext also prevents use of the
following methods in bracket notation:
- blacklist
+ denylist
encoding
fail_with
failure_handler_auto
@@ -896,44 +896,56 @@ following methods in bracket notation:
language_tag
maketext
new
+ allowlist
whitelist
+ blacklist
-This list can be extended by either blacklisting additional "known bad"
-methods, or whitelisting only "known good" methods.
+This list can be extended by either deny-listing additional "known bad"
+methods, or allow-listing only "known good" methods.
To prevent specific methods from being called in bracket notation, use
-the blacklist() method:
+the denylist() method:
my $lh = MyProgram::L10N->get_handle();
- $lh->blacklist(qw{my_internal_method my_other_method});
+ $lh->denylist(qw{my_internal_method my_other_method});
$lh->maketext('[my_internal_method]'); # dies
To limit the allowed bracked notation methods to a specific list, use the
-whitelist() method:
+allowlist() method:
my $lh = MyProgram::L10N->get_handle();
- $lh->whitelist('numerate', 'numf');
+ $lh->allowlist('numerate', 'numf');
$lh->maketext('[_1] [numerate, _1,shoe,shoes]', 12); # works
$lh->maketext('[my_internal_method]'); # dies
-The blacklist() and whitelist() methods extend their internal lists
-whenever they are called. To reset the blacklist or whitelist, create
+The denylist() and allowlist() methods extend their internal lists
+whenever they are called. To reset the denylist or allowlist, create
a new maketext object.
my $lh = MyProgram::L10N->get_handle();
- $lh->blacklist('numerate');
- $lh->blacklist('numf');
+ $lh->denylist('numerate');
+ $lh->denylist('numf');
$lh->maketext('[_1] [numerate,_1,shoe,shoes]', 12); # dies
For lexicons that use an internal cache, translations which have already
been cached in their compiled form are not affected by subsequent changes
-to the whitelist or blacklist settings. Lexicons that use an external
-cache will have their cache cleared whenever the whitelist of blacklist
-setings change. The difference between the two types of caching is explained
+to the allowlist or denylist settings. Lexicons that use an external
+cache will have their cache cleared whenever the allowlist or denylist
+settings change. The difference between the two types of caching is explained
in the "Readonly Lexicons" section.
-Methods disallowed by the blacklist cannot be permitted by the
-whitelist.
+Methods disallowed by the denylist cannot be permitted by the
+allowlist.
+
+NOTE: denylist() is the preferred method name to use instead of the
+historical and non-inclusive method blacklist(). blacklist() may be
+removed in a future release of this package and so it's use should be
+removed from usage.
+
+NOTE: allowlist() is the preferred method name to use instead of the
+historical and non-inclusive method whitelist(). whitelist() may be
+removed in a future release of this package and so it's use should be
+removed from usage.
=head1 AUTO LEXICONS
@@ -981,7 +993,7 @@ but since you anticipate localizing this, you write:
}
Now, right after you've just written the above lines, you'd
-normally have to go open the file
+normally have to go open the file
ThisProject/I18N/en.pm, and immediately add an entry:
"Couldn't find file \"[_1]\"!\n"
@@ -1212,7 +1224,7 @@ _AUTO lexicon.)
=item *
-Go and write your program. Everywhere in your program where
+Go and write your program. Everywhere in your program where
you would say:
print "Foobar $thing stuff\n";
@@ -1256,7 +1268,7 @@ following phrase.
=item *
-You may at this point want to consider whether your base class
+You may at this point want to consider whether your base class
(Projname::L10N), from which all lexicons inherit from (Projname::L10N::en,
Projname::L10N::es, etc.), should be an _AUTO lexicon. It may be true
that in theory, all needed messages will be in each language class;
@@ -1375,7 +1387,7 @@ I recommend reading all of these:
L<Locale::Maketext::TPJ13|Locale::Maketext::TPJ13> -- my I<The Perl
Journal> article about Maketext. It explains many important concepts
underlying Locale::Maketext's design, and some insight into why
-Maketext is better than the plain old approach of having
+Maketext is better than the plain old approach of having
message catalogs that are just databases of sprintf formats.
L<File::Findgrep|File::Findgrep> is a sample application/module
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod
index 51fad9528b..f71d71020a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod
@@ -18,7 +18,7 @@ I<Adapted from a suggestion by Dan Muey>
It may be common (for example at your main lexicon) that
the hash keys and values coincide. Like that
- q{Hello, tell me your name}
+ q{Hello, tell me your name}
=> q{Hello, tell me your name}
It would be nice to just write:
@@ -27,10 +27,10 @@ It would be nice to just write:
and have this magically inflated to the first form.
Among the advantages of such representation, that would
-lead to
-smaller files, less prone to mistyping or mispasting,
-and handy to someone translating it which can simply
-copy the main lexicon and enter the translation
+lead to
+smaller files, less prone to mistyping or mispasting,
+and handy to someone translating it which can simply
+copy the main lexicon and enter the translation
instead of having to remove the value first.
That can be achieved by overriding C<init>
@@ -70,25 +70,25 @@ should be more time expensive as an option.
I<After CPAN RT #36136 (L<https://rt.cpan.org/Ticket/Display.html?id=36136>)>
-The documentation of L<Locale::Maketext> advises that
+The documentation of L<Locale::Maketext> advises that
the standard bracket method C<numf> is limited and that
you must override that for better results. It even
suggests the use of L<Number::Format>.
One such defect of standard C<numf> is to not be
able to use a certain decimal precision.
-For example,
+For example,
$lh->maketext('pi is [numf,_1]', 355/113);
outputs
- pi is 3.14159292035398
+ pi is 3.14159292035398
-Since pi ≈ 355/116 is only accurate
+Since pi ≈ 355/116 is only accurate
to 6 decimal places, you would want to say:
- $lh->maketext('pi is [numf,_1,6]', 355/113);
+ $lh->maketext('pi is [numf,_1,6]', 355/113);
and get "pi is 3.141592".
@@ -132,14 +132,14 @@ like that:
use base qw(Wuu);
-and then
+and then
my $lh = Wuu->get_handle('pt');
$lh->maketext('A [numf,_1,3] km de distância', 1550.2222);
would return "A 1.550,222 km de distância".
-Notice that the standard utility methods of
+Notice that the standard utility methods of
C<Locale::Maketext> are irremediably limited
because they could not aim to do everything
that could be expected from them in different languages,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod
index 9ba7a32e04..cb5ef14fd6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod
@@ -237,7 +237,7 @@ merely needed further consideration.
=over
-"It is more complicated than you think."
+"It is more complicated than you think."
-- The Eighth Networking Truth, from RFC 1925
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm
index 923c888da4..3605481a79 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm
@@ -8,7 +8,7 @@ our @ISA = qw(Exporter);
our @EXPORT = qw(encode_base64 decode_base64);
our @EXPORT_OK = qw(encode_base64url decode_base64url encoded_base64_length decoded_base64_length);
-our $VERSION = '3.16';
+our $VERSION = '3.16_01';
require XSLoader;
XSLoader::load('MIME::Base64', $VERSION);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm
index fe792ad30e..4539f00455 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm
@@ -7,7 +7,7 @@ require Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(encode_qp decode_qp);
-our $VERSION = '3.16';
+our $VERSION = '3.16_01';
use MIME::Base64; # will load XS version of {en,de}code_qp()
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm
index f1d7a1a0a0..66300a4928 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm
@@ -16,10 +16,12 @@ use 5.006001;
use strict;
use warnings;
-use Carp qw< carp croak >;
-use Math::BigInt ();
+use Carp qw< carp croak >;
+use Scalar::Util qw< blessed >;
+use Math::BigInt qw< >;
-our $VERSION = '1.999818';
+our $VERSION = '1.999837';
+$VERSION =~ tr/_//d;
require Exporter;
our @ISA = qw/Math::BigInt/;
@@ -58,21 +60,21 @@ use overload
# overload key: assign
- '+=' => sub { $_[0]->badd($_[1]); },
+ '+=' => sub { $_[0] -> badd($_[1]); },
- '-=' => sub { $_[0]->bsub($_[1]); },
+ '-=' => sub { $_[0] -> bsub($_[1]); },
- '*=' => sub { $_[0]->bmul($_[1]); },
+ '*=' => sub { $_[0] -> bmul($_[1]); },
- '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+ '/=' => sub { scalar $_[0] -> bdiv($_[1]); },
- '%=' => sub { $_[0]->bmod($_[1]); },
+ '%=' => sub { $_[0] -> bmod($_[1]); },
- '**=' => sub { $_[0]->bpow($_[1]); },
+ '**=' => sub { $_[0] -> bpow($_[1]); },
- '<<=' => sub { $_[0]->blsft($_[1]); },
+ '<<=' => sub { $_[0] -> blsft($_[1]); },
- '>>=' => sub { $_[0]->brsft($_[1]); },
+ '>>=' => sub { $_[0] -> brsft($_[1]); },
# 'x=' => sub { },
@@ -194,7 +196,7 @@ use overload
'0+' => sub { $_[0] -> numify(); },
- '=' => sub { $_[0]->copy(); },
+ '=' => sub { $_[0] -> copy(); },
;
@@ -259,8 +261,7 @@ BEGIN {
$rnd_mode = 'even';
tie $rnd_mode, 'Math::BigFloat';
- # we need both of them in this package:
- *as_int = \&as_number;
+ *as_number = \&as_int;
}
sub DESTROY {
@@ -270,7 +271,6 @@ sub DESTROY {
sub AUTOLOAD {
# make fxxx and bxxx both work by selectively mapping fxxx() to MBF::bxxx()
my $name = $AUTOLOAD;
-
$name =~ s/(.*):://; # split package
my $c = $1 || __PACKAGE__;
no strict 'refs';
@@ -284,7 +284,8 @@ sub AUTOLOAD {
# delayed load of Carp and avoid recursion
croak("Can't call $c\-\>$name, not a valid method");
}
- # try one level up, but subst. bxxx() for fxxx() since MBI only got bxxx()
+ # try one level up, but subst. bxxx() for fxxx() since MBI only got
+ # bxxx()
$name =~ s/^f/b/;
return &{"Math::BigInt"."::$name"}(@_);
}
@@ -351,7 +352,8 @@ sub config {
###############################################################################
sub new {
- # Create a new Math::BigFloat object from a string or another bigfloat object.
+ # Create a new Math::BigFloat object from a string or another bigfloat
+ # object.
# _e: exponent
# _m: mantissa
# sign => ("+", "-", "+inf", "-inf", or "NaN")
@@ -360,193 +362,212 @@ sub new {
my $selfref = ref $self;
my $class = $selfref || $self;
- my ($wanted, @r) = @_;
+ # Make "require" work.
- # avoid numify-calls by not using || on $wanted!
+ $class -> import() if $IMPORT == 0;
- unless (defined $wanted) {
- #carp("Use of uninitialized value in new");
- return $self->bzero(@r);
- }
+ # Although this use has been discouraged for more than 10 years, people
+ # apparently still use it, so we still support it.
- # Using $wanted->isa("Math::BigFloat") here causes a 'Deep recursion on
- # subroutine "Math::BigFloat::as_number"' in some tests. Fixme!
+ return $class -> bzero() unless @_;
- if (UNIVERSAL::isa($wanted, 'Math::BigFloat')) {
- my $copy = $wanted -> copy();
- if ($selfref) { # if new() called as instance method
- %$self = %$copy;
- } else { # if new() called as class method
- $self = $copy;
- }
- return $copy;
+ my ($wanted, @r) = @_;
+
+ if (!defined($wanted)) {
+ #if (warnings::enabled("uninitialized")) {
+ # warnings::warn("uninitialized",
+ # "Use of uninitialized value in new()");
+ #}
+ return $class -> bzero(@r);
}
- $class->import() if $IMPORT == 0; # make require work
+ if (!ref($wanted) && $wanted eq "") {
+ #if (warnings::enabled("numeric")) {
+ # warnings::warn("numeric",
+ # q|Argument "" isn't numeric in new()|);
+ #}
+ #return $class -> bzero(@r);
+ return $class -> bnan(@r);
+ }
- # If called as a class method, initialize a new object.
+ # Initialize a new object.
$self = bless {}, $class unless $selfref;
- # shortcut for bigints and its subclasses
- if ((ref($wanted)) && $wanted -> can("as_number")) {
- $self->{_m} = $wanted->as_number()->{value}; # get us a bigint copy
- $self->{_e} = $LIB->_zero();
- $self->{_es} = '+';
- $self->{sign} = $wanted->sign();
- return $self->bnorm();
+ # Math::BigFloat or subclass
+
+ if (defined(blessed($wanted)) && $wanted -> isa($class)) {
+
+ # Don't copy the accuracy and precision, because a new object should get
+ # them from the global configuration.
+
+ $self -> {sign} = $wanted -> {sign};
+ $self -> {_m} = $LIB -> _copy($wanted -> {_m});
+ $self -> {_es} = $wanted -> {_es};
+ $self -> {_e} = $LIB -> _copy($wanted -> {_e});
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+ return $self;
}
- # else: got a string or something masquerading as number (with overload)
+ # Shortcut for Math::BigInt and its subclasses. This should be improved.
+
+ if (defined(blessed($wanted))) {
+ if ($wanted -> isa('Math::BigInt')) {
+ $self->{sign} = $wanted -> {sign};
+ $self->{_m} = $LIB -> _copy($wanted -> {value});
+ $self->{_es} = '+';
+ $self->{_e} = $LIB -> _zero();
+ return $self -> bnorm();
+ }
+
+ if ($wanted -> can("as_number")) {
+ $self->{sign} = $wanted -> sign();
+ $self->{_m} = $wanted -> as_number() -> {value};
+ $self->{_es} = '+';
+ $self->{_e} = $LIB -> _zero();
+ return $self -> bnorm();
+ }
+ }
+
+ # Shortcut for simple forms like '123' that have no trailing zeros. Trailing
+ # zeros would require a non-zero exponent.
+
+ if ($wanted =~
+ / ^
+ \s* # optional leading whitespace
+ ( [+-]? ) # optional sign
+ 0* # optional leading zeros
+ ( [1-9] (?: [0-9]* [1-9] )? ) # significand
+ \s* # optional trailing whitespace
+ $
+ /x)
+ {
+ return $downgrade -> new($1 . $2) if defined $downgrade;
+ $self->{sign} = $1 || '+';
+ $self->{_m} = $LIB -> _new($2);
+ $self->{_es} = '+';
+ $self->{_e} = $LIB -> _zero();
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
# Handle Infs.
- if ($wanted =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
- return $downgrade->new($wanted) if $downgrade;
+ if ($wanted =~ / ^
+ \s*
+ ( [+-]? )
+ inf (?: inity )?
+ \s*
+ \z
+ /ix)
+ {
my $sgn = $1 || '+';
- $self->{sign} = $sgn . 'inf'; # set a default sign for bstr()
- return $self->binf($sgn);
+ return $class -> binf($sgn, @r);
}
# Handle explicit NaNs (not the ones returned due to invalid input).
- if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
- return $downgrade->new($wanted) if $downgrade;
- $self = $class -> bnan();
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
- return $self;
+ if ($wanted =~ / ^
+ \s*
+ ( [+-]? )
+ nan
+ \s*
+ \z
+ /ix)
+ {
+ return $class -> bnan(@r);
}
- # Handle hexadecimal numbers. We auto-detect hexadecimal numbers if they
- # have a "0x" or "0X" prefix.
+ my @parts;
- if ($wanted =~ /^\s*[+-]?0[Xx]/) {
- $self = $class -> from_hex($wanted);
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
- return $self;
- }
+ if (
+ # Handle hexadecimal numbers. We auto-detect hexadecimal numbers if they
+ # have a "0x", "0X", "x", or "X" prefix, cf. CORE::oct().
+
+ $wanted =~ /^\s*[+-]?0?[Xx]/ and
+ @parts = $class -> _hex_str_to_flt_lib_parts($wanted)
+
+ or
- # Handle octal numbers. We auto-detect octal numbers if they have a "0"
- # prefix and a binary exponent.
+ # Handle octal numbers. We auto-detect octal numbers if they have a
+ # "0o", "0O", "o", "O" prefix, cf. CORE::oct().
- if ($wanted =~ /
- ^
- \s*
+ $wanted =~ /^\s*[+-]?0?[Oo]/ and
+ @parts = $class -> _oct_str_to_flt_lib_parts($wanted)
- # sign
- [+-]?
+ or
- # prefix
- 0
+ # Handle binary numbers. We auto-detect binary numbers if they have a
+ # "0b", "0B", "b", or "B" prefix, cf. CORE::oct().
- # significand using the octal digits 0..7
- [0-7]+ (?: _ [0-7]+ )*
- (?:
- \.
- (?: [0-7]+ (?: _ [0-7]+ )* )?
- )?
+ $wanted =~ /^\s*[+-]?0?[Bb]/ and
+ @parts = $class -> _bin_str_to_flt_lib_parts($wanted)
- # exponent (power of 2) using decimal digits
- [Pp]
- [+-]?
- \d+ (?: _ \d+ )*
+ or
- \s*
- $
- /x)
+ # At this point, what is left are decimal numbers that aren't handled
+ # above and octal floating point numbers that don't have any of the
+ # "0o", "0O", "o", or "O" prefixes. First see if it is a decimal number.
+
+ @parts = $class -> _dec_str_to_flt_lib_parts($wanted)
+ or
+
+ # See if it is an octal floating point number. The extra check is
+ # included because _oct_str_to_flt_lib_parts() accepts octal numbers
+ # that don't have a prefix (this is needed to make it work with, e.g.,
+ # from_oct() that don't require a prefix). However, Perl requires a
+ # prefix for octal floating point literals. For example, "1p+0" is not
+ # valid, but "01p+0" and "0__1p+0" are.
+
+ $wanted =~ /^\s*[+-]?0_*\d/ and
+ @parts = $class -> _oct_str_to_flt_lib_parts($wanted))
{
- $self = $class -> from_oct($wanted);
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
- return $self;
- }
+ ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
- # Handle binary numbers. We auto-detect binary numbers if they have a "0b"
- # or "0B" prefix.
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
- if ($wanted =~ /^\s*[+-]?0[Bb]/) {
- $self = $class -> from_bin($wanted);
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self -> is_int();
return $self;
}
- # Shortcut for simple forms like '12' that have no trailing zeros.
- if ($wanted =~ /^([+-]?)0*([1-9][0-9]*[1-9])$/) {
- $self->{_e} = $LIB -> _zero();
- $self->{_es} = '+';
- $self->{sign} = $1 || '+';
- $self->{_m} = $LIB -> _new($2);
- if (!$downgrade) {
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
- return $self;
- }
- }
+ # If we get here, the value is neither a valid decimal, binary, octal, or
+ # hexadecimal number. It is not an explicit Inf or a NaN either.
- my ($mis, $miv, $mfv, $es, $ev) = Math::BigInt::_split($wanted);
- if (!ref $mis) {
- if ($_trap_nan) {
- croak("$wanted is not a number initialized to $class");
- }
+ return $class -> bnan(@r);
+}
- return $downgrade->bnan() if $downgrade;
+sub from_dec {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- $self->{_e} = $LIB->_zero();
- $self->{_es} = '+';
- $self->{_m} = $LIB->_zero();
- $self->{sign} = $nan;
- } else {
- # make integer from mantissa by adjusting exp, then convert to int
- $self->{_e} = $LIB->_new($$ev); # exponent
- $self->{_es} = $$es || '+';
- my $mantissa = "$$miv$$mfv"; # create mant.
- $mantissa =~ s/^0+(\d)/$1/; # strip leading zeros
- $self->{_m} = $LIB->_new($mantissa); # create mant.
-
- # 3.123E0 = 3123E-3, and 3.123E-2 => 3123E-5
- if (CORE::length($$mfv) != 0) {
- my $len = $LIB->_new(CORE::length($$mfv));
- ($self->{_e}, $self->{_es}) =
- _e_sub($self->{_e}, $len, $self->{_es}, '+');
- }
- # we can only have trailing zeros on the mantissa if $$mfv eq ''
- else {
- # Use a regexp to count the trailing zeros in $$miv instead of
- # _zeros() because that is faster, especially when _m is not stored
- # in base 10.
- my $zeros = 0;
- $zeros = CORE::length($1) if $$miv =~ /[1-9](0*)$/;
- if ($zeros != 0) {
- my $z = $LIB->_new($zeros);
- # turn '120e2' into '12e3'
- $self->{_m} = $LIB->_rsft($self->{_m}, $z, 10);
- ($self->{_e}, $self->{_es}) =
- _e_add($self->{_e}, $z, $self->{_es}, '+');
- }
- }
- $self->{sign} = $$mis;
+ # Don't modify constant (read-only) objects.
- # for something like 0Ey, set y to 0, and -0 => +0
- # Check $$miv for being '0' and $$mfv eq '', because otherwise _m could not
- # have become 0. That's faster than to call $LIB->_is_zero().
- $self->{sign} = '+', $self->{_e} = $LIB->_zero()
- if $$miv eq '0' and $$mfv eq '';
+ return $self if $selfref && $self->modify('from_dec');
- if (!$downgrade) {
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
- return $self;
- }
- }
+ my $str = shift;
+ my @r = @_;
- # if downgrade, inf, NaN or integers go down
+ # If called as a class method, initialize a new object.
- if ($downgrade && $self->{_es} eq '+') {
- if ($LIB->_is_zero($self->{_e})) {
- return $downgrade->new($$mis . $LIB->_str($self->{_m}));
- }
- return $downgrade->new($self->bsstr());
+ $self = bless {}, $class unless $selfref;
+
+ if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+ ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
+
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self -> is_int();
+ return $self;
}
- $self->bnorm();
- $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
- return $self;
+
+ return $self -> bnan(@r);
}
sub from_hex {
@@ -556,88 +577,27 @@ sub from_hex {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_hex');
+ return $self if $selfref && $self->modify('from_hex');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- \s*
-
- # sign
- ( [+-]? )
-
- # optional "hex marker"
- (?: 0? x )?
-
- # significand using the hex digits 0..9 and a..f
- (
- [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
- (?:
- \.
- (?: [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )* )?
- )?
- |
- \.
- [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
- )
-
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
-
- \s*
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
-
- # The significand must be multiplied by 2 raised to this exponent.
-
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
-
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand. Since the digits in the significand are in base 16,
- # but the exponent is only in base 2, multiply the exponent adjustment
- # value by log(16) / log(2) = 4.
-
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx)
- -> bmul("4");
- }
+ $self = bless {}, $class unless $selfref;
- $self -> {sign} = $s_sign;
- $self -> {_m} = $LIB -> _from_hex('0x' . $s_value);
+ if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) {
+ ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
- }
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self -> is_int();
return $self;
}
- return $self->bnan();
+ return $self -> bnan(@r);
}
sub from_oct {
@@ -647,85 +607,27 @@ sub from_oct {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_oct');
+ return $self if $selfref && $self->modify('from_oct');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- \s*
-
- # sign
- ( [+-]? )
-
- # significand using the octal digits 0..7
- (
- [0-7]+ (?: _ [0-7]+ )*
- (?:
- \.
- (?: [0-7]+ (?: _ [0-7]+ )* )?
- )?
- |
- \.
- [0-7]+ (?: _ [0-7]+ )*
- )
-
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
-
- \s*
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
-
- # The significand must be multiplied by 2 raised to this exponent.
-
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
-
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand. Since the digits in the significand are in base 8,
- # but the exponent is only in base 2, multiply the exponent adjustment
- # value by log(8) / log(2) = 3.
-
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx)
- -> bmul("3");
- }
+ $self = bless {}, $class unless $selfref;
- $self -> {sign} = $s_sign;
- $self -> {_m} = $LIB -> _from_oct($s_value);
+ if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
+ ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
- }
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self -> is_int();
return $self;
}
- return $self->bnan();
+ return $self -> bnan(@r);
}
sub from_bin {
@@ -735,85 +637,27 @@ sub from_bin {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_bin');
+ return $self if $selfref && $self->modify('from_bin');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- \s*
-
- # sign
- ( [+-]? )
-
- # optional "bin marker"
- (?: 0? b )?
-
- # significand using the binary digits 0 and 1
- (
- [01]+ (?: _ [01]+ )*
- (?:
- \.
- (?: [01]+ (?: _ [01]+ )* )?
- )?
- |
- \.
- [01]+ (?: _ [01]+ )*
- )
-
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
-
- \s*
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
-
- # The significand must be multiplied by 2 raised to this exponent.
-
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
-
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand.
-
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx);
- }
+ $self = bless {}, $class unless $selfref;
- $self -> {sign} = $s_sign;
- $self -> {_m} = $LIB -> _from_bin('0b' . $s_value);
+ if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
+ ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
- }
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self -> is_int();
return $self;
}
- return $self->bnan();
+ return $self -> bnan(@r);
}
sub from_ieee754 {
@@ -823,13 +667,14 @@ sub from_ieee754 {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_ieee754');
+ return $self if $selfref && $self->modify('from_ieee754');
my $in = shift; # input string (or raw bytes)
my $format = shift; # format ("binary32", "decimal64" etc.)
my $enc; # significand encoding (applies only to decimal)
my $k; # storage width in bits
my $b; # base
+ my @r = @_; # rounding parameters, if any
if ($format =~ /^binary(\d+)\z/) {
$k = $1;
@@ -890,7 +735,7 @@ sub from_ieee754 {
# The maximum exponent, minimum exponent, and exponent bias.
- my $emax = Math::BigInt -> new(2) -> bpow($w - 1) -> bdec();
+ my $emax = Math::BigFloat -> new(2) -> bpow($w - 1) -> bdec();
my $emin = 1 - $emax;
my $bias = $emax;
@@ -898,7 +743,7 @@ sub from_ieee754 {
unless (defined $in) {
carp("Input is undefined");
- return $self -> bzero();
+ return $self -> bzero(@r);
}
# Make sure input string is a string of zeros and ones.
@@ -927,7 +772,7 @@ sub from_ieee754 {
my $x;
- $expo -> bsub($bias); # subtract bias
+ $expo = $expo -> bsub($bias); # subtract bias
if ($expo < $emin) { # zero and subnormals
if ($mant == 0) { # zero
@@ -935,8 +780,8 @@ sub from_ieee754 {
} else { # subnormals
# compute (1/$b)**(N) rather than ($b)**(-N)
$x = $class -> new("0.5"); # 1/$b
- $x -> bpow($bias + $t - 1) -> bmul($mant);
- $x -> bneg() if $sign eq '-';
+ $x = $x -> bpow($bias + $t - 1) -> bmul($mant);
+ $x = $x -> bneg() if $sign eq '-';
}
}
@@ -944,7 +789,7 @@ sub from_ieee754 {
if ($mant == 0) { # inf
$x = $class -> binf($sign);
} else { # nan
- $x = $class -> bnan();
+ $x = $class -> bnan(@r);
}
}
@@ -953,12 +798,12 @@ sub from_ieee754 {
if ($expo < $t) {
# compute (1/$b)**(N) rather than ($b)**(-N)
$x = $class -> new("0.5"); # 1/$b
- $x -> bpow($t - $expo) -> bmul($mant);
+ $x = $x -> bpow($t - $expo) -> bmul($mant);
} else {
$x = $class -> new(2);
- $x -> bpow($expo - $t) -> bmul($mant);
+ $x = $x -> bpow($expo - $t) -> bmul($mant);
}
- $x -> bneg() if $sign eq '-';
+ $x = $x -> bneg() if $sign eq '-';
}
if ($selfref) {
@@ -969,7 +814,10 @@ sub from_ieee754 {
} else {
$self = $x;
}
- return $self;
+
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self -> is_int();
+ return $self -> round(@r);
}
croak("The format '$format' is not yet supported.");
@@ -978,9 +826,12 @@ sub from_ieee754 {
sub bzero {
# create/assign '+0'
- if (@_ == 0) {
- #carp("Using bone() as a function is deprecated;",
- # " use bone() as a method instead");
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -989,7 +840,18 @@ sub bzero {
my $class = $selfref || $self;
$self->import() if $IMPORT == 0; # make require work
- return if $selfref && $self->modify('bzero');
+
+ # Don't modify constant (read-only) objects.
+
+ return $self if $selfref && $self->modify('bzero');
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
+
+ return $downgrade -> bzero(@r) if defined $downgrade;
+
+ # If called as a class method, initialize a new object.
$self = bless {}, $class unless $selfref;
@@ -1002,11 +864,13 @@ sub bzero {
# parameters are given, and if called as a class method initialize the new
# instance with the class variables.
- if (@_) {
+ #return $self -> round(@r); # this should work, but doesnt; fixme!
+
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
- $self->{_a} = $_[0];
- $self->{_p} = $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
+ $self->{_a} = $r[0];
+ $self->{_p} = $r[1];
} else {
unless($selfref) {
$self->{_a} = $class -> accuracy();
@@ -1020,9 +884,12 @@ sub bzero {
sub bone {
# Create or assign '+1' (or -1 if given sign '-').
- if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
- #carp("Using bone() as a function is deprecated;",
- # " use bone() as a method instead");
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -1031,10 +898,26 @@ sub bone {
my $class = $selfref || $self;
$self->import() if $IMPORT == 0; # make require work
- return if $selfref && $self->modify('bone');
- my $sign = shift;
- $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+ # Don't modify constant (read-only) objects.
+
+ return $self if $selfref && $self->modify('bone');
+
+ return $downgrade -> bone(@_) if defined $downgrade;
+
+ # Get the sign.
+
+ my $sign = '+'; # default is to return +1
+ if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) {
+ $sign = $1;
+ shift;
+ }
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
$self = bless {}, $class unless $selfref;
@@ -1047,9 +930,11 @@ sub bone {
# parameters are given, and if called as a class method initialize the new
# instance with the class variables.
- if (@_) {
+ #return $self -> round(@r); # this should work, but doesnt; fixme!
+
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
$self->{_a} = $_[0];
$self->{_p} = $_[1];
} else {
@@ -1065,11 +950,12 @@ sub bone {
sub binf {
# create/assign a '+inf' or '-inf'
- if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
- $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
{
- #carp("Using binf() as a function is deprecated;",
- # " use binf() as a method instead");
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -1085,10 +971,26 @@ sub binf {
}
$self->import() if $IMPORT == 0; # make require work
- return if $selfref && $self->modify('binf');
- my $sign = shift;
- $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+ # Don't modify constant (read-only) objects.
+
+ return $self if $selfref && $self->modify('binf');
+
+ return $downgrade -> binf(@_) if $downgrade;
+
+ # Get the sign.
+
+ my $sign = '+'; # default is to return positive infinity
+ if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) {
+ $sign = $1;
+ shift;
+ }
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
$self = bless {}, $class unless $selfref;
@@ -1101,11 +1003,13 @@ sub binf {
# parameters are given, and if called as a class method initialize the new
# instance with the class variables.
- if (@_) {
+ #return $self -> round(@r); # this should work, but doesnt; fixme!
+
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
- $self->{_a} = $_[0];
- $self->{_p} = $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
+ $self->{_a} = $r[0];
+ $self->{_p} = $r[1];
} else {
unless($selfref) {
$self->{_a} = $class -> accuracy();
@@ -1119,9 +1023,12 @@ sub binf {
sub bnan {
# create/assign a 'NaN'
- if (@_ == 0) {
- #carp("Using bnan() as a function is deprecated;",
- # " use bnan() as a method instead");
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -1137,7 +1044,18 @@ sub bnan {
}
$self->import() if $IMPORT == 0; # make require work
- return if $selfref && $self->modify('bnan');
+
+ # Don't modify constant (read-only) objects.
+
+ return $self if $selfref && $self->modify('bnan');
+
+ return $downgrade -> bnan(@_) if defined $downgrade;
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
$self = bless {}, $class unless $selfref;
@@ -1150,11 +1068,13 @@ sub bnan {
# parameters are given, and if called as a class method initialize the new
# instance with the class variables.
- if (@_) {
+ #return $self -> round(@r); # this should work, but doesnt; fixme!
+
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
- $self->{_a} = $_[0];
- $self->{_p} = $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
+ $self->{_a} = $r[0];
+ $self->{_p} = $r[1];
} else {
unless($selfref) {
$self->{_a} = $class -> accuracy();
@@ -1167,6 +1087,15 @@ sub bnan {
sub bpi {
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
+ unshift @_, __PACKAGE__;
+ }
+
# Called as Argument list
# --------- -------------
# Math::BigFloat->bpi() ("Math::BigFloat")
@@ -1188,35 +1117,12 @@ sub bpi {
my $self = shift;
my $selfref = ref $self;
my $class = $selfref || $self;
+ my @r = @_; # rounding paramters
- my @r; # rounding paramters
-
- # If bpi() is called as a function ...
- #
- # This cludge is necessary because we still support bpi() as a function. If
- # bpi() is called with either no argument or one argument, and that one
- # argument is either undefined or a scalar that looks like a number, then
- # we assume bpi() is called as a function.
-
- if (@_ == 0 &&
- (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/i)
- ||
- !defined($self))
- {
- $r[0] = $self;
- $class = __PACKAGE__;
- $self = $class -> bzero(@r); # initialize
- }
-
- # ... or if bpi() is called as a method ...
-
- else {
- @r = @_;
- if ($selfref) { # bpi() called as instance method
- return $self if $self -> modify('bpi');
- } else { # bpi() called as class method
- $self = $class -> bzero(@r); # initialize
- }
+ if ($selfref) { # bpi() called as an instance method
+ return $self if $self -> modify('bpi');
+ } else { # bpi() called as a class method
+ $self = bless {}, $class; # initialize new instance
}
($self, @r) = $self -> _find_round_parameters(@r);
@@ -1291,13 +1197,19 @@ EOF
if ($last_digit lt '9') {
substr($digits, -1, 1) = ++$last_digit;
} else {
- $digits =~ s/([0-8])(9+)$/ ($1 + 1) . ("0" x CORE::length($2)) /e;
+ $digits =~ s{([0-8])(9+)$}
+ { ($1 + 1) . ("0" x CORE::length($2)) }e;
}
}
- # Append the exponent and convert to an object.
+ # Convert to an object.
- $pi = Math::BigFloat -> new($digits . 'e-' . ($n - 1));
+ $pi = bless {
+ sign => '+',
+ _m => $LIB -> _new($digits),
+ _es => '-',
+ _e => $LIB -> _new($n - 1),
+ }, $class;
} else {
@@ -1308,20 +1220,21 @@ EOF
$n += 8;
$HALF = $class -> new($HALF) unless ref($HALF);
- my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy() -> bsqrt($n),
- $HALF -> copy() -> bmul($HALF), $class -> bone);
+ my ($an, $bn, $tn, $pn)
+ = ($class -> bone, $HALF -> copy() -> bsqrt($n),
+ $HALF -> copy() -> bmul($HALF), $class -> bone);
while ($pn < $n) {
my $prev_an = $an -> copy();
- $an -> badd($bn) -> bmul($HALF, $n);
- $bn -> bmul($prev_an) -> bsqrt($n);
- $prev_an -> bsub($an);
- $tn -> bsub($pn * $prev_an * $prev_an);
- $pn -> badd($pn);
+ $an = $an -> badd($bn) -> bmul($HALF, $n);
+ $bn = $bn -> bmul($prev_an) -> bsqrt($n);
+ $prev_an = $prev_an -> bsub($an);
+ $tn = $tn -> bsub($pn * $prev_an * $prev_an);
+ $pn = $pn -> badd($pn);
}
- $an -> badd($bn);
- $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
+ $an = $an -> badd($bn);
+ $an = $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
- $an -> round(@r);
+ $an = $an -> round(@r);
$pi = $an;
}
@@ -1335,54 +1248,95 @@ EOF
$self -> {$key} = $pi -> {$key};
}
+ return $downgrade -> new($self -> bdstr(), @r)
+ if defined($downgrade) && $self->is_int();
return $self;
}
sub copy {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- # If called as a class method, the object to copy is the next argument.
+ my ($x, $class);
+ if (ref($_[0])) { # $y = $x -> copy()
+ $x = shift;
+ $class = ref($x);
+ } else { # $y = Math::BigInt -> copy($y)
+ $class = shift;
+ $x = shift;
+ }
- $self = shift() unless $selfref;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @_;
my $copy = bless {}, $class;
- $copy->{sign} = $self->{sign};
- $copy->{_es} = $self->{_es};
- $copy->{_m} = $LIB->_copy($self->{_m});
- $copy->{_e} = $LIB->_copy($self->{_e});
- $copy->{_a} = $self->{_a} if exists $self->{_a};
- $copy->{_p} = $self->{_p} if exists $self->{_p};
+ $copy->{sign} = $x->{sign};
+ $copy->{_es} = $x->{_es};
+ $copy->{_m} = $LIB->_copy($x->{_m});
+ $copy->{_e} = $LIB->_copy($x->{_e});
+ $copy->{_a} = $x->{_a} if exists $x->{_a};
+ $copy->{_p} = $x->{_p} if exists $x->{_p};
return $copy;
}
-sub as_number {
+sub as_int {
# return copy as a bigint representation of this Math::BigFloat number
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- return $x if $x->modify('as_number');
+ return $x -> copy() if $x -> isa("Math::BigInt");
- if (!$x->isa('Math::BigFloat')) {
- # if the object can as_number(), use it
- return $x->as_number() if $x->can('as_number');
- # otherwise, get us a float and then a number
- $x = $x->can('as_float') ? $x->as_float() : $class->new(0+"$x");
- }
+ # disable upgrading and downgrading
- return Math::BigInt->binf($x->sign()) if $x->is_inf();
- return Math::BigInt->bnan() if $x->is_nan();
+ require Math::BigInt;
+ my $upg = Math::BigInt -> upgrade();
+ my $dng = Math::BigInt -> downgrade();
+ Math::BigInt -> upgrade(undef);
+ Math::BigInt -> downgrade(undef);
- my $z = $LIB->_copy($x->{_m});
- if ($x->{_es} eq '-') { # < 0
- $z = $LIB->_rsft($z, $x->{_e}, 10);
- } elsif (! $LIB->_is_zero($x->{_e})) { # > 0
- $z = $LIB->_lsft($z, $x->{_e}, 10);
+ my $y;
+ if ($x -> is_inf()) {
+ $y = Math::BigInt -> binf($x->sign());
+ } elsif ($x -> is_nan()) {
+ $y = Math::BigInt -> bnan();
+ } else {
+ $y = $LIB->_copy($x->{_m});
+ if ($x->{_es} eq '-') { # < 0
+ $y = $LIB->_rsft($y, $x->{_e}, 10);
+ } elsif (! $LIB->_is_zero($x->{_e})) { # > 0
+ $y = $LIB->_lsft($y, $x->{_e}, 10);
+ }
+ $y = Math::BigInt->new($x->{sign} . $LIB->_str($y));
}
- $z = Math::BigInt->new($x->{sign} . $LIB->_str($z));
- $z;
+
+ # reset upgrading and downgrading
+
+ Math::BigInt -> upgrade($upg);
+ Math::BigInt -> downgrade($dng);
+
+ return $y;
+}
+
+sub as_float {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $x -> copy() if $x -> isa("Math::BigFloat");
+
+ # disable upgrading and downgrading
+
+ require Math::BigFloat;
+ my $upg = Math::BigFloat -> upgrade();
+ my $dng = Math::BigFloat -> downgrade();
+ Math::BigFloat -> upgrade(undef);
+ Math::BigFloat -> downgrade(undef);
+
+ my $y = Math::BigFloat -> new($x);
+
+ # reset upgrading and downgrading
+
+ Math::BigFloat -> upgrade($upg);
+ Math::BigFloat -> downgrade($dng);
+
+ return $y;
}
###############################################################################
@@ -1391,14 +1345,14 @@ sub as_number {
sub is_zero {
# return true if arg (BFLOAT or num_str) is zero
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
($x->{sign} eq '+' && $LIB->_is_zero($x->{_m})) ? 1 : 0;
}
sub is_one {
# return true if arg (BFLOAT or num_str) is +1 or -1 if signis given
- my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
$sign = '+' if !defined $sign || $sign ne '-';
@@ -1409,7 +1363,7 @@ sub is_one {
sub is_odd {
# return true if arg (BFLOAT or num_str) is odd or false if even
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
(($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
($LIB->_is_zero($x->{_e})) &&
@@ -1418,7 +1372,7 @@ sub is_odd {
sub is_even {
# return true if arg (BINT or num_str) is even or false if odd
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
(($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
($x->{_es} eq '+') && # 123.45 isn't
@@ -1427,7 +1381,7 @@ sub is_even {
sub is_int {
# return true if arg (BFLOAT or num_str) is an integer
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
(($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
($x->{_es} eq '+')) ? 1 : 0; # 1e-1 => no integer
@@ -1441,19 +1395,15 @@ sub bcmp {
# Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
# set up parameters
- my ($class, $x, $y) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- return $upgrade->bcmp($x, $y) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
# Handle all 'nan' cases.
- return undef if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
+ return if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
# Handle all '+inf' and '-inf' cases.
@@ -1488,8 +1438,9 @@ sub bcmp {
my $mxl = $LIB->_len($x->{_m});
my $myl = $LIB->_len($y->{_m});
- # If the mantissas have the same length, there is no point in normalizing the
- # exponents by the length of the mantissas, so treat that as a special case.
+ # If the mantissas have the same length, there is no point in normalizing
+ # the exponents by the length of the mantissas, so treat that as a special
+ # case.
if ($mxl == $myl) {
@@ -1527,8 +1478,8 @@ sub bcmp {
if ($x->{_es} eq '+') {
- # If the exponent of x is >= 0 and the exponent of y is >= 0, there is no
- # need to do anything special.
+ # If the exponent of x is >= 0 and the exponent of y is >= 0, there is
+ # no need to do anything special.
if ($y->{_es} eq '+') {
$ex = $LIB->_copy($x->{_e});
@@ -1577,8 +1528,8 @@ sub bcmp {
return $cmp if $cmp;
# Compare the mantissas, but first normalize them by padding the shorter
- # mantissa with zeros (shift left) until it has the same length as the longer
- # mantissa.
+ # mantissa with zeros (shift left) until it has the same length as the
+ # longer mantissa.
my $mx = $x->{_m};
my $my = $y->{_m};
@@ -1600,20 +1551,17 @@ sub bacmp {
# Returns one of undef, <0, =0, >0. (suitable for sort)
# set up parameters
- my ($class, $x, $y) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- return $upgrade->bacmp($x, $y) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
# handle +-inf and NaN's
if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if ($x->is_inf() && $y->is_inf());
- return 1 if ($x->is_inf() && !$y->is_inf());
+ return if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if ($x->is_inf() && $y->is_inf());
+ return 1 if ($x->is_inf() && !$y->is_inf());
return -1;
}
@@ -1658,20 +1606,35 @@ sub bacmp {
sub bneg {
# (BINT or num_str) return BINT
# negate number or make a negated number from string
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return $x if $x->modify('bneg');
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_m}));
- $x;
+ return $x -> bnan(@r) if $x -> is_nan();
+
+ # For +0 do not negate (to have always normalized +0).
+ $x->{sign} =~ tr/+-/-+/
+ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_m});
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+ && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+ return $x -> round(@r);
}
sub bnorm {
+ # bnorm() can't support rounding, because bround() and bfround() call
+ # bnorm(), which would recurse indefinitely.
+
# adjust m and e so that m is smallest possible
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
- return $x if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # inf, nan etc
+ if ($x->{sign} !~ /^[+-]$/) {
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
my $zeros = $LIB->_zeros($x->{_m}); # correct for trailing zeros
if ($zeros != 0) {
@@ -1690,12 +1653,17 @@ sub bnorm {
}
} else {
# $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing
- # zeros). So, for something like 0Ey, set y to 1, and -0 => +0
- $x->{sign} = '+', $x->{_es} = '+', $x->{_e} = $LIB->_one()
- if $LIB->_is_zero($x->{_m});
+ # zeros). So, for something like 0Ey, set y to 0, and -0 => +0
+ if ($LIB->_is_zero($x->{_m})) {
+ $x->{sign} = '+';
+ $x->{_es} = '+';
+ $x->{_e} = $LIB->_zero();
+ }
}
- $x;
+ return $downgrade -> new($x)
+ if defined($downgrade) && $x->is_int();
+ return $x;
}
sub binc {
@@ -1704,19 +1672,28 @@ sub binc {
return $x if $x->modify('binc');
+ # Inf and NaN
+
+ return $x -> bnan(@r) if $x -> is_nan();
+ return $x -> binf($x->{sign}, @r) if $x -> is_inf();
+
+ # Non-integer
+
if ($x->{_es} eq '-') {
- return $x->badd($class->bone(), @r); # digits after dot
+ return $x->badd($class->bone(), @r);
}
- if (!$LIB->_is_zero($x->{_e})) # _e == 0 for NaN, inf, -inf
- {
- # 1e2 => 100, so after the shift below _m has a '0' as last digit
+ # If the exponent is non-zero, convert the internal representation, so that,
+ # e.g., 12e+3 becomes 12000e+0 and we can easily increment the mantissa.
+
+ if (!$LIB->_is_zero($x->{_e})) {
$x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
- $x->{_e} = $LIB->_zero(); # normalize
+ $x->{_e} = $LIB->_zero(); # normalize
$x->{_es} = '+';
# we know that the last digit of $x will be '1' or '9', depending on the
# sign
}
+
# now $x->{_e} == 0
if ($x->{sign} eq '+') {
$x->{_m} = $LIB->_inc($x->{_m});
@@ -1726,8 +1703,10 @@ sub binc {
$x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # -1 +1 => -0 => +0
return $x->bnorm()->bround(@r);
}
- # inf, nan handling etc
- $x->badd($class->bone(), @r); # badd() does round
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ return $x;
}
sub bdec {
@@ -1736,143 +1715,167 @@ sub bdec {
return $x if $x->modify('bdec');
+ # Inf and NaN
+
+ return $x -> bnan(@r) if $x -> is_nan();
+ return $x -> binf($x->{sign}, @r) if $x -> is_inf();
+
+ # Non-integer
+
if ($x->{_es} eq '-') {
- return $x->badd($class->bone('-'), @r); # digits after dot
+ return $x->badd($class->bone('-'), @r);
}
+ # If the exponent is non-zero, convert the internal representation, so that,
+ # e.g., 12e+3 becomes 12000e+0 and we can easily increment the mantissa.
+
if (!$LIB->_is_zero($x->{_e})) {
$x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
- $x->{_e} = $LIB->_zero(); # normalize
+ $x->{_e} = $LIB->_zero(); # normalize
$x->{_es} = '+';
}
+
# now $x->{_e} == 0
my $zero = $x->is_zero();
- # <= 0
- if (($x->{sign} eq '-') || $zero) {
+ if (($x->{sign} eq '-') || $zero) { # x <= 0
$x->{_m} = $LIB->_inc($x->{_m});
$x->{sign} = '-' if $zero; # 0 => 1 => -1
$x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # -1 +1 => -0 => +0
return $x->bnorm()->round(@r);
}
- # > 0
- elsif ($x->{sign} eq '+') {
+ elsif ($x->{sign} eq '+') { # x > 0
$x->{_m} = $LIB->_dec($x->{_m});
return $x->bnorm()->round(@r);
}
- # inf, nan handling etc
- $x->badd($class->bone('-'), @r); # does round
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ return $x -> round(@r);
}
sub badd {
- # add second arg (BFLOAT or string) to first (BFLOAT) (modifies first)
- # return result as BFLOAT
-
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('badd');
# inf and NaN handling
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
- # NaN first
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
- # +inf++inf or -inf+-inf => same, rest is NaN
- return $x if $x->{sign} eq $y->{sign};
- return $x->bnan();
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+
+ # $x is NaN and/or $y is NaN
+ if ($x->{sign} eq $nan || $y->{sign} eq $nan) {
+ $x = $x->bnan();
}
- # +-inf + something => +inf; something +-inf => +-inf
- $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
- return $x;
+
+ # $x is Inf and $y is Inf
+ elsif ($x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/) {
+ # +Inf + +Inf or -Inf + -Inf => same, rest is NaN
+ $x = $x->bnan() if $x->{sign} ne $y->{sign};
+ }
+
+ # +-inf + something => +-inf; something +-inf => +-inf
+ elsif ($y->{sign} =~ /^[+-]inf$/) {
+ $x->{sign} = $y->{sign};
+ }
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined $downgrade;
+ return $x -> round(@r);
}
- return $upgrade->badd($x, $y, @r) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
+ return $upgrade->badd($x, $y, @r) if defined $upgrade;
$r[3] = $y; # no push!
- # speed: no add for 0+y or x+0
- return $x->bround(@r) if $y->is_zero(); # x+0
- if ($x->is_zero()) # 0+y
- {
+ # for speed: no add for $x + 0
+ if ($y->is_zero()) {
+ $x = $x->round(@r);
+ }
+
+ # for speed: no add for 0 + $y
+ elsif ($x->is_zero()) {
# make copy, clobbering up x (modify in place!)
$x->{_e} = $LIB->_copy($y->{_e});
$x->{_es} = $y->{_es};
$x->{_m} = $LIB->_copy($y->{_m});
$x->{sign} = $y->{sign} || $nan;
- return $x->round(@r);
+ $x = $x->round(@r);
}
- # take lower of the two e's and adapt m1 to it to match m2
- my $e = $y->{_e};
- $e = $LIB->_zero() if !defined $e; # if no BFLOAT?
- $e = $LIB->_copy($e); # make copy (didn't do it yet)
+ # both $x and $y are non-zero
+ else {
- my $es;
+ # take lower of the two e's and adapt m1 to it to match m2
+ my $e = $y->{_e};
+ $e = $LIB->_zero() if !defined $e; # if no BFLOAT?
+ $e = $LIB->_copy($e); # make copy (didn't do it yet)
- ($e, $es) = _e_sub($e, $x->{_e}, $y->{_es} || '+', $x->{_es});
+ my $es;
- my $add = $LIB->_copy($y->{_m});
+ ($e, $es) = $LIB -> _ssub($e, $y->{_es} || '+', $x->{_e}, $x->{_es});
- if ($es eq '-') # < 0
- {
- $x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
- } elsif (!$LIB->_is_zero($e)) # > 0
- {
- $add = $LIB->_lsft($add, $e, 10);
- }
- # else: both e are the same, so just leave them
+ my $add = $LIB->_copy($y->{_m});
- if ($x->{sign} eq $y->{sign}) {
- # add
- $x->{_m} = $LIB->_add($x->{_m}, $add);
- } else {
- ($x->{_m}, $x->{sign}) =
- _e_add($x->{_m}, $add, $x->{sign}, $y->{sign});
+ if ($es eq '-') { # < 0
+ $x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
+ ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es);
+ } elsif (!$LIB->_is_zero($e)) { # > 0
+ $add = $LIB->_lsft($add, $e, 10);
+ }
+
+ # else: both e are the same, so just leave them
+
+ if ($x->{sign} eq $y->{sign}) {
+ $x->{_m} = $LIB->_add($x->{_m}, $add);
+ } else {
+ ($x->{_m}, $x->{sign}) =
+ $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $y->{sign});
+ }
+
+ # delete trailing zeros, then round
+ $x = $x->bnorm()->round(@r);
}
- # delete trailing zeros, then round
- $x->bnorm()->round(@r);
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ return $x; # rounding already done above
}
sub bsub {
- # (BINT or num_str, BINT or num_str) return BINT
- # subtract second arg from first, modify first
-
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('bsub');
- return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
- if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
-
- return $x -> round(@r) if $y -> is_zero();
+ if ($y -> is_zero()) {
+ $x = $x -> round(@r);
+ } else {
- # To correctly handle the lone special case $x -> bsub($x), we note the
- # sign of $x, then flip the sign from $y, and if the sign of $x did change,
- # too, then we caught the special case:
+ # To correctly handle the special case $x -> bsub($x), we note the sign
+ # of $x, then flip the sign of $y, and if the sign of $x changed too,
+ # then we know that $x and $y are the same object.
- my $xsign = $x -> {sign};
- $y -> {sign} =~ tr/+-/-+/; # does nothing for NaN
- if ($xsign ne $x -> {sign}) {
- # special case of $x -> bsub($x) results in 0
- return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
- return $x -> bnan(); # NaN, -inf, +inf
+ my $xsign = $x -> {sign};
+ $y -> {sign} =~ tr/+-/-+/; # does nothing for NaN
+ if ($xsign ne $x -> {sign}) {
+ # special case of $x -> bsub($x) results in 0
+ if ($xsign =~ /^[+-]$/) {
+ $x = $x -> bzero(@r);
+ } else {
+ $x = $x -> bnan(); # NaN, -inf, +inf
+ }
+ return $downgrade -> new($x -> bdstr(), @r) if defined $downgrade;
+ return $x -> round(@r);
+ }
+ $x = $x -> badd($y, @r); # badd does not leave internal zeros
+ $y -> {sign} =~ tr/+-/-+/; # reset $y (does nothing for NaN)
}
- $x -> badd($y, @r); # badd does not leave internal zeros
- $y -> {sign} =~ tr/+-/-+/; # refix $y (does nothing for NaN)
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
$x; # already rounded by badd() or no rounding
}
@@ -1880,70 +1883,73 @@ sub bmul {
# multiply two numbers
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('bmul');
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return $x->bnan(@r) if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
# inf handling
if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
+ return $x->bnan(@r) if $x->is_zero() || $y->is_zero();
# result will always be +-inf:
# +inf * +/+inf => +inf, -inf * -/-inf => +inf
# +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ return $x->binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-', @r);
}
- return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
+ return $upgrade->bmul($x, $y, @r) if defined $upgrade;
# aEb * cEd = (a*c)E(b+d)
$x->{_m} = $LIB->_mul($x->{_m}, $y->{_m});
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ ($x->{_e}, $x->{_es})
+ = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
$r[3] = $y; # no push!
# adjust sign:
$x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
- $x->bnorm->round(@r);
+ $x = $x->bnorm->round(@r);
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
}
sub bmuladd {
# multiply two numbers and add the third to the result
# set up parameters
- my ($class, $x, $y, $z, @r) = objectify(3, @_);
+ my ($class, $x, $y, $z, @r)
+ = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+ ? (ref($_[0]), @_)
+ : objectify(3, @_);
return $x if $x->modify('bmuladd');
- return $x->bnan() if (($x->{sign} eq $nan) ||
- ($y->{sign} eq $nan) ||
- ($z->{sign} eq $nan));
+ return $x->bnan(@r) if (($x->{sign} eq $nan) ||
+ ($y->{sign} eq $nan) ||
+ ($z->{sign} eq $nan));
# inf handling
if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
+ return $x->bnan(@r) if $x->is_zero() || $y->is_zero();
# result will always be +-inf:
# +inf * +/+inf => +inf, -inf * -/-inf => +inf
# +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ return $x->binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-', @r);
}
- return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
-
# aEb * cEd = (a*c)E(b+d)
$x->{_m} = $LIB->_mul($x->{_m}, $y->{_m});
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ ($x->{_e}, $x->{_es})
+ = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
$r[3] = $y; # no push!
@@ -1951,7 +1957,11 @@ sub bmuladd {
$x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
# z=inf handling (z=NaN handled above)
- $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+ if ($z->{sign} =~ /^[+-]inf$/) {
+ $x->{sign} = $z->{sign};
+ return $downgrade -> new($x -> bdstr(), @r) if defined $downgrade;
+ return $x -> round(@r);
+ }
# take lower of the two e's and adapt m1 to it to match m2
my $e = $z->{_e};
@@ -1960,14 +1970,14 @@ sub bmuladd {
my $es;
- ($e, $es) = _e_sub($e, $x->{_e}, $z->{_es} || '+', $x->{_es});
+ ($e, $es) = $LIB -> _ssub($e, $z->{_es} || '+', $x->{_e}, $x->{_es});
my $add = $LIB->_copy($z->{_m});
if ($es eq '-') # < 0
{
$x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es);
} elsif (!$LIB->_is_zero($e)) # > 0
{
$add = $LIB->_lsft($add, $e, 10);
@@ -1979,11 +1989,15 @@ sub bmuladd {
$x->{_m} = $LIB->_add($x->{_m}, $add);
} else {
($x->{_m}, $x->{sign}) =
- _e_add($x->{_m}, $add, $x->{sign}, $z->{sign});
+ $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $z->{sign});
}
# delete trailing zeros, then round
- $x->bnorm()->round(@r);
+ $x = $x->bnorm()->round(@r);
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
}
sub bdiv {
@@ -1991,10 +2005,10 @@ sub bdiv {
# (BFLOAT, BFLOAT) (quo, rem) or BFLOAT (only quo)
# set up parameters
- my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
# objectify is costly, so avoid it
if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
+ ($class, $x, $y, @r) = objectify(2, @_);
}
return $x if $x->modify('bdiv');
@@ -2005,7 +2019,8 @@ sub bdiv {
# Math::BigInt -> bdiv().
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r))
+ : $x -> bnan(@r);
}
# Divide by zero and modulo zero. This is handled the same way as in
@@ -2015,12 +2030,14 @@ sub bdiv {
if ($y -> is_zero()) {
my ($quo, $rem);
if ($wantarray) {
- $rem = $x -> copy();
+ $rem = $x -> copy() -> round(@r);
+ $rem = $downgrade -> new($rem, @r)
+ if defined($downgrade) && $rem -> is_int();
}
if ($x -> is_zero()) {
- $quo = $x -> bnan();
+ $quo = $x -> bnan(@r);
} else {
- $quo = $x -> binf($x -> {sign});
+ $quo = $x -> binf($x -> {sign}, @r);
}
return $wantarray ? ($quo, $rem) : $quo;
}
@@ -2031,12 +2048,12 @@ sub bdiv {
if ($x -> is_inf()) {
my ($quo, $rem);
- $rem = $class -> bnan() if $wantarray;
+ $rem = $class -> bnan(@r) if $wantarray;
if ($y -> is_inf()) {
- $quo = $x -> bnan();
+ $quo = $x -> bnan(@r);
} else {
my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
- $quo = $x -> binf($sign);
+ $quo = $x -> binf($sign, @r);
}
return $wantarray ? ($quo, $rem) : $quo;
}
@@ -2051,19 +2068,21 @@ sub bdiv {
my ($quo, $rem);
if ($wantarray) {
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- $rem = $x -> copy();
- $quo = $x -> bzero();
+ $rem = $x -> copy() -> round(@r);
+ $rem = $downgrade -> new($rem, @r)
+ if defined($downgrade) && $rem -> is_int();
+ $quo = $x -> bzero(@r);
} else {
- $rem = $class -> binf($y -> {sign});
- $quo = $x -> bone('-');
+ $rem = $class -> binf($y -> {sign}, @r);
+ $quo = $x -> bone('-', @r);
}
return ($quo, $rem);
} else {
if ($y -> is_inf()) {
if ($x -> is_nan() || $x -> is_inf()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
} else {
- return $x -> bzero();
+ return $x -> bzero(@r);
}
}
}
@@ -2073,24 +2092,37 @@ sub bdiv {
# the denominator (divisor) is non-zero.
# x == 0?
- return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
+ if ($x->is_zero()) {
+ my ($quo, $rem);
+ $quo = $x->round(@r);
+ $quo = $downgrade -> new($quo, @r)
+ if defined($downgrade) && $quo -> is_int();
+ if ($wantarray) {
+ $rem = $class -> bzero(@r);
+ return $quo, $rem;
+ }
+ return $quo;
+ }
+
+ # Division might return a value that we can not represent exactly, so
+ # upgrade, if upgrading is enabled.
- # upgrade ?
- return $upgrade->bdiv($upgrade->new($x), $y, $a, $p, $r) if defined $upgrade;
+ return $upgrade -> bdiv($x, $y, @r)
+ if defined($upgrade) && !wantarray && !$LIB -> _is_one($y -> {_m});
# we need to limit the accuracy to protect against overflow
my $fallback = 0;
my (@params, $scale);
- ($x, @params) = $x->_find_round_parameters($a, $p, $r, $y);
+ ($x, @params) = $x->_find_round_parameters($r[0], $r[1], $r[2], $y);
- return $x if $x->is_nan(); # error in _find_round_parameters?
+ return $x -> round(@r) if $x->is_nan(); # error in _find_round_parameters?
# no rounding at all, so must use fallback
if (scalar @params == 0) {
# simulate old behaviour
$params[0] = $class->div_scale(); # and round to it as accuracy
$scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
+ $params[2] = $r[2]; # round mode by caller or undef
$fallback = 1; # to clear a/p afterwards
} else {
# the 4 below is empirical, and there might be cases where it is not
@@ -2103,7 +2135,8 @@ sub bdiv {
$y = $class->new($y) unless $y->isa('Math::BigFloat');
- my $lx = $LIB -> _len($x->{_m}); my $ly = $LIB -> _len($y->{_m});
+ my $lx = $LIB -> _len($x->{_m});
+ my $ly = $LIB -> _len($y->{_m});
$scale = $lx if $lx > $scale;
$scale = $ly if $ly > $scale;
my $diff = $ly - $lx;
@@ -2119,13 +2152,14 @@ sub bdiv {
if ($xsign ne $x->{sign}) {
# special case of $x /= $x results in 1
- $x->bone(); # "fixes" also sign of $y, since $x is $y
+ $x = $x->bone(); # "fixes" also sign of $y, since $x is $y
} else {
# correct $y's sign again
$y->{sign} =~ tr/+-/-+/;
# continue with normal div code:
- # make copy of $x in case of list context for later remainder calculation
+ # make copy of $x in case of list context for later remainder
+ # calculation
if (wantarray && $y_not_one) {
$rem = $x->copy();
}
@@ -2134,7 +2168,8 @@ sub bdiv {
# check for / +-1 (+/- 1E0)
if ($y_not_one) {
- # promote BigInts and it's subclasses (except when already a Math::BigFloat)
+ # promote Math::BigInt and its subclasses (except when already a
+ # Math::BigFloat)
$y = $class->new($y) unless $y->isa('Math::BigFloat');
# calculate the result to $scale digits and then round it
@@ -2143,70 +2178,77 @@ sub bdiv {
$x->{_m} = $LIB->_div($x->{_m}, $y->{_m}); # a/c
# correct exponent of $x
- ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ ($x->{_e}, $x->{_es})
+ = $LIB -> _ssub($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
# correct for 10**scale
- ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $LIB->_new($scale), $x->{_es}, '+');
- $x->bnorm(); # remove trailing 0's
+ ($x->{_e}, $x->{_es})
+ = $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($scale), '+');
+ $x = $x->bnorm(); # remove trailing 0's
}
} # end else $x != $y
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
delete $x->{_a}; # clear before round
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
delete $x->{_p}; # clear before round
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+ delete $x->{_a};
+ delete $x->{_p};
}
if (wantarray) {
if ($y_not_one) {
- $x -> bfloor();
- $rem->bmod($y, @params); # copy already done
+ $x = $x -> bfloor();
+ $rem = $rem->bmod($y, @params); # copy already done
}
if ($fallback) {
# clear a/p after round, since user did not request it
- delete $rem->{_a}; delete $rem->{_p};
+ delete $rem->{_a};
+ delete $rem->{_p};
}
+ $x = $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ $rem = $downgrade -> new($rem -> bdstr(), @r)
+ if defined($downgrade) && $rem -> is_int();
return ($x, $rem);
}
- $x;
+
+ $x = $downgrade -> new($x, @r)
+ if defined($downgrade) && $x -> is_int();
+ $x; # rounding already done above
}
sub bmod {
# (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return remainder
# set up parameters
- my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('bmod');
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bmod().
- if ($x -> is_nan() || $y -> is_nan()) {
- return $x -> bnan();
- }
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
# Modulo zero. This is handled the same way as in Math::BigInt -> bmod().
if ($y -> is_zero()) {
- return $x;
+ return $x -> round(@r);
}
# Numerator (dividend) is +/-inf. This is handled the same way as in
# Math::BigInt -> bmod().
if ($x -> is_inf()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
}
# Denominator (divisor) is +/-inf. This is handled the same way as in
@@ -2214,20 +2256,20 @@ sub bmod {
if ($y -> is_inf()) {
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- return $x;
+ return $x -> round(@r);
} else {
- return $x -> binf($y -> sign());
+ return $x -> binf($y -> sign(), @r);
}
}
- return $x->bzero() if $x->is_zero()
+ return $x->bzero(@r) if $x->is_zero()
|| ($x->is_int() &&
# check that $y == +1 or $y == -1:
($LIB->_is_zero($y->{_e}) && $LIB->_is_one($y->{_m})));
my $cmp = $x->bacmp($y); # equal or $x < $y?
if ($cmp == 0) { # $x == $y => result 0
- return $x -> bzero($a, $p);
+ return $x -> bzero(@r);
}
# only $y of the operands negative?
@@ -2235,7 +2277,7 @@ sub bmod {
$x->{sign} = $y->{sign}; # calc sign first
if ($cmp < 0 && $neg == 0) { # $x < $y => result $x
- return $x -> round($a, $p, $r);
+ return $x -> round(@r);
}
my $ym = $LIB->_copy($y->{_m});
@@ -2250,7 +2292,8 @@ sub bmod {
{
# 123 % 2.5 => 1230 % 25 => 5 => 0.5
$shifty = $LIB->_num($y->{_e}); # no more digits after dot
- $x->{_m} = $LIB->_lsft($x->{_m}, $y->{_e}, 10); # 123 => 1230, $y->{_m} is already 25
+ # 123 => 1230, $y->{_m} is already 25
+ $x->{_m} = $LIB->_lsft($x->{_m}, $y->{_e}, 10);
}
# $ym is now mantissa of $y based on exponent 0
@@ -2276,48 +2319,60 @@ sub bmod {
$x->{_m} = $LIB->_mod($x->{_m}, $ym);
$x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # fix sign for -0
- $x->bnorm();
+ $x = $x->bnorm();
- if ($neg != 0 && ! $x -> is_zero()) # one of them negative => correct in place
- {
+ # if one of them negative => correct in place
+ if ($neg != 0 && ! $x -> is_zero()) {
my $r = $y - $x;
$x->{_m} = $r->{_m};
$x->{_e} = $r->{_e};
$x->{_es} = $r->{_es};
$x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # fix sign for -0
- $x->bnorm();
+ $x = $x->bnorm();
}
- $x->round($a, $p, $r, $y); # round and return
+ $x = $x->round($r[0], $r[1], $r[2], $y);
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
}
sub bmodpow {
# takes a very large number to a very large exponent in a given very
# large modulus, quickly, thanks to binary exponentiation. Supports
# negative exponents.
- my ($class, $num, $exp, $mod) = objectify(3, @_);
+ my ($class, $num, $exp, $mod, @r)
+ = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+ ? (ref($_[0]), @_)
+ : objectify(3, @_);
return $num if $num->modify('bmodpow');
+ return $num -> bnan(@r)
+ if $mod->is_nan() || $exp->is_nan() || $mod->is_nan();
+
# check modulus for valid values
- return $num->bnan() if ($mod->{sign} ne '+' # NaN, -, -inf, +inf
- || $mod->is_zero());
+ return $num->bnan(@r) if $mod->{sign} ne '+' || $mod->is_zero();
# check exponent for valid values
if ($exp->{sign} =~ /\w/) {
# i.e., if it's NaN, +inf, or -inf...
- return $num->bnan();
+ return $num->bnan(@r);
}
- $num->bmodinv ($mod) if ($exp->{sign} eq '-');
+ $num = $num->bmodinv($mod, @r) if $exp->{sign} eq '-';
# check num for valid values (also NaN if there was no inverse but $exp < 0)
- return $num->bnan() if $num->{sign} !~ /^[+-]$/;
+ return $num->bnan(@r) if $num->{sign} !~ /^[+-]$/;
# $mod is positive, sign on $exp is ignored, result also positive
# XXX TODO: speed it up when all three numbers are integers
- $num->bpow($exp)->bmod($mod);
+ $num = $num->bpow($exp)->bmod($mod);
+
+ return $downgrade -> new($num -> bdstr(), @r) if defined($downgrade)
+ && ($num->is_int() || $num->is_inf() || $num->is_nan());
+ return $num -> round(@r);
}
sub bpow {
@@ -2332,71 +2387,84 @@ sub bpow {
($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('bpow');
+ return $x if $x -> modify('bpow');
# $x and/or $y is a NaN
- return $x->bnan() if $x->is_nan() || $y->is_nan();
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan();
# $x and/or $y is a +/-Inf
- if ($x->is_inf("-")) {
- return $x->bzero() if $y->is_negative();
- return $x->bnan() if $y->is_zero();
- return $x if $y->is_odd();
- return $x->bneg();
- } elsif ($x->is_inf("+")) {
- return $x->bzero() if $y->is_negative();
- return $x->bnan() if $y->is_zero();
+ if ($x -> is_inf("-")) {
+ return $x -> bzero() if $y -> is_negative();
+ return $x -> bnan() if $y -> is_zero();
+ return $x if $y -> is_odd();
+ return $x -> bneg();
+ } elsif ($x -> is_inf("+")) {
+ return $x -> bzero() if $y -> is_negative();
+ return $x -> bnan() if $y -> is_zero();
+ return $x;
+ } elsif ($y -> is_inf("-")) {
+ return $x -> bnan() if $x -> is_one("-");
+ return $x -> binf("+") if $x > -1 && $x < 1;
+ return $x -> bone() if $x -> is_one("+");
+ return $x -> bzero();
+ } elsif ($y -> is_inf("+")) {
+ return $x -> bnan() if $x -> is_one("-");
+ return $x -> bzero() if $x > -1 && $x < 1;
+ return $x -> bone() if $x -> is_one("+");
+ return $x -> binf("+");
+ }
+
+ if ($x -> is_zero()) {
+ return $x -> bone() if $y -> is_zero();
+ return $x -> binf() if $y -> is_negative();
return $x;
- } elsif ($y->is_inf("-")) {
- return $x->bnan() if $x -> is_one("-");
- return $x->binf("+") if $x > -1 && $x < 1;
- return $x->bone() if $x -> is_one("+");
- return $x->bzero();
- } elsif ($y->is_inf("+")) {
- return $x->bnan() if $x -> is_one("-");
- return $x->bzero() if $x > -1 && $x < 1;
- return $x->bone() if $x -> is_one("+");
- return $x->binf("+");
}
- # we don't support complex numbers, so return NaN
- return $x->bnan() if $x->is_negative() && !$y->is_int();
-
- # cache the result of is_zero
- my $y_is_zero = $y->is_zero();
- return $x->bone() if $y_is_zero;
- return $x if $x->is_one() || $y->is_one();
+ # We don't support complex numbers, so upgrade or return NaN.
- my $x_is_zero = $x->is_zero();
- return $x->_pow($y, $a, $p, $r) if !$x_is_zero && !$y->is_int();
-
- my $y1 = $y->as_number()->{value}; # make MBI part
+ if ($x -> is_negative() && !$y -> is_int()) {
+ return $upgrade -> bpow($x, $y, $a, $p, $r) if defined $upgrade;
+ return $x -> bnan();
+ }
- if ($x->is_one("-")) {
- # if $x == -1 and odd/even y => +1/-1 because +-1 ^ (+-1) => +-1
- return $LIB->_is_odd($y1) ? $x : $x->babs(1);
+ if ($x -> is_one("+") || $y -> is_one()) {
+ return $x;
}
- if ($x_is_zero) {
- return $x if $y->{sign} eq '+'; # 0**y => 0 (if not y <= 0)
- # 0 ** -y => 1 / (0 ** y) => 1 / 0! (1 / 0 => +inf)
- return $x->binf();
+
+ if ($x -> is_one("-")) {
+ return $x if $y -> is_odd();
+ return $x -> bneg();
}
+ return $x -> _pow($y, $a, $p, $r) if !$y -> is_int();
+
+ my $y1 = $y -> as_int()->{value}; # make MBI part
+
my $new_sign = '+';
- $new_sign = $LIB->_is_odd($y1) ? '-' : '+' if $x->{sign} ne '+';
+ $new_sign = $LIB -> _is_odd($y1) ? '-' : '+' if $x->{sign} ne '+';
# calculate $x->{_m} ** $y and $x->{_e} * $y separately (faster)
- $x->{_m} = $LIB->_pow($x->{_m}, $y1);
- $x->{_e} = $LIB->_mul ($x->{_e}, $y1);
+ $x->{_m} = $LIB -> _pow($x->{_m}, $y1);
+ $x->{_e} = $LIB -> _mul($x->{_e}, $y1);
$x->{sign} = $new_sign;
- $x->bnorm();
+ $x = $x -> bnorm();
+
+ # x ** (-y) = 1 / (x ** y)
+
if ($y->{sign} eq '-') {
# modify $x in place!
- my $z = $x->copy(); $x->bone();
- return scalar $x->bdiv($z, $a, $p, $r); # round in one go (might ignore y's A!)
+ my $z = $x -> copy();
+ $x = $x -> bone();
+ # round in one go (might ignore y's A!)
+ return scalar $x -> bdiv($z, $a, $p, $r);
}
- $x->round($a, $p, $r, $y);
+
+ $x = $x -> round($a, $p, $r, $y);
+
+ return $downgrade -> new($x)
+ if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
}
sub blog {
@@ -2404,29 +2472,32 @@ sub blog {
# value is used as the base, otherwise the base is assumed to be Euler's
# constant.
- my ($class, $x, $base, $a, $p, $r);
+ my ($class, $x, $base, @r);
- # Don't objectify the base, since an undefined base, as in $x->blog() or
- # $x->blog(undef) signals that the base is Euler's number.
+ # Only objectify the base if it is defined, since an undefined base, as in
+ # $x->blog() or $x->blog(undef) signals that the base is Euler's number.
if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
# E.g., Math::BigFloat->blog(256, 2)
- ($class, $x, $base, $a, $p, $r) =
+ ($class, $x, $base, @r) =
defined $_[2] ? objectify(2, @_) : objectify(1, @_);
} else {
# E.g., Math::BigFloat::blog(256, 2) or $x->blog(2)
- ($class, $x, $base, $a, $p, $r) =
+ ($class, $x, $base, @r) =
defined $_[1] ? objectify(2, @_) : objectify(1, @_);
}
return $x if $x->modify('blog');
- return $x -> bnan() if $x -> is_nan();
+ return $x -> bnan(@r) if $x -> is_nan();
+
+ return $upgrade -> blog($x, $base, @r)
+ if defined($upgrade) && $x -> is_neg();
# we need to limit the accuracy to protect against overflow
my $fallback = 0;
my ($scale, @params);
- ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+ ($x, @params) = $x->_find_round_parameters(@r);
# no rounding at all, so must use fallback
if (scalar @params == 0) {
@@ -2434,7 +2505,7 @@ sub blog {
$params[0] = $class->div_scale(); # and round to it as accuracy
$params[1] = undef; # P = undef
$scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
+ $params[2] = $r[2]; # round mode by caller or undef
$fallback = 1; # to clear a/p afterwards
} else {
# the 4 below is empirical, and there might be cases where it is not
@@ -2444,28 +2515,29 @@ sub blog {
my $done = 0;
if (defined $base) {
- $base = $class -> new($base) unless ref $base;
+ $base = $class -> new($base)
+ unless defined(blessed($base)) && $base -> isa($class);
if ($base -> is_nan() || $base -> is_one()) {
- $x -> bnan();
+ $x = $x -> bnan();
$done = 1;
} elsif ($base -> is_inf() || $base -> is_zero()) {
if ($x -> is_inf() || $x -> is_zero()) {
- $x -> bnan();
+ $x = $x -> bnan();
} else {
- $x -> bzero(@params);
+ $x = $x -> bzero(@params);
}
$done = 1;
} elsif ($base -> is_negative()) { # -inf < base < 0
if ($x -> is_one()) { # x = 1
- $x -> bzero(@params);
+ $x = $x -> bzero(@params);
} elsif ($x == $base) {
- $x -> bone('+', @params); # x = base
+ $x = $x -> bone('+', @params); # x = base
} else {
- $x -> bnan(); # otherwise
+ $x = $x -> bnan(); # otherwise
}
$done = 1;
} elsif ($x == $base) {
- $x -> bone('+', @params); # 0 < base && 0 < x < inf
+ $x = $x -> bone('+', @params); # 0 < base && 0 < x < inf
$done = 1;
}
}
@@ -2475,17 +2547,17 @@ sub blog {
unless ($done) {
if ($x -> is_inf()) { # x = +/-inf
my $sign = defined $base && $base < 1 ? '-' : '+';
- $x -> binf($sign);
+ $x = $x -> binf($sign);
$done = 1;
} elsif ($x -> is_neg()) { # -inf < x < 0
- $x -> bnan();
+ $x = $x -> bnan();
$done = 1;
} elsif ($x -> is_one()) { # x = 1
- $x -> bzero(@params);
+ $x = $x -> bzero(@params);
$done = 1;
} elsif ($x -> is_zero()) { # x = 0
my $sign = defined $base && $base < 1 ? '+' : '-';
- $x -> binf($sign);
+ $x = $x -> binf($sign);
$done = 1;
}
}
@@ -2496,69 +2568,61 @@ sub blog {
delete $x->{_a};
delete $x->{_p};
}
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x->is_int();
return $x;
}
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
-
- # upgrade $x if $x is not a Math::BigFloat (handle BigInt input)
- # XXX TODO: rebless!
- if (!$x->isa('Math::BigFloat')) {
- $x = Math::BigFloat->new($x);
- $class = ref($x);
- }
+ delete $x->{_a};
+ delete $x->{_p};
$done = 0;
- # If the base is defined and an integer, try to calculate integer result
- # first. This is very fast, and in case the real result was found, we can
- # stop right here.
- if (defined $base && $base->is_int() && $x->is_int()) {
- my $xint = Math::BigInt -> new($x -> bdstr());
- my $bint = Math::BigInt -> new($base -> bdstr());
- $xint->blog($bint);
-
- # if we found the exact result, we're done
- if ($bint -> bpow($xint) == $x) {
- my $xflt = Math::BigFloat -> new($xint -> bdstr());
- $x->{sign} = $xflt->{sign};
- $x->{_m} = $xflt->{_m};
- $x->{_es} = $xflt->{_es};
- $x->{_e} = $xflt->{_e};
+ # If both the invocand and the base are integers, try to calculate integer
+ # result first. This is very fast, and in case the real result was found, we
+ # can stop right here.
+
+ if (defined($base) && $base -> is_int() && $x -> is_int()) {
+ my $x_lib = $LIB -> _new($x -> bdstr());
+ my $b_lib = $LIB -> _new($base -> bdstr());
+ ($x_lib, my $exact) = $LIB -> _log_int($x_lib, $b_lib);
+ if ($exact) {
+ $x->{_m} = $x_lib;
+ $x->{_e} = $LIB -> _zero();
+ $x = $x -> bnorm();
$done = 1;
}
}
- if ($done == 0) {
+ unless ($done) {
+
# First calculate the log to base e (using reduction by 10 and possibly
- # also by 2):
- $x->_log_10($scale);
+ # also by 2), and if a different base was requested, convert the result.
- # and if a different base was requested, convert it
+ $x = $x->_log_10($scale);
if (defined $base) {
- $base = Math::BigFloat->new($base)
- unless $base->isa('Math::BigFloat');
# log_b(x) = ln(x) / ln(b), so compute ln(b)
my $base_log_e = $base->copy()->_log_10($scale);
- $x->bdiv($base_log_e, $scale);
+ $x = $x->bdiv($base_log_e, $scale);
}
}
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -2569,25 +2633,28 @@ sub blog {
$$abr = $ab;
$$pbr = $pb;
- $x;
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x->is_int();
+ return $x;
}
sub bexp {
# Calculate e ** X (Euler's number to the power of X)
- my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bexp');
- return $x->binf() if $x->{sign} eq '+inf';
- return $x->bzero() if $x->{sign} eq '-inf';
+ return $x->bnan(@r) if $x -> is_nan();
+ return $x->binf(@r) if $x->{sign} eq '+inf';
+ return $x->bzero(@r) if $x->{sign} eq '-inf';
# we need to limit the accuracy to protect against overflow
my $fallback = 0;
my ($scale, @params);
- ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+ ($x, @params) = $x->_find_round_parameters(@r);
- # also takes care of the "error in _find_round_parameters?" case
- return $x if $x->{sign} eq 'NaN';
+ # error in _find_round_parameters?
+ return $x->bnan(@r) if $x->{sign} eq 'NaN';
# no rounding at all, so must use fallback
if (scalar @params == 0) {
@@ -2595,7 +2662,7 @@ sub bexp {
$params[0] = $class->div_scale(); # and round to it as accuracy
$params[1] = undef; # P = undef
$scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
+ $params[2] = $r[2]; # round mode by caller or undef
$fallback = 1; # to clear a/p afterwards
} else {
# the 4 below is empirical, and there might be cases where it's not
@@ -2613,13 +2680,21 @@ sub bexp {
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
delete $x->{_a};
delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
+
+ # Disabling upgrading and downgrading is no longer necessary to avoid an
+ # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+ # the intermediate computations.
+
local $Math::BigInt::upgrade = undef;
local $Math::BigFloat::downgrade = undef;
@@ -2682,13 +2757,15 @@ sub bexp {
} else {
# compute A and B so that e = A / B.
- # After some terms we end up with this, so we use it as a starting point:
+ # After some terms we end up with this, so we use it as a starting
+ # point:
my $A = $LIB->_new("9093339520860578540197197" .
"0164779391644753259799242");
my $F = $LIB->_new(42);
my $step = 42;
- # Compute how many steps we need to take to get $A and $B sufficiently big
+ # Compute how many steps we need to take to get $A and $B sufficiently
+ # big
my $steps = _len_to_steps($scale - 4);
# print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
while ($step++ <= $steps) {
@@ -2698,7 +2775,9 @@ sub bexp {
# increment f
$F = $LIB->_inc($F);
}
- # compute $B as factorial of $steps (this is faster than doing it manually)
+
+ # Compute $B as factorial of $steps (this is faster than doing it
+ # manually)
my $B = $LIB->_fac($LIB->_new($steps));
# print "A ", $LIB->_str($A), "\nB ", $LIB->_str($B), "\n";
@@ -2713,7 +2792,8 @@ sub bexp {
$x->{_e} = $LIB->_new($scale);
}
- # $x contains now an estimate of e, with some surplus digits, so we can round
+ # $x contains now an estimate of e, with some surplus digits, so we can
+ # round
if (!$x_org->is_one()) {
# Reduce size of fractional part, followup with integer power of two.
my $lshift = 0;
@@ -2722,10 +2802,11 @@ sub bexp {
}
# Raise $x to the wanted power and round it.
if ($lshift == 0) {
- $x->bpow($x_org, @params);
+ $x = $x->bpow($x_org, @params);
} else {
my($mul, $rescale) = (1 << $lshift, $scale+1+$lshift);
- $x->bpow(scalar $x_org->bdiv($mul, $rescale), $rescale)->bpow($mul, @params);
+ $x = $x -> bpow(scalar $x_org->bdiv($mul, $rescale), $rescale)
+ -> bpow($mul, @params);
}
} else {
# else just round the already computed result
@@ -2733,9 +2814,9 @@ sub bexp {
delete $x->{_p};
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
}
if ($fallback) {
@@ -2747,18 +2828,19 @@ sub bexp {
$$abr = $ab;
$$pbr = $pb;
- $x; # return modified $x
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ $x;
}
sub bnok {
# Calculate n over k (binomial coefficient or "choose" function) as integer.
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x if $x->modify('bnok');
@@ -2768,7 +2850,10 @@ sub bnok {
my $xint = Math::BigInt -> new($x -> bsstr());
my $yint = Math::BigInt -> new($y -> bsstr());
- $xint -> bnok($yint);
+ $xint = $xint -> bnok($yint);
+
+ return $xint if defined $downgrade;
+
my $xflt = Math::BigFloat -> new($xint);
$x->{_m} = $xflt->{_m};
@@ -2787,15 +2872,18 @@ sub bsin {
# sin = x - --- + --- - --- + --- ...
# 3! 5! 7! 9!
+ return $x if $x->modify('bsin');
+
+ return $x -> bzero(@r) if $x->is_zero();
+ return $x -> bnan(@r) if $x->is_nan() || $x->is_inf();
+
# we need to limit the accuracy to protect against overflow
my $fallback = 0;
my ($scale, @params);
($x, @params) = $x->_find_round_parameters(@r);
- # constant object or error in _find_round_parameters?
- return $x if $x->modify('bsin') || $x->is_nan();
-
- return $x->bzero(@r) if $x->is_zero();
+ # error in _find_round_parameters?
+ return $x->bnan(@r) if $x->is_nan();
# no rounding at all, so must use fallback
if (scalar @params == 0) {
@@ -2814,26 +2902,35 @@ sub bsin {
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
delete $x->{_a};
delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
+
+ # Disabling upgrading and downgrading is no longer necessary to avoid an
+ # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+ # the intermediate computations.
+
local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
my $over = $x * $x; # X ^ 2
my $x2 = $over->copy(); # X ^ 2; difference between terms
- $over->bmul($x); # X ^ 3 as starting value
+ $over = $over->bmul($x); # X ^ 3 as starting value
my $sign = 1; # start with -=
- my $below = $class->new(6); my $factorial = $class->new(4);
+ my $below = $class->new(6);
+ my $factorial = $class->new(4);
delete $x->{_a};
delete $x->{_p};
my $limit = $class->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5) {
+ while (1) {
# we calculate the next term, and add it to the last
# when the next term is below our limit, it won't affect the outcome
# anymore, so we stop:
@@ -2841,22 +2938,24 @@ sub bsin {
last if $next->bacmp($limit) <= 0;
if ($sign == 0) {
- $x->badd($next);
+ $x = $x->badd($next);
} else {
- $x->bsub($next);
+ $x = $x->bsub($next);
}
$sign = 1-$sign; # alternate
# calculate things for the next term
- $over->bmul($x2); # $x*$x
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+ $over = $over->bmul($x2); # $x*$x
+ $below = $below->bmul($factorial); # n*(n+1)
+ $factorial = $factorial->binc();
+ $below = $below -> bmul($factorial); # n*(n+1)
+ $factorial = $factorial->binc();
}
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -2866,6 +2965,9 @@ sub bsin {
# restore globals
$$abr = $ab;
$$pbr = $pb;
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
$x;
}
@@ -2884,7 +2986,7 @@ sub bcos {
# constant object or error in _find_round_parameters?
return $x if $x->modify('bcos') || $x->is_nan();
-
+ return $x->bnan() if $x->is_inf();
return $x->bone(@r) if $x->is_zero();
# no rounding at all, so must use fallback
@@ -2904,20 +3006,23 @@ sub bcos {
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
+ delete $x->{_a};
+ delete $x->{_p};
my $over = $x * $x; # X ^ 2
my $x2 = $over->copy(); # X ^ 2; difference between terms
my $sign = 1; # start with -=
my $below = $class->new(2);
my $factorial = $class->new(3);
- $x->bone();
+ $x = $x->bone();
delete $x->{_a};
delete $x->{_p};
@@ -2931,22 +3036,24 @@ sub bcos {
last if $next->bacmp($limit) <= 0;
if ($sign == 0) {
- $x->badd($next);
+ $x = $x->badd($next);
} else {
- $x->bsub($next);
+ $x = $x->bsub($next);
}
$sign = 1-$sign; # alternate
# calculate things for the next term
- $over->bmul($x2); # $x*$x
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+ $over = $over->bmul($x2); # $x*$x
+ $below = $below->bmul($factorial); # n*(n+1)
+ $factorial = $factorial -> binc();
+ $below = $below->bmul($factorial); # n*(n+1)
+ $factorial = $factorial -> binc();
}
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -2956,48 +3063,50 @@ sub bcos {
# restore globals
$$abr = $ab;
$$pbr = $pb;
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
$x;
}
sub batan {
# Calculate a arcus tangens of x.
-
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my (@r) = @_;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
# taylor: x^3 x^5 x^7 x^9
# atan = x - --- + --- - --- + --- ...
# 3 5 7 9
+ return $x if $x->modify('batan');
+
+ return $x -> bnan(@r) if $x->is_nan();
+
# We need to limit the accuracy to protect against overflow.
my $fallback = 0;
my ($scale, @params);
- ($self, @params) = $self->_find_round_parameters(@r);
+ ($x, @params) = $x->_find_round_parameters(@r);
- # Constant object or error in _find_round_parameters?
+ # Error in _find_round_parameters?
- return $self if $self->modify('batan') || $self->is_nan();
+ return $x -> bnan(@r) if $x->is_nan();
- if ($self->{sign} =~ /^[+-]inf\z/) {
+ if ($x->{sign} =~ /^[+-]inf\z/) {
# +inf result is PI/2
# -inf result is -PI/2
# calculate PI/2
my $pi = $class->bpi(@r);
- # modify $self in place
- $self->{_m} = $pi->{_m};
- $self->{_e} = $pi->{_e};
- $self->{_es} = $pi->{_es};
+ # modify $x in place
+ $x->{_m} = $pi->{_m};
+ $x->{_e} = $pi->{_e};
+ $x->{_es} = $pi->{_es};
# -y => -PI/2, +y => PI/2
- $self->{sign} = substr($self->{sign}, 0, 1); # "+inf" => "+"
- $self -> {_m} = $LIB->_div($self->{_m}, $LIB->_new(2));
- return $self;
+ $x->{sign} = substr($x->{sign}, 0, 1); # "+inf" => "+"
+ $x -> {_m} = $LIB->_div($x->{_m}, $LIB->_new(2));
+ return $x;
}
- return $self->bzero(@r) if $self->is_zero();
+ return $x->bzero(@r) if $x->is_zero();
# no rounding at all, so must use fallback
if (scalar @params == 0) {
@@ -3015,57 +3124,67 @@ sub batan {
# 1 or -1 => PI/4
# inlined is_one() && is_one('-')
- if ($LIB->_is_one($self->{_m}) && $LIB->_is_zero($self->{_e})) {
+ if ($LIB->_is_one($x->{_m}) && $LIB->_is_zero($x->{_e})) {
my $pi = $class->bpi($scale - 3);
- # modify $self in place
- $self->{_m} = $pi->{_m};
- $self->{_e} = $pi->{_e};
- $self->{_es} = $pi->{_es};
- # leave the sign of $self alone (+1 => +PI/4, -1 => -PI/4)
- $self->{_m} = $LIB->_div($self->{_m}, $LIB->_new(4));
- return $self;
+ # modify $x in place
+ $x->{_m} = $pi->{_m};
+ $x->{_e} = $pi->{_e};
+ $x->{_es} = $pi->{_es};
+ # leave the sign of $x alone (+1 => +PI/4, -1 => -PI/4)
+ $x->{_m} = $LIB->_div($x->{_m}, $LIB->_new(4));
+ return $x;
}
# This series is only valid if -1 < x < 1, so for other x we need to
# calculate PI/2 - atan(1/x):
my $pi = undef;
- if ($self->bacmp($self->copy()->bone) >= 0) {
+ if ($x->bacmp($x->copy()->bone) >= 0) {
# calculate PI/2
$pi = $class->bpi($scale - 3);
$pi->{_m} = $LIB->_div($pi->{_m}, $LIB->_new(2));
- # calculate 1/$self:
- my $self_copy = $self->copy();
- # modify $self in place
- $self->bone();
- $self->bdiv($self_copy, $scale);
+ # calculate 1/$x:
+ my $x_copy = $x->copy();
+ # modify $x in place
+ $x = $x->bone();
+ $x = $x->bdiv($x_copy, $scale);
}
my $fmul = 1;
foreach (0 .. int($scale / 20)) {
$fmul *= 2;
- $self->bdiv($self->copy()->bmul($self)->binc->bsqrt($scale + 4)->binc, $scale + 4);
+ $x = $x->bdiv($x->copy()->bmul($x)->binc()->bsqrt($scale + 4)->binc(),
+ $scale + 4);
}
# When user set globals, they would interfere with our calculation, so
# disable them and later re-enable them.
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
- # We also need to disable any set A or P on $self (_find_round_parameters
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
+ # We also need to disable any set A or P on $x (_find_round_parameters
# took them already into account), since these would interfere, too
- delete $self->{_a};
- delete $self->{_p};
- # Need to disable $upgrade in BigInt, to avoid deep recursion.
+ delete $x->{_a};
+ delete $x->{_p};
+
+ # Disabling upgrading and downgrading is no longer necessary to avoid an
+ # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+ # the intermediate computations.
+
local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
- my $over = $self * $self; # X ^ 2
- my $self2 = $over->copy(); # X ^ 2; difference between terms
- $over->bmul($self); # X ^ 3 as starting value
+ my $over = $x * $x; # X ^ 2
+ my $x2 = $over->copy(); # X ^ 2; difference between terms
+ $over = $over->bmul($x); # X ^ 3 as starting value
my $sign = 1; # start with -=
my $below = $class->new(3);
my $two = $class->new(2);
- delete $self->{_a};
- delete $self->{_p};
+ delete $x->{_a};
+ delete $x->{_p};
my $limit = $class->new("1E-". ($scale-1));
#my $steps = 0;
@@ -3077,55 +3196,55 @@ sub batan {
last if $next->bacmp($limit) <= 0;
if ($sign == 0) {
- $self->badd($next);
+ $x = $x->badd($next);
} else {
- $self->bsub($next);
+ $x = $x->bsub($next);
}
$sign = 1-$sign; # alternatex
# calculate things for the next term
- $over->bmul($self2); # $self*$self
- $below->badd($two); # n += 2
+ $over = $over->bmul($x2); # $x*$x
+ $below = $below->badd($two); # n += 2
}
- $self->bmul($fmul);
+ $x = $x->bmul($fmul);
if (defined $pi) {
- my $self_copy = $self->copy();
- # modify $self in place
- $self->{_m} = $pi->{_m};
- $self->{_e} = $pi->{_e};
- $self->{_es} = $pi->{_es};
- # PI/2 - $self
- $self->bsub($self_copy);
+ my $x_copy = $x->copy();
+ # modify $x in place
+ $x->{_m} = $pi->{_m};
+ $x->{_e} = $pi->{_e};
+ $x->{_es} = $pi->{_es};
+ # PI/2 - $x
+ $x = $x->bsub($x_copy);
}
# Shortcut to not run through _find_round_parameters again.
if (defined $params[0]) {
- $self->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $self->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# Clear a/p after round, since user did not request it.
- delete $self->{_a};
- delete $self->{_p};
+ delete $x->{_a};
+ delete $x->{_p};
}
# restore globals
$$abr = $ab;
$$pbr = $pb;
- $self;
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x -> is_int() || $x -> is_inf());
+ $x;
}
sub batan2 {
# $y -> batan2($x) returns the arcus tangens of $y / $x.
# Set up parameters.
- my ($class, $y, $x, @r) = (ref($_[0]), @_);
-
- # Objectify is costly, so avoid it if we can.
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $y, $x, @r) = objectify(2, @_);
- }
+ my ($class, $y, $x, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
# Quick exit if $y is read-only.
return $y if $y -> modify('batan2');
@@ -3155,52 +3274,52 @@ sub batan2 {
$scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- if ($x -> is_inf("+")) { # x = inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.25"); # pi/4
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.25"); # -pi/4
- } else { # -inf < y < inf
- return $y -> bzero(@r); # 0
+ if ($x -> is_inf("+")) { # x = inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y = $y -> bpi($scale) -> bmul("0.25"); # pi/4
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y = $y -> bpi($scale) -> bmul("-0.25"); # -pi/4
+ } else { # -inf < y < inf
+ return $y -> bzero(@r); # 0
}
- } elsif ($x -> is_inf("-")) { # x = -inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi
- } elsif ($y >= 0) { # y >= 0
- $y -> bpi($scale); # pi
- } else { # y < 0
- $y -> bpi($scale) -> bneg(); # -pi
+ } elsif ($x -> is_inf("-")) { # x = -inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y = $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y = $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi
+ } elsif ($y >= 0) { # y >= 0
+ $y = $y -> bpi($scale); # pi
+ } else { # y < 0
+ $y = $y -> bpi($scale) -> bneg(); # -pi
}
- } elsif ($x > 0) { # 0 < x < inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.5"); # pi/2
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
- } else { # -inf < y < inf
- $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x)
+ } elsif ($x > 0) { # 0 < x < inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y = $y -> bpi($scale) -> bmul("0.5"); # pi/2
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y = $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
+ } else { # -inf < y < inf
+ $y = $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x)
}
- } elsif ($x < 0) { # -inf < x < 0
+ } elsif ($x < 0) { # -inf < x < 0
my $pi = $class -> bpi($scale);
- if ($y >= 0) { # y >= 0
- $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi
+ if ($y >= 0) { # y >= 0
+ $y = $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi
-> badd($pi);
- } else { # y < 0
- $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi
+ } else { # y < 0
+ $y = $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi
-> bsub($pi);
}
- } else { # x = 0
- if ($y > 0) { # y > 0
- $y -> bpi($scale) -> bmul("0.5"); # pi/2
- } elsif ($y < 0) { # y < 0
- $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
- } else { # y = 0
- return $y -> bzero(@r); # 0
+ } else { # x = 0
+ if ($y > 0) { # y > 0
+ $y = $y -> bpi($scale) -> bmul("0.5"); # pi/2
+ } elsif ($y < 0) { # y < 0
+ $y = $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
+ } else { # y = 0
+ return $y -> bzero(@r); # 0
}
}
- $y -> round(@r);
+ $y = $y -> round(@r);
if ($fallback) {
delete $y->{_a};
@@ -3209,31 +3328,40 @@ sub batan2 {
return $y;
}
-##############################################################################
sub bsqrt {
# calculate square root
- my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bsqrt');
- return $x->bnan() if $x->{sign} !~ /^\+/; # NaN, -inf or < 0
- return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
- return $x->round($a, $p, $r) if $x->is_zero() || $x->is_one();
+ # Handle trivial cases.
+
+ return $x -> bnan(@r) if $x->is_nan();
+ return $x -> binf("+", @r) if $x->{sign} eq '+inf';
+ return $x -> round(@r) if $x->is_zero() || $x->is_one();
+
+ # We don't support complex numbers.
+
+ if ($x -> is_neg()) {
+ return $upgrade -> bsqrt($x, @r) if defined($upgrade);
+ return $x -> bnan(@r);
+ }
# we need to limit the accuracy to protect against overflow
my $fallback = 0;
my (@params, $scale);
- ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+ ($x, @params) = $x->_find_round_parameters(@r);
- return $x if $x->is_nan(); # error in _find_round_parameters?
+ # error in _find_round_parameters?
+ return $x -> bnan(@r) if $x->is_nan();
# no rounding at all, so must use fallback
if (scalar @params == 0) {
# simulate old behaviour
$params[0] = $class->div_scale(); # and round to it as accuracy
$scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
+ $params[2] = $r[2]; # round mode by caller or undef
$fallback = 1; # to clear a/p afterwards
} else {
# the 4 below is empirical, and there might be cases where it is not
@@ -3244,14 +3372,23 @@ sub bsqrt {
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
delete $x->{_a};
delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+ # Disabling upgrading and downgrading is no longer necessary to avoid an
+ # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+ # the intermediate computations.
+
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
my $i = $LIB->_copy($x->{_m});
$i = $LIB->_lsft($i, $x->{_e}, 10) unless $LIB->_is_zero($x->{_e});
@@ -3268,12 +3405,12 @@ sub bsqrt {
$x->{_m} = $gs->{value};
$x->{_e} = $LIB->_zero();
$x->{_es} = '+';
- $x->bnorm();
+ $x = $x->bnorm();
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -3286,9 +3423,10 @@ sub bsqrt {
return $x;
}
- # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the accuracy
- # of the result by multiplying the input by 100 and then divide the integer
- # result of sqrt(input) by 10. Rounding afterwards returns the real result.
+ # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the
+ # accuracy of the result by multiplying the input by 100 and then divide the
+ # integer result of sqrt(input) by 10. Rounding afterwards returns the real
+ # result.
# The following steps will transform 123.456 (in $x) into 123456 (in $y1)
my $y1 = $LIB->_copy($x->{_m});
@@ -3348,13 +3486,13 @@ sub bsqrt {
$x->{_es} = '+';
}
$x->{_m} = $y1;
- $x->bnorm();
+ $x = $x->bnorm();
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -3364,6 +3502,9 @@ sub bsqrt {
# restore globals
$$abr = $ab;
$$pbr = $pb;
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x -> is_int() || $x -> is_inf());
$x;
}
@@ -3371,14 +3512,24 @@ sub broot {
# calculate $y'th root of $x
# set up parameters
- my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('broot');
+ # Handle trivial cases.
+
+ return $x -> bnan(@r) if $x->is_nan() || $y->is_nan();
+
+ if ($x -> is_neg()) {
+ # -27 ** (1/3) = -3
+ return $x -> broot($y -> copy() -> bneg(), @r) -> bneg()
+ if $x -> is_int() && $y -> is_int() && $y -> is_neg();
+ return $upgrade -> broot($x, $y, @r) if defined $upgrade;
+ return $x -> bnan(@r);
+ }
+
# NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
$y->{sign} !~ /^\+$/;
@@ -3388,7 +3539,7 @@ sub broot {
# we need to limit the accuracy to protect against overflow
my $fallback = 0;
my (@params, $scale);
- ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+ ($x, @params) = $x->_find_round_parameters(@r);
return $x if $x->is_nan(); # error in _find_round_parameters?
@@ -3397,7 +3548,7 @@ sub broot {
# simulate old behaviour
$params[0] = $class->div_scale(); # and round to it as accuracy
$scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
+ $params[2] = $r[2]; # round mode by caller or undef
$fallback = 1; # to clear a/p afterwards
} else {
# the 4 below is empirical, and there might be cases where it is not
@@ -3408,14 +3559,23 @@ sub broot {
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
delete $x->{_a};
delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+ # Disabling upgrading and downgrading is no longer necessary to avoid an
+ # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+ # the intermediate computations.
+
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
# remember sign and make $x positive, since -4 ** (1/2) => -2
my $sign = 0;
@@ -3424,14 +3584,15 @@ sub broot {
my $is_two = 0;
if ($y->isa('Math::BigFloat')) {
- $is_two = ($y->{sign} eq '+' && $LIB->_is_two($y->{_m}) && $LIB->_is_zero($y->{_e}));
+ $is_two = $y->{sign} eq '+' && $LIB->_is_two($y->{_m})
+ && $LIB->_is_zero($y->{_e});
} else {
- $is_two = ($y == 2);
+ $is_two = $y == 2;
}
# normal square root if $y == 2:
if ($is_two) {
- $x->bsqrt($scale+4);
+ $x = $x->bsqrt($scale+4);
} elsif ($y->is_one('-')) {
# $x ** -1 => 1/$x
my $u = $class->bone()->bdiv($x, $scale);
@@ -3449,30 +3610,31 @@ sub broot {
$i = $LIB->_lsft($i, $x->{_e}, 10) unless $LIB->_is_zero($x->{_e});
my $int = Math::BigInt->bzero();
$int->{value} = $i;
- $int->broot($y->as_number());
+ $int = $int->broot($y->as_number());
# if ($exact)
if ($int->copy()->bpow($y) == $x) {
# found result, return it
$x->{_m} = $int->{value};
$x->{_e} = $LIB->_zero();
$x->{_es} = '+';
- $x->bnorm();
+ $x = $x->bnorm();
$done = 1;
}
}
if ($done == 0) {
my $u = $class->bone()->bdiv($y, $scale+4);
- delete $u->{_a}; delete $u->{_p}; # otherwise it conflicts
- $x->bpow($u, $scale+4); # el cheapo
+ delete $u->{_a};
+ delete $u->{_p};
+ $x = $x->bpow($u, $scale+4); # el cheapo
}
}
- $x->bneg() if $sign == 1;
+ $x = $x->bneg() if $sign == 1;
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -3482,6 +3644,9 @@ sub broot {
# restore globals
$$abr = $ab;
$$pbr = $pb;
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && ($x -> is_int() || $x -> is_inf());
$x;
}
@@ -3490,16 +3655,19 @@ sub bfac {
# compute factorial number, modifies first argument
# set up parameters
- my ($class, $x, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- ($class, $x, @r) = objectify(1, @_) if !ref($x);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
# inf => inf
- return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+ return $x if $x->modify('bfac');
+
+ return $x -> bnan(@r) if $x->is_nan() || $x->is_inf("-");
+ return $x -> binf("+", @r) if $x->is_inf("+");
+ return $x -> bone(@r) if $x->is_zero() || $x->is_one();
- return $x->bnan()
- if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
- ($x->{_es} ne '+')); # digits after dot?
+ if ($x -> is_neg() || !$x -> is_int()) {
+ return $upgrade -> bfac($x, @r) if defined($upgrade);
+ return $x -> bnan(@r);
+ }
if (! $LIB->_is_zero($x->{_e})) {
$x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0
@@ -3507,23 +3675,31 @@ sub bfac {
$x->{_es} = '+';
}
$x->{_m} = $LIB->_fac($x->{_m}); # calculate factorial
- $x->bnorm()->round(@r); # norm again and round result
+
+ $x = $x->bnorm()->round(@r); # norm again and round result
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+ && ($x -> is_int() || $x -> is_inf());
+ $x;
}
sub bdfac {
# compute double factorial
# set up parameters
- my ($class, $x, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- ($class, $x, @r) = objectify(1, @_) if !ref($x);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # inf => inf
- return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+ return $x if $x->modify('bdfac');
+
+ return $x -> bnan(@r) if $x->is_nan() || $x->is_inf("-");
+ return $x -> binf("+", @r) if $x->is_inf("+");
+
+ if ($x <= -2 || !$x -> is_int()) {
+ return $upgrade -> bdfac($x, @r) if defined($upgrade);
+ return $x -> bnan(@r);
+ }
- return $x->bnan()
- if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
- ($x->{_es} ne '+')); # digits after dot?
+ return $x->bone() if $x <= 1;
croak("bdfac() requires a newer version of the $LIB library.")
unless $LIB->can('_dfac');
@@ -3534,59 +3710,137 @@ sub bdfac {
$x->{_es} = '+';
}
$x->{_m} = $LIB->_dfac($x->{_m}); # calculate factorial
- $x->bnorm()->round(@r); # norm again and round result
+
+ $x = $x->bnorm()->round(@r); # norm again and round result
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ return $x;
}
-sub blsft {
- # shift left by $y (multiply by $b ** $y)
+sub btfac {
+ # compute triple factorial
# set up parameters
- my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
+ return $x if $x->modify('btfac');
+
+ return $x -> bnan(@r) if $x->is_nan() || $x->is_inf("-");
+ return $x -> binf("+", @r) if $x->is_inf("+");
+
+ if ($x <= -3 || !$x -> is_int()) {
+ return $upgrade -> btfac($x, @r) if defined($upgrade);
+ return $x -> bnan(@r);
+ }
+
+ my $k = $class -> new("3");
+ return $x->bnan(@r) if $x <= -$k;
+
+ my $one = $class -> bone();
+ return $x->bone(@r) if $x <= $one;
+
+ my $f = $x -> copy();
+ while ($f -> bsub($k) > $one) {
+ $x = $x -> bmul($f);
}
+ $x = $x->round(@r);
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ return $x;
+}
+
+sub bmfac {
+ my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
+
+ return $x if $x->modify('bmfac');
+
+ return $x -> bnan(@r) if $x->is_nan() || $x->is_inf("-") || !$k->is_pos();
+ return $x -> binf("+", @r) if $x->is_inf("+");
+
+ if ($x <= -$k || !$x -> is_int() ||
+ ($k -> is_finite() && !$k -> is_int()))
+ {
+ return $upgrade -> bmfac($x, $k, @r) if defined($upgrade);
+ return $x -> bnan(@r);
+ }
+
+ my $one = $class -> bone();
+ return $x->bone(@r) if $x <= $one;
+
+ my $f = $x -> copy();
+ while ($f -> bsub($k) > $one) {
+ $x = $x -> bmul($f);
+ }
+
+ $x = $x->round(@r);
+
+ return $downgrade -> new($x -> bdstr(), @r)
+ if defined($downgrade) && $x -> is_int();
+ return $x;
+}
+
+sub blsft {
+ # shift left by $y (multiply by $b ** $y)
+
+ # set up parameters
+ my ($class, $x, $y, $b, @r)
+ = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
+
return $x if $x -> modify('blsft');
- return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
$b = 2 if !defined $b;
$b = $class -> new($b) unless ref($b) && $b -> isa($class);
+ return $x -> bnan(@r) if $b -> is_nan();
- return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+ # There needs to be more checking for special cases here. Fixme!
# shift by a negative amount?
return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
- $x -> bmul($b -> bpow($y), $a, $p, $r, $y);
+ $x = $x -> bmul($b -> bpow($y), $r[0], $r[1], $r[2], $y);
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+ && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+ return $x;
}
sub brsft {
# shift right by $y (divide $b ** $y)
# set up parameters
- my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
- }
+ my ($class, $x, $y, $b, @r)
+ = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('brsft');
- return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
+
+ # There needs to be more checking for special cases here. Fixme!
$b = 2 if !defined $b;
$b = $class -> new($b) unless ref($b) && $b -> isa($class);
-
- return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+ return $x -> bnan(@r) if $b -> is_nan();
# shift by a negative amount?
return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
- # the following call to bdiv() will return either quotient (scalar context)
- # or quotient and remainder (list context).
- $x -> bdiv($b -> bpow($y), $a, $p, $r, $y);
+ # call bdiv()
+ $x = $x -> bdiv($b -> bpow($y), $r[0], $r[1], $r[2], $y);
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+ && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+ return $x;
}
###############################################################################
@@ -3594,24 +3848,20 @@ sub brsft {
###############################################################################
sub band {
- my $x = shift;
- my $xref = ref($x);
- my $class = $xref || $x;
-
- croak 'band() is an instance method, not a class method' unless $xref;
- croak 'Not enough arguments for band()' if @_ < 1;
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return if $x -> modify('band');
- my $y = shift;
- $y = $class -> new($y) unless ref($y);
-
- my @r = @_;
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
- $xtmp -> band($y);
- $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+ $xtmp = $xtmp -> band($y);
+
+ return $xtmp -> round(@r) if defined $downgrade;
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
$x -> {sign} = $xtmp -> {sign};
$x -> {_m} = $xtmp -> {_m};
$x -> {_es} = $xtmp -> {_es};
@@ -3621,24 +3871,20 @@ sub band {
}
sub bior {
- my $x = shift;
- my $xref = ref($x);
- my $class = $xref || $x;
-
- croak 'bior() is an instance method, not a class method' unless $xref;
- croak 'Not enough arguments for bior()' if @_ < 1;
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return if $x -> modify('bior');
- my $y = shift;
- $y = $class -> new($y) unless ref($y);
-
- my @r = @_;
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
- $xtmp -> bior($y);
- $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+ $xtmp = $xtmp -> bior($y);
+
+ return $xtmp -> round(@r) if defined $downgrade;
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
$x -> {sign} = $xtmp -> {sign};
$x -> {_m} = $xtmp -> {_m};
$x -> {_es} = $xtmp -> {_es};
@@ -3648,24 +3894,20 @@ sub bior {
}
sub bxor {
- my $x = shift;
- my $xref = ref($x);
- my $class = $xref || $x;
-
- croak 'bxor() is an instance method, not a class method' unless $xref;
- croak 'Not enough arguments for bxor()' if @_ < 1;
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return if $x -> modify('bxor');
- my $y = shift;
- $y = $class -> new($y) unless ref($y);
-
- my @r = @_;
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
- $xtmp -> bxor($y);
- $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+ $xtmp = $xtmp -> bxor($y);
+ return $xtmp -> round(@r) if defined $downgrade;
+
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
$x -> {sign} = $xtmp -> {sign};
$x -> {_m} = $xtmp -> {_m};
$x -> {_es} = $xtmp -> {_es};
@@ -3675,20 +3917,18 @@ sub bxor {
}
sub bnot {
- my $x = shift;
- my $xref = ref($x);
- my $class = $xref || $x;
-
- croak 'bnot() is an instance method, not a class method' unless $xref;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return if $x -> modify('bnot');
- my @r = @_;
+ return $x -> bnan(@r) if $x -> is_nan();
my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
- $xtmp -> bnot();
- $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+ $xtmp = $xtmp -> bnot();
+ return $xtmp -> round(@r) if defined $downgrade;
+
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
$x -> {sign} = $xtmp -> {sign};
$x -> {_m} = $xtmp -> {_m};
$x -> {_es} = $xtmp -> {_es};
@@ -3703,42 +3943,61 @@ sub bnot {
sub bround {
# accuracy: preserve $N digits, and overwrite the rest with 0's
- my $x = shift;
- my $class = ref($x) || $x;
- $x = $class->new(shift) if !ref($x);
- if (($_[0] || 0) < 0) {
+ my ($class, $x, @a) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ if (($a[0] || 0) < 0) {
croak('bround() needs positive accuracy');
}
- my ($scale, $mode) = $x->_scale_a(@_);
- return $x if !defined $scale || $x->modify('bround'); # no-op
+ return $x if $x->modify('bround');
+
+ my ($scale, $mode) = $x->_scale_a(@a);
+ if (!defined $scale) { # no-op
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
- # scale is now either $x->{_a}, $accuracy, or the user parameter
- # test whether $x already has lower accuracy, do nothing in this case
- # but do round if the accuracy is the same, since a math operation might
- # want to round a number with A=5 to 5 digits afterwards again
- return $x if defined $x->{_a} && $x->{_a} < $scale;
+ # Scale is now either $x->{_a}, $accuracy, or the input argument. Test
+ # whether $x already has lower accuracy, do nothing in this case but do
+ # round if the accuracy is the same, since a math operation might want to
+ # round a number with A=5 to 5 digits afterwards again
+
+ if (defined $x->{_a} && $x->{_a} < $scale) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
# scale < 0 makes no sense
# scale == 0 => keep all digits
# never round a +-inf, NaN
- return $x if ($scale <= 0) || $x->{sign} !~ /^[+-]$/;
+
+ if ($scale <= 0 || $x->{sign} !~ /^[+-]$/) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
# 1: never round a 0
# 2: if we should keep more digits than the mantissa has, do nothing
if ($x->is_zero() || $LIB->_len($x->{_m}) <= $scale) {
$x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale;
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
return $x;
}
# pass sign to bround for '+inf' and '-inf' rounding modes
my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
- $m->bround($scale, $mode); # round mantissa
- $x->{_m} = $m->{value}; # get our mantissa back
- $x->{_a} = $scale; # remember rounding
- delete $x->{_p}; # and clear P
+ $m = $m->bround($scale, $mode); # round mantissa
+ $x->{_m} = $m->{value}; # get our mantissa back
+ $x->{_a} = $scale; # remember rounding
+ delete $x->{_p}; # and clear P
+
+ # bnorm() downgrades if necessary, so no need to check whether to downgrade.
$x->bnorm(); # del trailing zeros gen. by bround()
}
@@ -3746,29 +4005,50 @@ sub bfround {
# precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
# $n == 0 means round to integer
# expects and returns normalized numbers!
- my $x = shift;
- my $class = ref($x) || $x;
- $x = $class->new(shift) if !ref($x);
- my ($scale, $mode) = $x->_scale_p(@_);
- return $x if !defined $scale || $x->modify('bfround'); # no-op
+ my ($class, $x, @p) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('bfround'); # no-op
+
+ my ($scale, $mode) = $x->_scale_p(@p);
+ if (!defined $scale) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
# never round a 0, +-inf, NaN
+
if ($x->is_zero()) {
$x->{_p} = $scale if !defined $x->{_p} || $x->{_p} < $scale; # -3 < -2
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
return $x;
}
- return $x if $x->{sign} !~ /^[+-]$/;
# don't round if x already has lower precision
- return $x if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p});
+ if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p}) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
$x->{_p} = $scale; # remember round in any case
delete $x->{_a}; # and clear A
if ($scale < 0) {
# round right from the '.'
- return $x if $x->{_es} eq '+'; # e >= 0 => nothing to round
+ if ($x->{_es} eq '+') { # e >= 0 => nothing to round
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
$scale = -$scale; # positive for simplicity
my $len = $LIB->_len($x->{_m}); # length of mantissa
@@ -3788,13 +4068,23 @@ sub bfround {
# 1.2345 12345e-4 5 0 4
# do not round after/right of the $dad
- return $x if $scale > $dad; # 0.123, scale >= 3 => exit
+
+ if ($scale > $dad) { # 0.123, scale >= 3 => exit
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
# round to zero if rounding inside the $zad, but not for last zero like:
- # 0.0065, scale -2, round last '0' with following '65' (scale == zad case)
- return $x->bzero() if $scale < $zad;
- if ($scale == $zad) # for 0.006, scale -3 and trunc
- {
+ # 0.0065, scale -2, round last '0' with following '65' (scale == zad
+ # case)
+ if ($scale < $zad) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x->bzero();
+ }
+
+ if ($scale == $zad) { # for 0.006, scale -3 and trunc
$scale = -$len;
} else {
# adjust round-point to be inside mantissa
@@ -3817,12 +4107,17 @@ sub bfround {
# should be the same, so treat it as this
$scale = 1 if $scale == 0;
# shortcut if already integer
- return $x if $scale == 1 && $dbt <= $dbd;
+ if ($scale == 1 && $dbt <= $dbd) {
+ return $downgrade -> new($x) if defined($downgrade)
+ && ($x->is_int() || $x->is_inf() || $x->is_nan());
+ return $x;
+ }
# maximum digits before dot
++$dbd;
if ($scale > $dbd) {
# not enough digits before dot, so round to zero
+ return $downgrade -> new($x) if defined($downgrade);
return $x->bzero;
} elsif ($scale == $dbd) {
# maximum
@@ -3831,66 +4126,87 @@ sub bfround {
$scale = $dbd - $scale;
}
}
+
# pass sign to bround for rounding modes '+inf' and '-inf'
my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
- $m->bround($scale, $mode);
+ $m = $m->bround($scale, $mode);
$x->{_m} = $m->{value}; # get our mantissa back
+
+ # bnorm() downgrades if necessary, so no need to check whether to downgrade.
$x->bnorm();
}
sub bfloor {
# round towards minus infinity
- my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bfloor');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
- # if $x has digits after dot
- if ($x->{_es} eq '-') {
- $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
- $x->{_e} = $LIB->_zero(); # trunc/norm
- $x->{_es} = '+'; # abs e
- $x->{_m} = $LIB->_inc($x->{_m}) if $x->{sign} eq '-'; # increment if negative
+ return $x -> bnan(@r) if $x -> is_nan();
+
+ if ($x->{sign} =~ /^[+-]$/) {
+ # if $x has digits after dot, remove them
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10);
+ $x->{_e} = $LIB->_zero();
+ $x->{_es} = '+';
+ # increment if negative
+ $x->{_m} = $LIB->_inc($x->{_m}) if $x->{sign} eq '-';
+ }
+ $x = $x->round(@r);
}
- $x->round($a, $p, $r);
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade);
+ return $x;
}
sub bceil {
# round towards plus infinity
- my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bceil');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
- # if $x has digits after dot
- if ($x->{_es} eq '-') {
- $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
- $x->{_e} = $LIB->_zero(); # trunc/norm
- $x->{_es} = '+'; # abs e
- if ($x->{sign} eq '+') {
- $x->{_m} = $LIB->_inc($x->{_m}); # increment if positive
- } else {
- $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # avoid -0
+ return $x -> bnan(@r) if $x -> is_nan();
+
+ # if $x has digits after dot, remove them
+ if ($x->{sign} =~ /^[+-]$/) {
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10);
+ $x->{_e} = $LIB->_zero();
+ $x->{_es} = '+';
+ if ($x->{sign} eq '+') {
+ $x->{_m} = $LIB->_inc($x->{_m}); # increment if positive
+ } else {
+ $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # avoid -0
+ }
}
+ $x = $x->round(@r);
}
- $x->round($a, $p, $r);
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade);
+ return $x;
}
sub bint {
# round towards zero
- my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bint');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
- # if $x has digits after the decimal point
- if ($x->{_es} eq '-') {
- $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
- $x->{_e} = $LIB->_zero(); # truncate/normalize
- $x->{_es} = '+'; # abs e
- $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # avoid -0
+ return $x -> bnan(@r) if $x -> is_nan();
+
+ if ($x->{sign} =~ /^[+-]$/) {
+ # if $x has digits after the decimal point
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # remove frac part
+ $x->{_e} = $LIB->_zero(); # truncate/normalize
+ $x->{_es} = '+'; # abs e
+ $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # avoid -0
+ }
+ $x = $x->round(@r);
}
- $x->round($a, $p, $r);
+
+ return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade);
+ return $x;
}
###############################################################################
@@ -3901,8 +4217,14 @@ sub bgcd {
# (BINT or num_str, BINT or num_str) return BINT
# does not modify arguments, but returns new object
- unshift @_, __PACKAGE__
- unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
+ unshift @_, __PACKAGE__;
+ }
my ($class, @args) = objectify(0, @_);
@@ -3922,7 +4244,11 @@ sub bgcd {
last if $x -> is_one();
}
- return $x -> babs();
+ $x = $x -> babs();
+
+ return $downgrade -> new($x)
+ if defined $downgrade && $x->is_int();
+ return $x;
}
sub blcm {
@@ -3930,8 +4256,14 @@ sub blcm {
# does not modify arguments, but returns new object
# Least Common Multiple
- unshift @_, __PACKAGE__
- unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
+ unshift @_, __PACKAGE__;
+ }
my ($class, @args) = objectify(0, @_);
@@ -3944,10 +4276,14 @@ sub blcm {
$y = $class -> new($y) unless ref($y) && $y -> isa($class);
return $x->bnan() unless $y -> is_int();
my $gcd = $x -> bgcd($y);
- $x -> bdiv($gcd) -> bmul($y);
+ $x = $x -> bdiv($gcd) -> bmul($y);
}
- return $x -> babs();
+ $x = $x -> babs();
+
+ return $downgrade -> new($x)
+ if defined $downgrade && $x->is_int();
+ return $x;
}
###############################################################################
@@ -3955,9 +4291,9 @@ sub blcm {
###############################################################################
sub length {
- my $x = shift;
- my $class = ref($x) || $x;
- $x = $class->new(shift) unless ref($x);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return 1 if $LIB->_is_zero($x->{_m});
@@ -3973,7 +4309,13 @@ sub length {
sub mantissa {
# return a copy of the mantissa
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ # The following line causes a lot of noise in the test suits for
+ # the Math-BigRat and bignum distributions. Fixme!
+ #carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $x -> bnan(@r) if $x -> is_nan();
if ($x->{sign} !~ /^[+-]$/) {
my $s = $x->{sign};
@@ -3981,14 +4323,19 @@ sub mantissa {
return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf
}
my $m = Math::BigInt->new($LIB->_str($x->{_m}), undef, undef);
- $m->bneg() if $x->{sign} eq '-';
-
+ $m = $m->bneg() if $x->{sign} eq '-';
$m;
}
sub exponent {
# return a copy of the exponent
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ # The following line causes a lot of noise in the test suits for
+ # the Math-BigRat and bignum distributions. Fixme!
+ #carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $x -> bnan(@r) if $x -> is_nan();
if ($x->{sign} !~ /^[+-]$/) {
my $s = $x->{sign};
@@ -4000,32 +4347,37 @@ sub exponent {
sub parts {
# return a copy of both the exponent and the mantissa
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
if ($x->{sign} !~ /^[+-]$/) {
my $s = $x->{sign};
$s =~ s/^\+//;
my $se = $s;
$se =~ s/^-//;
- return ($class->new($s), $class->new($se)); # +inf => inf and -inf, +inf => inf
+ # +inf => inf and -inf, +inf => inf
+ return ($class->new($s), $class->new($se));
}
my $m = Math::BigInt->bzero();
$m->{value} = $LIB->_copy($x->{_m});
- $m->bneg() if $x->{sign} eq '-';
+ $m = $m->bneg() if $x->{sign} eq '-';
($m, Math::BigInt->new($x->{_es} . $LIB->_num($x->{_e})));
}
+# Parts used for scientific notation with significand/mantissa and exponent as
+# integers. E.g., "12345.6789" is returned as "123456789" (mantissa) and "-4"
+# (exponent).
+
sub sparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- croak("sparts() is an instance method, not a class method")
- unless $class;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
# Not-a-number.
- if ($self -> is_nan()) {
- my $mant = $self -> copy(); # mantissa
+ if ($x -> is_nan()) {
+ my $mant = $class -> bnan(); # mantissa
return $mant unless wantarray; # scalar context
my $expo = $class -> bnan(); # exponent
return ($mant, $expo); # list context
@@ -4033,8 +4385,8 @@ sub sparts {
# Infinity.
- if ($self -> is_inf()) {
- my $mant = $self -> copy(); # mantissa
+ if ($x -> is_inf()) {
+ my $mant = $class -> binf($x->{sign}); # mantissa
return $mant unless wantarray; # scalar context
my $expo = $class -> binf('+'); # exponent
return ($mant, $expo); # list context
@@ -4042,56 +4394,46 @@ sub sparts {
# Finite number.
- my $mant = $class -> bzero();
- $mant -> {sign} = $self -> {sign};
- $mant -> {_m} = $LIB->_copy($self -> {_m});
+ my $mant = $x -> copy();
+ $mant->{_es} = '+';
+ $mant->{_e} = $LIB->_zero();
+ $mant = $downgrade -> new($mant) if defined $downgrade;
return $mant unless wantarray;
- my $expo = $class -> bzero();
- $expo -> {sign} = $self -> {_es};
- $expo -> {_m} = $LIB->_copy($self -> {_e});
-
+ my $expo = bless { sign => $x -> {_es},
+ _m => $LIB->_copy($x -> {_e}),
+ _es => '+',
+ _e => $LIB->_zero(),
+ }, $class;
+ $expo = $downgrade -> new($expo) if defined $downgrade;
return ($mant, $expo);
}
-sub nparts {
- my $self = shift;
- my $class = ref $self;
+# Parts used for normalized notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,10). E.g., "12345.6789" is returned as
+# "1.23456789" and "4".
- croak("nparts() is an instance method, not a class method")
- unless $class;
+sub nparts {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # Not-a-number.
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- if ($self -> is_nan()) {
- my $mant = $self -> copy(); # mantissa
- return $mant unless wantarray; # scalar context
- my $expo = $class -> bnan(); # exponent
- return ($mant, $expo); # list context
- }
-
- # Infinity.
+ # Not-a-number and Infinity.
- if ($self -> is_inf()) {
- my $mant = $self -> copy(); # mantissa
- return $mant unless wantarray; # scalar context
- my $expo = $class -> binf('+'); # exponent
- return ($mant, $expo); # list context
- }
+ return $x -> sparts() if $x -> is_nan() || $x -> is_inf();
# Finite number.
- my ($mant, $expo) = $self -> sparts();
+ my ($mant, $expo) = $x -> sparts();
if ($mant -> bcmp(0)) {
my ($ndigtot, $ndigfrac) = $mant -> length();
my $expo10adj = $ndigtot - $ndigfrac - 1;
- if ($expo10adj != 0) {
- my $factor = "1e" . -$expo10adj;
- $mant -> bmul($factor);
+ if ($expo10adj > 0) { # if mantissa is not an integer
+ $mant = $mant -> brsft($expo10adj, 10);
return $mant unless wantarray;
- $expo -> badd($expo10adj);
+ $expo = $expo -> badd($expo10adj);
return ($mant, $expo);
}
}
@@ -4100,63 +4442,182 @@ sub nparts {
return ($mant, $expo);
}
+# Parts used for engineering notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,1000) and the exponent is a multiple of 3.
+# E.g., "12345.6789" is returned as "12.3456789" and "3".
+
sub eparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- croak("eparts() is an instance method, not a class method")
- unless $class;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
# Not-a-number and Infinity.
- return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+ return $x -> sparts() if $x -> is_nan() || $x -> is_inf();
# Finite number.
- my ($mant, $expo) = $self -> nparts();
+ my ($mant, $expo) = $x -> nparts();
my $c = $expo -> copy() -> bmod(3);
- $mant -> blsft($c, 10);
+ $mant = $mant -> blsft($c, 10);
return $mant unless wantarray;
- $expo -> bsub($c);
+ $expo = $expo -> bsub($c);
return ($mant, $expo);
}
+# Parts used for decimal notation, e.g., "12345.6789" is returned as "12345"
+# (integer part) and "0.6789" (fraction part).
+
sub dparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- croak("dparts() is an instance method, not a class method")
- unless $class;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- # Not-a-number and Infinity.
+ # Not-a-number.
+
+ if ($x -> is_nan()) {
+ my $int = $class -> bnan();
+ return $int unless wantarray;
+ my $frc = $class -> bzero(); # or NaN?
+ return ($int, $frc);
+ }
+
+ # Infinity.
- if ($self -> is_nan() || $self -> is_inf()) {
- my $int = $self -> copy();
+ if ($x -> is_inf()) {
+ my $int = $class -> binf($x->{sign});
return $int unless wantarray;
my $frc = $class -> bzero();
return ($int, $frc);
}
- my $int = $self -> copy();
- my $frc = $class -> bzero();
+ # Finite number.
+
+ my $int = $x -> copy();
+ my $frc;
+
+ # If the input is an integer.
- # If the input has a fraction part.
+ if ($int->{_es} eq '+') {
+ $frc = $class -> bzero();
+ }
+
+ # If the input has a fraction part
- if ($int->{_es} eq '-') {
+ else {
$int->{_m} = $LIB -> _rsft($int->{_m}, $int->{_e}, 10);
$int->{_e} = $LIB -> _zero();
$int->{_es} = '+';
$int->{sign} = '+' if $LIB->_is_zero($int->{_m}); # avoid -0
-
return $int unless wantarray;
- $frc = $self -> copy() -> bsub($int);
+ $frc = $x -> copy() -> bsub($int);
return ($int, $frc);
}
+ $int = $downgrade -> new($int) if defined $downgrade;
return $int unless wantarray;
- return ($int, $frc);
+ return $int, $frc;
+}
+
+# Fractional parts with the numerator and denominator as integers. E.g.,
+# "123.4375" is returned as "1975" and "16".
+
+sub fparts {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # NaN => NaN/NaN
+
+ if ($x -> is_nan()) {
+ return $class -> bnan() unless wantarray;
+ return $class -> bnan(), $class -> bnan();
+ }
+
+ # ±Inf => ±Inf/1
+
+ if ($x -> is_inf()) {
+ my $numer = $class -> binf($x->{sign});
+ return $numer unless wantarray;
+ my $denom = $class -> bone();
+ return $numer, $denom;
+ }
+
+ # Finite number.
+
+ # If we get here, we know that the output is an integer.
+
+ $class = $downgrade if defined $downgrade;
+
+ my @flt_parts = ($x->{sign}, $x->{_m}, $x->{_es}, $x->{_e});
+ my @rat_parts = $class -> _flt_lib_parts_to_rat_lib_parts(@flt_parts);
+ my $num = $class -> new($LIB -> _str($rat_parts[1]));
+ my $den = $class -> new($LIB -> _str($rat_parts[2]));
+ $num = $num -> bneg() if $rat_parts[0] eq "-";
+ return $num unless wantarray;
+ return $num, $den;
+}
+
+# Given "123.4375", returns "1975", since "123.4375" is "1975/16".
+
+sub numerator {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $class -> bnan() if $x -> is_nan();
+ return $class -> binf($x -> sign()) if $x -> is_inf();
+ return $class -> bzero() if $x -> is_zero();
+
+ # If we get here, we know that the output is an integer.
+
+ $class = $downgrade if defined $downgrade;
+
+ if ($x -> {_es} eq '-') { # exponent < 0
+ my $numer_lib = $LIB -> _copy($x -> {_m});
+ my $denom_lib = $LIB -> _1ex($x -> {_e});
+ my $gcd_lib = $LIB -> _gcd($LIB -> _copy($numer_lib), $denom_lib);
+ $numer_lib = $LIB -> _div($numer_lib, $gcd_lib);
+ return $class -> new($x -> {sign} . $LIB -> _str($numer_lib));
+ }
+
+ elsif (! $LIB -> _is_zero($x -> {_e})) { # exponent > 0
+ my $numer_lib = $LIB -> _copy($x -> {_m});
+ $numer_lib = $LIB -> _lsft($numer_lib, $x -> {_e}, 10);
+ return $class -> new($x -> {sign} . $LIB -> _str($numer_lib));
+ }
+
+ else { # exponent = 0
+ return $class -> new($x -> {sign} . $LIB -> _str($x -> {_m}));
+ }
+}
+
+# Given "123.4375", returns "16", since "123.4375" is "1975/16".
+
+sub denominator {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $class -> bnan() if $x -> is_nan();
+
+ # If we get here, we know that the output is an integer.
+
+ $class = $downgrade if defined $downgrade;
+
+ if ($x -> {_es} eq '-') { # exponent < 0
+ my $numer_lib = $LIB -> _copy($x -> {_m});
+ my $denom_lib = $LIB -> _1ex($x -> {_e});
+ my $gcd_lib = $LIB -> _gcd($LIB -> _copy($numer_lib), $denom_lib);
+ $denom_lib = $LIB -> _div($denom_lib, $gcd_lib);
+ return $class -> new($LIB -> _str($denom_lib));
+ }
+
+ else { # exponent >= 0
+ return $class -> bone();
+ }
}
###############################################################################
@@ -4167,13 +4628,19 @@ sub bstr {
# (ref to BFLOAT or num_str) return num_str
# Convert number from internal format to (non-scientific) string format.
# internal format is always normalized (no leading zeros, "-0" => "+0")
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- if ($x->{sign} !~ /^[+-]$/) {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
+ # Finite number
+
my $es = '0';
my $len = 1;
my $cad = 0;
@@ -4221,91 +4688,243 @@ sub bstr {
$es;
}
-# Decimal notation, e.g., "12345.6789".
+# Decimal notation, e.g., "12345.6789" (no exponent).
sub bdstr {
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
+ # Upgrade?
+
+ return $upgrade -> bdstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
my $mant = $LIB->_str($x->{_m});
- my $expo = $x -> exponent();
+ my $esgn = $x->{_es};
+ my $eabs = $LIB -> _num($x->{_e});
+
+ my $uintmax = ~0;
my $str = $mant;
- if ($expo >= 0) {
- $str .= "0" x $expo;
+ if ($esgn eq '+') {
+
+ croak("The absolute value of the exponent is too large")
+ if $eabs > $uintmax;
+
+ $str .= "0" x $eabs;
+
} else {
- my $mantlen = CORE::length($mant);
- my $c = $mantlen + $expo;
+ my $mlen = CORE::length($mant);
+ my $c = $mlen - $eabs;
+
+ my $intmax = ($uintmax - 1) / 2;
+ croak("The absolute value of the exponent is too large")
+ if (1 - $c) > $intmax;
+
$str = "0" x (1 - $c) . $str if $c <= 0;
- substr($str, $expo, 0) = '.';
+ substr($str, -$eabs, 0) = '.';
}
- return $x->{sign} eq '-' ? "-$str" : $str;
+ return $x->{sign} eq '-' ? '-' . $str : $str;
}
-# Scientific notation with significand/mantissa as an integer, e.g., "12345.6789"
-# is written as "123456789e-4".
+# Scientific notation with significand/mantissa and exponent as integers, e.g.,
+# "12345.6789" is written as "123456789e-4".
sub bsstr {
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
- my $str = $LIB->_str($x->{_m}) . 'e' . $x->{_es}. $LIB->_str($x->{_e});
- return $x->{sign} eq '-' ? "-$str" : $str;
+ # Upgrade?
+
+ return $upgrade -> bsstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{_m})
+ . 'e' . $x->{_es} . $LIB->_str($x->{_e});
}
# Normalized notation, e.g., "12345.6789" is written as "1.23456789e+4".
sub bnstr {
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
- my ($mant, $expo) = $x -> nparts();
+ # Upgrade?
+
+ return $upgrade -> bnstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
- my $esgn = $expo < 0 ? '-' : '+';
- my $eabs = $expo -> babs() -> bfround(0) -> bstr();
- #$eabs = '0' . $eabs if length($eabs) < 2;
+ my $str = $x->{sign} eq '-' ? '-' : '';
- return $mant . 'e' . $esgn . $eabs;
+ # Get the mantissa and the length of the mantissa.
+
+ my $mant = $LIB->_str($x->{_m});
+ my $mantlen = CORE::length($mant);
+
+ if ($mantlen == 1) {
+
+ # Not decimal point when the mantissa has length one, i.e., return the
+ # number 2 as the string "2", not "2.".
+
+ $str .= $mant . 'e' . $x->{_es} . $LIB->_str($x->{_e});
+
+ } else {
+
+ # Compute new exponent where the original exponent is adjusted by the
+ # length of the mantissa minus one (because the decimal point is after
+ # one digit).
+
+ my ($eabs, $esgn) = $LIB -> _sadd($LIB -> _copy($x->{_e}), $x->{_es},
+ $LIB -> _new($mantlen - 1), "+");
+ substr $mant, 1, 0, ".";
+ $str .= $mant . 'e' . $esgn . $LIB->_str($eabs);
+
+ }
+
+ return $str;
}
# Engineering notation, e.g., "12345.6789" is written as "12.3456789e+3".
sub bestr {
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> bestr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ my $str = $x->{sign} eq '-' ? '-' : '';
+
+ # Get the mantissa, the length of the mantissa, and adjust the exponent by
+ # the length of the mantissa minus 1 (because the dot is after one digit).
+
+ my $mant = $LIB->_str($x->{_m});
+ my $mantlen = CORE::length($mant);
+ my ($eabs, $esgn) = $LIB -> _sadd($LIB -> _copy($x->{_e}), $x->{_es},
+ $LIB -> _new($mantlen - 1), "+");
+
+ my $dotpos = 1;
+ my $mod = $LIB -> _mod($LIB -> _copy($eabs), $LIB -> _new("3"));
+ unless ($LIB -> _is_zero($mod)) {
+ if ($esgn eq '+') {
+ $eabs = $LIB -> _sub($eabs, $mod);
+ $dotpos += $LIB -> _num($mod);
+ } else {
+ my $delta = $LIB -> _sub($LIB -> _new("3"), $mod);
+ $eabs = $LIB -> _add($eabs, $delta);
+ $dotpos += $LIB -> _num($delta);
+ }
}
- my ($mant, $expo) = $x -> eparts();
+ if ($dotpos < $mantlen) {
+ substr $mant, $dotpos, 0, ".";
+ } elsif ($dotpos > $mantlen) {
+ $mant .= "0" x ($dotpos - $mantlen);
+ }
- my $esgn = $expo < 0 ? '-' : '+';
- my $eabs = $expo -> babs() -> bfround(0) -> bstr();
- #$eabs = '0' . $eabs if length($eabs) < 2;
+ $str .= $mant . 'e' . $esgn . $LIB->_str($eabs);
- return $mant . 'e' . $esgn . $eabs;
+ return $str;
+}
+
+# Fractional notation, e.g., "123.4375" is written as "1975/16".
+
+sub bfstr {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> bfstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ my $str = $x->{sign} eq '-' ? '-' : '';
+
+ if ($x->{_es} eq '+') {
+ $str .= $LIB -> _str($x->{_m}) . ("0" x $LIB -> _num($x->{_e}));
+ } else {
+ my @flt_parts = ($x->{sign}, $x->{_m}, $x->{_es}, $x->{_e});
+ my @rat_parts = $class -> _flt_lib_parts_to_rat_lib_parts(@flt_parts);
+ $str = $LIB -> _str($rat_parts[1]) . "/" . $LIB -> _str($rat_parts[2]);
+ $str = "-" . $str if $rat_parts[0] eq "-";
+ }
+
+ return $str;
}
sub to_hex {
# return number as hexadecimal string (only for integers defined)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> to_hex($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
return '0' if $x->is_zero();
return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex?
@@ -4320,10 +4939,24 @@ sub to_hex {
sub to_oct {
# return number as octal digit string (only for integers defined)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> to_hex($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
return '0' if $x->is_zero();
return $nan if $x->{_es} ne '+'; # how to do 1e-1 in octal?
@@ -4338,10 +4971,24 @@ sub to_oct {
sub to_bin {
# return number as binary digit string (only for integers defined)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> to_hex($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
return '0' if $x->is_zero();
return $nan if $x->{_es} ne '+'; # how to do 1e-1 in binary?
@@ -4355,9 +5002,9 @@ sub to_bin {
}
sub to_ieee754 {
- my $x = shift;
- my $format = shift;
- my $class = ref $x;
+ my ($class, $x, $format, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
my $enc; # significand encoding (applies only to decimal)
my $k; # storage width in bits
@@ -4494,41 +5141,85 @@ sub to_ieee754 {
$expo = $class -> new($expo_est);
if ($expo_est > 0) {
- $mant -> bmul($binv -> copy() -> bpow($expo));
+ $mant = $mant -> bmul($binv -> copy() -> bpow($expo));
} elsif ($expo_est < 0) {
my $expo_abs = $expo -> copy() -> bneg();
- $mant -> bmul($b -> copy() -> bpow($expo_abs));
+ $mant = $mant -> bmul($b -> copy() -> bpow($expo_abs));
}
- # Final adjustment.
+ # Final adjustment of the estimate above.
while ($mant >= $b && $expo <= $emax) {
- $mant -> bmul($binv);
- $expo -> binc();
+ $mant = $mant -> bmul($binv);
+ $expo = $expo -> binc();
}
while ($mant < $one && $expo >= $emin) {
- $mant -> bmul($b);
- $expo -> bdec();
+ $mant = $mant -> bmul($b);
+ $expo = $expo -> bdec();
}
- # Encode as infinity, normal number or subnormal number?
+ # This is when the magnitude is larger than what can be represented
+ # in this format. Encode as infinity.
- if ($expo > $emax) { # overflow => infinity
- $expo = $emax -> copy() -> binc();
+ if ($expo > $emax) {
$mant = $class -> bzero();
- } elsif ($expo < $emin) { # subnormal number
- my $const = $class -> new(2) -> bpow($t - 1);
- $mant -> bmul($const);
- $mant -> bfround(0);
- } else { # normal number
- $mant -> bdec(); # remove implicit leading bit
- my $const = $class -> new(2) -> bpow($t);
- $mant -> bmul($const) -> bfround(0);
+ $expo = $emax -> copy() -> binc();
+ }
+
+ # This is when the magnitude is so small that the number is encoded
+ # as a subnormal number.
+ #
+ # If the magnitude is smaller than that of the smallest subnormal
+ # number, and rounded downwards, it is encoded as zero. This works
+ # transparently and does not need to be treated as a special case.
+ #
+ # If the number is between the largest subnormal number and the
+ # smallest normal number, and the value is rounded upwards, the
+ # value must be encoded as a normal number. This must be treated as
+ # a special case.
+
+ elsif ($expo < $emin) {
+
+ # Scale up the mantissa (significand), and round to integer.
+
+ my $const = $class -> new($b) -> bpow($t - 1);
+ $mant = $mant -> bmul($const);
+ $mant = $mant -> bfround(0);
+
+ # If the mantissa overflowed, encode as the smallest normal
+ # number.
+
+ if ($mant == $const -> bmul($b)) {
+ $mant = $mant -> bzero();
+ $expo = $expo -> binc();
+ }
+ }
+
+ # This is when the magnitude is within the range of what can be
+ # encoded as a normal number.
+
+ else {
+
+ # Remove implicit leading bit, scale up the mantissa
+ # (significand) to an integer, and round.
+
+ $mant = $mant -> bdec();
+ my $const = $class -> new($b) -> bpow($t);
+ $mant = $mant -> bmul($const) -> bfround(0);
+
+ # If the mantissa overflowed, encode as the next larger value.
+ # This works correctly also when the next larger value is
+ # infinity.
+
+ if ($mant == $const) {
+ $mant = $mant -> bzero();
+ $expo = $expo -> binc();
+ }
}
}
- $expo -> badd($bias); # add bias
+ $expo = $expo -> badd($bias); # add bias
my $signbit = "$sign";
@@ -4548,7 +5239,9 @@ sub to_ieee754 {
sub as_hex {
# return number as hexadecimal string (only for integers defined)
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
return '0x0' if $x->is_zero();
@@ -4566,7 +5259,9 @@ sub as_hex {
sub as_oct {
# return number as octal digit string (only for integers defined)
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
return '00' if $x->is_zero();
@@ -4584,7 +5279,9 @@ sub as_oct {
sub as_bin {
# return number as binary digit string (only for integers defined)
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
return '0b0' if $x->is_zero();
@@ -4601,21 +5298,25 @@ sub as_bin {
sub numify {
# Make a Perl scalar number from a Math::BigFloat object.
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
if ($x -> is_nan()) {
require Math::Complex;
- my $inf = Math::Complex::Inf();
+ my $inf = $Math::Complex::Inf;
return $inf - $inf;
}
if ($x -> is_inf()) {
require Math::Complex;
- my $inf = Math::Complex::Inf();
+ my $inf = $Math::Complex::Inf;
return $x -> is_negative() ? -$inf : $inf;
}
# Create a string and let Perl's atoi()/atof() handle the rest.
+
return 0 + $x -> bnstr();
}
@@ -4625,65 +5326,97 @@ sub numify {
sub import {
my $class = shift;
- my $l = scalar @_;
- my $lib = '';
- my @a;
- my $lib_kind = 'try';
- $IMPORT=1;
- for (my $i = 0; $i < $l ; $i++) {
- if ($_[$i] eq ':constant') {
- # This causes overlord er load to step in. 'binary' and 'integer'
- # are handled by BigInt.
- overload::constant float => sub { $class->new(shift); };
- } elsif ($_[$i] eq 'upgrade') {
- # this causes upgrading
- $upgrade = $_[$i+1]; # or undef to disable
- $i++;
- } elsif ($_[$i] eq 'downgrade') {
- # this causes downgrading
- $downgrade = $_[$i+1]; # or undef to disable
- $i++;
- } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
- # alternative library
- $lib = $_[$i+1] || ''; # default Calc
- $lib_kind = $1; # lib, try or only
- $i++;
- } elsif ($_[$i] eq 'with') {
+ $IMPORT++; # remember we did import()
+
+ my @import = ('objectify');
+ my @a; # unrecognized arguments
+
+ while (@_) {
+ my $param = shift;
+
+ # Enable overloading of constants.
+
+ if ($param eq ':constant') {
+ overload::constant
+
+ integer => sub {
+ $class -> new(shift);
+ },
+
+ float => sub {
+ $class -> new(shift);
+ },
+
+ binary => sub {
+ # E.g., a literal 0377 shall result in an object whose value
+ # is decimal 255, but new("0377") returns decimal 377.
+ return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/;
+ $class -> new(shift);
+ };
+ next;
+ }
+
+ # Upgrading.
+
+ if ($param eq 'upgrade') {
+ $class -> upgrade(shift);
+ next;
+ }
+
+ # Downgrading.
+
+ if ($param eq 'downgrade') {
+ $class -> downgrade(shift);
+ next;
+ }
+
+ # Accuracy.
+
+ if ($param eq 'accuracy') {
+ $class -> accuracy(shift);
+ next;
+ }
+
+ # Precision.
+
+ if ($param eq 'precision') {
+ $class -> precision(shift);
+ next;
+ }
+
+ # Rounding mode.
+
+ if ($param eq 'round_mode') {
+ $class -> round_mode(shift);
+ next;
+ }
+
+ # Backend library.
+
+ if ($param =~ /^(lib|try|only)\z/) {
+ push @import, $param;
+ push @import, shift() if @_;
+ next;
+ }
+
+ if ($param eq 'with') {
# alternative class for our private parts()
# XXX: no longer supported
- # $LIB = $_[$i+1] || 'Math::BigInt';
- $i++;
- } else {
- push @a, $_[$i];
+ # $LIB = shift() || 'Calc';
+ # carp "'with' is no longer supported, use 'lib', 'try', or 'only'";
+ shift;
+ next;
}
- }
-
- $lib =~ tr/a-zA-Z0-9,://cd; # restrict to sane characters
- # let use Math::BigInt lib => 'GMP'; use Math::BigFloat; still work
- my $mbilib = eval { Math::BigInt->config('lib') };
- if ((defined $mbilib) && ($LIB eq 'Math::BigInt::Calc')) {
- # $LIB already loaded
- Math::BigInt->import($lib_kind, "$lib, $mbilib", 'objectify');
- } else {
- # $LIB not loaded, or with ne "Math::BigInt::Calc"
- $lib .= ",$mbilib" if defined $mbilib;
- $lib =~ s/^,//; # don't leave empty
- # replacement library can handle lib statement, but also could ignore it
+ # Unrecognized parameter.
- # Perl < 5.6.0 dies with "out of memory!" when eval() and ':constant' is
- # used in the same script, or eval inside import(). So we require MBI:
- require Math::BigInt;
- Math::BigInt->import($lib_kind => $lib, 'objectify');
+ push @a, $param;
}
- if ($@) {
- croak("Couldn't load $lib: $! $@");
- }
- # find out which one was actually loaded
- $LIB = Math::BigInt->config('lib');
- # register us with MBI to get notified of future lib changes
- Math::BigInt::_register_callback($class, sub { $LIB = $_[0]; });
+ Math::BigInt -> import(@import);
+
+ # find out which one was actually loaded
+ $LIB = Math::BigInt -> config('lib');
$class->export_to_level(1, $class, @a); # export wanted functions
}
@@ -4701,17 +5434,20 @@ sub _len_to_steps {
my $l = 40;
my $r = $d;
- # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :(
+ # Otherwise this does not work under -Mbignum and we do not yet have "no
+ # bignum;" :(
$l = $l->numify if ref($l);
$r = $r->numify if ref($r);
$lg2 = $lg2->numify if ref($lg2);
$lg10 = $lg10->numify if ref($lg10);
- # binary search for the right value (could this be written as the reverse of lg(n!)?)
+ # binary search for the right value (could this be written as the reverse of
+ # lg(n!)?)
while ($r - $l > 1) {
my $n = int(($r - $l) / 2) + $l;
- my $ramanujan =
- int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2) / $lg10);
+ my $ramanujan
+ = int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2)
+ / $lg10);
$ramanujan > $d ? $r = $n : $l = $n;
}
$l;
@@ -4745,15 +5481,19 @@ sub _log {
my ($limit, $v, $u, $below, $factor, $next, $over, $f);
- $v = $x->copy(); $v->binc(); # v = x+1
- $x->bdec(); $u = $x->copy(); # u = x-1; x = x-1
- $x->bdiv($v, $scale); # first term: u/v
+ $v = $x->copy();
+ $v = $v -> binc(); # v = x+1
+ $x = $x->bdec();
+ $u = $x->copy(); # u = x-1; x = x-1
+ $x = $x->bdiv($v, $scale); # first term: u/v
$below = $v->copy();
$over = $u->copy();
- $u *= $u; $v *= $v; # u^2, v^2
- $below->bmul($v); # u^3, v^3
- $over->bmul($u);
- $factor = $class->new(3); $f = $class->new(2);
+ $u = $u -> bmul($u); # u^2
+ $v = $v -> bmul($v); # v^2
+ $below = $below->bmul($v); # u^3, v^3
+ $over = $over->bmul($u);
+ $factor = $class->new(3);
+ $f = $class->new(2);
$limit = $class->new("1E-". ($scale-1));
@@ -4769,27 +5509,24 @@ sub _log {
# round $over and $below first, we save a lot of time for the division
# (not with log(1.2345), but try log (123**123) to see what I mean. This
# can introduce a rounding error if the division result would be f.i.
- # 0.1234500000001 and we round it to 5 digits it would become 0.12346, but
- # if we truncated $over and $below we might get 0.12345. Does this matter
- # for the end result? So we give $over and $below 4 more digits to be
- # on the safe side (unscientific error handling as usual... :+D
+ # 0.1234500000001 and we round it to 5 digits it would become 0.12346,
+ # but if we truncated $over and $below we might get 0.12345. Does this
+ # matter for the end result? So we give $over and $below 4 more digits
+ # to be on the safe side (unscientific error handling as usual... :+D
$next = $over->copy()->bround($scale+4)
->bdiv($below->copy()->bmul($factor)->bround($scale+4),
$scale);
- ## old version:
- ## $next = $over->copy()->bdiv($below->copy()->bmul($factor), $scale);
-
last if $next->bacmp($limit) <= 0;
delete $next->{_a};
delete $next->{_p};
- $x->badd($next);
+ $x = $x->badd($next);
# calculate things for the next term
$over *= $u;
$below *= $v;
- $factor->badd($f);
+ $factor = $factor->badd($f);
}
$x->bmul($f); # $x *= 2
}
@@ -4808,9 +5545,9 @@ sub _log_10 {
# long, we make it faster by about a factor of 100 by dividing $x by 10.
# The same observation is valid for numbers smaller than 0.1, e.g. computing
- # log(1) is fastest, and the further away we get from 1, the longer it takes.
- # So we also 'break' this down by multiplying $x with 10 and subtract the
- # log(10) afterwards to get the correct result.
+ # log(1) is fastest, and the further away we get from 1, the longer it
+ # takes. So we also 'break' this down by multiplying $x with 10 and subtract
+ # the log(10) afterwards to get the correct result.
# To get $x even closer to 1, we also divide by 2 and then use log(2) to
# correct for this. For instance if $x is 2.4, we use the formula:
@@ -4841,8 +5578,8 @@ sub _log_10 {
$dbd = 0; # disable shortcut
# we can use the cached value in these cases
if ($scale <= $LOG_10_A) {
- $x->bzero();
- $x->badd($LOG_10); # modify $x in place
+ $x = $x->bzero();
+ $x = $x->badd($LOG_10); # modify $x in place
$calc = 0; # no need to calc, but round
}
# if we can't use the shortcut, we continue normally
@@ -4854,8 +5591,8 @@ sub _log_10 {
$dbd = 0; # disable shortcut
# we can use the cached value in these cases
if ($scale <= $LOG_2_A) {
- $x->bzero();
- $x->badd($LOG_2); # modify $x in place
+ $x = $x->bzero();
+ $x = $x->badd($LOG_2); # modify $x in place
$calc = 0; # no need to calc, but round
}
# if we can't use the shortcut, we continue normally
@@ -4871,8 +5608,8 @@ sub _log_10 {
$dbd = 0; # disable shortcut
# we can use the cached value in these cases
if ($scale <= $LOG_10_A) {
- $x->bzero();
- $x->bsub($LOG_10);
+ $x = $x->bzero();
+ $x = $x->bsub($LOG_10);
$calc = 0; # no need to calc, but round
}
}
@@ -4893,8 +5630,8 @@ sub _log_10 {
$LOG_10 = $class->new($LOG_10, undef, undef) unless ref $LOG_10;
#print "x = $x, dbd = $dbd, calc = $calc\n";
- # got more than one digit before the dot, or more than one zero after the
- # dot, so do:
+ # got more than one digit before the dot, or more than one zero after
+ # the dot, so do:
# log(123) == log(1.23) + log(10) * 2
# log(0.0123) == log(1.23) - log(10) * 2
@@ -4903,7 +5640,12 @@ sub _log_10 {
$l_10 = $LOG_10->copy(); # copy for mul
} else {
# else: slower, compute and cache result
- # also disable downgrade for this code path
+
+ # Disabling upgrading and downgrading is no longer necessary to
+ # avoid an infinite recursion, but it avoids unnecessary upgrading
+ # and downgrading in the intermediate computations.
+
+ local $Math::BigInt::upgrade = undef;
local $Math::BigFloat::downgrade = undef;
# shorten the time to calculate log(10) based on the following:
@@ -4918,7 +5660,7 @@ sub _log_10 {
} else {
# else: slower, compute and cache result
$l_2 = $two->copy();
- $l_2->_log($scale); # scale+4, actually
+ $l_2 = $l_2->_log($scale); # scale+4, actually
$LOG_2 = $l_2->copy(); # cache the result for later
# the copy() is for mul below
$LOG_2_A = $scale;
@@ -4926,26 +5668,25 @@ sub _log_10 {
# now calculate log(1.25):
$l_10 = $class->new('1.25');
- $l_10->_log($scale); # scale+4, actually
+ $l_10 = $l_10->_log($scale); # scale+4, actually
# log(1.25) + log(2) + log(2) + log(2):
- $l_10->badd($l_2);
- $l_10->badd($l_2);
- $l_10->badd($l_2);
+ $l_10 = $l_10->badd($l_2);
+ $l_10 = $l_10->badd($l_2);
+ $l_10 = $l_10->badd($l_2);
$LOG_10 = $l_10->copy(); # cache the result for later
# the copy() is for mul below
$LOG_10_A = $scale;
}
$dbd-- if ($dbd > 1); # 20 => dbd=2, so make it dbd=1
- $l_10->bmul($class->new($dbd)); # log(10) * (digits_before_dot-1)
+ $l_10 = $l_10->bmul($class->new($dbd)); # log(10) * (digits_before_dot-1)
my $dbd_sign = '+';
if ($dbd < 0) {
$dbd = -$dbd;
$dbd_sign = '-';
}
($x->{_e}, $x->{_es}) =
- _e_sub($x->{_e}, $LIB->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23
-
+ $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($dbd), $dbd_sign);
}
# Now: 0.1 <= $x < 10 (and possible correction in l_10)
@@ -4958,13 +5699,13 @@ sub _log_10 {
my $twos = 0; # default: none (0 times)
while ($x->bacmp($HALF) <= 0) { # X <= 0.5
$twos--;
- $x->bmul($two);
+ $x = $x->bmul($two);
}
while ($x->bacmp($two) >= 0) { # X >= 2
$twos++;
- $x->bdiv($two, $scale+4); # keep all digits
+ $x = $x->bdiv($two, $scale+4); # keep all digits
}
- $x->bround($scale+4);
+ $x = $x->bround($scale+4);
# $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both)
# So calculate correction factor based on ln(2):
if ($twos != 0) {
@@ -4974,69 +5715,33 @@ sub _log_10 {
$l_2 = $LOG_2->copy(); # copy() for the mul below
} else {
# else: slower, compute and cache result
- # also disable downgrade for this code path
+
+ # Disabling upgrading and downgrading is no longer necessary to
+ # avoid an infinite recursion, but it avoids unnecessary upgrading
+ # and downgrading in the intermediate computations.
+
+ local $Math::BigInt::upgrade = undef;
local $Math::BigFloat::downgrade = undef;
+
$l_2 = $two->copy();
- $l_2->_log($scale); # scale+4, actually
+ $l_2 = $l_2->_log($scale); # scale+4, actually
$LOG_2 = $l_2->copy(); # cache the result for later
# the copy() is for mul below
$LOG_2_A = $scale;
}
- $l_2->bmul($twos); # * -2 => subtract, * 2 => add
+ $l_2 = $l_2->bmul($twos); # * -2 => subtract, * 2 => add
} else {
undef $l_2;
}
- $x->_log($scale); # need to do the "normal" way
- $x->badd($l_10) if defined $l_10; # correct it by ln(10)
- $x->badd($l_2) if defined $l_2; # and maybe by ln(2)
+ $x = $x->_log($scale); # need to do the "normal" way
+ $x = $x->badd($l_10) if defined $l_10; # correct it by ln(10)
+ $x = $x->badd($l_2) if defined $l_2; # and maybe by ln(2)
# all done, $x contains now the result
$x;
}
-sub _e_add {
- # Internal helper sub to take two positive integers and their signs and
- # then add them. Input ($LIB, $LIB, ('+'|'-'), ('+'|'-')), output
- # ($LIB, ('+'|'-')).
-
- my ($x, $y, $xs, $ys) = @_;
-
- # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
- if ($xs eq $ys) {
- $x = $LIB->_add($x, $y); # +a + +b or -a + -b
- } else {
- my $a = $LIB->_acmp($x, $y);
- if ($a == 0) {
- # This does NOT modify $x in-place. TODO: Fix this?
- $x = $LIB->_zero(); # result is 0
- $xs = '+';
- return ($x, $xs);
- }
- if ($a > 0) {
- $x = $LIB->_sub($x, $y); # abs sub
- } else { # a < 0
- $x = $LIB->_sub ($y, $x, 1); # abs sub
- $xs = $ys;
- }
- }
-
- $xs = '+' if $xs eq '-' && $LIB->_is_zero($x); # no "-0"
-
- return ($x, $xs);
-}
-
-sub _e_sub {
- # Internal helper sub to take two positive integers and their signs and
- # then subtract them. Input ($LIB, $LIB, ('+'|'-'), ('+'|'-')),
- # output ($LIB, ('+'|'-'))
- my ($x, $y, $xs, $ys) = @_;
-
- # flip sign
- $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
- _e_add($x, $y, $xs, $ys); # ... and let _e_add() do the job
-}
-
sub _pow {
# Calculate a power where $y is a non-integer, like 2 ** 0.3
my ($x, $y, @r) = @_;
@@ -5079,23 +5784,32 @@ sub _pow {
# when user set globals, they would interfere with our calculation, so
# disable them and later re-enable them
no strict 'refs';
- my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ my $abr = "$class\::accuracy";
+ my $ab = $$abr;
+ $$abr = undef;
+ my $pbr = "$class\::precision";
+ my $pb = $$pbr;
+ $$pbr = undef;
# we also need to disable any set A or P on $x (_find_round_parameters took
# them already into account), since these would interfere, too
delete $x->{_a};
delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
+
+ # Disabling upgrading and downgrading is no longer necessary to avoid an
+ # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+ # the intermediate computations.
+
local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
my ($limit, $v, $u, $below, $factor, $next, $over);
$u = $x->copy()->blog(undef, $scale)->bmul($y);
my $do_invert = ($u->{sign} eq '-');
- $u->bneg() if $do_invert;
+ $u = $u->bneg() if $do_invert;
$v = $class->bone(); # 1
$factor = $class->new(2); # 2
- $x->bone(); # first term: 1
+ $x = $x->bone(); # first term: 1
$below = $v->copy();
$over = $u->copy();
@@ -5107,25 +5821,25 @@ sub _pow {
# anymore, so we stop:
$next = $over->copy()->bdiv($below, $scale);
last if $next->bacmp($limit) <= 0;
- $x->badd($next);
+ $x = $x->badd($next);
# calculate things for the next term
$over *= $u;
$below *= $factor;
- $factor->binc();
+ $factor = $factor->binc();
last if $x->{sign} !~ /^[-+]$/;
}
if ($do_invert) {
my $x_copy = $x->copy();
- $x->bone->bdiv($x_copy, $scale);
+ $x = $x->bone->bdiv($x_copy, $scale);
}
# shortcut to not run through _find_round_parameters again
if (defined $params[0]) {
- $x->bround($params[0], $params[2]); # then round accordingly
+ $x = $x->bround($params[0], $params[2]); # then round accordingly
} else {
- $x->bfround($params[1], $params[2]); # then round accordingly
+ $x = $x->bfround($params[1], $params[2]); # then round accordingly
}
if ($fallback) {
# clear a/p after round, since user did not request it
@@ -5138,6 +5852,19 @@ sub _pow {
$x;
}
+# These functions are only provided for backwards compabibility so that old
+# version of Math::BigRat etc. don't complain about missing them.
+
+sub _e_add {
+ my ($x, $y, $xs, $ys) = @_;
+ return $LIB -> _sadd($x, $xs, $y, $ys);
+}
+
+sub _e_sub {
+ my ($x, $y, $xs, $ys) = @_;
+ return $LIB -> _ssub($x, $xs, $y, $ys);
+}
+
1;
__END__
@@ -5146,7 +5873,7 @@ __END__
=head1 NAME
-Math::BigFloat - Arbitrary size floating point math package
+Math::BigFloat - arbitrary size floating point math package
=head1 SYNOPSIS
@@ -5169,10 +5896,13 @@ Math::BigFloat - Arbitrary size floating point math package
$x = Math::BigFloat->new($str); # defaults to 0
$x = Math::BigFloat->new('0x123'); # from hexadecimal
+ $x = Math::BigFloat->new('0o377'); # from octal
$x = Math::BigFloat->new('0b101'); # from binary
$x = Math::BigFloat->from_hex('0xc.afep+3'); # from hex
$x = Math::BigFloat->from_hex('cafe'); # ditto
$x = Math::BigFloat->from_oct('1.3267p-4'); # from octal
+ $x = Math::BigFloat->from_oct('01.3267p-4'); # ditto
+ $x = Math::BigFloat->from_oct('0o1.3267p-4'); # ditto
$x = Math::BigFloat->from_oct('0377'); # ditto
$x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary
$x = Math::BigFloat->from_bin('0101'); # ditto
@@ -5187,6 +5917,8 @@ Math::BigFloat - Arbitrary size floating point math package
$y = $x->copy(); # make a copy (unlike $y = $x)
$y = $x->as_int(); # return as BigInt
+ $y = $x->as_float(); # return as a Math::BigFloat
+ $y = $x->as_rat(); # return as a Math::BigRat
# Boolean methods (these don't modify the invocand)
@@ -5297,6 +6029,9 @@ Math::BigFloat - Arbitrary size floating point math package
$x->nparts(); # mantissa and exponent (normalised)
$x->eparts(); # mantissa and exponent (engineering notation)
$x->dparts(); # integer and fraction part
+ $x->fparts(); # numerator and denominator
+ $x->numerator(); # numerator
+ $x->denominator(); # denominator
# Conversion methods (do not modify the invocand)
@@ -5305,6 +6040,8 @@ Math::BigFloat - Arbitrary size floating point math package
$x->bnstr(); # string in normalized notation
$x->bestr(); # string in engineering notation
$x->bdstr(); # string in decimal notation
+ $x->bfstr(); # string in fractional notation
+
$x->as_hex(); # as signed hexadecimal string with prefixed 0x
$x->as_bin(); # as signed binary string with prefixed 0b
$x->as_oct(); # as signed octal string with prefixed 0
@@ -5330,7 +6067,8 @@ exactly what you expect.
=head2 Input
Input values to these routines may be any scalar number or string that looks
-like a number and represents a floating point number.
+like a number. Anything that is accepted by Perl as a literal numeric constant
+should be accepted by this module.
=over
@@ -5340,48 +6078,77 @@ Leading and trailing whitespace is ignored.
=item *
-Leading and trailing zeros are ignored.
+Leading zeros are ignored, except for floating point numbers with a binary
+exponent, in which case the number is interpreted as an octal floating point
+number. For example, "01.4p+0" gives 1.5, "00.4p+0" gives 0.5, but "0.4p+0"
+gives a NaN. And while "0377" gives 255, "0377p0" gives 255.
=item *
-If the string has a "0x" prefix, it is interpreted as a hexadecimal number.
+If the string has a "0x" or "0X" prefix, it is interpreted as a hexadecimal
+number.
=item *
-If the string has a "0b" prefix, it is interpreted as a binary number.
+If the string has a "0o" or "0O" prefix, it is interpreted as an octal number. A
+floating point literal with a "0" prefix is also interpreted as an octal number.
=item *
-For hexadecimal and binary numbers, the exponent must be separated from the
-significand (mantissa) by the letter "p" or "P", not "e" or "E" as with decimal
-numbers.
+If the string has a "0b" or "0B" prefix, it is interpreted as a binary number.
=item *
-One underline is allowed between any two digits, including hexadecimal and
-binary digits.
+Underline characters are allowed in the same way as they are allowed in literal
+numerical constants.
=item *
If the string can not be interpreted, NaN is returned.
-=back
+=item *
+
+For hexadecimal, octal, and binary floating point numbers, the exponent must be
+separated from the significand (mantissa) by the letter "p" or "P", not "e" or
+"E" as with decimal numbers.
-Octal numbers are typically prefixed by "0", but since leading zeros are
-stripped, these methods can not automatically recognize octal numbers, so use
-the constructor from_oct() to interpret octal strings.
+=back
Some examples of valid string input
Input string Resulting value
+
123 123
1.23e2 123
12300e-2 123
- 0xcafe 51966
- 0b1101 13
+
67_538_754 67538754
-4_5_6.7_8_9e+0_1_0 -4567890000000
+
+ 0x13a 314
+ 0x13ap0 314
+ 0x1.3ap+8 314
+ 0x0.00013ap+24 314
+ 0x13a000p-12 314
+
+ 0o472 314
+ 0o1.164p+8 314
+ 0o0.0001164p+20 314
+ 0o1164000p-10 314
+
+ 0472 472 Note!
+ 01.164p+8 314
+ 00.0001164p+20 314
+ 01164000p-10 314
+
+ 0b100111010 314
+ 0b1.0011101p+8 314
+ 0b0.00010011101p+12 314
+ 0b100111010000p-3 314
+
0x1.921fb5p+1 3.14159262180328369140625e+0
+ 0o1.2677025p1 2.71828174591064453125
+ 01.2677025p1 2.71828174591064453125
0b1.1001p-4 9.765625e-2
=head2 Output
@@ -5680,10 +6447,11 @@ supplied to the operation after the I<scale>:
Math::BigFloat->round_mode('zero');
$y = $x->copy()->bdiv(3,6); # will also give 0.666667
-Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >>
-set the global variables, and thus B<any> newly created number will be subject
-to the global rounding B<immediately>. This means that in the examples above, the
-C<3> as argument to C<bdiv()> will also get an accuracy of B<5>.
+Note that C<< Math::BigFloat->accuracy() >> and
+C<< Math::BigFloat->precision() >> set the global variables, and thus B<any>
+newly created number will be subject to the global rounding B<immediately>. This
+means that in the examples above, the C<3> as argument to C<bdiv()> will also
+get an accuracy of B<5>.
It is less confusing to either calculate the result fully, and afterwards
round it explicitly, or use the additional parameters to the math
@@ -5752,76 +6520,103 @@ C<as_number()>:
$x = Math::BigFloat->new(2.5);
$y = $x->as_number('odd'); # $y = 3
-=head1 Autocreating constants
+=head1 NUMERIC LITERALS
-After C<use Math::BigFloat ':constant'> all the floating point constants
-in the given scope are converted to C<Math::BigFloat>. This conversion
-happens at compile time.
+After C<use Math::BigFloat ':constant'> all numeric literals in the given scope
+are converted to C<Math::BigFloat> objects. This conversion happens at compile
+time.
-In particular
+For example,
- perl -MMath::BigFloat=:constant -e 'print 2E-100,"\n"'
+ perl -MMath::BigFloat=:constant -le 'print 2e-150'
-prints the value of C<2E-100>. Note that without conversion of
-constants the expression 2E-100 will be calculated as normal floating point
-number.
+prints the exact value of C<2e-150>. Note that without conversion of constants
+the expression C<2e-150> is calculated using Perl scalars, which leads to an
+inaccuracte result.
-Please note that ':constant' does not affect integer constants, nor binary
-nor hexadecimal constants. Use L<bignum> or L<Math::BigInt> to get this to
-work.
+Note that strings are not affected, so that
-=head2 Math library
+ use Math::BigFloat qw/:constant/;
-Math with the numbers is done (by default) by a module called
-Math::BigInt::Calc. This is equivalent to saying:
+ $y = "1234567890123456789012345678901234567890"
+ + "123456789123456789";
- use Math::BigFloat lib => 'Calc';
+does not give you what you expect. You need an explicit Math::BigFloat->new()
+around at least one of the operands. You should also quote large constants to
+prevent loss of precision:
-You can change this by using:
+ use Math::BigFloat;
- use Math::BigFloat lib => 'GMP';
+ $x = Math::BigFloat->new("1234567889123456789123456789123456789");
-B<Note>: General purpose packages should not be explicit about the library
-to use; let the script author decide which is best.
+Without the quotes Perl converts the large number to a floating point constant
+at compile time, and then converts the result to a Math::BigFloat object at
+runtime, which results in an inaccurate result.
-Note: The keyword 'lib' will warn when the requested library could not be
-loaded. To suppress the warning use 'try' instead:
+=head2 Hexadecimal, octal, and binary floating point literals
- use Math::BigFloat try => 'GMP';
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result. Below are some examples of
+different ways to write the number decimal 314.
-If your script works with huge numbers and Calc is too slow for them,
-you can also for the loading of one of these libraries and if none
-of them can be used, the code will die:
+Hexadecimal floating point literals:
- use Math::BigFloat only => 'GMP,Pari';
+ 0x1.3ap+8 0X1.3AP+8
+ 0x1.3ap8 0X1.3AP8
+ 0x13a0p-4 0X13A0P-4
-The following would first try to find Math::BigInt::Foo, then
-Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
+Octal floating point literals (with "0" prefix):
- use Math::BigFloat lib => 'Foo,Math::BigInt::Bar';
+ 01.164p+8 01.164P+8
+ 01.164p8 01.164P8
+ 011640p-4 011640P-4
-See the respective low-level library documentation for further details.
+Octal floating point literals (with "0o" prefix) (requires v5.34.0):
-Please note that Math::BigFloat does B<not> use the denoted library itself,
-but it merely passes the lib argument to Math::BigInt. So, instead of the need
-to do:
+ 0o1.164p+8 0O1.164P+8
+ 0o1.164p8 0O1.164P8
+ 0o11640p-4 0O11640P-4
- use Math::BigInt lib => 'GMP';
- use Math::BigFloat;
+Binary floating point literals:
+
+ 0b1.0011101p+8 0B1.0011101P+8
+ 0b1.0011101p8 0B1.0011101P8
+ 0b10011101000p-2 0B10011101000P-2
-you can roll it all into one line:
+=head2 Math library
- use Math::BigFloat lib => 'GMP';
+Math with the numbers is done (by default) by a module called
+Math::BigInt::Calc. This is equivalent to saying:
-It is also possible to just require Math::BigFloat:
+ use Math::BigFloat lib => "Calc";
- require Math::BigFloat;
+You can change this by using:
+
+ use Math::BigFloat lib => "GMP";
+
+B<Note>: General purpose packages should not be explicit about the library to
+use; let the script author decide which is best.
+
+Note: The keyword 'lib' will warn when the requested library could not be
+loaded. To suppress the warning use 'try' instead:
+
+ use Math::BigFloat try => "GMP";
-This will load the necessary things (like BigInt) when they are needed, and
-automatically.
+If your script works with huge numbers and Calc is too slow for them, you can
+also for the loading of one of these libraries and if none of them can be used,
+the code will die:
-See L<Math::BigInt> for more details than you ever wanted to know about using
-a different low-level library.
+ use Math::BigFloat only => "GMP,Pari";
+
+The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar,
+and when this also fails, revert to Math::BigInt::Calc:
+
+ use Math::BigFloat lib => "Foo,Math::BigInt::Bar";
+
+See the respective low-level library documentation for further details.
+
+See L<Math::BigInt> for more details about using a different low-level library.
=head2 Using Math::BigInt::Lite
@@ -5835,7 +6630,8 @@ math library for directly storing the number parts.
=head1 EXPORTS
-C<Math::BigFloat> exports nothing by default, but can export the C<bpi()> method:
+C<Math::BigFloat> exports nothing by default, but can export the C<bpi()>
+method:
use Math::BigFloat qw/bpi/;
@@ -5910,7 +6706,8 @@ a certain number of digits:
print "$z\n";
print $z->precision(),"\n"; # 4
-Replacing L</precision()> with L</accuracy()> is probably not what you want, either:
+Replacing L</precision()> with L</accuracy()> is probably not what you want,
+either:
use Math::BigFloat;
@@ -5944,8 +6741,7 @@ influence any further operation.
Please report any bugs or feature requests to
C<bug-math-bigint at rt.cpan.org>, or through the web interface at
-L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
-(requires login).
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt> (requires login).
We will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
@@ -5959,17 +6755,13 @@ 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
+=item * GitHub
-L<http://annocpan.org/dist/Math-BigInt>
+L<https://github.com/pjacklam/p5-Math-BigInt>
-=item * CPAN Ratings
+=item * RT: CPAN's request tracker
-L<https://cpanratings.perl.org/dist/Math-BigInt>
+L<https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt>
=item * MetaCPAN
@@ -5979,6 +6771,10 @@ L<https://metacpan.org/release/Math-BigInt>
L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+=item * CPAN Ratings
+
+L<https://cpanratings.perl.org/dist/Math-BigInt>
+
=item * The Bignum mailing list
=over 4
@@ -6006,11 +6802,10 @@ the same terms as Perl itself.
=head1 SEE ALSO
-L<Math::BigFloat> and L<Math::BigInt> as well as the backends
+L<Math::BigInt> 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.
+The pragmas L<bignum>, L<bigint> and L<bigrat>.
=head1 AUTHORS
@@ -6030,7 +6825,7 @@ Florian Ragwitz E<lt>flora@cpan.orgE<gt>, 2010.
=item *
-Peter John Acklam E<lt>pjacklam@online.noE<gt>, 2011-.
+Peter John Acklam E<lt>pjacklam@gmail.comE<gt>, 2011-.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm
index 2fc069370a..14baa9f292 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm
@@ -1,58 +1,76 @@
-#!perl
+# -*- mode: perl; -*-
package Math::BigFloat::Trace;
-require 5.010;
use strict;
use warnings;
use Exporter;
use Math::BigFloat;
-our ($accuracy, $precision, $round_mode, $div_scale);
-
our @ISA = qw(Exporter Math::BigFloat);
-our $VERSION = '0.51';
+our $VERSION = '0.66';
use overload; # inherit overload from Math::BigFloat
# Globals
-$accuracy = $precision = undef;
-$round_mode = 'even';
-$div_scale = 40;
+our $accuracy = undef;
+our $precision = undef;
+our $round_mode = 'even';
+our $div_scale = 40;
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $value = shift;
+
my $a = $accuracy;
$a = $_[0] if defined $_[0];
+
my $p = $precision;
$p = $_[1] if defined $_[1];
- my $self = Math::BigFloat->new($value, $a, $p, $round_mode);
- # remember, downgrading may return a BigInt, so don't meddle with class
- # bless $self, $class;
+ my $self = $class -> SUPER::new($value, $a, $p, $round_mode);
+
+ printf "Math::BigFloat new '%s' => '%s' (%s)\n",
+ $value, $self, ref($self);
- print "MBF new '$value' => '$self' (", ref($self), ")";
return $self;
}
sub import {
- print "MBF import ", join(' ', @_);
- my $self = shift;
+ my $class = shift;
+
+ printf "%s -> import(%s)\n", $class, join(", ", @_);
+
+ # we catch the constants, the rest goes to parent
+
+ my $constant = grep { $_ eq ':constant' } @_;
+ my @a = grep { $_ ne ':constant' } @_;
+
+ if ($constant) {
+ overload::constant
+
+ integer => sub {
+ $class -> new(shift);
+ },
+
+ float => sub {
+ $class -> new(shift);
+ },
- # we catch the constants, the rest goes go BigFloat
- my @a = ();
- foreach (@_) {
- push @a, $_ if $_ ne ':constant';
+ binary => sub {
+ # E.g., a literal 0377 shall result in an object whose value
+ # is decimal 255, but new("0377") returns decimal 377.
+ return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/;
+ $class -> new(shift);
+ };
}
- overload::constant float => sub { $self->new(shift); };
- Math::BigFloat->import(@a); # need it for subclasses
-# $self->export_to_level(1,$self,@_); # need this ?
+ $class -> SUPER::import(@a); # need it for subclasses
+ #$self -> export_to_level(1, $class, @_); # need this ?
}
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm
index 185f802835..65e14467bb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm
@@ -20,9 +20,11 @@ use 5.006001;
use strict;
use warnings;
-use Carp qw< carp croak >;
+use Carp qw< carp croak >;
+use Scalar::Util qw< blessed refaddr >;
-our $VERSION = '1.999818';
+our $VERSION = '1.999837';
+$VERSION =~ tr/_//d;
require Exporter;
our @ISA = qw(Exporter);
@@ -45,44 +47,43 @@ use overload
'+' => sub { $_[0] -> copy() -> badd($_[1]); },
- '-' => sub { my $c = $_[0] -> copy;
+ '-' => sub { my $c = $_[0] -> copy();
$_[2] ? $c -> bneg() -> badd($_[1])
: $c -> bsub($_[1]); },
'*' => sub { $_[0] -> copy() -> bmul($_[1]); },
'/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
- : $_[0] -> copy -> bdiv($_[1]); },
+ : $_[0] -> copy() -> bdiv($_[1]); },
'%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
- : $_[0] -> copy -> bmod($_[1]); },
-
+ : $_[0] -> copy() -> bmod($_[1]); },
'**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
- : $_[0] -> copy -> bpow($_[1]); },
+ : $_[0] -> copy() -> bpow($_[1]); },
'<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
- : $_[0] -> copy -> blsft($_[1]); },
+ : $_[0] -> copy() -> blsft($_[1]); },
'>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
- : $_[0] -> copy -> brsft($_[1]); },
+ : $_[0] -> copy() -> brsft($_[1]); },
# overload key: assign
- '+=' => sub { $_[0]->badd($_[1]); },
+ '+=' => sub { $_[0] -> badd($_[1]); },
- '-=' => sub { $_[0]->bsub($_[1]); },
+ '-=' => sub { $_[0] -> bsub($_[1]); },
- '*=' => sub { $_[0]->bmul($_[1]); },
+ '*=' => sub { $_[0] -> bmul($_[1]); },
- '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+ '/=' => sub { scalar $_[0] -> bdiv($_[1]); },
- '%=' => sub { $_[0]->bmod($_[1]); },
+ '%=' => sub { $_[0] -> bmod($_[1]); },
- '**=' => sub { $_[0]->bpow($_[1]); },
+ '**=' => sub { $_[0] -> bpow($_[1]); },
- '<<=' => sub { $_[0]->blsft($_[1]); },
+ '<<=' => sub { $_[0] -> blsft($_[1]); },
- '>>=' => sub { $_[0]->brsft($_[1]); },
+ '>>=' => sub { $_[0] -> brsft($_[1]); },
# 'x=' => sub { },
@@ -116,13 +117,13 @@ use overload
# overload key: str_comparison
-# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
# : $_[0] -> bstrlt($_[1]); },
#
# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
# : $_[0] -> bstrle($_[1]); },
#
-# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
# : $_[0] -> bstrgt($_[1]); },
#
# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
@@ -135,17 +136,17 @@ use overload
# overload key: binary
'&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
- : $_[0] -> copy -> band($_[1]); },
+ : $_[0] -> copy() -> band($_[1]); },
'&=' => sub { $_[0] -> band($_[1]); },
'|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
- : $_[0] -> copy -> bior($_[1]); },
+ : $_[0] -> copy() -> bior($_[1]); },
'|=' => sub { $_[0] -> bior($_[1]); },
'^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
- : $_[0] -> copy -> bxor($_[1]); },
+ : $_[0] -> copy() -> bxor($_[1]); },
'^=' => sub { $_[0] -> bxor($_[1]); },
@@ -182,9 +183,9 @@ use overload
'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
: $_[0] -> copy() -> batan2($_[1]); },
- 'cos' => sub { $_[0] -> copy -> bcos(); },
+ 'cos' => sub { $_[0] -> copy() -> bcos(); },
- 'sin' => sub { $_[0] -> copy -> bsin(); },
+ 'sin' => sub { $_[0] -> copy() -> bsin(); },
'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
@@ -204,7 +205,7 @@ use overload
'0+' => sub { $_[0] -> numify(); },
- '=' => sub { $_[0]->copy(); },
+ '=' => sub { $_[0] -> copy(); },
;
@@ -214,7 +215,8 @@ use overload
# These vars are public, but their direct usage is not recommended, use the
# accessor methods instead
-our $round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'
+# $round_mode is 'even', 'odd', '+inf', '-inf', 'zero', 'trunc', or 'common'.
+our $round_mode = 'even';
our $accuracy = undef;
our $precision = undef;
our $div_scale = 40;
@@ -228,11 +230,14 @@ our $_trap_inf = 0; # are infs ok? set w/ config()
my $nan = 'NaN'; # constants for easier life
-my $LIB = 'Math::BigInt::Calc'; # module to do the low level math
- # default is Calc.pm
-my $IMPORT = 0; # was import() called yet?
- # used to make require work
-my %CALLBACKS; # callbacks to notify on lib loads
+# Module to do the low level math.
+
+my $DEFAULT_LIB = 'Math::BigInt::Calc';
+my $LIB;
+
+# Has import() been called yet? Needed to make "require" work.
+
+my $IMPORT = 0;
##############################################################################
# the old code had $rnd_mode, so we need to support it, too
@@ -257,9 +262,9 @@ BEGIN {
tie $rnd_mode, 'Math::BigInt';
# set up some handy alias names
- *as_int = \&as_number;
*is_pos = \&is_positive;
*is_neg = \&is_negative;
+ *as_number = \&as_int;
}
###############################################################################
@@ -267,18 +272,24 @@ BEGIN {
###############################################################################
sub round_mode {
- no strict 'refs';
- # make Class->round_mode() work
my $self = shift;
my $class = ref($self) || $self || __PACKAGE__;
- if (defined $_[0]) {
+
+ if (@_) { # setter
my $m = shift;
- if ($m !~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/) {
- croak("Unknown round mode '$m'");
- }
- return ${"${class}::round_mode"} = $m;
+ croak("The value for 'round_mode' must be defined")
+ unless defined $m;
+ croak("Unknown round mode '$m'")
+ unless $m =~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/;
+ no strict 'refs';
+ ${"${class}::round_mode"} = $m;
+ }
+
+ else { # getter
+ no strict 'refs';
+ my $m = ${"${class}::round_mode"};
+ defined($m) ? $m : $round_mode;
}
- ${"${class}::round_mode"};
}
sub upgrade {
@@ -286,6 +297,7 @@ sub upgrade {
# make Class->upgrade() work
my $self = shift;
my $class = ref($self) || $self || __PACKAGE__;
+
# need to set new value?
if (@_ > 0) {
return ${"${class}::upgrade"} = $_[0];
@@ -306,17 +318,23 @@ sub downgrade {
}
sub div_scale {
- no strict 'refs';
- # make Class->div_scale() work
my $self = shift;
my $class = ref($self) || $self || __PACKAGE__;
- if (defined $_[0]) {
- if ($_[0] < 0) {
- croak('div_scale must be greater than zero');
- }
- ${"${class}::div_scale"} = $_[0];
+
+ if (@_) { # setter
+ my $ds = shift;
+ croak("The value for 'div_scale' must be defined") unless defined $ds;
+ croak("The value for 'div_scale' must be positive") unless $ds > 0;
+ $ds = $ds -> numify() if defined(blessed($ds));
+ no strict 'refs';
+ ${"${class}::div_scale"} = $ds;
+ }
+
+ else { # getter
+ no strict 'refs';
+ my $ds = ${"${class}::div_scale"};
+ defined($ds) ? $ds : $div_scale;
}
- ${"${class}::div_scale"};
}
sub accuracy {
@@ -344,11 +362,11 @@ sub accuracy {
if (ref($x)) {
# Set instance variable.
- $x->bround($a) if $a; # not for undef, 0
+ $x = $x->bround($a) if $a; # not for undef, 0
$x->{_a} = $a; # set/overwrite, even if not rounded
delete $x->{_p}; # clear P
# Why return class variable here? Fixme!
- $a = ${"${class}::accuracy"} unless defined $a; # proper return value
+ $a = ${"${class}::accuracy"} unless defined $a;
} else {
# Set class variable.
${"${class}::accuracy"} = $a; # set global A
@@ -359,7 +377,7 @@ sub accuracy {
}
# Return instance variable.
- return $x->{_a} if ref($x) && (defined $x->{_a} || defined $x->{_p});
+ return $x->{_a} if ref($x) && (defined($x->{_a}) || defined($x->{_p}));
# Return class variable.
return ${"${class}::accuracy"};
@@ -386,11 +404,11 @@ sub precision {
if (ref($x)) {
# Set instance variable.
- $x->bfround($p) if $p; # not for undef, 0
+ $x = $x->bfround($p) if $p; # not for undef, 0
$x->{_p} = $p; # set/overwrite, even if not rounded
delete $x->{_a}; # clear A
# Why return class variable here? Fixme!
- $p = ${"${class}::precision"} unless defined $p; # proper return value
+ $p = ${"${class}::precision"} unless defined $p;
} else {
# Set class variable.
${"${class}::precision"} = $p; # set global P
@@ -401,7 +419,7 @@ sub precision {
}
# Return instance variable.
- return $x->{_p} if ref($x) && (defined $x->{_a} || defined $x->{_p});
+ return $x->{_p} if ref($x) && (defined($x->{_a}) || defined($x->{_p}));
# Return class variable.
return ${"${class}::precision"};
@@ -530,183 +548,195 @@ sub new {
my $selfref = ref $self;
my $class = $selfref || $self;
- # The POD says:
- #
- # "Currently, Math::BigInt->new() defaults to 0, while Math::BigInt->new('')
- # results in 'NaN'. This might change in the future, so use always the
- # following explicit forms to get a zero or NaN:
- # $zero = Math::BigInt->bzero();
- # $nan = Math::BigInt->bnan();
- #
- # But although this use has been discouraged for more than 10 years, people
- # apparently still use it, so we still support it.
+ # Make "require" work.
- return $self->bzero() unless @_;
+ $class -> import() if $IMPORT == 0;
- my ($wanted, $a, $p, $r) = @_;
+ # Calling new() with no input arguments has been discouraged for more than
+ # 10 years, but people apparently still use it, so we still support it.
- # Always return a new object, so if called as an instance method, copy the
- # invocand, and if called as a class method, initialize a new object.
+ return $class -> bzero() unless @_;
- $self = $selfref ? $self -> copy()
- : bless {}, $class;
+ my ($wanted, @r) = @_;
- unless (defined $wanted) {
- #carp("Use of uninitialized value in new()");
- return $self->bzero($a, $p, $r);
+ if (!defined($wanted)) {
+ #carp("Use of uninitialized value in new()")
+ # if warnings::enabled("uninitialized");
+ return $class -> bzero(@r);
}
- if (ref($wanted) && $wanted->isa($class)) { # MBI or subclass
- # Using "$copy = $wanted -> copy()" here fails some tests. Fixme!
- my $copy = $class -> copy($wanted);
- if ($selfref) {
- %$self = %$copy;
- } else {
- $self = $copy;
- }
- return $self;
+ if (!ref($wanted) && $wanted eq "") {
+ #carp(q|Argument "" isn't numeric in new()|)
+ # if warnings::enabled("numeric");
+ #return $class -> bzero(@r);
+ return $class -> bnan(@r);
}
- $class->import() if $IMPORT == 0; # make require work
+ # Initialize a new object.
+
+ $self = bless {}, $class;
+
+ # Math::BigInt or subclass
+
+ if (defined(blessed($wanted)) && $wanted -> isa($class)) {
+
+ # Don't copy the accuracy and precision, because a new object should get
+ # them from the global configuration.
+
+ $self -> {sign} = $wanted -> {sign};
+ $self -> {value} = $LIB -> _copy($wanted -> {value});
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+ return $self;
+ }
# Shortcut for non-zero scalar integers with no non-zero exponent.
- if (!ref($wanted) &&
- $wanted =~ / ^
- ([+-]?) # optional sign
- ([1-9][0-9]*) # non-zero significand
- (\.0*)? # ... with optional zero fraction
- ([Ee][+-]?0+)? # optional zero exponent
- \z
- /x)
+ if ($wanted =~
+ / ^
+ ( [+-]? ) # optional sign
+ ( [1-9] [0-9]* ) # non-zero significand
+ ( \.0* )? # ... with optional zero fraction
+ ( [Ee] [+-]? 0+ )? # optional zero exponent
+ \z
+ /x)
{
my $sgn = $1;
my $abs = $2;
$self->{sign} = $sgn || '+';
$self->{value} = $LIB->_new($abs);
-
- no strict 'refs';
- if (defined($a) || defined($p)
- || defined(${"${class}::precision"})
- || defined(${"${class}::accuracy"}))
- {
- $self->round($a, $p, $r)
- unless @_ >= 3 && !defined $a && !defined $p;
- }
-
+ $self = $self->round(@r);
return $self;
}
# Handle Infs.
- if ($wanted =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
+ if ($wanted =~ / ^
+ \s*
+ ( [+-]? )
+ inf (?: inity )?
+ \s*
+ \z
+ /ix)
+ {
my $sgn = $1 || '+';
- $self->{sign} = $sgn . 'inf'; # set a default sign for bstr()
- return $class->binf($sgn);
+ return $class -> binf($sgn, @r);
}
# Handle explicit NaNs (not the ones returned due to invalid input).
- if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
- $self = $class -> bnan();
- $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
- return $self;
+ if ($wanted =~ / ^
+ \s*
+ ( [+-]? )
+ nan
+ \s*
+ \z
+ /ix)
+ {
+ return $class -> bnan(@r);
}
- # Handle hexadecimal numbers.
+ my @parts;
- if ($wanted =~ /^\s*[+-]?0[Xx]/) {
- $self = $class -> from_hex($wanted);
- $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
- return $self;
- }
+ if (
+ # Handle hexadecimal numbers. We auto-detect hexadecimal numbers if they
+ # have a "0x", "0X", "x", or "X" prefix, cf. CORE::oct().
- # Handle binary numbers.
+ $wanted =~ /^\s*[+-]?0?[Xx]/ and
+ @parts = $class -> _hex_str_to_flt_lib_parts($wanted)
- if ($wanted =~ /^\s*[+-]?0[Bb]/) {
- $self = $class -> from_bin($wanted);
- $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
- return $self;
- }
+ or
- # Split string into mantissa, exponent, integer, fraction, value, and sign.
- my ($mis, $miv, $mfv, $es, $ev) = _split($wanted);
- if (!ref $mis) {
- if ($_trap_nan) {
- croak("$wanted is not a number in $class");
- }
- $self->{value} = $LIB->_zero();
- $self->{sign} = $nan;
- return $self;
- }
+ # Handle octal numbers. We auto-detect octal numbers if they have a
+ # "0o", "0O", "o", "O" prefix, cf. CORE::oct().
- if (!ref $miv) {
- # _from_hex or _from_bin
- $self->{value} = $mis->{value};
- $self->{sign} = $mis->{sign};
- return $self; # throw away $mis
- }
+ $wanted =~ /^\s*[+-]?0?[Oo]/ and
+ @parts = $class -> _oct_str_to_flt_lib_parts($wanted)
- # Make integer from mantissa by adjusting exponent, then convert to a
- # Math::BigInt.
- $self->{sign} = $$mis; # store sign
- $self->{value} = $LIB->_zero(); # for all the NaN cases
- my $e = int("$$es$$ev"); # exponent (avoid recursion)
- if ($e > 0) {
- my $diff = $e - CORE::length($$mfv);
- if ($diff < 0) { # Not integer
- if ($_trap_nan) {
- croak("$wanted not an integer in $class");
- }
- #print "NOI 1\n";
- return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
- $self->{sign} = $nan;
- } else { # diff >= 0
- # adjust fraction and add it to value
- #print "diff > 0 $$miv\n";
- $$miv = $$miv . ($$mfv . '0' x $diff);
+ or
+
+ # Handle binary numbers. We auto-detect binary numbers if they have a
+ # "0b", "0B", "b", or "B" prefix, cf. CORE::oct().
+
+ $wanted =~ /^\s*[+-]?0?[Bb]/ and
+ @parts = $class -> _bin_str_to_flt_lib_parts($wanted)
+
+ or
+
+ # At this point, what is left are decimal numbers that aren't handled
+ # above and octal floating point numbers that don't have any of the
+ # "0o", "0O", "o", or "O" prefixes. First see if it is a decimal number.
+
+ @parts = $class -> _dec_str_to_flt_lib_parts($wanted)
+ or
+
+ # See if it is an octal floating point number. The extra check is
+ # included because _oct_str_to_flt_lib_parts() accepts octal numbers
+ # that don't have a prefix (this is needed to make it work with, e.g.,
+ # from_oct() that don't require a prefix). However, Perl requires a
+ # prefix for octal floating point literals. For example, "1p+0" is not
+ # valid, but "01p+0" and "0__1p+0" are.
+
+ $wanted =~ /^\s*[+-]?0_*\d/ and
+ @parts = $class -> _oct_str_to_flt_lib_parts($wanted))
+ {
+ # The value is an integer iff the exponent is non-negative.
+
+ if ($parts[2] eq '+') {
+ $self -> {sign} = $parts[0];
+ $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10);
+ $self = $self->round(@r)
+ unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+ return $self;
}
+
+ # The value is not an integer, so upgrade if upgrading is enabled.
+
+ return $upgrade -> new($wanted, @r) if defined $upgrade;
}
- else {
- if ($$mfv ne '') { # e <= 0
- # fraction and negative/zero E => NOI
- if ($_trap_nan) {
- croak("$wanted not an integer in $class");
- }
- #print "NOI 2 \$\$mfv '$$mfv'\n";
- return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
- $self->{sign} = $nan;
- } elsif ($e < 0) {
- # xE-y, and empty mfv
- # Split the mantissa at the decimal point. E.g., if
- # $$miv = 12345 and $e = -2, then $frac = 45 and $$miv = 123.
-
- my $frac = substr($$miv, $e); # $frac is fraction part
- substr($$miv, $e) = ""; # $$miv is now integer part
-
- if ($frac =~ /[^0]/) {
- if ($_trap_nan) {
- croak("$wanted not an integer in $class");
- }
- #print "NOI 3\n";
- return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
- $self->{sign} = $nan;
- }
+ # If we get here, the value is neither a valid decimal, binary, octal, or
+ # hexadecimal number. It is not explicit an Inf or a NaN either.
+
+ return $class -> bnan(@r);
+}
+
+# Create a Math::BigInt from a decimal string. This is an equivalent to
+# from_hex(), from_oct(), and from_bin(). It is like new() except that it does
+# not accept anything but a string representing a finite decimal number.
+
+sub from_dec {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return $self if $selfref && $self->modify('from_dec');
+
+ my $str = shift;
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero(@r) unless $selfref;
+
+ if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+
+ # The value is an integer iff the exponent is non-negative.
+
+ if ($parts[2] eq '+') {
+ $self -> {sign} = $parts[0];
+ $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10);
+ return $self -> round(@r);
}
- }
- unless ($self->{sign} eq $nan) {
- $self->{sign} = '+' if $$miv eq '0'; # normalize -0 => +0
- $self->{value} = $LIB->_new($$miv) if $self->{sign} =~ /^[+-]$/;
- }
+ # The value is not an integer, so upgrade if upgrading is enabled.
- # If any of the globals are set, use them to round, and store them inside
- # $self. Do not round for new($x, undef, undef) since that is used by MBF
- # to signal no rounding.
+ return $upgrade -> new($str, @r) if defined $upgrade;
+ }
- $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
- $self;
+ return $self -> bnan(@r);
}
# Create a Math::BigInt from a hexadecimal string.
@@ -718,51 +748,31 @@ sub from_hex {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_hex');
+ return $self if $selfref && $self->modify('from_hex');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
+ $self = $class -> bzero(@r) unless $selfref;
- if ($str =~ s/
- ^
- \s*
- ( [+-]? )
- (0?x)?
- (
- [0-9a-fA-F]*
- ( _ [0-9a-fA-F]+ )*
- )
- \s*
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $3;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
+ if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) {
- # The library method requires a prefix.
+ # The value is an integer iff the exponent is non-negative.
- $self->{value} = $LIB->_from_hex('0x' . $chrs);
-
- # Place the sign.
+ if ($parts[2] eq '+') {
+ $self -> {sign} = $parts[0];
+ $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10);
+ return $self -> round(@r);
+ }
- $self->{sign} = $sign eq '-' && ! $LIB->_is_zero($self->{value})
- ? '-' : '+';
+ # The value is not an integer, so upgrade if upgrading is enabled.
- return $self;
+ return $upgrade -> new($str, @r) if defined $upgrade;
}
- # CORE::hex() parses as much as it can, and ignores any trailing garbage.
- # For backwards compatibility, we return NaN.
-
- return $self->bnan();
+ return $self -> bnan(@r);
}
# Create a Math::BigInt from an octal string.
@@ -774,50 +784,31 @@ sub from_oct {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_oct');
+ return $self if $selfref && $self->modify('from_oct');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- \s*
- ( [+-]? )
- (
- [0-7]*
- ( _ [0-7]+ )*
- )
- \s*
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $2;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
+ $self = $class -> bzero(@r) unless $selfref;
- # The library method requires a prefix.
+ if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
- $self->{value} = $LIB->_from_oct('0' . $chrs);
+ # The value is an integer iff the exponent is non-negative.
- # Place the sign.
+ if ($parts[2] eq '+') {
+ $self -> {sign} = $parts[0];
+ $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10);
+ return $self -> round(@r);
+ }
- $self->{sign} = $sign eq '-' && ! $LIB->_is_zero($self->{value})
- ? '-' : '+';
+ # The value is not an integer, so upgrade if upgrading is enabled.
- return $self;
+ return $upgrade -> new($str, @r) if defined $upgrade;
}
- # CORE::oct() parses as much as it can, and ignores any trailing garbage.
- # For backwards compatibility, we return NaN.
-
- return $self->bnan();
+ return $self -> bnan(@r);
}
# Create a Math::BigInt from a binary string.
@@ -829,52 +820,31 @@ sub from_bin {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_bin');
+ return $self if $selfref && $self->modify('from_bin');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- \s*
- ( [+-]? )
- (0?b)?
- (
- [01]*
- ( _ [01]+ )*
- )
- \s*
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $3;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
+ $self = $class -> bzero(@r) unless $selfref;
- # The library method requires a prefix.
+ if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
- $self->{value} = $LIB->_from_bin('0b' . $chrs);
+ # The value is an integer iff the exponent is non-negative.
- # Place the sign.
+ if ($parts[2] eq '+') {
+ $self -> {sign} = $parts[0];
+ $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10);
+ return $self -> round(@r);
+ }
- $self->{sign} = $sign eq '-' && ! $LIB->_is_zero($self->{value})
- ? '-' : '+';
+ # The value is not an integer, so upgrade if upgrading is enabled.
- return $self;
+ return $upgrade -> new($str, @r) if defined $upgrade;
}
- # For consistency with from_hex() and from_oct(), we return NaN when the
- # input is invalid.
-
- return $self->bnan();
-
+ return $self -> bnan(@r);
}
# Create a Math::BigInt from a byte string.
@@ -886,19 +856,20 @@ sub from_bytes {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_bytes');
+ return $self if $selfref && $self->modify('from_bytes');
croak("from_bytes() requires a newer version of the $LIB library.")
unless $LIB->can('_from_bytes');
my $str = shift;
+ my @r = @_;
# If called as a class method, initialize a new object.
- $self = $class -> bzero() unless $selfref;
+ $self = $class -> bzero(@r) unless $selfref;
$self -> {sign} = '+';
$self -> {value} = $LIB -> _from_bytes($str);
- return $self;
+ return $self -> round(@r);
}
sub from_base {
@@ -908,11 +879,10 @@ sub from_base {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('from_base');
+ return $self if $selfref && $self->modify('from_base');
- my $str = shift;
+ my ($str, $base, $cs, @r) = @_; # $cs is the collation sequence
- my $base = shift;
$base = $class->new($base) unless ref($base);
croak("the base must be a finite integer >= 2")
@@ -925,14 +895,15 @@ sub from_base {
# If no collating sequence is given, pass some of the conversions to
# methods optimized for those cases.
- if (! @_) {
- return $self -> from_bin($str) if $base == 2;
- return $self -> from_oct($str) if $base == 8;
- return $self -> from_hex($str) if $base == 16;
+ unless (defined $cs) {
+ return $self -> from_bin($str, @r) if $base == 2;
+ return $self -> from_oct($str, @r) if $base == 8;
+ return $self -> from_hex($str, @r) if $base == 16;
if ($base == 10) {
- my $tmp = $class -> new($str);
+ my $tmp = $class -> from_dec($str, @r);
$self -> {value} = $tmp -> {value};
$self -> {sign} = '+';
+ return $self -> bround(@r);
}
}
@@ -941,16 +912,61 @@ sub from_base {
$self -> {sign} = '+';
$self -> {value}
- = $LIB->_from_base($str, $base -> {value}, @_ ? shift() : ());
- return $self
+ = $LIB->_from_base($str, $base -> {value}, defined($cs) ? $cs : ());
+ return $self -> bround(@r);
+}
+
+sub from_base_num {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return $self if $selfref && $self->modify('from_base_num');
+
+ # Make sure we have an array of non-negative, finite, numerical objects.
+
+ my $nums = shift;
+ $nums = [ @$nums ]; # create new reference
+
+ for my $i (0 .. $#$nums) {
+ # Make sure we have an object.
+ $nums -> [$i] = $class -> new($nums -> [$i])
+ unless ref($nums -> [$i]) && $nums -> [$i] -> isa($class);
+ # Make sure we have a finite, non-negative integer.
+ croak "the elements must be finite non-negative integers"
+ if $nums -> [$i] -> is_neg() || ! $nums -> [$i] -> is_int();
+ }
+
+ my $base = shift;
+ $base = $class -> new($base) unless ref($base) && $base -> isa($class);
+
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero(@r) unless $selfref;
+
+ croak("from_base_num() requires a newer version of the $LIB library.")
+ unless $LIB->can('_from_base_num');
+
+ $self -> {sign} = '+';
+ $self -> {value} = $LIB -> _from_base_num([ map { $_ -> {value} } @$nums ],
+ $base -> {value});
+
+ return $self -> round(@r);
}
sub bzero {
# create/assign '+0'
- if (@_ == 0) {
- #carp("Using bzero() as a function is deprecated;",
- # " use bzero() as a method instead");
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -962,7 +978,13 @@ sub bzero {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('bzero');
+ return $self if $selfref && $self->modify('bzero');
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
$self = bless {}, $class unless $selfref;
@@ -970,19 +992,17 @@ sub bzero {
$self->{value} = $LIB->_zero();
# If rounding parameters are given as arguments, use them. If no rounding
- # parameters are given, and if called as a class method initialize the new
+ # parameters are given, and if called as a class method, initialize the new
# instance with the class variables.
- if (@_) {
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
$self->{_a} = $_[0];
$self->{_p} = $_[1];
- } else {
- unless($selfref) {
- $self->{_a} = $class -> accuracy();
- $self->{_p} = $class -> precision();
- }
+ } elsif (!$selfref) {
+ $self->{_a} = $class -> accuracy();
+ $self->{_p} = $class -> precision();
}
return $self;
@@ -991,9 +1011,12 @@ sub bzero {
sub bone {
# Create or assign '+1' (or -1 if given sign '-').
- if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
- #carp("Using bone() as a function is deprecated;",
- # " use bone() as a method instead");
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -1005,33 +1028,38 @@ sub bone {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('bone');
+ return $self if $selfref && $self->modify('bone');
+
+ my ($sign, @r) = @_;
- my $sign = '+'; # default
- if (@_) {
- $sign = shift;
- $sign = $sign =~ /^\s*-/ ? "-" : "+";
+ # Get the sign.
+
+ if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) {
+ $sign = $1;
+ shift;
+ } else {
+ $sign = '+';
}
+ # If called as a class method, initialize a new object.
+
$self = bless {}, $class unless $selfref;
$self->{sign} = $sign;
$self->{value} = $LIB->_one();
# If rounding parameters are given as arguments, use them. If no rounding
- # parameters are given, and if called as a class method initialize the new
+ # parameters are given, and if called as a class method, initialize the new
# instance with the class variables.
- if (@_) {
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
$self->{_a} = $_[0];
$self->{_p} = $_[1];
- } else {
- unless($selfref) {
- $self->{_a} = $class -> accuracy();
- $self->{_p} = $class -> precision();
- }
+ } elsif (!$selfref) {
+ $self->{_a} = $class -> accuracy();
+ $self->{_p} = $class -> precision();
}
return $self;
@@ -1040,11 +1068,12 @@ sub bone {
sub binf {
# create/assign a '+inf' or '-inf'
- if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
- $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
{
- #carp("Using binf() as a function is deprecated;",
- # " use binf() as a method instead");
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -1063,10 +1092,21 @@ sub binf {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('binf');
+ return $self if $selfref && $self->modify('binf');
- my $sign = shift;
- $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+ # Get the sign.
+
+ my $sign = '+'; # default is to return positive infinity
+ if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) {
+ $sign = $1;
+ shift;
+ }
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
+
+ # If called as a class method, initialize a new object.
$self = bless {}, $class unless $selfref;
@@ -1074,19 +1114,17 @@ sub binf {
$self -> {value} = $LIB -> _zero();
# If rounding parameters are given as arguments, use them. If no rounding
- # parameters are given, and if called as a class method initialize the new
+ # parameters are given, and if called as a class method, initialize the new
# instance with the class variables.
- if (@_) {
+ if (@r) {
croak "can't specify both accuracy and precision"
- if @_ >= 2 && defined $_[0] && defined $_[1];
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
$self->{_a} = $_[0];
$self->{_p} = $_[1];
- } else {
- unless($selfref) {
- $self->{_a} = $class -> accuracy();
- $self->{_p} = $class -> precision();
- }
+ } elsif (!$selfref) {
+ $self->{_a} = $class -> accuracy();
+ $self->{_p} = $class -> precision();
}
return $self;
@@ -1095,9 +1133,12 @@ sub binf {
sub bnan {
# create/assign a 'NaN'
- if (@_ == 0) {
- #carp("Using bnan() as a function is deprecated;",
- # " use bnan() as a method instead");
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
unshift @_, __PACKAGE__;
}
@@ -1116,57 +1157,173 @@ sub bnan {
# Don't modify constant (read-only) objects.
- return if $selfref && $self->modify('bnan');
+ return $self if $selfref && $self->modify('bnan');
+
+ # Get the rounding parameters, if any.
+
+ my @r = @_;
$self = bless {}, $class unless $selfref;
$self -> {sign} = $nan;
$self -> {value} = $LIB -> _zero();
+ # If rounding parameters are given as arguments, use them. If no rounding
+ # parameters are given, and if called as a class method, initialize the new
+ # instance with the class variables.
+
+ if (@r) {
+ croak "can't specify both accuracy and precision"
+ if @r >= 2 && defined($r[0]) && defined($r[1]);
+ $self->{_a} = $_[0];
+ $self->{_p} = $_[1];
+ } elsif (!$selfref) {
+ $self->{_a} = $class -> accuracy();
+ $self->{_p} = $class -> precision();
+ }
+
return $self;
}
sub bpi {
- # Calculate PI to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer, that is, always returns '3'.
- my ($self, $n) = @_;
- if (@_ == 1) {
- # called like Math::BigInt::bpi(10);
- $n = $self;
- $self = __PACKAGE__;
- }
- $self = ref($self) if ref($self);
- return $upgrade->new($n) if defined $upgrade;
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
+ unshift @_, __PACKAGE__;
+ }
- # hard-wired to "3"
- $self->new(3);
-}
+ # Called as Argument list
+ # --------- -------------
+ # Math::BigFloat->bpi() ("Math::BigFloat")
+ # Math::BigFloat->bpi(10) ("Math::BigFloat", 10)
+ # $x->bpi() ($x)
+ # $x->bpi(10) ($x, 10)
+ # Math::BigFloat::bpi() ()
+ # Math::BigFloat::bpi(10) (10)
+ #
+ # In ambiguous cases, we favour the OO-style, so the following case
+ #
+ # $n = Math::BigFloat->new("10");
+ # $x = Math::BigFloat->bpi($n);
+ #
+ # which gives an argument list with the single element $n, is resolved as
+ #
+ # $n->bpi();
-sub copy {
my $self = shift;
my $selfref = ref $self;
my $class = $selfref || $self;
+ my @r = @_; # rounding paramters
+
+ if ($selfref) { # bpi() called as an instance method
+ return $self if $self -> modify('bpi');
+ } else { # bpi() called as a class method
+ $self = bless {}, $class; # initialize new instance
+ }
+
+ return $upgrade -> bpi(@r) if defined $upgrade;
+
+ # hard-wired to "3"
+ $self -> {sign} = '+';
+ $self -> {value} = $LIB -> _new("3");
+ $self = $self -> round(@r);
+ return $self;
+}
- # If called as a class method, the object to copy is the next argument.
+sub copy {
+ my ($x, $class);
+ if (ref($_[0])) { # $y = $x -> copy()
+ $x = shift;
+ $class = ref($x);
+ } else { # $y = Math::BigInt -> copy($y)
+ $class = shift;
+ $x = shift;
+ }
- $self = shift() unless $selfref;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @_;
my $copy = bless {}, $class;
- $copy->{sign} = $self->{sign};
- $copy->{value} = $LIB->_copy($self->{value});
- $copy->{_a} = $self->{_a} if exists $self->{_a};
- $copy->{_p} = $self->{_p} if exists $self->{_p};
+ $copy->{sign} = $x->{sign};
+ $copy->{value} = $LIB->_copy($x->{value});
+ $copy->{_a} = $x->{_a} if exists $x->{_a};
+ $copy->{_p} = $x->{_p} if exists $x->{_p};
return $copy;
}
-sub as_number {
- # An object might be asked to return itself as bigint on certain overloaded
- # operations. This does exactly this, so that sub classes can simple inherit
- # it or override with their own integer conversion routine.
- $_[0]->copy();
+sub as_int {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # If called as an instance method, and the instance class is something we
+ # upgrade to, $x might not be a Math::BigInt, so don't just call copy().
+
+ return $x -> copy() if $x -> isa("Math::BigInt");
+
+ # disable upgrading and downgrading
+
+ my $upg = Math::BigInt -> upgrade();
+ my $dng = Math::BigInt -> downgrade();
+ Math::BigInt -> upgrade(undef);
+ Math::BigInt -> downgrade(undef);
+
+ my $y = Math::BigInt -> new($x);
+
+ # reset upgrading and downgrading
+
+ Math::BigInt -> upgrade($upg);
+ Math::BigInt -> downgrade($dng);
+
+ return $y;
+}
+
+sub as_float {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # disable upgrading and downgrading
+
+ require Math::BigFloat;
+ my $upg = Math::BigFloat -> upgrade();
+ my $dng = Math::BigFloat -> downgrade();
+ Math::BigFloat -> upgrade(undef);
+ Math::BigFloat -> downgrade(undef);
+
+ my $y = Math::BigFloat -> new($x);
+
+ # reset upgrading and downgrading
+
+ Math::BigFloat -> upgrade($upg);
+ Math::BigFloat -> downgrade($dng);
+
+ return $y;
+}
+
+sub as_rat {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # disable upgrading and downgrading
+
+ require Math::BigRat;
+ my $upg = Math::BigRat -> upgrade();
+ my $dng = Math::BigRat -> downgrade();
+ Math::BigRat -> upgrade(undef);
+ Math::BigRat -> downgrade(undef);
+
+ my $y = Math::BigRat -> new($x);
+
+ # reset upgrading and downgrading
+
+ Math::BigRat -> upgrade($upg);
+ Math::BigRat -> downgrade($dng);
+
+ return $y;
}
###############################################################################
@@ -1175,7 +1332,7 @@ sub as_number {
sub is_zero {
# return true if arg (BINT or num_str) is zero (array '+', '0')
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
$LIB->_is_zero($x->{value});
@@ -1183,22 +1340,22 @@ sub is_zero {
sub is_one {
# return true if arg (BINT or num_str) is +1, or -1 if sign is given
- my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
- $sign = '+' if !defined $sign || $sign ne '-';
+ $sign = '+' if !defined($sign) || $sign ne '-';
return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
$LIB->_is_one($x->{value});
}
sub is_finite {
- my $x = shift;
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return $x->{sign} eq '+' || $x->{sign} eq '-';
}
sub is_inf {
# return true if arg (BINT or num_str) is +-inf
- my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
if (defined $sign) {
$sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
@@ -1210,14 +1367,14 @@ sub is_inf {
sub is_nan {
# return true if arg (BINT or num_str) is NaN
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
$x->{sign} eq $nan ? 1 : 0;
}
sub is_positive {
# return true when arg (BINT or num_str) is positive (> 0)
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return 1 if $x->{sign} eq '+inf'; # +inf is positive
@@ -1227,14 +1384,14 @@ sub is_positive {
sub is_negative {
# return true when arg (BINT or num_str) is negative (< 0)
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
$x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
}
sub is_non_negative {
# Return true if argument is non-negative (>= 0).
- my ($class, $x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return 1 if $x->{sign} =~ /^\+/;
return 1 if $x -> is_zero();
@@ -1243,7 +1400,7 @@ sub is_non_negative {
sub is_non_positive {
# Return true if argument is non-positive (<= 0).
- my ($class, $x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return 1 if $x->{sign} =~ /^\-/;
return 1 if $x -> is_zero();
@@ -1252,7 +1409,7 @@ sub is_non_positive {
sub is_odd {
# return true when arg (BINT or num_str) is odd, false for even
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
$LIB->_is_odd($x->{value});
@@ -1260,7 +1417,7 @@ sub is_odd {
sub is_even {
# return true when arg (BINT or num_str) is even, false for odd
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
$LIB->_is_even($x->{value});
@@ -1268,8 +1425,7 @@ sub is_even {
sub is_int {
# return true when arg (BINT or num_str) is an integer
- # always true for Math::BigInt, but different for Math::BigFloat objects
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
$x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
}
@@ -1283,22 +1439,25 @@ sub bcmp {
# (BINT or num_str, BINT or num_str) return cond_code
# set up parameters
- my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
- ? (ref($_[0]), @_)
- : objectify(2, @_);
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- return $upgrade->bcmp($x, $y) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $upgrade->bcmp($x, $y)
+ if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
# handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ return if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
return +1 if $x->{sign} eq '+inf';
return -1 if $x->{sign} eq '-inf';
return -1 if $y->{sign} eq '+inf';
return +1;
}
+
# check sign for speed first
return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
@@ -1323,16 +1482,18 @@ sub bacmp {
# (BINT, BINT) return cond_code
# set up parameters
- my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
- ? (ref($_[0]), @_)
- : objectify(2, @_);
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- return $upgrade->bacmp($x, $y) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
+ return $upgrade->bacmp($x, $y)
+ if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
# handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
return -1;
@@ -1341,69 +1502,68 @@ sub bacmp {
}
sub beq {
- my $self = shift;
- my $selfref = ref $self;
+ my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (undef, @_)
+ : objectify(2, @_);
- croak 'beq() is an instance method, not a class method' unless $selfref;
- croak 'Wrong number of arguments for beq()' unless @_ == 1;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- my $cmp = $self -> bcmp(shift);
- return defined($cmp) && ! $cmp;
+ my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary
+ return defined($cmp) && !$cmp;
}
sub bne {
- my $self = shift;
- my $selfref = ref $self;
+ my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (undef, @_)
+ : objectify(2, @_);
- croak 'bne() is an instance method, not a class method' unless $selfref;
- croak 'Wrong number of arguments for bne()' unless @_ == 1;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- my $cmp = $self -> bcmp(shift);
- return defined($cmp) && ! $cmp ? '' : 1;
+ my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary
+ return defined($cmp) && !$cmp ? '' : 1;
}
sub blt {
- my $self = shift;
- my $selfref = ref $self;
+ my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (undef, @_)
+ : objectify(2, @_);
- croak 'blt() is an instance method, not a class method' unless $selfref;
- croak 'Wrong number of arguments for blt()' unless @_ == 1;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- my $cmp = $self -> bcmp(shift);
+ my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary
return defined($cmp) && $cmp < 0;
}
sub ble {
- my $self = shift;
- my $selfref = ref $self;
+ my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (undef, @_)
+ : objectify(2, @_);
- croak 'ble() is an instance method, not a class method' unless $selfref;
- croak 'Wrong number of arguments for ble()' unless @_ == 1;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- my $cmp = $self -> bcmp(shift);
+ my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary
return defined($cmp) && $cmp <= 0;
}
sub bgt {
- my $self = shift;
- my $selfref = ref $self;
+ my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (undef, @_)
+ : objectify(2, @_);
- croak 'bgt() is an instance method, not a class method' unless $selfref;
- croak 'Wrong number of arguments for bgt()' unless @_ == 1;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- my $cmp = $self -> bcmp(shift);
+ my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary
return defined($cmp) && $cmp > 0;
}
sub bge {
- my $self = shift;
- my $selfref = ref $self;
+ my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (undef, @_)
+ : objectify(2, @_);
- croak 'bge() is an instance method, not a class method'
- unless $selfref;
- croak 'Wrong number of arguments for bge()' unless @_ == 1;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- my $cmp = $self -> bcmp(shift);
+ my $cmp = $x -> bcmp($y); # bcmp() upgrades if necessary
return defined($cmp) && $cmp >= 0;
}
@@ -1414,84 +1574,104 @@ sub bge {
sub bneg {
# (BINT or num_str) return BINT
# negate number or make a negated number from string
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bneg');
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{value}));
- $x;
+ return $upgrade -> bneg($x, @r) if defined($upgrade) && !$x->isa($class);
+
+ # Don't negate +0 so we always have the normalized form +0. Does nothing for
+ # 'NaN'.
+ $x->{sign} =~ tr/+-/-+/
+ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{value});
+
+ $x -> round(@r);
}
sub babs {
# (BINT or num_str) return BINT
# make number absolute, or return absolute BINT from string
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('babs');
- # post-normalized abs for internal use (does nothing for NaN)
+
+ return $upgrade -> babs($x, @r) if defined($upgrade) && !$x->isa($class);
+
$x->{sign} =~ s/^-/+/;
- $x;
+
+ $x -> round(@r);
}
sub bsgn {
# Signum function.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- my $self = shift;
+ return $x if $x->modify('bsgn');
+
+ return $upgrade -> bsgn($x, @r) if defined($upgrade) && !$x->isa($class);
- return $self if $self->modify('bsgn');
+ return $x -> bone("+", @r) if $x -> is_pos();
+ return $x -> bone("-", @r) if $x -> is_neg();
- return $self -> bone("+") if $self -> is_pos();
- return $self -> bone("-") if $self -> is_neg();
- return $self; # zero or NaN
+ $x -> round(@r);
}
sub bnorm {
# (numstr or BINT) return BINT
# Normalize number -- no-op here
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ # This method is called from the rounding methods, so if this method
+ # supports rounding by calling the rounding methods, we get an infinite
+ # recursion.
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
$x;
}
sub binc {
# increment arg by one
- my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
return $x if $x->modify('binc');
+ return $x->round(@r) if $x -> is_inf() || $x -> is_nan();
+
+ return $upgrade -> binc($x, @r) if defined($upgrade) && !$x -> isa($class);
+
if ($x->{sign} eq '+') {
$x->{value} = $LIB->_inc($x->{value});
- return $x->round($a, $p, $r);
} elsif ($x->{sign} eq '-') {
$x->{value} = $LIB->_dec($x->{value});
$x->{sign} = '+' if $LIB->_is_zero($x->{value}); # -1 +1 => -0 => +0
- return $x->round($a, $p, $r);
}
- # inf, nan handling etc
- $x->badd($class->bone(), $a, $p, $r); # badd does round
+
+ return $x->round(@r);
}
sub bdec {
# decrement arg by one
my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
return $x if $x->modify('bdec');
+ return $x->round(@r) if $x -> is_inf() || $x -> is_nan();
+
+ return $upgrade -> bdec($x, @r) if defined($upgrade) && !$x -> isa($class);;
+
if ($x->{sign} eq '-') {
- # x already < 0
$x->{value} = $LIB->_inc($x->{value});
- } else {
- return $x->badd($class->bone('-'), @r)
- unless $x->{sign} eq '+'; # inf or NaN
- # >= 0
- if ($LIB->_is_zero($x->{value})) {
- # == 0
+ } elsif ($x->{sign} eq '+') {
+ if ($LIB->_is_zero($x->{value})) { # +1 - 1 => +0
$x->{value} = $LIB->_one();
- $x->{sign} = '-'; # 0 => -1
+ $x->{sign} = '-';
} else {
- # > 0
$x->{value} = $LIB->_dec($x->{value});
}
}
- $x->round(@r);
+
+ return $x->round(@r);
}
#sub bstrcmp {
@@ -1589,51 +1769,37 @@ sub badd {
# return result as BINT
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('badd');
- return $upgrade->badd($upgrade->new($x), $upgrade->new($y), @r) if defined $upgrade &&
- ((!$x->isa($class)) || (!$y->isa($class)));
$r[3] = $y; # no push!
- # inf and NaN handling
+
+ return $upgrade->badd($x, $y, @r)
+ if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
+
+ # Inf and NaN handling
if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
# NaN first
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
+ return $x->bnan(@r) if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # Inf handling
if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
- # +inf++inf or -inf+-inf => same, rest is NaN
- return $x if $x->{sign} eq $y->{sign};
- return $x->bnan();
+ # +Inf + +Inf or -Inf + -Inf => same, rest is NaN
+ return $x->round(@r) if $x->{sign} eq $y->{sign};
+ return $x->bnan(@r);
}
- # +-inf + something => +inf
- # something +-inf => +-inf
- $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) {
- $x->{value} = $LIB->_add($x->{value}, $y->{value}); # same sign, abs add
- } else {
- my $a = $LIB->_acmp ($y->{value}, $x->{value}); # absolute compare
- if ($a > 0) {
- $x->{value} = $LIB->_sub($y->{value}, $x->{value}, 1); # abs sub w/ swap
- $x->{sign} = $sy;
- } elsif ($a == 0) {
- # speedup, if equal, set result to 0
- $x->{value} = $LIB->_zero();
- $x->{sign} = '+';
- } else # a < 0
- {
- $x->{value} = $LIB->_sub($x->{value}, $y->{value}); # abs sub
+ # ±Inf + something => ±Inf
+ # something + ±Inf => ±Inf
+ if ($y->{sign} =~ /^[+-]inf$/) {
+ $x->{sign} = $y->{sign};
}
+ return $x -> round(@r);
}
+
+ ($x->{value}, $x->{sign})
+ = $LIB -> _sadd($x->{value}, $x->{sign}, $y->{value}, $y->{sign});
$x->round(@r);
}
@@ -1642,17 +1808,14 @@ sub bsub {
# subtract second arg from first, modify first
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('bsub');
- return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
- if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
+ return $upgrade -> bsub($x, $y, @r)
+ if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
return $x -> round(@r) if $y -> is_zero();
@@ -1665,9 +1828,10 @@ sub bsub {
if ($xsign ne $x -> {sign}) {
# special case of $x -> bsub($x) results in 0
return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
- return $x -> bnan(); # NaN, -inf, +inf
+ return $x -> bnan(@r); # NaN, -inf, +inf
}
- $x -> badd($y, @r); # badd does not leave internal zeros
+
+ $x = $x -> badd($y, @r); # badd() does not leave internal zeros
$y -> {sign} =~ tr/+-/-+/; # refix $y (does nothing for NaN)
$x; # already rounded by badd() or no rounding
}
@@ -1677,29 +1841,27 @@ sub bmul {
# (BINT or num_str, BINT or num_str) return BINT
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('bmul');
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return $x->bnan(@r) if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
# inf handling
if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
+ return $x->bnan(@r) if $x->is_zero() || $y->is_zero();
# result will always be +-inf:
# +inf * +/+inf => +inf, -inf * -/-inf => +inf
# +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ return $x->binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-', @r);
}
- return $upgrade->bmul($x, $upgrade->new($y), @r)
- if defined $upgrade && !$y->isa($class);
+ return $upgrade->bmul($x, $y, @r)
+ if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
$r[3] = $y; # no push here
@@ -1716,60 +1878,143 @@ sub bmuladd {
# (BINT or num_str, BINT or num_str, BINT or num_str) return BINT
# set up parameters
- my ($class, $x, $y, $z, @r) = objectify(3, @_);
+ my ($class, $x, $y, $z, @r)
+ = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+ ? (ref($_[0]), @_)
+ : objectify(3, @_);
return $x if $x->modify('bmuladd');
- return $x->bnan() if (($x->{sign} eq $nan) ||
- ($y->{sign} eq $nan) ||
- ($z->{sign} eq $nan));
+ # x, y, and z are finite numbers
- # inf handling of x and y
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
- }
- # inf handling x*y and z
- if (($z->{sign} =~ /^[+-]inf$/)) {
- # something +-inf => +-inf
- $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+ if ($x->{sign} =~ /^[+-]$/ &&
+ $y->{sign} =~ /^[+-]$/ &&
+ $z->{sign} =~ /^[+-]$/)
+ {
+ return $upgrade->bmuladd($x, $y, $z, @r)
+ if defined($upgrade)
+ && (!$x->isa($class) || !$y->isa($class) || !$z->isa($class));
+
+ # TODO: what if $y and $z have A or P set?
+ $r[3] = $z; # no push here
+
+ my $zs = $z->{sign};
+ my $zv = $z->{value};
+ $zv = $LIB -> _copy($zv) if refaddr($x) eq refaddr($z);
+
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+ $x->{value} = $LIB->_mul($x->{value}, $y->{value}); # do actual math
+ $x->{sign} = '+' if $LIB->_is_zero($x->{value}); # no -0
+
+ ($x->{value}, $x->{sign})
+ = $LIB -> _sadd($x->{value}, $x->{sign}, $zv, $zs);
+ return $x->round(@r);
}
- return $upgrade->bmuladd($x, $upgrade->new($y), $upgrade->new($z), @r)
- if defined $upgrade && (!$y->isa($class) || !$z->isa($class) || !$x->isa($class));
+ # At least one of x, y, and z is a NaN
- # TODO: what if $y and $z have A or P set?
- $r[3] = $z; # no push here
+ return $x->bnan(@r) if (($x->{sign} eq $nan) ||
+ ($y->{sign} eq $nan) ||
+ ($z->{sign} eq $nan));
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+ # At least one of x, y, and z is an Inf
- $x->{value} = $LIB->_mul($x->{value}, $y->{value}); # do actual math
- $x->{sign} = '+' if $LIB->_is_zero($x->{value}); # no -0
+ if ($x->{sign} eq "-inf") {
- my ($sx, $sz) = ( $x->{sign}, $z->{sign} ); # get signs
+ if ($y -> is_neg()) { # x = -inf, y < 0
+ if ($z->{sign} eq "-inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("+", @r);
+ }
+ } elsif ($y -> is_zero()) { # x = -inf, y = 0
+ return $x->bnan(@r);
+ } else { # x = -inf, y > 0
+ if ($z->{sign} eq "+inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("-", @r);
+ }
+ }
- if ($sx eq $sz) {
- $x->{value} = $LIB->_add($x->{value}, $z->{value}); # same sign, abs add
- } else {
- my $a = $LIB->_acmp ($z->{value}, $x->{value}); # absolute compare
- if ($a > 0) {
- $x->{value} = $LIB->_sub($z->{value}, $x->{value}, 1); # abs sub w/ swap
- $x->{sign} = $sz;
- } elsif ($a == 0) {
- # speedup, if equal, set result to 0
- $x->{value} = $LIB->_zero();
- $x->{sign} = '+';
- } else # a < 0
- {
- $x->{value} = $LIB->_sub($x->{value}, $z->{value}); # abs sub
+ } elsif ($x->{sign} eq "+inf") {
+
+ if ($y -> is_neg()) { # x = +inf, y < 0
+ if ($z->{sign} eq "+inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("-", @r);
+ }
+ } elsif ($y -> is_zero()) { # x = +inf, y = 0
+ return $x->bnan(@r);
+ } else { # x = +inf, y > 0
+ if ($z->{sign} eq "-inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("+", @r);
+ }
+ }
+
+ } elsif ($x -> is_neg()) {
+
+ if ($y->{sign} eq "-inf") { # -inf < x < 0, y = -inf
+ if ($z->{sign} eq "-inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("+", @r);
+ }
+ } elsif ($y->{sign} eq "+inf") { # -inf < x < 0, y = +inf
+ if ($z->{sign} eq "+inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("-", @r);
+ }
+ } else { # -inf < x < 0, -inf < y < +inf
+ if ($z->{sign} eq "-inf") {
+ return $x->binf("-", @r);
+ } elsif ($z->{sign} eq "+inf") {
+ return $x->binf("+", @r);
+ }
+ }
+
+ } elsif ($x -> is_zero()) {
+
+ if ($y->{sign} eq "-inf") { # x = 0, y = -inf
+ return $x->bnan(@r);
+ } elsif ($y->{sign} eq "+inf") { # x = 0, y = +inf
+ return $x->bnan(@r);
+ } else { # x = 0, -inf < y < +inf
+ if ($z->{sign} eq "-inf") {
+ return $x->binf("-", @r);
+ } elsif ($z->{sign} eq "+inf") {
+ return $x->binf("+", @r);
+ }
+ }
+
+ } elsif ($x -> is_pos()) {
+
+ if ($y->{sign} eq "-inf") { # 0 < x < +inf, y = -inf
+ if ($z->{sign} eq "+inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("-", @r);
+ }
+ } elsif ($y->{sign} eq "+inf") { # 0 < x < +inf, y = +inf
+ if ($z->{sign} eq "-inf") {
+ return $x->bnan(@r);
+ } else {
+ return $x->binf("+", @r);
+ }
+ } else { # 0 < x < +inf, -inf < y < +inf
+ if ($z->{sign} eq "-inf") {
+ return $x->binf("-", @r);
+ } elsif ($z->{sign} eq "+inf") {
+ return $x->binf("+", @r);
+ }
}
}
- $x->round(@r);
+
+ die;
}
sub bdiv {
@@ -1778,12 +2023,9 @@ sub bdiv {
# sign as the divisor.
# Set up parameters.
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
- # objectify() is costly, so avoid it if we can.
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('bdiv');
@@ -1793,7 +2035,8 @@ sub bdiv {
# modulo/remainder.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r))
+ : $x -> bnan(@r);
}
# Divide by zero and modulo zero.
@@ -1816,12 +2059,12 @@ sub bdiv {
if ($y -> is_zero()) {
my $rem;
if ($wantarray) {
- $rem = $x -> copy();
+ $rem = $x -> copy() -> round(@r);
}
if ($x -> is_zero()) {
- $x -> bnan();
+ $x = $x -> bnan(@r);
} else {
- $x -> binf($x -> {sign});
+ $x = $x -> binf($x -> {sign}, @r);
}
return $wantarray ? ($x, $rem) : $x;
}
@@ -1842,12 +2085,12 @@ sub bdiv {
if ($x -> is_inf()) {
my $rem;
- $rem = $class -> bnan() if $wantarray;
+ $rem = $class -> bnan(@r) if $wantarray;
if ($y -> is_inf()) {
- $x -> bnan();
+ $x = $x -> bnan(@r);
} else {
my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
- $x -> binf($sign);
+ $x = $x -> binf($sign, @r);
}
return $wantarray ? ($x, $rem) : $x;
}
@@ -1868,11 +2111,11 @@ sub bdiv {
if ($y -> is_inf()) {
my $rem;
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- $rem = $x -> copy() if $wantarray;
- $x -> bzero();
+ $rem = $x -> copy() -> round(@r) if $wantarray;
+ $x = $x -> bzero(@r);
} else {
- $rem = $class -> binf($y -> {sign}) if $wantarray;
- $x -> bone('-');
+ $rem = $class -> binf($y -> {sign}, @r) if $wantarray;
+ $x = $x -> bone('-', @r);
}
return $wantarray ? ($x, $rem) : $x;
}
@@ -1880,8 +2123,10 @@ sub bdiv {
# At this point, both the numerator and denominator are finite numbers, and
# the denominator (divisor) is non-zero.
- return $upgrade -> bdiv($upgrade -> new($x), $upgrade -> new($y), @r)
- if defined $upgrade;
+ # Division might return a non-integer result, so upgrade unconditionally, if
+ # upgrading is enabled.
+
+ return $upgrade -> bdiv($x, $y, @r) if defined $upgrade;
$r[3] = $y; # no push!
@@ -1900,7 +2145,7 @@ sub bdiv {
$y -> {sign} = $ysign; # Re-insert the original sign.
if ($same) {
- $x -> bone();
+ $x = $x -> bone();
} else {
($x -> {value}, $rem -> {value}) =
$LIB -> _div($x -> {value}, $y -> {value});
@@ -1916,16 +2161,16 @@ sub bdiv {
$x -> {sign} = '+';
} else {
if ($xsign eq '+') {
- $x -> badd(1);
+ $x = $x -> badd(1);
} else {
- $x -> bsub(1);
+ $x = $x -> bsub(1);
}
$x -> {sign} = '-';
}
}
}
- $x -> round(@r);
+ $x = $x -> round(@r);
if ($wantarray) {
unless ($LIB -> _is_zero($rem -> {value})) {
@@ -1936,7 +2181,7 @@ sub bdiv {
}
$rem -> {_a} = $x -> {_a};
$rem -> {_p} = $x -> {_p};
- $rem -> round(@r);
+ $rem = $rem -> round(@r);
return ($x, $rem);
}
@@ -1951,12 +2196,9 @@ sub btdiv {
# and $q * $y + $r = $x.
# Set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it if we can.
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('btdiv');
@@ -1966,7 +2208,8 @@ sub btdiv {
# modulo/remainder.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r))
+ : $x -> bnan(@r);
}
# Divide by zero and modulo zero.
@@ -1989,12 +2232,12 @@ sub btdiv {
if ($y -> is_zero()) {
my $rem;
if ($wantarray) {
- $rem = $x -> copy();
+ $rem = $x -> copy(@r);
}
if ($x -> is_zero()) {
- $x -> bnan();
+ $x = $x -> bnan(@r);
} else {
- $x -> binf($x -> {sign});
+ $x = $x -> binf($x -> {sign}, @r);
}
return $wantarray ? ($x, $rem) : $x;
}
@@ -2015,12 +2258,12 @@ sub btdiv {
if ($x -> is_inf()) {
my $rem;
- $rem = $class -> bnan() if $wantarray;
+ $rem = $class -> bnan(@r) if $wantarray;
if ($y -> is_inf()) {
- $x -> bnan();
+ $x = $x -> bnan(@r);
} else {
my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
- $x -> binf($sign);
+ $x = $x -> binf($sign,@r );
}
return $wantarray ? ($x, $rem) : $x;
}
@@ -2040,13 +2283,15 @@ sub btdiv {
if ($y -> is_inf()) {
my $rem;
- $rem = $x -> copy() if $wantarray;
- $x -> bzero();
+ $rem = $x -> copy() -> round(@r) if $wantarray;
+ $x = $x -> bzero(@r);
return $wantarray ? ($x, $rem) : $x;
}
- return $upgrade -> btdiv($upgrade -> new($x), $upgrade -> new($y), @r)
- if defined $upgrade;
+ # Division might return a non-integer result, so upgrade unconditionally, if
+ # upgrading is enabled.
+
+ return $upgrade -> btdiv($x, $y, @r) if defined $upgrade;
$r[3] = $y; # no push!
@@ -2065,14 +2310,14 @@ sub btdiv {
$y -> {sign} = $ysign; # Re-insert the original sign.
if ($same) {
- $x -> bone();
+ $x = $x -> bone(@r);
} else {
($x -> {value}, $rem -> {value}) =
$LIB -> _div($x -> {value}, $y -> {value});
$x -> {sign} = $xsign eq $ysign ? '+' : '-';
$x -> {sign} = '+' if $LIB -> _is_zero($x -> {value});
- $x -> round(@r);
+ $x = $x -> round(@r);
}
if (wantarray) {
@@ -2080,7 +2325,7 @@ sub btdiv {
$rem -> {sign} = '+' if $LIB -> _is_zero($rem -> {value});
$rem -> {_a} = $x -> {_a};
$rem -> {_p} = $x -> {_p};
- $rem -> round(@r);
+ $rem = $rem -> round(@r);
return ($x, $rem);
}
@@ -2091,44 +2336,45 @@ sub bmod {
# This is the remainder after floored division.
# Set up parameters.
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('bmod');
+
$r[3] = $y; # no push!
# At least one argument is NaN.
if ($x -> is_nan() || $y -> is_nan()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
}
# Modulo zero. See documentation for bdiv().
if ($y -> is_zero()) {
- return $x;
+ return $x -> round(@r);
}
# Numerator (dividend) is +/-inf.
if ($x -> is_inf()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
}
# Denominator (divisor) is +/-inf.
if ($y -> is_inf()) {
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- return $x;
+ return $x -> round(@r);
} else {
- return $x -> binf($y -> sign());
+ return $x -> binf($y -> sign(), @r);
}
}
+ return $upgrade -> bmod($x, $y, @r)
+ if defined($upgrade) && (!$x -> isa($class) || !$y -> isa($class));
+
# Calc new sign and in case $y == +/- 1, return $x.
$x -> {value} = $LIB -> _mod($x -> {value}, $y -> {value});
@@ -2147,41 +2393,38 @@ sub btmod {
# Remainder after truncated division.
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x -> modify('btmod');
# At least one argument is NaN.
if ($x -> is_nan() || $y -> is_nan()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
}
# Modulo zero. See documentation for btdiv().
if ($y -> is_zero()) {
- return $x;
+ return $x -> round(@r);
}
# Numerator (dividend) is +/-inf.
if ($x -> is_inf()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
}
# Denominator (divisor) is +/-inf.
if ($y -> is_inf()) {
- return $x;
+ return $x -> round(@r);
}
- return $upgrade -> btmod($upgrade -> new($x), $upgrade -> new($y), @r)
- if defined $upgrade;
+ return $upgrade -> btmod($x, $y, @r)
+ if defined($upgrade) && (!$x -> isa($class) || !$y -> isa($class));
$r[3] = $y; # no push!
@@ -2192,7 +2435,6 @@ sub btmod {
$x -> {sign} = $xsign;
$x -> {sign} = '+' if $LIB -> _is_zero($x -> {value});
$x -> round(@r);
- return $x;
}
sub bmodinv {
@@ -2208,28 +2450,29 @@ sub bmodinv {
# If no modular multiplicative inverse exists, NaN is returned.
# set up parameters
- my ($class, $x, $y, @r) = (undef, @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
return $x if $x->modify('bmodinv');
# Return NaN if one or both arguments is +inf, -inf, or nan.
- return $x->bnan() if ($y->{sign} !~ /^[+-]$/ ||
- $x->{sign} !~ /^[+-]$/);
+ return $x->bnan(@r) if ($y->{sign} !~ /^[+-]$/ ||
+ $x->{sign} !~ /^[+-]$/);
# Return NaN if $y is zero; 1 % 0 makes no sense.
- return $x->bnan() if $y->is_zero();
+ return $x->bnan(@r) if $y->is_zero();
# Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite
# integers $x.
- return $x->bzero() if ($y->is_one() ||
- $y->is_one('-'));
+ return $x->bzero(@r) if ($y->is_one('+') ||
+ $y->is_one('-'));
+
+ return $upgrade -> bmodinv($x, $y, @r)
+ if defined($upgrade) && (!$x -> isa($class) || !$y -> isa($class));
# Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when
# $x = 0 is when $y = 1 or $y = -1, but that was covered above.
@@ -2240,14 +2483,14 @@ sub bmodinv {
# $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7.
# The value if $x is affected only when $x and $y have opposite signs.
- $x->bmod($y);
- return $x->bnan() if $x->is_zero();
+ $x = $x->bmod($y);
+ return $x->bnan(@r) if $x->is_zero();
# Compute the modular multiplicative inverse of the absolute values. We'll
# correct for the signs of $x and $y later. Return NaN if no GCD is found.
($x->{value}, $x->{sign}) = $LIB->_modinv($x->{value}, $y->{value});
- return $x->bnan() if !defined $x->{value};
+ return $x->bnan(@r) if !defined($x->{value});
# Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions
# <= 1.32 return undef rather than a "+" for the sign.
@@ -2266,20 +2509,23 @@ sub bmodinv {
# inverse modulo. The net effect is that we must swap the sign of the
# result if $y is negative.
- $x -> bneg() if $y->{sign} eq '-';
+ $x = $x -> bneg() if $y->{sign} eq '-';
# Compute $x modulo $y again after correcting the sign.
- $x -> bmod($y) if $x->{sign} ne $y->{sign};
+ $x = $x -> bmod($y) if $x->{sign} ne $y->{sign};
- return $x;
+ $x -> round(@r);
}
sub bmodpow {
- # Modular exponentiation. Raises a very large number to a very large exponent
- # in a given very large modulus quickly, thanks to binary exponentiation.
- # Supports negative exponents.
- my ($class, $num, $exp, $mod, @r) = objectify(3, @_);
+ # Modular exponentiation. Raises a very large number to a very large
+ # exponent in a given very large modulus quickly, thanks to binary
+ # exponentiation. Supports negative exponents.
+ my ($class, $num, $exp, $mod, @r)
+ = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+ ? (ref($_[0]), @_)
+ : objectify(3, @_);
return $num if $num->modify('bmodpow');
@@ -2288,25 +2534,30 @@ sub bmodpow {
#
# b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m)
- $num->bmodinv($mod) if ($exp->{sign} eq '-');
+ $num = $num -> bmodinv($mod) if ($exp->{sign} eq '-');
- # Check for valid input. All operands must be finite, and the modulus must be
- # non-zero.
+ # Check for valid input. All operands must be finite, and the modulus must
+ # be non-zero.
- return $num->bnan() if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
- $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
- $mod->{sign} =~ /NaN|inf/); # NaN, -inf, +inf
+ return $num->bnan(@r) if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
+ $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
+ $mod->{sign} =~ /NaN|inf/); # NaN, -inf, +inf
# Modulo zero. See documentation for Math::BigInt's bmod() method.
if ($mod -> is_zero()) {
if ($num -> is_zero()) {
- return $class -> bnan();
+ return $class -> bnan(@r);
} else {
- return $num -> copy();
+ return $num -> copy(@r);
}
}
+ return $upgrade -> bmodinv($num, $exp, $mod, @r)
+ if defined($upgrade) && (!$num -> isa($class) ||
+ !$exp -> isa($class) ||
+ !$mod -> ($class));
+
# Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting
# value is zero, the output is also zero, regardless of the signs on 'a' and
# 'm'.
@@ -2379,53 +2630,67 @@ sub bpow {
# modifies first argument
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- return $x if $x->modify('bpow');
+ return $x if $x -> modify('bpow');
# $x and/or $y is a NaN
- return $x->bnan() if $x->is_nan() || $y->is_nan();
+ return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
# $x and/or $y is a +/-Inf
- if ($x->is_inf("-")) {
- return $x->bzero() if $y->is_negative();
- return $x->bnan() if $y->is_zero();
- return $x if $y->is_odd();
- return $x->bneg();
- } elsif ($x->is_inf("+")) {
- return $x->bzero() if $y->is_negative();
- return $x->bnan() if $y->is_zero();
- return $x;
- } elsif ($y->is_inf("-")) {
- return $x->bnan() if $x -> is_one("-");
- return $x->binf("+") if $x -> is_zero();
- return $x->bone() if $x -> is_one("+");
- return $x->bzero();
- } elsif ($y->is_inf("+")) {
- return $x->bnan() if $x -> is_one("-");
- return $x->bzero() if $x -> is_zero();
- return $x->bone() if $x -> is_one("+");
- return $x->binf("+");
+ if ($x -> is_inf("-")) {
+ return $x -> bzero(@r) if $y -> is_negative();
+ return $x -> bnan(@r) if $y -> is_zero();
+ return $x -> round(@r) if $y -> is_odd();
+ return $x -> bneg(@r);
+ } elsif ($x -> is_inf("+")) {
+ return $x -> bzero(@r) if $y -> is_negative();
+ return $x -> bnan(@r) if $y -> is_zero();
+ return $x -> round(@r);
+ } elsif ($y -> is_inf("-")) {
+ return $x -> bnan(@r) if $x -> is_one("-");
+ return $x -> binf("+", @r) if $x -> is_zero();
+ return $x -> bone(@r) if $x -> is_one("+");
+ return $x -> bzero(@r);
+ } elsif ($y -> is_inf("+")) {
+ return $x -> bnan(@r) if $x -> is_one("-");
+ return $x -> bzero(@r) if $x -> is_zero();
+ return $x -> bone(@r) if $x -> is_one("+");
+ return $x -> binf("+", @r);
+ }
+
+ if ($x -> is_zero()) {
+ return $x -> bone(@r) if $y -> is_zero();
+ return $x -> binf(@r) if $y -> is_negative();
+ return $x -> round(@r);
}
- return $upgrade->bpow($upgrade->new($x), $y, @r)
- if defined $upgrade && (!$y->isa($class) || $y->{sign} eq '-');
+ if ($x -> is_one("+")) {
+ return $x -> round(@r);
+ }
- $r[3] = $y; # no push!
+ if ($x -> is_one("-")) {
+ return $x -> round(@r) if $y -> is_odd();
+ return $x -> bneg(@r);
+ }
- # 0 ** -y => ( 1 / (0 ** y)) => 1 / 0 => +inf
- return $x->binf() if $y->is_negative() && $x->is_zero();
+ return $upgrade -> bpow($x, $y, @r) if defined $upgrade;
- # 1 ** -y => 1 / (1 ** |y|)
- return $x->bzero() if $y->is_negative() && !$LIB->_is_one($x->{value});
+ # We don't support finite non-integers, so return zero. The reason for
+ # returning zero, not NaN, is that all output is in the open interval (0,1),
+ # and truncating that to integer gives zero.
- $x->{value} = $LIB->_pow($x->{value}, $y->{value});
- $x->{sign} = $x->is_negative() && $y->is_odd() ? '-' : '+';
- $x->round(@r);
+ if ($y->{sign} eq '-' || !$y -> isa($class)) {
+ return $x -> bzero(@r);
+ }
+
+ $r[3] = $y; # no push!
+
+ $x->{value} = $LIB -> _pow($x->{value}, $y->{value});
+ $x->{sign} = $x -> is_negative() && $y -> is_odd() ? '-' : '+';
+ $x -> round(@r);
}
sub blog {
@@ -2438,12 +2703,12 @@ sub blog {
# Don't objectify the base, since an undefined base, as in $x->blog() or
# $x->blog(undef) signals that the base is Euler's number.
- if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+ if (!ref($_[0]) && $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i) {
# E.g., Math::BigInt->blog(256, 2)
($class, $x, $base, @r) =
defined $_[2] ? objectify(2, @_) : objectify(1, @_);
} else {
- # E.g., Math::BigInt::blog(256, 2) or $x->blog(2)
+ # E.g., $x->blog(2) or the deprecated Math::BigInt::blog(256, 2)
($class, $x, $base, @r) =
defined $_[1] ? objectify(2, @_) : objectify(1, @_);
}
@@ -2453,80 +2718,70 @@ sub blog {
# Handle all exception cases and all trivial cases. I have used Wolfram
# Alpha (http://www.wolframalpha.com) as the reference for these cases.
- return $x -> bnan() if $x -> is_nan();
+ return $x -> bnan(@r) if $x -> is_nan();
if (defined $base) {
$base = $class -> new($base) unless ref $base;
if ($base -> is_nan() || $base -> is_one()) {
- return $x -> bnan();
+ return $x -> bnan(@r);
} elsif ($base -> is_inf() || $base -> is_zero()) {
- return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
- return $x -> bzero();
- } elsif ($base -> is_negative()) { # -inf < base < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> bone() if $x == $base; # x = base
- return $x -> bnan(); # otherwise
+ return $x -> bnan(@r) if $x -> is_inf() || $x -> is_zero();
+ return $x -> bzero(@r);
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ return $x -> bzero(@r) if $x -> is_one(); # x = 1
+ return $x -> bone(@r) if $x == $base; # x = base
+ return $x -> bnan(@r); # otherwise
}
- return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
+ return $x -> bone(@r) if $x == $base; # 0 < base && 0 < x < inf
}
# We now know that the base is either undefined or >= 2 and finite.
- return $x -> binf('+') if $x -> is_inf(); # x = +/-inf
- return $x -> bnan() if $x -> is_neg(); # -inf < x < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> binf('-') if $x -> is_zero(); # x = 0
+ return $x -> binf('+', @r) if $x -> is_inf(); # x = +/-inf
+ return $x -> bnan(@r) if $x -> is_neg(); # -inf < x < 0
+ return $x -> bzero(@r) if $x -> is_one(); # x = 1
+ return $x -> binf('-', @r) if $x -> is_zero(); # x = 0
# At this point we are done handling all exception cases and trivial cases.
- return $upgrade -> blog($upgrade -> new($x), $base, @r) if defined $upgrade;
+ return $upgrade -> blog($x, $base, @r) if defined $upgrade;
# fix for bug #24969:
# the default base is e (Euler's number) which is not an integer
if (!defined $base) {
require Math::BigFloat;
- my $u = Math::BigFloat->blog(Math::BigFloat->new($x))->as_int();
+ my $u = Math::BigFloat->blog($x)->as_int();
# modify $x in place
$x->{value} = $u->{value};
$x->{sign} = $u->{sign};
- return $x;
+ return $x -> round(@r);
}
my ($rc) = $LIB->_log_int($x->{value}, $base->{value});
- return $x->bnan() unless defined $rc; # not possible to take log?
+ return $x->bnan(@r) unless defined $rc; # not possible to take log?
$x->{value} = $rc;
- $x->round(@r);
+ $x = $x -> round(@r);
}
sub bexp {
# Calculate e ** $x (Euler's number to the power of X), truncated to
# an integer value.
my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
return $x if $x->modify('bexp');
# inf, -inf, NaN, <0 => NaN
- return $x->bnan() if $x->{sign} eq 'NaN';
- return $x->bone() if $x->is_zero();
- return $x if $x->{sign} eq '+inf';
- return $x->bzero() if $x->{sign} eq '-inf';
+ return $x -> bnan(@r) if $x->{sign} eq 'NaN';
+ return $x -> bone(@r) if $x->is_zero();
+ return $x -> round(@r) if $x->{sign} eq '+inf';
+ return $x -> bzero(@r) if $x->{sign} eq '-inf';
- my $u;
- {
- # run through Math::BigFloat unless told otherwise
- require Math::BigFloat unless defined $upgrade;
- local $upgrade = 'Math::BigFloat' unless defined $upgrade;
- # calculate result, truncate it to integer
- $u = $upgrade->bexp($upgrade->new($x), @r);
- }
+ return $upgrade -> bexp($x, @r) if defined $upgrade;
- if (defined $upgrade) {
- $x = $u;
- } else {
- $u = $u->as_int();
- # modify $x in place
- $x->{value} = $u->{value};
- $x->round(@r);
- }
+ require Math::BigFloat;
+ my $tmp = Math::BigFloat -> bexp($x, @r) -> as_int();
+ $x->{value} = $tmp->{value};
+ return $x -> round(@r);
}
sub bnok {
@@ -2534,49 +2789,51 @@ sub bnok {
# integer.
# Set up parameters.
- my ($self, $n, $k, @r) = (ref($_[0]), @_);
+ my ($class, $n, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- # Objectify is costly, so avoid it.
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self, $n, $k, @r) = objectify(2, @_);
- }
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $n if $n->modify('bnok');
# All cases where at least one argument is NaN.
- return $n->bnan() if $n->{sign} eq 'NaN' || $k->{sign} eq 'NaN';
+ return $n->bnan(@r) if $n->{sign} eq 'NaN' || $k->{sign} eq 'NaN';
# All cases where at least one argument is +/-inf.
if ($n -> is_inf()) {
if ($k -> is_inf()) { # bnok(+/-inf,+/-inf)
- return $n -> bnan();
+ return $n -> bnan(@r);
} elsif ($k -> is_neg()) { # bnok(+/-inf,k), k < 0
- return $n -> bzero();
+ return $n -> bzero(@r);
} elsif ($k -> is_zero()) { # bnok(+/-inf,k), k = 0
- return $n -> bone();
+ return $n -> bone(@r);
} else {
- if ($n -> is_inf("+")) { # bnok(+inf,k), 0 < k < +inf
+ if ($n -> is_inf("+", @r)) { # bnok(+inf,k), 0 < k < +inf
return $n -> binf("+");
} else { # bnok(-inf,k), k > 0
my $sign = $k -> is_even() ? "+" : "-";
- return $n -> binf($sign);
+ return $n -> binf($sign, @r);
}
}
}
elsif ($k -> is_inf()) { # bnok(n,+/-inf), -inf <= n <= inf
- return $n -> bnan();
+ return $n -> bnan(@r);
}
# At this point, both n and k are real numbers.
+ return $upgrade -> bnok($n, $k, @r)
+ if defined($upgrade) && (!$n -> isa($class) || !$k -> isa($class));
+
my $sign = 1;
if ($n >= 0) {
if ($k < 0 || $k > $n) {
- return $n -> bzero();
+ return $n -> bzero(@r);
}
} else {
@@ -2585,7 +2842,7 @@ sub bnok {
# n < 0 and k >= 0: bnok(n,k) = (-1)^k * bnok(-n+k-1,k)
$sign = (-1) ** $k;
- $n -> bneg() -> badd($k) -> bdec();
+ $n = $n -> bneg() -> badd($k) -> bdec();
} elsif ($k <= $n) {
@@ -2593,22 +2850,22 @@ sub bnok {
$sign = (-1) ** ($n - $k);
my $x0 = $n -> copy();
- $n -> bone() -> badd($k) -> bneg();
+ $n = $n -> bone() -> badd($k) -> bneg();
$k = $k -> copy();
- $k -> bneg() -> badd($x0);
+ $k = $k -> bneg() -> badd($x0);
} else {
# n < 0 and n < k < 0:
- return $n -> bzero();
+ return $n -> bzero(@r);
}
}
$n->{value} = $LIB->_nok($n->{value}, $k->{value});
- $n -> bneg() if $sign == -1;
+ $n = $n -> bneg() if $sign == -1;
- $n->round(@r);
+ $n -> round(@r);
}
sub buparrow {
@@ -2721,9 +2978,9 @@ sub ackermann {
} elsif ($m == $three) {
$n = $class -> bone() -> blsft($n + $three) -> bsub($three);
} elsif ($m == $two) {
- $n -> bmul($two) -> badd($three);
+ $n = $n -> bmul($two) -> badd($three);
} elsif ($m >= 0) {
- $n -> badd($m) -> binc();
+ $n = $n -> badd($m) -> binc();
} else {
die "negative m!";
}
@@ -2732,109 +2989,102 @@ sub ackermann {
}
sub bsin {
- # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the
+ # Calculate sin(x) to N digits. Unless upgrading is in effect, returns the
# result truncated to an integer.
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bsin');
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return $x->bnan(@r) if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return $x->bzero(@r) if $x->is_zero();
- return $upgrade->new($x)->bsin(@r) if defined $upgrade;
+ return $upgrade -> bsin($x, @r) if defined $upgrade;
require Math::BigFloat;
# calculate the result and truncate it to integer
my $t = Math::BigFloat->new($x)->bsin(@r)->as_int();
- $x->bone() if $t->is_one();
- $x->bzero() if $t->is_zero();
+ $x = $x->bone(@r) if $t->is_one();
+ $x = $x->bzero(@r) if $t->is_zero();
$x->round(@r);
}
sub bcos {
- # Calculate cosinus(x) to N digits. Unless upgrading is in effect, returns the
+ # Calculate cos(x) to N digits. Unless upgrading is in effect, returns the
# result truncated to an integer.
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bcos');
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return $x->bnan(@r) if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return $x->bone(@r) if $x->is_zero();
- return $upgrade->new($x)->bcos(@r) if defined $upgrade;
+ return $upgrade -> bcos($x, @r) if defined $upgrade;
require Math::BigFloat;
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->bcos(@r)->as_int();
-
- $x->bone() if $t->is_one();
- $x->bzero() if $t->is_zero();
- $x->round(@r);
+ my $tmp = Math::BigFloat -> bcos($x, @r) -> as_int();
+ $x->{value} = $tmp->{value};
+ return $x -> round(@r);
}
sub batan {
- # Calculate arcus tangens of x to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ # Calculate arctan(x) to N digits. Unless upgrading is in effect, returns
+ # the result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('batan');
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return $x -> bnan(@r) if $x -> is_nan();
+ return $x -> bzero(@r) if $x -> is_zero();
- return $upgrade->new($x)->batan(@r) if defined $upgrade;
+ return $upgrade -> batan($x, @r) if defined $upgrade;
- # calculate the result and truncate it to integer
- my $tmp = Math::BigFloat->new($x)->batan(@r);
+ return $x -> bone("+", @r) if $x -> bgt("1");
+ return $x -> bone("-", @r) if $x -> blt("-1");
- $x->{value} = $LIB->_new($tmp->as_int()->bstr());
- $x->round(@r);
+ $x -> bzero(@r);
}
sub batan2 {
# calculate arcus tangens of ($y/$x)
- # set up parameters
- my ($class, $y, $x, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $y, $x, @r) = objectify(2, @_);
- }
+ my ($class, $y, $x, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
return $y if $y->modify('batan2');
return $y->bnan() if ($y->{sign} eq $nan) || ($x->{sign} eq $nan);
+ return $upgrade->batan2($y, $x, @r) if defined $upgrade;
+
# Y X
# != 0 -inf result is +- pi
if ($x->is_inf() || $y->is_inf()) {
- # upgrade to Math::BigFloat etc.
- return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
if ($y->is_inf()) {
if ($x->{sign} eq '-inf') {
# calculate 3 pi/4 => 2.3.. => 2
- $y->bone(substr($y->{sign}, 0, 1));
- $y->bmul($class->new(2));
+ $y = $y->bone(substr($y->{sign}, 0, 1));
+ $y = $y->bmul($class->new(2));
} elsif ($x->{sign} eq '+inf') {
# calculate pi/4 => 0.7 => 0
- $y->bzero();
+ $y = $y->bzero();
} else {
# calculate pi/2 => 1.5 => 1
- $y->bone(substr($y->{sign}, 0, 1));
+ $y = $y->bone(substr($y->{sign}, 0, 1));
}
} else {
if ($x->{sign} eq '+inf') {
# calculate pi/4 => 0.7 => 0
- $y->bzero();
+ $y = $y->bzero();
} else {
# PI => 3.1415.. => 3
- $y->bone(substr($y->{sign}, 0, 1));
- $y->bmul($class->new(3));
+ $y = $y->bone(substr($y->{sign}, 0, 1));
+ $y = $y->bmul($class->new(3));
}
}
return $y;
}
- return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
-
require Math::BigFloat;
my $r = Math::BigFloat->new($y)
->batan2(Math::BigFloat->new($x), @r)
@@ -2843,17 +3093,17 @@ sub batan2 {
$x->{value} = $r->{value};
$x->{sign} = $r->{sign};
- $x;
+ $x->round(@r);
}
sub bsqrt {
# calculate square root of $x
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bsqrt');
- return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
- return $x if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
+ return $x->bnan(@r) if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
+ return $x->round(@r) if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
return $upgrade->bsqrt($x, @r) if defined $upgrade;
@@ -2865,25 +3115,22 @@ sub broot {
# calculate $y'th root of $x
# set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- $y = $class->new(2) unless defined $y;
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
- # objectify is costly, so avoid it
- if ((!ref($x)) || (ref($x) ne ref($y))) {
- ($class, $x, $y, @r) = objectify(2, $class || $class, @_);
- }
+ $y = $class->new(2) unless defined $y;
return $x if $x->modify('broot');
# NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
- return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
- $y->{sign} !~ /^\+$/;
+ return $x->bnan(@r) if $x->{sign} !~ /^\+/ || $y->is_zero() ||
+ $y->{sign} !~ /^\+$/;
return $x->round(@r)
if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
- return $upgrade->new($x)->broot($upgrade->new($y), @r) if defined $upgrade;
+ return $upgrade->broot($x, $y, @r) if defined $upgrade;
$x->{value} = $LIB->_root($x->{value}, $y->{value});
$x->round(@r);
@@ -2892,10 +3139,14 @@ sub broot {
sub bfac {
# (BINT or num_str, BINT or num_str) return BINT
# compute factorial number from $x, modify $x in place
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bfac') || $x->{sign} eq '+inf'; # inf => inf
- return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
+
+ return $x->bnan(@r) if $x->{sign} ne '+'; # NaN, <0 => NaN
+
+ return $upgrade -> bfac($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
$x->{value} = $LIB->_fac($x->{value});
$x->round(@r);
@@ -2903,10 +3154,15 @@ sub bfac {
sub bdfac {
# compute double factorial, modify $x in place
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bdfac') || $x->{sign} eq '+inf'; # inf => inf
- return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
+
+ return $x->bnan(@r) if $x->is_nan() || $x <= -2;
+ return $x->bone(@r) if $x <= 1;
+
+ return $upgrade -> bdfac($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
croak("bdfac() requires a newer version of the $LIB library.")
unless $LIB->can('_dfac');
@@ -2915,21 +3171,69 @@ sub bdfac {
$x->round(@r);
}
+sub btfac {
+ # compute triple factorial, modify $x in place
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('btfac') || $x->{sign} eq '+inf'; # inf => inf
+
+ return $x->bnan(@r) if $x->is_nan();
+
+ return $upgrade -> btfac($x, @r) if defined($upgrade) && !$x -> isa($class);
+
+ my $k = $class -> new("3");
+ return $x->bnan(@r) if $x <= -$k;
+
+ my $one = $class -> bone();
+ return $x->bone(@r) if $x <= $one;
+
+ my $f = $x -> copy();
+ while ($f -> bsub($k) > $one) {
+ $x = $x -> bmul($f);
+ }
+ $x->round(@r);
+}
+
+sub bmfac {
+ # compute multi-factorial
+
+ my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
+
+ return $x if $x->modify('bmfac') || $x->{sign} eq '+inf';
+ return $x->bnan(@r) if $x->is_nan() || $k->is_nan() || $k < 1 || $x <= -$k;
+
+ return $upgrade -> bmfac($x, $k, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ my $one = $class -> bone();
+ return $x->bone(@r) if $x <= $one;
+
+ my $f = $x -> copy();
+ while ($f -> bsub($k) > $one) {
+ $x = $x -> bmul($f);
+ }
+ $x->round(@r);
+}
+
sub bfib {
# compute Fibonacci number(s)
- my ($class, $x, @r) = objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
croak("bfib() requires a newer version of the $LIB library.")
unless $LIB->can('_fib');
return $x if $x->modify('bfib');
+ return $upgrade -> bfib($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
# List context.
if (wantarray) {
- return () if $x -> is_nan();
+ return () if $x -> is_nan();
croak("bfib() can't return an infinitely long list of numbers")
- if $x -> is_inf();
+ if $x -> is_inf();
# Use the backend library to compute the first $x Fibonacci numbers.
@@ -2939,7 +3243,7 @@ sub bfib {
# invocand.
for (my $i = 0 ; $i < $#values ; ++ $i) {
- my $fib = $class -> bzero();
+ my $fib = $class -> bzero();
$fib -> {value} = $values[$i];
$values[$i] = $fib;
}
@@ -2973,13 +3277,16 @@ sub bfib {
sub blucas {
# compute Lucas number(s)
- my ($class, $x, @r) = objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
croak("blucas() requires a newer version of the $LIB library.")
unless $LIB->can('_lucas');
return $x if $x->modify('blucas');
+ return $upgrade -> blucas($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
# List context.
if (wantarray) {
@@ -3050,8 +3357,19 @@ sub blsft {
return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ ||
$y -> {sign} !~ /^[+-]$/);
return $x -> round(@r) if $y -> is_zero();
+ return $x -> bzero(@r) if $x -> is_zero(); # 0 => 0
+
+ $b = 2 if !defined $b;
+ return $x -> bnan(@r) if $b <= 0 || $y -> {sign} eq '-';
+ $b = $class -> new($b) unless defined(blessed($b));
- $b = defined($b) ? $b -> numify() : 2;
+ #return $upgrade -> blsft($x, $y, $b, @r)
+ # if defined($upgrade) && (!$x -> isa($class) ||
+ # !$y -> isa($class) ||
+ # !$b -> isa($class));
+
+ # shift by a negative amount?
+ #return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
# While some of the libraries support an arbitrarily large base, not all of
# them do, so rather than returning an incorrect result in those cases,
@@ -3060,6 +3378,8 @@ sub blsft {
my $uintmax = ~0;
croak("Base is too large.") if $b > $uintmax;
+ $b = $b -> numify();
+
return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
$x -> {value} = $LIB -> _lsft($x -> {value}, $y -> {value}, $b);
@@ -3070,21 +3390,48 @@ sub brsft {
# (BINT or num_str, BINT or num_str) return BINT
# compute x >> y, base n, y >= 0
- # set up parameters
my ($class, $x, $y, $b, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, $b, @r) = objectify(2, @_);
+ # Objectify the base only when it is defined, since an undefined base, as
+ # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2.
+
+ if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+ # E.g., Math::BigInt->blog(256, 5, 2)
+ ($class, $x, $y, $b, @r) =
+ defined $_[3] ? objectify(3, @_) : objectify(2, @_);
+ } else {
+ # E.g., Math::BigInt::blog(256, 5, 2) or $x->blog(5, 2)
+ ($class, $x, $y, $b, @r) =
+ defined $_[2] ? objectify(3, @_) : objectify(2, @_);
}
return $x if $x -> modify('brsft');
- return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ || $y -> {sign} !~ /^[+-]$/);
+ return $x -> bnan(@r) if $x -> {sign} !~ /^[+-]$/ ||
+ $y -> {sign} !~ /^[+-]$/;
return $x -> round(@r) if $y -> is_zero();
return $x -> bzero(@r) if $x -> is_zero(); # 0 => 0
$b = 2 if !defined $b;
- return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
+ return $x -> bnan(@r) if $b <= 0 || $y -> {sign} eq '-';
+ $b = $class -> new($b) unless defined(blessed($b));
+
+ # Shifting right by a positive amount might lead to a non-integer result, so
+ # include this case in the test.
+
+ return $upgrade -> brsft($x, $y, $b, @r)
+ if defined($upgrade) && (!$x -> isa($class) ||
+ !$y -> isa($class) ||
+ !$b -> isa($class) ||
+ $y -> is_pos());
+
+ # While some of the libraries support an arbitrarily large base, not all of
+ # them do, so rather than returning an incorrect result in those cases,
+ # disallow bases that don't work with all libraries.
+
+ my $uintmax = ~0;
+ croak("Base is too large.") if $b > $uintmax;
+
+ $b = $b -> numify();
# this only works for negative numbers when shifting in base 2
if (($x -> {sign} eq '-') && ($b == 2)) {
@@ -3095,7 +3442,7 @@ sub brsft {
# shift...
# if $y != 1, we must simulate it by doing:
# convert to bin, flip all bits, shift, and be done
- $x -> binc(); # -3 => -2
+ $x = $x -> binc(); # -3 => -2
my $bin = $x -> as_bin();
$bin =~ s/^-0b//; # strip '-0b' prefix
$bin =~ tr/10/01/; # flip bits
@@ -3111,13 +3458,13 @@ sub brsft {
$bin =~ tr/10/01/; # flip bits back
}
my $res = $class -> new('0b' . $bin); # add prefix and convert back
- $res -> binc(); # remember to increment
+ $res = $res -> binc(); # remember to increment
$x -> {value} = $res -> {value}; # take over value
return $x -> round(@r); # we are done now, magic, isn't?
}
# x < 0, n == 2, y == 1
- $x -> bdec(); # n == 2, but $y == 1: this fixes it
+ $x = $x -> bdec(); # n == 2, but $y == 1: this fixes it
}
$x -> {value} = $LIB -> _rsft($x -> {value}, $y -> {value}, $b);
@@ -3132,18 +3479,18 @@ sub band {
#(BINT or num_str, BINT or num_str) return BINT
# compute x & y
- # set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
return $x if $x->modify('band');
+ return $upgrade -> band($x, $y, @r)
+ if defined($upgrade) && (!$x -> isa($class) ||
+ !$y -> isa($class));
+
$r[3] = $y; # no push!
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ return $x->bnan(@r) if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/;
if ($x->{sign} eq '+' && $y->{sign} eq '+') {
$x->{value} = $LIB->_and($x->{value}, $y->{value});
@@ -3158,15 +3505,15 @@ sub bior {
#(BINT or num_str, BINT or num_str) return BINT
# compute x | y
- # set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
return $x if $x->modify('bior');
+ return $upgrade -> bior($x, $y, @r)
+ if defined($upgrade) && (!$x -> isa($class) ||
+ !$y -> isa($class));
+
$r[3] = $y; # no push!
return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
@@ -3184,18 +3531,18 @@ sub bxor {
#(BINT or num_str, BINT or num_str) return BINT
# compute x ^ y
- # set up parameters
- my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($class, $x, $y, @r) = objectify(2, @_);
- }
+ my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
return $x if $x->modify('bxor');
+ return $upgrade -> bxor($x, $y, @r)
+ if defined($upgrade) && (!$x -> isa($class) ||
+ !$y -> isa($class));
+
$r[3] = $y; # no push!
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ return $x->bnan(@r) if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/;
if ($x->{sign} eq '+' && $y->{sign} eq '+') {
$x->{value} = $LIB->_xor($x->{value}, $y->{value});
@@ -3209,11 +3556,14 @@ sub bxor {
sub bnot {
# (num_str or BINT) return BINT
# represent ~x as twos-complement number
- # we don't need $class, so undef instead of ref($_[0]) make it slightly faster
- my ($class, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
return $x if $x->modify('bnot');
- $x->binc()->bneg(); # binc already does round
+
+ return $upgrade -> bnot($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ $x -> binc() -> bneg(@r);
}
###############################################################################
@@ -3224,22 +3574,39 @@ sub round {
# Round $self according to given parameters, or given second argument's
# parameters or global defaults
- # for speed reasons, _find_round_parameters is embedded here:
+ my ($class, $self, @args) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ # $x->round(undef, undef) signals no rounding
+
+ if (@args >= 2 && @args <= 3 && !defined($args[0]) && !defined($args[1])) {
+ $self->{_a} = undef;
+ $self->{_p} = undef;
+ return $self;
+ }
+
+ my ($a, $p, $r) = splice @args, 0, 3;
- my ($self, $a, $p, $r, @args) = @_;
# $a accuracy, if given by caller
# $p precision, if given by caller
# $r round_mode, if given by caller
# @args all 'other' arguments (0 for unary, 1 for binary ops)
- my $class = ref($self); # find out class of argument(s)
- no strict 'refs';
+ if (defined $a) {
+ croak "accuracy must be a number, not '$a'"
+ unless $a =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/;
+ }
+
+ if (defined $p) {
+ croak "precision must be a number, not '$p'"
+ unless $p =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/;
+ }
# now pick $a or $p, but only if we have got "arguments"
if (!defined $a) {
foreach ($self, @args) {
# take the defined one, or if both defined, the one that is smaller
- $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
+ $a = $_->{_a}
+ if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
}
}
if (!defined $p) {
@@ -3247,10 +3614,13 @@ sub round {
foreach ($self, @args) {
# take the defined one, or if both defined, the one that is bigger
# -2 > -3, and 3 > 2
- $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+ $p = $_->{_p}
+ if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
}
}
+ no strict 'refs';
+
# if still none defined, use globals
unless (defined $a || defined $p) {
$a = ${"$class\::accuracy"};
@@ -3273,9 +3643,11 @@ sub round {
# now round, by calling either bround or bfround:
if (defined $a) {
- $self->bround(int($a), $r) if !defined $self->{_a} || $self->{_a} >= $a;
+ $self = $self->bround(int($a), $r)
+ if !defined $self->{_a} || $self->{_a} >= $a;
} else { # both can't be undefined due to early out
- $self->bfround(int($p), $r) if !defined $self->{_p} || $self->{_p} <= $p;
+ $self = $self->bfround(int($p), $r)
+ if !defined $self->{_p} || $self->{_p} <= $p;
}
# bround() or bfround() already called bnorm() if nec.
@@ -3289,9 +3661,9 @@ sub bround {
# and overwrite the rest with 0's, return normalized number
# do not return $x->bnorm(), but $x
- my $x = shift;
- $x = __PACKAGE__->new($x) unless ref $x;
- my ($scale, $mode) = $x->_scale_a(@_);
+ my ($class, $x, @a) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ my ($scale, $mode) = $x->_scale_a(@a);
return $x if !defined $scale || $x->modify('bround'); # no-op
if ($x->is_zero() || $scale == 0) {
@@ -3303,8 +3675,8 @@ sub bround {
# we have fewer digits than we want to scale to
my $len = $x->length();
# convert $scale to a scalar in case it is an object (put's a limit on the
- # number length, but this would already limited by memory constraints), makes
- # it faster
+ # number length, but this would already limited by memory constraints),
+ # makes it faster
$scale = $scale->numify() if ref ($scale);
# scale < 0, but > -len (not >=!)
@@ -3352,9 +3724,10 @@ sub bround {
if (($pad > 0) && ($pad <= $len)) {
substr($xs, -$pad, $pad) = '0' x $pad; # replace with '00...'
+ $xs =~ s/^0+(\d)/$1/; # "00000" -> "0"
$put_back = 1; # need to put back
} elsif ($pad > $len) {
- $x->bzero(); # round to '0'
+ $x = $x->bzero(); # round to '0'
}
if ($round_up) { # what gave test above?
@@ -3373,7 +3746,6 @@ sub bround {
last if $c != 0; # no overflow => early out
}
$xs = '1'.$xs if $c == 0;
-
}
$x->{value} = $LIB->_new($xs) if $put_back == 1; # put back, if needed
@@ -3388,16 +3760,15 @@ sub bround {
sub bfround {
# precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
# $n == 0 || $n == 1 => round to integer
- my $x = shift;
- my $class = ref($x) || $x;
- $x = $class->new($x) unless ref $x;
- my ($scale, $mode) = $x->_scale_p(@_);
+ my ($class, $x, @p) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ my ($scale, $mode) = $x->_scale_p(@p);
return $x if !defined $scale || $x->modify('bfround'); # no-op
# no-op for Math::BigInt objects if $n <= 0
- $x->bround($x->length()-$scale, $mode) if $scale > 0;
+ $x = $x->bround($x->length()-$scale, $mode) if $scale > 0;
delete $x->{_a}; # delete to save memory
$x->{_p} = $scale; # store new _p
@@ -3414,21 +3785,30 @@ sub fround {
sub bfloor {
# round towards minus infinity; no-op since it's already integer
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $upgrade -> bfloor($x)
+ if defined($upgrade) && !$x -> isa($class);
$x->round(@r);
}
sub bceil {
# round towards plus infinity; no-op since it's already int
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $upgrade -> bceil($x)
+ if defined($upgrade) && !$x -> isa($class);
$x->round(@r);
}
sub bint {
# round towards zero; no-op since it's already integer
- my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $upgrade -> bint($x)
+ if defined($upgrade) && !$x -> isa($class);
$x->round(@r);
}
@@ -3442,8 +3822,30 @@ sub bgcd {
# does not modify arguments, but returns new object
# GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff)
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
+ unshift @_, __PACKAGE__;
+ }
+
my ($class, @args) = objectify(0, @_);
+ # Upgrade?
+
+ if (defined $upgrade) {
+ my $do_upgrade = 0;
+ for my $arg (@args) {
+ unless ($arg -> isa($class)) {
+ $do_upgrade = 1;
+ last;
+ }
+ }
+ return $upgrade -> bgcd(@args) if $do_upgrade;
+ }
+
my $x = shift @args;
$x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
@@ -3465,8 +3867,30 @@ sub blcm {
# does not modify arguments, but returns new object
# Least Common Multiple
+ # Class::method(...) -> Class->method(...)
+ unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+ $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+ {
+ #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+ # " use is as a method instead";
+ unshift @_, __PACKAGE__;
+ }
+
my ($class, @args) = objectify(0, @_);
+ # Upgrade?
+
+ if (defined $upgrade) {
+ my $do_upgrade = 0;
+ for my $arg (@args) {
+ unless ($arg -> isa($class)) {
+ $do_upgrade = 1;
+ last;
+ }
+ }
+ return $upgrade -> blcm(@args) if $do_upgrade;
+ }
+
my $x = shift @args;
$x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
@@ -3487,14 +3911,18 @@ sub blcm {
sub sign {
# return the sign of the number: +/-/-inf/+inf/NaN
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
$x->{sign};
}
sub digit {
# return the nth decimal digit, negative values count backward, 0 is right
- my ($class, $x, $n) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+ my (undef, $x, $n, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
$n = $n->numify() if ref($n);
$LIB->_digit($x->{value}, $n || 0);
@@ -3502,7 +3930,9 @@ sub digit {
sub bdigitsum {
# like digitsum(), but assigns the result to the invocand
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x if $x -> is_nan();
return $x -> bnan() if $x -> is_inf();
@@ -3514,19 +3944,22 @@ sub bdigitsum {
sub digitsum {
# compute sum of decimal digits and return it
- my $x = shift;
- my $class = ref $x;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $class -> bnan() if $x -> is_nan();
return $class -> bnan() if $x -> is_inf();
my $y = $class -> bzero();
$y -> {value} = $LIB -> _digitsum($x -> {value});
- return $y;
+ $y -> round(@r);
}
sub length {
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
my $e = $LIB->_len($x->{value});
wantarray ? ($e, 0) : $e;
@@ -3534,26 +3967,40 @@ sub length {
sub exponent {
# return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Upgrade?
+
+ return $upgrade -> exponent($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
if ($x->{sign} !~ /^[+-]$/) {
my $s = $x->{sign};
$s =~ s/^[+-]//; # NaN, -inf, +inf => NaN or inf
- return $class->new($s);
+ return $class->new($s, @r);
}
- return $class->bzero() if $x->is_zero();
+ return $class->bzero(@r) if $x->is_zero();
# 12300 => 2 trailing zeros => exponent is 2
- $class->new($LIB->_zeros($x->{value}));
+ $class->new($LIB->_zeros($x->{value}), @r);
}
sub mantissa {
# return the mantissa (compatible to Math::BigFloat, e.g. reduced)
- my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Upgrade?
+
+ return $upgrade -> mantissa($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
if ($x->{sign} !~ /^[+-]$/) {
# for NaN, +inf, -inf: keep the sign
- return $class->new($x->{sign});
+ return $class->new($x->{sign}, @r);
}
my $m = $x->copy();
delete $m->{_p};
@@ -3561,92 +4008,100 @@ sub mantissa {
# that's a bit inefficient:
my $zeros = $LIB->_zeros($m->{value});
- $m->brsft($zeros, 10) if $zeros != 0;
- $m;
+ $m = $m->brsft($zeros, 10) if $zeros != 0;
+ $m -> round(@r);
}
sub parts {
# return a copy of both the exponent and the mantissa
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Upgrade?
- ($x->mantissa(), $x->exponent());
+ return $upgrade -> parts($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ ($x->mantissa(@r), $x->exponent(@r));
}
+# Parts used for scientific notation with significand/mantissa and exponent as
+# integers. E.g., "12345.6789" is returned as "123456789" (mantissa) and "-4"
+# (exponent).
+
sub sparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- croak("sparts() is an instance method, not a class method")
- unless $class;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
# Not-a-number.
- if ($self -> is_nan()) {
- my $mant = $self -> copy(); # mantissa
+ if ($x -> is_nan()) {
+ my $mant = $class -> bnan(@r); # mantissa
return $mant unless wantarray; # scalar context
- my $expo = $class -> bnan(); # exponent
+ my $expo = $class -> bnan(@r); # exponent
return ($mant, $expo); # list context
}
# Infinity.
- if ($self -> is_inf()) {
- my $mant = $self -> copy(); # mantissa
- return $mant unless wantarray; # scalar context
- my $expo = $class -> binf('+'); # exponent
- return ($mant, $expo); # list context
+ if ($x -> is_inf()) {
+ my $mant = $class -> binf($x->{sign}, @r); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+', @r); # exponent
+ return ($mant, $expo); # list context
}
+ # Upgrade?
+
+ return $upgrade -> sparts($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
# Finite number.
- my $mant = $self -> copy();
+ my $mant = $x -> copy();
my $nzeros = $LIB -> _zeros($mant -> {value});
- $mant -> brsft($nzeros, 10) if $nzeros != 0;
+ $mant -> {value}
+ = $LIB -> _rsft($mant -> {value}, $LIB -> _new($nzeros), 10)
+ if $nzeros != 0;
return $mant unless wantarray;
- my $expo = $class -> new($nzeros);
+ my $expo = $class -> new($nzeros, @r);
return ($mant, $expo);
}
+# Parts used for normalized notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,10). E.g., "12345.6789" is returned as
+# "1.23456789" and "4".
+
sub nparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- croak("nparts() is an instance method, not a class method")
- unless $class;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- # Not-a-number.
+ # Not-a-Number and Infinity.
- if ($self -> is_nan()) {
- my $mant = $self -> copy(); # mantissa
- return $mant unless wantarray; # scalar context
- my $expo = $class -> bnan(); # exponent
- return ($mant, $expo); # list context
- }
+ return $x -> sparts(@r) if $x -> is_nan() || $x -> is_inf();
- # Infinity.
+ # Upgrade?
- if ($self -> is_inf()) {
- my $mant = $self -> copy(); # mantissa
- return $mant unless wantarray; # scalar context
- my $expo = $class -> binf('+'); # exponent
- return ($mant, $expo); # list context
- }
+ return $upgrade -> nparts($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
# Finite number.
- my ($mant, $expo) = $self -> sparts();
-
+ my ($mant, $expo) = $x -> sparts(@r);
if ($mant -> bcmp(0)) {
my ($ndigtot, $ndigfrac) = $mant -> length();
my $expo10adj = $ndigtot - $ndigfrac - 1;
- if ($expo10adj != 0) {
- return $upgrade -> new($self) -> nparts() if $upgrade;
- $mant -> bnan();
+ if ($expo10adj > 0) { # if mantissa is not an integer
+ return $upgrade -> nparts($x, @r) if defined $upgrade;
+ $mant = $mant -> bnan(@r);
return $mant unless wantarray;
- $expo -> badd($expo10adj);
+ $expo = $expo -> badd($expo10adj, @r);
return ($mant, $expo);
}
}
@@ -3655,70 +4110,174 @@ sub nparts {
return ($mant, $expo);
}
+# Parts used for engineering notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,1000) and the exponent is a multiple of 3.
+# E.g., "12345.6789" is returned as "12.3456789" and "3".
+
sub eparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- croak("eparts() is an instance method, not a class method")
- unless $class;
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
# Not-a-number and Infinity.
- return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+ return $x -> sparts(@r) if $x -> is_nan() || $x -> is_inf();
+
+ # Upgrade?
+
+ return $upgrade -> eparts($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
# Finite number.
- my ($mant, $expo) = $self -> sparts();
+ my ($mant, $expo) = $x -> sparts(@r);
if ($mant -> bcmp(0)) {
my $ndigmant = $mant -> length();
- $expo -> badd($ndigmant);
+ $expo = $expo -> badd($ndigmant, @r);
# $c is the number of digits that will be in the integer part of the
# final mantissa.
my $c = $expo -> copy() -> bdec() -> bmod(3) -> binc();
- $expo -> bsub($c);
+ $expo = $expo -> bsub($c);
if ($ndigmant > $c) {
- return $upgrade -> new($self) -> eparts() if $upgrade;
- $mant -> bnan();
+ return $upgrade -> eparts($x, @r) if defined $upgrade;
+ $mant = $mant -> bnan(@r);
return $mant unless wantarray;
return ($mant, $expo);
}
- $mant -> blsft($c - $ndigmant, 10);
+ $mant = $mant -> blsft($c - $ndigmant, 10, @r);
}
return $mant unless wantarray;
return ($mant, $expo);
}
+# Parts used for decimal notation, e.g., "12345.6789" is returned as "12345"
+# (integer part) and "0.6789" (fraction part).
+
sub dparts {
- my $self = shift;
- my $class = ref $self;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- croak("dparts() is an instance method, not a class method")
- unless $class;
+ # Not-a-number.
+
+ if ($x -> is_nan()) {
+ my $int = $class -> bnan(@r);
+ return $int unless wantarray;
+ my $frc = $class -> bzero(@r); # or NaN?
+ return ($int, $frc);
+ }
+
+ # Infinity.
+
+ if ($x -> is_inf()) {
+ my $int = $class -> binf($x->{sign}, @r);
+ return $int unless wantarray;
+ my $frc = $class -> bzero(@r);
+ return ($int, $frc);
+ }
+
+ # Upgrade?
- my $int = $self -> copy();
+ return $upgrade -> dparts($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number.
+
+ my $int = $x -> copy() -> round(@r);
return $int unless wantarray;
- my $frc = $class -> bzero();
+ my $frc = $class -> bzero(@r);
return ($int, $frc);
}
+# Fractional parts with the numerator and denominator as integers. E.g.,
+# "123.4375" is returned as "1975" and "16".
+
+sub fparts {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # NaN => NaN/NaN
+
+ if ($x -> is_nan()) {
+ return $class -> bnan(@r) unless wantarray;
+ return $class -> bnan(@r), $class -> bnan(@r);
+ }
+
+ # ±Inf => ±Inf/1
+
+ if ($x -> is_inf()) {
+ my $numer = $class -> binf($x->{sign}, @r);
+ return $numer unless wantarray;
+ my $denom = $class -> bone(@r);
+ return $numer, $denom;
+ }
+
+ # Upgrade?
+
+ return $upgrade -> fparts($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # N => N/1
+
+ my $numer = $x -> copy() -> round(@r);
+ return $numer unless wantarray;
+ my $denom = $class -> bone(@r);
+ return $numer, $denom;
+}
+
+sub numerator {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $upgrade -> numerator($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ return $x -> copy() -> round(@r);
+}
+
+sub denominator {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ return $upgrade -> denominator($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ return $x -> is_nan() ? $class -> bnan(@r) : $class -> bone(@r);
+}
+
###############################################################################
# String conversion methods
###############################################################################
sub bstr {
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
return 'inf'; # +inf
}
+
+ # Upgrade?
+
+ return $upgrade -> bstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
my $str = $LIB->_str($x->{value});
return $x->{sign} eq '-' ? "-$str" : $str;
}
@@ -3727,125 +4286,223 @@ sub bstr {
# written as "1.2345e+4".
sub bsstr {
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
return 'inf'; # +inf
}
- my ($m, $e) = $x -> parts();
- my $str = $LIB->_str($m->{value}) . 'e+' . $LIB->_str($e->{value});
- return $x->{sign} eq '-' ? "-$str" : $str;
+
+ # Upgrade?
+
+ return $upgrade -> bsstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ my $expo = $LIB -> _zeros($x->{value});
+ my $mant = $LIB -> _str($x->{value});
+ $mant = substr($mant, 0, -$expo) if $expo; # strip trailing zeros
+
+ ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo;
}
-# Normalized notation, e.g., "12345" is written as "12345e+0".
+# Normalized notation, e.g., "12345" is written as "1.2345e+4".
sub bnstr {
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
return 'inf'; # +inf
}
- return $x -> bstr() if $x -> is_nan() || $x -> is_inf();
+ # Upgrade?
- my ($mant, $expo) = $x -> parts();
+ return $upgrade -> bnstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
- # The "fraction posision" is the position (offset) for the decimal point
- # relative to the end of the digit string.
+ # Finite number
- my $fracpos = $mant -> length() - 1;
- if ($fracpos == 0) {
- my $str = $LIB->_str($mant->{value}) . "e+" . $LIB->_str($expo->{value});
- return $x->{sign} eq '-' ? "-$str" : $str;
- }
+ my $expo = $LIB -> _zeros($x->{value});
+ my $mant = $LIB -> _str($x->{value});
+ $mant = substr($mant, 0, -$expo) if $expo; # strip trailing zeros
- $expo += $fracpos;
- my $mantstr = $LIB->_str($mant -> {value});
- substr($mantstr, -$fracpos, 0) = '.';
+ my $mantlen = CORE::length($mant);
+ if ($mantlen > 1) {
+ $expo += $mantlen - 1; # adjust exponent
+ substr $mant, 1, 0, "."; # insert decimal point
+ }
- my $str = $mantstr . 'e+' . $LIB->_str($expo -> {value});
- return $x->{sign} eq '-' ? "-$str" : $str;
+ ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo;
}
# Engineering notation, e.g., "12345" is written as "12.345e+3".
sub bestr {
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
return 'inf'; # +inf
}
- my ($mant, $expo) = $x -> parts();
+ # Upgrade?
- my $sign = $mant -> sign();
- $mant -> babs();
+ return $upgrade -> bestr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
- my $mantstr = $LIB->_str($mant -> {value});
- my $mantlen = CORE::length($mantstr);
+ # Finite number
- my $dotidx = 1;
- $expo += $mantlen - 1;
+ my $expo = $LIB -> _zeros($x->{value}); # number of trailing zeros
+ my $mant = $LIB -> _str($x->{value}); # mantissa as a string
+ $mant = substr($mant, 0, -$expo) if $expo; # strip trailing zeros
+ my $mantlen = CORE::length($mant); # length of mantissa
+ $expo += $mantlen;
- my $c = $expo -> copy() -> bmod(3);
- $expo -= $c;
- $dotidx += $c;
+ my $dotpos = ($expo - 1) % 3 + 1; # offset of decimal point
+ $expo -= $dotpos;
- if ($mantlen < $dotidx) {
- $mantstr .= "0" x ($dotidx - $mantlen);
- } elsif ($mantlen > $dotidx) {
- substr($mantstr, $dotidx, 0) = ".";
+ if ($dotpos < $mantlen) {
+ substr $mant, $dotpos, 0, "."; # insert decimal point
+ } elsif ($dotpos > $mantlen) {
+ $mant .= "0" x ($dotpos - $mantlen); # append zeros
}
- my $str = $mantstr . 'e+' . $LIB->_str($expo -> {value});
- return $sign eq "-" ? "-$str" : $str;
+ ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo;
}
-# Decimal notation, e.g., "12345".
+# Decimal notation, e.g., "12345" (no exponent).
sub bdstr {
- my $x = shift;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
if ($x->{sign} ne '+' && $x->{sign} ne '-') {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
- my $str = $LIB->_str($x->{value});
- return $x->{sign} eq '-' ? "-$str" : $str;
+ # Upgrade?
+
+ return $upgrade -> bdstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{value});
+}
+
+# Fraction notation, e.g., "123.4375" is written as "1975/16", but "123" is
+# written as "123", not "123/1".
+
+sub bfstr {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> bfstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{value});
}
sub to_hex {
- # return as hex string, with prefixed 0x
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+ # return as hex string with no prefix
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> to_hex($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
my $hex = $LIB->_to_hex($x->{value});
return $x->{sign} eq '-' ? "-$hex" : $hex;
}
sub to_oct {
- # return as octal string, with prefixed 0
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+ # return as octal string with no prefix
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> to_oct($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
my $oct = $LIB->_to_oct($x->{value});
return $x->{sign} eq '-' ? "-$oct" : $oct;
}
sub to_bin {
- # return as binary string, with prefixed 0b
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+ # return as binary string with no prefix
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> to_bin($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
my $bin = $LIB->_to_bin($x->{value});
return $x->{sign} eq '-' ? "-$bin" : $bin;
@@ -3853,12 +4510,17 @@ sub to_bin {
sub to_bytes {
# return a byte string
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
croak("to_bytes() requires a finite, non-negative integer")
if $x -> is_neg() || ! $x -> is_int();
+ return $upgrade -> to_bytes($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
croak("to_bytes() requires a newer version of the $LIB library.")
unless $LIB->can('_to_bytes');
@@ -3867,22 +4529,23 @@ sub to_bytes {
sub to_base {
# return a base anything string
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+
+ # $cs is the collation sequence
+ my ($class, $x, $base, $cs, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
croak("the value to convert must be a finite, non-negative integer")
if $x -> is_neg() || !$x -> is_int();
- my $base = shift;
- $base = __PACKAGE__->new($base) unless ref($base);
-
croak("the base must be a finite integer >= 2")
if $base < 2 || ! $base -> is_int();
# If no collating sequence is given, pass some of the conversions to
# methods optimized for those cases.
- if (! @_) {
+ unless (defined $cs) {
return $x -> to_bin() if $base == 2;
return $x -> to_oct() if $base == 8;
return uc $x -> to_hex() if $base == 16;
@@ -3892,38 +4555,93 @@ sub to_base {
croak("to_base() requires a newer version of the $LIB library.")
unless $LIB->can('_to_base');
- return $LIB->_to_base($x->{value}, $base -> {value}, @_ ? shift() : ());
+ return $upgrade -> to_base($x, $base, $cs, @r)
+ if defined($upgrade) && (!$x -> isa($class) || !$base -> isa($class));
+
+ return $LIB->_to_base($x->{value}, $base -> {value},
+ defined($cs) ? $cs : ());
+}
+
+sub to_base_num {
+ # return a base anything array ref, e.g.,
+ # Math::BigInt -> new(255) -> to_base_num(10) returns [2, 5, 5];
+
+ # $cs is the collation sequence
+ my ($class, $x, $base, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_) : objectify(2, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ croak("the value to convert must be a finite non-negative integer")
+ if $x -> is_neg() || !$x -> is_int();
+
+ croak("the base must be a finite integer >= 2")
+ if $base < 2 || ! $base -> is_int();
+
+ croak("to_base() requires a newer version of the $LIB library.")
+ unless $LIB->can('_to_base');
+
+ return $upgrade -> to_base_num($x, $base, @r)
+ if defined($upgrade) && (!$x -> isa($class) || !$base -> isa($class));
+
+ # Get a reference to an array of library thingies, and replace each element
+ # with a Math::BigInt object using that thingy.
+
+ my $vals = $LIB -> _to_base_num($x->{value}, $base -> {value});
+
+ for my $i (0 .. $#$vals) {
+ my $x = $class -> bzero();
+ $x -> {value} = $vals -> [$i];
+ $vals -> [$i] = $x;
+ }
+
+ return $vals;
}
sub as_hex {
# return as hex string, with prefixed 0x
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return $upgrade -> as_hex($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
my $hex = $LIB->_as_hex($x->{value});
return $x->{sign} eq '-' ? "-$hex" : $hex;
}
sub as_oct {
# return as octal string, with prefixed 0
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return $upgrade -> as_oct($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
my $oct = $LIB->_as_oct($x->{value});
return $x->{sign} eq '-' ? "-$oct" : $oct;
}
sub as_bin {
# return as binary string, with prefixed 0b
- my $x = shift;
- $x = __PACKAGE__->new($x) if !ref($x);
+
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return $upgrade -> as_bin($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
my $bin = $LIB->_as_bin($x->{value});
return $x->{sign} eq '-' ? "-$bin" : $bin;
}
@@ -3936,21 +4654,25 @@ sub as_bin {
sub numify {
# Make a Perl scalar number from a Math::BigInt object.
- my $x = shift;
- $x = __PACKAGE__->new($x) unless ref $x;
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
if ($x -> is_nan()) {
require Math::Complex;
- my $inf = Math::Complex::Inf();
+ my $inf = $Math::Complex::Inf;
return $inf - $inf;
}
if ($x -> is_inf()) {
require Math::Complex;
- my $inf = Math::Complex::Inf();
+ my $inf = $Math::Complex::Inf;
return $x -> is_negative() ? -$inf : $inf;
}
+ return $upgrade -> numify($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
my $num = 0 + $LIB->_num($x->{value});
return $x->{sign} eq '-' ? -$num : $num;
}
@@ -4015,9 +4737,13 @@ sub objectify {
no strict 'refs';
- # What we upgrade to, if anything.
+ # What we upgrade to, if anything. Note that we need the whole upgrade
+ # chain, since there might be multiple levels of upgrading. E.g., class A
+ # upgrades to class B, which upgrades to class C. Delay getting the chain
+ # until we actually need it.
- my $up = ${"$a[0]::upgrade"};
+ my @upg = ();
+ my $have_upgrade_chain = 0;
# Disable downgrading, because Math::BigFloat -> foo('1.0', '2.0') needs
# floats.
@@ -4028,7 +4754,7 @@ sub objectify {
${"$a[0]::downgrade"} = undef;
}
- for my $i (1 .. $count) {
+ ARG: for my $i (1 .. $count) {
my $ref = ref $a[$i];
@@ -4043,10 +4769,23 @@ sub objectify {
next if $ref -> isa($a[0]);
- # Upgrading is OK, so skip further tests if the argument is upgraded.
+ # Upgrading is OK, so skip further tests if the argument is upgraded,
+ # but first get the whole upgrade chain if we haven't got it yet.
+
+ unless ($have_upgrade_chain) {
+ my $cls = $class;
+ my $upg = $cls -> upgrade();
+ while (defined $upg) {
+ last if $upg eq $cls;
+ push @upg, $upg;
+ $cls = $upg;
+ $upg = $cls -> upgrade();
+ }
+ $have_upgrade_chain = 1;
+ }
- if (defined $up && $ref -> isa($up)) {
- next;
+ for my $upg (@upg) {
+ next ARG if $ref -> isa($upg);
}
# See if we can call one of the as_xxx() methods. We don't know whether
@@ -4105,233 +4844,190 @@ sub import {
my $class = shift;
$IMPORT++; # remember we did import()
my @a; # unrecognized arguments
- my $warn_or_die = 0; # 0 - no warn, 1 - warn, 2 - die
- for (my $i = 0; $i <= $#_ ; $i++) {
- if ($_[$i] eq ':constant') {
- # this causes overlord er load to step in
+
+ while (@_) {
+ my $param = shift;
+
+ # Enable overloading of constants.
+
+ if ($param eq ':constant') {
overload::constant
- integer => sub { $class->new(shift) },
- binary => sub { $class->new(shift) };
- } elsif ($_[$i] eq 'upgrade') {
- # this causes upgrading
- $upgrade = $_[$i+1]; # or undef to disable
- $i++;
- } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
- # this causes a different low lib to take care...
- $LIB = $_[$i+1] || '';
- # try => 0 (no warn)
- # lib => 1 (warn on fallback)
- # only => 2 (die on fallback)
- $warn_or_die = 1 if $_[$i] eq 'lib';
- $warn_or_die = 2 if $_[$i] eq 'only';
- $i++;
- } else {
- push @a, $_[$i];
+
+ integer => sub {
+ $class -> new(shift);
+ },
+
+ float => sub {
+ $class -> new(shift);
+ },
+
+ binary => sub {
+ # E.g., a literal 0377 shall result in an object whose value
+ # is decimal 255, but new("0377") returns decimal 377.
+ return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/;
+ $class -> new(shift);
+ };
+ next;
}
- }
- # any non :constant stuff is handled by our parent, Exporter
- if (@a > 0) {
- $class->SUPER::import(@a); # need it for subclasses
- $class->export_to_level(1, $class, @a); # need it for MBF
- }
-
- # try to load core math lib
- my @c = split /\s*,\s*/, $LIB;
- foreach (@c) {
- tr/a-zA-Z0-9://cd; # limit to sane characters
- }
- push @c, \'Calc' # if all fail, try these
- if $warn_or_die < 2; # but not for "only"
- $LIB = ''; # signal error
- foreach my $l (@c) {
- # fallback libraries are "marked" as \'string', extract string if nec.
- my $lib = $l;
- $lib = $$l if ref($l);
-
- next unless defined($lib) && CORE::length($lib);
- $lib = 'Math::BigInt::'.$lib if $lib !~ /^Math::BigInt/i;
- $lib =~ s/\.pm$//;
- my @parts = split /::/, $lib; # Math::BigInt => Math BigInt
- $parts[-1] .= '.pm'; # BigInt => BigInt.pm
- require File::Spec;
- my $file = File::Spec->catfile(@parts);
- eval { require $file; };
- if ($@ eq '') {
- $lib->import();
- $LIB = $lib;
- if ($warn_or_die > 0 && ref($l)) {
- my $msg = "Math::BigInt: couldn't load specified"
- . " math lib(s), fallback to $lib";
- carp($msg) if $warn_or_die == 1;
- croak($msg) if $warn_or_die == 2;
- }
- last; # found a usable one, break
+
+ # Upgrading.
+
+ if ($param eq 'upgrade') {
+ $class -> upgrade(shift);
+ next;
}
- }
- if ($LIB eq '') {
- if ($warn_or_die == 2) {
- croak("Couldn't load specified math lib(s)" .
- " and fallback disallowed");
- } else {
- croak("Couldn't load any math lib(s), not even fallback to Calc.pm");
+
+ # Downgrading.
+
+ if ($param eq 'downgrade') {
+ $class -> downgrade(shift);
+ next;
}
- }
- # notify callbacks
- foreach my $class (keys %CALLBACKS) {
- &{$CALLBACKS{$class}}($LIB);
- }
+ # Accuracy.
- # import done
-}
+ if ($param eq 'accuracy') {
+ $class -> accuracy(shift);
+ next;
+ }
-sub _register_callback {
- my ($class, $callback) = @_;
+ # Precision.
- if (ref($callback) ne 'CODE') {
- croak("$callback is not a coderef");
- }
- $CALLBACKS{$class} = $callback;
-}
+ if ($param eq 'precision') {
+ $class -> precision(shift);
+ next;
+ }
-sub _split_dec_string {
- my $str = shift;
+ # Rounding mode.
- if ($str =~ s/
- ^
+ if ($param eq 'round_mode') {
+ $class -> round_mode(shift);
+ next;
+ }
- # leading whitespace
- ( \s* )
+ # Backend library.
- # optional sign
- ( [+-]? )
+ if ($param =~ /^(lib|try|only)\z/) {
+ # try => 0 (no warn if unavailable module)
+ # lib => 1 (warn on fallback)
+ # only => 2 (die on fallback)
- # significand
- (
- \d+ (?: _ \d+ )*
- (?:
- \.
- (?: \d+ (?: _ \d+ )* )?
- )?
- |
- \.
- \d+ (?: _ \d+ )*
- )
-
- # optional exponent
- (?:
- [Ee]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
-
- # trailing stuff
- ( \D .*? )?
+ # Get the list of user-specified libraries.
- \z
- //x) {
- my $leading = $1;
- my $significand_sgn = $2 || '+';
- my $significand_abs = $3;
- my $exponent_sgn = $4 || '+';
- my $exponent_abs = $5 || '0';
- my $trailing = $6;
-
- # Remove underscores and leading zeros.
-
- $significand_abs =~ tr/_//d;
- $exponent_abs =~ tr/_//d;
-
- $significand_abs =~ s/^0+(.)/$1/;
- $exponent_abs =~ s/^0+(.)/$1/;
-
- # If the significand contains a dot, remove it and adjust the exponent
- # accordingly. E.g., "1234.56789e+3" -> "123456789e-2"
-
- my $idx = index $significand_abs, '.';
- if ($idx > -1) {
- $significand_abs =~ s/0+\z//;
- substr($significand_abs, $idx, 1) = '';
- my $exponent = $exponent_sgn . $exponent_abs;
- $exponent .= $idx - CORE::length($significand_abs);
- $exponent_abs = abs $exponent;
- $exponent_sgn = $exponent < 0 ? '-' : '+';
- }
+ croak "Library argument for import parameter '$param' is missing"
+ unless @_;
+ my $libs = shift;
+ croak "Library argument for import parameter '$param' is undefined"
+ unless defined($libs);
- return($leading,
- $significand_sgn, $significand_abs,
- $exponent_sgn, $exponent_abs,
- $trailing);
- }
+ # Check and clean up the list of user-specified libraries.
- return undef;
-}
+ my @libs;
+ for my $lib (split /,/, $libs) {
+ $lib =~ s/^\s+//;
+ $lib =~ s/\s+$//;
-sub _split {
- # input: num_str; output: undef for invalid or
- # (\$mantissa_sign, \$mantissa_value, \$mantissa_fraction,
- # \$exp_sign, \$exp_value)
- # Internal, take apart a string and return the pieces.
- # Strip leading/trailing whitespace, leading zeros, underscore and reject
- # invalid input.
- my $x = shift;
+ if ($lib =~ /[^a-zA-Z0-9_:]/) {
+ carp "Library name '$lib' contains invalid characters";
+ next;
+ }
+
+ if (! CORE::length $lib) {
+ carp "Library name is empty";
+ next;
+ }
- # strip white space at front, also extraneous leading zeros
- $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2'
- $x =~ s/^\s+//; # but this will
- $x =~ s/\s+$//g; # strip white space at end
+ $lib = "Math::BigInt::$lib" if $lib !~ /^Math::BigInt::/i;
- # shortcut, if nothing to split, return early
- if ($x =~ /^[+-]?[0-9]+\z/) {
- $x =~ s/^([+-])0*([0-9])/$2/;
- my $sign = $1 || '+';
- return (\$sign, \$x, \'', \'', \0);
- }
+ # If a library has already been loaded, that is OK only if the
+ # requested library is identical to the loaded one.
- # invalid starting char?
- return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/;
+ if (defined($LIB)) {
+ if ($lib ne $LIB) {
+ #carp "Library '$LIB' has already been loaded, so",
+ # " ignoring requested library '$lib'";
+ }
+ next;
+ }
- return Math::BigInt->from_hex($x) if $x =~ /^[+-]?0x/; # hex string
- return Math::BigInt->from_bin($x) if $x =~ /^[+-]?0b/; # binary string
+ push @libs, $lib;
+ }
- # strip underscores between digits
- $x =~ s/([0-9])_([0-9])/$1$2/g;
- $x =~ s/([0-9])_([0-9])/$1$2/g; # do twice for 1_2_3
+ next if defined $LIB;
- # some possible inputs:
- # 2.1234 # 0.12 # 1 # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2
- # .2 # 1_2_3.4_5_6 # 1.4E1_2_3 # 1e3 # +.2 # 0e999
+ croak "Library list contains no valid libraries" unless @libs;
- my ($m, $e, $last) = split /[Ee]/, $x;
- return if defined $last; # last defined => 1e2E3 or others
- $e = '0' if !defined $e || $e eq "";
+ # Try to load the specified libraries, if any.
- # sign, value for exponent, mantint, mantfrac
- my ($es, $ev, $mis, $miv, $mfv);
- # valid exponent?
- if ($e =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
- {
- $es = $1;
- $ev = $2;
- # valid mantissa?
- return if $m eq '.' || $m eq '';
- my ($mi, $mf, $lastf) = split /\./, $m;
- return if defined $lastf; # lastf defined => 1.2.3 or others
- $mi = '0' if !defined $mi;
- $mi .= '0' if $mi =~ /^[\-\+]?$/;
- $mf = '0' if !defined $mf || $mf eq '';
- if ($mi =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
- {
- $mis = $1 || '+';
- $miv = $2;
- return unless ($mf =~ /^([0-9]*?)0*$/); # strip trailing zeros
- $mfv = $1;
- # handle the 0e999 case here
- $ev = 0 if $miv eq '0' && $mfv eq '';
- return (\$mis, \$miv, \$mfv, \$es, \$ev);
+ for (my $i = 0 ; $i <= $#libs ; $i++) {
+ my $lib = $libs[$i];
+ eval "require $lib";
+ unless ($@) {
+ $LIB = $lib;
+ last;
+ }
+ }
+
+ next if defined $LIB;
+
+ # No library has been loaded, and none of the requested libraries
+ # could be loaded, and fallback and the user doesn't allow fallback.
+
+ if ($param eq 'only') {
+ croak "Couldn't load the specified math lib(s) ",
+ join(", ", map "'$_'", @libs),
+ ", and fallback to '$DEFAULT_LIB' is not allowed";
+ }
+
+ # No library has been loaded, and none of the requested libraries
+ # could be loaded, but the user accepts the use of a fallback
+ # library, so try to load it.
+
+ eval "require $DEFAULT_LIB";
+ if ($@) {
+ croak "Couldn't load the specified math lib(s) ",
+ join(", ", map "'$_'", @libs),
+ ", not even the fallback lib '$DEFAULT_LIB'";
+ }
+
+ # The fallback library was successfully loaded, but the user
+ # might want to know that we are using the fallback.
+
+ if ($param eq 'lib') {
+ carp "Couldn't load the specified math lib(s) ",
+ join(", ", map "'$_'", @libs),
+ ", so using fallback lib '$DEFAULT_LIB'";
+ }
+
+ next;
}
+
+ # Unrecognized parameter.
+
+ push @a, $param;
+ }
+
+ # Any non-':constant' stuff is handled by our parent, Exporter
+
+ if (@a) {
+ $class->SUPER::import(@a); # need it for subclasses
+ $class->export_to_level(1, $class, @a); # need it for Math::BigFloat
+ }
+
+ # We might not have loaded any backend library yet, either because the user
+ # didn't specify any, or because the specified libraries failed to load and
+ # the user allows the use of a fallback library.
+
+ unless (defined $LIB) {
+ eval "require $DEFAULT_LIB";
+ if ($@) {
+ croak "No lib specified, and couldn't load the default",
+ " lib '$DEFAULT_LIB'";
+ }
+ $LIB = $DEFAULT_LIB;
}
- return; # NaN, not a number
+
+ # import done
}
sub _trailing_zeros {
@@ -4386,7 +5082,8 @@ sub _find_round_parameters {
if (!defined $a) {
foreach ($self, @args) {
# take the defined one, or if both defined, the one that is smaller
- $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
+ $a = $_->{_a}
+ if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
}
}
if (!defined $p) {
@@ -4394,7 +5091,8 @@ sub _find_round_parameters {
foreach ($self, @args) {
# take the defined one, or if both defined, the one that is bigger
# -2 > -3, and 3 > 2
- $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+ $p = $_->{_p}
+ if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
}
}
@@ -4422,6 +5120,699 @@ sub _find_round_parameters {
($self, $a, $p, $r);
}
+# Return true if the input is numeric and false if it is a string.
+
+sub _is_numeric {
+ shift; # class name
+ my $value = shift;
+ no warnings 'numeric';
+ # detect numbers
+ # string & "" -> ""
+ # number & "" -> 0 (with warning)
+ # nan and inf can detect as numbers, so check with * 0
+ return unless CORE::length((my $dummy = "") & $value);
+ return unless 0 + $value eq $value;
+ return 1 if $value * 0 == 0;
+ return -1; # Inf/NaN
+}
+
+# Trims the sign of the significand, the (absolute value of the) significand,
+# the sign of the exponent, and the (absolute value of the) exponent. The
+# returned values have no underscores ("_") or unnecessary leading or trailing
+# zeros.
+
+sub _trim_split_parts {
+ shift; # class name
+
+ my $sig_sgn = shift() || '+';
+ my $sig_str = shift() || '0';
+ my $exp_sgn = shift() || '+';
+ my $exp_str = shift() || '0';
+
+ $sig_str =~ tr/_//d; # "1.0_0_0" -> "1.000"
+ $sig_str =~ s/^0+//; # "01.000" -> "1.000"
+ $sig_str =~ s/\.0*$// # "1.000" -> "1"
+ || $sig_str =~ s/(\..*[^0])0+$/$1/; # "1.010" -> "1.01"
+ $sig_str = '0' unless CORE::length($sig_str);
+
+ return '+', '0', '+', '0' if $sig_str eq '0';
+
+ $exp_str =~ tr/_//d; # "01_234" -> "01234"
+ $exp_str =~ s/^0+//; # "01234" -> "1234"
+ $exp_str = '0' unless CORE::length($exp_str);
+ $exp_sgn = '+' if $exp_str eq '0'; # "+3e-0" -> "+3e+0"
+
+ return $sig_sgn, $sig_str, $exp_sgn, $exp_str;
+}
+
+# Takes any string representing a valid decimal number and splits it into four
+# strings: the sign of the significand, the absolute value of the significand,
+# the sign of the exponent, and the absolute value of the exponent. Both the
+# significand and the exponent are in base 10.
+#
+# Perl accepts literals like the following. The value is 100.1.
+#
+# 1__0__.__0__1__e+0__1__ (prints "Misplaced _ in number")
+# 1_0.0_1e+0_1
+#
+# Strings representing decimal numbers do not allow underscores, so only the
+# following is valid
+#
+# "10.01e+01"
+
+sub _dec_str_to_dec_str_parts {
+ my $class = shift;
+ my $str = shift;
+
+ if ($str =~ /
+ ^
+
+ # optional leading whitespace
+ \s*
+
+ # optional sign
+ ( [+-]? )
+
+ # significand
+ (
+ # integer part and optional fraction part ...
+ \d+ (?: _+ \d+ )* _*
+ (?:
+ \.
+ (?: _* \d+ (?: _+ \d+ )* _* )?
+ )?
+ |
+ # ... or mandatory fraction part
+ \.
+ \d+ (?: _+ \d+ )* _*
+ )
+
+ # optional exponent
+ (?:
+ [Ee]
+ ( [+-]? )
+ ( \d+ (?: _+ \d+ )* _* )
+ )?
+
+ # optional trailing whitespace
+ \s*
+
+ $
+ /x)
+ {
+ return $class -> _trim_split_parts($1, $2, $3, $4);
+ }
+
+ return;
+}
+
+# Takes any string representing a valid hexadecimal number and splits it into
+# four strings: the sign of the significand, the absolute value of the
+# significand, the sign of the exponent, and the absolute value of the exponent.
+# The significand is in base 16, and the exponent is in base 2.
+#
+# Perl accepts literals like the following. The "x" might be a capital "X". The
+# value is 32.0078125.
+#
+# 0x__1__0__.0__1__p+0__1__ (prints "Misplaced _ in number")
+# 0x1_0.0_1p+0_1
+#
+# The CORE::hex() function does not accept floating point accepts
+#
+# "0x_1_0"
+# "x_1_0"
+# "_1_0"
+
+sub _hex_str_to_hex_str_parts {
+ my $class = shift;
+ my $str = shift;
+
+ if ($str =~ /
+ ^
+
+ # optional leading whitespace
+ \s*
+
+ # optional sign
+ ( [+-]? )
+
+ # optional hex prefix
+ (?: 0? [Xx] _* )?
+
+ # significand using the hex digits 0..9 and a..f
+ (
+ # integer part and optional fraction part ...
+ [0-9a-fA-F]+ (?: _+ [0-9a-fA-F]+ )* _*
+ (?:
+ \.
+ (?: _* [0-9a-fA-F]+ (?: _+ [0-9a-fA-F]+ )* _* )?
+ )?
+ |
+ # ... or mandatory fraction part
+ \.
+ [0-9a-fA-F]+ (?: _+ [0-9a-fA-F]+ )* _*
+ )
+
+ # optional exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _+ \d+ )* _* )
+ )?
+
+ # optional trailing whitespace
+ \s*
+
+ $
+ /x)
+ {
+ return $class -> _trim_split_parts($1, $2, $3, $4);
+ }
+
+ return;
+}
+
+# Takes any string representing a valid octal number and splits it into four
+# strings: the sign of the significand, the absolute value of the significand,
+# the sign of the exponent, and the absolute value of the exponent. The
+# significand is in base 8, and the exponent is in base 2.
+
+sub _oct_str_to_oct_str_parts {
+ my $class = shift;
+ my $str = shift;
+
+ if ($str =~ /
+ ^
+
+ # optional leading whitespace
+ \s*
+
+ # optional sign
+ ( [+-]? )
+
+ # optional octal prefix
+ (?: 0? [Oo] _* )?
+
+ # significand using the octal digits 0..7
+ (
+ # integer part and optional fraction part ...
+ [0-7]+ (?: _+ [0-7]+ )* _*
+ (?:
+ \.
+ (?: _* [0-7]+ (?: _+ [0-7]+ )* _* )?
+ )?
+ |
+ # ... or mandatory fraction part
+ \.
+ [0-7]+ (?: _+ [0-7]+ )* _*
+ )
+
+ # optional exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _+ \d+ )* _* )
+ )?
+
+ # optional trailing whitespace
+ \s*
+
+ $
+ /x)
+ {
+ return $class -> _trim_split_parts($1, $2, $3, $4);
+ }
+
+ return;
+}
+
+# Takes any string representing a valid binary number and splits it into four
+# strings: the sign of the significand, the absolute value of the significand,
+# the sign of the exponent, and the absolute value of the exponent. The
+# significand is in base 2, and the exponent is in base 2.
+
+sub _bin_str_to_bin_str_parts {
+ my $class = shift;
+ my $str = shift;
+
+ if ($str =~ /
+ ^
+
+ # optional leading whitespace
+ \s*
+
+ # optional sign
+ ( [+-]? )
+
+ # optional binary prefix
+ (?: 0? [Bb] _* )?
+
+ # significand using the binary digits 0 and 1
+ (
+ # integer part and optional fraction part ...
+ [01]+ (?: _+ [01]+ )* _*
+ (?:
+ \.
+ (?: _* [01]+ (?: _+ [01]+ )* _* )?
+ )?
+ |
+ # ... or mandatory fraction part
+ \.
+ [01]+ (?: _+ [01]+ )* _*
+ )
+
+ # optional exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _+ \d+ )* _* )
+ )?
+
+ # optional trailing whitespace
+ \s*
+
+ $
+ /x)
+ {
+ return $class -> _trim_split_parts($1, $2, $3, $4);
+ }
+
+ return;
+}
+
+# Takes any string representing a valid decimal number and splits it into four
+# parts: the sign of the significand, the absolute value of the significand as a
+# libray thingy, the sign of the exponent, and the absolute value of the
+# exponent as a library thingy.
+
+sub _dec_str_parts_to_flt_lib_parts {
+ shift; # class name
+
+ my ($sig_sgn, $sig_str, $exp_sgn, $exp_str) = @_;
+
+ # Handle zero.
+
+ if ($sig_str eq '0') {
+ return '+', $LIB -> _zero(), '+', $LIB -> _zero();
+ }
+
+ # Absolute value of exponent as library "object".
+
+ my $exp_lib = $LIB -> _new($exp_str);
+
+ # If there is a dot in the significand, remove it so the significand
+ # becomes an integer and adjust the exponent accordingly. Also remove
+ # leading zeros which might now appear in the significand. E.g.,
+ #
+ # 12.345e-2 -> 12345e-5
+ # 12.345e+2 -> 12345e-1
+ # 0.0123e+5 -> 00123e+1 -> 123e+1
+
+ my $idx = index $sig_str, '.';
+ if ($idx >= 0) {
+ substr($sig_str, $idx, 1) = '';
+
+ # delta = length - index
+ my $delta = $LIB -> _new(CORE::length($sig_str));
+ $delta = $LIB -> _sub($delta, $LIB -> _new($idx));
+
+ # exponent - delta
+ ($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+');
+
+ $sig_str =~ s/^0+//;
+ }
+
+ # If there are trailing zeros in the significand, remove them and
+ # adjust the exponent. E.g.,
+ #
+ # 12340e-5 -> 1234e-4
+ # 12340e-1 -> 1234e0
+ # 12340e+3 -> 1234e4
+
+ if ($sig_str =~ s/(0+)\z//) {
+ my $len = CORE::length($1);
+ ($exp_lib, $exp_sgn) =
+ $LIB -> _sadd($exp_lib, $exp_sgn, $LIB -> _new($len), '+');
+ }
+
+ # At this point, the significand is empty or an integer with no trailing
+ # zeros. The exponent is in base 10.
+
+ unless (CORE::length $sig_str) {
+ return '+', $LIB -> _zero(), '+', $LIB -> _zero();
+ }
+
+ # Absolute value of significand as library "object".
+
+ my $sig_lib = $LIB -> _new($sig_str);
+
+ return $sig_sgn, $sig_lib, $exp_sgn, $exp_lib;
+}
+
+# Takes any string representing a valid binary number and splits it into four
+# parts: the sign of the significand, the absolute value of the significand as a
+# libray thingy, the sign of the exponent, and the absolute value of the
+# exponent as a library thingy.
+
+sub _bin_str_parts_to_flt_lib_parts {
+ shift; # class name
+
+ my ($sig_sgn, $sig_str, $exp_sgn, $exp_str, $bpc) = @_;
+ my $bpc_lib = $LIB -> _new($bpc);
+
+ # Handle zero.
+
+ if ($sig_str eq '0') {
+ return '+', $LIB -> _zero(), '+', $LIB -> _zero();
+ }
+
+ # Absolute value of exponent as library "object".
+
+ my $exp_lib = $LIB -> _new($exp_str);
+
+ # If there is a dot in the significand, remove it so the significand
+ # becomes an integer and adjust the exponent accordingly. Also remove
+ # leading zeros which might now appear in the significand. E.g., with
+ # hexadecimal numbers
+ #
+ # 12.345p-2 -> 12345p-14
+ # 12.345p+2 -> 12345p-10
+ # 0.0123p+5 -> 00123p-11 -> 123p-11
+
+ my $idx = index $sig_str, '.';
+ if ($idx >= 0) {
+ substr($sig_str, $idx, 1) = '';
+
+ # delta = (length - index) * bpc
+ my $delta = $LIB -> _new(CORE::length($sig_str));
+ $delta = $LIB -> _sub($delta, $LIB -> _new($idx));
+ $delta = $LIB -> _mul($delta, $bpc_lib) if $bpc != 1;
+
+ # exponent - delta
+ ($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+');
+
+ $sig_str =~ s/^0+//;
+ }
+
+ # If there are trailing zeros in the significand, remove them and
+ # adjust the exponent accordingly. E.g., with hexadecimal numbers
+ #
+ # 12340p-5 -> 1234p-1
+ # 12340p-1 -> 1234p+3
+ # 12340p+3 -> 1234p+7
+
+ if ($sig_str =~ s/(0+)\z//) {
+
+ # delta = length * bpc
+ my $delta = $LIB -> _new(CORE::length($1));
+ $delta = $LIB -> _mul($delta, $bpc_lib) if $bpc != 1;
+
+ # exponent + delta
+ ($exp_lib, $exp_sgn) = $LIB -> _sadd($exp_lib, $exp_sgn, $delta, '+');
+ }
+
+ # At this point, the significand is empty or an integer with no leading
+ # or trailing zeros. The exponent is in base 2.
+
+ unless (CORE::length $sig_str) {
+ return '+', $LIB -> _zero(), '+', $LIB -> _zero();
+ }
+
+ # Absolute value of significand as library "object".
+
+ my $sig_lib = $bpc == 1 ? $LIB -> _from_bin('0b' . $sig_str)
+ : $bpc == 3 ? $LIB -> _from_oct('0' . $sig_str)
+ : $bpc == 4 ? $LIB -> _from_hex('0x' . $sig_str)
+ : die "internal error: invalid exponent multiplier";
+
+ # If the exponent (in base 2) is positive or zero ...
+
+ if ($exp_sgn eq '+') {
+
+ if (!$LIB -> _is_zero($exp_lib)) {
+
+ # Multiply significand by 2 raised to the exponent.
+
+ my $p = $LIB -> _pow($LIB -> _two(), $exp_lib);
+ $sig_lib = $LIB -> _mul($sig_lib, $p);
+ $exp_lib = $LIB -> _zero();
+ }
+ }
+
+ # ... else if the exponent is negative ...
+
+ else {
+
+ # Rather than dividing the significand by 2 raised to the absolute
+ # value of the exponent, multiply the significand by 5 raised to the
+ # absolute value of the exponent and let the exponent be in base 10:
+ #
+ # a * 2^(-b) = a * 5^b * 10^(-b) = c * 10^(-b), where c = a * 5^b
+
+ my $p = $LIB -> _pow($LIB -> _new("5"), $exp_lib);
+ $sig_lib = $LIB -> _mul($sig_lib, $p);
+ }
+
+ # Adjust for the case when the conversion to decimal introduced trailing
+ # zeros in the significand.
+
+ my $n = $LIB -> _zeros($sig_lib);
+ if ($n) {
+ $n = $LIB -> _new($n);
+ $sig_lib = $LIB -> _rsft($sig_lib, $n, 10);
+ ($exp_lib, $exp_sgn) = $LIB -> _sadd($exp_lib, $exp_sgn, $n, '+');
+ }
+
+ return $sig_sgn, $sig_lib, $exp_sgn, $exp_lib;
+}
+
+# Takes any string representing a valid hexadecimal number and splits it into
+# four parts: the sign of the significand, the absolute value of the significand
+# as a libray thingy, the sign of the exponent, and the absolute value of the
+# exponent as a library thingy.
+
+sub _hex_str_to_flt_lib_parts {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _hex_str_to_hex_str_parts($str)) {
+ return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 4); # 4 bits pr. chr
+ }
+ return;
+}
+
+# Takes any string representing a valid octal number and splits it into four
+# parts: the sign of the significand, the absolute value of the significand as a
+# libray thingy, the sign of the exponent, and the absolute value of the
+# exponent as a library thingy.
+
+sub _oct_str_to_flt_lib_parts {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _oct_str_to_oct_str_parts($str)) {
+ return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 3); # 3 bits pr. chr
+ }
+ return;
+}
+
+# Takes any string representing a valid binary number and splits it into four
+# parts: the sign of the significand, the absolute value of the significand as a
+# libray thingy, the sign of the exponent, and the absolute value of the
+# exponent as a library thingy.
+
+sub _bin_str_to_flt_lib_parts {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _bin_str_to_bin_str_parts($str)) {
+ return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 1); # 1 bit pr. chr
+ }
+ return;
+}
+
+# Decimal string is split into the sign of the signficant, the absolute value of
+# the significand as library thingy, the sign of the exponent, and the absolute
+# value of the exponent as a a library thingy.
+
+sub _dec_str_to_flt_lib_parts {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _dec_str_to_dec_str_parts($str)) {
+ return $class -> _dec_str_parts_to_flt_lib_parts(@parts);
+ }
+ return;
+}
+
+# Hexdecimal string to a string using decimal floating point notation.
+
+sub hex_str_to_dec_flt_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_flt_str(@parts);
+ }
+ return;
+}
+
+# Octal string to a string using decimal floating point notation.
+
+sub oct_str_to_dec_flt_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_flt_str(@parts);
+ }
+ return;
+}
+
+# Binary string to a string decimal floating point notation.
+
+sub bin_str_to_dec_flt_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_flt_str(@parts);
+ }
+ return;
+}
+
+# Decimal string to a string using decimal floating point notation.
+
+sub dec_str_to_dec_flt_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_flt_str(@parts);
+ }
+ return;
+}
+
+# Hexdecimal string to decimal notation (no exponent).
+
+sub hex_str_to_dec_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_dec_str(@parts);
+ }
+ return;
+}
+
+# Octal string to decimal notation (no exponent).
+
+sub oct_str_to_dec_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_dec_str(@parts);
+ }
+ return;
+}
+
+# Binary string to decimal notation (no exponent).
+
+sub bin_str_to_dec_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_dec_str(@parts);
+ }
+ return;
+}
+
+# Decimal string to decimal notation (no exponent).
+
+sub dec_str_to_dec_str {
+ my $class = shift;
+ my $str = shift;
+ if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+ return $class -> _flt_lib_parts_to_dec_str(@parts);
+ }
+ return;
+}
+
+sub _flt_lib_parts_to_flt_str {
+ my $class = shift;
+ my @parts = @_;
+ return $parts[0] . $LIB -> _str($parts[1])
+ . 'e' . $parts[2] . $LIB -> _str($parts[3]);
+}
+
+sub _flt_lib_parts_to_dec_str {
+ my $class = shift;
+ my @parts = @_;
+
+ # The number is an integer iff the exponent is non-negative.
+
+ if ($parts[2] eq '+') {
+ my $str = $parts[0]
+ . $LIB -> _str($LIB -> _lsft($parts[1], $parts[3], 10));
+ return $str;
+ }
+
+ # If it is not an integer, add a decimal point.
+
+ else {
+ my $mant = $LIB -> _str($parts[1]);
+ my $mant_len = CORE::length($mant);
+ my $expo = $LIB -> _num($parts[3]);
+ my $len_cmp = $mant_len <=> $expo;
+ if ($len_cmp <= 0) {
+ return $parts[0] . '0.' . '0' x ($expo - $mant_len) . $mant;
+ } else {
+ substr $mant, $mant_len - $expo, 0, '.';
+ return $parts[0] . $mant;
+ }
+ }
+}
+
+# Takes four arguments, the sign of the significand, the absolute value of the
+# significand as a libray thingy, the sign of the exponent, and the absolute
+# value of the exponent as a library thingy, and returns three parts: the sign
+# of the rational number, the absolute value of the numerator as a libray
+# thingy, and the absolute value of the denominator as a library thingy.
+#
+# For example, to convert data representing the value "+12e-2", then
+#
+# $sm = "+";
+# $m = $LIB -> _new("12");
+# $se = "-";
+# $e = $LIB -> _new("2");
+# ($sr, $n, $d) = $class -> _flt_lib_parts_to_rat_lib_parts($sm, $m, $se, $e);
+#
+# returns data representing the same value written as the fraction "+3/25"
+#
+# $sr = "+"
+# $n = $LIB -> _new("3");
+# $d = $LIB -> _new("12");
+
+sub _flt_lib_parts_to_rat_lib_parts {
+ my $self = shift;
+ my ($msgn, $mabs, $esgn, $eabs) = @_;
+
+ if ($esgn eq '-') { # "12e-2" -> "12/100" -> "3/25"
+ my $num_lib = $LIB -> _copy($mabs);
+ my $den_lib = $LIB -> _1ex($LIB -> _num($eabs));
+ my $gcd_lib = $LIB -> _gcd($LIB -> _copy($num_lib), $den_lib);
+ $num_lib = $LIB -> _div($LIB -> _copy($num_lib), $gcd_lib);
+ $den_lib = $LIB -> _div($den_lib, $gcd_lib);
+ return $msgn, $num_lib, $den_lib;
+ }
+
+ elsif (!$LIB -> _is_zero($eabs)) { # "12e+2" -> "1200" -> "1200/1"
+ return $msgn, $LIB -> _lsft($LIB -> _copy($mabs), $eabs, 10),
+ $LIB -> _one();
+ }
+
+ else { # "12e+0" -> "12" -> "12/1"
+ return $msgn, $mabs, $LIB -> _one();
+ }
+}
+
+# Add the function _register_callback() to Math::BigInt. It is provided for
+# backwards compabibility so that old version of Math::BigRat etc. don't
+# complain about missing it.
+
+sub _register_callback { }
+
###############################################################################
# this method returns 0 if the object can be modified, or 1 if not.
# We use a fast constant sub() here, to avoid costly calls. Subclasses
@@ -4437,7 +5828,7 @@ __END__
=head1 NAME
-Math::BigInt - Arbitrary size integer/float math package
+Math::BigInt - arbitrary size integer math package
=head1 SYNOPSIS
@@ -4448,19 +5839,15 @@ Math::BigInt - Arbitrary size integer/float math package
# pure Perl if the GMP library is not installed):
# (See also the L<MATH LIBRARY> section!)
- # warns if Math::BigInt::GMP cannot be found
+ # to warn if Math::BigInt::GMP cannot be found, use
use Math::BigInt lib => 'GMP';
- # to suppress the warning use this:
+ # to suppress the warning if Math::BigInt::GMP cannot be found, use
# use Math::BigInt try => 'GMP';
- # dies if GMP cannot be loaded:
+ # to die if Math::BigInt::GMP cannot be found, use
# use Math::BigInt only => 'GMP';
- my $str = '1234567890';
- my @values = (64, 74, 18);
- my $n = 1; my $sign = '-';
-
# Configuration methods (may be used as class methods and instance methods)
Math::BigInt->accuracy(); # get class accuracy
@@ -4483,6 +5870,7 @@ Math::BigInt - Arbitrary size integer/float math package
$x = Math::BigInt->from_oct('377'); # from octal
$x = Math::BigInt->from_bin('1101'); # from binary
$x = Math::BigInt->from_base('why', 36); # from any base
+ $x = Math::BigInt->from_base_num([1, 0], 2); # from any base
$x = Math::BigInt->bzero(); # create a +0
$x = Math::BigInt->bone(); # create a +1
$x = Math::BigInt->bone('-'); # create a -1
@@ -4491,8 +5879,10 @@ Math::BigInt - Arbitrary size integer/float math package
$x = Math::BigInt->bnan(); # create a Not-A-Number
$x = Math::BigInt->bpi(); # returns pi
- $y = $x->copy(); # make a copy (unlike $y = $x)
- $y = $x->as_int(); # return as a Math::BigInt
+ $y = $x->copy(); # make a copy (unlike $y = $x)
+ $y = $x->as_int(); # return as a Math::BigInt
+ $y = $x->as_float(); # return as a Math::BigFloat
+ $y = $x->as_rat(); # return as a Math::BigRat
# Boolean methods (these don't modify the invocand)
@@ -4559,6 +5949,9 @@ Math::BigInt - Arbitrary size integer/float math package
$x->bsqrt(); # calculate square root
$x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
$x->bfac(); # factorial of $x (1*2*3*4*..$x)
+ $x->bdfac(); # double factorial of $x ($x*($x-2)*($x-4)*...)
+ $x->btfac(); # triple factorial of $x ($x*($x-3)*($x-6)*...)
+ $x->bmfac($k); # $k'th multi-factorial of $x ($x*($x-$k)*...)
$x->blsft($n); # left shift $n places in base 2
$x->blsft($n,$b); # left shift $n places in base $b
@@ -4605,6 +5998,9 @@ Math::BigInt - Arbitrary size integer/float math package
$x->nparts(); # mantissa and exponent (normalised)
$x->eparts(); # mantissa and exponent (engineering notation)
$x->dparts(); # integer and fraction part
+ $x->fparts(); # numerator and denominator
+ $x->numerator(); # numerator
+ $x->denominator(); # denominator
# Conversion methods (do not modify the invocand)
@@ -4612,13 +6008,14 @@ Math::BigInt - Arbitrary size integer/float math package
$x->bsstr(); # string in scientific notation with integers
$x->bnstr(); # string in normalized notation
$x->bestr(); # string in engineering notation
- $x->bdstr(); # string in decimal notation
+ $x->bfstr(); # string in fractional notation
$x->to_hex(); # as signed hexadecimal string
$x->to_bin(); # as signed binary string
$x->to_oct(); # as signed octal string
$x->to_bytes(); # as byte string
$x->to_base($b); # as string in any base
+ $x->to_base_num($b); # as array of integers in any base
$x->as_hex(); # as signed hexadecimal string with prefixed 0x
$x->as_bin(); # as signed binary string with prefixed 0b
@@ -4636,7 +6033,9 @@ also provided for Perl operators.
=head2 Input
Input values to these routines may be any scalar number or string that looks
-like a number and represents an integer.
+like a number and represents an integer. Anything that is accepted by Perl as a
+literal numeric constant should be accepted by this module, except that finite
+non-integers return NaN.
=over
@@ -4646,53 +6045,86 @@ Leading and trailing whitespace is ignored.
=item *
-Leading and trailing zeros are ignored.
+Leading zeros are ignored, except for floating point numbers with a binary
+exponent, in which case the number is interpreted as an octal floating point
+number. For example, "01.4p+0" gives 1.5, "00.4p+0" gives 0.5, but "0.4p+0"
+gives a NaN. And while "0377" gives 255, "0377p0" gives 255.
=item *
-If the string has a "0x" prefix, it is interpreted as a hexadecimal number.
+If the string has a "0x" or "0X" prefix, it is interpreted as a hexadecimal
+number.
=item *
-If the string has a "0b" prefix, it is interpreted as a binary number.
+If the string has a "0o" or "0O" prefix, it is interpreted as an octal number. A
+floating point literal with a "0" prefix is also interpreted as an octal number.
=item *
-One underline is allowed between any two digits.
+If the string has a "0b" or "0B" prefix, it is interpreted as a binary number.
=item *
-If the string can not be interpreted, NaN is returned.
+Underline characters are allowed in the same way as they are allowed in literal
+numerical constants.
-=back
+=item *
-Octal numbers are typically prefixed by "0", but since leading zeros are
-stripped, these methods can not automatically recognize octal numbers, so use
-the constructor from_oct() to interpret octal strings.
+If the string can not be interpreted, or does not represent a finite integer,
+NaN is returned.
+
+=item *
+
+For hexadecimal, octal, and binary floating point numbers, the exponent must be
+separated from the significand (mantissa) by the letter "p" or "P", not "e" or
+"E" as with decimal numbers.
+
+=back
Some examples of valid string input
Input string Resulting value
+
123 123
1.23e2 123
12300e-2 123
- 0xcafe 51966
- 0b1101 13
+
67_538_754 67538754
-4_5_6.7_8_9e+0_1_0 -4567890000000
+ 0x13a 314
+ 0x13ap0 314
+ 0x1.3ap+8 314
+ 0x0.00013ap+24 314
+ 0x13a000p-12 314
+
+ 0o472 314
+ 0o1.164p+8 314
+ 0o0.0001164p+20 314
+ 0o1164000p-10 314
+
+ 0472 472 Note!
+ 01.164p+8 314
+ 00.0001164p+20 314
+ 01164000p-10 314
+
+ 0b100111010 314
+ 0b1.0011101p+8 314
+ 0b0.00010011101p+12 314
+ 0b100111010000p-3 314
+
Input given as scalar numbers might lose precision. Quote your input to ensure
that no digits are lost:
$x = Math::BigInt->new( 56789012345678901234 ); # bad
$x = Math::BigInt->new('56789012345678901234'); # good
-Currently, Math::BigInt->new() defaults to 0, while Math::BigInt->new('')
-results in 'NaN'. This might change in the future, so use always the following
-explicit forms to get a zero or NaN:
+Currently, C<Math::BigInt->new()> (no input argument) and
+C<Math::BigInt->new("")> return 0. This might change in the future, so always
+use the following explicit forms to get a zero:
$zero = Math::BigInt->bzero();
- $nan = Math::BigInt->bnan();
=head2 Output
@@ -4802,18 +6234,25 @@ Set/get the rounding mode.
Set/get the class for upgrading. When a computation might result in a
non-integer, the operands are upgraded to this class. This is used for instance
-by L<bignum>. The default is C<undef>, thus the following operation creates
-a Math::BigInt, not a Math::BigFloat:
+by L<bignum>. The default is C<undef>, i.e., no upgrading.
- my $i = Math::BigInt->new(123);
- my $f = Math::BigFloat->new('123.1');
+ # with no upgrading
+ $x = Math::BigInt->new(12);
+ $y = Math::BigInt->new(5);
+ print $x / $y, "\n"; # 2 as a Math::BigInt
- print $i + $f, "\n"; # prints 246
+ # with upgrading to Math::BigFloat
+ Math::BigInt -> upgrade("Math::BigFloat");
+ print $x / $y, "\n"; # 2.4 as a Math::BigFloat
+
+ # with upgrading to Math::BigRat (after loading Math::BigRat)
+ Math::BigInt -> upgrade("Math::BigRat");
+ print $x / $y, "\n"; # 12/5 as a Math::BigRat
=item downgrade()
-Set/get the class for downgrading. The default is C<undef>. Downgrading is not
-done by Math::BigInt.
+Set/get the class for downgrading. The default is C<undef>, i.e., no
+downgrading. Downgrading is not done by Math::BigInt.
=item modify()
@@ -4871,11 +6310,18 @@ parameters are marked as RW. The following parameters are supported.
$x = Math::BigInt->new($str,$A,$P,$R);
Creates a new Math::BigInt object from a scalar or another Math::BigInt object.
-The input is accepted as decimal, hexadecimal (with leading '0x') or binary
-(with leading '0b').
+The input is accepted as decimal, hexadecimal (with leading '0x'), octal (with
+leading ('0o') or binary (with leading '0b').
See L</Input> for more info on accepted input formats.
+=item from_dec()
+
+ $x = Math::BigInt->from_dec("314159"); # input is decimal
+
+Interpret input as a decimal. It is equivalent to new(), but does not accept
+anything but strings representing finite, decimal numbers.
+
=item from_hex()
$x = Math::BigInt->from_hex("0xcafe"); # input is hexadecimal
@@ -4969,6 +6415,16 @@ are equivalent
$x = Math::BigInt->from_base("100", 2, "01"); # $x is 4
$x = Math::BigInt->from_base("|--", 2, "-|"); # $x is 4
+=item from_base_num()
+
+Returns a new Math::BigInt object given an array of values and a base. This
+method is equivalent to C<from_base()>, but works on numbers in an array rather
+than characters in a string. Unlike C<from_base()>, all input values may be
+arbitrarily large.
+
+ $x = Math::BigInt->from_base_num([1, 1, 0, 1], 2) # $x is 13
+ $x = Math::BigInt->from_base_num([3, 125, 39], 128) # $x is 65191
+
=item bzero()
$x = Math::BigInt->bzero();
@@ -5055,6 +6511,14 @@ v1.22, while C<as_int()> was introduced in v1.68.
In Math::BigInt, C<as_int()> has the same effect as C<copy()>.
+=item as_float()
+
+Return the argument as a Math::BigFloat object.
+
+=item as_rat()
+
+Return the argument as a Math::BigRat object.
+
=back
=head2 Boolean methods
@@ -5539,19 +7003,35 @@ Calculates the N'th root of C<$x>.
=item bfac()
- $x->bfac(); # factorial of $x (1*2*3*4*..*$x)
+ $x->bfac(); # factorial of $x
-Returns the factorial of C<$x>, i.e., the product of all positive integers up
-to and including C<$x>.
+Returns the factorial of C<$x>, i.e., $x*($x-1)*($x-2)*...*2*1, the product of
+all positive integers up to and including C<$x>. C<$x> must be > -1. The
+factorial of N is commonly written as N!, or N!1, when using the multifactorial
+notation.
=item bdfac()
- $x->bdfac(); # double factorial of $x (1*2*3*4*..*$x)
+ $x->bdfac(); # double factorial of $x
+
+Returns the double factorial of C<$x>, i.e., $x*($x-2)*($x-4)*... C<$x> must be
+> -2. The double factorial of N is commonly written as N!!, or N!2, when using
+the multifactorial notation.
+
+=item btfac()
-Returns the double factorial of C<$x>. If C<$x> is an even integer, returns the
-product of all positive, even integers up to and including C<$x>, i.e.,
-2*4*6*...*$x. If C<$x> is an odd integer, returns the product of all positive,
-odd integers, i.e., 1*3*5*...*$x.
+ $x->btfac(); # triple factorial of $x
+
+Returns the triple factorial of C<$x>, i.e., $x*($x-3)*($x-6)*... C<$x> must be
+> -3. The triple factorial of N is commonly written as N!!!, or N!3, when using
+the multifactorial notation.
+
+=item bmfac()
+
+ $x->bmfac($k); # $k'th multifactorial of $x
+
+Returns the multi-factorial of C<$x>, i.e., $x*($x-$k)*($x-2*$k)*... C<$x> must
+be > -$k. The multi-factorial of N is commonly written as N!K.
=item bfib()
@@ -5847,6 +7327,24 @@ Returns the integer part and the fraction part. If the fraction part can not be
represented as an integer, upgrading is performed or NaN is returned. The
output of C<dparts()> corresponds to the output from C<bdstr()>.
+=item fparts()
+
+Returns the smallest possible numerator and denominator so that the numerator
+divided by the denominator gives back the original value. For finite numbers,
+both values are integers. Mnemonic: fraction.
+
+=item numerator()
+
+Together with L</denominator()>, returns the smallest integers so that the
+numerator divided by the denominator reproduces the original value. With
+Math::BigInt, numerator() simply returns a copy of the invocand.
+
+=item denominator()
+
+Together with L</numerator()>, returns the smallest integers so that the
+numerator divided by the denominator reproduces the original value. With
+Math::BigInt, denominator() always returns either a 1 or a NaN.
+
=back
=head2 String conversion methods
@@ -5908,6 +7406,17 @@ corresponds to the output from C<dparts()>.
12000 is returned as "12000"
10000 is returned as "10000"
+=item bfstr()
+
+Returns a string representing the number using fractional notation. The output
+corresponds to the output from C<fparts()>.
+
+ 12.345 is returned as "2469/200"
+ 123.45 is returned as "2469/20"
+ 1234.5 is returned as "2469/2"
+ 12345 is returned as "12345"
+ 123450 is returned as "123450"
+
=item to_hex()
$x->to_hex();
@@ -5931,8 +7440,8 @@ Returns an octal string representation of the number. See also from_oct().
$x = Math::BigInt->new("1667327589");
$s = $x->to_bytes(); # $s = "cafe"
-Returns a byte string representation of the number using big endian byte
-order. The invocand must be a non-negative, finite integer. See also from_bytes().
+Returns a byte string representation of the number using big endian byte order.
+The invocand must be a non-negative, finite integer. See also from_bytes().
=item to_base()
@@ -5954,6 +7463,19 @@ Here are some more examples
See from_base() for information and examples.
+=item to_base_num()
+
+Converts the given number to the given base. This method is equivalent to
+C<_to_base()>, but returns numbers in an array rather than characters in a
+string. In the output, the first element is the most significant. Unlike
+C<_to_base()>, all input values may be arbitrarily large.
+
+ $x = Math::BigInt->new(13);
+ $x->to_base_num(2); # returns [1, 1, 0, 1]
+
+ $x = Math::BigInt->new(65191);
+ $x->to_base_num(128); # returns [3, 125, 39]
+
=item as_hex()
$x->as_hex();
@@ -5991,6 +7513,94 @@ needed, for instance in array index operations.
=back
+=head2 Utility methods
+
+These utility methods are made public
+
+=over
+
+=item dec_str_to_dec_flt_str()
+
+Takes a string representing any valid number using decimal notation and converts
+it to a string representing the same number using decimal floating point
+notation. The output consists of five parts joined together: the sign of the
+significand, the absolute value of the significand as the smallest possible
+integer, the letter "e", the sign of the exponent, and the absolute value of the
+exponent. If the input is invalid, nothing is returned.
+
+ $str2 = $class -> dec_str_to_dec_flt_str($str1);
+
+Some examples
+
+ Input Output
+ 31400.00e-4 +314e-2
+ -0.00012300e8 -123e+2
+ 0 +0e+0
+
+=item hex_str_to_dec_flt_str()
+
+Takes a string representing any valid number using hexadecimal notation and
+converts it to a string representing the same number using decimal floating
+point notation. The output has the same format as that of
+L</dec_str_to_dec_flt_str()>.
+
+ $str2 = $class -> hex_str_to_dec_flt_str($str1);
+
+Some examples
+
+ Input Output
+ 0xff +255e+0
+
+Some examples
+
+=item oct_str_to_dec_flt_str()
+
+Takes a string representing any valid number using octal notation and converts
+it to a string representing the same number using decimal floating point
+notation. The output has the same format as that of
+L</dec_str_to_dec_flt_str()>.
+
+ $str2 = $class -> oct_str_to_dec_flt_str($str1);
+
+=item bin_str_to_dec_flt_str()
+
+Takes a string representing any valid number using binary notation and converts
+it to a string representing the same number using decimal floating point
+notation. The output has the same format as that of
+L</dec_str_to_dec_flt_str()>.
+
+ $str2 = $class -> bin_str_to_dec_flt_str($str1);
+
+=item dec_str_to_dec_str()
+
+Takes a string representing any valid number using decimal notation and converts
+it to a string representing the same number using decimal notation. If the
+number represents an integer, the output consists of a sign and the absolute
+value. If the number represents a non-integer, the output consists of a sign,
+the integer part of the number, the decimal point ".", and the fraction part of
+the number without any trailing zeros. If the input is invalid, nothing is
+returned.
+
+=item hex_str_to_dec_str()
+
+Takes a string representing any valid number using hexadecimal notation and
+converts it to a string representing the same number using decimal notation. The
+output has the same format as that of L</dec_str_to_dec_str()>.
+
+=item oct_str_to_dec_str()
+
+Takes a string representing any valid number using octal notation and converts
+it to a string representing the same number using decimal notation. The
+output has the same format as that of L</dec_str_to_dec_str()>.
+
+=item bin_str_to_dec_str()
+
+Takes a string representing any valid number using binary notation and converts
+it to a string representing the same number using decimal notation. The output
+has the same format as that of L</dec_str_to_dec_str()>.
+
+=back
+
=head1 ACCURACY and PRECISION
Math::BigInt and Math::BigFloat have full support for accuracy and precision
@@ -6182,7 +7792,7 @@ This is how it works now:
* You can also set P globally by using Math::SomeClass->precision()
likewise.
* Globals are classwide, and not inherited by subclasses.
- * to undefine A, use Math::SomeCLass->accuracy(undef);
+ * to undefine A, use Math::SomeClass->accuracy(undef);
* to undefine P, use Math::SomeClass->precision(undef);
* Setting Math::SomeClass->accuracy() clears automatically
Math::SomeClass->precision(), and vice versa.
@@ -6217,8 +7827,8 @@ This is how it works now:
use Math::BigInt;
Math::BigInt->accuracy(2);
- Math::BigInt::SomeSubClass->accuracy(3);
- $x = Math::BigInt::SomeSubClass->new(1234);
+ Math::BigInt::SomeSubclass->accuracy(3);
+ $x = Math::BigInt::SomeSubclass->new(1234);
$x is now 1230, and not 1200. A subclass might choose to implement
this otherwise, e.g. falling back to the parent's A and P.
@@ -6385,52 +7995,80 @@ instead relying on the internal representation.
=head2 MATH LIBRARY
-Math with the numbers is done (by default) by a module called
-C<Math::BigInt::Calc>. This is equivalent to saying:
+The mathematical computations are performed by a backend library. It is not
+required to specify which backend library to use, but some backend libraries
+are much faster than the default library.
+
+=head3 The default library
+
+The default library is L<Math::BigInt::Calc>, which is implemented in pure Perl
+and hence does not require a compiler.
+
+=head3 Specifying a library
+
+The simple case
+
+ use Math::BigInt;
+
+is equivalent to saying
use Math::BigInt try => 'Calc';
-You can change this backend library by using:
+You can use a different backend library with, e.g.,
use Math::BigInt try => 'GMP';
-B<Note>: General purpose packages should not be explicit about the library to
-use; let the script author decide which is best.
+which attempts to load the L<Math::BigInt::GMP> library, and falls back to the
+default library if the specified library can't be loaded.
+
+Multiple libraries can be specified by separating them by a comma, e.g.,
+
+ use Math::BigInt try => 'GMP,Pari';
-If your script works with huge numbers and Calc is too slow for them, you can
-also for the loading of one of these libraries and if none of them can be used,
-the code dies:
+If you request a specific set of libraries and do not allow fallback to the
+default library, specify them using "only",
use Math::BigInt only => 'GMP,Pari';
-The following would first try to find Math::BigInt::Foo, then
-Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
+If you prefer a specific set of libraries, but want to see a warning if the
+fallback library is used, specify them using "lib",
- use Math::BigInt try => 'Foo,Math::BigInt::Bar';
+ use Math::BigInt lib => 'GMP,Pari';
+
+The following first tries to find Math::BigInt::Foo, then Math::BigInt::Bar, and
+if this also fails, reverts to Math::BigInt::Calc:
-The library that is loaded last is used. Note that this can be overwritten at
-any time by loading a different library, and numbers constructed with different
-libraries cannot be used in math operations together.
+ use Math::BigInt try => 'Foo,Math::BigInt::Bar';
-=head3 What library to use?
+=head3 Which library to use?
B<Note>: General purpose packages should not be explicit about the library to
use; let the script author decide which is best.
-L<Math::BigInt::GMP> and L<Math::BigInt::Pari> are in cases involving big
-numbers much faster than Calc, however it is slower when dealing with very
-small numbers (less than about 20 digits) and when converting very large
-numbers to decimal (for instance for printing, rounding, calculating their
-length in decimal etc).
+L<Math::BigInt::GMP>, L<Math::BigInt::Pari>, and L<Math::BigInt::GMPz> are in
+cases involving big numbers much faster than L<Math::BigInt::Calc>. However
+these libraries are slower when dealing with very small numbers (less than about
+20 digits) and when converting very large numbers to decimal (for instance for
+printing, rounding, calculating their length in decimal etc.).
So please select carefully what library you want to use.
-Different low-level libraries use different formats to store the numbers.
-However, you should B<NOT> depend on the number having a specific format
-internally.
+Different low-level libraries use different formats to store the numbers, so
+mixing them won't work. You should not depend on the number having a specific
+internal format.
See the respective math library module documentation for further details.
+=head3 Loading multiple libraries
+
+The first library that is successfully loaded is the one that will be used. Any
+further attempts at loading a different module will be ignored. This is to avoid
+the situation where module A requires math library X, and module B requires math
+library Y, causing modules A and B to be incompatible. For example,
+
+ use Math::BigInt; # loads default "Calc"
+ use Math::BigFloat only => "GMP"; # ignores "GMP"
+
=head2 SIGN
The sign is either '+', '-', 'NaN', '+inf' or '-inf'.
@@ -6452,7 +8090,7 @@ when dividing any negative number by 0.
$x = Math::BigInt->babs("-12345"); # Math::BigInt "12345"
$x = Math::BigInt->bnorm("-0.00"); # Math::BigInt "0"
$x = bigint(1) + bigint(2); # Math::BigInt "3"
- $x = bigint(1) + "2"; # ditto (auto-Math::BigIntify of "2")
+ $x = bigint(1) + "2"; # ditto ("2" becomes a Math::BigInt)
$x = bigint(1); # Math::BigInt "1"
$x = $x + 5 / 2; # Math::BigInt "3"
$x = $x ** 3; # Math::BigInt "27"
@@ -6491,49 +8129,69 @@ Examples for converting:
my $x = Math::BigInt->new('0b1'.'01' x 123);
print "bin: ",$x->as_bin()," hex:",$x->as_hex()," dec: ",$x,"\n";
-=head1 Autocreating constants
+=head1 NUMERIC LITERALS
-After C<use Math::BigInt ':constant'> all the B<integer> decimal, hexadecimal
-and binary constants in the given scope are converted to C<Math::BigInt>. This
-conversion happens at compile time.
+After C<use Math::BigInt ':constant'> all numeric literals in the given scope
+are converted to C<Math::BigInt> objects. This conversion happens at compile
+time. Every non-integer is convert to a NaN.
-In particular,
+For example,
- perl -MMath::BigInt=:constant -e 'print 2**100,"\n"'
+ perl -MMath::BigInt=:constant -le 'print 2**150'
-prints the integer value of C<2**100>. Note that without conversion of
-constants the expression 2**100 is calculated using Perl scalars.
+prints the exact value of C<2**150>. Note that without conversion of constants
+to objects the expression C<2**150> is calculated using Perl scalars, which
+leads to an inaccurate result.
-Please note that strings and floating point constants are not affected, so that
+Please note that strings are not affected, so that
use Math::BigInt qw/:constant/;
- $x = 1234567890123456789012345678901234567890
- + 123456789123456789;
- $y = '1234567890123456789012345678901234567890'
- + '123456789123456789';
+ $x = "1234567890123456789012345678901234567890"
+ + "123456789123456789";
-does not give you what you expect. You need an explicit Math::BigInt->new()
-around one of the operands. You should also quote large constants to protect
+does give you what you expect. You need an explicit Math::BigInt->new() around
+at least one of the operands. You should also quote large constants to prevent
loss of precision:
use Math::BigInt;
- $x = Math::BigInt->new('1234567889123456789123456789123456789');
+ $x = Math::BigInt->new("1234567889123456789123456789123456789");
+
+Without the quotes Perl first converts the large number to a floating point
+constant at compile time, and then converts the result to a Math::BigInt object
+at run time, which results in an inaccurate result.
+
+=head2 Hexadecimal, octal, and binary floating point literals
+
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result. Below are some examples of
+different ways to write the number decimal 314.
-Without the quotes Perl would convert the large number to a floating point
-constant at compile time and then hand the result to Math::BigInt, which
-results in an truncated result or a NaN.
+Hexadecimal floating point literals:
-This also applies to integers that look like floating point constants:
+ 0x1.3ap+8 0X1.3AP+8
+ 0x1.3ap8 0X1.3AP8
+ 0x13a0p-4 0X13A0P-4
- use Math::BigInt ':constant';
+Octal floating point literals (with "0" prefix):
- print ref(123e2),"\n";
- print ref(123.2e2),"\n";
+ 01.164p+8 01.164P+8
+ 01.164p8 01.164P8
+ 011640p-4 011640P-4
-prints nothing but newlines. Use either L<bignum> or L<Math::BigFloat> to get
-this to work.
+Octal floating point literals (with "0o" prefix) (requires v5.34.0):
+
+ 0o1.164p+8 0O1.164P+8
+ 0o1.164p8 0O1.164P8
+ 0o11640p-4 0O11640P-4
+
+Binary floating point literals:
+
+ 0b1.0011101p+8 0B1.0011101P+8
+ 0b1.0011101p8 0B1.0011101P8
+ 0b10011101000p-2 0B10011101000P-2
=head1 PERFORMANCE
@@ -6727,11 +8385,12 @@ strings:
use Test::More tests => 3;
use Math::BigInt;
- $x = Math::BigInt->new('1e56'); $y = 1e56;
+ $x = Math::BigInt->new('1e56');
+ $y = 1e56;
is($x,$y); # fails
- is($x->bsstr(),$y); # okay
+ is($x->bsstr(), $y); # okay
$y = Math::BigInt->new($y);
- is($x,$y); # okay
+ is($x, $y); # okay
Alternatively, simply use C<< <=> >> for comparisons, this always gets it
right. There is not yet a way to get a number automatically represented as a
@@ -6871,17 +8530,13 @@ 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
+=item * GitHub
-L<http://annocpan.org/dist/Math-BigInt>
+L<https://github.com/pjacklam/p5-Math-BigInt>
-=item * CPAN Ratings
+=item * RT: CPAN's request tracker
-L<https://cpanratings.perl.org/dist/Math-BigInt>
+L<https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt>
=item * MetaCPAN
@@ -6891,6 +8546,10 @@ L<https://metacpan.org/release/Math-BigInt>
L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+=item * CPAN Ratings
+
+L<https://cpanratings.perl.org/dist/Math-BigInt>
+
=item * The Bignum mailing list
=over 4
@@ -6942,7 +8601,7 @@ Florian Ragwitz E<lt>flora@cpan.orgE<gt>, 2010.
=item *
-Peter John Acklam E<lt>pjacklam@online.noE<gt>, 2011-.
+Peter John Acklam E<lt>pjacklam@gmail.comE<gt>, 2011-.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
index cd8f1ee44e..a5429dce62 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
@@ -7,89 +7,171 @@ use warnings;
use Carp qw< carp croak >;
use Math::BigInt::Lib;
-our $VERSION = '1.999818';
+our $VERSION = '1.999837';
+$VERSION =~ tr/_//d;
our @ISA = ('Math::BigInt::Lib');
# Package to store unsigned big integers in decimal and do math with them
-
+#
# Internally the numbers are stored in an array with at least 1 element, no
# leading zero parts (except the first) and in base 1eX where X is determined
# automatically at loading time to be the maximum possible value
-
+#
# todo:
# - fully remove funky $# stuff in div() (maybe - that code scares me...)
-# USE_MUL: due to problems on certain os (os390, posix-bc) "* 1e-5" is used
-# instead of "/ 1e5" at some places, (marked with USE_MUL). Other platforms
-# BS2000, some Crays need USE_DIV instead.
-# The BEGIN block is used to determine which of the two variants gives the
-# correct result.
-
-# Beware of things like:
-# $i = $i * $y + $car; $car = int($i / $BASE); $i = $i % $BASE;
-# This works on x86, but fails on ARM (SA1100, iPAQ) due to who knows what
-# reasons. So, use this instead (slower, but correct):
-# $i = $i * $y + $car; $car = int($i / $BASE); $i -= $BASE * $car;
-
##############################################################################
# global constants, flags and accessory
# constants for easier life
-my ($BASE, $BASE_LEN, $RBASE, $MAX_VAL);
-my ($AND_BITS, $XOR_BITS, $OR_BITS);
-my ($AND_MASK, $XOR_MASK, $OR_MASK);
-sub _base_len {
- # Set/get the BASE_LEN and assorted other, related values.
- # Used only by the testsuite, the set variant is used only by the BEGIN
- # block below:
-
- my ($class, $b, $int) = @_;
- if (defined $b) {
- no warnings "redefine";
-
- if ($] >= 5.008 && $int && $b > 7) {
- $BASE_LEN = $b;
- *_mul = \&_mul_use_div_64;
- *_div = \&_div_use_div_64;
- $BASE = int("1e" . $BASE_LEN);
- $MAX_VAL = $BASE-1;
- return $BASE_LEN unless wantarray;
- return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
- }
+my $MAX_EXP_F; # the maximum possible base 10 exponent with "no integer"
+my $MAX_EXP_I; # the maximum possible base 10 exponent with "use integer"
+
+my $MAX_BITS; # the maximum possible number of bits for $AND_BITS etc.
+
+my $BASE_LEN; # the current base exponent in use
+my $USE_INT; # whether "use integer" is used in the computations
+
+my $BASE; # the current base, e.g., 10000 if $BASE_LEN is 5
+my $MAX_VAL; # maximum value for an element, i.e., $BASE - 1
+
+my $AND_BITS; # maximum value used in binary and, e.g., 0xffff
+my $OR_BITS; # ditto for binary or
+my $XOR_BITS; # ditto for binary xor
+
+my $AND_MASK; # $AND_BITS + 1, e.g., 0x10000 if $AND_BITS is 0xffff
+my $OR_MASK; # ditto for binary or
+my $XOR_MASK; # ditto for binary xor
+
+sub config {
+ my $self = shift;
- # find whether we can use mul or div in mul()/div()
- $BASE_LEN = $b + 1;
- my $caught = 0;
- while (--$BASE_LEN > 5) {
- $BASE = int("1e" . $BASE_LEN);
- $RBASE = abs('1e-' . $BASE_LEN); # see USE_MUL
- $caught = 0;
- $caught += 1 if (int($BASE * $RBASE) != 1); # should be 1
- $caught += 2 if (int($BASE / $BASE) != 1); # should be 1
- last if $caught != 3;
+ croak "Missing input argument" unless @_;
+
+ # Called as a getter.
+
+ if (@_ == 1) {
+ my $param = shift;
+ croak "Parameter name must be a non-empty string"
+ unless defined $param && length $param;
+ return $BASE_LEN if $param eq 'base_len';
+ return $USE_INT if $param eq 'use_int';
+ croak "Unknown parameter '$param'";
+ }
+
+ # Called as a setter.
+
+ my $opts;
+ while (@_) {
+ my $param = shift;
+ croak "Parameter name must be a non-empty string"
+ unless defined $param && length $param;
+ croak "Missing value for parameter '$param'"
+ unless @_;
+ my $value = shift;
+
+ if ($param eq 'base_len' || $param eq 'use_int') {
+ $opts -> {$param} = $value;
+ next;
}
- $BASE = int("1e" . $BASE_LEN);
- $RBASE = abs('1e-' . $BASE_LEN); # see USE_MUL
- $MAX_VAL = $BASE-1;
- # ($caught & 1) != 0 => cannot use MUL
- # ($caught & 2) != 0 => cannot use DIV
- if ($caught == 2) # 2
+ croak "Unknown parameter '$param'";
+ }
+
+ $BASE_LEN = $opts -> {base_len} if exists $opts -> {base_len};
+ $USE_INT = $opts -> {use_int} if exists $opts -> {use_int};
+ __PACKAGE__ -> _base_len($BASE_LEN, $USE_INT);
+
+ return $self;
+}
+
+sub _base_len {
+ #my $class = shift; # $class is not used
+ shift;
+
+ if (@_) { # if called as setter ...
+ my ($base_len, $use_int) = @_;
+
+ croak "The base length must be a positive integer"
+ unless defined($base_len) && $base_len == int($base_len)
+ && $base_len > 0;
+
+ if ( $use_int && ($base_len > $MAX_EXP_I) ||
+ !$use_int && ($base_len > $MAX_EXP_F))
{
- # must USE_MUL since we cannot use DIV
- *_mul = \&_mul_use_mul;
- *_div = \&_div_use_mul;
- } else # 0 or 1
+ croak "The maximum base length (exponent) is $MAX_EXP_I with",
+ " 'use integer' and $MAX_EXP_F without 'use integer'. The",
+ " requested settings, a base length of $base_len ",
+ $use_int ? "with" : "without", " 'use integer', is invalid.";
+ }
+
+ $BASE_LEN = $base_len;
+ $BASE = 0 + ("1" . ("0" x $BASE_LEN));
+ $MAX_VAL = $BASE - 1;
+ $USE_INT = $use_int ? 1 : 0;
+
{
- # can USE_DIV instead
- *_mul = \&_mul_use_div;
- *_div = \&_div_use_div;
+ no warnings "redefine";
+ if ($use_int) {
+ *_mul = \&_mul_use_int;
+ *_div = \&_div_use_int;
+ } else {
+ *_mul = \&_mul_no_int;
+ *_div = \&_div_no_int;
+ }
}
}
+
+ # Find max bits. This is the largest power of two that is both no larger
+ # than $BASE and no larger than the maximum integer (i.e., ~0). We need
+ # this limitation because _and(), _or(), and _xor() only work on one
+ # element at a time.
+
+ my $umax = ~0; # largest unsigned integer
+ my $tmp = $umax < $BASE ? $umax : $BASE;
+
+ $MAX_BITS = 0;
+ while ($tmp >>= 1) {
+ $MAX_BITS++;
+ }
+
+ # Limit to 32 bits for portability. Is this really necessary? XXX
+
+ $MAX_BITS = 32 if $MAX_BITS > 32;
+
+ # Find out how many bits _and, _or and _xor can take (old default = 16).
+ # Are these tests really necessary? Can't we just use $MAX_BITS? XXX
+
+ for ($AND_BITS = $MAX_BITS ; $AND_BITS > 0 ; $AND_BITS--) {
+ my $x = CORE::oct('0b' . '1' x $AND_BITS);
+ my $y = $x & $x;
+ my $z = 2 * (2 ** ($AND_BITS - 1)) + 1;
+ last unless $AND_BITS < $MAX_BITS && $x == $z && $y == $x;
+ }
+
+ for ($XOR_BITS = $MAX_BITS ; $XOR_BITS > 0 ; $XOR_BITS--) {
+ my $x = CORE::oct('0b' . '1' x $XOR_BITS);
+ my $y = $x ^ $x;
+ my $z = 2 * (2 ** ($XOR_BITS - 1)) + 1;
+ last unless $XOR_BITS < $MAX_BITS && $x == $z && $y == $x;
+ }
+
+ for ($OR_BITS = $MAX_BITS ; $OR_BITS > 0 ; $OR_BITS--) {
+ my $x = CORE::oct('0b' . '1' x $OR_BITS);
+ my $y = $x | $x;
+ my $z = 2 * (2 ** ($OR_BITS - 1)) + 1;
+ last unless $OR_BITS < $MAX_BITS && $x == $z && $y == $x;
+ }
+
+ $AND_MASK = __PACKAGE__->_new(( 2 ** $AND_BITS ));
+ $XOR_MASK = __PACKAGE__->_new(( 2 ** $XOR_BITS ));
+ $OR_MASK = __PACKAGE__->_new(( 2 ** $OR_BITS ));
+
return $BASE_LEN unless wantarray;
- return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
+ return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL,
+ $MAX_BITS, $MAX_EXP_F, $MAX_EXP_I, $USE_INT);
}
sub _new {
@@ -116,89 +198,98 @@ sub _new {
}
BEGIN {
- # from Daniel Pfeiffer: determine largest group of digits that is precisely
- # multipliable with itself plus carry
- # Test now changed to expect the proper pattern, not a result off by 1 or 2
- my ($e, $num) = 3; # lowest value we will use is 3+1-1 = 3
- do {
- $num = '9' x ++$e;
- $num *= $num + 1;
- } while $num =~ /9{$e}0{$e}/; # must be a certain pattern
- $e--; # last test failed, so retract one step
- # the limits below brush the problems with the test above under the rug:
- # the test should be able to find the proper $e automatically
- $e = 5 if $^O =~ /^uts/; # UTS get's some special treatment
- $e = 5 if $^O =~ /^unicos/; # unicos is also problematic (6 seems to work
- # there, but we play safe)
-
- my $int = 0;
- if ($e > 7) {
- use integer;
- my $e1 = 7;
- $num = 7;
- do {
- $num = ('9' x ++$e1) + 0;
- $num *= $num + 1;
- } while ("$num" =~ /9{$e1}0{$e1}/); # must be a certain pattern
- $e1--; # last test failed, so retract one step
- if ($e1 > 7) {
- $int = 1;
- $e = $e1;
- }
- }
- __PACKAGE__ -> _base_len($e, $int); # set and store
+ # Compute $MAX_EXP_F, the maximum usable base 10 exponent.
- use integer;
- # find out how many bits _and, _or and _xor can take (old default = 16)
- # I don't think anybody has yet 128 bit scalars, so let's play safe.
- local $^W = 0; # don't warn about 'nonportable number'
- $AND_BITS = 15;
- $XOR_BITS = 15;
- $OR_BITS = 15;
-
- # find max bits, we will not go higher than numberofbits that fit into $BASE
- # to make _and etc simpler (and faster for smaller, slower for large numbers)
- my $max = 16;
- while (2 ** $max < $BASE) {
- $max++;
- }
- {
- no integer;
- $max = 16 if $] < 5.006; # older Perls might not take >16 too well
- }
- my ($x, $y, $z);
-
- do {
- $AND_BITS++;
- $x = CORE::oct('0b' . '1' x $AND_BITS);
- $y = $x & $x;
- $z = (2 ** $AND_BITS) - 1;
- } while ($AND_BITS < $max && $x == $z && $y == $x);
- $AND_BITS --; # retreat one step
-
- do {
- $XOR_BITS++;
- $x = CORE::oct('0b' . '1' x $XOR_BITS);
- $y = $x ^ 0;
- $z = (2 ** $XOR_BITS) - 1;
- } while ($XOR_BITS < $max && $x == $z && $y == $x);
- $XOR_BITS --; # retreat one step
-
- do {
- $OR_BITS++;
- $x = CORE::oct('0b' . '1' x $OR_BITS);
- $y = $x | $x;
- $z = (2 ** $OR_BITS) - 1;
- } while ($OR_BITS < $max && $x == $z && $y == $x);
- $OR_BITS--; # retreat one step
-
- $AND_MASK = __PACKAGE__->_new(( 2 ** $AND_BITS ));
- $XOR_MASK = __PACKAGE__->_new(( 2 ** $XOR_BITS ));
- $OR_MASK = __PACKAGE__->_new(( 2 ** $OR_BITS ));
-
- # We can compute the approximate length no faster than the real length:
- *_alen = \&_len;
+ # The largest element in base 10**$BASE_LEN is 10**$BASE_LEN-1. For instance,
+ # with $BASE_LEN = 5, the largest element is 99_999, and the largest carry is
+ #
+ # int( 99_999 * 99_999 / 100_000 ) = 99_998
+ #
+ # so make sure that 99_999 * 99_999 + 99_998 is within the range of integers
+ # that can be represented accuratly.
+ #
+ # Note that on some systems with quadmath support, the following is within
+ # the range of numbers that can be represented exactly, but it still gives
+ # the incorrect value $r = 2 (even though POSIX::fmod($x, $y) gives the
+ # correct value of 1:
+ #
+ # $x = 99999999999999999;
+ # $y = 100000000000000000;
+ # $r = $x * $x % $y; # should be 1
+ #
+ # so also check for this.
+
+ for ($MAX_EXP_F = 1 ; ; $MAX_EXP_F++) { # when $MAX_EXP_F = 5
+ my $MAX_EXP_FM1 = $MAX_EXP_F - 1; # = 4
+ my $bs = "1" . ("0" x $MAX_EXP_F); # = "100000"
+ my $xs = "9" x $MAX_EXP_F; # = "99999"
+ my $cs = ("9" x $MAX_EXP_FM1) . "8"; # = "99998"
+ my $ys = $cs . ("0" x $MAX_EXP_FM1) . "1"; # = "9999800001"
+
+ # Compute and check the product.
+ my $yn = $xs * $xs; # = 9999800001
+ last if $yn != $ys;
+
+ # Compute and check the remainder.
+ my $rn = $yn % $bs; # = 1
+ last if $rn != 1;
+
+ # Compute and check the carry. The division here is exact.
+ my $cn = ($yn - $rn) / $bs; # = 99998
+ last if $cn != $cs;
+
+ # Compute and check product plus carry.
+ my $zs = $cs . ("9" x $MAX_EXP_F); # = "9999899999"
+ my $zn = $yn + $cn; # = 99998999999
+ last if $zn != $zs;
+ last if $zn - ($zn - 1) != 1;
+ }
+ $MAX_EXP_F--; # last test failed, so retract one step
+
+ # Compute $MAX_EXP_I, the maximum usable base 10 exponent within the range
+ # of what is available with "use integer". On older versions of Perl,
+ # integers are converted to floating point numbers, even though they are
+ # within the range of what can be represented as integers. For example, on
+ # some 64 bit Perls, 999999999 * 999999999 becomes 999999998000000000, not
+ # 999999998000000001, even though the latter is less than the maximum value
+ # for a 64 bit integer, 18446744073709551615.
+
+ my $umax = ~0; # largest unsigned integer
+ for ($MAX_EXP_I = int(0.5 * log($umax) / log(10));
+ $MAX_EXP_I > 0;
+ $MAX_EXP_I--)
+ { # when $MAX_EXP_I = 5
+ my $MAX_EXP_IM1 = $MAX_EXP_I - 1; # = 4
+ my $bs = "1" . ("0" x $MAX_EXP_I); # = "100000"
+ my $xs = "9" x $MAX_EXP_I; # = "99999"
+ my $cs = ("9" x $MAX_EXP_IM1) . "8"; # = "99998"
+ my $ys = $cs . ("0" x $MAX_EXP_IM1) . "1"; # = "9999800001"
+
+ # Compute and check the product.
+ my $yn = $xs * $xs; # = 9999800001
+ next if $yn != $ys;
+
+ # Compute and check the remainder.
+ my $rn = $yn % $bs; # = 1
+ next if $rn != 1;
+
+ # Compute and check the carry. The division here is exact.
+ my $cn = ($yn - $rn) / $bs; # = 99998
+ next if $cn != $cs;
+
+ # Compute and check product plus carry.
+ my $zs = $cs . ("9" x $MAX_EXP_I); # = "9999899999"
+ my $zn = $yn + $cn; # = 99998999999
+ next if $zn != $zs;
+ next if $zn - ($zn - 1) != 1;
+ last;
+ }
+
+ ($BASE_LEN, $USE_INT) = $MAX_EXP_F > $MAX_EXP_I
+ ? ($MAX_EXP_F, 0) : ($MAX_EXP_I, 1);
+
+ __PACKAGE__ -> _base_len($BASE_LEN, $USE_INT);
}
###############################################################################
@@ -224,18 +315,20 @@ sub _two {
sub _ten {
# create a 10
my $class = shift;
- bless [ 10 ], $class;
+ my $self = $BASE_LEN == 1 ? [ 0, 1 ] : [ 10 ];
+ bless $self, $class;
}
sub _1ex {
# create a 1Ex
my $class = shift;
- my $rem = $_[0] % $BASE_LEN; # remainder
- my $parts = $_[0] / $BASE_LEN; # parts
+ my $rem = $_[0] % $BASE_LEN; # remainder
+ my $div = ($_[0] - $rem) / $BASE_LEN; # parts
- # 000000, 000000, 100
- bless [ (0) x $parts, '1' . ('0' x $rem) ], $class;
+ # With a $BASE_LEN of 6, 1e14 becomes
+ # [ 000000, 000000, 100 ] -> [ 0, 0, 100 ]
+ bless [ (0) x $div, 0 + ("1" . ("0" x $rem)) ], $class;
}
sub _copy {
@@ -244,8 +337,33 @@ sub _copy {
return bless [ @{ $_[0] } ], $class;
}
-# catch and throw away
-sub import { }
+sub import {
+ my $self = shift;
+
+ my $opts;
+ my ($base_len, $use_int);
+ while (@_) {
+ my $param = shift;
+ croak "Parameter name must be a non-empty string"
+ unless defined $param && length $param;
+ croak "Missing value for parameter '$param'"
+ unless @_;
+ my $value = shift;
+
+ if ($param eq 'base_len' || $param eq 'use_int') {
+ $opts -> {$param} = $value;
+ next;
+ }
+
+ croak "Unknown parameter '$param'";
+ }
+
+ $base_len = exists $opts -> {base_len} ? $opts -> {base_len} : $BASE_LEN;
+ $use_int = exists $opts -> {use_int} ? $opts -> {use_int} : $USE_INT;
+ __PACKAGE__ -> _base_len($base_len, $use_int);
+
+ return $self;
+}
##############################################################################
# convert back to string and number
@@ -319,10 +437,10 @@ sub _add {
# For each in Y, add Y to X and carry. If after that, something is left in
# X, foreach in X add carry to X and then return X, carry. Trades one
# "$j++" for having to shift arrays.
- my $i;
+
my $car = 0;
my $j = 0;
- for $i (@$y) {
+ for my $i (@$y) {
$x->[$j] -= $BASE if $car = (($x->[$j] += $i + $car) >= $BASE) ? 1 : 0;
$j++;
}
@@ -368,10 +486,9 @@ sub _sub {
my ($c, $sx, $sy, $s) = @_;
my $car = 0;
- my $i;
my $j = 0;
if (!$s) {
- for $i (@$sx) {
+ for my $i (@$sx) {
last unless defined $sy->[$j] || $car;
$i += $BASE if $car = (($i -= ($sy->[$j] || 0) + $car) < 0);
$j++;
@@ -379,7 +496,7 @@ sub _sub {
# might leave leading zeros, so fix that
return __strip_zeros($sx);
}
- for $i (@$sx) {
+ for my $i (@$sx) {
# We can't do an early out if $x < $y, since we need to copy the high
# chunks from $y. Found by Bob Mathews.
#last unless defined $sy->[$j] || $car;
@@ -391,76 +508,12 @@ sub _sub {
__strip_zeros($sy);
}
-sub _mul_use_mul {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- my ($c, $xv, $yv) = @_;
-
- if (@$yv == 1) {
- # shortcut for two very short numbers (improved by Nathan Zook) works
- # also if xv and yv are the same reference, and handles also $x == 0
- if (@$xv == 1) {
- if (($xv->[0] *= $yv->[0]) >= $BASE) {
- my $rem = $xv->[0] % $BASE;
- $xv->[1] = ($xv->[0] - $rem) * $RBASE;
- $xv->[0] = $rem;
- }
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0) {
- @$xv = (0);
- return $xv;
- }
-
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0];
- my $car = 0;
- my $rem;
- foreach my $i (@$xv) {
- $i = $i * $y + $car;
- $rem = $i % $BASE;
- $car = ($i - $rem) * $RBASE;
- $i = $rem;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
-
- # shortcut for result $x == 0 => result = 0
- return $xv if @$xv == 1 && $xv->[0] == 0;
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = $c->_copy($xv) if $xv == $yv; # same references?
-
- my @prod = ();
- my ($prod, $rem, $car, $cty, $xi, $yi);
- for $xi (@$xv) {
- $car = 0;
- $cty = 0;
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift(@prod) || 0), next if $xi == 0;
- for $yi (@$yv) {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
- $rem = $prod % $BASE;
- $car = int(($prod - $rem) * $RBASE);
- $prod[$cty++] = $rem;
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift(@prod) || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- $xv;
-}
-
-sub _mul_use_div_64 {
+sub _mul_use_int {
# (ref to int_num_array, ref to int_num_array)
# multiply two numbers in internal representation
# modifies first arg, second need not be different from first
# works for 64 bit integer with "use integer"
my ($c, $xv, $yv) = @_;
-
use integer;
if (@$yv == 1) {
@@ -498,13 +551,13 @@ sub _mul_use_div_64 {
$yv = $c->_copy($xv) if $xv == $yv; # same references?
my @prod = ();
- my ($prod, $car, $cty, $xi, $yi);
- for $xi (@$xv) {
+ my ($prod, $car, $cty);
+ for my $xi (@$xv) {
$car = 0;
$cty = 0;
# looping through this if $xi == 0 is silly - so optimize it away!
$xi = (shift(@prod) || 0), next if $xi == 0;
- for $yi (@$yv) {
+ for my $yi (@$yv) {
$prod = $xi * $yi + ($prod[$cty] || 0) + $car;
$prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE;
}
@@ -515,7 +568,7 @@ sub _mul_use_div_64 {
$xv;
}
-sub _mul_use_div {
+sub _mul_no_int {
# (ref to int_num_array, ref to int_num_array)
# multiply two numbers in internal representation
# modifies first arg, second need not be different from first
@@ -559,13 +612,13 @@ sub _mul_use_div {
$yv = $c->_copy($xv) if $xv == $yv; # same references?
my @prod = ();
- my ($prod, $rem, $car, $cty, $xi, $yi);
- for $xi (@$xv) {
+ my ($prod, $rem, $car, $cty);
+ for my $xi (@$xv) {
$car = 0;
$cty = 0;
# looping through this if $xi == 0 is silly - so optimize it away!
$xi = (shift(@prod) || 0), next if $xi == 0;
- for $yi (@$yv) {
+ for my $yi (@$yv) {
$prod = $xi * $yi + ($prod[$cty] || 0) + $car;
$rem = $prod % $BASE;
$car = ($prod - $rem) / $BASE;
@@ -578,166 +631,7 @@ sub _mul_use_div {
$xv;
}
-sub _div_use_mul {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
-
- my ($c, $x, $yorg) = @_;
-
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
-
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1) {
- # shortcut, $yorg and $x are two small numbers
- my $rem = [ $x->[0] % $yorg->[0] ];
- bless $rem, $c;
- $x->[0] = ($x->[0] - $rem->[0]) / $yorg->[0];
- return ($x, $rem) if wantarray;
- return $x;
- }
-
- # if x has more than one, but y has only one element:
- if (@$yorg == 1) {
- my $rem;
- $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = @$x;
- my $r = 0;
- my $y = $yorg->[0];
- my $b;
- while ($j-- > 0) {
- $b = $r * $BASE + $x->[$j];
- $r = $b % $y;
- $x->[$j] = ($b - $r) / $y;
- }
- pop(@$x) if @$x > 1 && $x->[-1] == 0; # remove any trailing zero
- return ($x, $rem) if wantarray;
- return $x;
- }
-
- # now x and y have more than one element
-
- # check whether y has more elements than x, if so, the result is 0
- if (@$yorg > @$x) {
- my $rem;
- $rem = $c->_copy($x) if wantarray; # make copy
- @$x = 0; # set to 0
- return ($x, $rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
-
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x) {
- my $cmp = 0;
- for (my $j = $#$x ; $j >= 0 ; --$j) {
- last if $cmp = $x->[$j] - $yorg->[$j];
- }
-
- if ($cmp == 0) { # x = y
- @$x = 1;
- return $x, $c->_zero() if wantarray;
- return $x;
- }
-
- if ($cmp < 0) { # x < y
- if (wantarray) {
- my $rem = $c->_copy($x);
- @$x = 0;
- return $x, $rem;
- }
- @$x = 0;
- return $x;
- }
- }
-
- # all other cases:
-
- my $y = $c->_copy($yorg); # always make copy to preserve
-
- my $tmp = $y->[-1] + 1;
- my $rem = $BASE % $tmp;
- my $dd = ($BASE - $rem) / $tmp;
- if ($dd != 1) {
- my $car = 0;
- for my $xi (@$x) {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL
- }
- push(@$x, $car);
- $car = 0;
- for my $yi (@$y) {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL
- }
- } else {
- push(@$x, 0);
- }
-
- # @q will accumulate the final result, $q contains the current computed
- # part of the final result
-
- my @q = ();
- my ($v2, $v1) = @$y[-2, -1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y) {
- my ($u2, $u1, $u0) = @$x[-3 .. -1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- my $tmp = $u0 * $BASE + $u1;
- my $rem = $tmp % $v1;
- my $q = $u0 == $v1 ? $MAX_VAL : (($tmp - $rem) / $v1);
- --$q while $v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2;
- if ($q) {
- my $prd;
- my ($car, $bar) = (0, 0);
- for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL
- $x->[$xi] += $BASE if $bar = (($x->[$xi] -= $prd + $bar) < 0);
- }
- if ($x->[-1] < $car + $bar) {
- $car = 0;
- --$q;
- for (my $yi = 0, my $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
- $x->[$xi] -= $BASE
- if $car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE);
- }
- }
- }
- pop(@$x);
- unshift(@q, $q);
- }
-
- if (wantarray) {
- my $d = bless [], $c;
- if ($dd != 1) {
- my $car = 0;
- my ($prd, $rem);
- for my $xi (reverse @$x) {
- $prd = $car * $BASE + $xi;
- $rem = $prd % $dd;
- $tmp = ($prd - $rem) / $dd;
- $car = $rem;
- unshift @$d, $tmp;
- }
- } else {
- @$d = @$x;
- }
- @$x = @q;
- __strip_zeros($x);
- __strip_zeros($d);
- return ($x, $d);
- }
- @$x = @q;
- __strip_zeros($x);
- $x;
-}
-
-sub _div_use_div_64 {
+sub _div_use_int {
# ref to array, ref to array, modify first array and return remainder if
# in list context
@@ -900,7 +794,7 @@ sub _div_use_div_64 {
$x;
}
-sub _div_use_div {
+sub _div_no_int {
# ref to array, ref to array, modify first array and return remainder if
# in list context
@@ -1157,12 +1051,12 @@ sub _is_zero {
sub _is_even {
# return true if arg is even
- $_[1]->[0] & 1 ? 0 : 1;
+ $_[1]->[0] % 2 ? 0 : 1;
}
sub _is_odd {
# return true if arg is odd
- $_[1]->[0] & 1 ? 1 : 0;
+ $_[1]->[0] % 2 ? 1 : 0;
}
sub _is_one {
@@ -1177,7 +1071,11 @@ sub _is_two {
sub _is_ten {
# return true if arg is ten
- @{$_[1]} == 1 && $_[1]->[0] == 10 ? 1 : 0;
+ if ($BASE_LEN == 1) {
+ @{$_[1]} == 2 && $_[1]->[0] == 0 && $_[1]->[1] == 1 ? 1 : 0;
+ } else {
+ @{$_[1]} == 1 && $_[1]->[0] == 10 ? 1 : 0;
+ }
}
sub __strip_zeros {
@@ -1316,17 +1214,21 @@ sub _mod {
# shifts
sub _rsft {
- my ($c, $x, $y, $n) = @_;
+ my ($c, $x, $n, $b) = @_;
+ return $x if $c->_is_zero($x) || $c->_is_zero($n);
+
+ # For backwards compatibility, allow the base $b to be a scalar.
+
+ $b = $c->_new($b) unless ref $b;
- if ($n != 10) {
- $n = $c->_new($n);
- return scalar $c->_div($x, $c->_pow($n, $y));
+ if ($c -> _acmp($b, $c -> _ten())) {
+ return scalar $c->_div($x, $c->_pow($c->_copy($b), $n));
}
# shortcut (faster) for shifting by 10)
# multiples of $BASE_LEN
my $dst = 0; # destination
- my $src = $c->_num($y); # as normal int
+ my $src = $c->_num($n); # as normal int
my $xlen = (@$x - 1) * $BASE_LEN + length(int($x->[-1]));
if ($src >= $xlen or ($src == $xlen and !defined $x->[1])) {
# 12345 67890 shifted right by more than 10 digits => 0
@@ -1519,27 +1421,50 @@ sub _nok {
return $n;
}
-my @factorials = (
- 1,
- 1,
- 2,
- 2*3,
- 2*3*4,
- 2*3*4*5,
- 2*3*4*5*6,
- 2*3*4*5*6*7,
- );
-
sub _fac {
# factorial of $x
# ref to array, return ref to array
my ($c, $cx) = @_;
- if ((@$cx == 1) && ($cx->[0] <= 7)) {
- $cx->[0] = $factorials[$cx->[0]]; # 0 => 1, 1 => 1, 2 => 2 etc.
+ # We cache the smallest values. Don't assume that a single element has a
+ # value larger than 9 or else it won't work with a $BASE_LEN of 1.
+
+ if (@$cx == 1) {
+ my @factorials =
+ (
+ '1',
+ '1',
+ '2',
+ '6',
+ '24',
+ '120',
+ '720',
+ '5040',
+ '40320',
+ '362880',
+ );
+ if ($cx->[0] <= $#factorials) {
+ my $tmp = $c -> _new($factorials[ $cx->[0] ]);
+ @$cx = @$tmp;
+ return $cx;
+ }
+ }
+
+ # The old code further below doesn't work for small values of $BASE_LEN.
+ # Alas, I have not been able to (or taken the time to) decipher it, so for
+ # the case when $BASE_LEN is small, we call the parent class. This code
+ # works in for every value of $x and $BASE_LEN. We could use this code for
+ # all cases, but it is a little slower than the code further below, so at
+ # least for now we keep the code below.
+
+ if ($BASE_LEN <= 2) {
+ my $tmp = $c -> SUPER::_fac($cx);
+ @$cx = @$tmp;
return $cx;
}
+ # This code does not work for small values of $BASE_LEN.
+
if ((@$cx == 1) && # we do this only if $x >= 12 and $x <= 7000
($cx->[0] >= 12 && $cx->[0] < 7000)) {
@@ -1759,9 +1684,9 @@ sub _log_int {
$log += (@$base - 1) * $BASE_LEN;
# calculate now a guess based on the values obtained above:
- my $res = int($len / $log);
+ my $res = $c->_new(int($len / $log));
- @$x = $res;
+ @$x = @$res;
my $trial = $c->_pow($c->_copy($base), $x);
my $acmp = $c->_acmp($trial, $x_org);
@@ -1795,9 +1720,8 @@ my $steps = 0;
sub steps { $steps };
sub _sqrt {
- # square-root of $x in place
- # Compute a guess of the result (by rule of thumb), then improve it via
- # Newton's method.
+ # square-root of $x in-place
+
my ($c, $x) = @_;
if (@$x == 1) {
@@ -1805,68 +1729,65 @@ sub _sqrt {
$x->[0] = int(sqrt($x->[0]));
return $x;
}
- my $y = $c->_copy($x);
- # hopefully _len/2 is < $BASE, the -1 is to always undershot the guess
- # since our guess will "grow"
- my $l = int(($c->_len($x)-1) / 2);
-
- my $lastelem = $x->[-1]; # for guess
- my $elems = @$x - 1;
- # not enough digits, but could have more?
- if ((length($lastelem) <= 3) && ($elems > 1)) {
- # right-align with zero pad
- my $len = length($lastelem) & 1;
- print "$lastelem => " if DEBUG;
- $lastelem .= substr($x->[-2] . '0' x $BASE_LEN, 0, $BASE_LEN);
- # former odd => make odd again, or former even to even again
- $lastelem = $lastelem / 10 if (length($lastelem) & 1) != $len;
- print "$lastelem\n" if DEBUG;
- }
-
- # construct $x (instead of $c->_lsft($x, $l, 10)
- my $r = $l % $BASE_LEN; # 10000 00000 00000 00000 ($BASE_LEN=5)
- $l = int($l / $BASE_LEN);
- print "l = $l " if DEBUG;
-
- splice @$x, $l; # keep ref($x), but modify it
-
- # we make the first part of the guess not '1000...0' but int(sqrt($lastelem))
- # that gives us:
- # 14400 00000 => sqrt(14400) => guess first digits to be 120
- # 144000 000000 => sqrt(144000) => guess 379
-
- print "$lastelem (elems $elems) => " if DEBUG;
- $lastelem = $lastelem / 10 if ($elems & 1 == 1); # odd or even?
- my $g = sqrt($lastelem);
- $g =~ s/\.//; # 2.345 => 2345
- $r -= 1 if $elems & 1 == 0; # 70 => 7
-
- # padd with zeros if result is too short
- $x->[$l--] = int(substr($g . '0' x $r, 0, $r+1));
- print "now ", $x->[-1] if DEBUG;
- print " would have been ", int('1' . '0' x $r), "\n" if DEBUG;
-
- # If @$x > 1, we could compute the second elem of the guess, too, to create
- # an even better guess. Not implemented yet. Does it improve performance?
- $x->[$l--] = 0 while ($l >= 0); # all other digits of guess are zero
-
- print "start x= ", $c->_str($x), "\n" if DEBUG;
- my $two = $c->_two();
- my $last = $c->_zero();
- my $lastlast = $c->_zero();
- $steps = 0 if DEBUG;
- while ($c->_acmp($last, $x) != 0 && $c->_acmp($lastlast, $x) != 0) {
- $steps++ if DEBUG;
- $lastlast = $c->_copy($last);
- $last = $c->_copy($x);
- $c->_add($x, $c->_div($c->_copy($y), $x));
- $c->_div($x, $two );
- print " x= ", $c->_str($x), "\n" if DEBUG;
- }
- print "\nsteps in sqrt: $steps, " if DEBUG;
- $c->_dec($x) if $c->_acmp($y, $c->_mul($c->_copy($x), $x)) < 0; # overshot?
- print " final ", $x->[-1], "\n" if DEBUG;
- $x;
+
+ # Create an initial guess for the square root.
+
+ my $s;
+ if (@$x % 2) {
+ $s = [ (0) x ((@$x - 1) / 2), int(sqrt($x->[-1])) ];
+ } else {
+ $s = [ (0) x ((@$x - 2) / 2), int(sqrt($x->[-2] + $x->[-1] * $BASE)) ];
+ }
+
+ # Newton's method for the square root of y:
+ #
+ # x(n) * x(n) - y
+ # x(n+1) = x(n) - -----------------
+ # 2 * x(n)
+
+ my $cmp;
+ while (1) {
+ my $sq = $c -> _mul($c -> _copy($s), $s);
+ $cmp = $c -> _acmp($sq, $x);
+
+ # If x(n)*x(n) > y, compute
+ #
+ # x(n) * x(n) - y
+ # x(n+1) = x(n) - -----------------
+ # 2 * x(n)
+
+ if ($cmp > 0) {
+ my $num = $c -> _sub($c -> _copy($sq), $x);
+ my $den = $c -> _mul($c -> _two(), $s);
+ my $delta = $c -> _div($num, $den);
+ last if $c -> _is_zero($delta);
+ $s = $c -> _sub($s, $delta);
+ }
+
+ # If x(n)*x(n) < y, compute
+ #
+ # y - x(n) * x(n)
+ # x(n+1) = x(n) + -----------------
+ # 2 * x(n)
+
+ elsif ($cmp < 0) {
+ my $num = $c -> _sub($c -> _copy($x), $sq);
+ my $den = $c -> _mul($c -> _two(), $s);
+ my $delta = $c -> _div($num, $den);
+ last if $c -> _is_zero($delta);
+ $s = $c -> _add($s, $delta);
+ }
+
+ # If x(n)*x(n) = y, we have the exact result.
+
+ else {
+ last;
+ }
+ }
+
+ $s = $c -> _dec($s) if $cmp > 0; # never overshoot
+ @$x = @$s;
+ return $x;
}
sub _root {
@@ -1876,14 +1797,18 @@ sub _root {
# Small numbers.
- if (@$x == 1 && @$n == 1) {
- # Result can be computed directly. Adjust initial result for numerical
- # errors, e.g., int(1000**(1/3)) is 2, not 3.
- my $y = int($x->[0] ** (1 / $n->[0]));
- my $yp1 = $y + 1;
- $y = $yp1 if $yp1 ** $n->[0] == $x->[0];
- $x->[0] = $y;
- return $x;
+ if (@$x == 1) {
+ return $x if $x -> [0] == 0 || $x -> [0] == 1;
+
+ if (@$n == 1) {
+ # Result can be computed directly. Adjust initial result for
+ # numerical errors, e.g., int(1000**(1/3)) is 2, not 3.
+ my $y = int($x->[0] ** (1 / $n->[0]));
+ my $yp1 = $y + 1;
+ $y = $yp1 if $yp1 ** $n->[0] == $x->[0];
+ $x->[0] = $y;
+ return $x;
+ }
}
# If x <= n, the result is always (truncated to) 1.
@@ -1891,7 +1816,7 @@ sub _root {
if ((@$x > 1 || $x -> [0] > 0) && # if x is non-zero ...
$c -> _acmp($x, $n) <= 0) # ... and x <= n
{
- my $one = $x -> _one();
+ my $one = $c -> _one();
@$x = @$one;
return $x;
}
@@ -2173,7 +2098,6 @@ sub _or {
# $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
# $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
# $c->_add($x, $c->_mul(_new( $c, ($xrr | $yrr) ), $m) );
-
$c->_add($z, $c->_mul([ 0 + $xr->[0] | 0 + $yr->[0] ], $m));
$c->_mul($m, $mask);
}
@@ -2191,94 +2115,70 @@ sub _as_hex {
# convert a decimal number to hex (ref to array, return ref to string)
my ($c, $x) = @_;
- # fits into one element (handle also 0x0 case)
- return sprintf("0x%x", $x->[0]) if @$x == 1;
+ return "0x0" if @$x == 1 && $x->[0] == 0;
my $x1 = $c->_copy($x);
+ my $x10000 = [ 0x10000 ];
+
my $es = '';
- my ($xr, $h, $x10000);
- if ($] >= 5.006) {
- $x10000 = [ 0x10000 ];
- $h = 'h4';
- } else {
- $x10000 = [ 0x1000 ];
- $h = 'h3';
- }
- while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
- {
+ my $xr;
+ until (@$x1 == 1 && $x1->[0] == 0) { # _is_zero()
($x1, $xr) = $c->_div($x1, $x10000);
- $es .= unpack($h, pack('V', $xr->[0]));
+ $es = sprintf('%04x', $xr->[0]) . $es;
}
- $es = reverse $es;
- $es =~ s/^[0]+//; # strip leading zeros
- '0x' . $es; # return result prepended with 0x
+ #$es = reverse $es;
+ $es =~ s/^0*/0x/;
+ return $es;
}
sub _as_bin {
# convert a decimal number to bin (ref to array, return ref to string)
my ($c, $x) = @_;
- # fits into one element (and Perl recent enough), handle also 0b0 case
- # handle zero case for older Perls
- if ($] <= 5.005 && @$x == 1 && $x->[0] == 0) {
- my $t = '0b0';
- return $t;
- }
- if (@$x == 1 && $] >= 5.006) {
- my $t = sprintf("0b%b", $x->[0]);
- return $t;
- }
+ return "0b0" if @$x == 1 && $x->[0] == 0;
+
my $x1 = $c->_copy($x);
+ my $x10000 = [ 0x10000 ];
+
my $es = '';
- my ($xr, $b, $x10000);
- if ($] >= 5.006) {
- $x10000 = [ 0x10000 ];
- $b = 'b16';
- } else {
- $x10000 = [ 0x1000 ];
- $b = 'b12';
- }
- while (!(@$x1 == 1 && $x1->[0] == 0)) # _is_zero()
- {
+ my $xr;
+
+ until (@$x1 == 1 && $x1->[0] == 0) { # _is_zero()
($x1, $xr) = $c->_div($x1, $x10000);
- $es .= unpack($b, pack('v', $xr->[0]));
+ $es = sprintf('%016b', $xr->[0]) . $es;
}
- $es = reverse $es;
- $es =~ s/^[0]+//; # strip leading zeros
- '0b' . $es; # return result prepended with 0b
+ $es =~ s/^0*/0b/;
+ return $es;
}
sub _as_oct {
# convert a decimal number to octal (ref to array, return ref to string)
my ($c, $x) = @_;
- # fits into one element (handle also 0 case)
- return sprintf("0%o", $x->[0]) if @$x == 1;
+ return "00" if @$x == 1 && $x->[0] == 0;
my $x1 = $c->_copy($x);
+ my $x1000 = [ 1 << 15 ]; # 15 bits = 32768 = 0100000
+
my $es = '';
my $xr;
- my $x1000 = [ 0100000 ];
- while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
- {
+ until (@$x1 == 1 && $x1->[0] == 0) { # _is_zero()
($x1, $xr) = $c->_div($x1, $x1000);
- $es .= reverse sprintf("%05o", $xr->[0]);
+ $es = sprintf("%05o", $xr->[0]) . $es;
}
- $es = reverse $es;
- $es =~ s/^0+//; # strip leading zeros
- '0' . $es; # return result prepended with 0
+ $es =~ s/^0*/0/; # excactly one leading zero
+ return $es;
}
sub _from_oct {
# convert a octal number to decimal (string, return ref to array)
my ($c, $os) = @_;
- # for older Perls, play safe
- my $m = [ 0100000 ];
- my $d = 5; # 5 digits at a time
+ my $m = $c->_new(1 << 30); # 30 bits at a time (<32 bits!)
+ my $d = 10; # 10 octal digits at a time
my $mul = $c->_one();
my $x = $c->_zero();
@@ -2291,7 +2191,7 @@ sub _from_oct {
$val = CORE::oct($val);
$i -= $d;
$len --;
- my $adder = [ $val ];
+ my $adder = $c -> _new($val);
$c->_add($x, $c->_mul($adder, $mul)) if $val != 0;
$c->_mul($mul, $m) if $len >= 0; # skip last mul
}
@@ -2302,8 +2202,8 @@ sub _from_hex {
# convert a hex number to decimal (string, return ref to array)
my ($c, $hs) = @_;
- my $m = $c->_new(0x10000000); # 28 bit at a time (<32 bit!)
- my $d = 7; # 7 digits at a time
+ my $m = $c->_new(0x10000000); # 28 bit at a time (<32 bit!)
+ my $d = 7; # 7 hexadecimal digits at a time
my $mul = $c->_one();
my $x = $c->_zero();
@@ -2316,7 +2216,7 @@ sub _from_hex {
$val = CORE::hex($val); # hex does not like wrong chars
$i -= $d;
$len --;
- my $adder = [ $val ];
+ my $adder = $c->_new($val);
# if the resulting number was to big to fit into one element, create a
# two-element version (bug found by Mark Lakata - Thanx!)
if (CORE::length($val) > $BASE_LEN) {
@@ -2348,12 +2248,13 @@ sub _from_bin {
# special modulus functions
sub _modinv {
+
# modular multiplicative inverse
my ($c, $x, $y) = @_;
# modulo zero
if ($c->_is_zero($y)) {
- return undef, undef;
+ return;
}
# modulo one
@@ -2384,7 +2285,7 @@ sub _modinv {
}
# if the gcd is not 1, then return NaN
- return (undef, undef) unless $c->_is_one($a);
+ return unless $c->_is_one($a);
($v, $sign == 1 ? '+' : '-');
}
@@ -2471,7 +2372,7 @@ sub _gcd {
=head1 NAME
-Math::BigInt::Calc - Pure Perl module to support Math::BigInt
+Math::BigInt::Calc - pure Perl module to support Math::BigInt
=head1 SYNOPSIS
@@ -2484,25 +2385,76 @@ Math::BigInt::Calc - Pure Perl module to support Math::BigInt
# to use it with Math::BigRat
use Math::BigRat lib => 'Calc';
+ # explicitly set base length and whether to "use integer"
+ use Math::BigInt::Calc base_len => 4, use_int => 1;
+ use Math::BigInt lib => 'Calc';
+
=head1 DESCRIPTION
Math::BigInt::Calc inherits from Math::BigInt::Lib.
-In this library, the numbers are represented in base B = 10**N, where N is the
-largest possible value that does not cause overflow in the intermediate
-computations. The base B elements are stored in an array, with the least
-significant element stored in array element zero. There are no leading zero
-elements, except a single zero element when the number is zero.
+In this library, the numbers are represented interenally in base B = 10**N,
+where N is the largest possible integer that does not cause overflow in the
+intermediate computations. The base B elements are stored in an array, with the
+least significant element stored in array element zero. There are no leading
+zero elements, except a single zero element when the number is zero. For
+instance, if B = 10000, the number 1234567890 is represented internally as
+[7890, 3456, 12].
+
+=head1 OPTIONS
+
+When the module is loaded, it computes the maximum exponent, i.e., power of 10,
+that can be used with and without "use integer" in the computations. The default
+is to use this maximum exponent. If the combination of the 'base_len' value and
+the 'use_int' value exceeds the maximum value, an error is thrown.
+
+=over 4
+
+=item base_len
+
+The base length can be specified explicitly with the 'base_len' option. The
+value must be a positive integer.
+
+ use Math::BigInt::Calc base_len => 4; # use 10000 as internal base
+
+=item use_int
+
+This option is used to specify whether "use integer" should be used in the
+internal computations. The value is interpreted as a boolean value, so use 0 or
+"" for false and anything else for true. If the 'base_len' is not specified
+together with 'use_int', the current value for the base length is used.
+
+ use Math::BigInt::Calc use_int => 1; # use "use integer" internally
+
+=back
+
+=head1 METHODS
+
+This overview constains only the methods that are specific to
+C<Math::BigInt::Calc>. For the other methods, see L<Math::BigInt::Lib>.
+
+=over 4
+
+=item _base_len()
+
+Specify the desired base length and whether to enable "use integer" in the
+computations.
+
+ Math::BigInt::Calc -> _base_len($base_len, $use_int);
+
+Note that it is better to specify the base length and whether to use integers as
+options when the module is loaded, for example like this
+
+ use Math::BigInt::Calc base_len => 6, use_int => 1;
-For instance, if B = 10000, the number 1234567890 is represented internally
-as [7890, 3456, 12].
+=back
=head1 SEE ALSO
L<Math::BigInt::Lib> for a description of the API.
-Alternative libraries L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and
-L<Math::BigInt::Pari>.
+Alternative libraries L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>,
+L<Math::BigInt::Pari>, L<Math::BigInt::GMPz>, and L<Math::BigInt::BitVect>.
Some of the modules that use these libraries L<Math::BigInt>,
L<Math::BigFloat>, and L<Math::BigRat>.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm
index 4e903bd4f1..ee2c29de3b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm
@@ -1,28 +1,89 @@
package Math::BigInt::FastCalc;
-use 5.006;
+use 5.006001;
use strict;
use warnings;
+use Carp qw< carp croak >;
+
use Math::BigInt::Calc 1.999801;
-our @ISA = qw< Math::BigInt::Calc >;
+BEGIN {
+ our @ISA = qw< Math::BigInt::Calc >;
+}
+
+our $VERSION = '0.5013';
+
+my $MAX_EXP_F; # the maximum possible base 10 exponent with "no integer"
+my $MAX_EXP_I; # the maximum possible base 10 exponent with "use integer"
+my $BASE_LEN; # the current base exponent in use
+my $USE_INT; # whether "use integer" is used in the computations
+
+sub _base_len {
+ my $class = shift;
+
+ if (@_) { # if called as setter ...
+ my ($base_len, $use_int) = @_;
+
+ croak "The base length must be a positive integer"
+ unless defined($base_len) && $base_len == int($base_len)
+ && $base_len > 0;
+
+ if ( $use_int && ($base_len > $MAX_EXP_I) ||
+ !$use_int && ($base_len > $MAX_EXP_F))
+ {
+ croak "The maximum base length (exponent) is $MAX_EXP_I with",
+ " 'use integer' and $MAX_EXP_F without 'use integer'. The",
+ " requested settings, a base length of $base_len ",
+ $use_int ? "with" : "without", " 'use integer', is invalid.";
+ }
+
+ return $class -> SUPER::_base_len($base_len, $use_int);
+ }
+
+ return $class -> SUPER::_base_len();
+}
-our $VERSION = '0.5009';
+BEGIN {
+
+ my @params = Math::BigInt::FastCalc -> SUPER::_base_len();
+ $BASE_LEN = $params[0];
+ $MAX_EXP_F = $params[8];
+ $MAX_EXP_I = $params[9];
+
+ # With quadmath support it should work with a base length of 17, because the
+ # maximum intermediate value used in the computations is less than 2**113.
+ # However, for some reason a base length of 17 doesn't work, but trial and
+ # error shows that a base length of 15 works for all methods except
+ # _is_odd() and _is_even(). These two methods determine whether the least
+ # significand component is odd or even by converting it to a UV and do a
+ # bitwise & operation. Because of this, we need to limit the base length to
+ # what fits inside an UV.
+
+ require Config;
+ my $max_exp_i = int(8 * $Config::Config{uvsize} * log(2) / log(10));
+ $MAX_EXP_I = $max_exp_i if $max_exp_i < $MAX_EXP_I;
+ $MAX_EXP_F = $MAX_EXP_I if $MAX_EXP_I < $MAX_EXP_F;
+
+ ($BASE_LEN, $USE_INT) = $MAX_EXP_I > $MAX_EXP_F ? ($MAX_EXP_I, 1)
+ : ($MAX_EXP_F, 0);
+
+ Math::BigInt::FastCalc -> SUPER::_base_len($BASE_LEN, $USE_INT);
+}
##############################################################################
# global constants, flags and accessory
-# announce that we are compatible with MBI v1.83 and up
-sub api_version () { 2; }
+# Announce that we are compatible with MBI v1.83 and up. This method has been
+# made redundant. Each backend is now a subclass of Math::BigInt::Lib, which
+# provides the methods not present in the subclasses.
-# use Calc to override the methods that we do not provide in XS
+sub api_version () { 2; }
require XSLoader;
XSLoader::load(__PACKAGE__, $VERSION, Math::BigInt::Calc->_base_len());
##############################################################################
-##############################################################################
1;
@@ -57,12 +118,20 @@ In order to allow for multiple big integer libraries, Math::BigInt was
rewritten to use library modules for core math routines. Any module which
follows the same API as this can be used instead by using the following:
- use Math::BigInt lib => 'libname';
+ use Math::BigInt lib => 'libname';
'libname' is either the long name ('Math::BigInt::Pari'), or only the short
version like 'Pari'. To use this library:
- use Math::BigInt lib => 'FastCalc';
+ use Math::BigInt lib => 'FastCalc';
+
+The default behaviour is to chose the best internal representation of big
+integers, but the base length used in the internal representation can be
+specified explicitly. Note that this must be done before Math::BigInt is loaded.
+For example,
+
+ use Math::BigInt::FastCalc base_len => 3;
+ use Math::BigInt lib => 'FastCalc';
=head1 STORAGE
@@ -73,25 +142,25 @@ stored in decimal form chopped into parts.
The following functions are now implemented in FastCalc.xs:
- _is_odd _is_even _is_one _is_zero
- _is_two _is_ten
- _zero _one _two _ten
- _acmp _len
- _inc _dec
- __strip_zeros _copy
+ _is_odd _is_even _is_one _is_zero
+ _is_two _is_ten
+ _zero _one _two _ten
+ _acmp _len
+ _inc _dec
+ __strip_zeros _copy
=head1 BUGS
Please report any bugs or feature requests to
C<bug-math-bigint-fastcalc at rt.cpan.org>, or through the web interface at
L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt-FastCalc>
-(requires login).
-We will be notified, and then you'll automatically be notified of progress on
-your bug as I make changes.
+(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.
+After installing, you can find documentation for this module with the perldoc
+command.
perldoc Math::BigInt::FastCalc
@@ -99,43 +168,25 @@ You can also look for information at:
=over 4
-=item * RT: CPAN's request tracker
+=item GitHub
-L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt-FastCalc>
+L<https://github.com/pjacklam/p5-Math-BigInt-FastCalc>
-=item * AnnoCPAN: Annotated CPAN documentation
+=item RT: CPAN's request tracker
-L<http://annocpan.org/dist/Math-BigInt-FastCalc>
+L<https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt-FastCalc>
-=item * CPAN Ratings
+=item MetaCPAN
-L<http://cpanratings.perl.org/dist/Math-BigInt-FastCalc>
+L<https://metacpan.org/release/Math-BigInt-FastCalc>
-=item * Search CPAN
-
-L<http://search.cpan.org/dist/Math-BigInt-FastCalc/>
-
-=item * CPAN Testers Matrix
+=item CPAN Testers Matrix
L<http://matrix.cpantesters.org/?dist=Math-BigInt-FastCalc>
-=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 CPAN Ratings
-=item * Subscribe/Unsubscribe
-
-L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
-
-=back
+L<https://cpanratings.perl.org/dist/Math-BigInt-FastCalc>
=back
@@ -148,12 +199,13 @@ the same terms as Perl itself.
Original math code by Mark Biggar, rewritten by Tels L<http://bloodgate.com/>
in late 2000.
-Separated from BigInt and shaped API with the help of John Peacock.
+
+Separated from Math::BigInt and shaped API with the help of John Peacock.
Fixed, sped-up and enhanced by Tels http://bloodgate.com 2001-2003.
Further streamlining (api_version 1 etc.) by Tels 2004-2007.
-Bug-fixing by Peter John Acklam E<lt>pjacklam@online.noE<gt> 2010-2016.
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.comE<gt> 2010-2021.
=head1 SEE ALSO
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm
index fde281297f..37fa9b94de 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm
@@ -4,7 +4,8 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999818';
+our $VERSION = '1.999837';
+$VERSION =~ tr/_//d;
use Carp;
@@ -88,7 +89,7 @@ use overload
$x = $_[0];
$y = ref($_[1]) ? $class -> _num($_[1]) : $_[1];
}
- return $class -> _blsft($x, $y);
+ return $class -> _lsft($x, $y);
},
'>>' => sub {
@@ -101,7 +102,7 @@ use overload
$x = $class -> _copy($_[0]);
$y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
}
- return $class -> _brsft($x, $y);
+ return $class -> _rsft($x, $y);
},
# overload key: num_comparison
@@ -352,6 +353,56 @@ sub _dec {
$class -> _sub($x, $class -> _one());
}
+# Signed addition. If the flag is false, $xa might be modified, but not $ya. If
+# the false is true, $ya might be modified, but not $xa.
+
+sub _sadd {
+ my $class = shift;
+ my ($xa, $xs, $ya, $ys, $flag) = @_;
+ my ($za, $zs);
+
+ # If the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
+
+ if ($xs eq $ys) {
+ if ($flag) {
+ $za = $class -> _add($ya, $xa);
+ } else {
+ $za = $class -> _add($xa, $ya);
+ }
+ $zs = $class -> _is_zero($za) ? '+' : $xs;
+ return $za, $zs;
+ }
+
+ my $acmp = $class -> _acmp($xa, $ya); # abs(x) = abs(y)
+
+ if ($acmp == 0) { # x = -y or -x = y
+ $za = $class -> _zero();
+ $zs = '+';
+ return $za, $zs;
+ }
+
+ if ($acmp > 0) { # abs(x) > abs(y)
+ $za = $class -> _sub($xa, $ya, $flag);
+ $zs = $xs;
+ } else { # abs(x) < abs(y)
+ $za = $class -> _sub($ya, $xa, !$flag);
+ $zs = $ys;
+ }
+ return $za, $zs;
+}
+
+# Signed subtraction. If the flag is false, $xa might be modified, but not $ya.
+# If the false is true, $ya might be modified, but not $xa.
+
+sub _ssub {
+ my $class = shift;
+ my ($xa, $xs, $ya, $ys, $flag) = @_;
+
+ # Swap sign of second operand and let _sadd() do the job.
+ $ys = $ys eq '+' ? '-' : '+';
+ $class -> _sadd($xa, $xs, $ya, $ys, $flag);
+}
+
##############################################################################
# testing
@@ -573,23 +624,54 @@ sub _nok {
return $n;
}
+#sub _fac {
+# # factorial
+# my ($class, $x) = @_;
+#
+# my $two = $class -> _two();
+#
+# if ($class -> _acmp($x, $two) < 0) {
+# return $class -> _one();
+# }
+#
+# my $i = $class -> _copy($x);
+# while ($class -> _acmp($i, $two) > 0) {
+# $i = $class -> _dec($i);
+# $x = $class -> _mul($x, $i);
+# }
+#
+# return $x;
+#}
+
sub _fac {
# factorial
my ($class, $x) = @_;
- my $two = $class -> _two();
+ # This is an implementation of the split recursive algorithm. See
+ # http://www.luschny.de/math/factorial/csharp/FactorialSplit.cs.html
- if ($class -> _acmp($x, $two) < 0) {
- return $class -> _one();
- }
+ my $p = $class -> _one();
+ my $r = $class -> _one();
+ my $two = $class -> _two();
- my $i = $class -> _copy($x);
- while ($class -> _acmp($i, $two) > 0) {
- $i = $class -> _dec($i);
- $x = $class -> _mul($x, $i);
+ my ($log2n) = $class -> _log_int($class -> _copy($x), $two);
+ my $h = $class -> _zero();
+ my $shift = $class -> _zero();
+ my $k = $class -> _one();
+
+ while ($class -> _acmp($h, $x)) {
+ $shift = $class -> _add($shift, $h);
+ $h = $class -> _rsft($class -> _copy($x), $log2n, $two);
+ $log2n = $class -> _dec($log2n) if !$class -> _is_zero($log2n);
+ my $high = $class -> _copy($h);
+ $high = $class -> _dec($high) if $class -> _is_even($h);
+ while ($class -> _acmp($k, $high)) {
+ $k = $class -> _add($k, $two);
+ $p = $class -> _mul($p, $k);
+ }
+ $r = $class -> _mul($r, $p);
}
-
- return $x;
+ return $class -> _lsft($r, $shift, $two);
}
sub _dfac {
@@ -725,7 +807,7 @@ sub _sqrt {
#
# x(i+1) = x(i) - f(x(i)) / f'(x(i))
# = x(i) - (x(i)^2 - y) / (2 * x(i)) # use if x(i)^2 > y
- # = y(i) + (y - x(i)^2) / (2 * x(i)) # use if x(i)^2 < y
+ # = x(i) + (y - x(i)^2) / (2 * x(i)) # use if x(i)^2 < y
# Determine if x, our guess, is too small, correct, or too large.
@@ -1433,7 +1515,9 @@ sub _to_base {
my $collseq;
if (@_) {
- $collseq = shift();
+ $collseq = shift;
+ croak "The collation sequence must be a non-empty string"
+ unless defined($collseq) && length($collseq);
} else {
if ($class -> _acmp($base, $class -> _new("94")) <= 0) {
$collseq = '0123456789' # 48 .. 57
@@ -1461,10 +1545,40 @@ sub _to_base {
my $chr = $collseq[$num];
$str = $chr . $str;
}
- return "0" unless length $str;
+ return $collseq[0] unless length $str;
return $str;
}
+sub _to_base_num {
+ # Convert the number to an array of integers in any base.
+ my ($class, $x, $base) = @_;
+
+ # Make sure the base is an object and >= 2.
+ $base = $class -> _new($base) unless ref($base);
+ my $two = $class -> _two();
+ croak "base must be >= 2" unless $class -> _acmp($base, $two) >= 0;
+
+ my $out = [];
+ my $xcopy = $class -> _copy($x);
+ my $rem;
+
+ # Do all except the last (most significant) element.
+ until ($class -> _acmp($xcopy, $base) < 0) {
+ ($xcopy, $rem) = $class -> _div($xcopy, $base);
+ unshift @$out, $rem;
+ }
+
+ # Do the last (most significant element).
+ unless ($class -> _is_zero($xcopy)) {
+ unshift @$out, $xcopy;
+ }
+
+ # $out is empty if $x is zero.
+ unshift @$out, $class -> _zero() unless @$out;
+
+ return $out;
+}
+
sub _from_hex {
# Convert a string of hexadecimal digits to a number.
@@ -1622,6 +1736,32 @@ sub _from_base {
return $x;
}
+sub _from_base_num {
+ # Convert an array in the given base to a number.
+ my ($class, $in, $base) = @_;
+
+ # Make sure the base is an object and >= 2.
+ $base = $class -> _new($base) unless ref($base);
+ my $two = $class -> _two();
+ croak "base must be >= 2" unless $class -> _acmp($base, $two) >= 0;
+
+ # @$in = map { ref($_) ? $_ : $class -> _new($_) } @$in;
+
+ my $ele = $in -> [0];
+
+ $ele = $class -> _new($ele) unless ref($ele);
+ my $x = $class -> _copy($ele);
+
+ for my $i (1 .. $#$in) {
+ $x = $class -> _mul($x, $base);
+ $ele = $in -> [$i];
+ $ele = $class -> _new($ele) unless ref($ele);
+ $x = $class -> _add($x, $ele);
+ }
+
+ return $x;
+}
+
##############################################################################
# special modulus functions
@@ -1631,7 +1771,7 @@ sub _modinv {
# modulo zero
if ($class -> _is_zero($y)) {
- return (undef, undef);
+ return;
}
# modulo one
@@ -1661,7 +1801,7 @@ sub _modinv {
}
# if the gcd is not 1, there exists no modular multiplicative inverse
- return (undef, undef) unless $class -> _is_one($a);
+ return unless $class -> _is_one($a);
($v, $sign == 1 ? '+' : '-');
}
@@ -1786,8 +1926,6 @@ sub _lucas {
return @y;
}
- require Scalar::Util;
-
# In scalar context use that lucas(n) = fib(n-1) + fib(n+1).
#
# Remember that _fib() behaves differently in scalar context and list
@@ -1795,8 +1933,8 @@ sub _lucas {
return $class -> _two() if $n == 0;
- return $class -> _add(scalar $class -> _fib($n - 1),
- scalar $class -> _fib($n + 1));
+ return $class -> _add(scalar($class -> _fib($n - 1)),
+ scalar($class -> _fib($n + 1)));
}
sub _fib {
@@ -1876,8 +2014,8 @@ Math::BigInt::Lib - virtual parent class for Math::BigInt libraries
package Math::BigInt::MyBackend;
- use Math::BigInt::lib;
- our @ISA = qw< Math::BigInt::lib >;
+ use Math::BigInt::Lib;
+ our @ISA = qw< Math::BigInt::Lib >;
sub _new { ... }
sub _str { ... }
@@ -2035,6 +2173,16 @@ Some more examples, all returning 250:
$x = $class -> _from_base("42", 62)
$x = $class -> _from_base("2!", 94)
+=item CLASS-E<gt>_from_base_num(ARRAY, BASE)
+
+Returns an object given an array of values and a base. This method is
+equivalent to C<_from_base()>, but works on numbers in an array rather than
+characters in a string. Unlike C<_from_base()>, all input values may be
+arbitrarily large.
+
+ $x = $class -> _from_base_num([1, 1, 0, 1], 2) # $x is 13
+ $x = $class -> _from_base_num([3, 125, 39], 128) # $x is 65191
+
=back
=head3 Mathematical functions
@@ -2043,24 +2191,38 @@ Some more examples, all returning 250:
=item CLASS-E<gt>_add(OBJ1, OBJ2)
-Returns the result of adding OBJ2 to OBJ1.
+Addition. Returns the result of adding OBJ2 to OBJ1.
=item CLASS-E<gt>_mul(OBJ1, OBJ2)
-Returns the result of multiplying OBJ2 and OBJ1.
+Multiplication. Returns the result of multiplying OBJ2 and OBJ1.
=item CLASS-E<gt>_div(OBJ1, OBJ2)
-In scalar context, returns the quotient after dividing OBJ1 by OBJ2 and
-truncating the result to an integer. In list context, return the quotient and
-the remainder.
+Division. In scalar context, returns the quotient after dividing OBJ1 by OBJ2
+and truncating the result to an integer. In list context, return the quotient
+and the remainder.
=item CLASS-E<gt>_sub(OBJ1, OBJ2, FLAG)
=item CLASS-E<gt>_sub(OBJ1, OBJ2)
-Returns the result of subtracting OBJ2 by OBJ1. If C<flag> is false or omitted,
-OBJ1 might be modified. If C<flag> is true, OBJ2 might be modified.
+Subtraction. Returns the result of subtracting OBJ2 by OBJ1. If C<flag> is false
+or omitted, OBJ1 might be modified. If C<flag> is true, OBJ2 might be modified.
+
+=item CLASS-E<gt>_sadd(OBJ1, SIGN1, OBJ2, SIGN2)
+
+Signed addition. Returns the result of adding OBJ2 with sign SIGN2 to OBJ1 with
+sign SIGN1.
+
+ ($obj3, $sign3) = $class -> _sadd($obj1, $sign1, $obj2, $sign2);
+
+=item CLASS-E<gt>_ssub(OBJ1, SIGN1, OBJ2, SIGN2)
+
+Signed subtraction. Returns the result of subtracting OBJ2 with sign SIGN2 to
+OBJ1 with sign SIGN1.
+
+ ($obj3, $sign3) = $class -> _sadd($obj1, $sign1, $obj2, $sign2);
=item CLASS-E<gt>_dec(OBJ)
@@ -2268,6 +2430,16 @@ COLLSEQ.
See _from_base() for more information.
+=item CLASS-E<gt>_to_base_num(OBJ, BASE)
+
+Converts the given number to the given base. This method is equivalent to
+C<_to_base()>, but returns numbers in an array rather than characters in a
+string. In the output, the first element is the most significant. Unlike
+C<_to_base()>, all input values may be arbitrarily large.
+
+ $x = $class -> _to_base_num(13, 2) # $x is [1, 1, 0, 1]
+ $x = $class -> _to_base_num(65191, 128) # $x is [3, 125, 39]
+
=item CLASS-E<gt>_as_bin(OBJ)
Like C<_to_bin()> but with a '0b' prefix.
@@ -2460,7 +2632,7 @@ the same terms as Perl itself.
=head1 AUTHOR
-Peter John Acklam, E<lt>pjacklam@online.noE<gt>
+Peter John Acklam, E<lt>pjacklam@gmail.comE<gt>
Code and documentation based on the Math::BigInt::Calc module by Tels
E<lt>nospam-abuse@bloodgate.comE<gt>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm
index 5517bedad9..16ac187abb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm
@@ -1,48 +1,76 @@
-#!perl
+# -*- mode: perl; -*-
package Math::BigInt::Trace;
-require 5.010;
use strict;
use warnings;
use Exporter;
use Math::BigInt;
-our ($accuracy, $precision, $round_mode, $div_scale);
-
our @ISA = qw(Exporter Math::BigInt);
-our $VERSION = '0.51';
+our $VERSION = '0.66';
use overload; # inherit overload from Math::BigInt
# Globals
-$accuracy = $precision = undef;
-$round_mode = 'even';
-$div_scale = 40;
+our $accuracy = undef;
+our $precision = undef;
+our $round_mode = 'even';
+our $div_scale = 40;
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $value = shift;
+
my $a = $accuracy;
$a = $_[0] if defined $_[0];
+
my $p = $precision;
$p = $_[1] if defined $_[1];
- my $self = Math::BigInt->new($value, $a, $p, $round_mode);
- bless $self, $class;
- print "MBI new '$value' => '$self' (", ref($self), ")";
+
+ my $self = $class -> SUPER::new($value, $a, $p, $round_mode);
+
+ printf "Math::BigInt new '%s' => '%s' (%s)\n",
+ $value, $self, ref($self);
+
return $self;
}
sub import {
- print "MBI import ", join(' ', @_);
- my $self = shift;
- Math::BigInt::import($self, @_); # need it for subclasses
-# $self->export_to_level(1, $self, @_); # need this ?
- @_ = ();
+ my $class = shift;
+
+ printf "%s -> import(%s)\n", $class, join(", ", @_);
+
+ # we catch the constants, the rest goes to parent
+
+ my $constant = grep { $_ eq ':constant' } @_;
+ my @a = grep { $_ ne ':constant' } @_;
+
+ if ($constant) {
+ overload::constant
+
+ integer => sub {
+ $class -> new(shift);
+ },
+
+ float => sub {
+ $class -> new(shift);
+ },
+
+ binary => sub {
+ # E.g., a literal 0377 shall result in an object whose value
+ # is decimal 255, but new("0377") returns decimal 377.
+ return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/;
+ $class -> new(shift);
+ };
+ }
+
+ $class -> SUPER::import(@a); # need it for subclasses
+ #$self -> export_to_level(1, $class, @_); # need this ?
}
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm
index e3d172836c..0d0f246795 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm
@@ -16,11 +16,12 @@ use 5.006;
use strict;
use warnings;
-use Carp qw< carp croak >;
+use Carp qw< carp croak >;
+use Scalar::Util qw< blessed >;
-use Math::BigFloat 1.999718;
+use Math::BigFloat ();
-our $VERSION = '0.2614';
+our $VERSION = '0.2624';
our @ISA = qw(Math::BigFloat);
@@ -199,12 +200,6 @@ use overload
BEGIN {
*objectify = \&Math::BigInt::objectify; # inherit this from BigInt
*AUTOLOAD = \&Math::BigFloat::AUTOLOAD; # can't inherit AUTOLOAD
- # We inherit these from BigFloat because currently it is not possible that
- # Math::BigFloat has a different $LIB variable than we, because
- # Math::BigFloat also uses Math::BigInt::config->('lib') (there is always
- # only one library loaded)
- *_e_add = \&Math::BigFloat::_e_add;
- *_e_sub = \&Math::BigFloat::_e_sub;
*as_number = \&as_int;
*is_pos = \&is_positive;
*is_neg = \&is_negative;
@@ -305,20 +300,32 @@ sub new {
unless (defined $d) {
#return $n -> copy($n) if $n -> isa('Math::BigRat');
- return $class -> copy($n) if $n -> isa('Math::BigRat');
- return $class -> bnan() if $n -> is_nan();
- return $class -> binf($n -> sign()) if $n -> is_inf();
+ if ($n -> isa('Math::BigRat')) {
+ return $downgrade -> new($n)
+ if defined($downgrade) && $n -> is_int();
+ return $class -> copy($n);
+ }
+
+ if ($n -> is_nan()) {
+ return $class -> bnan();
+ }
+
+ if ($n -> is_inf()) {
+ return $class -> binf($n -> sign());
+ }
if ($n -> isa('Math::BigInt')) {
- $self -> {_n} = $LIB -> _new($n -> copy() -> babs() -> bstr());
+ $self -> {_n} = $LIB -> _new($n -> copy() -> babs(undef, undef)
+ -> bstr());
$self -> {_d} = $LIB -> _one();
$self -> {sign} = $n -> sign();
+ return $downgrade -> new($n) if defined $downgrade;
return $self;
}
if ($n -> isa('Math::BigFloat')) {
- my $m = $n -> mantissa() -> babs();
- my $e = $n -> exponent();
+ my $m = $n -> mantissa(undef, undef) -> babs(undef, undef);
+ my $e = $n -> exponent(undef, undef);
$self -> {_n} = $LIB -> _new($m -> bstr());
$self -> {_d} = $LIB -> _one();
@@ -329,7 +336,8 @@ sub new {
$self -> {_d} = $LIB -> _lsft($self -> {_d},
$LIB -> _new(-$e -> bstr()), 10);
- my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}), $self -> {_d});
+ my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}),
+ $self -> {_d});
if (!$LIB -> _is_one($gcd)) {
$self -> {_n} = $LIB -> _div($self->{_n}, $gcd);
$self -> {_d} = $LIB -> _div($self->{_d}, $gcd);
@@ -337,6 +345,8 @@ sub new {
}
$self -> {sign} = $n -> sign();
+ return $downgrade -> new($n, undef, undef)
+ if defined($downgrade) && $n -> is_int();
return $self;
}
@@ -353,19 +363,30 @@ sub new {
# At this point both $n and $d are objects.
- return $class -> bnan() if $n -> is_nan() || $d -> is_nan();
+ if ($n -> is_nan() || $d -> is_nan()) {
+ return $class -> bnan();
+ }
# At this point neither $n nor $d is a NaN.
if ($n -> is_zero()) {
- return $class -> bnan() if $d -> is_zero(); # 0/0 = NaN
+ if ($d -> is_zero()) { # 0/0 = NaN
+ return $class -> bnan();
+ }
return $class -> bzero();
}
- return $class -> binf($d -> sign()) if $d -> is_zero();
+ if ($d -> is_zero()) {
+ return $class -> binf($d -> sign());
+ }
# At this point, neither $n nor $d is a NaN or a zero.
+ # Copy them now before manipulating them.
+
+ $n = $n -> copy();
+ $d = $d -> copy();
+
if ($d < 0) { # make sure denominator is positive
$n -> bneg();
$d -> bneg();
@@ -411,6 +432,8 @@ sub new {
$self -> {_d} = $LIB -> _mul($LIB -> _div($LIB -> _copy($q), $gcd_sq),
$LIB -> _div($LIB -> _copy($r), $gcd_pr));
+ return $downgrade -> new($n->bstr())
+ if defined($downgrade) && $self -> is_int();
return $self; # no need for $self -> bnorm() here
}
@@ -516,6 +539,8 @@ sub new {
}
}
+ return $downgrade -> new($self -> bstr())
+ if defined($downgrade) && $self -> is_int();
return $self;
}
@@ -553,6 +578,8 @@ sub bnan {
croak ("Tried to set a variable to NaN in $class->bnan()");
}
+ return $downgrade -> bnan() if defined $downgrade;
+
$self -> {sign} = $nan;
$self -> {_n} = $LIB -> _zero();
$self -> {_d} = $LIB -> _one();
@@ -577,6 +604,8 @@ sub binf {
croak ("Tried to set a variable to +-inf in $class->binf()");
}
+ return $downgrade -> binf($sign) if defined $downgrade;
+
$self -> {sign} = $sign;
$self -> {_n} = $LIB -> _zero();
$self -> {_d} = $LIB -> _one();
@@ -592,11 +621,12 @@ sub bone {
my $selfref = ref $self;
my $class = $selfref || $self;
- $self = bless {}, $class unless $selfref;
-
my $sign = shift();
$sign = '+' unless defined($sign) && $sign eq '-';
+ return $downgrade -> bone($sign) if defined $downgrade;
+
+ $self = bless {}, $class unless $selfref;
$self -> {sign} = $sign;
$self -> {_n} = $LIB -> _one();
$self -> {_d} = $LIB -> _one();
@@ -612,8 +642,9 @@ sub bzero {
my $selfref = ref $self;
my $class = $selfref || $self;
- $self = bless {}, $class unless $selfref;
+ return $downgrade -> bzero() if defined $downgrade;
+ $self = bless {}, $class unless $selfref;
$self -> {sign} = '+';
$self -> {_n} = $LIB -> _zero();
$self -> {_d} = $LIB -> _one();
@@ -644,36 +675,86 @@ sub config {
$cfg;
}
-##############################################################################
+###############################################################################
+# String conversion methods
+###############################################################################
sub bstr {
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
- if ($x->{sign} !~ /^[+-]$/) { # inf, NaN etc
- my $s = $x->{sign};
- $s =~ s/^\+//; # +inf => inf
- return $s;
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
+ # Upgrade?
+
+ return $upgrade -> bstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
my $s = '';
$s = $x->{sign} if $x->{sign} ne '+'; # '+3/2' => '3/2'
- return $s . $LIB->_str($x->{_n}) if $LIB->_is_one($x->{_d});
- $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+ my $str = $x->{sign} eq '-' ? '-' : '';
+ $str .= $LIB->_str($x->{_n});
+ $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d});
+ return $str;
}
sub bsstr {
- my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
- if ($x->{sign} !~ /^[+-]$/) { # inf, NaN etc
- my $s = $x->{sign};
- $s =~ s/^\+//; # +inf => inf
- return $s;
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
- my $s = '';
- $s = $x->{sign} if $x->{sign} ne '+'; # +3 vs 3
- $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+ # Upgrade?
+
+ return $upgrade -> bsstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ my $str = $x->{sign} eq '-' ? '-' : '';
+ $str .= $LIB->_str($x->{_n});
+ $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d});
+ return $str;
+}
+
+sub bfstr {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+ # Inf and NaN
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ # Upgrade?
+
+ return $upgrade -> bfstr($x, @r)
+ if defined($upgrade) && !$x -> isa($class);
+
+ # Finite number
+
+ my $str = $x->{sign} eq '-' ? '-' : '';
+ $str .= $LIB->_str($x->{_n});
+ $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d});
+ return $str;
}
sub bnorm {
@@ -689,16 +770,24 @@ sub bnorm {
}
# no normalize for NaN, inf etc.
- return $x if $x->{sign} !~ /^[+-]$/;
+ if ($x->{sign} !~ /^[+-]$/) {
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
# normalize zeros to 0/1
if ($LIB->_is_zero($x->{_n})) {
+ return $downgrade -> bzero() if defined($downgrade);
$x->{sign} = '+'; # never leave a -0
$x->{_d} = $LIB->_one() unless $LIB->_is_one($x->{_d});
return $x;
}
- return $x if $LIB->_is_one($x->{_d}); # no need to reduce
+ # n/1
+ if ($LIB->_is_one($x->{_d})) {
+ return $downgrade -> new($x) if defined($downgrade);
+ return $x; # no need to reduce
+ }
# Compute the GCD.
my $gcd = $LIB->_gcd($LIB->_copy($x->{_n}), $x->{_d});
@@ -723,56 +812,10 @@ sub bneg {
# for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
$x->{sign} =~ tr/+-/-+/
unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_n}));
- $x;
-}
-
-##############################################################################
-# special values
-
-sub _bnan {
- # used by parent class bnan() to initialize number to NaN
- my $self = shift;
-
- if ($_trap_nan) {
- my $class = ref($self);
- # "$self" below will stringify the object, this blows up if $self is a
- # partial object (happens under trap_nan), so fix it beforehand
- $self->{_d} = $LIB->_zero() unless defined $self->{_d};
- $self->{_n} = $LIB->_zero() unless defined $self->{_n};
- croak ("Tried to set $self to NaN in $class\::_bnan()");
- }
- $self->{_n} = $LIB->_zero();
- $self->{_d} = $LIB->_zero();
-}
-
-sub _binf {
- # used by parent class bone() to initialize number to +inf/-inf
- my $self = shift;
-
- if ($_trap_inf) {
- my $class = ref($self);
- # "$self" below will stringify the object, this blows up if $self is a
- # partial object (happens under trap_nan), so fix it beforehand
- $self->{_d} = $LIB->_zero() unless defined $self->{_d};
- $self->{_n} = $LIB->_zero() unless defined $self->{_n};
- croak ("Tried to set $self to inf in $class\::_binf()");
- }
- $self->{_n} = $LIB->_zero();
- $self->{_d} = $LIB->_zero();
-}
-
-sub _bone {
- # used by parent class bone() to initialize number to +1/-1
- my $self = shift;
- $self->{_n} = $LIB->_one();
- $self->{_d} = $LIB->_one();
-}
-sub _bzero {
- # used by parent class bzero() to initialize number to 0
- my $self = shift;
- $self->{_n} = $LIB->_zero();
- $self->{_d} = $LIB->_one();
+ return $downgrade -> new($x)
+ if defined($downgrade) && $LIB -> _is_one($x->{_d});
+ $x;
}
##############################################################################
@@ -788,12 +831,21 @@ sub badd {
($class, $x, $y, @r) = objectify(2, @_);
}
- # +inf + +inf => +inf, -inf + -inf => -inf
- return $x->binf(substr($x->{sign}, 0, 1))
- if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
-
- # +inf + -inf or -inf + +inf => NaN
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ unless ($x -> is_finite() && $y -> is_finite()) {
+ if ($x -> is_nan() || $y -> is_nan()) {
+ return $x -> bnan(@r);
+ } elsif ($x -> is_inf("+")) {
+ return $x -> bnan(@r) if $y -> is_inf("-");
+ return $x -> binf("+", @r);
+ } elsif ($x -> is_inf("-")) {
+ return $x -> bnan(@r) if $y -> is_inf("+");
+ return $x -> binf("-", @r);
+ } elsif ($y -> is_inf("+")) {
+ return $x -> binf("+", @r);
+ } elsif ($y -> is_inf("-")) {
+ return $x -> binf("-", @r);
+ }
+ }
# 1 1 gcd(3, 4) = 1 1*3 + 1*4 7
# - + - = --------- = --
@@ -813,7 +865,7 @@ sub badd {
my $m = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
# 5 * 3 + 7 * 4
- ($x->{_n}, $x->{sign}) = _e_add($x->{_n}, $m, $x->{sign}, $y->{sign});
+ ($x->{_n}, $x->{sign}) = $LIB -> _sadd($x->{_n}, $x->{sign}, $m, $y->{sign});
# 4 * 3
$x->{_d} = $LIB->_mul($x->{_d}, $y->{_d});
@@ -834,12 +886,12 @@ sub bsub {
# flip sign of $x, call badd(), then flip sign of result
$x->{sign} =~ tr/+-/-+/
- unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
- $x->badd($y, @r); # does norm and round
+ unless $x->{sign} eq '+' && $x -> is_zero(); # not -0
+ $x = $x->badd($y, @r); # does norm and round
$x->{sign} =~ tr/+-/-+/
- unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
+ unless $x->{sign} eq '+' && $x -> is_zero(); # not -0
- $x;
+ $x->bnorm();
}
sub bmul {
@@ -866,10 +918,13 @@ sub bmul {
}
# x == 0 # also: or y == 1 or y == -1
- return wantarray ? ($x, $class->bzero()) : $x if $x -> is_zero();
+ if ($x -> is_zero()) {
+ $x = $downgrade -> bzero($x) if defined $downgrade;
+ return wantarray ? ($x, $class->bzero()) : $x;
+ }
if ($y -> is_zero()) {
- $x -> bzero();
+ $x = defined($downgrade) ? $downgrade -> bzero($x) : $x -> bzero();
return wantarray ? ($x, $class->bzero()) : $x;
}
@@ -893,7 +948,7 @@ sub bmul {
# compute new sign
$x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
- $x->round(@r);
+ $x->bnorm()->round(@r);
}
sub bdiv {
@@ -916,7 +971,15 @@ sub bdiv {
# method.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+ if ($wantarray) {
+ return $downgrade -> bnan(), $downgrade -> bnan()
+ if defined($downgrade);
+ return $x -> bnan(), $class -> bnan();
+ } else {
+ return $downgrade -> bnan()
+ if defined($downgrade);
+ return $x -> bnan();
+ }
}
# Divide by zero and modulo zero. This is handled the same way as in
@@ -933,6 +996,11 @@ sub bdiv {
} else {
$quo = $x -> binf($x -> {sign});
}
+
+ $quo = $downgrade -> new($quo)
+ if defined($downgrade) && $quo -> is_int();
+ $rem = $downgrade -> new($rem)
+ if $wantarray && defined($downgrade) && $rem -> is_int();
return $wantarray ? ($quo, $rem) : $quo;
}
@@ -949,6 +1017,11 @@ sub bdiv {
my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
$quo = $x -> binf($sign);
}
+
+ $quo = $downgrade -> new($quo)
+ if defined($downgrade) && $quo -> is_int();
+ $rem = $downgrade -> new($rem)
+ if $wantarray && defined($downgrade) && $rem -> is_int();
return $wantarray ? ($quo, $rem) : $quo;
}
@@ -966,12 +1039,18 @@ sub bdiv {
$rem = $class -> binf($y -> {sign});
$quo = $x -> bone('-');
}
+ $quo = $downgrade -> new($quo)
+ if defined($downgrade) && $quo -> is_int();
+ $rem = $downgrade -> new($rem)
+ if defined($downgrade) && $rem -> is_int();
return ($quo, $rem);
} else {
if ($y -> is_inf()) {
if ($x -> is_nan() || $x -> is_inf()) {
+ return $downgrade -> bnan() if defined $downgrade;
return $x -> bnan();
} else {
+ return $downgrade -> bzero() if defined $downgrade;
return $x -> bzero();
}
}
@@ -982,7 +1061,11 @@ sub bdiv {
# the denominator (divisor) is non-zero.
# x == 0?
- return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
+ if ($x->is_zero()) {
+ return $wantarray ? ($downgrade -> bzero(), $downgrade -> bzero())
+ : $downgrade -> bzero() if defined $downgrade;
+ return $wantarray ? ($x, $class->bzero()) : $x;
+ }
# XXX TODO: list context, upgrade
# According to Knuth, this can be optimized by doing gcd twice (for d and n)
@@ -1001,13 +1084,14 @@ sub bdiv {
$x -> bnorm();
if (wantarray) {
my $rem = $x -> copy();
- $x -> bfloor();
- $x -> round(@r);
- $rem -> bsub($x -> copy()) -> bmul($y);
+ $x = $x -> bfloor();
+ $x = $x -> round(@r);
+ $rem = $rem -> bsub($x -> copy()) -> bmul($y);
+ $x = $downgrade -> new($x) if defined($downgrade) && $x -> is_int();
+ $rem = $downgrade -> new($rem) if defined($downgrade) && $rem -> is_int();
return $x, $rem;
} else {
- $x -> round(@r);
- return $x;
+ return $x -> round(@r);
}
}
@@ -1033,6 +1117,7 @@ sub bmod {
# Modulo zero. This is handled the same way as in Math::BigInt -> bmod().
if ($y -> is_zero()) {
+ return $downgrade -> bzero() if defined $downgrade;
return $x;
}
@@ -1048,8 +1133,10 @@ sub bmod {
if ($y -> is_inf()) {
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
+ return $downgrade -> new($x) if defined($downgrade) && $x -> is_int();
return $x;
} else {
+ return $downgrade -> binf($y -> sign()) if defined($downgrade);
return $x -> binf($y -> sign());
}
}
@@ -1057,7 +1144,10 @@ sub bmod {
# At this point, both the numerator and denominator are finite numbers, and
# the denominator (divisor) is non-zero.
- return $x if $x->is_zero(); # 0 / 7 = 0, mod 0
+ if ($x->is_zero()) { # 0 / 7 = 0, mod 0
+ return $downgrade -> bzero() if defined $downgrade;
+ return $x;
+ }
# Compute $x - $y * floor($x/$y). This can probably be optimized by working
# on a lower level.
@@ -1073,7 +1163,10 @@ sub bdec {
# decrement value (subtract 1)
my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
+ if ($x->{sign} !~ /^[+-]$/) { # NaN, inf, -inf
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
if ($x->{sign} eq '-') {
$x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # -5/2 => -7/2
@@ -1094,7 +1187,10 @@ sub binc {
# increment value (add 1)
my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
+ if ($x->{sign} !~ /^[+-]$/) { # NaN, inf, -inf
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
if ($x->{sign} eq '-') {
if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) {
@@ -1110,6 +1206,20 @@ sub binc {
$x->bnorm()->round(@r);
}
+sub binv {
+ my $x = shift;
+ my @r = @_;
+
+ return $x if $x->modify('binv');
+
+ return $x if $x -> is_nan();
+ return $x -> bzero() if $x -> is_inf();
+ return $x -> binf("+") if $x -> is_zero();
+
+ ($x -> {_n}, $x -> {_d}) = ($x -> {_d}, $x -> {_n});
+ $x -> round(@r);
+}
+
##############################################################################
# is_foo methods (the rest is inherited)
@@ -1201,6 +1311,53 @@ sub parts {
($n, $d);
}
+sub dparts {
+ my $x = shift;
+ my $class = ref $x;
+
+ croak("dparts() is an instance method") unless $class;
+
+ if ($x -> is_nan()) {
+ return $class -> bnan(), $class -> bnan() if wantarray;
+ return $class -> bnan();
+ }
+
+ if ($x -> is_inf()) {
+ return $class -> binf($x -> sign()), $class -> bzero() if wantarray;
+ return $class -> binf($x -> sign());
+ }
+
+ # 355/113 => 3 + 16/113
+
+ my ($q, $r) = $LIB -> _div($LIB -> _copy($x -> {_n}), $x -> {_d});
+
+ my $int = Math::BigRat -> new($x -> {sign} . $LIB -> _str($q));
+ return $int unless wantarray;
+
+ my $frc = Math::BigRat -> new($x -> {sign} . $LIB -> _str($r),
+ $LIB -> _str($x -> {_d}));
+
+ return $int, $frc;
+}
+
+sub fparts {
+ my $x = shift;
+ my $class = ref $x;
+
+ croak("fparts() is an instance method") unless $class;
+
+ return ($class -> bnan(),
+ $class -> bnan()) if $x -> is_nan();
+
+ my $numer = $x -> copy();
+ my $denom = $class -> bzero();
+
+ $denom -> {_n} = $numer -> {_d};
+ $numer -> {_d} = $LIB -> _one();
+
+ return ($numer, $denom);
+}
+
sub length {
my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
@@ -1221,37 +1378,52 @@ sub digit {
sub bceil {
my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- return $x if ($x->{sign} !~ /^[+-]$/ || # not for NaN, inf
- $LIB->_is_one($x->{_d})); # 22/1 => 22, 0/1 => 0
+ if ($x->{sign} !~ /^[+-]$/ || # NaN or inf or
+ $LIB->_is_one($x->{_d})) # integer
+ {
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
$x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
$x->{_d} = $LIB->_one(); # d => 1
$x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '+'; # +22/7 => 4/1
$x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_zero($x->{_n}); # -0 => 0
+ return $downgrade -> new($x) if defined $downgrade;
$x;
}
sub bfloor {
my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- return $x if ($x->{sign} !~ /^[+-]$/ || # not for NaN, inf
- $LIB->_is_one($x->{_d})); # 22/1 => 22, 0/1 => 0
+ if ($x->{sign} !~ /^[+-]$/ || # NaN or inf or
+ $LIB->_is_one($x->{_d})) # integer
+ {
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
$x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
$x->{_d} = $LIB->_one(); # d => 1
$x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '-'; # -22/7 => -4/1
+ return $downgrade -> new($x) if defined $downgrade;
$x;
}
sub bint {
- my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- return $x if ($x->{sign} !~ /^[+-]$/ || # +/-inf or NaN
- $LIB -> _is_one($x->{_d})); # already an integer
+ if ($x->{sign} !~ /^[+-]$/ || # NaN or inf or
+ $LIB->_is_one($x->{_d})) # integer
+ {
+ return $downgrade -> new($x) if defined $downgrade;
+ return $x;
+ }
$x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
$x->{_d} = $LIB->_one(); # d => 1
$x->{sign} = '+' if $x->{sign} eq '-' && $LIB -> _is_zero($x->{_n});
+ return $downgrade -> new($x) if defined $downgrade;
return $x;
}
@@ -1279,6 +1451,8 @@ sub bpow {
($class, $x, $y, @r) = objectify(2, @_);
}
+ return $x if $x->modify('bpow');
+
# $x and/or $y is a NaN
return $x->bnan() if $x->is_nan() || $y->is_nan();
@@ -1304,21 +1478,28 @@ sub bpow {
return $x->binf("+");
}
- if ($x->is_zero()) {
- return $x->binf() if $y->is_negative();
- return $x->bone("+") if $y->is_zero();
+ if ($x -> is_zero()) {
+ return $x -> bone() if $y -> is_zero();
+ return $x -> binf() if $y -> is_negative();
return $x;
- } elsif ($x->is_one()) {
- return $x->round(@r) if $y->is_odd(); # x is -1, y is odd => -1
- return $x->babs()->round(@r); # x is -1, y is even => 1
- } elsif ($y->is_zero()) {
- return $x->bone(@r); # x^0 and x != 0 => 1
- } elsif ($y->is_one()) {
- return $x->round(@r); # x^1 => x
}
- # we don't support complex numbers, so return NaN
- return $x->bnan() if $x->is_negative() && !$y->is_int();
+ # We don't support complex numbers, so upgrade or return NaN.
+
+ if ($x -> is_negative() && !$y -> is_int()) {
+ return $upgrade -> bpow($upgrade -> new($x), $y, @r)
+ if defined $upgrade;
+ return $x -> bnan();
+ }
+
+ if ($x -> is_one("+") || $y -> is_one()) {
+ return $x;
+ }
+
+ if ($x -> is_one("-")) {
+ return $x if $y -> is_odd();
+ return $x -> bneg();
+ }
# (a/b)^-(c/d) = (b/a)^(c/d)
($x->{_n}, $x->{_d}) = ($x->{_d}, $x->{_n}) if $y->is_negative();
@@ -1348,11 +1529,11 @@ sub blog {
# $x->blog(undef) signals that the base is Euler's number.
if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
- # E.g., Math::BigFloat->blog(256, 2)
+ # E.g., Math::BigRat->blog(256, 2)
($class, $x, $base, @r) =
defined $_[2] ? objectify(2, @_) : objectify(1, @_);
} else {
- # E.g., Math::BigFloat::blog(256, 2) or $x->blog(2)
+ # E.g., Math::BigRat::blog(256, 2) or $x->blog(2)
($class, $x, $base, @r) =
defined $_[1] ? objectify(2, @_) : objectify(1, @_);
}
@@ -1393,20 +1574,50 @@ sub blog {
return $x -> binf($sign);
}
+ # Now take care of the cases where $x and/or $base is 1/N.
+ #
+ # log(1/N) / log(B) = -log(N)/log(B)
+ # log(1/N) / log(1/B) = log(N)/log(B)
+ # log(N) / log(1/B) = -log(N)/log(B)
+
+ my $neg = 0;
+ if ($x -> numerator() -> is_one()) {
+ $x -> binv();
+ $neg = !$neg;
+ }
+ if (defined(blessed($base)) && $base -> isa($class)) {
+ if ($base -> numerator() -> is_one()) {
+ $base = $base -> copy() -> binv();
+ $neg = !$neg;
+ }
+ }
+
+ # disable upgrading and downgrading
+
+ require Math::BigFloat;
+ my $upg = Math::BigFloat -> upgrade();
+ my $dng = Math::BigFloat -> downgrade();
+ Math::BigFloat -> upgrade(undef);
+ Math::BigFloat -> downgrade(undef);
+
# At this point we are done handling all exception cases and trivial cases.
$base = Math::BigFloat -> new($base) if defined $base;
+ my $xnum = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ my $xden = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ my $xstr = $xnum -> bdiv($xden) -> blog($base, @r) -> bsstr();
- my $xn = Math::BigFloat -> new($LIB -> _str($x->{_n}));
- my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ # reset upgrading and downgrading
- my $xtmp = Math::BigRat -> new($xn -> bdiv($xd) -> blog($base, @r) -> bsstr());
+ Math::BigFloat -> upgrade($upg);
+ Math::BigFloat -> downgrade($dng);
- $x -> {sign} = $xtmp -> {sign};
- $x -> {_n} = $xtmp -> {_n};
- $x -> {_d} = $xtmp -> {_d};
+ my $xobj = Math::BigRat -> new($xstr);
+ $x -> {sign} = $xobj -> {sign};
+ $x -> {_n} = $xobj -> {_n};
+ $x -> {_d} = $xobj -> {_d};
- return $x;
+ return $neg ? $x -> bneg() : $x;
}
sub bexp {
@@ -1513,13 +1724,18 @@ sub bnok {
($class, $x, $y, @r) = objectify(2, @_);
}
- my $xint = Math::BigInt -> new($x -> bint() -> bsstr());
- my $yint = Math::BigInt -> new($y -> bint() -> bsstr());
+ return $x->bnan() if $x->is_nan() || $y->is_nan();
+ return $x->bnan() if (($x->is_finite() && !$x->is_int()) ||
+ ($y->is_finite() && !$y->is_int()));
+
+ my $xint = Math::BigInt -> new($x -> bstr());
+ my $yint = Math::BigInt -> new($y -> bstr());
$xint -> bnok($yint);
+ my $xrat = Math::BigRat -> new($xint);
- $x -> {sign} = $xint -> {sign};
- $x -> {_n} = $xint -> {_n};
- $x -> {_d} = $xint -> {_d};
+ $x -> {sign} = $xrat -> {sign};
+ $x -> {_n} = $xrat -> {_n};
+ $x -> {_d} = $xrat -> {_d};
return $x;
}
@@ -1570,7 +1786,7 @@ sub bmodpow {
my $yint = Math::BigInt -> new($y -> copy() -> bint());
my $mint = Math::BigInt -> new($m -> copy() -> bint());
- $xint -> bmodpow($y, $m, @r);
+ $xint -> bmodpow($yint, $mint, @r);
my $xtmp = Math::BigRat -> new($xint -> bsstr());
$x -> {sign} = $xtmp -> {sign};
@@ -1592,7 +1808,7 @@ sub bmodinv {
my $xint = Math::BigInt -> new($x -> copy() -> bint());
my $yint = Math::BigInt -> new($y -> copy() -> bint());
- $xint -> bmodinv($y, @r);
+ $xint -> bmodinv($yint, @r);
my $xtmp = Math::BigRat -> new($xint -> bsstr());
$x -> {sign} = $xtmp -> {sign};
@@ -1651,7 +1867,7 @@ sub bsqrt {
}
sub blsft {
- my ($class, $x, $y, $b, @r) = objectify(2, @_);
+ my ($class, $x, $y, $b) = objectify(2, @_);
$b = 2 if !defined $b;
$b = $class -> new($b) unless ref($b) && $b -> isa($class);
@@ -1665,7 +1881,7 @@ sub blsft {
}
sub brsft {
- my ($class, $x, $y, $b, @r) = objectify(2, @_);
+ my ($class, $x, $y, $b) = objectify(2, @_);
$b = 2 if !defined $b;
$b = $class -> new($b) unless ref($b) && $b -> isa($class);
@@ -1776,15 +1992,24 @@ sub bnot {
# round
sub round {
- $_[0];
+ my $x = shift;
+ return $downgrade -> new($x) if defined($downgrade) &&
+ ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+ $x;
}
sub bround {
- $_[0];
+ my $x = shift;
+ return $downgrade -> new($x) if defined($downgrade) &&
+ ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+ $x;
}
sub bfround {
- $_[0];
+ my $x = shift;
+ return $downgrade -> new($x) if defined($downgrade) &&
+ ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+ $x;
}
##############################################################################
@@ -1803,9 +2028,9 @@ sub bcmp {
if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
# $x is NaN and/or $y is NaN
- return undef if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ return if $x->{sign} eq $nan || $y->{sign} eq $nan;
# $x and $y are both either +inf or -inf
- return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
# $x = +inf and $y < +inf
return +1 if $x->{sign} eq '+inf';
# $x = -inf and $y > -inf
@@ -1850,9 +2075,9 @@ sub bacmp {
if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
# handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
- return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
+ return if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
+ return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
return -1;
}
@@ -1864,7 +2089,7 @@ sub bacmp {
sub beq {
my $self = shift;
my $selfref = ref $self;
- my $class = $selfref || $self;
+ #my $class = $selfref || $self;
croak 'beq() is an instance method, not a class method' unless $selfref;
croak 'Wrong number of arguments for beq()' unless @_ == 1;
@@ -1876,7 +2101,7 @@ sub beq {
sub bne {
my $self = shift;
my $selfref = ref $self;
- my $class = $selfref || $self;
+ #my $class = $selfref || $self;
croak 'bne() is an instance method, not a class method' unless $selfref;
croak 'Wrong number of arguments for bne()' unless @_ == 1;
@@ -1888,7 +2113,7 @@ sub bne {
sub blt {
my $self = shift;
my $selfref = ref $self;
- my $class = $selfref || $self;
+ #my $class = $selfref || $self;
croak 'blt() is an instance method, not a class method' unless $selfref;
croak 'Wrong number of arguments for blt()' unless @_ == 1;
@@ -1900,7 +2125,7 @@ sub blt {
sub ble {
my $self = shift;
my $selfref = ref $self;
- my $class = $selfref || $self;
+ #my $class = $selfref || $self;
croak 'ble() is an instance method, not a class method' unless $selfref;
croak 'Wrong number of arguments for ble()' unless @_ == 1;
@@ -1912,7 +2137,7 @@ sub ble {
sub bgt {
my $self = shift;
my $selfref = ref $self;
- my $class = $selfref || $self;
+ #my $class = $selfref || $self;
croak 'bgt() is an instance method, not a class method' unless $selfref;
croak 'Wrong number of arguments for bgt()' unless @_ == 1;
@@ -1924,7 +2149,7 @@ sub bgt {
sub bge {
my $self = shift;
my $selfref = ref $self;
- my $class = $selfref || $self;
+ #my $class = $selfref || $self;
croak 'bge() is an instance method, not a class method'
unless $selfref;
@@ -1943,7 +2168,17 @@ sub numify {
# Non-finite number.
- return $x->bstr() if $x->{sign} !~ /^[+-]$/;
+ if ($x -> is_nan()) {
+ require Math::Complex;
+ my $inf = $Math::Complex::Inf;
+ return $inf - $inf;
+ }
+
+ if ($x -> is_inf()) {
+ require Math::Complex;
+ my $inf = $Math::Complex::Inf;
+ return $x -> is_negative() ? -$inf : $inf;
+ }
# Finite number.
@@ -1956,34 +2191,70 @@ sub numify {
}
sub as_int {
- my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # NaN, inf etc
- return Math::BigInt->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+ return $x -> copy() if $x -> isa("Math::BigInt");
- my $u = Math::BigInt->bzero();
- $u->{value} = $LIB->_div($LIB->_copy($x->{_n}), $x->{_d}); # 22/7 => 3
- $u->bneg if $x->{sign} eq '-'; # no negative zero
- $u;
+ # disable upgrading and downgrading
+
+ require Math::BigInt;
+ my $upg = Math::BigInt -> upgrade();
+ my $dng = Math::BigInt -> downgrade();
+ Math::BigInt -> upgrade(undef);
+ Math::BigInt -> downgrade(undef);
+
+ my $y;
+ if ($x -> is_inf()) {
+ $y = Math::BigInt -> binf($x->sign());
+ } elsif ($x -> is_nan()) {
+ $y = Math::BigInt -> bnan();
+ } else {
+ my $int = $LIB -> _div($LIB -> _copy($x->{_n}), $x->{_d}); # 22/7 => 3
+ $y = Math::BigInt -> new($LIB -> _str($int));
+ $y = $y -> bneg() if $x -> is_neg();
+ }
+
+ # reset upgrading and downgrading
+
+ Math::BigInt -> upgrade($upg);
+ Math::BigInt -> downgrade($dng);
+
+ return $y;
}
sub as_float {
- # return N/D as Math::BigFloat
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # set up parameters
- my ($class, $x, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- ($class, $x, @r) = objectify(1, @_) unless ref $_[0];
+ return $x -> copy() if $x -> isa("Math::BigFloat");
- # NaN, inf etc
- return Math::BigFloat->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+ # disable upgrading and downgrading
- my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
- my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n}));
- $xflt -> {sign} = $x -> {sign};
- $xflt -> bdiv($xd, @r);
+ require Math::BigFloat;
+ my $upg = Math::BigFloat -> upgrade();
+ my $dng = Math::BigFloat -> downgrade();
+ Math::BigFloat -> upgrade(undef);
+ Math::BigFloat -> downgrade(undef);
+
+ my $y;
+ if ($x -> is_inf()) {
+ $y = Math::BigFloat -> binf($x->sign());
+ } elsif ($x -> is_nan()) {
+ $y = Math::BigFloat -> bnan();
+ } else {
+ $y = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ $y -> {sign} = $x -> {sign};
+ unless ($LIB -> _is_one($x->{_d})) {
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ $y -> bdiv($xd, @r);
+ }
+ }
+
+ # reset upgrading and downgrading
- return $xflt;
+ Math::BigFloat -> upgrade($upg);
+ Math::BigFloat -> downgrade($dng);
+
+ return $y;
}
sub as_bin {
@@ -2019,18 +2290,27 @@ sub as_oct {
sub from_hex {
my $class = shift;
- $class->new(@_);
+ # The relationship should probably go the otherway, i.e, that new() calls
+ # from_hex(). Fixme!
+ my ($x, @r) = @_;
+ $x =~ s|^\s*(?:0?[Xx]_*)?|0x|;
+ $class->new($x, @r);
}
sub from_bin {
my $class = shift;
- $class->new(@_);
+ # The relationship should probably go the otherway, i.e, that new() calls
+ # from_bin(). Fixme!
+ my ($x, @r) = @_;
+ $x =~ s|^\s*(?:0?[Bb]_*)?|0b|;
+ $class->new($x, @r);
}
sub from_oct {
my $class = shift;
+ # Why is this different from from_hex() and from_bin()? Fixme!
my @parts;
for my $c (@_) {
push @parts, Math::BigInt->from_oct($c);
@@ -2043,57 +2323,101 @@ sub from_oct {
sub import {
my $class = shift;
- my $l = scalar @_;
- my $lib = ''; my @a;
- my $try = 'try';
-
- for (my $i = 0; $i < $l ; $i++) {
- if ($_[$i] eq ':constant') {
- # this rest causes overlord er load to step in
- overload::constant float => sub { $class->new(shift); };
+ my @a; # unrecognized arguments
+ my $lib_param = '';
+ my $lib_value = '';
+
+ while (@_) {
+ my $param = shift;
+
+ # Enable overloading of constants.
+
+ if ($param eq ':constant') {
+ overload::constant
+
+ integer => sub {
+ $class -> new(shift);
+ },
+
+ float => sub {
+ $class -> new(shift);
+ },
+
+ binary => sub {
+ # E.g., a literal 0377 shall result in an object whose value
+ # is decimal 255, but new("0377") returns decimal 377.
+ return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/;
+ $class -> new(shift);
+ };
+ next;
}
- # elsif ($_[$i] eq 'upgrade')
- # {
- # # this causes upgrading
- # $upgrade = $_[$i+1]; # or undef to disable
- # $i++;
- # }
- elsif ($_[$i] eq 'downgrade') {
- # this causes downgrading
- $downgrade = $_[$i+1]; # or undef to disable
- $i++;
- } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
- $lib = $_[$i+1] || ''; # default Calc
- $try = $1; # lib, try or only
- $i++;
- } elsif ($_[$i] eq 'with') {
- # this argument is no longer used
- #$LIB = $_[$i+1] || 'Math::BigInt::Calc'; # default Math::BigInt::Calc
- $i++;
- } else {
- push @a, $_[$i];
+
+ # Upgrading.
+
+ if ($param eq 'upgrade') {
+ $class -> upgrade(shift);
+ next;
}
- }
- require Math::BigInt;
- # let use Math::BigInt lib => 'GMP'; use Math::BigRat; still have GMP
- if ($lib ne '') {
- my @c = split /\s*,\s*/, $lib;
- foreach (@c) {
- $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+ # Downgrading.
+
+ if ($param eq 'downgrade') {
+ $class -> downgrade(shift);
+ next;
}
- $lib = join(",", @c);
+
+ # Accuracy.
+
+ if ($param eq 'accuracy') {
+ $class -> accuracy(shift);
+ next;
+ }
+
+ # Precision.
+
+ if ($param eq 'precision') {
+ $class -> precision(shift);
+ next;
+ }
+
+ # Rounding mode.
+
+ if ($param eq 'round_mode') {
+ $class -> round_mode(shift);
+ next;
+ }
+
+ # Backend library.
+
+ if ($param =~ /^(lib|try|only)\z/) {
+ # alternative library
+ $lib_param = $param; # "lib", "try", or "only"
+ $lib_value = shift;
+ next;
+ }
+
+ if ($param eq 'with') {
+ # alternative class for our private parts()
+ # XXX: no longer supported
+ # $LIB = shift() || 'Calc';
+ # carp "'with' is no longer supported, use 'lib', 'try', or 'only'";
+ shift;
+ next;
+ }
+
+ # Unrecognized parameter.
+
+ push @a, $param;
}
- my @import = ('objectify');
- push @import, $try => $lib if $lib ne '';
- # LIB already loaded, so feed it our lib arguments
- Math::BigInt->import(@import);
+ require Math::BigInt;
- $LIB = Math::BigFloat->config("lib");
+ my @import = ('objectify');
+ push @import, $lib_param, $lib_value if $lib_param ne '';
+ Math::BigInt -> import(@import);
- # register us with LIB to get notified of future lib changes
- Math::BigInt::_register_callback($class, sub { $LIB = $_[0]; });
+ # find out which one was actually loaded
+ $LIB = Math::BigInt -> config("lib");
# any non :constant stuff is handled by Exporter (loaded by parent class)
# even if @_ is empty, to give it a chance
@@ -2109,7 +2433,7 @@ __END__
=head1 NAME
-Math::BigRat - Arbitrary big rational numbers
+Math::BigRat - arbitrary size rational number math package
=head1 SYNOPSIS
@@ -2201,6 +2525,16 @@ Returns a copy of the denominator (the part under the line) as positive BigInt.
Return a list consisting of (signed) numerator and (unsigned) denominator as
BigInts.
+=item dparts()
+
+Returns the integer part and the fraction part.
+
+=item fparts()
+
+Returns the smallest possible numerator and denominator so that the numerator
+divided by the denominator gives back the original value. For finite numbers,
+both values are integers. Mnemonic: fraction.
+
=item numify()
my $y = $x->numify();
@@ -2513,7 +2847,13 @@ Subtracts $y from $x and returns the result.
In scalar context, divides $x by $y and returns the result. In list context,
does floored division (F-division), returning an integer $q and a remainder $r
so that $x = $q * $y + $r. The remainer (modulo) is equal to what is returned
-by C<$x->bmod($y)>.
+by C<< $x->bmod($y) >>.
+
+=item binv()
+
+ $x->binv();
+
+Inverse of $x.
=item bdec()
@@ -2695,6 +3035,70 @@ supported.
=back
+=head1 NUMERIC LITERALS
+
+After C<use Math::BigRat ':constant'> all numeric literals in the given scope
+are converted to C<Math::BigRat> objects. This conversion happens at compile
+time. Every non-integer is convert to a NaN.
+
+For example,
+
+ perl -MMath::BigRat=:constant -le 'print 2**150'
+
+prints the exact value of C<2**150>. Note that without conversion of constants
+to objects the expression C<2**150> is calculated using Perl scalars, which
+leads to an inaccurate result.
+
+Please note that strings are not affected, so that
+
+ use Math::BigRat qw/:constant/;
+
+ $x = "1234567890123456789012345678901234567890"
+ + "123456789123456789";
+
+does give you what you expect. You need an explicit Math::BigRat->new() around
+at least one of the operands. You should also quote large constants to prevent
+loss of precision:
+
+ use Math::BigRat;
+
+ $x = Math::BigRat->new("1234567889123456789123456789123456789");
+
+Without the quotes Perl first converts the large number to a floating point
+constant at compile time, and then converts the result to a Math::BigRat object
+at run time, which results in an inaccurate result.
+
+=head2 Hexadecimal, octal, and binary floating point literals
+
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result. Below are some examples of
+different ways to write the number decimal 314.
+
+Hexadecimal floating point literals:
+
+ 0x1.3ap+8 0X1.3AP+8
+ 0x1.3ap8 0X1.3AP8
+ 0x13a0p-4 0X13A0P-4
+
+Octal floating point literals (with "0" prefix):
+
+ 01.164p+8 01.164P+8
+ 01.164p8 01.164P8
+ 011640p-4 011640P-4
+
+Octal floating point literals (with "0o" prefix) (requires v5.34.0):
+
+ 0o1.164p+8 0O1.164P+8
+ 0o1.164p8 0O1.164P8
+ 0o11640p-4 0O11640P-4
+
+Binary floating point literals:
+
+ 0b1.0011101p+8 0B1.0011101P+8
+ 0b1.0011101p8 0B1.0011101P8
+ 0b10011101000p-2 0B10011101000P-2
+
=head1 BUGS
Please report any bugs or feature requests to
@@ -2714,43 +3118,25 @@ 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
+=item * GitHub
-L<http://annocpan.org/dist/Math-BigRat>
+L<https://github.com/pjacklam/p5-Math-BigRat>
-=item * CPAN Ratings
+=item * RT: CPAN's request tracker
-L<http://cpanratings.perl.org/dist/Math-BigRat>
+L<https://rt.cpan.org/Dist/Display.html?Name=Math-BigRat>
-=item * Search CPAN
+=item * MetaCPAN
-L<http://search.cpan.org/dist/Math-BigRat/>
+L<https://metacpan.org/release/Math-BigRat>
=item * CPAN Testers Matrix
L<http://matrix.cpantesters.org/?dist=Math-BigRat>
-=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>
+=item * CPAN Ratings
-=back
+L<https://cpanratings.perl.org/dist/Math-BigRat>
=back
@@ -2774,7 +3160,7 @@ Tels L<http://bloodgate.com/> 2001-2009.
=item *
-Maintained by Peter John Acklam <pjacklam@online.no> 2011-
+Maintained by Peter John Acklam <pjacklam@gmail.com> 2011-
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat/Trace.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat/Trace.pm
new file mode 100755
index 0000000000..e61df01317
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat/Trace.pm
@@ -0,0 +1,76 @@
+# -*- mode: perl; -*-
+
+package Math::BigRat::Trace;
+
+use strict;
+use warnings;
+
+use Exporter;
+use Math::BigRat;
+
+our @ISA = qw(Exporter Math::BigRat);
+
+our $VERSION = '0.66';
+
+use overload; # inherit overload from Math::BigRat
+
+# Globals
+our $accuracy = undef;
+our $precision = undef;
+our $round_mode = 'even';
+our $div_scale = 40;
+
+sub new {
+ my $proto = shift;
+ my $class = ref($proto) || $proto;
+
+ my $value = shift;
+
+ my $a = $accuracy;
+ $a = $_[0] if defined $_[0];
+
+ my $p = $precision;
+ $p = $_[1] if defined $_[1];
+
+ my $self = $class -> SUPER::new($value, $a, $p, $round_mode);
+
+ printf "Math::BigRat new '%s' => '%s' (%s)\n",
+ $value, $self, ref($self);
+
+ return $self;
+}
+
+sub import {
+ my $class = shift;
+
+ printf "%s -> import(%s)\n", $class, join(", ", @_);
+
+ # we catch the constants, the rest goes to parent
+
+ my $constant = grep { $_ eq ':constant' } @_;
+ my @a = grep { $_ ne ':constant' } @_;
+
+ if ($constant) {
+ overload::constant
+
+ integer => sub {
+ $class -> new(shift);
+ },
+
+ float => sub {
+ $class -> new(shift);
+ },
+
+ binary => sub {
+ # E.g., a literal 0377 shall result in an object whose value
+ # is decimal 255, but new("0377") returns decimal 377.
+ return $class -> from_oct($_[0]) if $_[0] =~ /^0_*[0-7]/;
+ $class -> new(shift);
+ };
+ }
+
+ $class -> SUPER::import(@a); # need it for subclasses
+ #$self -> export_to_level(1, $class, @_); # need this ?
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm
index 6cab2689bd..e6d15b70b9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm
@@ -10,7 +10,7 @@ package Math::Complex;
{ use 5.006; }
use strict;
-our $VERSION = 1.59_02;
+our $VERSION = 1.62;
use Config;
@@ -1847,7 +1847,7 @@ number mathematicians call C<j> such that:
is a simple matter of writing:
- $j = ((root(1, 3))[1];
+ $j = (root(1, 3))[1];
The I<k>th root for C<z = [r,t]> is given by:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm
index 1d9612a41c..218ab690a5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm
@@ -15,7 +15,7 @@ require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = 1.23;
+our $VERSION = 1.62;
my @angcnv = qw(rad2deg rad2grad
deg2rad deg2grad
@@ -47,8 +47,9 @@ my @pi = qw(pi pi2 pi4 pip2 pip4);
our @EXPORT_OK = (@rdlcnv, @greatcircle, @pi, 'Inf');
# See e.g. the following pages:
-# http://www.movable-type.co.uk/scripts/LatLong.html
-# http://williams.best.vwh.net/avform.htm
+# https://www.movable-type.co.uk/scripts/latlong.html
+# https://edwilliams.org/avform.htm
+# https://en.wikipedia.org/wiki/Great-circle_distance
our %EXPORT_TAGS = ('radial' => [ @rdlcnv ],
'great_circle' => [ @greatcircle ],
@@ -153,12 +154,19 @@ sub great_circle_distance {
$rho = 1 unless defined $rho; # Default to the unit sphere.
- my $lat0 = pip2 - $phi0;
- my $lat1 = pip2 - $phi1;
+ my $dphi = $phi1 - $phi0;
+ my $dtheta = $theta1 - $theta0;
+
+ # A formula that is accurate for all distances is the following special
+ # case of the Vincenty formula for an ellipsoid with equal major and minor
+ # axes. See
+ # https://en.wikipedia.org/wiki/Great-circle_distance#Computational_formulas
- return $rho *
- acos_real( cos( $lat0 ) * cos( $lat1 ) * cos( $theta0 - $theta1 ) +
- sin( $lat0 ) * sin( $lat1 ) );
+ my $c1 = sin($phi1) * sin($dtheta);
+ my $c2 = sin($phi1) * cos($dtheta);
+ my $c3 = sin($phi0) * cos($phi1) - cos($phi0) * $c2;
+ my $c4 = cos($phi0) * cos($phi1) + sin($phi0) * $c2;
+ return $rho * atan2(sqrt($c1 * $c1 + $c3 * $c3), $c4);
}
sub great_circle_direction {
@@ -247,7 +255,7 @@ Math::Trig - trigonometric functions
$rad = deg2rad(120);
- # Import constants pi2, pip2, pip4 (2*pi, pi/2, pi/4).
+ # Import constants pi2, pi4, pip2, pip4 (2*pi, 4*pi, pi/2, pi/4).
use Math::Trig ':pi';
# Import the conversions between cartesian/spherical/cylindrical.
@@ -417,7 +425,7 @@ and the imaginary part of approximately C<-1.317>.
=back
The full circle is 2 I<pi> radians or I<360> degrees or I<400> gradians.
-The result is by default wrapped to be inside the [0, {2pi,360,400}[ circle.
+The result is by default wrapped to be inside the [0, {2pi,360,400}] circle.
If you don't want this, supply a true second argument:
$zillions_of_radians = deg2rad($zillions_of_degrees, 1);
@@ -465,15 +473,15 @@ B<All angles are in radians>.
B<Cartesian> coordinates are the usual rectangular I<(x, y, z)>-coordinates.
-Spherical coordinates, I<(rho, theta, pi)>, are three-dimensional
+Spherical coordinates, I<(rho, theta, phi)>, are three-dimensional
coordinates which define a point in three-dimensional space. They are
based on a sphere surface. The radius of the sphere is B<rho>, also
known as the I<radial> coordinate. The angle in the I<xy>-plane
(around the I<z>-axis) is B<theta>, also known as the I<azimuthal>
coordinate. The angle from the I<z>-axis is B<phi>, also known as the
-I<polar> coordinate. The North Pole is therefore I<0, 0, rho>, and
-the Gulf of Guinea (think of the missing big chunk of Africa) I<0,
-pi/2, rho>. In geographical terms I<phi> is latitude (northward
+I<polar> coordinate. The North Pole is therefore I<rho, 0, 0>, and
+the Gulf of Guinea (think of the missing big chunk of Africa) I<rho,
+0, pi/2>. In geographical terms I<phi> is latitude (northward
positive, southward negative) and I<theta> is longitude (eastward
positive, westward negative).
@@ -537,26 +545,19 @@ points.
=head2 great_circle_distance
-You can compute spherical distances, called B<great circle distances>,
-by importing the great_circle_distance() function:
+Returns the great circle distance between two points on a sphere.
- use Math::Trig 'great_circle_distance';
+ $distance = great_circle_distance($theta0, $phi0, $theta1, $phi1, [, $rho]);
- $distance = great_circle_distance($theta0, $phi0, $theta1, $phi1, [, $rho]);
+Where ($theta0, $phi0) and ($theta1, $phi1) are the spherical coordinates of
+the two points, respectively. The distance is in C<$rho> units. The C<$rho>
+is optional. It defaults to 1 (the unit sphere).
-The I<great circle distance> is the shortest distance between two
-points on a sphere. The distance is in C<$rho> units. The C<$rho> is
-optional, it defaults to 1 (the unit sphere), therefore the distance
-defaults to radians.
-
-If you think geographically the I<theta> are longitudes: zero at the
-Greenwhich meridian, eastward positive, westward negative -- and the
-I<phi> are latitudes: zero at the North Pole, northward positive,
-southward negative. B<NOTE>: this formula thinks in mathematics, not
-geographically: the I<phi> zero is at the North Pole, not at the
-Equator on the west coast of Africa (Bay of Guinea). You need to
-subtract your geographical coordinates from I<pi/2> (also known as 90
-degrees).
+If you are using geographic coordinates, latitude and longitude, you need to
+adjust for the fact that latitude is zero at the equator increasing towards
+the north and decreasing towards the south. Assuming ($lat0, $lon0) and
+($lat1, $lon1) are the geographic coordinates in radians of the two points,
+the distance can be computed with
$distance = great_circle_distance($lon0, pi/2 - $lat0,
$lon1, pi/2 - $lat1, $rho);
@@ -617,15 +618,22 @@ The great_circle_midpoint() is just a special case of
($thetai, $phii) =
great_circle_waypoint($theta0, $phi0, $theta1, $phi1, $way);
-Where the $way is a value from zero ($theta0, $phi0) to one ($theta1,
-$phi1). Note that antipodal points (where their distance is I<pi>
-radians) do not have waypoints between them (they would have an an
-"equator" between them), and therefore C<undef> is returned for
-antipodal points. If the points are the same and the distance
-therefore zero and all waypoints therefore identical, the first point
-(either point) is returned.
+Where $way indicates the position of the waypoint along the great
+circle arc through the starting point ($theta0, $phi0) and the end
+point ($theta1, $phi1) relative to the distance from the starting
+point to the end point. So $way = 0 gives the starting point, $way = 1
+gives the end point, $way < 0 gives a point "behind" the starting
+point, and $way > 1 gives a point beyond the end point. $way defaults
+to 0.5 if not given.
+
+Note that antipodal points (where their distance is I<pi> radians) do
+not have unique waypoints between them, and therefore C<undef> is
+returned in such cases. If the points are the same, so the distance
+between them is zero, all waypoints are identical to the starting/end
+point.
-The thetas, phis, direction, and distance in the above are all in radians.
+The thetas, phis, direction, and distance in the above are all in
+radians.
You can import all the great circle formulas by
@@ -661,11 +669,13 @@ straight north being zero, straight east being pi/2).
The midpoint between London and Tokyo being
- use Math::Trig qw(great_circle_midpoint);
+ use Math::Trig qw(great_circle_midpoint rad2deg);
my @M = great_circle_midpoint(@L, @T);
+ sub SWNE { rad2deg( $_[0] ), 90 - rad2deg( $_[1] ) }
+ my @lonlat = SWNE(@M);
-or about 69 N 89 E, in the frozen wastes of Siberia.
+or about 69 N 89 E, on the Putorana Plateau of Siberia.
B<NOTE>: you B<cannot> get from A to B like this:
@@ -743,6 +753,8 @@ an answer instead of giving a fatal runtime error.
Do not attempt navigation using these formulas.
+=head1 SEE ALSO
+
L<Math::Complex>
=head1 AUTHORS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm
index f4e6522d48..845e0b0695 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm
@@ -1,207 +1,120 @@
# -*- mode: perl; perl-indent-level: 2; -*-
+# vim: ts=8 sw=2 sts=2 noexpandtab
+
# Memoize.pm
#
-# Transparent memoization of idempotent functions
-#
# Copyright 1998, 1999, 2000, 2001, 2012 M. J. Dominus.
# You may copy and distribute this program under the
-# same terms as Perl itself. If in doubt,
-# write to mjd-perl-memoize+@plover.com for a license.
-
-package Memoize;
-$VERSION = '1.03_01';
-
-# Compile-time constants
-sub SCALAR () { 0 }
-sub LIST () { 1 }
+# same terms as Perl itself.
+use strict; use warnings;
-#
-# Usage memoize(functionname/ref,
-# { NORMALIZER => coderef, INSTALL => name,
-# LIST_CACHE => descriptor, SCALAR_CACHE => descriptor }
-#
+package Memoize;
+our $VERSION = '1.16';
use Carp;
-use Exporter;
-use vars qw($DEBUG);
-use Config; # Dammit.
-@ISA = qw(Exporter);
-@EXPORT = qw(memoize);
-@EXPORT_OK = qw(unmemoize flush_cache);
-use strict;
+use Scalar::Util 1.11 (); # for set_prototype
-my %memotable;
-my %revmemotable;
-my @CONTEXT_TAGS = qw(MERGE TIE MEMORY FAULT HASH);
-my %IS_CACHE_TAG = map {($_ => 1)} @CONTEXT_TAGS;
+BEGIN { require Exporter; *import = \&Exporter::import }
+our @EXPORT = qw(memoize);
+our @EXPORT_OK = qw(unmemoize flush_cache);
-# Raise an error if the user tries to specify one of thesepackage as a
-# tie for LIST_CACHE
+my %memotable;
-my %scalar_only = map {($_ => 1)} qw(DB_File GDBM_File SDBM_File ODBM_File NDBM_File);
+sub CLONE {
+ my @info = values %memotable;
+ %memotable = map +($_->{WRAPPER} => $_), @info;
+}
sub memoize {
my $fn = shift;
my %options = @_;
- my $options = \%options;
-
+
unless (defined($fn) &&
(ref $fn eq 'CODE' || ref $fn eq '')) {
croak "Usage: memoize 'functionname'|coderef {OPTIONS}";
}
my $uppack = caller; # TCL me Elmo!
- my $cref; # Code reference to original function
my $name = (ref $fn ? undef : $fn);
-
- # Convert function names to code references
- $cref = &_make_cref($fn, $uppack);
-
- # Locate function prototype, if any
- my $proto = prototype $cref;
- if (defined $proto) { $proto = "($proto)" }
- else { $proto = "" }
-
- # I would like to get rid of the eval, but there seems not to be any
- # other way to set the prototype properly. The switch here for
- # 'usethreads' works around a bug in threadperl having to do with
- # magic goto. It would be better to fix the bug and use the magic
- # goto version everywhere.
- my $wrapper =
- $Config{usethreads}
- ? eval "sub $proto { &_memoizer(\$cref, \@_); }"
- : eval "sub $proto { unshift \@_, \$cref; goto &_memoizer; }";
+ my $cref = _make_cref($fn, $uppack);
my $normalizer = $options{NORMALIZER};
if (defined $normalizer && ! ref $normalizer) {
$normalizer = _make_cref($normalizer, $uppack);
}
-
- my $install_name;
- if (defined $options->{INSTALL}) {
- # INSTALL => name
- $install_name = $options->{INSTALL};
- } elsif (! exists $options->{INSTALL}) {
- # No INSTALL option provided; use original name if possible
- $install_name = $name;
- } else {
- # INSTALL => undef means don't install
- }
+
+ my $install_name = exists $options{INSTALL}
+ ? $options{INSTALL} # use given name (or, if undef: do not install)
+ : $name; # no INSTALL option provided: default to original name if possible
if (defined $install_name) {
$install_name = $uppack . '::' . $install_name
unless $install_name =~ /::/;
- no strict;
- local($^W) = 0; # ``Subroutine $install_name redefined at ...''
- *{$install_name} = $wrapper; # Install memoized version
}
- $revmemotable{$wrapper} = "" . $cref; # Turn code ref into hash key
+ # convert LIST_CACHE => MERGE to SCALAR_CACHE => MERGE
+ # to ensure TIE/HASH will always be checked by _check_suitable
+ if (($options{LIST_CACHE} || '') eq 'MERGE') {
+ $options{LIST_CACHE} = $options{SCALAR_CACHE};
+ $options{SCALAR_CACHE} = 'MERGE';
+ }
# These will be the caches
my %caches;
- for my $context (qw(SCALAR LIST)) {
- # suppress subsequent 'uninitialized value' warnings
- $options{"${context}_CACHE"} ||= '';
-
- my $cache_opt = $options{"${context}_CACHE"};
- my @cache_opt_args;
- if (ref $cache_opt) {
- @cache_opt_args = @$cache_opt;
- $cache_opt = shift @cache_opt_args;
- }
+ for my $context (qw(LIST SCALAR)) { # SCALAR_CACHE must be last, to process MERGE
+ my $fullopt = $options{"${context}_CACHE"} ||= 'MEMORY';
+ my ($cache_opt, @cache_opt_args) = ref $fullopt ? @$fullopt : $fullopt;
if ($cache_opt eq 'FAULT') { # no cache
$caches{$context} = undef;
} elsif ($cache_opt eq 'HASH') { # user-supplied hash
my $cache = $cache_opt_args[0];
- my $package = ref(tied %$cache);
- if ($context eq 'LIST' && $scalar_only{$package}) {
- croak("You can't use $package for LIST_CACHE because it can only store scalars");
- }
+ _check_suitable($context, ref tied %$cache);
$caches{$context} = $cache;
- } elsif ($cache_opt eq '' || $IS_CACHE_TAG{$cache_opt}) {
- # default is that we make up an in-memory hash
+ } elsif ($cache_opt eq 'TIE') {
+ carp("TIE option to memoize() is deprecated; use HASH instead")
+ if warnings::enabled('all');
+ my $module = shift(@cache_opt_args) || '';
+ _check_suitable($context, $module);
+ my $hash = $caches{$context} = {};
+ (my $modulefile = $module . '.pm') =~ s{::}{/}g;
+ require $modulefile;
+ tie(%$hash, $module, @cache_opt_args)
+ or croak "Couldn't tie memoize hash to `$module': $!";
+ } elsif ($cache_opt eq 'MEMORY') {
$caches{$context} = {};
- # (this might get tied later, or MERGEd away)
+ } elsif ($cache_opt eq 'MERGE' and not ref $fullopt) { # ['MERGE'] was never supported
+ die "cannot MERGE $context\_CACHE" if $context ne 'SCALAR'; # should never happen
+ die 'bad cache setup order' if not exists $caches{LIST}; # should never happen
+ $options{MERGED} = 1;
+ $caches{SCALAR} = $caches{LIST};
} else {
- croak "Unrecognized option to `${context}_CACHE': `$cache_opt' should be one of (@CONTEXT_TAGS); aborting";
+ croak "Unrecognized option to `${context}_CACHE': `$cache_opt' should be one of (MERGE TIE MEMORY FAULT HASH)";
}
}
- # Perhaps I should check here that you didn't supply *both* merge
- # options. But if you did, it does do something reasonable: They
- # both get merged to the same in-memory hash.
- if ($options{SCALAR_CACHE} eq 'MERGE' || $options{LIST_CACHE} eq 'MERGE') {
- $options{MERGED} = 1;
- $caches{SCALAR} = $caches{LIST};
- }
+ my $wrapper = _wrap($install_name, $cref, $normalizer, $options{MERGED}, \%caches);
- # Now deal with the TIE options
- {
- my $context;
- foreach $context (qw(SCALAR LIST)) {
- # If the relevant option wasn't `TIE', this call does nothing.
- _my_tie($context, $caches{$context}, $options); # Croaks on failure
- }
+ if (defined $install_name) {
+ no strict;
+ no warnings 'redefine';
+ *{$install_name} = $wrapper;
}
-
- # We should put some more stuff in here eventually.
- # We've been saying that for serveral versions now.
- # And you know what? More stuff keeps going in!
- $memotable{$cref} =
- {
- O => $options, # Short keys here for things we need to access frequently
- N => $normalizer,
+
+ $memotable{$wrapper} = {
+ L => $caches{LIST},
+ S => $caches{SCALAR},
U => $cref,
- MEMOIZED => $wrapper,
- PACKAGE => $uppack,
NAME => $install_name,
- S => $caches{SCALAR},
- L => $caches{LIST},
+ WRAPPER => $wrapper,
};
$wrapper # Return just memoized version
}
-# This function tries to load a tied hash class and tie the hash to it.
-sub _my_tie {
- my ($context, $hash, $options) = @_;
- my $fullopt = $options->{"${context}_CACHE"};
-
- # We already checked to make sure that this works.
- my $shortopt = (ref $fullopt) ? $fullopt->[0] : $fullopt;
-
- return unless defined $shortopt && $shortopt eq 'TIE';
- carp("TIE option to memoize() is deprecated; use HASH instead")
- if $^W;
-
- my @args = ref $fullopt ? @$fullopt : ();
- shift @args;
- my $module = shift @args;
- if ($context eq 'LIST' && $scalar_only{$module}) {
- croak("You can't use $module for LIST_CACHE because it can only store scalars");
- }
- my $modulefile = $module . '.pm';
- $modulefile =~ s{::}{/}g;
- eval {
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- require $modulefile
- };
- if ($@) {
- croak "Memoize: Couldn't load hash tie module `$module': $@; aborting";
- }
- my $rc = (tie %$hash => $module, @args);
- unless ($rc) {
- croak "Memoize: Couldn't tie hash to `$module': $!; aborting";
- }
- 1;
-}
-
sub flush_cache {
my $func = _make_cref($_[0], scalar caller);
- my $info = $memotable{$revmemotable{$func}};
+ my $info = $memotable{$func};
die "$func not memoized" unless defined $info;
for my $context (qw(S L)) {
my $cache = $info->{$context};
@@ -216,58 +129,39 @@ sub flush_cache {
}
}
-# This is the function that manages the memo tables.
-sub _memoizer {
- my $orig = shift; # stringized version of ref to original func.
- my $info = $memotable{$orig};
- my $normalizer = $info->{N};
-
- my $argstr;
- my $context = (wantarray() ? LIST : SCALAR);
-
- if (defined $normalizer) {
- no strict;
- if ($context == SCALAR) {
- $argstr = &{$normalizer}(@_);
- } elsif ($context == LIST) {
- ($argstr) = &{$normalizer}(@_);
- } else {
- croak "Internal error \#41; context was neither LIST nor SCALAR\n";
- }
- } else { # Default normalizer
- local $^W = 0;
- $argstr = join chr(28),@_;
- }
-
- if ($context == SCALAR) {
- my $cache = $info->{S};
- _crap_out($info->{NAME}, 'scalar') unless $cache;
- if (exists $cache->{$argstr}) {
- return $info->{O}{MERGED}
- ? $cache->{$argstr}[0] : $cache->{$argstr};
- } else {
- my $val = &{$info->{U}}(@_);
- # Scalars are considered to be lists; store appropriately
- if ($info->{O}{MERGED}) {
- $cache->{$argstr} = [$val];
- } else {
- $cache->{$argstr} = $val;
- }
- $val;
- }
- } elsif ($context == LIST) {
- my $cache = $info->{L};
- _crap_out($info->{NAME}, 'list') unless $cache;
- if (exists $cache->{$argstr}) {
- return @{$cache->{$argstr}};
+sub _wrap {
+ my ($name, $orig, $normalizer, $merged, $caches) = @_;
+ my ($cache_L, $cache_S) = @$caches{qw(LIST SCALAR)};
+ undef $caches; # keep the pad from keeping the hash alive forever
+ Scalar::Util::set_prototype(sub {
+ my $argstr = do {
+ no warnings 'uninitialized';
+ defined $normalizer
+ ? ( wantarray ? ( $normalizer->( @_ ) )[0] : $normalizer->( @_ ) )
+ . '' # coerce undef to string while the warning is off
+ : join chr(28), @_;
+ };
+
+ if (wantarray) {
+ _crap_out($name, 'list') unless $cache_L;
+ exists $cache_L->{$argstr} ? (
+ @{$cache_L->{$argstr}}
+ ) : do {
+ my @q = do { no warnings 'recursion'; &$orig };
+ $cache_L->{$argstr} = \@q;
+ @q;
+ };
} else {
- my @q = &{$info->{U}}(@_);
- $cache->{$argstr} = \@q;
- @q;
+ _crap_out($name, 'scalar') unless $cache_S;
+ exists $cache_S->{$argstr} ? (
+ $merged ? $cache_S->{$argstr}[0] : $cache_S->{$argstr}
+ ) : do {
+ my $val = do { no warnings 'recursion'; &$orig };
+ $cache_S->{$argstr} = $merged ? [$val] : $val;
+ $val;
+ };
}
- } else {
- croak "Internal error \#42; context was neither LIST nor SCALAR\n";
- }
+ }, prototype $orig);
}
sub unmemoize {
@@ -275,35 +169,21 @@ sub unmemoize {
my $uppack = caller;
my $cref = _make_cref($f, $uppack);
- unless (exists $revmemotable{$cref}) {
+ unless (exists $memotable{$cref}) {
croak "Could not unmemoize function `$f', because it was not memoized to begin with";
}
-
- my $tabent = $memotable{$revmemotable{$cref}};
+
+ my $tabent = $memotable{$cref};
unless (defined $tabent) {
croak "Could not figure out how to unmemoize function `$f'";
}
my $name = $tabent->{NAME};
if (defined $name) {
no strict;
- local($^W) = 0; # ``Subroutine $install_name redefined at ...''
+ no warnings 'redefine';
*{$name} = $tabent->{U}; # Replace with original function
}
- undef $memotable{$revmemotable{$cref}};
- undef $revmemotable{$cref};
-
- # This removes the last reference to the (possibly tied) memo tables
- # my ($old_function, $memotabs) = @{$tabent}{'U','S','L'};
- # undef $tabent;
-
-# # Untie the memo tables if they were tied.
-# my $i;
-# for $i (0,1) {
-# if (tied %{$memotabs->[$i]}) {
-# warn "Untying hash #$i\n";
-# untie %{$memotabs->[$i]};
-# }
-# }
+ delete $memotable{$cref};
$tabent->{U};
}
@@ -332,7 +212,7 @@ sub _make_cref {
my $parent = (caller(1))[3]; # Function that called _make_cref
croak "Usage: argument 1 to `$parent' must be a function name or reference.\n";
}
- $DEBUG and warn "${name}($fn) => $cref in _make_cref\n";
+ our $DEBUG and warn "${name}($fn) => $cref in _make_cref\n";
$cref;
}
@@ -345,11 +225,20 @@ sub _crap_out {
}
}
-1;
-
+# Raise an error if the user tries to specify one of these packages as a
+# tie for LIST_CACHE
+my %scalar_only = map {($_ => 1)} qw(DB_File GDBM_File SDBM_File ODBM_File), map +($_, "Memoize::$_"), qw(AnyDBM_File NDBM_File);
+sub _check_suitable {
+ my ($context, $package) = @_;
+ croak "You can't use $package for LIST_CACHE because it can only store scalars"
+ if $context eq 'LIST' and $scalar_only{$package};
+}
+1;
+__END__
+=pod
=head1 NAME
@@ -357,7 +246,6 @@ Memoize - Make functions faster by trading space for time
=head1 SYNOPSIS
- # This is the documentation for Memoize 1.03
use Memoize;
memoize('slow_function');
slow_function(arguments); # Is faster than it was before
@@ -384,12 +272,14 @@ Options include:
=head1 DESCRIPTION
-`Memoizing' a function makes it faster by trading space for time. It
+I<Memoizing> a function makes it faster by trading space for time. It
does this by caching the return values of the function in a table.
If you call the function again with the same arguments, C<memoize>
jumps in and gives you the value out of the table, instead of letting
the function compute the value all over again.
+=head1 EXAMPLE
+
Here is an extreme example. Consider the Fibonacci sequence, defined
by the following function:
@@ -412,14 +302,14 @@ run---fib(14) makes 1,200 extra recursive calls to itself, to compute
and recompute things that it already computed.
This function is a good candidate for memoization. If you memoize the
-`fib' function above, it will compute fib(14) exactly once, the first
+C<fib> function above, it will compute fib(14) exactly once, the first
time it needs to, and then save the result in a table. Then if you
ask for fib(14) again, it gives you the result out of the table.
While computing fib(14), instead of computing fib(12) twice, it does
it once; the second time it needs the value it gets it from the table.
It doesn't compute fib(11) four times; it computes it once, getting it
from the table the next three times. Instead of making 1,200
-recursive calls to `fib', it makes 15. This makes the function about
+recursive calls to C<fib>, it makes 15. This makes the function about
150 times faster.
You could do the memoization yourself, by rewriting the function, like
@@ -446,8 +336,8 @@ This makes it easy to turn memoizing on and off.
Here's an even simpler example: I wrote a simple ray tracer; the
program would look in a certain direction, figure out what it was
-looking at, and then convert the `color' value (typically a string
-like `red') of that object to a red, green, and blue pixel value, like
+looking at, and then convert the C<color> value (typically a string
+like C<red>) of that object to a red, green, and blue pixel value, like
this:
for ($direction = 0; $direction < 300; $direction++) {
@@ -718,7 +608,7 @@ should abort the program. The error message is one of
=item C<MERGE>
C<MERGE> normally means that the memoized function does not
-distinguish between list and sclar context, and that return values in
+distinguish between list and scalar context, and that return values in
both contexts should be stored together. Both C<LIST_CACHE =E<gt>
MERGE> and C<SCALAR_CACHE =E<gt> MERGE> mean the same thing.
@@ -740,7 +630,7 @@ if C<complicated> is memoized:
$z = complicated(142);
The first call will cache the result, say 37, in the scalar cache; the
-second will cach the list C<(37)> in the list cache. The third call
+second will cache the list C<(37)> in the list cache. The third call
doesn't call the real C<complicated> function; it gets the value 37
from the scalar cache.
@@ -749,9 +639,11 @@ storing its return value is a waste of space. Specifying C<LIST_CACHE
=E<gt> MERGE> will make C<memoize> use the same cache for scalar and
list context return values, so that the second call uses the scalar
cache that was populated by the first call. C<complicated> ends up
-being called only once, and both subsequent calls return C<3> from the
+being called only once, and both subsequent calls return C<37> from the
cache, regardless of the calling context.
+=back
+
=head3 List values in scalar context
Consider this function:
@@ -783,7 +675,8 @@ stored in the same disk file; this saves you from having to deal with
two disk files instead of one. You can use a normalizer function to
keep the two sets of return values separate. For example:
- tie my %cache => 'MLDBM', 'DB_File', $filename, ...;
+ local $MLDBM::UseDB = 'DB_File';
+ tie my %cache => 'MLDBM', $filename, ...;
memoize 'myfunc',
NORMALIZER => 'n',
@@ -801,8 +694,6 @@ This normalizer function will store scalar context return values in
the disk file under keys that begin with C<S:>, and list context
return values under keys that begin with C<L:>.
-=back
-
=head1 OTHER FACILITIES
=head2 C<unmemoize>
@@ -877,7 +768,7 @@ Do not memoize a function with side effects.
}
This function accepts two arguments, adds them, and prints their sum.
-Its return value is the numuber of characters it printed, but you
+Its return value is the number of characters it printed, but you
probably didn't care about that. But C<Memoize> doesn't understand
that. If you memoize this function, you will get the result you
expect the first time you ask it to print the sum of 2 and 3, but
@@ -984,8 +875,8 @@ function (or when your program exits):
tie my %cache => 'Memoize::Storable', $filename, 'nstore';
memoize 'function', SCALAR_CACHE => [HASH => \%cache];
-Include the `nstore' option to have the C<Storable> database written
-in `network order'. (See L<Storable> for more details about this.)
+Include the C<nstore> option to have the C<Storable> database written
+in I<network order>. (See L<Storable> for more details about this.)
The C<flush_cache()> function will raise a run-time error unless the
tied package provides a C<CLEAR> method.
@@ -1016,38 +907,17 @@ C<f()> (C<f> called with no arguments) will not be memoized. If this
is a big problem, you can supply a normalizer function that prepends
C<"x"> to every key.
-=head1 MAILING LIST
-
-To join a very low-traffic mailing list for announcements about
-C<Memoize>, send an empty note to C<mjd-perl-memoize-request@plover.com>.
-
-=head1 AUTHOR
+=head1 SEE ALSO
-Mark-Jason Dominus (C<mjd-perl-memoize+@plover.com>), Plover Systems co.
-
-See the C<Memoize.pm> Page at http://perl.plover.com/Memoize/
-for news and upgrades. Near this page, at
-http://perl.plover.com/MiniMemoize/ there is an article about
+At L<https://perl.plover.com/MiniMemoize/> there is an article about
memoization and about the internals of Memoize that appeared in The
-Perl Journal, issue #13. (This article is also included in the
-Memoize distribution as `article.html'.)
+Perl Journal, issue #13.
-The author's book I<Higher-Order Perl> (2005, ISBN 1558607013, published
+Mark-Jason Dominus's book I<Higher-Order Perl> (2005, ISBN 1558607013,
+published
by Morgan Kaufmann) discusses memoization (and many other
topics) in tremendous detail. It is available on-line for free.
-For more information, visit http://hop.perl.plover.com/ .
-
-To join a mailing list for announcements about C<Memoize>, send an
-empty message to C<mjd-perl-memoize-request@plover.com>. This mailing
-list is for announcements only and has extremely low traffic---fewer than
-two messages per year.
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 1998, 1999, 2000, 2001, 2012 by Mark Jason Dominus
-
-This library is free software; you may redistribute it and/or modify
-it under the same terms as Perl itself.
+For more information, visit L<https://hop.perl.plover.com/>.
=head1 THANK YOU
@@ -1074,4 +944,15 @@ Special thanks to Jarkko Hietaniemi, the 5.8.0 pumpking, for including
this module in the core and for his patient and helpful guidance
during the integration process.
+=head1 AUTHOR
+
+Mark Jason Dominus
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2012 by Mark Jason Dominus.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm
index cf5f7f5bc2..c0aa5e6d36 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm
@@ -1,31 +1,37 @@
+use strict; use warnings;
+
package Memoize::AnyDBM_File;
+our $VERSION = '1.16';
-=head1 NAME
+our @ISA = qw(DB_File GDBM_File Memoize::NDBM_File SDBM_File ODBM_File) unless @ISA;
-Memoize::AnyDBM_File - glue to provide EXISTS for AnyDBM_File for Storable use
+for my $mod (@ISA) {
+ if (eval "require $mod") {
+ $mod = 'NDBM_File'
+ if $mod eq 'Memoize::NDBM_File'
+ and eval { NDBM_File->VERSION( '1.16' ) };
+ print STDERR "AnyDBM_File => Selected $mod.\n" if our $Verbose;
+ @ISA = $mod;
+ return 1;
+ }
+}
-=head1 DESCRIPTION
+die "No DBM package was successfully found or installed";
-See L<Memoize>.
+__END__
-=cut
+=pod
-use vars qw(@ISA $VERSION);
-$VERSION = '1.03';
-@ISA = qw(DB_File GDBM_File Memoize::NDBM_File Memoize::SDBM_File ODBM_File) unless @ISA;
+=head1 NAME
-my $verbose = 1;
+Memoize::AnyDBM_File - glue to provide EXISTS for AnyDBM_File for Storable use
-my $mod;
-for $mod (@ISA) {
-# (my $truemod = $mod) =~ s/^Memoize:://;
-# my $file = "$mod.pm";
-# $file =~ s{::}{/}g;
- if (eval "require $mod") {
- print STDERR "AnyDBM_File => Selected $mod.\n" if $Verbose;
- @ISA = ($mod); # if we leave @ISA alone, warnings abound
- return 1;
- }
-}
+=head1 DESCRIPTION
-die "No DBM package was successfully found or installed";
+This class does the same thing as L<AnyDBM_File>, except that instead of
+L<NDBM_File> itself it loads L<Memoize::NDBM_File> if L<NDBM_File> lacks
+L<EXISTS|perltie/C<EXISTS>> support.
+
+Code which requires perl 5.37.3 or newer should simply use L<AnyBDM_File> directly.
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm
index 9b3b94444c..0683ecd711 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm
@@ -1,23 +1,16 @@
+use strict; use warnings;
package Memoize::Expire;
-# require 5.00556;
+our $VERSION = '1.16';
+
use Carp;
-$DEBUG = 0;
-$VERSION = '1.03';
+our $DEBUG;
-# This package will implement expiration by prepending a fixed-length header
-# to the font of the cached data. The format of the header will be:
+# The format of the metadata is:
# (4-byte number of last-access-time) (For LRU when I implement it)
# (4-byte expiration time: unsigned seconds-since-unix-epoch)
# (2-byte number-of-uses-before-expire)
-sub _header_fmt () { "N N n" }
-sub _header_size () { length(_header_fmt) }
-
-# Usage: memoize func
-# TIE => [Memoize::Expire, LIFETIME => sec, NUM_USES => n,
-# TIE => [...] ]
-
BEGIN {
eval {require Time::HiRes};
unless ($@) {
@@ -43,7 +36,7 @@ sub TIEHASH {
}
$args{LIFETIME} ||= 0;
$args{NUM_USES} ||= 0;
- $args{C} = \%cache;
+ $args{C} = delete $args{HASH} || \%cache;
bless \%args => $package;
}
@@ -54,27 +47,25 @@ sub STORE {
# The call that results in a value to store into the cache is the
# first of the NUM_USES allowed calls.
my $header = _make_header(time, $expire_time, $self->{NUM_USES}-1);
- $self->{C}{$key} = $header . $value;
+ @{$self->{C}}{"H$key", "V$key"} = ($header, $value);
$value;
}
sub FETCH {
$DEBUG and print STDERR " >> Fetch cached value for $_[1]\n";
- my ($data, $last_access, $expire_time, $num_uses_left) = _get_item($_[0]{C}{$_[1]});
+ my ($last_access, $expire_time, $num_uses_left) = _get_header($_[0]{C}{"H$_[1]"});
$DEBUG and print STDERR " >> (ttl: ", ($expire_time-time()), ", nuses: $num_uses_left)\n";
- $num_uses_left--;
- $last_access = time;
- _set_header(@_, $data, $last_access, $expire_time, $num_uses_left);
- $data;
+ $_[0]{C}{"H$_[1]"} = _make_header(time, $expire_time, --$num_uses_left);
+ $_[0]{C}{"V$_[1]"};
}
sub EXISTS {
$DEBUG and print STDERR " >> Exists $_[1]\n";
- unless (exists $_[0]{C}{$_[1]}) {
+ unless (exists $_[0]{C}{"V$_[1]"}) {
$DEBUG and print STDERR " Not in underlying hash at all.\n";
return 0;
}
- my $item = $_[0]{C}{$_[1]};
+ my $item = $_[0]{C}{"H$_[1]"};
my ($last_access, $expire_time, $num_uses_left) = _get_header($item);
my $ttl = $expire_time - time;
if ($DEBUG) {
@@ -91,26 +82,21 @@ sub EXISTS {
}
}
-# Arguments: last access time, expire time, number of uses remaining
-sub _make_header {
- pack "N N n", @_;
+sub FIRSTKEY {
+ scalar keys %{$_[0]{C}};
+ &NEXTKEY;
}
-sub _strip_header {
- substr($_[0], 10);
+sub NEXTKEY {
+ while (defined(my $key = each %{$_[0]{C}})) {
+ return substr $key, 1 if 'V' eq substr $key, 0, 1;
+ }
+ undef;
}
# Arguments: last access time, expire time, number of uses remaining
-sub _set_header {
- my ($self, $key, $data, @header) = @_;
- $self->{C}{$key} = _make_header(@header) . $data;
-}
-
-sub _get_item {
- my $data = substr($_[0], 10);
- my @header = unpack "N N n", substr($_[0], 0, 10);
-# print STDERR " >> _get_item: $data => $data @header\n";
- ($data, @header);
+sub _make_header {
+ pack "N N n", @_;
}
# Return last access time, expire time, number of uses remaining
@@ -120,6 +106,10 @@ sub _get_header {
1;
+__END__
+
+=pod
+
=head1 NAME
Memoize::Expire - Plug-in module for automatic expiration of memoized values
@@ -249,7 +239,7 @@ the cache, and it should return the cache object to the caller.
For example, MyExpirePolicy::TIEHASH might create an object that
contains a regular Perl hash (which it will to store the cached
values) and some extra information about the arguments and how old the
-data is and things like that. Let us call this object `C'.
+data is and things like that. Let us call this object I<C<C>>.
When Memoize needs to check to see if an entry is in the cache
already, it will invoke C<< C->EXISTS(key) >>. C<key> is the normalized
@@ -282,7 +272,7 @@ cache item after ten seconds.
$cache->{$key}{EXPIRE_TIME} > time) {
return 1
} else {
- return 0; # Do NOT return `undef' here.
+ return 0; # Do NOT return undef here
}
}
@@ -318,11 +308,10 @@ See the documentation for details.
=head1 ALTERNATIVES
-Brent Powers has a C<Memoize::ExpireLRU> module that was designed to
+Brent Powers has a L<Memoize::ExpireLRU> module that was designed to
work with Memoize and provides expiration of least-recently-used data.
The cache is held at a fixed number of entries, and when new data
-comes in, the least-recently used data is expired. See
-L<http://search.cpan.org/search?mode=module&query=ExpireLRU>.
+comes in, the least-recently used data is expired.
Joshua Chamas's Tie::Cache module may be useful as an expiration
manager. (If you try this, let me know how it works out.)
@@ -349,7 +338,7 @@ C<Time::HiRes> installed.
=head1 AUTHOR
-Mark-Jason Dominus (mjd-perl-memoize+@plover.com)
+Mark-Jason Dominus
Mike Cariaso provided valuable insight into the best way to solve this
problem.
@@ -360,11 +349,4 @@ perl(1)
The Memoize man page.
-http://www.plover.com/~mjd/perl/Memoize/ (for news and updates)
-
-I maintain a mailing list on which I occasionally announce new
-versions of Memoize. The list is for announcements only, not
-discussion. To join, send an empty message to
-mjd-perl-memoize-request@Plover.com.
-
=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireFile.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireFile.pm
deleted file mode 100644
index 06b72f8ef2..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireFile.pm
+++ /dev/null
@@ -1,52 +0,0 @@
-package Memoize::ExpireFile;
-
-=head1 NAME
-
-Memoize::ExpireFile - test for Memoize expiration semantics
-
-=head1 DESCRIPTION
-
-See L<Memoize::Expire>.
-
-=cut
-
-$VERSION = '1.03';
-use Carp;
-
-my $Zero = pack("N", 0);
-
-sub TIEHASH {
- my ($package, %args) = @_;
- my $cache = $args{HASH} || {};
- bless {ARGS => \%args, C => $cache} => $package;
-}
-
-
-sub STORE {
-# print "Expiry manager STORE handler\n";
- my ($self, $key, $data) = @_;
- my $cache = $self->{C};
- my $cur_date = pack("N", (stat($key))[9]);
- $cache->{"C$key"} = $data;
- $cache->{"T$key"} = $cur_date;
-}
-
-sub FETCH {
- my ($self, $key) = @_;
- $self->{C}{"C$key"};
-}
-
-sub EXISTS {
-# print "Expiry manager EXISTS handler\n";
- my ($self, $key) = @_;
- my $cache_date = $self->{C}{"T$key"} || $Zero;
- my $file_date = pack("N", (stat($key))[9]);#
-# if ($self->{ARGS}{CHECK_DATE} && $old_date gt $cur_date) {
-# return $self->{ARGS}{CHECK_DATE}->($key, $old_date, $cur_date);
-# }
- my $res = $cache_date ge $file_date;
-# print $res ? "... still good\n" : "... expired\n";
- $res;
-}
-
-1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireTest.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireTest.pm
deleted file mode 100644
index 7f7dd28af6..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireTest.pm
+++ /dev/null
@@ -1,49 +0,0 @@
-package Memoize::ExpireTest;
-
-=head1 NAME
-
-Memoize::ExpireTest - test for Memoize expiration semantics
-
-=head1 DESCRIPTION
-
-This module is just for testing expiration semantics. It's not a very
-good example of how to write an expiration module.
-
-If you are looking for an example, I recommend that you look at the
-simple example in the Memoize::Expire documentation, or at the code
-for Memoize::Expire itself.
-
-If you have questions, I will be happy to answer them if you send them
-to mjd-perl-memoize+@plover.com.
-
-=cut
-
-$VERSION = '1.03';
-my %cache;
-
-sub TIEHASH {
- my ($pack) = @_;
- bless \%cache => $pack;
-}
-
-sub EXISTS {
- my ($cache, $key) = @_;
- exists $cache->{$key} ? 1 : 0;
-}
-
-sub FETCH {
- my ($cache, $key) = @_;
- $cache->{$key};
-}
-
-sub STORE {
- my ($cache, $key, $val) = @_;
- $cache->{$key} = $val;
-}
-
-sub expire {
- my ($key) = @_;
- delete $cache{$key};
-}
-
-1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm
index ff934c656b..fc29f79986 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm
@@ -1,77 +1,38 @@
-package Memoize::NDBM_File;
-
-=head1 NAME
-
-Memoize::NDBM_File - glue to provide EXISTS for NDBM_File for Storable use
-
-=head1 DESCRIPTION
+use strict; use warnings;
-See L<Memoize>.
-
-=cut
+package Memoize::NDBM_File;
+our $VERSION = '1.16';
use NDBM_File;
-@ISA = qw(NDBM_File);
-$VERSION = '1.03';
-
-$Verbose = 0;
+our @ISA = qw(NDBM_File);
-sub AUTOLOAD {
- warn "Nonexistent function $AUTOLOAD invoked in Memoize::NDBM_File\n";
-}
-
-sub import {
- warn "Importing Memoize::NDBM_File\n" if $Verbose;
+# NDBM_File cannot store undef and will store an empty string if you try
+# but it does return undef if you try to read a non-existent key
+# so we can emulate exists() using defined()
+sub EXISTS {
+ defined shift->FETCH(@_);
}
+# Perl 5.37.3 adds this EXISTS emulation to NDBM_File itself
+delete $Memoize::NDBM_File::{'EXISTS'}
+ if eval { NDBM_File->VERSION( '1.16' ) };
-my %keylist;
-
-# This is so ridiculous...
-sub _backhash {
- my $self = shift;
- my %fakehash;
- my $k;
- for ($k = $self->FIRSTKEY(); defined $k; $k = $self->NEXTKEY($k)) {
- $fakehash{$k} = undef;
- }
- $keylist{$self} = \%fakehash;
-}
-
-sub EXISTS {
- warn "Memoize::NDBM_File EXISTS (@_)\n" if $Verbose;
- my $self = shift;
- _backhash($self) unless exists $keylist{$self};
- my $r = exists $keylist{$self}{$_[0]};
- warn "Memoize::NDBM_File EXISTS (@_) ==> $r\n" if $Verbose;
- $r;
-}
+1;
-sub DEFINED {
- warn "Memoize::NDBM_File DEFINED (@_)\n" if $Verbose;
- my $self = shift;
- _backhash($self) unless exists $keylist{$self};
- defined $keylist{$self}{$_[0]};
-}
+__END__
-sub DESTROY {
- warn "Memoize::NDBM_File DESTROY (@_)\n" if $Verbose;
- my $self = shift;
- delete $keylist{$self}; # So much for reference counting...
- $self->SUPER::DESTROY(@_);
-}
+=pod
-# Maybe establish the keylist at TIEHASH time instead?
+=head1 NAME
-sub STORE {
- warn "Memoize::NDBM_File STORE (@_)\n" if $VERBOSE;
- my $self = shift;
- $keylist{$self}{$_[0]} = undef;
- $self->SUPER::STORE(@_);
-}
+Memoize::NDBM_File - glue to provide EXISTS for NDBM_File for Storable use
+=head1 DESCRIPTION
+This class provides L<EXISTS|perltie/C<EXISTS>> support for L<NDBM_File>.
-# Inherit FETCH and TIEHASH
+L<In Perl 5.37.3|https://github.com/Perl/perl5/commit/c0a1a377c02ed789f5eff667f46a2314a05c5a4c>,
+support for C<EXISTS> was added to L<NDBM_File> itself.
+Code which requires such a perl should simply use L<NBDM_File> directly.
-1;
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm
index 7cfaa4afb9..87ef28e1ef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm
@@ -1,75 +1,27 @@
-package Memoize::SDBM_File;
-
-=head1 NAME
-
-Memoize::SDBM_File - glue to provide EXISTS for SDBM_File for Storable use
-
-=head1 DESCRIPTION
-
-See L<Memoize>.
-
-=cut
+use strict; use warnings;
-use SDBM_File;
-@ISA = qw(SDBM_File);
-$VERSION = '1.03';
-
-$Verbose = 0;
-
-sub AUTOLOAD {
- warn "Nonexistent function $AUTOLOAD invoked in Memoize::SDBM_File\n";
-}
-
-sub import {
- warn "Importing Memoize::SDBM_File\n" if $Verbose;
-}
+package Memoize::SDBM_File;
+our $VERSION = '1.16';
+use SDBM_File 1.01; # for EXISTS support
+our @ISA = qw(SDBM_File);
-my %keylist;
+1;
-# This is so ridiculous...
-sub _backhash {
- my $self = shift;
- my %fakehash;
- my $k;
- for ($k = $self->FIRSTKEY(); defined $k; $k = $self->NEXTKEY($k)) {
- $fakehash{$k} = undef;
- }
- $keylist{$self} = \%fakehash;
-}
+__END__
-sub EXISTS {
- warn "Memoize::SDBM_File EXISTS (@_)\n" if $Verbose;
- my $self = shift;
- _backhash($self) unless exists $keylist{$self};
- my $r = exists $keylist{$self}{$_[0]};
- warn "Memoize::SDBM_File EXISTS (@_) ==> $r\n" if $Verbose;
- $r;
-}
+=pod
-sub DEFINED {
- warn "Memoize::SDBM_File DEFINED (@_)\n" if $Verbose;
- my $self = shift;
- _backhash($self) unless exists $keylist{$self};
- defined $keylist{$self}{$_[0]};
-}
+=head1 NAME
-sub DESTROY {
- warn "Memoize::SDBM_File DESTROY (@_)\n" if $Verbose;
- my $self = shift;
- delete $keylist{$self}; # So much for reference counting...
- $self->SUPER::DESTROY(@_);
-}
+Memoize::SDBM_File - DEPRECATED compability shim
-# Maybe establish the keylist at TIEHASH time instead?
+=head1 DESCRIPTION
-sub STORE {
- warn "Memoize::SDBM_File STORE (@_)\n" if $VERBOSE;
- my $self = shift;
- $keylist{$self}{$_[0]} = undef;
- $self->SUPER::STORE(@_);
-}
+This class used to provide L<EXISTS|perltie/C<EXISTS>> support for L<SDBM_File>
+before support for C<EXISTS> was added to L<SDBM_File> itself
+L<in Perl 5.6.0|perl56delta/SDBM_File>.
-# Inherit FETCH and TIEHASH
+Any code still using this class should be rewritten to use L<SBDM_File> directly.
-1;
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm
index 1314797297..923e57dc57 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm
@@ -1,27 +1,19 @@
-package Memoize::Storable;
-
-=head1 NAME
-
-Memoize::Storable - store Memoized data in Storable database
-
-=head1 DESCRIPTION
+use strict; use warnings;
-See L<Memoize>.
+package Memoize::Storable;
+our $VERSION = '1.16';
-=cut
+use Storable 1.002 (); # for lock_* function variants
-use Storable ();
-$VERSION = '1.03';
-$Verbose = 0;
+our $Verbose;
sub TIEHASH {
- require Carp if $Verbose;
my $package = shift;
my $filename = shift;
- my $truehash = (-e $filename) ? Storable::retrieve($filename) : {};
+ my $truehash = (-e $filename) ? Storable::lock_retrieve($filename) : {};
my %options;
print STDERR "Memoize::Storable::TIEHASH($filename, @_)\n" if $Verbose;
- @options{@_} = ();
+ @options{@_} = (1) x @_;
my $self =
{FILENAME => $filename,
H => $truehash,
@@ -31,34 +23,30 @@ sub TIEHASH {
}
sub STORE {
- require Carp if $Verbose;
my $self = shift;
print STDERR "Memoize::Storable::STORE(@_)\n" if $Verbose;
$self->{H}{$_[0]} = $_[1];
}
sub FETCH {
- require Carp if $Verbose;
my $self = shift;
print STDERR "Memoize::Storable::FETCH(@_)\n" if $Verbose;
$self->{H}{$_[0]};
}
sub EXISTS {
- require Carp if $Verbose;
my $self = shift;
print STDERR "Memoize::Storable::EXISTS(@_)\n" if $Verbose;
exists $self->{H}{$_[0]};
}
sub DESTROY {
- require Carp if $Verbose;
my $self= shift;
print STDERR "Memoize::Storable::DESTROY(@_)\n" if $Verbose;
if ($self->{OPTIONS}{'nstore'}) {
- Storable::nstore($self->{H}, $self->{FILENAME});
+ Storable::lock_nstore($self->{H}, $self->{FILENAME});
} else {
- Storable::store($self->{H}, $self->{FILENAME});
+ Storable::lock_store($self->{H}, $self->{FILENAME});
}
}
@@ -69,4 +57,19 @@ sub FIRSTKEY {
sub NEXTKEY {
undef;
}
+
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Memoize::Storable - store Memoized data in Storable database
+
+=head1 DESCRIPTION
+
+See L<Memoize>.
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pm
index b4f49bd342..d20e23cc40 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pm
@@ -4,7 +4,7 @@ use strict;
our ( %released, %version, %families, %upstream, %bug_tracker, %deprecated, %delta );
use version;
-our $VERSION = '5.20210520';
+our $VERSION = '5.20231129';
sub PKG_PATTERN () { q#\A[a-zA-Z_][0-9a-zA-Z_]*(?:(::|')[0-9a-zA-Z_]+)*\z# }
sub _looks_like_invocant ($) { local $@; !!eval { $_[0]->isa(__PACKAGE__) } }
@@ -378,6 +378,45 @@ sub changes_between {
5.033008 => '2021-03-20',
5.033009 => '2021-04-20',
5.034000 => '2021-05-20',
+ 5.035000 => '2021-05-21',
+ 5.035001 => '2021-06-20',
+ 5.035002 => '2021-07-23',
+ 5.035003 => '2021-08-20',
+ 5.035004 => '2021-09-20',
+ 5.035005 => '2021-10-21',
+ 5.035006 => '2021-11-20',
+ 5.035007 => '2021-12-20',
+ 5.035008 => '2022-01-20',
+ 5.035009 => '2022-02-20',
+ 5.034001 => '2022-03-13',
+ 5.035010 => '2022-03-20',
+ 5.035011 => '2022-04-20',
+ 5.036000 => '2022-05-27',
+ 5.037000 => '2022-05-27',
+ 5.037001 => '2022-06-20',
+ 5.037002 => '2022-07-20',
+ 5.037003 => '2022-08-20',
+ 5.037004 => '2022-09-20',
+ 5.037005 => '2022-10-20',
+ 5.037006 => '2022-11-20',
+ 5.037007 => '2022-12-20',
+ 5.037008 => '2023-01-20',
+ 5.037009 => '2023-02-20',
+ 5.037010 => '2023-03-20',
+ 5.037011 => '2023-04-20',
+ 5.036001 => '2023-04-23',
+ 5.038000 => '2023-07-02',
+ 5.039001 => '2023-07-20',
+ 5.039002 => '2023-08-20',
+ 5.039003 => '2023-09-20',
+ 5.039004 => '2023-10-25',
+ 5.039005 => '2023-11-20',
+ 5.034002 => '2023-11-25',
+ 5.036002 => '2023-11-25',
+ 5.038001 => '2023-11-25',
+ 5.034003 => '2023-11-29',
+ 5.036003 => '2023-11-29',
+ 5.038002 => '2023-11-29',
);
for my $version ( sort { $a <=> $b } keys %released ) {
@@ -18522,6 +18561,2578 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.035000 => {
+ delta_from => 5.034,
+ changed => {
+ 'B::Op_private' => '5.035000',
+ 'Config' => '5.035',
+ 'Module::CoreList' => '5.20210521',
+ 'Module::CoreList::Utils'=> '5.20210521',
+ 'feature' => '1.65',
+ },
+ removed => {
+ }
+ },
+ 5.035001 => {
+ delta_from => 5.035000,
+ changed => {
+ 'B::Deparse' => '1.57',
+ 'B::Op_private' => '5.035001',
+ 'Config' => '5.035001',
+ 'Cwd' => '3.81',
+ 'Data::Dumper' => '2.181',
+ 'File::Copy' => '2.36',
+ 'File::Glob' => '1.35',
+ 'File::Spec' => '3.81',
+ 'File::Spec::AmigaOS' => '3.81',
+ 'File::Spec::Cygwin' => '3.81',
+ 'File::Spec::Epoc' => '3.81',
+ 'File::Spec::Functions' => '3.81',
+ 'File::Spec::Mac' => '3.81',
+ 'File::Spec::OS2' => '3.81',
+ 'File::Spec::Unix' => '3.81',
+ 'File::Spec::VMS' => '3.81',
+ 'File::Spec::Win32' => '3.81',
+ 'File::stat' => '1.10',
+ 'IO' => '1.47',
+ 'IO::Dir' => '1.47',
+ 'IO::File' => '1.47',
+ 'IO::Handle' => '1.47',
+ 'IO::Pipe' => '1.47',
+ 'IO::Poll' => '1.47',
+ 'IO::Seekable' => '1.47',
+ 'IO::Select' => '1.47',
+ 'IO::Socket' => '1.47',
+ 'IO::Socket::INET' => '1.47',
+ 'IO::Socket::UNIX' => '1.47',
+ 'List::Util' => '1.56',
+ 'List::Util::XS' => '1.56',
+ 'Module::CoreList' => '5.20210620',
+ 'Module::CoreList::Utils'=> '5.20210620',
+ 'Opcode' => '1.51',
+ 'POSIX' => '1.98',
+ 'Scalar::Util' => '1.56',
+ 'Socket' => '2.032',
+ 'Sub::Util' => '1.56',
+ 'Test2' => '1.302185',
+ 'Test2::API' => '1.302185',
+ 'Test2::API::Breakage' => '1.302185',
+ 'Test2::API::Context' => '1.302185',
+ 'Test2::API::Instance' => '1.302185',
+ 'Test2::API::InterceptResult'=> '1.302185',
+ 'Test2::API::InterceptResult::Event'=> '1.302185',
+ 'Test2::API::InterceptResult::Facet'=> '1.302185',
+ 'Test2::API::InterceptResult::Hub'=> '1.302185',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302185',
+ 'Test2::API::Stack' => '1.302185',
+ 'Test2::Event' => '1.302185',
+ 'Test2::Event::Bail' => '1.302185',
+ 'Test2::Event::Diag' => '1.302185',
+ 'Test2::Event::Encoding'=> '1.302185',
+ 'Test2::Event::Exception'=> '1.302185',
+ 'Test2::Event::Fail' => '1.302185',
+ 'Test2::Event::Generic' => '1.302185',
+ 'Test2::Event::Note' => '1.302185',
+ 'Test2::Event::Ok' => '1.302185',
+ 'Test2::Event::Pass' => '1.302185',
+ 'Test2::Event::Plan' => '1.302185',
+ 'Test2::Event::Skip' => '1.302185',
+ 'Test2::Event::Subtest' => '1.302185',
+ 'Test2::Event::TAP::Version'=> '1.302185',
+ 'Test2::Event::V2' => '1.302185',
+ 'Test2::Event::Waiting' => '1.302185',
+ 'Test2::EventFacet' => '1.302185',
+ 'Test2::EventFacet::About'=> '1.302185',
+ 'Test2::EventFacet::Amnesty'=> '1.302185',
+ 'Test2::EventFacet::Assert'=> '1.302185',
+ 'Test2::EventFacet::Control'=> '1.302185',
+ 'Test2::EventFacet::Error'=> '1.302185',
+ 'Test2::EventFacet::Hub'=> '1.302185',
+ 'Test2::EventFacet::Info'=> '1.302185',
+ 'Test2::EventFacet::Info::Table'=> '1.302185',
+ 'Test2::EventFacet::Meta'=> '1.302185',
+ 'Test2::EventFacet::Parent'=> '1.302185',
+ 'Test2::EventFacet::Plan'=> '1.302185',
+ 'Test2::EventFacet::Render'=> '1.302185',
+ 'Test2::EventFacet::Trace'=> '1.302185',
+ 'Test2::Formatter' => '1.302185',
+ 'Test2::Formatter::TAP' => '1.302185',
+ 'Test2::Hub' => '1.302185',
+ 'Test2::Hub::Interceptor'=> '1.302185',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302185',
+ 'Test2::Hub::Subtest' => '1.302185',
+ 'Test2::IPC' => '1.302185',
+ 'Test2::IPC::Driver' => '1.302185',
+ 'Test2::IPC::Driver::Files'=> '1.302185',
+ 'Test2::Tools::Tiny' => '1.302185',
+ 'Test2::Util' => '1.302185',
+ 'Test2::Util::ExternalMeta'=> '1.302185',
+ 'Test2::Util::Facets2Legacy'=> '1.302185',
+ 'Test2::Util::HashBase' => '1.302185',
+ 'Test2::Util::Trace' => '1.302185',
+ 'Test::Builder' => '1.302185',
+ 'Test::Builder::Formatter'=> '1.302185',
+ 'Test::Builder::Module' => '1.302185',
+ 'Test::Builder::Tester' => '1.302185',
+ 'Test::Builder::Tester::Color'=> '1.302185',
+ 'Test::Builder::TodoDiag'=> '1.302185',
+ 'Test::More' => '1.302185',
+ 'Test::Simple' => '1.302185',
+ 'Test::Tester' => '1.302185',
+ 'Test::Tester::Capture' => '1.302185',
+ 'Test::Tester::CaptureRunner'=> '1.302185',
+ 'Test::Tester::Delegate'=> '1.302185',
+ 'Test::use::ok' => '1.302185',
+ 'Unicode::Collate' => '1.30',
+ 'Unicode::Collate::CJK::Big5'=> '1.30',
+ 'Unicode::Collate::CJK::GB2312'=> '1.30',
+ 'Unicode::Collate::CJK::JISX0208'=> '1.30',
+ 'Unicode::Collate::CJK::Korean'=> '1.30',
+ 'Unicode::Collate::CJK::Pinyin'=> '1.30',
+ 'Unicode::Collate::CJK::Stroke'=> '1.30',
+ 'Unicode::Collate::CJK::Zhuyin'=> '1.30',
+ 'Unicode::Collate::Locale'=> '1.30',
+ 'Unicode::UCD' => '0.76',
+ 'XS::APItest' => '1.17',
+ 'feature' => '1.66',
+ 'ok' => '1.302185',
+ 'open' => '1.13',
+ 'perlfaq' => '5.20210520',
+ 'version' => '0.9929',
+ 'version::regex' => '0.9929',
+ },
+ removed => {
+ }
+ },
+ 5.035002 => {
+ delta_from => 5.035001,
+ changed => {
+ 'Amiga::ARexx' => '0.06',
+ 'Amiga::Exec' => '0.03',
+ 'B::Concise' => '1.005',
+ 'B::Op_private' => '5.035002',
+ 'Config' => '5.035002',
+ 'Cwd' => '3.82',
+ 'DB_File' => '1.856',
+ 'Data::Dumper' => '2.183',
+ 'Devel::PPPort' => '3.63',
+ 'Devel::Peek' => '1.31',
+ 'DynaLoader' => '1.51',
+ 'Encode' => '3.10',
+ 'Encode::JP' => '2.05',
+ 'Errno' => '1.34',
+ 'ExtUtils::Miniperl' => '1.11',
+ 'Fcntl' => '1.15',
+ 'File::Find' => '1.39_01',
+ 'File::Glob' => '1.36',
+ 'File::stat' => '1.11',
+ 'GDBM_File' => '1.20',
+ 'Hash::Util' => '0.26',
+ 'Hash::Util::FieldHash' => '1.22',
+ 'I18N::Langinfo' => '0.20',
+ 'IPC::Open2' => '1.06',
+ 'IPC::Open3' => '1.22',
+ 'Math::BigFloat' => '1.999823',
+ 'Math::BigFloat::Trace' => '0.53',
+ 'Math::BigInt' => '1.999823',
+ 'Math::BigInt::Calc' => '1.999823',
+ 'Math::BigInt::FastCalc'=> '0.5010',
+ 'Math::BigInt::Lib' => '1.999823',
+ 'Math::BigInt::Trace' => '0.53',
+ 'Math::BigRat' => '0.2617',
+ 'Module::CoreList' => '5.20210723',
+ 'Module::CoreList::Utils'=> '5.20210723',
+ 'Opcode' => '1.52',
+ 'PerlIO' => '1.12',
+ 'Pod::Functions' => '1.14',
+ 'Pod::Functions::Functions'=> '1.14',
+ 'Pod::Html' => '1.31',
+ 'Pod::Html::Util' => '1.31',
+ 'Pod::Simple' => '3.43',
+ 'Pod::Simple::BlackBox' => '3.43',
+ 'Pod::Simple::Checker' => '3.43',
+ 'Pod::Simple::Debug' => '3.43',
+ 'Pod::Simple::DumpAsText'=> '3.43',
+ 'Pod::Simple::DumpAsXML'=> '3.43',
+ 'Pod::Simple::HTML' => '3.43',
+ 'Pod::Simple::HTMLBatch'=> '3.43',
+ 'Pod::Simple::LinkSection'=> '3.43',
+ 'Pod::Simple::Methody' => '3.43',
+ 'Pod::Simple::Progress' => '3.43',
+ 'Pod::Simple::PullParser'=> '3.43',
+ 'Pod::Simple::PullParserEndToken'=> '3.43',
+ 'Pod::Simple::PullParserStartToken'=> '3.43',
+ 'Pod::Simple::PullParserTextToken'=> '3.43',
+ 'Pod::Simple::PullParserToken'=> '3.43',
+ 'Pod::Simple::RTF' => '3.43',
+ 'Pod::Simple::Search' => '3.43',
+ 'Pod::Simple::SimpleTree'=> '3.43',
+ 'Pod::Simple::Text' => '3.43',
+ 'Pod::Simple::TextContent'=> '3.43',
+ 'Pod::Simple::TiedOutFH'=> '3.43',
+ 'Pod::Simple::Transcode'=> '3.43',
+ 'Pod::Simple::TranscodeDumb'=> '3.43',
+ 'Pod::Simple::TranscodeSmart'=> '3.43',
+ 'Pod::Simple::XHTML' => '3.43',
+ 'Pod::Simple::XMLOutStream'=> '3.43',
+ 'Sys::Hostname' => '1.24',
+ 'Text::Tabs' => '2021.0717',
+ 'Text::Wrap' => '2021.0717',
+ 'Time::HiRes' => '1.9768',
+ 'Unicode::UCD' => '0.77',
+ 'VMS::Filespec' => '1.13',
+ 'VMS::Stdio' => '2.46',
+ 'XSLoader' => '0.31',
+ 'bigint' => '0.53',
+ 'bignum' => '0.53',
+ 'bigrat' => '0.53',
+ 'if' => '0.0610',
+ 'threads' => '2.27',
+ 'warnings' => '1.52',
+ },
+ removed => {
+ }
+ },
+ 5.035003 => {
+ delta_from => 5.035002,
+ changed => {
+ 'Archive::Tar' => '2.40',
+ 'Archive::Tar::Constant'=> '2.40',
+ 'Archive::Tar::File' => '2.40',
+ 'B::Op_private' => '5.035003',
+ 'Config' => '5.035003',
+ 'Encode' => '3.12',
+ 'Encode::GSM0338' => '2.10',
+ 'Encode::Unicode' => '2.19',
+ 'Module::CoreList' => '5.20210820',
+ 'Module::CoreList::Utils'=> '5.20210820',
+ 'Net::hostent' => '1.03',
+ 'Opcode' => '1.53',
+ 'POSIX' => '1.99',
+ 'Pod::Html' => '1.32',
+ 'Pod::Html::Util' => '1.32',
+ 'Storable' => '3.24',
+ 'Text::Tabs' => '2021.0804',
+ 'Text::Wrap' => '2021.0804',
+ 'Time::HiRes' => '1.9769',
+ 'Unicode::Normalize' => '1.30',
+ 'XS::APItest' => '1.18',
+ 'diagnostics' => '1.38',
+ 'feature' => '1.67',
+ 'sort' => '2.05',
+ 'threads::shared' => '1.63',
+ 'warnings' => '1.53',
+ },
+ removed => {
+ }
+ },
+ 5.035004 => {
+ delta_from => 5.035003,
+ changed => {
+ 'B' => '1.83',
+ 'B::Deparse' => '1.58',
+ 'B::Op_private' => '5.035004',
+ 'Config' => '5.035004',
+ 'Devel::Peek' => '1.32',
+ 'Exporter' => '5.77',
+ 'Exporter::Heavy' => '5.77',
+ 'ExtUtils::ParseXS' => '3.44',
+ 'ExtUtils::ParseXS::Constants'=> '3.44',
+ 'ExtUtils::ParseXS::CountLines'=> '3.44',
+ 'ExtUtils::ParseXS::Eval'=> '3.44',
+ 'ExtUtils::ParseXS::Utilities'=> '3.44',
+ 'ExtUtils::Typemaps' => '3.44',
+ 'ExtUtils::Typemaps::Cmd'=> '3.44',
+ 'ExtUtils::Typemaps::InputMap'=> '3.44',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.44',
+ 'ExtUtils::Typemaps::Type'=> '3.44',
+ 'Hash::Util::FieldHash' => '1.23',
+ 'IO' => '1.48',
+ 'IO::Dir' => '1.48',
+ 'IO::File' => '1.48',
+ 'IO::Handle' => '1.48',
+ 'IO::Pipe' => '1.48',
+ 'IO::Poll' => '1.48',
+ 'IO::Seekable' => '1.48',
+ 'IO::Select' => '1.48',
+ 'IO::Socket' => '1.48',
+ 'IO::Socket::INET' => '1.48',
+ 'IO::Socket::UNIX' => '1.48',
+ 'List::Util' => '1.56_001',
+ 'List::Util::XS' => '1.56_001',
+ 'Module::CoreList' => '5.20210920',
+ 'Module::CoreList::Utils'=> '5.20210920',
+ 'Opcode' => '1.54',
+ 'Pod::Html' => '1.33',
+ 'Pod::Html::Util' => '1.33',
+ 'Scalar::Util' => '1.56_001',
+ 'Storable' => '3.25',
+ 'Sub::Util' => '1.56_001',
+ 'Text::Tabs' => '2021.0814',
+ 'Text::Wrap' => '2021.0814',
+ 'UNIVERSAL' => '1.14',
+ 'Unicode' => '14.0.0',
+ 'Unicode::Collate' => '1.31',
+ 'Unicode::Collate::CJK::Big5'=> '1.31',
+ 'Unicode::Collate::CJK::GB2312'=> '1.31',
+ 'Unicode::Collate::CJK::JISX0208'=> '1.31',
+ 'Unicode::Collate::CJK::Korean'=> '1.31',
+ 'Unicode::Collate::CJK::Pinyin'=> '1.31',
+ 'Unicode::Collate::CJK::Stroke'=> '1.31',
+ 'Unicode::Collate::CJK::Zhuyin'=> '1.31',
+ 'Unicode::Collate::Locale'=> '1.31',
+ 'Unicode::UCD' => '0.78',
+ 'XS::APItest' => '1.19',
+ 'XS::Typemap' => '0.19',
+ 'attributes' => '0.34',
+ 'feature' => '1.68',
+ 'mro' => '1.26',
+ 'threads::shared' => '1.64',
+ 'warnings' => '1.54',
+ },
+ removed => {
+ }
+ },
+ 5.035005 => {
+ delta_from => 5.035004,
+ changed => {
+ 'B::Concise' => '1.006',
+ 'B::Deparse' => '1.59',
+ 'B::Op_private' => '5.035005',
+ 'Config' => '5.035005',
+ 'Digest' => '1.20',
+ 'Digest::base' => '1.20',
+ 'Digest::file' => '1.20',
+ 'DynaLoader' => '1.52',
+ 'Encode' => '3.16',
+ 'Errno' => '1.35',
+ 'File::Copy' => '2.37',
+ 'File::Spec::Unix' => '3.82',
+ 'FindBin' => '1.53',
+ 'GDBM_File' => '1.21',
+ 'HTTP::Tiny' => '0.078',
+ 'I18N::Langinfo' => '0.21',
+ 'IO::Dir' => '1.49',
+ 'IO::Pipe' => '1.49',
+ 'IO::Poll' => '1.49',
+ 'IO::Select' => '1.49',
+ 'IO::Socket' => '1.49',
+ 'IO::Socket::INET' => '1.49',
+ 'IO::Socket::UNIX' => '1.49',
+ 'List::Util' => '1.60',
+ 'List::Util::XS' => '1.60',
+ 'Math::BigRat::Trace' => '0.63',
+ 'Module::CoreList' => '5.20211020',
+ 'Module::CoreList::Utils'=> '5.20211020',
+ 'POSIX' => '2.01',
+ 'Scalar::Util' => '1.60',
+ 'Sub::Util' => '1.60',
+ 'Test2' => '1.302188',
+ 'Test2::API' => '1.302188',
+ 'Test2::API::Breakage' => '1.302188',
+ 'Test2::API::Context' => '1.302188',
+ 'Test2::API::Instance' => '1.302188',
+ 'Test2::API::InterceptResult'=> '1.302188',
+ 'Test2::API::InterceptResult::Event'=> '1.302188',
+ 'Test2::API::InterceptResult::Facet'=> '1.302188',
+ 'Test2::API::InterceptResult::Hub'=> '1.302188',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302188',
+ 'Test2::API::Stack' => '1.302188',
+ 'Test2::Event' => '1.302188',
+ 'Test2::Event::Bail' => '1.302188',
+ 'Test2::Event::Diag' => '1.302188',
+ 'Test2::Event::Encoding'=> '1.302188',
+ 'Test2::Event::Exception'=> '1.302188',
+ 'Test2::Event::Fail' => '1.302188',
+ 'Test2::Event::Generic' => '1.302188',
+ 'Test2::Event::Note' => '1.302188',
+ 'Test2::Event::Ok' => '1.302188',
+ 'Test2::Event::Pass' => '1.302188',
+ 'Test2::Event::Plan' => '1.302188',
+ 'Test2::Event::Skip' => '1.302188',
+ 'Test2::Event::Subtest' => '1.302188',
+ 'Test2::Event::TAP::Version'=> '1.302188',
+ 'Test2::Event::V2' => '1.302188',
+ 'Test2::Event::Waiting' => '1.302188',
+ 'Test2::EventFacet' => '1.302188',
+ 'Test2::EventFacet::About'=> '1.302188',
+ 'Test2::EventFacet::Amnesty'=> '1.302188',
+ 'Test2::EventFacet::Assert'=> '1.302188',
+ 'Test2::EventFacet::Control'=> '1.302188',
+ 'Test2::EventFacet::Error'=> '1.302188',
+ 'Test2::EventFacet::Hub'=> '1.302188',
+ 'Test2::EventFacet::Info'=> '1.302188',
+ 'Test2::EventFacet::Info::Table'=> '1.302188',
+ 'Test2::EventFacet::Meta'=> '1.302188',
+ 'Test2::EventFacet::Parent'=> '1.302188',
+ 'Test2::EventFacet::Plan'=> '1.302188',
+ 'Test2::EventFacet::Render'=> '1.302188',
+ 'Test2::EventFacet::Trace'=> '1.302188',
+ 'Test2::Formatter' => '1.302188',
+ 'Test2::Formatter::TAP' => '1.302188',
+ 'Test2::Hub' => '1.302188',
+ 'Test2::Hub::Interceptor'=> '1.302188',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302188',
+ 'Test2::Hub::Subtest' => '1.302188',
+ 'Test2::IPC' => '1.302188',
+ 'Test2::IPC::Driver' => '1.302188',
+ 'Test2::IPC::Driver::Files'=> '1.302188',
+ 'Test2::Tools::Tiny' => '1.302188',
+ 'Test2::Util' => '1.302188',
+ 'Test2::Util::ExternalMeta'=> '1.302188',
+ 'Test2::Util::Facets2Legacy'=> '1.302188',
+ 'Test2::Util::HashBase' => '1.302188',
+ 'Test2::Util::Trace' => '1.302188',
+ 'Test::Builder' => '1.302188',
+ 'Test::Builder::Formatter'=> '1.302188',
+ 'Test::Builder::Module' => '1.302188',
+ 'Test::Builder::Tester' => '1.302188',
+ 'Test::Builder::Tester::Color'=> '1.302188',
+ 'Test::Builder::TodoDiag'=> '1.302188',
+ 'Test::More' => '1.302188',
+ 'Test::Simple' => '1.302188',
+ 'Test::Tester' => '1.302188',
+ 'Test::Tester::Capture' => '1.302188',
+ 'Test::Tester::CaptureRunner'=> '1.302188',
+ 'Test::Tester::Delegate'=> '1.302188',
+ 'Test::use::ok' => '1.302188',
+ 'Tie::Handle' => '4.3',
+ 'Tie::Hash' => '1.06',
+ 'Tie::Scalar' => '1.06',
+ 'XS::APItest' => '1.20',
+ 'experimental' => '0.025',
+ 'ok' => '1.302188',
+ 'warnings' => '1.55',
+ },
+ removed => {
+ }
+ },
+ 5.035006 => {
+ delta_from => 5.035005,
+ changed => {
+ 'B::Op_private' => '5.035006',
+ 'Config' => '5.035006',
+ 'File::Glob' => '1.37',
+ 'File::stat' => '1.12',
+ 'GDBM_File' => '1.22',
+ 'HTTP::Tiny' => '0.080',
+ 'Math::BigFloat' => '1.999827',
+ 'Math::BigFloat::Trace' => '0.63',
+ 'Math::BigInt' => '1.999827',
+ 'Math::BigInt::Calc' => '1.999827',
+ 'Math::BigInt::FastCalc'=> '0.5012',
+ 'Math::BigInt::Lib' => '1.999827',
+ 'Math::BigInt::Trace' => '0.63',
+ 'Math::BigRat' => '0.2620',
+ 'Module::CoreList' => '5.20211120',
+ 'Module::CoreList::Utils'=> '5.20211120',
+ 'POSIX' => '2.02',
+ 'bigint' => '0.63',
+ 'bignum' => '0.63',
+ 'bigrat' => '0.63',
+ 'diagnostics' => '1.39',
+ 'feature' => '1.69',
+ 'warnings' => '1.56',
+ },
+ removed => {
+ }
+ },
+ 5.035007 => {
+ delta_from => 5.035006,
+ changed => {
+ 'B::Deparse' => '1.60',
+ 'B::Op_private' => '5.035007',
+ 'CPAN' => '2.29',
+ 'CPAN::Distribution' => '2.29',
+ 'CPAN::FTP' => '5.5014',
+ 'CPAN::FirstTime' => '5.5316',
+ 'CPAN::HandleConfig' => '5.5012',
+ 'CPAN::Index' => '2.29',
+ 'Config' => '5.035007',
+ 'Cwd' => '3.83',
+ 'ExtUtils::Command' => '7.64',
+ 'ExtUtils::Command::MM' => '7.64',
+ 'ExtUtils::Liblist' => '7.64',
+ 'ExtUtils::Liblist::Kid'=> '7.64',
+ 'ExtUtils::MM' => '7.64',
+ 'ExtUtils::MM_AIX' => '7.64',
+ 'ExtUtils::MM_Any' => '7.64',
+ 'ExtUtils::MM_BeOS' => '7.64',
+ 'ExtUtils::MM_Cygwin' => '7.64',
+ 'ExtUtils::MM_DOS' => '7.64',
+ 'ExtUtils::MM_Darwin' => '7.64',
+ 'ExtUtils::MM_MacOS' => '7.64',
+ 'ExtUtils::MM_NW5' => '7.64',
+ 'ExtUtils::MM_OS2' => '7.64',
+ 'ExtUtils::MM_OS390' => '7.64',
+ 'ExtUtils::MM_QNX' => '7.64',
+ 'ExtUtils::MM_UWIN' => '7.64',
+ 'ExtUtils::MM_Unix' => '7.64',
+ 'ExtUtils::MM_VMS' => '7.64',
+ 'ExtUtils::MM_VOS' => '7.64',
+ 'ExtUtils::MM_Win32' => '7.64',
+ 'ExtUtils::MM_Win95' => '7.64',
+ 'ExtUtils::MY' => '7.64',
+ 'ExtUtils::MakeMaker' => '7.64',
+ 'ExtUtils::MakeMaker::Config'=> '7.64',
+ 'ExtUtils::MakeMaker::Locale'=> '7.64',
+ 'ExtUtils::MakeMaker::version'=> '7.64',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.64',
+ 'ExtUtils::Mkbootstrap' => '7.64',
+ 'ExtUtils::Mksymlists' => '7.64',
+ 'ExtUtils::testlib' => '7.64',
+ 'File::Compare' => '1.1007',
+ 'File::Copy' => '2.38',
+ 'File::Spec' => '3.83',
+ 'File::Spec::AmigaOS' => '3.83',
+ 'File::Spec::Cygwin' => '3.83',
+ 'File::Spec::Epoc' => '3.83',
+ 'File::Spec::Functions' => '3.83',
+ 'File::Spec::Mac' => '3.83',
+ 'File::Spec::OS2' => '3.83',
+ 'File::Spec::Unix' => '3.83',
+ 'File::Spec::VMS' => '3.83',
+ 'File::Spec::Win32' => '3.83',
+ 'Hash::Util' => '0.27',
+ 'Hash::Util::FieldHash' => '1.24',
+ 'IO' => '1.49',
+ 'JSON::PP' => '4.07',
+ 'JSON::PP::Boolean' => '4.07',
+ 'Math::BigFloat' => '1.999828',
+ 'Math::BigInt' => '1.999828',
+ 'Math::BigInt::Calc' => '1.999828',
+ 'Math::BigInt::Lib' => '1.999828',
+ 'Module::CoreList' => '5.20211220',
+ 'Module::CoreList::Utils'=> '5.20211220',
+ 'Opcode' => '1.55',
+ 'builtin' => '0.001',
+ 'overload' => '1.34',
+ },
+ removed => {
+ }
+ },
+ 5.035008 => {
+ delta_from => 5.035007,
+ changed => {
+ 'B::Deparse' => '1.61',
+ 'B::Op_private' => '5.035008',
+ 'Config' => '5.035008',
+ 'Data::Dumper' => '2.184',
+ 'Errno' => '1.36',
+ 'File::Fetch' => '1.04',
+ 'File::Find' => '1.40',
+ 'Hash::Util::FieldHash' => '1.25',
+ 'Locale::Maketext' => '1.30',
+ 'Math::BigFloat' => '1.999829',
+ 'Math::BigFloat::Trace' => '0.64',
+ 'Math::BigInt' => '1.999829',
+ 'Math::BigInt::Calc' => '1.999829',
+ 'Math::BigInt::Lib' => '1.999829',
+ 'Math::BigInt::Trace' => '0.64',
+ 'Math::BigRat::Trace' => '0.64',
+ 'Module::CoreList' => '5.20220120',
+ 'Module::CoreList::Utils'=> '5.20220120',
+ 'NEXT' => '0.69',
+ 'POSIX' => '2.03',
+ 'Win32' => '0.58',
+ '_charnames' => '1.49',
+ 'bigint' => '0.64',
+ 'bignum' => '0.64',
+ 'bigrat' => '0.64',
+ 'charnames' => '1.49',
+ },
+ removed => {
+ }
+ },
+ 5.035009 => {
+ delta_from => 5.035008,
+ changed => {
+ 'App::Cpan' => '1.678',
+ 'B::Deparse' => '1.62',
+ 'B::Op_private' => '5.035009',
+ 'CPAN' => '2.33',
+ 'CPAN::Distribution' => '2.33',
+ 'CPAN::FTP' => '5.5016',
+ 'CPAN::FirstTime' => '5.5317',
+ 'Config' => '5.035009',
+ 'Devel::PPPort' => '3.64',
+ 'File::Copy' => '2.39',
+ 'Hash::Util' => '0.28',
+ 'Hash::Util::FieldHash' => '1.26',
+ 'List::Util' => '1.61',
+ 'List::Util::XS' => '1.61',
+ 'Module::CoreList' => '5.20220220',
+ 'Module::CoreList::Utils'=> '5.20220220',
+ 'Opcode' => '1.56',
+ 'Scalar::Util' => '1.61',
+ 'Sub::Util' => '1.61',
+ 'Tie::SubstrHash' => '1.01',
+ 'XS::APItest' => '1.21',
+ '_charnames' => '1.50',
+ 'builtin' => '0.002',
+ 'charnames' => '1.50',
+ 'experimental' => '0.027',
+ 'feature' => '1.70',
+ 'overload' => '1.35',
+ 're' => '0.42',
+ 'sigtrap' => '1.10',
+ 'warnings' => '1.57',
+ },
+ removed => {
+ }
+ },
+ 5.034001 => {
+ delta_from => 5.034000,
+ changed => {
+ 'B::Deparse' => '1.57',
+ 'B::Op_private' => '5.034001',
+ 'Config' => '5.034001',
+ 'Encode' => '3.08_01',
+ 'GDBM_File' => '1.19_01',
+ 'Module::CoreList' => '5.20220313',
+ 'Module::CoreList::Utils'=> '5.20220313',
+ },
+ removed => {
+ }
+ },
+ 5.035010 => {
+ delta_from => 5.035009,
+ changed => {
+ 'Attribute::Handlers' => '1.02',
+ 'B::Deparse' => '1.63',
+ 'B::Op_private' => '5.035010',
+ 'Config' => '5.03501',
+ 'Cwd' => '3.84',
+ 'DB_File' => '1.857',
+ 'Devel::PPPort' => '3.68',
+ 'ExtUtils::ParseXS' => '3.45',
+ 'ExtUtils::ParseXS::Constants'=> '3.45',
+ 'ExtUtils::ParseXS::CountLines'=> '3.45',
+ 'ExtUtils::ParseXS::Eval'=> '3.45',
+ 'ExtUtils::ParseXS::Utilities'=> '3.45',
+ 'ExtUtils::Typemaps' => '3.45',
+ 'ExtUtils::Typemaps::Cmd'=> '3.45',
+ 'ExtUtils::Typemaps::InputMap'=> '3.45',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.45',
+ 'ExtUtils::Typemaps::Type'=> '3.45',
+ 'File::Spec' => '3.84',
+ 'File::Spec::AmigaOS' => '3.84',
+ 'File::Spec::Cygwin' => '3.84',
+ 'File::Spec::Epoc' => '3.84',
+ 'File::Spec::Functions' => '3.84',
+ 'File::Spec::Mac' => '3.84',
+ 'File::Spec::OS2' => '3.84',
+ 'File::Spec::Unix' => '3.84',
+ 'File::Spec::VMS' => '3.84',
+ 'File::Spec::Win32' => '3.84',
+ 'GDBM_File' => '1.23',
+ 'List::Util' => '1.62',
+ 'List::Util::XS' => '1.62',
+ 'Module::CoreList' => '5.20220320',
+ 'Module::CoreList::Utils'=> '5.20220320',
+ 'Opcode' => '1.57',
+ 'Scalar::Util' => '1.62',
+ 'Sub::Util' => '1.62',
+ 'Test2' => '1.302190',
+ 'Test2::API' => '1.302190',
+ 'Test2::API::Breakage' => '1.302190',
+ 'Test2::API::Context' => '1.302190',
+ 'Test2::API::Instance' => '1.302190',
+ 'Test2::API::InterceptResult'=> '1.302190',
+ 'Test2::API::InterceptResult::Event'=> '1.302190',
+ 'Test2::API::InterceptResult::Facet'=> '1.302190',
+ 'Test2::API::InterceptResult::Hub'=> '1.302190',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302190',
+ 'Test2::API::Stack' => '1.302190',
+ 'Test2::Event' => '1.302190',
+ 'Test2::Event::Bail' => '1.302190',
+ 'Test2::Event::Diag' => '1.302190',
+ 'Test2::Event::Encoding'=> '1.302190',
+ 'Test2::Event::Exception'=> '1.302190',
+ 'Test2::Event::Fail' => '1.302190',
+ 'Test2::Event::Generic' => '1.302190',
+ 'Test2::Event::Note' => '1.302190',
+ 'Test2::Event::Ok' => '1.302190',
+ 'Test2::Event::Pass' => '1.302190',
+ 'Test2::Event::Plan' => '1.302190',
+ 'Test2::Event::Skip' => '1.302190',
+ 'Test2::Event::Subtest' => '1.302190',
+ 'Test2::Event::TAP::Version'=> '1.302190',
+ 'Test2::Event::V2' => '1.302190',
+ 'Test2::Event::Waiting' => '1.302190',
+ 'Test2::EventFacet' => '1.302190',
+ 'Test2::EventFacet::About'=> '1.302190',
+ 'Test2::EventFacet::Amnesty'=> '1.302190',
+ 'Test2::EventFacet::Assert'=> '1.302190',
+ 'Test2::EventFacet::Control'=> '1.302190',
+ 'Test2::EventFacet::Error'=> '1.302190',
+ 'Test2::EventFacet::Hub'=> '1.302190',
+ 'Test2::EventFacet::Info'=> '1.302190',
+ 'Test2::EventFacet::Info::Table'=> '1.302190',
+ 'Test2::EventFacet::Meta'=> '1.302190',
+ 'Test2::EventFacet::Parent'=> '1.302190',
+ 'Test2::EventFacet::Plan'=> '1.302190',
+ 'Test2::EventFacet::Render'=> '1.302190',
+ 'Test2::EventFacet::Trace'=> '1.302190',
+ 'Test2::Formatter' => '1.302190',
+ 'Test2::Formatter::TAP' => '1.302190',
+ 'Test2::Hub' => '1.302190',
+ 'Test2::Hub::Interceptor'=> '1.302190',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302190',
+ 'Test2::Hub::Subtest' => '1.302190',
+ 'Test2::IPC' => '1.302190',
+ 'Test2::IPC::Driver' => '1.302190',
+ 'Test2::IPC::Driver::Files'=> '1.302190',
+ 'Test2::Tools::Tiny' => '1.302190',
+ 'Test2::Util' => '1.302190',
+ 'Test2::Util::ExternalMeta'=> '1.302190',
+ 'Test2::Util::Facets2Legacy'=> '1.302190',
+ 'Test2::Util::HashBase' => '1.302190',
+ 'Test2::Util::Trace' => '1.302190',
+ 'Test::Builder' => '1.302190',
+ 'Test::Builder::Formatter'=> '1.302190',
+ 'Test::Builder::Module' => '1.302190',
+ 'Test::Builder::Tester' => '1.302190',
+ 'Test::Builder::Tester::Color'=> '1.302190',
+ 'Test::Builder::TodoDiag'=> '1.302190',
+ 'Test::More' => '1.302190',
+ 'Test::Simple' => '1.302190',
+ 'Test::Tester' => '1.302190',
+ 'Test::Tester::Capture' => '1.302190',
+ 'Test::Tester::CaptureRunner'=> '1.302190',
+ 'Test::Tester::Delegate'=> '1.302190',
+ 'Test::use::ok' => '1.302190',
+ 'XS::APItest' => '1.22',
+ 'builtin' => '0.004',
+ 'experimental' => '0.028',
+ 'feature' => '1.71',
+ 'ok' => '1.302190',
+ 'warnings' => '1.58',
+ },
+ removed => {
+ }
+ },
+ 5.035011 => {
+ delta_from => 5.03501,
+ changed => {
+ 'App::Prove' => '3.44',
+ 'App::Prove::State' => '3.44',
+ 'App::Prove::State::Result'=> '3.44',
+ 'App::Prove::State::Result::Test'=> '3.44',
+ 'B::Deparse' => '1.64',
+ 'B::Op_private' => '5.035011',
+ 'Compress::Raw::Bzip2' => '2.103',
+ 'Compress::Raw::Zlib' => '2.103',
+ 'Compress::Zlib' => '2.106',
+ 'Config' => '5.035011',
+ 'Encode' => '3.17',
+ 'Encode::Unicode' => '2.20',
+ 'ExtUtils::Constant::Base'=> '0.07',
+ 'IO' => '1.49_01',
+ 'IO::Compress::Adapter::Bzip2'=> '2.106',
+ 'IO::Compress::Adapter::Deflate'=> '2.106',
+ 'IO::Compress::Adapter::Identity'=> '2.106',
+ 'IO::Compress::Base' => '2.106',
+ 'IO::Compress::Base::Common'=> '2.106',
+ 'IO::Compress::Bzip2' => '2.106',
+ 'IO::Compress::Deflate' => '2.106',
+ 'IO::Compress::Gzip' => '2.106',
+ 'IO::Compress::Gzip::Constants'=> '2.106',
+ 'IO::Compress::RawDeflate'=> '2.106',
+ 'IO::Compress::Zip' => '2.106',
+ 'IO::Compress::Zip::Constants'=> '2.106',
+ 'IO::Compress::Zlib::Constants'=> '2.106',
+ 'IO::Compress::Zlib::Extra'=> '2.106',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.106',
+ 'IO::Uncompress::Adapter::Identity'=> '2.106',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.106',
+ 'IO::Uncompress::AnyInflate'=> '2.106',
+ 'IO::Uncompress::AnyUncompress'=> '2.106',
+ 'IO::Uncompress::Base' => '2.106',
+ 'IO::Uncompress::Bunzip2'=> '2.106',
+ 'IO::Uncompress::Gunzip'=> '2.106',
+ 'IO::Uncompress::Inflate'=> '2.106',
+ 'IO::Uncompress::RawInflate'=> '2.106',
+ 'IO::Uncompress::Unzip' => '2.106',
+ 'Locale::Maketext' => '1.31',
+ 'Math::BigFloat' => '1.999830',
+ 'Math::BigFloat::Trace' => '0.65',
+ 'Math::BigInt' => '1.999830',
+ 'Math::BigInt::Calc' => '1.999830',
+ 'Math::BigInt::Lib' => '1.999830',
+ 'Math::BigInt::Trace' => '0.65',
+ 'Math::BigRat' => '0.2621',
+ 'Math::BigRat::Trace' => '0.65',
+ 'Module::CoreList' => '5.20220420',
+ 'Module::CoreList::Utils'=> '5.20220420',
+ 'Net::Cmd' => '3.14',
+ 'Net::Config' => '3.14',
+ 'Net::Domain' => '3.14',
+ 'Net::FTP' => '3.14',
+ 'Net::FTP::A' => '3.14',
+ 'Net::FTP::E' => '3.14',
+ 'Net::FTP::I' => '3.14',
+ 'Net::FTP::L' => '3.14',
+ 'Net::FTP::dataconn' => '3.14',
+ 'Net::NNTP' => '3.14',
+ 'Net::Netrc' => '3.14',
+ 'Net::POP3' => '3.14',
+ 'Net::SMTP' => '3.14',
+ 'Net::Time' => '3.14',
+ 'Socket' => '2.033',
+ 'Storable' => '3.26',
+ 'TAP::Base' => '3.44',
+ 'TAP::Formatter::Base' => '3.44',
+ 'TAP::Formatter::Color' => '3.44',
+ 'TAP::Formatter::Console'=> '3.44',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.44',
+ 'TAP::Formatter::Console::Session'=> '3.44',
+ 'TAP::Formatter::File' => '3.44',
+ 'TAP::Formatter::File::Session'=> '3.44',
+ 'TAP::Formatter::Session'=> '3.44',
+ 'TAP::Harness' => '3.44',
+ 'TAP::Harness::Env' => '3.44',
+ 'TAP::Object' => '3.44',
+ 'TAP::Parser' => '3.44',
+ 'TAP::Parser::Aggregator'=> '3.44',
+ 'TAP::Parser::Grammar' => '3.44',
+ 'TAP::Parser::Iterator' => '3.44',
+ 'TAP::Parser::Iterator::Array'=> '3.44',
+ 'TAP::Parser::Iterator::Process'=> '3.44',
+ 'TAP::Parser::Iterator::Stream'=> '3.44',
+ 'TAP::Parser::IteratorFactory'=> '3.44',
+ 'TAP::Parser::Multiplexer'=> '3.44',
+ 'TAP::Parser::Result' => '3.44',
+ 'TAP::Parser::Result::Bailout'=> '3.44',
+ 'TAP::Parser::Result::Comment'=> '3.44',
+ 'TAP::Parser::Result::Plan'=> '3.44',
+ 'TAP::Parser::Result::Pragma'=> '3.44',
+ 'TAP::Parser::Result::Test'=> '3.44',
+ 'TAP::Parser::Result::Unknown'=> '3.44',
+ 'TAP::Parser::Result::Version'=> '3.44',
+ 'TAP::Parser::Result::YAML'=> '3.44',
+ 'TAP::Parser::ResultFactory'=> '3.44',
+ 'TAP::Parser::Scheduler'=> '3.44',
+ 'TAP::Parser::Scheduler::Job'=> '3.44',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.44',
+ 'TAP::Parser::Source' => '3.44',
+ 'TAP::Parser::SourceHandler'=> '3.44',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.44',
+ 'TAP::Parser::SourceHandler::File'=> '3.44',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.44',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.44',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.44',
+ 'TAP::Parser::YAMLish::Reader'=> '3.44',
+ 'TAP::Parser::YAMLish::Writer'=> '3.44',
+ 'Test::Harness' => '3.44',
+ 'Text::ParseWords' => '3.31',
+ 'Time::HiRes' => '1.9770',
+ 'Unicode::Normalize' => '1.31',
+ 'bigfloat' => '0.65',
+ 'bigint' => '0.65',
+ 'bignum' => '0.65',
+ 'bigrat' => '0.65',
+ 'builtin' => '0.005',
+ 're' => '0.43',
+ },
+ removed => {
+ }
+ },
+ 5.036000 => {
+ delta_from => 5.035011,
+ changed => {
+ 'Amiga::Exec' => '0.04',
+ 'B::Op_private' => '5.036000',
+ 'Compress::Raw::Zlib' => '2.105',
+ 'Config' => '5.036',
+ 'IO' => '1.50',
+ 'Module::CoreList' => '5.20220520',
+ 'Module::CoreList::Utils'=> '5.20220520',
+ 'Win32' => '0.59',
+ 'builtin' => '0.006',
+ 'feature' => '1.72',
+ },
+ removed => {
+ }
+ },
+ 5.037000 => {
+ delta_from => 5.036000,
+ changed => {
+ 'feature' => '1.73',
+ 'Module::CoreList' => '5.20220527',
+ 'Module::CoreList::Utils'=> '5.20220527',
+ },
+ removed => {
+ }
+ },
+ 5.037001 => {
+ delta_from => 5.037000,
+ changed => {
+ 'B' => '1.84',
+ 'B::Op_private' => '5.037001',
+ 'Carp' => '1.53',
+ 'Carp::Heavy' => '1.53',
+ 'Config' => '5.037001',
+ 'Cwd' => '3.85',
+ 'Data::Dumper' => '2.185',
+ 'ExtUtils::CBuilder' => '0.280237',
+ 'ExtUtils::CBuilder::Base'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280237',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280237',
+ 'ExtUtils::Miniperl' => '1.12',
+ 'File::Spec' => '3.85',
+ 'File::Spec::AmigaOS' => '3.85',
+ 'File::Spec::Cygwin' => '3.85',
+ 'File::Spec::Epoc' => '3.85',
+ 'File::Spec::Functions' => '3.85',
+ 'File::Spec::Mac' => '3.85',
+ 'File::Spec::OS2' => '3.85',
+ 'File::Spec::Unix' => '3.85',
+ 'File::Spec::VMS' => '3.85',
+ 'File::Spec::Win32' => '3.85',
+ 'FileHandle' => '2.04',
+ 'GDBM_File' => '1.24',
+ 'IO::Handle' => '1.49',
+ 'IO::Pipe' => '1.50',
+ 'IO::Socket::INET' => '1.50',
+ 'IO::Socket::UNIX' => '1.50',
+ 'Module::CoreList' => '5.20220620',
+ 'Module::CoreList::Utils'=> '5.20220620',
+ 'ODBM_File' => '1.18',
+ 'OS2::REXX' => '1.06',
+ 'Opcode' => '1.58',
+ 'POSIX' => '2.04',
+ 'SDBM_File' => '1.16',
+ 'Unicode::Normalize' => '1.32',
+ 'XS::APItest' => '1.23',
+ 'builtin' => '0.007',
+ 'encoding::warnings' => '0.14',
+ 'feature' => '1.74',
+ 'threads' => '2.28',
+ },
+ removed => {
+ }
+ },
+ 5.037002 => {
+ delta_from => 5.037001,
+ changed => {
+ 'B' => '1.85',
+ 'B::Concise' => '1.007',
+ 'B::Deparse' => '1.65',
+ 'B::Op_private' => '5.037002',
+ 'CPAN' => '2.34',
+ 'CPAN::Distribution' => '2.34',
+ 'Compress::Raw::Bzip2' => '2.201',
+ 'Compress::Raw::Zlib' => '2.202',
+ 'Compress::Zlib' => '2.201',
+ 'Config' => '5.037002',
+ 'Cwd' => '3.86',
+ 'DB_File' => '1.858',
+ 'Data::Dumper' => '2.186',
+ 'Encode' => '3.18',
+ 'Encode::MIME::Header' => '2.29',
+ 'File::Glob' => '1.38',
+ 'File::Spec' => '3.86',
+ 'File::Spec::AmigaOS' => '3.86',
+ 'File::Spec::Cygwin' => '3.86',
+ 'File::Spec::Epoc' => '3.86',
+ 'File::Spec::Functions' => '3.86',
+ 'File::Spec::Mac' => '3.86',
+ 'File::Spec::OS2' => '3.86',
+ 'File::Spec::Unix' => '3.86',
+ 'File::Spec::VMS' => '3.86',
+ 'File::Spec::Win32' => '3.86',
+ 'Filter::Util::Call' => '1.61',
+ 'Hash::Util' => '0.29',
+ 'I18N::LangTags::List' => '0.41',
+ 'IO::Compress::Adapter::Bzip2'=> '2.201',
+ 'IO::Compress::Adapter::Deflate'=> '2.201',
+ 'IO::Compress::Adapter::Identity'=> '2.201',
+ 'IO::Compress::Base' => '2.201',
+ 'IO::Compress::Base::Common'=> '2.201',
+ 'IO::Compress::Bzip2' => '2.201',
+ 'IO::Compress::Deflate' => '2.201',
+ 'IO::Compress::Gzip' => '2.201',
+ 'IO::Compress::Gzip::Constants'=> '2.201',
+ 'IO::Compress::RawDeflate'=> '2.201',
+ 'IO::Compress::Zip' => '2.201',
+ 'IO::Compress::Zip::Constants'=> '2.201',
+ 'IO::Compress::Zlib::Constants'=> '2.201',
+ 'IO::Compress::Zlib::Extra'=> '2.201',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.201',
+ 'IO::Uncompress::Adapter::Identity'=> '2.201',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.201',
+ 'IO::Uncompress::AnyInflate'=> '2.201',
+ 'IO::Uncompress::AnyUncompress'=> '2.201',
+ 'IO::Uncompress::Base' => '2.201',
+ 'IO::Uncompress::Bunzip2'=> '2.201',
+ 'IO::Uncompress::Gunzip'=> '2.201',
+ 'IO::Uncompress::Inflate'=> '2.201',
+ 'IO::Uncompress::RawInflate'=> '2.201',
+ 'IO::Uncompress::Unzip' => '2.201',
+ 'JSON::PP' => '4.10',
+ 'JSON::PP::Boolean' => '4.10',
+ 'Math::BigFloat' => '1.999837',
+ 'Math::BigFloat::Trace' => '0.66',
+ 'Math::BigInt' => '1.999837',
+ 'Math::BigInt::Calc' => '1.999837',
+ 'Math::BigInt::FastCalc'=> '0.5013',
+ 'Math::BigInt::Lib' => '1.999837',
+ 'Math::BigInt::Trace' => '0.66',
+ 'Math::BigRat' => '0.2624',
+ 'Math::BigRat::Trace' => '0.66',
+ 'Module::CoreList' => '5.20220720',
+ 'Module::CoreList::Utils'=> '5.20220720',
+ 'Opcode' => '1.59',
+ 'PerlIO::via::QuotedPrint'=> '0.10',
+ 'Pod::Checker' => '1.75',
+ 'Pod::Usage' => '2.03',
+ 'Socket' => '2.035',
+ 'Storable' => '3.27',
+ 'Test2' => '1.302191',
+ 'Test2::API' => '1.302191',
+ 'Test2::API::Breakage' => '1.302191',
+ 'Test2::API::Context' => '1.302191',
+ 'Test2::API::Instance' => '1.302191',
+ 'Test2::API::InterceptResult'=> '1.302191',
+ 'Test2::API::InterceptResult::Event'=> '1.302191',
+ 'Test2::API::InterceptResult::Facet'=> '1.302191',
+ 'Test2::API::InterceptResult::Hub'=> '1.302191',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302191',
+ 'Test2::API::Stack' => '1.302191',
+ 'Test2::Event' => '1.302191',
+ 'Test2::Event::Bail' => '1.302191',
+ 'Test2::Event::Diag' => '1.302191',
+ 'Test2::Event::Encoding'=> '1.302191',
+ 'Test2::Event::Exception'=> '1.302191',
+ 'Test2::Event::Fail' => '1.302191',
+ 'Test2::Event::Generic' => '1.302191',
+ 'Test2::Event::Note' => '1.302191',
+ 'Test2::Event::Ok' => '1.302191',
+ 'Test2::Event::Pass' => '1.302191',
+ 'Test2::Event::Plan' => '1.302191',
+ 'Test2::Event::Skip' => '1.302191',
+ 'Test2::Event::Subtest' => '1.302191',
+ 'Test2::Event::TAP::Version'=> '1.302191',
+ 'Test2::Event::V2' => '1.302191',
+ 'Test2::Event::Waiting' => '1.302191',
+ 'Test2::EventFacet' => '1.302191',
+ 'Test2::EventFacet::About'=> '1.302191',
+ 'Test2::EventFacet::Amnesty'=> '1.302191',
+ 'Test2::EventFacet::Assert'=> '1.302191',
+ 'Test2::EventFacet::Control'=> '1.302191',
+ 'Test2::EventFacet::Error'=> '1.302191',
+ 'Test2::EventFacet::Hub'=> '1.302191',
+ 'Test2::EventFacet::Info'=> '1.302191',
+ 'Test2::EventFacet::Info::Table'=> '1.302191',
+ 'Test2::EventFacet::Meta'=> '1.302191',
+ 'Test2::EventFacet::Parent'=> '1.302191',
+ 'Test2::EventFacet::Plan'=> '1.302191',
+ 'Test2::EventFacet::Render'=> '1.302191',
+ 'Test2::EventFacet::Trace'=> '1.302191',
+ 'Test2::Formatter' => '1.302191',
+ 'Test2::Formatter::TAP' => '1.302191',
+ 'Test2::Hub' => '1.302191',
+ 'Test2::Hub::Interceptor'=> '1.302191',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302191',
+ 'Test2::Hub::Subtest' => '1.302191',
+ 'Test2::IPC' => '1.302191',
+ 'Test2::IPC::Driver' => '1.302191',
+ 'Test2::IPC::Driver::Files'=> '1.302191',
+ 'Test2::Tools::Tiny' => '1.302191',
+ 'Test2::Util' => '1.302191',
+ 'Test2::Util::ExternalMeta'=> '1.302191',
+ 'Test2::Util::Facets2Legacy'=> '1.302191',
+ 'Test2::Util::HashBase' => '1.302191',
+ 'Test2::Util::Trace' => '1.302191',
+ 'Test::Builder' => '1.302191',
+ 'Test::Builder::Formatter'=> '1.302191',
+ 'Test::Builder::Module' => '1.302191',
+ 'Test::Builder::Tester' => '1.302191',
+ 'Test::Builder::Tester::Color'=> '1.302191',
+ 'Test::Builder::TodoDiag'=> '1.302191',
+ 'Test::More' => '1.302191',
+ 'Test::Simple' => '1.302191',
+ 'Test::Tester' => '1.302191',
+ 'Test::Tester::Capture' => '1.302191',
+ 'Test::Tester::CaptureRunner'=> '1.302191',
+ 'Test::Tester::Delegate'=> '1.302191',
+ 'Test::use::ok' => '1.302191',
+ 'Text::Balanced' => '2.06',
+ 'XS::APItest' => '1.24',
+ 'bigfloat' => '0.66',
+ 'bigint' => '0.66',
+ 'bignum' => '0.66',
+ 'bigrat' => '0.66',
+ 'builtin' => '0.008',
+ 'feature' => '1.75',
+ 'ok' => '1.302191',
+ 'threads::shared' => '1.65',
+ },
+ removed => {
+ }
+ },
+ 5.037003 => {
+ delta_from => 5.037002,
+ changed => {
+ 'B' => '1.86',
+ 'B::Deparse' => '1.68',
+ 'B::Op_private' => '5.037003',
+ 'Config' => '5.037003',
+ 'Digest::SHA' => '6.03',
+ 'DynaLoader' => '1.53',
+ 'Encode' => '3.19',
+ 'Encode::Alias' => '2.25',
+ 'ExtUtils::PL2Bat' => '0.005',
+ 'File::Find' => '1.41',
+ 'Filter::Util::Call' => '1.64',
+ 'HTTP::Tiny' => '0.082',
+ 'JSON::PP' => '4.11',
+ 'JSON::PP::Boolean' => '4.11',
+ 'List::Util' => '1.63',
+ 'List::Util::XS' => '1.63',
+ 'Memoize' => '1.10',
+ 'Memoize::AnyDBM_File' => '1.10',
+ 'Memoize::Expire' => '1.10',
+ 'Memoize::NDBM_File' => '1.10',
+ 'Memoize::SDBM_File' => '1.10',
+ 'Memoize::Storable' => '1.10',
+ 'Module::CoreList' => '5.20220820',
+ 'Module::CoreList::Utils'=> '5.20220820',
+ 'NDBM_File' => '1.16',
+ 'Opcode' => '1.60',
+ 'Scalar::Util' => '1.63',
+ 'Socket' => '2.036',
+ 'Sub::Util' => '1.63',
+ 'XS::APItest' => '1.25',
+ 'attributes' => '0.35',
+ 'threads' => '2.29',
+ },
+ removed => {
+ 'Memoize::ExpireFile' => 1,
+ 'Memoize::ExpireTest' => 1,
+ }
+ },
+ 5.037004 => {
+ delta_from => 5.037003,
+ changed => {
+ 'B::Deparse' => '1.69',
+ 'B::Op_private' => '5.037004',
+ 'Carp' => '1.54',
+ 'Carp::Heavy' => '1.54',
+ 'Class::Struct' => '0.67',
+ 'Config' => '5.037004',
+ 'Config::Perl::V' => '0.34',
+ 'Errno' => '1.37',
+ 'ExtUtils::ParseXS' => '3.46',
+ 'ExtUtils::ParseXS::Constants'=> '3.46',
+ 'ExtUtils::ParseXS::CountLines'=> '3.46',
+ 'ExtUtils::ParseXS::Eval'=> '3.46',
+ 'ExtUtils::ParseXS::Utilities'=> '3.46',
+ 'ExtUtils::Typemaps' => '3.46',
+ 'ExtUtils::Typemaps::Cmd'=> '3.46',
+ 'ExtUtils::Typemaps::InputMap'=> '3.46',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.46',
+ 'ExtUtils::Typemaps::Type'=> '3.46',
+ 'File::Basename' => '2.86',
+ 'File::Copy' => '2.40',
+ 'File::Spec' => '3.87',
+ 'File::stat' => '1.13',
+ 'FileHandle' => '2.05',
+ 'Hash::Util' => '0.30',
+ 'I18N::Langinfo' => '0.22',
+ 'IO' => '1.51',
+ 'IO::Dir' => '1.51',
+ 'IO::File' => '1.51',
+ 'IO::Handle' => '1.51',
+ 'IO::Pipe' => '1.51',
+ 'IO::Poll' => '1.51',
+ 'IO::Seekable' => '1.51',
+ 'IO::Select' => '1.51',
+ 'IO::Socket' => '1.51',
+ 'IO::Socket::INET' => '1.51',
+ 'IO::Socket::UNIX' => '1.51',
+ 'Locale::Maketext' => '1.32',
+ 'Module::CoreList' => '5.20220920',
+ 'Module::CoreList::Utils'=> '5.20220920',
+ 'Net::protoent' => '1.02',
+ 'Net::servent' => '1.03',
+ 'Opcode' => '1.61',
+ 'POSIX' => '2.06',
+ 'Safe' => '2.44',
+ 'Sys::Hostname' => '1.25',
+ 'Time::HiRes' => '1.9771',
+ 'User::grent' => '1.04',
+ 'User::pwent' => '1.02',
+ 'XS::APItest' => '1.26',
+ 'XSLoader' => '0.32',
+ 'feature' => '1.76',
+ },
+ removed => {
+ }
+ },
+ 5.037005 => {
+ delta_from => 5.037004,
+ changed => {
+ 'B::Deparse' => '1.70',
+ 'B::Op_private' => '5.037005',
+ 'Config' => '5.037005',
+ 'JSON::PP' => '4.12',
+ 'JSON::PP::Boolean' => '4.12',
+ 'Math::Complex' => '1.5903',
+ 'Math::Trig' => '1.2301',
+ 'Memoize' => '1.14',
+ 'Memoize::AnyDBM_File' => '1.14',
+ 'Memoize::Expire' => '1.14',
+ 'Memoize::NDBM_File' => '1.14',
+ 'Memoize::SDBM_File' => '1.14',
+ 'Memoize::Storable' => '1.14',
+ 'Module::CoreList' => '5.20221020',
+ 'Module::CoreList::Utils'=> '5.20221020',
+ 'Net::Ping' => '2.75',
+ 'POSIX' => '2.07',
+ 'Unicode' => '15.0.0',
+ 'threads' => '2.31',
+ 'warnings' => '1.59',
+ },
+ removed => {
+ }
+ },
+ 5.037006 => {
+ delta_from => 5.037005,
+ changed => {
+ 'Attribute::Handlers' => '1.03',
+ 'B' => '1.87',
+ 'B::Deparse' => '1.71',
+ 'B::Op_private' => '5.037006',
+ 'Config' => '5.037006',
+ 'Data::Dumper' => '2.187',
+ 'Devel::PPPort' => '3.69',
+ 'ExtUtils::CBuilder' => '0.280238',
+ 'ExtUtils::CBuilder::Base'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280238',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280238',
+ 'ExtUtils::ParseXS' => '3.48',
+ 'ExtUtils::ParseXS::Constants'=> '3.48',
+ 'ExtUtils::ParseXS::CountLines'=> '3.48',
+ 'ExtUtils::ParseXS::Eval'=> '3.48',
+ 'ExtUtils::ParseXS::Utilities'=> '3.48',
+ 'ExtUtils::Typemaps' => '3.48',
+ 'ExtUtils::Typemaps::Cmd'=> '3.48',
+ 'ExtUtils::Typemaps::InputMap'=> '3.48',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.48',
+ 'ExtUtils::Typemaps::Type'=> '3.48',
+ 'Getopt::Long' => '2.54',
+ 'Memoize' => '1.15',
+ 'Memoize::AnyDBM_File' => '1.15',
+ 'Memoize::Expire' => '1.15',
+ 'Memoize::NDBM_File' => '1.15',
+ 'Memoize::SDBM_File' => '1.15',
+ 'Memoize::Storable' => '1.15',
+ 'Module::CoreList' => '5.20221120',
+ 'Module::CoreList::Utils'=> '5.20221120',
+ 'Opcode' => '1.62',
+ 'POSIX' => '2.08',
+ 'Storable' => '3.28',
+ 'Time::HiRes' => '1.9772',
+ 'XS::APItest' => '1.27',
+ 'experimental' => '0.029',
+ 'feature' => '1.77',
+ 'overload' => '1.36',
+ 'threads' => '2.32',
+ 'utf8' => '1.25',
+ 'warnings' => '1.61',
+ },
+ removed => {
+ }
+ },
+ 5.037007 => {
+ delta_from => 5.037006,
+ changed => {
+ 'B::Deparse' => '1.72',
+ 'B::Op_private' => '5.037007',
+ 'Config' => '5.037007',
+ 'Cwd' => '3.88',
+ 'ExtUtils::Miniperl' => '1.13',
+ 'ExtUtils::ParseXS' => '3.49',
+ 'ExtUtils::ParseXS::Constants'=> '3.49',
+ 'ExtUtils::ParseXS::CountLines'=> '3.49',
+ 'ExtUtils::ParseXS::Eval'=> '3.49',
+ 'ExtUtils::ParseXS::Utilities'=> '3.49',
+ 'ExtUtils::Typemaps' => '3.49',
+ 'ExtUtils::Typemaps::Cmd'=> '3.49',
+ 'ExtUtils::Typemaps::InputMap'=> '3.49',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.49',
+ 'ExtUtils::Typemaps::Type'=> '3.49',
+ 'File::Glob' => '1.39',
+ 'File::Spec' => '3.88',
+ 'File::Spec::AmigaOS' => '3.88',
+ 'File::Spec::Cygwin' => '3.88',
+ 'File::Spec::Epoc' => '3.88',
+ 'File::Spec::Functions' => '3.88',
+ 'File::Spec::Mac' => '3.88',
+ 'File::Spec::OS2' => '3.88',
+ 'File::Spec::Unix' => '3.88',
+ 'File::Spec::VMS' => '3.88',
+ 'File::Spec::Win32' => '3.88',
+ 'Module::CoreList' => '5.20221220',
+ 'Module::CoreList::Utils'=> '5.20221220',
+ 'Opcode' => '1.63',
+ 'POSIX' => '2.10',
+ 'Pod::Html' => '1.34',
+ 'Pod::Html::Util' => '1.34',
+ 'Pod::Man' => '5.00',
+ 'Pod::ParseLink' => '5.00',
+ 'Pod::Text' => '5.00',
+ 'Pod::Text::Color' => '5.00',
+ 'Pod::Text::Overstrike' => '5.00',
+ 'Pod::Text::Termcap' => '5.00',
+ 'XS::APItest' => '1.28',
+ 'experimental' => '0.030',
+ 'feature' => '1.78',
+ 'parent' => '0.239',
+ 'threads' => '2.33',
+ },
+ removed => {
+ }
+ },
+ 5.037008 => {
+ delta_from => 5.037007,
+ changed => {
+ 'B::Op_private' => '5.037008',
+ 'Config' => '5.037008',
+ 'Config::Perl::V' => '0.35',
+ 'ExtUtils::Command' => '7.66',
+ 'ExtUtils::Command::MM' => '7.66',
+ 'ExtUtils::Install' => '2.22',
+ 'ExtUtils::Installed' => '2.22',
+ 'ExtUtils::Liblist' => '7.66',
+ 'ExtUtils::Liblist::Kid'=> '7.66',
+ 'ExtUtils::MM' => '7.66',
+ 'ExtUtils::MM_AIX' => '7.66',
+ 'ExtUtils::MM_Any' => '7.66',
+ 'ExtUtils::MM_BeOS' => '7.66',
+ 'ExtUtils::MM_Cygwin' => '7.66',
+ 'ExtUtils::MM_DOS' => '7.66',
+ 'ExtUtils::MM_Darwin' => '7.66',
+ 'ExtUtils::MM_MacOS' => '7.66',
+ 'ExtUtils::MM_NW5' => '7.66',
+ 'ExtUtils::MM_OS2' => '7.66',
+ 'ExtUtils::MM_OS390' => '7.66',
+ 'ExtUtils::MM_QNX' => '7.66',
+ 'ExtUtils::MM_UWIN' => '7.66',
+ 'ExtUtils::MM_Unix' => '7.66',
+ 'ExtUtils::MM_VMS' => '7.66',
+ 'ExtUtils::MM_VOS' => '7.66',
+ 'ExtUtils::MM_Win32' => '7.66',
+ 'ExtUtils::MM_Win95' => '7.66',
+ 'ExtUtils::MY' => '7.66',
+ 'ExtUtils::MakeMaker' => '7.66',
+ 'ExtUtils::MakeMaker::Config'=> '7.66',
+ 'ExtUtils::MakeMaker::Locale'=> '7.66',
+ 'ExtUtils::MakeMaker::version'=> '7.66',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.66',
+ 'ExtUtils::Mkbootstrap' => '7.66',
+ 'ExtUtils::Mksymlists' => '7.66',
+ 'ExtUtils::Packlist' => '2.22',
+ 'ExtUtils::testlib' => '7.66',
+ 'File::Find' => '1.42',
+ 'IO::Zlib' => '1.14',
+ 'JSON::PP' => '4.16',
+ 'JSON::PP::Boolean' => '4.16',
+ 'Math::Complex' => '1.6',
+ 'Math::Trig' => '1.6',
+ 'Module::CoreList' => '5.20230120',
+ 'Module::CoreList::Utils'=> '5.20230120',
+ 'POSIX' => '2.11',
+ 'Pod::Man' => '5.01',
+ 'Pod::ParseLink' => '5.01',
+ 'Pod::Text' => '5.01',
+ 'Pod::Text::Color' => '5.01',
+ 'Pod::Text::Overstrike' => '5.01',
+ 'Pod::Text::Termcap' => '5.01',
+ 'Storable' => '3.29',
+ 'XS::APItest' => '1.30',
+ 'feature' => '1.79',
+ 're' => '0.44',
+ 'threads' => '2.34',
+ },
+ removed => {
+ }
+ },
+ 5.037009 => {
+ delta_from => 5.037008,
+ changed => {
+ 'B' => '1.88',
+ 'B::Op_private' => '5.037009',
+ 'Compress::Raw::Bzip2' => '2.204',
+ 'Compress::Raw::Zlib' => '2.204',
+ 'Compress::Zlib' => '2.204',
+ 'Config' => '5.037009',
+ 'Devel::PPPort' => '3.70',
+ 'Devel::Peek' => '1.33',
+ 'Fatal' => '2.36',
+ 'File::Find' => '1.43',
+ 'IO::Compress::Adapter::Bzip2'=> '2.204',
+ 'IO::Compress::Adapter::Deflate'=> '2.204',
+ 'IO::Compress::Adapter::Identity'=> '2.204',
+ 'IO::Compress::Base' => '2.204',
+ 'IO::Compress::Base::Common'=> '2.204',
+ 'IO::Compress::Bzip2' => '2.204',
+ 'IO::Compress::Deflate' => '2.204',
+ 'IO::Compress::Gzip' => '2.204',
+ 'IO::Compress::Gzip::Constants'=> '2.204',
+ 'IO::Compress::RawDeflate'=> '2.204',
+ 'IO::Compress::Zip' => '2.204',
+ 'IO::Compress::Zip::Constants'=> '2.204',
+ 'IO::Compress::Zlib::Constants'=> '2.204',
+ 'IO::Compress::Zlib::Extra'=> '2.204',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.204',
+ 'IO::Uncompress::Adapter::Identity'=> '2.204',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.204',
+ 'IO::Uncompress::AnyInflate'=> '2.204',
+ 'IO::Uncompress::AnyUncompress'=> '2.204',
+ 'IO::Uncompress::Base' => '2.204',
+ 'IO::Uncompress::Bunzip2'=> '2.204',
+ 'IO::Uncompress::Gunzip'=> '2.204',
+ 'IO::Uncompress::Inflate'=> '2.204',
+ 'IO::Uncompress::RawInflate'=> '2.204',
+ 'IO::Uncompress::Unzip' => '2.204',
+ 'Math::Complex' => '1.61',
+ 'Math::Trig' => '1.61',
+ 'Memoize' => '1.16',
+ 'Memoize::AnyDBM_File' => '1.16',
+ 'Memoize::Expire' => '1.16',
+ 'Memoize::NDBM_File' => '1.16',
+ 'Memoize::SDBM_File' => '1.16',
+ 'Memoize::Storable' => '1.16',
+ 'Module::CoreList' => '5.20230220',
+ 'Module::CoreList::Utils'=> '5.20230220',
+ 'Opcode' => '1.64',
+ 'Term::Cap' => '1.18',
+ 'Test2' => '1.302192',
+ 'Test2::API' => '1.302192',
+ 'Test2::API::Breakage' => '1.302192',
+ 'Test2::API::Context' => '1.302192',
+ 'Test2::API::Instance' => '1.302192',
+ 'Test2::API::InterceptResult'=> '1.302192',
+ 'Test2::API::InterceptResult::Event'=> '1.302192',
+ 'Test2::API::InterceptResult::Facet'=> '1.302192',
+ 'Test2::API::InterceptResult::Hub'=> '1.302192',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302192',
+ 'Test2::API::Stack' => '1.302192',
+ 'Test2::Event' => '1.302192',
+ 'Test2::Event::Bail' => '1.302192',
+ 'Test2::Event::Diag' => '1.302192',
+ 'Test2::Event::Encoding'=> '1.302192',
+ 'Test2::Event::Exception'=> '1.302192',
+ 'Test2::Event::Fail' => '1.302192',
+ 'Test2::Event::Generic' => '1.302192',
+ 'Test2::Event::Note' => '1.302192',
+ 'Test2::Event::Ok' => '1.302192',
+ 'Test2::Event::Pass' => '1.302192',
+ 'Test2::Event::Plan' => '1.302192',
+ 'Test2::Event::Skip' => '1.302192',
+ 'Test2::Event::Subtest' => '1.302192',
+ 'Test2::Event::TAP::Version'=> '1.302192',
+ 'Test2::Event::V2' => '1.302192',
+ 'Test2::Event::Waiting' => '1.302192',
+ 'Test2::EventFacet' => '1.302192',
+ 'Test2::EventFacet::About'=> '1.302192',
+ 'Test2::EventFacet::Amnesty'=> '1.302192',
+ 'Test2::EventFacet::Assert'=> '1.302192',
+ 'Test2::EventFacet::Control'=> '1.302192',
+ 'Test2::EventFacet::Error'=> '1.302192',
+ 'Test2::EventFacet::Hub'=> '1.302192',
+ 'Test2::EventFacet::Info'=> '1.302192',
+ 'Test2::EventFacet::Info::Table'=> '1.302192',
+ 'Test2::EventFacet::Meta'=> '1.302192',
+ 'Test2::EventFacet::Parent'=> '1.302192',
+ 'Test2::EventFacet::Plan'=> '1.302192',
+ 'Test2::EventFacet::Render'=> '1.302192',
+ 'Test2::EventFacet::Trace'=> '1.302192',
+ 'Test2::Formatter' => '1.302192',
+ 'Test2::Formatter::TAP' => '1.302192',
+ 'Test2::Hub' => '1.302192',
+ 'Test2::Hub::Interceptor'=> '1.302192',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302192',
+ 'Test2::Hub::Subtest' => '1.302192',
+ 'Test2::IPC' => '1.302192',
+ 'Test2::IPC::Driver' => '1.302192',
+ 'Test2::IPC::Driver::Files'=> '1.302192',
+ 'Test2::Tools::Tiny' => '1.302192',
+ 'Test2::Util' => '1.302192',
+ 'Test2::Util::ExternalMeta'=> '1.302192',
+ 'Test2::Util::Facets2Legacy'=> '1.302192',
+ 'Test2::Util::HashBase' => '1.302192',
+ 'Test2::Util::Trace' => '1.302192',
+ 'Test::Builder' => '1.302192',
+ 'Test::Builder::Formatter'=> '1.302192',
+ 'Test::Builder::Module' => '1.302192',
+ 'Test::Builder::Tester' => '1.302192',
+ 'Test::Builder::Tester::Color'=> '1.302192',
+ 'Test::Builder::TodoDiag'=> '1.302192',
+ 'Test::More' => '1.302192',
+ 'Test::Simple' => '1.302192',
+ 'Test::Tester' => '1.302192',
+ 'Test::Tester::Capture' => '1.302192',
+ 'Test::Tester::CaptureRunner'=> '1.302192',
+ 'Test::Tester::Delegate'=> '1.302192',
+ 'Test::use::ok' => '1.302192',
+ 'Tie::File' => '1.07',
+ 'UNIVERSAL' => '1.15',
+ 'autodie' => '2.36',
+ 'autodie::Scope::Guard' => '2.36',
+ 'autodie::Scope::GuardStack'=> '2.36',
+ 'autodie::Util' => '2.36',
+ 'autodie::exception' => '2.36',
+ 'autodie::exception::system'=> '2.36',
+ 'autodie::hints' => '2.36',
+ 'autodie::skip' => '2.36',
+ 'experimental' => '0.031',
+ 'feature' => '1.80',
+ 'mro' => '1.28',
+ 'ok' => '1.302192',
+ 'parent' => '0.241',
+ 'stable' => '0.031',
+ 'warnings' => '1.62',
+ },
+ removed => {
+ }
+ },
+ 5.037010 => {
+ delta_from => 5.037009,
+ changed => {
+ 'B::Op_private' => '5.037010',
+ 'Benchmark' => '1.24',
+ 'Class::Struct' => '0.68',
+ 'Config' => '5.03701',
+ 'Config::Perl::V' => '0.36',
+ 'Cwd' => '3.89',
+ 'Data::Dumper' => '2.188',
+ 'Digest::SHA' => '6.04',
+ 'Env' => '1.06',
+ 'Math::Complex' => '1.62',
+ 'Math::Trig' => '1.62',
+ 'Module::CoreList' => '5.20230320',
+ 'Module::CoreList::Utils'=> '5.20230320',
+ 'Net::Cmd' => '3.15',
+ 'Net::Config' => '3.15',
+ 'Net::Domain' => '3.15',
+ 'Net::FTP' => '3.15',
+ 'Net::FTP::A' => '3.15',
+ 'Net::FTP::E' => '3.15',
+ 'Net::FTP::I' => '3.15',
+ 'Net::FTP::L' => '3.15',
+ 'Net::FTP::dataconn' => '3.15',
+ 'Net::NNTP' => '3.15',
+ 'Net::Netrc' => '3.15',
+ 'Net::POP3' => '3.15',
+ 'Net::SMTP' => '3.15',
+ 'Net::Time' => '3.15',
+ 'POSIX' => '2.12',
+ 'Storable' => '3.31',
+ 'Test2' => '1.302194',
+ 'Test2::API' => '1.302194',
+ 'Test2::API::Breakage' => '1.302194',
+ 'Test2::API::Context' => '1.302194',
+ 'Test2::API::Instance' => '1.302194',
+ 'Test2::API::InterceptResult'=> '1.302194',
+ 'Test2::API::InterceptResult::Event'=> '1.302194',
+ 'Test2::API::InterceptResult::Facet'=> '1.302194',
+ 'Test2::API::InterceptResult::Hub'=> '1.302194',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302194',
+ 'Test2::API::Stack' => '1.302194',
+ 'Test2::Event' => '1.302194',
+ 'Test2::Event::Bail' => '1.302194',
+ 'Test2::Event::Diag' => '1.302194',
+ 'Test2::Event::Encoding'=> '1.302194',
+ 'Test2::Event::Exception'=> '1.302194',
+ 'Test2::Event::Fail' => '1.302194',
+ 'Test2::Event::Generic' => '1.302194',
+ 'Test2::Event::Note' => '1.302194',
+ 'Test2::Event::Ok' => '1.302194',
+ 'Test2::Event::Pass' => '1.302194',
+ 'Test2::Event::Plan' => '1.302194',
+ 'Test2::Event::Skip' => '1.302194',
+ 'Test2::Event::Subtest' => '1.302194',
+ 'Test2::Event::TAP::Version'=> '1.302194',
+ 'Test2::Event::V2' => '1.302194',
+ 'Test2::Event::Waiting' => '1.302194',
+ 'Test2::EventFacet' => '1.302194',
+ 'Test2::EventFacet::About'=> '1.302194',
+ 'Test2::EventFacet::Amnesty'=> '1.302194',
+ 'Test2::EventFacet::Assert'=> '1.302194',
+ 'Test2::EventFacet::Control'=> '1.302194',
+ 'Test2::EventFacet::Error'=> '1.302194',
+ 'Test2::EventFacet::Hub'=> '1.302194',
+ 'Test2::EventFacet::Info'=> '1.302194',
+ 'Test2::EventFacet::Info::Table'=> '1.302194',
+ 'Test2::EventFacet::Meta'=> '1.302194',
+ 'Test2::EventFacet::Parent'=> '1.302194',
+ 'Test2::EventFacet::Plan'=> '1.302194',
+ 'Test2::EventFacet::Render'=> '1.302194',
+ 'Test2::EventFacet::Trace'=> '1.302194',
+ 'Test2::Formatter' => '1.302194',
+ 'Test2::Formatter::TAP' => '1.302194',
+ 'Test2::Hub' => '1.302194',
+ 'Test2::Hub::Interceptor'=> '1.302194',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302194',
+ 'Test2::Hub::Subtest' => '1.302194',
+ 'Test2::IPC' => '1.302194',
+ 'Test2::IPC::Driver' => '1.302194',
+ 'Test2::IPC::Driver::Files'=> '1.302194',
+ 'Test2::Tools::Tiny' => '1.302194',
+ 'Test2::Util' => '1.302194',
+ 'Test2::Util::ExternalMeta'=> '1.302194',
+ 'Test2::Util::Facets2Legacy'=> '1.302194',
+ 'Test2::Util::HashBase' => '1.302194',
+ 'Test2::Util::Trace' => '1.302194',
+ 'Test::Builder' => '1.302194',
+ 'Test::Builder::Formatter'=> '1.302194',
+ 'Test::Builder::Module' => '1.302194',
+ 'Test::Builder::Tester' => '1.302194',
+ 'Test::Builder::Tester::Color'=> '1.302194',
+ 'Test::Builder::TodoDiag'=> '1.302194',
+ 'Test::More' => '1.302194',
+ 'Test::Simple' => '1.302194',
+ 'Test::Tester' => '1.302194',
+ 'Test::Tester::Capture' => '1.302194',
+ 'Test::Tester::CaptureRunner'=> '1.302194',
+ 'Test::Tester::Delegate'=> '1.302194',
+ 'Test::use::ok' => '1.302194',
+ 'Time::HiRes' => '1.9774',
+ 'XS::APItest' => '1.32',
+ 'feature' => '1.81',
+ 'ok' => '1.302194',
+ 'overload' => '1.37',
+ 'threads' => '2.35',
+ 'threads::shared' => '1.67',
+ 'warnings' => '1.63',
+ 'warnings::register' => '1.05',
+ },
+ removed => {
+ }
+ },
+ 5.037011 => {
+ delta_from => 5.037010,
+ changed => {
+ 'B::Deparse' => '1.73',
+ 'B::Op_private' => '5.037011',
+ 'Config' => '5.037011',
+ 'Devel::PPPort' => '3.71',
+ 'ExtUtils::Command' => '7.70',
+ 'ExtUtils::Command::MM' => '7.70',
+ 'ExtUtils::Liblist' => '7.70',
+ 'ExtUtils::Liblist::Kid'=> '7.70',
+ 'ExtUtils::MM' => '7.70',
+ 'ExtUtils::MM_AIX' => '7.70',
+ 'ExtUtils::MM_Any' => '7.70',
+ 'ExtUtils::MM_BeOS' => '7.70',
+ 'ExtUtils::MM_Cygwin' => '7.70',
+ 'ExtUtils::MM_DOS' => '7.70',
+ 'ExtUtils::MM_Darwin' => '7.70',
+ 'ExtUtils::MM_MacOS' => '7.70',
+ 'ExtUtils::MM_NW5' => '7.70',
+ 'ExtUtils::MM_OS2' => '7.70',
+ 'ExtUtils::MM_OS390' => '7.70',
+ 'ExtUtils::MM_QNX' => '7.70',
+ 'ExtUtils::MM_UWIN' => '7.70',
+ 'ExtUtils::MM_Unix' => '7.70',
+ 'ExtUtils::MM_VMS' => '7.70',
+ 'ExtUtils::MM_VOS' => '7.70',
+ 'ExtUtils::MM_Win32' => '7.70',
+ 'ExtUtils::MM_Win95' => '7.70',
+ 'ExtUtils::MY' => '7.70',
+ 'ExtUtils::MakeMaker' => '7.70',
+ 'ExtUtils::MakeMaker::Config'=> '7.70',
+ 'ExtUtils::MakeMaker::Locale'=> '7.70',
+ 'ExtUtils::MakeMaker::version'=> '7.70',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.70',
+ 'ExtUtils::Mkbootstrap' => '7.70',
+ 'ExtUtils::Mksymlists' => '7.70',
+ 'ExtUtils::ParseXS' => '3.50',
+ 'ExtUtils::ParseXS::Constants'=> '3.50',
+ 'ExtUtils::ParseXS::CountLines'=> '3.50',
+ 'ExtUtils::ParseXS::Eval'=> '3.50',
+ 'ExtUtils::ParseXS::Utilities'=> '3.50',
+ 'ExtUtils::testlib' => '7.70',
+ 'File::Copy' => '2.41',
+ 'Locale::Maketext' => '1.33',
+ 'Module::CoreList' => '5.20230420',
+ 'Module::CoreList::Utils'=> '5.20230420',
+ 'Net::Ping' => '2.76',
+ 'feature' => '1.82',
+ 'threads' => '2.36',
+ 'threads::shared' => '1.68',
+ 'warnings' => '1.64',
+ },
+ removed => {
+ }
+ },
+ 5.036001 => {
+ delta_from => 5.036000,
+ changed => {
+ 'B::Op_private' => '5.036001',
+ 'Config' => '5.036001',
+ 'Module::CoreList' => '5.20230423',
+ 'Module::CoreList::Utils'=> '5.20230423',
+ },
+ removed => {
+ }
+ },
+ 5.038000 => {
+ delta_from => 5.037011,
+ changed => {
+ 'B::Deparse' => '1.74',
+ 'B::Op_private' => '5.038000',
+ 'CPAN' => '2.36',
+ 'CPAN::HTTP::Client' => '1.9602',
+ 'Compress::Raw::Bzip2' => '2.204_001',
+ 'Compress::Raw::Zlib' => '2.204_001',
+ 'Config' => '5.038',
+ 'Digest::MD5' => '2.58_01',
+ 'DynaLoader' => '1.54',
+ 'ExtUtils::ParseXS' => '3.51',
+ 'ExtUtils::ParseXS::Constants'=> '3.51',
+ 'ExtUtils::ParseXS::CountLines'=> '3.51',
+ 'ExtUtils::ParseXS::Eval'=> '3.51',
+ 'ExtUtils::ParseXS::Utilities'=> '3.51',
+ 'ExtUtils::Typemaps' => '3.51',
+ 'ExtUtils::Typemaps::Cmd'=> '3.51',
+ 'ExtUtils::Typemaps::InputMap'=> '3.51',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.51',
+ 'ExtUtils::Typemaps::Type'=> '3.51',
+ 'File::Glob' => '1.40',
+ 'HTTP::Tiny' => '0.086',
+ 'IO' => '1.52',
+ 'IO::Dir' => '1.52',
+ 'IO::File' => '1.52',
+ 'IO::Handle' => '1.52',
+ 'IO::Pipe' => '1.52',
+ 'IO::Poll' => '1.52',
+ 'IO::Seekable' => '1.52',
+ 'IO::Select' => '1.52',
+ 'IO::Socket' => '1.52',
+ 'IO::Socket::INET' => '1.52',
+ 'IO::Socket::IP' => '0.41_01',
+ 'IO::Socket::UNIX' => '1.52',
+ 'MIME::Base64' => '3.16_01',
+ 'MIME::QuotedPrint' => '3.16_01',
+ 'Module::CoreList' => '5.20230520',
+ 'Module::CoreList::Utils'=> '5.20230520',
+ 'POSIX' => '2.13',
+ 'SDBM_File' => '1.17',
+ 'Storable' => '3.32',
+ 'Time::HiRes' => '1.9775',
+ 'Time::Piece' => '1.3401_01',
+ 'warnings' => '1.65',
+ },
+ removed => {
+ }
+ },
+ 5.039001 => {
+ delta_from => 5.038000,
+ changed => {
+ 'B::Op_private' => '5.039001',
+ 'CPAN::Meta::Requirements'=> '2.143',
+ 'CPAN::Meta::Requirements::Range'=> '2.143',
+ 'Compress::Raw::Bzip2' => '2.205',
+ 'Compress::Raw::Zlib' => '2.205',
+ 'Compress::Zlib' => '2.205',
+ 'Config' => '5.039001',
+ 'Errno' => '1.38',
+ 'ExtUtils::CBuilder' => '0.280239',
+ 'ExtUtils::CBuilder::Base'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280239',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280239',
+ 'ExtUtils::Manifest' => '1.75',
+ 'IO::Compress::Adapter::Bzip2'=> '2.205',
+ 'IO::Compress::Adapter::Deflate'=> '2.205',
+ 'IO::Compress::Adapter::Identity'=> '2.205',
+ 'IO::Compress::Base' => '2.205',
+ 'IO::Compress::Base::Common'=> '2.205',
+ 'IO::Compress::Bzip2' => '2.205',
+ 'IO::Compress::Deflate' => '2.205',
+ 'IO::Compress::Gzip' => '2.205',
+ 'IO::Compress::Gzip::Constants'=> '2.205',
+ 'IO::Compress::RawDeflate'=> '2.205',
+ 'IO::Compress::Zip' => '2.205',
+ 'IO::Compress::Zip::Constants'=> '2.205',
+ 'IO::Compress::Zlib::Constants'=> '2.205',
+ 'IO::Compress::Zlib::Extra'=> '2.205',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.205',
+ 'IO::Uncompress::Adapter::Identity'=> '2.205',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.205',
+ 'IO::Uncompress::AnyInflate'=> '2.205',
+ 'IO::Uncompress::AnyUncompress'=> '2.205',
+ 'IO::Uncompress::Base' => '2.205',
+ 'IO::Uncompress::Bunzip2'=> '2.205',
+ 'IO::Uncompress::Gunzip'=> '2.205',
+ 'IO::Uncompress::Inflate'=> '2.205',
+ 'IO::Uncompress::RawInflate'=> '2.205',
+ 'IO::Uncompress::Unzip' => '2.205',
+ 'Math::BigFloat' => '1.999839',
+ 'Math::BigInt' => '1.999839',
+ 'Math::BigInt::Calc' => '1.999839',
+ 'Math::BigInt::FastCalc'=> '0.5014',
+ 'Math::BigInt::Lib' => '1.999839',
+ 'Module::CoreList' => '5.20230720',
+ 'Module::CoreList::Utils'=> '5.20230720',
+ 'Module::Metadata' => '1.000038',
+ 'POSIX' => '2.14',
+ 'Socket' => '2.037',
+ 'Test2' => '1.302195',
+ 'Test2::API' => '1.302195',
+ 'Test2::API::Breakage' => '1.302195',
+ 'Test2::API::Context' => '1.302195',
+ 'Test2::API::Instance' => '1.302195',
+ 'Test2::API::InterceptResult'=> '1.302195',
+ 'Test2::API::InterceptResult::Event'=> '1.302195',
+ 'Test2::API::InterceptResult::Facet'=> '1.302195',
+ 'Test2::API::InterceptResult::Hub'=> '1.302195',
+ 'Test2::API::InterceptResult::Squasher'=> '1.302195',
+ 'Test2::API::Stack' => '1.302195',
+ 'Test2::Event' => '1.302195',
+ 'Test2::Event::Bail' => '1.302195',
+ 'Test2::Event::Diag' => '1.302195',
+ 'Test2::Event::Encoding'=> '1.302195',
+ 'Test2::Event::Exception'=> '1.302195',
+ 'Test2::Event::Fail' => '1.302195',
+ 'Test2::Event::Generic' => '1.302195',
+ 'Test2::Event::Note' => '1.302195',
+ 'Test2::Event::Ok' => '1.302195',
+ 'Test2::Event::Pass' => '1.302195',
+ 'Test2::Event::Plan' => '1.302195',
+ 'Test2::Event::Skip' => '1.302195',
+ 'Test2::Event::Subtest' => '1.302195',
+ 'Test2::Event::TAP::Version'=> '1.302195',
+ 'Test2::Event::V2' => '1.302195',
+ 'Test2::Event::Waiting' => '1.302195',
+ 'Test2::EventFacet' => '1.302195',
+ 'Test2::EventFacet::About'=> '1.302195',
+ 'Test2::EventFacet::Amnesty'=> '1.302195',
+ 'Test2::EventFacet::Assert'=> '1.302195',
+ 'Test2::EventFacet::Control'=> '1.302195',
+ 'Test2::EventFacet::Error'=> '1.302195',
+ 'Test2::EventFacet::Hub'=> '1.302195',
+ 'Test2::EventFacet::Info'=> '1.302195',
+ 'Test2::EventFacet::Info::Table'=> '1.302195',
+ 'Test2::EventFacet::Meta'=> '1.302195',
+ 'Test2::EventFacet::Parent'=> '1.302195',
+ 'Test2::EventFacet::Plan'=> '1.302195',
+ 'Test2::EventFacet::Render'=> '1.302195',
+ 'Test2::EventFacet::Trace'=> '1.302195',
+ 'Test2::Formatter' => '1.302195',
+ 'Test2::Formatter::TAP' => '1.302195',
+ 'Test2::Hub' => '1.302195',
+ 'Test2::Hub::Interceptor'=> '1.302195',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302195',
+ 'Test2::Hub::Subtest' => '1.302195',
+ 'Test2::IPC' => '1.302195',
+ 'Test2::IPC::Driver' => '1.302195',
+ 'Test2::IPC::Driver::Files'=> '1.302195',
+ 'Test2::Tools::Tiny' => '1.302195',
+ 'Test2::Util' => '1.302195',
+ 'Test2::Util::ExternalMeta'=> '1.302195',
+ 'Test2::Util::Facets2Legacy'=> '1.302195',
+ 'Test2::Util::HashBase' => '1.302195',
+ 'Test2::Util::Trace' => '1.302195',
+ 'Test::Builder' => '1.302195',
+ 'Test::Builder::Formatter'=> '1.302195',
+ 'Test::Builder::Module' => '1.302195',
+ 'Test::Builder::Tester' => '1.302195',
+ 'Test::Builder::Tester::Color'=> '1.302195',
+ 'Test::Builder::TodoDiag'=> '1.302195',
+ 'Test::More' => '1.302195',
+ 'Test::Simple' => '1.302195',
+ 'Test::Tester' => '1.302195',
+ 'Test::Tester::Capture' => '1.302195',
+ 'Test::Tester::CaptureRunner'=> '1.302195',
+ 'Test::Tester::Delegate'=> '1.302195',
+ 'Test::use::ok' => '1.302195',
+ 'Text::Tabs' => '2023.0511',
+ 'Text::Wrap' => '2023.0511',
+ 'Time::HiRes' => '1.9776',
+ 'Time::Local' => '1.35',
+ 'UNIVERSAL' => '1.16',
+ 'feature' => '1.83',
+ 'ok' => '1.302195',
+ 'perlfaq' => '5.20230701',
+ 'threads' => '2.37',
+ 'warnings' => '1.66',
+ 'warnings::register' => '1.06',
+ },
+ removed => {
+ }
+ },
+ 5.039002 => {
+ delta_from => 5.039001,
+ changed => {
+ 'App::Prove' => '3.47',
+ 'App::Prove::State' => '3.47',
+ 'App::Prove::State::Result'=> '3.47',
+ 'App::Prove::State::Result::Test'=> '3.47',
+ 'B::Op_private' => '5.039002',
+ 'Compress::Raw::Bzip2' => '2.206',
+ 'Compress::Raw::Zlib' => '2.206',
+ 'Compress::Zlib' => '2.206',
+ 'Config' => '5.039002',
+ 'Cwd' => '3.90',
+ 'Devel::Peek' => '1.34',
+ 'ExtUtils::Miniperl' => '1.14',
+ 'File::Spec' => '3.90',
+ 'File::Spec::AmigaOS' => '3.90',
+ 'File::Spec::Cygwin' => '3.90',
+ 'File::Spec::Epoc' => '3.90',
+ 'File::Spec::Functions' => '3.90',
+ 'File::Spec::Mac' => '3.90',
+ 'File::Spec::OS2' => '3.90',
+ 'File::Spec::Unix' => '3.90',
+ 'File::Spec::VMS' => '3.90',
+ 'File::Spec::Win32' => '3.90',
+ 'HTTP::Tiny' => '0.088',
+ 'IO::Compress::Adapter::Bzip2'=> '2.206',
+ 'IO::Compress::Adapter::Deflate'=> '2.206',
+ 'IO::Compress::Adapter::Identity'=> '2.206',
+ 'IO::Compress::Base' => '2.206',
+ 'IO::Compress::Base::Common'=> '2.206',
+ 'IO::Compress::Bzip2' => '2.206',
+ 'IO::Compress::Deflate' => '2.206',
+ 'IO::Compress::Gzip' => '2.206',
+ 'IO::Compress::Gzip::Constants'=> '2.206',
+ 'IO::Compress::RawDeflate'=> '2.206',
+ 'IO::Compress::Zip' => '2.206',
+ 'IO::Compress::Zip::Constants'=> '2.206',
+ 'IO::Compress::Zlib::Constants'=> '2.206',
+ 'IO::Compress::Zlib::Extra'=> '2.206',
+ 'IO::Socket::IP' => '0.42',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.206',
+ 'IO::Uncompress::Adapter::Identity'=> '2.206',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.206',
+ 'IO::Uncompress::AnyInflate'=> '2.206',
+ 'IO::Uncompress::AnyUncompress'=> '2.206',
+ 'IO::Uncompress::Base' => '2.206',
+ 'IO::Uncompress::Bunzip2'=> '2.206',
+ 'IO::Uncompress::Gunzip'=> '2.206',
+ 'IO::Uncompress::Inflate'=> '2.206',
+ 'IO::Uncompress::RawInflate'=> '2.206',
+ 'IO::Uncompress::Unzip' => '2.206',
+ 'Module::CoreList' => '5.20230820',
+ 'Module::CoreList::Utils'=> '5.20230820',
+ 'NDBM_File' => '1.17',
+ 'Opcode' => '1.65',
+ 'POSIX' => '2.15',
+ 'PerlIO::scalar' => '0.32',
+ 'PerlIO::via' => '0.19',
+ 'Pod::Html' => '1.35',
+ 'Pod::Html::Util' => '1.35',
+ 'Pod::Simple' => '3.45',
+ 'Pod::Simple::BlackBox' => '3.45',
+ 'Pod::Simple::Checker' => '3.45',
+ 'Pod::Simple::Debug' => '3.45',
+ 'Pod::Simple::DumpAsText'=> '3.45',
+ 'Pod::Simple::DumpAsXML'=> '3.45',
+ 'Pod::Simple::HTML' => '3.45',
+ 'Pod::Simple::HTMLBatch'=> '3.45',
+ 'Pod::Simple::HTMLLegacy'=> '5.02',
+ 'Pod::Simple::LinkSection'=> '3.45',
+ 'Pod::Simple::Methody' => '3.45',
+ 'Pod::Simple::Progress' => '3.45',
+ 'Pod::Simple::PullParser'=> '3.45',
+ 'Pod::Simple::PullParserEndToken'=> '3.45',
+ 'Pod::Simple::PullParserStartToken'=> '3.45',
+ 'Pod::Simple::PullParserTextToken'=> '3.45',
+ 'Pod::Simple::PullParserToken'=> '3.45',
+ 'Pod::Simple::RTF' => '3.45',
+ 'Pod::Simple::Search' => '3.45',
+ 'Pod::Simple::SimpleTree'=> '3.45',
+ 'Pod::Simple::Text' => '3.45',
+ 'Pod::Simple::TextContent'=> '3.45',
+ 'Pod::Simple::TiedOutFH'=> '3.45',
+ 'Pod::Simple::Transcode'=> '3.45',
+ 'Pod::Simple::TranscodeDumb'=> '3.45',
+ 'Pod::Simple::TranscodeSmart'=> '3.45',
+ 'Pod::Simple::XHTML' => '3.45',
+ 'Pod::Simple::XMLOutStream'=> '3.45',
+ 'Safe' => '2.45',
+ 'TAP::Base' => '3.47',
+ 'TAP::Formatter::Base' => '3.47',
+ 'TAP::Formatter::Color' => '3.47',
+ 'TAP::Formatter::Console'=> '3.47',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.47',
+ 'TAP::Formatter::Console::Session'=> '3.47',
+ 'TAP::Formatter::File' => '3.47',
+ 'TAP::Formatter::File::Session'=> '3.47',
+ 'TAP::Formatter::Session'=> '3.47',
+ 'TAP::Harness' => '3.47',
+ 'TAP::Harness::Env' => '3.47',
+ 'TAP::Object' => '3.47',
+ 'TAP::Parser' => '3.47',
+ 'TAP::Parser::Aggregator'=> '3.47',
+ 'TAP::Parser::Grammar' => '3.47',
+ 'TAP::Parser::Iterator' => '3.47',
+ 'TAP::Parser::Iterator::Array'=> '3.47',
+ 'TAP::Parser::Iterator::Process'=> '3.47',
+ 'TAP::Parser::Iterator::Stream'=> '3.47',
+ 'TAP::Parser::IteratorFactory'=> '3.47',
+ 'TAP::Parser::Multiplexer'=> '3.47',
+ 'TAP::Parser::Result' => '3.47',
+ 'TAP::Parser::Result::Bailout'=> '3.47',
+ 'TAP::Parser::Result::Comment'=> '3.47',
+ 'TAP::Parser::Result::Plan'=> '3.47',
+ 'TAP::Parser::Result::Pragma'=> '3.47',
+ 'TAP::Parser::Result::Test'=> '3.47',
+ 'TAP::Parser::Result::Unknown'=> '3.47',
+ 'TAP::Parser::Result::Version'=> '3.47',
+ 'TAP::Parser::Result::YAML'=> '3.47',
+ 'TAP::Parser::ResultFactory'=> '3.47',
+ 'TAP::Parser::Scheduler'=> '3.47',
+ 'TAP::Parser::Scheduler::Job'=> '3.47',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.47',
+ 'TAP::Parser::Source' => '3.47',
+ 'TAP::Parser::SourceHandler'=> '3.47',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.47',
+ 'TAP::Parser::SourceHandler::File'=> '3.47',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.47',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.47',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.47',
+ 'TAP::Parser::YAMLish::Reader'=> '3.47',
+ 'TAP::Parser::YAMLish::Writer'=> '3.47',
+ 'Test::Harness' => '3.47',
+ 'XS::APItest' => '1.33',
+ 'builtin' => '0.009',
+ 'feature' => '1.84',
+ 'perlfaq' => '5.20230812',
+ 'strict' => '1.13',
+ 'threads' => '2.38',
+ 'warnings' => '1.67',
+ },
+ removed => {
+ }
+ },
+ 5.039003 => {
+ delta_from => 5.039002,
+ changed => {
+ 'B' => '1.89',
+ 'B::Op_private' => '5.039003',
+ 'Config' => '5.039003',
+ 'DB_File' => '1.859',
+ 'Data::Dumper' => '2.189',
+ 'Devel::PPPort' => '3.72',
+ 'ExtUtils::CBuilder' => '0.280240',
+ 'ExtUtils::CBuilder::Base'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280240',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280240',
+ 'File::Compare' => '1.1008',
+ 'File::Spec::AmigaOS' => '3.91',
+ 'File::Spec::Cygwin' => '3.91',
+ 'File::Spec::Epoc' => '3.91',
+ 'File::Spec::Functions' => '3.91',
+ 'File::Spec::Mac' => '3.91',
+ 'File::Spec::OS2' => '3.91',
+ 'File::Spec::Unix' => '3.91',
+ 'File::Spec::VMS' => '3.91',
+ 'File::Spec::Win32' => '3.91',
+ 'FindBin' => '1.54',
+ 'Getopt::Std' => '1.14',
+ 'IO' => '1.53',
+ 'IO::Dir' => '1.53',
+ 'IO::File' => '1.53',
+ 'IO::Handle' => '1.53',
+ 'IO::Pipe' => '1.53',
+ 'IO::Poll' => '1.53',
+ 'IO::Seekable' => '1.53',
+ 'IO::Select' => '1.53',
+ 'IO::Socket' => '1.53',
+ 'IO::Socket::INET' => '1.53',
+ 'IO::Socket::UNIX' => '1.53',
+ 'Module::CoreList' => '5.20230920',
+ 'Module::CoreList::Utils'=> '5.20230920',
+ 'builtin' => '0.010',
+ 'fields' => '2.25',
+ 'threads' => '2.39',
+ 'threads::shared' => '1.69',
+ },
+ removed => {
+ }
+ },
+ 5.039004 => {
+ delta_from => 5.039003,
+ changed => {
+ 'App::Prove' => '3.48',
+ 'App::Prove::State' => '3.48',
+ 'App::Prove::State::Result'=> '3.48',
+ 'App::Prove::State::Result::Test'=> '3.48',
+ 'B::Op_private' => '5.039004',
+ 'Config' => '5.039004',
+ 'File::Find' => '1.44',
+ 'File::stat' => '1.14',
+ 'Math::BigFloat' => '1.999842',
+ 'Math::BigInt' => '1.999842',
+ 'Math::BigInt::Calc' => '1.999842',
+ 'Math::BigInt::FastCalc'=> '0.5015',
+ 'Math::BigInt::Lib' => '1.999842',
+ 'Module::CoreList' => '5.20231025',
+ 'Module::CoreList::Utils'=> '5.20231025',
+ 'Net::hostent' => '1.04',
+ 'Net::netent' => '1.02',
+ 'Net::protoent' => '1.03',
+ 'Net::servent' => '1.04',
+ 'POSIX' => '2.16',
+ 'TAP::Base' => '3.48',
+ 'TAP::Formatter::Base' => '3.48',
+ 'TAP::Formatter::Color' => '3.48',
+ 'TAP::Formatter::Console'=> '3.48',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.48',
+ 'TAP::Formatter::Console::Session'=> '3.48',
+ 'TAP::Formatter::File' => '3.48',
+ 'TAP::Formatter::File::Session'=> '3.48',
+ 'TAP::Formatter::Session'=> '3.48',
+ 'TAP::Harness' => '3.48',
+ 'TAP::Harness::Env' => '3.48',
+ 'TAP::Object' => '3.48',
+ 'TAP::Parser' => '3.48',
+ 'TAP::Parser::Aggregator'=> '3.48',
+ 'TAP::Parser::Grammar' => '3.48',
+ 'TAP::Parser::Iterator' => '3.48',
+ 'TAP::Parser::Iterator::Array'=> '3.48',
+ 'TAP::Parser::Iterator::Process'=> '3.48',
+ 'TAP::Parser::Iterator::Stream'=> '3.48',
+ 'TAP::Parser::IteratorFactory'=> '3.48',
+ 'TAP::Parser::Multiplexer'=> '3.48',
+ 'TAP::Parser::Result' => '3.48',
+ 'TAP::Parser::Result::Bailout'=> '3.48',
+ 'TAP::Parser::Result::Comment'=> '3.48',
+ 'TAP::Parser::Result::Plan'=> '3.48',
+ 'TAP::Parser::Result::Pragma'=> '3.48',
+ 'TAP::Parser::Result::Test'=> '3.48',
+ 'TAP::Parser::Result::Unknown'=> '3.48',
+ 'TAP::Parser::Result::Version'=> '3.48',
+ 'TAP::Parser::Result::YAML'=> '3.48',
+ 'TAP::Parser::ResultFactory'=> '3.48',
+ 'TAP::Parser::Scheduler'=> '3.48',
+ 'TAP::Parser::Scheduler::Job'=> '3.48',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.48',
+ 'TAP::Parser::Source' => '3.48',
+ 'TAP::Parser::SourceHandler'=> '3.48',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.48',
+ 'TAP::Parser::SourceHandler::File'=> '3.48',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.48',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.48',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.48',
+ 'TAP::Parser::YAMLish::Reader'=> '3.48',
+ 'TAP::Parser::YAMLish::Writer'=> '3.48',
+ 'Term::Table' => '0.017',
+ 'Term::Table::Cell' => '0.017',
+ 'Term::Table::CellStack'=> '0.017',
+ 'Term::Table::HashBase' => '0.017',
+ 'Term::Table::LineBreak'=> '0.017',
+ 'Term::Table::Spacer' => '0.017',
+ 'Term::Table::Util' => '0.017',
+ 'Test2::AsyncSubtest' => '0.000156',
+ 'Test2::AsyncSubtest::Event::Attach'=> '0.000156',
+ 'Test2::AsyncSubtest::Event::Detach'=> '0.000156',
+ 'Test2::AsyncSubtest::Formatter'=> '0.000156',
+ 'Test2::AsyncSubtest::Hub'=> '0.000156',
+ 'Test2::Bundle' => '0.000156',
+ 'Test2::Bundle::Extended'=> '0.000156',
+ 'Test2::Bundle::More' => '0.000156',
+ 'Test2::Bundle::Simple' => '0.000156',
+ 'Test2::Compare' => '0.000156',
+ 'Test2::Compare::Array' => '0.000156',
+ 'Test2::Compare::Bag' => '0.000156',
+ 'Test2::Compare::Base' => '0.000156',
+ 'Test2::Compare::Bool' => '0.000156',
+ 'Test2::Compare::Custom'=> '0.000156',
+ 'Test2::Compare::DeepRef'=> '0.000156',
+ 'Test2::Compare::Delta' => '0.000156',
+ 'Test2::Compare::Event' => '0.000156',
+ 'Test2::Compare::EventMeta'=> '0.000156',
+ 'Test2::Compare::Float' => '0.000156',
+ 'Test2::Compare::Hash' => '0.000156',
+ 'Test2::Compare::Isa' => '0.000156',
+ 'Test2::Compare::Meta' => '0.000156',
+ 'Test2::Compare::Negatable'=> '0.000156',
+ 'Test2::Compare::Number'=> '0.000156',
+ 'Test2::Compare::Object'=> '0.000156',
+ 'Test2::Compare::OrderedSubset'=> '0.000156',
+ 'Test2::Compare::Pattern'=> '0.000156',
+ 'Test2::Compare::Ref' => '0.000156',
+ 'Test2::Compare::Regex' => '0.000156',
+ 'Test2::Compare::Scalar'=> '0.000156',
+ 'Test2::Compare::Set' => '0.000156',
+ 'Test2::Compare::String'=> '0.000156',
+ 'Test2::Compare::Undef' => '0.000156',
+ 'Test2::Compare::Wildcard'=> '0.000156',
+ 'Test2::Manual' => '0.000156',
+ 'Test2::Manual::Anatomy'=> '0.000156',
+ 'Test2::Manual::Anatomy::API'=> '0.000156',
+ 'Test2::Manual::Anatomy::Context'=> '0.000156',
+ 'Test2::Manual::Anatomy::EndToEnd'=> '0.000156',
+ 'Test2::Manual::Anatomy::Event'=> '0.000156',
+ 'Test2::Manual::Anatomy::Hubs'=> '0.000156',
+ 'Test2::Manual::Anatomy::IPC'=> '0.000156',
+ 'Test2::Manual::Anatomy::Utilities'=> '0.000156',
+ 'Test2::Manual::Concurrency'=> '0.000156',
+ 'Test2::Manual::Contributing'=> '0.000156',
+ 'Test2::Manual::Testing'=> '0.000156',
+ 'Test2::Manual::Testing::Introduction'=> '0.000156',
+ 'Test2::Manual::Testing::Migrating'=> '0.000156',
+ 'Test2::Manual::Testing::Planning'=> '0.000156',
+ 'Test2::Manual::Testing::Todo'=> '0.000156',
+ 'Test2::Manual::Tooling'=> '0.000156',
+ 'Test2::Manual::Tooling::FirstTool'=> '0.000156',
+ 'Test2::Manual::Tooling::Formatter'=> '0.000156',
+ 'Test2::Manual::Tooling::Nesting'=> '0.000156',
+ 'Test2::Manual::Tooling::Plugin::TestExit'=> '0.000156',
+ 'Test2::Manual::Tooling::Plugin::TestingDone'=> '0.000156',
+ 'Test2::Manual::Tooling::Plugin::ToolCompletes'=> '0.000156',
+ 'Test2::Manual::Tooling::Plugin::ToolStarts'=> '0.000156',
+ 'Test2::Manual::Tooling::Subtest'=> '0.000156',
+ 'Test2::Manual::Tooling::TestBuilder'=> '0.000156',
+ 'Test2::Manual::Tooling::Testing'=> '0.000156',
+ 'Test2::Mock' => '0.000156',
+ 'Test2::Plugin' => '0.000156',
+ 'Test2::Plugin::BailOnFail'=> '0.000156',
+ 'Test2::Plugin::DieOnFail'=> '0.000156',
+ 'Test2::Plugin::ExitSummary'=> '0.000156',
+ 'Test2::Plugin::SRand' => '0.000156',
+ 'Test2::Plugin::Times' => '0.000156',
+ 'Test2::Plugin::UTF8' => '0.000156',
+ 'Test2::Require' => '0.000156',
+ 'Test2::Require::AuthorTesting'=> '0.000156',
+ 'Test2::Require::EnvVar'=> '0.000156',
+ 'Test2::Require::Fork' => '0.000156',
+ 'Test2::Require::Module'=> '0.000156',
+ 'Test2::Require::Perl' => '0.000156',
+ 'Test2::Require::RealFork'=> '0.000156',
+ 'Test2::Require::Threads'=> '0.000156',
+ 'Test2::Suite' => '0.000156',
+ 'Test2::Todo' => '0.000156',
+ 'Test2::Tools' => '0.000156',
+ 'Test2::Tools::AsyncSubtest'=> '0.000156',
+ 'Test2::Tools::Basic' => '0.000156',
+ 'Test2::Tools::Class' => '0.000156',
+ 'Test2::Tools::ClassicCompare'=> '0.000156',
+ 'Test2::Tools::Compare' => '0.000156',
+ 'Test2::Tools::Defer' => '0.000156',
+ 'Test2::Tools::Encoding'=> '0.000156',
+ 'Test2::Tools::Event' => '0.000156',
+ 'Test2::Tools::Exception'=> '0.000156',
+ 'Test2::Tools::Exports' => '0.000156',
+ 'Test2::Tools::GenTemp' => '0.000156',
+ 'Test2::Tools::Grab' => '0.000156',
+ 'Test2::Tools::Mock' => '0.000156',
+ 'Test2::Tools::Ref' => '0.000156',
+ 'Test2::Tools::Refcount'=> '0.000156',
+ 'Test2::Tools::Spec' => '0.000156',
+ 'Test2::Tools::Subtest' => '0.000156',
+ 'Test2::Tools::Target' => '0.000156',
+ 'Test2::Tools::Tester' => '0.000156',
+ 'Test2::Tools::Warnings'=> '0.000156',
+ 'Test2::Util::Grabber' => '0.000156',
+ 'Test2::Util::Guard' => '0.000156',
+ 'Test2::Util::Importer' => '0.000156',
+ 'Test2::Util::Ref' => '0.000156',
+ 'Test2::Util::Stash' => '0.000156',
+ 'Test2::Util::Sub' => '0.000156',
+ 'Test2::Util::Table' => '0.000156',
+ 'Test2::Util::Table::Cell'=> '0.000156',
+ 'Test2::Util::Table::LineBreak'=> '0.000156',
+ 'Test2::Util::Term' => '0.000156',
+ 'Test2::Util::Times' => '0.000156',
+ 'Test2::V0' => '0.000156',
+ 'Test2::Workflow' => '0.000156',
+ 'Test2::Workflow::BlockBase'=> '0.000156',
+ 'Test2::Workflow::Build'=> '0.000156',
+ 'Test2::Workflow::Runner'=> '0.000156',
+ 'Test2::Workflow::Task' => '0.000156',
+ 'Test2::Workflow::Task::Action'=> '0.000156',
+ 'Test2::Workflow::Task::Group'=> '0.000156',
+ 'Test::Harness' => '3.48',
+ 'Time::gmtime' => '1.05',
+ 'Time::localtime' => '1.04',
+ 'Time::tm' => '1.01',
+ 'User::grent' => '1.05',
+ 'User::pwent' => '1.03',
+ 'XS::APItest' => '1.34',
+ 'XS::Typemap' => '0.20',
+ 'builtin' => '0.011',
+ 'feature' => '1.85',
+ 'version' => '0.9930',
+ 'version::regex' => '0.9930',
+ },
+ removed => {
+ }
+ },
+ 5.039005 => {
+ delta_from => 5.039004,
+ changed => {
+ 'B::Op_private' => '5.039005',
+ 'Benchmark' => '1.25',
+ 'Config' => '5.039005',
+ 'Encode' => '3.20',
+ 'Getopt::Long' => '2.57',
+ 'Getopt::Long::Parser' => '2.57',
+ 'IO' => '1.54',
+ 'IO::Dir' => '1.54',
+ 'IO::File' => '1.54',
+ 'IO::Handle' => '1.54',
+ 'IO::Pipe' => '1.54',
+ 'IO::Poll' => '1.54',
+ 'IO::Seekable' => '1.54',
+ 'IO::Select' => '1.54',
+ 'IO::Socket' => '1.54',
+ 'IO::Socket::INET' => '1.54',
+ 'IO::Socket::UNIX' => '1.54',
+ 'Math::BigFloat' => '2.001000',
+ 'Math::BigInt' => '2.001000',
+ 'Math::BigInt::Calc' => '2.001000',
+ 'Math::BigInt::Lib' => '2.001000',
+ 'Math::BigRat' => '2.001000',
+ 'Module::CoreList' => '5.20231120',
+ 'Module::CoreList::Utils'=> '5.20231120',
+ 'POSIX' => '2.17',
+ 'Term::Table' => '0.018',
+ 'Term::Table::Cell' => '0.018',
+ 'Term::Table::CellStack'=> '0.018',
+ 'Term::Table::HashBase' => '0.018',
+ 'Term::Table::LineBreak'=> '0.018',
+ 'Term::Table::Spacer' => '0.018',
+ 'Term::Table::Util' => '0.018',
+ 'Test2::AsyncSubtest' => '0.000159',
+ 'Test2::AsyncSubtest::Event::Attach'=> '0.000159',
+ 'Test2::AsyncSubtest::Event::Detach'=> '0.000159',
+ 'Test2::AsyncSubtest::Formatter'=> '0.000159',
+ 'Test2::AsyncSubtest::Hub'=> '0.000159',
+ 'Test2::Bundle' => '0.000159',
+ 'Test2::Bundle::Extended'=> '0.000159',
+ 'Test2::Bundle::More' => '0.000159',
+ 'Test2::Bundle::Simple' => '0.000159',
+ 'Test2::Compare' => '0.000159',
+ 'Test2::Compare::Array' => '0.000159',
+ 'Test2::Compare::Bag' => '0.000159',
+ 'Test2::Compare::Base' => '0.000159',
+ 'Test2::Compare::Bool' => '0.000159',
+ 'Test2::Compare::Custom'=> '0.000159',
+ 'Test2::Compare::DeepRef'=> '0.000159',
+ 'Test2::Compare::Delta' => '0.000159',
+ 'Test2::Compare::Event' => '0.000159',
+ 'Test2::Compare::EventMeta'=> '0.000159',
+ 'Test2::Compare::Float' => '0.000159',
+ 'Test2::Compare::Hash' => '0.000159',
+ 'Test2::Compare::Isa' => '0.000159',
+ 'Test2::Compare::Meta' => '0.000159',
+ 'Test2::Compare::Negatable'=> '0.000159',
+ 'Test2::Compare::Number'=> '0.000159',
+ 'Test2::Compare::Object'=> '0.000159',
+ 'Test2::Compare::OrderedSubset'=> '0.000159',
+ 'Test2::Compare::Pattern'=> '0.000159',
+ 'Test2::Compare::Ref' => '0.000159',
+ 'Test2::Compare::Regex' => '0.000159',
+ 'Test2::Compare::Scalar'=> '0.000159',
+ 'Test2::Compare::Set' => '0.000159',
+ 'Test2::Compare::String'=> '0.000159',
+ 'Test2::Compare::Undef' => '0.000159',
+ 'Test2::Compare::Wildcard'=> '0.000159',
+ 'Test2::Manual' => '0.000159',
+ 'Test2::Manual::Anatomy'=> '0.000159',
+ 'Test2::Manual::Anatomy::API'=> '0.000159',
+ 'Test2::Manual::Anatomy::Context'=> '0.000159',
+ 'Test2::Manual::Anatomy::EndToEnd'=> '0.000159',
+ 'Test2::Manual::Anatomy::Event'=> '0.000159',
+ 'Test2::Manual::Anatomy::Hubs'=> '0.000159',
+ 'Test2::Manual::Anatomy::IPC'=> '0.000159',
+ 'Test2::Manual::Anatomy::Utilities'=> '0.000159',
+ 'Test2::Manual::Concurrency'=> '0.000159',
+ 'Test2::Manual::Contributing'=> '0.000159',
+ 'Test2::Manual::Testing'=> '0.000159',
+ 'Test2::Manual::Testing::Introduction'=> '0.000159',
+ 'Test2::Manual::Testing::Migrating'=> '0.000159',
+ 'Test2::Manual::Testing::Planning'=> '0.000159',
+ 'Test2::Manual::Testing::Todo'=> '0.000159',
+ 'Test2::Manual::Tooling'=> '0.000159',
+ 'Test2::Manual::Tooling::FirstTool'=> '0.000159',
+ 'Test2::Manual::Tooling::Formatter'=> '0.000159',
+ 'Test2::Manual::Tooling::Nesting'=> '0.000159',
+ 'Test2::Manual::Tooling::Plugin::TestExit'=> '0.000159',
+ 'Test2::Manual::Tooling::Plugin::TestingDone'=> '0.000159',
+ 'Test2::Manual::Tooling::Plugin::ToolCompletes'=> '0.000159',
+ 'Test2::Manual::Tooling::Plugin::ToolStarts'=> '0.000159',
+ 'Test2::Manual::Tooling::Subtest'=> '0.000159',
+ 'Test2::Manual::Tooling::TestBuilder'=> '0.000159',
+ 'Test2::Manual::Tooling::Testing'=> '0.000159',
+ 'Test2::Mock' => '0.000159',
+ 'Test2::Plugin' => '0.000159',
+ 'Test2::Plugin::BailOnFail'=> '0.000159',
+ 'Test2::Plugin::DieOnFail'=> '0.000159',
+ 'Test2::Plugin::ExitSummary'=> '0.000159',
+ 'Test2::Plugin::SRand' => '0.000159',
+ 'Test2::Plugin::Times' => '0.000159',
+ 'Test2::Plugin::UTF8' => '0.000159',
+ 'Test2::Require' => '0.000159',
+ 'Test2::Require::AuthorTesting'=> '0.000159',
+ 'Test2::Require::EnvVar'=> '0.000159',
+ 'Test2::Require::Fork' => '0.000159',
+ 'Test2::Require::Module'=> '0.000159',
+ 'Test2::Require::Perl' => '0.000159',
+ 'Test2::Require::RealFork'=> '0.000159',
+ 'Test2::Require::Threads'=> '0.000159',
+ 'Test2::Suite' => '0.000159',
+ 'Test2::Todo' => '0.000159',
+ 'Test2::Tools' => '0.000159',
+ 'Test2::Tools::AsyncSubtest'=> '0.000159',
+ 'Test2::Tools::Basic' => '0.000159',
+ 'Test2::Tools::Class' => '0.000159',
+ 'Test2::Tools::ClassicCompare'=> '0.000159',
+ 'Test2::Tools::Compare' => '0.000159',
+ 'Test2::Tools::Defer' => '0.000159',
+ 'Test2::Tools::Encoding'=> '0.000159',
+ 'Test2::Tools::Event' => '0.000159',
+ 'Test2::Tools::Exception'=> '0.000159',
+ 'Test2::Tools::Exports' => '0.000159',
+ 'Test2::Tools::GenTemp' => '0.000159',
+ 'Test2::Tools::Grab' => '0.000159',
+ 'Test2::Tools::Mock' => '0.000159',
+ 'Test2::Tools::Ref' => '0.000159',
+ 'Test2::Tools::Refcount'=> '0.000159',
+ 'Test2::Tools::Spec' => '0.000159',
+ 'Test2::Tools::Subtest' => '0.000159',
+ 'Test2::Tools::Target' => '0.000159',
+ 'Test2::Tools::Tester' => '0.000159',
+ 'Test2::Tools::Warnings'=> '0.000159',
+ 'Test2::Util::Grabber' => '0.000159',
+ 'Test2::Util::Guard' => '0.000159',
+ 'Test2::Util::Importer' => '0.000159',
+ 'Test2::Util::Ref' => '0.000159',
+ 'Test2::Util::Stash' => '0.000159',
+ 'Test2::Util::Sub' => '0.000159',
+ 'Test2::Util::Table' => '0.000159',
+ 'Test2::Util::Table::Cell'=> '0.000159',
+ 'Test2::Util::Table::LineBreak'=> '0.000159',
+ 'Test2::Util::Term' => '0.000159',
+ 'Test2::Util::Times' => '0.000159',
+ 'Test2::V0' => '0.000159',
+ 'Test2::Workflow' => '0.000159',
+ 'Test2::Workflow::BlockBase'=> '0.000159',
+ 'Test2::Workflow::Build'=> '0.000159',
+ 'Test2::Workflow::Runner'=> '0.000159',
+ 'Test2::Workflow::Task' => '0.000159',
+ 'Test2::Workflow::Task::Action'=> '0.000159',
+ 'Test2::Workflow::Task::Group'=> '0.000159',
+ 'builtin' => '0.012',
+ 'locale' => '1.11',
+ },
+ removed => {
+ }
+ },
+ 5.034002 => {
+ delta_from => 5.034001,
+ changed => {
+ 'B::Op_private' => '5.034002',
+ 'Config' => '5.034002',
+ 'Module::CoreList' => '5.20231125',
+ 'Module::CoreList::Utils'=> '5.20231125',
+ },
+ removed => {
+ }
+ },
+ 5.036002 => {
+ delta_from => 5.036001,
+ changed => {
+ 'B::Op_private' => '5.036002',
+ 'Config' => '5.036002',
+ 'Module::CoreList' => '5.20231125',
+ 'Module::CoreList::Utils'=> '5.20231125',
+ },
+ removed => {
+ }
+ },
+ 5.038001 => {
+ delta_from => 5.038000,
+ changed => {
+ 'B::Op_private' => '5.038001',
+ 'Config' => '5.038001',
+ 'Module::CoreList' => '5.20231125',
+ 'Module::CoreList::Utils'=> '5.20231125',
+ },
+ removed => {
+ }
+ },
+ 5.034003 => {
+ delta_from => 5.034002,
+ changed => {
+ 'B::Op_private' => '5.034003',
+ 'Config' => '5.034003',
+ 'Module::CoreList' => '5.20231129',
+ 'Module::CoreList::Utils'=> '5.20231129',
+ },
+ removed => {
+ }
+ },
+ 5.036003 => {
+ delta_from => 5.036002,
+ changed => {
+ 'B::Op_private' => '5.036003',
+ 'Config' => '5.036003',
+ 'Module::CoreList' => '5.20231129',
+ 'Module::CoreList::Utils'=> '5.20231129',
+ },
+ removed => {
+ }
+ },
+ 5.038002 => {
+ delta_from => 5.038001,
+ changed => {
+ 'B::Op_private' => '5.038002',
+ 'Config' => '5.038002',
+ 'Module::CoreList' => '5.20231129',
+ 'Module::CoreList::Utils'=> '5.20231129',
+ },
+ removed => {
+ }
+ },
);
sub is_core
@@ -19727,6 +22338,279 @@ sub is_core
removed => {
}
},
+ 5.035000 => {
+ delta_from => 5.034,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035001 => {
+ delta_from => 5.035,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035002 => {
+ delta_from => 5.035001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035003 => {
+ delta_from => 5.035002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035004 => {
+ delta_from => 5.035003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035005 => {
+ delta_from => 5.035004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035006 => {
+ delta_from => 5.035005,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035007 => {
+ delta_from => 5.035006,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035008 => {
+ delta_from => 5.035007,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035009 => {
+ delta_from => 5.035008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.034001 => {
+ delta_from => 5.034000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035010 => {
+ delta_from => 5.035009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035011 => {
+ delta_from => 5.035010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036000 => {
+ delta_from => 5.035011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037000 => {
+ delta_from => 5.036000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037001 => {
+ delta_from => 5.037000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037002 => {
+ delta_from => 5.037001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037003 => {
+ delta_from => 5.037002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037004 => {
+ delta_from => 5.037003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037005 => {
+ delta_from => 5.037004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037006 => {
+ delta_from => 5.037005,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037007 => {
+ delta_from => 5.037006,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037008 => {
+ delta_from => 5.037007,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037009 => {
+ delta_from => 5.037008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037010 => {
+ delta_from => 5.037009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037011 => {
+ delta_from => 5.037010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036001 => {
+ delta_from => 5.036,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.038000 => {
+ delta_from => 5.037011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039001 => {
+ delta_from => 5.038,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039002 => {
+ delta_from => 5.039001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039003 => {
+ delta_from => 5.039002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039004 => {
+ delta_from => 5.039003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039005 => {
+ delta_from => 5.039004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.034002 => {
+ delta_from => 5.034001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036002 => {
+ delta_from => 5.036001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.038001 => {
+ delta_from => 5.038,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.034003 => {
+ delta_from => 5.034002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036003 => {
+ delta_from => 5.036002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.038002 => {
+ delta_from => 5.038001,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
%deprecated = _undelta(\%deprecated);
@@ -19773,6 +22657,7 @@ sub is_core
'CPAN::Meta::Merge' => 'cpan',
'CPAN::Meta::Prereqs' => 'cpan',
'CPAN::Meta::Requirements'=> 'cpan',
+ 'CPAN::Meta::Requirements::Range'=> 'cpan',
'CPAN::Meta::Spec' => 'cpan',
'CPAN::Meta::Validator' => 'cpan',
'CPAN::Meta::YAML' => 'cpan',
@@ -19869,6 +22754,7 @@ sub is_core
'File::Temp' => 'cpan',
'Filter::Util::Call' => 'cpan',
'Getopt::Long' => 'cpan',
+ 'Getopt::Long::Parser' => 'cpan',
'HTTP::Tiny' => 'cpan',
'IO::Compress::Adapter::Bzip2'=> 'cpan',
'IO::Compress::Adapter::Deflate'=> 'cpan',
@@ -19917,13 +22803,10 @@ sub is_core
'Math::BigInt::Lib' => 'cpan',
'Math::BigInt::Trace' => 'cpan',
'Math::BigRat' => 'cpan',
- 'Math::Complex' => 'cpan',
- 'Math::Trig' => 'cpan',
+ 'Math::BigRat::Trace' => 'cpan',
'Memoize' => 'cpan',
'Memoize::AnyDBM_File' => 'cpan',
'Memoize::Expire' => 'cpan',
- 'Memoize::ExpireFile' => 'cpan',
- 'Memoize::ExpireTest' => 'cpan',
'Memoize::NDBM_File' => 'cpan',
'Memoize::SDBM_File' => 'cpan',
'Memoize::Storable' => 'cpan',
@@ -20051,6 +22934,13 @@ sub is_core
'TAP::Parser::YAMLish::Writer'=> 'cpan',
'Term::ANSIColor' => 'cpan',
'Term::Cap' => 'cpan',
+ 'Term::Table' => 'cpan',
+ 'Term::Table::Cell' => 'cpan',
+ 'Term::Table::CellStack'=> 'cpan',
+ 'Term::Table::HashBase' => 'cpan',
+ 'Term::Table::LineBreak'=> 'cpan',
+ 'Term::Table::Spacer' => 'cpan',
+ 'Term::Table::Util' => 'cpan',
'Test2' => 'cpan',
'Test2::API' => 'cpan',
'Test2::API::Breakage' => 'cpan',
@@ -20062,6 +22952,41 @@ sub is_core
'Test2::API::InterceptResult::Hub'=> 'cpan',
'Test2::API::InterceptResult::Squasher'=> 'cpan',
'Test2::API::Stack' => 'cpan',
+ 'Test2::AsyncSubtest' => 'cpan',
+ 'Test2::AsyncSubtest::Event::Attach'=> 'cpan',
+ 'Test2::AsyncSubtest::Event::Detach'=> 'cpan',
+ 'Test2::AsyncSubtest::Formatter'=> 'cpan',
+ 'Test2::AsyncSubtest::Hub'=> 'cpan',
+ 'Test2::Bundle' => 'cpan',
+ 'Test2::Bundle::Extended'=> 'cpan',
+ 'Test2::Bundle::More' => 'cpan',
+ 'Test2::Bundle::Simple' => 'cpan',
+ 'Test2::Compare' => 'cpan',
+ 'Test2::Compare::Array' => 'cpan',
+ 'Test2::Compare::Bag' => 'cpan',
+ 'Test2::Compare::Base' => 'cpan',
+ 'Test2::Compare::Bool' => 'cpan',
+ 'Test2::Compare::Custom'=> 'cpan',
+ 'Test2::Compare::DeepRef'=> 'cpan',
+ 'Test2::Compare::Delta' => 'cpan',
+ 'Test2::Compare::Event' => 'cpan',
+ 'Test2::Compare::EventMeta'=> 'cpan',
+ 'Test2::Compare::Float' => 'cpan',
+ 'Test2::Compare::Hash' => 'cpan',
+ 'Test2::Compare::Isa' => 'cpan',
+ 'Test2::Compare::Meta' => 'cpan',
+ 'Test2::Compare::Negatable'=> 'cpan',
+ 'Test2::Compare::Number'=> 'cpan',
+ 'Test2::Compare::Object'=> 'cpan',
+ 'Test2::Compare::OrderedSubset'=> 'cpan',
+ 'Test2::Compare::Pattern'=> 'cpan',
+ 'Test2::Compare::Ref' => 'cpan',
+ 'Test2::Compare::Regex' => 'cpan',
+ 'Test2::Compare::Scalar'=> 'cpan',
+ 'Test2::Compare::Set' => 'cpan',
+ 'Test2::Compare::String'=> 'cpan',
+ 'Test2::Compare::Undef' => 'cpan',
+ 'Test2::Compare::Wildcard'=> 'cpan',
'Test2::Event' => 'cpan',
'Test2::Event::Bail' => 'cpan',
'Test2::Event::Diag' => 'cpan',
@@ -20101,12 +23026,97 @@ sub is_core
'Test2::IPC' => 'cpan',
'Test2::IPC::Driver' => 'cpan',
'Test2::IPC::Driver::Files'=> 'cpan',
+ 'Test2::Manual' => 'cpan',
+ 'Test2::Manual::Anatomy'=> 'cpan',
+ 'Test2::Manual::Anatomy::API'=> 'cpan',
+ 'Test2::Manual::Anatomy::Context'=> 'cpan',
+ 'Test2::Manual::Anatomy::EndToEnd'=> 'cpan',
+ 'Test2::Manual::Anatomy::Event'=> 'cpan',
+ 'Test2::Manual::Anatomy::Hubs'=> 'cpan',
+ 'Test2::Manual::Anatomy::IPC'=> 'cpan',
+ 'Test2::Manual::Anatomy::Utilities'=> 'cpan',
+ 'Test2::Manual::Concurrency'=> 'cpan',
+ 'Test2::Manual::Contributing'=> 'cpan',
+ 'Test2::Manual::Testing'=> 'cpan',
+ 'Test2::Manual::Testing::Introduction'=> 'cpan',
+ 'Test2::Manual::Testing::Migrating'=> 'cpan',
+ 'Test2::Manual::Testing::Planning'=> 'cpan',
+ 'Test2::Manual::Testing::Todo'=> 'cpan',
+ 'Test2::Manual::Tooling'=> 'cpan',
+ 'Test2::Manual::Tooling::FirstTool'=> 'cpan',
+ 'Test2::Manual::Tooling::Formatter'=> 'cpan',
+ 'Test2::Manual::Tooling::Nesting'=> 'cpan',
+ 'Test2::Manual::Tooling::Plugin::TestExit'=> 'cpan',
+ 'Test2::Manual::Tooling::Plugin::TestingDone'=> 'cpan',
+ 'Test2::Manual::Tooling::Plugin::ToolCompletes'=> 'cpan',
+ 'Test2::Manual::Tooling::Plugin::ToolStarts'=> 'cpan',
+ 'Test2::Manual::Tooling::Subtest'=> 'cpan',
+ 'Test2::Manual::Tooling::TestBuilder'=> 'cpan',
+ 'Test2::Manual::Tooling::Testing'=> 'cpan',
+ 'Test2::Mock' => 'cpan',
+ 'Test2::Plugin' => 'cpan',
+ 'Test2::Plugin::BailOnFail'=> 'cpan',
+ 'Test2::Plugin::DieOnFail'=> 'cpan',
+ 'Test2::Plugin::ExitSummary'=> 'cpan',
+ 'Test2::Plugin::SRand' => 'cpan',
+ 'Test2::Plugin::Times' => 'cpan',
+ 'Test2::Plugin::UTF8' => 'cpan',
+ 'Test2::Require' => 'cpan',
+ 'Test2::Require::AuthorTesting'=> 'cpan',
+ 'Test2::Require::EnvVar'=> 'cpan',
+ 'Test2::Require::Fork' => 'cpan',
+ 'Test2::Require::Module'=> 'cpan',
+ 'Test2::Require::Perl' => 'cpan',
+ 'Test2::Require::RealFork'=> 'cpan',
+ 'Test2::Require::Threads'=> 'cpan',
+ 'Test2::Suite' => 'cpan',
+ 'Test2::Todo' => 'cpan',
+ 'Test2::Tools' => 'cpan',
+ 'Test2::Tools::AsyncSubtest'=> 'cpan',
+ 'Test2::Tools::Basic' => 'cpan',
+ 'Test2::Tools::Class' => 'cpan',
+ 'Test2::Tools::ClassicCompare'=> 'cpan',
+ 'Test2::Tools::Compare' => 'cpan',
+ 'Test2::Tools::Defer' => 'cpan',
+ 'Test2::Tools::Encoding'=> 'cpan',
+ 'Test2::Tools::Event' => 'cpan',
+ 'Test2::Tools::Exception'=> 'cpan',
+ 'Test2::Tools::Exports' => 'cpan',
+ 'Test2::Tools::GenTemp' => 'cpan',
+ 'Test2::Tools::Grab' => 'cpan',
+ 'Test2::Tools::Mock' => 'cpan',
+ 'Test2::Tools::Ref' => 'cpan',
+ 'Test2::Tools::Refcount'=> 'cpan',
+ 'Test2::Tools::Spec' => 'cpan',
+ 'Test2::Tools::Subtest' => 'cpan',
+ 'Test2::Tools::Target' => 'cpan',
+ 'Test2::Tools::Tester' => 'cpan',
'Test2::Tools::Tiny' => 'cpan',
+ 'Test2::Tools::Warnings'=> 'cpan',
'Test2::Util' => 'cpan',
'Test2::Util::ExternalMeta'=> 'cpan',
'Test2::Util::Facets2Legacy'=> 'cpan',
+ 'Test2::Util::Grabber' => 'cpan',
+ 'Test2::Util::Guard' => 'cpan',
'Test2::Util::HashBase' => 'cpan',
+ 'Test2::Util::Importer' => 'cpan',
+ 'Test2::Util::Ref' => 'cpan',
+ 'Test2::Util::Stash' => 'cpan',
+ 'Test2::Util::Sub' => 'cpan',
+ 'Test2::Util::Table' => 'cpan',
+ 'Test2::Util::Table::Cell'=> 'cpan',
+ 'Test2::Util::Table::LineBreak'=> 'cpan',
+ 'Test2::Util::Term' => 'cpan',
+ 'Test2::Util::Times' => 'cpan',
'Test2::Util::Trace' => 'cpan',
+ 'Test2::V0' => 'cpan',
+ 'Test2::Workflow' => 'cpan',
+ 'Test2::Workflow::BlockBase'=> 'cpan',
+ 'Test2::Workflow::Build'=> 'cpan',
+ 'Test2::Workflow::Runner'=> 'cpan',
+ 'Test2::Workflow::Task' => 'cpan',
+ 'Test2::Workflow::Task::Action'=> 'cpan',
+ 'Test2::Workflow::Task::Group'=> 'cpan',
'Test::Builder' => 'cpan',
'Test::Builder::Formatter'=> 'cpan',
'Test::Builder::IO::Scalar'=> 'cpan',
@@ -20149,6 +23159,7 @@ sub is_core
'autodie::exception::system'=> 'cpan',
'autodie::hints' => 'cpan',
'autodie::skip' => 'cpan',
+ 'bigfloat' => 'cpan',
'bigint' => 'cpan',
'bignum' => 'cpan',
'bigrat' => 'cpan',
@@ -20157,6 +23168,7 @@ sub is_core
'ok' => 'cpan',
'parent' => 'cpan',
'perlfaq' => 'cpan',
+ 'stable' => 'cpan',
'version' => 'cpan',
'version::regex' => 'cpan',
);
@@ -20201,6 +23213,7 @@ sub is_core
'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/Perl-Toolchain-Gang/CPAN-Meta-Requirements/issues',
+ 'CPAN::Meta::Requirements::Range'=> 'https://github.com/Perl-Toolchain-Gang/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/Perl-Toolchain-Gang/YAML-Tiny/issues',
@@ -20296,8 +23309,9 @@ sub is_core
'File::Path' => undef,
'File::Temp' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=File-Temp',
'Filter::Util::Call' => undef,
- 'Getopt::Long' => undef,
- 'HTTP::Tiny' => 'https://github.com/chansen/p5-http-tiny/issues',
+ 'Getopt::Long' => 'https://github.com/sciurius/perl-Getopt-Long/issues',
+ 'Getopt::Long::Parser' => 'https://github.com/sciurius/perl-Getopt-Long/issues',
+ 'HTTP::Tiny' => 'https://github.com/Perl-Toolchain-Gang/HTTP-Tiny/issues',
'IO::Compress::Adapter::Bzip2'=> 'https://github.com/pmqs/IO-Compress/issues',
'IO::Compress::Adapter::Deflate'=> 'https://github.com/pmqs/IO-Compress/issues',
'IO::Compress::Adapter::Identity'=> 'https://github.com/pmqs/IO-Compress/issues',
@@ -20345,16 +23359,13 @@ sub is_core
'Math::BigInt::Lib' => undef,
'Math::BigInt::Trace' => undef,
'Math::BigRat' => undef,
- 'Math::Complex' => undef,
- 'Math::Trig' => undef,
- 'Memoize' => undef,
- 'Memoize::AnyDBM_File' => undef,
- 'Memoize::Expire' => undef,
- 'Memoize::ExpireFile' => undef,
- 'Memoize::ExpireTest' => undef,
- 'Memoize::NDBM_File' => undef,
- 'Memoize::SDBM_File' => undef,
- 'Memoize::Storable' => undef,
+ 'Math::BigRat::Trace' => undef,
+ 'Memoize' => 'https://rt.cpan.org/Dist/Display.html?Name=Memoize',
+ 'Memoize::AnyDBM_File' => 'https://rt.cpan.org/Dist/Display.html?Name=Memoize',
+ 'Memoize::Expire' => 'https://rt.cpan.org/Dist/Display.html?Name=Memoize',
+ 'Memoize::NDBM_File' => 'https://rt.cpan.org/Dist/Display.html?Name=Memoize',
+ 'Memoize::SDBM_File' => 'https://rt.cpan.org/Dist/Display.html?Name=Memoize',
+ 'Memoize::Storable' => 'https://rt.cpan.org/Dist/Display.html?Name=Memoize',
'Module::Load' => undef,
'Module::Load::Conditional'=> undef,
'Module::Loaded' => undef,
@@ -20380,8 +23391,8 @@ sub is_core
'PerlIO::via::QuotedPrint'=> undef,
'Pod::Checker' => undef,
'Pod::Escapes' => undef,
- 'Pod::Man' => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
- 'Pod::ParseLink' => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
+ 'Pod::Man' => 'https://github.com/rra/podlators/issues',
+ 'Pod::ParseLink' => 'https://github.com/rra/podlators/issues',
'Pod::Perldoc' => undef,
'Pod::Perldoc::BaseTo' => undef,
'Pod::Perldoc::GetOptsOO'=> undef,
@@ -20424,10 +23435,10 @@ sub is_core
'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' => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
- 'Pod::Text::Color' => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
- 'Pod::Text::Overstrike' => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
- 'Pod::Text::Termcap' => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
+ 'Pod::Text' => 'https://github.com/rra/podlators/issues',
+ 'Pod::Text::Color' => 'https://github.com/rra/podlators/issues',
+ 'Pod::Text::Overstrike' => 'https://github.com/rra/podlators/issues',
+ 'Pod::Text::Termcap' => 'https://github.com/rra/podlators/issues',
'Pod::Usage' => 'https://github.com/Dual-Life/Pod-Usage/issues',
'Scalar::Util' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils',
'Socket' => undef,
@@ -20479,6 +23490,13 @@ sub is_core
'TAP::Parser::YAMLish::Writer'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
'Term::ANSIColor' => 'https://rt.cpan.org/Dist/Display.html?Name=Term-ANSIColor',
'Term::Cap' => undef,
+ 'Term::Table' => 'http://github.com/exodist/Term-Table/issues',
+ 'Term::Table::Cell' => 'http://github.com/exodist/Term-Table/issues',
+ 'Term::Table::CellStack'=> 'http://github.com/exodist/Term-Table/issues',
+ 'Term::Table::HashBase' => 'http://github.com/exodist/Term-Table/issues',
+ 'Term::Table::LineBreak'=> 'http://github.com/exodist/Term-Table/issues',
+ 'Term::Table::Spacer' => 'http://github.com/exodist/Term-Table/issues',
+ 'Term::Table::Util' => 'http://github.com/exodist/Term-Table/issues',
'Test2' => 'http://github.com/Test-More/test-more/issues',
'Test2::API' => 'http://github.com/Test-More/test-more/issues',
'Test2::API::Breakage' => 'http://github.com/Test-More/test-more/issues',
@@ -20490,6 +23508,41 @@ sub is_core
'Test2::API::InterceptResult::Hub'=> 'http://github.com/Test-More/test-more/issues',
'Test2::API::InterceptResult::Squasher'=> 'http://github.com/Test-More/test-more/issues',
'Test2::API::Stack' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::AsyncSubtest' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::AsyncSubtest::Event::Attach'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::AsyncSubtest::Event::Detach'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::AsyncSubtest::Formatter'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::AsyncSubtest::Hub'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Bundle' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Bundle::Extended'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Bundle::More' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Bundle::Simple' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Array' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Bag' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Base' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Bool' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Custom'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::DeepRef'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Delta' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Event' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::EventMeta'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Float' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Hash' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Isa' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Meta' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Negatable'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Number'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Object'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::OrderedSubset'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Pattern'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Ref' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Regex' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Scalar'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Set' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::String'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Undef' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Compare::Wildcard'=> 'http://github.com/Test-More/Test2-Suite/issues',
'Test2::Event' => 'http://github.com/Test-More/test-more/issues',
'Test2::Event::Bail' => 'http://github.com/Test-More/test-more/issues',
'Test2::Event::Diag' => 'http://github.com/Test-More/test-more/issues',
@@ -20529,12 +23582,97 @@ sub is_core
'Test2::IPC' => 'http://github.com/Test-More/test-more/issues',
'Test2::IPC::Driver' => 'http://github.com/Test-More/test-more/issues',
'Test2::IPC::Driver::Files'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Manual' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::API'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::Context'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::EndToEnd'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::Event'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::Hubs'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::IPC'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Anatomy::Utilities'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Concurrency'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Contributing'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Testing'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Testing::Introduction'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Testing::Migrating'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Testing::Planning'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Testing::Todo'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::FirstTool'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Formatter'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Nesting'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Plugin::TestExit'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Plugin::TestingDone'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Plugin::ToolCompletes'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Plugin::ToolStarts'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Subtest'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::TestBuilder'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Manual::Tooling::Testing'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Mock' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin::BailOnFail'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin::DieOnFail'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin::ExitSummary'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin::SRand' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin::Times' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Plugin::UTF8' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::AuthorTesting'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::EnvVar'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::Fork' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::Module'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::Perl' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::RealFork'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Require::Threads'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Suite' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Todo' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::AsyncSubtest'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Basic' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Class' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::ClassicCompare'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Compare' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Defer' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Encoding'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Event' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Exception'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Exports' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::GenTemp' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Grab' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Mock' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Ref' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Refcount'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Spec' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Subtest' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Target' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Tools::Tester' => 'http://github.com/Test-More/Test2-Suite/issues',
'Test2::Tools::Tiny' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Tools::Warnings'=> 'http://github.com/Test-More/Test2-Suite/issues',
'Test2::Util' => 'http://github.com/Test-More/test-more/issues',
'Test2::Util::ExternalMeta'=> 'http://github.com/Test-More/test-more/issues',
'Test2::Util::Facets2Legacy'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Util::Grabber' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Guard' => 'http://github.com/Test-More/Test2-Suite/issues',
'Test2::Util::HashBase' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Util::Importer' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Ref' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Stash' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Sub' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Table' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Table::Cell'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Table::LineBreak'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Term' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Util::Times' => 'http://github.com/Test-More/Test2-Suite/issues',
'Test2::Util::Trace' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::V0' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow::BlockBase'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow::Build'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow::Runner'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow::Task' => 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow::Task::Action'=> 'http://github.com/Test-More/Test2-Suite/issues',
+ 'Test2::Workflow::Task::Group'=> 'http://github.com/Test-More/Test2-Suite/issues',
'Test::Builder' => 'http://github.com/Test-More/test-more/issues',
'Test::Builder::Formatter'=> 'http://github.com/Test-More/test-more/issues',
'Test::Builder::IO::Scalar'=> 'http://github.com/Test-More/test-more/issues',
@@ -20552,8 +23690,8 @@ sub is_core
'Test::use::ok' => 'http://github.com/Test-More/test-more/issues',
'Text::Balanced' => undef,
'Text::ParseWords' => undef,
- 'Text::Tabs' => undef,
- 'Text::Wrap' => undef,
+ 'Text::Tabs' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Text-Tabs%2BWrap',
+ 'Text::Wrap' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Text-Tabs%2BWrap',
'Tie::RefHash' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Tie-RefHash',
'Time::Local' => 'https://github.com/houseabsolute/Time-Local/issues',
'Time::Piece' => undef,
@@ -20577,6 +23715,7 @@ sub is_core
'autodie::exception::system'=> 'https://github.com/pjf/autodie/issues',
'autodie::hints' => 'https://github.com/pjf/autodie/issues',
'autodie::skip' => 'https://github.com/pjf/autodie/issues',
+ 'bigfloat' => undef,
'bigint' => undef,
'bignum' => undef,
'bigrat' => undef,
@@ -20585,6 +23724,7 @@ sub is_core
'ok' => 'http://github.com/Test-More/test-more/issues',
'parent' => undef,
'perlfaq' => 'https://github.com/perl-doc-cats/perlfaq/issues',
+ 'stable' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=experimental',
'version' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
'version::regex' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList/Utils.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
index dfe62c5329..3c3d215ca4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
use Module::CoreList;
-our $VERSION = '5.20210520';
+our $VERSION = '5.20231129';
our %utilities;
sub utilities {
@@ -1706,6 +1706,279 @@ my %delta = (
removed => {
}
},
+ 5.035000 => {
+ delta_from => 5.034000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035001 => {
+ delta_from => 5.035,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035002 => {
+ delta_from => 5.035001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035003 => {
+ delta_from => 5.035002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035004 => {
+ delta_from => 5.035003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035005 => {
+ delta_from => 5.035004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035006 => {
+ delta_from => 5.035005,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035007 => {
+ delta_from => 5.035006,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035008 => {
+ delta_from => 5.035007,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035009 => {
+ delta_from => 5.035008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.034001 => {
+ delta_from => 5.034000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035010 => {
+ delta_from => 5.035009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.035011 => {
+ delta_from => 5.035010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036000 => {
+ delta_from => 5.035011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037000 => {
+ delta_from => 5.036000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037001 => {
+ delta_from => 5.037,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037002 => {
+ delta_from => 5.037001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037003 => {
+ delta_from => 5.037002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037004 => {
+ delta_from => 5.037003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037005 => {
+ delta_from => 5.037004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037006 => {
+ delta_from => 5.037005,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037007 => {
+ delta_from => 5.037006,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037008 => {
+ delta_from => 5.037007,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037009 => {
+ delta_from => 5.037008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037010 => {
+ delta_from => 5.037009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.037011 => {
+ delta_from => 5.03701,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036001 => {
+ delta_from => 5.036000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.038000 => {
+ delta_from => 5.037011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039001 => {
+ delta_from => 5.038,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039002 => {
+ delta_from => 5.039001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039003 => {
+ delta_from => 5.039002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039004 => {
+ delta_from => 5.039003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.039005 => {
+ delta_from => 5.039004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.034002 => {
+ delta_from => 5.034001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036002 => {
+ delta_from => 5.036001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.038001 => {
+ delta_from => 5.038000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.034003 => {
+ delta_from => 5.034002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.036003 => {
+ delta_from => 5.036002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.038002 => {
+ delta_from => 5.038001,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
%utilities = Module::CoreList::_undelta(\%delta);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm
index 15b0e01c25..067929053a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm
@@ -5,7 +5,7 @@ use strict;
use warnings;
use overload ();
-our $VERSION = '0.68';
+our $VERSION = '0.69';
sub NEXT::ELSEWHERE::ancestors
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm
index 41df8a264a..f10df74354 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm
@@ -1,7 +1,7 @@
# Net::Cmd.pm
#
# Copyright (C) 1995-2006 Graham Barr. All rights reserved.
-# Copyright (C) 2013-2016, 2020 Steve Hay. All rights reserved.
+# Copyright (C) 2013-2016, 2020, 2022 Steve Hay. All rights reserved.
# This module is free software; you can redistribute it and/or modify it under
# the same terms as Perl itself, i.e. under the terms of either the GNU General
# Public License or the Artistic License, as specified in the F<LICENCE> file.
@@ -19,14 +19,14 @@ use Symbol 'gensym';
use Errno 'EINTR';
BEGIN {
- if ($^O eq 'os390') {
+ if (ord "A" == 193) {
require Convert::EBCDIC;
# Convert::EBCDIC->import;
}
}
-our $VERSION = "3.13";
+our $VERSION = "3.15";
our @ISA = qw(Exporter);
our @EXPORT = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING);
@@ -41,7 +41,7 @@ use constant DEF_REPLY_CODE => 421;
my %debug = ();
-my $tr = $^O eq 'os390' ? Convert::EBCDIC->new() : undef;
+my $tr = ord "A" == 193 ? Convert::EBCDIC->new() : undef;
sub toebcdic {
my $cmd = shift;
@@ -887,7 +887,7 @@ libnet as of version 1.22_02.
Copyright (C) 1995-2006 Graham Barr. All rights reserved.
-Copyright (C) 2013-2016, 2020 Steve Hay. All rights reserved.
+Copyright (C) 2013-2016, 2020, 2022 Steve Hay. All rights reserved.
=head1 LICENCE
@@ -897,11 +897,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm
index 2f8417f01a..bdbd0034d8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm
@@ -18,7 +18,7 @@ use Socket qw(inet_aton inet_ntoa);
our @EXPORT = qw(%NetConfig);
our @ISA = qw(Net::LocalCfg Exporter);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
our($CONFIGURE, $LIBNET_CFG);
@@ -368,11 +368,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm
index d69ac5ba80..bf1ad2547b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm
@@ -19,7 +19,7 @@ use Net::Config;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
my ($host, $domain, $fqdn) = (undef, undef, undef);
@@ -395,11 +395,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm
index 37836bf657..cee0b2846b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm
@@ -1,7 +1,7 @@
# Net::FTP.pm
#
# Copyright (C) 1995-2004 Graham Barr. All rights reserved.
-# Copyright (C) 2013-2017, 2020 Steve Hay. All rights reserved.
+# Copyright (C) 2013-2017, 2020, 2022 Steve Hay. All rights reserved.
# This module is free software; you can redistribute it and/or modify it under
# the same terms as Perl itself, i.e. under the terms of either the GNU General
# Public License or the Artistic License, as specified in the F<LICENCE> file.
@@ -23,7 +23,7 @@ use Net::Config;
use Socket;
use Time::Local;
-our $VERSION = '3.13';
+our $VERSION = '3.15';
our $IOCLASS;
my $family_key;
@@ -66,7 +66,7 @@ use constant TELNET_IAC => 255;
use constant TELNET_IP => 244;
use constant TELNET_DM => 242;
-use constant EBCDIC => $^O eq 'os390';
+use constant EBCDIC => ord 'A' == 193;
sub new {
my $pkg = shift;
@@ -1052,14 +1052,7 @@ sub _dataconn {
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}} ),
+ %{${*$ftp}{net_ftp_tlsargs}},
):(),
) or return;
} elsif (my $listen = delete ${*$ftp}{net_ftp_listen}) {
@@ -1966,19 +1959,6 @@ Reinitialize the connection, flushing all I/O and account information.
=back
-=head1 EXAMPLES
-
-For an example of the use of Net::FTP see
-
-=over 4
-
-=item L<https://www.csh.rit.edu/~adam/Progs/>
-
-C<autoftp> is a program that can retrieve, send, or list files via
-the FTP protocol in a non-interactive manner.
-
-=back
-
=head1 EXPORTS
I<None>.
@@ -2034,7 +2014,7 @@ libnet as of version 1.22_02.
Copyright (C) 1995-2004 Graham Barr. All rights reserved.
-Copyright (C) 2013-2017, 2020 Steve Hay. All rights reserved.
+Copyright (C) 2013-2017, 2020, 2022 Steve Hay. All rights reserved.
=head1 LICENCE
@@ -2044,11 +2024,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm
index 53446386c1..9b93e16cbc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm
@@ -13,7 +13,7 @@ use Carp;
use Net::FTP::dataconn;
our @ISA = qw(Net::FTP::dataconn);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
our $buf;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm
index 9b1370778a..a10b9729f0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm
@@ -8,6 +8,6 @@ use warnings;
use Net::FTP::I;
our @ISA = qw(Net::FTP::I);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm
index 726cba197c..1c2b8a6088 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm
@@ -13,7 +13,7 @@ use Carp;
use Net::FTP::dataconn;
our @ISA = qw(Net::FTP::dataconn);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
our $buf;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm
index ac5e27ebad..d04fd920aa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm
@@ -8,6 +8,6 @@ use warnings;
use Net::FTP::I;
our @ISA = qw(Net::FTP::I);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
index 5a257e677f..3db008df95 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
@@ -13,7 +13,7 @@ use Carp;
use Errno;
use Net::Cmd;
-our $VERSION = '3.13';
+our $VERSION = '3.15';
$Net::FTP::IOCLASS or die "please load Net::FTP before Net::FTP::dataconn";
our @ISA = $Net::FTP::IOCLASS;
@@ -224,11 +224,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm
index 3187f51961..59ed0ef5b3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm
@@ -19,7 +19,7 @@ use Net::Cmd;
use Net::Config;
use Time::Local;
-our $VERSION = "3.13";
+our $VERSION = "3.15";
# Code for detecting if we can use SSL
my $ssl_class = eval {
@@ -1308,11 +1308,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm
index 50688eefd6..fe9abb9ddd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm
@@ -16,7 +16,7 @@ use warnings;
use Carp;
use FileHandle;
-our $VERSION = "3.13";
+our $VERSION = "3.15";
our $TESTING;
@@ -353,11 +353,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm
index 55f7be1342..e6239c7c86 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm
@@ -18,7 +18,7 @@ use IO::Socket;
use Net::Cmd;
use Net::Config;
-our $VERSION = "3.13";
+our $VERSION = "3.15";
# Code for detecting if we can use SSL
my $ssl_class = eval {
@@ -869,11 +869,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm
index 19bb51ec1a..b4c8f2f80b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm
@@ -22,7 +22,7 @@ use Time::HiRes;
@ISA = qw(Exporter);
@EXPORT = qw(pingecho);
@EXPORT_OK = qw(wakeonlan);
-$VERSION = "2.74";
+$VERSION = "2.76";
# Globals
@@ -1081,8 +1081,7 @@ sub tcp_connect
sub DESTROY {
my $self = shift;
- if ($self->{'proto'} eq 'tcp' &&
- $self->{'tcp_chld'}) {
+ if ($self->{'proto'} && ($self->{'proto'} eq 'tcp') && $self->{'tcp_chld'}) {
# Put that choking client out of its misery
kill "KILL", $self->{'tcp_chld'};
# Clean off the zombie
@@ -2004,13 +2003,13 @@ Net::Ping - check a remote host for reachability
use Net::Ping;
- $p = Net::Ping->new();
+ my $p = Net::Ping->new();
print "$host is alive.\n" if $p->ping($host);
$p->close();
- $p = Net::Ping->new("icmp");
+ my $p = Net::Ping->new("icmp");
$p->bind($my_addr); # Specify source interface of pings
- foreach $host (@host_array)
+ foreach my $host (@host_array)
{
print "$host is ";
print "NOT " unless $p->ping($host, 2);
@@ -2019,11 +2018,11 @@ Net::Ping - check a remote host for reachability
}
$p->close();
- $p = Net::Ping->new("icmpv6");
- $ip = "[fd00:dead:beef::4e]";
+ my $p = Net::Ping->new("icmpv6");
+ my $ip = "[fd00:dead:beef::4e]";
print "$ip is alive.\n" if $p->ping($ip);
- $p = Net::Ping->new("tcp", 2);
+ my $p = Net::Ping->new("tcp", 2);
# Try connecting to the www port instead of the echo port
$p->port_number(scalar(getservbyname("http", "tcp")));
while ($stop_time > time())
@@ -2035,19 +2034,19 @@ Net::Ping - check a remote host for reachability
undef($p);
# Like tcp protocol, but with many hosts
- $p = Net::Ping->new("syn");
+ my $p = Net::Ping->new("syn");
$p->port_number(getservbyname("http", "tcp"));
- foreach $host (@host_array) {
+ foreach my $host (@host_array) {
$p->ping($host);
}
- while (($host,$rtt,$ip) = $p->ack) {
+ while (my ($host, $rtt, $ip) = $p->ack) {
print "HOST: $host [$ip] ACKed in $rtt seconds.\n";
}
# High precision syntax (requires Time::HiRes)
- $p = Net::Ping->new();
+ my $p = Net::Ping->new();
$p->hires();
- ($ret, $duration, $ip) = $p->ping($host, 5.5);
+ my ($ret, $duration, $ip) = $p->ping($host, 5.5);
printf("$host [ip: $ip] is alive (packet return time: %.2f ms)\n",
1000 * $duration)
if $ret;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm
index 354ed8e38f..e592bb53e4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm
@@ -19,7 +19,7 @@ use Net::Cmd;
use Net::Config;
use Socket;
-our $VERSION = "3.13";
+our $VERSION = "3.15";
# Code for detecting if we can use SSL
my $ssl_class = eval {
@@ -1052,11 +1052,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm
index 7f0a724cd3..237c1747a4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm
@@ -22,7 +22,7 @@ use Net::Config;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(inet_time inet_daytime);
-our $VERSION = "3.13";
+our $VERSION = "3.15";
our $TIMEOUT = 120;
@@ -190,11 +190,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 3.13
+Version 3.15
=head1 DATE
-23 Dec 2020
+20 March 2023
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm
index 8831919fb4..babcdc165a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm
@@ -2,7 +2,7 @@ package Net::hostent;
use strict;
use 5.006_001;
-our $VERSION = '1.02';
+our $VERSION = '1.03';
our (@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
our (
$h_name, @h_aliases,
@@ -58,13 +58,14 @@ sub gethostbyaddr ($;$) {
}
sub gethost($) {
- if ($_[0] =~ /^\d+(?:\.\d+(?:\.\d+(?:\.\d+)?)?)?$/) {
- require Socket;
- &gethostbyaddr(Socket::inet_aton(shift));
+ my $addr = shift;
+ if ($addr =~ /^\d+(?:\.\d+(?:\.\d+(?:\.\d+)?)?)?$/) {
+ require Socket;
+ &gethostbyaddr(Socket::inet_aton($addr));
} else {
- &gethostbyname;
- }
-}
+ &gethostbyname($addr);
+ }
+}
1;
__END__
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm
index cef20fbd0b..18dc777d0f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm
@@ -2,7 +2,7 @@ package Net::protoent;
use strict;
use 5.006_001;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
our ( $p_name, @p_aliases, $p_proto );
BEGIN {
@@ -51,7 +51,7 @@ Net::protoent - by-name interface to Perl's built-in getproto*() functions
=head1 SYNOPSIS
use Net::protoent;
- $p = getprotobyname(shift || 'tcp') || die "no proto";
+ my $p = getprotobyname(shift || 'tcp') || die "no proto";
printf "proto for %s is %d, aliases are %s\n",
$p->name, $p->proto, "@{$p->aliases}";
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm
index a3b2bad2c2..3aa8389f99 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm
@@ -2,7 +2,7 @@ package Net::servent;
use strict;
use 5.006_001;
-our $VERSION = '1.02';
+our $VERSION = '1.03';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
our ( $s_name, @s_aliases, $s_port, $s_proto );
BEGIN {
@@ -53,7 +53,7 @@ Net::servent - by-name interface to Perl's built-in getserv*() functions
=head1 SYNOPSIS
use Net::servent;
- $s = getservbyname(shift || 'ftp') || die "no service";
+ my $s = getservbyname(shift || 'ftp') || die "no service";
printf "port for %s is %s, aliases are %s\n",
$s->name, $s->port, "@{$s->aliases}";
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm
index 0501fb8f39..b4aead9e40 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm
@@ -1,32 +1,21 @@
-package Opcode;
-
-use 5.006_001;
+package Opcode 1.64;
use strict;
-our($VERSION, @ISA, @EXPORT_OK);
-
-$VERSION = "1.50";
-
use Carp;
-use Exporter ();
+use Exporter 'import';
use XSLoader;
-BEGIN {
- @ISA = qw(Exporter);
- @EXPORT_OK = qw(
+sub opset (;@);
+sub opset_to_hex ($);
+sub opdump (;$);
+use subs our @EXPORT_OK = qw(
opset ops_to_opset
opset_to_ops opset_to_hex invert_opset
empty_opset full_opset
opdesc opcodes opmask define_optag
opmask_add verify_opset opdump
- );
-}
-
-sub opset (;@);
-sub opset_to_hex ($);
-sub opdump (;$);
-use subs @EXPORT_OK;
+);
XSLoader::load();
@@ -313,10 +302,10 @@ invert_opset function.
null stub scalar pushmark wantarray const defined undef
- rv2sv sassign
+ rv2sv sassign padsv_store
rv2av aassign aelem aelemfast aelemfast_lex aslice kvaslice
- av2arylen
+ av2arylen aelemfastlex_store
rv2hv helem hslice kvhslice each values keys exists delete
aeach akeys avalues multideref argelem argdefelem argcheck
@@ -343,10 +332,12 @@ invert_opset function.
list lslice splice push pop shift unshift reverse
cond_expr flip flop andassign orassign dorassign and or dor xor
+ helemexistsor
warn die lineseq nextstate scope enter leave
rv2cv anoncode prototype coreargs avhvswitch anonconst
+ emptyavhv
entersub leavesub leavesublv return method method_named
method_super method_redir method_redir_super
@@ -354,9 +345,14 @@ invert_opset function.
cmpchain_and cmpchain_dup
+ is_bool
+ is_weak weaken unweaken
+
leaveeval -- needed for Safe to operate, is safe
without entereval
+ methstart initfield
+
=item :base_mem
These memory related ops are not included in :base_core because they
@@ -415,6 +411,7 @@ These are a hotchpotch of opcodes still waiting to be considered
once
rv2gv refgen srefgen ref refassign lvref lvrefslice lvavref
+ blessed refaddr reftype
bless -- could be used to change ownership of objects
(reblessing)
@@ -442,8 +439,14 @@ These are a hotchpotch of opcodes still waiting to be considered
break continue
smartmatch
+ pushdefer
+
custom -- where should this go
+ ceil floor
+
+ is_tainted
+
=item :base_math
These ops are not included in :base_core because of the risk of them being
@@ -611,4 +614,3 @@ Split out from Safe module version 1, named opcode tags and other
changes added by Tim Bunce.
=cut
-
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm
index 08986d2657..48b224a36e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm
@@ -4,7 +4,7 @@ use warnings;
our ($AUTOLOAD, %SIGRT);
-our $VERSION = '1.97';
+our $VERSION = '2.13';
require XSLoader;
@@ -12,7 +12,7 @@ use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
O_WRONLY SEEK_CUR SEEK_END SEEK_SET
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISLNK S_ISREG S_ISSOCK
S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
@@ -176,7 +176,7 @@ sub import {
load_imports() unless $loaded++;
- # Grandfather old foo_h form to new :foo_h form
+ # Rewrite legacy foo_h form to new :foo_h form
s/^(?=\w+_h$)/:/ for my @list = @_;
my @unimpl = sort grep { exists $replacement{$_} } @list;
@@ -278,7 +278,7 @@ my %default_export_tags = ( # cf. exports policy below
creat
SEEK_CUR SEEK_END SEEK_SET
S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK S_ISUID
S_IWGRP S_IWOTH S_IWUSR)],
float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
@@ -307,7 +307,7 @@ my %default_export_tags = ( # cf. exports policy below
locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
LC_MONETARY LC_NUMERIC LC_TIME LC_IDENTIFICATION
- LC_MEASUREMENT LC_PAPER LC_TELEPHONE LC_ADDRESS
+ LC_MEASUREMENT LC_PAPER LC_TELEPHONE LC_ADDRESS LC_NAME
LC_SYNTAX LC_TOD NULL
localeconv setlocale)],
@@ -357,7 +357,7 @@ my %default_export_tags = ( # cf. exports policy below
strtok strxfrm)],
sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK
S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
fstat mkfifo)],
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod
index 4f85f35c8c..d3720da9b5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod
@@ -10,9 +10,9 @@ POSIX - Perl interface to IEEE Std 1003.1
printf "EINTR is %d\n", EINTR;
- $sess_id = POSIX::setsid();
+ my $sess_id = POSIX::setsid();
- $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
+ my $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
# note: that's a filedescriptor, *NOT* a filehandle
=head1 DESCRIPTION
@@ -501,7 +501,7 @@ than the explicit two operations [C99]. Added in Perl v5.22.
Maximum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
Added in Perl v5.22.
- my $min = POSIX::fmax($x, $y);
+ my $max = POSIX::fmax($x, $y);
=item C<fmin>
@@ -825,11 +825,12 @@ to use instead. See L<perlrecharclass/POSIX Character Classes>.
Returns true if the argument is C<NaN> (not-a-number) [C99]. Added in
Perl v5.22.
-Note that you cannot test for "C<NaN>-ness" with
+Note that you can also test for "C<NaN>-ness" with
+L<equality operators|perlop/"Equality Operators"> (C<==> or C<!=>), as in
- $x == $x
+ print "x is not a NaN\n" if $x == $x;
-since the C<NaN> is not equivalent to anything, B<including itself>.
+since the C<NaN> is not equal to anything, B<including itself>.
See also L</nan>, L</NaN>, L</isinf>, and L</fpclassify>.
@@ -1014,6 +1015,18 @@ Here is how to query the database for the B<de> (Deutsch or German) locale.
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.
+A value of -1 returned for numeric entries indicates that the field is
+not applicable to the locale. This is rare except in the C and related
+locales, which don't have most monetary values defined. It can also
+happen, quirkily, in fields that are otherwise boolean to indicate that
+the value is kind of neither true nor false. This happens in C<p_cs_precedes>
+and C<int_p_cs_precedes> when the currency symbol neither precedes nor
+succeeds a positive value but is infixed, by replacing the radix
+character.
+
+Prior to Perl v5.37.7, empty string fields and numeric fields with value
+-1 were omittted from the returned hash.
+
=item C<localtime>
This is identical to Perl's builtin C<localtime()> function for
@@ -1133,9 +1146,10 @@ parameter is stored. The optional third parameter is ignored if it is
larger than the actual length of the second parameter string.
Use C<undef> as the second parameter to this function to get the effect
-of passing NULL as the second parameter to C<mbtowc>. This resets any
-shift state to its initial value. The return value is undefined if
-C<mbrtowc> was substituted, so you should never rely on it.
+of passing NULL as the second parameter to C<mbtowc>. This ignores the
+first parameter, and resets any shift state to its initial value. The
+return value is undefined if C<mbrtowc> was substituted, so you should
+never rely on it.
When the second parameter is a scalar containing a value that either is
a PV string or can be forced into one, the return value is the number of
@@ -1623,7 +1637,7 @@ will change only the real user identifier.
Detailed signal management. This uses C<POSIX::SigAction> objects for
the C<action> and C<oldaction> arguments (the oldaction can also be
just a hash reference). Consult your system's C<sigaction> manpage
-for details, see also C<POSIX::SigRt>.
+for details, see also L</POSIX::SigRt>.
Synopsis:
@@ -1826,7 +1840,7 @@ about these and the other arguments.
If you want your code to be portable, your format (C<fmt>) argument
should use only the conversion specifiers defined by the ANSI C
-standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
+standard (C99, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
But even then, the B<results> of some of the conversion specifiers are
non-portable. For example, the specifiers C<aAbBcpZ> change according
to the locale settings of the user, and both how to set locales (the
@@ -1971,9 +1985,14 @@ Used with C<eq> or C<cmp> as an alternative to C<L</strcoll>>.
Not really needed since Perl can do this transparently, see
L<perllocale>.
-Beware that in a UTF-8 locale, anything you pass to this function must
-be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
-UTF-8 encoded.
+Unlike the libc C<strxfrm>, this allows NUL characters in the input
+C<$src>.
+
+It doesn't make sense for a string to be encoded in one locale (say,
+ISO-8859-6, Arabic) and to collate it based on another (like ISO-8859-7,
+Greek). Perl assumes that the current C<LC_CTYPE> locale correctly
+represents the encoding of C<$src>, and ignores the value of
+C<LC_COLLATE>.
=item C<sysconf>
@@ -2196,9 +2215,10 @@ L</mblen> and L</mbtowc> may be used to roll your own decoding/encoding
of other types of multi-byte locales.
Use C<undef> as the first parameter to this function to get the effect
-of passing NULL as the first parameter to C<wctomb>. This resets any
-shift state to its initial value. The return value is undefined if
-C<wcrtomb> was substituted, so you should never rely on it.
+of passing NULL as the first parameter to C<wctomb>. This ignores the
+second parameter, and resets any shift state to its initial value. The
+return value is undefined if C<wcrtomb> was substituted, so you should
+never rely on it.
When the first parameter is a scalar, the code point contained in the
scalar second parameter is converted into a multi-byte string and stored
@@ -2739,7 +2759,7 @@ C<S_IWUSR> C<S_IXGRP> C<S_IXOTH> C<S_IXUSR>
=item Macros
-C<S_ISBLK> C<S_ISCHR> C<S_ISDIR> C<S_ISFIFO> C<S_ISREG>
+C<S_ISBLK> C<S_ISCHR> C<S_ISDIR> C<S_ISFIFO> C<S_ISLNK> C<S_ISREG> C<S_ISSOCK>
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm
index 85dd083cc0..01a02cf648 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm
@@ -1,6 +1,6 @@
package PerlIO;
-our $VERSION = '1.11';
+our $VERSION = '1.12';
# Map layer name to package that defines it
our %alias;
@@ -235,12 +235,6 @@ like C<:utf8>. An example of a possible use might be:
A more elegant (and safer) interface is needed.
-=item :win32
-
-On Win32 platforms this I<experimental> layer uses the native "handle" IO
-rather than the unix-like numeric file descriptor layer. Known to be
-buggy as of Perl 5.8.2.
-
=back
=head2 Custom Layers
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
index d02ec682ae..6a407da277 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
@@ -12,7 +12,7 @@ use 5.008001;
# be as strict as possible
use strict;
-our $VERSION = '0.09';
+our $VERSION = '0.10';
# modules that we need
use MIME::QuotedPrint (); # no need to pollute this namespace
@@ -163,11 +163,11 @@ Public License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 0.09
+Version 0.10
=head1 DATE
-08 Dec 2020
+22 May 2022
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm
index bee20d0bfa..1dfb58b128 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm
@@ -10,7 +10,7 @@ package Pod::Checker;
use strict;
use warnings;
-our $VERSION = '1.74'; ## Current version of this package
+our $VERSION = '1.75'; ## Current version of this package
=head1 NAME
@@ -1112,7 +1112,10 @@ sub new {
$self->{'-line'} ||= $caller->{'_line'};
$self->{'-type'} ||= $simple_link->{'type'};
-
+ # preserve raw link text for additional checks
+ $self->{'-raw-link-text'} = (exists $simple_link->{'raw'})
+ ? "$simple_link->{'raw'}"
+ : "";
# Force stringification of page and node. (This expands any E<>.)
$self->{'-page'} = exists $simple_link->{'to'} ? "$simple_link->{'to'}" : "";
$self->{'-node'} = exists $simple_link->{'section'} ? "$simple_link->{'section'}" : "";
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Functions.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Functions.pm
index f4e2a9464c..727c7fd0d4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Functions.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Functions.pm
@@ -54,11 +54,10 @@ L<perlfunc/"Perl Functions by Category"> section.
=cut
-our $VERSION = '1.13';
+our $VERSION = '1.14';
-require Exporter;
+use Exporter 'import';
-our @ISA = qw(Exporter);
our @EXPORT = qw(%Kinds %Type %Flavor %Type_Description @Type_Order);
our(%Kinds, %Type, %Flavor, %Type_Description, @Type_Order);
@@ -142,6 +141,7 @@ chop String remove the last character from a string
chown File change the ownership on a list of files
chr String get character this number represents
chroot File make directory new root for path lookups
+class Namespace Objects declare a separate global namespace that is an object class
close I/O close file (or pipe or socket) handle
closedir I/O close directory handle
connect Socket connect to a remote socket
@@ -171,6 +171,7 @@ exit Flow terminate this program
exp Math raise I<e> to a power
fc String return casefolded version of a string
fcntl File file control system call
+field Namespace Objects declare a field variable of the current class
__FILE__ Flow the name of the current source file
fileno I/O return file descriptor from filehandle
flock I/O lock an entire file with an advisory lock
@@ -229,6 +230,7 @@ log Math retrieve the natural logarithm for a number
lstat File stat a symbolic link
m// Regexp match a string with a regular expression pattern
map LIST apply a change to a list to get back a new list with the changes
+method Flow Objects declare a method of a class
mkdir File create a directory
msgctl SysV SysV IPC message control operations
msgget SysV get SysV IPC message queue
@@ -332,14 +334,14 @@ times Process Time return elapsed time for self and child processes
tr/// String transliterate a string
truncate I/O shorten a file
uc String return upper-case version of a string
-ucfirst String return a string with just the next letter in upper case
+ucfirst String return a string with the first letter in upper case
umask File set file creation mode mask
undef Misc remove a variable or function definition
unlink File remove one link to a file
unpack Binary LIST convert binary structure into normal perl variables
unshift ARRAY prepend more elements to the beginning of a list
untie Objects break a tie binding to a variable
-use Modules Namespace Objects load in a module at compile time and import its namespace
+use Modules Namespace Objects enable Perl language features and declare required version
utime File set a file's last access and modify times
values ARRAY HASH return a list of the values in a hash
vec Binary test or set particular bits in a string
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm
index ba0ab0b39a..7c568f9e91 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm
@@ -1,22 +1,27 @@
package Pod::Html;
use strict;
-require Exporter;
+use Exporter 'import';
-our $VERSION = 1.27;
-our @ISA = qw(Exporter);
-our @EXPORT = qw(pod2html htmlify);
-our @EXPORT_OK = qw(anchorify relativize_url);
+our $VERSION = 1.34;
+$VERSION = eval $VERSION;
+our @EXPORT = qw(pod2html);
-use Carp;
use Config;
use Cwd;
use File::Basename;
use File::Spec;
-use File::Spec::Unix;
-use Getopt::Long;
use Pod::Simple::Search;
use Pod::Simple::SimpleTree ();
-use Text::Tabs;
+use Pod::Html::Util qw(
+ html_escape
+ process_command_line
+ trim_leading_whitespace
+ unixify
+ usage
+ htmlify
+ anchorify
+ relativize_url
+);
use locale; # make \w work right in non-ASCII lands
=head1 NAME
@@ -189,20 +194,26 @@ Display progress messages. By default, they won't be displayed.
=back
-=head2 htmlify
+=head2 Formerly Exported Auxiliary Functions
- htmlify($heading);
+Prior to perl-5.36, the following three functions were exported by
+F<Pod::Html>, either by default or on request:
+
+=over 4
-Converts a pod section specification to a suitable section specification
-for HTML. Note that we keep spaces and special characters except
-C<", ?> (Netscape problem) and the hyphen (writer's problem...).
+=item * C<htmlify()> (by default)
-=head2 anchorify
+=item * C<anchorify()> (upon request)
+
+=item * C<relativize_url()> (upon request)
+
+=back
- anchorify(@heading);
+The definition and documentation of these functions have been moved to
+F<Pod::Html::Util>, viewable via C<perldoc Pod::Html::Util>.
-Similar to C<htmlify()>, but turns non-alphanumerics into underscores. Note
-that C<anchorify()> is not exported by default.
+Beginning with perl-5.38 these functions must be explicitly imported from
+F<Pod::Html::Util>. Please modify your code as needed.
=head1 ENVIRONMENT
@@ -224,386 +235,234 @@ This program is distributed under the Artistic License.
=cut
-# This sub duplicates the guts of Pod::Simple::FromTree. We could have
-# used that module, except that it would have been a non-core dependency.
-sub feed_tree_to_parser {
- my($parser, $tree) = @_;
- if(ref($tree) eq "") {
- $parser->_handle_text($tree);
- } elsif(!($tree->[0] eq "X" && $parser->nix_X_codes)) {
- $parser->_handle_element_start($tree->[0], $tree->[1]);
- feed_tree_to_parser($parser, $_) foreach @{$tree}[2..$#$tree];
- $parser->_handle_element_end($tree->[0]);
- }
-}
-
-my $Cachedir;
-my $Dircache;
-my($Htmlroot, $Htmldir, $Htmlfile, $Htmlfileurl);
-my($Podfile, @Podpath, $Podroot);
-my $Poderrors;
-my $Css;
-
-my $Recurse;
-my $Quiet;
-my $Verbose;
-my $Doindex;
-
-my $Backlink;
-
-my($Title, $Header);
-
-my %Pages = (); # associative array used to find the location
- # of pages referenced by L<> links.
-
-my $Curdir = File::Spec->curdir;
-
-sub init_globals {
- $Cachedir = "."; # The directory to which directory caches
- # will be written.
-
- $Dircache = "pod2htmd.tmp";
-
- $Htmlroot = "/"; # http-server base directory from which all
- # relative paths in $podpath stem.
- $Htmldir = ""; # The directory to which the html pages
- # will (eventually) be written.
- $Htmlfile = ""; # write to stdout by default
- $Htmlfileurl = ""; # The url that other files would use to
- # refer to this file. This is only used
- # to make relative urls that point to
- # other files.
-
- $Poderrors = 1;
- $Podfile = ""; # read from stdin by default
- @Podpath = (); # list of directories containing library pods.
- $Podroot = $Curdir; # filesystem base directory from which all
- # relative paths in $podpath stem.
- $Css = ''; # Cascading style sheet
- $Recurse = 1; # recurse on subdirectories in $podpath.
- $Quiet = 0; # not quiet by default
- $Verbose = 0; # not verbose by default
- $Doindex = 1; # non-zero if we should generate an index
- $Backlink = 0; # no backlinks added by default
- $Header = 0; # produce block header/footer
- $Title = undef; # title to give the pod(s)
+sub new {
+ my $class = shift;
+ return bless {}, $class;
}
sub pod2html {
local(@ARGV) = @_;
local $_;
- init_globals();
- parse_command_line();
+ my $self = Pod::Html->new();
+ $self->init_globals();
- # prevent '//' in urls
- $Htmlroot = "" if $Htmlroot eq "/";
- $Htmldir =~ s#/\z##;
+ my $opts = process_command_line;
+ $self->process_options($opts);
- if ( $Htmlroot eq ''
- && defined( $Htmldir )
- && $Htmldir ne ''
- && substr( $Htmlfile, 0, length( $Htmldir ) ) eq $Htmldir
- ) {
- # Set the 'base' url for this file, so that we can use it
- # as the location from which to calculate relative links
- # to other files. If this is '', then absolute links will
- # be used throughout.
- #$Htmlfileurl = "$Htmldir/" . substr( $Htmlfile, length( $Htmldir ) + 1);
- # Is the above not just "$Htmlfileurl = $Htmlfile"?
- $Htmlfileurl = Pod::Html::_unixify($Htmlfile);
-
- }
+ $self->refine_globals();
# load or generate/cache %Pages
- unless (get_cache($Dircache, \@Podpath, $Podroot, $Recurse)) {
+ unless ($self->get_cache()) {
# generate %Pages
- my $pwd = getcwd();
- chdir($Podroot) ||
- die "$0: error changing to directory $Podroot: $!\n";
-
- # find all pod modules/pages in podpath, store in %Pages
- # - callback used to remove Podroot and extension from each file
- # - laborious to allow '.' in dirnames (e.g., /usr/share/perl/5.14.1)
- Pod::Simple::Search->new->inc(0)->verbose($Verbose)->laborious(1)
- ->callback(\&_save_page)->recurse($Recurse)->survey(@Podpath);
-
- chdir($pwd) || die "$0: error changing to directory $pwd: $!\n";
-
- # cache the directory list for later use
- warn "caching directories for later use\n" if $Verbose;
- open my $cache, '>', $Dircache
- or die "$0: error open $Dircache for writing: $!\n";
-
- print $cache join(":", @Podpath) . "\n$Podroot\n";
- my $_updirs_only = ($Podroot =~ /\.\./) && !($Podroot =~ /[^\.\\\/]/);
- foreach my $key (keys %Pages) {
- if($_updirs_only) {
- my $_dirlevel = $Podroot;
- while($_dirlevel =~ /\.\./) {
- $_dirlevel =~ s/\.\.//;
- # Assume $Pages{$key} has '/' separators (html dir separators).
- $Pages{$key} =~ s/^[\w\s\-\.]+\///;
- }
- }
- print $cache "$key $Pages{$key}\n";
- }
-
- close $cache or die "error closing $Dircache: $!";
+ #%Pages = $self->generate_cache(\%Pages);
+ $self->generate_cache($self->{Pages});
}
-
- my $input;
- unless (@ARGV && $ARGV[0]) {
- if ($Podfile and $Podfile ne '-') {
- $input = $Podfile;
- } else {
- $input = '-'; # XXX: make a test case for this
- }
- } else {
- $Podfile = $ARGV[0];
- $input = *ARGV;
- }
-
- # set options for input parser
- my $parser = Pod::Simple::SimpleTree->new;
- # Normalize whitespace indenting
- $parser->strip_verbatim_indent(\&trim_leading_whitespace);
-
- $parser->codes_in_verbatim(0);
- $parser->accept_targets(qw(html HTML));
- $parser->no_errata_section(!$Poderrors); # note the inverse
-
- warn "Converting input file $Podfile\n" if $Verbose;
- my $podtree = $parser->parse_file($input)->root;
-
- unless(defined $Title) {
- if($podtree->[0] eq "Document" && ref($podtree->[2]) eq "ARRAY" &&
- $podtree->[2]->[0] eq "head1" && @{$podtree->[2]} == 3 &&
- ref($podtree->[2]->[2]) eq "" && $podtree->[2]->[2] eq "NAME" &&
- ref($podtree->[3]) eq "ARRAY" && $podtree->[3]->[0] eq "Para" &&
- @{$podtree->[3]} >= 3 &&
- !(grep { ref($_) ne "" }
- @{$podtree->[3]}[2..$#{$podtree->[3]}]) &&
- (@$podtree == 4 ||
- (ref($podtree->[4]) eq "ARRAY" &&
- $podtree->[4]->[0] eq "head1"))) {
- $Title = join("", @{$podtree->[3]}[2..$#{$podtree->[3]}]);
- }
- }
-
- $Title //= "";
- $Title = html_escape($Title);
+ my $input = $self->identify_input();
+ my $podtree = $self->parse_input_for_podtree($input);
+ $self->set_Title_from_podtree($podtree);
# set options for the HTML generator
- $parser = Pod::Simple::XHTML::LocalPodLinks->new();
+ my $parser = Pod::Simple::XHTML::LocalPodLinks->new();
$parser->codes_in_verbatim(0);
$parser->anchor_items(1); # the old Pod::Html always did
- $parser->backlink($Backlink); # linkify =head1 directives
- $parser->force_title($Title);
- $parser->htmldir($Htmldir);
- $parser->htmlfileurl($Htmlfileurl);
- $parser->htmlroot($Htmlroot);
- $parser->index($Doindex);
- $parser->output_string(\my $output); # written to file later
- $parser->pages(\%Pages);
- $parser->quiet($Quiet);
- $parser->verbose($Verbose);
+ $parser->backlink($self->{Backlink}); # linkify =head1 directives
+ $parser->force_title($self->{Title});
+ $parser->htmldir($self->{Htmldir});
+ $parser->htmlfileurl($self->{Htmlfileurl});
+ $parser->htmlroot($self->{Htmlroot});
+ $parser->index($self->{Doindex});
+ $parser->output_string(\$self->{output}); # written to file later
+ #$parser->pages(\%Pages);
+ $parser->pages($self->{Pages});
+ $parser->quiet($self->{Quiet});
+ $parser->verbose($self->{Verbose});
+
+ $parser = $self->refine_parser($parser);
+ $self->feed_tree_to_parser($parser, $podtree);
+ $self->write_file();
+}
- # We need to add this ourselves because we use our own header, not
- # ::XHTML's header. We need to set $parser->backlink to linkify
- # the =head1 directives
- my $bodyid = $Backlink ? ' id="_podtop_"' : '';
+sub init_globals {
+ my $self = shift;
+ $self->{Cachedir} = "."; # The directory to which directory caches
+ # will be written.
+
+ $self->{Dircache} = "pod2htmd.tmp";
+
+ $self->{Htmlroot} = "/"; # http-server base directory from which all
+ # relative paths in $podpath stem.
+ $self->{Htmldir} = ""; # The directory to which the html pages
+ # will (eventually) be written.
+ $self->{Htmlfile} = ""; # write to stdout by default
+ $self->{Htmlfileurl} = ""; # The url that other files would use to
+ # refer to this file. This is only used
+ # to make relative urls that point to
+ # other files.
+
+ $self->{Poderrors} = 1;
+ $self->{Podfile} = ""; # read from stdin by default
+ $self->{Podpath} = []; # list of directories containing library pods.
+ $self->{Podroot} = $self->{Curdir} = File::Spec->curdir;
+ # filesystem base directory from which all
+ # relative paths in $podpath stem.
+ $self->{Css} = ''; # Cascading style sheet
+ $self->{Recurse} = 1; # recurse on subdirectories in $podpath.
+ $self->{Quiet} = 0; # not quiet by default
+ $self->{Verbose} = 0; # not verbose by default
+ $self->{Doindex} = 1; # non-zero if we should generate an index
+ $self->{Backlink} = 0; # no backlinks added by default
+ $self->{Header} = 0; # produce block header/footer
+ $self->{Title} = undef; # title to give the pod(s)
+ $self->{Saved_Cache_Key} = '';
+ $self->{Pages} = {};
+ return $self;
+}
- my $csslink = '';
- my $tdstyle = ' style="background-color: #cccccc; color: #000"';
+sub process_options {
+ my ($self, $opts) = @_;
+
+ $self->{Podpath} = (defined $opts->{podpath})
+ ? [ split(":", $opts->{podpath}) ]
+ : [];
+
+ $self->{Backlink} = $opts->{backlink} if defined $opts->{backlink};
+ $self->{Cachedir} = unixify($opts->{cachedir}) if defined $opts->{cachedir};
+ $self->{Css} = $opts->{css} if defined $opts->{css};
+ $self->{Header} = $opts->{header} if defined $opts->{header};
+ $self->{Htmldir} = unixify($opts->{htmldir}) if defined $opts->{htmldir};
+ $self->{Htmlroot} = unixify($opts->{htmlroot}) if defined $opts->{htmlroot};
+ $self->{Doindex} = $opts->{index} if defined $opts->{index};
+ $self->{Podfile} = unixify($opts->{infile}) if defined $opts->{infile};
+ $self->{Htmlfile} = unixify($opts->{outfile}) if defined $opts->{outfile};
+ $self->{Poderrors} = $opts->{poderrors} if defined $opts->{poderrors};
+ $self->{Podroot} = unixify($opts->{podroot}) if defined $opts->{podroot};
+ $self->{Quiet} = $opts->{quiet} if defined $opts->{quiet};
+ $self->{Recurse} = $opts->{recurse} if defined $opts->{recurse};
+ $self->{Title} = $opts->{title} if defined $opts->{title};
+ $self->{Verbose} = $opts->{verbose} if defined $opts->{verbose};
- if ($Css) {
- $csslink = qq(\n<link rel="stylesheet" href="$Css" type="text/css" />);
- $csslink =~ s,\\,/,g;
- $csslink =~ s,(/.):,$1|,;
- $tdstyle= '';
+ warn "Flushing directory caches\n"
+ if $opts->{verbose} && defined $opts->{flush};
+ $self->{Dircache} = "$self->{Cachedir}/pod2htmd.tmp";
+ if (defined $opts->{flush}) {
+ 1 while unlink($self->{Dircache});
}
+ return $self;
+}
- # header/footer block
- my $block = $Header ? <<END_OF_BLOCK : '';
-<table border="0" width="100%" cellspacing="0" cellpadding="3">
-<tr><td class="_podblock_"$tdstyle valign="middle">
-<big><strong><span class="_podblock_">&nbsp;$Title</span></strong></big>
-</td></tr>
-</table>
-END_OF_BLOCK
-
- # create own header/footer because of --header
- $parser->html_header(<<"HTMLHEAD");
-<?xml version="1.0" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>$Title</title>$csslink
-<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<link rev="made" href="mailto:$Config{perladmin}" />
-</head>
-
-<body$bodyid>
-$block
-HTMLHEAD
-
- $parser->html_footer(<<"HTMLFOOT");
-$block
-</body>
-
-</html>
-HTMLFOOT
+sub refine_globals {
+ my $self = shift;
- feed_tree_to_parser($parser, $podtree);
+ # prevent '//' in urls
+ $self->{Htmlroot} = "" if $self->{Htmlroot} eq "/";
+ $self->{Htmldir} =~ s#/\z##;
- # Write output to file
- $Htmlfile = "-" unless $Htmlfile; # stdout
- my $fhout;
- if($Htmlfile and $Htmlfile ne '-') {
- open $fhout, ">", $Htmlfile
- or die "$0: cannot open $Htmlfile file for output: $!\n";
- } else {
- open $fhout, ">-";
+ if ( $self->{Htmlroot} eq ''
+ && defined( $self->{Htmldir} )
+ && $self->{Htmldir} ne ''
+ && substr( $self->{Htmlfile}, 0, length( $self->{Htmldir} ) ) eq $self->{Htmldir}
+ ) {
+ # Set the 'base' url for this file, so that we can use it
+ # as the location from which to calculate relative links
+ # to other files. If this is '', then absolute links will
+ # be used throughout.
+ #$self->{Htmlfileurl} = "$self->{Htmldir}/" . substr( $self->{Htmlfile}, length( $self->{Htmldir} ) + 1);
+ # Is the above not just "$self->{Htmlfileurl} = $self->{Htmlfile}"?
+ $self->{Htmlfileurl} = unixify($self->{Htmlfile});
}
- binmode $fhout, ":utf8";
- print $fhout $output;
- close $fhout or die "Failed to close $Htmlfile: $!";
- chmod 0644, $Htmlfile unless $Htmlfile eq '-';
+ return $self;
}
-##############################################################################
-
-sub usage {
- my $podfile = shift;
- warn "$0: $podfile: @_\n" if @_;
- die <<END_OF_USAGE;
-Usage: $0 --help --htmldir=<name> --htmlroot=<URL>
- --infile=<name> --outfile=<name>
- --podpath=<name>:...:<name> --podroot=<name>
- --cachedir=<name> --flush --recurse --norecurse
- --quiet --noquiet --verbose --noverbose
- --index --noindex --backlink --nobacklink
- --header --noheader --poderrors --nopoderrors
- --css=<URL> --title=<name>
-
- --[no]backlink - turn =head1 directives into links pointing to the top of
- the page (off by default).
- --cachedir - directory for the directory cache files.
- --css - stylesheet URL
- --flush - flushes the directory cache.
- --[no]header - produce block header/footer (default is no headers).
- --help - prints this message.
- --htmldir - directory for resulting HTML files.
- --htmlroot - http-server base directory from which all relative paths
- in podpath stem (default is /).
- --[no]index - generate an index at the top of the resulting html
- (default behaviour).
- --infile - filename for the pod to convert (input taken from stdin
- by default).
- --outfile - filename for the resulting html file (output sent to
- stdout by default).
- --[no]poderrors - include a POD ERRORS section in the output if there were
- any POD errors in the input (default behavior).
- --podpath - colon-separated list of directories containing library
- pods (empty by default).
- --podroot - filesystem base directory from which all relative paths
- in podpath stem (default is .).
- --[no]quiet - suppress some benign warning messages (default is off).
- --[no]recurse - recurse on those subdirectories listed in podpath
- (default behaviour).
- --title - title that will appear in resulting html file.
- --[no]verbose - self-explanatory (off by default).
-
-END_OF_USAGE
+sub generate_cache {
+ my $self = shift;
+ my $pwd = getcwd();
+ chdir($self->{Podroot}) ||
+ die "$0: error changing to directory $self->{Podroot}: $!\n";
+
+ # find all pod modules/pages in podpath, store in %Pages
+ # - inc(0): do not prepend directories in @INC to search list;
+ # limit search to those in @{$self->{Podpath}}
+ # - verbose: report (via 'warn') what search is doing
+ # - laborious: to allow '.' in dirnames (e.g., /usr/share/perl/5.14.1)
+ # - recurse: go into subdirectories
+ # - survey: search for POD files in PodPath
+ my ($name2path, $path2name) =
+ Pod::Simple::Search->new->inc(0)->verbose($self->{Verbose})->laborious(1)
+ ->recurse($self->{Recurse})->survey(@{$self->{Podpath}});
+ # remove Podroot and extension from each file
+ for my $k (keys %{$name2path}) {
+ $self->{Pages}{$k} = _transform($self, $name2path->{$k});
+ }
+ chdir($pwd) || die "$0: error changing to directory $pwd: $!\n";
+
+ # cache the directory list for later use
+ warn "caching directories for later use\n" if $self->{Verbose};
+ open my $cache, '>', $self->{Dircache}
+ or die "$0: error open $self->{Dircache} for writing: $!\n";
+
+ print $cache join(":", @{$self->{Podpath}}) . "\n$self->{Podroot}\n";
+ my $_updirs_only = ($self->{Podroot} =~ /\.\./) && !($self->{Podroot} =~ /[^\.\\\/]/);
+ foreach my $key (keys %{$self->{Pages}}) {
+ if($_updirs_only) {
+ my $_dirlevel = $self->{Podroot};
+ while($_dirlevel =~ /\.\./) {
+ $_dirlevel =~ s/\.\.//;
+ # Assume $Pagesref->{$key} has '/' separators (html dir separators).
+ $self->{Pages}->{$key} =~ s/^[\w\s\-\.]+\///;
+ }
+ }
+ print $cache "$key $self->{Pages}->{$key}\n";
+ }
+ close $cache or die "error closing $self->{Dircache}: $!";
}
-sub parse_command_line {
- my ($opt_backlink,$opt_cachedir,$opt_css,$opt_flush,$opt_header,
- $opt_help,$opt_htmldir,$opt_htmlroot,$opt_index,$opt_infile,
- $opt_outfile,$opt_poderrors,$opt_podpath,$opt_podroot,
- $opt_quiet,$opt_recurse,$opt_title,$opt_verbose);
-
- unshift @ARGV, split ' ', $Config{pod2html} if $Config{pod2html};
- my $result = GetOptions(
- 'backlink!' => \$opt_backlink,
- 'cachedir=s' => \$opt_cachedir,
- 'css=s' => \$opt_css,
- 'flush' => \$opt_flush,
- 'help' => \$opt_help,
- 'header!' => \$opt_header,
- 'htmldir=s' => \$opt_htmldir,
- 'htmlroot=s' => \$opt_htmlroot,
- 'index!' => \$opt_index,
- 'infile=s' => \$opt_infile,
- 'outfile=s' => \$opt_outfile,
- 'poderrors!' => \$opt_poderrors,
- 'podpath=s' => \$opt_podpath,
- 'podroot=s' => \$opt_podroot,
- 'quiet!' => \$opt_quiet,
- 'recurse!' => \$opt_recurse,
- 'title=s' => \$opt_title,
- 'verbose!' => \$opt_verbose,
- );
- usage("-", "invalid parameters") if not $result;
-
- usage("-") if defined $opt_help; # see if the user asked for help
- $opt_help = ""; # just to make -w shut-up.
-
- @Podpath = split(":", $opt_podpath) if defined $opt_podpath;
-
- $Backlink = $opt_backlink if defined $opt_backlink;
- $Cachedir = _unixify($opt_cachedir) if defined $opt_cachedir;
- $Css = $opt_css if defined $opt_css;
- $Header = $opt_header if defined $opt_header;
- $Htmldir = _unixify($opt_htmldir) if defined $opt_htmldir;
- $Htmlroot = _unixify($opt_htmlroot) if defined $opt_htmlroot;
- $Doindex = $opt_index if defined $opt_index;
- $Podfile = _unixify($opt_infile) if defined $opt_infile;
- $Htmlfile = _unixify($opt_outfile) if defined $opt_outfile;
- $Poderrors = $opt_poderrors if defined $opt_poderrors;
- $Podroot = _unixify($opt_podroot) if defined $opt_podroot;
- $Quiet = $opt_quiet if defined $opt_quiet;
- $Recurse = $opt_recurse if defined $opt_recurse;
- $Title = $opt_title if defined $opt_title;
- $Verbose = $opt_verbose if defined $opt_verbose;
+sub _transform {
+ my ($self, $v) = @_;
+ $v = $self->{Podroot} eq File::Spec->curdir
+ ? File::Spec->abs2rel($v)
+ : File::Spec->abs2rel($v,
+ File::Spec->canonpath($self->{Podroot}));
- warn "Flushing directory caches\n"
- if $opt_verbose && defined $opt_flush;
- $Dircache = "$Cachedir/pod2htmd.tmp";
- if (defined $opt_flush) {
- 1 while unlink($Dircache);
- }
-}
+ # Convert path to unix style path
+ $v = unixify($v);
-my $Saved_Cache_Key;
+ my ($file, $dir) = fileparse($v, qr/\.[^.]*/); # strip .ext
+ return $dir.$file;
+}
sub get_cache {
- my($dircache, $podpath, $podroot, $recurse) = @_;
+ my $self = shift;
# A first-level cache:
# Don't bother reading the cache files if they still apply
# and haven't changed since we last read them.
- my $this_cache_key = cache_key($dircache, $podpath, $podroot, $recurse);
- return 1 if $Saved_Cache_Key and $this_cache_key eq $Saved_Cache_Key;
- $Saved_Cache_Key = $this_cache_key;
+ my $this_cache_key = $self->cache_key();
+ return 1 if $self->{Saved_Cache_Key} and $this_cache_key eq $self->{Saved_Cache_Key};
+ $self->{Saved_Cache_Key} = $this_cache_key;
# load the cache of %Pages if possible. $tests will be
# non-zero if successful.
my $tests = 0;
- if (-f $dircache) {
- warn "scanning for directory cache\n" if $Verbose;
- $tests = load_cache($dircache, $podpath, $podroot);
+ if (-f $self->{Dircache}) {
+ warn "scanning for directory cache\n" if $self->{Verbose};
+ $tests = $self->load_cache();
}
return $tests;
}
sub cache_key {
- my($dircache, $podpath, $podroot, $recurse) = @_;
- return join('!',$dircache,$recurse,@$podpath,$podroot,stat($dircache));
+ my $self = shift;
+ return join('!',
+ $self->{Dircache},
+ $self->{Recurse},
+ @{$self->{Podpath}},
+ $self->{Podroot},
+ stat($self->{Dircache}),
+ );
}
#
@@ -611,24 +470,24 @@ sub cache_key {
# cache of %Pages. if so, it loads them and returns a non-zero value.
#
sub load_cache {
- my($dircache, $podpath, $podroot) = @_;
+ my $self = shift;
my $tests = 0;
local $_;
- warn "scanning for directory cache\n" if $Verbose;
- open(my $cachefh, '<', $dircache) ||
- die "$0: error opening $dircache for reading: $!\n";
+ warn "scanning for directory cache\n" if $self->{Verbose};
+ open(my $cachefh, '<', $self->{Dircache}) ||
+ die "$0: error opening $self->{Dircache} for reading: $!\n";
$/ = "\n";
# is it the same podpath?
$_ = <$cachefh>;
chomp($_);
- $tests++ if (join(":", @$podpath) eq $_);
+ $tests++ if (join(":", @{$self->{Podpath}}) eq $_);
# is it the same podroot?
$_ = <$cachefh>;
chomp($_);
- $tests++ if ($podroot eq $_);
+ $tests++ if ($self->{Podroot} eq $_);
# load the cache if its good
if ($tests != 2) {
@@ -636,96 +495,147 @@ sub load_cache {
return 0;
}
- warn "loading directory cache\n" if $Verbose;
+ warn "loading directory cache\n" if $self->{Verbose};
while (<$cachefh>) {
/(.*?) (.*)$/;
- $Pages{$1} = $2;
+ $self->{Pages}->{$1} = $2;
}
close($cachefh);
return 1;
}
-
-#
-# html_escape: make text safe for HTML
-#
-sub html_escape {
- my $rest = $_[0];
- $rest =~ s/&/&amp;/g;
- $rest =~ s/</&lt;/g;
- $rest =~ s/>/&gt;/g;
- $rest =~ s/"/&quot;/g;
- $rest =~ s/([[:^print:]])/sprintf("&#x%x;", ord($1))/aeg;
- return $rest;
+sub identify_input {
+ my $self = shift;
+ my $input;
+ unless (@ARGV && $ARGV[0]) {
+ if ($self->{Podfile} and $self->{Podfile} ne '-') {
+ $input = $self->{Podfile};
+ } else {
+ $input = '-'; # XXX: make a test case for this
+ }
+ } else {
+ $self->{Podfile} = $ARGV[0];
+ $input = *ARGV;
+ }
+ return $input;
}
-#
-# htmlify - converts a pod section specification to a suitable section
-# specification for HTML. We adopt the mechanism used by the formatter
-# that we use.
-#
-sub htmlify {
- my( $heading) = @_;
- return Pod::Simple::XHTML->can("idify")->(undef, $heading, 1);
+sub parse_input_for_podtree {
+ my ($self, $input) = @_;
+ # set options for input parser
+ my $input_parser = Pod::Simple::SimpleTree->new;
+ # Normalize whitespace indenting
+ $input_parser->strip_verbatim_indent(\&trim_leading_whitespace);
+
+ $input_parser->codes_in_verbatim(0);
+ $input_parser->accept_targets(qw(html HTML));
+ $input_parser->no_errata_section(!$self->{Poderrors}); # note the inverse
+
+ warn "Converting input file $self->{Podfile}\n" if $self->{Verbose};
+ my $podtree = $input_parser->parse_file($input)->root;
+ return $podtree;
}
-#
-# similar to htmlify, but turns non-alphanumerics into underscores
-#
-sub anchorify {
- my ($anchor) = @_;
- $anchor = htmlify($anchor);
- $anchor =~ s/\W/_/g;
- return $anchor;
+sub set_Title_from_podtree {
+ my ($self, $podtree) = @_;
+ unless(defined $self->{Title}) {
+ if($podtree->[0] eq "Document" && ref($podtree->[2]) eq "ARRAY" &&
+ $podtree->[2]->[0] eq "head1" && @{$podtree->[2]} == 3 &&
+ ref($podtree->[2]->[2]) eq "" && $podtree->[2]->[2] eq "NAME" &&
+ ref($podtree->[3]) eq "ARRAY" && $podtree->[3]->[0] eq "Para" &&
+ @{$podtree->[3]} >= 3 &&
+ !(grep { ref($_) ne "" }
+ @{$podtree->[3]}[2..$#{$podtree->[3]}]) &&
+ (@$podtree == 4 ||
+ (ref($podtree->[4]) eq "ARRAY" &&
+ $podtree->[4]->[0] eq "head1"))) {
+ $self->{Title} = join("", @{$podtree->[3]}[2..$#{$podtree->[3]}]);
+ }
+ }
+
+ $self->{Title} //= "";
+ $self->{Title} = html_escape($self->{Title});
+ return $self;
}
-#
-# store POD files in %Pages
-#
-sub _save_page {
- my ($modspec, $modname) = @_;
+sub refine_parser {
+ my ($self, $parser) = @_;
+ # We need to add this ourselves because we use our own header, not
+ # ::XHTML's header. We need to set $parser->backlink to linkify
+ # the =head1 directives
+ my $bodyid = $self->{Backlink} ? ' id="_podtop_"' : '';
- # Remove Podroot from path
- $modspec = $Podroot eq File::Spec->curdir
- ? File::Spec->abs2rel($modspec)
- : File::Spec->abs2rel($modspec,
- File::Spec->canonpath($Podroot));
+ my $csslink = '';
+ my $tdstyle = ' style="background-color: #cccccc; color: #000"';
- # Convert path to unix style path
- $modspec = Pod::Html::_unixify($modspec);
+ if ($self->{Css}) {
+ $csslink = qq(\n<link rel="stylesheet" href="$self->{Css}" type="text/css" />);
+ $csslink =~ s,\\,/,g;
+ $csslink =~ s,(/.):,$1|,;
+ $tdstyle= '';
+ }
+
+ # header/footer block
+ my $block = $self->{Header} ? <<END_OF_BLOCK : '';
+<table border="0" width="100%" cellspacing="0" cellpadding="3">
+<tr><td class="_podblock_"$tdstyle valign="middle">
+<big><strong><span class="_podblock_">&nbsp;$self->{Title}</span></strong></big>
+</td></tr>
+</table>
+END_OF_BLOCK
+
+ # create own header/footer because of --header
+ $parser->html_header(<<"HTMLHEAD");
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>$self->{Title}</title>$csslink
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:$Config{perladmin}" />
+</head>
+
+<body$bodyid>
+$block
+HTMLHEAD
+
+ $parser->html_footer(<<"HTMLFOOT");
+$block
+</body>
- my ($file, $dir) = fileparse($modspec, qr/\.[^.]*/); # strip .ext
- $Pages{$modname} = $dir.$file;
+</html>
+HTMLFOOT
+ return $parser;
}
-sub _unixify {
- my $full_path = shift;
- return '' unless $full_path;
- return $full_path if $full_path eq '/';
-
- my ($vol, $dirs, $file) = File::Spec->splitpath($full_path);
- my @dirs = $dirs eq File::Spec->curdir()
- ? (File::Spec::Unix->curdir())
- : File::Spec->splitdir($dirs);
- if (defined($vol) && $vol) {
- $vol =~ s/:$// if $^O eq 'VMS';
- $vol = uc $vol if $^O eq 'MSWin32';
-
- if( $dirs[0] ) {
- unshift @dirs, $vol;
- }
- else {
- $dirs[0] = $vol;
- }
+# This sub duplicates the guts of Pod::Simple::FromTree. We could have
+# used that module, except that it would have been a non-core dependency.
+sub feed_tree_to_parser {
+ my($self, $parser, $tree) = @_;
+ if(ref($tree) eq "") {
+ $parser->_handle_text($tree);
+ } elsif(!($tree->[0] eq "X" && $parser->nix_X_codes)) {
+ $parser->_handle_element_start($tree->[0], $tree->[1]);
+ $self->feed_tree_to_parser($parser, $_) foreach @{$tree}[2..$#$tree];
+ $parser->_handle_element_end($tree->[0]);
}
- unshift @dirs, '' if File::Spec->file_name_is_absolute($full_path);
- return $file unless scalar(@dirs);
- $full_path = File::Spec::Unix->catfile(File::Spec::Unix->catdir(@dirs),
- $file);
- $full_path =~ s|^\/|| if $^O eq 'MSWin32'; # C:/foo works, /C:/foo doesn't
- $full_path =~ s/\^\././g if $^O eq 'VMS'; # unescape dots
- return $full_path;
+}
+
+sub write_file {
+ my $self = shift;
+ $self->{Htmlfile} = "-" unless $self->{Htmlfile}; # stdout
+ my $fhout;
+ if($self->{Htmlfile} and $self->{Htmlfile} ne '-') {
+ open $fhout, ">", $self->{Htmlfile}
+ or die "$0: cannot open $self->{Htmlfile} file for output: $!\n";
+ } else {
+ open $fhout, ">-";
+ }
+ binmode $fhout, ":utf8";
+ print $fhout $self->{output};
+ close $fhout or die "Failed to close $self->{Htmlfile}: $!";
+ chmod 0644, $self->{Htmlfile} unless $self->{Htmlfile} eq '-';
}
package Pod::Simple::XHTML::LocalPodLinks;
@@ -795,15 +705,15 @@ sub resolve_pod_page_link {
$path = $self->pages->{$to};
}
- my $url = File::Spec::Unix->catfile(Pod::Html::_unixify($self->htmlroot),
+ my $url = File::Spec::Unix->catfile(Pod::Html::Util::unixify($self->htmlroot),
$path);
if ($self->htmlfileurl ne '') {
# then $self->htmlroot eq '' (by definition of htmlfileurl) so
# $self->htmldir needs to be prepended to link to get the absolute path
# that will be relativized
- $url = Pod::Html::relativize_url(
- File::Spec::Unix->catdir(Pod::Html::_unixify($self->htmldir), $url),
+ $url = Pod::Html::Util::relativize_url(
+ File::Spec::Unix->catdir(Pod::Html::Util::unixify($self->htmldir), $url),
$self->htmlfileurl # already unixified
);
}
@@ -811,56 +721,4 @@ sub resolve_pod_page_link {
return $url . ".html$section";
}
-package Pod::Html;
-
-#
-# relativize_url - convert an absolute URL to one relative to a base URL.
-# Assumes both end in a filename.
-#
-sub relativize_url {
- my ($dest, $source) = @_;
-
- # Remove each file from its path
- my ($dest_volume, $dest_directory, $dest_file) =
- File::Spec::Unix->splitpath( $dest );
- $dest = File::Spec::Unix->catpath( $dest_volume, $dest_directory, '' );
-
- my ($source_volume, $source_directory, $source_file) =
- File::Spec::Unix->splitpath( $source );
- $source = File::Spec::Unix->catpath( $source_volume, $source_directory, '' );
-
- my $rel_path = '';
- if ($dest ne '') {
- $rel_path = File::Spec::Unix->abs2rel( $dest, $source );
- }
-
- if ($rel_path ne '' && substr( $rel_path, -1 ) ne '/') {
- $rel_path .= "/$dest_file";
- } else {
- $rel_path .= "$dest_file";
- }
-
- return $rel_path;
-}
-
-# Remove any level of indentation (spaces or tabs) from each code block consistently
-# Adapted from: https://metacpan.org/source/HAARG/MetaCPAN-Pod-XHTML-0.002001/lib/Pod/Simple/Role/StripVerbatimIndent.pm
-sub trim_leading_whitespace {
- my ($para) = @_;
-
- # Start by converting tabs to spaces
- @$para = Text::Tabs::expand(@$para);
-
- # Find the line with the least amount of indent, as that's our "base"
- my @indent_levels = (sort(map { $_ =~ /^( *)./mg } @$para));
- my $indent = $indent_levels[0] || "";
-
- # Remove the "base" amount of indent from each line
- foreach (@$para) {
- $_ =~ s/^\Q$indent//mg;
- }
-
- return;
-}
-
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html/Util.pm
new file mode 100755
index 0000000000..88452d4d4e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html/Util.pm
@@ -0,0 +1,282 @@
+package Pod::Html::Util;
+use strict;
+use Exporter 'import';
+
+our $VERSION = 1.34; # Please keep in synch with lib/Pod/Html.pm
+$VERSION = eval $VERSION;
+our @EXPORT_OK = qw(
+ anchorify
+ html_escape
+ htmlify
+ process_command_line
+ relativize_url
+ trim_leading_whitespace
+ unixify
+ usage
+);
+
+use Config;
+use File::Spec;
+use File::Spec::Unix;
+use Getopt::Long;
+use Pod::Simple::XHTML;
+use Text::Tabs;
+use locale; # make \w work right in non-ASCII lands
+
+=head1 NAME
+
+Pod::Html::Util - helper functions for Pod-Html
+
+=head1 SUBROUTINES
+
+B<Note:> While these functions are importable on request from
+F<Pod::Html::Util>, they are specifically intended for use within (a) the
+F<Pod-Html> distribution (modules and test programs) shipped as part of the
+Perl 5 core and (b) other parts of the core such as the F<installhtml>
+program. These functions may be modified or relocated within the core
+distribution -- or removed entirely therefrom -- as the core's needs evolve.
+Hence, you should not rely on these functions in situations other than those
+just described.
+
+=cut
+
+=head2 C<process_command_line()>
+
+Process command-line switches (options). Returns a reference to a hash. Will
+provide usage message if C<--help> switch is present or if parameters are
+invalid.
+
+Calling this subroutine may modify C<@ARGV>.
+
+=cut
+
+sub process_command_line {
+ my %opts = map { $_ => undef } (qw|
+ backlink cachedir css flush
+ header help htmldir htmlroot
+ index infile outfile poderrors
+ podpath podroot quiet recurse
+ title verbose
+ |);
+ unshift @ARGV, split ' ', $Config{pod2html} if $Config{pod2html};
+ my $result = GetOptions(\%opts,
+ 'backlink!',
+ 'cachedir=s',
+ 'css=s',
+ 'flush',
+ 'help',
+ 'header!',
+ 'htmldir=s',
+ 'htmlroot=s',
+ 'index!',
+ 'infile=s',
+ 'outfile=s',
+ 'poderrors!',
+ 'podpath=s',
+ 'podroot=s',
+ 'quiet!',
+ 'recurse!',
+ 'title=s',
+ 'verbose!',
+ );
+ usage("-", "invalid parameters") if not $result;
+ usage("-") if defined $opts{help}; # see if the user asked for help
+ $opts{help} = ""; # just to make -w shut-up.
+ return \%opts;
+}
+
+=head2 C<usage()>
+
+Display customary Pod::Html usage information on STDERR.
+
+=cut
+
+sub usage {
+ my $podfile = shift;
+ warn "$0: $podfile: @_\n" if @_;
+ die <<END_OF_USAGE;
+Usage: $0 --help --htmldir=<name> --htmlroot=<URL>
+ --infile=<name> --outfile=<name>
+ --podpath=<name>:...:<name> --podroot=<name>
+ --cachedir=<name> --flush --recurse --norecurse
+ --quiet --noquiet --verbose --noverbose
+ --index --noindex --backlink --nobacklink
+ --header --noheader --poderrors --nopoderrors
+ --css=<URL> --title=<name>
+
+ --[no]backlink - turn =head1 directives into links pointing to the top of
+ the page (off by default).
+ --cachedir - directory for the directory cache files.
+ --css - stylesheet URL
+ --flush - flushes the directory cache.
+ --[no]header - produce block header/footer (default is no headers).
+ --help - prints this message.
+ --htmldir - directory for resulting HTML files.
+ --htmlroot - http-server base directory from which all relative paths
+ in podpath stem (default is /).
+ --[no]index - generate an index at the top of the resulting html
+ (default behaviour).
+ --infile - filename for the pod to convert (input taken from stdin
+ by default).
+ --outfile - filename for the resulting html file (output sent to
+ stdout by default).
+ --[no]poderrors - include a POD ERRORS section in the output if there were
+ any POD errors in the input (default behavior).
+ --podpath - colon-separated list of directories containing library
+ pods (empty by default).
+ --podroot - filesystem base directory from which all relative paths
+ in podpath stem (default is .).
+ --[no]quiet - suppress some benign warning messages (default is off).
+ --[no]recurse - recurse on those subdirectories listed in podpath
+ (default behaviour).
+ --title - title that will appear in resulting html file.
+ --[no]verbose - self-explanatory (off by default).
+
+END_OF_USAGE
+
+}
+
+=head2 C<unixify()>
+
+Ensure that F<Pod::Html>'s internals and tests handle paths consistently
+across Unix, Windows and VMS.
+
+=cut
+
+sub unixify {
+ my $full_path = shift;
+ return '' unless $full_path;
+ return $full_path if $full_path eq '/';
+
+ my ($vol, $dirs, $file) = File::Spec->splitpath($full_path);
+ my @dirs = $dirs eq File::Spec->curdir()
+ ? (File::Spec::Unix->curdir())
+ : File::Spec->splitdir($dirs);
+ if (defined($vol) && $vol) {
+ $vol =~ s/:$// if $^O eq 'VMS';
+ $vol = uc $vol if $^O eq 'MSWin32';
+
+ if( $dirs[0] ) {
+ unshift @dirs, $vol;
+ }
+ else {
+ $dirs[0] = $vol;
+ }
+ }
+ unshift @dirs, '' if File::Spec->file_name_is_absolute($full_path);
+ return $file unless scalar(@dirs);
+ $full_path = File::Spec::Unix->catfile(File::Spec::Unix->catdir(@dirs),
+ $file);
+ $full_path =~ s|^\/|| if $^O eq 'MSWin32'; # C:/foo works, /C:/foo doesn't
+ $full_path =~ s/\^\././g if $^O eq 'VMS'; # unescape dots
+ return $full_path;
+}
+
+=head2 C<relativize_url()>
+
+Convert an absolute URL to one relative to a base URL.
+Assumes both end in a filename.
+
+=cut
+
+sub relativize_url {
+ my ($dest, $source) = @_;
+
+ # Remove each file from its path
+ my ($dest_volume, $dest_directory, $dest_file) =
+ File::Spec::Unix->splitpath( $dest );
+ $dest = File::Spec::Unix->catpath( $dest_volume, $dest_directory, '' );
+
+ my ($source_volume, $source_directory, $source_file) =
+ File::Spec::Unix->splitpath( $source );
+ $source = File::Spec::Unix->catpath( $source_volume, $source_directory, '' );
+
+ my $rel_path = '';
+ if ($dest ne '') {
+ $rel_path = File::Spec::Unix->abs2rel( $dest, $source );
+ }
+
+ if ($rel_path ne '' && substr( $rel_path, -1 ) ne '/') {
+ $rel_path .= "/$dest_file";
+ } else {
+ $rel_path .= "$dest_file";
+ }
+
+ return $rel_path;
+}
+
+=head2 C<html_escape()>
+
+Make text safe for HTML.
+
+=cut
+
+sub html_escape {
+ my $rest = $_[0];
+ $rest =~ s/&/&amp;/g;
+ $rest =~ s/</&lt;/g;
+ $rest =~ s/>/&gt;/g;
+ $rest =~ s/"/&quot;/g;
+ $rest =~ s/([[:^print:]])/sprintf("&#x%x;", ord($1))/aeg;
+ return $rest;
+}
+
+=head2 C<htmlify()>
+
+ htmlify($heading);
+
+Converts a pod section specification to a suitable section specification
+for HTML. Note that we keep spaces and special characters except
+C<", ?> (Netscape problem) and the hyphen (writer's problem...).
+
+=cut
+
+sub htmlify {
+ my( $heading) = @_;
+ return Pod::Simple::XHTML->can("idify")->(undef, $heading, 1);
+}
+
+=head2 C<anchorify()>
+
+ anchorify(@heading);
+
+Similar to C<htmlify()>, but turns non-alphanumerics into underscores. Note
+that C<anchorify()> is not exported by default.
+
+=cut
+
+sub anchorify {
+ my ($anchor) = @_;
+ $anchor = htmlify($anchor);
+ $anchor =~ s/\W/_/g;
+ return $anchor;
+}
+
+=head2 C<trim_leading_whitespace()>
+
+Remove any level of indentation (spaces or tabs) from each code block
+consistently. Adapted from:
+https://metacpan.org/source/HAARG/MetaCPAN-Pod-XHTML-0.002001/lib/Pod/Simple/Role/StripVerbatimIndent.pm
+
+=cut
+
+sub trim_leading_whitespace {
+ my ($para) = @_;
+
+ # Start by converting tabs to spaces
+ @$para = Text::Tabs::expand(@$para);
+
+ # Find the line with the least amount of indent, as that's our "base"
+ my @indent_levels = (sort(map { $_ =~ /^( *)./mg } @$para));
+ my $indent = $indent_levels[0] || "";
+
+ # Remove the "base" amount of indent from each line
+ foreach (@$para) {
+ $_ =~ s/^\Q$indent//mg;
+ }
+
+ return;
+}
+
+1;
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm
index d7c029357a..5ed95bbc90 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm
@@ -14,36 +14,33 @@
package Pod::Man;
-use 5.008;
+use 5.010;
use strict;
use warnings;
-use subs qw(makespace);
-use vars qw(@ISA %ESCAPES $PREAMBLE $VERSION);
-
use Carp qw(carp croak);
use Pod::Simple ();
# Conditionally import Encode and set $HAS_ENCODE if it is available. This is
# required to support building as part of Perl core, since podlators is built
# before Encode is.
-our $HAS_ENCODE;
+my $HAS_ENCODE;
BEGIN {
$HAS_ENCODE = eval { require Encode };
}
-@ISA = qw(Pod::Simple);
-
-$VERSION = '4.14';
-
-# Set the debugging level. If someone has inserted a debug function into this
-# class already, use that. Otherwise, use any Pod::Simple debug function
-# that's defined, and failing that, define a debug level of 10.
-BEGIN {
- my $parent = defined (&Pod::Simple::DEBUG) ? \&Pod::Simple::DEBUG : undef;
- unless (defined &DEBUG) {
- *DEBUG = $parent || sub () { 10 };
- }
+our @ISA = qw(Pod::Simple);
+our $VERSION = '5.01';
+
+# Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available. Code
+# taken from Pod::Simple 3.32, but was only added in 3.30.
+my ($NBSP, $SHY);
+if ($Pod::Simple::VERSION ge 3.30) {
+ $NBSP = $Pod::Simple::nbsp;
+ $SHY = $Pod::Simple::shy;
+} else {
+ $NBSP = chr utf8::unicode_to_native(0xA0);
+ $SHY = chr utf8::unicode_to_native(0xAD);
}
# Import the ASCII constant from Pod::Simple. This is true iff we're in an
@@ -51,15 +48,12 @@ BEGIN {
# generally only false for EBCDIC.
BEGIN { *ASCII = \&Pod::Simple::ASCII }
-# Pretty-print a data structure. Only used for debugging.
-BEGIN { *pretty = \&Pod::Simple::pretty }
-
# Formatting instructions for various types of blocks. cleanup makes hyphens
# hard, adds spaces between consecutive underscores, and escapes backslashes.
# convert translates characters into escapes. guesswork means to apply the
-# transformations done by the guesswork sub. literal says to protect literal
-# quotes from being turned into UTF-8 quotes. By default, all transformations
-# are on except literal, but some elements override.
+# transformations done by the guesswork sub (if enabled). literal says to
+# protect literal quotes from being turned into UTF-8 quotes. By default, all
+# transformations are on except literal, but some elements override.
#
# DEFAULT specifies the default settings. All other elements should list only
# those settings that they are overriding. Data indicates =for roff blocks,
@@ -75,6 +69,98 @@ my %FORMATTING = (
X => { cleanup => 0, guesswork => 0 },
);
+# Try to map an encoding as understood by Perl Encode to an encoding
+# understood by groff's preconv. Encode doesn't care about hyphens or
+# capitalization, but preconv does. The key is the canonicalized Encode
+# encoding, and the value is something preconv might understand.
+#
+# FreeBSD mandoc only understands utf-8 and iso-latin-1 as of 2022-09-24.
+# groff preconv prefers iso-8859-1, but also understands iso-latin-1, so
+# convert ISO-8859-1 to iso-latin-1 for FreeBSD.
+my %ENCODINGS = (
+ ascii => 'us-ascii',
+ big5 => 'big5',
+ big5eten => 'big5',
+ cp950 => 'big5',
+ cp1047 => 'cp1047',
+ euccn => 'gb2312',
+ eucjp => 'euc-jp',
+ euckr => 'euc-kr',
+ gb2312 => 'gb2312',
+ gb2312raw => 'gb2312',
+ iso88591 => 'iso-latin-1',
+ iso88592 => 'iso-8859-2',
+ iso88595 => 'iso-8859-5',
+ iso88597 => 'iso-8859-7',
+ iso88599 => 'iso-8859-9',
+ iso885913 => 'iso-8859-13',
+ iso885915 => 'iso-8859-15',
+ koi8r => 'koi8-r',
+ latin1 => 'iso-8859-1',
+ usascii => 'us-ascii',
+ utf8 => 'utf-8',
+ utf16 => 'utf-16',
+ utf16be => 'utf-16be',
+ utf16le => 'utf-16le',
+);
+
+##############################################################################
+# Translation tables
+##############################################################################
+
+# The following table is adapted from Tom Christiansen's pod2man. It is only
+# used with roff output. It assumes that the standard preamble has already
+# been printed, since that's what defines all of the accent marks. We really
+# want to do something better than this when *roff actually supports other
+# character sets itself, since these results are pretty poor.
+#
+# This only works in an ASCII world. What to do in a non-ASCII world is very
+# unclear, so we just output what we get and hope for the best.
+my %ESCAPES;
+@ESCAPES{0xA0 .. 0xFF} = (
+ $NBSP, undef, undef, undef, undef, undef, undef, undef,
+ undef, undef, undef, undef, undef, $SHY, undef, undef,
+
+ undef, undef, undef, undef, undef, undef, undef, undef,
+ undef, undef, undef, undef, undef, undef, undef, undef,
+
+ "A\\*`", "A\\*'", "A\\*^", "A\\*~", "A\\*:", "A\\*o", "\\*(Ae", "C\\*,",
+ "E\\*`", "E\\*'", "E\\*^", "E\\*:", "I\\*`", "I\\*'", "I\\*^", "I\\*:",
+
+ "\\*(D-", "N\\*~", "O\\*`", "O\\*'", "O\\*^", "O\\*~", "O\\*:", undef,
+ "O\\*/", "U\\*`", "U\\*'", "U\\*^", "U\\*:", "Y\\*'", "\\*(Th", "\\*8",
+
+ "a\\*`", "a\\*'", "a\\*^", "a\\*~", "a\\*:", "a\\*o", "\\*(ae", "c\\*,",
+ "e\\*`", "e\\*'", "e\\*^", "e\\*:", "i\\*`", "i\\*'", "i\\*^", "i\\*:",
+
+ "\\*(d-", "n\\*~", "o\\*`", "o\\*'", "o\\*^", "o\\*~", "o\\*:", undef,
+ "o\\*/" , "u\\*`", "u\\*'", "u\\*^", "u\\*:", "y\\*'", "\\*(th", "y\\*:",
+) if ASCII;
+
+##############################################################################
+# Utility functions
+##############################################################################
+
+# Quote an argument to a macro.
+#
+# $arg - Intended argument to the macro
+#
+# Returns: $arg suitably escaped and quoted
+sub _quote_macro_argument {
+ my ($arg) = @_;
+ if (length($arg) > 0 && $arg !~ m{ [\s\"] }xms) {
+ return $arg;
+ }
+ $arg =~ s{ \" }{""}xmsg;
+ return qq("$arg");
+}
+
+# Returns whether the given encoding needs a call to Encode::encode.
+sub _needs_encode {
+ my ($encoding) = @_;
+ return $encoding ne 'roff' && $encoding ne 'groff';
+}
+
##############################################################################
# Object initialization
##############################################################################
@@ -88,9 +174,6 @@ sub new {
my $class = shift;
my $self = $class->SUPER::new;
- # Tell Pod::Simple not to handle S<> by automatically inserting &nbsp;.
- $self->nbsp_for_S (1);
-
# Tell Pod::Simple to keep whitespace whenever possible.
if (my $preserve_whitespace = $self->can ('preserve_whitespace')) {
$self->$preserve_whitespace (1);
@@ -109,63 +192,84 @@ sub new {
# to put them in our object as hash keys and values. This could cause
# problems if we ever clash with Pod::Simple's own internal class
# variables.
- %$self = (%$self, @_);
+ my %opts = @_;
+ my @opts = map { ("opt_$_", $opts{$_}) } keys %opts;
+ %$self = (%$self, @opts);
+
+ # Pod::Simple uses encoding internally, so we need to store it as
+ # ENCODING. Set the default to UTF-8 if not specified.
+ #
+ # Degrade to the old roff encoding if Encode is not available.
+ #
+ # Suppress the warning message when PERL_CORE is set, indicating this is
+ # running as part of the core Perl build. Perl builds podlators (and all
+ # pure Perl modules) before Encode and other XS modules, so Encode won't
+ # yet be available. Rely on the Perl core build to generate man pages
+ # later, after all the modules are available, so that UTF-8 handling will
+ # be correct.
+ my %options = @_;
+ if (defined $self->{opt_encoding}) {
+ $$self{ENCODING} = $self->{opt_encoding};
+ } elsif (ASCII) {
+ $$self{ENCODING} = 'UTF-8';
+ } else {
+ $$self{ENCODING} = 'groff';
+ }
+ if (_needs_encode($$self{ENCODING}) && !$HAS_ENCODE) {
+ if (!$ENV{PERL_CORE}) {
+ carp ('encoding requested but Encode module not available,'
+ . ' falling back to groff escapes');
+ }
+ $$self{ENCODING} = 'groff';
+ }
# Send errors to stderr if requested.
- if ($$self{stderr} and not $$self{errors}) {
- $$self{errors} = 'stderr';
+ if ($self->{opt_stderr} and not $self->{opt_errors}) {
+ $self->{opt_errors} = 'stderr';
}
- delete $$self{stderr};
+ delete $self->{opt_stderr};
# Validate the errors parameter and act on it.
- if (not defined $$self{errors}) {
- $$self{errors} = 'pod';
- }
- if ($$self{errors} eq 'stderr' || $$self{errors} eq 'die') {
+ $self->{opt_errors} //= 'pod';
+ if ($self->{opt_errors} eq 'stderr' || $self->{opt_errors} eq 'die') {
$self->no_errata_section (1);
$self->complain_stderr (1);
- if ($$self{errors} eq 'die') {
- $$self{complain_die} = 1;
+ if ($self->{opt_errors} eq 'die') {
+ $self->{complain_die} = 1;
}
- } elsif ($$self{errors} eq 'pod') {
+ } elsif ($self->{opt_errors} eq 'pod') {
$self->no_errata_section (0);
$self->complain_stderr (0);
- } elsif ($$self{errors} eq 'none') {
+ } elsif ($self->{opt_errors} eq 'none') {
$self->no_errata_section (1);
$self->no_whining (1);
} else {
- croak (qq(Invalid errors setting: "$$self{errors}"));
- }
- delete $$self{errors};
-
- # Degrade back to non-utf8 if Encode is not available.
- #
- # Suppress the warning message when PERL_CORE is set, indicating this is
- # running as part of the core Perl build. Perl builds podlators (and all
- # pure Perl modules) before Encode and other XS modules, so Encode won't
- # yet be available. Rely on the Perl core build to generate man pages
- # later, after all the modules are available, so that UTF-8 handling will
- # be correct.
- if ($$self{utf8} and !$HAS_ENCODE) {
- if (!$ENV{PERL_CORE}) {
- carp ('utf8 mode requested but Encode module not available,'
- . ' falling back to non-utf8');
- }
- delete $$self{utf8};
+ croak (qq(Invalid errors setting: "$self->{opt_errors}"));
}
+ delete $self->{opt_errors};
# Initialize various other internal constants based on our arguments.
$self->init_fonts;
$self->init_quotes;
$self->init_page;
- # For right now, default to turning on all of the magic.
- $$self{MAGIC_CPP} = 1;
- $$self{MAGIC_EMDASH} = 1;
- $$self{MAGIC_FUNC} = 1;
- $$self{MAGIC_MANREF} = 1;
- $$self{MAGIC_SMALLCAPS} = 1;
- $$self{MAGIC_VARS} = 1;
+ # Configure guesswork based on options.
+ my $guesswork = $self->{opt_guesswork} || q{};
+ my %guesswork = map { $_ => 1 } split(m{,}xms, $guesswork);
+ if (!%guesswork || $guesswork{all}) {
+ #<<<
+ $$self{GUESSWORK} = {
+ functions => 1,
+ manref => 1,
+ quoting => 1,
+ variables => 1,
+ };
+ #>>>
+ } elsif ($guesswork{none}) {
+ $$self{GUESSWORK} = {};
+ } else {
+ $$self{GUESSWORK} = {%guesswork};
+ }
return $self;
}
@@ -182,29 +286,41 @@ sub init_fonts {
# Figure out the fixed-width font. If user-supplied, make sure that they
# are the right length.
- for (qw/fixed fixedbold fixeditalic fixedbolditalic/) {
- my $font = $$self{$_};
- if (defined ($font) && (length ($font) < 1 || length ($font) > 2)) {
- croak qq(roff font should be 1 or 2 chars, not "$font");
+ for (qw(fixed fixedbold fixeditalic fixedbolditalic)) {
+ my $font = $self->{"opt_$_"};
+ if (defined($font) && (length($font) < 1 || length($font) > 2)) {
+ croak(qq(roff font should be 1 or 2 chars, not "$font"));
}
}
# Set the default fonts. We can't be sure portably across different
# implementations what fixed bold-italic may be called (if it's even
# available), so default to just bold.
- $$self{fixed} ||= 'CW';
- $$self{fixedbold} ||= 'CB';
- $$self{fixeditalic} ||= 'CI';
- $$self{fixedbolditalic} ||= 'CB';
+ #<<<
+ $self->{opt_fixed} ||= 'CW';
+ $self->{opt_fixedbold} ||= 'CB';
+ $self->{opt_fixeditalic} ||= 'CI';
+ $self->{opt_fixedbolditalic} ||= 'CB';
+ #>>>
# Set up a table of font escapes. First number is fixed-width, second is
# bold, third is italic.
- $$self{FONTS} = { '000' => '\fR', '001' => '\fI',
- '010' => '\fB', '011' => '\f(BI',
- '100' => toescape ($$self{fixed}),
- '101' => toescape ($$self{fixeditalic}),
- '110' => toescape ($$self{fixedbold}),
- '111' => toescape ($$self{fixedbolditalic}) };
+ $self->{FONTS} = {
+ '000' => '\fR',
+ '001' => '\fI',
+ '010' => '\fB',
+ '011' => '\f(BI',
+ '100' => toescape($self->{opt_fixed}),
+ '101' => toescape($self->{opt_fixeditalic}),
+ '110' => toescape($self->{opt_fixedbold}),
+ '111' => toescape($self->{opt_fixedbolditalic}),
+ };
+
+ # Precalculate a regex that matches all fixed-width fonts, which will be
+ # used later by switchquotes.
+ my @fixedpat = map { quotemeta($self->{FONTS}{$_}) } qw(100 101 110 111);
+ my $fixedpat = join('|', @fixedpat);
+ $self->{FIXEDPAT} = qr{ $fixedpat }xms;
}
# Initialize the quotes that we'll be using for C<> text. This requires some
@@ -215,32 +331,28 @@ sub init_quotes {
my ($self) = (@_);
# Handle the quotes option first, which sets both quotes at once.
- $$self{quotes} ||= '"';
- if ($$self{quotes} eq 'none') {
+ $self->{opt_quotes} ||= '"';
+ if ($self->{opt_quotes} eq 'none') {
$$self{LQUOTE} = $$self{RQUOTE} = '';
- } elsif (length ($$self{quotes}) == 1) {
- $$self{LQUOTE} = $$self{RQUOTE} = $$self{quotes};
- } elsif (length ($$self{quotes}) % 2 == 0) {
- my $length = length ($$self{quotes}) / 2;
- $$self{LQUOTE} = substr ($$self{quotes}, 0, $length);
- $$self{RQUOTE} = substr ($$self{quotes}, $length);
+ } elsif (length ($self->{opt_quotes}) == 1) {
+ $$self{LQUOTE} = $$self{RQUOTE} = $self->{opt_quotes};
+ } elsif (length ($self->{opt_quotes}) % 2 == 0) {
+ my $length = length ($self->{opt_quotes}) / 2;
+ $$self{LQUOTE} = substr ($self->{opt_quotes}, 0, $length);
+ $$self{RQUOTE} = substr ($self->{opt_quotes}, $length);
} else {
- croak(qq(Invalid quote specification "$$self{quotes}"))
+ croak(qq(Invalid quote specification "$self->{opt_quotes}"))
}
# Now handle the lquote and rquote options.
- if (defined $$self{lquote}) {
- $$self{LQUOTE} = $$self{lquote} eq 'none' ? q{} : $$self{lquote};
+ if (defined($self->{opt_lquote})) {
+ $self->{opt_lquote} = q{} if $self->{opt_lquote} eq 'none';
+ $$self{LQUOTE} = $self->{opt_lquote};
}
- if (defined $$self{rquote}) {
- $$self{RQUOTE} = $$self{rquote} eq 'none' ? q{} : $$self{rquote};
+ if (defined $self->{opt_rquote}) {
+ $self->{opt_rquote} = q{} if $self->{opt_rquote} eq 'none';
+ $$self{RQUOTE} = $self->{opt_rquote};
}
-
- # Double the first quote; note that this should not be s///g as two double
- # quotes is represented in *roff as three double quotes, not four. Weird,
- # I know.
- $$self{LQUOTE} =~ s/\"/\"\"/;
- $$self{RQUOTE} =~ s/\"/\"\"/;
}
# Initialize the page title information and indentation from our arguments.
@@ -254,17 +366,9 @@ sub init_page {
# Set the defaults for page titles and indentation if the user didn't
# override anything.
- $$self{center} = 'User Contributed Perl Documentation'
- unless defined $$self{center};
- $$self{release} = 'perl v' . $version
- unless defined $$self{release};
- $$self{indent} = 4
- unless defined $$self{indent};
-
- # Double quotes in things that will be quoted.
- for (qw/center release/) {
- $$self{$_} =~ s/\"/\"\"/g if $$self{$_};
- }
+ $self->{opt_center} //= 'User Contributed Perl Documentation';
+ $self->{opt_release} //= 'perl v' . $version;
+ $self->{opt_indent} //= 4;
}
##############################################################################
@@ -289,7 +393,6 @@ sub init_page {
# according to the current formatting instructions as we do.
sub _handle_text {
my ($self, $text) = @_;
- DEBUG > 3 and print "== $text\n";
my $tag = $$self{PENDING}[-1];
$$tag[2] .= $self->format_text ($$tag[1], $text);
}
@@ -308,7 +411,6 @@ sub method_for_element {
# text and nested elements. Otherwise, if start_element is defined, call it.
sub _handle_element_start {
my ($self, $element, $attrs) = @_;
- DEBUG > 3 and print "++ $element (<", join ('> <', %$attrs), ">)\n";
my $method = $self->method_for_element ($element);
# If we have a command handler, we need to accumulate the contents of the
@@ -316,7 +418,6 @@ sub _handle_element_start {
# <Para> and the formatting codes so that IN_NAME isn't still set for the
# first heading after the NAME heading.
if ($self->can ("cmd_$method")) {
- DEBUG > 2 and print "<$element> starts saving a tag\n";
$$self{IN_NAME} = 0 if ($element ne 'Para' && length ($element) > 1);
# How we're going to format embedded text blocks depends on the tag
@@ -328,11 +429,8 @@ sub _handle_element_start {
%{ $FORMATTING{$element} || {} },
};
push (@{ $$self{PENDING} }, [ $attrs, $formatting, '' ]);
- DEBUG > 4 and print "Pending: [", pretty ($$self{PENDING}), "]\n";
} elsif (my $start_method = $self->can ("start_$method")) {
$self->$start_method ($attrs, '');
- } else {
- DEBUG > 2 and print "No $method start method, skipping\n";
}
}
@@ -341,16 +439,12 @@ sub _handle_element_start {
# an end_ method for the element, call that.
sub _handle_element_end {
my ($self, $element) = @_;
- DEBUG > 3 and print "-- $element\n";
my $method = $self->method_for_element ($element);
# If we have a command handler, pull off the pending text and pass it to
# the handler along with the saved attribute hash.
if (my $cmd_method = $self->can ("cmd_$method")) {
- DEBUG > 2 and print "</$element> stops saving a tag\n";
my $tag = pop @{ $$self{PENDING} };
- DEBUG > 4 and print "Popped: [", pretty ($tag), "]\n";
- DEBUG > 4 and print "Pending: [", pretty ($$self{PENDING}), "]\n";
my $text = $self->$cmd_method ($$tag[0], $$tag[2]);
if (defined $text) {
if (@{ $$self{PENDING} } > 1) {
@@ -361,8 +455,6 @@ sub _handle_element_end {
}
} elsif (my $end_method = $self->can ("end_$method")) {
$self->$end_method ();
- } else {
- DEBUG > 2 and print "No $method end method, skipping\n";
}
}
@@ -381,31 +473,40 @@ sub format_text {
my $literal = $$options{literal};
# Cleanup just tidies up a few things, telling *roff that the hyphens are
- # hard, putting a bit of space between consecutive underscores, and
- # escaping backslashes. Be careful not to mangle our character
- # translations by doing this before processing character translation.
+ # hard, putting a bit of space between consecutive underscores, escaping
+ # backslashes, and converting zero-width spaces to zero-width break
+ # points.
if ($cleanup) {
$text =~ s/\\/\\e/g;
$text =~ s/-/\\-/g;
$text =~ s/_(?=_)/_\\|/g;
+ $text =~ s/\x{200B}/\\:/g;
}
- # Normally we do character translation, but we won't even do that in
- # <Data> blocks or if UTF-8 output is desired.
- if ($convert && !$$self{utf8} && ASCII) {
- $text =~ s/([^\x00-\x7F])/$ESCAPES{ord ($1)} || "X"/eg;
+ # Except in <Data> blocks, if groff or roff encoding is requested and
+ # we're in an ASCII environment, do the encoding. For EBCDIC, we just
+ # write what we get and hope for the best. Leave non-breaking spaces and
+ # soft hyphens alone; we'll convert those at the last minute.
+ if ($convert) {
+ if (ASCII) {
+ if ($$self{ENCODING} eq 'groff') {
+ $text =~ s{ ([^\x00-\x7F\xA0\xAD]) }{
+ '\\[u' . sprintf('%04X', ord($1)) . ']'
+ }xmsge;
+ } elsif ($$self{ENCODING} eq 'roff') {
+ $text =~ s/([^\x00-\x7F\xA0\xAD])/$ESCAPES{ord ($1)} || "X"/eg;
+ }
+ }
}
# Ensure that *roff doesn't convert literal quotes to UTF-8 single quotes,
- # but don't mess up our accept escapes.
+ # but don't mess up accent escapes.
if ($literal) {
$text =~ s/(?<!\\\*)\'/\\*\(Aq/g;
$text =~ s/(?<!\\\*)\`/\\\`/g;
}
- # If guesswork is asked for, do that. This involves more substantial
- # formatting based on various heuristics that may only be appropriate for
- # particular documents.
+ # If guesswork is is viable for this block, do that.
if ($guesswork) {
$text = $self->guesswork ($text);
}
@@ -420,31 +521,45 @@ sub quote_literal {
my $self = shift;
local $_ = shift;
+ # If in NAME section, just return an ASCII quoted string to avoid
+ # confusing tools like whatis.
+ if ($$self{IN_NAME}) {
+ return $self->{LQUOTE} . $_ . $self->{RQUOTE};
+ }
+
# A regex that matches the portion of a variable reference that's the
# array or hash index, separated out just because we want to use it in
# several places in the following regex.
- my $index = '(?: \[.*\] | \{.*\} )?';
-
- # If in NAME section, just return an ASCII quoted string to avoid
- # confusing tools like whatis.
- return qq{"$_"} if $$self{IN_NAME};
+ my $index = '(?: \[[^]]+\] | \{[^}]+\} )?';
# Check for things that we don't want to quote, and if we find any of
# them, return the string with just a font change and no quoting.
+ #
+ # Traditionally, Pod::Man has not quoted Perl variables, functions,
+ # numbers, or hex constants, but this is not always desirable. Make this
+ # optional on the quoting guesswork flag.
+ my $extra = qr{(?!)}xms; # never matches
+ if ($$self{GUESSWORK}{quoting}) {
+ $extra = qr{
+ \$+ [\#^]? \S $index # special ($^F, $")
+ | [\$\@%&*]+ \#? [:\'\w]+ $index # plain var or func
+ | [\$\@%&*]* [:\'\w]+
+ (?: \\-> )? \(\s*[^\s,\)]*\s*\) # 0/1-arg func call
+ | (?: [+] || \\- )? ( \d[\d.]* | \.\d+ )
+ (?: [eE] (?: [+] || \\- )? \d+ )? # a number
+ | 0x [a-fA-F\d]+ # a hex constant
+ }xms;
+ }
m{
^\s*
(?:
- ( [\'\`\"] ) .* \1 # already quoted
- | \\\*\(Aq .* \\\*\(Aq # quoted and escaped
- | \\?\` .* ( \' | \\\*\(Aq ) # `quoted'
- | \$+ [\#^]? \S $index # special ($^Foo, $")
- | [\$\@%&*]+ \#? [:\'\w]+ $index # plain var or func
- | [\$\@%&*]* [:\'\w]+ (?: -> )? \(\s*[^\s,]\s*\) # 0/1-arg func call
- | [-+]? ( \d[\d.]* | \.\d+ ) (?: [eE][-+]?\d+ )? # a number
- | 0x [a-fA-F\d]+ # a hex constant
+ ( [\'\"] ) .* \1 # already quoted
+ | \\\*\(Aq .* \\\*\(Aq # quoted and escaped
+ | \\?\` .* ( \' | \\?\` | \\\*\(Aq ) # `quoted' or `quoted`
+ | $extra
)
\s*\z
- }xso and return '\f(FS' . $_ . '\f(FE';
+ }xms and return '\f(FS' . $_ . '\f(FE';
# If we didn't return, go ahead and quote the text.
return '\f(FS\*(C`' . $_ . "\\*(C'\\f(FE";
@@ -453,10 +568,8 @@ sub quote_literal {
# Takes a text block to perform guesswork on. Returns the text block with
# formatting codes added. This is the code that marks up various Perl
# constructs and things commonly used in man pages without requiring the user
-# to add any explicit markup, and is applied to all non-literal text. We're
-# guaranteed that the text we're applying guesswork to does not contain any
-# *roff formatting codes. Note that the inserted font sequences must be
-# treated later with mapfonts or textmapfonts.
+# to add any explicit markup, and is applied to all non-literal text. Note
+# that the inserted font sequences must be treated later with mapfonts.
#
# This method is very fragile, both in the regular expressions it uses and in
# the ordering of those modifications. Care and testing is required when
@@ -464,7 +577,6 @@ sub quote_literal {
sub guesswork {
my $self = shift;
local $_ = shift;
- DEBUG > 5 and print " Guesswork called on [$_]\n";
# By the time we reach this point, all hyphens will be escaped by adding a
# backslash. We want to undo that escaping if they're part of regular
@@ -475,9 +587,9 @@ sub guesswork {
# Note that this is not user-controllable; we pretty much have to do this
# transformation or *roff will mangle the output in unacceptable ways.
s{
- ( (?:\G|^|\s) [\(\"]* [a-zA-Z] ) ( \\- )?
+ ( (?:\G|^|\s|$NBSP) [\(\"]* [a-zA-Z] ) ( \\- )?
( (?: [a-zA-Z\']+ \\-)+ )
- ( [a-zA-Z\']+ ) (?= [\)\".?!,;:]* (?:\s|\Z|\\\ ) )
+ ( [a-zA-Z\']+ ) (?= [\)\".?!,;:]* (?:\s|$NBSP|\Z|\\\ ) )
\b
} {
my ($prefix, $hyphen, $main, $suffix) = ($1, $2, $3, $4);
@@ -486,52 +598,17 @@ sub guesswork {
$prefix . $hyphen . $main . $suffix;
}egx;
- # Translate "--" into a real em-dash if it's used like one. This means
- # that it's either surrounded by whitespace, it follows a regular word, or
- # it occurs between two regular words.
- if ($$self{MAGIC_EMDASH}) {
- s{ (\s) \\-\\- (\s) } { $1 . '\*(--' . $2 }egx;
- s{ (\b[a-zA-Z]+) \\-\\- (\s|\Z|[a-zA-Z]+\b) } { $1 . '\*(--' . $2 }egx;
- }
-
- # Make words in all-caps a little bit smaller; they look better that way.
- # However, we don't want to change Perl code (like @ARGV), nor do we want
- # to fix the MIME in MIME-Version since it looks weird with the
- # full-height V.
- #
- # We change only a string of all caps (2) either at the beginning of the
- # line or following regular punctuation (like quotes) or whitespace (1),
- # and followed by either similar punctuation, an em-dash, or the end of
- # the line (3).
- #
- # Allow the text we're changing to small caps to include double quotes,
- # commas, newlines, and periods as long as it doesn't otherwise interrupt
- # the string of small caps and still fits the criteria. This lets us turn
- # entire warranty disclaimers in man page output into small caps.
- if ($$self{MAGIC_SMALLCAPS}) {
- s{
- ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1)
- ( [A-Z] [A-Z] (?: \s? [/A-Z+:\d_\$&] | \\- | \s? [.,\"] )* ) # (2)
- (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3)
- } {
- $1 . '\s-1' . $2 . '\s0'
- }egx;
- }
-
- # Note that from this point forward, we have to adjust for \s-1 and \s-0
- # strings inserted around things that we've made small-caps if later
- # transforms should work on those strings.
-
# Embolden functions in the form func(), including functions that are in
- # all capitals, but don't embolden if there's anything between the parens.
+ # all capitals, but don't embolden if there's anything inside the parens.
# The function must start with an alphabetic character or underscore and
# then consist of word characters or colons.
- if ($$self{MAGIC_FUNC}) {
+ if ($$self{GUESSWORK}{functions}) {
s{
- ( \b | \\s-1 )
- ( [A-Za-z_] ([:\w] | \\s-?[01])+ \(\) )
+ (?<! \\ )
+ \b
+ ( [A-Za-z_] [:\w]+ \(\) )
} {
- $1 . '\f(BS' . $2 . '\f(BE'
+ '\f(BS' . $1 . '\f(BE'
}egx;
}
@@ -542,21 +619,21 @@ sub guesswork {
# configuration file man pages), or colons, and n is a single digit,
# optionally followed by some number of lowercase letters. Note that this
# does not recognize man page references like perl(l) or socket(3SOCKET).
- if ($$self{MAGIC_MANREF}) {
+ if ($$self{GUESSWORK}{manref}) {
s{
- ( \b | \\s-1 )
- (?<! \\ ) # rule out \s0(1)
- ( [A-Za-z_] (?:[.:\w] | \\- | \\s-?[01])+ )
+ \b
+ (?<! \\ ) # rule out \e0(1)
+ ( [A-Za-z_] (?:[.:\w] | \\-)+ )
( \( \d [a-z]* \) )
} {
- $1 . '\f(BS' . $2 . '\f(BE\|' . $3
+ '\f(BS' . $1 . '\f(BE\|' . $2
}egx;
}
# Convert simple Perl variable references to a fixed-width font. Be
# careful not to convert functions, though; there are too many subtleties
# with them to want to perform this transformation.
- if ($$self{MAGIC_VARS}) {
+ if ($$self{GUESSWORK}{variables}) {
s{
( ^ | \s+ )
( [\$\@%] [\w:]+ )
@@ -566,19 +643,7 @@ sub guesswork {
}egx;
}
- # Fix up double quotes. Unfortunately, we miss this transformation if the
- # quoted text contains any code with formatting codes and there's not much
- # we can effectively do about that, which makes it somewhat unclear if
- # this is really a good idea.
- s{ \" ([^\"]+) \" } { '\*(L"' . $1 . '\*(R"' }egx;
-
- # Make C++ into \*(C+, which is a squinched version.
- if ($$self{MAGIC_CPP}) {
- s{ \b C\+\+ } {\\*\(C+}gx;
- }
-
# Done.
- DEBUG > 5 and print " Guesswork returning [$_]\n";
return $_;
}
@@ -592,111 +657,106 @@ sub guesswork {
# the right start and end codes.
#
# We add this level of complexity because the old pod2man didn't get code like
-# B<someI<thing> else> right; after I<> it switched back to normal text rather
-# than bold. We take care of this by using variables that state whether bold,
-# italic, or fixed are turned on as a combined pointer to our current font
-# sequence, and set each to the number of current nestings of start tags for
-# that font.
+# B<< someI<thing> else>> right. After I<> it switched back to normal text
+# rather than bold. We take care of this by using variables that state
+# whether bold, italic, or fixed are turned on as a combined pointer to our
+# current font sequence, and set each to the number of current nestings of
+# start tags for that font.
+#
+# The base font must be either \fP or \fR. \fP changes to the previous font,
+# but only one previous font is kept. Unfortunately, there is a bug in
+# Solaris 2.6 nroff (not present in GNU groff) where the sequence
+# \fB\fP\f(CW\fP leaves the font set to B rather than R, presumably because
+# \f(CW doesn't actually do a font change. Because of this, we prefer to use
+# \fR where possible.
+#
+# Unfortunately, this isn't possible for arguments to heading macros, since
+# there we don't know what the outside level font is. In that case, arrange
+# things so that the outside font is always the "previous" font and end with
+# \fP instead of \fR. Idea from Zack Weinberg.
#
-# \fP changes to the previous font, but only one previous font is kept. We
-# don't know what the outside level font is; normally it's R, but if we're
-# inside a heading it could be something else. So arrange things so that the
-# outside font is always the "previous" font and end with \fP instead of \fR.
-# Idea from Zack Weinberg.
+# This function used to be much simpler outside of macro arguments because it
+# went directly from \fB to \f(CW and relied on \f(CW clearing bold since it
+# wasn't \f(CB. Unfortunately, while this works for mandoc, this is not how
+# groff works; \fBfoo\f(CWbar still prints bar in bold. Therefore, we force
+# the font back to the base font before each font change.
sub mapfonts {
- my ($self, $text) = @_;
+ my ($self, $text, $base) = @_;
+
+ # The closure used to process each font escape, expected to be called from
+ # the right-hand side of an s/// expression.
my ($fixed, $bold, $italic) = (0, 0, 0);
my %magic = (F => \$fixed, B => \$bold, I => \$italic);
my $last = '\fR';
- $text =~ s<
- \\f\((.)(.)
- > <
- my $sequence = '';
- my $f;
- if ($last ne '\fR') { $sequence = '\fP' }
- ${ $magic{$1} } += ($2 eq 'S') ? 1 : -1;
- $f = $$self{FONTS}{ ($fixed && 1) . ($bold && 1) . ($italic && 1) };
- if ($f eq $last) {
- '';
- } else {
- if ($f ne '\fR') { $sequence .= $f }
- $last = $f;
- $sequence;
+ my $process = sub {
+ my ($style, $start_stop) = @_;
+ my $sequence = ($last ne '\fR') ? $base : q{};
+ ${ $magic{$style} } += ($start_stop eq 'S') ? 1 : -1;
+ my $f = $self->{FONTS}{($fixed && 1) . ($bold && 1) . ($italic && 1)};
+ return q{} if ($f eq $last);
+ if ($f ne '\fR') {
+ $sequence .= $f;
}
- >gxe;
- return $text;
-}
+ $last = $f;
+ return $sequence;
+ };
+
+ # Now, do the actual work.
+ $text =~ s{ \\f\((.)(.) }{$process->($1, $2)}xmsge;
+
+ # We can do a bit of cleanup by collapsing sequences like \fR\fB\fR\fI
+ # into just \fI.
+ $text =~ s{ (?: \\fR )? (?: \\f (.|\(..) \\fR )+ }{\\fR}xms;
-# Unfortunately, there is a bug in Solaris 2.6 nroff (not present in GNU
-# groff) where the sequence \fB\fP\f(CW\fP leaves the font set to B rather
-# than R, presumably because \f(CW doesn't actually do a font change. To work
-# around this, use a separate textmapfonts for text blocks where the default
-# font is always R and only use the smart mapfonts for headings.
-sub textmapfonts {
- my ($self, $text) = @_;
- my ($fixed, $bold, $italic) = (0, 0, 0);
- my %magic = (F => \$fixed, B => \$bold, I => \$italic);
- $text =~ s<
- \\f\((.)(.)
- > <
- ${ $magic{$1} } += ($2 eq 'S') ? 1 : -1;
- $$self{FONTS}{ ($fixed && 1) . ($bold && 1) . ($italic && 1) };
- >gxe;
return $text;
}
# Given a command and a single argument that may or may not contain double
-# quotes, handle double-quote formatting for it. If there are no double
-# quotes, just return the command followed by the argument in double quotes.
-# If there are double quotes, use an if statement to test for nroff, and for
-# nroff output the command followed by the argument in double quotes with
-# embedded double quotes doubled. For other formatters, remap paired double
-# quotes to LQUOTE and RQUOTE.
+# quotes and fixed-width text, handle double-quote formatting for it. If
+# there is no fixed-width text, just return the command followed by the
+# argument with proper quoting. If there is fixed-width text, work around a
+# Solaris nroff bug with fixed-width fonts by converting fixed-width to
+# regular fonts (nroff sees no difference).
sub switchquotes {
my ($self, $command, $text, $extra) = @_;
- $text =~ s/\\\*\([LR]\"/\"/g;
-
- # We also have to deal with \*C` and \*C', which are used to add the
- # quotes around C<> text, since they may expand to " and if they do this
- # confuses the .SH macros and the like no end. Expand them ourselves.
- # Also separate troff from nroff if there are any fixed-width fonts in use
- # to work around problems with Solaris nroff.
- my $c_is_quote = ($$self{LQUOTE} =~ /\"/) || ($$self{RQUOTE} =~ /\"/);
- my $fixedpat = join '|', @{ $$self{FONTS} }{'100', '101', '110', '111'};
- $fixedpat =~ s/\\/\\\\/g;
- $fixedpat =~ s/\(/\\\(/g;
- if ($text =~ m/\"/ || $text =~ m/$fixedpat/) {
- $text =~ s/\"/\"\"/g;
+
+ # Separate troff from nroff if there are any fixed-width fonts in use to
+ # work around problems with Solaris nroff.
+ if ($text =~ $self->{FIXEDPAT}) {
my $nroff = $text;
my $troff = $text;
- $troff =~ s/\"\"([^\"]*)\"\"/\`\`$1\'\'/g;
- if ($c_is_quote and $text =~ m/\\\*\(C[\'\`]/) {
- $nroff =~ s/\\\*\(C\`/$$self{LQUOTE}/g;
- $nroff =~ s/\\\*\(C\'/$$self{RQUOTE}/g;
- $troff =~ s/\\\*\(C[\'\`]//g;
- }
- $nroff = qq("$nroff") . ($extra ? " $extra" : '');
- $troff = qq("$troff") . ($extra ? " $extra" : '');
# Work around the Solaris nroff bug where \f(CW\fP leaves the font set
# to Roman rather than the actual previous font when used in headings.
# troff output may still be broken, but at least we can fix nroff by
# just switching the font changes to the non-fixed versions.
- my $font_end = "(?:\\f[PR]|\Q$$self{FONTS}{100}\E)";
- $nroff =~ s/\Q$$self{FONTS}{100}\E(.*?)\\f([PR])/$1/g;
- $nroff =~ s/\Q$$self{FONTS}{101}\E(.*?)$font_end/\\fI$1\\fP/g;
- $nroff =~ s/\Q$$self{FONTS}{110}\E(.*?)$font_end/\\fB$1\\fP/g;
- $nroff =~ s/\Q$$self{FONTS}{111}\E(.*?)$font_end/\\f\(BI$1\\fP/g;
+ my $font_end = qr{ (?: \\f[PR] | \Q$self->{FONTS}{100}\E ) }xms;
+ $nroff =~ s{\Q$self->{FONTS}{100}\E(.*?)\\f([PR])}{$1}xmsg;
+ $nroff =~ s{\Q$self->{FONTS}{101}\E}{\\fI}xmsg;
+ $nroff =~ s{\Q$self->{FONTS}{110}\E}{\\fB}xmsg;
+ $nroff =~ s{\Q$self->{FONTS}{111}\E}{\\f\(BI}xmsg;
+
+ # We have to deal with \*C` and \*C', which are used to add the quotes
+ # around C<> text, since they may expand to " and if they do this
+ # confuses the .SH macros and the like no end. Expand them ourselves.
+ my $c_is_quote = index("$self->{LQUOTE}$self->{RQUOTE}", qq(\")) != -1;
+ if ($c_is_quote && $text =~ m{ \\[*]\(C[\'\`] }xms) {
+ $nroff =~ s{ \\[*]\(C\` }{$self->{LQUOTE}}xmsg;
+ $nroff =~ s{ \\[*]\(C\' }{$self->{RQUOTE}}xmsg;
+ $troff =~ s{ \\[*]\(C[\'\`] }{}xmsg;
+ }
# Now finally output the command. Bother with .ie only if the nroff
# and troff output aren't the same.
+ $nroff = _quote_macro_argument($nroff) . ($extra ? " $extra" : '');
+ $troff = _quote_macro_argument($troff) . ($extra ? " $extra" : '');
if ($nroff ne $troff) {
return ".ie n $command $nroff\n.el $command $troff\n";
} else {
return "$command $nroff\n";
}
} else {
- $text = qq("$text") . ($extra ? " $extra" : '');
+ $text = _quote_macro_argument($text) . ($extra ? " $extra" : '');
return "$command $text\n";
}
}
@@ -761,10 +821,22 @@ sub outindex {
# Output some text, without any additional changes.
sub output {
my ($self, @text) = @_;
- if ($$self{ENCODE}) {
- print { $$self{output_fh} } Encode::encode ('UTF-8', join ('', @text));
+ my $text = join('', @text);
+ $text =~ s{$NBSP}{\\ }g;
+ $text =~ s{$SHY}{\\%}g;
+
+ if ($$self{ENCODE} && _needs_encode($$self{ENCODING})) {
+ my $check = sub {
+ my ($char) = @_;
+ my $display = '"\x{' . hex($char) . '}"';
+ my $error = "$display does not map to $$self{ENCODING}";
+ $self->whine ($self->line_count(), $error);
+ return Encode::encode ($$self{ENCODING}, chr($char));
+ };
+ my $output = Encode::encode ($$self{ENCODING}, $text, $check);
+ print { $$self{output_fh} } $output;
} else {
- print { $$self{output_fh} } @text;
+ print { $$self{output_fh} } $text;
}
}
@@ -777,21 +849,20 @@ sub output {
sub start_document {
my ($self, $attrs) = @_;
if ($$attrs{contentless} && !$$self{ALWAYS_EMIT_SOMETHING}) {
- DEBUG and print "Document is contentless\n";
$$self{CONTENTLESS} = 1;
} else {
delete $$self{CONTENTLESS};
}
- # When UTF-8 output is set, check whether our output file handle already
- # has a PerlIO encoding layer set. If it does not, we'll need to encode
- # our output before printing it (handled in the output() sub). Wrap the
- # check in an eval to handle versions of Perl without PerlIO.
+ # When an encoding is requested, check whether our output file handle
+ # already has a PerlIO encoding layer set. If it does not, we'll need to
+ # encode our output before printing it (handled in the output() sub).
+ # Wrap the check in an eval to handle versions of Perl without PerlIO.
#
# PerlIO::get_layers still requires its argument be a glob, so coerce the
# file handle to a glob.
$$self{ENCODE} = 0;
- if ($$self{utf8}) {
+ if ($$self{ENCODING}) {
$$self{ENCODE} = 1;
eval {
my @options = (output => 1, details => 1);
@@ -806,15 +877,15 @@ sub start_document {
# document was content-free.
if (!$$self{CONTENTLESS}) {
my ($name, $section);
- if (defined $$self{name}) {
- $name = $$self{name};
- $section = $$self{section} || 1;
+ if (defined $self->{opt_name}) {
+ $name = $self->{opt_name};
+ $section = $self->{opt_section} || 1;
} else {
($name, $section) = $self->devise_title;
}
- my $date = defined($$self{date}) ? $$self{date} : $self->devise_date;
+ my $date = $self->{opt_date} // $self->devise_date();
$self->preamble ($name, $section, $date)
- unless $self->bare_output or DEBUG > 9;
+ unless $self->bare_output;
}
# Initialize a few per-document variables.
@@ -839,7 +910,6 @@ sub end_document {
}
return if $self->bare_output;
return if ($$self{CONTENTLESS} && !$$self{ALWAYS_EMIT_SOMETHING});
- $self->output (q(.\" [End document]) . "\n") if DEBUG;
}
# Try to figure out the name and section from the file name and return them as
@@ -848,8 +918,8 @@ sub end_document {
sub devise_title {
my ($self) = @_;
my $name = $self->source_filename || '';
- my $section = $$self{section} || 1;
- $section = 3 if (!$$self{section} && $name =~ /\.pm\z/i);
+ my $section = $self->{opt_section} || 1;
+ $section = 3 if (!$self->{opt_section} && $name =~ /\.pm\z/i);
$name =~ s/\.p(od|[lm])\z//i;
# If Pod::Parser gave us an IO::File reference as the source file name,
@@ -981,34 +1051,53 @@ sub devise_date {
# module, but this order is correct for both Solaris and Linux.
sub preamble {
my ($self, $name, $section, $date) = @_;
- my $preamble = $self->preamble_template (!$$self{utf8});
+ my $preamble = $self->preamble_template();
- # Build the index line and make sure that it will be syntactically valid.
- my $index = "$name $section";
- $index =~ s/\"/\"\"/g;
-
- # If name or section contain spaces, quote them (section really never
- # should, but we may as well be cautious).
- for ($name, $section) {
- if (/\s/) {
- s/\"/\"\"/g;
- $_ = '"' . $_ . '"';
+ # groff's preconv script will use this line to correctly determine the
+ # input encoding if the encoding is one of the ones it recognizes. It
+ # must be the first or second line.
+ #
+ # If the output encoding is some version of Unicode, we could also add a
+ # Unicode Byte Order Mark to the start of the file, but the BOM is now
+ # deprecated and I am concerned that may break a *roff implementation that
+ # might otherwise cope with Unicode. Revisit this if someone files a bug
+ # report about it.
+ if (_needs_encode($$self{ENCODING})) {
+ my $normalized = lc($$self{ENCODING});
+ $normalized =~ s{-}{}g;
+ my $coding = $ENCODINGS{$normalized} || lc($$self{ENCODING});
+ if ($coding ne 'us-ascii') {
+ $self->output(qq{.\\\" -*- mode: troff; coding: $coding -*-\n});
}
}
- # Double quotes in date, since it will be quoted.
- $date =~ s/\"/\"\"/g;
-
- # Substitute into the preamble the configuration options.
- $preamble =~ s/\@CFONT\@/$$self{fixed}/;
- $preamble =~ s/\@LQUOTE\@/$$self{LQUOTE}/;
- $preamble =~ s/\@RQUOTE\@/$$self{RQUOTE}/;
- chomp $preamble;
+ # Substitute into the preamble the configuration options. Because it's
+ # used as the argument to defining a string, any leading double quote (but
+ # no other double quotes) in LQUOTE and RQUOTE has to be doubled.
+ $preamble =~ s{ [@] CFONT [@] }{$self->{opt_fixed}}xms;
+ my $lquote = $self->{LQUOTE};
+ my $rquote = $self->{RQUOTE};
+ $lquote =~ s{ \A \" }{""}xms;
+ $rquote =~ s{ \A \" }{""}xms;
+ $preamble =~ s{ [@] LQUOTE [@] }{$lquote}xms;
+ $preamble =~ s{ [@] RQUOTE [@] }{$rquote}xms;
+ chomp($preamble);
# Get the version information.
- my $version = $self->version_report;
+ my $version = $self->version_report();
- # Finally output everything.
+ # Build the index line and make sure that it will be syntactically valid.
+ my $index = _quote_macro_argument("$name $section");
+
+ # Quote the arguments to the .TH macro. (Section should never require
+ # this, but we may as well be cautious.)
+ $name = _quote_macro_argument($name);
+ $section = _quote_macro_argument($section);
+ $date = _quote_macro_argument($date);
+ my $center = _quote_macro_argument($self->{opt_center});
+ my $release = _quote_macro_argument($self->{opt_release});
+
+ # Output the majority of the preamble.
$self->output (<<"----END OF HEADER----");
.\\" Automatically generated by $version
.\\"
@@ -1017,14 +1106,19 @@ sub preamble {
$preamble
.\\" ========================================================================
.\\"
-.IX Title "$index"
-.TH $name $section "$date" "$$self{release}" "$$self{center}"
+.IX Title $index
+.TH $name $section $date $release $center
.\\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\\" way too many mistakes in technical documents.
.if n .ad l
.nh
----END OF HEADER----
- $self->output (".\\\" [End of preamble]\n") if DEBUG;
+
+ # If the language was specified, output the language configuration.
+ if ($self->{opt_language}) {
+ $self->output(".mso $self->{opt_language}.tmac\n");
+ $self->output(".hla $self->{opt_language}\n");
+ }
}
##############################################################################
@@ -1049,11 +1143,6 @@ sub cmd_para {
$$self{SHIFTWAIT} = 0;
}
- # Add the line number for debugging, but not in the NAME section just in
- # case the comment would confuse apropos.
- $self->output (".\\\" [At source line $line]\n")
- if defined ($line) && DEBUG && !$$self{IN_NAME};
-
# Force exactly one newline at the end and strip unwanted trailing
# whitespace at the end, but leave "\ " backslashed space from an S< > at
# the end of a line. Reverse the text first, to avoid having to scan the
@@ -1063,8 +1152,8 @@ sub cmd_para {
$text = reverse $text;
# Output the paragraph.
- $self->output ($self->protect ($self->textmapfonts ($text)));
- $self->outindex;
+ $self->output($self->protect($self->mapfonts($text, '\fR')));
+ $self->outindex();
$$self{NEEDSPACE} = 1;
return '';
}
@@ -1076,45 +1165,44 @@ sub cmd_verbatim {
my ($self, $attrs, $text) = @_;
# Ignore an empty verbatim paragraph.
- return unless $text =~ /\S/;
+ return if $text !~ m{ \S }xms;
# Force exactly one newline at the end and strip unwanted trailing
- # whitespace at the end. Reverse the text first, to avoid having to scan
- # the entire paragraph.
- $text = reverse $text;
- $text =~ s/\A\s*/\n/;
- $text = reverse $text;
+ # whitespace at the end.
+ $text =~ s{ \s* \z }{\n}xms;
# Get a count of the number of lines before the first blank line, which
# we'll pass to .Vb as its parameter. This tells *roff to keep that many
# lines together. We don't want to tell *roff to keep huge blocks
# together.
- my @lines = split (/\n/, $text);
+ my @lines = split (m{ \n }xms, $text);
my $unbroken = 0;
- for (@lines) {
- last if /^\s*$/;
+ for my $line (@lines) {
+ last if $line =~ m{ \A \s* \z }xms;
$unbroken++;
}
- $unbroken = 10 if ($unbroken > 12 && !$$self{MAGIC_VNOPAGEBREAK_LIMIT});
+ if ($unbroken > 12) {
+ $unbroken = 10;
+ }
- # Prepend a null token to each line.
- $text =~ s/^/\\&/gm;
+ # Prepend a null token to each line to preserve indentation.
+ $text =~ s{ ^ }{\\&}xmsg;
# Output the results.
- $self->makespace;
- $self->output (".Vb $unbroken\n$text.Ve\n");
+ $self->makespace();
+ $self->output(".Vb $unbroken\n$text.Ve\n");
$$self{NEEDSPACE} = 1;
- return '';
+ return q{};
}
# Handle literal text (produced by =for and similar constructs). Just output
# it with the minimum of changes.
sub cmd_data {
my ($self, $attrs, $text) = @_;
- $text =~ s/^\n+//;
- $text =~ s/\n{0,2}$/\n/;
- $self->output ($text);
- return '';
+ $text =~ s{ \A \n+ }{}xms;
+ $text =~ s{ \n{0,2} \z }{\n}xms;
+ $self->output($text);
+ return q{};
}
##############################################################################
@@ -1136,9 +1224,6 @@ sub heading_common {
$self->output (".PD\n");
}
- # Output the current source line.
- $self->output ( ".\\\" [At source line $line]\n" )
- if defined ($line) && DEBUG;
return $text;
}
@@ -1151,7 +1236,7 @@ sub cmd_head1 {
$text =~ s/\\s-?\d//g;
$text = $self->heading_common ($text, $$attrs{start_line});
my $isname = ($text eq 'NAME' || $text =~ /\(NAME\)/);
- $self->output ($self->switchquotes ('.SH', $self->mapfonts ($text)));
+ $self->output($self->switchquotes('.SH', $self->mapfonts($text, '\fP')));
$self->outindex ('Header', $text) unless $isname;
$$self{NEEDSPACE} = 0;
$$self{IN_NAME} = $isname;
@@ -1162,7 +1247,7 @@ sub cmd_head1 {
sub cmd_head2 {
my ($self, $attrs, $text) = @_;
$text = $self->heading_common ($text, $$attrs{start_line});
- $self->output ($self->switchquotes ('.SS', $self->mapfonts ($text)));
+ $self->output($self->switchquotes('.SS', $self->mapfonts($text, '\fP')));
$self->outindex ('Subsection', $text);
$$self{NEEDSPACE} = 0;
return '';
@@ -1174,7 +1259,7 @@ sub cmd_head3 {
my ($self, $attrs, $text) = @_;
$text = $self->heading_common ($text, $$attrs{start_line});
$self->makespace;
- $self->output ($self->textmapfonts ('\f(IS' . $text . '\f(IE') . "\n");
+ $self->output($self->mapfonts('\f(IS' . $text . '\f(IE', '\fR') . "\n");
$self->outindex ('Subsection', $text);
$$self{NEEDSPACE} = 1;
return '';
@@ -1186,7 +1271,7 @@ sub cmd_head4 {
my ($self, $attrs, $text) = @_;
$text = $self->heading_common ($text, $$attrs{start_line});
$self->makespace;
- $self->output ($self->textmapfonts ($text) . "\n");
+ $self->output($self->mapfonts($text, '\fR') . "\n");
$self->outindex ('Subsection', $text);
$$self{NEEDSPACE} = 1;
return '';
@@ -1203,6 +1288,13 @@ sub cmd_i { return $_[0]->{IN_NAME} ? $_[2] : '\f(IS' . $_[2] . '\f(IE' }
sub cmd_f { return $_[0]->{IN_NAME} ? $_[2] : '\f(IS' . $_[2] . '\f(IE' }
sub cmd_c { return $_[0]->quote_literal ($_[2]) }
+# Convert all internal whitespace to $NBSP.
+sub cmd_s {
+ my ($self, $attrs, $text) = @_;
+ $text =~ s{ \s }{$NBSP}xmsg;
+ return $text;
+}
+
# Index entries are just added to the pending entries.
sub cmd_x {
my ($self, $attrs, $text) = @_;
@@ -1224,7 +1316,7 @@ sub cmd_l {
}
if (not defined ($to) or $to eq $text) {
return "<$text>";
- } elsif ($$self{nourls}) {
+ } elsif ($self->{opt_nourls}) {
return $text;
} else {
return "$text <$$attrs{to}>";
@@ -1245,12 +1337,10 @@ sub over_common_start {
my ($self, $type, $attrs) = @_;
my $line = $$attrs{start_line};
my $indent = $$attrs{indent};
- DEBUG > 3 and print " Starting =over $type (line $line, indent ",
- ($indent || '?'), "\n";
# Find the indentation level.
unless (defined ($indent) && $indent =~ /^[-+]?\d{1,4}\s*$/) {
- $indent = $$self{indent};
+ $indent = $self->{opt_indent};
}
# If we've gotten multiple indentations in a row, we need to emit the
@@ -1279,7 +1369,6 @@ sub over_common_start {
# .RE and then a new .RS to unconfuse *roff.
sub over_common_end {
my ($self) = @_;
- DEBUG > 3 and print " Ending =over\n";
$$self{INDENT} = pop @{ $$self{INDENTS} };
pop @{ $$self{ITEMTYPES} };
@@ -1318,7 +1407,6 @@ sub end_over_block { $_[0]->over_common_end }
sub item_common {
my ($self, $type, $attrs, $text) = @_;
my $line = $$attrs{start_line};
- DEBUG > 3 and print " $type item (line $line): $text\n";
# Clean up the text. We want to end up with two variables, one ($text)
# which contains any body text after taking out the item portion, and
@@ -1350,8 +1438,8 @@ sub item_common {
$self->output (".PD 0\n") if ($$self{ITEMS} == 1);
# Now, output the item tag itself.
- $item = $self->textmapfonts ($item);
- $self->output ($self->switchquotes ('.IP', $item, $$self{INDENT}));
+ $item = $self->mapfonts($item, '\fR');
+ $self->output($self->switchquotes('.IP', $item, $$self{INDENT}));
$$self{NEEDSPACE} = 0;
$$self{ITEMS}++;
$$self{SHIFTWAIT} = 0;
@@ -1360,7 +1448,7 @@ sub item_common {
if ($text) {
$text =~ s/\s*$/\n/;
$self->makespace;
- $self->output ($self->protect ($self->textmapfonts ($text)));
+ $self->output($self->protect($self->mapfonts($text, '\fR')));
$$self{NEEDSPACE} = 1;
}
$self->outindex ($index ? ('Item', $index) : ());
@@ -1448,48 +1536,15 @@ sub parse_string_document {
}
##############################################################################
-# Translation tables
-##############################################################################
-
-# The following table is adapted from Tom Christiansen's pod2man. It assumes
-# that the standard preamble has already been printed, since that's what
-# defines all of the accent marks. We really want to do something better than
-# this when *roff actually supports other character sets itself, since these
-# results are pretty poor.
-#
-# This only works in an ASCII world. What to do in a non-ASCII world is very
-# unclear -- hopefully we can assume UTF-8 and just leave well enough alone.
-@ESCAPES{0xA0 .. 0xFF} = (
- "\\ ", undef, undef, undef, undef, undef, undef, undef,
- undef, undef, undef, undef, undef, "\\%", undef, undef,
-
- undef, undef, undef, undef, undef, undef, undef, undef,
- undef, undef, undef, undef, undef, undef, undef, undef,
-
- "A\\*`", "A\\*'", "A\\*^", "A\\*~", "A\\*:", "A\\*o", "\\*(Ae", "C\\*,",
- "E\\*`", "E\\*'", "E\\*^", "E\\*:", "I\\*`", "I\\*'", "I\\*^", "I\\*:",
-
- "\\*(D-", "N\\*~", "O\\*`", "O\\*'", "O\\*^", "O\\*~", "O\\*:", undef,
- "O\\*/", "U\\*`", "U\\*'", "U\\*^", "U\\*:", "Y\\*'", "\\*(Th", "\\*8",
-
- "a\\*`", "a\\*'", "a\\*^", "a\\*~", "a\\*:", "a\\*o", "\\*(ae", "c\\*,",
- "e\\*`", "e\\*'", "e\\*^", "e\\*:", "i\\*`", "i\\*'", "i\\*^", "i\\*:",
-
- "\\*(d-", "n\\*~", "o\\*`", "o\\*'", "o\\*^", "o\\*~", "o\\*:", undef,
- "o\\*/" , "u\\*`", "u\\*'", "u\\*^", "u\\*:", "y\\*'", "\\*(th", "y\\*:",
-) if ASCII;
-
-##############################################################################
# Premable
##############################################################################
-# The following is the static preamble which starts all *roff output we
-# generate. Most is static except for the font to use as a fixed-width font,
-# which is designed by @CFONT@, and the left and right quotes to use for C<>
-# text, designated by @LQOUTE@ and @RQUOTE@. However, the second part, which
-# defines the accent marks, is only used if $escapes is set to true.
+# The preamble which starts all *roff output we generate. Most is static
+# except for the font to use as a fixed-width font (designed by @CFONT@), and
+# the left and right quotes to use for C<> text (designated by @LQOUTE@ and
+# @RQUOTE@). Accent marks are only defined if the output encoding is roff.
sub preamble_template {
- my ($self, $accents) = @_;
+ my ($self) = @_;
my $preamble = <<'----END OF PREAMBLE----';
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
@@ -1504,29 +1559,12 @@ sub preamble_template {
.ft R
.fi
..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
. ds C` @LQUOTE@
. ds C' @RQUOTE@
'br\}
.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
. ds C`
. ds C'
'br\}
@@ -1560,7 +1598,7 @@ sub preamble_template {
----END OF PREAMBLE----
#'# for cperl-mode
- if ($accents) {
+ if ($$self{ENCODING} eq 'roff') {
$preamble .= <<'----END OF PREAMBLE----'
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
@@ -1590,7 +1628,7 @@ sub preamble_template {
. ds /
.\}
.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h'|\\n:u'
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
@@ -1637,10 +1675,13 @@ sub preamble_template {
1;
__END__
+=encoding UTF-8
+
=for stopwords
en em ALLCAPS teeny fixedbold fixeditalic fixedbolditalic stderr utf8 UTF-8
Allbery Sean Burke Ossanna Solaris formatters troff uppercased Christiansen
-nourls parsers Kernighan lquote rquote
+nourls parsers Kernighan lquote rquote unrepresentable mandoc NetBSD PostScript
+SMP macOS EBCDIC fallbacks manref reflowed reflowing FH overridable
=head1 NAME
@@ -1666,100 +1707,197 @@ using L<nroff(1)>, normally via L<man(1)>, or printing using L<troff(1)>.
It is conventionally invoked using the driver script B<pod2man>, but it can
also be used directly.
-As a derived class from Pod::Simple, Pod::Man supports the same methods and
-interfaces. See L<Pod::Simple> for all the details.
-
-new() can take options, in the form of key/value pairs that control the
-behavior of the parser. See below for details.
-
-If no options are given, Pod::Man uses the name of the input file with any
-trailing C<.pod>, C<.pm>, or C<.pl> stripped as the man page title, to
-section 1 unless the file ended in C<.pm> in which case it defaults to
-section 3, to a centered title of "User Contributed Perl Documentation", to
-a centered footer of the Perl version it is run with, and to a left-hand
-footer of the modification date of its input (or the current date if given
-C<STDIN> for input).
-
-Pod::Man assumes that your *roff formatters have a fixed-width font named
-C<CW>. If yours is called something else (like C<CR>), use the C<fixed>
-option to specify it. This generally only matters for troff output for
-printing. Similarly, you can set the fonts used for bold, italic, and
-bold italic fixed-width output.
-
-Besides the obvious pod conversions, Pod::Man also takes care of
-formatting func(), func(3), and simple variable references like $foo or
-@bar so you don't have to use code escapes for them; complex expressions
-like C<$fred{'stuff'}> will still need to be escaped, though. It also
-translates dashes that aren't used as hyphens into en dashes, makes long
-dashes--like this--into proper em dashes, fixes "paired quotes," makes C++
-look right, puts a little space between double underscores, makes ALLCAPS
-a teeny bit smaller in B<troff>, and escapes stuff that *roff treats as
-special so that you don't have to.
-
-The recognized options to new() are as follows. All options take a single
-argument.
+By default (on non-EBCDIC systems), Pod::Man outputs UTF-8. Its output should
+work with the B<man> program on systems that use B<groff> (most Linux
+distributions) or B<mandoc> (most BSD variants), but may result in mangled
+output on older UNIX systems. To choose a different, possibly more
+backward-compatible output mangling on such systems, set the C<encoding>
+option to C<roff> (the default in earlier Pod::Man versions). See the
+C<encoding> option and L</ENCODING> for more details.
+
+See L</COMPATIBILTY> for the versions of Pod::Man with significant
+backward-incompatible changes (other than constructor options, whose versions
+are documented below), and the versions of Perl that included them.
+
+=head1 CLASS METHODS
+
+=over 4
+
+=item new(ARGS)
+
+Create a new Pod::Man object. ARGS should be a list of key/value pairs, where
+the keys are chosen from the following. Each option is annotated with the
+version of Pod::Man in which that option was added with its current meaning.
=over 4
=item center
-Sets the centered page header for the C<.TH> macro. The default, if this
-option is not specified, is "User Contributed Perl Documentation".
+[1.00] Sets the centered page header for the C<.TH> macro. The default, if
+this option is not specified, is C<User Contributed Perl Documentation>.
=item date
-Sets the left-hand footer for the C<.TH> macro. If this option is not set,
-the contents of the environment variable POD_MAN_DATE, if set, will be used.
-Failing that, the value of SOURCE_DATE_EPOCH, the modification date of the
-input file, or the current time if stat() can't find that file (which will be
-the case if the input is from C<STDIN>) will be used. If obtained from the
-file modification date or the current time, the date will be formatted as
-C<YYYY-MM-DD> and will be based on UTC (so that the output will be
-reproducible regardless of local time zone).
+[4.00] Sets the left-hand footer for the C<.TH> macro. If this option is not
+set, the contents of the environment variable POD_MAN_DATE, if set, will be
+used. Failing that, the value of SOURCE_DATE_EPOCH, the modification date of
+the input file, or the current time if stat() can't find that file (which will
+be the case if the input is from C<STDIN>) will be used. If taken from any
+source other than POD_MAN_DATE (which is used verbatim), the date will be
+formatted as C<YYYY-MM-DD> and will be based on UTC (so that the output will
+be reproducible regardless of local time zone).
+
+=item encoding
+
+[5.00] Specifies the encoding of the output. The value must be an encoding
+recognized by the L<Encode> module (see L<Encode::Supported>), or the special
+values C<roff> or C<groff>. The default on non-EBCDIC systems is UTF-8.
+
+If the output contains characters that cannot be represented in this encoding,
+that is an error that will be reported as configured by the C<errors> option.
+If error handling is other than C<die>, the unrepresentable character will be
+replaced with the Encode substitution character (normally C<?>).
+
+If the C<encoding> option is set to the special value C<groff> (the default on
+EBCDIC systems), or if the Encode module is not available and the encoding is
+set to anything other than C<roff>, Pod::Man will translate all non-ASCII
+characters to C<\[uNNNN]> Unicode escapes. These are not traditionally part
+of the *roff language, but are supported by B<groff> and B<mandoc> and thus by
+the majority of manual page processors in use today.
+
+If the C<encoding> option is set to the special value C<roff>, Pod::Man will
+do its historic transformation of (some) ISO 8859-1 characters into *roff
+escapes that may be adequate in troff and may be readable (if ugly) in nroff.
+This was the default behavior of versions of Pod::Man before 5.00. With this
+encoding, all other non-ASCII characters will be replaced with C<X>. It may
+be required for very old troff and nroff implementations that do not support
+UTF-8, but its representation of any non-ASCII character is very poor and
+often specific to European languages.
+
+If the output file handle has a PerlIO encoding layer set, setting C<encoding>
+to anything other than C<groff> or C<roff> will be ignored and no encoding
+will be done by Pod::Man. It will instead rely on the encoding layer to make
+whatever output encoding transformations are desired.
+
+WARNING: The input encoding of the POD source is independent from the output
+encoding, and setting this option does not affect the interpretation of the
+POD input. Unless your POD source is US-ASCII, its encoding should be
+declared with the C<=encoding> command in the source. If this is not done,
+Pod::Simple will will attempt to guess the encoding and may be successful if
+it's Latin-1 or UTF-8, but it will produce warnings. See L<perlpod(1)> for
+more information.
=item errors
-How to report errors. C<die> says to throw an exception on any POD
-formatting error. C<stderr> says to report errors on standard error, but
-not to throw an exception. C<pod> says to include a POD ERRORS section
-in the resulting documentation summarizing the errors. C<none> ignores
-POD errors entirely, as much as possible.
+[2.27] How to report errors. C<die> says to throw an exception on any POD
+formatting error. C<stderr> says to report errors on standard error, but not
+to throw an exception. C<pod> says to include a POD ERRORS section in the
+resulting documentation summarizing the errors. C<none> ignores POD errors
+entirely, as much as possible.
The default is C<pod>.
=item fixed
-The fixed-width font to use for verbatim text and code. Defaults to
-C<CW>. Some systems may want C<CR> instead. Only matters for B<troff>
-output.
+[1.00] The fixed-width font to use for verbatim text and code. Defaults to
+C<CW>. Some systems prefer C<CR> instead. Only matters for B<troff> output.
=item fixedbold
-Bold version of the fixed-width font. Defaults to C<CB>. Only matters
+[1.00] Bold version of the fixed-width font. Defaults to C<CB>. Only matters
for B<troff> output.
=item fixeditalic
-Italic version of the fixed-width font (actually, something of a misnomer,
-since most fixed-width fonts only have an oblique version, not an italic
-version). Defaults to C<CI>. Only matters for B<troff> output.
+[1.00] Italic version of the fixed-width font (something of a misnomer, since
+most fixed-width fonts only have an oblique version, not an italic version).
+Defaults to C<CI>. Only matters for B<troff> output.
=item fixedbolditalic
-Bold italic (probably actually oblique) version of the fixed-width font.
-Pod::Man doesn't assume you have this, and defaults to C<CB>. Some
-systems (such as Solaris) have this font available as C<CX>. Only matters
-for B<troff> output.
+[1.00] Bold italic (in theory, probably oblique in practice) version of the
+fixed-width font. Pod::Man doesn't assume you have this, and defaults to
+C<CB>. Some systems (such as Solaris) have this font available as C<CX>.
+Only matters for B<troff> output.
+
+=item guesswork
+
+[5.00] By default, Pod::Man applies some default formatting rules based on
+guesswork and regular expressions that are intended to make writing Perl
+documentation easier and require less explicit markup. These rules may not
+always be appropriate, particularly for documentation that isn't about Perl.
+This option allows turning all or some of it off.
+
+The special value C<all> enables all guesswork. This is also the default for
+backward compatibility reasons. The special value C<none> disables all
+guesswork. Otherwise, the value of this option should be a comma-separated
+list of one or more of the following keywords:
+
+=over 4
+
+=item functions
+
+Convert function references like C<foo()> to bold even if they have no markup.
+The function name accepts valid Perl characters for function names (including
+C<:>), and the trailing parentheses must be present and empty.
+
+=item manref
+
+Make the first part (before the parentheses) of manual page references like
+C<foo(1)> bold even if they have no markup. The section must be a single
+number optionally followed by lowercase letters.
+
+=item quoting
+
+If no guesswork is enabled, any text enclosed in CZ<><> is surrounded by
+double quotes in nroff (terminal) output unless the contents are already
+quoted. When this guesswork is enabled, quote marks will also be suppressed
+for Perl variables, function names, function calls, numbers, and hex
+constants.
+
+=item variables
+
+Convert Perl variable names to a fixed-width font even if they have no markup.
+This transformation will only be apparent in troff output, or some other
+output format (unlike nroff terminal output) that supports fixed-width fonts.
+
+=back
+
+Any unknown guesswork name is silently ignored (for potential future
+compatibility), so be careful about spelling.
+
+=item language
+
+[5.00] Add commands telling B<groff> that the input file is in the given
+language. The value of this setting must be a language abbreviation for which
+B<groff> provides supplemental configuration, such as C<ja> (for Japanese) or
+C<zh> (for Chinese).
+
+Specifically, this adds:
+
+ .mso <language>.tmac
+ .hla <language>
+
+to the start of the file, which configure correct line breaking for the
+specified language. Without these commands, groff may not know how to add
+proper line breaks for Chinese and Japanese text if the manual page is
+installed into the normal manual page directory, such as F</usr/share/man>.
+
+On many systems, this will be done automatically if the manual page is
+installed into a language-specific manual page directory, such as
+F</usr/share/man/zh_CN>. In that case, this option is not required.
+
+Unfortunately, the commands added with this option are specific to B<groff>
+and will not work with other B<troff> and B<nroff> implementations.
=item lquote
=item rquote
-Sets the quote marks used to surround CE<lt>> text. C<lquote> sets the
-left quote mark and C<rquote> sets the right quote mark. Either may also
-be set to the special value C<none>, in which case no quote mark is added
-on that side of CE<lt>> text (but the font is still changed for troff
-output).
+[4.08] Sets the quote marks used to surround CE<lt>> text. C<lquote> sets the
+left quote mark and C<rquote> sets the right quote mark. Either may also be
+set to the special value C<none>, in which case no quote mark is added on that
+side of CE<lt>> text (but the font is still changed for troff output).
Also see the C<quotes> option, which can be used to set both quotes at once.
If both C<quotes> and one of the other options is set, C<lquote> or C<rquote>
@@ -1767,21 +1905,21 @@ overrides C<quotes>.
=item name
-Set the name of the manual page for the C<.TH> macro. Without this
-option, the manual name is set to the uppercased base name of the file
-being converted unless the manual section is 3, in which case the path is
-parsed to see if it is a Perl module path. If it is, a path like
-C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>. This
-option, if given, overrides any automatic determination of the name.
+[4.08] Set the name of the manual page for the C<.TH> macro. Without this
+option, the manual name is set to the uppercased base name of the file being
+converted unless the manual section is 3, in which case the path is parsed to
+see if it is a Perl module path. If it is, a path like C<.../lib/Pod/Man.pm>
+is converted into a name like C<Pod::Man>. This option, if given, overrides
+any automatic determination of the name.
If generating a manual page from standard input, the name will be set to
-C<STDIN> if this option is not provided. Providing this option is strongly
-recommended to set a meaningful manual page name.
+C<STDIN> if this option is not provided. In this case, providing this option
+is strongly recommended to set a meaningful manual page name.
=item nourls
-Normally, LZ<><> formatting codes with a URL but anchor text are formatted
-to show both the anchor text and the URL. In other words:
+[2.27] Normally, LZ<><> formatting codes with a URL but anchor text are
+formatted to show both the anchor text and the URL. In other words:
L<foo|http://example.com/>
@@ -1796,10 +1934,10 @@ important.
=item quotes
-Sets the quote marks used to surround CE<lt>> text. If the value is a
-single character, it is used as both the left and right quote. Otherwise,
-it is split in half, and the first half of the string is used as the left
-quote and the second is used as the right quote.
+[4.00] Sets the quote marks used to surround CE<lt>> text. If the value is a
+single character, it is used as both the left and right quote. Otherwise, it
+is split in half, and the first half of the string is used as the left quote
+and the second is used as the right quote.
This may also be set to the special value C<none>, in which case no quote
marks are added around CE<lt>> text (but the font is still changed for troff
@@ -1811,82 +1949,258 @@ options is set, C<lquote> or C<rquote> overrides C<quotes>.
=item release
-Set the centered footer for the C<.TH> macro. By default, this is set to
-the version of Perl you run Pod::Man under. Setting this to the empty
-string will cause some *roff implementations to use the system default
-value.
+[1.00] Set the centered footer for the C<.TH> macro. By default, this is set
+to the version of Perl you run Pod::Man under. Setting this to the empty
+string will cause some *roff implementations to use the system default value.
-Note that some system C<an> macro sets assume that the centered footer
-will be a modification date and will prepend something like "Last
-modified: ". If this is the case for your target system, you may want to
-set C<release> to the last modified date and C<date> to the version
-number.
+Note that some system C<an> macro sets assume that the centered footer will be
+a modification date and will prepend something like C<Last modified: >. If
+this is the case for your target system, you may want to set C<release> to the
+last modified date and C<date> to the version number.
=item section
-Set the section for the C<.TH> macro. The standard section numbering
-convention is to use 1 for user commands, 2 for system calls, 3 for
-functions, 4 for devices, 5 for file formats, 6 for games, 7 for
-miscellaneous information, and 8 for administrator commands. There is a lot
-of variation here, however; some systems (like Solaris) use 4 for file
-formats, 5 for miscellaneous information, and 7 for devices. Still others
-use 1m instead of 8, or some mix of both. About the only section numbers
-that are reliably consistent are 1, 2, and 3.
+[1.00] Set the section for the C<.TH> macro. The standard section numbering
+convention is to use 1 for user commands, 2 for system calls, 3 for functions,
+4 for devices, 5 for file formats, 6 for games, 7 for miscellaneous
+information, and 8 for administrator commands. There is a lot of variation
+here, however; some systems (like Solaris) use 4 for file formats, 5 for
+miscellaneous information, and 7 for devices. Still others use 1m instead of
+8, or some mix of both. About the only section numbers that are reliably
+consistent are 1, 2, and 3.
By default, section 1 will be used unless the file ends in C<.pm> in which
case section 3 will be selected.
=item stderr
-Send error messages about invalid POD to standard error instead of
-appending a POD ERRORS section to the generated *roff output. This is
-equivalent to setting C<errors> to C<stderr> if C<errors> is not already
-set. It is supported for backward compatibility.
+[2.19] If set to a true value, send error messages about invalid POD to
+standard error instead of appending a POD ERRORS section to the generated
+*roff output. This is equivalent to setting C<errors> to C<stderr> if
+C<errors> is not already set.
+
+This option is for backward compatibility with Pod::Man versions that did not
+support C<errors>. Normally, the C<errors> option should be used instead.
=item utf8
-By default, Pod::Man produces the most conservative possible *roff output
-to try to ensure that it will work with as many different *roff
-implementations as possible. Many *roff implementations cannot handle
-non-ASCII characters, so this means all non-ASCII characters are converted
-either to a *roff escape sequence that tries to create a properly accented
-character (at least for troff output) or to C<X>.
-
-If this option is set, Pod::Man will instead output UTF-8. If your *roff
-implementation can handle it, this is the best output format to use and
-avoids corruption of documents containing non-ASCII characters. However,
-be warned that *roff source with literal UTF-8 characters is not supported
-by many implementations and may even result in segfaults and other bad
-behavior.
-
-Be aware that, when using this option, the input encoding of your POD
-source should be properly declared unless it's US-ASCII. Pod::Simple will
-attempt to guess the encoding and may be successful if it's Latin-1 or
-UTF-8, but it will produce warnings. Use the C<=encoding> command to
-declare the encoding. See L<perlpod(1)> for more information.
+[2.21] This option used to set the output encoding to UTF-8. Since this is
+now the default, it is ignored and does nothing.
+
+=back
=back
-The standard Pod::Simple method parse_file() takes one argument naming the
-POD file to read from. By default, the output is sent to C<STDOUT>, but
-this can be changed with the output_fh() method.
+=head1 INSTANCE METHODS
+
+As a derived class from Pod::Simple, Pod::Man supports the same methods and
+interfaces. See L<Pod::Simple> for all the details. This section summarizes
+the most-frequently-used methods and the ones added by Pod::Man.
+
+=over 4
+
+=item output_fh(FH)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the file handle FH instead of C<STDOUT>.
+
+=item output_string(REF)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the scalar variable pointed to by REF, rather than C<STDOUT>. For example:
+
+ my $man = Pod::Man->new();
+ my $output;
+ $man->output_string(\$output);
+ $man->parse_file('/some/input/file');
-The standard Pod::Simple method parse_from_file() takes up to two
-arguments, the first being the input file to read POD from and the second
-being the file to write the formatted output to.
+Be aware that the output in that variable will already be encoded in UTF-8.
-You can also call parse_lines() to parse an array of lines or
-parse_string_document() to parse a document already in memory. As with
-parse_file(), parse_lines() and parse_string_document() default to sending
-their output to C<STDOUT> unless changed with the output_fh() method. Be
-aware that parse_lines() and parse_string_document() both expect raw bytes,
-not decoded characters.
+=item parse_file(PATH)
-To put the output from any parse method into a string instead of a file
-handle, call the output_string() method instead of output_fh().
+Read the POD source from PATH and format it. By default, the output is sent
+to C<STDOUT>, but this can be changed with the output_fh() or output_string()
+methods.
-See L<Pod::Simple> for more specific details on the methods available to
-all derived parsers.
+=item parse_from_file(INPUT, OUTPUT)
+
+=item parse_from_filehandle(FH, OUTPUT)
+
+Read the POD source from INPUT, format it, and output the results to OUTPUT.
+
+parse_from_filehandle() is provided for backward compatibility with older
+versions of Pod::Man. parse_from_file() should be used instead.
+
+=item parse_lines(LINES[, ...[, undef]])
+
+Parse the provided lines as POD source, writing the output to either C<STDOUT>
+or the file handle set with the output_fh() or output_string() methods. This
+method can be called repeatedly to provide more input lines. An explicit
+C<undef> should be passed to indicate the end of input.
+
+This method expects raw bytes, not decoded characters.
+
+=item parse_string_document(INPUT)
+
+Parse the provided scalar variable as POD source, writing the output to either
+C<STDOUT> or the file handle set with the output_fh() or output_string()
+methods.
+
+This method expects raw bytes, not decoded characters.
+
+=back
+
+=head1 ENCODING
+
+As of Pod::Man 5.00, the default output encoding for Pod::Man is UTF-8. This
+should work correctly on any modern system that uses either B<groff> (most
+Linux distributions) or B<mandoc> (Alpine Linux and most BSD variants,
+including macOS).
+
+The user will probably have to use a UTF-8 locale to see correct output. This
+may be done by default; if not, set the LANG or LC_CTYPE environment variables
+to an appropriate local. The locale C<C.UTF-8> is available on most systems
+if one wants correct output without changing the other things locales affect,
+such as collation.
+
+The backward-compatible output format used in Pod::Man versions before 5.00 is
+available by setting the C<encoding> option to C<roff>. This may produce
+marginally nicer results on older UNIX versions that do not use B<groff> or
+B<mandoc>, but none of the available options will correctly render Unicode
+characters on those systems.
+
+Below are some additional details about how this choice was made and some
+discussion of alternatives.
+
+=head2 History
+
+The default output encoding for Pod::Man has been a long-standing problem.
+B<troff> and B<nroff> predate Unicode by a significant margin, and their
+implementations for many UNIX systems reflect that legacy. It's common for
+Unicode to not be supported in any form.
+
+Because of this, versions of Pod::Man prior to 5.00 maintained the highly
+conservative output of the original pod2man, which output pure ASCII with
+complex macros to simulate common western European accented characters when
+processed with troff. The nroff output was awkward and sometimes incorrect,
+and characters not used in western European scripts were replaced with C<X>.
+This choice maximized backwards compatibility with B<man> and
+B<nroff>/B<troff> implementations at the cost of incorrect rendering of many
+POD documents, particularly those containing people's names.
+
+The modern implementations, B<groff> (used in most Linux distributions) and
+B<mandoc> (used by most BSD variants), do now support Unicode. Other UNIX
+systems often do not, but they're now a tiny minority of the systems people
+use on a daily basis. It's increasingly common (for very good reasons) to use
+Unicode characters for POD documents rather than using ASCII conversions of
+people's names or avoiding non-English text, making the limitations in the old
+output format more apparent.
+
+Four options have been proposed to fix this:
+
+=over 2
+
+=item *
+
+Optionally support UTF-8 output but don't change the default. This is the
+approach taken since Pod::Man 2.1.0, which added the C<utf8> option. Some
+Pod::Man users use this option for better output on platforms known to support
+Unicode, but since the defaults have not changed, people continued to
+encounter (and file bug reports about) the poor default rendering.
+
+=item *
+
+Convert characters to troff C<\(xx> escapes. This requires maintaining a
+large translation table and addresses only a tiny part of the problem, since
+many Unicode characters have no standard troff name. B<groff> has the largest
+list, but if one is willing to assume B<groff> is the formatter, the next
+option is better.
+
+=item *
+
+Convert characters to groff C<\[uNNNN]> escapes. This is implemented as the
+C<groff> encoding for those who want to use it, and is supported by both
+B<groff> and B<mandoc>. However, it is no better than UTF-8 output for
+portability to other implementations. See L</Testing results> for more
+details.
+
+=item *
+
+Change the default output format to UTF-8 and ask those who want maximum
+backward compatibility to explicitly select the old encoding. This fixes the
+issue for most users at the cost of backwards compatibility. While the
+rendering of non-ASCII characters is different on older systems that don't
+support UTF-8, it's not always worse than the old output.
+
+=back
+
+Pod::Man 5.00 and later makes the last choice. This arguably produces worse
+output when manual pages are formatted with B<troff> into PostScript or PDF,
+but doing this is rare and normally manual, so the encoding can be changed in
+those cases. The older output encoding is available by setting C<encoding> to
+C<roff>.
+
+=head2 Testing results
+
+Here is the results of testing C<encoding> values of C<utf-8> and C<groff> on
+various operating systems. The testing methodology was to create F<man/man1>
+in the current directory, copy F<encoding.utf8> or F<encoding.groff> from the
+podlators 5.00 distribution to F<man/man1/encoding.1>, and then run:
+
+ LANG=C.UTF-8 MANPATH=$(pwd)/man man 1 encoding
+
+If the locale is not explicitly set to one that includes UTF-8, the Unicode
+characters were usually converted to ASCII (by, for example, dropping an
+accent) or deleted or replaced with C<< <?> >> if there was no conversion.
+
+Tested on 2022-09-25. Many thanks to the GCC Compile Farm project for access
+to testing hosts.
+
+ OS UTF-8 groff
+ ------------------ ------- -------
+ AIX 7.1 no [1] no [2]
+ Alpine 3.15.0 yes yes
+ CentOS 7.9 yes yes
+ Debian 7 yes yes
+ FreeBSD 13.0 yes yes
+ NetBSD 9.2 yes yes
+ OpenBSD 7.1 yes yes
+ openSUSE Leap 15.4 yes yes
+ Solaris 10 yes no [2]
+ Solaris 11 no [3] no [3]
+
+I did not have access to a macOS system for testing, but since it uses
+B<mandoc>, it's behavior is probably the same as the BSD hosts.
+
+Notes:
+
+=over 4
+
+=item [1]
+
+Unicode characters were converted to one or two random ASCII characters
+unrelated to the original character.
+
+=item [2]
+
+Unicode characters were shown as the body of the groff escape rather than the
+indicated character (in other words, text like C<[u00EF]>).
+
+=item [3]
+
+Unicode characters were deleted entirely, as if they weren't there. Using
+C<nroff -man> instead of B<man> to format the page showed the same results as
+Solaris 10. Using C<groff -k -man -Tutf8> to format the page produced the
+correct output.
+
+=back
+
+PostScript and PDF output using groff on a Debian 12 system do not support
+combining accent marks or SMP characters due to a lack of support in the
+default output font.
+
+Testing on additional platforms is welcome. Please let the author know if you
+have additional results.
=head1 DIAGNOSTICS
@@ -1922,9 +2236,9 @@ option was set to C<die>.
=item PERL_CORE
-If set and Encode is not available, silently fall back to non-UTF-8 mode
-without complaining to standard error. This environment variable is set
-during Perl core builds, which build Encode after podlators. Encode is
+If set and Encode is not available, silently fall back to an encoding of
+C<groff> without complaining to standard error. This environment variable is
+set during Perl core builds, which build Encode after podlators. Encode is
expected to not (yet) be available in that case.
=item POD_MAN_DATE
@@ -1953,65 +2267,104 @@ reliable if this variable overrode the timestamp of the input file.)
=back
-=head1 BUGS
+=head1 COMPATIBILITY
-Encoding handling assumes that PerlIO is available and does not work
-properly if it isn't. The C<utf8> option is therefore not supported
-unless Perl is built with PerlIO support.
+Pod::Man 1.02 (based on L<Pod::Parser>) was the first version included with
+Perl, in Perl 5.6.0.
-There is currently no way to turn off the guesswork that tries to format
-unmarked text appropriately, and sometimes it isn't wanted (particularly
-when using POD to document something other than Perl). Most of the work
-toward fixing this has now been done, however, and all that's still needed
-is a user interface.
+The current API based on L<Pod::Simple> was added in Pod::Man 2.00. Pod::Man
+2.04 was included in Perl 5.9.3, the first version of Perl to incorporate
+those changes. This is the first version that correctly supports all modern
+POD syntax. The parse_from_filehandle() method was re-added for backward
+compatibility in Pod::Man 2.09, included in Perl 5.9.4.
-The NAME section should be recognized specially and index entries emitted
-for everything in that section. This would have to be deferred until the
-next section, since extraneous things in NAME tends to confuse various man
-page processors. Currently, no index entries are emitted for anything in
-NAME.
+Support for anchor text in LZ<><> links of type URL was added in Pod::Man
+2.23, included in Perl 5.11.5.
-Pod::Man doesn't handle font names longer than two characters. Neither do
-most B<troff> implementations, but GNU troff does as an extension. It would
-be nice to support as an option for those who want to use it.
+parse_lines(), parse_string_document(), and parse_file() set a default output
+file handle of C<STDOUT> if one was not already set as of Pod::Man 2.28,
+included in Perl 5.19.5.
+
+Support for SOURCE_DATE_EPOCH and POD_MAN_DATE was added in Pod::Man 4.00,
+included in Perl 5.23.7, and generated dates were changed to use UTC instead
+of the local time zone. This is also the first release that aligned the
+module version and the version of the podlators distribution. All modules
+included in podlators, and the podlators distribution itself, share the same
+version number from this point forward.
-The preamble added to each output file is rather verbose, and most of it
-is only necessary in the presence of non-ASCII characters. It would
-ideally be nice if all of those definitions were only output if needed,
-perhaps on the fly as the characters are used.
+Pod::Man 4.10, included in Perl 5.27.8, changed the formatting for manual page
+references and function names to bold instead of italic, following the current
+Linux manual page standard.
-Pod::Man is excessively slow.
+Pod::Man 5.00 changed the default output encoding to UTF-8, overridable with
+the new C<encoding> option. It also fixed problems with bold or italic
+extending too far when used with CZ<><> escapes, and began converting Unicode
+zero-width spaces (U+200B) to the C<\:> *roff escape. It also dropped
+attempts to add subtle formatting corrections in the output that would only be
+visible when typeset with B<troff>, which had previously been a significant
+source of bugs.
+
+=head1 BUGS
+
+There are numerous bugs and language-specific assumptions in the nroff
+fallbacks for accented characters in the C<roff> encoding. Since the point of
+this encoding is backward compatibility with the output from earlier versions
+of Pod::Man, and it is deprecated except when necessary to support old
+systems, those bugs are unlikely to ever be fixed.
+
+Pod::Man doesn't handle font names longer than two characters. Neither do
+most B<troff> implementations, but groff does as an extension. It would be
+nice to support as an option for those who want to use it.
=head1 CAVEATS
-If Pod::Man is given the C<utf8> option, the encoding of its output file
-handle will be forced to UTF-8 if possible, overriding any existing
-encoding. This will be done even if the file handle is not created by
-Pod::Man and was passed in from outside. This maintains consistency
-regardless of PERL_UNICODE and other settings.
+=head2 Sentence spacing
+
+Pod::Man copies the input spacing verbatim to the output *roff document. This
+means your output will be affected by how B<nroff> generally handles sentence
+spacing.
+
+B<nroff> dates from an era in which it was standard to use two spaces after
+sentences, and will always add two spaces after a line-ending period (or
+similar punctuation) when reflowing text. For example, the following input:
+
+ =pod
-The handling of hyphens and em dashes is somewhat fragile, and one may get
-the wrong one under some circumstances. This should only matter for
-B<troff> output.
+ One sentence.
+ Another sentence.
-When and whether to use small caps is somewhat tricky, and Pod::Man doesn't
-necessarily get it right.
+will result in two spaces after the period when the text is reflowed. If you
+use two spaces after sentences anyway, this will be consistent, although you
+will have to be careful to not end a line with an abbreviation such as C<e.g.>
+or C<Ms.>. Output will also be consistent if you use the *roff style guide
+(and L<XKCD 1285|https://xkcd.com/1285/>) recommendation of putting a line
+break after each sentence, although that will consistently produce two spaces
+after each sentence, which may not be what you want.
-Converting neutral double quotes to properly matched double quotes doesn't
-work unless there are no formatting codes between the quote marks. This
-only matters for troff output.
+If you prefer one space after sentences (which is the more modern style), you
+will unfortunately need to ensure that no line in the middle of a paragraph
+ends in a period or similar sentence-ending paragraph. Otherwise, B<nroff>
+will add a two spaces after that sentence when reflowing, and your output
+document will have inconsistent spacing.
+
+=head2 Hyphens
+
+The handling of hyphens versus dashes is somewhat fragile, and one may get a
+the wrong one under some circumstances. This will normally only matter for
+line breaking and possibly for troff output.
=head1 AUTHOR
-Russ Allbery <rra@cpan.org>, based I<very> heavily on the original B<pod2man>
-by Tom Christiansen <tchrist@mox.perl.com>. The modifications to work with
-Pod::Simple instead of Pod::Parser were originally contributed by Sean Burke
-<sburke@cpan.org> (but I've since hacked them beyond recognition and all bugs
-are mine).
+Written by Russ Allbery <rra@cpan.org>, based on the original B<pod2man> by
+Tom Christiansen <tchrist@mox.perl.com>.
+
+The modifications to work with Pod::Simple instead of Pod::Parser were
+contributed by Sean Burke <sburke@cpan.org>, but I've since hacked them beyond
+recognition and all bugs are mine.
=head1 COPYRIGHT AND LICENSE
-Copyright 1999-2010, 2012-2019 Russ Allbery <rra@cpan.org>
+Copyright 1999-2010, 2012-2020, 2022 Russ Allbery <rra@cpan.org>
Substantial contributions by Sean Burke <sburke@cpan.org>.
@@ -2020,18 +2373,19 @@ under the same terms as Perl itself.
=head1 SEE ALSO
-L<Pod::Simple>, L<perlpod(1)>, L<pod2man(1)>, L<nroff(1)>, L<troff(1)>,
-L<man(1)>, L<man(7)>
+L<Encode::Supported>, L<Pod::Simple>, L<perlpod(1)>, L<pod2man(1)>,
+L<nroff(1)>, L<troff(1)>, L<man(1)>, L<man(7)>
Ossanna, Joseph F., and Brian W. Kernighan. "Troff User's Manual,"
Computing Science Technical Report No. 54, AT&T Bell Laboratories. This is
the best documentation of standard B<nroff> and B<troff>. At the time of
this writing, it's available at L<http://www.troff.org/54.pdf>.
-The man page documenting the man macro set may be L<man(5)> instead of
-L<man(7)> on your system. Also, please see L<pod2man(1)> for extensive
-documentation on writing manual pages if you've not done it before and
-aren't familiar with the conventions.
+The manual page documenting the man macro set may be L<man(5)> instead of
+L<man(7)> on your system.
+
+See L<perlpodstyle(1)> for documentation on writing manual pages in POD if
+you've not done it before and aren't familiar with the conventions.
The current version of this module is always available from its web site at
L<https://www.eyrie.org/~eagle/software/podlators/>. It is also part of the
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm
index 273c95847a..83bc3f7565 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm
@@ -13,17 +13,15 @@
package Pod::ParseLink;
-use 5.008;
+use 5.010;
use strict;
use warnings;
-use vars qw(@EXPORT @ISA $VERSION);
-
use Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(parselink);
-$VERSION = '4.14';
+our @ISA = qw(Exporter);
+our @EXPORT = qw(parselink);
+our $VERSION = '5.01';
##############################################################################
# Implementation
@@ -171,7 +169,7 @@ Russ Allbery <rra@cpan.org>
=head1 COPYRIGHT AND LICENSE
-Copyright 2001, 2008, 2009, 2014, 2018-2019 Russ Allbery <rra@cpan.org>
+Copyright 2001, 2008, 2009, 2014, 2018-2019, 2022 Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm
index f2544d0ef1..ee89c0a489 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm
@@ -8,6 +8,7 @@ use integer;
use Pod::Escapes 1.04 ();
use Pod::Simple::LinkSection ();
use Pod::Simple::BlackBox ();
+use Pod::Simple::TiedOutFH;
#use utf8;
use vars qw(
@@ -18,7 +19,7 @@ use vars qw(
);
@ISA = ('Pod::Simple::BlackBox');
-$VERSION = '3.42';
+$VERSION = '3.43';
@Known_formatting_codes = qw(I B C L E F S X Z);
%Known_formatting_codes = map(($_=>1), @Known_formatting_codes);
@@ -202,7 +203,6 @@ sub output_string {
my $this = shift;
return $this->{'output_string'} unless @_; # GET.
- require Pod::Simple::TiedOutFH;
my $x = (defined($_[0]) and ref($_[0])) ? $_[0] : \( $_[0] );
$$x = '' unless defined $$x;
DEBUG > 4 and print STDERR "# Output string set to $x ($$x)\n";
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
index 03dede7c34..7c0d9aa469 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
@@ -22,7 +22,7 @@ use integer; # vroom!
use strict;
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.42';
+$VERSION = '3.43';
#use constant DEBUG => 7;
sub my_qr ($$) {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Checker.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
index 65f4d54243..3b22a3d6cd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
index 6b9aa327c0..7f51efa9dc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
@@ -2,7 +2,7 @@ require 5;
package Pod::Simple::Debug;
use strict;
use vars qw($VERSION );
-$VERSION = '3.42';
+$VERSION = '3.43';
sub import {
my($value,$variable);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
index a22603043b..dfcee5d2b4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsText;
-$VERSION = '3.42';
+$VERSION = '3.43';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
index 024e4b7b81..c5e719cdf8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsXML;
-$VERSION = '3.42';
+$VERSION = '3.43';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
index f930a51217..cebf5702a8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
@@ -9,7 +9,7 @@ use vars qw(
$Doctype_decl $Content_decl
);
@ISA = ('Pod::Simple::PullParser');
-$VERSION = '3.42';
+$VERSION = '3.43';
BEGIN {
if(defined &DEBUG) { } # no-op
elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
index 6a06173f47..cd33a4c97c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
@ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML!
# TODO: nocontents stylesheets. Strike some of the color variations?
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
index a6898caec4..c14dabcea2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
@@ -6,7 +6,7 @@ package Pod::Simple::LinkSection;
use strict;
use Pod::Simple::BlackBox;
use vars qw($VERSION );
-$VERSION = '3.42';
+$VERSION = '3.43';
use overload( # So it'll stringify nice
'""' => \&Pod::Simple::BlackBox::stringify_lol,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Methody.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
index 45e26cf463..cc096facbb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
@ISA = ('Pod::Simple');
# Yes, we could use named variables, but I want this to be impose
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
index 77de9ae86f..d1eaba2d6f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::Progress;
-$VERSION = '3.42';
+$VERSION = '3.43';
use strict;
# Objects of this class are used for noting progress of an
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
index 57aad9ac08..8c00592fba 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
@@ -1,6 +1,6 @@
require 5;
package Pod::Simple::PullParser;
-$VERSION = '3.42';
+$VERSION = '3.43';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
index dbff3df249..2d656e088f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
sub new { # Class->new(tagname);
my $class = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
index 1ab33cc6e0..5e1bf71ed9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
sub new { # Class->new(tagname, optional_attrhash);
my $class = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
index cdce959db4..159839952e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
sub new { # Class->new(text);
my $class = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
index 63a2dabe6f..48cece540f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
use strict;
sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/RTF.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
index 10e05c5d0a..793a8b2a49 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
use Pod::Simple::PullParser ();
BEGIN {@ISA = ('Pod::Simple::PullParser')}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm
index ad610654c9..6462549492 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm
@@ -3,7 +3,7 @@ package Pod::Simple::Search;
use strict;
use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY);
-$VERSION = '3.42'; ## Current version of this package
+$VERSION = '3.43'; ## Current version of this package
BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level
use Carp ();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
index 38a2704f87..15f457baaf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
@@ -5,7 +5,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.42';
+$VERSION = '3.43';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Text.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Text.pm
index 2f0254ec37..f44987f4e4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Text.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
index ccbf424221..9c2932e37d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
@ISA = ('Pod::Simple');
sub new {
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
index cbf58b3706..af5e745a30 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
index bdb7181af6..fef5d17d45 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::Transcode;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.42';
+$VERSION = '3.43';
BEGIN {
if(defined &DEBUG) {;} # Okay
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
index 96e6a54410..776b067645 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
# 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/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
index 3f3224f917..f46d1f9d05 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
@@ -9,7 +9,7 @@ use strict;
use Pod::Simple;
require Encode;
use vars qw($VERSION );
-$VERSION = '3.42';
+$VERSION = '3.43';
sub is_dumb {0}
sub is_smart {1}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
index 9049ce755f..e8d7e11127 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
use Pod::Simple::Methody ();
@ISA = ('Pod::Simple::Methody');
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
index a891a3341f..74d8c16b7b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
+++ b/systems/texlive/tlnet/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.42';
+$VERSION = '3.43';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm
index 56e6e78a86..83a7ce22a8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm
@@ -14,23 +14,20 @@
package Pod::Text;
-use 5.008;
+use 5.010;
use strict;
use warnings;
-use vars qw(@ISA @EXPORT %ESCAPES $VERSION);
-
use Carp qw(carp croak);
use Encode qw(encode);
use Exporter ();
use Pod::Simple ();
-@ISA = qw(Pod::Simple Exporter);
+our @ISA = qw(Pod::Simple Exporter);
+our $VERSION = '5.01';
# We have to export pod2text for backward compatibility.
-@EXPORT = qw(pod2text);
-
-$VERSION = '4.14';
+our @EXPORT = qw(pod2text);
# Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available. Code
# taken from Pod::Simple 3.32, but was only added in 3.30.
@@ -43,6 +40,11 @@ if ($Pod::Simple::VERSION ge 3.30) {
$SHY = chr utf8::unicode_to_native(0xAD);
}
+# Import the ASCII constant from Pod::Simple. This is true iff we're in an
+# ASCII-based universe (including such things as ISO 8859-1 and UTF-8), and is
+# generally only false for EBCDIC.
+BEGIN { *ASCII = \&Pod::Simple::ASCII }
+
##############################################################################
# Initialization
##############################################################################
@@ -64,9 +66,6 @@ sub new {
my $class = shift;
my $self = $class->SUPER::new;
- # Tell Pod::Simple to handle S<> by automatically inserting &nbsp;.
- $self->nbsp_for_S (1);
-
# Tell Pod::Simple to keep whitespace whenever possible.
if ($self->can ('preserve_whitespace')) {
$self->preserve_whitespace (1);
@@ -89,16 +88,20 @@ sub new {
my @opts = map { ("opt_$_", $opts{$_}) } keys %opts;
%$self = (%$self, @opts);
- # Send errors to stderr if requested.
+ # Backwards-compatibility support for the stderr option.
if ($$self{opt_stderr} and not $$self{opt_errors}) {
$$self{opt_errors} = 'stderr';
}
delete $$self{opt_stderr};
- # Validate the errors parameter and act on it.
- if (not defined $$self{opt_errors}) {
- $$self{opt_errors} = 'pod';
+ # Backwards-compatibility support for the utf8 option.
+ if ($$self{opt_utf8} && !$$self{opt_encoding}) {
+ $$self{opt_encoding} = 'UTF-8';
}
+ delete $$self{opt_utf8};
+
+ # Validate the errors parameter and act on it.
+ $$self{opt_errors} //= 'pod';
if ($$self{opt_errors} eq 'stderr' || $$self{opt_errors} eq 'die') {
$self->no_errata_section (1);
$self->complain_stderr (1);
@@ -117,12 +120,12 @@ sub new {
delete $$self{errors};
# Initialize various things from our parameters.
- $$self{opt_alt} = 0 unless defined $$self{opt_alt};
- $$self{opt_indent} = 4 unless defined $$self{opt_indent};
- $$self{opt_margin} = 0 unless defined $$self{opt_margin};
- $$self{opt_loose} = 0 unless defined $$self{opt_loose};
- $$self{opt_sentence} = 0 unless defined $$self{opt_sentence};
- $$self{opt_width} = 76 unless defined $$self{opt_width};
+ $$self{opt_alt} //= 0;
+ $$self{opt_indent} //= 4;
+ $$self{opt_margin} //= 0;
+ $$self{opt_loose} //= 0;
+ $$self{opt_sentence} //= 0;
+ $$self{opt_width} //= 76;
# Figure out what quotes we'll be using for C<> text.
$$self{opt_quotes} ||= '"';
@@ -138,6 +141,17 @@ sub new {
croak qq(Invalid quote specification "$$self{opt_quotes}");
}
+ # Configure guesswork based on options.
+ my $guesswork = $self->{opt_guesswork} || q{};
+ my %guesswork = map { $_ => 1 } split(m{,}xms, $guesswork);
+ if (!%guesswork || $guesswork{all}) {
+ $$self{GUESSWORK} = {quoting => 1};
+ } elsif ($guesswork{none}) {
+ $$self{GUESSWORK} = {};
+ } else {
+ $$self{GUESSWORK} = {%guesswork};
+ }
+
# If requested, do something with the non-POD text.
$self->code_handler (\&handle_code) if $$self{opt_code};
@@ -272,9 +286,7 @@ sub reformat {
}
# Output text to the output device. Replace non-breaking spaces with spaces
-# and soft hyphens with nothing, and then try to fix the output encoding if
-# necessary to match the input encoding unless UTF-8 output is forced. This
-# preserves the traditional pass-through behavior of Pod::Text.
+# and soft hyphens with nothing, and then determine the output encoding.
sub output {
my ($self, @text) = @_;
my $text = join ('', @text);
@@ -284,15 +296,39 @@ sub output {
if ($SHY) {
$text =~ s/$SHY//g;
}
- unless ($$self{opt_utf8}) {
- my $encoding = $$self{encoding} || '';
- if ($encoding && $encoding ne $$self{ENCODING}) {
- $$self{ENCODING} = $encoding;
- eval { binmode ($$self{output_fh}, ":encoding($encoding)") };
- }
- }
+
+ # The logic used here is described in the POD documentation. Prefer the
+ # configured encoding, then the pass-through option of using the same
+ # encoding as the input, and then UTF-8, but commit to an encoding for the
+ # document.
+ #
+ # ENCODE says whether to encode or not and is turned off if there is a
+ # PerlIO encoding layer (in start_document). ENCODING is the encoding
+ # that we previously committed to and is cleared at the start of each
+ # document.
if ($$self{ENCODE}) {
- print { $$self{output_fh} } encode ('UTF-8', $text);
+ my $encoding = $$self{ENCODING};
+ if (!$encoding) {
+ $encoding = $self->encoding();
+ if (!$encoding && ASCII && $text =~ /[^\x00-\x7F]/) {
+ $encoding = 'UTF-8';
+ }
+ if ($encoding) {
+ $$self{ENCODING} = $encoding;
+ }
+ }
+ if ($encoding) {
+ my $check = sub {
+ my ($char) = @_;
+ my $display = '"\x{' . hex($char) . '}"';
+ my $error = "$display does not map to $$self{ENCODING}";
+ $self->whine ($self->line_count(), $error);
+ return Encode::encode ($$self{ENCODING}, chr($char));
+ };
+ print { $$self{output_fh} } encode ($encoding, $text, $check);
+ } else {
+ print { $$self{output_fh} } $text;
+ }
} else {
print { $$self{output_fh} } $text;
}
@@ -322,24 +358,18 @@ sub start_document {
$$self{MARGIN} = $margin; # Default left margin.
$$self{PENDING} = [[]]; # Pending output.
- # We have to redo encoding handling for each document.
- $$self{ENCODING} = '';
-
- # When UTF-8 output is set, check whether our output file handle already
- # has a PerlIO encoding layer set. If it does not, we'll need to encode
- # our output before printing it (handled in the output() sub).
- $$self{ENCODE} = 0;
- if ($$self{opt_utf8}) {
- $$self{ENCODE} = 1;
- eval {
- my @options = (output => 1, details => 1);
- my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1];
- if ($flag && ($flag & PerlIO::F_UTF8 ())) {
- $$self{ENCODE} = 0;
- $$self{ENCODING} = 'UTF-8';
- }
- };
- }
+ # We have to redo encoding handling for each document. Check whether the
+ # output file handle already has a PerlIO encoding layer set and, if so,
+ # disable encoding.
+ $$self{ENCODE} = 1;
+ eval {
+ my @options = (output => 1, details => 1);
+ my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1];
+ if ($flag && ($flag & PerlIO::F_UTF8 ())) {
+ $$self{ENCODE} = 0;
+ }
+ };
+ $$self{ENCODING} = $$self{opt_encoding};
return '';
}
@@ -383,8 +413,7 @@ sub item {
# Calculate the indentation and margin. $fits is set to true if the tag
# will fit into the margin of the paragraph given our indentation level.
- my $indent = $$self{INDENTS}[-1];
- $indent = $$self{opt_indent} unless defined $indent;
+ my $indent = $$self{INDENTS}[-1] // $$self{opt_indent};
my $margin = ' ' x $$self{opt_margin};
my $tag_length = length ($self->strip_format ($tag));
my $fits = ($$self{MARGIN} - $indent >= $tag_length + 1);
@@ -588,6 +617,13 @@ sub cmd_f { return $_[0]{alt} ? "\"$_[2]\"" : $_[2] }
sub cmd_i { return '*' . $_[2] . '*' }
sub cmd_x { return '' }
+# Convert all internal whitespace to $NBSP.
+sub cmd_s {
+ my ($self, $attrs, $text) = @_;
+ $text =~ s{ \s }{$NBSP}xmsg;
+ return $text;
+}
+
# Apply a whole bunch of messy heuristics to not quote things that don't
# benefit from being quoted. These originally come from Barrie Slaymaker and
# largely duplicate code in Pod::Man.
@@ -597,23 +633,35 @@ sub cmd_c {
# A regex that matches the portion of a variable reference that's the
# array or hash index, separated out just because we want to use it in
# several places in the following regex.
- my $index = '(?: \[.*\] | \{.*\} )?';
+ my $index = '(?: \[[^]]+\] | \{[^}]+\} )?';
# Check for things that we don't want to quote, and if we find any of
# them, return the string with just a font change and no quoting.
+ #
+ # Traditionally, Pod::Text has not quoted Perl variables, functions,
+ # numbers, or hex constants, but this is not always desirable. Make this
+ # optional on the quoting guesswork flag.
+ my $extra = qr{(?!)}xms; # never matches
+ if ($$self{GUESSWORK}{quoting}) {
+ $extra = qr{
+ \$+ [\#^]? \S $index # special ($^F, $")
+ | [\$\@%&*]+ \#? [:\'\w]+ $index # plain var or func
+ | [\$\@%&*]* [:\'\w]+
+ (?: -> )? \(\s*[^\s,\)]*\s*\) # 0/1-arg func call
+ | [+-]? ( \d[\d.]* | \.\d+ )
+ (?: [eE][+-]?\d+ )? # a number
+ | 0x [a-fA-F\d]+ # a hex constant
+ }xms;
+ }
$text =~ m{
^\s*
(?:
- ( [\'\`\"] ) .* \1 # already quoted
- | \` .* \' # `quoted'
- | \$+ [\#^]? \S $index # special ($^Foo, $")
- | [\$\@%&*]+ \#? [:\'\w]+ $index # plain var or func
- | [\$\@%&*]* [:\'\w]+ (?: -> )? \(\s*[^\s,]\s*\) # 0/1-arg func call
- | [+-]? ( \d[\d.]* | \.\d+ ) (?: [eE][+-]?\d+ )? # a number
- | 0x [a-fA-F\d]+ # a hex constant
+ ( [\'\`\"] ) .* \1 # already quoted
+ | \` .* \' # `quoted'
+ | $extra
)
\s*\z
- }xo && return $text;
+ }xms and return $text;
# If we didn't return, go ahead and quote the text.
return $$self{opt_alt}
@@ -766,7 +814,7 @@ __END__
=for stopwords
alt stderr Allbery Sean Burke's Christiansen UTF-8 pre-Unicode utf8 nourls
-parsers
+parsers EBCDIC autodetecting superset unrepresentable FH NNN
=head1 NAME
@@ -785,67 +833,180 @@ Pod::Text - Convert POD data to formatted text
=head1 DESCRIPTION
-Pod::Text is a module that can convert documentation in the POD format
-(the preferred language for documenting Perl) into formatted text. It
-uses no special formatting controls or codes whatsoever, and its output is
-therefore suitable for nearly any device.
+Pod::Text is a module that can convert documentation in the POD format (the
+preferred language for documenting Perl) into formatted text. It uses no
+special formatting controls or codes, and its output is therefore suitable for
+nearly any device.
-As a derived class from Pod::Simple, Pod::Text supports the same methods and
-interfaces. See L<Pod::Simple> for all the details; briefly, one creates a
-new parser with C<< Pod::Text->new() >> and then normally calls parse_file().
+=head2 Encoding
-new() can take options, in the form of key/value pairs, that control the
-behavior of the parser. The currently recognized options are:
+Pod::Text uses the following logic to choose an output encoding, in order:
+
+=over 4
+
+=item 1.
+
+If a PerlIO encoding layer is set on the output file handle, do not do any
+output encoding and will instead rely on the PerlIO encoding layer.
+
+=item 2.
+
+If the C<encoding> or C<utf8> options are set, use the output encoding
+specified by those options.
+
+=item 3.
+
+If the input encoding of the POD source file was explicitly specified (using
+C<=encoding>) or automatically detected by Pod::Simple, use that as the output
+encoding as well.
+
+=item 4.
+
+Otherwise, if running on a non-EBCDIC system, use UTF-8 as the output
+encoding. Since this is a superset of ASCII, this will result in ASCII output
+unless the POD input contains non-ASCII characters without declaring or
+autodetecting an encoding (usually via EZ<><> escapes).
+
+=item 5.
+
+Otherwise, for EBCDIC systems, output without doing any encoding and hope
+this works.
+
+=back
+
+One caveat: Pod::Text has to commit to an output encoding the first time it
+outputs a non-ASCII character, and then has to stick with it for consistency.
+However, C<=encoding> commands don't have to be at the beginning of a POD
+document. If someone uses a non-ASCII character early in a document with an
+escape, such as EZ<><0xEF>, and then puts C<=encoding iso-8859-1> later,
+ideally Pod::Text would follow rule 3 and output the entire document as ISO
+8859-1. Instead, it will commit to UTF-8 following rule 4 as soon as it sees
+that escape, and then stick with that encoding for the rest of the document.
+
+Unfortunately, there's no universally good choice for an output encoding.
+Each choice will be incorrect in some circumstances. This approach was chosen
+primarily for backwards compatibility. Callers should consider forcing the
+output encoding via C<encoding> if they have any knowledge about what encoding
+the user may expect.
+
+In particular, consider importing the L<Encode::Locale> module, if available,
+and setting C<encoding> to C<locale> to use an output encoding appropriate to
+the user's locale. But be aware that if the user is not using locales or is
+using a locale of C<C>, Encode::Locale will set the output encoding to
+US-ASCII. This will cause all non-ASCII characters will be replaced with C<?>
+and produce a flurry of warnings about unsupported characters, which may or
+may not be what you want.
+
+=head1 CLASS METHODS
+
+=over 4
+
+=item new(ARGS)
+
+Create a new Pod::Text object. ARGS should be a list of key/value pairs,
+where the keys are chosen from the following. Each option is annotated with
+the version of Pod::Text in which that option was added with its current
+meaning.
=over 4
=item alt
-If set to a true value, selects an alternate output format that, among other
-things, uses a different heading style and marks C<=item> entries with a
+[2.00] If set to a true value, selects an alternate output format that, among
+other things, uses a different heading style and marks C<=item> entries with a
colon in the left margin. Defaults to false.
=item code
-If set to a true value, the non-POD parts of the input file will be included
-in the output. Useful for viewing code documented with POD blocks with the
-POD rendered and the code left intact.
+[2.13] If set to a true value, the non-POD parts of the input file will be
+included in the output. Useful for viewing code documented with POD blocks
+with the POD rendered and the code left intact.
+
+=item encoding
+
+[5.00] Specifies the encoding of the output. The value must be an encoding
+recognized by the L<Encode> module (see L<Encode::Supported>). If the output
+contains characters that cannot be represented in this encoding, that is an
+error that will be reported as configured by the C<errors> option. If error
+handling is other than C<die>, the unrepresentable character will be replaced
+with the Encode substitution character (normally C<?>).
+
+If the output file handle has a PerlIO encoding layer set, this parameter will
+be ignored and no encoding will be done by Pod::Man. It will instead rely on
+the encoding layer to make whatever output encoding transformations are
+desired.
+
+WARNING: The input encoding of the POD source is independent from the output
+encoding, and setting this option does not affect the interpretation of the
+POD input. Unless your POD source is US-ASCII, its encoding should be
+declared with the C<=encoding> command in the source, as near to the top of
+the file as possible. If this is not done, Pod::Simple will will attempt to
+guess the encoding and may be successful if it's Latin-1 or UTF-8, but it will
+produce warnings. See L<perlpod(1)> for more information.
=item errors
-How to report errors. C<die> says to throw an exception on any POD
-formatting error. C<stderr> says to report errors on standard error, but
-not to throw an exception. C<pod> says to include a POD ERRORS section
-in the resulting documentation summarizing the errors. C<none> ignores
-POD errors entirely, as much as possible.
+[3.17] How to report errors. C<die> says to throw an exception on any POD
+formatting error. C<stderr> says to report errors on standard error, but not
+to throw an exception. C<pod> says to include a POD ERRORS section in the
+resulting documentation summarizing the errors. C<none> ignores POD errors
+entirely, as much as possible.
The default is C<pod>.
+=item guesswork
+
+[5.01] By default, Pod::Text applies some default formatting rules based on
+guesswork and regular expressions that are intended to make writing Perl
+documentation easier and require less explicit markup. These rules may not
+always be appropriate, particularly for documentation that isn't about Perl.
+This option allows turning all or some of it off.
+
+The special value C<all> enables all guesswork. This is also the default for
+backward compatibility reasons. The special value C<none> disables all
+guesswork. Otherwise, the value of this option should be a comma-separated
+list of one or more of the following keywords:
+
+=over 4
+
+=item quoting
+
+If no guesswork is enabled, any text enclosed in CZ<><> is surrounded by
+double quotes in nroff (terminal) output unless the contents are already
+quoted. When this guesswork is enabled, quote marks will also be suppressed
+for Perl variables, function names, function calls, numbers, and hex
+constants.
+
+=back
+
+Any unknown guesswork name is silently ignored (for potential future
+compatibility), so be careful about spelling.
+
=item indent
-The number of spaces to indent regular text, and the default indentation for
-C<=over> blocks. Defaults to 4.
+[2.00] The number of spaces to indent regular text, and the default
+indentation for C<=over> blocks. Defaults to 4.
=item loose
-If set to a true value, a blank line is printed after a C<=head1> heading.
-If set to false (the default), no blank line is printed after C<=head1>,
-although one is still printed after C<=head2>. This is the default because
-it's the expected formatting for manual pages; if you're formatting
+[2.00] If set to a true value, a blank line is printed after a C<=head1>
+heading. If set to false (the default), no blank line is printed after
+C<=head1>, although one is still printed after C<=head2>. This is the default
+because it's the expected formatting for manual pages; if you're formatting
arbitrary text documents, setting this to true may result in more pleasing
output.
=item margin
-The width of the left margin in spaces. Defaults to 0. This is the margin
-for all text, including headings, not the amount by which regular text is
-indented; for the latter, see the I<indent> option. To set the right
+[2.21] The width of the left margin in spaces. Defaults to 0. This is the
+margin for all text, including headings, not the amount by which regular text
+is indented; for the latter, see the I<indent> option. To set the right
margin, see the I<width> option.
=item nourls
-Normally, LZ<><> formatting codes with a URL but anchor text are formatted
-to show both the anchor text and the URL. In other words:
+[3.17] Normally, LZ<><> formatting codes with a URL but anchor text are
+formatted to show both the anchor text and the URL. In other words:
L<foo|http://example.com/>
@@ -853,74 +1014,131 @@ is formatted as:
foo <http://example.com/>
-This option, if set to a true value, suppresses the URL when anchor text
-is given, so this example would be formatted as just C<foo>. This can
-produce less cluttered output in cases where the URLs are not particularly
-important.
+This option, if set to a true value, suppresses the URL when anchor text is
+given, so this example would be formatted as just C<foo>. This can produce
+less cluttered output in cases where the URLs are not particularly important.
=item quotes
-Sets the quote marks used to surround CE<lt>> text. If the value is a
-single character, it is used as both the left and right quote. Otherwise,
-it is split in half, and the first half of the string is used as the left
-quote and the second is used as the right quote.
+[4.00] Sets the quote marks used to surround CE<lt>> text. If the value is a
+single character, it is used as both the left and right quote. Otherwise, it
+is split in half, and the first half of the string is used as the left quote
+and the second is used as the right quote.
This may also be set to the special value C<none>, in which case no quote
marks are added around CE<lt>> text.
=item sentence
-If set to a true value, Pod::Text will assume that each sentence ends in two
-spaces, and will try to preserve that spacing. If set to false, all
-consecutive whitespace in non-verbatim paragraphs is compressed into a
-single space. Defaults to false.
+[3.00] If set to a true value, Pod::Text will assume that each sentence ends
+in two spaces, and will try to preserve that spacing. If set to false, all
+consecutive whitespace in non-verbatim paragraphs is compressed into a single
+space. Defaults to false.
=item stderr
-Send error messages about invalid POD to standard error instead of
-appending a POD ERRORS section to the generated output. This is
-equivalent to setting C<errors> to C<stderr> if C<errors> is not already
-set. It is supported for backward compatibility.
+[3.10] Send error messages about invalid POD to standard error instead of
+appending a POD ERRORS section to the generated output. This is equivalent to
+setting C<errors> to C<stderr> if C<errors> is not already set. It is
+supported for backward compatibility.
=item utf8
-By default, Pod::Text uses the same output encoding as the input encoding
-of the POD source (provided that Perl was built with PerlIO; otherwise, it
-doesn't encode its output). If this option is given, the output encoding
-is forced to UTF-8.
-
-Be aware that, when using this option, the input encoding of your POD
-source should be properly declared unless it's US-ASCII. Pod::Simple will
-attempt to guess the encoding and may be successful if it's Latin-1 or
-UTF-8, but it will produce warnings. Use the C<=encoding> command to
-declare the encoding. See L<perlpod(1)> for more information.
+[3.12] If this option is set to a true value, the output encoding is set to
+UTF-8. This is equivalent to setting C<encoding> to C<UTF-8> if C<encoding>
+is not already set. It is supported for backward compatibility.
=item width
-The column at which to wrap text on the right-hand side. Defaults to 76.
+[2.00] The column at which to wrap text on the right-hand side. Defaults to
+76.
+
+=back
+
+=back
+
+=head1 INSTANCE METHODS
+
+As a derived class from Pod::Simple, Pod::Text supports the same methods and
+interfaces. See L<Pod::Simple> for all the details. This section summarizes
+the most-frequently-used methods and the ones added by Pod::Text.
+
+=over 4
+
+=item output_fh(FH)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the file handle FH instead of C<STDOUT>.
+
+=item output_string(REF)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the scalar variable pointed to by REF, rather than C<STDOUT>. For example:
+
+ my $man = Pod::Man->new();
+ my $output;
+ $man->output_string(\$output);
+ $man->parse_file('/some/input/file');
+
+Be aware that the output in that variable will already be encoded (see
+L</Encoding>).
+
+=item parse_file(PATH)
+
+Read the POD source from PATH and format it. By default, the output is sent
+to C<STDOUT>, but this can be changed with the output_fh() or output_string()
+methods.
+
+=item parse_from_file(INPUT, OUTPUT)
+
+=item parse_from_filehandle(FH, OUTPUT)
+
+Read the POD source from INPUT, format it, and output the results to OUTPUT.
+
+parse_from_filehandle() is provided for backward compatibility with older
+versions of Pod::Man. parse_from_file() should be used instead.
+
+=item parse_lines(LINES[, ...[, undef]])
+
+Parse the provided lines as POD source, writing the output to either C<STDOUT>
+or the file handle set with the output_fh() or output_string() methods. This
+method can be called repeatedly to provide more input lines. An explicit
+C<undef> should be passed to indicate the end of input.
+
+This method expects raw bytes, not decoded characters.
+
+=item parse_string_document(INPUT)
+
+Parse the provided scalar variable as POD source, writing the output to either
+C<STDOUT> or the file handle set with the output_fh() or output_string()
+methods.
+
+This method expects raw bytes, not decoded characters.
=back
-The standard Pod::Simple method parse_file() takes one argument naming the
-POD file to read from. By default, the output is sent to C<STDOUT>, but
-this can be changed with the output_fh() method.
+=head1 FUNCTIONS
-The standard Pod::Simple method parse_from_file() takes up to two
-arguments, the first being the input file to read POD from and the second
-being the file to write the formatted output to.
+Pod::Text exports one function for backward compatibility with older versions.
+This function is deprecated; instead, use the object-oriented interface
+described above.
-You can also call parse_lines() to parse an array of lines or
-parse_string_document() to parse a document already in memory. As with
-parse_file(), parse_lines() and parse_string_document() default to sending
-their output to C<STDOUT> unless changed with the output_fh() method. Be
-aware that parse_lines() and parse_string_document() both expect raw bytes,
-not decoded characters.
+=over 4
+
+=item pod2text([[-a,] [-NNN,]] INPUT[, OUTPUT])
+
+Convert the POD source from INPUT to text and write it to OUTPUT. If OUTPUT
+is not given, defaults to C<STDOUT>. INPUT can be any expression supported as
+the second argument to two-argument open().
-To put the output from any parse method into a string instead of a file
-handle, call the output_string() method instead of output_fh().
+If C<-a> is given as an initial argument, pass the C<alt> option to the
+Pod::Text constructor. This enables alternative formatting.
-See L<Pod::Simple> for more specific details on the methods available to
-all derived parsers.
+If C<-NNN> is given as an initial argument, pass the C<width> option to the
+Pod::Text constructor with the number C<NNN> as its argument. This sets the
+wrap line width to NNN.
+
+=back
=head1 DIAGNOSTICS
@@ -955,61 +1173,66 @@ option was set to C<die>.
=back
-=head1 BUGS
+=head1 COMPATIBILITY
-Encoding handling assumes that PerlIO is available and does not work
-properly if it isn't. The C<utf8> option is therefore not supported
-unless Perl is built with PerlIO support.
+Pod::Text 2.03 (based on L<Pod::Parser>) was the first version of this module
+included with Perl, in Perl 5.6.0. Earlier versions of Perl had a different
+Pod::Text module, with a different API.
-=head1 CAVEATS
+The current API based on L<Pod::Simple> was added in Pod::Text 3.00.
+Pod::Text 3.01 was included in Perl 5.9.3, the first version of Perl to
+incorporate those changes. This is the first version that correctly supports
+all modern POD syntax. The parse_from_filehandle() method was re-added for
+backward compatibility in Pod::Text 3.07, included in Perl 5.9.4.
-If Pod::Text is given the C<utf8> option, the encoding of its output file
-handle will be forced to UTF-8 if possible, overriding any existing
-encoding. This will be done even if the file handle is not created by
-Pod::Text and was passed in from outside. This maintains consistency
-regardless of PERL_UNICODE and other settings.
+Pod::Text 3.12, included in Perl 5.10.1, first implemented the current
+practice of attempting to match the default output encoding with the input
+encoding of the POD source, unless overridden by the C<utf8> option or (added
+later) the C<encoding> option.
-If the C<utf8> option is not given, the encoding of its output file handle
-will be forced to the detected encoding of the input POD, which preserves
-whatever the input text is. This ensures backward compatibility with
-earlier, pre-Unicode versions of this module, without large numbers of
-Perl warnings.
+Support for anchor text in LZ<><> links of type URL was added in Pod::Text
+3.14, included in Perl 5.11.5.
-This is not ideal, but it seems to be the best compromise. If it doesn't
-work for you, please let me know the details of how it broke.
+parse_lines(), parse_string_document(), and parse_file() set a default output
+file handle of C<STDOUT> if one was not already set as of Pod::Text 3.18,
+included in Perl 5.19.5.
-=head1 NOTES
+Pod::Text 4.00, included in Perl 5.23.7, aligned the module version and the
+version of the podlators distribution. All modules included in podlators, and
+the podlators distribution itself, share the same version number from this
+point forward.
-This is a replacement for an earlier Pod::Text module written by Tom
-Christiansen. It has a revamped interface, since it now uses Pod::Simple,
-but an interface roughly compatible with the old Pod::Text::pod2text()
-function is still available. Please change to the new calling convention,
-though.
+Pod::Text 4.09, included in Perl 5.25.7, fixed a serious bug on EBCDIC
+systems, present in all versions back to 3.00, that would cause opening
+brackets to disappear.
-The original Pod::Text contained code to do formatting via termcap
-sequences, although it wasn't turned on by default and it was problematic to
-get it to work at all. This rewrite doesn't even try to do that, but a
-subclass of it does. Look for L<Pod::Text::Termcap>.
+Pod::Text 5.00 now defaults, on non-EBCDIC systems, to UTF-8 encoding if it
+sees a non-ASCII character in the input and the input encoding is not
+specified. It also commits to an encoding with the first non-ASCII character
+and does not change the output encoding if the input encoding changes. The
+L<Encode> module is now used for all output encoding rather than PerlIO
+layers, which fixes earlier problems with output to scalars.
=head1 AUTHOR
-Russ Allbery <rra@cpan.org>, based I<very> heavily on the original
-Pod::Text by Tom Christiansen <tchrist@mox.perl.com> and its conversion to
-Pod::Parser by Brad Appleton <bradapp@enteract.com>. Sean Burke's initial
-conversion of Pod::Man to use Pod::Simple provided much-needed guidance on
-how to use Pod::Simple.
+Russ Allbery <rra@cpan.org>, based I<very> heavily on the original Pod::Text
+by Tom Christiansen <tchrist@mox.perl.com> and its conversion to Pod::Parser
+by Brad Appleton <bradapp@enteract.com>. Sean Burke's initial conversion of
+Pod::Man to use Pod::Simple provided much-needed guidance on how to use
+Pod::Simple.
=head1 COPYRIGHT AND LICENSE
-Copyright 1999-2002, 2004, 2006, 2008-2009, 2012-2016, 2018-2019 Russ Allbery
-<rra@cpan.org>
+Copyright 1999-2002, 2004, 2006, 2008-2009, 2012-2016, 2018-2019, 2022 Russ
+Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
=head1 SEE ALSO
-L<Pod::Simple>, L<Pod::Text::Termcap>, L<perlpod(1)>, L<pod2text(1)>
+L<Encode::Locale>, L<Encode::Supproted>, L<Pod::Simple>,
+L<Pod::Text::Termcap>, L<perlpod(1)>, L<pod2text(1)>
The current version of this module is always available from its web site at
L<https://www.eyrie.org/~eagle/software/podlators/>. It is also part of the
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm
index 5d47c5ecb3..2d656d6a3d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm
@@ -12,18 +12,15 @@
package Pod::Text::Color;
-use 5.008;
+use 5.010;
use strict;
use warnings;
use Pod::Text ();
use Term::ANSIColor qw(color colored);
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(Pod::Text);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Text);
+our $VERSION = '5.01';
##############################################################################
# Overrides
@@ -170,11 +167,22 @@ options.
Term::ANSIColor is used to get colors and therefore must be installed to use
this module.
-=head1 BUGS
+=head1 COMPATIBILITY
+
+Pod::Text::Color 0.05 (based on L<Pod::Parser>) was the first version of this
+module included with Perl, in Perl 5.6.0.
+
+The current API based on L<Pod::Simple> was added in Pod::Text::Color 2.00.
+Pod::Text::Color 2.01 was included in Perl 5.9.3, the first version of Perl to
+incorporate those changes.
+
+Several problems with wrapping and line length were fixed as recently as
+Pod::Text::Color 4.11, included in Perl 5.29.1.
-This is just a basic proof of concept. It should be seriously expanded to
-support configurable coloration via options passed to the constructor, and
-B<pod2text> should be taught about those.
+This module inherits its API and most behavior from Pod::Text, so the details
+in L<Pod::Text/COMPATIBILITY> also apply. Pod::Text and Pod::Text::Color have
+had the same module version since 4.00, included in Perl 5.23.7. (They
+unfortunately diverge in confusing ways prior to that.)
=head1 AUTHOR
@@ -182,7 +190,7 @@ Russ Allbery <rra@cpan.org>.
=head1 COPYRIGHT AND LICENSE
-Copyright 1999, 2001, 2004, 2006, 2008, 2009, 2018-2019 Russ Allbery
+Copyright 1999, 2001, 2004, 2006, 2008, 2009, 2018-2019, 2022 Russ Allbery
<rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm
index 53bc6afef2..3135c8863c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm
@@ -19,17 +19,14 @@
package Pod::Text::Overstrike;
-use 5.008;
+use 5.010;
use strict;
use warnings;
-use vars qw(@ISA $VERSION);
-
use Pod::Text ();
-@ISA = qw(Pod::Text);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Text);
+our $VERSION = '5.01';
##############################################################################
# Overrides
@@ -176,6 +173,22 @@ Currently, the outermost formatting instruction wins, so for example
underlined text inside a region of bold text is displayed as simply bold.
There may be some better approach possible.
+=head1 COMPATIBILITY
+
+Pod::Text::Overstrike 1.01 (based on L<Pod::Parser>) was the first version of
+this module included with Perl, in Perl 5.6.1.
+
+The current API based on L<Pod::Simple> was added in Pod::Text::Overstrike
+2.00, included in Perl 5.9.3.
+
+Several problems with wrapping and line length were fixed as recently as
+Pod::Text::Overstrike 2.04, included in Perl 5.11.5.
+
+This module inherits its API and most behavior from Pod::Text, so the details
+in L<Pod::Text/COMPATIBILITY> also apply. Pod::Text and Pod::Text::Overstrike
+have had the same module version since 4.00, included in Perl 5.23.7. (They
+unfortunately diverge in confusing ways prior to that.)
+
=head1 AUTHOR
Originally written by Joe Smith <Joe.Smith@inwap.com>, using the framework
@@ -185,7 +198,7 @@ created by Russ Allbery <rra@cpan.org>. Subsequently updated by Russ Allbery.
Copyright 2000 by Joe Smith <Joe.Smith@inwap.com>
-Copyright 2001, 2004, 2008, 2014, 2018-2019 by Russ Allbery <rra@cpan.org>
+Copyright 2001, 2004, 2008, 2014, 2018-2019, 2022 by Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm
index be218f0bf0..d4b74874d8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm
@@ -12,7 +12,7 @@
package Pod::Text::Termcap;
-use 5.008;
+use 5.010;
use strict;
use warnings;
@@ -20,11 +20,8 @@ use Pod::Text ();
use POSIX ();
use Term::Cap;
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(Pod::Text);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Text);
+our $VERSION = '5.01';
##############################################################################
# Overrides
@@ -204,13 +201,13 @@ sub wrap {
1;
__END__
+=for stopwords
+ECMA-48 VT100 Allbery Solaris TERMPATH unformatted
+
=head1 NAME
Pod::Text::Termcap - Convert POD data to ASCII text with format escapes
-=for stopwords
-ECMA-48 VT100 Allbery Solaris TERMPATH
-
=head1 SYNOPSIS
use Pod::Text::Termcap;
@@ -235,14 +232,37 @@ and how to override that behavior if necessary. If unable to find control
strings for bold and underscore formatting, that formatting is skipped,
resulting in the same output as Pod::Text.
+=head1 COMPATIBILITY
+
+Pod::Text::Termcap 0.04 (based on L<Pod::Parser>) was the first version of
+this module included with Perl, in Perl 5.6.0.
+
+The current API based on L<Pod::Simple> was added in Pod::Text::Termcap 2.00.
+Pod::Text::Termcap 2.01 was included in Perl 5.9.3, the first version of Perl
+to incorporate those changes.
+
+Several problems with wrapping and line length were fixed as recently as
+Pod::Text::Termcap 4.11, included in Perl 5.29.1.
+
+Pod::Text::Termcap 4.13 stopped setting the TERMPATH environment variable
+during module load. It also stopped falling back on VT100 escape sequences if
+Term::Cap was not able to find usable escape sequences, instead producing
+unformatted output for better results on dumb terminals. The next version to
+be incorporated into Perl, 4.14, was included in Perl 5.31.8.
+
+This module inherits its API and most behavior from Pod::Text, so the details
+in L<Pod::Text/COMPATIBILITY> also apply. Pod::Text and Pod::Text::Termcap
+have had the same module version since 4.00, included in Perl 5.23.7. (They
+unfortunately diverge in confusing ways prior to that.)
+
=head1 AUTHOR
Russ Allbery <rra@cpan.org>
=head1 COPYRIGHT AND LICENSE
-Copyright 1999, 2001-2002, 2004, 2006, 2008-2009, 2014-2015, 2018-2019 Russ
-Allbery <rra@cpan.org>
+Copyright 1999, 2001-2002, 2004, 2006, 2008-2009, 2014-2015, 2018-2019, 2022
+Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm
index c290f2baf1..0ed3a60315 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm
@@ -18,7 +18,7 @@ use Config;
use Exporter;
use File::Spec;
-our $VERSION = '2.01';
+our $VERSION = '2.03';
our @EXPORT = qw(&pod2usage);
our @ISA;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm
index 30e380a6bb..6ba1ab8aad 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm
@@ -7,7 +7,7 @@ require Tie::Hash;
require XSLoader;
our @ISA = qw(Tie::Hash);
-our $VERSION = "1.15";
+our $VERSION = "1.17";
our @EXPORT_OK = qw(PAGFEXT DIRFEXT PAIRMAX);
use Exporter "import";
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm
index 38791ce9ad..32eb3eb6d5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm
@@ -3,7 +3,7 @@ package Safe;
use 5.003_11;
use Scalar::Util qw(reftype refaddr);
-$Safe::VERSION = "2.43";
+$Safe::VERSION = "2.44";
# *** Don't declare any lexicals above this point ***
#
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm
index a7345aad78..760e641ebf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm
@@ -17,33 +17,17 @@ our @EXPORT_OK = qw(
dualvar isdual isvstring looks_like_number openhandle readonly set_prototype
tainted
);
-our $VERSION = "1.55";
+our $VERSION = "1.63";
$VERSION =~ tr/_//d;
require List::Util; # List::Util loads the XS
List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863)
-our @EXPORT_FAIL;
-
-unless (defined &weaken) {
- push @EXPORT_FAIL, qw(weaken);
-}
-unless (defined &isweak) {
- push @EXPORT_FAIL, qw(isweak isvstring);
-}
-unless (defined &isvstring) {
- push @EXPORT_FAIL, qw(isvstring);
-}
-
+# populating @EXPORT_FAIL is done in the XS code
sub export_fail {
- if (grep { /^(?:weaken|isweak)$/ } @_ ) {
- require Carp;
- Carp::croak("Weak references are not implemented in the version of perl");
- }
-
if (grep { /^isvstring$/ } @_ ) {
require Carp;
- Carp::croak("Vstrings are not implemented in the version of perl");
+ Carp::croak("Vstrings are not implemented in this version of perl");
}
@_;
@@ -80,6 +64,21 @@ being individual extensions would be wasteful.
By default C<Scalar::Util> does not export any subroutines.
+=head2 Core Perl C<builtin> Functions
+
+Many functions in this module have served as the inspiration for a new
+experimental facility in recent versions of Perl. From various development
+versions, starting at 5.35.7, equivalent functions to many of these utilities
+are available in the C<builtin::> package.
+
+ use Scalar::Util qw(blessed);
+
+ $class = blessed $obj;
+
+ $class = builtin::blessed $obj; # equivalent
+
+For more information, see the documentation on L<builtin>.
+
=cut
=head1 FUNCTIONS FOR REFERENCES
@@ -105,6 +104,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.
+I<Since Perl version 5.35.7> an equivalent function is available as
+C<builtin::blessed>.
+
=head2 refaddr
my $addr = refaddr( $ref );
@@ -119,6 +121,9 @@ returned as a plain integer. Otherwise C<undef> is returned.
$obj = bless {}, "Foo";
$addr = refaddr $obj; # eg 88123488
+I<Since Perl version 5.35.7> an equivalent function is available as
+C<builtin::refaddr>.
+
=head2 reftype
my $type = reftype( $ref );
@@ -139,6 +144,9 @@ blessed references; thus C<ref()> returns the package name string C<"Regexp">
on these but C<reftype()> will return the underlying C structure type of
C<"REGEXP"> in all capitals.
+I<Since Perl version 5.35.7> an equivalent function is available as
+C<builtin::reftype>.
+
=head2 weaken
weaken( $ref );
@@ -178,6 +186,9 @@ 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.
+I<Since Perl version 5.35.7> an equivalent function is available as
+C<builtin::weaken>.
+
=head2 unweaken
unweaken( $ref );
@@ -199,6 +210,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).
+I<Since Perl version 5.35.7> an equivalent function is available as
+C<builtin::unweaken>.
+
=head2 isweak
my $weak = isweak( $ref );
@@ -215,6 +229,9 @@ B<NOTE>: Copying a weak reference creates a normal, strong, reference.
$copy = $ref;
$weak = isweak($copy); # false
+I<Since Perl version 5.35.7> an equivalent function is available as
+C<builtin::is_weak>.
+
=head1 OTHER FUNCTIONS
=head2 dualvar
@@ -241,24 +258,24 @@ true.
$dual = isdual($foo); # true
Note that a scalar can be made to have both string and numeric content through
-numeric operations:
+standard operations:
$foo = "10";
$dual = isdual($foo); # false
$bar = $foo + 0;
$dual = isdual($foo); # true
-Note that although C<$!> appears to be a dual-valued variable, it is
-actually implemented as a magical variable inside the interpreter:
+The C<$!> variable is commonly dual-valued, though it is also magical in other
+ways:
$! = 1;
+ $dual = isdual($!); # true
print("$!\n"); # "Operation not permitted"
- $dual = isdual($!); # false
-
-You can capture its numeric and string content using:
- $err = dualvar $!, $!;
- $dual = isdual($err); # true
+B<CAUTION>: This function is not as useful as it may seem. Dualvars are not a
+distinct concept in Perl, but a standard internal construct of all scalar
+values. Almost any value could be considered as a dualvar by this function
+through the course of normal operations.
=head2 isvstring
@@ -324,12 +341,7 @@ Module use may give one of the following errors during import.
=over
-=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 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
+=item Vstrings are not implemented in this version of perl
The version of perl that you are using does not implement Vstrings, to use
L</isvstring> you will need to use a newer release of perl.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm
index fe47ef67ec..6b01256523 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm
@@ -3,7 +3,7 @@ package Socket;
use strict;
{ use v5.6.1; }
-our $VERSION = '2.031';
+our $VERSION = '2.036';
=head1 NAME
@@ -793,7 +793,8 @@ our @EXPORT_OK = qw(
IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT
IPV6_UNICAST_HOPS IPV6_V6ONLY
- SO_LOCK_FILTER SO_RCVBUFFORCE SO_SNDBUFFORCE
+ SO_INCOMING_CPU SO_INCOMING_NAPI_ID SO_LOCK_FILTER SO_RCVBUFFORCE
+ SO_SNDBUFFORCE
pack_ip_mreq unpack_ip_mreq pack_ip_mreq_source unpack_ip_mreq_source
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm
index 27c9cf54c3..d531f2b8d0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm
@@ -28,7 +28,7 @@ our @EXPORT_OK = qw(
our ($canonical, $forgive_me);
BEGIN {
- our $VERSION = '3.23';
+ our $VERSION = '3.32';
}
our $recursion_limit;
@@ -1197,11 +1197,16 @@ compartment:
=head1 SECURITY WARNING
-B<Do not accept Storable documents from untrusted sources!>
+B<Do not accept Storable documents from untrusted sources!> There is
+B<no> way to configure Storable so that it can be used safely to process
+untrusted data. While there I<are> various options that can be used to
+mitigate specific security issues these options do I<not> comprise a
+complete safety net for the user, and processing untrusted data may
+result in segmentation faults, remote code execution, or privilege
+escalation. The following lists some known features which represent
+security issues that should be considered by users of this module.
-Some features of Storable can lead to security vulnerabilities if you
-accept Storable documents from untrusted sources with the default
-flags. Most obviously, the optional (off by default) CODE reference
+Most obviously, the optional (off by default) CODE reference
serialization feature allows transfer of code to the deserializing
process. Furthermore, any serialized object will cause Storable to
helpfully load the module corresponding to the class of the object in
@@ -1224,12 +1229,15 @@ With the default setting of C<$Storable::flags> = 6, creating or destroying
random objects, even renamed objects can be controlled by an attacker.
See CVE-2015-1592 and its metasploit module.
-If your application requires accepting data from untrusted sources,
-you are best off with a less powerful and more-likely safe
-serialization format and implementation. If your data is sufficiently
-simple, L<Cpanel::JSON::XS>, L<Data::MessagePack> or L<Sereal> are the best
-choices and offer maximum interoperability, but note that Sereal is
-L<unsafe by default|Sereal::Decoder/ROBUSTNESS>.
+If your application requires accepting data from untrusted sources, you
+are best off with a less powerful and more-likely safe serialization
+format and implementation. If your data is sufficiently simple,
+L<Cpanel::JSON::XS> or L<Data::MessagePack> are fine alternatives. For
+more complex data structures containing various Perl specific data types
+like regular expressions or aliased data L<Sereal> is the best
+alternative and offers maximum interoperability. Note that Sereal is
+L<unsafe by default|Sereal::Decoder/ROBUSTNESS>, but you can configure
+the encoder and decoder to mitigate any security issues.
=head1 WARNING
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm
index d7b59aebab..f96e857c28 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm
@@ -15,7 +15,7 @@ our @EXPORT_OK = qw(
subname set_subname
);
-our $VERSION = "1.55";
+our $VERSION = "1.63";
$VERSION =~ tr/_//d;
require List::Util; # as it has the XS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm
index 2284e1f81c..8e4f41f72f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm
@@ -4,9 +4,8 @@ use strict;
use Carp;
-require Exporter;
+use Exporter 'import';
-our @ISA = qw/ Exporter /;
our @EXPORT = qw/ hostname /;
our $VERSION;
@@ -16,7 +15,7 @@ use warnings ();
our $host;
BEGIN {
- $VERSION = '1.23';
+ $VERSION = '1.25';
{
local $SIG{__DIE__};
eval {
@@ -132,7 +131,7 @@ Sys::Hostname - Try every conceivable way to get hostname
=head1 SYNOPSIS
use Sys::Hostname;
- $host = hostname;
+ my $host = hostname;
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm
index 289f093bc6..d3de9339e0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm
@@ -12,11 +12,11 @@ and L<TAP::Harness>
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
use constant GOT_TIME_HIRES => do {
eval 'use Time::HiRes qw(time);';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
index a9c0e3b04b..33fdd991f5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
@@ -58,11 +58,11 @@ TAP::Formatter::Base - Base class for harness output delegates
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
@@ -387,7 +387,30 @@ sub _summary_test_header {
$spaces = ' ' unless $spaces;
my $output = $self->_get_output_method($parser);
my $wait = $parser->wait;
- defined $wait or $wait = '(none)';
+
+ if (defined $wait) {
+ my $signum = $wait & 0x7f;
+
+ my $description;
+
+ if ($signum) {
+ require Config;
+ my @names = split ' ', $Config::Config{'sig_name'};
+ $description = "Signal: $names[$signum]";
+
+ my $dumped = $wait & 0x80;
+ $description .= ', dumped core' if $dumped;
+ }
+ elsif ($wait != 0) {
+ $description = sprintf 'exited %d', ($wait >> 8);
+ }
+
+ $wait .= " ($description)" if $wait != 0;
+ }
+ else {
+ $wait = '(none)';
+ }
+
$self->$output(
sprintf "$test$spaces(Wstat: %s Tests: %d Failed: %d)\n",
$wait, $parser->tests_run, scalar $parser->failed
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
index 0f08edfe78..b10f2d5c36 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
@@ -39,11 +39,11 @@ TAP::Formatter::Color - Run Perl test scripts with color
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
index 3217099a71..d7df761cf8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
index 7f6767c700..867e025e63 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
index 8c2f95734d..aba854c4ea 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm
index 5a3a55813e..c103e52cce 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm
@@ -13,11 +13,11 @@ TAP::Formatter::File - Harness output delegate for file output
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
index fb7b1829ba..e167bc5cec 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Session.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
index a26048d9d9..59b6afa300 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 METHODS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm
index 1b8ee87a65..54782decf4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm
@@ -16,11 +16,11 @@ TAP::Harness - Run test scripts with statistics
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
$ENV{HARNESS_ACTIVE} = 1;
$ENV{HARNESS_VERSION} = $VERSION;
@@ -555,8 +555,11 @@ sub runtests {
$self->_make_callback( 'after_runtests', $aggregate );
};
my $run = sub {
- $self->aggregate_tests( $aggregate, @tests );
+ my $bailout;
+ eval { $self->aggregate_tests( $aggregate, @tests ); 1 }
+ or do { $bailout = $@ || 'unknown_error' };
$finish->();
+ die $bailout if defined $bailout;
};
if ( $self->trap ) {
@@ -595,7 +598,12 @@ sub _after_test {
}
sub _bailout {
- my ( $self, $result ) = @_;
+ my ( $self, $result, $parser, $session, $aggregate, $job ) = @_;
+
+ $self->finish_parser( $parser, $session );
+ $self->_after_test( $aggregate, $job, $parser );
+ $job->finish;
+
my $explanation = $result->explanation;
die "FAILED--Further testing stopped"
. ( $explanation ? ": $explanation\n" : ".\n" );
@@ -629,7 +637,8 @@ sub _aggregate_parallel {
my ( $session, $job ) = @$stash;
if ( defined $result ) {
$session->result($result);
- $self->_bailout($result) if $result->is_bailout;
+ $self->_bailout($result, $parser, $session, $aggregate, $job )
+ if $result->is_bailout;
}
else {
@@ -661,7 +670,7 @@ sub _aggregate_single {
# Keep reading until input is exhausted in the hope
# of allowing any pending diagnostics to show up.
1 while $parser->next;
- $self->_bailout($result);
+ $self->_bailout($result, $parser, $session, $aggregate, $job );
}
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness/Env.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness/Env.pm
index 78e75fb92d..c27f3e5fbb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness/Env.pm
+++ b/systems/texlive/tlnet/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.43';
+our $VERSION = '3.44';
# Get the parts of @INC which are changed from the stock list AND
# preserve reordering of stock directories.
@@ -126,7 +126,7 @@ TAP::Harness::Env - Parsing harness related environmental variables where approp
=head1 VERSION
-Version 3.43
+Version 3.44
=head1 SYNOPSIS
@@ -189,7 +189,7 @@ 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.
+is separated by C<:>, we use C<-> instead.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Object.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Object.pm
index d3063c2b27..ac7c195179 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Object.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm
index e8d51b12c8..8f0d7e17fc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm
@@ -27,11 +27,11 @@ TAP::Parser - Parse L<TAP|Test::Harness::TAP> output
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
my $DEFAULT_TAP_VERSION = 12;
my $MAX_TAP_VERSION = 13;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
index 1f4ff5d961..af961e8b73 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
@@ -12,11 +12,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
index 0cf4d5b4c7..398396ca13 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
index b516929b05..1ce907f49d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator - Base class for TAP source iterators
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
index 3ea348d608..8f8dc4681e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
index 8e95a44a23..144fc13fcf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
index 305453124f..dab28ea11a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
index 3529c2f86c..1a61e8260e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
index 164e9af477..328aa49cc0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
@@ -4,6 +4,7 @@ use strict;
use warnings;
use IO::Select;
+use Errno;
use base 'TAP::Object';
@@ -17,11 +18,11 @@ TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
@@ -130,9 +131,10 @@ sub _iter {
return ( $parser, $stash, $result );
}
- unless (@ready) {
+ until (@ready) {
return unless $sel->count;
@ready = $sel->can_read;
+ last if @ready || $! != Errno::EINTR;
}
my ( $h, $parser, $stash, @handles ) = @{ shift @ready };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result.pm
index 698402ab83..f5d1c211da 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
index 38ee45853c..528b0194b9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Bailout - Bailout result token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
index a07308ea81..20cac16487 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Comment - Comment result token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
index 1029694d57..7da449208d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Plan - Plan result token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
index 897e0da658..04a0e17851 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Pragma - TAP pragma token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
index e2c9781e16..dbe0817484 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Test - Test result token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
index cc04c8a385..1c77dc072c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Unknown - Unknown result token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
index 8a2bd7ec44..c73a762004 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Version - TAP syntax version token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
index 17de945ef0..e20975b757 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::YAML - YAML result token.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
index 54d29a265d..894636269b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head2 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
index 7e3ddc2c08..3ec5b7ca89 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
@@ -13,11 +13,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
index bfcb0f76b3..ce6ef14a43 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
index 29f5c0daf1..4cb974c875 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job.
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Source.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Source.pm
index 74c22cce8b..e91439ac03 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Source.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
index f80c1ca25c..b41ca01065 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
index 0ad412bc49..0aa78ad731 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
index 48f9821051..e93f786b33 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
index 751e68aa30..1b9881cd01 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
index 26b408a458..ce7a2b427b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
@@ -62,7 +62,7 @@ won't need to use this module directly.
Only votes if $source looks like a file. Casts the following votes:
0.9 if it has a shebang ala "#!...perl"
- 0.75 if it has any shebang
+ 0.3 if it has any shebang
0.8 if it's a .t file
0.9 if it's a .pl file
0.75 if it's in a 't' directory
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
index 9bf3b272a8..c311935bf8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
+++ b/systems/texlive/tlnet/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.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
index eafc37aa0c..1c122300a3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
@@ -5,16 +5,21 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.43';
+our $VERSION = '3.44';
+
+ # No EBCDIC support on early perls
+*to_native = (ord "A" == 65 || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::unicode_to_native(shift) };
# TODO:
# Handle blessed object syntax
# Printable characters for escapes
my %UNESCAPES = (
- z => "\x00", a => "\x07", t => "\x09",
- n => "\x0a", v => "\x0b", f => "\x0c",
- r => "\x0d", e => "\x1b", '\\' => '\\',
+ z => "\x00", a => "\a", t => "\t",
+ n => "\n", v => "\cK", f => "\f",
+ r => "\r", e => "\e", '\\' => '\\',
);
my $QQ_STRING = qr{ " (?:\\. | [^"])* " }x;
@@ -22,6 +27,7 @@ my $HASH_LINE = qr{ ^ ($QQ_STRING|\S+) \s* : \s* (?: (.+?) \s* )? $ }x;
my $IS_HASH_KEY = qr{ ^ [\w\'\"] }x;
my $IS_END_YAML = qr{ ^ \.\.\. \s* $ }x;
my $IS_QQ_STRING = qr{ ^ $QQ_STRING $ }x;
+my $IS_ARRAY_LINE = qr{ ^ - \s* ($QQ_STRING|\S+) }x;
# new() implementation supplied by TAP::Object
@@ -117,7 +123,8 @@ sub _read_qq {
$str =~ s/\\"/"/gx;
$str =~ s/ \\ ( [tartan\\favez] | x([0-9a-fA-F]{2}) )
- / (length($1) > 1) ? pack("H2", $2) : $UNESCAPES{$1} /gex;
+ / (length($1) > 1) ? pack("H2", to_native($2))
+ : $UNESCAPES{$1} /gex;
return $str;
}
@@ -240,9 +247,17 @@ sub _read_hash {
my ( $key, $value ) = ( $self->_read_scalar($1), $2 );
$self->_next;
+ my ( $next_line, $next_indent ) = $self->_peek;
+
if ( defined $value ) {
$hash->{$key} = $self->_read_scalar($value);
}
+ elsif (not defined $value # no explicit undef ("~") given
+ and $next_indent <= $limit # next line is same or less indentation
+ and $next_line !~ $IS_ARRAY_LINE) # arrays can start at same indent
+ {
+ $hash->{$key} = undef;
+ }
else {
$hash->{$key} = $self->_read_nested;
}
@@ -269,7 +284,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator
=head1 VERSION
-Version 3.43
+Version 3.44
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
index 9d6366c325..1199cf45bf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
@@ -5,17 +5,26 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.43';
+our $VERSION = '3.44';
-my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x;
+ # No EBCDIC support on early perls
+*from_native = (ord "A" == 65 || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::native_to_unicode(shift) };
+
+my $ESCAPE_CHAR = qr{ [ [:cntrl:] \" ] }x;
my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x;
-my @UNPRINTABLE = qw(
- z x01 x02 x03 x04 x05 x06 a
- x08 t n v f r x0e x0f
- x10 x11 x12 x13 x14 x15 x16 x17
- x18 x19 x1a e x1c x1d x1e x1f
-);
+my @UNPRINTABLE;
+$UNPRINTABLE[$_] = sprintf("x%02x", from_native($_)) for 0 .. ord(" ") - 1;
+$UNPRINTABLE[ord "\0"] = 'z';
+$UNPRINTABLE[ord "\a"] = 'a';
+$UNPRINTABLE[ord "\t"] = 't';
+$UNPRINTABLE[ord "\n"] = 'n';
+$UNPRINTABLE[ord "\cK"] = 'v';
+$UNPRINTABLE[ord "\f"] = 'f';
+$UNPRINTABLE[ord "\r"] = 'r';
+$UNPRINTABLE[ord "\e"] = 'e';
# new() implementation supplied by TAP::Object
@@ -76,7 +85,7 @@ sub _enc_scalar {
if ( $val =~ /$rule/ ) {
$val =~ s/\\/\\\\/g;
$val =~ s/"/\\"/g;
- $val =~ s/ ( [\x00-\x1f] ) / '\\' . $UNPRINTABLE[ ord($1) ] /gex;
+ $val =~ s/ ( [[:cntrl:]] ) / '\\' . $UNPRINTABLE[ ord($1) ] /gex;
return qq{"$val"};
}
@@ -146,7 +155,7 @@ TAP::Parser::YAMLish::Writer - Write YAMLish data
=head1 VERSION
-Version 3.43
+Version 3.44
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm
index 12d8299a3a..54ee178484 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm
@@ -19,7 +19,7 @@ use strict;
use vars qw($VERSION $VMS_TERMCAP);
use vars qw($termpat $state $first $entry);
-$VERSION = '1.17';
+$VERSION = '1.18';
# TODO:
# support Berkeley DB termcaps
@@ -33,7 +33,7 @@ Term::Cap - Perl termcap interface
=head1 SYNOPSIS
require Term::Cap;
- $terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
+ $terminal = Term::Cap->Tgetent({ TERM => undef, OSPEED => $ospeed });
$terminal->Trequire(qw/ce ku kd/);
$terminal->Tgoto('cm', $col, $row, $FH);
$terminal->Tputs('dl', $count, $FH);
@@ -91,7 +91,7 @@ sub termcap_path
{
# Add the users $TERMPATH
- push( @termcap_path, split( /(:|\s+)/, $ENV{TERMPATH} ) );
+ push( @termcap_path, split( /:|\s+/, $ENV{TERMPATH} ) );
}
else
{
@@ -702,7 +702,7 @@ sub Trequire
# Get terminal output speed
require POSIX;
- my $termios = new POSIX::Termios;
+ my $termios = POSIX::Termios->new;
$termios->getattr;
my $ospeed = $termios->getospeed;
@@ -712,7 +712,7 @@ sub Trequire
# ($ispeed,$ospeed) = unpack('cc',$sgtty);
# allocate and initialize a terminal structure
- $terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
+ my $terminal = Term::Cap->Tgetent({ TERM => undef, OSPEED => $ospeed });
# require certain capabilities to be available
$terminal->Trequire(qw/ce ku kd/);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm
index 6c3cceec99..4c14dc4817 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN {
if( $] < 5.008 ) {
@@ -655,6 +655,8 @@ sub skip_all {
die 'Label not found for "last T2_SUBTEST_WRAPPER"' if $begin && $ctx->hub->meta(__PACKAGE__, {})->{parent};
}
+ $reason = "$reason" if defined $reason;
+
$ctx->plan(0, SKIP => $reason);
}
@@ -765,7 +767,7 @@ sub _unoverload {
require overload;
}
my $string_meth = overload::Method( $$thing, $type ) || return;
- $$thing = $$thing->$string_meth();
+ $$thing = $$thing->$string_meth(undef, 0);
}
sub _unoverload_str {
@@ -1000,15 +1002,7 @@ END
$self->_is_diag( $got, $type, $expect );
}
elsif( $type =~ /^(ne|!=)$/ ) {
- no warnings;
- my $eq = ($got eq $expect || $got == $expect)
- && (
- (defined($got) xor defined($expect))
- || (length($got) != length($expect))
- );
- use warnings;
-
- if ($eq) {
+ if (defined($got) xor defined($expect)) {
$self->_cmp_diag( $got, $type, $expect );
}
else {
@@ -1072,6 +1066,13 @@ sub skip {
my $ctx = $self->ctx;
+ $name = "$name";
+ $why = "$why";
+
+ $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
+ $name =~ s{\n}{\n# }sg;
+ $why =~ s{\n}{\n# }sg;
+
$ctx->hub->meta(__PACKAGE__, {})->{Test_Results}[ $ctx->hub->count ] = {
'ok' => 1,
actual_ok => 1,
@@ -1080,10 +1081,6 @@ sub skip {
reason => $why,
} unless $self->{no_log_results};
- $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
- $name =~ s{\n}{\n# }sg;
- $why =~ s{\n}{\n# }sg;
-
my $tctx = $ctx->snapshot;
$tctx->skip('', $why);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Formatter.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Formatter.pm
index e2acbc5831..4f3bee0dec 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Formatter.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Formatter.pm
@@ -2,7 +2,7 @@ package Test::Builder::Formatter;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm
index 40cf5d61f7..c5a24e6071 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm
@@ -7,7 +7,7 @@ use Test::Builder;
require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm
index 5bbe300fb3..a171b01eaf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm
@@ -1,7 +1,7 @@
package Test::Builder::Tester;
use strict;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test::Builder;
use Symbol;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
index 1fb4a694c0..31a4c28a32 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
@@ -1,7 +1,7 @@
package Test::Builder::Tester::Color;
use strict;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
require Test::Builder::Tester;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm
index 6e04f5c53d..56d3fcbf25 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm
@@ -2,7 +2,7 @@ package Test::Builder::TodoDiag;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm
index 7084d624e1..ea2302bd66 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm
@@ -31,11 +31,11 @@ Test::Harness - Run Perl standard test scripts with statistics
=head1 VERSION
-Version 3.43
+Version 3.44
=cut
-our $VERSION = '3.43';
+our $VERSION = '3.44';
# Backwards compatibility for exportable variable names.
*verbose = *Verbose;
@@ -550,7 +550,7 @@ 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.
+is separated by C<:>, we use C<-> instead.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm
index 7212d25d6a..f1f9e37e8d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm
@@ -17,7 +17,7 @@ sub _carp {
return warn @_, " at $file line $line\n";
}
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
@@ -394,8 +394,13 @@ 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 C<isnt()>.
+Historically we supported an C<isn't()> function as an alias of
+C<isnt()>, however in Perl 5.37.9 support for the use of aprostrophe as
+a package separator was deprecated and by Perl 5.42.0 support for it
+will have been removed completely. Accordingly use of C<isn't()> is also
+deprecated, and will produce warnings when used unless 'deprecated'
+warnings are specifically disabled in the scope where it is used. You
+are strongly advised to migrate to using C<isnt()> instead.
=cut
@@ -411,8 +416,25 @@ sub isnt ($$;$) {
return $tb->isnt_eq(@_);
}
-*isn't = \&isnt;
-# ' to unconfuse syntax higlighters
+# Historically it was possible to use apostrophes as a package
+# separator. make this available as isn't() for perl's that support it.
+# However in 5.37.9 the apostrophe as a package separator was
+# deprecated, so warn users of isn't() that they should use isnt()
+# instead. We assume that if they are calling isn::t() they are doing so
+# via isn't() as we have no way to be sure that they aren't spelling it
+# with a double colon. We only trigger the warning if deprecation
+# warnings are enabled, so the user can silence the warning if they
+# wish.
+sub isn::t {
+ local ($@, $!, $?);
+ if (warnings::enabled("deprecated")) {
+ _carp
+ "Use of apostrophe as package separator was deprecated in Perl 5.37.9,\n",
+ "and will be removed in Perl 5.42.0. You should change code that uses\n",
+ "Test::More::isn't() to use Test::More::isnt() as a replacement";
+ }
+ goto &isnt;
+}
=item B<like>
@@ -1409,6 +1431,15 @@ and you'll know immediately when they're fixed.
Once a todo test starts succeeding, simply move it outside the block.
When the block is empty, delete it.
+Note that, if you leave $TODO unset or undef, Test::More reports failures
+as normal. This can be useful to mark the tests as expected to fail only
+in certain conditions, e.g.:
+
+ TODO: {
+ local $TODO = "$^O doesn't work yet. :(" if !_os_is_supported($^O);
+
+ ...
+ }
=item B<todo_skip>
@@ -1761,8 +1792,8 @@ sub eq_set {
Sometimes the Test::More interface isn't quite enough. Fortunately,
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
-same program>.
+libraries which both use L<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 L<Test::Builder> object like so:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm
index b8a6c7ca40..a7649f4787 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm
index 506734ea8b..9e91222ab7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm
@@ -18,7 +18,7 @@ require Exporter;
use vars qw( @ISA @EXPORT );
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
@EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
@ISA = qw( Exporter );
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm
index 71324b03d1..7c7e8545f8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm
@@ -2,7 +2,7 @@ use strict;
package Test::Tester::Capture;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test::Builder;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
index ffd6e99f2e..574de86cda 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
@@ -3,7 +3,7 @@ use strict;
package Test::Tester::CaptureRunner;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test::Tester::Capture;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
index 826c21e71e..1c8d873cdd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
@@ -3,7 +3,7 @@ use warnings;
package Test::Tester::Delegate;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Scalar::Util();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm
index 1e2f0df2c1..757e1684aa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm
@@ -1,7 +1,7 @@
package Test::use::ok;
use 5.005;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
__END__
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm
index 7b8984beaf..f6d47c4709 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm
@@ -2,7 +2,7 @@ package Test2;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm
index 6c663468ab..68034c29d1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm
@@ -2,6 +2,7 @@ package Test2::API;
use strict;
use warnings;
+use Time::HiRes qw/time/;
use Test2::Util qw/USE_THREADS/;
BEGIN {
@@ -9,7 +10,7 @@ BEGIN {
$ENV{TEST2_ACTIVE} = 1;
}
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
my $INST;
@@ -680,6 +681,8 @@ sub run_subtest {
};
}
+ my $start_stamp = time;
+
my ($ok, $err, $finished);
T2_SUBTEST_WRAPPER: {
# Do not use 'try' cause it localizes __DIE__
@@ -696,6 +699,8 @@ sub run_subtest {
}
}
+ my $stop_stamp = time;
+
if ($params->{no_fork}) {
if ($$ != $ctx->trace->pid) {
warn $ok ? "Forked inside subtest, but subtest never finished!\n" : $err;
@@ -746,6 +751,8 @@ sub run_subtest {
subtest_uuid => $hub->uuid,
buffered => $buffered,
subevents => \@events,
+ start_stamp => $start_stamp,
+ stop_stamp => $stop_stamp,
);
my $plan_ok = $hub->check_plan;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm
index b661b9e2b8..50234af864 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm
@@ -2,7 +2,7 @@ package Test2::API::Breakage;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::Util qw/pkg_to_file/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm
index f94993c8e8..c6b638d015 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm
@@ -2,7 +2,7 @@ package Test2::API::Context;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/confess croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm
index 8a0ef99e3d..9a9ef58e3c 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm
@@ -2,7 +2,7 @@ package Test2::API::Instance;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver Test2::Formatter/;
use Carp qw/confess carp/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult.pm
index a679ac4806..1d07841f1c 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult.pm
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Scalar::Util qw/blessed/;
use Test2::Util qw/pkg_to_file/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Event.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Event.pm
index 860f4966ee..a93c4fd3c1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Event.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Event.pm
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Event;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use List::Util qw/first/;
use Test2::Util qw/pkg_to_file/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Facet.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Facet.pm
index ca4a9b38b5..54589fa5af 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Facet.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Facet.pm
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Facet;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN {
require Test2::EventFacet;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Hub.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Hub.pm
index aeb92c7b54..fa0c329a0d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Hub.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Hub.pm
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Hub;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
use Test2::Util::HashBase;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Squasher.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Squasher.pm
index ace805e781..670b9c7a99 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Squasher.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/InterceptResult/Squasher.pm
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Squasher;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/croak/;
use List::Util qw/first/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm
index b5585a8ef4..98147b2a96 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm
@@ -2,7 +2,7 @@ package Test2::API::Stack;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::Hub();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm
index 99a6fd43cb..b914bd84cf 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm
@@ -2,7 +2,7 @@ package Test2::Event;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Scalar::Util qw/blessed reftype/;
use Carp qw/croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm
index 9b5092def8..49b8fe0682 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm
@@ -2,7 +2,7 @@ package Test2::Event::Bail;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm
index fb75235233..5ea440904e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm
@@ -2,7 +2,7 @@ package Test2::Event::Diag;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm
index 831fcebb4d..7f69da1b31 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm
@@ -2,7 +2,7 @@ package Test2::Event::Encoding;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Exception.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Exception.pm
index a02a6012ac..5898dc76b4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Exception.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Exception.pm
@@ -2,7 +2,7 @@ package Test2::Event::Exception;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm
index 7a1eaa94f2..444c3f6c06 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm
@@ -2,7 +2,7 @@ package Test2::Event::Fail;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::EventFacet::Info;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm
index 409fb77bc4..170aa631bd 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm
@@ -5,7 +5,7 @@ use warnings;
use Carp qw/croak/;
use Scalar::Util qw/reftype/;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
use Test2::Util::HashBase;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm
index 13613f8c96..d8e81eae04 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm
@@ -2,7 +2,7 @@ package Test2::Event::Note;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm
index d39c1dbf84..847baede3c 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm
@@ -2,7 +2,7 @@ package Test2::Event::Ok;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm
index b5050459ce..108ad5a0a2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm
@@ -2,7 +2,7 @@ package Test2::Event::Pass;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::EventFacet::Info;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm
index cc9d8049e3..b40b332c97 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm
@@ -2,7 +2,7 @@ package Test2::Event::Plan;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm
index 75d7db1bd8..de73c68ef1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm
@@ -2,7 +2,7 @@ package Test2::Event::Skip;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm
index 89081fa225..6e8ebc9a09 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm
@@ -2,10 +2,10 @@ package Test2::Event::Subtest;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
-use Test2::Util::HashBase qw{subevents buffered subtest_id subtest_uuid};
+use Test2::Util::HashBase qw{subevents buffered subtest_id subtest_uuid start_stamp stop_stamp};
sub init {
my $self = shift;
@@ -68,10 +68,15 @@ sub facet_data {
my $out = $self->SUPER::facet_data();
+ my $start = $self->start_stamp;
+ my $stop = $self->stop_stamp;
+
$out->{parent} = {
hid => $self->subtest_id,
children => [map {$_->facet_data} @{$self->{+SUBEVENTS}}],
buffered => $self->{+BUFFERED},
+ $start ? (start_stamp => $start) : (),
+ $stop ? (stop_stamp => $stop) : (),
};
return $out;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm
index bb90cc5f49..f52290fcad 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm
@@ -2,7 +2,7 @@ package Test2::Event::TAP::Version;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm
index accab090d6..f94b76c21e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm
@@ -2,7 +2,7 @@ package Test2::Event::V2;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Scalar::Util qw/reftype/;
use Carp qw/croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm
index 0f92a910b7..d031430b7a 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm
@@ -2,7 +2,7 @@ package Test2::Event::Waiting;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm
index 171e005f85..96bf6c5e08 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::Util::HashBase qw/-details/;
use Carp qw/croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/About.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/About.pm
index 50dfa4dfe0..e0a9ad6d93 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/About.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/About.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::About;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -package -no_display -uuid -eid };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm
index fb65846f16..4850aa377d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Amnesty;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
sub is_list { 1 }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm
index ffe2b05439..52554c9ab5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Assert;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -pass -no_debug -number };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Control.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Control.pm
index 891d38f6dd..e8cc63ac3b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Control.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Control.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Control;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -global -terminate -halt -has_callback -encoding -phase };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Error.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Error.pm
index 407e7e7368..8772e9d4f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Error.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Error.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Error;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
sub facet_key { 'errors' }
sub is_list { 1 }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm
index 35a75c13a7..f8f6f3f90b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Hub;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
sub is_list { 1 }
sub facet_key { 'hubs' }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info.pm
index 2aa38e96bd..753344753a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
sub is_list { 1 }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info/Table.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info/Table.pm
index 351e88b4fa..8ed95371b0 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info/Table.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info/Table.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info::Table;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/confess/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm
index 17f78bd59d..59729a1bdb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Meta;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use vars qw/$AUTOLOAD/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm
index 82521cd63d..aab230c8ca 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm
@@ -2,12 +2,12 @@ package Test2::EventFacet::Parent;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/confess/;
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
-use Test2::Util::HashBase qw{ -hid -children -buffered };
+use Test2::Util::HashBase qw{-hid -children -buffered -start_stamp -stop_stamp};
sub init {
confess "Attribute 'hid' must be set"
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm
index 99349b3575..de22be4717 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Plan;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
use Test2::Util::HashBase qw{ -count -skip -none };
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Render.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Render.pm
index 8cc8b7a8e5..2a38d1b75e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Render.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Render.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Render;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
sub is_list { 1 }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm
index 6c4e4550b5..fbdfa2b70d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Trace;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm
index 981baba2d1..93117a0898 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm
@@ -2,7 +2,7 @@ package Test2::Formatter;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
my %ADDED;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm
index 0b1e9475d0..ae381d7e9d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm
@@ -2,7 +2,7 @@ package Test2::Formatter::TAP;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::Util qw/clone_io/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm
index 207099b250..5ee50809bf 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm
@@ -2,7 +2,7 @@ package Test2::Hub;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/carp croak confess/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm
index 13930c55bd..c1c86d818d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::Hub::Interceptor::Terminator();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm
index b37f505745..90c03f91b7 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor::Terminator;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm
index 7c75eed0a8..89dde5b432 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Subtest;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
use Test2::Util::HashBase qw/nested exit_code manual_skip_all/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm
index 1f6478b6ad..807bd6c629 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm
@@ -2,7 +2,7 @@ package Test2::IPC;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Test2::API::Instance;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm
index 35978070e2..a00e1ec4c8 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm
@@ -2,7 +2,7 @@ package Test2::IPC::Driver;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/confess/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm
index a443c9193a..4edd40c463 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm
@@ -2,7 +2,7 @@ package Test2::IPC::Driver::Files;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
@@ -296,8 +296,8 @@ sub parse_event_filename {
return {
file => $file,
- ready => $ready,
- complete => $complete,
+ ready => !!$ready,
+ complete => !!$complete,
global => $global,
type => $type,
hid => $hid,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm
index c9c5bb3215..636ba2f672 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm
@@ -16,7 +16,7 @@ use Test2::API qw/context run_subtest test2_stack/;
use Test2::Hub::Interceptor();
use Test2::Hub::Interceptor::Terminator();
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
BEGIN { require Exporter; our @ISA = qw(Exporter) }
our @EXPORT = qw{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm
index b78f80a904..aebfc2fd69 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm
@@ -2,7 +2,7 @@ package Test2::Util;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use POSIX();
use Config qw/%Config/;
@@ -49,7 +49,8 @@ sub _can_thread {
# Threads are broken on perl 5.10.0 built with gcc 4.8+
if ($] == 5.010000 && $Config{'ccname'} eq 'gcc' && $Config{'gccversion'}) {
- my @parts = split /\./, $Config{'gccversion'};
+ return 0 unless $Config{'gccversion'} =~ m/^(\d+)\.(\d+)/;
+ my @parts = split /[\.\s]+/, $Config{'gccversion'};
return 0 if $parts[0] > 4 || ($parts[0] == 4 && $parts[1] >= 8);
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm
index cfa0a5699b..774870c689 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm
@@ -2,7 +2,7 @@ package Test2::Util::ExternalMeta;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/croak/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm
index 0e0ed65dbb..d8d77d52e1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm
@@ -2,7 +2,7 @@ package Test2::Util::Facets2Legacy;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use Carp qw/croak confess/;
use Scalar::Util qw/blessed/;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm
index da1bf916a8..c0c61a1bce 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm
@@ -2,7 +2,7 @@ package Test2::Util::HashBase;
use strict;
use warnings;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
#################################################################
# #
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm
index b374064cbe..ad80226cae 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm
@@ -6,7 +6,7 @@ use strict;
our @ISA = ('Test2::EventFacet::Trace');
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Balanced.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Balanced.pm
index 324a023f38..49f3d8926c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Balanced.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Balanced.pm
@@ -1,6 +1,7 @@
# Copyright (C) 1997-2001 Damian Conway. All rights reserved.
# Copyright (C) 2009 Adam Kennedy.
-# Copyright (C) 2015 Steve Hay. All rights reserved.
+# Copyright (C) 2015, 2022 Steve Hay and other contributors. All rights
+# reserved.
# This module is free software; you can redistribute it and/or modify it under
# the same terms as Perl itself, i.e. under the terms of either the GNU General
@@ -17,7 +18,7 @@ use Exporter ();
use vars qw { $VERSION @ISA %EXPORT_TAGS };
BEGIN {
- $VERSION = '2.04';
+ $VERSION = '2.06';
@ISA = 'Exporter';
%EXPORT_TAGS = (
ALL => [ qw{
@@ -37,14 +38,22 @@ BEGIN {
Exporter::export_ok_tags('ALL');
-## no critic (Subroutines::ProhibitSubroutinePrototypes)
-
-# PROTOTYPES
-
-sub _match_bracketed($$$$$$);
-sub _match_variable($$);
-sub _match_codeblock($$$$$$$);
-sub _match_quotelike($$$$);
+our $RE_PREREGEX_PAT = qr#(
+ [!=]~
+ | split|grep|map
+ | not|and|or|xor
+)#x;
+our $RE_EXPR_PAT = qr#(
+ (?:\*\*|&&|\|\||<<|>>|//|[-+*x%^&|.])=?
+ | /(?:[^/])
+ | =(?!>)
+ | return
+ | [\(\[]
+)#x;
+our $RE_NUM = qr/\s*[+\-.0-9][+\-.0-9e]*/i; # numerical constant
+
+our %ref2slashvalid; # is quotelike /.../ pattern valid here for given textref?
+our %ref2qmarkvalid; # is quotelike ?...? pattern valid here for given textref?
# HANDLE RETURN VALUES IN VARIOUS CONTEXTS
@@ -99,6 +108,7 @@ sub _succeed {
}
# BUILD A PATTERN MATCHING A SIMPLE DELIMITED STRING
+## no critic (Subroutines::ProhibitSubroutinePrototypes)
sub gen_delimited_pat($;$) # ($delimiters;$escapes)
{
@@ -132,6 +142,7 @@ sub gen_delimited_pat($;$) # ($delimiters;$escapes)
sub extract_delimited (;$$$$)
{
my $textref = defined $_[0] ? \$_[0] : \$_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
my $wantarray = wantarray;
my $del = defined $_[1] ? $_[1] : qq{\'\"\`};
my $pre = defined $_[2] ? $_[2] : '\s*';
@@ -149,33 +160,45 @@ sub extract_delimited (;$$$$)
$startpos, $prelen; # PREFIX
}
-sub extract_bracketed (;$$$)
-{
- my $textref = defined $_[0] ? \$_[0] : \$_;
- my $ldel = defined $_[1] ? $_[1] : '{([<';
- my $pre = defined $_[2] ? $_[2] : '\s*';
- my $wantarray = wantarray;
+my %eb_delim_cache;
+sub _eb_delims {
+ my ($ldel_orig) = @_;
+ return @{ $eb_delim_cache{$ldel_orig} } if $eb_delim_cache{$ldel_orig};
my $qdel = "";
my $quotelike;
+ my $ldel = $ldel_orig;
$ldel =~ s/'//g and $qdel .= q{'};
$ldel =~ s/"//g and $qdel .= q{"};
$ldel =~ s/`//g and $qdel .= q{`};
$ldel =~ s/q//g and $quotelike = 1;
$ldel =~ tr/[](){}<>\0-\377/[[(({{<</ds;
my $rdel = $ldel;
- unless ($rdel =~ tr/[({</])}>/)
+ return @{ $eb_delim_cache{$ldel_orig} = [] } unless $rdel =~ tr/[({</])}>/;
+ my $posbug = pos;
+ $ldel = join('|', map { quotemeta $_ } split('', $ldel));
+ $rdel = join('|', map { quotemeta $_ } split('', $rdel));
+ pos = $posbug;
+ @{ $eb_delim_cache{$ldel_orig} = [
+ qr/\G($ldel)/, $qdel && qr/\G([$qdel])/, $quotelike, qr/\G($rdel)/
+ ] };
+}
+sub extract_bracketed (;$$$)
+{
+ my $textref = defined $_[0] ? \$_[0] : \$_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
+ my $ldel = defined $_[1] ? $_[1] : '{([<';
+ my $pre = defined $_[2] ? qr/\G$_[2]/ : qr/\G\s*/;
+ my $wantarray = wantarray;
+ my @ret = _eb_delims($ldel);
+ unless (@ret)
{
return _fail $wantarray, $textref,
"Did not find a suitable bracket in delimiter: \"$_[1]\"",
0;
}
- my $posbug = pos;
- $ldel = join('|', map { quotemeta $_ } split('', $ldel));
- $rdel = join('|', map { quotemeta $_ } split('', $rdel));
- pos = $posbug;
my $startpos = pos $$textref || 0;
- my @match = _match_bracketed($textref,$pre, $ldel, $qdel, $quotelike, $rdel);
+ my @match = _match_bracketed($textref, $pre, @ret);
return _fail ($wantarray, $textref) unless @match;
@@ -186,11 +209,11 @@ sub extract_bracketed (;$$$)
);
}
-sub _match_bracketed($$$$$$) # $textref, $pre, $ldel, $qdel, $quotelike, $rdel
+sub _match_bracketed # $textref, $pre, $ldel, $qdel, $quotelike, $rdel
{
my ($textref, $pre, $ldel, $qdel, $quotelike, $rdel) = @_;
my ($startpos, $ldelpos, $endpos) = (pos $$textref = pos $$textref||0);
- unless ($$textref =~ m/\G$pre/gc)
+ unless ($$textref =~ m/$pre/gc)
{
_failmsg "Did not find prefix: /$pre/", $startpos;
return;
@@ -198,7 +221,7 @@ sub _match_bracketed($$$$$$) # $textref, $pre, $ldel, $qdel, $quotelike, $rde
$ldelpos = pos $$textref;
- unless ($$textref =~ m/\G($ldel)/gc)
+ unless ($$textref =~ m/$ldel/gc)
{
_failmsg "Did not find opening bracket after prefix: \"$pre\"",
pos $$textref;
@@ -212,11 +235,11 @@ sub _match_bracketed($$$$$$) # $textref, $pre, $ldel, $qdel, $quotelike, $rde
{
next if $$textref =~ m/\G\\./gcs;
- if ($$textref =~ m/\G($ldel)/gc)
+ if ($$textref =~ m/$ldel/gc)
{
push @nesting, $1;
}
- elsif ($$textref =~ m/\G($rdel)/gc)
+ elsif ($$textref =~ m/$rdel/gc)
{
my ($found, $brackettype) = ($1, $1);
if ($#nesting < 0)
@@ -237,7 +260,7 @@ sub _match_bracketed($$$$$$) # $textref, $pre, $ldel, $qdel, $quotelike, $rde
}
last if $#nesting < 0;
}
- elsif ($qdel && $$textref =~ m/\G([$qdel])/gc)
+ elsif ($qdel && $$textref =~ m/$qdel/gc)
{
$$textref =~ m/\G[^\\$1]*(?:\\.[^\\$1]*)*(\Q$1\E)/gsc and next;
_failmsg "Unmatched embedded quote ($1)",
@@ -245,8 +268,9 @@ sub _match_bracketed($$$$$$) # $textref, $pre, $ldel, $qdel, $quotelike, $rde
pos $$textref = $startpos;
return;
}
- elsif ($quotelike && _match_quotelike($textref,"",1,0))
+ elsif ($quotelike && _match_quotelike($textref,qr/\G()/,$ref2slashvalid{$textref},$ref2qmarkvalid{$textref}))
{
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1; # back-compat
next;
}
@@ -281,12 +305,14 @@ sub _revbracket($)
my $XMLNAME = q{[a-zA-Z_:][a-zA-Z0-9_:.-]*};
+my $et_default_ldel = '<\w+(?:' . gen_delimited_pat(q{'"}) . '|[^>])*>';
sub extract_tagged (;$$$$$) # ($text, $opentag, $closetag, $pre, \%options)
{
my $textref = defined $_[0] ? \$_[0] : \$_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
my $ldel = $_[1];
my $rdel = $_[2];
- my $pre = defined $_[3] ? $_[3] : '\s*';
+ my $pre = defined $_[3] ? qr/\G$_[3]/ : qr/\G\s*/;
my %options = defined $_[4] ? %{$_[4]} : ();
my $omode = defined $options{fail} ? $options{fail} : '';
my $bad = ref($options{reject}) eq 'ARRAY' ? join('|', @{$options{reject}})
@@ -298,7 +324,7 @@ sub extract_tagged (;$$$$$) # ($text, $opentag, $closetag, $pre, \%options)
: ''
;
- if (!defined $ldel) { $ldel = '<\w+(?:' . gen_delimited_pat(q{'"}) . '|[^>])*>'; }
+ $ldel = $et_default_ldel if !defined $ldel;
$@ = undef;
my @match = _match_tagged($textref, $pre, $ldel, $rdel, $omode, $bad, $ignore);
@@ -316,7 +342,7 @@ sub _match_tagged # ($$$$$$$)
my ($startpos, $opentagpos, $textpos, $parapos, $closetagpos, $endpos) = ( pos($$textref) = pos($$textref)||0 );
- unless ($$textref =~ m/\G($pre)/gc)
+ unless ($$textref =~ m/$pre/gc)
{
_failmsg "Did not find prefix: /$pre/", pos $$textref;
goto failed;
@@ -433,7 +459,8 @@ sub extract_variable (;$$)
{
my $textref = defined $_[0] ? \$_[0] : \$_;
return ("","","") unless defined $$textref;
- my $pre = defined $_[1] ? $_[1] : '\s*';
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
+ my $pre = defined $_[1] ? qr/\G$_[1]/ : qr/\G\s*/;
my @match = _match_variable($textref,$pre);
@@ -443,14 +470,14 @@ sub extract_variable (;$$)
@match[2..3,4..5,0..1]; # MATCH, REMAINDER, PREFIX
}
-sub _match_variable($$)
+sub _match_variable
{
# $#
# $^
# $$
my ($textref, $pre) = @_;
my $startpos = pos($$textref) = pos($$textref)||0;
- unless ($$textref =~ m/\G($pre)/gc)
+ unless ($$textref =~ m/$pre/gc)
{
_failmsg "Did not find prefix: /$pre/", pos $$textref;
return;
@@ -467,8 +494,9 @@ sub _match_variable($$)
my $deref = $1;
unless ($$textref =~ m/\G\s*(?:::|')?(?:[_a-z]\w*(?:::|'))*[_a-z]\w*/gci
- or _match_codeblock($textref, "", '\{', '\}', '\{', '\}', 0)
- or $deref eq '$#' or $deref eq '$$' )
+ or _match_codeblock($textref, qr/\G()/, '\{', qr/\G\s*(\})/, '\{', '\}', 0, 1)
+ or $deref eq '$#' or $deref eq '$$'
+ or pos($$textref) == length $$textref )
{
_failmsg "Bad identifier after dereferencer", pos $$textref;
pos $$textref = $startpos;
@@ -480,16 +508,17 @@ sub _match_variable($$)
{
next if $$textref =~ m/\G\s*(?:->)?\s*[{]\w+[}]/gc;
next if _match_codeblock($textref,
- qr/\s*->\s*(?:[_a-zA-Z]\w+\s*)?/,
- qr/[({[]/, qr/[)}\]]/,
- qr/[({[]/, qr/[)}\]]/, 0);
+ qr/\G\s*->\s*(?:[_a-zA-Z]\w+\s*)?/,
+ qr/[({[]/, qr/\G\s*([)}\]])/,
+ qr/[({[]/, qr/[)}\]]/, 0, 1);
next if _match_codeblock($textref,
- qr/\s*/, qr/[{[]/, qr/[}\]]/,
- qr/[{[]/, qr/[}\]]/, 0);
- next if _match_variable($textref,'\s*->\s*');
+ qr/\G\s*/, qr/[{[]/, qr/\G\s*([}\]])/,
+ qr/[{[]/, qr/[}\]]/, 0, 1);
+ next if _match_variable($textref,qr/\G\s*->\s*/);
next if $$textref =~ m/\G\s*->\s*\w+(?![{([])/gc;
last;
}
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
my $endpos = pos($$textref);
return ($startpos, $varpos-$startpos,
@@ -498,14 +527,11 @@ sub _match_variable($$)
);
}
-sub extract_codeblock (;$$$$$)
-{
- my $textref = defined $_[0] ? \$_[0] : \$_;
- my $wantarray = wantarray;
- my $ldel_inner = defined $_[1] ? $_[1] : '{';
- my $pre = defined $_[2] ? $_[2] : '\s*';
- my $ldel_outer = defined $_[3] ? $_[3] : $ldel_inner;
- my $rd = $_[4];
+my %ec_delim_cache;
+sub _ec_delims {
+ my ($ldel_inner, $ldel_outer) = @_;
+ return @{ $ec_delim_cache{$ldel_outer}{$ldel_inner} }
+ if $ec_delim_cache{$ldel_outer}{$ldel_inner};
my $rdel_inner = $ldel_inner;
my $rdel_outer = $ldel_outer;
my $posbug = pos;
@@ -516,23 +542,34 @@ sub extract_codeblock (;$$$$$)
$_ = '('.join('|',map { quotemeta $_ } split('',$_)).')'
}
pos = $posbug;
+ @{ $ec_delim_cache{$ldel_outer}{$ldel_inner} = [
+ $ldel_outer, qr/\G\s*($rdel_outer)/, $ldel_inner, $rdel_inner
+ ] };
+}
+sub extract_codeblock (;$$$$$)
+{
+ my $textref = defined $_[0] ? \$_[0] : \$_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
+ my $wantarray = wantarray;
+ my $ldel_inner = defined $_[1] ? $_[1] : '{';
+ my $pre = !defined $_[2] ? qr/\G\s*/ : qr/\G$_[2]/;
+ my $ldel_outer = defined $_[3] ? $_[3] : $ldel_inner;
+ my $rd = $_[4];
+ my @delims = _ec_delims($ldel_inner, $ldel_outer);
- my @match = _match_codeblock($textref, $pre,
- $ldel_outer, $rdel_outer,
- $ldel_inner, $rdel_inner,
- $rd);
+ my @match = _match_codeblock($textref, $pre, @delims, $rd, 1);
return _fail($wantarray, $textref) unless @match;
return _succeed($wantarray, $textref,
@match[2..3,4..5,0..1] # MATCH, REMAINDER, PREFIX
);
-
}
-sub _match_codeblock($$$$$$$)
+sub _match_codeblock
{
- my ($textref, $pre, $ldel_outer, $rdel_outer, $ldel_inner, $rdel_inner, $rd) = @_;
+ my ($textref, $pre, $ldel_outer, $rdel_outer, $ldel_inner, $rdel_inner, $rd, $no_backcompat) = @_;
+ $rdel_outer = qr/\G\s*($rdel_outer)/ if !$no_backcompat; # Switch calls this func directly
my $startpos = pos($$textref) = pos($$textref) || 0;
- unless ($$textref =~ m/\G($pre)/gc)
+ unless ($$textref =~ m/$pre/gc)
{
_failmsg qq{Did not match prefix /$pre/ at"} .
substr($$textref,pos($$textref),20) .
@@ -553,13 +590,13 @@ sub _match_codeblock($$$$$$$)
my $closing = $1;
$closing =~ tr/([<{/)]>}/;
my $matched;
- my $patvalid = 1;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0
+ if !pos($$textref) or !defined $ref2slashvalid{$textref}; # default, or reset
while (pos($$textref) < length($$textref))
{
- $matched = '';
if ($rd && $$textref =~ m#\G(\Q(?)\E|\Q(s?)\E|\Q(s)\E)#gc)
{
- $patvalid = 0;
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
next;
}
@@ -568,7 +605,7 @@ sub _match_codeblock($$$$$$$)
next;
}
- if ($$textref =~ m/\G\s*($rdel_outer)/gc)
+ if ($$textref =~ m/$rdel_outer/gc)
{
unless ($matched = ($closing && $1 eq $closing) )
{
@@ -581,31 +618,22 @@ sub _match_codeblock($$$$$$$)
last;
}
- if (_match_variable($textref,'\s*') ||
- _match_quotelike($textref,'\s*',$patvalid,$patvalid) )
+ if (_match_variable($textref,qr/\G\s*/) ||
+ _match_quotelike($textref,qr/\G\s*/,$ref2slashvalid{$textref},$ref2qmarkvalid{$textref}) )
{
- $patvalid = 0;
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
next;
}
-
- # NEED TO COVER MANY MORE CASES HERE!!!
- if ($$textref =~ m#\G\s*(?!$ldel_inner)
- ( [-+*x/%^&|.]=?
- | [!=]~
- | =(?!>)
- | (\*\*|&&|\|\||<<|>>)=?
- | split|grep|map|return
- | [([]
- )#gcx)
+ if ($$textref =~ m#\G\s*(?!$ldel_inner)(?:$RE_PREREGEX_PAT|$RE_EXPR_PAT)#gc)
{
- $patvalid = 1;
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1;
next;
}
- if ( _match_codeblock($textref, '\s*', $ldel_inner, $rdel_inner, $ldel_inner, $rdel_inner, $rd) )
+ if ( _match_codeblock($textref, qr/\G\s*/, $ldel_inner, qr/\G\s*($rdel_inner)/, $ldel_inner, $rdel_inner, $rd, 1) )
{
- $patvalid = 1;
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1;
next;
}
@@ -618,7 +646,7 @@ sub _match_codeblock($$$$$$$)
last;
}
- $patvalid = 0;
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
$$textref =~ m/\G\s*(\w+|[-=>]>|.|\Z)/gc;
}
continue { $@ = undef }
@@ -630,6 +658,7 @@ sub _match_codeblock($$$$$$$)
return;
}
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = undef;
my $endpos = pos($$textref);
return ( $startpos, $codepos-$startpos,
$codepos, $endpos-$codepos,
@@ -654,10 +683,11 @@ my %mods = (
sub extract_quotelike (;$$)
{
my $textref = $_[0] ? \$_[0] : \$_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
my $wantarray = wantarray;
- my $pre = defined $_[1] ? $_[1] : '\s*';
+ my $pre = defined $_[1] ? qr/\G$_[1]/ : qr/\G\s*/;
- my @match = _match_quotelike($textref,$pre,1,0);
+ my @match = _match_quotelike($textref,$pre,$ref2slashvalid{$textref},$ref2qmarkvalid{$textref});
return _fail($wantarray, $textref) unless @match;
return _succeed($wantarray, $textref,
$match[2], $match[18]-$match[2], # MATCH
@@ -668,17 +698,19 @@ sub extract_quotelike (;$$)
);
};
-sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
+my %maybe_quote = map +($_=>1), qw(" ' `);
+sub _match_quotelike
{
- my ($textref, $pre, $rawmatch, $qmark) = @_;
+ my ($textref, $pre, $allow_slash_match, $allow_qmark_match) = @_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0
+ if !pos($$textref) or !defined $ref2slashvalid{$textref}; # default, or reset
my ($textlen,$startpos,
- $oppos,
$preld1pos,$ld1pos,$str1pos,$rd1pos,
$preld2pos,$ld2pos,$str2pos,$rd2pos,
$modpos) = ( length($$textref), pos($$textref) = pos($$textref) || 0 );
- unless ($$textref =~ m/\G($pre)/gc)
+ unless ($$textref =~ m/$pre/gc)
{
_failmsg qq{Did not find prefix /$pre/ at "} .
substr($$textref, pos($$textref), 20) .
@@ -686,15 +718,13 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
pos $$textref;
return;
}
- $oppos = pos($$textref);
-
+ my $oppos = pos($$textref);
my $initial = substr($$textref,$oppos,1);
-
- if ($initial && $initial =~ m|^[\"\'\`]|
- || $rawmatch && $initial =~ m|^/|
- || $qmark && $initial =~ m|^\?|)
+ if ($initial && $maybe_quote{$initial}
+ || $allow_slash_match && $initial eq '/'
+ || $allow_qmark_match && $initial eq '?')
{
- unless ($$textref =~ m/ \Q$initial\E [^\\$initial]* (\\.[^\\$initial]*)* \Q$initial\E /gcsx)
+ unless ($$textref =~ m/\G \Q$initial\E [^\\$initial]* (\\.[^\\$initial]*)* \Q$initial\E /gcsx)
{
_failmsg qq{Did not find closing delimiter to match '$initial' at "} .
substr($$textref, $oppos, 20) .
@@ -712,6 +742,7 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
}
my $endpos = pos($$textref);
+ $ref2qmarkvalid{$textref} = $ref2slashvalid{$textref} = 0;
return (
$startpos, $oppos-$startpos, # PREFIX
$oppos, 0, # NO OPERATOR
@@ -726,7 +757,7 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
);
}
- unless ($$textref =~ m{\G(\b(?:m|s|qq|qx|qw|q|qr|tr|y)\b(?=\s*\S)|<<)}gc)
+ unless ($$textref =~ m{\G(\b(?:m|s|qq|qx|qw|q|qr|tr|y)\b(?=\s*\S)|<<(?=[a-zA-Z]|\s*['"`;,]))}gc)
{
_failmsg q{No quotelike operator found after prefix at "} .
substr($$textref, pos($$textref), 20) .
@@ -767,6 +798,7 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
$rd1pos = pos($$textref);
$$textref =~ m{\Q$label\E\n}gc;
$ld2pos = pos($$textref);
+ $ref2qmarkvalid{$textref} = $ref2slashvalid{$textref} = 0;
return (
$startpos, $oppos-$startpos, # PREFIX
$oppos, length($op), # OPERATOR
@@ -786,19 +818,26 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
$ld1pos = pos($$textref);
$str1pos = $ld1pos+1;
- unless ($$textref =~ m/\G(\S)/gc) # SHOULD USE LOOKAHEAD
+ if ($$textref !~ m/\G(\S)/gc) # SHOULD USE LOOKAHEAD
{
_failmsg "No block delimiter found after quotelike $op",
pos $$textref;
pos $$textref = $startpos;
return;
}
+ elsif (substr($$textref, $ld1pos, 2) eq '=>')
+ {
+ _failmsg "quotelike $op was actually quoted by '=>'",
+ pos $$textref;
+ pos $$textref = $startpos;
+ return;
+ }
pos($$textref) = $ld1pos; # HAVE TO DO THIS BECAUSE LOOKAHEAD BROKEN
my ($ldel1, $rdel1) = ("\Q$1","\Q$1");
if ($ldel1 =~ /[[(<{]/)
{
$rdel1 =~ tr/[({</])}>/;
- defined(_match_bracketed($textref,"",$ldel1,"","",$rdel1))
+ defined(_match_bracketed($textref,qr/\G/,qr/\G($ldel1)/,"","",qr/\G($rdel1)/))
|| do { pos $$textref = $startpos; return };
$ld2pos = pos($$textref);
$rd1pos = $ld2pos-1;
@@ -835,7 +874,7 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
if ($ldel2 =~ /[[(<{]/)
{
pos($$textref)--; # OVERCOME BROKEN LOOKAHEAD
- defined(_match_bracketed($textref,"",$ldel2,"","",$rdel2))
+ defined(_match_bracketed($textref,qr/\G/,qr/\G($ldel2)/,"","",qr/\G($rdel2)/))
|| do { pos $$textref = $startpos; return };
}
else
@@ -854,6 +893,7 @@ sub _match_quotelike($$$$) # ($textref, $prepat, $allow_raw_match)
$$textref =~ m/\G($mods{$op})/gc;
my $endpos = pos $$textref;
+ $ref2qmarkvalid{$textref} = $ref2slashvalid{$textref} = undef;
return (
$startpos, $oppos-$startpos, # PREFIX
@@ -874,10 +914,26 @@ my $def_func = [
sub { extract_quotelike($_[0],'') },
sub { extract_codeblock($_[0],'{}','') },
];
+my %ref_not_regex = map +($_=>1), qw(CODE Text::Balanced::Extractor);
+sub _update_patvalid {
+ my ($textref, $text) = @_;
+ if ($ref2slashvalid{$textref} && $text =~ m/(?:$RE_NUM|[\)\]])\s*$/)
+ {
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
+ } elsif (!$ref2slashvalid{$textref} && $text =~ m/$RE_PREREGEX_PAT\s*$/)
+ {
+ $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1;
+ } elsif (!$ref2slashvalid{$textref} && $text =~ m/$RE_EXPR_PAT\s*$/)
+ {
+ $ref2slashvalid{$textref} = 1;
+ $ref2qmarkvalid{$textref} = 0;
+ }
+}
sub extract_multiple (;$$$$) # ($text, $functions_ref, $max_fields, $ignoreunknown)
{
my $textref = defined($_[0]) ? \$_[0] : \$_;
+ $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
my $posbug = pos;
my ($lastpos, $firstpos);
my @fields = ();
@@ -898,39 +954,28 @@ sub extract_multiple (;$$$$) # ($text, $functions_ref, $max_fields, $ignoreun
$max = 1
}
- my $unkpos;
- my $class;
-
my @class;
foreach my $func ( @func )
{
- if (ref($func) eq 'HASH')
- {
- push @class, (keys %$func)[0];
- $func = (values %$func)[0];
- }
- else
- {
- push @class, undef;
- }
+ push @class, undef;
+ ($class[-1], $func) = %$func if ref($func) eq 'HASH';
+ $func = qr/\G$func/ if !$ref_not_regex{ref $func};
}
+ my $unkpos;
FIELD: while (pos($$textref) < length($$textref))
{
- my ($field, $rem);
- my @bits;
foreach my $i ( 0..$#func )
{
- my $pref;
- my $func = $func[$i];
- $class = $class[$i];
+ my ($field, $pref);
+ my ($class, $func) = ($class[$i], $func[$i]);
$lastpos = pos $$textref;
if (ref($func) eq 'CODE')
- { ($field,$rem,$pref) = @bits = $func->($$textref) }
+ { ($field,undef,$pref) = $func->($$textref) }
elsif (ref($func) eq 'Text::Balanced::Extractor')
- { @bits = $field = $func->extract($$textref) }
- elsif( $$textref =~ m/\G$func/gc )
- { @bits = $field = defined($1)
+ { $field = $func->extract($$textref) }
+ elsif( $$textref =~ m/$func[$i]/gc )
+ { $field = defined($1)
? $1
: substr($$textref, $-[0], $+[0] - $-[0])
}
@@ -948,9 +993,8 @@ sub extract_multiple (;$$$$) # ($text, $functions_ref, $max_fields, $ignoreun
last FIELD if @fields == $max;
}
}
- push @fields, $class
- ? bless (\$field, $class)
- : $field;
+ push @fields, $class ? bless(\$field, $class) : $field;
+ _update_patvalid($textref, $fields[-1]);
$firstpos = $lastpos unless defined $firstpos;
$lastpos = pos $$textref;
last FIELD if @fields == $max;
@@ -961,6 +1005,7 @@ sub extract_multiple (;$$$$) # ($text, $functions_ref, $max_fields, $ignoreun
{
$unkpos = pos($$textref)-1
unless $igunk || defined $unkpos;
+ _update_patvalid($textref, substr $$textref, $unkpos, pos($$textref)-$unkpos);
}
}
@@ -986,7 +1031,7 @@ sub gen_extract_tagged # ($opentag, $closetag, $pre, \%options)
{
my $ldel = $_[0];
my $rdel = $_[1];
- my $pre = defined $_[2] ? $_[2] : '\s*';
+ my $pre = defined $_[2] ? qr/\G$_[2]/ : qr/\G\s*/;
my %options = defined $_[3] ? %{$_[3]} : ();
my $omode = defined $options{fail} ? $options{fail} : '';
my $bad = ref($options{reject}) eq 'ARRAY' ? join('|', @{$options{reject}})
@@ -998,16 +1043,16 @@ sub gen_extract_tagged # ($opentag, $closetag, $pre, \%options)
: ''
;
- if (!defined $ldel) { $ldel = '<\w+(?:' . gen_delimited_pat(q{'"}) . '|[^>])*>'; }
+ $ldel = $et_default_ldel if !defined $ldel;
my $posbug = pos;
- for ($ldel, $pre, $bad, $ignore) { $_ = qr/$_/ if $_ }
+ for ($ldel, $bad, $ignore) { $_ = qr/$_/ if $_ }
pos = $posbug;
my $closure = sub
{
my $textref = defined $_[0] ? \$_[0] : \$_;
- my @match = Text::Balanced::_match_tagged($textref, $pre, $ldel, $rdel, $omode, $bad, $ignore);
+ my @match = _match_tagged($textref, $pre, $ldel, $rdel, $omode, $bad, $ignore);
return _fail(wantarray, $textref) unless @match;
return _succeed wantarray, $textref,
@@ -1027,7 +1072,9 @@ sub extract($$) # ($self, $text)
package Text::Balanced::ErrorMsg;
-use overload '""' => sub { "$_[0]->{error}, detected at offset $_[0]->{pos}" };
+use overload
+ '""' => sub { "$_[0]->{error}, detected at offset $_[0]->{pos}" },
+ fallback => 1;
1;
@@ -1450,7 +1497,7 @@ A string to be processed (C<$_> if the string is omitted or C<undef>)
=item 2.
-A string specifying a pattern to be matched as the opening tag.
+A string specifying a pattern (i.e. regex) to be matched as the opening tag.
If the pattern string is omitted (or C<undef>) then a pattern
that matches any standard XML tag is used.
@@ -1854,7 +1901,8 @@ C<"extract_quotelike">.
C<extract_codeblock> takes the same initial three parameters as C<extract_bracketed>:
a text to process, a set of delimiter brackets to look for, and a prefix to
match first. It also takes an optional fourth parameter, which allows the
-outermost delimiter brackets to be specified separately (see below).
+outermost delimiter brackets to be specified separately (see below),
+and a fifth parameter used only by L<Parse::RecDescent>.
Omitting the first argument (input text) means process C<$_> instead.
Omitting the second argument (delimiter brackets) indicates that only C<'{'> is to be used.
@@ -2063,12 +2111,14 @@ operator (and removes it from $text):
Finally, here is yet another way to do comma-separated value parsing:
+ $csv_text = "a,'x b',c";
@fields = extract_multiple($csv_text,
[
sub { extract_delimited($_[0],q{'"}) },
- qr/([^,]+)(.*)/,
+ qr/([^,]+)/,
],
undef,1);
+ # @fields is now ('a', "'x b'", 'c')
The list in the second argument means:
I<"Try and extract a ' or " delimited string, otherwise extract anything up to a comma...">.
@@ -2084,7 +2134,7 @@ just make the last parameter undefined (or remove it).
=item C<gen_delimited_pat>
The C<gen_delimited_pat> subroutine takes a single (string) argument and
- > builds a Friedl-style optimized regex that matches a string delimited
+builds a Friedl-style optimized regex that matches a string delimited
by any one of the characters in the single argument. For example:
gen_delimited_pat(q{'"})
@@ -2360,7 +2410,8 @@ Copyright (C) 1997-2001 Damian Conway. All rights reserved.
Copyright (C) 2009 Adam Kennedy.
-Copyright (C) 2015, 2020 Steve Hay. All rights reserved.
+Copyright (C) 2015, 2020, 2022 Steve Hay and other contributors. All rights
+reserved.
=head1 LICENCE
@@ -2370,11 +2421,11 @@ License or the Artistic License, as specified in the F<LICENCE> file.
=head1 VERSION
-Version 2.04
+Version 2.06
=head1 DATE
-11 Dec 2020
+05 Jun 2022
=head1 HISTORY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm
index 87f9c70a21..2bfe74d4a3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm
@@ -1,8 +1,9 @@
package Text::ParseWords;
use strict;
+use warnings;
require 5.006;
-our $VERSION = "3.30";
+our $VERSION = "3.31";
use Exporter;
@@ -190,31 +191,46 @@ Text::ParseWords - parse text into an array of tokens or array of arrays
=head1 DESCRIPTION
-The &nested_quotewords() and &quotewords() functions accept a delimiter
+The C<nested_quotewords()> and C<quotewords()> functions accept a delimiter
(which can be a regular expression)
and a list of lines and then breaks those lines up into a list of
-words ignoring delimiters that appear inside quotes. &quotewords()
-returns all of the tokens in a single long list, while &nested_quotewords()
-returns a list of token lists corresponding to the elements of @lines.
-&parse_line() does tokenizing on a single string. The &*quotewords()
-functions simply call &parse_line(), so if you're only splitting
-one line you can call &parse_line() directly and save a function
+words ignoring delimiters that appear inside quotes. C<quotewords()>
+returns all of the tokens in a single long list, while C<nested_quotewords()>
+returns a list of token lists corresponding to the elements of C<@lines>.
+C<parse_line()> does tokenizing on a single string. The C<*quotewords()>
+functions simply call C<parse_line()>, so if you're only splitting
+one line you can call C<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 (including
-quotes and backslashes) are kept in the tokens. If $keep is false then the
-&*quotewords() functions remove all quotes and backslashes that are
+The C<$keep> controls what happens with delimters and special characters:
+
+=over 4
+
+=item true
+
+If true, then the tokens are split on the specified delimiter,
+but all other characters (including quotes and backslashes)
+are kept in the tokens.
+
+=item false
+
+If $keep is false then the C<*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
+C<quotewords()> tries to interpret these characters just like the Bourne
shell). NB: these semantics are significantly different from the
original version of this module shipped with Perl 5.000 through 5.004.
+
+=item C<"delimiters">
+
As an additional feature, $keep may be the keyword "delimiters" which
causes the functions to preserve the delimiters in each string as
tokens in the token lists, in addition to preserving quote and
backslash characters.
-&shellwords() is written as a special case of &quotewords(), and it
+=back
+
+C<shellwords()> is written as a special case of C<quotewords()>, and it
does token parsing with whitespace as a delimiter-- similar to most
Unix shells.
@@ -280,20 +296,28 @@ L<Text::CSV> - for parsing CSV files
=head1 AUTHORS
-Maintainer: Alexandr Ciornii <alexchornyATgmail.com>.
+The original author is unknown,
+but presumably this evolved from C<shellwords.pl> in Perl 4.
+
+Much of the code for C<parse_line()>
+(including the primary regexp)
+came from Joerk Behrends E<lt>jbehrends@multimediaproduzenten.deE<gt>.
+
+Examples section and other documentation provided by
+John Heidemann E<lt>johnh@ISI.EDUE<gt>.
-Previous maintainer: Hal Pomeranz <pomeranz@netcom.com>, 1994-1997 (Original
-author unknown). Much of the code for &parse_line() (including the
-primary regexp) from Joerk Behrends <jbehrends@multimediaproduzenten.de>.
+Hal Pomeranz E<lt>pomeranz@netcom.comE<gt>
+maintained this from 1994 through 1999,
+and did the first CPAN release.
-Examples section another documentation provided by John Heidemann
-<johnh@ISI.EDU>
+Alexandr Ciornii E<lt>alexchornyATgmail.comE<gt>
+maintained this from 2008 to 2015.
-Bug reports, patches, and nagging provided by lots of folks-- thanks
-everybody! Special thanks to Michael Schwern <schwern@envirolink.org>
-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).
+Many other people have contributed,
+with special thanks due to
+Michael Schwern E<lt>schwern@envirolink.orgE<gt>
+and
+Jeff Friedl E<lt>jfriedl@yahoo-inc.comE<gt>.
=head1 COPYRIGHT AND LICENSE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm
index 07fe2b8b02..b6c826ded9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm
@@ -1,44 +1,32 @@
-package Text::Tabs;
-
-require Exporter;
-
-@ISA = (Exporter);
-@EXPORT = qw(expand unexpand $tabstop);
+use strict; use warnings;
-use vars qw($VERSION $SUBVERSION $tabstop $debug);
-$VERSION = 2013.0523;
-$SUBVERSION = 'modern';
-
-use strict;
+package Text::Tabs;
-use 5.010_000;
+BEGIN { require Exporter; *import = \&Exporter::import }
-BEGIN {
- $tabstop = 8;
- $debug = 0;
-}
+our @EXPORT = qw( expand unexpand $tabstop );
-my $CHUNK = qr/\X/;
+our $VERSION = '2021.0814';
+our $SUBVERSION = 'modern'; # back-compat vestige
-sub _xlen (_) { scalar(() = $_[0] =~ /$CHUNK/g) }
-sub _xpos (_) { _xlen( substr( $_[0], 0, pos($_[0]) ) ) }
+our $tabstop = 8;
sub expand {
my @l;
my $pad;
for ( @_ ) {
+ defined or do { push @l, ''; next };
my $s = '';
for (split(/^/m, $_, -1)) {
- my $offs = 0;
- s{\t}{
- # this works on both 5.10 and 5.11
- $pad = $tabstop - (_xlen(${^PREMATCH}) + $offs) % $tabstop;
- # this works on 5.11, but fails on 5.10
- #XXX# $pad = $tabstop - (_xpos() + $offs) % $tabstop;
- $offs += $pad - 1;
- " " x $pad;
- }peg;
- $s .= $_;
+ my $offs;
+ for (split(/\t/, $_, -1)) {
+ if (defined $offs) {
+ $pad = $tabstop - $offs % $tabstop;
+ $s .= " " x $pad;
+ }
+ $s .= $_;
+ $offs = () = /\PM/g;
+ }
}
push(@l, $s);
}
@@ -56,21 +44,17 @@ sub unexpand
my $lastbit;
my $ts_as_space = " " x $tabstop;
for $x (@l) {
+ defined $x or next;
@lines = split("\n", $x, -1);
for $line (@lines) {
$line = expand($line);
- @e = split(/(${CHUNK}{$tabstop})/,$line,-1);
+ @e = split(/((?:\PM\pM*){$tabstop})/,$line,-1);
$lastbit = pop(@e);
$lastbit = ''
unless defined $lastbit;
$lastbit = "\t"
if $lastbit eq $ts_as_space;
for $_ (@e) {
- if ($debug) {
- my $x = $_;
- $x =~ s/\t/^I\t/gs;
- print "sub on '$x'\n";
- }
s/ +$/\t/;
}
$line = join('',@e, $lastbit);
@@ -82,22 +66,8 @@ sub unexpand
}
1;
-__END__
-
-sub expand
-{
- my (@l) = @_;
- for $_ (@l) {
- 1 while s/(^|\n)([^\t\n]*)(\t+)/
- $1. $2 . (" " x
- ($tabstop * length($3)
- - (length($2) % $tabstop)))
- /sex;
- }
- return @l if wantarray;
- return $l[0];
-}
+__END__
=head1 NAME
@@ -164,17 +134,6 @@ Instead of the shell's C<unexpand -a> command, use:
perl -MText::Tabs -n -e 'print unexpand $_'
-=head1 SUBVERSION
-
-This module comes in two flavors: one for modern perls (5.10 and above)
-and one for ancient obsolete perls. The version for modern perls has
-support for Unicode. The version for old perls does not. You can tell
-which version you have installed by looking at C<$Text::Tabs::SUBVERSION>:
-it is C<old> for obsolete perls and C<modern> for current perls.
-
-This man page is for the version for modern perls and so that's probably
-what you've got.
-
=head1 BUGS
Text::Tabs handles only tabs (C<"\t">) and combining characters (C</\pM/>). It doesn't
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm
index db0d15f610..eff0e717c4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm
@@ -1,42 +1,32 @@
+use strict; use warnings;
+
package Text::Wrap;
use warnings::register;
-require Exporter;
-
-@ISA = qw(Exporter);
-@EXPORT = qw(wrap fill);
-@EXPORT_OK = qw($columns $break $huge);
-$VERSION = 2013.0523;
-$SUBVERSION = 'modern';
+BEGIN { require Exporter; *import = \&Exporter::import }
-use 5.010_000;
+our @EXPORT = qw( wrap fill );
+our @EXPORT_OK = qw( $columns $break $huge );
-use vars qw($VERSION $SUBVERSION $columns $debug $break $huge $unexpand $tabstop $separator $separator2);
-use strict;
-
-BEGIN {
- $columns = 76; # <= screen width
- $debug = 0;
- $break = '(?=\s)\X';
- $huge = 'wrap'; # alternatively: 'die' or 'overflow'
- $unexpand = 1;
- $tabstop = 8;
- $separator = "\n";
- $separator2 = undef;
-}
+our $VERSION = '2021.0814';
+our $SUBVERSION = 'modern'; # back-compat vestige
-my $CHUNK = qr/\X/;
+our $columns = 76; # <= screen width
+our $break = '(?=\s)(?:\r\n|\PM\pM*)';
+our $huge = 'wrap'; # alternatively: 'die' or 'overflow'
+our $unexpand = 1;
+our $tabstop = 8;
+our $separator = "\n";
+our $separator2 = undef;
-sub _xlen(_) { scalar(() = $_[0] =~ /$CHUNK/g) }
-
-sub _xpos(_) { _xlen( substr( $_[0], 0, pos($_[0]) ) ) }
+sub _xlen { () = $_[0] =~ /\PM/g }
use Text::Tabs qw(expand unexpand);
sub wrap
{
- my ($ip, $xp, @t) = @_;
+ my ($ip, $xp, @t) = map +( defined $_ ? $_ : '' ), @_;
local($Text::Tabs::tabstop) = $tabstop;
my $r = "";
@@ -59,17 +49,17 @@ sub wrap
pos($t) = 0;
while ($t !~ /\G(?:$break)*\Z/gc) {
- if ($t =~ /\G((?:(?=[^\n])\X){0,$ll})($break|\n+|\z)/xmgc) {
+ if ($t =~ /\G((?:(?!\n)\PM\pM*){0,$ll})($break|\n+|\z)/xmgc) {
$r .= $unexpand
? unexpand($nl . $lead . $1)
: $nl . $lead . $1;
$remainder = $2;
- } elsif ($huge eq 'wrap' && $t =~ /\G((?:(?=[^\n])\X){$ll})/gc) {
+ } elsif ($huge eq 'wrap' && $t =~ /\G((?:(?!\n)\PM\pM*){$ll})/gc) {
$r .= $unexpand
? unexpand($nl . $lead . $1)
: $nl . $lead . $1;
$remainder = defined($separator2) ? $separator2 : $separator;
- } elsif ($huge eq 'overflow' && $t =~ /\G((?:(?=[^\n])\X)*?)($break|\n+|\z)/xmgc) {
+ } elsif ($huge eq 'overflow' && $t =~ /\G((?:(?!\n)\PM\pM*)*?)($break|\n+|\z)/xmgc) {
$r .= $unexpand
? unexpand($nl . $lead . $1)
: $nl . $lead . $1;
@@ -79,7 +69,7 @@ sub wrap
} elsif ($columns < 2) {
warnings::warnif "Increasing \$Text::Wrap::columns from $columns to 2";
$columns = 2;
- return ($ip, $xp, @t);
+ return @_;
} else {
die "This shouldn't happen";
}
@@ -94,23 +84,15 @@ sub wrap
}
$r .= $remainder;
- print "-----------$r---------\n" if $debug;
-
- print "Finish up with '$lead'\n" if $debug;
-
- my($opos) = pos($t);
-
$r .= $lead . substr($t, pos($t), length($t) - pos($t))
if pos($t) ne length($t);
- print "-----------$r---------\n" if $debug;;
-
return $r;
}
sub fill
{
- my ($ip, $xp, @raw) = @_;
+ my ($ip, $xp, @raw) = map +( defined $_ ? $_ : '' ), @_;
my @para;
my $pp;
@@ -128,6 +110,7 @@ sub fill
}
1;
+
__END__
=head1 NAME
@@ -269,17 +252,6 @@ Result:
"This is a bit of|text that forms a|normal book-style|paragraph"
-=head1 SUBVERSION
-
-This module comes in two flavors: one for modern perls (5.10 and above)
-and one for ancient obsolete perls. The version for modern perls has
-support for Unicode. The version for old perls does not. You can tell
-which version you have installed by looking at C<$Text::Wrap::SUBVERSION>:
-it is C<old> for obsolete perls and C<modern> for current perls.
-
-This man page is for the version for modern perls and so that's probably
-what you've got.
-
=head1 SEE ALSO
For correct handling of East Asian half- and full-width characters,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm
index 824789337b..13d4fa6839 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm
@@ -11,7 +11,7 @@ use Fcntl 'O_CREAT', 'O_RDWR', 'LOCK_EX', 'LOCK_SH', 'O_WRONLY', 'O_RDONLY';
sub O_ACCMODE () { O_RDONLY | O_RDWR | O_WRONLY }
-our $VERSION = "1.06";
+our $VERSION = "1.07";
my $DEFAULT_MEMORY_SIZE = 1<<21; # 2 megabytes
my $DEFAULT_AUTODEFER_THRESHHOLD = 3; # 3 records
my $DEFAULT_AUTODEFER_FILELEN_THRESHHOLD = 65536; # 16 disk blocksful
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm
index 4e92f75a3d..e6aa34bc92 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm
@@ -1,7 +1,7 @@
package Tie::Handle;
use 5.006_001;
-our $VERSION = '4.2';
+our $VERSION = '4.3';
# Tie::StdHandle used to be inside Tie::Handle. For backwards compatibility
# loading Tie::Handle has to make Tie::StdHandle available.
@@ -128,7 +128,7 @@ sub new {
$pkg->TIEHANDLE(@_);
}
-# "Grandfather" the new, a la Tie::Hash
+# Legacy support for new(), a la Tie::Hash
sub TIEHANDLE {
my $pkg = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm
index 89a6181a33..03493e0650 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm
@@ -1,6 +1,6 @@
package Tie::Hash;
-our $VERSION = '1.05';
+our $VERSION = '1.06';
=head1 NAME
@@ -60,7 +60,7 @@ as methods C<TIEHASH>, C<EXISTS> and C<CLEAR>. The B<Tie::StdHash> and
B<Tie::ExtraHash> packages
provide most methods for hashes described in L<perltie> (the exceptions
are C<UNTIE> and C<DESTROY>). They cause tied hashes to behave exactly like standard hashes,
-and allow for selective overwriting of methods. B<Tie::Hash> grandfathers the
+and allow for selective overwriting of methods. B<Tie::Hash> has legacy support for the
C<new> method: it is used if C<TIEHASH> is not defined
in the case a class forgets to include a C<TIEHASH> method.
@@ -195,7 +195,7 @@ sub new {
$pkg->TIEHASH(@_);
}
-# Grandfather "new"
+# Legacy support for new()
sub TIEHASH {
my $pkg = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm
index 62f89f88c8..b8d6e8ffce 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm
@@ -1,6 +1,6 @@
package Tie::Scalar;
-our $VERSION = '1.05';
+our $VERSION = '1.06';
=head1 NAME
@@ -41,7 +41,7 @@ as methods C<TIESCALAR>, C<FETCH> and C<STORE>. The B<Tie::StdScalar>
package provides all the methods specified in L<perltie>. It inherits from
B<Tie::Scalar> and causes scalars tied to it to behave exactly like the
built-in scalars, allowing for selective overloading of methods. The C<new>
-method is provided as a means of grandfathering, for classes that forget to
+method is provided as a means of legacy support for classes that forget to
provide their own C<TIESCALAR> method.
For developers wishing to write their own tied-scalar classes, the methods
@@ -101,7 +101,7 @@ sub new {
$pkg->TIESCALAR(@_);
}
-# "Grandfather" the new, a la Tie::Hash
+# Legacy support for new(), a la Tie::Hash
sub TIESCALAR {
my $pkg = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm
index 476dd68678..f2677a616f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm
@@ -1,6 +1,4 @@
-package Tie::SubstrHash;
-
-our $VERSION = '1.00';
+package Tie::SubstrHash 1.01;
=head1 NAME
@@ -39,114 +37,116 @@ The hash does not support exists().
=cut
+use strict;
+use warnings;
+no warnings 'experimental::builtin';
+
use Carp;
sub TIEHASH {
- my $pack = shift;
- my ($klen, $vlen, $tsize) = @_;
+ my ($pack, $klen, $vlen, $tsize) = @_;
my $rlen = 1 + $klen + $vlen;
- $tsize = [$tsize,
- findgteprime($tsize * 1.1)]; # Allow 10% empty.
- local $self = bless ["\0", $klen, $vlen, $tsize, $rlen, 0, -1];
- $$self[0] x= $rlen * $tsize->[1];
+ $tsize = [$tsize, findgteprime($tsize * 1.1)]; # Allow 10% empty.
+ my $self = bless ["\0", $klen, $vlen, $tsize, $rlen, 0, -1];
+ $self->[0] x= $rlen * $tsize->[1];
$self;
}
sub CLEAR {
- local($self) = @_;
- $$self[0] = "\0" x ($$self[4] * $$self[3]->[1]);
- $$self[5] = 0;
- $$self[6] = -1;
+ my ($self) = @_;
+ $self->[0] = "\0" x ($self->[4] * $self->[3][1]);
+ $self->[5] = 0;
+ $self->[6] = -1;
}
sub FETCH {
- local($self,$key) = @_;
- local($klen, $vlen, $tsize, $rlen) = @$self[1..4];
- &hashkey;
- for (;;) {
- $offset = $hash * $rlen;
- $record = substr($$self[0], $offset, $rlen);
- if (ord($record) == 0) {
- return undef;
- }
- elsif (ord($record) == 1) {
- }
- elsif (substr($record, 1, $klen) eq $key) {
- return substr($record, 1+$klen, $vlen);
- }
- &rehash;
+ my ($self, $key) = @_;
+ my (undef, $klen, $vlen, $tsize, $rlen) = @$self;
+ my $hashbase = my $hash = hashkey($key, $klen, $tsize);
+ while (1) {
+ my $offset = $hash * $rlen;
+ my $record = substr($self->[0], $offset, $rlen);
+ if (ord($record) == 0) {
+ return undef;
+ }
+ elsif (ord($record) == 1) {
+ }
+ elsif (substr($record, 1, $klen) eq $key) {
+ return substr($record, 1+$klen, $vlen);
+ }
+ $hash = rehash($hash, $hashbase, $tsize);
}
}
sub STORE {
- local($self,$key,$val) = @_;
- local($klen, $vlen, $tsize, $rlen) = @$self[1..4];
- croak("Table is full ($tsize->[0] elements)") if $$self[5] > $tsize->[0];
+ my ($self, $key, $val) = @_;
+ my (undef, $klen, $vlen, $tsize, $rlen) = @$self;
+ croak("Table is full ($tsize->[0] elements)") if $self->[5] > $tsize->[0];
croak(qq/Value "$val" is not $vlen characters long/)
- if length($val) != $vlen;
+ if length($val) != $vlen;
my $writeoffset;
- &hashkey;
- for (;;) {
- $offset = $hash * $rlen;
- $record = substr($$self[0], $offset, $rlen);
- if (ord($record) == 0) {
- $record = "\2". $key . $val;
- die "panic" unless length($record) == $rlen;
- $writeoffset = $offset unless defined $writeoffset;
- substr($$self[0], $writeoffset, $rlen) = $record;
- ++$$self[5];
- return;
- }
- elsif (ord($record) == 1) {
- $writeoffset = $offset unless defined $writeoffset;
- }
- elsif (substr($record, 1, $klen) eq $key) {
- $record = "\2". $key . $val;
- die "panic" unless length($record) == $rlen;
- substr($$self[0], $offset, $rlen) = $record;
- return;
- }
- &rehash;
+ my $hashbase = my $hash = hashkey($key, $klen, $tsize);
+ while (1) {
+ my $offset = $hash * $rlen;
+ my $record = substr($self->[0], $offset, $rlen);
+ if (ord($record) == 0) {
+ $record = "\2". $key . $val;
+ die "panic" unless length($record) == $rlen;
+ $writeoffset //= $offset;
+ substr($self->[0], $writeoffset, $rlen) = $record;
+ ++$self->[5];
+ return;
+ }
+ elsif (ord($record) == 1) {
+ $writeoffset //= $offset;
+ }
+ elsif (substr($record, 1, $klen) eq $key) {
+ $record = "\2". $key . $val;
+ die "panic" unless length($record) == $rlen;
+ substr($self->[0], $offset, $rlen) = $record;
+ return;
+ }
+ $hash = rehash($hash, $hashbase, $tsize);
}
}
sub DELETE {
- local($self,$key) = @_;
- local($klen, $vlen, $tsize, $rlen) = @$self[1..4];
- &hashkey;
- for (;;) {
- $offset = $hash * $rlen;
- $record = substr($$self[0], $offset, $rlen);
- if (ord($record) == 0) {
- return undef;
- }
- elsif (ord($record) == 1) {
- }
- elsif (substr($record, 1, $klen) eq $key) {
- substr($$self[0], $offset, 1) = "\1";
- return substr($record, 1+$klen, $vlen);
- --$$self[5];
- }
- &rehash;
+ my ($self, $key) = @_;
+ my (undef, $klen, $vlen, $tsize, $rlen) = @$self;
+ my $hashbase = my $hash = hashkey($key, $klen, $tsize);
+ while (1) {
+ my $offset = $hash * $rlen;
+ my $record = substr($self->[0], $offset, $rlen);
+ if (ord($record) == 0) {
+ return undef;
+ }
+ elsif (ord($record) == 1) {
+ }
+ elsif (substr($record, 1, $klen) eq $key) {
+ substr($self->[0], $offset, 1) = "\1";
+ return substr($record, 1+$klen, $vlen);
+ --$self->[5];
+ }
+ $hash = rehash($hash, $hashbase, $tsize);
}
}
sub FIRSTKEY {
- local($self) = @_;
- $$self[6] = -1;
- &NEXTKEY;
+ my ($self) = @_;
+ $self->[6] = -1;
+ goto &NEXTKEY;
}
sub NEXTKEY {
- local($self) = @_;
- local($klen, $vlen, $tsize, $rlen, $entries, $iterix) = @$self[1..6];
+ my ($self) = @_;
+ my (undef, $klen, $vlen, $tsize, $rlen, $entries, $iterix) = @$self;
for (++$iterix; $iterix < $tsize->[1]; ++$iterix) {
- next unless substr($$self[0], $iterix * $rlen, 1) eq "\2";
- $$self[6] = $iterix;
- return substr($$self[0], $iterix * $rlen + 1, $klen);
+ next unless substr($self->[0], $iterix * $rlen, 1) eq "\2";
+ $self->[6] = $iterix;
+ return substr($self->[0], $iterix * $rlen + 1, $klen);
}
- $$self[6] = -1;
+ $self->[6] = -1;
undef;
}
@@ -155,32 +155,29 @@ sub EXISTS {
}
sub hashkey {
+ my ($key, $klen, $tsize) = @_;
croak(qq/Key "$key" is not $klen characters long/)
- if length($key) != $klen;
- $hash = 2;
+ if length($key) != $klen;
+ my $hash = 2;
for (unpack('C*', $key)) {
- $hash = $hash * 33 + $_;
- &_hashwrap if $hash >= 1e13;
+ $hash = $hash * 33 + $_;
+ $hash = _hashwrap($hash, $tsize) if $hash >= 1e13;
}
- &_hashwrap if $hash >= $tsize->[1];
- $hash = 1 unless $hash;
- $hashbase = $hash;
+ $hash = _hashwrap($hash, $tsize) if $hash >= $tsize->[1];
+ $hash ||= 1;
+ return $hash;
}
sub _hashwrap {
- $hash -= int($hash / $tsize->[1]) * $tsize->[1];
+ my ($hash, $tsize) = @_;
+ return $hash - int($hash / $tsize->[1]) * $tsize->[1];
}
sub rehash {
+ my ($hash, $hashbase, $tsize) = @_;
$hash += $hashbase;
$hash -= $tsize->[1] if $hash >= $tsize->[1];
-}
-
-# using POSIX::ceil() would be too heavy, and not all platforms have it.
-sub ceil {
- my $num = shift;
- $num = int($num + 1) unless $num == int $num;
- return $num;
+ return $hash;
}
# See:
@@ -191,21 +188,20 @@ sub ceil {
sub findgteprime { # find the smallest prime integer greater than or equal to
use integer;
- my $num = ceil(shift);
+ my $num = builtin::ceil(shift);
return 2 if $num <= 2;
$num++ unless $num % 2;
- my $i;
my $sqrtnum = int sqrt $num;
my $sqrtnumsquared = $sqrtnum * $sqrtnum;
NUM:
for (;; $num += 2) {
- if ($sqrtnumsquared < $num) {
- $sqrtnum++;
- $sqrtnumsquared = $sqrtnum * $sqrtnum;
- }
- for ($i = 3; $i <= $sqrtnum; $i += 2) {
+ if ($sqrtnumsquared < $num) {
+ $sqrtnum++;
+ $sqrtnumsquared = $sqrtnum * $sqrtnum;
+ }
+ for (my $i = 3; $i <= $sqrtnum; $i += 2) {
next NUM unless $num % $i;
}
return $num;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm
index 9377c3479f..b8cd263c3e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm
@@ -50,7 +50,7 @@ our @EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval
stat lstat utime
);
-our $VERSION = '1.9767';
+our $VERSION = '1.9775';
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm
index f5d87cd031..58dc5af0ef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm
@@ -19,7 +19,7 @@ our %EXPORT_TAGS = (
':override' => 'internal',
);
-our $VERSION = '1.3401';
+our $VERSION = '1.3401_01';
XSLoader::load( 'Time::Piece', $VERSION );
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm
index 12800fb54c..96ecfe6e43 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm
@@ -1,6 +1,6 @@
package UNIVERSAL;
-our $VERSION = '1.13';
+our $VERSION = '1.15';
# UNIVERSAL should not contain any extra subs/methods beyond those
# that it exists to define. The existence of import() below is a historical
@@ -24,21 +24,21 @@ UNIVERSAL - base class for ALL classes (blessed references)
=head1 SYNOPSIS
- $is_io = $fd->isa("IO::Handle");
- $is_io = Class->isa("IO::Handle");
+ my $obj_is_io = $fd->isa("IO::Handle");
+ my $cls_is_io = Class->isa("IO::Handle");
- $does_log = $obj->DOES("Logger");
- $does_log = Class->DOES("Logger");
+ my $obj_does_log = $obj->DOES("Logger");
+ my $cls_does_log = Class->DOES("Logger");
- $sub = $obj->can("print");
- $sub = Class->can("print");
+ my $obj_sub = $obj->can("print");
+ my $cls_sub = Class->can("print");
- $sub = eval { $ref->can("fandango") };
- $ver = $obj->VERSION;
+ my $eval_sub = eval { $ref->can("fandango") };
+ my $ver = $obj->VERSION;
# but never do this!
- $is_io = UNIVERSAL::isa($fd, "IO::Handle");
- $sub = UNIVERSAL::can($obj, "print");
+ my $is_io = UNIVERSAL::isa($fd, "IO::Handle");
+ my $sub = UNIVERSAL::can($obj, "print");
=head1 DESCRIPTION
@@ -87,7 +87,10 @@ inherits from (or is itself) the name of the package C<TYPE> or
inherits from package C<TYPE>.
If you're not sure what you have (the C<VAL> case), wrap the method call in an
-C<eval> block to catch the exception if C<VAL> is undefined.
+C<eval> block to catch the exception if C<VAL> is undefined or an unblessed
+reference. The L<C<isa> operator|perlop/"Class Instance Operator"> is an
+alternative that simply returns false in this case, so the C<eval> is not
+needed.
If you want to be sure that you're calling C<isa> as a method, not a class,
check the invocand with C<blessed> from L<Scalar::Util> first:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm
index e57cdf8d6e..7b8e547073 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm
@@ -1,14 +1,5 @@
package Unicode::Collate;
-BEGIN {
- unless ("A" eq pack('U', 0x41)) {
- die "Unicode::Collate cannot stringify a Unicode code point\n";
- }
- unless (0x41 == unpack('U', 'A')) {
- die "Unicode::Collate cannot get a Unicode code point\n";
- }
-}
-
use 5.006;
use strict;
use warnings;
@@ -17,7 +8,7 @@ use File::Spec;
no warnings 'utf8';
-our $VERSION = '1.29';
+our $VERSION = '1.31';
our $PACKAGE = __PACKAGE__;
### begin XS only ###
@@ -94,13 +85,24 @@ sub Base_Unicode_Version { '13.0.0' }
######
+my $native_to_unicode = ($::IS_ASCII || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::native_to_unicode(shift) };
+
+my $unicode_to_native = ($::IS_ASCII || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::unicode_to_native(shift) };
+
+# pack_U() should get Unicode code points.
sub pack_U {
- return pack('U*', @_);
+ return pack('U*', map $unicode_to_native->($_), @_);
}
+# unpack_U() should return Unicode code points.
sub unpack_U {
- return unpack('U*', shift(@_).pack('U*'));
+ return map $native_to_unicode->($_), unpack('U*', shift(@_).pack('U*'));
}
+# for older perl version, pack('U*') generates empty string with utf8 flag.
######
@@ -2101,12 +2103,14 @@ C<variable =E<gt> "non-ignorable", level =E<gt> 3)> should be used.
B<Unicode::Normalize is required to try The Conformance Test.>
+B<EBCDIC-SUPPORT IS EXPERIMENTAL.>
+
=back
=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-2020,
+<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2021,
SADAHIRO Tomoyuki. Japan. All rights reserved.
This module is free software; you can redistribute it and/or
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
index b0eb54ce5c..ebc2be2ee5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %u2p;
my $wt = 0x8000;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
index a0c328d328..5e1f9f9b75 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %u2p;
my $wt = 0x8000;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
index 566852de6b..4e8ffabcc1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %u2p;
my $wt = 0x8000;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
index 2a2d2bb8cb..f83f8247f7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %jamo2prim = (
'1100', 0x4175, '1101', 0x4176, '1102', 0x4177, '1103', 0x4178,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
index 287bd025ad..e650d7684c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %u2p;
my $wt = 0x8000;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
index 3837d739f5..ff5c4d9ed1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %u2p;
my $wt = 0x8000;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
index 0e6a82e697..acfe686307 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my %u2p;
my $wt = 0x8000;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
index a4ac7ec668..185d0a8d22 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
@@ -5,7 +5,7 @@ use warnings;
use Carp;
use base qw(Unicode::Collate);
-our $VERSION = '1.29';
+our $VERSION = '1.31';
my $PL_EXT = '.pl';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
index 7d52d3c021..b0cc371e79 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0149 ; [.2118.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
ENTRY
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
index 7911239195..787a4f44ba 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0629 ; [.2685.0021.0002] # ARABIC LETTER TEH MARBUTA
FE94 ; [.2685.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
index 48c2d709fe..0d86a679ba 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0982 ; [.2A4B.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
0981 ; [.2A4B.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
index 3375c677c5..bda9ad35fd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# schwa doesn't require tailoring
entry => <<'ENTRY', # for DUCET v13.0.0
00E7 ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
index 0dc9bf8b54..de97d045f2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0451 ; [.23C0.0020.0002] # CYRILLIC SMALL LETTER IO
0435 0308 ; [.23C0.0020.0002] # CYRILLIC SMALL LETTER IO
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
index 451156593a..12305aa011 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0982 ; [.2A4B.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
0983 ; [.2A4B.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
index 608650de56..0a94d3162a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0063 0068 ; [.1FD7.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0063 0048 ; [.1FD7.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
index 1782e3ded3..6f6c1944d9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
010D ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cu.pl
index 338e0cf658..24eeba8e31 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cu.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
upper_before_lower => 1,
backwards => 2,
suppress => [0x0418, 0x0438],
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
index 7d9370334f..8d80673676 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0063 0068 ; [.1FD7.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1FD7.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
index eb5d1fb59f..282a81c6a3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
upper_before_lower => 1,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl
index 472c15de92..a298f1442e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E4 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
index c2632a189b..398bad76f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E4 ; [.1FA2.0021.0002][.2007.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1FA2.0021.0002][.2007.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl
index b76c808763..e4dc49e30e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
010D ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
index 111f8c228d..b21ba43e72 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
entry => <<'ENTRY', # for DUCET v13.0.0
0302 ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
index a469adeffc..f835b1d84f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0109 ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
0063 0302 ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
index 3d7df84ee8..599ff8c25d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00F1 ; [.2119.0020.0002] # LATIN SMALL LETTER N WITH TILDE
006E 0303 ; [.2119.0020.0002] # LATIN SMALL LETTER N WITH TILDE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
index 4d8175cc87..6753ebda8e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0063 0068 ; [.1FD7.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1FD7.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
index e2a22e7aa8..aee11ab621 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0161 ; [.21F4.0020.0002] # LATIN SMALL LETTER S WITH CARON
0073 030C ; [.21F4.0020.0002] # LATIN SMALL LETTER S WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
index d394e0acb6..59db813b61 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0650 ; [.0000.0077.0002] # ARABIC KASRA
064B ; [.0000.007B.0002] # ARABIC FATHATAN
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
index fd1f494cd8..301f63c55c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
index 2389e928c9..3b15ff33a9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
index a9ecdc974c..88a28b4119 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00F1 ; [.2119.0020.0002] # LATIN SMALL LETTER N WITH TILDE
006E 0303 ; [.2119.0020.0002] # LATIN SMALL LETTER N WITH TILDE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
index 983b317dea..13d22fd9f8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl
index 54adfc61ea..9cffbd039a 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl
@@ -1,4 +1,4 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
backwards => 2,
};
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
index cb4294003f..ed8e223bfd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0A82 ; [.2AB8.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
0A81 ; [.2AB8.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
index ab68bb77d9..0dcac73c7e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# b-hook, d-hook, k-hook, y-hook don't require tailoring
entry => <<'ENTRY', # for DUCET v13.0.0
0073 0068 ; [.21D3.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
index d85d5a8cf3..cf8b460f36 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0065 ; [.1FA3.0020.0002][.FFF1.0000.0000] # LATIN SMALL LETTER E
0045 ; [.1FA3.0020.0008][.FFF1.0000.0000] # LATIN CAPITAL LETTER E
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl
index bd4f066ded..483bb6d3c6 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
05F3 ; [*0316.001F.0002] # HEBREW PUNCTUATION GERESH
05F4 ; [*031D.001F.0002] # HEBREW PUNCTUATION GERSHAYIM
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
index 4c4fb43e9f..310201fca7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0902 ; [.29D7.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.29D7.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
index abec51a550..faa3655a96 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
010D ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
index 979b61ab5e..ae1809a678 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0063 0073 ; [.1FD7.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
0063 0053 ; [.1FD7.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
index e89cc048bb..e03cba7471 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0587 ; [.261A.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
0584 ; [.261A.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
index fd26dcc3f7..99681bab1b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0063 0068 ; [.1FBD.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1FBD.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
index 93427d8495..8ae880f97c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E1 ; [.1FBB.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
0061 0301 ; [.1FBB.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
index c582f0a37b..9008202dcd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::JISX0208;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
entry => <<'ENTRY', # for DUCET v13.0.0
30A1 ; [.42DA.0020.000F.0002] # KATAKANA LETTER SMALL A
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
index 9b951c0a88..49ab3303db 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0451 ; [.23C0.0020.0002] # CYRILLIC SMALL LETTER IO
0435 0308 ; [.23C0.0020.0002] # CYRILLIC SMALL LETTER IO
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
index 25ddb54f3f..be88f6e6d1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
index 0c4b1dbced..e1cadd31a2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0C82 ; [.2BCB.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
0C83 ; [.2BCB.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
index 222b0c977c..e45f1be9b2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Korean;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
entry => <<'ENTRY', # for DUCET v13.0.0
F967 ; [.417C.0021.0002.4E0D][.4200.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
index 28c3c77885..7a528f2fcf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0902 ; [.29D7.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.29D7.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl
index ad06d4a721..a5aa78b544 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
010D ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
index 9a6dcd9134..c90ec82717 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
025B ; [.2008.0020.0002] # LATIN SMALL LETTER OPEN E
0190 ; [.2008.0020.0008] # LATIN CAPITAL LETTER OPEN E
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
index b0b2a3b1e2..53211cbf26 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
entry => <<'ENTRY', # for DUCET v13.0.0
0049 0307 ; [.2090.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
index c1b0a34d50..3f7a2d2fd0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
010D ; [.1FEA.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1FEA.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
index a86272c5f3..53429b2305 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
suppress => [0x0418, 0x0438],
entry => <<'ENTRY', # for DUCET v13.0.0
0453 ; [.23BB.0020.0002] # CYRILLIC SMALL LETTER GJE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
index c025ef653a..57f45d684e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0D3D ; [.0000.00C6.0002] # MALAYALAM SIGN AVAGRAHA
0D57 ; [.2C4D.0020.0002] # MALAYALAM AU LENGTH MARK
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
index b111cdcbf2..fd786ee6d3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0902 ; [.29D7.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.29D7.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
index 2851cc724a..b4fec802c7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
upper_before_lower => 1,
entry => <<'ENTRY', # for DUCET v13.0.0
010B ; [.1FD5.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
index c263f78d3a..a1c27e1c08 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
index c263f78d3a..a1c27e1c08 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
index 65b2add51d..1614979c4f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00EA ; [.2008.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
0065 0302 ; [.2008.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
index d125766a11..de08ffbcff 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0063 0068 ; [.2287.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.2287.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
index def98b6232..52e029c23b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0B01 ; [.2B0A.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
0B02 ; [.2B0A.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
index 4400dce5d7..2c8ce36fec 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0A71 ; [.0000.00C4.0002] # GURMUKHI ADDAK
0A03 ; [.0000.00C3.0002] # GURMUKHI SIGN VISARGA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
index b573a03424..998663e350 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0105 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
0061 0328 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
index b8f24fc534..09eeb5c92c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0103 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH BREVE
0061 0306 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH BREVE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
index b111cdcbf2..fd786ee6d3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0902 ; [.29D7.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.29D7.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
index 83bf5eae3b..7fb613a611 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# eng, g-stroke, t-stroke don't require tailoring
entry => <<'ENTRY', # for DUCET v13.0.0
00E1 ; [.1FBB.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
index 0e2679408f..2d73b243d6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0D82 ; [.2C61.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
0D83 ; [.2C61.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
index aa6faf5cf7..31b499e198 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0D82 ; [.2C61.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
0D83 ; [.2C61.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
index 9861405933..8db55fbe83 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E4 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
index 218682554f..65a683a50a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
010D ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
index 33a85b9bc7..f4bfbfa45e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E7 ; [.1FEA.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
0063 0327 ; [.1FEA.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
index 3a49fbb192..5194ceea57 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
suppress => [0x0418, 0x0438],
entry => <<'ENTRY', # for DUCET v13.0.0
0439 ; [.23E5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
index ffcadbb58c..1e47fc4bee 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
index 0ca1b9742e..cecb12f0a3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0111 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1FEB.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
index 3b8cce1fd4..e719e95d52 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0B82 ; [.2B4D.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
0B83 ; [.2B4D.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
index b331de00e5..dbba1fe465 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0C01 ; [.2B81.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
0C02 ; [.2B81.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
index b0466726ac..ff8ebbf936 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
variable => 'shifted',
alternate => 'shifted',
entry => <<'ENTRY', # for DUCET v13.0.0
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
index 65b2add51d..1614979c4f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00EA ; [.2008.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
0065 0302 ; [.2008.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
index 11cb0b27c7..0317d3b518 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
006E 0067 ; [.2119.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
004E 0067 ; [.2119.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
index da9922f7b8..f3e2f61f12 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E7 ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
0063 0327 ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl
index b85d5f2519..6f3ee57bca 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
04D9 ; [.23C0.0020.0002] # CYRILLIC SMALL LETTER SCHWA
04D8 ; [.23C0.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
index 12ff02d3c0..f1eb2d2aca 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0491 ; [.239C.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
0490 ; [.239C.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
index 2f6cb09439..400ee1c507 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0623 ; [.2672.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
0627 0654 ; [.2672.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
index b82cc07eb0..f729103a1d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
entry => <<'ENTRY', # for DUCET v13.0.0
0309 ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl
index 37187197cc..58457a35f6 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
00E4 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
index 6681a3493a..6b16cf6b3a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0061 0061 ; [.1FA2.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
00E4 00E4 ; [.1FA2.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
index 2c5ed11636..6491f60b56 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
# eng doesn't require tailoring
entry => <<'ENTRY', # for DUCET v13.0.0
00E0 ; [.1FA3.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
index 765e68b45b..44f8aa7d0a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
1EB9 ; [.2008.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
0065 0323 ; [.2008.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
index c3df346f60..63dff38029 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.29,
+ locale_version => 1.31,
entry => <<'ENTRY', # for DUCET v13.0.0
0101 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
0061 0304 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
index 528ce258cc..b62f740682 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Big5;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
entry => <<'ENTRY', # for DUCET v13.0.0
0101 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
index f327cd8669..308c6405b1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::GB2312;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
entry => <<'ENTRY', # for DUCET v13.0.0
0101 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
index 30d636f219..13e21cce3b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Pinyin;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
entry => <<'ENTRY', # for DUCET v13.0.0
0101 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
index 08c733032b..7df2564e3c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Stroke;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
entry => <<'ENTRY', # for DUCET v13.0.0
0101 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
index d2a80c8e9b..c65cdaf7ba 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Zhuyin;
+{
- locale_version => 1.29,
+ locale_version => 1.31,
overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
entry => <<'ENTRY', # for DUCET v13.0.0
02C9 ; [.0000.0199.0002] # MODIFIER LETTER MACRON
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm
index fd6f1cb700..c8053f7d38 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm
@@ -1,14 +1,5 @@
package Unicode::Normalize;
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- die "Unicode::Normalize cannot stringify a Unicode code point\n";
- }
- unless (0x41 == unpack('U', 'A')) {
- die "Unicode::Normalize cannot get Unicode code point\n";
- }
-}
-
use 5.006;
use strict;
use warnings;
@@ -16,7 +7,7 @@ use Carp;
no warnings 'utf8';
-our $VERSION = '1.28';
+our $VERSION = '1.32';
our $PACKAGE = __PACKAGE__;
our @EXPORT = qw( NFC NFD NFKC NFKD );
@@ -40,16 +31,58 @@ our %EXPORT_TAGS = (
## utilities for tests
##
-sub pack_U {
- return pack('U*', @_);
+ # No EBCDIC support on early perls
+*to_native = ($::IS_ASCII || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::unicode_to_native(shift) };
+
+*from_native = ($::IS_ASCII || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::native_to_unicode(shift) };
+
+# The .t files are all in terms of Unicode, so xlate to/from native
+sub dot_t_pack_U {
+ return pack('U*', map { to_native($_) } @_);
}
-sub unpack_U {
+sub dot_t_unpack_U {
# The empty pack returns an empty UTF-8 string, so the effect is to force
# the shifted parameter into being UTF-8. This allows this to work on
# Perl 5.6, where there is no utf8::upgrade().
- return unpack('U*', shift(@_).pack('U*'));
+ return map { from_native($_) } unpack('U*', shift(@_).pack('U*'));
+}
+
+sub get_printable_string ($) {
+ use bytes;
+ my $s = shift;
+
+ # DeMorgan's laws cause this to mean ascii printables
+ return $s if $s =~ /[^[:^ascii:][:^print:]]/;
+
+ return join " ", map { sprintf "\\x%02x", ord $_ } split "", $s;
+}
+
+sub ok ($$;$) {
+ my $count_ref = shift; # Test number in caller
+ my $p = my $r = shift;
+ my $x;
+ if (@_) {
+ $x = shift;
+ $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
+ }
+
+ print $p ? "ok" : "not ok", ' ', ++$$count_ref, "\n";
+
+ return if $p;
+
+ my (undef, $file, $line) = caller(1);
+ print STDERR "# Failed test $$count_ref at $file line $line\n";
+
+ return unless defined $x;
+
+ print STDERR "# got ", get_printable_string($r), "\n";
+ print STDERR "# expected ", get_printable_string($x), "\n";
}
require Exporter;
@@ -343,7 +376,7 @@ Note that C<$unprocessed> will be modified as a side-effect.
=head2 Quick Check
-(see Annex 8, UAX #15; and F<DerivedNormalizationProps.txt>)
+(see Annex 8, UAX #15; and F<lib/unicore/DerivedNormalizationProps.txt>)
The following functions check whether the string is in that normalization form.
@@ -571,8 +604,10 @@ so one could cause Unicode 3.2 to be used in any perl version starting with
In older Unicode versions, a small number of characters (all of which are
CJK compatibility ideographs as far as they have been found) may have
-an erroneous decomposition mapping (see F<NormalizationCorrections.txt>).
-Anyhow, this module will neither refer to F<NormalizationCorrections.txt>
+an erroneous decomposition mapping (see
+F<lib/unicore/NormalizationCorrections.txt>).
+Anyhow, this module will neither refer to
+F<lib/unicore/NormalizationCorrections.txt>
nor provide any specific version of normalization. Therefore this module
running on an older perl with an older Unicode database may use
the erroneous decomposition mapping blindly conforming to the Unicode database.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/UCD.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/UCD.pm
index 11fa2bef6a..6f4c4b2502 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/UCD.pm
+++ b/systems/texlive/tlnet/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.75';
+our $VERSION = '0.78';
sub DEBUG () { 0 }
$|=1 if DEBUG;
@@ -1972,7 +1972,7 @@ Locale is not completely independent. The I<turkic> field contains results to
use when the locale is a Turkic language.
For more information about case mappings see
-L<http://www.unicode.org/unicode/reports/tr21>
+L<http://www.unicode.org/reports/tr21>
=cut
@@ -2219,7 +2219,7 @@ hash will not have any of the base keys, like C<code>, C<upper>, etc., but
will contain only locale keys.
For more information about case mappings see
-L<http://www.unicode.org/unicode/reports/tr21/>
+L<http://www.unicode.org/reports/tr21/>
=cut
@@ -2346,25 +2346,23 @@ my %NAMEDSEQ;
sub _namedseq {
unless (%NAMEDSEQ) {
- my $namedseqfh = openunicode("Name.pl");
- local $_;
- local $/ = "\n";
- while (<$namedseqfh>) {
- next if m/ ^ \s* \# /x;
-
- # Each entry is currently two lines. The first contains the code
+ my @list = split "\n", do "unicore/Name.pl";
+ for (my $i = 0; $i < @list; $i += 3) {
+ # Each entry is currently three lines. The first contains the code
# points in the sequence separated by spaces. If this entry
# doesn't have spaces, it isn't a named sequence.
- if (/^ [0-9A-F]{4,5} (?: \ [0-9A-F]{4,5} )+ $ /x) {
- my $sequence = $_;
- chomp $sequence;
-
- # And the second is the name
- my $name = <$namedseqfh>;
- chomp $name;
- my @s = map { chr(hex($_)) } split(' ', $sequence);
- $NAMEDSEQ{$name} = join("", @s);
- }
+ next unless $list[$i] =~ /^ [0-9A-F]{4,5} (?: \ [0-9A-F]{4,5} )+ $ /x;
+
+ my $sequence = $list[$i];
+ chomp $sequence;
+
+ # And the second is the name
+ my $name = $list[$i+1];
+ chomp $name;
+ my @s = map { chr(hex($_)) } split(' ', $sequence);
+ $NAMEDSEQ{$name} = join("", @s);
+
+ # And the third is empty
}
}
}
@@ -2448,7 +2446,7 @@ sub _numeric {
use Unicode::UCD 'num';
my $val = num("123");
- my $one_quarter = num("\N{VULGAR FRACTION 1/4}");
+ my $one_quarter = num("\N{VULGAR FRACTION ONE QUARTER}");
my $val = num("12a", \$valid_length); # $valid_length contains 2
C<num()> returns the numeric value of the input Unicode string; or C<undef> if it
@@ -3473,7 +3471,7 @@ points 97 through 122. To get the mapping for any code point in this range,
you take the offset it has from the beginning code point of the range, and add
that to the mapping for that first code point. So, the mapping for 122 ("z")
is derived by taking the offset of 122 from 97 (=25) and adding that to 65,
-yielding 90 ("z"). Likewise for everything in between.
+yielding 90 ("Z"). Likewise for everything in between.
Requiring this simple adjustment allows the returned arrays to be
significantly smaller than otherwise, up to a factor of 10, speeding up
@@ -4727,7 +4725,7 @@ nor the punctuation.
For blocks see L<http://www.unicode.org/Public/UNIDATA/Blocks.txt>
-For scripts see UTR #24: L<http://www.unicode.org/unicode/reports/tr24/>
+For scripts see UTR #24: L<http://www.unicode.org/reports/tr24/>
=head2 B<Matching Scripts and Blocks>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm
index 9f95541729..5774132e8f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm
@@ -2,7 +2,7 @@ package User::grent;
use strict;
use 5.006_001;
-our $VERSION = '1.03';
+our $VERSION = '1.04';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
our ($gr_name, $gr_gid, $gr_passwd, @gr_members);
BEGIN {
@@ -46,7 +46,7 @@ User::grent - by-name interface to Perl's built-in getgr*() functions
=head1 SYNOPSIS
use User::grent;
- $gr = getgrgid(0) or die "No group zero";
+ my $gr = getgrgid(0) or die "No group zero";
if ( $gr->name eq 'wheel' && @{$gr->members} > 1 ) {
print "gid zero name wheel, with other members";
}
@@ -57,7 +57,7 @@ User::grent - by-name interface to Perl's built-in getgr*() functions
print "gid zero name wheel, with other members";
}
- $gr = getgr($whoever);
+ my $gr = getgr($whoever);
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm
index 3f82e8c861..ff8fbd5877 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm
@@ -1,7 +1,7 @@
package User::pwent;
use 5.006;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
use strict;
use warnings;
@@ -189,14 +189,14 @@ User::pwent - by-name interface to Perl's built-in getpw*() functions
=head1 SYNOPSIS
use User::pwent;
- $pw = getpwnam('daemon') || die "No daemon user";
+ my $pw = getpwnam('daemon') || die "No daemon user";
if ( $pw->uid == 1 && $pw->dir =~ m#^/(bin|tmp)?\z#s ) {
print "gid 1 on root dir";
}
- $real_shell = $pw->shell || '/bin/sh';
+ my $real_shell = $pw->shell || '/bin/sh';
- for (($fullname, $office, $workphone, $homephone) =
+ for (my ($fullname, $office, $workphone, $homephone) =
split /\s*,\s*/, $pw->gecos)
{
s/&/ucfirst(lc($pw->name))/ge;
@@ -208,7 +208,7 @@ User::pwent - by-name interface to Perl's built-in getpw*() functions
print "gid 1 on root dir";
}
- $pw = getpw($whoever);
+ my $pw = getpw($whoever);
use User::pwent qw/:DEFAULT pw_has/;
if (pw_has(qw[gecos expire quota])) { .... }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm
index 1092c5ab52..2ad726a99a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm
@@ -8,7 +8,7 @@ package Win32;
require DynaLoader;
@ISA = qw|Exporter DynaLoader|;
- $VERSION = '0.57';
+ $VERSION = '0.59';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -306,6 +306,8 @@ sub PRODUCT_EDUCATION_N () { 0x7A } # Windows 10 Education
sub PRODUCT_UNLICENSED () { 0xABCDABCD } # product has not been activated and is no longer in the grace period
+sub PROCESSOR_ARCHITECTURE_ARM64 () { 12 } # ARM64
+sub PROCESSOR_ARCHITECTURE_ARM () { 5 } # ARM
sub PROCESSOR_ARCHITECTURE_AMD64 () { 9 } # x64 (AMD or Intel)
sub PROCESSOR_ARCHITECTURE_IA64 () { 6 } # Intel Itanium Processor Family (IPF)
sub PROCESSOR_ARCHITECTURE_INTEL () { 0 } # x86
@@ -319,6 +321,14 @@ sub _GetProcessorArchitecture {
2200 => PROCESSOR_ARCHITECTURE_IA64,
8664 => PROCESSOR_ARCHITECTURE_AMD64,
}->{Win32::GetChipName()};
+
+ if (!defined($arch)) {
+ $arch = {
+ 5 => PROCESSOR_ARCHITECTURE_ARM,
+ 12 => PROCESSOR_ARCHITECTURE_ARM64,
+ }->{Win32::GetChipArch()};
+ }
+
return defined($arch) ? $arch : PROCESSOR_ARCHITECTURE_UNKNOWN;
}
@@ -890,10 +900,17 @@ $ENV{PROCESSOR_ARCHITECTURE}. This might not work on Win9X.
=item Win32::GetChipName()
-Returns the processor type: 386, 486 or 586 for x86 processors, 8664
-for the x64 processor and 2200 for the Itanium. Since it returns the
-native processor type it will return a 64-bit processor type even when
-called from a 32-bit Perl running on 64-bit Windows.
+Returns the processor type: 386, 486 or 586 for x86 processors, 8664 for the x64
+processor and 2200 for the Itanium. For arm/arm64 processor, the value is marked
+as "Reserved" (not specified, but usually 0) in Microsoft documentation, so it's
+better to use GetChipArch(). Since it returns the native processor type it will
+return a 64-bit processor type even when called from a 32-bit Perl running on
+64-bit Windows.
+
+=item Win32::GetChipArch()
+
+Returns the processor architecture: 0 for x86 processors, 5 for arm, 6 for
+Itanium, 9 for x64 and 12 for arm64, and 0xFFFF for unknown architecture.
=item Win32::GetConsoleCP()
@@ -1305,11 +1322,52 @@ of hex digits with surrounding braces. For example:
{09531CF1-D0C7-4860-840C-1C8C8735E2AD}
+=item Win32::HttpGetFile(URL, FILENAME [, IGNORE_CERT_ERRORS])
+
+Uses the WinHttp library to download the file specified by the URL
+parameter to the local file specified by FILENAME. The optional third
+parameter, if true, indicates that certficate errors are to be ignored
+for https connections; please use with caution in a safe environment,
+such as when testing locally using a self-signed certificate.
+
+Only http and https protocols are supported. Authentication is not
+supported. The function is not available when building with gcc prior to
+4.8.0 because the WinHttp library is not available.
+
+In scalar context returns a boolean success or failure, and in list
+context also returns, in addition to the boolean status, a second
+value containing message text related to the status.
+
+If the call fails, C<Win32::GetLastError()> will return a numeric
+error code, which may be a system error, a WinHttp error, or a
+user-defined error composed of 1e9 plus the HTTP status code.
+
+Scalar context example:
+
+ print Win32::GetLastError()
+ unless Win32::HttpGetFile('http://example.com/somefile.tar.gz',
+ '.\file.tgz');
+
+List context example:
+
+ my ($ok, $msg) = Win32::HttpGetFile('http://example.com/somefile.tar.gz',
+ '.\file.tgz');
+ if ($ok) {
+ print "Success!: $msg\n";
+ }
+ else {
+ print "Failure!: $msg\n";
+ my $err = Win32::GetLastError();
+ if ($err > 1e9) {
+ printf "HTTP status: %d\n", ($err - 1e9);
+ }
+ }
+
=item Win32::InitiateSystemShutdown
(MACHINE, MESSAGE, TIMEOUT, FORCECLOSE, REBOOT)
-Shutsdown the specified MACHINE, notifying users with the
+Shuts down the specified MACHINE, notifying users with the
supplied MESSAGE, within the specified TIMEOUT interval. Forces
closing of all documents without prompting the user if FORCECLOSE is
true, and reboots the machine if REBOOT is true. This function works
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm
index 538e54e178..a671f24056 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm
@@ -1,11 +1,12 @@
# Generated from XSLoader_pm.PL (resolved %Config::Config value)
# This file is unique for every OS
-package XSLoader;
+use strict;
+no strict 'refs';
-$VERSION = "0.30"; # remember to update version in POD!
+package XSLoader;
-#use strict;
+our $VERSION = "0.32"; # remember to update version in POD!
package DynaLoader;
@@ -111,6 +112,9 @@ sub load {
return &$xs(@_);
}
+# Can't test with DynaLoader->can('bootstrap_inherit') when building in the
+# core, as XSLoader gets built before DynaLoader.
+
sub bootstrap_inherit {
require DynaLoader;
goto \&DynaLoader::bootstrap_inherit;
@@ -118,7 +122,6 @@ sub bootstrap_inherit {
1;
-
__END__
=head1 NAME
@@ -127,7 +130,7 @@ XSLoader - Dynamically load C libraries into Perl code
=head1 VERSION
-Version 0.30
+Version 0.32
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm
index b38028d24a..909109d624 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm
@@ -6,7 +6,7 @@
package _charnames;
use strict;
use warnings;
-our $VERSION = '1.48';
+our $VERSION = '1.50';
use unicore::Name; # mktables-generated algorithmically-defined names
use bytes (); # for $bytes::hint_bits
@@ -484,6 +484,7 @@ sub lookup_name ($$$;$) {
# Keep in mind that $lookup_name has had the metas quoted.
my $scripts_trie = "";
my $name_has_uppercase;
+ my @scripts;
if (($^H{charnames_short})
&& $lookup_name =~ /^ (?: \\ \s)* # Quoted space
(.+?) # $1 = the script
@@ -506,18 +507,33 @@ sub lookup_name ($$$;$) {
$name_has_uppercase = $name =~ /[[:upper:]]/;
}
else { # Otherwise look in allowed scripts
- $scripts_trie = $^H{charnames_scripts};
+ # We want to search first by script name then by letter name, so that
+ # if the user imported `use charnames qw(arabic hebrew)` and asked for
+ # \N{alef} they get ARABIC LETTER ALEF, and if they imported
+ # `... (hebrew arabic)` and ask for \N{alef} they get HEBREW LETTER ALEF.
+ # We can't rely on the regex engine to preserve ordering like that, so
+ # pick the pipe-seperated string apart so we can iterate over it.
+ @scripts = split(/\|/, $^H{charnames_scripts});
# Use original name to find its input casing
$name_has_uppercase = $name =~ /[[:upper:]]/;
}
-
my $case = $name_has_uppercase ? "CAPITAL" : "SMALL";
- return if (! $scripts_trie || $txt !~
- /^ (?: $scripts_trie ) \ (?:$case\ )? LETTER \ \U$lookup_name $/xm);
- # Here have found the input name in the table.
- @off = ($-[0], $+[0]);
+ if(@scripts) {
+ SCRIPTS: foreach my $script (@scripts) {
+ if($txt =~ /^ (?: $script ) \ (?:$case\ )? LETTER \ \U$lookup_name $/xm) {
+ @off = ($-[0], $+[0]);
+ last SCRIPTS;
+ }
+ }
+ return unless(@off);
+ }
+ else {
+ return if (! $scripts_trie || $txt !~
+ /^ (?: $scripts_trie ) \ (?:$case\ )? LETTER \ \U$lookup_name $/xm);
+ @off = ($-[0], $+[0]);
+ }
}
# Here, the input name has been found; we haven't set up the output,
@@ -653,6 +669,8 @@ sub import
{
shift; ## ignore class name
+ populate_txt() unless $txt;
+
if (not @_) {
carp("'use charnames' needs explicit imports list");
}
@@ -704,15 +722,13 @@ sub import
$^H{charnames_full} = delete $h{':full'} || 0;
$^H{charnames_loose} = delete $h{':loose'} || 0;
$^H{charnames_short} = delete $h{':short'} || 0;
- my @scripts = map { uc quotemeta } keys %h;
+ my @scripts = map { uc quotemeta } grep { /^[^:]/ } @args;
##
## If utf8? warnings are enabled, and some scripts were given,
## see if at least we can find one letter from each script.
##
if (warnings::enabled('utf8') && @scripts) {
- populate_txt() unless $txt;
-
for my $script (@scripts) {
if (not $txt =~ m/^$script (?:CAPITAL |SMALL )?LETTER /m) {
warnings::warn('utf8', "No such script: '$script'");
@@ -740,6 +756,23 @@ sub import
}
}
+ my %letters_by_script = map {
+ $_ => [
+ ($txt =~ m/$_(?: (?:small|capital))? letter (.*)/ig)
+ ]
+ } @scripts;
+ SCRIPTS: foreach my $this_script (@scripts) {
+ my @other_scripts = grep { $_ ne $this_script } @scripts;
+ my @this_script_letters = @{$letters_by_script{$this_script}};
+ my @other_script_letters = map { @{$letters_by_script{$_}} } @other_scripts;
+ foreach my $this_letter (@this_script_letters) {
+ if(grep { $_ eq $this_letter } @other_script_letters) {
+ warn "charnames: some short character names may clash in [".join(', ', sort @scripts)."], for example $this_letter\n";
+ last SCRIPTS;
+ }
+ }
+ }
+
$^H{charnames_scripts} = join "|", @scripts; # Stringifiy them as a trie
} # import
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/attributes.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/attributes.pm
index c60f9406b9..313763c6ac 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/attributes.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/attributes.pm
@@ -1,6 +1,6 @@
package attributes;
-our $VERSION = 0.33;
+our $VERSION = 0.35;
@EXPORT_OK = qw(get reftype);
@EXPORT = ();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dll
index 8c628f646f..64d043e3f7 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.pdb
new file mode 100755
index 0000000000..d827e4bfb7
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
index 21e46eafce..3254c1ce75 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.pdb
new file mode 100755
index 0000000000..0fc55eb494
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
index ce18a9c922..636a123e3f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.pdb
new file mode 100755
index 0000000000..1207555d93
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
index f374b3f41c..0833f87b89 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.pdb
new file mode 100755
index 0000000000..0e90bc088a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
index 75099d75aa..a06d9f0f76 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.pdb
new file mode 100755
index 0000000000..95b4194053
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
index 5f9dd69800..65aa5e35b0 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.pdb
new file mode 100755
index 0000000000..ceda68cbc8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
index 8add20eb13..9c09376c5b 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.pdb
new file mode 100755
index 0000000000..0ce81a71c4
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
index cc77b2cdbf..7bc0f7ee4e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.pdb
new file mode 100755
index 0000000000..481a20e546
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
index aedd30ab45..39da0042b9 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.pdb
new file mode 100755
index 0000000000..907de1c679
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
index 369f97160e..53db456509 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.pdb
new file mode 100755
index 0000000000..a6a7e6d50f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
index 09521443c1..8d5da817e7 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.pdb
new file mode 100755
index 0000000000..cca1c0c496
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dll
index 140bc5b810..b2ed28f9f2 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.pdb
new file mode 100755
index 0000000000..3094db1bb8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
index ca42946a30..d8fcd4e89a 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.pdb
new file mode 100755
index 0000000000..cf7af7f21e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
index bf2ff9f37e..41e786dcc2 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.pdb
new file mode 100755
index 0000000000..d75ce57257
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
index 2e7222e411..65ce692b3f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.pdb
new file mode 100755
index 0000000000..53a8890be6
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
index 83cb3cbf32..f0e107d1c1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.pdb
new file mode 100755
index 0000000000..a9159a1329
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
index 62a7f7f2c5..78669b306d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.pdb
new file mode 100755
index 0000000000..3f1a10bfc8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
index 34eb689953..d9fbfb426d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.pdb
new file mode 100755
index 0000000000..518290c0f2
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
index 409fcc085a..10f811154b 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.pdb
new file mode 100755
index 0000000000..6e2a6d367d
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
index 14f7011f4f..c876073ab2 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.pdb
new file mode 100755
index 0000000000..8278804e5b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
index 215325ef0e..9a1bdbb277 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.pdb
new file mode 100755
index 0000000000..21526460fd
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
index 39fead36ef..f7c178f44e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.pdb
new file mode 100755
index 0000000000..6012deaaa0
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
index 8288d4237d..c0b80ed3c1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.pdb
new file mode 100755
index 0000000000..98f31f569e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll
index 28a5501454..a4df9a4876 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.pdb
new file mode 100755
index 0000000000..4acbcdd768
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dll
index 3fe3e68d28..9c83ed3925 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.pdb
new file mode 100755
index 0000000000..f3d32a9f4a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dll
index 242c99371e..6b457ccfcd 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.pdb
new file mode 100755
index 0000000000..8294370847
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
index bdf89b5d83..661e8a6cea 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.pdb
new file mode 100755
index 0000000000..922264173d
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
index d94cdcb8c8..cf11335206 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.pdb
new file mode 100755
index 0000000000..d4ac4ea22c
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
index c6cad72314..5c059bb99f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.pdb
new file mode 100755
index 0000000000..100f345ee8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
index 0ac89d72be..63558f50e4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.pdb
new file mode 100755
index 0000000000..6cf073ad25
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
index fd021ccf1c..755a24f08f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.pdb
new file mode 100755
index 0000000000..342f0b11dd
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
index 2de4d00c68..8f54040a9f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.pdb
new file mode 100755
index 0000000000..30f9cdda10
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
index 4a35545cb5..6b771eebcc 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.pdb
new file mode 100755
index 0000000000..fdf0e01e35
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
index cfde854f2a..014ad3f1ae 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.pdb
new file mode 100755
index 0000000000..db3242326f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
index 5c1691ce4f..bff30ed3f4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.pdb
new file mode 100755
index 0000000000..7f88af9469
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dll
index 42ed349d58..f2e2761265 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.pdb
new file mode 100755
index 0000000000..5a7de73c20
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.dll
index 9040a0304e..2f01f82769 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.pdb
new file mode 100755
index 0000000000..7dc6408771
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
index 4771cb7788..b4b3de6cd5 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.pdb
new file mode 100755
index 0000000000..5338f485c7
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
index cabb5fd995..f566737cde 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.pdb
new file mode 100755
index 0000000000..0896f44657
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
index 265b09b261..560c511967 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.pdb
new file mode 100755
index 0000000000..73745a0f83
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
index da3748b64e..39cc0653ed 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.pdb
new file mode 100755
index 0000000000..313fb90748
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
index aa5e9b7d32..f6053c0f50 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.pdb
new file mode 100755
index 0000000000..5e4cace513
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dll
index c99e486985..e0d4752853 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.pdb
new file mode 100755
index 0000000000..963f66f1db
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
index 445e7a9685..d9ad28921d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.pdb
new file mode 100755
index 0000000000..377c691f24
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.dll
index fd053f9cae..300d80c9ea 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.pdb
new file mode 100755
index 0000000000..a7a74aeba8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.dll
index 7b8fbd178d..1a9db43b9b 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.pdb
new file mode 100755
index 0000000000..ff7094ec7e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dll
index d6f0056954..294144b1c4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.pdb
new file mode 100755
index 0000000000..f296d9a502
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
index aeae6cd301..f63db0b615 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.pdb
new file mode 100755
index 0000000000..398a80b837
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.dll b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.dll
index 399d70f984..eeee0ffccf 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.pdb b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.pdb
new file mode 100755
index 0000000000..3f299c5916
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm
index 0c1b9ac04c..61e894066d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm
@@ -9,7 +9,7 @@ our $VERSION;
# ABSTRACT: Replace functions with ones that succeed or die with lexical scope
BEGIN {
- our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg::Version
+ our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg::Version
}
use constant ERROR_WRONG_FATAL => q{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
index 2be221d410..1ee8a46681 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
# ABSTRACT: Wrapper class for calling subs at end of scope
-our $VERSION = '2.34'; # VERSION
+our $VERSION = '2.36'; # VERSION
# This code schedules the cleanup of subroutines at the end of
# scope. It's directly inspired by chocolateboy's excellent
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
index 8cb1be1fa2..8365b161f4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm
@@ -6,7 +6,7 @@ use warnings;
use autodie::Scope::Guard;
# ABSTRACT: Hook stack for managing scopes via %^H
-our $VERSION = '2.34'; # VERSION
+our $VERSION = '2.36'; # VERSION
my $H_KEY_STEM = __PACKAGE__ . '/guard';
my $COUNTER = 0;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm
index 95de13eb22..9988b59ae1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm
@@ -14,7 +14,7 @@ our @EXPORT_OK = qw(
on_end_of_compile_scope
);
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Internal Utility subroutines for autodie and Fatal
@@ -179,7 +179,7 @@ autodie::Util - Internal Utility subroutines for autodie and Fatal
=head1 DESCRIPTION
-Interal Utilities for autodie and Fatal! This module is not a part of
+Internal Utilities for autodie and Fatal! This module is not a part of
autodie's public API.
This module contains utility subroutines for abstracting away the
@@ -237,7 +237,7 @@ this subroutine.
Given a package name and a hashref mapping names to a subroutine
reference (or C<undef>), this subroutine will install said subroutines
on their given name in that module. If a name mapes to C<undef>, any
-subroutine with that name in the target module will be remove
+subroutine with that name in the target module will be removed
(possibly "unshadowing" a CORE sub of same name).
=head1 AUTHOR
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception.pm
index f4035d28c7..36439d2b81 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception.pm
@@ -6,7 +6,7 @@ use Carp qw(croak);
use Scalar::Util qw(blessed);
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Exceptions from autodying functions.
our $DEBUG = 0;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception/system.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception/system.pm
index afe1617c84..0a1ada68df 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception/system.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception/system.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'autodie::exception';
use Carp qw(croak);
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Exceptions from autodying system().
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/hints.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/hints.pm
index 3778cc75dd..42e6e9b4da 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/hints.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/hints.pm
@@ -5,7 +5,7 @@ use warnings;
use constant PERL58 => ( $] < 5.009 );
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
# ABSTRACT: Provide hints about user subroutines to autodie
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm
index 32aba04fa5..4df6891497 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm
@@ -2,7 +2,7 @@ package autodie::skip;
use strict;
use warnings;
-our $VERSION = '2.34'; # VERSION
+our $VERSION = '2.36'; # 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
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/bigfloat.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/bigfloat.pm
new file mode 100755
index 0000000000..c1b6111ea9
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/bigfloat.pm
@@ -0,0 +1,851 @@
+package bigfloat;
+
+use strict;
+use warnings;
+
+use Carp qw< carp croak >;
+
+our $VERSION = '0.66';
+
+use Exporter;
+our @ISA = qw( Exporter );
+our @EXPORT_OK = qw( PI e bpi bexp hex oct );
+our @EXPORT = qw( inf NaN );
+
+use overload;
+
+my $obj_class = "Math::BigFloat";
+
+##############################################################################
+
+sub accuracy {
+ my $self = shift;
+ $obj_class -> accuracy(@_);
+}
+
+sub precision {
+ my $self = shift;
+ $obj_class -> precision(@_);
+}
+
+sub round_mode {
+ my $self = shift;
+ $obj_class -> round_mode(@_);
+}
+
+sub div_scale {
+ my $self = shift;
+ $obj_class -> div_scale(@_);
+}
+
+sub upgrade {
+ my $self = shift;
+ $obj_class -> upgrade(@_);
+}
+
+sub downgrade {
+ my $self = shift;
+ $obj_class -> downgrade(@_);
+}
+
+sub in_effect {
+ my $level = shift || 0;
+ my $hinthash = (caller($level))[10];
+ $hinthash->{bigfloat};
+}
+
+sub _float_constant {
+ my $str = shift;
+
+ # See if we can convert the input string to a string using a normalized form
+ # consisting of the significand as a signed integer, the character "e", and
+ # the exponent as a signed integer, e.g., "+0e+0", "+314e-2", and "-1e+3".
+
+ my $nstr;
+
+ if (
+ # See if it is an octal number. An octal number like '0377' is also
+ # accepted by the functions parsing decimal and hexadecimal numbers, so
+ # handle octal numbers before decimal and hexadecimal numbers.
+
+ $str =~ /^0(?:[Oo]|_*[0-7])/ and
+ $nstr = Math::BigInt -> oct_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is decimal number.
+
+ $nstr = Math::BigInt -> dec_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a hexadecimal number. Every hexadecimal number has a
+ # prefix, but the functions parsing numbers don't require it, so check
+ # to see if it actually is a hexadecimal number.
+
+ $str =~ /^0[Xx]/ and
+ $nstr = Math::BigInt -> hex_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a binary numbers. Every binary number has a prefix, but
+ # the functions parsing numbers don't require it, so check to see if it
+ # actually is a binary number.
+
+ $str =~ /^0[Bb]/ and
+ $nstr = Math::BigInt -> bin_str_to_dec_flt_str($str))
+ {
+ return $obj_class -> new($nstr);
+ }
+
+ # If we get here, there is a bug in the code above this point.
+
+ warn "Internal error: unable to handle literal constant '$str'.",
+ " This is a bug, so please report this to the module author.";
+ return $obj_class -> bnan();
+}
+
+#############################################################################
+# the following two routines are for "use bigfloat qw/hex oct/;":
+
+use constant LEXICAL => $] > 5.009004;
+
+# Internal function with the same semantics as CORE::hex(). This function is
+# not used directly, but rather by other front-end functions.
+
+sub _hex_core {
+ my $str = shift;
+
+ # Strip off, clean, and parse as much as we can from the beginning.
+
+ my $x;
+ if ($str =~ s/ ^ ( 0? [xX] )? ( [0-9a-fA-F]* ( _ [0-9a-fA-F]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $obj_class -> from_hex($chrs);
+ } else {
+ $x = $obj_class -> bzero();
+ }
+
+ # Warn about trailing garbage.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal hexadecimal digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+}
+
+# Internal function with the same semantics as CORE::oct(). This function is
+# not used directly, but rather by other front-end functions.
+
+sub _oct_core {
+ my $str = shift;
+
+ $str =~ s/^\s*//;
+
+ # Hexadecimal input.
+
+ return _hex_core($str) if $str =~ /^0?[xX]/;
+
+ my $x;
+
+ # Binary input.
+
+ if ($str =~ /^0?[bB]/) {
+
+ # Strip off, clean, and parse as much as we can from the beginning.
+
+ if ($str =~ s/ ^ ( 0? [bB] )? ( [01]* ( _ [01]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $obj_class -> from_bin($chrs);
+ }
+
+ # Warn about trailing garbage.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal binary digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+ }
+
+ # Octal input. Strip off, clean, and parse as much as we can from the
+ # beginning.
+
+ if ($str =~ s/ ^ ( 0? [oO] )? ( [0-7]* ( _ [0-7]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $obj_class -> from_oct($chrs);
+ }
+
+ # Warn about trailing garbage. CORE::oct() only warns about 8 and 9, but it
+ # is more helpful to warn about all invalid digits.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal octal digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+}
+
+{
+ my $proto = LEXICAL ? '_' : ';$';
+ eval '
+sub hex(' . $proto . ') {' . <<'.';
+ my $str = @_ ? $_[0] : $_;
+ _hex_core($str);
+}
+.
+
+ eval '
+sub oct(' . $proto . ') {' . <<'.';
+ my $str = @_ ? $_[0] : $_;
+ _oct_core($str);
+}
+.
+}
+
+#############################################################################
+# the following two routines are for Perl 5.9.4 or later and are lexical
+
+my ($prev_oct, $prev_hex, $overridden);
+
+if (LEXICAL) { eval <<'.' }
+sub _hex(_) {
+ my $hh = (caller 0)[10];
+ return $$hh{bigfloat} ? bigfloat::_hex_core($_[0])
+ : $$hh{bigrat} ? bigrat::_hex_core($_[0])
+ : $$hh{bigint} ? bigint::_hex_core($_[0])
+ : $prev_hex ? &$prev_hex($_[0])
+ : CORE::hex($_[0]);
+}
+
+sub _oct(_) {
+ my $hh = (caller 0)[10];
+ return $$hh{bigfloat} ? bigfloat::_oct_core($_[0])
+ : $$hh{bigrat} ? bigrat::_oct_core($_[0])
+ : $$hh{bigint} ? bigint::_oct_core($_[0])
+ : $prev_oct ? &$prev_oct($_[0])
+ : CORE::oct($_[0]);
+}
+.
+
+sub _override {
+ return if $overridden;
+ $prev_oct = *CORE::GLOBAL::oct{CODE};
+ $prev_hex = *CORE::GLOBAL::hex{CODE};
+ no warnings 'redefine';
+ *CORE::GLOBAL::oct = \&_oct;
+ *CORE::GLOBAL::hex = \&_hex;
+ $overridden = 1;
+}
+
+sub unimport {
+ $^H{bigfloat} = undef; # no longer in effect
+ overload::remove_constant('binary', '', 'float', '', 'integer');
+}
+
+sub import {
+ my $class = shift;
+
+ $^H{bigfloat} = 1; # we are in effect
+ $^H{bigint} = undef;
+ $^H{bigrat} = undef;
+
+ # for newer Perls always override hex() and oct() with a lexical version:
+ if (LEXICAL) {
+ _override();
+ }
+
+ my @import = ();
+ my @a = (); # unrecognized arguments
+ my $ver; # version?
+
+ while (@_) {
+ my $param = shift;
+
+ # Accuracy.
+
+ if ($param =~ /^a(ccuracy)?$/) {
+ push @import, 'accuracy', shift();
+ next;
+ }
+
+ # Precision.
+
+ if ($param =~ /^p(recision)?$/) {
+ push @import, 'precision', shift();
+ next;
+ }
+
+ # Rounding mode.
+
+ if ($param eq 'round_mode') {
+ push @import, 'round_mode', shift();
+ next;
+ }
+
+ # Backend library.
+
+ if ($param =~ /^(l|lib|try|only)$/) {
+ push @import, $param eq 'l' ? 'lib' : $param;
+ push @import, shift() if @_;
+ next;
+ }
+
+ if ($param =~ /^(v|version)$/) {
+ $ver = 1;
+ next;
+ }
+
+ if ($param =~ /^(t|trace)$/) {
+ $obj_class .= "::Trace";
+ eval "require $obj_class";
+ die $@ if $@;
+ next;
+ }
+
+ if ($param =~ /^(PI|e|bexp|bpi|hex|oct)\z/) {
+ push @a, $param;
+ next;
+ }
+
+ croak("Unknown option '$param'");
+ }
+
+ eval "require $obj_class";
+ die $@ if $@;
+ $obj_class -> import(@import);
+
+ if ($ver) {
+ printf "%-31s v%s\n", $class, $class -> VERSION();
+ printf " lib => %-23s v%s\n",
+ $obj_class -> config("lib"), $obj_class -> config("lib_version");
+ printf "%-31s v%s\n", $obj_class, $obj_class -> VERSION();
+ exit;
+ }
+
+ $class -> export_to_level(1, $class, @a); # export inf, NaN, etc.
+
+ overload::constant
+
+ # This takes care each number written as decimal integer and within the
+ # range of what perl can represent as an integer, e.g., "314", but not
+ # "3141592653589793238462643383279502884197169399375105820974944592307".
+
+ integer => sub {
+ #printf "Value '%s' handled by the 'integer' sub.\n", $_[0];
+ my $str = shift;
+ return $obj_class -> new($str);
+ },
+
+ # This takes care of each number written with a decimal point and/or
+ # using floating point notation, e.g., "3.", "3.0", "3.14e+2" (decimal),
+ # "0b1.101p+2" (binary), "03.14p+2" and "0o3.14p+2" (octal), and
+ # "0x3.14p+2" (hexadecimal).
+
+ float => sub {
+ #printf "# Value '%s' handled by the 'float' sub.\n", $_[0];
+ _float_constant(shift);
+ },
+
+ # Take care of each number written as an integer (no decimal point or
+ # exponent) using binary, octal, or hexadecimal notation, e.g., "0b101"
+ # (binary), "0314" and "0o314" (octal), and "0x314" (hexadecimal).
+
+ binary => sub {
+ #printf "# Value '%s' handled by the 'binary' sub.\n", $_[0];
+ my $str = shift;
+ return $obj_class -> new($str) if $str =~ /^0[XxBb]/;
+ $obj_class -> from_oct($str);
+ };
+}
+
+sub inf () { $obj_class -> binf(); }
+sub NaN () { $obj_class -> bnan(); }
+
+# This should depend on the current accuracy/precision. Fixme!
+sub PI () { $obj_class -> new('3.141592653589793238462643383279502884197'); }
+sub e () { $obj_class -> new('2.718281828459045235360287471352662497757'); }
+
+sub bpi ($) {
+ my $up = Math::BigFloat -> upgrade(); # get current upgrading, if any ...
+ Math::BigFloat -> upgrade(undef); # ... and disable
+
+ my $x = Math::BigFloat -> bpi(@_);
+
+ Math::BigFloat -> upgrade($up); # reset the upgrading
+
+ return $x;
+}
+
+sub bexp ($$) {
+ my $up = Math::BigFloat -> upgrade(); # get current upgrading, if any ...
+ Math::BigFloat -> upgrade(undef); # ... and disable
+
+ my $x = Math::BigFloat -> new(shift);
+ $x -> bexp(@_);
+
+ Math::BigFloat -> upgrade($up); # reset the upgrading
+
+ return $x;
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+bigfloat - transparent big floating point number support for Perl
+
+=head1 SYNOPSIS
+
+ use bigfloat;
+
+ $x = 2 + 4.5; # Math::BigFloat 6.5
+ print 2 ** 512 * 0.1; # Math::BigFloat 134...09.6
+ print inf + 42; # Math::BigFloat inf
+ print NaN * 7; # Math::BigFloat NaN
+ print hex("0x1234567890123490"); # Perl v5.10.0 or later
+
+ {
+ no bigfloat;
+ print 2 ** 256; # a normal Perl scalar now
+ }
+
+ # for older Perls, import into current package:
+ use bigfloat qw/hex oct/;
+ print hex("0x1234567890123490");
+ print oct("01234567890123490");
+
+=head1 DESCRIPTION
+
+All numeric literals in the given scope are converted to Math::BigFloat objects.
+
+All operators (including basic math operations) except the range operator C<..>
+are overloaded.
+
+So, the following:
+
+ use bigfloat;
+ $x = 1234;
+
+creates a Math::BigFloat and stores a reference to in $x. This happens
+transparently and behind your back, so to speak.
+
+You can see this with the following:
+
+ perl -Mbigfloat -le 'print ref(1234)'
+
+Since numbers are actually objects, you can call all the usual methods from
+Math::BigFloat on them. This even works to some extent on expressions:
+
+ perl -Mbigfloat -le '$x = 1234; print $x->bdec()'
+ perl -Mbigfloat -le 'print 1234->copy()->binc();'
+ perl -Mbigfloat -le 'print 1234->copy()->binc->badd(6);'
+ perl -Mbigfloat -le 'print +(1234)->copy()->binc()'
+
+(Note that print doesn't do what you expect if the expression starts with
+'(' hence the C<+>)
+
+You can even chain the operations together as usual:
+
+ perl -Mbigfloat -le 'print 1234->copy()->binc->badd(6);'
+ 1241
+
+Please note the following does not work as expected (prints nothing), since
+overloading of '..' is not yet possible in Perl (as of v5.8.0):
+
+ perl -Mbigfloat -le 'for (1..2) { print ref($_); }'
+
+=head2 Options
+
+C<bigfloat> recognizes some options that can be passed while loading it via via
+C<use>. The following options exist:
+
+=over 4
+
+=item a or accuracy
+
+This sets the accuracy for all math operations. The argument must be greater
+than or equal to zero. See Math::BigInt's bround() method for details.
+
+ perl -Mbigfloat=a,50 -le 'print sqrt(20)'
+
+Note that setting precision and accuracy at the same time is not possible.
+
+=item p or precision
+
+This sets the precision for all math operations. The argument can be any
+integer. Negative values mean a fixed number of digits after the dot, while a
+positive value rounds to this digit left from the dot. 0 means round to integer.
+See Math::BigInt's bfround() method for details.
+
+ perl -Mbigfloat=p,-50 -le 'print sqrt(20)'
+
+Note that setting precision and accuracy at the same time is not possible.
+
+=item t or trace
+
+This enables a trace mode and is primarily for debugging.
+
+=item l, lib, try, or only
+
+Load a different math lib, see L<Math Library>.
+
+ perl -Mbigfloat=l,GMP -e 'print 2 ** 512'
+ perl -Mbigfloat=lib,GMP -e 'print 2 ** 512'
+ perl -Mbigfloat=try,GMP -e 'print 2 ** 512'
+ perl -Mbigfloat=only,GMP -e 'print 2 ** 512'
+
+=item hex
+
+Override the built-in hex() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as hex() is lexically overridden in the
+current scope whenever the C<bigfloat> pragma is active.
+
+=item oct
+
+Override the built-in oct() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as oct() is lexically overridden in the
+current scope whenever the C<bigfloat> pragma is active.
+
+=item v or version
+
+this prints out the name and version of the modules and then exits.
+
+ perl -Mbigfloat=v
+
+=back
+
+=head2 Math Library
+
+Math with the numbers is done (by default) by a backend library module called
+Math::BigInt::Calc. The default is equivalent to saying:
+
+ use bigfloat lib => 'Calc';
+
+you can change this by using:
+
+ use bigfloat lib => 'GMP';
+
+The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar,
+and if this also fails, revert to Math::BigInt::Calc:
+
+ use bigfloat lib => 'Foo,Math::BigInt::Bar';
+
+Using c<lib> warns if none of the specified libraries can be found and
+L<Math::BigInt> fell back to one of the default libraries. To suppress this
+warning, use c<try> instead:
+
+ use bigfloat try => 'GMP';
+
+If you want the code to die instead of falling back, use C<only> instead:
+
+ use bigfloat only => 'GMP';
+
+Please see respective module documentation for further details.
+
+=head2 Method calls
+
+Since all numbers are now objects, you can use all methods that are part of the
+Math::BigFloat API.
+
+But a warning is in order. When using the following to make a copy of a number,
+only a shallow copy will be made.
+
+ $x = 9; $y = $x;
+ $x = $y = 7;
+
+Using the copy or the original with overloaded math is okay, e.g., the following
+work:
+
+ $x = 9; $y = $x;
+ print $x + 1, " ", $y,"\n"; # prints 10 9
+
+but calling any method that modifies the number directly will result in B<both>
+the original and the copy being destroyed:
+
+ $x = 9; $y = $x;
+ print $x->badd(1), " ", $y,"\n"; # prints 10 10
+
+ $x = 9; $y = $x;
+ print $x->binc(1), " ", $y,"\n"; # prints 10 10
+
+ $x = 9; $y = $x;
+ print $x->bmul(2), " ", $y,"\n"; # prints 18 18
+
+Using methods that do not modify, but test that the contents works:
+
+ $x = 9; $y = $x;
+ $z = 9 if $x->is_zero(); # works fine
+
+See the documentation about the copy constructor and C<=> in overload, as well
+as the documentation in Math::BigFloat for further details.
+
+=head2 Methods
+
+=over 4
+
+=item inf()
+
+A shortcut to return Math::BigFloat->binf(). Useful because Perl does not always
+handle bareword C<inf> properly.
+
+=item NaN()
+
+A shortcut to return Math::BigFloat->bnan(). Useful because Perl does not always
+handle bareword C<NaN> properly.
+
+=item e
+
+ # perl -Mbigfloat=e -wle 'print e'
+
+Returns Euler's number C<e>, aka exp(1)
+
+=item PI
+
+ # perl -Mbigfloat=PI -wle 'print PI'
+
+Returns PI.
+
+=item bexp()
+
+ bexp($power, $accuracy);
+
+Returns Euler's number C<e> raised to the appropriate power, to the wanted
+accuracy.
+
+Example:
+
+ # perl -Mbigfloat=bexp -wle 'print bexp(1,80)'
+
+=item bpi()
+
+ bpi($accuracy);
+
+Returns PI to the wanted accuracy.
+
+Example:
+
+ # perl -Mbigfloat=bpi -wle 'print bpi(80)'
+
+=item accuracy()
+
+Set or get the accuracy.
+
+=item precision()
+
+Set or get the precision.
+
+=item round_mode()
+
+Set or get the rounding mode.
+
+=item div_scale()
+
+Set or get the division scale.
+
+=item upgrade()
+
+Set or get the class that the downgrade class upgrades to, if any. Set the
+upgrade class to C<undef> to disable upgrading.
+
+Upgrading is disabled by default.
+
+=item downgrade()
+
+Set or get the class that the upgrade class downgrades to, if any. Set the
+downgrade class to C<undef> to disable upgrading.
+
+Downgrading is disabled by default.
+
+=item in_effect()
+
+ use bigfloat;
+
+ print "in effect\n" if bigfloat::in_effect; # true
+ {
+ no bigfloat;
+ print "in effect\n" if bigfloat::in_effect; # false
+ }
+
+Returns true or false if C<bigfloat> is in effect in the current scope.
+
+This method only works on Perl v5.9.4 or later.
+
+=back
+
+=head1 CAVEATS
+
+=over 4
+
+=item Hexadecimal, octal, and binary floating point literals
+
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result.
+
+=item Operator vs literal overloading
+
+C<bigrat> works by overloading handling of integer and floating point literals,
+converting them to L<Math::BigRat> objects.
+
+This means that arithmetic involving only string values or string literals are
+performed using Perl's built-in operators.
+
+For example:
+
+ use bigrat;
+ my $x = "900000000000000009";
+ my $y = "900000000000000007";
+ print $x - $y;
+
+outputs C<0> on default 32-bit builds, since C<bigfloat> never sees the string
+literals. To ensure the expression is all treated as C<Math::BigFloat> 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 ranges
+with C<bigfloat> endpoints, nor is the iterator variable a C<Math::BigFloat>.
+
+ use 5.010;
+ for my $i (12..13) {
+ for my $j (20..21) {
+ say $i ** $j; # produces a floating-point number,
+ # not an object
+ }
+ }
+
+=item in_effect()
+
+This method only works on Perl v5.9.4 or later.
+
+=item hex()/oct()
+
+C<bigfloat> overrides these routines with versions that can also handle big
+integer values. Under Perl prior to version v5.9.4, however, this will not
+happen unless you specifically ask for it with the two import tags "hex" and
+"oct" - and then it will be global and cannot be disabled inside a scope with
+C<no bigfloat>:
+
+ use bigfloat qw/hex oct/;
+
+ print hex("0x1234567890123456");
+ {
+ no bigfloat;
+ print hex("0x1234567890123456");
+ }
+
+The second call to hex() will warn about a non-portable constant.
+
+Compare this to:
+
+ use bigfloat;
+
+ # will warn only under Perl older than v5.9.4
+ print hex("0x1234567890123456");
+
+=back
+
+=head1 EXAMPLES
+
+Some cool command line examples to impress the Python crowd ;)
+
+ perl -Mbigfloat -le 'print sqrt(33)'
+ perl -Mbigfloat -le 'print 2**255'
+ perl -Mbigfloat -le 'print 4.5+2**255'
+ perl -Mbigfloat -le 'print 3/7 + 5/7 + 8/3'
+ perl -Mbigfloat -le 'print 123->is_odd()'
+ perl -Mbigfloat -le 'print log(2)'
+ perl -Mbigfloat -le 'print exp(1)'
+ perl -Mbigfloat -le 'print 2 ** 0.5'
+ perl -Mbigfloat=a,65 -le 'print 2 ** 0.2'
+ perl -Mbigfloat=l,GMP -le 'print 7 ** 7777'
+
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-bignum at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=bignum> (requires login).
+We will be notified, and then you'll automatically be notified of
+progress on your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bigfloat
+
+You can also look for information at:
+
+=over 4
+
+=item * GitHub
+
+L<https://github.com/pjacklam/p5-bignum>
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Dist/Display.html?Name=bignum>
+
+=item * MetaCPAN
+
+L<https://metacpan.org/release/bignum>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=bignum>
+
+=item * CPAN Ratings
+
+L<https://cpanratings.perl.org/dist/bignum>
+
+=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<bigint> and L<bigrat>.
+
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+
+=item *
+
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.comE<gt>, 2014-.
+
+=back
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm
index 8d7048b592..d5038f42a0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm
@@ -1,10 +1,11 @@
package bigint;
-use 5.010;
use strict;
use warnings;
-our $VERSION = '0.51';
+use Carp qw< carp croak >;
+
+our $VERSION = '0.66';
use Exporter;
our @ISA = qw( Exporter );
@@ -13,99 +14,106 @@ our @EXPORT = qw( inf NaN );
use overload;
-##############################################################################
+my $obj_class = "Math::BigInt";
-# These are all alike, and thus faked by AUTOLOAD
-
-my @faked = qw/round_mode accuracy precision div_scale/;
-our ($AUTOLOAD, $_lite); # _lite for testsuite
-
-sub AUTOLOAD {
- my $name = $AUTOLOAD;
-
- $name =~ s/.*:://; # split package
- no strict 'refs';
- foreach my $n (@faked) {
- if ($n eq $name) {
- *{"bigint::$name"} =
- sub {
- my $self = shift;
- no strict 'refs';
- if (defined $_[0]) {
- return Math::BigInt->$name($_[0]);
- }
- return Math::BigInt->$name();
- };
- return &$name;
- }
- }
+##############################################################################
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("Can't call bigint\-\>$name, not a valid method");
+sub accuracy {
+ my $self = shift;
+ $obj_class -> accuracy(@_);
}
-sub upgrade {
- $Math::BigInt::upgrade;
+sub precision {
+ my $self = shift;
+ $obj_class -> precision(@_);
}
-sub _binary_constant {
- # this takes a binary/hexadecimal/octal constant string and returns it
- # as string suitable for new. Basically it converts octal to decimal, and
- # passes every thing else unmodified back.
- my $string = shift;
+sub round_mode {
+ my $self = shift;
+ $obj_class -> round_mode(@_);
+}
- return Math::BigInt->new($string) if $string =~ /^0[bx]/;
+sub div_scale {
+ my $self = shift;
+ $obj_class -> div_scale(@_);
+}
- # so it must be an octal constant
- Math::BigInt->from_oct($string);
+sub in_effect {
+ my $level = shift || 0;
+ my $hinthash = (caller($level))[10];
+ $hinthash->{bigint};
}
sub _float_constant {
- # this takes a floating point constant string and returns it truncated to
- # integer. For instance, '4.5' => '4', '1.234e2' => '123' etc
- my $float = shift;
-
- # some simple cases first
- return $float if ($float =~ /^[+-]?[0-9]+$/); # '+123','-1','0' etc
- return $float
- if ($float =~ /^[+-]?[0-9]+\.?[eE]\+?[0-9]+$/); # 123e2, 123.e+2
- return '0' if ($float =~ /^[+-]?[0]*\.[0-9]+$/); # .2, 0.2, -.1
- if ($float =~ /^[+-]?[0-9]+\.[0-9]*$/) { # 1., 1.23, -1.2 etc
- $float =~ s/\..*//;
- return $float;
- }
- my ($mis, $miv, $mfv, $es, $ev) = Math::BigInt::_split($float);
- return $float if !defined $mis; # doesn't look like a number to me
- my $ec = int($$ev);
- my $sign = $$mis;
- $sign = '' if $sign eq '+';
- if ($$es eq '-') {
- # ignore fraction part entirely
- if ($ec >= length($$miv)) { # 123.23E-4
- return '0';
+ my $str = shift;
+
+ # We can't pass input directly to new() because of the way it handles the
+ # combination of non-integers with no upgrading. Such cases are by
+ # Math::BigInt returned as NaN, but we truncate to an integer.
+
+ # See if we can convert the input string to a string using a normalized form
+ # consisting of the significand as a signed integer, the character "e", and
+ # the exponent as a signed integer, e.g., "+0e+0", "+314e-2", and "-1e+3".
+
+ my $nstr;
+
+ if (
+ # See if it is an octal number. An octal number like '0377' is also
+ # accepted by the functions parsing decimal and hexadecimal numbers, so
+ # handle octal numbers before decimal and hexadecimal numbers.
+
+ $str =~ /^0(?:[Oo]|_*[0-7])/ and
+ $nstr = Math::BigInt -> oct_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is decimal number.
+
+ $nstr = Math::BigInt -> dec_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a hexadecimal number. Every hexadecimal number has a
+ # prefix, but the functions parsing numbers don't require it, so check
+ # to see if it actually is a hexadecimal number.
+
+ $str =~ /^0[Xx]/ and
+ $nstr = Math::BigInt -> hex_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a binary numbers. Every binary number has a prefix, but
+ # the functions parsing numbers don't require it, so check to see if it
+ # actually is a binary number.
+
+ $str =~ /^0[Bb]/ and
+ $nstr = Math::BigInt -> bin_str_to_dec_flt_str($str))
+ {
+ my $pos = index($nstr, 'e');
+ my $expo_sgn = substr($nstr, $pos + 1, 1);
+ my $sign = substr($nstr, 0, 1);
+ my $mant = substr($nstr, 1, $pos - 1);
+ my $mant_len = CORE::length($mant);
+ my $expo = substr($nstr, $pos + 2);
+
+ if ($expo_sgn eq '-') {
+ if ($mant_len <= $expo) {
+ return $obj_class -> bzero(); # underflow
+ } else {
+ $mant = substr $mant, 0, $mant_len - $expo; # truncate
+ return $obj_class -> new($sign . $mant);
+ }
+ } else {
+ $mant .= "0" x $expo; # pad with zeros
+ return $obj_class -> new($sign . $mant);
}
- return $sign . substr($$miv, 0, length($$miv) - $ec); # 1234.45E-2 = 12
}
- # xE+y
- if ($ec >= length($$mfv)) {
- $ec -= length($$mfv);
- return $sign.$$miv.$$mfv if $ec == 0; # 123.45E+2 => 12345
- return $sign.$$miv.$$mfv.'E'.$ec; # 123.45e+3 => 12345e1
- }
- $mfv = substr($$mfv, 0, $ec);
- $sign.$$miv.$mfv; # 123.45e+1 => 1234
-}
-sub unimport {
- $^H{bigint} = undef; # no longer in effect
- overload::remove_constant('binary', '', 'float', '', 'integer');
-}
+ # If we get here, there is a bug in the code above this point.
-sub in_effect {
- my $level = shift || 0;
- my $hinthash = (caller($level))[10];
- $hinthash->{bigint};
+ warn "Internal error: unable to handle literal constant '$str'.",
+ " This is a bug, so please report this to the module author.";
+ return $obj_class -> bnan();
}
#############################################################################
@@ -122,13 +130,13 @@ sub _hex_core {
# Strip off, clean, and parse as much as we can from the beginning.
my $x;
- if ($str =~ s/ ^ (0?[xX])? ( [0-9a-fA-F]* ( _ [0-9a-fA-F]+ )* ) //x) {
+ if ($str =~ s/ ^ ( 0? [xX] )? ( [0-9a-fA-F]* ( _ [0-9a-fA-F]+ )* ) //x) {
my $chrs = $2;
$chrs =~ tr/_//d;
$chrs = '0' unless CORE::length $chrs;
- $x = Math::BigInt -> from_hex($chrs);
+ $x = $obj_class -> from_hex($chrs);
} else {
- $x = Math::BigInt -> bzero();
+ $x = $obj_class -> bzero();
}
# Warn about trailing garbage.
@@ -162,11 +170,11 @@ sub _oct_core {
# Strip off, clean, and parse as much as we can from the beginning.
- if ($str =~ s/ ^ (0?[bB])? ( [01]* ( _ [01]+ )* ) //x) {
+ if ($str =~ s/ ^ ( 0? [bB] )? ( [01]* ( _ [01]+ )* ) //x) {
my $chrs = $2;
$chrs =~ tr/_//d;
$chrs = '0' unless CORE::length $chrs;
- $x = Math::BigInt -> from_bin($chrs);
+ $x = $obj_class -> from_bin($chrs);
}
# Warn about trailing garbage.
@@ -183,21 +191,20 @@ sub _oct_core {
# Octal input. Strip off, clean, and parse as much as we can from the
# beginning.
- if ($str =~ s/ ^ ( [0-7]* ( _ [0-7]+ )* ) //x) {
- my $chrs = $1;
+ if ($str =~ s/ ^ ( 0? [oO] )? ( [0-7]* ( _ [0-7]+ )* ) //x) {
+ my $chrs = $2;
$chrs =~ tr/_//d;
$chrs = '0' unless CORE::length $chrs;
- $x = Math::BigInt -> from_oct($chrs);
+ $x = $obj_class -> from_oct($chrs);
}
- # Warn about trailing garbage. CORE::oct() only warns about 8 and 9.
+ # Warn about trailing garbage. CORE::oct() only warns about 8 and 9, but it
+ # is more helpful to warn about all invalid digits.
if (CORE::length($str)) {
- my $chr = substr($str, 0, 1);
- if ($chr eq '8' || $chr eq '9') {
- require Carp;
- Carp::carp(sprintf("Illegal octal digit '%s' ignored", $chr));
- }
+ require Carp;
+ Carp::carp(sprintf("Illegal octal digit '%s' ignored",
+ substr($str, 0, 1)));
}
return $x;
@@ -228,16 +235,20 @@ my ($prev_oct, $prev_hex, $overridden);
if (LEXICAL) { eval <<'.' }
sub _hex(_) {
my $hh = (caller 0)[10];
- return $prev_hex ? &$prev_hex($_[0]) : CORE::hex($_[0])
- unless $$hh{bigint}||$$hh{bignum}||$$hh{bigrat};
- _hex_core($_[0]);
+ return $$hh{bigint} ? bigint::_hex_core($_[0])
+ : $$hh{bigfloat} ? bigfloat::_hex_core($_[0])
+ : $$hh{bigrat} ? bigrat::_hex_core($_[0])
+ : $prev_hex ? &$prev_hex($_[0])
+ : CORE::hex($_[0]);
}
sub _oct(_) {
my $hh = (caller 0)[10];
- return $prev_oct ? &$prev_oct($_[0]) : CORE::oct($_[0])
- unless $$hh{bigint}||$$hh{bignum}||$$hh{bigrat};
- _oct_core($_[0]);
+ return $$hh{bigint} ? bigint::_oct_core($_[0])
+ : $$hh{bigfloat} ? bigfloat::_oct_core($_[0])
+ : $$hh{bigrat} ? bigrat::_oct_core($_[0])
+ : $prev_oct ? &$prev_oct($_[0])
+ : CORE::oct($_[0]);
}
.
@@ -248,128 +259,141 @@ sub _override {
no warnings 'redefine';
*CORE::GLOBAL::oct = \&_oct;
*CORE::GLOBAL::hex = \&_hex;
- $overridden++;
+ $overridden = 1;
+}
+
+sub unimport {
+ $^H{bigint} = undef; # no longer in effect
+ overload::remove_constant('binary', '', 'float', '', 'integer');
}
sub import {
- my $self = shift;
+ my $class = shift;
- $^H{bigint} = 1; # we are in effect
+ $^H{bigint} = 1; # we are in effect
+ $^H{bigfloat} = undef;
+ $^H{bigrat} = undef;
# for newer Perls always override hex() and oct() with a lexical version:
if (LEXICAL) {
_override();
}
- # some defaults
- my $lib = '';
- my $lib_kind = 'try';
-
- my @import = (':constant'); # drive it w/ constant
- my @a = @_;
- my $l = scalar @_;
- my $j = 0;
- my ($ver, $trace); # version? trace?
- my ($a, $p); # accuracy, precision
- for (my $i = 0; $i < $l; $i++, $j++) {
- if ($_[$i] =~ /^(l|lib|try|only)$/) {
- # this causes a different low lib to take care...
- $lib_kind = $1;
- $lib_kind = 'lib' if $lib_kind eq 'l';
- $lib = $_[$i + 1] || '';
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
- } elsif ($_[$i] =~ /^(a|accuracy)$/) {
- $a = $_[$i + 1];
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
- } elsif ($_[$i] =~ /^(p|precision)$/) {
- $p = $_[$i + 1];
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
- } elsif ($_[$i] =~ /^(v|version)$/) {
+
+ my @import = ();
+ my @a = (); # unrecognized arguments
+ my $ver; # version? trace?
+
+ while (@_) {
+ my $param = shift;
+
+ # Accuracy.
+
+ if ($param =~ /^a(ccuracy)?$/) {
+ push @import, 'accuracy', shift();
+ next;
+ }
+
+ # Precision.
+
+ if ($param =~ /^p(recision)?$/) {
+ push @import, 'precision', shift();
+ next;
+ }
+
+ # Rounding mode.
+
+ if ($param eq 'round_mode') {
+ push @import, 'round_mode', shift();
+ next;
+ }
+
+ # Backend library.
+
+ if ($param =~ /^(l|lib|try|only)$/) {
+ push @import, $param eq 'l' ? 'lib' : $param;
+ push @import, shift() if @_;
+ next;
+ }
+
+ if ($param =~ /^(v|version)$/) {
$ver = 1;
- splice @a, $j, 1;
- $j--;
- } elsif ($_[$i] =~ /^(t|trace)$/) {
- $trace = 1;
- splice @a, $j, 1;
- $j--;
- } elsif ($_[$i] !~ /^(PI|e|bpi|bexp|hex|oct)\z/) {
- die ("unknown option $_[$i]");
+ next;
}
- }
- my $class;
- $_lite = 0; # using M::BI::L ?
- if ($trace) {
- require Math::BigInt::Trace;
- $class = 'Math::BigInt::Trace';
- } else {
- # see if we can find Math::BigInt::Lite
- if (!defined $a && !defined $p) { # rounding won't work to well
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- if (eval { require Math::BigInt::Lite; 1 }) {
- @import = (); # :constant in Lite, not MBI
- Math::BigInt::Lite->import(':constant');
- $_lite = 1; # signal okay
- }
+
+ if ($param =~ /^(t|trace)$/) {
+ $obj_class .= "::Trace";
+ eval "require $obj_class";
+ die $@ if $@;
+ next;
+ }
+
+ if ($param =~ /^(PI|e|bexp|bpi|hex|oct)\z/) {
+ push @a, $param;
+ next;
}
- require Math::BigInt if $_lite == 0; # not already loaded?
- $class = 'Math::BigInt'; # regardless of MBIL or not
+
+ croak("Unknown option '$param'");
}
- push @import, $lib_kind => $lib if $lib ne '';
- # Math::BigInt::Trace or plain Math::BigInt
- $class->import(@import);
- bigint->accuracy($a) if defined $a;
- bigint->precision($p) if defined $p;
+ eval "require $obj_class";
+ die $@ if $@;
+ $obj_class -> import(@import);
+
if ($ver) {
- print "bigint\t\t\t v$VERSION\n";
- print "Math::BigInt::Lite\t v$Math::BigInt::Lite::VERSION\n" if $_lite;
- print "Math::BigInt\t\t v$Math::BigInt::VERSION";
- my $config = Math::BigInt->config();
- print " lib => $config->{lib} v$config->{lib_version}\n";
+ printf "%-31s v%s\n", $class, $class -> VERSION();
+ printf " lib => %-23s v%s\n",
+ $obj_class -> config("lib"), $obj_class -> config("lib_version");
+ printf "%-31s v%s\n", $obj_class, $obj_class -> VERSION();
exit;
}
- # we take care of floating point constants, since BigFloat isn't available
- # and BigInt doesn't like them:
- overload::constant float =>
- sub {
- Math::BigInt->new(_float_constant(shift));
- };
- # Take care of octal/hexadecimal constants
- overload::constant binary =>
- sub {
- _binary_constant(shift);
- };
- # if another big* was already loaded:
- my ($package) = caller();
+ $class -> export_to_level(1, $class, @a); # export inf, NaN, etc.
- no strict 'refs';
- if (!defined *{"${package}::inf"}) {
- $self->export_to_level(1, $self, @a); # export inf and NaN, e and PI
- }
+ overload::constant
+
+ # This takes care each number written as decimal integer and within the
+ # range of what perl can represent as an integer, e.g., "314", but not
+ # "3141592653589793238462643383279502884197169399375105820974944592307".
+
+ integer => sub {
+ #printf "Value '%s' handled by the 'integer' sub.\n", $_[0];
+ my $str = shift;
+ return $obj_class -> new($str);
+ },
+
+ # This takes care of each number written with a decimal point and/or
+ # using floating point notation, e.g., "3.", "3.0", "3.14e+2" (decimal),
+ # "0b1.101p+2" (binary), "03.14p+2" and "0o3.14p+2" (octal), and
+ # "0x3.14p+2" (hexadecimal).
+
+ float => sub {
+ #printf "# Value '%s' handled by the 'float' sub.\n", $_[0];
+ _float_constant(shift);
+ },
+
+ # Take care of each number written as an integer (no decimal point or
+ # exponent) using binary, octal, or hexadecimal notation, e.g., "0b101"
+ # (binary), "0314" and "0o314" (octal), and "0x314" (hexadecimal).
+
+ binary => sub {
+ #printf "# Value '%s' handled by the 'binary' sub.\n", $_[0];
+ my $str = shift;
+ return $obj_class -> new($str) if $str =~ /^0[XxBb]/;
+ $obj_class -> from_oct($str);
+ };
}
-sub inf () { Math::BigInt->binf(); }
-sub NaN () { Math::BigInt->bnan(); }
+sub inf () { $obj_class -> binf(); }
+sub NaN () { $obj_class -> bnan(); }
+
+sub PI () { $obj_class -> new(3); }
+sub e () { $obj_class -> new(2); }
+
+sub bpi ($) { $obj_class -> new(3); }
-sub PI () { Math::BigInt->new(3); }
-sub e () { Math::BigInt->new(2); }
-sub bpi ($) { Math::BigInt->new(3); }
sub bexp ($$) {
- my $x = Math::BigInt->new($_[0]);
- $x->bexp($_[1]);
+ my $x = $obj_class -> new(shift);
+ $x -> bexp(@_);
}
1;
@@ -380,66 +404,104 @@ __END__
=head1 NAME
-bigint - Transparent BigInteger support for Perl
+bigint - transparent big integer support for Perl
=head1 SYNOPSIS
- use bigint;
+ use bigint;
- $x = 2 + 4.5,"\n"; # BigInt 6
- print 2 ** 512,"\n"; # really is what you think it is
- print inf + 42,"\n"; # inf
- print NaN * 7,"\n"; # NaN
- print hex("0x1234567890123490"),"\n"; # Perl v5.10.0 or later
+ $x = 2 + 4.5; # Math::BigInt 6
+ print 2 ** 512; # Math::BigInt 134...096
+ print inf + 42; # Math::BigInt inf
+ print NaN * 7; # Math::BigInt NaN
+ print hex("0x1234567890123490"); # Perl v5.10.0 or later
- {
- no bigint;
- print 2 ** 256,"\n"; # a normal Perl scalar now
- }
+ {
+ no bigint;
+ print 2 ** 256; # a normal Perl scalar now
+ }
- # Import into current package:
- use bigint qw/hex oct/;
- print hex("0x1234567890123490"),"\n";
- print oct("01234567890123490"),"\n";
+ # for older Perls, import into current package:
+ use bigint qw/hex oct/;
+ print hex("0x1234567890123490");
+ print oct("01234567890123490");
=head1 DESCRIPTION
+All numeric literal in the given scope are converted to Math::BigInt objects.
+Numeric literal that represent non-integers are truncated to an integer. All
+results of expressions are also truncated to integer.
+
All operators (including basic math operations) except the range operator C<..>
-are overloaded. Integer constants are created as proper BigInts.
+are overloaded.
+
+Unlike the L<integer> pragma, the C<bigint> pragma creates integers that are
+only limited in their size by the available memory.
+
+So, the following:
+
+ use bigint;
+ $x = 1234;
+
+creates a Math::BigInt and stores a reference to in $x. This happens
+transparently and behind your back, so to speak.
+
+You can see this with the following:
+
+ perl -Mbigint -le 'print ref(1234)'
+
+Since numbers are actually objects, you can call all the usual methods from
+Math::BigFloat on them. This even works to some extent on expressions:
+
+ perl -Mbigint -le '$x = 1234; print $x->bdec()'
+ perl -Mbigint -le 'print 1234->copy()->binc();'
+ perl -Mbigint -le 'print 1234->copy()->binc->badd(6);'
+ perl -Mbigint -le 'print +(1234)->copy()->binc()'
+
+(Note that print doesn't do what you expect if the expression starts with
+'(' hence the C<+>)
+
+You can even chain the operations together as usual:
-Floating point constants are truncated to integer. All parts and results of
-expressions are also truncated.
+ perl -Mbigint -le 'print 1234->copy()->binc->badd(6);'
+ 1241
-Unlike L<integer>, this pragma creates integer constants that are only
-limited in their size by the available memory and CPU time.
+Please note the following does not work as expected (prints nothing), since
+overloading of '..' is not yet possible in Perl (as of v5.8.0):
+
+ perl -Mbigint -le 'for (1..2) { print ref($_); }'
=head2 use integer vs. use bigint
-There is one small difference between C<use integer> and C<use bigint>: the
-former will not affect assignments to variables and the return value of
-some functions. C<bigint> truncates these results to integer too:
-
- # perl -Minteger -wle 'print 3.2'
- 3.2
- # perl -Minteger -wle 'print 3.2 + 0'
- 3
- # perl -Mbigint -wle 'print 3.2'
- 3
- # perl -Mbigint -wle 'print 3.2 + 0'
- 3
-
- # perl -Mbigint -wle 'print exp(1) + 0'
- 2
- # perl -Mbigint -wle 'print exp(1)'
- 2
- # perl -Minteger -wle 'print exp(1)'
- 2.71828182845905
- # perl -Minteger -wle 'print exp(1) + 0'
- 2
-
-In practice this makes seldom a difference as B<parts and results> of
-expressions will be truncated anyway, but this can, for instance, affect the
-return value of subroutines:
+There are some difference between C<use integer> and C<use bigint>.
+
+Whereas C<use integer> is limited to what can be handled as a Perl scalar, C<use
+bigint> can handle arbitrarily large integers.
+
+Also, C<use integer> does affect assignments to variables and the return value
+of some functions. C<use bigint> truncates these results to integer:
+
+ # perl -Minteger -wle 'print 3.2'
+ 3.2
+ # perl -Minteger -wle 'print 3.2 + 0'
+ 3
+ # perl -Mbigint -wle 'print 3.2'
+ 3
+ # perl -Mbigint -wle 'print 3.2 + 0'
+ 3
+
+ # perl -Mbigint -wle 'print exp(1) + 0'
+ 2
+ # perl -Mbigint -wle 'print exp(1)'
+ 2
+ # perl -Minteger -wle 'print exp(1)'
+ 2.71828182845905
+ # perl -Minteger -wle 'print exp(1) + 0'
+ 2
+
+In practice this seldom makes a difference for small integers as B<parts and
+results> of expressions are truncated anyway, but this can, for instance, affect
+the return value of subroutines:
sub three_integer { use integer; return 3.2; }
sub three_bigint { use bigint; return 3.2; }
@@ -448,168 +510,135 @@ return value of subroutines:
=head2 Options
-bigint recognizes some options that can be passed while loading it via use.
-The options can (currently) be either a single letter form, or the long form.
-The following options exist:
+C<bigint> recognizes some options that can be passed while loading it via
+C<use>. The following options exist:
-=over 2
+=over 4
=item a or accuracy
This sets the accuracy for all math operations. The argument must be greater
-than or equal to zero. See Math::BigInt's bround() function for details.
+than or equal to zero. See Math::BigInt's bround() method for details.
- perl -Mbigint=a,2 -le 'print 12345+1'
+ perl -Mbigint=a,2 -le 'print 12345+1'
Note that setting precision and accuracy at the same time is not possible.
=item p or precision
This sets the precision for all math operations. The argument can be any
-integer. Negative values mean a fixed number of digits after the dot, and
-are <B>ignored</B> since all operations happen in integer space.
-A positive value rounds to this digit left from the dot. 0 or 1 mean round to
-integer and are ignore like negative values.
-
-See Math::BigInt's bfround() function for details.
+integer. Negative values mean a fixed number of digits after the dot, and are
+ignored since all operations happen in integer space. A positive value rounds to
+this digit left from the dot. 0 means round to integer. See Math::BigInt's
+bfround() method for details.
- perl -Mbignum=p,5 -le 'print 123456789+123'
+ perl -mbigint=p,5 -le 'print 123456789+123'
Note that setting precision and accuracy at the same time is not possible.
=item t or trace
-This enables a trace mode and is primarily for debugging bigint or
-Math::BigInt.
-
-=item hex
-
-Override the built-in hex() method with a version that can handle big
-integers. This overrides it by exporting it to the current package. Under
-Perl v5.10.0 and higher, this is not so necessary, as hex() is lexically
-overridden in the current scope whenever the bigint pragma is active.
-
-=item oct
+This enables a trace mode and is primarily for debugging.
-Override the built-in oct() method with a version that can handle big
-integers. This overrides it by exporting it to the current package. Under
-Perl v5.10.0 and higher, this is not so necessary, as oct() is lexically
-overridden in the current scope whenever the bigint pragma is active.
-
-=item l, lib, try or only
+=item l, lib, try, or only
Load a different math lib, see L<Math Library>.
- perl -Mbigint=lib,GMP -e 'print 2 ** 512'
- perl -Mbigint=try,GMP -e 'print 2 ** 512'
- perl -Mbigint=only,GMP -e 'print 2 ** 512'
+ perl -Mbigint=l,GMP -e 'print 2 ** 512'
+ perl -Mbigint=lib,GMP -e 'print 2 ** 512'
+ perl -Mbigint=try,GMP -e 'print 2 ** 512'
+ perl -Mbigint=only,GMP -e 'print 2 ** 512'
+
+=item hex
-Currently there is no way to specify more than one library on the command
-line. This means the following does not work:
+Override the built-in hex() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not necessary, as hex() is lexically overridden in the current
+scope whenever the C<bigint> pragma is active.
- perl -Mbignum=l,GMP,Pari -e 'print 2 ** 512'
+=item oct
-This will be hopefully fixed soon ;)
+Override the built-in oct() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as oct() is lexically overridden in the
+current scope whenever the C<bigint> pragma is active.
=item v or version
-This prints out the name and version of all modules used and then exits.
+this prints out the name and version of the modules and then exits.
- perl -Mbigint=v
+ perl -Mbigint=v
=back
=head2 Math Library
-Math with the numbers is done (by default) by a module called
-Math::BigInt::Calc. This is equivalent to saying:
+Math with the numbers is done (by default) by a backend library module called
+Math::BigInt::Calc. The default is equivalent to saying:
- use bigint lib => 'Calc';
+ use bigint lib => 'Calc';
-You can change this by using:
+you can change this by using:
- use bignum lib => 'GMP';
+ use bigint lib => 'GMP';
-The following would first try to find Math::BigInt::Foo, then
-Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
+The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar,
+and if this also fails, revert to Math::BigInt::Calc:
- use bigint lib => 'Foo,Math::BigInt::Bar';
+ use bigint lib => 'Foo,Math::BigInt::Bar';
-Using C<lib> warns if none of the specified libraries can be found and
-L<Math::BigInt> did fall back to one of the default libraries.
-To suppress this warning, use C<try> instead:
+Using c<lib> warns if none of the specified libraries can be found and
+L<Math::BigInt> fell back to one of the default libraries. To suppress this
+warning, use c<try> instead:
- use bignum try => 'GMP';
+ use bigint try => 'GMP';
If you want the code to die instead of falling back, use C<only> instead:
- use bignum only => 'GMP';
-
-Please see respective module documentation for further details.
-
-=head2 Internal Format
-
-The numbers are stored as objects, and their internals might change at anytime,
-especially between math operations. The objects also might belong to different
-classes, like Math::BigInt, or Math::BigInt::Lite. Mixing them together, even
-with normal scalars is not extraordinary, but normal and expected.
+ use bigint only => 'GMP';
-You should not depend on the internal format, all accesses must go through
-accessor methods. E.g. looking at $x->{sign} is not a good idea since there
-is no guaranty that the object in question has such a hash key, nor is a hash
-underneath at all.
-
-=head2 Sign
-
-The sign is either '+', '-', 'NaN', '+inf' or '-inf'.
-You can access it with the sign() method.
-
-A sign of 'NaN' is used to represent the result when input arguments are not
-numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively
-minus infinity. You will get '+inf' when dividing a positive number by 0, and
-'-inf' when dividing any negative number by 0.
+Please see the respective module documentation for further details.
=head2 Method calls
-Since all numbers are now objects, you can use all functions that are part of
-the BigInt API. You can only use the bxxx() notation, and not the fxxx()
-notation, though.
+Since all numbers are now objects, you can use all methods that are part of the
+Math::BigInt API.
But a warning is in order. When using the following to make a copy of a number,
only a shallow copy will be made.
- $x = 9; $y = $x;
- $x = $y = 7;
+ $x = 9; $y = $x;
+ $x = $y = 7;
-Using the copy or the original with overloaded math is okay, e.g. the
-following work:
+Using the copy or the original with overloaded math is okay, e.g., the following
+work:
- $x = 9; $y = $x;
- print $x + 1, " ", $y,"\n"; # prints 10 9
+ $x = 9; $y = $x;
+ print $x + 1, " ", $y,"\n"; # prints 10 9
-but calling any method that modifies the number directly will result in
-B<both> the original and the copy being destroyed:
+but calling any method that modifies the number directly will result in B<both>
+the original and the copy being destroyed:
- $x = 9; $y = $x;
- print $x->badd(1), " ", $y,"\n"; # prints 10 10
+ $x = 9; $y = $x;
+ print $x->badd(1), " ", $y,"\n"; # prints 10 10
- $x = 9; $y = $x;
- print $x->binc(1), " ", $y,"\n"; # prints 10 10
+ $x = 9; $y = $x;
+ print $x->binc(1), " ", $y,"\n"; # prints 10 10
- $x = 9; $y = $x;
- print $x->bmul(2), " ", $y,"\n"; # prints 18 18
+ $x = 9; $y = $x;
+ print $x->bmul(2), " ", $y,"\n"; # prints 18 18
Using methods that do not modify, but test that the contents works:
- $x = 9; $y = $x;
- $z = 9 if $x->is_zero(); # works fine
+ $x = 9; $y = $x;
+ $z = 9 if $x->is_zero(); # works fine
-See the documentation about the copy constructor and C<=> in overload, as
-well as the documentation in BigInt for further details.
+See the documentation about the copy constructor and C<=> in overload, as well
+as the documentation in Math::BigInt for further details.
=head2 Methods
-=over 2
+=over 4
=item inf()
@@ -623,56 +652,66 @@ handle bareword C<NaN> properly.
=item e
- # perl -Mbigint=e -wle 'print e'
+ # perl -Mbigint=e -wle 'print e'
-Returns Euler's number C<e>, aka exp(1). Note that under bigint, this is
-truncated to an integer, and hence simple '2'.
+Returns Euler's number C<e>, aka exp(1). Note that under C<bigint>, this is
+truncated to an integer, i.e., 2.
=item PI
- # perl -Mbigint=PI -wle 'print PI'
+ # perl -Mbigint=PI -wle 'print PI'
-Returns PI. Note that under bigint, this is truncated to an integer, and hence
-simple '3'.
+Returns PI. Note that under C<bigint>, this is truncated to an integer, i.e., 3.
=item bexp()
- bexp($power,$accuracy);
+ bexp($power, $accuracy);
-Returns Euler's number C<e> raised to the appropriate power, to
-the wanted accuracy.
+Returns Euler's number C<e> raised to the appropriate power, to the wanted
+accuracy.
-Note that under bigint, the result is truncated to an integer.
+Note that under C<bigint>, the result is truncated to an integer.
Example:
- # perl -Mbigint=bexp -wle 'print bexp(1,80)'
+ # perl -Mbigint=bexp -wle 'print bexp(1,80)'
=item bpi()
- bpi($accuracy);
+ bpi($accuracy);
-Returns PI to the wanted accuracy. Note that under bigint, this is truncated
-to an integer, and hence simple '3'.
+Returns PI to the wanted accuracy. Note that under C<bigint>, this is truncated
+to an integer, i.e., 3.
Example:
- # perl -Mbigint=bpi -wle 'print bpi(80)'
+ # perl -Mbigint=bpi -wle 'print bpi(80)'
+
+=item accuracy()
+
+Set or get the accuracy.
+
+=item precision()
+
+Set or get the precision.
+
+=item round_mode()
+
+Set or get the rounding mode.
-=item upgrade()
+=item div_scale()
-Return the class that numbers are upgraded to, is in fact returning
-C<$Math::BigInt::upgrade>.
+Set or get the division scale.
=item in_effect()
- use bigint;
+ use bigint;
- print "in effect\n" if bigint::in_effect; # true
- {
- no bigint;
- print "in effect\n" if bigint::in_effect; # false
- }
+ print "in effect\n" if bigint::in_effect; # true
+ {
+ no bigint;
+ print "in effect\n" if bigint::in_effect; # false
+ }
Returns true or false if C<bigint> is in effect in the current scope.
@@ -682,41 +721,47 @@ This method only works on Perl v5.9.4 or later.
=head1 CAVEATS
-=over 2
+=over 4
+
+=item Hexadecimal, octal, and binary floating point literals
+
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result.
=item Operator vs literal overloading
-C<bigint> works by overloading handling of integer and floating point
-literals, converting them to L<Math::BigInt> objects.
+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.
+This means that arithmetic involving only string values or string literals are
+performed using Perl's built-in operators.
For example:
- use bignum;
+ use bigint;
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:
+outputs 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
+=item Ranges
-Perl does not allow overloading of ranges, so you can neither safely use
-ranges with bigint endpoints, nor is the iterator variable a bigint.
+Perl does not allow overloading of ranges, so you can neither safely use ranges
+with C<bigint> endpoints, nor is the iterator variable a C<Math::BigInt>.
- use 5.010;
- for my $i (12..13) {
- for my $j (20..21) {
- say $i ** $j; # produces a floating-point number,
- # not a big integer
- }
- }
+ use 5.010;
+ for my $i (12..13) {
+ for my $j (20..21) {
+ say $i ** $j; # produces a floating-point number,
+ # not an object
+ }
+ }
=item in_effect()
@@ -724,63 +769,49 @@ This method only works on Perl v5.9.4 or later.
=item hex()/oct()
-C<bigint> overrides these routines with versions that can also handle
-big integer values. Under Perl prior to version v5.9.4, however, this
-will not happen unless you specifically ask for it with the two
-import tags "hex" and "oct" - and then it will be global and cannot be
-disabled inside a scope with "no bigint":
+C<bigint> overrides these routines with versions that can also handle big
+integer values. Under Perl prior to version v5.9.4, however, this will not
+happen unless you specifically ask for it with the two import tags "hex" and
+"oct" - and then it will be global and cannot be disabled inside a scope with
+C<no bigint>:
- use bigint qw/hex oct/;
+ use bigint qw/hex oct/;
+ print hex("0x1234567890123456");
+ {
+ no bigint;
print hex("0x1234567890123456");
- {
- no bigint;
- print hex("0x1234567890123456");
- }
+ }
The second call to hex() will warn about a non-portable constant.
Compare this to:
- use bigint;
+ use bigint;
- # will warn only under Perl older than v5.9.4
- print hex("0x1234567890123456");
+ # will warn only under Perl older than v5.9.4
+ print hex("0x1234567890123456");
=back
-=head1 MODULES USED
-
-C<bigint> is just a thin wrapper around various modules of the Math::BigInt
-family. Think of it as the head of the family, who runs the shop, and orders
-the others to do the work.
-
-The following modules are currently used by bigint:
-
- Math::BigInt::Lite (for speed, and only if it is loadable)
- Math::BigInt
-
=head1 EXAMPLES
Some cool command line examples to impress the Python crowd ;) You might want
-to compare them to the results under -Mbignum or -Mbigrat:
-
- perl -Mbigint -le 'print sqrt(33)'
- perl -Mbigint -le 'print 2*255'
- perl -Mbigint -le 'print 4.5+2*255'
- perl -Mbigint -le 'print 3/7 + 5/7 + 8/3'
- perl -Mbigint -le 'print 123->is_odd()'
- perl -Mbigint -le 'print log(2)'
- perl -Mbigint -le 'print 2 ** 0.5'
- perl -Mbigint=a,65 -le 'print 2 ** 0.2'
- perl -Mbignum=a,65,l,GMP -le 'print 7 ** 7777'
+to compare them to the results under -Mbigfloat or -Mbigrat:
-=head1 BUGS
+ perl -Mbigint -le 'print sqrt(33)'
+ perl -Mbigint -le 'print 2**255'
+ perl -Mbigint -le 'print 4.5+2**255'
+ perl -Mbigint -le 'print 123->is_odd()'
+ perl -Mbigint=l,GMP -le 'print 7 ** 7777'
-For information about bugs and how to report them, see the BUGS section in the
-documentation available with the perldoc command.
+=head1 BUGS
- perldoc bignum
+Please report any bugs or feature requests to
+C<bug-bignum at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=bignum> (requires login).
+We will be notified, and then you'll automatically be notified of
+progress on your bug as I make changes.
=head1 SUPPORT
@@ -788,10 +819,31 @@ You can find documentation for this module with the perldoc command.
perldoc bigint
-For more information, see the SUPPORT section in the documentation available
-with the perldoc command.
+You can also look for information at:
+
+=over 4
+
+=item * GitHub
+
+L<https://github.com/pjacklam/p5-bignum>
- perldoc bignum
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Dist/Display.html?Name=bignum>
+
+=item * MetaCPAN
+
+L<https://metacpan.org/release/bignum>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=bignum>
+
+=item * CPAN Ratings
+
+L<https://cpanratings.perl.org/dist/bignum>
+
+=back
=head1 LICENSE
@@ -815,7 +867,7 @@ L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=item *
-Maintained by Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.comE<gt>, 2014-.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm
index 55300c8273..d738d6dc98 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm
@@ -1,62 +1,60 @@
package bignum;
-use 5.010;
use strict;
use warnings;
-our $VERSION = '0.51';
+use Carp qw< carp croak >;
+
+our $VERSION = '0.66';
use Exporter;
-our @ISA = qw( bigint );
+our @ISA = qw( Exporter );
our @EXPORT_OK = qw( PI e bpi bexp hex oct );
our @EXPORT = qw( inf NaN );
use overload;
-use bigint ();
+
+# Defaults: When a constant is an integer, Inf or NaN, it is converted to an
+# object of class $int_class. When a constant is a finite non-integer, it is
+# converted to an object of class $float_class.
+
+my $int_class = 'Math::BigInt';
+my $float_class = 'Math::BigFloat';
##############################################################################
-BEGIN {
- *inf = \&bigint::inf;
- *NaN = \&bigint::NaN;
- *hex = \&bigint::hex;
- *oct = \&bigint::oct;
+sub accuracy {
+ shift;
+ $int_class -> accuracy(@_);
+ $float_class -> accuracy(@_);
}
-# These are all alike, and thus faked by AUTOLOAD
-
-my @faked = qw/round_mode accuracy precision div_scale/;
-our ($AUTOLOAD, $_lite); # _lite for testsuite
-
-sub AUTOLOAD {
- my $name = $AUTOLOAD;
-
- $name =~ s/.*:://; # split package
- no strict 'refs';
- foreach my $n (@faked) {
- if ($n eq $name) {
- *{"bignum::$name"} =
- sub {
- my $self = shift;
- no strict 'refs';
- if (defined $_[0]) {
- Math::BigInt->$name($_[0]);
- return Math::BigFloat->$name($_[0]);
- }
- return Math::BigInt->$name();
- };
- return &$name;
- }
- }
+sub precision {
+ shift;
+ $int_class -> precision(@_);
+ $float_class -> precision(@_);
+}
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("Can't call bignum\-\>$name, not a valid method");
+sub round_mode {
+ shift;
+ $int_class -> round_mode(@_);
+ $float_class -> round_mode(@_);
}
-sub unimport {
- $^H{bignum} = undef; # no longer in effect
- overload::remove_constant('binary', '', 'float', '', 'integer');
+sub div_scale {
+ shift;
+ $int_class -> div_scale(@_);
+ $float_class -> div_scale(@_);
+}
+
+sub upgrade {
+ shift;
+ $int_class -> upgrade(@_);
+}
+
+sub downgrade {
+ shift;
+ $float_class -> downgrade(@_);
}
sub in_effect {
@@ -65,157 +63,386 @@ sub in_effect {
$hinthash->{bignum};
}
+sub _float_constant {
+ my $str = shift;
+
+ # See if we can convert the input string to a string using a normalized form
+ # consisting of the significand as a signed integer, the character "e", and
+ # the exponent as a signed integer, e.g., "+0e+0", "+314e-2", and "-1e+3".
+
+ my $nstr;
+
+ if (
+ # See if it is an octal number. An octal number like '0377' is also
+ # accepted by the functions parsing decimal and hexadecimal numbers, so
+ # handle octal numbers before decimal and hexadecimal numbers.
+
+ $str =~ /^0(?:[Oo]|_*[0-7])/ and
+ $nstr = Math::BigInt -> oct_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is decimal number.
+
+ $nstr = Math::BigInt -> dec_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a hexadecimal number. Every hexadecimal number has a
+ # prefix, but the functions parsing numbers don't require it, so check
+ # to see if it actually is a hexadecimal number.
+
+ $str =~ /^0[Xx]/ and
+ $nstr = Math::BigInt -> hex_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a binary numbers. Every binary number has a prefix, but
+ # the functions parsing numbers don't require it, so check to see if it
+ # actually is a binary number.
+
+ $str =~ /^0[Bb]/ and
+ $nstr = Math::BigInt -> bin_str_to_dec_flt_str($str))
+ {
+ my $pos = index($nstr, 'e');
+ my $expo_sgn = substr($nstr, $pos + 1, 1);
+ my $sign = substr($nstr, 0, 1);
+ my $mant = substr($nstr, 1, $pos - 1);
+ my $mant_len = CORE::length($mant);
+ my $expo = substr($nstr, $pos + 2);
+
+ # The number is a non-integer if and only if the exponent is negative.
+
+ if ($expo_sgn eq '-') {
+ return $float_class -> new($str);
+
+ my $upgrade = $int_class -> upgrade();
+ return $upgrade -> new($nstr) if defined $upgrade;
+
+ if ($mant_len <= $expo) {
+ return $int_class -> bzero(); # underflow
+ } else {
+ $mant = substr $mant, 0, $mant_len - $expo; # truncate
+ return $int_class -> new($sign . $mant);
+ }
+ } else {
+ $mant .= "0" x $expo; # pad with zeros
+ return $int_class -> new($sign . $mant);
+ }
+ }
+
+ # If we get here, there is a bug in the code above this point.
+
+ warn "Internal error: unable to handle literal constant '$str'.",
+ " This is a bug, so please report this to the module author.";
+ return $int_class -> bnan();
+}
+
+#############################################################################
+# the following two routines are for "use bignum qw/hex oct/;":
+
+use constant LEXICAL => $] > 5.009004;
+
+# Internal function with the same semantics as CORE::hex(). This function is
+# not used directly, but rather by other front-end functions.
+
+sub _hex_core {
+ my $str = shift;
+
+ # Strip off, clean, and parse as much as we can from the beginning.
+
+ my $x;
+ if ($str =~ s/ ^ ( 0? [xX] )? ( [0-9a-fA-F]* ( _ [0-9a-fA-F]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $int_class -> from_hex($chrs);
+ } else {
+ $x = $int_class -> bzero();
+ }
+
+ # Warn about trailing garbage.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal hexadecimal digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+}
+
+# Internal function with the same semantics as CORE::oct(). This function is
+# not used directly, but rather by other front-end functions.
+
+sub _oct_core {
+ my $str = shift;
+
+ $str =~ s/^\s*//;
+
+ # Hexadecimal input.
+
+ return _hex_core($str) if $str =~ /^0?[xX]/;
+
+ my $x;
+
+ # Binary input.
+
+ if ($str =~ /^0?[bB]/) {
+
+ # Strip off, clean, and parse as much as we can from the beginning.
+
+ if ($str =~ s/ ^ ( 0? [bB] )? ( [01]* ( _ [01]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $int_class -> from_bin($chrs);
+ }
+
+ # Warn about trailing garbage.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal binary digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+ }
+
+ # Octal input. Strip off, clean, and parse as much as we can from the
+ # beginning.
+
+ if ($str =~ s/ ^ ( 0? [oO] )? ( [0-7]* ( _ [0-7]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $int_class -> from_oct($chrs);
+ }
+
+ # Warn about trailing garbage. CORE::oct() only warns about 8 and 9, but it
+ # is more helpful to warn about all invalid digits.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal octal digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+}
+
+{
+ my $proto = LEXICAL ? '_' : ';$';
+ eval '
+sub hex(' . $proto . ') {' . <<'.';
+ my $str = @_ ? $_[0] : $_;
+ _hex_core($str);
+}
+.
+
+ eval '
+sub oct(' . $proto . ') {' . <<'.';
+ my $str = @_ ? $_[0] : $_;
+ _oct_core($str);
+}
+.
+}
+
#############################################################################
+# the following two routines are for Perl 5.9.4 or later and are lexical
+
+my ($prev_oct, $prev_hex, $overridden);
+
+if (LEXICAL) { eval <<'.' }
+sub _hex(_) {
+ my $hh = (caller 0)[10];
+ return $$hh{bignum} ? bignum::_hex_core($_[0])
+ : $$hh{bigrat} ? bigrat::_hex_core($_[0])
+ : $$hh{bigint} ? bigint::_hex_core($_[0])
+ : $prev_hex ? &$prev_hex($_[0])
+ : CORE::hex($_[0]);
+}
+
+sub _oct(_) {
+ my $hh = (caller 0)[10];
+ return $$hh{bignum} ? bignum::_oct_core($_[0])
+ : $$hh{bigrat} ? bigrat::_oct_core($_[0])
+ : $$hh{bigint} ? bigint::_oct_core($_[0])
+ : $prev_oct ? &$prev_oct($_[0])
+ : CORE::oct($_[0]);
+}
+.
+
+sub _override {
+ return if $overridden;
+ $prev_oct = *CORE::GLOBAL::oct{CODE};
+ $prev_hex = *CORE::GLOBAL::hex{CODE};
+ no warnings 'redefine';
+ *CORE::GLOBAL::oct = \&_oct;
+ *CORE::GLOBAL::hex = \&_hex;
+ $overridden = 1;
+}
+
+sub unimport {
+ $^H{bignum} = undef; # no longer in effect
+ overload::remove_constant('binary', '', 'float', '', 'integer');
+}
sub import {
- my $self = shift;
+ my $class = shift;
- $^H{bignum} = 1; # we are in effect
+ $^H{bignum} = 1; # we are in effect
+ $^H{bigint} = undef;
+ $^H{bigrat} = undef;
- # for newer Perls override hex() and oct() with a lexical version:
- if ($] > 5.009004) {
- bigint::_override();
+ # for newer Perls always override hex() and oct() with a lexical version:
+ if (LEXICAL) {
+ _override();
}
- # some defaults
- my $lib = '';
- my $lib_kind = 'try';
- my $upgrade = 'Math::BigFloat';
- my $downgrade = 'Math::BigInt';
-
- my @import = (':constant'); # drive it w/ constant
- my @a = @_;
- my $l = scalar @_;
- my $j = 0;
- my ($ver, $trace); # version? trace?
- my ($a, $p); # accuracy, precision
- for (my $i = 0; $i < $l; $i++, $j++) {
- if ($_[$i] eq 'upgrade') {
- # this causes upgrading
- $upgrade = $_[$i + 1]; # or undef to disable
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
- } elsif ($_[$i] eq 'downgrade') {
- # this causes downgrading
- $downgrade = $_[$i + 1]; # or undef to disable
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
- } elsif ($_[$i] =~ /^(l|lib|try|only)$/) {
- # this causes a different low lib to take care...
- $lib_kind = $1;
- $lib_kind = 'lib' if $lib_kind eq 'l';
- $lib = $_[$i + 1] || '';
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
+ my @import = (); # common options
+ my @int_import = (upgrade => $float_class); # int class only options
+ my @flt_import = (downgrade => $int_class); # float class only options
+ my @a = (); # unrecognized arguments
+ my $ver; # display version info?
+
+ while (@_) {
+ my $param = shift;
+
+ # Upgrading.
+
+ if ($param eq 'upgrade') {
+ my $arg = shift;
+ $float_class = $arg if defined $arg;
+ push @int_import, 'upgrade', $arg;
+ next;
+ }
+
+ # Downgrading.
+
+ if ($param eq 'downgrade') {
+ my $arg = shift;
+ $int_class = $arg if defined $arg;
+ push @flt_import, 'downgrade', $arg;
+ next;
}
- elsif ($_[$i] =~ /^(a|accuracy)$/) {
- $a = $_[$i + 1];
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
+
+ # Accuracy.
+
+ if ($param =~ /^a(ccuracy)?$/) {
+ push @import, 'accuracy', shift();
+ next;
}
- elsif ($_[$i] =~ /^(p|precision)$/) {
- $p = $_[$i + 1];
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
+
+ # Precision.
+
+ if ($param =~ /^p(recision)?$/) {
+ push @import, 'precision', shift();
+ next;
}
- elsif ($_[$i] =~ /^(v|version)$/) {
- $ver = 1;
- splice @a, $j, 1;
- $j--;
+
+ # Rounding mode.
+
+ if ($param eq 'round_mode') {
+ push @import, 'round_mode', shift();
+ next;
}
- elsif ($_[$i] =~ /^(t|trace)$/) {
- $trace = 1;
- splice @a, $j, 1;
- $j--;
+
+ # Backend library.
+
+ if ($param =~ /^(l|lib|try|only)$/) {
+ push @import, $param eq 'l' ? 'lib' : $param;
+ push @import, shift() if @_;
+ next;
}
- elsif ($_[$i] !~ /^(PI|e|bexp|bpi|hex|oct)\z/) {
- die ("unknown option $_[$i]");
+
+ if ($param =~ /^(v|version)$/) {
+ $ver = 1;
+ next;
}
- }
- my $class;
- $_lite = 0; # using M::BI::L ?
- if ($trace) {
- require Math::BigInt::Trace;
- $class = 'Math::BigInt::Trace';
- $upgrade = 'Math::BigFloat::Trace';
- }
- else {
- # see if we can find Math::BigInt::Lite
- if (!defined $a && !defined $p) { # rounding won't work to well
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- if (eval { require Math::BigInt::Lite; 1 }) {
- @import = (); # :constant in Lite, not MBI
- Math::BigInt::Lite->import(':constant');
- $_lite = 1; # signal okay
- }
+
+ if ($param =~ /^(PI|e|bexp|bpi|hex|oct)\z/) {
+ push @a, $param;
+ next;
}
- require Math::BigInt if $_lite == 0; # not already loaded?
- $class = 'Math::BigInt'; # regardless of MBIL or not
- }
- push @import, $lib_kind => $lib if $lib ne '';
- # Math::BigInt::Trace or plain Math::BigInt
- $class->import(@import, upgrade => $upgrade);
-
- if ($trace) {
- require Math::BigFloat::Trace;
- $class = 'Math::BigFloat::Trace';
- $downgrade = 'Math::BigInt::Trace';
- }
- else {
- require Math::BigFloat;
- $class = 'Math::BigFloat';
+
+ croak("Unknown option '$param'");
}
- $class->import(':constant', 'downgrade', $downgrade);
- bignum->accuracy($a) if defined $a;
- bignum->precision($p) if defined $p;
+ eval "require $int_class";
+ die $@ if $@;
+ $int_class -> import(@int_import, @import);
+
+ eval "require $float_class";
+ die $@ if $@;
+ $float_class -> import(@flt_import, @import);
+
if ($ver) {
- print "bignum\t\t\t v$VERSION\n";
- print "Math::BigInt::Lite\t v$Math::BigInt::Lite::VERSION\n" if $_lite;
- print "Math::BigInt\t\t v$Math::BigInt::VERSION";
- my $config = Math::BigInt->config();
- print " lib => $config->{lib} v$config->{lib_version}\n";
- print "Math::BigFloat\t\t v$Math::BigFloat::VERSION\n";
+ printf "%-31s v%s\n", $class, $class -> VERSION();
+ printf " lib => %-23s v%s\n",
+ $int_class -> config("lib"), $int_class -> config("lib_version");
+ printf "%-31s v%s\n", $int_class, $int_class -> VERSION();
exit;
}
- # Take care of octal/hexadecimal constants
- overload::constant binary =>
- sub {
- bigint::_binary_constant(shift);
+ $class -> export_to_level(1, $class, @a); # export inf, NaN, etc.
+
+ overload::constant
+
+ # This takes care each number written as decimal integer and within the
+ # range of what perl can represent as an integer, e.g., "314", but not
+ # "3141592653589793238462643383279502884197169399375105820974944592307".
+
+ integer => sub {
+ #printf "Value '%s' handled by the 'integer' sub.\n", $_[0];
+ my $str = shift;
+ return $int_class -> new($str);
+ },
+
+ # This takes care of each number written with a decimal point and/or
+ # using floating point notation, e.g., "3.", "3.0", "3.14e+2" (decimal),
+ # "0b1.101p+2" (binary), "03.14p+2" and "0o3.14p+2" (octal), and
+ # "0x3.14p+2" (hexadecimal).
+
+ float => sub {
+ #printf "# Value '%s' handled by the 'float' sub.\n", $_[0];
+ _float_constant(shift);
+ },
+
+ # Take care of each number written as an integer (no decimal point or
+ # exponent) using binary, octal, or hexadecimal notation, e.g., "0b101"
+ # (binary), "0314" and "0o314" (octal), and "0x314" (hexadecimal).
+
+ binary => sub {
+ #printf "# Value '%s' handled by the 'binary' sub.\n", $_[0];
+ my $str = shift;
+ return $int_class -> new($str) if $str =~ /^0[XxBb]/;
+ $int_class -> from_oct($str);
};
+}
- # if another big* was already loaded:
- my ($package) = caller();
+sub inf () { $int_class -> binf(); }
+sub NaN () { $int_class -> bnan(); }
- no strict 'refs';
- if (!defined *{"${package}::inf"}) {
- $self->export_to_level(1, $self, @a); # export inf and NaN
- }
+# This should depend on the current accuracy/precision. Fixme!
+sub PI () { $float_class -> new('3.141592653589793238462643383279502884197'); }
+sub e () { $float_class -> new('2.718281828459045235360287471352662497757'); }
+
+sub bpi ($) {
+ my $up = Math::BigFloat -> upgrade(); # get current upgrading, if any ...
+ Math::BigFloat -> upgrade(undef); # ... and disable
+ my $x = Math::BigFloat -> bpi(@_);
+ Math::BigFloat -> upgrade($up); # reset the upgrading
+ return $x;
}
-sub PI () { Math::BigFloat->new('3.141592653589793238462643383279502884197'); }
-sub e () { Math::BigFloat->new('2.718281828459045235360287471352662497757'); }
-sub bpi ($) { Math::BigFloat->bpi(@_); }
sub bexp ($$) {
- my $x = Math::BigFloat->new($_[0]);
- $x->bexp($_[1]);
+ my $up = Math::BigFloat -> upgrade(); # get current upgrading, if any ...
+ Math::BigFloat -> upgrade(undef); # ... and disable
+ my $x = Math::BigFloat -> new(shift) -> bexp(@_);
+ Math::BigFloat -> upgrade($up); # reset the upgrading
+ return $x;
}
1;
@@ -226,446 +453,478 @@ __END__
=head1 NAME
-bignum - Transparent BigNumber support for Perl
+bignum - transparent big number support for Perl
=head1 SYNOPSIS
- use bignum;
+ use bignum;
- $x = 2 + 4.5,"\n"; # BigFloat 6.5
- print 2 ** 512 * 0.1,"\n"; # really is what you think it is
- print inf * inf,"\n"; # prints inf
- print NaN * 3,"\n"; # prints NaN
+ $x = 2 + 4.5; # Math::BigFloat 6.5
+ print 2 ** 512 * 0.1; # Math::BigFloat 134...09.6
+ print 2 ** 512; # Math::BigInt 134...096
+ print inf + 42; # Math::BigInt inf
+ print NaN * 7; # Math::BigInt NaN
+ print hex("0x1234567890123490"); # Perl v5.10.0 or later
- {
- no bignum;
- print 2 ** 256,"\n"; # a normal Perl scalar now
- }
+ {
+ no bignum;
+ print 2 ** 256; # a normal Perl scalar now
+ }
- # for older Perls, import into current package:
- use bignum qw/hex oct/;
- print hex("0x1234567890123490"),"\n";
- print oct("01234567890123490"),"\n";
+ # for older Perls, import into current package:
+ use bignum qw/hex oct/;
+ print hex("0x1234567890123490");
+ print oct("01234567890123490");
=head1 DESCRIPTION
-All operators (including basic math operations) are overloaded. Integer and
-floating-point constants are created as proper BigInts or BigFloats,
-respectively.
-
-If you do
-
- use bignum;
+=head2 Literal numeric constants
-at the top of your script, Math::BigFloat and Math::BigInt will be loaded
-and any constant number will be converted to an object (Math::BigFloat for
-floats like 3.1415 and Math::BigInt for integers like 1234).
+By default, every literal integer becomes a Math::BigInt object, and literal
+non-integer becomes a Math::BigFloat object. Whether a numeric literal is
+considered an integer or non-integers depends only on the value of the constant,
+not on how it is represented. For instance, the constants 3.14e2 and 0x1.3ap8
+become Math::BigInt objects, because they both represent the integer value
+decimal 314.
-So, the following line:
+The default C<use bignum;> is equivalent to
- $x = 1234;
+ use bignum downgrade => "Math::BigInt", upgrade => "Math::BigFloat";
-creates actually a Math::BigInt and stores a reference to in $x.
-This happens transparently and behind your back, so to speak.
+The classes used for integers and non-integers can be set at compile time with
+the C<downgrade> and C<upgrade> options, for example
-You can see this with the following:
+ # use Math::BigInt for integers and Math::BigRat for non-integers
+ use bignum upgrade => "Math::BigRat";
- perl -Mbignum -le 'print ref(1234)'
+Note that disabling downgrading and upgrading does not affect how numeric
+literals are converted to objects
-Don't worry if it says Math::BigInt::Lite, bignum and friends will use Lite
-if it is installed since it is faster for some operations. It will be
-automatically upgraded to BigInt whenever necessary:
+ # disable both downgrading and upgrading
+ use bignum downgrade => undef, upgrade => undef;
+ $x = 2.4; # becomes 2.4 as a Math::BigFloat
+ $y = 2; # becomes 2 as a Math::BigInt
- perl -Mbignum -le 'print ref(2**255)'
+=head2 Upgrading and downgrading
-This also means it is a bad idea to check for some specific package, since
-the actual contents of $x might be something unexpected. Due to the
-transparent way of bignum C<ref()> should not be necessary, anyway.
+By default, when the result of a computation is an integer, an Inf, or a NaN,
+the result is downgraded even when all the operands are instances of the upgrade
+class.
-Since Math::BigInt and BigFloat also overload the normal math operations,
-the following line will still work:
+ use bignum;
+ $x = 2.4; # becomes 2.4 as a Math::BigFloat
+ $y = 1.2; # becomes 1.2 as a Math::BigFloat
+ $z = $x / $y; # becomes 2 as a Math::BigInt due to downgrading
- perl -Mbignum -le 'print ref(1234+1234)'
+Equivalently, by default, when the result of a computation is a finite
+non-integer, the result is upgraded even when all the operands are instances of
+the downgrade class.
-Since numbers are actually objects, you can call all the usual methods from
-BigInt/BigFloat on them. This even works to some extent on expressions:
+ use bignum;
+ $x = 7; # becomes 7 as a Math::BigInt
+ $y = 2; # becomes 2 as a Math::BigInt
+ $z = $x / $y; # becomes 3.5 as a Math::BigFloat due to upgrading
- perl -Mbignum -le '$x = 1234; print $x->bdec()'
- perl -Mbignum -le 'print 1234->copy()->binc();'
- perl -Mbignum -le 'print 1234->copy()->binc->badd(6);'
- perl -Mbignum -le 'print +(1234)->copy()->binc()'
+The classes used for downgrading and upgrading can be set at runtime with the
+L</downgrade()> and L</upgrade()> methods, but see L</CAVEATS> below.
-(Note that print doesn't do what you expect if the expression starts with
-'(' hence the C<+>)
+The upgrade and downgrade classes don't have to be Math::BigInt and
+Math::BigFloat. For example, to use Math::BigRat as the upgrade class, use
-You can even chain the operations together as usual:
+ use bignum upgrade => "Math::BigRat";
+ $x = 2; # becomes 2 as a Math::BigInt
+ $y = 3.6; # becomes 18/5 as a Math::BigRat
- perl -Mbignum -le 'print 1234->copy()->binc->badd(6);'
- 1241
+The upgrade and downgrade classes can be modified at runtime
-Under bignum (or bigint or bigrat), Perl will "upgrade" the numbers
-appropriately. This means that:
+ use bignum;
+ $x = 3; # becomes 3 as a Math::BigInt
+ $y = 2; # becomes 2 as a Math::BigInt
+ $z = $x / $y; # becomes 1.5 as a Math::BigFlaot
- perl -Mbignum -le 'print 1234+4.5'
- 1238.5
+ bignum -> upgrade("Math::BigRat");
+ $w = $x / $y; # becomes 3/2 as a Math::BigRat
-will work correctly. These mixed cases don't do always work when using
-Math::BigInt or Math::BigFloat alone, or at least not in the way normal Perl
-scalars work.
+Disabling downgrading doesn't change the fact that literal constant integers are
+converted to the downgrade class, it only prevents downgrading as a result of a
+computation. E.g.,
-If you do want to work with large integers like under C<use integer;>, try
-C<use bigint;>:
+ use bignum downgrade => undef;
+ $x = 2; # becomes 2 as a Math::BigInt
+ $y = 2.4; # becomes 2.4 as a Math::BigFloat
+ $z = 1.2; # becomes 1.2 as a Math::BigFloat
+ $w = $x / $y; # becomes 2 as a Math::BigFloat due to no downgrading
- perl -Mbigint -le 'print 1234.5+4.5'
- 1238
+If you want all numeric literals, both integers and non-integers, to become
+Math::BigFloat objects, use the L<bigfloat> pragma.
-There is also C<use bigrat;> which gives you big rationals:
+Equivalently, disabling upgrading doesn't change the fact that literal constant
+non-integers are converted to the upgrade class, it only prevents upgrading as a
+result of a computation. E.g.,
- perl -Mbigrat -le 'print 1234+4.1'
- 12381/10
+ use bignum upgrade => undef;
+ $x = 2.5; # becomes 2.5 as a Math::BigFloat
+ $y = 7; # becomes 7 as a Math::BigInt
+ $z = 2; # becomes 2 as a Math::BigInt
+ $w = $x / $y; # becomes 3 as a Math::BigInt due to no upgrading
-The entire upgrading/downgrading is still experimental and might not work
-as you expect or may even have bugs. You might get errors like this:
+If you want all numeric literals, both integers and non-integers, to become
+Math::BigInt objects, use the L<bigint> pragma.
- Can't use an undefined value as an ARRAY reference at
- /usr/local/lib/perl5/5.8.0/Math/BigInt/Calc.pm line 864
+You can even do
-This means somewhere a routine got a BigFloat/Lite but expected a BigInt (or
-vice versa) and the upgrade/downgrad path was missing. This is a bug, please
-report it so that we can fix it.
+ use bignum upgrade => "Math::BigRat", upgrade => undef;
-You might consider using just Math::BigInt or Math::BigFloat, since they
-allow you finer control over what get's done in which module/space. For
-instance, simple loop counters will be Math::BigInts under C<use bignum;> and
-this is slower than keeping them as Perl scalars:
+which converts all integer literals to Math::BigInt objects and all non-integer
+literals to Math::BigRat objects. However, when the result of a computation
+involving two Math::BigInt objects results in a non-integer (e.g., 7/2), the
+result will be truncted to a Math::BigInt rather than being upgraded to a
+Math::BigRat, since upgrading is disabled.
- perl -Mbignum -le 'for ($i = 0; $i < 10; $i++) { print ref($i); }'
+=head2 Overloading
-Please note the following does not work as expected (prints nothing), since
-overloading of '..' is not yet possible in Perl (as of v5.8.0):
+Since all numeric literals become objects, you can call all the usual methods
+from Math::BigInt and Math::BigFloat on them. This even works to some extent on
+expressions:
- perl -Mbignum -le 'for (1..2) { print ref($_); }'
+ perl -Mbignum -le '$x = 1234; print $x->bdec()'
+ perl -Mbignum -le 'print 1234->copy()->binc();'
+ perl -Mbignum -le 'print 1234->copy()->binc()->badd(6);'
=head2 Options
-bignum recognizes some options that can be passed while loading it via use.
-The options can (currently) be either a single letter form, or the long form.
-The following options exist:
+C<bignum> recognizes some options that can be passed while loading it via via
+C<use>. The following options exist:
-=over 2
+=over 4
=item a or accuracy
This sets the accuracy for all math operations. The argument must be greater
-than or equal to zero. See Math::BigInt's bround() function for details.
+than or equal to zero. See Math::BigInt's bround() method for details.
- perl -Mbignum=a,50 -le 'print sqrt(20)'
+ perl -Mbignum=a,50 -le 'print sqrt(20)'
Note that setting precision and accuracy at the same time is not possible.
=item p or precision
This sets the precision for all math operations. The argument can be any
-integer. Negative values mean a fixed number of digits after the dot, while
-a positive value rounds to this digit left from the dot. 0 or 1 mean round to
-integer. See Math::BigInt's bfround() function for details.
+integer. Negative values mean a fixed number of digits after the dot, while a
+positive value rounds to this digit left from the dot. 0 means round to integer.
+See Math::BigInt's bfround() method for details.
- perl -Mbignum=p,-50 -le 'print sqrt(20)'
+ perl -Mbignum=p,-50 -le 'print sqrt(20)'
Note that setting precision and accuracy at the same time is not possible.
-=item t or trace
-
-This enables a trace mode and is primarily for debugging bignum or
-Math::BigInt/Math::BigFloat.
-
-=item l or lib
+=item l, lib, try, or only
Load a different math lib, see L<Math Library>.
- perl -Mbignum=l,GMP -e 'print 2 ** 512'
-
-Currently there is no way to specify more than one library on the command
-line. This means the following does not work:
-
- perl -Mbignum=l,GMP,Pari -e 'print 2 ** 512'
-
-This will be hopefully fixed soon ;)
+ perl -Mbignum=l,GMP -e 'print 2 ** 512'
+ perl -Mbignum=lib,GMP -e 'print 2 ** 512'
+ perl -Mbignum=try,GMP -e 'print 2 ** 512'
+ perl -Mbignum=only,GMP -e 'print 2 ** 512'
=item hex
-Override the built-in hex() method with a version that can handle big
-numbers. This overrides it by exporting it to the current package. Under
-Perl v5.10.0 and higher, this is not so necessary, as hex() is lexically
-overridden in the current scope whenever the bignum pragma is active.
+Override the built-in hex() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as hex() is lexically overridden in the
+current scope whenever the C<bignum> pragma is active.
=item oct
-Override the built-in oct() method with a version that can handle big
-numbers. This overrides it by exporting it to the current package. Under
-Perl v5.10.0 and higher, this is not so necessary, as oct() is lexically
-overridden in the current scope whenever the bigint pragma is active.
+Override the built-in oct() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as oct() is lexically overridden in the
+current scope whenever the C<bignum> pragma is active.
=item v or version
-This prints out the name and version of all modules used and then exits.
+this prints out the name and version of the modules and then exits.
- perl -Mbignum=v
+ perl -Mbignum=v
=back
-=head2 Methods
+=head2 Math Library
+
+Math with the numbers is done (by default) by a backend library module called
+Math::BigInt::Calc. The default is equivalent to saying:
+
+ use bignum lib => 'Calc';
+
+you can change this by using:
+
+ use bignum lib => 'GMP';
+
+The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar,
+and if this also fails, revert to Math::BigInt::Calc:
+
+ use bignum lib => 'Foo,Math::BigInt::Bar';
+
+Using c<lib> warns if none of the specified libraries can be found and
+L<Math::BigInt> and L<Math::BigFloat> fell back to one of the default
+libraries. To suppress this warning, use C<try> instead:
+
+ use bignum try => 'GMP';
+
+If you want the code to die instead of falling back, use C<only> instead:
-Beside import() and AUTOLOAD() there are only a few other methods.
+ use bignum only => 'GMP';
-Since all numbers are now objects, you can use all functions that are part of
-the BigInt or BigFloat API. It is wise to use only the bxxx() notation, and not
-the fxxx() notation, though. This makes it possible that the underlying object
-might morph into a different class than BigFloat.
+Please see respective module documentation for further details.
+
+=head2 Method calls
-=head2 Caveats
+Since all numbers are now objects, you can use the methods that are part of the
+Math::BigInt and Math::BigFloat API.
But a warning is in order. When using the following to make a copy of a number,
only a shallow copy will be made.
- $x = 9; $y = $x;
- $x = $y = 7;
+ $x = 9; $y = $x;
+ $x = $y = 7;
-If you want to make a real copy, use the following:
+Using the copy or the original with overloaded math is okay, e.g., the following
+work:
- $y = $x->copy();
+ $x = 9; $y = $x;
+ print $x + 1, " ", $y,"\n"; # prints 10 9
-Using the copy or the original with overloaded math is okay, e.g. the
-following work:
+but calling any method that modifies the number directly will result in B<both>
+the original and the copy being destroyed:
- $x = 9; $y = $x;
- print $x + 1, " ", $y,"\n"; # prints 10 9
+ $x = 9; $y = $x;
+ print $x->badd(1), " ", $y,"\n"; # prints 10 10
-but calling any method that modifies the number directly will result in
-B<both> the original and the copy being destroyed:
+ $x = 9; $y = $x;
+ print $x->binc(1), " ", $y,"\n"; # prints 10 10
- $x = 9; $y = $x;
- print $x->badd(1), " ", $y,"\n"; # prints 10 10
+ $x = 9; $y = $x;
+ print $x->bmul(2), " ", $y,"\n"; # prints 18 18
- $x = 9; $y = $x;
- print $x->binc(1), " ", $y,"\n"; # prints 10 10
+Using methods that do not modify, but test that the contents works:
- $x = 9; $y = $x;
- print $x->bmul(2), " ", $y,"\n"; # prints 18 18
+ $x = 9; $y = $x;
+ $z = 9 if $x->is_zero(); # works fine
-Using methods that do not modify, but test the contents works:
+See the documentation about the copy constructor and C<=> in overload, as well
+as the documentation in Math::BigFloat for further details.
- $x = 9; $y = $x;
- $z = 9 if $x->is_zero(); # works fine
-
-See the documentation about the copy constructor and C<=> in overload, as
-well as the documentation in BigInt for further details.
+=head2 Methods
-=over 2
+=over 4
=item inf()
-A shortcut to return Math::BigInt->binf(). Useful because Perl does not always
+A shortcut to return C<inf> as an object. Useful because Perl does not always
handle bareword C<inf> properly.
=item NaN()
-A shortcut to return Math::BigInt->bnan(). Useful because Perl does not always
+A shortcut to return C<NaN> as an object. Useful because Perl does not always
handle bareword C<NaN> properly.
=item e
- # perl -Mbignum=e -wle 'print e'
+ # perl -Mbignum=e -wle 'print e'
-Returns Euler's number C<e>, aka exp(1).
+Returns Euler's number C<e>, aka exp(1) (= 2.7182818284...).
-=item PI()
+=item PI
- # perl -Mbignum=PI -wle 'print PI'
+ # perl -Mbignum=PI -wle 'print PI'
-Returns PI.
+Returns PI (= 3.1415926532..).
=item bexp()
- bexp($power,$accuracy);
+ bexp($power, $accuracy);
-Returns Euler's number C<e> raised to the appropriate power, to
-the wanted accuracy.
+Returns Euler's number C<e> raised to the appropriate power, to the wanted
+accuracy.
Example:
- # perl -Mbignum=bexp -wle 'print bexp(1,80)'
+ # perl -Mbignum=bexp -wle 'print bexp(1,80)'
=item bpi()
- bpi($accuracy);
+ bpi($accuracy);
Returns PI to the wanted accuracy.
Example:
- # perl -Mbignum=bpi -wle 'print bpi(80)'
+ # perl -Mbignum=bpi -wle 'print bpi(80)'
-=item upgrade()
+=item accuracy()
-Return the class that numbers are upgraded to, is in fact returning
-C<$Math::BigInt::upgrade>.
+Set or get the accuracy.
-=item in_effect()
+=item precision()
- use bignum;
+Set or get the precision.
- print "in effect\n" if bignum::in_effect; # true
- {
- no bignum;
- print "in effect\n" if bignum::in_effect; # false
- }
+=item round_mode()
-Returns true or false if C<bignum> is in effect in the current scope.
+Set or get the rounding mode.
-This method only works on Perl v5.9.4 or later.
+=item div_scale()
-=back
+Set or get the division scale.
-=head2 Math Library
+=item upgrade()
-Math with the numbers is done (by default) by a module called
-Math::BigInt::Calc. This is equivalent to saying:
+Set or get the class that the downgrade class upgrades to, if any. Set the
+upgrade class to C<undef> to disable upgrading. See C</CAVEATS> below.
- use bignum lib => 'Calc';
+=item downgrade()
-You can change this by using:
+Set or get the class that the upgrade class downgrades to, if any. Set the
+downgrade class to C<undef> to disable upgrading. See L</CAVEATS> below.
- use bignum lib => 'GMP';
+=item in_effect()
+
+ use bignum;
-The following would first try to find Math::BigInt::Foo, then
-Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
+ print "in effect\n" if bignum::in_effect; # true
+ {
+ no bignum;
+ print "in effect\n" if bignum::in_effect; # false
+ }
- use bignum lib => 'Foo,Math::BigInt::Bar';
+Returns true or false if C<bignum> is in effect in the current scope.
-Please see respective module documentation for further details.
+This method only works on Perl v5.9.4 or later.
-Using C<lib> warns if none of the specified libraries can be found and
-L<Math::BigInt> did fall back to one of the default libraries.
-To suppress this warning, use C<try> instead:
+=back
- use bignum try => 'GMP';
+=head1 CAVEATS
-If you want the code to die instead of falling back, use C<only> instead:
+=over 4
- use bignum only => 'GMP';
+=item The upgrade() and downgrade() methods
-=head2 INTERNAL FORMAT
+Note that setting both the upgrade and downgrade classes at runtime with the
+L</upgrade()> and L</downgrade()> methods, might not do what you expect:
-The numbers are stored as objects, and their internals might change at anytime,
-especially between math operations. The objects also might belong to different
-classes, like Math::BigInt, or Math::BigFloat. Mixing them together, even
-with normal scalars is not extraordinary, but normal and expected.
+ # Assuming that downgrading and upgrading hasn't been modified so far, so
+ # the downgrade and upgrade classes are Math::BigInt and Math::BigFloat,
+ # respectively, the following sets the upgrade class to Math::BigRat, i.e.,
+ # makes Math::BigInt upgrade to Math::BigRat:
-You should not depend on the internal format, all accesses must go through
-accessor methods. E.g. looking at $x->{sign} is not a bright idea since there
-is no guaranty that the object in question has such a hashkey, nor is a hash
-underneath at all.
+ bignum -> upgrade("Math::BigRat");
-=head2 SIGN
+ # The following sets the downgrade class to Math::BigInt::Lite, i.e., makes
+ # the new upgrade class Math::BigRat downgrade to Math::BigInt::Lite
-The sign is either '+', '-', 'NaN', '+inf' or '-inf' and stored separately.
-You can access it with the sign() method.
+ bignum -> downgrade("Math::BigInt::Lite");
-A sign of 'NaN' is used to represent the result when input arguments are not
-numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively
-minus infinity. You will get '+inf' when dividing a positive number by 0, and
-'-inf' when dividing any negative number by 0.
+ # Note that at this point, it is still Math::BigInt, not Math::BigInt::Lite,
+ # that upgrades to Math::BigRat, so to get Math::BigInt::Lite to upgrade to
+ # Math::BigRat, we need to do the following (again):
-=head1 CAVEATS
+ bignum -> upgrade("Math::BigRat");
-=over 2
+A simpler way to do this at runtime is to use import(),
+
+ bignum -> import(upgrade => "Math::BigRat",
+ downgrade => "Math::BigInt::Lite");
+
+=item Hexadecimal, octal, and binary floating point literals
+
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result.
=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.
+C<bigrat> works by overloading handling of integer and floating point literals,
+converting them to L<Math::BigRat> objects.
-This means that arithmetic involving only string values or string
-literals will be performed using Perl's built-in operators.
+This means that arithmetic involving only string values or string literals are
+performed using Perl's built-in operators.
For example:
- use bignum;
+ 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<BigFloat> objects, use a literal number in the
-expression:
+outputs C<0> on default 32-bit builds, since C<bignum> never sees the string
+literals. To ensure the expression is all treated as C<Math::BigFloat> 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 ranges
+with C<bignum> endpoints, nor is the iterator variable a C<Math::BigFloat>.
+
+ use 5.010;
+ for my $i (12..13) {
+ for my $j (20..21) {
+ say $i ** $j; # produces a floating-point number,
+ # not an object
+ }
+ }
+
=item in_effect()
This method only works on Perl v5.9.4 or later.
=item hex()/oct()
-C<bigint> overrides these routines with versions that can also handle
-big integer values. Under Perl prior to version v5.9.4, however, this
-will not happen unless you specifically ask for it with the two
-import tags "hex" and "oct" - and then it will be global and cannot be
-disabled inside a scope with "no bigint":
+C<bignum> overrides these routines with versions that can also handle big
+integer values. Under Perl prior to version v5.9.4, however, this will not
+happen unless you specifically ask for it with the two import tags "hex" and
+"oct" - and then it will be global and cannot be disabled inside a scope with
+C<no bignum>:
- use bigint qw/hex oct/;
+ use bignum qw/hex oct/;
+ print hex("0x1234567890123456");
+ {
+ no bignum;
print hex("0x1234567890123456");
- {
- no bigint;
- print hex("0x1234567890123456");
- }
+ }
The second call to hex() will warn about a non-portable constant.
Compare this to:
- use bigint;
+ use bignum;
- # will warn only under older than v5.9.4
- print hex("0x1234567890123456");
+ # will warn only under Perl older than v5.9.4
+ print hex("0x1234567890123456");
=back
-=head1 MODULES USED
-
-C<bignum> is just a thin wrapper around various modules of the Math::BigInt
-family. Think of it as the head of the family, who runs the shop, and orders
-the others to do the work.
-
-The following modules are currently used by bignum:
-
- Math::BigInt::Lite (for speed, and only if it is loadable)
- Math::BigInt
- Math::BigFloat
-
=head1 EXAMPLES
Some cool command line examples to impress the Python crowd ;)
- perl -Mbignum -le 'print sqrt(33)'
- perl -Mbignum -le 'print 2*255'
- perl -Mbignum -le 'print 4.5+2*255'
- perl -Mbignum -le 'print 3/7 + 5/7 + 8/3'
- perl -Mbignum -le 'print 123->is_odd()'
- perl -Mbignum -le 'print log(2)'
- perl -Mbignum -le 'print exp(1)'
- perl -Mbignum -le 'print 2 ** 0.5'
- perl -Mbignum=a,65 -le 'print 2 ** 0.2'
- perl -Mbignum=a,65,l,GMP -le 'print 7 ** 7777'
+ perl -Mbignum -le 'print sqrt(33)'
+ perl -Mbignum -le 'print 2**255'
+ perl -Mbignum -le 'print 4.5+2**255'
+ perl -Mbignum -le 'print 3/7 + 5/7 + 8/3'
+ perl -Mbignum -le 'print 123->is_odd()'
+ perl -Mbignum -le 'print log(2)'
+ perl -Mbignum -le 'print exp(1)'
+ perl -Mbignum -le 'print 2 ** 0.5'
+ perl -Mbignum=a,65 -le 'print 2 ** 0.2'
+ perl -Mbignum=l,GMP -le 'print 7 ** 7777'
=head1 BUGS
Please report any bugs or feature requests to
-C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+C<bug-bignum at rt.cpan.org>, or through the web interface at
L<https://rt.cpan.org/Ticket/Create.html?Queue=bignum> (requires login).
We will be notified, and then you'll automatically be notified of
progress on your bug as I make changes.
@@ -680,26 +939,26 @@ You can also look for information at:
=over 4
-=item * RT: CPAN's request tracker
-
-L<https://rt.cpan.org/Public/Dist/Display.html?Name=bignum>
+=item * GitHub
-=item * AnnoCPAN: Annotated CPAN documentation
+L<https://github.com/pjacklam/p5-bignum>
-L<http://annocpan.org/dist/bignum>
-
-=item * CPAN Ratings
+=item * RT: CPAN's request tracker
-L<http://cpanratings.perl.org/dist/bignum>
+L<https://rt.cpan.org/Dist/Display.html?Name=bignum>
-=item * Search CPAN
+=item * MetaCPAN
-L<http://search.cpan.org/dist/bignum/>
+L<https://metacpan.org/release/bignum>
=item * CPAN Testers Matrix
L<http://matrix.cpantesters.org/?dist=bignum>
+=item * CPAN Ratings
+
+L<https://cpanratings.perl.org/dist/bignum>
+
=back
=head1 LICENSE
@@ -724,7 +983,7 @@ L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=item *
-Maintained by Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.comE<gt>, 2014-.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm
index 0a981471b2..8dabb93f11 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm
@@ -1,63 +1,41 @@
package bigrat;
-use 5.010;
use strict;
use warnings;
-our $VERSION = '0.51';
+use Carp qw< carp croak >;
+
+our $VERSION = '0.66';
use Exporter;
-our @ISA = qw( bigint );
+our @ISA = qw( Exporter );
our @EXPORT_OK = qw( PI e bpi bexp hex oct );
our @EXPORT = qw( inf NaN );
use overload;
-use bigint ();
+
+my $obj_class = "Math::BigRat";
##############################################################################
-BEGIN {
- *inf = \&bigint::inf;
- *NaN = \&bigint::NaN;
- *hex = \&bigint::hex;
- *oct = \&bigint::oct;
+sub accuracy {
+ my $self = shift;
+ $obj_class -> accuracy(@_);
}
-# These are all alike, and thus faked by AUTOLOAD
-
-my @faked = qw/round_mode accuracy precision div_scale/;
-our ($AUTOLOAD, $_lite); # _lite for testsuite
-
-sub AUTOLOAD {
- my $name = $AUTOLOAD;
-
- $name =~ s/.*:://; # split package
- no strict 'refs';
- foreach my $n (@faked) {
- if ($n eq $name) {
- *{"bigrat::$name"} =
- sub {
- my $self = shift;
- no strict 'refs';
- if (defined $_[0]) {
- Math::BigInt->$name($_[0]);
- Math::BigFloat->$name($_[0]);
- return Math::BigRat->$name($_[0]);
- }
- return Math::BigInt->$name();
- };
- return &$name;
- }
- }
+sub precision {
+ my $self = shift;
+ $obj_class -> precision(@_);
+}
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("Can't call bigrat\-\>$name, not a valid method");
+sub round_mode {
+ my $self = shift;
+ $obj_class -> round_mode(@_);
}
-sub unimport {
- $^H{bigrat} = undef; # no longer in effect
- overload::remove_constant('binary', '', 'float', '', 'integer');
+sub div_scale {
+ my $self = shift;
+ $obj_class -> div_scale(@_);
}
sub in_effect {
@@ -66,150 +44,346 @@ sub in_effect {
$hinthash->{bigrat};
}
+sub _float_constant {
+ my $str = shift;
+
+ # See if we can convert the input string to a string using a normalized form
+ # consisting of the significand as a signed integer, the character "e", and
+ # the exponent as a signed integer, e.g., "+0e+0", "+314e-2", and "-1e+3".
+
+ my $nstr;
+
+ if (
+ # See if it is an octal number. An octal number like '0377' is also
+ # accepted by the functions parsing decimal and hexadecimal numbers, so
+ # handle octal numbers before decimal and hexadecimal numbers.
+
+ $str =~ /^0(?:[Oo]|_*[0-7])/ and
+ $nstr = Math::BigInt -> oct_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is decimal number.
+
+ $nstr = Math::BigInt -> dec_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a hexadecimal number. Every hexadecimal number has a
+ # prefix, but the functions parsing numbers don't require it, so check
+ # to see if it actually is a hexadecimal number.
+
+ $str =~ /^0[Xx]/ and
+ $nstr = Math::BigInt -> hex_str_to_dec_flt_str($str)
+
+ or
+
+ # See if it is a binary numbers. Every binary number has a prefix, but
+ # the functions parsing numbers don't require it, so check to see if it
+ # actually is a binary number.
+
+ $str =~ /^0[Bb]/ and
+ $nstr = Math::BigInt -> bin_str_to_dec_flt_str($str))
+ {
+ return $obj_class -> new($nstr);
+ }
+
+ # If we get here, there is a bug in the code above this point.
+
+ warn "Internal error: unable to handle literal constant '$str'.",
+ " This is a bug, so please report this to the module author.";
+ return $obj_class -> bnan();
+}
+
#############################################################################
+# the following two routines are for "use bigrat qw/hex oct/;":
-sub import {
- my $self = shift;
+use constant LEXICAL => $] > 5.009004;
+
+# Internal function with the same semantics as CORE::hex(). This function is
+# not used directly, but rather by other front-end functions.
+
+sub _hex_core {
+ my $str = shift;
+
+ # Strip off, clean, and parse as much as we can from the beginning.
+
+ my $x;
+ if ($str =~ s/ ^ ( 0? [xX] )? ( [0-9a-fA-F]* ( _ [0-9a-fA-F]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $obj_class -> from_hex($chrs);
+ } else {
+ $x = $obj_class -> bzero();
+ }
+
+ # Warn about trailing garbage.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal hexadecimal digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
- # see also bignum->import() for additional comments
+ return $x;
+}
+
+# Internal function with the same semantics as CORE::oct(). This function is
+# not used directly, but rather by other front-end functions.
+
+sub _oct_core {
+ my $str = shift;
+
+ $str =~ s/^\s*//;
+
+ # Hexadecimal input.
+
+ return _hex_core($str) if $str =~ /^0?[xX]/;
+
+ my $x;
- $^H{bigrat} = 1; # we are in effect
+ # Binary input.
+
+ if ($str =~ /^0?[bB]/) {
+
+ # Strip off, clean, and parse as much as we can from the beginning.
+
+ if ($str =~ s/ ^ ( 0? [bB] )? ( [01]* ( _ [01]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $obj_class -> from_bin($chrs);
+ }
+
+ # Warn about trailing garbage.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal binary digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+ }
+
+ # Octal input. Strip off, clean, and parse as much as we can from the
+ # beginning.
+
+ if ($str =~ s/ ^ ( 0? [oO] )? ( [0-7]* ( _ [0-7]+ )* ) //x) {
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+ $x = $obj_class -> from_oct($chrs);
+ }
+
+ # Warn about trailing garbage. CORE::oct() only warns about 8 and 9, but it
+ # is more helpful to warn about all invalid digits.
+
+ if (CORE::length($str)) {
+ require Carp;
+ Carp::carp(sprintf("Illegal octal digit '%s' ignored",
+ substr($str, 0, 1)));
+ }
+
+ return $x;
+}
+
+{
+ my $proto = LEXICAL ? '_' : ';$';
+ eval '
+sub hex(' . $proto . ') {' . <<'.';
+ my $str = @_ ? $_[0] : $_;
+ _hex_core($str);
+}
+.
+
+ eval '
+sub oct(' . $proto . ') {' . <<'.';
+ my $str = @_ ? $_[0] : $_;
+ _oct_core($str);
+}
+.
+}
+
+#############################################################################
+# the following two routines are for Perl 5.9.4 or later and are lexical
+
+my ($prev_oct, $prev_hex, $overridden);
+
+if (LEXICAL) { eval <<'.' }
+sub _hex(_) {
+ my $hh = (caller 0)[10];
+ return $$hh{bigrat} ? bigrat::_hex_core($_[0])
+ : $$hh{bigfloat} ? bigfloat::_hex_core($_[0])
+ : $$hh{bigint} ? bigint::_hex_core($_[0])
+ : $prev_hex ? &$prev_hex($_[0])
+ : CORE::hex($_[0]);
+}
+
+sub _oct(_) {
+ my $hh = (caller 0)[10];
+ return $$hh{bigrat} ? bigrat::_oct_core($_[0])
+ : $$hh{bigfloat} ? bigfloat::_oct_core($_[0])
+ : $$hh{bigint} ? bigint::_oct_core($_[0])
+ : $prev_oct ? &$prev_oct($_[0])
+ : CORE::oct($_[0]);
+}
+.
+
+sub _override {
+ return if $overridden;
+ $prev_oct = *CORE::GLOBAL::oct{CODE};
+ $prev_hex = *CORE::GLOBAL::hex{CODE};
+ no warnings 'redefine';
+ *CORE::GLOBAL::oct = \&_oct;
+ *CORE::GLOBAL::hex = \&_hex;
+ $overridden = 1;
+}
+
+sub unimport {
+ $^H{bigrat} = undef; # no longer in effect
+ overload::remove_constant('binary', '', 'float', '', 'integer');
+}
+
+sub import {
+ my $class = shift;
+
+ $^H{bigrat} = 1; # we are in effect
+ $^H{bigint} = undef;
+ $^H{bigfloat} = undef;
# for newer Perls always override hex() and oct() with a lexical version:
- if ($] > 5.009004) {
- bigint::_override();
+ if (LEXICAL) {
+ _override();
}
- # some defaults
- my $lib = '';
- my $lib_kind = 'try';
- my $upgrade = 'Math::BigFloat';
-
- my @import = (':constant'); # drive it w/ constant
- my @a = @_;
- my $l = scalar @_;
- my $j = 0;
- my ($a, $p);
- my ($ver, $trace); # version? trace?
- for (my $i = 0; $i < $l ; $i++, $j++) {
- if ($_[$i] eq 'upgrade') {
- # this causes upgrading
- $upgrade = $_[$i + 1]; # or undef to disable
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
+
+ my @import = ();
+ my @a = (); # unrecognized arguments
+ my $ver; # version?
+
+ while (@_) {
+ my $param = shift;
+
+ # Accuracy.
+
+ if ($param =~ /^a(ccuracy)?$/) {
+ push @import, 'accuracy', shift();
+ next;
}
- elsif ($_[$i] =~ /^(l|lib|try|only)$/) {
- # this causes a different low lib to take care...
- $lib_kind = $1;
- $lib_kind = 'lib' if $lib_kind eq 'l';
- $lib = $_[$i + 1] || '';
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
+
+ # Precision.
+
+ if ($param =~ /^p(recision)?$/) {
+ push @import, 'precision', shift();
+ next;
}
- elsif ($_[$i] =~ /^(a|accuracy)$/) {
- $a = $_[$i + 1];
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
+
+ # Rounding mode.
+
+ if ($param eq 'round_mode') {
+ push @import, 'round_mode', shift();
+ next;
}
- elsif ($_[$i] =~ /^(p|precision)$/) {
- $p = $_[$i + 1];
- my $s = 2;
- $s = 1 if @a - $j < 2; # avoid "can not modify non-existent..."
- splice @a, $j, $s;
- $j -= $s;
- $i++;
+
+ # Backend library.
+
+ if ($param =~ /^(l|lib|try|only)$/) {
+ push @import, $param eq 'l' ? 'lib' : $param;
+ push @import, shift() if @_;
+ next;
}
- elsif ($_[$i] =~ /^(v|version)$/) {
+
+ if ($param =~ /^(v|version)$/) {
$ver = 1;
- splice @a, $j, 1;
- $j--;
+ next;
}
- elsif ($_[$i] =~ /^(t|trace)$/) {
- $trace = 1;
- splice @a, $j, 1;
- $j--;
- }
- elsif ($_[$i] !~ /^(PI|e|bpi|bexp|hex|oct)\z/) {
- die ("unknown option $_[$i]");
+
+ if ($param =~ /^(t|trace)$/) {
+ $obj_class .= "::Trace";
+ eval "require $obj_class";
+ die $@ if $@;
+ next;
}
- }
- my $class;
- $_lite = 0; # using M::BI::L ?
- if ($trace) {
- require Math::BigInt::Trace;
- $class = 'Math::BigInt::Trace';
- $upgrade = 'Math::BigFloat::Trace';
- }
- else {
- # see if we can find Math::BigInt::Lite
- if (!defined $a && !defined $p) { # rounding won't work to well
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- if (eval { require Math::BigInt::Lite; 1 }) {
- @import = (); # :constant in Lite, not MBI
- Math::BigInt::Lite->import(':constant');
- $_lite = 1; # signal okay
- }
+
+ if ($param =~ /^(PI|e|bexp|bpi|hex|oct)\z/) {
+ push @a, $param;
+ next;
}
- require Math::BigInt if $_lite == 0; # not already loaded?
- $class = 'Math::BigInt'; # regardless of MBIL or not
+
+ croak("Unknown option '$param'");
}
- push @import, $lib_kind => $lib if $lib ne '';
- # Math::BigInt::Trace or plain Math::BigInt
- $class->import(@import, upgrade => $upgrade);
- require Math::BigFloat;
- Math::BigFloat->import(upgrade => 'Math::BigRat', ':constant');
- require Math::BigRat;
- Math::BigRat->import(@import);
+ eval "require $obj_class";
+ die $@ if $@;
+ $obj_class -> import(@import);
- bigrat->accuracy($a) if defined $a;
- bigrat->precision($p) if defined $p;
if ($ver) {
- print "bigrat\t\t\t v$VERSION\n";
- print "Math::BigInt::Lite\t v$Math::BigInt::Lite::VERSION\n" if $_lite;
- print "Math::BigInt\t\t v$Math::BigInt::VERSION";
- my $config = Math::BigInt->config();
- print " lib => $config->{lib} v$config->{lib_version}\n";
- print "Math::BigFloat\t\t v$Math::BigFloat::VERSION\n";
- print "Math::BigRat\t\t v$Math::BigRat::VERSION\n";
+ printf "%-31s v%s\n", $class, $class -> VERSION();
+ printf " lib => %-23s v%s\n",
+ $obj_class -> config("lib"), $obj_class -> config("lib_version");
+ printf "%-31s v%s\n", $obj_class, $obj_class -> VERSION();
exit;
}
- # Take care of octal/hexadecimal constants
- overload::constant binary =>
- sub {
- bigint::_binary_constant(shift);
- };
+ $class -> export_to_level(1, $class, @a); # export inf, NaN, etc.
- # if another big* was already loaded:
- my ($package) = caller();
+ overload::constant
- no strict 'refs';
- if (!defined *{"${package}::inf"}) {
- $self->export_to_level(1, $self, @a); # export inf and NaN
- }
+ # This takes care each number written as decimal integer and within the
+ # range of what perl can represent as an integer, e.g., "314", but not
+ # "3141592653589793238462643383279502884197169399375105820974944592307".
+
+ integer => sub {
+ #printf "Value '%s' handled by the 'integer' sub.\n", $_[0];
+ my $str = shift;
+ return $obj_class -> new($str);
+ },
+
+ # This takes care of each number written with a decimal point and/or
+ # using floating point notation, e.g., "3.", "3.0", "3.14e+2" (decimal),
+ # "0b1.101p+2" (binary), "03.14p+2" and "0o3.14p+2" (octal), and
+ # "0x3.14p+2" (hexadecimal).
+
+ float => sub {
+ #printf "# Value '%s' handled by the 'float' sub.\n", $_[0];
+ _float_constant(shift);
+ },
+
+ # Take care of each number written as an integer (no decimal point or
+ # exponent) using binary, octal, or hexadecimal notation, e.g., "0b101"
+ # (binary), "0314" and "0o314" (octal), and "0x314" (hexadecimal).
+
+ binary => sub {
+ #printf "# Value '%s' handled by the 'binary' sub.\n", $_[0];
+ my $str = shift;
+ return $obj_class -> new($str) if $str =~ /^0[XxBb]/;
+ $obj_class -> from_oct($str);
+ };
}
-sub PI () { Math::BigFloat->new('3.141592653589793238462643383279502884197'); }
-sub e () { Math::BigFloat->new('2.718281828459045235360287471352662497757'); }
+sub inf () { $obj_class -> binf(); }
+sub NaN () { $obj_class -> bnan(); }
+
+# This should depend on the current accuracy/precision. Fixme!
+sub PI () { $obj_class -> new('3.141592653589793238462643383279502884197'); }
+sub e () { $obj_class -> new('2.718281828459045235360287471352662497757'); }
sub bpi ($) {
- local $Math::BigFloat::upgrade;
- Math::BigFloat->bpi(@_);
+ my $up = Math::BigFloat -> upgrade(); # get current upgrading, if any ...
+ Math::BigFloat -> upgrade(undef); # ... and disable
+ my $x = Math::BigFloat -> bpi(@_);
+ Math::BigFloat -> upgrade($up); # reset the upgrading
+ return $obj_class -> new($x);
}
sub bexp ($$) {
- local $Math::BigFloat::upgrade;
- my $x = Math::BigFloat->new($_[0]);
- $x->bexp($_[1]);
+ my $up = Math::BigFloat -> upgrade(); # get current upgrading, if any ...
+ Math::BigFloat -> upgrade(undef); # ... and disable
+ my $x = Math::BigFloat -> new(shift);
+ $x -> bexp(@_);
+ Math::BigFloat -> upgrade($up); # reset the upgrading
+ return $obj_class -> new($x);
}
1;
@@ -220,279 +394,291 @@ __END__
=head1 NAME
-bigrat - Transparent BigNumber/BigRational support for Perl
+bigrat - transparent big rational number support for Perl
=head1 SYNOPSIS
- use bigrat;
+ use bigrat;
- print 2 + 4.5,"\n"; # BigFloat 6.5
- print 1/3 + 1/4,"\n"; # produces 7/12
+ print 2 + 4.5; # Math::BigRat 13/2
+ print 1/3 + 1/4; # Math::BigRat 7/12
+ print inf + 42; # Math::BigRat inf
+ print NaN * 7; # Math::BigRat NaN
+ print hex("0x1234567890123490"); # Perl v5.10.0 or later
- {
- no bigrat;
- print 1/3,"\n"; # 0.33333...
- }
+ {
+ no bigrat;
+ print 1/3; # 0.33333...
+ }
- # Import into current package:
- use bigrat qw/hex oct/;
- print hex("0x1234567890123490"),"\n";
- print oct("01234567890123490"),"\n";
+ # for older Perls, import into current package:
+ use bigrat qw/hex oct/;
+ print hex("0x1234567890123490");
+ print oct("01234567890123490");
=head1 DESCRIPTION
-All operators (including basic math operations) are overloaded. Integer and
-floating-point constants are created as proper BigInts or BigFloats,
-respectively.
+All numeric literal in the given scope are converted to Math::BigRat objects.
-Other than L<bignum>, this module upgrades to Math::BigRat, meaning that
-instead of 2.5 you will get 2+1/2 as output.
+All operators (including basic math operations) except the range operator C<..>
+are overloaded.
-=head2 Modules Used
+So, the following:
-C<bigrat> is just a thin wrapper around various modules of the Math::BigInt
-family. Think of it as the head of the family, who runs the shop, and orders
-the others to do the work.
+ use bigrat;
+ $x = 1234;
-The following modules are currently used by bignum:
+creates a Math::BigRat and stores a reference to in $x. This happens
+transparently and behind your back, so to speak.
- Math::BigInt::Lite (for speed, and only if it is loadable)
- Math::BigInt
- Math::BigFloat
- Math::BigRat
+You can see this with the following:
-=head2 Math Library
+ perl -Mbigrat -le 'print ref(1234)'
-Math with the numbers is done (by default) by a module called
-Math::BigInt::Calc. This is equivalent to saying:
+Since numbers are actually objects, you can call all the usual methods from
+Math::BigRat on them. This even works to some extent on expressions:
- use bigrat lib => 'Calc';
+ perl -Mbigrat -le '$x = 1234; print $x->bdec()'
+ perl -Mbigrat -le 'print 1234->copy()->binc();'
+ perl -Mbigrat -le 'print 1234->copy()->binc->badd(6);'
+ perl -Mbigrat -le 'print +(1234)->copy()->binc()'
-You can change this by using:
+(Note that print doesn't do what you expect if the expression starts with
+'(' hence the C<+>)
- use bignum lib => 'GMP';
+You can even chain the operations together as usual:
-The following would first try to find Math::BigInt::Foo, then
-Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
+ perl -Mbigrat -le 'print 1234->copy()->binc->badd(6);'
+ 1241
- use bigrat lib => 'Foo,Math::BigInt::Bar';
+Please note the following does not work as expected (prints nothing), since
+overloading of '..' is not yet possible in Perl (as of v5.8.0):
-Using C<lib> warns if none of the specified libraries can be found and
-L<Math::BigInt> did fall back to one of the default libraries.
-To suppress this warning, use C<try> instead:
+ perl -Mbigrat -le 'for (1..2) { print ref($_); }'
- use bignum try => 'GMP';
+=head2 Options
-If you want the code to die instead of falling back, use C<only> instead:
+C<bigrat> recognizes some options that can be passed while loading it via
+C<use>. The following options exist:
- use bignum only => 'GMP';
+=over 4
-Please see respective module documentation for further details.
+=item a or accuracy
-=head2 Sign
+This sets the accuracy for all math operations. The argument must be greater
+than or equal to zero. See Math::BigInt's bround() method for details.
-The sign is either '+', '-', 'NaN', '+inf' or '-inf'.
+ perl -Mbigrat=a,50 -le 'print sqrt(20)'
-A sign of 'NaN' is used to represent the result when input arguments are not
-numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively
-minus infinity. You will get '+inf' when dividing a positive number by 0, and
-'-inf' when dividing any negative number by 0.
+Note that setting precision and accuracy at the same time is not possible.
-=head2 Methods
+=item p or precision
-Since all numbers are not objects, you can use all functions that are part of
-the BigInt or BigFloat API. It is wise to use only the bxxx() notation, and not
-the fxxx() notation, though. This makes you independent on the fact that the
-underlying object might morph into a different class than BigFloat.
+This sets the precision for all math operations. The argument can be any
+integer. Negative values mean a fixed number of digits after the dot, while a
+positive value rounds to this digit left from the dot. 0 means round to integer.
+See Math::BigInt's bfround() method for details.
-=over 2
+ perl -Mbigrat=p,-50 -le 'print sqrt(20)'
-=item inf()
+Note that setting precision and accuracy at the same time is not possible.
-A shortcut to return Math::BigInt->binf(). Useful because Perl does not always
-handle bareword C<inf> properly.
+=item t or trace
-=item NaN()
+This enables a trace mode and is primarily for debugging.
-A shortcut to return Math::BigInt->bnan(). Useful because Perl does not always
-handle bareword C<NaN> properly.
+=item l, lib, try, or only
-=item e
+Load a different math lib, see L<Math Library>.
- # perl -Mbigrat=e -wle 'print e'
+ perl -Mbigrat=l,GMP -e 'print 2 ** 512'
+ perl -Mbigrat=lib,GMP -e 'print 2 ** 512'
+ perl -Mbigrat=try,GMP -e 'print 2 ** 512'
+ perl -Mbigrat=only,GMP -e 'print 2 ** 512'
-Returns Euler's number C<e>, aka exp(1).
+=item hex
-=item PI
+Override the built-in hex() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as hex() is lexically overridden in the
+current scope whenever the C<bigrat> pragma is active.
- # perl -Mbigrat=PI -wle 'print PI'
+=item oct
-Returns PI.
+Override the built-in oct() method with a version that can handle big numbers.
+This overrides it by exporting it to the current package. Under Perl v5.10.0 and
+higher, this is not so necessary, as oct() is lexically overridden in the
+current scope whenever the C<bigrat> pragma is active.
-=item bexp()
+=item v or version
- bexp($power,$accuracy);
+this prints out the name and version of the modules and then exits.
-Returns Euler's number C<e> raised to the appropriate power, to
-the wanted accuracy.
+ perl -Mbigrat=v
-Example:
+=back
- # perl -Mbigrat=bexp -wle 'print bexp(1,80)'
+=head2 Math Library
-=item bpi()
+Math with the numbers is done (by default) by a backend library module called
+Math::BigInt::Calc. The default is equivalent to saying:
- bpi($accuracy);
+ use bigrat lib => 'Calc';
-Returns PI to the wanted accuracy.
+you can change this by using:
-Example:
+ use bigrat lib => 'GMP';
- # perl -Mbigrat=bpi -wle 'print bpi(80)'
+The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar,
+and if this also fails, revert to Math::BigInt::Calc:
-=item upgrade()
+ use bigrat lib => 'Foo,Math::BigInt::Bar';
-Return the class that numbers are upgraded to, is in fact returning
-C<$Math::BigInt::upgrade>.
+Using c<lib> warns if none of the specified libraries can be found and
+L<Math::BigInt> fell back to one of the default libraries. To suppress this
+warning, use c<try> instead:
-=item in_effect()
+ use bigrat try => 'GMP';
- use bigrat;
+If you want the code to die instead of falling back, use C<only> instead:
- print "in effect\n" if bigrat::in_effect; # true
- {
- no bigrat;
- print "in effect\n" if bigrat::in_effect; # false
- }
+ use bigrat only => 'GMP';
-Returns true or false if C<bigrat> is in effect in the current scope.
+Please see the respective module documentation for further details.
-This method only works on Perl v5.9.4 or later.
+=head2 Method calls
-=back
+Since all numbers are now objects, you can use all methods that are part of the
+Math::BigRat API.
-=head2 MATH LIBRARY
+But a warning is in order. When using the following to make a copy of a number,
+only a shallow copy will be made.
-Math with the numbers is done (by default) by a module called
+ $x = 9; $y = $x;
+ $x = $y = 7;
-=head2 Caveat
+Using the copy or the original with overloaded math is okay, e.g., the following
+work:
-But a warning is in order. When using the following to make a copy of a number,
-only a shallow copy will be made.
+ $x = 9; $y = $x;
+ print $x + 1, " ", $y,"\n"; # prints 10 9
- $x = 9; $y = $x;
- $x = $y = 7;
+but calling any method that modifies the number directly will result in B<both>
+the original and the copy being destroyed:
-If you want to make a real copy, use the following:
+ $x = 9; $y = $x;
+ print $x->badd(1), " ", $y,"\n"; # prints 10 10
- $y = $x->copy();
+ $x = 9; $y = $x;
+ print $x->binc(1), " ", $y,"\n"; # prints 10 10
-Using the copy or the original with overloaded math is okay, e.g. the
-following work:
+ $x = 9; $y = $x;
+ print $x->bmul(2), " ", $y,"\n"; # prints 18 18
- $x = 9; $y = $x;
- print $x + 1, " ", $y,"\n"; # prints 10 9
+Using methods that do not modify, but test that the contents works:
-but calling any method that modifies the number directly will result in
-B<both> the original and the copy being destroyed:
+ $x = 9; $y = $x;
+ $z = 9 if $x->is_zero(); # works fine
- $x = 9; $y = $x;
- print $x->badd(1), " ", $y,"\n"; # prints 10 10
+See the documentation about the copy constructor and C<=> in overload, as well
+as the documentation in Math::BigFloat for further details.
- $x = 9; $y = $x;
- print $x->binc(1), " ", $y,"\n"; # prints 10 10
+=head2 Methods
- $x = 9; $y = $x;
- print $x->bmul(2), " ", $y,"\n"; # prints 18 18
+=over 4
-Using methods that do not modify, but testthe contents works:
+=item inf()
- $x = 9; $y = $x;
- $z = 9 if $x->is_zero(); # works fine
+A shortcut to return Math::BigRat->binf(). Useful because Perl does not always
+handle bareword C<inf> properly.
-See the documentation about the copy constructor and C<=> in overload, as
-well as the documentation in BigInt for further details.
+=item NaN()
-=head2 Options
+A shortcut to return Math::BigRat->bnan(). Useful because Perl does not always
+handle bareword C<NaN> properly.
-bignum recognizes some options that can be passed while loading it via use.
-The options can (currently) be either a single letter form, or the long form.
-The following options exist:
+=item e
-=over 2
+ # perl -Mbigrat=e -wle 'print e'
-=item a or accuracy
+Returns Euler's number C<e>, aka exp(1).
-This sets the accuracy for all math operations. The argument must be greater
-than or equal to zero. See Math::BigInt's bround() function for details.
+=item PI
- perl -Mbigrat=a,50 -le 'print sqrt(20)'
+ # perl -Mbigrat=PI -wle 'print PI'
-Note that setting precision and accuracy at the same time is not possible.
+Returns PI.
-=item p or precision
+=item bexp()
-This sets the precision for all math operations. The argument can be any
-integer. Negative values mean a fixed number of digits after the dot, while
-a positive value rounds to this digit left from the dot. 0 or 1 mean round to
-integer. See Math::BigInt's bfround() function for details.
+ bexp($power, $accuracy);
- perl -Mbigrat=p,-50 -le 'print sqrt(20)'
+Returns Euler's number C<e> raised to the appropriate power, to the wanted
+accuracy.
-Note that setting precision and accuracy at the same time is not possible.
+Example:
-=item t or trace
+ # perl -Mbigrat=bexp -wle 'print bexp(1,80)'
+
+=item bpi()
-This enables a trace mode and is primarily for debugging bignum or
-Math::BigInt/Math::BigFloat.
+ bpi($accuracy);
-=item l or lib
+Returns PI to the wanted accuracy.
-Load a different math lib, see L<MATH LIBRARY>.
+Example:
- perl -Mbigrat=l,GMP -e 'print 2 ** 512'
+ # perl -Mbigrat=bpi -wle 'print bpi(80)'
-Currently there is no way to specify more than one library on the command
-line. This means the following does not work:
+=item accuracy()
- perl -Mbignum=l,GMP,Pari -e 'print 2 ** 512'
+Set or get the accuracy.
-This will be hopefully fixed soon ;)
+=item precision()
-=item hex
+Set or get the precision.
-Override the built-in hex() method with a version that can handle big
-numbers. This overrides it by exporting it to the current package. Under
-Perl v5.10.0 and higher, this is not so necessary, as hex() is lexically
-overridden in the current scope whenever the bigrat pragma is active.
+=item round_mode()
-=item oct
+Set or get the rounding mode.
-Override the built-in oct() method with a version that can handle big
-numbers. This overrides it by exporting it to the current package. Under
-Perl v5.10.0 and higher, this is not so necessary, as oct() is lexically
-overridden in the current scope whenever the bigrat pragma is active.
+=item div_scale()
-=item v or version
+Set or get the division scale.
-This prints out the name and version of all modules used and then exits.
+=item in_effect()
+
+ use bigrat;
+
+ print "in effect\n" if bigrat::in_effect; # true
+ {
+ no bigrat;
+ print "in effect\n" if bigrat::in_effect; # false
+ }
+
+Returns true or false if C<bigrat> is in effect in the current scope.
- perl -Mbigrat=v
+This method only works on Perl v5.9.4 or later.
=back
=head1 CAVEATS
-=over 2
+=over 4
+
+=item Hexadecimal, octal, and binary floating point literals
+
+Perl (and this module) accepts hexadecimal, octal, and binary floating point
+literals, but use them with care with Perl versions before v5.32.0, because some
+versions of Perl silently give the wrong result.
=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.
+C<bigrat> works by overloading handling of integer and floating point literals,
+converting them to L<Math::BigRat> objects.
-This means that arithmetic involving only string values or string
-literals will be performed using Perl's built-in operators.
+This means that arithmetic involving only string values or string literals are
+performed using Perl's built-in operators.
For example:
@@ -501,59 +687,72 @@ For example:
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:
+outputs 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::BigRat> 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 ranges
+with C<bigrat> endpoints, nor is the iterator variable a C<Math::BigRat>.
+
+ use 5.010;
+ for my $i (12..13) {
+ for my $j (20..21) {
+ say $i ** $j; # produces a floating-point number,
+ # not an object
+ }
+ }
+
=item in_effect()
This method only works on Perl v5.9.4 or later.
=item hex()/oct()
-C<bigint> overrides these routines with versions that can also handle
-big integer values. Under Perl prior to version v5.9.4, however, this
-will not happen unless you specifically ask for it with the two
-import tags "hex" and "oct" - and then it will be global and cannot be
-disabled inside a scope with "no bigint":
+C<bigrat> overrides these routines with versions that can also handle big
+integer values. Under Perl prior to version v5.9.4, however, this will not
+happen unless you specifically ask for it with the two import tags "hex" and
+"oct" - and then it will be global and cannot be disabled inside a scope with
+C<no bigrat>:
- use bigint qw/hex oct/;
+ use bigrat qw/hex oct/;
+ print hex("0x1234567890123456");
+ {
+ no bigrat;
print hex("0x1234567890123456");
- {
- no bigint;
- print hex("0x1234567890123456");
- }
+ }
The second call to hex() will warn about a non-portable constant.
Compare this to:
- use bigint;
+ use bigrat;
- # will warn only under Perl older than v5.9.4
- print hex("0x1234567890123456");
+ # will warn only under Perl older than v5.9.4
+ print hex("0x1234567890123456");
=back
=head1 EXAMPLES
- perl -Mbigrat -le 'print sqrt(33)'
- perl -Mbigrat -le 'print 2*255'
- perl -Mbigrat -le 'print 4.5+2*255'
- perl -Mbigrat -le 'print 3/7 + 5/7 + 8/3'
- perl -Mbigrat -le 'print 12->is_odd()';
- perl -Mbignum=l,GMP -le 'print 7 ** 7777'
+ perl -Mbigrat -le 'print sqrt(33)'
+ perl -Mbigrat -le 'print 2**255'
+ perl -Mbigrat -le 'print 4.5+2**255'
+ perl -Mbigrat -le 'print 3/7 + 5/7 + 8/3'
+ perl -Mbigrat -le 'print 12->is_odd()';
+ perl -Mbigrat=l,GMP -le 'print 7 ** 7777'
=head1 BUGS
-For information about bugs and how to report them, see the BUGS section in the
-documentation available with the perldoc command.
-
- perldoc bignum
+Please report any bugs or feature requests to
+C<bug-bignum at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=bignum> (requires login).
+We will be notified, and then you'll automatically be notified of
+progress on your bug as I make changes.
=head1 SUPPORT
@@ -561,10 +760,31 @@ You can find documentation for this module with the perldoc command.
perldoc bigrat
-For more information, see the SUPPORT section in the documentation available
-with the perldoc command.
+You can also look for information at:
- perldoc bignum
+=over 4
+
+=item * GitHub
+
+L<https://github.com/pjacklam/p5-bignum>
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Dist/Display.html?Name=bignum>
+
+=item * MetaCPAN
+
+L<https://metacpan.org/release/bignum>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=bignum>
+
+=item * CPAN Ratings
+
+L<https://cpanratings.perl.org/dist/bignum>
+
+=back
=head1 LICENSE
@@ -588,7 +808,7 @@ L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=item *
-Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.comE<gt>, 2014-.
=back
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/builtin.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/builtin.pm
new file mode 100755
index 0000000000..bf601fd543
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/builtin.pm
@@ -0,0 +1,323 @@
+package builtin 0.008;
+
+use strict;
+use warnings;
+
+# All code, including &import, is implemented by always-present functions in
+# the perl interpreter itself.
+# See also `builtin.c` in perl source
+
+1;
+__END__
+
+=head1 NAME
+
+builtin - Perl pragma to import built-in utility functions
+
+=head1 SYNOPSIS
+
+ use builtin qw(
+ true false is_bool
+ weaken unweaken is_weak
+ blessed refaddr reftype
+ created_as_string created_as_number
+ ceil floor
+ indexed
+ trim
+ is_tainted
+ export_lexically
+ );
+
+=head1 DESCRIPTION
+
+Perl provides several utility functions in the C<builtin> package. These are
+plain functions, and look and behave just like regular user-defined functions
+do. They do not provide new syntax or require special parsing. These functions
+are always present in the interpreter and can be called at any time by their
+fully-qualified names. By default they are not available as short names, but
+can be requested for convenience.
+
+Individual named functions can be imported by listing them as import
+parameters on the C<use> statement for this pragma.
+
+The overall C<builtin> mechanism, as well as every individual function it
+provides, are currently B<experimental>.
+
+B<Warning>: At present, the entire C<builtin> namespace is experimental.
+Calling functions in it will trigger warnings of the C<experimental::builtin>
+category.
+
+=head2 Lexical Import
+
+This pragma module creates I<lexical> aliases in the currently-compiling scope
+to these builtin functions. This is similar to the lexical effect of other
+pragmas such as L<strict> and L<feature>.
+
+ sub classify
+ {
+ my $val = shift;
+
+ use builtin 'is_bool';
+ return is_bool($val) ? "boolean" : "not a boolean";
+ }
+
+ # the is_bool() function is no longer visible here
+ # but may still be called by builtin::is_bool()
+
+Because these functions are imported lexically, rather than by package
+symbols, the user does not need to take any special measures to ensure they
+don't accidentally appear as object methods from a class.
+
+ package An::Object::Class {
+ use builtin 'true', 'false';
+ ...
+ }
+
+ # does not appear as a method
+ An::Object::Class->true;
+
+ # Can't locate object method "true" via package "An::Object::Class"
+ # at ...
+
+=head1 FUNCTIONS
+
+=head2 true
+
+ $val = true;
+
+Returns the boolean truth value. While any scalar value can be tested for
+truth and most defined, non-empty and non-zero values are considered "true"
+by perl, this one is special in that L</is_bool> considers it to be a
+distinguished boolean value.
+
+This gives an equivalent value to expressions like C<!!1> or C<!0>.
+
+=head2 false
+
+ $val = false;
+
+Returns the boolean fiction value. While any non-true scalar value is
+considered "false" by perl, this one is special in that L</is_bool> considers
+it to be a distinguished boolean value.
+
+This gives an equivalent value to expressions like C<!!0> or C<!1>.
+
+=head2 is_bool
+
+ $bool = is_bool($val);
+
+Returns true when given a distinguished boolean value, or false if not. A
+distinguished boolean value is the result of any boolean-returning builtin
+function (such as C<true> or C<is_bool> itself), boolean-returning operator
+(such as the C<eq> or C<==> comparison tests or the C<!> negation operator),
+or any variable containing one of these results.
+
+This function used to be named C<isbool>. A compatibility alias is provided
+currently but will be removed in a later version.
+
+=head2 weaken
+
+ weaken($ref);
+
+Weakens a reference. A weakened reference does not contribute to the reference
+count of its referent. If only weakened references to a referent remain, it
+will be disposed of, and all remaining weak references to it will have their
+value set to C<undef>.
+
+=head2 unweaken
+
+ unweaken($ref);
+
+Strengthens a reference, undoing the effects of a previous call to L</weaken>.
+
+=head2 is_weak
+
+ $bool = is_weak($ref);
+
+Returns true when given a weakened reference, or false if not a reference or
+not weak.
+
+This function used to be named C<isweak>. A compatibility alias is provided
+currently but will be removed in a later version.
+
+=head2 blessed
+
+ $str = blessed($ref);
+
+Returns the package name for an object reference, or C<undef> for a
+non-reference or reference that is not an object.
+
+=head2 refaddr
+
+ $num = refaddr($ref);
+
+Returns the memory address for a reference, or C<undef> for a non-reference.
+This value is not likely to be very useful for pure Perl code, but is handy as
+a means to test for referential identity or uniqueness.
+
+=head2 reftype
+
+ $str = reftype($ref);
+
+Returns the basic container type of the referent of a reference, or C<undef>
+for a non-reference. This is returned as a string in all-capitals, such as
+C<ARRAY> for array references, or C<HASH> for hash references.
+
+=head2 created_as_string
+
+ $bool = created_as_string($val);
+
+Returns a boolean representing if the argument value was originally created as
+a string. It will return true for any scalar expression whose most recent
+assignment or modification was of a string-like nature - such as assignment
+from a string literal, or the result of a string operation such as
+concatenation or regexp. It will return false for references (including any
+object), numbers, booleans and undef.
+
+It is unlikely that you will want to use this for regular data validation
+within Perl, as it will not return true for regular numbers that are still
+perfectly usable as strings, nor for any object reference - especially objects
+that overload the stringification operator in an attempt to behave more like
+strings. For example
+
+ my $val = URI->new( "https://metacpan.org/" );
+
+ if( created_as_string $val ) { ... } # this will not execute
+
+=head2 created_as_number
+
+ $bool = created_as_number($val);
+
+Returns a boolean representing if the argument value was originally created as
+a number. It will return true for any scalar expression whose most recent
+assignment or modification was of a numerical nature - such as assignment from
+a number literal, or the result of a numerical operation such as addition. It
+will return false for references (including any object), strings, booleans and
+undef.
+
+It is unlikely that you will want to use this for regular data validation
+within Perl, as it will not return true for regular strings of decimal digits
+that are still perfectly usable as numbers, nor for any object reference -
+especially objects that overload the numification operator in an attempt to
+behave more like numbers. For example
+
+ my $val = Math::BigInt->new( 123 );
+
+ if( created_as_number $val ) { ... } # this will not execute
+
+While most Perl code should operate on scalar values without needing to know
+their creation history, these two functions are intended to be used by data
+serialisation modules such as JSON encoders or similar situations, where
+language interoperability concerns require making a distinction between values
+that are fundamentally stringlike versus numberlike in nature.
+
+=head2 ceil
+
+ $num = ceil($num);
+
+Returns the smallest integer value greater than or equal to the given
+numerical argument.
+
+=head2 floor
+
+ $num = floor($num);
+
+Returns the largest integer value less than or equal to the given numerical
+argument.
+
+=head2 indexed
+
+ @ivpairs = indexed(@items)
+
+Returns an even-sized list of number/value pairs, where each pair is formed
+of a number giving an index in the original list followed by the value at that
+position in it. I.e. returns a list twice the size of the original, being
+equal to
+
+ (0, $items[0], 1, $items[1], 2, $items[2], ...)
+
+Note that unlike the core C<values> function, this function returns copies of
+its original arguments, not aliases to them. Any modifications of these copies
+are I<not> reflected in modifications to the original.
+
+ my @x = ...;
+ $_++ for indexed @x; # The @x array remains unaffected
+
+This function is primarily intended to be useful combined with multi-variable
+C<foreach> loop syntax; as
+
+ foreach my ($index, $value) (indexed LIST) {
+ ...
+ }
+
+In scalar context this function returns the size of the list that it would
+otherwise have returned, and provokes a warning in the C<scalar> category.
+
+=head2 trim
+
+ $stripped = trim($string);
+
+Returns the input string with whitespace stripped from the beginning
+and end. trim() will remove these characters:
+
+" ", an ordinary space.
+
+"\t", a tab.
+
+"\n", a new line (line feed).
+
+"\r", a carriage return.
+
+and all other Unicode characters that are flagged as whitespace.
+A complete list is in L<perlrecharclass/Whitespace>.
+
+ $var = " Hello world "; # "Hello world"
+ $var = "\t\t\tHello world"; # "Hello world"
+ $var = "Hello world\n"; # "Hello world"
+ $var = "\x{2028}Hello world\x{3000}"; # "Hello world"
+
+C<trim> is equivalent to:
+
+ $str =~ s/\A\s+|\s+\z//urg;
+
+For Perl versions where this feature is not available look at the
+L<String::Util> module for a comparable implementation.
+
+=head2 is_tainted
+
+ $bool = is_tainted($var);
+
+Returns true when given a tainted variable.
+
+=head2 export_lexically
+
+ export_lexically($name1, $ref1, $name2, $ref2, ...)
+
+Exports new lexical names into the scope currently being compiled. Names given
+by the first of each pair of values will refer to the corresponding item whose
+reference is given by the second. Types of item that are permitted are
+subroutines, and scalar, array, and hash variables. If the item is a
+subroutine, the name may optionally be prefixed with the C<&> sigil, but for
+convenience it doesn't have to. For items that are variables the sigil is
+required, and must match the type of the variable.
+
+ export_lexically func => \&func,
+ '&func' => \&func; # same as above
+
+ export_lexically '$scalar' => \my $var;
+
+Z<>
+
+ # The following are not permitted
+ export_lexically '$var' => \@arr; # sigil does not match
+ export_lexically name => \$scalar; # implied '&' sigil does not match
+
+ export_lexically '*name' => \*globref; # globrefs are not supported
+
+This must be called at compile time; which typically means during a C<BEGIN>
+block. Usually this would be used as part of an C<import> method of a module,
+when invoked as part of a C<use ...> statement.
+
+=head1 SEE ALSO
+
+L<perlop>, L<perlfunc>, L<Scalar::Util>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/charnames.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/charnames.pm
index 0fb341fd1d..472773dece 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/charnames.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/charnames.pm
@@ -1,7 +1,7 @@
package charnames;
use strict;
use warnings;
-our $VERSION = '1.48';
+our $VERSION = '1.50';
use unicore::Name; # mktables-generated algorithmically-defined names
use _charnames (); # The submodule for this where most of the work gets done
@@ -50,7 +50,8 @@ sub vianame
# can't change it because of backward compatibility. New code can use
# string_vianame() instead.
my $ord = CORE::hex $1;
- return pack("U", $ord) if $ord <= 255 || ! ((caller 0)[8] & $bytes::hint_bits);
+ return chr utf8::unicode_to_native($ord) if $ord <= 255
+ || ! ((caller 0)[8] & $bytes::hint_bits);
_charnames::carp _charnames::not_legal_use_bytes_msg($arg, chr $ord);
return;
}
@@ -76,7 +77,8 @@ sub string_vianame {
if ($arg =~ /^U\+([0-9a-fA-F]+)$/) {
my $ord = CORE::hex $1;
- return pack("U", $ord) if $ord <= 255 || ! ((caller 0)[8] & $bytes::hint_bits);
+ return chr utf8::unicode_to_native($ord) if $ord <= 255
+ || ! ((caller 0)[8] & $bytes::hint_bits);
_charnames::carp _charnames::not_legal_use_bytes_msg($arg, chr $ord);
return;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm
index a9de570ada..7074be6e2e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm
@@ -72,7 +72,7 @@ trace.
=head2 The I<splain> Program
-While apparently a whole nuther program, I<splain> is actually nothing
+Another program, I<splain> is actually nothing
more than a link to the (executable) F<diagnostics.pm> module, as well as
a link to the F<diagnostics.pod> documentation. The B<-v> flag is like
the C<use diagnostics -verbose> directive.
@@ -186,7 +186,7 @@ use 5.009001;
use Carp;
$Carp::Internal{__PACKAGE__.""}++;
-our $VERSION = '1.37';
+our $VERSION = '1.39';
our $DEBUG;
our $VERBOSE;
our $PRETTY;
@@ -281,7 +281,8 @@ if (eof(POD_DIAG)) {
'sol' => '/', # Forward slash / solidus
'verbar' => '|', # vertical bar
- "Aacute" => "\xC1" # capital A, acute accent
+ # # capital A, acute accent
+ "Aacute" => chr utf8::unicode_to_native(0xC1)
# etc
);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/encoding/warnings.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/encoding/warnings.pm
index d75277e210..e09836d845 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/encoding/warnings.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/encoding/warnings.pm
@@ -1,5 +1,5 @@
package encoding::warnings;
-$encoding::warnings::VERSION = '0.13';
+$encoding::warnings::VERSION = '0.14';
use strict;
use 5.007;
@@ -32,7 +32,7 @@ thereafter.
use encoding::warnings; # or 'FATAL' to raise fatal exceptions
utf8::encode($a = chr(20000)); # a byte-string (raw bytes)
- $b = chr(20000); # a unicode-string (wide characters)
+ $b = chr(20000); # a unicode-string (wide characters)
# "Bytes implicitly upgraded into wide characters as iso-8859-1"
$c = $a . $b;
@@ -133,9 +133,9 @@ some people:
use encoding 'big5';
my $byte_string = pack("C*", 0xA4, 0x40);
- print length $a; # 2 here.
- $a .= ""; # concatenating with a unicode string...
- print length $a; # 1 here!
+ print length $a; # 2 here.
+ $a .= ""; # concatenating with a unicode string...
+ print length $a; # 1 here!
In other words, do not C<use encoding> unless you are certain that the
program will not deal with any raw, 8-bit binary data at all.
@@ -162,11 +162,11 @@ sub FATAL () { 2 }
sub import {
if ($] >= 5.025003) {
- require Carp;
- Carp::cluck(
- "encoding::warnings is not supported on Perl 5.26.0 and later"
- );
- return;
+ require Carp;
+ Carp::cluck(
+ "encoding::warnings is not supported on Perl 5.26.0 and later"
+ );
+ return;
}
# Install a ${^ENCODING} handler if no other one are already in place.
@@ -185,11 +185,11 @@ sub import {
# Install a warning handler for decode()
my $decoder = bless(
- [
- $ascii,
- $latin1,
- (($fatal eq 'FATAL') ? 'Carp::croak' : 'Carp::carp'),
- ], $class,
+ [
+ $ascii,
+ $latin1,
+ (($fatal eq 'FATAL') ? 'Carp::croak' : 'Carp::carp'),
+ ], $class,
);
no warnings 'deprecated';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/experimental.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/experimental.pm
index 2d58dfdf25..3d89cbd5b1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/experimental.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/experimental.pm
@@ -1,5 +1,5 @@
package experimental;
-$experimental::VERSION = '0.024';
+$experimental::VERSION = '0.031';
use strict;
use warnings;
use version ();
@@ -8,6 +8,7 @@ BEGIN { eval { require feature } };
use Carp qw/croak carp/;
my %warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::Offsets;
+my %removed_warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::NoOp;
my %features = map { $_ => 1 } $] > 5.015006 ? keys %feature::feature : do {
my @features;
if ($] >= 5.010) {
@@ -18,14 +19,19 @@ my %features = map { $_ => 1 } $] > 5.015006 ? keys %feature::feature : do {
};
my %min_version = (
+ args_array_with_signatures => '5.20.0',
array_base => '5',
autoderef => '5.14.0',
bitwise => '5.22.0',
+ builtin => '5.35.7',
const_attr => '5.22.0',
current_sub => '5.16.0',
declared_refs => '5.26.0',
+ defer => '5.35.4',
evalbytes => '5.16.0',
+ extra_paired_delimiters => '5.35.9',
fc => '5.16.0',
+ for_list => '5.35.5',
isa => '5.31.7',
lexical_topic => '5.10.0',
lexical_subs => '5.18.0',
@@ -38,14 +44,14 @@ my %min_version = (
signatures => '5.20.0',
state => '5.10.0',
switch => '5.10.0',
- try => '5.33.6',
+ try => '5.34.0',
unicode_eval => '5.16.0',
unicode_strings => '5.12.0',
);
my %removed_in_version = (
- array_base => '5.29.4',
- autoderef => '5.23.1',
- lexical_topic => '5.23.4',
+ array_base => '5.30.0',
+ autoderef => '5.24.0',
+ lexical_topic => '5.24.0',
);
$_ = version->new($_) for values %min_version;
@@ -68,16 +74,15 @@ sub _enable {
feature->import($pragma);
_enable(@{ $additional{$pragma} }) if $additional{$pragma};
}
+ elsif ($removed_warnings{"experimental::$pragma"}) {
+ _enable(@{ $additional{$pragma} }) if $additional{$pragma};
+ }
elsif (not exists $min_version{$pragma}) {
croak "Can't enable unknown feature $pragma";
}
elsif ($] < $min_version{$pragma}) {
- my $stable = $min_version{$pragma};
- if ($stable->{version}[1] % 2) {
- $stable = version->new(
- "5.".($stable->{version}[1]+1).'.0'
- );
- }
+ my $stable = $min_version{$pragma}->stringify;
+ $stable =~ s/^ 5\. ([0-9]?[13579]) \. \d+ $/"5." . ($1 + 1) . ".0"/xe;
croak "Need perl $stable or later for feature $pragma";
}
elsif ($] >= ($removed_in_version{$pragma} || 7)) {
@@ -135,12 +140,12 @@ experimental - Experimental features made easy
=head1 VERSION
-version 0.024
+version 0.031
=head1 SYNOPSIS
- use experimental 'lexical_subs', 'smartmatch';
- my sub foo { $_[0] ~~ 1 }
+ use experimental 'lexical_subs', 'signatures';
+ my sub plus_one($value) { $value + 1 }
=head1 DESCRIPTION
@@ -168,18 +173,26 @@ The supported features, documented further below, are:
=over 4
+=item * C<args_array_with_signatures> - allow C<@_> to be used in signatured subs.
+
+This is supported on perl 5.20.0 and above, but is likely to be removed in the future.
+
=item * C<array_base> - allow the use of C<$[> to change the starting index of C<@array>.
-This is supported on all versions of perl.
+This was removed in perl 5.30.0.
=item * C<autoderef> - allow push, each, keys, and other built-ins on references.
-This was added in perl 5.14.0 and removed in perl 5.23.1.
+This was added in perl 5.14.0 and removed in perl 5.24.0.
=item * C<bitwise> - allow the new stringwise bit operators
This was added in perl 5.22.0.
+=item * C<builtin> - allow the use of the functions in the builtin:: namespace
+
+This was added in perl 5.36.0
+
=item * C<const_attr> - allow the :const attribute on subs
This was added in perl 5.22.0.
@@ -188,17 +201,30 @@ This was added in perl 5.22.0.
This was added in perl 5.26.0.
+=item * C<defer> - enables the use of defer blocks
+
+This was added in perl 5.36.0
+
+=item * C<extra_paired_delimiters> - enables the use of more paired string delimiters than the
+traditional four, S<C<< < > >>>, S<C<( )>>, S<C<{ }>>, and S<C<[ ]>>.
+
+This was added in perl 5.36.
+
+=item * C<for_list> - allows iterating over multiple values at a time with C<for>
+
+This was added in perl 5.36.0
+
=item * C<isa> - allow the use of the C<isa> infix operator
This was added in perl 5.32.0.
=item * C<lexical_topic> - allow the use of lexical C<$_> via C<my $_>.
-This was added in perl 5.10.0 and removed in perl 5.23.4.
+This was added in perl 5.10.0 and removed in perl 5.24.0.
=item * C<lexical_subs> - allow the use of lexical subroutines.
-This was added in 5.18.0.
+This was added in 5.18.0, and became non-experimental (and always enabled) in 5.26.0.
=item * C<postderef> - allow the use of postfix dereferencing expressions
@@ -229,10 +255,18 @@ This was added in perl 5.20.0.
This was added in perl 5.10.0, but it should be noted there are significant
incompatibilities between 5.10.0 and 5.10.1.
+The feature is going to be deprecated in perl 5.38.0, and removed in 5.42.0.
+
=item * C<switch> - allow the use of C<~~>, given, and when
This was added in perl 5.10.0.
+The feature is going to be deprecated in perl 5.38.0, and removed in 5.42.0.
+
+=item * C<try> - allow the use of C<try> and C<catch>
+
+This was added in perl 5.34.0
+
=item * C<win32_perlio> - allows the use of the :win32 IO layer.
This was added on perl 5.22.0.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm
index 5ebb4a3f78..4425225068 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm
@@ -1,31 +1,34 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is built by regen/feature.pl.
# Any changes made here will be lost!
package feature;
-
-our $VERSION = '1.64';
+our $VERSION = '1.82';
our %feature = (
- fc => 'feature_fc',
- isa => 'feature_isa',
- say => 'feature_say',
- try => 'feature_try',
- state => 'feature_state',
- switch => 'feature_switch',
- bitwise => 'feature_bitwise',
- indirect => 'feature_indirect',
- evalbytes => 'feature_evalbytes',
- signatures => 'feature_signatures',
- current_sub => 'feature___SUB__',
- refaliasing => 'feature_refaliasing',
- postderef_qq => 'feature_postderef_qq',
- unicode_eval => 'feature_unieval',
- declared_refs => 'feature_myref',
- unicode_strings => 'feature_unicode',
- multidimensional => 'feature_multidimensional',
- bareword_filehandles => 'feature_bareword_filehandles',
+ fc => 'feature_fc',
+ isa => 'feature_isa',
+ say => 'feature_say',
+ try => 'feature_try',
+ class => 'feature_class',
+ defer => 'feature_defer',
+ state => 'feature_state',
+ switch => 'feature_switch',
+ bitwise => 'feature_bitwise',
+ indirect => 'feature_indirect',
+ evalbytes => 'feature_evalbytes',
+ signatures => 'feature_signatures',
+ current_sub => 'feature___SUB__',
+ module_true => 'feature_module_true',
+ refaliasing => 'feature_refaliasing',
+ postderef_qq => 'feature_postderef_qq',
+ unicode_eval => 'feature_unieval',
+ declared_refs => 'feature_myref',
+ unicode_strings => 'feature_unicode',
+ multidimensional => 'feature_multidimensional',
+ bareword_filehandles => 'feature_bareword_filehandles',
+ extra_paired_delimiters => 'feature_more_delims',
);
our %feature_bundle = (
@@ -34,7 +37,9 @@ our %feature_bundle = (
"5.15" => [qw(bareword_filehandles current_sub evalbytes fc indirect multidimensional say state switch unicode_eval unicode_strings)],
"5.23" => [qw(bareword_filehandles current_sub evalbytes fc indirect multidimensional postderef_qq say state switch unicode_eval unicode_strings)],
"5.27" => [qw(bareword_filehandles bitwise current_sub evalbytes fc indirect multidimensional postderef_qq say state switch unicode_eval unicode_strings)],
- "all" => [qw(bareword_filehandles bitwise current_sub declared_refs evalbytes fc indirect isa multidimensional postderef_qq refaliasing say signatures state switch try unicode_eval unicode_strings)],
+ "5.35" => [qw(bareword_filehandles bitwise current_sub evalbytes fc isa postderef_qq say signatures state unicode_eval unicode_strings)],
+ "5.37" => [qw(bitwise current_sub evalbytes fc isa module_true postderef_qq say signatures state unicode_eval unicode_strings)],
+ "all" => [qw(bareword_filehandles bitwise class current_sub declared_refs defer evalbytes extra_paired_delimiters fc indirect isa module_true multidimensional postderef_qq refaliasing say signatures state switch try unicode_eval unicode_strings)],
"default" => [qw(bareword_filehandles indirect multidimensional)],
);
@@ -58,6 +63,8 @@ $feature_bundle{"5.31"} = $feature_bundle{"5.27"};
$feature_bundle{"5.32"} = $feature_bundle{"5.27"};
$feature_bundle{"5.33"} = $feature_bundle{"5.27"};
$feature_bundle{"5.34"} = $feature_bundle{"5.27"};
+$feature_bundle{"5.36"} = $feature_bundle{"5.35"};
+$feature_bundle{"5.38"} = $feature_bundle{"5.37"};
$feature_bundle{"5.9.5"} = $feature_bundle{"5.10"};
my %noops = (
postderef => 1,
@@ -69,7 +76,7 @@ my %removed = (
our $hint_shift = 26;
our $hint_mask = 0x3c000000;
-our @hint_bundles = qw( default 5.10 5.11 5.15 5.23 5.27 );
+our @hint_bundles = qw( default 5.10 5.11 5.15 5.23 5.27 5.35 5.37 );
# This gets set (for now) in $^H as well as in %^H,
# for runtime speed of the uc/lc/ucfirst/lcfirst functions.
@@ -79,6 +86,8 @@ our $hint_uni8bit = 0x00000800;
# TODO:
# - think about versioned features (use feature switch => 2)
+=encoding utf8
+
=head1 NAME
feature - Perl pragma to enable new features
@@ -92,13 +101,13 @@ feature - Perl pragma to enable new features
say "The case-folded version of $x is: " . fc $x;
- # set features to match the :5.10 bundle, which may turn off or on
- # multiple features (see below)
- use feature ':5.10';
+ # set features to match the :5.36 bundle, which may turn off or on
+ # multiple features (see "FEATURE BUNDLES" below)
+ use feature ':5.36';
- # implicitly loads :5.10 feature bundle
- use v5.10;
+ # implicitly loads :5.36 feature bundle
+ use v5.36;
=head1 DESCRIPTION
@@ -140,6 +149,8 @@ disable I<all> features (an unusual request!) use C<no feature ':all'>.
=head1 AVAILABLE FEATURES
+Read L</"FEATURE BUNDLES"> for the feature cheat sheet summary.
+
=head2 The 'say' feature
C<use feature 'say'> tells the compiler to enable the Raku-inspired
@@ -172,6 +183,9 @@ given/when construct.
See L<perlsyn/"Switch Statements"> for details.
This feature is available starting with Perl 5.10.
+It is deprecated starting with Perl 5.38, and using
+C<given>, C<when> or smartmatch will throw a warning.
+It will be removed in Perl 5.42.
=head2 The 'unicode_strings' feature
@@ -209,8 +223,8 @@ couldn't be changed without breaking some things that had come to rely on
them, so the feature can be enabled and disabled. Details are at
L<perlfunc/Under the "unicode_eval" feature>.
-C<evalbytes> is like string C<eval>, but operating on a byte stream that is
-not UTF-8 encoded. Details are at L<perlfunc/evalbytes EXPR>. Without a
+C<evalbytes> is like string C<eval>, but it treats its argument as a byte
+string. Details are at L<perlfunc/evalbytes EXPR>. Without a
S<C<use feature 'evalbytes'>> nor a S<C<use v5.16>> (or higher) declaration in
the current scope, you can still access it by instead writing
C<CORE::evalbytes>.
@@ -262,9 +276,10 @@ regardless of what feature declarations are in scope.
=head2 The 'postderef' and 'postderef_qq' features
The 'postderef_qq' feature extends the applicability of L<postfix
-dereference syntax|perlref/Postfix Dereference Syntax> so that postfix array
-and scalar dereference are available in double-quotish interpolations. For
-example, it makes the following two statements equivalent:
+dereference syntax|perlref/Postfix Dereference Syntax> so that
+postfix array dereference, postfix scalar dereference, and
+postfix array highest index access are available in double-quotish interpolations.
+For example, it makes the following two statements equivalent:
my $s = "[@{ $h->{a} }]";
my $s = "[$h->{a}->@*]";
@@ -288,22 +303,27 @@ regardless of what feature declarations are in scope.
=head2 The 'signatures' feature
-B<WARNING>: This feature is still experimental and the implementation may
-change or be removed 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::signatures";
-
-This enables unpacking of subroutine arguments into lexical variables
-by syntax such as
+This enables syntax for declaring subroutine arguments as lexical variables.
+For example, for this subroutine:
sub foo ($left, $right) {
- return $left + $right;
+ return $left + $right;
}
+Calling C<foo(3, 7)> will assign C<3> into C<$left> and C<7> into C<$right>.
+
See L<perlsub/Signatures> for details.
-This feature is available from Perl 5.20 onwards.
+This feature is available from Perl 5.20 onwards. From Perl 5.20 to 5.34,
+it was classed as experimental, and Perl emitted a warning for its usage,
+except when explicitly disabled:
+
+ no warnings "experimental::signatures";
+
+As of Perl 5.36, use of this feature no longer triggers a warning, though the
+C<experimental::signatures> warning category still exists (for compatibility
+with code that disables it). This feature is now considered stable, and is
+enabled automatically by C<use v5.36> (or higher).
=head2 The 'refaliasing' feature
@@ -350,7 +370,7 @@ warn when you use the feature, unless you have explicitly disabled the warning:
no warnings "experimental::declared_refs";
This allows a reference to a variable to be declared with C<my>, C<state>,
-our C<our>, or localized with C<local>. It is intended mainly for use in
+or C<our>, or localized with C<local>. It is intended mainly for use in
conjunction with the "refaliasing" feature. See L<perlref/Declaring a
Reference to a Variable> for examples.
@@ -358,17 +378,20 @@ This feature is available from Perl 5.26 onwards.
=head2 The 'isa' feature
-B<WARNING>: This feature is still experimental and the implementation may
-change or be removed 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::isa";
-
This allows the use of the C<isa> infix operator, which tests whether the
scalar given by the left operand is an object of the class given by the
right operand. See L<perlop/Class Instance Operator> for more details.
-This feature is available from Perl 5.32 onwards.
+This feature is available from Perl 5.32 onwards. From Perl 5.32 to 5.34,
+it was classed as experimental, and Perl emitted a warning for its usage,
+except when explicitly disabled:
+
+ no warnings "experimental::isa";
+
+As of Perl 5.36, use of this feature no longer triggers a warning (though the
+C<experimental::isa> warning category stilll exists for compatibility with
+code that disables it). This feature is now considered stable, and is enabled
+automatically by C<use v5.36> (or higher).
=head2 The 'indirect' feature
@@ -399,7 +422,7 @@ previous versions, it was simply on all the time.
You can use the L<multidimensional> module on CPAN to disable
multidimensional array emulation for older versions of Perl.
-=head2 The 'bareword_filehandles' feature.
+=head2 The 'bareword_filehandles' feature
This feature enables bareword filehandles for builtin functions
operations, a generally discouraged practice. It is enabled by
@@ -415,7 +438,7 @@ previous versions it was simply on all the time.
You can use the L<bareword::filehandles> module on CPAN to disable
bareword filehandles for older versions of perl.
-=head2 The 'try' feature.
+=head2 The 'try' feature
B<WARNING>: This feature is still experimental and the implementation may
change or be removed in future versions of Perl. For this reason, Perl will
@@ -429,6 +452,445 @@ C<try> are caught by executing the body of the C<catch> block.
For more information, see L<perlsyn/"Try Catch Exception Handling">.
+=head2 The 'defer' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change or be removed 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::defer";
+
+This feature enables the C<defer> block syntax, which allows a block of code
+to be deferred until when the flow of control leaves the block which contained
+it. For more details, see L<perlsyn/defer>.
+
+=head2 The 'extra_paired_delimiters' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change or be removed 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::extra_paired_delimiters";
+
+This feature enables the use of more paired string delimiters than the
+traditional four, S<C<< < > >>>, S<C<( )>>, S<C<{ }>>, and S<C<[ ]>>. When
+this feature is on, for example, you can say S<C<qrE<171>patE<187>>>.
+
+As with any usage of non-ASCII delimiters in a UTF-8-encoded source file, you
+will want to ensure the parser will decode the source code from UTF-8 bytes
+with a declaration such as C<use utf8>.
+
+This feature is available starting in Perl 5.36.
+
+The complete list of accepted paired delimiters as of Unicode 14.0 is:
+
+ ( ) U+0028, U+0029 LEFT/RIGHT PARENTHESIS
+ < > U+003C, U+003E LESS-THAN/GREATER-THAN SIGN
+ [ ] U+005B, U+005D LEFT/RIGHT SQUARE BRACKET
+ { } U+007B, U+007D LEFT/RIGHT CURLY BRACKET
+ « » U+00AB, U+00BB LEFT/RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ » « U+00BB, U+00AB RIGHT/LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ܆ ܇ U+0706, U+0707 SYRIAC COLON SKEWED LEFT/RIGHT
+ ༺ ༻ U+0F3A, U+0F3B TIBETAN MARK GUG RTAGS GYON, TIBETAN MARK GUG
+ RTAGS GYAS
+ ༼ ༽ U+0F3C, U+0F3D TIBETAN MARK ANG KHANG GYON, TIBETAN MARK ANG
+ KHANG GYAS
+ ᚛ ᚜ U+169B, U+169C OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
+ ‘ ’ U+2018, U+2019 LEFT/RIGHT SINGLE QUOTATION MARK
+ ’ ‘ U+2019, U+2018 RIGHT/LEFT SINGLE QUOTATION MARK
+ “ ” U+201C, U+201D LEFT/RIGHT DOUBLE QUOTATION MARK
+ ” “ U+201D, U+201C RIGHT/LEFT DOUBLE QUOTATION MARK
+ ‵ ′ U+2035, U+2032 REVERSED PRIME, PRIME
+ ‶ ″ U+2036, U+2033 REVERSED DOUBLE PRIME, DOUBLE PRIME
+ ‷ ‴ U+2037, U+2034 REVERSED TRIPLE PRIME, TRIPLE PRIME
+ ‹ › U+2039, U+203A SINGLE LEFT/RIGHT-POINTING ANGLE QUOTATION MARK
+ › ‹ U+203A, U+2039 SINGLE RIGHT/LEFT-POINTING ANGLE QUOTATION MARK
+ ⁅ ⁆ U+2045, U+2046 LEFT/RIGHT SQUARE BRACKET WITH QUILL
+ ⁍ ⁌ U+204D, U+204C BLACK RIGHT/LEFTWARDS BULLET
+ ⁽ ⁾ U+207D, U+207E SUPERSCRIPT LEFT/RIGHT PARENTHESIS
+ ₍ ₎ U+208D, U+208E SUBSCRIPT LEFT/RIGHT PARENTHESIS
+ → ← U+2192, U+2190 RIGHT/LEFTWARDS ARROW
+ ↛ ↚ U+219B, U+219A RIGHT/LEFTWARDS ARROW WITH STROKE
+ ↝ ↜ U+219D, U+219C RIGHT/LEFTWARDS WAVE ARROW
+ ↠ ↞ U+21A0, U+219E RIGHT/LEFTWARDS TWO HEADED ARROW
+ ↣ ↢ U+21A3, U+21A2 RIGHT/LEFTWARDS ARROW WITH TAIL
+ ↦ ↤ U+21A6, U+21A4 RIGHT/LEFTWARDS ARROW FROM BAR
+ ↪ ↩ U+21AA, U+21A9 RIGHT/LEFTWARDS ARROW WITH HOOK
+ ↬ ↫ U+21AC, U+21AB RIGHT/LEFTWARDS ARROW WITH LOOP
+ ↱ ↰ U+21B1, U+21B0 UPWARDS ARROW WITH TIP RIGHT/LEFTWARDS
+ ↳ ↲ U+21B3, U+21B2 DOWNWARDS ARROW WITH TIP RIGHT/LEFTWARDS
+ ⇀ ↼ U+21C0, U+21BC RIGHT/LEFTWARDS HARPOON WITH BARB UPWARDS
+ ⇁ ↽ U+21C1, U+21BD RIGHT/LEFTWARDS HARPOON WITH BARB DOWNWARDS
+ ⇉ ⇇ U+21C9, U+21C7 RIGHT/LEFTWARDS PAIRED ARROWS
+ ⇏ ⇍ U+21CF, U+21CD RIGHT/LEFTWARDS DOUBLE ARROW WITH STROKE
+ ⇒ ⇐ U+21D2, U+21D0 RIGHT/LEFTWARDS DOUBLE ARROW
+ ⇛ ⇚ U+21DB, U+21DA RIGHT/LEFTWARDS TRIPLE ARROW
+ ⇝ ⇜ U+21DD, U+21DC RIGHT/LEFTWARDS SQUIGGLE ARROW
+ ⇢ ⇠ U+21E2, U+21E0 RIGHT/LEFTWARDS DASHED ARROW
+ ⇥ ⇤ U+21E5, U+21E4 RIGHT/LEFTWARDS ARROW TO BAR
+ ⇨ ⇦ U+21E8, U+21E6 RIGHT/LEFTWARDS WHITE ARROW
+ ⇴ ⬰ U+21F4, U+2B30 RIGHT/LEFT ARROW WITH SMALL CIRCLE
+ ⇶ ⬱ U+21F6, U+2B31 THREE RIGHT/LEFTWARDS ARROWS
+ ⇸ ⇷ U+21F8, U+21F7 RIGHT/LEFTWARDS ARROW WITH VERTICAL STROKE
+ ⇻ ⇺ U+21FB, U+21FA RIGHT/LEFTWARDS ARROW WITH DOUBLE VERTICAL
+ STROKE
+ ⇾ ⇽ U+21FE, U+21FD RIGHT/LEFTWARDS OPEN-HEADED ARROW
+ ∈ ∋ U+2208, U+220B ELEMENT OF, CONTAINS AS MEMBER
+ ∉ ∌ U+2209, U+220C NOT AN ELEMENT OF, DOES NOT CONTAIN AS MEMBER
+ ∊ ∍ U+220A, U+220D SMALL ELEMENT OF, SMALL CONTAINS AS MEMBER
+ ≤ ≥ U+2264, U+2265 LESS-THAN/GREATER-THAN OR EQUAL TO
+ ≦ ≧ U+2266, U+2267 LESS-THAN/GREATER-THAN OVER EQUAL TO
+ ≨ ≩ U+2268, U+2269 LESS-THAN/GREATER-THAN BUT NOT EQUAL TO
+ ≪ ≫ U+226A, U+226B MUCH LESS-THAN/GREATER-THAN
+ ≮ ≯ U+226E, U+226F NOT LESS-THAN/GREATER-THAN
+ ≰ ≱ U+2270, U+2271 NEITHER LESS-THAN/GREATER-THAN NOR EQUAL TO
+ ≲ ≳ U+2272, U+2273 LESS-THAN/GREATER-THAN OR EQUIVALENT TO
+ ≴ ≵ U+2274, U+2275 NEITHER LESS-THAN/GREATER-THAN NOR EQUIVALENT TO
+ ≺ ≻ U+227A, U+227B PRECEDES/SUCCEEDS
+ ≼ ≽ U+227C, U+227D PRECEDES/SUCCEEDS OR EQUAL TO
+ ≾ ≿ U+227E, U+227F PRECEDES/SUCCEEDS OR EQUIVALENT TO
+ ⊀ ⊁ U+2280, U+2281 DOES NOT PRECEDE/SUCCEED
+ ⊂ ⊃ U+2282, U+2283 SUBSET/SUPERSET OF
+ ⊄ ⊅ U+2284, U+2285 NOT A SUBSET/SUPERSET OF
+ ⊆ ⊇ U+2286, U+2287 SUBSET/SUPERSET OF OR EQUAL TO
+ ⊈ ⊉ U+2288, U+2289 NEITHER A SUBSET/SUPERSET OF NOR EQUAL TO
+ ⊊ ⊋ U+228A, U+228B SUBSET/SUPERSET OF WITH NOT EQUAL TO
+ ⊣ ⊢ U+22A3, U+22A2 LEFT/RIGHT TACK
+ ⊦ ⫞ U+22A6, U+2ADE ASSERTION, SHORT LEFT TACK
+ ⊨ ⫤ U+22A8, U+2AE4 TRUE, VERTICAL BAR DOUBLE LEFT TURNSTILE
+ ⊩ ⫣ U+22A9, U+2AE3 FORCES, DOUBLE VERTICAL BAR LEFT TURNSTILE
+ ⊰ ⊱ U+22B0, U+22B1 PRECEDES/SUCCEEDS UNDER RELATION
+ ⋐ ⋑ U+22D0, U+22D1 DOUBLE SUBSET/SUPERSET
+ ⋖ ⋗ U+22D6, U+22D7 LESS-THAN/GREATER-THAN WITH DOT
+ ⋘ ⋙ U+22D8, U+22D9 VERY MUCH LESS-THAN/GREATER-THAN
+ ⋜ ⋝ U+22DC, U+22DD EQUAL TO OR LESS-THAN/GREATER-THAN
+ ⋞ ⋟ U+22DE, U+22DF EQUAL TO OR PRECEDES/SUCCEEDS
+ ⋠ ⋡ U+22E0, U+22E1 DOES NOT PRECEDE/SUCCEED OR EQUAL
+ ⋦ ⋧ U+22E6, U+22E7 LESS-THAN/GREATER-THAN BUT NOT EQUIVALENT TO
+ ⋨ ⋩ U+22E8, U+22E9 PRECEDES/SUCCEEDS BUT NOT EQUIVALENT TO
+ ⋲ ⋺ U+22F2, U+22FA ELEMENT OF/CONTAINS WITH LONG HORIZONTAL STROKE
+ ⋳ ⋻ U+22F3, U+22FB ELEMENT OF/CONTAINS WITH VERTICAL BAR AT END OF
+ HORIZONTAL STROKE
+ ⋴ ⋼ U+22F4, U+22FC SMALL ELEMENT OF/CONTAINS WITH VERTICAL BAR AT
+ END OF HORIZONTAL STROKE
+ ⋶ ⋽ U+22F6, U+22FD ELEMENT OF/CONTAINS WITH OVERBAR
+ ⋷ ⋾ U+22F7, U+22FE SMALL ELEMENT OF/CONTAINS WITH OVERBAR
+ ⌈ ⌉ U+2308, U+2309 LEFT/RIGHT CEILING
+ ⌊ ⌋ U+230A, U+230B LEFT/RIGHT FLOOR
+ ⌦ ⌫ U+2326, U+232B ERASE TO THE RIGHT/LEFT
+ 〈 〉 U+2329, U+232A LEFT/RIGHT-POINTING ANGLE BRACKET
+ ⍈ ⍇ U+2348, U+2347 APL FUNCTIONAL SYMBOL QUAD RIGHT/LEFTWARDS ARROW
+ ⏩ ⏪ U+23E9, U+23EA BLACK RIGHT/LEFT-POINTING DOUBLE TRIANGLE
+ ⏭ ⏮ U+23ED, U+23EE BLACK RIGHT/LEFT-POINTING DOUBLE TRIANGLE WITH
+ VERTICAL BAR
+ ☛ ☚ U+261B, U+261A BLACK RIGHT/LEFT POINTING INDEX
+ ☞ ☜ U+261E, U+261C WHITE RIGHT/LEFT POINTING INDEX
+ ⚞ ⚟ U+269E, U+269F THREE LINES CONVERGING RIGHT/LEFT
+ ❨ ❩ U+2768, U+2769 MEDIUM LEFT/RIGHT PARENTHESIS ORNAMENT
+ ❪ ❫ U+276A, U+276B MEDIUM FLATTENED LEFT/RIGHT PARENTHESIS ORNAMENT
+ ❬ ❭ U+276C, U+276D MEDIUM LEFT/RIGHT-POINTING ANGLE BRACKET
+ ORNAMENT
+ ❮ ❯ U+276E, U+276F HEAVY LEFT/RIGHT-POINTING ANGLE QUOTATION MARK
+ ORNAMENT
+ ❰ ❱ U+2770, U+2771 HEAVY LEFT/RIGHT-POINTING ANGLE BRACKET ORNAMENT
+ ❲ ❳ U+2772, U+2773 LIGHT LEFT/RIGHT TORTOISE SHELL BRACKET ORNAMENT
+ ❴ ❵ U+2774, U+2775 MEDIUM LEFT/RIGHT CURLY BRACKET ORNAMENT
+ ⟃ ⟄ U+27C3, U+27C4 OPEN SUBSET/SUPERSET
+ ⟅ ⟆ U+27C5, U+27C6 LEFT/RIGHT S-SHAPED BAG DELIMITER
+ ⟈ ⟉ U+27C8, U+27C9 REVERSE SOLIDUS PRECEDING SUBSET, SUPERSET
+ PRECEDING SOLIDUS
+ ⟞ ⟝ U+27DE, U+27DD LONG LEFT/RIGHT TACK
+ ⟦ ⟧ U+27E6, U+27E7 MATHEMATICAL LEFT/RIGHT WHITE SQUARE BRACKET
+ ⟨ ⟩ U+27E8, U+27E9 MATHEMATICAL LEFT/RIGHT ANGLE BRACKET
+ ⟪ ⟫ U+27EA, U+27EB MATHEMATICAL LEFT/RIGHT DOUBLE ANGLE BRACKET
+ ⟬ ⟭ U+27EC, U+27ED MATHEMATICAL LEFT/RIGHT WHITE TORTOISE SHELL
+ BRACKET
+ ⟮ ⟯ U+27EE, U+27EF MATHEMATICAL LEFT/RIGHT FLATTENED PARENTHESIS
+ ⟴ ⬲ U+27F4, U+2B32 RIGHT/LEFT ARROW WITH CIRCLED PLUS
+ ⟶ ⟵ U+27F6, U+27F5 LONG RIGHT/LEFTWARDS ARROW
+ ⟹ ⟸ U+27F9, U+27F8 LONG RIGHT/LEFTWARDS DOUBLE ARROW
+ ⟼ ⟻ U+27FC, U+27FB LONG RIGHT/LEFTWARDS ARROW FROM BAR
+ ⟾ ⟽ U+27FE, U+27FD LONG RIGHT/LEFTWARDS DOUBLE ARROW FROM BAR
+ ⟿ ⬳ U+27FF, U+2B33 LONG RIGHT/LEFTWARDS SQUIGGLE ARROW
+ ⤀ ⬴ U+2900, U+2B34 RIGHT/LEFTWARDS TWO-HEADED ARROW WITH VERTICAL
+ STROKE
+ ⤁ ⬵ U+2901, U+2B35 RIGHT/LEFTWARDS TWO-HEADED ARROW WITH DOUBLE
+ VERTICAL STROKE
+ ⤃ ⤂ U+2903, U+2902 RIGHT/LEFTWARDS DOUBLE ARROW WITH VERTICAL
+ STROKE
+ ⤅ ⬶ U+2905, U+2B36 RIGHT/LEFTWARDS TWO-HEADED ARROW FROM BAR
+ ⤇ ⤆ U+2907, U+2906 RIGHT/LEFTWARDS DOUBLE ARROW FROM BAR
+ ⤍ ⤌ U+290D, U+290C RIGHT/LEFTWARDS DOUBLE DASH ARROW
+ ⤏ ⤎ U+290F, U+290E RIGHT/LEFTWARDS TRIPLE DASH ARROW
+ ⤐ ⬷ U+2910, U+2B37 RIGHT/LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
+ ⤑ ⬸ U+2911, U+2B38 RIGHT/LEFTWARDS ARROW WITH DOTTED STEM
+ ⤔ ⬹ U+2914, U+2B39 RIGHT/LEFTWARDS ARROW WITH TAIL WITH VERTICAL
+ STROKE
+ ⤕ ⬺ U+2915, U+2B3A RIGHT/LEFTWARDS ARROW WITH TAIL WITH DOUBLE
+ VERTICAL STROKE
+ ⤖ ⬻ U+2916, U+2B3B RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL
+ ⤗ ⬼ U+2917, U+2B3C RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH
+ VERTICAL STROKE
+ ⤘ ⬽ U+2918, U+2B3D RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH
+ DOUBLE VERTICAL STROKE
+ ⤚ ⤙ U+291A, U+2919 RIGHT/LEFTWARDS ARROW-TAIL
+ ⤜ ⤛ U+291C, U+291B RIGHT/LEFTWARDS DOUBLE ARROW-TAIL
+ ⤞ ⤝ U+291E, U+291D RIGHT/LEFTWARDS ARROW TO BLACK DIAMOND
+ ⤠ ⤟ U+2920, U+291F RIGHT/LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
+ ⤳ ⬿ U+2933, U+2B3F WAVE ARROW POINTING DIRECTLY RIGHT/LEFT
+ ⤷ ⤶ U+2937, U+2936 ARROW POINTING DOWNWARDS THEN CURVING RIGHT/
+ LEFTWARDS
+ ⥅ ⥆ U+2945, U+2946 RIGHT/LEFTWARDS ARROW WITH PLUS BELOW
+ ⥇ ⬾ U+2947, U+2B3E RIGHT/LEFTWARDS ARROW THROUGH X
+ ⥓ ⥒ U+2953, U+2952 RIGHT/LEFTWARDS HARPOON WITH BARB UP TO BAR
+ ⥗ ⥖ U+2957, U+2956 RIGHT/LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+ ⥛ ⥚ U+295B, U+295A RIGHT/LEFTWARDS HARPOON WITH BARB UP FROM BAR
+ ⥟ ⥞ U+295F, U+295E RIGHT/LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+ ⥤ ⥢ U+2964, U+2962 RIGHT/LEFTWARDS HARPOON WITH BARB UP ABOVE
+ RIGHT/LEFTWARDS HARPOON WITH BARB DOWN
+ ⥬ ⥪ U+296C, U+296A RIGHT/LEFTWARDS HARPOON WITH BARB UP ABOVE LONG
+ DASH
+ ⥭ ⥫ U+296D, U+296B RIGHT/LEFTWARDS HARPOON WITH BARB DOWN BELOW
+ LONG DASH
+ ⥱ ⭀ U+2971, U+2B40 EQUALS SIGN ABOVE RIGHT/LEFTWARDS ARROW
+ ⥲ ⭁ U+2972, U+2B41 TILDE OPERATOR ABOVE RIGHTWARDS ARROW, REVERSE
+ TILDE OPERATOR ABOVE LEFTWARDS ARROW
+ ⥴ ⭋ U+2974, U+2B4B RIGHTWARDS ARROW ABOVE TILDE OPERATOR,
+ LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+ ⥵ ⭂ U+2975, U+2B42 RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO,
+ LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+ ⥹ ⥻ U+2979, U+297B SUBSET/SUPERSET ABOVE RIGHT/LEFTWARDS ARROW
+ ⦃ ⦄ U+2983, U+2984 LEFT/RIGHT WHITE CURLY BRACKET
+ ⦅ ⦆ U+2985, U+2986 LEFT/RIGHT WHITE PARENTHESIS
+ ⦇ ⦈ U+2987, U+2988 Z NOTATION LEFT/RIGHT IMAGE BRACKET
+ ⦉ ⦊ U+2989, U+298A Z NOTATION LEFT/RIGHT BINDING BRACKET
+ ⦋ ⦌ U+298B, U+298C LEFT/RIGHT SQUARE BRACKET WITH UNDERBAR
+ ⦍ ⦐ U+298D, U+2990 LEFT/RIGHT SQUARE BRACKET WITH TICK IN TOP
+ CORNER
+ ⦏ ⦎ U+298F, U+298E LEFT/RIGHT SQUARE BRACKET WITH TICK IN BOTTOM
+ CORNER
+ ⦑ ⦒ U+2991, U+2992 LEFT/RIGHT ANGLE BRACKET WITH DOT
+ ⦓ ⦔ U+2993, U+2994 LEFT/RIGHT ARC LESS-THAN/GREATER-THAN BRACKET
+ ⦕ ⦖ U+2995, U+2996 DOUBLE LEFT/RIGHT ARC GREATER-THAN/LESS-THAN
+ BRACKET
+ ⦗ ⦘ U+2997, U+2998 LEFT/RIGHT BLACK TORTOISE SHELL BRACKET
+ ⦨ ⦩ U+29A8, U+29A9 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW
+ POINTING UP AND RIGHT/LEFT
+ ⦪ ⦫ U+29AA, U+29AB MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW
+ POINTING DOWN AND RIGHT/LEFT
+ ⦳ ⦴ U+29B3, U+29B4 EMPTY SET WITH RIGHT/LEFT ARROW ABOVE
+ ⧀ ⧁ U+29C0, U+29C1 CIRCLED LESS-THAN/GREATER-THAN
+ ⧘ ⧙ U+29D8, U+29D9 LEFT/RIGHT WIGGLY FENCE
+ ⧚ ⧛ U+29DA, U+29DB LEFT/RIGHT DOUBLE WIGGLY FENCE
+ ⧼ ⧽ U+29FC, U+29FD LEFT/RIGHT-POINTING CURVED ANGLE BRACKET
+ ⩹ ⩺ U+2A79, U+2A7A LESS-THAN/GREATER-THAN WITH CIRCLE INSIDE
+ ⩻ ⩼ U+2A7B, U+2A7C LESS-THAN/GREATER-THAN WITH QUESTION MARK ABOVE
+ ⩽ ⩾ U+2A7D, U+2A7E LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO
+ ⩿ ⪀ U+2A7F, U+2A80 LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
+ DOT INSIDE
+ ⪁ ⪂ U+2A81, U+2A82 LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
+ DOT ABOVE
+ ⪃ ⪄ U+2A83, U+2A84 LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
+ DOT ABOVE RIGHT/LEFT
+ ⪅ ⪆ U+2A85, U+2A86 LESS-THAN/GREATER-THAN OR APPROXIMATE
+ ⪇ ⪈ U+2A87, U+2A88 LESS-THAN/GREATER-THAN AND SINGLE-LINE NOT
+ EQUAL TO
+ ⪉ ⪊ U+2A89, U+2A8A LESS-THAN/GREATER-THAN AND NOT APPROXIMATE
+ ⪍ ⪎ U+2A8D, U+2A8E LESS-THAN/GREATER-THAN ABOVE SIMILAR OR EQUAL
+ ⪕ ⪖ U+2A95, U+2A96 SLANTED EQUAL TO OR LESS-THAN/GREATER-THAN
+ ⪗ ⪘ U+2A97, U+2A98 SLANTED EQUAL TO OR LESS-THAN/GREATER-THAN WITH
+ DOT INSIDE
+ ⪙ ⪚ U+2A99, U+2A9A DOUBLE-LINE EQUAL TO OR LESS-THAN/GREATER-THAN
+ ⪛ ⪜ U+2A9B, U+2A9C DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN/
+ GREATER-THAN
+ ⪝ ⪞ U+2A9D, U+2A9E SIMILAR OR LESS-THAN/GREATER-THAN
+ ⪟ ⪠ U+2A9F, U+2AA0 SIMILAR ABOVE LESS-THAN/GREATER-THAN ABOVE
+ EQUALS SIGN
+ ⪡ ⪢ U+2AA1, U+2AA2 DOUBLE NESTED LESS-THAN/GREATER-THAN
+ ⪦ ⪧ U+2AA6, U+2AA7 LESS-THAN/GREATER-THAN CLOSED BY CURVE
+ ⪨ ⪩ U+2AA8, U+2AA9 LESS-THAN/GREATER-THAN CLOSED BY CURVE ABOVE
+ SLANTED EQUAL
+ ⪪ ⪫ U+2AAA, U+2AAB SMALLER THAN/LARGER THAN
+ ⪬ ⪭ U+2AAC, U+2AAD SMALLER THAN/LARGER THAN OR EQUAL TO
+ ⪯ ⪰ U+2AAF, U+2AB0 PRECEDES/SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+ ⪱ ⪲ U+2AB1, U+2AB2 PRECEDES/SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+ ⪳ ⪴ U+2AB3, U+2AB4 PRECEDES/SUCCEEDS ABOVE EQUALS SIGN
+ ⪵ ⪶ U+2AB5, U+2AB6 PRECEDES/SUCCEEDS ABOVE NOT EQUAL TO
+ ⪷ ⪸ U+2AB7, U+2AB8 PRECEDES/SUCCEEDS ABOVE ALMOST EQUAL TO
+ ⪹ ⪺ U+2AB9, U+2ABA PRECEDES/SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+ ⪻ ⪼ U+2ABB, U+2ABC DOUBLE PRECEDES/SUCCEEDS
+ ⪽ ⪾ U+2ABD, U+2ABE SUBSET/SUPERSET WITH DOT
+ ⪿ ⫀ U+2ABF, U+2AC0 SUBSET/SUPERSET WITH PLUS SIGN BELOW
+ ⫁ ⫂ U+2AC1, U+2AC2 SUBSET/SUPERSET WITH MULTIPLICATION SIGN BELOW
+ ⫃ ⫄ U+2AC3, U+2AC4 SUBSET/SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+ ⫅ ⫆ U+2AC5, U+2AC6 SUBSET/SUPERSET OF ABOVE EQUALS SIGN
+ ⫇ ⫈ U+2AC7, U+2AC8 SUBSET/SUPERSET OF ABOVE TILDE OPERATOR
+ ⫉ ⫊ U+2AC9, U+2ACA SUBSET/SUPERSET OF ABOVE ALMOST EQUAL TO
+ ⫋ ⫌ U+2ACB, U+2ACC SUBSET/SUPERSET OF ABOVE NOT EQUAL TO
+ ⫏ ⫐ U+2ACF, U+2AD0 CLOSED SUBSET/SUPERSET
+ ⫑ ⫒ U+2AD1, U+2AD2 CLOSED SUBSET/SUPERSET OR EQUAL TO
+ ⫕ ⫖ U+2AD5, U+2AD6 SUBSET/SUPERSET ABOVE SUBSET/SUPERSET
+ ⫥ ⊫ U+2AE5, U+22AB DOUBLE VERTICAL BAR DOUBLE LEFT/RIGHT TURNSTILE
+ ⫷ ⫸ U+2AF7, U+2AF8 TRIPLE NESTED LESS-THAN/GREATER-THAN
+ ⫹ ⫺ U+2AF9, U+2AFA DOUBLE-LINE SLANTED LESS-THAN/GREATER-THAN OR
+ EQUAL TO
+ ⭆ ⭅ U+2B46, U+2B45 RIGHT/LEFTWARDS QUADRUPLE ARROW
+ ⭇ ⭉ U+2B47, U+2B49 REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW,
+ TILDE OPERATOR ABOVE LEFTWARDS ARROW
+ ⭈ ⭊ U+2B48, U+2B4A RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL
+ TO, LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
+ ⭌ ⥳ U+2B4C, U+2973 RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR,
+ LEFTWARDS ARROW ABOVE TILDE OPERATOR
+ ⭢ ⭠ U+2B62, U+2B60 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW
+ ⭬ ⭪ U+2B6C, U+2B6A RIGHT/LEFTWARDS TRIANGLE-HEADED DASHED ARROW
+ ⭲ ⭰ U+2B72, U+2B70 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
+ ⭼ ⭺ U+2B7C, U+2B7A RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
+ DOUBLE VERTICAL STROKE
+ ⮆ ⮄ U+2B86, U+2B84 RIGHT/LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
+ ⮊ ⮈ U+2B8A, U+2B88 RIGHT/LEFTWARDS BLACK CIRCLED WHITE ARROW
+ ⮕ ⬅ U+2B95, U+2B05 RIGHT/LEFTWARDS BLACK ARROW
+ ⮚ ⮘ U+2B9A, U+2B98 THREE-D TOP-LIGHTED RIGHT/LEFTWARDS EQUILATERAL
+ ARROWHEAD
+ ⮞ ⮜ U+2B9E, U+2B9C BLACK RIGHT/LEFTWARDS EQUILATERAL ARROWHEAD
+ ⮡ ⮠ U+2BA1, U+2BA0 DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP
+ RIGHT/LEFTWARDS
+ ⮣ ⮢ U+2BA3, U+2BA2 UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP
+ RIGHT/LEFTWARDS
+ ⮩ ⮨ U+2BA9, U+2BA8 BLACK CURVED DOWNWARDS AND RIGHT/LEFTWARDS ARROW
+ ⮫ ⮪ U+2BAB, U+2BAA BLACK CURVED UPWARDS AND RIGHT/LEFTWARDS ARROW
+ ⮱ ⮰ U+2BB1, U+2BB0 RIBBON ARROW DOWN RIGHT/LEFT
+ ⮳ ⮲ U+2BB3, U+2BB2 RIBBON ARROW UP RIGHT/LEFT
+ ⯮ ⯬ U+2BEE, U+2BEC RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE
+ ARROWHEADS
+ ⸂ ⸃ U+2E02, U+2E03 LEFT/RIGHT SUBSTITUTION BRACKET
+ ⸃ ⸂ U+2E03, U+2E02 RIGHT/LEFT SUBSTITUTION BRACKET
+ ⸄ ⸅ U+2E04, U+2E05 LEFT/RIGHT DOTTED SUBSTITUTION BRACKET
+ ⸅ ⸄ U+2E05, U+2E04 RIGHT/LEFT DOTTED SUBSTITUTION BRACKET
+ ⸉ ⸊ U+2E09, U+2E0A LEFT/RIGHT TRANSPOSITION BRACKET
+ ⸊ ⸉ U+2E0A, U+2E09 RIGHT/LEFT TRANSPOSITION BRACKET
+ ⸌ ⸍ U+2E0C, U+2E0D LEFT/RIGHT RAISED OMISSION BRACKET
+ ⸍ ⸌ U+2E0D, U+2E0C RIGHT/LEFT RAISED OMISSION BRACKET
+ ⸑ ⸐ U+2E11, U+2E10 REVERSED FORKED PARAGRAPHOS, FORKED PARAGRAPHOS
+ ⸜ ⸝ U+2E1C, U+2E1D LEFT/RIGHT LOW PARAPHRASE BRACKET
+ ⸝ ⸜ U+2E1D, U+2E1C RIGHT/LEFT LOW PARAPHRASE BRACKET
+ ⸠ ⸡ U+2E20, U+2E21 LEFT/RIGHT VERTICAL BAR WITH QUILL
+ ⸡ ⸠ U+2E21, U+2E20 RIGHT/LEFT VERTICAL BAR WITH QUILL
+ ⸢ ⸣ U+2E22, U+2E23 TOP LEFT/RIGHT HALF BRACKET
+ ⸤ ⸥ U+2E24, U+2E25 BOTTOM LEFT/RIGHT HALF BRACKET
+ ⸦ ⸧ U+2E26, U+2E27 LEFT/RIGHT SIDEWAYS U BRACKET
+ ⸨ ⸩ U+2E28, U+2E29 LEFT/RIGHT DOUBLE PARENTHESIS
+ ⸶ ⸷ U+2E36, U+2E37 DAGGER WITH LEFT/RIGHT GUARD
+ ⹂ „ U+2E42, U+201E DOUBLE LOW-REVERSED-9 QUOTATION MARK, DOUBLE
+ LOW-9 QUOTATION MARK
+ ⹕ ⹖ U+2E55, U+2E56 LEFT/RIGHT SQUARE BRACKET WITH STROKE
+ ⹗ ⹘ U+2E57, U+2E58 LEFT/RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+ ⹙ ⹚ U+2E59, U+2E5A TOP HALF LEFT/RIGHT PARENTHESIS
+ ⹛ ⹜ U+2E5B, U+2E5C BOTTOM HALF LEFT/RIGHT PARENTHESIS
+ 〈 〉 U+3008, U+3009 LEFT/RIGHT ANGLE BRACKET
+ 《 》 U+300A, U+300B LEFT/RIGHT DOUBLE ANGLE BRACKET
+ 「 」 U+300C, U+300D LEFT/RIGHT CORNER BRACKET
+ 『 』 U+300E, U+300F LEFT/RIGHT WHITE CORNER BRACKET
+ 【 】 U+3010, U+3011 LEFT/RIGHT BLACK LENTICULAR BRACKET
+ 〔 〕 U+3014, U+3015 LEFT/RIGHT TORTOISE SHELL BRACKET
+ 〖 〗 U+3016, U+3017 LEFT/RIGHT WHITE LENTICULAR BRACKET
+ 〘 〙 U+3018, U+3019 LEFT/RIGHT WHITE TORTOISE SHELL BRACKET
+ 〚 〛 U+301A, U+301B LEFT/RIGHT WHITE SQUARE BRACKET
+ 〝 〞 U+301D, U+301E REVERSED DOUBLE PRIME QUOTATION MARK, DOUBLE
+ PRIME QUOTATION MARK
+ ꧁ ꧂ U+A9C1, U+A9C2 JAVANESE LEFT/RIGHT RERENGGAN
+ ﴾ ﴿ U+FD3E, U+FD3F ORNATE LEFT/RIGHT PARENTHESIS
+ ﹙ ﹚ U+FE59, U+FE5A SMALL LEFT/RIGHT PARENTHESIS
+ ﹛ ﹜ U+FE5B, U+FE5C SMALL LEFT/RIGHT CURLY BRACKET
+ ﹝ ﹞ U+FE5D, U+FE5E SMALL LEFT/RIGHT TORTOISE SHELL BRACKET
+ ﹤ ﹥ U+FE64, U+FE65 SMALL LESS-THAN/GREATER-THAN SIGN
+ ( ) U+FF08, U+FF09 FULLWIDTH LEFT/RIGHT PARENTHESIS
+ < > U+FF1C, U+FF1E FULLWIDTH LESS-THAN/GREATER-THAN SIGN
+ [ ] U+FF3B, U+FF3D FULLWIDTH LEFT/RIGHT SQUARE BRACKET
+ { } U+FF5B, U+FF5D FULLWIDTH LEFT/RIGHT CURLY BRACKET
+ ⦅ ⦆ U+FF5F, U+FF60 FULLWIDTH LEFT/RIGHT WHITE PARENTHESIS
+ 「 」 U+FF62, U+FF63 HALFWIDTH LEFT/RIGHT CORNER BRACKET
+ → ← U+FFEB, U+FFE9 HALFWIDTH RIGHT/LEFTWARDS ARROW
+ 𝄃 𝄂 U+1D103, U+1D102 MUSICAL SYMBOL REVERSE FINAL BARLINE, MUSICAL
+ SYMBOL FINAL BARLINE
+ 𝄆 𝄇 U+1D106, U+1D107 MUSICAL SYMBOL LEFT/RIGHT REPEAT SIGN
+ 👉 👈 U+1F449, U+1F448 WHITE RIGHT/LEFT POINTING BACKHAND INDEX
+ 🔈 🕨 U+1F508, U+1F568 SPEAKER, RIGHT SPEAKER
+ 🔉 🕩 U+1F509, U+1F569 SPEAKER WITH ONE SOUND WAVE, RIGHT SPEAKER WITH
+ ONE SOUND WAVE
+ 🔊 🕪 U+1F50A, U+1F56A SPEAKER WITH THREE SOUND WAVES, RIGHT SPEAKER
+ WITH THREE SOUND WAVES
+ 🕻 🕽 U+1F57B, U+1F57D LEFT/RIGHT HAND TELEPHONE RECEIVER
+ 🖙 🖘 U+1F599, U+1F598 SIDEWAYS WHITE RIGHT/LEFT POINTING INDEX
+ 🖛 🖚 U+1F59B, U+1F59A SIDEWAYS BLACK RIGHT/LEFT POINTING INDEX
+ 🖝 🖜 U+1F59D, U+1F59C BLACK RIGHT/LEFT POINTING BACKHAND INDEX
+ 🗦 🗧 U+1F5E6, U+1F5E7 THREE RAYS LEFT/RIGHT
+ 🠂 🠀 U+1F802, U+1F800 RIGHT/LEFTWARDS ARROW WITH SMALL TRIANGLE
+ ARROWHEAD
+ 🠆 🠄 U+1F806, U+1F804 RIGHT/LEFTWARDS ARROW WITH MEDIUM TRIANGLE
+ ARROWHEAD
+ 🠊 🠈 U+1F80A, U+1F808 RIGHT/LEFTWARDS ARROW WITH LARGE TRIANGLE
+ ARROWHEAD
+ 🠒 🠐 U+1F812, U+1F810 RIGHT/LEFTWARDS ARROW WITH SMALL EQUILATERAL
+ ARROWHEAD
+ 🠖 🠔 U+1F816, U+1F814 RIGHT/LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+ 🠚 🠘 U+1F81A, U+1F818 HEAVY RIGHT/LEFTWARDS ARROW WITH EQUILATERAL
+ ARROWHEAD
+ 🠞 🠜 U+1F81E, U+1F81C HEAVY RIGHT/LEFTWARDS ARROW WITH LARGE
+ EQUILATERAL ARROWHEAD
+ 🠢 🠠 U+1F822, U+1F820 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
+ NARROW SHAFT
+ 🠦 🠤 U+1F826, U+1F824 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
+ MEDIUM SHAFT
+ 🠪 🠨 U+1F82A, U+1F828 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD
+ SHAFT
+ 🠮 🠬 U+1F82E, U+1F82C RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
+ HEAVY SHAFT
+ 🠲 🠰 U+1F832, U+1F830 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY
+ HEAVY SHAFT
+ 🠶 🠴 U+1F836, U+1F834 RIGHT/LEFTWARDS FINGER-POST ARROW
+ 🠺 🠸 U+1F83A, U+1F838 RIGHT/LEFTWARDS SQUARED ARROW
+ 🠾 🠼 U+1F83E, U+1F83C RIGHT/LEFTWARDS COMPRESSED ARROW
+ 🡂 🡀 U+1F842, U+1F840 RIGHT/LEFTWARDS HEAVY COMPRESSED ARROW
+ 🡆 🡄 U+1F846, U+1F844 RIGHT/LEFTWARDS HEAVY ARROW
+ 🡒 🡐 U+1F852, U+1F850 RIGHT/LEFTWARDS SANS-SERIF ARROW
+ 🡢 🡠 U+1F862, U+1F860 WIDE-HEADED RIGHT/LEFTWARDS LIGHT BARB ARROW
+ 🡪 🡨 U+1F86A, U+1F868 WIDE-HEADED RIGHT/LEFTWARDS BARB ARROW
+ 🡲 🡰 U+1F872, U+1F870 WIDE-HEADED RIGHT/LEFTWARDS MEDIUM BARB ARROW
+ 🡺 🡸 U+1F87A, U+1F878 WIDE-HEADED RIGHT/LEFTWARDS HEAVY BARB ARROW
+ 🢂 🢀 U+1F882, U+1F880 WIDE-HEADED RIGHT/LEFTWARDS VERY HEAVY BARB
+ ARROW
+ 🢒 🢐 U+1F892, U+1F890 RIGHT/LEFTWARDS TRIANGLE ARROWHEAD
+ 🢖 🢔 U+1F896, U+1F894 RIGHT/LEFTWARDS WHITE ARROW WITHIN TRIANGLE
+ ARROWHEAD
+ 🢚 🢘 U+1F89A, U+1F898 RIGHT/LEFTWARDS ARROW WITH NOTCHED TAIL
+ 🢡 🢠 U+1F8A1, U+1F8A0 RIGHTWARDS BOTTOM SHADED WHITE ARROW,
+ LEFTWARDS BOTTOM-SHADED WHITE ARROW
+ 🢣 🢢 U+1F8A3, U+1F8A2 RIGHT/LEFTWARDS TOP SHADED WHITE ARROW
+ 🢥 🢦 U+1F8A5, U+1F8A6 RIGHT/LEFTWARDS RIGHT-SHADED WHITE ARROW
+ 🢧 🢤 U+1F8A7, U+1F8A4 RIGHT/LEFTWARDS LEFT-SHADED WHITE ARROW
+ 🢩 🢨 U+1F8A9, U+1F8A8 RIGHT/LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
+ 🢫 🢪 U+1F8AB, U+1F8AA RIGHT/LEFTWARDS FRONT-TILTED SHADOWED WHITE
+ ARROW
+
+=head2 The 'module_true' feature
+
+This feature removes the need to return a true value at the end of a module
+loaded with C<require> or C<use>. Any errors during compilation will cause
+failures, but reaching the end of the module when this feature is in effect
+will prevent C<perl> from throwing an exception that the module "did not return
+a true value".
+
+=head2 The 'class' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change or be removed 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::class";
+
+This feature enables the C<class> block syntax and other associated keywords
+which implement the "new" object system, previously codenamed "Corinna".
+
=head1 FEATURE BUNDLES
It's possible to load multiple features together, using
@@ -501,6 +963,14 @@ The following feature bundles are available:
postderef_qq say state switch unicode_eval
unicode_strings
+ :5.36 bareword_filehandles bitwise current_sub
+ evalbytes fc isa postderef_qq say signatures
+ state unicode_eval unicode_strings
+
+ :5.38 bitwise current_sub evalbytes fc isa
+ module_true postderef_qq say signatures
+ state unicode_eval unicode_strings
+
The C<:default> bundle represents the feature set that is enabled before
any C<use feature> or C<no feature> declaration.
@@ -530,12 +1000,12 @@ main compilation unit (that is, the one-liner that follows C<-E>).
By explicitly requiring a minimum Perl version number for your program, with
the C<use VERSION> construct. That is,
- use v5.10.0;
+ use v5.36.0;
will do an implicit
no feature ':all';
- use feature ':5.10';
+ use feature ':5.36';
and so on. Note how the trailing sub-version
is automatically stripped from the
@@ -543,7 +1013,7 @@ version.
But to avoid portability warnings (see L<perlfunc/use>), you may prefer:
- use 5.010;
+ use 5.036;
with the same effect.
@@ -555,6 +1025,76 @@ also does the equivalent of C<use strict>; see L<perlfunc/use> for details.
=back
+=head1 CHECKING FEATURES
+
+C<feature> provides some simple APIs to check which features are enabled.
+
+These functions cannot be imported and must be called by their fully
+qualified names. If you don't otherwise need to set a feature you will
+need to ensure C<feature> is loaded with:
+
+ use feature ();
+
+=over
+
+=item feature_enabled($feature)
+
+=item feature_enabled($feature, $depth)
+
+ package MyStandardEnforcer;
+ use feature ();
+ use Carp "croak";
+ sub import {
+ croak "disable indirect!" if feature::feature_enabled("indirect");
+ }
+
+Test whether a named feature is enabled at a given level in the call
+stack, returning a true value if it is. C<$depth> defaults to 1,
+which checks the scope that called the scope calling
+feature::feature_enabled().
+
+croaks for an unknown feature name.
+
+=item features_enabled()
+
+=item features_enabled($depth)
+
+ package ReportEnabledFeatures;
+ use feature "say";
+ sub import {
+ say STDERR join " ", feature::features_enabled();
+ }
+
+Returns a list of the features enabled at a given level in the call
+stack. C<$depth> defaults to 1, which checks the scope that called
+the scope calling feature::features_enabled().
+
+=item feature_bundle()
+
+=item feature_bundle($depth)
+
+Returns the feature bundle, if any, selected at a given level in the
+call stack. C<$depth> defaults to 1, which checks the scope that called
+the scope calling feature::feature_bundle().
+
+Returns an undefined value if no feature bundle is selected in the
+scope.
+
+The bundle name returned will be for the earliest bundle matching the
+selected bundle, so:
+
+ use feature ();
+ use v5.12;
+ BEGIN { print feature::feature_bundle(0); }
+
+will print C<5.11>.
+
+This returns internal state, at this point C<use v5.12;> sets the
+feature bundle, but C< use feature ":5.12"; > does not set the feature
+bundle. This may change in a future release of perl.
+
+=back
+
=cut
sub import {
@@ -644,6 +1184,67 @@ sub croak {
Carp::croak(@_);
}
+sub features_enabled {
+ my ($depth) = @_;
+
+ $depth //= 1;
+ my @frame = caller($depth+1)
+ or return;
+ my ($hints, $hinthash) = @frame[8, 10];
+
+ my $bundle_number = $hints & $hint_mask;
+ if ($bundle_number != $hint_mask) {
+ return $feature_bundle{$hint_bundles[$bundle_number >> $hint_shift]}->@*;
+ }
+ else {
+ my @features;
+ for my $feature (sort keys %feature) {
+ if ($hinthash->{$feature{$feature}}) {
+ push @features, $feature;
+ }
+ }
+ return @features;
+ }
+}
+
+sub feature_enabled {
+ my ($feature, $depth) = @_;
+
+ $depth //= 1;
+ my @frame = caller($depth+1)
+ or return;
+ my ($hints, $hinthash) = @frame[8, 10];
+
+ my $hint_feature = $feature{$feature}
+ or croak "Unknown feature $feature";
+ my $bundle_number = $hints & $hint_mask;
+ if ($bundle_number != $hint_mask) {
+ my $bundle = $hint_bundles[$bundle_number >> $hint_shift];
+ for my $bundle_feature ($feature_bundle{$bundle}->@*) {
+ return 1 if $bundle_feature eq $feature;
+ }
+ return 0;
+ }
+ else {
+ return $hinthash->{$hint_feature} // 0;
+ }
+}
+
+sub feature_bundle {
+ my $depth = shift;
+
+ $depth //= 1;
+ my @frame = caller($depth+1)
+ or return;
+ my $bundle_number = $frame[8] & $hint_mask;
+ if ($bundle_number != $hint_mask) {
+ return $hint_bundles[$bundle_number >> $hint_shift];
+ }
+ else {
+ return undef;
+ }
+}
+
1;
-# ex: set ro:
+# ex: set ro ft=perl:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm
index 87f93806df..7386822346 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm
@@ -1,6 +1,6 @@
package if;
use strict;
-our $VERSION = '0.0609';
+our $VERSION = '0.0610';
sub work {
my $method = shift() ? 'import' : 'unimport';
@@ -92,7 +92,7 @@ version of the module.
=head1 SEE ALSO
-L<Module::Requires> can be used to conditionally load one or modules,
+L<Module::Requires> can be used to conditionally load one or more modules,
with constraints based on the version of the module.
Unlike C<if> though, L<Module::Requires> is not a core module.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/meta_notation.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/meta_notation.pm
index eea85875c9..e856bb950f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/meta_notation.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/meta_notation.pm
@@ -42,7 +42,6 @@ sub _meta_notation ($) {
$string =~ s/([\240-\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;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/mro.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/mro.pm
index 1889bd67f6..6637ea8eb7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/mro.pm
+++ b/systems/texlive/tlnet/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.25_001';
+our $VERSION = '1.28';
require XSLoader;
XSLoader::load('mro');
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm
index 880e4371bb..437c938ce6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm
@@ -1,5 +1,5 @@
package ok;
-our $VERSION = '1.302183';
+our $VERSION = '1.302194';
use strict;
use Test::More ();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm
index 3e213816f9..86111ca864 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm
@@ -1,7 +1,7 @@
package open;
use warnings;
-our $VERSION = '1.12';
+our $VERSION = '1.13';
require 5.008001; # for PerlIO::get_layers()
@@ -120,20 +120,11 @@ sub import {
${^OPEN} = join("\0", $in, $out);
if ($std) {
if ($in) {
- if ($in =~ /:utf8\b/) {
- binmode(STDIN, ":utf8");
- } elsif ($in =~ /(\w+\(.+\))/) {
- binmode(STDIN, ":$1");
- }
+ binmode STDIN, $in;
}
if ($out) {
- if ($out =~ /:utf8\b/) {
- binmode(STDOUT, ":utf8");
- binmode(STDERR, ":utf8");
- } elsif ($out =~ /(\w+\(.+\))/) {
- binmode(STDOUT, ":$1");
- binmode(STDERR, ":$1");
- }
+ binmode(STDOUT, $out);
+ binmode(STDERR, $out);
}
}
}
@@ -243,6 +234,10 @@ to this pragma in its own lexical scope.
{ use open ':std', IO => ':encoding(UTF-8)' }
+Before Perl 5.34, C<:std> would only apply the first layer provided that is
+either C<:utf8> or has a layer argument, e.g. C<:encoding(UTF-8)>. Since
+Perl 5.34 it will apply the same layer stack it provides to C<${^OPEN}>.
+
=head1 IMPLEMENTATION DETAILS
There is a class method in C<PerlIO::Layer> C<find> which is
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm
index 8a5eeb8df8..d782271296 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm
@@ -3,7 +3,7 @@ package overload;
use strict;
no strict 'refs';
-our $VERSION = '1.33';
+our $VERSION = '1.37';
our %ops = (
with_assign => "+ - * / % ** << >> x .",
@@ -29,153 +29,151 @@ my %ops_seen;
sub nil {}
sub OVERLOAD {
- my $package = shift;
- my %arg = @_;
- my $sub;
- *{$package . "::(("} = \&nil; # Make it findable via fetchmethod.
- for (keys %arg) {
- if ($_ eq 'fallback') {
- for my $sym (*{$package . "::()"}) {
- *$sym = \&nil; # Make it findable via fetchmethod.
- $$sym = $arg{$_};
- }
- } else {
- warnings::warnif("overload arg '$_' is invalid")
- unless exists $ops_seen{$_};
- $sub = $arg{$_};
- if (not ref $sub) {
- $ {$package . "::(" . $_} = $sub;
- $sub = \&nil;
- }
- #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n";
- *{$package . "::(" . $_} = \&{ $sub };
+ my $package = shift;
+ my %arg = @_;
+ my $sub;
+ *{$package . "::(("} = \&nil; # Make it findable via fetchmethod.
+ for (keys %arg) {
+ if ($_ eq 'fallback') {
+ for my $sym (*{$package . "::()"}) {
+ *$sym = \&nil; # Make it findable via fetchmethod.
+ $$sym = $arg{$_};
+ }
+ } else {
+ warnings::warnif("overload arg '$_' is invalid")
+ unless exists $ops_seen{$_};
+ $sub = $arg{$_};
+ if (not ref $sub) {
+ $ {$package . "::(" . $_} = $sub;
+ $sub = \&nil;
+ }
+ #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n";
+ *{$package . "::(" . $_} = \&{ $sub };
+ }
}
- }
}
sub import {
- my $package = (caller())[0];
- # *{$package . "::OVERLOAD"} = \&OVERLOAD;
- shift;
- $package->overload::OVERLOAD(@_);
+ my $package = caller();
+ # *{$package . "::OVERLOAD"} = \&OVERLOAD;
+ shift;
+ $package->overload::OVERLOAD(@_);
}
sub unimport {
- my $package = (caller())[0];
- shift;
- *{$package . "::(("} = \&nil;
- for (@_) {
- warnings::warnif("overload arg '$_' is invalid")
- unless exists $ops_seen{$_};
- delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_};
- }
+ my $package = caller();
+ shift;
+ *{$package . "::(("} = \&nil;
+ for (@_) {
+ warnings::warnif("overload arg '$_' is invalid")
+ unless exists $ops_seen{$_};
+ delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_};
+ }
}
sub Overloaded {
- my $package = shift;
- $package = ref $package if ref $package;
- mycan ($package, '()') || mycan ($package, '((');
+ my $package = shift;
+ $package = ref $package if ref $package;
+ mycan ($package, '()') || mycan ($package, '((');
}
sub ov_method {
- my $globref = shift;
- return undef unless $globref;
- my $sub = \&{*$globref};
- no overloading;
- return $sub if $sub != \&nil;
- return shift->can($ {*$globref});
+ my $globref = shift;
+ return undef unless $globref;
+ my $sub = \&{*$globref};
+ no overloading;
+ return $sub if $sub != \&nil;
+ return shift->can($ {*$globref});
}
sub OverloadedStringify {
- my $package = shift;
- $package = ref $package if ref $package;
- #$package->can('(""')
- ov_method mycan($package, '(""'), $package
- or ov_method mycan($package, '(0+'), $package
- or ov_method mycan($package, '(bool'), $package
- or ov_method mycan($package, '(nomethod'), $package;
+ my $package = shift;
+ $package = ref $package if ref $package;
+ #$package->can('(""')
+ ov_method mycan($package, '(""'), $package
+ or ov_method mycan($package, '(0+'), $package
+ or ov_method mycan($package, '(bool'), $package
+ or ov_method mycan($package, '(nomethod'), $package;
}
sub Method {
- my $package = shift;
- if(ref $package) {
- local $@;
- local $!;
- require Scalar::Util;
- $package = Scalar::Util::blessed($package);
- return undef if !defined $package;
- }
- #my $meth = $package->can('(' . shift);
- ov_method mycan($package, '(' . shift), $package;
- #return $meth if $meth ne \&nil;
- #return $ {*{$meth}};
+ my $package = shift;
+ if (ref $package) {
+ no warnings 'experimental::builtin';
+ $package = builtin::blessed($package);
+ return undef if !defined $package;
+ }
+ #my $meth = $package->can('(' . shift);
+ ov_method mycan($package, '(' . shift), $package;
+ #return $meth if $meth ne \&nil;
+ #return $ {*{$meth}};
}
sub AddrRef {
- no overloading;
- "$_[0]";
+ no overloading;
+ "$_[0]";
}
*StrVal = *AddrRef;
-sub mycan { # Real can would leave stubs.
- my ($package, $meth) = @_;
+sub mycan { # Real can would leave stubs.
+ my ($package, $meth) = @_;
- local $@;
- local $!;
- require mro;
+ local $@;
+ local $!;
+ require mro;
- my $mro = mro::get_linear_isa($package);
- foreach my $p (@$mro) {
- my $fqmeth = $p . q{::} . $meth;
- return \*{$fqmeth} if defined &{$fqmeth};
- }
+ my $mro = mro::get_linear_isa($package);
+ foreach my $p (@$mro) {
+ my $fqmeth = $p . q{::} . $meth;
+ return \*{$fqmeth} if defined &{$fqmeth};
+ }
- return undef;
+ return undef;
}
my %constants = (
- 'integer' => 0x1000, # HINT_NEW_INTEGER
- 'float' => 0x2000, # HINT_NEW_FLOAT
- 'binary' => 0x4000, # HINT_NEW_BINARY
- 'q' => 0x8000, # HINT_NEW_STRING
- 'qr' => 0x10000, # HINT_NEW_RE
- );
+ 'integer' => 0x1000, # HINT_NEW_INTEGER
+ 'float' => 0x2000, # HINT_NEW_FLOAT
+ 'binary' => 0x4000, # HINT_NEW_BINARY
+ 'q' => 0x8000, # HINT_NEW_STRING
+ 'qr' => 0x10000, # HINT_NEW_RE
+);
use warnings::register;
sub constant {
- # Arguments: what, sub
- while (@_) {
- if (@_ == 1) {
- warnings::warnif ("Odd number of arguments for overload::constant");
- last;
- }
- elsif (!exists $constants {$_ [0]}) {
- warnings::warnif ("'$_[0]' is not an overloadable type");
- }
- elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) {
- # Can't use C<ref $_[1] eq "CODE"> above as code references can be
- # blessed, and C<ref> would return the package the ref is blessed into.
- if (warnings::enabled) {
- $_ [1] = "undef" unless defined $_ [1];
- warnings::warn ("'$_[1]' is not a code reference");
+ # Arguments: what, sub
+ while (@_) {
+ if (@_ == 1) {
+ warnings::warnif ("Odd number of arguments for overload::constant");
+ last;
}
+ elsif (!exists $constants {$_ [0]}) {
+ warnings::warnif ("'$_[0]' is not an overloadable type");
+ }
+ elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) {
+ # Can't use C<ref $_[1] eq "CODE"> above as code references can be
+ # blessed, and C<ref> would return the package the ref is blessed into.
+ if (warnings::enabled) {
+ $_ [1] = "undef" unless defined $_ [1];
+ warnings::warn ("'$_[1]' is not a code reference");
+ }
+ }
+ else {
+ $^H{$_[0]} = $_[1];
+ $^H |= $constants{$_[0]};
+ }
+ shift, shift;
}
- else {
- $^H{$_[0]} = $_[1];
- $^H |= $constants{$_[0]};
- }
- shift, shift;
- }
}
sub remove_constant {
- # Arguments: what, sub
- while (@_) {
- delete $^H{$_[0]};
- $^H &= ~ $constants{$_[0]};
- shift, shift;
- }
+ # Arguments: what, sub
+ while (@_) {
+ delete $^H{$_[0]};
+ $^H &= ~ $constants{$_[0]};
+ shift, shift;
+ }
}
1;
@@ -191,9 +189,9 @@ overload - Package for overloading Perl operations
package SomeThing;
use overload
- '+' => \&myadd,
- '-' => \&mysub;
- # etc
+ '+' => \&myadd,
+ '-' => \&mysub;
+ # etc
...
package main;
@@ -365,21 +363,21 @@ The complete list of keys that can be specified in the C<use overload>
directive are given, separated by spaces, in the values of the
hash C<%overload::ops>:
- with_assign => '+ - * / % ** << >> x .',
- assign => '+= -= *= /= %= **= <<= >>= x= .=',
- num_comparison => '< <= > >= == !=',
- '3way_comparison'=> '<=> cmp',
- str_comparison => 'lt le gt ge eq ne',
- binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
- unary => 'neg ! ~ ~.',
- mutators => '++ --',
- func => 'atan2 cos sin exp abs log sqrt int',
- conversion => 'bool "" 0+ qr',
- iterators => '<>',
- filetest => '-X',
- dereferencing => '${} @{} %{} &{} *{}',
- matching => '~~',
- special => 'nomethod fallback ='
+ with_assign => '+ - * / % ** << >> x .',
+ assign => '+= -= *= /= %= **= <<= >>= x= .=',
+ num_comparison => '< <= > >= == !=',
+ '3way_comparison' => '<=> cmp',
+ str_comparison => 'lt le gt ge eq ne',
+ binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
+ unary => 'neg ! ~ ~.',
+ mutators => '++ --',
+ func => 'atan2 cos sin exp abs log sqrt int',
+ conversion => 'bool "" 0+ qr',
+ iterators => '<>',
+ filetest => '-X',
+ dereferencing => '${} @{} %{} &{} *{}',
+ matching => '~~',
+ special => 'nomethod fallback =',
Most of the overloadable operators map one-to-one to these keys.
Exceptions, including additional overloadable operations not
@@ -922,7 +920,7 @@ Inheritance interacts with overloading in two ways.
If C<value> in
- use overload key => value;
+ use overload key => value;
is a string, it is interpreted as a method name - which may
(in the usual way) be inherited from another class.
@@ -943,7 +941,7 @@ be called to implement operation C<+> for an object in package C<A>.
=back
Note that in Perl version prior to 5.18 inheritance of the C<fallback> key
-was not governed by the above rules. The value of C<fallback> in the first
+was not governed by the above rules. The value of C<fallback> in the first
overloaded ancestor was used. This was fixed in 5.18 to follow the usual
rules of inheritance.
@@ -972,7 +970,7 @@ Gives the string value of C<arg> as in the
absence of stringify overloading. If you
are using this to get the address of a reference (useful for checking if two
references point to the same thing) then you may be better off using
-C<Scalar::Util::refaddr()>, which is faster.
+C<builtin::refaddr()> or C<Scalar::Util::refaddr()>, which are faster.
=item overload::Overloaded(arg)
@@ -982,6 +980,9 @@ Returns true if C<arg> is subject to overloading of some operations.
Returns C<undef> or a reference to the method that implements C<op>.
+Such a method always takes three arguments, which will be enforced if
+it is an XS method.
+
=back
=head2 Overloading Constants
@@ -1041,10 +1042,10 @@ and overload::remove_constant() from anywhere but import() and unimport() method
From these methods they may be called as
sub import {
- shift;
- return unless @_;
- die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant';
- overload::constant integer => sub {Math::BigInt->new(shift)};
+ shift;
+ return unless @_;
+ die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant';
+ overload::constant integer => sub {Math::BigInt->new(shift)};
}
=head1 IMPLEMENTATION
@@ -1082,66 +1083,66 @@ Please add examples to what follows!
Put this in F<two_face.pm> in your Perl library directory:
- package two_face; # Scalars with separate string and
- # numeric values.
- sub new { my $p = shift; bless [@_], $p }
- use overload '""' => \&str, '0+' => \&num, fallback => 1;
- sub num {shift->[1]}
- sub str {shift->[0]}
+ package two_face; # Scalars with separate string and
+ # numeric values.
+ sub new { my $p = shift; bless [@_], $p }
+ use overload '""' => \&str, '0+' => \&num, fallback => 1;
+ sub num {shift->[1]}
+ sub str {shift->[0]}
Use it as follows:
- require two_face;
- my $seven = two_face->new("vii", 7);
- printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1;
- print "seven contains 'i'\n" if $seven =~ /i/;
+ require two_face;
+ my $seven = two_face->new("vii", 7);
+ printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1;
+ print "seven contains 'i'\n" if $seven =~ /i/;
(The second line creates a scalar which has both a string value, and a
numeric value.) This prints:
- seven=vii, seven=7, eight=8
- seven contains 'i'
+ seven=vii, seven=7, eight=8
+ seven contains 'i'
=head2 Two-face References
Suppose you want to create an object which is accessible as both an
array reference and a hash reference.
- package two_refs;
- use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} };
- sub new {
- my $p = shift;
- bless \ [@_], $p;
- }
- sub gethash {
- my %h;
- my $self = shift;
- tie %h, ref $self, $self;
- \%h;
- }
-
- sub TIEHASH { my $p = shift; bless \ shift, $p }
- my %fields;
- my $i = 0;
- $fields{$_} = $i++ foreach qw{zero one two three};
- sub STORE {
- my $self = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $$self->[$key] = shift;
- }
- sub FETCH {
- my $self = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $$self->[$key];
- }
+ package two_refs;
+ use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} };
+ sub new {
+ my $p = shift;
+ bless \ [@_], $p;
+ }
+ sub gethash {
+ my %h;
+ my $self = shift;
+ tie %h, ref $self, $self;
+ \%h;
+ }
+
+ sub TIEHASH { my $p = shift; bless \ shift, $p }
+ my %fields;
+ my $i = 0;
+ $fields{$_} = $i++ foreach qw{zero one two three};
+ sub STORE {
+ my $self = ${shift()};
+ my $key = $fields{shift()};
+ defined $key or die "Out of band access";
+ $$self->[$key] = shift;
+ }
+ sub FETCH {
+ my $self = ${shift()};
+ my $key = $fields{shift()};
+ defined $key or die "Out of band access";
+ $$self->[$key];
+ }
Now one can access an object using both the array and hash syntax:
- my $bar = two_refs->new(3,4,5,6);
- $bar->[2] = 11;
- $bar->{two} == 11 or die 'bad hash fetch';
+ my $bar = two_refs->new(3,4,5,6);
+ $bar->[2] = 11;
+ $bar->{two} == 11 or die 'bad hash fetch';
Note several important features of this example. First of all, the
I<actual> type of $bar is a scalar reference, and we do not overload
@@ -1160,51 +1161,53 @@ hash itself, the only problem one has to circumvent is how to access
this I<actual> hash (as opposed to the I<virtual> hash exhibited by the
overloaded dereference operator). Here is one possible fetching routine:
- sub access_hash {
- my ($self, $key) = (shift, shift);
- my $class = ref $self;
- bless $self, 'overload::dummy'; # Disable overloading of %{}
- my $out = $self->{$key};
- bless $self, $class; # Restore overloading
- $out;
- }
+ sub access_hash {
+ my ($self, $key) = (shift, shift);
+ my $class = ref $self;
+ bless $self, 'overload::dummy'; # Disable overloading of %{}
+ my $out = $self->{$key};
+ bless $self, $class; # Restore overloading
+ $out;
+ }
To remove creation of the tied hash on each access, one may an extra
level of indirection which allows a non-circular structure of references:
- package two_refs1;
- use overload '%{}' => sub { ${shift()}->[1] },
- '@{}' => sub { ${shift()}->[0] };
- sub new {
- my $p = shift;
- my $a = [@_];
- my %h;
- tie %h, $p, $a;
- bless \ [$a, \%h], $p;
- }
- sub gethash {
- my %h;
- my $self = shift;
- tie %h, ref $self, $self;
- \%h;
- }
-
- sub TIEHASH { my $p = shift; bless \ shift, $p }
- my %fields;
- my $i = 0;
- $fields{$_} = $i++ foreach qw{zero one two three};
- sub STORE {
- my $a = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $a->[$key] = shift;
- }
- sub FETCH {
- my $a = ${shift()};
- my $key = $fields{shift()};
- defined $key or die "Out of band access";
- $a->[$key];
- }
+ package two_refs1;
+ use overload
+ '%{}' => sub { ${shift()}->[1] },
+ '@{}' => sub { ${shift()}->[0] };
+
+ sub new {
+ my $p = shift;
+ my $a = [@_];
+ my %h;
+ tie %h, $p, $a;
+ bless \ [$a, \%h], $p;
+ }
+ sub gethash {
+ my %h;
+ my $self = shift;
+ tie %h, ref $self, $self;
+ \%h;
+ }
+
+ sub TIEHASH { my $p = shift; bless \ shift, $p }
+ my %fields;
+ my $i = 0;
+ $fields{$_} = $i++ foreach qw{zero one two three};
+ sub STORE {
+ my $a = ${shift()};
+ my $key = $fields{shift()};
+ defined $key or die "Out of band access";
+ $a->[$key] = shift;
+ }
+ sub FETCH {
+ my $a = ${shift()};
+ my $key = $fields{shift()};
+ defined $key or die "Out of band access";
+ $a->[$key];
+ }
Now if $baz is overloaded like this, then C<$baz> is a reference to a
reference to the intermediate array, which keeps a reference to an
@@ -1230,15 +1233,15 @@ overloaded operations.
Put this in F<symbolic.pm> in your Perl library directory:
- package symbolic; # Primitive symbolic calculator
- use overload nomethod => \&wrap;
+ package symbolic; # Primitive symbolic calculator
+ use overload nomethod => \&wrap;
- sub new { shift; bless ['n', @_] }
- sub wrap {
- my ($obj, $other, $inv, $meth) = @_;
- ($obj, $other) = ($other, $obj) if $inv;
- bless [$meth, $obj, $other];
- }
+ sub new { shift; bless ['n', @_] }
+ sub wrap {
+ my ($obj, $other, $inv, $meth) = @_;
+ ($obj, $other) = ($other, $obj) if $inv;
+ bless [$meth, $obj, $other];
+ }
This module is very unusual as overloaded modules go: it does not
provide any usual overloaded operators, instead it provides an
@@ -1250,20 +1253,20 @@ symbolic->new(3) >> contains C<['+', 2, ['n', 3]]>.
Here is an example of the script which "calculates" the side of
circumscribed octagon using the above package:
- require symbolic;
- my $iter = 1; # 2**($iter+2) = 8
- my $side = symbolic->new(1);
- my $cnt = $iter;
+ require symbolic;
+ my $iter = 1; # 2**($iter+2) = 8
+ my $side = symbolic->new(1);
+ my $cnt = $iter;
- while ($cnt--) {
- $side = (sqrt(1 + $side**2) - 1)/$side;
- }
- print "OK\n";
+ while ($cnt--) {
+ $side = (sqrt(1 + $side**2) - 1)/$side;
+ }
+ print "OK\n";
The value of $side is
- ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]],
- undef], 1], ['n', 1]]
+ ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]],
+ undef], 1], ['n', 1]]
Note that while we obtained this value using a nice little script,
there is no simple way to I<use> this value. In fact this value may
@@ -1277,18 +1280,18 @@ again of type C<symbolic>, which will lead to an infinite loop.
Add a pretty-printer method to the module F<symbolic.pm>:
- sub pretty {
- my ($meth, $a, $b) = @{+shift};
- $a = 'u' unless defined $a;
- $b = 'u' unless defined $b;
- $a = $a->pretty if ref $a;
- $b = $b->pretty if ref $b;
- "[$meth $a $b]";
- }
+ sub pretty {
+ my ($meth, $a, $b) = @{+shift};
+ $a = 'u' unless defined $a;
+ $b = 'u' unless defined $b;
+ $a = $a->pretty if ref $a;
+ $b = $b->pretty if ref $b;
+ "[$meth $a $b]";
+ }
Now one can finish the script by
- print "side = ", $side->pretty, "\n";
+ print "side = ", $side->pretty, "\n";
The method C<pretty> is doing object-to-string conversion, so it
is natural to overload the operator C<""> using this method. However,
@@ -1299,21 +1302,21 @@ and $b. If these components use overloading, the catenation operator
will look for an overloaded operator C<.>; if not present, it will
look for an overloaded operator C<"">. Thus it is enough to use
- use overload nomethod => \&wrap, '""' => \&str;
- sub str {
- my ($meth, $a, $b) = @{+shift};
- $a = 'u' unless defined $a;
- $b = 'u' unless defined $b;
- "[$meth $a $b]";
- }
+ use overload nomethod => \&wrap, '""' => \&str;
+ sub str {
+ my ($meth, $a, $b) = @{+shift};
+ $a = 'u' unless defined $a;
+ $b = 'u' unless defined $b;
+ "[$meth $a $b]";
+ }
Now one can change the last line of the script to
- print "side = $side\n";
+ print "side = $side\n";
which outputs
- side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]]
+ side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]]
and one can inspect the value in debugger using all the possible
methods.
@@ -1332,41 +1335,42 @@ conversion routine.
Here is the text of F<symbolic.pm> with such a routine added (and
slightly modified str()):
- package symbolic; # Primitive symbolic calculator
- use overload
- nomethod => \&wrap, '""' => \&str, '0+' => \&num;
-
- sub new { shift; bless ['n', @_] }
- sub wrap {
- my ($obj, $other, $inv, $meth) = @_;
- ($obj, $other) = ($other, $obj) if $inv;
- bless [$meth, $obj, $other];
- }
- sub str {
- my ($meth, $a, $b) = @{+shift};
- $a = 'u' unless defined $a;
- if (defined $b) {
- "[$meth $a $b]";
- } else {
- "[$meth $a]";
+ package symbolic; # Primitive symbolic calculator
+ use overload
+ nomethod => \&wrap, '""' => \&str, '0+' => \&num;
+
+ sub new { shift; bless ['n', @_] }
+ sub wrap {
+ my ($obj, $other, $inv, $meth) = @_;
+ ($obj, $other) = ($other, $obj) if $inv;
+ bless [$meth, $obj, $other];
+ }
+ sub str {
+ my ($meth, $a, $b) = @{+shift};
+ $a = 'u' unless defined $a;
+ if (defined $b) {
+ "[$meth $a $b]";
+ } else {
+ "[$meth $a]";
+ }
+ }
+ my %subr = (
+ n => sub {$_[0]},
+ sqrt => sub {sqrt $_[0]},
+ '-' => sub {shift() - shift()},
+ '+' => sub {shift() + shift()},
+ '/' => sub {shift() / shift()},
+ '*' => sub {shift() * shift()},
+ '**' => sub {shift() ** shift()},
+ );
+ sub num {
+ my ($meth, $a, $b) = @{+shift};
+ my $subr = $subr{$meth}
+ or die "Do not know how to ($meth) in symbolic";
+ $a = $a->num if ref $a eq __PACKAGE__;
+ $b = $b->num if ref $b eq __PACKAGE__;
+ $subr->($a,$b);
}
- }
- my %subr = ( n => sub {$_[0]},
- sqrt => sub {sqrt $_[0]},
- '-' => sub {shift() - shift()},
- '+' => sub {shift() + shift()},
- '/' => sub {shift() / shift()},
- '*' => sub {shift() * shift()},
- '**' => sub {shift() ** shift()},
- );
- sub num {
- my ($meth, $a, $b) = @{+shift};
- my $subr = $subr{$meth}
- or die "Do not know how to ($meth) in symbolic";
- $a = $a->num if ref $a eq __PACKAGE__;
- $b = $b->num if ref $b eq __PACKAGE__;
- $subr->($a,$b);
- }
All the work of numeric conversion is done in %subr and num(). Of
course, %subr is not complete, it contains only operators used in the
@@ -1375,24 +1379,24 @@ explicit recursion in num()? (Answer is at the end of this section.)
Use this module like this:
- require symbolic;
- my $iter = symbolic->new(2); # 16-gon
- my $side = symbolic->new(1);
- my $cnt = $iter;
+ require symbolic;
+ my $iter = symbolic->new(2); # 16-gon
+ my $side = symbolic->new(1);
+ my $cnt = $iter;
- while ($cnt) {
- $cnt = $cnt - 1; # Mutator '--' not implemented
- $side = (sqrt(1 + $side**2) - 1)/$side;
- }
- printf "%s=%f\n", $side, $side;
- printf "pi=%f\n", $side*(2**($iter+2));
+ while ($cnt) {
+ $cnt = $cnt - 1; # Mutator '--' not implemented
+ $side = (sqrt(1 + $side**2) - 1)/$side;
+ }
+ printf "%s=%f\n", $side, $side;
+ printf "pi=%f\n", $side*(2**($iter+2));
It prints (without so many line breaks)
- [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1]
- [n 1]] 2]]] 1]
- [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912
- pi=3.182598
+ [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1]
+ [n 1]] 2]]] 1]
+ [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912
+ pi=3.182598
The above module is very primitive. It does not implement
mutator methods (C<++>, C<-=> and so on), does not do deep copying
@@ -1402,18 +1406,18 @@ operations which are used in the example.
To implement most arithmetic operations is easy; one should just use
the tables of operations, and change the code which fills %subr to
- my %subr = ( 'n' => sub {$_[0]} );
- foreach my $op (split " ", $overload::ops{with_assign}) {
- $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
- }
- my @bins = qw(binary 3way_comparison num_comparison str_comparison);
- foreach my $op (split " ", "@overload::ops{ @bins }") {
- $subr{$op} = eval "sub {shift() $op shift()}";
- }
- foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
- print "defining '$op'\n";
- $subr{$op} = eval "sub {$op shift()}";
- }
+ my %subr = ( 'n' => sub {$_[0]} );
+ foreach my $op (split " ", $overload::ops{with_assign}) {
+ $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
+ }
+ my @bins = qw(binary 3way_comparison num_comparison str_comparison);
+ foreach my $op (split " ", "@overload::ops{ @bins }") {
+ $subr{$op} = eval "sub {shift() $op shift()}";
+ }
+ foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
+ print "defining '$op'\n";
+ $subr{$op} = eval "sub {$op shift()}";
+ }
Since subroutines implementing assignment operators are not required
to modify their operands (see L</Overloadable Operations> above),
@@ -1427,42 +1431,42 @@ To implement a copy constructor, add C<< '=' => \&cpy >> to C<use overload>
line, and code (this code assumes that mutators change things one level
deep only, so recursive copying is not needed):
- sub cpy {
- my $self = shift;
- bless [@$self], ref $self;
- }
+ sub cpy {
+ my $self = shift;
+ bless [@$self], ref $self;
+ }
To make C<++> and C<--> work, we need to implement actual mutators,
either directly, or in C<nomethod>. We continue to do things inside
C<nomethod>, thus add
if ($meth eq '++' or $meth eq '--') {
- @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference
- return $obj;
+ @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference
+ return $obj;
}
after the first line of wrap(). This is not a most effective
implementation, one may consider
- sub inc { $_[0] = bless ['++', shift, 1]; }
+ sub inc { $_[0] = bless ['++', shift, 1]; }
instead.
As a final remark, note that one can fill %subr by
- my %subr = ( 'n' => sub {$_[0]} );
- foreach my $op (split " ", $overload::ops{with_assign}) {
- $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
- }
- my @bins = qw(binary 3way_comparison num_comparison str_comparison);
- foreach my $op (split " ", "@overload::ops{ @bins }") {
- $subr{$op} = eval "sub {shift() $op shift()}";
- }
- foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
- $subr{$op} = eval "sub {$op shift()}";
- }
- $subr{'++'} = $subr{'+'};
- $subr{'--'} = $subr{'-'};
+ my %subr = ( 'n' => sub {$_[0]} );
+ foreach my $op (split " ", $overload::ops{with_assign}) {
+ $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
+ }
+ my @bins = qw(binary 3way_comparison num_comparison str_comparison);
+ foreach my $op (split " ", "@overload::ops{ @bins }") {
+ $subr{$op} = eval "sub {shift() $op shift()}";
+ }
+ foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
+ $subr{$op} = eval "sub {$op shift()}";
+ }
+ $subr{'++'} = $subr{'+'};
+ $subr{'--'} = $subr{'-'};
This finishes implementation of a primitive symbolic calculator in
50 lines of Perl code. Since the numeric values of subexpressions
@@ -1491,21 +1495,21 @@ until the value is I<used>.
To see it in action, add a method
- sub STORE {
- my $obj = shift;
- $#$obj = 1;
- @$obj->[0,1] = ('=', shift);
- }
+ sub STORE {
+ my $obj = shift;
+ $#$obj = 1;
+ @$obj->[0,1] = ('=', shift);
+ }
to the package C<symbolic>. After this change one can do
- my $a = symbolic->new(3);
- my $b = symbolic->new(4);
- my $c = sqrt($a**2 + $b**2);
+ my $a = symbolic->new(3);
+ my $b = symbolic->new(4);
+ my $c = sqrt($a**2 + $b**2);
and the numeric value of $c becomes 5. However, after calling
- $a->STORE(12); $b->STORE(5);
+ $a->STORE(12); $b->STORE(5);
the numeric value of $c becomes 13. There is no doubt now that the module
symbolic provides a I<symbolic> calculator indeed.
@@ -1513,35 +1517,35 @@ symbolic provides a I<symbolic> calculator indeed.
To hide the rough edges under the hood, provide a tie()d interface to the
package C<symbolic>. Add methods
- sub TIESCALAR { my $pack = shift; $pack->new(@_) }
- sub FETCH { shift }
- sub nop { } # Around a bug
+ sub TIESCALAR { my $pack = shift; $pack->new(@_) }
+ sub FETCH { shift }
+ sub nop { } # Around a bug
(the bug, fixed in Perl 5.14, is described in L<"BUGS">). One can use this
new interface as
- tie $a, 'symbolic', 3;
- tie $b, 'symbolic', 4;
- $a->nop; $b->nop; # Around a bug
+ tie $a, 'symbolic', 3;
+ tie $b, 'symbolic', 4;
+ $a->nop; $b->nop; # Around a bug
- my $c = sqrt($a**2 + $b**2);
+ my $c = sqrt($a**2 + $b**2);
Now numeric value of $c is 5. After C<$a = 12; $b = 5> the numeric value
of $c becomes 13. To insulate the user of the module add a method
- sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; }
+ sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; }
Now
- my ($a, $b);
- symbolic->vars($a, $b);
- my $c = sqrt($a**2 + $b**2);
+ my ($a, $b);
+ symbolic->vars($a, $b);
+ my $c = sqrt($a**2 + $b**2);
- $a = 3; $b = 4;
- printf "c5 %s=%f\n", $c, $c;
+ $a = 3; $b = 4;
+ printf "c5 %s=%f\n", $c, $c;
- $a = 12; $b = 5;
- printf "c13 %s=%f\n", $c, $c;
+ $a = 12; $b = 5;
+ printf "c13 %s=%f\n", $c, $c;
shows that the numeric value of $c follows changes to the values of $a
and $b.
@@ -1604,11 +1608,11 @@ A pitfall when fallback is TRUE and Perl resorts to a built-in
implementation of an operator is that some operators have more
than one semantic, for example C<|>:
- use overload '0+' => sub { $_[0]->{n}; },
- fallback => 1;
- my $x = bless { n => 4 }, "main";
- my $y = bless { n => 8 }, "main";
- print $x | $y, "\n";
+ use overload '0+' => sub { $_[0]->{n}; },
+ fallback => 1;
+ my $x = bless { n => 4 }, "main";
+ my $y = bless { n => 8 }, "main";
+ print $x | $y, "\n";
You might expect this to output "12".
In fact, it prints "<": the ASCII result of treating "|"
@@ -1694,3 +1698,4 @@ The range operator C<..> cannot be overloaded.
=cut
+# ex: set ts=8 sts=4 sw=4 et:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/overload/numbers.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/overload/numbers.pm
index ccea9e17bc..9a6f457e52 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/overload/numbers.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/overload/numbers.pm
@@ -1,4 +1,4 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
#
# lib/overload/numbers.pm
#
@@ -173,4 +173,4 @@ our @enums = qw#
{ my $i = 0; our %enums = map { $_ => $i++ } @enums }
-# ex: set ro:
+# ex: set ro ft=perl:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm
index f2405efe7e..483aa3e025 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm
@@ -1,7 +1,7 @@
package parent;
use strict;
-our $VERSION = '0.238';
+our $VERSION = '0.241';
sub import {
my $class = shift;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl
index 3ab6e577a2..51da5740f8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl
@@ -10,7 +10,7 @@ perl5db.pl - the perl debugger
=head1 DESCRIPTION
C<perl5db.pl> is the perl debugger. It is loaded automatically by Perl when
-you invoke a script with C<perl -d>. This documentation tries to outline the
+you invoke a script with S<C<perl -d>>. This documentation tries to outline the
structure and services provided by C<perl5db.pl>, and to describe how you
can use them.
@@ -137,7 +137,7 @@ it?
=item *
First, doing an arithmetical or bitwise operation on a scalar is
-just about the fastest thing you can do in Perl: C<use constant> actually
+just about the fastest thing you can do in Perl: S<C<use constant>> actually
creates a subroutine call, and array and hash lookups are much slower. Is
this over-optimization at the expense of readability? Possibly, but the
debugger accesses these variables a I<lot>. Any rewrite of the code will
@@ -191,7 +191,7 @@ Values are magical in numeric context: 1 if the line is breakable, 0 if not.
The scalar C<${"_<$filename"}> simply contains the string C<$filename>.
This is also the case for evaluated strings that contain subroutines, or
which are currently being executed. The $filename for C<eval>ed strings looks
-like C<(eval 34)>.
+like S<C<(eval 34)>>.
=head1 DEBUGGER STARTUP
@@ -324,7 +324,7 @@ is entered or exited.
=back
-To get everything, use C<$frame=30> (or C<o f=30> as a debugger command).
+To get everything, use C<$frame=30> (or S<C<o f=30>> as a debugger command).
The debugger internally juggles the value of C<$frame> during execution to
protect external modules that the debugger uses from getting traced.
@@ -393,9 +393,10 @@ Controls the output of trace information.
=back
-=head4 C<$slave_editor>
+=head4 C<$client_editor>
-1 if C<LINEINFO> was directed to a pipe; 0 otherwise.
+1 if C<LINEINFO> was directed to a pipe; 0 otherwise. (The term
+C<$slave_editor> was formerly used here.)
=head4 C<@cmdfhs>
@@ -531,7 +532,7 @@ BEGIN {
use vars qw($VERSION $header);
# bump to X.XX in blead, only use X.XX_XX in maint
-$VERSION = '1.60';
+$VERSION = '1.77';
$header = "perl5db.pl version $VERSION";
@@ -857,7 +858,8 @@ in a currently executing thread, you will stay there until it completes. With
the current implementation it is not currently possible to hop from one thread
to another.
-The C<e> and C<E> commands are currently fairly minimal - see C<h e> and C<h E>.
+The C<e> and C<E> commands are currently fairly minimal - see
+S<C<h e>> and S<C<h E>>.
Note that threading support was built into the debugger as of Perl version
C<5.8.6> and debugger version C<1.2.8>.
@@ -875,8 +877,8 @@ BEGIN {
lock($DBGR);
print "Threads support enabled\n";
} else {
- *lock = sub(*) {};
- *share = sub(\[$@%]) {};
+ *lock = sub :prototype(*) {};
+ *share = sub :prototype(\[$@%]) {};
}
}
@@ -1221,9 +1223,9 @@ else {
use vars qw($pidprompt);
$pidprompt = '';
-# Sets up $emacs as a synonym for $slave_editor.
-our ($slave_editor);
-*emacs = $slave_editor if $slave_editor; # May be used in afterinit()...
+# Sets up $emacs as a synonym for $client_editor.
+our ($client_editor);
+*emacs = $client_editor if $client_editor; # May be used in afterinit()...
=head2 READING THE RC FILE
@@ -1504,7 +1506,7 @@ if ($notty) {
=pod
If there is a TTY, we have to determine who it belongs to before we can
-proceed. If this is a slave editor or graphical debugger (denoted by
+proceed. If this is a client editor or graphical debugger (denoted by
the first command-line switch being '-emacs'), we shift this off and
set C<$rl> to 0 (XXX ostensibly to do straight reads).
@@ -1512,9 +1514,9 @@ set C<$rl> to 0 (XXX ostensibly to do straight reads).
else {
- # Is Perl being run from a slave editor or graphical debugger?
- # If so, don't use readline, and set $slave_editor = 1.
- if ($slave_editor = ( @main::ARGV && ( $main::ARGV[0] eq '-emacs' ) )) {
+ # Is Perl being run from a client editor or graphical debugger?
+ # If so, don't use readline, and set $client_editor = 1.
+ if ($client_editor = ( @main::ARGV && ( $main::ARGV[0] eq '-emacs' ) )) {
$rl = 0;
shift(@main::ARGV);
}
@@ -1537,11 +1539,11 @@ We then determine what the console should be on various systems:
undef $console;
}
-=item * Windows or MSDOS - use C<con>.
+=item * Windows - use C<con>.
=cut
- elsif ( $^O eq 'dos' or -e "con" or $^O eq 'MSWin32' ) {
+ elsif ( $^O eq 'MSWin32' and -e "con" ) {
$console = "con";
}
@@ -1583,19 +1585,13 @@ We then determine what the console should be on various systems:
=back
-Several other systems don't use a specific console. We C<undef $console>
-for those (Windows using a slave editor/graphical debugger, NetWare, OS/2
-with a slave editor).
+Several other systems don't use a specific console. We S<C<undef $console>>
+for those (Windows using a client editor/graphical debugger, OS/2
+with a client editor).
=cut
- if ( ( $^O eq 'MSWin32' ) and ( $slave_editor or defined $ENV{EMACS} ) ) {
-
- # /dev/tty is binary. use stdin for textmode
- $console = undef;
- }
-
- if ( $^O eq 'NetWare' ) {
+ if ( ( $^O eq 'MSWin32' ) and ( $client_editor or defined $ENV{EMACS} ) ) {
# /dev/tty is binary. use stdin for textmode
$console = undef;
@@ -1603,7 +1599,7 @@ with a slave editor).
# In OS/2, we need to use STDIN to get textmode too, even though
# it pretty much looks like Unix otherwise.
- if ( defined $ENV{OS2_SHELL} and ( $slave_editor or $ENV{WINDOWID} ) )
+ if ( defined $ENV{OS2_SHELL} and ( $client_editor or $ENV{WINDOWID} ) )
{ # In OS/2
$console = undef;
}
@@ -1698,7 +1694,7 @@ and if we can.
_autoflush($OUT);
# Line info goes to debugger output unless pointed elsewhere.
- # Pointing elsewhere makes it possible for slave editors to
+ # Pointing elsewhere makes it possible for client editors to
# keep track of file and position. We have both a filehandle
# and a I/O description to keep track of.
$LINEINFO = $OUT unless defined $LINEINFO;
@@ -1725,7 +1721,7 @@ and then call the C<afterinit()> subroutine if there is one.
print $OUT "\nLoading DB routines from $header\n";
print $OUT (
"Editor support ",
- $slave_editor ? "enabled" : "available", ".\n"
+ $client_editor ? "enabled" : "available", ".\n"
);
print $OUT
"\nEnter h or 'h h' for help, or '$doccmd perldebug' for more help.\n\n";
@@ -2121,6 +2117,9 @@ sub _DB__handle_c_command {
return;
}
+my $sub_twice = chr utf8::unicode_to_native(032);
+$sub_twice = $sub_twice x 2;
+
sub _DB__handle_forward_slash_command {
my ($obj) = @_;
@@ -2182,9 +2181,9 @@ sub _DB__handle_forward_slash_command {
# expression would be better, so the user could
# do case-sensitive matching if desired.
if ($dbline[$start] =~ m/$pat/i) {
- if ($slave_editor) {
- # Handle proper escaping in the slave.
- print {$OUT} "\032\032$filename:$start:0\n";
+ if ($client_editor) {
+ # Handle proper escaping in the client.
+ print {$OUT} "$sub_twice$filename:$start:0\n";
}
else {
# Just print the line normally.
@@ -2260,9 +2259,9 @@ sub _DB__handle_question_mark_command {
# Match?
if ($dbline[$start] =~ m/$pat/i) {
- if ($slave_editor) {
- # Yep, follow slave editor requirements.
- print $OUT "\032\032$filename:$start:0\n";
+ if ($client_editor) {
+ # Yep, follow client editor requirements.
+ print $OUT "$sub_twice$filename:$start:0\n";
}
else {
# Yep, just print normally.
@@ -2544,7 +2543,7 @@ sub _DB__handle_i_command {
next CMD;
}
-=head3 C<cmd_l> - list lines (command)
+=head3 C<_cmd_l_main> - list lines (command)
Most of the command is taken up with transforming all the different line
specification syntaxes into 'start-stop'. After that is done, the command
@@ -2641,7 +2640,7 @@ sub _cmd_l_handle_subname {
# If we're not in that file, switch over to it.
if ( $file ne $filename ) {
- if (! $slave_editor) {
+ if (! $client_editor) {
print {$OUT} "Switching to file '$file'.\n";
}
@@ -2721,9 +2720,9 @@ sub _cmd_l_range {
my ($end, $i) =
_cmd_l_calc_initial_end_and_i($spec, $start_match, $end_match);
- # If we're running under a slave editor, force it to show the lines.
- if ($slave_editor) {
- print {$OUT} "\032\032$filename:$i:0\n";
+ # If we're running under a client editor, force it to show the lines.
+ if ($client_editor) {
+ print {$OUT} "$sub_twice$filename:$i:0\n";
$i = $end;
}
# We're doing it ourselves. We want to show the line and special
@@ -2768,7 +2767,7 @@ sub _cmd_l_range {
if ($dbline[ $i - 1 ] !~ /\n\z/) {
print {$OUT} "\n";
}
- } ## end else [ if ($slave_editor)
+ } ## end else [ if ($client_editor)
# Save the point we last listed to in case another relative 'l'
# command is desired. Don't let it run off the end.
@@ -2808,7 +2807,7 @@ sub _cmd_l_main {
}
return;
-} ## end sub cmd_l
+} ## end sub _cmd_l_main
sub _DB__handle_l_command {
my $self = shift;
@@ -3244,7 +3243,7 @@ and then we look up the line in the magical C<%dbline> hash.
We change C<$start> to be one window back; if we go back past the first line,
we set it to be the first line. We set C<$incr> to put us back at the
-currently-executing line, and then put a C<l $start +> (list one window from
+currently-executing line, and then put a S<C<l $start +>> (list one window from
C<$start>) in C<$cmd> to be executed later.
=head3 PRE-580 COMMANDS VS. NEW COMMANDS: C<a, A, b, B, h, l, L, M, o, O, P, v, w, W, E<lt>, E<lt>E<lt>, E<0x7B>, E<0x7B>E<0x7B>>
@@ -3259,7 +3258,7 @@ deal with them instead of processing them in-line.
=head4 C<y> - List lexicals in higher scope
Uses C<PadWalker> to find the lexicals supplied as arguments in a scope
-above the current one and then displays then using C<dumpvar.pl>.
+above the current one and then displays them using F<dumpvar.pl>.
=head3 COMMANDS NOT WORKING AFTER PROGRAM ENDS
@@ -3272,7 +3271,9 @@ they can't.
=head4 C<n> - single step, but don't trace down into subs
Done by setting C<$single> to 2, which forces subs to execute straight through
-when entered (see C<DB::sub>). We also save the C<n> command in C<$laststep>,
+when entered (see C<DB::sub> in L</DEBUGGER INTERFACE VARIABLES>). We also
+save the C<n> command in C<$laststep>,
+
so a null command knows what to re-execute.
=head4 C<s> - single-step, entering subs
@@ -3489,7 +3490,9 @@ again.
=cut
# No more commands? Quit.
- $fall_off_end = 1 unless defined $cmd; # Emulate 'q' on EOF
+ unless (defined $cmd) {
+ DB::Obj::_do_quit();
+ }
# Evaluate post-prompt commands.
foreach $evalarg (@$post) {
@@ -3630,10 +3633,10 @@ sub _DB__grab_control
my $self = shift;
# Yes, grab control.
- if ($slave_editor) {
+ if ($client_editor) {
# Tell the editor to update its position.
- $self->position("\032\032${DB::filename}:$line:0\n");
+ $self->position("$sub_twice${DB::filename}:$line:0\n");
DB::print_lineinfo($self->position());
}
@@ -3655,7 +3658,7 @@ to enter commands and have a valid context to be in.
DB::print_help(<<EOP);
Debugged program terminated. Use B<q> to quit or B<R> to restart,
use B<o> I<inhibit_exit> to avoid stopping after program termination,
-B<h q>, B<h R> or B<h o> to get additional info.
+S<B<h q>>, S<B<h R>> or S<B<h o>> to get additional info.
EOP
$DB::package = 'main';
@@ -3724,7 +3727,7 @@ number information, and print that.
$self->append_to_position($incr_pos);
$self->_my_print_lineinfo($i, $incr_pos);
} ## end for ($i = $line + 1 ; $i...
- } ## end else [ if ($slave_editor)
+ } ## end else [ if ($client_editor)
return;
}
@@ -4293,13 +4296,17 @@ sub _handle_x_command {
return;
}
+sub _do_quit {
+ $fall_off_end = 1;
+ DB::clean_ENV();
+ exit $?;
+}
+
sub _handle_q_command {
my $self = shift;
if ($self->_is_full('q')) {
- $fall_off_end = 1;
- DB::clean_ENV();
- exit $?;
+ _do_quit();
}
return;
@@ -4390,7 +4397,7 @@ The subroutine name; C<(eval)> if an C<eval>().
=item * C<$evaltext>
-The C<eval>() text, if any (undefined for C<eval BLOCK>)
+The C<eval>() text, if any (undefined for S<C<eval BLOCK>>)
=item * C<$is_require>
@@ -5137,8 +5144,10 @@ to the actual current file (the one we're executing in) and
C<$filename_error> is restored to C<"">. This restores everything to
the way it was before the second function was called at all.
-See the comments in C<breakable_line> and C<breakable_line_in_file> for more
-details.
+See the comments in L<S<C<sub breakable_line>>|/breakable_line(from, to) (API)>
+and
+L<S<C<sub breakable_line_in_filename>>|/breakable_line_in_filename(file, from, to) (API)>
+for more details.
=back
@@ -6001,7 +6010,7 @@ sub cmd_O {
=head3 C<cmd_v> - view window (command)
Uses the C<$preview> variable set in the second C<BEGIN> block (q.v.) to
-move back a few lines to list the selected line in context. Uses C<cmd_l>
+move back a few lines to list the selected line in context. Uses C<_cmd_l_main>
to do the actual listing after figuring out the range of line to request.
=cut
@@ -6027,11 +6036,11 @@ sub cmd_v {
# Back up by the context amount.
$start -= $preview;
- # Put together a linespec that cmd_l will like.
+ # Put together a linespec that _cmd_l_main will like.
$line = $start . '-' . ( $start + $incr );
# List the lines.
- cmd_l( 'l', $line );
+ _cmd_l_main( $line );
} ## end if ($line =~ /^(\d*)$/)
} ## end sub cmd_v
@@ -6185,7 +6194,7 @@ sub save {
print_lineinfo prints whatever it is that it is handed; it prints it to the
C<$LINEINFO> filehandle instead of just printing it to STDOUT. This allows
-us to feed line information to a slave editor without messing up the
+us to feed line information to a client editor without messing up the
debugger output.
=cut
@@ -6272,8 +6281,8 @@ sub postponed_sub {
Called after each required file is compiled, but before it is executed;
also called if the name of a just-compiled subroutine is a key of
-C<%postponed>. Propagates saved breakpoints (from C<b compile>, C<b load>,
-etc.) into the just-compiled code.
+C<%postponed>. Propagates saved breakpoints (from S<C<b compile>>,
+S<C<b load>>, etc.) into the just-compiled code.
If this is a C<require>'d file, the incoming parameter is the glob
C<*{"_<$filename"}>, with C<$filename> the name of the C<require>'d file.
@@ -6459,10 +6468,10 @@ sub print_trace {
local $\ = '';
my $fh = shift;
- # If this is going to a slave editor, but we're not the primary
+ # If this is going to a client editor, but we're not the primary
# debugger, reset it first.
resetterm(1)
- if $fh eq $LINEINFO # slave editor
+ if $fh eq $LINEINFO # client editor
and $LINEINFO eq $OUT # normal output
and $term_pid != $$; # not the primary
@@ -7217,7 +7226,7 @@ EOP
B<DB::get_fork_TTY()> returning this.
On I<UNIX>-like systems one can get the name of a I<TTY> for the given window
- by typing B<tty>, and disconnect the I<shell> from I<TTY> by B<sleep 1000000>.
+ by typing B<tty>, and disconnect the I<shell> from I<TTY> by S<B<sleep 1000000>>.
EOP
} ## end if (not defined $in)
@@ -7619,7 +7628,6 @@ sub set_list {
for my $i ( 0 .. $#list ) {
$val = $list[$i];
$val =~ s/\\/\\\\/g;
- no warnings 'experimental::regex_sets';
$val =~ s/ ( (?[ [\000-\xFF] & [:^print:] ]) ) /
"\\0x" . unpack('H2',$1)/xaeg;
$ENV{"${stem}_$i"} = $val;
@@ -7983,8 +7991,8 @@ sub LineInfo {
# '>' onto the front.
my $stream = ( $lineinfo =~ /^(\+?\>|\|)/ ) ? $lineinfo : ">$lineinfo";
- # If this is a pipe, the stream points to a slave editor.
- $slave_editor = ( $stream =~ /^\|/ );
+ # If this is a pipe, the stream points to a client editor.
+ $client_editor = ( $stream =~ /^\|/ );
my $new_lineinfo_fh;
# Open it up and unbuffer it.
@@ -8182,7 +8190,7 @@ B<|>I<dbcmd> Run debugger command, piping DB::OUT to current pager.
B<||>I<dbcmd> Same as B<|>I<dbcmd> but DB::OUT is temporarily select()ed as well.
B<\=> [I<alias> I<value>] Define a command alias, or list current aliases.
I<command> Execute as a perl statement in current package.
-B<R> Pure-man-restart of debugger, some of debugger state
+B<R> Poor man's restart of the debugger, some of debugger state
and command-line options may be lost.
Currently the following settings are preserved:
history, breakpoints and actions, debugger B<O>ptions
@@ -8358,7 +8366,7 @@ B<||>I<dbcmd> Same as B<|>I<dbcmd> but DB::OUT is temporarilly select()ed
B<\=> [I<alias> I<value>] Define a command alias, or list current aliases.
I<command> Execute as a perl statement in current package.
B<v> Show versions of loaded modules.
-B<R> Pure-man-restart of debugger, some of debugger state
+B<R> Poor man's restart of the debugger, some of debugger state
and command-line options may be lost.
Currently the following settings are preserved:
history, breakpoints and actions, debugger B<O>ptions
@@ -8975,7 +8983,7 @@ Just checks the contents of C<$^O> and sets the C<$doccmd> global accordingly.
=cut
sub setman {
- $doccmd = $^O !~ /^(?:MSWin32|VMS|os2|dos|amigaos|riscos|NetWare)\z/s
+ $doccmd = $^O !~ /^(?:MSWin32|VMS|os2|amigaos|riscos)\z/s
? "man" # O Happy Day!
: "perldoc"; # Alas, poor unfortunates
} ## end sub setman
@@ -9906,10 +9914,10 @@ from the environment.
# And run Perl again. Add the "-d" flag, all the
# flags we built up, the script (whether a one-liner
- # or a file), add on the -emacs flag for a slave editor,
+ # or a file), add on the -emacs flag for a client editor,
# and then the old arguments.
- return ($^X, '-d', @flags, @script, ($slave_editor ? '-emacs' : ()), @ARGS);
+ return ($^X, '-d', @flags, @script, ($client_editor ? '-emacs' : ()), @ARGS);
}; # end restart
@@ -10368,7 +10376,8 @@ sub cmd_prepost {
Contains the C<at_exit> routine that the debugger uses to issue the
C<Debugged program terminated ...> message after the program completes. See
-the C<END> block documentation for more details.
+the L<C<END>|/END PROCESSING - THE END BLOCK> block documentation for more
+details.
=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm
index dcb5ea730b..b1d29115e9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm
@@ -2,6 +2,6 @@ use strict;
use warnings;
package perlfaq;
-our $VERSION = '5.20210411';
+our $VERSION = '5.20210520';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod b/systems/texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod
index d08e2c9a36..2a9e58b7cf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod
@@ -1,10 +1,10 @@
-=head2 Tue Jul 12 09:48:50 2022: C<Module> L<Math::Int64|Math::Int64>
+=head2 Tue Feb 13 14:47:28 2024: C<Module> L<Math::Int64|Math::Int64>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -12,7 +12,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.54>
+C<VERSION: 0.57>
=item *
@@ -20,13 +20,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 09:54:16 2022: C<Module> L<IO::String|IO::String>
+=head2 Tue Feb 13 14:47:56 2024: C<Module> L<IO::String|IO::String>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -42,13 +42,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 09:54:45 2022: C<Module> L<File::Which|File::Which>
+=head2 Tue Feb 13 14:48:56 2024: C<Module> L<File::Which|File::Which>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -64,13 +64,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 09:55:07 2022: C<Module> L<Digest::SHA|Digest::SHA>
+=head2 Tue Feb 13 14:50:16 2024: C<Module> L<Digest::SHA|Digest::SHA>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -78,7 +78,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.02>
+C<VERSION: 6.04>
=item *
@@ -86,13 +86,13 @@ C<EXE_FILES: shasum>
=back
-=head2 Tue Jul 12 09:56:10 2022: C<Module> L<Encode::compat|Encode::compat>
+=head2 Tue Feb 13 14:51:10 2024: C<Module> L<Encode::compat|Encode::compat>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -108,13 +108,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 09:56:29 2022: C<Module> L<Encode::Locale|Encode::Locale>
+=head2 Tue Feb 13 14:51:36 2024: C<Module> L<Encode::Locale|Encode::Locale>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -130,13 +130,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 09:56:51 2022: C<Module> L<Win32::API|Win32::API>
+=head2 Tue Feb 13 14:52:37 2024: C<Module> L<Win32::API|Win32::API>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -152,13 +152,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 09:59:18 2022: C<Module> L<Win32API::Registry|Win32API::Registry>
+=head2 Tue Feb 13 14:54:26 2024: C<Module> L<Win32API::Registry|Win32API::Registry>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -174,13 +174,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:00:04 2022: C<Module> L<Win32::Console|Win32::Console>
+=head2 Tue Feb 13 14:55:31 2024: C<Module> L<Win32::Console|Win32::Console>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -196,13 +196,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:00:32 2022: C<Module> L<Win32::TieRegistry|Win32::TieRegistry>
+=head2 Tue Feb 13 14:56:13 2024: C<Module> L<Win32::TieRegistry|Win32::TieRegistry>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -218,13 +218,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:00:51 2022: C<Module> L<Win32::Shortcut|Win32::Shortcut>
+=head2 Tue Feb 13 14:56:47 2024: C<Module> L<Win32::Shortcut|Win32::Shortcut>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -240,13 +240,57 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:01:24 2022: C<Module> L<Date::Parse|Date::Parse>
+=head2 Tue Feb 13 14:59:52 2024: C<Module> L<Cpanel::JSON::XS|Cpanel::JSON::XS>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 4.37>
+
+=item *
+
+C<EXE_FILES: bin/cpanel_json_xs>
+
+=back
+
+=head2 Tue Feb 13 19:02:15 2024: C<Module> L<Socket|Socket>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 2.037>
+
+=item *
+
+C<EXE_FILES: >
+
+=back
+
+=head2 Tue Feb 13 19:03:02 2024: C<Module> L<Date::Parse|Date::Parse>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -262,13 +306,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:01:51 2022: C<Module> L<HTTP::Date|HTTP::Date>
+=head2 Tue Feb 13 19:08:57 2024: C<Module> L<HTTP::Date|HTTP::Date>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -276,7 +320,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.05>
+C<VERSION: 6.06>
=item *
@@ -284,13 +328,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:02:10 2022: C<Module> L<File::Listing|File::Listing>
+=head2 Tue Feb 13 19:09:20 2024: C<Module> L<File::Listing|File::Listing>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -298,7 +342,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.14>
+C<VERSION: 6.16>
=item *
@@ -306,13 +350,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:02:32 2022: C<Module> L<IO::HTML|IO::HTML>
+=head2 Tue Feb 13 19:09:58 2024: C<Module> L<IO::HTML|IO::HTML>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -328,13 +372,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:02:51 2022: C<Module> L<Try::Tiny|Try::Tiny>
+=head2 Tue Feb 13 19:10:35 2024: C<Module> L<Try::Tiny|Try::Tiny>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -350,13 +394,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:19:14 2022: C<Module> L<Test::Fatal|Test::Fatal>
+=head2 Tue Feb 13 19:11:32 2024: C<Module> L<Test::Fatal|Test::Fatal>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -364,7 +408,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.016>
+C<VERSION: 0.017>
=item *
@@ -372,13 +416,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:19:35 2022: C<Module> L<Test::Needs|Test::Needs>
+=head2 Tue Feb 13 19:12:32 2024: C<Module> L<Test::Needs|Test::Needs>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -386,7 +430,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.002009>
+C<VERSION: 0.002010>
=item *
@@ -394,13 +438,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:19:51 2022: C<Module> L<LWP::MediaTypes|LWP::MediaTypes>
+=head2 Tue Feb 13 19:13:04 2024: C<Module> L<LWP::MediaTypes|LWP::MediaTypes>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -416,13 +460,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:20:09 2022: C<Module> L<URI|URI>
+=head2 Tue Feb 13 19:22:03 2024: C<Module> L<Test::Warnings|Test::Warnings>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -430,7 +474,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 5.10>
+C<VERSION: 0.033>
=item *
@@ -438,13 +482,57 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:20:26 2022: C<Module> L<HTTP::Message|HTTP::Message>
+=head2 Tue Feb 13 19:22:35 2024: C<Module> L<URI|URI>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 5.27>
+
+=item *
+
+C<EXE_FILES: >
+
+=back
+
+=head2 Tue Feb 13 19:27:56 2024: C<Module> L<Test::Harness|Test::Harness>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 3.48>
+
+=item *
+
+C<EXE_FILES: bin/prove>
+
+=back
+
+=head2 Tue Feb 13 19:36:19 2024: C<Module> L<HTTP::Message|HTTP::Message>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -460,13 +548,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:20:44 2022: C<Module> L<HTML::Tagset|HTML::Tagset>
+=head2 Tue Feb 13 19:41:22 2024: C<Module> L<HTML::Tagset|HTML::Tagset>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -482,13 +570,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:21:26 2022: C<Module> L<HTML::Parser|HTML::Parser>
+=head2 Tue Feb 13 19:42:23 2024: C<Module> L<HTML::Parser|HTML::Parser>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -496,7 +584,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 3.76>
+C<VERSION: 3.81>
=item *
@@ -504,13 +592,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:21:50 2022: C<Module> L<WWW::RobotRules|WWW::RobotRules>
+=head2 Tue Feb 13 19:44:00 2024: C<Module> L<WWW::RobotRules|WWW::RobotRules>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -526,13 +614,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:22:07 2022: C<Module> L<HTTP::Negotiate|HTTP::Negotiate>
+=head2 Tue Feb 13 19:44:29 2024: C<Module> L<HTTP::Negotiate|HTTP::Negotiate>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -548,13 +636,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:22:31 2022: C<Module> L<Net::HTTP|Net::HTTP>
+=head2 Tue Feb 13 19:45:04 2024: C<Module> L<Net::HTTP|Net::HTTP>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -562,7 +650,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.22>
+C<VERSION: 6.23>
=item *
@@ -570,13 +658,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:22:48 2022: C<Module> L<Mozilla::CA|Mozilla::CA>
+=head2 Tue Feb 13 19:45:43 2024: C<Module> L<Mozilla::CA|Mozilla::CA>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -584,7 +672,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 20211001>
+C<VERSION: 20231213>
=item *
@@ -592,13 +680,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:23:15 2022: C<Module> L<HTTP::Daemon|HTTP::Daemon>
+=head2 Tue Feb 13 19:46:18 2024: C<Module> L<HTTP::Daemon|HTTP::Daemon>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -606,7 +694,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.14>
+C<VERSION: 6.16>
=item *
@@ -614,13 +702,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:44:24 2022: C<Module> L<HTTP::Cookies|HTTP::Cookies>
+=head2 Tue Feb 13 19:56:31 2024: C<Module> L<ExtUtils::Config|ExtUtils::Config>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -628,7 +716,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.10>
+C<VERSION: 0.008>
=item *
@@ -636,13 +724,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:44:56 2022: C<Module> L<Test::RequiresInternet|Test::RequiresInternet>
+=head2 Tue Feb 13 19:57:40 2024: C<Module> L<ExtUtils::Config|ExtUtils::Config>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -650,7 +738,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.05>
+C<VERSION: 0.008>
=item *
@@ -658,13 +746,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:45:58 2022: C<Module> L<libwww::perl|libwww::perl>
+=head2 Tue Feb 13 20:03:27 2024: C<Module> L<ExtUtils::Helpers|ExtUtils::Helpers>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -672,21 +760,21 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.61>
+C<VERSION: 0.026>
=item *
-C<EXE_FILES: bin/lwp-download bin/lwp-dump bin/lwp-mirror bin/lwp-request>
+C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:46:22 2022: C<Module> L<Cpanel::JSON::XS|Cpanel::JSON::XS>
+=head2 Tue Feb 13 20:08:52 2024: C<Module> L<ExtUtils::InstallPaths|ExtUtils::InstallPaths>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
@@ -694,21 +782,87 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 4.27>
+C<VERSION: 0.012>
=item *
-C<EXE_FILES: bin/cpanel_json_xs>
+C<EXE_FILES: >
+
+=back
+
+=head2 Tue Feb 13 20:18:08 2024: C<Module> L<HTTP::Daemon|HTTP::Daemon>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 6.16>
+
+=item *
+
+C<EXE_FILES: >
+
+=back
+
+=head2 Tue Feb 13 20:19:09 2024: C<Module> L<HTTP::Cookies|HTTP::Cookies>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 6.11>
+
+=item *
+
+C<EXE_FILES: >
+
+=back
+
+=head2 Tue Feb 13 20:19:35 2024: C<Module> L<Test::RequiresInternet|Test::RequiresInternet>
+
+=over 4
+
+=item *
+
+C<installed into: d:\tlperl\site\lib>
+
+=item *
+
+C<LINKTYPE: dynamic>
+
+=item *
+
+C<VERSION: 0.05>
+
+=item *
+
+C<EXE_FILES: >
=back
-=head2 Tue Jul 12 10:46:50 2022: C<Module> L<JSON::MaybeXS|JSON::MaybeXS>
+=head2 Thu Feb 15 14:10:53 2024: C<Module> L<JSON::MaybeXS|JSON::MaybeXS>
=over 4
=item *
-C<installed into: E:\tlperl\site\lib>
+C<installed into: d:\tlperl\site\lib>
=item *
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm
index d1db4625c0..6da4e02f32 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm
@@ -4,7 +4,7 @@ package re;
use strict;
use warnings;
-our $VERSION = "0.41";
+our $VERSION = "0.44";
our @ISA = qw(Exporter);
our @EXPORT_OK = qw{
is_regexp regexp_pattern
@@ -71,8 +71,6 @@ my %flags = (
EXTRA => 0x3FF0000,
TRIEM => 0x0010000,
- OFFSETS => 0x0020000,
- OFFSETSDBG => 0x0040000,
STATE => 0x0080000,
OPTIMISEM => 0x0100000,
STACK => 0x0280000,
@@ -81,9 +79,7 @@ my %flags = (
DUMP_PRE_OPTIMIZE => 0x1000000,
WILDCARD => 0x2000000,
);
-$flags{ALL} = -1 & ~($flags{OFFSETS}
- |$flags{OFFSETSDBG}
- |$flags{BUFFERS}
+$flags{ALL} = -1 & ~($flags{BUFFERS}
|$flags{DUMP_PRE_OPTIMIZE}
|$flags{WILDCARD}
);
@@ -517,6 +513,12 @@ comma-separated list of C<termcap> properties to use for highlighting
strings on/off, pre-point part on/off.
See L<perldebug/"Debugging Regular Expressions"> for additional info.
+B<NOTE> that the exact format of the C<debug> mode is B<NOT> considered
+to be an officially supported API of Perl. It is intended for debugging
+only and may change as the core development team deems appropriate
+without notice or deprecation in any release of Perl, major or minor.
+Any documentation of the output is purely advisory.
+
As of 5.9.5 the directive C<use re 'debug'> and its equivalents are
lexically scoped, as the other directives are. However they have both
compile-time and run-time effects.
@@ -529,7 +531,17 @@ Similarly C<use re 'Debug'> produces debugging output, the difference
being that it allows the fine tuning of what debugging output will be
emitted. Options are divided into three groups, those related to
compilation, those related to execution and those related to special
-purposes. The options are as follows:
+purposes.
+
+B<NOTE> that the options provided under the C<Debug> mode and the exact
+format of the output they create is B<NOT> considered to be an
+officially supported API of Perl. It is intended for debugging only and
+may change as the core development team deems appropriate without notice
+or deprecation in any release of Perl, major or minor. Any documentation
+of the format or options available is advisory only and is subject to
+change without notice.
+
+The options are as follows:
=over 4
@@ -626,26 +638,6 @@ Enable debugging of the \G modifier.
Enable enhanced optimisation debugging and start-point optimisations.
Probably not useful except when debugging the regexp engine itself.
-=item OFFSETS
-
-Dump offset information. This can be used to see how regops correlate
-to the pattern. Output format is
-
- NODENUM:POSITION[LENGTH]
-
-Where 1 is the position of the first char in the string. Note that position
-can be 0, or larger than the actual length of the pattern, likewise length
-can be zero.
-
-=item OFFSETSDBG
-
-Enable debugging of offsets information. This emits copious
-amounts of trace information and doesn't mesh well with other
-debug options.
-
-Almost definitely only useful to people hacking
-on the offsets part of the debug engine.
-
=item DUMP_PRE_OPTIMIZE
Enable the dumping of the compiled pattern before the optimization phase.
@@ -687,8 +679,7 @@ These are useful shortcuts to save on the typing.
=item ALL
-Enable all options at once except OFFSETS, OFFSETSDBG, BUFFERS, WILDCARD, and
-DUMP_PRE_OPTIMIZE.
+Enable all options at once except BUFFERS, WILDCARD, and DUMP_PRE_OPTIMIZE.
(To get every single option without exception, use both ALL and EXTRA, or
starting in 5.30 on a C<-DDEBUGGING>-enabled perl interpreter, use
the B<-Drv> command-line switches.)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm
index 11d670942b..4e5be44e85 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm
@@ -8,7 +8,7 @@ sigtrap - Perl pragma to enable simple signal handling
use Carp;
-$VERSION = 1.09;
+$VERSION = '1.10';
$Verbose ||= 0;
sub import {
@@ -184,7 +184,7 @@ handlers. You can have it install one of two handlers supplied by
B<sigtrap> itself (one which provides a Perl stack trace and one which
simply C<die()>s), or alternately you can supply your own handler for it
to install. It can be told only to install a handler for signals which
-are either untrapped or ignored. It has a couple of lists of signals to
+are either untrapped or ignored. It has three lists of signals to
trap, plus you can supply your own list of signals.
The arguments passed to the C<use> statement which invokes B<sigtrap>
@@ -307,7 +307,7 @@ signals which are already trapped or ignored:
use sigtrap qw(die untrapped normal-signals);
-Die on receipt one of an of the B<normal-signals> which is currently
+Die on receipt one of any of the B<normal-signals> which is currently
B<untrapped>, provide a stack trace on receipt of B<any> of the
B<error-signals>:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm
index 659f3e4f4d..f76a30bfc5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm
@@ -1,14 +1,9 @@
package sort;
-our $VERSION = '2.04';
-
-# The hints for pp_sort are now stored in $^H{sort}; older versions
-# of perl used the global variable $sort::hints. -- rjh 2005-12-19
-
-$sort::stable_bit = 0x00000100;
-$sort::unstable_bit = 0x00000200;
-
use strict;
+use warnings;
+
+our $VERSION = '2.05';
sub import {
shift;
@@ -16,18 +11,12 @@ sub import {
require Carp;
Carp::croak("sort pragma requires arguments");
}
- local $_;
$^H{sort} //= 0;
- while ($_ = shift(@_)) {
- if ($_ eq 'stable') {
- $^H{sort} |= $sort::stable_bit;
- $^H{sort} &= ~$sort::unstable_bit;
- } elsif ($_ eq 'defaults') {
- $^H{sort} = 0;
- } else {
- require Carp;
- Carp::croak("sort: unknown subpragma '$_'");
- }
+ for my $subpragma (@_) {
+ next
+ if $subpragma eq 'stable' || $subpragma eq 'defaults';
+ require Carp;
+ Carp::croak("sort: unknown subpragma '$_'");
}
}
@@ -37,25 +26,17 @@ sub unimport {
require Carp;
Carp::croak("sort pragma requires arguments");
}
- local $_;
- no warnings 'uninitialized'; # bitops would warn
- while ($_ = shift(@_)) {
- if ($_ eq 'stable') {
- $^H{sort} &= ~$sort::stable_bit;
- $^H{sort} |= $sort::unstable_bit;
- } else {
- require Carp;
- Carp::croak("sort: unknown subpragma '$_'");
- }
+ for my $subpragma (@_) {
+ next
+ if $subpragma eq 'stable';
+ require Carp;
+ Carp::croak("sort: unknown subpragma '$_'");
}
}
sub current {
- my @sort;
- if ($^H{sort}) {
- push @sort, 'stable' if $^H{sort} & $sort::stable_bit;
- }
- join(' ', @sort);
+ warnings::warnif("deprecated", "sort::current is deprecated, and will always return 'stable'");
+ return 'stable';
}
1;
@@ -67,86 +48,54 @@ sort - perl pragma to control sort() behaviour
=head1 SYNOPSIS
+The sort pragma is now a no-op, and its use is discouraged. These three
+operations are valid, but have no effect:
+
use sort 'stable'; # guarantee stability
use sort 'defaults'; # revert to default behavior
no sort 'stable'; # stability not important
- my $current;
- BEGIN {
- $current = sort::current(); # identify prevailing pragmata
- }
-
=head1 DESCRIPTION
-With the C<sort> pragma you can control the behaviour of the builtin
+Historically the C<sort> pragma you can control the behaviour of the builtin
C<sort()> function.
-A stable sort means that for records that compare equal, the original
-input ordering is preserved.
-Stability will matter only if elements that compare equal can be
-distinguished in some other way. That means that simple numerical
-and lexical sorts do not profit from stability, since equal elements
-are indistinguishable. However, with a comparison such as
+Prior to v5.28.0 there were two other options:
- { substr($a, 0, 3) cmp substr($b, 0, 3) }
+ use sort '_mergesort';
+ use sort '_qsort'; # or '_quicksort'
-stability might matter because elements that compare equal on the
-first 3 characters may be distinguished based on subsequent characters.
+If you try and specify either of these in v5.28+ it will croak.
-Whether sorting is stable by default is an accident of implementation
-that can change (and has changed) between Perl versions.
-If stability is important, be sure to
-say so with a
+The default sort has been stable since v5.8.0, and given this consistent
+behaviour for almost two decades, everyone has come to assume stability.
- use sort 'stable';
+Stability will remain the default - hence there is no need for a pragma for
+code to opt into stability "just in case" this changes - it won't.
-The C<no sort> pragma doesn't
-I<forbid> what follows, it just leaves the choice open. Thus, after
+We do not foresee going back to offering multiple implementations of general
+purpose sorting - hence there is no future need to offer a pragma to choose
+between them.
- no sort 'stable';
+If you know that you care that much about performance of your sorting, and
+that for your use case and your data, it was worth investigating
+alternatives, possible to identify an alternative from our default that was
+better, and the cost of switching was worth it, then you know more than we
+do. Likely whatever choices we can give are not as good as implementing your
+own. (For example, a Radix sort can be faster than O(n log n), but can't be
+used for all keys and has larger overheads.)
-sorting may happen to be stable anyway.
+We are not averse to B<changing> the sort algorithm, but we don't see the
+benefit in offering the choice of two general purpose implementations.
=head1 CAVEATS
-As of Perl 5.10, this pragma is lexically scoped and takes effect
-at compile time. In earlier versions its effect was global and took
-effect at run-time; the documentation suggested using C<eval()> to
-change the behaviour:
-
- { eval 'no sort "stable"'; # stability not wanted
- print sort::current . "\n";
- @a = sort @b;
- eval 'use sort "defaults"'; # clean up, for others
- }
- { eval 'use sort qw(defaults stable)'; # force stability
- print sort::current . "\n";
- @c = sort @d;
- eval 'use sort "defaults"'; # clean up, for others
- }
-
-Such code no longer has the desired effect, for two reasons.
-Firstly, the use of C<eval()> means that the sorting algorithm
-is not changed until runtime, by which time it's too late to
-have any effect. Secondly, C<sort::current> is also called at
-run-time, when in fact the compile-time value of C<sort::current>
-is the one that matters.
-
-So now this code would be written:
-
- { no sort "stable"; # stability not wanted
- my $current;
- BEGIN { $current = sort::current; }
- print "$current\n";
- @a = sort @b;
- # Pragmas go out of scope at the end of the block
- }
- { use sort qw(defaults stable); # force stability
- my $current;
- BEGIN { $current = sort::current; }
- print "$current\n";
- @c = sort @d;
- }
+The function C<sort::current()> was provided to report the current state of
+the sort pragmata. This function was not exported, and there is no code to
+call it on CPAN. It is now deprecated, and will warn by default.
-=cut
+As we no longer store any sort "state", it can no longer return the correct
+value, so it will always return the string C<stable>, as this is consistent
+with what we actually have implemented.
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/stable.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/stable.pm
new file mode 100755
index 0000000000..7922a2e91b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/stable.pm
@@ -0,0 +1,159 @@
+package stable;
+$stable::VERSION = '0.031';
+use strict;
+use warnings;
+use version ();
+
+use experimental ();
+use Carp qw/croak carp/;
+
+my %allow_at = (
+ bitwise => 5.022000,
+ isa => 5.032000,
+ lexical_subs => 5.022000,
+ postderef => 5.020000,
+);
+
+sub import {
+ my ($self, @pragmas) = @_;
+
+ for my $pragma (@pragmas) {
+ my $min_ver = $allow_at{$pragma};
+ croak "unknown stablized experiment $pragma" unless defined $min_ver;
+ croak "requested stablized experiment $pragma, which is stable at $min_ver but this is $]"
+ unless $] >= $min_ver;
+ }
+
+ experimental->import(@pragmas);
+ return;
+}
+
+sub unimport {
+ my ($self, @pragmas) = @_;
+
+ # Look, we could say "You can't unimport stable experiment 'bitwise' on
+ # 5.20" but it just seems weird. -- rjbs, 2022-03-05
+ experimental->unimport(@pragmas);
+ return;
+}
+
+1;
+
+#ABSTRACT: Experimental features made easy, once we know they're stable
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+stable - Experimental features made easy, once we know they're stable
+
+=head1 VERSION
+
+version 0.031
+
+=head1 SYNOPSIS
+
+ use stable 'lexical_subs', 'bitwise';
+ my sub is_odd($value) { $value & 1 }
+
+=head1 DESCRIPTION
+
+The L<experimental> pragma makes it easy to turn on experimental while turning
+off associated warnings. You should read about it, if you don't already know
+what it does.
+
+Seeing C<use experimental> in code might be scary. In fact, it probably should
+be! Code that uses experimental features might break in the future if the perl
+development team decides that the experiment needs to be altered. When
+experiments become stable, because the developers decide they're a success, the
+warnings associated with them go away. When that happens, they can generally
+be turned on with C<use feature>.
+
+This is great, if you are using a version of perl where the feature you want is
+already stable. If you're using an older perl, though, it might be the case
+that you want to use an experimental feature that still warns, even though
+there's no risk in using it, because subsequent versions of perl have that
+feature unchanged and now stable.
+
+Here's an example: The C<postderef> feature was added in perl 5.20.0. In perl
+5.24.0, it was marked stable. Using it would no longer trigger a warning. The
+behavior of the feature didn't change between 5.20.0 and 5.24.0. That means
+that it's perfectly safe to use the feature on 5.20 or 5.22, even though
+there's a warning.
+
+In that case, you could very justifiably add C<use experimental 'postderef'>
+but the casual reader may still be worried at seeing that. The C<stable>
+pragma exists to turn on experimental features only when it's known that
+their behavior in the running perl is their stable behavior.
+
+If you try to use an experimental feature that isn't stable or available on
+the running version of perl, an exception will be thrown. You should also take
+care that you've required the version of C<stable> that you need!
+
+If it's not immediately obvious why, here's a bit of explanation:
+
+=over 4
+
+=item *
+
+C<stable> comes with perl, starting with perl v5.38.
+
+=item *
+
+Imagine that v5.38 adds a feature called "florps". It will stop being
+experimental in v5.42.
+
+=item *
+
+The version of C<stable> that comes with perl v5.38 can't know that the
+I<florps> experiment will succeed, so you can't C<use stable 'florps'> on the
+version of stable ships with v5.38, because it can't see the future!
+
+=item *
+
+You'll need to write C<use stable 1.234 'florps'> to say that you need version
+1.234 of stable, which is when I<florps> became known to stable.
+
+=back
+
+Sure, it's a little weird, but it's worth it! The documentation of this pragma
+will tell you what version of C<stable> you need to require in order to use
+various features. See below.
+
+At present there are only a few "stable" features:
+
+=over 4
+
+=item * C<bitwise> - stable as of perl 5.22, available via stable 0.031
+
+=item * C<isa> - stable as of perl 5.32, available via stable 0.031
+
+=item * C<lexical_subs> - stable as of perl 5.22, available via stable 0.031
+
+Lexical subroutines were actually added in 5.18, and their design did not
+change, but significant bugs makes them unsafe to use before 5.22.
+
+=item * C<postderef> - stable as of perl 5.20, available via stable 0.031
+
+=back
+
+=head1 SEE ALSO
+
+L<perlexperiment|perlexperiment> contains more information about experimental features.
+
+=head1 AUTHOR
+
+Leon Timmermans <leont@cpan.org>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2013 by Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm
index 4453a8d48e..ecf025d275 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm
@@ -5,7 +5,7 @@ use 5.008;
use strict;
use warnings;
-our $VERSION = '2.26'; # remember to update version in POD!
+our $VERSION = '2.36'; # remember to update version in POD!
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
=head1 VERSION
-This document describes threads version 2.26
+This document describes threads version 2.36
=head1 WARNING
@@ -1026,7 +1026,7 @@ signalling behavior is only in effect in the following situations:
=over 4
-=item * Perl has been built with C<PERL_OLD_SIGNALS> (see C<perl -V>).
+=item * Perl has been built with C<PERL_OLD_SIGNALS> (see S<C<perl -V>>).
=item * The environment variable C<PERL_SIGNALS> is set to C<unsafe>
(see L<perlrun/"PERL_SIGNALS">).
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/threads/shared.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/threads/shared.pm
index 3674d83325..6e67acd438 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/threads/shared.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/threads/shared.pm
@@ -8,7 +8,7 @@ use Config;
use Scalar::Util qw(reftype refaddr blessed);
-our $VERSION = '1.62'; # Please update the pod, too.
+our $VERSION = '1.68'; # Please update the pod, too.
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -196,7 +196,7 @@ threads::shared - Perl extension for sharing data structures between threads
=head1 VERSION
-This document describes threads::shared version 1.62
+This document describes threads::shared version 1.68
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt
index 56877db10f..12684594c9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt
@@ -1,10 +1,10 @@
-# Blocks-13.0.0.txt
-# Date: 2019-07-10, 19:06:00 GMT [KW]
-# © 2019 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Blocks-15.0.0.txt
+# Date: 2022-01-28, 20:58:00 GMT [KW]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Format:
# Start Code..End Code; Block Name
@@ -15,7 +15,7 @@
# and underbars are ignored.
# For example, "Latin Extended-A" and "latin extended a" are equivalent.
# For more information on the comparison of property values,
-# see UAX #44: http://www.unicode.org/reports/tr44/
+# see UAX #44: https://www.unicode.org/reports/tr44/
#
# All block ranges start with a value where (cp MOD 16) = 0,
# and end with a value where (cp MOD 16) = 15. In other words,
@@ -52,6 +52,7 @@
0800..083F; Samaritan
0840..085F; Mandaic
0860..086F; Syriac Supplement
+0870..089F; Arabic Extended-B
08A0..08FF; Arabic Extended-A
0900..097F; Devanagari
0980..09FF; Bengali
@@ -215,7 +216,9 @@ FFF0..FFFF; Specials
104B0..104FF; Osage
10500..1052F; Elbasan
10530..1056F; Caucasian Albanian
+10570..105BF; Vithkuqi
10600..1077F; Linear A
+10780..107BF; Latin Extended-F
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
10860..1087F; Palmyrene
@@ -238,8 +241,10 @@ FFF0..FFFF; Specials
10D00..10D3F; Hanifi Rohingya
10E60..10E7F; Rumi Numeral Symbols
10E80..10EBF; Yezidi
+10EC0..10EFF; Arabic Extended-C
10F00..10F2F; Old Sogdian
10F30..10F6F; Sogdian
+10F70..10FAF; Old Uyghur
10FB0..10FDF; Chorasmian
10FE0..10FFF; Elymaic
11000..1107F; Brahmi
@@ -259,29 +264,34 @@ FFF0..FFFF; Specials
11600..1165F; Modi
11660..1167F; Mongolian Supplement
11680..116CF; Takri
-11700..1173F; Ahom
+11700..1174F; Ahom
11800..1184F; Dogra
118A0..118FF; Warang Citi
11900..1195F; Dives Akuru
119A0..119FF; Nandinagari
11A00..11A4F; Zanabazar Square
11A50..11AAF; Soyombo
+11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
11AC0..11AFF; Pau Cin Hau
+11B00..11B5F; Devanagari Extended-A
11C00..11C6F; Bhaiksuki
11C70..11CBF; Marchen
11D00..11D5F; Masaram Gondi
11D60..11DAF; Gunjala Gondi
11EE0..11EFF; Makasar
+11F00..11F5F; Kawi
11FB0..11FBF; Lisu Supplement
11FC0..11FFF; Tamil Supplement
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
12480..1254F; Early Dynastic Cuneiform
+12F90..12FFF; Cypro-Minoan
13000..1342F; Egyptian Hieroglyphs
-13430..1343F; Egyptian Hieroglyph Format Controls
+13430..1345F; Egyptian Hieroglyph Format Controls
14400..1467F; Anatolian Hieroglyphs
16800..16A3F; Bamum Supplement
16A40..16A6F; Mro
+16A70..16ACF; Tangsa
16AD0..16AFF; Bassa Vah
16B00..16B8F; Pahawh Hmong
16E40..16E9F; Medefaidrin
@@ -290,24 +300,32 @@ FFF0..FFFF; Specials
17000..187FF; Tangut
18800..18AFF; Tangut Components
18B00..18CFF; Khitan Small Script
-18D00..18D8F; Tangut Supplement
+18D00..18D7F; Tangut Supplement
+1AFF0..1AFFF; Kana Extended-B
1B000..1B0FF; Kana Supplement
1B100..1B12F; Kana Extended-A
1B130..1B16F; Small Kana Extension
1B170..1B2FF; Nushu
1BC00..1BC9F; Duployan
1BCA0..1BCAF; Shorthand Format Controls
+1CF00..1CFCF; Znamenny Musical Notation
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
+1D2C0..1D2DF; Kaktovik Numerals
1D2E0..1D2FF; Mayan Numerals
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
1D800..1DAAF; Sutton SignWriting
+1DF00..1DFFF; Latin Extended-G
1E000..1E02F; Glagolitic Supplement
+1E030..1E08F; Cyrillic Extended-D
1E100..1E14F; Nyiakeng Puachue Hmong
+1E290..1E2BF; Toto
1E2C0..1E2FF; Wancho
+1E4D0..1E4FF; Nag Mundari
+1E7E0..1E7FF; Ethiopic Extended-B
1E800..1E8DF; Mende Kikakui
1E900..1E95F; Adlam
1EC70..1ECBF; Indic Siyaq Numbers
@@ -336,6 +354,7 @@ FFF0..FFFF; Specials
2CEB0..2EBEF; CJK Unified Ideographs Extension F
2F800..2FA1F; CJK Compatibility Ideographs Supplement
30000..3134F; CJK Unified Ideographs Extension G
+31350..323AF; CJK Unified Ideographs Extension H
E0000..E007F; Tags
E0100..E01EF; Variation Selectors Supplement
F0000..FFFFF; Supplementary Private Use Area-A
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/CombiningClass.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/CombiningClass.pl
index 439074fb75..d946964ac4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/CombiningClass.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/CombiningClass.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -137,7 +137,11 @@ return <<'END';
825 827 230
829 82D 230
859 85B 220
-8D3 220
+898 230
+899 89B 220
+89C 89F 230
+8CA 8CE 230
+8CF 8D3 220
8D4 8E1 230
8E3 220
8E4 8E5 230
@@ -169,6 +173,7 @@ ACD 9
B3C 7
B4D 9
BCD 9
+C3C 7
C4D 9
C55 84
C56 91
@@ -200,7 +205,7 @@ FC6 220
1039 103A 9
108D 220
135D 135F 230
-1714 9
+1714 1715 9
1734 9
17D2 9
17DD 230
@@ -218,6 +223,11 @@ FC6 220
1ABB 1ABC 230
1ABD 220
1ABF 1AC0 220
+1AC1 1AC2 230
+1AC3 1AC4 220
+1AC5 1AC9 230
+1ACA 220
+1ACB 1ACE 230
1B34 7
1B44 9
1B6B 230
@@ -250,6 +260,7 @@ FC6 220
1DF6 232
1DF7 1DF8 228
1DF9 220
+1DFA 218
1DFB 230
1DFC 233
1DFD 220
@@ -314,12 +325,18 @@ FE2E FE2F 230
10AE6 220
10D24 10D27 230
10EAB 10EAC 230
+10EFD 10EFF 220
10F46 10F47 220
10F48 10F4A 230
10F4B 220
10F4C 230
10F4D 10F50 220
+10F82 230
+10F83 220
+10F84 230
+10F85 220
11046 9
+11070 9
1107F 9
110B9 9
110BA 7
@@ -359,6 +376,7 @@ FE2E FE2F 230
11D42 7
11D44 11D45 9
11D97 9
+11F41 11F42 9
16AF0 16AF4 1
16B30 16B36 230
16FF0 16FF1 6
@@ -377,8 +395,13 @@ FE2E FE2F 230
1E01B 1E021 230
1E023 1E024 230
1E026 1E02A 230
+1E08F 230
1E130 1E136 230
+1E2AE 230
1E2EC 1E2EF 230
+1E4EC 1E4ED 232
+1E4EE 220
+1E4EF 230
1E8D0 1E8D6 220
1E944 1E949 230
1E94A 7
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Decomposition.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Decomposition.pl
index d682190ee8..235581b9e6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Decomposition.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Decomposition.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -2338,6 +2338,9 @@ FB9 0F90 0FB5
A69C <super> 044A
A69D <super> 044C
A770 <super> A76F
+A7F2 <super> 0043
+A7F3 <super> 0046
+A7F4 <super> 0051
A7F8 <super> 0126
A7F9 <super> 0153
AB5C <super> A727
@@ -3876,6 +3879,62 @@ FFEB <narrow> 2192
FFEC <narrow> 2193
FFED <narrow> 25A0
FFEE <narrow> 25CB
+10781 <super> 02D0
+10782 <super> 02D1
+10783 <super> 00E6
+10784 <super> 0299
+10785 <super> 0253
+10787 <super> 02A3
+10788 <super> AB66
+10789 <super> 02A5
+1078A <super> 02A4
+1078B <super> 0256
+1078C <super> 0257
+1078D <super> 1D91
+1078E <super> 0258
+1078F <super> 025E
+10790 <super> 02A9
+10791 <super> 0264
+10792 <super> 0262
+10793 <super> 0260
+10794 <super> 029B
+10795 <super> 0127
+10796 <super> 029C
+10797 <super> 0267
+10798 <super> 0284
+10799 <super> 02AA
+1079A <super> 02AB
+1079B <super> 026C
+1079C <super> 1DF04
+1079D <super> A78E
+1079E <super> 026E
+1079F <super> 1DF05
+107A0 <super> 028E
+107A1 <super> 1DF06
+107A2 <super> 00F8
+107A3 <super> 0276
+107A4 <super> 0277
+107A5 <super> 0071
+107A6 <super> 027A
+107A7 <super> 1DF08
+107A8 <super> 027D
+107A9 <super> 027E
+107AA <super> 0280
+107AB <super> 02A8
+107AC <super> 02A6
+107AD <super> AB67
+107AE <super> 02A7
+107AF <super> 0288
+107B0 <super> 2C71
+107B2 <super> 028F
+107B3 <super> 02A1
+107B4 <super> 02A2
+107B5 <super> 0298
+107B6 <super> 01C0
+107B7 <super> 01C1
+107B8 <super> 01C2
+107B9 <super> 1DF0A
+107BA <super> 1DF1E
1109A 11099 110BA
1109C 1109B 110BA
110AB 110A5 110BA
@@ -4898,6 +4957,68 @@ FFEE <narrow> 25CB
1D7FD <font> 0037
1D7FE <font> 0038
1D7FF <font> 0039
+1E030 <super> 0430
+1E031 <super> 0431
+1E032 <super> 0432
+1E033 <super> 0433
+1E034 <super> 0434
+1E035 <super> 0435
+1E036 <super> 0436
+1E037 <super> 0437
+1E038 <super> 0438
+1E039 <super> 043A
+1E03A <super> 043B
+1E03B <super> 043C
+1E03C <super> 043E
+1E03D <super> 043F
+1E03E <super> 0440
+1E03F <super> 0441
+1E040 <super> 0442
+1E041 <super> 0443
+1E042 <super> 0444
+1E043 <super> 0445
+1E044 <super> 0446
+1E045 <super> 0447
+1E046 <super> 0448
+1E047 <super> 044B
+1E048 <super> 044D
+1E049 <super> 044E
+1E04A <super> A689
+1E04B <super> 04D9
+1E04C <super> 0456
+1E04D <super> 0458
+1E04E <super> 04E9
+1E04F <super> 04AF
+1E050 <super> 04CF
+1E051 <sub> 0430
+1E052 <sub> 0431
+1E053 <sub> 0432
+1E054 <sub> 0433
+1E055 <sub> 0434
+1E056 <sub> 0435
+1E057 <sub> 0436
+1E058 <sub> 0437
+1E059 <sub> 0438
+1E05A <sub> 043A
+1E05B <sub> 043B
+1E05C <sub> 043E
+1E05D <sub> 043F
+1E05E <sub> 0441
+1E05F <sub> 0443
+1E060 <sub> 0444
+1E061 <sub> 0445
+1E062 <sub> 0446
+1E063 <sub> 0447
+1E064 <sub> 0448
+1E065 <sub> 044A
+1E066 <sub> 044B
+1E067 <sub> 0491
+1E068 <sub> 0456
+1E069 <sub> 0455
+1E06A <sub> 045F
+1E06B <super> 04AB
+1E06C <super> A651
+1E06D <super> 04B1
1EE00 <font> 0627
1EE01 <font> 0628
1EE02 <font> 062C
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl
index 09749b42d6..31f4c5efd1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -200,6 +200,9 @@ CAN
END OF MEDIUM
00019
+EM
+
+00019
EOM
0001A
@@ -4871,6 +4874,9 @@ ARABIC SIGN TAKHALLUS
ARABIC SMALL HIGH TAH
00616
+ARABIC SMALL HIGH LIGATURE ALEF WITH YEH BARREE
+
+00616
ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
00617
@@ -4894,6 +4900,9 @@ ARABIC LETTER MARK
0061C
ALM
+0061D
+ARABIC END OF TEXT MARK
+
0061E
ARABIC TRIPLE DOT PUNCTUATION MARK
@@ -6589,6 +6598,129 @@ SYRIAC LETTER MALAYALAM LLLA
0086A
SYRIAC LETTER MALAYALAM SSA
+00870
+ARABIC LETTER ALEF WITH ATTACHED FATHA
+
+00871
+ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA
+
+00872
+ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE
+
+00873
+ARABIC LETTER ALEF WITH LEFT MIDDLE STROKE
+
+00874
+ARABIC LETTER ALEF WITH ATTACHED KASRA
+
+00875
+ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA
+
+00876
+ARABIC LETTER ALEF WITH ATTACHED ROUND DOT ABOVE
+
+00877
+ARABIC LETTER ALEF WITH ATTACHED RIGHT ROUND DOT
+
+00878
+ARABIC LETTER ALEF WITH ATTACHED LEFT ROUND DOT
+
+00879
+ARABIC LETTER ALEF WITH ATTACHED ROUND DOT BELOW
+
+0087A
+ARABIC LETTER ALEF WITH DOT ABOVE
+
+0087B
+ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA AND DOT ABOVE
+
+0087C
+ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE AND DOT ABOVE
+
+0087D
+ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND DOT ABOVE
+
+0087E
+ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA AND LEFT RING
+
+0087F
+ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE AND LEFT RING
+
+00880
+ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND LEFT RING
+
+00881
+ARABIC LETTER ALEF WITH ATTACHED RIGHT HAMZA
+
+00882
+ARABIC LETTER ALEF WITH ATTACHED LEFT HAMZA
+
+00883
+ARABIC TATWEEL WITH OVERSTRUCK HAMZA
+
+00884
+ARABIC TATWEEL WITH OVERSTRUCK WAW
+
+00885
+ARABIC TATWEEL WITH TWO DOTS BELOW
+
+00886
+ARABIC LETTER THIN YEH
+
+00887
+ARABIC BASELINE ROUND DOT
+
+00888
+ARABIC RAISED ROUND DOT
+
+00889
+ARABIC LETTER NOON WITH INVERTED SMALL V
+
+0088A
+ARABIC LETTER HAH WITH INVERTED SMALL V BELOW
+
+0088B
+ARABIC LETTER TAH WITH DOT BELOW
+
+0088C
+ARABIC LETTER TAH WITH THREE DOTS BELOW
+
+0088D
+ARABIC LETTER KEHEH WITH TWO DOTS VERTICALLY BELOW
+
+0088E
+ARABIC VERTICAL TAIL
+
+00890
+ARABIC POUND MARK ABOVE
+
+00891
+ARABIC PIASTRE MARK ABOVE
+
+00898
+ARABIC SMALL HIGH WORD AL-JUZ
+
+00899
+ARABIC SMALL LOW WORD ISHMAAM
+
+0089A
+ARABIC SMALL LOW WORD IMAALA
+
+0089B
+ARABIC SMALL LOW WORD TASHEEL
+
+0089C
+ARABIC MADDA WAAJIB
+
+0089D
+ARABIC SUPERSCRIPT ALEF MOKHASSAS
+
+0089E
+ARABIC DOUBLED MADDA
+
+0089F
+ARABIC HALF MADDA OVER MADDA
+
008A0
ARABIC LETTER BEH WITH SMALL V BELOW
@@ -6652,6 +6784,9 @@ ARABIC LETTER AIN WITH THREE DOTS BELOW
008B4
ARABIC LETTER KAF WITH DOT BELOW
+008B5
+ARABIC LETTER QAF WITH DOT BELOW AND NO DOTS ABOVE
+
008B6
ARABIC LETTER BEH WITH SMALL MEEM ABOVE
@@ -6706,6 +6841,39 @@ ARABIC LETTER JEEM WITH THREE DOTS BELOW
008C7
ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
+008C8
+ARABIC LETTER GRAF
+
+008C9
+ARABIC SMALL FARSI YEH
+
+008CA
+ARABIC SMALL HIGH FARSI YEH
+
+008CB
+ARABIC SMALL HIGH YEH BARREE WITH TWO DOTS BELOW
+
+008CC
+ARABIC SMALL HIGH WORD SAH
+
+008CD
+ARABIC SMALL HIGH ZAH
+
+008CE
+ARABIC LARGE ROUND DOT ABOVE
+
+008CF
+ARABIC LARGE ROUND DOT BELOW
+
+008D0
+ARABIC SUKUN BELOW
+
+008D1
+ARABIC LARGE CIRCLE BELOW
+
+008D2
+ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW
+
008D3
ARABIC SMALL LOW WAW
@@ -8680,6 +8848,9 @@ TELUGU LETTER SA
00C39
TELUGU LETTER HA
+00C3C
+TELUGU SIGN NUKTA
+
00C3D
TELUGU SIGN AVAGRAHA
@@ -8740,6 +8911,9 @@ TELUGU LETTER DZA
00C5A
TELUGU LETTER RRRA
+00C5D
+TELUGU LETTER NAKAARA POLLU
+
00C60
TELUGU LETTER VOCALIC RR
@@ -9025,6 +9199,9 @@ KANNADA LENGTH MARK
00CD6
KANNADA AI LENGTH MARK
+00CDD
+KANNADA LETTER NAKAARA POLLU
+
00CDE
KANNADA LETTER LLLA
@@ -9079,6 +9256,9 @@ KANNADA SIGN JIHVAMULIYA
00CF2
KANNADA SIGN UPADHMANIYA
+00CF3
+KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+
00D00
MALAYALAM SIGN COMBINING ANUSVARA ABOVE
@@ -10183,6 +10363,9 @@ LAO CANCELLATION MARK
00ECD
LAO NIGGAHITA
+00ECE
+LAO YAMAKKAN
+
00ED0
LAO DIGIT ZERO
@@ -16126,6 +16309,9 @@ TAGALOG LETTER MA
0170C
TAGALOG LETTER YA
+0170D
+TAGALOG LETTER RA
+
0170E
TAGALOG LETTER LA
@@ -16147,6 +16333,12 @@ TAGALOG VOWEL SIGN U
01714
TAGALOG SIGN VIRAMA
+01715
+TAGALOG SIGN PAMUDPOD
+
+0171F
+TAGALOG LETTER ARCHAIC RA
+
01720
HANUNOO LETTER A
@@ -16729,6 +16921,12 @@ MONGOLIAN VOWEL SEPARATOR
0180E
MVS
+0180F
+MONGOLIAN FREE VARIATION SELECTOR FOUR
+
+0180F
+FVS4
+
01810
MONGOLIAN DIGIT ZERO
@@ -18541,6 +18739,48 @@ COMBINING LATIN SMALL LETTER W BELOW
01AC0
COMBINING LATIN SMALL LETTER TURNED W BELOW
+01AC1
+COMBINING LEFT PARENTHESIS ABOVE LEFT
+
+01AC2
+COMBINING RIGHT PARENTHESIS ABOVE RIGHT
+
+01AC3
+COMBINING LEFT PARENTHESIS BELOW LEFT
+
+01AC4
+COMBINING RIGHT PARENTHESIS BELOW RIGHT
+
+01AC5
+COMBINING SQUARE BRACKETS ABOVE
+
+01AC6
+COMBINING NUMBER SIGN ABOVE
+
+01AC7
+COMBINING INVERTED DOUBLE ARCH ABOVE
+
+01AC8
+COMBINING PLUS SIGN ABOVE
+
+01AC9
+COMBINING DOUBLE PLUS SIGN ABOVE
+
+01ACA
+COMBINING DOUBLE PLUS SIGN BELOW
+
+01ACB
+COMBINING TRIPLE ACUTE ACCENT
+
+01ACC
+COMBINING LATIN SMALL LETTER INSULAR G
+
+01ACD
+COMBINING LATIN SMALL LETTER INSULAR R
+
+01ACE
+COMBINING LATIN SMALL LETTER INSULAR T
+
01B00
BALINESE SIGN ULU RICEM
@@ -18769,6 +19009,9 @@ BALINESE LETTER ZAL SASAK
01B4B
BALINESE LETTER ASYURA SASAK
+01B4C
+BALINESE LETTER ARCHAIC JNYA
+
01B50
BALINESE DIGIT ZERO
@@ -18904,6 +19147,12 @@ BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
01B7C
BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+01B7D
+BALINESE PANTI LANTANG
+
+01B7E
+BALINESE PAMADA LANTANG
+
01B80
SUNDANESE SIGN PANYECEK
@@ -19088,6 +19337,9 @@ SUNDANESE LETTER REU
SUNDANESE LETTER LEU
01BBD
+SUNDANESE LETTER ARCHAIC I
+
+01BBD
SUNDANESE LETTER BHA
01BBE
@@ -20698,6 +20950,9 @@ COMBINING DOT ABOVE LEFT
01DF9
COMBINING WIDE INVERTED BRIDGE BELOW
+01DFA
+COMBINING DOT BELOW LEFT
+
01DFB
COMBINING DELETION MARK
@@ -22786,6 +23041,9 @@ LARI SIGN
020BF
BITCOIN SIGN
+020C0
+SOM SIGN
+
020D0
COMBINING LEFT HARPOON ABOVE
@@ -31330,6 +31588,9 @@ GLAGOLITIC CAPITAL LETTER TROKUTASTI A
02C2E
GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+02C2F
+GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
+
02C30
GLAGOLITIC SMALL LETTER AZU
@@ -31471,6 +31732,9 @@ GLAGOLITIC SMALL LETTER TROKUTASTI A
02C5E
GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+02C5F
+GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+
02C60
LATIN CAPITAL LETTER L WITH DOUBLE BAR
@@ -32815,6 +33079,39 @@ CROSS PATTY WITH LEFT CROSSBAR
02E52
TIRONIAN SIGN CAPITAL ET
+02E53
+MEDIEVAL EXCLAMATION MARK
+
+02E54
+MEDIEVAL QUESTION MARK
+
+02E55
+LEFT SQUARE BRACKET WITH STROKE
+
+02E56
+RIGHT SQUARE BRACKET WITH STROKE
+
+02E57
+LEFT SQUARE BRACKET WITH DOUBLE STROKE
+
+02E58
+RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+
+02E59
+TOP HALF LEFT PARENTHESIS
+
+02E5A
+TOP HALF RIGHT PARENTHESIS
+
+02E5B
+BOTTOM HALF LEFT PARENTHESIS
+
+02E5C
+BOTTOM HALF RIGHT PARENTHESIS
+
+02E5D
+OBLIQUE HYPHEN
+
02E80
CJK RADICAL REPEAT
@@ -42868,6 +43165,12 @@ LATIN CAPITAL LETTER GLOTTAL U
0A7BF
LATIN SMALL LETTER GLOTTAL U
+0A7C0
+LATIN CAPITAL LETTER OLD POLISH O
+
+0A7C1
+LATIN SMALL LETTER OLD POLISH O
+
0A7C2
LATIN CAPITAL LETTER ANGLICANA W
@@ -42895,6 +43198,39 @@ LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
0A7CA
LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+0A7D0
+LATIN CAPITAL LETTER CLOSED INSULAR G
+
+0A7D1
+LATIN SMALL LETTER CLOSED INSULAR G
+
+0A7D3
+LATIN SMALL LETTER DOUBLE THORN
+
+0A7D5
+LATIN SMALL LETTER DOUBLE WYNN
+
+0A7D6
+LATIN CAPITAL LETTER MIDDLE SCOTS S
+
+0A7D7
+LATIN SMALL LETTER MIDDLE SCOTS S
+
+0A7D8
+LATIN CAPITAL LETTER SIGMOID S
+
+0A7D9
+LATIN SMALL LETTER SIGMOID S
+
+0A7F2
+MODIFIER LETTER CAPITAL C
+
+0A7F3
+MODIFIER LETTER CAPITAL F
+
+0A7F4
+MODIFIER LETTER CAPITAL Q
+
0A7F5
LATIN CAPITAL LETTER REVERSED HALF H
@@ -44603,6 +44939,9 @@ MYANMAR LETTER KHAMTI SA
MYANMAR LETTER KHAMTI HA
0AA6E
+MYANMAR LETTER KHAMTI LLA
+
+0AA6E
MYANMAR LETTER KHAMTI HHA
0AA6F
@@ -46357,6 +46696,9 @@ ARABIC SYMBOL SMALL TAH ABOVE
0FBC1
ARABIC SYMBOL SMALL TAH BELOW
+0FBC2
+ARABIC SYMBOL WASLA ABOVE
+
0FBD3
ARABIC LETTER NG ISOLATED FORM
@@ -47452,6 +47794,54 @@ ORNATE LEFT PARENTHESIS
0FD3F
ORNATE RIGHT PARENTHESIS
+0FD40
+ARABIC LIGATURE RAHIMAHU ALLAAH
+
+0FD41
+ARABIC LIGATURE RADI ALLAAHU ANH
+
+0FD42
+ARABIC LIGATURE RADI ALLAAHU ANHAA
+
+0FD43
+ARABIC LIGATURE RADI ALLAAHU ANHUM
+
+0FD44
+ARABIC LIGATURE RADI ALLAAHU ANHUMAA
+
+0FD45
+ARABIC LIGATURE RADI ALLAAHU ANHUNNA
+
+0FD46
+ARABIC LIGATURE SALLALLAAHU ALAYHI WA-AALIH
+
+0FD47
+ARABIC LIGATURE ALAYHI AS-SALAAM
+
+0FD48
+ARABIC LIGATURE ALAYHIM AS-SALAAM
+
+0FD49
+ARABIC LIGATURE ALAYHIMAA AS-SALAAM
+
+0FD4A
+ARABIC LIGATURE ALAYHI AS-SALAATU WAS-SALAAM
+
+0FD4B
+ARABIC LIGATURE QUDDISA SIRRAH
+
+0FD4C
+ARABIC LIGATURE SALLALLAHU ALAYHI WAAALIHEE WA-SALLAM
+
+0FD4D
+ARABIC LIGATURE ALAYHAA AS-SALAAM
+
+0FD4E
+ARABIC LIGATURE TABAARAKA WA-TAAALAA
+
+0FD4F
+ARABIC LIGATURE RAHIMAHUM ALLAAH
+
0FD50
ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
@@ -47806,6 +48196,9 @@ ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
0FDC7
ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+0FDCF
+ARABIC LIGATURE SALAAMUHU ALAYNAA
+
0FDF0
ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
@@ -47848,6 +48241,12 @@ RIAL SIGN
0FDFD
ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+0FDFE
+ARABIC LIGATURE SUBHAANAHU WA TAAALAA
+
+0FDFF
+ARABIC LIGATURE AZZA WA JALL
+
0FE00
VARIATION SELECTOR-1
@@ -52429,6 +52828,216 @@ CAUCASIAN ALBANIAN LETTER KIW
1056F
CAUCASIAN ALBANIAN CITATION MARK
+10570
+VITHKUQI CAPITAL LETTER A
+
+10571
+VITHKUQI CAPITAL LETTER BBE
+
+10572
+VITHKUQI CAPITAL LETTER BE
+
+10573
+VITHKUQI CAPITAL LETTER CE
+
+10574
+VITHKUQI CAPITAL LETTER CHE
+
+10575
+VITHKUQI CAPITAL LETTER DE
+
+10576
+VITHKUQI CAPITAL LETTER DHE
+
+10577
+VITHKUQI CAPITAL LETTER EI
+
+10578
+VITHKUQI CAPITAL LETTER E
+
+10579
+VITHKUQI CAPITAL LETTER FE
+
+1057A
+VITHKUQI CAPITAL LETTER GA
+
+1057C
+VITHKUQI CAPITAL LETTER HA
+
+1057D
+VITHKUQI CAPITAL LETTER HHA
+
+1057E
+VITHKUQI CAPITAL LETTER I
+
+1057F
+VITHKUQI CAPITAL LETTER IJE
+
+10580
+VITHKUQI CAPITAL LETTER JE
+
+10581
+VITHKUQI CAPITAL LETTER KA
+
+10582
+VITHKUQI CAPITAL LETTER LA
+
+10583
+VITHKUQI CAPITAL LETTER LLA
+
+10584
+VITHKUQI CAPITAL LETTER ME
+
+10585
+VITHKUQI CAPITAL LETTER NE
+
+10586
+VITHKUQI CAPITAL LETTER NJE
+
+10587
+VITHKUQI CAPITAL LETTER O
+
+10588
+VITHKUQI CAPITAL LETTER PE
+
+10589
+VITHKUQI CAPITAL LETTER QA
+
+1058A
+VITHKUQI CAPITAL LETTER RE
+
+1058C
+VITHKUQI CAPITAL LETTER SE
+
+1058D
+VITHKUQI CAPITAL LETTER SHE
+
+1058E
+VITHKUQI CAPITAL LETTER TE
+
+1058F
+VITHKUQI CAPITAL LETTER THE
+
+10590
+VITHKUQI CAPITAL LETTER U
+
+10591
+VITHKUQI CAPITAL LETTER VE
+
+10592
+VITHKUQI CAPITAL LETTER XE
+
+10594
+VITHKUQI CAPITAL LETTER Y
+
+10595
+VITHKUQI CAPITAL LETTER ZE
+
+10597
+VITHKUQI SMALL LETTER A
+
+10598
+VITHKUQI SMALL LETTER BBE
+
+10599
+VITHKUQI SMALL LETTER BE
+
+1059A
+VITHKUQI SMALL LETTER CE
+
+1059B
+VITHKUQI SMALL LETTER CHE
+
+1059C
+VITHKUQI SMALL LETTER DE
+
+1059D
+VITHKUQI SMALL LETTER DHE
+
+1059E
+VITHKUQI SMALL LETTER EI
+
+1059F
+VITHKUQI SMALL LETTER E
+
+105A0
+VITHKUQI SMALL LETTER FE
+
+105A1
+VITHKUQI SMALL LETTER GA
+
+105A3
+VITHKUQI SMALL LETTER HA
+
+105A4
+VITHKUQI SMALL LETTER HHA
+
+105A5
+VITHKUQI SMALL LETTER I
+
+105A6
+VITHKUQI SMALL LETTER IJE
+
+105A7
+VITHKUQI SMALL LETTER JE
+
+105A8
+VITHKUQI SMALL LETTER KA
+
+105A9
+VITHKUQI SMALL LETTER LA
+
+105AA
+VITHKUQI SMALL LETTER LLA
+
+105AB
+VITHKUQI SMALL LETTER ME
+
+105AC
+VITHKUQI SMALL LETTER NE
+
+105AD
+VITHKUQI SMALL LETTER NJE
+
+105AE
+VITHKUQI SMALL LETTER O
+
+105AF
+VITHKUQI SMALL LETTER PE
+
+105B0
+VITHKUQI SMALL LETTER QA
+
+105B1
+VITHKUQI SMALL LETTER RE
+
+105B3
+VITHKUQI SMALL LETTER SE
+
+105B4
+VITHKUQI SMALL LETTER SHE
+
+105B5
+VITHKUQI SMALL LETTER TE
+
+105B6
+VITHKUQI SMALL LETTER THE
+
+105B7
+VITHKUQI SMALL LETTER U
+
+105B8
+VITHKUQI SMALL LETTER VE
+
+105B9
+VITHKUQI SMALL LETTER XE
+
+105BB
+VITHKUQI SMALL LETTER Y
+
+105BC
+VITHKUQI SMALL LETTER ZE
+
10600
LINEAR A SIGN AB001
@@ -53452,6 +54061,177 @@ LINEAR A SIGN A806
10767
LINEAR A SIGN A807
+10780
+MODIFIER LETTER SMALL CAPITAL AA
+
+10781
+MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON
+
+10782
+MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+
+10783
+MODIFIER LETTER SMALL AE
+
+10784
+MODIFIER LETTER SMALL CAPITAL B
+
+10785
+MODIFIER LETTER SMALL B WITH HOOK
+
+10787
+MODIFIER LETTER SMALL DZ DIGRAPH
+
+10788
+MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+
+10789
+MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL
+
+1078A
+MODIFIER LETTER SMALL DEZH DIGRAPH
+
+1078B
+MODIFIER LETTER SMALL D WITH TAIL
+
+1078C
+MODIFIER LETTER SMALL D WITH HOOK
+
+1078D
+MODIFIER LETTER SMALL D WITH HOOK AND TAIL
+
+1078E
+MODIFIER LETTER SMALL REVERSED E
+
+1078F
+MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+
+10790
+MODIFIER LETTER SMALL FENG DIGRAPH
+
+10791
+MODIFIER LETTER SMALL RAMS HORN
+
+10792
+MODIFIER LETTER SMALL CAPITAL G
+
+10793
+MODIFIER LETTER SMALL G WITH HOOK
+
+10794
+MODIFIER LETTER SMALL CAPITAL G WITH HOOK
+
+10795
+MODIFIER LETTER SMALL H WITH STROKE
+
+10796
+MODIFIER LETTER SMALL CAPITAL H
+
+10797
+MODIFIER LETTER SMALL HENG WITH HOOK
+
+10798
+MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK
+
+10799
+MODIFIER LETTER SMALL LS DIGRAPH
+
+1079A
+MODIFIER LETTER SMALL LZ DIGRAPH
+
+1079B
+MODIFIER LETTER SMALL L WITH BELT
+
+1079C
+MODIFIER LETTER SMALL CAPITAL L WITH BELT
+
+1079D
+MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT
+
+1079E
+MODIFIER LETTER SMALL LEZH
+
+1079F
+MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK
+
+107A0
+MODIFIER LETTER SMALL TURNED Y
+
+107A1
+MODIFIER LETTER SMALL TURNED Y WITH BELT
+
+107A2
+MODIFIER LETTER SMALL O WITH STROKE
+
+107A3
+MODIFIER LETTER SMALL CAPITAL OE
+
+107A4
+MODIFIER LETTER SMALL CLOSED OMEGA
+
+107A5
+MODIFIER LETTER SMALL Q
+
+107A6
+MODIFIER LETTER SMALL TURNED R WITH LONG LEG
+
+107A7
+MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+
+107A8
+MODIFIER LETTER SMALL R WITH TAIL
+
+107A9
+MODIFIER LETTER SMALL R WITH FISHHOOK
+
+107AA
+MODIFIER LETTER SMALL CAPITAL R
+
+107AB
+MODIFIER LETTER SMALL TC DIGRAPH WITH CURL
+
+107AC
+MODIFIER LETTER SMALL TS DIGRAPH
+
+107AD
+MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK
+
+107AE
+MODIFIER LETTER SMALL TESH DIGRAPH
+
+107AF
+MODIFIER LETTER SMALL T WITH RETROFLEX HOOK
+
+107B0
+MODIFIER LETTER SMALL V WITH RIGHT HOOK
+
+107B2
+MODIFIER LETTER SMALL CAPITAL Y
+
+107B3
+MODIFIER LETTER GLOTTAL STOP WITH STROKE
+
+107B4
+MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE
+
+107B5
+MODIFIER LETTER BILABIAL CLICK
+
+107B6
+MODIFIER LETTER DENTAL CLICK
+
+107B7
+MODIFIER LETTER LATERAL CLICK
+
+107B8
+MODIFIER LETTER ALVEOLAR CLICK
+
+107B9
+MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+
+107BA
+MODIFIER LETTER SMALL S WITH CURL
+
10800
CYPRIOT SYLLABLE A
@@ -56455,6 +57235,15 @@ YEZIDI LETTER LAM WITH DOT ABOVE
10EB1
YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD
+ARABIC SMALL LOW WORD SAKTA
+
+10EFE
+ARABIC SMALL LOW WORD QASR
+
+10EFF
+ARABIC SMALL LOW WORD MADDA
+
10F00
OLD SOGDIAN LETTER ALEPH
@@ -56701,6 +57490,84 @@ SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS
10F59
SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F70
+OLD UYGHUR LETTER ALEPH
+
+10F71
+OLD UYGHUR LETTER BETH
+
+10F72
+OLD UYGHUR LETTER GIMEL-HETH
+
+10F73
+OLD UYGHUR LETTER WAW
+
+10F74
+OLD UYGHUR LETTER ZAYIN
+
+10F75
+OLD UYGHUR LETTER FINAL HETH
+
+10F76
+OLD UYGHUR LETTER YODH
+
+10F77
+OLD UYGHUR LETTER KAPH
+
+10F78
+OLD UYGHUR LETTER LAMEDH
+
+10F79
+OLD UYGHUR LETTER MEM
+
+10F7A
+OLD UYGHUR LETTER NUN
+
+10F7B
+OLD UYGHUR LETTER SAMEKH
+
+10F7C
+OLD UYGHUR LETTER PE
+
+10F7D
+OLD UYGHUR LETTER SADHE
+
+10F7E
+OLD UYGHUR LETTER RESH
+
+10F7F
+OLD UYGHUR LETTER SHIN
+
+10F80
+OLD UYGHUR LETTER TAW
+
+10F81
+OLD UYGHUR LETTER LESH
+
+10F82
+OLD UYGHUR COMBINING DOT ABOVE
+
+10F83
+OLD UYGHUR COMBINING DOT BELOW
+
+10F84
+OLD UYGHUR COMBINING TWO DOTS ABOVE
+
+10F85
+OLD UYGHUR COMBINING TWO DOTS BELOW
+
+10F86
+OLD UYGHUR PUNCTUATION BAR
+
+10F87
+OLD UYGHUR PUNCTUATION TWO BARS
+
+10F88
+OLD UYGHUR PUNCTUATION TWO DOTS
+
+10F89
+OLD UYGHUR PUNCTUATION FOUR DOTS
+
10FB0
CHORASMIAN LETTER ALEPH
@@ -57178,6 +58045,24 @@ BRAHMI DIGIT EIGHT
1106F
BRAHMI DIGIT NINE
+11070
+BRAHMI SIGN OLD TAMIL VIRAMA
+
+11071
+BRAHMI LETTER OLD TAMIL SHORT E
+
+11072
+BRAHMI LETTER OLD TAMIL SHORT O
+
+11073
+BRAHMI VOWEL SIGN OLD TAMIL SHORT E
+
+11074
+BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+
+11075
+BRAHMI LETTER OLD TAMIL LLA
+
1107F
BRAHMI NUMBER JOINER
@@ -57379,6 +58264,9 @@ KAITHI DANDA
110C1
KAITHI DOUBLE DANDA
+110C2
+KAITHI VOWEL SIGN VOCALIC R
+
110CD
KAITHI NUMBER SIGN ABOVE
@@ -58351,6 +59239,15 @@ KHOJKI ABBREVIATION SIGN
1123E
KHOJKI SIGN SUKUN
+1123F
+KHOJKI LETTER QA
+
+11240
+KHOJKI LETTER SHORT I
+
+11241
+KHOJKI VOWEL SIGN VOCALIC R
+
11280
MULTANI LETTER A
@@ -60190,6 +61087,9 @@ TAKRI SIGN NUKTA
116B8
TAKRI LETTER ARCHAIC KHA
+116B9
+TAKRI ABBREVIATION SIGN
+
116C0
TAKRI DIGIT ZERO
@@ -60394,6 +61294,27 @@ AHOM SIGN RULAI
1173F
AHOM SYMBOL VI
+11740
+AHOM LETTER CA
+
+11741
+AHOM LETTER TTA
+
+11742
+AHOM LETTER TTHA
+
+11743
+AHOM LETTER DDA
+
+11744
+AHOM LETTER DDHA
+
+11745
+AHOM LETTER NNA
+
+11746
+AHOM LETTER LLA
+
11800
DOGRA LETTER A
@@ -61702,6 +62623,54 @@ SOYOMBO TERMINAL MARK-1
11AA2
SOYOMBO TERMINAL MARK-2
+11AB0
+CANADIAN SYLLABICS NATTILIK HI
+
+11AB1
+CANADIAN SYLLABICS NATTILIK HII
+
+11AB2
+CANADIAN SYLLABICS NATTILIK HO
+
+11AB3
+CANADIAN SYLLABICS NATTILIK HOO
+
+11AB4
+CANADIAN SYLLABICS NATTILIK HA
+
+11AB5
+CANADIAN SYLLABICS NATTILIK HAA
+
+11AB6
+CANADIAN SYLLABICS NATTILIK SHRI
+
+11AB7
+CANADIAN SYLLABICS NATTILIK SHRII
+
+11AB8
+CANADIAN SYLLABICS NATTILIK SHRO
+
+11AB9
+CANADIAN SYLLABICS NATTILIK SHROO
+
+11ABA
+CANADIAN SYLLABICS NATTILIK SHRA
+
+11ABB
+CANADIAN SYLLABICS NATTILIK SHRAA
+
+11ABC
+CANADIAN SYLLABICS SPE
+
+11ABD
+CANADIAN SYLLABICS SPI
+
+11ABE
+CANADIAN SYLLABICS SPO
+
+11ABF
+CANADIAN SYLLABICS SPA
+
11AC0
PAU CIN HAU LETTER PA
@@ -61873,6 +62842,36 @@ PAU CIN HAU LOW-FALLING TONE FINAL
11AF8
PAU CIN HAU GLOTTAL STOP FINAL
+11B00
+DEVANAGARI HEAD MARK
+
+11B01
+DEVANAGARI HEAD MARK WITH HEADSTROKE
+
+11B02
+DEVANAGARI SIGN BHALE
+
+11B03
+DEVANAGARI SIGN BHALE WITH HOOK
+
+11B04
+DEVANAGARI SIGN EXTENDED BHALE
+
+11B05
+DEVANAGARI SIGN EXTENDED BHALE WITH HOOK
+
+11B06
+DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE
+
+11B07
+DEVANAGARI SIGN WESTERN NINE-LIKE BHALE
+
+11B08
+DEVANAGARI SIGN REVERSED NINE-LIKE BHALE
+
+11B09
+DEVANAGARI SIGN MINDU
+
11C00
BHAIKSUKI LETTER A
@@ -62857,6 +63856,264 @@ MAKASAR PASSIMBANG
11EF8
MAKASAR END OF SECTION
+11F00
+KAWI SIGN CANDRABINDU
+
+11F01
+KAWI SIGN ANUSVARA
+
+11F02
+KAWI SIGN REPHA
+
+11F03
+KAWI SIGN VISARGA
+
+11F04
+KAWI LETTER A
+
+11F05
+KAWI LETTER AA
+
+11F06
+KAWI LETTER I
+
+11F07
+KAWI LETTER II
+
+11F08
+KAWI LETTER U
+
+11F09
+KAWI LETTER UU
+
+11F0A
+KAWI LETTER VOCALIC R
+
+11F0B
+KAWI LETTER VOCALIC RR
+
+11F0C
+KAWI LETTER VOCALIC L
+
+11F0D
+KAWI LETTER VOCALIC LL
+
+11F0E
+KAWI LETTER E
+
+11F0F
+KAWI LETTER AI
+
+11F10
+KAWI LETTER O
+
+11F12
+KAWI LETTER KA
+
+11F13
+KAWI LETTER KHA
+
+11F14
+KAWI LETTER GA
+
+11F15
+KAWI LETTER GHA
+
+11F16
+KAWI LETTER NGA
+
+11F17
+KAWI LETTER CA
+
+11F18
+KAWI LETTER CHA
+
+11F19
+KAWI LETTER JA
+
+11F1A
+KAWI LETTER JHA
+
+11F1B
+KAWI LETTER NYA
+
+11F1C
+KAWI LETTER TTA
+
+11F1D
+KAWI LETTER TTHA
+
+11F1E
+KAWI LETTER DDA
+
+11F1F
+KAWI LETTER DDHA
+
+11F20
+KAWI LETTER NNA
+
+11F21
+KAWI LETTER TA
+
+11F22
+KAWI LETTER THA
+
+11F23
+KAWI LETTER DA
+
+11F24
+KAWI LETTER DHA
+
+11F25
+KAWI LETTER NA
+
+11F26
+KAWI LETTER PA
+
+11F27
+KAWI LETTER PHA
+
+11F28
+KAWI LETTER BA
+
+11F29
+KAWI LETTER BHA
+
+11F2A
+KAWI LETTER MA
+
+11F2B
+KAWI LETTER YA
+
+11F2C
+KAWI LETTER RA
+
+11F2D
+KAWI LETTER LA
+
+11F2E
+KAWI LETTER WA
+
+11F2F
+KAWI LETTER SHA
+
+11F30
+KAWI LETTER SSA
+
+11F31
+KAWI LETTER SA
+
+11F32
+KAWI LETTER HA
+
+11F33
+KAWI LETTER JNYA
+
+11F34
+KAWI VOWEL SIGN AA
+
+11F35
+KAWI VOWEL SIGN ALTERNATE AA
+
+11F36
+KAWI VOWEL SIGN I
+
+11F37
+KAWI VOWEL SIGN II
+
+11F38
+KAWI VOWEL SIGN U
+
+11F39
+KAWI VOWEL SIGN UU
+
+11F3A
+KAWI VOWEL SIGN VOCALIC R
+
+11F3E
+KAWI VOWEL SIGN E
+
+11F3F
+KAWI VOWEL SIGN AI
+
+11F40
+KAWI VOWEL SIGN EU
+
+11F41
+KAWI SIGN KILLER
+
+11F42
+KAWI CONJOINER
+
+11F43
+KAWI DANDA
+
+11F44
+KAWI DOUBLE DANDA
+
+11F45
+KAWI PUNCTUATION SECTION MARKER
+
+11F46
+KAWI PUNCTUATION ALTERNATE SECTION MARKER
+
+11F47
+KAWI PUNCTUATION FLOWER
+
+11F48
+KAWI PUNCTUATION SPACE FILLER
+
+11F49
+KAWI PUNCTUATION DOT
+
+11F4A
+KAWI PUNCTUATION DOUBLE DOT
+
+11F4B
+KAWI PUNCTUATION TRIPLE DOT
+
+11F4C
+KAWI PUNCTUATION CIRCLE
+
+11F4D
+KAWI PUNCTUATION FILLED CIRCLE
+
+11F4E
+KAWI PUNCTUATION SPIRAL
+
+11F4F
+KAWI PUNCTUATION CLOSING SPIRAL
+
+11F50
+KAWI DIGIT ZERO
+
+11F51
+KAWI DIGIT ONE
+
+11F52
+KAWI DIGIT TWO
+
+11F53
+KAWI DIGIT THREE
+
+11F54
+KAWI DIGIT FOUR
+
+11F55
+KAWI DIGIT FIVE
+
+11F56
+KAWI DIGIT SIX
+
+11F57
+KAWI DIGIT SEVEN
+
+11F58
+KAWI DIGIT EIGHT
+
+11F59
+KAWI DIGIT NINE
+
11FB0
LISU LETTER YHA
@@ -66721,6 +67978,303 @@ CUNEIFORM SIGN ZU OVER ZU PLUS SAR
12543
CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+12F90
+CYPRO-MINOAN SIGN CM001
+
+12F91
+CYPRO-MINOAN SIGN CM002
+
+12F92
+CYPRO-MINOAN SIGN CM004
+
+12F93
+CYPRO-MINOAN SIGN CM005
+
+12F94
+CYPRO-MINOAN SIGN CM006
+
+12F95
+CYPRO-MINOAN SIGN CM007
+
+12F96
+CYPRO-MINOAN SIGN CM008
+
+12F97
+CYPRO-MINOAN SIGN CM009
+
+12F98
+CYPRO-MINOAN SIGN CM010
+
+12F99
+CYPRO-MINOAN SIGN CM011
+
+12F9A
+CYPRO-MINOAN SIGN CM012
+
+12F9B
+CYPRO-MINOAN SIGN CM012B
+
+12F9C
+CYPRO-MINOAN SIGN CM013
+
+12F9D
+CYPRO-MINOAN SIGN CM015
+
+12F9E
+CYPRO-MINOAN SIGN CM017
+
+12F9F
+CYPRO-MINOAN SIGN CM019
+
+12FA0
+CYPRO-MINOAN SIGN CM021
+
+12FA1
+CYPRO-MINOAN SIGN CM023
+
+12FA2
+CYPRO-MINOAN SIGN CM024
+
+12FA3
+CYPRO-MINOAN SIGN CM025
+
+12FA4
+CYPRO-MINOAN SIGN CM026
+
+12FA5
+CYPRO-MINOAN SIGN CM027
+
+12FA6
+CYPRO-MINOAN SIGN CM028
+
+12FA7
+CYPRO-MINOAN SIGN CM029
+
+12FA8
+CYPRO-MINOAN SIGN CM030
+
+12FA9
+CYPRO-MINOAN SIGN CM033
+
+12FAA
+CYPRO-MINOAN SIGN CM034
+
+12FAB
+CYPRO-MINOAN SIGN CM035
+
+12FAC
+CYPRO-MINOAN SIGN CM036
+
+12FAD
+CYPRO-MINOAN SIGN CM037
+
+12FAE
+CYPRO-MINOAN SIGN CM038
+
+12FAF
+CYPRO-MINOAN SIGN CM039
+
+12FB0
+CYPRO-MINOAN SIGN CM040
+
+12FB1
+CYPRO-MINOAN SIGN CM041
+
+12FB2
+CYPRO-MINOAN SIGN CM044
+
+12FB3
+CYPRO-MINOAN SIGN CM046
+
+12FB4
+CYPRO-MINOAN SIGN CM047
+
+12FB5
+CYPRO-MINOAN SIGN CM049
+
+12FB6
+CYPRO-MINOAN SIGN CM050
+
+12FB7
+CYPRO-MINOAN SIGN CM051
+
+12FB8
+CYPRO-MINOAN SIGN CM052
+
+12FB9
+CYPRO-MINOAN SIGN CM053
+
+12FBA
+CYPRO-MINOAN SIGN CM054
+
+12FBB
+CYPRO-MINOAN SIGN CM055
+
+12FBC
+CYPRO-MINOAN SIGN CM056
+
+12FBD
+CYPRO-MINOAN SIGN CM058
+
+12FBE
+CYPRO-MINOAN SIGN CM059
+
+12FBF
+CYPRO-MINOAN SIGN CM060
+
+12FC0
+CYPRO-MINOAN SIGN CM061
+
+12FC1
+CYPRO-MINOAN SIGN CM062
+
+12FC2
+CYPRO-MINOAN SIGN CM063
+
+12FC3
+CYPRO-MINOAN SIGN CM064
+
+12FC4
+CYPRO-MINOAN SIGN CM066
+
+12FC5
+CYPRO-MINOAN SIGN CM067
+
+12FC6
+CYPRO-MINOAN SIGN CM068
+
+12FC7
+CYPRO-MINOAN SIGN CM069
+
+12FC8
+CYPRO-MINOAN SIGN CM070
+
+12FC9
+CYPRO-MINOAN SIGN CM071
+
+12FCA
+CYPRO-MINOAN SIGN CM072
+
+12FCB
+CYPRO-MINOAN SIGN CM073
+
+12FCC
+CYPRO-MINOAN SIGN CM074
+
+12FCD
+CYPRO-MINOAN SIGN CM075
+
+12FCE
+CYPRO-MINOAN SIGN CM075B
+
+12FCF
+CYPRO-MINOAN SIGN CM076
+
+12FD0
+CYPRO-MINOAN SIGN CM078
+
+12FD1
+CYPRO-MINOAN SIGN CM079
+
+12FD2
+CYPRO-MINOAN SIGN CM080
+
+12FD3
+CYPRO-MINOAN SIGN CM081
+
+12FD4
+CYPRO-MINOAN SIGN CM082
+
+12FD5
+CYPRO-MINOAN SIGN CM083
+
+12FD6
+CYPRO-MINOAN SIGN CM084
+
+12FD7
+CYPRO-MINOAN SIGN CM085
+
+12FD8
+CYPRO-MINOAN SIGN CM086
+
+12FD9
+CYPRO-MINOAN SIGN CM087
+
+12FDA
+CYPRO-MINOAN SIGN CM088
+
+12FDB
+CYPRO-MINOAN SIGN CM089
+
+12FDC
+CYPRO-MINOAN SIGN CM090
+
+12FDD
+CYPRO-MINOAN SIGN CM091
+
+12FDE
+CYPRO-MINOAN SIGN CM092
+
+12FDF
+CYPRO-MINOAN SIGN CM094
+
+12FE0
+CYPRO-MINOAN SIGN CM095
+
+12FE1
+CYPRO-MINOAN SIGN CM096
+
+12FE2
+CYPRO-MINOAN SIGN CM097
+
+12FE3
+CYPRO-MINOAN SIGN CM098
+
+12FE4
+CYPRO-MINOAN SIGN CM099
+
+12FE5
+CYPRO-MINOAN SIGN CM100
+
+12FE6
+CYPRO-MINOAN SIGN CM101
+
+12FE7
+CYPRO-MINOAN SIGN CM102
+
+12FE8
+CYPRO-MINOAN SIGN CM103
+
+12FE9
+CYPRO-MINOAN SIGN CM104
+
+12FEA
+CYPRO-MINOAN SIGN CM105
+
+12FEB
+CYPRO-MINOAN SIGN CM107
+
+12FEC
+CYPRO-MINOAN SIGN CM108
+
+12FED
+CYPRO-MINOAN SIGN CM109
+
+12FEE
+CYPRO-MINOAN SIGN CM110
+
+12FEF
+CYPRO-MINOAN SIGN CM112
+
+12FF0
+CYPRO-MINOAN SIGN CM114
+
+12FF1
+CYPRO-MINOAN SIGN CM301
+
+12FF2
+CYPRO-MINOAN SIGN CM302
+
13000
EGYPTIAN HIEROGLYPH A001
@@ -69934,6 +71488,9 @@ EGYPTIAN HIEROGLYPH AA031
1342E
EGYPTIAN HIEROGLYPH AA032
+1342F
+EGYPTIAN HIEROGLYPH V011D
+
13430
EGYPTIAN HIEROGLYPH VERTICAL JOINER
@@ -69961,6 +71518,93 @@ EGYPTIAN HIEROGLYPH BEGIN SEGMENT
13438
EGYPTIAN HIEROGLYPH END SEGMENT
+13439
+EGYPTIAN HIEROGLYPH INSERT AT MIDDLE
+
+1343A
+EGYPTIAN HIEROGLYPH INSERT AT TOP
+
+1343B
+EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+
+1343C
+EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+
+1343D
+EGYPTIAN HIEROGLYPH END ENCLOSURE
+
+1343E
+EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
+
+1343F
+EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+
+13440
+EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+
+13441
+EGYPTIAN HIEROGLYPH FULL BLANK
+
+13442
+EGYPTIAN HIEROGLYPH HALF BLANK
+
+13443
+EGYPTIAN HIEROGLYPH LOST SIGN
+
+13444
+EGYPTIAN HIEROGLYPH HALF LOST SIGN
+
+13445
+EGYPTIAN HIEROGLYPH TALL LOST SIGN
+
+13446
+EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+
+13447
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START
+
+13448
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START
+
+13449
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START
+
+1344A
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END
+
+1344B
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP
+
+1344C
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END
+
+1344D
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP
+
+1344E
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END
+
+1344F
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END
+
+13450
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM
+
+13451
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM
+
+13452
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END
+
+13453
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END
+
+13454
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END
+
+13455
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+
14400
ANATOLIAN HIEROGLYPH A001
@@ -73546,6 +75190,273 @@ MRO DANDA
16A6F
MRO DOUBLE DANDA
+16A70
+TANGSA LETTER OZ
+
+16A71
+TANGSA LETTER OC
+
+16A72
+TANGSA LETTER OQ
+
+16A73
+TANGSA LETTER OX
+
+16A74
+TANGSA LETTER AZ
+
+16A75
+TANGSA LETTER AC
+
+16A76
+TANGSA LETTER AQ
+
+16A77
+TANGSA LETTER AX
+
+16A78
+TANGSA LETTER VZ
+
+16A79
+TANGSA LETTER VC
+
+16A7A
+TANGSA LETTER VQ
+
+16A7B
+TANGSA LETTER VX
+
+16A7C
+TANGSA LETTER EZ
+
+16A7D
+TANGSA LETTER EC
+
+16A7E
+TANGSA LETTER EQ
+
+16A7F
+TANGSA LETTER EX
+
+16A80
+TANGSA LETTER IZ
+
+16A81
+TANGSA LETTER IC
+
+16A82
+TANGSA LETTER IQ
+
+16A83
+TANGSA LETTER IX
+
+16A84
+TANGSA LETTER UZ
+
+16A85
+TANGSA LETTER UC
+
+16A86
+TANGSA LETTER UQ
+
+16A87
+TANGSA LETTER UX
+
+16A88
+TANGSA LETTER AWZ
+
+16A89
+TANGSA LETTER AWC
+
+16A8A
+TANGSA LETTER AWQ
+
+16A8B
+TANGSA LETTER AWX
+
+16A8C
+TANGSA LETTER UIZ
+
+16A8D
+TANGSA LETTER UIC
+
+16A8E
+TANGSA LETTER UIQ
+
+16A8F
+TANGSA LETTER UIX
+
+16A90
+TANGSA LETTER FINAL NG
+
+16A91
+TANGSA LETTER LONG UEX
+
+16A92
+TANGSA LETTER SHORT UEZ
+
+16A93
+TANGSA LETTER SHORT AWX
+
+16A94
+TANGSA LETTER UEC
+
+16A95
+TANGSA LETTER UEZ
+
+16A96
+TANGSA LETTER UEQ
+
+16A97
+TANGSA LETTER UEX
+
+16A98
+TANGSA LETTER UIUZ
+
+16A99
+TANGSA LETTER UIUC
+
+16A9A
+TANGSA LETTER UIUQ
+
+16A9B
+TANGSA LETTER UIUX
+
+16A9C
+TANGSA LETTER MZ
+
+16A9D
+TANGSA LETTER MC
+
+16A9E
+TANGSA LETTER MQ
+
+16A9F
+TANGSA LETTER MX
+
+16AA0
+TANGSA LETTER KA
+
+16AA1
+TANGSA LETTER KHA
+
+16AA2
+TANGSA LETTER GA
+
+16AA3
+TANGSA LETTER NGA
+
+16AA4
+TANGSA LETTER SA
+
+16AA5
+TANGSA LETTER YA
+
+16AA6
+TANGSA LETTER WA
+
+16AA7
+TANGSA LETTER PA
+
+16AA8
+TANGSA LETTER NYA
+
+16AA9
+TANGSA LETTER PHA
+
+16AAA
+TANGSA LETTER BA
+
+16AAB
+TANGSA LETTER MA
+
+16AAC
+TANGSA LETTER NA
+
+16AAD
+TANGSA LETTER HA
+
+16AAE
+TANGSA LETTER LA
+
+16AAF
+TANGSA LETTER HTA
+
+16AB0
+TANGSA LETTER TA
+
+16AB1
+TANGSA LETTER DA
+
+16AB2
+TANGSA LETTER RA
+
+16AB3
+TANGSA LETTER NHA
+
+16AB4
+TANGSA LETTER SHA
+
+16AB5
+TANGSA LETTER CA
+
+16AB6
+TANGSA LETTER TSA
+
+16AB7
+TANGSA LETTER GHA
+
+16AB8
+TANGSA LETTER HTTA
+
+16AB9
+TANGSA LETTER THA
+
+16ABA
+TANGSA LETTER XA
+
+16ABB
+TANGSA LETTER FA
+
+16ABC
+TANGSA LETTER DHA
+
+16ABD
+TANGSA LETTER CHA
+
+16ABE
+TANGSA LETTER ZA
+
+16AC0
+TANGSA DIGIT ZERO
+
+16AC1
+TANGSA DIGIT ONE
+
+16AC2
+TANGSA DIGIT TWO
+
+16AC3
+TANGSA DIGIT THREE
+
+16AC4
+TANGSA DIGIT FOUR
+
+16AC5
+TANGSA DIGIT FIVE
+
+16AC6
+TANGSA DIGIT SIX
+
+16AC7
+TANGSA DIGIT SEVEN
+
+16AC8
+TANGSA DIGIT EIGHT
+
+16AC9
+TANGSA DIGIT NINE
+
16AD0
BASSA VAH LETTER ENNI
@@ -77092,6 +79003,45 @@ TANGUT COMPONENT-767
18AFF
TANGUT COMPONENT-768
+1AFF0
+KATAKANA LETTER MINNAN TONE-2
+
+1AFF1
+KATAKANA LETTER MINNAN TONE-3
+
+1AFF2
+KATAKANA LETTER MINNAN TONE-4
+
+1AFF3
+KATAKANA LETTER MINNAN TONE-5
+
+1AFF5
+KATAKANA LETTER MINNAN TONE-7
+
+1AFF6
+KATAKANA LETTER MINNAN TONE-8
+
+1AFF7
+KATAKANA LETTER MINNAN NASALIZED TONE-1
+
+1AFF8
+KATAKANA LETTER MINNAN NASALIZED TONE-2
+
+1AFF9
+KATAKANA LETTER MINNAN NASALIZED TONE-3
+
+1AFFA
+KATAKANA LETTER MINNAN NASALIZED TONE-4
+
+1AFFB
+KATAKANA LETTER MINNAN NASALIZED TONE-5
+
+1AFFD
+KATAKANA LETTER MINNAN NASALIZED TONE-7
+
+1AFFE
+KATAKANA LETTER MINNAN NASALIZED TONE-8
+
1B000
KATAKANA LETTER ARCHAIC E
@@ -77956,6 +79906,21 @@ HENTAIGANA LETTER N-MU-MO-1
1B11E
HENTAIGANA LETTER N-MU-MO-2
+1B11F
+HIRAGANA LETTER ARCHAIC WU
+
+1B120
+KATAKANA LETTER ARCHAIC YI
+
+1B121
+KATAKANA LETTER ARCHAIC YE
+
+1B122
+KATAKANA LETTER ARCHAIC WU
+
+1B132
+HIRAGANA LETTER SMALL KO
+
1B150
HIRAGANA LETTER SMALL WI
@@ -77965,6 +79930,9 @@ HIRAGANA LETTER SMALL WE
1B152
HIRAGANA LETTER SMALL WO
+1B155
+KATAKANA LETTER SMALL KO
+
1B164
KATAKANA LETTER SMALL WI
@@ -78418,6 +80386,561 @@ SHORTHAND FORMAT DOWN STEP
1BCA3
SHORTHAND FORMAT UP STEP
+1CF00
+ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT
+
+1CF01
+ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON LEFT
+
+1CF02
+ZNAMENNY COMBINING MARK TSATA ON LEFT
+
+1CF03
+ZNAMENNY COMBINING MARK GORAZDO NIZKO ON LEFT
+
+1CF04
+ZNAMENNY COMBINING MARK NIZKO ON LEFT
+
+1CF05
+ZNAMENNY COMBINING MARK SREDNE ON LEFT
+
+1CF06
+ZNAMENNY COMBINING MARK MALO POVYSHE ON LEFT
+
+1CF07
+ZNAMENNY COMBINING MARK POVYSHE ON LEFT
+
+1CF08
+ZNAMENNY COMBINING MARK VYSOKO ON LEFT
+
+1CF09
+ZNAMENNY COMBINING MARK MALO POVYSHE S KHOKHLOM ON LEFT
+
+1CF0A
+ZNAMENNY COMBINING MARK POVYSHE S KHOKHLOM ON LEFT
+
+1CF0B
+ZNAMENNY COMBINING MARK VYSOKO S KHOKHLOM ON LEFT
+
+1CF0C
+ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON RIGHT
+
+1CF0D
+ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON RIGHT
+
+1CF0E
+ZNAMENNY COMBINING MARK TSATA ON RIGHT
+
+1CF0F
+ZNAMENNY COMBINING MARK GORAZDO NIZKO ON RIGHT
+
+1CF10
+ZNAMENNY COMBINING MARK NIZKO ON RIGHT
+
+1CF11
+ZNAMENNY COMBINING MARK SREDNE ON RIGHT
+
+1CF12
+ZNAMENNY COMBINING MARK MALO POVYSHE ON RIGHT
+
+1CF13
+ZNAMENNY COMBINING MARK POVYSHE ON RIGHT
+
+1CF14
+ZNAMENNY COMBINING MARK VYSOKO ON RIGHT
+
+1CF15
+ZNAMENNY COMBINING MARK MALO POVYSHE S KHOKHLOM ON RIGHT
+
+1CF16
+ZNAMENNY COMBINING MARK POVYSHE S KHOKHLOM ON RIGHT
+
+1CF17
+ZNAMENNY COMBINING MARK VYSOKO S KHOKHLOM ON RIGHT
+
+1CF18
+ZNAMENNY COMBINING MARK TSATA S KRYZHEM
+
+1CF19
+ZNAMENNY COMBINING MARK MALO POVYSHE S KRYZHEM
+
+1CF1A
+ZNAMENNY COMBINING MARK STRANNO MALO POVYSHE
+
+1CF1B
+ZNAMENNY COMBINING MARK POVYSHE S KRYZHEM
+
+1CF1C
+ZNAMENNY COMBINING MARK POVYSHE STRANNO
+
+1CF1D
+ZNAMENNY COMBINING MARK VYSOKO S KRYZHEM
+
+1CF1E
+ZNAMENNY COMBINING MARK MALO POVYSHE STRANNO
+
+1CF1F
+ZNAMENNY COMBINING MARK GORAZDO VYSOKO
+
+1CF20
+ZNAMENNY COMBINING MARK ZELO
+
+1CF21
+ZNAMENNY COMBINING MARK ON
+
+1CF22
+ZNAMENNY COMBINING MARK RAVNO
+
+1CF23
+ZNAMENNY COMBINING MARK TIKHAYA
+
+1CF24
+ZNAMENNY COMBINING MARK BORZAYA
+
+1CF25
+ZNAMENNY COMBINING MARK UDARKA
+
+1CF26
+ZNAMENNY COMBINING MARK PODVERTKA
+
+1CF27
+ZNAMENNY COMBINING MARK LOMKA
+
+1CF28
+ZNAMENNY COMBINING MARK KUPNAYA
+
+1CF29
+ZNAMENNY COMBINING MARK KACHKA
+
+1CF2A
+ZNAMENNY COMBINING MARK ZEVOK
+
+1CF2B
+ZNAMENNY COMBINING MARK SKOBA
+
+1CF2C
+ZNAMENNY COMBINING MARK RAZSEKA
+
+1CF2D
+ZNAMENNY COMBINING MARK KRYZH ON LEFT
+
+1CF30
+ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO
+
+1CF31
+ZNAMENNY COMBINING TONAL RANGE MARK SVETLO
+
+1CF32
+ZNAMENNY COMBINING TONAL RANGE MARK TRESVETLO
+
+1CF33
+ZNAMENNY COMBINING MARK ZADERZHKA
+
+1CF34
+ZNAMENNY COMBINING MARK DEMESTVENNY ZADERZHKA
+
+1CF35
+ZNAMENNY COMBINING MARK OTSECHKA
+
+1CF36
+ZNAMENNY COMBINING MARK PODCHASHIE
+
+1CF37
+ZNAMENNY COMBINING MARK PODCHASHIE WITH VERTICAL STROKE
+
+1CF38
+ZNAMENNY COMBINING MARK CHASHKA
+
+1CF39
+ZNAMENNY COMBINING MARK CHASHKA POLNAYA
+
+1CF3A
+ZNAMENNY COMBINING MARK OBLACHKO
+
+1CF3B
+ZNAMENNY COMBINING MARK SOROCHYA NOZHKA
+
+1CF3C
+ZNAMENNY COMBINING MARK TOCHKA
+
+1CF3D
+ZNAMENNY COMBINING MARK DVOETOCHIE
+
+1CF3E
+ZNAMENNY COMBINING ATTACHING VERTICAL OMET
+
+1CF3F
+ZNAMENNY COMBINING MARK CURVED OMET
+
+1CF40
+ZNAMENNY COMBINING MARK KRYZH
+
+1CF41
+ZNAMENNY COMBINING LOWER TONAL RANGE INDICATOR
+
+1CF42
+ZNAMENNY PRIZNAK MODIFIER LEVEL-2
+
+1CF43
+ZNAMENNY PRIZNAK MODIFIER LEVEL-3
+
+1CF44
+ZNAMENNY PRIZNAK MODIFIER DIRECTION FLIP
+
+1CF45
+ZNAMENNY PRIZNAK MODIFIER KRYZH
+
+1CF46
+ZNAMENNY PRIZNAK MODIFIER ROG
+
+1CF50
+ZNAMENNY NEUME KRYUK
+
+1CF51
+ZNAMENNY NEUME KRYUK TIKHY
+
+1CF52
+ZNAMENNY NEUME PARAKLIT
+
+1CF53
+ZNAMENNY NEUME DVA V CHELNU
+
+1CF54
+ZNAMENNY NEUME KLYUCH
+
+1CF55
+ZNAMENNY NEUME ZANOZHEK
+
+1CF56
+ZNAMENNY NEUME STOPITSA
+
+1CF57
+ZNAMENNY NEUME STOPITSA S OCHKOM
+
+1CF58
+ZNAMENNY NEUME PEREVODKA
+
+1CF59
+ZNAMENNY NEUME PEREVODKA NEPOSTOYANNAYA
+
+1CF5A
+ZNAMENNY NEUME STOPITSA WITH SOROCHYA NOZHKA
+
+1CF5B
+ZNAMENNY NEUME CHELYUSTKA
+
+1CF5C
+ZNAMENNY NEUME PALKA
+
+1CF5D
+ZNAMENNY NEUME ZAPYATAYA
+
+1CF5E
+ZNAMENNY NEUME GOLUBCHIK BORZY
+
+1CF5F
+ZNAMENNY NEUME GOLUBCHIK TIKHY
+
+1CF60
+ZNAMENNY NEUME GOLUBCHIK MRACHNY
+
+1CF61
+ZNAMENNY NEUME GOLUBCHIK SVETLY
+
+1CF62
+ZNAMENNY NEUME GOLUBCHIK TRESVETLY
+
+1CF63
+ZNAMENNY NEUME VRAKHIYA PROSTAYA
+
+1CF64
+ZNAMENNY NEUME VRAKHIYA MRACHNAYA
+
+1CF65
+ZNAMENNY NEUME VRAKHIYA SVETLAYA
+
+1CF66
+ZNAMENNY NEUME VRAKHIYA TRESVETLAYA
+
+1CF67
+ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA PROSTAYA
+
+1CF68
+ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA MRACHNAYA
+
+1CF69
+ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA SVETLAYA
+
+1CF6A
+ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA TRESVETLAYA
+
+1CF6B
+ZNAMENNY NEUME DOUBLE ZAPYATAYA
+
+1CF6C
+ZNAMENNY NEUME REVERSED CHELYUSTKA
+
+1CF6D
+ZNAMENNY NEUME DERBITSA
+
+1CF6E
+ZNAMENNY NEUME KHAMILO
+
+1CF6F
+ZNAMENNY NEUME CHASHKA
+
+1CF70
+ZNAMENNY NEUME PODCHASHIE
+
+1CF71
+ZNAMENNY NEUME SKAMEYTSA MRACHNAYA
+
+1CF72
+ZNAMENNY NEUME SKAMEYTSA SVETLAYA
+
+1CF73
+ZNAMENNY NEUME SKAMEYTSA TRESVETLAYA
+
+1CF74
+ZNAMENNY NEUME SKAMEYTSA TIKHAYA
+
+1CF75
+ZNAMENNY NEUME DEMESTVENNY KLYUCH
+
+1CF76
+ZNAMENNY NEUME SKAMEYTSA KLYUCHEVAYA SVETLAYA
+
+1CF77
+ZNAMENNY NEUME SKAMEYTSA KLYUCHENEPOSTOYANNAYA
+
+1CF78
+ZNAMENNY NEUME SKAMEYTSA KLYUCHEVAYA TIKHAYA
+
+1CF79
+ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA PROSTAYA
+
+1CF7A
+ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA SVETLAYA
+
+1CF7B
+ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA NEPOSTOYANNAYA
+
+1CF7C
+ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA KLYUCHEVAYA
+
+1CF7D
+ZNAMENNY NEUME SLOZHITIE
+
+1CF7E
+ZNAMENNY NEUME SLOZHITIE S ZAPYATOY
+
+1CF7F
+ZNAMENNY NEUME SLOZHITIE ZAKRYTOE
+
+1CF80
+ZNAMENNY NEUME SLOZHITIE S KRYZHEM
+
+1CF81
+ZNAMENNY NEUME KRYZH
+
+1CF82
+ZNAMENNY NEUME ROG
+
+1CF83
+ZNAMENNY NEUME FITA
+
+1CF84
+ZNAMENNY NEUME KOBYLA
+
+1CF85
+ZNAMENNY NEUME ZMEYTSA
+
+1CF86
+ZNAMENNY NEUME STATYA
+
+1CF87
+ZNAMENNY NEUME STATYA S ZAPYATOY
+
+1CF88
+ZNAMENNY NEUME STATYA S KRYZHEM
+
+1CF89
+ZNAMENNY NEUME STATYA S ZAPYATOY I KRYZHEM
+
+1CF8A
+ZNAMENNY NEUME STATYA S KRYZHEM I ZAPYATOY
+
+1CF8B
+ZNAMENNY NEUME STATYA ZAKRYTAYA
+
+1CF8C
+ZNAMENNY NEUME STATYA ZAKRYTAYA S ZAPYATOY
+
+1CF8D
+ZNAMENNY NEUME STATYA S ROGOM
+
+1CF8E
+ZNAMENNY NEUME STATYA S DVUMYA ZAPYATYMI
+
+1CF8F
+ZNAMENNY NEUME STATYA S ZAPYATOY I PODCHASHIEM
+
+1CF90
+ZNAMENNY NEUME POLKULIZMY
+
+1CF91
+ZNAMENNY NEUME STATYA NEPOSTOYANNAYA
+
+1CF92
+ZNAMENNY NEUME STRELA PROSTAYA
+
+1CF93
+ZNAMENNY NEUME STRELA MRACHNOTIKHAYA
+
+1CF94
+ZNAMENNY NEUME STRELA KRYZHEVAYA
+
+1CF95
+ZNAMENNY NEUME STRELA POLUPOVODNAYA
+
+1CF96
+ZNAMENNY NEUME STRELA POVODNAYA
+
+1CF97
+ZNAMENNY NEUME STRELA NEPOSTOYANNAYA
+
+1CF98
+ZNAMENNY NEUME STRELA KLYUCHEPOVODNAYA
+
+1CF99
+ZNAMENNY NEUME STRELA KLYUCHENEPOSTOYANNAYA
+
+1CF9A
+ZNAMENNY NEUME STRELA TIKHAYA PUTNAYA
+
+1CF9B
+ZNAMENNY NEUME STRELA DVOECHELNAYA
+
+1CF9C
+ZNAMENNY NEUME STRELA DVOECHELNOKRYZHEVAYA
+
+1CF9D
+ZNAMENNY NEUME STRELA DVOECHELNOPOVODNAYA
+
+1CF9E
+ZNAMENNY NEUME STRELA DVOECHELNAYA KLYUCHEVAYA
+
+1CF9F
+ZNAMENNY NEUME STRELA DVOECHELNOPOVODNAYA KLYUCHEVAYA
+
+1CFA0
+ZNAMENNY NEUME STRELA GROMNAYA WITH SINGLE ZAPYATAYA
+
+1CFA1
+ZNAMENNY NEUME STRELA GROMOPOVODNAYA WITH SINGLE ZAPYATAYA
+
+1CFA2
+ZNAMENNY NEUME STRELA GROMNAYA
+
+1CFA3
+ZNAMENNY NEUME STRELA GROMOPOVODNAYA
+
+1CFA4
+ZNAMENNY NEUME STRELA GROMOPOVODNAYA WITH DOUBLE ZAPYATAYA
+
+1CFA5
+ZNAMENNY NEUME STRELA GROMOKRYZHEVAYA
+
+1CFA6
+ZNAMENNY NEUME STRELA GROMOKRYZHEVAYA POVODNAYA
+
+1CFA7
+ZNAMENNY NEUME MECHIK
+
+1CFA8
+ZNAMENNY NEUME MECHIK POVODNY
+
+1CFA9
+ZNAMENNY NEUME MECHIK KLYUCHEVOY
+
+1CFAA
+ZNAMENNY NEUME MECHIK KLYUCHEPOVODNY
+
+1CFAB
+ZNAMENNY NEUME MECHIK KLYUCHENEPOSTOYANNY
+
+1CFAC
+ZNAMENNY NEUME STRELA TRYASOGLASNAYA
+
+1CFAD
+ZNAMENNY NEUME STRELA TRYASOPOVODNAYA
+
+1CFAE
+ZNAMENNY NEUME STRELA TRYASOSTRELNAYA
+
+1CFAF
+ZNAMENNY NEUME OSOKA
+
+1CFB0
+ZNAMENNY NEUME OSOKA SVETLAYA
+
+1CFB1
+ZNAMENNY NEUME OSOKA TRESVETLAYA
+
+1CFB2
+ZNAMENNY NEUME OSOKA KRYUKOVAYA SVETLAYA
+
+1CFB3
+ZNAMENNY NEUME OSOKA KLYUCHEVAYA SVETLAYA
+
+1CFB4
+ZNAMENNY NEUME OSOKA KLYUCHEVAYA NEPOSTOYANNAYA
+
+1CFB5
+ZNAMENNY NEUME STRELA KRYUKOVAYA
+
+1CFB6
+ZNAMENNY NEUME STRELA KRYUKOVAYA POVODNAYA
+
+1CFB7
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMNAYA WITH SINGLE ZAPYATAYA
+
+1CFB8
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA WITH SINGLE ZAPYATAYA
+
+1CFB9
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMNAYA
+
+1CFBA
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA
+
+1CFBB
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA WITH DOUBLE ZAPYATAYA
+
+1CFBC
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOKRYZHEVAYA
+
+1CFBD
+ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOKRYZHEVAYA POVODNAYA
+
+1CFBE
+ZNAMENNY NEUME STRELA KRYUKOVAYA TRYASKA
+
+1CFBF
+ZNAMENNY NEUME KUFISMA
+
+1CFC0
+ZNAMENNY NEUME OBLAKO
+
+1CFC1
+ZNAMENNY NEUME DUDA
+
+1CFC2
+ZNAMENNY NEUME NEMKA
+
+1CFC3
+ZNAMENNY NEUME PAUK
+
1D000
BYZANTINE MUSICAL SYMBOL PSILI
@@ -79852,6 +82375,12 @@ MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM UP
1D1E8
MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D1E9
+MUSICAL SYMBOL SORI
+
+1D1EA
+MUSICAL SYMBOL KORON
+
1D200
GREEK VOCAL NOTATION SYMBOL-1
@@ -80062,6 +82591,66 @@ COMBINING GREEK MUSICAL PENTASEME
1D245
GREEK MUSICAL LEIMMA
+1D2C0
+KAKTOVIK NUMERAL ZERO
+
+1D2C1
+KAKTOVIK NUMERAL ONE
+
+1D2C2
+KAKTOVIK NUMERAL TWO
+
+1D2C3
+KAKTOVIK NUMERAL THREE
+
+1D2C4
+KAKTOVIK NUMERAL FOUR
+
+1D2C5
+KAKTOVIK NUMERAL FIVE
+
+1D2C6
+KAKTOVIK NUMERAL SIX
+
+1D2C7
+KAKTOVIK NUMERAL SEVEN
+
+1D2C8
+KAKTOVIK NUMERAL EIGHT
+
+1D2C9
+KAKTOVIK NUMERAL NINE
+
+1D2CA
+KAKTOVIK NUMERAL TEN
+
+1D2CB
+KAKTOVIK NUMERAL ELEVEN
+
+1D2CC
+KAKTOVIK NUMERAL TWELVE
+
+1D2CD
+KAKTOVIK NUMERAL THIRTEEN
+
+1D2CE
+KAKTOVIK NUMERAL FOURTEEN
+
+1D2CF
+KAKTOVIK NUMERAL FIFTEEN
+
+1D2D0
+KAKTOVIK NUMERAL SIXTEEN
+
+1D2D1
+KAKTOVIK NUMERAL SEVENTEEN
+
+1D2D2
+KAKTOVIK NUMERAL EIGHTEEN
+
+1D2D3
+KAKTOVIK NUMERAL NINETEEN
+
1D2E0
MAYAN NUMERAL ZERO
@@ -85462,6 +88051,117 @@ SIGNWRITING ROTATION MODIFIER-15
1DAAF
SIGNWRITING ROTATION MODIFIER-16
+1DF00
+LATIN SMALL LETTER FENG DIGRAPH WITH TRILL
+
+1DF01
+LATIN SMALL LETTER REVERSED SCRIPT G
+
+1DF02
+LATIN LETTER SMALL CAPITAL TURNED G
+
+1DF03
+LATIN SMALL LETTER REVERSED K
+
+1DF04
+LATIN LETTER SMALL CAPITAL L WITH BELT
+
+1DF05
+LATIN SMALL LETTER LEZH WITH RETROFLEX HOOK
+
+1DF06
+LATIN SMALL LETTER TURNED Y WITH BELT
+
+1DF07
+LATIN SMALL LETTER REVERSED ENG
+
+1DF08
+LATIN SMALL LETTER TURNED R WITH LONG LEG AND RETROFLEX HOOK
+
+1DF09
+LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+
+1DF0A
+LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+
+1DF0B
+LATIN SMALL LETTER ESH WITH DOUBLE BAR
+
+1DF0C
+LATIN SMALL LETTER ESH WITH DOUBLE BAR AND CURL
+
+1DF0D
+LATIN SMALL LETTER TURNED T WITH CURL
+
+1DF0E
+LATIN LETTER INVERTED GLOTTAL STOP WITH CURL
+
+1DF0F
+LATIN LETTER STRETCHED C WITH CURL
+
+1DF10
+LATIN LETTER SMALL CAPITAL TURNED K
+
+1DF11
+LATIN SMALL LETTER L WITH FISHHOOK
+
+1DF12
+LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK
+
+1DF13
+LATIN SMALL LETTER L WITH BELT AND PALATAL HOOK
+
+1DF14
+LATIN SMALL LETTER ENG WITH PALATAL HOOK
+
+1DF15
+LATIN SMALL LETTER TURNED R WITH PALATAL HOOK
+
+1DF16
+LATIN SMALL LETTER R WITH FISHHOOK AND PALATAL HOOK
+
+1DF17
+LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK
+
+1DF18
+LATIN SMALL LETTER EZH WITH PALATAL HOOK
+
+1DF19
+LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK
+
+1DF1A
+LATIN SMALL LETTER I WITH STROKE AND RETROFLEX HOOK
+
+1DF1B
+LATIN SMALL LETTER O WITH RETROFLEX HOOK
+
+1DF1C
+LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK
+
+1DF1D
+LATIN SMALL LETTER C WITH RETROFLEX HOOK
+
+1DF1E
+LATIN SMALL LETTER S WITH CURL
+
+1DF25
+LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK
+
+1DF26
+LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK
+
+1DF27
+LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK
+
+1DF28
+LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK
+
+1DF29
+LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK
+
+1DF2A
+LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+
1E000
COMBINING GLAGOLITIC LETTER AZU
@@ -85576,6 +88276,195 @@ COMBINING GLAGOLITIC LETTER IOTATED BIG YUS
1E02A
COMBINING GLAGOLITIC LETTER FITA
+1E030
+MODIFIER LETTER CYRILLIC SMALL A
+
+1E031
+MODIFIER LETTER CYRILLIC SMALL BE
+
+1E032
+MODIFIER LETTER CYRILLIC SMALL VE
+
+1E033
+MODIFIER LETTER CYRILLIC SMALL GHE
+
+1E034
+MODIFIER LETTER CYRILLIC SMALL DE
+
+1E035
+MODIFIER LETTER CYRILLIC SMALL IE
+
+1E036
+MODIFIER LETTER CYRILLIC SMALL ZHE
+
+1E037
+MODIFIER LETTER CYRILLIC SMALL ZE
+
+1E038
+MODIFIER LETTER CYRILLIC SMALL I
+
+1E039
+MODIFIER LETTER CYRILLIC SMALL KA
+
+1E03A
+MODIFIER LETTER CYRILLIC SMALL EL
+
+1E03B
+MODIFIER LETTER CYRILLIC SMALL EM
+
+1E03C
+MODIFIER LETTER CYRILLIC SMALL O
+
+1E03D
+MODIFIER LETTER CYRILLIC SMALL PE
+
+1E03E
+MODIFIER LETTER CYRILLIC SMALL ER
+
+1E03F
+MODIFIER LETTER CYRILLIC SMALL ES
+
+1E040
+MODIFIER LETTER CYRILLIC SMALL TE
+
+1E041
+MODIFIER LETTER CYRILLIC SMALL U
+
+1E042
+MODIFIER LETTER CYRILLIC SMALL EF
+
+1E043
+MODIFIER LETTER CYRILLIC SMALL HA
+
+1E044
+MODIFIER LETTER CYRILLIC SMALL TSE
+
+1E045
+MODIFIER LETTER CYRILLIC SMALL CHE
+
+1E046
+MODIFIER LETTER CYRILLIC SMALL SHA
+
+1E047
+MODIFIER LETTER CYRILLIC SMALL YERU
+
+1E048
+MODIFIER LETTER CYRILLIC SMALL E
+
+1E049
+MODIFIER LETTER CYRILLIC SMALL YU
+
+1E04A
+MODIFIER LETTER CYRILLIC SMALL DZZE
+
+1E04B
+MODIFIER LETTER CYRILLIC SMALL SCHWA
+
+1E04C
+MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+
+1E04D
+MODIFIER LETTER CYRILLIC SMALL JE
+
+1E04E
+MODIFIER LETTER CYRILLIC SMALL BARRED O
+
+1E04F
+MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+
+1E050
+MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+
+1E051
+CYRILLIC SUBSCRIPT SMALL LETTER A
+
+1E052
+CYRILLIC SUBSCRIPT SMALL LETTER BE
+
+1E053
+CYRILLIC SUBSCRIPT SMALL LETTER VE
+
+1E054
+CYRILLIC SUBSCRIPT SMALL LETTER GHE
+
+1E055
+CYRILLIC SUBSCRIPT SMALL LETTER DE
+
+1E056
+CYRILLIC SUBSCRIPT SMALL LETTER IE
+
+1E057
+CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+
+1E058
+CYRILLIC SUBSCRIPT SMALL LETTER ZE
+
+1E059
+CYRILLIC SUBSCRIPT SMALL LETTER I
+
+1E05A
+CYRILLIC SUBSCRIPT SMALL LETTER KA
+
+1E05B
+CYRILLIC SUBSCRIPT SMALL LETTER EL
+
+1E05C
+CYRILLIC SUBSCRIPT SMALL LETTER O
+
+1E05D
+CYRILLIC SUBSCRIPT SMALL LETTER PE
+
+1E05E
+CYRILLIC SUBSCRIPT SMALL LETTER ES
+
+1E05F
+CYRILLIC SUBSCRIPT SMALL LETTER U
+
+1E060
+CYRILLIC SUBSCRIPT SMALL LETTER EF
+
+1E061
+CYRILLIC SUBSCRIPT SMALL LETTER HA
+
+1E062
+CYRILLIC SUBSCRIPT SMALL LETTER TSE
+
+1E063
+CYRILLIC SUBSCRIPT SMALL LETTER CHE
+
+1E064
+CYRILLIC SUBSCRIPT SMALL LETTER SHA
+
+1E065
+CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+
+1E066
+CYRILLIC SUBSCRIPT SMALL LETTER YERU
+
+1E067
+CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+
+1E068
+CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+
+1E069
+CYRILLIC SUBSCRIPT SMALL LETTER DZE
+
+1E06A
+CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+
+1E06B
+MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+
+1E06C
+MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+
+1E06D
+MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+
+1E08F
+COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+
1E100
NYIAKENG PUACHUE HMONG LETTER MA
@@ -85789,6 +88678,99 @@ NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
1E14F
NYIAKENG PUACHUE HMONG CIRCLED CA
+1E290
+TOTO LETTER PA
+
+1E291
+TOTO LETTER BA
+
+1E292
+TOTO LETTER TA
+
+1E293
+TOTO LETTER DA
+
+1E294
+TOTO LETTER KA
+
+1E295
+TOTO LETTER GA
+
+1E296
+TOTO LETTER MA
+
+1E297
+TOTO LETTER NA
+
+1E298
+TOTO LETTER NGA
+
+1E299
+TOTO LETTER SA
+
+1E29A
+TOTO LETTER CHA
+
+1E29B
+TOTO LETTER YA
+
+1E29C
+TOTO LETTER WA
+
+1E29D
+TOTO LETTER JA
+
+1E29E
+TOTO LETTER HA
+
+1E29F
+TOTO LETTER RA
+
+1E2A0
+TOTO LETTER LA
+
+1E2A1
+TOTO LETTER I
+
+1E2A2
+TOTO LETTER BREATHY I
+
+1E2A3
+TOTO LETTER IU
+
+1E2A4
+TOTO LETTER BREATHY IU
+
+1E2A5
+TOTO LETTER U
+
+1E2A6
+TOTO LETTER E
+
+1E2A7
+TOTO LETTER BREATHY E
+
+1E2A8
+TOTO LETTER EO
+
+1E2A9
+TOTO LETTER BREATHY EO
+
+1E2AA
+TOTO LETTER O
+
+1E2AB
+TOTO LETTER AE
+
+1E2AC
+TOTO LETTER BREATHY AE
+
+1E2AD
+TOTO LETTER A
+
+1E2AE
+TOTO SIGN RISING TONE
+
1E2C0
WANCHO LETTER AA
@@ -85966,6 +88948,216 @@ WANCHO DIGIT NINE
1E2FF
WANCHO NGUN SIGN
+1E4D0
+NAG MUNDARI LETTER O
+
+1E4D1
+NAG MUNDARI LETTER OP
+
+1E4D2
+NAG MUNDARI LETTER OL
+
+1E4D3
+NAG MUNDARI LETTER OY
+
+1E4D4
+NAG MUNDARI LETTER ONG
+
+1E4D5
+NAG MUNDARI LETTER A
+
+1E4D6
+NAG MUNDARI LETTER AJ
+
+1E4D7
+NAG MUNDARI LETTER AB
+
+1E4D8
+NAG MUNDARI LETTER ANY
+
+1E4D9
+NAG MUNDARI LETTER AH
+
+1E4DA
+NAG MUNDARI LETTER I
+
+1E4DB
+NAG MUNDARI LETTER IS
+
+1E4DC
+NAG MUNDARI LETTER IDD
+
+1E4DD
+NAG MUNDARI LETTER IT
+
+1E4DE
+NAG MUNDARI LETTER IH
+
+1E4DF
+NAG MUNDARI LETTER U
+
+1E4E0
+NAG MUNDARI LETTER UC
+
+1E4E1
+NAG MUNDARI LETTER UD
+
+1E4E2
+NAG MUNDARI LETTER UK
+
+1E4E3
+NAG MUNDARI LETTER UR
+
+1E4E4
+NAG MUNDARI LETTER E
+
+1E4E5
+NAG MUNDARI LETTER ENN
+
+1E4E6
+NAG MUNDARI LETTER EG
+
+1E4E7
+NAG MUNDARI LETTER EM
+
+1E4E8
+NAG MUNDARI LETTER EN
+
+1E4E9
+NAG MUNDARI LETTER ETT
+
+1E4EA
+NAG MUNDARI LETTER ELL
+
+1E4EB
+NAG MUNDARI SIGN OJOD
+
+1E4EC
+NAG MUNDARI SIGN MUHOR
+
+1E4ED
+NAG MUNDARI SIGN TOYOR
+
+1E4EE
+NAG MUNDARI SIGN IKIR
+
+1E4EF
+NAG MUNDARI SIGN SUTUH
+
+1E4F0
+NAG MUNDARI DIGIT ZERO
+
+1E4F1
+NAG MUNDARI DIGIT ONE
+
+1E4F2
+NAG MUNDARI DIGIT TWO
+
+1E4F3
+NAG MUNDARI DIGIT THREE
+
+1E4F4
+NAG MUNDARI DIGIT FOUR
+
+1E4F5
+NAG MUNDARI DIGIT FIVE
+
+1E4F6
+NAG MUNDARI DIGIT SIX
+
+1E4F7
+NAG MUNDARI DIGIT SEVEN
+
+1E4F8
+NAG MUNDARI DIGIT EIGHT
+
+1E4F9
+NAG MUNDARI DIGIT NINE
+
+1E7E0
+ETHIOPIC SYLLABLE HHYA
+
+1E7E1
+ETHIOPIC SYLLABLE HHYU
+
+1E7E2
+ETHIOPIC SYLLABLE HHYI
+
+1E7E3
+ETHIOPIC SYLLABLE HHYAA
+
+1E7E4
+ETHIOPIC SYLLABLE HHYEE
+
+1E7E5
+ETHIOPIC SYLLABLE HHYE
+
+1E7E6
+ETHIOPIC SYLLABLE HHYO
+
+1E7E8
+ETHIOPIC SYLLABLE GURAGE HHWA
+
+1E7E9
+ETHIOPIC SYLLABLE HHWI
+
+1E7EA
+ETHIOPIC SYLLABLE HHWEE
+
+1E7EB
+ETHIOPIC SYLLABLE HHWE
+
+1E7ED
+ETHIOPIC SYLLABLE GURAGE MWI
+
+1E7EE
+ETHIOPIC SYLLABLE GURAGE MWEE
+
+1E7F0
+ETHIOPIC SYLLABLE GURAGE QWI
+
+1E7F1
+ETHIOPIC SYLLABLE GURAGE QWEE
+
+1E7F2
+ETHIOPIC SYLLABLE GURAGE QWE
+
+1E7F3
+ETHIOPIC SYLLABLE GURAGE BWI
+
+1E7F4
+ETHIOPIC SYLLABLE GURAGE BWEE
+
+1E7F5
+ETHIOPIC SYLLABLE GURAGE KWI
+
+1E7F6
+ETHIOPIC SYLLABLE GURAGE KWEE
+
+1E7F7
+ETHIOPIC SYLLABLE GURAGE KWE
+
+1E7F8
+ETHIOPIC SYLLABLE GURAGE GWI
+
+1E7F9
+ETHIOPIC SYLLABLE GURAGE GWEE
+
+1E7FA
+ETHIOPIC SYLLABLE GURAGE GWE
+
+1E7FB
+ETHIOPIC SYLLABLE GURAGE FWI
+
+1E7FC
+ETHIOPIC SYLLABLE GURAGE FWEE
+
+1E7FD
+ETHIOPIC SYLLABLE GURAGE PWI
+
+1E7FE
+ETHIOPIC SYLLABLE GURAGE PWEE
+
1E800
MENDE KIKAKUI SYLLABLE M001 KI
@@ -92107,6 +95299,18 @@ HUT
1F6D7
ELEVATOR
+1F6DC
+WIRELESS
+
+1F6DD
+PLAYGROUND SLIDE
+
+1F6DE
+WHEEL
+
+1F6DF
+RING BUOY
+
1F6E0
HAMMER AND WRENCH
@@ -92533,6 +95737,30 @@ ALCHEMICAL SYMBOL FOR HALF DRAM
1F773
ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F774
+LOT OF FORTUNE
+
+1F775
+OCCULTATION
+
+1F776
+LUNAR ECLIPSE
+
+1F77B
+HAUMEA
+
+1F77C
+MAKEMAKE
+
+1F77D
+GONGGONG
+
+1F77E
+QUAOAR
+
+1F77F
+ORCUS
+
1F780
BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
@@ -92800,6 +96028,9 @@ CIRCLED SQUARE
1F7D8
NEGATIVE CIRCLED SQUARE
+1F7D9
+NINE POINTED WHITE STAR
+
1F7E0
LARGE ORANGE CIRCLE
@@ -92836,6 +96067,9 @@ LARGE PURPLE SQUARE
1F7EB
LARGE BROWN SQUARE
+1F7F0
+HEAVY EQUALS SIGN
+
1F800
LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
@@ -93649,6 +96883,9 @@ NINJA
1F978
DISGUISED FACE
+1F979
+FACE HOLDING BACK TEARS
+
1F97A
FACE WITH PLEADING EYES
@@ -93895,6 +97132,9 @@ ICE CUBE
1F9CB
BUBBLE TEA
+1F9CC
+TROLL
+
1F9CD
STANDING PERSON
@@ -94357,6 +97597,15 @@ SHORTS
1FA74
THONG SANDAL
+1FA75
+LIGHT BLUE HEART
+
+1FA76
+GREY HEART
+
+1FA77
+PINK HEART
+
1FA78
DROP OF BLOOD
@@ -94366,6 +97615,12 @@ ADHESIVE BANDAGE
1FA7A
STETHOSCOPE
+1FA7B
+X-RAY
+
+1FA7C
+CRUTCH
+
1FA80
YO-YO
@@ -94387,6 +97642,12 @@ PINATA
1FA86
NESTING DOLLS
+1FA87
+MARACAS
+
+1FA88
+FLUTE
+
1FA90
RINGED PLANET
@@ -94462,6 +97723,27 @@ PLACARD
1FAA8
ROCK
+1FAA9
+MIRROR BALL
+
+1FAAA
+IDENTIFICATION CARD
+
+1FAAB
+LOW BATTERY
+
+1FAAC
+HAMSA
+
+1FAAD
+FOLDING HAND FAN
+
+1FAAE
+HAIR PICK
+
+1FAAF
+KHANDA
+
1FAB0
FLY
@@ -94483,6 +97765,30 @@ WOOD
1FAB6
FEATHER
+1FAB7
+LOTUS
+
+1FAB8
+CORAL
+
+1FAB9
+EMPTY NEST
+
+1FABA
+NEST WITH EGGS
+
+1FABB
+HYACINTH
+
+1FABC
+JELLYFISH
+
+1FABD
+WING
+
+1FABF
+GOOSE
+
1FAC0
ANATOMICAL HEART
@@ -94492,6 +97798,21 @@ LUNGS
1FAC2
PEOPLE HUGGING
+1FAC3
+PREGNANT MAN
+
+1FAC4
+PREGNANT PERSON
+
+1FAC5
+PERSON WITH CROWN
+
+1FACE
+MOOSE
+
+1FACF
+DONKEY
+
1FAD0
BLUEBERRIES
@@ -94513,6 +97834,75 @@ FONDUE
1FAD6
TEAPOT
+1FAD7
+POURING LIQUID
+
+1FAD8
+BEANS
+
+1FAD9
+JAR
+
+1FADA
+GINGER ROOT
+
+1FADB
+PEA POD
+
+1FAE0
+MELTING FACE
+
+1FAE1
+SALUTING FACE
+
+1FAE2
+FACE WITH OPEN EYES AND HAND OVER MOUTH
+
+1FAE3
+FACE WITH PEEKING EYE
+
+1FAE4
+FACE WITH DIAGONAL MOUTH
+
+1FAE5
+DOTTED LINE FACE
+
+1FAE6
+BITING LIP
+
+1FAE7
+BUBBLES
+
+1FAE8
+SHAKING FACE
+
+1FAF0
+HAND WITH INDEX FINGER AND THUMB CROSSED
+
+1FAF1
+RIGHTWARDS HAND
+
+1FAF2
+LEFTWARDS HAND
+
+1FAF3
+PALM DOWN HAND
+
+1FAF4
+PALM UP HAND
+
+1FAF5
+INDEX POINTING AT THE VIEWER
+
+1FAF6
+HEART HANDS
+
+1FAF7
+LEFTWARDS PUSHING HAND
+
+1FAF8
+RIGHTWARDS PUSHING HAND
+
1FB00
BLOCK SEXTANT-1
@@ -97150,6 +100540,63 @@ ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE
00646 006A9
ARABIC SEQUENCE NOON WITH KEHEH
+00915 0093C
+DEVANAGARI SEQUENCE FOR LETTER QA
+
+00916 0093C
+DEVANAGARI SEQUENCE FOR LETTER KHHA
+
+00917 0093C
+DEVANAGARI SEQUENCE FOR LETTER GHHA
+
+0091C 0093C
+DEVANAGARI SEQUENCE FOR LETTER ZA
+
+00921 0093C
+DEVANAGARI SEQUENCE FOR LETTER DDDHA
+
+00922 0093C
+DEVANAGARI SEQUENCE FOR LETTER RHA
+
+0092B 0093C
+DEVANAGARI SEQUENCE FOR LETTER FA
+
+0092F 0093C
+DEVANAGARI SEQUENCE FOR LETTER YYA
+
+009A1 009BC
+BENGALI SEQUENCE FOR LETTER RRA
+
+009A2 009BC
+BENGALI SEQUENCE FOR LETTER RHA
+
+009AF 009BC
+BENGALI SEQUENCE FOR LETTER YYA
+
+00A32 00A3C
+GURMUKHI SEQUENCE FOR LETTER LLA
+
+00A38 00A3C
+GURMUKHI SEQUENCE FOR LETTER SHA
+
+00A16 00A3C
+GURMUKHI SEQUENCE FOR LETTER KHHA
+
+00A17 00A3C
+GURMUKHI SEQUENCE FOR LETTER GHHA
+
+00A1C 00A3C
+GURMUKHI SEQUENCE FOR LETTER ZA
+
+00A2B 00A3C
+GURMUKHI SEQUENCE FOR LETTER FA
+
+00B21 00B3C
+ORIYA SEQUENCE FOR LETTER RRA
+
+00B22 00B3C
+ORIYA SEQUENCE FOR LETTER RHA
+
00995 009CD 009B7
BENGALI LETTER KHINYA
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm
index 8074bd5875..3cb96e0888 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -10,6 +10,7 @@
# base.
+
package charnames;
# This module contains machine-generated tables and code for the
@@ -52,13 +53,14 @@ package charnames;
'high' =>
[
19903,
-40956,
-173789,
-177972,
+40959,
+173791,
+177977,
178205,
183969,
191456,
201546,
+205743,
],
'low' =>
[
@@ -70,6 +72,7 @@ package charnames;
178208,
183984,
196608,
+201552,
],
},
'KHITAN SMALL SCRIPT CHARACTER' =>
@@ -142,13 +145,14 @@ package charnames;
'high' =>
[
19903,
-40956,
-173789,
-177972,
+40959,
+173791,
+177977,
178205,
183969,
191456,
201546,
+205743,
],
'low' =>
[
@@ -160,6 +164,7 @@ package charnames;
178208,
183984,
196608,
+201552,
],
},
'KHITANSMALLSCRIPTCHARACTER' =>
@@ -222,7 +227,7 @@ package charnames;
'name' => 'CJK UNIFIED IDEOGRAPH',
},
{
-'high' => 40956,
+'high' => 40959,
'legal' =>
'
-0123456789ABCDEFGHIJKNOPRU',
@@ -278,7 +283,7 @@ package charnames;
'name' => 'NUSHU CHARACTER',
},
{
-'high' => 173789,
+'high' => 173791,
'legal' =>
'
-0123456789ABCDEFGHIJKNOPRU',
@@ -286,7 +291,7 @@ package charnames;
'name' => 'CJK UNIFIED IDEOGRAPH',
},
{
-'high' => 177972,
+'high' => 177977,
'legal' =>
'
-0123456789ABCDEFGHIJKNOPRU',
@@ -333,6 +338,14 @@ package charnames;
'low' => 196608,
'name' => 'CJK UNIFIED IDEOGRAPH',
},
+{
+'high' => 205743,
+'legal' =>
+'
+ -0123456789ABCDEFGHIJKNOPRU',
+'low' => 201552,
+'name' => 'CJK UNIFIED IDEOGRAPH',
+},
,
);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/NamedSequences.txt b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/NamedSequences.txt
index b3c64f18c2..273eeeabad 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/NamedSequences.txt
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/NamedSequences.txt
@@ -1,10 +1,10 @@
-# NamedSequences-13.0.0.txt
-# Date: 2020-01-22, 19:12:00 GMT [KW, LI]
-# © 2020 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# NamedSequences-15.0.0.txt
+# Date: 2021-12-07, 17:18:00 GMT [KW]
+# © 2021 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Unicode Named Character Sequences
#
@@ -28,7 +28,7 @@
# <1000, 1001, 1002>
#
# For more information, see UAX #34: Unicode Named Character
-# Sequences, at http://www.unicode.org/unicode/reports/tr34/
+# Sequences, at https://www.unicode.org/reports/tr34/
#
# Note: The order of entries in this file is not significant.
# However, entries are generally in script order corresponding
@@ -168,6 +168,35 @@ ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH E;0626 06D0
ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE;0626 06D5
ARABIC SEQUENCE NOON WITH KEHEH;0646 06A9
+# Entries that correspond to Indic characters with nuktas
+# that are also listed in CompositionExclusions.txt.
+# These characters decompose for normalized text, even
+# in NFC. Having named sequences for these helps in
+# certain specifications, including Label Generation Rules (LGR)
+# for Internationalized Domain Names (IDN).
+#
+# Provisional 2020-01-16, Approved 2021-07-27
+
+DEVANAGARI SEQUENCE FOR LETTER QA; 0915 093C
+DEVANAGARI SEQUENCE FOR LETTER KHHA; 0916 093C
+DEVANAGARI SEQUENCE FOR LETTER GHHA; 0917 093C
+DEVANAGARI SEQUENCE FOR LETTER ZA; 091C 093C
+DEVANAGARI SEQUENCE FOR LETTER DDDHA; 0921 093C
+DEVANAGARI SEQUENCE FOR LETTER RHA; 0922 093C
+DEVANAGARI SEQUENCE FOR LETTER FA; 092B 093C
+DEVANAGARI SEQUENCE FOR LETTER YYA; 092F 093C
+BENGALI SEQUENCE FOR LETTER RRA; 09A1 09BC
+BENGALI SEQUENCE FOR LETTER RHA; 09A2 09BC
+BENGALI SEQUENCE FOR LETTER YYA; 09AF 09BC
+GURMUKHI SEQUENCE FOR LETTER LLA; 0A32 0A3C
+GURMUKHI SEQUENCE FOR LETTER SHA; 0A38 0A3C
+GURMUKHI SEQUENCE FOR LETTER KHHA; 0A16 0A3C
+GURMUKHI SEQUENCE FOR LETTER GHHA; 0A17 0A3C
+GURMUKHI SEQUENCE FOR LETTER ZA; 0A1C 0A3C
+GURMUKHI SEQUENCE FOR LETTER FA; 0A2B 0A3C
+ORIYA SEQUENCE FOR LETTER RRA; 0B21 0B3C
+ORIYA SEQUENCE FOR LETTER RHA; 0B22 0B3C
+
# Entry for a Bangla entity.
# Provisional 2009-08-10, Approved 2010-05-14
#
@@ -180,7 +209,7 @@ BENGALI LETTER KHINYA;0995 09CD 09B7
#
# 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/
+# https://www.unicode.org/versions/latest/
TAMIL CONSONANT K; 0B95 0BCD
TAMIL CONSONANT NG; 0B99 0BCD
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/SpecialCasing.txt b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
index 2a1a5a1d6b..08d04fa942 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
@@ -1,11 +1,11 @@
-# SpecialCasing-13.0.0.txt
-# Date: 2019-09-08, 23:31:24 GMT
-# © 2019 Unicode®, Inc.
+# SpecialCasing-15.0.0.txt
+# Date: 2022-02-02, 23:35:52 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Special Casing
#
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/TestNorm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/TestNorm.pl
new file mode 100755
index 0000000000..d881addc49
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/TestNorm.pl
@@ -0,0 +1,19134 @@
+use utf8;
+use Test::More;
+
+sub ord_string { # Convert packed ords to printable string
+ use charnames ();
+ return "'" . join("", map { '\N{' . charnames::viacode($_) . '}' }
+ unpack "U*", shift) . "'";
+ #return "'" . join(" ", map { sprintf "%04X", $_ } unpack "U*", shift) . "'";
+}
+
+sub Test_N {
+ my ($source, $nfc, $nfd, $nfkc, $nfkd) = @_;
+ my $display_source = ord_string($source);
+ my $display_nfc = ord_string($nfc);
+ my $display_nfd = ord_string($nfd);
+ my $display_nfkc = ord_string($nfkc);
+ my $display_nfkd = ord_string($nfkd);
+
+ use Unicode::Normalize;
+ # NFC
+ # nfc == toNFC(source) == toNFC(nfc) == toNFC(nfd)
+ # nfkc == toNFC(nfkc) == toNFC(nfkd)
+ #
+ # NFD
+ # nfd == toNFD(source) == toNFD(nfc) == toNFD(nfd)
+ # nfkd == toNFD(nfkc) == toNFD(nfkd)
+ #
+ # NFKC
+ # nfkc == toNFKC(source) == toNFKC(nfc) == toNFKC(nfd) ==
+ # toNFKC(nfkc) == toNFKC(nfkd)
+ #
+ # NFKD
+ # nfkd == toNFKD(source) == toNFKD(nfc) == toNFKD(nfd) ==
+ # toNFKD(nfkc) == toNFKD(nfkd)
+
+ is(NFC($source), $nfc, "NFC($display_source) eq $display_nfc");
+ is(NFC($nfc), $nfc, "NFC($display_nfc) eq $display_nfc");
+ is(NFC($nfd), $nfc, "NFC($display_nfd) eq $display_nfc");
+ is(NFC($nfkc), $nfkc, "NFC($display_nfkc) eq $display_nfkc");
+ is(NFC($nfkd), $nfkc, "NFC($display_nfkd) eq $display_nfkc");
+
+ is(NFD($source), $nfd, "NFD($display_source) eq $display_nfd");
+ is(NFD($nfc), $nfd, "NFD($display_nfc) eq $display_nfd");
+ is(NFD($nfd), $nfd, "NFD($display_nfd) eq $display_nfd");
+ is(NFD($nfkc), $nfkd, "NFD($display_nfkc) eq $display_nfkd");
+ is(NFD($nfkd), $nfkd, "NFD($display_nfkd) eq $display_nfkd");
+
+ is(NFKC($source), $nfkc, "NFKC($display_source) eq $display_nfkc");
+ is(NFKC($nfc), $nfkc, "NFKC($display_nfc) eq $display_nfkc");
+ is(NFKC($nfd), $nfkc, "NFKC($display_nfd) eq $display_nfkc");
+ is(NFKC($nfkc), $nfkc, "NFKC($display_nfkc) eq $display_nfkc");
+ is(NFKC($nfkd), $nfkc, "NFKC($display_nfkd) eq $display_nfkc");
+
+ is(NFKD($source), $nfkd, "NFKD($display_source) eq $display_nfkd");
+ is(NFKD($nfc), $nfkd, "NFKD($display_nfc) eq $display_nfkd");
+ is(NFKD($nfd), $nfkd, "NFKD($display_nfd) eq $display_nfkd");
+ is(NFKD($nfkc), $nfkd, "NFKD($display_nfkc) eq $display_nfkd");
+ is(NFKD($nfkd), $nfkd, "NFKD($display_nfkd) eq $display_nfkd");
+}
+Test_N(qḊ, qḊ, qḊ, qḊ, qḊ);
+Test_N(qḌ, qḌ, qḌ, qḌ, qḌ);
+Test_N(qḌ̇, qḌ̇, qḌ̇, qḌ̇, qḌ̇);
+Test_N(qḌ̇, qḌ̇, qḌ̇, qḌ̇, qḌ̇);
+Test_N(qḌ̇, qḌ̇, qḌ̇, qḌ̇, qḌ̇);
+Test_N(qḌ̇, qḌ̇, qḌ̇, qḌ̇, qḌ̇);
+Test_N(qḊ̛, qḊ̛, qḊ̛, qḊ̛, qḊ̛);
+Test_N(qḌ̛, qḌ̛, qḌ̛, qḌ̛, qḌ̛);
+Test_N(qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇);
+Test_N(qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇);
+Test_N(qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇);
+Test_N(qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇, qḌ̛̇);
+Test_N(qÈ, qÈ, qÈ, qÈ, qÈ);
+Test_N(qĒ, qĒ, qĒ, qĒ, qĒ);
+Test_N(qÈ, qÈ, qÈ, qÈ, qÈ);
+Test_N(qĒ, qĒ, qĒ, qĒ, qĒ);
+Test_N(qḔ, qḔ, qḔ, qḔ, qḔ);
+Test_N(qḔ, qḔ, qḔ, qḔ, qḔ);
+Test_N(qḔ̄, qḔ̄, qḔ̄, qḔ̄, qḔ̄);
+Test_N(qḔ, qḔ, qḔ, qḔ, qḔ);
+Test_N(qÈ̄, qÈ̄, qÈ̄, qÈ̄, qÈ̄);
+Test_N(qֱָֹ֑׃ְ֬֟, qֱָֹ֑׃ְ֬֟, qֱָֹ֑׃ְ֬֟, qֱָֹ֑׃ְ֬֟, qֱָֹ֑׃ְ֬֟);
+Test_N(qְַּ֥֒׀֭ׄ, qְַּ֥֒׀֭ׄ, qְַּ֥֒׀֭ׄ, qְַּ֥֒׀֭ׄ, qְַּ֥֒׀֭ׄ);
+Test_N(qᄀ각, qᄀ각, qᄀ각, qᄀ각, qᄀ각);
+Test_N(qᄀ각ᆨ, qᄀ각ᆨ, qᄀ각ᆨ, qᄀ각ᆨ, qᄀ각ᆨ);
+Test_N(q , q , q , q , q );
+Test_N(q¨, q¨, q¨, q ̈, q ̈);
+Test_N(qª, qª, qª, qa, qa);
+Test_N(q¯, q¯, q¯, q ̄, q ̄);
+Test_N(q², q², q², q2, q2);
+Test_N(q³, q³, q³, q3, q3);
+Test_N(q´, q´, q´, q ́, q ́);
+Test_N(qµ, qµ, qµ, qμ, qμ);
+Test_N(q¸, q¸, q¸, q ̧, q ̧);
+Test_N(q¹, q¹, q¹, q1, q1);
+Test_N(qº, qº, qº, qo, qo);
+Test_N(q¼, q¼, q¼, q1⁄4, q1⁄4);
+Test_N(q½, q½, q½, q1⁄2, q1⁄2);
+Test_N(q¾, q¾, q¾, q3⁄4, q3⁄4);
+Test_N(qÀ, qÀ, qÀ, qÀ, qÀ);
+Test_N(qÁ, qÁ, qÁ, qÁ, qÁ);
+Test_N(qÂ, qÂ, qÂ, qÂ, qÂ);
+Test_N(qÃ, qÃ, qÃ, qÃ, qÃ);
+Test_N(qÄ, qÄ, qÄ, qÄ, qÄ);
+Test_N(qÅ, qÅ, qÅ, qÅ, qÅ);
+Test_N(qÇ, qÇ, qÇ, qÇ, qÇ);
+Test_N(qÈ, qÈ, qÈ, qÈ, qÈ);
+Test_N(qÉ, qÉ, qÉ, qÉ, qÉ);
+Test_N(qÊ, qÊ, qÊ, qÊ, qÊ);
+Test_N(qË, qË, qË, qË, qË);
+Test_N(qÌ, qÌ, qÌ, qÌ, qÌ);
+Test_N(qÍ, qÍ, qÍ, qÍ, qÍ);
+Test_N(qÎ, qÎ, qÎ, qÎ, qÎ);
+Test_N(qÏ, qÏ, qÏ, qÏ, qÏ);
+Test_N(qÑ, qÑ, qÑ, qÑ, qÑ);
+Test_N(qÒ, qÒ, qÒ, qÒ, qÒ);
+Test_N(qÓ, qÓ, qÓ, qÓ, qÓ);
+Test_N(qÔ, qÔ, qÔ, qÔ, qÔ);
+Test_N(qÕ, qÕ, qÕ, qÕ, qÕ);
+Test_N(qÖ, qÖ, qÖ, qÖ, qÖ);
+Test_N(qÙ, qÙ, qÙ, qÙ, qÙ);
+Test_N(qÚ, qÚ, qÚ, qÚ, qÚ);
+Test_N(qÛ, qÛ, qÛ, qÛ, qÛ);
+Test_N(qÜ, qÜ, qÜ, qÜ, qÜ);
+Test_N(qÝ, qÝ, qÝ, qÝ, qÝ);
+Test_N(qà, qà, qà, qà, qà);
+Test_N(qá, qá, qá, qá, qá);
+Test_N(qâ, qâ, qâ, qâ, qâ);
+Test_N(qã, qã, qã, qã, qã);
+Test_N(qä, qä, qä, qä, qä);
+Test_N(qå, qå, qå, qå, qå);
+Test_N(qç, qç, qç, qç, qç);
+Test_N(qè, qè, qè, qè, qè);
+Test_N(qé, qé, qé, qé, qé);
+Test_N(qê, qê, qê, qê, qê);
+Test_N(që, që, që, që, që);
+Test_N(qì, qì, qì, qì, qì);
+Test_N(qí, qí, qí, qí, qí);
+Test_N(qî, qî, qî, qî, qî);
+Test_N(qï, qï, qï, qï, qï);
+Test_N(qñ, qñ, qñ, qñ, qñ);
+Test_N(qò, qò, qò, qò, qò);
+Test_N(qó, qó, qó, qó, qó);
+Test_N(qô, qô, qô, qô, qô);
+Test_N(qõ, qõ, qõ, qõ, qõ);
+Test_N(qö, qö, qö, qö, qö);
+Test_N(qù, qù, qù, qù, qù);
+Test_N(qú, qú, qú, qú, qú);
+Test_N(qû, qû, qû, qû, qû);
+Test_N(qü, qü, qü, qü, qü);
+Test_N(qý, qý, qý, qý, qý);
+Test_N(qÿ, qÿ, qÿ, qÿ, qÿ);
+Test_N(qĀ, qĀ, qĀ, qĀ, qĀ);
+Test_N(qā, qā, qā, qā, qā);
+Test_N(qĂ, qĂ, qĂ, qĂ, qĂ);
+Test_N(qă, qă, qă, qă, qă);
+Test_N(qĄ, qĄ, qĄ, qĄ, qĄ);
+Test_N(qą, qą, qą, qą, qą);
+Test_N(qĆ, qĆ, qĆ, qĆ, qĆ);
+Test_N(qć, qć, qć, qć, qć);
+Test_N(qĈ, qĈ, qĈ, qĈ, qĈ);
+Test_N(qĉ, qĉ, qĉ, qĉ, qĉ);
+Test_N(qĊ, qĊ, qĊ, qĊ, qĊ);
+Test_N(qċ, qċ, qċ, qċ, qċ);
+Test_N(qČ, qČ, qČ, qČ, qČ);
+Test_N(qč, qč, qč, qč, qč);
+Test_N(qĎ, qĎ, qĎ, qĎ, qĎ);
+Test_N(qď, qď, qď, qď, qď);
+Test_N(qĒ, qĒ, qĒ, qĒ, qĒ);
+Test_N(qē, qē, qē, qē, qē);
+Test_N(qĔ, qĔ, qĔ, qĔ, qĔ);
+Test_N(qĕ, qĕ, qĕ, qĕ, qĕ);
+Test_N(qĖ, qĖ, qĖ, qĖ, qĖ);
+Test_N(qė, qė, qė, qė, qė);
+Test_N(qĘ, qĘ, qĘ, qĘ, qĘ);
+Test_N(qę, qę, qę, qę, qę);
+Test_N(qĚ, qĚ, qĚ, qĚ, qĚ);
+Test_N(qě, qě, qě, qě, qě);
+Test_N(qĜ, qĜ, qĜ, qĜ, qĜ);
+Test_N(qĝ, qĝ, qĝ, qĝ, qĝ);
+Test_N(qĞ, qĞ, qĞ, qĞ, qĞ);
+Test_N(qğ, qğ, qğ, qğ, qğ);
+Test_N(qĠ, qĠ, qĠ, qĠ, qĠ);
+Test_N(qġ, qġ, qġ, qġ, qġ);
+Test_N(qĢ, qĢ, qĢ, qĢ, qĢ);
+Test_N(qģ, qģ, qģ, qģ, qģ);
+Test_N(qĤ, qĤ, qĤ, qĤ, qĤ);
+Test_N(qĥ, qĥ, qĥ, qĥ, qĥ);
+Test_N(qĨ, qĨ, qĨ, qĨ, qĨ);
+Test_N(qĩ, qĩ, qĩ, qĩ, qĩ);
+Test_N(qĪ, qĪ, qĪ, qĪ, qĪ);
+Test_N(qī, qī, qī, qī, qī);
+Test_N(qĬ, qĬ, qĬ, qĬ, qĬ);
+Test_N(qĭ, qĭ, qĭ, qĭ, qĭ);
+Test_N(qĮ, qĮ, qĮ, qĮ, qĮ);
+Test_N(qį, qį, qį, qį, qį);
+Test_N(qİ, qİ, qİ, qİ, qİ);
+Test_N(qIJ, qIJ, qIJ, qIJ, qIJ);
+Test_N(qij, qij, qij, qij, qij);
+Test_N(qĴ, qĴ, qĴ, qĴ, qĴ);
+Test_N(qĵ, qĵ, qĵ, qĵ, qĵ);
+Test_N(qĶ, qĶ, qĶ, qĶ, qĶ);
+Test_N(qķ, qķ, qķ, qķ, qķ);
+Test_N(qĹ, qĹ, qĹ, qĹ, qĹ);
+Test_N(qĺ, qĺ, qĺ, qĺ, qĺ);
+Test_N(qĻ, qĻ, qĻ, qĻ, qĻ);
+Test_N(qļ, qļ, qļ, qļ, qļ);
+Test_N(qĽ, qĽ, qĽ, qĽ, qĽ);
+Test_N(qľ, qľ, qľ, qľ, qľ);
+Test_N(qĿ, qĿ, qĿ, qL·, qL·);
+Test_N(qŀ, qŀ, qŀ, ql·, ql·);
+Test_N(qŃ, qŃ, qŃ, qŃ, qŃ);
+Test_N(qń, qń, qń, qń, qń);
+Test_N(qŅ, qŅ, qŅ, qŅ, qŅ);
+Test_N(qņ, qņ, qņ, qņ, qņ);
+Test_N(qŇ, qŇ, qŇ, qŇ, qŇ);
+Test_N(qň, qň, qň, qň, qň);
+Test_N(qʼn, qʼn, qʼn, qʼn, qʼn);
+Test_N(qŌ, qŌ, qŌ, qŌ, qŌ);
+Test_N(qō, qō, qō, qō, qō);
+Test_N(qŎ, qŎ, qŎ, qŎ, qŎ);
+Test_N(qŏ, qŏ, qŏ, qŏ, qŏ);
+Test_N(qŐ, qŐ, qŐ, qŐ, qŐ);
+Test_N(qő, qő, qő, qő, qő);
+Test_N(qŔ, qŔ, qŔ, qŔ, qŔ);
+Test_N(qŕ, qŕ, qŕ, qŕ, qŕ);
+Test_N(qŖ, qŖ, qŖ, qŖ, qŖ);
+Test_N(qŗ, qŗ, qŗ, qŗ, qŗ);
+Test_N(qŘ, qŘ, qŘ, qŘ, qŘ);
+Test_N(qř, qř, qř, qř, qř);
+Test_N(qŚ, qŚ, qŚ, qŚ, qŚ);
+Test_N(qś, qś, qś, qś, qś);
+Test_N(qŜ, qŜ, qŜ, qŜ, qŜ);
+Test_N(qŝ, qŝ, qŝ, qŝ, qŝ);
+Test_N(qŞ, qŞ, qŞ, qŞ, qŞ);
+Test_N(qş, qş, qş, qş, qş);
+Test_N(qŠ, qŠ, qŠ, qŠ, qŠ);
+Test_N(qš, qš, qš, qš, qš);
+Test_N(qŢ, qŢ, qŢ, qŢ, qŢ);
+Test_N(qţ, qţ, qţ, qţ, qţ);
+Test_N(qŤ, qŤ, qŤ, qŤ, qŤ);
+Test_N(qť, qť, qť, qť, qť);
+Test_N(qŨ, qŨ, qŨ, qŨ, qŨ);
+Test_N(qũ, qũ, qũ, qũ, qũ);
+Test_N(qŪ, qŪ, qŪ, qŪ, qŪ);
+Test_N(qū, qū, qū, qū, qū);
+Test_N(qŬ, qŬ, qŬ, qŬ, qŬ);
+Test_N(qŭ, qŭ, qŭ, qŭ, qŭ);
+Test_N(qŮ, qŮ, qŮ, qŮ, qŮ);
+Test_N(qů, qů, qů, qů, qů);
+Test_N(qŰ, qŰ, qŰ, qŰ, qŰ);
+Test_N(qű, qű, qű, qű, qű);
+Test_N(qŲ, qŲ, qŲ, qŲ, qŲ);
+Test_N(qų, qų, qų, qų, qų);
+Test_N(qŴ, qŴ, qŴ, qŴ, qŴ);
+Test_N(qŵ, qŵ, qŵ, qŵ, qŵ);
+Test_N(qŶ, qŶ, qŶ, qŶ, qŶ);
+Test_N(qŷ, qŷ, qŷ, qŷ, qŷ);
+Test_N(qŸ, qŸ, qŸ, qŸ, qŸ);
+Test_N(qŹ, qŹ, qŹ, qŹ, qŹ);
+Test_N(qź, qź, qź, qź, qź);
+Test_N(qŻ, qŻ, qŻ, qŻ, qŻ);
+Test_N(qż, qż, qż, qż, qż);
+Test_N(qŽ, qŽ, qŽ, qŽ, qŽ);
+Test_N(qž, qž, qž, qž, qž);
+Test_N(qſ, qſ, qſ, qs, qs);
+Test_N(qƠ, qƠ, qƠ, qƠ, qƠ);
+Test_N(qơ, qơ, qơ, qơ, qơ);
+Test_N(qƯ, qƯ, qƯ, qƯ, qƯ);
+Test_N(qư, qư, qư, qư, qư);
+Test_N(qDŽ, qDŽ, qDŽ, qDŽ, qDŽ);
+Test_N(qDž, qDž, qDž, qDž, qDž);
+Test_N(qdž, qdž, qdž, qdž, qdž);
+Test_N(qLJ, qLJ, qLJ, qLJ, qLJ);
+Test_N(qLj, qLj, qLj, qLj, qLj);
+Test_N(qlj, qlj, qlj, qlj, qlj);
+Test_N(qNJ, qNJ, qNJ, qNJ, qNJ);
+Test_N(qNj, qNj, qNj, qNj, qNj);
+Test_N(qnj, qnj, qnj, qnj, qnj);
+Test_N(qǍ, qǍ, qǍ, qǍ, qǍ);
+Test_N(qǎ, qǎ, qǎ, qǎ, qǎ);
+Test_N(qǏ, qǏ, qǏ, qǏ, qǏ);
+Test_N(qǐ, qǐ, qǐ, qǐ, qǐ);
+Test_N(qǑ, qǑ, qǑ, qǑ, qǑ);
+Test_N(qǒ, qǒ, qǒ, qǒ, qǒ);
+Test_N(qǓ, qǓ, qǓ, qǓ, qǓ);
+Test_N(qǔ, qǔ, qǔ, qǔ, qǔ);
+Test_N(qǕ, qǕ, qǕ, qǕ, qǕ);
+Test_N(qǖ, qǖ, qǖ, qǖ, qǖ);
+Test_N(qǗ, qǗ, qǗ, qǗ, qǗ);
+Test_N(qǘ, qǘ, qǘ, qǘ, qǘ);
+Test_N(qǙ, qǙ, qǙ, qǙ, qǙ);
+Test_N(qǚ, qǚ, qǚ, qǚ, qǚ);
+Test_N(qǛ, qǛ, qǛ, qǛ, qǛ);
+Test_N(qǜ, qǜ, qǜ, qǜ, qǜ);
+Test_N(qǞ, qǞ, qǞ, qǞ, qǞ);
+Test_N(qǟ, qǟ, qǟ, qǟ, qǟ);
+Test_N(qǠ, qǠ, qǠ, qǠ, qǠ);
+Test_N(qǡ, qǡ, qǡ, qǡ, qǡ);
+Test_N(qǢ, qǢ, qǢ, qǢ, qǢ);
+Test_N(qǣ, qǣ, qǣ, qǣ, qǣ);
+Test_N(qǦ, qǦ, qǦ, qǦ, qǦ);
+Test_N(qǧ, qǧ, qǧ, qǧ, qǧ);
+Test_N(qǨ, qǨ, qǨ, qǨ, qǨ);
+Test_N(qǩ, qǩ, qǩ, qǩ, qǩ);
+Test_N(qǪ, qǪ, qǪ, qǪ, qǪ);
+Test_N(qǫ, qǫ, qǫ, qǫ, qǫ);
+Test_N(qǬ, qǬ, qǬ, qǬ, qǬ);
+Test_N(qǭ, qǭ, qǭ, qǭ, qǭ);
+Test_N(qǮ, qǮ, qǮ, qǮ, qǮ);
+Test_N(qǯ, qǯ, qǯ, qǯ, qǯ);
+Test_N(qǰ, qǰ, qǰ, qǰ, qǰ);
+Test_N(qDZ, qDZ, qDZ, qDZ, qDZ);
+Test_N(qDz, qDz, qDz, qDz, qDz);
+Test_N(qdz, qdz, qdz, qdz, qdz);
+Test_N(qǴ, qǴ, qǴ, qǴ, qǴ);
+Test_N(qǵ, qǵ, qǵ, qǵ, qǵ);
+Test_N(qǸ, qǸ, qǸ, qǸ, qǸ);
+Test_N(qǹ, qǹ, qǹ, qǹ, qǹ);
+Test_N(qǺ, qǺ, qǺ, qǺ, qǺ);
+Test_N(qǻ, qǻ, qǻ, qǻ, qǻ);
+Test_N(qǼ, qǼ, qǼ, qǼ, qǼ);
+Test_N(qǽ, qǽ, qǽ, qǽ, qǽ);
+Test_N(qǾ, qǾ, qǾ, qǾ, qǾ);
+Test_N(qǿ, qǿ, qǿ, qǿ, qǿ);
+Test_N(qȀ, qȀ, qȀ, qȀ, qȀ);
+Test_N(qȁ, qȁ, qȁ, qȁ, qȁ);
+Test_N(qȂ, qȂ, qȂ, qȂ, qȂ);
+Test_N(qȃ, qȃ, qȃ, qȃ, qȃ);
+Test_N(qȄ, qȄ, qȄ, qȄ, qȄ);
+Test_N(qȅ, qȅ, qȅ, qȅ, qȅ);
+Test_N(qȆ, qȆ, qȆ, qȆ, qȆ);
+Test_N(qȇ, qȇ, qȇ, qȇ, qȇ);
+Test_N(qȈ, qȈ, qȈ, qȈ, qȈ);
+Test_N(qȉ, qȉ, qȉ, qȉ, qȉ);
+Test_N(qȊ, qȊ, qȊ, qȊ, qȊ);
+Test_N(qȋ, qȋ, qȋ, qȋ, qȋ);
+Test_N(qȌ, qȌ, qȌ, qȌ, qȌ);
+Test_N(qȍ, qȍ, qȍ, qȍ, qȍ);
+Test_N(qȎ, qȎ, qȎ, qȎ, qȎ);
+Test_N(qȏ, qȏ, qȏ, qȏ, qȏ);
+Test_N(qȐ, qȐ, qȐ, qȐ, qȐ);
+Test_N(qȑ, qȑ, qȑ, qȑ, qȑ);
+Test_N(qȒ, qȒ, qȒ, qȒ, qȒ);
+Test_N(qȓ, qȓ, qȓ, qȓ, qȓ);
+Test_N(qȔ, qȔ, qȔ, qȔ, qȔ);
+Test_N(qȕ, qȕ, qȕ, qȕ, qȕ);
+Test_N(qȖ, qȖ, qȖ, qȖ, qȖ);
+Test_N(qȗ, qȗ, qȗ, qȗ, qȗ);
+Test_N(qȘ, qȘ, qȘ, qȘ, qȘ);
+Test_N(qș, qș, qș, qș, qș);
+Test_N(qȚ, qȚ, qȚ, qȚ, qȚ);
+Test_N(qț, qț, qț, qț, qț);
+Test_N(qȞ, qȞ, qȞ, qȞ, qȞ);
+Test_N(qȟ, qȟ, qȟ, qȟ, qȟ);
+Test_N(qȦ, qȦ, qȦ, qȦ, qȦ);
+Test_N(qȧ, qȧ, qȧ, qȧ, qȧ);
+Test_N(qȨ, qȨ, qȨ, qȨ, qȨ);
+Test_N(qȩ, qȩ, qȩ, qȩ, qȩ);
+Test_N(qȪ, qȪ, qȪ, qȪ, qȪ);
+Test_N(qȫ, qȫ, qȫ, qȫ, qȫ);
+Test_N(qȬ, qȬ, qȬ, qȬ, qȬ);
+Test_N(qȭ, qȭ, qȭ, qȭ, qȭ);
+Test_N(qȮ, qȮ, qȮ, qȮ, qȮ);
+Test_N(qȯ, qȯ, qȯ, qȯ, qȯ);
+Test_N(qȰ, qȰ, qȰ, qȰ, qȰ);
+Test_N(qȱ, qȱ, qȱ, qȱ, qȱ);
+Test_N(qȲ, qȲ, qȲ, qȲ, qȲ);
+Test_N(qȳ, qȳ, qȳ, qȳ, qȳ);
+Test_N(qʰ, qʰ, qʰ, qh, qh);
+Test_N(qʱ, qʱ, qʱ, qɦ, qɦ);
+Test_N(qʲ, qʲ, qʲ, qj, qj);
+Test_N(qʳ, qʳ, qʳ, qr, qr);
+Test_N(qʴ, qʴ, qʴ, qɹ, qɹ);
+Test_N(qʵ, qʵ, qʵ, qɻ, qɻ);
+Test_N(qʶ, qʶ, qʶ, qʁ, qʁ);
+Test_N(qʷ, qʷ, qʷ, qw, qw);
+Test_N(qʸ, qʸ, qʸ, qy, qy);
+Test_N(q˘, q˘, q˘, q ̆, q ̆);
+Test_N(q˙, q˙, q˙, q ̇, q ̇);
+Test_N(q˚, q˚, q˚, q ̊, q ̊);
+Test_N(q˛, q˛, q˛, q ̨, q ̨);
+Test_N(q˜, q˜, q˜, q ̃, q ̃);
+Test_N(q˝, q˝, q˝, q ̋, q ̋);
+Test_N(qˠ, qˠ, qˠ, qɣ, qɣ);
+Test_N(qˡ, qˡ, qˡ, ql, ql);
+Test_N(qˢ, qˢ, qˢ, qs, qs);
+Test_N(qˣ, qˣ, qˣ, qx, qx);
+Test_N(qˤ, qˤ, qˤ, qʕ, qʕ);
+Test_N(q̀, q̀, q̀, q̀, q̀);
+Test_N(q́, q́, q́, q́, q́);
+Test_N(q̓, q̓, q̓, q̓, q̓);
+Test_N(q̈́, q̈́, q̈́, q̈́, q̈́);
+Test_N(qʹ, qʹ, qʹ, qʹ, qʹ);
+Test_N(qͺ, qͺ, qͺ, q ͅ, q ͅ);
+Test_N(q;, q;, q;, q;, q;);
+Test_N(q΄, q΄, q΄, q ́, q ́);
+Test_N(q΅, q΅, q΅, q ̈́, q ̈́);
+Test_N(qΆ, qΆ, qΆ, qΆ, qΆ);
+Test_N(q·, q·, q·, q·, q·);
+Test_N(qΈ, qΈ, qΈ, qΈ, qΈ);
+Test_N(qΉ, qΉ, qΉ, qΉ, qΉ);
+Test_N(qΊ, qΊ, qΊ, qΊ, qΊ);
+Test_N(qΌ, qΌ, qΌ, qΌ, qΌ);
+Test_N(qΎ, qΎ, qΎ, qΎ, qΎ);
+Test_N(qΏ, qΏ, qΏ, qΏ, qΏ);
+Test_N(qΐ, qΐ, qΐ, qΐ, qΐ);
+Test_N(qΪ, qΪ, qΪ, qΪ, qΪ);
+Test_N(qΫ, qΫ, qΫ, qΫ, qΫ);
+Test_N(qά, qά, qά, qά, qά);
+Test_N(qέ, qέ, qέ, qέ, qέ);
+Test_N(qή, qή, qή, qή, qή);
+Test_N(qί, qί, qί, qί, qί);
+Test_N(qΰ, qΰ, qΰ, qΰ, qΰ);
+Test_N(qϊ, qϊ, qϊ, qϊ, qϊ);
+Test_N(qϋ, qϋ, qϋ, qϋ, qϋ);
+Test_N(qό, qό, qό, qό, qό);
+Test_N(qύ, qύ, qύ, qύ, qύ);
+Test_N(qώ, qώ, qώ, qώ, qώ);
+Test_N(qϐ, qϐ, qϐ, qβ, qβ);
+Test_N(qϑ, qϑ, qϑ, qθ, qθ);
+Test_N(qϒ, qϒ, qϒ, qΥ, qΥ);
+Test_N(qϓ, qϓ, qϓ, qΎ, qΎ);
+Test_N(qϔ, qϔ, qϔ, qΫ, qΫ);
+Test_N(qϕ, qϕ, qϕ, qφ, qφ);
+Test_N(qϖ, qϖ, qϖ, qπ, qπ);
+Test_N(qϰ, qϰ, qϰ, qκ, qκ);
+Test_N(qϱ, qϱ, qϱ, qρ, qρ);
+Test_N(qϲ, qϲ, qϲ, qς, qς);
+Test_N(qϴ, qϴ, qϴ, qΘ, qΘ);
+Test_N(qϵ, qϵ, qϵ, qε, qε);
+Test_N(qϹ, qϹ, qϹ, qΣ, qΣ);
+Test_N(qЀ, qЀ, qЀ, qЀ, qЀ);
+Test_N(qЁ, qЁ, qЁ, qЁ, qЁ);
+Test_N(qЃ, qЃ, qЃ, qЃ, qЃ);
+Test_N(qЇ, qЇ, qЇ, qЇ, qЇ);
+Test_N(qЌ, qЌ, qЌ, qЌ, qЌ);
+Test_N(qЍ, qЍ, qЍ, qЍ, qЍ);
+Test_N(qЎ, qЎ, qЎ, qЎ, qЎ);
+Test_N(qЙ, qЙ, qЙ, qЙ, qЙ);
+Test_N(qй, qй, qй, qй, qй);
+Test_N(qѐ, qѐ, qѐ, qѐ, qѐ);
+Test_N(qё, qё, qё, qё, qё);
+Test_N(qѓ, qѓ, qѓ, qѓ, qѓ);
+Test_N(qї, qї, qї, qї, qї);
+Test_N(qќ, qќ, qќ, qќ, qќ);
+Test_N(qѝ, qѝ, qѝ, qѝ, qѝ);
+Test_N(qў, qў, qў, qў, qў);
+Test_N(qѶ, qѶ, qѶ, qѶ, qѶ);
+Test_N(qѷ, qѷ, qѷ, qѷ, qѷ);
+Test_N(qӁ, qӁ, qӁ, qӁ, qӁ);
+Test_N(qӂ, qӂ, qӂ, qӂ, qӂ);
+Test_N(qӐ, qӐ, qӐ, qӐ, qӐ);
+Test_N(qӑ, qӑ, qӑ, qӑ, qӑ);
+Test_N(qӒ, qӒ, qӒ, qӒ, qӒ);
+Test_N(qӓ, qӓ, qӓ, qӓ, qӓ);
+Test_N(qӖ, qӖ, qӖ, qӖ, qӖ);
+Test_N(qӗ, qӗ, qӗ, qӗ, qӗ);
+Test_N(qӚ, qӚ, qӚ, qӚ, qӚ);
+Test_N(qӛ, qӛ, qӛ, qӛ, qӛ);
+Test_N(qӜ, qӜ, qӜ, qӜ, qӜ);
+Test_N(qӝ, qӝ, qӝ, qӝ, qӝ);
+Test_N(qӞ, qӞ, qӞ, qӞ, qӞ);
+Test_N(qӟ, qӟ, qӟ, qӟ, qӟ);
+Test_N(qӢ, qӢ, qӢ, qӢ, qӢ);
+Test_N(qӣ, qӣ, qӣ, qӣ, qӣ);
+Test_N(qӤ, qӤ, qӤ, qӤ, qӤ);
+Test_N(qӥ, qӥ, qӥ, qӥ, qӥ);
+Test_N(qӦ, qӦ, qӦ, qӦ, qӦ);
+Test_N(qӧ, qӧ, qӧ, qӧ, qӧ);
+Test_N(qӪ, qӪ, qӪ, qӪ, qӪ);
+Test_N(qӫ, qӫ, qӫ, qӫ, qӫ);
+Test_N(qӬ, qӬ, qӬ, qӬ, qӬ);
+Test_N(qӭ, qӭ, qӭ, qӭ, qӭ);
+Test_N(qӮ, qӮ, qӮ, qӮ, qӮ);
+Test_N(qӯ, qӯ, qӯ, qӯ, qӯ);
+Test_N(qӰ, qӰ, qӰ, qӰ, qӰ);
+Test_N(qӱ, qӱ, qӱ, qӱ, qӱ);
+Test_N(qӲ, qӲ, qӲ, qӲ, qӲ);
+Test_N(qӳ, qӳ, qӳ, qӳ, qӳ);
+Test_N(qӴ, qӴ, qӴ, qӴ, qӴ);
+Test_N(qӵ, qӵ, qӵ, qӵ, qӵ);
+Test_N(qӸ, qӸ, qӸ, qӸ, qӸ);
+Test_N(qӹ, qӹ, qӹ, qӹ, qӹ);
+Test_N(qև, qև, qև, qեւ, qեւ);
+Test_N(qآ, qآ, qآ, qآ, qآ);
+Test_N(qأ, qأ, qأ, qأ, qأ);
+Test_N(qؤ, qؤ, qؤ, qؤ, qؤ);
+Test_N(qإ, qإ, qإ, qإ, qإ);
+Test_N(qئ, qئ, qئ, qئ, qئ);
+Test_N(qٵ, qٵ, qٵ, qاٴ, qاٴ);
+Test_N(qٶ, qٶ, qٶ, qوٴ, qوٴ);
+Test_N(qٷ, qٷ, qٷ, qۇٴ, qۇٴ);
+Test_N(qٸ, qٸ, qٸ, qيٴ, qيٴ);
+Test_N(qۀ, qۀ, qۀ, qۀ, qۀ);
+Test_N(qۂ, qۂ, qۂ, qۂ, qۂ);
+Test_N(qۓ, qۓ, qۓ, qۓ, qۓ);
+Test_N(qऩ, qऩ, qऩ, qऩ, qऩ);
+Test_N(qऱ, qऱ, qऱ, qऱ, qऱ);
+Test_N(qऴ, qऴ, qऴ, qऴ, qऴ);
+Test_N(qक़, qक़, qक़, qक़, qक़);
+Test_N(qख़, qख़, qख़, qख़, qख़);
+Test_N(qग़, qग़, qग़, qग़, qग़);
+Test_N(qज़, qज़, qज़, qज़, qज़);
+Test_N(qड़, qड़, qड़, qड़, qड़);
+Test_N(qढ़, qढ़, qढ़, qढ़, qढ़);
+Test_N(qफ़, qफ़, qफ़, qफ़, qफ़);
+Test_N(qय़, qय़, qय़, qय़, qय़);
+Test_N(qো, qো, qো, qো, qো);
+Test_N(qৌ, qৌ, qৌ, qৌ, qৌ);
+Test_N(qড়, qড়, qড়, qড়, qড়);
+Test_N(qঢ়, qঢ়, qঢ়, qঢ়, qঢ়);
+Test_N(qয়, qয়, qয়, qয়, qয়);
+Test_N(qਲ਼, qਲ਼, qਲ਼, qਲ਼, qਲ਼);
+Test_N(qਸ਼, qਸ਼, qਸ਼, qਸ਼, qਸ਼);
+Test_N(qਖ਼, qਖ਼, qਖ਼, qਖ਼, qਖ਼);
+Test_N(qਗ਼, qਗ਼, qਗ਼, qਗ਼, qਗ਼);
+Test_N(qਜ਼, qਜ਼, qਜ਼, qਜ਼, qਜ਼);
+Test_N(qਫ਼, qਫ਼, qਫ਼, qਫ਼, qਫ਼);
+Test_N(qୈ, qୈ, qୈ, qୈ, qୈ);
+Test_N(qୋ, qୋ, qୋ, qୋ, qୋ);
+Test_N(qୌ, qୌ, qୌ, qୌ, qୌ);
+Test_N(qଡ଼, qଡ଼, qଡ଼, qଡ଼, qଡ଼);
+Test_N(qଢ଼, qଢ଼, qଢ଼, qଢ଼, qଢ଼);
+Test_N(qஔ, qஔ, qஔ, qஔ, qஔ);
+Test_N(qொ, qொ, qொ, qொ, qொ);
+Test_N(qோ, qோ, qோ, qோ, qோ);
+Test_N(qௌ, qௌ, qௌ, qௌ, qௌ);
+Test_N(qై, qై, qై, qై, qై);
+Test_N(qೀ, qೀ, qೀ, qೀ, qೀ);
+Test_N(qೇ, qೇ, qೇ, qೇ, qೇ);
+Test_N(qೈ, qೈ, qೈ, qೈ, qೈ);
+Test_N(qೊ, qೊ, qೊ, qೊ, qೊ);
+Test_N(qೋ, qೋ, qೋ, qೋ, qೋ);
+Test_N(qൊ, qൊ, qൊ, qൊ, qൊ);
+Test_N(qോ, qോ, qോ, qോ, qോ);
+Test_N(qൌ, qൌ, qൌ, qൌ, qൌ);
+Test_N(qේ, qේ, qේ, qේ, qේ);
+Test_N(qො, qො, qො, qො, qො);
+Test_N(qෝ, qෝ, qෝ, qෝ, qෝ);
+Test_N(qෞ, qෞ, qෞ, qෞ, qෞ);
+Test_N(qำ, qำ, qำ, qํา, qํา);
+Test_N(qຳ, qຳ, qຳ, qໍາ, qໍາ);
+Test_N(qໜ, qໜ, qໜ, qຫນ, qຫນ);
+Test_N(qໝ, qໝ, qໝ, qຫມ, qຫມ);
+Test_N(q༌, q༌, q༌, q་, q་);
+Test_N(qགྷ, qགྷ, qགྷ, qགྷ, qགྷ);
+Test_N(qཌྷ, qཌྷ, qཌྷ, qཌྷ, qཌྷ);
+Test_N(qདྷ, qདྷ, qདྷ, qདྷ, qདྷ);
+Test_N(qབྷ, qབྷ, qབྷ, qབྷ, qབྷ);
+Test_N(qཛྷ, qཛྷ, qཛྷ, qཛྷ, qཛྷ);
+Test_N(qཀྵ, qཀྵ, qཀྵ, qཀྵ, qཀྵ);
+Test_N(qཱི, qཱི, qཱི, qཱི, qཱི);
+Test_N(qཱུ, qཱུ, qཱུ, qཱུ, qཱུ);
+Test_N(qྲྀ, qྲྀ, qྲྀ, qྲྀ, qྲྀ);
+Test_N(qཷ, qཷ, qཷ, qྲཱྀ, qྲཱྀ);
+Test_N(qླྀ, qླྀ, qླྀ, qླྀ, qླྀ);
+Test_N(qཹ, qཹ, qཹ, qླཱྀ, qླཱྀ);
+Test_N(qཱྀ, qཱྀ, qཱྀ, qཱྀ, qཱྀ);
+Test_N(qྒྷ, qྒྷ, qྒྷ, qྒྷ, qྒྷ);
+Test_N(qྜྷ, qྜྷ, qྜྷ, qྜྷ, qྜྷ);
+Test_N(qྡྷ, qྡྷ, qྡྷ, qྡྷ, qྡྷ);
+Test_N(qྦྷ, qྦྷ, qྦྷ, qྦྷ, qྦྷ);
+Test_N(qྫྷ, qྫྷ, qྫྷ, qྫྷ, qྫྷ);
+Test_N(qྐྵ, qྐྵ, qྐྵ, qྐྵ, qྐྵ);
+Test_N(qဦ, qဦ, qဦ, qဦ, qဦ);
+Test_N(qჼ, qჼ, qჼ, qნ, qნ);
+Test_N(qᬆ, qᬆ, qᬆ, qᬆ, qᬆ);
+Test_N(qᬈ, qᬈ, qᬈ, qᬈ, qᬈ);
+Test_N(qᬊ, qᬊ, qᬊ, qᬊ, qᬊ);
+Test_N(qᬌ, qᬌ, qᬌ, qᬌ, qᬌ);
+Test_N(qᬎ, qᬎ, qᬎ, qᬎ, qᬎ);
+Test_N(qᬒ, qᬒ, qᬒ, qᬒ, qᬒ);
+Test_N(qᬻ, qᬻ, qᬻ, qᬻ, qᬻ);
+Test_N(qᬽ, qᬽ, qᬽ, qᬽ, qᬽ);
+Test_N(qᭀ, qᭀ, qᭀ, qᭀ, qᭀ);
+Test_N(qᭁ, qᭁ, qᭁ, qᭁ, qᭁ);
+Test_N(qᭃ, qᭃ, qᭃ, qᭃ, qᭃ);
+Test_N(qᴬ, qᴬ, qᴬ, qA, qA);
+Test_N(qᴭ, qᴭ, qᴭ, qÆ, qÆ);
+Test_N(qᴮ, qᴮ, qᴮ, qB, qB);
+Test_N(qᴰ, qᴰ, qᴰ, qD, qD);
+Test_N(qᴱ, qᴱ, qᴱ, qE, qE);
+Test_N(qᴲ, qᴲ, qᴲ, qƎ, qƎ);
+Test_N(qᴳ, qᴳ, qᴳ, qG, qG);
+Test_N(qᴴ, qᴴ, qᴴ, qH, qH);
+Test_N(qᴵ, qᴵ, qᴵ, qI, qI);
+Test_N(qᴶ, qᴶ, qᴶ, qJ, qJ);
+Test_N(qᴷ, qᴷ, qᴷ, qK, qK);
+Test_N(qᴸ, qᴸ, qᴸ, qL, qL);
+Test_N(qᴹ, qᴹ, qᴹ, qM, qM);
+Test_N(qᴺ, qᴺ, qᴺ, qN, qN);
+Test_N(qᴼ, qᴼ, qᴼ, qO, qO);
+Test_N(qᴽ, qᴽ, qᴽ, qȢ, qȢ);
+Test_N(qᴾ, qᴾ, qᴾ, qP, qP);
+Test_N(qᴿ, qᴿ, qᴿ, qR, qR);
+Test_N(qᵀ, qᵀ, qᵀ, qT, qT);
+Test_N(qᵁ, qᵁ, qᵁ, qU, qU);
+Test_N(qᵂ, qᵂ, qᵂ, qW, qW);
+Test_N(qᵃ, qᵃ, qᵃ, qa, qa);
+Test_N(qᵄ, qᵄ, qᵄ, qɐ, qɐ);
+Test_N(qᵅ, qᵅ, qᵅ, qɑ, qɑ);
+Test_N(qᵆ, qᵆ, qᵆ, qᴂ, qᴂ);
+Test_N(qᵇ, qᵇ, qᵇ, qb, qb);
+Test_N(qᵈ, qᵈ, qᵈ, qd, qd);
+Test_N(qᵉ, qᵉ, qᵉ, qe, qe);
+Test_N(qᵊ, qᵊ, qᵊ, qə, qə);
+Test_N(qᵋ, qᵋ, qᵋ, qɛ, qɛ);
+Test_N(qᵌ, qᵌ, qᵌ, qɜ, qɜ);
+Test_N(qᵍ, qᵍ, qᵍ, qg, qg);
+Test_N(qᵏ, qᵏ, qᵏ, qk, qk);
+Test_N(qᵐ, qᵐ, qᵐ, qm, qm);
+Test_N(qᵑ, qᵑ, qᵑ, qŋ, qŋ);
+Test_N(qᵒ, qᵒ, qᵒ, qo, qo);
+Test_N(qᵓ, qᵓ, qᵓ, qɔ, qɔ);
+Test_N(qᵔ, qᵔ, qᵔ, qᴖ, qᴖ);
+Test_N(qᵕ, qᵕ, qᵕ, qᴗ, qᴗ);
+Test_N(qᵖ, qᵖ, qᵖ, qp, qp);
+Test_N(qᵗ, qᵗ, qᵗ, qt, qt);
+Test_N(qᵘ, qᵘ, qᵘ, qu, qu);
+Test_N(qᵙ, qᵙ, qᵙ, qᴝ, qᴝ);
+Test_N(qᵚ, qᵚ, qᵚ, qɯ, qɯ);
+Test_N(qᵛ, qᵛ, qᵛ, qv, qv);
+Test_N(qᵜ, qᵜ, qᵜ, qᴥ, qᴥ);
+Test_N(qᵝ, qᵝ, qᵝ, qβ, qβ);
+Test_N(qᵞ, qᵞ, qᵞ, qγ, qγ);
+Test_N(qᵟ, qᵟ, qᵟ, qδ, qδ);
+Test_N(qᵠ, qᵠ, qᵠ, qφ, qφ);
+Test_N(qᵡ, qᵡ, qᵡ, qχ, qχ);
+Test_N(qᵢ, qᵢ, qᵢ, qi, qi);
+Test_N(qᵣ, qᵣ, qᵣ, qr, qr);
+Test_N(qᵤ, qᵤ, qᵤ, qu, qu);
+Test_N(qᵥ, qᵥ, qᵥ, qv, qv);
+Test_N(qᵦ, qᵦ, qᵦ, qβ, qβ);
+Test_N(qᵧ, qᵧ, qᵧ, qγ, qγ);
+Test_N(qᵨ, qᵨ, qᵨ, qρ, qρ);
+Test_N(qᵩ, qᵩ, qᵩ, qφ, qφ);
+Test_N(qᵪ, qᵪ, qᵪ, qχ, qχ);
+Test_N(qᵸ, qᵸ, qᵸ, qн, qн);
+Test_N(qᶛ, qᶛ, qᶛ, qɒ, qɒ);
+Test_N(qᶜ, qᶜ, qᶜ, qc, qc);
+Test_N(qᶝ, qᶝ, qᶝ, qɕ, qɕ);
+Test_N(qᶞ, qᶞ, qᶞ, qð, qð);
+Test_N(qᶟ, qᶟ, qᶟ, qɜ, qɜ);
+Test_N(qᶠ, qᶠ, qᶠ, qf, qf);
+Test_N(qᶡ, qᶡ, qᶡ, qɟ, qɟ);
+Test_N(qᶢ, qᶢ, qᶢ, qɡ, qɡ);
+Test_N(qᶣ, qᶣ, qᶣ, qɥ, qɥ);
+Test_N(qᶤ, qᶤ, qᶤ, qɨ, qɨ);
+Test_N(qᶥ, qᶥ, qᶥ, qɩ, qɩ);
+Test_N(qᶦ, qᶦ, qᶦ, qɪ, qɪ);
+Test_N(qᶧ, qᶧ, qᶧ, qᵻ, qᵻ);
+Test_N(qᶨ, qᶨ, qᶨ, qʝ, qʝ);
+Test_N(qᶩ, qᶩ, qᶩ, qɭ, qɭ);
+Test_N(qᶪ, qᶪ, qᶪ, qᶅ, qᶅ);
+Test_N(qᶫ, qᶫ, qᶫ, qʟ, qʟ);
+Test_N(qᶬ, qᶬ, qᶬ, qɱ, qɱ);
+Test_N(qᶭ, qᶭ, qᶭ, qɰ, qɰ);
+Test_N(qᶮ, qᶮ, qᶮ, qɲ, qɲ);
+Test_N(qᶯ, qᶯ, qᶯ, qɳ, qɳ);
+Test_N(qᶰ, qᶰ, qᶰ, qɴ, qɴ);
+Test_N(qᶱ, qᶱ, qᶱ, qɵ, qɵ);
+Test_N(qᶲ, qᶲ, qᶲ, qɸ, qɸ);
+Test_N(qᶳ, qᶳ, qᶳ, qʂ, qʂ);
+Test_N(qᶴ, qᶴ, qᶴ, qʃ, qʃ);
+Test_N(qᶵ, qᶵ, qᶵ, qƫ, qƫ);
+Test_N(qᶶ, qᶶ, qᶶ, qʉ, qʉ);
+Test_N(qᶷ, qᶷ, qᶷ, qʊ, qʊ);
+Test_N(qᶸ, qᶸ, qᶸ, qᴜ, qᴜ);
+Test_N(qᶹ, qᶹ, qᶹ, qʋ, qʋ);
+Test_N(qᶺ, qᶺ, qᶺ, qʌ, qʌ);
+Test_N(qᶻ, qᶻ, qᶻ, qz, qz);
+Test_N(qᶼ, qᶼ, qᶼ, qʐ, qʐ);
+Test_N(qᶽ, qᶽ, qᶽ, qʑ, qʑ);
+Test_N(qᶾ, qᶾ, qᶾ, qʒ, qʒ);
+Test_N(qᶿ, qᶿ, qᶿ, qθ, qθ);
+Test_N(qḀ, qḀ, qḀ, qḀ, qḀ);
+Test_N(qḁ, qḁ, qḁ, qḁ, qḁ);
+Test_N(qḂ, qḂ, qḂ, qḂ, qḂ);
+Test_N(qḃ, qḃ, qḃ, qḃ, qḃ);
+Test_N(qḄ, qḄ, qḄ, qḄ, qḄ);
+Test_N(qḅ, qḅ, qḅ, qḅ, qḅ);
+Test_N(qḆ, qḆ, qḆ, qḆ, qḆ);
+Test_N(qḇ, qḇ, qḇ, qḇ, qḇ);
+Test_N(qḈ, qḈ, qḈ, qḈ, qḈ);
+Test_N(qḉ, qḉ, qḉ, qḉ, qḉ);
+Test_N(qḊ, qḊ, qḊ, qḊ, qḊ);
+Test_N(qḋ, qḋ, qḋ, qḋ, qḋ);
+Test_N(qḌ, qḌ, qḌ, qḌ, qḌ);
+Test_N(qḍ, qḍ, qḍ, qḍ, qḍ);
+Test_N(qḎ, qḎ, qḎ, qḎ, qḎ);
+Test_N(qḏ, qḏ, qḏ, qḏ, qḏ);
+Test_N(qḐ, qḐ, qḐ, qḐ, qḐ);
+Test_N(qḑ, qḑ, qḑ, qḑ, qḑ);
+Test_N(qḒ, qḒ, qḒ, qḒ, qḒ);
+Test_N(qḓ, qḓ, qḓ, qḓ, qḓ);
+Test_N(qḔ, qḔ, qḔ, qḔ, qḔ);
+Test_N(qḕ, qḕ, qḕ, qḕ, qḕ);
+Test_N(qḖ, qḖ, qḖ, qḖ, qḖ);
+Test_N(qḗ, qḗ, qḗ, qḗ, qḗ);
+Test_N(qḘ, qḘ, qḘ, qḘ, qḘ);
+Test_N(qḙ, qḙ, qḙ, qḙ, qḙ);
+Test_N(qḚ, qḚ, qḚ, qḚ, qḚ);
+Test_N(qḛ, qḛ, qḛ, qḛ, qḛ);
+Test_N(qḜ, qḜ, qḜ, qḜ, qḜ);
+Test_N(qḝ, qḝ, qḝ, qḝ, qḝ);
+Test_N(qḞ, qḞ, qḞ, qḞ, qḞ);
+Test_N(qḟ, qḟ, qḟ, qḟ, qḟ);
+Test_N(qḠ, qḠ, qḠ, qḠ, qḠ);
+Test_N(qḡ, qḡ, qḡ, qḡ, qḡ);
+Test_N(qḢ, qḢ, qḢ, qḢ, qḢ);
+Test_N(qḣ, qḣ, qḣ, qḣ, qḣ);
+Test_N(qḤ, qḤ, qḤ, qḤ, qḤ);
+Test_N(qḥ, qḥ, qḥ, qḥ, qḥ);
+Test_N(qḦ, qḦ, qḦ, qḦ, qḦ);
+Test_N(qḧ, qḧ, qḧ, qḧ, qḧ);
+Test_N(qḨ, qḨ, qḨ, qḨ, qḨ);
+Test_N(qḩ, qḩ, qḩ, qḩ, qḩ);
+Test_N(qḪ, qḪ, qḪ, qḪ, qḪ);
+Test_N(qḫ, qḫ, qḫ, qḫ, qḫ);
+Test_N(qḬ, qḬ, qḬ, qḬ, qḬ);
+Test_N(qḭ, qḭ, qḭ, qḭ, qḭ);
+Test_N(qḮ, qḮ, qḮ, qḮ, qḮ);
+Test_N(qḯ, qḯ, qḯ, qḯ, qḯ);
+Test_N(qḰ, qḰ, qḰ, qḰ, qḰ);
+Test_N(qḱ, qḱ, qḱ, qḱ, qḱ);
+Test_N(qḲ, qḲ, qḲ, qḲ, qḲ);
+Test_N(qḳ, qḳ, qḳ, qḳ, qḳ);
+Test_N(qḴ, qḴ, qḴ, qḴ, qḴ);
+Test_N(qḵ, qḵ, qḵ, qḵ, qḵ);
+Test_N(qḶ, qḶ, qḶ, qḶ, qḶ);
+Test_N(qḷ, qḷ, qḷ, qḷ, qḷ);
+Test_N(qḸ, qḸ, qḸ, qḸ, qḸ);
+Test_N(qḹ, qḹ, qḹ, qḹ, qḹ);
+Test_N(qḺ, qḺ, qḺ, qḺ, qḺ);
+Test_N(qḻ, qḻ, qḻ, qḻ, qḻ);
+Test_N(qḼ, qḼ, qḼ, qḼ, qḼ);
+Test_N(qḽ, qḽ, qḽ, qḽ, qḽ);
+Test_N(qḾ, qḾ, qḾ, qḾ, qḾ);
+Test_N(qḿ, qḿ, qḿ, qḿ, qḿ);
+Test_N(qṀ, qṀ, qṀ, qṀ, qṀ);
+Test_N(qṁ, qṁ, qṁ, qṁ, qṁ);
+Test_N(qṂ, qṂ, qṂ, qṂ, qṂ);
+Test_N(qṃ, qṃ, qṃ, qṃ, qṃ);
+Test_N(qṄ, qṄ, qṄ, qṄ, qṄ);
+Test_N(qṅ, qṅ, qṅ, qṅ, qṅ);
+Test_N(qṆ, qṆ, qṆ, qṆ, qṆ);
+Test_N(qṇ, qṇ, qṇ, qṇ, qṇ);
+Test_N(qṈ, qṈ, qṈ, qṈ, qṈ);
+Test_N(qṉ, qṉ, qṉ, qṉ, qṉ);
+Test_N(qṊ, qṊ, qṊ, qṊ, qṊ);
+Test_N(qṋ, qṋ, qṋ, qṋ, qṋ);
+Test_N(qṌ, qṌ, qṌ, qṌ, qṌ);
+Test_N(qṍ, qṍ, qṍ, qṍ, qṍ);
+Test_N(qṎ, qṎ, qṎ, qṎ, qṎ);
+Test_N(qṏ, qṏ, qṏ, qṏ, qṏ);
+Test_N(qṐ, qṐ, qṐ, qṐ, qṐ);
+Test_N(qṑ, qṑ, qṑ, qṑ, qṑ);
+Test_N(qṒ, qṒ, qṒ, qṒ, qṒ);
+Test_N(qṓ, qṓ, qṓ, qṓ, qṓ);
+Test_N(qṔ, qṔ, qṔ, qṔ, qṔ);
+Test_N(qṕ, qṕ, qṕ, qṕ, qṕ);
+Test_N(qṖ, qṖ, qṖ, qṖ, qṖ);
+Test_N(qṗ, qṗ, qṗ, qṗ, qṗ);
+Test_N(qṘ, qṘ, qṘ, qṘ, qṘ);
+Test_N(qṙ, qṙ, qṙ, qṙ, qṙ);
+Test_N(qṚ, qṚ, qṚ, qṚ, qṚ);
+Test_N(qṛ, qṛ, qṛ, qṛ, qṛ);
+Test_N(qṜ, qṜ, qṜ, qṜ, qṜ);
+Test_N(qṝ, qṝ, qṝ, qṝ, qṝ);
+Test_N(qṞ, qṞ, qṞ, qṞ, qṞ);
+Test_N(qṟ, qṟ, qṟ, qṟ, qṟ);
+Test_N(qṠ, qṠ, qṠ, qṠ, qṠ);
+Test_N(qṡ, qṡ, qṡ, qṡ, qṡ);
+Test_N(qṢ, qṢ, qṢ, qṢ, qṢ);
+Test_N(qṣ, qṣ, qṣ, qṣ, qṣ);
+Test_N(qṤ, qṤ, qṤ, qṤ, qṤ);
+Test_N(qṥ, qṥ, qṥ, qṥ, qṥ);
+Test_N(qṦ, qṦ, qṦ, qṦ, qṦ);
+Test_N(qṧ, qṧ, qṧ, qṧ, qṧ);
+Test_N(qṨ, qṨ, qṨ, qṨ, qṨ);
+Test_N(qṩ, qṩ, qṩ, qṩ, qṩ);
+Test_N(qṪ, qṪ, qṪ, qṪ, qṪ);
+Test_N(qṫ, qṫ, qṫ, qṫ, qṫ);
+Test_N(qṬ, qṬ, qṬ, qṬ, qṬ);
+Test_N(qṭ, qṭ, qṭ, qṭ, qṭ);
+Test_N(qṮ, qṮ, qṮ, qṮ, qṮ);
+Test_N(qṯ, qṯ, qṯ, qṯ, qṯ);
+Test_N(qṰ, qṰ, qṰ, qṰ, qṰ);
+Test_N(qṱ, qṱ, qṱ, qṱ, qṱ);
+Test_N(qṲ, qṲ, qṲ, qṲ, qṲ);
+Test_N(qṳ, qṳ, qṳ, qṳ, qṳ);
+Test_N(qṴ, qṴ, qṴ, qṴ, qṴ);
+Test_N(qṵ, qṵ, qṵ, qṵ, qṵ);
+Test_N(qṶ, qṶ, qṶ, qṶ, qṶ);
+Test_N(qṷ, qṷ, qṷ, qṷ, qṷ);
+Test_N(qṸ, qṸ, qṸ, qṸ, qṸ);
+Test_N(qṹ, qṹ, qṹ, qṹ, qṹ);
+Test_N(qṺ, qṺ, qṺ, qṺ, qṺ);
+Test_N(qṻ, qṻ, qṻ, qṻ, qṻ);
+Test_N(qṼ, qṼ, qṼ, qṼ, qṼ);
+Test_N(qṽ, qṽ, qṽ, qṽ, qṽ);
+Test_N(qṾ, qṾ, qṾ, qṾ, qṾ);
+Test_N(qṿ, qṿ, qṿ, qṿ, qṿ);
+Test_N(qẀ, qẀ, qẀ, qẀ, qẀ);
+Test_N(qẁ, qẁ, qẁ, qẁ, qẁ);
+Test_N(qẂ, qẂ, qẂ, qẂ, qẂ);
+Test_N(qẃ, qẃ, qẃ, qẃ, qẃ);
+Test_N(qẄ, qẄ, qẄ, qẄ, qẄ);
+Test_N(qẅ, qẅ, qẅ, qẅ, qẅ);
+Test_N(qẆ, qẆ, qẆ, qẆ, qẆ);
+Test_N(qẇ, qẇ, qẇ, qẇ, qẇ);
+Test_N(qẈ, qẈ, qẈ, qẈ, qẈ);
+Test_N(qẉ, qẉ, qẉ, qẉ, qẉ);
+Test_N(qẊ, qẊ, qẊ, qẊ, qẊ);
+Test_N(qẋ, qẋ, qẋ, qẋ, qẋ);
+Test_N(qẌ, qẌ, qẌ, qẌ, qẌ);
+Test_N(qẍ, qẍ, qẍ, qẍ, qẍ);
+Test_N(qẎ, qẎ, qẎ, qẎ, qẎ);
+Test_N(qẏ, qẏ, qẏ, qẏ, qẏ);
+Test_N(qẐ, qẐ, qẐ, qẐ, qẐ);
+Test_N(qẑ, qẑ, qẑ, qẑ, qẑ);
+Test_N(qẒ, qẒ, qẒ, qẒ, qẒ);
+Test_N(qẓ, qẓ, qẓ, qẓ, qẓ);
+Test_N(qẔ, qẔ, qẔ, qẔ, qẔ);
+Test_N(qẕ, qẕ, qẕ, qẕ, qẕ);
+Test_N(qẖ, qẖ, qẖ, qẖ, qẖ);
+Test_N(qẗ, qẗ, qẗ, qẗ, qẗ);
+Test_N(qẘ, qẘ, qẘ, qẘ, qẘ);
+Test_N(qẙ, qẙ, qẙ, qẙ, qẙ);
+Test_N(qẚ, qẚ, qẚ, qaʾ, qaʾ);
+Test_N(qẛ, qẛ, qẛ, qṡ, qṡ);
+Test_N(qẠ, qẠ, qẠ, qẠ, qẠ);
+Test_N(qạ, qạ, qạ, qạ, qạ);
+Test_N(qẢ, qẢ, qẢ, qẢ, qẢ);
+Test_N(qả, qả, qả, qả, qả);
+Test_N(qẤ, qẤ, qẤ, qẤ, qẤ);
+Test_N(qấ, qấ, qấ, qấ, qấ);
+Test_N(qẦ, qẦ, qẦ, qẦ, qẦ);
+Test_N(qầ, qầ, qầ, qầ, qầ);
+Test_N(qẨ, qẨ, qẨ, qẨ, qẨ);
+Test_N(qẩ, qẩ, qẩ, qẩ, qẩ);
+Test_N(qẪ, qẪ, qẪ, qẪ, qẪ);
+Test_N(qẫ, qẫ, qẫ, qẫ, qẫ);
+Test_N(qẬ, qẬ, qẬ, qẬ, qẬ);
+Test_N(qậ, qậ, qậ, qậ, qậ);
+Test_N(qẮ, qẮ, qẮ, qẮ, qẮ);
+Test_N(qắ, qắ, qắ, qắ, qắ);
+Test_N(qẰ, qẰ, qẰ, qẰ, qẰ);
+Test_N(qằ, qằ, qằ, qằ, qằ);
+Test_N(qẲ, qẲ, qẲ, qẲ, qẲ);
+Test_N(qẳ, qẳ, qẳ, qẳ, qẳ);
+Test_N(qẴ, qẴ, qẴ, qẴ, qẴ);
+Test_N(qẵ, qẵ, qẵ, qẵ, qẵ);
+Test_N(qẶ, qẶ, qẶ, qẶ, qẶ);
+Test_N(qặ, qặ, qặ, qặ, qặ);
+Test_N(qẸ, qẸ, qẸ, qẸ, qẸ);
+Test_N(qẹ, qẹ, qẹ, qẹ, qẹ);
+Test_N(qẺ, qẺ, qẺ, qẺ, qẺ);
+Test_N(qẻ, qẻ, qẻ, qẻ, qẻ);
+Test_N(qẼ, qẼ, qẼ, qẼ, qẼ);
+Test_N(qẽ, qẽ, qẽ, qẽ, qẽ);
+Test_N(qẾ, qẾ, qẾ, qẾ, qẾ);
+Test_N(qế, qế, qế, qế, qế);
+Test_N(qỀ, qỀ, qỀ, qỀ, qỀ);
+Test_N(qề, qề, qề, qề, qề);
+Test_N(qỂ, qỂ, qỂ, qỂ, qỂ);
+Test_N(qể, qể, qể, qể, qể);
+Test_N(qỄ, qỄ, qỄ, qỄ, qỄ);
+Test_N(qễ, qễ, qễ, qễ, qễ);
+Test_N(qỆ, qỆ, qỆ, qỆ, qỆ);
+Test_N(qệ, qệ, qệ, qệ, qệ);
+Test_N(qỈ, qỈ, qỈ, qỈ, qỈ);
+Test_N(qỉ, qỉ, qỉ, qỉ, qỉ);
+Test_N(qỊ, qỊ, qỊ, qỊ, qỊ);
+Test_N(qị, qị, qị, qị, qị);
+Test_N(qỌ, qỌ, qỌ, qỌ, qỌ);
+Test_N(qọ, qọ, qọ, qọ, qọ);
+Test_N(qỎ, qỎ, qỎ, qỎ, qỎ);
+Test_N(qỏ, qỏ, qỏ, qỏ, qỏ);
+Test_N(qỐ, qỐ, qỐ, qỐ, qỐ);
+Test_N(qố, qố, qố, qố, qố);
+Test_N(qỒ, qỒ, qỒ, qỒ, qỒ);
+Test_N(qồ, qồ, qồ, qồ, qồ);
+Test_N(qỔ, qỔ, qỔ, qỔ, qỔ);
+Test_N(qổ, qổ, qổ, qổ, qổ);
+Test_N(qỖ, qỖ, qỖ, qỖ, qỖ);
+Test_N(qỗ, qỗ, qỗ, qỗ, qỗ);
+Test_N(qỘ, qỘ, qỘ, qỘ, qỘ);
+Test_N(qộ, qộ, qộ, qộ, qộ);
+Test_N(qỚ, qỚ, qỚ, qỚ, qỚ);
+Test_N(qớ, qớ, qớ, qớ, qớ);
+Test_N(qỜ, qỜ, qỜ, qỜ, qỜ);
+Test_N(qờ, qờ, qờ, qờ, qờ);
+Test_N(qỞ, qỞ, qỞ, qỞ, qỞ);
+Test_N(qở, qở, qở, qở, qở);
+Test_N(qỠ, qỠ, qỠ, qỠ, qỠ);
+Test_N(qỡ, qỡ, qỡ, qỡ, qỡ);
+Test_N(qỢ, qỢ, qỢ, qỢ, qỢ);
+Test_N(qợ, qợ, qợ, qợ, qợ);
+Test_N(qỤ, qỤ, qỤ, qỤ, qỤ);
+Test_N(qụ, qụ, qụ, qụ, qụ);
+Test_N(qỦ, qỦ, qỦ, qỦ, qỦ);
+Test_N(qủ, qủ, qủ, qủ, qủ);
+Test_N(qỨ, qỨ, qỨ, qỨ, qỨ);
+Test_N(qứ, qứ, qứ, qứ, qứ);
+Test_N(qỪ, qỪ, qỪ, qỪ, qỪ);
+Test_N(qừ, qừ, qừ, qừ, qừ);
+Test_N(qỬ, qỬ, qỬ, qỬ, qỬ);
+Test_N(qử, qử, qử, qử, qử);
+Test_N(qỮ, qỮ, qỮ, qỮ, qỮ);
+Test_N(qữ, qữ, qữ, qữ, qữ);
+Test_N(qỰ, qỰ, qỰ, qỰ, qỰ);
+Test_N(qự, qự, qự, qự, qự);
+Test_N(qỲ, qỲ, qỲ, qỲ, qỲ);
+Test_N(qỳ, qỳ, qỳ, qỳ, qỳ);
+Test_N(qỴ, qỴ, qỴ, qỴ, qỴ);
+Test_N(qỵ, qỵ, qỵ, qỵ, qỵ);
+Test_N(qỶ, qỶ, qỶ, qỶ, qỶ);
+Test_N(qỷ, qỷ, qỷ, qỷ, qỷ);
+Test_N(qỸ, qỸ, qỸ, qỸ, qỸ);
+Test_N(qỹ, qỹ, qỹ, qỹ, qỹ);
+Test_N(qἀ, qἀ, qἀ, qἀ, qἀ);
+Test_N(qἁ, qἁ, qἁ, qἁ, qἁ);
+Test_N(qἂ, qἂ, qἂ, qἂ, qἂ);
+Test_N(qἃ, qἃ, qἃ, qἃ, qἃ);
+Test_N(qἄ, qἄ, qἄ, qἄ, qἄ);
+Test_N(qἅ, qἅ, qἅ, qἅ, qἅ);
+Test_N(qἆ, qἆ, qἆ, qἆ, qἆ);
+Test_N(qἇ, qἇ, qἇ, qἇ, qἇ);
+Test_N(qἈ, qἈ, qἈ, qἈ, qἈ);
+Test_N(qἉ, qἉ, qἉ, qἉ, qἉ);
+Test_N(qἊ, qἊ, qἊ, qἊ, qἊ);
+Test_N(qἋ, qἋ, qἋ, qἋ, qἋ);
+Test_N(qἌ, qἌ, qἌ, qἌ, qἌ);
+Test_N(qἍ, qἍ, qἍ, qἍ, qἍ);
+Test_N(qἎ, qἎ, qἎ, qἎ, qἎ);
+Test_N(qἏ, qἏ, qἏ, qἏ, qἏ);
+Test_N(qἐ, qἐ, qἐ, qἐ, qἐ);
+Test_N(qἑ, qἑ, qἑ, qἑ, qἑ);
+Test_N(qἒ, qἒ, qἒ, qἒ, qἒ);
+Test_N(qἓ, qἓ, qἓ, qἓ, qἓ);
+Test_N(qἔ, qἔ, qἔ, qἔ, qἔ);
+Test_N(qἕ, qἕ, qἕ, qἕ, qἕ);
+Test_N(qἘ, qἘ, qἘ, qἘ, qἘ);
+Test_N(qἙ, qἙ, qἙ, qἙ, qἙ);
+Test_N(qἚ, qἚ, qἚ, qἚ, qἚ);
+Test_N(qἛ, qἛ, qἛ, qἛ, qἛ);
+Test_N(qἜ, qἜ, qἜ, qἜ, qἜ);
+Test_N(qἝ, qἝ, qἝ, qἝ, qἝ);
+Test_N(qἠ, qἠ, qἠ, qἠ, qἠ);
+Test_N(qἡ, qἡ, qἡ, qἡ, qἡ);
+Test_N(qἢ, qἢ, qἢ, qἢ, qἢ);
+Test_N(qἣ, qἣ, qἣ, qἣ, qἣ);
+Test_N(qἤ, qἤ, qἤ, qἤ, qἤ);
+Test_N(qἥ, qἥ, qἥ, qἥ, qἥ);
+Test_N(qἦ, qἦ, qἦ, qἦ, qἦ);
+Test_N(qἧ, qἧ, qἧ, qἧ, qἧ);
+Test_N(qἨ, qἨ, qἨ, qἨ, qἨ);
+Test_N(qἩ, qἩ, qἩ, qἩ, qἩ);
+Test_N(qἪ, qἪ, qἪ, qἪ, qἪ);
+Test_N(qἫ, qἫ, qἫ, qἫ, qἫ);
+Test_N(qἬ, qἬ, qἬ, qἬ, qἬ);
+Test_N(qἭ, qἭ, qἭ, qἭ, qἭ);
+Test_N(qἮ, qἮ, qἮ, qἮ, qἮ);
+Test_N(qἯ, qἯ, qἯ, qἯ, qἯ);
+Test_N(qἰ, qἰ, qἰ, qἰ, qἰ);
+Test_N(qἱ, qἱ, qἱ, qἱ, qἱ);
+Test_N(qἲ, qἲ, qἲ, qἲ, qἲ);
+Test_N(qἳ, qἳ, qἳ, qἳ, qἳ);
+Test_N(qἴ, qἴ, qἴ, qἴ, qἴ);
+Test_N(qἵ, qἵ, qἵ, qἵ, qἵ);
+Test_N(qἶ, qἶ, qἶ, qἶ, qἶ);
+Test_N(qἷ, qἷ, qἷ, qἷ, qἷ);
+Test_N(qἸ, qἸ, qἸ, qἸ, qἸ);
+Test_N(qἹ, qἹ, qἹ, qἹ, qἹ);
+Test_N(qἺ, qἺ, qἺ, qἺ, qἺ);
+Test_N(qἻ, qἻ, qἻ, qἻ, qἻ);
+Test_N(qἼ, qἼ, qἼ, qἼ, qἼ);
+Test_N(qἽ, qἽ, qἽ, qἽ, qἽ);
+Test_N(qἾ, qἾ, qἾ, qἾ, qἾ);
+Test_N(qἿ, qἿ, qἿ, qἿ, qἿ);
+Test_N(qὀ, qὀ, qὀ, qὀ, qὀ);
+Test_N(qὁ, qὁ, qὁ, qὁ, qὁ);
+Test_N(qὂ, qὂ, qὂ, qὂ, qὂ);
+Test_N(qὃ, qὃ, qὃ, qὃ, qὃ);
+Test_N(qὄ, qὄ, qὄ, qὄ, qὄ);
+Test_N(qὅ, qὅ, qὅ, qὅ, qὅ);
+Test_N(qὈ, qὈ, qὈ, qὈ, qὈ);
+Test_N(qὉ, qὉ, qὉ, qὉ, qὉ);
+Test_N(qὊ, qὊ, qὊ, qὊ, qὊ);
+Test_N(qὋ, qὋ, qὋ, qὋ, qὋ);
+Test_N(qὌ, qὌ, qὌ, qὌ, qὌ);
+Test_N(qὍ, qὍ, qὍ, qὍ, qὍ);
+Test_N(qὐ, qὐ, qὐ, qὐ, qὐ);
+Test_N(qὑ, qὑ, qὑ, qὑ, qὑ);
+Test_N(qὒ, qὒ, qὒ, qὒ, qὒ);
+Test_N(qὓ, qὓ, qὓ, qὓ, qὓ);
+Test_N(qὔ, qὔ, qὔ, qὔ, qὔ);
+Test_N(qὕ, qὕ, qὕ, qὕ, qὕ);
+Test_N(qὖ, qὖ, qὖ, qὖ, qὖ);
+Test_N(qὗ, qὗ, qὗ, qὗ, qὗ);
+Test_N(qὙ, qὙ, qὙ, qὙ, qὙ);
+Test_N(qὛ, qὛ, qὛ, qὛ, qὛ);
+Test_N(qὝ, qὝ, qὝ, qὝ, qὝ);
+Test_N(qὟ, qὟ, qὟ, qὟ, qὟ);
+Test_N(qὠ, qὠ, qὠ, qὠ, qὠ);
+Test_N(qὡ, qὡ, qὡ, qὡ, qὡ);
+Test_N(qὢ, qὢ, qὢ, qὢ, qὢ);
+Test_N(qὣ, qὣ, qὣ, qὣ, qὣ);
+Test_N(qὤ, qὤ, qὤ, qὤ, qὤ);
+Test_N(qὥ, qὥ, qὥ, qὥ, qὥ);
+Test_N(qὦ, qὦ, qὦ, qὦ, qὦ);
+Test_N(qὧ, qὧ, qὧ, qὧ, qὧ);
+Test_N(qὨ, qὨ, qὨ, qὨ, qὨ);
+Test_N(qὩ, qὩ, qὩ, qὩ, qὩ);
+Test_N(qὪ, qὪ, qὪ, qὪ, qὪ);
+Test_N(qὫ, qὫ, qὫ, qὫ, qὫ);
+Test_N(qὬ, qὬ, qὬ, qὬ, qὬ);
+Test_N(qὭ, qὭ, qὭ, qὭ, qὭ);
+Test_N(qὮ, qὮ, qὮ, qὮ, qὮ);
+Test_N(qὯ, qὯ, qὯ, qὯ, qὯ);
+Test_N(qὰ, qὰ, qὰ, qὰ, qὰ);
+Test_N(qά, qά, qά, qά, qά);
+Test_N(qὲ, qὲ, qὲ, qὲ, qὲ);
+Test_N(qέ, qέ, qέ, qέ, qέ);
+Test_N(qὴ, qὴ, qὴ, qὴ, qὴ);
+Test_N(qή, qή, qή, qή, qή);
+Test_N(qὶ, qὶ, qὶ, qὶ, qὶ);
+Test_N(qί, qί, qί, qί, qί);
+Test_N(qὸ, qὸ, qὸ, qὸ, qὸ);
+Test_N(qό, qό, qό, qό, qό);
+Test_N(qὺ, qὺ, qὺ, qὺ, qὺ);
+Test_N(qύ, qύ, qύ, qύ, qύ);
+Test_N(qὼ, qὼ, qὼ, qὼ, qὼ);
+Test_N(qώ, qώ, qώ, qώ, qώ);
+Test_N(qᾀ, qᾀ, qᾀ, qᾀ, qᾀ);
+Test_N(qᾁ, qᾁ, qᾁ, qᾁ, qᾁ);
+Test_N(qᾂ, qᾂ, qᾂ, qᾂ, qᾂ);
+Test_N(qᾃ, qᾃ, qᾃ, qᾃ, qᾃ);
+Test_N(qᾄ, qᾄ, qᾄ, qᾄ, qᾄ);
+Test_N(qᾅ, qᾅ, qᾅ, qᾅ, qᾅ);
+Test_N(qᾆ, qᾆ, qᾆ, qᾆ, qᾆ);
+Test_N(qᾇ, qᾇ, qᾇ, qᾇ, qᾇ);
+Test_N(qᾈ, qᾈ, qᾈ, qᾈ, qᾈ);
+Test_N(qᾉ, qᾉ, qᾉ, qᾉ, qᾉ);
+Test_N(qᾊ, qᾊ, qᾊ, qᾊ, qᾊ);
+Test_N(qᾋ, qᾋ, qᾋ, qᾋ, qᾋ);
+Test_N(qᾌ, qᾌ, qᾌ, qᾌ, qᾌ);
+Test_N(qᾍ, qᾍ, qᾍ, qᾍ, qᾍ);
+Test_N(qᾎ, qᾎ, qᾎ, qᾎ, qᾎ);
+Test_N(qᾏ, qᾏ, qᾏ, qᾏ, qᾏ);
+Test_N(qᾐ, qᾐ, qᾐ, qᾐ, qᾐ);
+Test_N(qᾑ, qᾑ, qᾑ, qᾑ, qᾑ);
+Test_N(qᾒ, qᾒ, qᾒ, qᾒ, qᾒ);
+Test_N(qᾓ, qᾓ, qᾓ, qᾓ, qᾓ);
+Test_N(qᾔ, qᾔ, qᾔ, qᾔ, qᾔ);
+Test_N(qᾕ, qᾕ, qᾕ, qᾕ, qᾕ);
+Test_N(qᾖ, qᾖ, qᾖ, qᾖ, qᾖ);
+Test_N(qᾗ, qᾗ, qᾗ, qᾗ, qᾗ);
+Test_N(qᾘ, qᾘ, qᾘ, qᾘ, qᾘ);
+Test_N(qᾙ, qᾙ, qᾙ, qᾙ, qᾙ);
+Test_N(qᾚ, qᾚ, qᾚ, qᾚ, qᾚ);
+Test_N(qᾛ, qᾛ, qᾛ, qᾛ, qᾛ);
+Test_N(qᾜ, qᾜ, qᾜ, qᾜ, qᾜ);
+Test_N(qᾝ, qᾝ, qᾝ, qᾝ, qᾝ);
+Test_N(qᾞ, qᾞ, qᾞ, qᾞ, qᾞ);
+Test_N(qᾟ, qᾟ, qᾟ, qᾟ, qᾟ);
+Test_N(qᾠ, qᾠ, qᾠ, qᾠ, qᾠ);
+Test_N(qᾡ, qᾡ, qᾡ, qᾡ, qᾡ);
+Test_N(qᾢ, qᾢ, qᾢ, qᾢ, qᾢ);
+Test_N(qᾣ, qᾣ, qᾣ, qᾣ, qᾣ);
+Test_N(qᾤ, qᾤ, qᾤ, qᾤ, qᾤ);
+Test_N(qᾥ, qᾥ, qᾥ, qᾥ, qᾥ);
+Test_N(qᾦ, qᾦ, qᾦ, qᾦ, qᾦ);
+Test_N(qᾧ, qᾧ, qᾧ, qᾧ, qᾧ);
+Test_N(qᾨ, qᾨ, qᾨ, qᾨ, qᾨ);
+Test_N(qᾩ, qᾩ, qᾩ, qᾩ, qᾩ);
+Test_N(qᾪ, qᾪ, qᾪ, qᾪ, qᾪ);
+Test_N(qᾫ, qᾫ, qᾫ, qᾫ, qᾫ);
+Test_N(qᾬ, qᾬ, qᾬ, qᾬ, qᾬ);
+Test_N(qᾭ, qᾭ, qᾭ, qᾭ, qᾭ);
+Test_N(qᾮ, qᾮ, qᾮ, qᾮ, qᾮ);
+Test_N(qᾯ, qᾯ, qᾯ, qᾯ, qᾯ);
+Test_N(qᾰ, qᾰ, qᾰ, qᾰ, qᾰ);
+Test_N(qᾱ, qᾱ, qᾱ, qᾱ, qᾱ);
+Test_N(qᾲ, qᾲ, qᾲ, qᾲ, qᾲ);
+Test_N(qᾳ, qᾳ, qᾳ, qᾳ, qᾳ);
+Test_N(qᾴ, qᾴ, qᾴ, qᾴ, qᾴ);
+Test_N(qᾶ, qᾶ, qᾶ, qᾶ, qᾶ);
+Test_N(qᾷ, qᾷ, qᾷ, qᾷ, qᾷ);
+Test_N(qᾸ, qᾸ, qᾸ, qᾸ, qᾸ);
+Test_N(qᾹ, qᾹ, qᾹ, qᾹ, qᾹ);
+Test_N(qᾺ, qᾺ, qᾺ, qᾺ, qᾺ);
+Test_N(qΆ, qΆ, qΆ, qΆ, qΆ);
+Test_N(qᾼ, qᾼ, qᾼ, qᾼ, qᾼ);
+Test_N(q᾽, q᾽, q᾽, q ̓, q ̓);
+Test_N(qι, qι, qι, qι, qι);
+Test_N(q᾿, q᾿, q᾿, q ̓, q ̓);
+Test_N(q῀, q῀, q῀, q ͂, q ͂);
+Test_N(q῁, q῁, q῁, q ̈͂, q ̈͂);
+Test_N(qῂ, qῂ, qῂ, qῂ, qῂ);
+Test_N(qῃ, qῃ, qῃ, qῃ, qῃ);
+Test_N(qῄ, qῄ, qῄ, qῄ, qῄ);
+Test_N(qῆ, qῆ, qῆ, qῆ, qῆ);
+Test_N(qῇ, qῇ, qῇ, qῇ, qῇ);
+Test_N(qῈ, qῈ, qῈ, qῈ, qῈ);
+Test_N(qΈ, qΈ, qΈ, qΈ, qΈ);
+Test_N(qῊ, qῊ, qῊ, qῊ, qῊ);
+Test_N(qΉ, qΉ, qΉ, qΉ, qΉ);
+Test_N(qῌ, qῌ, qῌ, qῌ, qῌ);
+Test_N(q῍, q῍, q῍, q ̓̀, q ̓̀);
+Test_N(q῎, q῎, q῎, q ̓́, q ̓́);
+Test_N(q῏, q῏, q῏, q ̓͂, q ̓͂);
+Test_N(qῐ, qῐ, qῐ, qῐ, qῐ);
+Test_N(qῑ, qῑ, qῑ, qῑ, qῑ);
+Test_N(qῒ, qῒ, qῒ, qῒ, qῒ);
+Test_N(qΐ, qΐ, qΐ, qΐ, qΐ);
+Test_N(qῖ, qῖ, qῖ, qῖ, qῖ);
+Test_N(qῗ, qῗ, qῗ, qῗ, qῗ);
+Test_N(qῘ, qῘ, qῘ, qῘ, qῘ);
+Test_N(qῙ, qῙ, qῙ, qῙ, qῙ);
+Test_N(qῚ, qῚ, qῚ, qῚ, qῚ);
+Test_N(qΊ, qΊ, qΊ, qΊ, qΊ);
+Test_N(q῝, q῝, q῝, q ̔̀, q ̔̀);
+Test_N(q῞, q῞, q῞, q ̔́, q ̔́);
+Test_N(q῟, q῟, q῟, q ̔͂, q ̔͂);
+Test_N(qῠ, qῠ, qῠ, qῠ, qῠ);
+Test_N(qῡ, qῡ, qῡ, qῡ, qῡ);
+Test_N(qῢ, qῢ, qῢ, qῢ, qῢ);
+Test_N(qΰ, qΰ, qΰ, qΰ, qΰ);
+Test_N(qῤ, qῤ, qῤ, qῤ, qῤ);
+Test_N(qῥ, qῥ, qῥ, qῥ, qῥ);
+Test_N(qῦ, qῦ, qῦ, qῦ, qῦ);
+Test_N(qῧ, qῧ, qῧ, qῧ, qῧ);
+Test_N(qῨ, qῨ, qῨ, qῨ, qῨ);
+Test_N(qῩ, qῩ, qῩ, qῩ, qῩ);
+Test_N(qῪ, qῪ, qῪ, qῪ, qῪ);
+Test_N(qΎ, qΎ, qΎ, qΎ, qΎ);
+Test_N(qῬ, qῬ, qῬ, qῬ, qῬ);
+Test_N(q῭, q῭, q῭, q ̈̀, q ̈̀);
+Test_N(q΅, q΅, q΅, q ̈́, q ̈́);
+Test_N(q`, q`, q`, q`, q`);
+Test_N(qῲ, qῲ, qῲ, qῲ, qῲ);
+Test_N(qῳ, qῳ, qῳ, qῳ, qῳ);
+Test_N(qῴ, qῴ, qῴ, qῴ, qῴ);
+Test_N(qῶ, qῶ, qῶ, qῶ, qῶ);
+Test_N(qῷ, qῷ, qῷ, qῷ, qῷ);
+Test_N(qῸ, qῸ, qῸ, qῸ, qῸ);
+Test_N(qΌ, qΌ, qΌ, qΌ, qΌ);
+Test_N(qῺ, qῺ, qῺ, qῺ, qῺ);
+Test_N(qΏ, qΏ, qΏ, qΏ, qΏ);
+Test_N(qῼ, qῼ, qῼ, qῼ, qῼ);
+Test_N(q´, q´, q´, q ́, q ́);
+Test_N(q῾, q῾, q῾, q ̔, q ̔);
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q , q , q , q , q );
+Test_N(q‑, q‑, q‑, q‐, q‐);
+Test_N(q‗, q‗, q‗, q ̳, q ̳);
+Test_N(q․, q․, q․, q., q.);
+Test_N(q‥, q‥, q‥, q.., q..);
+Test_N(q…, q…, q…, q..., q...);
+Test_N(q , q , q , q , q );
+Test_N(q″, q″, q″, q′′, q′′);
+Test_N(q‴, q‴, q‴, q′′′, q′′′);
+Test_N(q‶, q‶, q‶, q‵‵, q‵‵);
+Test_N(q‷, q‷, q‷, q‵‵‵, q‵‵‵);
+Test_N(q‼, q‼, q‼, q!!, q!!);
+Test_N(q‾, q‾, q‾, q ̅, q ̅);
+Test_N(q⁇, q⁇, q⁇, q??, q??);
+Test_N(q⁈, q⁈, q⁈, q?!, q?!);
+Test_N(q⁉, q⁉, q⁉, q!?, q!?);
+Test_N(q⁗, q⁗, q⁗, q′′′′, q′′′′);
+Test_N(q , q , q , q , q );
+Test_N(q⁰, q⁰, q⁰, q0, q0);
+Test_N(qⁱ, qⁱ, qⁱ, qi, qi);
+Test_N(q⁴, q⁴, q⁴, q4, q4);
+Test_N(q⁵, q⁵, q⁵, q5, q5);
+Test_N(q⁶, q⁶, q⁶, q6, q6);
+Test_N(q⁷, q⁷, q⁷, q7, q7);
+Test_N(q⁸, q⁸, q⁸, q8, q8);
+Test_N(q⁹, q⁹, q⁹, q9, q9);
+Test_N(q⁺, q⁺, q⁺, q+, q+);
+Test_N(q⁻, q⁻, q⁻, q−, q−);
+Test_N(q⁼, q⁼, q⁼, q=, q=);
+Test_N(q⁽, q⁽, q⁽, q(, q();
+Test_N(q⁾, q⁾, q⁾, q), q));
+Test_N(qⁿ, qⁿ, qⁿ, qn, qn);
+Test_N(q₀, q₀, q₀, q0, q0);
+Test_N(q₁, q₁, q₁, q1, q1);
+Test_N(q₂, q₂, q₂, q2, q2);
+Test_N(q₃, q₃, q₃, q3, q3);
+Test_N(q₄, q₄, q₄, q4, q4);
+Test_N(q₅, q₅, q₅, q5, q5);
+Test_N(q₆, q₆, q₆, q6, q6);
+Test_N(q₇, q₇, q₇, q7, q7);
+Test_N(q₈, q₈, q₈, q8, q8);
+Test_N(q₉, q₉, q₉, q9, q9);
+Test_N(q₊, q₊, q₊, q+, q+);
+Test_N(q₋, q₋, q₋, q−, q−);
+Test_N(q₌, q₌, q₌, q=, q=);
+Test_N(q₍, q₍, q₍, q(, q();
+Test_N(q₎, q₎, q₎, q), q));
+Test_N(qₐ, qₐ, qₐ, qa, qa);
+Test_N(qₑ, qₑ, qₑ, qe, qe);
+Test_N(qₒ, qₒ, qₒ, qo, qo);
+Test_N(qₓ, qₓ, qₓ, qx, qx);
+Test_N(qₔ, qₔ, qₔ, qə, qə);
+Test_N(qₕ, qₕ, qₕ, qh, qh);
+Test_N(qₖ, qₖ, qₖ, qk, qk);
+Test_N(qₗ, qₗ, qₗ, ql, ql);
+Test_N(qₘ, qₘ, qₘ, qm, qm);
+Test_N(qₙ, qₙ, qₙ, qn, qn);
+Test_N(qₚ, qₚ, qₚ, qp, qp);
+Test_N(qₛ, qₛ, qₛ, qs, qs);
+Test_N(qₜ, qₜ, qₜ, qt, qt);
+Test_N(q₨, q₨, q₨, qRs, qRs);
+Test_N(q℀, q℀, q℀, qa/c, qa/c);
+Test_N(q℁, q℁, q℁, qa/s, qa/s);
+Test_N(qℂ, qℂ, qℂ, qC, qC);
+Test_N(q℃, q℃, q℃, q°C, q°C);
+Test_N(q℅, q℅, q℅, qc/o, qc/o);
+Test_N(q℆, q℆, q℆, qc/u, qc/u);
+Test_N(qℇ, qℇ, qℇ, qƐ, qƐ);
+Test_N(q℉, q℉, q℉, q°F, q°F);
+Test_N(qℊ, qℊ, qℊ, qg, qg);
+Test_N(qℋ, qℋ, qℋ, qH, qH);
+Test_N(qℌ, qℌ, qℌ, qH, qH);
+Test_N(qℍ, qℍ, qℍ, qH, qH);
+Test_N(qℎ, qℎ, qℎ, qh, qh);
+Test_N(qℏ, qℏ, qℏ, qħ, qħ);
+Test_N(qℐ, qℐ, qℐ, qI, qI);
+Test_N(qℑ, qℑ, qℑ, qI, qI);
+Test_N(qℒ, qℒ, qℒ, qL, qL);
+Test_N(qℓ, qℓ, qℓ, ql, ql);
+Test_N(qℕ, qℕ, qℕ, qN, qN);
+Test_N(q№, q№, q№, qNo, qNo);
+Test_N(qℙ, qℙ, qℙ, qP, qP);
+Test_N(qℚ, qℚ, qℚ, qQ, qQ);
+Test_N(qℛ, qℛ, qℛ, qR, qR);
+Test_N(qℜ, qℜ, qℜ, qR, qR);
+Test_N(qℝ, qℝ, qℝ, qR, qR);
+Test_N(q℠, q℠, q℠, qSM, qSM);
+Test_N(q℡, q℡, q℡, qTEL, qTEL);
+Test_N(q™, q™, q™, qTM, qTM);
+Test_N(qℤ, qℤ, qℤ, qZ, qZ);
+Test_N(qΩ, qΩ, qΩ, qΩ, qΩ);
+Test_N(qℨ, qℨ, qℨ, qZ, qZ);
+Test_N(qK, qK, qK, qK, qK);
+Test_N(qÅ, qÅ, qÅ, qÅ, qÅ);
+Test_N(qℬ, qℬ, qℬ, qB, qB);
+Test_N(qℭ, qℭ, qℭ, qC, qC);
+Test_N(qℯ, qℯ, qℯ, qe, qe);
+Test_N(qℰ, qℰ, qℰ, qE, qE);
+Test_N(qℱ, qℱ, qℱ, qF, qF);
+Test_N(qℳ, qℳ, qℳ, qM, qM);
+Test_N(qℴ, qℴ, qℴ, qo, qo);
+Test_N(qℵ, qℵ, qℵ, qא, qא);
+Test_N(qℶ, qℶ, qℶ, qב, qב);
+Test_N(qℷ, qℷ, qℷ, qג, qג);
+Test_N(qℸ, qℸ, qℸ, qד, qד);
+Test_N(qℹ, qℹ, qℹ, qi, qi);
+Test_N(q℻, q℻, q℻, qFAX, qFAX);
+Test_N(qℼ, qℼ, qℼ, qπ, qπ);
+Test_N(qℽ, qℽ, qℽ, qγ, qγ);
+Test_N(qℾ, qℾ, qℾ, qΓ, qΓ);
+Test_N(qℿ, qℿ, qℿ, qΠ, qΠ);
+Test_N(q⅀, q⅀, q⅀, q∑, q∑);
+Test_N(qⅅ, qⅅ, qⅅ, qD, qD);
+Test_N(qⅆ, qⅆ, qⅆ, qd, qd);
+Test_N(qⅇ, qⅇ, qⅇ, qe, qe);
+Test_N(qⅈ, qⅈ, qⅈ, qi, qi);
+Test_N(qⅉ, qⅉ, qⅉ, qj, qj);
+Test_N(q⅐, q⅐, q⅐, q1⁄7, q1⁄7);
+Test_N(q⅑, q⅑, q⅑, q1⁄9, q1⁄9);
+Test_N(q⅒, q⅒, q⅒, q1⁄10, q1⁄10);
+Test_N(q⅓, q⅓, q⅓, q1⁄3, q1⁄3);
+Test_N(q⅔, q⅔, q⅔, q2⁄3, q2⁄3);
+Test_N(q⅕, q⅕, q⅕, q1⁄5, q1⁄5);
+Test_N(q⅖, q⅖, q⅖, q2⁄5, q2⁄5);
+Test_N(q⅗, q⅗, q⅗, q3⁄5, q3⁄5);
+Test_N(q⅘, q⅘, q⅘, q4⁄5, q4⁄5);
+Test_N(q⅙, q⅙, q⅙, q1⁄6, q1⁄6);
+Test_N(q⅚, q⅚, q⅚, q5⁄6, q5⁄6);
+Test_N(q⅛, q⅛, q⅛, q1⁄8, q1⁄8);
+Test_N(q⅜, q⅜, q⅜, q3⁄8, q3⁄8);
+Test_N(q⅝, q⅝, q⅝, q5⁄8, q5⁄8);
+Test_N(q⅞, q⅞, q⅞, q7⁄8, q7⁄8);
+Test_N(q⅟, q⅟, q⅟, q1⁄, q1⁄);
+Test_N(qⅠ, qⅠ, qⅠ, qI, qI);
+Test_N(qⅡ, qⅡ, qⅡ, qII, qII);
+Test_N(qⅢ, qⅢ, qⅢ, qIII, qIII);
+Test_N(qⅣ, qⅣ, qⅣ, qIV, qIV);
+Test_N(qⅤ, qⅤ, qⅤ, qV, qV);
+Test_N(qⅥ, qⅥ, qⅥ, qVI, qVI);
+Test_N(qⅦ, qⅦ, qⅦ, qVII, qVII);
+Test_N(qⅧ, qⅧ, qⅧ, qVIII, qVIII);
+Test_N(qⅨ, qⅨ, qⅨ, qIX, qIX);
+Test_N(qⅩ, qⅩ, qⅩ, qX, qX);
+Test_N(qⅪ, qⅪ, qⅪ, qXI, qXI);
+Test_N(qⅫ, qⅫ, qⅫ, qXII, qXII);
+Test_N(qⅬ, qⅬ, qⅬ, qL, qL);
+Test_N(qⅭ, qⅭ, qⅭ, qC, qC);
+Test_N(qⅮ, qⅮ, qⅮ, qD, qD);
+Test_N(qⅯ, qⅯ, qⅯ, qM, qM);
+Test_N(qⅰ, qⅰ, qⅰ, qi, qi);
+Test_N(qⅱ, qⅱ, qⅱ, qii, qii);
+Test_N(qⅲ, qⅲ, qⅲ, qiii, qiii);
+Test_N(qⅳ, qⅳ, qⅳ, qiv, qiv);
+Test_N(qⅴ, qⅴ, qⅴ, qv, qv);
+Test_N(qⅵ, qⅵ, qⅵ, qvi, qvi);
+Test_N(qⅶ, qⅶ, qⅶ, qvii, qvii);
+Test_N(qⅷ, qⅷ, qⅷ, qviii, qviii);
+Test_N(qⅸ, qⅸ, qⅸ, qix, qix);
+Test_N(qⅹ, qⅹ, qⅹ, qx, qx);
+Test_N(qⅺ, qⅺ, qⅺ, qxi, qxi);
+Test_N(qⅻ, qⅻ, qⅻ, qxii, qxii);
+Test_N(qⅼ, qⅼ, qⅼ, ql, ql);
+Test_N(qⅽ, qⅽ, qⅽ, qc, qc);
+Test_N(qⅾ, qⅾ, qⅾ, qd, qd);
+Test_N(qⅿ, qⅿ, qⅿ, qm, qm);
+Test_N(q↉, q↉, q↉, q0⁄3, q0⁄3);
+Test_N(q↚, q↚, q↚, q↚, q↚);
+Test_N(q↛, q↛, q↛, q↛, q↛);
+Test_N(q↮, q↮, q↮, q↮, q↮);
+Test_N(q⇍, q⇍, q⇍, q⇍, q⇍);
+Test_N(q⇎, q⇎, q⇎, q⇎, q⇎);
+Test_N(q⇏, q⇏, q⇏, q⇏, q⇏);
+Test_N(q∄, q∄, q∄, q∄, q∄);
+Test_N(q∉, q∉, q∉, q∉, q∉);
+Test_N(q∌, q∌, q∌, q∌, q∌);
+Test_N(q∤, q∤, q∤, q∤, q∤);
+Test_N(q∦, q∦, q∦, q∦, q∦);
+Test_N(q∬, q∬, q∬, q∫∫, q∫∫);
+Test_N(q∭, q∭, q∭, q∫∫∫, q∫∫∫);
+Test_N(q∯, q∯, q∯, q∮∮, q∮∮);
+Test_N(q∰, q∰, q∰, q∮∮∮, q∮∮∮);
+Test_N(q≁, q≁, q≁, q≁, q≁);
+Test_N(q≄, q≄, q≄, q≄, q≄);
+Test_N(q≇, q≇, q≇, q≇, q≇);
+Test_N(q≉, q≉, q≉, q≉, q≉);
+Test_N(q≠, q≠, q≠, q≠, q≠);
+Test_N(q≢, q≢, q≢, q≢, q≢);
+Test_N(q≭, q≭, q≭, q≭, q≭);
+Test_N(q≮, q≮, q≮, q≮, q≮);
+Test_N(q≯, q≯, q≯, q≯, q≯);
+Test_N(q≰, q≰, q≰, q≰, q≰);
+Test_N(q≱, q≱, q≱, q≱, q≱);
+Test_N(q≴, q≴, q≴, q≴, q≴);
+Test_N(q≵, q≵, q≵, q≵, q≵);
+Test_N(q≸, q≸, q≸, q≸, q≸);
+Test_N(q≹, q≹, q≹, q≹, q≹);
+Test_N(q⊀, q⊀, q⊀, q⊀, q⊀);
+Test_N(q⊁, q⊁, q⊁, q⊁, q⊁);
+Test_N(q⊄, q⊄, q⊄, q⊄, q⊄);
+Test_N(q⊅, q⊅, q⊅, q⊅, q⊅);
+Test_N(q⊈, q⊈, q⊈, q⊈, q⊈);
+Test_N(q⊉, q⊉, q⊉, q⊉, q⊉);
+Test_N(q⊬, q⊬, q⊬, q⊬, q⊬);
+Test_N(q⊭, q⊭, q⊭, q⊭, q⊭);
+Test_N(q⊮, q⊮, q⊮, q⊮, q⊮);
+Test_N(q⊯, q⊯, q⊯, q⊯, q⊯);
+Test_N(q⋠, q⋠, q⋠, q⋠, q⋠);
+Test_N(q⋡, q⋡, q⋡, q⋡, q⋡);
+Test_N(q⋢, q⋢, q⋢, q⋢, q⋢);
+Test_N(q⋣, q⋣, q⋣, q⋣, q⋣);
+Test_N(q⋪, q⋪, q⋪, q⋪, q⋪);
+Test_N(q⋫, q⋫, q⋫, q⋫, q⋫);
+Test_N(q⋬, q⋬, q⋬, q⋬, q⋬);
+Test_N(q⋭, q⋭, q⋭, q⋭, q⋭);
+Test_N(q〈, q〈, q〈, q〈, q〈);
+Test_N(q〉, q〉, q〉, q〉, q〉);
+Test_N(q①, q①, q①, q1, q1);
+Test_N(q②, q②, q②, q2, q2);
+Test_N(q③, q③, q③, q3, q3);
+Test_N(q④, q④, q④, q4, q4);
+Test_N(q⑤, q⑤, q⑤, q5, q5);
+Test_N(q⑥, q⑥, q⑥, q6, q6);
+Test_N(q⑦, q⑦, q⑦, q7, q7);
+Test_N(q⑧, q⑧, q⑧, q8, q8);
+Test_N(q⑨, q⑨, q⑨, q9, q9);
+Test_N(q⑩, q⑩, q⑩, q10, q10);
+Test_N(q⑪, q⑪, q⑪, q11, q11);
+Test_N(q⑫, q⑫, q⑫, q12, q12);
+Test_N(q⑬, q⑬, q⑬, q13, q13);
+Test_N(q⑭, q⑭, q⑭, q14, q14);
+Test_N(q⑮, q⑮, q⑮, q15, q15);
+Test_N(q⑯, q⑯, q⑯, q16, q16);
+Test_N(q⑰, q⑰, q⑰, q17, q17);
+Test_N(q⑱, q⑱, q⑱, q18, q18);
+Test_N(q⑲, q⑲, q⑲, q19, q19);
+Test_N(q⑳, q⑳, q⑳, q20, q20);
+Test_N(q⑴, q⑴, q⑴, q(1), q(1));
+Test_N(q⑵, q⑵, q⑵, q(2), q(2));
+Test_N(q⑶, q⑶, q⑶, q(3), q(3));
+Test_N(q⑷, q⑷, q⑷, q(4), q(4));
+Test_N(q⑸, q⑸, q⑸, q(5), q(5));
+Test_N(q⑹, q⑹, q⑹, q(6), q(6));
+Test_N(q⑺, q⑺, q⑺, q(7), q(7));
+Test_N(q⑻, q⑻, q⑻, q(8), q(8));
+Test_N(q⑼, q⑼, q⑼, q(9), q(9));
+Test_N(q⑽, q⑽, q⑽, q(10), q(10));
+Test_N(q⑾, q⑾, q⑾, q(11), q(11));
+Test_N(q⑿, q⑿, q⑿, q(12), q(12));
+Test_N(q⒀, q⒀, q⒀, q(13), q(13));
+Test_N(q⒁, q⒁, q⒁, q(14), q(14));
+Test_N(q⒂, q⒂, q⒂, q(15), q(15));
+Test_N(q⒃, q⒃, q⒃, q(16), q(16));
+Test_N(q⒄, q⒄, q⒄, q(17), q(17));
+Test_N(q⒅, q⒅, q⒅, q(18), q(18));
+Test_N(q⒆, q⒆, q⒆, q(19), q(19));
+Test_N(q⒇, q⒇, q⒇, q(20), q(20));
+Test_N(q⒈, q⒈, q⒈, q1., q1.);
+Test_N(q⒉, q⒉, q⒉, q2., q2.);
+Test_N(q⒊, q⒊, q⒊, q3., q3.);
+Test_N(q⒋, q⒋, q⒋, q4., q4.);
+Test_N(q⒌, q⒌, q⒌, q5., q5.);
+Test_N(q⒍, q⒍, q⒍, q6., q6.);
+Test_N(q⒎, q⒎, q⒎, q7., q7.);
+Test_N(q⒏, q⒏, q⒏, q8., q8.);
+Test_N(q⒐, q⒐, q⒐, q9., q9.);
+Test_N(q⒑, q⒑, q⒑, q10., q10.);
+Test_N(q⒒, q⒒, q⒒, q11., q11.);
+Test_N(q⒓, q⒓, q⒓, q12., q12.);
+Test_N(q⒔, q⒔, q⒔, q13., q13.);
+Test_N(q⒕, q⒕, q⒕, q14., q14.);
+Test_N(q⒖, q⒖, q⒖, q15., q15.);
+Test_N(q⒗, q⒗, q⒗, q16., q16.);
+Test_N(q⒘, q⒘, q⒘, q17., q17.);
+Test_N(q⒙, q⒙, q⒙, q18., q18.);
+Test_N(q⒚, q⒚, q⒚, q19., q19.);
+Test_N(q⒛, q⒛, q⒛, q20., q20.);
+Test_N(q⒜, q⒜, q⒜, q(a), q(a));
+Test_N(q⒝, q⒝, q⒝, q(b), q(b));
+Test_N(q⒞, q⒞, q⒞, q(c), q(c));
+Test_N(q⒟, q⒟, q⒟, q(d), q(d));
+Test_N(q⒠, q⒠, q⒠, q(e), q(e));
+Test_N(q⒡, q⒡, q⒡, q(f), q(f));
+Test_N(q⒢, q⒢, q⒢, q(g), q(g));
+Test_N(q⒣, q⒣, q⒣, q(h), q(h));
+Test_N(q⒤, q⒤, q⒤, q(i), q(i));
+Test_N(q⒥, q⒥, q⒥, q(j), q(j));
+Test_N(q⒦, q⒦, q⒦, q(k), q(k));
+Test_N(q⒧, q⒧, q⒧, q(l), q(l));
+Test_N(q⒨, q⒨, q⒨, q(m), q(m));
+Test_N(q⒩, q⒩, q⒩, q(n), q(n));
+Test_N(q⒪, q⒪, q⒪, q(o), q(o));
+Test_N(q⒫, q⒫, q⒫, q(p), q(p));
+Test_N(q⒬, q⒬, q⒬, q(q), q(q));
+Test_N(q⒭, q⒭, q⒭, q(r), q(r));
+Test_N(q⒮, q⒮, q⒮, q(s), q(s));
+Test_N(q⒯, q⒯, q⒯, q(t), q(t));
+Test_N(q⒰, q⒰, q⒰, q(u), q(u));
+Test_N(q⒱, q⒱, q⒱, q(v), q(v));
+Test_N(q⒲, q⒲, q⒲, q(w), q(w));
+Test_N(q⒳, q⒳, q⒳, q(x), q(x));
+Test_N(q⒴, q⒴, q⒴, q(y), q(y));
+Test_N(q⒵, q⒵, q⒵, q(z), q(z));
+Test_N(qⒶ, qⒶ, qⒶ, qA, qA);
+Test_N(qⒷ, qⒷ, qⒷ, qB, qB);
+Test_N(qⒸ, qⒸ, qⒸ, qC, qC);
+Test_N(qⒹ, qⒹ, qⒹ, qD, qD);
+Test_N(qⒺ, qⒺ, qⒺ, qE, qE);
+Test_N(qⒻ, qⒻ, qⒻ, qF, qF);
+Test_N(qⒼ, qⒼ, qⒼ, qG, qG);
+Test_N(qⒽ, qⒽ, qⒽ, qH, qH);
+Test_N(qⒾ, qⒾ, qⒾ, qI, qI);
+Test_N(qⒿ, qⒿ, qⒿ, qJ, qJ);
+Test_N(qⓀ, qⓀ, qⓀ, qK, qK);
+Test_N(qⓁ, qⓁ, qⓁ, qL, qL);
+Test_N(qⓂ, qⓂ, qⓂ, qM, qM);
+Test_N(qⓃ, qⓃ, qⓃ, qN, qN);
+Test_N(qⓄ, qⓄ, qⓄ, qO, qO);
+Test_N(qⓅ, qⓅ, qⓅ, qP, qP);
+Test_N(qⓆ, qⓆ, qⓆ, qQ, qQ);
+Test_N(qⓇ, qⓇ, qⓇ, qR, qR);
+Test_N(qⓈ, qⓈ, qⓈ, qS, qS);
+Test_N(qⓉ, qⓉ, qⓉ, qT, qT);
+Test_N(qⓊ, qⓊ, qⓊ, qU, qU);
+Test_N(qⓋ, qⓋ, qⓋ, qV, qV);
+Test_N(qⓌ, qⓌ, qⓌ, qW, qW);
+Test_N(qⓍ, qⓍ, qⓍ, qX, qX);
+Test_N(qⓎ, qⓎ, qⓎ, qY, qY);
+Test_N(qⓏ, qⓏ, qⓏ, qZ, qZ);
+Test_N(qⓐ, qⓐ, qⓐ, qa, qa);
+Test_N(qⓑ, qⓑ, qⓑ, qb, qb);
+Test_N(qⓒ, qⓒ, qⓒ, qc, qc);
+Test_N(qⓓ, qⓓ, qⓓ, qd, qd);
+Test_N(qⓔ, qⓔ, qⓔ, qe, qe);
+Test_N(qⓕ, qⓕ, qⓕ, qf, qf);
+Test_N(qⓖ, qⓖ, qⓖ, qg, qg);
+Test_N(qⓗ, qⓗ, qⓗ, qh, qh);
+Test_N(qⓘ, qⓘ, qⓘ, qi, qi);
+Test_N(qⓙ, qⓙ, qⓙ, qj, qj);
+Test_N(qⓚ, qⓚ, qⓚ, qk, qk);
+Test_N(qⓛ, qⓛ, qⓛ, ql, ql);
+Test_N(qⓜ, qⓜ, qⓜ, qm, qm);
+Test_N(qⓝ, qⓝ, qⓝ, qn, qn);
+Test_N(qⓞ, qⓞ, qⓞ, qo, qo);
+Test_N(qⓟ, qⓟ, qⓟ, qp, qp);
+Test_N(qⓠ, qⓠ, qⓠ, qq, qq);
+Test_N(qⓡ, qⓡ, qⓡ, qr, qr);
+Test_N(qⓢ, qⓢ, qⓢ, qs, qs);
+Test_N(qⓣ, qⓣ, qⓣ, qt, qt);
+Test_N(qⓤ, qⓤ, qⓤ, qu, qu);
+Test_N(qⓥ, qⓥ, qⓥ, qv, qv);
+Test_N(qⓦ, qⓦ, qⓦ, qw, qw);
+Test_N(qⓧ, qⓧ, qⓧ, qx, qx);
+Test_N(qⓨ, qⓨ, qⓨ, qy, qy);
+Test_N(qⓩ, qⓩ, qⓩ, qz, qz);
+Test_N(q⓪, q⓪, q⓪, q0, q0);
+Test_N(q⨌, q⨌, q⨌, q∫∫∫∫, q∫∫∫∫);
+Test_N(q⩴, q⩴, q⩴, q::=, q::=);
+Test_N(q⩵, q⩵, q⩵, q==, q==);
+Test_N(q⩶, q⩶, q⩶, q===, q===);
+Test_N(q⫝̸, q⫝̸, q⫝̸, q⫝̸, q⫝̸);
+Test_N(qⱼ, qⱼ, qⱼ, qj, qj);
+Test_N(qⱽ, qⱽ, qⱽ, qV, qV);
+Test_N(qⵯ, qⵯ, qⵯ, qⵡ, qⵡ);
+Test_N(q⺟, q⺟, q⺟, q母, q母);
+Test_N(q⻳, q⻳, q⻳, q龟, q龟);
+Test_N(q⼀, q⼀, q⼀, q一, q一);
+Test_N(q⼁, q⼁, q⼁, q丨, q丨);
+Test_N(q⼂, q⼂, q⼂, q丶, q丶);
+Test_N(q⼃, q⼃, q⼃, q丿, q丿);
+Test_N(q⼄, q⼄, q⼄, q乙, q乙);
+Test_N(q⼅, q⼅, q⼅, q亅, q亅);
+Test_N(q⼆, q⼆, q⼆, q二, q二);
+Test_N(q⼇, q⼇, q⼇, q亠, q亠);
+Test_N(q⼈, q⼈, q⼈, q人, q人);
+Test_N(q⼉, q⼉, q⼉, q儿, q儿);
+Test_N(q⼊, q⼊, q⼊, q入, q入);
+Test_N(q⼋, q⼋, q⼋, q八, q八);
+Test_N(q⼌, q⼌, q⼌, q冂, q冂);
+Test_N(q⼍, q⼍, q⼍, q冖, q冖);
+Test_N(q⼎, q⼎, q⼎, q冫, q冫);
+Test_N(q⼏, q⼏, q⼏, q几, q几);
+Test_N(q⼐, q⼐, q⼐, q凵, q凵);
+Test_N(q⼑, q⼑, q⼑, q刀, q刀);
+Test_N(q⼒, q⼒, q⼒, q力, q力);
+Test_N(q⼓, q⼓, q⼓, q勹, q勹);
+Test_N(q⼔, q⼔, q⼔, q匕, q匕);
+Test_N(q⼕, q⼕, q⼕, q匚, q匚);
+Test_N(q⼖, q⼖, q⼖, q匸, q匸);
+Test_N(q⼗, q⼗, q⼗, q十, q十);
+Test_N(q⼘, q⼘, q⼘, q卜, q卜);
+Test_N(q⼙, q⼙, q⼙, q卩, q卩);
+Test_N(q⼚, q⼚, q⼚, q厂, q厂);
+Test_N(q⼛, q⼛, q⼛, q厶, q厶);
+Test_N(q⼜, q⼜, q⼜, q又, q又);
+Test_N(q⼝, q⼝, q⼝, q口, q口);
+Test_N(q⼞, q⼞, q⼞, q囗, q囗);
+Test_N(q⼟, q⼟, q⼟, q土, q土);
+Test_N(q⼠, q⼠, q⼠, q士, q士);
+Test_N(q⼡, q⼡, q⼡, q夂, q夂);
+Test_N(q⼢, q⼢, q⼢, q夊, q夊);
+Test_N(q⼣, q⼣, q⼣, q夕, q夕);
+Test_N(q⼤, q⼤, q⼤, q大, q大);
+Test_N(q⼥, q⼥, q⼥, q女, q女);
+Test_N(q⼦, q⼦, q⼦, q子, q子);
+Test_N(q⼧, q⼧, q⼧, q宀, q宀);
+Test_N(q⼨, q⼨, q⼨, q寸, q寸);
+Test_N(q⼩, q⼩, q⼩, q小, q小);
+Test_N(q⼪, q⼪, q⼪, q尢, q尢);
+Test_N(q⼫, q⼫, q⼫, q尸, q尸);
+Test_N(q⼬, q⼬, q⼬, q屮, q屮);
+Test_N(q⼭, q⼭, q⼭, q山, q山);
+Test_N(q⼮, q⼮, q⼮, q巛, q巛);
+Test_N(q⼯, q⼯, q⼯, q工, q工);
+Test_N(q⼰, q⼰, q⼰, q己, q己);
+Test_N(q⼱, q⼱, q⼱, q巾, q巾);
+Test_N(q⼲, q⼲, q⼲, q干, q干);
+Test_N(q⼳, q⼳, q⼳, q幺, q幺);
+Test_N(q⼴, q⼴, q⼴, q广, q广);
+Test_N(q⼵, q⼵, q⼵, q廴, q廴);
+Test_N(q⼶, q⼶, q⼶, q廾, q廾);
+Test_N(q⼷, q⼷, q⼷, q弋, q弋);
+Test_N(q⼸, q⼸, q⼸, q弓, q弓);
+Test_N(q⼹, q⼹, q⼹, q彐, q彐);
+Test_N(q⼺, q⼺, q⼺, q彡, q彡);
+Test_N(q⼻, q⼻, q⼻, q彳, q彳);
+Test_N(q⼼, q⼼, q⼼, q心, q心);
+Test_N(q⼽, q⼽, q⼽, q戈, q戈);
+Test_N(q⼾, q⼾, q⼾, q戶, q戶);
+Test_N(q⼿, q⼿, q⼿, q手, q手);
+Test_N(q⽀, q⽀, q⽀, q支, q支);
+Test_N(q⽁, q⽁, q⽁, q攴, q攴);
+Test_N(q⽂, q⽂, q⽂, q文, q文);
+Test_N(q⽃, q⽃, q⽃, q斗, q斗);
+Test_N(q⽄, q⽄, q⽄, q斤, q斤);
+Test_N(q⽅, q⽅, q⽅, q方, q方);
+Test_N(q⽆, q⽆, q⽆, q无, q无);
+Test_N(q⽇, q⽇, q⽇, q日, q日);
+Test_N(q⽈, q⽈, q⽈, q曰, q曰);
+Test_N(q⽉, q⽉, q⽉, q月, q月);
+Test_N(q⽊, q⽊, q⽊, q木, q木);
+Test_N(q⽋, q⽋, q⽋, q欠, q欠);
+Test_N(q⽌, q⽌, q⽌, q止, q止);
+Test_N(q⽍, q⽍, q⽍, q歹, q歹);
+Test_N(q⽎, q⽎, q⽎, q殳, q殳);
+Test_N(q⽏, q⽏, q⽏, q毋, q毋);
+Test_N(q⽐, q⽐, q⽐, q比, q比);
+Test_N(q⽑, q⽑, q⽑, q毛, q毛);
+Test_N(q⽒, q⽒, q⽒, q氏, q氏);
+Test_N(q⽓, q⽓, q⽓, q气, q气);
+Test_N(q⽔, q⽔, q⽔, q水, q水);
+Test_N(q⽕, q⽕, q⽕, q火, q火);
+Test_N(q⽖, q⽖, q⽖, q爪, q爪);
+Test_N(q⽗, q⽗, q⽗, q父, q父);
+Test_N(q⽘, q⽘, q⽘, q爻, q爻);
+Test_N(q⽙, q⽙, q⽙, q爿, q爿);
+Test_N(q⽚, q⽚, q⽚, q片, q片);
+Test_N(q⽛, q⽛, q⽛, q牙, q牙);
+Test_N(q⽜, q⽜, q⽜, q牛, q牛);
+Test_N(q⽝, q⽝, q⽝, q犬, q犬);
+Test_N(q⽞, q⽞, q⽞, q玄, q玄);
+Test_N(q⽟, q⽟, q⽟, q玉, q玉);
+Test_N(q⽠, q⽠, q⽠, q瓜, q瓜);
+Test_N(q⽡, q⽡, q⽡, q瓦, q瓦);
+Test_N(q⽢, q⽢, q⽢, q甘, q甘);
+Test_N(q⽣, q⽣, q⽣, q生, q生);
+Test_N(q⽤, q⽤, q⽤, q用, q用);
+Test_N(q⽥, q⽥, q⽥, q田, q田);
+Test_N(q⽦, q⽦, q⽦, q疋, q疋);
+Test_N(q⽧, q⽧, q⽧, q疒, q疒);
+Test_N(q⽨, q⽨, q⽨, q癶, q癶);
+Test_N(q⽩, q⽩, q⽩, q白, q白);
+Test_N(q⽪, q⽪, q⽪, q皮, q皮);
+Test_N(q⽫, q⽫, q⽫, q皿, q皿);
+Test_N(q⽬, q⽬, q⽬, q目, q目);
+Test_N(q⽭, q⽭, q⽭, q矛, q矛);
+Test_N(q⽮, q⽮, q⽮, q矢, q矢);
+Test_N(q⽯, q⽯, q⽯, q石, q石);
+Test_N(q⽰, q⽰, q⽰, q示, q示);
+Test_N(q⽱, q⽱, q⽱, q禸, q禸);
+Test_N(q⽲, q⽲, q⽲, q禾, q禾);
+Test_N(q⽳, q⽳, q⽳, q穴, q穴);
+Test_N(q⽴, q⽴, q⽴, q立, q立);
+Test_N(q⽵, q⽵, q⽵, q竹, q竹);
+Test_N(q⽶, q⽶, q⽶, q米, q米);
+Test_N(q⽷, q⽷, q⽷, q糸, q糸);
+Test_N(q⽸, q⽸, q⽸, q缶, q缶);
+Test_N(q⽹, q⽹, q⽹, q网, q网);
+Test_N(q⽺, q⽺, q⽺, q羊, q羊);
+Test_N(q⽻, q⽻, q⽻, q羽, q羽);
+Test_N(q⽼, q⽼, q⽼, q老, q老);
+Test_N(q⽽, q⽽, q⽽, q而, q而);
+Test_N(q⽾, q⽾, q⽾, q耒, q耒);
+Test_N(q⽿, q⽿, q⽿, q耳, q耳);
+Test_N(q⾀, q⾀, q⾀, q聿, q聿);
+Test_N(q⾁, q⾁, q⾁, q肉, q肉);
+Test_N(q⾂, q⾂, q⾂, q臣, q臣);
+Test_N(q⾃, q⾃, q⾃, q自, q自);
+Test_N(q⾄, q⾄, q⾄, q至, q至);
+Test_N(q⾅, q⾅, q⾅, q臼, q臼);
+Test_N(q⾆, q⾆, q⾆, q舌, q舌);
+Test_N(q⾇, q⾇, q⾇, q舛, q舛);
+Test_N(q⾈, q⾈, q⾈, q舟, q舟);
+Test_N(q⾉, q⾉, q⾉, q艮, q艮);
+Test_N(q⾊, q⾊, q⾊, q色, q色);
+Test_N(q⾋, q⾋, q⾋, q艸, q艸);
+Test_N(q⾌, q⾌, q⾌, q虍, q虍);
+Test_N(q⾍, q⾍, q⾍, q虫, q虫);
+Test_N(q⾎, q⾎, q⾎, q血, q血);
+Test_N(q⾏, q⾏, q⾏, q行, q行);
+Test_N(q⾐, q⾐, q⾐, q衣, q衣);
+Test_N(q⾑, q⾑, q⾑, q襾, q襾);
+Test_N(q⾒, q⾒, q⾒, q見, q見);
+Test_N(q⾓, q⾓, q⾓, q角, q角);
+Test_N(q⾔, q⾔, q⾔, q言, q言);
+Test_N(q⾕, q⾕, q⾕, q谷, q谷);
+Test_N(q⾖, q⾖, q⾖, q豆, q豆);
+Test_N(q⾗, q⾗, q⾗, q豕, q豕);
+Test_N(q⾘, q⾘, q⾘, q豸, q豸);
+Test_N(q⾙, q⾙, q⾙, q貝, q貝);
+Test_N(q⾚, q⾚, q⾚, q赤, q赤);
+Test_N(q⾛, q⾛, q⾛, q走, q走);
+Test_N(q⾜, q⾜, q⾜, q足, q足);
+Test_N(q⾝, q⾝, q⾝, q身, q身);
+Test_N(q⾞, q⾞, q⾞, q車, q車);
+Test_N(q⾟, q⾟, q⾟, q辛, q辛);
+Test_N(q⾠, q⾠, q⾠, q辰, q辰);
+Test_N(q⾡, q⾡, q⾡, q辵, q辵);
+Test_N(q⾢, q⾢, q⾢, q邑, q邑);
+Test_N(q⾣, q⾣, q⾣, q酉, q酉);
+Test_N(q⾤, q⾤, q⾤, q釆, q釆);
+Test_N(q⾥, q⾥, q⾥, q里, q里);
+Test_N(q⾦, q⾦, q⾦, q金, q金);
+Test_N(q⾧, q⾧, q⾧, q長, q長);
+Test_N(q⾨, q⾨, q⾨, q門, q門);
+Test_N(q⾩, q⾩, q⾩, q阜, q阜);
+Test_N(q⾪, q⾪, q⾪, q隶, q隶);
+Test_N(q⾫, q⾫, q⾫, q隹, q隹);
+Test_N(q⾬, q⾬, q⾬, q雨, q雨);
+Test_N(q⾭, q⾭, q⾭, q靑, q靑);
+Test_N(q⾮, q⾮, q⾮, q非, q非);
+Test_N(q⾯, q⾯, q⾯, q面, q面);
+Test_N(q⾰, q⾰, q⾰, q革, q革);
+Test_N(q⾱, q⾱, q⾱, q韋, q韋);
+Test_N(q⾲, q⾲, q⾲, q韭, q韭);
+Test_N(q⾳, q⾳, q⾳, q音, q音);
+Test_N(q⾴, q⾴, q⾴, q頁, q頁);
+Test_N(q⾵, q⾵, q⾵, q風, q風);
+Test_N(q⾶, q⾶, q⾶, q飛, q飛);
+Test_N(q⾷, q⾷, q⾷, q食, q食);
+Test_N(q⾸, q⾸, q⾸, q首, q首);
+Test_N(q⾹, q⾹, q⾹, q香, q香);
+Test_N(q⾺, q⾺, q⾺, q馬, q馬);
+Test_N(q⾻, q⾻, q⾻, q骨, q骨);
+Test_N(q⾼, q⾼, q⾼, q高, q高);
+Test_N(q⾽, q⾽, q⾽, q髟, q髟);
+Test_N(q⾾, q⾾, q⾾, q鬥, q鬥);
+Test_N(q⾿, q⾿, q⾿, q鬯, q鬯);
+Test_N(q⿀, q⿀, q⿀, q鬲, q鬲);
+Test_N(q⿁, q⿁, q⿁, q鬼, q鬼);
+Test_N(q⿂, q⿂, q⿂, q魚, q魚);
+Test_N(q⿃, q⿃, q⿃, q鳥, q鳥);
+Test_N(q⿄, q⿄, q⿄, q鹵, q鹵);
+Test_N(q⿅, q⿅, q⿅, q鹿, q鹿);
+Test_N(q⿆, q⿆, q⿆, q麥, q麥);
+Test_N(q⿇, q⿇, q⿇, q麻, q麻);
+Test_N(q⿈, q⿈, q⿈, q黃, q黃);
+Test_N(q⿉, q⿉, q⿉, q黍, q黍);
+Test_N(q⿊, q⿊, q⿊, q黑, q黑);
+Test_N(q⿋, q⿋, q⿋, q黹, q黹);
+Test_N(q⿌, q⿌, q⿌, q黽, q黽);
+Test_N(q⿍, q⿍, q⿍, q鼎, q鼎);
+Test_N(q⿎, q⿎, q⿎, q鼓, q鼓);
+Test_N(q⿏, q⿏, q⿏, q鼠, q鼠);
+Test_N(q⿐, q⿐, q⿐, q鼻, q鼻);
+Test_N(q⿑, q⿑, q⿑, q齊, q齊);
+Test_N(q⿒, q⿒, q⿒, q齒, q齒);
+Test_N(q⿓, q⿓, q⿓, q龍, q龍);
+Test_N(q⿔, q⿔, q⿔, q龜, q龜);
+Test_N(q⿕, q⿕, q⿕, q龠, q龠);
+Test_N(q , q , q , q , q );
+Test_N(q〶, q〶, q〶, q〒, q〒);
+Test_N(q〸, q〸, q〸, q十, q十);
+Test_N(q〹, q〹, q〹, q卄, q卄);
+Test_N(q〺, q〺, q〺, q卅, q卅);
+Test_N(qが, qが, qが, qが, qが);
+Test_N(qぎ, qぎ, qぎ, qぎ, qぎ);
+Test_N(qぐ, qぐ, qぐ, qぐ, qぐ);
+Test_N(qげ, qげ, qげ, qげ, qげ);
+Test_N(qご, qご, qご, qご, qご);
+Test_N(qざ, qざ, qざ, qざ, qざ);
+Test_N(qじ, qじ, qじ, qじ, qじ);
+Test_N(qず, qず, qず, qず, qず);
+Test_N(qぜ, qぜ, qぜ, qぜ, qぜ);
+Test_N(qぞ, qぞ, qぞ, qぞ, qぞ);
+Test_N(qだ, qだ, qだ, qだ, qだ);
+Test_N(qぢ, qぢ, qぢ, qぢ, qぢ);
+Test_N(qづ, qづ, qづ, qづ, qづ);
+Test_N(qで, qで, qで, qで, qで);
+Test_N(qど, qど, qど, qど, qど);
+Test_N(qば, qば, qば, qば, qば);
+Test_N(qぱ, qぱ, qぱ, qぱ, qぱ);
+Test_N(qび, qび, qび, qび, qび);
+Test_N(qぴ, qぴ, qぴ, qぴ, qぴ);
+Test_N(qぶ, qぶ, qぶ, qぶ, qぶ);
+Test_N(qぷ, qぷ, qぷ, qぷ, qぷ);
+Test_N(qべ, qべ, qべ, qべ, qべ);
+Test_N(qぺ, qぺ, qぺ, qぺ, qぺ);
+Test_N(qぼ, qぼ, qぼ, qぼ, qぼ);
+Test_N(qぽ, qぽ, qぽ, qぽ, qぽ);
+Test_N(qゔ, qゔ, qゔ, qゔ, qゔ);
+Test_N(q゛, q゛, q゛, q ゙, q ゙);
+Test_N(q゜, q゜, q゜, q ゚, q ゚);
+Test_N(qゞ, qゞ, qゞ, qゞ, qゞ);
+Test_N(qゟ, qゟ, qゟ, qより, qより);
+Test_N(qガ, qガ, qガ, qガ, qガ);
+Test_N(qギ, qギ, qギ, qギ, qギ);
+Test_N(qグ, qグ, qグ, qグ, qグ);
+Test_N(qゲ, qゲ, qゲ, qゲ, qゲ);
+Test_N(qゴ, qゴ, qゴ, qゴ, qゴ);
+Test_N(qザ, qザ, qザ, qザ, qザ);
+Test_N(qジ, qジ, qジ, qジ, qジ);
+Test_N(qズ, qズ, qズ, qズ, qズ);
+Test_N(qゼ, qゼ, qゼ, qゼ, qゼ);
+Test_N(qゾ, qゾ, qゾ, qゾ, qゾ);
+Test_N(qダ, qダ, qダ, qダ, qダ);
+Test_N(qヂ, qヂ, qヂ, qヂ, qヂ);
+Test_N(qヅ, qヅ, qヅ, qヅ, qヅ);
+Test_N(qデ, qデ, qデ, qデ, qデ);
+Test_N(qド, qド, qド, qド, qド);
+Test_N(qバ, qバ, qバ, qバ, qバ);
+Test_N(qパ, qパ, qパ, qパ, qパ);
+Test_N(qビ, qビ, qビ, qビ, qビ);
+Test_N(qピ, qピ, qピ, qピ, qピ);
+Test_N(qブ, qブ, qブ, qブ, qブ);
+Test_N(qプ, qプ, qプ, qプ, qプ);
+Test_N(qベ, qベ, qベ, qベ, qベ);
+Test_N(qペ, qペ, qペ, qペ, qペ);
+Test_N(qボ, qボ, qボ, qボ, qボ);
+Test_N(qポ, qポ, qポ, qポ, qポ);
+Test_N(qヴ, qヴ, qヴ, qヴ, qヴ);
+Test_N(qヷ, qヷ, qヷ, qヷ, qヷ);
+Test_N(qヸ, qヸ, qヸ, qヸ, qヸ);
+Test_N(qヹ, qヹ, qヹ, qヹ, qヹ);
+Test_N(qヺ, qヺ, qヺ, qヺ, qヺ);
+Test_N(qヾ, qヾ, qヾ, qヾ, qヾ);
+Test_N(qヿ, qヿ, qヿ, qコト, qコト);
+Test_N(qㄱ, qㄱ, qㄱ, qᄀ, qᄀ);
+Test_N(qㄲ, qㄲ, qㄲ, qᄁ, qᄁ);
+Test_N(qㄳ, qㄳ, qㄳ, qᆪ, qᆪ);
+Test_N(qㄴ, qㄴ, qㄴ, qᄂ, qᄂ);
+Test_N(qㄵ, qㄵ, qㄵ, qᆬ, qᆬ);
+Test_N(qㄶ, qㄶ, qㄶ, qᆭ, qᆭ);
+Test_N(qㄷ, qㄷ, qㄷ, qᄃ, qᄃ);
+Test_N(qㄸ, qㄸ, qㄸ, qᄄ, qᄄ);
+Test_N(qㄹ, qㄹ, qㄹ, qᄅ, qᄅ);
+Test_N(qㄺ, qㄺ, qㄺ, qᆰ, qᆰ);
+Test_N(qㄻ, qㄻ, qㄻ, qᆱ, qᆱ);
+Test_N(qㄼ, qㄼ, qㄼ, qᆲ, qᆲ);
+Test_N(qㄽ, qㄽ, qㄽ, qᆳ, qᆳ);
+Test_N(qㄾ, qㄾ, qㄾ, qᆴ, qᆴ);
+Test_N(qㄿ, qㄿ, qㄿ, qᆵ, qᆵ);
+Test_N(qㅀ, qㅀ, qㅀ, qᄚ, qᄚ);
+Test_N(qㅁ, qㅁ, qㅁ, qᄆ, qᄆ);
+Test_N(qㅂ, qㅂ, qㅂ, qᄇ, qᄇ);
+Test_N(qㅃ, qㅃ, qㅃ, qᄈ, qᄈ);
+Test_N(qㅄ, qㅄ, qㅄ, qᄡ, qᄡ);
+Test_N(qㅅ, qㅅ, qㅅ, qᄉ, qᄉ);
+Test_N(qㅆ, qㅆ, qㅆ, qᄊ, qᄊ);
+Test_N(qㅇ, qㅇ, qㅇ, qᄋ, qᄋ);
+Test_N(qㅈ, qㅈ, qㅈ, qᄌ, qᄌ);
+Test_N(qㅉ, qㅉ, qㅉ, qᄍ, qᄍ);
+Test_N(qㅊ, qㅊ, qㅊ, qᄎ, qᄎ);
+Test_N(qㅋ, qㅋ, qㅋ, qᄏ, qᄏ);
+Test_N(qㅌ, qㅌ, qㅌ, qᄐ, qᄐ);
+Test_N(qㅍ, qㅍ, qㅍ, qᄑ, qᄑ);
+Test_N(qㅎ, qㅎ, qㅎ, qᄒ, qᄒ);
+Test_N(qㅏ, qㅏ, qㅏ, qᅡ, qᅡ);
+Test_N(qㅐ, qㅐ, qㅐ, qᅢ, qᅢ);
+Test_N(qㅑ, qㅑ, qㅑ, qᅣ, qᅣ);
+Test_N(qㅒ, qㅒ, qㅒ, qᅤ, qᅤ);
+Test_N(qㅓ, qㅓ, qㅓ, qᅥ, qᅥ);
+Test_N(qㅔ, qㅔ, qㅔ, qᅦ, qᅦ);
+Test_N(qㅕ, qㅕ, qㅕ, qᅧ, qᅧ);
+Test_N(qㅖ, qㅖ, qㅖ, qᅨ, qᅨ);
+Test_N(qㅗ, qㅗ, qㅗ, qᅩ, qᅩ);
+Test_N(qㅘ, qㅘ, qㅘ, qᅪ, qᅪ);
+Test_N(qㅙ, qㅙ, qㅙ, qᅫ, qᅫ);
+Test_N(qㅚ, qㅚ, qㅚ, qᅬ, qᅬ);
+Test_N(qㅛ, qㅛ, qㅛ, qᅭ, qᅭ);
+Test_N(qㅜ, qㅜ, qㅜ, qᅮ, qᅮ);
+Test_N(qㅝ, qㅝ, qㅝ, qᅯ, qᅯ);
+Test_N(qㅞ, qㅞ, qㅞ, qᅰ, qᅰ);
+Test_N(qㅟ, qㅟ, qㅟ, qᅱ, qᅱ);
+Test_N(qㅠ, qㅠ, qㅠ, qᅲ, qᅲ);
+Test_N(qㅡ, qㅡ, qㅡ, qᅳ, qᅳ);
+Test_N(qㅢ, qㅢ, qㅢ, qᅴ, qᅴ);
+Test_N(qㅣ, qㅣ, qㅣ, qᅵ, qᅵ);
+Test_N(qㅤ, qㅤ, qㅤ, qᅠ, qᅠ);
+Test_N(qㅥ, qㅥ, qㅥ, qᄔ, qᄔ);
+Test_N(qㅦ, qㅦ, qㅦ, qᄕ, qᄕ);
+Test_N(qㅧ, qㅧ, qㅧ, qᇇ, qᇇ);
+Test_N(qㅨ, qㅨ, qㅨ, qᇈ, qᇈ);
+Test_N(qㅩ, qㅩ, qㅩ, qᇌ, qᇌ);
+Test_N(qㅪ, qㅪ, qㅪ, qᇎ, qᇎ);
+Test_N(qㅫ, qㅫ, qㅫ, qᇓ, qᇓ);
+Test_N(qㅬ, qㅬ, qㅬ, qᇗ, qᇗ);
+Test_N(qㅭ, qㅭ, qㅭ, qᇙ, qᇙ);
+Test_N(qㅮ, qㅮ, qㅮ, qᄜ, qᄜ);
+Test_N(qㅯ, qㅯ, qㅯ, qᇝ, qᇝ);
+Test_N(qㅰ, qㅰ, qㅰ, qᇟ, qᇟ);
+Test_N(qㅱ, qㅱ, qㅱ, qᄝ, qᄝ);
+Test_N(qㅲ, qㅲ, qㅲ, qᄞ, qᄞ);
+Test_N(qㅳ, qㅳ, qㅳ, qᄠ, qᄠ);
+Test_N(qㅴ, qㅴ, qㅴ, qᄢ, qᄢ);
+Test_N(qㅵ, qㅵ, qㅵ, qᄣ, qᄣ);
+Test_N(qㅶ, qㅶ, qㅶ, qᄧ, qᄧ);
+Test_N(qㅷ, qㅷ, qㅷ, qᄩ, qᄩ);
+Test_N(qㅸ, qㅸ, qㅸ, qᄫ, qᄫ);
+Test_N(qㅹ, qㅹ, qㅹ, qᄬ, qᄬ);
+Test_N(qㅺ, qㅺ, qㅺ, qᄭ, qᄭ);
+Test_N(qㅻ, qㅻ, qㅻ, qᄮ, qᄮ);
+Test_N(qㅼ, qㅼ, qㅼ, qᄯ, qᄯ);
+Test_N(qㅽ, qㅽ, qㅽ, qᄲ, qᄲ);
+Test_N(qㅾ, qㅾ, qㅾ, qᄶ, qᄶ);
+Test_N(qㅿ, qㅿ, qㅿ, qᅀ, qᅀ);
+Test_N(qㆀ, qㆀ, qㆀ, qᅇ, qᅇ);
+Test_N(qㆁ, qㆁ, qㆁ, qᅌ, qᅌ);
+Test_N(qㆂ, qㆂ, qㆂ, qᇱ, qᇱ);
+Test_N(qㆃ, qㆃ, qㆃ, qᇲ, qᇲ);
+Test_N(qㆄ, qㆄ, qㆄ, qᅗ, qᅗ);
+Test_N(qㆅ, qㆅ, qㆅ, qᅘ, qᅘ);
+Test_N(qㆆ, qㆆ, qㆆ, qᅙ, qᅙ);
+Test_N(qㆇ, qㆇ, qㆇ, qᆄ, qᆄ);
+Test_N(qㆈ, qㆈ, qㆈ, qᆅ, qᆅ);
+Test_N(qㆉ, qㆉ, qㆉ, qᆈ, qᆈ);
+Test_N(qㆊ, qㆊ, qㆊ, qᆑ, qᆑ);
+Test_N(qㆋ, qㆋ, qㆋ, qᆒ, qᆒ);
+Test_N(qㆌ, qㆌ, qㆌ, qᆔ, qᆔ);
+Test_N(qㆍ, qㆍ, qㆍ, qᆞ, qᆞ);
+Test_N(qㆎ, qㆎ, qㆎ, qᆡ, qᆡ);
+Test_N(q㆒, q㆒, q㆒, q一, q一);
+Test_N(q㆓, q㆓, q㆓, q二, q二);
+Test_N(q㆔, q㆔, q㆔, q三, q三);
+Test_N(q㆕, q㆕, q㆕, q四, q四);
+Test_N(q㆖, q㆖, q㆖, q上, q上);
+Test_N(q㆗, q㆗, q㆗, q中, q中);
+Test_N(q㆘, q㆘, q㆘, q下, q下);
+Test_N(q㆙, q㆙, q㆙, q甲, q甲);
+Test_N(q㆚, q㆚, q㆚, q乙, q乙);
+Test_N(q㆛, q㆛, q㆛, q丙, q丙);
+Test_N(q㆜, q㆜, q㆜, q丁, q丁);
+Test_N(q㆝, q㆝, q㆝, q天, q天);
+Test_N(q㆞, q㆞, q㆞, q地, q地);
+Test_N(q㆟, q㆟, q㆟, q人, q人);
+Test_N(q㈀, q㈀, q㈀, q(ᄀ), q(ᄀ));
+Test_N(q㈁, q㈁, q㈁, q(ᄂ), q(ᄂ));
+Test_N(q㈂, q㈂, q㈂, q(ᄃ), q(ᄃ));
+Test_N(q㈃, q㈃, q㈃, q(ᄅ), q(ᄅ));
+Test_N(q㈄, q㈄, q㈄, q(ᄆ), q(ᄆ));
+Test_N(q㈅, q㈅, q㈅, q(ᄇ), q(ᄇ));
+Test_N(q㈆, q㈆, q㈆, q(ᄉ), q(ᄉ));
+Test_N(q㈇, q㈇, q㈇, q(ᄋ), q(ᄋ));
+Test_N(q㈈, q㈈, q㈈, q(ᄌ), q(ᄌ));
+Test_N(q㈉, q㈉, q㈉, q(ᄎ), q(ᄎ));
+Test_N(q㈊, q㈊, q㈊, q(ᄏ), q(ᄏ));
+Test_N(q㈋, q㈋, q㈋, q(ᄐ), q(ᄐ));
+Test_N(q㈌, q㈌, q㈌, q(ᄑ), q(ᄑ));
+Test_N(q㈍, q㈍, q㈍, q(ᄒ), q(ᄒ));
+Test_N(q㈎, q㈎, q㈎, q(가), q(가));
+Test_N(q㈏, q㈏, q㈏, q(나), q(나));
+Test_N(q㈐, q㈐, q㈐, q(다), q(다));
+Test_N(q㈑, q㈑, q㈑, q(라), q(라));
+Test_N(q㈒, q㈒, q㈒, q(마), q(마));
+Test_N(q㈓, q㈓, q㈓, q(바), q(바));
+Test_N(q㈔, q㈔, q㈔, q(사), q(사));
+Test_N(q㈕, q㈕, q㈕, q(아), q(아));
+Test_N(q㈖, q㈖, q㈖, q(자), q(자));
+Test_N(q㈗, q㈗, q㈗, q(차), q(차));
+Test_N(q㈘, q㈘, q㈘, q(카), q(카));
+Test_N(q㈙, q㈙, q㈙, q(타), q(타));
+Test_N(q㈚, q㈚, q㈚, q(파), q(파));
+Test_N(q㈛, q㈛, q㈛, q(하), q(하));
+Test_N(q㈜, q㈜, q㈜, q(주), q(주));
+Test_N(q㈝, q㈝, q㈝, q(오전), q(오전));
+Test_N(q㈞, q㈞, q㈞, q(오후), q(오후));
+Test_N(q㈠, q㈠, q㈠, q(一), q(一));
+Test_N(q㈡, q㈡, q㈡, q(二), q(二));
+Test_N(q㈢, q㈢, q㈢, q(三), q(三));
+Test_N(q㈣, q㈣, q㈣, q(四), q(四));
+Test_N(q㈤, q㈤, q㈤, q(五), q(五));
+Test_N(q㈥, q㈥, q㈥, q(六), q(六));
+Test_N(q㈦, q㈦, q㈦, q(七), q(七));
+Test_N(q㈧, q㈧, q㈧, q(八), q(八));
+Test_N(q㈨, q㈨, q㈨, q(九), q(九));
+Test_N(q㈩, q㈩, q㈩, q(十), q(十));
+Test_N(q㈪, q㈪, q㈪, q(月), q(月));
+Test_N(q㈫, q㈫, q㈫, q(火), q(火));
+Test_N(q㈬, q㈬, q㈬, q(水), q(水));
+Test_N(q㈭, q㈭, q㈭, q(木), q(木));
+Test_N(q㈮, q㈮, q㈮, q(金), q(金));
+Test_N(q㈯, q㈯, q㈯, q(土), q(土));
+Test_N(q㈰, q㈰, q㈰, q(日), q(日));
+Test_N(q㈱, q㈱, q㈱, q(株), q(株));
+Test_N(q㈲, q㈲, q㈲, q(有), q(有));
+Test_N(q㈳, q㈳, q㈳, q(社), q(社));
+Test_N(q㈴, q㈴, q㈴, q(名), q(名));
+Test_N(q㈵, q㈵, q㈵, q(特), q(特));
+Test_N(q㈶, q㈶, q㈶, q(財), q(財));
+Test_N(q㈷, q㈷, q㈷, q(祝), q(祝));
+Test_N(q㈸, q㈸, q㈸, q(労), q(労));
+Test_N(q㈹, q㈹, q㈹, q(代), q(代));
+Test_N(q㈺, q㈺, q㈺, q(呼), q(呼));
+Test_N(q㈻, q㈻, q㈻, q(学), q(学));
+Test_N(q㈼, q㈼, q㈼, q(監), q(監));
+Test_N(q㈽, q㈽, q㈽, q(企), q(企));
+Test_N(q㈾, q㈾, q㈾, q(資), q(資));
+Test_N(q㈿, q㈿, q㈿, q(協), q(協));
+Test_N(q㉀, q㉀, q㉀, q(祭), q(祭));
+Test_N(q㉁, q㉁, q㉁, q(休), q(休));
+Test_N(q㉂, q㉂, q㉂, q(自), q(自));
+Test_N(q㉃, q㉃, q㉃, q(至), q(至));
+Test_N(q㉄, q㉄, q㉄, q問, q問);
+Test_N(q㉅, q㉅, q㉅, q幼, q幼);
+Test_N(q㉆, q㉆, q㉆, q文, q文);
+Test_N(q㉇, q㉇, q㉇, q箏, q箏);
+Test_N(q㉐, q㉐, q㉐, qPTE, qPTE);
+Test_N(q㉑, q㉑, q㉑, q21, q21);
+Test_N(q㉒, q㉒, q㉒, q22, q22);
+Test_N(q㉓, q㉓, q㉓, q23, q23);
+Test_N(q㉔, q㉔, q㉔, q24, q24);
+Test_N(q㉕, q㉕, q㉕, q25, q25);
+Test_N(q㉖, q㉖, q㉖, q26, q26);
+Test_N(q㉗, q㉗, q㉗, q27, q27);
+Test_N(q㉘, q㉘, q㉘, q28, q28);
+Test_N(q㉙, q㉙, q㉙, q29, q29);
+Test_N(q㉚, q㉚, q㉚, q30, q30);
+Test_N(q㉛, q㉛, q㉛, q31, q31);
+Test_N(q㉜, q㉜, q㉜, q32, q32);
+Test_N(q㉝, q㉝, q㉝, q33, q33);
+Test_N(q㉞, q㉞, q㉞, q34, q34);
+Test_N(q㉟, q㉟, q㉟, q35, q35);
+Test_N(q㉠, q㉠, q㉠, qᄀ, qᄀ);
+Test_N(q㉡, q㉡, q㉡, qᄂ, qᄂ);
+Test_N(q㉢, q㉢, q㉢, qᄃ, qᄃ);
+Test_N(q㉣, q㉣, q㉣, qᄅ, qᄅ);
+Test_N(q㉤, q㉤, q㉤, qᄆ, qᄆ);
+Test_N(q㉥, q㉥, q㉥, qᄇ, qᄇ);
+Test_N(q㉦, q㉦, q㉦, qᄉ, qᄉ);
+Test_N(q㉧, q㉧, q㉧, qᄋ, qᄋ);
+Test_N(q㉨, q㉨, q㉨, qᄌ, qᄌ);
+Test_N(q㉩, q㉩, q㉩, qᄎ, qᄎ);
+Test_N(q㉪, q㉪, q㉪, qᄏ, qᄏ);
+Test_N(q㉫, q㉫, q㉫, qᄐ, qᄐ);
+Test_N(q㉬, q㉬, q㉬, qᄑ, qᄑ);
+Test_N(q㉭, q㉭, q㉭, qᄒ, qᄒ);
+Test_N(q㉮, q㉮, q㉮, q가, q가);
+Test_N(q㉯, q㉯, q㉯, q나, q나);
+Test_N(q㉰, q㉰, q㉰, q다, q다);
+Test_N(q㉱, q㉱, q㉱, q라, q라);
+Test_N(q㉲, q㉲, q㉲, q마, q마);
+Test_N(q㉳, q㉳, q㉳, q바, q바);
+Test_N(q㉴, q㉴, q㉴, q사, q사);
+Test_N(q㉵, q㉵, q㉵, q아, q아);
+Test_N(q㉶, q㉶, q㉶, q자, q자);
+Test_N(q㉷, q㉷, q㉷, q차, q차);
+Test_N(q㉸, q㉸, q㉸, q카, q카);
+Test_N(q㉹, q㉹, q㉹, q타, q타);
+Test_N(q㉺, q㉺, q㉺, q파, q파);
+Test_N(q㉻, q㉻, q㉻, q하, q하);
+Test_N(q㉼, q㉼, q㉼, q참고, q참고);
+Test_N(q㉽, q㉽, q㉽, q주의, q주의);
+Test_N(q㉾, q㉾, q㉾, q우, q우);
+Test_N(q㊀, q㊀, q㊀, q一, q一);
+Test_N(q㊁, q㊁, q㊁, q二, q二);
+Test_N(q㊂, q㊂, q㊂, q三, q三);
+Test_N(q㊃, q㊃, q㊃, q四, q四);
+Test_N(q㊄, q㊄, q㊄, q五, q五);
+Test_N(q㊅, q㊅, q㊅, q六, q六);
+Test_N(q㊆, q㊆, q㊆, q七, q七);
+Test_N(q㊇, q㊇, q㊇, q八, q八);
+Test_N(q㊈, q㊈, q㊈, q九, q九);
+Test_N(q㊉, q㊉, q㊉, q十, q十);
+Test_N(q㊊, q㊊, q㊊, q月, q月);
+Test_N(q㊋, q㊋, q㊋, q火, q火);
+Test_N(q㊌, q㊌, q㊌, q水, q水);
+Test_N(q㊍, q㊍, q㊍, q木, q木);
+Test_N(q㊎, q㊎, q㊎, q金, q金);
+Test_N(q㊏, q㊏, q㊏, q土, q土);
+Test_N(q㊐, q㊐, q㊐, q日, q日);
+Test_N(q㊑, q㊑, q㊑, q株, q株);
+Test_N(q㊒, q㊒, q㊒, q有, q有);
+Test_N(q㊓, q㊓, q㊓, q社, q社);
+Test_N(q㊔, q㊔, q㊔, q名, q名);
+Test_N(q㊕, q㊕, q㊕, q特, q特);
+Test_N(q㊖, q㊖, q㊖, q財, q財);
+Test_N(q㊗, q㊗, q㊗, q祝, q祝);
+Test_N(q㊘, q㊘, q㊘, q労, q労);
+Test_N(q㊙, q㊙, q㊙, q秘, q秘);
+Test_N(q㊚, q㊚, q㊚, q男, q男);
+Test_N(q㊛, q㊛, q㊛, q女, q女);
+Test_N(q㊜, q㊜, q㊜, q適, q適);
+Test_N(q㊝, q㊝, q㊝, q優, q優);
+Test_N(q㊞, q㊞, q㊞, q印, q印);
+Test_N(q㊟, q㊟, q㊟, q注, q注);
+Test_N(q㊠, q㊠, q㊠, q項, q項);
+Test_N(q㊡, q㊡, q㊡, q休, q休);
+Test_N(q㊢, q㊢, q㊢, q写, q写);
+Test_N(q㊣, q㊣, q㊣, q正, q正);
+Test_N(q㊤, q㊤, q㊤, q上, q上);
+Test_N(q㊥, q㊥, q㊥, q中, q中);
+Test_N(q㊦, q㊦, q㊦, q下, q下);
+Test_N(q㊧, q㊧, q㊧, q左, q左);
+Test_N(q㊨, q㊨, q㊨, q右, q右);
+Test_N(q㊩, q㊩, q㊩, q医, q医);
+Test_N(q㊪, q㊪, q㊪, q宗, q宗);
+Test_N(q㊫, q㊫, q㊫, q学, q学);
+Test_N(q㊬, q㊬, q㊬, q監, q監);
+Test_N(q㊭, q㊭, q㊭, q企, q企);
+Test_N(q㊮, q㊮, q㊮, q資, q資);
+Test_N(q㊯, q㊯, q㊯, q協, q協);
+Test_N(q㊰, q㊰, q㊰, q夜, q夜);
+Test_N(q㊱, q㊱, q㊱, q36, q36);
+Test_N(q㊲, q㊲, q㊲, q37, q37);
+Test_N(q㊳, q㊳, q㊳, q38, q38);
+Test_N(q㊴, q㊴, q㊴, q39, q39);
+Test_N(q㊵, q㊵, q㊵, q40, q40);
+Test_N(q㊶, q㊶, q㊶, q41, q41);
+Test_N(q㊷, q㊷, q㊷, q42, q42);
+Test_N(q㊸, q㊸, q㊸, q43, q43);
+Test_N(q㊹, q㊹, q㊹, q44, q44);
+Test_N(q㊺, q㊺, q㊺, q45, q45);
+Test_N(q㊻, q㊻, q㊻, q46, q46);
+Test_N(q㊼, q㊼, q㊼, q47, q47);
+Test_N(q㊽, q㊽, q㊽, q48, q48);
+Test_N(q㊾, q㊾, q㊾, q49, q49);
+Test_N(q㊿, q㊿, q㊿, q50, q50);
+Test_N(q㋀, q㋀, q㋀, q1月, q1月);
+Test_N(q㋁, q㋁, q㋁, q2月, q2月);
+Test_N(q㋂, q㋂, q㋂, q3月, q3月);
+Test_N(q㋃, q㋃, q㋃, q4月, q4月);
+Test_N(q㋄, q㋄, q㋄, q5月, q5月);
+Test_N(q㋅, q㋅, q㋅, q6月, q6月);
+Test_N(q㋆, q㋆, q㋆, q7月, q7月);
+Test_N(q㋇, q㋇, q㋇, q8月, q8月);
+Test_N(q㋈, q㋈, q㋈, q9月, q9月);
+Test_N(q㋉, q㋉, q㋉, q10月, q10月);
+Test_N(q㋊, q㋊, q㋊, q11月, q11月);
+Test_N(q㋋, q㋋, q㋋, q12月, q12月);
+Test_N(q㋌, q㋌, q㋌, qHg, qHg);
+Test_N(q㋍, q㋍, q㋍, qerg, qerg);
+Test_N(q㋎, q㋎, q㋎, qeV, qeV);
+Test_N(q㋏, q㋏, q㋏, qLTD, qLTD);
+Test_N(q㋐, q㋐, q㋐, qア, qア);
+Test_N(q㋑, q㋑, q㋑, qイ, qイ);
+Test_N(q㋒, q㋒, q㋒, qウ, qウ);
+Test_N(q㋓, q㋓, q㋓, qエ, qエ);
+Test_N(q㋔, q㋔, q㋔, qオ, qオ);
+Test_N(q㋕, q㋕, q㋕, qカ, qカ);
+Test_N(q㋖, q㋖, q㋖, qキ, qキ);
+Test_N(q㋗, q㋗, q㋗, qク, qク);
+Test_N(q㋘, q㋘, q㋘, qケ, qケ);
+Test_N(q㋙, q㋙, q㋙, qコ, qコ);
+Test_N(q㋚, q㋚, q㋚, qサ, qサ);
+Test_N(q㋛, q㋛, q㋛, qシ, qシ);
+Test_N(q㋜, q㋜, q㋜, qス, qス);
+Test_N(q㋝, q㋝, q㋝, qセ, qセ);
+Test_N(q㋞, q㋞, q㋞, qソ, qソ);
+Test_N(q㋟, q㋟, q㋟, qタ, qタ);
+Test_N(q㋠, q㋠, q㋠, qチ, qチ);
+Test_N(q㋡, q㋡, q㋡, qツ, qツ);
+Test_N(q㋢, q㋢, q㋢, qテ, qテ);
+Test_N(q㋣, q㋣, q㋣, qト, qト);
+Test_N(q㋤, q㋤, q㋤, qナ, qナ);
+Test_N(q㋥, q㋥, q㋥, qニ, qニ);
+Test_N(q㋦, q㋦, q㋦, qヌ, qヌ);
+Test_N(q㋧, q㋧, q㋧, qネ, qネ);
+Test_N(q㋨, q㋨, q㋨, qノ, qノ);
+Test_N(q㋩, q㋩, q㋩, qハ, qハ);
+Test_N(q㋪, q㋪, q㋪, qヒ, qヒ);
+Test_N(q㋫, q㋫, q㋫, qフ, qフ);
+Test_N(q㋬, q㋬, q㋬, qヘ, qヘ);
+Test_N(q㋭, q㋭, q㋭, qホ, qホ);
+Test_N(q㋮, q㋮, q㋮, qマ, qマ);
+Test_N(q㋯, q㋯, q㋯, qミ, qミ);
+Test_N(q㋰, q㋰, q㋰, qム, qム);
+Test_N(q㋱, q㋱, q㋱, qメ, qメ);
+Test_N(q㋲, q㋲, q㋲, qモ, qモ);
+Test_N(q㋳, q㋳, q㋳, qヤ, qヤ);
+Test_N(q㋴, q㋴, q㋴, qユ, qユ);
+Test_N(q㋵, q㋵, q㋵, qヨ, qヨ);
+Test_N(q㋶, q㋶, q㋶, qラ, qラ);
+Test_N(q㋷, q㋷, q㋷, qリ, qリ);
+Test_N(q㋸, q㋸, q㋸, qル, qル);
+Test_N(q㋹, q㋹, q㋹, qレ, qレ);
+Test_N(q㋺, q㋺, q㋺, qロ, qロ);
+Test_N(q㋻, q㋻, q㋻, qワ, qワ);
+Test_N(q㋼, q㋼, q㋼, qヰ, qヰ);
+Test_N(q㋽, q㋽, q㋽, qヱ, qヱ);
+Test_N(q㋾, q㋾, q㋾, qヲ, qヲ);
+Test_N(q㋿, q㋿, q㋿, q令和, q令和);
+Test_N(q㌀, q㌀, q㌀, qアパート, qアパート);
+Test_N(q㌁, q㌁, q㌁, qアルファ, qアルファ);
+Test_N(q㌂, q㌂, q㌂, qアンペア, qアンペア);
+Test_N(q㌃, q㌃, q㌃, qアール, qアール);
+Test_N(q㌄, q㌄, q㌄, qイニング, qイニング);
+Test_N(q㌅, q㌅, q㌅, qインチ, qインチ);
+Test_N(q㌆, q㌆, q㌆, qウォン, qウォン);
+Test_N(q㌇, q㌇, q㌇, qエスクード, qエスクード);
+Test_N(q㌈, q㌈, q㌈, qエーカー, qエーカー);
+Test_N(q㌉, q㌉, q㌉, qオンス, qオンス);
+Test_N(q㌊, q㌊, q㌊, qオーム, qオーム);
+Test_N(q㌋, q㌋, q㌋, qカイリ, qカイリ);
+Test_N(q㌌, q㌌, q㌌, qカラット, qカラット);
+Test_N(q㌍, q㌍, q㌍, qカロリー, qカロリー);
+Test_N(q㌎, q㌎, q㌎, qガロン, qガロン);
+Test_N(q㌏, q㌏, q㌏, qガンマ, qガンマ);
+Test_N(q㌐, q㌐, q㌐, qギガ, qギガ);
+Test_N(q㌑, q㌑, q㌑, qギニー, qギニー);
+Test_N(q㌒, q㌒, q㌒, qキュリー, qキュリー);
+Test_N(q㌓, q㌓, q㌓, qギルダー, qギルダー);
+Test_N(q㌔, q㌔, q㌔, qキロ, qキロ);
+Test_N(q㌕, q㌕, q㌕, qキログラム, qキログラム);
+Test_N(q㌖, q㌖, q㌖, qキロメートル, qキロメートル);
+Test_N(q㌗, q㌗, q㌗, qキロワット, qキロワット);
+Test_N(q㌘, q㌘, q㌘, qグラム, qグラム);
+Test_N(q㌙, q㌙, q㌙, qグラムトン, qグラムトン);
+Test_N(q㌚, q㌚, q㌚, qクルゼイロ, qクルゼイロ);
+Test_N(q㌛, q㌛, q㌛, qクローネ, qクローネ);
+Test_N(q㌜, q㌜, q㌜, qケース, qケース);
+Test_N(q㌝, q㌝, q㌝, qコルナ, qコルナ);
+Test_N(q㌞, q㌞, q㌞, qコーポ, qコーポ);
+Test_N(q㌟, q㌟, q㌟, qサイクル, qサイクル);
+Test_N(q㌠, q㌠, q㌠, qサンチーム, qサンチーム);
+Test_N(q㌡, q㌡, q㌡, qシリング, qシリング);
+Test_N(q㌢, q㌢, q㌢, qセンチ, qセンチ);
+Test_N(q㌣, q㌣, q㌣, qセント, qセント);
+Test_N(q㌤, q㌤, q㌤, qダース, qダース);
+Test_N(q㌥, q㌥, q㌥, qデシ, qデシ);
+Test_N(q㌦, q㌦, q㌦, qドル, qドル);
+Test_N(q㌧, q㌧, q㌧, qトン, qトン);
+Test_N(q㌨, q㌨, q㌨, qナノ, qナノ);
+Test_N(q㌩, q㌩, q㌩, qノット, qノット);
+Test_N(q㌪, q㌪, q㌪, qハイツ, qハイツ);
+Test_N(q㌫, q㌫, q㌫, qパーセント, qパーセント);
+Test_N(q㌬, q㌬, q㌬, qパーツ, qパーツ);
+Test_N(q㌭, q㌭, q㌭, qバーレル, qバーレル);
+Test_N(q㌮, q㌮, q㌮, qピアストル, qピアストル);
+Test_N(q㌯, q㌯, q㌯, qピクル, qピクル);
+Test_N(q㌰, q㌰, q㌰, qピコ, qピコ);
+Test_N(q㌱, q㌱, q㌱, qビル, qビル);
+Test_N(q㌲, q㌲, q㌲, qファラッド, qファラッド);
+Test_N(q㌳, q㌳, q㌳, qフィート, qフィート);
+Test_N(q㌴, q㌴, q㌴, qブッシェル, qブッシェル);
+Test_N(q㌵, q㌵, q㌵, qフラン, qフラン);
+Test_N(q㌶, q㌶, q㌶, qヘクタール, qヘクタール);
+Test_N(q㌷, q㌷, q㌷, qペソ, qペソ);
+Test_N(q㌸, q㌸, q㌸, qペニヒ, qペニヒ);
+Test_N(q㌹, q㌹, q㌹, qヘルツ, qヘルツ);
+Test_N(q㌺, q㌺, q㌺, qペンス, qペンス);
+Test_N(q㌻, q㌻, q㌻, qページ, qページ);
+Test_N(q㌼, q㌼, q㌼, qベータ, qベータ);
+Test_N(q㌽, q㌽, q㌽, qポイント, qポイント);
+Test_N(q㌾, q㌾, q㌾, qボルト, qボルト);
+Test_N(q㌿, q㌿, q㌿, qホン, qホン);
+Test_N(q㍀, q㍀, q㍀, qポンド, qポンド);
+Test_N(q㍁, q㍁, q㍁, qホール, qホール);
+Test_N(q㍂, q㍂, q㍂, qホーン, qホーン);
+Test_N(q㍃, q㍃, q㍃, qマイクロ, qマイクロ);
+Test_N(q㍄, q㍄, q㍄, qマイル, qマイル);
+Test_N(q㍅, q㍅, q㍅, qマッハ, qマッハ);
+Test_N(q㍆, q㍆, q㍆, qマルク, qマルク);
+Test_N(q㍇, q㍇, q㍇, qマンション, qマンション);
+Test_N(q㍈, q㍈, q㍈, qミクロン, qミクロン);
+Test_N(q㍉, q㍉, q㍉, qミリ, qミリ);
+Test_N(q㍊, q㍊, q㍊, qミリバール, qミリバール);
+Test_N(q㍋, q㍋, q㍋, qメガ, qメガ);
+Test_N(q㍌, q㍌, q㍌, qメガトン, qメガトン);
+Test_N(q㍍, q㍍, q㍍, qメートル, qメートル);
+Test_N(q㍎, q㍎, q㍎, qヤード, qヤード);
+Test_N(q㍏, q㍏, q㍏, qヤール, qヤール);
+Test_N(q㍐, q㍐, q㍐, qユアン, qユアン);
+Test_N(q㍑, q㍑, q㍑, qリットル, qリットル);
+Test_N(q㍒, q㍒, q㍒, qリラ, qリラ);
+Test_N(q㍓, q㍓, q㍓, qルピー, qルピー);
+Test_N(q㍔, q㍔, q㍔, qルーブル, qルーブル);
+Test_N(q㍕, q㍕, q㍕, qレム, qレム);
+Test_N(q㍖, q㍖, q㍖, qレントゲン, qレントゲン);
+Test_N(q㍗, q㍗, q㍗, qワット, qワット);
+Test_N(q㍘, q㍘, q㍘, q0点, q0点);
+Test_N(q㍙, q㍙, q㍙, q1点, q1点);
+Test_N(q㍚, q㍚, q㍚, q2点, q2点);
+Test_N(q㍛, q㍛, q㍛, q3点, q3点);
+Test_N(q㍜, q㍜, q㍜, q4点, q4点);
+Test_N(q㍝, q㍝, q㍝, q5点, q5点);
+Test_N(q㍞, q㍞, q㍞, q6点, q6点);
+Test_N(q㍟, q㍟, q㍟, q7点, q7点);
+Test_N(q㍠, q㍠, q㍠, q8点, q8点);
+Test_N(q㍡, q㍡, q㍡, q9点, q9点);
+Test_N(q㍢, q㍢, q㍢, q10点, q10点);
+Test_N(q㍣, q㍣, q㍣, q11点, q11点);
+Test_N(q㍤, q㍤, q㍤, q12点, q12点);
+Test_N(q㍥, q㍥, q㍥, q13点, q13点);
+Test_N(q㍦, q㍦, q㍦, q14点, q14点);
+Test_N(q㍧, q㍧, q㍧, q15点, q15点);
+Test_N(q㍨, q㍨, q㍨, q16点, q16点);
+Test_N(q㍩, q㍩, q㍩, q17点, q17点);
+Test_N(q㍪, q㍪, q㍪, q18点, q18点);
+Test_N(q㍫, q㍫, q㍫, q19点, q19点);
+Test_N(q㍬, q㍬, q㍬, q20点, q20点);
+Test_N(q㍭, q㍭, q㍭, q21点, q21点);
+Test_N(q㍮, q㍮, q㍮, q22点, q22点);
+Test_N(q㍯, q㍯, q㍯, q23点, q23点);
+Test_N(q㍰, q㍰, q㍰, q24点, q24点);
+Test_N(q㍱, q㍱, q㍱, qhPa, qhPa);
+Test_N(q㍲, q㍲, q㍲, qda, qda);
+Test_N(q㍳, q㍳, q㍳, qAU, qAU);
+Test_N(q㍴, q㍴, q㍴, qbar, qbar);
+Test_N(q㍵, q㍵, q㍵, qoV, qoV);
+Test_N(q㍶, q㍶, q㍶, qpc, qpc);
+Test_N(q㍷, q㍷, q㍷, qdm, qdm);
+Test_N(q㍸, q㍸, q㍸, qdm2, qdm2);
+Test_N(q㍹, q㍹, q㍹, qdm3, qdm3);
+Test_N(q㍺, q㍺, q㍺, qIU, qIU);
+Test_N(q㍻, q㍻, q㍻, q平成, q平成);
+Test_N(q㍼, q㍼, q㍼, q昭和, q昭和);
+Test_N(q㍽, q㍽, q㍽, q大正, q大正);
+Test_N(q㍾, q㍾, q㍾, q明治, q明治);
+Test_N(q㍿, q㍿, q㍿, q株式会社, q株式会社);
+Test_N(q㎀, q㎀, q㎀, qpA, qpA);
+Test_N(q㎁, q㎁, q㎁, qnA, qnA);
+Test_N(q㎂, q㎂, q㎂, qμA, qμA);
+Test_N(q㎃, q㎃, q㎃, qmA, qmA);
+Test_N(q㎄, q㎄, q㎄, qkA, qkA);
+Test_N(q㎅, q㎅, q㎅, qKB, qKB);
+Test_N(q㎆, q㎆, q㎆, qMB, qMB);
+Test_N(q㎇, q㎇, q㎇, qGB, qGB);
+Test_N(q㎈, q㎈, q㎈, qcal, qcal);
+Test_N(q㎉, q㎉, q㎉, qkcal, qkcal);
+Test_N(q㎊, q㎊, q㎊, qpF, qpF);
+Test_N(q㎋, q㎋, q㎋, qnF, qnF);
+Test_N(q㎌, q㎌, q㎌, qμF, qμF);
+Test_N(q㎍, q㎍, q㎍, qμg, qμg);
+Test_N(q㎎, q㎎, q㎎, qmg, qmg);
+Test_N(q㎏, q㎏, q㎏, qkg, qkg);
+Test_N(q㎐, q㎐, q㎐, qHz, qHz);
+Test_N(q㎑, q㎑, q㎑, qkHz, qkHz);
+Test_N(q㎒, q㎒, q㎒, qMHz, qMHz);
+Test_N(q㎓, q㎓, q㎓, qGHz, qGHz);
+Test_N(q㎔, q㎔, q㎔, qTHz, qTHz);
+Test_N(q㎕, q㎕, q㎕, qμl, qμl);
+Test_N(q㎖, q㎖, q㎖, qml, qml);
+Test_N(q㎗, q㎗, q㎗, qdl, qdl);
+Test_N(q㎘, q㎘, q㎘, qkl, qkl);
+Test_N(q㎙, q㎙, q㎙, qfm, qfm);
+Test_N(q㎚, q㎚, q㎚, qnm, qnm);
+Test_N(q㎛, q㎛, q㎛, qμm, qμm);
+Test_N(q㎜, q㎜, q㎜, qmm, qmm);
+Test_N(q㎝, q㎝, q㎝, qcm, qcm);
+Test_N(q㎞, q㎞, q㎞, qkm, qkm);
+Test_N(q㎟, q㎟, q㎟, qmm2, qmm2);
+Test_N(q㎠, q㎠, q㎠, qcm2, qcm2);
+Test_N(q㎡, q㎡, q㎡, qm2, qm2);
+Test_N(q㎢, q㎢, q㎢, qkm2, qkm2);
+Test_N(q㎣, q㎣, q㎣, qmm3, qmm3);
+Test_N(q㎤, q㎤, q㎤, qcm3, qcm3);
+Test_N(q㎥, q㎥, q㎥, qm3, qm3);
+Test_N(q㎦, q㎦, q㎦, qkm3, qkm3);
+Test_N(q㎧, q㎧, q㎧, qm∕s, qm∕s);
+Test_N(q㎨, q㎨, q㎨, qm∕s2, qm∕s2);
+Test_N(q㎩, q㎩, q㎩, qPa, qPa);
+Test_N(q㎪, q㎪, q㎪, qkPa, qkPa);
+Test_N(q㎫, q㎫, q㎫, qMPa, qMPa);
+Test_N(q㎬, q㎬, q㎬, qGPa, qGPa);
+Test_N(q㎭, q㎭, q㎭, qrad, qrad);
+Test_N(q㎮, q㎮, q㎮, qrad∕s, qrad∕s);
+Test_N(q㎯, q㎯, q㎯, qrad∕s2, qrad∕s2);
+Test_N(q㎰, q㎰, q㎰, qps, qps);
+Test_N(q㎱, q㎱, q㎱, qns, qns);
+Test_N(q㎲, q㎲, q㎲, qμs, qμs);
+Test_N(q㎳, q㎳, q㎳, qms, qms);
+Test_N(q㎴, q㎴, q㎴, qpV, qpV);
+Test_N(q㎵, q㎵, q㎵, qnV, qnV);
+Test_N(q㎶, q㎶, q㎶, qμV, qμV);
+Test_N(q㎷, q㎷, q㎷, qmV, qmV);
+Test_N(q㎸, q㎸, q㎸, qkV, qkV);
+Test_N(q㎹, q㎹, q㎹, qMV, qMV);
+Test_N(q㎺, q㎺, q㎺, qpW, qpW);
+Test_N(q㎻, q㎻, q㎻, qnW, qnW);
+Test_N(q㎼, q㎼, q㎼, qμW, qμW);
+Test_N(q㎽, q㎽, q㎽, qmW, qmW);
+Test_N(q㎾, q㎾, q㎾, qkW, qkW);
+Test_N(q㎿, q㎿, q㎿, qMW, qMW);
+Test_N(q㏀, q㏀, q㏀, qkΩ, qkΩ);
+Test_N(q㏁, q㏁, q㏁, qMΩ, qMΩ);
+Test_N(q㏂, q㏂, q㏂, qa.m., qa.m.);
+Test_N(q㏃, q㏃, q㏃, qBq, qBq);
+Test_N(q㏄, q㏄, q㏄, qcc, qcc);
+Test_N(q㏅, q㏅, q㏅, qcd, qcd);
+Test_N(q㏆, q㏆, q㏆, qC∕kg, qC∕kg);
+Test_N(q㏇, q㏇, q㏇, qCo., qCo.);
+Test_N(q㏈, q㏈, q㏈, qdB, qdB);
+Test_N(q㏉, q㏉, q㏉, qGy, qGy);
+Test_N(q㏊, q㏊, q㏊, qha, qha);
+Test_N(q㏋, q㏋, q㏋, qHP, qHP);
+Test_N(q㏌, q㏌, q㏌, qin, qin);
+Test_N(q㏍, q㏍, q㏍, qKK, qKK);
+Test_N(q㏎, q㏎, q㏎, qKM, qKM);
+Test_N(q㏏, q㏏, q㏏, qkt, qkt);
+Test_N(q㏐, q㏐, q㏐, qlm, qlm);
+Test_N(q㏑, q㏑, q㏑, qln, qln);
+Test_N(q㏒, q㏒, q㏒, qlog, qlog);
+Test_N(q㏓, q㏓, q㏓, qlx, qlx);
+Test_N(q㏔, q㏔, q㏔, qmb, qmb);
+Test_N(q㏕, q㏕, q㏕, qmil, qmil);
+Test_N(q㏖, q㏖, q㏖, qmol, qmol);
+Test_N(q㏗, q㏗, q㏗, qPH, qPH);
+Test_N(q㏘, q㏘, q㏘, qp.m., qp.m.);
+Test_N(q㏙, q㏙, q㏙, qPPM, qPPM);
+Test_N(q㏚, q㏚, q㏚, qPR, qPR);
+Test_N(q㏛, q㏛, q㏛, qsr, qsr);
+Test_N(q㏜, q㏜, q㏜, qSv, qSv);
+Test_N(q㏝, q㏝, q㏝, qWb, qWb);
+Test_N(q㏞, q㏞, q㏞, qV∕m, qV∕m);
+Test_N(q㏟, q㏟, q㏟, qA∕m, qA∕m);
+Test_N(q㏠, q㏠, q㏠, q1日, q1日);
+Test_N(q㏡, q㏡, q㏡, q2日, q2日);
+Test_N(q㏢, q㏢, q㏢, q3日, q3日);
+Test_N(q㏣, q㏣, q㏣, q4日, q4日);
+Test_N(q㏤, q㏤, q㏤, q5日, q5日);
+Test_N(q㏥, q㏥, q㏥, q6日, q6日);
+Test_N(q㏦, q㏦, q㏦, q7日, q7日);
+Test_N(q㏧, q㏧, q㏧, q8日, q8日);
+Test_N(q㏨, q㏨, q㏨, q9日, q9日);
+Test_N(q㏩, q㏩, q㏩, q10日, q10日);
+Test_N(q㏪, q㏪, q㏪, q11日, q11日);
+Test_N(q㏫, q㏫, q㏫, q12日, q12日);
+Test_N(q㏬, q㏬, q㏬, q13日, q13日);
+Test_N(q㏭, q㏭, q㏭, q14日, q14日);
+Test_N(q㏮, q㏮, q㏮, q15日, q15日);
+Test_N(q㏯, q㏯, q㏯, q16日, q16日);
+Test_N(q㏰, q㏰, q㏰, q17日, q17日);
+Test_N(q㏱, q㏱, q㏱, q18日, q18日);
+Test_N(q㏲, q㏲, q㏲, q19日, q19日);
+Test_N(q㏳, q㏳, q㏳, q20日, q20日);
+Test_N(q㏴, q㏴, q㏴, q21日, q21日);
+Test_N(q㏵, q㏵, q㏵, q22日, q22日);
+Test_N(q㏶, q㏶, q㏶, q23日, q23日);
+Test_N(q㏷, q㏷, q㏷, q24日, q24日);
+Test_N(q㏸, q㏸, q㏸, q25日, q25日);
+Test_N(q㏹, q㏹, q㏹, q26日, q26日);
+Test_N(q㏺, q㏺, q㏺, q27日, q27日);
+Test_N(q㏻, q㏻, q㏻, q28日, q28日);
+Test_N(q㏼, q㏼, q㏼, q29日, q29日);
+Test_N(q㏽, q㏽, q㏽, q30日, q30日);
+Test_N(q㏾, q㏾, q㏾, q31日, q31日);
+Test_N(q㏿, q㏿, q㏿, qgal, qgal);
+Test_N(qꚜ, qꚜ, qꚜ, qъ, qъ);
+Test_N(qꚝ, qꚝ, qꚝ, qь, qь);
+Test_N(qꝰ, qꝰ, qꝰ, qꝯ, qꝯ);
+Test_N(qꟲ, qꟲ, qꟲ, qC, qC);
+Test_N(qꟳ, qꟳ, qꟳ, qF, qF);
+Test_N(qꟴ, qꟴ, qꟴ, qQ, qQ);
+Test_N(qꟸ, qꟸ, qꟸ, qĦ, qĦ);
+Test_N(qꟹ, qꟹ, qꟹ, qœ, qœ);
+Test_N(qꭜ, qꭜ, qꭜ, qꜧ, qꜧ);
+Test_N(qꭝ, qꭝ, qꭝ, qꬷ, qꬷ);
+Test_N(qꭞ, qꭞ, qꭞ, qɫ, qɫ);
+Test_N(qꭟ, qꭟ, qꭟ, qꭒ, qꭒ);
+Test_N(qꭩ, qꭩ, qꭩ, qʍ, qʍ);
+Test_N(q가, q가, q가, q가, q가);
+Test_N(q각, q각, q각, q각, q각);
+Test_N(q갂, q갂, q갂, q갂, q갂);
+Test_N(q갃, q갃, q갃, q갃, q갃);
+Test_N(q간, q간, q간, q간, q간);
+Test_N(q갅, q갅, q갅, q갅, q갅);
+Test_N(q갆, q갆, q갆, q갆, q갆);
+Test_N(q갇, q갇, q갇, q갇, q갇);
+Test_N(q갈, q갈, q갈, q갈, q갈);
+Test_N(q갉, q갉, q갉, q갉, q갉);
+Test_N(q갊, q갊, q갊, q갊, q갊);
+Test_N(q갋, q갋, q갋, q갋, q갋);
+Test_N(q갌, q갌, q갌, q갌, q갌);
+Test_N(q갍, q갍, q갍, q갍, q갍);
+Test_N(q갎, q갎, q갎, q갎, q갎);
+Test_N(q갏, q갏, q갏, q갏, q갏);
+Test_N(q감, q감, q감, q감, q감);
+Test_N(q갑, q갑, q갑, q갑, q갑);
+Test_N(q값, q값, q값, q값, q값);
+Test_N(q갓, q갓, q갓, q갓, q갓);
+Test_N(q갔, q갔, q갔, q갔, q갔);
+Test_N(q강, q강, q강, q강, q강);
+Test_N(q갖, q갖, q갖, q갖, q갖);
+Test_N(q갗, q갗, q갗, q갗, q갗);
+Test_N(q갘, q갘, q갘, q갘, q갘);
+Test_N(q같, q같, q같, q같, q같);
+Test_N(q갚, q갚, q갚, q갚, q갚);
+Test_N(q갛, q갛, q갛, q갛, q갛);
+Test_N(q개, q개, q개, q개, q개);
+Test_N(q객, q객, q객, q객, q객);
+Test_N(q갞, q갞, q갞, q갞, q갞);
+Test_N(q갟, q갟, q갟, q갟, q갟);
+Test_N(q갠, q갠, q갠, q갠, q갠);
+Test_N(q갡, q갡, q갡, q갡, q갡);
+Test_N(q갢, q갢, q갢, q갢, q갢);
+Test_N(q갣, q갣, q갣, q갣, q갣);
+Test_N(q갤, q갤, q갤, q갤, q갤);
+Test_N(q갥, q갥, q갥, q갥, q갥);
+Test_N(q갦, q갦, q갦, q갦, q갦);
+Test_N(q갧, q갧, q갧, q갧, q갧);
+Test_N(q갨, q갨, q갨, q갨, q갨);
+Test_N(q갩, q갩, q갩, q갩, q갩);
+Test_N(q갪, q갪, q갪, q갪, q갪);
+Test_N(q갫, q갫, q갫, q갫, q갫);
+Test_N(q갬, q갬, q갬, q갬, q갬);
+Test_N(q갭, q갭, q갭, q갭, q갭);
+Test_N(q갮, q갮, q갮, q갮, q갮);
+Test_N(q갯, q갯, q갯, q갯, q갯);
+Test_N(q갰, q갰, q갰, q갰, q갰);
+Test_N(q갱, q갱, q갱, q갱, q갱);
+Test_N(q갲, q갲, q갲, q갲, q갲);
+Test_N(q갳, q갳, q갳, q갳, q갳);
+Test_N(q갴, q갴, q갴, q갴, q갴);
+Test_N(q갵, q갵, q갵, q갵, q갵);
+Test_N(q갶, q갶, q갶, q갶, q갶);
+Test_N(q갷, q갷, q갷, q갷, q갷);
+Test_N(q갸, q갸, q갸, q갸, q갸);
+Test_N(q갹, q갹, q갹, q갹, q갹);
+Test_N(q갺, q갺, q갺, q갺, q갺);
+Test_N(q갻, q갻, q갻, q갻, q갻);
+Test_N(q갼, q갼, q갼, q갼, q갼);
+Test_N(q갽, q갽, q갽, q갽, q갽);
+Test_N(q갾, q갾, q갾, q갾, q갾);
+Test_N(q갿, q갿, q갿, q갿, q갿);
+Test_N(q걀, q걀, q걀, q걀, q걀);
+Test_N(q걁, q걁, q걁, q걁, q걁);
+Test_N(q걂, q걂, q걂, q걂, q걂);
+Test_N(q걃, q걃, q걃, q걃, q걃);
+Test_N(q걄, q걄, q걄, q걄, q걄);
+Test_N(q걅, q걅, q걅, q걅, q걅);
+Test_N(q걆, q걆, q걆, q걆, q걆);
+Test_N(q걇, q걇, q걇, q걇, q걇);
+Test_N(q걈, q걈, q걈, q걈, q걈);
+Test_N(q걉, q걉, q걉, q걉, q걉);
+Test_N(q걊, q걊, q걊, q걊, q걊);
+Test_N(q걋, q걋, q걋, q걋, q걋);
+Test_N(q걌, q걌, q걌, q걌, q걌);
+Test_N(q걍, q걍, q걍, q걍, q걍);
+Test_N(q걎, q걎, q걎, q걎, q걎);
+Test_N(q걏, q걏, q걏, q걏, q걏);
+Test_N(q걐, q걐, q걐, q걐, q걐);
+Test_N(q걑, q걑, q걑, q걑, q걑);
+Test_N(q걒, q걒, q걒, q걒, q걒);
+Test_N(q걓, q걓, q걓, q걓, q걓);
+Test_N(q걔, q걔, q걔, q걔, q걔);
+Test_N(q걕, q걕, q걕, q걕, q걕);
+Test_N(q걖, q걖, q걖, q걖, q걖);
+Test_N(q걗, q걗, q걗, q걗, q걗);
+Test_N(q걘, q걘, q걘, q걘, q걘);
+Test_N(q걙, q걙, q걙, q걙, q걙);
+Test_N(q걚, q걚, q걚, q걚, q걚);
+Test_N(q걛, q걛, q걛, q걛, q걛);
+Test_N(q걜, q걜, q걜, q걜, q걜);
+Test_N(q걝, q걝, q걝, q걝, q걝);
+Test_N(q걞, q걞, q걞, q걞, q걞);
+Test_N(q걟, q걟, q걟, q걟, q걟);
+Test_N(q걠, q걠, q걠, q걠, q걠);
+Test_N(q걡, q걡, q걡, q걡, q걡);
+Test_N(q걢, q걢, q걢, q걢, q걢);
+Test_N(q걣, q걣, q걣, q걣, q걣);
+Test_N(q걤, q걤, q걤, q걤, q걤);
+Test_N(q걥, q걥, q걥, q걥, q걥);
+Test_N(q걦, q걦, q걦, q걦, q걦);
+Test_N(q걧, q걧, q걧, q걧, q걧);
+Test_N(q걨, q걨, q걨, q걨, q걨);
+Test_N(q걩, q걩, q걩, q걩, q걩);
+Test_N(q걪, q걪, q걪, q걪, q걪);
+Test_N(q걫, q걫, q걫, q걫, q걫);
+Test_N(q걬, q걬, q걬, q걬, q걬);
+Test_N(q걭, q걭, q걭, q걭, q걭);
+Test_N(q걮, q걮, q걮, q걮, q걮);
+Test_N(q걯, q걯, q걯, q걯, q걯);
+Test_N(q거, q거, q거, q거, q거);
+Test_N(q걱, q걱, q걱, q걱, q걱);
+Test_N(q걲, q걲, q걲, q걲, q걲);
+Test_N(q걳, q걳, q걳, q걳, q걳);
+Test_N(q건, q건, q건, q건, q건);
+Test_N(q걵, q걵, q걵, q걵, q걵);
+Test_N(q걶, q걶, q걶, q걶, q걶);
+Test_N(q걷, q걷, q걷, q걷, q걷);
+Test_N(q걸, q걸, q걸, q걸, q걸);
+Test_N(q걹, q걹, q걹, q걹, q걹);
+Test_N(q걺, q걺, q걺, q걺, q걺);
+Test_N(q걻, q걻, q걻, q걻, q걻);
+Test_N(q걼, q걼, q걼, q걼, q걼);
+Test_N(q걽, q걽, q걽, q걽, q걽);
+Test_N(q걾, q걾, q걾, q걾, q걾);
+Test_N(q걿, q걿, q걿, q걿, q걿);
+Test_N(q검, q검, q검, q검, q검);
+Test_N(q겁, q겁, q겁, q겁, q겁);
+Test_N(q겂, q겂, q겂, q겂, q겂);
+Test_N(q것, q것, q것, q것, q것);
+Test_N(q겄, q겄, q겄, q겄, q겄);
+Test_N(q겅, q겅, q겅, q겅, q겅);
+Test_N(q겆, q겆, q겆, q겆, q겆);
+Test_N(q겇, q겇, q겇, q겇, q겇);
+Test_N(q겈, q겈, q겈, q겈, q겈);
+Test_N(q겉, q겉, q겉, q겉, q겉);
+Test_N(q겊, q겊, q겊, q겊, q겊);
+Test_N(q겋, q겋, q겋, q겋, q겋);
+Test_N(q게, q게, q게, q게, q게);
+Test_N(q겍, q겍, q겍, q겍, q겍);
+Test_N(q겎, q겎, q겎, q겎, q겎);
+Test_N(q겏, q겏, q겏, q겏, q겏);
+Test_N(q겐, q겐, q겐, q겐, q겐);
+Test_N(q겑, q겑, q겑, q겑, q겑);
+Test_N(q겒, q겒, q겒, q겒, q겒);
+Test_N(q겓, q겓, q겓, q겓, q겓);
+Test_N(q겔, q겔, q겔, q겔, q겔);
+Test_N(q겕, q겕, q겕, q겕, q겕);
+Test_N(q겖, q겖, q겖, q겖, q겖);
+Test_N(q겗, q겗, q겗, q겗, q겗);
+Test_N(q겘, q겘, q겘, q겘, q겘);
+Test_N(q겙, q겙, q겙, q겙, q겙);
+Test_N(q겚, q겚, q겚, q겚, q겚);
+Test_N(q겛, q겛, q겛, q겛, q겛);
+Test_N(q겜, q겜, q겜, q겜, q겜);
+Test_N(q겝, q겝, q겝, q겝, q겝);
+Test_N(q겞, q겞, q겞, q겞, q겞);
+Test_N(q겟, q겟, q겟, q겟, q겟);
+Test_N(q겠, q겠, q겠, q겠, q겠);
+Test_N(q겡, q겡, q겡, q겡, q겡);
+Test_N(q겢, q겢, q겢, q겢, q겢);
+Test_N(q겣, q겣, q겣, q겣, q겣);
+Test_N(q겤, q겤, q겤, q겤, q겤);
+Test_N(q겥, q겥, q겥, q겥, q겥);
+Test_N(q겦, q겦, q겦, q겦, q겦);
+Test_N(q겧, q겧, q겧, q겧, q겧);
+Test_N(q겨, q겨, q겨, q겨, q겨);
+Test_N(q격, q격, q격, q격, q격);
+Test_N(q겪, q겪, q겪, q겪, q겪);
+Test_N(q겫, q겫, q겫, q겫, q겫);
+Test_N(q견, q견, q견, q견, q견);
+Test_N(q겭, q겭, q겭, q겭, q겭);
+Test_N(q겮, q겮, q겮, q겮, q겮);
+Test_N(q겯, q겯, q겯, q겯, q겯);
+Test_N(q결, q결, q결, q결, q결);
+Test_N(q겱, q겱, q겱, q겱, q겱);
+Test_N(q겲, q겲, q겲, q겲, q겲);
+Test_N(q겳, q겳, q겳, q겳, q겳);
+Test_N(q겴, q겴, q겴, q겴, q겴);
+Test_N(q겵, q겵, q겵, q겵, q겵);
+Test_N(q겶, q겶, q겶, q겶, q겶);
+Test_N(q겷, q겷, q겷, q겷, q겷);
+Test_N(q겸, q겸, q겸, q겸, q겸);
+Test_N(q겹, q겹, q겹, q겹, q겹);
+Test_N(q겺, q겺, q겺, q겺, q겺);
+Test_N(q겻, q겻, q겻, q겻, q겻);
+Test_N(q겼, q겼, q겼, q겼, q겼);
+Test_N(q경, q경, q경, q경, q경);
+Test_N(q겾, q겾, q겾, q겾, q겾);
+Test_N(q겿, q겿, q겿, q겿, q겿);
+Test_N(q곀, q곀, q곀, q곀, q곀);
+Test_N(q곁, q곁, q곁, q곁, q곁);
+Test_N(q곂, q곂, q곂, q곂, q곂);
+Test_N(q곃, q곃, q곃, q곃, q곃);
+Test_N(q계, q계, q계, q계, q계);
+Test_N(q곅, q곅, q곅, q곅, q곅);
+Test_N(q곆, q곆, q곆, q곆, q곆);
+Test_N(q곇, q곇, q곇, q곇, q곇);
+Test_N(q곈, q곈, q곈, q곈, q곈);
+Test_N(q곉, q곉, q곉, q곉, q곉);
+Test_N(q곊, q곊, q곊, q곊, q곊);
+Test_N(q곋, q곋, q곋, q곋, q곋);
+Test_N(q곌, q곌, q곌, q곌, q곌);
+Test_N(q곍, q곍, q곍, q곍, q곍);
+Test_N(q곎, q곎, q곎, q곎, q곎);
+Test_N(q곏, q곏, q곏, q곏, q곏);
+Test_N(q곐, q곐, q곐, q곐, q곐);
+Test_N(q곑, q곑, q곑, q곑, q곑);
+Test_N(q곒, q곒, q곒, q곒, q곒);
+Test_N(q곓, q곓, q곓, q곓, q곓);
+Test_N(q곔, q곔, q곔, q곔, q곔);
+Test_N(q곕, q곕, q곕, q곕, q곕);
+Test_N(q곖, q곖, q곖, q곖, q곖);
+Test_N(q곗, q곗, q곗, q곗, q곗);
+Test_N(q곘, q곘, q곘, q곘, q곘);
+Test_N(q곙, q곙, q곙, q곙, q곙);
+Test_N(q곚, q곚, q곚, q곚, q곚);
+Test_N(q곛, q곛, q곛, q곛, q곛);
+Test_N(q곜, q곜, q곜, q곜, q곜);
+Test_N(q곝, q곝, q곝, q곝, q곝);
+Test_N(q곞, q곞, q곞, q곞, q곞);
+Test_N(q곟, q곟, q곟, q곟, q곟);
+Test_N(q고, q고, q고, q고, q고);
+Test_N(q곡, q곡, q곡, q곡, q곡);
+Test_N(q곢, q곢, q곢, q곢, q곢);
+Test_N(q곣, q곣, q곣, q곣, q곣);
+Test_N(q곤, q곤, q곤, q곤, q곤);
+Test_N(q곥, q곥, q곥, q곥, q곥);
+Test_N(q곦, q곦, q곦, q곦, q곦);
+Test_N(q곧, q곧, q곧, q곧, q곧);
+Test_N(q골, q골, q골, q골, q골);
+Test_N(q곩, q곩, q곩, q곩, q곩);
+Test_N(q곪, q곪, q곪, q곪, q곪);
+Test_N(q곫, q곫, q곫, q곫, q곫);
+Test_N(q곬, q곬, q곬, q곬, q곬);
+Test_N(q곭, q곭, q곭, q곭, q곭);
+Test_N(q곮, q곮, q곮, q곮, q곮);
+Test_N(q곯, q곯, q곯, q곯, q곯);
+Test_N(q곰, q곰, q곰, q곰, q곰);
+Test_N(q곱, q곱, q곱, q곱, q곱);
+Test_N(q곲, q곲, q곲, q곲, q곲);
+Test_N(q곳, q곳, q곳, q곳, q곳);
+Test_N(q곴, q곴, q곴, q곴, q곴);
+Test_N(q공, q공, q공, q공, q공);
+Test_N(q곶, q곶, q곶, q곶, q곶);
+Test_N(q곷, q곷, q곷, q곷, q곷);
+Test_N(q곸, q곸, q곸, q곸, q곸);
+Test_N(q곹, q곹, q곹, q곹, q곹);
+Test_N(q곺, q곺, q곺, q곺, q곺);
+Test_N(q곻, q곻, q곻, q곻, q곻);
+Test_N(q과, q과, q과, q과, q과);
+Test_N(q곽, q곽, q곽, q곽, q곽);
+Test_N(q곾, q곾, q곾, q곾, q곾);
+Test_N(q곿, q곿, q곿, q곿, q곿);
+Test_N(q관, q관, q관, q관, q관);
+Test_N(q괁, q괁, q괁, q괁, q괁);
+Test_N(q괂, q괂, q괂, q괂, q괂);
+Test_N(q괃, q괃, q괃, q괃, q괃);
+Test_N(q괄, q괄, q괄, q괄, q괄);
+Test_N(q괅, q괅, q괅, q괅, q괅);
+Test_N(q괆, q괆, q괆, q괆, q괆);
+Test_N(q괇, q괇, q괇, q괇, q괇);
+Test_N(q괈, q괈, q괈, q괈, q괈);
+Test_N(q괉, q괉, q괉, q괉, q괉);
+Test_N(q괊, q괊, q괊, q괊, q괊);
+Test_N(q괋, q괋, q괋, q괋, q괋);
+Test_N(q괌, q괌, q괌, q괌, q괌);
+Test_N(q괍, q괍, q괍, q괍, q괍);
+Test_N(q괎, q괎, q괎, q괎, q괎);
+Test_N(q괏, q괏, q괏, q괏, q괏);
+Test_N(q괐, q괐, q괐, q괐, q괐);
+Test_N(q광, q광, q광, q광, q광);
+Test_N(q괒, q괒, q괒, q괒, q괒);
+Test_N(q괓, q괓, q괓, q괓, q괓);
+Test_N(q괔, q괔, q괔, q괔, q괔);
+Test_N(q괕, q괕, q괕, q괕, q괕);
+Test_N(q괖, q괖, q괖, q괖, q괖);
+Test_N(q괗, q괗, q괗, q괗, q괗);
+Test_N(q괘, q괘, q괘, q괘, q괘);
+Test_N(q괙, q괙, q괙, q괙, q괙);
+Test_N(q괚, q괚, q괚, q괚, q괚);
+Test_N(q괛, q괛, q괛, q괛, q괛);
+Test_N(q괜, q괜, q괜, q괜, q괜);
+Test_N(q괝, q괝, q괝, q괝, q괝);
+Test_N(q괞, q괞, q괞, q괞, q괞);
+Test_N(q괟, q괟, q괟, q괟, q괟);
+Test_N(q괠, q괠, q괠, q괠, q괠);
+Test_N(q괡, q괡, q괡, q괡, q괡);
+Test_N(q괢, q괢, q괢, q괢, q괢);
+Test_N(q괣, q괣, q괣, q괣, q괣);
+Test_N(q괤, q괤, q괤, q괤, q괤);
+Test_N(q괥, q괥, q괥, q괥, q괥);
+Test_N(q괦, q괦, q괦, q괦, q괦);
+Test_N(q괧, q괧, q괧, q괧, q괧);
+Test_N(q괨, q괨, q괨, q괨, q괨);
+Test_N(q괩, q괩, q괩, q괩, q괩);
+Test_N(q괪, q괪, q괪, q괪, q괪);
+Test_N(q괫, q괫, q괫, q괫, q괫);
+Test_N(q괬, q괬, q괬, q괬, q괬);
+Test_N(q괭, q괭, q괭, q괭, q괭);
+Test_N(q괮, q괮, q괮, q괮, q괮);
+Test_N(q괯, q괯, q괯, q괯, q괯);
+Test_N(q괰, q괰, q괰, q괰, q괰);
+Test_N(q괱, q괱, q괱, q괱, q괱);
+Test_N(q괲, q괲, q괲, q괲, q괲);
+Test_N(q괳, q괳, q괳, q괳, q괳);
+Test_N(q괴, q괴, q괴, q괴, q괴);
+Test_N(q괵, q괵, q괵, q괵, q괵);
+Test_N(q괶, q괶, q괶, q괶, q괶);
+Test_N(q괷, q괷, q괷, q괷, q괷);
+Test_N(q괸, q괸, q괸, q괸, q괸);
+Test_N(q괹, q괹, q괹, q괹, q괹);
+Test_N(q괺, q괺, q괺, q괺, q괺);
+Test_N(q괻, q괻, q괻, q괻, q괻);
+Test_N(q괼, q괼, q괼, q괼, q괼);
+Test_N(q괽, q괽, q괽, q괽, q괽);
+Test_N(q괾, q괾, q괾, q괾, q괾);
+Test_N(q괿, q괿, q괿, q괿, q괿);
+Test_N(q굀, q굀, q굀, q굀, q굀);
+Test_N(q굁, q굁, q굁, q굁, q굁);
+Test_N(q굂, q굂, q굂, q굂, q굂);
+Test_N(q굃, q굃, q굃, q굃, q굃);
+Test_N(q굄, q굄, q굄, q굄, q굄);
+Test_N(q굅, q굅, q굅, q굅, q굅);
+Test_N(q굆, q굆, q굆, q굆, q굆);
+Test_N(q굇, q굇, q굇, q굇, q굇);
+Test_N(q굈, q굈, q굈, q굈, q굈);
+Test_N(q굉, q굉, q굉, q굉, q굉);
+Test_N(q굊, q굊, q굊, q굊, q굊);
+Test_N(q굋, q굋, q굋, q굋, q굋);
+Test_N(q굌, q굌, q굌, q굌, q굌);
+Test_N(q굍, q굍, q굍, q굍, q굍);
+Test_N(q굎, q굎, q굎, q굎, q굎);
+Test_N(q굏, q굏, q굏, q굏, q굏);
+Test_N(q교, q교, q교, q교, q교);
+Test_N(q굑, q굑, q굑, q굑, q굑);
+Test_N(q굒, q굒, q굒, q굒, q굒);
+Test_N(q굓, q굓, q굓, q굓, q굓);
+Test_N(q굔, q굔, q굔, q굔, q굔);
+Test_N(q굕, q굕, q굕, q굕, q굕);
+Test_N(q굖, q굖, q굖, q굖, q굖);
+Test_N(q굗, q굗, q굗, q굗, q굗);
+Test_N(q굘, q굘, q굘, q굘, q굘);
+Test_N(q굙, q굙, q굙, q굙, q굙);
+Test_N(q굚, q굚, q굚, q굚, q굚);
+Test_N(q굛, q굛, q굛, q굛, q굛);
+Test_N(q굜, q굜, q굜, q굜, q굜);
+Test_N(q굝, q굝, q굝, q굝, q굝);
+Test_N(q굞, q굞, q굞, q굞, q굞);
+Test_N(q굟, q굟, q굟, q굟, q굟);
+Test_N(q굠, q굠, q굠, q굠, q굠);
+Test_N(q굡, q굡, q굡, q굡, q굡);
+Test_N(q굢, q굢, q굢, q굢, q굢);
+Test_N(q굣, q굣, q굣, q굣, q굣);
+Test_N(q굤, q굤, q굤, q굤, q굤);
+Test_N(q굥, q굥, q굥, q굥, q굥);
+Test_N(q굦, q굦, q굦, q굦, q굦);
+Test_N(q굧, q굧, q굧, q굧, q굧);
+Test_N(q굨, q굨, q굨, q굨, q굨);
+Test_N(q굩, q굩, q굩, q굩, q굩);
+Test_N(q굪, q굪, q굪, q굪, q굪);
+Test_N(q굫, q굫, q굫, q굫, q굫);
+Test_N(q구, q구, q구, q구, q구);
+Test_N(q국, q국, q국, q국, q국);
+Test_N(q굮, q굮, q굮, q굮, q굮);
+Test_N(q굯, q굯, q굯, q굯, q굯);
+Test_N(q군, q군, q군, q군, q군);
+Test_N(q굱, q굱, q굱, q굱, q굱);
+Test_N(q굲, q굲, q굲, q굲, q굲);
+Test_N(q굳, q굳, q굳, q굳, q굳);
+Test_N(q굴, q굴, q굴, q굴, q굴);
+Test_N(q굵, q굵, q굵, q굵, q굵);
+Test_N(q굶, q굶, q굶, q굶, q굶);
+Test_N(q굷, q굷, q굷, q굷, q굷);
+Test_N(q굸, q굸, q굸, q굸, q굸);
+Test_N(q굹, q굹, q굹, q굹, q굹);
+Test_N(q굺, q굺, q굺, q굺, q굺);
+Test_N(q굻, q굻, q굻, q굻, q굻);
+Test_N(q굼, q굼, q굼, q굼, q굼);
+Test_N(q굽, q굽, q굽, q굽, q굽);
+Test_N(q굾, q굾, q굾, q굾, q굾);
+Test_N(q굿, q굿, q굿, q굿, q굿);
+Test_N(q궀, q궀, q궀, q궀, q궀);
+Test_N(q궁, q궁, q궁, q궁, q궁);
+Test_N(q궂, q궂, q궂, q궂, q궂);
+Test_N(q궃, q궃, q궃, q궃, q궃);
+Test_N(q궄, q궄, q궄, q궄, q궄);
+Test_N(q궅, q궅, q궅, q궅, q궅);
+Test_N(q궆, q궆, q궆, q궆, q궆);
+Test_N(q궇, q궇, q궇, q궇, q궇);
+Test_N(q궈, q궈, q궈, q궈, q궈);
+Test_N(q궉, q궉, q궉, q궉, q궉);
+Test_N(q궊, q궊, q궊, q궊, q궊);
+Test_N(q궋, q궋, q궋, q궋, q궋);
+Test_N(q권, q권, q권, q권, q권);
+Test_N(q궍, q궍, q궍, q궍, q궍);
+Test_N(q궎, q궎, q궎, q궎, q궎);
+Test_N(q궏, q궏, q궏, q궏, q궏);
+Test_N(q궐, q궐, q궐, q궐, q궐);
+Test_N(q궑, q궑, q궑, q궑, q궑);
+Test_N(q궒, q궒, q궒, q궒, q궒);
+Test_N(q궓, q궓, q궓, q궓, q궓);
+Test_N(q궔, q궔, q궔, q궔, q궔);
+Test_N(q궕, q궕, q궕, q궕, q궕);
+Test_N(q궖, q궖, q궖, q궖, q궖);
+Test_N(q궗, q궗, q궗, q궗, q궗);
+Test_N(q궘, q궘, q궘, q궘, q궘);
+Test_N(q궙, q궙, q궙, q궙, q궙);
+Test_N(q궚, q궚, q궚, q궚, q궚);
+Test_N(q궛, q궛, q궛, q궛, q궛);
+Test_N(q궜, q궜, q궜, q궜, q궜);
+Test_N(q궝, q궝, q궝, q궝, q궝);
+Test_N(q궞, q궞, q궞, q궞, q궞);
+Test_N(q궟, q궟, q궟, q궟, q궟);
+Test_N(q궠, q궠, q궠, q궠, q궠);
+Test_N(q궡, q궡, q궡, q궡, q궡);
+Test_N(q궢, q궢, q궢, q궢, q궢);
+Test_N(q궣, q궣, q궣, q궣, q궣);
+Test_N(q궤, q궤, q궤, q궤, q궤);
+Test_N(q궥, q궥, q궥, q궥, q궥);
+Test_N(q궦, q궦, q궦, q궦, q궦);
+Test_N(q궧, q궧, q궧, q궧, q궧);
+Test_N(q궨, q궨, q궨, q궨, q궨);
+Test_N(q궩, q궩, q궩, q궩, q궩);
+Test_N(q궪, q궪, q궪, q궪, q궪);
+Test_N(q궫, q궫, q궫, q궫, q궫);
+Test_N(q궬, q궬, q궬, q궬, q궬);
+Test_N(q궭, q궭, q궭, q궭, q궭);
+Test_N(q궮, q궮, q궮, q궮, q궮);
+Test_N(q궯, q궯, q궯, q궯, q궯);
+Test_N(q궰, q궰, q궰, q궰, q궰);
+Test_N(q궱, q궱, q궱, q궱, q궱);
+Test_N(q궲, q궲, q궲, q궲, q궲);
+Test_N(q궳, q궳, q궳, q궳, q궳);
+Test_N(q궴, q궴, q궴, q궴, q궴);
+Test_N(q궵, q궵, q궵, q궵, q궵);
+Test_N(q궶, q궶, q궶, q궶, q궶);
+Test_N(q궷, q궷, q궷, q궷, q궷);
+Test_N(q궸, q궸, q궸, q궸, q궸);
+Test_N(q궹, q궹, q궹, q궹, q궹);
+Test_N(q궺, q궺, q궺, q궺, q궺);
+Test_N(q궻, q궻, q궻, q궻, q궻);
+Test_N(q궼, q궼, q궼, q궼, q궼);
+Test_N(q궽, q궽, q궽, q궽, q궽);
+Test_N(q궾, q궾, q궾, q궾, q궾);
+Test_N(q궿, q궿, q궿, q궿, q궿);
+Test_N(q귀, q귀, q귀, q귀, q귀);
+Test_N(q귁, q귁, q귁, q귁, q귁);
+Test_N(q귂, q귂, q귂, q귂, q귂);
+Test_N(q귃, q귃, q귃, q귃, q귃);
+Test_N(q귄, q귄, q귄, q귄, q귄);
+Test_N(q귅, q귅, q귅, q귅, q귅);
+Test_N(q귆, q귆, q귆, q귆, q귆);
+Test_N(q귇, q귇, q귇, q귇, q귇);
+Test_N(q귈, q귈, q귈, q귈, q귈);
+Test_N(q귉, q귉, q귉, q귉, q귉);
+Test_N(q귊, q귊, q귊, q귊, q귊);
+Test_N(q귋, q귋, q귋, q귋, q귋);
+Test_N(q귌, q귌, q귌, q귌, q귌);
+Test_N(q귍, q귍, q귍, q귍, q귍);
+Test_N(q귎, q귎, q귎, q귎, q귎);
+Test_N(q귏, q귏, q귏, q귏, q귏);
+Test_N(q귐, q귐, q귐, q귐, q귐);
+Test_N(q귑, q귑, q귑, q귑, q귑);
+Test_N(q귒, q귒, q귒, q귒, q귒);
+Test_N(q귓, q귓, q귓, q귓, q귓);
+Test_N(q귔, q귔, q귔, q귔, q귔);
+Test_N(q귕, q귕, q귕, q귕, q귕);
+Test_N(q귖, q귖, q귖, q귖, q귖);
+Test_N(q귗, q귗, q귗, q귗, q귗);
+Test_N(q귘, q귘, q귘, q귘, q귘);
+Test_N(q귙, q귙, q귙, q귙, q귙);
+Test_N(q귚, q귚, q귚, q귚, q귚);
+Test_N(q귛, q귛, q귛, q귛, q귛);
+Test_N(q규, q규, q규, q규, q규);
+Test_N(q귝, q귝, q귝, q귝, q귝);
+Test_N(q귞, q귞, q귞, q귞, q귞);
+Test_N(q귟, q귟, q귟, q귟, q귟);
+Test_N(q균, q균, q균, q균, q균);
+Test_N(q귡, q귡, q귡, q귡, q귡);
+Test_N(q귢, q귢, q귢, q귢, q귢);
+Test_N(q귣, q귣, q귣, q귣, q귣);
+Test_N(q귤, q귤, q귤, q귤, q귤);
+Test_N(q귥, q귥, q귥, q귥, q귥);
+Test_N(q귦, q귦, q귦, q귦, q귦);
+Test_N(q귧, q귧, q귧, q귧, q귧);
+Test_N(q귨, q귨, q귨, q귨, q귨);
+Test_N(q귩, q귩, q귩, q귩, q귩);
+Test_N(q귪, q귪, q귪, q귪, q귪);
+Test_N(q귫, q귫, q귫, q귫, q귫);
+Test_N(q귬, q귬, q귬, q귬, q귬);
+Test_N(q귭, q귭, q귭, q귭, q귭);
+Test_N(q귮, q귮, q귮, q귮, q귮);
+Test_N(q귯, q귯, q귯, q귯, q귯);
+Test_N(q귰, q귰, q귰, q귰, q귰);
+Test_N(q귱, q귱, q귱, q귱, q귱);
+Test_N(q귲, q귲, q귲, q귲, q귲);
+Test_N(q귳, q귳, q귳, q귳, q귳);
+Test_N(q귴, q귴, q귴, q귴, q귴);
+Test_N(q귵, q귵, q귵, q귵, q귵);
+Test_N(q귶, q귶, q귶, q귶, q귶);
+Test_N(q귷, q귷, q귷, q귷, q귷);
+Test_N(q그, q그, q그, q그, q그);
+Test_N(q극, q극, q극, q극, q극);
+Test_N(q귺, q귺, q귺, q귺, q귺);
+Test_N(q귻, q귻, q귻, q귻, q귻);
+Test_N(q근, q근, q근, q근, q근);
+Test_N(q귽, q귽, q귽, q귽, q귽);
+Test_N(q귾, q귾, q귾, q귾, q귾);
+Test_N(q귿, q귿, q귿, q귿, q귿);
+Test_N(q글, q글, q글, q글, q글);
+Test_N(q긁, q긁, q긁, q긁, q긁);
+Test_N(q긂, q긂, q긂, q긂, q긂);
+Test_N(q긃, q긃, q긃, q긃, q긃);
+Test_N(q긄, q긄, q긄, q긄, q긄);
+Test_N(q긅, q긅, q긅, q긅, q긅);
+Test_N(q긆, q긆, q긆, q긆, q긆);
+Test_N(q긇, q긇, q긇, q긇, q긇);
+Test_N(q금, q금, q금, q금, q금);
+Test_N(q급, q급, q급, q급, q급);
+Test_N(q긊, q긊, q긊, q긊, q긊);
+Test_N(q긋, q긋, q긋, q긋, q긋);
+Test_N(q긌, q긌, q긌, q긌, q긌);
+Test_N(q긍, q긍, q긍, q긍, q긍);
+Test_N(q긎, q긎, q긎, q긎, q긎);
+Test_N(q긏, q긏, q긏, q긏, q긏);
+Test_N(q긐, q긐, q긐, q긐, q긐);
+Test_N(q긑, q긑, q긑, q긑, q긑);
+Test_N(q긒, q긒, q긒, q긒, q긒);
+Test_N(q긓, q긓, q긓, q긓, q긓);
+Test_N(q긔, q긔, q긔, q긔, q긔);
+Test_N(q긕, q긕, q긕, q긕, q긕);
+Test_N(q긖, q긖, q긖, q긖, q긖);
+Test_N(q긗, q긗, q긗, q긗, q긗);
+Test_N(q긘, q긘, q긘, q긘, q긘);
+Test_N(q긙, q긙, q긙, q긙, q긙);
+Test_N(q긚, q긚, q긚, q긚, q긚);
+Test_N(q긛, q긛, q긛, q긛, q긛);
+Test_N(q긜, q긜, q긜, q긜, q긜);
+Test_N(q긝, q긝, q긝, q긝, q긝);
+Test_N(q긞, q긞, q긞, q긞, q긞);
+Test_N(q긟, q긟, q긟, q긟, q긟);
+Test_N(q긠, q긠, q긠, q긠, q긠);
+Test_N(q긡, q긡, q긡, q긡, q긡);
+Test_N(q긢, q긢, q긢, q긢, q긢);
+Test_N(q긣, q긣, q긣, q긣, q긣);
+Test_N(q긤, q긤, q긤, q긤, q긤);
+Test_N(q긥, q긥, q긥, q긥, q긥);
+Test_N(q긦, q긦, q긦, q긦, q긦);
+Test_N(q긧, q긧, q긧, q긧, q긧);
+Test_N(q긨, q긨, q긨, q긨, q긨);
+Test_N(q긩, q긩, q긩, q긩, q긩);
+Test_N(q긪, q긪, q긪, q긪, q긪);
+Test_N(q긫, q긫, q긫, q긫, q긫);
+Test_N(q긬, q긬, q긬, q긬, q긬);
+Test_N(q긭, q긭, q긭, q긭, q긭);
+Test_N(q긮, q긮, q긮, q긮, q긮);
+Test_N(q긯, q긯, q긯, q긯, q긯);
+Test_N(q기, q기, q기, q기, q기);
+Test_N(q긱, q긱, q긱, q긱, q긱);
+Test_N(q긲, q긲, q긲, q긲, q긲);
+Test_N(q긳, q긳, q긳, q긳, q긳);
+Test_N(q긴, q긴, q긴, q긴, q긴);
+Test_N(q긵, q긵, q긵, q긵, q긵);
+Test_N(q긶, q긶, q긶, q긶, q긶);
+Test_N(q긷, q긷, q긷, q긷, q긷);
+Test_N(q길, q길, q길, q길, q길);
+Test_N(q긹, q긹, q긹, q긹, q긹);
+Test_N(q긺, q긺, q긺, q긺, q긺);
+Test_N(q긻, q긻, q긻, q긻, q긻);
+Test_N(q긼, q긼, q긼, q긼, q긼);
+Test_N(q긽, q긽, q긽, q긽, q긽);
+Test_N(q긾, q긾, q긾, q긾, q긾);
+Test_N(q긿, q긿, q긿, q긿, q긿);
+Test_N(q김, q김, q김, q김, q김);
+Test_N(q깁, q깁, q깁, q깁, q깁);
+Test_N(q깂, q깂, q깂, q깂, q깂);
+Test_N(q깃, q깃, q깃, q깃, q깃);
+Test_N(q깄, q깄, q깄, q깄, q깄);
+Test_N(q깅, q깅, q깅, q깅, q깅);
+Test_N(q깆, q깆, q깆, q깆, q깆);
+Test_N(q깇, q깇, q깇, q깇, q깇);
+Test_N(q깈, q깈, q깈, q깈, q깈);
+Test_N(q깉, q깉, q깉, q깉, q깉);
+Test_N(q깊, q깊, q깊, q깊, q깊);
+Test_N(q깋, q깋, q깋, q깋, q깋);
+Test_N(q까, q까, q까, q까, q까);
+Test_N(q깍, q깍, q깍, q깍, q깍);
+Test_N(q깎, q깎, q깎, q깎, q깎);
+Test_N(q깏, q깏, q깏, q깏, q깏);
+Test_N(q깐, q깐, q깐, q깐, q깐);
+Test_N(q깑, q깑, q깑, q깑, q깑);
+Test_N(q깒, q깒, q깒, q깒, q깒);
+Test_N(q깓, q깓, q깓, q깓, q깓);
+Test_N(q깔, q깔, q깔, q깔, q깔);
+Test_N(q깕, q깕, q깕, q깕, q깕);
+Test_N(q깖, q깖, q깖, q깖, q깖);
+Test_N(q깗, q깗, q깗, q깗, q깗);
+Test_N(q깘, q깘, q깘, q깘, q깘);
+Test_N(q깙, q깙, q깙, q깙, q깙);
+Test_N(q깚, q깚, q깚, q깚, q깚);
+Test_N(q깛, q깛, q깛, q깛, q깛);
+Test_N(q깜, q깜, q깜, q깜, q깜);
+Test_N(q깝, q깝, q깝, q깝, q깝);
+Test_N(q깞, q깞, q깞, q깞, q깞);
+Test_N(q깟, q깟, q깟, q깟, q깟);
+Test_N(q깠, q깠, q깠, q깠, q깠);
+Test_N(q깡, q깡, q깡, q깡, q깡);
+Test_N(q깢, q깢, q깢, q깢, q깢);
+Test_N(q깣, q깣, q깣, q깣, q깣);
+Test_N(q깤, q깤, q깤, q깤, q깤);
+Test_N(q깥, q깥, q깥, q깥, q깥);
+Test_N(q깦, q깦, q깦, q깦, q깦);
+Test_N(q깧, q깧, q깧, q깧, q깧);
+Test_N(q깨, q깨, q깨, q깨, q깨);
+Test_N(q깩, q깩, q깩, q깩, q깩);
+Test_N(q깪, q깪, q깪, q깪, q깪);
+Test_N(q깫, q깫, q깫, q깫, q깫);
+Test_N(q깬, q깬, q깬, q깬, q깬);
+Test_N(q깭, q깭, q깭, q깭, q깭);
+Test_N(q깮, q깮, q깮, q깮, q깮);
+Test_N(q깯, q깯, q깯, q깯, q깯);
+Test_N(q깰, q깰, q깰, q깰, q깰);
+Test_N(q깱, q깱, q깱, q깱, q깱);
+Test_N(q깲, q깲, q깲, q깲, q깲);
+Test_N(q깳, q깳, q깳, q깳, q깳);
+Test_N(q깴, q깴, q깴, q깴, q깴);
+Test_N(q깵, q깵, q깵, q깵, q깵);
+Test_N(q깶, q깶, q깶, q깶, q깶);
+Test_N(q깷, q깷, q깷, q깷, q깷);
+Test_N(q깸, q깸, q깸, q깸, q깸);
+Test_N(q깹, q깹, q깹, q깹, q깹);
+Test_N(q깺, q깺, q깺, q깺, q깺);
+Test_N(q깻, q깻, q깻, q깻, q깻);
+Test_N(q깼, q깼, q깼, q깼, q깼);
+Test_N(q깽, q깽, q깽, q깽, q깽);
+Test_N(q깾, q깾, q깾, q깾, q깾);
+Test_N(q깿, q깿, q깿, q깿, q깿);
+Test_N(q꺀, q꺀, q꺀, q꺀, q꺀);
+Test_N(q꺁, q꺁, q꺁, q꺁, q꺁);
+Test_N(q꺂, q꺂, q꺂, q꺂, q꺂);
+Test_N(q꺃, q꺃, q꺃, q꺃, q꺃);
+Test_N(q꺄, q꺄, q꺄, q꺄, q꺄);
+Test_N(q꺅, q꺅, q꺅, q꺅, q꺅);
+Test_N(q꺆, q꺆, q꺆, q꺆, q꺆);
+Test_N(q꺇, q꺇, q꺇, q꺇, q꺇);
+Test_N(q꺈, q꺈, q꺈, q꺈, q꺈);
+Test_N(q꺉, q꺉, q꺉, q꺉, q꺉);
+Test_N(q꺊, q꺊, q꺊, q꺊, q꺊);
+Test_N(q꺋, q꺋, q꺋, q꺋, q꺋);
+Test_N(q꺌, q꺌, q꺌, q꺌, q꺌);
+Test_N(q꺍, q꺍, q꺍, q꺍, q꺍);
+Test_N(q꺎, q꺎, q꺎, q꺎, q꺎);
+Test_N(q꺏, q꺏, q꺏, q꺏, q꺏);
+Test_N(q꺐, q꺐, q꺐, q꺐, q꺐);
+Test_N(q꺑, q꺑, q꺑, q꺑, q꺑);
+Test_N(q꺒, q꺒, q꺒, q꺒, q꺒);
+Test_N(q꺓, q꺓, q꺓, q꺓, q꺓);
+Test_N(q꺔, q꺔, q꺔, q꺔, q꺔);
+Test_N(q꺕, q꺕, q꺕, q꺕, q꺕);
+Test_N(q꺖, q꺖, q꺖, q꺖, q꺖);
+Test_N(q꺗, q꺗, q꺗, q꺗, q꺗);
+Test_N(q꺘, q꺘, q꺘, q꺘, q꺘);
+Test_N(q꺙, q꺙, q꺙, q꺙, q꺙);
+Test_N(q꺚, q꺚, q꺚, q꺚, q꺚);
+Test_N(q꺛, q꺛, q꺛, q꺛, q꺛);
+Test_N(q꺜, q꺜, q꺜, q꺜, q꺜);
+Test_N(q꺝, q꺝, q꺝, q꺝, q꺝);
+Test_N(q꺞, q꺞, q꺞, q꺞, q꺞);
+Test_N(q꺟, q꺟, q꺟, q꺟, q꺟);
+Test_N(q꺠, q꺠, q꺠, q꺠, q꺠);
+Test_N(q꺡, q꺡, q꺡, q꺡, q꺡);
+Test_N(q꺢, q꺢, q꺢, q꺢, q꺢);
+Test_N(q꺣, q꺣, q꺣, q꺣, q꺣);
+Test_N(q꺤, q꺤, q꺤, q꺤, q꺤);
+Test_N(q꺥, q꺥, q꺥, q꺥, q꺥);
+Test_N(q꺦, q꺦, q꺦, q꺦, q꺦);
+Test_N(q꺧, q꺧, q꺧, q꺧, q꺧);
+Test_N(q꺨, q꺨, q꺨, q꺨, q꺨);
+Test_N(q꺩, q꺩, q꺩, q꺩, q꺩);
+Test_N(q꺪, q꺪, q꺪, q꺪, q꺪);
+Test_N(q꺫, q꺫, q꺫, q꺫, q꺫);
+Test_N(q꺬, q꺬, q꺬, q꺬, q꺬);
+Test_N(q꺭, q꺭, q꺭, q꺭, q꺭);
+Test_N(q꺮, q꺮, q꺮, q꺮, q꺮);
+Test_N(q꺯, q꺯, q꺯, q꺯, q꺯);
+Test_N(q꺰, q꺰, q꺰, q꺰, q꺰);
+Test_N(q꺱, q꺱, q꺱, q꺱, q꺱);
+Test_N(q꺲, q꺲, q꺲, q꺲, q꺲);
+Test_N(q꺳, q꺳, q꺳, q꺳, q꺳);
+Test_N(q꺴, q꺴, q꺴, q꺴, q꺴);
+Test_N(q꺵, q꺵, q꺵, q꺵, q꺵);
+Test_N(q꺶, q꺶, q꺶, q꺶, q꺶);
+Test_N(q꺷, q꺷, q꺷, q꺷, q꺷);
+Test_N(q꺸, q꺸, q꺸, q꺸, q꺸);
+Test_N(q꺹, q꺹, q꺹, q꺹, q꺹);
+Test_N(q꺺, q꺺, q꺺, q꺺, q꺺);
+Test_N(q꺻, q꺻, q꺻, q꺻, q꺻);
+Test_N(q꺼, q꺼, q꺼, q꺼, q꺼);
+Test_N(q꺽, q꺽, q꺽, q꺽, q꺽);
+Test_N(q꺾, q꺾, q꺾, q꺾, q꺾);
+Test_N(q꺿, q꺿, q꺿, q꺿, q꺿);
+Test_N(q껀, q껀, q껀, q껀, q껀);
+Test_N(q껁, q껁, q껁, q껁, q껁);
+Test_N(q껂, q껂, q껂, q껂, q껂);
+Test_N(q껃, q껃, q껃, q껃, q껃);
+Test_N(q껄, q껄, q껄, q껄, q껄);
+Test_N(q껅, q껅, q껅, q껅, q껅);
+Test_N(q껆, q껆, q껆, q껆, q껆);
+Test_N(q껇, q껇, q껇, q껇, q껇);
+Test_N(q껈, q껈, q껈, q껈, q껈);
+Test_N(q껉, q껉, q껉, q껉, q껉);
+Test_N(q껊, q껊, q껊, q껊, q껊);
+Test_N(q껋, q껋, q껋, q껋, q껋);
+Test_N(q껌, q껌, q껌, q껌, q껌);
+Test_N(q껍, q껍, q껍, q껍, q껍);
+Test_N(q껎, q껎, q껎, q껎, q껎);
+Test_N(q껏, q껏, q껏, q껏, q껏);
+Test_N(q껐, q껐, q껐, q껐, q껐);
+Test_N(q껑, q껑, q껑, q껑, q껑);
+Test_N(q껒, q껒, q껒, q껒, q껒);
+Test_N(q껓, q껓, q껓, q껓, q껓);
+Test_N(q껔, q껔, q껔, q껔, q껔);
+Test_N(q껕, q껕, q껕, q껕, q껕);
+Test_N(q껖, q껖, q껖, q껖, q껖);
+Test_N(q껗, q껗, q껗, q껗, q껗);
+Test_N(q께, q께, q께, q께, q께);
+Test_N(q껙, q껙, q껙, q껙, q껙);
+Test_N(q껚, q껚, q껚, q껚, q껚);
+Test_N(q껛, q껛, q껛, q껛, q껛);
+Test_N(q껜, q껜, q껜, q껜, q껜);
+Test_N(q껝, q껝, q껝, q껝, q껝);
+Test_N(q껞, q껞, q껞, q껞, q껞);
+Test_N(q껟, q껟, q껟, q껟, q껟);
+Test_N(q껠, q껠, q껠, q껠, q껠);
+Test_N(q껡, q껡, q껡, q껡, q껡);
+Test_N(q껢, q껢, q껢, q껢, q껢);
+Test_N(q껣, q껣, q껣, q껣, q껣);
+Test_N(q껤, q껤, q껤, q껤, q껤);
+Test_N(q껥, q껥, q껥, q껥, q껥);
+Test_N(q껦, q껦, q껦, q껦, q껦);
+Test_N(q껧, q껧, q껧, q껧, q껧);
+Test_N(q껨, q껨, q껨, q껨, q껨);
+Test_N(q껩, q껩, q껩, q껩, q껩);
+Test_N(q껪, q껪, q껪, q껪, q껪);
+Test_N(q껫, q껫, q껫, q껫, q껫);
+Test_N(q껬, q껬, q껬, q껬, q껬);
+Test_N(q껭, q껭, q껭, q껭, q껭);
+Test_N(q껮, q껮, q껮, q껮, q껮);
+Test_N(q껯, q껯, q껯, q껯, q껯);
+Test_N(q껰, q껰, q껰, q껰, q껰);
+Test_N(q껱, q껱, q껱, q껱, q껱);
+Test_N(q껲, q껲, q껲, q껲, q껲);
+Test_N(q껳, q껳, q껳, q껳, q껳);
+Test_N(q껴, q껴, q껴, q껴, q껴);
+Test_N(q껵, q껵, q껵, q껵, q껵);
+Test_N(q껶, q껶, q껶, q껶, q껶);
+Test_N(q껷, q껷, q껷, q껷, q껷);
+Test_N(q껸, q껸, q껸, q껸, q껸);
+Test_N(q껹, q껹, q껹, q껹, q껹);
+Test_N(q껺, q껺, q껺, q껺, q껺);
+Test_N(q껻, q껻, q껻, q껻, q껻);
+Test_N(q껼, q껼, q껼, q껼, q껼);
+Test_N(q껽, q껽, q껽, q껽, q껽);
+Test_N(q껾, q껾, q껾, q껾, q껾);
+Test_N(q껿, q껿, q껿, q껿, q껿);
+Test_N(q꼀, q꼀, q꼀, q꼀, q꼀);
+Test_N(q꼁, q꼁, q꼁, q꼁, q꼁);
+Test_N(q꼂, q꼂, q꼂, q꼂, q꼂);
+Test_N(q꼃, q꼃, q꼃, q꼃, q꼃);
+Test_N(q꼄, q꼄, q꼄, q꼄, q꼄);
+Test_N(q꼅, q꼅, q꼅, q꼅, q꼅);
+Test_N(q꼆, q꼆, q꼆, q꼆, q꼆);
+Test_N(q꼇, q꼇, q꼇, q꼇, q꼇);
+Test_N(q꼈, q꼈, q꼈, q꼈, q꼈);
+Test_N(q꼉, q꼉, q꼉, q꼉, q꼉);
+Test_N(q꼊, q꼊, q꼊, q꼊, q꼊);
+Test_N(q꼋, q꼋, q꼋, q꼋, q꼋);
+Test_N(q꼌, q꼌, q꼌, q꼌, q꼌);
+Test_N(q꼍, q꼍, q꼍, q꼍, q꼍);
+Test_N(q꼎, q꼎, q꼎, q꼎, q꼎);
+Test_N(q꼏, q꼏, q꼏, q꼏, q꼏);
+Test_N(q꼐, q꼐, q꼐, q꼐, q꼐);
+Test_N(q꼑, q꼑, q꼑, q꼑, q꼑);
+Test_N(q꼒, q꼒, q꼒, q꼒, q꼒);
+Test_N(q꼓, q꼓, q꼓, q꼓, q꼓);
+Test_N(q꼔, q꼔, q꼔, q꼔, q꼔);
+Test_N(q꼕, q꼕, q꼕, q꼕, q꼕);
+Test_N(q꼖, q꼖, q꼖, q꼖, q꼖);
+Test_N(q꼗, q꼗, q꼗, q꼗, q꼗);
+Test_N(q꼘, q꼘, q꼘, q꼘, q꼘);
+Test_N(q꼙, q꼙, q꼙, q꼙, q꼙);
+Test_N(q꼚, q꼚, q꼚, q꼚, q꼚);
+Test_N(q꼛, q꼛, q꼛, q꼛, q꼛);
+Test_N(q꼜, q꼜, q꼜, q꼜, q꼜);
+Test_N(q꼝, q꼝, q꼝, q꼝, q꼝);
+Test_N(q꼞, q꼞, q꼞, q꼞, q꼞);
+Test_N(q꼟, q꼟, q꼟, q꼟, q꼟);
+Test_N(q꼠, q꼠, q꼠, q꼠, q꼠);
+Test_N(q꼡, q꼡, q꼡, q꼡, q꼡);
+Test_N(q꼢, q꼢, q꼢, q꼢, q꼢);
+Test_N(q꼣, q꼣, q꼣, q꼣, q꼣);
+Test_N(q꼤, q꼤, q꼤, q꼤, q꼤);
+Test_N(q꼥, q꼥, q꼥, q꼥, q꼥);
+Test_N(q꼦, q꼦, q꼦, q꼦, q꼦);
+Test_N(q꼧, q꼧, q꼧, q꼧, q꼧);
+Test_N(q꼨, q꼨, q꼨, q꼨, q꼨);
+Test_N(q꼩, q꼩, q꼩, q꼩, q꼩);
+Test_N(q꼪, q꼪, q꼪, q꼪, q꼪);
+Test_N(q꼫, q꼫, q꼫, q꼫, q꼫);
+Test_N(q꼬, q꼬, q꼬, q꼬, q꼬);
+Test_N(q꼭, q꼭, q꼭, q꼭, q꼭);
+Test_N(q꼮, q꼮, q꼮, q꼮, q꼮);
+Test_N(q꼯, q꼯, q꼯, q꼯, q꼯);
+Test_N(q꼰, q꼰, q꼰, q꼰, q꼰);
+Test_N(q꼱, q꼱, q꼱, q꼱, q꼱);
+Test_N(q꼲, q꼲, q꼲, q꼲, q꼲);
+Test_N(q꼳, q꼳, q꼳, q꼳, q꼳);
+Test_N(q꼴, q꼴, q꼴, q꼴, q꼴);
+Test_N(q꼵, q꼵, q꼵, q꼵, q꼵);
+Test_N(q꼶, q꼶, q꼶, q꼶, q꼶);
+Test_N(q꼷, q꼷, q꼷, q꼷, q꼷);
+Test_N(q꼸, q꼸, q꼸, q꼸, q꼸);
+Test_N(q꼹, q꼹, q꼹, q꼹, q꼹);
+Test_N(q꼺, q꼺, q꼺, q꼺, q꼺);
+Test_N(q꼻, q꼻, q꼻, q꼻, q꼻);
+Test_N(q꼼, q꼼, q꼼, q꼼, q꼼);
+Test_N(q꼽, q꼽, q꼽, q꼽, q꼽);
+Test_N(q꼾, q꼾, q꼾, q꼾, q꼾);
+Test_N(q꼿, q꼿, q꼿, q꼿, q꼿);
+Test_N(q꽀, q꽀, q꽀, q꽀, q꽀);
+Test_N(q꽁, q꽁, q꽁, q꽁, q꽁);
+Test_N(q꽂, q꽂, q꽂, q꽂, q꽂);
+Test_N(q꽃, q꽃, q꽃, q꽃, q꽃);
+Test_N(q꽄, q꽄, q꽄, q꽄, q꽄);
+Test_N(q꽅, q꽅, q꽅, q꽅, q꽅);
+Test_N(q꽆, q꽆, q꽆, q꽆, q꽆);
+Test_N(q꽇, q꽇, q꽇, q꽇, q꽇);
+Test_N(q꽈, q꽈, q꽈, q꽈, q꽈);
+Test_N(q꽉, q꽉, q꽉, q꽉, q꽉);
+Test_N(q꽊, q꽊, q꽊, q꽊, q꽊);
+Test_N(q꽋, q꽋, q꽋, q꽋, q꽋);
+Test_N(q꽌, q꽌, q꽌, q꽌, q꽌);
+Test_N(q꽍, q꽍, q꽍, q꽍, q꽍);
+Test_N(q꽎, q꽎, q꽎, q꽎, q꽎);
+Test_N(q꽏, q꽏, q꽏, q꽏, q꽏);
+Test_N(q꽐, q꽐, q꽐, q꽐, q꽐);
+Test_N(q꽑, q꽑, q꽑, q꽑, q꽑);
+Test_N(q꽒, q꽒, q꽒, q꽒, q꽒);
+Test_N(q꽓, q꽓, q꽓, q꽓, q꽓);
+Test_N(q꽔, q꽔, q꽔, q꽔, q꽔);
+Test_N(q꽕, q꽕, q꽕, q꽕, q꽕);
+Test_N(q꽖, q꽖, q꽖, q꽖, q꽖);
+Test_N(q꽗, q꽗, q꽗, q꽗, q꽗);
+Test_N(q꽘, q꽘, q꽘, q꽘, q꽘);
+Test_N(q꽙, q꽙, q꽙, q꽙, q꽙);
+Test_N(q꽚, q꽚, q꽚, q꽚, q꽚);
+Test_N(q꽛, q꽛, q꽛, q꽛, q꽛);
+Test_N(q꽜, q꽜, q꽜, q꽜, q꽜);
+Test_N(q꽝, q꽝, q꽝, q꽝, q꽝);
+Test_N(q꽞, q꽞, q꽞, q꽞, q꽞);
+Test_N(q꽟, q꽟, q꽟, q꽟, q꽟);
+Test_N(q꽠, q꽠, q꽠, q꽠, q꽠);
+Test_N(q꽡, q꽡, q꽡, q꽡, q꽡);
+Test_N(q꽢, q꽢, q꽢, q꽢, q꽢);
+Test_N(q꽣, q꽣, q꽣, q꽣, q꽣);
+Test_N(q꽤, q꽤, q꽤, q꽤, q꽤);
+Test_N(q꽥, q꽥, q꽥, q꽥, q꽥);
+Test_N(q꽦, q꽦, q꽦, q꽦, q꽦);
+Test_N(q꽧, q꽧, q꽧, q꽧, q꽧);
+Test_N(q꽨, q꽨, q꽨, q꽨, q꽨);
+Test_N(q꽩, q꽩, q꽩, q꽩, q꽩);
+Test_N(q꽪, q꽪, q꽪, q꽪, q꽪);
+Test_N(q꽫, q꽫, q꽫, q꽫, q꽫);
+Test_N(q꽬, q꽬, q꽬, q꽬, q꽬);
+Test_N(q꽭, q꽭, q꽭, q꽭, q꽭);
+Test_N(q꽮, q꽮, q꽮, q꽮, q꽮);
+Test_N(q꽯, q꽯, q꽯, q꽯, q꽯);
+Test_N(q꽰, q꽰, q꽰, q꽰, q꽰);
+Test_N(q꽱, q꽱, q꽱, q꽱, q꽱);
+Test_N(q꽲, q꽲, q꽲, q꽲, q꽲);
+Test_N(q꽳, q꽳, q꽳, q꽳, q꽳);
+Test_N(q꽴, q꽴, q꽴, q꽴, q꽴);
+Test_N(q꽵, q꽵, q꽵, q꽵, q꽵);
+Test_N(q꽶, q꽶, q꽶, q꽶, q꽶);
+Test_N(q꽷, q꽷, q꽷, q꽷, q꽷);
+Test_N(q꽸, q꽸, q꽸, q꽸, q꽸);
+Test_N(q꽹, q꽹, q꽹, q꽹, q꽹);
+Test_N(q꽺, q꽺, q꽺, q꽺, q꽺);
+Test_N(q꽻, q꽻, q꽻, q꽻, q꽻);
+Test_N(q꽼, q꽼, q꽼, q꽼, q꽼);
+Test_N(q꽽, q꽽, q꽽, q꽽, q꽽);
+Test_N(q꽾, q꽾, q꽾, q꽾, q꽾);
+Test_N(q꽿, q꽿, q꽿, q꽿, q꽿);
+Test_N(q꾀, q꾀, q꾀, q꾀, q꾀);
+Test_N(q꾁, q꾁, q꾁, q꾁, q꾁);
+Test_N(q꾂, q꾂, q꾂, q꾂, q꾂);
+Test_N(q꾃, q꾃, q꾃, q꾃, q꾃);
+Test_N(q꾄, q꾄, q꾄, q꾄, q꾄);
+Test_N(q꾅, q꾅, q꾅, q꾅, q꾅);
+Test_N(q꾆, q꾆, q꾆, q꾆, q꾆);
+Test_N(q꾇, q꾇, q꾇, q꾇, q꾇);
+Test_N(q꾈, q꾈, q꾈, q꾈, q꾈);
+Test_N(q꾉, q꾉, q꾉, q꾉, q꾉);
+Test_N(q꾊, q꾊, q꾊, q꾊, q꾊);
+Test_N(q꾋, q꾋, q꾋, q꾋, q꾋);
+Test_N(q꾌, q꾌, q꾌, q꾌, q꾌);
+Test_N(q꾍, q꾍, q꾍, q꾍, q꾍);
+Test_N(q꾎, q꾎, q꾎, q꾎, q꾎);
+Test_N(q꾏, q꾏, q꾏, q꾏, q꾏);
+Test_N(q꾐, q꾐, q꾐, q꾐, q꾐);
+Test_N(q꾑, q꾑, q꾑, q꾑, q꾑);
+Test_N(q꾒, q꾒, q꾒, q꾒, q꾒);
+Test_N(q꾓, q꾓, q꾓, q꾓, q꾓);
+Test_N(q꾔, q꾔, q꾔, q꾔, q꾔);
+Test_N(q꾕, q꾕, q꾕, q꾕, q꾕);
+Test_N(q꾖, q꾖, q꾖, q꾖, q꾖);
+Test_N(q꾗, q꾗, q꾗, q꾗, q꾗);
+Test_N(q꾘, q꾘, q꾘, q꾘, q꾘);
+Test_N(q꾙, q꾙, q꾙, q꾙, q꾙);
+Test_N(q꾚, q꾚, q꾚, q꾚, q꾚);
+Test_N(q꾛, q꾛, q꾛, q꾛, q꾛);
+Test_N(q꾜, q꾜, q꾜, q꾜, q꾜);
+Test_N(q꾝, q꾝, q꾝, q꾝, q꾝);
+Test_N(q꾞, q꾞, q꾞, q꾞, q꾞);
+Test_N(q꾟, q꾟, q꾟, q꾟, q꾟);
+Test_N(q꾠, q꾠, q꾠, q꾠, q꾠);
+Test_N(q꾡, q꾡, q꾡, q꾡, q꾡);
+Test_N(q꾢, q꾢, q꾢, q꾢, q꾢);
+Test_N(q꾣, q꾣, q꾣, q꾣, q꾣);
+Test_N(q꾤, q꾤, q꾤, q꾤, q꾤);
+Test_N(q꾥, q꾥, q꾥, q꾥, q꾥);
+Test_N(q꾦, q꾦, q꾦, q꾦, q꾦);
+Test_N(q꾧, q꾧, q꾧, q꾧, q꾧);
+Test_N(q꾨, q꾨, q꾨, q꾨, q꾨);
+Test_N(q꾩, q꾩, q꾩, q꾩, q꾩);
+Test_N(q꾪, q꾪, q꾪, q꾪, q꾪);
+Test_N(q꾫, q꾫, q꾫, q꾫, q꾫);
+Test_N(q꾬, q꾬, q꾬, q꾬, q꾬);
+Test_N(q꾭, q꾭, q꾭, q꾭, q꾭);
+Test_N(q꾮, q꾮, q꾮, q꾮, q꾮);
+Test_N(q꾯, q꾯, q꾯, q꾯, q꾯);
+Test_N(q꾰, q꾰, q꾰, q꾰, q꾰);
+Test_N(q꾱, q꾱, q꾱, q꾱, q꾱);
+Test_N(q꾲, q꾲, q꾲, q꾲, q꾲);
+Test_N(q꾳, q꾳, q꾳, q꾳, q꾳);
+Test_N(q꾴, q꾴, q꾴, q꾴, q꾴);
+Test_N(q꾵, q꾵, q꾵, q꾵, q꾵);
+Test_N(q꾶, q꾶, q꾶, q꾶, q꾶);
+Test_N(q꾷, q꾷, q꾷, q꾷, q꾷);
+Test_N(q꾸, q꾸, q꾸, q꾸, q꾸);
+Test_N(q꾹, q꾹, q꾹, q꾹, q꾹);
+Test_N(q꾺, q꾺, q꾺, q꾺, q꾺);
+Test_N(q꾻, q꾻, q꾻, q꾻, q꾻);
+Test_N(q꾼, q꾼, q꾼, q꾼, q꾼);
+Test_N(q꾽, q꾽, q꾽, q꾽, q꾽);
+Test_N(q꾾, q꾾, q꾾, q꾾, q꾾);
+Test_N(q꾿, q꾿, q꾿, q꾿, q꾿);
+Test_N(q꿀, q꿀, q꿀, q꿀, q꿀);
+Test_N(q꿁, q꿁, q꿁, q꿁, q꿁);
+Test_N(q꿂, q꿂, q꿂, q꿂, q꿂);
+Test_N(q꿃, q꿃, q꿃, q꿃, q꿃);
+Test_N(q꿄, q꿄, q꿄, q꿄, q꿄);
+Test_N(q꿅, q꿅, q꿅, q꿅, q꿅);
+Test_N(q꿆, q꿆, q꿆, q꿆, q꿆);
+Test_N(q꿇, q꿇, q꿇, q꿇, q꿇);
+Test_N(q꿈, q꿈, q꿈, q꿈, q꿈);
+Test_N(q꿉, q꿉, q꿉, q꿉, q꿉);
+Test_N(q꿊, q꿊, q꿊, q꿊, q꿊);
+Test_N(q꿋, q꿋, q꿋, q꿋, q꿋);
+Test_N(q꿌, q꿌, q꿌, q꿌, q꿌);
+Test_N(q꿍, q꿍, q꿍, q꿍, q꿍);
+Test_N(q꿎, q꿎, q꿎, q꿎, q꿎);
+Test_N(q꿏, q꿏, q꿏, q꿏, q꿏);
+Test_N(q꿐, q꿐, q꿐, q꿐, q꿐);
+Test_N(q꿑, q꿑, q꿑, q꿑, q꿑);
+Test_N(q꿒, q꿒, q꿒, q꿒, q꿒);
+Test_N(q꿓, q꿓, q꿓, q꿓, q꿓);
+Test_N(q꿔, q꿔, q꿔, q꿔, q꿔);
+Test_N(q꿕, q꿕, q꿕, q꿕, q꿕);
+Test_N(q꿖, q꿖, q꿖, q꿖, q꿖);
+Test_N(q꿗, q꿗, q꿗, q꿗, q꿗);
+Test_N(q꿘, q꿘, q꿘, q꿘, q꿘);
+Test_N(q꿙, q꿙, q꿙, q꿙, q꿙);
+Test_N(q꿚, q꿚, q꿚, q꿚, q꿚);
+Test_N(q꿛, q꿛, q꿛, q꿛, q꿛);
+Test_N(q꿜, q꿜, q꿜, q꿜, q꿜);
+Test_N(q꿝, q꿝, q꿝, q꿝, q꿝);
+Test_N(q꿞, q꿞, q꿞, q꿞, q꿞);
+Test_N(q꿟, q꿟, q꿟, q꿟, q꿟);
+Test_N(q꿠, q꿠, q꿠, q꿠, q꿠);
+Test_N(q꿡, q꿡, q꿡, q꿡, q꿡);
+Test_N(q꿢, q꿢, q꿢, q꿢, q꿢);
+Test_N(q꿣, q꿣, q꿣, q꿣, q꿣);
+Test_N(q꿤, q꿤, q꿤, q꿤, q꿤);
+Test_N(q꿥, q꿥, q꿥, q꿥, q꿥);
+Test_N(q꿦, q꿦, q꿦, q꿦, q꿦);
+Test_N(q꿧, q꿧, q꿧, q꿧, q꿧);
+Test_N(q꿨, q꿨, q꿨, q꿨, q꿨);
+Test_N(q꿩, q꿩, q꿩, q꿩, q꿩);
+Test_N(q꿪, q꿪, q꿪, q꿪, q꿪);
+Test_N(q꿫, q꿫, q꿫, q꿫, q꿫);
+Test_N(q꿬, q꿬, q꿬, q꿬, q꿬);
+Test_N(q꿭, q꿭, q꿭, q꿭, q꿭);
+Test_N(q꿮, q꿮, q꿮, q꿮, q꿮);
+Test_N(q꿯, q꿯, q꿯, q꿯, q꿯);
+Test_N(q꿰, q꿰, q꿰, q꿰, q꿰);
+Test_N(q꿱, q꿱, q꿱, q꿱, q꿱);
+Test_N(q꿲, q꿲, q꿲, q꿲, q꿲);
+Test_N(q꿳, q꿳, q꿳, q꿳, q꿳);
+Test_N(q꿴, q꿴, q꿴, q꿴, q꿴);
+Test_N(q꿵, q꿵, q꿵, q꿵, q꿵);
+Test_N(q꿶, q꿶, q꿶, q꿶, q꿶);
+Test_N(q꿷, q꿷, q꿷, q꿷, q꿷);
+Test_N(q꿸, q꿸, q꿸, q꿸, q꿸);
+Test_N(q꿹, q꿹, q꿹, q꿹, q꿹);
+Test_N(q꿺, q꿺, q꿺, q꿺, q꿺);
+Test_N(q꿻, q꿻, q꿻, q꿻, q꿻);
+Test_N(q꿼, q꿼, q꿼, q꿼, q꿼);
+Test_N(q꿽, q꿽, q꿽, q꿽, q꿽);
+Test_N(q꿾, q꿾, q꿾, q꿾, q꿾);
+Test_N(q꿿, q꿿, q꿿, q꿿, q꿿);
+Test_N(q뀀, q뀀, q뀀, q뀀, q뀀);
+Test_N(q뀁, q뀁, q뀁, q뀁, q뀁);
+Test_N(q뀂, q뀂, q뀂, q뀂, q뀂);
+Test_N(q뀃, q뀃, q뀃, q뀃, q뀃);
+Test_N(q뀄, q뀄, q뀄, q뀄, q뀄);
+Test_N(q뀅, q뀅, q뀅, q뀅, q뀅);
+Test_N(q뀆, q뀆, q뀆, q뀆, q뀆);
+Test_N(q뀇, q뀇, q뀇, q뀇, q뀇);
+Test_N(q뀈, q뀈, q뀈, q뀈, q뀈);
+Test_N(q뀉, q뀉, q뀉, q뀉, q뀉);
+Test_N(q뀊, q뀊, q뀊, q뀊, q뀊);
+Test_N(q뀋, q뀋, q뀋, q뀋, q뀋);
+Test_N(q뀌, q뀌, q뀌, q뀌, q뀌);
+Test_N(q뀍, q뀍, q뀍, q뀍, q뀍);
+Test_N(q뀎, q뀎, q뀎, q뀎, q뀎);
+Test_N(q뀏, q뀏, q뀏, q뀏, q뀏);
+Test_N(q뀐, q뀐, q뀐, q뀐, q뀐);
+Test_N(q뀑, q뀑, q뀑, q뀑, q뀑);
+Test_N(q뀒, q뀒, q뀒, q뀒, q뀒);
+Test_N(q뀓, q뀓, q뀓, q뀓, q뀓);
+Test_N(q뀔, q뀔, q뀔, q뀔, q뀔);
+Test_N(q뀕, q뀕, q뀕, q뀕, q뀕);
+Test_N(q뀖, q뀖, q뀖, q뀖, q뀖);
+Test_N(q뀗, q뀗, q뀗, q뀗, q뀗);
+Test_N(q뀘, q뀘, q뀘, q뀘, q뀘);
+Test_N(q뀙, q뀙, q뀙, q뀙, q뀙);
+Test_N(q뀚, q뀚, q뀚, q뀚, q뀚);
+Test_N(q뀛, q뀛, q뀛, q뀛, q뀛);
+Test_N(q뀜, q뀜, q뀜, q뀜, q뀜);
+Test_N(q뀝, q뀝, q뀝, q뀝, q뀝);
+Test_N(q뀞, q뀞, q뀞, q뀞, q뀞);
+Test_N(q뀟, q뀟, q뀟, q뀟, q뀟);
+Test_N(q뀠, q뀠, q뀠, q뀠, q뀠);
+Test_N(q뀡, q뀡, q뀡, q뀡, q뀡);
+Test_N(q뀢, q뀢, q뀢, q뀢, q뀢);
+Test_N(q뀣, q뀣, q뀣, q뀣, q뀣);
+Test_N(q뀤, q뀤, q뀤, q뀤, q뀤);
+Test_N(q뀥, q뀥, q뀥, q뀥, q뀥);
+Test_N(q뀦, q뀦, q뀦, q뀦, q뀦);
+Test_N(q뀧, q뀧, q뀧, q뀧, q뀧);
+Test_N(q뀨, q뀨, q뀨, q뀨, q뀨);
+Test_N(q뀩, q뀩, q뀩, q뀩, q뀩);
+Test_N(q뀪, q뀪, q뀪, q뀪, q뀪);
+Test_N(q뀫, q뀫, q뀫, q뀫, q뀫);
+Test_N(q뀬, q뀬, q뀬, q뀬, q뀬);
+Test_N(q뀭, q뀭, q뀭, q뀭, q뀭);
+Test_N(q뀮, q뀮, q뀮, q뀮, q뀮);
+Test_N(q뀯, q뀯, q뀯, q뀯, q뀯);
+Test_N(q뀰, q뀰, q뀰, q뀰, q뀰);
+Test_N(q뀱, q뀱, q뀱, q뀱, q뀱);
+Test_N(q뀲, q뀲, q뀲, q뀲, q뀲);
+Test_N(q뀳, q뀳, q뀳, q뀳, q뀳);
+Test_N(q뀴, q뀴, q뀴, q뀴, q뀴);
+Test_N(q뀵, q뀵, q뀵, q뀵, q뀵);
+Test_N(q뀶, q뀶, q뀶, q뀶, q뀶);
+Test_N(q뀷, q뀷, q뀷, q뀷, q뀷);
+Test_N(q뀸, q뀸, q뀸, q뀸, q뀸);
+Test_N(q뀹, q뀹, q뀹, q뀹, q뀹);
+Test_N(q뀺, q뀺, q뀺, q뀺, q뀺);
+Test_N(q뀻, q뀻, q뀻, q뀻, q뀻);
+Test_N(q뀼, q뀼, q뀼, q뀼, q뀼);
+Test_N(q뀽, q뀽, q뀽, q뀽, q뀽);
+Test_N(q뀾, q뀾, q뀾, q뀾, q뀾);
+Test_N(q뀿, q뀿, q뀿, q뀿, q뀿);
+Test_N(q끀, q끀, q끀, q끀, q끀);
+Test_N(q끁, q끁, q끁, q끁, q끁);
+Test_N(q끂, q끂, q끂, q끂, q끂);
+Test_N(q끃, q끃, q끃, q끃, q끃);
+Test_N(q끄, q끄, q끄, q끄, q끄);
+Test_N(q끅, q끅, q끅, q끅, q끅);
+Test_N(q끆, q끆, q끆, q끆, q끆);
+Test_N(q끇, q끇, q끇, q끇, q끇);
+Test_N(q끈, q끈, q끈, q끈, q끈);
+Test_N(q끉, q끉, q끉, q끉, q끉);
+Test_N(q끊, q끊, q끊, q끊, q끊);
+Test_N(q끋, q끋, q끋, q끋, q끋);
+Test_N(q끌, q끌, q끌, q끌, q끌);
+Test_N(q끍, q끍, q끍, q끍, q끍);
+Test_N(q끎, q끎, q끎, q끎, q끎);
+Test_N(q끏, q끏, q끏, q끏, q끏);
+Test_N(q끐, q끐, q끐, q끐, q끐);
+Test_N(q끑, q끑, q끑, q끑, q끑);
+Test_N(q끒, q끒, q끒, q끒, q끒);
+Test_N(q끓, q끓, q끓, q끓, q끓);
+Test_N(q끔, q끔, q끔, q끔, q끔);
+Test_N(q끕, q끕, q끕, q끕, q끕);
+Test_N(q끖, q끖, q끖, q끖, q끖);
+Test_N(q끗, q끗, q끗, q끗, q끗);
+Test_N(q끘, q끘, q끘, q끘, q끘);
+Test_N(q끙, q끙, q끙, q끙, q끙);
+Test_N(q끚, q끚, q끚, q끚, q끚);
+Test_N(q끛, q끛, q끛, q끛, q끛);
+Test_N(q끜, q끜, q끜, q끜, q끜);
+Test_N(q끝, q끝, q끝, q끝, q끝);
+Test_N(q끞, q끞, q끞, q끞, q끞);
+Test_N(q끟, q끟, q끟, q끟, q끟);
+Test_N(q끠, q끠, q끠, q끠, q끠);
+Test_N(q끡, q끡, q끡, q끡, q끡);
+Test_N(q끢, q끢, q끢, q끢, q끢);
+Test_N(q끣, q끣, q끣, q끣, q끣);
+Test_N(q끤, q끤, q끤, q끤, q끤);
+Test_N(q끥, q끥, q끥, q끥, q끥);
+Test_N(q끦, q끦, q끦, q끦, q끦);
+Test_N(q끧, q끧, q끧, q끧, q끧);
+Test_N(q끨, q끨, q끨, q끨, q끨);
+Test_N(q끩, q끩, q끩, q끩, q끩);
+Test_N(q끪, q끪, q끪, q끪, q끪);
+Test_N(q끫, q끫, q끫, q끫, q끫);
+Test_N(q끬, q끬, q끬, q끬, q끬);
+Test_N(q끭, q끭, q끭, q끭, q끭);
+Test_N(q끮, q끮, q끮, q끮, q끮);
+Test_N(q끯, q끯, q끯, q끯, q끯);
+Test_N(q끰, q끰, q끰, q끰, q끰);
+Test_N(q끱, q끱, q끱, q끱, q끱);
+Test_N(q끲, q끲, q끲, q끲, q끲);
+Test_N(q끳, q끳, q끳, q끳, q끳);
+Test_N(q끴, q끴, q끴, q끴, q끴);
+Test_N(q끵, q끵, q끵, q끵, q끵);
+Test_N(q끶, q끶, q끶, q끶, q끶);
+Test_N(q끷, q끷, q끷, q끷, q끷);
+Test_N(q끸, q끸, q끸, q끸, q끸);
+Test_N(q끹, q끹, q끹, q끹, q끹);
+Test_N(q끺, q끺, q끺, q끺, q끺);
+Test_N(q끻, q끻, q끻, q끻, q끻);
+Test_N(q끼, q끼, q끼, q끼, q끼);
+Test_N(q끽, q끽, q끽, q끽, q끽);
+Test_N(q끾, q끾, q끾, q끾, q끾);
+Test_N(q끿, q끿, q끿, q끿, q끿);
+Test_N(q낀, q낀, q낀, q낀, q낀);
+Test_N(q낁, q낁, q낁, q낁, q낁);
+Test_N(q낂, q낂, q낂, q낂, q낂);
+Test_N(q낃, q낃, q낃, q낃, q낃);
+Test_N(q낄, q낄, q낄, q낄, q낄);
+Test_N(q낅, q낅, q낅, q낅, q낅);
+Test_N(q낆, q낆, q낆, q낆, q낆);
+Test_N(q낇, q낇, q낇, q낇, q낇);
+Test_N(q낈, q낈, q낈, q낈, q낈);
+Test_N(q낉, q낉, q낉, q낉, q낉);
+Test_N(q낊, q낊, q낊, q낊, q낊);
+Test_N(q낋, q낋, q낋, q낋, q낋);
+Test_N(q낌, q낌, q낌, q낌, q낌);
+Test_N(q낍, q낍, q낍, q낍, q낍);
+Test_N(q낎, q낎, q낎, q낎, q낎);
+Test_N(q낏, q낏, q낏, q낏, q낏);
+Test_N(q낐, q낐, q낐, q낐, q낐);
+Test_N(q낑, q낑, q낑, q낑, q낑);
+Test_N(q낒, q낒, q낒, q낒, q낒);
+Test_N(q낓, q낓, q낓, q낓, q낓);
+Test_N(q낔, q낔, q낔, q낔, q낔);
+Test_N(q낕, q낕, q낕, q낕, q낕);
+Test_N(q낖, q낖, q낖, q낖, q낖);
+Test_N(q낗, q낗, q낗, q낗, q낗);
+Test_N(q나, q나, q나, q나, q나);
+Test_N(q낙, q낙, q낙, q낙, q낙);
+Test_N(q낚, q낚, q낚, q낚, q낚);
+Test_N(q낛, q낛, q낛, q낛, q낛);
+Test_N(q난, q난, q난, q난, q난);
+Test_N(q낝, q낝, q낝, q낝, q낝);
+Test_N(q낞, q낞, q낞, q낞, q낞);
+Test_N(q낟, q낟, q낟, q낟, q낟);
+Test_N(q날, q날, q날, q날, q날);
+Test_N(q낡, q낡, q낡, q낡, q낡);
+Test_N(q낢, q낢, q낢, q낢, q낢);
+Test_N(q낣, q낣, q낣, q낣, q낣);
+Test_N(q낤, q낤, q낤, q낤, q낤);
+Test_N(q낥, q낥, q낥, q낥, q낥);
+Test_N(q낦, q낦, q낦, q낦, q낦);
+Test_N(q낧, q낧, q낧, q낧, q낧);
+Test_N(q남, q남, q남, q남, q남);
+Test_N(q납, q납, q납, q납, q납);
+Test_N(q낪, q낪, q낪, q낪, q낪);
+Test_N(q낫, q낫, q낫, q낫, q낫);
+Test_N(q났, q났, q났, q났, q났);
+Test_N(q낭, q낭, q낭, q낭, q낭);
+Test_N(q낮, q낮, q낮, q낮, q낮);
+Test_N(q낯, q낯, q낯, q낯, q낯);
+Test_N(q낰, q낰, q낰, q낰, q낰);
+Test_N(q낱, q낱, q낱, q낱, q낱);
+Test_N(q낲, q낲, q낲, q낲, q낲);
+Test_N(q낳, q낳, q낳, q낳, q낳);
+Test_N(q내, q내, q내, q내, q내);
+Test_N(q낵, q낵, q낵, q낵, q낵);
+Test_N(q낶, q낶, q낶, q낶, q낶);
+Test_N(q낷, q낷, q낷, q낷, q낷);
+Test_N(q낸, q낸, q낸, q낸, q낸);
+Test_N(q낹, q낹, q낹, q낹, q낹);
+Test_N(q낺, q낺, q낺, q낺, q낺);
+Test_N(q낻, q낻, q낻, q낻, q낻);
+Test_N(q낼, q낼, q낼, q낼, q낼);
+Test_N(q낽, q낽, q낽, q낽, q낽);
+Test_N(q낾, q낾, q낾, q낾, q낾);
+Test_N(q낿, q낿, q낿, q낿, q낿);
+Test_N(q냀, q냀, q냀, q냀, q냀);
+Test_N(q냁, q냁, q냁, q냁, q냁);
+Test_N(q냂, q냂, q냂, q냂, q냂);
+Test_N(q냃, q냃, q냃, q냃, q냃);
+Test_N(q냄, q냄, q냄, q냄, q냄);
+Test_N(q냅, q냅, q냅, q냅, q냅);
+Test_N(q냆, q냆, q냆, q냆, q냆);
+Test_N(q냇, q냇, q냇, q냇, q냇);
+Test_N(q냈, q냈, q냈, q냈, q냈);
+Test_N(q냉, q냉, q냉, q냉, q냉);
+Test_N(q냊, q냊, q냊, q냊, q냊);
+Test_N(q냋, q냋, q냋, q냋, q냋);
+Test_N(q냌, q냌, q냌, q냌, q냌);
+Test_N(q냍, q냍, q냍, q냍, q냍);
+Test_N(q냎, q냎, q냎, q냎, q냎);
+Test_N(q냏, q냏, q냏, q냏, q냏);
+Test_N(q냐, q냐, q냐, q냐, q냐);
+Test_N(q냑, q냑, q냑, q냑, q냑);
+Test_N(q냒, q냒, q냒, q냒, q냒);
+Test_N(q냓, q냓, q냓, q냓, q냓);
+Test_N(q냔, q냔, q냔, q냔, q냔);
+Test_N(q냕, q냕, q냕, q냕, q냕);
+Test_N(q냖, q냖, q냖, q냖, q냖);
+Test_N(q냗, q냗, q냗, q냗, q냗);
+Test_N(q냘, q냘, q냘, q냘, q냘);
+Test_N(q냙, q냙, q냙, q냙, q냙);
+Test_N(q냚, q냚, q냚, q냚, q냚);
+Test_N(q냛, q냛, q냛, q냛, q냛);
+Test_N(q냜, q냜, q냜, q냜, q냜);
+Test_N(q냝, q냝, q냝, q냝, q냝);
+Test_N(q냞, q냞, q냞, q냞, q냞);
+Test_N(q냟, q냟, q냟, q냟, q냟);
+Test_N(q냠, q냠, q냠, q냠, q냠);
+Test_N(q냡, q냡, q냡, q냡, q냡);
+Test_N(q냢, q냢, q냢, q냢, q냢);
+Test_N(q냣, q냣, q냣, q냣, q냣);
+Test_N(q냤, q냤, q냤, q냤, q냤);
+Test_N(q냥, q냥, q냥, q냥, q냥);
+Test_N(q냦, q냦, q냦, q냦, q냦);
+Test_N(q냧, q냧, q냧, q냧, q냧);
+Test_N(q냨, q냨, q냨, q냨, q냨);
+Test_N(q냩, q냩, q냩, q냩, q냩);
+Test_N(q냪, q냪, q냪, q냪, q냪);
+Test_N(q냫, q냫, q냫, q냫, q냫);
+Test_N(q냬, q냬, q냬, q냬, q냬);
+Test_N(q냭, q냭, q냭, q냭, q냭);
+Test_N(q냮, q냮, q냮, q냮, q냮);
+Test_N(q냯, q냯, q냯, q냯, q냯);
+Test_N(q냰, q냰, q냰, q냰, q냰);
+Test_N(q냱, q냱, q냱, q냱, q냱);
+Test_N(q냲, q냲, q냲, q냲, q냲);
+Test_N(q냳, q냳, q냳, q냳, q냳);
+Test_N(q냴, q냴, q냴, q냴, q냴);
+Test_N(q냵, q냵, q냵, q냵, q냵);
+Test_N(q냶, q냶, q냶, q냶, q냶);
+Test_N(q냷, q냷, q냷, q냷, q냷);
+Test_N(q냸, q냸, q냸, q냸, q냸);
+Test_N(q냹, q냹, q냹, q냹, q냹);
+Test_N(q냺, q냺, q냺, q냺, q냺);
+Test_N(q냻, q냻, q냻, q냻, q냻);
+Test_N(q냼, q냼, q냼, q냼, q냼);
+Test_N(q냽, q냽, q냽, q냽, q냽);
+Test_N(q냾, q냾, q냾, q냾, q냾);
+Test_N(q냿, q냿, q냿, q냿, q냿);
+Test_N(q넀, q넀, q넀, q넀, q넀);
+Test_N(q넁, q넁, q넁, q넁, q넁);
+Test_N(q넂, q넂, q넂, q넂, q넂);
+Test_N(q넃, q넃, q넃, q넃, q넃);
+Test_N(q넄, q넄, q넄, q넄, q넄);
+Test_N(q넅, q넅, q넅, q넅, q넅);
+Test_N(q넆, q넆, q넆, q넆, q넆);
+Test_N(q넇, q넇, q넇, q넇, q넇);
+Test_N(q너, q너, q너, q너, q너);
+Test_N(q넉, q넉, q넉, q넉, q넉);
+Test_N(q넊, q넊, q넊, q넊, q넊);
+Test_N(q넋, q넋, q넋, q넋, q넋);
+Test_N(q넌, q넌, q넌, q넌, q넌);
+Test_N(q넍, q넍, q넍, q넍, q넍);
+Test_N(q넎, q넎, q넎, q넎, q넎);
+Test_N(q넏, q넏, q넏, q넏, q넏);
+Test_N(q널, q널, q널, q널, q널);
+Test_N(q넑, q넑, q넑, q넑, q넑);
+Test_N(q넒, q넒, q넒, q넒, q넒);
+Test_N(q넓, q넓, q넓, q넓, q넓);
+Test_N(q넔, q넔, q넔, q넔, q넔);
+Test_N(q넕, q넕, q넕, q넕, q넕);
+Test_N(q넖, q넖, q넖, q넖, q넖);
+Test_N(q넗, q넗, q넗, q넗, q넗);
+Test_N(q넘, q넘, q넘, q넘, q넘);
+Test_N(q넙, q넙, q넙, q넙, q넙);
+Test_N(q넚, q넚, q넚, q넚, q넚);
+Test_N(q넛, q넛, q넛, q넛, q넛);
+Test_N(q넜, q넜, q넜, q넜, q넜);
+Test_N(q넝, q넝, q넝, q넝, q넝);
+Test_N(q넞, q넞, q넞, q넞, q넞);
+Test_N(q넟, q넟, q넟, q넟, q넟);
+Test_N(q넠, q넠, q넠, q넠, q넠);
+Test_N(q넡, q넡, q넡, q넡, q넡);
+Test_N(q넢, q넢, q넢, q넢, q넢);
+Test_N(q넣, q넣, q넣, q넣, q넣);
+Test_N(q네, q네, q네, q네, q네);
+Test_N(q넥, q넥, q넥, q넥, q넥);
+Test_N(q넦, q넦, q넦, q넦, q넦);
+Test_N(q넧, q넧, q넧, q넧, q넧);
+Test_N(q넨, q넨, q넨, q넨, q넨);
+Test_N(q넩, q넩, q넩, q넩, q넩);
+Test_N(q넪, q넪, q넪, q넪, q넪);
+Test_N(q넫, q넫, q넫, q넫, q넫);
+Test_N(q넬, q넬, q넬, q넬, q넬);
+Test_N(q넭, q넭, q넭, q넭, q넭);
+Test_N(q넮, q넮, q넮, q넮, q넮);
+Test_N(q넯, q넯, q넯, q넯, q넯);
+Test_N(q넰, q넰, q넰, q넰, q넰);
+Test_N(q넱, q넱, q넱, q넱, q넱);
+Test_N(q넲, q넲, q넲, q넲, q넲);
+Test_N(q넳, q넳, q넳, q넳, q넳);
+Test_N(q넴, q넴, q넴, q넴, q넴);
+Test_N(q넵, q넵, q넵, q넵, q넵);
+Test_N(q넶, q넶, q넶, q넶, q넶);
+Test_N(q넷, q넷, q넷, q넷, q넷);
+Test_N(q넸, q넸, q넸, q넸, q넸);
+Test_N(q넹, q넹, q넹, q넹, q넹);
+Test_N(q넺, q넺, q넺, q넺, q넺);
+Test_N(q넻, q넻, q넻, q넻, q넻);
+Test_N(q넼, q넼, q넼, q넼, q넼);
+Test_N(q넽, q넽, q넽, q넽, q넽);
+Test_N(q넾, q넾, q넾, q넾, q넾);
+Test_N(q넿, q넿, q넿, q넿, q넿);
+Test_N(q녀, q녀, q녀, q녀, q녀);
+Test_N(q녁, q녁, q녁, q녁, q녁);
+Test_N(q녂, q녂, q녂, q녂, q녂);
+Test_N(q녃, q녃, q녃, q녃, q녃);
+Test_N(q년, q년, q년, q년, q년);
+Test_N(q녅, q녅, q녅, q녅, q녅);
+Test_N(q녆, q녆, q녆, q녆, q녆);
+Test_N(q녇, q녇, q녇, q녇, q녇);
+Test_N(q녈, q녈, q녈, q녈, q녈);
+Test_N(q녉, q녉, q녉, q녉, q녉);
+Test_N(q녊, q녊, q녊, q녊, q녊);
+Test_N(q녋, q녋, q녋, q녋, q녋);
+Test_N(q녌, q녌, q녌, q녌, q녌);
+Test_N(q녍, q녍, q녍, q녍, q녍);
+Test_N(q녎, q녎, q녎, q녎, q녎);
+Test_N(q녏, q녏, q녏, q녏, q녏);
+Test_N(q념, q념, q념, q념, q념);
+Test_N(q녑, q녑, q녑, q녑, q녑);
+Test_N(q녒, q녒, q녒, q녒, q녒);
+Test_N(q녓, q녓, q녓, q녓, q녓);
+Test_N(q녔, q녔, q녔, q녔, q녔);
+Test_N(q녕, q녕, q녕, q녕, q녕);
+Test_N(q녖, q녖, q녖, q녖, q녖);
+Test_N(q녗, q녗, q녗, q녗, q녗);
+Test_N(q녘, q녘, q녘, q녘, q녘);
+Test_N(q녙, q녙, q녙, q녙, q녙);
+Test_N(q녚, q녚, q녚, q녚, q녚);
+Test_N(q녛, q녛, q녛, q녛, q녛);
+Test_N(q녜, q녜, q녜, q녜, q녜);
+Test_N(q녝, q녝, q녝, q녝, q녝);
+Test_N(q녞, q녞, q녞, q녞, q녞);
+Test_N(q녟, q녟, q녟, q녟, q녟);
+Test_N(q녠, q녠, q녠, q녠, q녠);
+Test_N(q녡, q녡, q녡, q녡, q녡);
+Test_N(q녢, q녢, q녢, q녢, q녢);
+Test_N(q녣, q녣, q녣, q녣, q녣);
+Test_N(q녤, q녤, q녤, q녤, q녤);
+Test_N(q녥, q녥, q녥, q녥, q녥);
+Test_N(q녦, q녦, q녦, q녦, q녦);
+Test_N(q녧, q녧, q녧, q녧, q녧);
+Test_N(q녨, q녨, q녨, q녨, q녨);
+Test_N(q녩, q녩, q녩, q녩, q녩);
+Test_N(q녪, q녪, q녪, q녪, q녪);
+Test_N(q녫, q녫, q녫, q녫, q녫);
+Test_N(q녬, q녬, q녬, q녬, q녬);
+Test_N(q녭, q녭, q녭, q녭, q녭);
+Test_N(q녮, q녮, q녮, q녮, q녮);
+Test_N(q녯, q녯, q녯, q녯, q녯);
+Test_N(q녰, q녰, q녰, q녰, q녰);
+Test_N(q녱, q녱, q녱, q녱, q녱);
+Test_N(q녲, q녲, q녲, q녲, q녲);
+Test_N(q녳, q녳, q녳, q녳, q녳);
+Test_N(q녴, q녴, q녴, q녴, q녴);
+Test_N(q녵, q녵, q녵, q녵, q녵);
+Test_N(q녶, q녶, q녶, q녶, q녶);
+Test_N(q녷, q녷, q녷, q녷, q녷);
+Test_N(q노, q노, q노, q노, q노);
+Test_N(q녹, q녹, q녹, q녹, q녹);
+Test_N(q녺, q녺, q녺, q녺, q녺);
+Test_N(q녻, q녻, q녻, q녻, q녻);
+Test_N(q논, q논, q논, q논, q논);
+Test_N(q녽, q녽, q녽, q녽, q녽);
+Test_N(q녾, q녾, q녾, q녾, q녾);
+Test_N(q녿, q녿, q녿, q녿, q녿);
+Test_N(q놀, q놀, q놀, q놀, q놀);
+Test_N(q놁, q놁, q놁, q놁, q놁);
+Test_N(q놂, q놂, q놂, q놂, q놂);
+Test_N(q놃, q놃, q놃, q놃, q놃);
+Test_N(q놄, q놄, q놄, q놄, q놄);
+Test_N(q놅, q놅, q놅, q놅, q놅);
+Test_N(q놆, q놆, q놆, q놆, q놆);
+Test_N(q놇, q놇, q놇, q놇, q놇);
+Test_N(q놈, q놈, q놈, q놈, q놈);
+Test_N(q놉, q놉, q놉, q놉, q놉);
+Test_N(q놊, q놊, q놊, q놊, q놊);
+Test_N(q놋, q놋, q놋, q놋, q놋);
+Test_N(q놌, q놌, q놌, q놌, q놌);
+Test_N(q농, q농, q농, q농, q농);
+Test_N(q놎, q놎, q놎, q놎, q놎);
+Test_N(q놏, q놏, q놏, q놏, q놏);
+Test_N(q놐, q놐, q놐, q놐, q놐);
+Test_N(q놑, q놑, q놑, q놑, q놑);
+Test_N(q높, q높, q높, q높, q높);
+Test_N(q놓, q놓, q놓, q놓, q놓);
+Test_N(q놔, q놔, q놔, q놔, q놔);
+Test_N(q놕, q놕, q놕, q놕, q놕);
+Test_N(q놖, q놖, q놖, q놖, q놖);
+Test_N(q놗, q놗, q놗, q놗, q놗);
+Test_N(q놘, q놘, q놘, q놘, q놘);
+Test_N(q놙, q놙, q놙, q놙, q놙);
+Test_N(q놚, q놚, q놚, q놚, q놚);
+Test_N(q놛, q놛, q놛, q놛, q놛);
+Test_N(q놜, q놜, q놜, q놜, q놜);
+Test_N(q놝, q놝, q놝, q놝, q놝);
+Test_N(q놞, q놞, q놞, q놞, q놞);
+Test_N(q놟, q놟, q놟, q놟, q놟);
+Test_N(q놠, q놠, q놠, q놠, q놠);
+Test_N(q놡, q놡, q놡, q놡, q놡);
+Test_N(q놢, q놢, q놢, q놢, q놢);
+Test_N(q놣, q놣, q놣, q놣, q놣);
+Test_N(q놤, q놤, q놤, q놤, q놤);
+Test_N(q놥, q놥, q놥, q놥, q놥);
+Test_N(q놦, q놦, q놦, q놦, q놦);
+Test_N(q놧, q놧, q놧, q놧, q놧);
+Test_N(q놨, q놨, q놨, q놨, q놨);
+Test_N(q놩, q놩, q놩, q놩, q놩);
+Test_N(q놪, q놪, q놪, q놪, q놪);
+Test_N(q놫, q놫, q놫, q놫, q놫);
+Test_N(q놬, q놬, q놬, q놬, q놬);
+Test_N(q놭, q놭, q놭, q놭, q놭);
+Test_N(q놮, q놮, q놮, q놮, q놮);
+Test_N(q놯, q놯, q놯, q놯, q놯);
+Test_N(q놰, q놰, q놰, q놰, q놰);
+Test_N(q놱, q놱, q놱, q놱, q놱);
+Test_N(q놲, q놲, q놲, q놲, q놲);
+Test_N(q놳, q놳, q놳, q놳, q놳);
+Test_N(q놴, q놴, q놴, q놴, q놴);
+Test_N(q놵, q놵, q놵, q놵, q놵);
+Test_N(q놶, q놶, q놶, q놶, q놶);
+Test_N(q놷, q놷, q놷, q놷, q놷);
+Test_N(q놸, q놸, q놸, q놸, q놸);
+Test_N(q놹, q놹, q놹, q놹, q놹);
+Test_N(q놺, q놺, q놺, q놺, q놺);
+Test_N(q놻, q놻, q놻, q놻, q놻);
+Test_N(q놼, q놼, q놼, q놼, q놼);
+Test_N(q놽, q놽, q놽, q놽, q놽);
+Test_N(q놾, q놾, q놾, q놾, q놾);
+Test_N(q놿, q놿, q놿, q놿, q놿);
+Test_N(q뇀, q뇀, q뇀, q뇀, q뇀);
+Test_N(q뇁, q뇁, q뇁, q뇁, q뇁);
+Test_N(q뇂, q뇂, q뇂, q뇂, q뇂);
+Test_N(q뇃, q뇃, q뇃, q뇃, q뇃);
+Test_N(q뇄, q뇄, q뇄, q뇄, q뇄);
+Test_N(q뇅, q뇅, q뇅, q뇅, q뇅);
+Test_N(q뇆, q뇆, q뇆, q뇆, q뇆);
+Test_N(q뇇, q뇇, q뇇, q뇇, q뇇);
+Test_N(q뇈, q뇈, q뇈, q뇈, q뇈);
+Test_N(q뇉, q뇉, q뇉, q뇉, q뇉);
+Test_N(q뇊, q뇊, q뇊, q뇊, q뇊);
+Test_N(q뇋, q뇋, q뇋, q뇋, q뇋);
+Test_N(q뇌, q뇌, q뇌, q뇌, q뇌);
+Test_N(q뇍, q뇍, q뇍, q뇍, q뇍);
+Test_N(q뇎, q뇎, q뇎, q뇎, q뇎);
+Test_N(q뇏, q뇏, q뇏, q뇏, q뇏);
+Test_N(q뇐, q뇐, q뇐, q뇐, q뇐);
+Test_N(q뇑, q뇑, q뇑, q뇑, q뇑);
+Test_N(q뇒, q뇒, q뇒, q뇒, q뇒);
+Test_N(q뇓, q뇓, q뇓, q뇓, q뇓);
+Test_N(q뇔, q뇔, q뇔, q뇔, q뇔);
+Test_N(q뇕, q뇕, q뇕, q뇕, q뇕);
+Test_N(q뇖, q뇖, q뇖, q뇖, q뇖);
+Test_N(q뇗, q뇗, q뇗, q뇗, q뇗);
+Test_N(q뇘, q뇘, q뇘, q뇘, q뇘);
+Test_N(q뇙, q뇙, q뇙, q뇙, q뇙);
+Test_N(q뇚, q뇚, q뇚, q뇚, q뇚);
+Test_N(q뇛, q뇛, q뇛, q뇛, q뇛);
+Test_N(q뇜, q뇜, q뇜, q뇜, q뇜);
+Test_N(q뇝, q뇝, q뇝, q뇝, q뇝);
+Test_N(q뇞, q뇞, q뇞, q뇞, q뇞);
+Test_N(q뇟, q뇟, q뇟, q뇟, q뇟);
+Test_N(q뇠, q뇠, q뇠, q뇠, q뇠);
+Test_N(q뇡, q뇡, q뇡, q뇡, q뇡);
+Test_N(q뇢, q뇢, q뇢, q뇢, q뇢);
+Test_N(q뇣, q뇣, q뇣, q뇣, q뇣);
+Test_N(q뇤, q뇤, q뇤, q뇤, q뇤);
+Test_N(q뇥, q뇥, q뇥, q뇥, q뇥);
+Test_N(q뇦, q뇦, q뇦, q뇦, q뇦);
+Test_N(q뇧, q뇧, q뇧, q뇧, q뇧);
+Test_N(q뇨, q뇨, q뇨, q뇨, q뇨);
+Test_N(q뇩, q뇩, q뇩, q뇩, q뇩);
+Test_N(q뇪, q뇪, q뇪, q뇪, q뇪);
+Test_N(q뇫, q뇫, q뇫, q뇫, q뇫);
+Test_N(q뇬, q뇬, q뇬, q뇬, q뇬);
+Test_N(q뇭, q뇭, q뇭, q뇭, q뇭);
+Test_N(q뇮, q뇮, q뇮, q뇮, q뇮);
+Test_N(q뇯, q뇯, q뇯, q뇯, q뇯);
+Test_N(q뇰, q뇰, q뇰, q뇰, q뇰);
+Test_N(q뇱, q뇱, q뇱, q뇱, q뇱);
+Test_N(q뇲, q뇲, q뇲, q뇲, q뇲);
+Test_N(q뇳, q뇳, q뇳, q뇳, q뇳);
+Test_N(q뇴, q뇴, q뇴, q뇴, q뇴);
+Test_N(q뇵, q뇵, q뇵, q뇵, q뇵);
+Test_N(q뇶, q뇶, q뇶, q뇶, q뇶);
+Test_N(q뇷, q뇷, q뇷, q뇷, q뇷);
+Test_N(q뇸, q뇸, q뇸, q뇸, q뇸);
+Test_N(q뇹, q뇹, q뇹, q뇹, q뇹);
+Test_N(q뇺, q뇺, q뇺, q뇺, q뇺);
+Test_N(q뇻, q뇻, q뇻, q뇻, q뇻);
+Test_N(q뇼, q뇼, q뇼, q뇼, q뇼);
+Test_N(q뇽, q뇽, q뇽, q뇽, q뇽);
+Test_N(q뇾, q뇾, q뇾, q뇾, q뇾);
+Test_N(q뇿, q뇿, q뇿, q뇿, q뇿);
+Test_N(q눀, q눀, q눀, q눀, q눀);
+Test_N(q눁, q눁, q눁, q눁, q눁);
+Test_N(q눂, q눂, q눂, q눂, q눂);
+Test_N(q눃, q눃, q눃, q눃, q눃);
+Test_N(q누, q누, q누, q누, q누);
+Test_N(q눅, q눅, q눅, q눅, q눅);
+Test_N(q눆, q눆, q눆, q눆, q눆);
+Test_N(q눇, q눇, q눇, q눇, q눇);
+Test_N(q눈, q눈, q눈, q눈, q눈);
+Test_N(q눉, q눉, q눉, q눉, q눉);
+Test_N(q눊, q눊, q눊, q눊, q눊);
+Test_N(q눋, q눋, q눋, q눋, q눋);
+Test_N(q눌, q눌, q눌, q눌, q눌);
+Test_N(q눍, q눍, q눍, q눍, q눍);
+Test_N(q눎, q눎, q눎, q눎, q눎);
+Test_N(q눏, q눏, q눏, q눏, q눏);
+Test_N(q눐, q눐, q눐, q눐, q눐);
+Test_N(q눑, q눑, q눑, q눑, q눑);
+Test_N(q눒, q눒, q눒, q눒, q눒);
+Test_N(q눓, q눓, q눓, q눓, q눓);
+Test_N(q눔, q눔, q눔, q눔, q눔);
+Test_N(q눕, q눕, q눕, q눕, q눕);
+Test_N(q눖, q눖, q눖, q눖, q눖);
+Test_N(q눗, q눗, q눗, q눗, q눗);
+Test_N(q눘, q눘, q눘, q눘, q눘);
+Test_N(q눙, q눙, q눙, q눙, q눙);
+Test_N(q눚, q눚, q눚, q눚, q눚);
+Test_N(q눛, q눛, q눛, q눛, q눛);
+Test_N(q눜, q눜, q눜, q눜, q눜);
+Test_N(q눝, q눝, q눝, q눝, q눝);
+Test_N(q눞, q눞, q눞, q눞, q눞);
+Test_N(q눟, q눟, q눟, q눟, q눟);
+Test_N(q눠, q눠, q눠, q눠, q눠);
+Test_N(q눡, q눡, q눡, q눡, q눡);
+Test_N(q눢, q눢, q눢, q눢, q눢);
+Test_N(q눣, q눣, q눣, q눣, q눣);
+Test_N(q눤, q눤, q눤, q눤, q눤);
+Test_N(q눥, q눥, q눥, q눥, q눥);
+Test_N(q눦, q눦, q눦, q눦, q눦);
+Test_N(q눧, q눧, q눧, q눧, q눧);
+Test_N(q눨, q눨, q눨, q눨, q눨);
+Test_N(q눩, q눩, q눩, q눩, q눩);
+Test_N(q눪, q눪, q눪, q눪, q눪);
+Test_N(q눫, q눫, q눫, q눫, q눫);
+Test_N(q눬, q눬, q눬, q눬, q눬);
+Test_N(q눭, q눭, q눭, q눭, q눭);
+Test_N(q눮, q눮, q눮, q눮, q눮);
+Test_N(q눯, q눯, q눯, q눯, q눯);
+Test_N(q눰, q눰, q눰, q눰, q눰);
+Test_N(q눱, q눱, q눱, q눱, q눱);
+Test_N(q눲, q눲, q눲, q눲, q눲);
+Test_N(q눳, q눳, q눳, q눳, q눳);
+Test_N(q눴, q눴, q눴, q눴, q눴);
+Test_N(q눵, q눵, q눵, q눵, q눵);
+Test_N(q눶, q눶, q눶, q눶, q눶);
+Test_N(q눷, q눷, q눷, q눷, q눷);
+Test_N(q눸, q눸, q눸, q눸, q눸);
+Test_N(q눹, q눹, q눹, q눹, q눹);
+Test_N(q눺, q눺, q눺, q눺, q눺);
+Test_N(q눻, q눻, q눻, q눻, q눻);
+Test_N(q눼, q눼, q눼, q눼, q눼);
+Test_N(q눽, q눽, q눽, q눽, q눽);
+Test_N(q눾, q눾, q눾, q눾, q눾);
+Test_N(q눿, q눿, q눿, q눿, q눿);
+Test_N(q뉀, q뉀, q뉀, q뉀, q뉀);
+Test_N(q뉁, q뉁, q뉁, q뉁, q뉁);
+Test_N(q뉂, q뉂, q뉂, q뉂, q뉂);
+Test_N(q뉃, q뉃, q뉃, q뉃, q뉃);
+Test_N(q뉄, q뉄, q뉄, q뉄, q뉄);
+Test_N(q뉅, q뉅, q뉅, q뉅, q뉅);
+Test_N(q뉆, q뉆, q뉆, q뉆, q뉆);
+Test_N(q뉇, q뉇, q뉇, q뉇, q뉇);
+Test_N(q뉈, q뉈, q뉈, q뉈, q뉈);
+Test_N(q뉉, q뉉, q뉉, q뉉, q뉉);
+Test_N(q뉊, q뉊, q뉊, q뉊, q뉊);
+Test_N(q뉋, q뉋, q뉋, q뉋, q뉋);
+Test_N(q뉌, q뉌, q뉌, q뉌, q뉌);
+Test_N(q뉍, q뉍, q뉍, q뉍, q뉍);
+Test_N(q뉎, q뉎, q뉎, q뉎, q뉎);
+Test_N(q뉏, q뉏, q뉏, q뉏, q뉏);
+Test_N(q뉐, q뉐, q뉐, q뉐, q뉐);
+Test_N(q뉑, q뉑, q뉑, q뉑, q뉑);
+Test_N(q뉒, q뉒, q뉒, q뉒, q뉒);
+Test_N(q뉓, q뉓, q뉓, q뉓, q뉓);
+Test_N(q뉔, q뉔, q뉔, q뉔, q뉔);
+Test_N(q뉕, q뉕, q뉕, q뉕, q뉕);
+Test_N(q뉖, q뉖, q뉖, q뉖, q뉖);
+Test_N(q뉗, q뉗, q뉗, q뉗, q뉗);
+Test_N(q뉘, q뉘, q뉘, q뉘, q뉘);
+Test_N(q뉙, q뉙, q뉙, q뉙, q뉙);
+Test_N(q뉚, q뉚, q뉚, q뉚, q뉚);
+Test_N(q뉛, q뉛, q뉛, q뉛, q뉛);
+Test_N(q뉜, q뉜, q뉜, q뉜, q뉜);
+Test_N(q뉝, q뉝, q뉝, q뉝, q뉝);
+Test_N(q뉞, q뉞, q뉞, q뉞, q뉞);
+Test_N(q뉟, q뉟, q뉟, q뉟, q뉟);
+Test_N(q뉠, q뉠, q뉠, q뉠, q뉠);
+Test_N(q뉡, q뉡, q뉡, q뉡, q뉡);
+Test_N(q뉢, q뉢, q뉢, q뉢, q뉢);
+Test_N(q뉣, q뉣, q뉣, q뉣, q뉣);
+Test_N(q뉤, q뉤, q뉤, q뉤, q뉤);
+Test_N(q뉥, q뉥, q뉥, q뉥, q뉥);
+Test_N(q뉦, q뉦, q뉦, q뉦, q뉦);
+Test_N(q뉧, q뉧, q뉧, q뉧, q뉧);
+Test_N(q뉨, q뉨, q뉨, q뉨, q뉨);
+Test_N(q뉩, q뉩, q뉩, q뉩, q뉩);
+Test_N(q뉪, q뉪, q뉪, q뉪, q뉪);
+Test_N(q뉫, q뉫, q뉫, q뉫, q뉫);
+Test_N(q뉬, q뉬, q뉬, q뉬, q뉬);
+Test_N(q뉭, q뉭, q뉭, q뉭, q뉭);
+Test_N(q뉮, q뉮, q뉮, q뉮, q뉮);
+Test_N(q뉯, q뉯, q뉯, q뉯, q뉯);
+Test_N(q뉰, q뉰, q뉰, q뉰, q뉰);
+Test_N(q뉱, q뉱, q뉱, q뉱, q뉱);
+Test_N(q뉲, q뉲, q뉲, q뉲, q뉲);
+Test_N(q뉳, q뉳, q뉳, q뉳, q뉳);
+Test_N(q뉴, q뉴, q뉴, q뉴, q뉴);
+Test_N(q뉵, q뉵, q뉵, q뉵, q뉵);
+Test_N(q뉶, q뉶, q뉶, q뉶, q뉶);
+Test_N(q뉷, q뉷, q뉷, q뉷, q뉷);
+Test_N(q뉸, q뉸, q뉸, q뉸, q뉸);
+Test_N(q뉹, q뉹, q뉹, q뉹, q뉹);
+Test_N(q뉺, q뉺, q뉺, q뉺, q뉺);
+Test_N(q뉻, q뉻, q뉻, q뉻, q뉻);
+Test_N(q뉼, q뉼, q뉼, q뉼, q뉼);
+Test_N(q뉽, q뉽, q뉽, q뉽, q뉽);
+Test_N(q뉾, q뉾, q뉾, q뉾, q뉾);
+Test_N(q뉿, q뉿, q뉿, q뉿, q뉿);
+Test_N(q늀, q늀, q늀, q늀, q늀);
+Test_N(q늁, q늁, q늁, q늁, q늁);
+Test_N(q늂, q늂, q늂, q늂, q늂);
+Test_N(q늃, q늃, q늃, q늃, q늃);
+Test_N(q늄, q늄, q늄, q늄, q늄);
+Test_N(q늅, q늅, q늅, q늅, q늅);
+Test_N(q늆, q늆, q늆, q늆, q늆);
+Test_N(q늇, q늇, q늇, q늇, q늇);
+Test_N(q늈, q늈, q늈, q늈, q늈);
+Test_N(q늉, q늉, q늉, q늉, q늉);
+Test_N(q늊, q늊, q늊, q늊, q늊);
+Test_N(q늋, q늋, q늋, q늋, q늋);
+Test_N(q늌, q늌, q늌, q늌, q늌);
+Test_N(q늍, q늍, q늍, q늍, q늍);
+Test_N(q늎, q늎, q늎, q늎, q늎);
+Test_N(q늏, q늏, q늏, q늏, q늏);
+Test_N(q느, q느, q느, q느, q느);
+Test_N(q늑, q늑, q늑, q늑, q늑);
+Test_N(q늒, q늒, q늒, q늒, q늒);
+Test_N(q늓, q늓, q늓, q늓, q늓);
+Test_N(q는, q는, q는, q는, q는);
+Test_N(q늕, q늕, q늕, q늕, q늕);
+Test_N(q늖, q늖, q늖, q늖, q늖);
+Test_N(q늗, q늗, q늗, q늗, q늗);
+Test_N(q늘, q늘, q늘, q늘, q늘);
+Test_N(q늙, q늙, q늙, q늙, q늙);
+Test_N(q늚, q늚, q늚, q늚, q늚);
+Test_N(q늛, q늛, q늛, q늛, q늛);
+Test_N(q늜, q늜, q늜, q늜, q늜);
+Test_N(q늝, q늝, q늝, q늝, q늝);
+Test_N(q늞, q늞, q늞, q늞, q늞);
+Test_N(q늟, q늟, q늟, q늟, q늟);
+Test_N(q늠, q늠, q늠, q늠, q늠);
+Test_N(q늡, q늡, q늡, q늡, q늡);
+Test_N(q늢, q늢, q늢, q늢, q늢);
+Test_N(q늣, q늣, q늣, q늣, q늣);
+Test_N(q늤, q늤, q늤, q늤, q늤);
+Test_N(q능, q능, q능, q능, q능);
+Test_N(q늦, q늦, q늦, q늦, q늦);
+Test_N(q늧, q늧, q늧, q늧, q늧);
+Test_N(q늨, q늨, q늨, q늨, q늨);
+Test_N(q늩, q늩, q늩, q늩, q늩);
+Test_N(q늪, q늪, q늪, q늪, q늪);
+Test_N(q늫, q늫, q늫, q늫, q늫);
+Test_N(q늬, q늬, q늬, q늬, q늬);
+Test_N(q늭, q늭, q늭, q늭, q늭);
+Test_N(q늮, q늮, q늮, q늮, q늮);
+Test_N(q늯, q늯, q늯, q늯, q늯);
+Test_N(q늰, q늰, q늰, q늰, q늰);
+Test_N(q늱, q늱, q늱, q늱, q늱);
+Test_N(q늲, q늲, q늲, q늲, q늲);
+Test_N(q늳, q늳, q늳, q늳, q늳);
+Test_N(q늴, q늴, q늴, q늴, q늴);
+Test_N(q늵, q늵, q늵, q늵, q늵);
+Test_N(q늶, q늶, q늶, q늶, q늶);
+Test_N(q늷, q늷, q늷, q늷, q늷);
+Test_N(q늸, q늸, q늸, q늸, q늸);
+Test_N(q늹, q늹, q늹, q늹, q늹);
+Test_N(q늺, q늺, q늺, q늺, q늺);
+Test_N(q늻, q늻, q늻, q늻, q늻);
+Test_N(q늼, q늼, q늼, q늼, q늼);
+Test_N(q늽, q늽, q늽, q늽, q늽);
+Test_N(q늾, q늾, q늾, q늾, q늾);
+Test_N(q늿, q늿, q늿, q늿, q늿);
+Test_N(q닀, q닀, q닀, q닀, q닀);
+Test_N(q닁, q닁, q닁, q닁, q닁);
+Test_N(q닂, q닂, q닂, q닂, q닂);
+Test_N(q닃, q닃, q닃, q닃, q닃);
+Test_N(q닄, q닄, q닄, q닄, q닄);
+Test_N(q닅, q닅, q닅, q닅, q닅);
+Test_N(q닆, q닆, q닆, q닆, q닆);
+Test_N(q닇, q닇, q닇, q닇, q닇);
+Test_N(q니, q니, q니, q니, q니);
+Test_N(q닉, q닉, q닉, q닉, q닉);
+Test_N(q닊, q닊, q닊, q닊, q닊);
+Test_N(q닋, q닋, q닋, q닋, q닋);
+Test_N(q닌, q닌, q닌, q닌, q닌);
+Test_N(q닍, q닍, q닍, q닍, q닍);
+Test_N(q닎, q닎, q닎, q닎, q닎);
+Test_N(q닏, q닏, q닏, q닏, q닏);
+Test_N(q닐, q닐, q닐, q닐, q닐);
+Test_N(q닑, q닑, q닑, q닑, q닑);
+Test_N(q닒, q닒, q닒, q닒, q닒);
+Test_N(q닓, q닓, q닓, q닓, q닓);
+Test_N(q닔, q닔, q닔, q닔, q닔);
+Test_N(q닕, q닕, q닕, q닕, q닕);
+Test_N(q닖, q닖, q닖, q닖, q닖);
+Test_N(q닗, q닗, q닗, q닗, q닗);
+Test_N(q님, q님, q님, q님, q님);
+Test_N(q닙, q닙, q닙, q닙, q닙);
+Test_N(q닚, q닚, q닚, q닚, q닚);
+Test_N(q닛, q닛, q닛, q닛, q닛);
+Test_N(q닜, q닜, q닜, q닜, q닜);
+Test_N(q닝, q닝, q닝, q닝, q닝);
+Test_N(q닞, q닞, q닞, q닞, q닞);
+Test_N(q닟, q닟, q닟, q닟, q닟);
+Test_N(q닠, q닠, q닠, q닠, q닠);
+Test_N(q닡, q닡, q닡, q닡, q닡);
+Test_N(q닢, q닢, q닢, q닢, q닢);
+Test_N(q닣, q닣, q닣, q닣, q닣);
+Test_N(q다, q다, q다, q다, q다);
+Test_N(q닥, q닥, q닥, q닥, q닥);
+Test_N(q닦, q닦, q닦, q닦, q닦);
+Test_N(q닧, q닧, q닧, q닧, q닧);
+Test_N(q단, q단, q단, q단, q단);
+Test_N(q닩, q닩, q닩, q닩, q닩);
+Test_N(q닪, q닪, q닪, q닪, q닪);
+Test_N(q닫, q닫, q닫, q닫, q닫);
+Test_N(q달, q달, q달, q달, q달);
+Test_N(q닭, q닭, q닭, q닭, q닭);
+Test_N(q닮, q닮, q닮, q닮, q닮);
+Test_N(q닯, q닯, q닯, q닯, q닯);
+Test_N(q닰, q닰, q닰, q닰, q닰);
+Test_N(q닱, q닱, q닱, q닱, q닱);
+Test_N(q닲, q닲, q닲, q닲, q닲);
+Test_N(q닳, q닳, q닳, q닳, q닳);
+Test_N(q담, q담, q담, q담, q담);
+Test_N(q답, q답, q답, q답, q답);
+Test_N(q닶, q닶, q닶, q닶, q닶);
+Test_N(q닷, q닷, q닷, q닷, q닷);
+Test_N(q닸, q닸, q닸, q닸, q닸);
+Test_N(q당, q당, q당, q당, q당);
+Test_N(q닺, q닺, q닺, q닺, q닺);
+Test_N(q닻, q닻, q닻, q닻, q닻);
+Test_N(q닼, q닼, q닼, q닼, q닼);
+Test_N(q닽, q닽, q닽, q닽, q닽);
+Test_N(q닾, q닾, q닾, q닾, q닾);
+Test_N(q닿, q닿, q닿, q닿, q닿);
+Test_N(q대, q대, q대, q대, q대);
+Test_N(q댁, q댁, q댁, q댁, q댁);
+Test_N(q댂, q댂, q댂, q댂, q댂);
+Test_N(q댃, q댃, q댃, q댃, q댃);
+Test_N(q댄, q댄, q댄, q댄, q댄);
+Test_N(q댅, q댅, q댅, q댅, q댅);
+Test_N(q댆, q댆, q댆, q댆, q댆);
+Test_N(q댇, q댇, q댇, q댇, q댇);
+Test_N(q댈, q댈, q댈, q댈, q댈);
+Test_N(q댉, q댉, q댉, q댉, q댉);
+Test_N(q댊, q댊, q댊, q댊, q댊);
+Test_N(q댋, q댋, q댋, q댋, q댋);
+Test_N(q댌, q댌, q댌, q댌, q댌);
+Test_N(q댍, q댍, q댍, q댍, q댍);
+Test_N(q댎, q댎, q댎, q댎, q댎);
+Test_N(q댏, q댏, q댏, q댏, q댏);
+Test_N(q댐, q댐, q댐, q댐, q댐);
+Test_N(q댑, q댑, q댑, q댑, q댑);
+Test_N(q댒, q댒, q댒, q댒, q댒);
+Test_N(q댓, q댓, q댓, q댓, q댓);
+Test_N(q댔, q댔, q댔, q댔, q댔);
+Test_N(q댕, q댕, q댕, q댕, q댕);
+Test_N(q댖, q댖, q댖, q댖, q댖);
+Test_N(q댗, q댗, q댗, q댗, q댗);
+Test_N(q댘, q댘, q댘, q댘, q댘);
+Test_N(q댙, q댙, q댙, q댙, q댙);
+Test_N(q댚, q댚, q댚, q댚, q댚);
+Test_N(q댛, q댛, q댛, q댛, q댛);
+Test_N(q댜, q댜, q댜, q댜, q댜);
+Test_N(q댝, q댝, q댝, q댝, q댝);
+Test_N(q댞, q댞, q댞, q댞, q댞);
+Test_N(q댟, q댟, q댟, q댟, q댟);
+Test_N(q댠, q댠, q댠, q댠, q댠);
+Test_N(q댡, q댡, q댡, q댡, q댡);
+Test_N(q댢, q댢, q댢, q댢, q댢);
+Test_N(q댣, q댣, q댣, q댣, q댣);
+Test_N(q댤, q댤, q댤, q댤, q댤);
+Test_N(q댥, q댥, q댥, q댥, q댥);
+Test_N(q댦, q댦, q댦, q댦, q댦);
+Test_N(q댧, q댧, q댧, q댧, q댧);
+Test_N(q댨, q댨, q댨, q댨, q댨);
+Test_N(q댩, q댩, q댩, q댩, q댩);
+Test_N(q댪, q댪, q댪, q댪, q댪);
+Test_N(q댫, q댫, q댫, q댫, q댫);
+Test_N(q댬, q댬, q댬, q댬, q댬);
+Test_N(q댭, q댭, q댭, q댭, q댭);
+Test_N(q댮, q댮, q댮, q댮, q댮);
+Test_N(q댯, q댯, q댯, q댯, q댯);
+Test_N(q댰, q댰, q댰, q댰, q댰);
+Test_N(q댱, q댱, q댱, q댱, q댱);
+Test_N(q댲, q댲, q댲, q댲, q댲);
+Test_N(q댳, q댳, q댳, q댳, q댳);
+Test_N(q댴, q댴, q댴, q댴, q댴);
+Test_N(q댵, q댵, q댵, q댵, q댵);
+Test_N(q댶, q댶, q댶, q댶, q댶);
+Test_N(q댷, q댷, q댷, q댷, q댷);
+Test_N(q댸, q댸, q댸, q댸, q댸);
+Test_N(q댹, q댹, q댹, q댹, q댹);
+Test_N(q댺, q댺, q댺, q댺, q댺);
+Test_N(q댻, q댻, q댻, q댻, q댻);
+Test_N(q댼, q댼, q댼, q댼, q댼);
+Test_N(q댽, q댽, q댽, q댽, q댽);
+Test_N(q댾, q댾, q댾, q댾, q댾);
+Test_N(q댿, q댿, q댿, q댿, q댿);
+Test_N(q덀, q덀, q덀, q덀, q덀);
+Test_N(q덁, q덁, q덁, q덁, q덁);
+Test_N(q덂, q덂, q덂, q덂, q덂);
+Test_N(q덃, q덃, q덃, q덃, q덃);
+Test_N(q덄, q덄, q덄, q덄, q덄);
+Test_N(q덅, q덅, q덅, q덅, q덅);
+Test_N(q덆, q덆, q덆, q덆, q덆);
+Test_N(q덇, q덇, q덇, q덇, q덇);
+Test_N(q덈, q덈, q덈, q덈, q덈);
+Test_N(q덉, q덉, q덉, q덉, q덉);
+Test_N(q덊, q덊, q덊, q덊, q덊);
+Test_N(q덋, q덋, q덋, q덋, q덋);
+Test_N(q덌, q덌, q덌, q덌, q덌);
+Test_N(q덍, q덍, q덍, q덍, q덍);
+Test_N(q덎, q덎, q덎, q덎, q덎);
+Test_N(q덏, q덏, q덏, q덏, q덏);
+Test_N(q덐, q덐, q덐, q덐, q덐);
+Test_N(q덑, q덑, q덑, q덑, q덑);
+Test_N(q덒, q덒, q덒, q덒, q덒);
+Test_N(q덓, q덓, q덓, q덓, q덓);
+Test_N(q더, q더, q더, q더, q더);
+Test_N(q덕, q덕, q덕, q덕, q덕);
+Test_N(q덖, q덖, q덖, q덖, q덖);
+Test_N(q덗, q덗, q덗, q덗, q덗);
+Test_N(q던, q던, q던, q던, q던);
+Test_N(q덙, q덙, q덙, q덙, q덙);
+Test_N(q덚, q덚, q덚, q덚, q덚);
+Test_N(q덛, q덛, q덛, q덛, q덛);
+Test_N(q덜, q덜, q덜, q덜, q덜);
+Test_N(q덝, q덝, q덝, q덝, q덝);
+Test_N(q덞, q덞, q덞, q덞, q덞);
+Test_N(q덟, q덟, q덟, q덟, q덟);
+Test_N(q덠, q덠, q덠, q덠, q덠);
+Test_N(q덡, q덡, q덡, q덡, q덡);
+Test_N(q덢, q덢, q덢, q덢, q덢);
+Test_N(q덣, q덣, q덣, q덣, q덣);
+Test_N(q덤, q덤, q덤, q덤, q덤);
+Test_N(q덥, q덥, q덥, q덥, q덥);
+Test_N(q덦, q덦, q덦, q덦, q덦);
+Test_N(q덧, q덧, q덧, q덧, q덧);
+Test_N(q덨, q덨, q덨, q덨, q덨);
+Test_N(q덩, q덩, q덩, q덩, q덩);
+Test_N(q덪, q덪, q덪, q덪, q덪);
+Test_N(q덫, q덫, q덫, q덫, q덫);
+Test_N(q덬, q덬, q덬, q덬, q덬);
+Test_N(q덭, q덭, q덭, q덭, q덭);
+Test_N(q덮, q덮, q덮, q덮, q덮);
+Test_N(q덯, q덯, q덯, q덯, q덯);
+Test_N(q데, q데, q데, q데, q데);
+Test_N(q덱, q덱, q덱, q덱, q덱);
+Test_N(q덲, q덲, q덲, q덲, q덲);
+Test_N(q덳, q덳, q덳, q덳, q덳);
+Test_N(q덴, q덴, q덴, q덴, q덴);
+Test_N(q덵, q덵, q덵, q덵, q덵);
+Test_N(q덶, q덶, q덶, q덶, q덶);
+Test_N(q덷, q덷, q덷, q덷, q덷);
+Test_N(q델, q델, q델, q델, q델);
+Test_N(q덹, q덹, q덹, q덹, q덹);
+Test_N(q덺, q덺, q덺, q덺, q덺);
+Test_N(q덻, q덻, q덻, q덻, q덻);
+Test_N(q덼, q덼, q덼, q덼, q덼);
+Test_N(q덽, q덽, q덽, q덽, q덽);
+Test_N(q덾, q덾, q덾, q덾, q덾);
+Test_N(q덿, q덿, q덿, q덿, q덿);
+Test_N(q뎀, q뎀, q뎀, q뎀, q뎀);
+Test_N(q뎁, q뎁, q뎁, q뎁, q뎁);
+Test_N(q뎂, q뎂, q뎂, q뎂, q뎂);
+Test_N(q뎃, q뎃, q뎃, q뎃, q뎃);
+Test_N(q뎄, q뎄, q뎄, q뎄, q뎄);
+Test_N(q뎅, q뎅, q뎅, q뎅, q뎅);
+Test_N(q뎆, q뎆, q뎆, q뎆, q뎆);
+Test_N(q뎇, q뎇, q뎇, q뎇, q뎇);
+Test_N(q뎈, q뎈, q뎈, q뎈, q뎈);
+Test_N(q뎉, q뎉, q뎉, q뎉, q뎉);
+Test_N(q뎊, q뎊, q뎊, q뎊, q뎊);
+Test_N(q뎋, q뎋, q뎋, q뎋, q뎋);
+Test_N(q뎌, q뎌, q뎌, q뎌, q뎌);
+Test_N(q뎍, q뎍, q뎍, q뎍, q뎍);
+Test_N(q뎎, q뎎, q뎎, q뎎, q뎎);
+Test_N(q뎏, q뎏, q뎏, q뎏, q뎏);
+Test_N(q뎐, q뎐, q뎐, q뎐, q뎐);
+Test_N(q뎑, q뎑, q뎑, q뎑, q뎑);
+Test_N(q뎒, q뎒, q뎒, q뎒, q뎒);
+Test_N(q뎓, q뎓, q뎓, q뎓, q뎓);
+Test_N(q뎔, q뎔, q뎔, q뎔, q뎔);
+Test_N(q뎕, q뎕, q뎕, q뎕, q뎕);
+Test_N(q뎖, q뎖, q뎖, q뎖, q뎖);
+Test_N(q뎗, q뎗, q뎗, q뎗, q뎗);
+Test_N(q뎘, q뎘, q뎘, q뎘, q뎘);
+Test_N(q뎙, q뎙, q뎙, q뎙, q뎙);
+Test_N(q뎚, q뎚, q뎚, q뎚, q뎚);
+Test_N(q뎛, q뎛, q뎛, q뎛, q뎛);
+Test_N(q뎜, q뎜, q뎜, q뎜, q뎜);
+Test_N(q뎝, q뎝, q뎝, q뎝, q뎝);
+Test_N(q뎞, q뎞, q뎞, q뎞, q뎞);
+Test_N(q뎟, q뎟, q뎟, q뎟, q뎟);
+Test_N(q뎠, q뎠, q뎠, q뎠, q뎠);
+Test_N(q뎡, q뎡, q뎡, q뎡, q뎡);
+Test_N(q뎢, q뎢, q뎢, q뎢, q뎢);
+Test_N(q뎣, q뎣, q뎣, q뎣, q뎣);
+Test_N(q뎤, q뎤, q뎤, q뎤, q뎤);
+Test_N(q뎥, q뎥, q뎥, q뎥, q뎥);
+Test_N(q뎦, q뎦, q뎦, q뎦, q뎦);
+Test_N(q뎧, q뎧, q뎧, q뎧, q뎧);
+Test_N(q뎨, q뎨, q뎨, q뎨, q뎨);
+Test_N(q뎩, q뎩, q뎩, q뎩, q뎩);
+Test_N(q뎪, q뎪, q뎪, q뎪, q뎪);
+Test_N(q뎫, q뎫, q뎫, q뎫, q뎫);
+Test_N(q뎬, q뎬, q뎬, q뎬, q뎬);
+Test_N(q뎭, q뎭, q뎭, q뎭, q뎭);
+Test_N(q뎮, q뎮, q뎮, q뎮, q뎮);
+Test_N(q뎯, q뎯, q뎯, q뎯, q뎯);
+Test_N(q뎰, q뎰, q뎰, q뎰, q뎰);
+Test_N(q뎱, q뎱, q뎱, q뎱, q뎱);
+Test_N(q뎲, q뎲, q뎲, q뎲, q뎲);
+Test_N(q뎳, q뎳, q뎳, q뎳, q뎳);
+Test_N(q뎴, q뎴, q뎴, q뎴, q뎴);
+Test_N(q뎵, q뎵, q뎵, q뎵, q뎵);
+Test_N(q뎶, q뎶, q뎶, q뎶, q뎶);
+Test_N(q뎷, q뎷, q뎷, q뎷, q뎷);
+Test_N(q뎸, q뎸, q뎸, q뎸, q뎸);
+Test_N(q뎹, q뎹, q뎹, q뎹, q뎹);
+Test_N(q뎺, q뎺, q뎺, q뎺, q뎺);
+Test_N(q뎻, q뎻, q뎻, q뎻, q뎻);
+Test_N(q뎼, q뎼, q뎼, q뎼, q뎼);
+Test_N(q뎽, q뎽, q뎽, q뎽, q뎽);
+Test_N(q뎾, q뎾, q뎾, q뎾, q뎾);
+Test_N(q뎿, q뎿, q뎿, q뎿, q뎿);
+Test_N(q돀, q돀, q돀, q돀, q돀);
+Test_N(q돁, q돁, q돁, q돁, q돁);
+Test_N(q돂, q돂, q돂, q돂, q돂);
+Test_N(q돃, q돃, q돃, q돃, q돃);
+Test_N(q도, q도, q도, q도, q도);
+Test_N(q독, q독, q독, q독, q독);
+Test_N(q돆, q돆, q돆, q돆, q돆);
+Test_N(q돇, q돇, q돇, q돇, q돇);
+Test_N(q돈, q돈, q돈, q돈, q돈);
+Test_N(q돉, q돉, q돉, q돉, q돉);
+Test_N(q돊, q돊, q돊, q돊, q돊);
+Test_N(q돋, q돋, q돋, q돋, q돋);
+Test_N(q돌, q돌, q돌, q돌, q돌);
+Test_N(q돍, q돍, q돍, q돍, q돍);
+Test_N(q돎, q돎, q돎, q돎, q돎);
+Test_N(q돏, q돏, q돏, q돏, q돏);
+Test_N(q돐, q돐, q돐, q돐, q돐);
+Test_N(q돑, q돑, q돑, q돑, q돑);
+Test_N(q돒, q돒, q돒, q돒, q돒);
+Test_N(q돓, q돓, q돓, q돓, q돓);
+Test_N(q돔, q돔, q돔, q돔, q돔);
+Test_N(q돕, q돕, q돕, q돕, q돕);
+Test_N(q돖, q돖, q돖, q돖, q돖);
+Test_N(q돗, q돗, q돗, q돗, q돗);
+Test_N(q돘, q돘, q돘, q돘, q돘);
+Test_N(q동, q동, q동, q동, q동);
+Test_N(q돚, q돚, q돚, q돚, q돚);
+Test_N(q돛, q돛, q돛, q돛, q돛);
+Test_N(q돜, q돜, q돜, q돜, q돜);
+Test_N(q돝, q돝, q돝, q돝, q돝);
+Test_N(q돞, q돞, q돞, q돞, q돞);
+Test_N(q돟, q돟, q돟, q돟, q돟);
+Test_N(q돠, q돠, q돠, q돠, q돠);
+Test_N(q돡, q돡, q돡, q돡, q돡);
+Test_N(q돢, q돢, q돢, q돢, q돢);
+Test_N(q돣, q돣, q돣, q돣, q돣);
+Test_N(q돤, q돤, q돤, q돤, q돤);
+Test_N(q돥, q돥, q돥, q돥, q돥);
+Test_N(q돦, q돦, q돦, q돦, q돦);
+Test_N(q돧, q돧, q돧, q돧, q돧);
+Test_N(q돨, q돨, q돨, q돨, q돨);
+Test_N(q돩, q돩, q돩, q돩, q돩);
+Test_N(q돪, q돪, q돪, q돪, q돪);
+Test_N(q돫, q돫, q돫, q돫, q돫);
+Test_N(q돬, q돬, q돬, q돬, q돬);
+Test_N(q돭, q돭, q돭, q돭, q돭);
+Test_N(q돮, q돮, q돮, q돮, q돮);
+Test_N(q돯, q돯, q돯, q돯, q돯);
+Test_N(q돰, q돰, q돰, q돰, q돰);
+Test_N(q돱, q돱, q돱, q돱, q돱);
+Test_N(q돲, q돲, q돲, q돲, q돲);
+Test_N(q돳, q돳, q돳, q돳, q돳);
+Test_N(q돴, q돴, q돴, q돴, q돴);
+Test_N(q돵, q돵, q돵, q돵, q돵);
+Test_N(q돶, q돶, q돶, q돶, q돶);
+Test_N(q돷, q돷, q돷, q돷, q돷);
+Test_N(q돸, q돸, q돸, q돸, q돸);
+Test_N(q돹, q돹, q돹, q돹, q돹);
+Test_N(q돺, q돺, q돺, q돺, q돺);
+Test_N(q돻, q돻, q돻, q돻, q돻);
+Test_N(q돼, q돼, q돼, q돼, q돼);
+Test_N(q돽, q돽, q돽, q돽, q돽);
+Test_N(q돾, q돾, q돾, q돾, q돾);
+Test_N(q돿, q돿, q돿, q돿, q돿);
+Test_N(q됀, q됀, q됀, q됀, q됀);
+Test_N(q됁, q됁, q됁, q됁, q됁);
+Test_N(q됂, q됂, q됂, q됂, q됂);
+Test_N(q됃, q됃, q됃, q됃, q됃);
+Test_N(q됄, q됄, q됄, q됄, q됄);
+Test_N(q됅, q됅, q됅, q됅, q됅);
+Test_N(q됆, q됆, q됆, q됆, q됆);
+Test_N(q됇, q됇, q됇, q됇, q됇);
+Test_N(q됈, q됈, q됈, q됈, q됈);
+Test_N(q됉, q됉, q됉, q됉, q됉);
+Test_N(q됊, q됊, q됊, q됊, q됊);
+Test_N(q됋, q됋, q됋, q됋, q됋);
+Test_N(q됌, q됌, q됌, q됌, q됌);
+Test_N(q됍, q됍, q됍, q됍, q됍);
+Test_N(q됎, q됎, q됎, q됎, q됎);
+Test_N(q됏, q됏, q됏, q됏, q됏);
+Test_N(q됐, q됐, q됐, q됐, q됐);
+Test_N(q됑, q됑, q됑, q됑, q됑);
+Test_N(q됒, q됒, q됒, q됒, q됒);
+Test_N(q됓, q됓, q됓, q됓, q됓);
+Test_N(q됔, q됔, q됔, q됔, q됔);
+Test_N(q됕, q됕, q됕, q됕, q됕);
+Test_N(q됖, q됖, q됖, q됖, q됖);
+Test_N(q됗, q됗, q됗, q됗, q됗);
+Test_N(q되, q되, q되, q되, q되);
+Test_N(q됙, q됙, q됙, q됙, q됙);
+Test_N(q됚, q됚, q됚, q됚, q됚);
+Test_N(q됛, q됛, q됛, q됛, q됛);
+Test_N(q된, q된, q된, q된, q된);
+Test_N(q됝, q됝, q됝, q됝, q됝);
+Test_N(q됞, q됞, q됞, q됞, q됞);
+Test_N(q됟, q됟, q됟, q됟, q됟);
+Test_N(q될, q될, q될, q될, q될);
+Test_N(q됡, q됡, q됡, q됡, q됡);
+Test_N(q됢, q됢, q됢, q됢, q됢);
+Test_N(q됣, q됣, q됣, q됣, q됣);
+Test_N(q됤, q됤, q됤, q됤, q됤);
+Test_N(q됥, q됥, q됥, q됥, q됥);
+Test_N(q됦, q됦, q됦, q됦, q됦);
+Test_N(q됧, q됧, q됧, q됧, q됧);
+Test_N(q됨, q됨, q됨, q됨, q됨);
+Test_N(q됩, q됩, q됩, q됩, q됩);
+Test_N(q됪, q됪, q됪, q됪, q됪);
+Test_N(q됫, q됫, q됫, q됫, q됫);
+Test_N(q됬, q됬, q됬, q됬, q됬);
+Test_N(q됭, q됭, q됭, q됭, q됭);
+Test_N(q됮, q됮, q됮, q됮, q됮);
+Test_N(q됯, q됯, q됯, q됯, q됯);
+Test_N(q됰, q됰, q됰, q됰, q됰);
+Test_N(q됱, q됱, q됱, q됱, q됱);
+Test_N(q됲, q됲, q됲, q됲, q됲);
+Test_N(q됳, q됳, q됳, q됳, q됳);
+Test_N(q됴, q됴, q됴, q됴, q됴);
+Test_N(q됵, q됵, q됵, q됵, q됵);
+Test_N(q됶, q됶, q됶, q됶, q됶);
+Test_N(q됷, q됷, q됷, q됷, q됷);
+Test_N(q됸, q됸, q됸, q됸, q됸);
+Test_N(q됹, q됹, q됹, q됹, q됹);
+Test_N(q됺, q됺, q됺, q됺, q됺);
+Test_N(q됻, q됻, q됻, q됻, q됻);
+Test_N(q됼, q됼, q됼, q됼, q됼);
+Test_N(q됽, q됽, q됽, q됽, q됽);
+Test_N(q됾, q됾, q됾, q됾, q됾);
+Test_N(q됿, q됿, q됿, q됿, q됿);
+Test_N(q둀, q둀, q둀, q둀, q둀);
+Test_N(q둁, q둁, q둁, q둁, q둁);
+Test_N(q둂, q둂, q둂, q둂, q둂);
+Test_N(q둃, q둃, q둃, q둃, q둃);
+Test_N(q둄, q둄, q둄, q둄, q둄);
+Test_N(q둅, q둅, q둅, q둅, q둅);
+Test_N(q둆, q둆, q둆, q둆, q둆);
+Test_N(q둇, q둇, q둇, q둇, q둇);
+Test_N(q둈, q둈, q둈, q둈, q둈);
+Test_N(q둉, q둉, q둉, q둉, q둉);
+Test_N(q둊, q둊, q둊, q둊, q둊);
+Test_N(q둋, q둋, q둋, q둋, q둋);
+Test_N(q둌, q둌, q둌, q둌, q둌);
+Test_N(q둍, q둍, q둍, q둍, q둍);
+Test_N(q둎, q둎, q둎, q둎, q둎);
+Test_N(q둏, q둏, q둏, q둏, q둏);
+Test_N(q두, q두, q두, q두, q두);
+Test_N(q둑, q둑, q둑, q둑, q둑);
+Test_N(q둒, q둒, q둒, q둒, q둒);
+Test_N(q둓, q둓, q둓, q둓, q둓);
+Test_N(q둔, q둔, q둔, q둔, q둔);
+Test_N(q둕, q둕, q둕, q둕, q둕);
+Test_N(q둖, q둖, q둖, q둖, q둖);
+Test_N(q둗, q둗, q둗, q둗, q둗);
+Test_N(q둘, q둘, q둘, q둘, q둘);
+Test_N(q둙, q둙, q둙, q둙, q둙);
+Test_N(q둚, q둚, q둚, q둚, q둚);
+Test_N(q둛, q둛, q둛, q둛, q둛);
+Test_N(q둜, q둜, q둜, q둜, q둜);
+Test_N(q둝, q둝, q둝, q둝, q둝);
+Test_N(q둞, q둞, q둞, q둞, q둞);
+Test_N(q둟, q둟, q둟, q둟, q둟);
+Test_N(q둠, q둠, q둠, q둠, q둠);
+Test_N(q둡, q둡, q둡, q둡, q둡);
+Test_N(q둢, q둢, q둢, q둢, q둢);
+Test_N(q둣, q둣, q둣, q둣, q둣);
+Test_N(q둤, q둤, q둤, q둤, q둤);
+Test_N(q둥, q둥, q둥, q둥, q둥);
+Test_N(q둦, q둦, q둦, q둦, q둦);
+Test_N(q둧, q둧, q둧, q둧, q둧);
+Test_N(q둨, q둨, q둨, q둨, q둨);
+Test_N(q둩, q둩, q둩, q둩, q둩);
+Test_N(q둪, q둪, q둪, q둪, q둪);
+Test_N(q둫, q둫, q둫, q둫, q둫);
+Test_N(q둬, q둬, q둬, q둬, q둬);
+Test_N(q둭, q둭, q둭, q둭, q둭);
+Test_N(q둮, q둮, q둮, q둮, q둮);
+Test_N(q둯, q둯, q둯, q둯, q둯);
+Test_N(q둰, q둰, q둰, q둰, q둰);
+Test_N(q둱, q둱, q둱, q둱, q둱);
+Test_N(q둲, q둲, q둲, q둲, q둲);
+Test_N(q둳, q둳, q둳, q둳, q둳);
+Test_N(q둴, q둴, q둴, q둴, q둴);
+Test_N(q둵, q둵, q둵, q둵, q둵);
+Test_N(q둶, q둶, q둶, q둶, q둶);
+Test_N(q둷, q둷, q둷, q둷, q둷);
+Test_N(q둸, q둸, q둸, q둸, q둸);
+Test_N(q둹, q둹, q둹, q둹, q둹);
+Test_N(q둺, q둺, q둺, q둺, q둺);
+Test_N(q둻, q둻, q둻, q둻, q둻);
+Test_N(q둼, q둼, q둼, q둼, q둼);
+Test_N(q둽, q둽, q둽, q둽, q둽);
+Test_N(q둾, q둾, q둾, q둾, q둾);
+Test_N(q둿, q둿, q둿, q둿, q둿);
+Test_N(q뒀, q뒀, q뒀, q뒀, q뒀);
+Test_N(q뒁, q뒁, q뒁, q뒁, q뒁);
+Test_N(q뒂, q뒂, q뒂, q뒂, q뒂);
+Test_N(q뒃, q뒃, q뒃, q뒃, q뒃);
+Test_N(q뒄, q뒄, q뒄, q뒄, q뒄);
+Test_N(q뒅, q뒅, q뒅, q뒅, q뒅);
+Test_N(q뒆, q뒆, q뒆, q뒆, q뒆);
+Test_N(q뒇, q뒇, q뒇, q뒇, q뒇);
+Test_N(q뒈, q뒈, q뒈, q뒈, q뒈);
+Test_N(q뒉, q뒉, q뒉, q뒉, q뒉);
+Test_N(q뒊, q뒊, q뒊, q뒊, q뒊);
+Test_N(q뒋, q뒋, q뒋, q뒋, q뒋);
+Test_N(q뒌, q뒌, q뒌, q뒌, q뒌);
+Test_N(q뒍, q뒍, q뒍, q뒍, q뒍);
+Test_N(q뒎, q뒎, q뒎, q뒎, q뒎);
+Test_N(q뒏, q뒏, q뒏, q뒏, q뒏);
+Test_N(q뒐, q뒐, q뒐, q뒐, q뒐);
+Test_N(q뒑, q뒑, q뒑, q뒑, q뒑);
+Test_N(q뒒, q뒒, q뒒, q뒒, q뒒);
+Test_N(q뒓, q뒓, q뒓, q뒓, q뒓);
+Test_N(q뒔, q뒔, q뒔, q뒔, q뒔);
+Test_N(q뒕, q뒕, q뒕, q뒕, q뒕);
+Test_N(q뒖, q뒖, q뒖, q뒖, q뒖);
+Test_N(q뒗, q뒗, q뒗, q뒗, q뒗);
+Test_N(q뒘, q뒘, q뒘, q뒘, q뒘);
+Test_N(q뒙, q뒙, q뒙, q뒙, q뒙);
+Test_N(q뒚, q뒚, q뒚, q뒚, q뒚);
+Test_N(q뒛, q뒛, q뒛, q뒛, q뒛);
+Test_N(q뒜, q뒜, q뒜, q뒜, q뒜);
+Test_N(q뒝, q뒝, q뒝, q뒝, q뒝);
+Test_N(q뒞, q뒞, q뒞, q뒞, q뒞);
+Test_N(q뒟, q뒟, q뒟, q뒟, q뒟);
+Test_N(q뒠, q뒠, q뒠, q뒠, q뒠);
+Test_N(q뒡, q뒡, q뒡, q뒡, q뒡);
+Test_N(q뒢, q뒢, q뒢, q뒢, q뒢);
+Test_N(q뒣, q뒣, q뒣, q뒣, q뒣);
+Test_N(q뒤, q뒤, q뒤, q뒤, q뒤);
+Test_N(q뒥, q뒥, q뒥, q뒥, q뒥);
+Test_N(q뒦, q뒦, q뒦, q뒦, q뒦);
+Test_N(q뒧, q뒧, q뒧, q뒧, q뒧);
+Test_N(q뒨, q뒨, q뒨, q뒨, q뒨);
+Test_N(q뒩, q뒩, q뒩, q뒩, q뒩);
+Test_N(q뒪, q뒪, q뒪, q뒪, q뒪);
+Test_N(q뒫, q뒫, q뒫, q뒫, q뒫);
+Test_N(q뒬, q뒬, q뒬, q뒬, q뒬);
+Test_N(q뒭, q뒭, q뒭, q뒭, q뒭);
+Test_N(q뒮, q뒮, q뒮, q뒮, q뒮);
+Test_N(q뒯, q뒯, q뒯, q뒯, q뒯);
+Test_N(q뒰, q뒰, q뒰, q뒰, q뒰);
+Test_N(q뒱, q뒱, q뒱, q뒱, q뒱);
+Test_N(q뒲, q뒲, q뒲, q뒲, q뒲);
+Test_N(q뒳, q뒳, q뒳, q뒳, q뒳);
+Test_N(q뒴, q뒴, q뒴, q뒴, q뒴);
+Test_N(q뒵, q뒵, q뒵, q뒵, q뒵);
+Test_N(q뒶, q뒶, q뒶, q뒶, q뒶);
+Test_N(q뒷, q뒷, q뒷, q뒷, q뒷);
+Test_N(q뒸, q뒸, q뒸, q뒸, q뒸);
+Test_N(q뒹, q뒹, q뒹, q뒹, q뒹);
+Test_N(q뒺, q뒺, q뒺, q뒺, q뒺);
+Test_N(q뒻, q뒻, q뒻, q뒻, q뒻);
+Test_N(q뒼, q뒼, q뒼, q뒼, q뒼);
+Test_N(q뒽, q뒽, q뒽, q뒽, q뒽);
+Test_N(q뒾, q뒾, q뒾, q뒾, q뒾);
+Test_N(q뒿, q뒿, q뒿, q뒿, q뒿);
+Test_N(q듀, q듀, q듀, q듀, q듀);
+Test_N(q듁, q듁, q듁, q듁, q듁);
+Test_N(q듂, q듂, q듂, q듂, q듂);
+Test_N(q듃, q듃, q듃, q듃, q듃);
+Test_N(q듄, q듄, q듄, q듄, q듄);
+Test_N(q듅, q듅, q듅, q듅, q듅);
+Test_N(q듆, q듆, q듆, q듆, q듆);
+Test_N(q듇, q듇, q듇, q듇, q듇);
+Test_N(q듈, q듈, q듈, q듈, q듈);
+Test_N(q듉, q듉, q듉, q듉, q듉);
+Test_N(q듊, q듊, q듊, q듊, q듊);
+Test_N(q듋, q듋, q듋, q듋, q듋);
+Test_N(q듌, q듌, q듌, q듌, q듌);
+Test_N(q듍, q듍, q듍, q듍, q듍);
+Test_N(q듎, q듎, q듎, q듎, q듎);
+Test_N(q듏, q듏, q듏, q듏, q듏);
+Test_N(q듐, q듐, q듐, q듐, q듐);
+Test_N(q듑, q듑, q듑, q듑, q듑);
+Test_N(q듒, q듒, q듒, q듒, q듒);
+Test_N(q듓, q듓, q듓, q듓, q듓);
+Test_N(q듔, q듔, q듔, q듔, q듔);
+Test_N(q듕, q듕, q듕, q듕, q듕);
+Test_N(q듖, q듖, q듖, q듖, q듖);
+Test_N(q듗, q듗, q듗, q듗, q듗);
+Test_N(q듘, q듘, q듘, q듘, q듘);
+Test_N(q듙, q듙, q듙, q듙, q듙);
+Test_N(q듚, q듚, q듚, q듚, q듚);
+Test_N(q듛, q듛, q듛, q듛, q듛);
+Test_N(q드, q드, q드, q드, q드);
+Test_N(q득, q득, q득, q득, q득);
+Test_N(q듞, q듞, q듞, q듞, q듞);
+Test_N(q듟, q듟, q듟, q듟, q듟);
+Test_N(q든, q든, q든, q든, q든);
+Test_N(q듡, q듡, q듡, q듡, q듡);
+Test_N(q듢, q듢, q듢, q듢, q듢);
+Test_N(q듣, q듣, q듣, q듣, q듣);
+Test_N(q들, q들, q들, q들, q들);
+Test_N(q듥, q듥, q듥, q듥, q듥);
+Test_N(q듦, q듦, q듦, q듦, q듦);
+Test_N(q듧, q듧, q듧, q듧, q듧);
+Test_N(q듨, q듨, q듨, q듨, q듨);
+Test_N(q듩, q듩, q듩, q듩, q듩);
+Test_N(q듪, q듪, q듪, q듪, q듪);
+Test_N(q듫, q듫, q듫, q듫, q듫);
+Test_N(q듬, q듬, q듬, q듬, q듬);
+Test_N(q듭, q듭, q듭, q듭, q듭);
+Test_N(q듮, q듮, q듮, q듮, q듮);
+Test_N(q듯, q듯, q듯, q듯, q듯);
+Test_N(q듰, q듰, q듰, q듰, q듰);
+Test_N(q등, q등, q등, q등, q등);
+Test_N(q듲, q듲, q듲, q듲, q듲);
+Test_N(q듳, q듳, q듳, q듳, q듳);
+Test_N(q듴, q듴, q듴, q듴, q듴);
+Test_N(q듵, q듵, q듵, q듵, q듵);
+Test_N(q듶, q듶, q듶, q듶, q듶);
+Test_N(q듷, q듷, q듷, q듷, q듷);
+Test_N(q듸, q듸, q듸, q듸, q듸);
+Test_N(q듹, q듹, q듹, q듹, q듹);
+Test_N(q듺, q듺, q듺, q듺, q듺);
+Test_N(q듻, q듻, q듻, q듻, q듻);
+Test_N(q듼, q듼, q듼, q듼, q듼);
+Test_N(q듽, q듽, q듽, q듽, q듽);
+Test_N(q듾, q듾, q듾, q듾, q듾);
+Test_N(q듿, q듿, q듿, q듿, q듿);
+Test_N(q딀, q딀, q딀, q딀, q딀);
+Test_N(q딁, q딁, q딁, q딁, q딁);
+Test_N(q딂, q딂, q딂, q딂, q딂);
+Test_N(q딃, q딃, q딃, q딃, q딃);
+Test_N(q딄, q딄, q딄, q딄, q딄);
+Test_N(q딅, q딅, q딅, q딅, q딅);
+Test_N(q딆, q딆, q딆, q딆, q딆);
+Test_N(q딇, q딇, q딇, q딇, q딇);
+Test_N(q딈, q딈, q딈, q딈, q딈);
+Test_N(q딉, q딉, q딉, q딉, q딉);
+Test_N(q딊, q딊, q딊, q딊, q딊);
+Test_N(q딋, q딋, q딋, q딋, q딋);
+Test_N(q딌, q딌, q딌, q딌, q딌);
+Test_N(q딍, q딍, q딍, q딍, q딍);
+Test_N(q딎, q딎, q딎, q딎, q딎);
+Test_N(q딏, q딏, q딏, q딏, q딏);
+Test_N(q딐, q딐, q딐, q딐, q딐);
+Test_N(q딑, q딑, q딑, q딑, q딑);
+Test_N(q딒, q딒, q딒, q딒, q딒);
+Test_N(q딓, q딓, q딓, q딓, q딓);
+Test_N(q디, q디, q디, q디, q디);
+Test_N(q딕, q딕, q딕, q딕, q딕);
+Test_N(q딖, q딖, q딖, q딖, q딖);
+Test_N(q딗, q딗, q딗, q딗, q딗);
+Test_N(q딘, q딘, q딘, q딘, q딘);
+Test_N(q딙, q딙, q딙, q딙, q딙);
+Test_N(q딚, q딚, q딚, q딚, q딚);
+Test_N(q딛, q딛, q딛, q딛, q딛);
+Test_N(q딜, q딜, q딜, q딜, q딜);
+Test_N(q딝, q딝, q딝, q딝, q딝);
+Test_N(q딞, q딞, q딞, q딞, q딞);
+Test_N(q딟, q딟, q딟, q딟, q딟);
+Test_N(q딠, q딠, q딠, q딠, q딠);
+Test_N(q딡, q딡, q딡, q딡, q딡);
+Test_N(q딢, q딢, q딢, q딢, q딢);
+Test_N(q딣, q딣, q딣, q딣, q딣);
+Test_N(q딤, q딤, q딤, q딤, q딤);
+Test_N(q딥, q딥, q딥, q딥, q딥);
+Test_N(q딦, q딦, q딦, q딦, q딦);
+Test_N(q딧, q딧, q딧, q딧, q딧);
+Test_N(q딨, q딨, q딨, q딨, q딨);
+Test_N(q딩, q딩, q딩, q딩, q딩);
+Test_N(q딪, q딪, q딪, q딪, q딪);
+Test_N(q딫, q딫, q딫, q딫, q딫);
+Test_N(q딬, q딬, q딬, q딬, q딬);
+Test_N(q딭, q딭, q딭, q딭, q딭);
+Test_N(q딮, q딮, q딮, q딮, q딮);
+Test_N(q딯, q딯, q딯, q딯, q딯);
+Test_N(q따, q따, q따, q따, q따);
+Test_N(q딱, q딱, q딱, q딱, q딱);
+Test_N(q딲, q딲, q딲, q딲, q딲);
+Test_N(q딳, q딳, q딳, q딳, q딳);
+Test_N(q딴, q딴, q딴, q딴, q딴);
+Test_N(q딵, q딵, q딵, q딵, q딵);
+Test_N(q딶, q딶, q딶, q딶, q딶);
+Test_N(q딷, q딷, q딷, q딷, q딷);
+Test_N(q딸, q딸, q딸, q딸, q딸);
+Test_N(q딹, q딹, q딹, q딹, q딹);
+Test_N(q딺, q딺, q딺, q딺, q딺);
+Test_N(q딻, q딻, q딻, q딻, q딻);
+Test_N(q딼, q딼, q딼, q딼, q딼);
+Test_N(q딽, q딽, q딽, q딽, q딽);
+Test_N(q딾, q딾, q딾, q딾, q딾);
+Test_N(q딿, q딿, q딿, q딿, q딿);
+Test_N(q땀, q땀, q땀, q땀, q땀);
+Test_N(q땁, q땁, q땁, q땁, q땁);
+Test_N(q땂, q땂, q땂, q땂, q땂);
+Test_N(q땃, q땃, q땃, q땃, q땃);
+Test_N(q땄, q땄, q땄, q땄, q땄);
+Test_N(q땅, q땅, q땅, q땅, q땅);
+Test_N(q땆, q땆, q땆, q땆, q땆);
+Test_N(q땇, q땇, q땇, q땇, q땇);
+Test_N(q땈, q땈, q땈, q땈, q땈);
+Test_N(q땉, q땉, q땉, q땉, q땉);
+Test_N(q땊, q땊, q땊, q땊, q땊);
+Test_N(q땋, q땋, q땋, q땋, q땋);
+Test_N(q때, q때, q때, q때, q때);
+Test_N(q땍, q땍, q땍, q땍, q땍);
+Test_N(q땎, q땎, q땎, q땎, q땎);
+Test_N(q땏, q땏, q땏, q땏, q땏);
+Test_N(q땐, q땐, q땐, q땐, q땐);
+Test_N(q땑, q땑, q땑, q땑, q땑);
+Test_N(q땒, q땒, q땒, q땒, q땒);
+Test_N(q땓, q땓, q땓, q땓, q땓);
+Test_N(q땔, q땔, q땔, q땔, q땔);
+Test_N(q땕, q땕, q땕, q땕, q땕);
+Test_N(q땖, q땖, q땖, q땖, q땖);
+Test_N(q땗, q땗, q땗, q땗, q땗);
+Test_N(q땘, q땘, q땘, q땘, q땘);
+Test_N(q땙, q땙, q땙, q땙, q땙);
+Test_N(q땚, q땚, q땚, q땚, q땚);
+Test_N(q땛, q땛, q땛, q땛, q땛);
+Test_N(q땜, q땜, q땜, q땜, q땜);
+Test_N(q땝, q땝, q땝, q땝, q땝);
+Test_N(q땞, q땞, q땞, q땞, q땞);
+Test_N(q땟, q땟, q땟, q땟, q땟);
+Test_N(q땠, q땠, q땠, q땠, q땠);
+Test_N(q땡, q땡, q땡, q땡, q땡);
+Test_N(q땢, q땢, q땢, q땢, q땢);
+Test_N(q땣, q땣, q땣, q땣, q땣);
+Test_N(q땤, q땤, q땤, q땤, q땤);
+Test_N(q땥, q땥, q땥, q땥, q땥);
+Test_N(q땦, q땦, q땦, q땦, q땦);
+Test_N(q땧, q땧, q땧, q땧, q땧);
+Test_N(q땨, q땨, q땨, q땨, q땨);
+Test_N(q땩, q땩, q땩, q땩, q땩);
+Test_N(q땪, q땪, q땪, q땪, q땪);
+Test_N(q땫, q땫, q땫, q땫, q땫);
+Test_N(q땬, q땬, q땬, q땬, q땬);
+Test_N(q땭, q땭, q땭, q땭, q땭);
+Test_N(q땮, q땮, q땮, q땮, q땮);
+Test_N(q땯, q땯, q땯, q땯, q땯);
+Test_N(q땰, q땰, q땰, q땰, q땰);
+Test_N(q땱, q땱, q땱, q땱, q땱);
+Test_N(q땲, q땲, q땲, q땲, q땲);
+Test_N(q땳, q땳, q땳, q땳, q땳);
+Test_N(q땴, q땴, q땴, q땴, q땴);
+Test_N(q땵, q땵, q땵, q땵, q땵);
+Test_N(q땶, q땶, q땶, q땶, q땶);
+Test_N(q땷, q땷, q땷, q땷, q땷);
+Test_N(q땸, q땸, q땸, q땸, q땸);
+Test_N(q땹, q땹, q땹, q땹, q땹);
+Test_N(q땺, q땺, q땺, q땺, q땺);
+Test_N(q땻, q땻, q땻, q땻, q땻);
+Test_N(q땼, q땼, q땼, q땼, q땼);
+Test_N(q땽, q땽, q땽, q땽, q땽);
+Test_N(q땾, q땾, q땾, q땾, q땾);
+Test_N(q땿, q땿, q땿, q땿, q땿);
+Test_N(q떀, q떀, q떀, q떀, q떀);
+Test_N(q떁, q떁, q떁, q떁, q떁);
+Test_N(q떂, q떂, q떂, q떂, q떂);
+Test_N(q떃, q떃, q떃, q떃, q떃);
+Test_N(q떄, q떄, q떄, q떄, q떄);
+Test_N(q떅, q떅, q떅, q떅, q떅);
+Test_N(q떆, q떆, q떆, q떆, q떆);
+Test_N(q떇, q떇, q떇, q떇, q떇);
+Test_N(q떈, q떈, q떈, q떈, q떈);
+Test_N(q떉, q떉, q떉, q떉, q떉);
+Test_N(q떊, q떊, q떊, q떊, q떊);
+Test_N(q떋, q떋, q떋, q떋, q떋);
+Test_N(q떌, q떌, q떌, q떌, q떌);
+Test_N(q떍, q떍, q떍, q떍, q떍);
+Test_N(q떎, q떎, q떎, q떎, q떎);
+Test_N(q떏, q떏, q떏, q떏, q떏);
+Test_N(q떐, q떐, q떐, q떐, q떐);
+Test_N(q떑, q떑, q떑, q떑, q떑);
+Test_N(q떒, q떒, q떒, q떒, q떒);
+Test_N(q떓, q떓, q떓, q떓, q떓);
+Test_N(q떔, q떔, q떔, q떔, q떔);
+Test_N(q떕, q떕, q떕, q떕, q떕);
+Test_N(q떖, q떖, q떖, q떖, q떖);
+Test_N(q떗, q떗, q떗, q떗, q떗);
+Test_N(q떘, q떘, q떘, q떘, q떘);
+Test_N(q떙, q떙, q떙, q떙, q떙);
+Test_N(q떚, q떚, q떚, q떚, q떚);
+Test_N(q떛, q떛, q떛, q떛, q떛);
+Test_N(q떜, q떜, q떜, q떜, q떜);
+Test_N(q떝, q떝, q떝, q떝, q떝);
+Test_N(q떞, q떞, q떞, q떞, q떞);
+Test_N(q떟, q떟, q떟, q떟, q떟);
+Test_N(q떠, q떠, q떠, q떠, q떠);
+Test_N(q떡, q떡, q떡, q떡, q떡);
+Test_N(q떢, q떢, q떢, q떢, q떢);
+Test_N(q떣, q떣, q떣, q떣, q떣);
+Test_N(q떤, q떤, q떤, q떤, q떤);
+Test_N(q떥, q떥, q떥, q떥, q떥);
+Test_N(q떦, q떦, q떦, q떦, q떦);
+Test_N(q떧, q떧, q떧, q떧, q떧);
+Test_N(q떨, q떨, q떨, q떨, q떨);
+Test_N(q떩, q떩, q떩, q떩, q떩);
+Test_N(q떪, q떪, q떪, q떪, q떪);
+Test_N(q떫, q떫, q떫, q떫, q떫);
+Test_N(q떬, q떬, q떬, q떬, q떬);
+Test_N(q떭, q떭, q떭, q떭, q떭);
+Test_N(q떮, q떮, q떮, q떮, q떮);
+Test_N(q떯, q떯, q떯, q떯, q떯);
+Test_N(q떰, q떰, q떰, q떰, q떰);
+Test_N(q떱, q떱, q떱, q떱, q떱);
+Test_N(q떲, q떲, q떲, q떲, q떲);
+Test_N(q떳, q떳, q떳, q떳, q떳);
+Test_N(q떴, q떴, q떴, q떴, q떴);
+Test_N(q떵, q떵, q떵, q떵, q떵);
+Test_N(q떶, q떶, q떶, q떶, q떶);
+Test_N(q떷, q떷, q떷, q떷, q떷);
+Test_N(q떸, q떸, q떸, q떸, q떸);
+Test_N(q떹, q떹, q떹, q떹, q떹);
+Test_N(q떺, q떺, q떺, q떺, q떺);
+Test_N(q떻, q떻, q떻, q떻, q떻);
+Test_N(q떼, q떼, q떼, q떼, q떼);
+Test_N(q떽, q떽, q떽, q떽, q떽);
+Test_N(q떾, q떾, q떾, q떾, q떾);
+Test_N(q떿, q떿, q떿, q떿, q떿);
+Test_N(q뗀, q뗀, q뗀, q뗀, q뗀);
+Test_N(q뗁, q뗁, q뗁, q뗁, q뗁);
+Test_N(q뗂, q뗂, q뗂, q뗂, q뗂);
+Test_N(q뗃, q뗃, q뗃, q뗃, q뗃);
+Test_N(q뗄, q뗄, q뗄, q뗄, q뗄);
+Test_N(q뗅, q뗅, q뗅, q뗅, q뗅);
+Test_N(q뗆, q뗆, q뗆, q뗆, q뗆);
+Test_N(q뗇, q뗇, q뗇, q뗇, q뗇);
+Test_N(q뗈, q뗈, q뗈, q뗈, q뗈);
+Test_N(q뗉, q뗉, q뗉, q뗉, q뗉);
+Test_N(q뗊, q뗊, q뗊, q뗊, q뗊);
+Test_N(q뗋, q뗋, q뗋, q뗋, q뗋);
+Test_N(q뗌, q뗌, q뗌, q뗌, q뗌);
+Test_N(q뗍, q뗍, q뗍, q뗍, q뗍);
+Test_N(q뗎, q뗎, q뗎, q뗎, q뗎);
+Test_N(q뗏, q뗏, q뗏, q뗏, q뗏);
+Test_N(q뗐, q뗐, q뗐, q뗐, q뗐);
+Test_N(q뗑, q뗑, q뗑, q뗑, q뗑);
+Test_N(q뗒, q뗒, q뗒, q뗒, q뗒);
+Test_N(q뗓, q뗓, q뗓, q뗓, q뗓);
+Test_N(q뗔, q뗔, q뗔, q뗔, q뗔);
+Test_N(q뗕, q뗕, q뗕, q뗕, q뗕);
+Test_N(q뗖, q뗖, q뗖, q뗖, q뗖);
+Test_N(q뗗, q뗗, q뗗, q뗗, q뗗);
+Test_N(q뗘, q뗘, q뗘, q뗘, q뗘);
+Test_N(q뗙, q뗙, q뗙, q뗙, q뗙);
+Test_N(q뗚, q뗚, q뗚, q뗚, q뗚);
+Test_N(q뗛, q뗛, q뗛, q뗛, q뗛);
+Test_N(q뗜, q뗜, q뗜, q뗜, q뗜);
+Test_N(q뗝, q뗝, q뗝, q뗝, q뗝);
+Test_N(q뗞, q뗞, q뗞, q뗞, q뗞);
+Test_N(q뗟, q뗟, q뗟, q뗟, q뗟);
+Test_N(q뗠, q뗠, q뗠, q뗠, q뗠);
+Test_N(q뗡, q뗡, q뗡, q뗡, q뗡);
+Test_N(q뗢, q뗢, q뗢, q뗢, q뗢);
+Test_N(q뗣, q뗣, q뗣, q뗣, q뗣);
+Test_N(q뗤, q뗤, q뗤, q뗤, q뗤);
+Test_N(q뗥, q뗥, q뗥, q뗥, q뗥);
+Test_N(q뗦, q뗦, q뗦, q뗦, q뗦);
+Test_N(q뗧, q뗧, q뗧, q뗧, q뗧);
+Test_N(q뗨, q뗨, q뗨, q뗨, q뗨);
+Test_N(q뗩, q뗩, q뗩, q뗩, q뗩);
+Test_N(q뗪, q뗪, q뗪, q뗪, q뗪);
+Test_N(q뗫, q뗫, q뗫, q뗫, q뗫);
+Test_N(q뗬, q뗬, q뗬, q뗬, q뗬);
+Test_N(q뗭, q뗭, q뗭, q뗭, q뗭);
+Test_N(q뗮, q뗮, q뗮, q뗮, q뗮);
+Test_N(q뗯, q뗯, q뗯, q뗯, q뗯);
+Test_N(q뗰, q뗰, q뗰, q뗰, q뗰);
+Test_N(q뗱, q뗱, q뗱, q뗱, q뗱);
+Test_N(q뗲, q뗲, q뗲, q뗲, q뗲);
+Test_N(q뗳, q뗳, q뗳, q뗳, q뗳);
+Test_N(q뗴, q뗴, q뗴, q뗴, q뗴);
+Test_N(q뗵, q뗵, q뗵, q뗵, q뗵);
+Test_N(q뗶, q뗶, q뗶, q뗶, q뗶);
+Test_N(q뗷, q뗷, q뗷, q뗷, q뗷);
+Test_N(q뗸, q뗸, q뗸, q뗸, q뗸);
+Test_N(q뗹, q뗹, q뗹, q뗹, q뗹);
+Test_N(q뗺, q뗺, q뗺, q뗺, q뗺);
+Test_N(q뗻, q뗻, q뗻, q뗻, q뗻);
+Test_N(q뗼, q뗼, q뗼, q뗼, q뗼);
+Test_N(q뗽, q뗽, q뗽, q뗽, q뗽);
+Test_N(q뗾, q뗾, q뗾, q뗾, q뗾);
+Test_N(q뗿, q뗿, q뗿, q뗿, q뗿);
+Test_N(q똀, q똀, q똀, q똀, q똀);
+Test_N(q똁, q똁, q똁, q똁, q똁);
+Test_N(q똂, q똂, q똂, q똂, q똂);
+Test_N(q똃, q똃, q똃, q똃, q똃);
+Test_N(q똄, q똄, q똄, q똄, q똄);
+Test_N(q똅, q똅, q똅, q똅, q똅);
+Test_N(q똆, q똆, q똆, q똆, q똆);
+Test_N(q똇, q똇, q똇, q똇, q똇);
+Test_N(q똈, q똈, q똈, q똈, q똈);
+Test_N(q똉, q똉, q똉, q똉, q똉);
+Test_N(q똊, q똊, q똊, q똊, q똊);
+Test_N(q똋, q똋, q똋, q똋, q똋);
+Test_N(q똌, q똌, q똌, q똌, q똌);
+Test_N(q똍, q똍, q똍, q똍, q똍);
+Test_N(q똎, q똎, q똎, q똎, q똎);
+Test_N(q똏, q똏, q똏, q똏, q똏);
+Test_N(q또, q또, q또, q또, q또);
+Test_N(q똑, q똑, q똑, q똑, q똑);
+Test_N(q똒, q똒, q똒, q똒, q똒);
+Test_N(q똓, q똓, q똓, q똓, q똓);
+Test_N(q똔, q똔, q똔, q똔, q똔);
+Test_N(q똕, q똕, q똕, q똕, q똕);
+Test_N(q똖, q똖, q똖, q똖, q똖);
+Test_N(q똗, q똗, q똗, q똗, q똗);
+Test_N(q똘, q똘, q똘, q똘, q똘);
+Test_N(q똙, q똙, q똙, q똙, q똙);
+Test_N(q똚, q똚, q똚, q똚, q똚);
+Test_N(q똛, q똛, q똛, q똛, q똛);
+Test_N(q똜, q똜, q똜, q똜, q똜);
+Test_N(q똝, q똝, q똝, q똝, q똝);
+Test_N(q똞, q똞, q똞, q똞, q똞);
+Test_N(q똟, q똟, q똟, q똟, q똟);
+Test_N(q똠, q똠, q똠, q똠, q똠);
+Test_N(q똡, q똡, q똡, q똡, q똡);
+Test_N(q똢, q똢, q똢, q똢, q똢);
+Test_N(q똣, q똣, q똣, q똣, q똣);
+Test_N(q똤, q똤, q똤, q똤, q똤);
+Test_N(q똥, q똥, q똥, q똥, q똥);
+Test_N(q똦, q똦, q똦, q똦, q똦);
+Test_N(q똧, q똧, q똧, q똧, q똧);
+Test_N(q똨, q똨, q똨, q똨, q똨);
+Test_N(q똩, q똩, q똩, q똩, q똩);
+Test_N(q똪, q똪, q똪, q똪, q똪);
+Test_N(q똫, q똫, q똫, q똫, q똫);
+Test_N(q똬, q똬, q똬, q똬, q똬);
+Test_N(q똭, q똭, q똭, q똭, q똭);
+Test_N(q똮, q똮, q똮, q똮, q똮);
+Test_N(q똯, q똯, q똯, q똯, q똯);
+Test_N(q똰, q똰, q똰, q똰, q똰);
+Test_N(q똱, q똱, q똱, q똱, q똱);
+Test_N(q똲, q똲, q똲, q똲, q똲);
+Test_N(q똳, q똳, q똳, q똳, q똳);
+Test_N(q똴, q똴, q똴, q똴, q똴);
+Test_N(q똵, q똵, q똵, q똵, q똵);
+Test_N(q똶, q똶, q똶, q똶, q똶);
+Test_N(q똷, q똷, q똷, q똷, q똷);
+Test_N(q똸, q똸, q똸, q똸, q똸);
+Test_N(q똹, q똹, q똹, q똹, q똹);
+Test_N(q똺, q똺, q똺, q똺, q똺);
+Test_N(q똻, q똻, q똻, q똻, q똻);
+Test_N(q똼, q똼, q똼, q똼, q똼);
+Test_N(q똽, q똽, q똽, q똽, q똽);
+Test_N(q똾, q똾, q똾, q똾, q똾);
+Test_N(q똿, q똿, q똿, q똿, q똿);
+Test_N(q뙀, q뙀, q뙀, q뙀, q뙀);
+Test_N(q뙁, q뙁, q뙁, q뙁, q뙁);
+Test_N(q뙂, q뙂, q뙂, q뙂, q뙂);
+Test_N(q뙃, q뙃, q뙃, q뙃, q뙃);
+Test_N(q뙄, q뙄, q뙄, q뙄, q뙄);
+Test_N(q뙅, q뙅, q뙅, q뙅, q뙅);
+Test_N(q뙆, q뙆, q뙆, q뙆, q뙆);
+Test_N(q뙇, q뙇, q뙇, q뙇, q뙇);
+Test_N(q뙈, q뙈, q뙈, q뙈, q뙈);
+Test_N(q뙉, q뙉, q뙉, q뙉, q뙉);
+Test_N(q뙊, q뙊, q뙊, q뙊, q뙊);
+Test_N(q뙋, q뙋, q뙋, q뙋, q뙋);
+Test_N(q뙌, q뙌, q뙌, q뙌, q뙌);
+Test_N(q뙍, q뙍, q뙍, q뙍, q뙍);
+Test_N(q뙎, q뙎, q뙎, q뙎, q뙎);
+Test_N(q뙏, q뙏, q뙏, q뙏, q뙏);
+Test_N(q뙐, q뙐, q뙐, q뙐, q뙐);
+Test_N(q뙑, q뙑, q뙑, q뙑, q뙑);
+Test_N(q뙒, q뙒, q뙒, q뙒, q뙒);
+Test_N(q뙓, q뙓, q뙓, q뙓, q뙓);
+Test_N(q뙔, q뙔, q뙔, q뙔, q뙔);
+Test_N(q뙕, q뙕, q뙕, q뙕, q뙕);
+Test_N(q뙖, q뙖, q뙖, q뙖, q뙖);
+Test_N(q뙗, q뙗, q뙗, q뙗, q뙗);
+Test_N(q뙘, q뙘, q뙘, q뙘, q뙘);
+Test_N(q뙙, q뙙, q뙙, q뙙, q뙙);
+Test_N(q뙚, q뙚, q뙚, q뙚, q뙚);
+Test_N(q뙛, q뙛, q뙛, q뙛, q뙛);
+Test_N(q뙜, q뙜, q뙜, q뙜, q뙜);
+Test_N(q뙝, q뙝, q뙝, q뙝, q뙝);
+Test_N(q뙞, q뙞, q뙞, q뙞, q뙞);
+Test_N(q뙟, q뙟, q뙟, q뙟, q뙟);
+Test_N(q뙠, q뙠, q뙠, q뙠, q뙠);
+Test_N(q뙡, q뙡, q뙡, q뙡, q뙡);
+Test_N(q뙢, q뙢, q뙢, q뙢, q뙢);
+Test_N(q뙣, q뙣, q뙣, q뙣, q뙣);
+Test_N(q뙤, q뙤, q뙤, q뙤, q뙤);
+Test_N(q뙥, q뙥, q뙥, q뙥, q뙥);
+Test_N(q뙦, q뙦, q뙦, q뙦, q뙦);
+Test_N(q뙧, q뙧, q뙧, q뙧, q뙧);
+Test_N(q뙨, q뙨, q뙨, q뙨, q뙨);
+Test_N(q뙩, q뙩, q뙩, q뙩, q뙩);
+Test_N(q뙪, q뙪, q뙪, q뙪, q뙪);
+Test_N(q뙫, q뙫, q뙫, q뙫, q뙫);
+Test_N(q뙬, q뙬, q뙬, q뙬, q뙬);
+Test_N(q뙭, q뙭, q뙭, q뙭, q뙭);
+Test_N(q뙮, q뙮, q뙮, q뙮, q뙮);
+Test_N(q뙯, q뙯, q뙯, q뙯, q뙯);
+Test_N(q뙰, q뙰, q뙰, q뙰, q뙰);
+Test_N(q뙱, q뙱, q뙱, q뙱, q뙱);
+Test_N(q뙲, q뙲, q뙲, q뙲, q뙲);
+Test_N(q뙳, q뙳, q뙳, q뙳, q뙳);
+Test_N(q뙴, q뙴, q뙴, q뙴, q뙴);
+Test_N(q뙵, q뙵, q뙵, q뙵, q뙵);
+Test_N(q뙶, q뙶, q뙶, q뙶, q뙶);
+Test_N(q뙷, q뙷, q뙷, q뙷, q뙷);
+Test_N(q뙸, q뙸, q뙸, q뙸, q뙸);
+Test_N(q뙹, q뙹, q뙹, q뙹, q뙹);
+Test_N(q뙺, q뙺, q뙺, q뙺, q뙺);
+Test_N(q뙻, q뙻, q뙻, q뙻, q뙻);
+Test_N(q뙼, q뙼, q뙼, q뙼, q뙼);
+Test_N(q뙽, q뙽, q뙽, q뙽, q뙽);
+Test_N(q뙾, q뙾, q뙾, q뙾, q뙾);
+Test_N(q뙿, q뙿, q뙿, q뙿, q뙿);
+Test_N(q뚀, q뚀, q뚀, q뚀, q뚀);
+Test_N(q뚁, q뚁, q뚁, q뚁, q뚁);
+Test_N(q뚂, q뚂, q뚂, q뚂, q뚂);
+Test_N(q뚃, q뚃, q뚃, q뚃, q뚃);
+Test_N(q뚄, q뚄, q뚄, q뚄, q뚄);
+Test_N(q뚅, q뚅, q뚅, q뚅, q뚅);
+Test_N(q뚆, q뚆, q뚆, q뚆, q뚆);
+Test_N(q뚇, q뚇, q뚇, q뚇, q뚇);
+Test_N(q뚈, q뚈, q뚈, q뚈, q뚈);
+Test_N(q뚉, q뚉, q뚉, q뚉, q뚉);
+Test_N(q뚊, q뚊, q뚊, q뚊, q뚊);
+Test_N(q뚋, q뚋, q뚋, q뚋, q뚋);
+Test_N(q뚌, q뚌, q뚌, q뚌, q뚌);
+Test_N(q뚍, q뚍, q뚍, q뚍, q뚍);
+Test_N(q뚎, q뚎, q뚎, q뚎, q뚎);
+Test_N(q뚏, q뚏, q뚏, q뚏, q뚏);
+Test_N(q뚐, q뚐, q뚐, q뚐, q뚐);
+Test_N(q뚑, q뚑, q뚑, q뚑, q뚑);
+Test_N(q뚒, q뚒, q뚒, q뚒, q뚒);
+Test_N(q뚓, q뚓, q뚓, q뚓, q뚓);
+Test_N(q뚔, q뚔, q뚔, q뚔, q뚔);
+Test_N(q뚕, q뚕, q뚕, q뚕, q뚕);
+Test_N(q뚖, q뚖, q뚖, q뚖, q뚖);
+Test_N(q뚗, q뚗, q뚗, q뚗, q뚗);
+Test_N(q뚘, q뚘, q뚘, q뚘, q뚘);
+Test_N(q뚙, q뚙, q뚙, q뚙, q뚙);
+Test_N(q뚚, q뚚, q뚚, q뚚, q뚚);
+Test_N(q뚛, q뚛, q뚛, q뚛, q뚛);
+Test_N(q뚜, q뚜, q뚜, q뚜, q뚜);
+Test_N(q뚝, q뚝, q뚝, q뚝, q뚝);
+Test_N(q뚞, q뚞, q뚞, q뚞, q뚞);
+Test_N(q뚟, q뚟, q뚟, q뚟, q뚟);
+Test_N(q뚠, q뚠, q뚠, q뚠, q뚠);
+Test_N(q뚡, q뚡, q뚡, q뚡, q뚡);
+Test_N(q뚢, q뚢, q뚢, q뚢, q뚢);
+Test_N(q뚣, q뚣, q뚣, q뚣, q뚣);
+Test_N(q뚤, q뚤, q뚤, q뚤, q뚤);
+Test_N(q뚥, q뚥, q뚥, q뚥, q뚥);
+Test_N(q뚦, q뚦, q뚦, q뚦, q뚦);
+Test_N(q뚧, q뚧, q뚧, q뚧, q뚧);
+Test_N(q뚨, q뚨, q뚨, q뚨, q뚨);
+Test_N(q뚩, q뚩, q뚩, q뚩, q뚩);
+Test_N(q뚪, q뚪, q뚪, q뚪, q뚪);
+Test_N(q뚫, q뚫, q뚫, q뚫, q뚫);
+Test_N(q뚬, q뚬, q뚬, q뚬, q뚬);
+Test_N(q뚭, q뚭, q뚭, q뚭, q뚭);
+Test_N(q뚮, q뚮, q뚮, q뚮, q뚮);
+Test_N(q뚯, q뚯, q뚯, q뚯, q뚯);
+Test_N(q뚰, q뚰, q뚰, q뚰, q뚰);
+Test_N(q뚱, q뚱, q뚱, q뚱, q뚱);
+Test_N(q뚲, q뚲, q뚲, q뚲, q뚲);
+Test_N(q뚳, q뚳, q뚳, q뚳, q뚳);
+Test_N(q뚴, q뚴, q뚴, q뚴, q뚴);
+Test_N(q뚵, q뚵, q뚵, q뚵, q뚵);
+Test_N(q뚶, q뚶, q뚶, q뚶, q뚶);
+Test_N(q뚷, q뚷, q뚷, q뚷, q뚷);
+Test_N(q뚸, q뚸, q뚸, q뚸, q뚸);
+Test_N(q뚹, q뚹, q뚹, q뚹, q뚹);
+Test_N(q뚺, q뚺, q뚺, q뚺, q뚺);
+Test_N(q뚻, q뚻, q뚻, q뚻, q뚻);
+Test_N(q뚼, q뚼, q뚼, q뚼, q뚼);
+Test_N(q뚽, q뚽, q뚽, q뚽, q뚽);
+Test_N(q뚾, q뚾, q뚾, q뚾, q뚾);
+Test_N(q뚿, q뚿, q뚿, q뚿, q뚿);
+Test_N(q뛀, q뛀, q뛀, q뛀, q뛀);
+Test_N(q뛁, q뛁, q뛁, q뛁, q뛁);
+Test_N(q뛂, q뛂, q뛂, q뛂, q뛂);
+Test_N(q뛃, q뛃, q뛃, q뛃, q뛃);
+Test_N(q뛄, q뛄, q뛄, q뛄, q뛄);
+Test_N(q뛅, q뛅, q뛅, q뛅, q뛅);
+Test_N(q뛆, q뛆, q뛆, q뛆, q뛆);
+Test_N(q뛇, q뛇, q뛇, q뛇, q뛇);
+Test_N(q뛈, q뛈, q뛈, q뛈, q뛈);
+Test_N(q뛉, q뛉, q뛉, q뛉, q뛉);
+Test_N(q뛊, q뛊, q뛊, q뛊, q뛊);
+Test_N(q뛋, q뛋, q뛋, q뛋, q뛋);
+Test_N(q뛌, q뛌, q뛌, q뛌, q뛌);
+Test_N(q뛍, q뛍, q뛍, q뛍, q뛍);
+Test_N(q뛎, q뛎, q뛎, q뛎, q뛎);
+Test_N(q뛏, q뛏, q뛏, q뛏, q뛏);
+Test_N(q뛐, q뛐, q뛐, q뛐, q뛐);
+Test_N(q뛑, q뛑, q뛑, q뛑, q뛑);
+Test_N(q뛒, q뛒, q뛒, q뛒, q뛒);
+Test_N(q뛓, q뛓, q뛓, q뛓, q뛓);
+Test_N(q뛔, q뛔, q뛔, q뛔, q뛔);
+Test_N(q뛕, q뛕, q뛕, q뛕, q뛕);
+Test_N(q뛖, q뛖, q뛖, q뛖, q뛖);
+Test_N(q뛗, q뛗, q뛗, q뛗, q뛗);
+Test_N(q뛘, q뛘, q뛘, q뛘, q뛘);
+Test_N(q뛙, q뛙, q뛙, q뛙, q뛙);
+Test_N(q뛚, q뛚, q뛚, q뛚, q뛚);
+Test_N(q뛛, q뛛, q뛛, q뛛, q뛛);
+Test_N(q뛜, q뛜, q뛜, q뛜, q뛜);
+Test_N(q뛝, q뛝, q뛝, q뛝, q뛝);
+Test_N(q뛞, q뛞, q뛞, q뛞, q뛞);
+Test_N(q뛟, q뛟, q뛟, q뛟, q뛟);
+Test_N(q뛠, q뛠, q뛠, q뛠, q뛠);
+Test_N(q뛡, q뛡, q뛡, q뛡, q뛡);
+Test_N(q뛢, q뛢, q뛢, q뛢, q뛢);
+Test_N(q뛣, q뛣, q뛣, q뛣, q뛣);
+Test_N(q뛤, q뛤, q뛤, q뛤, q뛤);
+Test_N(q뛥, q뛥, q뛥, q뛥, q뛥);
+Test_N(q뛦, q뛦, q뛦, q뛦, q뛦);
+Test_N(q뛧, q뛧, q뛧, q뛧, q뛧);
+Test_N(q뛨, q뛨, q뛨, q뛨, q뛨);
+Test_N(q뛩, q뛩, q뛩, q뛩, q뛩);
+Test_N(q뛪, q뛪, q뛪, q뛪, q뛪);
+Test_N(q뛫, q뛫, q뛫, q뛫, q뛫);
+Test_N(q뛬, q뛬, q뛬, q뛬, q뛬);
+Test_N(q뛭, q뛭, q뛭, q뛭, q뛭);
+Test_N(q뛮, q뛮, q뛮, q뛮, q뛮);
+Test_N(q뛯, q뛯, q뛯, q뛯, q뛯);
+Test_N(q뛰, q뛰, q뛰, q뛰, q뛰);
+Test_N(q뛱, q뛱, q뛱, q뛱, q뛱);
+Test_N(q뛲, q뛲, q뛲, q뛲, q뛲);
+Test_N(q뛳, q뛳, q뛳, q뛳, q뛳);
+Test_N(q뛴, q뛴, q뛴, q뛴, q뛴);
+Test_N(q뛵, q뛵, q뛵, q뛵, q뛵);
+Test_N(q뛶, q뛶, q뛶, q뛶, q뛶);
+Test_N(q뛷, q뛷, q뛷, q뛷, q뛷);
+Test_N(q뛸, q뛸, q뛸, q뛸, q뛸);
+Test_N(q뛹, q뛹, q뛹, q뛹, q뛹);
+Test_N(q뛺, q뛺, q뛺, q뛺, q뛺);
+Test_N(q뛻, q뛻, q뛻, q뛻, q뛻);
+Test_N(q뛼, q뛼, q뛼, q뛼, q뛼);
+Test_N(q뛽, q뛽, q뛽, q뛽, q뛽);
+Test_N(q뛾, q뛾, q뛾, q뛾, q뛾);
+Test_N(q뛿, q뛿, q뛿, q뛿, q뛿);
+Test_N(q뜀, q뜀, q뜀, q뜀, q뜀);
+Test_N(q뜁, q뜁, q뜁, q뜁, q뜁);
+Test_N(q뜂, q뜂, q뜂, q뜂, q뜂);
+Test_N(q뜃, q뜃, q뜃, q뜃, q뜃);
+Test_N(q뜄, q뜄, q뜄, q뜄, q뜄);
+Test_N(q뜅, q뜅, q뜅, q뜅, q뜅);
+Test_N(q뜆, q뜆, q뜆, q뜆, q뜆);
+Test_N(q뜇, q뜇, q뜇, q뜇, q뜇);
+Test_N(q뜈, q뜈, q뜈, q뜈, q뜈);
+Test_N(q뜉, q뜉, q뜉, q뜉, q뜉);
+Test_N(q뜊, q뜊, q뜊, q뜊, q뜊);
+Test_N(q뜋, q뜋, q뜋, q뜋, q뜋);
+Test_N(q뜌, q뜌, q뜌, q뜌, q뜌);
+Test_N(q뜍, q뜍, q뜍, q뜍, q뜍);
+Test_N(q뜎, q뜎, q뜎, q뜎, q뜎);
+Test_N(q뜏, q뜏, q뜏, q뜏, q뜏);
+Test_N(q뜐, q뜐, q뜐, q뜐, q뜐);
+Test_N(q뜑, q뜑, q뜑, q뜑, q뜑);
+Test_N(q뜒, q뜒, q뜒, q뜒, q뜒);
+Test_N(q뜓, q뜓, q뜓, q뜓, q뜓);
+Test_N(q뜔, q뜔, q뜔, q뜔, q뜔);
+Test_N(q뜕, q뜕, q뜕, q뜕, q뜕);
+Test_N(q뜖, q뜖, q뜖, q뜖, q뜖);
+Test_N(q뜗, q뜗, q뜗, q뜗, q뜗);
+Test_N(q뜘, q뜘, q뜘, q뜘, q뜘);
+Test_N(q뜙, q뜙, q뜙, q뜙, q뜙);
+Test_N(q뜚, q뜚, q뜚, q뜚, q뜚);
+Test_N(q뜛, q뜛, q뜛, q뜛, q뜛);
+Test_N(q뜜, q뜜, q뜜, q뜜, q뜜);
+Test_N(q뜝, q뜝, q뜝, q뜝, q뜝);
+Test_N(q뜞, q뜞, q뜞, q뜞, q뜞);
+Test_N(q뜟, q뜟, q뜟, q뜟, q뜟);
+Test_N(q뜠, q뜠, q뜠, q뜠, q뜠);
+Test_N(q뜡, q뜡, q뜡, q뜡, q뜡);
+Test_N(q뜢, q뜢, q뜢, q뜢, q뜢);
+Test_N(q뜣, q뜣, q뜣, q뜣, q뜣);
+Test_N(q뜤, q뜤, q뜤, q뜤, q뜤);
+Test_N(q뜥, q뜥, q뜥, q뜥, q뜥);
+Test_N(q뜦, q뜦, q뜦, q뜦, q뜦);
+Test_N(q뜧, q뜧, q뜧, q뜧, q뜧);
+Test_N(q뜨, q뜨, q뜨, q뜨, q뜨);
+Test_N(q뜩, q뜩, q뜩, q뜩, q뜩);
+Test_N(q뜪, q뜪, q뜪, q뜪, q뜪);
+Test_N(q뜫, q뜫, q뜫, q뜫, q뜫);
+Test_N(q뜬, q뜬, q뜬, q뜬, q뜬);
+Test_N(q뜭, q뜭, q뜭, q뜭, q뜭);
+Test_N(q뜮, q뜮, q뜮, q뜮, q뜮);
+Test_N(q뜯, q뜯, q뜯, q뜯, q뜯);
+Test_N(q뜰, q뜰, q뜰, q뜰, q뜰);
+Test_N(q뜱, q뜱, q뜱, q뜱, q뜱);
+Test_N(q뜲, q뜲, q뜲, q뜲, q뜲);
+Test_N(q뜳, q뜳, q뜳, q뜳, q뜳);
+Test_N(q뜴, q뜴, q뜴, q뜴, q뜴);
+Test_N(q뜵, q뜵, q뜵, q뜵, q뜵);
+Test_N(q뜶, q뜶, q뜶, q뜶, q뜶);
+Test_N(q뜷, q뜷, q뜷, q뜷, q뜷);
+Test_N(q뜸, q뜸, q뜸, q뜸, q뜸);
+Test_N(q뜹, q뜹, q뜹, q뜹, q뜹);
+Test_N(q뜺, q뜺, q뜺, q뜺, q뜺);
+Test_N(q뜻, q뜻, q뜻, q뜻, q뜻);
+Test_N(q뜼, q뜼, q뜼, q뜼, q뜼);
+Test_N(q뜽, q뜽, q뜽, q뜽, q뜽);
+Test_N(q뜾, q뜾, q뜾, q뜾, q뜾);
+Test_N(q뜿, q뜿, q뜿, q뜿, q뜿);
+Test_N(q띀, q띀, q띀, q띀, q띀);
+Test_N(q띁, q띁, q띁, q띁, q띁);
+Test_N(q띂, q띂, q띂, q띂, q띂);
+Test_N(q띃, q띃, q띃, q띃, q띃);
+Test_N(q띄, q띄, q띄, q띄, q띄);
+Test_N(q띅, q띅, q띅, q띅, q띅);
+Test_N(q띆, q띆, q띆, q띆, q띆);
+Test_N(q띇, q띇, q띇, q띇, q띇);
+Test_N(q띈, q띈, q띈, q띈, q띈);
+Test_N(q띉, q띉, q띉, q띉, q띉);
+Test_N(q띊, q띊, q띊, q띊, q띊);
+Test_N(q띋, q띋, q띋, q띋, q띋);
+Test_N(q띌, q띌, q띌, q띌, q띌);
+Test_N(q띍, q띍, q띍, q띍, q띍);
+Test_N(q띎, q띎, q띎, q띎, q띎);
+Test_N(q띏, q띏, q띏, q띏, q띏);
+Test_N(q띐, q띐, q띐, q띐, q띐);
+Test_N(q띑, q띑, q띑, q띑, q띑);
+Test_N(q띒, q띒, q띒, q띒, q띒);
+Test_N(q띓, q띓, q띓, q띓, q띓);
+Test_N(q띔, q띔, q띔, q띔, q띔);
+Test_N(q띕, q띕, q띕, q띕, q띕);
+Test_N(q띖, q띖, q띖, q띖, q띖);
+Test_N(q띗, q띗, q띗, q띗, q띗);
+Test_N(q띘, q띘, q띘, q띘, q띘);
+Test_N(q띙, q띙, q띙, q띙, q띙);
+Test_N(q띚, q띚, q띚, q띚, q띚);
+Test_N(q띛, q띛, q띛, q띛, q띛);
+Test_N(q띜, q띜, q띜, q띜, q띜);
+Test_N(q띝, q띝, q띝, q띝, q띝);
+Test_N(q띞, q띞, q띞, q띞, q띞);
+Test_N(q띟, q띟, q띟, q띟, q띟);
+Test_N(q띠, q띠, q띠, q띠, q띠);
+Test_N(q띡, q띡, q띡, q띡, q띡);
+Test_N(q띢, q띢, q띢, q띢, q띢);
+Test_N(q띣, q띣, q띣, q띣, q띣);
+Test_N(q띤, q띤, q띤, q띤, q띤);
+Test_N(q띥, q띥, q띥, q띥, q띥);
+Test_N(q띦, q띦, q띦, q띦, q띦);
+Test_N(q띧, q띧, q띧, q띧, q띧);
+Test_N(q띨, q띨, q띨, q띨, q띨);
+Test_N(q띩, q띩, q띩, q띩, q띩);
+Test_N(q띪, q띪, q띪, q띪, q띪);
+Test_N(q띫, q띫, q띫, q띫, q띫);
+Test_N(q띬, q띬, q띬, q띬, q띬);
+Test_N(q띭, q띭, q띭, q띭, q띭);
+Test_N(q띮, q띮, q띮, q띮, q띮);
+Test_N(q띯, q띯, q띯, q띯, q띯);
+Test_N(q띰, q띰, q띰, q띰, q띰);
+Test_N(q띱, q띱, q띱, q띱, q띱);
+Test_N(q띲, q띲, q띲, q띲, q띲);
+Test_N(q띳, q띳, q띳, q띳, q띳);
+Test_N(q띴, q띴, q띴, q띴, q띴);
+Test_N(q띵, q띵, q띵, q띵, q띵);
+Test_N(q띶, q띶, q띶, q띶, q띶);
+Test_N(q띷, q띷, q띷, q띷, q띷);
+Test_N(q띸, q띸, q띸, q띸, q띸);
+Test_N(q띹, q띹, q띹, q띹, q띹);
+Test_N(q띺, q띺, q띺, q띺, q띺);
+Test_N(q띻, q띻, q띻, q띻, q띻);
+Test_N(q라, q라, q라, q라, q라);
+Test_N(q락, q락, q락, q락, q락);
+Test_N(q띾, q띾, q띾, q띾, q띾);
+Test_N(q띿, q띿, q띿, q띿, q띿);
+Test_N(q란, q란, q란, q란, q란);
+Test_N(q랁, q랁, q랁, q랁, q랁);
+Test_N(q랂, q랂, q랂, q랂, q랂);
+Test_N(q랃, q랃, q랃, q랃, q랃);
+Test_N(q랄, q랄, q랄, q랄, q랄);
+Test_N(q랅, q랅, q랅, q랅, q랅);
+Test_N(q랆, q랆, q랆, q랆, q랆);
+Test_N(q랇, q랇, q랇, q랇, q랇);
+Test_N(q랈, q랈, q랈, q랈, q랈);
+Test_N(q랉, q랉, q랉, q랉, q랉);
+Test_N(q랊, q랊, q랊, q랊, q랊);
+Test_N(q랋, q랋, q랋, q랋, q랋);
+Test_N(q람, q람, q람, q람, q람);
+Test_N(q랍, q랍, q랍, q랍, q랍);
+Test_N(q랎, q랎, q랎, q랎, q랎);
+Test_N(q랏, q랏, q랏, q랏, q랏);
+Test_N(q랐, q랐, q랐, q랐, q랐);
+Test_N(q랑, q랑, q랑, q랑, q랑);
+Test_N(q랒, q랒, q랒, q랒, q랒);
+Test_N(q랓, q랓, q랓, q랓, q랓);
+Test_N(q랔, q랔, q랔, q랔, q랔);
+Test_N(q랕, q랕, q랕, q랕, q랕);
+Test_N(q랖, q랖, q랖, q랖, q랖);
+Test_N(q랗, q랗, q랗, q랗, q랗);
+Test_N(q래, q래, q래, q래, q래);
+Test_N(q랙, q랙, q랙, q랙, q랙);
+Test_N(q랚, q랚, q랚, q랚, q랚);
+Test_N(q랛, q랛, q랛, q랛, q랛);
+Test_N(q랜, q랜, q랜, q랜, q랜);
+Test_N(q랝, q랝, q랝, q랝, q랝);
+Test_N(q랞, q랞, q랞, q랞, q랞);
+Test_N(q랟, q랟, q랟, q랟, q랟);
+Test_N(q랠, q랠, q랠, q랠, q랠);
+Test_N(q랡, q랡, q랡, q랡, q랡);
+Test_N(q랢, q랢, q랢, q랢, q랢);
+Test_N(q랣, q랣, q랣, q랣, q랣);
+Test_N(q랤, q랤, q랤, q랤, q랤);
+Test_N(q랥, q랥, q랥, q랥, q랥);
+Test_N(q랦, q랦, q랦, q랦, q랦);
+Test_N(q랧, q랧, q랧, q랧, q랧);
+Test_N(q램, q램, q램, q램, q램);
+Test_N(q랩, q랩, q랩, q랩, q랩);
+Test_N(q랪, q랪, q랪, q랪, q랪);
+Test_N(q랫, q랫, q랫, q랫, q랫);
+Test_N(q랬, q랬, q랬, q랬, q랬);
+Test_N(q랭, q랭, q랭, q랭, q랭);
+Test_N(q랮, q랮, q랮, q랮, q랮);
+Test_N(q랯, q랯, q랯, q랯, q랯);
+Test_N(q랰, q랰, q랰, q랰, q랰);
+Test_N(q랱, q랱, q랱, q랱, q랱);
+Test_N(q랲, q랲, q랲, q랲, q랲);
+Test_N(q랳, q랳, q랳, q랳, q랳);
+Test_N(q랴, q랴, q랴, q랴, q랴);
+Test_N(q략, q략, q략, q략, q략);
+Test_N(q랶, q랶, q랶, q랶, q랶);
+Test_N(q랷, q랷, q랷, q랷, q랷);
+Test_N(q랸, q랸, q랸, q랸, q랸);
+Test_N(q랹, q랹, q랹, q랹, q랹);
+Test_N(q랺, q랺, q랺, q랺, q랺);
+Test_N(q랻, q랻, q랻, q랻, q랻);
+Test_N(q랼, q랼, q랼, q랼, q랼);
+Test_N(q랽, q랽, q랽, q랽, q랽);
+Test_N(q랾, q랾, q랾, q랾, q랾);
+Test_N(q랿, q랿, q랿, q랿, q랿);
+Test_N(q럀, q럀, q럀, q럀, q럀);
+Test_N(q럁, q럁, q럁, q럁, q럁);
+Test_N(q럂, q럂, q럂, q럂, q럂);
+Test_N(q럃, q럃, q럃, q럃, q럃);
+Test_N(q럄, q럄, q럄, q럄, q럄);
+Test_N(q럅, q럅, q럅, q럅, q럅);
+Test_N(q럆, q럆, q럆, q럆, q럆);
+Test_N(q럇, q럇, q럇, q럇, q럇);
+Test_N(q럈, q럈, q럈, q럈, q럈);
+Test_N(q량, q량, q량, q량, q량);
+Test_N(q럊, q럊, q럊, q럊, q럊);
+Test_N(q럋, q럋, q럋, q럋, q럋);
+Test_N(q럌, q럌, q럌, q럌, q럌);
+Test_N(q럍, q럍, q럍, q럍, q럍);
+Test_N(q럎, q럎, q럎, q럎, q럎);
+Test_N(q럏, q럏, q럏, q럏, q럏);
+Test_N(q럐, q럐, q럐, q럐, q럐);
+Test_N(q럑, q럑, q럑, q럑, q럑);
+Test_N(q럒, q럒, q럒, q럒, q럒);
+Test_N(q럓, q럓, q럓, q럓, q럓);
+Test_N(q럔, q럔, q럔, q럔, q럔);
+Test_N(q럕, q럕, q럕, q럕, q럕);
+Test_N(q럖, q럖, q럖, q럖, q럖);
+Test_N(q럗, q럗, q럗, q럗, q럗);
+Test_N(q럘, q럘, q럘, q럘, q럘);
+Test_N(q럙, q럙, q럙, q럙, q럙);
+Test_N(q럚, q럚, q럚, q럚, q럚);
+Test_N(q럛, q럛, q럛, q럛, q럛);
+Test_N(q럜, q럜, q럜, q럜, q럜);
+Test_N(q럝, q럝, q럝, q럝, q럝);
+Test_N(q럞, q럞, q럞, q럞, q럞);
+Test_N(q럟, q럟, q럟, q럟, q럟);
+Test_N(q럠, q럠, q럠, q럠, q럠);
+Test_N(q럡, q럡, q럡, q럡, q럡);
+Test_N(q럢, q럢, q럢, q럢, q럢);
+Test_N(q럣, q럣, q럣, q럣, q럣);
+Test_N(q럤, q럤, q럤, q럤, q럤);
+Test_N(q럥, q럥, q럥, q럥, q럥);
+Test_N(q럦, q럦, q럦, q럦, q럦);
+Test_N(q럧, q럧, q럧, q럧, q럧);
+Test_N(q럨, q럨, q럨, q럨, q럨);
+Test_N(q럩, q럩, q럩, q럩, q럩);
+Test_N(q럪, q럪, q럪, q럪, q럪);
+Test_N(q럫, q럫, q럫, q럫, q럫);
+Test_N(q러, q러, q러, q러, q러);
+Test_N(q럭, q럭, q럭, q럭, q럭);
+Test_N(q럮, q럮, q럮, q럮, q럮);
+Test_N(q럯, q럯, q럯, q럯, q럯);
+Test_N(q런, q런, q런, q런, q런);
+Test_N(q럱, q럱, q럱, q럱, q럱);
+Test_N(q럲, q럲, q럲, q럲, q럲);
+Test_N(q럳, q럳, q럳, q럳, q럳);
+Test_N(q럴, q럴, q럴, q럴, q럴);
+Test_N(q럵, q럵, q럵, q럵, q럵);
+Test_N(q럶, q럶, q럶, q럶, q럶);
+Test_N(q럷, q럷, q럷, q럷, q럷);
+Test_N(q럸, q럸, q럸, q럸, q럸);
+Test_N(q럹, q럹, q럹, q럹, q럹);
+Test_N(q럺, q럺, q럺, q럺, q럺);
+Test_N(q럻, q럻, q럻, q럻, q럻);
+Test_N(q럼, q럼, q럼, q럼, q럼);
+Test_N(q럽, q럽, q럽, q럽, q럽);
+Test_N(q럾, q럾, q럾, q럾, q럾);
+Test_N(q럿, q럿, q럿, q럿, q럿);
+Test_N(q렀, q렀, q렀, q렀, q렀);
+Test_N(q렁, q렁, q렁, q렁, q렁);
+Test_N(q렂, q렂, q렂, q렂, q렂);
+Test_N(q렃, q렃, q렃, q렃, q렃);
+Test_N(q렄, q렄, q렄, q렄, q렄);
+Test_N(q렅, q렅, q렅, q렅, q렅);
+Test_N(q렆, q렆, q렆, q렆, q렆);
+Test_N(q렇, q렇, q렇, q렇, q렇);
+Test_N(q레, q레, q레, q레, q레);
+Test_N(q렉, q렉, q렉, q렉, q렉);
+Test_N(q렊, q렊, q렊, q렊, q렊);
+Test_N(q렋, q렋, q렋, q렋, q렋);
+Test_N(q렌, q렌, q렌, q렌, q렌);
+Test_N(q렍, q렍, q렍, q렍, q렍);
+Test_N(q렎, q렎, q렎, q렎, q렎);
+Test_N(q렏, q렏, q렏, q렏, q렏);
+Test_N(q렐, q렐, q렐, q렐, q렐);
+Test_N(q렑, q렑, q렑, q렑, q렑);
+Test_N(q렒, q렒, q렒, q렒, q렒);
+Test_N(q렓, q렓, q렓, q렓, q렓);
+Test_N(q렔, q렔, q렔, q렔, q렔);
+Test_N(q렕, q렕, q렕, q렕, q렕);
+Test_N(q렖, q렖, q렖, q렖, q렖);
+Test_N(q렗, q렗, q렗, q렗, q렗);
+Test_N(q렘, q렘, q렘, q렘, q렘);
+Test_N(q렙, q렙, q렙, q렙, q렙);
+Test_N(q렚, q렚, q렚, q렚, q렚);
+Test_N(q렛, q렛, q렛, q렛, q렛);
+Test_N(q렜, q렜, q렜, q렜, q렜);
+Test_N(q렝, q렝, q렝, q렝, q렝);
+Test_N(q렞, q렞, q렞, q렞, q렞);
+Test_N(q렟, q렟, q렟, q렟, q렟);
+Test_N(q렠, q렠, q렠, q렠, q렠);
+Test_N(q렡, q렡, q렡, q렡, q렡);
+Test_N(q렢, q렢, q렢, q렢, q렢);
+Test_N(q렣, q렣, q렣, q렣, q렣);
+Test_N(q려, q려, q려, q려, q려);
+Test_N(q력, q력, q력, q력, q력);
+Test_N(q렦, q렦, q렦, q렦, q렦);
+Test_N(q렧, q렧, q렧, q렧, q렧);
+Test_N(q련, q련, q련, q련, q련);
+Test_N(q렩, q렩, q렩, q렩, q렩);
+Test_N(q렪, q렪, q렪, q렪, q렪);
+Test_N(q렫, q렫, q렫, q렫, q렫);
+Test_N(q렬, q렬, q렬, q렬, q렬);
+Test_N(q렭, q렭, q렭, q렭, q렭);
+Test_N(q렮, q렮, q렮, q렮, q렮);
+Test_N(q렯, q렯, q렯, q렯, q렯);
+Test_N(q렰, q렰, q렰, q렰, q렰);
+Test_N(q렱, q렱, q렱, q렱, q렱);
+Test_N(q렲, q렲, q렲, q렲, q렲);
+Test_N(q렳, q렳, q렳, q렳, q렳);
+Test_N(q렴, q렴, q렴, q렴, q렴);
+Test_N(q렵, q렵, q렵, q렵, q렵);
+Test_N(q렶, q렶, q렶, q렶, q렶);
+Test_N(q렷, q렷, q렷, q렷, q렷);
+Test_N(q렸, q렸, q렸, q렸, q렸);
+Test_N(q령, q령, q령, q령, q령);
+Test_N(q렺, q렺, q렺, q렺, q렺);
+Test_N(q렻, q렻, q렻, q렻, q렻);
+Test_N(q렼, q렼, q렼, q렼, q렼);
+Test_N(q렽, q렽, q렽, q렽, q렽);
+Test_N(q렾, q렾, q렾, q렾, q렾);
+Test_N(q렿, q렿, q렿, q렿, q렿);
+Test_N(q례, q례, q례, q례, q례);
+Test_N(q롁, q롁, q롁, q롁, q롁);
+Test_N(q롂, q롂, q롂, q롂, q롂);
+Test_N(q롃, q롃, q롃, q롃, q롃);
+Test_N(q롄, q롄, q롄, q롄, q롄);
+Test_N(q롅, q롅, q롅, q롅, q롅);
+Test_N(q롆, q롆, q롆, q롆, q롆);
+Test_N(q롇, q롇, q롇, q롇, q롇);
+Test_N(q롈, q롈, q롈, q롈, q롈);
+Test_N(q롉, q롉, q롉, q롉, q롉);
+Test_N(q롊, q롊, q롊, q롊, q롊);
+Test_N(q롋, q롋, q롋, q롋, q롋);
+Test_N(q롌, q롌, q롌, q롌, q롌);
+Test_N(q롍, q롍, q롍, q롍, q롍);
+Test_N(q롎, q롎, q롎, q롎, q롎);
+Test_N(q롏, q롏, q롏, q롏, q롏);
+Test_N(q롐, q롐, q롐, q롐, q롐);
+Test_N(q롑, q롑, q롑, q롑, q롑);
+Test_N(q롒, q롒, q롒, q롒, q롒);
+Test_N(q롓, q롓, q롓, q롓, q롓);
+Test_N(q롔, q롔, q롔, q롔, q롔);
+Test_N(q롕, q롕, q롕, q롕, q롕);
+Test_N(q롖, q롖, q롖, q롖, q롖);
+Test_N(q롗, q롗, q롗, q롗, q롗);
+Test_N(q롘, q롘, q롘, q롘, q롘);
+Test_N(q롙, q롙, q롙, q롙, q롙);
+Test_N(q롚, q롚, q롚, q롚, q롚);
+Test_N(q롛, q롛, q롛, q롛, q롛);
+Test_N(q로, q로, q로, q로, q로);
+Test_N(q록, q록, q록, q록, q록);
+Test_N(q롞, q롞, q롞, q롞, q롞);
+Test_N(q롟, q롟, q롟, q롟, q롟);
+Test_N(q론, q론, q론, q론, q론);
+Test_N(q롡, q롡, q롡, q롡, q롡);
+Test_N(q롢, q롢, q롢, q롢, q롢);
+Test_N(q롣, q롣, q롣, q롣, q롣);
+Test_N(q롤, q롤, q롤, q롤, q롤);
+Test_N(q롥, q롥, q롥, q롥, q롥);
+Test_N(q롦, q롦, q롦, q롦, q롦);
+Test_N(q롧, q롧, q롧, q롧, q롧);
+Test_N(q롨, q롨, q롨, q롨, q롨);
+Test_N(q롩, q롩, q롩, q롩, q롩);
+Test_N(q롪, q롪, q롪, q롪, q롪);
+Test_N(q롫, q롫, q롫, q롫, q롫);
+Test_N(q롬, q롬, q롬, q롬, q롬);
+Test_N(q롭, q롭, q롭, q롭, q롭);
+Test_N(q롮, q롮, q롮, q롮, q롮);
+Test_N(q롯, q롯, q롯, q롯, q롯);
+Test_N(q롰, q롰, q롰, q롰, q롰);
+Test_N(q롱, q롱, q롱, q롱, q롱);
+Test_N(q롲, q롲, q롲, q롲, q롲);
+Test_N(q롳, q롳, q롳, q롳, q롳);
+Test_N(q롴, q롴, q롴, q롴, q롴);
+Test_N(q롵, q롵, q롵, q롵, q롵);
+Test_N(q롶, q롶, q롶, q롶, q롶);
+Test_N(q롷, q롷, q롷, q롷, q롷);
+Test_N(q롸, q롸, q롸, q롸, q롸);
+Test_N(q롹, q롹, q롹, q롹, q롹);
+Test_N(q롺, q롺, q롺, q롺, q롺);
+Test_N(q롻, q롻, q롻, q롻, q롻);
+Test_N(q롼, q롼, q롼, q롼, q롼);
+Test_N(q롽, q롽, q롽, q롽, q롽);
+Test_N(q롾, q롾, q롾, q롾, q롾);
+Test_N(q롿, q롿, q롿, q롿, q롿);
+Test_N(q뢀, q뢀, q뢀, q뢀, q뢀);
+Test_N(q뢁, q뢁, q뢁, q뢁, q뢁);
+Test_N(q뢂, q뢂, q뢂, q뢂, q뢂);
+Test_N(q뢃, q뢃, q뢃, q뢃, q뢃);
+Test_N(q뢄, q뢄, q뢄, q뢄, q뢄);
+Test_N(q뢅, q뢅, q뢅, q뢅, q뢅);
+Test_N(q뢆, q뢆, q뢆, q뢆, q뢆);
+Test_N(q뢇, q뢇, q뢇, q뢇, q뢇);
+Test_N(q뢈, q뢈, q뢈, q뢈, q뢈);
+Test_N(q뢉, q뢉, q뢉, q뢉, q뢉);
+Test_N(q뢊, q뢊, q뢊, q뢊, q뢊);
+Test_N(q뢋, q뢋, q뢋, q뢋, q뢋);
+Test_N(q뢌, q뢌, q뢌, q뢌, q뢌);
+Test_N(q뢍, q뢍, q뢍, q뢍, q뢍);
+Test_N(q뢎, q뢎, q뢎, q뢎, q뢎);
+Test_N(q뢏, q뢏, q뢏, q뢏, q뢏);
+Test_N(q뢐, q뢐, q뢐, q뢐, q뢐);
+Test_N(q뢑, q뢑, q뢑, q뢑, q뢑);
+Test_N(q뢒, q뢒, q뢒, q뢒, q뢒);
+Test_N(q뢓, q뢓, q뢓, q뢓, q뢓);
+Test_N(q뢔, q뢔, q뢔, q뢔, q뢔);
+Test_N(q뢕, q뢕, q뢕, q뢕, q뢕);
+Test_N(q뢖, q뢖, q뢖, q뢖, q뢖);
+Test_N(q뢗, q뢗, q뢗, q뢗, q뢗);
+Test_N(q뢘, q뢘, q뢘, q뢘, q뢘);
+Test_N(q뢙, q뢙, q뢙, q뢙, q뢙);
+Test_N(q뢚, q뢚, q뢚, q뢚, q뢚);
+Test_N(q뢛, q뢛, q뢛, q뢛, q뢛);
+Test_N(q뢜, q뢜, q뢜, q뢜, q뢜);
+Test_N(q뢝, q뢝, q뢝, q뢝, q뢝);
+Test_N(q뢞, q뢞, q뢞, q뢞, q뢞);
+Test_N(q뢟, q뢟, q뢟, q뢟, q뢟);
+Test_N(q뢠, q뢠, q뢠, q뢠, q뢠);
+Test_N(q뢡, q뢡, q뢡, q뢡, q뢡);
+Test_N(q뢢, q뢢, q뢢, q뢢, q뢢);
+Test_N(q뢣, q뢣, q뢣, q뢣, q뢣);
+Test_N(q뢤, q뢤, q뢤, q뢤, q뢤);
+Test_N(q뢥, q뢥, q뢥, q뢥, q뢥);
+Test_N(q뢦, q뢦, q뢦, q뢦, q뢦);
+Test_N(q뢧, q뢧, q뢧, q뢧, q뢧);
+Test_N(q뢨, q뢨, q뢨, q뢨, q뢨);
+Test_N(q뢩, q뢩, q뢩, q뢩, q뢩);
+Test_N(q뢪, q뢪, q뢪, q뢪, q뢪);
+Test_N(q뢫, q뢫, q뢫, q뢫, q뢫);
+Test_N(q뢬, q뢬, q뢬, q뢬, q뢬);
+Test_N(q뢭, q뢭, q뢭, q뢭, q뢭);
+Test_N(q뢮, q뢮, q뢮, q뢮, q뢮);
+Test_N(q뢯, q뢯, q뢯, q뢯, q뢯);
+Test_N(q뢰, q뢰, q뢰, q뢰, q뢰);
+Test_N(q뢱, q뢱, q뢱, q뢱, q뢱);
+Test_N(q뢲, q뢲, q뢲, q뢲, q뢲);
+Test_N(q뢳, q뢳, q뢳, q뢳, q뢳);
+Test_N(q뢴, q뢴, q뢴, q뢴, q뢴);
+Test_N(q뢵, q뢵, q뢵, q뢵, q뢵);
+Test_N(q뢶, q뢶, q뢶, q뢶, q뢶);
+Test_N(q뢷, q뢷, q뢷, q뢷, q뢷);
+Test_N(q뢸, q뢸, q뢸, q뢸, q뢸);
+Test_N(q뢹, q뢹, q뢹, q뢹, q뢹);
+Test_N(q뢺, q뢺, q뢺, q뢺, q뢺);
+Test_N(q뢻, q뢻, q뢻, q뢻, q뢻);
+Test_N(q뢼, q뢼, q뢼, q뢼, q뢼);
+Test_N(q뢽, q뢽, q뢽, q뢽, q뢽);
+Test_N(q뢾, q뢾, q뢾, q뢾, q뢾);
+Test_N(q뢿, q뢿, q뢿, q뢿, q뢿);
+Test_N(q룀, q룀, q룀, q룀, q룀);
+Test_N(q룁, q룁, q룁, q룁, q룁);
+Test_N(q룂, q룂, q룂, q룂, q룂);
+Test_N(q룃, q룃, q룃, q룃, q룃);
+Test_N(q룄, q룄, q룄, q룄, q룄);
+Test_N(q룅, q룅, q룅, q룅, q룅);
+Test_N(q룆, q룆, q룆, q룆, q룆);
+Test_N(q룇, q룇, q룇, q룇, q룇);
+Test_N(q룈, q룈, q룈, q룈, q룈);
+Test_N(q룉, q룉, q룉, q룉, q룉);
+Test_N(q룊, q룊, q룊, q룊, q룊);
+Test_N(q룋, q룋, q룋, q룋, q룋);
+Test_N(q료, q료, q료, q료, q료);
+Test_N(q룍, q룍, q룍, q룍, q룍);
+Test_N(q룎, q룎, q룎, q룎, q룎);
+Test_N(q룏, q룏, q룏, q룏, q룏);
+Test_N(q룐, q룐, q룐, q룐, q룐);
+Test_N(q룑, q룑, q룑, q룑, q룑);
+Test_N(q룒, q룒, q룒, q룒, q룒);
+Test_N(q룓, q룓, q룓, q룓, q룓);
+Test_N(q룔, q룔, q룔, q룔, q룔);
+Test_N(q룕, q룕, q룕, q룕, q룕);
+Test_N(q룖, q룖, q룖, q룖, q룖);
+Test_N(q룗, q룗, q룗, q룗, q룗);
+Test_N(q룘, q룘, q룘, q룘, q룘);
+Test_N(q룙, q룙, q룙, q룙, q룙);
+Test_N(q룚, q룚, q룚, q룚, q룚);
+Test_N(q룛, q룛, q룛, q룛, q룛);
+Test_N(q룜, q룜, q룜, q룜, q룜);
+Test_N(q룝, q룝, q룝, q룝, q룝);
+Test_N(q룞, q룞, q룞, q룞, q룞);
+Test_N(q룟, q룟, q룟, q룟, q룟);
+Test_N(q룠, q룠, q룠, q룠, q룠);
+Test_N(q룡, q룡, q룡, q룡, q룡);
+Test_N(q룢, q룢, q룢, q룢, q룢);
+Test_N(q룣, q룣, q룣, q룣, q룣);
+Test_N(q룤, q룤, q룤, q룤, q룤);
+Test_N(q룥, q룥, q룥, q룥, q룥);
+Test_N(q룦, q룦, q룦, q룦, q룦);
+Test_N(q룧, q룧, q룧, q룧, q룧);
+Test_N(q루, q루, q루, q루, q루);
+Test_N(q룩, q룩, q룩, q룩, q룩);
+Test_N(q룪, q룪, q룪, q룪, q룪);
+Test_N(q룫, q룫, q룫, q룫, q룫);
+Test_N(q룬, q룬, q룬, q룬, q룬);
+Test_N(q룭, q룭, q룭, q룭, q룭);
+Test_N(q룮, q룮, q룮, q룮, q룮);
+Test_N(q룯, q룯, q룯, q룯, q룯);
+Test_N(q룰, q룰, q룰, q룰, q룰);
+Test_N(q룱, q룱, q룱, q룱, q룱);
+Test_N(q룲, q룲, q룲, q룲, q룲);
+Test_N(q룳, q룳, q룳, q룳, q룳);
+Test_N(q룴, q룴, q룴, q룴, q룴);
+Test_N(q룵, q룵, q룵, q룵, q룵);
+Test_N(q룶, q룶, q룶, q룶, q룶);
+Test_N(q룷, q룷, q룷, q룷, q룷);
+Test_N(q룸, q룸, q룸, q룸, q룸);
+Test_N(q룹, q룹, q룹, q룹, q룹);
+Test_N(q룺, q룺, q룺, q룺, q룺);
+Test_N(q룻, q룻, q룻, q룻, q룻);
+Test_N(q룼, q룼, q룼, q룼, q룼);
+Test_N(q룽, q룽, q룽, q룽, q룽);
+Test_N(q룾, q룾, q룾, q룾, q룾);
+Test_N(q룿, q룿, q룿, q룿, q룿);
+Test_N(q뤀, q뤀, q뤀, q뤀, q뤀);
+Test_N(q뤁, q뤁, q뤁, q뤁, q뤁);
+Test_N(q뤂, q뤂, q뤂, q뤂, q뤂);
+Test_N(q뤃, q뤃, q뤃, q뤃, q뤃);
+Test_N(q뤄, q뤄, q뤄, q뤄, q뤄);
+Test_N(q뤅, q뤅, q뤅, q뤅, q뤅);
+Test_N(q뤆, q뤆, q뤆, q뤆, q뤆);
+Test_N(q뤇, q뤇, q뤇, q뤇, q뤇);
+Test_N(q뤈, q뤈, q뤈, q뤈, q뤈);
+Test_N(q뤉, q뤉, q뤉, q뤉, q뤉);
+Test_N(q뤊, q뤊, q뤊, q뤊, q뤊);
+Test_N(q뤋, q뤋, q뤋, q뤋, q뤋);
+Test_N(q뤌, q뤌, q뤌, q뤌, q뤌);
+Test_N(q뤍, q뤍, q뤍, q뤍, q뤍);
+Test_N(q뤎, q뤎, q뤎, q뤎, q뤎);
+Test_N(q뤏, q뤏, q뤏, q뤏, q뤏);
+Test_N(q뤐, q뤐, q뤐, q뤐, q뤐);
+Test_N(q뤑, q뤑, q뤑, q뤑, q뤑);
+Test_N(q뤒, q뤒, q뤒, q뤒, q뤒);
+Test_N(q뤓, q뤓, q뤓, q뤓, q뤓);
+Test_N(q뤔, q뤔, q뤔, q뤔, q뤔);
+Test_N(q뤕, q뤕, q뤕, q뤕, q뤕);
+Test_N(q뤖, q뤖, q뤖, q뤖, q뤖);
+Test_N(q뤗, q뤗, q뤗, q뤗, q뤗);
+Test_N(q뤘, q뤘, q뤘, q뤘, q뤘);
+Test_N(q뤙, q뤙, q뤙, q뤙, q뤙);
+Test_N(q뤚, q뤚, q뤚, q뤚, q뤚);
+Test_N(q뤛, q뤛, q뤛, q뤛, q뤛);
+Test_N(q뤜, q뤜, q뤜, q뤜, q뤜);
+Test_N(q뤝, q뤝, q뤝, q뤝, q뤝);
+Test_N(q뤞, q뤞, q뤞, q뤞, q뤞);
+Test_N(q뤟, q뤟, q뤟, q뤟, q뤟);
+Test_N(q뤠, q뤠, q뤠, q뤠, q뤠);
+Test_N(q뤡, q뤡, q뤡, q뤡, q뤡);
+Test_N(q뤢, q뤢, q뤢, q뤢, q뤢);
+Test_N(q뤣, q뤣, q뤣, q뤣, q뤣);
+Test_N(q뤤, q뤤, q뤤, q뤤, q뤤);
+Test_N(q뤥, q뤥, q뤥, q뤥, q뤥);
+Test_N(q뤦, q뤦, q뤦, q뤦, q뤦);
+Test_N(q뤧, q뤧, q뤧, q뤧, q뤧);
+Test_N(q뤨, q뤨, q뤨, q뤨, q뤨);
+Test_N(q뤩, q뤩, q뤩, q뤩, q뤩);
+Test_N(q뤪, q뤪, q뤪, q뤪, q뤪);
+Test_N(q뤫, q뤫, q뤫, q뤫, q뤫);
+Test_N(q뤬, q뤬, q뤬, q뤬, q뤬);
+Test_N(q뤭, q뤭, q뤭, q뤭, q뤭);
+Test_N(q뤮, q뤮, q뤮, q뤮, q뤮);
+Test_N(q뤯, q뤯, q뤯, q뤯, q뤯);
+Test_N(q뤰, q뤰, q뤰, q뤰, q뤰);
+Test_N(q뤱, q뤱, q뤱, q뤱, q뤱);
+Test_N(q뤲, q뤲, q뤲, q뤲, q뤲);
+Test_N(q뤳, q뤳, q뤳, q뤳, q뤳);
+Test_N(q뤴, q뤴, q뤴, q뤴, q뤴);
+Test_N(q뤵, q뤵, q뤵, q뤵, q뤵);
+Test_N(q뤶, q뤶, q뤶, q뤶, q뤶);
+Test_N(q뤷, q뤷, q뤷, q뤷, q뤷);
+Test_N(q뤸, q뤸, q뤸, q뤸, q뤸);
+Test_N(q뤹, q뤹, q뤹, q뤹, q뤹);
+Test_N(q뤺, q뤺, q뤺, q뤺, q뤺);
+Test_N(q뤻, q뤻, q뤻, q뤻, q뤻);
+Test_N(q뤼, q뤼, q뤼, q뤼, q뤼);
+Test_N(q뤽, q뤽, q뤽, q뤽, q뤽);
+Test_N(q뤾, q뤾, q뤾, q뤾, q뤾);
+Test_N(q뤿, q뤿, q뤿, q뤿, q뤿);
+Test_N(q륀, q륀, q륀, q륀, q륀);
+Test_N(q륁, q륁, q륁, q륁, q륁);
+Test_N(q륂, q륂, q륂, q륂, q륂);
+Test_N(q륃, q륃, q륃, q륃, q륃);
+Test_N(q륄, q륄, q륄, q륄, q륄);
+Test_N(q륅, q륅, q륅, q륅, q륅);
+Test_N(q륆, q륆, q륆, q륆, q륆);
+Test_N(q륇, q륇, q륇, q륇, q륇);
+Test_N(q륈, q륈, q륈, q륈, q륈);
+Test_N(q륉, q륉, q륉, q륉, q륉);
+Test_N(q륊, q륊, q륊, q륊, q륊);
+Test_N(q륋, q륋, q륋, q륋, q륋);
+Test_N(q륌, q륌, q륌, q륌, q륌);
+Test_N(q륍, q륍, q륍, q륍, q륍);
+Test_N(q륎, q륎, q륎, q륎, q륎);
+Test_N(q륏, q륏, q륏, q륏, q륏);
+Test_N(q륐, q륐, q륐, q륐, q륐);
+Test_N(q륑, q륑, q륑, q륑, q륑);
+Test_N(q륒, q륒, q륒, q륒, q륒);
+Test_N(q륓, q륓, q륓, q륓, q륓);
+Test_N(q륔, q륔, q륔, q륔, q륔);
+Test_N(q륕, q륕, q륕, q륕, q륕);
+Test_N(q륖, q륖, q륖, q륖, q륖);
+Test_N(q륗, q륗, q륗, q륗, q륗);
+Test_N(q류, q류, q류, q류, q류);
+Test_N(q륙, q륙, q륙, q륙, q륙);
+Test_N(q륚, q륚, q륚, q륚, q륚);
+Test_N(q륛, q륛, q륛, q륛, q륛);
+Test_N(q륜, q륜, q륜, q륜, q륜);
+Test_N(q륝, q륝, q륝, q륝, q륝);
+Test_N(q륞, q륞, q륞, q륞, q륞);
+Test_N(q륟, q륟, q륟, q륟, q륟);
+Test_N(q률, q률, q률, q률, q률);
+Test_N(q륡, q륡, q륡, q륡, q륡);
+Test_N(q륢, q륢, q륢, q륢, q륢);
+Test_N(q륣, q륣, q륣, q륣, q륣);
+Test_N(q륤, q륤, q륤, q륤, q륤);
+Test_N(q륥, q륥, q륥, q륥, q륥);
+Test_N(q륦, q륦, q륦, q륦, q륦);
+Test_N(q륧, q륧, q륧, q륧, q륧);
+Test_N(q륨, q륨, q륨, q륨, q륨);
+Test_N(q륩, q륩, q륩, q륩, q륩);
+Test_N(q륪, q륪, q륪, q륪, q륪);
+Test_N(q륫, q륫, q륫, q륫, q륫);
+Test_N(q륬, q륬, q륬, q륬, q륬);
+Test_N(q륭, q륭, q륭, q륭, q륭);
+Test_N(q륮, q륮, q륮, q륮, q륮);
+Test_N(q륯, q륯, q륯, q륯, q륯);
+Test_N(q륰, q륰, q륰, q륰, q륰);
+Test_N(q륱, q륱, q륱, q륱, q륱);
+Test_N(q륲, q륲, q륲, q륲, q륲);
+Test_N(q륳, q륳, q륳, q륳, q륳);
+Test_N(q르, q르, q르, q르, q르);
+Test_N(q륵, q륵, q륵, q륵, q륵);
+Test_N(q륶, q륶, q륶, q륶, q륶);
+Test_N(q륷, q륷, q륷, q륷, q륷);
+Test_N(q른, q른, q른, q른, q른);
+Test_N(q륹, q륹, q륹, q륹, q륹);
+Test_N(q륺, q륺, q륺, q륺, q륺);
+Test_N(q륻, q륻, q륻, q륻, q륻);
+Test_N(q를, q를, q를, q를, q를);
+Test_N(q륽, q륽, q륽, q륽, q륽);
+Test_N(q륾, q륾, q륾, q륾, q륾);
+Test_N(q륿, q륿, q륿, q륿, q륿);
+Test_N(q릀, q릀, q릀, q릀, q릀);
+Test_N(q릁, q릁, q릁, q릁, q릁);
+Test_N(q릂, q릂, q릂, q릂, q릂);
+Test_N(q릃, q릃, q릃, q릃, q릃);
+Test_N(q름, q름, q름, q름, q름);
+Test_N(q릅, q릅, q릅, q릅, q릅);
+Test_N(q릆, q릆, q릆, q릆, q릆);
+Test_N(q릇, q릇, q릇, q릇, q릇);
+Test_N(q릈, q릈, q릈, q릈, q릈);
+Test_N(q릉, q릉, q릉, q릉, q릉);
+Test_N(q릊, q릊, q릊, q릊, q릊);
+Test_N(q릋, q릋, q릋, q릋, q릋);
+Test_N(q릌, q릌, q릌, q릌, q릌);
+Test_N(q릍, q릍, q릍, q릍, q릍);
+Test_N(q릎, q릎, q릎, q릎, q릎);
+Test_N(q릏, q릏, q릏, q릏, q릏);
+Test_N(q릐, q릐, q릐, q릐, q릐);
+Test_N(q릑, q릑, q릑, q릑, q릑);
+Test_N(q릒, q릒, q릒, q릒, q릒);
+Test_N(q릓, q릓, q릓, q릓, q릓);
+Test_N(q릔, q릔, q릔, q릔, q릔);
+Test_N(q릕, q릕, q릕, q릕, q릕);
+Test_N(q릖, q릖, q릖, q릖, q릖);
+Test_N(q릗, q릗, q릗, q릗, q릗);
+Test_N(q릘, q릘, q릘, q릘, q릘);
+Test_N(q릙, q릙, q릙, q릙, q릙);
+Test_N(q릚, q릚, q릚, q릚, q릚);
+Test_N(q릛, q릛, q릛, q릛, q릛);
+Test_N(q릜, q릜, q릜, q릜, q릜);
+Test_N(q릝, q릝, q릝, q릝, q릝);
+Test_N(q릞, q릞, q릞, q릞, q릞);
+Test_N(q릟, q릟, q릟, q릟, q릟);
+Test_N(q릠, q릠, q릠, q릠, q릠);
+Test_N(q릡, q릡, q릡, q릡, q릡);
+Test_N(q릢, q릢, q릢, q릢, q릢);
+Test_N(q릣, q릣, q릣, q릣, q릣);
+Test_N(q릤, q릤, q릤, q릤, q릤);
+Test_N(q릥, q릥, q릥, q릥, q릥);
+Test_N(q릦, q릦, q릦, q릦, q릦);
+Test_N(q릧, q릧, q릧, q릧, q릧);
+Test_N(q릨, q릨, q릨, q릨, q릨);
+Test_N(q릩, q릩, q릩, q릩, q릩);
+Test_N(q릪, q릪, q릪, q릪, q릪);
+Test_N(q릫, q릫, q릫, q릫, q릫);
+Test_N(q리, q리, q리, q리, q리);
+Test_N(q릭, q릭, q릭, q릭, q릭);
+Test_N(q릮, q릮, q릮, q릮, q릮);
+Test_N(q릯, q릯, q릯, q릯, q릯);
+Test_N(q린, q린, q린, q린, q린);
+Test_N(q릱, q릱, q릱, q릱, q릱);
+Test_N(q릲, q릲, q릲, q릲, q릲);
+Test_N(q릳, q릳, q릳, q릳, q릳);
+Test_N(q릴, q릴, q릴, q릴, q릴);
+Test_N(q릵, q릵, q릵, q릵, q릵);
+Test_N(q릶, q릶, q릶, q릶, q릶);
+Test_N(q릷, q릷, q릷, q릷, q릷);
+Test_N(q릸, q릸, q릸, q릸, q릸);
+Test_N(q릹, q릹, q릹, q릹, q릹);
+Test_N(q릺, q릺, q릺, q릺, q릺);
+Test_N(q릻, q릻, q릻, q릻, q릻);
+Test_N(q림, q림, q림, q림, q림);
+Test_N(q립, q립, q립, q립, q립);
+Test_N(q릾, q릾, q릾, q릾, q릾);
+Test_N(q릿, q릿, q릿, q릿, q릿);
+Test_N(q맀, q맀, q맀, q맀, q맀);
+Test_N(q링, q링, q링, q링, q링);
+Test_N(q맂, q맂, q맂, q맂, q맂);
+Test_N(q맃, q맃, q맃, q맃, q맃);
+Test_N(q맄, q맄, q맄, q맄, q맄);
+Test_N(q맅, q맅, q맅, q맅, q맅);
+Test_N(q맆, q맆, q맆, q맆, q맆);
+Test_N(q맇, q맇, q맇, q맇, q맇);
+Test_N(q마, q마, q마, q마, q마);
+Test_N(q막, q막, q막, q막, q막);
+Test_N(q맊, q맊, q맊, q맊, q맊);
+Test_N(q맋, q맋, q맋, q맋, q맋);
+Test_N(q만, q만, q만, q만, q만);
+Test_N(q맍, q맍, q맍, q맍, q맍);
+Test_N(q많, q많, q많, q많, q많);
+Test_N(q맏, q맏, q맏, q맏, q맏);
+Test_N(q말, q말, q말, q말, q말);
+Test_N(q맑, q맑, q맑, q맑, q맑);
+Test_N(q맒, q맒, q맒, q맒, q맒);
+Test_N(q맓, q맓, q맓, q맓, q맓);
+Test_N(q맔, q맔, q맔, q맔, q맔);
+Test_N(q맕, q맕, q맕, q맕, q맕);
+Test_N(q맖, q맖, q맖, q맖, q맖);
+Test_N(q맗, q맗, q맗, q맗, q맗);
+Test_N(q맘, q맘, q맘, q맘, q맘);
+Test_N(q맙, q맙, q맙, q맙, q맙);
+Test_N(q맚, q맚, q맚, q맚, q맚);
+Test_N(q맛, q맛, q맛, q맛, q맛);
+Test_N(q맜, q맜, q맜, q맜, q맜);
+Test_N(q망, q망, q망, q망, q망);
+Test_N(q맞, q맞, q맞, q맞, q맞);
+Test_N(q맟, q맟, q맟, q맟, q맟);
+Test_N(q맠, q맠, q맠, q맠, q맠);
+Test_N(q맡, q맡, q맡, q맡, q맡);
+Test_N(q맢, q맢, q맢, q맢, q맢);
+Test_N(q맣, q맣, q맣, q맣, q맣);
+Test_N(q매, q매, q매, q매, q매);
+Test_N(q맥, q맥, q맥, q맥, q맥);
+Test_N(q맦, q맦, q맦, q맦, q맦);
+Test_N(q맧, q맧, q맧, q맧, q맧);
+Test_N(q맨, q맨, q맨, q맨, q맨);
+Test_N(q맩, q맩, q맩, q맩, q맩);
+Test_N(q맪, q맪, q맪, q맪, q맪);
+Test_N(q맫, q맫, q맫, q맫, q맫);
+Test_N(q맬, q맬, q맬, q맬, q맬);
+Test_N(q맭, q맭, q맭, q맭, q맭);
+Test_N(q맮, q맮, q맮, q맮, q맮);
+Test_N(q맯, q맯, q맯, q맯, q맯);
+Test_N(q맰, q맰, q맰, q맰, q맰);
+Test_N(q맱, q맱, q맱, q맱, q맱);
+Test_N(q맲, q맲, q맲, q맲, q맲);
+Test_N(q맳, q맳, q맳, q맳, q맳);
+Test_N(q맴, q맴, q맴, q맴, q맴);
+Test_N(q맵, q맵, q맵, q맵, q맵);
+Test_N(q맶, q맶, q맶, q맶, q맶);
+Test_N(q맷, q맷, q맷, q맷, q맷);
+Test_N(q맸, q맸, q맸, q맸, q맸);
+Test_N(q맹, q맹, q맹, q맹, q맹);
+Test_N(q맺, q맺, q맺, q맺, q맺);
+Test_N(q맻, q맻, q맻, q맻, q맻);
+Test_N(q맼, q맼, q맼, q맼, q맼);
+Test_N(q맽, q맽, q맽, q맽, q맽);
+Test_N(q맾, q맾, q맾, q맾, q맾);
+Test_N(q맿, q맿, q맿, q맿, q맿);
+Test_N(q먀, q먀, q먀, q먀, q먀);
+Test_N(q먁, q먁, q먁, q먁, q먁);
+Test_N(q먂, q먂, q먂, q먂, q먂);
+Test_N(q먃, q먃, q먃, q먃, q먃);
+Test_N(q먄, q먄, q먄, q먄, q먄);
+Test_N(q먅, q먅, q먅, q먅, q먅);
+Test_N(q먆, q먆, q먆, q먆, q먆);
+Test_N(q먇, q먇, q먇, q먇, q먇);
+Test_N(q먈, q먈, q먈, q먈, q먈);
+Test_N(q먉, q먉, q먉, q먉, q먉);
+Test_N(q먊, q먊, q먊, q먊, q먊);
+Test_N(q먋, q먋, q먋, q먋, q먋);
+Test_N(q먌, q먌, q먌, q먌, q먌);
+Test_N(q먍, q먍, q먍, q먍, q먍);
+Test_N(q먎, q먎, q먎, q먎, q먎);
+Test_N(q먏, q먏, q먏, q먏, q먏);
+Test_N(q먐, q먐, q먐, q먐, q먐);
+Test_N(q먑, q먑, q먑, q먑, q먑);
+Test_N(q먒, q먒, q먒, q먒, q먒);
+Test_N(q먓, q먓, q먓, q먓, q먓);
+Test_N(q먔, q먔, q먔, q먔, q먔);
+Test_N(q먕, q먕, q먕, q먕, q먕);
+Test_N(q먖, q먖, q먖, q먖, q먖);
+Test_N(q먗, q먗, q먗, q먗, q먗);
+Test_N(q먘, q먘, q먘, q먘, q먘);
+Test_N(q먙, q먙, q먙, q먙, q먙);
+Test_N(q먚, q먚, q먚, q먚, q먚);
+Test_N(q먛, q먛, q먛, q먛, q먛);
+Test_N(q먜, q먜, q먜, q먜, q먜);
+Test_N(q먝, q먝, q먝, q먝, q먝);
+Test_N(q먞, q먞, q먞, q먞, q먞);
+Test_N(q먟, q먟, q먟, q먟, q먟);
+Test_N(q먠, q먠, q먠, q먠, q먠);
+Test_N(q먡, q먡, q먡, q먡, q먡);
+Test_N(q먢, q먢, q먢, q먢, q먢);
+Test_N(q먣, q먣, q먣, q먣, q먣);
+Test_N(q먤, q먤, q먤, q먤, q먤);
+Test_N(q먥, q먥, q먥, q먥, q먥);
+Test_N(q먦, q먦, q먦, q먦, q먦);
+Test_N(q먧, q먧, q먧, q먧, q먧);
+Test_N(q먨, q먨, q먨, q먨, q먨);
+Test_N(q먩, q먩, q먩, q먩, q먩);
+Test_N(q먪, q먪, q먪, q먪, q먪);
+Test_N(q먫, q먫, q먫, q먫, q먫);
+Test_N(q먬, q먬, q먬, q먬, q먬);
+Test_N(q먭, q먭, q먭, q먭, q먭);
+Test_N(q먮, q먮, q먮, q먮, q먮);
+Test_N(q먯, q먯, q먯, q먯, q먯);
+Test_N(q먰, q먰, q먰, q먰, q먰);
+Test_N(q먱, q먱, q먱, q먱, q먱);
+Test_N(q먲, q먲, q먲, q먲, q먲);
+Test_N(q먳, q먳, q먳, q먳, q먳);
+Test_N(q먴, q먴, q먴, q먴, q먴);
+Test_N(q먵, q먵, q먵, q먵, q먵);
+Test_N(q먶, q먶, q먶, q먶, q먶);
+Test_N(q먷, q먷, q먷, q먷, q먷);
+Test_N(q머, q머, q머, q머, q머);
+Test_N(q먹, q먹, q먹, q먹, q먹);
+Test_N(q먺, q먺, q먺, q먺, q먺);
+Test_N(q먻, q먻, q먻, q먻, q먻);
+Test_N(q먼, q먼, q먼, q먼, q먼);
+Test_N(q먽, q먽, q먽, q먽, q먽);
+Test_N(q먾, q먾, q먾, q먾, q먾);
+Test_N(q먿, q먿, q먿, q먿, q먿);
+Test_N(q멀, q멀, q멀, q멀, q멀);
+Test_N(q멁, q멁, q멁, q멁, q멁);
+Test_N(q멂, q멂, q멂, q멂, q멂);
+Test_N(q멃, q멃, q멃, q멃, q멃);
+Test_N(q멄, q멄, q멄, q멄, q멄);
+Test_N(q멅, q멅, q멅, q멅, q멅);
+Test_N(q멆, q멆, q멆, q멆, q멆);
+Test_N(q멇, q멇, q멇, q멇, q멇);
+Test_N(q멈, q멈, q멈, q멈, q멈);
+Test_N(q멉, q멉, q멉, q멉, q멉);
+Test_N(q멊, q멊, q멊, q멊, q멊);
+Test_N(q멋, q멋, q멋, q멋, q멋);
+Test_N(q멌, q멌, q멌, q멌, q멌);
+Test_N(q멍, q멍, q멍, q멍, q멍);
+Test_N(q멎, q멎, q멎, q멎, q멎);
+Test_N(q멏, q멏, q멏, q멏, q멏);
+Test_N(q멐, q멐, q멐, q멐, q멐);
+Test_N(q멑, q멑, q멑, q멑, q멑);
+Test_N(q멒, q멒, q멒, q멒, q멒);
+Test_N(q멓, q멓, q멓, q멓, q멓);
+Test_N(q메, q메, q메, q메, q메);
+Test_N(q멕, q멕, q멕, q멕, q멕);
+Test_N(q멖, q멖, q멖, q멖, q멖);
+Test_N(q멗, q멗, q멗, q멗, q멗);
+Test_N(q멘, q멘, q멘, q멘, q멘);
+Test_N(q멙, q멙, q멙, q멙, q멙);
+Test_N(q멚, q멚, q멚, q멚, q멚);
+Test_N(q멛, q멛, q멛, q멛, q멛);
+Test_N(q멜, q멜, q멜, q멜, q멜);
+Test_N(q멝, q멝, q멝, q멝, q멝);
+Test_N(q멞, q멞, q멞, q멞, q멞);
+Test_N(q멟, q멟, q멟, q멟, q멟);
+Test_N(q멠, q멠, q멠, q멠, q멠);
+Test_N(q멡, q멡, q멡, q멡, q멡);
+Test_N(q멢, q멢, q멢, q멢, q멢);
+Test_N(q멣, q멣, q멣, q멣, q멣);
+Test_N(q멤, q멤, q멤, q멤, q멤);
+Test_N(q멥, q멥, q멥, q멥, q멥);
+Test_N(q멦, q멦, q멦, q멦, q멦);
+Test_N(q멧, q멧, q멧, q멧, q멧);
+Test_N(q멨, q멨, q멨, q멨, q멨);
+Test_N(q멩, q멩, q멩, q멩, q멩);
+Test_N(q멪, q멪, q멪, q멪, q멪);
+Test_N(q멫, q멫, q멫, q멫, q멫);
+Test_N(q멬, q멬, q멬, q멬, q멬);
+Test_N(q멭, q멭, q멭, q멭, q멭);
+Test_N(q멮, q멮, q멮, q멮, q멮);
+Test_N(q멯, q멯, q멯, q멯, q멯);
+Test_N(q며, q며, q며, q며, q며);
+Test_N(q멱, q멱, q멱, q멱, q멱);
+Test_N(q멲, q멲, q멲, q멲, q멲);
+Test_N(q멳, q멳, q멳, q멳, q멳);
+Test_N(q면, q면, q면, q면, q면);
+Test_N(q멵, q멵, q멵, q멵, q멵);
+Test_N(q멶, q멶, q멶, q멶, q멶);
+Test_N(q멷, q멷, q멷, q멷, q멷);
+Test_N(q멸, q멸, q멸, q멸, q멸);
+Test_N(q멹, q멹, q멹, q멹, q멹);
+Test_N(q멺, q멺, q멺, q멺, q멺);
+Test_N(q멻, q멻, q멻, q멻, q멻);
+Test_N(q멼, q멼, q멼, q멼, q멼);
+Test_N(q멽, q멽, q멽, q멽, q멽);
+Test_N(q멾, q멾, q멾, q멾, q멾);
+Test_N(q멿, q멿, q멿, q멿, q멿);
+Test_N(q몀, q몀, q몀, q몀, q몀);
+Test_N(q몁, q몁, q몁, q몁, q몁);
+Test_N(q몂, q몂, q몂, q몂, q몂);
+Test_N(q몃, q몃, q몃, q몃, q몃);
+Test_N(q몄, q몄, q몄, q몄, q몄);
+Test_N(q명, q명, q명, q명, q명);
+Test_N(q몆, q몆, q몆, q몆, q몆);
+Test_N(q몇, q몇, q몇, q몇, q몇);
+Test_N(q몈, q몈, q몈, q몈, q몈);
+Test_N(q몉, q몉, q몉, q몉, q몉);
+Test_N(q몊, q몊, q몊, q몊, q몊);
+Test_N(q몋, q몋, q몋, q몋, q몋);
+Test_N(q몌, q몌, q몌, q몌, q몌);
+Test_N(q몍, q몍, q몍, q몍, q몍);
+Test_N(q몎, q몎, q몎, q몎, q몎);
+Test_N(q몏, q몏, q몏, q몏, q몏);
+Test_N(q몐, q몐, q몐, q몐, q몐);
+Test_N(q몑, q몑, q몑, q몑, q몑);
+Test_N(q몒, q몒, q몒, q몒, q몒);
+Test_N(q몓, q몓, q몓, q몓, q몓);
+Test_N(q몔, q몔, q몔, q몔, q몔);
+Test_N(q몕, q몕, q몕, q몕, q몕);
+Test_N(q몖, q몖, q몖, q몖, q몖);
+Test_N(q몗, q몗, q몗, q몗, q몗);
+Test_N(q몘, q몘, q몘, q몘, q몘);
+Test_N(q몙, q몙, q몙, q몙, q몙);
+Test_N(q몚, q몚, q몚, q몚, q몚);
+Test_N(q몛, q몛, q몛, q몛, q몛);
+Test_N(q몜, q몜, q몜, q몜, q몜);
+Test_N(q몝, q몝, q몝, q몝, q몝);
+Test_N(q몞, q몞, q몞, q몞, q몞);
+Test_N(q몟, q몟, q몟, q몟, q몟);
+Test_N(q몠, q몠, q몠, q몠, q몠);
+Test_N(q몡, q몡, q몡, q몡, q몡);
+Test_N(q몢, q몢, q몢, q몢, q몢);
+Test_N(q몣, q몣, q몣, q몣, q몣);
+Test_N(q몤, q몤, q몤, q몤, q몤);
+Test_N(q몥, q몥, q몥, q몥, q몥);
+Test_N(q몦, q몦, q몦, q몦, q몦);
+Test_N(q몧, q몧, q몧, q몧, q몧);
+Test_N(q모, q모, q모, q모, q모);
+Test_N(q목, q목, q목, q목, q목);
+Test_N(q몪, q몪, q몪, q몪, q몪);
+Test_N(q몫, q몫, q몫, q몫, q몫);
+Test_N(q몬, q몬, q몬, q몬, q몬);
+Test_N(q몭, q몭, q몭, q몭, q몭);
+Test_N(q몮, q몮, q몮, q몮, q몮);
+Test_N(q몯, q몯, q몯, q몯, q몯);
+Test_N(q몰, q몰, q몰, q몰, q몰);
+Test_N(q몱, q몱, q몱, q몱, q몱);
+Test_N(q몲, q몲, q몲, q몲, q몲);
+Test_N(q몳, q몳, q몳, q몳, q몳);
+Test_N(q몴, q몴, q몴, q몴, q몴);
+Test_N(q몵, q몵, q몵, q몵, q몵);
+Test_N(q몶, q몶, q몶, q몶, q몶);
+Test_N(q몷, q몷, q몷, q몷, q몷);
+Test_N(q몸, q몸, q몸, q몸, q몸);
+Test_N(q몹, q몹, q몹, q몹, q몹);
+Test_N(q몺, q몺, q몺, q몺, q몺);
+Test_N(q못, q못, q못, q못, q못);
+Test_N(q몼, q몼, q몼, q몼, q몼);
+Test_N(q몽, q몽, q몽, q몽, q몽);
+Test_N(q몾, q몾, q몾, q몾, q몾);
+Test_N(q몿, q몿, q몿, q몿, q몿);
+Test_N(q뫀, q뫀, q뫀, q뫀, q뫀);
+Test_N(q뫁, q뫁, q뫁, q뫁, q뫁);
+Test_N(q뫂, q뫂, q뫂, q뫂, q뫂);
+Test_N(q뫃, q뫃, q뫃, q뫃, q뫃);
+Test_N(q뫄, q뫄, q뫄, q뫄, q뫄);
+Test_N(q뫅, q뫅, q뫅, q뫅, q뫅);
+Test_N(q뫆, q뫆, q뫆, q뫆, q뫆);
+Test_N(q뫇, q뫇, q뫇, q뫇, q뫇);
+Test_N(q뫈, q뫈, q뫈, q뫈, q뫈);
+Test_N(q뫉, q뫉, q뫉, q뫉, q뫉);
+Test_N(q뫊, q뫊, q뫊, q뫊, q뫊);
+Test_N(q뫋, q뫋, q뫋, q뫋, q뫋);
+Test_N(q뫌, q뫌, q뫌, q뫌, q뫌);
+Test_N(q뫍, q뫍, q뫍, q뫍, q뫍);
+Test_N(q뫎, q뫎, q뫎, q뫎, q뫎);
+Test_N(q뫏, q뫏, q뫏, q뫏, q뫏);
+Test_N(q뫐, q뫐, q뫐, q뫐, q뫐);
+Test_N(q뫑, q뫑, q뫑, q뫑, q뫑);
+Test_N(q뫒, q뫒, q뫒, q뫒, q뫒);
+Test_N(q뫓, q뫓, q뫓, q뫓, q뫓);
+Test_N(q뫔, q뫔, q뫔, q뫔, q뫔);
+Test_N(q뫕, q뫕, q뫕, q뫕, q뫕);
+Test_N(q뫖, q뫖, q뫖, q뫖, q뫖);
+Test_N(q뫗, q뫗, q뫗, q뫗, q뫗);
+Test_N(q뫘, q뫘, q뫘, q뫘, q뫘);
+Test_N(q뫙, q뫙, q뫙, q뫙, q뫙);
+Test_N(q뫚, q뫚, q뫚, q뫚, q뫚);
+Test_N(q뫛, q뫛, q뫛, q뫛, q뫛);
+Test_N(q뫜, q뫜, q뫜, q뫜, q뫜);
+Test_N(q뫝, q뫝, q뫝, q뫝, q뫝);
+Test_N(q뫞, q뫞, q뫞, q뫞, q뫞);
+Test_N(q뫟, q뫟, q뫟, q뫟, q뫟);
+Test_N(q뫠, q뫠, q뫠, q뫠, q뫠);
+Test_N(q뫡, q뫡, q뫡, q뫡, q뫡);
+Test_N(q뫢, q뫢, q뫢, q뫢, q뫢);
+Test_N(q뫣, q뫣, q뫣, q뫣, q뫣);
+Test_N(q뫤, q뫤, q뫤, q뫤, q뫤);
+Test_N(q뫥, q뫥, q뫥, q뫥, q뫥);
+Test_N(q뫦, q뫦, q뫦, q뫦, q뫦);
+Test_N(q뫧, q뫧, q뫧, q뫧, q뫧);
+Test_N(q뫨, q뫨, q뫨, q뫨, q뫨);
+Test_N(q뫩, q뫩, q뫩, q뫩, q뫩);
+Test_N(q뫪, q뫪, q뫪, q뫪, q뫪);
+Test_N(q뫫, q뫫, q뫫, q뫫, q뫫);
+Test_N(q뫬, q뫬, q뫬, q뫬, q뫬);
+Test_N(q뫭, q뫭, q뫭, q뫭, q뫭);
+Test_N(q뫮, q뫮, q뫮, q뫮, q뫮);
+Test_N(q뫯, q뫯, q뫯, q뫯, q뫯);
+Test_N(q뫰, q뫰, q뫰, q뫰, q뫰);
+Test_N(q뫱, q뫱, q뫱, q뫱, q뫱);
+Test_N(q뫲, q뫲, q뫲, q뫲, q뫲);
+Test_N(q뫳, q뫳, q뫳, q뫳, q뫳);
+Test_N(q뫴, q뫴, q뫴, q뫴, q뫴);
+Test_N(q뫵, q뫵, q뫵, q뫵, q뫵);
+Test_N(q뫶, q뫶, q뫶, q뫶, q뫶);
+Test_N(q뫷, q뫷, q뫷, q뫷, q뫷);
+Test_N(q뫸, q뫸, q뫸, q뫸, q뫸);
+Test_N(q뫹, q뫹, q뫹, q뫹, q뫹);
+Test_N(q뫺, q뫺, q뫺, q뫺, q뫺);
+Test_N(q뫻, q뫻, q뫻, q뫻, q뫻);
+Test_N(q뫼, q뫼, q뫼, q뫼, q뫼);
+Test_N(q뫽, q뫽, q뫽, q뫽, q뫽);
+Test_N(q뫾, q뫾, q뫾, q뫾, q뫾);
+Test_N(q뫿, q뫿, q뫿, q뫿, q뫿);
+Test_N(q묀, q묀, q묀, q묀, q묀);
+Test_N(q묁, q묁, q묁, q묁, q묁);
+Test_N(q묂, q묂, q묂, q묂, q묂);
+Test_N(q묃, q묃, q묃, q묃, q묃);
+Test_N(q묄, q묄, q묄, q묄, q묄);
+Test_N(q묅, q묅, q묅, q묅, q묅);
+Test_N(q묆, q묆, q묆, q묆, q묆);
+Test_N(q묇, q묇, q묇, q묇, q묇);
+Test_N(q묈, q묈, q묈, q묈, q묈);
+Test_N(q묉, q묉, q묉, q묉, q묉);
+Test_N(q묊, q묊, q묊, q묊, q묊);
+Test_N(q묋, q묋, q묋, q묋, q묋);
+Test_N(q묌, q묌, q묌, q묌, q묌);
+Test_N(q묍, q묍, q묍, q묍, q묍);
+Test_N(q묎, q묎, q묎, q묎, q묎);
+Test_N(q묏, q묏, q묏, q묏, q묏);
+Test_N(q묐, q묐, q묐, q묐, q묐);
+Test_N(q묑, q묑, q묑, q묑, q묑);
+Test_N(q묒, q묒, q묒, q묒, q묒);
+Test_N(q묓, q묓, q묓, q묓, q묓);
+Test_N(q묔, q묔, q묔, q묔, q묔);
+Test_N(q묕, q묕, q묕, q묕, q묕);
+Test_N(q묖, q묖, q묖, q묖, q묖);
+Test_N(q묗, q묗, q묗, q묗, q묗);
+Test_N(q묘, q묘, q묘, q묘, q묘);
+Test_N(q묙, q묙, q묙, q묙, q묙);
+Test_N(q묚, q묚, q묚, q묚, q묚);
+Test_N(q묛, q묛, q묛, q묛, q묛);
+Test_N(q묜, q묜, q묜, q묜, q묜);
+Test_N(q묝, q묝, q묝, q묝, q묝);
+Test_N(q묞, q묞, q묞, q묞, q묞);
+Test_N(q묟, q묟, q묟, q묟, q묟);
+Test_N(q묠, q묠, q묠, q묠, q묠);
+Test_N(q묡, q묡, q묡, q묡, q묡);
+Test_N(q묢, q묢, q묢, q묢, q묢);
+Test_N(q묣, q묣, q묣, q묣, q묣);
+Test_N(q묤, q묤, q묤, q묤, q묤);
+Test_N(q묥, q묥, q묥, q묥, q묥);
+Test_N(q묦, q묦, q묦, q묦, q묦);
+Test_N(q묧, q묧, q묧, q묧, q묧);
+Test_N(q묨, q묨, q묨, q묨, q묨);
+Test_N(q묩, q묩, q묩, q묩, q묩);
+Test_N(q묪, q묪, q묪, q묪, q묪);
+Test_N(q묫, q묫, q묫, q묫, q묫);
+Test_N(q묬, q묬, q묬, q묬, q묬);
+Test_N(q묭, q묭, q묭, q묭, q묭);
+Test_N(q묮, q묮, q묮, q묮, q묮);
+Test_N(q묯, q묯, q묯, q묯, q묯);
+Test_N(q묰, q묰, q묰, q묰, q묰);
+Test_N(q묱, q묱, q묱, q묱, q묱);
+Test_N(q묲, q묲, q묲, q묲, q묲);
+Test_N(q묳, q묳, q묳, q묳, q묳);
+Test_N(q무, q무, q무, q무, q무);
+Test_N(q묵, q묵, q묵, q묵, q묵);
+Test_N(q묶, q묶, q묶, q묶, q묶);
+Test_N(q묷, q묷, q묷, q묷, q묷);
+Test_N(q문, q문, q문, q문, q문);
+Test_N(q묹, q묹, q묹, q묹, q묹);
+Test_N(q묺, q묺, q묺, q묺, q묺);
+Test_N(q묻, q묻, q묻, q묻, q묻);
+Test_N(q물, q물, q물, q물, q물);
+Test_N(q묽, q묽, q묽, q묽, q묽);
+Test_N(q묾, q묾, q묾, q묾, q묾);
+Test_N(q묿, q묿, q묿, q묿, q묿);
+Test_N(q뭀, q뭀, q뭀, q뭀, q뭀);
+Test_N(q뭁, q뭁, q뭁, q뭁, q뭁);
+Test_N(q뭂, q뭂, q뭂, q뭂, q뭂);
+Test_N(q뭃, q뭃, q뭃, q뭃, q뭃);
+Test_N(q뭄, q뭄, q뭄, q뭄, q뭄);
+Test_N(q뭅, q뭅, q뭅, q뭅, q뭅);
+Test_N(q뭆, q뭆, q뭆, q뭆, q뭆);
+Test_N(q뭇, q뭇, q뭇, q뭇, q뭇);
+Test_N(q뭈, q뭈, q뭈, q뭈, q뭈);
+Test_N(q뭉, q뭉, q뭉, q뭉, q뭉);
+Test_N(q뭊, q뭊, q뭊, q뭊, q뭊);
+Test_N(q뭋, q뭋, q뭋, q뭋, q뭋);
+Test_N(q뭌, q뭌, q뭌, q뭌, q뭌);
+Test_N(q뭍, q뭍, q뭍, q뭍, q뭍);
+Test_N(q뭎, q뭎, q뭎, q뭎, q뭎);
+Test_N(q뭏, q뭏, q뭏, q뭏, q뭏);
+Test_N(q뭐, q뭐, q뭐, q뭐, q뭐);
+Test_N(q뭑, q뭑, q뭑, q뭑, q뭑);
+Test_N(q뭒, q뭒, q뭒, q뭒, q뭒);
+Test_N(q뭓, q뭓, q뭓, q뭓, q뭓);
+Test_N(q뭔, q뭔, q뭔, q뭔, q뭔);
+Test_N(q뭕, q뭕, q뭕, q뭕, q뭕);
+Test_N(q뭖, q뭖, q뭖, q뭖, q뭖);
+Test_N(q뭗, q뭗, q뭗, q뭗, q뭗);
+Test_N(q뭘, q뭘, q뭘, q뭘, q뭘);
+Test_N(q뭙, q뭙, q뭙, q뭙, q뭙);
+Test_N(q뭚, q뭚, q뭚, q뭚, q뭚);
+Test_N(q뭛, q뭛, q뭛, q뭛, q뭛);
+Test_N(q뭜, q뭜, q뭜, q뭜, q뭜);
+Test_N(q뭝, q뭝, q뭝, q뭝, q뭝);
+Test_N(q뭞, q뭞, q뭞, q뭞, q뭞);
+Test_N(q뭟, q뭟, q뭟, q뭟, q뭟);
+Test_N(q뭠, q뭠, q뭠, q뭠, q뭠);
+Test_N(q뭡, q뭡, q뭡, q뭡, q뭡);
+Test_N(q뭢, q뭢, q뭢, q뭢, q뭢);
+Test_N(q뭣, q뭣, q뭣, q뭣, q뭣);
+Test_N(q뭤, q뭤, q뭤, q뭤, q뭤);
+Test_N(q뭥, q뭥, q뭥, q뭥, q뭥);
+Test_N(q뭦, q뭦, q뭦, q뭦, q뭦);
+Test_N(q뭧, q뭧, q뭧, q뭧, q뭧);
+Test_N(q뭨, q뭨, q뭨, q뭨, q뭨);
+Test_N(q뭩, q뭩, q뭩, q뭩, q뭩);
+Test_N(q뭪, q뭪, q뭪, q뭪, q뭪);
+Test_N(q뭫, q뭫, q뭫, q뭫, q뭫);
+Test_N(q뭬, q뭬, q뭬, q뭬, q뭬);
+Test_N(q뭭, q뭭, q뭭, q뭭, q뭭);
+Test_N(q뭮, q뭮, q뭮, q뭮, q뭮);
+Test_N(q뭯, q뭯, q뭯, q뭯, q뭯);
+Test_N(q뭰, q뭰, q뭰, q뭰, q뭰);
+Test_N(q뭱, q뭱, q뭱, q뭱, q뭱);
+Test_N(q뭲, q뭲, q뭲, q뭲, q뭲);
+Test_N(q뭳, q뭳, q뭳, q뭳, q뭳);
+Test_N(q뭴, q뭴, q뭴, q뭴, q뭴);
+Test_N(q뭵, q뭵, q뭵, q뭵, q뭵);
+Test_N(q뭶, q뭶, q뭶, q뭶, q뭶);
+Test_N(q뭷, q뭷, q뭷, q뭷, q뭷);
+Test_N(q뭸, q뭸, q뭸, q뭸, q뭸);
+Test_N(q뭹, q뭹, q뭹, q뭹, q뭹);
+Test_N(q뭺, q뭺, q뭺, q뭺, q뭺);
+Test_N(q뭻, q뭻, q뭻, q뭻, q뭻);
+Test_N(q뭼, q뭼, q뭼, q뭼, q뭼);
+Test_N(q뭽, q뭽, q뭽, q뭽, q뭽);
+Test_N(q뭾, q뭾, q뭾, q뭾, q뭾);
+Test_N(q뭿, q뭿, q뭿, q뭿, q뭿);
+Test_N(q뮀, q뮀, q뮀, q뮀, q뮀);
+Test_N(q뮁, q뮁, q뮁, q뮁, q뮁);
+Test_N(q뮂, q뮂, q뮂, q뮂, q뮂);
+Test_N(q뮃, q뮃, q뮃, q뮃, q뮃);
+Test_N(q뮄, q뮄, q뮄, q뮄, q뮄);
+Test_N(q뮅, q뮅, q뮅, q뮅, q뮅);
+Test_N(q뮆, q뮆, q뮆, q뮆, q뮆);
+Test_N(q뮇, q뮇, q뮇, q뮇, q뮇);
+Test_N(q뮈, q뮈, q뮈, q뮈, q뮈);
+Test_N(q뮉, q뮉, q뮉, q뮉, q뮉);
+Test_N(q뮊, q뮊, q뮊, q뮊, q뮊);
+Test_N(q뮋, q뮋, q뮋, q뮋, q뮋);
+Test_N(q뮌, q뮌, q뮌, q뮌, q뮌);
+Test_N(q뮍, q뮍, q뮍, q뮍, q뮍);
+Test_N(q뮎, q뮎, q뮎, q뮎, q뮎);
+Test_N(q뮏, q뮏, q뮏, q뮏, q뮏);
+Test_N(q뮐, q뮐, q뮐, q뮐, q뮐);
+Test_N(q뮑, q뮑, q뮑, q뮑, q뮑);
+Test_N(q뮒, q뮒, q뮒, q뮒, q뮒);
+Test_N(q뮓, q뮓, q뮓, q뮓, q뮓);
+Test_N(q뮔, q뮔, q뮔, q뮔, q뮔);
+Test_N(q뮕, q뮕, q뮕, q뮕, q뮕);
+Test_N(q뮖, q뮖, q뮖, q뮖, q뮖);
+Test_N(q뮗, q뮗, q뮗, q뮗, q뮗);
+Test_N(q뮘, q뮘, q뮘, q뮘, q뮘);
+Test_N(q뮙, q뮙, q뮙, q뮙, q뮙);
+Test_N(q뮚, q뮚, q뮚, q뮚, q뮚);
+Test_N(q뮛, q뮛, q뮛, q뮛, q뮛);
+Test_N(q뮜, q뮜, q뮜, q뮜, q뮜);
+Test_N(q뮝, q뮝, q뮝, q뮝, q뮝);
+Test_N(q뮞, q뮞, q뮞, q뮞, q뮞);
+Test_N(q뮟, q뮟, q뮟, q뮟, q뮟);
+Test_N(q뮠, q뮠, q뮠, q뮠, q뮠);
+Test_N(q뮡, q뮡, q뮡, q뮡, q뮡);
+Test_N(q뮢, q뮢, q뮢, q뮢, q뮢);
+Test_N(q뮣, q뮣, q뮣, q뮣, q뮣);
+Test_N(q뮤, q뮤, q뮤, q뮤, q뮤);
+Test_N(q뮥, q뮥, q뮥, q뮥, q뮥);
+Test_N(q뮦, q뮦, q뮦, q뮦, q뮦);
+Test_N(q뮧, q뮧, q뮧, q뮧, q뮧);
+Test_N(q뮨, q뮨, q뮨, q뮨, q뮨);
+Test_N(q뮩, q뮩, q뮩, q뮩, q뮩);
+Test_N(q뮪, q뮪, q뮪, q뮪, q뮪);
+Test_N(q뮫, q뮫, q뮫, q뮫, q뮫);
+Test_N(q뮬, q뮬, q뮬, q뮬, q뮬);
+Test_N(q뮭, q뮭, q뮭, q뮭, q뮭);
+Test_N(q뮮, q뮮, q뮮, q뮮, q뮮);
+Test_N(q뮯, q뮯, q뮯, q뮯, q뮯);
+Test_N(q뮰, q뮰, q뮰, q뮰, q뮰);
+Test_N(q뮱, q뮱, q뮱, q뮱, q뮱);
+Test_N(q뮲, q뮲, q뮲, q뮲, q뮲);
+Test_N(q뮳, q뮳, q뮳, q뮳, q뮳);
+Test_N(q뮴, q뮴, q뮴, q뮴, q뮴);
+Test_N(q뮵, q뮵, q뮵, q뮵, q뮵);
+Test_N(q뮶, q뮶, q뮶, q뮶, q뮶);
+Test_N(q뮷, q뮷, q뮷, q뮷, q뮷);
+Test_N(q뮸, q뮸, q뮸, q뮸, q뮸);
+Test_N(q뮹, q뮹, q뮹, q뮹, q뮹);
+Test_N(q뮺, q뮺, q뮺, q뮺, q뮺);
+Test_N(q뮻, q뮻, q뮻, q뮻, q뮻);
+Test_N(q뮼, q뮼, q뮼, q뮼, q뮼);
+Test_N(q뮽, q뮽, q뮽, q뮽, q뮽);
+Test_N(q뮾, q뮾, q뮾, q뮾, q뮾);
+Test_N(q뮿, q뮿, q뮿, q뮿, q뮿);
+Test_N(q므, q므, q므, q므, q므);
+Test_N(q믁, q믁, q믁, q믁, q믁);
+Test_N(q믂, q믂, q믂, q믂, q믂);
+Test_N(q믃, q믃, q믃, q믃, q믃);
+Test_N(q믄, q믄, q믄, q믄, q믄);
+Test_N(q믅, q믅, q믅, q믅, q믅);
+Test_N(q믆, q믆, q믆, q믆, q믆);
+Test_N(q믇, q믇, q믇, q믇, q믇);
+Test_N(q믈, q믈, q믈, q믈, q믈);
+Test_N(q믉, q믉, q믉, q믉, q믉);
+Test_N(q믊, q믊, q믊, q믊, q믊);
+Test_N(q믋, q믋, q믋, q믋, q믋);
+Test_N(q믌, q믌, q믌, q믌, q믌);
+Test_N(q믍, q믍, q믍, q믍, q믍);
+Test_N(q믎, q믎, q믎, q믎, q믎);
+Test_N(q믏, q믏, q믏, q믏, q믏);
+Test_N(q믐, q믐, q믐, q믐, q믐);
+Test_N(q믑, q믑, q믑, q믑, q믑);
+Test_N(q믒, q믒, q믒, q믒, q믒);
+Test_N(q믓, q믓, q믓, q믓, q믓);
+Test_N(q믔, q믔, q믔, q믔, q믔);
+Test_N(q믕, q믕, q믕, q믕, q믕);
+Test_N(q믖, q믖, q믖, q믖, q믖);
+Test_N(q믗, q믗, q믗, q믗, q믗);
+Test_N(q믘, q믘, q믘, q믘, q믘);
+Test_N(q믙, q믙, q믙, q믙, q믙);
+Test_N(q믚, q믚, q믚, q믚, q믚);
+Test_N(q믛, q믛, q믛, q믛, q믛);
+Test_N(q믜, q믜, q믜, q믜, q믜);
+Test_N(q믝, q믝, q믝, q믝, q믝);
+Test_N(q믞, q믞, q믞, q믞, q믞);
+Test_N(q믟, q믟, q믟, q믟, q믟);
+Test_N(q믠, q믠, q믠, q믠, q믠);
+Test_N(q믡, q믡, q믡, q믡, q믡);
+Test_N(q믢, q믢, q믢, q믢, q믢);
+Test_N(q믣, q믣, q믣, q믣, q믣);
+Test_N(q믤, q믤, q믤, q믤, q믤);
+Test_N(q믥, q믥, q믥, q믥, q믥);
+Test_N(q믦, q믦, q믦, q믦, q믦);
+Test_N(q믧, q믧, q믧, q믧, q믧);
+Test_N(q믨, q믨, q믨, q믨, q믨);
+Test_N(q믩, q믩, q믩, q믩, q믩);
+Test_N(q믪, q믪, q믪, q믪, q믪);
+Test_N(q믫, q믫, q믫, q믫, q믫);
+Test_N(q믬, q믬, q믬, q믬, q믬);
+Test_N(q믭, q믭, q믭, q믭, q믭);
+Test_N(q믮, q믮, q믮, q믮, q믮);
+Test_N(q믯, q믯, q믯, q믯, q믯);
+Test_N(q믰, q믰, q믰, q믰, q믰);
+Test_N(q믱, q믱, q믱, q믱, q믱);
+Test_N(q믲, q믲, q믲, q믲, q믲);
+Test_N(q믳, q믳, q믳, q믳, q믳);
+Test_N(q믴, q믴, q믴, q믴, q믴);
+Test_N(q믵, q믵, q믵, q믵, q믵);
+Test_N(q믶, q믶, q믶, q믶, q믶);
+Test_N(q믷, q믷, q믷, q믷, q믷);
+Test_N(q미, q미, q미, q미, q미);
+Test_N(q믹, q믹, q믹, q믹, q믹);
+Test_N(q믺, q믺, q믺, q믺, q믺);
+Test_N(q믻, q믻, q믻, q믻, q믻);
+Test_N(q민, q민, q민, q민, q민);
+Test_N(q믽, q믽, q믽, q믽, q믽);
+Test_N(q믾, q믾, q믾, q믾, q믾);
+Test_N(q믿, q믿, q믿, q믿, q믿);
+Test_N(q밀, q밀, q밀, q밀, q밀);
+Test_N(q밁, q밁, q밁, q밁, q밁);
+Test_N(q밂, q밂, q밂, q밂, q밂);
+Test_N(q밃, q밃, q밃, q밃, q밃);
+Test_N(q밄, q밄, q밄, q밄, q밄);
+Test_N(q밅, q밅, q밅, q밅, q밅);
+Test_N(q밆, q밆, q밆, q밆, q밆);
+Test_N(q밇, q밇, q밇, q밇, q밇);
+Test_N(q밈, q밈, q밈, q밈, q밈);
+Test_N(q밉, q밉, q밉, q밉, q밉);
+Test_N(q밊, q밊, q밊, q밊, q밊);
+Test_N(q밋, q밋, q밋, q밋, q밋);
+Test_N(q밌, q밌, q밌, q밌, q밌);
+Test_N(q밍, q밍, q밍, q밍, q밍);
+Test_N(q밎, q밎, q밎, q밎, q밎);
+Test_N(q및, q및, q및, q및, q및);
+Test_N(q밐, q밐, q밐, q밐, q밐);
+Test_N(q밑, q밑, q밑, q밑, q밑);
+Test_N(q밒, q밒, q밒, q밒, q밒);
+Test_N(q밓, q밓, q밓, q밓, q밓);
+Test_N(q바, q바, q바, q바, q바);
+Test_N(q박, q박, q박, q박, q박);
+Test_N(q밖, q밖, q밖, q밖, q밖);
+Test_N(q밗, q밗, q밗, q밗, q밗);
+Test_N(q반, q반, q반, q반, q반);
+Test_N(q밙, q밙, q밙, q밙, q밙);
+Test_N(q밚, q밚, q밚, q밚, q밚);
+Test_N(q받, q받, q받, q받, q받);
+Test_N(q발, q발, q발, q발, q발);
+Test_N(q밝, q밝, q밝, q밝, q밝);
+Test_N(q밞, q밞, q밞, q밞, q밞);
+Test_N(q밟, q밟, q밟, q밟, q밟);
+Test_N(q밠, q밠, q밠, q밠, q밠);
+Test_N(q밡, q밡, q밡, q밡, q밡);
+Test_N(q밢, q밢, q밢, q밢, q밢);
+Test_N(q밣, q밣, q밣, q밣, q밣);
+Test_N(q밤, q밤, q밤, q밤, q밤);
+Test_N(q밥, q밥, q밥, q밥, q밥);
+Test_N(q밦, q밦, q밦, q밦, q밦);
+Test_N(q밧, q밧, q밧, q밧, q밧);
+Test_N(q밨, q밨, q밨, q밨, q밨);
+Test_N(q방, q방, q방, q방, q방);
+Test_N(q밪, q밪, q밪, q밪, q밪);
+Test_N(q밫, q밫, q밫, q밫, q밫);
+Test_N(q밬, q밬, q밬, q밬, q밬);
+Test_N(q밭, q밭, q밭, q밭, q밭);
+Test_N(q밮, q밮, q밮, q밮, q밮);
+Test_N(q밯, q밯, q밯, q밯, q밯);
+Test_N(q배, q배, q배, q배, q배);
+Test_N(q백, q백, q백, q백, q백);
+Test_N(q밲, q밲, q밲, q밲, q밲);
+Test_N(q밳, q밳, q밳, q밳, q밳);
+Test_N(q밴, q밴, q밴, q밴, q밴);
+Test_N(q밵, q밵, q밵, q밵, q밵);
+Test_N(q밶, q밶, q밶, q밶, q밶);
+Test_N(q밷, q밷, q밷, q밷, q밷);
+Test_N(q밸, q밸, q밸, q밸, q밸);
+Test_N(q밹, q밹, q밹, q밹, q밹);
+Test_N(q밺, q밺, q밺, q밺, q밺);
+Test_N(q밻, q밻, q밻, q밻, q밻);
+Test_N(q밼, q밼, q밼, q밼, q밼);
+Test_N(q밽, q밽, q밽, q밽, q밽);
+Test_N(q밾, q밾, q밾, q밾, q밾);
+Test_N(q밿, q밿, q밿, q밿, q밿);
+Test_N(q뱀, q뱀, q뱀, q뱀, q뱀);
+Test_N(q뱁, q뱁, q뱁, q뱁, q뱁);
+Test_N(q뱂, q뱂, q뱂, q뱂, q뱂);
+Test_N(q뱃, q뱃, q뱃, q뱃, q뱃);
+Test_N(q뱄, q뱄, q뱄, q뱄, q뱄);
+Test_N(q뱅, q뱅, q뱅, q뱅, q뱅);
+Test_N(q뱆, q뱆, q뱆, q뱆, q뱆);
+Test_N(q뱇, q뱇, q뱇, q뱇, q뱇);
+Test_N(q뱈, q뱈, q뱈, q뱈, q뱈);
+Test_N(q뱉, q뱉, q뱉, q뱉, q뱉);
+Test_N(q뱊, q뱊, q뱊, q뱊, q뱊);
+Test_N(q뱋, q뱋, q뱋, q뱋, q뱋);
+Test_N(q뱌, q뱌, q뱌, q뱌, q뱌);
+Test_N(q뱍, q뱍, q뱍, q뱍, q뱍);
+Test_N(q뱎, q뱎, q뱎, q뱎, q뱎);
+Test_N(q뱏, q뱏, q뱏, q뱏, q뱏);
+Test_N(q뱐, q뱐, q뱐, q뱐, q뱐);
+Test_N(q뱑, q뱑, q뱑, q뱑, q뱑);
+Test_N(q뱒, q뱒, q뱒, q뱒, q뱒);
+Test_N(q뱓, q뱓, q뱓, q뱓, q뱓);
+Test_N(q뱔, q뱔, q뱔, q뱔, q뱔);
+Test_N(q뱕, q뱕, q뱕, q뱕, q뱕);
+Test_N(q뱖, q뱖, q뱖, q뱖, q뱖);
+Test_N(q뱗, q뱗, q뱗, q뱗, q뱗);
+Test_N(q뱘, q뱘, q뱘, q뱘, q뱘);
+Test_N(q뱙, q뱙, q뱙, q뱙, q뱙);
+Test_N(q뱚, q뱚, q뱚, q뱚, q뱚);
+Test_N(q뱛, q뱛, q뱛, q뱛, q뱛);
+Test_N(q뱜, q뱜, q뱜, q뱜, q뱜);
+Test_N(q뱝, q뱝, q뱝, q뱝, q뱝);
+Test_N(q뱞, q뱞, q뱞, q뱞, q뱞);
+Test_N(q뱟, q뱟, q뱟, q뱟, q뱟);
+Test_N(q뱠, q뱠, q뱠, q뱠, q뱠);
+Test_N(q뱡, q뱡, q뱡, q뱡, q뱡);
+Test_N(q뱢, q뱢, q뱢, q뱢, q뱢);
+Test_N(q뱣, q뱣, q뱣, q뱣, q뱣);
+Test_N(q뱤, q뱤, q뱤, q뱤, q뱤);
+Test_N(q뱥, q뱥, q뱥, q뱥, q뱥);
+Test_N(q뱦, q뱦, q뱦, q뱦, q뱦);
+Test_N(q뱧, q뱧, q뱧, q뱧, q뱧);
+Test_N(q뱨, q뱨, q뱨, q뱨, q뱨);
+Test_N(q뱩, q뱩, q뱩, q뱩, q뱩);
+Test_N(q뱪, q뱪, q뱪, q뱪, q뱪);
+Test_N(q뱫, q뱫, q뱫, q뱫, q뱫);
+Test_N(q뱬, q뱬, q뱬, q뱬, q뱬);
+Test_N(q뱭, q뱭, q뱭, q뱭, q뱭);
+Test_N(q뱮, q뱮, q뱮, q뱮, q뱮);
+Test_N(q뱯, q뱯, q뱯, q뱯, q뱯);
+Test_N(q뱰, q뱰, q뱰, q뱰, q뱰);
+Test_N(q뱱, q뱱, q뱱, q뱱, q뱱);
+Test_N(q뱲, q뱲, q뱲, q뱲, q뱲);
+Test_N(q뱳, q뱳, q뱳, q뱳, q뱳);
+Test_N(q뱴, q뱴, q뱴, q뱴, q뱴);
+Test_N(q뱵, q뱵, q뱵, q뱵, q뱵);
+Test_N(q뱶, q뱶, q뱶, q뱶, q뱶);
+Test_N(q뱷, q뱷, q뱷, q뱷, q뱷);
+Test_N(q뱸, q뱸, q뱸, q뱸, q뱸);
+Test_N(q뱹, q뱹, q뱹, q뱹, q뱹);
+Test_N(q뱺, q뱺, q뱺, q뱺, q뱺);
+Test_N(q뱻, q뱻, q뱻, q뱻, q뱻);
+Test_N(q뱼, q뱼, q뱼, q뱼, q뱼);
+Test_N(q뱽, q뱽, q뱽, q뱽, q뱽);
+Test_N(q뱾, q뱾, q뱾, q뱾, q뱾);
+Test_N(q뱿, q뱿, q뱿, q뱿, q뱿);
+Test_N(q벀, q벀, q벀, q벀, q벀);
+Test_N(q벁, q벁, q벁, q벁, q벁);
+Test_N(q벂, q벂, q벂, q벂, q벂);
+Test_N(q벃, q벃, q벃, q벃, q벃);
+Test_N(q버, q버, q버, q버, q버);
+Test_N(q벅, q벅, q벅, q벅, q벅);
+Test_N(q벆, q벆, q벆, q벆, q벆);
+Test_N(q벇, q벇, q벇, q벇, q벇);
+Test_N(q번, q번, q번, q번, q번);
+Test_N(q벉, q벉, q벉, q벉, q벉);
+Test_N(q벊, q벊, q벊, q벊, q벊);
+Test_N(q벋, q벋, q벋, q벋, q벋);
+Test_N(q벌, q벌, q벌, q벌, q벌);
+Test_N(q벍, q벍, q벍, q벍, q벍);
+Test_N(q벎, q벎, q벎, q벎, q벎);
+Test_N(q벏, q벏, q벏, q벏, q벏);
+Test_N(q벐, q벐, q벐, q벐, q벐);
+Test_N(q벑, q벑, q벑, q벑, q벑);
+Test_N(q벒, q벒, q벒, q벒, q벒);
+Test_N(q벓, q벓, q벓, q벓, q벓);
+Test_N(q범, q범, q범, q범, q범);
+Test_N(q법, q법, q법, q법, q법);
+Test_N(q벖, q벖, q벖, q벖, q벖);
+Test_N(q벗, q벗, q벗, q벗, q벗);
+Test_N(q벘, q벘, q벘, q벘, q벘);
+Test_N(q벙, q벙, q벙, q벙, q벙);
+Test_N(q벚, q벚, q벚, q벚, q벚);
+Test_N(q벛, q벛, q벛, q벛, q벛);
+Test_N(q벜, q벜, q벜, q벜, q벜);
+Test_N(q벝, q벝, q벝, q벝, q벝);
+Test_N(q벞, q벞, q벞, q벞, q벞);
+Test_N(q벟, q벟, q벟, q벟, q벟);
+Test_N(q베, q베, q베, q베, q베);
+Test_N(q벡, q벡, q벡, q벡, q벡);
+Test_N(q벢, q벢, q벢, q벢, q벢);
+Test_N(q벣, q벣, q벣, q벣, q벣);
+Test_N(q벤, q벤, q벤, q벤, q벤);
+Test_N(q벥, q벥, q벥, q벥, q벥);
+Test_N(q벦, q벦, q벦, q벦, q벦);
+Test_N(q벧, q벧, q벧, q벧, q벧);
+Test_N(q벨, q벨, q벨, q벨, q벨);
+Test_N(q벩, q벩, q벩, q벩, q벩);
+Test_N(q벪, q벪, q벪, q벪, q벪);
+Test_N(q벫, q벫, q벫, q벫, q벫);
+Test_N(q벬, q벬, q벬, q벬, q벬);
+Test_N(q벭, q벭, q벭, q벭, q벭);
+Test_N(q벮, q벮, q벮, q벮, q벮);
+Test_N(q벯, q벯, q벯, q벯, q벯);
+Test_N(q벰, q벰, q벰, q벰, q벰);
+Test_N(q벱, q벱, q벱, q벱, q벱);
+Test_N(q벲, q벲, q벲, q벲, q벲);
+Test_N(q벳, q벳, q벳, q벳, q벳);
+Test_N(q벴, q벴, q벴, q벴, q벴);
+Test_N(q벵, q벵, q벵, q벵, q벵);
+Test_N(q벶, q벶, q벶, q벶, q벶);
+Test_N(q벷, q벷, q벷, q벷, q벷);
+Test_N(q벸, q벸, q벸, q벸, q벸);
+Test_N(q벹, q벹, q벹, q벹, q벹);
+Test_N(q벺, q벺, q벺, q벺, q벺);
+Test_N(q벻, q벻, q벻, q벻, q벻);
+Test_N(q벼, q벼, q벼, q벼, q벼);
+Test_N(q벽, q벽, q벽, q벽, q벽);
+Test_N(q벾, q벾, q벾, q벾, q벾);
+Test_N(q벿, q벿, q벿, q벿, q벿);
+Test_N(q변, q변, q변, q변, q변);
+Test_N(q볁, q볁, q볁, q볁, q볁);
+Test_N(q볂, q볂, q볂, q볂, q볂);
+Test_N(q볃, q볃, q볃, q볃, q볃);
+Test_N(q별, q별, q별, q별, q별);
+Test_N(q볅, q볅, q볅, q볅, q볅);
+Test_N(q볆, q볆, q볆, q볆, q볆);
+Test_N(q볇, q볇, q볇, q볇, q볇);
+Test_N(q볈, q볈, q볈, q볈, q볈);
+Test_N(q볉, q볉, q볉, q볉, q볉);
+Test_N(q볊, q볊, q볊, q볊, q볊);
+Test_N(q볋, q볋, q볋, q볋, q볋);
+Test_N(q볌, q볌, q볌, q볌, q볌);
+Test_N(q볍, q볍, q볍, q볍, q볍);
+Test_N(q볎, q볎, q볎, q볎, q볎);
+Test_N(q볏, q볏, q볏, q볏, q볏);
+Test_N(q볐, q볐, q볐, q볐, q볐);
+Test_N(q병, q병, q병, q병, q병);
+Test_N(q볒, q볒, q볒, q볒, q볒);
+Test_N(q볓, q볓, q볓, q볓, q볓);
+Test_N(q볔, q볔, q볔, q볔, q볔);
+Test_N(q볕, q볕, q볕, q볕, q볕);
+Test_N(q볖, q볖, q볖, q볖, q볖);
+Test_N(q볗, q볗, q볗, q볗, q볗);
+Test_N(q볘, q볘, q볘, q볘, q볘);
+Test_N(q볙, q볙, q볙, q볙, q볙);
+Test_N(q볚, q볚, q볚, q볚, q볚);
+Test_N(q볛, q볛, q볛, q볛, q볛);
+Test_N(q볜, q볜, q볜, q볜, q볜);
+Test_N(q볝, q볝, q볝, q볝, q볝);
+Test_N(q볞, q볞, q볞, q볞, q볞);
+Test_N(q볟, q볟, q볟, q볟, q볟);
+Test_N(q볠, q볠, q볠, q볠, q볠);
+Test_N(q볡, q볡, q볡, q볡, q볡);
+Test_N(q볢, q볢, q볢, q볢, q볢);
+Test_N(q볣, q볣, q볣, q볣, q볣);
+Test_N(q볤, q볤, q볤, q볤, q볤);
+Test_N(q볥, q볥, q볥, q볥, q볥);
+Test_N(q볦, q볦, q볦, q볦, q볦);
+Test_N(q볧, q볧, q볧, q볧, q볧);
+Test_N(q볨, q볨, q볨, q볨, q볨);
+Test_N(q볩, q볩, q볩, q볩, q볩);
+Test_N(q볪, q볪, q볪, q볪, q볪);
+Test_N(q볫, q볫, q볫, q볫, q볫);
+Test_N(q볬, q볬, q볬, q볬, q볬);
+Test_N(q볭, q볭, q볭, q볭, q볭);
+Test_N(q볮, q볮, q볮, q볮, q볮);
+Test_N(q볯, q볯, q볯, q볯, q볯);
+Test_N(q볰, q볰, q볰, q볰, q볰);
+Test_N(q볱, q볱, q볱, q볱, q볱);
+Test_N(q볲, q볲, q볲, q볲, q볲);
+Test_N(q볳, q볳, q볳, q볳, q볳);
+Test_N(q보, q보, q보, q보, q보);
+Test_N(q복, q복, q복, q복, q복);
+Test_N(q볶, q볶, q볶, q볶, q볶);
+Test_N(q볷, q볷, q볷, q볷, q볷);
+Test_N(q본, q본, q본, q본, q본);
+Test_N(q볹, q볹, q볹, q볹, q볹);
+Test_N(q볺, q볺, q볺, q볺, q볺);
+Test_N(q볻, q볻, q볻, q볻, q볻);
+Test_N(q볼, q볼, q볼, q볼, q볼);
+Test_N(q볽, q볽, q볽, q볽, q볽);
+Test_N(q볾, q볾, q볾, q볾, q볾);
+Test_N(q볿, q볿, q볿, q볿, q볿);
+Test_N(q봀, q봀, q봀, q봀, q봀);
+Test_N(q봁, q봁, q봁, q봁, q봁);
+Test_N(q봂, q봂, q봂, q봂, q봂);
+Test_N(q봃, q봃, q봃, q봃, q봃);
+Test_N(q봄, q봄, q봄, q봄, q봄);
+Test_N(q봅, q봅, q봅, q봅, q봅);
+Test_N(q봆, q봆, q봆, q봆, q봆);
+Test_N(q봇, q봇, q봇, q봇, q봇);
+Test_N(q봈, q봈, q봈, q봈, q봈);
+Test_N(q봉, q봉, q봉, q봉, q봉);
+Test_N(q봊, q봊, q봊, q봊, q봊);
+Test_N(q봋, q봋, q봋, q봋, q봋);
+Test_N(q봌, q봌, q봌, q봌, q봌);
+Test_N(q봍, q봍, q봍, q봍, q봍);
+Test_N(q봎, q봎, q봎, q봎, q봎);
+Test_N(q봏, q봏, q봏, q봏, q봏);
+Test_N(q봐, q봐, q봐, q봐, q봐);
+Test_N(q봑, q봑, q봑, q봑, q봑);
+Test_N(q봒, q봒, q봒, q봒, q봒);
+Test_N(q봓, q봓, q봓, q봓, q봓);
+Test_N(q봔, q봔, q봔, q봔, q봔);
+Test_N(q봕, q봕, q봕, q봕, q봕);
+Test_N(q봖, q봖, q봖, q봖, q봖);
+Test_N(q봗, q봗, q봗, q봗, q봗);
+Test_N(q봘, q봘, q봘, q봘, q봘);
+Test_N(q봙, q봙, q봙, q봙, q봙);
+Test_N(q봚, q봚, q봚, q봚, q봚);
+Test_N(q봛, q봛, q봛, q봛, q봛);
+Test_N(q봜, q봜, q봜, q봜, q봜);
+Test_N(q봝, q봝, q봝, q봝, q봝);
+Test_N(q봞, q봞, q봞, q봞, q봞);
+Test_N(q봟, q봟, q봟, q봟, q봟);
+Test_N(q봠, q봠, q봠, q봠, q봠);
+Test_N(q봡, q봡, q봡, q봡, q봡);
+Test_N(q봢, q봢, q봢, q봢, q봢);
+Test_N(q봣, q봣, q봣, q봣, q봣);
+Test_N(q봤, q봤, q봤, q봤, q봤);
+Test_N(q봥, q봥, q봥, q봥, q봥);
+Test_N(q봦, q봦, q봦, q봦, q봦);
+Test_N(q봧, q봧, q봧, q봧, q봧);
+Test_N(q봨, q봨, q봨, q봨, q봨);
+Test_N(q봩, q봩, q봩, q봩, q봩);
+Test_N(q봪, q봪, q봪, q봪, q봪);
+Test_N(q봫, q봫, q봫, q봫, q봫);
+Test_N(q봬, q봬, q봬, q봬, q봬);
+Test_N(q봭, q봭, q봭, q봭, q봭);
+Test_N(q봮, q봮, q봮, q봮, q봮);
+Test_N(q봯, q봯, q봯, q봯, q봯);
+Test_N(q봰, q봰, q봰, q봰, q봰);
+Test_N(q봱, q봱, q봱, q봱, q봱);
+Test_N(q봲, q봲, q봲, q봲, q봲);
+Test_N(q봳, q봳, q봳, q봳, q봳);
+Test_N(q봴, q봴, q봴, q봴, q봴);
+Test_N(q봵, q봵, q봵, q봵, q봵);
+Test_N(q봶, q봶, q봶, q봶, q봶);
+Test_N(q봷, q봷, q봷, q봷, q봷);
+Test_N(q봸, q봸, q봸, q봸, q봸);
+Test_N(q봹, q봹, q봹, q봹, q봹);
+Test_N(q봺, q봺, q봺, q봺, q봺);
+Test_N(q봻, q봻, q봻, q봻, q봻);
+Test_N(q봼, q봼, q봼, q봼, q봼);
+Test_N(q봽, q봽, q봽, q봽, q봽);
+Test_N(q봾, q봾, q봾, q봾, q봾);
+Test_N(q봿, q봿, q봿, q봿, q봿);
+Test_N(q뵀, q뵀, q뵀, q뵀, q뵀);
+Test_N(q뵁, q뵁, q뵁, q뵁, q뵁);
+Test_N(q뵂, q뵂, q뵂, q뵂, q뵂);
+Test_N(q뵃, q뵃, q뵃, q뵃, q뵃);
+Test_N(q뵄, q뵄, q뵄, q뵄, q뵄);
+Test_N(q뵅, q뵅, q뵅, q뵅, q뵅);
+Test_N(q뵆, q뵆, q뵆, q뵆, q뵆);
+Test_N(q뵇, q뵇, q뵇, q뵇, q뵇);
+Test_N(q뵈, q뵈, q뵈, q뵈, q뵈);
+Test_N(q뵉, q뵉, q뵉, q뵉, q뵉);
+Test_N(q뵊, q뵊, q뵊, q뵊, q뵊);
+Test_N(q뵋, q뵋, q뵋, q뵋, q뵋);
+Test_N(q뵌, q뵌, q뵌, q뵌, q뵌);
+Test_N(q뵍, q뵍, q뵍, q뵍, q뵍);
+Test_N(q뵎, q뵎, q뵎, q뵎, q뵎);
+Test_N(q뵏, q뵏, q뵏, q뵏, q뵏);
+Test_N(q뵐, q뵐, q뵐, q뵐, q뵐);
+Test_N(q뵑, q뵑, q뵑, q뵑, q뵑);
+Test_N(q뵒, q뵒, q뵒, q뵒, q뵒);
+Test_N(q뵓, q뵓, q뵓, q뵓, q뵓);
+Test_N(q뵔, q뵔, q뵔, q뵔, q뵔);
+Test_N(q뵕, q뵕, q뵕, q뵕, q뵕);
+Test_N(q뵖, q뵖, q뵖, q뵖, q뵖);
+Test_N(q뵗, q뵗, q뵗, q뵗, q뵗);
+Test_N(q뵘, q뵘, q뵘, q뵘, q뵘);
+Test_N(q뵙, q뵙, q뵙, q뵙, q뵙);
+Test_N(q뵚, q뵚, q뵚, q뵚, q뵚);
+Test_N(q뵛, q뵛, q뵛, q뵛, q뵛);
+Test_N(q뵜, q뵜, q뵜, q뵜, q뵜);
+Test_N(q뵝, q뵝, q뵝, q뵝, q뵝);
+Test_N(q뵞, q뵞, q뵞, q뵞, q뵞);
+Test_N(q뵟, q뵟, q뵟, q뵟, q뵟);
+Test_N(q뵠, q뵠, q뵠, q뵠, q뵠);
+Test_N(q뵡, q뵡, q뵡, q뵡, q뵡);
+Test_N(q뵢, q뵢, q뵢, q뵢, q뵢);
+Test_N(q뵣, q뵣, q뵣, q뵣, q뵣);
+Test_N(q뵤, q뵤, q뵤, q뵤, q뵤);
+Test_N(q뵥, q뵥, q뵥, q뵥, q뵥);
+Test_N(q뵦, q뵦, q뵦, q뵦, q뵦);
+Test_N(q뵧, q뵧, q뵧, q뵧, q뵧);
+Test_N(q뵨, q뵨, q뵨, q뵨, q뵨);
+Test_N(q뵩, q뵩, q뵩, q뵩, q뵩);
+Test_N(q뵪, q뵪, q뵪, q뵪, q뵪);
+Test_N(q뵫, q뵫, q뵫, q뵫, q뵫);
+Test_N(q뵬, q뵬, q뵬, q뵬, q뵬);
+Test_N(q뵭, q뵭, q뵭, q뵭, q뵭);
+Test_N(q뵮, q뵮, q뵮, q뵮, q뵮);
+Test_N(q뵯, q뵯, q뵯, q뵯, q뵯);
+Test_N(q뵰, q뵰, q뵰, q뵰, q뵰);
+Test_N(q뵱, q뵱, q뵱, q뵱, q뵱);
+Test_N(q뵲, q뵲, q뵲, q뵲, q뵲);
+Test_N(q뵳, q뵳, q뵳, q뵳, q뵳);
+Test_N(q뵴, q뵴, q뵴, q뵴, q뵴);
+Test_N(q뵵, q뵵, q뵵, q뵵, q뵵);
+Test_N(q뵶, q뵶, q뵶, q뵶, q뵶);
+Test_N(q뵷, q뵷, q뵷, q뵷, q뵷);
+Test_N(q뵸, q뵸, q뵸, q뵸, q뵸);
+Test_N(q뵹, q뵹, q뵹, q뵹, q뵹);
+Test_N(q뵺, q뵺, q뵺, q뵺, q뵺);
+Test_N(q뵻, q뵻, q뵻, q뵻, q뵻);
+Test_N(q뵼, q뵼, q뵼, q뵼, q뵼);
+Test_N(q뵽, q뵽, q뵽, q뵽, q뵽);
+Test_N(q뵾, q뵾, q뵾, q뵾, q뵾);
+Test_N(q뵿, q뵿, q뵿, q뵿, q뵿);
+Test_N(q부, q부, q부, q부, q부);
+Test_N(q북, q북, q북, q북, q북);
+Test_N(q붂, q붂, q붂, q붂, q붂);
+Test_N(q붃, q붃, q붃, q붃, q붃);
+Test_N(q분, q분, q분, q분, q분);
+Test_N(q붅, q붅, q붅, q붅, q붅);
+Test_N(q붆, q붆, q붆, q붆, q붆);
+Test_N(q붇, q붇, q붇, q붇, q붇);
+Test_N(q불, q불, q불, q불, q불);
+Test_N(q붉, q붉, q붉, q붉, q붉);
+Test_N(q붊, q붊, q붊, q붊, q붊);
+Test_N(q붋, q붋, q붋, q붋, q붋);
+Test_N(q붌, q붌, q붌, q붌, q붌);
+Test_N(q붍, q붍, q붍, q붍, q붍);
+Test_N(q붎, q붎, q붎, q붎, q붎);
+Test_N(q붏, q붏, q붏, q붏, q붏);
+Test_N(q붐, q붐, q붐, q붐, q붐);
+Test_N(q붑, q붑, q붑, q붑, q붑);
+Test_N(q붒, q붒, q붒, q붒, q붒);
+Test_N(q붓, q붓, q붓, q붓, q붓);
+Test_N(q붔, q붔, q붔, q붔, q붔);
+Test_N(q붕, q붕, q붕, q붕, q붕);
+Test_N(q붖, q붖, q붖, q붖, q붖);
+Test_N(q붗, q붗, q붗, q붗, q붗);
+Test_N(q붘, q붘, q붘, q붘, q붘);
+Test_N(q붙, q붙, q붙, q붙, q붙);
+Test_N(q붚, q붚, q붚, q붚, q붚);
+Test_N(q붛, q붛, q붛, q붛, q붛);
+Test_N(q붜, q붜, q붜, q붜, q붜);
+Test_N(q붝, q붝, q붝, q붝, q붝);
+Test_N(q붞, q붞, q붞, q붞, q붞);
+Test_N(q붟, q붟, q붟, q붟, q붟);
+Test_N(q붠, q붠, q붠, q붠, q붠);
+Test_N(q붡, q붡, q붡, q붡, q붡);
+Test_N(q붢, q붢, q붢, q붢, q붢);
+Test_N(q붣, q붣, q붣, q붣, q붣);
+Test_N(q붤, q붤, q붤, q붤, q붤);
+Test_N(q붥, q붥, q붥, q붥, q붥);
+Test_N(q붦, q붦, q붦, q붦, q붦);
+Test_N(q붧, q붧, q붧, q붧, q붧);
+Test_N(q붨, q붨, q붨, q붨, q붨);
+Test_N(q붩, q붩, q붩, q붩, q붩);
+Test_N(q붪, q붪, q붪, q붪, q붪);
+Test_N(q붫, q붫, q붫, q붫, q붫);
+Test_N(q붬, q붬, q붬, q붬, q붬);
+Test_N(q붭, q붭, q붭, q붭, q붭);
+Test_N(q붮, q붮, q붮, q붮, q붮);
+Test_N(q붯, q붯, q붯, q붯, q붯);
+Test_N(q붰, q붰, q붰, q붰, q붰);
+Test_N(q붱, q붱, q붱, q붱, q붱);
+Test_N(q붲, q붲, q붲, q붲, q붲);
+Test_N(q붳, q붳, q붳, q붳, q붳);
+Test_N(q붴, q붴, q붴, q붴, q붴);
+Test_N(q붵, q붵, q붵, q붵, q붵);
+Test_N(q붶, q붶, q붶, q붶, q붶);
+Test_N(q붷, q붷, q붷, q붷, q붷);
+Test_N(q붸, q붸, q붸, q붸, q붸);
+Test_N(q붹, q붹, q붹, q붹, q붹);
+Test_N(q붺, q붺, q붺, q붺, q붺);
+Test_N(q붻, q붻, q붻, q붻, q붻);
+Test_N(q붼, q붼, q붼, q붼, q붼);
+Test_N(q붽, q붽, q붽, q붽, q붽);
+Test_N(q붾, q붾, q붾, q붾, q붾);
+Test_N(q붿, q붿, q붿, q붿, q붿);
+Test_N(q뷀, q뷀, q뷀, q뷀, q뷀);
+Test_N(q뷁, q뷁, q뷁, q뷁, q뷁);
+Test_N(q뷂, q뷂, q뷂, q뷂, q뷂);
+Test_N(q뷃, q뷃, q뷃, q뷃, q뷃);
+Test_N(q뷄, q뷄, q뷄, q뷄, q뷄);
+Test_N(q뷅, q뷅, q뷅, q뷅, q뷅);
+Test_N(q뷆, q뷆, q뷆, q뷆, q뷆);
+Test_N(q뷇, q뷇, q뷇, q뷇, q뷇);
+Test_N(q뷈, q뷈, q뷈, q뷈, q뷈);
+Test_N(q뷉, q뷉, q뷉, q뷉, q뷉);
+Test_N(q뷊, q뷊, q뷊, q뷊, q뷊);
+Test_N(q뷋, q뷋, q뷋, q뷋, q뷋);
+Test_N(q뷌, q뷌, q뷌, q뷌, q뷌);
+Test_N(q뷍, q뷍, q뷍, q뷍, q뷍);
+Test_N(q뷎, q뷎, q뷎, q뷎, q뷎);
+Test_N(q뷏, q뷏, q뷏, q뷏, q뷏);
+Test_N(q뷐, q뷐, q뷐, q뷐, q뷐);
+Test_N(q뷑, q뷑, q뷑, q뷑, q뷑);
+Test_N(q뷒, q뷒, q뷒, q뷒, q뷒);
+Test_N(q뷓, q뷓, q뷓, q뷓, q뷓);
+Test_N(q뷔, q뷔, q뷔, q뷔, q뷔);
+Test_N(q뷕, q뷕, q뷕, q뷕, q뷕);
+Test_N(q뷖, q뷖, q뷖, q뷖, q뷖);
+Test_N(q뷗, q뷗, q뷗, q뷗, q뷗);
+Test_N(q뷘, q뷘, q뷘, q뷘, q뷘);
+Test_N(q뷙, q뷙, q뷙, q뷙, q뷙);
+Test_N(q뷚, q뷚, q뷚, q뷚, q뷚);
+Test_N(q뷛, q뷛, q뷛, q뷛, q뷛);
+Test_N(q뷜, q뷜, q뷜, q뷜, q뷜);
+Test_N(q뷝, q뷝, q뷝, q뷝, q뷝);
+Test_N(q뷞, q뷞, q뷞, q뷞, q뷞);
+Test_N(q뷟, q뷟, q뷟, q뷟, q뷟);
+Test_N(q뷠, q뷠, q뷠, q뷠, q뷠);
+Test_N(q뷡, q뷡, q뷡, q뷡, q뷡);
+Test_N(q뷢, q뷢, q뷢, q뷢, q뷢);
+Test_N(q뷣, q뷣, q뷣, q뷣, q뷣);
+Test_N(q뷤, q뷤, q뷤, q뷤, q뷤);
+Test_N(q뷥, q뷥, q뷥, q뷥, q뷥);
+Test_N(q뷦, q뷦, q뷦, q뷦, q뷦);
+Test_N(q뷧, q뷧, q뷧, q뷧, q뷧);
+Test_N(q뷨, q뷨, q뷨, q뷨, q뷨);
+Test_N(q뷩, q뷩, q뷩, q뷩, q뷩);
+Test_N(q뷪, q뷪, q뷪, q뷪, q뷪);
+Test_N(q뷫, q뷫, q뷫, q뷫, q뷫);
+Test_N(q뷬, q뷬, q뷬, q뷬, q뷬);
+Test_N(q뷭, q뷭, q뷭, q뷭, q뷭);
+Test_N(q뷮, q뷮, q뷮, q뷮, q뷮);
+Test_N(q뷯, q뷯, q뷯, q뷯, q뷯);
+Test_N(q뷰, q뷰, q뷰, q뷰, q뷰);
+Test_N(q뷱, q뷱, q뷱, q뷱, q뷱);
+Test_N(q뷲, q뷲, q뷲, q뷲, q뷲);
+Test_N(q뷳, q뷳, q뷳, q뷳, q뷳);
+Test_N(q뷴, q뷴, q뷴, q뷴, q뷴);
+Test_N(q뷵, q뷵, q뷵, q뷵, q뷵);
+Test_N(q뷶, q뷶, q뷶, q뷶, q뷶);
+Test_N(q뷷, q뷷, q뷷, q뷷, q뷷);
+Test_N(q뷸, q뷸, q뷸, q뷸, q뷸);
+Test_N(q뷹, q뷹, q뷹, q뷹, q뷹);
+Test_N(q뷺, q뷺, q뷺, q뷺, q뷺);
+Test_N(q뷻, q뷻, q뷻, q뷻, q뷻);
+Test_N(q뷼, q뷼, q뷼, q뷼, q뷼);
+Test_N(q뷽, q뷽, q뷽, q뷽, q뷽);
+Test_N(q뷾, q뷾, q뷾, q뷾, q뷾);
+Test_N(q뷿, q뷿, q뷿, q뷿, q뷿);
+Test_N(q븀, q븀, q븀, q븀, q븀);
+Test_N(q븁, q븁, q븁, q븁, q븁);
+Test_N(q븂, q븂, q븂, q븂, q븂);
+Test_N(q븃, q븃, q븃, q븃, q븃);
+Test_N(q븄, q븄, q븄, q븄, q븄);
+Test_N(q븅, q븅, q븅, q븅, q븅);
+Test_N(q븆, q븆, q븆, q븆, q븆);
+Test_N(q븇, q븇, q븇, q븇, q븇);
+Test_N(q븈, q븈, q븈, q븈, q븈);
+Test_N(q븉, q븉, q븉, q븉, q븉);
+Test_N(q븊, q븊, q븊, q븊, q븊);
+Test_N(q븋, q븋, q븋, q븋, q븋);
+Test_N(q브, q브, q브, q브, q브);
+Test_N(q븍, q븍, q븍, q븍, q븍);
+Test_N(q븎, q븎, q븎, q븎, q븎);
+Test_N(q븏, q븏, q븏, q븏, q븏);
+Test_N(q븐, q븐, q븐, q븐, q븐);
+Test_N(q븑, q븑, q븑, q븑, q븑);
+Test_N(q븒, q븒, q븒, q븒, q븒);
+Test_N(q븓, q븓, q븓, q븓, q븓);
+Test_N(q블, q블, q블, q블, q블);
+Test_N(q븕, q븕, q븕, q븕, q븕);
+Test_N(q븖, q븖, q븖, q븖, q븖);
+Test_N(q븗, q븗, q븗, q븗, q븗);
+Test_N(q븘, q븘, q븘, q븘, q븘);
+Test_N(q븙, q븙, q븙, q븙, q븙);
+Test_N(q븚, q븚, q븚, q븚, q븚);
+Test_N(q븛, q븛, q븛, q븛, q븛);
+Test_N(q븜, q븜, q븜, q븜, q븜);
+Test_N(q븝, q븝, q븝, q븝, q븝);
+Test_N(q븞, q븞, q븞, q븞, q븞);
+Test_N(q븟, q븟, q븟, q븟, q븟);
+Test_N(q븠, q븠, q븠, q븠, q븠);
+Test_N(q븡, q븡, q븡, q븡, q븡);
+Test_N(q븢, q븢, q븢, q븢, q븢);
+Test_N(q븣, q븣, q븣, q븣, q븣);
+Test_N(q븤, q븤, q븤, q븤, q븤);
+Test_N(q븥, q븥, q븥, q븥, q븥);
+Test_N(q븦, q븦, q븦, q븦, q븦);
+Test_N(q븧, q븧, q븧, q븧, q븧);
+Test_N(q븨, q븨, q븨, q븨, q븨);
+Test_N(q븩, q븩, q븩, q븩, q븩);
+Test_N(q븪, q븪, q븪, q븪, q븪);
+Test_N(q븫, q븫, q븫, q븫, q븫);
+Test_N(q븬, q븬, q븬, q븬, q븬);
+Test_N(q븭, q븭, q븭, q븭, q븭);
+Test_N(q븮, q븮, q븮, q븮, q븮);
+Test_N(q븯, q븯, q븯, q븯, q븯);
+Test_N(q븰, q븰, q븰, q븰, q븰);
+Test_N(q븱, q븱, q븱, q븱, q븱);
+Test_N(q븲, q븲, q븲, q븲, q븲);
+Test_N(q븳, q븳, q븳, q븳, q븳);
+Test_N(q븴, q븴, q븴, q븴, q븴);
+Test_N(q븵, q븵, q븵, q븵, q븵);
+Test_N(q븶, q븶, q븶, q븶, q븶);
+Test_N(q븷, q븷, q븷, q븷, q븷);
+Test_N(q븸, q븸, q븸, q븸, q븸);
+Test_N(q븹, q븹, q븹, q븹, q븹);
+Test_N(q븺, q븺, q븺, q븺, q븺);
+Test_N(q븻, q븻, q븻, q븻, q븻);
+Test_N(q븼, q븼, q븼, q븼, q븼);
+Test_N(q븽, q븽, q븽, q븽, q븽);
+Test_N(q븾, q븾, q븾, q븾, q븾);
+Test_N(q븿, q븿, q븿, q븿, q븿);
+Test_N(q빀, q빀, q빀, q빀, q빀);
+Test_N(q빁, q빁, q빁, q빁, q빁);
+Test_N(q빂, q빂, q빂, q빂, q빂);
+Test_N(q빃, q빃, q빃, q빃, q빃);
+Test_N(q비, q비, q비, q비, q비);
+Test_N(q빅, q빅, q빅, q빅, q빅);
+Test_N(q빆, q빆, q빆, q빆, q빆);
+Test_N(q빇, q빇, q빇, q빇, q빇);
+Test_N(q빈, q빈, q빈, q빈, q빈);
+Test_N(q빉, q빉, q빉, q빉, q빉);
+Test_N(q빊, q빊, q빊, q빊, q빊);
+Test_N(q빋, q빋, q빋, q빋, q빋);
+Test_N(q빌, q빌, q빌, q빌, q빌);
+Test_N(q빍, q빍, q빍, q빍, q빍);
+Test_N(q빎, q빎, q빎, q빎, q빎);
+Test_N(q빏, q빏, q빏, q빏, q빏);
+Test_N(q빐, q빐, q빐, q빐, q빐);
+Test_N(q빑, q빑, q빑, q빑, q빑);
+Test_N(q빒, q빒, q빒, q빒, q빒);
+Test_N(q빓, q빓, q빓, q빓, q빓);
+Test_N(q빔, q빔, q빔, q빔, q빔);
+Test_N(q빕, q빕, q빕, q빕, q빕);
+Test_N(q빖, q빖, q빖, q빖, q빖);
+Test_N(q빗, q빗, q빗, q빗, q빗);
+Test_N(q빘, q빘, q빘, q빘, q빘);
+Test_N(q빙, q빙, q빙, q빙, q빙);
+Test_N(q빚, q빚, q빚, q빚, q빚);
+Test_N(q빛, q빛, q빛, q빛, q빛);
+Test_N(q빜, q빜, q빜, q빜, q빜);
+Test_N(q빝, q빝, q빝, q빝, q빝);
+Test_N(q빞, q빞, q빞, q빞, q빞);
+Test_N(q빟, q빟, q빟, q빟, q빟);
+Test_N(q빠, q빠, q빠, q빠, q빠);
+Test_N(q빡, q빡, q빡, q빡, q빡);
+Test_N(q빢, q빢, q빢, q빢, q빢);
+Test_N(q빣, q빣, q빣, q빣, q빣);
+Test_N(q빤, q빤, q빤, q빤, q빤);
+Test_N(q빥, q빥, q빥, q빥, q빥);
+Test_N(q빦, q빦, q빦, q빦, q빦);
+Test_N(q빧, q빧, q빧, q빧, q빧);
+Test_N(q빨, q빨, q빨, q빨, q빨);
+Test_N(q빩, q빩, q빩, q빩, q빩);
+Test_N(q빪, q빪, q빪, q빪, q빪);
+Test_N(q빫, q빫, q빫, q빫, q빫);
+Test_N(q빬, q빬, q빬, q빬, q빬);
+Test_N(q빭, q빭, q빭, q빭, q빭);
+Test_N(q빮, q빮, q빮, q빮, q빮);
+Test_N(q빯, q빯, q빯, q빯, q빯);
+Test_N(q빰, q빰, q빰, q빰, q빰);
+Test_N(q빱, q빱, q빱, q빱, q빱);
+Test_N(q빲, q빲, q빲, q빲, q빲);
+Test_N(q빳, q빳, q빳, q빳, q빳);
+Test_N(q빴, q빴, q빴, q빴, q빴);
+Test_N(q빵, q빵, q빵, q빵, q빵);
+Test_N(q빶, q빶, q빶, q빶, q빶);
+Test_N(q빷, q빷, q빷, q빷, q빷);
+Test_N(q빸, q빸, q빸, q빸, q빸);
+Test_N(q빹, q빹, q빹, q빹, q빹);
+Test_N(q빺, q빺, q빺, q빺, q빺);
+Test_N(q빻, q빻, q빻, q빻, q빻);
+Test_N(q빼, q빼, q빼, q빼, q빼);
+Test_N(q빽, q빽, q빽, q빽, q빽);
+Test_N(q빾, q빾, q빾, q빾, q빾);
+Test_N(q빿, q빿, q빿, q빿, q빿);
+Test_N(q뺀, q뺀, q뺀, q뺀, q뺀);
+Test_N(q뺁, q뺁, q뺁, q뺁, q뺁);
+Test_N(q뺂, q뺂, q뺂, q뺂, q뺂);
+Test_N(q뺃, q뺃, q뺃, q뺃, q뺃);
+Test_N(q뺄, q뺄, q뺄, q뺄, q뺄);
+Test_N(q뺅, q뺅, q뺅, q뺅, q뺅);
+Test_N(q뺆, q뺆, q뺆, q뺆, q뺆);
+Test_N(q뺇, q뺇, q뺇, q뺇, q뺇);
+Test_N(q뺈, q뺈, q뺈, q뺈, q뺈);
+Test_N(q뺉, q뺉, q뺉, q뺉, q뺉);
+Test_N(q뺊, q뺊, q뺊, q뺊, q뺊);
+Test_N(q뺋, q뺋, q뺋, q뺋, q뺋);
+Test_N(q뺌, q뺌, q뺌, q뺌, q뺌);
+Test_N(q뺍, q뺍, q뺍, q뺍, q뺍);
+Test_N(q뺎, q뺎, q뺎, q뺎, q뺎);
+Test_N(q뺏, q뺏, q뺏, q뺏, q뺏);
+Test_N(q뺐, q뺐, q뺐, q뺐, q뺐);
+Test_N(q뺑, q뺑, q뺑, q뺑, q뺑);
+Test_N(q뺒, q뺒, q뺒, q뺒, q뺒);
+Test_N(q뺓, q뺓, q뺓, q뺓, q뺓);
+Test_N(q뺔, q뺔, q뺔, q뺔, q뺔);
+Test_N(q뺕, q뺕, q뺕, q뺕, q뺕);
+Test_N(q뺖, q뺖, q뺖, q뺖, q뺖);
+Test_N(q뺗, q뺗, q뺗, q뺗, q뺗);
+Test_N(q뺘, q뺘, q뺘, q뺘, q뺘);
+Test_N(q뺙, q뺙, q뺙, q뺙, q뺙);
+Test_N(q뺚, q뺚, q뺚, q뺚, q뺚);
+Test_N(q뺛, q뺛, q뺛, q뺛, q뺛);
+Test_N(q뺜, q뺜, q뺜, q뺜, q뺜);
+Test_N(q뺝, q뺝, q뺝, q뺝, q뺝);
+Test_N(q뺞, q뺞, q뺞, q뺞, q뺞);
+Test_N(q뺟, q뺟, q뺟, q뺟, q뺟);
+Test_N(q뺠, q뺠, q뺠, q뺠, q뺠);
+Test_N(q뺡, q뺡, q뺡, q뺡, q뺡);
+Test_N(q뺢, q뺢, q뺢, q뺢, q뺢);
+Test_N(q뺣, q뺣, q뺣, q뺣, q뺣);
+Test_N(q뺤, q뺤, q뺤, q뺤, q뺤);
+Test_N(q뺥, q뺥, q뺥, q뺥, q뺥);
+Test_N(q뺦, q뺦, q뺦, q뺦, q뺦);
+Test_N(q뺧, q뺧, q뺧, q뺧, q뺧);
+Test_N(q뺨, q뺨, q뺨, q뺨, q뺨);
+Test_N(q뺩, q뺩, q뺩, q뺩, q뺩);
+Test_N(q뺪, q뺪, q뺪, q뺪, q뺪);
+Test_N(q뺫, q뺫, q뺫, q뺫, q뺫);
+Test_N(q뺬, q뺬, q뺬, q뺬, q뺬);
+Test_N(q뺭, q뺭, q뺭, q뺭, q뺭);
+Test_N(q뺮, q뺮, q뺮, q뺮, q뺮);
+Test_N(q뺯, q뺯, q뺯, q뺯, q뺯);
+Test_N(q뺰, q뺰, q뺰, q뺰, q뺰);
+Test_N(q뺱, q뺱, q뺱, q뺱, q뺱);
+Test_N(q뺲, q뺲, q뺲, q뺲, q뺲);
+Test_N(q뺳, q뺳, q뺳, q뺳, q뺳);
+Test_N(q뺴, q뺴, q뺴, q뺴, q뺴);
+Test_N(q뺵, q뺵, q뺵, q뺵, q뺵);
+Test_N(q뺶, q뺶, q뺶, q뺶, q뺶);
+Test_N(q뺷, q뺷, q뺷, q뺷, q뺷);
+Test_N(q뺸, q뺸, q뺸, q뺸, q뺸);
+Test_N(q뺹, q뺹, q뺹, q뺹, q뺹);
+Test_N(q뺺, q뺺, q뺺, q뺺, q뺺);
+Test_N(q뺻, q뺻, q뺻, q뺻, q뺻);
+Test_N(q뺼, q뺼, q뺼, q뺼, q뺼);
+Test_N(q뺽, q뺽, q뺽, q뺽, q뺽);
+Test_N(q뺾, q뺾, q뺾, q뺾, q뺾);
+Test_N(q뺿, q뺿, q뺿, q뺿, q뺿);
+Test_N(q뻀, q뻀, q뻀, q뻀, q뻀);
+Test_N(q뻁, q뻁, q뻁, q뻁, q뻁);
+Test_N(q뻂, q뻂, q뻂, q뻂, q뻂);
+Test_N(q뻃, q뻃, q뻃, q뻃, q뻃);
+Test_N(q뻄, q뻄, q뻄, q뻄, q뻄);
+Test_N(q뻅, q뻅, q뻅, q뻅, q뻅);
+Test_N(q뻆, q뻆, q뻆, q뻆, q뻆);
+Test_N(q뻇, q뻇, q뻇, q뻇, q뻇);
+Test_N(q뻈, q뻈, q뻈, q뻈, q뻈);
+Test_N(q뻉, q뻉, q뻉, q뻉, q뻉);
+Test_N(q뻊, q뻊, q뻊, q뻊, q뻊);
+Test_N(q뻋, q뻋, q뻋, q뻋, q뻋);
+Test_N(q뻌, q뻌, q뻌, q뻌, q뻌);
+Test_N(q뻍, q뻍, q뻍, q뻍, q뻍);
+Test_N(q뻎, q뻎, q뻎, q뻎, q뻎);
+Test_N(q뻏, q뻏, q뻏, q뻏, q뻏);
+Test_N(q뻐, q뻐, q뻐, q뻐, q뻐);
+Test_N(q뻑, q뻑, q뻑, q뻑, q뻑);
+Test_N(q뻒, q뻒, q뻒, q뻒, q뻒);
+Test_N(q뻓, q뻓, q뻓, q뻓, q뻓);
+Test_N(q뻔, q뻔, q뻔, q뻔, q뻔);
+Test_N(q뻕, q뻕, q뻕, q뻕, q뻕);
+Test_N(q뻖, q뻖, q뻖, q뻖, q뻖);
+Test_N(q뻗, q뻗, q뻗, q뻗, q뻗);
+Test_N(q뻘, q뻘, q뻘, q뻘, q뻘);
+Test_N(q뻙, q뻙, q뻙, q뻙, q뻙);
+Test_N(q뻚, q뻚, q뻚, q뻚, q뻚);
+Test_N(q뻛, q뻛, q뻛, q뻛, q뻛);
+Test_N(q뻜, q뻜, q뻜, q뻜, q뻜);
+Test_N(q뻝, q뻝, q뻝, q뻝, q뻝);
+Test_N(q뻞, q뻞, q뻞, q뻞, q뻞);
+Test_N(q뻟, q뻟, q뻟, q뻟, q뻟);
+Test_N(q뻠, q뻠, q뻠, q뻠, q뻠);
+Test_N(q뻡, q뻡, q뻡, q뻡, q뻡);
+Test_N(q뻢, q뻢, q뻢, q뻢, q뻢);
+Test_N(q뻣, q뻣, q뻣, q뻣, q뻣);
+Test_N(q뻤, q뻤, q뻤, q뻤, q뻤);
+Test_N(q뻥, q뻥, q뻥, q뻥, q뻥);
+Test_N(q뻦, q뻦, q뻦, q뻦, q뻦);
+Test_N(q뻧, q뻧, q뻧, q뻧, q뻧);
+Test_N(q뻨, q뻨, q뻨, q뻨, q뻨);
+Test_N(q뻩, q뻩, q뻩, q뻩, q뻩);
+Test_N(q뻪, q뻪, q뻪, q뻪, q뻪);
+Test_N(q뻫, q뻫, q뻫, q뻫, q뻫);
+Test_N(q뻬, q뻬, q뻬, q뻬, q뻬);
+Test_N(q뻭, q뻭, q뻭, q뻭, q뻭);
+Test_N(q뻮, q뻮, q뻮, q뻮, q뻮);
+Test_N(q뻯, q뻯, q뻯, q뻯, q뻯);
+Test_N(q뻰, q뻰, q뻰, q뻰, q뻰);
+Test_N(q뻱, q뻱, q뻱, q뻱, q뻱);
+Test_N(q뻲, q뻲, q뻲, q뻲, q뻲);
+Test_N(q뻳, q뻳, q뻳, q뻳, q뻳);
+Test_N(q뻴, q뻴, q뻴, q뻴, q뻴);
+Test_N(q뻵, q뻵, q뻵, q뻵, q뻵);
+Test_N(q뻶, q뻶, q뻶, q뻶, q뻶);
+Test_N(q뻷, q뻷, q뻷, q뻷, q뻷);
+Test_N(q뻸, q뻸, q뻸, q뻸, q뻸);
+Test_N(q뻹, q뻹, q뻹, q뻹, q뻹);
+Test_N(q뻺, q뻺, q뻺, q뻺, q뻺);
+Test_N(q뻻, q뻻, q뻻, q뻻, q뻻);
+Test_N(q뻼, q뻼, q뻼, q뻼, q뻼);
+Test_N(q뻽, q뻽, q뻽, q뻽, q뻽);
+Test_N(q뻾, q뻾, q뻾, q뻾, q뻾);
+Test_N(q뻿, q뻿, q뻿, q뻿, q뻿);
+Test_N(q뼀, q뼀, q뼀, q뼀, q뼀);
+Test_N(q뼁, q뼁, q뼁, q뼁, q뼁);
+Test_N(q뼂, q뼂, q뼂, q뼂, q뼂);
+Test_N(q뼃, q뼃, q뼃, q뼃, q뼃);
+Test_N(q뼄, q뼄, q뼄, q뼄, q뼄);
+Test_N(q뼅, q뼅, q뼅, q뼅, q뼅);
+Test_N(q뼆, q뼆, q뼆, q뼆, q뼆);
+Test_N(q뼇, q뼇, q뼇, q뼇, q뼇);
+Test_N(q뼈, q뼈, q뼈, q뼈, q뼈);
+Test_N(q뼉, q뼉, q뼉, q뼉, q뼉);
+Test_N(q뼊, q뼊, q뼊, q뼊, q뼊);
+Test_N(q뼋, q뼋, q뼋, q뼋, q뼋);
+Test_N(q뼌, q뼌, q뼌, q뼌, q뼌);
+Test_N(q뼍, q뼍, q뼍, q뼍, q뼍);
+Test_N(q뼎, q뼎, q뼎, q뼎, q뼎);
+Test_N(q뼏, q뼏, q뼏, q뼏, q뼏);
+Test_N(q뼐, q뼐, q뼐, q뼐, q뼐);
+Test_N(q뼑, q뼑, q뼑, q뼑, q뼑);
+Test_N(q뼒, q뼒, q뼒, q뼒, q뼒);
+Test_N(q뼓, q뼓, q뼓, q뼓, q뼓);
+Test_N(q뼔, q뼔, q뼔, q뼔, q뼔);
+Test_N(q뼕, q뼕, q뼕, q뼕, q뼕);
+Test_N(q뼖, q뼖, q뼖, q뼖, q뼖);
+Test_N(q뼗, q뼗, q뼗, q뼗, q뼗);
+Test_N(q뼘, q뼘, q뼘, q뼘, q뼘);
+Test_N(q뼙, q뼙, q뼙, q뼙, q뼙);
+Test_N(q뼚, q뼚, q뼚, q뼚, q뼚);
+Test_N(q뼛, q뼛, q뼛, q뼛, q뼛);
+Test_N(q뼜, q뼜, q뼜, q뼜, q뼜);
+Test_N(q뼝, q뼝, q뼝, q뼝, q뼝);
+Test_N(q뼞, q뼞, q뼞, q뼞, q뼞);
+Test_N(q뼟, q뼟, q뼟, q뼟, q뼟);
+Test_N(q뼠, q뼠, q뼠, q뼠, q뼠);
+Test_N(q뼡, q뼡, q뼡, q뼡, q뼡);
+Test_N(q뼢, q뼢, q뼢, q뼢, q뼢);
+Test_N(q뼣, q뼣, q뼣, q뼣, q뼣);
+Test_N(q뼤, q뼤, q뼤, q뼤, q뼤);
+Test_N(q뼥, q뼥, q뼥, q뼥, q뼥);
+Test_N(q뼦, q뼦, q뼦, q뼦, q뼦);
+Test_N(q뼧, q뼧, q뼧, q뼧, q뼧);
+Test_N(q뼨, q뼨, q뼨, q뼨, q뼨);
+Test_N(q뼩, q뼩, q뼩, q뼩, q뼩);
+Test_N(q뼪, q뼪, q뼪, q뼪, q뼪);
+Test_N(q뼫, q뼫, q뼫, q뼫, q뼫);
+Test_N(q뼬, q뼬, q뼬, q뼬, q뼬);
+Test_N(q뼭, q뼭, q뼭, q뼭, q뼭);
+Test_N(q뼮, q뼮, q뼮, q뼮, q뼮);
+Test_N(q뼯, q뼯, q뼯, q뼯, q뼯);
+Test_N(q뼰, q뼰, q뼰, q뼰, q뼰);
+Test_N(q뼱, q뼱, q뼱, q뼱, q뼱);
+Test_N(q뼲, q뼲, q뼲, q뼲, q뼲);
+Test_N(q뼳, q뼳, q뼳, q뼳, q뼳);
+Test_N(q뼴, q뼴, q뼴, q뼴, q뼴);
+Test_N(q뼵, q뼵, q뼵, q뼵, q뼵);
+Test_N(q뼶, q뼶, q뼶, q뼶, q뼶);
+Test_N(q뼷, q뼷, q뼷, q뼷, q뼷);
+Test_N(q뼸, q뼸, q뼸, q뼸, q뼸);
+Test_N(q뼹, q뼹, q뼹, q뼹, q뼹);
+Test_N(q뼺, q뼺, q뼺, q뼺, q뼺);
+Test_N(q뼻, q뼻, q뼻, q뼻, q뼻);
+Test_N(q뼼, q뼼, q뼼, q뼼, q뼼);
+Test_N(q뼽, q뼽, q뼽, q뼽, q뼽);
+Test_N(q뼾, q뼾, q뼾, q뼾, q뼾);
+Test_N(q뼿, q뼿, q뼿, q뼿, q뼿);
+Test_N(q뽀, q뽀, q뽀, q뽀, q뽀);
+Test_N(q뽁, q뽁, q뽁, q뽁, q뽁);
+Test_N(q뽂, q뽂, q뽂, q뽂, q뽂);
+Test_N(q뽃, q뽃, q뽃, q뽃, q뽃);
+Test_N(q뽄, q뽄, q뽄, q뽄, q뽄);
+Test_N(q뽅, q뽅, q뽅, q뽅, q뽅);
+Test_N(q뽆, q뽆, q뽆, q뽆, q뽆);
+Test_N(q뽇, q뽇, q뽇, q뽇, q뽇);
+Test_N(q뽈, q뽈, q뽈, q뽈, q뽈);
+Test_N(q뽉, q뽉, q뽉, q뽉, q뽉);
+Test_N(q뽊, q뽊, q뽊, q뽊, q뽊);
+Test_N(q뽋, q뽋, q뽋, q뽋, q뽋);
+Test_N(q뽌, q뽌, q뽌, q뽌, q뽌);
+Test_N(q뽍, q뽍, q뽍, q뽍, q뽍);
+Test_N(q뽎, q뽎, q뽎, q뽎, q뽎);
+Test_N(q뽏, q뽏, q뽏, q뽏, q뽏);
+Test_N(q뽐, q뽐, q뽐, q뽐, q뽐);
+Test_N(q뽑, q뽑, q뽑, q뽑, q뽑);
+Test_N(q뽒, q뽒, q뽒, q뽒, q뽒);
+Test_N(q뽓, q뽓, q뽓, q뽓, q뽓);
+Test_N(q뽔, q뽔, q뽔, q뽔, q뽔);
+Test_N(q뽕, q뽕, q뽕, q뽕, q뽕);
+Test_N(q뽖, q뽖, q뽖, q뽖, q뽖);
+Test_N(q뽗, q뽗, q뽗, q뽗, q뽗);
+Test_N(q뽘, q뽘, q뽘, q뽘, q뽘);
+Test_N(q뽙, q뽙, q뽙, q뽙, q뽙);
+Test_N(q뽚, q뽚, q뽚, q뽚, q뽚);
+Test_N(q뽛, q뽛, q뽛, q뽛, q뽛);
+Test_N(q뽜, q뽜, q뽜, q뽜, q뽜);
+Test_N(q뽝, q뽝, q뽝, q뽝, q뽝);
+Test_N(q뽞, q뽞, q뽞, q뽞, q뽞);
+Test_N(q뽟, q뽟, q뽟, q뽟, q뽟);
+Test_N(q뽠, q뽠, q뽠, q뽠, q뽠);
+Test_N(q뽡, q뽡, q뽡, q뽡, q뽡);
+Test_N(q뽢, q뽢, q뽢, q뽢, q뽢);
+Test_N(q뽣, q뽣, q뽣, q뽣, q뽣);
+Test_N(q뽤, q뽤, q뽤, q뽤, q뽤);
+Test_N(q뽥, q뽥, q뽥, q뽥, q뽥);
+Test_N(q뽦, q뽦, q뽦, q뽦, q뽦);
+Test_N(q뽧, q뽧, q뽧, q뽧, q뽧);
+Test_N(q뽨, q뽨, q뽨, q뽨, q뽨);
+Test_N(q뽩, q뽩, q뽩, q뽩, q뽩);
+Test_N(q뽪, q뽪, q뽪, q뽪, q뽪);
+Test_N(q뽫, q뽫, q뽫, q뽫, q뽫);
+Test_N(q뽬, q뽬, q뽬, q뽬, q뽬);
+Test_N(q뽭, q뽭, q뽭, q뽭, q뽭);
+Test_N(q뽮, q뽮, q뽮, q뽮, q뽮);
+Test_N(q뽯, q뽯, q뽯, q뽯, q뽯);
+Test_N(q뽰, q뽰, q뽰, q뽰, q뽰);
+Test_N(q뽱, q뽱, q뽱, q뽱, q뽱);
+Test_N(q뽲, q뽲, q뽲, q뽲, q뽲);
+Test_N(q뽳, q뽳, q뽳, q뽳, q뽳);
+Test_N(q뽴, q뽴, q뽴, q뽴, q뽴);
+Test_N(q뽵, q뽵, q뽵, q뽵, q뽵);
+Test_N(q뽶, q뽶, q뽶, q뽶, q뽶);
+Test_N(q뽷, q뽷, q뽷, q뽷, q뽷);
+Test_N(q뽸, q뽸, q뽸, q뽸, q뽸);
+Test_N(q뽹, q뽹, q뽹, q뽹, q뽹);
+Test_N(q뽺, q뽺, q뽺, q뽺, q뽺);
+Test_N(q뽻, q뽻, q뽻, q뽻, q뽻);
+Test_N(q뽼, q뽼, q뽼, q뽼, q뽼);
+Test_N(q뽽, q뽽, q뽽, q뽽, q뽽);
+Test_N(q뽾, q뽾, q뽾, q뽾, q뽾);
+Test_N(q뽿, q뽿, q뽿, q뽿, q뽿);
+Test_N(q뾀, q뾀, q뾀, q뾀, q뾀);
+Test_N(q뾁, q뾁, q뾁, q뾁, q뾁);
+Test_N(q뾂, q뾂, q뾂, q뾂, q뾂);
+Test_N(q뾃, q뾃, q뾃, q뾃, q뾃);
+Test_N(q뾄, q뾄, q뾄, q뾄, q뾄);
+Test_N(q뾅, q뾅, q뾅, q뾅, q뾅);
+Test_N(q뾆, q뾆, q뾆, q뾆, q뾆);
+Test_N(q뾇, q뾇, q뾇, q뾇, q뾇);
+Test_N(q뾈, q뾈, q뾈, q뾈, q뾈);
+Test_N(q뾉, q뾉, q뾉, q뾉, q뾉);
+Test_N(q뾊, q뾊, q뾊, q뾊, q뾊);
+Test_N(q뾋, q뾋, q뾋, q뾋, q뾋);
+Test_N(q뾌, q뾌, q뾌, q뾌, q뾌);
+Test_N(q뾍, q뾍, q뾍, q뾍, q뾍);
+Test_N(q뾎, q뾎, q뾎, q뾎, q뾎);
+Test_N(q뾏, q뾏, q뾏, q뾏, q뾏);
+Test_N(q뾐, q뾐, q뾐, q뾐, q뾐);
+Test_N(q뾑, q뾑, q뾑, q뾑, q뾑);
+Test_N(q뾒, q뾒, q뾒, q뾒, q뾒);
+Test_N(q뾓, q뾓, q뾓, q뾓, q뾓);
+Test_N(q뾔, q뾔, q뾔, q뾔, q뾔);
+Test_N(q뾕, q뾕, q뾕, q뾕, q뾕);
+Test_N(q뾖, q뾖, q뾖, q뾖, q뾖);
+Test_N(q뾗, q뾗, q뾗, q뾗, q뾗);
+Test_N(q뾘, q뾘, q뾘, q뾘, q뾘);
+Test_N(q뾙, q뾙, q뾙, q뾙, q뾙);
+Test_N(q뾚, q뾚, q뾚, q뾚, q뾚);
+Test_N(q뾛, q뾛, q뾛, q뾛, q뾛);
+Test_N(q뾜, q뾜, q뾜, q뾜, q뾜);
+Test_N(q뾝, q뾝, q뾝, q뾝, q뾝);
+Test_N(q뾞, q뾞, q뾞, q뾞, q뾞);
+Test_N(q뾟, q뾟, q뾟, q뾟, q뾟);
+Test_N(q뾠, q뾠, q뾠, q뾠, q뾠);
+Test_N(q뾡, q뾡, q뾡, q뾡, q뾡);
+Test_N(q뾢, q뾢, q뾢, q뾢, q뾢);
+Test_N(q뾣, q뾣, q뾣, q뾣, q뾣);
+Test_N(q뾤, q뾤, q뾤, q뾤, q뾤);
+Test_N(q뾥, q뾥, q뾥, q뾥, q뾥);
+Test_N(q뾦, q뾦, q뾦, q뾦, q뾦);
+Test_N(q뾧, q뾧, q뾧, q뾧, q뾧);
+Test_N(q뾨, q뾨, q뾨, q뾨, q뾨);
+Test_N(q뾩, q뾩, q뾩, q뾩, q뾩);
+Test_N(q뾪, q뾪, q뾪, q뾪, q뾪);
+Test_N(q뾫, q뾫, q뾫, q뾫, q뾫);
+Test_N(q뾬, q뾬, q뾬, q뾬, q뾬);
+Test_N(q뾭, q뾭, q뾭, q뾭, q뾭);
+Test_N(q뾮, q뾮, q뾮, q뾮, q뾮);
+Test_N(q뾯, q뾯, q뾯, q뾯, q뾯);
+Test_N(q뾰, q뾰, q뾰, q뾰, q뾰);
+Test_N(q뾱, q뾱, q뾱, q뾱, q뾱);
+Test_N(q뾲, q뾲, q뾲, q뾲, q뾲);
+Test_N(q뾳, q뾳, q뾳, q뾳, q뾳);
+Test_N(q뾴, q뾴, q뾴, q뾴, q뾴);
+Test_N(q뾵, q뾵, q뾵, q뾵, q뾵);
+Test_N(q뾶, q뾶, q뾶, q뾶, q뾶);
+Test_N(q뾷, q뾷, q뾷, q뾷, q뾷);
+Test_N(q뾸, q뾸, q뾸, q뾸, q뾸);
+Test_N(q뾹, q뾹, q뾹, q뾹, q뾹);
+Test_N(q뾺, q뾺, q뾺, q뾺, q뾺);
+Test_N(q뾻, q뾻, q뾻, q뾻, q뾻);
+Test_N(q뾼, q뾼, q뾼, q뾼, q뾼);
+Test_N(q뾽, q뾽, q뾽, q뾽, q뾽);
+Test_N(q뾾, q뾾, q뾾, q뾾, q뾾);
+Test_N(q뾿, q뾿, q뾿, q뾿, q뾿);
+Test_N(q뿀, q뿀, q뿀, q뿀, q뿀);
+Test_N(q뿁, q뿁, q뿁, q뿁, q뿁);
+Test_N(q뿂, q뿂, q뿂, q뿂, q뿂);
+Test_N(q뿃, q뿃, q뿃, q뿃, q뿃);
+Test_N(q뿄, q뿄, q뿄, q뿄, q뿄);
+Test_N(q뿅, q뿅, q뿅, q뿅, q뿅);
+Test_N(q뿆, q뿆, q뿆, q뿆, q뿆);
+Test_N(q뿇, q뿇, q뿇, q뿇, q뿇);
+Test_N(q뿈, q뿈, q뿈, q뿈, q뿈);
+Test_N(q뿉, q뿉, q뿉, q뿉, q뿉);
+Test_N(q뿊, q뿊, q뿊, q뿊, q뿊);
+Test_N(q뿋, q뿋, q뿋, q뿋, q뿋);
+Test_N(q뿌, q뿌, q뿌, q뿌, q뿌);
+Test_N(q뿍, q뿍, q뿍, q뿍, q뿍);
+Test_N(q뿎, q뿎, q뿎, q뿎, q뿎);
+Test_N(q뿏, q뿏, q뿏, q뿏, q뿏);
+Test_N(q뿐, q뿐, q뿐, q뿐, q뿐);
+Test_N(q뿑, q뿑, q뿑, q뿑, q뿑);
+Test_N(q뿒, q뿒, q뿒, q뿒, q뿒);
+Test_N(q뿓, q뿓, q뿓, q뿓, q뿓);
+Test_N(q뿔, q뿔, q뿔, q뿔, q뿔);
+Test_N(q뿕, q뿕, q뿕, q뿕, q뿕);
+Test_N(q뿖, q뿖, q뿖, q뿖, q뿖);
+Test_N(q뿗, q뿗, q뿗, q뿗, q뿗);
+Test_N(q뿘, q뿘, q뿘, q뿘, q뿘);
+Test_N(q뿙, q뿙, q뿙, q뿙, q뿙);
+Test_N(q뿚, q뿚, q뿚, q뿚, q뿚);
+Test_N(q뿛, q뿛, q뿛, q뿛, q뿛);
+Test_N(q뿜, q뿜, q뿜, q뿜, q뿜);
+Test_N(q뿝, q뿝, q뿝, q뿝, q뿝);
+Test_N(q뿞, q뿞, q뿞, q뿞, q뿞);
+Test_N(q뿟, q뿟, q뿟, q뿟, q뿟);
+Test_N(q뿠, q뿠, q뿠, q뿠, q뿠);
+Test_N(q뿡, q뿡, q뿡, q뿡, q뿡);
+Test_N(q뿢, q뿢, q뿢, q뿢, q뿢);
+Test_N(q뿣, q뿣, q뿣, q뿣, q뿣);
+Test_N(q뿤, q뿤, q뿤, q뿤, q뿤);
+Test_N(q뿥, q뿥, q뿥, q뿥, q뿥);
+Test_N(q뿦, q뿦, q뿦, q뿦, q뿦);
+Test_N(q뿧, q뿧, q뿧, q뿧, q뿧);
+Test_N(q뿨, q뿨, q뿨, q뿨, q뿨);
+Test_N(q뿩, q뿩, q뿩, q뿩, q뿩);
+Test_N(q뿪, q뿪, q뿪, q뿪, q뿪);
+Test_N(q뿫, q뿫, q뿫, q뿫, q뿫);
+Test_N(q뿬, q뿬, q뿬, q뿬, q뿬);
+Test_N(q뿭, q뿭, q뿭, q뿭, q뿭);
+Test_N(q뿮, q뿮, q뿮, q뿮, q뿮);
+Test_N(q뿯, q뿯, q뿯, q뿯, q뿯);
+Test_N(q뿰, q뿰, q뿰, q뿰, q뿰);
+Test_N(q뿱, q뿱, q뿱, q뿱, q뿱);
+Test_N(q뿲, q뿲, q뿲, q뿲, q뿲);
+Test_N(q뿳, q뿳, q뿳, q뿳, q뿳);
+Test_N(q뿴, q뿴, q뿴, q뿴, q뿴);
+Test_N(q뿵, q뿵, q뿵, q뿵, q뿵);
+Test_N(q뿶, q뿶, q뿶, q뿶, q뿶);
+Test_N(q뿷, q뿷, q뿷, q뿷, q뿷);
+Test_N(q뿸, q뿸, q뿸, q뿸, q뿸);
+Test_N(q뿹, q뿹, q뿹, q뿹, q뿹);
+Test_N(q뿺, q뿺, q뿺, q뿺, q뿺);
+Test_N(q뿻, q뿻, q뿻, q뿻, q뿻);
+Test_N(q뿼, q뿼, q뿼, q뿼, q뿼);
+Test_N(q뿽, q뿽, q뿽, q뿽, q뿽);
+Test_N(q뿾, q뿾, q뿾, q뿾, q뿾);
+Test_N(q뿿, q뿿, q뿿, q뿿, q뿿);
+Test_N(q쀀, q쀀, q쀀, q쀀, q쀀);
+Test_N(q쀁, q쀁, q쀁, q쀁, q쀁);
+Test_N(q쀂, q쀂, q쀂, q쀂, q쀂);
+Test_N(q쀃, q쀃, q쀃, q쀃, q쀃);
+Test_N(q쀄, q쀄, q쀄, q쀄, q쀄);
+Test_N(q쀅, q쀅, q쀅, q쀅, q쀅);
+Test_N(q쀆, q쀆, q쀆, q쀆, q쀆);
+Test_N(q쀇, q쀇, q쀇, q쀇, q쀇);
+Test_N(q쀈, q쀈, q쀈, q쀈, q쀈);
+Test_N(q쀉, q쀉, q쀉, q쀉, q쀉);
+Test_N(q쀊, q쀊, q쀊, q쀊, q쀊);
+Test_N(q쀋, q쀋, q쀋, q쀋, q쀋);
+Test_N(q쀌, q쀌, q쀌, q쀌, q쀌);
+Test_N(q쀍, q쀍, q쀍, q쀍, q쀍);
+Test_N(q쀎, q쀎, q쀎, q쀎, q쀎);
+Test_N(q쀏, q쀏, q쀏, q쀏, q쀏);
+Test_N(q쀐, q쀐, q쀐, q쀐, q쀐);
+Test_N(q쀑, q쀑, q쀑, q쀑, q쀑);
+Test_N(q쀒, q쀒, q쀒, q쀒, q쀒);
+Test_N(q쀓, q쀓, q쀓, q쀓, q쀓);
+Test_N(q쀔, q쀔, q쀔, q쀔, q쀔);
+Test_N(q쀕, q쀕, q쀕, q쀕, q쀕);
+Test_N(q쀖, q쀖, q쀖, q쀖, q쀖);
+Test_N(q쀗, q쀗, q쀗, q쀗, q쀗);
+Test_N(q쀘, q쀘, q쀘, q쀘, q쀘);
+Test_N(q쀙, q쀙, q쀙, q쀙, q쀙);
+Test_N(q쀚, q쀚, q쀚, q쀚, q쀚);
+Test_N(q쀛, q쀛, q쀛, q쀛, q쀛);
+Test_N(q쀜, q쀜, q쀜, q쀜, q쀜);
+Test_N(q쀝, q쀝, q쀝, q쀝, q쀝);
+Test_N(q쀞, q쀞, q쀞, q쀞, q쀞);
+Test_N(q쀟, q쀟, q쀟, q쀟, q쀟);
+Test_N(q쀠, q쀠, q쀠, q쀠, q쀠);
+Test_N(q쀡, q쀡, q쀡, q쀡, q쀡);
+Test_N(q쀢, q쀢, q쀢, q쀢, q쀢);
+Test_N(q쀣, q쀣, q쀣, q쀣, q쀣);
+Test_N(q쀤, q쀤, q쀤, q쀤, q쀤);
+Test_N(q쀥, q쀥, q쀥, q쀥, q쀥);
+Test_N(q쀦, q쀦, q쀦, q쀦, q쀦);
+Test_N(q쀧, q쀧, q쀧, q쀧, q쀧);
+Test_N(q쀨, q쀨, q쀨, q쀨, q쀨);
+Test_N(q쀩, q쀩, q쀩, q쀩, q쀩);
+Test_N(q쀪, q쀪, q쀪, q쀪, q쀪);
+Test_N(q쀫, q쀫, q쀫, q쀫, q쀫);
+Test_N(q쀬, q쀬, q쀬, q쀬, q쀬);
+Test_N(q쀭, q쀭, q쀭, q쀭, q쀭);
+Test_N(q쀮, q쀮, q쀮, q쀮, q쀮);
+Test_N(q쀯, q쀯, q쀯, q쀯, q쀯);
+Test_N(q쀰, q쀰, q쀰, q쀰, q쀰);
+Test_N(q쀱, q쀱, q쀱, q쀱, q쀱);
+Test_N(q쀲, q쀲, q쀲, q쀲, q쀲);
+Test_N(q쀳, q쀳, q쀳, q쀳, q쀳);
+Test_N(q쀴, q쀴, q쀴, q쀴, q쀴);
+Test_N(q쀵, q쀵, q쀵, q쀵, q쀵);
+Test_N(q쀶, q쀶, q쀶, q쀶, q쀶);
+Test_N(q쀷, q쀷, q쀷, q쀷, q쀷);
+Test_N(q쀸, q쀸, q쀸, q쀸, q쀸);
+Test_N(q쀹, q쀹, q쀹, q쀹, q쀹);
+Test_N(q쀺, q쀺, q쀺, q쀺, q쀺);
+Test_N(q쀻, q쀻, q쀻, q쀻, q쀻);
+Test_N(q쀼, q쀼, q쀼, q쀼, q쀼);
+Test_N(q쀽, q쀽, q쀽, q쀽, q쀽);
+Test_N(q쀾, q쀾, q쀾, q쀾, q쀾);
+Test_N(q쀿, q쀿, q쀿, q쀿, q쀿);
+Test_N(q쁀, q쁀, q쁀, q쁀, q쁀);
+Test_N(q쁁, q쁁, q쁁, q쁁, q쁁);
+Test_N(q쁂, q쁂, q쁂, q쁂, q쁂);
+Test_N(q쁃, q쁃, q쁃, q쁃, q쁃);
+Test_N(q쁄, q쁄, q쁄, q쁄, q쁄);
+Test_N(q쁅, q쁅, q쁅, q쁅, q쁅);
+Test_N(q쁆, q쁆, q쁆, q쁆, q쁆);
+Test_N(q쁇, q쁇, q쁇, q쁇, q쁇);
+Test_N(q쁈, q쁈, q쁈, q쁈, q쁈);
+Test_N(q쁉, q쁉, q쁉, q쁉, q쁉);
+Test_N(q쁊, q쁊, q쁊, q쁊, q쁊);
+Test_N(q쁋, q쁋, q쁋, q쁋, q쁋);
+Test_N(q쁌, q쁌, q쁌, q쁌, q쁌);
+Test_N(q쁍, q쁍, q쁍, q쁍, q쁍);
+Test_N(q쁎, q쁎, q쁎, q쁎, q쁎);
+Test_N(q쁏, q쁏, q쁏, q쁏, q쁏);
+Test_N(q쁐, q쁐, q쁐, q쁐, q쁐);
+Test_N(q쁑, q쁑, q쁑, q쁑, q쁑);
+Test_N(q쁒, q쁒, q쁒, q쁒, q쁒);
+Test_N(q쁓, q쁓, q쁓, q쁓, q쁓);
+Test_N(q쁔, q쁔, q쁔, q쁔, q쁔);
+Test_N(q쁕, q쁕, q쁕, q쁕, q쁕);
+Test_N(q쁖, q쁖, q쁖, q쁖, q쁖);
+Test_N(q쁗, q쁗, q쁗, q쁗, q쁗);
+Test_N(q쁘, q쁘, q쁘, q쁘, q쁘);
+Test_N(q쁙, q쁙, q쁙, q쁙, q쁙);
+Test_N(q쁚, q쁚, q쁚, q쁚, q쁚);
+Test_N(q쁛, q쁛, q쁛, q쁛, q쁛);
+Test_N(q쁜, q쁜, q쁜, q쁜, q쁜);
+Test_N(q쁝, q쁝, q쁝, q쁝, q쁝);
+Test_N(q쁞, q쁞, q쁞, q쁞, q쁞);
+Test_N(q쁟, q쁟, q쁟, q쁟, q쁟);
+Test_N(q쁠, q쁠, q쁠, q쁠, q쁠);
+Test_N(q쁡, q쁡, q쁡, q쁡, q쁡);
+Test_N(q쁢, q쁢, q쁢, q쁢, q쁢);
+Test_N(q쁣, q쁣, q쁣, q쁣, q쁣);
+Test_N(q쁤, q쁤, q쁤, q쁤, q쁤);
+Test_N(q쁥, q쁥, q쁥, q쁥, q쁥);
+Test_N(q쁦, q쁦, q쁦, q쁦, q쁦);
+Test_N(q쁧, q쁧, q쁧, q쁧, q쁧);
+Test_N(q쁨, q쁨, q쁨, q쁨, q쁨);
+Test_N(q쁩, q쁩, q쁩, q쁩, q쁩);
+Test_N(q쁪, q쁪, q쁪, q쁪, q쁪);
+Test_N(q쁫, q쁫, q쁫, q쁫, q쁫);
+Test_N(q쁬, q쁬, q쁬, q쁬, q쁬);
+Test_N(q쁭, q쁭, q쁭, q쁭, q쁭);
+Test_N(q쁮, q쁮, q쁮, q쁮, q쁮);
+Test_N(q쁯, q쁯, q쁯, q쁯, q쁯);
+Test_N(q쁰, q쁰, q쁰, q쁰, q쁰);
+Test_N(q쁱, q쁱, q쁱, q쁱, q쁱);
+Test_N(q쁲, q쁲, q쁲, q쁲, q쁲);
+Test_N(q쁳, q쁳, q쁳, q쁳, q쁳);
+Test_N(q쁴, q쁴, q쁴, q쁴, q쁴);
+Test_N(q쁵, q쁵, q쁵, q쁵, q쁵);
+Test_N(q쁶, q쁶, q쁶, q쁶, q쁶);
+Test_N(q쁷, q쁷, q쁷, q쁷, q쁷);
+Test_N(q쁸, q쁸, q쁸, q쁸, q쁸);
+Test_N(q쁹, q쁹, q쁹, q쁹, q쁹);
+Test_N(q쁺, q쁺, q쁺, q쁺, q쁺);
+Test_N(q쁻, q쁻, q쁻, q쁻, q쁻);
+Test_N(q쁼, q쁼, q쁼, q쁼, q쁼);
+Test_N(q쁽, q쁽, q쁽, q쁽, q쁽);
+Test_N(q쁾, q쁾, q쁾, q쁾, q쁾);
+Test_N(q쁿, q쁿, q쁿, q쁿, q쁿);
+Test_N(q삀, q삀, q삀, q삀, q삀);
+Test_N(q삁, q삁, q삁, q삁, q삁);
+Test_N(q삂, q삂, q삂, q삂, q삂);
+Test_N(q삃, q삃, q삃, q삃, q삃);
+Test_N(q삄, q삄, q삄, q삄, q삄);
+Test_N(q삅, q삅, q삅, q삅, q삅);
+Test_N(q삆, q삆, q삆, q삆, q삆);
+Test_N(q삇, q삇, q삇, q삇, q삇);
+Test_N(q삈, q삈, q삈, q삈, q삈);
+Test_N(q삉, q삉, q삉, q삉, q삉);
+Test_N(q삊, q삊, q삊, q삊, q삊);
+Test_N(q삋, q삋, q삋, q삋, q삋);
+Test_N(q삌, q삌, q삌, q삌, q삌);
+Test_N(q삍, q삍, q삍, q삍, q삍);
+Test_N(q삎, q삎, q삎, q삎, q삎);
+Test_N(q삏, q삏, q삏, q삏, q삏);
+Test_N(q삐, q삐, q삐, q삐, q삐);
+Test_N(q삑, q삑, q삑, q삑, q삑);
+Test_N(q삒, q삒, q삒, q삒, q삒);
+Test_N(q삓, q삓, q삓, q삓, q삓);
+Test_N(q삔, q삔, q삔, q삔, q삔);
+Test_N(q삕, q삕, q삕, q삕, q삕);
+Test_N(q삖, q삖, q삖, q삖, q삖);
+Test_N(q삗, q삗, q삗, q삗, q삗);
+Test_N(q삘, q삘, q삘, q삘, q삘);
+Test_N(q삙, q삙, q삙, q삙, q삙);
+Test_N(q삚, q삚, q삚, q삚, q삚);
+Test_N(q삛, q삛, q삛, q삛, q삛);
+Test_N(q삜, q삜, q삜, q삜, q삜);
+Test_N(q삝, q삝, q삝, q삝, q삝);
+Test_N(q삞, q삞, q삞, q삞, q삞);
+Test_N(q삟, q삟, q삟, q삟, q삟);
+Test_N(q삠, q삠, q삠, q삠, q삠);
+Test_N(q삡, q삡, q삡, q삡, q삡);
+Test_N(q삢, q삢, q삢, q삢, q삢);
+Test_N(q삣, q삣, q삣, q삣, q삣);
+Test_N(q삤, q삤, q삤, q삤, q삤);
+Test_N(q삥, q삥, q삥, q삥, q삥);
+Test_N(q삦, q삦, q삦, q삦, q삦);
+Test_N(q삧, q삧, q삧, q삧, q삧);
+Test_N(q삨, q삨, q삨, q삨, q삨);
+Test_N(q삩, q삩, q삩, q삩, q삩);
+Test_N(q삪, q삪, q삪, q삪, q삪);
+Test_N(q삫, q삫, q삫, q삫, q삫);
+Test_N(q사, q사, q사, q사, q사);
+Test_N(q삭, q삭, q삭, q삭, q삭);
+Test_N(q삮, q삮, q삮, q삮, q삮);
+Test_N(q삯, q삯, q삯, q삯, q삯);
+Test_N(q산, q산, q산, q산, q산);
+Test_N(q삱, q삱, q삱, q삱, q삱);
+Test_N(q삲, q삲, q삲, q삲, q삲);
+Test_N(q삳, q삳, q삳, q삳, q삳);
+Test_N(q살, q살, q살, q살, q살);
+Test_N(q삵, q삵, q삵, q삵, q삵);
+Test_N(q삶, q삶, q삶, q삶, q삶);
+Test_N(q삷, q삷, q삷, q삷, q삷);
+Test_N(q삸, q삸, q삸, q삸, q삸);
+Test_N(q삹, q삹, q삹, q삹, q삹);
+Test_N(q삺, q삺, q삺, q삺, q삺);
+Test_N(q삻, q삻, q삻, q삻, q삻);
+Test_N(q삼, q삼, q삼, q삼, q삼);
+Test_N(q삽, q삽, q삽, q삽, q삽);
+Test_N(q삾, q삾, q삾, q삾, q삾);
+Test_N(q삿, q삿, q삿, q삿, q삿);
+Test_N(q샀, q샀, q샀, q샀, q샀);
+Test_N(q상, q상, q상, q상, q상);
+Test_N(q샂, q샂, q샂, q샂, q샂);
+Test_N(q샃, q샃, q샃, q샃, q샃);
+Test_N(q샄, q샄, q샄, q샄, q샄);
+Test_N(q샅, q샅, q샅, q샅, q샅);
+Test_N(q샆, q샆, q샆, q샆, q샆);
+Test_N(q샇, q샇, q샇, q샇, q샇);
+Test_N(q새, q새, q새, q새, q새);
+Test_N(q색, q색, q색, q색, q색);
+Test_N(q샊, q샊, q샊, q샊, q샊);
+Test_N(q샋, q샋, q샋, q샋, q샋);
+Test_N(q샌, q샌, q샌, q샌, q샌);
+Test_N(q샍, q샍, q샍, q샍, q샍);
+Test_N(q샎, q샎, q샎, q샎, q샎);
+Test_N(q샏, q샏, q샏, q샏, q샏);
+Test_N(q샐, q샐, q샐, q샐, q샐);
+Test_N(q샑, q샑, q샑, q샑, q샑);
+Test_N(q샒, q샒, q샒, q샒, q샒);
+Test_N(q샓, q샓, q샓, q샓, q샓);
+Test_N(q샔, q샔, q샔, q샔, q샔);
+Test_N(q샕, q샕, q샕, q샕, q샕);
+Test_N(q샖, q샖, q샖, q샖, q샖);
+Test_N(q샗, q샗, q샗, q샗, q샗);
+Test_N(q샘, q샘, q샘, q샘, q샘);
+Test_N(q샙, q샙, q샙, q샙, q샙);
+Test_N(q샚, q샚, q샚, q샚, q샚);
+Test_N(q샛, q샛, q샛, q샛, q샛);
+Test_N(q샜, q샜, q샜, q샜, q샜);
+Test_N(q생, q생, q생, q생, q생);
+Test_N(q샞, q샞, q샞, q샞, q샞);
+Test_N(q샟, q샟, q샟, q샟, q샟);
+Test_N(q샠, q샠, q샠, q샠, q샠);
+Test_N(q샡, q샡, q샡, q샡, q샡);
+Test_N(q샢, q샢, q샢, q샢, q샢);
+Test_N(q샣, q샣, q샣, q샣, q샣);
+Test_N(q샤, q샤, q샤, q샤, q샤);
+Test_N(q샥, q샥, q샥, q샥, q샥);
+Test_N(q샦, q샦, q샦, q샦, q샦);
+Test_N(q샧, q샧, q샧, q샧, q샧);
+Test_N(q샨, q샨, q샨, q샨, q샨);
+Test_N(q샩, q샩, q샩, q샩, q샩);
+Test_N(q샪, q샪, q샪, q샪, q샪);
+Test_N(q샫, q샫, q샫, q샫, q샫);
+Test_N(q샬, q샬, q샬, q샬, q샬);
+Test_N(q샭, q샭, q샭, q샭, q샭);
+Test_N(q샮, q샮, q샮, q샮, q샮);
+Test_N(q샯, q샯, q샯, q샯, q샯);
+Test_N(q샰, q샰, q샰, q샰, q샰);
+Test_N(q샱, q샱, q샱, q샱, q샱);
+Test_N(q샲, q샲, q샲, q샲, q샲);
+Test_N(q샳, q샳, q샳, q샳, q샳);
+Test_N(q샴, q샴, q샴, q샴, q샴);
+Test_N(q샵, q샵, q샵, q샵, q샵);
+Test_N(q샶, q샶, q샶, q샶, q샶);
+Test_N(q샷, q샷, q샷, q샷, q샷);
+Test_N(q샸, q샸, q샸, q샸, q샸);
+Test_N(q샹, q샹, q샹, q샹, q샹);
+Test_N(q샺, q샺, q샺, q샺, q샺);
+Test_N(q샻, q샻, q샻, q샻, q샻);
+Test_N(q샼, q샼, q샼, q샼, q샼);
+Test_N(q샽, q샽, q샽, q샽, q샽);
+Test_N(q샾, q샾, q샾, q샾, q샾);
+Test_N(q샿, q샿, q샿, q샿, q샿);
+Test_N(q섀, q섀, q섀, q섀, q섀);
+Test_N(q섁, q섁, q섁, q섁, q섁);
+Test_N(q섂, q섂, q섂, q섂, q섂);
+Test_N(q섃, q섃, q섃, q섃, q섃);
+Test_N(q섄, q섄, q섄, q섄, q섄);
+Test_N(q섅, q섅, q섅, q섅, q섅);
+Test_N(q섆, q섆, q섆, q섆, q섆);
+Test_N(q섇, q섇, q섇, q섇, q섇);
+Test_N(q섈, q섈, q섈, q섈, q섈);
+Test_N(q섉, q섉, q섉, q섉, q섉);
+Test_N(q섊, q섊, q섊, q섊, q섊);
+Test_N(q섋, q섋, q섋, q섋, q섋);
+Test_N(q섌, q섌, q섌, q섌, q섌);
+Test_N(q섍, q섍, q섍, q섍, q섍);
+Test_N(q섎, q섎, q섎, q섎, q섎);
+Test_N(q섏, q섏, q섏, q섏, q섏);
+Test_N(q섐, q섐, q섐, q섐, q섐);
+Test_N(q섑, q섑, q섑, q섑, q섑);
+Test_N(q섒, q섒, q섒, q섒, q섒);
+Test_N(q섓, q섓, q섓, q섓, q섓);
+Test_N(q섔, q섔, q섔, q섔, q섔);
+Test_N(q섕, q섕, q섕, q섕, q섕);
+Test_N(q섖, q섖, q섖, q섖, q섖);
+Test_N(q섗, q섗, q섗, q섗, q섗);
+Test_N(q섘, q섘, q섘, q섘, q섘);
+Test_N(q섙, q섙, q섙, q섙, q섙);
+Test_N(q섚, q섚, q섚, q섚, q섚);
+Test_N(q섛, q섛, q섛, q섛, q섛);
+Test_N(q서, q서, q서, q서, q서);
+Test_N(q석, q석, q석, q석, q석);
+Test_N(q섞, q섞, q섞, q섞, q섞);
+Test_N(q섟, q섟, q섟, q섟, q섟);
+Test_N(q선, q선, q선, q선, q선);
+Test_N(q섡, q섡, q섡, q섡, q섡);
+Test_N(q섢, q섢, q섢, q섢, q섢);
+Test_N(q섣, q섣, q섣, q섣, q섣);
+Test_N(q설, q설, q설, q설, q설);
+Test_N(q섥, q섥, q섥, q섥, q섥);
+Test_N(q섦, q섦, q섦, q섦, q섦);
+Test_N(q섧, q섧, q섧, q섧, q섧);
+Test_N(q섨, q섨, q섨, q섨, q섨);
+Test_N(q섩, q섩, q섩, q섩, q섩);
+Test_N(q섪, q섪, q섪, q섪, q섪);
+Test_N(q섫, q섫, q섫, q섫, q섫);
+Test_N(q섬, q섬, q섬, q섬, q섬);
+Test_N(q섭, q섭, q섭, q섭, q섭);
+Test_N(q섮, q섮, q섮, q섮, q섮);
+Test_N(q섯, q섯, q섯, q섯, q섯);
+Test_N(q섰, q섰, q섰, q섰, q섰);
+Test_N(q성, q성, q성, q성, q성);
+Test_N(q섲, q섲, q섲, q섲, q섲);
+Test_N(q섳, q섳, q섳, q섳, q섳);
+Test_N(q섴, q섴, q섴, q섴, q섴);
+Test_N(q섵, q섵, q섵, q섵, q섵);
+Test_N(q섶, q섶, q섶, q섶, q섶);
+Test_N(q섷, q섷, q섷, q섷, q섷);
+Test_N(q세, q세, q세, q세, q세);
+Test_N(q섹, q섹, q섹, q섹, q섹);
+Test_N(q섺, q섺, q섺, q섺, q섺);
+Test_N(q섻, q섻, q섻, q섻, q섻);
+Test_N(q센, q센, q센, q센, q센);
+Test_N(q섽, q섽, q섽, q섽, q섽);
+Test_N(q섾, q섾, q섾, q섾, q섾);
+Test_N(q섿, q섿, q섿, q섿, q섿);
+Test_N(q셀, q셀, q셀, q셀, q셀);
+Test_N(q셁, q셁, q셁, q셁, q셁);
+Test_N(q셂, q셂, q셂, q셂, q셂);
+Test_N(q셃, q셃, q셃, q셃, q셃);
+Test_N(q셄, q셄, q셄, q셄, q셄);
+Test_N(q셅, q셅, q셅, q셅, q셅);
+Test_N(q셆, q셆, q셆, q셆, q셆);
+Test_N(q셇, q셇, q셇, q셇, q셇);
+Test_N(q셈, q셈, q셈, q셈, q셈);
+Test_N(q셉, q셉, q셉, q셉, q셉);
+Test_N(q셊, q셊, q셊, q셊, q셊);
+Test_N(q셋, q셋, q셋, q셋, q셋);
+Test_N(q셌, q셌, q셌, q셌, q셌);
+Test_N(q셍, q셍, q셍, q셍, q셍);
+Test_N(q셎, q셎, q셎, q셎, q셎);
+Test_N(q셏, q셏, q셏, q셏, q셏);
+Test_N(q셐, q셐, q셐, q셐, q셐);
+Test_N(q셑, q셑, q셑, q셑, q셑);
+Test_N(q셒, q셒, q셒, q셒, q셒);
+Test_N(q셓, q셓, q셓, q셓, q셓);
+Test_N(q셔, q셔, q셔, q셔, q셔);
+Test_N(q셕, q셕, q셕, q셕, q셕);
+Test_N(q셖, q셖, q셖, q셖, q셖);
+Test_N(q셗, q셗, q셗, q셗, q셗);
+Test_N(q션, q션, q션, q션, q션);
+Test_N(q셙, q셙, q셙, q셙, q셙);
+Test_N(q셚, q셚, q셚, q셚, q셚);
+Test_N(q셛, q셛, q셛, q셛, q셛);
+Test_N(q셜, q셜, q셜, q셜, q셜);
+Test_N(q셝, q셝, q셝, q셝, q셝);
+Test_N(q셞, q셞, q셞, q셞, q셞);
+Test_N(q셟, q셟, q셟, q셟, q셟);
+Test_N(q셠, q셠, q셠, q셠, q셠);
+Test_N(q셡, q셡, q셡, q셡, q셡);
+Test_N(q셢, q셢, q셢, q셢, q셢);
+Test_N(q셣, q셣, q셣, q셣, q셣);
+Test_N(q셤, q셤, q셤, q셤, q셤);
+Test_N(q셥, q셥, q셥, q셥, q셥);
+Test_N(q셦, q셦, q셦, q셦, q셦);
+Test_N(q셧, q셧, q셧, q셧, q셧);
+Test_N(q셨, q셨, q셨, q셨, q셨);
+Test_N(q셩, q셩, q셩, q셩, q셩);
+Test_N(q셪, q셪, q셪, q셪, q셪);
+Test_N(q셫, q셫, q셫, q셫, q셫);
+Test_N(q셬, q셬, q셬, q셬, q셬);
+Test_N(q셭, q셭, q셭, q셭, q셭);
+Test_N(q셮, q셮, q셮, q셮, q셮);
+Test_N(q셯, q셯, q셯, q셯, q셯);
+Test_N(q셰, q셰, q셰, q셰, q셰);
+Test_N(q셱, q셱, q셱, q셱, q셱);
+Test_N(q셲, q셲, q셲, q셲, q셲);
+Test_N(q셳, q셳, q셳, q셳, q셳);
+Test_N(q셴, q셴, q셴, q셴, q셴);
+Test_N(q셵, q셵, q셵, q셵, q셵);
+Test_N(q셶, q셶, q셶, q셶, q셶);
+Test_N(q셷, q셷, q셷, q셷, q셷);
+Test_N(q셸, q셸, q셸, q셸, q셸);
+Test_N(q셹, q셹, q셹, q셹, q셹);
+Test_N(q셺, q셺, q셺, q셺, q셺);
+Test_N(q셻, q셻, q셻, q셻, q셻);
+Test_N(q셼, q셼, q셼, q셼, q셼);
+Test_N(q셽, q셽, q셽, q셽, q셽);
+Test_N(q셾, q셾, q셾, q셾, q셾);
+Test_N(q셿, q셿, q셿, q셿, q셿);
+Test_N(q솀, q솀, q솀, q솀, q솀);
+Test_N(q솁, q솁, q솁, q솁, q솁);
+Test_N(q솂, q솂, q솂, q솂, q솂);
+Test_N(q솃, q솃, q솃, q솃, q솃);
+Test_N(q솄, q솄, q솄, q솄, q솄);
+Test_N(q솅, q솅, q솅, q솅, q솅);
+Test_N(q솆, q솆, q솆, q솆, q솆);
+Test_N(q솇, q솇, q솇, q솇, q솇);
+Test_N(q솈, q솈, q솈, q솈, q솈);
+Test_N(q솉, q솉, q솉, q솉, q솉);
+Test_N(q솊, q솊, q솊, q솊, q솊);
+Test_N(q솋, q솋, q솋, q솋, q솋);
+Test_N(q소, q소, q소, q소, q소);
+Test_N(q속, q속, q속, q속, q속);
+Test_N(q솎, q솎, q솎, q솎, q솎);
+Test_N(q솏, q솏, q솏, q솏, q솏);
+Test_N(q손, q손, q손, q손, q손);
+Test_N(q솑, q솑, q솑, q솑, q솑);
+Test_N(q솒, q솒, q솒, q솒, q솒);
+Test_N(q솓, q솓, q솓, q솓, q솓);
+Test_N(q솔, q솔, q솔, q솔, q솔);
+Test_N(q솕, q솕, q솕, q솕, q솕);
+Test_N(q솖, q솖, q솖, q솖, q솖);
+Test_N(q솗, q솗, q솗, q솗, q솗);
+Test_N(q솘, q솘, q솘, q솘, q솘);
+Test_N(q솙, q솙, q솙, q솙, q솙);
+Test_N(q솚, q솚, q솚, q솚, q솚);
+Test_N(q솛, q솛, q솛, q솛, q솛);
+Test_N(q솜, q솜, q솜, q솜, q솜);
+Test_N(q솝, q솝, q솝, q솝, q솝);
+Test_N(q솞, q솞, q솞, q솞, q솞);
+Test_N(q솟, q솟, q솟, q솟, q솟);
+Test_N(q솠, q솠, q솠, q솠, q솠);
+Test_N(q송, q송, q송, q송, q송);
+Test_N(q솢, q솢, q솢, q솢, q솢);
+Test_N(q솣, q솣, q솣, q솣, q솣);
+Test_N(q솤, q솤, q솤, q솤, q솤);
+Test_N(q솥, q솥, q솥, q솥, q솥);
+Test_N(q솦, q솦, q솦, q솦, q솦);
+Test_N(q솧, q솧, q솧, q솧, q솧);
+Test_N(q솨, q솨, q솨, q솨, q솨);
+Test_N(q솩, q솩, q솩, q솩, q솩);
+Test_N(q솪, q솪, q솪, q솪, q솪);
+Test_N(q솫, q솫, q솫, q솫, q솫);
+Test_N(q솬, q솬, q솬, q솬, q솬);
+Test_N(q솭, q솭, q솭, q솭, q솭);
+Test_N(q솮, q솮, q솮, q솮, q솮);
+Test_N(q솯, q솯, q솯, q솯, q솯);
+Test_N(q솰, q솰, q솰, q솰, q솰);
+Test_N(q솱, q솱, q솱, q솱, q솱);
+Test_N(q솲, q솲, q솲, q솲, q솲);
+Test_N(q솳, q솳, q솳, q솳, q솳);
+Test_N(q솴, q솴, q솴, q솴, q솴);
+Test_N(q솵, q솵, q솵, q솵, q솵);
+Test_N(q솶, q솶, q솶, q솶, q솶);
+Test_N(q솷, q솷, q솷, q솷, q솷);
+Test_N(q솸, q솸, q솸, q솸, q솸);
+Test_N(q솹, q솹, q솹, q솹, q솹);
+Test_N(q솺, q솺, q솺, q솺, q솺);
+Test_N(q솻, q솻, q솻, q솻, q솻);
+Test_N(q솼, q솼, q솼, q솼, q솼);
+Test_N(q솽, q솽, q솽, q솽, q솽);
+Test_N(q솾, q솾, q솾, q솾, q솾);
+Test_N(q솿, q솿, q솿, q솿, q솿);
+Test_N(q쇀, q쇀, q쇀, q쇀, q쇀);
+Test_N(q쇁, q쇁, q쇁, q쇁, q쇁);
+Test_N(q쇂, q쇂, q쇂, q쇂, q쇂);
+Test_N(q쇃, q쇃, q쇃, q쇃, q쇃);
+Test_N(q쇄, q쇄, q쇄, q쇄, q쇄);
+Test_N(q쇅, q쇅, q쇅, q쇅, q쇅);
+Test_N(q쇆, q쇆, q쇆, q쇆, q쇆);
+Test_N(q쇇, q쇇, q쇇, q쇇, q쇇);
+Test_N(q쇈, q쇈, q쇈, q쇈, q쇈);
+Test_N(q쇉, q쇉, q쇉, q쇉, q쇉);
+Test_N(q쇊, q쇊, q쇊, q쇊, q쇊);
+Test_N(q쇋, q쇋, q쇋, q쇋, q쇋);
+Test_N(q쇌, q쇌, q쇌, q쇌, q쇌);
+Test_N(q쇍, q쇍, q쇍, q쇍, q쇍);
+Test_N(q쇎, q쇎, q쇎, q쇎, q쇎);
+Test_N(q쇏, q쇏, q쇏, q쇏, q쇏);
+Test_N(q쇐, q쇐, q쇐, q쇐, q쇐);
+Test_N(q쇑, q쇑, q쇑, q쇑, q쇑);
+Test_N(q쇒, q쇒, q쇒, q쇒, q쇒);
+Test_N(q쇓, q쇓, q쇓, q쇓, q쇓);
+Test_N(q쇔, q쇔, q쇔, q쇔, q쇔);
+Test_N(q쇕, q쇕, q쇕, q쇕, q쇕);
+Test_N(q쇖, q쇖, q쇖, q쇖, q쇖);
+Test_N(q쇗, q쇗, q쇗, q쇗, q쇗);
+Test_N(q쇘, q쇘, q쇘, q쇘, q쇘);
+Test_N(q쇙, q쇙, q쇙, q쇙, q쇙);
+Test_N(q쇚, q쇚, q쇚, q쇚, q쇚);
+Test_N(q쇛, q쇛, q쇛, q쇛, q쇛);
+Test_N(q쇜, q쇜, q쇜, q쇜, q쇜);
+Test_N(q쇝, q쇝, q쇝, q쇝, q쇝);
+Test_N(q쇞, q쇞, q쇞, q쇞, q쇞);
+Test_N(q쇟, q쇟, q쇟, q쇟, q쇟);
+Test_N(q쇠, q쇠, q쇠, q쇠, q쇠);
+Test_N(q쇡, q쇡, q쇡, q쇡, q쇡);
+Test_N(q쇢, q쇢, q쇢, q쇢, q쇢);
+Test_N(q쇣, q쇣, q쇣, q쇣, q쇣);
+Test_N(q쇤, q쇤, q쇤, q쇤, q쇤);
+Test_N(q쇥, q쇥, q쇥, q쇥, q쇥);
+Test_N(q쇦, q쇦, q쇦, q쇦, q쇦);
+Test_N(q쇧, q쇧, q쇧, q쇧, q쇧);
+Test_N(q쇨, q쇨, q쇨, q쇨, q쇨);
+Test_N(q쇩, q쇩, q쇩, q쇩, q쇩);
+Test_N(q쇪, q쇪, q쇪, q쇪, q쇪);
+Test_N(q쇫, q쇫, q쇫, q쇫, q쇫);
+Test_N(q쇬, q쇬, q쇬, q쇬, q쇬);
+Test_N(q쇭, q쇭, q쇭, q쇭, q쇭);
+Test_N(q쇮, q쇮, q쇮, q쇮, q쇮);
+Test_N(q쇯, q쇯, q쇯, q쇯, q쇯);
+Test_N(q쇰, q쇰, q쇰, q쇰, q쇰);
+Test_N(q쇱, q쇱, q쇱, q쇱, q쇱);
+Test_N(q쇲, q쇲, q쇲, q쇲, q쇲);
+Test_N(q쇳, q쇳, q쇳, q쇳, q쇳);
+Test_N(q쇴, q쇴, q쇴, q쇴, q쇴);
+Test_N(q쇵, q쇵, q쇵, q쇵, q쇵);
+Test_N(q쇶, q쇶, q쇶, q쇶, q쇶);
+Test_N(q쇷, q쇷, q쇷, q쇷, q쇷);
+Test_N(q쇸, q쇸, q쇸, q쇸, q쇸);
+Test_N(q쇹, q쇹, q쇹, q쇹, q쇹);
+Test_N(q쇺, q쇺, q쇺, q쇺, q쇺);
+Test_N(q쇻, q쇻, q쇻, q쇻, q쇻);
+Test_N(q쇼, q쇼, q쇼, q쇼, q쇼);
+Test_N(q쇽, q쇽, q쇽, q쇽, q쇽);
+Test_N(q쇾, q쇾, q쇾, q쇾, q쇾);
+Test_N(q쇿, q쇿, q쇿, q쇿, q쇿);
+Test_N(q숀, q숀, q숀, q숀, q숀);
+Test_N(q숁, q숁, q숁, q숁, q숁);
+Test_N(q숂, q숂, q숂, q숂, q숂);
+Test_N(q숃, q숃, q숃, q숃, q숃);
+Test_N(q숄, q숄, q숄, q숄, q숄);
+Test_N(q숅, q숅, q숅, q숅, q숅);
+Test_N(q숆, q숆, q숆, q숆, q숆);
+Test_N(q숇, q숇, q숇, q숇, q숇);
+Test_N(q숈, q숈, q숈, q숈, q숈);
+Test_N(q숉, q숉, q숉, q숉, q숉);
+Test_N(q숊, q숊, q숊, q숊, q숊);
+Test_N(q숋, q숋, q숋, q숋, q숋);
+Test_N(q숌, q숌, q숌, q숌, q숌);
+Test_N(q숍, q숍, q숍, q숍, q숍);
+Test_N(q숎, q숎, q숎, q숎, q숎);
+Test_N(q숏, q숏, q숏, q숏, q숏);
+Test_N(q숐, q숐, q숐, q숐, q숐);
+Test_N(q숑, q숑, q숑, q숑, q숑);
+Test_N(q숒, q숒, q숒, q숒, q숒);
+Test_N(q숓, q숓, q숓, q숓, q숓);
+Test_N(q숔, q숔, q숔, q숔, q숔);
+Test_N(q숕, q숕, q숕, q숕, q숕);
+Test_N(q숖, q숖, q숖, q숖, q숖);
+Test_N(q숗, q숗, q숗, q숗, q숗);
+Test_N(q수, q수, q수, q수, q수);
+Test_N(q숙, q숙, q숙, q숙, q숙);
+Test_N(q숚, q숚, q숚, q숚, q숚);
+Test_N(q숛, q숛, q숛, q숛, q숛);
+Test_N(q순, q순, q순, q순, q순);
+Test_N(q숝, q숝, q숝, q숝, q숝);
+Test_N(q숞, q숞, q숞, q숞, q숞);
+Test_N(q숟, q숟, q숟, q숟, q숟);
+Test_N(q술, q술, q술, q술, q술);
+Test_N(q숡, q숡, q숡, q숡, q숡);
+Test_N(q숢, q숢, q숢, q숢, q숢);
+Test_N(q숣, q숣, q숣, q숣, q숣);
+Test_N(q숤, q숤, q숤, q숤, q숤);
+Test_N(q숥, q숥, q숥, q숥, q숥);
+Test_N(q숦, q숦, q숦, q숦, q숦);
+Test_N(q숧, q숧, q숧, q숧, q숧);
+Test_N(q숨, q숨, q숨, q숨, q숨);
+Test_N(q숩, q숩, q숩, q숩, q숩);
+Test_N(q숪, q숪, q숪, q숪, q숪);
+Test_N(q숫, q숫, q숫, q숫, q숫);
+Test_N(q숬, q숬, q숬, q숬, q숬);
+Test_N(q숭, q숭, q숭, q숭, q숭);
+Test_N(q숮, q숮, q숮, q숮, q숮);
+Test_N(q숯, q숯, q숯, q숯, q숯);
+Test_N(q숰, q숰, q숰, q숰, q숰);
+Test_N(q숱, q숱, q숱, q숱, q숱);
+Test_N(q숲, q숲, q숲, q숲, q숲);
+Test_N(q숳, q숳, q숳, q숳, q숳);
+Test_N(q숴, q숴, q숴, q숴, q숴);
+Test_N(q숵, q숵, q숵, q숵, q숵);
+Test_N(q숶, q숶, q숶, q숶, q숶);
+Test_N(q숷, q숷, q숷, q숷, q숷);
+Test_N(q숸, q숸, q숸, q숸, q숸);
+Test_N(q숹, q숹, q숹, q숹, q숹);
+Test_N(q숺, q숺, q숺, q숺, q숺);
+Test_N(q숻, q숻, q숻, q숻, q숻);
+Test_N(q숼, q숼, q숼, q숼, q숼);
+Test_N(q숽, q숽, q숽, q숽, q숽);
+Test_N(q숾, q숾, q숾, q숾, q숾);
+Test_N(q숿, q숿, q숿, q숿, q숿);
+Test_N(q쉀, q쉀, q쉀, q쉀, q쉀);
+Test_N(q쉁, q쉁, q쉁, q쉁, q쉁);
+Test_N(q쉂, q쉂, q쉂, q쉂, q쉂);
+Test_N(q쉃, q쉃, q쉃, q쉃, q쉃);
+Test_N(q쉄, q쉄, q쉄, q쉄, q쉄);
+Test_N(q쉅, q쉅, q쉅, q쉅, q쉅);
+Test_N(q쉆, q쉆, q쉆, q쉆, q쉆);
+Test_N(q쉇, q쉇, q쉇, q쉇, q쉇);
+Test_N(q쉈, q쉈, q쉈, q쉈, q쉈);
+Test_N(q쉉, q쉉, q쉉, q쉉, q쉉);
+Test_N(q쉊, q쉊, q쉊, q쉊, q쉊);
+Test_N(q쉋, q쉋, q쉋, q쉋, q쉋);
+Test_N(q쉌, q쉌, q쉌, q쉌, q쉌);
+Test_N(q쉍, q쉍, q쉍, q쉍, q쉍);
+Test_N(q쉎, q쉎, q쉎, q쉎, q쉎);
+Test_N(q쉏, q쉏, q쉏, q쉏, q쉏);
+Test_N(q쉐, q쉐, q쉐, q쉐, q쉐);
+Test_N(q쉑, q쉑, q쉑, q쉑, q쉑);
+Test_N(q쉒, q쉒, q쉒, q쉒, q쉒);
+Test_N(q쉓, q쉓, q쉓, q쉓, q쉓);
+Test_N(q쉔, q쉔, q쉔, q쉔, q쉔);
+Test_N(q쉕, q쉕, q쉕, q쉕, q쉕);
+Test_N(q쉖, q쉖, q쉖, q쉖, q쉖);
+Test_N(q쉗, q쉗, q쉗, q쉗, q쉗);
+Test_N(q쉘, q쉘, q쉘, q쉘, q쉘);
+Test_N(q쉙, q쉙, q쉙, q쉙, q쉙);
+Test_N(q쉚, q쉚, q쉚, q쉚, q쉚);
+Test_N(q쉛, q쉛, q쉛, q쉛, q쉛);
+Test_N(q쉜, q쉜, q쉜, q쉜, q쉜);
+Test_N(q쉝, q쉝, q쉝, q쉝, q쉝);
+Test_N(q쉞, q쉞, q쉞, q쉞, q쉞);
+Test_N(q쉟, q쉟, q쉟, q쉟, q쉟);
+Test_N(q쉠, q쉠, q쉠, q쉠, q쉠);
+Test_N(q쉡, q쉡, q쉡, q쉡, q쉡);
+Test_N(q쉢, q쉢, q쉢, q쉢, q쉢);
+Test_N(q쉣, q쉣, q쉣, q쉣, q쉣);
+Test_N(q쉤, q쉤, q쉤, q쉤, q쉤);
+Test_N(q쉥, q쉥, q쉥, q쉥, q쉥);
+Test_N(q쉦, q쉦, q쉦, q쉦, q쉦);
+Test_N(q쉧, q쉧, q쉧, q쉧, q쉧);
+Test_N(q쉨, q쉨, q쉨, q쉨, q쉨);
+Test_N(q쉩, q쉩, q쉩, q쉩, q쉩);
+Test_N(q쉪, q쉪, q쉪, q쉪, q쉪);
+Test_N(q쉫, q쉫, q쉫, q쉫, q쉫);
+Test_N(q쉬, q쉬, q쉬, q쉬, q쉬);
+Test_N(q쉭, q쉭, q쉭, q쉭, q쉭);
+Test_N(q쉮, q쉮, q쉮, q쉮, q쉮);
+Test_N(q쉯, q쉯, q쉯, q쉯, q쉯);
+Test_N(q쉰, q쉰, q쉰, q쉰, q쉰);
+Test_N(q쉱, q쉱, q쉱, q쉱, q쉱);
+Test_N(q쉲, q쉲, q쉲, q쉲, q쉲);
+Test_N(q쉳, q쉳, q쉳, q쉳, q쉳);
+Test_N(q쉴, q쉴, q쉴, q쉴, q쉴);
+Test_N(q쉵, q쉵, q쉵, q쉵, q쉵);
+Test_N(q쉶, q쉶, q쉶, q쉶, q쉶);
+Test_N(q쉷, q쉷, q쉷, q쉷, q쉷);
+Test_N(q쉸, q쉸, q쉸, q쉸, q쉸);
+Test_N(q쉹, q쉹, q쉹, q쉹, q쉹);
+Test_N(q쉺, q쉺, q쉺, q쉺, q쉺);
+Test_N(q쉻, q쉻, q쉻, q쉻, q쉻);
+Test_N(q쉼, q쉼, q쉼, q쉼, q쉼);
+Test_N(q쉽, q쉽, q쉽, q쉽, q쉽);
+Test_N(q쉾, q쉾, q쉾, q쉾, q쉾);
+Test_N(q쉿, q쉿, q쉿, q쉿, q쉿);
+Test_N(q슀, q슀, q슀, q슀, q슀);
+Test_N(q슁, q슁, q슁, q슁, q슁);
+Test_N(q슂, q슂, q슂, q슂, q슂);
+Test_N(q슃, q슃, q슃, q슃, q슃);
+Test_N(q슄, q슄, q슄, q슄, q슄);
+Test_N(q슅, q슅, q슅, q슅, q슅);
+Test_N(q슆, q슆, q슆, q슆, q슆);
+Test_N(q슇, q슇, q슇, q슇, q슇);
+Test_N(q슈, q슈, q슈, q슈, q슈);
+Test_N(q슉, q슉, q슉, q슉, q슉);
+Test_N(q슊, q슊, q슊, q슊, q슊);
+Test_N(q슋, q슋, q슋, q슋, q슋);
+Test_N(q슌, q슌, q슌, q슌, q슌);
+Test_N(q슍, q슍, q슍, q슍, q슍);
+Test_N(q슎, q슎, q슎, q슎, q슎);
+Test_N(q슏, q슏, q슏, q슏, q슏);
+Test_N(q슐, q슐, q슐, q슐, q슐);
+Test_N(q슑, q슑, q슑, q슑, q슑);
+Test_N(q슒, q슒, q슒, q슒, q슒);
+Test_N(q슓, q슓, q슓, q슓, q슓);
+Test_N(q슔, q슔, q슔, q슔, q슔);
+Test_N(q슕, q슕, q슕, q슕, q슕);
+Test_N(q슖, q슖, q슖, q슖, q슖);
+Test_N(q슗, q슗, q슗, q슗, q슗);
+Test_N(q슘, q슘, q슘, q슘, q슘);
+Test_N(q슙, q슙, q슙, q슙, q슙);
+Test_N(q슚, q슚, q슚, q슚, q슚);
+Test_N(q슛, q슛, q슛, q슛, q슛);
+Test_N(q슜, q슜, q슜, q슜, q슜);
+Test_N(q슝, q슝, q슝, q슝, q슝);
+Test_N(q슞, q슞, q슞, q슞, q슞);
+Test_N(q슟, q슟, q슟, q슟, q슟);
+Test_N(q슠, q슠, q슠, q슠, q슠);
+Test_N(q슡, q슡, q슡, q슡, q슡);
+Test_N(q슢, q슢, q슢, q슢, q슢);
+Test_N(q슣, q슣, q슣, q슣, q슣);
+Test_N(q스, q스, q스, q스, q스);
+Test_N(q슥, q슥, q슥, q슥, q슥);
+Test_N(q슦, q슦, q슦, q슦, q슦);
+Test_N(q슧, q슧, q슧, q슧, q슧);
+Test_N(q슨, q슨, q슨, q슨, q슨);
+Test_N(q슩, q슩, q슩, q슩, q슩);
+Test_N(q슪, q슪, q슪, q슪, q슪);
+Test_N(q슫, q슫, q슫, q슫, q슫);
+Test_N(q슬, q슬, q슬, q슬, q슬);
+Test_N(q슭, q슭, q슭, q슭, q슭);
+Test_N(q슮, q슮, q슮, q슮, q슮);
+Test_N(q슯, q슯, q슯, q슯, q슯);
+Test_N(q슰, q슰, q슰, q슰, q슰);
+Test_N(q슱, q슱, q슱, q슱, q슱);
+Test_N(q슲, q슲, q슲, q슲, q슲);
+Test_N(q슳, q슳, q슳, q슳, q슳);
+Test_N(q슴, q슴, q슴, q슴, q슴);
+Test_N(q습, q습, q습, q습, q습);
+Test_N(q슶, q슶, q슶, q슶, q슶);
+Test_N(q슷, q슷, q슷, q슷, q슷);
+Test_N(q슸, q슸, q슸, q슸, q슸);
+Test_N(q승, q승, q승, q승, q승);
+Test_N(q슺, q슺, q슺, q슺, q슺);
+Test_N(q슻, q슻, q슻, q슻, q슻);
+Test_N(q슼, q슼, q슼, q슼, q슼);
+Test_N(q슽, q슽, q슽, q슽, q슽);
+Test_N(q슾, q슾, q슾, q슾, q슾);
+Test_N(q슿, q슿, q슿, q슿, q슿);
+Test_N(q싀, q싀, q싀, q싀, q싀);
+Test_N(q싁, q싁, q싁, q싁, q싁);
+Test_N(q싂, q싂, q싂, q싂, q싂);
+Test_N(q싃, q싃, q싃, q싃, q싃);
+Test_N(q싄, q싄, q싄, q싄, q싄);
+Test_N(q싅, q싅, q싅, q싅, q싅);
+Test_N(q싆, q싆, q싆, q싆, q싆);
+Test_N(q싇, q싇, q싇, q싇, q싇);
+Test_N(q싈, q싈, q싈, q싈, q싈);
+Test_N(q싉, q싉, q싉, q싉, q싉);
+Test_N(q싊, q싊, q싊, q싊, q싊);
+Test_N(q싋, q싋, q싋, q싋, q싋);
+Test_N(q싌, q싌, q싌, q싌, q싌);
+Test_N(q싍, q싍, q싍, q싍, q싍);
+Test_N(q싎, q싎, q싎, q싎, q싎);
+Test_N(q싏, q싏, q싏, q싏, q싏);
+Test_N(q싐, q싐, q싐, q싐, q싐);
+Test_N(q싑, q싑, q싑, q싑, q싑);
+Test_N(q싒, q싒, q싒, q싒, q싒);
+Test_N(q싓, q싓, q싓, q싓, q싓);
+Test_N(q싔, q싔, q싔, q싔, q싔);
+Test_N(q싕, q싕, q싕, q싕, q싕);
+Test_N(q싖, q싖, q싖, q싖, q싖);
+Test_N(q싗, q싗, q싗, q싗, q싗);
+Test_N(q싘, q싘, q싘, q싘, q싘);
+Test_N(q싙, q싙, q싙, q싙, q싙);
+Test_N(q싚, q싚, q싚, q싚, q싚);
+Test_N(q싛, q싛, q싛, q싛, q싛);
+Test_N(q시, q시, q시, q시, q시);
+Test_N(q식, q식, q식, q식, q식);
+Test_N(q싞, q싞, q싞, q싞, q싞);
+Test_N(q싟, q싟, q싟, q싟, q싟);
+Test_N(q신, q신, q신, q신, q신);
+Test_N(q싡, q싡, q싡, q싡, q싡);
+Test_N(q싢, q싢, q싢, q싢, q싢);
+Test_N(q싣, q싣, q싣, q싣, q싣);
+Test_N(q실, q실, q실, q실, q실);
+Test_N(q싥, q싥, q싥, q싥, q싥);
+Test_N(q싦, q싦, q싦, q싦, q싦);
+Test_N(q싧, q싧, q싧, q싧, q싧);
+Test_N(q싨, q싨, q싨, q싨, q싨);
+Test_N(q싩, q싩, q싩, q싩, q싩);
+Test_N(q싪, q싪, q싪, q싪, q싪);
+Test_N(q싫, q싫, q싫, q싫, q싫);
+Test_N(q심, q심, q심, q심, q심);
+Test_N(q십, q십, q십, q십, q십);
+Test_N(q싮, q싮, q싮, q싮, q싮);
+Test_N(q싯, q싯, q싯, q싯, q싯);
+Test_N(q싰, q싰, q싰, q싰, q싰);
+Test_N(q싱, q싱, q싱, q싱, q싱);
+Test_N(q싲, q싲, q싲, q싲, q싲);
+Test_N(q싳, q싳, q싳, q싳, q싳);
+Test_N(q싴, q싴, q싴, q싴, q싴);
+Test_N(q싵, q싵, q싵, q싵, q싵);
+Test_N(q싶, q싶, q싶, q싶, q싶);
+Test_N(q싷, q싷, q싷, q싷, q싷);
+Test_N(q싸, q싸, q싸, q싸, q싸);
+Test_N(q싹, q싹, q싹, q싹, q싹);
+Test_N(q싺, q싺, q싺, q싺, q싺);
+Test_N(q싻, q싻, q싻, q싻, q싻);
+Test_N(q싼, q싼, q싼, q싼, q싼);
+Test_N(q싽, q싽, q싽, q싽, q싽);
+Test_N(q싾, q싾, q싾, q싾, q싾);
+Test_N(q싿, q싿, q싿, q싿, q싿);
+Test_N(q쌀, q쌀, q쌀, q쌀, q쌀);
+Test_N(q쌁, q쌁, q쌁, q쌁, q쌁);
+Test_N(q쌂, q쌂, q쌂, q쌂, q쌂);
+Test_N(q쌃, q쌃, q쌃, q쌃, q쌃);
+Test_N(q쌄, q쌄, q쌄, q쌄, q쌄);
+Test_N(q쌅, q쌅, q쌅, q쌅, q쌅);
+Test_N(q쌆, q쌆, q쌆, q쌆, q쌆);
+Test_N(q쌇, q쌇, q쌇, q쌇, q쌇);
+Test_N(q쌈, q쌈, q쌈, q쌈, q쌈);
+Test_N(q쌉, q쌉, q쌉, q쌉, q쌉);
+Test_N(q쌊, q쌊, q쌊, q쌊, q쌊);
+Test_N(q쌋, q쌋, q쌋, q쌋, q쌋);
+Test_N(q쌌, q쌌, q쌌, q쌌, q쌌);
+Test_N(q쌍, q쌍, q쌍, q쌍, q쌍);
+Test_N(q쌎, q쌎, q쌎, q쌎, q쌎);
+Test_N(q쌏, q쌏, q쌏, q쌏, q쌏);
+Test_N(q쌐, q쌐, q쌐, q쌐, q쌐);
+Test_N(q쌑, q쌑, q쌑, q쌑, q쌑);
+Test_N(q쌒, q쌒, q쌒, q쌒, q쌒);
+Test_N(q쌓, q쌓, q쌓, q쌓, q쌓);
+Test_N(q쌔, q쌔, q쌔, q쌔, q쌔);
+Test_N(q쌕, q쌕, q쌕, q쌕, q쌕);
+Test_N(q쌖, q쌖, q쌖, q쌖, q쌖);
+Test_N(q쌗, q쌗, q쌗, q쌗, q쌗);
+Test_N(q쌘, q쌘, q쌘, q쌘, q쌘);
+Test_N(q쌙, q쌙, q쌙, q쌙, q쌙);
+Test_N(q쌚, q쌚, q쌚, q쌚, q쌚);
+Test_N(q쌛, q쌛, q쌛, q쌛, q쌛);
+Test_N(q쌜, q쌜, q쌜, q쌜, q쌜);
+Test_N(q쌝, q쌝, q쌝, q쌝, q쌝);
+Test_N(q쌞, q쌞, q쌞, q쌞, q쌞);
+Test_N(q쌟, q쌟, q쌟, q쌟, q쌟);
+Test_N(q쌠, q쌠, q쌠, q쌠, q쌠);
+Test_N(q쌡, q쌡, q쌡, q쌡, q쌡);
+Test_N(q쌢, q쌢, q쌢, q쌢, q쌢);
+Test_N(q쌣, q쌣, q쌣, q쌣, q쌣);
+Test_N(q쌤, q쌤, q쌤, q쌤, q쌤);
+Test_N(q쌥, q쌥, q쌥, q쌥, q쌥);
+Test_N(q쌦, q쌦, q쌦, q쌦, q쌦);
+Test_N(q쌧, q쌧, q쌧, q쌧, q쌧);
+Test_N(q쌨, q쌨, q쌨, q쌨, q쌨);
+Test_N(q쌩, q쌩, q쌩, q쌩, q쌩);
+Test_N(q쌪, q쌪, q쌪, q쌪, q쌪);
+Test_N(q쌫, q쌫, q쌫, q쌫, q쌫);
+Test_N(q쌬, q쌬, q쌬, q쌬, q쌬);
+Test_N(q쌭, q쌭, q쌭, q쌭, q쌭);
+Test_N(q쌮, q쌮, q쌮, q쌮, q쌮);
+Test_N(q쌯, q쌯, q쌯, q쌯, q쌯);
+Test_N(q쌰, q쌰, q쌰, q쌰, q쌰);
+Test_N(q쌱, q쌱, q쌱, q쌱, q쌱);
+Test_N(q쌲, q쌲, q쌲, q쌲, q쌲);
+Test_N(q쌳, q쌳, q쌳, q쌳, q쌳);
+Test_N(q쌴, q쌴, q쌴, q쌴, q쌴);
+Test_N(q쌵, q쌵, q쌵, q쌵, q쌵);
+Test_N(q쌶, q쌶, q쌶, q쌶, q쌶);
+Test_N(q쌷, q쌷, q쌷, q쌷, q쌷);
+Test_N(q쌸, q쌸, q쌸, q쌸, q쌸);
+Test_N(q쌹, q쌹, q쌹, q쌹, q쌹);
+Test_N(q쌺, q쌺, q쌺, q쌺, q쌺);
+Test_N(q쌻, q쌻, q쌻, q쌻, q쌻);
+Test_N(q쌼, q쌼, q쌼, q쌼, q쌼);
+Test_N(q쌽, q쌽, q쌽, q쌽, q쌽);
+Test_N(q쌾, q쌾, q쌾, q쌾, q쌾);
+Test_N(q쌿, q쌿, q쌿, q쌿, q쌿);
+Test_N(q썀, q썀, q썀, q썀, q썀);
+Test_N(q썁, q썁, q썁, q썁, q썁);
+Test_N(q썂, q썂, q썂, q썂, q썂);
+Test_N(q썃, q썃, q썃, q썃, q썃);
+Test_N(q썄, q썄, q썄, q썄, q썄);
+Test_N(q썅, q썅, q썅, q썅, q썅);
+Test_N(q썆, q썆, q썆, q썆, q썆);
+Test_N(q썇, q썇, q썇, q썇, q썇);
+Test_N(q썈, q썈, q썈, q썈, q썈);
+Test_N(q썉, q썉, q썉, q썉, q썉);
+Test_N(q썊, q썊, q썊, q썊, q썊);
+Test_N(q썋, q썋, q썋, q썋, q썋);
+Test_N(q썌, q썌, q썌, q썌, q썌);
+Test_N(q썍, q썍, q썍, q썍, q썍);
+Test_N(q썎, q썎, q썎, q썎, q썎);
+Test_N(q썏, q썏, q썏, q썏, q썏);
+Test_N(q썐, q썐, q썐, q썐, q썐);
+Test_N(q썑, q썑, q썑, q썑, q썑);
+Test_N(q썒, q썒, q썒, q썒, q썒);
+Test_N(q썓, q썓, q썓, q썓, q썓);
+Test_N(q썔, q썔, q썔, q썔, q썔);
+Test_N(q썕, q썕, q썕, q썕, q썕);
+Test_N(q썖, q썖, q썖, q썖, q썖);
+Test_N(q썗, q썗, q썗, q썗, q썗);
+Test_N(q썘, q썘, q썘, q썘, q썘);
+Test_N(q썙, q썙, q썙, q썙, q썙);
+Test_N(q썚, q썚, q썚, q썚, q썚);
+Test_N(q썛, q썛, q썛, q썛, q썛);
+Test_N(q썜, q썜, q썜, q썜, q썜);
+Test_N(q썝, q썝, q썝, q썝, q썝);
+Test_N(q썞, q썞, q썞, q썞, q썞);
+Test_N(q썟, q썟, q썟, q썟, q썟);
+Test_N(q썠, q썠, q썠, q썠, q썠);
+Test_N(q썡, q썡, q썡, q썡, q썡);
+Test_N(q썢, q썢, q썢, q썢, q썢);
+Test_N(q썣, q썣, q썣, q썣, q썣);
+Test_N(q썤, q썤, q썤, q썤, q썤);
+Test_N(q썥, q썥, q썥, q썥, q썥);
+Test_N(q썦, q썦, q썦, q썦, q썦);
+Test_N(q썧, q썧, q썧, q썧, q썧);
+Test_N(q써, q써, q써, q써, q써);
+Test_N(q썩, q썩, q썩, q썩, q썩);
+Test_N(q썪, q썪, q썪, q썪, q썪);
+Test_N(q썫, q썫, q썫, q썫, q썫);
+Test_N(q썬, q썬, q썬, q썬, q썬);
+Test_N(q썭, q썭, q썭, q썭, q썭);
+Test_N(q썮, q썮, q썮, q썮, q썮);
+Test_N(q썯, q썯, q썯, q썯, q썯);
+Test_N(q썰, q썰, q썰, q썰, q썰);
+Test_N(q썱, q썱, q썱, q썱, q썱);
+Test_N(q썲, q썲, q썲, q썲, q썲);
+Test_N(q썳, q썳, q썳, q썳, q썳);
+Test_N(q썴, q썴, q썴, q썴, q썴);
+Test_N(q썵, q썵, q썵, q썵, q썵);
+Test_N(q썶, q썶, q썶, q썶, q썶);
+Test_N(q썷, q썷, q썷, q썷, q썷);
+Test_N(q썸, q썸, q썸, q썸, q썸);
+Test_N(q썹, q썹, q썹, q썹, q썹);
+Test_N(q썺, q썺, q썺, q썺, q썺);
+Test_N(q썻, q썻, q썻, q썻, q썻);
+Test_N(q썼, q썼, q썼, q썼, q썼);
+Test_N(q썽, q썽, q썽, q썽, q썽);
+Test_N(q썾, q썾, q썾, q썾, q썾);
+Test_N(q썿, q썿, q썿, q썿, q썿);
+Test_N(q쎀, q쎀, q쎀, q쎀, q쎀);
+Test_N(q쎁, q쎁, q쎁, q쎁, q쎁);
+Test_N(q쎂, q쎂, q쎂, q쎂, q쎂);
+Test_N(q쎃, q쎃, q쎃, q쎃, q쎃);
+Test_N(q쎄, q쎄, q쎄, q쎄, q쎄);
+Test_N(q쎅, q쎅, q쎅, q쎅, q쎅);
+Test_N(q쎆, q쎆, q쎆, q쎆, q쎆);
+Test_N(q쎇, q쎇, q쎇, q쎇, q쎇);
+Test_N(q쎈, q쎈, q쎈, q쎈, q쎈);
+Test_N(q쎉, q쎉, q쎉, q쎉, q쎉);
+Test_N(q쎊, q쎊, q쎊, q쎊, q쎊);
+Test_N(q쎋, q쎋, q쎋, q쎋, q쎋);
+Test_N(q쎌, q쎌, q쎌, q쎌, q쎌);
+Test_N(q쎍, q쎍, q쎍, q쎍, q쎍);
+Test_N(q쎎, q쎎, q쎎, q쎎, q쎎);
+Test_N(q쎏, q쎏, q쎏, q쎏, q쎏);
+Test_N(q쎐, q쎐, q쎐, q쎐, q쎐);
+Test_N(q쎑, q쎑, q쎑, q쎑, q쎑);
+Test_N(q쎒, q쎒, q쎒, q쎒, q쎒);
+Test_N(q쎓, q쎓, q쎓, q쎓, q쎓);
+Test_N(q쎔, q쎔, q쎔, q쎔, q쎔);
+Test_N(q쎕, q쎕, q쎕, q쎕, q쎕);
+Test_N(q쎖, q쎖, q쎖, q쎖, q쎖);
+Test_N(q쎗, q쎗, q쎗, q쎗, q쎗);
+Test_N(q쎘, q쎘, q쎘, q쎘, q쎘);
+Test_N(q쎙, q쎙, q쎙, q쎙, q쎙);
+Test_N(q쎚, q쎚, q쎚, q쎚, q쎚);
+Test_N(q쎛, q쎛, q쎛, q쎛, q쎛);
+Test_N(q쎜, q쎜, q쎜, q쎜, q쎜);
+Test_N(q쎝, q쎝, q쎝, q쎝, q쎝);
+Test_N(q쎞, q쎞, q쎞, q쎞, q쎞);
+Test_N(q쎟, q쎟, q쎟, q쎟, q쎟);
+Test_N(q쎠, q쎠, q쎠, q쎠, q쎠);
+Test_N(q쎡, q쎡, q쎡, q쎡, q쎡);
+Test_N(q쎢, q쎢, q쎢, q쎢, q쎢);
+Test_N(q쎣, q쎣, q쎣, q쎣, q쎣);
+Test_N(q쎤, q쎤, q쎤, q쎤, q쎤);
+Test_N(q쎥, q쎥, q쎥, q쎥, q쎥);
+Test_N(q쎦, q쎦, q쎦, q쎦, q쎦);
+Test_N(q쎧, q쎧, q쎧, q쎧, q쎧);
+Test_N(q쎨, q쎨, q쎨, q쎨, q쎨);
+Test_N(q쎩, q쎩, q쎩, q쎩, q쎩);
+Test_N(q쎪, q쎪, q쎪, q쎪, q쎪);
+Test_N(q쎫, q쎫, q쎫, q쎫, q쎫);
+Test_N(q쎬, q쎬, q쎬, q쎬, q쎬);
+Test_N(q쎭, q쎭, q쎭, q쎭, q쎭);
+Test_N(q쎮, q쎮, q쎮, q쎮, q쎮);
+Test_N(q쎯, q쎯, q쎯, q쎯, q쎯);
+Test_N(q쎰, q쎰, q쎰, q쎰, q쎰);
+Test_N(q쎱, q쎱, q쎱, q쎱, q쎱);
+Test_N(q쎲, q쎲, q쎲, q쎲, q쎲);
+Test_N(q쎳, q쎳, q쎳, q쎳, q쎳);
+Test_N(q쎴, q쎴, q쎴, q쎴, q쎴);
+Test_N(q쎵, q쎵, q쎵, q쎵, q쎵);
+Test_N(q쎶, q쎶, q쎶, q쎶, q쎶);
+Test_N(q쎷, q쎷, q쎷, q쎷, q쎷);
+Test_N(q쎸, q쎸, q쎸, q쎸, q쎸);
+Test_N(q쎹, q쎹, q쎹, q쎹, q쎹);
+Test_N(q쎺, q쎺, q쎺, q쎺, q쎺);
+Test_N(q쎻, q쎻, q쎻, q쎻, q쎻);
+Test_N(q쎼, q쎼, q쎼, q쎼, q쎼);
+Test_N(q쎽, q쎽, q쎽, q쎽, q쎽);
+Test_N(q쎾, q쎾, q쎾, q쎾, q쎾);
+Test_N(q쎿, q쎿, q쎿, q쎿, q쎿);
+Test_N(q쏀, q쏀, q쏀, q쏀, q쏀);
+Test_N(q쏁, q쏁, q쏁, q쏁, q쏁);
+Test_N(q쏂, q쏂, q쏂, q쏂, q쏂);
+Test_N(q쏃, q쏃, q쏃, q쏃, q쏃);
+Test_N(q쏄, q쏄, q쏄, q쏄, q쏄);
+Test_N(q쏅, q쏅, q쏅, q쏅, q쏅);
+Test_N(q쏆, q쏆, q쏆, q쏆, q쏆);
+Test_N(q쏇, q쏇, q쏇, q쏇, q쏇);
+Test_N(q쏈, q쏈, q쏈, q쏈, q쏈);
+Test_N(q쏉, q쏉, q쏉, q쏉, q쏉);
+Test_N(q쏊, q쏊, q쏊, q쏊, q쏊);
+Test_N(q쏋, q쏋, q쏋, q쏋, q쏋);
+Test_N(q쏌, q쏌, q쏌, q쏌, q쏌);
+Test_N(q쏍, q쏍, q쏍, q쏍, q쏍);
+Test_N(q쏎, q쏎, q쏎, q쏎, q쏎);
+Test_N(q쏏, q쏏, q쏏, q쏏, q쏏);
+Test_N(q쏐, q쏐, q쏐, q쏐, q쏐);
+Test_N(q쏑, q쏑, q쏑, q쏑, q쏑);
+Test_N(q쏒, q쏒, q쏒, q쏒, q쏒);
+Test_N(q쏓, q쏓, q쏓, q쏓, q쏓);
+Test_N(q쏔, q쏔, q쏔, q쏔, q쏔);
+Test_N(q쏕, q쏕, q쏕, q쏕, q쏕);
+Test_N(q쏖, q쏖, q쏖, q쏖, q쏖);
+Test_N(q쏗, q쏗, q쏗, q쏗, q쏗);
+Test_N(q쏘, q쏘, q쏘, q쏘, q쏘);
+Test_N(q쏙, q쏙, q쏙, q쏙, q쏙);
+Test_N(q쏚, q쏚, q쏚, q쏚, q쏚);
+Test_N(q쏛, q쏛, q쏛, q쏛, q쏛);
+Test_N(q쏜, q쏜, q쏜, q쏜, q쏜);
+Test_N(q쏝, q쏝, q쏝, q쏝, q쏝);
+Test_N(q쏞, q쏞, q쏞, q쏞, q쏞);
+Test_N(q쏟, q쏟, q쏟, q쏟, q쏟);
+Test_N(q쏠, q쏠, q쏠, q쏠, q쏠);
+Test_N(q쏡, q쏡, q쏡, q쏡, q쏡);
+Test_N(q쏢, q쏢, q쏢, q쏢, q쏢);
+Test_N(q쏣, q쏣, q쏣, q쏣, q쏣);
+Test_N(q쏤, q쏤, q쏤, q쏤, q쏤);
+Test_N(q쏥, q쏥, q쏥, q쏥, q쏥);
+Test_N(q쏦, q쏦, q쏦, q쏦, q쏦);
+Test_N(q쏧, q쏧, q쏧, q쏧, q쏧);
+Test_N(q쏨, q쏨, q쏨, q쏨, q쏨);
+Test_N(q쏩, q쏩, q쏩, q쏩, q쏩);
+Test_N(q쏪, q쏪, q쏪, q쏪, q쏪);
+Test_N(q쏫, q쏫, q쏫, q쏫, q쏫);
+Test_N(q쏬, q쏬, q쏬, q쏬, q쏬);
+Test_N(q쏭, q쏭, q쏭, q쏭, q쏭);
+Test_N(q쏮, q쏮, q쏮, q쏮, q쏮);
+Test_N(q쏯, q쏯, q쏯, q쏯, q쏯);
+Test_N(q쏰, q쏰, q쏰, q쏰, q쏰);
+Test_N(q쏱, q쏱, q쏱, q쏱, q쏱);
+Test_N(q쏲, q쏲, q쏲, q쏲, q쏲);
+Test_N(q쏳, q쏳, q쏳, q쏳, q쏳);
+Test_N(q쏴, q쏴, q쏴, q쏴, q쏴);
+Test_N(q쏵, q쏵, q쏵, q쏵, q쏵);
+Test_N(q쏶, q쏶, q쏶, q쏶, q쏶);
+Test_N(q쏷, q쏷, q쏷, q쏷, q쏷);
+Test_N(q쏸, q쏸, q쏸, q쏸, q쏸);
+Test_N(q쏹, q쏹, q쏹, q쏹, q쏹);
+Test_N(q쏺, q쏺, q쏺, q쏺, q쏺);
+Test_N(q쏻, q쏻, q쏻, q쏻, q쏻);
+Test_N(q쏼, q쏼, q쏼, q쏼, q쏼);
+Test_N(q쏽, q쏽, q쏽, q쏽, q쏽);
+Test_N(q쏾, q쏾, q쏾, q쏾, q쏾);
+Test_N(q쏿, q쏿, q쏿, q쏿, q쏿);
+Test_N(q쐀, q쐀, q쐀, q쐀, q쐀);
+Test_N(q쐁, q쐁, q쐁, q쐁, q쐁);
+Test_N(q쐂, q쐂, q쐂, q쐂, q쐂);
+Test_N(q쐃, q쐃, q쐃, q쐃, q쐃);
+Test_N(q쐄, q쐄, q쐄, q쐄, q쐄);
+Test_N(q쐅, q쐅, q쐅, q쐅, q쐅);
+Test_N(q쐆, q쐆, q쐆, q쐆, q쐆);
+Test_N(q쐇, q쐇, q쐇, q쐇, q쐇);
+Test_N(q쐈, q쐈, q쐈, q쐈, q쐈);
+Test_N(q쐉, q쐉, q쐉, q쐉, q쐉);
+Test_N(q쐊, q쐊, q쐊, q쐊, q쐊);
+Test_N(q쐋, q쐋, q쐋, q쐋, q쐋);
+Test_N(q쐌, q쐌, q쐌, q쐌, q쐌);
+Test_N(q쐍, q쐍, q쐍, q쐍, q쐍);
+Test_N(q쐎, q쐎, q쐎, q쐎, q쐎);
+Test_N(q쐏, q쐏, q쐏, q쐏, q쐏);
+Test_N(q쐐, q쐐, q쐐, q쐐, q쐐);
+Test_N(q쐑, q쐑, q쐑, q쐑, q쐑);
+Test_N(q쐒, q쐒, q쐒, q쐒, q쐒);
+Test_N(q쐓, q쐓, q쐓, q쐓, q쐓);
+Test_N(q쐔, q쐔, q쐔, q쐔, q쐔);
+Test_N(q쐕, q쐕, q쐕, q쐕, q쐕);
+Test_N(q쐖, q쐖, q쐖, q쐖, q쐖);
+Test_N(q쐗, q쐗, q쐗, q쐗, q쐗);
+Test_N(q쐘, q쐘, q쐘, q쐘, q쐘);
+Test_N(q쐙, q쐙, q쐙, q쐙, q쐙);
+Test_N(q쐚, q쐚, q쐚, q쐚, q쐚);
+Test_N(q쐛, q쐛, q쐛, q쐛, q쐛);
+Test_N(q쐜, q쐜, q쐜, q쐜, q쐜);
+Test_N(q쐝, q쐝, q쐝, q쐝, q쐝);
+Test_N(q쐞, q쐞, q쐞, q쐞, q쐞);
+Test_N(q쐟, q쐟, q쐟, q쐟, q쐟);
+Test_N(q쐠, q쐠, q쐠, q쐠, q쐠);
+Test_N(q쐡, q쐡, q쐡, q쐡, q쐡);
+Test_N(q쐢, q쐢, q쐢, q쐢, q쐢);
+Test_N(q쐣, q쐣, q쐣, q쐣, q쐣);
+Test_N(q쐤, q쐤, q쐤, q쐤, q쐤);
+Test_N(q쐥, q쐥, q쐥, q쐥, q쐥);
+Test_N(q쐦, q쐦, q쐦, q쐦, q쐦);
+Test_N(q쐧, q쐧, q쐧, q쐧, q쐧);
+Test_N(q쐨, q쐨, q쐨, q쐨, q쐨);
+Test_N(q쐩, q쐩, q쐩, q쐩, q쐩);
+Test_N(q쐪, q쐪, q쐪, q쐪, q쐪);
+Test_N(q쐫, q쐫, q쐫, q쐫, q쐫);
+Test_N(q쐬, q쐬, q쐬, q쐬, q쐬);
+Test_N(q쐭, q쐭, q쐭, q쐭, q쐭);
+Test_N(q쐮, q쐮, q쐮, q쐮, q쐮);
+Test_N(q쐯, q쐯, q쐯, q쐯, q쐯);
+Test_N(q쐰, q쐰, q쐰, q쐰, q쐰);
+Test_N(q쐱, q쐱, q쐱, q쐱, q쐱);
+Test_N(q쐲, q쐲, q쐲, q쐲, q쐲);
+Test_N(q쐳, q쐳, q쐳, q쐳, q쐳);
+Test_N(q쐴, q쐴, q쐴, q쐴, q쐴);
+Test_N(q쐵, q쐵, q쐵, q쐵, q쐵);
+Test_N(q쐶, q쐶, q쐶, q쐶, q쐶);
+Test_N(q쐷, q쐷, q쐷, q쐷, q쐷);
+Test_N(q쐸, q쐸, q쐸, q쐸, q쐸);
+Test_N(q쐹, q쐹, q쐹, q쐹, q쐹);
+Test_N(q쐺, q쐺, q쐺, q쐺, q쐺);
+Test_N(q쐻, q쐻, q쐻, q쐻, q쐻);
+Test_N(q쐼, q쐼, q쐼, q쐼, q쐼);
+Test_N(q쐽, q쐽, q쐽, q쐽, q쐽);
+Test_N(q쐾, q쐾, q쐾, q쐾, q쐾);
+Test_N(q쐿, q쐿, q쐿, q쐿, q쐿);
+Test_N(q쑀, q쑀, q쑀, q쑀, q쑀);
+Test_N(q쑁, q쑁, q쑁, q쑁, q쑁);
+Test_N(q쑂, q쑂, q쑂, q쑂, q쑂);
+Test_N(q쑃, q쑃, q쑃, q쑃, q쑃);
+Test_N(q쑄, q쑄, q쑄, q쑄, q쑄);
+Test_N(q쑅, q쑅, q쑅, q쑅, q쑅);
+Test_N(q쑆, q쑆, q쑆, q쑆, q쑆);
+Test_N(q쑇, q쑇, q쑇, q쑇, q쑇);
+Test_N(q쑈, q쑈, q쑈, q쑈, q쑈);
+Test_N(q쑉, q쑉, q쑉, q쑉, q쑉);
+Test_N(q쑊, q쑊, q쑊, q쑊, q쑊);
+Test_N(q쑋, q쑋, q쑋, q쑋, q쑋);
+Test_N(q쑌, q쑌, q쑌, q쑌, q쑌);
+Test_N(q쑍, q쑍, q쑍, q쑍, q쑍);
+Test_N(q쑎, q쑎, q쑎, q쑎, q쑎);
+Test_N(q쑏, q쑏, q쑏, q쑏, q쑏);
+Test_N(q쑐, q쑐, q쑐, q쑐, q쑐);
+Test_N(q쑑, q쑑, q쑑, q쑑, q쑑);
+Test_N(q쑒, q쑒, q쑒, q쑒, q쑒);
+Test_N(q쑓, q쑓, q쑓, q쑓, q쑓);
+Test_N(q쑔, q쑔, q쑔, q쑔, q쑔);
+Test_N(q쑕, q쑕, q쑕, q쑕, q쑕);
+Test_N(q쑖, q쑖, q쑖, q쑖, q쑖);
+Test_N(q쑗, q쑗, q쑗, q쑗, q쑗);
+Test_N(q쑘, q쑘, q쑘, q쑘, q쑘);
+Test_N(q쑙, q쑙, q쑙, q쑙, q쑙);
+Test_N(q쑚, q쑚, q쑚, q쑚, q쑚);
+Test_N(q쑛, q쑛, q쑛, q쑛, q쑛);
+Test_N(q쑜, q쑜, q쑜, q쑜, q쑜);
+Test_N(q쑝, q쑝, q쑝, q쑝, q쑝);
+Test_N(q쑞, q쑞, q쑞, q쑞, q쑞);
+Test_N(q쑟, q쑟, q쑟, q쑟, q쑟);
+Test_N(q쑠, q쑠, q쑠, q쑠, q쑠);
+Test_N(q쑡, q쑡, q쑡, q쑡, q쑡);
+Test_N(q쑢, q쑢, q쑢, q쑢, q쑢);
+Test_N(q쑣, q쑣, q쑣, q쑣, q쑣);
+Test_N(q쑤, q쑤, q쑤, q쑤, q쑤);
+Test_N(q쑥, q쑥, q쑥, q쑥, q쑥);
+Test_N(q쑦, q쑦, q쑦, q쑦, q쑦);
+Test_N(q쑧, q쑧, q쑧, q쑧, q쑧);
+Test_N(q쑨, q쑨, q쑨, q쑨, q쑨);
+Test_N(q쑩, q쑩, q쑩, q쑩, q쑩);
+Test_N(q쑪, q쑪, q쑪, q쑪, q쑪);
+Test_N(q쑫, q쑫, q쑫, q쑫, q쑫);
+Test_N(q쑬, q쑬, q쑬, q쑬, q쑬);
+Test_N(q쑭, q쑭, q쑭, q쑭, q쑭);
+Test_N(q쑮, q쑮, q쑮, q쑮, q쑮);
+Test_N(q쑯, q쑯, q쑯, q쑯, q쑯);
+Test_N(q쑰, q쑰, q쑰, q쑰, q쑰);
+Test_N(q쑱, q쑱, q쑱, q쑱, q쑱);
+Test_N(q쑲, q쑲, q쑲, q쑲, q쑲);
+Test_N(q쑳, q쑳, q쑳, q쑳, q쑳);
+Test_N(q쑴, q쑴, q쑴, q쑴, q쑴);
+Test_N(q쑵, q쑵, q쑵, q쑵, q쑵);
+Test_N(q쑶, q쑶, q쑶, q쑶, q쑶);
+Test_N(q쑷, q쑷, q쑷, q쑷, q쑷);
+Test_N(q쑸, q쑸, q쑸, q쑸, q쑸);
+Test_N(q쑹, q쑹, q쑹, q쑹, q쑹);
+Test_N(q쑺, q쑺, q쑺, q쑺, q쑺);
+Test_N(q쑻, q쑻, q쑻, q쑻, q쑻);
+Test_N(q쑼, q쑼, q쑼, q쑼, q쑼);
+Test_N(q쑽, q쑽, q쑽, q쑽, q쑽);
+Test_N(q쑾, q쑾, q쑾, q쑾, q쑾);
+Test_N(q쑿, q쑿, q쑿, q쑿, q쑿);
+Test_N(q쒀, q쒀, q쒀, q쒀, q쒀);
+Test_N(q쒁, q쒁, q쒁, q쒁, q쒁);
+Test_N(q쒂, q쒂, q쒂, q쒂, q쒂);
+Test_N(q쒃, q쒃, q쒃, q쒃, q쒃);
+Test_N(q쒄, q쒄, q쒄, q쒄, q쒄);
+Test_N(q쒅, q쒅, q쒅, q쒅, q쒅);
+Test_N(q쒆, q쒆, q쒆, q쒆, q쒆);
+Test_N(q쒇, q쒇, q쒇, q쒇, q쒇);
+Test_N(q쒈, q쒈, q쒈, q쒈, q쒈);
+Test_N(q쒉, q쒉, q쒉, q쒉, q쒉);
+Test_N(q쒊, q쒊, q쒊, q쒊, q쒊);
+Test_N(q쒋, q쒋, q쒋, q쒋, q쒋);
+Test_N(q쒌, q쒌, q쒌, q쒌, q쒌);
+Test_N(q쒍, q쒍, q쒍, q쒍, q쒍);
+Test_N(q쒎, q쒎, q쒎, q쒎, q쒎);
+Test_N(q쒏, q쒏, q쒏, q쒏, q쒏);
+Test_N(q쒐, q쒐, q쒐, q쒐, q쒐);
+Test_N(q쒑, q쒑, q쒑, q쒑, q쒑);
+Test_N(q쒒, q쒒, q쒒, q쒒, q쒒);
+Test_N(q쒓, q쒓, q쒓, q쒓, q쒓);
+Test_N(q쒔, q쒔, q쒔, q쒔, q쒔);
+Test_N(q쒕, q쒕, q쒕, q쒕, q쒕);
+Test_N(q쒖, q쒖, q쒖, q쒖, q쒖);
+Test_N(q쒗, q쒗, q쒗, q쒗, q쒗);
+Test_N(q쒘, q쒘, q쒘, q쒘, q쒘);
+Test_N(q쒙, q쒙, q쒙, q쒙, q쒙);
+Test_N(q쒚, q쒚, q쒚, q쒚, q쒚);
+Test_N(q쒛, q쒛, q쒛, q쒛, q쒛);
+Test_N(q쒜, q쒜, q쒜, q쒜, q쒜);
+Test_N(q쒝, q쒝, q쒝, q쒝, q쒝);
+Test_N(q쒞, q쒞, q쒞, q쒞, q쒞);
+Test_N(q쒟, q쒟, q쒟, q쒟, q쒟);
+Test_N(q쒠, q쒠, q쒠, q쒠, q쒠);
+Test_N(q쒡, q쒡, q쒡, q쒡, q쒡);
+Test_N(q쒢, q쒢, q쒢, q쒢, q쒢);
+Test_N(q쒣, q쒣, q쒣, q쒣, q쒣);
+Test_N(q쒤, q쒤, q쒤, q쒤, q쒤);
+Test_N(q쒥, q쒥, q쒥, q쒥, q쒥);
+Test_N(q쒦, q쒦, q쒦, q쒦, q쒦);
+Test_N(q쒧, q쒧, q쒧, q쒧, q쒧);
+Test_N(q쒨, q쒨, q쒨, q쒨, q쒨);
+Test_N(q쒩, q쒩, q쒩, q쒩, q쒩);
+Test_N(q쒪, q쒪, q쒪, q쒪, q쒪);
+Test_N(q쒫, q쒫, q쒫, q쒫, q쒫);
+Test_N(q쒬, q쒬, q쒬, q쒬, q쒬);
+Test_N(q쒭, q쒭, q쒭, q쒭, q쒭);
+Test_N(q쒮, q쒮, q쒮, q쒮, q쒮);
+Test_N(q쒯, q쒯, q쒯, q쒯, q쒯);
+Test_N(q쒰, q쒰, q쒰, q쒰, q쒰);
+Test_N(q쒱, q쒱, q쒱, q쒱, q쒱);
+Test_N(q쒲, q쒲, q쒲, q쒲, q쒲);
+Test_N(q쒳, q쒳, q쒳, q쒳, q쒳);
+Test_N(q쒴, q쒴, q쒴, q쒴, q쒴);
+Test_N(q쒵, q쒵, q쒵, q쒵, q쒵);
+Test_N(q쒶, q쒶, q쒶, q쒶, q쒶);
+Test_N(q쒷, q쒷, q쒷, q쒷, q쒷);
+Test_N(q쒸, q쒸, q쒸, q쒸, q쒸);
+Test_N(q쒹, q쒹, q쒹, q쒹, q쒹);
+Test_N(q쒺, q쒺, q쒺, q쒺, q쒺);
+Test_N(q쒻, q쒻, q쒻, q쒻, q쒻);
+Test_N(q쒼, q쒼, q쒼, q쒼, q쒼);
+Test_N(q쒽, q쒽, q쒽, q쒽, q쒽);
+Test_N(q쒾, q쒾, q쒾, q쒾, q쒾);
+Test_N(q쒿, q쒿, q쒿, q쒿, q쒿);
+Test_N(q쓀, q쓀, q쓀, q쓀, q쓀);
+Test_N(q쓁, q쓁, q쓁, q쓁, q쓁);
+Test_N(q쓂, q쓂, q쓂, q쓂, q쓂);
+Test_N(q쓃, q쓃, q쓃, q쓃, q쓃);
+Test_N(q쓄, q쓄, q쓄, q쓄, q쓄);
+Test_N(q쓅, q쓅, q쓅, q쓅, q쓅);
+Test_N(q쓆, q쓆, q쓆, q쓆, q쓆);
+Test_N(q쓇, q쓇, q쓇, q쓇, q쓇);
+Test_N(q쓈, q쓈, q쓈, q쓈, q쓈);
+Test_N(q쓉, q쓉, q쓉, q쓉, q쓉);
+Test_N(q쓊, q쓊, q쓊, q쓊, q쓊);
+Test_N(q쓋, q쓋, q쓋, q쓋, q쓋);
+Test_N(q쓌, q쓌, q쓌, q쓌, q쓌);
+Test_N(q쓍, q쓍, q쓍, q쓍, q쓍);
+Test_N(q쓎, q쓎, q쓎, q쓎, q쓎);
+Test_N(q쓏, q쓏, q쓏, q쓏, q쓏);
+Test_N(q쓐, q쓐, q쓐, q쓐, q쓐);
+Test_N(q쓑, q쓑, q쓑, q쓑, q쓑);
+Test_N(q쓒, q쓒, q쓒, q쓒, q쓒);
+Test_N(q쓓, q쓓, q쓓, q쓓, q쓓);
+Test_N(q쓔, q쓔, q쓔, q쓔, q쓔);
+Test_N(q쓕, q쓕, q쓕, q쓕, q쓕);
+Test_N(q쓖, q쓖, q쓖, q쓖, q쓖);
+Test_N(q쓗, q쓗, q쓗, q쓗, q쓗);
+Test_N(q쓘, q쓘, q쓘, q쓘, q쓘);
+Test_N(q쓙, q쓙, q쓙, q쓙, q쓙);
+Test_N(q쓚, q쓚, q쓚, q쓚, q쓚);
+Test_N(q쓛, q쓛, q쓛, q쓛, q쓛);
+Test_N(q쓜, q쓜, q쓜, q쓜, q쓜);
+Test_N(q쓝, q쓝, q쓝, q쓝, q쓝);
+Test_N(q쓞, q쓞, q쓞, q쓞, q쓞);
+Test_N(q쓟, q쓟, q쓟, q쓟, q쓟);
+Test_N(q쓠, q쓠, q쓠, q쓠, q쓠);
+Test_N(q쓡, q쓡, q쓡, q쓡, q쓡);
+Test_N(q쓢, q쓢, q쓢, q쓢, q쓢);
+Test_N(q쓣, q쓣, q쓣, q쓣, q쓣);
+Test_N(q쓤, q쓤, q쓤, q쓤, q쓤);
+Test_N(q쓥, q쓥, q쓥, q쓥, q쓥);
+Test_N(q쓦, q쓦, q쓦, q쓦, q쓦);
+Test_N(q쓧, q쓧, q쓧, q쓧, q쓧);
+Test_N(q쓨, q쓨, q쓨, q쓨, q쓨);
+Test_N(q쓩, q쓩, q쓩, q쓩, q쓩);
+Test_N(q쓪, q쓪, q쓪, q쓪, q쓪);
+Test_N(q쓫, q쓫, q쓫, q쓫, q쓫);
+Test_N(q쓬, q쓬, q쓬, q쓬, q쓬);
+Test_N(q쓭, q쓭, q쓭, q쓭, q쓭);
+Test_N(q쓮, q쓮, q쓮, q쓮, q쓮);
+Test_N(q쓯, q쓯, q쓯, q쓯, q쓯);
+Test_N(q쓰, q쓰, q쓰, q쓰, q쓰);
+Test_N(q쓱, q쓱, q쓱, q쓱, q쓱);
+Test_N(q쓲, q쓲, q쓲, q쓲, q쓲);
+Test_N(q쓳, q쓳, q쓳, q쓳, q쓳);
+Test_N(q쓴, q쓴, q쓴, q쓴, q쓴);
+Test_N(q쓵, q쓵, q쓵, q쓵, q쓵);
+Test_N(q쓶, q쓶, q쓶, q쓶, q쓶);
+Test_N(q쓷, q쓷, q쓷, q쓷, q쓷);
+Test_N(q쓸, q쓸, q쓸, q쓸, q쓸);
+Test_N(q쓹, q쓹, q쓹, q쓹, q쓹);
+Test_N(q쓺, q쓺, q쓺, q쓺, q쓺);
+Test_N(q쓻, q쓻, q쓻, q쓻, q쓻);
+Test_N(q쓼, q쓼, q쓼, q쓼, q쓼);
+Test_N(q쓽, q쓽, q쓽, q쓽, q쓽);
+Test_N(q쓾, q쓾, q쓾, q쓾, q쓾);
+Test_N(q쓿, q쓿, q쓿, q쓿, q쓿);
+Test_N(q씀, q씀, q씀, q씀, q씀);
+Test_N(q씁, q씁, q씁, q씁, q씁);
+Test_N(q씂, q씂, q씂, q씂, q씂);
+Test_N(q씃, q씃, q씃, q씃, q씃);
+Test_N(q씄, q씄, q씄, q씄, q씄);
+Test_N(q씅, q씅, q씅, q씅, q씅);
+Test_N(q씆, q씆, q씆, q씆, q씆);
+Test_N(q씇, q씇, q씇, q씇, q씇);
+Test_N(q씈, q씈, q씈, q씈, q씈);
+Test_N(q씉, q씉, q씉, q씉, q씉);
+Test_N(q씊, q씊, q씊, q씊, q씊);
+Test_N(q씋, q씋, q씋, q씋, q씋);
+Test_N(q씌, q씌, q씌, q씌, q씌);
+Test_N(q씍, q씍, q씍, q씍, q씍);
+Test_N(q씎, q씎, q씎, q씎, q씎);
+Test_N(q씏, q씏, q씏, q씏, q씏);
+Test_N(q씐, q씐, q씐, q씐, q씐);
+Test_N(q씑, q씑, q씑, q씑, q씑);
+Test_N(q씒, q씒, q씒, q씒, q씒);
+Test_N(q씓, q씓, q씓, q씓, q씓);
+Test_N(q씔, q씔, q씔, q씔, q씔);
+Test_N(q씕, q씕, q씕, q씕, q씕);
+Test_N(q씖, q씖, q씖, q씖, q씖);
+Test_N(q씗, q씗, q씗, q씗, q씗);
+Test_N(q씘, q씘, q씘, q씘, q씘);
+Test_N(q씙, q씙, q씙, q씙, q씙);
+Test_N(q씚, q씚, q씚, q씚, q씚);
+Test_N(q씛, q씛, q씛, q씛, q씛);
+Test_N(q씜, q씜, q씜, q씜, q씜);
+Test_N(q씝, q씝, q씝, q씝, q씝);
+Test_N(q씞, q씞, q씞, q씞, q씞);
+Test_N(q씟, q씟, q씟, q씟, q씟);
+Test_N(q씠, q씠, q씠, q씠, q씠);
+Test_N(q씡, q씡, q씡, q씡, q씡);
+Test_N(q씢, q씢, q씢, q씢, q씢);
+Test_N(q씣, q씣, q씣, q씣, q씣);
+Test_N(q씤, q씤, q씤, q씤, q씤);
+Test_N(q씥, q씥, q씥, q씥, q씥);
+Test_N(q씦, q씦, q씦, q씦, q씦);
+Test_N(q씧, q씧, q씧, q씧, q씧);
+Test_N(q씨, q씨, q씨, q씨, q씨);
+Test_N(q씩, q씩, q씩, q씩, q씩);
+Test_N(q씪, q씪, q씪, q씪, q씪);
+Test_N(q씫, q씫, q씫, q씫, q씫);
+Test_N(q씬, q씬, q씬, q씬, q씬);
+Test_N(q씭, q씭, q씭, q씭, q씭);
+Test_N(q씮, q씮, q씮, q씮, q씮);
+Test_N(q씯, q씯, q씯, q씯, q씯);
+Test_N(q씰, q씰, q씰, q씰, q씰);
+Test_N(q씱, q씱, q씱, q씱, q씱);
+Test_N(q씲, q씲, q씲, q씲, q씲);
+Test_N(q씳, q씳, q씳, q씳, q씳);
+Test_N(q씴, q씴, q씴, q씴, q씴);
+Test_N(q씵, q씵, q씵, q씵, q씵);
+Test_N(q씶, q씶, q씶, q씶, q씶);
+Test_N(q씷, q씷, q씷, q씷, q씷);
+Test_N(q씸, q씸, q씸, q씸, q씸);
+Test_N(q씹, q씹, q씹, q씹, q씹);
+Test_N(q씺, q씺, q씺, q씺, q씺);
+Test_N(q씻, q씻, q씻, q씻, q씻);
+Test_N(q씼, q씼, q씼, q씼, q씼);
+Test_N(q씽, q씽, q씽, q씽, q씽);
+Test_N(q씾, q씾, q씾, q씾, q씾);
+Test_N(q씿, q씿, q씿, q씿, q씿);
+Test_N(q앀, q앀, q앀, q앀, q앀);
+Test_N(q앁, q앁, q앁, q앁, q앁);
+Test_N(q앂, q앂, q앂, q앂, q앂);
+Test_N(q앃, q앃, q앃, q앃, q앃);
+Test_N(q아, q아, q아, q아, q아);
+Test_N(q악, q악, q악, q악, q악);
+Test_N(q앆, q앆, q앆, q앆, q앆);
+Test_N(q앇, q앇, q앇, q앇, q앇);
+Test_N(q안, q안, q안, q안, q안);
+Test_N(q앉, q앉, q앉, q앉, q앉);
+Test_N(q않, q않, q않, q않, q않);
+Test_N(q앋, q앋, q앋, q앋, q앋);
+Test_N(q알, q알, q알, q알, q알);
+Test_N(q앍, q앍, q앍, q앍, q앍);
+Test_N(q앎, q앎, q앎, q앎, q앎);
+Test_N(q앏, q앏, q앏, q앏, q앏);
+Test_N(q앐, q앐, q앐, q앐, q앐);
+Test_N(q앑, q앑, q앑, q앑, q앑);
+Test_N(q앒, q앒, q앒, q앒, q앒);
+Test_N(q앓, q앓, q앓, q앓, q앓);
+Test_N(q암, q암, q암, q암, q암);
+Test_N(q압, q압, q압, q압, q압);
+Test_N(q앖, q앖, q앖, q앖, q앖);
+Test_N(q앗, q앗, q앗, q앗, q앗);
+Test_N(q았, q았, q았, q았, q았);
+Test_N(q앙, q앙, q앙, q앙, q앙);
+Test_N(q앚, q앚, q앚, q앚, q앚);
+Test_N(q앛, q앛, q앛, q앛, q앛);
+Test_N(q앜, q앜, q앜, q앜, q앜);
+Test_N(q앝, q앝, q앝, q앝, q앝);
+Test_N(q앞, q앞, q앞, q앞, q앞);
+Test_N(q앟, q앟, q앟, q앟, q앟);
+Test_N(q애, q애, q애, q애, q애);
+Test_N(q액, q액, q액, q액, q액);
+Test_N(q앢, q앢, q앢, q앢, q앢);
+Test_N(q앣, q앣, q앣, q앣, q앣);
+Test_N(q앤, q앤, q앤, q앤, q앤);
+Test_N(q앥, q앥, q앥, q앥, q앥);
+Test_N(q앦, q앦, q앦, q앦, q앦);
+Test_N(q앧, q앧, q앧, q앧, q앧);
+Test_N(q앨, q앨, q앨, q앨, q앨);
+Test_N(q앩, q앩, q앩, q앩, q앩);
+Test_N(q앪, q앪, q앪, q앪, q앪);
+Test_N(q앫, q앫, q앫, q앫, q앫);
+Test_N(q앬, q앬, q앬, q앬, q앬);
+Test_N(q앭, q앭, q앭, q앭, q앭);
+Test_N(q앮, q앮, q앮, q앮, q앮);
+Test_N(q앯, q앯, q앯, q앯, q앯);
+Test_N(q앰, q앰, q앰, q앰, q앰);
+Test_N(q앱, q앱, q앱, q앱, q앱);
+Test_N(q앲, q앲, q앲, q앲, q앲);
+Test_N(q앳, q앳, q앳, q앳, q앳);
+Test_N(q앴, q앴, q앴, q앴, q앴);
+Test_N(q앵, q앵, q앵, q앵, q앵);
+Test_N(q앶, q앶, q앶, q앶, q앶);
+Test_N(q앷, q앷, q앷, q앷, q앷);
+Test_N(q앸, q앸, q앸, q앸, q앸);
+Test_N(q앹, q앹, q앹, q앹, q앹);
+Test_N(q앺, q앺, q앺, q앺, q앺);
+Test_N(q앻, q앻, q앻, q앻, q앻);
+Test_N(q야, q야, q야, q야, q야);
+Test_N(q약, q약, q약, q약, q약);
+Test_N(q앾, q앾, q앾, q앾, q앾);
+Test_N(q앿, q앿, q앿, q앿, q앿);
+Test_N(q얀, q얀, q얀, q얀, q얀);
+Test_N(q얁, q얁, q얁, q얁, q얁);
+Test_N(q얂, q얂, q얂, q얂, q얂);
+Test_N(q얃, q얃, q얃, q얃, q얃);
+Test_N(q얄, q얄, q얄, q얄, q얄);
+Test_N(q얅, q얅, q얅, q얅, q얅);
+Test_N(q얆, q얆, q얆, q얆, q얆);
+Test_N(q얇, q얇, q얇, q얇, q얇);
+Test_N(q얈, q얈, q얈, q얈, q얈);
+Test_N(q얉, q얉, q얉, q얉, q얉);
+Test_N(q얊, q얊, q얊, q얊, q얊);
+Test_N(q얋, q얋, q얋, q얋, q얋);
+Test_N(q얌, q얌, q얌, q얌, q얌);
+Test_N(q얍, q얍, q얍, q얍, q얍);
+Test_N(q얎, q얎, q얎, q얎, q얎);
+Test_N(q얏, q얏, q얏, q얏, q얏);
+Test_N(q얐, q얐, q얐, q얐, q얐);
+Test_N(q양, q양, q양, q양, q양);
+Test_N(q얒, q얒, q얒, q얒, q얒);
+Test_N(q얓, q얓, q얓, q얓, q얓);
+Test_N(q얔, q얔, q얔, q얔, q얔);
+Test_N(q얕, q얕, q얕, q얕, q얕);
+Test_N(q얖, q얖, q얖, q얖, q얖);
+Test_N(q얗, q얗, q얗, q얗, q얗);
+Test_N(q얘, q얘, q얘, q얘, q얘);
+Test_N(q얙, q얙, q얙, q얙, q얙);
+Test_N(q얚, q얚, q얚, q얚, q얚);
+Test_N(q얛, q얛, q얛, q얛, q얛);
+Test_N(q얜, q얜, q얜, q얜, q얜);
+Test_N(q얝, q얝, q얝, q얝, q얝);
+Test_N(q얞, q얞, q얞, q얞, q얞);
+Test_N(q얟, q얟, q얟, q얟, q얟);
+Test_N(q얠, q얠, q얠, q얠, q얠);
+Test_N(q얡, q얡, q얡, q얡, q얡);
+Test_N(q얢, q얢, q얢, q얢, q얢);
+Test_N(q얣, q얣, q얣, q얣, q얣);
+Test_N(q얤, q얤, q얤, q얤, q얤);
+Test_N(q얥, q얥, q얥, q얥, q얥);
+Test_N(q얦, q얦, q얦, q얦, q얦);
+Test_N(q얧, q얧, q얧, q얧, q얧);
+Test_N(q얨, q얨, q얨, q얨, q얨);
+Test_N(q얩, q얩, q얩, q얩, q얩);
+Test_N(q얪, q얪, q얪, q얪, q얪);
+Test_N(q얫, q얫, q얫, q얫, q얫);
+Test_N(q얬, q얬, q얬, q얬, q얬);
+Test_N(q얭, q얭, q얭, q얭, q얭);
+Test_N(q얮, q얮, q얮, q얮, q얮);
+Test_N(q얯, q얯, q얯, q얯, q얯);
+Test_N(q얰, q얰, q얰, q얰, q얰);
+Test_N(q얱, q얱, q얱, q얱, q얱);
+Test_N(q얲, q얲, q얲, q얲, q얲);
+Test_N(q얳, q얳, q얳, q얳, q얳);
+Test_N(q어, q어, q어, q어, q어);
+Test_N(q억, q억, q억, q억, q억);
+Test_N(q얶, q얶, q얶, q얶, q얶);
+Test_N(q얷, q얷, q얷, q얷, q얷);
+Test_N(q언, q언, q언, q언, q언);
+Test_N(q얹, q얹, q얹, q얹, q얹);
+Test_N(q얺, q얺, q얺, q얺, q얺);
+Test_N(q얻, q얻, q얻, q얻, q얻);
+Test_N(q얼, q얼, q얼, q얼, q얼);
+Test_N(q얽, q얽, q얽, q얽, q얽);
+Test_N(q얾, q얾, q얾, q얾, q얾);
+Test_N(q얿, q얿, q얿, q얿, q얿);
+Test_N(q엀, q엀, q엀, q엀, q엀);
+Test_N(q엁, q엁, q엁, q엁, q엁);
+Test_N(q엂, q엂, q엂, q엂, q엂);
+Test_N(q엃, q엃, q엃, q엃, q엃);
+Test_N(q엄, q엄, q엄, q엄, q엄);
+Test_N(q업, q업, q업, q업, q업);
+Test_N(q없, q없, q없, q없, q없);
+Test_N(q엇, q엇, q엇, q엇, q엇);
+Test_N(q었, q었, q었, q었, q었);
+Test_N(q엉, q엉, q엉, q엉, q엉);
+Test_N(q엊, q엊, q엊, q엊, q엊);
+Test_N(q엋, q엋, q엋, q엋, q엋);
+Test_N(q엌, q엌, q엌, q엌, q엌);
+Test_N(q엍, q엍, q엍, q엍, q엍);
+Test_N(q엎, q엎, q엎, q엎, q엎);
+Test_N(q엏, q엏, q엏, q엏, q엏);
+Test_N(q에, q에, q에, q에, q에);
+Test_N(q엑, q엑, q엑, q엑, q엑);
+Test_N(q엒, q엒, q엒, q엒, q엒);
+Test_N(q엓, q엓, q엓, q엓, q엓);
+Test_N(q엔, q엔, q엔, q엔, q엔);
+Test_N(q엕, q엕, q엕, q엕, q엕);
+Test_N(q엖, q엖, q엖, q엖, q엖);
+Test_N(q엗, q엗, q엗, q엗, q엗);
+Test_N(q엘, q엘, q엘, q엘, q엘);
+Test_N(q엙, q엙, q엙, q엙, q엙);
+Test_N(q엚, q엚, q엚, q엚, q엚);
+Test_N(q엛, q엛, q엛, q엛, q엛);
+Test_N(q엜, q엜, q엜, q엜, q엜);
+Test_N(q엝, q엝, q엝, q엝, q엝);
+Test_N(q엞, q엞, q엞, q엞, q엞);
+Test_N(q엟, q엟, q엟, q엟, q엟);
+Test_N(q엠, q엠, q엠, q엠, q엠);
+Test_N(q엡, q엡, q엡, q엡, q엡);
+Test_N(q엢, q엢, q엢, q엢, q엢);
+Test_N(q엣, q엣, q엣, q엣, q엣);
+Test_N(q엤, q엤, q엤, q엤, q엤);
+Test_N(q엥, q엥, q엥, q엥, q엥);
+Test_N(q엦, q엦, q엦, q엦, q엦);
+Test_N(q엧, q엧, q엧, q엧, q엧);
+Test_N(q엨, q엨, q엨, q엨, q엨);
+Test_N(q엩, q엩, q엩, q엩, q엩);
+Test_N(q엪, q엪, q엪, q엪, q엪);
+Test_N(q엫, q엫, q엫, q엫, q엫);
+Test_N(q여, q여, q여, q여, q여);
+Test_N(q역, q역, q역, q역, q역);
+Test_N(q엮, q엮, q엮, q엮, q엮);
+Test_N(q엯, q엯, q엯, q엯, q엯);
+Test_N(q연, q연, q연, q연, q연);
+Test_N(q엱, q엱, q엱, q엱, q엱);
+Test_N(q엲, q엲, q엲, q엲, q엲);
+Test_N(q엳, q엳, q엳, q엳, q엳);
+Test_N(q열, q열, q열, q열, q열);
+Test_N(q엵, q엵, q엵, q엵, q엵);
+Test_N(q엶, q엶, q엶, q엶, q엶);
+Test_N(q엷, q엷, q엷, q엷, q엷);
+Test_N(q엸, q엸, q엸, q엸, q엸);
+Test_N(q엹, q엹, q엹, q엹, q엹);
+Test_N(q엺, q엺, q엺, q엺, q엺);
+Test_N(q엻, q엻, q엻, q엻, q엻);
+Test_N(q염, q염, q염, q염, q염);
+Test_N(q엽, q엽, q엽, q엽, q엽);
+Test_N(q엾, q엾, q엾, q엾, q엾);
+Test_N(q엿, q엿, q엿, q엿, q엿);
+Test_N(q였, q였, q였, q였, q였);
+Test_N(q영, q영, q영, q영, q영);
+Test_N(q옂, q옂, q옂, q옂, q옂);
+Test_N(q옃, q옃, q옃, q옃, q옃);
+Test_N(q옄, q옄, q옄, q옄, q옄);
+Test_N(q옅, q옅, q옅, q옅, q옅);
+Test_N(q옆, q옆, q옆, q옆, q옆);
+Test_N(q옇, q옇, q옇, q옇, q옇);
+Test_N(q예, q예, q예, q예, q예);
+Test_N(q옉, q옉, q옉, q옉, q옉);
+Test_N(q옊, q옊, q옊, q옊, q옊);
+Test_N(q옋, q옋, q옋, q옋, q옋);
+Test_N(q옌, q옌, q옌, q옌, q옌);
+Test_N(q옍, q옍, q옍, q옍, q옍);
+Test_N(q옎, q옎, q옎, q옎, q옎);
+Test_N(q옏, q옏, q옏, q옏, q옏);
+Test_N(q옐, q옐, q옐, q옐, q옐);
+Test_N(q옑, q옑, q옑, q옑, q옑);
+Test_N(q옒, q옒, q옒, q옒, q옒);
+Test_N(q옓, q옓, q옓, q옓, q옓);
+Test_N(q옔, q옔, q옔, q옔, q옔);
+Test_N(q옕, q옕, q옕, q옕, q옕);
+Test_N(q옖, q옖, q옖, q옖, q옖);
+Test_N(q옗, q옗, q옗, q옗, q옗);
+Test_N(q옘, q옘, q옘, q옘, q옘);
+Test_N(q옙, q옙, q옙, q옙, q옙);
+Test_N(q옚, q옚, q옚, q옚, q옚);
+Test_N(q옛, q옛, q옛, q옛, q옛);
+Test_N(q옜, q옜, q옜, q옜, q옜);
+Test_N(q옝, q옝, q옝, q옝, q옝);
+Test_N(q옞, q옞, q옞, q옞, q옞);
+Test_N(q옟, q옟, q옟, q옟, q옟);
+Test_N(q옠, q옠, q옠, q옠, q옠);
+Test_N(q옡, q옡, q옡, q옡, q옡);
+Test_N(q옢, q옢, q옢, q옢, q옢);
+Test_N(q옣, q옣, q옣, q옣, q옣);
+Test_N(q오, q오, q오, q오, q오);
+Test_N(q옥, q옥, q옥, q옥, q옥);
+Test_N(q옦, q옦, q옦, q옦, q옦);
+Test_N(q옧, q옧, q옧, q옧, q옧);
+Test_N(q온, q온, q온, q온, q온);
+Test_N(q옩, q옩, q옩, q옩, q옩);
+Test_N(q옪, q옪, q옪, q옪, q옪);
+Test_N(q옫, q옫, q옫, q옫, q옫);
+Test_N(q올, q올, q올, q올, q올);
+Test_N(q옭, q옭, q옭, q옭, q옭);
+Test_N(q옮, q옮, q옮, q옮, q옮);
+Test_N(q옯, q옯, q옯, q옯, q옯);
+Test_N(q옰, q옰, q옰, q옰, q옰);
+Test_N(q옱, q옱, q옱, q옱, q옱);
+Test_N(q옲, q옲, q옲, q옲, q옲);
+Test_N(q옳, q옳, q옳, q옳, q옳);
+Test_N(q옴, q옴, q옴, q옴, q옴);
+Test_N(q옵, q옵, q옵, q옵, q옵);
+Test_N(q옶, q옶, q옶, q옶, q옶);
+Test_N(q옷, q옷, q옷, q옷, q옷);
+Test_N(q옸, q옸, q옸, q옸, q옸);
+Test_N(q옹, q옹, q옹, q옹, q옹);
+Test_N(q옺, q옺, q옺, q옺, q옺);
+Test_N(q옻, q옻, q옻, q옻, q옻);
+Test_N(q옼, q옼, q옼, q옼, q옼);
+Test_N(q옽, q옽, q옽, q옽, q옽);
+Test_N(q옾, q옾, q옾, q옾, q옾);
+Test_N(q옿, q옿, q옿, q옿, q옿);
+Test_N(q와, q와, q와, q와, q와);
+Test_N(q왁, q왁, q왁, q왁, q왁);
+Test_N(q왂, q왂, q왂, q왂, q왂);
+Test_N(q왃, q왃, q왃, q왃, q왃);
+Test_N(q완, q완, q완, q완, q완);
+Test_N(q왅, q왅, q왅, q왅, q왅);
+Test_N(q왆, q왆, q왆, q왆, q왆);
+Test_N(q왇, q왇, q왇, q왇, q왇);
+Test_N(q왈, q왈, q왈, q왈, q왈);
+Test_N(q왉, q왉, q왉, q왉, q왉);
+Test_N(q왊, q왊, q왊, q왊, q왊);
+Test_N(q왋, q왋, q왋, q왋, q왋);
+Test_N(q왌, q왌, q왌, q왌, q왌);
+Test_N(q왍, q왍, q왍, q왍, q왍);
+Test_N(q왎, q왎, q왎, q왎, q왎);
+Test_N(q왏, q왏, q왏, q왏, q왏);
+Test_N(q왐, q왐, q왐, q왐, q왐);
+Test_N(q왑, q왑, q왑, q왑, q왑);
+Test_N(q왒, q왒, q왒, q왒, q왒);
+Test_N(q왓, q왓, q왓, q왓, q왓);
+Test_N(q왔, q왔, q왔, q왔, q왔);
+Test_N(q왕, q왕, q왕, q왕, q왕);
+Test_N(q왖, q왖, q왖, q왖, q왖);
+Test_N(q왗, q왗, q왗, q왗, q왗);
+Test_N(q왘, q왘, q왘, q왘, q왘);
+Test_N(q왙, q왙, q왙, q왙, q왙);
+Test_N(q왚, q왚, q왚, q왚, q왚);
+Test_N(q왛, q왛, q왛, q왛, q왛);
+Test_N(q왜, q왜, q왜, q왜, q왜);
+Test_N(q왝, q왝, q왝, q왝, q왝);
+Test_N(q왞, q왞, q왞, q왞, q왞);
+Test_N(q왟, q왟, q왟, q왟, q왟);
+Test_N(q왠, q왠, q왠, q왠, q왠);
+Test_N(q왡, q왡, q왡, q왡, q왡);
+Test_N(q왢, q왢, q왢, q왢, q왢);
+Test_N(q왣, q왣, q왣, q왣, q왣);
+Test_N(q왤, q왤, q왤, q왤, q왤);
+Test_N(q왥, q왥, q왥, q왥, q왥);
+Test_N(q왦, q왦, q왦, q왦, q왦);
+Test_N(q왧, q왧, q왧, q왧, q왧);
+Test_N(q왨, q왨, q왨, q왨, q왨);
+Test_N(q왩, q왩, q왩, q왩, q왩);
+Test_N(q왪, q왪, q왪, q왪, q왪);
+Test_N(q왫, q왫, q왫, q왫, q왫);
+Test_N(q왬, q왬, q왬, q왬, q왬);
+Test_N(q왭, q왭, q왭, q왭, q왭);
+Test_N(q왮, q왮, q왮, q왮, q왮);
+Test_N(q왯, q왯, q왯, q왯, q왯);
+Test_N(q왰, q왰, q왰, q왰, q왰);
+Test_N(q왱, q왱, q왱, q왱, q왱);
+Test_N(q왲, q왲, q왲, q왲, q왲);
+Test_N(q왳, q왳, q왳, q왳, q왳);
+Test_N(q왴, q왴, q왴, q왴, q왴);
+Test_N(q왵, q왵, q왵, q왵, q왵);
+Test_N(q왶, q왶, q왶, q왶, q왶);
+Test_N(q왷, q왷, q왷, q왷, q왷);
+Test_N(q외, q외, q외, q외, q외);
+Test_N(q왹, q왹, q왹, q왹, q왹);
+Test_N(q왺, q왺, q왺, q왺, q왺);
+Test_N(q왻, q왻, q왻, q왻, q왻);
+Test_N(q왼, q왼, q왼, q왼, q왼);
+Test_N(q왽, q왽, q왽, q왽, q왽);
+Test_N(q왾, q왾, q왾, q왾, q왾);
+Test_N(q왿, q왿, q왿, q왿, q왿);
+Test_N(q욀, q욀, q욀, q욀, q욀);
+Test_N(q욁, q욁, q욁, q욁, q욁);
+Test_N(q욂, q욂, q욂, q욂, q욂);
+Test_N(q욃, q욃, q욃, q욃, q욃);
+Test_N(q욄, q욄, q욄, q욄, q욄);
+Test_N(q욅, q욅, q욅, q욅, q욅);
+Test_N(q욆, q욆, q욆, q욆, q욆);
+Test_N(q욇, q욇, q욇, q욇, q욇);
+Test_N(q욈, q욈, q욈, q욈, q욈);
+Test_N(q욉, q욉, q욉, q욉, q욉);
+Test_N(q욊, q욊, q욊, q욊, q욊);
+Test_N(q욋, q욋, q욋, q욋, q욋);
+Test_N(q욌, q욌, q욌, q욌, q욌);
+Test_N(q욍, q욍, q욍, q욍, q욍);
+Test_N(q욎, q욎, q욎, q욎, q욎);
+Test_N(q욏, q욏, q욏, q욏, q욏);
+Test_N(q욐, q욐, q욐, q욐, q욐);
+Test_N(q욑, q욑, q욑, q욑, q욑);
+Test_N(q욒, q욒, q욒, q욒, q욒);
+Test_N(q욓, q욓, q욓, q욓, q욓);
+Test_N(q요, q요, q요, q요, q요);
+Test_N(q욕, q욕, q욕, q욕, q욕);
+Test_N(q욖, q욖, q욖, q욖, q욖);
+Test_N(q욗, q욗, q욗, q욗, q욗);
+Test_N(q욘, q욘, q욘, q욘, q욘);
+Test_N(q욙, q욙, q욙, q욙, q욙);
+Test_N(q욚, q욚, q욚, q욚, q욚);
+Test_N(q욛, q욛, q욛, q욛, q욛);
+Test_N(q욜, q욜, q욜, q욜, q욜);
+Test_N(q욝, q욝, q욝, q욝, q욝);
+Test_N(q욞, q욞, q욞, q욞, q욞);
+Test_N(q욟, q욟, q욟, q욟, q욟);
+Test_N(q욠, q욠, q욠, q욠, q욠);
+Test_N(q욡, q욡, q욡, q욡, q욡);
+Test_N(q욢, q욢, q욢, q욢, q욢);
+Test_N(q욣, q욣, q욣, q욣, q욣);
+Test_N(q욤, q욤, q욤, q욤, q욤);
+Test_N(q욥, q욥, q욥, q욥, q욥);
+Test_N(q욦, q욦, q욦, q욦, q욦);
+Test_N(q욧, q욧, q욧, q욧, q욧);
+Test_N(q욨, q욨, q욨, q욨, q욨);
+Test_N(q용, q용, q용, q용, q용);
+Test_N(q욪, q욪, q욪, q욪, q욪);
+Test_N(q욫, q욫, q욫, q욫, q욫);
+Test_N(q욬, q욬, q욬, q욬, q욬);
+Test_N(q욭, q욭, q욭, q욭, q욭);
+Test_N(q욮, q욮, q욮, q욮, q욮);
+Test_N(q욯, q욯, q욯, q욯, q욯);
+Test_N(q우, q우, q우, q우, q우);
+Test_N(q욱, q욱, q욱, q욱, q욱);
+Test_N(q욲, q욲, q욲, q욲, q욲);
+Test_N(q욳, q욳, q욳, q욳, q욳);
+Test_N(q운, q운, q운, q운, q운);
+Test_N(q욵, q욵, q욵, q욵, q욵);
+Test_N(q욶, q욶, q욶, q욶, q욶);
+Test_N(q욷, q욷, q욷, q욷, q욷);
+Test_N(q울, q울, q울, q울, q울);
+Test_N(q욹, q욹, q욹, q욹, q욹);
+Test_N(q욺, q욺, q욺, q욺, q욺);
+Test_N(q욻, q욻, q욻, q욻, q욻);
+Test_N(q욼, q욼, q욼, q욼, q욼);
+Test_N(q욽, q욽, q욽, q욽, q욽);
+Test_N(q욾, q욾, q욾, q욾, q욾);
+Test_N(q욿, q욿, q욿, q욿, q욿);
+Test_N(q움, q움, q움, q움, q움);
+Test_N(q웁, q웁, q웁, q웁, q웁);
+Test_N(q웂, q웂, q웂, q웂, q웂);
+Test_N(q웃, q웃, q웃, q웃, q웃);
+Test_N(q웄, q웄, q웄, q웄, q웄);
+Test_N(q웅, q웅, q웅, q웅, q웅);
+Test_N(q웆, q웆, q웆, q웆, q웆);
+Test_N(q웇, q웇, q웇, q웇, q웇);
+Test_N(q웈, q웈, q웈, q웈, q웈);
+Test_N(q웉, q웉, q웉, q웉, q웉);
+Test_N(q웊, q웊, q웊, q웊, q웊);
+Test_N(q웋, q웋, q웋, q웋, q웋);
+Test_N(q워, q워, q워, q워, q워);
+Test_N(q웍, q웍, q웍, q웍, q웍);
+Test_N(q웎, q웎, q웎, q웎, q웎);
+Test_N(q웏, q웏, q웏, q웏, q웏);
+Test_N(q원, q원, q원, q원, q원);
+Test_N(q웑, q웑, q웑, q웑, q웑);
+Test_N(q웒, q웒, q웒, q웒, q웒);
+Test_N(q웓, q웓, q웓, q웓, q웓);
+Test_N(q월, q월, q월, q월, q월);
+Test_N(q웕, q웕, q웕, q웕, q웕);
+Test_N(q웖, q웖, q웖, q웖, q웖);
+Test_N(q웗, q웗, q웗, q웗, q웗);
+Test_N(q웘, q웘, q웘, q웘, q웘);
+Test_N(q웙, q웙, q웙, q웙, q웙);
+Test_N(q웚, q웚, q웚, q웚, q웚);
+Test_N(q웛, q웛, q웛, q웛, q웛);
+Test_N(q웜, q웜, q웜, q웜, q웜);
+Test_N(q웝, q웝, q웝, q웝, q웝);
+Test_N(q웞, q웞, q웞, q웞, q웞);
+Test_N(q웟, q웟, q웟, q웟, q웟);
+Test_N(q웠, q웠, q웠, q웠, q웠);
+Test_N(q웡, q웡, q웡, q웡, q웡);
+Test_N(q웢, q웢, q웢, q웢, q웢);
+Test_N(q웣, q웣, q웣, q웣, q웣);
+Test_N(q웤, q웤, q웤, q웤, q웤);
+Test_N(q웥, q웥, q웥, q웥, q웥);
+Test_N(q웦, q웦, q웦, q웦, q웦);
+Test_N(q웧, q웧, q웧, q웧, q웧);
+Test_N(q웨, q웨, q웨, q웨, q웨);
+Test_N(q웩, q웩, q웩, q웩, q웩);
+Test_N(q웪, q웪, q웪, q웪, q웪);
+Test_N(q웫, q웫, q웫, q웫, q웫);
+Test_N(q웬, q웬, q웬, q웬, q웬);
+Test_N(q웭, q웭, q웭, q웭, q웭);
+Test_N(q웮, q웮, q웮, q웮, q웮);
+Test_N(q웯, q웯, q웯, q웯, q웯);
+Test_N(q웰, q웰, q웰, q웰, q웰);
+Test_N(q웱, q웱, q웱, q웱, q웱);
+Test_N(q웲, q웲, q웲, q웲, q웲);
+Test_N(q웳, q웳, q웳, q웳, q웳);
+Test_N(q웴, q웴, q웴, q웴, q웴);
+Test_N(q웵, q웵, q웵, q웵, q웵);
+Test_N(q웶, q웶, q웶, q웶, q웶);
+Test_N(q웷, q웷, q웷, q웷, q웷);
+Test_N(q웸, q웸, q웸, q웸, q웸);
+Test_N(q웹, q웹, q웹, q웹, q웹);
+Test_N(q웺, q웺, q웺, q웺, q웺);
+Test_N(q웻, q웻, q웻, q웻, q웻);
+Test_N(q웼, q웼, q웼, q웼, q웼);
+Test_N(q웽, q웽, q웽, q웽, q웽);
+Test_N(q웾, q웾, q웾, q웾, q웾);
+Test_N(q웿, q웿, q웿, q웿, q웿);
+Test_N(q윀, q윀, q윀, q윀, q윀);
+Test_N(q윁, q윁, q윁, q윁, q윁);
+Test_N(q윂, q윂, q윂, q윂, q윂);
+Test_N(q윃, q윃, q윃, q윃, q윃);
+Test_N(q위, q위, q위, q위, q위);
+Test_N(q윅, q윅, q윅, q윅, q윅);
+Test_N(q윆, q윆, q윆, q윆, q윆);
+Test_N(q윇, q윇, q윇, q윇, q윇);
+Test_N(q윈, q윈, q윈, q윈, q윈);
+Test_N(q윉, q윉, q윉, q윉, q윉);
+Test_N(q윊, q윊, q윊, q윊, q윊);
+Test_N(q윋, q윋, q윋, q윋, q윋);
+Test_N(q윌, q윌, q윌, q윌, q윌);
+Test_N(q윍, q윍, q윍, q윍, q윍);
+Test_N(q윎, q윎, q윎, q윎, q윎);
+Test_N(q윏, q윏, q윏, q윏, q윏);
+Test_N(q윐, q윐, q윐, q윐, q윐);
+Test_N(q윑, q윑, q윑, q윑, q윑);
+Test_N(q윒, q윒, q윒, q윒, q윒);
+Test_N(q윓, q윓, q윓, q윓, q윓);
+Test_N(q윔, q윔, q윔, q윔, q윔);
+Test_N(q윕, q윕, q윕, q윕, q윕);
+Test_N(q윖, q윖, q윖, q윖, q윖);
+Test_N(q윗, q윗, q윗, q윗, q윗);
+Test_N(q윘, q윘, q윘, q윘, q윘);
+Test_N(q윙, q윙, q윙, q윙, q윙);
+Test_N(q윚, q윚, q윚, q윚, q윚);
+Test_N(q윛, q윛, q윛, q윛, q윛);
+Test_N(q윜, q윜, q윜, q윜, q윜);
+Test_N(q윝, q윝, q윝, q윝, q윝);
+Test_N(q윞, q윞, q윞, q윞, q윞);
+Test_N(q윟, q윟, q윟, q윟, q윟);
+Test_N(q유, q유, q유, q유, q유);
+Test_N(q육, q육, q육, q육, q육);
+Test_N(q윢, q윢, q윢, q윢, q윢);
+Test_N(q윣, q윣, q윣, q윣, q윣);
+Test_N(q윤, q윤, q윤, q윤, q윤);
+Test_N(q윥, q윥, q윥, q윥, q윥);
+Test_N(q윦, q윦, q윦, q윦, q윦);
+Test_N(q윧, q윧, q윧, q윧, q윧);
+Test_N(q율, q율, q율, q율, q율);
+Test_N(q윩, q윩, q윩, q윩, q윩);
+Test_N(q윪, q윪, q윪, q윪, q윪);
+Test_N(q윫, q윫, q윫, q윫, q윫);
+Test_N(q윬, q윬, q윬, q윬, q윬);
+Test_N(q윭, q윭, q윭, q윭, q윭);
+Test_N(q윮, q윮, q윮, q윮, q윮);
+Test_N(q윯, q윯, q윯, q윯, q윯);
+Test_N(q윰, q윰, q윰, q윰, q윰);
+Test_N(q윱, q윱, q윱, q윱, q윱);
+Test_N(q윲, q윲, q윲, q윲, q윲);
+Test_N(q윳, q윳, q윳, q윳, q윳);
+Test_N(q윴, q윴, q윴, q윴, q윴);
+Test_N(q융, q융, q융, q융, q융);
+Test_N(q윶, q윶, q윶, q윶, q윶);
+Test_N(q윷, q윷, q윷, q윷, q윷);
+Test_N(q윸, q윸, q윸, q윸, q윸);
+Test_N(q윹, q윹, q윹, q윹, q윹);
+Test_N(q윺, q윺, q윺, q윺, q윺);
+Test_N(q윻, q윻, q윻, q윻, q윻);
+Test_N(q으, q으, q으, q으, q으);
+Test_N(q윽, q윽, q윽, q윽, q윽);
+Test_N(q윾, q윾, q윾, q윾, q윾);
+Test_N(q윿, q윿, q윿, q윿, q윿);
+Test_N(q은, q은, q은, q은, q은);
+Test_N(q읁, q읁, q읁, q읁, q읁);
+Test_N(q읂, q읂, q읂, q읂, q읂);
+Test_N(q읃, q읃, q읃, q읃, q읃);
+Test_N(q을, q을, q을, q을, q을);
+Test_N(q읅, q읅, q읅, q읅, q읅);
+Test_N(q읆, q읆, q읆, q읆, q읆);
+Test_N(q읇, q읇, q읇, q읇, q읇);
+Test_N(q읈, q읈, q읈, q읈, q읈);
+Test_N(q읉, q읉, q읉, q읉, q읉);
+Test_N(q읊, q읊, q읊, q읊, q읊);
+Test_N(q읋, q읋, q읋, q읋, q읋);
+Test_N(q음, q음, q음, q음, q음);
+Test_N(q읍, q읍, q읍, q읍, q읍);
+Test_N(q읎, q읎, q읎, q읎, q읎);
+Test_N(q읏, q읏, q읏, q읏, q읏);
+Test_N(q읐, q읐, q읐, q읐, q읐);
+Test_N(q응, q응, q응, q응, q응);
+Test_N(q읒, q읒, q읒, q읒, q읒);
+Test_N(q읓, q읓, q읓, q읓, q읓);
+Test_N(q읔, q읔, q읔, q읔, q읔);
+Test_N(q읕, q읕, q읕, q읕, q읕);
+Test_N(q읖, q읖, q읖, q읖, q읖);
+Test_N(q읗, q읗, q읗, q읗, q읗);
+Test_N(q의, q의, q의, q의, q의);
+Test_N(q읙, q읙, q읙, q읙, q읙);
+Test_N(q읚, q읚, q읚, q읚, q읚);
+Test_N(q읛, q읛, q읛, q읛, q읛);
+Test_N(q읜, q읜, q읜, q읜, q읜);
+Test_N(q읝, q읝, q읝, q읝, q읝);
+Test_N(q읞, q읞, q읞, q읞, q읞);
+Test_N(q읟, q읟, q읟, q읟, q읟);
+Test_N(q읠, q읠, q읠, q읠, q읠);
+Test_N(q읡, q읡, q읡, q읡, q읡);
+Test_N(q읢, q읢, q읢, q읢, q읢);
+Test_N(q읣, q읣, q읣, q읣, q읣);
+Test_N(q읤, q읤, q읤, q읤, q읤);
+Test_N(q읥, q읥, q읥, q읥, q읥);
+Test_N(q읦, q읦, q읦, q읦, q읦);
+Test_N(q읧, q읧, q읧, q읧, q읧);
+Test_N(q읨, q읨, q읨, q읨, q읨);
+Test_N(q읩, q읩, q읩, q읩, q읩);
+Test_N(q읪, q읪, q읪, q읪, q읪);
+Test_N(q읫, q읫, q읫, q읫, q읫);
+Test_N(q읬, q읬, q읬, q읬, q읬);
+Test_N(q읭, q읭, q읭, q읭, q읭);
+Test_N(q읮, q읮, q읮, q읮, q읮);
+Test_N(q읯, q읯, q읯, q읯, q읯);
+Test_N(q읰, q읰, q읰, q읰, q읰);
+Test_N(q읱, q읱, q읱, q읱, q읱);
+Test_N(q읲, q읲, q읲, q읲, q읲);
+Test_N(q읳, q읳, q읳, q읳, q읳);
+Test_N(q이, q이, q이, q이, q이);
+Test_N(q익, q익, q익, q익, q익);
+Test_N(q읶, q읶, q읶, q읶, q읶);
+Test_N(q읷, q읷, q읷, q읷, q읷);
+Test_N(q인, q인, q인, q인, q인);
+Test_N(q읹, q읹, q읹, q읹, q읹);
+Test_N(q읺, q읺, q읺, q읺, q읺);
+Test_N(q읻, q읻, q읻, q읻, q읻);
+Test_N(q일, q일, q일, q일, q일);
+Test_N(q읽, q읽, q읽, q읽, q읽);
+Test_N(q읾, q읾, q읾, q읾, q읾);
+Test_N(q읿, q읿, q읿, q읿, q읿);
+Test_N(q잀, q잀, q잀, q잀, q잀);
+Test_N(q잁, q잁, q잁, q잁, q잁);
+Test_N(q잂, q잂, q잂, q잂, q잂);
+Test_N(q잃, q잃, q잃, q잃, q잃);
+Test_N(q임, q임, q임, q임, q임);
+Test_N(q입, q입, q입, q입, q입);
+Test_N(q잆, q잆, q잆, q잆, q잆);
+Test_N(q잇, q잇, q잇, q잇, q잇);
+Test_N(q있, q있, q있, q있, q있);
+Test_N(q잉, q잉, q잉, q잉, q잉);
+Test_N(q잊, q잊, q잊, q잊, q잊);
+Test_N(q잋, q잋, q잋, q잋, q잋);
+Test_N(q잌, q잌, q잌, q잌, q잌);
+Test_N(q잍, q잍, q잍, q잍, q잍);
+Test_N(q잎, q잎, q잎, q잎, q잎);
+Test_N(q잏, q잏, q잏, q잏, q잏);
+Test_N(q자, q자, q자, q자, q자);
+Test_N(q작, q작, q작, q작, q작);
+Test_N(q잒, q잒, q잒, q잒, q잒);
+Test_N(q잓, q잓, q잓, q잓, q잓);
+Test_N(q잔, q잔, q잔, q잔, q잔);
+Test_N(q잕, q잕, q잕, q잕, q잕);
+Test_N(q잖, q잖, q잖, q잖, q잖);
+Test_N(q잗, q잗, q잗, q잗, q잗);
+Test_N(q잘, q잘, q잘, q잘, q잘);
+Test_N(q잙, q잙, q잙, q잙, q잙);
+Test_N(q잚, q잚, q잚, q잚, q잚);
+Test_N(q잛, q잛, q잛, q잛, q잛);
+Test_N(q잜, q잜, q잜, q잜, q잜);
+Test_N(q잝, q잝, q잝, q잝, q잝);
+Test_N(q잞, q잞, q잞, q잞, q잞);
+Test_N(q잟, q잟, q잟, q잟, q잟);
+Test_N(q잠, q잠, q잠, q잠, q잠);
+Test_N(q잡, q잡, q잡, q잡, q잡);
+Test_N(q잢, q잢, q잢, q잢, q잢);
+Test_N(q잣, q잣, q잣, q잣, q잣);
+Test_N(q잤, q잤, q잤, q잤, q잤);
+Test_N(q장, q장, q장, q장, q장);
+Test_N(q잦, q잦, q잦, q잦, q잦);
+Test_N(q잧, q잧, q잧, q잧, q잧);
+Test_N(q잨, q잨, q잨, q잨, q잨);
+Test_N(q잩, q잩, q잩, q잩, q잩);
+Test_N(q잪, q잪, q잪, q잪, q잪);
+Test_N(q잫, q잫, q잫, q잫, q잫);
+Test_N(q재, q재, q재, q재, q재);
+Test_N(q잭, q잭, q잭, q잭, q잭);
+Test_N(q잮, q잮, q잮, q잮, q잮);
+Test_N(q잯, q잯, q잯, q잯, q잯);
+Test_N(q잰, q잰, q잰, q잰, q잰);
+Test_N(q잱, q잱, q잱, q잱, q잱);
+Test_N(q잲, q잲, q잲, q잲, q잲);
+Test_N(q잳, q잳, q잳, q잳, q잳);
+Test_N(q잴, q잴, q잴, q잴, q잴);
+Test_N(q잵, q잵, q잵, q잵, q잵);
+Test_N(q잶, q잶, q잶, q잶, q잶);
+Test_N(q잷, q잷, q잷, q잷, q잷);
+Test_N(q잸, q잸, q잸, q잸, q잸);
+Test_N(q잹, q잹, q잹, q잹, q잹);
+Test_N(q잺, q잺, q잺, q잺, q잺);
+Test_N(q잻, q잻, q잻, q잻, q잻);
+Test_N(q잼, q잼, q잼, q잼, q잼);
+Test_N(q잽, q잽, q잽, q잽, q잽);
+Test_N(q잾, q잾, q잾, q잾, q잾);
+Test_N(q잿, q잿, q잿, q잿, q잿);
+Test_N(q쟀, q쟀, q쟀, q쟀, q쟀);
+Test_N(q쟁, q쟁, q쟁, q쟁, q쟁);
+Test_N(q쟂, q쟂, q쟂, q쟂, q쟂);
+Test_N(q쟃, q쟃, q쟃, q쟃, q쟃);
+Test_N(q쟄, q쟄, q쟄, q쟄, q쟄);
+Test_N(q쟅, q쟅, q쟅, q쟅, q쟅);
+Test_N(q쟆, q쟆, q쟆, q쟆, q쟆);
+Test_N(q쟇, q쟇, q쟇, q쟇, q쟇);
+Test_N(q쟈, q쟈, q쟈, q쟈, q쟈);
+Test_N(q쟉, q쟉, q쟉, q쟉, q쟉);
+Test_N(q쟊, q쟊, q쟊, q쟊, q쟊);
+Test_N(q쟋, q쟋, q쟋, q쟋, q쟋);
+Test_N(q쟌, q쟌, q쟌, q쟌, q쟌);
+Test_N(q쟍, q쟍, q쟍, q쟍, q쟍);
+Test_N(q쟎, q쟎, q쟎, q쟎, q쟎);
+Test_N(q쟏, q쟏, q쟏, q쟏, q쟏);
+Test_N(q쟐, q쟐, q쟐, q쟐, q쟐);
+Test_N(q쟑, q쟑, q쟑, q쟑, q쟑);
+Test_N(q쟒, q쟒, q쟒, q쟒, q쟒);
+Test_N(q쟓, q쟓, q쟓, q쟓, q쟓);
+Test_N(q쟔, q쟔, q쟔, q쟔, q쟔);
+Test_N(q쟕, q쟕, q쟕, q쟕, q쟕);
+Test_N(q쟖, q쟖, q쟖, q쟖, q쟖);
+Test_N(q쟗, q쟗, q쟗, q쟗, q쟗);
+Test_N(q쟘, q쟘, q쟘, q쟘, q쟘);
+Test_N(q쟙, q쟙, q쟙, q쟙, q쟙);
+Test_N(q쟚, q쟚, q쟚, q쟚, q쟚);
+Test_N(q쟛, q쟛, q쟛, q쟛, q쟛);
+Test_N(q쟜, q쟜, q쟜, q쟜, q쟜);
+Test_N(q쟝, q쟝, q쟝, q쟝, q쟝);
+Test_N(q쟞, q쟞, q쟞, q쟞, q쟞);
+Test_N(q쟟, q쟟, q쟟, q쟟, q쟟);
+Test_N(q쟠, q쟠, q쟠, q쟠, q쟠);
+Test_N(q쟡, q쟡, q쟡, q쟡, q쟡);
+Test_N(q쟢, q쟢, q쟢, q쟢, q쟢);
+Test_N(q쟣, q쟣, q쟣, q쟣, q쟣);
+Test_N(q쟤, q쟤, q쟤, q쟤, q쟤);
+Test_N(q쟥, q쟥, q쟥, q쟥, q쟥);
+Test_N(q쟦, q쟦, q쟦, q쟦, q쟦);
+Test_N(q쟧, q쟧, q쟧, q쟧, q쟧);
+Test_N(q쟨, q쟨, q쟨, q쟨, q쟨);
+Test_N(q쟩, q쟩, q쟩, q쟩, q쟩);
+Test_N(q쟪, q쟪, q쟪, q쟪, q쟪);
+Test_N(q쟫, q쟫, q쟫, q쟫, q쟫);
+Test_N(q쟬, q쟬, q쟬, q쟬, q쟬);
+Test_N(q쟭, q쟭, q쟭, q쟭, q쟭);
+Test_N(q쟮, q쟮, q쟮, q쟮, q쟮);
+Test_N(q쟯, q쟯, q쟯, q쟯, q쟯);
+Test_N(q쟰, q쟰, q쟰, q쟰, q쟰);
+Test_N(q쟱, q쟱, q쟱, q쟱, q쟱);
+Test_N(q쟲, q쟲, q쟲, q쟲, q쟲);
+Test_N(q쟳, q쟳, q쟳, q쟳, q쟳);
+Test_N(q쟴, q쟴, q쟴, q쟴, q쟴);
+Test_N(q쟵, q쟵, q쟵, q쟵, q쟵);
+Test_N(q쟶, q쟶, q쟶, q쟶, q쟶);
+Test_N(q쟷, q쟷, q쟷, q쟷, q쟷);
+Test_N(q쟸, q쟸, q쟸, q쟸, q쟸);
+Test_N(q쟹, q쟹, q쟹, q쟹, q쟹);
+Test_N(q쟺, q쟺, q쟺, q쟺, q쟺);
+Test_N(q쟻, q쟻, q쟻, q쟻, q쟻);
+Test_N(q쟼, q쟼, q쟼, q쟼, q쟼);
+Test_N(q쟽, q쟽, q쟽, q쟽, q쟽);
+Test_N(q쟾, q쟾, q쟾, q쟾, q쟾);
+Test_N(q쟿, q쟿, q쟿, q쟿, q쟿);
+Test_N(q저, q저, q저, q저, q저);
+Test_N(q적, q적, q적, q적, q적);
+Test_N(q젂, q젂, q젂, q젂, q젂);
+Test_N(q젃, q젃, q젃, q젃, q젃);
+Test_N(q전, q전, q전, q전, q전);
+Test_N(q젅, q젅, q젅, q젅, q젅);
+Test_N(q젆, q젆, q젆, q젆, q젆);
+Test_N(q젇, q젇, q젇, q젇, q젇);
+Test_N(q절, q절, q절, q절, q절);
+Test_N(q젉, q젉, q젉, q젉, q젉);
+Test_N(q젊, q젊, q젊, q젊, q젊);
+Test_N(q젋, q젋, q젋, q젋, q젋);
+Test_N(q젌, q젌, q젌, q젌, q젌);
+Test_N(q젍, q젍, q젍, q젍, q젍);
+Test_N(q젎, q젎, q젎, q젎, q젎);
+Test_N(q젏, q젏, q젏, q젏, q젏);
+Test_N(q점, q점, q점, q점, q점);
+Test_N(q접, q접, q접, q접, q접);
+Test_N(q젒, q젒, q젒, q젒, q젒);
+Test_N(q젓, q젓, q젓, q젓, q젓);
+Test_N(q젔, q젔, q젔, q젔, q젔);
+Test_N(q정, q정, q정, q정, q정);
+Test_N(q젖, q젖, q젖, q젖, q젖);
+Test_N(q젗, q젗, q젗, q젗, q젗);
+Test_N(q젘, q젘, q젘, q젘, q젘);
+Test_N(q젙, q젙, q젙, q젙, q젙);
+Test_N(q젚, q젚, q젚, q젚, q젚);
+Test_N(q젛, q젛, q젛, q젛, q젛);
+Test_N(q제, q제, q제, q제, q제);
+Test_N(q젝, q젝, q젝, q젝, q젝);
+Test_N(q젞, q젞, q젞, q젞, q젞);
+Test_N(q젟, q젟, q젟, q젟, q젟);
+Test_N(q젠, q젠, q젠, q젠, q젠);
+Test_N(q젡, q젡, q젡, q젡, q젡);
+Test_N(q젢, q젢, q젢, q젢, q젢);
+Test_N(q젣, q젣, q젣, q젣, q젣);
+Test_N(q젤, q젤, q젤, q젤, q젤);
+Test_N(q젥, q젥, q젥, q젥, q젥);
+Test_N(q젦, q젦, q젦, q젦, q젦);
+Test_N(q젧, q젧, q젧, q젧, q젧);
+Test_N(q젨, q젨, q젨, q젨, q젨);
+Test_N(q젩, q젩, q젩, q젩, q젩);
+Test_N(q젪, q젪, q젪, q젪, q젪);
+Test_N(q젫, q젫, q젫, q젫, q젫);
+Test_N(q젬, q젬, q젬, q젬, q젬);
+Test_N(q젭, q젭, q젭, q젭, q젭);
+Test_N(q젮, q젮, q젮, q젮, q젮);
+Test_N(q젯, q젯, q젯, q젯, q젯);
+Test_N(q젰, q젰, q젰, q젰, q젰);
+Test_N(q젱, q젱, q젱, q젱, q젱);
+Test_N(q젲, q젲, q젲, q젲, q젲);
+Test_N(q젳, q젳, q젳, q젳, q젳);
+Test_N(q젴, q젴, q젴, q젴, q젴);
+Test_N(q젵, q젵, q젵, q젵, q젵);
+Test_N(q젶, q젶, q젶, q젶, q젶);
+Test_N(q젷, q젷, q젷, q젷, q젷);
+Test_N(q져, q져, q져, q져, q져);
+Test_N(q젹, q젹, q젹, q젹, q젹);
+Test_N(q젺, q젺, q젺, q젺, q젺);
+Test_N(q젻, q젻, q젻, q젻, q젻);
+Test_N(q젼, q젼, q젼, q젼, q젼);
+Test_N(q젽, q젽, q젽, q젽, q젽);
+Test_N(q젾, q젾, q젾, q젾, q젾);
+Test_N(q젿, q젿, q젿, q젿, q젿);
+Test_N(q졀, q졀, q졀, q졀, q졀);
+Test_N(q졁, q졁, q졁, q졁, q졁);
+Test_N(q졂, q졂, q졂, q졂, q졂);
+Test_N(q졃, q졃, q졃, q졃, q졃);
+Test_N(q졄, q졄, q졄, q졄, q졄);
+Test_N(q졅, q졅, q졅, q졅, q졅);
+Test_N(q졆, q졆, q졆, q졆, q졆);
+Test_N(q졇, q졇, q졇, q졇, q졇);
+Test_N(q졈, q졈, q졈, q졈, q졈);
+Test_N(q졉, q졉, q졉, q졉, q졉);
+Test_N(q졊, q졊, q졊, q졊, q졊);
+Test_N(q졋, q졋, q졋, q졋, q졋);
+Test_N(q졌, q졌, q졌, q졌, q졌);
+Test_N(q졍, q졍, q졍, q졍, q졍);
+Test_N(q졎, q졎, q졎, q졎, q졎);
+Test_N(q졏, q졏, q졏, q졏, q졏);
+Test_N(q졐, q졐, q졐, q졐, q졐);
+Test_N(q졑, q졑, q졑, q졑, q졑);
+Test_N(q졒, q졒, q졒, q졒, q졒);
+Test_N(q졓, q졓, q졓, q졓, q졓);
+Test_N(q졔, q졔, q졔, q졔, q졔);
+Test_N(q졕, q졕, q졕, q졕, q졕);
+Test_N(q졖, q졖, q졖, q졖, q졖);
+Test_N(q졗, q졗, q졗, q졗, q졗);
+Test_N(q졘, q졘, q졘, q졘, q졘);
+Test_N(q졙, q졙, q졙, q졙, q졙);
+Test_N(q졚, q졚, q졚, q졚, q졚);
+Test_N(q졛, q졛, q졛, q졛, q졛);
+Test_N(q졜, q졜, q졜, q졜, q졜);
+Test_N(q졝, q졝, q졝, q졝, q졝);
+Test_N(q졞, q졞, q졞, q졞, q졞);
+Test_N(q졟, q졟, q졟, q졟, q졟);
+Test_N(q졠, q졠, q졠, q졠, q졠);
+Test_N(q졡, q졡, q졡, q졡, q졡);
+Test_N(q졢, q졢, q졢, q졢, q졢);
+Test_N(q졣, q졣, q졣, q졣, q졣);
+Test_N(q졤, q졤, q졤, q졤, q졤);
+Test_N(q졥, q졥, q졥, q졥, q졥);
+Test_N(q졦, q졦, q졦, q졦, q졦);
+Test_N(q졧, q졧, q졧, q졧, q졧);
+Test_N(q졨, q졨, q졨, q졨, q졨);
+Test_N(q졩, q졩, q졩, q졩, q졩);
+Test_N(q졪, q졪, q졪, q졪, q졪);
+Test_N(q졫, q졫, q졫, q졫, q졫);
+Test_N(q졬, q졬, q졬, q졬, q졬);
+Test_N(q졭, q졭, q졭, q졭, q졭);
+Test_N(q졮, q졮, q졮, q졮, q졮);
+Test_N(q졯, q졯, q졯, q졯, q졯);
+Test_N(q조, q조, q조, q조, q조);
+Test_N(q족, q족, q족, q족, q족);
+Test_N(q졲, q졲, q졲, q졲, q졲);
+Test_N(q졳, q졳, q졳, q졳, q졳);
+Test_N(q존, q존, q존, q존, q존);
+Test_N(q졵, q졵, q졵, q졵, q졵);
+Test_N(q졶, q졶, q졶, q졶, q졶);
+Test_N(q졷, q졷, q졷, q졷, q졷);
+Test_N(q졸, q졸, q졸, q졸, q졸);
+Test_N(q졹, q졹, q졹, q졹, q졹);
+Test_N(q졺, q졺, q졺, q졺, q졺);
+Test_N(q졻, q졻, q졻, q졻, q졻);
+Test_N(q졼, q졼, q졼, q졼, q졼);
+Test_N(q졽, q졽, q졽, q졽, q졽);
+Test_N(q졾, q졾, q졾, q졾, q졾);
+Test_N(q졿, q졿, q졿, q졿, q졿);
+Test_N(q좀, q좀, q좀, q좀, q좀);
+Test_N(q좁, q좁, q좁, q좁, q좁);
+Test_N(q좂, q좂, q좂, q좂, q좂);
+Test_N(q좃, q좃, q좃, q좃, q좃);
+Test_N(q좄, q좄, q좄, q좄, q좄);
+Test_N(q종, q종, q종, q종, q종);
+Test_N(q좆, q좆, q좆, q좆, q좆);
+Test_N(q좇, q좇, q좇, q좇, q좇);
+Test_N(q좈, q좈, q좈, q좈, q좈);
+Test_N(q좉, q좉, q좉, q좉, q좉);
+Test_N(q좊, q좊, q좊, q좊, q좊);
+Test_N(q좋, q좋, q좋, q좋, q좋);
+Test_N(q좌, q좌, q좌, q좌, q좌);
+Test_N(q좍, q좍, q좍, q좍, q좍);
+Test_N(q좎, q좎, q좎, q좎, q좎);
+Test_N(q좏, q좏, q좏, q좏, q좏);
+Test_N(q좐, q좐, q좐, q좐, q좐);
+Test_N(q좑, q좑, q좑, q좑, q좑);
+Test_N(q좒, q좒, q좒, q좒, q좒);
+Test_N(q좓, q좓, q좓, q좓, q좓);
+Test_N(q좔, q좔, q좔, q좔, q좔);
+Test_N(q좕, q좕, q좕, q좕, q좕);
+Test_N(q좖, q좖, q좖, q좖, q좖);
+Test_N(q좗, q좗, q좗, q좗, q좗);
+Test_N(q좘, q좘, q좘, q좘, q좘);
+Test_N(q좙, q좙, q좙, q좙, q좙);
+Test_N(q좚, q좚, q좚, q좚, q좚);
+Test_N(q좛, q좛, q좛, q좛, q좛);
+Test_N(q좜, q좜, q좜, q좜, q좜);
+Test_N(q좝, q좝, q좝, q좝, q좝);
+Test_N(q좞, q좞, q좞, q좞, q좞);
+Test_N(q좟, q좟, q좟, q좟, q좟);
+Test_N(q좠, q좠, q좠, q좠, q좠);
+Test_N(q좡, q좡, q좡, q좡, q좡);
+Test_N(q좢, q좢, q좢, q좢, q좢);
+Test_N(q좣, q좣, q좣, q좣, q좣);
+Test_N(q좤, q좤, q좤, q좤, q좤);
+Test_N(q좥, q좥, q좥, q좥, q좥);
+Test_N(q좦, q좦, q좦, q좦, q좦);
+Test_N(q좧, q좧, q좧, q좧, q좧);
+Test_N(q좨, q좨, q좨, q좨, q좨);
+Test_N(q좩, q좩, q좩, q좩, q좩);
+Test_N(q좪, q좪, q좪, q좪, q좪);
+Test_N(q좫, q좫, q좫, q좫, q좫);
+Test_N(q좬, q좬, q좬, q좬, q좬);
+Test_N(q좭, q좭, q좭, q좭, q좭);
+Test_N(q좮, q좮, q좮, q좮, q좮);
+Test_N(q좯, q좯, q좯, q좯, q좯);
+Test_N(q좰, q좰, q좰, q좰, q좰);
+Test_N(q좱, q좱, q좱, q좱, q좱);
+Test_N(q좲, q좲, q좲, q좲, q좲);
+Test_N(q좳, q좳, q좳, q좳, q좳);
+Test_N(q좴, q좴, q좴, q좴, q좴);
+Test_N(q좵, q좵, q좵, q좵, q좵);
+Test_N(q좶, q좶, q좶, q좶, q좶);
+Test_N(q좷, q좷, q좷, q좷, q좷);
+Test_N(q좸, q좸, q좸, q좸, q좸);
+Test_N(q좹, q좹, q좹, q좹, q좹);
+Test_N(q좺, q좺, q좺, q좺, q좺);
+Test_N(q좻, q좻, q좻, q좻, q좻);
+Test_N(q좼, q좼, q좼, q좼, q좼);
+Test_N(q좽, q좽, q좽, q좽, q좽);
+Test_N(q좾, q좾, q좾, q좾, q좾);
+Test_N(q좿, q좿, q좿, q좿, q좿);
+Test_N(q죀, q죀, q죀, q죀, q죀);
+Test_N(q죁, q죁, q죁, q죁, q죁);
+Test_N(q죂, q죂, q죂, q죂, q죂);
+Test_N(q죃, q죃, q죃, q죃, q죃);
+Test_N(q죄, q죄, q죄, q죄, q죄);
+Test_N(q죅, q죅, q죅, q죅, q죅);
+Test_N(q죆, q죆, q죆, q죆, q죆);
+Test_N(q죇, q죇, q죇, q죇, q죇);
+Test_N(q죈, q죈, q죈, q죈, q죈);
+Test_N(q죉, q죉, q죉, q죉, q죉);
+Test_N(q죊, q죊, q죊, q죊, q죊);
+Test_N(q죋, q죋, q죋, q죋, q죋);
+Test_N(q죌, q죌, q죌, q죌, q죌);
+Test_N(q죍, q죍, q죍, q죍, q죍);
+Test_N(q죎, q죎, q죎, q죎, q죎);
+Test_N(q죏, q죏, q죏, q죏, q죏);
+Test_N(q죐, q죐, q죐, q죐, q죐);
+Test_N(q죑, q죑, q죑, q죑, q죑);
+Test_N(q죒, q죒, q죒, q죒, q죒);
+Test_N(q죓, q죓, q죓, q죓, q죓);
+Test_N(q죔, q죔, q죔, q죔, q죔);
+Test_N(q죕, q죕, q죕, q죕, q죕);
+Test_N(q죖, q죖, q죖, q죖, q죖);
+Test_N(q죗, q죗, q죗, q죗, q죗);
+Test_N(q죘, q죘, q죘, q죘, q죘);
+Test_N(q죙, q죙, q죙, q죙, q죙);
+Test_N(q죚, q죚, q죚, q죚, q죚);
+Test_N(q죛, q죛, q죛, q죛, q죛);
+Test_N(q죜, q죜, q죜, q죜, q죜);
+Test_N(q죝, q죝, q죝, q죝, q죝);
+Test_N(q죞, q죞, q죞, q죞, q죞);
+Test_N(q죟, q죟, q죟, q죟, q죟);
+Test_N(q죠, q죠, q죠, q죠, q죠);
+Test_N(q죡, q죡, q죡, q죡, q죡);
+Test_N(q죢, q죢, q죢, q죢, q죢);
+Test_N(q죣, q죣, q죣, q죣, q죣);
+Test_N(q죤, q죤, q죤, q죤, q죤);
+Test_N(q죥, q죥, q죥, q죥, q죥);
+Test_N(q죦, q죦, q죦, q죦, q죦);
+Test_N(q죧, q죧, q죧, q죧, q죧);
+Test_N(q죨, q죨, q죨, q죨, q죨);
+Test_N(q죩, q죩, q죩, q죩, q죩);
+Test_N(q죪, q죪, q죪, q죪, q죪);
+Test_N(q죫, q죫, q죫, q죫, q죫);
+Test_N(q죬, q죬, q죬, q죬, q죬);
+Test_N(q죭, q죭, q죭, q죭, q죭);
+Test_N(q죮, q죮, q죮, q죮, q죮);
+Test_N(q죯, q죯, q죯, q죯, q죯);
+Test_N(q죰, q죰, q죰, q죰, q죰);
+Test_N(q죱, q죱, q죱, q죱, q죱);
+Test_N(q죲, q죲, q죲, q죲, q죲);
+Test_N(q죳, q죳, q죳, q죳, q죳);
+Test_N(q죴, q죴, q죴, q죴, q죴);
+Test_N(q죵, q죵, q죵, q죵, q죵);
+Test_N(q죶, q죶, q죶, q죶, q죶);
+Test_N(q죷, q죷, q죷, q죷, q죷);
+Test_N(q죸, q죸, q죸, q죸, q죸);
+Test_N(q죹, q죹, q죹, q죹, q죹);
+Test_N(q죺, q죺, q죺, q죺, q죺);
+Test_N(q죻, q죻, q죻, q죻, q죻);
+Test_N(q주, q주, q주, q주, q주);
+Test_N(q죽, q죽, q죽, q죽, q죽);
+Test_N(q죾, q죾, q죾, q죾, q죾);
+Test_N(q죿, q죿, q죿, q죿, q죿);
+Test_N(q준, q준, q준, q준, q준);
+Test_N(q줁, q줁, q줁, q줁, q줁);
+Test_N(q줂, q줂, q줂, q줂, q줂);
+Test_N(q줃, q줃, q줃, q줃, q줃);
+Test_N(q줄, q줄, q줄, q줄, q줄);
+Test_N(q줅, q줅, q줅, q줅, q줅);
+Test_N(q줆, q줆, q줆, q줆, q줆);
+Test_N(q줇, q줇, q줇, q줇, q줇);
+Test_N(q줈, q줈, q줈, q줈, q줈);
+Test_N(q줉, q줉, q줉, q줉, q줉);
+Test_N(q줊, q줊, q줊, q줊, q줊);
+Test_N(q줋, q줋, q줋, q줋, q줋);
+Test_N(q줌, q줌, q줌, q줌, q줌);
+Test_N(q줍, q줍, q줍, q줍, q줍);
+Test_N(q줎, q줎, q줎, q줎, q줎);
+Test_N(q줏, q줏, q줏, q줏, q줏);
+Test_N(q줐, q줐, q줐, q줐, q줐);
+Test_N(q중, q중, q중, q중, q중);
+Test_N(q줒, q줒, q줒, q줒, q줒);
+Test_N(q줓, q줓, q줓, q줓, q줓);
+Test_N(q줔, q줔, q줔, q줔, q줔);
+Test_N(q줕, q줕, q줕, q줕, q줕);
+Test_N(q줖, q줖, q줖, q줖, q줖);
+Test_N(q줗, q줗, q줗, q줗, q줗);
+Test_N(q줘, q줘, q줘, q줘, q줘);
+Test_N(q줙, q줙, q줙, q줙, q줙);
+Test_N(q줚, q줚, q줚, q줚, q줚);
+Test_N(q줛, q줛, q줛, q줛, q줛);
+Test_N(q줜, q줜, q줜, q줜, q줜);
+Test_N(q줝, q줝, q줝, q줝, q줝);
+Test_N(q줞, q줞, q줞, q줞, q줞);
+Test_N(q줟, q줟, q줟, q줟, q줟);
+Test_N(q줠, q줠, q줠, q줠, q줠);
+Test_N(q줡, q줡, q줡, q줡, q줡);
+Test_N(q줢, q줢, q줢, q줢, q줢);
+Test_N(q줣, q줣, q줣, q줣, q줣);
+Test_N(q줤, q줤, q줤, q줤, q줤);
+Test_N(q줥, q줥, q줥, q줥, q줥);
+Test_N(q줦, q줦, q줦, q줦, q줦);
+Test_N(q줧, q줧, q줧, q줧, q줧);
+Test_N(q줨, q줨, q줨, q줨, q줨);
+Test_N(q줩, q줩, q줩, q줩, q줩);
+Test_N(q줪, q줪, q줪, q줪, q줪);
+Test_N(q줫, q줫, q줫, q줫, q줫);
+Test_N(q줬, q줬, q줬, q줬, q줬);
+Test_N(q줭, q줭, q줭, q줭, q줭);
+Test_N(q줮, q줮, q줮, q줮, q줮);
+Test_N(q줯, q줯, q줯, q줯, q줯);
+Test_N(q줰, q줰, q줰, q줰, q줰);
+Test_N(q줱, q줱, q줱, q줱, q줱);
+Test_N(q줲, q줲, q줲, q줲, q줲);
+Test_N(q줳, q줳, q줳, q줳, q줳);
+Test_N(q줴, q줴, q줴, q줴, q줴);
+Test_N(q줵, q줵, q줵, q줵, q줵);
+Test_N(q줶, q줶, q줶, q줶, q줶);
+Test_N(q줷, q줷, q줷, q줷, q줷);
+Test_N(q줸, q줸, q줸, q줸, q줸);
+Test_N(q줹, q줹, q줹, q줹, q줹);
+Test_N(q줺, q줺, q줺, q줺, q줺);
+Test_N(q줻, q줻, q줻, q줻, q줻);
+Test_N(q줼, q줼, q줼, q줼, q줼);
+Test_N(q줽, q줽, q줽, q줽, q줽);
+Test_N(q줾, q줾, q줾, q줾, q줾);
+Test_N(q줿, q줿, q줿, q줿, q줿);
+Test_N(q쥀, q쥀, q쥀, q쥀, q쥀);
+Test_N(q쥁, q쥁, q쥁, q쥁, q쥁);
+Test_N(q쥂, q쥂, q쥂, q쥂, q쥂);
+Test_N(q쥃, q쥃, q쥃, q쥃, q쥃);
+Test_N(q쥄, q쥄, q쥄, q쥄, q쥄);
+Test_N(q쥅, q쥅, q쥅, q쥅, q쥅);
+Test_N(q쥆, q쥆, q쥆, q쥆, q쥆);
+Test_N(q쥇, q쥇, q쥇, q쥇, q쥇);
+Test_N(q쥈, q쥈, q쥈, q쥈, q쥈);
+Test_N(q쥉, q쥉, q쥉, q쥉, q쥉);
+Test_N(q쥊, q쥊, q쥊, q쥊, q쥊);
+Test_N(q쥋, q쥋, q쥋, q쥋, q쥋);
+Test_N(q쥌, q쥌, q쥌, q쥌, q쥌);
+Test_N(q쥍, q쥍, q쥍, q쥍, q쥍);
+Test_N(q쥎, q쥎, q쥎, q쥎, q쥎);
+Test_N(q쥏, q쥏, q쥏, q쥏, q쥏);
+Test_N(q쥐, q쥐, q쥐, q쥐, q쥐);
+Test_N(q쥑, q쥑, q쥑, q쥑, q쥑);
+Test_N(q쥒, q쥒, q쥒, q쥒, q쥒);
+Test_N(q쥓, q쥓, q쥓, q쥓, q쥓);
+Test_N(q쥔, q쥔, q쥔, q쥔, q쥔);
+Test_N(q쥕, q쥕, q쥕, q쥕, q쥕);
+Test_N(q쥖, q쥖, q쥖, q쥖, q쥖);
+Test_N(q쥗, q쥗, q쥗, q쥗, q쥗);
+Test_N(q쥘, q쥘, q쥘, q쥘, q쥘);
+Test_N(q쥙, q쥙, q쥙, q쥙, q쥙);
+Test_N(q쥚, q쥚, q쥚, q쥚, q쥚);
+Test_N(q쥛, q쥛, q쥛, q쥛, q쥛);
+Test_N(q쥜, q쥜, q쥜, q쥜, q쥜);
+Test_N(q쥝, q쥝, q쥝, q쥝, q쥝);
+Test_N(q쥞, q쥞, q쥞, q쥞, q쥞);
+Test_N(q쥟, q쥟, q쥟, q쥟, q쥟);
+Test_N(q쥠, q쥠, q쥠, q쥠, q쥠);
+Test_N(q쥡, q쥡, q쥡, q쥡, q쥡);
+Test_N(q쥢, q쥢, q쥢, q쥢, q쥢);
+Test_N(q쥣, q쥣, q쥣, q쥣, q쥣);
+Test_N(q쥤, q쥤, q쥤, q쥤, q쥤);
+Test_N(q쥥, q쥥, q쥥, q쥥, q쥥);
+Test_N(q쥦, q쥦, q쥦, q쥦, q쥦);
+Test_N(q쥧, q쥧, q쥧, q쥧, q쥧);
+Test_N(q쥨, q쥨, q쥨, q쥨, q쥨);
+Test_N(q쥩, q쥩, q쥩, q쥩, q쥩);
+Test_N(q쥪, q쥪, q쥪, q쥪, q쥪);
+Test_N(q쥫, q쥫, q쥫, q쥫, q쥫);
+Test_N(q쥬, q쥬, q쥬, q쥬, q쥬);
+Test_N(q쥭, q쥭, q쥭, q쥭, q쥭);
+Test_N(q쥮, q쥮, q쥮, q쥮, q쥮);
+Test_N(q쥯, q쥯, q쥯, q쥯, q쥯);
+Test_N(q쥰, q쥰, q쥰, q쥰, q쥰);
+Test_N(q쥱, q쥱, q쥱, q쥱, q쥱);
+Test_N(q쥲, q쥲, q쥲, q쥲, q쥲);
+Test_N(q쥳, q쥳, q쥳, q쥳, q쥳);
+Test_N(q쥴, q쥴, q쥴, q쥴, q쥴);
+Test_N(q쥵, q쥵, q쥵, q쥵, q쥵);
+Test_N(q쥶, q쥶, q쥶, q쥶, q쥶);
+Test_N(q쥷, q쥷, q쥷, q쥷, q쥷);
+Test_N(q쥸, q쥸, q쥸, q쥸, q쥸);
+Test_N(q쥹, q쥹, q쥹, q쥹, q쥹);
+Test_N(q쥺, q쥺, q쥺, q쥺, q쥺);
+Test_N(q쥻, q쥻, q쥻, q쥻, q쥻);
+Test_N(q쥼, q쥼, q쥼, q쥼, q쥼);
+Test_N(q쥽, q쥽, q쥽, q쥽, q쥽);
+Test_N(q쥾, q쥾, q쥾, q쥾, q쥾);
+Test_N(q쥿, q쥿, q쥿, q쥿, q쥿);
+Test_N(q즀, q즀, q즀, q즀, q즀);
+Test_N(q즁, q즁, q즁, q즁, q즁);
+Test_N(q즂, q즂, q즂, q즂, q즂);
+Test_N(q즃, q즃, q즃, q즃, q즃);
+Test_N(q즄, q즄, q즄, q즄, q즄);
+Test_N(q즅, q즅, q즅, q즅, q즅);
+Test_N(q즆, q즆, q즆, q즆, q즆);
+Test_N(q즇, q즇, q즇, q즇, q즇);
+Test_N(q즈, q즈, q즈, q즈, q즈);
+Test_N(q즉, q즉, q즉, q즉, q즉);
+Test_N(q즊, q즊, q즊, q즊, q즊);
+Test_N(q즋, q즋, q즋, q즋, q즋);
+Test_N(q즌, q즌, q즌, q즌, q즌);
+Test_N(q즍, q즍, q즍, q즍, q즍);
+Test_N(q즎, q즎, q즎, q즎, q즎);
+Test_N(q즏, q즏, q즏, q즏, q즏);
+Test_N(q즐, q즐, q즐, q즐, q즐);
+Test_N(q즑, q즑, q즑, q즑, q즑);
+Test_N(q즒, q즒, q즒, q즒, q즒);
+Test_N(q즓, q즓, q즓, q즓, q즓);
+Test_N(q즔, q즔, q즔, q즔, q즔);
+Test_N(q즕, q즕, q즕, q즕, q즕);
+Test_N(q즖, q즖, q즖, q즖, q즖);
+Test_N(q즗, q즗, q즗, q즗, q즗);
+Test_N(q즘, q즘, q즘, q즘, q즘);
+Test_N(q즙, q즙, q즙, q즙, q즙);
+Test_N(q즚, q즚, q즚, q즚, q즚);
+Test_N(q즛, q즛, q즛, q즛, q즛);
+Test_N(q즜, q즜, q즜, q즜, q즜);
+Test_N(q증, q증, q증, q증, q증);
+Test_N(q즞, q즞, q즞, q즞, q즞);
+Test_N(q즟, q즟, q즟, q즟, q즟);
+Test_N(q즠, q즠, q즠, q즠, q즠);
+Test_N(q즡, q즡, q즡, q즡, q즡);
+Test_N(q즢, q즢, q즢, q즢, q즢);
+Test_N(q즣, q즣, q즣, q즣, q즣);
+Test_N(q즤, q즤, q즤, q즤, q즤);
+Test_N(q즥, q즥, q즥, q즥, q즥);
+Test_N(q즦, q즦, q즦, q즦, q즦);
+Test_N(q즧, q즧, q즧, q즧, q즧);
+Test_N(q즨, q즨, q즨, q즨, q즨);
+Test_N(q즩, q즩, q즩, q즩, q즩);
+Test_N(q즪, q즪, q즪, q즪, q즪);
+Test_N(q즫, q즫, q즫, q즫, q즫);
+Test_N(q즬, q즬, q즬, q즬, q즬);
+Test_N(q즭, q즭, q즭, q즭, q즭);
+Test_N(q즮, q즮, q즮, q즮, q즮);
+Test_N(q즯, q즯, q즯, q즯, q즯);
+Test_N(q즰, q즰, q즰, q즰, q즰);
+Test_N(q즱, q즱, q즱, q즱, q즱);
+Test_N(q즲, q즲, q즲, q즲, q즲);
+Test_N(q즳, q즳, q즳, q즳, q즳);
+Test_N(q즴, q즴, q즴, q즴, q즴);
+Test_N(q즵, q즵, q즵, q즵, q즵);
+Test_N(q즶, q즶, q즶, q즶, q즶);
+Test_N(q즷, q즷, q즷, q즷, q즷);
+Test_N(q즸, q즸, q즸, q즸, q즸);
+Test_N(q즹, q즹, q즹, q즹, q즹);
+Test_N(q즺, q즺, q즺, q즺, q즺);
+Test_N(q즻, q즻, q즻, q즻, q즻);
+Test_N(q즼, q즼, q즼, q즼, q즼);
+Test_N(q즽, q즽, q즽, q즽, q즽);
+Test_N(q즾, q즾, q즾, q즾, q즾);
+Test_N(q즿, q즿, q즿, q즿, q즿);
+Test_N(q지, q지, q지, q지, q지);
+Test_N(q직, q직, q직, q직, q직);
+Test_N(q짂, q짂, q짂, q짂, q짂);
+Test_N(q짃, q짃, q짃, q짃, q짃);
+Test_N(q진, q진, q진, q진, q진);
+Test_N(q짅, q짅, q짅, q짅, q짅);
+Test_N(q짆, q짆, q짆, q짆, q짆);
+Test_N(q짇, q짇, q짇, q짇, q짇);
+Test_N(q질, q질, q질, q질, q질);
+Test_N(q짉, q짉, q짉, q짉, q짉);
+Test_N(q짊, q짊, q짊, q짊, q짊);
+Test_N(q짋, q짋, q짋, q짋, q짋);
+Test_N(q짌, q짌, q짌, q짌, q짌);
+Test_N(q짍, q짍, q짍, q짍, q짍);
+Test_N(q짎, q짎, q짎, q짎, q짎);
+Test_N(q짏, q짏, q짏, q짏, q짏);
+Test_N(q짐, q짐, q짐, q짐, q짐);
+Test_N(q집, q집, q집, q집, q집);
+Test_N(q짒, q짒, q짒, q짒, q짒);
+Test_N(q짓, q짓, q짓, q짓, q짓);
+Test_N(q짔, q짔, q짔, q짔, q짔);
+Test_N(q징, q징, q징, q징, q징);
+Test_N(q짖, q짖, q짖, q짖, q짖);
+Test_N(q짗, q짗, q짗, q짗, q짗);
+Test_N(q짘, q짘, q짘, q짘, q짘);
+Test_N(q짙, q짙, q짙, q짙, q짙);
+Test_N(q짚, q짚, q짚, q짚, q짚);
+Test_N(q짛, q짛, q짛, q짛, q짛);
+Test_N(q짜, q짜, q짜, q짜, q짜);
+Test_N(q짝, q짝, q짝, q짝, q짝);
+Test_N(q짞, q짞, q짞, q짞, q짞);
+Test_N(q짟, q짟, q짟, q짟, q짟);
+Test_N(q짠, q짠, q짠, q짠, q짠);
+Test_N(q짡, q짡, q짡, q짡, q짡);
+Test_N(q짢, q짢, q짢, q짢, q짢);
+Test_N(q짣, q짣, q짣, q짣, q짣);
+Test_N(q짤, q짤, q짤, q짤, q짤);
+Test_N(q짥, q짥, q짥, q짥, q짥);
+Test_N(q짦, q짦, q짦, q짦, q짦);
+Test_N(q짧, q짧, q짧, q짧, q짧);
+Test_N(q짨, q짨, q짨, q짨, q짨);
+Test_N(q짩, q짩, q짩, q짩, q짩);
+Test_N(q짪, q짪, q짪, q짪, q짪);
+Test_N(q짫, q짫, q짫, q짫, q짫);
+Test_N(q짬, q짬, q짬, q짬, q짬);
+Test_N(q짭, q짭, q짭, q짭, q짭);
+Test_N(q짮, q짮, q짮, q짮, q짮);
+Test_N(q짯, q짯, q짯, q짯, q짯);
+Test_N(q짰, q짰, q짰, q짰, q짰);
+Test_N(q짱, q짱, q짱, q짱, q짱);
+Test_N(q짲, q짲, q짲, q짲, q짲);
+Test_N(q짳, q짳, q짳, q짳, q짳);
+Test_N(q짴, q짴, q짴, q짴, q짴);
+Test_N(q짵, q짵, q짵, q짵, q짵);
+Test_N(q짶, q짶, q짶, q짶, q짶);
+Test_N(q짷, q짷, q짷, q짷, q짷);
+Test_N(q째, q째, q째, q째, q째);
+Test_N(q짹, q짹, q짹, q짹, q짹);
+Test_N(q짺, q짺, q짺, q짺, q짺);
+Test_N(q짻, q짻, q짻, q짻, q짻);
+Test_N(q짼, q짼, q짼, q짼, q짼);
+Test_N(q짽, q짽, q짽, q짽, q짽);
+Test_N(q짾, q짾, q짾, q짾, q짾);
+Test_N(q짿, q짿, q짿, q짿, q짿);
+Test_N(q쨀, q쨀, q쨀, q쨀, q쨀);
+Test_N(q쨁, q쨁, q쨁, q쨁, q쨁);
+Test_N(q쨂, q쨂, q쨂, q쨂, q쨂);
+Test_N(q쨃, q쨃, q쨃, q쨃, q쨃);
+Test_N(q쨄, q쨄, q쨄, q쨄, q쨄);
+Test_N(q쨅, q쨅, q쨅, q쨅, q쨅);
+Test_N(q쨆, q쨆, q쨆, q쨆, q쨆);
+Test_N(q쨇, q쨇, q쨇, q쨇, q쨇);
+Test_N(q쨈, q쨈, q쨈, q쨈, q쨈);
+Test_N(q쨉, q쨉, q쨉, q쨉, q쨉);
+Test_N(q쨊, q쨊, q쨊, q쨊, q쨊);
+Test_N(q쨋, q쨋, q쨋, q쨋, q쨋);
+Test_N(q쨌, q쨌, q쨌, q쨌, q쨌);
+Test_N(q쨍, q쨍, q쨍, q쨍, q쨍);
+Test_N(q쨎, q쨎, q쨎, q쨎, q쨎);
+Test_N(q쨏, q쨏, q쨏, q쨏, q쨏);
+Test_N(q쨐, q쨐, q쨐, q쨐, q쨐);
+Test_N(q쨑, q쨑, q쨑, q쨑, q쨑);
+Test_N(q쨒, q쨒, q쨒, q쨒, q쨒);
+Test_N(q쨓, q쨓, q쨓, q쨓, q쨓);
+Test_N(q쨔, q쨔, q쨔, q쨔, q쨔);
+Test_N(q쨕, q쨕, q쨕, q쨕, q쨕);
+Test_N(q쨖, q쨖, q쨖, q쨖, q쨖);
+Test_N(q쨗, q쨗, q쨗, q쨗, q쨗);
+Test_N(q쨘, q쨘, q쨘, q쨘, q쨘);
+Test_N(q쨙, q쨙, q쨙, q쨙, q쨙);
+Test_N(q쨚, q쨚, q쨚, q쨚, q쨚);
+Test_N(q쨛, q쨛, q쨛, q쨛, q쨛);
+Test_N(q쨜, q쨜, q쨜, q쨜, q쨜);
+Test_N(q쨝, q쨝, q쨝, q쨝, q쨝);
+Test_N(q쨞, q쨞, q쨞, q쨞, q쨞);
+Test_N(q쨟, q쨟, q쨟, q쨟, q쨟);
+Test_N(q쨠, q쨠, q쨠, q쨠, q쨠);
+Test_N(q쨡, q쨡, q쨡, q쨡, q쨡);
+Test_N(q쨢, q쨢, q쨢, q쨢, q쨢);
+Test_N(q쨣, q쨣, q쨣, q쨣, q쨣);
+Test_N(q쨤, q쨤, q쨤, q쨤, q쨤);
+Test_N(q쨥, q쨥, q쨥, q쨥, q쨥);
+Test_N(q쨦, q쨦, q쨦, q쨦, q쨦);
+Test_N(q쨧, q쨧, q쨧, q쨧, q쨧);
+Test_N(q쨨, q쨨, q쨨, q쨨, q쨨);
+Test_N(q쨩, q쨩, q쨩, q쨩, q쨩);
+Test_N(q쨪, q쨪, q쨪, q쨪, q쨪);
+Test_N(q쨫, q쨫, q쨫, q쨫, q쨫);
+Test_N(q쨬, q쨬, q쨬, q쨬, q쨬);
+Test_N(q쨭, q쨭, q쨭, q쨭, q쨭);
+Test_N(q쨮, q쨮, q쨮, q쨮, q쨮);
+Test_N(q쨯, q쨯, q쨯, q쨯, q쨯);
+Test_N(q쨰, q쨰, q쨰, q쨰, q쨰);
+Test_N(q쨱, q쨱, q쨱, q쨱, q쨱);
+Test_N(q쨲, q쨲, q쨲, q쨲, q쨲);
+Test_N(q쨳, q쨳, q쨳, q쨳, q쨳);
+Test_N(q쨴, q쨴, q쨴, q쨴, q쨴);
+Test_N(q쨵, q쨵, q쨵, q쨵, q쨵);
+Test_N(q쨶, q쨶, q쨶, q쨶, q쨶);
+Test_N(q쨷, q쨷, q쨷, q쨷, q쨷);
+Test_N(q쨸, q쨸, q쨸, q쨸, q쨸);
+Test_N(q쨹, q쨹, q쨹, q쨹, q쨹);
+Test_N(q쨺, q쨺, q쨺, q쨺, q쨺);
+Test_N(q쨻, q쨻, q쨻, q쨻, q쨻);
+Test_N(q쨼, q쨼, q쨼, q쨼, q쨼);
+Test_N(q쨽, q쨽, q쨽, q쨽, q쨽);
+Test_N(q쨾, q쨾, q쨾, q쨾, q쨾);
+Test_N(q쨿, q쨿, q쨿, q쨿, q쨿);
+Test_N(q쩀, q쩀, q쩀, q쩀, q쩀);
+Test_N(q쩁, q쩁, q쩁, q쩁, q쩁);
+Test_N(q쩂, q쩂, q쩂, q쩂, q쩂);
+Test_N(q쩃, q쩃, q쩃, q쩃, q쩃);
+Test_N(q쩄, q쩄, q쩄, q쩄, q쩄);
+Test_N(q쩅, q쩅, q쩅, q쩅, q쩅);
+Test_N(q쩆, q쩆, q쩆, q쩆, q쩆);
+Test_N(q쩇, q쩇, q쩇, q쩇, q쩇);
+Test_N(q쩈, q쩈, q쩈, q쩈, q쩈);
+Test_N(q쩉, q쩉, q쩉, q쩉, q쩉);
+Test_N(q쩊, q쩊, q쩊, q쩊, q쩊);
+Test_N(q쩋, q쩋, q쩋, q쩋, q쩋);
+Test_N(q쩌, q쩌, q쩌, q쩌, q쩌);
+Test_N(q쩍, q쩍, q쩍, q쩍, q쩍);
+Test_N(q쩎, q쩎, q쩎, q쩎, q쩎);
+Test_N(q쩏, q쩏, q쩏, q쩏, q쩏);
+Test_N(q쩐, q쩐, q쩐, q쩐, q쩐);
+Test_N(q쩑, q쩑, q쩑, q쩑, q쩑);
+Test_N(q쩒, q쩒, q쩒, q쩒, q쩒);
+Test_N(q쩓, q쩓, q쩓, q쩓, q쩓);
+Test_N(q쩔, q쩔, q쩔, q쩔, q쩔);
+Test_N(q쩕, q쩕, q쩕, q쩕, q쩕);
+Test_N(q쩖, q쩖, q쩖, q쩖, q쩖);
+Test_N(q쩗, q쩗, q쩗, q쩗, q쩗);
+Test_N(q쩘, q쩘, q쩘, q쩘, q쩘);
+Test_N(q쩙, q쩙, q쩙, q쩙, q쩙);
+Test_N(q쩚, q쩚, q쩚, q쩚, q쩚);
+Test_N(q쩛, q쩛, q쩛, q쩛, q쩛);
+Test_N(q쩜, q쩜, q쩜, q쩜, q쩜);
+Test_N(q쩝, q쩝, q쩝, q쩝, q쩝);
+Test_N(q쩞, q쩞, q쩞, q쩞, q쩞);
+Test_N(q쩟, q쩟, q쩟, q쩟, q쩟);
+Test_N(q쩠, q쩠, q쩠, q쩠, q쩠);
+Test_N(q쩡, q쩡, q쩡, q쩡, q쩡);
+Test_N(q쩢, q쩢, q쩢, q쩢, q쩢);
+Test_N(q쩣, q쩣, q쩣, q쩣, q쩣);
+Test_N(q쩤, q쩤, q쩤, q쩤, q쩤);
+Test_N(q쩥, q쩥, q쩥, q쩥, q쩥);
+Test_N(q쩦, q쩦, q쩦, q쩦, q쩦);
+Test_N(q쩧, q쩧, q쩧, q쩧, q쩧);
+Test_N(q쩨, q쩨, q쩨, q쩨, q쩨);
+Test_N(q쩩, q쩩, q쩩, q쩩, q쩩);
+Test_N(q쩪, q쩪, q쩪, q쩪, q쩪);
+Test_N(q쩫, q쩫, q쩫, q쩫, q쩫);
+Test_N(q쩬, q쩬, q쩬, q쩬, q쩬);
+Test_N(q쩭, q쩭, q쩭, q쩭, q쩭);
+Test_N(q쩮, q쩮, q쩮, q쩮, q쩮);
+Test_N(q쩯, q쩯, q쩯, q쩯, q쩯);
+Test_N(q쩰, q쩰, q쩰, q쩰, q쩰);
+Test_N(q쩱, q쩱, q쩱, q쩱, q쩱);
+Test_N(q쩲, q쩲, q쩲, q쩲, q쩲);
+Test_N(q쩳, q쩳, q쩳, q쩳, q쩳);
+Test_N(q쩴, q쩴, q쩴, q쩴, q쩴);
+Test_N(q쩵, q쩵, q쩵, q쩵, q쩵);
+Test_N(q쩶, q쩶, q쩶, q쩶, q쩶);
+Test_N(q쩷, q쩷, q쩷, q쩷, q쩷);
+Test_N(q쩸, q쩸, q쩸, q쩸, q쩸);
+Test_N(q쩹, q쩹, q쩹, q쩹, q쩹);
+Test_N(q쩺, q쩺, q쩺, q쩺, q쩺);
+Test_N(q쩻, q쩻, q쩻, q쩻, q쩻);
+Test_N(q쩼, q쩼, q쩼, q쩼, q쩼);
+Test_N(q쩽, q쩽, q쩽, q쩽, q쩽);
+Test_N(q쩾, q쩾, q쩾, q쩾, q쩾);
+Test_N(q쩿, q쩿, q쩿, q쩿, q쩿);
+Test_N(q쪀, q쪀, q쪀, q쪀, q쪀);
+Test_N(q쪁, q쪁, q쪁, q쪁, q쪁);
+Test_N(q쪂, q쪂, q쪂, q쪂, q쪂);
+Test_N(q쪃, q쪃, q쪃, q쪃, q쪃);
+Test_N(q쪄, q쪄, q쪄, q쪄, q쪄);
+Test_N(q쪅, q쪅, q쪅, q쪅, q쪅);
+Test_N(q쪆, q쪆, q쪆, q쪆, q쪆);
+Test_N(q쪇, q쪇, q쪇, q쪇, q쪇);
+Test_N(q쪈, q쪈, q쪈, q쪈, q쪈);
+Test_N(q쪉, q쪉, q쪉, q쪉, q쪉);
+Test_N(q쪊, q쪊, q쪊, q쪊, q쪊);
+Test_N(q쪋, q쪋, q쪋, q쪋, q쪋);
+Test_N(q쪌, q쪌, q쪌, q쪌, q쪌);
+Test_N(q쪍, q쪍, q쪍, q쪍, q쪍);
+Test_N(q쪎, q쪎, q쪎, q쪎, q쪎);
+Test_N(q쪏, q쪏, q쪏, q쪏, q쪏);
+Test_N(q쪐, q쪐, q쪐, q쪐, q쪐);
+Test_N(q쪑, q쪑, q쪑, q쪑, q쪑);
+Test_N(q쪒, q쪒, q쪒, q쪒, q쪒);
+Test_N(q쪓, q쪓, q쪓, q쪓, q쪓);
+Test_N(q쪔, q쪔, q쪔, q쪔, q쪔);
+Test_N(q쪕, q쪕, q쪕, q쪕, q쪕);
+Test_N(q쪖, q쪖, q쪖, q쪖, q쪖);
+Test_N(q쪗, q쪗, q쪗, q쪗, q쪗);
+Test_N(q쪘, q쪘, q쪘, q쪘, q쪘);
+Test_N(q쪙, q쪙, q쪙, q쪙, q쪙);
+Test_N(q쪚, q쪚, q쪚, q쪚, q쪚);
+Test_N(q쪛, q쪛, q쪛, q쪛, q쪛);
+Test_N(q쪜, q쪜, q쪜, q쪜, q쪜);
+Test_N(q쪝, q쪝, q쪝, q쪝, q쪝);
+Test_N(q쪞, q쪞, q쪞, q쪞, q쪞);
+Test_N(q쪟, q쪟, q쪟, q쪟, q쪟);
+Test_N(q쪠, q쪠, q쪠, q쪠, q쪠);
+Test_N(q쪡, q쪡, q쪡, q쪡, q쪡);
+Test_N(q쪢, q쪢, q쪢, q쪢, q쪢);
+Test_N(q쪣, q쪣, q쪣, q쪣, q쪣);
+Test_N(q쪤, q쪤, q쪤, q쪤, q쪤);
+Test_N(q쪥, q쪥, q쪥, q쪥, q쪥);
+Test_N(q쪦, q쪦, q쪦, q쪦, q쪦);
+Test_N(q쪧, q쪧, q쪧, q쪧, q쪧);
+Test_N(q쪨, q쪨, q쪨, q쪨, q쪨);
+Test_N(q쪩, q쪩, q쪩, q쪩, q쪩);
+Test_N(q쪪, q쪪, q쪪, q쪪, q쪪);
+Test_N(q쪫, q쪫, q쪫, q쪫, q쪫);
+Test_N(q쪬, q쪬, q쪬, q쪬, q쪬);
+Test_N(q쪭, q쪭, q쪭, q쪭, q쪭);
+Test_N(q쪮, q쪮, q쪮, q쪮, q쪮);
+Test_N(q쪯, q쪯, q쪯, q쪯, q쪯);
+Test_N(q쪰, q쪰, q쪰, q쪰, q쪰);
+Test_N(q쪱, q쪱, q쪱, q쪱, q쪱);
+Test_N(q쪲, q쪲, q쪲, q쪲, q쪲);
+Test_N(q쪳, q쪳, q쪳, q쪳, q쪳);
+Test_N(q쪴, q쪴, q쪴, q쪴, q쪴);
+Test_N(q쪵, q쪵, q쪵, q쪵, q쪵);
+Test_N(q쪶, q쪶, q쪶, q쪶, q쪶);
+Test_N(q쪷, q쪷, q쪷, q쪷, q쪷);
+Test_N(q쪸, q쪸, q쪸, q쪸, q쪸);
+Test_N(q쪹, q쪹, q쪹, q쪹, q쪹);
+Test_N(q쪺, q쪺, q쪺, q쪺, q쪺);
+Test_N(q쪻, q쪻, q쪻, q쪻, q쪻);
+Test_N(q쪼, q쪼, q쪼, q쪼, q쪼);
+Test_N(q쪽, q쪽, q쪽, q쪽, q쪽);
+Test_N(q쪾, q쪾, q쪾, q쪾, q쪾);
+Test_N(q쪿, q쪿, q쪿, q쪿, q쪿);
+Test_N(q쫀, q쫀, q쫀, q쫀, q쫀);
+Test_N(q쫁, q쫁, q쫁, q쫁, q쫁);
+Test_N(q쫂, q쫂, q쫂, q쫂, q쫂);
+Test_N(q쫃, q쫃, q쫃, q쫃, q쫃);
+Test_N(q쫄, q쫄, q쫄, q쫄, q쫄);
+Test_N(q쫅, q쫅, q쫅, q쫅, q쫅);
+Test_N(q쫆, q쫆, q쫆, q쫆, q쫆);
+Test_N(q쫇, q쫇, q쫇, q쫇, q쫇);
+Test_N(q쫈, q쫈, q쫈, q쫈, q쫈);
+Test_N(q쫉, q쫉, q쫉, q쫉, q쫉);
+Test_N(q쫊, q쫊, q쫊, q쫊, q쫊);
+Test_N(q쫋, q쫋, q쫋, q쫋, q쫋);
+Test_N(q쫌, q쫌, q쫌, q쫌, q쫌);
+Test_N(q쫍, q쫍, q쫍, q쫍, q쫍);
+Test_N(q쫎, q쫎, q쫎, q쫎, q쫎);
+Test_N(q쫏, q쫏, q쫏, q쫏, q쫏);
+Test_N(q쫐, q쫐, q쫐, q쫐, q쫐);
+Test_N(q쫑, q쫑, q쫑, q쫑, q쫑);
+Test_N(q쫒, q쫒, q쫒, q쫒, q쫒);
+Test_N(q쫓, q쫓, q쫓, q쫓, q쫓);
+Test_N(q쫔, q쫔, q쫔, q쫔, q쫔);
+Test_N(q쫕, q쫕, q쫕, q쫕, q쫕);
+Test_N(q쫖, q쫖, q쫖, q쫖, q쫖);
+Test_N(q쫗, q쫗, q쫗, q쫗, q쫗);
+Test_N(q쫘, q쫘, q쫘, q쫘, q쫘);
+Test_N(q쫙, q쫙, q쫙, q쫙, q쫙);
+Test_N(q쫚, q쫚, q쫚, q쫚, q쫚);
+Test_N(q쫛, q쫛, q쫛, q쫛, q쫛);
+Test_N(q쫜, q쫜, q쫜, q쫜, q쫜);
+Test_N(q쫝, q쫝, q쫝, q쫝, q쫝);
+Test_N(q쫞, q쫞, q쫞, q쫞, q쫞);
+Test_N(q쫟, q쫟, q쫟, q쫟, q쫟);
+Test_N(q쫠, q쫠, q쫠, q쫠, q쫠);
+Test_N(q쫡, q쫡, q쫡, q쫡, q쫡);
+Test_N(q쫢, q쫢, q쫢, q쫢, q쫢);
+Test_N(q쫣, q쫣, q쫣, q쫣, q쫣);
+Test_N(q쫤, q쫤, q쫤, q쫤, q쫤);
+Test_N(q쫥, q쫥, q쫥, q쫥, q쫥);
+Test_N(q쫦, q쫦, q쫦, q쫦, q쫦);
+Test_N(q쫧, q쫧, q쫧, q쫧, q쫧);
+Test_N(q쫨, q쫨, q쫨, q쫨, q쫨);
+Test_N(q쫩, q쫩, q쫩, q쫩, q쫩);
+Test_N(q쫪, q쫪, q쫪, q쫪, q쫪);
+Test_N(q쫫, q쫫, q쫫, q쫫, q쫫);
+Test_N(q쫬, q쫬, q쫬, q쫬, q쫬);
+Test_N(q쫭, q쫭, q쫭, q쫭, q쫭);
+Test_N(q쫮, q쫮, q쫮, q쫮, q쫮);
+Test_N(q쫯, q쫯, q쫯, q쫯, q쫯);
+Test_N(q쫰, q쫰, q쫰, q쫰, q쫰);
+Test_N(q쫱, q쫱, q쫱, q쫱, q쫱);
+Test_N(q쫲, q쫲, q쫲, q쫲, q쫲);
+Test_N(q쫳, q쫳, q쫳, q쫳, q쫳);
+Test_N(q쫴, q쫴, q쫴, q쫴, q쫴);
+Test_N(q쫵, q쫵, q쫵, q쫵, q쫵);
+Test_N(q쫶, q쫶, q쫶, q쫶, q쫶);
+Test_N(q쫷, q쫷, q쫷, q쫷, q쫷);
+Test_N(q쫸, q쫸, q쫸, q쫸, q쫸);
+Test_N(q쫹, q쫹, q쫹, q쫹, q쫹);
+Test_N(q쫺, q쫺, q쫺, q쫺, q쫺);
+Test_N(q쫻, q쫻, q쫻, q쫻, q쫻);
+Test_N(q쫼, q쫼, q쫼, q쫼, q쫼);
+Test_N(q쫽, q쫽, q쫽, q쫽, q쫽);
+Test_N(q쫾, q쫾, q쫾, q쫾, q쫾);
+Test_N(q쫿, q쫿, q쫿, q쫿, q쫿);
+Test_N(q쬀, q쬀, q쬀, q쬀, q쬀);
+Test_N(q쬁, q쬁, q쬁, q쬁, q쬁);
+Test_N(q쬂, q쬂, q쬂, q쬂, q쬂);
+Test_N(q쬃, q쬃, q쬃, q쬃, q쬃);
+Test_N(q쬄, q쬄, q쬄, q쬄, q쬄);
+Test_N(q쬅, q쬅, q쬅, q쬅, q쬅);
+Test_N(q쬆, q쬆, q쬆, q쬆, q쬆);
+Test_N(q쬇, q쬇, q쬇, q쬇, q쬇);
+Test_N(q쬈, q쬈, q쬈, q쬈, q쬈);
+Test_N(q쬉, q쬉, q쬉, q쬉, q쬉);
+Test_N(q쬊, q쬊, q쬊, q쬊, q쬊);
+Test_N(q쬋, q쬋, q쬋, q쬋, q쬋);
+Test_N(q쬌, q쬌, q쬌, q쬌, q쬌);
+Test_N(q쬍, q쬍, q쬍, q쬍, q쬍);
+Test_N(q쬎, q쬎, q쬎, q쬎, q쬎);
+Test_N(q쬏, q쬏, q쬏, q쬏, q쬏);
+Test_N(q쬐, q쬐, q쬐, q쬐, q쬐);
+Test_N(q쬑, q쬑, q쬑, q쬑, q쬑);
+Test_N(q쬒, q쬒, q쬒, q쬒, q쬒);
+Test_N(q쬓, q쬓, q쬓, q쬓, q쬓);
+Test_N(q쬔, q쬔, q쬔, q쬔, q쬔);
+Test_N(q쬕, q쬕, q쬕, q쬕, q쬕);
+Test_N(q쬖, q쬖, q쬖, q쬖, q쬖);
+Test_N(q쬗, q쬗, q쬗, q쬗, q쬗);
+Test_N(q쬘, q쬘, q쬘, q쬘, q쬘);
+Test_N(q쬙, q쬙, q쬙, q쬙, q쬙);
+Test_N(q쬚, q쬚, q쬚, q쬚, q쬚);
+Test_N(q쬛, q쬛, q쬛, q쬛, q쬛);
+Test_N(q쬜, q쬜, q쬜, q쬜, q쬜);
+Test_N(q쬝, q쬝, q쬝, q쬝, q쬝);
+Test_N(q쬞, q쬞, q쬞, q쬞, q쬞);
+Test_N(q쬟, q쬟, q쬟, q쬟, q쬟);
+Test_N(q쬠, q쬠, q쬠, q쬠, q쬠);
+Test_N(q쬡, q쬡, q쬡, q쬡, q쬡);
+Test_N(q쬢, q쬢, q쬢, q쬢, q쬢);
+Test_N(q쬣, q쬣, q쬣, q쬣, q쬣);
+Test_N(q쬤, q쬤, q쬤, q쬤, q쬤);
+Test_N(q쬥, q쬥, q쬥, q쬥, q쬥);
+Test_N(q쬦, q쬦, q쬦, q쬦, q쬦);
+Test_N(q쬧, q쬧, q쬧, q쬧, q쬧);
+Test_N(q쬨, q쬨, q쬨, q쬨, q쬨);
+Test_N(q쬩, q쬩, q쬩, q쬩, q쬩);
+Test_N(q쬪, q쬪, q쬪, q쬪, q쬪);
+Test_N(q쬫, q쬫, q쬫, q쬫, q쬫);
+Test_N(q쬬, q쬬, q쬬, q쬬, q쬬);
+Test_N(q쬭, q쬭, q쬭, q쬭, q쬭);
+Test_N(q쬮, q쬮, q쬮, q쬮, q쬮);
+Test_N(q쬯, q쬯, q쬯, q쬯, q쬯);
+Test_N(q쬰, q쬰, q쬰, q쬰, q쬰);
+Test_N(q쬱, q쬱, q쬱, q쬱, q쬱);
+Test_N(q쬲, q쬲, q쬲, q쬲, q쬲);
+Test_N(q쬳, q쬳, q쬳, q쬳, q쬳);
+Test_N(q쬴, q쬴, q쬴, q쬴, q쬴);
+Test_N(q쬵, q쬵, q쬵, q쬵, q쬵);
+Test_N(q쬶, q쬶, q쬶, q쬶, q쬶);
+Test_N(q쬷, q쬷, q쬷, q쬷, q쬷);
+Test_N(q쬸, q쬸, q쬸, q쬸, q쬸);
+Test_N(q쬹, q쬹, q쬹, q쬹, q쬹);
+Test_N(q쬺, q쬺, q쬺, q쬺, q쬺);
+Test_N(q쬻, q쬻, q쬻, q쬻, q쬻);
+Test_N(q쬼, q쬼, q쬼, q쬼, q쬼);
+Test_N(q쬽, q쬽, q쬽, q쬽, q쬽);
+Test_N(q쬾, q쬾, q쬾, q쬾, q쬾);
+Test_N(q쬿, q쬿, q쬿, q쬿, q쬿);
+Test_N(q쭀, q쭀, q쭀, q쭀, q쭀);
+Test_N(q쭁, q쭁, q쭁, q쭁, q쭁);
+Test_N(q쭂, q쭂, q쭂, q쭂, q쭂);
+Test_N(q쭃, q쭃, q쭃, q쭃, q쭃);
+Test_N(q쭄, q쭄, q쭄, q쭄, q쭄);
+Test_N(q쭅, q쭅, q쭅, q쭅, q쭅);
+Test_N(q쭆, q쭆, q쭆, q쭆, q쭆);
+Test_N(q쭇, q쭇, q쭇, q쭇, q쭇);
+Test_N(q쭈, q쭈, q쭈, q쭈, q쭈);
+Test_N(q쭉, q쭉, q쭉, q쭉, q쭉);
+Test_N(q쭊, q쭊, q쭊, q쭊, q쭊);
+Test_N(q쭋, q쭋, q쭋, q쭋, q쭋);
+Test_N(q쭌, q쭌, q쭌, q쭌, q쭌);
+Test_N(q쭍, q쭍, q쭍, q쭍, q쭍);
+Test_N(q쭎, q쭎, q쭎, q쭎, q쭎);
+Test_N(q쭏, q쭏, q쭏, q쭏, q쭏);
+Test_N(q쭐, q쭐, q쭐, q쭐, q쭐);
+Test_N(q쭑, q쭑, q쭑, q쭑, q쭑);
+Test_N(q쭒, q쭒, q쭒, q쭒, q쭒);
+Test_N(q쭓, q쭓, q쭓, q쭓, q쭓);
+Test_N(q쭔, q쭔, q쭔, q쭔, q쭔);
+Test_N(q쭕, q쭕, q쭕, q쭕, q쭕);
+Test_N(q쭖, q쭖, q쭖, q쭖, q쭖);
+Test_N(q쭗, q쭗, q쭗, q쭗, q쭗);
+Test_N(q쭘, q쭘, q쭘, q쭘, q쭘);
+Test_N(q쭙, q쭙, q쭙, q쭙, q쭙);
+Test_N(q쭚, q쭚, q쭚, q쭚, q쭚);
+Test_N(q쭛, q쭛, q쭛, q쭛, q쭛);
+Test_N(q쭜, q쭜, q쭜, q쭜, q쭜);
+Test_N(q쭝, q쭝, q쭝, q쭝, q쭝);
+Test_N(q쭞, q쭞, q쭞, q쭞, q쭞);
+Test_N(q쭟, q쭟, q쭟, q쭟, q쭟);
+Test_N(q쭠, q쭠, q쭠, q쭠, q쭠);
+Test_N(q쭡, q쭡, q쭡, q쭡, q쭡);
+Test_N(q쭢, q쭢, q쭢, q쭢, q쭢);
+Test_N(q쭣, q쭣, q쭣, q쭣, q쭣);
+Test_N(q쭤, q쭤, q쭤, q쭤, q쭤);
+Test_N(q쭥, q쭥, q쭥, q쭥, q쭥);
+Test_N(q쭦, q쭦, q쭦, q쭦, q쭦);
+Test_N(q쭧, q쭧, q쭧, q쭧, q쭧);
+Test_N(q쭨, q쭨, q쭨, q쭨, q쭨);
+Test_N(q쭩, q쭩, q쭩, q쭩, q쭩);
+Test_N(q쭪, q쭪, q쭪, q쭪, q쭪);
+Test_N(q쭫, q쭫, q쭫, q쭫, q쭫);
+Test_N(q쭬, q쭬, q쭬, q쭬, q쭬);
+Test_N(q쭭, q쭭, q쭭, q쭭, q쭭);
+Test_N(q쭮, q쭮, q쭮, q쭮, q쭮);
+Test_N(q쭯, q쭯, q쭯, q쭯, q쭯);
+Test_N(q쭰, q쭰, q쭰, q쭰, q쭰);
+Test_N(q쭱, q쭱, q쭱, q쭱, q쭱);
+Test_N(q쭲, q쭲, q쭲, q쭲, q쭲);
+Test_N(q쭳, q쭳, q쭳, q쭳, q쭳);
+Test_N(q쭴, q쭴, q쭴, q쭴, q쭴);
+Test_N(q쭵, q쭵, q쭵, q쭵, q쭵);
+Test_N(q쭶, q쭶, q쭶, q쭶, q쭶);
+Test_N(q쭷, q쭷, q쭷, q쭷, q쭷);
+Test_N(q쭸, q쭸, q쭸, q쭸, q쭸);
+Test_N(q쭹, q쭹, q쭹, q쭹, q쭹);
+Test_N(q쭺, q쭺, q쭺, q쭺, q쭺);
+Test_N(q쭻, q쭻, q쭻, q쭻, q쭻);
+Test_N(q쭼, q쭼, q쭼, q쭼, q쭼);
+Test_N(q쭽, q쭽, q쭽, q쭽, q쭽);
+Test_N(q쭾, q쭾, q쭾, q쭾, q쭾);
+Test_N(q쭿, q쭿, q쭿, q쭿, q쭿);
+Test_N(q쮀, q쮀, q쮀, q쮀, q쮀);
+Test_N(q쮁, q쮁, q쮁, q쮁, q쮁);
+Test_N(q쮂, q쮂, q쮂, q쮂, q쮂);
+Test_N(q쮃, q쮃, q쮃, q쮃, q쮃);
+Test_N(q쮄, q쮄, q쮄, q쮄, q쮄);
+Test_N(q쮅, q쮅, q쮅, q쮅, q쮅);
+Test_N(q쮆, q쮆, q쮆, q쮆, q쮆);
+Test_N(q쮇, q쮇, q쮇, q쮇, q쮇);
+Test_N(q쮈, q쮈, q쮈, q쮈, q쮈);
+Test_N(q쮉, q쮉, q쮉, q쮉, q쮉);
+Test_N(q쮊, q쮊, q쮊, q쮊, q쮊);
+Test_N(q쮋, q쮋, q쮋, q쮋, q쮋);
+Test_N(q쮌, q쮌, q쮌, q쮌, q쮌);
+Test_N(q쮍, q쮍, q쮍, q쮍, q쮍);
+Test_N(q쮎, q쮎, q쮎, q쮎, q쮎);
+Test_N(q쮏, q쮏, q쮏, q쮏, q쮏);
+Test_N(q쮐, q쮐, q쮐, q쮐, q쮐);
+Test_N(q쮑, q쮑, q쮑, q쮑, q쮑);
+Test_N(q쮒, q쮒, q쮒, q쮒, q쮒);
+Test_N(q쮓, q쮓, q쮓, q쮓, q쮓);
+Test_N(q쮔, q쮔, q쮔, q쮔, q쮔);
+Test_N(q쮕, q쮕, q쮕, q쮕, q쮕);
+Test_N(q쮖, q쮖, q쮖, q쮖, q쮖);
+Test_N(q쮗, q쮗, q쮗, q쮗, q쮗);
+Test_N(q쮘, q쮘, q쮘, q쮘, q쮘);
+Test_N(q쮙, q쮙, q쮙, q쮙, q쮙);
+Test_N(q쮚, q쮚, q쮚, q쮚, q쮚);
+Test_N(q쮛, q쮛, q쮛, q쮛, q쮛);
+Test_N(q쮜, q쮜, q쮜, q쮜, q쮜);
+Test_N(q쮝, q쮝, q쮝, q쮝, q쮝);
+Test_N(q쮞, q쮞, q쮞, q쮞, q쮞);
+Test_N(q쮟, q쮟, q쮟, q쮟, q쮟);
+Test_N(q쮠, q쮠, q쮠, q쮠, q쮠);
+Test_N(q쮡, q쮡, q쮡, q쮡, q쮡);
+Test_N(q쮢, q쮢, q쮢, q쮢, q쮢);
+Test_N(q쮣, q쮣, q쮣, q쮣, q쮣);
+Test_N(q쮤, q쮤, q쮤, q쮤, q쮤);
+Test_N(q쮥, q쮥, q쮥, q쮥, q쮥);
+Test_N(q쮦, q쮦, q쮦, q쮦, q쮦);
+Test_N(q쮧, q쮧, q쮧, q쮧, q쮧);
+Test_N(q쮨, q쮨, q쮨, q쮨, q쮨);
+Test_N(q쮩, q쮩, q쮩, q쮩, q쮩);
+Test_N(q쮪, q쮪, q쮪, q쮪, q쮪);
+Test_N(q쮫, q쮫, q쮫, q쮫, q쮫);
+Test_N(q쮬, q쮬, q쮬, q쮬, q쮬);
+Test_N(q쮭, q쮭, q쮭, q쮭, q쮭);
+Test_N(q쮮, q쮮, q쮮, q쮮, q쮮);
+Test_N(q쮯, q쮯, q쮯, q쮯, q쮯);
+Test_N(q쮰, q쮰, q쮰, q쮰, q쮰);
+Test_N(q쮱, q쮱, q쮱, q쮱, q쮱);
+Test_N(q쮲, q쮲, q쮲, q쮲, q쮲);
+Test_N(q쮳, q쮳, q쮳, q쮳, q쮳);
+Test_N(q쮴, q쮴, q쮴, q쮴, q쮴);
+Test_N(q쮵, q쮵, q쮵, q쮵, q쮵);
+Test_N(q쮶, q쮶, q쮶, q쮶, q쮶);
+Test_N(q쮷, q쮷, q쮷, q쮷, q쮷);
+Test_N(q쮸, q쮸, q쮸, q쮸, q쮸);
+Test_N(q쮹, q쮹, q쮹, q쮹, q쮹);
+Test_N(q쮺, q쮺, q쮺, q쮺, q쮺);
+Test_N(q쮻, q쮻, q쮻, q쮻, q쮻);
+Test_N(q쮼, q쮼, q쮼, q쮼, q쮼);
+Test_N(q쮽, q쮽, q쮽, q쮽, q쮽);
+Test_N(q쮾, q쮾, q쮾, q쮾, q쮾);
+Test_N(q쮿, q쮿, q쮿, q쮿, q쮿);
+Test_N(q쯀, q쯀, q쯀, q쯀, q쯀);
+Test_N(q쯁, q쯁, q쯁, q쯁, q쯁);
+Test_N(q쯂, q쯂, q쯂, q쯂, q쯂);
+Test_N(q쯃, q쯃, q쯃, q쯃, q쯃);
+Test_N(q쯄, q쯄, q쯄, q쯄, q쯄);
+Test_N(q쯅, q쯅, q쯅, q쯅, q쯅);
+Test_N(q쯆, q쯆, q쯆, q쯆, q쯆);
+Test_N(q쯇, q쯇, q쯇, q쯇, q쯇);
+Test_N(q쯈, q쯈, q쯈, q쯈, q쯈);
+Test_N(q쯉, q쯉, q쯉, q쯉, q쯉);
+Test_N(q쯊, q쯊, q쯊, q쯊, q쯊);
+Test_N(q쯋, q쯋, q쯋, q쯋, q쯋);
+Test_N(q쯌, q쯌, q쯌, q쯌, q쯌);
+Test_N(q쯍, q쯍, q쯍, q쯍, q쯍);
+Test_N(q쯎, q쯎, q쯎, q쯎, q쯎);
+Test_N(q쯏, q쯏, q쯏, q쯏, q쯏);
+Test_N(q쯐, q쯐, q쯐, q쯐, q쯐);
+Test_N(q쯑, q쯑, q쯑, q쯑, q쯑);
+Test_N(q쯒, q쯒, q쯒, q쯒, q쯒);
+Test_N(q쯓, q쯓, q쯓, q쯓, q쯓);
+Test_N(q쯔, q쯔, q쯔, q쯔, q쯔);
+Test_N(q쯕, q쯕, q쯕, q쯕, q쯕);
+Test_N(q쯖, q쯖, q쯖, q쯖, q쯖);
+Test_N(q쯗, q쯗, q쯗, q쯗, q쯗);
+Test_N(q쯘, q쯘, q쯘, q쯘, q쯘);
+Test_N(q쯙, q쯙, q쯙, q쯙, q쯙);
+Test_N(q쯚, q쯚, q쯚, q쯚, q쯚);
+Test_N(q쯛, q쯛, q쯛, q쯛, q쯛);
+Test_N(q쯜, q쯜, q쯜, q쯜, q쯜);
+Test_N(q쯝, q쯝, q쯝, q쯝, q쯝);
+Test_N(q쯞, q쯞, q쯞, q쯞, q쯞);
+Test_N(q쯟, q쯟, q쯟, q쯟, q쯟);
+Test_N(q쯠, q쯠, q쯠, q쯠, q쯠);
+Test_N(q쯡, q쯡, q쯡, q쯡, q쯡);
+Test_N(q쯢, q쯢, q쯢, q쯢, q쯢);
+Test_N(q쯣, q쯣, q쯣, q쯣, q쯣);
+Test_N(q쯤, q쯤, q쯤, q쯤, q쯤);
+Test_N(q쯥, q쯥, q쯥, q쯥, q쯥);
+Test_N(q쯦, q쯦, q쯦, q쯦, q쯦);
+Test_N(q쯧, q쯧, q쯧, q쯧, q쯧);
+Test_N(q쯨, q쯨, q쯨, q쯨, q쯨);
+Test_N(q쯩, q쯩, q쯩, q쯩, q쯩);
+Test_N(q쯪, q쯪, q쯪, q쯪, q쯪);
+Test_N(q쯫, q쯫, q쯫, q쯫, q쯫);
+Test_N(q쯬, q쯬, q쯬, q쯬, q쯬);
+Test_N(q쯭, q쯭, q쯭, q쯭, q쯭);
+Test_N(q쯮, q쯮, q쯮, q쯮, q쯮);
+Test_N(q쯯, q쯯, q쯯, q쯯, q쯯);
+Test_N(q쯰, q쯰, q쯰, q쯰, q쯰);
+Test_N(q쯱, q쯱, q쯱, q쯱, q쯱);
+Test_N(q쯲, q쯲, q쯲, q쯲, q쯲);
+Test_N(q쯳, q쯳, q쯳, q쯳, q쯳);
+Test_N(q쯴, q쯴, q쯴, q쯴, q쯴);
+Test_N(q쯵, q쯵, q쯵, q쯵, q쯵);
+Test_N(q쯶, q쯶, q쯶, q쯶, q쯶);
+Test_N(q쯷, q쯷, q쯷, q쯷, q쯷);
+Test_N(q쯸, q쯸, q쯸, q쯸, q쯸);
+Test_N(q쯹, q쯹, q쯹, q쯹, q쯹);
+Test_N(q쯺, q쯺, q쯺, q쯺, q쯺);
+Test_N(q쯻, q쯻, q쯻, q쯻, q쯻);
+Test_N(q쯼, q쯼, q쯼, q쯼, q쯼);
+Test_N(q쯽, q쯽, q쯽, q쯽, q쯽);
+Test_N(q쯾, q쯾, q쯾, q쯾, q쯾);
+Test_N(q쯿, q쯿, q쯿, q쯿, q쯿);
+Test_N(q찀, q찀, q찀, q찀, q찀);
+Test_N(q찁, q찁, q찁, q찁, q찁);
+Test_N(q찂, q찂, q찂, q찂, q찂);
+Test_N(q찃, q찃, q찃, q찃, q찃);
+Test_N(q찄, q찄, q찄, q찄, q찄);
+Test_N(q찅, q찅, q찅, q찅, q찅);
+Test_N(q찆, q찆, q찆, q찆, q찆);
+Test_N(q찇, q찇, q찇, q찇, q찇);
+Test_N(q찈, q찈, q찈, q찈, q찈);
+Test_N(q찉, q찉, q찉, q찉, q찉);
+Test_N(q찊, q찊, q찊, q찊, q찊);
+Test_N(q찋, q찋, q찋, q찋, q찋);
+Test_N(q찌, q찌, q찌, q찌, q찌);
+Test_N(q찍, q찍, q찍, q찍, q찍);
+Test_N(q찎, q찎, q찎, q찎, q찎);
+Test_N(q찏, q찏, q찏, q찏, q찏);
+Test_N(q찐, q찐, q찐, q찐, q찐);
+Test_N(q찑, q찑, q찑, q찑, q찑);
+Test_N(q찒, q찒, q찒, q찒, q찒);
+Test_N(q찓, q찓, q찓, q찓, q찓);
+Test_N(q찔, q찔, q찔, q찔, q찔);
+Test_N(q찕, q찕, q찕, q찕, q찕);
+Test_N(q찖, q찖, q찖, q찖, q찖);
+Test_N(q찗, q찗, q찗, q찗, q찗);
+Test_N(q찘, q찘, q찘, q찘, q찘);
+Test_N(q찙, q찙, q찙, q찙, q찙);
+Test_N(q찚, q찚, q찚, q찚, q찚);
+Test_N(q찛, q찛, q찛, q찛, q찛);
+Test_N(q찜, q찜, q찜, q찜, q찜);
+Test_N(q찝, q찝, q찝, q찝, q찝);
+Test_N(q찞, q찞, q찞, q찞, q찞);
+Test_N(q찟, q찟, q찟, q찟, q찟);
+Test_N(q찠, q찠, q찠, q찠, q찠);
+Test_N(q찡, q찡, q찡, q찡, q찡);
+Test_N(q찢, q찢, q찢, q찢, q찢);
+Test_N(q찣, q찣, q찣, q찣, q찣);
+Test_N(q찤, q찤, q찤, q찤, q찤);
+Test_N(q찥, q찥, q찥, q찥, q찥);
+Test_N(q찦, q찦, q찦, q찦, q찦);
+Test_N(q찧, q찧, q찧, q찧, q찧);
+Test_N(q차, q차, q차, q차, q차);
+Test_N(q착, q착, q착, q착, q착);
+Test_N(q찪, q찪, q찪, q찪, q찪);
+Test_N(q찫, q찫, q찫, q찫, q찫);
+Test_N(q찬, q찬, q찬, q찬, q찬);
+Test_N(q찭, q찭, q찭, q찭, q찭);
+Test_N(q찮, q찮, q찮, q찮, q찮);
+Test_N(q찯, q찯, q찯, q찯, q찯);
+Test_N(q찰, q찰, q찰, q찰, q찰);
+Test_N(q찱, q찱, q찱, q찱, q찱);
+Test_N(q찲, q찲, q찲, q찲, q찲);
+Test_N(q찳, q찳, q찳, q찳, q찳);
+Test_N(q찴, q찴, q찴, q찴, q찴);
+Test_N(q찵, q찵, q찵, q찵, q찵);
+Test_N(q찶, q찶, q찶, q찶, q찶);
+Test_N(q찷, q찷, q찷, q찷, q찷);
+Test_N(q참, q참, q참, q참, q참);
+Test_N(q찹, q찹, q찹, q찹, q찹);
+Test_N(q찺, q찺, q찺, q찺, q찺);
+Test_N(q찻, q찻, q찻, q찻, q찻);
+Test_N(q찼, q찼, q찼, q찼, q찼);
+Test_N(q창, q창, q창, q창, q창);
+Test_N(q찾, q찾, q찾, q찾, q찾);
+Test_N(q찿, q찿, q찿, q찿, q찿);
+Test_N(q챀, q챀, q챀, q챀, q챀);
+Test_N(q챁, q챁, q챁, q챁, q챁);
+Test_N(q챂, q챂, q챂, q챂, q챂);
+Test_N(q챃, q챃, q챃, q챃, q챃);
+Test_N(q채, q채, q채, q채, q채);
+Test_N(q책, q책, q책, q책, q책);
+Test_N(q챆, q챆, q챆, q챆, q챆);
+Test_N(q챇, q챇, q챇, q챇, q챇);
+Test_N(q챈, q챈, q챈, q챈, q챈);
+Test_N(q챉, q챉, q챉, q챉, q챉);
+Test_N(q챊, q챊, q챊, q챊, q챊);
+Test_N(q챋, q챋, q챋, q챋, q챋);
+Test_N(q챌, q챌, q챌, q챌, q챌);
+Test_N(q챍, q챍, q챍, q챍, q챍);
+Test_N(q챎, q챎, q챎, q챎, q챎);
+Test_N(q챏, q챏, q챏, q챏, q챏);
+Test_N(q챐, q챐, q챐, q챐, q챐);
+Test_N(q챑, q챑, q챑, q챑, q챑);
+Test_N(q챒, q챒, q챒, q챒, q챒);
+Test_N(q챓, q챓, q챓, q챓, q챓);
+Test_N(q챔, q챔, q챔, q챔, q챔);
+Test_N(q챕, q챕, q챕, q챕, q챕);
+Test_N(q챖, q챖, q챖, q챖, q챖);
+Test_N(q챗, q챗, q챗, q챗, q챗);
+Test_N(q챘, q챘, q챘, q챘, q챘);
+Test_N(q챙, q챙, q챙, q챙, q챙);
+Test_N(q챚, q챚, q챚, q챚, q챚);
+Test_N(q챛, q챛, q챛, q챛, q챛);
+Test_N(q챜, q챜, q챜, q챜, q챜);
+Test_N(q챝, q챝, q챝, q챝, q챝);
+Test_N(q챞, q챞, q챞, q챞, q챞);
+Test_N(q챟, q챟, q챟, q챟, q챟);
+Test_N(q챠, q챠, q챠, q챠, q챠);
+Test_N(q챡, q챡, q챡, q챡, q챡);
+Test_N(q챢, q챢, q챢, q챢, q챢);
+Test_N(q챣, q챣, q챣, q챣, q챣);
+Test_N(q챤, q챤, q챤, q챤, q챤);
+Test_N(q챥, q챥, q챥, q챥, q챥);
+Test_N(q챦, q챦, q챦, q챦, q챦);
+Test_N(q챧, q챧, q챧, q챧, q챧);
+Test_N(q챨, q챨, q챨, q챨, q챨);
+Test_N(q챩, q챩, q챩, q챩, q챩);
+Test_N(q챪, q챪, q챪, q챪, q챪);
+Test_N(q챫, q챫, q챫, q챫, q챫);
+Test_N(q챬, q챬, q챬, q챬, q챬);
+Test_N(q챭, q챭, q챭, q챭, q챭);
+Test_N(q챮, q챮, q챮, q챮, q챮);
+Test_N(q챯, q챯, q챯, q챯, q챯);
+Test_N(q챰, q챰, q챰, q챰, q챰);
+Test_N(q챱, q챱, q챱, q챱, q챱);
+Test_N(q챲, q챲, q챲, q챲, q챲);
+Test_N(q챳, q챳, q챳, q챳, q챳);
+Test_N(q챴, q챴, q챴, q챴, q챴);
+Test_N(q챵, q챵, q챵, q챵, q챵);
+Test_N(q챶, q챶, q챶, q챶, q챶);
+Test_N(q챷, q챷, q챷, q챷, q챷);
+Test_N(q챸, q챸, q챸, q챸, q챸);
+Test_N(q챹, q챹, q챹, q챹, q챹);
+Test_N(q챺, q챺, q챺, q챺, q챺);
+Test_N(q챻, q챻, q챻, q챻, q챻);
+Test_N(q챼, q챼, q챼, q챼, q챼);
+Test_N(q챽, q챽, q챽, q챽, q챽);
+Test_N(q챾, q챾, q챾, q챾, q챾);
+Test_N(q챿, q챿, q챿, q챿, q챿);
+Test_N(q첀, q첀, q첀, q첀, q첀);
+Test_N(q첁, q첁, q첁, q첁, q첁);
+Test_N(q첂, q첂, q첂, q첂, q첂);
+Test_N(q첃, q첃, q첃, q첃, q첃);
+Test_N(q첄, q첄, q첄, q첄, q첄);
+Test_N(q첅, q첅, q첅, q첅, q첅);
+Test_N(q첆, q첆, q첆, q첆, q첆);
+Test_N(q첇, q첇, q첇, q첇, q첇);
+Test_N(q첈, q첈, q첈, q첈, q첈);
+Test_N(q첉, q첉, q첉, q첉, q첉);
+Test_N(q첊, q첊, q첊, q첊, q첊);
+Test_N(q첋, q첋, q첋, q첋, q첋);
+Test_N(q첌, q첌, q첌, q첌, q첌);
+Test_N(q첍, q첍, q첍, q첍, q첍);
+Test_N(q첎, q첎, q첎, q첎, q첎);
+Test_N(q첏, q첏, q첏, q첏, q첏);
+Test_N(q첐, q첐, q첐, q첐, q첐);
+Test_N(q첑, q첑, q첑, q첑, q첑);
+Test_N(q첒, q첒, q첒, q첒, q첒);
+Test_N(q첓, q첓, q첓, q첓, q첓);
+Test_N(q첔, q첔, q첔, q첔, q첔);
+Test_N(q첕, q첕, q첕, q첕, q첕);
+Test_N(q첖, q첖, q첖, q첖, q첖);
+Test_N(q첗, q첗, q첗, q첗, q첗);
+Test_N(q처, q처, q처, q처, q처);
+Test_N(q척, q척, q척, q척, q척);
+Test_N(q첚, q첚, q첚, q첚, q첚);
+Test_N(q첛, q첛, q첛, q첛, q첛);
+Test_N(q천, q천, q천, q천, q천);
+Test_N(q첝, q첝, q첝, q첝, q첝);
+Test_N(q첞, q첞, q첞, q첞, q첞);
+Test_N(q첟, q첟, q첟, q첟, q첟);
+Test_N(q철, q철, q철, q철, q철);
+Test_N(q첡, q첡, q첡, q첡, q첡);
+Test_N(q첢, q첢, q첢, q첢, q첢);
+Test_N(q첣, q첣, q첣, q첣, q첣);
+Test_N(q첤, q첤, q첤, q첤, q첤);
+Test_N(q첥, q첥, q첥, q첥, q첥);
+Test_N(q첦, q첦, q첦, q첦, q첦);
+Test_N(q첧, q첧, q첧, q첧, q첧);
+Test_N(q첨, q첨, q첨, q첨, q첨);
+Test_N(q첩, q첩, q첩, q첩, q첩);
+Test_N(q첪, q첪, q첪, q첪, q첪);
+Test_N(q첫, q첫, q첫, q첫, q첫);
+Test_N(q첬, q첬, q첬, q첬, q첬);
+Test_N(q청, q청, q청, q청, q청);
+Test_N(q첮, q첮, q첮, q첮, q첮);
+Test_N(q첯, q첯, q첯, q첯, q첯);
+Test_N(q첰, q첰, q첰, q첰, q첰);
+Test_N(q첱, q첱, q첱, q첱, q첱);
+Test_N(q첲, q첲, q첲, q첲, q첲);
+Test_N(q첳, q첳, q첳, q첳, q첳);
+Test_N(q체, q체, q체, q체, q체);
+Test_N(q첵, q첵, q첵, q첵, q첵);
+Test_N(q첶, q첶, q첶, q첶, q첶);
+Test_N(q첷, q첷, q첷, q첷, q첷);
+Test_N(q첸, q첸, q첸, q첸, q첸);
+Test_N(q첹, q첹, q첹, q첹, q첹);
+Test_N(q첺, q첺, q첺, q첺, q첺);
+Test_N(q첻, q첻, q첻, q첻, q첻);
+Test_N(q첼, q첼, q첼, q첼, q첼);
+Test_N(q첽, q첽, q첽, q첽, q첽);
+Test_N(q첾, q첾, q첾, q첾, q첾);
+Test_N(q첿, q첿, q첿, q첿, q첿);
+Test_N(q쳀, q쳀, q쳀, q쳀, q쳀);
+Test_N(q쳁, q쳁, q쳁, q쳁, q쳁);
+Test_N(q쳂, q쳂, q쳂, q쳂, q쳂);
+Test_N(q쳃, q쳃, q쳃, q쳃, q쳃);
+Test_N(q쳄, q쳄, q쳄, q쳄, q쳄);
+Test_N(q쳅, q쳅, q쳅, q쳅, q쳅);
+Test_N(q쳆, q쳆, q쳆, q쳆, q쳆);
+Test_N(q쳇, q쳇, q쳇, q쳇, q쳇);
+Test_N(q쳈, q쳈, q쳈, q쳈, q쳈);
+Test_N(q쳉, q쳉, q쳉, q쳉, q쳉);
+Test_N(q쳊, q쳊, q쳊, q쳊, q쳊);
+Test_N(q쳋, q쳋, q쳋, q쳋, q쳋);
+Test_N(q쳌, q쳌, q쳌, q쳌, q쳌);
+Test_N(q쳍, q쳍, q쳍, q쳍, q쳍);
+Test_N(q쳎, q쳎, q쳎, q쳎, q쳎);
+Test_N(q쳏, q쳏, q쳏, q쳏, q쳏);
+Test_N(q쳐, q쳐, q쳐, q쳐, q쳐);
+Test_N(q쳑, q쳑, q쳑, q쳑, q쳑);
+Test_N(q쳒, q쳒, q쳒, q쳒, q쳒);
+Test_N(q쳓, q쳓, q쳓, q쳓, q쳓);
+Test_N(q쳔, q쳔, q쳔, q쳔, q쳔);
+Test_N(q쳕, q쳕, q쳕, q쳕, q쳕);
+Test_N(q쳖, q쳖, q쳖, q쳖, q쳖);
+Test_N(q쳗, q쳗, q쳗, q쳗, q쳗);
+Test_N(q쳘, q쳘, q쳘, q쳘, q쳘);
+Test_N(q쳙, q쳙, q쳙, q쳙, q쳙);
+Test_N(q쳚, q쳚, q쳚, q쳚, q쳚);
+Test_N(q쳛, q쳛, q쳛, q쳛, q쳛);
+Test_N(q쳜, q쳜, q쳜, q쳜, q쳜);
+Test_N(q쳝, q쳝, q쳝, q쳝, q쳝);
+Test_N(q쳞, q쳞, q쳞, q쳞, q쳞);
+Test_N(q쳟, q쳟, q쳟, q쳟, q쳟);
+Test_N(q쳠, q쳠, q쳠, q쳠, q쳠);
+Test_N(q쳡, q쳡, q쳡, q쳡, q쳡);
+Test_N(q쳢, q쳢, q쳢, q쳢, q쳢);
+Test_N(q쳣, q쳣, q쳣, q쳣, q쳣);
+Test_N(q쳤, q쳤, q쳤, q쳤, q쳤);
+Test_N(q쳥, q쳥, q쳥, q쳥, q쳥);
+Test_N(q쳦, q쳦, q쳦, q쳦, q쳦);
+Test_N(q쳧, q쳧, q쳧, q쳧, q쳧);
+Test_N(q쳨, q쳨, q쳨, q쳨, q쳨);
+Test_N(q쳩, q쳩, q쳩, q쳩, q쳩);
+Test_N(q쳪, q쳪, q쳪, q쳪, q쳪);
+Test_N(q쳫, q쳫, q쳫, q쳫, q쳫);
+Test_N(q쳬, q쳬, q쳬, q쳬, q쳬);
+Test_N(q쳭, q쳭, q쳭, q쳭, q쳭);
+Test_N(q쳮, q쳮, q쳮, q쳮, q쳮);
+Test_N(q쳯, q쳯, q쳯, q쳯, q쳯);
+Test_N(q쳰, q쳰, q쳰, q쳰, q쳰);
+Test_N(q쳱, q쳱, q쳱, q쳱, q쳱);
+Test_N(q쳲, q쳲, q쳲, q쳲, q쳲);
+Test_N(q쳳, q쳳, q쳳, q쳳, q쳳);
+Test_N(q쳴, q쳴, q쳴, q쳴, q쳴);
+Test_N(q쳵, q쳵, q쳵, q쳵, q쳵);
+Test_N(q쳶, q쳶, q쳶, q쳶, q쳶);
+Test_N(q쳷, q쳷, q쳷, q쳷, q쳷);
+Test_N(q쳸, q쳸, q쳸, q쳸, q쳸);
+Test_N(q쳹, q쳹, q쳹, q쳹, q쳹);
+Test_N(q쳺, q쳺, q쳺, q쳺, q쳺);
+Test_N(q쳻, q쳻, q쳻, q쳻, q쳻);
+Test_N(q쳼, q쳼, q쳼, q쳼, q쳼);
+Test_N(q쳽, q쳽, q쳽, q쳽, q쳽);
+Test_N(q쳾, q쳾, q쳾, q쳾, q쳾);
+Test_N(q쳿, q쳿, q쳿, q쳿, q쳿);
+Test_N(q촀, q촀, q촀, q촀, q촀);
+Test_N(q촁, q촁, q촁, q촁, q촁);
+Test_N(q촂, q촂, q촂, q촂, q촂);
+Test_N(q촃, q촃, q촃, q촃, q촃);
+Test_N(q촄, q촄, q촄, q촄, q촄);
+Test_N(q촅, q촅, q촅, q촅, q촅);
+Test_N(q촆, q촆, q촆, q촆, q촆);
+Test_N(q촇, q촇, q촇, q촇, q촇);
+Test_N(q초, q초, q초, q초, q초);
+Test_N(q촉, q촉, q촉, q촉, q촉);
+Test_N(q촊, q촊, q촊, q촊, q촊);
+Test_N(q촋, q촋, q촋, q촋, q촋);
+Test_N(q촌, q촌, q촌, q촌, q촌);
+Test_N(q촍, q촍, q촍, q촍, q촍);
+Test_N(q촎, q촎, q촎, q촎, q촎);
+Test_N(q촏, q촏, q촏, q촏, q촏);
+Test_N(q촐, q촐, q촐, q촐, q촐);
+Test_N(q촑, q촑, q촑, q촑, q촑);
+Test_N(q촒, q촒, q촒, q촒, q촒);
+Test_N(q촓, q촓, q촓, q촓, q촓);
+Test_N(q촔, q촔, q촔, q촔, q촔);
+Test_N(q촕, q촕, q촕, q촕, q촕);
+Test_N(q촖, q촖, q촖, q촖, q촖);
+Test_N(q촗, q촗, q촗, q촗, q촗);
+Test_N(q촘, q촘, q촘, q촘, q촘);
+Test_N(q촙, q촙, q촙, q촙, q촙);
+Test_N(q촚, q촚, q촚, q촚, q촚);
+Test_N(q촛, q촛, q촛, q촛, q촛);
+Test_N(q촜, q촜, q촜, q촜, q촜);
+Test_N(q총, q총, q총, q총, q총);
+Test_N(q촞, q촞, q촞, q촞, q촞);
+Test_N(q촟, q촟, q촟, q촟, q촟);
+Test_N(q촠, q촠, q촠, q촠, q촠);
+Test_N(q촡, q촡, q촡, q촡, q촡);
+Test_N(q촢, q촢, q촢, q촢, q촢);
+Test_N(q촣, q촣, q촣, q촣, q촣);
+Test_N(q촤, q촤, q촤, q촤, q촤);
+Test_N(q촥, q촥, q촥, q촥, q촥);
+Test_N(q촦, q촦, q촦, q촦, q촦);
+Test_N(q촧, q촧, q촧, q촧, q촧);
+Test_N(q촨, q촨, q촨, q촨, q촨);
+Test_N(q촩, q촩, q촩, q촩, q촩);
+Test_N(q촪, q촪, q촪, q촪, q촪);
+Test_N(q촫, q촫, q촫, q촫, q촫);
+Test_N(q촬, q촬, q촬, q촬, q촬);
+Test_N(q촭, q촭, q촭, q촭, q촭);
+Test_N(q촮, q촮, q촮, q촮, q촮);
+Test_N(q촯, q촯, q촯, q촯, q촯);
+Test_N(q촰, q촰, q촰, q촰, q촰);
+Test_N(q촱, q촱, q촱, q촱, q촱);
+Test_N(q촲, q촲, q촲, q촲, q촲);
+Test_N(q촳, q촳, q촳, q촳, q촳);
+Test_N(q촴, q촴, q촴, q촴, q촴);
+Test_N(q촵, q촵, q촵, q촵, q촵);
+Test_N(q촶, q촶, q촶, q촶, q촶);
+Test_N(q촷, q촷, q촷, q촷, q촷);
+Test_N(q촸, q촸, q촸, q촸, q촸);
+Test_N(q촹, q촹, q촹, q촹, q촹);
+Test_N(q촺, q촺, q촺, q촺, q촺);
+Test_N(q촻, q촻, q촻, q촻, q촻);
+Test_N(q촼, q촼, q촼, q촼, q촼);
+Test_N(q촽, q촽, q촽, q촽, q촽);
+Test_N(q촾, q촾, q촾, q촾, q촾);
+Test_N(q촿, q촿, q촿, q촿, q촿);
+Test_N(q쵀, q쵀, q쵀, q쵀, q쵀);
+Test_N(q쵁, q쵁, q쵁, q쵁, q쵁);
+Test_N(q쵂, q쵂, q쵂, q쵂, q쵂);
+Test_N(q쵃, q쵃, q쵃, q쵃, q쵃);
+Test_N(q쵄, q쵄, q쵄, q쵄, q쵄);
+Test_N(q쵅, q쵅, q쵅, q쵅, q쵅);
+Test_N(q쵆, q쵆, q쵆, q쵆, q쵆);
+Test_N(q쵇, q쵇, q쵇, q쵇, q쵇);
+Test_N(q쵈, q쵈, q쵈, q쵈, q쵈);
+Test_N(q쵉, q쵉, q쵉, q쵉, q쵉);
+Test_N(q쵊, q쵊, q쵊, q쵊, q쵊);
+Test_N(q쵋, q쵋, q쵋, q쵋, q쵋);
+Test_N(q쵌, q쵌, q쵌, q쵌, q쵌);
+Test_N(q쵍, q쵍, q쵍, q쵍, q쵍);
+Test_N(q쵎, q쵎, q쵎, q쵎, q쵎);
+Test_N(q쵏, q쵏, q쵏, q쵏, q쵏);
+Test_N(q쵐, q쵐, q쵐, q쵐, q쵐);
+Test_N(q쵑, q쵑, q쵑, q쵑, q쵑);
+Test_N(q쵒, q쵒, q쵒, q쵒, q쵒);
+Test_N(q쵓, q쵓, q쵓, q쵓, q쵓);
+Test_N(q쵔, q쵔, q쵔, q쵔, q쵔);
+Test_N(q쵕, q쵕, q쵕, q쵕, q쵕);
+Test_N(q쵖, q쵖, q쵖, q쵖, q쵖);
+Test_N(q쵗, q쵗, q쵗, q쵗, q쵗);
+Test_N(q쵘, q쵘, q쵘, q쵘, q쵘);
+Test_N(q쵙, q쵙, q쵙, q쵙, q쵙);
+Test_N(q쵚, q쵚, q쵚, q쵚, q쵚);
+Test_N(q쵛, q쵛, q쵛, q쵛, q쵛);
+Test_N(q최, q최, q최, q최, q최);
+Test_N(q쵝, q쵝, q쵝, q쵝, q쵝);
+Test_N(q쵞, q쵞, q쵞, q쵞, q쵞);
+Test_N(q쵟, q쵟, q쵟, q쵟, q쵟);
+Test_N(q쵠, q쵠, q쵠, q쵠, q쵠);
+Test_N(q쵡, q쵡, q쵡, q쵡, q쵡);
+Test_N(q쵢, q쵢, q쵢, q쵢, q쵢);
+Test_N(q쵣, q쵣, q쵣, q쵣, q쵣);
+Test_N(q쵤, q쵤, q쵤, q쵤, q쵤);
+Test_N(q쵥, q쵥, q쵥, q쵥, q쵥);
+Test_N(q쵦, q쵦, q쵦, q쵦, q쵦);
+Test_N(q쵧, q쵧, q쵧, q쵧, q쵧);
+Test_N(q쵨, q쵨, q쵨, q쵨, q쵨);
+Test_N(q쵩, q쵩, q쵩, q쵩, q쵩);
+Test_N(q쵪, q쵪, q쵪, q쵪, q쵪);
+Test_N(q쵫, q쵫, q쵫, q쵫, q쵫);
+Test_N(q쵬, q쵬, q쵬, q쵬, q쵬);
+Test_N(q쵭, q쵭, q쵭, q쵭, q쵭);
+Test_N(q쵮, q쵮, q쵮, q쵮, q쵮);
+Test_N(q쵯, q쵯, q쵯, q쵯, q쵯);
+Test_N(q쵰, q쵰, q쵰, q쵰, q쵰);
+Test_N(q쵱, q쵱, q쵱, q쵱, q쵱);
+Test_N(q쵲, q쵲, q쵲, q쵲, q쵲);
+Test_N(q쵳, q쵳, q쵳, q쵳, q쵳);
+Test_N(q쵴, q쵴, q쵴, q쵴, q쵴);
+Test_N(q쵵, q쵵, q쵵, q쵵, q쵵);
+Test_N(q쵶, q쵶, q쵶, q쵶, q쵶);
+Test_N(q쵷, q쵷, q쵷, q쵷, q쵷);
+Test_N(q쵸, q쵸, q쵸, q쵸, q쵸);
+Test_N(q쵹, q쵹, q쵹, q쵹, q쵹);
+Test_N(q쵺, q쵺, q쵺, q쵺, q쵺);
+Test_N(q쵻, q쵻, q쵻, q쵻, q쵻);
+Test_N(q쵼, q쵼, q쵼, q쵼, q쵼);
+Test_N(q쵽, q쵽, q쵽, q쵽, q쵽);
+Test_N(q쵾, q쵾, q쵾, q쵾, q쵾);
+Test_N(q쵿, q쵿, q쵿, q쵿, q쵿);
+Test_N(q춀, q춀, q춀, q춀, q춀);
+Test_N(q춁, q춁, q춁, q춁, q춁);
+Test_N(q춂, q춂, q춂, q춂, q춂);
+Test_N(q춃, q춃, q춃, q춃, q춃);
+Test_N(q춄, q춄, q춄, q춄, q춄);
+Test_N(q춅, q춅, q춅, q춅, q춅);
+Test_N(q춆, q춆, q춆, q춆, q춆);
+Test_N(q춇, q춇, q춇, q춇, q춇);
+Test_N(q춈, q춈, q춈, q춈, q춈);
+Test_N(q춉, q춉, q춉, q춉, q춉);
+Test_N(q춊, q춊, q춊, q춊, q춊);
+Test_N(q춋, q춋, q춋, q춋, q춋);
+Test_N(q춌, q춌, q춌, q춌, q춌);
+Test_N(q춍, q춍, q춍, q춍, q춍);
+Test_N(q춎, q춎, q춎, q춎, q춎);
+Test_N(q춏, q춏, q춏, q춏, q춏);
+Test_N(q춐, q춐, q춐, q춐, q춐);
+Test_N(q춑, q춑, q춑, q춑, q춑);
+Test_N(q춒, q춒, q춒, q춒, q춒);
+Test_N(q춓, q춓, q춓, q춓, q춓);
+Test_N(q추, q추, q추, q추, q추);
+Test_N(q축, q축, q축, q축, q축);
+Test_N(q춖, q춖, q춖, q춖, q춖);
+Test_N(q춗, q춗, q춗, q춗, q춗);
+Test_N(q춘, q춘, q춘, q춘, q춘);
+Test_N(q춙, q춙, q춙, q춙, q춙);
+Test_N(q춚, q춚, q춚, q춚, q춚);
+Test_N(q춛, q춛, q춛, q춛, q춛);
+Test_N(q출, q출, q출, q출, q출);
+Test_N(q춝, q춝, q춝, q춝, q춝);
+Test_N(q춞, q춞, q춞, q춞, q춞);
+Test_N(q춟, q춟, q춟, q춟, q춟);
+Test_N(q춠, q춠, q춠, q춠, q춠);
+Test_N(q춡, q춡, q춡, q춡, q춡);
+Test_N(q춢, q춢, q춢, q춢, q춢);
+Test_N(q춣, q춣, q춣, q춣, q춣);
+Test_N(q춤, q춤, q춤, q춤, q춤);
+Test_N(q춥, q춥, q춥, q춥, q춥);
+Test_N(q춦, q춦, q춦, q춦, q춦);
+Test_N(q춧, q춧, q춧, q춧, q춧);
+Test_N(q춨, q춨, q춨, q춨, q춨);
+Test_N(q충, q충, q충, q충, q충);
+Test_N(q춪, q춪, q춪, q춪, q춪);
+Test_N(q춫, q춫, q춫, q춫, q춫);
+Test_N(q춬, q춬, q춬, q춬, q춬);
+Test_N(q춭, q춭, q춭, q춭, q춭);
+Test_N(q춮, q춮, q춮, q춮, q춮);
+Test_N(q춯, q춯, q춯, q춯, q춯);
+Test_N(q춰, q춰, q춰, q춰, q춰);
+Test_N(q춱, q춱, q춱, q춱, q춱);
+Test_N(q춲, q춲, q춲, q춲, q춲);
+Test_N(q춳, q춳, q춳, q춳, q춳);
+Test_N(q춴, q춴, q춴, q춴, q춴);
+Test_N(q춵, q춵, q춵, q춵, q춵);
+Test_N(q춶, q춶, q춶, q춶, q춶);
+Test_N(q춷, q춷, q춷, q춷, q춷);
+Test_N(q춸, q춸, q춸, q춸, q춸);
+Test_N(q춹, q춹, q춹, q춹, q춹);
+Test_N(q춺, q춺, q춺, q춺, q춺);
+Test_N(q춻, q춻, q춻, q춻, q춻);
+Test_N(q춼, q춼, q춼, q춼, q춼);
+Test_N(q춽, q춽, q춽, q춽, q춽);
+Test_N(q춾, q춾, q춾, q춾, q춾);
+Test_N(q춿, q춿, q춿, q춿, q춿);
+Test_N(q췀, q췀, q췀, q췀, q췀);
+Test_N(q췁, q췁, q췁, q췁, q췁);
+Test_N(q췂, q췂, q췂, q췂, q췂);
+Test_N(q췃, q췃, q췃, q췃, q췃);
+Test_N(q췄, q췄, q췄, q췄, q췄);
+Test_N(q췅, q췅, q췅, q췅, q췅);
+Test_N(q췆, q췆, q췆, q췆, q췆);
+Test_N(q췇, q췇, q췇, q췇, q췇);
+Test_N(q췈, q췈, q췈, q췈, q췈);
+Test_N(q췉, q췉, q췉, q췉, q췉);
+Test_N(q췊, q췊, q췊, q췊, q췊);
+Test_N(q췋, q췋, q췋, q췋, q췋);
+Test_N(q췌, q췌, q췌, q췌, q췌);
+Test_N(q췍, q췍, q췍, q췍, q췍);
+Test_N(q췎, q췎, q췎, q췎, q췎);
+Test_N(q췏, q췏, q췏, q췏, q췏);
+Test_N(q췐, q췐, q췐, q췐, q췐);
+Test_N(q췑, q췑, q췑, q췑, q췑);
+Test_N(q췒, q췒, q췒, q췒, q췒);
+Test_N(q췓, q췓, q췓, q췓, q췓);
+Test_N(q췔, q췔, q췔, q췔, q췔);
+Test_N(q췕, q췕, q췕, q췕, q췕);
+Test_N(q췖, q췖, q췖, q췖, q췖);
+Test_N(q췗, q췗, q췗, q췗, q췗);
+Test_N(q췘, q췘, q췘, q췘, q췘);
+Test_N(q췙, q췙, q췙, q췙, q췙);
+Test_N(q췚, q췚, q췚, q췚, q췚);
+Test_N(q췛, q췛, q췛, q췛, q췛);
+Test_N(q췜, q췜, q췜, q췜, q췜);
+Test_N(q췝, q췝, q췝, q췝, q췝);
+Test_N(q췞, q췞, q췞, q췞, q췞);
+Test_N(q췟, q췟, q췟, q췟, q췟);
+Test_N(q췠, q췠, q췠, q췠, q췠);
+Test_N(q췡, q췡, q췡, q췡, q췡);
+Test_N(q췢, q췢, q췢, q췢, q췢);
+Test_N(q췣, q췣, q췣, q췣, q췣);
+Test_N(q췤, q췤, q췤, q췤, q췤);
+Test_N(q췥, q췥, q췥, q췥, q췥);
+Test_N(q췦, q췦, q췦, q췦, q췦);
+Test_N(q췧, q췧, q췧, q췧, q췧);
+Test_N(q취, q취, q취, q취, q취);
+Test_N(q췩, q췩, q췩, q췩, q췩);
+Test_N(q췪, q췪, q췪, q췪, q췪);
+Test_N(q췫, q췫, q췫, q췫, q췫);
+Test_N(q췬, q췬, q췬, q췬, q췬);
+Test_N(q췭, q췭, q췭, q췭, q췭);
+Test_N(q췮, q췮, q췮, q췮, q췮);
+Test_N(q췯, q췯, q췯, q췯, q췯);
+Test_N(q췰, q췰, q췰, q췰, q췰);
+Test_N(q췱, q췱, q췱, q췱, q췱);
+Test_N(q췲, q췲, q췲, q췲, q췲);
+Test_N(q췳, q췳, q췳, q췳, q췳);
+Test_N(q췴, q췴, q췴, q췴, q췴);
+Test_N(q췵, q췵, q췵, q췵, q췵);
+Test_N(q췶, q췶, q췶, q췶, q췶);
+Test_N(q췷, q췷, q췷, q췷, q췷);
+Test_N(q췸, q췸, q췸, q췸, q췸);
+Test_N(q췹, q췹, q췹, q췹, q췹);
+Test_N(q췺, q췺, q췺, q췺, q췺);
+Test_N(q췻, q췻, q췻, q췻, q췻);
+Test_N(q췼, q췼, q췼, q췼, q췼);
+Test_N(q췽, q췽, q췽, q췽, q췽);
+Test_N(q췾, q췾, q췾, q췾, q췾);
+Test_N(q췿, q췿, q췿, q췿, q췿);
+Test_N(q츀, q츀, q츀, q츀, q츀);
+Test_N(q츁, q츁, q츁, q츁, q츁);
+Test_N(q츂, q츂, q츂, q츂, q츂);
+Test_N(q츃, q츃, q츃, q츃, q츃);
+Test_N(q츄, q츄, q츄, q츄, q츄);
+Test_N(q츅, q츅, q츅, q츅, q츅);
+Test_N(q츆, q츆, q츆, q츆, q츆);
+Test_N(q츇, q츇, q츇, q츇, q츇);
+Test_N(q츈, q츈, q츈, q츈, q츈);
+Test_N(q츉, q츉, q츉, q츉, q츉);
+Test_N(q츊, q츊, q츊, q츊, q츊);
+Test_N(q츋, q츋, q츋, q츋, q츋);
+Test_N(q츌, q츌, q츌, q츌, q츌);
+Test_N(q츍, q츍, q츍, q츍, q츍);
+Test_N(q츎, q츎, q츎, q츎, q츎);
+Test_N(q츏, q츏, q츏, q츏, q츏);
+Test_N(q츐, q츐, q츐, q츐, q츐);
+Test_N(q츑, q츑, q츑, q츑, q츑);
+Test_N(q츒, q츒, q츒, q츒, q츒);
+Test_N(q츓, q츓, q츓, q츓, q츓);
+Test_N(q츔, q츔, q츔, q츔, q츔);
+Test_N(q츕, q츕, q츕, q츕, q츕);
+Test_N(q츖, q츖, q츖, q츖, q츖);
+Test_N(q츗, q츗, q츗, q츗, q츗);
+Test_N(q츘, q츘, q츘, q츘, q츘);
+Test_N(q츙, q츙, q츙, q츙, q츙);
+Test_N(q츚, q츚, q츚, q츚, q츚);
+Test_N(q츛, q츛, q츛, q츛, q츛);
+Test_N(q츜, q츜, q츜, q츜, q츜);
+Test_N(q츝, q츝, q츝, q츝, q츝);
+Test_N(q츞, q츞, q츞, q츞, q츞);
+Test_N(q츟, q츟, q츟, q츟, q츟);
+Test_N(q츠, q츠, q츠, q츠, q츠);
+Test_N(q측, q측, q측, q측, q측);
+Test_N(q츢, q츢, q츢, q츢, q츢);
+Test_N(q츣, q츣, q츣, q츣, q츣);
+Test_N(q츤, q츤, q츤, q츤, q츤);
+Test_N(q츥, q츥, q츥, q츥, q츥);
+Test_N(q츦, q츦, q츦, q츦, q츦);
+Test_N(q츧, q츧, q츧, q츧, q츧);
+Test_N(q츨, q츨, q츨, q츨, q츨);
+Test_N(q츩, q츩, q츩, q츩, q츩);
+Test_N(q츪, q츪, q츪, q츪, q츪);
+Test_N(q츫, q츫, q츫, q츫, q츫);
+Test_N(q츬, q츬, q츬, q츬, q츬);
+Test_N(q츭, q츭, q츭, q츭, q츭);
+Test_N(q츮, q츮, q츮, q츮, q츮);
+Test_N(q츯, q츯, q츯, q츯, q츯);
+Test_N(q츰, q츰, q츰, q츰, q츰);
+Test_N(q츱, q츱, q츱, q츱, q츱);
+Test_N(q츲, q츲, q츲, q츲, q츲);
+Test_N(q츳, q츳, q츳, q츳, q츳);
+Test_N(q츴, q츴, q츴, q츴, q츴);
+Test_N(q층, q층, q층, q층, q층);
+Test_N(q츶, q츶, q츶, q츶, q츶);
+Test_N(q츷, q츷, q츷, q츷, q츷);
+Test_N(q츸, q츸, q츸, q츸, q츸);
+Test_N(q츹, q츹, q츹, q츹, q츹);
+Test_N(q츺, q츺, q츺, q츺, q츺);
+Test_N(q츻, q츻, q츻, q츻, q츻);
+Test_N(q츼, q츼, q츼, q츼, q츼);
+Test_N(q츽, q츽, q츽, q츽, q츽);
+Test_N(q츾, q츾, q츾, q츾, q츾);
+Test_N(q츿, q츿, q츿, q츿, q츿);
+Test_N(q칀, q칀, q칀, q칀, q칀);
+Test_N(q칁, q칁, q칁, q칁, q칁);
+Test_N(q칂, q칂, q칂, q칂, q칂);
+Test_N(q칃, q칃, q칃, q칃, q칃);
+Test_N(q칄, q칄, q칄, q칄, q칄);
+Test_N(q칅, q칅, q칅, q칅, q칅);
+Test_N(q칆, q칆, q칆, q칆, q칆);
+Test_N(q칇, q칇, q칇, q칇, q칇);
+Test_N(q칈, q칈, q칈, q칈, q칈);
+Test_N(q칉, q칉, q칉, q칉, q칉);
+Test_N(q칊, q칊, q칊, q칊, q칊);
+Test_N(q칋, q칋, q칋, q칋, q칋);
+Test_N(q칌, q칌, q칌, q칌, q칌);
+Test_N(q칍, q칍, q칍, q칍, q칍);
+Test_N(q칎, q칎, q칎, q칎, q칎);
+Test_N(q칏, q칏, q칏, q칏, q칏);
+Test_N(q칐, q칐, q칐, q칐, q칐);
+Test_N(q칑, q칑, q칑, q칑, q칑);
+Test_N(q칒, q칒, q칒, q칒, q칒);
+Test_N(q칓, q칓, q칓, q칓, q칓);
+Test_N(q칔, q칔, q칔, q칔, q칔);
+Test_N(q칕, q칕, q칕, q칕, q칕);
+Test_N(q칖, q칖, q칖, q칖, q칖);
+Test_N(q칗, q칗, q칗, q칗, q칗);
+Test_N(q치, q치, q치, q치, q치);
+Test_N(q칙, q칙, q칙, q칙, q칙);
+Test_N(q칚, q칚, q칚, q칚, q칚);
+Test_N(q칛, q칛, q칛, q칛, q칛);
+Test_N(q친, q친, q친, q친, q친);
+Test_N(q칝, q칝, q칝, q칝, q칝);
+Test_N(q칞, q칞, q칞, q칞, q칞);
+Test_N(q칟, q칟, q칟, q칟, q칟);
+Test_N(q칠, q칠, q칠, q칠, q칠);
+Test_N(q칡, q칡, q칡, q칡, q칡);
+Test_N(q칢, q칢, q칢, q칢, q칢);
+Test_N(q칣, q칣, q칣, q칣, q칣);
+Test_N(q칤, q칤, q칤, q칤, q칤);
+Test_N(q칥, q칥, q칥, q칥, q칥);
+Test_N(q칦, q칦, q칦, q칦, q칦);
+Test_N(q칧, q칧, q칧, q칧, q칧);
+Test_N(q침, q침, q침, q침, q침);
+Test_N(q칩, q칩, q칩, q칩, q칩);
+Test_N(q칪, q칪, q칪, q칪, q칪);
+Test_N(q칫, q칫, q칫, q칫, q칫);
+Test_N(q칬, q칬, q칬, q칬, q칬);
+Test_N(q칭, q칭, q칭, q칭, q칭);
+Test_N(q칮, q칮, q칮, q칮, q칮);
+Test_N(q칯, q칯, q칯, q칯, q칯);
+Test_N(q칰, q칰, q칰, q칰, q칰);
+Test_N(q칱, q칱, q칱, q칱, q칱);
+Test_N(q칲, q칲, q칲, q칲, q칲);
+Test_N(q칳, q칳, q칳, q칳, q칳);
+Test_N(q카, q카, q카, q카, q카);
+Test_N(q칵, q칵, q칵, q칵, q칵);
+Test_N(q칶, q칶, q칶, q칶, q칶);
+Test_N(q칷, q칷, q칷, q칷, q칷);
+Test_N(q칸, q칸, q칸, q칸, q칸);
+Test_N(q칹, q칹, q칹, q칹, q칹);
+Test_N(q칺, q칺, q칺, q칺, q칺);
+Test_N(q칻, q칻, q칻, q칻, q칻);
+Test_N(q칼, q칼, q칼, q칼, q칼);
+Test_N(q칽, q칽, q칽, q칽, q칽);
+Test_N(q칾, q칾, q칾, q칾, q칾);
+Test_N(q칿, q칿, q칿, q칿, q칿);
+Test_N(q캀, q캀, q캀, q캀, q캀);
+Test_N(q캁, q캁, q캁, q캁, q캁);
+Test_N(q캂, q캂, q캂, q캂, q캂);
+Test_N(q캃, q캃, q캃, q캃, q캃);
+Test_N(q캄, q캄, q캄, q캄, q캄);
+Test_N(q캅, q캅, q캅, q캅, q캅);
+Test_N(q캆, q캆, q캆, q캆, q캆);
+Test_N(q캇, q캇, q캇, q캇, q캇);
+Test_N(q캈, q캈, q캈, q캈, q캈);
+Test_N(q캉, q캉, q캉, q캉, q캉);
+Test_N(q캊, q캊, q캊, q캊, q캊);
+Test_N(q캋, q캋, q캋, q캋, q캋);
+Test_N(q캌, q캌, q캌, q캌, q캌);
+Test_N(q캍, q캍, q캍, q캍, q캍);
+Test_N(q캎, q캎, q캎, q캎, q캎);
+Test_N(q캏, q캏, q캏, q캏, q캏);
+Test_N(q캐, q캐, q캐, q캐, q캐);
+Test_N(q캑, q캑, q캑, q캑, q캑);
+Test_N(q캒, q캒, q캒, q캒, q캒);
+Test_N(q캓, q캓, q캓, q캓, q캓);
+Test_N(q캔, q캔, q캔, q캔, q캔);
+Test_N(q캕, q캕, q캕, q캕, q캕);
+Test_N(q캖, q캖, q캖, q캖, q캖);
+Test_N(q캗, q캗, q캗, q캗, q캗);
+Test_N(q캘, q캘, q캘, q캘, q캘);
+Test_N(q캙, q캙, q캙, q캙, q캙);
+Test_N(q캚, q캚, q캚, q캚, q캚);
+Test_N(q캛, q캛, q캛, q캛, q캛);
+Test_N(q캜, q캜, q캜, q캜, q캜);
+Test_N(q캝, q캝, q캝, q캝, q캝);
+Test_N(q캞, q캞, q캞, q캞, q캞);
+Test_N(q캟, q캟, q캟, q캟, q캟);
+Test_N(q캠, q캠, q캠, q캠, q캠);
+Test_N(q캡, q캡, q캡, q캡, q캡);
+Test_N(q캢, q캢, q캢, q캢, q캢);
+Test_N(q캣, q캣, q캣, q캣, q캣);
+Test_N(q캤, q캤, q캤, q캤, q캤);
+Test_N(q캥, q캥, q캥, q캥, q캥);
+Test_N(q캦, q캦, q캦, q캦, q캦);
+Test_N(q캧, q캧, q캧, q캧, q캧);
+Test_N(q캨, q캨, q캨, q캨, q캨);
+Test_N(q캩, q캩, q캩, q캩, q캩);
+Test_N(q캪, q캪, q캪, q캪, q캪);
+Test_N(q캫, q캫, q캫, q캫, q캫);
+Test_N(q캬, q캬, q캬, q캬, q캬);
+Test_N(q캭, q캭, q캭, q캭, q캭);
+Test_N(q캮, q캮, q캮, q캮, q캮);
+Test_N(q캯, q캯, q캯, q캯, q캯);
+Test_N(q캰, q캰, q캰, q캰, q캰);
+Test_N(q캱, q캱, q캱, q캱, q캱);
+Test_N(q캲, q캲, q캲, q캲, q캲);
+Test_N(q캳, q캳, q캳, q캳, q캳);
+Test_N(q캴, q캴, q캴, q캴, q캴);
+Test_N(q캵, q캵, q캵, q캵, q캵);
+Test_N(q캶, q캶, q캶, q캶, q캶);
+Test_N(q캷, q캷, q캷, q캷, q캷);
+Test_N(q캸, q캸, q캸, q캸, q캸);
+Test_N(q캹, q캹, q캹, q캹, q캹);
+Test_N(q캺, q캺, q캺, q캺, q캺);
+Test_N(q캻, q캻, q캻, q캻, q캻);
+Test_N(q캼, q캼, q캼, q캼, q캼);
+Test_N(q캽, q캽, q캽, q캽, q캽);
+Test_N(q캾, q캾, q캾, q캾, q캾);
+Test_N(q캿, q캿, q캿, q캿, q캿);
+Test_N(q컀, q컀, q컀, q컀, q컀);
+Test_N(q컁, q컁, q컁, q컁, q컁);
+Test_N(q컂, q컂, q컂, q컂, q컂);
+Test_N(q컃, q컃, q컃, q컃, q컃);
+Test_N(q컄, q컄, q컄, q컄, q컄);
+Test_N(q컅, q컅, q컅, q컅, q컅);
+Test_N(q컆, q컆, q컆, q컆, q컆);
+Test_N(q컇, q컇, q컇, q컇, q컇);
+Test_N(q컈, q컈, q컈, q컈, q컈);
+Test_N(q컉, q컉, q컉, q컉, q컉);
+Test_N(q컊, q컊, q컊, q컊, q컊);
+Test_N(q컋, q컋, q컋, q컋, q컋);
+Test_N(q컌, q컌, q컌, q컌, q컌);
+Test_N(q컍, q컍, q컍, q컍, q컍);
+Test_N(q컎, q컎, q컎, q컎, q컎);
+Test_N(q컏, q컏, q컏, q컏, q컏);
+Test_N(q컐, q컐, q컐, q컐, q컐);
+Test_N(q컑, q컑, q컑, q컑, q컑);
+Test_N(q컒, q컒, q컒, q컒, q컒);
+Test_N(q컓, q컓, q컓, q컓, q컓);
+Test_N(q컔, q컔, q컔, q컔, q컔);
+Test_N(q컕, q컕, q컕, q컕, q컕);
+Test_N(q컖, q컖, q컖, q컖, q컖);
+Test_N(q컗, q컗, q컗, q컗, q컗);
+Test_N(q컘, q컘, q컘, q컘, q컘);
+Test_N(q컙, q컙, q컙, q컙, q컙);
+Test_N(q컚, q컚, q컚, q컚, q컚);
+Test_N(q컛, q컛, q컛, q컛, q컛);
+Test_N(q컜, q컜, q컜, q컜, q컜);
+Test_N(q컝, q컝, q컝, q컝, q컝);
+Test_N(q컞, q컞, q컞, q컞, q컞);
+Test_N(q컟, q컟, q컟, q컟, q컟);
+Test_N(q컠, q컠, q컠, q컠, q컠);
+Test_N(q컡, q컡, q컡, q컡, q컡);
+Test_N(q컢, q컢, q컢, q컢, q컢);
+Test_N(q컣, q컣, q컣, q컣, q컣);
+Test_N(q커, q커, q커, q커, q커);
+Test_N(q컥, q컥, q컥, q컥, q컥);
+Test_N(q컦, q컦, q컦, q컦, q컦);
+Test_N(q컧, q컧, q컧, q컧, q컧);
+Test_N(q컨, q컨, q컨, q컨, q컨);
+Test_N(q컩, q컩, q컩, q컩, q컩);
+Test_N(q컪, q컪, q컪, q컪, q컪);
+Test_N(q컫, q컫, q컫, q컫, q컫);
+Test_N(q컬, q컬, q컬, q컬, q컬);
+Test_N(q컭, q컭, q컭, q컭, q컭);
+Test_N(q컮, q컮, q컮, q컮, q컮);
+Test_N(q컯, q컯, q컯, q컯, q컯);
+Test_N(q컰, q컰, q컰, q컰, q컰);
+Test_N(q컱, q컱, q컱, q컱, q컱);
+Test_N(q컲, q컲, q컲, q컲, q컲);
+Test_N(q컳, q컳, q컳, q컳, q컳);
+Test_N(q컴, q컴, q컴, q컴, q컴);
+Test_N(q컵, q컵, q컵, q컵, q컵);
+Test_N(q컶, q컶, q컶, q컶, q컶);
+Test_N(q컷, q컷, q컷, q컷, q컷);
+Test_N(q컸, q컸, q컸, q컸, q컸);
+Test_N(q컹, q컹, q컹, q컹, q컹);
+Test_N(q컺, q컺, q컺, q컺, q컺);
+Test_N(q컻, q컻, q컻, q컻, q컻);
+Test_N(q컼, q컼, q컼, q컼, q컼);
+Test_N(q컽, q컽, q컽, q컽, q컽);
+Test_N(q컾, q컾, q컾, q컾, q컾);
+Test_N(q컿, q컿, q컿, q컿, q컿);
+Test_N(q케, q케, q케, q케, q케);
+Test_N(q켁, q켁, q켁, q켁, q켁);
+Test_N(q켂, q켂, q켂, q켂, q켂);
+Test_N(q켃, q켃, q켃, q켃, q켃);
+Test_N(q켄, q켄, q켄, q켄, q켄);
+Test_N(q켅, q켅, q켅, q켅, q켅);
+Test_N(q켆, q켆, q켆, q켆, q켆);
+Test_N(q켇, q켇, q켇, q켇, q켇);
+Test_N(q켈, q켈, q켈, q켈, q켈);
+Test_N(q켉, q켉, q켉, q켉, q켉);
+Test_N(q켊, q켊, q켊, q켊, q켊);
+Test_N(q켋, q켋, q켋, q켋, q켋);
+Test_N(q켌, q켌, q켌, q켌, q켌);
+Test_N(q켍, q켍, q켍, q켍, q켍);
+Test_N(q켎, q켎, q켎, q켎, q켎);
+Test_N(q켏, q켏, q켏, q켏, q켏);
+Test_N(q켐, q켐, q켐, q켐, q켐);
+Test_N(q켑, q켑, q켑, q켑, q켑);
+Test_N(q켒, q켒, q켒, q켒, q켒);
+Test_N(q켓, q켓, q켓, q켓, q켓);
+Test_N(q켔, q켔, q켔, q켔, q켔);
+Test_N(q켕, q켕, q켕, q켕, q켕);
+Test_N(q켖, q켖, q켖, q켖, q켖);
+Test_N(q켗, q켗, q켗, q켗, q켗);
+Test_N(q켘, q켘, q켘, q켘, q켘);
+Test_N(q켙, q켙, q켙, q켙, q켙);
+Test_N(q켚, q켚, q켚, q켚, q켚);
+Test_N(q켛, q켛, q켛, q켛, q켛);
+Test_N(q켜, q켜, q켜, q켜, q켜);
+Test_N(q켝, q켝, q켝, q켝, q켝);
+Test_N(q켞, q켞, q켞, q켞, q켞);
+Test_N(q켟, q켟, q켟, q켟, q켟);
+Test_N(q켠, q켠, q켠, q켠, q켠);
+Test_N(q켡, q켡, q켡, q켡, q켡);
+Test_N(q켢, q켢, q켢, q켢, q켢);
+Test_N(q켣, q켣, q켣, q켣, q켣);
+Test_N(q켤, q켤, q켤, q켤, q켤);
+Test_N(q켥, q켥, q켥, q켥, q켥);
+Test_N(q켦, q켦, q켦, q켦, q켦);
+Test_N(q켧, q켧, q켧, q켧, q켧);
+Test_N(q켨, q켨, q켨, q켨, q켨);
+Test_N(q켩, q켩, q켩, q켩, q켩);
+Test_N(q켪, q켪, q켪, q켪, q켪);
+Test_N(q켫, q켫, q켫, q켫, q켫);
+Test_N(q켬, q켬, q켬, q켬, q켬);
+Test_N(q켭, q켭, q켭, q켭, q켭);
+Test_N(q켮, q켮, q켮, q켮, q켮);
+Test_N(q켯, q켯, q켯, q켯, q켯);
+Test_N(q켰, q켰, q켰, q켰, q켰);
+Test_N(q켱, q켱, q켱, q켱, q켱);
+Test_N(q켲, q켲, q켲, q켲, q켲);
+Test_N(q켳, q켳, q켳, q켳, q켳);
+Test_N(q켴, q켴, q켴, q켴, q켴);
+Test_N(q켵, q켵, q켵, q켵, q켵);
+Test_N(q켶, q켶, q켶, q켶, q켶);
+Test_N(q켷, q켷, q켷, q켷, q켷);
+Test_N(q켸, q켸, q켸, q켸, q켸);
+Test_N(q켹, q켹, q켹, q켹, q켹);
+Test_N(q켺, q켺, q켺, q켺, q켺);
+Test_N(q켻, q켻, q켻, q켻, q켻);
+Test_N(q켼, q켼, q켼, q켼, q켼);
+Test_N(q켽, q켽, q켽, q켽, q켽);
+Test_N(q켾, q켾, q켾, q켾, q켾);
+Test_N(q켿, q켿, q켿, q켿, q켿);
+Test_N(q콀, q콀, q콀, q콀, q콀);
+Test_N(q콁, q콁, q콁, q콁, q콁);
+Test_N(q콂, q콂, q콂, q콂, q콂);
+Test_N(q콃, q콃, q콃, q콃, q콃);
+Test_N(q콄, q콄, q콄, q콄, q콄);
+Test_N(q콅, q콅, q콅, q콅, q콅);
+Test_N(q콆, q콆, q콆, q콆, q콆);
+Test_N(q콇, q콇, q콇, q콇, q콇);
+Test_N(q콈, q콈, q콈, q콈, q콈);
+Test_N(q콉, q콉, q콉, q콉, q콉);
+Test_N(q콊, q콊, q콊, q콊, q콊);
+Test_N(q콋, q콋, q콋, q콋, q콋);
+Test_N(q콌, q콌, q콌, q콌, q콌);
+Test_N(q콍, q콍, q콍, q콍, q콍);
+Test_N(q콎, q콎, q콎, q콎, q콎);
+Test_N(q콏, q콏, q콏, q콏, q콏);
+Test_N(q콐, q콐, q콐, q콐, q콐);
+Test_N(q콑, q콑, q콑, q콑, q콑);
+Test_N(q콒, q콒, q콒, q콒, q콒);
+Test_N(q콓, q콓, q콓, q콓, q콓);
+Test_N(q코, q코, q코, q코, q코);
+Test_N(q콕, q콕, q콕, q콕, q콕);
+Test_N(q콖, q콖, q콖, q콖, q콖);
+Test_N(q콗, q콗, q콗, q콗, q콗);
+Test_N(q콘, q콘, q콘, q콘, q콘);
+Test_N(q콙, q콙, q콙, q콙, q콙);
+Test_N(q콚, q콚, q콚, q콚, q콚);
+Test_N(q콛, q콛, q콛, q콛, q콛);
+Test_N(q콜, q콜, q콜, q콜, q콜);
+Test_N(q콝, q콝, q콝, q콝, q콝);
+Test_N(q콞, q콞, q콞, q콞, q콞);
+Test_N(q콟, q콟, q콟, q콟, q콟);
+Test_N(q콠, q콠, q콠, q콠, q콠);
+Test_N(q콡, q콡, q콡, q콡, q콡);
+Test_N(q콢, q콢, q콢, q콢, q콢);
+Test_N(q콣, q콣, q콣, q콣, q콣);
+Test_N(q콤, q콤, q콤, q콤, q콤);
+Test_N(q콥, q콥, q콥, q콥, q콥);
+Test_N(q콦, q콦, q콦, q콦, q콦);
+Test_N(q콧, q콧, q콧, q콧, q콧);
+Test_N(q콨, q콨, q콨, q콨, q콨);
+Test_N(q콩, q콩, q콩, q콩, q콩);
+Test_N(q콪, q콪, q콪, q콪, q콪);
+Test_N(q콫, q콫, q콫, q콫, q콫);
+Test_N(q콬, q콬, q콬, q콬, q콬);
+Test_N(q콭, q콭, q콭, q콭, q콭);
+Test_N(q콮, q콮, q콮, q콮, q콮);
+Test_N(q콯, q콯, q콯, q콯, q콯);
+Test_N(q콰, q콰, q콰, q콰, q콰);
+Test_N(q콱, q콱, q콱, q콱, q콱);
+Test_N(q콲, q콲, q콲, q콲, q콲);
+Test_N(q콳, q콳, q콳, q콳, q콳);
+Test_N(q콴, q콴, q콴, q콴, q콴);
+Test_N(q콵, q콵, q콵, q콵, q콵);
+Test_N(q콶, q콶, q콶, q콶, q콶);
+Test_N(q콷, q콷, q콷, q콷, q콷);
+Test_N(q콸, q콸, q콸, q콸, q콸);
+Test_N(q콹, q콹, q콹, q콹, q콹);
+Test_N(q콺, q콺, q콺, q콺, q콺);
+Test_N(q콻, q콻, q콻, q콻, q콻);
+Test_N(q콼, q콼, q콼, q콼, q콼);
+Test_N(q콽, q콽, q콽, q콽, q콽);
+Test_N(q콾, q콾, q콾, q콾, q콾);
+Test_N(q콿, q콿, q콿, q콿, q콿);
+Test_N(q쾀, q쾀, q쾀, q쾀, q쾀);
+Test_N(q쾁, q쾁, q쾁, q쾁, q쾁);
+Test_N(q쾂, q쾂, q쾂, q쾂, q쾂);
+Test_N(q쾃, q쾃, q쾃, q쾃, q쾃);
+Test_N(q쾄, q쾄, q쾄, q쾄, q쾄);
+Test_N(q쾅, q쾅, q쾅, q쾅, q쾅);
+Test_N(q쾆, q쾆, q쾆, q쾆, q쾆);
+Test_N(q쾇, q쾇, q쾇, q쾇, q쾇);
+Test_N(q쾈, q쾈, q쾈, q쾈, q쾈);
+Test_N(q쾉, q쾉, q쾉, q쾉, q쾉);
+Test_N(q쾊, q쾊, q쾊, q쾊, q쾊);
+Test_N(q쾋, q쾋, q쾋, q쾋, q쾋);
+Test_N(q쾌, q쾌, q쾌, q쾌, q쾌);
+Test_N(q쾍, q쾍, q쾍, q쾍, q쾍);
+Test_N(q쾎, q쾎, q쾎, q쾎, q쾎);
+Test_N(q쾏, q쾏, q쾏, q쾏, q쾏);
+Test_N(q쾐, q쾐, q쾐, q쾐, q쾐);
+Test_N(q쾑, q쾑, q쾑, q쾑, q쾑);
+Test_N(q쾒, q쾒, q쾒, q쾒, q쾒);
+Test_N(q쾓, q쾓, q쾓, q쾓, q쾓);
+Test_N(q쾔, q쾔, q쾔, q쾔, q쾔);
+Test_N(q쾕, q쾕, q쾕, q쾕, q쾕);
+Test_N(q쾖, q쾖, q쾖, q쾖, q쾖);
+Test_N(q쾗, q쾗, q쾗, q쾗, q쾗);
+Test_N(q쾘, q쾘, q쾘, q쾘, q쾘);
+Test_N(q쾙, q쾙, q쾙, q쾙, q쾙);
+Test_N(q쾚, q쾚, q쾚, q쾚, q쾚);
+Test_N(q쾛, q쾛, q쾛, q쾛, q쾛);
+Test_N(q쾜, q쾜, q쾜, q쾜, q쾜);
+Test_N(q쾝, q쾝, q쾝, q쾝, q쾝);
+Test_N(q쾞, q쾞, q쾞, q쾞, q쾞);
+Test_N(q쾟, q쾟, q쾟, q쾟, q쾟);
+Test_N(q쾠, q쾠, q쾠, q쾠, q쾠);
+Test_N(q쾡, q쾡, q쾡, q쾡, q쾡);
+Test_N(q쾢, q쾢, q쾢, q쾢, q쾢);
+Test_N(q쾣, q쾣, q쾣, q쾣, q쾣);
+Test_N(q쾤, q쾤, q쾤, q쾤, q쾤);
+Test_N(q쾥, q쾥, q쾥, q쾥, q쾥);
+Test_N(q쾦, q쾦, q쾦, q쾦, q쾦);
+Test_N(q쾧, q쾧, q쾧, q쾧, q쾧);
+Test_N(q쾨, q쾨, q쾨, q쾨, q쾨);
+Test_N(q쾩, q쾩, q쾩, q쾩, q쾩);
+Test_N(q쾪, q쾪, q쾪, q쾪, q쾪);
+Test_N(q쾫, q쾫, q쾫, q쾫, q쾫);
+Test_N(q쾬, q쾬, q쾬, q쾬, q쾬);
+Test_N(q쾭, q쾭, q쾭, q쾭, q쾭);
+Test_N(q쾮, q쾮, q쾮, q쾮, q쾮);
+Test_N(q쾯, q쾯, q쾯, q쾯, q쾯);
+Test_N(q쾰, q쾰, q쾰, q쾰, q쾰);
+Test_N(q쾱, q쾱, q쾱, q쾱, q쾱);
+Test_N(q쾲, q쾲, q쾲, q쾲, q쾲);
+Test_N(q쾳, q쾳, q쾳, q쾳, q쾳);
+Test_N(q쾴, q쾴, q쾴, q쾴, q쾴);
+Test_N(q쾵, q쾵, q쾵, q쾵, q쾵);
+Test_N(q쾶, q쾶, q쾶, q쾶, q쾶);
+Test_N(q쾷, q쾷, q쾷, q쾷, q쾷);
+Test_N(q쾸, q쾸, q쾸, q쾸, q쾸);
+Test_N(q쾹, q쾹, q쾹, q쾹, q쾹);
+Test_N(q쾺, q쾺, q쾺, q쾺, q쾺);
+Test_N(q쾻, q쾻, q쾻, q쾻, q쾻);
+Test_N(q쾼, q쾼, q쾼, q쾼, q쾼);
+Test_N(q쾽, q쾽, q쾽, q쾽, q쾽);
+Test_N(q쾾, q쾾, q쾾, q쾾, q쾾);
+Test_N(q쾿, q쾿, q쾿, q쾿, q쾿);
+Test_N(q쿀, q쿀, q쿀, q쿀, q쿀);
+Test_N(q쿁, q쿁, q쿁, q쿁, q쿁);
+Test_N(q쿂, q쿂, q쿂, q쿂, q쿂);
+Test_N(q쿃, q쿃, q쿃, q쿃, q쿃);
+Test_N(q쿄, q쿄, q쿄, q쿄, q쿄);
+Test_N(q쿅, q쿅, q쿅, q쿅, q쿅);
+Test_N(q쿆, q쿆, q쿆, q쿆, q쿆);
+Test_N(q쿇, q쿇, q쿇, q쿇, q쿇);
+Test_N(q쿈, q쿈, q쿈, q쿈, q쿈);
+Test_N(q쿉, q쿉, q쿉, q쿉, q쿉);
+Test_N(q쿊, q쿊, q쿊, q쿊, q쿊);
+Test_N(q쿋, q쿋, q쿋, q쿋, q쿋);
+Test_N(q쿌, q쿌, q쿌, q쿌, q쿌);
+Test_N(q쿍, q쿍, q쿍, q쿍, q쿍);
+Test_N(q쿎, q쿎, q쿎, q쿎, q쿎);
+Test_N(q쿏, q쿏, q쿏, q쿏, q쿏);
+Test_N(q쿐, q쿐, q쿐, q쿐, q쿐);
+Test_N(q쿑, q쿑, q쿑, q쿑, q쿑);
+Test_N(q쿒, q쿒, q쿒, q쿒, q쿒);
+Test_N(q쿓, q쿓, q쿓, q쿓, q쿓);
+Test_N(q쿔, q쿔, q쿔, q쿔, q쿔);
+Test_N(q쿕, q쿕, q쿕, q쿕, q쿕);
+Test_N(q쿖, q쿖, q쿖, q쿖, q쿖);
+Test_N(q쿗, q쿗, q쿗, q쿗, q쿗);
+Test_N(q쿘, q쿘, q쿘, q쿘, q쿘);
+Test_N(q쿙, q쿙, q쿙, q쿙, q쿙);
+Test_N(q쿚, q쿚, q쿚, q쿚, q쿚);
+Test_N(q쿛, q쿛, q쿛, q쿛, q쿛);
+Test_N(q쿜, q쿜, q쿜, q쿜, q쿜);
+Test_N(q쿝, q쿝, q쿝, q쿝, q쿝);
+Test_N(q쿞, q쿞, q쿞, q쿞, q쿞);
+Test_N(q쿟, q쿟, q쿟, q쿟, q쿟);
+Test_N(q쿠, q쿠, q쿠, q쿠, q쿠);
+Test_N(q쿡, q쿡, q쿡, q쿡, q쿡);
+Test_N(q쿢, q쿢, q쿢, q쿢, q쿢);
+Test_N(q쿣, q쿣, q쿣, q쿣, q쿣);
+Test_N(q쿤, q쿤, q쿤, q쿤, q쿤);
+Test_N(q쿥, q쿥, q쿥, q쿥, q쿥);
+Test_N(q쿦, q쿦, q쿦, q쿦, q쿦);
+Test_N(q쿧, q쿧, q쿧, q쿧, q쿧);
+Test_N(q쿨, q쿨, q쿨, q쿨, q쿨);
+Test_N(q쿩, q쿩, q쿩, q쿩, q쿩);
+Test_N(q쿪, q쿪, q쿪, q쿪, q쿪);
+Test_N(q쿫, q쿫, q쿫, q쿫, q쿫);
+Test_N(q쿬, q쿬, q쿬, q쿬, q쿬);
+Test_N(q쿭, q쿭, q쿭, q쿭, q쿭);
+Test_N(q쿮, q쿮, q쿮, q쿮, q쿮);
+Test_N(q쿯, q쿯, q쿯, q쿯, q쿯);
+Test_N(q쿰, q쿰, q쿰, q쿰, q쿰);
+Test_N(q쿱, q쿱, q쿱, q쿱, q쿱);
+Test_N(q쿲, q쿲, q쿲, q쿲, q쿲);
+Test_N(q쿳, q쿳, q쿳, q쿳, q쿳);
+Test_N(q쿴, q쿴, q쿴, q쿴, q쿴);
+Test_N(q쿵, q쿵, q쿵, q쿵, q쿵);
+Test_N(q쿶, q쿶, q쿶, q쿶, q쿶);
+Test_N(q쿷, q쿷, q쿷, q쿷, q쿷);
+Test_N(q쿸, q쿸, q쿸, q쿸, q쿸);
+Test_N(q쿹, q쿹, q쿹, q쿹, q쿹);
+Test_N(q쿺, q쿺, q쿺, q쿺, q쿺);
+Test_N(q쿻, q쿻, q쿻, q쿻, q쿻);
+Test_N(q쿼, q쿼, q쿼, q쿼, q쿼);
+Test_N(q쿽, q쿽, q쿽, q쿽, q쿽);
+Test_N(q쿾, q쿾, q쿾, q쿾, q쿾);
+Test_N(q쿿, q쿿, q쿿, q쿿, q쿿);
+Test_N(q퀀, q퀀, q퀀, q퀀, q퀀);
+Test_N(q퀁, q퀁, q퀁, q퀁, q퀁);
+Test_N(q퀂, q퀂, q퀂, q퀂, q퀂);
+Test_N(q퀃, q퀃, q퀃, q퀃, q퀃);
+Test_N(q퀄, q퀄, q퀄, q퀄, q퀄);
+Test_N(q퀅, q퀅, q퀅, q퀅, q퀅);
+Test_N(q퀆, q퀆, q퀆, q퀆, q퀆);
+Test_N(q퀇, q퀇, q퀇, q퀇, q퀇);
+Test_N(q퀈, q퀈, q퀈, q퀈, q퀈);
+Test_N(q퀉, q퀉, q퀉, q퀉, q퀉);
+Test_N(q퀊, q퀊, q퀊, q퀊, q퀊);
+Test_N(q퀋, q퀋, q퀋, q퀋, q퀋);
+Test_N(q퀌, q퀌, q퀌, q퀌, q퀌);
+Test_N(q퀍, q퀍, q퀍, q퀍, q퀍);
+Test_N(q퀎, q퀎, q퀎, q퀎, q퀎);
+Test_N(q퀏, q퀏, q퀏, q퀏, q퀏);
+Test_N(q퀐, q퀐, q퀐, q퀐, q퀐);
+Test_N(q퀑, q퀑, q퀑, q퀑, q퀑);
+Test_N(q퀒, q퀒, q퀒, q퀒, q퀒);
+Test_N(q퀓, q퀓, q퀓, q퀓, q퀓);
+Test_N(q퀔, q퀔, q퀔, q퀔, q퀔);
+Test_N(q퀕, q퀕, q퀕, q퀕, q퀕);
+Test_N(q퀖, q퀖, q퀖, q퀖, q퀖);
+Test_N(q퀗, q퀗, q퀗, q퀗, q퀗);
+Test_N(q퀘, q퀘, q퀘, q퀘, q퀘);
+Test_N(q퀙, q퀙, q퀙, q퀙, q퀙);
+Test_N(q퀚, q퀚, q퀚, q퀚, q퀚);
+Test_N(q퀛, q퀛, q퀛, q퀛, q퀛);
+Test_N(q퀜, q퀜, q퀜, q퀜, q퀜);
+Test_N(q퀝, q퀝, q퀝, q퀝, q퀝);
+Test_N(q퀞, q퀞, q퀞, q퀞, q퀞);
+Test_N(q퀟, q퀟, q퀟, q퀟, q퀟);
+Test_N(q퀠, q퀠, q퀠, q퀠, q퀠);
+Test_N(q퀡, q퀡, q퀡, q퀡, q퀡);
+Test_N(q퀢, q퀢, q퀢, q퀢, q퀢);
+Test_N(q퀣, q퀣, q퀣, q퀣, q퀣);
+Test_N(q퀤, q퀤, q퀤, q퀤, q퀤);
+Test_N(q퀥, q퀥, q퀥, q퀥, q퀥);
+Test_N(q퀦, q퀦, q퀦, q퀦, q퀦);
+Test_N(q퀧, q퀧, q퀧, q퀧, q퀧);
+Test_N(q퀨, q퀨, q퀨, q퀨, q퀨);
+Test_N(q퀩, q퀩, q퀩, q퀩, q퀩);
+Test_N(q퀪, q퀪, q퀪, q퀪, q퀪);
+Test_N(q퀫, q퀫, q퀫, q퀫, q퀫);
+Test_N(q퀬, q퀬, q퀬, q퀬, q퀬);
+Test_N(q퀭, q퀭, q퀭, q퀭, q퀭);
+Test_N(q퀮, q퀮, q퀮, q퀮, q퀮);
+Test_N(q퀯, q퀯, q퀯, q퀯, q퀯);
+Test_N(q퀰, q퀰, q퀰, q퀰, q퀰);
+Test_N(q퀱, q퀱, q퀱, q퀱, q퀱);
+Test_N(q퀲, q퀲, q퀲, q퀲, q퀲);
+Test_N(q퀳, q퀳, q퀳, q퀳, q퀳);
+Test_N(q퀴, q퀴, q퀴, q퀴, q퀴);
+Test_N(q퀵, q퀵, q퀵, q퀵, q퀵);
+Test_N(q퀶, q퀶, q퀶, q퀶, q퀶);
+Test_N(q퀷, q퀷, q퀷, q퀷, q퀷);
+Test_N(q퀸, q퀸, q퀸, q퀸, q퀸);
+Test_N(q퀹, q퀹, q퀹, q퀹, q퀹);
+Test_N(q퀺, q퀺, q퀺, q퀺, q퀺);
+Test_N(q퀻, q퀻, q퀻, q퀻, q퀻);
+Test_N(q퀼, q퀼, q퀼, q퀼, q퀼);
+Test_N(q퀽, q퀽, q퀽, q퀽, q퀽);
+Test_N(q퀾, q퀾, q퀾, q퀾, q퀾);
+Test_N(q퀿, q퀿, q퀿, q퀿, q퀿);
+Test_N(q큀, q큀, q큀, q큀, q큀);
+Test_N(q큁, q큁, q큁, q큁, q큁);
+Test_N(q큂, q큂, q큂, q큂, q큂);
+Test_N(q큃, q큃, q큃, q큃, q큃);
+Test_N(q큄, q큄, q큄, q큄, q큄);
+Test_N(q큅, q큅, q큅, q큅, q큅);
+Test_N(q큆, q큆, q큆, q큆, q큆);
+Test_N(q큇, q큇, q큇, q큇, q큇);
+Test_N(q큈, q큈, q큈, q큈, q큈);
+Test_N(q큉, q큉, q큉, q큉, q큉);
+Test_N(q큊, q큊, q큊, q큊, q큊);
+Test_N(q큋, q큋, q큋, q큋, q큋);
+Test_N(q큌, q큌, q큌, q큌, q큌);
+Test_N(q큍, q큍, q큍, q큍, q큍);
+Test_N(q큎, q큎, q큎, q큎, q큎);
+Test_N(q큏, q큏, q큏, q큏, q큏);
+Test_N(q큐, q큐, q큐, q큐, q큐);
+Test_N(q큑, q큑, q큑, q큑, q큑);
+Test_N(q큒, q큒, q큒, q큒, q큒);
+Test_N(q큓, q큓, q큓, q큓, q큓);
+Test_N(q큔, q큔, q큔, q큔, q큔);
+Test_N(q큕, q큕, q큕, q큕, q큕);
+Test_N(q큖, q큖, q큖, q큖, q큖);
+Test_N(q큗, q큗, q큗, q큗, q큗);
+Test_N(q큘, q큘, q큘, q큘, q큘);
+Test_N(q큙, q큙, q큙, q큙, q큙);
+Test_N(q큚, q큚, q큚, q큚, q큚);
+Test_N(q큛, q큛, q큛, q큛, q큛);
+Test_N(q큜, q큜, q큜, q큜, q큜);
+Test_N(q큝, q큝, q큝, q큝, q큝);
+Test_N(q큞, q큞, q큞, q큞, q큞);
+Test_N(q큟, q큟, q큟, q큟, q큟);
+Test_N(q큠, q큠, q큠, q큠, q큠);
+Test_N(q큡, q큡, q큡, q큡, q큡);
+Test_N(q큢, q큢, q큢, q큢, q큢);
+Test_N(q큣, q큣, q큣, q큣, q큣);
+Test_N(q큤, q큤, q큤, q큤, q큤);
+Test_N(q큥, q큥, q큥, q큥, q큥);
+Test_N(q큦, q큦, q큦, q큦, q큦);
+Test_N(q큧, q큧, q큧, q큧, q큧);
+Test_N(q큨, q큨, q큨, q큨, q큨);
+Test_N(q큩, q큩, q큩, q큩, q큩);
+Test_N(q큪, q큪, q큪, q큪, q큪);
+Test_N(q큫, q큫, q큫, q큫, q큫);
+Test_N(q크, q크, q크, q크, q크);
+Test_N(q큭, q큭, q큭, q큭, q큭);
+Test_N(q큮, q큮, q큮, q큮, q큮);
+Test_N(q큯, q큯, q큯, q큯, q큯);
+Test_N(q큰, q큰, q큰, q큰, q큰);
+Test_N(q큱, q큱, q큱, q큱, q큱);
+Test_N(q큲, q큲, q큲, q큲, q큲);
+Test_N(q큳, q큳, q큳, q큳, q큳);
+Test_N(q클, q클, q클, q클, q클);
+Test_N(q큵, q큵, q큵, q큵, q큵);
+Test_N(q큶, q큶, q큶, q큶, q큶);
+Test_N(q큷, q큷, q큷, q큷, q큷);
+Test_N(q큸, q큸, q큸, q큸, q큸);
+Test_N(q큹, q큹, q큹, q큹, q큹);
+Test_N(q큺, q큺, q큺, q큺, q큺);
+Test_N(q큻, q큻, q큻, q큻, q큻);
+Test_N(q큼, q큼, q큼, q큼, q큼);
+Test_N(q큽, q큽, q큽, q큽, q큽);
+Test_N(q큾, q큾, q큾, q큾, q큾);
+Test_N(q큿, q큿, q큿, q큿, q큿);
+Test_N(q킀, q킀, q킀, q킀, q킀);
+Test_N(q킁, q킁, q킁, q킁, q킁);
+Test_N(q킂, q킂, q킂, q킂, q킂);
+Test_N(q킃, q킃, q킃, q킃, q킃);
+Test_N(q킄, q킄, q킄, q킄, q킄);
+Test_N(q킅, q킅, q킅, q킅, q킅);
+Test_N(q킆, q킆, q킆, q킆, q킆);
+Test_N(q킇, q킇, q킇, q킇, q킇);
+Test_N(q킈, q킈, q킈, q킈, q킈);
+Test_N(q킉, q킉, q킉, q킉, q킉);
+Test_N(q킊, q킊, q킊, q킊, q킊);
+Test_N(q킋, q킋, q킋, q킋, q킋);
+Test_N(q킌, q킌, q킌, q킌, q킌);
+Test_N(q킍, q킍, q킍, q킍, q킍);
+Test_N(q킎, q킎, q킎, q킎, q킎);
+Test_N(q킏, q킏, q킏, q킏, q킏);
+Test_N(q킐, q킐, q킐, q킐, q킐);
+Test_N(q킑, q킑, q킑, q킑, q킑);
+Test_N(q킒, q킒, q킒, q킒, q킒);
+Test_N(q킓, q킓, q킓, q킓, q킓);
+Test_N(q킔, q킔, q킔, q킔, q킔);
+Test_N(q킕, q킕, q킕, q킕, q킕);
+Test_N(q킖, q킖, q킖, q킖, q킖);
+Test_N(q킗, q킗, q킗, q킗, q킗);
+Test_N(q킘, q킘, q킘, q킘, q킘);
+Test_N(q킙, q킙, q킙, q킙, q킙);
+Test_N(q킚, q킚, q킚, q킚, q킚);
+Test_N(q킛, q킛, q킛, q킛, q킛);
+Test_N(q킜, q킜, q킜, q킜, q킜);
+Test_N(q킝, q킝, q킝, q킝, q킝);
+Test_N(q킞, q킞, q킞, q킞, q킞);
+Test_N(q킟, q킟, q킟, q킟, q킟);
+Test_N(q킠, q킠, q킠, q킠, q킠);
+Test_N(q킡, q킡, q킡, q킡, q킡);
+Test_N(q킢, q킢, q킢, q킢, q킢);
+Test_N(q킣, q킣, q킣, q킣, q킣);
+Test_N(q키, q키, q키, q키, q키);
+Test_N(q킥, q킥, q킥, q킥, q킥);
+Test_N(q킦, q킦, q킦, q킦, q킦);
+Test_N(q킧, q킧, q킧, q킧, q킧);
+Test_N(q킨, q킨, q킨, q킨, q킨);
+Test_N(q킩, q킩, q킩, q킩, q킩);
+Test_N(q킪, q킪, q킪, q킪, q킪);
+Test_N(q킫, q킫, q킫, q킫, q킫);
+Test_N(q킬, q킬, q킬, q킬, q킬);
+Test_N(q킭, q킭, q킭, q킭, q킭);
+Test_N(q킮, q킮, q킮, q킮, q킮);
+Test_N(q킯, q킯, q킯, q킯, q킯);
+Test_N(q킰, q킰, q킰, q킰, q킰);
+Test_N(q킱, q킱, q킱, q킱, q킱);
+Test_N(q킲, q킲, q킲, q킲, q킲);
+Test_N(q킳, q킳, q킳, q킳, q킳);
+Test_N(q킴, q킴, q킴, q킴, q킴);
+Test_N(q킵, q킵, q킵, q킵, q킵);
+Test_N(q킶, q킶, q킶, q킶, q킶);
+Test_N(q킷, q킷, q킷, q킷, q킷);
+Test_N(q킸, q킸, q킸, q킸, q킸);
+Test_N(q킹, q킹, q킹, q킹, q킹);
+Test_N(q킺, q킺, q킺, q킺, q킺);
+Test_N(q킻, q킻, q킻, q킻, q킻);
+Test_N(q킼, q킼, q킼, q킼, q킼);
+Test_N(q킽, q킽, q킽, q킽, q킽);
+Test_N(q킾, q킾, q킾, q킾, q킾);
+Test_N(q킿, q킿, q킿, q킿, q킿);
+Test_N(q타, q타, q타, q타, q타);
+Test_N(q탁, q탁, q탁, q탁, q탁);
+Test_N(q탂, q탂, q탂, q탂, q탂);
+Test_N(q탃, q탃, q탃, q탃, q탃);
+Test_N(q탄, q탄, q탄, q탄, q탄);
+Test_N(q탅, q탅, q탅, q탅, q탅);
+Test_N(q탆, q탆, q탆, q탆, q탆);
+Test_N(q탇, q탇, q탇, q탇, q탇);
+Test_N(q탈, q탈, q탈, q탈, q탈);
+Test_N(q탉, q탉, q탉, q탉, q탉);
+Test_N(q탊, q탊, q탊, q탊, q탊);
+Test_N(q탋, q탋, q탋, q탋, q탋);
+Test_N(q탌, q탌, q탌, q탌, q탌);
+Test_N(q탍, q탍, q탍, q탍, q탍);
+Test_N(q탎, q탎, q탎, q탎, q탎);
+Test_N(q탏, q탏, q탏, q탏, q탏);
+Test_N(q탐, q탐, q탐, q탐, q탐);
+Test_N(q탑, q탑, q탑, q탑, q탑);
+Test_N(q탒, q탒, q탒, q탒, q탒);
+Test_N(q탓, q탓, q탓, q탓, q탓);
+Test_N(q탔, q탔, q탔, q탔, q탔);
+Test_N(q탕, q탕, q탕, q탕, q탕);
+Test_N(q탖, q탖, q탖, q탖, q탖);
+Test_N(q탗, q탗, q탗, q탗, q탗);
+Test_N(q탘, q탘, q탘, q탘, q탘);
+Test_N(q탙, q탙, q탙, q탙, q탙);
+Test_N(q탚, q탚, q탚, q탚, q탚);
+Test_N(q탛, q탛, q탛, q탛, q탛);
+Test_N(q태, q태, q태, q태, q태);
+Test_N(q택, q택, q택, q택, q택);
+Test_N(q탞, q탞, q탞, q탞, q탞);
+Test_N(q탟, q탟, q탟, q탟, q탟);
+Test_N(q탠, q탠, q탠, q탠, q탠);
+Test_N(q탡, q탡, q탡, q탡, q탡);
+Test_N(q탢, q탢, q탢, q탢, q탢);
+Test_N(q탣, q탣, q탣, q탣, q탣);
+Test_N(q탤, q탤, q탤, q탤, q탤);
+Test_N(q탥, q탥, q탥, q탥, q탥);
+Test_N(q탦, q탦, q탦, q탦, q탦);
+Test_N(q탧, q탧, q탧, q탧, q탧);
+Test_N(q탨, q탨, q탨, q탨, q탨);
+Test_N(q탩, q탩, q탩, q탩, q탩);
+Test_N(q탪, q탪, q탪, q탪, q탪);
+Test_N(q탫, q탫, q탫, q탫, q탫);
+Test_N(q탬, q탬, q탬, q탬, q탬);
+Test_N(q탭, q탭, q탭, q탭, q탭);
+Test_N(q탮, q탮, q탮, q탮, q탮);
+Test_N(q탯, q탯, q탯, q탯, q탯);
+Test_N(q탰, q탰, q탰, q탰, q탰);
+Test_N(q탱, q탱, q탱, q탱, q탱);
+Test_N(q탲, q탲, q탲, q탲, q탲);
+Test_N(q탳, q탳, q탳, q탳, q탳);
+Test_N(q탴, q탴, q탴, q탴, q탴);
+Test_N(q탵, q탵, q탵, q탵, q탵);
+Test_N(q탶, q탶, q탶, q탶, q탶);
+Test_N(q탷, q탷, q탷, q탷, q탷);
+Test_N(q탸, q탸, q탸, q탸, q탸);
+Test_N(q탹, q탹, q탹, q탹, q탹);
+Test_N(q탺, q탺, q탺, q탺, q탺);
+Test_N(q탻, q탻, q탻, q탻, q탻);
+Test_N(q탼, q탼, q탼, q탼, q탼);
+Test_N(q탽, q탽, q탽, q탽, q탽);
+Test_N(q탾, q탾, q탾, q탾, q탾);
+Test_N(q탿, q탿, q탿, q탿, q탿);
+Test_N(q턀, q턀, q턀, q턀, q턀);
+Test_N(q턁, q턁, q턁, q턁, q턁);
+Test_N(q턂, q턂, q턂, q턂, q턂);
+Test_N(q턃, q턃, q턃, q턃, q턃);
+Test_N(q턄, q턄, q턄, q턄, q턄);
+Test_N(q턅, q턅, q턅, q턅, q턅);
+Test_N(q턆, q턆, q턆, q턆, q턆);
+Test_N(q턇, q턇, q턇, q턇, q턇);
+Test_N(q턈, q턈, q턈, q턈, q턈);
+Test_N(q턉, q턉, q턉, q턉, q턉);
+Test_N(q턊, q턊, q턊, q턊, q턊);
+Test_N(q턋, q턋, q턋, q턋, q턋);
+Test_N(q턌, q턌, q턌, q턌, q턌);
+Test_N(q턍, q턍, q턍, q턍, q턍);
+Test_N(q턎, q턎, q턎, q턎, q턎);
+Test_N(q턏, q턏, q턏, q턏, q턏);
+Test_N(q턐, q턐, q턐, q턐, q턐);
+Test_N(q턑, q턑, q턑, q턑, q턑);
+Test_N(q턒, q턒, q턒, q턒, q턒);
+Test_N(q턓, q턓, q턓, q턓, q턓);
+Test_N(q턔, q턔, q턔, q턔, q턔);
+Test_N(q턕, q턕, q턕, q턕, q턕);
+Test_N(q턖, q턖, q턖, q턖, q턖);
+Test_N(q턗, q턗, q턗, q턗, q턗);
+Test_N(q턘, q턘, q턘, q턘, q턘);
+Test_N(q턙, q턙, q턙, q턙, q턙);
+Test_N(q턚, q턚, q턚, q턚, q턚);
+Test_N(q턛, q턛, q턛, q턛, q턛);
+Test_N(q턜, q턜, q턜, q턜, q턜);
+Test_N(q턝, q턝, q턝, q턝, q턝);
+Test_N(q턞, q턞, q턞, q턞, q턞);
+Test_N(q턟, q턟, q턟, q턟, q턟);
+Test_N(q턠, q턠, q턠, q턠, q턠);
+Test_N(q턡, q턡, q턡, q턡, q턡);
+Test_N(q턢, q턢, q턢, q턢, q턢);
+Test_N(q턣, q턣, q턣, q턣, q턣);
+Test_N(q턤, q턤, q턤, q턤, q턤);
+Test_N(q턥, q턥, q턥, q턥, q턥);
+Test_N(q턦, q턦, q턦, q턦, q턦);
+Test_N(q턧, q턧, q턧, q턧, q턧);
+Test_N(q턨, q턨, q턨, q턨, q턨);
+Test_N(q턩, q턩, q턩, q턩, q턩);
+Test_N(q턪, q턪, q턪, q턪, q턪);
+Test_N(q턫, q턫, q턫, q턫, q턫);
+Test_N(q턬, q턬, q턬, q턬, q턬);
+Test_N(q턭, q턭, q턭, q턭, q턭);
+Test_N(q턮, q턮, q턮, q턮, q턮);
+Test_N(q턯, q턯, q턯, q턯, q턯);
+Test_N(q터, q터, q터, q터, q터);
+Test_N(q턱, q턱, q턱, q턱, q턱);
+Test_N(q턲, q턲, q턲, q턲, q턲);
+Test_N(q턳, q턳, q턳, q턳, q턳);
+Test_N(q턴, q턴, q턴, q턴, q턴);
+Test_N(q턵, q턵, q턵, q턵, q턵);
+Test_N(q턶, q턶, q턶, q턶, q턶);
+Test_N(q턷, q턷, q턷, q턷, q턷);
+Test_N(q털, q털, q털, q털, q털);
+Test_N(q턹, q턹, q턹, q턹, q턹);
+Test_N(q턺, q턺, q턺, q턺, q턺);
+Test_N(q턻, q턻, q턻, q턻, q턻);
+Test_N(q턼, q턼, q턼, q턼, q턼);
+Test_N(q턽, q턽, q턽, q턽, q턽);
+Test_N(q턾, q턾, q턾, q턾, q턾);
+Test_N(q턿, q턿, q턿, q턿, q턿);
+Test_N(q텀, q텀, q텀, q텀, q텀);
+Test_N(q텁, q텁, q텁, q텁, q텁);
+Test_N(q텂, q텂, q텂, q텂, q텂);
+Test_N(q텃, q텃, q텃, q텃, q텃);
+Test_N(q텄, q텄, q텄, q텄, q텄);
+Test_N(q텅, q텅, q텅, q텅, q텅);
+Test_N(q텆, q텆, q텆, q텆, q텆);
+Test_N(q텇, q텇, q텇, q텇, q텇);
+Test_N(q텈, q텈, q텈, q텈, q텈);
+Test_N(q텉, q텉, q텉, q텉, q텉);
+Test_N(q텊, q텊, q텊, q텊, q텊);
+Test_N(q텋, q텋, q텋, q텋, q텋);
+Test_N(q테, q테, q테, q테, q테);
+Test_N(q텍, q텍, q텍, q텍, q텍);
+Test_N(q텎, q텎, q텎, q텎, q텎);
+Test_N(q텏, q텏, q텏, q텏, q텏);
+Test_N(q텐, q텐, q텐, q텐, q텐);
+Test_N(q텑, q텑, q텑, q텑, q텑);
+Test_N(q텒, q텒, q텒, q텒, q텒);
+Test_N(q텓, q텓, q텓, q텓, q텓);
+Test_N(q텔, q텔, q텔, q텔, q텔);
+Test_N(q텕, q텕, q텕, q텕, q텕);
+Test_N(q텖, q텖, q텖, q텖, q텖);
+Test_N(q텗, q텗, q텗, q텗, q텗);
+Test_N(q텘, q텘, q텘, q텘, q텘);
+Test_N(q텙, q텙, q텙, q텙, q텙);
+Test_N(q텚, q텚, q텚, q텚, q텚);
+Test_N(q텛, q텛, q텛, q텛, q텛);
+Test_N(q템, q템, q템, q템, q템);
+Test_N(q텝, q텝, q텝, q텝, q텝);
+Test_N(q텞, q텞, q텞, q텞, q텞);
+Test_N(q텟, q텟, q텟, q텟, q텟);
+Test_N(q텠, q텠, q텠, q텠, q텠);
+Test_N(q텡, q텡, q텡, q텡, q텡);
+Test_N(q텢, q텢, q텢, q텢, q텢);
+Test_N(q텣, q텣, q텣, q텣, q텣);
+Test_N(q텤, q텤, q텤, q텤, q텤);
+Test_N(q텥, q텥, q텥, q텥, q텥);
+Test_N(q텦, q텦, q텦, q텦, q텦);
+Test_N(q텧, q텧, q텧, q텧, q텧);
+Test_N(q텨, q텨, q텨, q텨, q텨);
+Test_N(q텩, q텩, q텩, q텩, q텩);
+Test_N(q텪, q텪, q텪, q텪, q텪);
+Test_N(q텫, q텫, q텫, q텫, q텫);
+Test_N(q텬, q텬, q텬, q텬, q텬);
+Test_N(q텭, q텭, q텭, q텭, q텭);
+Test_N(q텮, q텮, q텮, q텮, q텮);
+Test_N(q텯, q텯, q텯, q텯, q텯);
+Test_N(q텰, q텰, q텰, q텰, q텰);
+Test_N(q텱, q텱, q텱, q텱, q텱);
+Test_N(q텲, q텲, q텲, q텲, q텲);
+Test_N(q텳, q텳, q텳, q텳, q텳);
+Test_N(q텴, q텴, q텴, q텴, q텴);
+Test_N(q텵, q텵, q텵, q텵, q텵);
+Test_N(q텶, q텶, q텶, q텶, q텶);
+Test_N(q텷, q텷, q텷, q텷, q텷);
+Test_N(q텸, q텸, q텸, q텸, q텸);
+Test_N(q텹, q텹, q텹, q텹, q텹);
+Test_N(q텺, q텺, q텺, q텺, q텺);
+Test_N(q텻, q텻, q텻, q텻, q텻);
+Test_N(q텼, q텼, q텼, q텼, q텼);
+Test_N(q텽, q텽, q텽, q텽, q텽);
+Test_N(q텾, q텾, q텾, q텾, q텾);
+Test_N(q텿, q텿, q텿, q텿, q텿);
+Test_N(q톀, q톀, q톀, q톀, q톀);
+Test_N(q톁, q톁, q톁, q톁, q톁);
+Test_N(q톂, q톂, q톂, q톂, q톂);
+Test_N(q톃, q톃, q톃, q톃, q톃);
+Test_N(q톄, q톄, q톄, q톄, q톄);
+Test_N(q톅, q톅, q톅, q톅, q톅);
+Test_N(q톆, q톆, q톆, q톆, q톆);
+Test_N(q톇, q톇, q톇, q톇, q톇);
+Test_N(q톈, q톈, q톈, q톈, q톈);
+Test_N(q톉, q톉, q톉, q톉, q톉);
+Test_N(q톊, q톊, q톊, q톊, q톊);
+Test_N(q톋, q톋, q톋, q톋, q톋);
+Test_N(q톌, q톌, q톌, q톌, q톌);
+Test_N(q톍, q톍, q톍, q톍, q톍);
+Test_N(q톎, q톎, q톎, q톎, q톎);
+Test_N(q톏, q톏, q톏, q톏, q톏);
+Test_N(q톐, q톐, q톐, q톐, q톐);
+Test_N(q톑, q톑, q톑, q톑, q톑);
+Test_N(q톒, q톒, q톒, q톒, q톒);
+Test_N(q톓, q톓, q톓, q톓, q톓);
+Test_N(q톔, q톔, q톔, q톔, q톔);
+Test_N(q톕, q톕, q톕, q톕, q톕);
+Test_N(q톖, q톖, q톖, q톖, q톖);
+Test_N(q톗, q톗, q톗, q톗, q톗);
+Test_N(q톘, q톘, q톘, q톘, q톘);
+Test_N(q톙, q톙, q톙, q톙, q톙);
+Test_N(q톚, q톚, q톚, q톚, q톚);
+Test_N(q톛, q톛, q톛, q톛, q톛);
+Test_N(q톜, q톜, q톜, q톜, q톜);
+Test_N(q톝, q톝, q톝, q톝, q톝);
+Test_N(q톞, q톞, q톞, q톞, q톞);
+Test_N(q톟, q톟, q톟, q톟, q톟);
+Test_N(q토, q토, q토, q토, q토);
+Test_N(q톡, q톡, q톡, q톡, q톡);
+Test_N(q톢, q톢, q톢, q톢, q톢);
+Test_N(q톣, q톣, q톣, q톣, q톣);
+Test_N(q톤, q톤, q톤, q톤, q톤);
+Test_N(q톥, q톥, q톥, q톥, q톥);
+Test_N(q톦, q톦, q톦, q톦, q톦);
+Test_N(q톧, q톧, q톧, q톧, q톧);
+Test_N(q톨, q톨, q톨, q톨, q톨);
+Test_N(q톩, q톩, q톩, q톩, q톩);
+Test_N(q톪, q톪, q톪, q톪, q톪);
+Test_N(q톫, q톫, q톫, q톫, q톫);
+Test_N(q톬, q톬, q톬, q톬, q톬);
+Test_N(q톭, q톭, q톭, q톭, q톭);
+Test_N(q톮, q톮, q톮, q톮, q톮);
+Test_N(q톯, q톯, q톯, q톯, q톯);
+Test_N(q톰, q톰, q톰, q톰, q톰);
+Test_N(q톱, q톱, q톱, q톱, q톱);
+Test_N(q톲, q톲, q톲, q톲, q톲);
+Test_N(q톳, q톳, q톳, q톳, q톳);
+Test_N(q톴, q톴, q톴, q톴, q톴);
+Test_N(q통, q통, q통, q통, q통);
+Test_N(q톶, q톶, q톶, q톶, q톶);
+Test_N(q톷, q톷, q톷, q톷, q톷);
+Test_N(q톸, q톸, q톸, q톸, q톸);
+Test_N(q톹, q톹, q톹, q톹, q톹);
+Test_N(q톺, q톺, q톺, q톺, q톺);
+Test_N(q톻, q톻, q톻, q톻, q톻);
+Test_N(q톼, q톼, q톼, q톼, q톼);
+Test_N(q톽, q톽, q톽, q톽, q톽);
+Test_N(q톾, q톾, q톾, q톾, q톾);
+Test_N(q톿, q톿, q톿, q톿, q톿);
+Test_N(q퇀, q퇀, q퇀, q퇀, q퇀);
+Test_N(q퇁, q퇁, q퇁, q퇁, q퇁);
+Test_N(q퇂, q퇂, q퇂, q퇂, q퇂);
+Test_N(q퇃, q퇃, q퇃, q퇃, q퇃);
+Test_N(q퇄, q퇄, q퇄, q퇄, q퇄);
+Test_N(q퇅, q퇅, q퇅, q퇅, q퇅);
+Test_N(q퇆, q퇆, q퇆, q퇆, q퇆);
+Test_N(q퇇, q퇇, q퇇, q퇇, q퇇);
+Test_N(q퇈, q퇈, q퇈, q퇈, q퇈);
+Test_N(q퇉, q퇉, q퇉, q퇉, q퇉);
+Test_N(q퇊, q퇊, q퇊, q퇊, q퇊);
+Test_N(q퇋, q퇋, q퇋, q퇋, q퇋);
+Test_N(q퇌, q퇌, q퇌, q퇌, q퇌);
+Test_N(q퇍, q퇍, q퇍, q퇍, q퇍);
+Test_N(q퇎, q퇎, q퇎, q퇎, q퇎);
+Test_N(q퇏, q퇏, q퇏, q퇏, q퇏);
+Test_N(q퇐, q퇐, q퇐, q퇐, q퇐);
+Test_N(q퇑, q퇑, q퇑, q퇑, q퇑);
+Test_N(q퇒, q퇒, q퇒, q퇒, q퇒);
+Test_N(q퇓, q퇓, q퇓, q퇓, q퇓);
+Test_N(q퇔, q퇔, q퇔, q퇔, q퇔);
+Test_N(q퇕, q퇕, q퇕, q퇕, q퇕);
+Test_N(q퇖, q퇖, q퇖, q퇖, q퇖);
+Test_N(q퇗, q퇗, q퇗, q퇗, q퇗);
+Test_N(q퇘, q퇘, q퇘, q퇘, q퇘);
+Test_N(q퇙, q퇙, q퇙, q퇙, q퇙);
+Test_N(q퇚, q퇚, q퇚, q퇚, q퇚);
+Test_N(q퇛, q퇛, q퇛, q퇛, q퇛);
+Test_N(q퇜, q퇜, q퇜, q퇜, q퇜);
+Test_N(q퇝, q퇝, q퇝, q퇝, q퇝);
+Test_N(q퇞, q퇞, q퇞, q퇞, q퇞);
+Test_N(q퇟, q퇟, q퇟, q퇟, q퇟);
+Test_N(q퇠, q퇠, q퇠, q퇠, q퇠);
+Test_N(q퇡, q퇡, q퇡, q퇡, q퇡);
+Test_N(q퇢, q퇢, q퇢, q퇢, q퇢);
+Test_N(q퇣, q퇣, q퇣, q퇣, q퇣);
+Test_N(q퇤, q퇤, q퇤, q퇤, q퇤);
+Test_N(q퇥, q퇥, q퇥, q퇥, q퇥);
+Test_N(q퇦, q퇦, q퇦, q퇦, q퇦);
+Test_N(q퇧, q퇧, q퇧, q퇧, q퇧);
+Test_N(q퇨, q퇨, q퇨, q퇨, q퇨);
+Test_N(q퇩, q퇩, q퇩, q퇩, q퇩);
+Test_N(q퇪, q퇪, q퇪, q퇪, q퇪);
+Test_N(q퇫, q퇫, q퇫, q퇫, q퇫);
+Test_N(q퇬, q퇬, q퇬, q퇬, q퇬);
+Test_N(q퇭, q퇭, q퇭, q퇭, q퇭);
+Test_N(q퇮, q퇮, q퇮, q퇮, q퇮);
+Test_N(q퇯, q퇯, q퇯, q퇯, q퇯);
+Test_N(q퇰, q퇰, q퇰, q퇰, q퇰);
+Test_N(q퇱, q퇱, q퇱, q퇱, q퇱);
+Test_N(q퇲, q퇲, q퇲, q퇲, q퇲);
+Test_N(q퇳, q퇳, q퇳, q퇳, q퇳);
+Test_N(q퇴, q퇴, q퇴, q퇴, q퇴);
+Test_N(q퇵, q퇵, q퇵, q퇵, q퇵);
+Test_N(q퇶, q퇶, q퇶, q퇶, q퇶);
+Test_N(q퇷, q퇷, q퇷, q퇷, q퇷);
+Test_N(q퇸, q퇸, q퇸, q퇸, q퇸);
+Test_N(q퇹, q퇹, q퇹, q퇹, q퇹);
+Test_N(q퇺, q퇺, q퇺, q퇺, q퇺);
+Test_N(q퇻, q퇻, q퇻, q퇻, q퇻);
+Test_N(q퇼, q퇼, q퇼, q퇼, q퇼);
+Test_N(q퇽, q퇽, q퇽, q퇽, q퇽);
+Test_N(q퇾, q퇾, q퇾, q퇾, q퇾);
+Test_N(q퇿, q퇿, q퇿, q퇿, q퇿);
+Test_N(q툀, q툀, q툀, q툀, q툀);
+Test_N(q툁, q툁, q툁, q툁, q툁);
+Test_N(q툂, q툂, q툂, q툂, q툂);
+Test_N(q툃, q툃, q툃, q툃, q툃);
+Test_N(q툄, q툄, q툄, q툄, q툄);
+Test_N(q툅, q툅, q툅, q툅, q툅);
+Test_N(q툆, q툆, q툆, q툆, q툆);
+Test_N(q툇, q툇, q툇, q툇, q툇);
+Test_N(q툈, q툈, q툈, q툈, q툈);
+Test_N(q툉, q툉, q툉, q툉, q툉);
+Test_N(q툊, q툊, q툊, q툊, q툊);
+Test_N(q툋, q툋, q툋, q툋, q툋);
+Test_N(q툌, q툌, q툌, q툌, q툌);
+Test_N(q툍, q툍, q툍, q툍, q툍);
+Test_N(q툎, q툎, q툎, q툎, q툎);
+Test_N(q툏, q툏, q툏, q툏, q툏);
+Test_N(q툐, q툐, q툐, q툐, q툐);
+Test_N(q툑, q툑, q툑, q툑, q툑);
+Test_N(q툒, q툒, q툒, q툒, q툒);
+Test_N(q툓, q툓, q툓, q툓, q툓);
+Test_N(q툔, q툔, q툔, q툔, q툔);
+Test_N(q툕, q툕, q툕, q툕, q툕);
+Test_N(q툖, q툖, q툖, q툖, q툖);
+Test_N(q툗, q툗, q툗, q툗, q툗);
+Test_N(q툘, q툘, q툘, q툘, q툘);
+Test_N(q툙, q툙, q툙, q툙, q툙);
+Test_N(q툚, q툚, q툚, q툚, q툚);
+Test_N(q툛, q툛, q툛, q툛, q툛);
+Test_N(q툜, q툜, q툜, q툜, q툜);
+Test_N(q툝, q툝, q툝, q툝, q툝);
+Test_N(q툞, q툞, q툞, q툞, q툞);
+Test_N(q툟, q툟, q툟, q툟, q툟);
+Test_N(q툠, q툠, q툠, q툠, q툠);
+Test_N(q툡, q툡, q툡, q툡, q툡);
+Test_N(q툢, q툢, q툢, q툢, q툢);
+Test_N(q툣, q툣, q툣, q툣, q툣);
+Test_N(q툤, q툤, q툤, q툤, q툤);
+Test_N(q툥, q툥, q툥, q툥, q툥);
+Test_N(q툦, q툦, q툦, q툦, q툦);
+Test_N(q툧, q툧, q툧, q툧, q툧);
+Test_N(q툨, q툨, q툨, q툨, q툨);
+Test_N(q툩, q툩, q툩, q툩, q툩);
+Test_N(q툪, q툪, q툪, q툪, q툪);
+Test_N(q툫, q툫, q툫, q툫, q툫);
+Test_N(q투, q투, q투, q투, q투);
+Test_N(q툭, q툭, q툭, q툭, q툭);
+Test_N(q툮, q툮, q툮, q툮, q툮);
+Test_N(q툯, q툯, q툯, q툯, q툯);
+Test_N(q툰, q툰, q툰, q툰, q툰);
+Test_N(q툱, q툱, q툱, q툱, q툱);
+Test_N(q툲, q툲, q툲, q툲, q툲);
+Test_N(q툳, q툳, q툳, q툳, q툳);
+Test_N(q툴, q툴, q툴, q툴, q툴);
+Test_N(q툵, q툵, q툵, q툵, q툵);
+Test_N(q툶, q툶, q툶, q툶, q툶);
+Test_N(q툷, q툷, q툷, q툷, q툷);
+Test_N(q툸, q툸, q툸, q툸, q툸);
+Test_N(q툹, q툹, q툹, q툹, q툹);
+Test_N(q툺, q툺, q툺, q툺, q툺);
+Test_N(q툻, q툻, q툻, q툻, q툻);
+Test_N(q툼, q툼, q툼, q툼, q툼);
+Test_N(q툽, q툽, q툽, q툽, q툽);
+Test_N(q툾, q툾, q툾, q툾, q툾);
+Test_N(q툿, q툿, q툿, q툿, q툿);
+Test_N(q퉀, q퉀, q퉀, q퉀, q퉀);
+Test_N(q퉁, q퉁, q퉁, q퉁, q퉁);
+Test_N(q퉂, q퉂, q퉂, q퉂, q퉂);
+Test_N(q퉃, q퉃, q퉃, q퉃, q퉃);
+Test_N(q퉄, q퉄, q퉄, q퉄, q퉄);
+Test_N(q퉅, q퉅, q퉅, q퉅, q퉅);
+Test_N(q퉆, q퉆, q퉆, q퉆, q퉆);
+Test_N(q퉇, q퉇, q퉇, q퉇, q퉇);
+Test_N(q퉈, q퉈, q퉈, q퉈, q퉈);
+Test_N(q퉉, q퉉, q퉉, q퉉, q퉉);
+Test_N(q퉊, q퉊, q퉊, q퉊, q퉊);
+Test_N(q퉋, q퉋, q퉋, q퉋, q퉋);
+Test_N(q퉌, q퉌, q퉌, q퉌, q퉌);
+Test_N(q퉍, q퉍, q퉍, q퉍, q퉍);
+Test_N(q퉎, q퉎, q퉎, q퉎, q퉎);
+Test_N(q퉏, q퉏, q퉏, q퉏, q퉏);
+Test_N(q퉐, q퉐, q퉐, q퉐, q퉐);
+Test_N(q퉑, q퉑, q퉑, q퉑, q퉑);
+Test_N(q퉒, q퉒, q퉒, q퉒, q퉒);
+Test_N(q퉓, q퉓, q퉓, q퉓, q퉓);
+Test_N(q퉔, q퉔, q퉔, q퉔, q퉔);
+Test_N(q퉕, q퉕, q퉕, q퉕, q퉕);
+Test_N(q퉖, q퉖, q퉖, q퉖, q퉖);
+Test_N(q퉗, q퉗, q퉗, q퉗, q퉗);
+Test_N(q퉘, q퉘, q퉘, q퉘, q퉘);
+Test_N(q퉙, q퉙, q퉙, q퉙, q퉙);
+Test_N(q퉚, q퉚, q퉚, q퉚, q퉚);
+Test_N(q퉛, q퉛, q퉛, q퉛, q퉛);
+Test_N(q퉜, q퉜, q퉜, q퉜, q퉜);
+Test_N(q퉝, q퉝, q퉝, q퉝, q퉝);
+Test_N(q퉞, q퉞, q퉞, q퉞, q퉞);
+Test_N(q퉟, q퉟, q퉟, q퉟, q퉟);
+Test_N(q퉠, q퉠, q퉠, q퉠, q퉠);
+Test_N(q퉡, q퉡, q퉡, q퉡, q퉡);
+Test_N(q퉢, q퉢, q퉢, q퉢, q퉢);
+Test_N(q퉣, q퉣, q퉣, q퉣, q퉣);
+Test_N(q퉤, q퉤, q퉤, q퉤, q퉤);
+Test_N(q퉥, q퉥, q퉥, q퉥, q퉥);
+Test_N(q퉦, q퉦, q퉦, q퉦, q퉦);
+Test_N(q퉧, q퉧, q퉧, q퉧, q퉧);
+Test_N(q퉨, q퉨, q퉨, q퉨, q퉨);
+Test_N(q퉩, q퉩, q퉩, q퉩, q퉩);
+Test_N(q퉪, q퉪, q퉪, q퉪, q퉪);
+Test_N(q퉫, q퉫, q퉫, q퉫, q퉫);
+Test_N(q퉬, q퉬, q퉬, q퉬, q퉬);
+Test_N(q퉭, q퉭, q퉭, q퉭, q퉭);
+Test_N(q퉮, q퉮, q퉮, q퉮, q퉮);
+Test_N(q퉯, q퉯, q퉯, q퉯, q퉯);
+Test_N(q퉰, q퉰, q퉰, q퉰, q퉰);
+Test_N(q퉱, q퉱, q퉱, q퉱, q퉱);
+Test_N(q퉲, q퉲, q퉲, q퉲, q퉲);
+Test_N(q퉳, q퉳, q퉳, q퉳, q퉳);
+Test_N(q퉴, q퉴, q퉴, q퉴, q퉴);
+Test_N(q퉵, q퉵, q퉵, q퉵, q퉵);
+Test_N(q퉶, q퉶, q퉶, q퉶, q퉶);
+Test_N(q퉷, q퉷, q퉷, q퉷, q퉷);
+Test_N(q퉸, q퉸, q퉸, q퉸, q퉸);
+Test_N(q퉹, q퉹, q퉹, q퉹, q퉹);
+Test_N(q퉺, q퉺, q퉺, q퉺, q퉺);
+Test_N(q퉻, q퉻, q퉻, q퉻, q퉻);
+Test_N(q퉼, q퉼, q퉼, q퉼, q퉼);
+Test_N(q퉽, q퉽, q퉽, q퉽, q퉽);
+Test_N(q퉾, q퉾, q퉾, q퉾, q퉾);
+Test_N(q퉿, q퉿, q퉿, q퉿, q퉿);
+Test_N(q튀, q튀, q튀, q튀, q튀);
+Test_N(q튁, q튁, q튁, q튁, q튁);
+Test_N(q튂, q튂, q튂, q튂, q튂);
+Test_N(q튃, q튃, q튃, q튃, q튃);
+Test_N(q튄, q튄, q튄, q튄, q튄);
+Test_N(q튅, q튅, q튅, q튅, q튅);
+Test_N(q튆, q튆, q튆, q튆, q튆);
+Test_N(q튇, q튇, q튇, q튇, q튇);
+Test_N(q튈, q튈, q튈, q튈, q튈);
+Test_N(q튉, q튉, q튉, q튉, q튉);
+Test_N(q튊, q튊, q튊, q튊, q튊);
+Test_N(q튋, q튋, q튋, q튋, q튋);
+Test_N(q튌, q튌, q튌, q튌, q튌);
+Test_N(q튍, q튍, q튍, q튍, q튍);
+Test_N(q튎, q튎, q튎, q튎, q튎);
+Test_N(q튏, q튏, q튏, q튏, q튏);
+Test_N(q튐, q튐, q튐, q튐, q튐);
+Test_N(q튑, q튑, q튑, q튑, q튑);
+Test_N(q튒, q튒, q튒, q튒, q튒);
+Test_N(q튓, q튓, q튓, q튓, q튓);
+Test_N(q튔, q튔, q튔, q튔, q튔);
+Test_N(q튕, q튕, q튕, q튕, q튕);
+Test_N(q튖, q튖, q튖, q튖, q튖);
+Test_N(q튗, q튗, q튗, q튗, q튗);
+Test_N(q튘, q튘, q튘, q튘, q튘);
+Test_N(q튙, q튙, q튙, q튙, q튙);
+Test_N(q튚, q튚, q튚, q튚, q튚);
+Test_N(q튛, q튛, q튛, q튛, q튛);
+Test_N(q튜, q튜, q튜, q튜, q튜);
+Test_N(q튝, q튝, q튝, q튝, q튝);
+Test_N(q튞, q튞, q튞, q튞, q튞);
+Test_N(q튟, q튟, q튟, q튟, q튟);
+Test_N(q튠, q튠, q튠, q튠, q튠);
+Test_N(q튡, q튡, q튡, q튡, q튡);
+Test_N(q튢, q튢, q튢, q튢, q튢);
+Test_N(q튣, q튣, q튣, q튣, q튣);
+Test_N(q튤, q튤, q튤, q튤, q튤);
+Test_N(q튥, q튥, q튥, q튥, q튥);
+Test_N(q튦, q튦, q튦, q튦, q튦);
+Test_N(q튧, q튧, q튧, q튧, q튧);
+Test_N(q튨, q튨, q튨, q튨, q튨);
+Test_N(q튩, q튩, q튩, q튩, q튩);
+Test_N(q튪, q튪, q튪, q튪, q튪);
+Test_N(q튫, q튫, q튫, q튫, q튫);
+Test_N(q튬, q튬, q튬, q튬, q튬);
+Test_N(q튭, q튭, q튭, q튭, q튭);
+Test_N(q튮, q튮, q튮, q튮, q튮);
+Test_N(q튯, q튯, q튯, q튯, q튯);
+Test_N(q튰, q튰, q튰, q튰, q튰);
+Test_N(q튱, q튱, q튱, q튱, q튱);
+Test_N(q튲, q튲, q튲, q튲, q튲);
+Test_N(q튳, q튳, q튳, q튳, q튳);
+Test_N(q튴, q튴, q튴, q튴, q튴);
+Test_N(q튵, q튵, q튵, q튵, q튵);
+Test_N(q튶, q튶, q튶, q튶, q튶);
+Test_N(q튷, q튷, q튷, q튷, q튷);
+Test_N(q트, q트, q트, q트, q트);
+Test_N(q특, q특, q특, q특, q특);
+Test_N(q튺, q튺, q튺, q튺, q튺);
+Test_N(q튻, q튻, q튻, q튻, q튻);
+Test_N(q튼, q튼, q튼, q튼, q튼);
+Test_N(q튽, q튽, q튽, q튽, q튽);
+Test_N(q튾, q튾, q튾, q튾, q튾);
+Test_N(q튿, q튿, q튿, q튿, q튿);
+Test_N(q틀, q틀, q틀, q틀, q틀);
+Test_N(q틁, q틁, q틁, q틁, q틁);
+Test_N(q틂, q틂, q틂, q틂, q틂);
+Test_N(q틃, q틃, q틃, q틃, q틃);
+Test_N(q틄, q틄, q틄, q틄, q틄);
+Test_N(q틅, q틅, q틅, q틅, q틅);
+Test_N(q틆, q틆, q틆, q틆, q틆);
+Test_N(q틇, q틇, q틇, q틇, q틇);
+Test_N(q틈, q틈, q틈, q틈, q틈);
+Test_N(q틉, q틉, q틉, q틉, q틉);
+Test_N(q틊, q틊, q틊, q틊, q틊);
+Test_N(q틋, q틋, q틋, q틋, q틋);
+Test_N(q틌, q틌, q틌, q틌, q틌);
+Test_N(q틍, q틍, q틍, q틍, q틍);
+Test_N(q틎, q틎, q틎, q틎, q틎);
+Test_N(q틏, q틏, q틏, q틏, q틏);
+Test_N(q틐, q틐, q틐, q틐, q틐);
+Test_N(q틑, q틑, q틑, q틑, q틑);
+Test_N(q틒, q틒, q틒, q틒, q틒);
+Test_N(q틓, q틓, q틓, q틓, q틓);
+Test_N(q틔, q틔, q틔, q틔, q틔);
+Test_N(q틕, q틕, q틕, q틕, q틕);
+Test_N(q틖, q틖, q틖, q틖, q틖);
+Test_N(q틗, q틗, q틗, q틗, q틗);
+Test_N(q틘, q틘, q틘, q틘, q틘);
+Test_N(q틙, q틙, q틙, q틙, q틙);
+Test_N(q틚, q틚, q틚, q틚, q틚);
+Test_N(q틛, q틛, q틛, q틛, q틛);
+Test_N(q틜, q틜, q틜, q틜, q틜);
+Test_N(q틝, q틝, q틝, q틝, q틝);
+Test_N(q틞, q틞, q틞, q틞, q틞);
+Test_N(q틟, q틟, q틟, q틟, q틟);
+Test_N(q틠, q틠, q틠, q틠, q틠);
+Test_N(q틡, q틡, q틡, q틡, q틡);
+Test_N(q틢, q틢, q틢, q틢, q틢);
+Test_N(q틣, q틣, q틣, q틣, q틣);
+Test_N(q틤, q틤, q틤, q틤, q틤);
+Test_N(q틥, q틥, q틥, q틥, q틥);
+Test_N(q틦, q틦, q틦, q틦, q틦);
+Test_N(q틧, q틧, q틧, q틧, q틧);
+Test_N(q틨, q틨, q틨, q틨, q틨);
+Test_N(q틩, q틩, q틩, q틩, q틩);
+Test_N(q틪, q틪, q틪, q틪, q틪);
+Test_N(q틫, q틫, q틫, q틫, q틫);
+Test_N(q틬, q틬, q틬, q틬, q틬);
+Test_N(q틭, q틭, q틭, q틭, q틭);
+Test_N(q틮, q틮, q틮, q틮, q틮);
+Test_N(q틯, q틯, q틯, q틯, q틯);
+Test_N(q티, q티, q티, q티, q티);
+Test_N(q틱, q틱, q틱, q틱, q틱);
+Test_N(q틲, q틲, q틲, q틲, q틲);
+Test_N(q틳, q틳, q틳, q틳, q틳);
+Test_N(q틴, q틴, q틴, q틴, q틴);
+Test_N(q틵, q틵, q틵, q틵, q틵);
+Test_N(q틶, q틶, q틶, q틶, q틶);
+Test_N(q틷, q틷, q틷, q틷, q틷);
+Test_N(q틸, q틸, q틸, q틸, q틸);
+Test_N(q틹, q틹, q틹, q틹, q틹);
+Test_N(q틺, q틺, q틺, q틺, q틺);
+Test_N(q틻, q틻, q틻, q틻, q틻);
+Test_N(q틼, q틼, q틼, q틼, q틼);
+Test_N(q틽, q틽, q틽, q틽, q틽);
+Test_N(q틾, q틾, q틾, q틾, q틾);
+Test_N(q틿, q틿, q틿, q틿, q틿);
+Test_N(q팀, q팀, q팀, q팀, q팀);
+Test_N(q팁, q팁, q팁, q팁, q팁);
+Test_N(q팂, q팂, q팂, q팂, q팂);
+Test_N(q팃, q팃, q팃, q팃, q팃);
+Test_N(q팄, q팄, q팄, q팄, q팄);
+Test_N(q팅, q팅, q팅, q팅, q팅);
+Test_N(q팆, q팆, q팆, q팆, q팆);
+Test_N(q팇, q팇, q팇, q팇, q팇);
+Test_N(q팈, q팈, q팈, q팈, q팈);
+Test_N(q팉, q팉, q팉, q팉, q팉);
+Test_N(q팊, q팊, q팊, q팊, q팊);
+Test_N(q팋, q팋, q팋, q팋, q팋);
+Test_N(q파, q파, q파, q파, q파);
+Test_N(q팍, q팍, q팍, q팍, q팍);
+Test_N(q팎, q팎, q팎, q팎, q팎);
+Test_N(q팏, q팏, q팏, q팏, q팏);
+Test_N(q판, q판, q판, q판, q판);
+Test_N(q팑, q팑, q팑, q팑, q팑);
+Test_N(q팒, q팒, q팒, q팒, q팒);
+Test_N(q팓, q팓, q팓, q팓, q팓);
+Test_N(q팔, q팔, q팔, q팔, q팔);
+Test_N(q팕, q팕, q팕, q팕, q팕);
+Test_N(q팖, q팖, q팖, q팖, q팖);
+Test_N(q팗, q팗, q팗, q팗, q팗);
+Test_N(q팘, q팘, q팘, q팘, q팘);
+Test_N(q팙, q팙, q팙, q팙, q팙);
+Test_N(q팚, q팚, q팚, q팚, q팚);
+Test_N(q팛, q팛, q팛, q팛, q팛);
+Test_N(q팜, q팜, q팜, q팜, q팜);
+Test_N(q팝, q팝, q팝, q팝, q팝);
+Test_N(q팞, q팞, q팞, q팞, q팞);
+Test_N(q팟, q팟, q팟, q팟, q팟);
+Test_N(q팠, q팠, q팠, q팠, q팠);
+Test_N(q팡, q팡, q팡, q팡, q팡);
+Test_N(q팢, q팢, q팢, q팢, q팢);
+Test_N(q팣, q팣, q팣, q팣, q팣);
+Test_N(q팤, q팤, q팤, q팤, q팤);
+Test_N(q팥, q팥, q팥, q팥, q팥);
+Test_N(q팦, q팦, q팦, q팦, q팦);
+Test_N(q팧, q팧, q팧, q팧, q팧);
+Test_N(q패, q패, q패, q패, q패);
+Test_N(q팩, q팩, q팩, q팩, q팩);
+Test_N(q팪, q팪, q팪, q팪, q팪);
+Test_N(q팫, q팫, q팫, q팫, q팫);
+Test_N(q팬, q팬, q팬, q팬, q팬);
+Test_N(q팭, q팭, q팭, q팭, q팭);
+Test_N(q팮, q팮, q팮, q팮, q팮);
+Test_N(q팯, q팯, q팯, q팯, q팯);
+Test_N(q팰, q팰, q팰, q팰, q팰);
+Test_N(q팱, q팱, q팱, q팱, q팱);
+Test_N(q팲, q팲, q팲, q팲, q팲);
+Test_N(q팳, q팳, q팳, q팳, q팳);
+Test_N(q팴, q팴, q팴, q팴, q팴);
+Test_N(q팵, q팵, q팵, q팵, q팵);
+Test_N(q팶, q팶, q팶, q팶, q팶);
+Test_N(q팷, q팷, q팷, q팷, q팷);
+Test_N(q팸, q팸, q팸, q팸, q팸);
+Test_N(q팹, q팹, q팹, q팹, q팹);
+Test_N(q팺, q팺, q팺, q팺, q팺);
+Test_N(q팻, q팻, q팻, q팻, q팻);
+Test_N(q팼, q팼, q팼, q팼, q팼);
+Test_N(q팽, q팽, q팽, q팽, q팽);
+Test_N(q팾, q팾, q팾, q팾, q팾);
+Test_N(q팿, q팿, q팿, q팿, q팿);
+Test_N(q퍀, q퍀, q퍀, q퍀, q퍀);
+Test_N(q퍁, q퍁, q퍁, q퍁, q퍁);
+Test_N(q퍂, q퍂, q퍂, q퍂, q퍂);
+Test_N(q퍃, q퍃, q퍃, q퍃, q퍃);
+Test_N(q퍄, q퍄, q퍄, q퍄, q퍄);
+Test_N(q퍅, q퍅, q퍅, q퍅, q퍅);
+Test_N(q퍆, q퍆, q퍆, q퍆, q퍆);
+Test_N(q퍇, q퍇, q퍇, q퍇, q퍇);
+Test_N(q퍈, q퍈, q퍈, q퍈, q퍈);
+Test_N(q퍉, q퍉, q퍉, q퍉, q퍉);
+Test_N(q퍊, q퍊, q퍊, q퍊, q퍊);
+Test_N(q퍋, q퍋, q퍋, q퍋, q퍋);
+Test_N(q퍌, q퍌, q퍌, q퍌, q퍌);
+Test_N(q퍍, q퍍, q퍍, q퍍, q퍍);
+Test_N(q퍎, q퍎, q퍎, q퍎, q퍎);
+Test_N(q퍏, q퍏, q퍏, q퍏, q퍏);
+Test_N(q퍐, q퍐, q퍐, q퍐, q퍐);
+Test_N(q퍑, q퍑, q퍑, q퍑, q퍑);
+Test_N(q퍒, q퍒, q퍒, q퍒, q퍒);
+Test_N(q퍓, q퍓, q퍓, q퍓, q퍓);
+Test_N(q퍔, q퍔, q퍔, q퍔, q퍔);
+Test_N(q퍕, q퍕, q퍕, q퍕, q퍕);
+Test_N(q퍖, q퍖, q퍖, q퍖, q퍖);
+Test_N(q퍗, q퍗, q퍗, q퍗, q퍗);
+Test_N(q퍘, q퍘, q퍘, q퍘, q퍘);
+Test_N(q퍙, q퍙, q퍙, q퍙, q퍙);
+Test_N(q퍚, q퍚, q퍚, q퍚, q퍚);
+Test_N(q퍛, q퍛, q퍛, q퍛, q퍛);
+Test_N(q퍜, q퍜, q퍜, q퍜, q퍜);
+Test_N(q퍝, q퍝, q퍝, q퍝, q퍝);
+Test_N(q퍞, q퍞, q퍞, q퍞, q퍞);
+Test_N(q퍟, q퍟, q퍟, q퍟, q퍟);
+Test_N(q퍠, q퍠, q퍠, q퍠, q퍠);
+Test_N(q퍡, q퍡, q퍡, q퍡, q퍡);
+Test_N(q퍢, q퍢, q퍢, q퍢, q퍢);
+Test_N(q퍣, q퍣, q퍣, q퍣, q퍣);
+Test_N(q퍤, q퍤, q퍤, q퍤, q퍤);
+Test_N(q퍥, q퍥, q퍥, q퍥, q퍥);
+Test_N(q퍦, q퍦, q퍦, q퍦, q퍦);
+Test_N(q퍧, q퍧, q퍧, q퍧, q퍧);
+Test_N(q퍨, q퍨, q퍨, q퍨, q퍨);
+Test_N(q퍩, q퍩, q퍩, q퍩, q퍩);
+Test_N(q퍪, q퍪, q퍪, q퍪, q퍪);
+Test_N(q퍫, q퍫, q퍫, q퍫, q퍫);
+Test_N(q퍬, q퍬, q퍬, q퍬, q퍬);
+Test_N(q퍭, q퍭, q퍭, q퍭, q퍭);
+Test_N(q퍮, q퍮, q퍮, q퍮, q퍮);
+Test_N(q퍯, q퍯, q퍯, q퍯, q퍯);
+Test_N(q퍰, q퍰, q퍰, q퍰, q퍰);
+Test_N(q퍱, q퍱, q퍱, q퍱, q퍱);
+Test_N(q퍲, q퍲, q퍲, q퍲, q퍲);
+Test_N(q퍳, q퍳, q퍳, q퍳, q퍳);
+Test_N(q퍴, q퍴, q퍴, q퍴, q퍴);
+Test_N(q퍵, q퍵, q퍵, q퍵, q퍵);
+Test_N(q퍶, q퍶, q퍶, q퍶, q퍶);
+Test_N(q퍷, q퍷, q퍷, q퍷, q퍷);
+Test_N(q퍸, q퍸, q퍸, q퍸, q퍸);
+Test_N(q퍹, q퍹, q퍹, q퍹, q퍹);
+Test_N(q퍺, q퍺, q퍺, q퍺, q퍺);
+Test_N(q퍻, q퍻, q퍻, q퍻, q퍻);
+Test_N(q퍼, q퍼, q퍼, q퍼, q퍼);
+Test_N(q퍽, q퍽, q퍽, q퍽, q퍽);
+Test_N(q퍾, q퍾, q퍾, q퍾, q퍾);
+Test_N(q퍿, q퍿, q퍿, q퍿, q퍿);
+Test_N(q펀, q펀, q펀, q펀, q펀);
+Test_N(q펁, q펁, q펁, q펁, q펁);
+Test_N(q펂, q펂, q펂, q펂, q펂);
+Test_N(q펃, q펃, q펃, q펃, q펃);
+Test_N(q펄, q펄, q펄, q펄, q펄);
+Test_N(q펅, q펅, q펅, q펅, q펅);
+Test_N(q펆, q펆, q펆, q펆, q펆);
+Test_N(q펇, q펇, q펇, q펇, q펇);
+Test_N(q펈, q펈, q펈, q펈, q펈);
+Test_N(q펉, q펉, q펉, q펉, q펉);
+Test_N(q펊, q펊, q펊, q펊, q펊);
+Test_N(q펋, q펋, q펋, q펋, q펋);
+Test_N(q펌, q펌, q펌, q펌, q펌);
+Test_N(q펍, q펍, q펍, q펍, q펍);
+Test_N(q펎, q펎, q펎, q펎, q펎);
+Test_N(q펏, q펏, q펏, q펏, q펏);
+Test_N(q펐, q펐, q펐, q펐, q펐);
+Test_N(q펑, q펑, q펑, q펑, q펑);
+Test_N(q펒, q펒, q펒, q펒, q펒);
+Test_N(q펓, q펓, q펓, q펓, q펓);
+Test_N(q펔, q펔, q펔, q펔, q펔);
+Test_N(q펕, q펕, q펕, q펕, q펕);
+Test_N(q펖, q펖, q펖, q펖, q펖);
+Test_N(q펗, q펗, q펗, q펗, q펗);
+Test_N(q페, q페, q페, q페, q페);
+Test_N(q펙, q펙, q펙, q펙, q펙);
+Test_N(q펚, q펚, q펚, q펚, q펚);
+Test_N(q펛, q펛, q펛, q펛, q펛);
+Test_N(q펜, q펜, q펜, q펜, q펜);
+Test_N(q펝, q펝, q펝, q펝, q펝);
+Test_N(q펞, q펞, q펞, q펞, q펞);
+Test_N(q펟, q펟, q펟, q펟, q펟);
+Test_N(q펠, q펠, q펠, q펠, q펠);
+Test_N(q펡, q펡, q펡, q펡, q펡);
+Test_N(q펢, q펢, q펢, q펢, q펢);
+Test_N(q펣, q펣, q펣, q펣, q펣);
+Test_N(q펤, q펤, q펤, q펤, q펤);
+Test_N(q펥, q펥, q펥, q펥, q펥);
+Test_N(q펦, q펦, q펦, q펦, q펦);
+Test_N(q펧, q펧, q펧, q펧, q펧);
+Test_N(q펨, q펨, q펨, q펨, q펨);
+Test_N(q펩, q펩, q펩, q펩, q펩);
+Test_N(q펪, q펪, q펪, q펪, q펪);
+Test_N(q펫, q펫, q펫, q펫, q펫);
+Test_N(q펬, q펬, q펬, q펬, q펬);
+Test_N(q펭, q펭, q펭, q펭, q펭);
+Test_N(q펮, q펮, q펮, q펮, q펮);
+Test_N(q펯, q펯, q펯, q펯, q펯);
+Test_N(q펰, q펰, q펰, q펰, q펰);
+Test_N(q펱, q펱, q펱, q펱, q펱);
+Test_N(q펲, q펲, q펲, q펲, q펲);
+Test_N(q펳, q펳, q펳, q펳, q펳);
+Test_N(q펴, q펴, q펴, q펴, q펴);
+Test_N(q펵, q펵, q펵, q펵, q펵);
+Test_N(q펶, q펶, q펶, q펶, q펶);
+Test_N(q펷, q펷, q펷, q펷, q펷);
+Test_N(q편, q편, q편, q편, q편);
+Test_N(q펹, q펹, q펹, q펹, q펹);
+Test_N(q펺, q펺, q펺, q펺, q펺);
+Test_N(q펻, q펻, q펻, q펻, q펻);
+Test_N(q펼, q펼, q펼, q펼, q펼);
+Test_N(q펽, q펽, q펽, q펽, q펽);
+Test_N(q펾, q펾, q펾, q펾, q펾);
+Test_N(q펿, q펿, q펿, q펿, q펿);
+Test_N(q폀, q폀, q폀, q폀, q폀);
+Test_N(q폁, q폁, q폁, q폁, q폁);
+Test_N(q폂, q폂, q폂, q폂, q폂);
+Test_N(q폃, q폃, q폃, q폃, q폃);
+Test_N(q폄, q폄, q폄, q폄, q폄);
+Test_N(q폅, q폅, q폅, q폅, q폅);
+Test_N(q폆, q폆, q폆, q폆, q폆);
+Test_N(q폇, q폇, q폇, q폇, q폇);
+Test_N(q폈, q폈, q폈, q폈, q폈);
+Test_N(q평, q평, q평, q평, q평);
+Test_N(q폊, q폊, q폊, q폊, q폊);
+Test_N(q폋, q폋, q폋, q폋, q폋);
+Test_N(q폌, q폌, q폌, q폌, q폌);
+Test_N(q폍, q폍, q폍, q폍, q폍);
+Test_N(q폎, q폎, q폎, q폎, q폎);
+Test_N(q폏, q폏, q폏, q폏, q폏);
+Test_N(q폐, q폐, q폐, q폐, q폐);
+Test_N(q폑, q폑, q폑, q폑, q폑);
+Test_N(q폒, q폒, q폒, q폒, q폒);
+Test_N(q폓, q폓, q폓, q폓, q폓);
+Test_N(q폔, q폔, q폔, q폔, q폔);
+Test_N(q폕, q폕, q폕, q폕, q폕);
+Test_N(q폖, q폖, q폖, q폖, q폖);
+Test_N(q폗, q폗, q폗, q폗, q폗);
+Test_N(q폘, q폘, q폘, q폘, q폘);
+Test_N(q폙, q폙, q폙, q폙, q폙);
+Test_N(q폚, q폚, q폚, q폚, q폚);
+Test_N(q폛, q폛, q폛, q폛, q폛);
+Test_N(q폜, q폜, q폜, q폜, q폜);
+Test_N(q폝, q폝, q폝, q폝, q폝);
+Test_N(q폞, q폞, q폞, q폞, q폞);
+Test_N(q폟, q폟, q폟, q폟, q폟);
+Test_N(q폠, q폠, q폠, q폠, q폠);
+Test_N(q폡, q폡, q폡, q폡, q폡);
+Test_N(q폢, q폢, q폢, q폢, q폢);
+Test_N(q폣, q폣, q폣, q폣, q폣);
+Test_N(q폤, q폤, q폤, q폤, q폤);
+Test_N(q폥, q폥, q폥, q폥, q폥);
+Test_N(q폦, q폦, q폦, q폦, q폦);
+Test_N(q폧, q폧, q폧, q폧, q폧);
+Test_N(q폨, q폨, q폨, q폨, q폨);
+Test_N(q폩, q폩, q폩, q폩, q폩);
+Test_N(q폪, q폪, q폪, q폪, q폪);
+Test_N(q폫, q폫, q폫, q폫, q폫);
+Test_N(q포, q포, q포, q포, q포);
+Test_N(q폭, q폭, q폭, q폭, q폭);
+Test_N(q폮, q폮, q폮, q폮, q폮);
+Test_N(q폯, q폯, q폯, q폯, q폯);
+Test_N(q폰, q폰, q폰, q폰, q폰);
+Test_N(q폱, q폱, q폱, q폱, q폱);
+Test_N(q폲, q폲, q폲, q폲, q폲);
+Test_N(q폳, q폳, q폳, q폳, q폳);
+Test_N(q폴, q폴, q폴, q폴, q폴);
+Test_N(q폵, q폵, q폵, q폵, q폵);
+Test_N(q폶, q폶, q폶, q폶, q폶);
+Test_N(q폷, q폷, q폷, q폷, q폷);
+Test_N(q폸, q폸, q폸, q폸, q폸);
+Test_N(q폹, q폹, q폹, q폹, q폹);
+Test_N(q폺, q폺, q폺, q폺, q폺);
+Test_N(q폻, q폻, q폻, q폻, q폻);
+Test_N(q폼, q폼, q폼, q폼, q폼);
+Test_N(q폽, q폽, q폽, q폽, q폽);
+Test_N(q폾, q폾, q폾, q폾, q폾);
+Test_N(q폿, q폿, q폿, q폿, q폿);
+Test_N(q퐀, q퐀, q퐀, q퐀, q퐀);
+Test_N(q퐁, q퐁, q퐁, q퐁, q퐁);
+Test_N(q퐂, q퐂, q퐂, q퐂, q퐂);
+Test_N(q퐃, q퐃, q퐃, q퐃, q퐃);
+Test_N(q퐄, q퐄, q퐄, q퐄, q퐄);
+Test_N(q퐅, q퐅, q퐅, q퐅, q퐅);
+Test_N(q퐆, q퐆, q퐆, q퐆, q퐆);
+Test_N(q퐇, q퐇, q퐇, q퐇, q퐇);
+Test_N(q퐈, q퐈, q퐈, q퐈, q퐈);
+Test_N(q퐉, q퐉, q퐉, q퐉, q퐉);
+Test_N(q퐊, q퐊, q퐊, q퐊, q퐊);
+Test_N(q퐋, q퐋, q퐋, q퐋, q퐋);
+Test_N(q퐌, q퐌, q퐌, q퐌, q퐌);
+Test_N(q퐍, q퐍, q퐍, q퐍, q퐍);
+Test_N(q퐎, q퐎, q퐎, q퐎, q퐎);
+Test_N(q퐏, q퐏, q퐏, q퐏, q퐏);
+Test_N(q퐐, q퐐, q퐐, q퐐, q퐐);
+Test_N(q퐑, q퐑, q퐑, q퐑, q퐑);
+Test_N(q퐒, q퐒, q퐒, q퐒, q퐒);
+Test_N(q퐓, q퐓, q퐓, q퐓, q퐓);
+Test_N(q퐔, q퐔, q퐔, q퐔, q퐔);
+Test_N(q퐕, q퐕, q퐕, q퐕, q퐕);
+Test_N(q퐖, q퐖, q퐖, q퐖, q퐖);
+Test_N(q퐗, q퐗, q퐗, q퐗, q퐗);
+Test_N(q퐘, q퐘, q퐘, q퐘, q퐘);
+Test_N(q퐙, q퐙, q퐙, q퐙, q퐙);
+Test_N(q퐚, q퐚, q퐚, q퐚, q퐚);
+Test_N(q퐛, q퐛, q퐛, q퐛, q퐛);
+Test_N(q퐜, q퐜, q퐜, q퐜, q퐜);
+Test_N(q퐝, q퐝, q퐝, q퐝, q퐝);
+Test_N(q퐞, q퐞, q퐞, q퐞, q퐞);
+Test_N(q퐟, q퐟, q퐟, q퐟, q퐟);
+Test_N(q퐠, q퐠, q퐠, q퐠, q퐠);
+Test_N(q퐡, q퐡, q퐡, q퐡, q퐡);
+Test_N(q퐢, q퐢, q퐢, q퐢, q퐢);
+Test_N(q퐣, q퐣, q퐣, q퐣, q퐣);
+Test_N(q퐤, q퐤, q퐤, q퐤, q퐤);
+Test_N(q퐥, q퐥, q퐥, q퐥, q퐥);
+Test_N(q퐦, q퐦, q퐦, q퐦, q퐦);
+Test_N(q퐧, q퐧, q퐧, q퐧, q퐧);
+Test_N(q퐨, q퐨, q퐨, q퐨, q퐨);
+Test_N(q퐩, q퐩, q퐩, q퐩, q퐩);
+Test_N(q퐪, q퐪, q퐪, q퐪, q퐪);
+Test_N(q퐫, q퐫, q퐫, q퐫, q퐫);
+Test_N(q퐬, q퐬, q퐬, q퐬, q퐬);
+Test_N(q퐭, q퐭, q퐭, q퐭, q퐭);
+Test_N(q퐮, q퐮, q퐮, q퐮, q퐮);
+Test_N(q퐯, q퐯, q퐯, q퐯, q퐯);
+Test_N(q퐰, q퐰, q퐰, q퐰, q퐰);
+Test_N(q퐱, q퐱, q퐱, q퐱, q퐱);
+Test_N(q퐲, q퐲, q퐲, q퐲, q퐲);
+Test_N(q퐳, q퐳, q퐳, q퐳, q퐳);
+Test_N(q퐴, q퐴, q퐴, q퐴, q퐴);
+Test_N(q퐵, q퐵, q퐵, q퐵, q퐵);
+Test_N(q퐶, q퐶, q퐶, q퐶, q퐶);
+Test_N(q퐷, q퐷, q퐷, q퐷, q퐷);
+Test_N(q퐸, q퐸, q퐸, q퐸, q퐸);
+Test_N(q퐹, q퐹, q퐹, q퐹, q퐹);
+Test_N(q퐺, q퐺, q퐺, q퐺, q퐺);
+Test_N(q퐻, q퐻, q퐻, q퐻, q퐻);
+Test_N(q퐼, q퐼, q퐼, q퐼, q퐼);
+Test_N(q퐽, q퐽, q퐽, q퐽, q퐽);
+Test_N(q퐾, q퐾, q퐾, q퐾, q퐾);
+Test_N(q퐿, q퐿, q퐿, q퐿, q퐿);
+Test_N(q푀, q푀, q푀, q푀, q푀);
+Test_N(q푁, q푁, q푁, q푁, q푁);
+Test_N(q푂, q푂, q푂, q푂, q푂);
+Test_N(q푃, q푃, q푃, q푃, q푃);
+Test_N(q푄, q푄, q푄, q푄, q푄);
+Test_N(q푅, q푅, q푅, q푅, q푅);
+Test_N(q푆, q푆, q푆, q푆, q푆);
+Test_N(q푇, q푇, q푇, q푇, q푇);
+Test_N(q푈, q푈, q푈, q푈, q푈);
+Test_N(q푉, q푉, q푉, q푉, q푉);
+Test_N(q푊, q푊, q푊, q푊, q푊);
+Test_N(q푋, q푋, q푋, q푋, q푋);
+Test_N(q푌, q푌, q푌, q푌, q푌);
+Test_N(q푍, q푍, q푍, q푍, q푍);
+Test_N(q푎, q푎, q푎, q푎, q푎);
+Test_N(q푏, q푏, q푏, q푏, q푏);
+Test_N(q푐, q푐, q푐, q푐, q푐);
+Test_N(q푑, q푑, q푑, q푑, q푑);
+Test_N(q푒, q푒, q푒, q푒, q푒);
+Test_N(q푓, q푓, q푓, q푓, q푓);
+Test_N(q푔, q푔, q푔, q푔, q푔);
+Test_N(q푕, q푕, q푕, q푕, q푕);
+Test_N(q푖, q푖, q푖, q푖, q푖);
+Test_N(q푗, q푗, q푗, q푗, q푗);
+Test_N(q푘, q푘, q푘, q푘, q푘);
+Test_N(q푙, q푙, q푙, q푙, q푙);
+Test_N(q푚, q푚, q푚, q푚, q푚);
+Test_N(q푛, q푛, q푛, q푛, q푛);
+Test_N(q표, q표, q표, q표, q표);
+Test_N(q푝, q푝, q푝, q푝, q푝);
+Test_N(q푞, q푞, q푞, q푞, q푞);
+Test_N(q푟, q푟, q푟, q푟, q푟);
+Test_N(q푠, q푠, q푠, q푠, q푠);
+Test_N(q푡, q푡, q푡, q푡, q푡);
+Test_N(q푢, q푢, q푢, q푢, q푢);
+Test_N(q푣, q푣, q푣, q푣, q푣);
+Test_N(q푤, q푤, q푤, q푤, q푤);
+Test_N(q푥, q푥, q푥, q푥, q푥);
+Test_N(q푦, q푦, q푦, q푦, q푦);
+Test_N(q푧, q푧, q푧, q푧, q푧);
+Test_N(q푨, q푨, q푨, q푨, q푨);
+Test_N(q푩, q푩, q푩, q푩, q푩);
+Test_N(q푪, q푪, q푪, q푪, q푪);
+Test_N(q푫, q푫, q푫, q푫, q푫);
+Test_N(q푬, q푬, q푬, q푬, q푬);
+Test_N(q푭, q푭, q푭, q푭, q푭);
+Test_N(q푮, q푮, q푮, q푮, q푮);
+Test_N(q푯, q푯, q푯, q푯, q푯);
+Test_N(q푰, q푰, q푰, q푰, q푰);
+Test_N(q푱, q푱, q푱, q푱, q푱);
+Test_N(q푲, q푲, q푲, q푲, q푲);
+Test_N(q푳, q푳, q푳, q푳, q푳);
+Test_N(q푴, q푴, q푴, q푴, q푴);
+Test_N(q푵, q푵, q푵, q푵, q푵);
+Test_N(q푶, q푶, q푶, q푶, q푶);
+Test_N(q푷, q푷, q푷, q푷, q푷);
+Test_N(q푸, q푸, q푸, q푸, q푸);
+Test_N(q푹, q푹, q푹, q푹, q푹);
+Test_N(q푺, q푺, q푺, q푺, q푺);
+Test_N(q푻, q푻, q푻, q푻, q푻);
+Test_N(q푼, q푼, q푼, q푼, q푼);
+Test_N(q푽, q푽, q푽, q푽, q푽);
+Test_N(q푾, q푾, q푾, q푾, q푾);
+Test_N(q푿, q푿, q푿, q푿, q푿);
+Test_N(q풀, q풀, q풀, q풀, q풀);
+Test_N(q풁, q풁, q풁, q풁, q풁);
+Test_N(q풂, q풂, q풂, q풂, q풂);
+Test_N(q풃, q풃, q풃, q풃, q풃);
+Test_N(q풄, q풄, q풄, q풄, q풄);
+Test_N(q풅, q풅, q풅, q풅, q풅);
+Test_N(q풆, q풆, q풆, q풆, q풆);
+Test_N(q풇, q풇, q풇, q풇, q풇);
+Test_N(q품, q품, q품, q품, q품);
+Test_N(q풉, q풉, q풉, q풉, q풉);
+Test_N(q풊, q풊, q풊, q풊, q풊);
+Test_N(q풋, q풋, q풋, q풋, q풋);
+Test_N(q풌, q풌, q풌, q풌, q풌);
+Test_N(q풍, q풍, q풍, q풍, q풍);
+Test_N(q풎, q풎, q풎, q풎, q풎);
+Test_N(q풏, q풏, q풏, q풏, q풏);
+Test_N(q풐, q풐, q풐, q풐, q풐);
+Test_N(q풑, q풑, q풑, q풑, q풑);
+Test_N(q풒, q풒, q풒, q풒, q풒);
+Test_N(q풓, q풓, q풓, q풓, q풓);
+Test_N(q풔, q풔, q풔, q풔, q풔);
+Test_N(q풕, q풕, q풕, q풕, q풕);
+Test_N(q풖, q풖, q풖, q풖, q풖);
+Test_N(q풗, q풗, q풗, q풗, q풗);
+Test_N(q풘, q풘, q풘, q풘, q풘);
+Test_N(q풙, q풙, q풙, q풙, q풙);
+Test_N(q풚, q풚, q풚, q풚, q풚);
+Test_N(q풛, q풛, q풛, q풛, q풛);
+Test_N(q풜, q풜, q풜, q풜, q풜);
+Test_N(q풝, q풝, q풝, q풝, q풝);
+Test_N(q풞, q풞, q풞, q풞, q풞);
+Test_N(q풟, q풟, q풟, q풟, q풟);
+Test_N(q풠, q풠, q풠, q풠, q풠);
+Test_N(q풡, q풡, q풡, q풡, q풡);
+Test_N(q풢, q풢, q풢, q풢, q풢);
+Test_N(q풣, q풣, q풣, q풣, q풣);
+Test_N(q풤, q풤, q풤, q풤, q풤);
+Test_N(q풥, q풥, q풥, q풥, q풥);
+Test_N(q풦, q풦, q풦, q풦, q풦);
+Test_N(q풧, q풧, q풧, q풧, q풧);
+Test_N(q풨, q풨, q풨, q풨, q풨);
+Test_N(q풩, q풩, q풩, q풩, q풩);
+Test_N(q풪, q풪, q풪, q풪, q풪);
+Test_N(q풫, q풫, q풫, q풫, q풫);
+Test_N(q풬, q풬, q풬, q풬, q풬);
+Test_N(q풭, q풭, q풭, q풭, q풭);
+Test_N(q풮, q풮, q풮, q풮, q풮);
+Test_N(q풯, q풯, q풯, q풯, q풯);
+Test_N(q풰, q풰, q풰, q풰, q풰);
+Test_N(q풱, q풱, q풱, q풱, q풱);
+Test_N(q풲, q풲, q풲, q풲, q풲);
+Test_N(q풳, q풳, q풳, q풳, q풳);
+Test_N(q풴, q풴, q풴, q풴, q풴);
+Test_N(q풵, q풵, q풵, q풵, q풵);
+Test_N(q풶, q풶, q풶, q풶, q풶);
+Test_N(q풷, q풷, q풷, q풷, q풷);
+Test_N(q풸, q풸, q풸, q풸, q풸);
+Test_N(q풹, q풹, q풹, q풹, q풹);
+Test_N(q풺, q풺, q풺, q풺, q풺);
+Test_N(q풻, q풻, q풻, q풻, q풻);
+Test_N(q풼, q풼, q풼, q풼, q풼);
+Test_N(q풽, q풽, q풽, q풽, q풽);
+Test_N(q풾, q풾, q풾, q풾, q풾);
+Test_N(q풿, q풿, q풿, q풿, q풿);
+Test_N(q퓀, q퓀, q퓀, q퓀, q퓀);
+Test_N(q퓁, q퓁, q퓁, q퓁, q퓁);
+Test_N(q퓂, q퓂, q퓂, q퓂, q퓂);
+Test_N(q퓃, q퓃, q퓃, q퓃, q퓃);
+Test_N(q퓄, q퓄, q퓄, q퓄, q퓄);
+Test_N(q퓅, q퓅, q퓅, q퓅, q퓅);
+Test_N(q퓆, q퓆, q퓆, q퓆, q퓆);
+Test_N(q퓇, q퓇, q퓇, q퓇, q퓇);
+Test_N(q퓈, q퓈, q퓈, q퓈, q퓈);
+Test_N(q퓉, q퓉, q퓉, q퓉, q퓉);
+Test_N(q퓊, q퓊, q퓊, q퓊, q퓊);
+Test_N(q퓋, q퓋, q퓋, q퓋, q퓋);
+Test_N(q퓌, q퓌, q퓌, q퓌, q퓌);
+Test_N(q퓍, q퓍, q퓍, q퓍, q퓍);
+Test_N(q퓎, q퓎, q퓎, q퓎, q퓎);
+Test_N(q퓏, q퓏, q퓏, q퓏, q퓏);
+Test_N(q퓐, q퓐, q퓐, q퓐, q퓐);
+Test_N(q퓑, q퓑, q퓑, q퓑, q퓑);
+Test_N(q퓒, q퓒, q퓒, q퓒, q퓒);
+Test_N(q퓓, q퓓, q퓓, q퓓, q퓓);
+Test_N(q퓔, q퓔, q퓔, q퓔, q퓔);
+Test_N(q퓕, q퓕, q퓕, q퓕, q퓕);
+Test_N(q퓖, q퓖, q퓖, q퓖, q퓖);
+Test_N(q퓗, q퓗, q퓗, q퓗, q퓗);
+Test_N(q퓘, q퓘, q퓘, q퓘, q퓘);
+Test_N(q퓙, q퓙, q퓙, q퓙, q퓙);
+Test_N(q퓚, q퓚, q퓚, q퓚, q퓚);
+Test_N(q퓛, q퓛, q퓛, q퓛, q퓛);
+Test_N(q퓜, q퓜, q퓜, q퓜, q퓜);
+Test_N(q퓝, q퓝, q퓝, q퓝, q퓝);
+Test_N(q퓞, q퓞, q퓞, q퓞, q퓞);
+Test_N(q퓟, q퓟, q퓟, q퓟, q퓟);
+Test_N(q퓠, q퓠, q퓠, q퓠, q퓠);
+Test_N(q퓡, q퓡, q퓡, q퓡, q퓡);
+Test_N(q퓢, q퓢, q퓢, q퓢, q퓢);
+Test_N(q퓣, q퓣, q퓣, q퓣, q퓣);
+Test_N(q퓤, q퓤, q퓤, q퓤, q퓤);
+Test_N(q퓥, q퓥, q퓥, q퓥, q퓥);
+Test_N(q퓦, q퓦, q퓦, q퓦, q퓦);
+Test_N(q퓧, q퓧, q퓧, q퓧, q퓧);
+Test_N(q퓨, q퓨, q퓨, q퓨, q퓨);
+Test_N(q퓩, q퓩, q퓩, q퓩, q퓩);
+Test_N(q퓪, q퓪, q퓪, q퓪, q퓪);
+Test_N(q퓫, q퓫, q퓫, q퓫, q퓫);
+Test_N(q퓬, q퓬, q퓬, q퓬, q퓬);
+Test_N(q퓭, q퓭, q퓭, q퓭, q퓭);
+Test_N(q퓮, q퓮, q퓮, q퓮, q퓮);
+Test_N(q퓯, q퓯, q퓯, q퓯, q퓯);
+Test_N(q퓰, q퓰, q퓰, q퓰, q퓰);
+Test_N(q퓱, q퓱, q퓱, q퓱, q퓱);
+Test_N(q퓲, q퓲, q퓲, q퓲, q퓲);
+Test_N(q퓳, q퓳, q퓳, q퓳, q퓳);
+Test_N(q퓴, q퓴, q퓴, q퓴, q퓴);
+Test_N(q퓵, q퓵, q퓵, q퓵, q퓵);
+Test_N(q퓶, q퓶, q퓶, q퓶, q퓶);
+Test_N(q퓷, q퓷, q퓷, q퓷, q퓷);
+Test_N(q퓸, q퓸, q퓸, q퓸, q퓸);
+Test_N(q퓹, q퓹, q퓹, q퓹, q퓹);
+Test_N(q퓺, q퓺, q퓺, q퓺, q퓺);
+Test_N(q퓻, q퓻, q퓻, q퓻, q퓻);
+Test_N(q퓼, q퓼, q퓼, q퓼, q퓼);
+Test_N(q퓽, q퓽, q퓽, q퓽, q퓽);
+Test_N(q퓾, q퓾, q퓾, q퓾, q퓾);
+Test_N(q퓿, q퓿, q퓿, q퓿, q퓿);
+Test_N(q픀, q픀, q픀, q픀, q픀);
+Test_N(q픁, q픁, q픁, q픁, q픁);
+Test_N(q픂, q픂, q픂, q픂, q픂);
+Test_N(q픃, q픃, q픃, q픃, q픃);
+Test_N(q프, q프, q프, q프, q프);
+Test_N(q픅, q픅, q픅, q픅, q픅);
+Test_N(q픆, q픆, q픆, q픆, q픆);
+Test_N(q픇, q픇, q픇, q픇, q픇);
+Test_N(q픈, q픈, q픈, q픈, q픈);
+Test_N(q픉, q픉, q픉, q픉, q픉);
+Test_N(q픊, q픊, q픊, q픊, q픊);
+Test_N(q픋, q픋, q픋, q픋, q픋);
+Test_N(q플, q플, q플, q플, q플);
+Test_N(q픍, q픍, q픍, q픍, q픍);
+Test_N(q픎, q픎, q픎, q픎, q픎);
+Test_N(q픏, q픏, q픏, q픏, q픏);
+Test_N(q픐, q픐, q픐, q픐, q픐);
+Test_N(q픑, q픑, q픑, q픑, q픑);
+Test_N(q픒, q픒, q픒, q픒, q픒);
+Test_N(q픓, q픓, q픓, q픓, q픓);
+Test_N(q픔, q픔, q픔, q픔, q픔);
+Test_N(q픕, q픕, q픕, q픕, q픕);
+Test_N(q픖, q픖, q픖, q픖, q픖);
+Test_N(q픗, q픗, q픗, q픗, q픗);
+Test_N(q픘, q픘, q픘, q픘, q픘);
+Test_N(q픙, q픙, q픙, q픙, q픙);
+Test_N(q픚, q픚, q픚, q픚, q픚);
+Test_N(q픛, q픛, q픛, q픛, q픛);
+Test_N(q픜, q픜, q픜, q픜, q픜);
+Test_N(q픝, q픝, q픝, q픝, q픝);
+Test_N(q픞, q픞, q픞, q픞, q픞);
+Test_N(q픟, q픟, q픟, q픟, q픟);
+Test_N(q픠, q픠, q픠, q픠, q픠);
+Test_N(q픡, q픡, q픡, q픡, q픡);
+Test_N(q픢, q픢, q픢, q픢, q픢);
+Test_N(q픣, q픣, q픣, q픣, q픣);
+Test_N(q픤, q픤, q픤, q픤, q픤);
+Test_N(q픥, q픥, q픥, q픥, q픥);
+Test_N(q픦, q픦, q픦, q픦, q픦);
+Test_N(q픧, q픧, q픧, q픧, q픧);
+Test_N(q픨, q픨, q픨, q픨, q픨);
+Test_N(q픩, q픩, q픩, q픩, q픩);
+Test_N(q픪, q픪, q픪, q픪, q픪);
+Test_N(q픫, q픫, q픫, q픫, q픫);
+Test_N(q픬, q픬, q픬, q픬, q픬);
+Test_N(q픭, q픭, q픭, q픭, q픭);
+Test_N(q픮, q픮, q픮, q픮, q픮);
+Test_N(q픯, q픯, q픯, q픯, q픯);
+Test_N(q픰, q픰, q픰, q픰, q픰);
+Test_N(q픱, q픱, q픱, q픱, q픱);
+Test_N(q픲, q픲, q픲, q픲, q픲);
+Test_N(q픳, q픳, q픳, q픳, q픳);
+Test_N(q픴, q픴, q픴, q픴, q픴);
+Test_N(q픵, q픵, q픵, q픵, q픵);
+Test_N(q픶, q픶, q픶, q픶, q픶);
+Test_N(q픷, q픷, q픷, q픷, q픷);
+Test_N(q픸, q픸, q픸, q픸, q픸);
+Test_N(q픹, q픹, q픹, q픹, q픹);
+Test_N(q픺, q픺, q픺, q픺, q픺);
+Test_N(q픻, q픻, q픻, q픻, q픻);
+Test_N(q피, q피, q피, q피, q피);
+Test_N(q픽, q픽, q픽, q픽, q픽);
+Test_N(q픾, q픾, q픾, q픾, q픾);
+Test_N(q픿, q픿, q픿, q픿, q픿);
+Test_N(q핀, q핀, q핀, q핀, q핀);
+Test_N(q핁, q핁, q핁, q핁, q핁);
+Test_N(q핂, q핂, q핂, q핂, q핂);
+Test_N(q핃, q핃, q핃, q핃, q핃);
+Test_N(q필, q필, q필, q필, q필);
+Test_N(q핅, q핅, q핅, q핅, q핅);
+Test_N(q핆, q핆, q핆, q핆, q핆);
+Test_N(q핇, q핇, q핇, q핇, q핇);
+Test_N(q핈, q핈, q핈, q핈, q핈);
+Test_N(q핉, q핉, q핉, q핉, q핉);
+Test_N(q핊, q핊, q핊, q핊, q핊);
+Test_N(q핋, q핋, q핋, q핋, q핋);
+Test_N(q핌, q핌, q핌, q핌, q핌);
+Test_N(q핍, q핍, q핍, q핍, q핍);
+Test_N(q핎, q핎, q핎, q핎, q핎);
+Test_N(q핏, q핏, q핏, q핏, q핏);
+Test_N(q핐, q핐, q핐, q핐, q핐);
+Test_N(q핑, q핑, q핑, q핑, q핑);
+Test_N(q핒, q핒, q핒, q핒, q핒);
+Test_N(q핓, q핓, q핓, q핓, q핓);
+Test_N(q핔, q핔, q핔, q핔, q핔);
+Test_N(q핕, q핕, q핕, q핕, q핕);
+Test_N(q핖, q핖, q핖, q핖, q핖);
+Test_N(q핗, q핗, q핗, q핗, q핗);
+Test_N(q하, q하, q하, q하, q하);
+Test_N(q학, q학, q학, q학, q학);
+Test_N(q핚, q핚, q핚, q핚, q핚);
+Test_N(q핛, q핛, q핛, q핛, q핛);
+Test_N(q한, q한, q한, q한, q한);
+Test_N(q핝, q핝, q핝, q핝, q핝);
+Test_N(q핞, q핞, q핞, q핞, q핞);
+Test_N(q핟, q핟, q핟, q핟, q핟);
+Test_N(q할, q할, q할, q할, q할);
+Test_N(q핡, q핡, q핡, q핡, q핡);
+Test_N(q핢, q핢, q핢, q핢, q핢);
+Test_N(q핣, q핣, q핣, q핣, q핣);
+Test_N(q핤, q핤, q핤, q핤, q핤);
+Test_N(q핥, q핥, q핥, q핥, q핥);
+Test_N(q핦, q핦, q핦, q핦, q핦);
+Test_N(q핧, q핧, q핧, q핧, q핧);
+Test_N(q함, q함, q함, q함, q함);
+Test_N(q합, q합, q합, q합, q합);
+Test_N(q핪, q핪, q핪, q핪, q핪);
+Test_N(q핫, q핫, q핫, q핫, q핫);
+Test_N(q핬, q핬, q핬, q핬, q핬);
+Test_N(q항, q항, q항, q항, q항);
+Test_N(q핮, q핮, q핮, q핮, q핮);
+Test_N(q핯, q핯, q핯, q핯, q핯);
+Test_N(q핰, q핰, q핰, q핰, q핰);
+Test_N(q핱, q핱, q핱, q핱, q핱);
+Test_N(q핲, q핲, q핲, q핲, q핲);
+Test_N(q핳, q핳, q핳, q핳, q핳);
+Test_N(q해, q해, q해, q해, q해);
+Test_N(q핵, q핵, q핵, q핵, q핵);
+Test_N(q핶, q핶, q핶, q핶, q핶);
+Test_N(q핷, q핷, q핷, q핷, q핷);
+Test_N(q핸, q핸, q핸, q핸, q핸);
+Test_N(q핹, q핹, q핹, q핹, q핹);
+Test_N(q핺, q핺, q핺, q핺, q핺);
+Test_N(q핻, q핻, q핻, q핻, q핻);
+Test_N(q핼, q핼, q핼, q핼, q핼);
+Test_N(q핽, q핽, q핽, q핽, q핽);
+Test_N(q핾, q핾, q핾, q핾, q핾);
+Test_N(q핿, q핿, q핿, q핿, q핿);
+Test_N(q햀, q햀, q햀, q햀, q햀);
+Test_N(q햁, q햁, q햁, q햁, q햁);
+Test_N(q햂, q햂, q햂, q햂, q햂);
+Test_N(q햃, q햃, q햃, q햃, q햃);
+Test_N(q햄, q햄, q햄, q햄, q햄);
+Test_N(q햅, q햅, q햅, q햅, q햅);
+Test_N(q햆, q햆, q햆, q햆, q햆);
+Test_N(q햇, q햇, q햇, q햇, q햇);
+Test_N(q했, q했, q했, q했, q했);
+Test_N(q행, q행, q행, q행, q행);
+Test_N(q햊, q햊, q햊, q햊, q햊);
+Test_N(q햋, q햋, q햋, q햋, q햋);
+Test_N(q햌, q햌, q햌, q햌, q햌);
+Test_N(q햍, q햍, q햍, q햍, q햍);
+Test_N(q햎, q햎, q햎, q햎, q햎);
+Test_N(q햏, q햏, q햏, q햏, q햏);
+Test_N(q햐, q햐, q햐, q햐, q햐);
+Test_N(q햑, q햑, q햑, q햑, q햑);
+Test_N(q햒, q햒, q햒, q햒, q햒);
+Test_N(q햓, q햓, q햓, q햓, q햓);
+Test_N(q햔, q햔, q햔, q햔, q햔);
+Test_N(q햕, q햕, q햕, q햕, q햕);
+Test_N(q햖, q햖, q햖, q햖, q햖);
+Test_N(q햗, q햗, q햗, q햗, q햗);
+Test_N(q햘, q햘, q햘, q햘, q햘);
+Test_N(q햙, q햙, q햙, q햙, q햙);
+Test_N(q햚, q햚, q햚, q햚, q햚);
+Test_N(q햛, q햛, q햛, q햛, q햛);
+Test_N(q햜, q햜, q햜, q햜, q햜);
+Test_N(q햝, q햝, q햝, q햝, q햝);
+Test_N(q햞, q햞, q햞, q햞, q햞);
+Test_N(q햟, q햟, q햟, q햟, q햟);
+Test_N(q햠, q햠, q햠, q햠, q햠);
+Test_N(q햡, q햡, q햡, q햡, q햡);
+Test_N(q햢, q햢, q햢, q햢, q햢);
+Test_N(q햣, q햣, q햣, q햣, q햣);
+Test_N(q햤, q햤, q햤, q햤, q햤);
+Test_N(q향, q향, q향, q향, q향);
+Test_N(q햦, q햦, q햦, q햦, q햦);
+Test_N(q햧, q햧, q햧, q햧, q햧);
+Test_N(q햨, q햨, q햨, q햨, q햨);
+Test_N(q햩, q햩, q햩, q햩, q햩);
+Test_N(q햪, q햪, q햪, q햪, q햪);
+Test_N(q햫, q햫, q햫, q햫, q햫);
+Test_N(q햬, q햬, q햬, q햬, q햬);
+Test_N(q햭, q햭, q햭, q햭, q햭);
+Test_N(q햮, q햮, q햮, q햮, q햮);
+Test_N(q햯, q햯, q햯, q햯, q햯);
+Test_N(q햰, q햰, q햰, q햰, q햰);
+Test_N(q햱, q햱, q햱, q햱, q햱);
+Test_N(q햲, q햲, q햲, q햲, q햲);
+Test_N(q햳, q햳, q햳, q햳, q햳);
+Test_N(q햴, q햴, q햴, q햴, q햴);
+Test_N(q햵, q햵, q햵, q햵, q햵);
+Test_N(q햶, q햶, q햶, q햶, q햶);
+Test_N(q햷, q햷, q햷, q햷, q햷);
+Test_N(q햸, q햸, q햸, q햸, q햸);
+Test_N(q햹, q햹, q햹, q햹, q햹);
+Test_N(q햺, q햺, q햺, q햺, q햺);
+Test_N(q햻, q햻, q햻, q햻, q햻);
+Test_N(q햼, q햼, q햼, q햼, q햼);
+Test_N(q햽, q햽, q햽, q햽, q햽);
+Test_N(q햾, q햾, q햾, q햾, q햾);
+Test_N(q햿, q햿, q햿, q햿, q햿);
+Test_N(q헀, q헀, q헀, q헀, q헀);
+Test_N(q헁, q헁, q헁, q헁, q헁);
+Test_N(q헂, q헂, q헂, q헂, q헂);
+Test_N(q헃, q헃, q헃, q헃, q헃);
+Test_N(q헄, q헄, q헄, q헄, q헄);
+Test_N(q헅, q헅, q헅, q헅, q헅);
+Test_N(q헆, q헆, q헆, q헆, q헆);
+Test_N(q헇, q헇, q헇, q헇, q헇);
+Test_N(q허, q허, q허, q허, q허);
+Test_N(q헉, q헉, q헉, q헉, q헉);
+Test_N(q헊, q헊, q헊, q헊, q헊);
+Test_N(q헋, q헋, q헋, q헋, q헋);
+Test_N(q헌, q헌, q헌, q헌, q헌);
+Test_N(q헍, q헍, q헍, q헍, q헍);
+Test_N(q헎, q헎, q헎, q헎, q헎);
+Test_N(q헏, q헏, q헏, q헏, q헏);
+Test_N(q헐, q헐, q헐, q헐, q헐);
+Test_N(q헑, q헑, q헑, q헑, q헑);
+Test_N(q헒, q헒, q헒, q헒, q헒);
+Test_N(q헓, q헓, q헓, q헓, q헓);
+Test_N(q헔, q헔, q헔, q헔, q헔);
+Test_N(q헕, q헕, q헕, q헕, q헕);
+Test_N(q헖, q헖, q헖, q헖, q헖);
+Test_N(q헗, q헗, q헗, q헗, q헗);
+Test_N(q험, q험, q험, q험, q험);
+Test_N(q헙, q헙, q헙, q헙, q헙);
+Test_N(q헚, q헚, q헚, q헚, q헚);
+Test_N(q헛, q헛, q헛, q헛, q헛);
+Test_N(q헜, q헜, q헜, q헜, q헜);
+Test_N(q헝, q헝, q헝, q헝, q헝);
+Test_N(q헞, q헞, q헞, q헞, q헞);
+Test_N(q헟, q헟, q헟, q헟, q헟);
+Test_N(q헠, q헠, q헠, q헠, q헠);
+Test_N(q헡, q헡, q헡, q헡, q헡);
+Test_N(q헢, q헢, q헢, q헢, q헢);
+Test_N(q헣, q헣, q헣, q헣, q헣);
+Test_N(q헤, q헤, q헤, q헤, q헤);
+Test_N(q헥, q헥, q헥, q헥, q헥);
+Test_N(q헦, q헦, q헦, q헦, q헦);
+Test_N(q헧, q헧, q헧, q헧, q헧);
+Test_N(q헨, q헨, q헨, q헨, q헨);
+Test_N(q헩, q헩, q헩, q헩, q헩);
+Test_N(q헪, q헪, q헪, q헪, q헪);
+Test_N(q헫, q헫, q헫, q헫, q헫);
+Test_N(q헬, q헬, q헬, q헬, q헬);
+Test_N(q헭, q헭, q헭, q헭, q헭);
+Test_N(q헮, q헮, q헮, q헮, q헮);
+Test_N(q헯, q헯, q헯, q헯, q헯);
+Test_N(q헰, q헰, q헰, q헰, q헰);
+Test_N(q헱, q헱, q헱, q헱, q헱);
+Test_N(q헲, q헲, q헲, q헲, q헲);
+Test_N(q헳, q헳, q헳, q헳, q헳);
+Test_N(q헴, q헴, q헴, q헴, q헴);
+Test_N(q헵, q헵, q헵, q헵, q헵);
+Test_N(q헶, q헶, q헶, q헶, q헶);
+Test_N(q헷, q헷, q헷, q헷, q헷);
+Test_N(q헸, q헸, q헸, q헸, q헸);
+Test_N(q헹, q헹, q헹, q헹, q헹);
+Test_N(q헺, q헺, q헺, q헺, q헺);
+Test_N(q헻, q헻, q헻, q헻, q헻);
+Test_N(q헼, q헼, q헼, q헼, q헼);
+Test_N(q헽, q헽, q헽, q헽, q헽);
+Test_N(q헾, q헾, q헾, q헾, q헾);
+Test_N(q헿, q헿, q헿, q헿, q헿);
+Test_N(q혀, q혀, q혀, q혀, q혀);
+Test_N(q혁, q혁, q혁, q혁, q혁);
+Test_N(q혂, q혂, q혂, q혂, q혂);
+Test_N(q혃, q혃, q혃, q혃, q혃);
+Test_N(q현, q현, q현, q현, q현);
+Test_N(q혅, q혅, q혅, q혅, q혅);
+Test_N(q혆, q혆, q혆, q혆, q혆);
+Test_N(q혇, q혇, q혇, q혇, q혇);
+Test_N(q혈, q혈, q혈, q혈, q혈);
+Test_N(q혉, q혉, q혉, q혉, q혉);
+Test_N(q혊, q혊, q혊, q혊, q혊);
+Test_N(q혋, q혋, q혋, q혋, q혋);
+Test_N(q혌, q혌, q혌, q혌, q혌);
+Test_N(q혍, q혍, q혍, q혍, q혍);
+Test_N(q혎, q혎, q혎, q혎, q혎);
+Test_N(q혏, q혏, q혏, q혏, q혏);
+Test_N(q혐, q혐, q혐, q혐, q혐);
+Test_N(q협, q협, q협, q협, q협);
+Test_N(q혒, q혒, q혒, q혒, q혒);
+Test_N(q혓, q혓, q혓, q혓, q혓);
+Test_N(q혔, q혔, q혔, q혔, q혔);
+Test_N(q형, q형, q형, q형, q형);
+Test_N(q혖, q혖, q혖, q혖, q혖);
+Test_N(q혗, q혗, q혗, q혗, q혗);
+Test_N(q혘, q혘, q혘, q혘, q혘);
+Test_N(q혙, q혙, q혙, q혙, q혙);
+Test_N(q혚, q혚, q혚, q혚, q혚);
+Test_N(q혛, q혛, q혛, q혛, q혛);
+Test_N(q혜, q혜, q혜, q혜, q혜);
+Test_N(q혝, q혝, q혝, q혝, q혝);
+Test_N(q혞, q혞, q혞, q혞, q혞);
+Test_N(q혟, q혟, q혟, q혟, q혟);
+Test_N(q혠, q혠, q혠, q혠, q혠);
+Test_N(q혡, q혡, q혡, q혡, q혡);
+Test_N(q혢, q혢, q혢, q혢, q혢);
+Test_N(q혣, q혣, q혣, q혣, q혣);
+Test_N(q혤, q혤, q혤, q혤, q혤);
+Test_N(q혥, q혥, q혥, q혥, q혥);
+Test_N(q혦, q혦, q혦, q혦, q혦);
+Test_N(q혧, q혧, q혧, q혧, q혧);
+Test_N(q혨, q혨, q혨, q혨, q혨);
+Test_N(q혩, q혩, q혩, q혩, q혩);
+Test_N(q혪, q혪, q혪, q혪, q혪);
+Test_N(q혫, q혫, q혫, q혫, q혫);
+Test_N(q혬, q혬, q혬, q혬, q혬);
+Test_N(q혭, q혭, q혭, q혭, q혭);
+Test_N(q혮, q혮, q혮, q혮, q혮);
+Test_N(q혯, q혯, q혯, q혯, q혯);
+Test_N(q혰, q혰, q혰, q혰, q혰);
+Test_N(q혱, q혱, q혱, q혱, q혱);
+Test_N(q혲, q혲, q혲, q혲, q혲);
+Test_N(q혳, q혳, q혳, q혳, q혳);
+Test_N(q혴, q혴, q혴, q혴, q혴);
+Test_N(q혵, q혵, q혵, q혵, q혵);
+Test_N(q혶, q혶, q혶, q혶, q혶);
+Test_N(q혷, q혷, q혷, q혷, q혷);
+Test_N(q호, q호, q호, q호, q호);
+Test_N(q혹, q혹, q혹, q혹, q혹);
+Test_N(q혺, q혺, q혺, q혺, q혺);
+Test_N(q혻, q혻, q혻, q혻, q혻);
+Test_N(q혼, q혼, q혼, q혼, q혼);
+Test_N(q혽, q혽, q혽, q혽, q혽);
+Test_N(q혾, q혾, q혾, q혾, q혾);
+Test_N(q혿, q혿, q혿, q혿, q혿);
+Test_N(q홀, q홀, q홀, q홀, q홀);
+Test_N(q홁, q홁, q홁, q홁, q홁);
+Test_N(q홂, q홂, q홂, q홂, q홂);
+Test_N(q홃, q홃, q홃, q홃, q홃);
+Test_N(q홄, q홄, q홄, q홄, q홄);
+Test_N(q홅, q홅, q홅, q홅, q홅);
+Test_N(q홆, q홆, q홆, q홆, q홆);
+Test_N(q홇, q홇, q홇, q홇, q홇);
+Test_N(q홈, q홈, q홈, q홈, q홈);
+Test_N(q홉, q홉, q홉, q홉, q홉);
+Test_N(q홊, q홊, q홊, q홊, q홊);
+Test_N(q홋, q홋, q홋, q홋, q홋);
+Test_N(q홌, q홌, q홌, q홌, q홌);
+Test_N(q홍, q홍, q홍, q홍, q홍);
+Test_N(q홎, q홎, q홎, q홎, q홎);
+Test_N(q홏, q홏, q홏, q홏, q홏);
+Test_N(q홐, q홐, q홐, q홐, q홐);
+Test_N(q홑, q홑, q홑, q홑, q홑);
+Test_N(q홒, q홒, q홒, q홒, q홒);
+Test_N(q홓, q홓, q홓, q홓, q홓);
+Test_N(q화, q화, q화, q화, q화);
+Test_N(q확, q확, q확, q확, q확);
+Test_N(q홖, q홖, q홖, q홖, q홖);
+Test_N(q홗, q홗, q홗, q홗, q홗);
+Test_N(q환, q환, q환, q환, q환);
+Test_N(q홙, q홙, q홙, q홙, q홙);
+Test_N(q홚, q홚, q홚, q홚, q홚);
+Test_N(q홛, q홛, q홛, q홛, q홛);
+Test_N(q활, q활, q활, q활, q활);
+Test_N(q홝, q홝, q홝, q홝, q홝);
+Test_N(q홞, q홞, q홞, q홞, q홞);
+Test_N(q홟, q홟, q홟, q홟, q홟);
+Test_N(q홠, q홠, q홠, q홠, q홠);
+Test_N(q홡, q홡, q홡, q홡, q홡);
+Test_N(q홢, q홢, q홢, q홢, q홢);
+Test_N(q홣, q홣, q홣, q홣, q홣);
+Test_N(q홤, q홤, q홤, q홤, q홤);
+Test_N(q홥, q홥, q홥, q홥, q홥);
+Test_N(q홦, q홦, q홦, q홦, q홦);
+Test_N(q홧, q홧, q홧, q홧, q홧);
+Test_N(q홨, q홨, q홨, q홨, q홨);
+Test_N(q황, q황, q황, q황, q황);
+Test_N(q홪, q홪, q홪, q홪, q홪);
+Test_N(q홫, q홫, q홫, q홫, q홫);
+Test_N(q홬, q홬, q홬, q홬, q홬);
+Test_N(q홭, q홭, q홭, q홭, q홭);
+Test_N(q홮, q홮, q홮, q홮, q홮);
+Test_N(q홯, q홯, q홯, q홯, q홯);
+Test_N(q홰, q홰, q홰, q홰, q홰);
+Test_N(q홱, q홱, q홱, q홱, q홱);
+Test_N(q홲, q홲, q홲, q홲, q홲);
+Test_N(q홳, q홳, q홳, q홳, q홳);
+Test_N(q홴, q홴, q홴, q홴, q홴);
+Test_N(q홵, q홵, q홵, q홵, q홵);
+Test_N(q홶, q홶, q홶, q홶, q홶);
+Test_N(q홷, q홷, q홷, q홷, q홷);
+Test_N(q홸, q홸, q홸, q홸, q홸);
+Test_N(q홹, q홹, q홹, q홹, q홹);
+Test_N(q홺, q홺, q홺, q홺, q홺);
+Test_N(q홻, q홻, q홻, q홻, q홻);
+Test_N(q홼, q홼, q홼, q홼, q홼);
+Test_N(q홽, q홽, q홽, q홽, q홽);
+Test_N(q홾, q홾, q홾, q홾, q홾);
+Test_N(q홿, q홿, q홿, q홿, q홿);
+Test_N(q횀, q횀, q횀, q횀, q횀);
+Test_N(q횁, q횁, q횁, q횁, q횁);
+Test_N(q횂, q횂, q횂, q횂, q횂);
+Test_N(q횃, q횃, q횃, q횃, q횃);
+Test_N(q횄, q횄, q횄, q횄, q횄);
+Test_N(q횅, q횅, q횅, q횅, q횅);
+Test_N(q횆, q횆, q횆, q횆, q횆);
+Test_N(q횇, q횇, q횇, q횇, q횇);
+Test_N(q횈, q횈, q횈, q횈, q횈);
+Test_N(q횉, q횉, q횉, q횉, q횉);
+Test_N(q횊, q횊, q횊, q횊, q횊);
+Test_N(q횋, q횋, q횋, q횋, q횋);
+Test_N(q회, q회, q회, q회, q회);
+Test_N(q획, q획, q획, q획, q획);
+Test_N(q횎, q횎, q횎, q횎, q횎);
+Test_N(q횏, q횏, q횏, q횏, q횏);
+Test_N(q횐, q횐, q횐, q횐, q횐);
+Test_N(q횑, q횑, q횑, q횑, q횑);
+Test_N(q횒, q횒, q횒, q횒, q횒);
+Test_N(q횓, q횓, q횓, q횓, q횓);
+Test_N(q횔, q횔, q횔, q횔, q횔);
+Test_N(q횕, q횕, q횕, q횕, q횕);
+Test_N(q횖, q횖, q횖, q횖, q횖);
+Test_N(q횗, q횗, q횗, q횗, q횗);
+Test_N(q횘, q횘, q횘, q횘, q횘);
+Test_N(q횙, q횙, q횙, q횙, q횙);
+Test_N(q횚, q횚, q횚, q횚, q횚);
+Test_N(q횛, q횛, q횛, q횛, q횛);
+Test_N(q횜, q횜, q횜, q횜, q횜);
+Test_N(q횝, q횝, q횝, q횝, q횝);
+Test_N(q횞, q횞, q횞, q횞, q횞);
+Test_N(q횟, q횟, q횟, q횟, q횟);
+Test_N(q횠, q횠, q횠, q횠, q횠);
+Test_N(q횡, q횡, q횡, q횡, q횡);
+Test_N(q횢, q횢, q횢, q횢, q횢);
+Test_N(q횣, q횣, q횣, q횣, q횣);
+Test_N(q횤, q횤, q횤, q횤, q횤);
+Test_N(q횥, q횥, q횥, q횥, q횥);
+Test_N(q횦, q횦, q횦, q횦, q횦);
+Test_N(q횧, q횧, q횧, q횧, q횧);
+Test_N(q효, q효, q효, q효, q효);
+Test_N(q횩, q횩, q횩, q횩, q횩);
+Test_N(q횪, q횪, q횪, q횪, q횪);
+Test_N(q횫, q횫, q횫, q횫, q횫);
+Test_N(q횬, q횬, q횬, q횬, q횬);
+Test_N(q횭, q횭, q횭, q횭, q횭);
+Test_N(q횮, q횮, q횮, q횮, q횮);
+Test_N(q횯, q횯, q횯, q횯, q횯);
+Test_N(q횰, q횰, q횰, q횰, q횰);
+Test_N(q횱, q횱, q횱, q횱, q횱);
+Test_N(q횲, q횲, q횲, q횲, q횲);
+Test_N(q횳, q횳, q횳, q횳, q횳);
+Test_N(q횴, q횴, q횴, q횴, q횴);
+Test_N(q횵, q횵, q횵, q횵, q횵);
+Test_N(q횶, q횶, q횶, q횶, q횶);
+Test_N(q횷, q횷, q횷, q횷, q횷);
+Test_N(q횸, q횸, q횸, q횸, q횸);
+Test_N(q횹, q횹, q횹, q횹, q횹);
+Test_N(q횺, q횺, q횺, q횺, q횺);
+Test_N(q횻, q횻, q횻, q횻, q횻);
+Test_N(q횼, q횼, q횼, q횼, q횼);
+Test_N(q횽, q횽, q횽, q횽, q횽);
+Test_N(q횾, q횾, q횾, q횾, q횾);
+Test_N(q횿, q횿, q횿, q횿, q횿);
+Test_N(q훀, q훀, q훀, q훀, q훀);
+Test_N(q훁, q훁, q훁, q훁, q훁);
+Test_N(q훂, q훂, q훂, q훂, q훂);
+Test_N(q훃, q훃, q훃, q훃, q훃);
+Test_N(q후, q후, q후, q후, q후);
+Test_N(q훅, q훅, q훅, q훅, q훅);
+Test_N(q훆, q훆, q훆, q훆, q훆);
+Test_N(q훇, q훇, q훇, q훇, q훇);
+Test_N(q훈, q훈, q훈, q훈, q훈);
+Test_N(q훉, q훉, q훉, q훉, q훉);
+Test_N(q훊, q훊, q훊, q훊, q훊);
+Test_N(q훋, q훋, q훋, q훋, q훋);
+Test_N(q훌, q훌, q훌, q훌, q훌);
+Test_N(q훍, q훍, q훍, q훍, q훍);
+Test_N(q훎, q훎, q훎, q훎, q훎);
+Test_N(q훏, q훏, q훏, q훏, q훏);
+Test_N(q훐, q훐, q훐, q훐, q훐);
+Test_N(q훑, q훑, q훑, q훑, q훑);
+Test_N(q훒, q훒, q훒, q훒, q훒);
+Test_N(q훓, q훓, q훓, q훓, q훓);
+Test_N(q훔, q훔, q훔, q훔, q훔);
+Test_N(q훕, q훕, q훕, q훕, q훕);
+Test_N(q훖, q훖, q훖, q훖, q훖);
+Test_N(q훗, q훗, q훗, q훗, q훗);
+Test_N(q훘, q훘, q훘, q훘, q훘);
+Test_N(q훙, q훙, q훙, q훙, q훙);
+Test_N(q훚, q훚, q훚, q훚, q훚);
+Test_N(q훛, q훛, q훛, q훛, q훛);
+Test_N(q훜, q훜, q훜, q훜, q훜);
+Test_N(q훝, q훝, q훝, q훝, q훝);
+Test_N(q훞, q훞, q훞, q훞, q훞);
+Test_N(q훟, q훟, q훟, q훟, q훟);
+Test_N(q훠, q훠, q훠, q훠, q훠);
+Test_N(q훡, q훡, q훡, q훡, q훡);
+Test_N(q훢, q훢, q훢, q훢, q훢);
+Test_N(q훣, q훣, q훣, q훣, q훣);
+Test_N(q훤, q훤, q훤, q훤, q훤);
+Test_N(q훥, q훥, q훥, q훥, q훥);
+Test_N(q훦, q훦, q훦, q훦, q훦);
+Test_N(q훧, q훧, q훧, q훧, q훧);
+Test_N(q훨, q훨, q훨, q훨, q훨);
+Test_N(q훩, q훩, q훩, q훩, q훩);
+Test_N(q훪, q훪, q훪, q훪, q훪);
+Test_N(q훫, q훫, q훫, q훫, q훫);
+Test_N(q훬, q훬, q훬, q훬, q훬);
+Test_N(q훭, q훭, q훭, q훭, q훭);
+Test_N(q훮, q훮, q훮, q훮, q훮);
+Test_N(q훯, q훯, q훯, q훯, q훯);
+Test_N(q훰, q훰, q훰, q훰, q훰);
+Test_N(q훱, q훱, q훱, q훱, q훱);
+Test_N(q훲, q훲, q훲, q훲, q훲);
+Test_N(q훳, q훳, q훳, q훳, q훳);
+Test_N(q훴, q훴, q훴, q훴, q훴);
+Test_N(q훵, q훵, q훵, q훵, q훵);
+Test_N(q훶, q훶, q훶, q훶, q훶);
+Test_N(q훷, q훷, q훷, q훷, q훷);
+Test_N(q훸, q훸, q훸, q훸, q훸);
+Test_N(q훹, q훹, q훹, q훹, q훹);
+Test_N(q훺, q훺, q훺, q훺, q훺);
+Test_N(q훻, q훻, q훻, q훻, q훻);
+Test_N(q훼, q훼, q훼, q훼, q훼);
+Test_N(q훽, q훽, q훽, q훽, q훽);
+Test_N(q훾, q훾, q훾, q훾, q훾);
+Test_N(q훿, q훿, q훿, q훿, q훿);
+Test_N(q휀, q휀, q휀, q휀, q휀);
+Test_N(q휁, q휁, q휁, q휁, q휁);
+Test_N(q휂, q휂, q휂, q휂, q휂);
+Test_N(q휃, q휃, q휃, q휃, q휃);
+Test_N(q휄, q휄, q휄, q휄, q휄);
+Test_N(q휅, q휅, q휅, q휅, q휅);
+Test_N(q휆, q휆, q휆, q휆, q휆);
+Test_N(q휇, q휇, q휇, q휇, q휇);
+Test_N(q휈, q휈, q휈, q휈, q휈);
+Test_N(q휉, q휉, q휉, q휉, q휉);
+Test_N(q휊, q휊, q휊, q휊, q휊);
+Test_N(q휋, q휋, q휋, q휋, q휋);
+Test_N(q휌, q휌, q휌, q휌, q휌);
+Test_N(q휍, q휍, q휍, q휍, q휍);
+Test_N(q휎, q휎, q휎, q휎, q휎);
+Test_N(q휏, q휏, q휏, q휏, q휏);
+Test_N(q휐, q휐, q휐, q휐, q휐);
+Test_N(q휑, q휑, q휑, q휑, q휑);
+Test_N(q휒, q휒, q휒, q휒, q휒);
+Test_N(q휓, q휓, q휓, q휓, q휓);
+Test_N(q휔, q휔, q휔, q휔, q휔);
+Test_N(q휕, q휕, q휕, q휕, q휕);
+Test_N(q휖, q휖, q휖, q휖, q휖);
+Test_N(q휗, q휗, q휗, q휗, q휗);
+Test_N(q휘, q휘, q휘, q휘, q휘);
+Test_N(q휙, q휙, q휙, q휙, q휙);
+Test_N(q휚, q휚, q휚, q휚, q휚);
+Test_N(q휛, q휛, q휛, q휛, q휛);
+Test_N(q휜, q휜, q휜, q휜, q휜);
+Test_N(q휝, q휝, q휝, q휝, q휝);
+Test_N(q휞, q휞, q휞, q휞, q휞);
+Test_N(q휟, q휟, q휟, q휟, q휟);
+Test_N(q휠, q휠, q휠, q휠, q휠);
+Test_N(q휡, q휡, q휡, q휡, q휡);
+Test_N(q휢, q휢, q휢, q휢, q휢);
+Test_N(q휣, q휣, q휣, q휣, q휣);
+Test_N(q휤, q휤, q휤, q휤, q휤);
+Test_N(q휥, q휥, q휥, q휥, q휥);
+Test_N(q휦, q휦, q휦, q휦, q휦);
+Test_N(q휧, q휧, q휧, q휧, q휧);
+Test_N(q휨, q휨, q휨, q휨, q휨);
+Test_N(q휩, q휩, q휩, q휩, q휩);
+Test_N(q휪, q휪, q휪, q휪, q휪);
+Test_N(q휫, q휫, q휫, q휫, q휫);
+Test_N(q휬, q휬, q휬, q휬, q휬);
+Test_N(q휭, q휭, q휭, q휭, q휭);
+Test_N(q휮, q휮, q휮, q휮, q휮);
+Test_N(q휯, q휯, q휯, q휯, q휯);
+Test_N(q휰, q휰, q휰, q휰, q휰);
+Test_N(q휱, q휱, q휱, q휱, q휱);
+Test_N(q휲, q휲, q휲, q휲, q휲);
+Test_N(q휳, q휳, q휳, q휳, q휳);
+Test_N(q휴, q휴, q휴, q휴, q휴);
+Test_N(q휵, q휵, q휵, q휵, q휵);
+Test_N(q휶, q휶, q휶, q휶, q휶);
+Test_N(q휷, q휷, q휷, q휷, q휷);
+Test_N(q휸, q휸, q휸, q휸, q휸);
+Test_N(q휹, q휹, q휹, q휹, q휹);
+Test_N(q휺, q휺, q휺, q휺, q휺);
+Test_N(q휻, q휻, q휻, q휻, q휻);
+Test_N(q휼, q휼, q휼, q휼, q휼);
+Test_N(q휽, q휽, q휽, q휽, q휽);
+Test_N(q휾, q휾, q휾, q휾, q휾);
+Test_N(q휿, q휿, q휿, q휿, q휿);
+Test_N(q흀, q흀, q흀, q흀, q흀);
+Test_N(q흁, q흁, q흁, q흁, q흁);
+Test_N(q흂, q흂, q흂, q흂, q흂);
+Test_N(q흃, q흃, q흃, q흃, q흃);
+Test_N(q흄, q흄, q흄, q흄, q흄);
+Test_N(q흅, q흅, q흅, q흅, q흅);
+Test_N(q흆, q흆, q흆, q흆, q흆);
+Test_N(q흇, q흇, q흇, q흇, q흇);
+Test_N(q흈, q흈, q흈, q흈, q흈);
+Test_N(q흉, q흉, q흉, q흉, q흉);
+Test_N(q흊, q흊, q흊, q흊, q흊);
+Test_N(q흋, q흋, q흋, q흋, q흋);
+Test_N(q흌, q흌, q흌, q흌, q흌);
+Test_N(q흍, q흍, q흍, q흍, q흍);
+Test_N(q흎, q흎, q흎, q흎, q흎);
+Test_N(q흏, q흏, q흏, q흏, q흏);
+Test_N(q흐, q흐, q흐, q흐, q흐);
+Test_N(q흑, q흑, q흑, q흑, q흑);
+Test_N(q흒, q흒, q흒, q흒, q흒);
+Test_N(q흓, q흓, q흓, q흓, q흓);
+Test_N(q흔, q흔, q흔, q흔, q흔);
+Test_N(q흕, q흕, q흕, q흕, q흕);
+Test_N(q흖, q흖, q흖, q흖, q흖);
+Test_N(q흗, q흗, q흗, q흗, q흗);
+Test_N(q흘, q흘, q흘, q흘, q흘);
+Test_N(q흙, q흙, q흙, q흙, q흙);
+Test_N(q흚, q흚, q흚, q흚, q흚);
+Test_N(q흛, q흛, q흛, q흛, q흛);
+Test_N(q흜, q흜, q흜, q흜, q흜);
+Test_N(q흝, q흝, q흝, q흝, q흝);
+Test_N(q흞, q흞, q흞, q흞, q흞);
+Test_N(q흟, q흟, q흟, q흟, q흟);
+Test_N(q흠, q흠, q흠, q흠, q흠);
+Test_N(q흡, q흡, q흡, q흡, q흡);
+Test_N(q흢, q흢, q흢, q흢, q흢);
+Test_N(q흣, q흣, q흣, q흣, q흣);
+Test_N(q흤, q흤, q흤, q흤, q흤);
+Test_N(q흥, q흥, q흥, q흥, q흥);
+Test_N(q흦, q흦, q흦, q흦, q흦);
+Test_N(q흧, q흧, q흧, q흧, q흧);
+Test_N(q흨, q흨, q흨, q흨, q흨);
+Test_N(q흩, q흩, q흩, q흩, q흩);
+Test_N(q흪, q흪, q흪, q흪, q흪);
+Test_N(q흫, q흫, q흫, q흫, q흫);
+Test_N(q희, q희, q희, q희, q희);
+Test_N(q흭, q흭, q흭, q흭, q흭);
+Test_N(q흮, q흮, q흮, q흮, q흮);
+Test_N(q흯, q흯, q흯, q흯, q흯);
+Test_N(q흰, q흰, q흰, q흰, q흰);
+Test_N(q흱, q흱, q흱, q흱, q흱);
+Test_N(q흲, q흲, q흲, q흲, q흲);
+Test_N(q흳, q흳, q흳, q흳, q흳);
+Test_N(q흴, q흴, q흴, q흴, q흴);
+Test_N(q흵, q흵, q흵, q흵, q흵);
+Test_N(q흶, q흶, q흶, q흶, q흶);
+Test_N(q흷, q흷, q흷, q흷, q흷);
+Test_N(q흸, q흸, q흸, q흸, q흸);
+Test_N(q흹, q흹, q흹, q흹, q흹);
+Test_N(q흺, q흺, q흺, q흺, q흺);
+Test_N(q흻, q흻, q흻, q흻, q흻);
+Test_N(q흼, q흼, q흼, q흼, q흼);
+Test_N(q흽, q흽, q흽, q흽, q흽);
+Test_N(q흾, q흾, q흾, q흾, q흾);
+Test_N(q흿, q흿, q흿, q흿, q흿);
+Test_N(q힀, q힀, q힀, q힀, q힀);
+Test_N(q힁, q힁, q힁, q힁, q힁);
+Test_N(q힂, q힂, q힂, q힂, q힂);
+Test_N(q힃, q힃, q힃, q힃, q힃);
+Test_N(q힄, q힄, q힄, q힄, q힄);
+Test_N(q힅, q힅, q힅, q힅, q힅);
+Test_N(q힆, q힆, q힆, q힆, q힆);
+Test_N(q힇, q힇, q힇, q힇, q힇);
+Test_N(q히, q히, q히, q히, q히);
+Test_N(q힉, q힉, q힉, q힉, q힉);
+Test_N(q힊, q힊, q힊, q힊, q힊);
+Test_N(q힋, q힋, q힋, q힋, q힋);
+Test_N(q힌, q힌, q힌, q힌, q힌);
+Test_N(q힍, q힍, q힍, q힍, q힍);
+Test_N(q힎, q힎, q힎, q힎, q힎);
+Test_N(q힏, q힏, q힏, q힏, q힏);
+Test_N(q힐, q힐, q힐, q힐, q힐);
+Test_N(q힑, q힑, q힑, q힑, q힑);
+Test_N(q힒, q힒, q힒, q힒, q힒);
+Test_N(q힓, q힓, q힓, q힓, q힓);
+Test_N(q힔, q힔, q힔, q힔, q힔);
+Test_N(q힕, q힕, q힕, q힕, q힕);
+Test_N(q힖, q힖, q힖, q힖, q힖);
+Test_N(q힗, q힗, q힗, q힗, q힗);
+Test_N(q힘, q힘, q힘, q힘, q힘);
+Test_N(q힙, q힙, q힙, q힙, q힙);
+Test_N(q힚, q힚, q힚, q힚, q힚);
+Test_N(q힛, q힛, q힛, q힛, q힛);
+Test_N(q힜, q힜, q힜, q힜, q힜);
+Test_N(q힝, q힝, q힝, q힝, q힝);
+Test_N(q힞, q힞, q힞, q힞, q힞);
+Test_N(q힟, q힟, q힟, q힟, q힟);
+Test_N(q힠, q힠, q힠, q힠, q힠);
+Test_N(q힡, q힡, q힡, q힡, q힡);
+Test_N(q힢, q힢, q힢, q힢, q힢);
+Test_N(q힣, q힣, q힣, q힣, q힣);
+Test_N(q豈, q豈, q豈, q豈, q豈);
+Test_N(q更, q更, q更, q更, q更);
+Test_N(q車, q車, q車, q車, q車);
+Test_N(q賈, q賈, q賈, q賈, q賈);
+Test_N(q滑, q滑, q滑, q滑, q滑);
+Test_N(q串, q串, q串, q串, q串);
+Test_N(q句, q句, q句, q句, q句);
+Test_N(q龜, q龜, q龜, q龜, q龜);
+Test_N(q龜, q龜, q龜, q龜, q龜);
+Test_N(q契, q契, q契, q契, q契);
+Test_N(q金, q金, q金, q金, q金);
+Test_N(q喇, q喇, q喇, q喇, q喇);
+Test_N(q奈, q奈, q奈, q奈, q奈);
+Test_N(q懶, q懶, q懶, q懶, q懶);
+Test_N(q癩, q癩, q癩, q癩, q癩);
+Test_N(q羅, q羅, q羅, q羅, q羅);
+Test_N(q蘿, q蘿, q蘿, q蘿, q蘿);
+Test_N(q螺, q螺, q螺, q螺, q螺);
+Test_N(q裸, q裸, q裸, q裸, q裸);
+Test_N(q邏, q邏, q邏, q邏, q邏);
+Test_N(q樂, q樂, q樂, q樂, q樂);
+Test_N(q洛, q洛, q洛, q洛, q洛);
+Test_N(q烙, q烙, q烙, q烙, q烙);
+Test_N(q珞, q珞, q珞, q珞, q珞);
+Test_N(q落, q落, q落, q落, q落);
+Test_N(q酪, q酪, q酪, q酪, q酪);
+Test_N(q駱, q駱, q駱, q駱, q駱);
+Test_N(q亂, q亂, q亂, q亂, q亂);
+Test_N(q卵, q卵, q卵, q卵, q卵);
+Test_N(q欄, q欄, q欄, q欄, q欄);
+Test_N(q爛, q爛, q爛, q爛, q爛);
+Test_N(q蘭, q蘭, q蘭, q蘭, q蘭);
+Test_N(q鸞, q鸞, q鸞, q鸞, q鸞);
+Test_N(q嵐, q嵐, q嵐, q嵐, q嵐);
+Test_N(q濫, q濫, q濫, q濫, q濫);
+Test_N(q藍, q藍, q藍, q藍, q藍);
+Test_N(q襤, q襤, q襤, q襤, q襤);
+Test_N(q拉, q拉, q拉, q拉, q拉);
+Test_N(q臘, q臘, q臘, q臘, q臘);
+Test_N(q蠟, q蠟, q蠟, q蠟, q蠟);
+Test_N(q廊, q廊, q廊, q廊, q廊);
+Test_N(q朗, q朗, q朗, q朗, q朗);
+Test_N(q浪, q浪, q浪, q浪, q浪);
+Test_N(q狼, q狼, q狼, q狼, q狼);
+Test_N(q郎, q郎, q郎, q郎, q郎);
+Test_N(q來, q來, q來, q來, q來);
+Test_N(q冷, q冷, q冷, q冷, q冷);
+Test_N(q勞, q勞, q勞, q勞, q勞);
+Test_N(q擄, q擄, q擄, q擄, q擄);
+Test_N(q櫓, q櫓, q櫓, q櫓, q櫓);
+Test_N(q爐, q爐, q爐, q爐, q爐);
+Test_N(q盧, q盧, q盧, q盧, q盧);
+Test_N(q老, q老, q老, q老, q老);
+Test_N(q蘆, q蘆, q蘆, q蘆, q蘆);
+Test_N(q虜, q虜, q虜, q虜, q虜);
+Test_N(q路, q路, q路, q路, q路);
+Test_N(q露, q露, q露, q露, q露);
+Test_N(q魯, q魯, q魯, q魯, q魯);
+Test_N(q鷺, q鷺, q鷺, q鷺, q鷺);
+Test_N(q碌, q碌, q碌, q碌, q碌);
+Test_N(q祿, q祿, q祿, q祿, q祿);
+Test_N(q綠, q綠, q綠, q綠, q綠);
+Test_N(q菉, q菉, q菉, q菉, q菉);
+Test_N(q錄, q錄, q錄, q錄, q錄);
+Test_N(q鹿, q鹿, q鹿, q鹿, q鹿);
+Test_N(q論, q論, q論, q論, q論);
+Test_N(q壟, q壟, q壟, q壟, q壟);
+Test_N(q弄, q弄, q弄, q弄, q弄);
+Test_N(q籠, q籠, q籠, q籠, q籠);
+Test_N(q聾, q聾, q聾, q聾, q聾);
+Test_N(q牢, q牢, q牢, q牢, q牢);
+Test_N(q磊, q磊, q磊, q磊, q磊);
+Test_N(q賂, q賂, q賂, q賂, q賂);
+Test_N(q雷, q雷, q雷, q雷, q雷);
+Test_N(q壘, q壘, q壘, q壘, q壘);
+Test_N(q屢, q屢, q屢, q屢, q屢);
+Test_N(q樓, q樓, q樓, q樓, q樓);
+Test_N(q淚, q淚, q淚, q淚, q淚);
+Test_N(q漏, q漏, q漏, q漏, q漏);
+Test_N(q累, q累, q累, q累, q累);
+Test_N(q縷, q縷, q縷, q縷, q縷);
+Test_N(q陋, q陋, q陋, q陋, q陋);
+Test_N(q勒, q勒, q勒, q勒, q勒);
+Test_N(q肋, q肋, q肋, q肋, q肋);
+Test_N(q凜, q凜, q凜, q凜, q凜);
+Test_N(q凌, q凌, q凌, q凌, q凌);
+Test_N(q稜, q稜, q稜, q稜, q稜);
+Test_N(q綾, q綾, q綾, q綾, q綾);
+Test_N(q菱, q菱, q菱, q菱, q菱);
+Test_N(q陵, q陵, q陵, q陵, q陵);
+Test_N(q讀, q讀, q讀, q讀, q讀);
+Test_N(q拏, q拏, q拏, q拏, q拏);
+Test_N(q樂, q樂, q樂, q樂, q樂);
+Test_N(q諾, q諾, q諾, q諾, q諾);
+Test_N(q丹, q丹, q丹, q丹, q丹);
+Test_N(q寧, q寧, q寧, q寧, q寧);
+Test_N(q怒, q怒, q怒, q怒, q怒);
+Test_N(q率, q率, q率, q率, q率);
+Test_N(q異, q異, q異, q異, q異);
+Test_N(q北, q北, q北, q北, q北);
+Test_N(q磻, q磻, q磻, q磻, q磻);
+Test_N(q便, q便, q便, q便, q便);
+Test_N(q復, q復, q復, q復, q復);
+Test_N(q不, q不, q不, q不, q不);
+Test_N(q泌, q泌, q泌, q泌, q泌);
+Test_N(q數, q數, q數, q數, q數);
+Test_N(q索, q索, q索, q索, q索);
+Test_N(q參, q參, q參, q參, q參);
+Test_N(q塞, q塞, q塞, q塞, q塞);
+Test_N(q省, q省, q省, q省, q省);
+Test_N(q葉, q葉, q葉, q葉, q葉);
+Test_N(q說, q說, q說, q說, q說);
+Test_N(q殺, q殺, q殺, q殺, q殺);
+Test_N(q辰, q辰, q辰, q辰, q辰);
+Test_N(q沈, q沈, q沈, q沈, q沈);
+Test_N(q拾, q拾, q拾, q拾, q拾);
+Test_N(q若, q若, q若, q若, q若);
+Test_N(q掠, q掠, q掠, q掠, q掠);
+Test_N(q略, q略, q略, q略, q略);
+Test_N(q亮, q亮, q亮, q亮, q亮);
+Test_N(q兩, q兩, q兩, q兩, q兩);
+Test_N(q凉, q凉, q凉, q凉, q凉);
+Test_N(q梁, q梁, q梁, q梁, q梁);
+Test_N(q糧, q糧, q糧, q糧, q糧);
+Test_N(q良, q良, q良, q良, q良);
+Test_N(q諒, q諒, q諒, q諒, q諒);
+Test_N(q量, q量, q量, q量, q量);
+Test_N(q勵, q勵, q勵, q勵, q勵);
+Test_N(q呂, q呂, q呂, q呂, q呂);
+Test_N(q女, q女, q女, q女, q女);
+Test_N(q廬, q廬, q廬, q廬, q廬);
+Test_N(q旅, q旅, q旅, q旅, q旅);
+Test_N(q濾, q濾, q濾, q濾, q濾);
+Test_N(q礪, q礪, q礪, q礪, q礪);
+Test_N(q閭, q閭, q閭, q閭, q閭);
+Test_N(q驪, q驪, q驪, q驪, q驪);
+Test_N(q麗, q麗, q麗, q麗, q麗);
+Test_N(q黎, q黎, q黎, q黎, q黎);
+Test_N(q力, q力, q力, q力, q力);
+Test_N(q曆, q曆, q曆, q曆, q曆);
+Test_N(q歷, q歷, q歷, q歷, q歷);
+Test_N(q轢, q轢, q轢, q轢, q轢);
+Test_N(q年, q年, q年, q年, q年);
+Test_N(q憐, q憐, q憐, q憐, q憐);
+Test_N(q戀, q戀, q戀, q戀, q戀);
+Test_N(q撚, q撚, q撚, q撚, q撚);
+Test_N(q漣, q漣, q漣, q漣, q漣);
+Test_N(q煉, q煉, q煉, q煉, q煉);
+Test_N(q璉, q璉, q璉, q璉, q璉);
+Test_N(q秊, q秊, q秊, q秊, q秊);
+Test_N(q練, q練, q練, q練, q練);
+Test_N(q聯, q聯, q聯, q聯, q聯);
+Test_N(q輦, q輦, q輦, q輦, q輦);
+Test_N(q蓮, q蓮, q蓮, q蓮, q蓮);
+Test_N(q連, q連, q連, q連, q連);
+Test_N(q鍊, q鍊, q鍊, q鍊, q鍊);
+Test_N(q列, q列, q列, q列, q列);
+Test_N(q劣, q劣, q劣, q劣, q劣);
+Test_N(q咽, q咽, q咽, q咽, q咽);
+Test_N(q烈, q烈, q烈, q烈, q烈);
+Test_N(q裂, q裂, q裂, q裂, q裂);
+Test_N(q說, q說, q說, q說, q說);
+Test_N(q廉, q廉, q廉, q廉, q廉);
+Test_N(q念, q念, q念, q念, q念);
+Test_N(q捻, q捻, q捻, q捻, q捻);
+Test_N(q殮, q殮, q殮, q殮, q殮);
+Test_N(q簾, q簾, q簾, q簾, q簾);
+Test_N(q獵, q獵, q獵, q獵, q獵);
+Test_N(q令, q令, q令, q令, q令);
+Test_N(q囹, q囹, q囹, q囹, q囹);
+Test_N(q寧, q寧, q寧, q寧, q寧);
+Test_N(q嶺, q嶺, q嶺, q嶺, q嶺);
+Test_N(q怜, q怜, q怜, q怜, q怜);
+Test_N(q玲, q玲, q玲, q玲, q玲);
+Test_N(q瑩, q瑩, q瑩, q瑩, q瑩);
+Test_N(q羚, q羚, q羚, q羚, q羚);
+Test_N(q聆, q聆, q聆, q聆, q聆);
+Test_N(q鈴, q鈴, q鈴, q鈴, q鈴);
+Test_N(q零, q零, q零, q零, q零);
+Test_N(q靈, q靈, q靈, q靈, q靈);
+Test_N(q領, q領, q領, q領, q領);
+Test_N(q例, q例, q例, q例, q例);
+Test_N(q禮, q禮, q禮, q禮, q禮);
+Test_N(q醴, q醴, q醴, q醴, q醴);
+Test_N(q隸, q隸, q隸, q隸, q隸);
+Test_N(q惡, q惡, q惡, q惡, q惡);
+Test_N(q了, q了, q了, q了, q了);
+Test_N(q僚, q僚, q僚, q僚, q僚);
+Test_N(q寮, q寮, q寮, q寮, q寮);
+Test_N(q尿, q尿, q尿, q尿, q尿);
+Test_N(q料, q料, q料, q料, q料);
+Test_N(q樂, q樂, q樂, q樂, q樂);
+Test_N(q燎, q燎, q燎, q燎, q燎);
+Test_N(q療, q療, q療, q療, q療);
+Test_N(q蓼, q蓼, q蓼, q蓼, q蓼);
+Test_N(q遼, q遼, q遼, q遼, q遼);
+Test_N(q龍, q龍, q龍, q龍, q龍);
+Test_N(q暈, q暈, q暈, q暈, q暈);
+Test_N(q阮, q阮, q阮, q阮, q阮);
+Test_N(q劉, q劉, q劉, q劉, q劉);
+Test_N(q杻, q杻, q杻, q杻, q杻);
+Test_N(q柳, q柳, q柳, q柳, q柳);
+Test_N(q流, q流, q流, q流, q流);
+Test_N(q溜, q溜, q溜, q溜, q溜);
+Test_N(q琉, q琉, q琉, q琉, q琉);
+Test_N(q留, q留, q留, q留, q留);
+Test_N(q硫, q硫, q硫, q硫, q硫);
+Test_N(q紐, q紐, q紐, q紐, q紐);
+Test_N(q類, q類, q類, q類, q類);
+Test_N(q六, q六, q六, q六, q六);
+Test_N(q戮, q戮, q戮, q戮, q戮);
+Test_N(q陸, q陸, q陸, q陸, q陸);
+Test_N(q倫, q倫, q倫, q倫, q倫);
+Test_N(q崙, q崙, q崙, q崙, q崙);
+Test_N(q淪, q淪, q淪, q淪, q淪);
+Test_N(q輪, q輪, q輪, q輪, q輪);
+Test_N(q律, q律, q律, q律, q律);
+Test_N(q慄, q慄, q慄, q慄, q慄);
+Test_N(q栗, q栗, q栗, q栗, q栗);
+Test_N(q率, q率, q率, q率, q率);
+Test_N(q隆, q隆, q隆, q隆, q隆);
+Test_N(q利, q利, q利, q利, q利);
+Test_N(q吏, q吏, q吏, q吏, q吏);
+Test_N(q履, q履, q履, q履, q履);
+Test_N(q易, q易, q易, q易, q易);
+Test_N(q李, q李, q李, q李, q李);
+Test_N(q梨, q梨, q梨, q梨, q梨);
+Test_N(q泥, q泥, q泥, q泥, q泥);
+Test_N(q理, q理, q理, q理, q理);
+Test_N(q痢, q痢, q痢, q痢, q痢);
+Test_N(q罹, q罹, q罹, q罹, q罹);
+Test_N(q裏, q裏, q裏, q裏, q裏);
+Test_N(q裡, q裡, q裡, q裡, q裡);
+Test_N(q里, q里, q里, q里, q里);
+Test_N(q離, q離, q離, q離, q離);
+Test_N(q匿, q匿, q匿, q匿, q匿);
+Test_N(q溺, q溺, q溺, q溺, q溺);
+Test_N(q吝, q吝, q吝, q吝, q吝);
+Test_N(q燐, q燐, q燐, q燐, q燐);
+Test_N(q璘, q璘, q璘, q璘, q璘);
+Test_N(q藺, q藺, q藺, q藺, q藺);
+Test_N(q隣, q隣, q隣, q隣, q隣);
+Test_N(q鱗, q鱗, q鱗, q鱗, q鱗);
+Test_N(q麟, q麟, q麟, q麟, q麟);
+Test_N(q林, q林, q林, q林, q林);
+Test_N(q淋, q淋, q淋, q淋, q淋);
+Test_N(q臨, q臨, q臨, q臨, q臨);
+Test_N(q立, q立, q立, q立, q立);
+Test_N(q笠, q笠, q笠, q笠, q笠);
+Test_N(q粒, q粒, q粒, q粒, q粒);
+Test_N(q狀, q狀, q狀, q狀, q狀);
+Test_N(q炙, q炙, q炙, q炙, q炙);
+Test_N(q識, q識, q識, q識, q識);
+Test_N(q什, q什, q什, q什, q什);
+Test_N(q茶, q茶, q茶, q茶, q茶);
+Test_N(q刺, q刺, q刺, q刺, q刺);
+Test_N(q切, q切, q切, q切, q切);
+Test_N(q度, q度, q度, q度, q度);
+Test_N(q拓, q拓, q拓, q拓, q拓);
+Test_N(q糖, q糖, q糖, q糖, q糖);
+Test_N(q宅, q宅, q宅, q宅, q宅);
+Test_N(q洞, q洞, q洞, q洞, q洞);
+Test_N(q暴, q暴, q暴, q暴, q暴);
+Test_N(q輻, q輻, q輻, q輻, q輻);
+Test_N(q行, q行, q行, q行, q行);
+Test_N(q降, q降, q降, q降, q降);
+Test_N(q見, q見, q見, q見, q見);
+Test_N(q廓, q廓, q廓, q廓, q廓);
+Test_N(q兀, q兀, q兀, q兀, q兀);
+Test_N(q嗀, q嗀, q嗀, q嗀, q嗀);
+Test_N(q塚, q塚, q塚, q塚, q塚);
+Test_N(q晴, q晴, q晴, q晴, q晴);
+Test_N(q凞, q凞, q凞, q凞, q凞);
+Test_N(q猪, q猪, q猪, q猪, q猪);
+Test_N(q益, q益, q益, q益, q益);
+Test_N(q礼, q礼, q礼, q礼, q礼);
+Test_N(q神, q神, q神, q神, q神);
+Test_N(q祥, q祥, q祥, q祥, q祥);
+Test_N(q福, q福, q福, q福, q福);
+Test_N(q靖, q靖, q靖, q靖, q靖);
+Test_N(q精, q精, q精, q精, q精);
+Test_N(q羽, q羽, q羽, q羽, q羽);
+Test_N(q蘒, q蘒, q蘒, q蘒, q蘒);
+Test_N(q諸, q諸, q諸, q諸, q諸);
+Test_N(q逸, q逸, q逸, q逸, q逸);
+Test_N(q都, q都, q都, q都, q都);
+Test_N(q飯, q飯, q飯, q飯, q飯);
+Test_N(q飼, q飼, q飼, q飼, q飼);
+Test_N(q館, q館, q館, q館, q館);
+Test_N(q鶴, q鶴, q鶴, q鶴, q鶴);
+Test_N(q郞, q郞, q郞, q郞, q郞);
+Test_N(q隷, q隷, q隷, q隷, q隷);
+Test_N(q侮, q侮, q侮, q侮, q侮);
+Test_N(q僧, q僧, q僧, q僧, q僧);
+Test_N(q免, q免, q免, q免, q免);
+Test_N(q勉, q勉, q勉, q勉, q勉);
+Test_N(q勤, q勤, q勤, q勤, q勤);
+Test_N(q卑, q卑, q卑, q卑, q卑);
+Test_N(q喝, q喝, q喝, q喝, q喝);
+Test_N(q嘆, q嘆, q嘆, q嘆, q嘆);
+Test_N(q器, q器, q器, q器, q器);
+Test_N(q塀, q塀, q塀, q塀, q塀);
+Test_N(q墨, q墨, q墨, q墨, q墨);
+Test_N(q層, q層, q層, q層, q層);
+Test_N(q屮, q屮, q屮, q屮, q屮);
+Test_N(q悔, q悔, q悔, q悔, q悔);
+Test_N(q慨, q慨, q慨, q慨, q慨);
+Test_N(q憎, q憎, q憎, q憎, q憎);
+Test_N(q懲, q懲, q懲, q懲, q懲);
+Test_N(q敏, q敏, q敏, q敏, q敏);
+Test_N(q既, q既, q既, q既, q既);
+Test_N(q暑, q暑, q暑, q暑, q暑);
+Test_N(q梅, q梅, q梅, q梅, q梅);
+Test_N(q海, q海, q海, q海, q海);
+Test_N(q渚, q渚, q渚, q渚, q渚);
+Test_N(q漢, q漢, q漢, q漢, q漢);
+Test_N(q煮, q煮, q煮, q煮, q煮);
+Test_N(q爫, q爫, q爫, q爫, q爫);
+Test_N(q琢, q琢, q琢, q琢, q琢);
+Test_N(q碑, q碑, q碑, q碑, q碑);
+Test_N(q社, q社, q社, q社, q社);
+Test_N(q祉, q祉, q祉, q祉, q祉);
+Test_N(q祈, q祈, q祈, q祈, q祈);
+Test_N(q祐, q祐, q祐, q祐, q祐);
+Test_N(q祖, q祖, q祖, q祖, q祖);
+Test_N(q祝, q祝, q祝, q祝, q祝);
+Test_N(q禍, q禍, q禍, q禍, q禍);
+Test_N(q禎, q禎, q禎, q禎, q禎);
+Test_N(q穀, q穀, q穀, q穀, q穀);
+Test_N(q突, q突, q突, q突, q突);
+Test_N(q節, q節, q節, q節, q節);
+Test_N(q練, q練, q練, q練, q練);
+Test_N(q縉, q縉, q縉, q縉, q縉);
+Test_N(q繁, q繁, q繁, q繁, q繁);
+Test_N(q署, q署, q署, q署, q署);
+Test_N(q者, q者, q者, q者, q者);
+Test_N(q臭, q臭, q臭, q臭, q臭);
+Test_N(q艹, q艹, q艹, q艹, q艹);
+Test_N(q艹, q艹, q艹, q艹, q艹);
+Test_N(q著, q著, q著, q著, q著);
+Test_N(q褐, q褐, q褐, q褐, q褐);
+Test_N(q視, q視, q視, q視, q視);
+Test_N(q謁, q謁, q謁, q謁, q謁);
+Test_N(q謹, q謹, q謹, q謹, q謹);
+Test_N(q賓, q賓, q賓, q賓, q賓);
+Test_N(q贈, q贈, q贈, q贈, q贈);
+Test_N(q辶, q辶, q辶, q辶, q辶);
+Test_N(q逸, q逸, q逸, q逸, q逸);
+Test_N(q難, q難, q難, q難, q難);
+Test_N(q響, q響, q響, q響, q響);
+Test_N(q頻, q頻, q頻, q頻, q頻);
+Test_N(q恵, q恵, q恵, q恵, q恵);
+Test_N(q𤋮, q𤋮, q𤋮, q𤋮, q𤋮);
+Test_N(q舘, q舘, q舘, q舘, q舘);
+Test_N(q並, q並, q並, q並, q並);
+Test_N(q况, q况, q况, q况, q况);
+Test_N(q全, q全, q全, q全, q全);
+Test_N(q侀, q侀, q侀, q侀, q侀);
+Test_N(q充, q充, q充, q充, q充);
+Test_N(q冀, q冀, q冀, q冀, q冀);
+Test_N(q勇, q勇, q勇, q勇, q勇);
+Test_N(q勺, q勺, q勺, q勺, q勺);
+Test_N(q喝, q喝, q喝, q喝, q喝);
+Test_N(q啕, q啕, q啕, q啕, q啕);
+Test_N(q喙, q喙, q喙, q喙, q喙);
+Test_N(q嗢, q嗢, q嗢, q嗢, q嗢);
+Test_N(q塚, q塚, q塚, q塚, q塚);
+Test_N(q墳, q墳, q墳, q墳, q墳);
+Test_N(q奄, q奄, q奄, q奄, q奄);
+Test_N(q奔, q奔, q奔, q奔, q奔);
+Test_N(q婢, q婢, q婢, q婢, q婢);
+Test_N(q嬨, q嬨, q嬨, q嬨, q嬨);
+Test_N(q廒, q廒, q廒, q廒, q廒);
+Test_N(q廙, q廙, q廙, q廙, q廙);
+Test_N(q彩, q彩, q彩, q彩, q彩);
+Test_N(q徭, q徭, q徭, q徭, q徭);
+Test_N(q惘, q惘, q惘, q惘, q惘);
+Test_N(q慎, q慎, q慎, q慎, q慎);
+Test_N(q愈, q愈, q愈, q愈, q愈);
+Test_N(q憎, q憎, q憎, q憎, q憎);
+Test_N(q慠, q慠, q慠, q慠, q慠);
+Test_N(q懲, q懲, q懲, q懲, q懲);
+Test_N(q戴, q戴, q戴, q戴, q戴);
+Test_N(q揄, q揄, q揄, q揄, q揄);
+Test_N(q搜, q搜, q搜, q搜, q搜);
+Test_N(q摒, q摒, q摒, q摒, q摒);
+Test_N(q敖, q敖, q敖, q敖, q敖);
+Test_N(q晴, q晴, q晴, q晴, q晴);
+Test_N(q朗, q朗, q朗, q朗, q朗);
+Test_N(q望, q望, q望, q望, q望);
+Test_N(q杖, q杖, q杖, q杖, q杖);
+Test_N(q歹, q歹, q歹, q歹, q歹);
+Test_N(q殺, q殺, q殺, q殺, q殺);
+Test_N(q流, q流, q流, q流, q流);
+Test_N(q滛, q滛, q滛, q滛, q滛);
+Test_N(q滋, q滋, q滋, q滋, q滋);
+Test_N(q漢, q漢, q漢, q漢, q漢);
+Test_N(q瀞, q瀞, q瀞, q瀞, q瀞);
+Test_N(q煮, q煮, q煮, q煮, q煮);
+Test_N(q瞧, q瞧, q瞧, q瞧, q瞧);
+Test_N(q爵, q爵, q爵, q爵, q爵);
+Test_N(q犯, q犯, q犯, q犯, q犯);
+Test_N(q猪, q猪, q猪, q猪, q猪);
+Test_N(q瑱, q瑱, q瑱, q瑱, q瑱);
+Test_N(q甆, q甆, q甆, q甆, q甆);
+Test_N(q画, q画, q画, q画, q画);
+Test_N(q瘝, q瘝, q瘝, q瘝, q瘝);
+Test_N(q瘟, q瘟, q瘟, q瘟, q瘟);
+Test_N(q益, q益, q益, q益, q益);
+Test_N(q盛, q盛, q盛, q盛, q盛);
+Test_N(q直, q直, q直, q直, q直);
+Test_N(q睊, q睊, q睊, q睊, q睊);
+Test_N(q着, q着, q着, q着, q着);
+Test_N(q磌, q磌, q磌, q磌, q磌);
+Test_N(q窱, q窱, q窱, q窱, q窱);
+Test_N(q節, q節, q節, q節, q節);
+Test_N(q类, q类, q类, q类, q类);
+Test_N(q絛, q絛, q絛, q絛, q絛);
+Test_N(q練, q練, q練, q練, q練);
+Test_N(q缾, q缾, q缾, q缾, q缾);
+Test_N(q者, q者, q者, q者, q者);
+Test_N(q荒, q荒, q荒, q荒, q荒);
+Test_N(q華, q華, q華, q華, q華);
+Test_N(q蝹, q蝹, q蝹, q蝹, q蝹);
+Test_N(q襁, q襁, q襁, q襁, q襁);
+Test_N(q覆, q覆, q覆, q覆, q覆);
+Test_N(q視, q視, q視, q視, q視);
+Test_N(q調, q調, q調, q調, q調);
+Test_N(q諸, q諸, q諸, q諸, q諸);
+Test_N(q請, q請, q請, q請, q請);
+Test_N(q謁, q謁, q謁, q謁, q謁);
+Test_N(q諾, q諾, q諾, q諾, q諾);
+Test_N(q諭, q諭, q諭, q諭, q諭);
+Test_N(q謹, q謹, q謹, q謹, q謹);
+Test_N(q變, q變, q變, q變, q變);
+Test_N(q贈, q贈, q贈, q贈, q贈);
+Test_N(q輸, q輸, q輸, q輸, q輸);
+Test_N(q遲, q遲, q遲, q遲, q遲);
+Test_N(q醙, q醙, q醙, q醙, q醙);
+Test_N(q鉶, q鉶, q鉶, q鉶, q鉶);
+Test_N(q陼, q陼, q陼, q陼, q陼);
+Test_N(q難, q難, q難, q難, q難);
+Test_N(q靖, q靖, q靖, q靖, q靖);
+Test_N(q韛, q韛, q韛, q韛, q韛);
+Test_N(q響, q響, q響, q響, q響);
+Test_N(q頋, q頋, q頋, q頋, q頋);
+Test_N(q頻, q頻, q頻, q頻, q頻);
+Test_N(q鬒, q鬒, q鬒, q鬒, q鬒);
+Test_N(q龜, q龜, q龜, q龜, q龜);
+Test_N(q𢡊, q𢡊, q𢡊, q𢡊, q𢡊);
+Test_N(q𢡄, q𢡄, q𢡄, q𢡄, q𢡄);
+Test_N(q𣏕, q𣏕, q𣏕, q𣏕, q𣏕);
+Test_N(q㮝, q㮝, q㮝, q㮝, q㮝);
+Test_N(q䀘, q䀘, q䀘, q䀘, q䀘);
+Test_N(q䀹, q䀹, q䀹, q䀹, q䀹);
+Test_N(q𥉉, q𥉉, q𥉉, q𥉉, q𥉉);
+Test_N(q𥳐, q𥳐, q𥳐, q𥳐, q𥳐);
+Test_N(q𧻓, q𧻓, q𧻓, q𧻓, q𧻓);
+Test_N(q齃, q齃, q齃, q齃, q齃);
+Test_N(q龎, q龎, q龎, q龎, q龎);
+Test_N(qff, qff, qff, qff, qff);
+Test_N(qfi, qfi, qfi, qfi, qfi);
+Test_N(qfl, qfl, qfl, qfl, qfl);
+Test_N(qffi, qffi, qffi, qffi, qffi);
+Test_N(qffl, qffl, qffl, qffl, qffl);
+Test_N(qſt, qſt, qſt, qst, qst);
+Test_N(qst, qst, qst, qst, qst);
+Test_N(qﬓ, qﬓ, qﬓ, qմն, qմն);
+Test_N(qﬔ, qﬔ, qﬔ, qմե, qմե);
+Test_N(qﬕ, qﬕ, qﬕ, qմի, qմի);
+Test_N(qﬖ, qﬖ, qﬖ, qվն, qվն);
+Test_N(qﬗ, qﬗ, qﬗ, qմխ, qմխ);
+Test_N(qיִ, qיִ, qיִ, qיִ, qיִ);
+Test_N(qײַ, qײַ, qײַ, qײַ, qײַ);
+Test_N(qﬠ, qﬠ, qﬠ, qע, qע);
+Test_N(qﬡ, qﬡ, qﬡ, qא, qא);
+Test_N(qﬢ, qﬢ, qﬢ, qד, qד);
+Test_N(qﬣ, qﬣ, qﬣ, qה, qה);
+Test_N(qﬤ, qﬤ, qﬤ, qכ, qכ);
+Test_N(qﬥ, qﬥ, qﬥ, qל, qל);
+Test_N(qﬦ, qﬦ, qﬦ, qם, qם);
+Test_N(qﬧ, qﬧ, qﬧ, qר, qר);
+Test_N(qﬨ, qﬨ, qﬨ, qת, qת);
+Test_N(q﬩, q﬩, q﬩, q+, q+);
+Test_N(qשׁ, qשׁ, qשׁ, qשׁ, qשׁ);
+Test_N(qשׂ, qשׂ, qשׂ, qשׂ, qשׂ);
+Test_N(qשּׁ, qשּׁ, qשּׁ, qשּׁ, qשּׁ);
+Test_N(qשּׂ, qשּׂ, qשּׂ, qשּׂ, qשּׂ);
+Test_N(qאַ, qאַ, qאַ, qאַ, qאַ);
+Test_N(qאָ, qאָ, qאָ, qאָ, qאָ);
+Test_N(qאּ, qאּ, qאּ, qאּ, qאּ);
+Test_N(qבּ, qבּ, qבּ, qבּ, qבּ);
+Test_N(qגּ, qגּ, qגּ, qגּ, qגּ);
+Test_N(qדּ, qדּ, qדּ, qדּ, qדּ);
+Test_N(qהּ, qהּ, qהּ, qהּ, qהּ);
+Test_N(qוּ, qוּ, qוּ, qוּ, qוּ);
+Test_N(qזּ, qזּ, qזּ, qזּ, qזּ);
+Test_N(qטּ, qטּ, qטּ, qטּ, qטּ);
+Test_N(qיּ, qיּ, qיּ, qיּ, qיּ);
+Test_N(qךּ, qךּ, qךּ, qךּ, qךּ);
+Test_N(qכּ, qכּ, qכּ, qכּ, qכּ);
+Test_N(qלּ, qלּ, qלּ, qלּ, qלּ);
+Test_N(qמּ, qמּ, qמּ, qמּ, qמּ);
+Test_N(qנּ, qנּ, qנּ, qנּ, qנּ);
+Test_N(qסּ, qסּ, qסּ, qסּ, qסּ);
+Test_N(qףּ, qףּ, qףּ, qףּ, qףּ);
+Test_N(qפּ, qפּ, qפּ, qפּ, qפּ);
+Test_N(qצּ, qצּ, qצּ, qצּ, qצּ);
+Test_N(qקּ, qקּ, qקּ, qקּ, qקּ);
+Test_N(qרּ, qרּ, qרּ, qרּ, qרּ);
+Test_N(qשּ, qשּ, qשּ, qשּ, qשּ);
+Test_N(qתּ, qתּ, qתּ, qתּ, qתּ);
+Test_N(qוֹ, qוֹ, qוֹ, qוֹ, qוֹ);
+Test_N(qבֿ, qבֿ, qבֿ, qבֿ, qבֿ);
+Test_N(qכֿ, qכֿ, qכֿ, qכֿ, qכֿ);
+Test_N(qפֿ, qפֿ, qפֿ, qפֿ, qפֿ);
+Test_N(qﭏ, qﭏ, qﭏ, qאל, qאל);
+Test_N(qﭐ, qﭐ, qﭐ, qٱ, qٱ);
+Test_N(qﭑ, qﭑ, qﭑ, qٱ, qٱ);
+Test_N(qﭒ, qﭒ, qﭒ, qٻ, qٻ);
+Test_N(qﭓ, qﭓ, qﭓ, qٻ, qٻ);
+Test_N(qﭔ, qﭔ, qﭔ, qٻ, qٻ);
+Test_N(qﭕ, qﭕ, qﭕ, qٻ, qٻ);
+Test_N(qﭖ, qﭖ, qﭖ, qپ, qپ);
+Test_N(qﭗ, qﭗ, qﭗ, qپ, qپ);
+Test_N(qﭘ, qﭘ, qﭘ, qپ, qپ);
+Test_N(qﭙ, qﭙ, qﭙ, qپ, qپ);
+Test_N(qﭚ, qﭚ, qﭚ, qڀ, qڀ);
+Test_N(qﭛ, qﭛ, qﭛ, qڀ, qڀ);
+Test_N(qﭜ, qﭜ, qﭜ, qڀ, qڀ);
+Test_N(qﭝ, qﭝ, qﭝ, qڀ, qڀ);
+Test_N(qﭞ, qﭞ, qﭞ, qٺ, qٺ);
+Test_N(qﭟ, qﭟ, qﭟ, qٺ, qٺ);
+Test_N(qﭠ, qﭠ, qﭠ, qٺ, qٺ);
+Test_N(qﭡ, qﭡ, qﭡ, qٺ, qٺ);
+Test_N(qﭢ, qﭢ, qﭢ, qٿ, qٿ);
+Test_N(qﭣ, qﭣ, qﭣ, qٿ, qٿ);
+Test_N(qﭤ, qﭤ, qﭤ, qٿ, qٿ);
+Test_N(qﭥ, qﭥ, qﭥ, qٿ, qٿ);
+Test_N(qﭦ, qﭦ, qﭦ, qٹ, qٹ);
+Test_N(qﭧ, qﭧ, qﭧ, qٹ, qٹ);
+Test_N(qﭨ, qﭨ, qﭨ, qٹ, qٹ);
+Test_N(qﭩ, qﭩ, qﭩ, qٹ, qٹ);
+Test_N(qﭪ, qﭪ, qﭪ, qڤ, qڤ);
+Test_N(qﭫ, qﭫ, qﭫ, qڤ, qڤ);
+Test_N(qﭬ, qﭬ, qﭬ, qڤ, qڤ);
+Test_N(qﭭ, qﭭ, qﭭ, qڤ, qڤ);
+Test_N(qﭮ, qﭮ, qﭮ, qڦ, qڦ);
+Test_N(qﭯ, qﭯ, qﭯ, qڦ, qڦ);
+Test_N(qﭰ, qﭰ, qﭰ, qڦ, qڦ);
+Test_N(qﭱ, qﭱ, qﭱ, qڦ, qڦ);
+Test_N(qﭲ, qﭲ, qﭲ, qڄ, qڄ);
+Test_N(qﭳ, qﭳ, qﭳ, qڄ, qڄ);
+Test_N(qﭴ, qﭴ, qﭴ, qڄ, qڄ);
+Test_N(qﭵ, qﭵ, qﭵ, qڄ, qڄ);
+Test_N(qﭶ, qﭶ, qﭶ, qڃ, qڃ);
+Test_N(qﭷ, qﭷ, qﭷ, qڃ, qڃ);
+Test_N(qﭸ, qﭸ, qﭸ, qڃ, qڃ);
+Test_N(qﭹ, qﭹ, qﭹ, qڃ, qڃ);
+Test_N(qﭺ, qﭺ, qﭺ, qچ, qچ);
+Test_N(qﭻ, qﭻ, qﭻ, qچ, qچ);
+Test_N(qﭼ, qﭼ, qﭼ, qچ, qچ);
+Test_N(qﭽ, qﭽ, qﭽ, qچ, qچ);
+Test_N(qﭾ, qﭾ, qﭾ, qڇ, qڇ);
+Test_N(qﭿ, qﭿ, qﭿ, qڇ, qڇ);
+Test_N(qﮀ, qﮀ, qﮀ, qڇ, qڇ);
+Test_N(qﮁ, qﮁ, qﮁ, qڇ, qڇ);
+Test_N(qﮂ, qﮂ, qﮂ, qڍ, qڍ);
+Test_N(qﮃ, qﮃ, qﮃ, qڍ, qڍ);
+Test_N(qﮄ, qﮄ, qﮄ, qڌ, qڌ);
+Test_N(qﮅ, qﮅ, qﮅ, qڌ, qڌ);
+Test_N(qﮆ, qﮆ, qﮆ, qڎ, qڎ);
+Test_N(qﮇ, qﮇ, qﮇ, qڎ, qڎ);
+Test_N(qﮈ, qﮈ, qﮈ, qڈ, qڈ);
+Test_N(qﮉ, qﮉ, qﮉ, qڈ, qڈ);
+Test_N(qﮊ, qﮊ, qﮊ, qژ, qژ);
+Test_N(qﮋ, qﮋ, qﮋ, qژ, qژ);
+Test_N(qﮌ, qﮌ, qﮌ, qڑ, qڑ);
+Test_N(qﮍ, qﮍ, qﮍ, qڑ, qڑ);
+Test_N(qﮎ, qﮎ, qﮎ, qک, qک);
+Test_N(qﮏ, qﮏ, qﮏ, qک, qک);
+Test_N(qﮐ, qﮐ, qﮐ, qک, qک);
+Test_N(qﮑ, qﮑ, qﮑ, qک, qک);
+Test_N(qﮒ, qﮒ, qﮒ, qگ, qگ);
+Test_N(qﮓ, qﮓ, qﮓ, qگ, qگ);
+Test_N(qﮔ, qﮔ, qﮔ, qگ, qگ);
+Test_N(qﮕ, qﮕ, qﮕ, qگ, qگ);
+Test_N(qﮖ, qﮖ, qﮖ, qڳ, qڳ);
+Test_N(qﮗ, qﮗ, qﮗ, qڳ, qڳ);
+Test_N(qﮘ, qﮘ, qﮘ, qڳ, qڳ);
+Test_N(qﮙ, qﮙ, qﮙ, qڳ, qڳ);
+Test_N(qﮚ, qﮚ, qﮚ, qڱ, qڱ);
+Test_N(qﮛ, qﮛ, qﮛ, qڱ, qڱ);
+Test_N(qﮜ, qﮜ, qﮜ, qڱ, qڱ);
+Test_N(qﮝ, qﮝ, qﮝ, qڱ, qڱ);
+Test_N(qﮞ, qﮞ, qﮞ, qں, qں);
+Test_N(qﮟ, qﮟ, qﮟ, qں, qں);
+Test_N(qﮠ, qﮠ, qﮠ, qڻ, qڻ);
+Test_N(qﮡ, qﮡ, qﮡ, qڻ, qڻ);
+Test_N(qﮢ, qﮢ, qﮢ, qڻ, qڻ);
+Test_N(qﮣ, qﮣ, qﮣ, qڻ, qڻ);
+Test_N(qﮤ, qﮤ, qﮤ, qۀ, qۀ);
+Test_N(qﮥ, qﮥ, qﮥ, qۀ, qۀ);
+Test_N(qﮦ, qﮦ, qﮦ, qہ, qہ);
+Test_N(qﮧ, qﮧ, qﮧ, qہ, qہ);
+Test_N(qﮨ, qﮨ, qﮨ, qہ, qہ);
+Test_N(qﮩ, qﮩ, qﮩ, qہ, qہ);
+Test_N(qﮪ, qﮪ, qﮪ, qھ, qھ);
+Test_N(qﮫ, qﮫ, qﮫ, qھ, qھ);
+Test_N(qﮬ, qﮬ, qﮬ, qھ, qھ);
+Test_N(qﮭ, qﮭ, qﮭ, qھ, qھ);
+Test_N(qﮮ, qﮮ, qﮮ, qے, qے);
+Test_N(qﮯ, qﮯ, qﮯ, qے, qے);
+Test_N(qﮰ, qﮰ, qﮰ, qۓ, qۓ);
+Test_N(qﮱ, qﮱ, qﮱ, qۓ, qۓ);
+Test_N(qﯓ, qﯓ, qﯓ, qڭ, qڭ);
+Test_N(qﯔ, qﯔ, qﯔ, qڭ, qڭ);
+Test_N(qﯕ, qﯕ, qﯕ, qڭ, qڭ);
+Test_N(qﯖ, qﯖ, qﯖ, qڭ, qڭ);
+Test_N(qﯗ, qﯗ, qﯗ, qۇ, qۇ);
+Test_N(qﯘ, qﯘ, qﯘ, qۇ, qۇ);
+Test_N(qﯙ, qﯙ, qﯙ, qۆ, qۆ);
+Test_N(qﯚ, qﯚ, qﯚ, qۆ, qۆ);
+Test_N(qﯛ, qﯛ, qﯛ, qۈ, qۈ);
+Test_N(qﯜ, qﯜ, qﯜ, qۈ, qۈ);
+Test_N(qﯝ, qﯝ, qﯝ, qۇٴ, qۇٴ);
+Test_N(qﯞ, qﯞ, qﯞ, qۋ, qۋ);
+Test_N(qﯟ, qﯟ, qﯟ, qۋ, qۋ);
+Test_N(qﯠ, qﯠ, qﯠ, qۅ, qۅ);
+Test_N(qﯡ, qﯡ, qﯡ, qۅ, qۅ);
+Test_N(qﯢ, qﯢ, qﯢ, qۉ, qۉ);
+Test_N(qﯣ, qﯣ, qﯣ, qۉ, qۉ);
+Test_N(qﯤ, qﯤ, qﯤ, qې, qې);
+Test_N(qﯥ, qﯥ, qﯥ, qې, qې);
+Test_N(qﯦ, qﯦ, qﯦ, qې, qې);
+Test_N(qﯧ, qﯧ, qﯧ, qې, qې);
+Test_N(qﯨ, qﯨ, qﯨ, qى, qى);
+Test_N(qﯩ, qﯩ, qﯩ, qى, qى);
+Test_N(qﯪ, qﯪ, qﯪ, qئا, qئا);
+Test_N(qﯫ, qﯫ, qﯫ, qئا, qئا);
+Test_N(qﯬ, qﯬ, qﯬ, qئە, qئە);
+Test_N(qﯭ, qﯭ, qﯭ, qئە, qئە);
+Test_N(qﯮ, qﯮ, qﯮ, qئو, qئو);
+Test_N(qﯯ, qﯯ, qﯯ, qئو, qئو);
+Test_N(qﯰ, qﯰ, qﯰ, qئۇ, qئۇ);
+Test_N(qﯱ, qﯱ, qﯱ, qئۇ, qئۇ);
+Test_N(qﯲ, qﯲ, qﯲ, qئۆ, qئۆ);
+Test_N(qﯳ, qﯳ, qﯳ, qئۆ, qئۆ);
+Test_N(qﯴ, qﯴ, qﯴ, qئۈ, qئۈ);
+Test_N(qﯵ, qﯵ, qﯵ, qئۈ, qئۈ);
+Test_N(qﯶ, qﯶ, qﯶ, qئې, qئې);
+Test_N(qﯷ, qﯷ, qﯷ, qئې, qئې);
+Test_N(qﯸ, qﯸ, qﯸ, qئې, qئې);
+Test_N(qﯹ, qﯹ, qﯹ, qئى, qئى);
+Test_N(qﯺ, qﯺ, qﯺ, qئى, qئى);
+Test_N(qﯻ, qﯻ, qﯻ, qئى, qئى);
+Test_N(qﯼ, qﯼ, qﯼ, qی, qی);
+Test_N(qﯽ, qﯽ, qﯽ, qی, qی);
+Test_N(qﯾ, qﯾ, qﯾ, qی, qی);
+Test_N(qﯿ, qﯿ, qﯿ, qی, qی);
+Test_N(qﰀ, qﰀ, qﰀ, qئج, qئج);
+Test_N(qﰁ, qﰁ, qﰁ, qئح, qئح);
+Test_N(qﰂ, qﰂ, qﰂ, qئم, qئم);
+Test_N(qﰃ, qﰃ, qﰃ, qئى, qئى);
+Test_N(qﰄ, qﰄ, qﰄ, qئي, qئي);
+Test_N(qﰅ, qﰅ, qﰅ, qبج, qبج);
+Test_N(qﰆ, qﰆ, qﰆ, qبح, qبح);
+Test_N(qﰇ, qﰇ, qﰇ, qبخ, qبخ);
+Test_N(qﰈ, qﰈ, qﰈ, qبم, qبم);
+Test_N(qﰉ, qﰉ, qﰉ, qبى, qبى);
+Test_N(qﰊ, qﰊ, qﰊ, qبي, qبي);
+Test_N(qﰋ, qﰋ, qﰋ, qتج, qتج);
+Test_N(qﰌ, qﰌ, qﰌ, qتح, qتح);
+Test_N(qﰍ, qﰍ, qﰍ, qتخ, qتخ);
+Test_N(qﰎ, qﰎ, qﰎ, qتم, qتم);
+Test_N(qﰏ, qﰏ, qﰏ, qتى, qتى);
+Test_N(qﰐ, qﰐ, qﰐ, qتي, qتي);
+Test_N(qﰑ, qﰑ, qﰑ, qثج, qثج);
+Test_N(qﰒ, qﰒ, qﰒ, qثم, qثم);
+Test_N(qﰓ, qﰓ, qﰓ, qثى, qثى);
+Test_N(qﰔ, qﰔ, qﰔ, qثي, qثي);
+Test_N(qﰕ, qﰕ, qﰕ, qجح, qجح);
+Test_N(qﰖ, qﰖ, qﰖ, qجم, qجم);
+Test_N(qﰗ, qﰗ, qﰗ, qحج, qحج);
+Test_N(qﰘ, qﰘ, qﰘ, qحم, qحم);
+Test_N(qﰙ, qﰙ, qﰙ, qخج, qخج);
+Test_N(qﰚ, qﰚ, qﰚ, qخح, qخح);
+Test_N(qﰛ, qﰛ, qﰛ, qخم, qخم);
+Test_N(qﰜ, qﰜ, qﰜ, qسج, qسج);
+Test_N(qﰝ, qﰝ, qﰝ, qسح, qسح);
+Test_N(qﰞ, qﰞ, qﰞ, qسخ, qسخ);
+Test_N(qﰟ, qﰟ, qﰟ, qسم, qسم);
+Test_N(qﰠ, qﰠ, qﰠ, qصح, qصح);
+Test_N(qﰡ, qﰡ, qﰡ, qصم, qصم);
+Test_N(qﰢ, qﰢ, qﰢ, qضج, qضج);
+Test_N(qﰣ, qﰣ, qﰣ, qضح, qضح);
+Test_N(qﰤ, qﰤ, qﰤ, qضخ, qضخ);
+Test_N(qﰥ, qﰥ, qﰥ, qضم, qضم);
+Test_N(qﰦ, qﰦ, qﰦ, qطح, qطح);
+Test_N(qﰧ, qﰧ, qﰧ, qطم, qطم);
+Test_N(qﰨ, qﰨ, qﰨ, qظم, qظم);
+Test_N(qﰩ, qﰩ, qﰩ, qعج, qعج);
+Test_N(qﰪ, qﰪ, qﰪ, qعم, qعم);
+Test_N(qﰫ, qﰫ, qﰫ, qغج, qغج);
+Test_N(qﰬ, qﰬ, qﰬ, qغم, qغم);
+Test_N(qﰭ, qﰭ, qﰭ, qفج, qفج);
+Test_N(qﰮ, qﰮ, qﰮ, qفح, qفح);
+Test_N(qﰯ, qﰯ, qﰯ, qفخ, qفخ);
+Test_N(qﰰ, qﰰ, qﰰ, qفم, qفم);
+Test_N(qﰱ, qﰱ, qﰱ, qفى, qفى);
+Test_N(qﰲ, qﰲ, qﰲ, qفي, qفي);
+Test_N(qﰳ, qﰳ, qﰳ, qقح, qقح);
+Test_N(qﰴ, qﰴ, qﰴ, qقم, qقم);
+Test_N(qﰵ, qﰵ, qﰵ, qقى, qقى);
+Test_N(qﰶ, qﰶ, qﰶ, qقي, qقي);
+Test_N(qﰷ, qﰷ, qﰷ, qكا, qكا);
+Test_N(qﰸ, qﰸ, qﰸ, qكج, qكج);
+Test_N(qﰹ, qﰹ, qﰹ, qكح, qكح);
+Test_N(qﰺ, qﰺ, qﰺ, qكخ, qكخ);
+Test_N(qﰻ, qﰻ, qﰻ, qكل, qكل);
+Test_N(qﰼ, qﰼ, qﰼ, qكم, qكم);
+Test_N(qﰽ, qﰽ, qﰽ, qكى, qكى);
+Test_N(qﰾ, qﰾ, qﰾ, qكي, qكي);
+Test_N(qﰿ, qﰿ, qﰿ, qلج, qلج);
+Test_N(qﱀ, qﱀ, qﱀ, qلح, qلح);
+Test_N(qﱁ, qﱁ, qﱁ, qلخ, qلخ);
+Test_N(qﱂ, qﱂ, qﱂ, qلم, qلم);
+Test_N(qﱃ, qﱃ, qﱃ, qلى, qلى);
+Test_N(qﱄ, qﱄ, qﱄ, qلي, qلي);
+Test_N(qﱅ, qﱅ, qﱅ, qمج, qمج);
+Test_N(qﱆ, qﱆ, qﱆ, qمح, qمح);
+Test_N(qﱇ, qﱇ, qﱇ, qمخ, qمخ);
+Test_N(qﱈ, qﱈ, qﱈ, qمم, qمم);
+Test_N(qﱉ, qﱉ, qﱉ, qمى, qمى);
+Test_N(qﱊ, qﱊ, qﱊ, qمي, qمي);
+Test_N(qﱋ, qﱋ, qﱋ, qنج, qنج);
+Test_N(qﱌ, qﱌ, qﱌ, qنح, qنح);
+Test_N(qﱍ, qﱍ, qﱍ, qنخ, qنخ);
+Test_N(qﱎ, qﱎ, qﱎ, qنم, qنم);
+Test_N(qﱏ, qﱏ, qﱏ, qنى, qنى);
+Test_N(qﱐ, qﱐ, qﱐ, qني, qني);
+Test_N(qﱑ, qﱑ, qﱑ, qهج, qهج);
+Test_N(qﱒ, qﱒ, qﱒ, qهم, qهم);
+Test_N(qﱓ, qﱓ, qﱓ, qهى, qهى);
+Test_N(qﱔ, qﱔ, qﱔ, qهي, qهي);
+Test_N(qﱕ, qﱕ, qﱕ, qيج, qيج);
+Test_N(qﱖ, qﱖ, qﱖ, qيح, qيح);
+Test_N(qﱗ, qﱗ, qﱗ, qيخ, qيخ);
+Test_N(qﱘ, qﱘ, qﱘ, qيم, qيم);
+Test_N(qﱙ, qﱙ, qﱙ, qيى, qيى);
+Test_N(qﱚ, qﱚ, qﱚ, qيي, qيي);
+Test_N(qﱛ, qﱛ, qﱛ, qذٰ, qذٰ);
+Test_N(qﱜ, qﱜ, qﱜ, qرٰ, qرٰ);
+Test_N(qﱝ, qﱝ, qﱝ, qىٰ, qىٰ);
+Test_N(qﱞ, qﱞ, qﱞ, q ٌّ, q ٌّ);
+Test_N(qﱟ, qﱟ, qﱟ, q ٍّ, q ٍّ);
+Test_N(qﱠ, qﱠ, qﱠ, q َّ, q َّ);
+Test_N(qﱡ, qﱡ, qﱡ, q ُّ, q ُّ);
+Test_N(qﱢ, qﱢ, qﱢ, q ِّ, q ِّ);
+Test_N(qﱣ, qﱣ, qﱣ, q ّٰ, q ّٰ);
+Test_N(qﱤ, qﱤ, qﱤ, qئر, qئر);
+Test_N(qﱥ, qﱥ, qﱥ, qئز, qئز);
+Test_N(qﱦ, qﱦ, qﱦ, qئم, qئم);
+Test_N(qﱧ, qﱧ, qﱧ, qئن, qئن);
+Test_N(qﱨ, qﱨ, qﱨ, qئى, qئى);
+Test_N(qﱩ, qﱩ, qﱩ, qئي, qئي);
+Test_N(qﱪ, qﱪ, qﱪ, qبر, qبر);
+Test_N(qﱫ, qﱫ, qﱫ, qبز, qبز);
+Test_N(qﱬ, qﱬ, qﱬ, qبم, qبم);
+Test_N(qﱭ, qﱭ, qﱭ, qبن, qبن);
+Test_N(qﱮ, qﱮ, qﱮ, qبى, qبى);
+Test_N(qﱯ, qﱯ, qﱯ, qبي, qبي);
+Test_N(qﱰ, qﱰ, qﱰ, qتر, qتر);
+Test_N(qﱱ, qﱱ, qﱱ, qتز, qتز);
+Test_N(qﱲ, qﱲ, qﱲ, qتم, qتم);
+Test_N(qﱳ, qﱳ, qﱳ, qتن, qتن);
+Test_N(qﱴ, qﱴ, qﱴ, qتى, qتى);
+Test_N(qﱵ, qﱵ, qﱵ, qتي, qتي);
+Test_N(qﱶ, qﱶ, qﱶ, qثر, qثر);
+Test_N(qﱷ, qﱷ, qﱷ, qثز, qثز);
+Test_N(qﱸ, qﱸ, qﱸ, qثم, qثم);
+Test_N(qﱹ, qﱹ, qﱹ, qثن, qثن);
+Test_N(qﱺ, qﱺ, qﱺ, qثى, qثى);
+Test_N(qﱻ, qﱻ, qﱻ, qثي, qثي);
+Test_N(qﱼ, qﱼ, qﱼ, qفى, qفى);
+Test_N(qﱽ, qﱽ, qﱽ, qفي, qفي);
+Test_N(qﱾ, qﱾ, qﱾ, qقى, qقى);
+Test_N(qﱿ, qﱿ, qﱿ, qقي, qقي);
+Test_N(qﲀ, qﲀ, qﲀ, qكا, qكا);
+Test_N(qﲁ, qﲁ, qﲁ, qكل, qكل);
+Test_N(qﲂ, qﲂ, qﲂ, qكم, qكم);
+Test_N(qﲃ, qﲃ, qﲃ, qكى, qكى);
+Test_N(qﲄ, qﲄ, qﲄ, qكي, qكي);
+Test_N(qﲅ, qﲅ, qﲅ, qلم, qلم);
+Test_N(qﲆ, qﲆ, qﲆ, qلى, qلى);
+Test_N(qﲇ, qﲇ, qﲇ, qلي, qلي);
+Test_N(qﲈ, qﲈ, qﲈ, qما, qما);
+Test_N(qﲉ, qﲉ, qﲉ, qمم, qمم);
+Test_N(qﲊ, qﲊ, qﲊ, qنر, qنر);
+Test_N(qﲋ, qﲋ, qﲋ, qنز, qنز);
+Test_N(qﲌ, qﲌ, qﲌ, qنم, qنم);
+Test_N(qﲍ, qﲍ, qﲍ, qنن, qنن);
+Test_N(qﲎ, qﲎ, qﲎ, qنى, qنى);
+Test_N(qﲏ, qﲏ, qﲏ, qني, qني);
+Test_N(qﲐ, qﲐ, qﲐ, qىٰ, qىٰ);
+Test_N(qﲑ, qﲑ, qﲑ, qير, qير);
+Test_N(qﲒ, qﲒ, qﲒ, qيز, qيز);
+Test_N(qﲓ, qﲓ, qﲓ, qيم, qيم);
+Test_N(qﲔ, qﲔ, qﲔ, qين, qين);
+Test_N(qﲕ, qﲕ, qﲕ, qيى, qيى);
+Test_N(qﲖ, qﲖ, qﲖ, qيي, qيي);
+Test_N(qﲗ, qﲗ, qﲗ, qئج, qئج);
+Test_N(qﲘ, qﲘ, qﲘ, qئح, qئح);
+Test_N(qﲙ, qﲙ, qﲙ, qئخ, qئخ);
+Test_N(qﲚ, qﲚ, qﲚ, qئم, qئم);
+Test_N(qﲛ, qﲛ, qﲛ, qئه, qئه);
+Test_N(qﲜ, qﲜ, qﲜ, qبج, qبج);
+Test_N(qﲝ, qﲝ, qﲝ, qبح, qبح);
+Test_N(qﲞ, qﲞ, qﲞ, qبخ, qبخ);
+Test_N(qﲟ, qﲟ, qﲟ, qبم, qبم);
+Test_N(qﲠ, qﲠ, qﲠ, qبه, qبه);
+Test_N(qﲡ, qﲡ, qﲡ, qتج, qتج);
+Test_N(qﲢ, qﲢ, qﲢ, qتح, qتح);
+Test_N(qﲣ, qﲣ, qﲣ, qتخ, qتخ);
+Test_N(qﲤ, qﲤ, qﲤ, qتم, qتم);
+Test_N(qﲥ, qﲥ, qﲥ, qته, qته);
+Test_N(qﲦ, qﲦ, qﲦ, qثم, qثم);
+Test_N(qﲧ, qﲧ, qﲧ, qجح, qجح);
+Test_N(qﲨ, qﲨ, qﲨ, qجم, qجم);
+Test_N(qﲩ, qﲩ, qﲩ, qحج, qحج);
+Test_N(qﲪ, qﲪ, qﲪ, qحم, qحم);
+Test_N(qﲫ, qﲫ, qﲫ, qخج, qخج);
+Test_N(qﲬ, qﲬ, qﲬ, qخم, qخم);
+Test_N(qﲭ, qﲭ, qﲭ, qسج, qسج);
+Test_N(qﲮ, qﲮ, qﲮ, qسح, qسح);
+Test_N(qﲯ, qﲯ, qﲯ, qسخ, qسخ);
+Test_N(qﲰ, qﲰ, qﲰ, qسم, qسم);
+Test_N(qﲱ, qﲱ, qﲱ, qصح, qصح);
+Test_N(qﲲ, qﲲ, qﲲ, qصخ, qصخ);
+Test_N(qﲳ, qﲳ, qﲳ, qصم, qصم);
+Test_N(qﲴ, qﲴ, qﲴ, qضج, qضج);
+Test_N(qﲵ, qﲵ, qﲵ, qضح, qضح);
+Test_N(qﲶ, qﲶ, qﲶ, qضخ, qضخ);
+Test_N(qﲷ, qﲷ, qﲷ, qضم, qضم);
+Test_N(qﲸ, qﲸ, qﲸ, qطح, qطح);
+Test_N(qﲹ, qﲹ, qﲹ, qظم, qظم);
+Test_N(qﲺ, qﲺ, qﲺ, qعج, qعج);
+Test_N(qﲻ, qﲻ, qﲻ, qعم, qعم);
+Test_N(qﲼ, qﲼ, qﲼ, qغج, qغج);
+Test_N(qﲽ, qﲽ, qﲽ, qغم, qغم);
+Test_N(qﲾ, qﲾ, qﲾ, qفج, qفج);
+Test_N(qﲿ, qﲿ, qﲿ, qفح, qفح);
+Test_N(qﳀ, qﳀ, qﳀ, qفخ, qفخ);
+Test_N(qﳁ, qﳁ, qﳁ, qفم, qفم);
+Test_N(qﳂ, qﳂ, qﳂ, qقح, qقح);
+Test_N(qﳃ, qﳃ, qﳃ, qقم, qقم);
+Test_N(qﳄ, qﳄ, qﳄ, qكج, qكج);
+Test_N(qﳅ, qﳅ, qﳅ, qكح, qكح);
+Test_N(qﳆ, qﳆ, qﳆ, qكخ, qكخ);
+Test_N(qﳇ, qﳇ, qﳇ, qكل, qكل);
+Test_N(qﳈ, qﳈ, qﳈ, qكم, qكم);
+Test_N(qﳉ, qﳉ, qﳉ, qلج, qلج);
+Test_N(qﳊ, qﳊ, qﳊ, qلح, qلح);
+Test_N(qﳋ, qﳋ, qﳋ, qلخ, qلخ);
+Test_N(qﳌ, qﳌ, qﳌ, qلم, qلم);
+Test_N(qﳍ, qﳍ, qﳍ, qله, qله);
+Test_N(qﳎ, qﳎ, qﳎ, qمج, qمج);
+Test_N(qﳏ, qﳏ, qﳏ, qمح, qمح);
+Test_N(qﳐ, qﳐ, qﳐ, qمخ, qمخ);
+Test_N(qﳑ, qﳑ, qﳑ, qمم, qمم);
+Test_N(qﳒ, qﳒ, qﳒ, qنج, qنج);
+Test_N(qﳓ, qﳓ, qﳓ, qنح, qنح);
+Test_N(qﳔ, qﳔ, qﳔ, qنخ, qنخ);
+Test_N(qﳕ, qﳕ, qﳕ, qنم, qنم);
+Test_N(qﳖ, qﳖ, qﳖ, qنه, qنه);
+Test_N(qﳗ, qﳗ, qﳗ, qهج, qهج);
+Test_N(qﳘ, qﳘ, qﳘ, qهم, qهم);
+Test_N(qﳙ, qﳙ, qﳙ, qهٰ, qهٰ);
+Test_N(qﳚ, qﳚ, qﳚ, qيج, qيج);
+Test_N(qﳛ, qﳛ, qﳛ, qيح, qيح);
+Test_N(qﳜ, qﳜ, qﳜ, qيخ, qيخ);
+Test_N(qﳝ, qﳝ, qﳝ, qيم, qيم);
+Test_N(qﳞ, qﳞ, qﳞ, qيه, qيه);
+Test_N(qﳟ, qﳟ, qﳟ, qئم, qئم);
+Test_N(qﳠ, qﳠ, qﳠ, qئه, qئه);
+Test_N(qﳡ, qﳡ, qﳡ, qبم, qبم);
+Test_N(qﳢ, qﳢ, qﳢ, qبه, qبه);
+Test_N(qﳣ, qﳣ, qﳣ, qتم, qتم);
+Test_N(qﳤ, qﳤ, qﳤ, qته, qته);
+Test_N(qﳥ, qﳥ, qﳥ, qثم, qثم);
+Test_N(qﳦ, qﳦ, qﳦ, qثه, qثه);
+Test_N(qﳧ, qﳧ, qﳧ, qسم, qسم);
+Test_N(qﳨ, qﳨ, qﳨ, qسه, qسه);
+Test_N(qﳩ, qﳩ, qﳩ, qشم, qشم);
+Test_N(qﳪ, qﳪ, qﳪ, qشه, qشه);
+Test_N(qﳫ, qﳫ, qﳫ, qكل, qكل);
+Test_N(qﳬ, qﳬ, qﳬ, qكم, qكم);
+Test_N(qﳭ, qﳭ, qﳭ, qلم, qلم);
+Test_N(qﳮ, qﳮ, qﳮ, qنم, qنم);
+Test_N(qﳯ, qﳯ, qﳯ, qنه, qنه);
+Test_N(qﳰ, qﳰ, qﳰ, qيم, qيم);
+Test_N(qﳱ, qﳱ, qﳱ, qيه, qيه);
+Test_N(qﳲ, qﳲ, qﳲ, qـَّ, qـَّ);
+Test_N(qﳳ, qﳳ, qﳳ, qـُّ, qـُّ);
+Test_N(qﳴ, qﳴ, qﳴ, qـِّ, qـِّ);
+Test_N(qﳵ, qﳵ, qﳵ, qطى, qطى);
+Test_N(qﳶ, qﳶ, qﳶ, qطي, qطي);
+Test_N(qﳷ, qﳷ, qﳷ, qعى, qعى);
+Test_N(qﳸ, qﳸ, qﳸ, qعي, qعي);
+Test_N(qﳹ, qﳹ, qﳹ, qغى, qغى);
+Test_N(qﳺ, qﳺ, qﳺ, qغي, qغي);
+Test_N(qﳻ, qﳻ, qﳻ, qسى, qسى);
+Test_N(qﳼ, qﳼ, qﳼ, qسي, qسي);
+Test_N(qﳽ, qﳽ, qﳽ, qشى, qشى);
+Test_N(qﳾ, qﳾ, qﳾ, qشي, qشي);
+Test_N(qﳿ, qﳿ, qﳿ, qحى, qحى);
+Test_N(qﴀ, qﴀ, qﴀ, qحي, qحي);
+Test_N(qﴁ, qﴁ, qﴁ, qجى, qجى);
+Test_N(qﴂ, qﴂ, qﴂ, qجي, qجي);
+Test_N(qﴃ, qﴃ, qﴃ, qخى, qخى);
+Test_N(qﴄ, qﴄ, qﴄ, qخي, qخي);
+Test_N(qﴅ, qﴅ, qﴅ, qصى, qصى);
+Test_N(qﴆ, qﴆ, qﴆ, qصي, qصي);
+Test_N(qﴇ, qﴇ, qﴇ, qضى, qضى);
+Test_N(qﴈ, qﴈ, qﴈ, qضي, qضي);
+Test_N(qﴉ, qﴉ, qﴉ, qشج, qشج);
+Test_N(qﴊ, qﴊ, qﴊ, qشح, qشح);
+Test_N(qﴋ, qﴋ, qﴋ, qشخ, qشخ);
+Test_N(qﴌ, qﴌ, qﴌ, qشم, qشم);
+Test_N(qﴍ, qﴍ, qﴍ, qشر, qشر);
+Test_N(qﴎ, qﴎ, qﴎ, qسر, qسر);
+Test_N(qﴏ, qﴏ, qﴏ, qصر, qصر);
+Test_N(qﴐ, qﴐ, qﴐ, qضر, qضر);
+Test_N(qﴑ, qﴑ, qﴑ, qطى, qطى);
+Test_N(qﴒ, qﴒ, qﴒ, qطي, qطي);
+Test_N(qﴓ, qﴓ, qﴓ, qعى, qعى);
+Test_N(qﴔ, qﴔ, qﴔ, qعي, qعي);
+Test_N(qﴕ, qﴕ, qﴕ, qغى, qغى);
+Test_N(qﴖ, qﴖ, qﴖ, qغي, qغي);
+Test_N(qﴗ, qﴗ, qﴗ, qسى, qسى);
+Test_N(qﴘ, qﴘ, qﴘ, qسي, qسي);
+Test_N(qﴙ, qﴙ, qﴙ, qشى, qشى);
+Test_N(qﴚ, qﴚ, qﴚ, qشي, qشي);
+Test_N(qﴛ, qﴛ, qﴛ, qحى, qحى);
+Test_N(qﴜ, qﴜ, qﴜ, qحي, qحي);
+Test_N(qﴝ, qﴝ, qﴝ, qجى, qجى);
+Test_N(qﴞ, qﴞ, qﴞ, qجي, qجي);
+Test_N(qﴟ, qﴟ, qﴟ, qخى, qخى);
+Test_N(qﴠ, qﴠ, qﴠ, qخي, qخي);
+Test_N(qﴡ, qﴡ, qﴡ, qصى, qصى);
+Test_N(qﴢ, qﴢ, qﴢ, qصي, qصي);
+Test_N(qﴣ, qﴣ, qﴣ, qضى, qضى);
+Test_N(qﴤ, qﴤ, qﴤ, qضي, qضي);
+Test_N(qﴥ, qﴥ, qﴥ, qشج, qشج);
+Test_N(qﴦ, qﴦ, qﴦ, qشح, qشح);
+Test_N(qﴧ, qﴧ, qﴧ, qشخ, qشخ);
+Test_N(qﴨ, qﴨ, qﴨ, qشم, qشم);
+Test_N(qﴩ, qﴩ, qﴩ, qشر, qشر);
+Test_N(qﴪ, qﴪ, qﴪ, qسر, qسر);
+Test_N(qﴫ, qﴫ, qﴫ, qصر, qصر);
+Test_N(qﴬ, qﴬ, qﴬ, qضر, qضر);
+Test_N(qﴭ, qﴭ, qﴭ, qشج, qشج);
+Test_N(qﴮ, qﴮ, qﴮ, qشح, qشح);
+Test_N(qﴯ, qﴯ, qﴯ, qشخ, qشخ);
+Test_N(qﴰ, qﴰ, qﴰ, qشم, qشم);
+Test_N(qﴱ, qﴱ, qﴱ, qسه, qسه);
+Test_N(qﴲ, qﴲ, qﴲ, qشه, qشه);
+Test_N(qﴳ, qﴳ, qﴳ, qطم, qطم);
+Test_N(qﴴ, qﴴ, qﴴ, qسج, qسج);
+Test_N(qﴵ, qﴵ, qﴵ, qسح, qسح);
+Test_N(qﴶ, qﴶ, qﴶ, qسخ, qسخ);
+Test_N(qﴷ, qﴷ, qﴷ, qشج, qشج);
+Test_N(qﴸ, qﴸ, qﴸ, qشح, qشح);
+Test_N(qﴹ, qﴹ, qﴹ, qشخ, qشخ);
+Test_N(qﴺ, qﴺ, qﴺ, qطم, qطم);
+Test_N(qﴻ, qﴻ, qﴻ, qظم, qظم);
+Test_N(qﴼ, qﴼ, qﴼ, qاً, qاً);
+Test_N(qﴽ, qﴽ, qﴽ, qاً, qاً);
+Test_N(qﵐ, qﵐ, qﵐ, qتجم, qتجم);
+Test_N(qﵑ, qﵑ, qﵑ, qتحج, qتحج);
+Test_N(qﵒ, qﵒ, qﵒ, qتحج, qتحج);
+Test_N(qﵓ, qﵓ, qﵓ, qتحم, qتحم);
+Test_N(qﵔ, qﵔ, qﵔ, qتخم, qتخم);
+Test_N(qﵕ, qﵕ, qﵕ, qتمج, qتمج);
+Test_N(qﵖ, qﵖ, qﵖ, qتمح, qتمح);
+Test_N(qﵗ, qﵗ, qﵗ, qتمخ, qتمخ);
+Test_N(qﵘ, qﵘ, qﵘ, qجمح, qجمح);
+Test_N(qﵙ, qﵙ, qﵙ, qجمح, qجمح);
+Test_N(qﵚ, qﵚ, qﵚ, qحمي, qحمي);
+Test_N(qﵛ, qﵛ, qﵛ, qحمى, qحمى);
+Test_N(qﵜ, qﵜ, qﵜ, qسحج, qسحج);
+Test_N(qﵝ, qﵝ, qﵝ, qسجح, qسجح);
+Test_N(qﵞ, qﵞ, qﵞ, qسجى, qسجى);
+Test_N(qﵟ, qﵟ, qﵟ, qسمح, qسمح);
+Test_N(qﵠ, qﵠ, qﵠ, qسمح, qسمح);
+Test_N(qﵡ, qﵡ, qﵡ, qسمج, qسمج);
+Test_N(qﵢ, qﵢ, qﵢ, qسمم, qسمم);
+Test_N(qﵣ, qﵣ, qﵣ, qسمم, qسمم);
+Test_N(qﵤ, qﵤ, qﵤ, qصحح, qصحح);
+Test_N(qﵥ, qﵥ, qﵥ, qصحح, qصحح);
+Test_N(qﵦ, qﵦ, qﵦ, qصمم, qصمم);
+Test_N(qﵧ, qﵧ, qﵧ, qشحم, qشحم);
+Test_N(qﵨ, qﵨ, qﵨ, qشحم, qشحم);
+Test_N(qﵩ, qﵩ, qﵩ, qشجي, qشجي);
+Test_N(qﵪ, qﵪ, qﵪ, qشمخ, qشمخ);
+Test_N(qﵫ, qﵫ, qﵫ, qشمخ, qشمخ);
+Test_N(qﵬ, qﵬ, qﵬ, qشمم, qشمم);
+Test_N(qﵭ, qﵭ, qﵭ, qشمم, qشمم);
+Test_N(qﵮ, qﵮ, qﵮ, qضحى, qضحى);
+Test_N(qﵯ, qﵯ, qﵯ, qضخم, qضخم);
+Test_N(qﵰ, qﵰ, qﵰ, qضخم, qضخم);
+Test_N(qﵱ, qﵱ, qﵱ, qطمح, qطمح);
+Test_N(qﵲ, qﵲ, qﵲ, qطمح, qطمح);
+Test_N(qﵳ, qﵳ, qﵳ, qطمم, qطمم);
+Test_N(qﵴ, qﵴ, qﵴ, qطمي, qطمي);
+Test_N(qﵵ, qﵵ, qﵵ, qعجم, qعجم);
+Test_N(qﵶ, qﵶ, qﵶ, qعمم, qعمم);
+Test_N(qﵷ, qﵷ, qﵷ, qعمم, qعمم);
+Test_N(qﵸ, qﵸ, qﵸ, qعمى, qعمى);
+Test_N(qﵹ, qﵹ, qﵹ, qغمم, qغمم);
+Test_N(qﵺ, qﵺ, qﵺ, qغمي, qغمي);
+Test_N(qﵻ, qﵻ, qﵻ, qغمى, qغمى);
+Test_N(qﵼ, qﵼ, qﵼ, qفخم, qفخم);
+Test_N(qﵽ, qﵽ, qﵽ, qفخم, qفخم);
+Test_N(qﵾ, qﵾ, qﵾ, qقمح, qقمح);
+Test_N(qﵿ, qﵿ, qﵿ, qقمم, qقمم);
+Test_N(qﶀ, qﶀ, qﶀ, qلحم, qلحم);
+Test_N(qﶁ, qﶁ, qﶁ, qلحي, qلحي);
+Test_N(qﶂ, qﶂ, qﶂ, qلحى, qلحى);
+Test_N(qﶃ, qﶃ, qﶃ, qلجج, qلجج);
+Test_N(qﶄ, qﶄ, qﶄ, qلجج, qلجج);
+Test_N(qﶅ, qﶅ, qﶅ, qلخم, qلخم);
+Test_N(qﶆ, qﶆ, qﶆ, qلخم, qلخم);
+Test_N(qﶇ, qﶇ, qﶇ, qلمح, qلمح);
+Test_N(qﶈ, qﶈ, qﶈ, qلمح, qلمح);
+Test_N(qﶉ, qﶉ, qﶉ, qمحج, qمحج);
+Test_N(qﶊ, qﶊ, qﶊ, qمحم, qمحم);
+Test_N(qﶋ, qﶋ, qﶋ, qمحي, qمحي);
+Test_N(qﶌ, qﶌ, qﶌ, qمجح, qمجح);
+Test_N(qﶍ, qﶍ, qﶍ, qمجم, qمجم);
+Test_N(qﶎ, qﶎ, qﶎ, qمخج, qمخج);
+Test_N(qﶏ, qﶏ, qﶏ, qمخم, qمخم);
+Test_N(qﶒ, qﶒ, qﶒ, qمجخ, qمجخ);
+Test_N(qﶓ, qﶓ, qﶓ, qهمج, qهمج);
+Test_N(qﶔ, qﶔ, qﶔ, qهمم, qهمم);
+Test_N(qﶕ, qﶕ, qﶕ, qنحم, qنحم);
+Test_N(qﶖ, qﶖ, qﶖ, qنحى, qنحى);
+Test_N(qﶗ, qﶗ, qﶗ, qنجم, qنجم);
+Test_N(qﶘ, qﶘ, qﶘ, qنجم, qنجم);
+Test_N(qﶙ, qﶙ, qﶙ, qنجى, qنجى);
+Test_N(qﶚ, qﶚ, qﶚ, qنمي, qنمي);
+Test_N(qﶛ, qﶛ, qﶛ, qنمى, qنمى);
+Test_N(qﶜ, qﶜ, qﶜ, qيمم, qيمم);
+Test_N(qﶝ, qﶝ, qﶝ, qيمم, qيمم);
+Test_N(qﶞ, qﶞ, qﶞ, qبخي, qبخي);
+Test_N(qﶟ, qﶟ, qﶟ, qتجي, qتجي);
+Test_N(qﶠ, qﶠ, qﶠ, qتجى, qتجى);
+Test_N(qﶡ, qﶡ, qﶡ, qتخي, qتخي);
+Test_N(qﶢ, qﶢ, qﶢ, qتخى, qتخى);
+Test_N(qﶣ, qﶣ, qﶣ, qتمي, qتمي);
+Test_N(qﶤ, qﶤ, qﶤ, qتمى, qتمى);
+Test_N(qﶥ, qﶥ, qﶥ, qجمي, qجمي);
+Test_N(qﶦ, qﶦ, qﶦ, qجحى, qجحى);
+Test_N(qﶧ, qﶧ, qﶧ, qجمى, qجمى);
+Test_N(qﶨ, qﶨ, qﶨ, qسخى, qسخى);
+Test_N(qﶩ, qﶩ, qﶩ, qصحي, qصحي);
+Test_N(qﶪ, qﶪ, qﶪ, qشحي, qشحي);
+Test_N(qﶫ, qﶫ, qﶫ, qضحي, qضحي);
+Test_N(qﶬ, qﶬ, qﶬ, qلجي, qلجي);
+Test_N(qﶭ, qﶭ, qﶭ, qلمي, qلمي);
+Test_N(qﶮ, qﶮ, qﶮ, qيحي, qيحي);
+Test_N(qﶯ, qﶯ, qﶯ, qيجي, qيجي);
+Test_N(qﶰ, qﶰ, qﶰ, qيمي, qيمي);
+Test_N(qﶱ, qﶱ, qﶱ, qممي, qممي);
+Test_N(qﶲ, qﶲ, qﶲ, qقمي, qقمي);
+Test_N(qﶳ, qﶳ, qﶳ, qنحي, qنحي);
+Test_N(qﶴ, qﶴ, qﶴ, qقمح, qقمح);
+Test_N(qﶵ, qﶵ, qﶵ, qلحم, qلحم);
+Test_N(qﶶ, qﶶ, qﶶ, qعمي, qعمي);
+Test_N(qﶷ, qﶷ, qﶷ, qكمي, qكمي);
+Test_N(qﶸ, qﶸ, qﶸ, qنجح, qنجح);
+Test_N(qﶹ, qﶹ, qﶹ, qمخي, qمخي);
+Test_N(qﶺ, qﶺ, qﶺ, qلجم, qلجم);
+Test_N(qﶻ, qﶻ, qﶻ, qكمم, qكمم);
+Test_N(qﶼ, qﶼ, qﶼ, qلجم, qلجم);
+Test_N(qﶽ, qﶽ, qﶽ, qنجح, qنجح);
+Test_N(qﶾ, qﶾ, qﶾ, qجحي, qجحي);
+Test_N(qﶿ, qﶿ, qﶿ, qحجي, qحجي);
+Test_N(qﷀ, qﷀ, qﷀ, qمجي, qمجي);
+Test_N(qﷁ, qﷁ, qﷁ, qفمي, qفمي);
+Test_N(qﷂ, qﷂ, qﷂ, qبحي, qبحي);
+Test_N(qﷃ, qﷃ, qﷃ, qكمم, qكمم);
+Test_N(qﷄ, qﷄ, qﷄ, qعجم, qعجم);
+Test_N(qﷅ, qﷅ, qﷅ, qصمم, qصمم);
+Test_N(qﷆ, qﷆ, qﷆ, qسخي, qسخي);
+Test_N(qﷇ, qﷇ, qﷇ, qنجي, qنجي);
+Test_N(qﷰ, qﷰ, qﷰ, qصلے, qصلے);
+Test_N(qﷱ, qﷱ, qﷱ, qقلے, qقلے);
+Test_N(qﷲ, qﷲ, qﷲ, qالله, qالله);
+Test_N(qﷳ, qﷳ, qﷳ, qاكبر, qاكبر);
+Test_N(qﷴ, qﷴ, qﷴ, qمحمد, qمحمد);
+Test_N(qﷵ, qﷵ, qﷵ, qصلعم, qصلعم);
+Test_N(qﷶ, qﷶ, qﷶ, qرسول, qرسول);
+Test_N(qﷷ, qﷷ, qﷷ, qعليه, qعليه);
+Test_N(qﷸ, qﷸ, qﷸ, qوسلم, qوسلم);
+Test_N(qﷹ, qﷹ, qﷹ, qصلى, qصلى);
+Test_N(qﷺ, qﷺ, qﷺ, qصلى الله عليه وسلم, qصلى الله عليه وسلم);
+Test_N(qﷻ, qﷻ, qﷻ, qجل جلاله, qجل جلاله);
+Test_N(q﷼, q﷼, q﷼, qریال, qریال);
+Test_N(q︐, q︐, q︐, q,, q,);
+Test_N(q︑, q︑, q︑, q、, q、);
+Test_N(q︒, q︒, q︒, q。, q。);
+Test_N(q︓, q︓, q︓, q:, q:);
+Test_N(q︔, q︔, q︔, q;, q;);
+Test_N(q︕, q︕, q︕, q!, q!);
+Test_N(q︖, q︖, q︖, q?, q?);
+Test_N(q︗, q︗, q︗, q〖, q〖);
+Test_N(q︘, q︘, q︘, q〗, q〗);
+Test_N(q︙, q︙, q︙, q..., q...);
+Test_N(q︰, q︰, q︰, q.., q..);
+Test_N(q︱, q︱, q︱, q—, q—);
+Test_N(q︲, q︲, q︲, q–, q–);
+Test_N(q︳, q︳, q︳, q_, q_);
+Test_N(q︴, q︴, q︴, q_, q_);
+Test_N(q︵, q︵, q︵, q(, q();
+Test_N(q︶, q︶, q︶, q), q));
+Test_N(q︷, q︷, q︷, q{, q{);
+Test_N(q︸, q︸, q︸, q}, q});
+Test_N(q︹, q︹, q︹, q〔, q〔);
+Test_N(q︺, q︺, q︺, q〕, q〕);
+Test_N(q︻, q︻, q︻, q【, q【);
+Test_N(q︼, q︼, q︼, q】, q】);
+Test_N(q︽, q︽, q︽, q《, q《);
+Test_N(q︾, q︾, q︾, q》, q》);
+Test_N(q︿, q︿, q︿, q〈, q〈);
+Test_N(q﹀, q﹀, q﹀, q〉, q〉);
+Test_N(q﹁, q﹁, q﹁, q「, q「);
+Test_N(q﹂, q﹂, q﹂, q」, q」);
+Test_N(q﹃, q﹃, q﹃, q『, q『);
+Test_N(q﹄, q﹄, q﹄, q』, q』);
+Test_N(q﹇, q﹇, q﹇, q[, q[);
+Test_N(q﹈, q﹈, q﹈, q], q]);
+Test_N(q﹉, q﹉, q﹉, q ̅, q ̅);
+Test_N(q﹊, q﹊, q﹊, q ̅, q ̅);
+Test_N(q﹋, q﹋, q﹋, q ̅, q ̅);
+Test_N(q﹌, q﹌, q﹌, q ̅, q ̅);
+Test_N(q﹍, q﹍, q﹍, q_, q_);
+Test_N(q﹎, q﹎, q﹎, q_, q_);
+Test_N(q﹏, q﹏, q﹏, q_, q_);
+Test_N(q﹐, q﹐, q﹐, q,, q,);
+Test_N(q﹑, q﹑, q﹑, q、, q、);
+Test_N(q﹒, q﹒, q﹒, q., q.);
+Test_N(q﹔, q﹔, q﹔, q;, q;);
+Test_N(q﹕, q﹕, q﹕, q:, q:);
+Test_N(q﹖, q﹖, q﹖, q?, q?);
+Test_N(q﹗, q﹗, q﹗, q!, q!);
+Test_N(q﹘, q﹘, q﹘, q—, q—);
+Test_N(q﹙, q﹙, q﹙, q(, q();
+Test_N(q﹚, q﹚, q﹚, q), q));
+Test_N(q﹛, q﹛, q﹛, q{, q{);
+Test_N(q﹜, q﹜, q﹜, q}, q});
+Test_N(q﹝, q﹝, q﹝, q〔, q〔);
+Test_N(q﹞, q﹞, q﹞, q〕, q〕);
+Test_N(q﹟, q﹟, q﹟, q#, q#);
+Test_N(q﹠, q﹠, q﹠, q&, q&);
+Test_N(q﹡, q﹡, q﹡, q*, q*);
+Test_N(q﹢, q﹢, q﹢, q+, q+);
+Test_N(q﹣, q﹣, q﹣, q-, q-);
+Test_N(q﹤, q﹤, q﹤, q<, q<);
+Test_N(q﹥, q﹥, q﹥, q>, q>);
+Test_N(q﹦, q﹦, q﹦, q=, q=);
+Test_N(q﹨, q﹨, q﹨, q\\, q\\);
+Test_N(q﹩, q﹩, q﹩, q$, q$);
+Test_N(q﹪, q﹪, q﹪, q%, q%);
+Test_N(q﹫, q﹫, q﹫, q@, q@);
+Test_N(qﹰ, qﹰ, qﹰ, q ً, q ً);
+Test_N(qﹱ, qﹱ, qﹱ, qـً, qـً);
+Test_N(qﹲ, qﹲ, qﹲ, q ٌ, q ٌ);
+Test_N(qﹴ, qﹴ, qﹴ, q ٍ, q ٍ);
+Test_N(qﹶ, qﹶ, qﹶ, q َ, q َ);
+Test_N(qﹷ, qﹷ, qﹷ, qـَ, qـَ);
+Test_N(qﹸ, qﹸ, qﹸ, q ُ, q ُ);
+Test_N(qﹹ, qﹹ, qﹹ, qـُ, qـُ);
+Test_N(qﹺ, qﹺ, qﹺ, q ِ, q ِ);
+Test_N(qﹻ, qﹻ, qﹻ, qـِ, qـِ);
+Test_N(qﹼ, qﹼ, qﹼ, q ّ, q ّ);
+Test_N(qﹽ, qﹽ, qﹽ, qـّ, qـّ);
+Test_N(qﹾ, qﹾ, qﹾ, q ْ, q ْ);
+Test_N(qﹿ, qﹿ, qﹿ, qـْ, qـْ);
+Test_N(qﺀ, qﺀ, qﺀ, qء, qء);
+Test_N(qﺁ, qﺁ, qﺁ, qآ, qآ);
+Test_N(qﺂ, qﺂ, qﺂ, qآ, qآ);
+Test_N(qﺃ, qﺃ, qﺃ, qأ, qأ);
+Test_N(qﺄ, qﺄ, qﺄ, qأ, qأ);
+Test_N(qﺅ, qﺅ, qﺅ, qؤ, qؤ);
+Test_N(qﺆ, qﺆ, qﺆ, qؤ, qؤ);
+Test_N(qﺇ, qﺇ, qﺇ, qإ, qإ);
+Test_N(qﺈ, qﺈ, qﺈ, qإ, qإ);
+Test_N(qﺉ, qﺉ, qﺉ, qئ, qئ);
+Test_N(qﺊ, qﺊ, qﺊ, qئ, qئ);
+Test_N(qﺋ, qﺋ, qﺋ, qئ, qئ);
+Test_N(qﺌ, qﺌ, qﺌ, qئ, qئ);
+Test_N(qﺍ, qﺍ, qﺍ, qا, qا);
+Test_N(qﺎ, qﺎ, qﺎ, qا, qا);
+Test_N(qﺏ, qﺏ, qﺏ, qب, qب);
+Test_N(qﺐ, qﺐ, qﺐ, qب, qب);
+Test_N(qﺑ, qﺑ, qﺑ, qب, qب);
+Test_N(qﺒ, qﺒ, qﺒ, qب, qب);
+Test_N(qﺓ, qﺓ, qﺓ, qة, qة);
+Test_N(qﺔ, qﺔ, qﺔ, qة, qة);
+Test_N(qﺕ, qﺕ, qﺕ, qت, qت);
+Test_N(qﺖ, qﺖ, qﺖ, qت, qت);
+Test_N(qﺗ, qﺗ, qﺗ, qت, qت);
+Test_N(qﺘ, qﺘ, qﺘ, qت, qت);
+Test_N(qﺙ, qﺙ, qﺙ, qث, qث);
+Test_N(qﺚ, qﺚ, qﺚ, qث, qث);
+Test_N(qﺛ, qﺛ, qﺛ, qث, qث);
+Test_N(qﺜ, qﺜ, qﺜ, qث, qث);
+Test_N(qﺝ, qﺝ, qﺝ, qج, qج);
+Test_N(qﺞ, qﺞ, qﺞ, qج, qج);
+Test_N(qﺟ, qﺟ, qﺟ, qج, qج);
+Test_N(qﺠ, qﺠ, qﺠ, qج, qج);
+Test_N(qﺡ, qﺡ, qﺡ, qح, qح);
+Test_N(qﺢ, qﺢ, qﺢ, qح, qح);
+Test_N(qﺣ, qﺣ, qﺣ, qح, qح);
+Test_N(qﺤ, qﺤ, qﺤ, qح, qح);
+Test_N(qﺥ, qﺥ, qﺥ, qخ, qخ);
+Test_N(qﺦ, qﺦ, qﺦ, qخ, qخ);
+Test_N(qﺧ, qﺧ, qﺧ, qخ, qخ);
+Test_N(qﺨ, qﺨ, qﺨ, qخ, qخ);
+Test_N(qﺩ, qﺩ, qﺩ, qد, qد);
+Test_N(qﺪ, qﺪ, qﺪ, qد, qد);
+Test_N(qﺫ, qﺫ, qﺫ, qذ, qذ);
+Test_N(qﺬ, qﺬ, qﺬ, qذ, qذ);
+Test_N(qﺭ, qﺭ, qﺭ, qر, qر);
+Test_N(qﺮ, qﺮ, qﺮ, qر, qر);
+Test_N(qﺯ, qﺯ, qﺯ, qز, qز);
+Test_N(qﺰ, qﺰ, qﺰ, qز, qز);
+Test_N(qﺱ, qﺱ, qﺱ, qس, qس);
+Test_N(qﺲ, qﺲ, qﺲ, qس, qس);
+Test_N(qﺳ, qﺳ, qﺳ, qس, qس);
+Test_N(qﺴ, qﺴ, qﺴ, qس, qس);
+Test_N(qﺵ, qﺵ, qﺵ, qش, qش);
+Test_N(qﺶ, qﺶ, qﺶ, qش, qش);
+Test_N(qﺷ, qﺷ, qﺷ, qش, qش);
+Test_N(qﺸ, qﺸ, qﺸ, qش, qش);
+Test_N(qﺹ, qﺹ, qﺹ, qص, qص);
+Test_N(qﺺ, qﺺ, qﺺ, qص, qص);
+Test_N(qﺻ, qﺻ, qﺻ, qص, qص);
+Test_N(qﺼ, qﺼ, qﺼ, qص, qص);
+Test_N(qﺽ, qﺽ, qﺽ, qض, qض);
+Test_N(qﺾ, qﺾ, qﺾ, qض, qض);
+Test_N(qﺿ, qﺿ, qﺿ, qض, qض);
+Test_N(qﻀ, qﻀ, qﻀ, qض, qض);
+Test_N(qﻁ, qﻁ, qﻁ, qط, qط);
+Test_N(qﻂ, qﻂ, qﻂ, qط, qط);
+Test_N(qﻃ, qﻃ, qﻃ, qط, qط);
+Test_N(qﻄ, qﻄ, qﻄ, qط, qط);
+Test_N(qﻅ, qﻅ, qﻅ, qظ, qظ);
+Test_N(qﻆ, qﻆ, qﻆ, qظ, qظ);
+Test_N(qﻇ, qﻇ, qﻇ, qظ, qظ);
+Test_N(qﻈ, qﻈ, qﻈ, qظ, qظ);
+Test_N(qﻉ, qﻉ, qﻉ, qع, qع);
+Test_N(qﻊ, qﻊ, qﻊ, qع, qع);
+Test_N(qﻋ, qﻋ, qﻋ, qع, qع);
+Test_N(qﻌ, qﻌ, qﻌ, qع, qع);
+Test_N(qﻍ, qﻍ, qﻍ, qغ, qغ);
+Test_N(qﻎ, qﻎ, qﻎ, qغ, qغ);
+Test_N(qﻏ, qﻏ, qﻏ, qغ, qغ);
+Test_N(qﻐ, qﻐ, qﻐ, qغ, qغ);
+Test_N(qﻑ, qﻑ, qﻑ, qف, qف);
+Test_N(qﻒ, qﻒ, qﻒ, qف, qف);
+Test_N(qﻓ, qﻓ, qﻓ, qف, qف);
+Test_N(qﻔ, qﻔ, qﻔ, qف, qف);
+Test_N(qﻕ, qﻕ, qﻕ, qق, qق);
+Test_N(qﻖ, qﻖ, qﻖ, qق, qق);
+Test_N(qﻗ, qﻗ, qﻗ, qق, qق);
+Test_N(qﻘ, qﻘ, qﻘ, qق, qق);
+Test_N(qﻙ, qﻙ, qﻙ, qك, qك);
+Test_N(qﻚ, qﻚ, qﻚ, qك, qك);
+Test_N(qﻛ, qﻛ, qﻛ, qك, qك);
+Test_N(qﻜ, qﻜ, qﻜ, qك, qك);
+Test_N(qﻝ, qﻝ, qﻝ, qل, qل);
+Test_N(qﻞ, qﻞ, qﻞ, qل, qل);
+Test_N(qﻟ, qﻟ, qﻟ, qل, qل);
+Test_N(qﻠ, qﻠ, qﻠ, qل, qل);
+Test_N(qﻡ, qﻡ, qﻡ, qم, qم);
+Test_N(qﻢ, qﻢ, qﻢ, qم, qم);
+Test_N(qﻣ, qﻣ, qﻣ, qم, qم);
+Test_N(qﻤ, qﻤ, qﻤ, qم, qم);
+Test_N(qﻥ, qﻥ, qﻥ, qن, qن);
+Test_N(qﻦ, qﻦ, qﻦ, qن, qن);
+Test_N(qﻧ, qﻧ, qﻧ, qن, qن);
+Test_N(qﻨ, qﻨ, qﻨ, qن, qن);
+Test_N(qﻩ, qﻩ, qﻩ, qه, qه);
+Test_N(qﻪ, qﻪ, qﻪ, qه, qه);
+Test_N(qﻫ, qﻫ, qﻫ, qه, qه);
+Test_N(qﻬ, qﻬ, qﻬ, qه, qه);
+Test_N(qﻭ, qﻭ, qﻭ, qو, qو);
+Test_N(qﻮ, qﻮ, qﻮ, qو, qو);
+Test_N(qﻯ, qﻯ, qﻯ, qى, qى);
+Test_N(qﻰ, qﻰ, qﻰ, qى, qى);
+Test_N(qﻱ, qﻱ, qﻱ, qي, qي);
+Test_N(qﻲ, qﻲ, qﻲ, qي, qي);
+Test_N(qﻳ, qﻳ, qﻳ, qي, qي);
+Test_N(qﻴ, qﻴ, qﻴ, qي, qي);
+Test_N(qﻵ, qﻵ, qﻵ, qلآ, qلآ);
+Test_N(qﻶ, qﻶ, qﻶ, qلآ, qلآ);
+Test_N(qﻷ, qﻷ, qﻷ, qلأ, qلأ);
+Test_N(qﻸ, qﻸ, qﻸ, qلأ, qلأ);
+Test_N(qﻹ, qﻹ, qﻹ, qلإ, qلإ);
+Test_N(qﻺ, qﻺ, qﻺ, qلإ, qلإ);
+Test_N(qﻻ, qﻻ, qﻻ, qلا, qلا);
+Test_N(qﻼ, qﻼ, qﻼ, qلا, qلا);
+Test_N(q!, q!, q!, q!, q!);
+Test_N(q", q", q", q", q");
+Test_N(q#, q#, q#, q#, q#);
+Test_N(q$, q$, q$, q$, q$);
+Test_N(q%, q%, q%, q%, q%);
+Test_N(q&, q&, q&, q&, q&);
+Test_N(q', q', q', q', q');
+Test_N(q(, q(, q(, q(, q();
+Test_N(q), q), q), q), q));
+Test_N(q*, q*, q*, q*, q*);
+Test_N(q+, q+, q+, q+, q+);
+Test_N(q,, q,, q,, q,, q,);
+Test_N(q-, q-, q-, q-, q-);
+Test_N(q., q., q., q., q.);
+Test_N(q/, q/, q/, q/, q/);
+Test_N(q0, q0, q0, q0, q0);
+Test_N(q1, q1, q1, q1, q1);
+Test_N(q2, q2, q2, q2, q2);
+Test_N(q3, q3, q3, q3, q3);
+Test_N(q4, q4, q4, q4, q4);
+Test_N(q5, q5, q5, q5, q5);
+Test_N(q6, q6, q6, q6, q6);
+Test_N(q7, q7, q7, q7, q7);
+Test_N(q8, q8, q8, q8, q8);
+Test_N(q9, q9, q9, q9, q9);
+Test_N(q:, q:, q:, q:, q:);
+Test_N(q;, q;, q;, q;, q;);
+Test_N(q<, q<, q<, q<, q<);
+Test_N(q=, q=, q=, q=, q=);
+Test_N(q>, q>, q>, q>, q>);
+Test_N(q?, q?, q?, q?, q?);
+Test_N(q@, q@, q@, q@, q@);
+Test_N(qA, qA, qA, qA, qA);
+Test_N(qB, qB, qB, qB, qB);
+Test_N(qC, qC, qC, qC, qC);
+Test_N(qD, qD, qD, qD, qD);
+Test_N(qE, qE, qE, qE, qE);
+Test_N(qF, qF, qF, qF, qF);
+Test_N(qG, qG, qG, qG, qG);
+Test_N(qH, qH, qH, qH, qH);
+Test_N(qI, qI, qI, qI, qI);
+Test_N(qJ, qJ, qJ, qJ, qJ);
+Test_N(qK, qK, qK, qK, qK);
+Test_N(qL, qL, qL, qL, qL);
+Test_N(qM, qM, qM, qM, qM);
+Test_N(qN, qN, qN, qN, qN);
+Test_N(qO, qO, qO, qO, qO);
+Test_N(qP, qP, qP, qP, qP);
+Test_N(qQ, qQ, qQ, qQ, qQ);
+Test_N(qR, qR, qR, qR, qR);
+Test_N(qS, qS, qS, qS, qS);
+Test_N(qT, qT, qT, qT, qT);
+Test_N(qU, qU, qU, qU, qU);
+Test_N(qV, qV, qV, qV, qV);
+Test_N(qW, qW, qW, qW, qW);
+Test_N(qX, qX, qX, qX, qX);
+Test_N(qY, qY, qY, qY, qY);
+Test_N(qZ, qZ, qZ, qZ, qZ);
+Test_N(q[, q[, q[, q[, q[);
+Test_N(q\, q\, q\, q\\, q\\);
+Test_N(q], q], q], q], q]);
+Test_N(q^, q^, q^, q^, q^);
+Test_N(q_, q_, q_, q_, q_);
+Test_N(q`, q`, q`, q`, q`);
+Test_N(qa, qa, qa, qa, qa);
+Test_N(qb, qb, qb, qb, qb);
+Test_N(qc, qc, qc, qc, qc);
+Test_N(qd, qd, qd, qd, qd);
+Test_N(qe, qe, qe, qe, qe);
+Test_N(qf, qf, qf, qf, qf);
+Test_N(qg, qg, qg, qg, qg);
+Test_N(qh, qh, qh, qh, qh);
+Test_N(qi, qi, qi, qi, qi);
+Test_N(qj, qj, qj, qj, qj);
+Test_N(qk, qk, qk, qk, qk);
+Test_N(ql, ql, ql, ql, ql);
+Test_N(qm, qm, qm, qm, qm);
+Test_N(qn, qn, qn, qn, qn);
+Test_N(qo, qo, qo, qo, qo);
+Test_N(qp, qp, qp, qp, qp);
+Test_N(qq, qq, qq, qq, qq);
+Test_N(qr, qr, qr, qr, qr);
+Test_N(qs, qs, qs, qs, qs);
+Test_N(qt, qt, qt, qt, qt);
+Test_N(qu, qu, qu, qu, qu);
+Test_N(qv, qv, qv, qv, qv);
+Test_N(qw, qw, qw, qw, qw);
+Test_N(qx, qx, qx, qx, qx);
+Test_N(qy, qy, qy, qy, qy);
+Test_N(qz, qz, qz, qz, qz);
+Test_N(q{, q{, q{, q{, q{);
+Test_N(q|, q|, q|, q|, q|);
+Test_N(q}, q}, q}, q}, q});
+Test_N(q~, q~, q~, q~, q~);
+Test_N(q⦅, q⦅, q⦅, q⦅, q⦅);
+Test_N(q⦆, q⦆, q⦆, q⦆, q⦆);
+Test_N(q。, q。, q。, q。, q。);
+Test_N(q「, q「, q「, q「, q「);
+Test_N(q」, q」, q」, q」, q」);
+Test_N(q、, q、, q、, q、, q、);
+Test_N(q・, q・, q・, q・, q・);
+Test_N(qヲ, qヲ, qヲ, qヲ, qヲ);
+Test_N(qァ, qァ, qァ, qァ, qァ);
+Test_N(qィ, qィ, qィ, qィ, qィ);
+Test_N(qゥ, qゥ, qゥ, qゥ, qゥ);
+Test_N(qェ, qェ, qェ, qェ, qェ);
+Test_N(qォ, qォ, qォ, qォ, qォ);
+Test_N(qャ, qャ, qャ, qャ, qャ);
+Test_N(qュ, qュ, qュ, qュ, qュ);
+Test_N(qョ, qョ, qョ, qョ, qョ);
+Test_N(qッ, qッ, qッ, qッ, qッ);
+Test_N(qー, qー, qー, qー, qー);
+Test_N(qア, qア, qア, qア, qア);
+Test_N(qイ, qイ, qイ, qイ, qイ);
+Test_N(qウ, qウ, qウ, qウ, qウ);
+Test_N(qエ, qエ, qエ, qエ, qエ);
+Test_N(qオ, qオ, qオ, qオ, qオ);
+Test_N(qカ, qカ, qカ, qカ, qカ);
+Test_N(qキ, qキ, qキ, qキ, qキ);
+Test_N(qク, qク, qク, qク, qク);
+Test_N(qケ, qケ, qケ, qケ, qケ);
+Test_N(qコ, qコ, qコ, qコ, qコ);
+Test_N(qサ, qサ, qサ, qサ, qサ);
+Test_N(qシ, qシ, qシ, qシ, qシ);
+Test_N(qス, qス, qス, qス, qス);
+Test_N(qセ, qセ, qセ, qセ, qセ);
+Test_N(qソ, qソ, qソ, qソ, qソ);
+Test_N(qタ, qタ, qタ, qタ, qタ);
+Test_N(qチ, qチ, qチ, qチ, qチ);
+Test_N(qツ, qツ, qツ, qツ, qツ);
+Test_N(qテ, qテ, qテ, qテ, qテ);
+Test_N(qト, qト, qト, qト, qト);
+Test_N(qナ, qナ, qナ, qナ, qナ);
+Test_N(qニ, qニ, qニ, qニ, qニ);
+Test_N(qヌ, qヌ, qヌ, qヌ, qヌ);
+Test_N(qネ, qネ, qネ, qネ, qネ);
+Test_N(qノ, qノ, qノ, qノ, qノ);
+Test_N(qハ, qハ, qハ, qハ, qハ);
+Test_N(qヒ, qヒ, qヒ, qヒ, qヒ);
+Test_N(qフ, qフ, qフ, qフ, qフ);
+Test_N(qヘ, qヘ, qヘ, qヘ, qヘ);
+Test_N(qホ, qホ, qホ, qホ, qホ);
+Test_N(qマ, qマ, qマ, qマ, qマ);
+Test_N(qミ, qミ, qミ, qミ, qミ);
+Test_N(qム, qム, qム, qム, qム);
+Test_N(qメ, qメ, qメ, qメ, qメ);
+Test_N(qモ, qモ, qモ, qモ, qモ);
+Test_N(qヤ, qヤ, qヤ, qヤ, qヤ);
+Test_N(qユ, qユ, qユ, qユ, qユ);
+Test_N(qヨ, qヨ, qヨ, qヨ, qヨ);
+Test_N(qラ, qラ, qラ, qラ, qラ);
+Test_N(qリ, qリ, qリ, qリ, qリ);
+Test_N(qル, qル, qル, qル, qル);
+Test_N(qレ, qレ, qレ, qレ, qレ);
+Test_N(qロ, qロ, qロ, qロ, qロ);
+Test_N(qワ, qワ, qワ, qワ, qワ);
+Test_N(qン, qン, qン, qン, qン);
+Test_N(q゙, q゙, q゙, q゙, q゙);
+Test_N(q゚, q゚, q゚, q゚, q゚);
+Test_N(qᅠ, qᅠ, qᅠ, qᅠ, qᅠ);
+Test_N(qᄀ, qᄀ, qᄀ, qᄀ, qᄀ);
+Test_N(qᄁ, qᄁ, qᄁ, qᄁ, qᄁ);
+Test_N(qᆪ, qᆪ, qᆪ, qᆪ, qᆪ);
+Test_N(qᄂ, qᄂ, qᄂ, qᄂ, qᄂ);
+Test_N(qᆬ, qᆬ, qᆬ, qᆬ, qᆬ);
+Test_N(qᆭ, qᆭ, qᆭ, qᆭ, qᆭ);
+Test_N(qᄃ, qᄃ, qᄃ, qᄃ, qᄃ);
+Test_N(qᄄ, qᄄ, qᄄ, qᄄ, qᄄ);
+Test_N(qᄅ, qᄅ, qᄅ, qᄅ, qᄅ);
+Test_N(qᆰ, qᆰ, qᆰ, qᆰ, qᆰ);
+Test_N(qᆱ, qᆱ, qᆱ, qᆱ, qᆱ);
+Test_N(qᆲ, qᆲ, qᆲ, qᆲ, qᆲ);
+Test_N(qᆳ, qᆳ, qᆳ, qᆳ, qᆳ);
+Test_N(qᆴ, qᆴ, qᆴ, qᆴ, qᆴ);
+Test_N(qᆵ, qᆵ, qᆵ, qᆵ, qᆵ);
+Test_N(qᄚ, qᄚ, qᄚ, qᄚ, qᄚ);
+Test_N(qᄆ, qᄆ, qᄆ, qᄆ, qᄆ);
+Test_N(qᄇ, qᄇ, qᄇ, qᄇ, qᄇ);
+Test_N(qᄈ, qᄈ, qᄈ, qᄈ, qᄈ);
+Test_N(qᄡ, qᄡ, qᄡ, qᄡ, qᄡ);
+Test_N(qᄉ, qᄉ, qᄉ, qᄉ, qᄉ);
+Test_N(qᄊ, qᄊ, qᄊ, qᄊ, qᄊ);
+Test_N(qᄋ, qᄋ, qᄋ, qᄋ, qᄋ);
+Test_N(qᄌ, qᄌ, qᄌ, qᄌ, qᄌ);
+Test_N(qᄍ, qᄍ, qᄍ, qᄍ, qᄍ);
+Test_N(qᄎ, qᄎ, qᄎ, qᄎ, qᄎ);
+Test_N(qᄏ, qᄏ, qᄏ, qᄏ, qᄏ);
+Test_N(qᄐ, qᄐ, qᄐ, qᄐ, qᄐ);
+Test_N(qᄑ, qᄑ, qᄑ, qᄑ, qᄑ);
+Test_N(qᄒ, qᄒ, qᄒ, qᄒ, qᄒ);
+Test_N(qᅡ, qᅡ, qᅡ, qᅡ, qᅡ);
+Test_N(qᅢ, qᅢ, qᅢ, qᅢ, qᅢ);
+Test_N(qᅣ, qᅣ, qᅣ, qᅣ, qᅣ);
+Test_N(qᅤ, qᅤ, qᅤ, qᅤ, qᅤ);
+Test_N(qᅥ, qᅥ, qᅥ, qᅥ, qᅥ);
+Test_N(qᅦ, qᅦ, qᅦ, qᅦ, qᅦ);
+Test_N(qᅧ, qᅧ, qᅧ, qᅧ, qᅧ);
+Test_N(qᅨ, qᅨ, qᅨ, qᅨ, qᅨ);
+Test_N(qᅩ, qᅩ, qᅩ, qᅩ, qᅩ);
+Test_N(qᅪ, qᅪ, qᅪ, qᅪ, qᅪ);
+Test_N(qᅫ, qᅫ, qᅫ, qᅫ, qᅫ);
+Test_N(qᅬ, qᅬ, qᅬ, qᅬ, qᅬ);
+Test_N(qᅭ, qᅭ, qᅭ, qᅭ, qᅭ);
+Test_N(qᅮ, qᅮ, qᅮ, qᅮ, qᅮ);
+Test_N(qᅯ, qᅯ, qᅯ, qᅯ, qᅯ);
+Test_N(qᅰ, qᅰ, qᅰ, qᅰ, qᅰ);
+Test_N(qᅱ, qᅱ, qᅱ, qᅱ, qᅱ);
+Test_N(qᅲ, qᅲ, qᅲ, qᅲ, qᅲ);
+Test_N(qᅳ, qᅳ, qᅳ, qᅳ, qᅳ);
+Test_N(qᅴ, qᅴ, qᅴ, qᅴ, qᅴ);
+Test_N(qᅵ, qᅵ, qᅵ, qᅵ, qᅵ);
+Test_N(q¢, q¢, q¢, q¢, q¢);
+Test_N(q£, q£, q£, q£, q£);
+Test_N(q¬, q¬, q¬, q¬, q¬);
+Test_N(q ̄, q ̄, q ̄, q ̄, q ̄);
+Test_N(q¦, q¦, q¦, q¦, q¦);
+Test_N(q¥, q¥, q¥, q¥, q¥);
+Test_N(q₩, q₩, q₩, q₩, q₩);
+Test_N(q│, q│, q│, q│, q│);
+Test_N(q←, q←, q←, q←, q←);
+Test_N(q↑, q↑, q↑, q↑, q↑);
+Test_N(q→, q→, q→, q→, q→);
+Test_N(q↓, q↓, q↓, q↓, q↓);
+Test_N(q■, q■, q■, q■, q■);
+Test_N(q○, q○, q○, q○, q○);
+Test_N(q𐞁, q𐞁, q𐞁, qː, qː);
+Test_N(q𐞂, q𐞂, q𐞂, qˑ, qˑ);
+Test_N(q𐞃, q𐞃, q𐞃, qæ, qæ);
+Test_N(q𐞄, q𐞄, q𐞄, qʙ, qʙ);
+Test_N(q𐞅, q𐞅, q𐞅, qɓ, qɓ);
+Test_N(q𐞇, q𐞇, q𐞇, qʣ, qʣ);
+Test_N(q𐞈, q𐞈, q𐞈, qꭦ, qꭦ);
+Test_N(q𐞉, q𐞉, q𐞉, qʥ, qʥ);
+Test_N(q𐞊, q𐞊, q𐞊, qʤ, qʤ);
+Test_N(q𐞋, q𐞋, q𐞋, qɖ, qɖ);
+Test_N(q𐞌, q𐞌, q𐞌, qɗ, qɗ);
+Test_N(q𐞍, q𐞍, q𐞍, qᶑ, qᶑ);
+Test_N(q𐞎, q𐞎, q𐞎, qɘ, qɘ);
+Test_N(q𐞏, q𐞏, q𐞏, qɞ, qɞ);
+Test_N(q𐞐, q𐞐, q𐞐, qʩ, qʩ);
+Test_N(q𐞑, q𐞑, q𐞑, qɤ, qɤ);
+Test_N(q𐞒, q𐞒, q𐞒, qɢ, qɢ);
+Test_N(q𐞓, q𐞓, q𐞓, qɠ, qɠ);
+Test_N(q𐞔, q𐞔, q𐞔, qʛ, qʛ);
+Test_N(q𐞕, q𐞕, q𐞕, qħ, qħ);
+Test_N(q𐞖, q𐞖, q𐞖, qʜ, qʜ);
+Test_N(q𐞗, q𐞗, q𐞗, qɧ, qɧ);
+Test_N(q𐞘, q𐞘, q𐞘, qʄ, qʄ);
+Test_N(q𐞙, q𐞙, q𐞙, qʪ, qʪ);
+Test_N(q𐞚, q𐞚, q𐞚, qʫ, qʫ);
+Test_N(q𐞛, q𐞛, q𐞛, qɬ, qɬ);
+Test_N(q𐞜, q𐞜, q𐞜, q𝼄, q𝼄);
+Test_N(q𐞝, q𐞝, q𐞝, qꞎ, qꞎ);
+Test_N(q𐞞, q𐞞, q𐞞, qɮ, qɮ);
+Test_N(q𐞟, q𐞟, q𐞟, q𝼅, q𝼅);
+Test_N(q𐞠, q𐞠, q𐞠, qʎ, qʎ);
+Test_N(q𐞡, q𐞡, q𐞡, q𝼆, q𝼆);
+Test_N(q𐞢, q𐞢, q𐞢, qø, qø);
+Test_N(q𐞣, q𐞣, q𐞣, qɶ, qɶ);
+Test_N(q𐞤, q𐞤, q𐞤, qɷ, qɷ);
+Test_N(q𐞥, q𐞥, q𐞥, qq, qq);
+Test_N(q𐞦, q𐞦, q𐞦, qɺ, qɺ);
+Test_N(q𐞧, q𐞧, q𐞧, q𝼈, q𝼈);
+Test_N(q𐞨, q𐞨, q𐞨, qɽ, qɽ);
+Test_N(q𐞩, q𐞩, q𐞩, qɾ, qɾ);
+Test_N(q𐞪, q𐞪, q𐞪, qʀ, qʀ);
+Test_N(q𐞫, q𐞫, q𐞫, qʨ, qʨ);
+Test_N(q𐞬, q𐞬, q𐞬, qʦ, qʦ);
+Test_N(q𐞭, q𐞭, q𐞭, qꭧ, qꭧ);
+Test_N(q𐞮, q𐞮, q𐞮, qʧ, qʧ);
+Test_N(q𐞯, q𐞯, q𐞯, qʈ, qʈ);
+Test_N(q𐞰, q𐞰, q𐞰, qⱱ, qⱱ);
+Test_N(q𐞲, q𐞲, q𐞲, qʏ, qʏ);
+Test_N(q𐞳, q𐞳, q𐞳, qʡ, qʡ);
+Test_N(q𐞴, q𐞴, q𐞴, qʢ, qʢ);
+Test_N(q𐞵, q𐞵, q𐞵, qʘ, qʘ);
+Test_N(q𐞶, q𐞶, q𐞶, qǀ, qǀ);
+Test_N(q𐞷, q𐞷, q𐞷, qǁ, qǁ);
+Test_N(q𐞸, q𐞸, q𐞸, qǂ, qǂ);
+Test_N(q𐞹, q𐞹, q𐞹, q𝼊, q𝼊);
+Test_N(q𐞺, q𐞺, q𐞺, q𝼞, q𝼞);
+Test_N(q𑂚, q𑂚, q𑂚, q𑂚, q𑂚);
+Test_N(q𑂜, q𑂜, q𑂜, q𑂜, q𑂜);
+Test_N(q𑂫, q𑂫, q𑂫, q𑂫, q𑂫);
+Test_N(q𑄮, q𑄮, q𑄮, q𑄮, q𑄮);
+Test_N(q𑄯, q𑄯, q𑄯, q𑄯, q𑄯);
+Test_N(q𑍋, q𑍋, q𑍋, q𑍋, q𑍋);
+Test_N(q𑍌, q𑍌, q𑍌, q𑍌, q𑍌);
+Test_N(q𑒻, q𑒻, q𑒻, q𑒻, q𑒻);
+Test_N(q𑒼, q𑒼, q𑒼, q𑒼, q𑒼);
+Test_N(q𑒾, q𑒾, q𑒾, q𑒾, q𑒾);
+Test_N(q𑖺, q𑖺, q𑖺, q𑖺, q𑖺);
+Test_N(q𑖻, q𑖻, q𑖻, q𑖻, q𑖻);
+Test_N(q𑤸, q𑤸, q𑤸, q𑤸, q𑤸);
+Test_N(q𝅗𝅥, q𝅗𝅥, q𝅗𝅥, q𝅗𝅥, q𝅗𝅥);
+Test_N(q𝅘𝅥, q𝅘𝅥, q𝅘𝅥, q𝅘𝅥, q𝅘𝅥);
+Test_N(q𝅘𝅥𝅮, q𝅘𝅥𝅮, q𝅘𝅥𝅮, q𝅘𝅥𝅮, q𝅘𝅥𝅮);
+Test_N(q𝅘𝅥𝅯, q𝅘𝅥𝅯, q𝅘𝅥𝅯, q𝅘𝅥𝅯, q𝅘𝅥𝅯);
+Test_N(q𝅘𝅥𝅰, q𝅘𝅥𝅰, q𝅘𝅥𝅰, q𝅘𝅥𝅰, q𝅘𝅥𝅰);
+Test_N(q𝅘𝅥𝅱, q𝅘𝅥𝅱, q𝅘𝅥𝅱, q𝅘𝅥𝅱, q𝅘𝅥𝅱);
+Test_N(q𝅘𝅥𝅲, q𝅘𝅥𝅲, q𝅘𝅥𝅲, q𝅘𝅥𝅲, q𝅘𝅥𝅲);
+Test_N(q𝆹𝅥, q𝆹𝅥, q𝆹𝅥, q𝆹𝅥, q𝆹𝅥);
+Test_N(q𝆺𝅥, q𝆺𝅥, q𝆺𝅥, q𝆺𝅥, q𝆺𝅥);
+Test_N(q𝆹𝅥𝅮, q𝆹𝅥𝅮, q𝆹𝅥𝅮, q𝆹𝅥𝅮, q𝆹𝅥𝅮);
+Test_N(q𝆺𝅥𝅮, q𝆺𝅥𝅮, q𝆺𝅥𝅮, q𝆺𝅥𝅮, q𝆺𝅥𝅮);
+Test_N(q𝆹𝅥𝅯, q𝆹𝅥𝅯, q𝆹𝅥𝅯, q𝆹𝅥𝅯, q𝆹𝅥𝅯);
+Test_N(q𝆺𝅥𝅯, q𝆺𝅥𝅯, q𝆺𝅥𝅯, q𝆺𝅥𝅯, q𝆺𝅥𝅯);
+Test_N(q𝐀, q𝐀, q𝐀, qA, qA);
+Test_N(q𝐁, q𝐁, q𝐁, qB, qB);
+Test_N(q𝐂, q𝐂, q𝐂, qC, qC);
+Test_N(q𝐃, q𝐃, q𝐃, qD, qD);
+Test_N(q𝐄, q𝐄, q𝐄, qE, qE);
+Test_N(q𝐅, q𝐅, q𝐅, qF, qF);
+Test_N(q𝐆, q𝐆, q𝐆, qG, qG);
+Test_N(q𝐇, q𝐇, q𝐇, qH, qH);
+Test_N(q𝐈, q𝐈, q𝐈, qI, qI);
+Test_N(q𝐉, q𝐉, q𝐉, qJ, qJ);
+Test_N(q𝐊, q𝐊, q𝐊, qK, qK);
+Test_N(q𝐋, q𝐋, q𝐋, qL, qL);
+Test_N(q𝐌, q𝐌, q𝐌, qM, qM);
+Test_N(q𝐍, q𝐍, q𝐍, qN, qN);
+Test_N(q𝐎, q𝐎, q𝐎, qO, qO);
+Test_N(q𝐏, q𝐏, q𝐏, qP, qP);
+Test_N(q𝐐, q𝐐, q𝐐, qQ, qQ);
+Test_N(q𝐑, q𝐑, q𝐑, qR, qR);
+Test_N(q𝐒, q𝐒, q𝐒, qS, qS);
+Test_N(q𝐓, q𝐓, q𝐓, qT, qT);
+Test_N(q𝐔, q𝐔, q𝐔, qU, qU);
+Test_N(q𝐕, q𝐕, q𝐕, qV, qV);
+Test_N(q𝐖, q𝐖, q𝐖, qW, qW);
+Test_N(q𝐗, q𝐗, q𝐗, qX, qX);
+Test_N(q𝐘, q𝐘, q𝐘, qY, qY);
+Test_N(q𝐙, q𝐙, q𝐙, qZ, qZ);
+Test_N(q𝐚, q𝐚, q𝐚, qa, qa);
+Test_N(q𝐛, q𝐛, q𝐛, qb, qb);
+Test_N(q𝐜, q𝐜, q𝐜, qc, qc);
+Test_N(q𝐝, q𝐝, q𝐝, qd, qd);
+Test_N(q𝐞, q𝐞, q𝐞, qe, qe);
+Test_N(q𝐟, q𝐟, q𝐟, qf, qf);
+Test_N(q𝐠, q𝐠, q𝐠, qg, qg);
+Test_N(q𝐡, q𝐡, q𝐡, qh, qh);
+Test_N(q𝐢, q𝐢, q𝐢, qi, qi);
+Test_N(q𝐣, q𝐣, q𝐣, qj, qj);
+Test_N(q𝐤, q𝐤, q𝐤, qk, qk);
+Test_N(q𝐥, q𝐥, q𝐥, ql, ql);
+Test_N(q𝐦, q𝐦, q𝐦, qm, qm);
+Test_N(q𝐧, q𝐧, q𝐧, qn, qn);
+Test_N(q𝐨, q𝐨, q𝐨, qo, qo);
+Test_N(q𝐩, q𝐩, q𝐩, qp, qp);
+Test_N(q𝐪, q𝐪, q𝐪, qq, qq);
+Test_N(q𝐫, q𝐫, q𝐫, qr, qr);
+Test_N(q𝐬, q𝐬, q𝐬, qs, qs);
+Test_N(q𝐭, q𝐭, q𝐭, qt, qt);
+Test_N(q𝐮, q𝐮, q𝐮, qu, qu);
+Test_N(q𝐯, q𝐯, q𝐯, qv, qv);
+Test_N(q𝐰, q𝐰, q𝐰, qw, qw);
+Test_N(q𝐱, q𝐱, q𝐱, qx, qx);
+Test_N(q𝐲, q𝐲, q𝐲, qy, qy);
+Test_N(q𝐳, q𝐳, q𝐳, qz, qz);
+Test_N(q𝐴, q𝐴, q𝐴, qA, qA);
+Test_N(q𝐵, q𝐵, q𝐵, qB, qB);
+Test_N(q𝐶, q𝐶, q𝐶, qC, qC);
+Test_N(q𝐷, q𝐷, q𝐷, qD, qD);
+Test_N(q𝐸, q𝐸, q𝐸, qE, qE);
+Test_N(q𝐹, q𝐹, q𝐹, qF, qF);
+Test_N(q𝐺, q𝐺, q𝐺, qG, qG);
+Test_N(q𝐻, q𝐻, q𝐻, qH, qH);
+Test_N(q𝐼, q𝐼, q𝐼, qI, qI);
+Test_N(q𝐽, q𝐽, q𝐽, qJ, qJ);
+Test_N(q𝐾, q𝐾, q𝐾, qK, qK);
+Test_N(q𝐿, q𝐿, q𝐿, qL, qL);
+Test_N(q𝑀, q𝑀, q𝑀, qM, qM);
+Test_N(q𝑁, q𝑁, q𝑁, qN, qN);
+Test_N(q𝑂, q𝑂, q𝑂, qO, qO);
+Test_N(q𝑃, q𝑃, q𝑃, qP, qP);
+Test_N(q𝑄, q𝑄, q𝑄, qQ, qQ);
+Test_N(q𝑅, q𝑅, q𝑅, qR, qR);
+Test_N(q𝑆, q𝑆, q𝑆, qS, qS);
+Test_N(q𝑇, q𝑇, q𝑇, qT, qT);
+Test_N(q𝑈, q𝑈, q𝑈, qU, qU);
+Test_N(q𝑉, q𝑉, q𝑉, qV, qV);
+Test_N(q𝑊, q𝑊, q𝑊, qW, qW);
+Test_N(q𝑋, q𝑋, q𝑋, qX, qX);
+Test_N(q𝑌, q𝑌, q𝑌, qY, qY);
+Test_N(q𝑍, q𝑍, q𝑍, qZ, qZ);
+Test_N(q𝑎, q𝑎, q𝑎, qa, qa);
+Test_N(q𝑏, q𝑏, q𝑏, qb, qb);
+Test_N(q𝑐, q𝑐, q𝑐, qc, qc);
+Test_N(q𝑑, q𝑑, q𝑑, qd, qd);
+Test_N(q𝑒, q𝑒, q𝑒, qe, qe);
+Test_N(q𝑓, q𝑓, q𝑓, qf, qf);
+Test_N(q𝑔, q𝑔, q𝑔, qg, qg);
+Test_N(q𝑖, q𝑖, q𝑖, qi, qi);
+Test_N(q𝑗, q𝑗, q𝑗, qj, qj);
+Test_N(q𝑘, q𝑘, q𝑘, qk, qk);
+Test_N(q𝑙, q𝑙, q𝑙, ql, ql);
+Test_N(q𝑚, q𝑚, q𝑚, qm, qm);
+Test_N(q𝑛, q𝑛, q𝑛, qn, qn);
+Test_N(q𝑜, q𝑜, q𝑜, qo, qo);
+Test_N(q𝑝, q𝑝, q𝑝, qp, qp);
+Test_N(q𝑞, q𝑞, q𝑞, qq, qq);
+Test_N(q𝑟, q𝑟, q𝑟, qr, qr);
+Test_N(q𝑠, q𝑠, q𝑠, qs, qs);
+Test_N(q𝑡, q𝑡, q𝑡, qt, qt);
+Test_N(q𝑢, q𝑢, q𝑢, qu, qu);
+Test_N(q𝑣, q𝑣, q𝑣, qv, qv);
+Test_N(q𝑤, q𝑤, q𝑤, qw, qw);
+Test_N(q𝑥, q𝑥, q𝑥, qx, qx);
+Test_N(q𝑦, q𝑦, q𝑦, qy, qy);
+Test_N(q𝑧, q𝑧, q𝑧, qz, qz);
+Test_N(q𝑨, q𝑨, q𝑨, qA, qA);
+Test_N(q𝑩, q𝑩, q𝑩, qB, qB);
+Test_N(q𝑪, q𝑪, q𝑪, qC, qC);
+Test_N(q𝑫, q𝑫, q𝑫, qD, qD);
+Test_N(q𝑬, q𝑬, q𝑬, qE, qE);
+Test_N(q𝑭, q𝑭, q𝑭, qF, qF);
+Test_N(q𝑮, q𝑮, q𝑮, qG, qG);
+Test_N(q𝑯, q𝑯, q𝑯, qH, qH);
+Test_N(q𝑰, q𝑰, q𝑰, qI, qI);
+Test_N(q𝑱, q𝑱, q𝑱, qJ, qJ);
+Test_N(q𝑲, q𝑲, q𝑲, qK, qK);
+Test_N(q𝑳, q𝑳, q𝑳, qL, qL);
+Test_N(q𝑴, q𝑴, q𝑴, qM, qM);
+Test_N(q𝑵, q𝑵, q𝑵, qN, qN);
+Test_N(q𝑶, q𝑶, q𝑶, qO, qO);
+Test_N(q𝑷, q𝑷, q𝑷, qP, qP);
+Test_N(q𝑸, q𝑸, q𝑸, qQ, qQ);
+Test_N(q𝑹, q𝑹, q𝑹, qR, qR);
+Test_N(q𝑺, q𝑺, q𝑺, qS, qS);
+Test_N(q𝑻, q𝑻, q𝑻, qT, qT);
+Test_N(q𝑼, q𝑼, q𝑼, qU, qU);
+Test_N(q𝑽, q𝑽, q𝑽, qV, qV);
+Test_N(q𝑾, q𝑾, q𝑾, qW, qW);
+Test_N(q𝑿, q𝑿, q𝑿, qX, qX);
+Test_N(q𝒀, q𝒀, q𝒀, qY, qY);
+Test_N(q𝒁, q𝒁, q𝒁, qZ, qZ);
+Test_N(q𝒂, q𝒂, q𝒂, qa, qa);
+Test_N(q𝒃, q𝒃, q𝒃, qb, qb);
+Test_N(q𝒄, q𝒄, q𝒄, qc, qc);
+Test_N(q𝒅, q𝒅, q𝒅, qd, qd);
+Test_N(q𝒆, q𝒆, q𝒆, qe, qe);
+Test_N(q𝒇, q𝒇, q𝒇, qf, qf);
+Test_N(q𝒈, q𝒈, q𝒈, qg, qg);
+Test_N(q𝒉, q𝒉, q𝒉, qh, qh);
+Test_N(q𝒊, q𝒊, q𝒊, qi, qi);
+Test_N(q𝒋, q𝒋, q𝒋, qj, qj);
+Test_N(q𝒌, q𝒌, q𝒌, qk, qk);
+Test_N(q𝒍, q𝒍, q𝒍, ql, ql);
+Test_N(q𝒎, q𝒎, q𝒎, qm, qm);
+Test_N(q𝒏, q𝒏, q𝒏, qn, qn);
+Test_N(q𝒐, q𝒐, q𝒐, qo, qo);
+Test_N(q𝒑, q𝒑, q𝒑, qp, qp);
+Test_N(q𝒒, q𝒒, q𝒒, qq, qq);
+Test_N(q𝒓, q𝒓, q𝒓, qr, qr);
+Test_N(q𝒔, q𝒔, q𝒔, qs, qs);
+Test_N(q𝒕, q𝒕, q𝒕, qt, qt);
+Test_N(q𝒖, q𝒖, q𝒖, qu, qu);
+Test_N(q𝒗, q𝒗, q𝒗, qv, qv);
+Test_N(q𝒘, q𝒘, q𝒘, qw, qw);
+Test_N(q𝒙, q𝒙, q𝒙, qx, qx);
+Test_N(q𝒚, q𝒚, q𝒚, qy, qy);
+Test_N(q𝒛, q𝒛, q𝒛, qz, qz);
+Test_N(q𝒜, q𝒜, q𝒜, qA, qA);
+Test_N(q𝒞, q𝒞, q𝒞, qC, qC);
+Test_N(q𝒟, q𝒟, q𝒟, qD, qD);
+Test_N(q𝒢, q𝒢, q𝒢, qG, qG);
+Test_N(q𝒥, q𝒥, q𝒥, qJ, qJ);
+Test_N(q𝒦, q𝒦, q𝒦, qK, qK);
+Test_N(q𝒩, q𝒩, q𝒩, qN, qN);
+Test_N(q𝒪, q𝒪, q𝒪, qO, qO);
+Test_N(q𝒫, q𝒫, q𝒫, qP, qP);
+Test_N(q𝒬, q𝒬, q𝒬, qQ, qQ);
+Test_N(q𝒮, q𝒮, q𝒮, qS, qS);
+Test_N(q𝒯, q𝒯, q𝒯, qT, qT);
+Test_N(q𝒰, q𝒰, q𝒰, qU, qU);
+Test_N(q𝒱, q𝒱, q𝒱, qV, qV);
+Test_N(q𝒲, q𝒲, q𝒲, qW, qW);
+Test_N(q𝒳, q𝒳, q𝒳, qX, qX);
+Test_N(q𝒴, q𝒴, q𝒴, qY, qY);
+Test_N(q𝒵, q𝒵, q𝒵, qZ, qZ);
+Test_N(q𝒶, q𝒶, q𝒶, qa, qa);
+Test_N(q𝒷, q𝒷, q𝒷, qb, qb);
+Test_N(q𝒸, q𝒸, q𝒸, qc, qc);
+Test_N(q𝒹, q𝒹, q𝒹, qd, qd);
+Test_N(q𝒻, q𝒻, q𝒻, qf, qf);
+Test_N(q𝒽, q𝒽, q𝒽, qh, qh);
+Test_N(q𝒾, q𝒾, q𝒾, qi, qi);
+Test_N(q𝒿, q𝒿, q𝒿, qj, qj);
+Test_N(q𝓀, q𝓀, q𝓀, qk, qk);
+Test_N(q𝓁, q𝓁, q𝓁, ql, ql);
+Test_N(q𝓂, q𝓂, q𝓂, qm, qm);
+Test_N(q𝓃, q𝓃, q𝓃, qn, qn);
+Test_N(q𝓅, q𝓅, q𝓅, qp, qp);
+Test_N(q𝓆, q𝓆, q𝓆, qq, qq);
+Test_N(q𝓇, q𝓇, q𝓇, qr, qr);
+Test_N(q𝓈, q𝓈, q𝓈, qs, qs);
+Test_N(q𝓉, q𝓉, q𝓉, qt, qt);
+Test_N(q𝓊, q𝓊, q𝓊, qu, qu);
+Test_N(q𝓋, q𝓋, q𝓋, qv, qv);
+Test_N(q𝓌, q𝓌, q𝓌, qw, qw);
+Test_N(q𝓍, q𝓍, q𝓍, qx, qx);
+Test_N(q𝓎, q𝓎, q𝓎, qy, qy);
+Test_N(q𝓏, q𝓏, q𝓏, qz, qz);
+Test_N(q𝓐, q𝓐, q𝓐, qA, qA);
+Test_N(q𝓑, q𝓑, q𝓑, qB, qB);
+Test_N(q𝓒, q𝓒, q𝓒, qC, qC);
+Test_N(q𝓓, q𝓓, q𝓓, qD, qD);
+Test_N(q𝓔, q𝓔, q𝓔, qE, qE);
+Test_N(q𝓕, q𝓕, q𝓕, qF, qF);
+Test_N(q𝓖, q𝓖, q𝓖, qG, qG);
+Test_N(q𝓗, q𝓗, q𝓗, qH, qH);
+Test_N(q𝓘, q𝓘, q𝓘, qI, qI);
+Test_N(q𝓙, q𝓙, q𝓙, qJ, qJ);
+Test_N(q𝓚, q𝓚, q𝓚, qK, qK);
+Test_N(q𝓛, q𝓛, q𝓛, qL, qL);
+Test_N(q𝓜, q𝓜, q𝓜, qM, qM);
+Test_N(q𝓝, q𝓝, q𝓝, qN, qN);
+Test_N(q𝓞, q𝓞, q𝓞, qO, qO);
+Test_N(q𝓟, q𝓟, q𝓟, qP, qP);
+Test_N(q𝓠, q𝓠, q𝓠, qQ, qQ);
+Test_N(q𝓡, q𝓡, q𝓡, qR, qR);
+Test_N(q𝓢, q𝓢, q𝓢, qS, qS);
+Test_N(q𝓣, q𝓣, q𝓣, qT, qT);
+Test_N(q𝓤, q𝓤, q𝓤, qU, qU);
+Test_N(q𝓥, q𝓥, q𝓥, qV, qV);
+Test_N(q𝓦, q𝓦, q𝓦, qW, qW);
+Test_N(q𝓧, q𝓧, q𝓧, qX, qX);
+Test_N(q𝓨, q𝓨, q𝓨, qY, qY);
+Test_N(q𝓩, q𝓩, q𝓩, qZ, qZ);
+Test_N(q𝓪, q𝓪, q𝓪, qa, qa);
+Test_N(q𝓫, q𝓫, q𝓫, qb, qb);
+Test_N(q𝓬, q𝓬, q𝓬, qc, qc);
+Test_N(q𝓭, q𝓭, q𝓭, qd, qd);
+Test_N(q𝓮, q𝓮, q𝓮, qe, qe);
+Test_N(q𝓯, q𝓯, q𝓯, qf, qf);
+Test_N(q𝓰, q𝓰, q𝓰, qg, qg);
+Test_N(q𝓱, q𝓱, q𝓱, qh, qh);
+Test_N(q𝓲, q𝓲, q𝓲, qi, qi);
+Test_N(q𝓳, q𝓳, q𝓳, qj, qj);
+Test_N(q𝓴, q𝓴, q𝓴, qk, qk);
+Test_N(q𝓵, q𝓵, q𝓵, ql, ql);
+Test_N(q𝓶, q𝓶, q𝓶, qm, qm);
+Test_N(q𝓷, q𝓷, q𝓷, qn, qn);
+Test_N(q𝓸, q𝓸, q𝓸, qo, qo);
+Test_N(q𝓹, q𝓹, q𝓹, qp, qp);
+Test_N(q𝓺, q𝓺, q𝓺, qq, qq);
+Test_N(q𝓻, q𝓻, q𝓻, qr, qr);
+Test_N(q𝓼, q𝓼, q𝓼, qs, qs);
+Test_N(q𝓽, q𝓽, q𝓽, qt, qt);
+Test_N(q𝓾, q𝓾, q𝓾, qu, qu);
+Test_N(q𝓿, q𝓿, q𝓿, qv, qv);
+Test_N(q𝔀, q𝔀, q𝔀, qw, qw);
+Test_N(q𝔁, q𝔁, q𝔁, qx, qx);
+Test_N(q𝔂, q𝔂, q𝔂, qy, qy);
+Test_N(q𝔃, q𝔃, q𝔃, qz, qz);
+Test_N(q𝔄, q𝔄, q𝔄, qA, qA);
+Test_N(q𝔅, q𝔅, q𝔅, qB, qB);
+Test_N(q𝔇, q𝔇, q𝔇, qD, qD);
+Test_N(q𝔈, q𝔈, q𝔈, qE, qE);
+Test_N(q𝔉, q𝔉, q𝔉, qF, qF);
+Test_N(q𝔊, q𝔊, q𝔊, qG, qG);
+Test_N(q𝔍, q𝔍, q𝔍, qJ, qJ);
+Test_N(q𝔎, q𝔎, q𝔎, qK, qK);
+Test_N(q𝔏, q𝔏, q𝔏, qL, qL);
+Test_N(q𝔐, q𝔐, q𝔐, qM, qM);
+Test_N(q𝔑, q𝔑, q𝔑, qN, qN);
+Test_N(q𝔒, q𝔒, q𝔒, qO, qO);
+Test_N(q𝔓, q𝔓, q𝔓, qP, qP);
+Test_N(q𝔔, q𝔔, q𝔔, qQ, qQ);
+Test_N(q𝔖, q𝔖, q𝔖, qS, qS);
+Test_N(q𝔗, q𝔗, q𝔗, qT, qT);
+Test_N(q𝔘, q𝔘, q𝔘, qU, qU);
+Test_N(q𝔙, q𝔙, q𝔙, qV, qV);
+Test_N(q𝔚, q𝔚, q𝔚, qW, qW);
+Test_N(q𝔛, q𝔛, q𝔛, qX, qX);
+Test_N(q𝔜, q𝔜, q𝔜, qY, qY);
+Test_N(q𝔞, q𝔞, q𝔞, qa, qa);
+Test_N(q𝔟, q𝔟, q𝔟, qb, qb);
+Test_N(q𝔠, q𝔠, q𝔠, qc, qc);
+Test_N(q𝔡, q𝔡, q𝔡, qd, qd);
+Test_N(q𝔢, q𝔢, q𝔢, qe, qe);
+Test_N(q𝔣, q𝔣, q𝔣, qf, qf);
+Test_N(q𝔤, q𝔤, q𝔤, qg, qg);
+Test_N(q𝔥, q𝔥, q𝔥, qh, qh);
+Test_N(q𝔦, q𝔦, q𝔦, qi, qi);
+Test_N(q𝔧, q𝔧, q𝔧, qj, qj);
+Test_N(q𝔨, q𝔨, q𝔨, qk, qk);
+Test_N(q𝔩, q𝔩, q𝔩, ql, ql);
+Test_N(q𝔪, q𝔪, q𝔪, qm, qm);
+Test_N(q𝔫, q𝔫, q𝔫, qn, qn);
+Test_N(q𝔬, q𝔬, q𝔬, qo, qo);
+Test_N(q𝔭, q𝔭, q𝔭, qp, qp);
+Test_N(q𝔮, q𝔮, q𝔮, qq, qq);
+Test_N(q𝔯, q𝔯, q𝔯, qr, qr);
+Test_N(q𝔰, q𝔰, q𝔰, qs, qs);
+Test_N(q𝔱, q𝔱, q𝔱, qt, qt);
+Test_N(q𝔲, q𝔲, q𝔲, qu, qu);
+Test_N(q𝔳, q𝔳, q𝔳, qv, qv);
+Test_N(q𝔴, q𝔴, q𝔴, qw, qw);
+Test_N(q𝔵, q𝔵, q𝔵, qx, qx);
+Test_N(q𝔶, q𝔶, q𝔶, qy, qy);
+Test_N(q𝔷, q𝔷, q𝔷, qz, qz);
+Test_N(q𝔸, q𝔸, q𝔸, qA, qA);
+Test_N(q𝔹, q𝔹, q𝔹, qB, qB);
+Test_N(q𝔻, q𝔻, q𝔻, qD, qD);
+Test_N(q𝔼, q𝔼, q𝔼, qE, qE);
+Test_N(q𝔽, q𝔽, q𝔽, qF, qF);
+Test_N(q𝔾, q𝔾, q𝔾, qG, qG);
+Test_N(q𝕀, q𝕀, q𝕀, qI, qI);
+Test_N(q𝕁, q𝕁, q𝕁, qJ, qJ);
+Test_N(q𝕂, q𝕂, q𝕂, qK, qK);
+Test_N(q𝕃, q𝕃, q𝕃, qL, qL);
+Test_N(q𝕄, q𝕄, q𝕄, qM, qM);
+Test_N(q𝕆, q𝕆, q𝕆, qO, qO);
+Test_N(q𝕊, q𝕊, q𝕊, qS, qS);
+Test_N(q𝕋, q𝕋, q𝕋, qT, qT);
+Test_N(q𝕌, q𝕌, q𝕌, qU, qU);
+Test_N(q𝕍, q𝕍, q𝕍, qV, qV);
+Test_N(q𝕎, q𝕎, q𝕎, qW, qW);
+Test_N(q𝕏, q𝕏, q𝕏, qX, qX);
+Test_N(q𝕐, q𝕐, q𝕐, qY, qY);
+Test_N(q𝕒, q𝕒, q𝕒, qa, qa);
+Test_N(q𝕓, q𝕓, q𝕓, qb, qb);
+Test_N(q𝕔, q𝕔, q𝕔, qc, qc);
+Test_N(q𝕕, q𝕕, q𝕕, qd, qd);
+Test_N(q𝕖, q𝕖, q𝕖, qe, qe);
+Test_N(q𝕗, q𝕗, q𝕗, qf, qf);
+Test_N(q𝕘, q𝕘, q𝕘, qg, qg);
+Test_N(q𝕙, q𝕙, q𝕙, qh, qh);
+Test_N(q𝕚, q𝕚, q𝕚, qi, qi);
+Test_N(q𝕛, q𝕛, q𝕛, qj, qj);
+Test_N(q𝕜, q𝕜, q𝕜, qk, qk);
+Test_N(q𝕝, q𝕝, q𝕝, ql, ql);
+Test_N(q𝕞, q𝕞, q𝕞, qm, qm);
+Test_N(q𝕟, q𝕟, q𝕟, qn, qn);
+Test_N(q𝕠, q𝕠, q𝕠, qo, qo);
+Test_N(q𝕡, q𝕡, q𝕡, qp, qp);
+Test_N(q𝕢, q𝕢, q𝕢, qq, qq);
+Test_N(q𝕣, q𝕣, q𝕣, qr, qr);
+Test_N(q𝕤, q𝕤, q𝕤, qs, qs);
+Test_N(q𝕥, q𝕥, q𝕥, qt, qt);
+Test_N(q𝕦, q𝕦, q𝕦, qu, qu);
+Test_N(q𝕧, q𝕧, q𝕧, qv, qv);
+Test_N(q𝕨, q𝕨, q𝕨, qw, qw);
+Test_N(q𝕩, q𝕩, q𝕩, qx, qx);
+Test_N(q𝕪, q𝕪, q𝕪, qy, qy);
+Test_N(q𝕫, q𝕫, q𝕫, qz, qz);
+Test_N(q𝕬, q𝕬, q𝕬, qA, qA);
+Test_N(q𝕭, q𝕭, q𝕭, qB, qB);
+Test_N(q𝕮, q𝕮, q𝕮, qC, qC);
+Test_N(q𝕯, q𝕯, q𝕯, qD, qD);
+Test_N(q𝕰, q𝕰, q𝕰, qE, qE);
+Test_N(q𝕱, q𝕱, q𝕱, qF, qF);
+Test_N(q𝕲, q𝕲, q𝕲, qG, qG);
+Test_N(q𝕳, q𝕳, q𝕳, qH, qH);
+Test_N(q𝕴, q𝕴, q𝕴, qI, qI);
+Test_N(q𝕵, q𝕵, q𝕵, qJ, qJ);
+Test_N(q𝕶, q𝕶, q𝕶, qK, qK);
+Test_N(q𝕷, q𝕷, q𝕷, qL, qL);
+Test_N(q𝕸, q𝕸, q𝕸, qM, qM);
+Test_N(q𝕹, q𝕹, q𝕹, qN, qN);
+Test_N(q𝕺, q𝕺, q𝕺, qO, qO);
+Test_N(q𝕻, q𝕻, q𝕻, qP, qP);
+Test_N(q𝕼, q𝕼, q𝕼, qQ, qQ);
+Test_N(q𝕽, q𝕽, q𝕽, qR, qR);
+Test_N(q𝕾, q𝕾, q𝕾, qS, qS);
+Test_N(q𝕿, q𝕿, q𝕿, qT, qT);
+Test_N(q𝖀, q𝖀, q𝖀, qU, qU);
+Test_N(q𝖁, q𝖁, q𝖁, qV, qV);
+Test_N(q𝖂, q𝖂, q𝖂, qW, qW);
+Test_N(q𝖃, q𝖃, q𝖃, qX, qX);
+Test_N(q𝖄, q𝖄, q𝖄, qY, qY);
+Test_N(q𝖅, q𝖅, q𝖅, qZ, qZ);
+Test_N(q𝖆, q𝖆, q𝖆, qa, qa);
+Test_N(q𝖇, q𝖇, q𝖇, qb, qb);
+Test_N(q𝖈, q𝖈, q𝖈, qc, qc);
+Test_N(q𝖉, q𝖉, q𝖉, qd, qd);
+Test_N(q𝖊, q𝖊, q𝖊, qe, qe);
+Test_N(q𝖋, q𝖋, q𝖋, qf, qf);
+Test_N(q𝖌, q𝖌, q𝖌, qg, qg);
+Test_N(q𝖍, q𝖍, q𝖍, qh, qh);
+Test_N(q𝖎, q𝖎, q𝖎, qi, qi);
+Test_N(q𝖏, q𝖏, q𝖏, qj, qj);
+Test_N(q𝖐, q𝖐, q𝖐, qk, qk);
+Test_N(q𝖑, q𝖑, q𝖑, ql, ql);
+Test_N(q𝖒, q𝖒, q𝖒, qm, qm);
+Test_N(q𝖓, q𝖓, q𝖓, qn, qn);
+Test_N(q𝖔, q𝖔, q𝖔, qo, qo);
+Test_N(q𝖕, q𝖕, q𝖕, qp, qp);
+Test_N(q𝖖, q𝖖, q𝖖, qq, qq);
+Test_N(q𝖗, q𝖗, q𝖗, qr, qr);
+Test_N(q𝖘, q𝖘, q𝖘, qs, qs);
+Test_N(q𝖙, q𝖙, q𝖙, qt, qt);
+Test_N(q𝖚, q𝖚, q𝖚, qu, qu);
+Test_N(q𝖛, q𝖛, q𝖛, qv, qv);
+Test_N(q𝖜, q𝖜, q𝖜, qw, qw);
+Test_N(q𝖝, q𝖝, q𝖝, qx, qx);
+Test_N(q𝖞, q𝖞, q𝖞, qy, qy);
+Test_N(q𝖟, q𝖟, q𝖟, qz, qz);
+Test_N(q𝖠, q𝖠, q𝖠, qA, qA);
+Test_N(q𝖡, q𝖡, q𝖡, qB, qB);
+Test_N(q𝖢, q𝖢, q𝖢, qC, qC);
+Test_N(q𝖣, q𝖣, q𝖣, qD, qD);
+Test_N(q𝖤, q𝖤, q𝖤, qE, qE);
+Test_N(q𝖥, q𝖥, q𝖥, qF, qF);
+Test_N(q𝖦, q𝖦, q𝖦, qG, qG);
+Test_N(q𝖧, q𝖧, q𝖧, qH, qH);
+Test_N(q𝖨, q𝖨, q𝖨, qI, qI);
+Test_N(q𝖩, q𝖩, q𝖩, qJ, qJ);
+Test_N(q𝖪, q𝖪, q𝖪, qK, qK);
+Test_N(q𝖫, q𝖫, q𝖫, qL, qL);
+Test_N(q𝖬, q𝖬, q𝖬, qM, qM);
+Test_N(q𝖭, q𝖭, q𝖭, qN, qN);
+Test_N(q𝖮, q𝖮, q𝖮, qO, qO);
+Test_N(q𝖯, q𝖯, q𝖯, qP, qP);
+Test_N(q𝖰, q𝖰, q𝖰, qQ, qQ);
+Test_N(q𝖱, q𝖱, q𝖱, qR, qR);
+Test_N(q𝖲, q𝖲, q𝖲, qS, qS);
+Test_N(q𝖳, q𝖳, q𝖳, qT, qT);
+Test_N(q𝖴, q𝖴, q𝖴, qU, qU);
+Test_N(q𝖵, q𝖵, q𝖵, qV, qV);
+Test_N(q𝖶, q𝖶, q𝖶, qW, qW);
+Test_N(q𝖷, q𝖷, q𝖷, qX, qX);
+Test_N(q𝖸, q𝖸, q𝖸, qY, qY);
+Test_N(q𝖹, q𝖹, q𝖹, qZ, qZ);
+Test_N(q𝖺, q𝖺, q𝖺, qa, qa);
+Test_N(q𝖻, q𝖻, q𝖻, qb, qb);
+Test_N(q𝖼, q𝖼, q𝖼, qc, qc);
+Test_N(q𝖽, q𝖽, q𝖽, qd, qd);
+Test_N(q𝖾, q𝖾, q𝖾, qe, qe);
+Test_N(q𝖿, q𝖿, q𝖿, qf, qf);
+Test_N(q𝗀, q𝗀, q𝗀, qg, qg);
+Test_N(q𝗁, q𝗁, q𝗁, qh, qh);
+Test_N(q𝗂, q𝗂, q𝗂, qi, qi);
+Test_N(q𝗃, q𝗃, q𝗃, qj, qj);
+Test_N(q𝗄, q𝗄, q𝗄, qk, qk);
+Test_N(q𝗅, q𝗅, q𝗅, ql, ql);
+Test_N(q𝗆, q𝗆, q𝗆, qm, qm);
+Test_N(q𝗇, q𝗇, q𝗇, qn, qn);
+Test_N(q𝗈, q𝗈, q𝗈, qo, qo);
+Test_N(q𝗉, q𝗉, q𝗉, qp, qp);
+Test_N(q𝗊, q𝗊, q𝗊, qq, qq);
+Test_N(q𝗋, q𝗋, q𝗋, qr, qr);
+Test_N(q𝗌, q𝗌, q𝗌, qs, qs);
+Test_N(q𝗍, q𝗍, q𝗍, qt, qt);
+Test_N(q𝗎, q𝗎, q𝗎, qu, qu);
+Test_N(q𝗏, q𝗏, q𝗏, qv, qv);
+Test_N(q𝗐, q𝗐, q𝗐, qw, qw);
+Test_N(q𝗑, q𝗑, q𝗑, qx, qx);
+Test_N(q𝗒, q𝗒, q𝗒, qy, qy);
+Test_N(q𝗓, q𝗓, q𝗓, qz, qz);
+Test_N(q𝗔, q𝗔, q𝗔, qA, qA);
+Test_N(q𝗕, q𝗕, q𝗕, qB, qB);
+Test_N(q𝗖, q𝗖, q𝗖, qC, qC);
+Test_N(q𝗗, q𝗗, q𝗗, qD, qD);
+Test_N(q𝗘, q𝗘, q𝗘, qE, qE);
+Test_N(q𝗙, q𝗙, q𝗙, qF, qF);
+Test_N(q𝗚, q𝗚, q𝗚, qG, qG);
+Test_N(q𝗛, q𝗛, q𝗛, qH, qH);
+Test_N(q𝗜, q𝗜, q𝗜, qI, qI);
+Test_N(q𝗝, q𝗝, q𝗝, qJ, qJ);
+Test_N(q𝗞, q𝗞, q𝗞, qK, qK);
+Test_N(q𝗟, q𝗟, q𝗟, qL, qL);
+Test_N(q𝗠, q𝗠, q𝗠, qM, qM);
+Test_N(q𝗡, q𝗡, q𝗡, qN, qN);
+Test_N(q𝗢, q𝗢, q𝗢, qO, qO);
+Test_N(q𝗣, q𝗣, q𝗣, qP, qP);
+Test_N(q𝗤, q𝗤, q𝗤, qQ, qQ);
+Test_N(q𝗥, q𝗥, q𝗥, qR, qR);
+Test_N(q𝗦, q𝗦, q𝗦, qS, qS);
+Test_N(q𝗧, q𝗧, q𝗧, qT, qT);
+Test_N(q𝗨, q𝗨, q𝗨, qU, qU);
+Test_N(q𝗩, q𝗩, q𝗩, qV, qV);
+Test_N(q𝗪, q𝗪, q𝗪, qW, qW);
+Test_N(q𝗫, q𝗫, q𝗫, qX, qX);
+Test_N(q𝗬, q𝗬, q𝗬, qY, qY);
+Test_N(q𝗭, q𝗭, q𝗭, qZ, qZ);
+Test_N(q𝗮, q𝗮, q𝗮, qa, qa);
+Test_N(q𝗯, q𝗯, q𝗯, qb, qb);
+Test_N(q𝗰, q𝗰, q𝗰, qc, qc);
+Test_N(q𝗱, q𝗱, q𝗱, qd, qd);
+Test_N(q𝗲, q𝗲, q𝗲, qe, qe);
+Test_N(q𝗳, q𝗳, q𝗳, qf, qf);
+Test_N(q𝗴, q𝗴, q𝗴, qg, qg);
+Test_N(q𝗵, q𝗵, q𝗵, qh, qh);
+Test_N(q𝗶, q𝗶, q𝗶, qi, qi);
+Test_N(q𝗷, q𝗷, q𝗷, qj, qj);
+Test_N(q𝗸, q𝗸, q𝗸, qk, qk);
+Test_N(q𝗹, q𝗹, q𝗹, ql, ql);
+Test_N(q𝗺, q𝗺, q𝗺, qm, qm);
+Test_N(q𝗻, q𝗻, q𝗻, qn, qn);
+Test_N(q𝗼, q𝗼, q𝗼, qo, qo);
+Test_N(q𝗽, q𝗽, q𝗽, qp, qp);
+Test_N(q𝗾, q𝗾, q𝗾, qq, qq);
+Test_N(q𝗿, q𝗿, q𝗿, qr, qr);
+Test_N(q𝘀, q𝘀, q𝘀, qs, qs);
+Test_N(q𝘁, q𝘁, q𝘁, qt, qt);
+Test_N(q𝘂, q𝘂, q𝘂, qu, qu);
+Test_N(q𝘃, q𝘃, q𝘃, qv, qv);
+Test_N(q𝘄, q𝘄, q𝘄, qw, qw);
+Test_N(q𝘅, q𝘅, q𝘅, qx, qx);
+Test_N(q𝘆, q𝘆, q𝘆, qy, qy);
+Test_N(q𝘇, q𝘇, q𝘇, qz, qz);
+Test_N(q𝘈, q𝘈, q𝘈, qA, qA);
+Test_N(q𝘉, q𝘉, q𝘉, qB, qB);
+Test_N(q𝘊, q𝘊, q𝘊, qC, qC);
+Test_N(q𝘋, q𝘋, q𝘋, qD, qD);
+Test_N(q𝘌, q𝘌, q𝘌, qE, qE);
+Test_N(q𝘍, q𝘍, q𝘍, qF, qF);
+Test_N(q𝘎, q𝘎, q𝘎, qG, qG);
+Test_N(q𝘏, q𝘏, q𝘏, qH, qH);
+Test_N(q𝘐, q𝘐, q𝘐, qI, qI);
+Test_N(q𝘑, q𝘑, q𝘑, qJ, qJ);
+Test_N(q𝘒, q𝘒, q𝘒, qK, qK);
+Test_N(q𝘓, q𝘓, q𝘓, qL, qL);
+Test_N(q𝘔, q𝘔, q𝘔, qM, qM);
+Test_N(q𝘕, q𝘕, q𝘕, qN, qN);
+Test_N(q𝘖, q𝘖, q𝘖, qO, qO);
+Test_N(q𝘗, q𝘗, q𝘗, qP, qP);
+Test_N(q𝘘, q𝘘, q𝘘, qQ, qQ);
+Test_N(q𝘙, q𝘙, q𝘙, qR, qR);
+Test_N(q𝘚, q𝘚, q𝘚, qS, qS);
+Test_N(q𝘛, q𝘛, q𝘛, qT, qT);
+Test_N(q𝘜, q𝘜, q𝘜, qU, qU);
+Test_N(q𝘝, q𝘝, q𝘝, qV, qV);
+Test_N(q𝘞, q𝘞, q𝘞, qW, qW);
+Test_N(q𝘟, q𝘟, q𝘟, qX, qX);
+Test_N(q𝘠, q𝘠, q𝘠, qY, qY);
+Test_N(q𝘡, q𝘡, q𝘡, qZ, qZ);
+Test_N(q𝘢, q𝘢, q𝘢, qa, qa);
+Test_N(q𝘣, q𝘣, q𝘣, qb, qb);
+Test_N(q𝘤, q𝘤, q𝘤, qc, qc);
+Test_N(q𝘥, q𝘥, q𝘥, qd, qd);
+Test_N(q𝘦, q𝘦, q𝘦, qe, qe);
+Test_N(q𝘧, q𝘧, q𝘧, qf, qf);
+Test_N(q𝘨, q𝘨, q𝘨, qg, qg);
+Test_N(q𝘩, q𝘩, q𝘩, qh, qh);
+Test_N(q𝘪, q𝘪, q𝘪, qi, qi);
+Test_N(q𝘫, q𝘫, q𝘫, qj, qj);
+Test_N(q𝘬, q𝘬, q𝘬, qk, qk);
+Test_N(q𝘭, q𝘭, q𝘭, ql, ql);
+Test_N(q𝘮, q𝘮, q𝘮, qm, qm);
+Test_N(q𝘯, q𝘯, q𝘯, qn, qn);
+Test_N(q𝘰, q𝘰, q𝘰, qo, qo);
+Test_N(q𝘱, q𝘱, q𝘱, qp, qp);
+Test_N(q𝘲, q𝘲, q𝘲, qq, qq);
+Test_N(q𝘳, q𝘳, q𝘳, qr, qr);
+Test_N(q𝘴, q𝘴, q𝘴, qs, qs);
+Test_N(q𝘵, q𝘵, q𝘵, qt, qt);
+Test_N(q𝘶, q𝘶, q𝘶, qu, qu);
+Test_N(q𝘷, q𝘷, q𝘷, qv, qv);
+Test_N(q𝘸, q𝘸, q𝘸, qw, qw);
+Test_N(q𝘹, q𝘹, q𝘹, qx, qx);
+Test_N(q𝘺, q𝘺, q𝘺, qy, qy);
+Test_N(q𝘻, q𝘻, q𝘻, qz, qz);
+Test_N(q𝘼, q𝘼, q𝘼, qA, qA);
+Test_N(q𝘽, q𝘽, q𝘽, qB, qB);
+Test_N(q𝘾, q𝘾, q𝘾, qC, qC);
+Test_N(q𝘿, q𝘿, q𝘿, qD, qD);
+Test_N(q𝙀, q𝙀, q𝙀, qE, qE);
+Test_N(q𝙁, q𝙁, q𝙁, qF, qF);
+Test_N(q𝙂, q𝙂, q𝙂, qG, qG);
+Test_N(q𝙃, q𝙃, q𝙃, qH, qH);
+Test_N(q𝙄, q𝙄, q𝙄, qI, qI);
+Test_N(q𝙅, q𝙅, q𝙅, qJ, qJ);
+Test_N(q𝙆, q𝙆, q𝙆, qK, qK);
+Test_N(q𝙇, q𝙇, q𝙇, qL, qL);
+Test_N(q𝙈, q𝙈, q𝙈, qM, qM);
+Test_N(q𝙉, q𝙉, q𝙉, qN, qN);
+Test_N(q𝙊, q𝙊, q𝙊, qO, qO);
+Test_N(q𝙋, q𝙋, q𝙋, qP, qP);
+Test_N(q𝙌, q𝙌, q𝙌, qQ, qQ);
+Test_N(q𝙍, q𝙍, q𝙍, qR, qR);
+Test_N(q𝙎, q𝙎, q𝙎, qS, qS);
+Test_N(q𝙏, q𝙏, q𝙏, qT, qT);
+Test_N(q𝙐, q𝙐, q𝙐, qU, qU);
+Test_N(q𝙑, q𝙑, q𝙑, qV, qV);
+Test_N(q𝙒, q𝙒, q𝙒, qW, qW);
+Test_N(q𝙓, q𝙓, q𝙓, qX, qX);
+Test_N(q𝙔, q𝙔, q𝙔, qY, qY);
+Test_N(q𝙕, q𝙕, q𝙕, qZ, qZ);
+Test_N(q𝙖, q𝙖, q𝙖, qa, qa);
+Test_N(q𝙗, q𝙗, q𝙗, qb, qb);
+Test_N(q𝙘, q𝙘, q𝙘, qc, qc);
+Test_N(q𝙙, q𝙙, q𝙙, qd, qd);
+Test_N(q𝙚, q𝙚, q𝙚, qe, qe);
+Test_N(q𝙛, q𝙛, q𝙛, qf, qf);
+Test_N(q𝙜, q𝙜, q𝙜, qg, qg);
+Test_N(q𝙝, q𝙝, q𝙝, qh, qh);
+Test_N(q𝙞, q𝙞, q𝙞, qi, qi);
+Test_N(q𝙟, q𝙟, q𝙟, qj, qj);
+Test_N(q𝙠, q𝙠, q𝙠, qk, qk);
+Test_N(q𝙡, q𝙡, q𝙡, ql, ql);
+Test_N(q𝙢, q𝙢, q𝙢, qm, qm);
+Test_N(q𝙣, q𝙣, q𝙣, qn, qn);
+Test_N(q𝙤, q𝙤, q𝙤, qo, qo);
+Test_N(q𝙥, q𝙥, q𝙥, qp, qp);
+Test_N(q𝙦, q𝙦, q𝙦, qq, qq);
+Test_N(q𝙧, q𝙧, q𝙧, qr, qr);
+Test_N(q𝙨, q𝙨, q𝙨, qs, qs);
+Test_N(q𝙩, q𝙩, q𝙩, qt, qt);
+Test_N(q𝙪, q𝙪, q𝙪, qu, qu);
+Test_N(q𝙫, q𝙫, q𝙫, qv, qv);
+Test_N(q𝙬, q𝙬, q𝙬, qw, qw);
+Test_N(q𝙭, q𝙭, q𝙭, qx, qx);
+Test_N(q𝙮, q𝙮, q𝙮, qy, qy);
+Test_N(q𝙯, q𝙯, q𝙯, qz, qz);
+Test_N(q𝙰, q𝙰, q𝙰, qA, qA);
+Test_N(q𝙱, q𝙱, q𝙱, qB, qB);
+Test_N(q𝙲, q𝙲, q𝙲, qC, qC);
+Test_N(q𝙳, q𝙳, q𝙳, qD, qD);
+Test_N(q𝙴, q𝙴, q𝙴, qE, qE);
+Test_N(q𝙵, q𝙵, q𝙵, qF, qF);
+Test_N(q𝙶, q𝙶, q𝙶, qG, qG);
+Test_N(q𝙷, q𝙷, q𝙷, qH, qH);
+Test_N(q𝙸, q𝙸, q𝙸, qI, qI);
+Test_N(q𝙹, q𝙹, q𝙹, qJ, qJ);
+Test_N(q𝙺, q𝙺, q𝙺, qK, qK);
+Test_N(q𝙻, q𝙻, q𝙻, qL, qL);
+Test_N(q𝙼, q𝙼, q𝙼, qM, qM);
+Test_N(q𝙽, q𝙽, q𝙽, qN, qN);
+Test_N(q𝙾, q𝙾, q𝙾, qO, qO);
+Test_N(q𝙿, q𝙿, q𝙿, qP, qP);
+Test_N(q𝚀, q𝚀, q𝚀, qQ, qQ);
+Test_N(q𝚁, q𝚁, q𝚁, qR, qR);
+Test_N(q𝚂, q𝚂, q𝚂, qS, qS);
+Test_N(q𝚃, q𝚃, q𝚃, qT, qT);
+Test_N(q𝚄, q𝚄, q𝚄, qU, qU);
+Test_N(q𝚅, q𝚅, q𝚅, qV, qV);
+Test_N(q𝚆, q𝚆, q𝚆, qW, qW);
+Test_N(q𝚇, q𝚇, q𝚇, qX, qX);
+Test_N(q𝚈, q𝚈, q𝚈, qY, qY);
+Test_N(q𝚉, q𝚉, q𝚉, qZ, qZ);
+Test_N(q𝚊, q𝚊, q𝚊, qa, qa);
+Test_N(q𝚋, q𝚋, q𝚋, qb, qb);
+Test_N(q𝚌, q𝚌, q𝚌, qc, qc);
+Test_N(q𝚍, q𝚍, q𝚍, qd, qd);
+Test_N(q𝚎, q𝚎, q𝚎, qe, qe);
+Test_N(q𝚏, q𝚏, q𝚏, qf, qf);
+Test_N(q𝚐, q𝚐, q𝚐, qg, qg);
+Test_N(q𝚑, q𝚑, q𝚑, qh, qh);
+Test_N(q𝚒, q𝚒, q𝚒, qi, qi);
+Test_N(q𝚓, q𝚓, q𝚓, qj, qj);
+Test_N(q𝚔, q𝚔, q𝚔, qk, qk);
+Test_N(q𝚕, q𝚕, q𝚕, ql, ql);
+Test_N(q𝚖, q𝚖, q𝚖, qm, qm);
+Test_N(q𝚗, q𝚗, q𝚗, qn, qn);
+Test_N(q𝚘, q𝚘, q𝚘, qo, qo);
+Test_N(q𝚙, q𝚙, q𝚙, qp, qp);
+Test_N(q𝚚, q𝚚, q𝚚, qq, qq);
+Test_N(q𝚛, q𝚛, q𝚛, qr, qr);
+Test_N(q𝚜, q𝚜, q𝚜, qs, qs);
+Test_N(q𝚝, q𝚝, q𝚝, qt, qt);
+Test_N(q𝚞, q𝚞, q𝚞, qu, qu);
+Test_N(q𝚟, q𝚟, q𝚟, qv, qv);
+Test_N(q𝚠, q𝚠, q𝚠, qw, qw);
+Test_N(q𝚡, q𝚡, q𝚡, qx, qx);
+Test_N(q𝚢, q𝚢, q𝚢, qy, qy);
+Test_N(q𝚣, q𝚣, q𝚣, qz, qz);
+Test_N(q𝚤, q𝚤, q𝚤, qı, qı);
+Test_N(q𝚥, q𝚥, q𝚥, qȷ, qȷ);
+Test_N(q𝚨, q𝚨, q𝚨, qΑ, qΑ);
+Test_N(q𝚩, q𝚩, q𝚩, qΒ, qΒ);
+Test_N(q𝚪, q𝚪, q𝚪, qΓ, qΓ);
+Test_N(q𝚫, q𝚫, q𝚫, qΔ, qΔ);
+Test_N(q𝚬, q𝚬, q𝚬, qΕ, qΕ);
+Test_N(q𝚭, q𝚭, q𝚭, qΖ, qΖ);
+Test_N(q𝚮, q𝚮, q𝚮, qΗ, qΗ);
+Test_N(q𝚯, q𝚯, q𝚯, qΘ, qΘ);
+Test_N(q𝚰, q𝚰, q𝚰, qΙ, qΙ);
+Test_N(q𝚱, q𝚱, q𝚱, qΚ, qΚ);
+Test_N(q𝚲, q𝚲, q𝚲, qΛ, qΛ);
+Test_N(q𝚳, q𝚳, q𝚳, qΜ, qΜ);
+Test_N(q𝚴, q𝚴, q𝚴, qΝ, qΝ);
+Test_N(q𝚵, q𝚵, q𝚵, qΞ, qΞ);
+Test_N(q𝚶, q𝚶, q𝚶, qΟ, qΟ);
+Test_N(q𝚷, q𝚷, q𝚷, qΠ, qΠ);
+Test_N(q𝚸, q𝚸, q𝚸, qΡ, qΡ);
+Test_N(q𝚹, q𝚹, q𝚹, qΘ, qΘ);
+Test_N(q𝚺, q𝚺, q𝚺, qΣ, qΣ);
+Test_N(q𝚻, q𝚻, q𝚻, qΤ, qΤ);
+Test_N(q𝚼, q𝚼, q𝚼, qΥ, qΥ);
+Test_N(q𝚽, q𝚽, q𝚽, qΦ, qΦ);
+Test_N(q𝚾, q𝚾, q𝚾, qΧ, qΧ);
+Test_N(q𝚿, q𝚿, q𝚿, qΨ, qΨ);
+Test_N(q𝛀, q𝛀, q𝛀, qΩ, qΩ);
+Test_N(q𝛁, q𝛁, q𝛁, q∇, q∇);
+Test_N(q𝛂, q𝛂, q𝛂, qα, qα);
+Test_N(q𝛃, q𝛃, q𝛃, qβ, qβ);
+Test_N(q𝛄, q𝛄, q𝛄, qγ, qγ);
+Test_N(q𝛅, q𝛅, q𝛅, qδ, qδ);
+Test_N(q𝛆, q𝛆, q𝛆, qε, qε);
+Test_N(q𝛇, q𝛇, q𝛇, qζ, qζ);
+Test_N(q𝛈, q𝛈, q𝛈, qη, qη);
+Test_N(q𝛉, q𝛉, q𝛉, qθ, qθ);
+Test_N(q𝛊, q𝛊, q𝛊, qι, qι);
+Test_N(q𝛋, q𝛋, q𝛋, qκ, qκ);
+Test_N(q𝛌, q𝛌, q𝛌, qλ, qλ);
+Test_N(q𝛍, q𝛍, q𝛍, qμ, qμ);
+Test_N(q𝛎, q𝛎, q𝛎, qν, qν);
+Test_N(q𝛏, q𝛏, q𝛏, qξ, qξ);
+Test_N(q𝛐, q𝛐, q𝛐, qο, qο);
+Test_N(q𝛑, q𝛑, q𝛑, qπ, qπ);
+Test_N(q𝛒, q𝛒, q𝛒, qρ, qρ);
+Test_N(q𝛓, q𝛓, q𝛓, qς, qς);
+Test_N(q𝛔, q𝛔, q𝛔, qσ, qσ);
+Test_N(q𝛕, q𝛕, q𝛕, qτ, qτ);
+Test_N(q𝛖, q𝛖, q𝛖, qυ, qυ);
+Test_N(q𝛗, q𝛗, q𝛗, qφ, qφ);
+Test_N(q𝛘, q𝛘, q𝛘, qχ, qχ);
+Test_N(q𝛙, q𝛙, q𝛙, qψ, qψ);
+Test_N(q𝛚, q𝛚, q𝛚, qω, qω);
+Test_N(q𝛛, q𝛛, q𝛛, q∂, q∂);
+Test_N(q𝛜, q𝛜, q𝛜, qε, qε);
+Test_N(q𝛝, q𝛝, q𝛝, qθ, qθ);
+Test_N(q𝛞, q𝛞, q𝛞, qκ, qκ);
+Test_N(q𝛟, q𝛟, q𝛟, qφ, qφ);
+Test_N(q𝛠, q𝛠, q𝛠, qρ, qρ);
+Test_N(q𝛡, q𝛡, q𝛡, qπ, qπ);
+Test_N(q𝛢, q𝛢, q𝛢, qΑ, qΑ);
+Test_N(q𝛣, q𝛣, q𝛣, qΒ, qΒ);
+Test_N(q𝛤, q𝛤, q𝛤, qΓ, qΓ);
+Test_N(q𝛥, q𝛥, q𝛥, qΔ, qΔ);
+Test_N(q𝛦, q𝛦, q𝛦, qΕ, qΕ);
+Test_N(q𝛧, q𝛧, q𝛧, qΖ, qΖ);
+Test_N(q𝛨, q𝛨, q𝛨, qΗ, qΗ);
+Test_N(q𝛩, q𝛩, q𝛩, qΘ, qΘ);
+Test_N(q𝛪, q𝛪, q𝛪, qΙ, qΙ);
+Test_N(q𝛫, q𝛫, q𝛫, qΚ, qΚ);
+Test_N(q𝛬, q𝛬, q𝛬, qΛ, qΛ);
+Test_N(q𝛭, q𝛭, q𝛭, qΜ, qΜ);
+Test_N(q𝛮, q𝛮, q𝛮, qΝ, qΝ);
+Test_N(q𝛯, q𝛯, q𝛯, qΞ, qΞ);
+Test_N(q𝛰, q𝛰, q𝛰, qΟ, qΟ);
+Test_N(q𝛱, q𝛱, q𝛱, qΠ, qΠ);
+Test_N(q𝛲, q𝛲, q𝛲, qΡ, qΡ);
+Test_N(q𝛳, q𝛳, q𝛳, qΘ, qΘ);
+Test_N(q𝛴, q𝛴, q𝛴, qΣ, qΣ);
+Test_N(q𝛵, q𝛵, q𝛵, qΤ, qΤ);
+Test_N(q𝛶, q𝛶, q𝛶, qΥ, qΥ);
+Test_N(q𝛷, q𝛷, q𝛷, qΦ, qΦ);
+Test_N(q𝛸, q𝛸, q𝛸, qΧ, qΧ);
+Test_N(q𝛹, q𝛹, q𝛹, qΨ, qΨ);
+Test_N(q𝛺, q𝛺, q𝛺, qΩ, qΩ);
+Test_N(q𝛻, q𝛻, q𝛻, q∇, q∇);
+Test_N(q𝛼, q𝛼, q𝛼, qα, qα);
+Test_N(q𝛽, q𝛽, q𝛽, qβ, qβ);
+Test_N(q𝛾, q𝛾, q𝛾, qγ, qγ);
+Test_N(q𝛿, q𝛿, q𝛿, qδ, qδ);
+Test_N(q𝜀, q𝜀, q𝜀, qε, qε);
+Test_N(q𝜁, q𝜁, q𝜁, qζ, qζ);
+Test_N(q𝜂, q𝜂, q𝜂, qη, qη);
+Test_N(q𝜃, q𝜃, q𝜃, qθ, qθ);
+Test_N(q𝜄, q𝜄, q𝜄, qι, qι);
+Test_N(q𝜅, q𝜅, q𝜅, qκ, qκ);
+Test_N(q𝜆, q𝜆, q𝜆, qλ, qλ);
+Test_N(q𝜇, q𝜇, q𝜇, qμ, qμ);
+Test_N(q𝜈, q𝜈, q𝜈, qν, qν);
+Test_N(q𝜉, q𝜉, q𝜉, qξ, qξ);
+Test_N(q𝜊, q𝜊, q𝜊, qο, qο);
+Test_N(q𝜋, q𝜋, q𝜋, qπ, qπ);
+Test_N(q𝜌, q𝜌, q𝜌, qρ, qρ);
+Test_N(q𝜍, q𝜍, q𝜍, qς, qς);
+Test_N(q𝜎, q𝜎, q𝜎, qσ, qσ);
+Test_N(q𝜏, q𝜏, q𝜏, qτ, qτ);
+Test_N(q𝜐, q𝜐, q𝜐, qυ, qυ);
+Test_N(q𝜑, q𝜑, q𝜑, qφ, qφ);
+Test_N(q𝜒, q𝜒, q𝜒, qχ, qχ);
+Test_N(q𝜓, q𝜓, q𝜓, qψ, qψ);
+Test_N(q𝜔, q𝜔, q𝜔, qω, qω);
+Test_N(q𝜕, q𝜕, q𝜕, q∂, q∂);
+Test_N(q𝜖, q𝜖, q𝜖, qε, qε);
+Test_N(q𝜗, q𝜗, q𝜗, qθ, qθ);
+Test_N(q𝜘, q𝜘, q𝜘, qκ, qκ);
+Test_N(q𝜙, q𝜙, q𝜙, qφ, qφ);
+Test_N(q𝜚, q𝜚, q𝜚, qρ, qρ);
+Test_N(q𝜛, q𝜛, q𝜛, qπ, qπ);
+Test_N(q𝜜, q𝜜, q𝜜, qΑ, qΑ);
+Test_N(q𝜝, q𝜝, q𝜝, qΒ, qΒ);
+Test_N(q𝜞, q𝜞, q𝜞, qΓ, qΓ);
+Test_N(q𝜟, q𝜟, q𝜟, qΔ, qΔ);
+Test_N(q𝜠, q𝜠, q𝜠, qΕ, qΕ);
+Test_N(q𝜡, q𝜡, q𝜡, qΖ, qΖ);
+Test_N(q𝜢, q𝜢, q𝜢, qΗ, qΗ);
+Test_N(q𝜣, q𝜣, q𝜣, qΘ, qΘ);
+Test_N(q𝜤, q𝜤, q𝜤, qΙ, qΙ);
+Test_N(q𝜥, q𝜥, q𝜥, qΚ, qΚ);
+Test_N(q𝜦, q𝜦, q𝜦, qΛ, qΛ);
+Test_N(q𝜧, q𝜧, q𝜧, qΜ, qΜ);
+Test_N(q𝜨, q𝜨, q𝜨, qΝ, qΝ);
+Test_N(q𝜩, q𝜩, q𝜩, qΞ, qΞ);
+Test_N(q𝜪, q𝜪, q𝜪, qΟ, qΟ);
+Test_N(q𝜫, q𝜫, q𝜫, qΠ, qΠ);
+Test_N(q𝜬, q𝜬, q𝜬, qΡ, qΡ);
+Test_N(q𝜭, q𝜭, q𝜭, qΘ, qΘ);
+Test_N(q𝜮, q𝜮, q𝜮, qΣ, qΣ);
+Test_N(q𝜯, q𝜯, q𝜯, qΤ, qΤ);
+Test_N(q𝜰, q𝜰, q𝜰, qΥ, qΥ);
+Test_N(q𝜱, q𝜱, q𝜱, qΦ, qΦ);
+Test_N(q𝜲, q𝜲, q𝜲, qΧ, qΧ);
+Test_N(q𝜳, q𝜳, q𝜳, qΨ, qΨ);
+Test_N(q𝜴, q𝜴, q𝜴, qΩ, qΩ);
+Test_N(q𝜵, q𝜵, q𝜵, q∇, q∇);
+Test_N(q𝜶, q𝜶, q𝜶, qα, qα);
+Test_N(q𝜷, q𝜷, q𝜷, qβ, qβ);
+Test_N(q𝜸, q𝜸, q𝜸, qγ, qγ);
+Test_N(q𝜹, q𝜹, q𝜹, qδ, qδ);
+Test_N(q𝜺, q𝜺, q𝜺, qε, qε);
+Test_N(q𝜻, q𝜻, q𝜻, qζ, qζ);
+Test_N(q𝜼, q𝜼, q𝜼, qη, qη);
+Test_N(q𝜽, q𝜽, q𝜽, qθ, qθ);
+Test_N(q𝜾, q𝜾, q𝜾, qι, qι);
+Test_N(q𝜿, q𝜿, q𝜿, qκ, qκ);
+Test_N(q𝝀, q𝝀, q𝝀, qλ, qλ);
+Test_N(q𝝁, q𝝁, q𝝁, qμ, qμ);
+Test_N(q𝝂, q𝝂, q𝝂, qν, qν);
+Test_N(q𝝃, q𝝃, q𝝃, qξ, qξ);
+Test_N(q𝝄, q𝝄, q𝝄, qο, qο);
+Test_N(q𝝅, q𝝅, q𝝅, qπ, qπ);
+Test_N(q𝝆, q𝝆, q𝝆, qρ, qρ);
+Test_N(q𝝇, q𝝇, q𝝇, qς, qς);
+Test_N(q𝝈, q𝝈, q𝝈, qσ, qσ);
+Test_N(q𝝉, q𝝉, q𝝉, qτ, qτ);
+Test_N(q𝝊, q𝝊, q𝝊, qυ, qυ);
+Test_N(q𝝋, q𝝋, q𝝋, qφ, qφ);
+Test_N(q𝝌, q𝝌, q𝝌, qχ, qχ);
+Test_N(q𝝍, q𝝍, q𝝍, qψ, qψ);
+Test_N(q𝝎, q𝝎, q𝝎, qω, qω);
+Test_N(q𝝏, q𝝏, q𝝏, q∂, q∂);
+Test_N(q𝝐, q𝝐, q𝝐, qε, qε);
+Test_N(q𝝑, q𝝑, q𝝑, qθ, qθ);
+Test_N(q𝝒, q𝝒, q𝝒, qκ, qκ);
+Test_N(q𝝓, q𝝓, q𝝓, qφ, qφ);
+Test_N(q𝝔, q𝝔, q𝝔, qρ, qρ);
+Test_N(q𝝕, q𝝕, q𝝕, qπ, qπ);
+Test_N(q𝝖, q𝝖, q𝝖, qΑ, qΑ);
+Test_N(q𝝗, q𝝗, q𝝗, qΒ, qΒ);
+Test_N(q𝝘, q𝝘, q𝝘, qΓ, qΓ);
+Test_N(q𝝙, q𝝙, q𝝙, qΔ, qΔ);
+Test_N(q𝝚, q𝝚, q𝝚, qΕ, qΕ);
+Test_N(q𝝛, q𝝛, q𝝛, qΖ, qΖ);
+Test_N(q𝝜, q𝝜, q𝝜, qΗ, qΗ);
+Test_N(q𝝝, q𝝝, q𝝝, qΘ, qΘ);
+Test_N(q𝝞, q𝝞, q𝝞, qΙ, qΙ);
+Test_N(q𝝟, q𝝟, q𝝟, qΚ, qΚ);
+Test_N(q𝝠, q𝝠, q𝝠, qΛ, qΛ);
+Test_N(q𝝡, q𝝡, q𝝡, qΜ, qΜ);
+Test_N(q𝝢, q𝝢, q𝝢, qΝ, qΝ);
+Test_N(q𝝣, q𝝣, q𝝣, qΞ, qΞ);
+Test_N(q𝝤, q𝝤, q𝝤, qΟ, qΟ);
+Test_N(q𝝥, q𝝥, q𝝥, qΠ, qΠ);
+Test_N(q𝝦, q𝝦, q𝝦, qΡ, qΡ);
+Test_N(q𝝧, q𝝧, q𝝧, qΘ, qΘ);
+Test_N(q𝝨, q𝝨, q𝝨, qΣ, qΣ);
+Test_N(q𝝩, q𝝩, q𝝩, qΤ, qΤ);
+Test_N(q𝝪, q𝝪, q𝝪, qΥ, qΥ);
+Test_N(q𝝫, q𝝫, q𝝫, qΦ, qΦ);
+Test_N(q𝝬, q𝝬, q𝝬, qΧ, qΧ);
+Test_N(q𝝭, q𝝭, q𝝭, qΨ, qΨ);
+Test_N(q𝝮, q𝝮, q𝝮, qΩ, qΩ);
+Test_N(q𝝯, q𝝯, q𝝯, q∇, q∇);
+Test_N(q𝝰, q𝝰, q𝝰, qα, qα);
+Test_N(q𝝱, q𝝱, q𝝱, qβ, qβ);
+Test_N(q𝝲, q𝝲, q𝝲, qγ, qγ);
+Test_N(q𝝳, q𝝳, q𝝳, qδ, qδ);
+Test_N(q𝝴, q𝝴, q𝝴, qε, qε);
+Test_N(q𝝵, q𝝵, q𝝵, qζ, qζ);
+Test_N(q𝝶, q𝝶, q𝝶, qη, qη);
+Test_N(q𝝷, q𝝷, q𝝷, qθ, qθ);
+Test_N(q𝝸, q𝝸, q𝝸, qι, qι);
+Test_N(q𝝹, q𝝹, q𝝹, qκ, qκ);
+Test_N(q𝝺, q𝝺, q𝝺, qλ, qλ);
+Test_N(q𝝻, q𝝻, q𝝻, qμ, qμ);
+Test_N(q𝝼, q𝝼, q𝝼, qν, qν);
+Test_N(q𝝽, q𝝽, q𝝽, qξ, qξ);
+Test_N(q𝝾, q𝝾, q𝝾, qο, qο);
+Test_N(q𝝿, q𝝿, q𝝿, qπ, qπ);
+Test_N(q𝞀, q𝞀, q𝞀, qρ, qρ);
+Test_N(q𝞁, q𝞁, q𝞁, qς, qς);
+Test_N(q𝞂, q𝞂, q𝞂, qσ, qσ);
+Test_N(q𝞃, q𝞃, q𝞃, qτ, qτ);
+Test_N(q𝞄, q𝞄, q𝞄, qυ, qυ);
+Test_N(q𝞅, q𝞅, q𝞅, qφ, qφ);
+Test_N(q𝞆, q𝞆, q𝞆, qχ, qχ);
+Test_N(q𝞇, q𝞇, q𝞇, qψ, qψ);
+Test_N(q𝞈, q𝞈, q𝞈, qω, qω);
+Test_N(q𝞉, q𝞉, q𝞉, q∂, q∂);
+Test_N(q𝞊, q𝞊, q𝞊, qε, qε);
+Test_N(q𝞋, q𝞋, q𝞋, qθ, qθ);
+Test_N(q𝞌, q𝞌, q𝞌, qκ, qκ);
+Test_N(q𝞍, q𝞍, q𝞍, qφ, qφ);
+Test_N(q𝞎, q𝞎, q𝞎, qρ, qρ);
+Test_N(q𝞏, q𝞏, q𝞏, qπ, qπ);
+Test_N(q𝞐, q𝞐, q𝞐, qΑ, qΑ);
+Test_N(q𝞑, q𝞑, q𝞑, qΒ, qΒ);
+Test_N(q𝞒, q𝞒, q𝞒, qΓ, qΓ);
+Test_N(q𝞓, q𝞓, q𝞓, qΔ, qΔ);
+Test_N(q𝞔, q𝞔, q𝞔, qΕ, qΕ);
+Test_N(q𝞕, q𝞕, q𝞕, qΖ, qΖ);
+Test_N(q𝞖, q𝞖, q𝞖, qΗ, qΗ);
+Test_N(q𝞗, q𝞗, q𝞗, qΘ, qΘ);
+Test_N(q𝞘, q𝞘, q𝞘, qΙ, qΙ);
+Test_N(q𝞙, q𝞙, q𝞙, qΚ, qΚ);
+Test_N(q𝞚, q𝞚, q𝞚, qΛ, qΛ);
+Test_N(q𝞛, q𝞛, q𝞛, qΜ, qΜ);
+Test_N(q𝞜, q𝞜, q𝞜, qΝ, qΝ);
+Test_N(q𝞝, q𝞝, q𝞝, qΞ, qΞ);
+Test_N(q𝞞, q𝞞, q𝞞, qΟ, qΟ);
+Test_N(q𝞟, q𝞟, q𝞟, qΠ, qΠ);
+Test_N(q𝞠, q𝞠, q𝞠, qΡ, qΡ);
+Test_N(q𝞡, q𝞡, q𝞡, qΘ, qΘ);
+Test_N(q𝞢, q𝞢, q𝞢, qΣ, qΣ);
+Test_N(q𝞣, q𝞣, q𝞣, qΤ, qΤ);
+Test_N(q𝞤, q𝞤, q𝞤, qΥ, qΥ);
+Test_N(q𝞥, q𝞥, q𝞥, qΦ, qΦ);
+Test_N(q𝞦, q𝞦, q𝞦, qΧ, qΧ);
+Test_N(q𝞧, q𝞧, q𝞧, qΨ, qΨ);
+Test_N(q𝞨, q𝞨, q𝞨, qΩ, qΩ);
+Test_N(q𝞩, q𝞩, q𝞩, q∇, q∇);
+Test_N(q𝞪, q𝞪, q𝞪, qα, qα);
+Test_N(q𝞫, q𝞫, q𝞫, qβ, qβ);
+Test_N(q𝞬, q𝞬, q𝞬, qγ, qγ);
+Test_N(q𝞭, q𝞭, q𝞭, qδ, qδ);
+Test_N(q𝞮, q𝞮, q𝞮, qε, qε);
+Test_N(q𝞯, q𝞯, q𝞯, qζ, qζ);
+Test_N(q𝞰, q𝞰, q𝞰, qη, qη);
+Test_N(q𝞱, q𝞱, q𝞱, qθ, qθ);
+Test_N(q𝞲, q𝞲, q𝞲, qι, qι);
+Test_N(q𝞳, q𝞳, q𝞳, qκ, qκ);
+Test_N(q𝞴, q𝞴, q𝞴, qλ, qλ);
+Test_N(q𝞵, q𝞵, q𝞵, qμ, qμ);
+Test_N(q𝞶, q𝞶, q𝞶, qν, qν);
+Test_N(q𝞷, q𝞷, q𝞷, qξ, qξ);
+Test_N(q𝞸, q𝞸, q𝞸, qο, qο);
+Test_N(q𝞹, q𝞹, q𝞹, qπ, qπ);
+Test_N(q𝞺, q𝞺, q𝞺, qρ, qρ);
+Test_N(q𝞻, q𝞻, q𝞻, qς, qς);
+Test_N(q𝞼, q𝞼, q𝞼, qσ, qσ);
+Test_N(q𝞽, q𝞽, q𝞽, qτ, qτ);
+Test_N(q𝞾, q𝞾, q𝞾, qυ, qυ);
+Test_N(q𝞿, q𝞿, q𝞿, qφ, qφ);
+Test_N(q𝟀, q𝟀, q𝟀, qχ, qχ);
+Test_N(q𝟁, q𝟁, q𝟁, qψ, qψ);
+Test_N(q𝟂, q𝟂, q𝟂, qω, qω);
+Test_N(q𝟃, q𝟃, q𝟃, q∂, q∂);
+Test_N(q𝟄, q𝟄, q𝟄, qε, qε);
+Test_N(q𝟅, q𝟅, q𝟅, qθ, qθ);
+Test_N(q𝟆, q𝟆, q𝟆, qκ, qκ);
+Test_N(q𝟇, q𝟇, q𝟇, qφ, qφ);
+Test_N(q𝟈, q𝟈, q𝟈, qρ, qρ);
+Test_N(q𝟉, q𝟉, q𝟉, qπ, qπ);
+Test_N(q𝟊, q𝟊, q𝟊, qϜ, qϜ);
+Test_N(q𝟋, q𝟋, q𝟋, qϝ, qϝ);
+Test_N(q𝟎, q𝟎, q𝟎, q0, q0);
+Test_N(q𝟏, q𝟏, q𝟏, q1, q1);
+Test_N(q𝟐, q𝟐, q𝟐, q2, q2);
+Test_N(q𝟑, q𝟑, q𝟑, q3, q3);
+Test_N(q𝟒, q𝟒, q𝟒, q4, q4);
+Test_N(q𝟓, q𝟓, q𝟓, q5, q5);
+Test_N(q𝟔, q𝟔, q𝟔, q6, q6);
+Test_N(q𝟕, q𝟕, q𝟕, q7, q7);
+Test_N(q𝟖, q𝟖, q𝟖, q8, q8);
+Test_N(q𝟗, q𝟗, q𝟗, q9, q9);
+Test_N(q𝟘, q𝟘, q𝟘, q0, q0);
+Test_N(q𝟙, q𝟙, q𝟙, q1, q1);
+Test_N(q𝟚, q𝟚, q𝟚, q2, q2);
+Test_N(q𝟛, q𝟛, q𝟛, q3, q3);
+Test_N(q𝟜, q𝟜, q𝟜, q4, q4);
+Test_N(q𝟝, q𝟝, q𝟝, q5, q5);
+Test_N(q𝟞, q𝟞, q𝟞, q6, q6);
+Test_N(q𝟟, q𝟟, q𝟟, q7, q7);
+Test_N(q𝟠, q𝟠, q𝟠, q8, q8);
+Test_N(q𝟡, q𝟡, q𝟡, q9, q9);
+Test_N(q𝟢, q𝟢, q𝟢, q0, q0);
+Test_N(q𝟣, q𝟣, q𝟣, q1, q1);
+Test_N(q𝟤, q𝟤, q𝟤, q2, q2);
+Test_N(q𝟥, q𝟥, q𝟥, q3, q3);
+Test_N(q𝟦, q𝟦, q𝟦, q4, q4);
+Test_N(q𝟧, q𝟧, q𝟧, q5, q5);
+Test_N(q𝟨, q𝟨, q𝟨, q6, q6);
+Test_N(q𝟩, q𝟩, q𝟩, q7, q7);
+Test_N(q𝟪, q𝟪, q𝟪, q8, q8);
+Test_N(q𝟫, q𝟫, q𝟫, q9, q9);
+Test_N(q𝟬, q𝟬, q𝟬, q0, q0);
+Test_N(q𝟭, q𝟭, q𝟭, q1, q1);
+Test_N(q𝟮, q𝟮, q𝟮, q2, q2);
+Test_N(q𝟯, q𝟯, q𝟯, q3, q3);
+Test_N(q𝟰, q𝟰, q𝟰, q4, q4);
+Test_N(q𝟱, q𝟱, q𝟱, q5, q5);
+Test_N(q𝟲, q𝟲, q𝟲, q6, q6);
+Test_N(q𝟳, q𝟳, q𝟳, q7, q7);
+Test_N(q𝟴, q𝟴, q𝟴, q8, q8);
+Test_N(q𝟵, q𝟵, q𝟵, q9, q9);
+Test_N(q𝟶, q𝟶, q𝟶, q0, q0);
+Test_N(q𝟷, q𝟷, q𝟷, q1, q1);
+Test_N(q𝟸, q𝟸, q𝟸, q2, q2);
+Test_N(q𝟹, q𝟹, q𝟹, q3, q3);
+Test_N(q𝟺, q𝟺, q𝟺, q4, q4);
+Test_N(q𝟻, q𝟻, q𝟻, q5, q5);
+Test_N(q𝟼, q𝟼, q𝟼, q6, q6);
+Test_N(q𝟽, q𝟽, q𝟽, q7, q7);
+Test_N(q𝟾, q𝟾, q𝟾, q8, q8);
+Test_N(q𝟿, q𝟿, q𝟿, q9, q9);
+Test_N(q𞀰, q𞀰, q𞀰, qа, qа);
+Test_N(q𞀱, q𞀱, q𞀱, qб, qб);
+Test_N(q𞀲, q𞀲, q𞀲, qв, qв);
+Test_N(q𞀳, q𞀳, q𞀳, qг, qг);
+Test_N(q𞀴, q𞀴, q𞀴, qд, qд);
+Test_N(q𞀵, q𞀵, q𞀵, qе, qе);
+Test_N(q𞀶, q𞀶, q𞀶, qж, qж);
+Test_N(q𞀷, q𞀷, q𞀷, qз, qз);
+Test_N(q𞀸, q𞀸, q𞀸, qи, qи);
+Test_N(q𞀹, q𞀹, q𞀹, qк, qк);
+Test_N(q𞀺, q𞀺, q𞀺, qл, qл);
+Test_N(q𞀻, q𞀻, q𞀻, qм, qм);
+Test_N(q𞀼, q𞀼, q𞀼, qо, qо);
+Test_N(q𞀽, q𞀽, q𞀽, qп, qп);
+Test_N(q𞀾, q𞀾, q𞀾, qр, qр);
+Test_N(q𞀿, q𞀿, q𞀿, qс, qс);
+Test_N(q𞁀, q𞁀, q𞁀, qт, qт);
+Test_N(q𞁁, q𞁁, q𞁁, qу, qу);
+Test_N(q𞁂, q𞁂, q𞁂, qф, qф);
+Test_N(q𞁃, q𞁃, q𞁃, qх, qх);
+Test_N(q𞁄, q𞁄, q𞁄, qц, qц);
+Test_N(q𞁅, q𞁅, q𞁅, qч, qч);
+Test_N(q𞁆, q𞁆, q𞁆, qш, qш);
+Test_N(q𞁇, q𞁇, q𞁇, qы, qы);
+Test_N(q𞁈, q𞁈, q𞁈, qэ, qэ);
+Test_N(q𞁉, q𞁉, q𞁉, qю, qю);
+Test_N(q𞁊, q𞁊, q𞁊, qꚉ, qꚉ);
+Test_N(q𞁋, q𞁋, q𞁋, qә, qә);
+Test_N(q𞁌, q𞁌, q𞁌, qі, qі);
+Test_N(q𞁍, q𞁍, q𞁍, qј, qј);
+Test_N(q𞁎, q𞁎, q𞁎, qө, qө);
+Test_N(q𞁏, q𞁏, q𞁏, qү, qү);
+Test_N(q𞁐, q𞁐, q𞁐, qӏ, qӏ);
+Test_N(q𞁑, q𞁑, q𞁑, qа, qа);
+Test_N(q𞁒, q𞁒, q𞁒, qб, qб);
+Test_N(q𞁓, q𞁓, q𞁓, qв, qв);
+Test_N(q𞁔, q𞁔, q𞁔, qг, qг);
+Test_N(q𞁕, q𞁕, q𞁕, qд, qд);
+Test_N(q𞁖, q𞁖, q𞁖, qе, qе);
+Test_N(q𞁗, q𞁗, q𞁗, qж, qж);
+Test_N(q𞁘, q𞁘, q𞁘, qз, qз);
+Test_N(q𞁙, q𞁙, q𞁙, qи, qи);
+Test_N(q𞁚, q𞁚, q𞁚, qк, qк);
+Test_N(q𞁛, q𞁛, q𞁛, qл, qл);
+Test_N(q𞁜, q𞁜, q𞁜, qо, qо);
+Test_N(q𞁝, q𞁝, q𞁝, qп, qп);
+Test_N(q𞁞, q𞁞, q𞁞, qс, qс);
+Test_N(q𞁟, q𞁟, q𞁟, qу, qу);
+Test_N(q𞁠, q𞁠, q𞁠, qф, qф);
+Test_N(q𞁡, q𞁡, q𞁡, qх, qх);
+Test_N(q𞁢, q𞁢, q𞁢, qц, qц);
+Test_N(q𞁣, q𞁣, q𞁣, qч, qч);
+Test_N(q𞁤, q𞁤, q𞁤, qш, qш);
+Test_N(q𞁥, q𞁥, q𞁥, qъ, qъ);
+Test_N(q𞁦, q𞁦, q𞁦, qы, qы);
+Test_N(q𞁧, q𞁧, q𞁧, qґ, qґ);
+Test_N(q𞁨, q𞁨, q𞁨, qі, qі);
+Test_N(q𞁩, q𞁩, q𞁩, qѕ, qѕ);
+Test_N(q𞁪, q𞁪, q𞁪, qџ, qџ);
+Test_N(q𞁫, q𞁫, q𞁫, qҫ, qҫ);
+Test_N(q𞁬, q𞁬, q𞁬, qꙑ, qꙑ);
+Test_N(q𞁭, q𞁭, q𞁭, qұ, qұ);
+Test_N(q𞸀, q𞸀, q𞸀, qا, qا);
+Test_N(q𞸁, q𞸁, q𞸁, qب, qب);
+Test_N(q𞸂, q𞸂, q𞸂, qج, qج);
+Test_N(q𞸃, q𞸃, q𞸃, qد, qد);
+Test_N(q𞸅, q𞸅, q𞸅, qو, qو);
+Test_N(q𞸆, q𞸆, q𞸆, qز, qز);
+Test_N(q𞸇, q𞸇, q𞸇, qح, qح);
+Test_N(q𞸈, q𞸈, q𞸈, qط, qط);
+Test_N(q𞸉, q𞸉, q𞸉, qي, qي);
+Test_N(q𞸊, q𞸊, q𞸊, qك, qك);
+Test_N(q𞸋, q𞸋, q𞸋, qل, qل);
+Test_N(q𞸌, q𞸌, q𞸌, qم, qم);
+Test_N(q𞸍, q𞸍, q𞸍, qن, qن);
+Test_N(q𞸎, q𞸎, q𞸎, qس, qس);
+Test_N(q𞸏, q𞸏, q𞸏, qع, qع);
+Test_N(q𞸐, q𞸐, q𞸐, qف, qف);
+Test_N(q𞸑, q𞸑, q𞸑, qص, qص);
+Test_N(q𞸒, q𞸒, q𞸒, qق, qق);
+Test_N(q𞸓, q𞸓, q𞸓, qر, qر);
+Test_N(q𞸔, q𞸔, q𞸔, qش, qش);
+Test_N(q𞸕, q𞸕, q𞸕, qت, qت);
+Test_N(q𞸖, q𞸖, q𞸖, qث, qث);
+Test_N(q𞸗, q𞸗, q𞸗, qخ, qخ);
+Test_N(q𞸘, q𞸘, q𞸘, qذ, qذ);
+Test_N(q𞸙, q𞸙, q𞸙, qض, qض);
+Test_N(q𞸚, q𞸚, q𞸚, qظ, qظ);
+Test_N(q𞸛, q𞸛, q𞸛, qغ, qغ);
+Test_N(q𞸜, q𞸜, q𞸜, qٮ, qٮ);
+Test_N(q𞸝, q𞸝, q𞸝, qں, qں);
+Test_N(q𞸞, q𞸞, q𞸞, qڡ, qڡ);
+Test_N(q𞸟, q𞸟, q𞸟, qٯ, qٯ);
+Test_N(q𞸡, q𞸡, q𞸡, qب, qب);
+Test_N(q𞸢, q𞸢, q𞸢, qج, qج);
+Test_N(q𞸤, q𞸤, q𞸤, qه, qه);
+Test_N(q𞸧, q𞸧, q𞸧, qح, qح);
+Test_N(q𞸩, q𞸩, q𞸩, qي, qي);
+Test_N(q𞸪, q𞸪, q𞸪, qك, qك);
+Test_N(q𞸫, q𞸫, q𞸫, qل, qل);
+Test_N(q𞸬, q𞸬, q𞸬, qم, qم);
+Test_N(q𞸭, q𞸭, q𞸭, qن, qن);
+Test_N(q𞸮, q𞸮, q𞸮, qس, qس);
+Test_N(q𞸯, q𞸯, q𞸯, qع, qع);
+Test_N(q𞸰, q𞸰, q𞸰, qف, qف);
+Test_N(q𞸱, q𞸱, q𞸱, qص, qص);
+Test_N(q𞸲, q𞸲, q𞸲, qق, qق);
+Test_N(q𞸴, q𞸴, q𞸴, qش, qش);
+Test_N(q𞸵, q𞸵, q𞸵, qت, qت);
+Test_N(q𞸶, q𞸶, q𞸶, qث, qث);
+Test_N(q𞸷, q𞸷, q𞸷, qخ, qخ);
+Test_N(q𞸹, q𞸹, q𞸹, qض, qض);
+Test_N(q𞸻, q𞸻, q𞸻, qغ, qغ);
+Test_N(q𞹂, q𞹂, q𞹂, qج, qج);
+Test_N(q𞹇, q𞹇, q𞹇, qح, qح);
+Test_N(q𞹉, q𞹉, q𞹉, qي, qي);
+Test_N(q𞹋, q𞹋, q𞹋, qل, qل);
+Test_N(q𞹍, q𞹍, q𞹍, qن, qن);
+Test_N(q𞹎, q𞹎, q𞹎, qس, qس);
+Test_N(q𞹏, q𞹏, q𞹏, qع, qع);
+Test_N(q𞹑, q𞹑, q𞹑, qص, qص);
+Test_N(q𞹒, q𞹒, q𞹒, qق, qق);
+Test_N(q𞹔, q𞹔, q𞹔, qش, qش);
+Test_N(q𞹗, q𞹗, q𞹗, qخ, qخ);
+Test_N(q𞹙, q𞹙, q𞹙, qض, qض);
+Test_N(q𞹛, q𞹛, q𞹛, qغ, qغ);
+Test_N(q𞹝, q𞹝, q𞹝, qں, qں);
+Test_N(q𞹟, q𞹟, q𞹟, qٯ, qٯ);
+Test_N(q𞹡, q𞹡, q𞹡, qب, qب);
+Test_N(q𞹢, q𞹢, q𞹢, qج, qج);
+Test_N(q𞹤, q𞹤, q𞹤, qه, qه);
+Test_N(q𞹧, q𞹧, q𞹧, qح, qح);
+Test_N(q𞹨, q𞹨, q𞹨, qط, qط);
+Test_N(q𞹩, q𞹩, q𞹩, qي, qي);
+Test_N(q𞹪, q𞹪, q𞹪, qك, qك);
+Test_N(q𞹬, q𞹬, q𞹬, qم, qم);
+Test_N(q𞹭, q𞹭, q𞹭, qن, qن);
+Test_N(q𞹮, q𞹮, q𞹮, qس, qس);
+Test_N(q𞹯, q𞹯, q𞹯, qع, qع);
+Test_N(q𞹰, q𞹰, q𞹰, qف, qف);
+Test_N(q𞹱, q𞹱, q𞹱, qص, qص);
+Test_N(q𞹲, q𞹲, q𞹲, qق, qق);
+Test_N(q𞹴, q𞹴, q𞹴, qش, qش);
+Test_N(q𞹵, q𞹵, q𞹵, qت, qت);
+Test_N(q𞹶, q𞹶, q𞹶, qث, qث);
+Test_N(q𞹷, q𞹷, q𞹷, qخ, qخ);
+Test_N(q𞹹, q𞹹, q𞹹, qض, qض);
+Test_N(q𞹺, q𞹺, q𞹺, qظ, qظ);
+Test_N(q𞹻, q𞹻, q𞹻, qغ, qغ);
+Test_N(q𞹼, q𞹼, q𞹼, qٮ, qٮ);
+Test_N(q𞹾, q𞹾, q𞹾, qڡ, qڡ);
+Test_N(q𞺀, q𞺀, q𞺀, qا, qا);
+Test_N(q𞺁, q𞺁, q𞺁, qب, qب);
+Test_N(q𞺂, q𞺂, q𞺂, qج, qج);
+Test_N(q𞺃, q𞺃, q𞺃, qد, qد);
+Test_N(q𞺄, q𞺄, q𞺄, qه, qه);
+Test_N(q𞺅, q𞺅, q𞺅, qو, qو);
+Test_N(q𞺆, q𞺆, q𞺆, qز, qز);
+Test_N(q𞺇, q𞺇, q𞺇, qح, qح);
+Test_N(q𞺈, q𞺈, q𞺈, qط, qط);
+Test_N(q𞺉, q𞺉, q𞺉, qي, qي);
+Test_N(q𞺋, q𞺋, q𞺋, qل, qل);
+Test_N(q𞺌, q𞺌, q𞺌, qم, qم);
+Test_N(q𞺍, q𞺍, q𞺍, qن, qن);
+Test_N(q𞺎, q𞺎, q𞺎, qس, qس);
+Test_N(q𞺏, q𞺏, q𞺏, qع, qع);
+Test_N(q𞺐, q𞺐, q𞺐, qف, qف);
+Test_N(q𞺑, q𞺑, q𞺑, qص, qص);
+Test_N(q𞺒, q𞺒, q𞺒, qق, qق);
+Test_N(q𞺓, q𞺓, q𞺓, qر, qر);
+Test_N(q𞺔, q𞺔, q𞺔, qش, qش);
+Test_N(q𞺕, q𞺕, q𞺕, qت, qت);
+Test_N(q𞺖, q𞺖, q𞺖, qث, qث);
+Test_N(q𞺗, q𞺗, q𞺗, qخ, qخ);
+Test_N(q𞺘, q𞺘, q𞺘, qذ, qذ);
+Test_N(q𞺙, q𞺙, q𞺙, qض, qض);
+Test_N(q𞺚, q𞺚, q𞺚, qظ, qظ);
+Test_N(q𞺛, q𞺛, q𞺛, qغ, qغ);
+Test_N(q𞺡, q𞺡, q𞺡, qب, qب);
+Test_N(q𞺢, q𞺢, q𞺢, qج, qج);
+Test_N(q𞺣, q𞺣, q𞺣, qد, qد);
+Test_N(q𞺥, q𞺥, q𞺥, qو, qو);
+Test_N(q𞺦, q𞺦, q𞺦, qز, qز);
+Test_N(q𞺧, q𞺧, q𞺧, qح, qح);
+Test_N(q𞺨, q𞺨, q𞺨, qط, qط);
+Test_N(q𞺩, q𞺩, q𞺩, qي, qي);
+Test_N(q𞺫, q𞺫, q𞺫, qل, qل);
+Test_N(q𞺬, q𞺬, q𞺬, qم, qم);
+Test_N(q𞺭, q𞺭, q𞺭, qن, qن);
+Test_N(q𞺮, q𞺮, q𞺮, qس, qس);
+Test_N(q𞺯, q𞺯, q𞺯, qع, qع);
+Test_N(q𞺰, q𞺰, q𞺰, qف, qف);
+Test_N(q𞺱, q𞺱, q𞺱, qص, qص);
+Test_N(q𞺲, q𞺲, q𞺲, qق, qق);
+Test_N(q𞺳, q𞺳, q𞺳, qر, qر);
+Test_N(q𞺴, q𞺴, q𞺴, qش, qش);
+Test_N(q𞺵, q𞺵, q𞺵, qت, qت);
+Test_N(q𞺶, q𞺶, q𞺶, qث, qث);
+Test_N(q𞺷, q𞺷, q𞺷, qخ, qخ);
+Test_N(q𞺸, q𞺸, q𞺸, qذ, qذ);
+Test_N(q𞺹, q𞺹, q𞺹, qض, qض);
+Test_N(q𞺺, q𞺺, q𞺺, qظ, qظ);
+Test_N(q𞺻, q𞺻, q𞺻, qغ, qغ);
+Test_N(q🄀, q🄀, q🄀, q0., q0.);
+Test_N(q🄁, q🄁, q🄁, q0,, q0,);
+Test_N(q🄂, q🄂, q🄂, q1,, q1,);
+Test_N(q🄃, q🄃, q🄃, q2,, q2,);
+Test_N(q🄄, q🄄, q🄄, q3,, q3,);
+Test_N(q🄅, q🄅, q🄅, q4,, q4,);
+Test_N(q🄆, q🄆, q🄆, q5,, q5,);
+Test_N(q🄇, q🄇, q🄇, q6,, q6,);
+Test_N(q🄈, q🄈, q🄈, q7,, q7,);
+Test_N(q🄉, q🄉, q🄉, q8,, q8,);
+Test_N(q🄊, q🄊, q🄊, q9,, q9,);
+Test_N(q🄐, q🄐, q🄐, q(A), q(A));
+Test_N(q🄑, q🄑, q🄑, q(B), q(B));
+Test_N(q🄒, q🄒, q🄒, q(C), q(C));
+Test_N(q🄓, q🄓, q🄓, q(D), q(D));
+Test_N(q🄔, q🄔, q🄔, q(E), q(E));
+Test_N(q🄕, q🄕, q🄕, q(F), q(F));
+Test_N(q🄖, q🄖, q🄖, q(G), q(G));
+Test_N(q🄗, q🄗, q🄗, q(H), q(H));
+Test_N(q🄘, q🄘, q🄘, q(I), q(I));
+Test_N(q🄙, q🄙, q🄙, q(J), q(J));
+Test_N(q🄚, q🄚, q🄚, q(K), q(K));
+Test_N(q🄛, q🄛, q🄛, q(L), q(L));
+Test_N(q🄜, q🄜, q🄜, q(M), q(M));
+Test_N(q🄝, q🄝, q🄝, q(N), q(N));
+Test_N(q🄞, q🄞, q🄞, q(O), q(O));
+Test_N(q🄟, q🄟, q🄟, q(P), q(P));
+Test_N(q🄠, q🄠, q🄠, q(Q), q(Q));
+Test_N(q🄡, q🄡, q🄡, q(R), q(R));
+Test_N(q🄢, q🄢, q🄢, q(S), q(S));
+Test_N(q🄣, q🄣, q🄣, q(T), q(T));
+Test_N(q🄤, q🄤, q🄤, q(U), q(U));
+Test_N(q🄥, q🄥, q🄥, q(V), q(V));
+Test_N(q🄦, q🄦, q🄦, q(W), q(W));
+Test_N(q🄧, q🄧, q🄧, q(X), q(X));
+Test_N(q🄨, q🄨, q🄨, q(Y), q(Y));
+Test_N(q🄩, q🄩, q🄩, q(Z), q(Z));
+Test_N(q🄪, q🄪, q🄪, q〔S〕, q〔S〕);
+Test_N(q🄫, q🄫, q🄫, qC, qC);
+Test_N(q🄬, q🄬, q🄬, qR, qR);
+Test_N(q🄭, q🄭, q🄭, qCD, qCD);
+Test_N(q🄮, q🄮, q🄮, qWZ, qWZ);
+Test_N(q🄰, q🄰, q🄰, qA, qA);
+Test_N(q🄱, q🄱, q🄱, qB, qB);
+Test_N(q🄲, q🄲, q🄲, qC, qC);
+Test_N(q🄳, q🄳, q🄳, qD, qD);
+Test_N(q🄴, q🄴, q🄴, qE, qE);
+Test_N(q🄵, q🄵, q🄵, qF, qF);
+Test_N(q🄶, q🄶, q🄶, qG, qG);
+Test_N(q🄷, q🄷, q🄷, qH, qH);
+Test_N(q🄸, q🄸, q🄸, qI, qI);
+Test_N(q🄹, q🄹, q🄹, qJ, qJ);
+Test_N(q🄺, q🄺, q🄺, qK, qK);
+Test_N(q🄻, q🄻, q🄻, qL, qL);
+Test_N(q🄼, q🄼, q🄼, qM, qM);
+Test_N(q🄽, q🄽, q🄽, qN, qN);
+Test_N(q🄾, q🄾, q🄾, qO, qO);
+Test_N(q🄿, q🄿, q🄿, qP, qP);
+Test_N(q🅀, q🅀, q🅀, qQ, qQ);
+Test_N(q🅁, q🅁, q🅁, qR, qR);
+Test_N(q🅂, q🅂, q🅂, qS, qS);
+Test_N(q🅃, q🅃, q🅃, qT, qT);
+Test_N(q🅄, q🅄, q🅄, qU, qU);
+Test_N(q🅅, q🅅, q🅅, qV, qV);
+Test_N(q🅆, q🅆, q🅆, qW, qW);
+Test_N(q🅇, q🅇, q🅇, qX, qX);
+Test_N(q🅈, q🅈, q🅈, qY, qY);
+Test_N(q🅉, q🅉, q🅉, qZ, qZ);
+Test_N(q🅊, q🅊, q🅊, qHV, qHV);
+Test_N(q🅋, q🅋, q🅋, qMV, qMV);
+Test_N(q🅌, q🅌, q🅌, qSD, qSD);
+Test_N(q🅍, q🅍, q🅍, qSS, qSS);
+Test_N(q🅎, q🅎, q🅎, qPPV, qPPV);
+Test_N(q🅏, q🅏, q🅏, qWC, qWC);
+Test_N(q🅪, q🅪, q🅪, qMC, qMC);
+Test_N(q🅫, q🅫, q🅫, qMD, qMD);
+Test_N(q🅬, q🅬, q🅬, qMR, qMR);
+Test_N(q🆐, q🆐, q🆐, qDJ, qDJ);
+Test_N(q🈀, q🈀, q🈀, qほか, qほか);
+Test_N(q🈁, q🈁, q🈁, qココ, qココ);
+Test_N(q🈂, q🈂, q🈂, qサ, qサ);
+Test_N(q🈐, q🈐, q🈐, q手, q手);
+Test_N(q🈑, q🈑, q🈑, q字, q字);
+Test_N(q🈒, q🈒, q🈒, q双, q双);
+Test_N(q🈓, q🈓, q🈓, qデ, qデ);
+Test_N(q🈔, q🈔, q🈔, q二, q二);
+Test_N(q🈕, q🈕, q🈕, q多, q多);
+Test_N(q🈖, q🈖, q🈖, q解, q解);
+Test_N(q🈗, q🈗, q🈗, q天, q天);
+Test_N(q🈘, q🈘, q🈘, q交, q交);
+Test_N(q🈙, q🈙, q🈙, q映, q映);
+Test_N(q🈚, q🈚, q🈚, q無, q無);
+Test_N(q🈛, q🈛, q🈛, q料, q料);
+Test_N(q🈜, q🈜, q🈜, q前, q前);
+Test_N(q🈝, q🈝, q🈝, q後, q後);
+Test_N(q🈞, q🈞, q🈞, q再, q再);
+Test_N(q🈟, q🈟, q🈟, q新, q新);
+Test_N(q🈠, q🈠, q🈠, q初, q初);
+Test_N(q🈡, q🈡, q🈡, q終, q終);
+Test_N(q🈢, q🈢, q🈢, q生, q生);
+Test_N(q🈣, q🈣, q🈣, q販, q販);
+Test_N(q🈤, q🈤, q🈤, q声, q声);
+Test_N(q🈥, q🈥, q🈥, q吹, q吹);
+Test_N(q🈦, q🈦, q🈦, q演, q演);
+Test_N(q🈧, q🈧, q🈧, q投, q投);
+Test_N(q🈨, q🈨, q🈨, q捕, q捕);
+Test_N(q🈩, q🈩, q🈩, q一, q一);
+Test_N(q🈪, q🈪, q🈪, q三, q三);
+Test_N(q🈫, q🈫, q🈫, q遊, q遊);
+Test_N(q🈬, q🈬, q🈬, q左, q左);
+Test_N(q🈭, q🈭, q🈭, q中, q中);
+Test_N(q🈮, q🈮, q🈮, q右, q右);
+Test_N(q🈯, q🈯, q🈯, q指, q指);
+Test_N(q🈰, q🈰, q🈰, q走, q走);
+Test_N(q🈱, q🈱, q🈱, q打, q打);
+Test_N(q🈲, q🈲, q🈲, q禁, q禁);
+Test_N(q🈳, q🈳, q🈳, q空, q空);
+Test_N(q🈴, q🈴, q🈴, q合, q合);
+Test_N(q🈵, q🈵, q🈵, q満, q満);
+Test_N(q🈶, q🈶, q🈶, q有, q有);
+Test_N(q🈷, q🈷, q🈷, q月, q月);
+Test_N(q🈸, q🈸, q🈸, q申, q申);
+Test_N(q🈹, q🈹, q🈹, q割, q割);
+Test_N(q🈺, q🈺, q🈺, q営, q営);
+Test_N(q🈻, q🈻, q🈻, q配, q配);
+Test_N(q🉀, q🉀, q🉀, q〔本〕, q〔本〕);
+Test_N(q🉁, q🉁, q🉁, q〔三〕, q〔三〕);
+Test_N(q🉂, q🉂, q🉂, q〔二〕, q〔二〕);
+Test_N(q🉃, q🉃, q🉃, q〔安〕, q〔安〕);
+Test_N(q🉄, q🉄, q🉄, q〔点〕, q〔点〕);
+Test_N(q🉅, q🉅, q🉅, q〔打〕, q〔打〕);
+Test_N(q🉆, q🉆, q🉆, q〔盗〕, q〔盗〕);
+Test_N(q🉇, q🉇, q🉇, q〔勝〕, q〔勝〕);
+Test_N(q🉈, q🉈, q🉈, q〔敗〕, q〔敗〕);
+Test_N(q🉐, q🉐, q🉐, q得, q得);
+Test_N(q🉑, q🉑, q🉑, q可, q可);
+Test_N(q🯰, q🯰, q🯰, q0, q0);
+Test_N(q🯱, q🯱, q🯱, q1, q1);
+Test_N(q🯲, q🯲, q🯲, q2, q2);
+Test_N(q🯳, q🯳, q🯳, q3, q3);
+Test_N(q🯴, q🯴, q🯴, q4, q4);
+Test_N(q🯵, q🯵, q🯵, q5, q5);
+Test_N(q🯶, q🯶, q🯶, q6, q6);
+Test_N(q🯷, q🯷, q🯷, q7, q7);
+Test_N(q🯸, q🯸, q🯸, q8, q8);
+Test_N(q🯹, q🯹, q🯹, q9, q9);
+Test_N(q丽, q丽, q丽, q丽, q丽);
+Test_N(q丸, q丸, q丸, q丸, q丸);
+Test_N(q乁, q乁, q乁, q乁, q乁);
+Test_N(q𠄢, q𠄢, q𠄢, q𠄢, q𠄢);
+Test_N(q你, q你, q你, q你, q你);
+Test_N(q侮, q侮, q侮, q侮, q侮);
+Test_N(q侻, q侻, q侻, q侻, q侻);
+Test_N(q倂, q倂, q倂, q倂, q倂);
+Test_N(q偺, q偺, q偺, q偺, q偺);
+Test_N(q備, q備, q備, q備, q備);
+Test_N(q僧, q僧, q僧, q僧, q僧);
+Test_N(q像, q像, q像, q像, q像);
+Test_N(q㒞, q㒞, q㒞, q㒞, q㒞);
+Test_N(q𠘺, q𠘺, q𠘺, q𠘺, q𠘺);
+Test_N(q免, q免, q免, q免, q免);
+Test_N(q兔, q兔, q兔, q兔, q兔);
+Test_N(q兤, q兤, q兤, q兤, q兤);
+Test_N(q具, q具, q具, q具, q具);
+Test_N(q𠔜, q𠔜, q𠔜, q𠔜, q𠔜);
+Test_N(q㒹, q㒹, q㒹, q㒹, q㒹);
+Test_N(q內, q內, q內, q內, q內);
+Test_N(q再, q再, q再, q再, q再);
+Test_N(q𠕋, q𠕋, q𠕋, q𠕋, q𠕋);
+Test_N(q冗, q冗, q冗, q冗, q冗);
+Test_N(q冤, q冤, q冤, q冤, q冤);
+Test_N(q仌, q仌, q仌, q仌, q仌);
+Test_N(q冬, q冬, q冬, q冬, q冬);
+Test_N(q况, q况, q况, q况, q况);
+Test_N(q𩇟, q𩇟, q𩇟, q𩇟, q𩇟);
+Test_N(q凵, q凵, q凵, q凵, q凵);
+Test_N(q刃, q刃, q刃, q刃, q刃);
+Test_N(q㓟, q㓟, q㓟, q㓟, q㓟);
+Test_N(q刻, q刻, q刻, q刻, q刻);
+Test_N(q剆, q剆, q剆, q剆, q剆);
+Test_N(q割, q割, q割, q割, q割);
+Test_N(q剷, q剷, q剷, q剷, q剷);
+Test_N(q㔕, q㔕, q㔕, q㔕, q㔕);
+Test_N(q勇, q勇, q勇, q勇, q勇);
+Test_N(q勉, q勉, q勉, q勉, q勉);
+Test_N(q勤, q勤, q勤, q勤, q勤);
+Test_N(q勺, q勺, q勺, q勺, q勺);
+Test_N(q包, q包, q包, q包, q包);
+Test_N(q匆, q匆, q匆, q匆, q匆);
+Test_N(q北, q北, q北, q北, q北);
+Test_N(q卉, q卉, q卉, q卉, q卉);
+Test_N(q卑, q卑, q卑, q卑, q卑);
+Test_N(q博, q博, q博, q博, q博);
+Test_N(q即, q即, q即, q即, q即);
+Test_N(q卽, q卽, q卽, q卽, q卽);
+Test_N(q卿, q卿, q卿, q卿, q卿);
+Test_N(q卿, q卿, q卿, q卿, q卿);
+Test_N(q卿, q卿, q卿, q卿, q卿);
+Test_N(q𠨬, q𠨬, q𠨬, q𠨬, q𠨬);
+Test_N(q灰, q灰, q灰, q灰, q灰);
+Test_N(q及, q及, q及, q及, q及);
+Test_N(q叟, q叟, q叟, q叟, q叟);
+Test_N(q𠭣, q𠭣, q𠭣, q𠭣, q𠭣);
+Test_N(q叫, q叫, q叫, q叫, q叫);
+Test_N(q叱, q叱, q叱, q叱, q叱);
+Test_N(q吆, q吆, q吆, q吆, q吆);
+Test_N(q咞, q咞, q咞, q咞, q咞);
+Test_N(q吸, q吸, q吸, q吸, q吸);
+Test_N(q呈, q呈, q呈, q呈, q呈);
+Test_N(q周, q周, q周, q周, q周);
+Test_N(q咢, q咢, q咢, q咢, q咢);
+Test_N(q哶, q哶, q哶, q哶, q哶);
+Test_N(q唐, q唐, q唐, q唐, q唐);
+Test_N(q啓, q啓, q啓, q啓, q啓);
+Test_N(q啣, q啣, q啣, q啣, q啣);
+Test_N(q善, q善, q善, q善, q善);
+Test_N(q善, q善, q善, q善, q善);
+Test_N(q喙, q喙, q喙, q喙, q喙);
+Test_N(q喫, q喫, q喫, q喫, q喫);
+Test_N(q喳, q喳, q喳, q喳, q喳);
+Test_N(q嗂, q嗂, q嗂, q嗂, q嗂);
+Test_N(q圖, q圖, q圖, q圖, q圖);
+Test_N(q嘆, q嘆, q嘆, q嘆, q嘆);
+Test_N(q圗, q圗, q圗, q圗, q圗);
+Test_N(q噑, q噑, q噑, q噑, q噑);
+Test_N(q噴, q噴, q噴, q噴, q噴);
+Test_N(q切, q切, q切, q切, q切);
+Test_N(q壮, q壮, q壮, q壮, q壮);
+Test_N(q城, q城, q城, q城, q城);
+Test_N(q埴, q埴, q埴, q埴, q埴);
+Test_N(q堍, q堍, q堍, q堍, q堍);
+Test_N(q型, q型, q型, q型, q型);
+Test_N(q堲, q堲, q堲, q堲, q堲);
+Test_N(q報, q報, q報, q報, q報);
+Test_N(q墬, q墬, q墬, q墬, q墬);
+Test_N(q𡓤, q𡓤, q𡓤, q𡓤, q𡓤);
+Test_N(q売, q売, q売, q売, q売);
+Test_N(q壷, q壷, q壷, q壷, q壷);
+Test_N(q夆, q夆, q夆, q夆, q夆);
+Test_N(q多, q多, q多, q多, q多);
+Test_N(q夢, q夢, q夢, q夢, q夢);
+Test_N(q奢, q奢, q奢, q奢, q奢);
+Test_N(q𡚨, q𡚨, q𡚨, q𡚨, q𡚨);
+Test_N(q𡛪, q𡛪, q𡛪, q𡛪, q𡛪);
+Test_N(q姬, q姬, q姬, q姬, q姬);
+Test_N(q娛, q娛, q娛, q娛, q娛);
+Test_N(q娧, q娧, q娧, q娧, q娧);
+Test_N(q姘, q姘, q姘, q姘, q姘);
+Test_N(q婦, q婦, q婦, q婦, q婦);
+Test_N(q㛮, q㛮, q㛮, q㛮, q㛮);
+Test_N(q㛼, q㛼, q㛼, q㛼, q㛼);
+Test_N(q嬈, q嬈, q嬈, q嬈, q嬈);
+Test_N(q嬾, q嬾, q嬾, q嬾, q嬾);
+Test_N(q嬾, q嬾, q嬾, q嬾, q嬾);
+Test_N(q𡧈, q𡧈, q𡧈, q𡧈, q𡧈);
+Test_N(q寃, q寃, q寃, q寃, q寃);
+Test_N(q寘, q寘, q寘, q寘, q寘);
+Test_N(q寧, q寧, q寧, q寧, q寧);
+Test_N(q寳, q寳, q寳, q寳, q寳);
+Test_N(q𡬘, q𡬘, q𡬘, q𡬘, q𡬘);
+Test_N(q寿, q寿, q寿, q寿, q寿);
+Test_N(q将, q将, q将, q将, q将);
+Test_N(q当, q当, q当, q当, q当);
+Test_N(q尢, q尢, q尢, q尢, q尢);
+Test_N(q㞁, q㞁, q㞁, q㞁, q㞁);
+Test_N(q屠, q屠, q屠, q屠, q屠);
+Test_N(q屮, q屮, q屮, q屮, q屮);
+Test_N(q峀, q峀, q峀, q峀, q峀);
+Test_N(q岍, q岍, q岍, q岍, q岍);
+Test_N(q𡷤, q𡷤, q𡷤, q𡷤, q𡷤);
+Test_N(q嵃, q嵃, q嵃, q嵃, q嵃);
+Test_N(q𡷦, q𡷦, q𡷦, q𡷦, q𡷦);
+Test_N(q嵮, q嵮, q嵮, q嵮, q嵮);
+Test_N(q嵫, q嵫, q嵫, q嵫, q嵫);
+Test_N(q嵼, q嵼, q嵼, q嵼, q嵼);
+Test_N(q巡, q巡, q巡, q巡, q巡);
+Test_N(q巢, q巢, q巢, q巢, q巢);
+Test_N(q㠯, q㠯, q㠯, q㠯, q㠯);
+Test_N(q巽, q巽, q巽, q巽, q巽);
+Test_N(q帨, q帨, q帨, q帨, q帨);
+Test_N(q帽, q帽, q帽, q帽, q帽);
+Test_N(q幩, q幩, q幩, q幩, q幩);
+Test_N(q㡢, q㡢, q㡢, q㡢, q㡢);
+Test_N(q𢆃, q𢆃, q𢆃, q𢆃, q𢆃);
+Test_N(q㡼, q㡼, q㡼, q㡼, q㡼);
+Test_N(q庰, q庰, q庰, q庰, q庰);
+Test_N(q庳, q庳, q庳, q庳, q庳);
+Test_N(q庶, q庶, q庶, q庶, q庶);
+Test_N(q廊, q廊, q廊, q廊, q廊);
+Test_N(q𪎒, q𪎒, q𪎒, q𪎒, q𪎒);
+Test_N(q廾, q廾, q廾, q廾, q廾);
+Test_N(q𢌱, q𢌱, q𢌱, q𢌱, q𢌱);
+Test_N(q𢌱, q𢌱, q𢌱, q𢌱, q𢌱);
+Test_N(q舁, q舁, q舁, q舁, q舁);
+Test_N(q弢, q弢, q弢, q弢, q弢);
+Test_N(q弢, q弢, q弢, q弢, q弢);
+Test_N(q㣇, q㣇, q㣇, q㣇, q㣇);
+Test_N(q𣊸, q𣊸, q𣊸, q𣊸, q𣊸);
+Test_N(q𦇚, q𦇚, q𦇚, q𦇚, q𦇚);
+Test_N(q形, q形, q形, q形, q形);
+Test_N(q彫, q彫, q彫, q彫, q彫);
+Test_N(q㣣, q㣣, q㣣, q㣣, q㣣);
+Test_N(q徚, q徚, q徚, q徚, q徚);
+Test_N(q忍, q忍, q忍, q忍, q忍);
+Test_N(q志, q志, q志, q志, q志);
+Test_N(q忹, q忹, q忹, q忹, q忹);
+Test_N(q悁, q悁, q悁, q悁, q悁);
+Test_N(q㤺, q㤺, q㤺, q㤺, q㤺);
+Test_N(q㤜, q㤜, q㤜, q㤜, q㤜);
+Test_N(q悔, q悔, q悔, q悔, q悔);
+Test_N(q𢛔, q𢛔, q𢛔, q𢛔, q𢛔);
+Test_N(q惇, q惇, q惇, q惇, q惇);
+Test_N(q慈, q慈, q慈, q慈, q慈);
+Test_N(q慌, q慌, q慌, q慌, q慌);
+Test_N(q慎, q慎, q慎, q慎, q慎);
+Test_N(q慌, q慌, q慌, q慌, q慌);
+Test_N(q慺, q慺, q慺, q慺, q慺);
+Test_N(q憎, q憎, q憎, q憎, q憎);
+Test_N(q憲, q憲, q憲, q憲, q憲);
+Test_N(q憤, q憤, q憤, q憤, q憤);
+Test_N(q憯, q憯, q憯, q憯, q憯);
+Test_N(q懞, q懞, q懞, q懞, q懞);
+Test_N(q懲, q懲, q懲, q懲, q懲);
+Test_N(q懶, q懶, q懶, q懶, q懶);
+Test_N(q成, q成, q成, q成, q成);
+Test_N(q戛, q戛, q戛, q戛, q戛);
+Test_N(q扝, q扝, q扝, q扝, q扝);
+Test_N(q抱, q抱, q抱, q抱, q抱);
+Test_N(q拔, q拔, q拔, q拔, q拔);
+Test_N(q捐, q捐, q捐, q捐, q捐);
+Test_N(q𢬌, q𢬌, q𢬌, q𢬌, q𢬌);
+Test_N(q挽, q挽, q挽, q挽, q挽);
+Test_N(q拼, q拼, q拼, q拼, q拼);
+Test_N(q捨, q捨, q捨, q捨, q捨);
+Test_N(q掃, q掃, q掃, q掃, q掃);
+Test_N(q揤, q揤, q揤, q揤, q揤);
+Test_N(q𢯱, q𢯱, q𢯱, q𢯱, q𢯱);
+Test_N(q搢, q搢, q搢, q搢, q搢);
+Test_N(q揅, q揅, q揅, q揅, q揅);
+Test_N(q掩, q掩, q掩, q掩, q掩);
+Test_N(q㨮, q㨮, q㨮, q㨮, q㨮);
+Test_N(q摩, q摩, q摩, q摩, q摩);
+Test_N(q摾, q摾, q摾, q摾, q摾);
+Test_N(q撝, q撝, q撝, q撝, q撝);
+Test_N(q摷, q摷, q摷, q摷, q摷);
+Test_N(q㩬, q㩬, q㩬, q㩬, q㩬);
+Test_N(q敏, q敏, q敏, q敏, q敏);
+Test_N(q敬, q敬, q敬, q敬, q敬);
+Test_N(q𣀊, q𣀊, q𣀊, q𣀊, q𣀊);
+Test_N(q旣, q旣, q旣, q旣, q旣);
+Test_N(q書, q書, q書, q書, q書);
+Test_N(q晉, q晉, q晉, q晉, q晉);
+Test_N(q㬙, q㬙, q㬙, q㬙, q㬙);
+Test_N(q暑, q暑, q暑, q暑, q暑);
+Test_N(q㬈, q㬈, q㬈, q㬈, q㬈);
+Test_N(q㫤, q㫤, q㫤, q㫤, q㫤);
+Test_N(q冒, q冒, q冒, q冒, q冒);
+Test_N(q冕, q冕, q冕, q冕, q冕);
+Test_N(q最, q最, q最, q最, q最);
+Test_N(q暜, q暜, q暜, q暜, q暜);
+Test_N(q肭, q肭, q肭, q肭, q肭);
+Test_N(q䏙, q䏙, q䏙, q䏙, q䏙);
+Test_N(q朗, q朗, q朗, q朗, q朗);
+Test_N(q望, q望, q望, q望, q望);
+Test_N(q朡, q朡, q朡, q朡, q朡);
+Test_N(q杞, q杞, q杞, q杞, q杞);
+Test_N(q杓, q杓, q杓, q杓, q杓);
+Test_N(q𣏃, q𣏃, q𣏃, q𣏃, q𣏃);
+Test_N(q㭉, q㭉, q㭉, q㭉, q㭉);
+Test_N(q柺, q柺, q柺, q柺, q柺);
+Test_N(q枅, q枅, q枅, q枅, q枅);
+Test_N(q桒, q桒, q桒, q桒, q桒);
+Test_N(q梅, q梅, q梅, q梅, q梅);
+Test_N(q𣑭, q𣑭, q𣑭, q𣑭, q𣑭);
+Test_N(q梎, q梎, q梎, q梎, q梎);
+Test_N(q栟, q栟, q栟, q栟, q栟);
+Test_N(q椔, q椔, q椔, q椔, q椔);
+Test_N(q㮝, q㮝, q㮝, q㮝, q㮝);
+Test_N(q楂, q楂, q楂, q楂, q楂);
+Test_N(q榣, q榣, q榣, q榣, q榣);
+Test_N(q槪, q槪, q槪, q槪, q槪);
+Test_N(q檨, q檨, q檨, q檨, q檨);
+Test_N(q𣚣, q𣚣, q𣚣, q𣚣, q𣚣);
+Test_N(q櫛, q櫛, q櫛, q櫛, q櫛);
+Test_N(q㰘, q㰘, q㰘, q㰘, q㰘);
+Test_N(q次, q次, q次, q次, q次);
+Test_N(q𣢧, q𣢧, q𣢧, q𣢧, q𣢧);
+Test_N(q歔, q歔, q歔, q歔, q歔);
+Test_N(q㱎, q㱎, q㱎, q㱎, q㱎);
+Test_N(q歲, q歲, q歲, q歲, q歲);
+Test_N(q殟, q殟, q殟, q殟, q殟);
+Test_N(q殺, q殺, q殺, q殺, q殺);
+Test_N(q殻, q殻, q殻, q殻, q殻);
+Test_N(q𣪍, q𣪍, q𣪍, q𣪍, q𣪍);
+Test_N(q𡴋, q𡴋, q𡴋, q𡴋, q𡴋);
+Test_N(q𣫺, q𣫺, q𣫺, q𣫺, q𣫺);
+Test_N(q汎, q汎, q汎, q汎, q汎);
+Test_N(q𣲼, q𣲼, q𣲼, q𣲼, q𣲼);
+Test_N(q沿, q沿, q沿, q沿, q沿);
+Test_N(q泍, q泍, q泍, q泍, q泍);
+Test_N(q汧, q汧, q汧, q汧, q汧);
+Test_N(q洖, q洖, q洖, q洖, q洖);
+Test_N(q派, q派, q派, q派, q派);
+Test_N(q海, q海, q海, q海, q海);
+Test_N(q流, q流, q流, q流, q流);
+Test_N(q浩, q浩, q浩, q浩, q浩);
+Test_N(q浸, q浸, q浸, q浸, q浸);
+Test_N(q涅, q涅, q涅, q涅, q涅);
+Test_N(q𣴞, q𣴞, q𣴞, q𣴞, q𣴞);
+Test_N(q洴, q洴, q洴, q洴, q洴);
+Test_N(q港, q港, q港, q港, q港);
+Test_N(q湮, q湮, q湮, q湮, q湮);
+Test_N(q㴳, q㴳, q㴳, q㴳, q㴳);
+Test_N(q滋, q滋, q滋, q滋, q滋);
+Test_N(q滇, q滇, q滇, q滇, q滇);
+Test_N(q𣻑, q𣻑, q𣻑, q𣻑, q𣻑);
+Test_N(q淹, q淹, q淹, q淹, q淹);
+Test_N(q潮, q潮, q潮, q潮, q潮);
+Test_N(q𣽞, q𣽞, q𣽞, q𣽞, q𣽞);
+Test_N(q𣾎, q𣾎, q𣾎, q𣾎, q𣾎);
+Test_N(q濆, q濆, q濆, q濆, q濆);
+Test_N(q瀹, q瀹, q瀹, q瀹, q瀹);
+Test_N(q瀞, q瀞, q瀞, q瀞, q瀞);
+Test_N(q瀛, q瀛, q瀛, q瀛, q瀛);
+Test_N(q㶖, q㶖, q㶖, q㶖, q㶖);
+Test_N(q灊, q灊, q灊, q灊, q灊);
+Test_N(q災, q災, q災, q災, q災);
+Test_N(q灷, q灷, q灷, q灷, q灷);
+Test_N(q炭, q炭, q炭, q炭, q炭);
+Test_N(q𠔥, q𠔥, q𠔥, q𠔥, q𠔥);
+Test_N(q煅, q煅, q煅, q煅, q煅);
+Test_N(q𤉣, q𤉣, q𤉣, q𤉣, q𤉣);
+Test_N(q熜, q熜, q熜, q熜, q熜);
+Test_N(q𤎫, q𤎫, q𤎫, q𤎫, q𤎫);
+Test_N(q爨, q爨, q爨, q爨, q爨);
+Test_N(q爵, q爵, q爵, q爵, q爵);
+Test_N(q牐, q牐, q牐, q牐, q牐);
+Test_N(q𤘈, q𤘈, q𤘈, q𤘈, q𤘈);
+Test_N(q犀, q犀, q犀, q犀, q犀);
+Test_N(q犕, q犕, q犕, q犕, q犕);
+Test_N(q𤜵, q𤜵, q𤜵, q𤜵, q𤜵);
+Test_N(q𤠔, q𤠔, q𤠔, q𤠔, q𤠔);
+Test_N(q獺, q獺, q獺, q獺, q獺);
+Test_N(q王, q王, q王, q王, q王);
+Test_N(q㺬, q㺬, q㺬, q㺬, q㺬);
+Test_N(q玥, q玥, q玥, q玥, q玥);
+Test_N(q㺸, q㺸, q㺸, q㺸, q㺸);
+Test_N(q㺸, q㺸, q㺸, q㺸, q㺸);
+Test_N(q瑇, q瑇, q瑇, q瑇, q瑇);
+Test_N(q瑜, q瑜, q瑜, q瑜, q瑜);
+Test_N(q瑱, q瑱, q瑱, q瑱, q瑱);
+Test_N(q璅, q璅, q璅, q璅, q璅);
+Test_N(q瓊, q瓊, q瓊, q瓊, q瓊);
+Test_N(q㼛, q㼛, q㼛, q㼛, q㼛);
+Test_N(q甤, q甤, q甤, q甤, q甤);
+Test_N(q𤰶, q𤰶, q𤰶, q𤰶, q𤰶);
+Test_N(q甾, q甾, q甾, q甾, q甾);
+Test_N(q𤲒, q𤲒, q𤲒, q𤲒, q𤲒);
+Test_N(q異, q異, q異, q異, q異);
+Test_N(q𢆟, q𢆟, q𢆟, q𢆟, q𢆟);
+Test_N(q瘐, q瘐, q瘐, q瘐, q瘐);
+Test_N(q𤾡, q𤾡, q𤾡, q𤾡, q𤾡);
+Test_N(q𤾸, q𤾸, q𤾸, q𤾸, q𤾸);
+Test_N(q𥁄, q𥁄, q𥁄, q𥁄, q𥁄);
+Test_N(q㿼, q㿼, q㿼, q㿼, q㿼);
+Test_N(q䀈, q䀈, q䀈, q䀈, q䀈);
+Test_N(q直, q直, q直, q直, q直);
+Test_N(q𥃳, q𥃳, q𥃳, q𥃳, q𥃳);
+Test_N(q𥃲, q𥃲, q𥃲, q𥃲, q𥃲);
+Test_N(q𥄙, q𥄙, q𥄙, q𥄙, q𥄙);
+Test_N(q𥄳, q𥄳, q𥄳, q𥄳, q𥄳);
+Test_N(q眞, q眞, q眞, q眞, q眞);
+Test_N(q真, q真, q真, q真, q真);
+Test_N(q真, q真, q真, q真, q真);
+Test_N(q睊, q睊, q睊, q睊, q睊);
+Test_N(q䀹, q䀹, q䀹, q䀹, q䀹);
+Test_N(q瞋, q瞋, q瞋, q瞋, q瞋);
+Test_N(q䁆, q䁆, q䁆, q䁆, q䁆);
+Test_N(q䂖, q䂖, q䂖, q䂖, q䂖);
+Test_N(q𥐝, q𥐝, q𥐝, q𥐝, q𥐝);
+Test_N(q硎, q硎, q硎, q硎, q硎);
+Test_N(q碌, q碌, q碌, q碌, q碌);
+Test_N(q磌, q磌, q磌, q磌, q磌);
+Test_N(q䃣, q䃣, q䃣, q䃣, q䃣);
+Test_N(q𥘦, q𥘦, q𥘦, q𥘦, q𥘦);
+Test_N(q祖, q祖, q祖, q祖, q祖);
+Test_N(q𥚚, q𥚚, q𥚚, q𥚚, q𥚚);
+Test_N(q𥛅, q𥛅, q𥛅, q𥛅, q𥛅);
+Test_N(q福, q福, q福, q福, q福);
+Test_N(q秫, q秫, q秫, q秫, q秫);
+Test_N(q䄯, q䄯, q䄯, q䄯, q䄯);
+Test_N(q穀, q穀, q穀, q穀, q穀);
+Test_N(q穊, q穊, q穊, q穊, q穊);
+Test_N(q穏, q穏, q穏, q穏, q穏);
+Test_N(q𥥼, q𥥼, q𥥼, q𥥼, q𥥼);
+Test_N(q𥪧, q𥪧, q𥪧, q𥪧, q𥪧);
+Test_N(q𥪧, q𥪧, q𥪧, q𥪧, q𥪧);
+Test_N(q竮, q竮, q竮, q竮, q竮);
+Test_N(q䈂, q䈂, q䈂, q䈂, q䈂);
+Test_N(q𥮫, q𥮫, q𥮫, q𥮫, q𥮫);
+Test_N(q篆, q篆, q篆, q篆, q篆);
+Test_N(q築, q築, q築, q築, q築);
+Test_N(q䈧, q䈧, q䈧, q䈧, q䈧);
+Test_N(q𥲀, q𥲀, q𥲀, q𥲀, q𥲀);
+Test_N(q糒, q糒, q糒, q糒, q糒);
+Test_N(q䊠, q䊠, q䊠, q䊠, q䊠);
+Test_N(q糨, q糨, q糨, q糨, q糨);
+Test_N(q糣, q糣, q糣, q糣, q糣);
+Test_N(q紀, q紀, q紀, q紀, q紀);
+Test_N(q𥾆, q𥾆, q𥾆, q𥾆, q𥾆);
+Test_N(q絣, q絣, q絣, q絣, q絣);
+Test_N(q䌁, q䌁, q䌁, q䌁, q䌁);
+Test_N(q緇, q緇, q緇, q緇, q緇);
+Test_N(q縂, q縂, q縂, q縂, q縂);
+Test_N(q繅, q繅, q繅, q繅, q繅);
+Test_N(q䌴, q䌴, q䌴, q䌴, q䌴);
+Test_N(q𦈨, q𦈨, q𦈨, q𦈨, q𦈨);
+Test_N(q𦉇, q𦉇, q𦉇, q𦉇, q𦉇);
+Test_N(q䍙, q䍙, q䍙, q䍙, q䍙);
+Test_N(q𦋙, q𦋙, q𦋙, q𦋙, q𦋙);
+Test_N(q罺, q罺, q罺, q罺, q罺);
+Test_N(q𦌾, q𦌾, q𦌾, q𦌾, q𦌾);
+Test_N(q羕, q羕, q羕, q羕, q羕);
+Test_N(q翺, q翺, q翺, q翺, q翺);
+Test_N(q者, q者, q者, q者, q者);
+Test_N(q𦓚, q𦓚, q𦓚, q𦓚, q𦓚);
+Test_N(q𦔣, q𦔣, q𦔣, q𦔣, q𦔣);
+Test_N(q聠, q聠, q聠, q聠, q聠);
+Test_N(q𦖨, q𦖨, q𦖨, q𦖨, q𦖨);
+Test_N(q聰, q聰, q聰, q聰, q聰);
+Test_N(q𣍟, q𣍟, q𣍟, q𣍟, q𣍟);
+Test_N(q䏕, q䏕, q䏕, q䏕, q䏕);
+Test_N(q育, q育, q育, q育, q育);
+Test_N(q脃, q脃, q脃, q脃, q脃);
+Test_N(q䐋, q䐋, q䐋, q䐋, q䐋);
+Test_N(q脾, q脾, q脾, q脾, q脾);
+Test_N(q媵, q媵, q媵, q媵, q媵);
+Test_N(q𦞧, q𦞧, q𦞧, q𦞧, q𦞧);
+Test_N(q𦞵, q𦞵, q𦞵, q𦞵, q𦞵);
+Test_N(q𣎓, q𣎓, q𣎓, q𣎓, q𣎓);
+Test_N(q𣎜, q𣎜, q𣎜, q𣎜, q𣎜);
+Test_N(q舁, q舁, q舁, q舁, q舁);
+Test_N(q舄, q舄, q舄, q舄, q舄);
+Test_N(q辞, q辞, q辞, q辞, q辞);
+Test_N(q䑫, q䑫, q䑫, q䑫, q䑫);
+Test_N(q芑, q芑, q芑, q芑, q芑);
+Test_N(q芋, q芋, q芋, q芋, q芋);
+Test_N(q芝, q芝, q芝, q芝, q芝);
+Test_N(q劳, q劳, q劳, q劳, q劳);
+Test_N(q花, q花, q花, q花, q花);
+Test_N(q芳, q芳, q芳, q芳, q芳);
+Test_N(q芽, q芽, q芽, q芽, q芽);
+Test_N(q苦, q苦, q苦, q苦, q苦);
+Test_N(q𦬼, q𦬼, q𦬼, q𦬼, q𦬼);
+Test_N(q若, q若, q若, q若, q若);
+Test_N(q茝, q茝, q茝, q茝, q茝);
+Test_N(q荣, q荣, q荣, q荣, q荣);
+Test_N(q莭, q莭, q莭, q莭, q莭);
+Test_N(q茣, q茣, q茣, q茣, q茣);
+Test_N(q莽, q莽, q莽, q莽, q莽);
+Test_N(q菧, q菧, q菧, q菧, q菧);
+Test_N(q著, q著, q著, q著, q著);
+Test_N(q荓, q荓, q荓, q荓, q荓);
+Test_N(q菊, q菊, q菊, q菊, q菊);
+Test_N(q菌, q菌, q菌, q菌, q菌);
+Test_N(q菜, q菜, q菜, q菜, q菜);
+Test_N(q𦰶, q𦰶, q𦰶, q𦰶, q𦰶);
+Test_N(q𦵫, q𦵫, q𦵫, q𦵫, q𦵫);
+Test_N(q𦳕, q𦳕, q𦳕, q𦳕, q𦳕);
+Test_N(q䔫, q䔫, q䔫, q䔫, q䔫);
+Test_N(q蓱, q蓱, q蓱, q蓱, q蓱);
+Test_N(q蓳, q蓳, q蓳, q蓳, q蓳);
+Test_N(q蔖, q蔖, q蔖, q蔖, q蔖);
+Test_N(q𧏊, q𧏊, q𧏊, q𧏊, q𧏊);
+Test_N(q蕤, q蕤, q蕤, q蕤, q蕤);
+Test_N(q𦼬, q𦼬, q𦼬, q𦼬, q𦼬);
+Test_N(q䕝, q䕝, q䕝, q䕝, q䕝);
+Test_N(q䕡, q䕡, q䕡, q䕡, q䕡);
+Test_N(q𦾱, q𦾱, q𦾱, q𦾱, q𦾱);
+Test_N(q𧃒, q𧃒, q𧃒, q𧃒, q𧃒);
+Test_N(q䕫, q䕫, q䕫, q䕫, q䕫);
+Test_N(q虐, q虐, q虐, q虐, q虐);
+Test_N(q虜, q虜, q虜, q虜, q虜);
+Test_N(q虧, q虧, q虧, q虧, q虧);
+Test_N(q虩, q虩, q虩, q虩, q虩);
+Test_N(q蚩, q蚩, q蚩, q蚩, q蚩);
+Test_N(q蚈, q蚈, q蚈, q蚈, q蚈);
+Test_N(q蜎, q蜎, q蜎, q蜎, q蜎);
+Test_N(q蛢, q蛢, q蛢, q蛢, q蛢);
+Test_N(q蝹, q蝹, q蝹, q蝹, q蝹);
+Test_N(q蜨, q蜨, q蜨, q蜨, q蜨);
+Test_N(q蝫, q蝫, q蝫, q蝫, q蝫);
+Test_N(q螆, q螆, q螆, q螆, q螆);
+Test_N(q䗗, q䗗, q䗗, q䗗, q䗗);
+Test_N(q蟡, q蟡, q蟡, q蟡, q蟡);
+Test_N(q蠁, q蠁, q蠁, q蠁, q蠁);
+Test_N(q䗹, q䗹, q䗹, q䗹, q䗹);
+Test_N(q衠, q衠, q衠, q衠, q衠);
+Test_N(q衣, q衣, q衣, q衣, q衣);
+Test_N(q𧙧, q𧙧, q𧙧, q𧙧, q𧙧);
+Test_N(q裗, q裗, q裗, q裗, q裗);
+Test_N(q裞, q裞, q裞, q裞, q裞);
+Test_N(q䘵, q䘵, q䘵, q䘵, q䘵);
+Test_N(q裺, q裺, q裺, q裺, q裺);
+Test_N(q㒻, q㒻, q㒻, q㒻, q㒻);
+Test_N(q𧢮, q𧢮, q𧢮, q𧢮, q𧢮);
+Test_N(q𧥦, q𧥦, q𧥦, q𧥦, q𧥦);
+Test_N(q䚾, q䚾, q䚾, q䚾, q䚾);
+Test_N(q䛇, q䛇, q䛇, q䛇, q䛇);
+Test_N(q誠, q誠, q誠, q誠, q誠);
+Test_N(q諭, q諭, q諭, q諭, q諭);
+Test_N(q變, q變, q變, q變, q變);
+Test_N(q豕, q豕, q豕, q豕, q豕);
+Test_N(q𧲨, q𧲨, q𧲨, q𧲨, q𧲨);
+Test_N(q貫, q貫, q貫, q貫, q貫);
+Test_N(q賁, q賁, q賁, q賁, q賁);
+Test_N(q贛, q贛, q贛, q贛, q贛);
+Test_N(q起, q起, q起, q起, q起);
+Test_N(q𧼯, q𧼯, q𧼯, q𧼯, q𧼯);
+Test_N(q𠠄, q𠠄, q𠠄, q𠠄, q𠠄);
+Test_N(q跋, q跋, q跋, q跋, q跋);
+Test_N(q趼, q趼, q趼, q趼, q趼);
+Test_N(q跰, q跰, q跰, q跰, q跰);
+Test_N(q𠣞, q𠣞, q𠣞, q𠣞, q𠣞);
+Test_N(q軔, q軔, q軔, q軔, q軔);
+Test_N(q輸, q輸, q輸, q輸, q輸);
+Test_N(q𨗒, q𨗒, q𨗒, q𨗒, q𨗒);
+Test_N(q𨗭, q𨗭, q𨗭, q𨗭, q𨗭);
+Test_N(q邔, q邔, q邔, q邔, q邔);
+Test_N(q郱, q郱, q郱, q郱, q郱);
+Test_N(q鄑, q鄑, q鄑, q鄑, q鄑);
+Test_N(q𨜮, q𨜮, q𨜮, q𨜮, q𨜮);
+Test_N(q鄛, q鄛, q鄛, q鄛, q鄛);
+Test_N(q鈸, q鈸, q鈸, q鈸, q鈸);
+Test_N(q鋗, q鋗, q鋗, q鋗, q鋗);
+Test_N(q鋘, q鋘, q鋘, q鋘, q鋘);
+Test_N(q鉼, q鉼, q鉼, q鉼, q鉼);
+Test_N(q鏹, q鏹, q鏹, q鏹, q鏹);
+Test_N(q鐕, q鐕, q鐕, q鐕, q鐕);
+Test_N(q𨯺, q𨯺, q𨯺, q𨯺, q𨯺);
+Test_N(q開, q開, q開, q開, q開);
+Test_N(q䦕, q䦕, q䦕, q䦕, q䦕);
+Test_N(q閷, q閷, q閷, q閷, q閷);
+Test_N(q𨵷, q𨵷, q𨵷, q𨵷, q𨵷);
+Test_N(q䧦, q䧦, q䧦, q䧦, q䧦);
+Test_N(q雃, q雃, q雃, q雃, q雃);
+Test_N(q嶲, q嶲, q嶲, q嶲, q嶲);
+Test_N(q霣, q霣, q霣, q霣, q霣);
+Test_N(q𩅅, q𩅅, q𩅅, q𩅅, q𩅅);
+Test_N(q𩈚, q𩈚, q𩈚, q𩈚, q𩈚);
+Test_N(q䩮, q䩮, q䩮, q䩮, q䩮);
+Test_N(q䩶, q䩶, q䩶, q䩶, q䩶);
+Test_N(q韠, q韠, q韠, q韠, q韠);
+Test_N(q𩐊, q𩐊, q𩐊, q𩐊, q𩐊);
+Test_N(q䪲, q䪲, q䪲, q䪲, q䪲);
+Test_N(q𩒖, q𩒖, q𩒖, q𩒖, q𩒖);
+Test_N(q頋, q頋, q頋, q頋, q頋);
+Test_N(q頋, q頋, q頋, q頋, q頋);
+Test_N(q頩, q頩, q頩, q頩, q頩);
+Test_N(q𩖶, q𩖶, q𩖶, q𩖶, q𩖶);
+Test_N(q飢, q飢, q飢, q飢, q飢);
+Test_N(q䬳, q䬳, q䬳, q䬳, q䬳);
+Test_N(q餩, q餩, q餩, q餩, q餩);
+Test_N(q馧, q馧, q馧, q馧, q馧);
+Test_N(q駂, q駂, q駂, q駂, q駂);
+Test_N(q駾, q駾, q駾, q駾, q駾);
+Test_N(q䯎, q䯎, q䯎, q䯎, q䯎);
+Test_N(q𩬰, q𩬰, q𩬰, q𩬰, q𩬰);
+Test_N(q鬒, q鬒, q鬒, q鬒, q鬒);
+Test_N(q鱀, q鱀, q鱀, q鱀, q鱀);
+Test_N(q鳽, q鳽, q鳽, q鳽, q鳽);
+Test_N(q䳎, q䳎, q䳎, q䳎, q䳎);
+Test_N(q䳭, q䳭, q䳭, q䳭, q䳭);
+Test_N(q鵧, q鵧, q鵧, q鵧, q鵧);
+Test_N(q𪃎, q𪃎, q𪃎, q𪃎, q𪃎);
+Test_N(q䳸, q䳸, q䳸, q䳸, q䳸);
+Test_N(q𪄅, q𪄅, q𪄅, q𪄅, q𪄅);
+Test_N(q𪈎, q𪈎, q𪈎, q𪈎, q𪈎);
+Test_N(q𪊑, q𪊑, q𪊑, q𪊑, q𪊑);
+Test_N(q麻, q麻, q麻, q麻, q麻);
+Test_N(q䵖, q䵖, q䵖, q䵖, q䵖);
+Test_N(q黹, q黹, q黹, q黹, q黹);
+Test_N(q黾, q黾, q黾, q黾, q黾);
+Test_N(q鼅, q鼅, q鼅, q鼅, q鼅);
+Test_N(q鼏, q鼏, q鼏, q鼏, q鼏);
+Test_N(q鼖, q鼖, q鼖, q鼖, q鼖);
+Test_N(q鼻, q鼻, q鼻, q鼻, q鼻);
+Test_N(q𪘀, q𪘀, q𪘀, q𪘀, q𪘀);
+Test_N(qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b);
+Test_N(qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b);
+Test_N(qà֮́̕b, qà֮́̕b, qà֮́̕b, qà֮́̕b, qà֮́̕b);
+Test_N(qá֮̀̕b, qá֮̀̕b, qá֮̀̕b, qá֮̀̕b, qá֮̀̕b);
+Test_N(qà֮̂̕b, qà֮̂̕b, qà֮̂̕b, qà֮̂̕b, qà֮̂̕b);
+Test_N(qầ֮̕b, qầ֮̕b, qầ֮̕b, qầ֮̕b, qầ֮̕b);
+Test_N(qà֮̃̕b, qà֮̃̕b, qà֮̃̕b, qà֮̃̕b, qà֮̃̕b);
+Test_N(qã֮̀̕b, qã֮̀̕b, qã֮̀̕b, qã֮̀̕b, qã֮̀̕b);
+Test_N(qà֮̄̕b, qà֮̄̕b, qà֮̄̕b, qà֮̄̕b, qà֮̄̕b);
+Test_N(qā֮̀̕b, qā֮̀̕b, qā֮̀̕b, qā֮̀̕b, qā֮̀̕b);
+Test_N(qà֮̅̕b, qà֮̅̕b, qà֮̅̕b, qà֮̅̕b, qà֮̅̕b);
+Test_N(qa֮̅̀̕b, qa֮̅̀̕b, qa֮̅̀̕b, qa֮̅̀̕b, qa֮̅̀̕b);
+Test_N(qà֮̆̕b, qà֮̆̕b, qà֮̆̕b, qà֮̆̕b, qà֮̆̕b);
+Test_N(qằ֮̕b, qằ֮̕b, qằ֮̕b, qằ֮̕b, qằ֮̕b);
+Test_N(qà֮̇̕b, qà֮̇̕b, qà֮̇̕b, qà֮̇̕b, qà֮̇̕b);
+Test_N(qȧ֮̀̕b, qȧ֮̀̕b, qȧ֮̀̕b, qȧ֮̀̕b, qȧ֮̀̕b);
+Test_N(qà֮̈̕b, qà֮̈̕b, qà֮̈̕b, qà֮̈̕b, qà֮̈̕b);
+Test_N(qä֮̀̕b, qä֮̀̕b, qä֮̀̕b, qä֮̀̕b, qä֮̀̕b);
+Test_N(qà֮̉̕b, qà֮̉̕b, qà֮̉̕b, qà֮̉̕b, qà֮̉̕b);
+Test_N(qả֮̀̕b, qả֮̀̕b, qả֮̀̕b, qả֮̀̕b, qả֮̀̕b);
+Test_N(qà֮̊̕b, qà֮̊̕b, qà֮̊̕b, qà֮̊̕b, qà֮̊̕b);
+Test_N(qå֮̀̕b, qå֮̀̕b, qå֮̀̕b, qå֮̀̕b, qå֮̀̕b);
+Test_N(qà֮̋̕b, qà֮̋̕b, qà֮̋̕b, qà֮̋̕b, qà֮̋̕b);
+Test_N(qa֮̋̀̕b, qa֮̋̀̕b, qa֮̋̀̕b, qa֮̋̀̕b, qa֮̋̀̕b);
+Test_N(qà֮̌̕b, qà֮̌̕b, qà֮̌̕b, qà֮̌̕b, qà֮̌̕b);
+Test_N(qǎ֮̀̕b, qǎ֮̀̕b, qǎ֮̀̕b, qǎ֮̀̕b, qǎ֮̀̕b);
+Test_N(qà֮̍̕b, qà֮̍̕b, qà֮̍̕b, qà֮̍̕b, qà֮̍̕b);
+Test_N(qa֮̍̀̕b, qa֮̍̀̕b, qa֮̍̀̕b, qa֮̍̀̕b, qa֮̍̀̕b);
+Test_N(qà֮̎̕b, qà֮̎̕b, qà֮̎̕b, qà֮̎̕b, qà֮̎̕b);
+Test_N(qa֮̎̀̕b, qa֮̎̀̕b, qa֮̎̀̕b, qa֮̎̀̕b, qa֮̎̀̕b);
+Test_N(qà֮̏̕b, qà֮̏̕b, qà֮̏̕b, qà֮̏̕b, qà֮̏̕b);
+Test_N(qȁ֮̀̕b, qȁ֮̀̕b, qȁ֮̀̕b, qȁ֮̀̕b, qȁ֮̀̕b);
+Test_N(qà֮̐̕b, qà֮̐̕b, qà֮̐̕b, qà֮̐̕b, qà֮̐̕b);
+Test_N(qa֮̐̀̕b, qa֮̐̀̕b, qa֮̐̀̕b, qa֮̐̀̕b, qa֮̐̀̕b);
+Test_N(qà֮̑̕b, qà֮̑̕b, qà֮̑̕b, qà֮̑̕b, qà֮̑̕b);
+Test_N(qȃ֮̀̕b, qȃ֮̀̕b, qȃ֮̀̕b, qȃ֮̀̕b, qȃ֮̀̕b);
+Test_N(qà֮̒̕b, qà֮̒̕b, qà֮̒̕b, qà֮̒̕b, qà֮̒̕b);
+Test_N(qa֮̒̀̕b, qa֮̒̀̕b, qa֮̒̀̕b, qa֮̒̀̕b, qa֮̒̀̕b);
+Test_N(qà֮̓̕b, qà֮̓̕b, qà֮̓̕b, qà֮̓̕b, qà֮̓̕b);
+Test_N(qa֮̓̀̕b, qa֮̓̀̕b, qa֮̓̀̕b, qa֮̓̀̕b, qa֮̓̀̕b);
+Test_N(qà֮̔̕b, qà֮̔̕b, qà֮̔̕b, qà֮̔̕b, qà֮̔̕b);
+Test_N(qa֮̔̀̕b, qa֮̔̀̕b, qa֮̔̀̕b, qa֮̔̀̕b, qa֮̔̀̕b);
+Test_N(qà̕̕͜b, qà̕̕͜b, qà̕̕͜b, qà̕̕͜b, qà̕̕͜b);
+Test_N(qà̕̕͜b, qà̕̕͜b, qà̕̕͜b, qà̕̕͜b, qà̕̕͜b);
+Test_N(qa᷺̖̖֚b, qa᷺̖̖֚b, qa᷺̖̖֚b, qa᷺̖̖֚b, qa᷺̖̖֚b);
+Test_N(qa᷺̖̖֚b, qa᷺̖̖֚b, qa᷺̖̖֚b, qa᷺̖̖֚b, qa᷺̖̖֚b);
+Test_N(qa᷺̖̗֚b, qa᷺̖̗֚b, qa᷺̖̗֚b, qa᷺̖̗֚b, qa᷺̖̗֚b);
+Test_N(qa᷺̗̖֚b, qa᷺̗̖֚b, qa᷺̗̖֚b, qa᷺̗̖֚b, qa᷺̗̖֚b);
+Test_N(qa᷺̖̘֚b, qa᷺̖̘֚b, qa᷺̖̘֚b, qa᷺̖̘֚b, qa᷺̖̘֚b);
+Test_N(qa᷺̘̖֚b, qa᷺̘̖֚b, qa᷺̘̖֚b, qa᷺̘̖֚b, qa᷺̘̖֚b);
+Test_N(qa᷺̖̙֚b, qa᷺̖̙֚b, qa᷺̖̙֚b, qa᷺̖̙֚b, qa᷺̖̙֚b);
+Test_N(qa᷺̙̖֚b, qa᷺̙̖֚b, qa᷺̙̖֚b, qa᷺̙̖֚b, qa᷺̙̖֚b);
+Test_N(qà̕̚͜b, qà̕̚͜b, qà̕̚͜b, qà̕̚͜b, qà̕̚͜b);
+Test_N(qà̚̕͜b, qà̚̕͜b, qà̚̕͜b, qà̚̕͜b, qà̚̕͜b);
+Test_N(qa᷎̛̛᷺b, qa᷎̛̛᷺b, qa᷎̛̛᷺b, qa᷎̛̛᷺b, qa᷎̛̛᷺b);
+Test_N(qa᷎̛̛᷺b, qa᷎̛̛᷺b, qa᷎̛̛᷺b, qa᷎̛̛᷺b, qa᷎̛̛᷺b);
+Test_N(qa᷺̖̜֚b, qa᷺̖̜֚b, qa᷺̖̜֚b, qa᷺̖̜֚b, qa᷺̖̜֚b);
+Test_N(qa᷺̜̖֚b, qa᷺̜̖֚b, qa᷺̜̖֚b, qa᷺̜̖֚b, qa᷺̜̖֚b);
+Test_N(qa᷺̖̝֚b, qa᷺̖̝֚b, qa᷺̖̝֚b, qa᷺̖̝֚b, qa᷺̖̝֚b);
+Test_N(qa᷺̝̖֚b, qa᷺̝̖֚b, qa᷺̝̖֚b, qa᷺̝̖֚b, qa᷺̝̖֚b);
+Test_N(qa᷺̖̞֚b, qa᷺̖̞֚b, qa᷺̖̞֚b, qa᷺̖̞֚b, qa᷺̖̞֚b);
+Test_N(qa᷺̞̖֚b, qa᷺̞̖֚b, qa᷺̞̖֚b, qa᷺̞̖֚b, qa᷺̞̖֚b);
+Test_N(qa᷺̖̟֚b, qa᷺̖̟֚b, qa᷺̖̟֚b, qa᷺̖̟֚b, qa᷺̖̟֚b);
+Test_N(qa᷺̟̖֚b, qa᷺̟̖֚b, qa᷺̟̖֚b, qa᷺̟̖֚b, qa᷺̟̖֚b);
+Test_N(qa᷺̖̠֚b, qa᷺̖̠֚b, qa᷺̖̠֚b, qa᷺̖̠֚b, qa᷺̖̠֚b);
+Test_N(qa᷺̠̖֚b, qa᷺̠̖֚b, qa᷺̠̖֚b, qa᷺̠̖֚b, qa᷺̠̖֚b);
+Test_N(qaུ̡̡᷎b, qaུ̡̡᷎b, qaུ̡̡᷎b, qaུ̡̡᷎b, qaུ̡̡᷎b);
+Test_N(qaུ̡̡᷎b, qaུ̡̡᷎b, qaུ̡̡᷎b, qaུ̡̡᷎b, qaུ̡̡᷎b);
+Test_N(qaུ̡̢᷎b, qaུ̡̢᷎b, qaུ̡̢᷎b, qaུ̡̢᷎b, qaུ̡̢᷎b);
+Test_N(qaུ̢̡᷎b, qaུ̢̡᷎b, qaུ̢̡᷎b, qaུ̢̡᷎b, qaུ̢̡᷎b);
+Test_N(qa᷺̖̣֚b, qa᷺̖̣֚b, qa᷺̖̣֚b, qa᷺̖̣֚b, qa᷺̖̣֚b);
+Test_N(qạ᷺̖֚b, qạ᷺̖֚b, qạ᷺̖֚b, qạ᷺̖֚b, qạ᷺̖֚b);
+Test_N(qa᷺̖̤֚b, qa᷺̖̤֚b, qa᷺̖̤֚b, qa᷺̖̤֚b, qa᷺̖̤֚b);
+Test_N(qa᷺̤̖֚b, qa᷺̤̖֚b, qa᷺̤̖֚b, qa᷺̤̖֚b, qa᷺̤̖֚b);
+Test_N(qa᷺̖̥֚b, qa᷺̖̥֚b, qa᷺̖̥֚b, qa᷺̖̥֚b, qa᷺̖̥֚b);
+Test_N(qḁ᷺̖֚b, qḁ᷺̖֚b, qḁ᷺̖֚b, qḁ᷺̖֚b, qḁ᷺̖֚b);
+Test_N(qa᷺̖̦֚b, qa᷺̖̦֚b, qa᷺̖̦֚b, qa᷺̖̦֚b, qa᷺̖̦֚b);
+Test_N(qa᷺̦̖֚b, qa᷺̦̖֚b, qa᷺̦̖֚b, qa᷺̦̖֚b, qa᷺̦̖֚b);
+Test_N(qaུ̡̧᷎b, qaུ̡̧᷎b, qaུ̡̧᷎b, qaུ̡̧᷎b, qaུ̡̧᷎b);
+Test_N(qaུ̧̡᷎b, qaུ̧̡᷎b, qaུ̧̡᷎b, qaུ̧̡᷎b, qaུ̧̡᷎b);
+Test_N(qaུ̡̨᷎b, qaུ̡̨᷎b, qaུ̡̨᷎b, qaུ̡̨᷎b, qaུ̡̨᷎b);
+Test_N(qąུ̡᷎b, qąུ̡᷎b, qąུ̡᷎b, qąུ̡᷎b, qąུ̡᷎b);
+Test_N(qa᷺̖̩֚b, qa᷺̖̩֚b, qa᷺̖̩֚b, qa᷺̖̩֚b, qa᷺̖̩֚b);
+Test_N(qa᷺̩̖֚b, qa᷺̩̖֚b, qa᷺̩̖֚b, qa᷺̩̖֚b, qa᷺̩̖֚b);
+Test_N(qa᷺̖̪֚b, qa᷺̖̪֚b, qa᷺̖̪֚b, qa᷺̖̪֚b, qa᷺̖̪֚b);
+Test_N(qa᷺̪̖֚b, qa᷺̪̖֚b, qa᷺̪̖֚b, qa᷺̪̖֚b, qa᷺̪̖֚b);
+Test_N(qa᷺̖̫֚b, qa᷺̖̫֚b, qa᷺̖̫֚b, qa᷺̖̫֚b, qa᷺̖̫֚b);
+Test_N(qa᷺̫̖֚b, qa᷺̫̖֚b, qa᷺̫̖֚b, qa᷺̫̖֚b, qa᷺̫̖֚b);
+Test_N(qa᷺̖̬֚b, qa᷺̖̬֚b, qa᷺̖̬֚b, qa᷺̖̬֚b, qa᷺̖̬֚b);
+Test_N(qa᷺̬̖֚b, qa᷺̬̖֚b, qa᷺̬̖֚b, qa᷺̬̖֚b, qa᷺̬̖֚b);
+Test_N(qa᷺̖̭֚b, qa᷺̖̭֚b, qa᷺̖̭֚b, qa᷺̖̭֚b, qa᷺̖̭֚b);
+Test_N(qa᷺̭̖֚b, qa᷺̭̖֚b, qa᷺̭̖֚b, qa᷺̭̖֚b, qa᷺̭̖֚b);
+Test_N(qa᷺̖̮֚b, qa᷺̖̮֚b, qa᷺̖̮֚b, qa᷺̖̮֚b, qa᷺̖̮֚b);
+Test_N(qa᷺̮̖֚b, qa᷺̮̖֚b, qa᷺̮̖֚b, qa᷺̮̖֚b, qa᷺̮̖֚b);
+Test_N(qa᷺̖̯֚b, qa᷺̖̯֚b, qa᷺̖̯֚b, qa᷺̖̯֚b, qa᷺̖̯֚b);
+Test_N(qa᷺̯̖֚b, qa᷺̯̖֚b, qa᷺̯̖֚b, qa᷺̯̖֚b, qa᷺̯̖֚b);
+Test_N(qa᷺̖̰֚b, qa᷺̖̰֚b, qa᷺̖̰֚b, qa᷺̖̰֚b, qa᷺̖̰֚b);
+Test_N(qa᷺̰̖֚b, qa᷺̰̖֚b, qa᷺̰̖֚b, qa᷺̰̖֚b, qa᷺̰̖֚b);
+Test_N(qa᷺̖̱֚b, qa᷺̖̱֚b, qa᷺̖̱֚b, qa᷺̖̱֚b, qa᷺̖̱֚b);
+Test_N(qa᷺̱̖֚b, qa᷺̱̖֚b, qa᷺̱̖֚b, qa᷺̱̖֚b, qa᷺̱̖֚b);
+Test_N(qa᷺̖̲֚b, qa᷺̖̲֚b, qa᷺̖̲֚b, qa᷺̖̲֚b, qa᷺̖̲֚b);
+Test_N(qa᷺̲̖֚b, qa᷺̲̖֚b, qa᷺̲̖֚b, qa᷺̲̖֚b, qa᷺̲̖֚b);
+Test_N(qa᷺̖̳֚b, qa᷺̖̳֚b, qa᷺̖̳֚b, qa᷺̖̳֚b, qa᷺̖̳֚b);
+Test_N(qa᷺̳̖֚b, qa᷺̳̖֚b, qa᷺̳̖֚b, qa᷺̳̖֚b, qa᷺̳̖֚b);
+Test_N(qa̴̴𖿰b, qa̴̴𖿰b, qa̴̴𖿰b, qa̴̴𖿰b, qa̴̴𖿰b);
+Test_N(qa̴̴𖿰b, qa̴̴𖿰b, qa̴̴𖿰b, qa̴̴𖿰b, qa̴̴𖿰b);
+Test_N(qa̴̵𖿰b, qa̴̵𖿰b, qa̴̵𖿰b, qa̴̵𖿰b, qa̴̵𖿰b);
+Test_N(qa̵̴𖿰b, qa̵̴𖿰b, qa̵̴𖿰b, qa̵̴𖿰b, qa̵̴𖿰b);
+Test_N(qa̴̶𖿰b, qa̴̶𖿰b, qa̴̶𖿰b, qa̴̶𖿰b, qa̴̶𖿰b);
+Test_N(qa̶̴𖿰b, qa̶̴𖿰b, qa̶̴𖿰b, qa̶̴𖿰b, qa̶̴𖿰b);
+Test_N(qa̴̷𖿰b, qa̴̷𖿰b, qa̴̷𖿰b, qa̴̷𖿰b, qa̴̷𖿰b);
+Test_N(qa̷̴𖿰b, qa̷̴𖿰b, qa̷̴𖿰b, qa̷̴𖿰b, qa̷̴𖿰b);
+Test_N(qa̴̸𖿰b, qa̴̸𖿰b, qa̴̸𖿰b, qa̴̸𖿰b, qa̴̸𖿰b);
+Test_N(qa̸̴𖿰b, qa̸̴𖿰b, qa̸̴𖿰b, qa̸̴𖿰b, qa̸̴𖿰b);
+Test_N(qa᷺̖̹֚b, qa᷺̖̹֚b, qa᷺̖̹֚b, qa᷺̖̹֚b, qa᷺̖̹֚b);
+Test_N(qa᷺̹̖֚b, qa᷺̹̖֚b, qa᷺̹̖֚b, qa᷺̹̖֚b, qa᷺̹̖֚b);
+Test_N(qa᷺̖̺֚b, qa᷺̖̺֚b, qa᷺̖̺֚b, qa᷺̖̺֚b, qa᷺̖̺֚b);
+Test_N(qa᷺̺̖֚b, qa᷺̺̖֚b, qa᷺̺̖֚b, qa᷺̺̖֚b, qa᷺̺̖֚b);
+Test_N(qa᷺̖̻֚b, qa᷺̖̻֚b, qa᷺̖̻֚b, qa᷺̖̻֚b, qa᷺̖̻֚b);
+Test_N(qa᷺̻̖֚b, qa᷺̻̖֚b, qa᷺̻̖֚b, qa᷺̻̖֚b, qa᷺̻̖֚b);
+Test_N(qa᷺̖̼֚b, qa᷺̖̼֚b, qa᷺̖̼֚b, qa᷺̖̼֚b, qa᷺̖̼֚b);
+Test_N(qa᷺̼̖֚b, qa᷺̼̖֚b, qa᷺̼̖֚b, qa᷺̼̖֚b, qa᷺̼̖֚b);
+Test_N(qà֮̽̕b, qà֮̽̕b, qà֮̽̕b, qà֮̽̕b, qà֮̽̕b);
+Test_N(qa֮̽̀̕b, qa֮̽̀̕b, qa֮̽̀̕b, qa֮̽̀̕b, qa֮̽̀̕b);
+Test_N(qà֮̾̕b, qà֮̾̕b, qà֮̾̕b, qà֮̾̕b, qà֮̾̕b);
+Test_N(qa֮̾̀̕b, qa֮̾̀̕b, qa֮̾̀̕b, qa֮̾̀̕b, qa֮̾̀̕b);
+Test_N(qà֮̿̕b, qà֮̿̕b, qà֮̿̕b, qà֮̿̕b, qà֮̿̕b);
+Test_N(qa֮̿̀̕b, qa֮̿̀̕b, qa֮̿̀̕b, qa֮̿̀̕b, qa֮̿̀̕b);
+Test_N(qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b);
+Test_N(qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b, qà֮̀̕b);
+Test_N(qà֮́̕b, qà֮́̕b, qà֮́̕b, qà֮́̕b, qà֮́̕b);
+Test_N(qá֮̀̕b, qá֮̀̕b, qá֮̀̕b, qá֮̀̕b, qá֮̀̕b);
+Test_N(qà֮͂̕b, qà֮͂̕b, qà֮͂̕b, qà֮͂̕b, qà֮͂̕b);
+Test_N(qa֮͂̀̕b, qa֮͂̀̕b, qa֮͂̀̕b, qa֮͂̀̕b, qa֮͂̀̕b);
+Test_N(qà֮̓̕b, qà֮̓̕b, qà֮̓̕b, qà֮̓̕b, qà֮̓̕b);
+Test_N(qa֮̓̀̕b, qa֮̓̀̕b, qa֮̓̀̕b, qa֮̓̀̕b, qa֮̓̀̕b);
+Test_N(qà֮̈́̕b, qà֮̈́̕b, qà֮̈́̕b, qà֮̈́̕b, qà֮̈́̕b);
+Test_N(qä֮́̀̕b, qä֮́̀̕b, qä֮́̀̕b, qä֮́̀̕b, qä֮́̀̕b);
+Test_N(qa͝ͅͅb, qa͝ͅͅb, qa͝ͅͅb, qa͝ͅͅb, qa͝ͅͅb);
+Test_N(qa͝ͅͅb, qa͝ͅͅb, qa͝ͅͅb, qa͝ͅͅb, qa͝ͅͅb);
+Test_N(qà֮͆̕b, qà֮͆̕b, qà֮͆̕b, qà֮͆̕b, qà֮͆̕b);
+Test_N(qa֮͆̀̕b, qa֮͆̀̕b, qa֮͆̀̕b, qa֮͆̀̕b, qa֮͆̀̕b);
+Test_N(qa᷺̖͇֚b, qa᷺̖͇֚b, qa᷺̖͇֚b, qa᷺̖͇֚b, qa᷺̖͇֚b);
+Test_N(qa᷺͇̖֚b, qa᷺͇̖֚b, qa᷺͇̖֚b, qa᷺͇̖֚b, qa᷺͇̖֚b);
+Test_N(qa᷺̖͈֚b, qa᷺̖͈֚b, qa᷺̖͈֚b, qa᷺̖͈֚b, qa᷺̖͈֚b);
+Test_N(qa᷺͈̖֚b, qa᷺͈̖֚b, qa᷺͈̖֚b, qa᷺͈̖֚b, qa᷺͈̖֚b);
+Test_N(qa᷺̖͉֚b, qa᷺̖͉֚b, qa᷺̖͉֚b, qa᷺̖͉֚b, qa᷺̖͉֚b);
+Test_N(qa᷺͉̖֚b, qa᷺͉̖֚b, qa᷺͉̖֚b, qa᷺͉̖֚b, qa᷺͉̖֚b);
+Test_N(qà֮͊̕b, qà֮͊̕b, qà֮͊̕b, qà֮͊̕b, qà֮͊̕b);
+Test_N(qa֮͊̀̕b, qa֮͊̀̕b, qa֮͊̀̕b, qa֮͊̀̕b, qa֮͊̀̕b);
+Test_N(qà֮͋̕b, qà֮͋̕b, qà֮͋̕b, qà֮͋̕b, qà֮͋̕b);
+Test_N(qa֮͋̀̕b, qa֮͋̀̕b, qa֮͋̀̕b, qa֮͋̀̕b, qa֮͋̀̕b);
+Test_N(qà֮͌̕b, qà֮͌̕b, qà֮͌̕b, qà֮͌̕b, qà֮͌̕b);
+Test_N(qa֮͌̀̕b, qa֮͌̀̕b, qa֮͌̀̕b, qa֮͌̀̕b, qa֮͌̀̕b);
+Test_N(qa᷺̖͍֚b, qa᷺̖͍֚b, qa᷺̖͍֚b, qa᷺̖͍֚b, qa᷺̖͍֚b);
+Test_N(qa᷺͍̖֚b, qa᷺͍̖֚b, qa᷺͍̖֚b, qa᷺͍̖֚b, qa᷺͍̖֚b);
+Test_N(qa᷺̖͎֚b, qa᷺̖͎֚b, qa᷺̖͎֚b, qa᷺̖͎֚b, qa᷺̖͎֚b);
+Test_N(qa᷺͎̖֚b, qa᷺͎̖֚b, qa᷺͎̖֚b, qa᷺͎̖֚b, qa᷺͎̖֚b);
+Test_N(qà֮͐̕b, qà֮͐̕b, qà֮͐̕b, qà֮͐̕b, qà֮͐̕b);
+Test_N(qa֮͐̀̕b, qa֮͐̀̕b, qa֮͐̀̕b, qa֮͐̀̕b, qa֮͐̀̕b);
+Test_N(qà֮͑̕b, qà֮͑̕b, qà֮͑̕b, qà֮͑̕b, qà֮͑̕b);
+Test_N(qa֮͑̀̕b, qa֮͑̀̕b, qa֮͑̀̕b, qa֮͑̀̕b, qa֮͑̀̕b);
+Test_N(qà֮͒̕b, qà֮͒̕b, qà֮͒̕b, qà֮͒̕b, qà֮͒̕b);
+Test_N(qa֮͒̀̕b, qa֮͒̀̕b, qa֮͒̀̕b, qa֮͒̀̕b, qa֮͒̀̕b);
+Test_N(qa᷺̖͓֚b, qa᷺̖͓֚b, qa᷺̖͓֚b, qa᷺̖͓֚b, qa᷺̖͓֚b);
+Test_N(qa᷺͓̖֚b, qa᷺͓̖֚b, qa᷺͓̖֚b, qa᷺͓̖֚b, qa᷺͓̖֚b);
+Test_N(qa᷺̖͔֚b, qa᷺̖͔֚b, qa᷺̖͔֚b, qa᷺̖͔֚b, qa᷺̖͔֚b);
+Test_N(qa᷺͔̖֚b, qa᷺͔̖֚b, qa᷺͔̖֚b, qa᷺͔̖֚b, qa᷺͔̖֚b);
+Test_N(qa᷺̖͕֚b, qa᷺̖͕֚b, qa᷺̖͕֚b, qa᷺̖͕֚b, qa᷺̖͕֚b);
+Test_N(qa᷺͕̖֚b, qa᷺͕̖֚b, qa᷺͕̖֚b, qa᷺͕̖֚b, qa᷺͕̖֚b);
+Test_N(qa᷺̖͖֚b, qa᷺̖͖֚b, qa᷺̖͖֚b, qa᷺̖͖֚b, qa᷺̖͖֚b);
+Test_N(qa᷺͖̖֚b, qa᷺͖̖֚b, qa᷺͖̖֚b, qa᷺͖̖֚b, qa᷺͖̖֚b);
+Test_N(qà֮͗̕b, qà֮͗̕b, qà֮͗̕b, qà֮͗̕b, qà֮͗̕b);
+Test_N(qa֮͗̀̕b, qa֮͗̀̕b, qa֮͗̀̕b, qa֮͗̀̕b, qa֮͗̀̕b);
+Test_N(qà̕͘͜b, qà̕͘͜b, qà̕͘͜b, qà̕͘͜b, qà̕͘͜b);
+Test_N(qà͘̕͜b, qà͘̕͜b, qà͘̕͜b, qà͘̕͜b, qà͘̕͜b);
+Test_N(qa᷺̖͙֚b, qa᷺̖͙֚b, qa᷺̖͙֚b, qa᷺̖͙֚b, qa᷺̖͙֚b);
+Test_N(qa᷺͙̖֚b, qa᷺͙̖֚b, qa᷺͙̖֚b, qa᷺͙̖֚b, qa᷺͙̖֚b);
+Test_N(qa᷺̖͚֚b, qa᷺̖͚֚b, qa᷺̖͚֚b, qa᷺̖͚֚b, qa᷺̖͚֚b);
+Test_N(qa᷺͚̖֚b, qa᷺͚̖֚b, qa᷺͚̖֚b, qa᷺͚̖֚b, qa᷺͚̖֚b);
+Test_N(qà֮͛̕b, qà֮͛̕b, qà֮͛̕b, qà֮͛̕b, qà֮͛̕b);
+Test_N(qa֮͛̀̕b, qa֮͛̀̕b, qa֮͛̀̕b, qa֮͛̀̕b, qa֮͛̀̕b);
+Test_N(qa̕͜͜͝b, qa̕͜͜͝b, qa̕͜͜͝b, qa̕͜͜͝b, qa̕͜͜͝b);
+Test_N(qa̕͜͜͝b, qa̕͜͜͝b, qa̕͜͜͝b, qa̕͜͜͝b, qa̕͜͜͝b);
+Test_N(qa͜͝͝ͅb, qa͜͝͝ͅb, qa͜͝͝ͅb, qa͜͝͝ͅb, qa͜͝͝ͅb);
+Test_N(qa͜͝͝ͅb, qa͜͝͝ͅb, qa͜͝͝ͅb, qa͜͝͝ͅb, qa͜͝͝ͅb);
+Test_N(qa͜͝͞ͅb, qa͜͝͞ͅb, qa͜͝͞ͅb, qa͜͝͞ͅb, qa͜͝͞ͅb);
+Test_N(qa͜͞͝ͅb, qa͜͞͝ͅb, qa͜͞͝ͅb, qa͜͞͝ͅb, qa͜͞͝ͅb);
+Test_N(qa̕͜͟͝b, qa̕͜͟͝b, qa̕͜͟͝b, qa̕͜͟͝b, qa̕͜͟͝b);
+Test_N(qa̕͟͜͝b, qa̕͟͜͝b, qa̕͟͜͝b, qa̕͟͜͝b, qa̕͟͜͝b);
+Test_N(qa͜͝͠ͅb, qa͜͝͠ͅb, qa͜͝͠ͅb, qa͜͝͠ͅb, qa͜͝͠ͅb);
+Test_N(qa͜͠͝ͅb, qa͜͠͝ͅb, qa͜͠͝ͅb, qa͜͠͝ͅb, qa͜͠͝ͅb);
+Test_N(qa͜͝͡ͅb, qa͜͝͡ͅb, qa͜͝͡ͅb, qa͜͝͡ͅb, qa͜͝͡ͅb);
+Test_N(qa͜͡͝ͅb, qa͜͡͝ͅb, qa͜͡͝ͅb, qa͜͡͝ͅb, qa͜͡͝ͅb);
+Test_N(qa̕͜͢͝b, qa̕͜͢͝b, qa̕͜͢͝b, qa̕͜͢͝b, qa̕͜͢͝b);
+Test_N(qa̕͢͜͝b, qa̕͢͜͝b, qa̕͢͜͝b, qa̕͢͜͝b, qa̕͢͜͝b);
+Test_N(qà֮ͣ̕b, qà֮ͣ̕b, qà֮ͣ̕b, qà֮ͣ̕b, qà֮ͣ̕b);
+Test_N(qa֮ͣ̀̕b, qa֮ͣ̀̕b, qa֮ͣ̀̕b, qa֮ͣ̀̕b, qa֮ͣ̀̕b);
+Test_N(qà֮ͤ̕b, qà֮ͤ̕b, qà֮ͤ̕b, qà֮ͤ̕b, qà֮ͤ̕b);
+Test_N(qa֮ͤ̀̕b, qa֮ͤ̀̕b, qa֮ͤ̀̕b, qa֮ͤ̀̕b, qa֮ͤ̀̕b);
+Test_N(qà֮ͥ̕b, qà֮ͥ̕b, qà֮ͥ̕b, qà֮ͥ̕b, qà֮ͥ̕b);
+Test_N(qa֮ͥ̀̕b, qa֮ͥ̀̕b, qa֮ͥ̀̕b, qa֮ͥ̀̕b, qa֮ͥ̀̕b);
+Test_N(qà֮ͦ̕b, qà֮ͦ̕b, qà֮ͦ̕b, qà֮ͦ̕b, qà֮ͦ̕b);
+Test_N(qa֮ͦ̀̕b, qa֮ͦ̀̕b, qa֮ͦ̀̕b, qa֮ͦ̀̕b, qa֮ͦ̀̕b);
+Test_N(qà֮ͧ̕b, qà֮ͧ̕b, qà֮ͧ̕b, qà֮ͧ̕b, qà֮ͧ̕b);
+Test_N(qa֮ͧ̀̕b, qa֮ͧ̀̕b, qa֮ͧ̀̕b, qa֮ͧ̀̕b, qa֮ͧ̀̕b);
+Test_N(qà֮ͨ̕b, qà֮ͨ̕b, qà֮ͨ̕b, qà֮ͨ̕b, qà֮ͨ̕b);
+Test_N(qa֮ͨ̀̕b, qa֮ͨ̀̕b, qa֮ͨ̀̕b, qa֮ͨ̀̕b, qa֮ͨ̀̕b);
+Test_N(qà֮ͩ̕b, qà֮ͩ̕b, qà֮ͩ̕b, qà֮ͩ̕b, qà֮ͩ̕b);
+Test_N(qa֮ͩ̀̕b, qa֮ͩ̀̕b, qa֮ͩ̀̕b, qa֮ͩ̀̕b, qa֮ͩ̀̕b);
+Test_N(qà֮ͪ̕b, qà֮ͪ̕b, qà֮ͪ̕b, qà֮ͪ̕b, qà֮ͪ̕b);
+Test_N(qa֮ͪ̀̕b, qa֮ͪ̀̕b, qa֮ͪ̀̕b, qa֮ͪ̀̕b, qa֮ͪ̀̕b);
+Test_N(qà֮ͫ̕b, qà֮ͫ̕b, qà֮ͫ̕b, qà֮ͫ̕b, qà֮ͫ̕b);
+Test_N(qa֮ͫ̀̕b, qa֮ͫ̀̕b, qa֮ͫ̀̕b, qa֮ͫ̀̕b, qa֮ͫ̀̕b);
+Test_N(qà֮ͬ̕b, qà֮ͬ̕b, qà֮ͬ̕b, qà֮ͬ̕b, qà֮ͬ̕b);
+Test_N(qa֮ͬ̀̕b, qa֮ͬ̀̕b, qa֮ͬ̀̕b, qa֮ͬ̀̕b, qa֮ͬ̀̕b);
+Test_N(qà֮ͭ̕b, qà֮ͭ̕b, qà֮ͭ̕b, qà֮ͭ̕b, qà֮ͭ̕b);
+Test_N(qa֮ͭ̀̕b, qa֮ͭ̀̕b, qa֮ͭ̀̕b, qa֮ͭ̀̕b, qa֮ͭ̀̕b);
+Test_N(qà֮ͮ̕b, qà֮ͮ̕b, qà֮ͮ̕b, qà֮ͮ̕b, qà֮ͮ̕b);
+Test_N(qa֮ͮ̀̕b, qa֮ͮ̀̕b, qa֮ͮ̀̕b, qa֮ͮ̀̕b, qa֮ͮ̀̕b);
+Test_N(qà֮ͯ̕b, qà֮ͯ̕b, qà֮ͯ̕b, qà֮ͯ̕b, qà֮ͯ̕b);
+Test_N(qa֮ͯ̀̕b, qa֮ͯ̀̕b, qa֮ͯ̀̕b, qa֮ͯ̀̕b, qa֮ͯ̀̕b);
+Test_N(qà֮҃̕b, qà֮҃̕b, qà֮҃̕b, qà֮҃̕b, qà֮҃̕b);
+Test_N(qa֮҃̀̕b, qa֮҃̀̕b, qa֮҃̀̕b, qa֮҃̀̕b, qa֮҃̀̕b);
+Test_N(qà֮҄̕b, qà֮҄̕b, qà֮҄̕b, qà֮҄̕b, qà֮҄̕b);
+Test_N(qa֮҄̀̕b, qa֮҄̀̕b, qa֮҄̀̕b, qa֮҄̀̕b, qa֮҄̀̕b);
+Test_N(qà֮҅̕b, qà֮҅̕b, qà֮҅̕b, qà֮҅̕b, qà֮҅̕b);
+Test_N(qa֮҅̀̕b, qa֮҅̀̕b, qa֮҅̀̕b, qa֮҅̀̕b, qa֮҅̀̕b);
+Test_N(qà֮҆̕b, qà֮҆̕b, qà֮҆̕b, qà֮҆̕b, qà֮҆̕b);
+Test_N(qa֮҆̀̕b, qa֮҆̀̕b, qa֮҆̀̕b, qa֮҆̀̕b, qa֮҆̀̕b);
+Test_N(qà֮҇̕b, qà֮҇̕b, qà֮҇̕b, qà֮҇̕b, qà֮҇̕b);
+Test_N(qa֮҇̀̕b, qa֮҇̀̕b, qa֮҇̀̕b, qa֮҇̀̕b, qa֮҇̀̕b);
+Test_N(qa᷺̖֑֚b, qa᷺̖֑֚b, qa᷺̖֑֚b, qa᷺̖֑֚b, qa᷺̖֑֚b);
+Test_N(qa᷺֑̖֚b, qa᷺֑̖֚b, qa᷺֑̖֚b, qa᷺֑̖֚b, qa᷺֑̖֚b);
+Test_N(qà֮֒̕b, qà֮֒̕b, qà֮֒̕b, qà֮֒̕b, qà֮֒̕b);
+Test_N(qa֮֒̀̕b, qa֮֒̀̕b, qa֮֒̀̕b, qa֮֒̀̕b, qa֮֒̀̕b);
+Test_N(qà֮֓̕b, qà֮֓̕b, qà֮֓̕b, qà֮֓̕b, qà֮֓̕b);
+Test_N(qa֮֓̀̕b, qa֮֓̀̕b, qa֮֓̀̕b, qa֮֓̀̕b, qa֮֓̀̕b);
+Test_N(qà֮֔̕b, qà֮֔̕b, qà֮֔̕b, qà֮֔̕b, qà֮֔̕b);
+Test_N(qa֮֔̀̕b, qa֮֔̀̕b, qa֮֔̀̕b, qa֮֔̀̕b, qa֮֔̀̕b);
+Test_N(qà֮֕̕b, qà֮֕̕b, qà֮֕̕b, qà֮֕̕b, qà֮֕̕b);
+Test_N(qa֮֕̀̕b, qa֮֕̀̕b, qa֮֕̀̕b, qa֮֕̀̕b, qa֮֕̀̕b);
+Test_N(qa᷺̖֖֚b, qa᷺̖֖֚b, qa᷺̖֖֚b, qa᷺̖֖֚b, qa᷺̖֖֚b);
+Test_N(qa᷺֖̖֚b, qa᷺֖̖֚b, qa᷺֖̖֚b, qa᷺֖̖֚b, qa᷺֖̖֚b);
+Test_N(qà֮֗̕b, qà֮֗̕b, qà֮֗̕b, qà֮֗̕b, qà֮֗̕b);
+Test_N(qa֮֗̀̕b, qa֮֗̀̕b, qa֮֗̀̕b, qa֮֗̀̕b, qa֮֗̀̕b);
+Test_N(qà֮֘̕b, qà֮֘̕b, qà֮֘̕b, qà֮֘̕b, qà֮֘̕b);
+Test_N(qa֮֘̀̕b, qa֮֘̀̕b, qa֮֘̀̕b, qa֮֘̀̕b, qa֮֘̀̕b);
+Test_N(qà֮֙̕b, qà֮֙̕b, qà֮֙̕b, qà֮֙̕b, qà֮֙̕b);
+Test_N(qa֮֙̀̕b, qa֮֙̀̕b, qa֮֙̀̕b, qa֮֙̀̕b, qa֮֙̀̕b);
+Test_N(qa̖֚֚〮b, qa̖֚֚〮b, qa̖֚֚〮b, qa̖֚֚〮b, qa̖֚֚〮b);
+Test_N(qa̖֚֚〮b, qa̖֚֚〮b, qa̖֚֚〮b, qa̖֚֚〮b, qa̖֚֚〮b);
+Test_N(qa᷺̖֛֚b, qa᷺̖֛֚b, qa᷺̖֛֚b, qa᷺̖֛֚b, qa᷺̖֛֚b);
+Test_N(qa᷺֛̖֚b, qa᷺֛̖֚b, qa᷺֛̖֚b, qa᷺֛̖֚b, qa᷺֛̖֚b);
+Test_N(qà֮֜̕b, qà֮֜̕b, qà֮֜̕b, qà֮֜̕b, qà֮֜̕b);
+Test_N(qa֮֜̀̕b, qa֮֜̀̕b, qa֮֜̀̕b, qa֮֜̀̕b, qa֮֜̀̕b);
+Test_N(qà֮֝̕b, qà֮֝̕b, qà֮֝̕b, qà֮֝̕b, qà֮֝̕b);
+Test_N(qa֮֝̀̕b, qa֮֝̀̕b, qa֮֝̀̕b, qa֮֝̀̕b, qa֮֝̀̕b);
+Test_N(qà֮֞̕b, qà֮֞̕b, qà֮֞̕b, qà֮֞̕b, qà֮֞̕b);
+Test_N(qa֮֞̀̕b, qa֮֞̀̕b, qa֮֞̀̕b, qa֮֞̀̕b, qa֮֞̀̕b);
+Test_N(qà֮֟̕b, qà֮֟̕b, qà֮֟̕b, qà֮֟̕b, qà֮֟̕b);
+Test_N(qa֮֟̀̕b, qa֮֟̀̕b, qa֮֟̀̕b, qa֮֟̀̕b, qa֮֟̀̕b);
+Test_N(qà֮֠̕b, qà֮֠̕b, qà֮֠̕b, qà֮֠̕b, qà֮֠̕b);
+Test_N(qa֮֠̀̕b, qa֮֠̀̕b, qa֮֠̀̕b, qa֮֠̀̕b, qa֮֠̀̕b);
+Test_N(qà֮֡̕b, qà֮֡̕b, qà֮֡̕b, qà֮֡̕b, qà֮֡̕b);
+Test_N(qa֮֡̀̕b, qa֮֡̀̕b, qa֮֡̀̕b, qa֮֡̀̕b, qa֮֡̀̕b);
+Test_N(qa᷺̖֢֚b, qa᷺̖֢֚b, qa᷺̖֢֚b, qa᷺̖֢֚b, qa᷺̖֢֚b);
+Test_N(qa᷺֢̖֚b, qa᷺֢̖֚b, qa᷺֢̖֚b, qa᷺֢̖֚b, qa᷺֢̖֚b);
+Test_N(qa᷺̖֣֚b, qa᷺̖֣֚b, qa᷺̖֣֚b, qa᷺̖֣֚b, qa᷺̖֣֚b);
+Test_N(qa᷺֣̖֚b, qa᷺֣̖֚b, qa᷺֣̖֚b, qa᷺֣̖֚b, qa᷺֣̖֚b);
+Test_N(qa᷺̖֤֚b, qa᷺̖֤֚b, qa᷺̖֤֚b, qa᷺̖֤֚b, qa᷺̖֤֚b);
+Test_N(qa᷺֤̖֚b, qa᷺֤̖֚b, qa᷺֤̖֚b, qa᷺֤̖֚b, qa᷺֤̖֚b);
+Test_N(qa᷺̖֥֚b, qa᷺̖֥֚b, qa᷺̖֥֚b, qa᷺̖֥֚b, qa᷺̖֥֚b);
+Test_N(qa᷺֥̖֚b, qa᷺֥̖֚b, qa᷺֥̖֚b, qa᷺֥̖֚b, qa᷺֥̖֚b);
+Test_N(qa᷺̖֦֚b, qa᷺̖֦֚b, qa᷺̖֦֚b, qa᷺̖֦֚b, qa᷺̖֦֚b);
+Test_N(qa᷺֦̖֚b, qa᷺֦̖֚b, qa᷺֦̖֚b, qa᷺֦̖֚b, qa᷺֦̖֚b);
+Test_N(qa᷺̖֧֚b, qa᷺̖֧֚b, qa᷺̖֧֚b, qa᷺̖֧֚b, qa᷺̖֧֚b);
+Test_N(qa᷺֧̖֚b, qa᷺֧̖֚b, qa᷺֧̖֚b, qa᷺֧̖֚b, qa᷺֧̖֚b);
+Test_N(qà֮֨̕b, qà֮֨̕b, qà֮֨̕b, qà֮֨̕b, qà֮֨̕b);
+Test_N(qa֮֨̀̕b, qa֮֨̀̕b, qa֮֨̀̕b, qa֮֨̀̕b, qa֮֨̀̕b);
+Test_N(qà֮֩̕b, qà֮֩̕b, qà֮֩̕b, qà֮֩̕b, qà֮֩̕b);
+Test_N(qa֮֩̀̕b, qa֮֩̀̕b, qa֮֩̀̕b, qa֮֩̀̕b, qa֮֩̀̕b);
+Test_N(qa᷺̖֪֚b, qa᷺̖֪֚b, qa᷺̖֪֚b, qa᷺̖֪֚b, qa᷺̖֪֚b);
+Test_N(qa᷺֪̖֚b, qa᷺֪̖֚b, qa᷺֪̖֚b, qa᷺֪̖֚b, qa᷺֪̖֚b);
+Test_N(qà֮֫̕b, qà֮֫̕b, qà֮֫̕b, qà֮֫̕b, qà֮֫̕b);
+Test_N(qa֮֫̀̕b, qa֮֫̀̕b, qa֮֫̀̕b, qa֮֫̀̕b, qa֮֫̀̕b);
+Test_N(qà֮֬̕b, qà֮֬̕b, qà֮֬̕b, qà֮֬̕b, qà֮֬̕b);
+Test_N(qa֮֬̀̕b, qa֮֬̀̕b, qa֮֬̀̕b, qa֮֬̀̕b, qa֮֬̀̕b);
+Test_N(qa̖֚֭〮b, qa̖֚֭〮b, qa̖֚֭〮b, qa̖֚֭〮b, qa̖֚֭〮b);
+Test_N(qa̖֭֚〮b, qa̖֭֚〮b, qa̖֭֚〮b, qa̖֭֚〮b, qa̖֭֚〮b);
+Test_N(qà𝅭֮֮b, qà𝅭֮֮b, qà𝅭֮֮b, qà𝅭֮֮b, qà𝅭֮֮b);
+Test_N(qà𝅭֮֮b, qà𝅭֮֮b, qà𝅭֮֮b, qà𝅭֮֮b, qà𝅭֮֮b);
+Test_N(qà֮֯̕b, qà֮֯̕b, qà֮֯̕b, qà֮֯̕b, qà֮֯̕b);
+Test_N(qa֮֯̀̕b, qa֮֯̀̕b, qa֮֯̀̕b, qa֮֯̀̕b, qa֮֯̀̕b);
+Test_N(qa्ְְֱb, qa्ְְֱb, qa्ְְֱb, qa्ְְֱb, qa्ְְֱb);
+Test_N(qa्ְְֱb, qa्ְְֱb, qa्ְְֱb, qa्ְְֱb, qa्ְְֱb);
+Test_N(qaְֱֱֲb, qaְֱֱֲb, qaְֱֱֲb, qaְֱֱֲb, qaְֱֱֲb);
+Test_N(qaְֱֱֲb, qaְֱֱֲb, qaְֱֱֲb, qaְֱֱֲb, qaְֱֱֲb);
+Test_N(qaֱֲֲֳb, qaֱֲֲֳb, qaֱֲֲֳb, qaֱֲֲֳb, qaֱֲֲֳb);
+Test_N(qaֱֲֲֳb, qaֱֲֲֳb, qaֱֲֲֳb, qaֱֲֲֳb, qaֱֲֲֳb);
+Test_N(qaֲֳֳִb, qaֲֳֳִb, qaֲֳֳִb, qaֲֳֳִb, qaֲֳֳִb);
+Test_N(qaֲֳֳִb, qaֲֳֳִb, qaֲֳֳִb, qaֲֳֳִb, qaֲֳֳִb);
+Test_N(qaֳִִֵb, qaֳִִֵb, qaֳִִֵb, qaֳִִֵb, qaֳִִֵb);
+Test_N(qaֳִִֵb, qaֳִִֵb, qaֳִִֵb, qaֳִִֵb, qaֳִִֵb);
+Test_N(qaִֵֵֶb, qaִֵֵֶb, qaִֵֵֶb, qaִֵֵֶb, qaִֵֵֶb);
+Test_N(qaִֵֵֶb, qaִֵֵֶb, qaִֵֵֶb, qaִֵֵֶb, qaִֵֵֶb);
+Test_N(qaֵֶֶַb, qaֵֶֶַb, qaֵֶֶַb, qaֵֶֶַb, qaֵֶֶַb);
+Test_N(qaֵֶֶַb, qaֵֶֶַb, qaֵֶֶַb, qaֵֶֶַb, qaֵֶֶַb);
+Test_N(qaֶַַָb, qaֶַַָb, qaֶַַָb, qaֶַַָb, qaֶַַָb);
+Test_N(qaֶַַָb, qaֶַַָb, qaֶַַָb, qaֶַַָb, qaֶַַָb);
+Test_N(qaַָָֹb, qaַָָֹb, qaַָָֹb, qaַָָֹb, qaַָָֹb);
+Test_N(qaַָָֹb, qaַָָֹb, qaַָָֹb, qaַָָֹb, qaַָָֹb);
+Test_N(qaָֹֹֻb, qaָֹֹֻb, qaָֹֹֻb, qaָֹֹֻb, qaָֹֹֻb);
+Test_N(qaָֹֹֻb, qaָֹֹֻb, qaָֹֹֻb, qaָֹֹֻb, qaָֹֹֻb);
+Test_N(qaָֹֺֻb, qaָֹֺֻb, qaָֹֺֻb, qaָֹֺֻb, qaָֹֺֻb);
+Test_N(qaָֺֹֻb, qaָֺֹֻb, qaָֺֹֻb, qaָֺֹֻb, qaָֺֹֻb);
+Test_N(qaֹֻֻּb, qaֹֻֻּb, qaֹֻֻּb, qaֹֻֻּb, qaֹֻֻּb);
+Test_N(qaֹֻֻּb, qaֹֻֻּb, qaֹֻֻּb, qaֹֻֻּb, qaֹֻֻּb);
+Test_N(qaֻּּֽb, qaֻּּֽb, qaֻּּֽb, qaֻּּֽb, qaֻּּֽb);
+Test_N(qaֻּּֽb, qaֻּּֽb, qaֻּּֽb, qaֻּּֽb, qaֻּּֽb);
+Test_N(qaּֽֽֿb, qaּֽֽֿb, qaּֽֽֿb, qaּֽֽֿb, qaּֽֽֿb);
+Test_N(qaּֽֽֿb, qaּֽֽֿb, qaּֽֽֿb, qaּֽֽֿb, qaּֽֽֿb);
+Test_N(qaֽֿֿׁb, qaֽֿֿׁb, qaֽֿֿׁb, qaֽֿֿׁb, qaֽֿֿׁb);
+Test_N(qaֽֿֿׁb, qaֽֿֿׁb, qaֽֿֿׁb, qaֽֿֿׁb, qaֽֿֿׁb);
+Test_N(qaֿׁׁׂb, qaֿׁׁׂb, qaֿׁׁׂb, qaֿׁׁׂb, qaֿׁׁׂb);
+Test_N(qaֿׁׁׂb, qaֿׁׁׂb, qaֿׁׁׂb, qaֿׁׁׂb, qaֿׁׁׂb);
+Test_N(qaׁׂׂﬞb, qaׁׂׂﬞb, qaׁׂׂﬞb, qaׁׂׂﬞb, qaׁׂׂﬞb);
+Test_N(qaׁׂׂﬞb, qaׁׂׂﬞb, qaׁׂׂﬞb, qaׁׂׂﬞb, qaׁׂׂﬞb);
+Test_N(qà֮ׄ̕b, qà֮ׄ̕b, qà֮ׄ̕b, qà֮ׄ̕b, qà֮ׄ̕b);
+Test_N(qa֮ׄ̀̕b, qa֮ׄ̀̕b, qa֮ׄ̀̕b, qa֮ׄ̀̕b, qa֮ׄ̀̕b);
+Test_N(qa᷺̖ׅ֚b, qa᷺̖ׅ֚b, qa᷺̖ׅ֚b, qa᷺̖ׅ֚b, qa᷺̖ׅ֚b);
+Test_N(qa᷺ׅ̖֚b, qa᷺ׅ̖֚b, qa᷺ׅ̖֚b, qa᷺ׅ̖֚b, qa᷺ׅ̖֚b);
+Test_N(qaַָׇֹb, qaַָׇֹb, qaַָׇֹb, qaַָׇֹb, qaַָׇֹb);
+Test_N(qaַׇָֹb, qaַׇָֹb, qaַׇָֹb, qaַׇָֹb, qaַׇָֹb);
+Test_N(qà֮ؐ̕b, qà֮ؐ̕b, qà֮ؐ̕b, qà֮ؐ̕b, qà֮ؐ̕b);
+Test_N(qa֮ؐ̀̕b, qa֮ؐ̀̕b, qa֮ؐ̀̕b, qa֮ؐ̀̕b, qa֮ؐ̀̕b);
+Test_N(qà֮ؑ̕b, qà֮ؑ̕b, qà֮ؑ̕b, qà֮ؑ̕b, qà֮ؑ̕b);
+Test_N(qa֮ؑ̀̕b, qa֮ؑ̀̕b, qa֮ؑ̀̕b, qa֮ؑ̀̕b, qa֮ؑ̀̕b);
+Test_N(qà֮ؒ̕b, qà֮ؒ̕b, qà֮ؒ̕b, qà֮ؒ̕b, qà֮ؒ̕b);
+Test_N(qa֮ؒ̀̕b, qa֮ؒ̀̕b, qa֮ؒ̀̕b, qa֮ؒ̀̕b, qa֮ؒ̀̕b);
+Test_N(qà֮ؓ̕b, qà֮ؓ̕b, qà֮ؓ̕b, qà֮ؓ̕b, qà֮ؓ̕b);
+Test_N(qa֮ؓ̀̕b, qa֮ؓ̀̕b, qa֮ؓ̀̕b, qa֮ؓ̀̕b, qa֮ؓ̀̕b);
+Test_N(qà֮ؔ̕b, qà֮ؔ̕b, qà֮ؔ̕b, qà֮ؔ̕b, qà֮ؔ̕b);
+Test_N(qa֮ؔ̀̕b, qa֮ؔ̀̕b, qa֮ؔ̀̕b, qa֮ؔ̀̕b, qa֮ؔ̀̕b);
+Test_N(qà֮ؕ̕b, qà֮ؕ̕b, qà֮ؕ̕b, qà֮ؕ̕b, qà֮ؕ̕b);
+Test_N(qa֮ؕ̀̕b, qa֮ؕ̀̕b, qa֮ؕ̀̕b, qa֮ؕ̀̕b, qa֮ؕ̀̕b);
+Test_N(qà֮ؖ̕b, qà֮ؖ̕b, qà֮ؖ̕b, qà֮ؖ̕b, qà֮ؖ̕b);
+Test_N(qa֮ؖ̀̕b, qa֮ؖ̀̕b, qa֮ؖ̀̕b, qa֮ؖ̀̕b, qa֮ؖ̀̕b);
+Test_N(qà֮ؗ̕b, qà֮ؗ̕b, qà֮ؗ̕b, qà֮ؗ̕b, qà֮ؗ̕b);
+Test_N(qa֮ؗ̀̕b, qa֮ؗ̀̕b, qa֮ؗ̀̕b, qa֮ؗ̀̕b, qa֮ؗ̀̕b);
+Test_N(qaٍؘؘؙb, qaٍؘؘؙb, qaٍؘؘؙb, qaٍؘؘؙb, qaٍؘؘؙb);
+Test_N(qaٍؘؘؙb, qaٍؘؘؙb, qaٍؘؘؙb, qaٍؘؘؙb, qaٍؘؘؙb);
+Test_N(qaؘؙؙؚb, qaؘؙؙؚb, qaؘؙؙؚb, qaؘؙؙؚb, qaؘؙؙؚb);
+Test_N(qaؘؙؙؚb, qaؘؙؙؚb, qaؘؙؙؚb, qaؘؙؙؚb, qaؘؙؙؚb);
+Test_N(qaؙؚؚّb, qaؙؚؚّb, qaؙؚؚّb, qaؙؚؚّb, qaؙؚؚّb);
+Test_N(qaؙؚؚّb, qaؙؚؚّb, qaؙؚؚّb, qaؙؚؚّb, qaؙؚؚّb);
+Test_N(qaﬞًًٌb, qaﬞًًٌb, qaﬞًًٌb, qaﬞًًٌb, qaﬞًًٌb);
+Test_N(qaﬞًًٌb, qaﬞًًٌb, qaﬞًًٌb, qaﬞًًٌb, qaﬞًًٌb);
+Test_N(qaًٌٌٍb, qaًٌٌٍb, qaًٌٌٍb, qaًٌٌٍb, qaًٌٌٍb);
+Test_N(qaًٌٌٍb, qaًٌٌٍb, qaًٌٌٍb, qaًٌٌٍb, qaًٌٌٍb);
+Test_N(qaٌٍٍؘb, qaٌٍٍؘb, qaٌٍٍؘb, qaٌٍٍؘb, qaٌٍٍؘb);
+Test_N(qaٌٍٍؘb, qaٌٍٍؘb, qaٌٍٍؘb, qaٌٍٍؘb, qaٌٍٍؘb);
+Test_N(qaٍؘَؙb, qaٍؘَؙb, qaٍؘَؙb, qaٍؘَؙb, qaٍؘَؙb);
+Test_N(qaٍَؘؙb, qaٍَؘؙb, qaٍَؘؙb, qaٍَؘؙb, qaٍَؘؙb);
+Test_N(qaؘؙُؚb, qaؘؙُؚb, qaؘؙُؚb, qaؘؙُؚb, qaؘؙُؚb);
+Test_N(qaؘُؙؚb, qaؘُؙؚb, qaؘُؙؚb, qaؘُؙؚb, qaؘُؙؚb);
+Test_N(qaؙؚِّb, qaؙؚِّb, qaؙؚِّb, qaؙؚِّb, qaؙؚِّb);
+Test_N(qaؙِؚّb, qaؙِؚّb, qaؙِؚّb, qaؙِؚّb, qaؙِؚّb);
+Test_N(qaؚّّْb, qaؚّّْb, qaؚّّْb, qaؚّّْb, qaؚّّْb);
+Test_N(qaؚّّْb, qaؚّّْb, qaؚّّْb, qaؚّّْb, qaؚّّْb);
+Test_N(qaّْْٰb, qaّْْٰb, qaّْْٰb, qaّْْٰb, qaّْْٰb);
+Test_N(qaّْْٰb, qaّْْٰb, qaّْْٰb, qaّْْٰb, qaّْْٰb);
+Test_N(qà֮ٓ̕b, qà֮ٓ̕b, qà֮ٓ̕b, qà֮ٓ̕b, qà֮ٓ̕b);
+Test_N(qa֮ٓ̀̕b, qa֮ٓ̀̕b, qa֮ٓ̀̕b, qa֮ٓ̀̕b, qa֮ٓ̀̕b);
+Test_N(qà֮ٔ̕b, qà֮ٔ̕b, qà֮ٔ̕b, qà֮ٔ̕b, qà֮ٔ̕b);
+Test_N(qa֮ٔ̀̕b, qa֮ٔ̀̕b, qa֮ٔ̀̕b, qa֮ٔ̀̕b, qa֮ٔ̀̕b);
+Test_N(qa᷺̖ٕ֚b, qa᷺̖ٕ֚b, qa᷺̖ٕ֚b, qa᷺̖ٕ֚b, qa᷺̖ٕ֚b);
+Test_N(qa᷺ٕ̖֚b, qa᷺ٕ̖֚b, qa᷺ٕ̖֚b, qa᷺ٕ̖֚b, qa᷺ٕ̖֚b);
+Test_N(qa᷺̖ٖ֚b, qa᷺̖ٖ֚b, qa᷺̖ٖ֚b, qa᷺̖ٖ֚b, qa᷺̖ٖ֚b);
+Test_N(qa᷺ٖ̖֚b, qa᷺ٖ̖֚b, qa᷺ٖ̖֚b, qa᷺ٖ̖֚b, qa᷺ٖ̖֚b);
+Test_N(qà֮ٗ̕b, qà֮ٗ̕b, qà֮ٗ̕b, qà֮ٗ̕b, qà֮ٗ̕b);
+Test_N(qa֮ٗ̀̕b, qa֮ٗ̀̕b, qa֮ٗ̀̕b, qa֮ٗ̀̕b, qa֮ٗ̀̕b);
+Test_N(qà֮٘̕b, qà֮٘̕b, qà֮٘̕b, qà֮٘̕b, qà֮٘̕b);
+Test_N(qa֮٘̀̕b, qa֮٘̀̕b, qa֮٘̀̕b, qa֮٘̀̕b, qa֮٘̀̕b);
+Test_N(qà֮ٙ̕b, qà֮ٙ̕b, qà֮ٙ̕b, qà֮ٙ̕b, qà֮ٙ̕b);
+Test_N(qa֮ٙ̀̕b, qa֮ٙ̀̕b, qa֮ٙ̀̕b, qa֮ٙ̀̕b, qa֮ٙ̀̕b);
+Test_N(qà֮ٚ̕b, qà֮ٚ̕b, qà֮ٚ̕b, qà֮ٚ̕b, qà֮ٚ̕b);
+Test_N(qa֮ٚ̀̕b, qa֮ٚ̀̕b, qa֮ٚ̀̕b, qa֮ٚ̀̕b, qa֮ٚ̀̕b);
+Test_N(qà֮ٛ̕b, qà֮ٛ̕b, qà֮ٛ̕b, qà֮ٛ̕b, qà֮ٛ̕b);
+Test_N(qa֮ٛ̀̕b, qa֮ٛ̀̕b, qa֮ٛ̀̕b, qa֮ٛ̀̕b, qa֮ٛ̀̕b);
+Test_N(qa᷺̖ٜ֚b, qa᷺̖ٜ֚b, qa᷺̖ٜ֚b, qa᷺̖ٜ֚b, qa᷺̖ٜ֚b);
+Test_N(qa᷺ٜ̖֚b, qa᷺ٜ̖֚b, qa᷺ٜ̖֚b, qa᷺ٜ̖֚b, qa᷺ٜ̖֚b);
+Test_N(qà֮ٝ̕b, qà֮ٝ̕b, qà֮ٝ̕b, qà֮ٝ̕b, qà֮ٝ̕b);
+Test_N(qa֮ٝ̀̕b, qa֮ٝ̀̕b, qa֮ٝ̀̕b, qa֮ٝ̀̕b, qa֮ٝ̀̕b);
+Test_N(qà֮ٞ̕b, qà֮ٞ̕b, qà֮ٞ̕b, qà֮ٞ̕b, qà֮ٞ̕b);
+Test_N(qa֮ٞ̀̕b, qa֮ٞ̀̕b, qa֮ٞ̀̕b, qa֮ٞ̀̕b, qa֮ٞ̀̕b);
+Test_N(qa᷺̖ٟ֚b, qa᷺̖ٟ֚b, qa᷺̖ٟ֚b, qa᷺̖ٟ֚b, qa᷺̖ٟ֚b);
+Test_N(qa᷺ٟ̖֚b, qa᷺ٟ̖֚b, qa᷺ٟ̖֚b, qa᷺ٟ̖֚b, qa᷺ٟ̖֚b);
+Test_N(qaْٰٰܑb, qaْٰٰܑb, qaْٰٰܑb, qaْٰٰܑb, qaْٰٰܑb);
+Test_N(qaْٰٰܑb, qaْٰٰܑb, qaْٰٰܑb, qaْٰٰܑb, qaْٰٰܑb);
+Test_N(qà֮ۖ̕b, qà֮ۖ̕b, qà֮ۖ̕b, qà֮ۖ̕b, qà֮ۖ̕b);
+Test_N(qa֮ۖ̀̕b, qa֮ۖ̀̕b, qa֮ۖ̀̕b, qa֮ۖ̀̕b, qa֮ۖ̀̕b);
+Test_N(qà֮ۗ̕b, qà֮ۗ̕b, qà֮ۗ̕b, qà֮ۗ̕b, qà֮ۗ̕b);
+Test_N(qa֮ۗ̀̕b, qa֮ۗ̀̕b, qa֮ۗ̀̕b, qa֮ۗ̀̕b, qa֮ۗ̀̕b);
+Test_N(qà֮ۘ̕b, qà֮ۘ̕b, qà֮ۘ̕b, qà֮ۘ̕b, qà֮ۘ̕b);
+Test_N(qa֮ۘ̀̕b, qa֮ۘ̀̕b, qa֮ۘ̀̕b, qa֮ۘ̀̕b, qa֮ۘ̀̕b);
+Test_N(qà֮ۙ̕b, qà֮ۙ̕b, qà֮ۙ̕b, qà֮ۙ̕b, qà֮ۙ̕b);
+Test_N(qa֮ۙ̀̕b, qa֮ۙ̀̕b, qa֮ۙ̀̕b, qa֮ۙ̀̕b, qa֮ۙ̀̕b);
+Test_N(qà֮ۚ̕b, qà֮ۚ̕b, qà֮ۚ̕b, qà֮ۚ̕b, qà֮ۚ̕b);
+Test_N(qa֮ۚ̀̕b, qa֮ۚ̀̕b, qa֮ۚ̀̕b, qa֮ۚ̀̕b, qa֮ۚ̀̕b);
+Test_N(qà֮ۛ̕b, qà֮ۛ̕b, qà֮ۛ̕b, qà֮ۛ̕b, qà֮ۛ̕b);
+Test_N(qa֮ۛ̀̕b, qa֮ۛ̀̕b, qa֮ۛ̀̕b, qa֮ۛ̀̕b, qa֮ۛ̀̕b);
+Test_N(qà֮ۜ̕b, qà֮ۜ̕b, qà֮ۜ̕b, qà֮ۜ̕b, qà֮ۜ̕b);
+Test_N(qa֮ۜ̀̕b, qa֮ۜ̀̕b, qa֮ۜ̀̕b, qa֮ۜ̀̕b, qa֮ۜ̀̕b);
+Test_N(qà֮۟̕b, qà֮۟̕b, qà֮۟̕b, qà֮۟̕b, qà֮۟̕b);
+Test_N(qa֮۟̀̕b, qa֮۟̀̕b, qa֮۟̀̕b, qa֮۟̀̕b, qa֮۟̀̕b);
+Test_N(qà֮۠̕b, qà֮۠̕b, qà֮۠̕b, qà֮۠̕b, qà֮۠̕b);
+Test_N(qa֮۠̀̕b, qa֮۠̀̕b, qa֮۠̀̕b, qa֮۠̀̕b, qa֮۠̀̕b);
+Test_N(qà֮ۡ̕b, qà֮ۡ̕b, qà֮ۡ̕b, qà֮ۡ̕b, qà֮ۡ̕b);
+Test_N(qa֮ۡ̀̕b, qa֮ۡ̀̕b, qa֮ۡ̀̕b, qa֮ۡ̀̕b, qa֮ۡ̀̕b);
+Test_N(qà֮ۢ̕b, qà֮ۢ̕b, qà֮ۢ̕b, qà֮ۢ̕b, qà֮ۢ̕b);
+Test_N(qa֮ۢ̀̕b, qa֮ۢ̀̕b, qa֮ۢ̀̕b, qa֮ۢ̀̕b, qa֮ۢ̀̕b);
+Test_N(qa᷺̖ۣ֚b, qa᷺̖ۣ֚b, qa᷺̖ۣ֚b, qa᷺̖ۣ֚b, qa᷺̖ۣ֚b);
+Test_N(qa᷺ۣ̖֚b, qa᷺ۣ̖֚b, qa᷺ۣ̖֚b, qa᷺ۣ̖֚b, qa᷺ۣ̖֚b);
+Test_N(qà֮ۤ̕b, qà֮ۤ̕b, qà֮ۤ̕b, qà֮ۤ̕b, qà֮ۤ̕b);
+Test_N(qa֮ۤ̀̕b, qa֮ۤ̀̕b, qa֮ۤ̀̕b, qa֮ۤ̀̕b, qa֮ۤ̀̕b);
+Test_N(qà֮ۧ̕b, qà֮ۧ̕b, qà֮ۧ̕b, qà֮ۧ̕b, qà֮ۧ̕b);
+Test_N(qa֮ۧ̀̕b, qa֮ۧ̀̕b, qa֮ۧ̀̕b, qa֮ۧ̀̕b, qa֮ۧ̀̕b);
+Test_N(qà֮ۨ̕b, qà֮ۨ̕b, qà֮ۨ̕b, qà֮ۨ̕b, qà֮ۨ̕b);
+Test_N(qa֮ۨ̀̕b, qa֮ۨ̀̕b, qa֮ۨ̀̕b, qa֮ۨ̀̕b, qa֮ۨ̀̕b);
+Test_N(qa᷺̖۪֚b, qa᷺̖۪֚b, qa᷺̖۪֚b, qa᷺̖۪֚b, qa᷺̖۪֚b);
+Test_N(qa᷺۪̖֚b, qa᷺۪̖֚b, qa᷺۪̖֚b, qa᷺۪̖֚b, qa᷺۪̖֚b);
+Test_N(qà֮۫̕b, qà֮۫̕b, qà֮۫̕b, qà֮۫̕b, qà֮۫̕b);
+Test_N(qa֮۫̀̕b, qa֮۫̀̕b, qa֮۫̀̕b, qa֮۫̀̕b, qa֮۫̀̕b);
+Test_N(qà֮۬̕b, qà֮۬̕b, qà֮۬̕b, qà֮۬̕b, qà֮۬̕b);
+Test_N(qa֮۬̀̕b, qa֮۬̀̕b, qa֮۬̀̕b, qa֮۬̀̕b, qa֮۬̀̕b);
+Test_N(qa᷺̖ۭ֚b, qa᷺̖ۭ֚b, qa᷺̖ۭ֚b, qa᷺̖ۭ֚b, qa᷺̖ۭ֚b);
+Test_N(qa᷺ۭ̖֚b, qa᷺ۭ̖֚b, qa᷺ۭ̖֚b, qa᷺ۭ̖֚b, qa᷺ۭ̖֚b);
+Test_N(qaٰܑܑౕb, qaٰܑܑౕb, qaٰܑܑౕb, qaٰܑܑౕb, qaٰܑܑౕb);
+Test_N(qaٰܑܑౕb, qaٰܑܑౕb, qaٰܑܑౕb, qaٰܑܑౕb, qaٰܑܑౕb);
+Test_N(qà֮ܰ̕b, qà֮ܰ̕b, qà֮ܰ̕b, qà֮ܰ̕b, qà֮ܰ̕b);
+Test_N(qa֮ܰ̀̕b, qa֮ܰ̀̕b, qa֮ܰ̀̕b, qa֮ܰ̀̕b, qa֮ܰ̀̕b);
+Test_N(qa᷺̖ܱ֚b, qa᷺̖ܱ֚b, qa᷺̖ܱ֚b, qa᷺̖ܱ֚b, qa᷺̖ܱ֚b);
+Test_N(qa᷺ܱ̖֚b, qa᷺ܱ̖֚b, qa᷺ܱ̖֚b, qa᷺ܱ̖֚b, qa᷺ܱ̖֚b);
+Test_N(qà֮ܲ̕b, qà֮ܲ̕b, qà֮ܲ̕b, qà֮ܲ̕b, qà֮ܲ̕b);
+Test_N(qa֮ܲ̀̕b, qa֮ܲ̀̕b, qa֮ܲ̀̕b, qa֮ܲ̀̕b, qa֮ܲ̀̕b);
+Test_N(qà֮ܳ̕b, qà֮ܳ̕b, qà֮ܳ̕b, qà֮ܳ̕b, qà֮ܳ̕b);
+Test_N(qa֮ܳ̀̕b, qa֮ܳ̀̕b, qa֮ܳ̀̕b, qa֮ܳ̀̕b, qa֮ܳ̀̕b);
+Test_N(qa᷺̖ܴ֚b, qa᷺̖ܴ֚b, qa᷺̖ܴ֚b, qa᷺̖ܴ֚b, qa᷺̖ܴ֚b);
+Test_N(qa᷺ܴ̖֚b, qa᷺ܴ̖֚b, qa᷺ܴ̖֚b, qa᷺ܴ̖֚b, qa᷺ܴ̖֚b);
+Test_N(qà֮ܵ̕b, qà֮ܵ̕b, qà֮ܵ̕b, qà֮ܵ̕b, qà֮ܵ̕b);
+Test_N(qa֮ܵ̀̕b, qa֮ܵ̀̕b, qa֮ܵ̀̕b, qa֮ܵ̀̕b, qa֮ܵ̀̕b);
+Test_N(qà֮ܶ̕b, qà֮ܶ̕b, qà֮ܶ̕b, qà֮ܶ̕b, qà֮ܶ̕b);
+Test_N(qa֮ܶ̀̕b, qa֮ܶ̀̕b, qa֮ܶ̀̕b, qa֮ܶ̀̕b, qa֮ܶ̀̕b);
+Test_N(qa᷺̖ܷ֚b, qa᷺̖ܷ֚b, qa᷺̖ܷ֚b, qa᷺̖ܷ֚b, qa᷺̖ܷ֚b);
+Test_N(qa᷺ܷ̖֚b, qa᷺ܷ̖֚b, qa᷺ܷ̖֚b, qa᷺ܷ̖֚b, qa᷺ܷ̖֚b);
+Test_N(qa᷺̖ܸ֚b, qa᷺̖ܸ֚b, qa᷺̖ܸ֚b, qa᷺̖ܸ֚b, qa᷺̖ܸ֚b);
+Test_N(qa᷺ܸ̖֚b, qa᷺ܸ̖֚b, qa᷺ܸ̖֚b, qa᷺ܸ̖֚b, qa᷺ܸ̖֚b);
+Test_N(qa᷺̖ܹ֚b, qa᷺̖ܹ֚b, qa᷺̖ܹ֚b, qa᷺̖ܹ֚b, qa᷺̖ܹ֚b);
+Test_N(qa᷺ܹ̖֚b, qa᷺ܹ̖֚b, qa᷺ܹ̖֚b, qa᷺ܹ̖֚b, qa᷺ܹ̖֚b);
+Test_N(qà֮ܺ̕b, qà֮ܺ̕b, qà֮ܺ̕b, qà֮ܺ̕b, qà֮ܺ̕b);
+Test_N(qa֮ܺ̀̕b, qa֮ܺ̀̕b, qa֮ܺ̀̕b, qa֮ܺ̀̕b, qa֮ܺ̀̕b);
+Test_N(qa᷺̖ܻ֚b, qa᷺̖ܻ֚b, qa᷺̖ܻ֚b, qa᷺̖ܻ֚b, qa᷺̖ܻ֚b);
+Test_N(qa᷺ܻ̖֚b, qa᷺ܻ̖֚b, qa᷺ܻ̖֚b, qa᷺ܻ̖֚b, qa᷺ܻ̖֚b);
+Test_N(qa᷺̖ܼ֚b, qa᷺̖ܼ֚b, qa᷺̖ܼ֚b, qa᷺̖ܼ֚b, qa᷺̖ܼ֚b);
+Test_N(qa᷺ܼ̖֚b, qa᷺ܼ̖֚b, qa᷺ܼ̖֚b, qa᷺ܼ̖֚b, qa᷺ܼ̖֚b);
+Test_N(qà֮ܽ̕b, qà֮ܽ̕b, qà֮ܽ̕b, qà֮ܽ̕b, qà֮ܽ̕b);
+Test_N(qa֮ܽ̀̕b, qa֮ܽ̀̕b, qa֮ܽ̀̕b, qa֮ܽ̀̕b, qa֮ܽ̀̕b);
+Test_N(qa᷺̖ܾ֚b, qa᷺̖ܾ֚b, qa᷺̖ܾ֚b, qa᷺̖ܾ֚b, qa᷺̖ܾ֚b);
+Test_N(qa᷺ܾ̖֚b, qa᷺ܾ̖֚b, qa᷺ܾ̖֚b, qa᷺ܾ̖֚b, qa᷺ܾ̖֚b);
+Test_N(qà֮ܿ̕b, qà֮ܿ̕b, qà֮ܿ̕b, qà֮ܿ̕b, qà֮ܿ̕b);
+Test_N(qa֮ܿ̀̕b, qa֮ܿ̀̕b, qa֮ܿ̀̕b, qa֮ܿ̀̕b, qa֮ܿ̀̕b);
+Test_N(qà֮݀̕b, qà֮݀̕b, qà֮݀̕b, qà֮݀̕b, qà֮݀̕b);
+Test_N(qa֮݀̀̕b, qa֮݀̀̕b, qa֮݀̀̕b, qa֮݀̀̕b, qa֮݀̀̕b);
+Test_N(qà֮݁̕b, qà֮݁̕b, qà֮݁̕b, qà֮݁̕b, qà֮݁̕b);
+Test_N(qa֮݁̀̕b, qa֮݁̀̕b, qa֮݁̀̕b, qa֮݁̀̕b, qa֮݁̀̕b);
+Test_N(qa᷺̖݂֚b, qa᷺̖݂֚b, qa᷺̖݂֚b, qa᷺̖݂֚b, qa᷺̖݂֚b);
+Test_N(qa᷺݂̖֚b, qa᷺݂̖֚b, qa᷺݂̖֚b, qa᷺݂̖֚b, qa᷺݂̖֚b);
+Test_N(qà֮݃̕b, qà֮݃̕b, qà֮݃̕b, qà֮݃̕b, qà֮݃̕b);
+Test_N(qa֮݃̀̕b, qa֮݃̀̕b, qa֮݃̀̕b, qa֮݃̀̕b, qa֮݃̀̕b);
+Test_N(qa᷺̖݄֚b, qa᷺̖݄֚b, qa᷺̖݄֚b, qa᷺̖݄֚b, qa᷺̖݄֚b);
+Test_N(qa᷺݄̖֚b, qa᷺݄̖֚b, qa᷺݄̖֚b, qa᷺݄̖֚b, qa᷺݄̖֚b);
+Test_N(qà֮݅̕b, qà֮݅̕b, qà֮݅̕b, qà֮݅̕b, qà֮݅̕b);
+Test_N(qa֮݅̀̕b, qa֮݅̀̕b, qa֮݅̀̕b, qa֮݅̀̕b, qa֮݅̀̕b);
+Test_N(qa᷺̖݆֚b, qa᷺̖݆֚b, qa᷺̖݆֚b, qa᷺̖݆֚b, qa᷺̖݆֚b);
+Test_N(qa᷺݆̖֚b, qa᷺݆̖֚b, qa᷺݆̖֚b, qa᷺݆̖֚b, qa᷺݆̖֚b);
+Test_N(qà֮݇̕b, qà֮݇̕b, qà֮݇̕b, qà֮݇̕b, qà֮݇̕b);
+Test_N(qa֮݇̀̕b, qa֮݇̀̕b, qa֮݇̀̕b, qa֮݇̀̕b, qa֮݇̀̕b);
+Test_N(qa᷺̖݈֚b, qa᷺̖݈֚b, qa᷺̖݈֚b, qa᷺̖݈֚b, qa᷺̖݈֚b);
+Test_N(qa᷺݈̖֚b, qa᷺݈̖֚b, qa᷺݈̖֚b, qa᷺݈̖֚b, qa᷺݈̖֚b);
+Test_N(qà֮݉̕b, qà֮݉̕b, qà֮݉̕b, qà֮݉̕b, qà֮݉̕b);
+Test_N(qa֮݉̀̕b, qa֮݉̀̕b, qa֮݉̀̕b, qa֮݉̀̕b, qa֮݉̀̕b);
+Test_N(qà֮݊̕b, qà֮݊̕b, qà֮݊̕b, qà֮݊̕b, qà֮݊̕b);
+Test_N(qa֮݊̀̕b, qa֮݊̀̕b, qa֮݊̀̕b, qa֮݊̀̕b, qa֮݊̀̕b);
+Test_N(qà֮߫̕b, qà֮߫̕b, qà֮߫̕b, qà֮߫̕b, qà֮߫̕b);
+Test_N(qa֮߫̀̕b, qa֮߫̀̕b, qa֮߫̀̕b, qa֮߫̀̕b, qa֮߫̀̕b);
+Test_N(qà֮߬̕b, qà֮߬̕b, qà֮߬̕b, qà֮߬̕b, qà֮߬̕b);
+Test_N(qa֮߬̀̕b, qa֮߬̀̕b, qa֮߬̀̕b, qa֮߬̀̕b, qa֮߬̀̕b);
+Test_N(qà֮߭̕b, qà֮߭̕b, qà֮߭̕b, qà֮߭̕b, qà֮߭̕b);
+Test_N(qa֮߭̀̕b, qa֮߭̀̕b, qa֮߭̀̕b, qa֮߭̀̕b, qa֮߭̀̕b);
+Test_N(qà֮߮̕b, qà֮߮̕b, qà֮߮̕b, qà֮߮̕b, qà֮߮̕b);
+Test_N(qa֮߮̀̕b, qa֮߮̀̕b, qa֮߮̀̕b, qa֮߮̀̕b, qa֮߮̀̕b);
+Test_N(qà֮߯̕b, qà֮߯̕b, qà֮߯̕b, qà֮߯̕b, qà֮߯̕b);
+Test_N(qa֮߯̀̕b, qa֮߯̀̕b, qa֮߯̀̕b, qa֮߯̀̕b, qa֮߯̀̕b);
+Test_N(qà֮߰̕b, qà֮߰̕b, qà֮߰̕b, qà֮߰̕b, qà֮߰̕b);
+Test_N(qa֮߰̀̕b, qa֮߰̀̕b, qa֮߰̀̕b, qa֮߰̀̕b, qa֮߰̀̕b);
+Test_N(qà֮߱̕b, qà֮߱̕b, qà֮߱̕b, qà֮߱̕b, qà֮߱̕b);
+Test_N(qa֮߱̀̕b, qa֮߱̀̕b, qa֮߱̀̕b, qa֮߱̀̕b, qa֮߱̀̕b);
+Test_N(qa᷺̖߲֚b, qa᷺̖߲֚b, qa᷺̖߲֚b, qa᷺̖߲֚b, qa᷺̖߲֚b);
+Test_N(qa᷺߲̖֚b, qa᷺߲̖֚b, qa᷺߲̖֚b, qa᷺߲̖֚b, qa᷺߲̖֚b);
+Test_N(qà֮߳̕b, qà֮߳̕b, qà֮߳̕b, qà֮߳̕b, qà֮߳̕b);
+Test_N(qa֮߳̀̕b, qa֮߳̀̕b, qa֮߳̀̕b, qa֮߳̀̕b, qa֮߳̀̕b);
+Test_N(qa᷺̖߽֚b, qa᷺̖߽֚b, qa᷺̖߽֚b, qa᷺̖߽֚b, qa᷺̖߽֚b);
+Test_N(qa᷺߽̖֚b, qa᷺߽̖֚b, qa᷺߽̖֚b, qa᷺߽̖֚b, qa᷺߽̖֚b);
+Test_N(qà֮ࠖ̕b, qà֮ࠖ̕b, qà֮ࠖ̕b, qà֮ࠖ̕b, qà֮ࠖ̕b);
+Test_N(qa֮ࠖ̀̕b, qa֮ࠖ̀̕b, qa֮ࠖ̀̕b, qa֮ࠖ̀̕b, qa֮ࠖ̀̕b);
+Test_N(qà֮ࠗ̕b, qà֮ࠗ̕b, qà֮ࠗ̕b, qà֮ࠗ̕b, qà֮ࠗ̕b);
+Test_N(qa֮ࠗ̀̕b, qa֮ࠗ̀̕b, qa֮ࠗ̀̕b, qa֮ࠗ̀̕b, qa֮ࠗ̀̕b);
+Test_N(qà֮࠘̕b, qà֮࠘̕b, qà֮࠘̕b, qà֮࠘̕b, qà֮࠘̕b);
+Test_N(qa֮࠘̀̕b, qa֮࠘̀̕b, qa֮࠘̀̕b, qa֮࠘̀̕b, qa֮࠘̀̕b);
+Test_N(qà֮࠙̕b, qà֮࠙̕b, qà֮࠙̕b, qà֮࠙̕b, qà֮࠙̕b);
+Test_N(qa֮࠙̀̕b, qa֮࠙̀̕b, qa֮࠙̀̕b, qa֮࠙̀̕b, qa֮࠙̀̕b);
+Test_N(qà֮ࠛ̕b, qà֮ࠛ̕b, qà֮ࠛ̕b, qà֮ࠛ̕b, qà֮ࠛ̕b);
+Test_N(qa֮ࠛ̀̕b, qa֮ࠛ̀̕b, qa֮ࠛ̀̕b, qa֮ࠛ̀̕b, qa֮ࠛ̀̕b);
+Test_N(qà֮ࠜ̕b, qà֮ࠜ̕b, qà֮ࠜ̕b, qà֮ࠜ̕b, qà֮ࠜ̕b);
+Test_N(qa֮ࠜ̀̕b, qa֮ࠜ̀̕b, qa֮ࠜ̀̕b, qa֮ࠜ̀̕b, qa֮ࠜ̀̕b);
+Test_N(qà֮ࠝ̕b, qà֮ࠝ̕b, qà֮ࠝ̕b, qà֮ࠝ̕b, qà֮ࠝ̕b);
+Test_N(qa֮ࠝ̀̕b, qa֮ࠝ̀̕b, qa֮ࠝ̀̕b, qa֮ࠝ̀̕b, qa֮ࠝ̀̕b);
+Test_N(qà֮ࠞ̕b, qà֮ࠞ̕b, qà֮ࠞ̕b, qà֮ࠞ̕b, qà֮ࠞ̕b);
+Test_N(qa֮ࠞ̀̕b, qa֮ࠞ̀̕b, qa֮ࠞ̀̕b, qa֮ࠞ̀̕b, qa֮ࠞ̀̕b);
+Test_N(qà֮ࠟ̕b, qà֮ࠟ̕b, qà֮ࠟ̕b, qà֮ࠟ̕b, qà֮ࠟ̕b);
+Test_N(qa֮ࠟ̀̕b, qa֮ࠟ̀̕b, qa֮ࠟ̀̕b, qa֮ࠟ̀̕b, qa֮ࠟ̀̕b);
+Test_N(qà֮ࠠ̕b, qà֮ࠠ̕b, qà֮ࠠ̕b, qà֮ࠠ̕b, qà֮ࠠ̕b);
+Test_N(qa֮ࠠ̀̕b, qa֮ࠠ̀̕b, qa֮ࠠ̀̕b, qa֮ࠠ̀̕b, qa֮ࠠ̀̕b);
+Test_N(qà֮ࠡ̕b, qà֮ࠡ̕b, qà֮ࠡ̕b, qà֮ࠡ̕b, qà֮ࠡ̕b);
+Test_N(qa֮ࠡ̀̕b, qa֮ࠡ̀̕b, qa֮ࠡ̀̕b, qa֮ࠡ̀̕b, qa֮ࠡ̀̕b);
+Test_N(qà֮ࠢ̕b, qà֮ࠢ̕b, qà֮ࠢ̕b, qà֮ࠢ̕b, qà֮ࠢ̕b);
+Test_N(qa֮ࠢ̀̕b, qa֮ࠢ̀̕b, qa֮ࠢ̀̕b, qa֮ࠢ̀̕b, qa֮ࠢ̀̕b);
+Test_N(qà֮ࠣ̕b, qà֮ࠣ̕b, qà֮ࠣ̕b, qà֮ࠣ̕b, qà֮ࠣ̕b);
+Test_N(qa֮ࠣ̀̕b, qa֮ࠣ̀̕b, qa֮ࠣ̀̕b, qa֮ࠣ̀̕b, qa֮ࠣ̀̕b);
+Test_N(qà֮ࠥ̕b, qà֮ࠥ̕b, qà֮ࠥ̕b, qà֮ࠥ̕b, qà֮ࠥ̕b);
+Test_N(qa֮ࠥ̀̕b, qa֮ࠥ̀̕b, qa֮ࠥ̀̕b, qa֮ࠥ̀̕b, qa֮ࠥ̀̕b);
+Test_N(qà֮ࠦ̕b, qà֮ࠦ̕b, qà֮ࠦ̕b, qà֮ࠦ̕b, qà֮ࠦ̕b);
+Test_N(qa֮ࠦ̀̕b, qa֮ࠦ̀̕b, qa֮ࠦ̀̕b, qa֮ࠦ̀̕b, qa֮ࠦ̀̕b);
+Test_N(qà֮ࠧ̕b, qà֮ࠧ̕b, qà֮ࠧ̕b, qà֮ࠧ̕b, qà֮ࠧ̕b);
+Test_N(qa֮ࠧ̀̕b, qa֮ࠧ̀̕b, qa֮ࠧ̀̕b, qa֮ࠧ̀̕b, qa֮ࠧ̀̕b);
+Test_N(qà֮ࠩ̕b, qà֮ࠩ̕b, qà֮ࠩ̕b, qà֮ࠩ̕b, qà֮ࠩ̕b);
+Test_N(qa֮ࠩ̀̕b, qa֮ࠩ̀̕b, qa֮ࠩ̀̕b, qa֮ࠩ̀̕b, qa֮ࠩ̀̕b);
+Test_N(qà֮ࠪ̕b, qà֮ࠪ̕b, qà֮ࠪ̕b, qà֮ࠪ̕b, qà֮ࠪ̕b);
+Test_N(qa֮ࠪ̀̕b, qa֮ࠪ̀̕b, qa֮ࠪ̀̕b, qa֮ࠪ̀̕b, qa֮ࠪ̀̕b);
+Test_N(qà֮ࠫ̕b, qà֮ࠫ̕b, qà֮ࠫ̕b, qà֮ࠫ̕b, qà֮ࠫ̕b);
+Test_N(qa֮ࠫ̀̕b, qa֮ࠫ̀̕b, qa֮ࠫ̀̕b, qa֮ࠫ̀̕b, qa֮ࠫ̀̕b);
+Test_N(qà֮ࠬ̕b, qà֮ࠬ̕b, qà֮ࠬ̕b, qà֮ࠬ̕b, qà֮ࠬ̕b);
+Test_N(qa֮ࠬ̀̕b, qa֮ࠬ̀̕b, qa֮ࠬ̀̕b, qa֮ࠬ̀̕b, qa֮ࠬ̀̕b);
+Test_N(qà֮࠭̕b, qà֮࠭̕b, qà֮࠭̕b, qà֮࠭̕b, qà֮࠭̕b);
+Test_N(qa֮࠭̀̕b, qa֮࠭̀̕b, qa֮࠭̀̕b, qa֮࠭̀̕b, qa֮࠭̀̕b);
+Test_N(qa᷺̖࡙֚b, qa᷺̖࡙֚b, qa᷺̖࡙֚b, qa᷺̖࡙֚b, qa᷺̖࡙֚b);
+Test_N(qa᷺࡙̖֚b, qa᷺࡙̖֚b, qa᷺࡙̖֚b, qa᷺࡙̖֚b, qa᷺࡙̖֚b);
+Test_N(qa᷺̖࡚֚b, qa᷺̖࡚֚b, qa᷺̖࡚֚b, qa᷺̖࡚֚b, qa᷺̖࡚֚b);
+Test_N(qa᷺࡚̖֚b, qa᷺࡚̖֚b, qa᷺࡚̖֚b, qa᷺࡚̖֚b, qa᷺࡚̖֚b);
+Test_N(qa᷺̖࡛֚b, qa᷺̖࡛֚b, qa᷺̖࡛֚b, qa᷺̖࡛֚b, qa᷺̖࡛֚b);
+Test_N(qa᷺࡛̖֚b, qa᷺࡛̖֚b, qa᷺࡛̖֚b, qa᷺࡛̖֚b, qa᷺࡛̖֚b);
+Test_N(qà֮࢘̕b, qà֮࢘̕b, qà֮࢘̕b, qà֮࢘̕b, qà֮࢘̕b);
+Test_N(qa֮࢘̀̕b, qa֮࢘̀̕b, qa֮࢘̀̕b, qa֮࢘̀̕b, qa֮࢘̀̕b);
+Test_N(qa᷺̖࢙֚b, qa᷺̖࢙֚b, qa᷺̖࢙֚b, qa᷺̖࢙֚b, qa᷺̖࢙֚b);
+Test_N(qa᷺࢙̖֚b, qa᷺࢙̖֚b, qa᷺࢙̖֚b, qa᷺࢙̖֚b, qa᷺࢙̖֚b);
+Test_N(qa᷺̖࢚֚b, qa᷺̖࢚֚b, qa᷺̖࢚֚b, qa᷺̖࢚֚b, qa᷺̖࢚֚b);
+Test_N(qa᷺࢚̖֚b, qa᷺࢚̖֚b, qa᷺࢚̖֚b, qa᷺࢚̖֚b, qa᷺࢚̖֚b);
+Test_N(qa᷺̖࢛֚b, qa᷺̖࢛֚b, qa᷺̖࢛֚b, qa᷺̖࢛֚b, qa᷺̖࢛֚b);
+Test_N(qa᷺࢛̖֚b, qa᷺࢛̖֚b, qa᷺࢛̖֚b, qa᷺࢛̖֚b, qa᷺࢛̖֚b);
+Test_N(qà֮࢜̕b, qà֮࢜̕b, qà֮࢜̕b, qà֮࢜̕b, qà֮࢜̕b);
+Test_N(qa֮࢜̀̕b, qa֮࢜̀̕b, qa֮࢜̀̕b, qa֮࢜̀̕b, qa֮࢜̀̕b);
+Test_N(qà֮࢝̕b, qà֮࢝̕b, qà֮࢝̕b, qà֮࢝̕b, qà֮࢝̕b);
+Test_N(qa֮࢝̀̕b, qa֮࢝̀̕b, qa֮࢝̀̕b, qa֮࢝̀̕b, qa֮࢝̀̕b);
+Test_N(qà֮࢞̕b, qà֮࢞̕b, qà֮࢞̕b, qà֮࢞̕b, qà֮࢞̕b);
+Test_N(qa֮࢞̀̕b, qa֮࢞̀̕b, qa֮࢞̀̕b, qa֮࢞̀̕b, qa֮࢞̀̕b);
+Test_N(qà֮࢟̕b, qà֮࢟̕b, qà֮࢟̕b, qà֮࢟̕b, qà֮࢟̕b);
+Test_N(qa֮࢟̀̕b, qa֮࢟̀̕b, qa֮࢟̀̕b, qa֮࢟̀̕b, qa֮࢟̀̕b);
+Test_N(qà֮࣊̕b, qà֮࣊̕b, qà֮࣊̕b, qà֮࣊̕b, qà֮࣊̕b);
+Test_N(qa֮࣊̀̕b, qa֮࣊̀̕b, qa֮࣊̀̕b, qa֮࣊̀̕b, qa֮࣊̀̕b);
+Test_N(qà֮࣋̕b, qà֮࣋̕b, qà֮࣋̕b, qà֮࣋̕b, qà֮࣋̕b);
+Test_N(qa֮࣋̀̕b, qa֮࣋̀̕b, qa֮࣋̀̕b, qa֮࣋̀̕b, qa֮࣋̀̕b);
+Test_N(qà֮࣌̕b, qà֮࣌̕b, qà֮࣌̕b, qà֮࣌̕b, qà֮࣌̕b);
+Test_N(qa֮࣌̀̕b, qa֮࣌̀̕b, qa֮࣌̀̕b, qa֮࣌̀̕b, qa֮࣌̀̕b);
+Test_N(qà֮࣍̕b, qà֮࣍̕b, qà֮࣍̕b, qà֮࣍̕b, qà֮࣍̕b);
+Test_N(qa֮࣍̀̕b, qa֮࣍̀̕b, qa֮࣍̀̕b, qa֮࣍̀̕b, qa֮࣍̀̕b);
+Test_N(qà֮࣎̕b, qà֮࣎̕b, qà֮࣎̕b, qà֮࣎̕b, qà֮࣎̕b);
+Test_N(qa֮࣎̀̕b, qa֮࣎̀̕b, qa֮࣎̀̕b, qa֮࣎̀̕b, qa֮࣎̀̕b);
+Test_N(qa᷺̖࣏֚b, qa᷺̖࣏֚b, qa᷺̖࣏֚b, qa᷺̖࣏֚b, qa᷺̖࣏֚b);
+Test_N(qa᷺࣏̖֚b, qa᷺࣏̖֚b, qa᷺࣏̖֚b, qa᷺࣏̖֚b, qa᷺࣏̖֚b);
+Test_N(qa᷺̖࣐֚b, qa᷺̖࣐֚b, qa᷺̖࣐֚b, qa᷺̖࣐֚b, qa᷺̖࣐֚b);
+Test_N(qa᷺࣐̖֚b, qa᷺࣐̖֚b, qa᷺࣐̖֚b, qa᷺࣐̖֚b, qa᷺࣐̖֚b);
+Test_N(qa᷺̖࣑֚b, qa᷺̖࣑֚b, qa᷺̖࣑֚b, qa᷺̖࣑֚b, qa᷺̖࣑֚b);
+Test_N(qa᷺࣑̖֚b, qa᷺࣑̖֚b, qa᷺࣑̖֚b, qa᷺࣑̖֚b, qa᷺࣑̖֚b);
+Test_N(qa᷺̖࣒֚b, qa᷺̖࣒֚b, qa᷺̖࣒֚b, qa᷺̖࣒֚b, qa᷺̖࣒֚b);
+Test_N(qa᷺࣒̖֚b, qa᷺࣒̖֚b, qa᷺࣒̖֚b, qa᷺࣒̖֚b, qa᷺࣒̖֚b);
+Test_N(qa᷺̖࣓֚b, qa᷺̖࣓֚b, qa᷺̖࣓֚b, qa᷺̖࣓֚b, qa᷺̖࣓֚b);
+Test_N(qa᷺࣓̖֚b, qa᷺࣓̖֚b, qa᷺࣓̖֚b, qa᷺࣓̖֚b, qa᷺࣓̖֚b);
+Test_N(qà֮ࣔ̕b, qà֮ࣔ̕b, qà֮ࣔ̕b, qà֮ࣔ̕b, qà֮ࣔ̕b);
+Test_N(qa֮ࣔ̀̕b, qa֮ࣔ̀̕b, qa֮ࣔ̀̕b, qa֮ࣔ̀̕b, qa֮ࣔ̀̕b);
+Test_N(qà֮ࣕ̕b, qà֮ࣕ̕b, qà֮ࣕ̕b, qà֮ࣕ̕b, qà֮ࣕ̕b);
+Test_N(qa֮ࣕ̀̕b, qa֮ࣕ̀̕b, qa֮ࣕ̀̕b, qa֮ࣕ̀̕b, qa֮ࣕ̀̕b);
+Test_N(qà֮ࣖ̕b, qà֮ࣖ̕b, qà֮ࣖ̕b, qà֮ࣖ̕b, qà֮ࣖ̕b);
+Test_N(qa֮ࣖ̀̕b, qa֮ࣖ̀̕b, qa֮ࣖ̀̕b, qa֮ࣖ̀̕b, qa֮ࣖ̀̕b);
+Test_N(qà֮ࣗ̕b, qà֮ࣗ̕b, qà֮ࣗ̕b, qà֮ࣗ̕b, qà֮ࣗ̕b);
+Test_N(qa֮ࣗ̀̕b, qa֮ࣗ̀̕b, qa֮ࣗ̀̕b, qa֮ࣗ̀̕b, qa֮ࣗ̀̕b);
+Test_N(qà֮ࣘ̕b, qà֮ࣘ̕b, qà֮ࣘ̕b, qà֮ࣘ̕b, qà֮ࣘ̕b);
+Test_N(qa֮ࣘ̀̕b, qa֮ࣘ̀̕b, qa֮ࣘ̀̕b, qa֮ࣘ̀̕b, qa֮ࣘ̀̕b);
+Test_N(qà֮ࣙ̕b, qà֮ࣙ̕b, qà֮ࣙ̕b, qà֮ࣙ̕b, qà֮ࣙ̕b);
+Test_N(qa֮ࣙ̀̕b, qa֮ࣙ̀̕b, qa֮ࣙ̀̕b, qa֮ࣙ̀̕b, qa֮ࣙ̀̕b);
+Test_N(qà֮ࣚ̕b, qà֮ࣚ̕b, qà֮ࣚ̕b, qà֮ࣚ̕b, qà֮ࣚ̕b);
+Test_N(qa֮ࣚ̀̕b, qa֮ࣚ̀̕b, qa֮ࣚ̀̕b, qa֮ࣚ̀̕b, qa֮ࣚ̀̕b);
+Test_N(qà֮ࣛ̕b, qà֮ࣛ̕b, qà֮ࣛ̕b, qà֮ࣛ̕b, qà֮ࣛ̕b);
+Test_N(qa֮ࣛ̀̕b, qa֮ࣛ̀̕b, qa֮ࣛ̀̕b, qa֮ࣛ̀̕b, qa֮ࣛ̀̕b);
+Test_N(qà֮ࣜ̕b, qà֮ࣜ̕b, qà֮ࣜ̕b, qà֮ࣜ̕b, qà֮ࣜ̕b);
+Test_N(qa֮ࣜ̀̕b, qa֮ࣜ̀̕b, qa֮ࣜ̀̕b, qa֮ࣜ̀̕b, qa֮ࣜ̀̕b);
+Test_N(qà֮ࣝ̕b, qà֮ࣝ̕b, qà֮ࣝ̕b, qà֮ࣝ̕b, qà֮ࣝ̕b);
+Test_N(qa֮ࣝ̀̕b, qa֮ࣝ̀̕b, qa֮ࣝ̀̕b, qa֮ࣝ̀̕b, qa֮ࣝ̀̕b);
+Test_N(qà֮ࣞ̕b, qà֮ࣞ̕b, qà֮ࣞ̕b, qà֮ࣞ̕b, qà֮ࣞ̕b);
+Test_N(qa֮ࣞ̀̕b, qa֮ࣞ̀̕b, qa֮ࣞ̀̕b, qa֮ࣞ̀̕b, qa֮ࣞ̀̕b);
+Test_N(qà֮ࣟ̕b, qà֮ࣟ̕b, qà֮ࣟ̕b, qà֮ࣟ̕b, qà֮ࣟ̕b);
+Test_N(qa֮ࣟ̀̕b, qa֮ࣟ̀̕b, qa֮ࣟ̀̕b, qa֮ࣟ̀̕b, qa֮ࣟ̀̕b);
+Test_N(qà֮࣠̕b, qà֮࣠̕b, qà֮࣠̕b, qà֮࣠̕b, qà֮࣠̕b);
+Test_N(qa֮࣠̀̕b, qa֮࣠̀̕b, qa֮࣠̀̕b, qa֮࣠̀̕b, qa֮࣠̀̕b);
+Test_N(qà֮࣡̕b, qà֮࣡̕b, qà֮࣡̕b, qà֮࣡̕b, qà֮࣡̕b);
+Test_N(qa֮࣡̀̕b, qa֮࣡̀̕b, qa֮࣡̀̕b, qa֮࣡̀̕b, qa֮࣡̀̕b);
+Test_N(qa᷺̖ࣣ֚b, qa᷺̖ࣣ֚b, qa᷺̖ࣣ֚b, qa᷺̖ࣣ֚b, qa᷺̖ࣣ֚b);
+Test_N(qa᷺ࣣ̖֚b, qa᷺ࣣ̖֚b, qa᷺ࣣ̖֚b, qa᷺ࣣ̖֚b, qa᷺ࣣ̖֚b);
+Test_N(qà֮ࣤ̕b, qà֮ࣤ̕b, qà֮ࣤ̕b, qà֮ࣤ̕b, qà֮ࣤ̕b);
+Test_N(qa֮ࣤ̀̕b, qa֮ࣤ̀̕b, qa֮ࣤ̀̕b, qa֮ࣤ̀̕b, qa֮ࣤ̀̕b);
+Test_N(qà֮ࣥ̕b, qà֮ࣥ̕b, qà֮ࣥ̕b, qà֮ࣥ̕b, qà֮ࣥ̕b);
+Test_N(qa֮ࣥ̀̕b, qa֮ࣥ̀̕b, qa֮ࣥ̀̕b, qa֮ࣥ̀̕b, qa֮ࣥ̀̕b);
+Test_N(qa᷺̖ࣦ֚b, qa᷺̖ࣦ֚b, qa᷺̖ࣦ֚b, qa᷺̖ࣦ֚b, qa᷺̖ࣦ֚b);
+Test_N(qa᷺ࣦ̖֚b, qa᷺ࣦ̖֚b, qa᷺ࣦ̖֚b, qa᷺ࣦ̖֚b, qa᷺ࣦ̖֚b);
+Test_N(qà֮ࣧ̕b, qà֮ࣧ̕b, qà֮ࣧ̕b, qà֮ࣧ̕b, qà֮ࣧ̕b);
+Test_N(qa֮ࣧ̀̕b, qa֮ࣧ̀̕b, qa֮ࣧ̀̕b, qa֮ࣧ̀̕b, qa֮ࣧ̀̕b);
+Test_N(qà֮ࣨ̕b, qà֮ࣨ̕b, qà֮ࣨ̕b, qà֮ࣨ̕b, qà֮ࣨ̕b);
+Test_N(qa֮ࣨ̀̕b, qa֮ࣨ̀̕b, qa֮ࣨ̀̕b, qa֮ࣨ̀̕b, qa֮ࣨ̀̕b);
+Test_N(qa᷺̖ࣩ֚b, qa᷺̖ࣩ֚b, qa᷺̖ࣩ֚b, qa᷺̖ࣩ֚b, qa᷺̖ࣩ֚b);
+Test_N(qa᷺ࣩ̖֚b, qa᷺ࣩ̖֚b, qa᷺ࣩ̖֚b, qa᷺ࣩ̖֚b, qa᷺ࣩ̖֚b);
+Test_N(qà֮࣪̕b, qà֮࣪̕b, qà֮࣪̕b, qà֮࣪̕b, qà֮࣪̕b);
+Test_N(qa֮࣪̀̕b, qa֮࣪̀̕b, qa֮࣪̀̕b, qa֮࣪̀̕b, qa֮࣪̀̕b);
+Test_N(qà֮࣫̕b, qà֮࣫̕b, qà֮࣫̕b, qà֮࣫̕b, qà֮࣫̕b);
+Test_N(qa֮࣫̀̕b, qa֮࣫̀̕b, qa֮࣫̀̕b, qa֮࣫̀̕b, qa֮࣫̀̕b);
+Test_N(qà֮࣬̕b, qà֮࣬̕b, qà֮࣬̕b, qà֮࣬̕b, qà֮࣬̕b);
+Test_N(qa֮࣬̀̕b, qa֮࣬̀̕b, qa֮࣬̀̕b, qa֮࣬̀̕b, qa֮࣬̀̕b);
+Test_N(qa᷺̖࣭֚b, qa᷺̖࣭֚b, qa᷺̖࣭֚b, qa᷺̖࣭֚b, qa᷺̖࣭֚b);
+Test_N(qa᷺࣭̖֚b, qa᷺࣭̖֚b, qa᷺࣭̖֚b, qa᷺࣭̖֚b, qa᷺࣭̖֚b);
+Test_N(qa᷺̖࣮֚b, qa᷺̖࣮֚b, qa᷺̖࣮֚b, qa᷺̖࣮֚b, qa᷺̖࣮֚b);
+Test_N(qa᷺࣮̖֚b, qa᷺࣮̖֚b, qa᷺࣮̖֚b, qa᷺࣮̖֚b, qa᷺࣮̖֚b);
+Test_N(qa᷺̖࣯֚b, qa᷺̖࣯֚b, qa᷺̖࣯֚b, qa᷺̖࣯֚b, qa᷺̖࣯֚b);
+Test_N(qa᷺࣯̖֚b, qa᷺࣯̖֚b, qa᷺࣯̖֚b, qa᷺࣯̖֚b, qa᷺࣯̖֚b);
+Test_N(qaﬞًࣰٌb, qaﬞًࣰٌb, qaﬞًࣰٌb, qaﬞًࣰٌb, qaﬞًࣰٌb);
+Test_N(qaﬞࣰًٌb, qaﬞࣰًٌb, qaﬞࣰًٌb, qaﬞࣰًٌb, qaﬞࣰًٌb);
+Test_N(qaًٌࣱٍb, qaًٌࣱٍb, qaًٌࣱٍb, qaًٌࣱٍb, qaًٌࣱٍb);
+Test_N(qaًࣱٌٍb, qaًࣱٌٍb, qaًࣱٌٍb, qaًࣱٌٍb, qaًࣱٌٍb);
+Test_N(qaٌٍࣲؘb, qaٌٍࣲؘb, qaٌٍࣲؘb, qaٌٍࣲؘb, qaٌٍࣲؘb);
+Test_N(qaٌࣲٍؘb, qaٌࣲٍؘb, qaٌࣲٍؘb, qaٌࣲٍؘb, qaٌࣲٍؘb);
+Test_N(qà֮ࣳ̕b, qà֮ࣳ̕b, qà֮ࣳ̕b, qà֮ࣳ̕b, qà֮ࣳ̕b);
+Test_N(qa֮ࣳ̀̕b, qa֮ࣳ̀̕b, qa֮ࣳ̀̕b, qa֮ࣳ̀̕b, qa֮ࣳ̀̕b);
+Test_N(qà֮ࣴ̕b, qà֮ࣴ̕b, qà֮ࣴ̕b, qà֮ࣴ̕b, qà֮ࣴ̕b);
+Test_N(qa֮ࣴ̀̕b, qa֮ࣴ̀̕b, qa֮ࣴ̀̕b, qa֮ࣴ̀̕b, qa֮ࣴ̀̕b);
+Test_N(qà֮ࣵ̕b, qà֮ࣵ̕b, qà֮ࣵ̕b, qà֮ࣵ̕b, qà֮ࣵ̕b);
+Test_N(qa֮ࣵ̀̕b, qa֮ࣵ̀̕b, qa֮ࣵ̀̕b, qa֮ࣵ̀̕b, qa֮ࣵ̀̕b);
+Test_N(qa᷺̖ࣶ֚b, qa᷺̖ࣶ֚b, qa᷺̖ࣶ֚b, qa᷺̖ࣶ֚b, qa᷺̖ࣶ֚b);
+Test_N(qa᷺ࣶ̖֚b, qa᷺ࣶ̖֚b, qa᷺ࣶ̖֚b, qa᷺ࣶ̖֚b, qa᷺ࣶ̖֚b);
+Test_N(qà֮ࣷ̕b, qà֮ࣷ̕b, qà֮ࣷ̕b, qà֮ࣷ̕b, qà֮ࣷ̕b);
+Test_N(qa֮ࣷ̀̕b, qa֮ࣷ̀̕b, qa֮ࣷ̀̕b, qa֮ࣷ̀̕b, qa֮ࣷ̀̕b);
+Test_N(qà֮ࣸ̕b, qà֮ࣸ̕b, qà֮ࣸ̕b, qà֮ࣸ̕b, qà֮ࣸ̕b);
+Test_N(qa֮ࣸ̀̕b, qa֮ࣸ̀̕b, qa֮ࣸ̀̕b, qa֮ࣸ̀̕b, qa֮ࣸ̀̕b);
+Test_N(qa᷺̖ࣹ֚b, qa᷺̖ࣹ֚b, qa᷺̖ࣹ֚b, qa᷺̖ࣹ֚b, qa᷺̖ࣹ֚b);
+Test_N(qa᷺ࣹ̖֚b, qa᷺ࣹ̖֚b, qa᷺ࣹ̖֚b, qa᷺ࣹ̖֚b, qa᷺ࣹ̖֚b);
+Test_N(qa᷺̖ࣺ֚b, qa᷺̖ࣺ֚b, qa᷺̖ࣺ֚b, qa᷺̖ࣺ֚b, qa᷺̖ࣺ֚b);
+Test_N(qa᷺ࣺ̖֚b, qa᷺ࣺ̖֚b, qa᷺ࣺ̖֚b, qa᷺ࣺ̖֚b, qa᷺ࣺ̖֚b);
+Test_N(qà֮ࣻ̕b, qà֮ࣻ̕b, qà֮ࣻ̕b, qà֮ࣻ̕b, qà֮ࣻ̕b);
+Test_N(qa֮ࣻ̀̕b, qa֮ࣻ̀̕b, qa֮ࣻ̀̕b, qa֮ࣻ̀̕b, qa֮ࣻ̀̕b);
+Test_N(qà֮ࣼ̕b, qà֮ࣼ̕b, qà֮ࣼ̕b, qà֮ࣼ̕b, qà֮ࣼ̕b);
+Test_N(qa֮ࣼ̀̕b, qa֮ࣼ̀̕b, qa֮ࣼ̀̕b, qa֮ࣼ̀̕b, qa֮ࣼ̀̕b);
+Test_N(qà֮ࣽ̕b, qà֮ࣽ̕b, qà֮ࣽ̕b, qà֮ࣽ̕b, qà֮ࣽ̕b);
+Test_N(qa֮ࣽ̀̕b, qa֮ࣽ̀̕b, qa֮ࣽ̀̕b, qa֮ࣽ̀̕b, qa֮ࣽ̀̕b);
+Test_N(qà֮ࣾ̕b, qà֮ࣾ̕b, qà֮ࣾ̕b, qà֮ࣾ̕b, qà֮ࣾ̕b);
+Test_N(qa֮ࣾ̀̕b, qa֮ࣾ̀̕b, qa֮ࣾ̀̕b, qa֮ࣾ̀̕b, qa֮ࣾ̀̕b);
+Test_N(qà֮ࣿ̕b, qà֮ࣿ̕b, qà֮ࣿ̕b, qà֮ࣿ̕b, qà֮ࣿ̕b);
+Test_N(qa֮ࣿ̀̕b, qa֮ࣿ̀̕b, qa֮ࣿ̀̕b, qa֮ࣿ̀̕b, qa֮ࣿ̀̕b);
+Test_N(qa𖿰़़゙b, qa𖿰़़゙b, qa𖿰़़゙b, qa𖿰़़゙b, qa𖿰़़゙b);
+Test_N(qa𖿰़़゙b, qa𖿰़़゙b, qa𖿰़़゙b, qa𖿰़़゙b, qa𖿰़़゙b);
+Test_N(qa゙््ְb, qa゙््ְb, qa゙््ְb, qa゙््ְb, qa゙््ְb);
+Test_N(qa゙््ְb, qa゙््ְb, qa゙््ְb, qa゙््ְb, qa゙््ְb);
+Test_N(qà֮॑̕b, qà֮॑̕b, qà֮॑̕b, qà֮॑̕b, qà֮॑̕b);
+Test_N(qa֮॑̀̕b, qa֮॑̀̕b, qa֮॑̀̕b, qa֮॑̀̕b, qa֮॑̀̕b);
+Test_N(qa᷺̖॒֚b, qa᷺̖॒֚b, qa᷺̖॒֚b, qa᷺̖॒֚b, qa᷺̖॒֚b);
+Test_N(qa᷺॒̖֚b, qa᷺॒̖֚b, qa᷺॒̖֚b, qa᷺॒̖֚b, qa᷺॒̖֚b);
+Test_N(qà֮॓̕b, qà֮॓̕b, qà֮॓̕b, qà֮॓̕b, qà֮॓̕b);
+Test_N(qa֮॓̀̕b, qa֮॓̀̕b, qa֮॓̀̕b, qa֮॓̀̕b, qa֮॓̀̕b);
+Test_N(qà֮॔̕b, qà֮॔̕b, qà֮॔̕b, qà֮॔̕b, qà֮॔̕b);
+Test_N(qa֮॔̀̕b, qa֮॔̀̕b, qa֮॔̀̕b, qa֮॔̀̕b, qa֮॔̀̕b);
+Test_N(qa𖿰़়゙b, qa𖿰़়゙b, qa𖿰़়゙b, qa𖿰़়゙b, qa𖿰़়゙b);
+Test_N(qa𖿰়़゙b, qa𖿰়़゙b, qa𖿰়़゙b, qa𖿰়़゙b, qa𖿰়़゙b);
+Test_N(qa゙्্ְb, qa゙्্ְb, qa゙्্ְb, qa゙्্ְb, qa゙्্ְb);
+Test_N(qa゙্्ְb, qa゙্्ְb, qa゙্्ְb, qa゙্्ְb, qa゙্्ְb);
+Test_N(qà֮৾̕b, qà֮৾̕b, qà֮৾̕b, qà֮৾̕b, qà֮৾̕b);
+Test_N(qa֮৾̀̕b, qa֮৾̀̕b, qa֮৾̀̕b, qa֮৾̀̕b, qa֮৾̀̕b);
+Test_N(qa𖿰़਼゙b, qa𖿰़਼゙b, qa𖿰़਼゙b, qa𖿰़਼゙b, qa𖿰़਼゙b);
+Test_N(qa𖿰਼़゙b, qa𖿰਼़゙b, qa𖿰਼़゙b, qa𖿰਼़゙b, qa𖿰਼़゙b);
+Test_N(qa゙्੍ְb, qa゙्੍ְb, qa゙्੍ְb, qa゙्੍ְb, qa゙्੍ְb);
+Test_N(qa゙੍्ְb, qa゙੍्ְb, qa゙੍्ְb, qa゙੍्ְb, qa゙੍्ְb);
+Test_N(qa𖿰़઼゙b, qa𖿰़઼゙b, qa𖿰़઼゙b, qa𖿰़઼゙b, qa𖿰़઼゙b);
+Test_N(qa𖿰઼़゙b, qa𖿰઼़゙b, qa𖿰઼़゙b, qa𖿰઼़゙b, qa𖿰઼़゙b);
+Test_N(qa゙्્ְb, qa゙्્ְb, qa゙्્ְb, qa゙्્ְb, qa゙्્ְb);
+Test_N(qa゙્्ְb, qa゙્्ְb, qa゙્्ְb, qa゙્्ְb, qa゙્्ְb);
+Test_N(qa𖿰़଼゙b, qa𖿰़଼゙b, qa𖿰़଼゙b, qa𖿰़଼゙b, qa𖿰़଼゙b);
+Test_N(qa𖿰଼़゙b, qa𖿰଼़゙b, qa𖿰଼़゙b, qa𖿰଼़゙b, qa𖿰଼़゙b);
+Test_N(qa゙्୍ְb, qa゙्୍ְb, qa゙्୍ְb, qa゙्୍ְb, qa゙्୍ְb);
+Test_N(qa゙୍्ְb, qa゙୍्ְb, qa゙୍्ְb, qa゙୍्ְb, qa゙୍्ְb);
+Test_N(qa゙्்ְb, qa゙्்ְb, qa゙्்ְb, qa゙्்ְb, qa゙्்ְb);
+Test_N(qa゙்्ְb, qa゙்्ְb, qa゙்्ְb, qa゙்्ְb, qa゙்्ְb);
+Test_N(qa𖿰़఼゙b, qa𖿰़఼゙b, qa𖿰़఼゙b, qa𖿰़఼゙b, qa𖿰़఼゙b);
+Test_N(qa𖿰఼़゙b, qa𖿰఼़゙b, qa𖿰఼़゙b, qa𖿰఼़゙b, qa𖿰఼़゙b);
+Test_N(qa゙्్ְb, qa゙्్ְb, qa゙्్ְb, qa゙्్ְb, qa゙्్ְb);
+Test_N(qa゙్्ְb, qa゙్्ְb, qa゙్्ְb, qa゙్्ְb, qa゙్्ְb);
+Test_N(qaܑౕౕౖb, qaܑౕౕౖb, qaܑౕౕౖb, qaܑౕౕౖb, qaܑౕౕౖb);
+Test_N(qaܑౕౕౖb, qaܑౕౕౖb, qaܑౕౕౖb, qaܑౕౕౖb, qaܑౕౕౖb);
+Test_N(qaౕౖౖุb, qaౕౖౖุb, qaౕౖౖุb, qaౕౖౖุb, qaౕౖౖุb);
+Test_N(qaౕౖౖุb, qaౕౖౖุb, qaౕౖౖุb, qaౕౖౖุb, qaౕౖౖุb);
+Test_N(qa𖿰़಼゙b, qa𖿰़಼゙b, qa𖿰़಼゙b, qa𖿰़಼゙b, qa𖿰़಼゙b);
+Test_N(qa𖿰಼़゙b, qa𖿰಼़゙b, qa𖿰಼़゙b, qa𖿰಼़゙b, qa𖿰಼़゙b);
+Test_N(qa゙्್ְb, qa゙्್ְb, qa゙्್ְb, qa゙्್ְb, qa゙्್ְb);
+Test_N(qa゙್्ְb, qa゙್्ְb, qa゙್्ְb, qa゙್्ְb, qa゙್्ְb);
+Test_N(qa゙्഻ְb, qa゙्഻ְb, qa゙्഻ְb, qa゙्഻ְb, qa゙्഻ְb);
+Test_N(qa゙഻्ְb, qa゙഻्ְb, qa゙഻्ְb, qa゙഻्ְb, qa゙഻्ְb);
+Test_N(qa゙्഼ְb, qa゙्഼ְb, qa゙्഼ְb, qa゙्഼ְb, qa゙्഼ְb);
+Test_N(qa゙഼्ְb, qa゙഼्ְb, qa゙഼्ְb, qa゙഼्ְb, qa゙഼्ְb);
+Test_N(qa゙्്ְb, qa゙्്ְb, qa゙्്ְb, qa゙्്ְb, qa゙्്ְb);
+Test_N(qa゙്्ְb, qa゙്्ְb, qa゙്्ְb, qa゙്्ְb, qa゙്्ְb);
+Test_N(qa゙्්ְb, qa゙्්ְb, qa゙्්ְb, qa゙्්ְb, qa゙्්ְb);
+Test_N(qa゙්्ְb, qa゙්्ְb, qa゙්्ְb, qa゙්्ְb, qa゙්्ְb);
+Test_N(qaౖุุ่b, qaౖุุ่b, qaౖุุ่b, qaౖุุ่b, qaౖุุ่b);
+Test_N(qaౖุุ่b, qaౖุุ่b, qaౖุุ่b, qaౖุุ่b, qaౖุุ่b);
+Test_N(qaౖุู่b, qaౖุู่b, qaౖุู่b, qaౖุู่b, qaౖุู่b);
+Test_N(qaౖูุ่b, qaౖูุ่b, qaౖูุ่b, qaౖูุ่b, qaౖูุ่b);
+Test_N(qa゙्ฺְb, qa゙्ฺְb, qa゙्ฺְb, qa゙्ฺְb, qa゙्ฺְb);
+Test_N(qa゙ฺ्ְb, qa゙ฺ्ְb, qa゙ฺ्ְb, qa゙ฺ्ְb, qa゙ฺ्ְb);
+Test_N(qaุ่่ຸb, qaุ่่ຸb, qaุ่่ຸb, qaุ่่ຸb, qaุ่่ຸb);
+Test_N(qaุ่่ຸb, qaุ่่ຸb, qaุ่่ຸb, qaุ่่ຸb, qaุ่่ຸb);
+Test_N(qaุ่้ຸb, qaุ่้ຸb, qaุ่้ຸb, qaุ่้ຸb, qaุ่้ຸb);
+Test_N(qaุ้่ຸb, qaุ้่ຸb, qaุ้่ຸb, qaุ้่ຸb, qaุ้่ຸb);
+Test_N(qaุ่๊ຸb, qaุ่๊ຸb, qaุ่๊ຸb, qaุ่๊ຸb, qaุ่๊ຸb);
+Test_N(qaุ๊่ຸb, qaุ๊่ຸb, qaุ๊่ຸb, qaุ๊่ຸb, qaุ๊่ຸb);
+Test_N(qaุ่๋ຸb, qaุ่๋ຸb, qaุ่๋ຸb, qaุ่๋ຸb, qaุ่๋ຸb);
+Test_N(qaุ๋่ຸb, qaุ๋่ຸb, qaุ๋่ຸb, qaุ๋่ຸb, qaุ๋่ຸb);
+Test_N(qa่ຸຸ່b, qa่ຸຸ່b, qa่ຸຸ່b, qa่ຸຸ່b, qa่ຸຸ່b);
+Test_N(qa่ຸຸ່b, qa่ຸຸ່b, qa่ຸຸ່b, qa่ຸຸ່b, qa่ຸຸ່b);
+Test_N(qa่ຸູ່b, qa่ຸູ່b, qa่ຸູ່b, qa่ຸູ່b, qa่ຸູ່b);
+Test_N(qa่ູຸ່b, qa่ູຸ່b, qa่ູຸ່b, qa่ູຸ່b, qa่ູຸ່b);
+Test_N(qa゙्຺ְb, qa゙्຺ְb, qa゙्຺ְb, qa゙्຺ְb, qa゙्຺ְb);
+Test_N(qa゙຺्ְb, qa゙຺्ְb, qa゙຺्ְb, qa゙຺्ְb, qa゙຺्ְb);
+Test_N(qaຸ່່ཱb, qaຸ່່ཱb, qaຸ່່ཱb, qaຸ່່ཱb, qaຸ່່ཱb);
+Test_N(qaຸ່່ཱb, qaຸ່່ཱb, qaຸ່່ཱb, qaຸ່່ཱb, qaຸ່່ཱb);
+Test_N(qaຸ່້ཱb, qaຸ່້ཱb, qaຸ່້ཱb, qaຸ່້ཱb, qaຸ່້ཱb);
+Test_N(qaຸ້່ཱb, qaຸ້່ཱb, qaຸ້່ཱb, qaຸ້່ཱb, qaຸ້່ཱb);
+Test_N(qaຸ່໊ཱb, qaຸ່໊ཱb, qaຸ່໊ཱb, qaຸ່໊ཱb, qaຸ່໊ཱb);
+Test_N(qaຸ໊່ཱb, qaຸ໊່ཱb, qaຸ໊່ཱb, qaຸ໊່ཱb, qaຸ໊່ཱb);
+Test_N(qaຸ່໋ཱb, qaຸ່໋ཱb, qaຸ່໋ཱb, qaຸ່໋ཱb, qaຸ່໋ཱb);
+Test_N(qaຸ໋່ཱb, qaຸ໋່ཱb, qaຸ໋່ཱb, qaຸ໋່ཱb, qaຸ໋່ཱb);
+Test_N(qa᷺̖༘֚b, qa᷺̖༘֚b, qa᷺̖༘֚b, qa᷺̖༘֚b, qa᷺̖༘֚b);
+Test_N(qa᷺༘̖֚b, qa᷺༘̖֚b, qa᷺༘̖֚b, qa᷺༘̖֚b, qa᷺༘̖֚b);
+Test_N(qa᷺̖༙֚b, qa᷺̖༙֚b, qa᷺̖༙֚b, qa᷺̖༙֚b, qa᷺̖༙֚b);
+Test_N(qa᷺༙̖֚b, qa᷺༙̖֚b, qa᷺༙̖֚b, qa᷺༙̖֚b, qa᷺༙̖֚b);
+Test_N(qa᷺̖༵֚b, qa᷺̖༵֚b, qa᷺̖༵֚b, qa᷺̖༵֚b, qa᷺̖༵֚b);
+Test_N(qa᷺༵̖֚b, qa᷺༵̖֚b, qa᷺༵̖֚b, qa᷺༵̖֚b, qa᷺༵̖֚b);
+Test_N(qa᷺̖༷֚b, qa᷺̖༷֚b, qa᷺̖༷֚b, qa᷺̖༷֚b, qa᷺̖༷֚b);
+Test_N(qa᷺༷̖֚b, qa᷺༷̖֚b, qa᷺༷̖֚b, qa᷺༷̖֚b, qa᷺༷̖֚b);
+Test_N(qa᷎̛༹᷺b, qa᷎̛༹᷺b, qa᷎̛༹᷺b, qa᷎̛༹᷺b, qa᷎̛༹᷺b);
+Test_N(qa᷎༹̛᷺b, qa᷎༹̛᷺b, qa᷎༹̛᷺b, qa᷎༹̛᷺b, qa᷎༹̛᷺b);
+Test_N(qa່ཱཱིb, qa່ཱཱིb, qa່ཱཱིb, qa່ཱཱིb, qa່ཱཱིb);
+Test_N(qa່ཱཱིb, qa່ཱཱིb, qa່ཱཱིb, qa່ཱཱིb, qa່ཱཱིb);
+Test_N(qaཱིིུb, qaཱིིུb, qaཱིིུb, qaཱིིུb, qaཱིིུb);
+Test_N(qaཱིིུb, qaཱིིུb, qaཱིིུb, qaཱིིུb, qaཱིིུb);
+Test_N(qaིུུ̡b, qaིུུ̡b, qaིུུ̡b, qaིུུ̡b, qaིུུ̡b);
+Test_N(qaིུུ̡b, qaིུུ̡b, qaིུུ̡b, qaིུུ̡b, qaིུུ̡b);
+Test_N(qaཱིེུb, qaཱིེུb, qaཱིེུb, qaཱིེུb, qaཱིེུb);
+Test_N(qaཱེིུb, qaཱེིུb, qaཱེིུb, qaཱེིུb, qaཱེིུb);
+Test_N(qaཱིཻུb, qaཱིཻུb, qaཱིཻུb, qaཱིཻུb, qaཱིཻུb);
+Test_N(qaཱཻིུb, qaཱཻིུb, qaཱཻིུb, qaཱཻིུb, qaཱཻིུb);
+Test_N(qaཱིོུb, qaཱིོུb, qaཱིོུb, qaཱིོུb, qaཱིོུb);
+Test_N(qaཱོིུb, qaཱོིུb, qaཱོིུb, qaཱོིུb, qaཱོིུb);
+Test_N(qaཱིཽུb, qaཱིཽུb, qaཱིཽུb, qaཱིཽུb, qaཱིཽུb);
+Test_N(qaཱཽིུb, qaཱཽིུb, qaཱཽིུb, qaཱཽིུb, qaཱཽིུb);
+Test_N(qaཱིྀུb, qaཱིྀུb, qaཱིྀུb, qaཱིྀུb, qaཱིྀུb);
+Test_N(qaཱྀིུb, qaཱྀིུb, qaཱྀིུb, qaཱྀིུb, qaཱྀིུb);
+Test_N(qà֮ྂ̕b, qà֮ྂ̕b, qà֮ྂ̕b, qà֮ྂ̕b, qà֮ྂ̕b);
+Test_N(qa֮ྂ̀̕b, qa֮ྂ̀̕b, qa֮ྂ̀̕b, qa֮ྂ̀̕b, qa֮ྂ̀̕b);
+Test_N(qà֮ྃ̕b, qà֮ྃ̕b, qà֮ྃ̕b, qà֮ྃ̕b, qà֮ྃ̕b);
+Test_N(qa֮ྃ̀̕b, qa֮ྃ̀̕b, qa֮ྃ̀̕b, qa֮ྃ̀̕b, qa֮ྃ̀̕b);
+Test_N(qa゙्྄ְb, qa゙्྄ְb, qa゙्྄ְb, qa゙्྄ְb, qa゙्྄ְb);
+Test_N(qa゙྄्ְb, qa゙྄्ְb, qa゙྄्ְb, qa゙྄्ְb, qa゙྄्ְb);
+Test_N(qà֮྆̕b, qà֮྆̕b, qà֮྆̕b, qà֮྆̕b, qà֮྆̕b);
+Test_N(qa֮྆̀̕b, qa֮྆̀̕b, qa֮྆̀̕b, qa֮྆̀̕b, qa֮྆̀̕b);
+Test_N(qà֮྇̕b, qà֮྇̕b, qà֮྇̕b, qà֮྇̕b, qà֮྇̕b);
+Test_N(qa֮྇̀̕b, qa֮྇̀̕b, qa֮྇̀̕b, qa֮྇̀̕b, qa֮྇̀̕b);
+Test_N(qa᷺̖࿆֚b, qa᷺̖࿆֚b, qa᷺̖࿆֚b, qa᷺̖࿆֚b, qa᷺̖࿆֚b);
+Test_N(qa᷺࿆̖֚b, qa᷺࿆̖֚b, qa᷺࿆̖֚b, qa᷺࿆̖֚b, qa᷺࿆̖֚b);
+Test_N(qa𖿰़့゙b, qa𖿰़့゙b, qa𖿰़့゙b, qa𖿰़့゙b, qa𖿰़့゙b);
+Test_N(qa𖿰့़゙b, qa𖿰့़゙b, qa𖿰့़゙b, qa𖿰့़゙b, qa𖿰့़゙b);
+Test_N(qa゙्္ְb, qa゙्္ְb, qa゙्္ְb, qa゙्္ְb, qa゙्္ְb);
+Test_N(qa゙္्ְb, qa゙္्ְb, qa゙္्ְb, qa゙္्ְb, qa゙္्ְb);
+Test_N(qa゙्်ְb, qa゙्်ְb, qa゙्်ְb, qa゙्်ְb, qa゙्်ְb);
+Test_N(qa゙်्ְb, qa゙်्ְb, qa゙်्ְb, qa゙်्ְb, qa゙်्ְb);
+Test_N(qa᷺̖ႍ֚b, qa᷺̖ႍ֚b, qa᷺̖ႍ֚b, qa᷺̖ႍ֚b, qa᷺̖ႍ֚b);
+Test_N(qa᷺ႍ̖֚b, qa᷺ႍ̖֚b, qa᷺ႍ̖֚b, qa᷺ႍ̖֚b, qa᷺ႍ̖֚b);
+Test_N(qà֮፝̕b, qà֮፝̕b, qà֮፝̕b, qà֮፝̕b, qà֮፝̕b);
+Test_N(qa֮፝̀̕b, qa֮፝̀̕b, qa֮፝̀̕b, qa֮፝̀̕b, qa֮፝̀̕b);
+Test_N(qà֮፞̕b, qà֮፞̕b, qà֮፞̕b, qà֮፞̕b, qà֮፞̕b);
+Test_N(qa֮፞̀̕b, qa֮፞̀̕b, qa֮፞̀̕b, qa֮፞̀̕b, qa֮፞̀̕b);
+Test_N(qà֮፟̕b, qà֮፟̕b, qà֮፟̕b, qà֮፟̕b, qà֮፟̕b);
+Test_N(qa֮፟̀̕b, qa֮፟̀̕b, qa֮፟̀̕b, qa֮፟̀̕b, qa֮፟̀̕b);
+Test_N(qa゙्᜔ְb, qa゙्᜔ְb, qa゙्᜔ְb, qa゙्᜔ְb, qa゙्᜔ְb);
+Test_N(qa゙᜔्ְb, qa゙᜔्ְb, qa゙᜔्ְb, qa゙᜔्ְb, qa゙᜔्ְb);
+Test_N(qa゙्᜕ְb, qa゙्᜕ְb, qa゙्᜕ְb, qa゙्᜕ְb, qa゙्᜕ְb);
+Test_N(qa゙᜕्ְb, qa゙᜕्ְb, qa゙᜕्ְb, qa゙᜕्ְb, qa゙᜕्ְb);
+Test_N(qa゙्᜴ְb, qa゙्᜴ְb, qa゙्᜴ְb, qa゙्᜴ְb, qa゙्᜴ְb);
+Test_N(qa゙᜴्ְb, qa゙᜴्ְb, qa゙᜴्ְb, qa゙᜴्ְb, qa゙᜴्ְb);
+Test_N(qa゙्្ְb, qa゙्្ְb, qa゙्្ְb, qa゙्្ְb, qa゙्្ְb);
+Test_N(qa゙្्ְb, qa゙្्ְb, qa゙្्ְb, qa゙្्ְb, qa゙្्ְb);
+Test_N(qà֮៝̕b, qà֮៝̕b, qà֮៝̕b, qà֮៝̕b, qà֮៝̕b);
+Test_N(qa֮៝̀̕b, qa֮៝̀̕b, qa֮៝̀̕b, qa֮៝̀̕b, qa֮៝̀̕b);
+Test_N(qà𝅭֮ᢩb, qà𝅭֮ᢩb, qà𝅭֮ᢩb, qà𝅭֮ᢩb, qà𝅭֮ᢩb);
+Test_N(qà𝅭ᢩ֮b, qà𝅭ᢩ֮b, qà𝅭ᢩ֮b, qà𝅭ᢩ֮b, qà𝅭ᢩ֮b);
+Test_N(qa̖֚᤹〮b, qa̖֚᤹〮b, qa̖֚᤹〮b, qa̖֚᤹〮b, qa̖֚᤹〮b);
+Test_N(qa̖᤹֚〮b, qa̖᤹֚〮b, qa̖᤹֚〮b, qa̖᤹֚〮b, qa̖᤹֚〮b);
+Test_N(qà֮᤺̕b, qà֮᤺̕b, qà֮᤺̕b, qà֮᤺̕b, qà֮᤺̕b);
+Test_N(qa֮᤺̀̕b, qa֮᤺̀̕b, qa֮᤺̀̕b, qa֮᤺̀̕b, qa֮᤺̀̕b);
+Test_N(qa᷺̖᤻֚b, qa᷺̖᤻֚b, qa᷺̖᤻֚b, qa᷺̖᤻֚b, qa᷺̖᤻֚b);
+Test_N(qa᷺᤻̖֚b, qa᷺᤻̖֚b, qa᷺᤻̖֚b, qa᷺᤻̖֚b, qa᷺᤻̖֚b);
+Test_N(qà֮ᨗ̕b, qà֮ᨗ̕b, qà֮ᨗ̕b, qà֮ᨗ̕b, qà֮ᨗ̕b);
+Test_N(qa֮ᨗ̀̕b, qa֮ᨗ̀̕b, qa֮ᨗ̀̕b, qa֮ᨗ̀̕b, qa֮ᨗ̀̕b);
+Test_N(qa᷺̖ᨘ֚b, qa᷺̖ᨘ֚b, qa᷺̖ᨘ֚b, qa᷺̖ᨘ֚b, qa᷺̖ᨘ֚b);
+Test_N(qa᷺ᨘ̖֚b, qa᷺ᨘ̖֚b, qa᷺ᨘ̖֚b, qa᷺ᨘ̖֚b, qa᷺ᨘ̖֚b);
+Test_N(qa゙्᩠ְb, qa゙्᩠ְb, qa゙्᩠ְb, qa゙्᩠ְb, qa゙्᩠ְb);
+Test_N(qa゙᩠्ְb, qa゙᩠्ְb, qa゙᩠्ְb, qa゙᩠्ְb, qa゙᩠्ְb);
+Test_N(qà֮᩵̕b, qà֮᩵̕b, qà֮᩵̕b, qà֮᩵̕b, qà֮᩵̕b);
+Test_N(qa֮᩵̀̕b, qa֮᩵̀̕b, qa֮᩵̀̕b, qa֮᩵̀̕b, qa֮᩵̀̕b);
+Test_N(qà֮᩶̕b, qà֮᩶̕b, qà֮᩶̕b, qà֮᩶̕b, qà֮᩶̕b);
+Test_N(qa֮᩶̀̕b, qa֮᩶̀̕b, qa֮᩶̀̕b, qa֮᩶̀̕b, qa֮᩶̀̕b);
+Test_N(qà֮᩷̕b, qà֮᩷̕b, qà֮᩷̕b, qà֮᩷̕b, qà֮᩷̕b);
+Test_N(qa֮᩷̀̕b, qa֮᩷̀̕b, qa֮᩷̀̕b, qa֮᩷̀̕b, qa֮᩷̀̕b);
+Test_N(qà֮᩸̕b, qà֮᩸̕b, qà֮᩸̕b, qà֮᩸̕b, qà֮᩸̕b);
+Test_N(qa֮᩸̀̕b, qa֮᩸̀̕b, qa֮᩸̀̕b, qa֮᩸̀̕b, qa֮᩸̀̕b);
+Test_N(qà֮᩹̕b, qà֮᩹̕b, qà֮᩹̕b, qà֮᩹̕b, qà֮᩹̕b);
+Test_N(qa֮᩹̀̕b, qa֮᩹̀̕b, qa֮᩹̀̕b, qa֮᩹̀̕b, qa֮᩹̀̕b);
+Test_N(qà֮᩺̕b, qà֮᩺̕b, qà֮᩺̕b, qà֮᩺̕b, qà֮᩺̕b);
+Test_N(qa֮᩺̀̕b, qa֮᩺̀̕b, qa֮᩺̀̕b, qa֮᩺̀̕b, qa֮᩺̀̕b);
+Test_N(qà֮᩻̕b, qà֮᩻̕b, qà֮᩻̕b, qà֮᩻̕b, qà֮᩻̕b);
+Test_N(qa֮᩻̀̕b, qa֮᩻̀̕b, qa֮᩻̀̕b, qa֮᩻̀̕b, qa֮᩻̀̕b);
+Test_N(qà֮᩼̕b, qà֮᩼̕b, qà֮᩼̕b, qà֮᩼̕b, qà֮᩼̕b);
+Test_N(qa֮᩼̀̕b, qa֮᩼̀̕b, qa֮᩼̀̕b, qa֮᩼̀̕b, qa֮᩼̀̕b);
+Test_N(qa᷺̖᩿֚b, qa᷺̖᩿֚b, qa᷺̖᩿֚b, qa᷺̖᩿֚b, qa᷺̖᩿֚b);
+Test_N(qa᷺᩿̖֚b, qa᷺᩿̖֚b, qa᷺᩿̖֚b, qa᷺᩿̖֚b, qa᷺᩿̖֚b);
+Test_N(qà֮᪰̕b, qà֮᪰̕b, qà֮᪰̕b, qà֮᪰̕b, qà֮᪰̕b);
+Test_N(qa֮᪰̀̕b, qa֮᪰̀̕b, qa֮᪰̀̕b, qa֮᪰̀̕b, qa֮᪰̀̕b);
+Test_N(qà֮᪱̕b, qà֮᪱̕b, qà֮᪱̕b, qà֮᪱̕b, qà֮᪱̕b);
+Test_N(qa֮᪱̀̕b, qa֮᪱̀̕b, qa֮᪱̀̕b, qa֮᪱̀̕b, qa֮᪱̀̕b);
+Test_N(qà֮᪲̕b, qà֮᪲̕b, qà֮᪲̕b, qà֮᪲̕b, qà֮᪲̕b);
+Test_N(qa֮᪲̀̕b, qa֮᪲̀̕b, qa֮᪲̀̕b, qa֮᪲̀̕b, qa֮᪲̀̕b);
+Test_N(qà֮᪳̕b, qà֮᪳̕b, qà֮᪳̕b, qà֮᪳̕b, qà֮᪳̕b);
+Test_N(qa֮᪳̀̕b, qa֮᪳̀̕b, qa֮᪳̀̕b, qa֮᪳̀̕b, qa֮᪳̀̕b);
+Test_N(qà֮᪴̕b, qà֮᪴̕b, qà֮᪴̕b, qà֮᪴̕b, qà֮᪴̕b);
+Test_N(qa֮᪴̀̕b, qa֮᪴̀̕b, qa֮᪴̀̕b, qa֮᪴̀̕b, qa֮᪴̀̕b);
+Test_N(qa᷺̖᪵֚b, qa᷺̖᪵֚b, qa᷺̖᪵֚b, qa᷺̖᪵֚b, qa᷺̖᪵֚b);
+Test_N(qa᷺᪵̖֚b, qa᷺᪵̖֚b, qa᷺᪵̖֚b, qa᷺᪵̖֚b, qa᷺᪵̖֚b);
+Test_N(qa᷺̖᪶֚b, qa᷺̖᪶֚b, qa᷺̖᪶֚b, qa᷺̖᪶֚b, qa᷺̖᪶֚b);
+Test_N(qa᷺᪶̖֚b, qa᷺᪶̖֚b, qa᷺᪶̖֚b, qa᷺᪶̖֚b, qa᷺᪶̖֚b);
+Test_N(qa᷺̖᪷֚b, qa᷺̖᪷֚b, qa᷺̖᪷֚b, qa᷺̖᪷֚b, qa᷺̖᪷֚b);
+Test_N(qa᷺᪷̖֚b, qa᷺᪷̖֚b, qa᷺᪷̖֚b, qa᷺᪷̖֚b, qa᷺᪷̖֚b);
+Test_N(qa᷺̖᪸֚b, qa᷺̖᪸֚b, qa᷺̖᪸֚b, qa᷺̖᪸֚b, qa᷺̖᪸֚b);
+Test_N(qa᷺᪸̖֚b, qa᷺᪸̖֚b, qa᷺᪸̖֚b, qa᷺᪸̖֚b, qa᷺᪸̖֚b);
+Test_N(qa᷺̖᪹֚b, qa᷺̖᪹֚b, qa᷺̖᪹֚b, qa᷺̖᪹֚b, qa᷺̖᪹֚b);
+Test_N(qa᷺᪹̖֚b, qa᷺᪹̖֚b, qa᷺᪹̖֚b, qa᷺᪹̖֚b, qa᷺᪹̖֚b);
+Test_N(qa᷺̖᪺֚b, qa᷺̖᪺֚b, qa᷺̖᪺֚b, qa᷺̖᪺֚b, qa᷺̖᪺֚b);
+Test_N(qa᷺᪺̖֚b, qa᷺᪺̖֚b, qa᷺᪺̖֚b, qa᷺᪺̖֚b, qa᷺᪺̖֚b);
+Test_N(qà֮᪻̕b, qà֮᪻̕b, qà֮᪻̕b, qà֮᪻̕b, qà֮᪻̕b);
+Test_N(qa֮᪻̀̕b, qa֮᪻̀̕b, qa֮᪻̀̕b, qa֮᪻̀̕b, qa֮᪻̀̕b);
+Test_N(qà֮᪼̕b, qà֮᪼̕b, qà֮᪼̕b, qà֮᪼̕b, qà֮᪼̕b);
+Test_N(qa֮᪼̀̕b, qa֮᪼̀̕b, qa֮᪼̀̕b, qa֮᪼̀̕b, qa֮᪼̀̕b);
+Test_N(qa᷺̖᪽֚b, qa᷺̖᪽֚b, qa᷺̖᪽֚b, qa᷺̖᪽֚b, qa᷺̖᪽֚b);
+Test_N(qa᷺᪽̖֚b, qa᷺᪽̖֚b, qa᷺᪽̖֚b, qa᷺᪽̖֚b, qa᷺᪽̖֚b);
+Test_N(qa᷺̖ᪿ֚b, qa᷺̖ᪿ֚b, qa᷺̖ᪿ֚b, qa᷺̖ᪿ֚b, qa᷺̖ᪿ֚b);
+Test_N(qa᷺ᪿ̖֚b, qa᷺ᪿ̖֚b, qa᷺ᪿ̖֚b, qa᷺ᪿ̖֚b, qa᷺ᪿ̖֚b);
+Test_N(qa᷺̖ᫀ֚b, qa᷺̖ᫀ֚b, qa᷺̖ᫀ֚b, qa᷺̖ᫀ֚b, qa᷺̖ᫀ֚b);
+Test_N(qa᷺ᫀ̖֚b, qa᷺ᫀ̖֚b, qa᷺ᫀ̖֚b, qa᷺ᫀ̖֚b, qa᷺ᫀ̖֚b);
+Test_N(qà֮᫁̕b, qà֮᫁̕b, qà֮᫁̕b, qà֮᫁̕b, qà֮᫁̕b);
+Test_N(qa֮᫁̀̕b, qa֮᫁̀̕b, qa֮᫁̀̕b, qa֮᫁̀̕b, qa֮᫁̀̕b);
+Test_N(qà֮᫂̕b, qà֮᫂̕b, qà֮᫂̕b, qà֮᫂̕b, qà֮᫂̕b);
+Test_N(qa֮᫂̀̕b, qa֮᫂̀̕b, qa֮᫂̀̕b, qa֮᫂̀̕b, qa֮᫂̀̕b);
+Test_N(qa᷺̖᫃֚b, qa᷺̖᫃֚b, qa᷺̖᫃֚b, qa᷺̖᫃֚b, qa᷺̖᫃֚b);
+Test_N(qa᷺᫃̖֚b, qa᷺᫃̖֚b, qa᷺᫃̖֚b, qa᷺᫃̖֚b, qa᷺᫃̖֚b);
+Test_N(qa᷺̖᫄֚b, qa᷺̖᫄֚b, qa᷺̖᫄֚b, qa᷺̖᫄֚b, qa᷺̖᫄֚b);
+Test_N(qa᷺᫄̖֚b, qa᷺᫄̖֚b, qa᷺᫄̖֚b, qa᷺᫄̖֚b, qa᷺᫄̖֚b);
+Test_N(qà֮᫅̕b, qà֮᫅̕b, qà֮᫅̕b, qà֮᫅̕b, qà֮᫅̕b);
+Test_N(qa֮᫅̀̕b, qa֮᫅̀̕b, qa֮᫅̀̕b, qa֮᫅̀̕b, qa֮᫅̀̕b);
+Test_N(qà֮᫆̕b, qà֮᫆̕b, qà֮᫆̕b, qà֮᫆̕b, qà֮᫆̕b);
+Test_N(qa֮᫆̀̕b, qa֮᫆̀̕b, qa֮᫆̀̕b, qa֮᫆̀̕b, qa֮᫆̀̕b);
+Test_N(qà֮᫇̕b, qà֮᫇̕b, qà֮᫇̕b, qà֮᫇̕b, qà֮᫇̕b);
+Test_N(qa֮᫇̀̕b, qa֮᫇̀̕b, qa֮᫇̀̕b, qa֮᫇̀̕b, qa֮᫇̀̕b);
+Test_N(qà֮᫈̕b, qà֮᫈̕b, qà֮᫈̕b, qà֮᫈̕b, qà֮᫈̕b);
+Test_N(qa֮᫈̀̕b, qa֮᫈̀̕b, qa֮᫈̀̕b, qa֮᫈̀̕b, qa֮᫈̀̕b);
+Test_N(qà֮᫉̕b, qà֮᫉̕b, qà֮᫉̕b, qà֮᫉̕b, qà֮᫉̕b);
+Test_N(qa֮᫉̀̕b, qa֮᫉̀̕b, qa֮᫉̀̕b, qa֮᫉̀̕b, qa֮᫉̀̕b);
+Test_N(qa᷺̖᫊֚b, qa᷺̖᫊֚b, qa᷺̖᫊֚b, qa᷺̖᫊֚b, qa᷺̖᫊֚b);
+Test_N(qa᷺᫊̖֚b, qa᷺᫊̖֚b, qa᷺᫊̖֚b, qa᷺᫊̖֚b, qa᷺᫊̖֚b);
+Test_N(qà֮᫋̕b, qà֮᫋̕b, qà֮᫋̕b, qà֮᫋̕b, qà֮᫋̕b);
+Test_N(qa֮᫋̀̕b, qa֮᫋̀̕b, qa֮᫋̀̕b, qa֮᫋̀̕b, qa֮᫋̀̕b);
+Test_N(qà֮ᫌ̕b, qà֮ᫌ̕b, qà֮ᫌ̕b, qà֮ᫌ̕b, qà֮ᫌ̕b);
+Test_N(qa֮ᫌ̀̕b, qa֮ᫌ̀̕b, qa֮ᫌ̀̕b, qa֮ᫌ̀̕b, qa֮ᫌ̀̕b);
+Test_N(qà֮ᫍ̕b, qà֮ᫍ̕b, qà֮ᫍ̕b, qà֮ᫍ̕b, qà֮ᫍ̕b);
+Test_N(qa֮ᫍ̀̕b, qa֮ᫍ̀̕b, qa֮ᫍ̀̕b, qa֮ᫍ̀̕b, qa֮ᫍ̀̕b);
+Test_N(qà֮ᫎ̕b, qà֮ᫎ̕b, qà֮ᫎ̕b, qà֮ᫎ̕b, qà֮ᫎ̕b);
+Test_N(qa֮ᫎ̀̕b, qa֮ᫎ̀̕b, qa֮ᫎ̀̕b, qa֮ᫎ̀̕b, qa֮ᫎ̀̕b);
+Test_N(qa𖿰़᬴゙b, qa𖿰़᬴゙b, qa𖿰़᬴゙b, qa𖿰़᬴゙b, qa𖿰़᬴゙b);
+Test_N(qa𖿰᬴़゙b, qa𖿰᬴़゙b, qa𖿰᬴़゙b, qa𖿰᬴़゙b, qa𖿰᬴़゙b);
+Test_N(qa゙्᭄ְb, qa゙्᭄ְb, qa゙्᭄ְb, qa゙्᭄ְb, qa゙्᭄ְb);
+Test_N(qa゙᭄्ְb, qa゙᭄्ְb, qa゙᭄्ְb, qa゙᭄्ְb, qa゙᭄्ְb);
+Test_N(qà֮᭫̕b, qà֮᭫̕b, qà֮᭫̕b, qà֮᭫̕b, qà֮᭫̕b);
+Test_N(qa֮᭫̀̕b, qa֮᭫̀̕b, qa֮᭫̀̕b, qa֮᭫̀̕b, qa֮᭫̀̕b);
+Test_N(qa᷺̖᭬֚b, qa᷺̖᭬֚b, qa᷺̖᭬֚b, qa᷺̖᭬֚b, qa᷺̖᭬֚b);
+Test_N(qa᷺᭬̖֚b, qa᷺᭬̖֚b, qa᷺᭬̖֚b, qa᷺᭬̖֚b, qa᷺᭬̖֚b);
+Test_N(qà֮᭭̕b, qà֮᭭̕b, qà֮᭭̕b, qà֮᭭̕b, qà֮᭭̕b);
+Test_N(qa֮᭭̀̕b, qa֮᭭̀̕b, qa֮᭭̀̕b, qa֮᭭̀̕b, qa֮᭭̀̕b);
+Test_N(qà֮᭮̕b, qà֮᭮̕b, qà֮᭮̕b, qà֮᭮̕b, qà֮᭮̕b);
+Test_N(qa֮᭮̀̕b, qa֮᭮̀̕b, qa֮᭮̀̕b, qa֮᭮̀̕b, qa֮᭮̀̕b);
+Test_N(qà֮᭯̕b, qà֮᭯̕b, qà֮᭯̕b, qà֮᭯̕b, qà֮᭯̕b);
+Test_N(qa֮᭯̀̕b, qa֮᭯̀̕b, qa֮᭯̀̕b, qa֮᭯̀̕b, qa֮᭯̀̕b);
+Test_N(qà֮᭰̕b, qà֮᭰̕b, qà֮᭰̕b, qà֮᭰̕b, qà֮᭰̕b);
+Test_N(qa֮᭰̀̕b, qa֮᭰̀̕b, qa֮᭰̀̕b, qa֮᭰̀̕b, qa֮᭰̀̕b);
+Test_N(qà֮᭱̕b, qà֮᭱̕b, qà֮᭱̕b, qà֮᭱̕b, qà֮᭱̕b);
+Test_N(qa֮᭱̀̕b, qa֮᭱̀̕b, qa֮᭱̀̕b, qa֮᭱̀̕b, qa֮᭱̀̕b);
+Test_N(qà֮᭲̕b, qà֮᭲̕b, qà֮᭲̕b, qà֮᭲̕b, qà֮᭲̕b);
+Test_N(qa֮᭲̀̕b, qa֮᭲̀̕b, qa֮᭲̀̕b, qa֮᭲̀̕b, qa֮᭲̀̕b);
+Test_N(qà֮᭳̕b, qà֮᭳̕b, qà֮᭳̕b, qà֮᭳̕b, qà֮᭳̕b);
+Test_N(qa֮᭳̀̕b, qa֮᭳̀̕b, qa֮᭳̀̕b, qa֮᭳̀̕b, qa֮᭳̀̕b);
+Test_N(qa゙्᮪ְb, qa゙्᮪ְb, qa゙्᮪ְb, qa゙्᮪ְb, qa゙्᮪ְb);
+Test_N(qa゙᮪्ְb, qa゙᮪्ְb, qa゙᮪्ְb, qa゙᮪्ְb, qa゙᮪्ְb);
+Test_N(qa゙्᮫ְb, qa゙्᮫ְb, qa゙्᮫ְb, qa゙्᮫ְb, qa゙्᮫ְb);
+Test_N(qa゙᮫्ְb, qa゙᮫्ְb, qa゙᮫्ְb, qa゙᮫्ְb, qa゙᮫्ְb);
+Test_N(qa𖿰़᯦゙b, qa𖿰़᯦゙b, qa𖿰़᯦゙b, qa𖿰़᯦゙b, qa𖿰़᯦゙b);
+Test_N(qa𖿰᯦़゙b, qa𖿰᯦़゙b, qa𖿰᯦़゙b, qa𖿰᯦़゙b, qa𖿰᯦़゙b);
+Test_N(qa゙्᯲ְb, qa゙्᯲ְb, qa゙्᯲ְb, qa゙्᯲ְb, qa゙्᯲ְb);
+Test_N(qa゙᯲्ְb, qa゙᯲्ְb, qa゙᯲्ְb, qa゙᯲्ְb, qa゙᯲्ְb);
+Test_N(qa゙्᯳ְb, qa゙्᯳ְb, qa゙्᯳ְb, qa゙्᯳ְb, qa゙्᯳ְb);
+Test_N(qa゙᯳्ְb, qa゙᯳्ְb, qa゙᯳्ְb, qa゙᯳्ְb, qa゙᯳्ְb);
+Test_N(qa𖿰़᰷゙b, qa𖿰़᰷゙b, qa𖿰़᰷゙b, qa𖿰़᰷゙b, qa𖿰़᰷゙b);
+Test_N(qa𖿰᰷़゙b, qa𖿰᰷़゙b, qa𖿰᰷़゙b, qa𖿰᰷़゙b, qa𖿰᰷़゙b);
+Test_N(qà֮᳐̕b, qà֮᳐̕b, qà֮᳐̕b, qà֮᳐̕b, qà֮᳐̕b);
+Test_N(qa֮᳐̀̕b, qa֮᳐̀̕b, qa֮᳐̀̕b, qa֮᳐̀̕b, qa֮᳐̀̕b);
+Test_N(qà֮᳑̕b, qà֮᳑̕b, qà֮᳑̕b, qà֮᳑̕b, qà֮᳑̕b);
+Test_N(qa֮᳑̀̕b, qa֮᳑̀̕b, qa֮᳑̀̕b, qa֮᳑̀̕b, qa֮᳑̀̕b);
+Test_N(qà֮᳒̕b, qà֮᳒̕b, qà֮᳒̕b, qà֮᳒̕b, qà֮᳒̕b);
+Test_N(qa֮᳒̀̕b, qa֮᳒̀̕b, qa֮᳒̀̕b, qa֮᳒̀̕b, qa֮᳒̀̕b);
+Test_N(qa̴᳔𖿰b, qa̴᳔𖿰b, qa̴᳔𖿰b, qa̴᳔𖿰b, qa̴᳔𖿰b);
+Test_N(qa᳔̴𖿰b, qa᳔̴𖿰b, qa᳔̴𖿰b, qa᳔̴𖿰b, qa᳔̴𖿰b);
+Test_N(qa᷺̖᳕֚b, qa᷺̖᳕֚b, qa᷺̖᳕֚b, qa᷺̖᳕֚b, qa᷺̖᳕֚b);
+Test_N(qa᷺᳕̖֚b, qa᷺᳕̖֚b, qa᷺᳕̖֚b, qa᷺᳕̖֚b, qa᷺᳕̖֚b);
+Test_N(qa᷺̖᳖֚b, qa᷺̖᳖֚b, qa᷺̖᳖֚b, qa᷺̖᳖֚b, qa᷺̖᳖֚b);
+Test_N(qa᷺᳖̖֚b, qa᷺᳖̖֚b, qa᷺᳖̖֚b, qa᷺᳖̖֚b, qa᷺᳖̖֚b);
+Test_N(qa᷺̖᳗֚b, qa᷺̖᳗֚b, qa᷺̖᳗֚b, qa᷺̖᳗֚b, qa᷺̖᳗֚b);
+Test_N(qa᷺᳗̖֚b, qa᷺᳗̖֚b, qa᷺᳗̖֚b, qa᷺᳗̖֚b, qa᷺᳗̖֚b);
+Test_N(qa᷺̖᳘֚b, qa᷺̖᳘֚b, qa᷺̖᳘֚b, qa᷺̖᳘֚b, qa᷺̖᳘֚b);
+Test_N(qa᷺᳘̖֚b, qa᷺᳘̖֚b, qa᷺᳘̖֚b, qa᷺᳘̖֚b, qa᷺᳘̖֚b);
+Test_N(qa᷺̖᳙֚b, qa᷺̖᳙֚b, qa᷺̖᳙֚b, qa᷺̖᳙֚b, qa᷺̖᳙֚b);
+Test_N(qa᷺᳙̖֚b, qa᷺᳙̖֚b, qa᷺᳙̖֚b, qa᷺᳙̖֚b, qa᷺᳙̖֚b);
+Test_N(qà֮᳚̕b, qà֮᳚̕b, qà֮᳚̕b, qà֮᳚̕b, qà֮᳚̕b);
+Test_N(qa֮᳚̀̕b, qa֮᳚̀̕b, qa֮᳚̀̕b, qa֮᳚̀̕b, qa֮᳚̀̕b);
+Test_N(qà֮᳛̕b, qà֮᳛̕b, qà֮᳛̕b, qà֮᳛̕b, qà֮᳛̕b);
+Test_N(qa֮᳛̀̕b, qa֮᳛̀̕b, qa֮᳛̀̕b, qa֮᳛̀̕b, qa֮᳛̀̕b);
+Test_N(qa᷺̖᳜֚b, qa᷺̖᳜֚b, qa᷺̖᳜֚b, qa᷺̖᳜֚b, qa᷺̖᳜֚b);
+Test_N(qa᷺᳜̖֚b, qa᷺᳜̖֚b, qa᷺᳜̖֚b, qa᷺᳜̖֚b, qa᷺᳜̖֚b);
+Test_N(qa᷺̖᳝֚b, qa᷺̖᳝֚b, qa᷺̖᳝֚b, qa᷺̖᳝֚b, qa᷺̖᳝֚b);
+Test_N(qa᷺᳝̖֚b, qa᷺᳝̖֚b, qa᷺᳝̖֚b, qa᷺᳝̖֚b, qa᷺᳝̖֚b);
+Test_N(qa᷺̖᳞֚b, qa᷺̖᳞֚b, qa᷺̖᳞֚b, qa᷺̖᳞֚b, qa᷺̖᳞֚b);
+Test_N(qa᷺᳞̖֚b, qa᷺᳞̖֚b, qa᷺᳞̖֚b, qa᷺᳞̖֚b, qa᷺᳞̖֚b);
+Test_N(qa᷺̖᳟֚b, qa᷺̖᳟֚b, qa᷺̖᳟֚b, qa᷺̖᳟֚b, qa᷺̖᳟֚b);
+Test_N(qa᷺᳟̖֚b, qa᷺᳟̖֚b, qa᷺᳟̖֚b, qa᷺᳟̖֚b, qa᷺᳟̖֚b);
+Test_N(qà֮᳠̕b, qà֮᳠̕b, qà֮᳠̕b, qà֮᳠̕b, qà֮᳠̕b);
+Test_N(qa֮᳠̀̕b, qa֮᳠̀̕b, qa֮᳠̀̕b, qa֮᳠̀̕b, qa֮᳠̀̕b);
+Test_N(qa̴᳢𖿰b, qa̴᳢𖿰b, qa̴᳢𖿰b, qa̴᳢𖿰b, qa̴᳢𖿰b);
+Test_N(qa᳢̴𖿰b, qa᳢̴𖿰b, qa᳢̴𖿰b, qa᳢̴𖿰b, qa᳢̴𖿰b);
+Test_N(qa̴᳣𖿰b, qa̴᳣𖿰b, qa̴᳣𖿰b, qa̴᳣𖿰b, qa̴᳣𖿰b);
+Test_N(qa᳣̴𖿰b, qa᳣̴𖿰b, qa᳣̴𖿰b, qa᳣̴𖿰b, qa᳣̴𖿰b);
+Test_N(qa̴᳤𖿰b, qa̴᳤𖿰b, qa̴᳤𖿰b, qa̴᳤𖿰b, qa̴᳤𖿰b);
+Test_N(qa᳤̴𖿰b, qa᳤̴𖿰b, qa᳤̴𖿰b, qa᳤̴𖿰b, qa᳤̴𖿰b);
+Test_N(qa̴᳥𖿰b, qa̴᳥𖿰b, qa̴᳥𖿰b, qa̴᳥𖿰b, qa̴᳥𖿰b);
+Test_N(qa᳥̴𖿰b, qa᳥̴𖿰b, qa᳥̴𖿰b, qa᳥̴𖿰b, qa᳥̴𖿰b);
+Test_N(qa̴᳦𖿰b, qa̴᳦𖿰b, qa̴᳦𖿰b, qa̴᳦𖿰b, qa̴᳦𖿰b);
+Test_N(qa᳦̴𖿰b, qa᳦̴𖿰b, qa᳦̴𖿰b, qa᳦̴𖿰b, qa᳦̴𖿰b);
+Test_N(qa̴᳧𖿰b, qa̴᳧𖿰b, qa̴᳧𖿰b, qa̴᳧𖿰b, qa̴᳧𖿰b);
+Test_N(qa᳧̴𖿰b, qa᳧̴𖿰b, qa᳧̴𖿰b, qa᳧̴𖿰b, qa᳧̴𖿰b);
+Test_N(qa̴᳨𖿰b, qa̴᳨𖿰b, qa̴᳨𖿰b, qa̴᳨𖿰b, qa̴᳨𖿰b);
+Test_N(qa᳨̴𖿰b, qa᳨̴𖿰b, qa᳨̴𖿰b, qa᳨̴𖿰b, qa᳨̴𖿰b);
+Test_N(qa᷺̖᳭֚b, qa᷺̖᳭֚b, qa᷺̖᳭֚b, qa᷺̖᳭֚b, qa᷺̖᳭֚b);
+Test_N(qa᷺᳭̖֚b, qa᷺᳭̖֚b, qa᷺᳭̖֚b, qa᷺᳭̖֚b, qa᷺᳭̖֚b);
+Test_N(qà֮᳴̕b, qà֮᳴̕b, qà֮᳴̕b, qà֮᳴̕b, qà֮᳴̕b);
+Test_N(qa֮᳴̀̕b, qa֮᳴̀̕b, qa֮᳴̀̕b, qa֮᳴̀̕b, qa֮᳴̀̕b);
+Test_N(qà֮᳸̕b, qà֮᳸̕b, qà֮᳸̕b, qà֮᳸̕b, qà֮᳸̕b);
+Test_N(qa֮᳸̀̕b, qa֮᳸̀̕b, qa֮᳸̀̕b, qa֮᳸̀̕b, qa֮᳸̀̕b);
+Test_N(qà֮᳹̕b, qà֮᳹̕b, qà֮᳹̕b, qà֮᳹̕b, qà֮᳹̕b);
+Test_N(qa֮᳹̀̕b, qa֮᳹̀̕b, qa֮᳹̀̕b, qa֮᳹̀̕b, qa֮᳹̀̕b);
+Test_N(qà֮᷀̕b, qà֮᷀̕b, qà֮᷀̕b, qà֮᷀̕b, qà֮᷀̕b);
+Test_N(qa֮᷀̀̕b, qa֮᷀̀̕b, qa֮᷀̀̕b, qa֮᷀̀̕b, qa֮᷀̀̕b);
+Test_N(qà֮᷁̕b, qà֮᷁̕b, qà֮᷁̕b, qà֮᷁̕b, qà֮᷁̕b);
+Test_N(qa֮᷁̀̕b, qa֮᷁̀̕b, qa֮᷁̀̕b, qa֮᷁̀̕b, qa֮᷁̀̕b);
+Test_N(qa᷺̖᷂֚b, qa᷺̖᷂֚b, qa᷺̖᷂֚b, qa᷺̖᷂֚b, qa᷺̖᷂֚b);
+Test_N(qa᷺᷂̖֚b, qa᷺᷂̖֚b, qa᷺᷂̖֚b, qa᷺᷂̖֚b, qa᷺᷂̖֚b);
+Test_N(qà֮᷃̕b, qà֮᷃̕b, qà֮᷃̕b, qà֮᷃̕b, qà֮᷃̕b);
+Test_N(qa֮᷃̀̕b, qa֮᷃̀̕b, qa֮᷃̀̕b, qa֮᷃̀̕b, qa֮᷃̀̕b);
+Test_N(qà֮᷄̕b, qà֮᷄̕b, qà֮᷄̕b, qà֮᷄̕b, qà֮᷄̕b);
+Test_N(qa֮᷄̀̕b, qa֮᷄̀̕b, qa֮᷄̀̕b, qa֮᷄̀̕b, qa֮᷄̀̕b);
+Test_N(qà֮᷅̕b, qà֮᷅̕b, qà֮᷅̕b, qà֮᷅̕b, qà֮᷅̕b);
+Test_N(qa֮᷅̀̕b, qa֮᷅̀̕b, qa֮᷅̀̕b, qa֮᷅̀̕b, qa֮᷅̀̕b);
+Test_N(qà֮᷆̕b, qà֮᷆̕b, qà֮᷆̕b, qà֮᷆̕b, qà֮᷆̕b);
+Test_N(qa֮᷆̀̕b, qa֮᷆̀̕b, qa֮᷆̀̕b, qa֮᷆̀̕b, qa֮᷆̀̕b);
+Test_N(qà֮᷇̕b, qà֮᷇̕b, qà֮᷇̕b, qà֮᷇̕b, qà֮᷇̕b);
+Test_N(qa֮᷇̀̕b, qa֮᷇̀̕b, qa֮᷇̀̕b, qa֮᷇̀̕b, qa֮᷇̀̕b);
+Test_N(qà֮᷈̕b, qà֮᷈̕b, qà֮᷈̕b, qà֮᷈̕b, qà֮᷈̕b);
+Test_N(qa֮᷈̀̕b, qa֮᷈̀̕b, qa֮᷈̀̕b, qa֮᷈̀̕b, qa֮᷈̀̕b);
+Test_N(qà֮᷉̕b, qà֮᷉̕b, qà֮᷉̕b, qà֮᷉̕b, qà֮᷉̕b);
+Test_N(qa֮᷉̀̕b, qa֮᷉̀̕b, qa֮᷉̀̕b, qa֮᷉̀̕b, qa֮᷉̀̕b);
+Test_N(qa᷺̖᷊֚b, qa᷺̖᷊֚b, qa᷺̖᷊֚b, qa᷺̖᷊֚b, qa᷺̖᷊֚b);
+Test_N(qa᷺᷊̖֚b, qa᷺᷊̖֚b, qa᷺᷊̖֚b, qa᷺᷊̖֚b, qa᷺᷊̖֚b);
+Test_N(qà֮᷋̕b, qà֮᷋̕b, qà֮᷋̕b, qà֮᷋̕b, qà֮᷋̕b);
+Test_N(qa֮᷋̀̕b, qa֮᷋̀̕b, qa֮᷋̀̕b, qa֮᷋̀̕b, qa֮᷋̀̕b);
+Test_N(qà֮᷌̕b, qà֮᷌̕b, qà֮᷌̕b, qà֮᷌̕b, qà֮᷌̕b);
+Test_N(qa֮᷌̀̕b, qa֮᷌̀̕b, qa֮᷌̀̕b, qa֮᷌̀̕b, qa֮᷌̀̕b);
+Test_N(qa͜͝᷍ͅb, qa͜͝᷍ͅb, qa͜͝᷍ͅb, qa͜͝᷍ͅb, qa͜͝᷍ͅb);
+Test_N(qa͜᷍͝ͅb, qa͜᷍͝ͅb, qa͜᷍͝ͅb, qa͜᷍͝ͅb, qa͜᷍͝ͅb);
+Test_N(qa̡᷎᷎̛b, qa̡᷎᷎̛b, qa̡᷎᷎̛b, qa̡᷎᷎̛b, qa̡᷎᷎̛b);
+Test_N(qa̡᷎᷎̛b, qa̡᷎᷎̛b, qa̡᷎᷎̛b, qa̡᷎᷎̛b, qa̡᷎᷎̛b);
+Test_N(qa᷺̖᷏֚b, qa᷺̖᷏֚b, qa᷺̖᷏֚b, qa᷺̖᷏֚b, qa᷺̖᷏֚b);
+Test_N(qa᷺᷏̖֚b, qa᷺᷏̖֚b, qa᷺᷏̖֚b, qa᷺᷏̖֚b, qa᷺᷏̖֚b);
+Test_N(qaུ̡᷐᷎b, qaུ̡᷐᷎b, qaུ̡᷐᷎b, qaུ̡᷐᷎b, qaུ̡᷐᷎b);
+Test_N(qaུ᷐̡᷎b, qaུ᷐̡᷎b, qaུ᷐̡᷎b, qaུ᷐̡᷎b, qaུ᷐̡᷎b);
+Test_N(qà֮᷑̕b, qà֮᷑̕b, qà֮᷑̕b, qà֮᷑̕b, qà֮᷑̕b);
+Test_N(qa֮᷑̀̕b, qa֮᷑̀̕b, qa֮᷑̀̕b, qa֮᷑̀̕b, qa֮᷑̀̕b);
+Test_N(qà֮᷒̕b, qà֮᷒̕b, qà֮᷒̕b, qà֮᷒̕b, qà֮᷒̕b);
+Test_N(qa֮᷒̀̕b, qa֮᷒̀̕b, qa֮᷒̀̕b, qa֮᷒̀̕b, qa֮᷒̀̕b);
+Test_N(qà֮ᷓ̕b, qà֮ᷓ̕b, qà֮ᷓ̕b, qà֮ᷓ̕b, qà֮ᷓ̕b);
+Test_N(qa֮ᷓ̀̕b, qa֮ᷓ̀̕b, qa֮ᷓ̀̕b, qa֮ᷓ̀̕b, qa֮ᷓ̀̕b);
+Test_N(qà֮ᷔ̕b, qà֮ᷔ̕b, qà֮ᷔ̕b, qà֮ᷔ̕b, qà֮ᷔ̕b);
+Test_N(qa֮ᷔ̀̕b, qa֮ᷔ̀̕b, qa֮ᷔ̀̕b, qa֮ᷔ̀̕b, qa֮ᷔ̀̕b);
+Test_N(qà֮ᷕ̕b, qà֮ᷕ̕b, qà֮ᷕ̕b, qà֮ᷕ̕b, qà֮ᷕ̕b);
+Test_N(qa֮ᷕ̀̕b, qa֮ᷕ̀̕b, qa֮ᷕ̀̕b, qa֮ᷕ̀̕b, qa֮ᷕ̀̕b);
+Test_N(qà֮ᷖ̕b, qà֮ᷖ̕b, qà֮ᷖ̕b, qà֮ᷖ̕b, qà֮ᷖ̕b);
+Test_N(qa֮ᷖ̀̕b, qa֮ᷖ̀̕b, qa֮ᷖ̀̕b, qa֮ᷖ̀̕b, qa֮ᷖ̀̕b);
+Test_N(qà֮ᷗ̕b, qà֮ᷗ̕b, qà֮ᷗ̕b, qà֮ᷗ̕b, qà֮ᷗ̕b);
+Test_N(qa֮ᷗ̀̕b, qa֮ᷗ̀̕b, qa֮ᷗ̀̕b, qa֮ᷗ̀̕b, qa֮ᷗ̀̕b);
+Test_N(qà֮ᷘ̕b, qà֮ᷘ̕b, qà֮ᷘ̕b, qà֮ᷘ̕b, qà֮ᷘ̕b);
+Test_N(qa֮ᷘ̀̕b, qa֮ᷘ̀̕b, qa֮ᷘ̀̕b, qa֮ᷘ̀̕b, qa֮ᷘ̀̕b);
+Test_N(qà֮ᷙ̕b, qà֮ᷙ̕b, qà֮ᷙ̕b, qà֮ᷙ̕b, qà֮ᷙ̕b);
+Test_N(qa֮ᷙ̀̕b, qa֮ᷙ̀̕b, qa֮ᷙ̀̕b, qa֮ᷙ̀̕b, qa֮ᷙ̀̕b);
+Test_N(qà֮ᷚ̕b, qà֮ᷚ̕b, qà֮ᷚ̕b, qà֮ᷚ̕b, qà֮ᷚ̕b);
+Test_N(qa֮ᷚ̀̕b, qa֮ᷚ̀̕b, qa֮ᷚ̀̕b, qa֮ᷚ̀̕b, qa֮ᷚ̀̕b);
+Test_N(qà֮ᷛ̕b, qà֮ᷛ̕b, qà֮ᷛ̕b, qà֮ᷛ̕b, qà֮ᷛ̕b);
+Test_N(qa֮ᷛ̀̕b, qa֮ᷛ̀̕b, qa֮ᷛ̀̕b, qa֮ᷛ̀̕b, qa֮ᷛ̀̕b);
+Test_N(qà֮ᷜ̕b, qà֮ᷜ̕b, qà֮ᷜ̕b, qà֮ᷜ̕b, qà֮ᷜ̕b);
+Test_N(qa֮ᷜ̀̕b, qa֮ᷜ̀̕b, qa֮ᷜ̀̕b, qa֮ᷜ̀̕b, qa֮ᷜ̀̕b);
+Test_N(qà֮ᷝ̕b, qà֮ᷝ̕b, qà֮ᷝ̕b, qà֮ᷝ̕b, qà֮ᷝ̕b);
+Test_N(qa֮ᷝ̀̕b, qa֮ᷝ̀̕b, qa֮ᷝ̀̕b, qa֮ᷝ̀̕b, qa֮ᷝ̀̕b);
+Test_N(qà֮ᷞ̕b, qà֮ᷞ̕b, qà֮ᷞ̕b, qà֮ᷞ̕b, qà֮ᷞ̕b);
+Test_N(qa֮ᷞ̀̕b, qa֮ᷞ̀̕b, qa֮ᷞ̀̕b, qa֮ᷞ̀̕b, qa֮ᷞ̀̕b);
+Test_N(qà֮ᷟ̕b, qà֮ᷟ̕b, qà֮ᷟ̕b, qà֮ᷟ̕b, qà֮ᷟ̕b);
+Test_N(qa֮ᷟ̀̕b, qa֮ᷟ̀̕b, qa֮ᷟ̀̕b, qa֮ᷟ̀̕b, qa֮ᷟ̀̕b);
+Test_N(qà֮ᷠ̕b, qà֮ᷠ̕b, qà֮ᷠ̕b, qà֮ᷠ̕b, qà֮ᷠ̕b);
+Test_N(qa֮ᷠ̀̕b, qa֮ᷠ̀̕b, qa֮ᷠ̀̕b, qa֮ᷠ̀̕b, qa֮ᷠ̀̕b);
+Test_N(qà֮ᷡ̕b, qà֮ᷡ̕b, qà֮ᷡ̕b, qà֮ᷡ̕b, qà֮ᷡ̕b);
+Test_N(qa֮ᷡ̀̕b, qa֮ᷡ̀̕b, qa֮ᷡ̀̕b, qa֮ᷡ̀̕b, qa֮ᷡ̀̕b);
+Test_N(qà֮ᷢ̕b, qà֮ᷢ̕b, qà֮ᷢ̕b, qà֮ᷢ̕b, qà֮ᷢ̕b);
+Test_N(qa֮ᷢ̀̕b, qa֮ᷢ̀̕b, qa֮ᷢ̀̕b, qa֮ᷢ̀̕b, qa֮ᷢ̀̕b);
+Test_N(qà֮ᷣ̕b, qà֮ᷣ̕b, qà֮ᷣ̕b, qà֮ᷣ̕b, qà֮ᷣ̕b);
+Test_N(qa֮ᷣ̀̕b, qa֮ᷣ̀̕b, qa֮ᷣ̀̕b, qa֮ᷣ̀̕b, qa֮ᷣ̀̕b);
+Test_N(qà֮ᷤ̕b, qà֮ᷤ̕b, qà֮ᷤ̕b, qà֮ᷤ̕b, qà֮ᷤ̕b);
+Test_N(qa֮ᷤ̀̕b, qa֮ᷤ̀̕b, qa֮ᷤ̀̕b, qa֮ᷤ̀̕b, qa֮ᷤ̀̕b);
+Test_N(qà֮ᷥ̕b, qà֮ᷥ̕b, qà֮ᷥ̕b, qà֮ᷥ̕b, qà֮ᷥ̕b);
+Test_N(qa֮ᷥ̀̕b, qa֮ᷥ̀̕b, qa֮ᷥ̀̕b, qa֮ᷥ̀̕b, qa֮ᷥ̀̕b);
+Test_N(qà֮ᷦ̕b, qà֮ᷦ̕b, qà֮ᷦ̕b, qà֮ᷦ̕b, qà֮ᷦ̕b);
+Test_N(qa֮ᷦ̀̕b, qa֮ᷦ̀̕b, qa֮ᷦ̀̕b, qa֮ᷦ̀̕b, qa֮ᷦ̀̕b);
+Test_N(qà֮ᷧ̕b, qà֮ᷧ̕b, qà֮ᷧ̕b, qà֮ᷧ̕b, qà֮ᷧ̕b);
+Test_N(qa֮ᷧ̀̕b, qa֮ᷧ̀̕b, qa֮ᷧ̀̕b, qa֮ᷧ̀̕b, qa֮ᷧ̀̕b);
+Test_N(qà֮ᷨ̕b, qà֮ᷨ̕b, qà֮ᷨ̕b, qà֮ᷨ̕b, qà֮ᷨ̕b);
+Test_N(qa֮ᷨ̀̕b, qa֮ᷨ̀̕b, qa֮ᷨ̀̕b, qa֮ᷨ̀̕b, qa֮ᷨ̀̕b);
+Test_N(qà֮ᷩ̕b, qà֮ᷩ̕b, qà֮ᷩ̕b, qà֮ᷩ̕b, qà֮ᷩ̕b);
+Test_N(qa֮ᷩ̀̕b, qa֮ᷩ̀̕b, qa֮ᷩ̀̕b, qa֮ᷩ̀̕b, qa֮ᷩ̀̕b);
+Test_N(qà֮ᷪ̕b, qà֮ᷪ̕b, qà֮ᷪ̕b, qà֮ᷪ̕b, qà֮ᷪ̕b);
+Test_N(qa֮ᷪ̀̕b, qa֮ᷪ̀̕b, qa֮ᷪ̀̕b, qa֮ᷪ̀̕b, qa֮ᷪ̀̕b);
+Test_N(qà֮ᷫ̕b, qà֮ᷫ̕b, qà֮ᷫ̕b, qà֮ᷫ̕b, qà֮ᷫ̕b);
+Test_N(qa֮ᷫ̀̕b, qa֮ᷫ̀̕b, qa֮ᷫ̀̕b, qa֮ᷫ̀̕b, qa֮ᷫ̀̕b);
+Test_N(qà֮ᷬ̕b, qà֮ᷬ̕b, qà֮ᷬ̕b, qà֮ᷬ̕b, qà֮ᷬ̕b);
+Test_N(qa֮ᷬ̀̕b, qa֮ᷬ̀̕b, qa֮ᷬ̀̕b, qa֮ᷬ̀̕b, qa֮ᷬ̀̕b);
+Test_N(qà֮ᷭ̕b, qà֮ᷭ̕b, qà֮ᷭ̕b, qà֮ᷭ̕b, qà֮ᷭ̕b);
+Test_N(qa֮ᷭ̀̕b, qa֮ᷭ̀̕b, qa֮ᷭ̀̕b, qa֮ᷭ̀̕b, qa֮ᷭ̀̕b);
+Test_N(qà֮ᷮ̕b, qà֮ᷮ̕b, qà֮ᷮ̕b, qà֮ᷮ̕b, qà֮ᷮ̕b);
+Test_N(qa֮ᷮ̀̕b, qa֮ᷮ̀̕b, qa֮ᷮ̀̕b, qa֮ᷮ̀̕b, qa֮ᷮ̀̕b);
+Test_N(qà֮ᷯ̕b, qà֮ᷯ̕b, qà֮ᷯ̕b, qà֮ᷯ̕b, qà֮ᷯ̕b);
+Test_N(qa֮ᷯ̀̕b, qa֮ᷯ̀̕b, qa֮ᷯ̀̕b, qa֮ᷯ̀̕b, qa֮ᷯ̀̕b);
+Test_N(qà֮ᷰ̕b, qà֮ᷰ̕b, qà֮ᷰ̕b, qà֮ᷰ̕b, qà֮ᷰ̕b);
+Test_N(qa֮ᷰ̀̕b, qa֮ᷰ̀̕b, qa֮ᷰ̀̕b, qa֮ᷰ̀̕b, qa֮ᷰ̀̕b);
+Test_N(qà֮ᷱ̕b, qà֮ᷱ̕b, qà֮ᷱ̕b, qà֮ᷱ̕b, qà֮ᷱ̕b);
+Test_N(qa֮ᷱ̀̕b, qa֮ᷱ̀̕b, qa֮ᷱ̀̕b, qa֮ᷱ̀̕b, qa֮ᷱ̀̕b);
+Test_N(qà֮ᷲ̕b, qà֮ᷲ̕b, qà֮ᷲ̕b, qà֮ᷲ̕b, qà֮ᷲ̕b);
+Test_N(qa֮ᷲ̀̕b, qa֮ᷲ̀̕b, qa֮ᷲ̀̕b, qa֮ᷲ̀̕b, qa֮ᷲ̀̕b);
+Test_N(qà֮ᷳ̕b, qà֮ᷳ̕b, qà֮ᷳ̕b, qà֮ᷳ̕b, qà֮ᷳ̕b);
+Test_N(qa֮ᷳ̀̕b, qa֮ᷳ̀̕b, qa֮ᷳ̀̕b, qa֮ᷳ̀̕b, qa֮ᷳ̀̕b);
+Test_N(qà֮ᷴ̕b, qà֮ᷴ̕b, qà֮ᷴ̕b, qà֮ᷴ̕b, qà֮ᷴ̕b);
+Test_N(qa֮ᷴ̀̕b, qa֮ᷴ̀̕b, qa֮ᷴ̀̕b, qa֮ᷴ̀̕b, qa֮ᷴ̀̕b);
+Test_N(qà֮᷵̕b, qà֮᷵̕b, qà֮᷵̕b, qà֮᷵̕b, qà֮᷵̕b);
+Test_N(qa֮᷵̀̕b, qa֮᷵̀̕b, qa֮᷵̀̕b, qa֮᷵̀̕b, qa֮᷵̀̕b);
+Test_N(qà̕᷶͜b, qà̕᷶͜b, qà̕᷶͜b, qà̕᷶͜b, qà̕᷶͜b);
+Test_N(qà᷶̕͜b, qà᷶̕͜b, qà᷶̕͜b, qà᷶̕͜b, qà᷶̕͜b);
+Test_N(qà𝅭֮᷷b, qà𝅭֮᷷b, qà𝅭֮᷷b, qà𝅭֮᷷b, qà𝅭֮᷷b);
+Test_N(qà𝅭᷷֮b, qà𝅭᷷֮b, qà𝅭᷷֮b, qà𝅭᷷֮b, qà𝅭᷷֮b);
+Test_N(qà𝅭֮᷸b, qà𝅭֮᷸b, qà𝅭֮᷸b, qà𝅭֮᷸b, qà𝅭֮᷸b);
+Test_N(qà𝅭᷸֮b, qà𝅭᷸֮b, qà𝅭᷸֮b, qà𝅭᷸֮b, qà𝅭᷸֮b);
+Test_N(qa᷺̖᷹֚b, qa᷺̖᷹֚b, qa᷺̖᷹֚b, qa᷺̖᷹֚b, qa᷺̖᷹֚b);
+Test_N(qa᷺᷹̖֚b, qa᷺᷹̖֚b, qa᷺᷹̖֚b, qa᷺᷹̖֚b, qa᷺᷹̖֚b);
+Test_N(qa̛᷺᷺̖b, qa̛᷺᷺̖b, qa̛᷺᷺̖b, qa̛᷺᷺̖b, qa̛᷺᷺̖b);
+Test_N(qa̛᷺᷺̖b, qa̛᷺᷺̖b, qa̛᷺᷺̖b, qa̛᷺᷺̖b, qa̛᷺᷺̖b);
+Test_N(qà֮᷻̕b, qà֮᷻̕b, qà֮᷻̕b, qà֮᷻̕b, qà֮᷻̕b);
+Test_N(qa֮᷻̀̕b, qa֮᷻̀̕b, qa֮᷻̀̕b, qa֮᷻̀̕b, qa֮᷻̀̕b);
+Test_N(qa̕͜᷼͝b, qa̕͜᷼͝b, qa̕͜᷼͝b, qa̕͜᷼͝b, qa̕͜᷼͝b);
+Test_N(qa̕᷼͜͝b, qa̕᷼͜͝b, qa̕᷼͜͝b, qa̕᷼͜͝b, qa̕᷼͜͝b);
+Test_N(qa᷺̖᷽֚b, qa᷺̖᷽֚b, qa᷺̖᷽֚b, qa᷺̖᷽֚b, qa᷺̖᷽֚b);
+Test_N(qa᷺᷽̖֚b, qa᷺᷽̖֚b, qa᷺᷽̖֚b, qa᷺᷽̖֚b, qa᷺᷽̖֚b);
+Test_N(qà֮᷾̕b, qà֮᷾̕b, qà֮᷾̕b, qà֮᷾̕b, qà֮᷾̕b);
+Test_N(qa֮᷾̀̕b, qa֮᷾̀̕b, qa֮᷾̀̕b, qa֮᷾̀̕b, qa֮᷾̀̕b);
+Test_N(qa᷺̖᷿֚b, qa᷺̖᷿֚b, qa᷺̖᷿֚b, qa᷺̖᷿֚b, qa᷺̖᷿֚b);
+Test_N(qa᷺᷿̖֚b, qa᷺᷿̖֚b, qa᷺᷿̖֚b, qa᷺᷿̖֚b, qa᷺᷿̖֚b);
+Test_N(qà֮⃐̕b, qà֮⃐̕b, qà֮⃐̕b, qà֮⃐̕b, qà֮⃐̕b);
+Test_N(qa֮⃐̀̕b, qa֮⃐̀̕b, qa֮⃐̀̕b, qa֮⃐̀̕b, qa֮⃐̀̕b);
+Test_N(qà֮⃑̕b, qà֮⃑̕b, qà֮⃑̕b, qà֮⃑̕b, qà֮⃑̕b);
+Test_N(qa֮⃑̀̕b, qa֮⃑̀̕b, qa֮⃑̀̕b, qa֮⃑̀̕b, qa֮⃑̀̕b);
+Test_N(qa̴⃒𖿰b, qa̴⃒𖿰b, qa̴⃒𖿰b, qa̴⃒𖿰b, qa̴⃒𖿰b);
+Test_N(qa⃒̴𖿰b, qa⃒̴𖿰b, qa⃒̴𖿰b, qa⃒̴𖿰b, qa⃒̴𖿰b);
+Test_N(qa̴⃓𖿰b, qa̴⃓𖿰b, qa̴⃓𖿰b, qa̴⃓𖿰b, qa̴⃓𖿰b);
+Test_N(qa⃓̴𖿰b, qa⃓̴𖿰b, qa⃓̴𖿰b, qa⃓̴𖿰b, qa⃓̴𖿰b);
+Test_N(qà֮⃔̕b, qà֮⃔̕b, qà֮⃔̕b, qà֮⃔̕b, qà֮⃔̕b);
+Test_N(qa֮⃔̀̕b, qa֮⃔̀̕b, qa֮⃔̀̕b, qa֮⃔̀̕b, qa֮⃔̀̕b);
+Test_N(qà֮⃕̕b, qà֮⃕̕b, qà֮⃕̕b, qà֮⃕̕b, qà֮⃕̕b);
+Test_N(qa֮⃕̀̕b, qa֮⃕̀̕b, qa֮⃕̀̕b, qa֮⃕̀̕b, qa֮⃕̀̕b);
+Test_N(qà֮⃖̕b, qà֮⃖̕b, qà֮⃖̕b, qà֮⃖̕b, qà֮⃖̕b);
+Test_N(qa֮⃖̀̕b, qa֮⃖̀̕b, qa֮⃖̀̕b, qa֮⃖̀̕b, qa֮⃖̀̕b);
+Test_N(qà֮⃗̕b, qà֮⃗̕b, qà֮⃗̕b, qà֮⃗̕b, qà֮⃗̕b);
+Test_N(qa֮⃗̀̕b, qa֮⃗̀̕b, qa֮⃗̀̕b, qa֮⃗̀̕b, qa֮⃗̀̕b);
+Test_N(qa̴⃘𖿰b, qa̴⃘𖿰b, qa̴⃘𖿰b, qa̴⃘𖿰b, qa̴⃘𖿰b);
+Test_N(qa⃘̴𖿰b, qa⃘̴𖿰b, qa⃘̴𖿰b, qa⃘̴𖿰b, qa⃘̴𖿰b);
+Test_N(qa̴⃙𖿰b, qa̴⃙𖿰b, qa̴⃙𖿰b, qa̴⃙𖿰b, qa̴⃙𖿰b);
+Test_N(qa⃙̴𖿰b, qa⃙̴𖿰b, qa⃙̴𖿰b, qa⃙̴𖿰b, qa⃙̴𖿰b);
+Test_N(qa̴⃚𖿰b, qa̴⃚𖿰b, qa̴⃚𖿰b, qa̴⃚𖿰b, qa̴⃚𖿰b);
+Test_N(qa⃚̴𖿰b, qa⃚̴𖿰b, qa⃚̴𖿰b, qa⃚̴𖿰b, qa⃚̴𖿰b);
+Test_N(qà֮⃛̕b, qà֮⃛̕b, qà֮⃛̕b, qà֮⃛̕b, qà֮⃛̕b);
+Test_N(qa֮⃛̀̕b, qa֮⃛̀̕b, qa֮⃛̀̕b, qa֮⃛̀̕b, qa֮⃛̀̕b);
+Test_N(qà֮⃜̕b, qà֮⃜̕b, qà֮⃜̕b, qà֮⃜̕b, qà֮⃜̕b);
+Test_N(qa֮⃜̀̕b, qa֮⃜̀̕b, qa֮⃜̀̕b, qa֮⃜̀̕b, qa֮⃜̀̕b);
+Test_N(qà֮⃡̕b, qà֮⃡̕b, qà֮⃡̕b, qà֮⃡̕b, qà֮⃡̕b);
+Test_N(qa֮⃡̀̕b, qa֮⃡̀̕b, qa֮⃡̀̕b, qa֮⃡̀̕b, qa֮⃡̀̕b);
+Test_N(qa̴⃥𖿰b, qa̴⃥𖿰b, qa̴⃥𖿰b, qa̴⃥𖿰b, qa̴⃥𖿰b);
+Test_N(qa⃥̴𖿰b, qa⃥̴𖿰b, qa⃥̴𖿰b, qa⃥̴𖿰b, qa⃥̴𖿰b);
+Test_N(qa̴⃦𖿰b, qa̴⃦𖿰b, qa̴⃦𖿰b, qa̴⃦𖿰b, qa̴⃦𖿰b);
+Test_N(qa⃦̴𖿰b, qa⃦̴𖿰b, qa⃦̴𖿰b, qa⃦̴𖿰b, qa⃦̴𖿰b);
+Test_N(qà֮⃧̕b, qà֮⃧̕b, qà֮⃧̕b, qà֮⃧̕b, qà֮⃧̕b);
+Test_N(qa֮⃧̀̕b, qa֮⃧̀̕b, qa֮⃧̀̕b, qa֮⃧̀̕b, qa֮⃧̀̕b);
+Test_N(qa᷺̖⃨֚b, qa᷺̖⃨֚b, qa᷺̖⃨֚b, qa᷺̖⃨֚b, qa᷺̖⃨֚b);
+Test_N(qa᷺⃨̖֚b, qa᷺⃨̖֚b, qa᷺⃨̖֚b, qa᷺⃨̖֚b, qa᷺⃨̖֚b);
+Test_N(qà֮⃩̕b, qà֮⃩̕b, qà֮⃩̕b, qà֮⃩̕b, qà֮⃩̕b);
+Test_N(qa֮⃩̀̕b, qa֮⃩̀̕b, qa֮⃩̀̕b, qa֮⃩̀̕b, qa֮⃩̀̕b);
+Test_N(qa̴⃪𖿰b, qa̴⃪𖿰b, qa̴⃪𖿰b, qa̴⃪𖿰b, qa̴⃪𖿰b);
+Test_N(qa⃪̴𖿰b, qa⃪̴𖿰b, qa⃪̴𖿰b, qa⃪̴𖿰b, qa⃪̴𖿰b);
+Test_N(qa̴⃫𖿰b, qa̴⃫𖿰b, qa̴⃫𖿰b, qa̴⃫𖿰b, qa̴⃫𖿰b);
+Test_N(qa⃫̴𖿰b, qa⃫̴𖿰b, qa⃫̴𖿰b, qa⃫̴𖿰b, qa⃫̴𖿰b);
+Test_N(qa᷺̖⃬֚b, qa᷺̖⃬֚b, qa᷺̖⃬֚b, qa᷺̖⃬֚b, qa᷺̖⃬֚b);
+Test_N(qa᷺⃬̖֚b, qa᷺⃬̖֚b, qa᷺⃬̖֚b, qa᷺⃬̖֚b, qa᷺⃬̖֚b);
+Test_N(qa᷺̖⃭֚b, qa᷺̖⃭֚b, qa᷺̖⃭֚b, qa᷺̖⃭֚b, qa᷺̖⃭֚b);
+Test_N(qa᷺⃭̖֚b, qa᷺⃭̖֚b, qa᷺⃭̖֚b, qa᷺⃭̖֚b, qa᷺⃭̖֚b);
+Test_N(qa᷺̖⃮֚b, qa᷺̖⃮֚b, qa᷺̖⃮֚b, qa᷺̖⃮֚b, qa᷺̖⃮֚b);
+Test_N(qa᷺⃮̖֚b, qa᷺⃮̖֚b, qa᷺⃮̖֚b, qa᷺⃮̖֚b, qa᷺⃮̖֚b);
+Test_N(qa᷺̖⃯֚b, qa᷺̖⃯֚b, qa᷺̖⃯֚b, qa᷺̖⃯֚b, qa᷺̖⃯֚b);
+Test_N(qa᷺⃯̖֚b, qa᷺⃯̖֚b, qa᷺⃯̖֚b, qa᷺⃯̖֚b, qa᷺⃯̖֚b);
+Test_N(qà֮⃰̕b, qà֮⃰̕b, qà֮⃰̕b, qà֮⃰̕b, qà֮⃰̕b);
+Test_N(qa֮⃰̀̕b, qa֮⃰̀̕b, qa֮⃰̀̕b, qa֮⃰̀̕b, qa֮⃰̀̕b);
+Test_N(qà֮⳯̕b, qà֮⳯̕b, qà֮⳯̕b, qà֮⳯̕b, qà֮⳯̕b);
+Test_N(qa֮⳯̀̕b, qa֮⳯̀̕b, qa֮⳯̀̕b, qa֮⳯̀̕b, qa֮⳯̀̕b);
+Test_N(qà֮⳰̕b, qà֮⳰̕b, qà֮⳰̕b, qà֮⳰̕b, qà֮⳰̕b);
+Test_N(qa֮⳰̀̕b, qa֮⳰̀̕b, qa֮⳰̀̕b, qa֮⳰̀̕b, qa֮⳰̀̕b);
+Test_N(qà֮⳱̕b, qà֮⳱̕b, qà֮⳱̕b, qà֮⳱̕b, qà֮⳱̕b);
+Test_N(qa֮⳱̀̕b, qa֮⳱̀̕b, qa֮⳱̀̕b, qa֮⳱̀̕b, qa֮⳱̀̕b);
+Test_N(qa゙्⵿ְb, qa゙्⵿ְb, qa゙्⵿ְb, qa゙्⵿ְb, qa゙्⵿ְb);
+Test_N(qa゙⵿्ְb, qa゙⵿्ְb, qa゙⵿्ְb, qa゙⵿्ְb, qa゙⵿्ְb);
+Test_N(qà֮ⷠ̕b, qà֮ⷠ̕b, qà֮ⷠ̕b, qà֮ⷠ̕b, qà֮ⷠ̕b);
+Test_N(qa֮ⷠ̀̕b, qa֮ⷠ̀̕b, qa֮ⷠ̀̕b, qa֮ⷠ̀̕b, qa֮ⷠ̀̕b);
+Test_N(qà֮ⷡ̕b, qà֮ⷡ̕b, qà֮ⷡ̕b, qà֮ⷡ̕b, qà֮ⷡ̕b);
+Test_N(qa֮ⷡ̀̕b, qa֮ⷡ̀̕b, qa֮ⷡ̀̕b, qa֮ⷡ̀̕b, qa֮ⷡ̀̕b);
+Test_N(qà֮ⷢ̕b, qà֮ⷢ̕b, qà֮ⷢ̕b, qà֮ⷢ̕b, qà֮ⷢ̕b);
+Test_N(qa֮ⷢ̀̕b, qa֮ⷢ̀̕b, qa֮ⷢ̀̕b, qa֮ⷢ̀̕b, qa֮ⷢ̀̕b);
+Test_N(qà֮ⷣ̕b, qà֮ⷣ̕b, qà֮ⷣ̕b, qà֮ⷣ̕b, qà֮ⷣ̕b);
+Test_N(qa֮ⷣ̀̕b, qa֮ⷣ̀̕b, qa֮ⷣ̀̕b, qa֮ⷣ̀̕b, qa֮ⷣ̀̕b);
+Test_N(qà֮ⷤ̕b, qà֮ⷤ̕b, qà֮ⷤ̕b, qà֮ⷤ̕b, qà֮ⷤ̕b);
+Test_N(qa֮ⷤ̀̕b, qa֮ⷤ̀̕b, qa֮ⷤ̀̕b, qa֮ⷤ̀̕b, qa֮ⷤ̀̕b);
+Test_N(qà֮ⷥ̕b, qà֮ⷥ̕b, qà֮ⷥ̕b, qà֮ⷥ̕b, qà֮ⷥ̕b);
+Test_N(qa֮ⷥ̀̕b, qa֮ⷥ̀̕b, qa֮ⷥ̀̕b, qa֮ⷥ̀̕b, qa֮ⷥ̀̕b);
+Test_N(qà֮ⷦ̕b, qà֮ⷦ̕b, qà֮ⷦ̕b, qà֮ⷦ̕b, qà֮ⷦ̕b);
+Test_N(qa֮ⷦ̀̕b, qa֮ⷦ̀̕b, qa֮ⷦ̀̕b, qa֮ⷦ̀̕b, qa֮ⷦ̀̕b);
+Test_N(qà֮ⷧ̕b, qà֮ⷧ̕b, qà֮ⷧ̕b, qà֮ⷧ̕b, qà֮ⷧ̕b);
+Test_N(qa֮ⷧ̀̕b, qa֮ⷧ̀̕b, qa֮ⷧ̀̕b, qa֮ⷧ̀̕b, qa֮ⷧ̀̕b);
+Test_N(qà֮ⷨ̕b, qà֮ⷨ̕b, qà֮ⷨ̕b, qà֮ⷨ̕b, qà֮ⷨ̕b);
+Test_N(qa֮ⷨ̀̕b, qa֮ⷨ̀̕b, qa֮ⷨ̀̕b, qa֮ⷨ̀̕b, qa֮ⷨ̀̕b);
+Test_N(qà֮ⷩ̕b, qà֮ⷩ̕b, qà֮ⷩ̕b, qà֮ⷩ̕b, qà֮ⷩ̕b);
+Test_N(qa֮ⷩ̀̕b, qa֮ⷩ̀̕b, qa֮ⷩ̀̕b, qa֮ⷩ̀̕b, qa֮ⷩ̀̕b);
+Test_N(qà֮ⷪ̕b, qà֮ⷪ̕b, qà֮ⷪ̕b, qà֮ⷪ̕b, qà֮ⷪ̕b);
+Test_N(qa֮ⷪ̀̕b, qa֮ⷪ̀̕b, qa֮ⷪ̀̕b, qa֮ⷪ̀̕b, qa֮ⷪ̀̕b);
+Test_N(qà֮ⷫ̕b, qà֮ⷫ̕b, qà֮ⷫ̕b, qà֮ⷫ̕b, qà֮ⷫ̕b);
+Test_N(qa֮ⷫ̀̕b, qa֮ⷫ̀̕b, qa֮ⷫ̀̕b, qa֮ⷫ̀̕b, qa֮ⷫ̀̕b);
+Test_N(qà֮ⷬ̕b, qà֮ⷬ̕b, qà֮ⷬ̕b, qà֮ⷬ̕b, qà֮ⷬ̕b);
+Test_N(qa֮ⷬ̀̕b, qa֮ⷬ̀̕b, qa֮ⷬ̀̕b, qa֮ⷬ̀̕b, qa֮ⷬ̀̕b);
+Test_N(qà֮ⷭ̕b, qà֮ⷭ̕b, qà֮ⷭ̕b, qà֮ⷭ̕b, qà֮ⷭ̕b);
+Test_N(qa֮ⷭ̀̕b, qa֮ⷭ̀̕b, qa֮ⷭ̀̕b, qa֮ⷭ̀̕b, qa֮ⷭ̀̕b);
+Test_N(qà֮ⷮ̕b, qà֮ⷮ̕b, qà֮ⷮ̕b, qà֮ⷮ̕b, qà֮ⷮ̕b);
+Test_N(qa֮ⷮ̀̕b, qa֮ⷮ̀̕b, qa֮ⷮ̀̕b, qa֮ⷮ̀̕b, qa֮ⷮ̀̕b);
+Test_N(qà֮ⷯ̕b, qà֮ⷯ̕b, qà֮ⷯ̕b, qà֮ⷯ̕b, qà֮ⷯ̕b);
+Test_N(qa֮ⷯ̀̕b, qa֮ⷯ̀̕b, qa֮ⷯ̀̕b, qa֮ⷯ̀̕b, qa֮ⷯ̀̕b);
+Test_N(qà֮ⷰ̕b, qà֮ⷰ̕b, qà֮ⷰ̕b, qà֮ⷰ̕b, qà֮ⷰ̕b);
+Test_N(qa֮ⷰ̀̕b, qa֮ⷰ̀̕b, qa֮ⷰ̀̕b, qa֮ⷰ̀̕b, qa֮ⷰ̀̕b);
+Test_N(qà֮ⷱ̕b, qà֮ⷱ̕b, qà֮ⷱ̕b, qà֮ⷱ̕b, qà֮ⷱ̕b);
+Test_N(qa֮ⷱ̀̕b, qa֮ⷱ̀̕b, qa֮ⷱ̀̕b, qa֮ⷱ̀̕b, qa֮ⷱ̀̕b);
+Test_N(qà֮ⷲ̕b, qà֮ⷲ̕b, qà֮ⷲ̕b, qà֮ⷲ̕b, qà֮ⷲ̕b);
+Test_N(qa֮ⷲ̀̕b, qa֮ⷲ̀̕b, qa֮ⷲ̀̕b, qa֮ⷲ̀̕b, qa֮ⷲ̀̕b);
+Test_N(qà֮ⷳ̕b, qà֮ⷳ̕b, qà֮ⷳ̕b, qà֮ⷳ̕b, qà֮ⷳ̕b);
+Test_N(qa֮ⷳ̀̕b, qa֮ⷳ̀̕b, qa֮ⷳ̀̕b, qa֮ⷳ̀̕b, qa֮ⷳ̀̕b);
+Test_N(qà֮ⷴ̕b, qà֮ⷴ̕b, qà֮ⷴ̕b, qà֮ⷴ̕b, qà֮ⷴ̕b);
+Test_N(qa֮ⷴ̀̕b, qa֮ⷴ̀̕b, qa֮ⷴ̀̕b, qa֮ⷴ̀̕b, qa֮ⷴ̀̕b);
+Test_N(qà֮ⷵ̕b, qà֮ⷵ̕b, qà֮ⷵ̕b, qà֮ⷵ̕b, qà֮ⷵ̕b);
+Test_N(qa֮ⷵ̀̕b, qa֮ⷵ̀̕b, qa֮ⷵ̀̕b, qa֮ⷵ̀̕b, qa֮ⷵ̀̕b);
+Test_N(qà֮ⷶ̕b, qà֮ⷶ̕b, qà֮ⷶ̕b, qà֮ⷶ̕b, qà֮ⷶ̕b);
+Test_N(qa֮ⷶ̀̕b, qa֮ⷶ̀̕b, qa֮ⷶ̀̕b, qa֮ⷶ̀̕b, qa֮ⷶ̀̕b);
+Test_N(qà֮ⷷ̕b, qà֮ⷷ̕b, qà֮ⷷ̕b, qà֮ⷷ̕b, qà֮ⷷ̕b);
+Test_N(qa֮ⷷ̀̕b, qa֮ⷷ̀̕b, qa֮ⷷ̀̕b, qa֮ⷷ̀̕b, qa֮ⷷ̀̕b);
+Test_N(qà֮ⷸ̕b, qà֮ⷸ̕b, qà֮ⷸ̕b, qà֮ⷸ̕b, qà֮ⷸ̕b);
+Test_N(qa֮ⷸ̀̕b, qa֮ⷸ̀̕b, qa֮ⷸ̀̕b, qa֮ⷸ̀̕b, qa֮ⷸ̀̕b);
+Test_N(qà֮ⷹ̕b, qà֮ⷹ̕b, qà֮ⷹ̕b, qà֮ⷹ̕b, qà֮ⷹ̕b);
+Test_N(qa֮ⷹ̀̕b, qa֮ⷹ̀̕b, qa֮ⷹ̀̕b, qa֮ⷹ̀̕b, qa֮ⷹ̀̕b);
+Test_N(qà֮ⷺ̕b, qà֮ⷺ̕b, qà֮ⷺ̕b, qà֮ⷺ̕b, qà֮ⷺ̕b);
+Test_N(qa֮ⷺ̀̕b, qa֮ⷺ̀̕b, qa֮ⷺ̀̕b, qa֮ⷺ̀̕b, qa֮ⷺ̀̕b);
+Test_N(qà֮ⷻ̕b, qà֮ⷻ̕b, qà֮ⷻ̕b, qà֮ⷻ̕b, qà֮ⷻ̕b);
+Test_N(qa֮ⷻ̀̕b, qa֮ⷻ̀̕b, qa֮ⷻ̀̕b, qa֮ⷻ̀̕b, qa֮ⷻ̀̕b);
+Test_N(qà֮ⷼ̕b, qà֮ⷼ̕b, qà֮ⷼ̕b, qà֮ⷼ̕b, qà֮ⷼ̕b);
+Test_N(qa֮ⷼ̀̕b, qa֮ⷼ̀̕b, qa֮ⷼ̀̕b, qa֮ⷼ̀̕b, qa֮ⷼ̀̕b);
+Test_N(qà֮ⷽ̕b, qà֮ⷽ̕b, qà֮ⷽ̕b, qà֮ⷽ̕b, qà֮ⷽ̕b);
+Test_N(qa֮ⷽ̀̕b, qa֮ⷽ̀̕b, qa֮ⷽ̀̕b, qa֮ⷽ̀̕b, qa֮ⷽ̀̕b);
+Test_N(qà֮ⷾ̕b, qà֮ⷾ̕b, qà֮ⷾ̕b, qà֮ⷾ̕b, qà֮ⷾ̕b);
+Test_N(qa֮ⷾ̀̕b, qa֮ⷾ̀̕b, qa֮ⷾ̀̕b, qa֮ⷾ̀̕b, qa֮ⷾ̀̕b);
+Test_N(qà֮ⷿ̕b, qà֮ⷿ̕b, qà֮ⷿ̕b, qà֮ⷿ̕b, qà֮ⷿ̕b);
+Test_N(qa֮ⷿ̀̕b, qa֮ⷿ̀̕b, qa֮ⷿ̀̕b, qa֮ⷿ̀̕b, qa֮ⷿ̀̕b);
+Test_N(qa̛᷺〪̖b, qa̛᷺〪̖b, qa̛᷺〪̖b, qa̛᷺〪̖b, qa̛᷺〪̖b);
+Test_N(qa̛〪᷺̖b, qa̛〪᷺̖b, qa̛〪᷺̖b, qa̛〪᷺̖b, qa̛〪᷺̖b);
+Test_N(qà𝅭֮〫b, qà𝅭֮〫b, qà𝅭֮〫b, qà𝅭֮〫b, qà𝅭֮〫b);
+Test_N(qà𝅭〫֮b, qà𝅭〫֮b, qà𝅭〫֮b, qà𝅭〫֮b, qà𝅭〫֮b);
+Test_N(qà̕〬͜b, qà̕〬͜b, qà̕〬͜b, qà̕〬͜b, qà̕〬͜b);
+Test_N(qà〬̕͜b, qà〬̕͜b, qà〬̕͜b, qà〬̕͜b, qà〬̕͜b);
+Test_N(qa̖֚〭〮b, qa̖֚〭〮b, qa̖֚〭〮b, qa̖֚〭〮b, qa̖֚〭〮b);
+Test_N(qa̖〭֚〮b, qa̖〭֚〮b, qa̖〭֚〮b, qa̖〭֚〮b, qa̖〭֚〮b);
+Test_N(qa֚〮〮𝅭b, qa֚〮〮𝅭b, qa֚〮〮𝅭b, qa֚〮〮𝅭b, qa֚〮〮𝅭b);
+Test_N(qa֚〮〮𝅭b, qa֚〮〮𝅭b, qa֚〮〮𝅭b, qa֚〮〮𝅭b, qa֚〮〮𝅭b);
+Test_N(qa֚〮〯𝅭b, qa֚〮〯𝅭b, qa֚〮〯𝅭b, qa֚〮〯𝅭b, qa֚〮〯𝅭b);
+Test_N(qa֚〯〮𝅭b, qa֚〯〮𝅭b, qa֚〯〮𝅭b, qa֚〯〮𝅭b, qa֚〯〮𝅭b);
+Test_N(qa़゙゙्b, qa़゙゙्b, qa़゙゙्b, qa़゙゙्b, qa़゙゙्b);
+Test_N(qa़゙゙्b, qa़゙゙्b, qa़゙゙्b, qa़゙゙्b, qa़゙゙्b);
+Test_N(qa़゙゚्b, qa़゙゚्b, qa़゙゚्b, qa़゙゚्b, qa़゙゚्b);
+Test_N(qa़゚゙्b, qa़゚゙्b, qa़゚゙्b, qa़゚゙्b, qa़゚゙्b);
+Test_N(qà֮꙯̕b, qà֮꙯̕b, qà֮꙯̕b, qà֮꙯̕b, qà֮꙯̕b);
+Test_N(qa֮꙯̀̕b, qa֮꙯̀̕b, qa֮꙯̀̕b, qa֮꙯̀̕b, qa֮꙯̀̕b);
+Test_N(qà֮ꙴ̕b, qà֮ꙴ̕b, qà֮ꙴ̕b, qà֮ꙴ̕b, qà֮ꙴ̕b);
+Test_N(qa֮ꙴ̀̕b, qa֮ꙴ̀̕b, qa֮ꙴ̀̕b, qa֮ꙴ̀̕b, qa֮ꙴ̀̕b);
+Test_N(qà֮ꙵ̕b, qà֮ꙵ̕b, qà֮ꙵ̕b, qà֮ꙵ̕b, qà֮ꙵ̕b);
+Test_N(qa֮ꙵ̀̕b, qa֮ꙵ̀̕b, qa֮ꙵ̀̕b, qa֮ꙵ̀̕b, qa֮ꙵ̀̕b);
+Test_N(qà֮ꙶ̕b, qà֮ꙶ̕b, qà֮ꙶ̕b, qà֮ꙶ̕b, qà֮ꙶ̕b);
+Test_N(qa֮ꙶ̀̕b, qa֮ꙶ̀̕b, qa֮ꙶ̀̕b, qa֮ꙶ̀̕b, qa֮ꙶ̀̕b);
+Test_N(qà֮ꙷ̕b, qà֮ꙷ̕b, qà֮ꙷ̕b, qà֮ꙷ̕b, qà֮ꙷ̕b);
+Test_N(qa֮ꙷ̀̕b, qa֮ꙷ̀̕b, qa֮ꙷ̀̕b, qa֮ꙷ̀̕b, qa֮ꙷ̀̕b);
+Test_N(qà֮ꙸ̕b, qà֮ꙸ̕b, qà֮ꙸ̕b, qà֮ꙸ̕b, qà֮ꙸ̕b);
+Test_N(qa֮ꙸ̀̕b, qa֮ꙸ̀̕b, qa֮ꙸ̀̕b, qa֮ꙸ̀̕b, qa֮ꙸ̀̕b);
+Test_N(qà֮ꙹ̕b, qà֮ꙹ̕b, qà֮ꙹ̕b, qà֮ꙹ̕b, qà֮ꙹ̕b);
+Test_N(qa֮ꙹ̀̕b, qa֮ꙹ̀̕b, qa֮ꙹ̀̕b, qa֮ꙹ̀̕b, qa֮ꙹ̀̕b);
+Test_N(qà֮ꙺ̕b, qà֮ꙺ̕b, qà֮ꙺ̕b, qà֮ꙺ̕b, qà֮ꙺ̕b);
+Test_N(qa֮ꙺ̀̕b, qa֮ꙺ̀̕b, qa֮ꙺ̀̕b, qa֮ꙺ̀̕b, qa֮ꙺ̀̕b);
+Test_N(qà֮ꙻ̕b, qà֮ꙻ̕b, qà֮ꙻ̕b, qà֮ꙻ̕b, qà֮ꙻ̕b);
+Test_N(qa֮ꙻ̀̕b, qa֮ꙻ̀̕b, qa֮ꙻ̀̕b, qa֮ꙻ̀̕b, qa֮ꙻ̀̕b);
+Test_N(qà֮꙼̕b, qà֮꙼̕b, qà֮꙼̕b, qà֮꙼̕b, qà֮꙼̕b);
+Test_N(qa֮꙼̀̕b, qa֮꙼̀̕b, qa֮꙼̀̕b, qa֮꙼̀̕b, qa֮꙼̀̕b);
+Test_N(qà֮꙽̕b, qà֮꙽̕b, qà֮꙽̕b, qà֮꙽̕b, qà֮꙽̕b);
+Test_N(qa֮꙽̀̕b, qa֮꙽̀̕b, qa֮꙽̀̕b, qa֮꙽̀̕b, qa֮꙽̀̕b);
+Test_N(qà֮ꚞ̕b, qà֮ꚞ̕b, qà֮ꚞ̕b, qà֮ꚞ̕b, qà֮ꚞ̕b);
+Test_N(qa֮ꚞ̀̕b, qa֮ꚞ̀̕b, qa֮ꚞ̀̕b, qa֮ꚞ̀̕b, qa֮ꚞ̀̕b);
+Test_N(qà֮ꚟ̕b, qà֮ꚟ̕b, qà֮ꚟ̕b, qà֮ꚟ̕b, qà֮ꚟ̕b);
+Test_N(qa֮ꚟ̀̕b, qa֮ꚟ̀̕b, qa֮ꚟ̀̕b, qa֮ꚟ̀̕b, qa֮ꚟ̀̕b);
+Test_N(qà֮꛰̕b, qà֮꛰̕b, qà֮꛰̕b, qà֮꛰̕b, qà֮꛰̕b);
+Test_N(qa֮꛰̀̕b, qa֮꛰̀̕b, qa֮꛰̀̕b, qa֮꛰̀̕b, qa֮꛰̀̕b);
+Test_N(qà֮꛱̕b, qà֮꛱̕b, qà֮꛱̕b, qà֮꛱̕b, qà֮꛱̕b);
+Test_N(qa֮꛱̀̕b, qa֮꛱̀̕b, qa֮꛱̀̕b, qa֮꛱̀̕b, qa֮꛱̀̕b);
+Test_N(qa゙्꠆ְb, qa゙्꠆ְb, qa゙्꠆ְb, qa゙्꠆ְb, qa゙्꠆ְb);
+Test_N(qa゙꠆्ְb, qa゙꠆्ְb, qa゙꠆्ְb, qa゙꠆्ְb, qa゙꠆्ְb);
+Test_N(qa゙्꠬ְb, qa゙्꠬ְb, qa゙्꠬ְb, qa゙्꠬ְb, qa゙्꠬ְb);
+Test_N(qa゙꠬्ְb, qa゙꠬्ְb, qa゙꠬्ְb, qa゙꠬्ְb, qa゙꠬्ְb);
+Test_N(qa゙्꣄ְb, qa゙्꣄ְb, qa゙्꣄ְb, qa゙्꣄ְb, qa゙्꣄ְb);
+Test_N(qa゙꣄्ְb, qa゙꣄्ְb, qa゙꣄्ְb, qa゙꣄्ְb, qa゙꣄्ְb);
+Test_N(qà֮꣠̕b, qà֮꣠̕b, qà֮꣠̕b, qà֮꣠̕b, qà֮꣠̕b);
+Test_N(qa֮꣠̀̕b, qa֮꣠̀̕b, qa֮꣠̀̕b, qa֮꣠̀̕b, qa֮꣠̀̕b);
+Test_N(qà֮꣡̕b, qà֮꣡̕b, qà֮꣡̕b, qà֮꣡̕b, qà֮꣡̕b);
+Test_N(qa֮꣡̀̕b, qa֮꣡̀̕b, qa֮꣡̀̕b, qa֮꣡̀̕b, qa֮꣡̀̕b);
+Test_N(qà֮꣢̕b, qà֮꣢̕b, qà֮꣢̕b, qà֮꣢̕b, qà֮꣢̕b);
+Test_N(qa֮꣢̀̕b, qa֮꣢̀̕b, qa֮꣢̀̕b, qa֮꣢̀̕b, qa֮꣢̀̕b);
+Test_N(qà֮꣣̕b, qà֮꣣̕b, qà֮꣣̕b, qà֮꣣̕b, qà֮꣣̕b);
+Test_N(qa֮꣣̀̕b, qa֮꣣̀̕b, qa֮꣣̀̕b, qa֮꣣̀̕b, qa֮꣣̀̕b);
+Test_N(qà֮꣤̕b, qà֮꣤̕b, qà֮꣤̕b, qà֮꣤̕b, qà֮꣤̕b);
+Test_N(qa֮꣤̀̕b, qa֮꣤̀̕b, qa֮꣤̀̕b, qa֮꣤̀̕b, qa֮꣤̀̕b);
+Test_N(qà֮꣥̕b, qà֮꣥̕b, qà֮꣥̕b, qà֮꣥̕b, qà֮꣥̕b);
+Test_N(qa֮꣥̀̕b, qa֮꣥̀̕b, qa֮꣥̀̕b, qa֮꣥̀̕b, qa֮꣥̀̕b);
+Test_N(qà֮꣦̕b, qà֮꣦̕b, qà֮꣦̕b, qà֮꣦̕b, qà֮꣦̕b);
+Test_N(qa֮꣦̀̕b, qa֮꣦̀̕b, qa֮꣦̀̕b, qa֮꣦̀̕b, qa֮꣦̀̕b);
+Test_N(qà֮꣧̕b, qà֮꣧̕b, qà֮꣧̕b, qà֮꣧̕b, qà֮꣧̕b);
+Test_N(qa֮꣧̀̕b, qa֮꣧̀̕b, qa֮꣧̀̕b, qa֮꣧̀̕b, qa֮꣧̀̕b);
+Test_N(qà֮꣨̕b, qà֮꣨̕b, qà֮꣨̕b, qà֮꣨̕b, qà֮꣨̕b);
+Test_N(qa֮꣨̀̕b, qa֮꣨̀̕b, qa֮꣨̀̕b, qa֮꣨̀̕b, qa֮꣨̀̕b);
+Test_N(qà֮꣩̕b, qà֮꣩̕b, qà֮꣩̕b, qà֮꣩̕b, qà֮꣩̕b);
+Test_N(qa֮꣩̀̕b, qa֮꣩̀̕b, qa֮꣩̀̕b, qa֮꣩̀̕b, qa֮꣩̀̕b);
+Test_N(qà֮꣪̕b, qà֮꣪̕b, qà֮꣪̕b, qà֮꣪̕b, qà֮꣪̕b);
+Test_N(qa֮꣪̀̕b, qa֮꣪̀̕b, qa֮꣪̀̕b, qa֮꣪̀̕b, qa֮꣪̀̕b);
+Test_N(qà֮꣫̕b, qà֮꣫̕b, qà֮꣫̕b, qà֮꣫̕b, qà֮꣫̕b);
+Test_N(qa֮꣫̀̕b, qa֮꣫̀̕b, qa֮꣫̀̕b, qa֮꣫̀̕b, qa֮꣫̀̕b);
+Test_N(qà֮꣬̕b, qà֮꣬̕b, qà֮꣬̕b, qà֮꣬̕b, qà֮꣬̕b);
+Test_N(qa֮꣬̀̕b, qa֮꣬̀̕b, qa֮꣬̀̕b, qa֮꣬̀̕b, qa֮꣬̀̕b);
+Test_N(qà֮꣭̕b, qà֮꣭̕b, qà֮꣭̕b, qà֮꣭̕b, qà֮꣭̕b);
+Test_N(qa֮꣭̀̕b, qa֮꣭̀̕b, qa֮꣭̀̕b, qa֮꣭̀̕b, qa֮꣭̀̕b);
+Test_N(qà֮꣮̕b, qà֮꣮̕b, qà֮꣮̕b, qà֮꣮̕b, qà֮꣮̕b);
+Test_N(qa֮꣮̀̕b, qa֮꣮̀̕b, qa֮꣮̀̕b, qa֮꣮̀̕b, qa֮꣮̀̕b);
+Test_N(qà֮꣯̕b, qà֮꣯̕b, qà֮꣯̕b, qà֮꣯̕b, qà֮꣯̕b);
+Test_N(qa֮꣯̀̕b, qa֮꣯̀̕b, qa֮꣯̀̕b, qa֮꣯̀̕b, qa֮꣯̀̕b);
+Test_N(qà֮꣰̕b, qà֮꣰̕b, qà֮꣰̕b, qà֮꣰̕b, qà֮꣰̕b);
+Test_N(qa֮꣰̀̕b, qa֮꣰̀̕b, qa֮꣰̀̕b, qa֮꣰̀̕b, qa֮꣰̀̕b);
+Test_N(qà֮꣱̕b, qà֮꣱̕b, qà֮꣱̕b, qà֮꣱̕b, qà֮꣱̕b);
+Test_N(qa֮꣱̀̕b, qa֮꣱̀̕b, qa֮꣱̀̕b, qa֮꣱̀̕b, qa֮꣱̀̕b);
+Test_N(qa᷺̖꤫֚b, qa᷺̖꤫֚b, qa᷺̖꤫֚b, qa᷺̖꤫֚b, qa᷺̖꤫֚b);
+Test_N(qa᷺꤫̖֚b, qa᷺꤫̖֚b, qa᷺꤫̖֚b, qa᷺꤫̖֚b, qa᷺꤫̖֚b);
+Test_N(qa᷺̖꤬֚b, qa᷺̖꤬֚b, qa᷺̖꤬֚b, qa᷺̖꤬֚b, qa᷺̖꤬֚b);
+Test_N(qa᷺꤬̖֚b, qa᷺꤬̖֚b, qa᷺꤬̖֚b, qa᷺꤬̖֚b, qa᷺꤬̖֚b);
+Test_N(qa᷺̖꤭֚b, qa᷺̖꤭֚b, qa᷺̖꤭֚b, qa᷺̖꤭֚b, qa᷺̖꤭֚b);
+Test_N(qa᷺꤭̖֚b, qa᷺꤭̖֚b, qa᷺꤭̖֚b, qa᷺꤭̖֚b, qa᷺꤭̖֚b);
+Test_N(qa゙्꥓ְb, qa゙्꥓ְb, qa゙्꥓ְb, qa゙्꥓ְb, qa゙्꥓ְb);
+Test_N(qa゙꥓्ְb, qa゙꥓्ְb, qa゙꥓्ְb, qa゙꥓्ְb, qa゙꥓्ְb);
+Test_N(qa𖿰़꦳゙b, qa𖿰़꦳゙b, qa𖿰़꦳゙b, qa𖿰़꦳゙b, qa𖿰़꦳゙b);
+Test_N(qa𖿰꦳़゙b, qa𖿰꦳़゙b, qa𖿰꦳़゙b, qa𖿰꦳़゙b, qa𖿰꦳़゙b);
+Test_N(qa゙्꧀ְb, qa゙्꧀ְb, qa゙्꧀ְb, qa゙्꧀ְb, qa゙्꧀ְb);
+Test_N(qa゙꧀्ְb, qa゙꧀्ְb, qa゙꧀्ְb, qa゙꧀्ְb, qa゙꧀्ְb);
+Test_N(qà֮ꪰ̕b, qà֮ꪰ̕b, qà֮ꪰ̕b, qà֮ꪰ̕b, qà֮ꪰ̕b);
+Test_N(qa֮ꪰ̀̕b, qa֮ꪰ̀̕b, qa֮ꪰ̀̕b, qa֮ꪰ̀̕b, qa֮ꪰ̀̕b);
+Test_N(qà֮ꪲ̕b, qà֮ꪲ̕b, qà֮ꪲ̕b, qà֮ꪲ̕b, qà֮ꪲ̕b);
+Test_N(qa֮ꪲ̀̕b, qa֮ꪲ̀̕b, qa֮ꪲ̀̕b, qa֮ꪲ̀̕b, qa֮ꪲ̀̕b);
+Test_N(qà֮ꪳ̕b, qà֮ꪳ̕b, qà֮ꪳ̕b, qà֮ꪳ̕b, qà֮ꪳ̕b);
+Test_N(qa֮ꪳ̀̕b, qa֮ꪳ̀̕b, qa֮ꪳ̀̕b, qa֮ꪳ̀̕b, qa֮ꪳ̀̕b);
+Test_N(qa᷺̖ꪴ֚b, qa᷺̖ꪴ֚b, qa᷺̖ꪴ֚b, qa᷺̖ꪴ֚b, qa᷺̖ꪴ֚b);
+Test_N(qa᷺ꪴ̖֚b, qa᷺ꪴ̖֚b, qa᷺ꪴ̖֚b, qa᷺ꪴ̖֚b, qa᷺ꪴ̖֚b);
+Test_N(qà֮ꪷ̕b, qà֮ꪷ̕b, qà֮ꪷ̕b, qà֮ꪷ̕b, qà֮ꪷ̕b);
+Test_N(qa֮ꪷ̀̕b, qa֮ꪷ̀̕b, qa֮ꪷ̀̕b, qa֮ꪷ̀̕b, qa֮ꪷ̀̕b);
+Test_N(qà֮ꪸ̕b, qà֮ꪸ̕b, qà֮ꪸ̕b, qà֮ꪸ̕b, qà֮ꪸ̕b);
+Test_N(qa֮ꪸ̀̕b, qa֮ꪸ̀̕b, qa֮ꪸ̀̕b, qa֮ꪸ̀̕b, qa֮ꪸ̀̕b);
+Test_N(qà֮ꪾ̕b, qà֮ꪾ̕b, qà֮ꪾ̕b, qà֮ꪾ̕b, qà֮ꪾ̕b);
+Test_N(qa֮ꪾ̀̕b, qa֮ꪾ̀̕b, qa֮ꪾ̀̕b, qa֮ꪾ̀̕b, qa֮ꪾ̀̕b);
+Test_N(qà֮꪿̕b, qà֮꪿̕b, qà֮꪿̕b, qà֮꪿̕b, qà֮꪿̕b);
+Test_N(qa֮꪿̀̕b, qa֮꪿̀̕b, qa֮꪿̀̕b, qa֮꪿̀̕b, qa֮꪿̀̕b);
+Test_N(qà֮꫁̕b, qà֮꫁̕b, qà֮꫁̕b, qà֮꫁̕b, qà֮꫁̕b);
+Test_N(qa֮꫁̀̕b, qa֮꫁̀̕b, qa֮꫁̀̕b, qa֮꫁̀̕b, qa֮꫁̀̕b);
+Test_N(qa゙्꫶ְb, qa゙्꫶ְb, qa゙्꫶ְb, qa゙्꫶ְb, qa゙्꫶ְb);
+Test_N(qa゙꫶्ְb, qa゙꫶्ְb, qa゙꫶्ְb, qa゙꫶्ְb, qa゙꫶्ְb);
+Test_N(qa゙्꯭ְb, qa゙्꯭ְb, qa゙्꯭ְb, qa゙्꯭ְb, qa゙्꯭ְb);
+Test_N(qa゙꯭्ְb, qa゙꯭्ְb, qa゙꯭्ְb, qa゙꯭्ְb, qa゙꯭्ְb);
+Test_N(qaׂﬞﬞًb, qaׂﬞﬞًb, qaׂﬞﬞًb, qaׂﬞﬞًb, qaׂﬞﬞًb);
+Test_N(qaׂﬞﬞًb, qaׂﬞﬞًb, qaׂﬞﬞًb, qaׂﬞﬞًb, qaׂﬞﬞًb);
+Test_N(qà֮︠̕b, qà֮︠̕b, qà֮︠̕b, qà֮︠̕b, qà֮︠̕b);
+Test_N(qa֮︠̀̕b, qa֮︠̀̕b, qa֮︠̀̕b, qa֮︠̀̕b, qa֮︠̀̕b);
+Test_N(qà֮︡̕b, qà֮︡̕b, qà֮︡̕b, qà֮︡̕b, qà֮︡̕b);
+Test_N(qa֮︡̀̕b, qa֮︡̀̕b, qa֮︡̀̕b, qa֮︡̀̕b, qa֮︡̀̕b);
+Test_N(qà֮︢̕b, qà֮︢̕b, qà֮︢̕b, qà֮︢̕b, qà֮︢̕b);
+Test_N(qa֮︢̀̕b, qa֮︢̀̕b, qa֮︢̀̕b, qa֮︢̀̕b, qa֮︢̀̕b);
+Test_N(qà֮︣̕b, qà֮︣̕b, qà֮︣̕b, qà֮︣̕b, qà֮︣̕b);
+Test_N(qa֮︣̀̕b, qa֮︣̀̕b, qa֮︣̀̕b, qa֮︣̀̕b, qa֮︣̀̕b);
+Test_N(qà֮︤̕b, qà֮︤̕b, qà֮︤̕b, qà֮︤̕b, qà֮︤̕b);
+Test_N(qa֮︤̀̕b, qa֮︤̀̕b, qa֮︤̀̕b, qa֮︤̀̕b, qa֮︤̀̕b);
+Test_N(qà֮︥̕b, qà֮︥̕b, qà֮︥̕b, qà֮︥̕b, qà֮︥̕b);
+Test_N(qa֮︥̀̕b, qa֮︥̀̕b, qa֮︥̀̕b, qa֮︥̀̕b, qa֮︥̀̕b);
+Test_N(qà֮︦̕b, qà֮︦̕b, qà֮︦̕b, qà֮︦̕b, qà֮︦̕b);
+Test_N(qa֮︦̀̕b, qa֮︦̀̕b, qa֮︦̀̕b, qa֮︦̀̕b, qa֮︦̀̕b);
+Test_N(qa᷺̖︧֚b, qa᷺̖︧֚b, qa᷺̖︧֚b, qa᷺̖︧֚b, qa᷺̖︧֚b);
+Test_N(qa᷺︧̖֚b, qa᷺︧̖֚b, qa᷺︧̖֚b, qa᷺︧̖֚b, qa᷺︧̖֚b);
+Test_N(qa᷺̖︨֚b, qa᷺̖︨֚b, qa᷺̖︨֚b, qa᷺̖︨֚b, qa᷺̖︨֚b);
+Test_N(qa᷺︨̖֚b, qa᷺︨̖֚b, qa᷺︨̖֚b, qa᷺︨̖֚b, qa᷺︨̖֚b);
+Test_N(qa᷺̖︩֚b, qa᷺̖︩֚b, qa᷺̖︩֚b, qa᷺̖︩֚b, qa᷺̖︩֚b);
+Test_N(qa᷺︩̖֚b, qa᷺︩̖֚b, qa᷺︩̖֚b, qa᷺︩̖֚b, qa᷺︩̖֚b);
+Test_N(qa᷺̖︪֚b, qa᷺̖︪֚b, qa᷺̖︪֚b, qa᷺̖︪֚b, qa᷺̖︪֚b);
+Test_N(qa᷺︪̖֚b, qa᷺︪̖֚b, qa᷺︪̖֚b, qa᷺︪̖֚b, qa᷺︪̖֚b);
+Test_N(qa᷺̖︫֚b, qa᷺̖︫֚b, qa᷺̖︫֚b, qa᷺̖︫֚b, qa᷺̖︫֚b);
+Test_N(qa᷺︫̖֚b, qa᷺︫̖֚b, qa᷺︫̖֚b, qa᷺︫̖֚b, qa᷺︫̖֚b);
+Test_N(qa᷺̖︬֚b, qa᷺̖︬֚b, qa᷺̖︬֚b, qa᷺̖︬֚b, qa᷺̖︬֚b);
+Test_N(qa᷺︬̖֚b, qa᷺︬̖֚b, qa᷺︬̖֚b, qa᷺︬̖֚b, qa᷺︬̖֚b);
+Test_N(qa᷺̖︭֚b, qa᷺̖︭֚b, qa᷺̖︭֚b, qa᷺̖︭֚b, qa᷺̖︭֚b);
+Test_N(qa᷺︭̖֚b, qa᷺︭̖֚b, qa᷺︭̖֚b, qa᷺︭̖֚b, qa᷺︭̖֚b);
+Test_N(qà֮︮̕b, qà֮︮̕b, qà֮︮̕b, qà֮︮̕b, qà֮︮̕b);
+Test_N(qa֮︮̀̕b, qa֮︮̀̕b, qa֮︮̀̕b, qa֮︮̀̕b, qa֮︮̀̕b);
+Test_N(qà֮︯̕b, qà֮︯̕b, qà֮︯̕b, qà֮︯̕b, qà֮︯̕b);
+Test_N(qa֮︯̀̕b, qa֮︯̀̕b, qa֮︯̀̕b, qa֮︯̀̕b, qa֮︯̀̕b);
+Test_N(qa᷺̖𐇽֚b, qa᷺̖𐇽֚b, qa᷺̖𐇽֚b, qa᷺̖𐇽֚b, qa᷺̖𐇽֚b);
+Test_N(qa᷺𐇽̖֚b, qa᷺𐇽̖֚b, qa᷺𐇽̖֚b, qa᷺𐇽̖֚b, qa᷺𐇽̖֚b);
+Test_N(qa᷺̖𐋠֚b, qa᷺̖𐋠֚b, qa᷺̖𐋠֚b, qa᷺̖𐋠֚b, qa᷺̖𐋠֚b);
+Test_N(qa᷺𐋠̖֚b, qa᷺𐋠̖֚b, qa᷺𐋠̖֚b, qa᷺𐋠̖֚b, qa᷺𐋠̖֚b);
+Test_N(qà֮𐍶̕b, qà֮𐍶̕b, qà֮𐍶̕b, qà֮𐍶̕b, qà֮𐍶̕b);
+Test_N(qa֮𐍶̀̕b, qa֮𐍶̀̕b, qa֮𐍶̀̕b, qa֮𐍶̀̕b, qa֮𐍶̀̕b);
+Test_N(qà֮𐍷̕b, qà֮𐍷̕b, qà֮𐍷̕b, qà֮𐍷̕b, qà֮𐍷̕b);
+Test_N(qa֮𐍷̀̕b, qa֮𐍷̀̕b, qa֮𐍷̀̕b, qa֮𐍷̀̕b, qa֮𐍷̀̕b);
+Test_N(qà֮𐍸̕b, qà֮𐍸̕b, qà֮𐍸̕b, qà֮𐍸̕b, qà֮𐍸̕b);
+Test_N(qa֮𐍸̀̕b, qa֮𐍸̀̕b, qa֮𐍸̀̕b, qa֮𐍸̀̕b, qa֮𐍸̀̕b);
+Test_N(qà֮𐍹̕b, qà֮𐍹̕b, qà֮𐍹̕b, qà֮𐍹̕b, qà֮𐍹̕b);
+Test_N(qa֮𐍹̀̕b, qa֮𐍹̀̕b, qa֮𐍹̀̕b, qa֮𐍹̀̕b, qa֮𐍹̀̕b);
+Test_N(qà֮𐍺̕b, qà֮𐍺̕b, qà֮𐍺̕b, qà֮𐍺̕b, qà֮𐍺̕b);
+Test_N(qa֮𐍺̀̕b, qa֮𐍺̀̕b, qa֮𐍺̀̕b, qa֮𐍺̀̕b, qa֮𐍺̀̕b);
+Test_N(qa᷺̖𐨍֚b, qa᷺̖𐨍֚b, qa᷺̖𐨍֚b, qa᷺̖𐨍֚b, qa᷺̖𐨍֚b);
+Test_N(qa᷺𐨍̖֚b, qa᷺𐨍̖֚b, qa᷺𐨍̖֚b, qa᷺𐨍̖֚b, qa᷺𐨍̖֚b);
+Test_N(qà֮𐨏̕b, qà֮𐨏̕b, qà֮𐨏̕b, qà֮𐨏̕b, qà֮𐨏̕b);
+Test_N(qa֮𐨏̀̕b, qa֮𐨏̀̕b, qa֮𐨏̀̕b, qa֮𐨏̀̕b, qa֮𐨏̀̕b);
+Test_N(qà֮𐨸̕b, qà֮𐨸̕b, qà֮𐨸̕b, qà֮𐨸̕b, qà֮𐨸̕b);
+Test_N(qa֮𐨸̀̕b, qa֮𐨸̀̕b, qa֮𐨸̀̕b, qa֮𐨸̀̕b, qa֮𐨸̀̕b);
+Test_N(qa̴𐨹𖿰b, qa̴𐨹𖿰b, qa̴𐨹𖿰b, qa̴𐨹𖿰b, qa̴𐨹𖿰b);
+Test_N(qa𐨹̴𖿰b, qa𐨹̴𖿰b, qa𐨹̴𖿰b, qa𐨹̴𖿰b, qa𐨹̴𖿰b);
+Test_N(qa᷺̖𐨺֚b, qa᷺̖𐨺֚b, qa᷺̖𐨺֚b, qa᷺̖𐨺֚b, qa᷺̖𐨺֚b);
+Test_N(qa᷺𐨺̖֚b, qa᷺𐨺̖֚b, qa᷺𐨺̖֚b, qa᷺𐨺̖֚b, qa᷺𐨺̖֚b);
+Test_N(qa゙्𐨿ְb, qa゙्𐨿ְb, qa゙्𐨿ְb, qa゙्𐨿ְb, qa゙्𐨿ְb);
+Test_N(qa゙𐨿्ְb, qa゙𐨿्ְb, qa゙𐨿्ְb, qa゙𐨿्ְb, qa゙𐨿्ְb);
+Test_N(qà֮𐫥̕b, qà֮𐫥̕b, qà֮𐫥̕b, qà֮𐫥̕b, qà֮𐫥̕b);
+Test_N(qa֮𐫥̀̕b, qa֮𐫥̀̕b, qa֮𐫥̀̕b, qa֮𐫥̀̕b, qa֮𐫥̀̕b);
+Test_N(qa᷺̖𐫦֚b, qa᷺̖𐫦֚b, qa᷺̖𐫦֚b, qa᷺̖𐫦֚b, qa᷺̖𐫦֚b);
+Test_N(qa᷺𐫦̖֚b, qa᷺𐫦̖֚b, qa᷺𐫦̖֚b, qa᷺𐫦̖֚b, qa᷺𐫦̖֚b);
+Test_N(qà֮𐴤̕b, qà֮𐴤̕b, qà֮𐴤̕b, qà֮𐴤̕b, qà֮𐴤̕b);
+Test_N(qa֮𐴤̀̕b, qa֮𐴤̀̕b, qa֮𐴤̀̕b, qa֮𐴤̀̕b, qa֮𐴤̀̕b);
+Test_N(qà֮𐴥̕b, qà֮𐴥̕b, qà֮𐴥̕b, qà֮𐴥̕b, qà֮𐴥̕b);
+Test_N(qa֮𐴥̀̕b, qa֮𐴥̀̕b, qa֮𐴥̀̕b, qa֮𐴥̀̕b, qa֮𐴥̀̕b);
+Test_N(qà֮𐴦̕b, qà֮𐴦̕b, qà֮𐴦̕b, qà֮𐴦̕b, qà֮𐴦̕b);
+Test_N(qa֮𐴦̀̕b, qa֮𐴦̀̕b, qa֮𐴦̀̕b, qa֮𐴦̀̕b, qa֮𐴦̀̕b);
+Test_N(qà֮𐴧̕b, qà֮𐴧̕b, qà֮𐴧̕b, qà֮𐴧̕b, qà֮𐴧̕b);
+Test_N(qa֮𐴧̀̕b, qa֮𐴧̀̕b, qa֮𐴧̀̕b, qa֮𐴧̀̕b, qa֮𐴧̀̕b);
+Test_N(qà֮𐺫̕b, qà֮𐺫̕b, qà֮𐺫̕b, qà֮𐺫̕b, qà֮𐺫̕b);
+Test_N(qa֮𐺫̀̕b, qa֮𐺫̀̕b, qa֮𐺫̀̕b, qa֮𐺫̀̕b, qa֮𐺫̀̕b);
+Test_N(qà֮𐺬̕b, qà֮𐺬̕b, qà֮𐺬̕b, qà֮𐺬̕b, qà֮𐺬̕b);
+Test_N(qa֮𐺬̀̕b, qa֮𐺬̀̕b, qa֮𐺬̀̕b, qa֮𐺬̀̕b, qa֮𐺬̀̕b);
+Test_N(qa᷺̖𐻽֚b, qa᷺̖𐻽֚b, qa᷺̖𐻽֚b, qa᷺̖𐻽֚b, qa᷺̖𐻽֚b);
+Test_N(qa᷺𐻽̖֚b, qa᷺𐻽̖֚b, qa᷺𐻽̖֚b, qa᷺𐻽̖֚b, qa᷺𐻽̖֚b);
+Test_N(qa᷺̖𐻾֚b, qa᷺̖𐻾֚b, qa᷺̖𐻾֚b, qa᷺̖𐻾֚b, qa᷺̖𐻾֚b);
+Test_N(qa᷺𐻾̖֚b, qa᷺𐻾̖֚b, qa᷺𐻾̖֚b, qa᷺𐻾̖֚b, qa᷺𐻾̖֚b);
+Test_N(qa᷺̖𐻿֚b, qa᷺̖𐻿֚b, qa᷺̖𐻿֚b, qa᷺̖𐻿֚b, qa᷺̖𐻿֚b);
+Test_N(qa᷺𐻿̖֚b, qa᷺𐻿̖֚b, qa᷺𐻿̖֚b, qa᷺𐻿̖֚b, qa᷺𐻿̖֚b);
+Test_N(qa᷺̖𐽆֚b, qa᷺̖𐽆֚b, qa᷺̖𐽆֚b, qa᷺̖𐽆֚b, qa᷺̖𐽆֚b);
+Test_N(qa᷺𐽆̖֚b, qa᷺𐽆̖֚b, qa᷺𐽆̖֚b, qa᷺𐽆̖֚b, qa᷺𐽆̖֚b);
+Test_N(qa᷺̖𐽇֚b, qa᷺̖𐽇֚b, qa᷺̖𐽇֚b, qa᷺̖𐽇֚b, qa᷺̖𐽇֚b);
+Test_N(qa᷺𐽇̖֚b, qa᷺𐽇̖֚b, qa᷺𐽇̖֚b, qa᷺𐽇̖֚b, qa᷺𐽇̖֚b);
+Test_N(qà֮𐽈̕b, qà֮𐽈̕b, qà֮𐽈̕b, qà֮𐽈̕b, qà֮𐽈̕b);
+Test_N(qa֮𐽈̀̕b, qa֮𐽈̀̕b, qa֮𐽈̀̕b, qa֮𐽈̀̕b, qa֮𐽈̀̕b);
+Test_N(qà֮𐽉̕b, qà֮𐽉̕b, qà֮𐽉̕b, qà֮𐽉̕b, qà֮𐽉̕b);
+Test_N(qa֮𐽉̀̕b, qa֮𐽉̀̕b, qa֮𐽉̀̕b, qa֮𐽉̀̕b, qa֮𐽉̀̕b);
+Test_N(qà֮𐽊̕b, qà֮𐽊̕b, qà֮𐽊̕b, qà֮𐽊̕b, qà֮𐽊̕b);
+Test_N(qa֮𐽊̀̕b, qa֮𐽊̀̕b, qa֮𐽊̀̕b, qa֮𐽊̀̕b, qa֮𐽊̀̕b);
+Test_N(qa᷺̖𐽋֚b, qa᷺̖𐽋֚b, qa᷺̖𐽋֚b, qa᷺̖𐽋֚b, qa᷺̖𐽋֚b);
+Test_N(qa᷺𐽋̖֚b, qa᷺𐽋̖֚b, qa᷺𐽋̖֚b, qa᷺𐽋̖֚b, qa᷺𐽋̖֚b);
+Test_N(qà֮𐽌̕b, qà֮𐽌̕b, qà֮𐽌̕b, qà֮𐽌̕b, qà֮𐽌̕b);
+Test_N(qa֮𐽌̀̕b, qa֮𐽌̀̕b, qa֮𐽌̀̕b, qa֮𐽌̀̕b, qa֮𐽌̀̕b);
+Test_N(qa᷺̖𐽍֚b, qa᷺̖𐽍֚b, qa᷺̖𐽍֚b, qa᷺̖𐽍֚b, qa᷺̖𐽍֚b);
+Test_N(qa᷺𐽍̖֚b, qa᷺𐽍̖֚b, qa᷺𐽍̖֚b, qa᷺𐽍̖֚b, qa᷺𐽍̖֚b);
+Test_N(qa᷺̖𐽎֚b, qa᷺̖𐽎֚b, qa᷺̖𐽎֚b, qa᷺̖𐽎֚b, qa᷺̖𐽎֚b);
+Test_N(qa᷺𐽎̖֚b, qa᷺𐽎̖֚b, qa᷺𐽎̖֚b, qa᷺𐽎̖֚b, qa᷺𐽎̖֚b);
+Test_N(qa᷺̖𐽏֚b, qa᷺̖𐽏֚b, qa᷺̖𐽏֚b, qa᷺̖𐽏֚b, qa᷺̖𐽏֚b);
+Test_N(qa᷺𐽏̖֚b, qa᷺𐽏̖֚b, qa᷺𐽏̖֚b, qa᷺𐽏̖֚b, qa᷺𐽏̖֚b);
+Test_N(qa᷺̖𐽐֚b, qa᷺̖𐽐֚b, qa᷺̖𐽐֚b, qa᷺̖𐽐֚b, qa᷺̖𐽐֚b);
+Test_N(qa᷺𐽐̖֚b, qa᷺𐽐̖֚b, qa᷺𐽐̖֚b, qa᷺𐽐̖֚b, qa᷺𐽐̖֚b);
+Test_N(qà֮𐾂̕b, qà֮𐾂̕b, qà֮𐾂̕b, qà֮𐾂̕b, qà֮𐾂̕b);
+Test_N(qa֮𐾂̀̕b, qa֮𐾂̀̕b, qa֮𐾂̀̕b, qa֮𐾂̀̕b, qa֮𐾂̀̕b);
+Test_N(qa᷺̖𐾃֚b, qa᷺̖𐾃֚b, qa᷺̖𐾃֚b, qa᷺̖𐾃֚b, qa᷺̖𐾃֚b);
+Test_N(qa᷺𐾃̖֚b, qa᷺𐾃̖֚b, qa᷺𐾃̖֚b, qa᷺𐾃̖֚b, qa᷺𐾃̖֚b);
+Test_N(qà֮𐾄̕b, qà֮𐾄̕b, qà֮𐾄̕b, qà֮𐾄̕b, qà֮𐾄̕b);
+Test_N(qa֮𐾄̀̕b, qa֮𐾄̀̕b, qa֮𐾄̀̕b, qa֮𐾄̀̕b, qa֮𐾄̀̕b);
+Test_N(qa᷺̖𐾅֚b, qa᷺̖𐾅֚b, qa᷺̖𐾅֚b, qa᷺̖𐾅֚b, qa᷺̖𐾅֚b);
+Test_N(qa᷺𐾅̖֚b, qa᷺𐾅̖֚b, qa᷺𐾅̖֚b, qa᷺𐾅̖֚b, qa᷺𐾅̖֚b);
+Test_N(qa゙्𑁆ְb, qa゙्𑁆ְb, qa゙्𑁆ְb, qa゙्𑁆ְb, qa゙्𑁆ְb);
+Test_N(qa゙𑁆्ְb, qa゙𑁆्ְb, qa゙𑁆्ְb, qa゙𑁆्ְb, qa゙𑁆्ְb);
+Test_N(qa゙्𑁰ְb, qa゙्𑁰ְb, qa゙्𑁰ְb, qa゙्𑁰ְb, qa゙्𑁰ְb);
+Test_N(qa゙𑁰्ְb, qa゙𑁰्ְb, qa゙𑁰्ְb, qa゙𑁰्ְb, qa゙𑁰्ְb);
+Test_N(qa゙्𑁿ְb, qa゙्𑁿ְb, qa゙्𑁿ְb, qa゙्𑁿ְb, qa゙्𑁿ְb);
+Test_N(qa゙𑁿्ְb, qa゙𑁿्ְb, qa゙𑁿्ְb, qa゙𑁿्ְb, qa゙𑁿्ְb);
+Test_N(qa゙्𑂹ְb, qa゙्𑂹ְb, qa゙्𑂹ְb, qa゙्𑂹ְb, qa゙्𑂹ְb);
+Test_N(qa゙𑂹्ְb, qa゙𑂹्ְb, qa゙𑂹्ְb, qa゙𑂹्ְb, qa゙𑂹्ְb);
+Test_N(qa𖿰़𑂺゙b, qa𖿰़𑂺゙b, qa𖿰़𑂺゙b, qa𖿰़𑂺゙b, qa𖿰़𑂺゙b);
+Test_N(qa𖿰𑂺़゙b, qa𖿰𑂺़゙b, qa𖿰𑂺़゙b, qa𖿰𑂺़゙b, qa𖿰𑂺़゙b);
+Test_N(qà֮𑄀̕b, qà֮𑄀̕b, qà֮𑄀̕b, qà֮𑄀̕b, qà֮𑄀̕b);
+Test_N(qa֮𑄀̀̕b, qa֮𑄀̀̕b, qa֮𑄀̀̕b, qa֮𑄀̀̕b, qa֮𑄀̀̕b);
+Test_N(qà֮𑄁̕b, qà֮𑄁̕b, qà֮𑄁̕b, qà֮𑄁̕b, qà֮𑄁̕b);
+Test_N(qa֮𑄁̀̕b, qa֮𑄁̀̕b, qa֮𑄁̀̕b, qa֮𑄁̀̕b, qa֮𑄁̀̕b);
+Test_N(qà֮𑄂̕b, qà֮𑄂̕b, qà֮𑄂̕b, qà֮𑄂̕b, qà֮𑄂̕b);
+Test_N(qa֮𑄂̀̕b, qa֮𑄂̀̕b, qa֮𑄂̀̕b, qa֮𑄂̀̕b, qa֮𑄂̀̕b);
+Test_N(qa゙्𑄳ְb, qa゙्𑄳ְb, qa゙्𑄳ְb, qa゙्𑄳ְb, qa゙्𑄳ְb);
+Test_N(qa゙𑄳्ְb, qa゙𑄳्ְb, qa゙𑄳्ְb, qa゙𑄳्ְb, qa゙𑄳्ְb);
+Test_N(qa゙्𑄴ְb, qa゙्𑄴ְb, qa゙्𑄴ְb, qa゙्𑄴ְb, qa゙्𑄴ְb);
+Test_N(qa゙𑄴्ְb, qa゙𑄴्ְb, qa゙𑄴्ְb, qa゙𑄴्ְb, qa゙𑄴्ְb);
+Test_N(qa𖿰़𑅳゙b, qa𖿰़𑅳゙b, qa𖿰़𑅳゙b, qa𖿰़𑅳゙b, qa𖿰़𑅳゙b);
+Test_N(qa𖿰𑅳़゙b, qa𖿰𑅳़゙b, qa𖿰𑅳़゙b, qa𖿰𑅳़゙b, qa𖿰𑅳़゙b);
+Test_N(qa゙्𑇀ְb, qa゙्𑇀ְb, qa゙्𑇀ְb, qa゙्𑇀ְb, qa゙्𑇀ְb);
+Test_N(qa゙𑇀्ְb, qa゙𑇀्ְb, qa゙𑇀्ְb, qa゙𑇀्ְb, qa゙𑇀्ְb);
+Test_N(qa𖿰़𑇊゙b, qa𖿰़𑇊゙b, qa𖿰़𑇊゙b, qa𖿰़𑇊゙b, qa𖿰़𑇊゙b);
+Test_N(qa𖿰𑇊़゙b, qa𖿰𑇊़゙b, qa𖿰𑇊़゙b, qa𖿰𑇊़゙b, qa𖿰𑇊़゙b);
+Test_N(qa゙्𑈵ְb, qa゙्𑈵ְb, qa゙्𑈵ְb, qa゙्𑈵ְb, qa゙्𑈵ְb);
+Test_N(qa゙𑈵्ְb, qa゙𑈵्ְb, qa゙𑈵्ְb, qa゙𑈵्ְb, qa゙𑈵्ְb);
+Test_N(qa𖿰़𑈶゙b, qa𖿰़𑈶゙b, qa𖿰़𑈶゙b, qa𖿰़𑈶゙b, qa𖿰़𑈶゙b);
+Test_N(qa𖿰𑈶़゙b, qa𖿰𑈶़゙b, qa𖿰𑈶़゙b, qa𖿰𑈶़゙b, qa𖿰𑈶़゙b);
+Test_N(qa𖿰़𑋩゙b, qa𖿰़𑋩゙b, qa𖿰़𑋩゙b, qa𖿰़𑋩゙b, qa𖿰़𑋩゙b);
+Test_N(qa𖿰𑋩़゙b, qa𖿰𑋩़゙b, qa𖿰𑋩़゙b, qa𖿰𑋩़゙b, qa𖿰𑋩़゙b);
+Test_N(qa゙्𑋪ְb, qa゙्𑋪ְb, qa゙्𑋪ְb, qa゙्𑋪ְb, qa゙्𑋪ְb);
+Test_N(qa゙𑋪्ְb, qa゙𑋪्ְb, qa゙𑋪्ְb, qa゙𑋪्ְb, qa゙𑋪्ְb);
+Test_N(qa𖿰़𑌻゙b, qa𖿰़𑌻゙b, qa𖿰़𑌻゙b, qa𖿰़𑌻゙b, qa𖿰़𑌻゙b);
+Test_N(qa𖿰𑌻़゙b, qa𖿰𑌻़゙b, qa𖿰𑌻़゙b, qa𖿰𑌻़゙b, qa𖿰𑌻़゙b);
+Test_N(qa𖿰़𑌼゙b, qa𖿰़𑌼゙b, qa𖿰़𑌼゙b, qa𖿰़𑌼゙b, qa𖿰़𑌼゙b);
+Test_N(qa𖿰𑌼़゙b, qa𖿰𑌼़゙b, qa𖿰𑌼़゙b, qa𖿰𑌼़゙b, qa𖿰𑌼़゙b);
+Test_N(qa゙्𑍍ְb, qa゙्𑍍ְb, qa゙्𑍍ְb, qa゙्𑍍ְb, qa゙्𑍍ְb);
+Test_N(qa゙𑍍्ְb, qa゙𑍍्ְb, qa゙𑍍्ְb, qa゙𑍍्ְb, qa゙𑍍्ְb);
+Test_N(qà֮𑍦̕b, qà֮𑍦̕b, qà֮𑍦̕b, qà֮𑍦̕b, qà֮𑍦̕b);
+Test_N(qa֮𑍦̀̕b, qa֮𑍦̀̕b, qa֮𑍦̀̕b, qa֮𑍦̀̕b, qa֮𑍦̀̕b);
+Test_N(qà֮𑍧̕b, qà֮𑍧̕b, qà֮𑍧̕b, qà֮𑍧̕b, qà֮𑍧̕b);
+Test_N(qa֮𑍧̀̕b, qa֮𑍧̀̕b, qa֮𑍧̀̕b, qa֮𑍧̀̕b, qa֮𑍧̀̕b);
+Test_N(qà֮𑍨̕b, qà֮𑍨̕b, qà֮𑍨̕b, qà֮𑍨̕b, qà֮𑍨̕b);
+Test_N(qa֮𑍨̀̕b, qa֮𑍨̀̕b, qa֮𑍨̀̕b, qa֮𑍨̀̕b, qa֮𑍨̀̕b);
+Test_N(qà֮𑍩̕b, qà֮𑍩̕b, qà֮𑍩̕b, qà֮𑍩̕b, qà֮𑍩̕b);
+Test_N(qa֮𑍩̀̕b, qa֮𑍩̀̕b, qa֮𑍩̀̕b, qa֮𑍩̀̕b, qa֮𑍩̀̕b);
+Test_N(qà֮𑍪̕b, qà֮𑍪̕b, qà֮𑍪̕b, qà֮𑍪̕b, qà֮𑍪̕b);
+Test_N(qa֮𑍪̀̕b, qa֮𑍪̀̕b, qa֮𑍪̀̕b, qa֮𑍪̀̕b, qa֮𑍪̀̕b);
+Test_N(qà֮𑍫̕b, qà֮𑍫̕b, qà֮𑍫̕b, qà֮𑍫̕b, qà֮𑍫̕b);
+Test_N(qa֮𑍫̀̕b, qa֮𑍫̀̕b, qa֮𑍫̀̕b, qa֮𑍫̀̕b, qa֮𑍫̀̕b);
+Test_N(qà֮𑍬̕b, qà֮𑍬̕b, qà֮𑍬̕b, qà֮𑍬̕b, qà֮𑍬̕b);
+Test_N(qa֮𑍬̀̕b, qa֮𑍬̀̕b, qa֮𑍬̀̕b, qa֮𑍬̀̕b, qa֮𑍬̀̕b);
+Test_N(qà֮𑍰̕b, qà֮𑍰̕b, qà֮𑍰̕b, qà֮𑍰̕b, qà֮𑍰̕b);
+Test_N(qa֮𑍰̀̕b, qa֮𑍰̀̕b, qa֮𑍰̀̕b, qa֮𑍰̀̕b, qa֮𑍰̀̕b);
+Test_N(qà֮𑍱̕b, qà֮𑍱̕b, qà֮𑍱̕b, qà֮𑍱̕b, qà֮𑍱̕b);
+Test_N(qa֮𑍱̀̕b, qa֮𑍱̀̕b, qa֮𑍱̀̕b, qa֮𑍱̀̕b, qa֮𑍱̀̕b);
+Test_N(qà֮𑍲̕b, qà֮𑍲̕b, qà֮𑍲̕b, qà֮𑍲̕b, qà֮𑍲̕b);
+Test_N(qa֮𑍲̀̕b, qa֮𑍲̀̕b, qa֮𑍲̀̕b, qa֮𑍲̀̕b, qa֮𑍲̀̕b);
+Test_N(qà֮𑍳̕b, qà֮𑍳̕b, qà֮𑍳̕b, qà֮𑍳̕b, qà֮𑍳̕b);
+Test_N(qa֮𑍳̀̕b, qa֮𑍳̀̕b, qa֮𑍳̀̕b, qa֮𑍳̀̕b, qa֮𑍳̀̕b);
+Test_N(qà֮𑍴̕b, qà֮𑍴̕b, qà֮𑍴̕b, qà֮𑍴̕b, qà֮𑍴̕b);
+Test_N(qa֮𑍴̀̕b, qa֮𑍴̀̕b, qa֮𑍴̀̕b, qa֮𑍴̀̕b, qa֮𑍴̀̕b);
+Test_N(qa゙्𑑂ְb, qa゙्𑑂ְb, qa゙्𑑂ְb, qa゙्𑑂ְb, qa゙्𑑂ְb);
+Test_N(qa゙𑑂्ְb, qa゙𑑂्ְb, qa゙𑑂्ְb, qa゙𑑂्ְb, qa゙𑑂्ְb);
+Test_N(qa𖿰़𑑆゙b, qa𖿰़𑑆゙b, qa𖿰़𑑆゙b, qa𖿰़𑑆゙b, qa𖿰़𑑆゙b);
+Test_N(qa𖿰𑑆़゙b, qa𖿰𑑆़゙b, qa𖿰𑑆़゙b, qa𖿰𑑆़゙b, qa𖿰𑑆़゙b);
+Test_N(qà֮𑑞̕b, qà֮𑑞̕b, qà֮𑑞̕b, qà֮𑑞̕b, qà֮𑑞̕b);
+Test_N(qa֮𑑞̀̕b, qa֮𑑞̀̕b, qa֮𑑞̀̕b, qa֮𑑞̀̕b, qa֮𑑞̀̕b);
+Test_N(qa゙्𑓂ְb, qa゙्𑓂ְb, qa゙्𑓂ְb, qa゙्𑓂ְb, qa゙्𑓂ְb);
+Test_N(qa゙𑓂्ְb, qa゙𑓂्ְb, qa゙𑓂्ְb, qa゙𑓂्ְb, qa゙𑓂्ְb);
+Test_N(qa𖿰़𑓃゙b, qa𖿰़𑓃゙b, qa𖿰़𑓃゙b, qa𖿰़𑓃゙b, qa𖿰़𑓃゙b);
+Test_N(qa𖿰𑓃़゙b, qa𖿰𑓃़゙b, qa𖿰𑓃़゙b, qa𖿰𑓃़゙b, qa𖿰𑓃़゙b);
+Test_N(qa゙्𑖿ְb, qa゙्𑖿ְb, qa゙्𑖿ְb, qa゙्𑖿ְb, qa゙्𑖿ְb);
+Test_N(qa゙𑖿्ְb, qa゙𑖿्ְb, qa゙𑖿्ְb, qa゙𑖿्ְb, qa゙𑖿्ְb);
+Test_N(qa𖿰़𑗀゙b, qa𖿰़𑗀゙b, qa𖿰़𑗀゙b, qa𖿰़𑗀゙b, qa𖿰़𑗀゙b);
+Test_N(qa𖿰𑗀़゙b, qa𖿰𑗀़゙b, qa𖿰𑗀़゙b, qa𖿰𑗀़゙b, qa𖿰𑗀़゙b);
+Test_N(qa゙्𑘿ְb, qa゙्𑘿ְb, qa゙्𑘿ְb, qa゙्𑘿ְb, qa゙्𑘿ְb);
+Test_N(qa゙𑘿्ְb, qa゙𑘿्ְb, qa゙𑘿्ְb, qa゙𑘿्ְb, qa゙𑘿्ְb);
+Test_N(qa゙्𑚶ְb, qa゙्𑚶ְb, qa゙्𑚶ְb, qa゙्𑚶ְb, qa゙्𑚶ְb);
+Test_N(qa゙𑚶्ְb, qa゙𑚶्ְb, qa゙𑚶्ְb, qa゙𑚶्ְb, qa゙𑚶्ְb);
+Test_N(qa𖿰़𑚷゙b, qa𖿰़𑚷゙b, qa𖿰़𑚷゙b, qa𖿰़𑚷゙b, qa𖿰़𑚷゙b);
+Test_N(qa𖿰𑚷़゙b, qa𖿰𑚷़゙b, qa𖿰𑚷़゙b, qa𖿰𑚷़゙b, qa𖿰𑚷़゙b);
+Test_N(qa゙्𑜫ְb, qa゙्𑜫ְb, qa゙्𑜫ְb, qa゙्𑜫ְb, qa゙्𑜫ְb);
+Test_N(qa゙𑜫्ְb, qa゙𑜫्ְb, qa゙𑜫्ְb, qa゙𑜫्ְb, qa゙𑜫्ְb);
+Test_N(qa゙्𑠹ְb, qa゙्𑠹ְb, qa゙्𑠹ְb, qa゙्𑠹ְb, qa゙्𑠹ְb);
+Test_N(qa゙𑠹्ְb, qa゙𑠹्ְb, qa゙𑠹्ְb, qa゙𑠹्ְb, qa゙𑠹्ְb);
+Test_N(qa𖿰़𑠺゙b, qa𖿰़𑠺゙b, qa𖿰़𑠺゙b, qa𖿰़𑠺゙b, qa𖿰़𑠺゙b);
+Test_N(qa𖿰𑠺़゙b, qa𖿰𑠺़゙b, qa𖿰𑠺़゙b, qa𖿰𑠺़゙b, qa𖿰𑠺़゙b);
+Test_N(qa゙्𑤽ְb, qa゙्𑤽ְb, qa゙्𑤽ְb, qa゙्𑤽ְb, qa゙्𑤽ְb);
+Test_N(qa゙𑤽्ְb, qa゙𑤽्ְb, qa゙𑤽्ְb, qa゙𑤽्ְb, qa゙𑤽्ְb);
+Test_N(qa゙्𑤾ְb, qa゙्𑤾ְb, qa゙्𑤾ְb, qa゙्𑤾ְb, qa゙्𑤾ְb);
+Test_N(qa゙𑤾्ְb, qa゙𑤾्ְb, qa゙𑤾्ְb, qa゙𑤾्ְb, qa゙𑤾्ְb);
+Test_N(qa𖿰़𑥃゙b, qa𖿰़𑥃゙b, qa𖿰़𑥃゙b, qa𖿰़𑥃゙b, qa𖿰़𑥃゙b);
+Test_N(qa𖿰𑥃़゙b, qa𖿰𑥃़゙b, qa𖿰𑥃़゙b, qa𖿰𑥃़゙b, qa𖿰𑥃़゙b);
+Test_N(qa゙्𑧠ְb, qa゙्𑧠ְb, qa゙्𑧠ְb, qa゙्𑧠ְb, qa゙्𑧠ְb);
+Test_N(qa゙𑧠्ְb, qa゙𑧠्ְb, qa゙𑧠्ְb, qa゙𑧠्ְb, qa゙𑧠्ְb);
+Test_N(qa゙्𑨴ְb, qa゙्𑨴ְb, qa゙्𑨴ְb, qa゙्𑨴ְb, qa゙्𑨴ְb);
+Test_N(qa゙𑨴्ְb, qa゙𑨴्ְb, qa゙𑨴्ְb, qa゙𑨴्ְb, qa゙𑨴्ְb);
+Test_N(qa゙्𑩇ְb, qa゙्𑩇ְb, qa゙्𑩇ְb, qa゙्𑩇ְb, qa゙्𑩇ְb);
+Test_N(qa゙𑩇्ְb, qa゙𑩇्ְb, qa゙𑩇्ְb, qa゙𑩇्ְb, qa゙𑩇्ְb);
+Test_N(qa゙्𑪙ְb, qa゙्𑪙ְb, qa゙्𑪙ְb, qa゙्𑪙ְb, qa゙्𑪙ְb);
+Test_N(qa゙𑪙्ְb, qa゙𑪙्ְb, qa゙𑪙्ְb, qa゙𑪙्ְb, qa゙𑪙्ְb);
+Test_N(qa゙्𑰿ְb, qa゙्𑰿ְb, qa゙्𑰿ְb, qa゙्𑰿ְb, qa゙्𑰿ְb);
+Test_N(qa゙𑰿्ְb, qa゙𑰿्ְb, qa゙𑰿्ְb, qa゙𑰿्ְb, qa゙𑰿्ְb);
+Test_N(qa𖿰़𑵂゙b, qa𖿰़𑵂゙b, qa𖿰़𑵂゙b, qa𖿰़𑵂゙b, qa𖿰़𑵂゙b);
+Test_N(qa𖿰𑵂़゙b, qa𖿰𑵂़゙b, qa𖿰𑵂़゙b, qa𖿰𑵂़゙b, qa𖿰𑵂़゙b);
+Test_N(qa゙्𑵄ְb, qa゙्𑵄ְb, qa゙्𑵄ְb, qa゙्𑵄ְb, qa゙्𑵄ְb);
+Test_N(qa゙𑵄्ְb, qa゙𑵄्ְb, qa゙𑵄्ְb, qa゙𑵄्ְb, qa゙𑵄्ְb);
+Test_N(qa゙्𑵅ְb, qa゙्𑵅ְb, qa゙्𑵅ְb, qa゙्𑵅ְb, qa゙्𑵅ְb);
+Test_N(qa゙𑵅्ְb, qa゙𑵅्ְb, qa゙𑵅्ְb, qa゙𑵅्ְb, qa゙𑵅्ְb);
+Test_N(qa゙्𑶗ְb, qa゙्𑶗ְb, qa゙्𑶗ְb, qa゙्𑶗ְb, qa゙्𑶗ְb);
+Test_N(qa゙𑶗्ְb, qa゙𑶗्ְb, qa゙𑶗्ְb, qa゙𑶗्ְb, qa゙𑶗्ְb);
+Test_N(qa゙्𑽁ְb, qa゙्𑽁ְb, qa゙्𑽁ְb, qa゙्𑽁ְb, qa゙्𑽁ְb);
+Test_N(qa゙𑽁्ְb, qa゙𑽁्ְb, qa゙𑽁्ְb, qa゙𑽁्ְb, qa゙𑽁्ְb);
+Test_N(qa゙्𑽂ְb, qa゙्𑽂ְb, qa゙्𑽂ְb, qa゙्𑽂ְb, qa゙्𑽂ְb);
+Test_N(qa゙𑽂्ְb, qa゙𑽂्ְb, qa゙𑽂्ְb, qa゙𑽂्ְb, qa゙𑽂्ְb);
+Test_N(qa̴𖫰𖿰b, qa̴𖫰𖿰b, qa̴𖫰𖿰b, qa̴𖫰𖿰b, qa̴𖫰𖿰b);
+Test_N(qa𖫰̴𖿰b, qa𖫰̴𖿰b, qa𖫰̴𖿰b, qa𖫰̴𖿰b, qa𖫰̴𖿰b);
+Test_N(qa̴𖫱𖿰b, qa̴𖫱𖿰b, qa̴𖫱𖿰b, qa̴𖫱𖿰b, qa̴𖫱𖿰b);
+Test_N(qa𖫱̴𖿰b, qa𖫱̴𖿰b, qa𖫱̴𖿰b, qa𖫱̴𖿰b, qa𖫱̴𖿰b);
+Test_N(qa̴𖫲𖿰b, qa̴𖫲𖿰b, qa̴𖫲𖿰b, qa̴𖫲𖿰b, qa̴𖫲𖿰b);
+Test_N(qa𖫲̴𖿰b, qa𖫲̴𖿰b, qa𖫲̴𖿰b, qa𖫲̴𖿰b, qa𖫲̴𖿰b);
+Test_N(qa̴𖫳𖿰b, qa̴𖫳𖿰b, qa̴𖫳𖿰b, qa̴𖫳𖿰b, qa̴𖫳𖿰b);
+Test_N(qa𖫳̴𖿰b, qa𖫳̴𖿰b, qa𖫳̴𖿰b, qa𖫳̴𖿰b, qa𖫳̴𖿰b);
+Test_N(qa̴𖫴𖿰b, qa̴𖫴𖿰b, qa̴𖫴𖿰b, qa̴𖫴𖿰b, qa̴𖫴𖿰b);
+Test_N(qa𖫴̴𖿰b, qa𖫴̴𖿰b, qa𖫴̴𖿰b, qa𖫴̴𖿰b, qa𖫴̴𖿰b);
+Test_N(qà֮𖬰̕b, qà֮𖬰̕b, qà֮𖬰̕b, qà֮𖬰̕b, qà֮𖬰̕b);
+Test_N(qa֮𖬰̀̕b, qa֮𖬰̀̕b, qa֮𖬰̀̕b, qa֮𖬰̀̕b, qa֮𖬰̀̕b);
+Test_N(qà֮𖬱̕b, qà֮𖬱̕b, qà֮𖬱̕b, qà֮𖬱̕b, qà֮𖬱̕b);
+Test_N(qa֮𖬱̀̕b, qa֮𖬱̀̕b, qa֮𖬱̀̕b, qa֮𖬱̀̕b, qa֮𖬱̀̕b);
+Test_N(qà֮𖬲̕b, qà֮𖬲̕b, qà֮𖬲̕b, qà֮𖬲̕b, qà֮𖬲̕b);
+Test_N(qa֮𖬲̀̕b, qa֮𖬲̀̕b, qa֮𖬲̀̕b, qa֮𖬲̀̕b, qa֮𖬲̀̕b);
+Test_N(qà֮𖬳̕b, qà֮𖬳̕b, qà֮𖬳̕b, qà֮𖬳̕b, qà֮𖬳̕b);
+Test_N(qa֮𖬳̀̕b, qa֮𖬳̀̕b, qa֮𖬳̀̕b, qa֮𖬳̀̕b, qa֮𖬳̀̕b);
+Test_N(qà֮𖬴̕b, qà֮𖬴̕b, qà֮𖬴̕b, qà֮𖬴̕b, qà֮𖬴̕b);
+Test_N(qa֮𖬴̀̕b, qa֮𖬴̀̕b, qa֮𖬴̀̕b, qa֮𖬴̀̕b, qa֮𖬴̀̕b);
+Test_N(qà֮𖬵̕b, qà֮𖬵̕b, qà֮𖬵̕b, qà֮𖬵̕b, qà֮𖬵̕b);
+Test_N(qa֮𖬵̀̕b, qa֮𖬵̀̕b, qa֮𖬵̀̕b, qa֮𖬵̀̕b, qa֮𖬵̀̕b);
+Test_N(qà֮𖬶̕b, qà֮𖬶̕b, qà֮𖬶̕b, qà֮𖬶̕b, qà֮𖬶̕b);
+Test_N(qa֮𖬶̀̕b, qa֮𖬶̀̕b, qa֮𖬶̀̕b, qa֮𖬶̀̕b, qa֮𖬶̀̕b);
+Test_N(qa̴𖿰𖿰़b, qa̴𖿰𖿰़b, qa̴𖿰𖿰़b, qa̴𖿰𖿰़b, qa̴𖿰𖿰़b);
+Test_N(qa̴𖿰𖿰़b, qa̴𖿰𖿰़b, qa̴𖿰𖿰़b, qa̴𖿰𖿰़b, qa̴𖿰𖿰़b);
+Test_N(qa̴𖿰𖿱़b, qa̴𖿰𖿱़b, qa̴𖿰𖿱़b, qa̴𖿰𖿱़b, qa̴𖿰𖿱़b);
+Test_N(qa̴𖿱𖿰़b, qa̴𖿱𖿰़b, qa̴𖿱𖿰़b, qa̴𖿱𖿰़b, qa̴𖿱𖿰़b);
+Test_N(qa̴𛲞𖿰b, qa̴𛲞𖿰b, qa̴𛲞𖿰b, qa̴𛲞𖿰b, qa̴𛲞𖿰b);
+Test_N(qa𛲞̴𖿰b, qa𛲞̴𖿰b, qa𛲞̴𖿰b, qa𛲞̴𖿰b, qa𛲞̴𖿰b);
+Test_N(qa᷎̛𝅥᷺b, qa᷎̛𝅥᷺b, qa᷎̛𝅥᷺b, qa᷎̛𝅥᷺b, qa᷎̛𝅥᷺b);
+Test_N(qa᷎𝅥̛᷺b, qa᷎𝅥̛᷺b, qa᷎𝅥̛᷺b, qa᷎𝅥̛᷺b, qa᷎𝅥̛᷺b);
+Test_N(qa᷎̛𝅦᷺b, qa᷎̛𝅦᷺b, qa᷎̛𝅦᷺b, qa᷎̛𝅦᷺b, qa᷎̛𝅦᷺b);
+Test_N(qa᷎𝅦̛᷺b, qa᷎𝅦̛᷺b, qa᷎𝅦̛᷺b, qa᷎𝅦̛᷺b, qa᷎𝅦̛᷺b);
+Test_N(qa̴𝅧𖿰b, qa̴𝅧𖿰b, qa̴𝅧𖿰b, qa̴𝅧𖿰b, qa̴𝅧𖿰b);
+Test_N(qa𝅧̴𖿰b, qa𝅧̴𖿰b, qa𝅧̴𖿰b, qa𝅧̴𖿰b, qa𝅧̴𖿰b);
+Test_N(qa̴𝅨𖿰b, qa̴𝅨𖿰b, qa̴𝅨𖿰b, qa̴𝅨𖿰b, qa̴𝅨𖿰b);
+Test_N(qa𝅨̴𖿰b, qa𝅨̴𖿰b, qa𝅨̴𖿰b, qa𝅨̴𖿰b, qa𝅨̴𖿰b);
+Test_N(qa̴𝅩𖿰b, qa̴𝅩𖿰b, qa̴𝅩𖿰b, qa̴𝅩𖿰b, qa̴𝅩𖿰b);
+Test_N(qa𝅩̴𖿰b, qa𝅩̴𖿰b, qa𝅩̴𖿰b, qa𝅩̴𖿰b, qa𝅩̴𖿰b);
+Test_N(qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b);
+Test_N(qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b, qa〮𝅭𝅭֮b);
+Test_N(qa᷎̛𝅮᷺b, qa᷎̛𝅮᷺b, qa᷎̛𝅮᷺b, qa᷎̛𝅮᷺b, qa᷎̛𝅮᷺b);
+Test_N(qa᷎𝅮̛᷺b, qa᷎𝅮̛᷺b, qa᷎𝅮̛᷺b, qa᷎𝅮̛᷺b, qa᷎𝅮̛᷺b);
+Test_N(qa᷎̛𝅯᷺b, qa᷎̛𝅯᷺b, qa᷎̛𝅯᷺b, qa᷎̛𝅯᷺b, qa᷎̛𝅯᷺b);
+Test_N(qa᷎𝅯̛᷺b, qa᷎𝅯̛᷺b, qa᷎𝅯̛᷺b, qa᷎𝅯̛᷺b, qa᷎𝅯̛᷺b);
+Test_N(qa᷎̛𝅰᷺b, qa᷎̛𝅰᷺b, qa᷎̛𝅰᷺b, qa᷎̛𝅰᷺b, qa᷎̛𝅰᷺b);
+Test_N(qa᷎𝅰̛᷺b, qa᷎𝅰̛᷺b, qa᷎𝅰̛᷺b, qa᷎𝅰̛᷺b, qa᷎𝅰̛᷺b);
+Test_N(qa᷎̛𝅱᷺b, qa᷎̛𝅱᷺b, qa᷎̛𝅱᷺b, qa᷎̛𝅱᷺b, qa᷎̛𝅱᷺b);
+Test_N(qa᷎𝅱̛᷺b, qa᷎𝅱̛᷺b, qa᷎𝅱̛᷺b, qa᷎𝅱̛᷺b, qa᷎𝅱̛᷺b);
+Test_N(qa᷎̛𝅲᷺b, qa᷎̛𝅲᷺b, qa᷎̛𝅲᷺b, qa᷎̛𝅲᷺b, qa᷎̛𝅲᷺b);
+Test_N(qa᷎𝅲̛᷺b, qa᷎𝅲̛᷺b, qa᷎𝅲̛᷺b, qa᷎𝅲̛᷺b, qa᷎𝅲̛᷺b);
+Test_N(qa᷺̖𝅻֚b, qa᷺̖𝅻֚b, qa᷺̖𝅻֚b, qa᷺̖𝅻֚b, qa᷺̖𝅻֚b);
+Test_N(qa᷺𝅻̖֚b, qa᷺𝅻̖֚b, qa᷺𝅻̖֚b, qa᷺𝅻̖֚b, qa᷺𝅻̖֚b);
+Test_N(qa᷺̖𝅼֚b, qa᷺̖𝅼֚b, qa᷺̖𝅼֚b, qa᷺̖𝅼֚b, qa᷺̖𝅼֚b);
+Test_N(qa᷺𝅼̖֚b, qa᷺𝅼̖֚b, qa᷺𝅼̖֚b, qa᷺𝅼̖֚b, qa᷺𝅼̖֚b);
+Test_N(qa᷺̖𝅽֚b, qa᷺̖𝅽֚b, qa᷺̖𝅽֚b, qa᷺̖𝅽֚b, qa᷺̖𝅽֚b);
+Test_N(qa᷺𝅽̖֚b, qa᷺𝅽̖֚b, qa᷺𝅽̖֚b, qa᷺𝅽̖֚b, qa᷺𝅽̖֚b);
+Test_N(qa᷺̖𝅾֚b, qa᷺̖𝅾֚b, qa᷺̖𝅾֚b, qa᷺̖𝅾֚b, qa᷺̖𝅾֚b);
+Test_N(qa᷺𝅾̖֚b, qa᷺𝅾̖֚b, qa᷺𝅾̖֚b, qa᷺𝅾̖֚b, qa᷺𝅾̖֚b);
+Test_N(qa᷺̖𝅿֚b, qa᷺̖𝅿֚b, qa᷺̖𝅿֚b, qa᷺̖𝅿֚b, qa᷺̖𝅿֚b);
+Test_N(qa᷺𝅿̖֚b, qa᷺𝅿̖֚b, qa᷺𝅿̖֚b, qa᷺𝅿̖֚b, qa᷺𝅿̖֚b);
+Test_N(qa᷺̖𝆀֚b, qa᷺̖𝆀֚b, qa᷺̖𝆀֚b, qa᷺̖𝆀֚b, qa᷺̖𝆀֚b);
+Test_N(qa᷺𝆀̖֚b, qa᷺𝆀̖֚b, qa᷺𝆀̖֚b, qa᷺𝆀̖֚b, qa᷺𝆀̖֚b);
+Test_N(qa᷺̖𝆁֚b, qa᷺̖𝆁֚b, qa᷺̖𝆁֚b, qa᷺̖𝆁֚b, qa᷺̖𝆁֚b);
+Test_N(qa᷺𝆁̖֚b, qa᷺𝆁̖֚b, qa᷺𝆁̖֚b, qa᷺𝆁̖֚b, qa᷺𝆁̖֚b);
+Test_N(qa᷺̖𝆂֚b, qa᷺̖𝆂֚b, qa᷺̖𝆂֚b, qa᷺̖𝆂֚b, qa᷺̖𝆂֚b);
+Test_N(qa᷺𝆂̖֚b, qa᷺𝆂̖֚b, qa᷺𝆂̖֚b, qa᷺𝆂̖֚b, qa᷺𝆂̖֚b);
+Test_N(qà֮𝆅̕b, qà֮𝆅̕b, qà֮𝆅̕b, qà֮𝆅̕b, qà֮𝆅̕b);
+Test_N(qa֮𝆅̀̕b, qa֮𝆅̀̕b, qa֮𝆅̀̕b, qa֮𝆅̀̕b, qa֮𝆅̀̕b);
+Test_N(qà֮𝆆̕b, qà֮𝆆̕b, qà֮𝆆̕b, qà֮𝆆̕b, qà֮𝆆̕b);
+Test_N(qa֮𝆆̀̕b, qa֮𝆆̀̕b, qa֮𝆆̀̕b, qa֮𝆆̀̕b, qa֮𝆆̀̕b);
+Test_N(qà֮𝆇̕b, qà֮𝆇̕b, qà֮𝆇̕b, qà֮𝆇̕b, qà֮𝆇̕b);
+Test_N(qa֮𝆇̀̕b, qa֮𝆇̀̕b, qa֮𝆇̀̕b, qa֮𝆇̀̕b, qa֮𝆇̀̕b);
+Test_N(qà֮𝆈̕b, qà֮𝆈̕b, qà֮𝆈̕b, qà֮𝆈̕b, qà֮𝆈̕b);
+Test_N(qa֮𝆈̀̕b, qa֮𝆈̀̕b, qa֮𝆈̀̕b, qa֮𝆈̀̕b, qa֮𝆈̀̕b);
+Test_N(qà֮𝆉̕b, qà֮𝆉̕b, qà֮𝆉̕b, qà֮𝆉̕b, qà֮𝆉̕b);
+Test_N(qa֮𝆉̀̕b, qa֮𝆉̀̕b, qa֮𝆉̀̕b, qa֮𝆉̀̕b, qa֮𝆉̀̕b);
+Test_N(qa᷺̖𝆊֚b, qa᷺̖𝆊֚b, qa᷺̖𝆊֚b, qa᷺̖𝆊֚b, qa᷺̖𝆊֚b);
+Test_N(qa᷺𝆊̖֚b, qa᷺𝆊̖֚b, qa᷺𝆊̖֚b, qa᷺𝆊̖֚b, qa᷺𝆊̖֚b);
+Test_N(qa᷺̖𝆋֚b, qa᷺̖𝆋֚b, qa᷺̖𝆋֚b, qa᷺̖𝆋֚b, qa᷺̖𝆋֚b);
+Test_N(qa᷺𝆋̖֚b, qa᷺𝆋̖֚b, qa᷺𝆋̖֚b, qa᷺𝆋̖֚b, qa᷺𝆋̖֚b);
+Test_N(qà֮𝆪̕b, qà֮𝆪̕b, qà֮𝆪̕b, qà֮𝆪̕b, qà֮𝆪̕b);
+Test_N(qa֮𝆪̀̕b, qa֮𝆪̀̕b, qa֮𝆪̀̕b, qa֮𝆪̀̕b, qa֮𝆪̀̕b);
+Test_N(qà֮𝆫̕b, qà֮𝆫̕b, qà֮𝆫̕b, qà֮𝆫̕b, qà֮𝆫̕b);
+Test_N(qa֮𝆫̀̕b, qa֮𝆫̀̕b, qa֮𝆫̀̕b, qa֮𝆫̀̕b, qa֮𝆫̀̕b);
+Test_N(qà֮𝆬̕b, qà֮𝆬̕b, qà֮𝆬̕b, qà֮𝆬̕b, qà֮𝆬̕b);
+Test_N(qa֮𝆬̀̕b, qa֮𝆬̀̕b, qa֮𝆬̀̕b, qa֮𝆬̀̕b, qa֮𝆬̀̕b);
+Test_N(qà֮𝆭̕b, qà֮𝆭̕b, qà֮𝆭̕b, qà֮𝆭̕b, qà֮𝆭̕b);
+Test_N(qa֮𝆭̀̕b, qa֮𝆭̀̕b, qa֮𝆭̀̕b, qa֮𝆭̀̕b, qa֮𝆭̀̕b);
+Test_N(qà֮𝉂̕b, qà֮𝉂̕b, qà֮𝉂̕b, qà֮𝉂̕b, qà֮𝉂̕b);
+Test_N(qa֮𝉂̀̕b, qa֮𝉂̀̕b, qa֮𝉂̀̕b, qa֮𝉂̀̕b, qa֮𝉂̀̕b);
+Test_N(qà֮𝉃̕b, qà֮𝉃̕b, qà֮𝉃̕b, qà֮𝉃̕b, qà֮𝉃̕b);
+Test_N(qa֮𝉃̀̕b, qa֮𝉃̀̕b, qa֮𝉃̀̕b, qa֮𝉃̀̕b, qa֮𝉃̀̕b);
+Test_N(qà֮𝉄̕b, qà֮𝉄̕b, qà֮𝉄̕b, qà֮𝉄̕b, qà֮𝉄̕b);
+Test_N(qa֮𝉄̀̕b, qa֮𝉄̀̕b, qa֮𝉄̀̕b, qa֮𝉄̀̕b, qa֮𝉄̀̕b);
+Test_N(qà֮𞀀̕b, qà֮𞀀̕b, qà֮𞀀̕b, qà֮𞀀̕b, qà֮𞀀̕b);
+Test_N(qa֮𞀀̀̕b, qa֮𞀀̀̕b, qa֮𞀀̀̕b, qa֮𞀀̀̕b, qa֮𞀀̀̕b);
+Test_N(qà֮𞀁̕b, qà֮𞀁̕b, qà֮𞀁̕b, qà֮𞀁̕b, qà֮𞀁̕b);
+Test_N(qa֮𞀁̀̕b, qa֮𞀁̀̕b, qa֮𞀁̀̕b, qa֮𞀁̀̕b, qa֮𞀁̀̕b);
+Test_N(qà֮𞀂̕b, qà֮𞀂̕b, qà֮𞀂̕b, qà֮𞀂̕b, qà֮𞀂̕b);
+Test_N(qa֮𞀂̀̕b, qa֮𞀂̀̕b, qa֮𞀂̀̕b, qa֮𞀂̀̕b, qa֮𞀂̀̕b);
+Test_N(qà֮𞀃̕b, qà֮𞀃̕b, qà֮𞀃̕b, qà֮𞀃̕b, qà֮𞀃̕b);
+Test_N(qa֮𞀃̀̕b, qa֮𞀃̀̕b, qa֮𞀃̀̕b, qa֮𞀃̀̕b, qa֮𞀃̀̕b);
+Test_N(qà֮𞀄̕b, qà֮𞀄̕b, qà֮𞀄̕b, qà֮𞀄̕b, qà֮𞀄̕b);
+Test_N(qa֮𞀄̀̕b, qa֮𞀄̀̕b, qa֮𞀄̀̕b, qa֮𞀄̀̕b, qa֮𞀄̀̕b);
+Test_N(qà֮𞀅̕b, qà֮𞀅̕b, qà֮𞀅̕b, qà֮𞀅̕b, qà֮𞀅̕b);
+Test_N(qa֮𞀅̀̕b, qa֮𞀅̀̕b, qa֮𞀅̀̕b, qa֮𞀅̀̕b, qa֮𞀅̀̕b);
+Test_N(qà֮𞀆̕b, qà֮𞀆̕b, qà֮𞀆̕b, qà֮𞀆̕b, qà֮𞀆̕b);
+Test_N(qa֮𞀆̀̕b, qa֮𞀆̀̕b, qa֮𞀆̀̕b, qa֮𞀆̀̕b, qa֮𞀆̀̕b);
+Test_N(qà֮𞀈̕b, qà֮𞀈̕b, qà֮𞀈̕b, qà֮𞀈̕b, qà֮𞀈̕b);
+Test_N(qa֮𞀈̀̕b, qa֮𞀈̀̕b, qa֮𞀈̀̕b, qa֮𞀈̀̕b, qa֮𞀈̀̕b);
+Test_N(qà֮𞀉̕b, qà֮𞀉̕b, qà֮𞀉̕b, qà֮𞀉̕b, qà֮𞀉̕b);
+Test_N(qa֮𞀉̀̕b, qa֮𞀉̀̕b, qa֮𞀉̀̕b, qa֮𞀉̀̕b, qa֮𞀉̀̕b);
+Test_N(qà֮𞀊̕b, qà֮𞀊̕b, qà֮𞀊̕b, qà֮𞀊̕b, qà֮𞀊̕b);
+Test_N(qa֮𞀊̀̕b, qa֮𞀊̀̕b, qa֮𞀊̀̕b, qa֮𞀊̀̕b, qa֮𞀊̀̕b);
+Test_N(qà֮𞀋̕b, qà֮𞀋̕b, qà֮𞀋̕b, qà֮𞀋̕b, qà֮𞀋̕b);
+Test_N(qa֮𞀋̀̕b, qa֮𞀋̀̕b, qa֮𞀋̀̕b, qa֮𞀋̀̕b, qa֮𞀋̀̕b);
+Test_N(qà֮𞀌̕b, qà֮𞀌̕b, qà֮𞀌̕b, qà֮𞀌̕b, qà֮𞀌̕b);
+Test_N(qa֮𞀌̀̕b, qa֮𞀌̀̕b, qa֮𞀌̀̕b, qa֮𞀌̀̕b, qa֮𞀌̀̕b);
+Test_N(qà֮𞀍̕b, qà֮𞀍̕b, qà֮𞀍̕b, qà֮𞀍̕b, qà֮𞀍̕b);
+Test_N(qa֮𞀍̀̕b, qa֮𞀍̀̕b, qa֮𞀍̀̕b, qa֮𞀍̀̕b, qa֮𞀍̀̕b);
+Test_N(qà֮𞀎̕b, qà֮𞀎̕b, qà֮𞀎̕b, qà֮𞀎̕b, qà֮𞀎̕b);
+Test_N(qa֮𞀎̀̕b, qa֮𞀎̀̕b, qa֮𞀎̀̕b, qa֮𞀎̀̕b, qa֮𞀎̀̕b);
+Test_N(qà֮𞀏̕b, qà֮𞀏̕b, qà֮𞀏̕b, qà֮𞀏̕b, qà֮𞀏̕b);
+Test_N(qa֮𞀏̀̕b, qa֮𞀏̀̕b, qa֮𞀏̀̕b, qa֮𞀏̀̕b, qa֮𞀏̀̕b);
+Test_N(qà֮𞀐̕b, qà֮𞀐̕b, qà֮𞀐̕b, qà֮𞀐̕b, qà֮𞀐̕b);
+Test_N(qa֮𞀐̀̕b, qa֮𞀐̀̕b, qa֮𞀐̀̕b, qa֮𞀐̀̕b, qa֮𞀐̀̕b);
+Test_N(qà֮𞀑̕b, qà֮𞀑̕b, qà֮𞀑̕b, qà֮𞀑̕b, qà֮𞀑̕b);
+Test_N(qa֮𞀑̀̕b, qa֮𞀑̀̕b, qa֮𞀑̀̕b, qa֮𞀑̀̕b, qa֮𞀑̀̕b);
+Test_N(qà֮𞀒̕b, qà֮𞀒̕b, qà֮𞀒̕b, qà֮𞀒̕b, qà֮𞀒̕b);
+Test_N(qa֮𞀒̀̕b, qa֮𞀒̀̕b, qa֮𞀒̀̕b, qa֮𞀒̀̕b, qa֮𞀒̀̕b);
+Test_N(qà֮𞀓̕b, qà֮𞀓̕b, qà֮𞀓̕b, qà֮𞀓̕b, qà֮𞀓̕b);
+Test_N(qa֮𞀓̀̕b, qa֮𞀓̀̕b, qa֮𞀓̀̕b, qa֮𞀓̀̕b, qa֮𞀓̀̕b);
+Test_N(qà֮𞀔̕b, qà֮𞀔̕b, qà֮𞀔̕b, qà֮𞀔̕b, qà֮𞀔̕b);
+Test_N(qa֮𞀔̀̕b, qa֮𞀔̀̕b, qa֮𞀔̀̕b, qa֮𞀔̀̕b, qa֮𞀔̀̕b);
+Test_N(qà֮𞀕̕b, qà֮𞀕̕b, qà֮𞀕̕b, qà֮𞀕̕b, qà֮𞀕̕b);
+Test_N(qa֮𞀕̀̕b, qa֮𞀕̀̕b, qa֮𞀕̀̕b, qa֮𞀕̀̕b, qa֮𞀕̀̕b);
+Test_N(qà֮𞀖̕b, qà֮𞀖̕b, qà֮𞀖̕b, qà֮𞀖̕b, qà֮𞀖̕b);
+Test_N(qa֮𞀖̀̕b, qa֮𞀖̀̕b, qa֮𞀖̀̕b, qa֮𞀖̀̕b, qa֮𞀖̀̕b);
+Test_N(qà֮𞀗̕b, qà֮𞀗̕b, qà֮𞀗̕b, qà֮𞀗̕b, qà֮𞀗̕b);
+Test_N(qa֮𞀗̀̕b, qa֮𞀗̀̕b, qa֮𞀗̀̕b, qa֮𞀗̀̕b, qa֮𞀗̀̕b);
+Test_N(qà֮𞀘̕b, qà֮𞀘̕b, qà֮𞀘̕b, qà֮𞀘̕b, qà֮𞀘̕b);
+Test_N(qa֮𞀘̀̕b, qa֮𞀘̀̕b, qa֮𞀘̀̕b, qa֮𞀘̀̕b, qa֮𞀘̀̕b);
+Test_N(qà֮𞀛̕b, qà֮𞀛̕b, qà֮𞀛̕b, qà֮𞀛̕b, qà֮𞀛̕b);
+Test_N(qa֮𞀛̀̕b, qa֮𞀛̀̕b, qa֮𞀛̀̕b, qa֮𞀛̀̕b, qa֮𞀛̀̕b);
+Test_N(qà֮𞀜̕b, qà֮𞀜̕b, qà֮𞀜̕b, qà֮𞀜̕b, qà֮𞀜̕b);
+Test_N(qa֮𞀜̀̕b, qa֮𞀜̀̕b, qa֮𞀜̀̕b, qa֮𞀜̀̕b, qa֮𞀜̀̕b);
+Test_N(qà֮𞀝̕b, qà֮𞀝̕b, qà֮𞀝̕b, qà֮𞀝̕b, qà֮𞀝̕b);
+Test_N(qa֮𞀝̀̕b, qa֮𞀝̀̕b, qa֮𞀝̀̕b, qa֮𞀝̀̕b, qa֮𞀝̀̕b);
+Test_N(qà֮𞀞̕b, qà֮𞀞̕b, qà֮𞀞̕b, qà֮𞀞̕b, qà֮𞀞̕b);
+Test_N(qa֮𞀞̀̕b, qa֮𞀞̀̕b, qa֮𞀞̀̕b, qa֮𞀞̀̕b, qa֮𞀞̀̕b);
+Test_N(qà֮𞀟̕b, qà֮𞀟̕b, qà֮𞀟̕b, qà֮𞀟̕b, qà֮𞀟̕b);
+Test_N(qa֮𞀟̀̕b, qa֮𞀟̀̕b, qa֮𞀟̀̕b, qa֮𞀟̀̕b, qa֮𞀟̀̕b);
+Test_N(qà֮𞀠̕b, qà֮𞀠̕b, qà֮𞀠̕b, qà֮𞀠̕b, qà֮𞀠̕b);
+Test_N(qa֮𞀠̀̕b, qa֮𞀠̀̕b, qa֮𞀠̀̕b, qa֮𞀠̀̕b, qa֮𞀠̀̕b);
+Test_N(qà֮𞀡̕b, qà֮𞀡̕b, qà֮𞀡̕b, qà֮𞀡̕b, qà֮𞀡̕b);
+Test_N(qa֮𞀡̀̕b, qa֮𞀡̀̕b, qa֮𞀡̀̕b, qa֮𞀡̀̕b, qa֮𞀡̀̕b);
+Test_N(qà֮𞀣̕b, qà֮𞀣̕b, qà֮𞀣̕b, qà֮𞀣̕b, qà֮𞀣̕b);
+Test_N(qa֮𞀣̀̕b, qa֮𞀣̀̕b, qa֮𞀣̀̕b, qa֮𞀣̀̕b, qa֮𞀣̀̕b);
+Test_N(qà֮𞀤̕b, qà֮𞀤̕b, qà֮𞀤̕b, qà֮𞀤̕b, qà֮𞀤̕b);
+Test_N(qa֮𞀤̀̕b, qa֮𞀤̀̕b, qa֮𞀤̀̕b, qa֮𞀤̀̕b, qa֮𞀤̀̕b);
+Test_N(qà֮𞀦̕b, qà֮𞀦̕b, qà֮𞀦̕b, qà֮𞀦̕b, qà֮𞀦̕b);
+Test_N(qa֮𞀦̀̕b, qa֮𞀦̀̕b, qa֮𞀦̀̕b, qa֮𞀦̀̕b, qa֮𞀦̀̕b);
+Test_N(qà֮𞀧̕b, qà֮𞀧̕b, qà֮𞀧̕b, qà֮𞀧̕b, qà֮𞀧̕b);
+Test_N(qa֮𞀧̀̕b, qa֮𞀧̀̕b, qa֮𞀧̀̕b, qa֮𞀧̀̕b, qa֮𞀧̀̕b);
+Test_N(qà֮𞀨̕b, qà֮𞀨̕b, qà֮𞀨̕b, qà֮𞀨̕b, qà֮𞀨̕b);
+Test_N(qa֮𞀨̀̕b, qa֮𞀨̀̕b, qa֮𞀨̀̕b, qa֮𞀨̀̕b, qa֮𞀨̀̕b);
+Test_N(qà֮𞀩̕b, qà֮𞀩̕b, qà֮𞀩̕b, qà֮𞀩̕b, qà֮𞀩̕b);
+Test_N(qa֮𞀩̀̕b, qa֮𞀩̀̕b, qa֮𞀩̀̕b, qa֮𞀩̀̕b, qa֮𞀩̀̕b);
+Test_N(qà֮𞀪̕b, qà֮𞀪̕b, qà֮𞀪̕b, qà֮𞀪̕b, qà֮𞀪̕b);
+Test_N(qa֮𞀪̀̕b, qa֮𞀪̀̕b, qa֮𞀪̀̕b, qa֮𞀪̀̕b, qa֮𞀪̀̕b);
+Test_N(qà֮𞂏̕b, qà֮𞂏̕b, qà֮𞂏̕b, qà֮𞂏̕b, qà֮𞂏̕b);
+Test_N(qa֮𞂏̀̕b, qa֮𞂏̀̕b, qa֮𞂏̀̕b, qa֮𞂏̀̕b, qa֮𞂏̀̕b);
+Test_N(qà֮𞄰̕b, qà֮𞄰̕b, qà֮𞄰̕b, qà֮𞄰̕b, qà֮𞄰̕b);
+Test_N(qa֮𞄰̀̕b, qa֮𞄰̀̕b, qa֮𞄰̀̕b, qa֮𞄰̀̕b, qa֮𞄰̀̕b);
+Test_N(qà֮𞄱̕b, qà֮𞄱̕b, qà֮𞄱̕b, qà֮𞄱̕b, qà֮𞄱̕b);
+Test_N(qa֮𞄱̀̕b, qa֮𞄱̀̕b, qa֮𞄱̀̕b, qa֮𞄱̀̕b, qa֮𞄱̀̕b);
+Test_N(qà֮𞄲̕b, qà֮𞄲̕b, qà֮𞄲̕b, qà֮𞄲̕b, qà֮𞄲̕b);
+Test_N(qa֮𞄲̀̕b, qa֮𞄲̀̕b, qa֮𞄲̀̕b, qa֮𞄲̀̕b, qa֮𞄲̀̕b);
+Test_N(qà֮𞄳̕b, qà֮𞄳̕b, qà֮𞄳̕b, qà֮𞄳̕b, qà֮𞄳̕b);
+Test_N(qa֮𞄳̀̕b, qa֮𞄳̀̕b, qa֮𞄳̀̕b, qa֮𞄳̀̕b, qa֮𞄳̀̕b);
+Test_N(qà֮𞄴̕b, qà֮𞄴̕b, qà֮𞄴̕b, qà֮𞄴̕b, qà֮𞄴̕b);
+Test_N(qa֮𞄴̀̕b, qa֮𞄴̀̕b, qa֮𞄴̀̕b, qa֮𞄴̀̕b, qa֮𞄴̀̕b);
+Test_N(qà֮𞄵̕b, qà֮𞄵̕b, qà֮𞄵̕b, qà֮𞄵̕b, qà֮𞄵̕b);
+Test_N(qa֮𞄵̀̕b, qa֮𞄵̀̕b, qa֮𞄵̀̕b, qa֮𞄵̀̕b, qa֮𞄵̀̕b);
+Test_N(qà֮𞄶̕b, qà֮𞄶̕b, qà֮𞄶̕b, qà֮𞄶̕b, qà֮𞄶̕b);
+Test_N(qa֮𞄶̀̕b, qa֮𞄶̀̕b, qa֮𞄶̀̕b, qa֮𞄶̀̕b, qa֮𞄶̀̕b);
+Test_N(qà֮𞊮̕b, qà֮𞊮̕b, qà֮𞊮̕b, qà֮𞊮̕b, qà֮𞊮̕b);
+Test_N(qa֮𞊮̀̕b, qa֮𞊮̀̕b, qa֮𞊮̀̕b, qa֮𞊮̀̕b, qa֮𞊮̀̕b);
+Test_N(qà֮𞋬̕b, qà֮𞋬̕b, qà֮𞋬̕b, qà֮𞋬̕b, qà֮𞋬̕b);
+Test_N(qa֮𞋬̀̕b, qa֮𞋬̀̕b, qa֮𞋬̀̕b, qa֮𞋬̀̕b, qa֮𞋬̀̕b);
+Test_N(qà֮𞋭̕b, qà֮𞋭̕b, qà֮𞋭̕b, qà֮𞋭̕b, qà֮𞋭̕b);
+Test_N(qa֮𞋭̀̕b, qa֮𞋭̀̕b, qa֮𞋭̀̕b, qa֮𞋭̀̕b, qa֮𞋭̀̕b);
+Test_N(qà֮𞋮̕b, qà֮𞋮̕b, qà֮𞋮̕b, qà֮𞋮̕b, qà֮𞋮̕b);
+Test_N(qa֮𞋮̀̕b, qa֮𞋮̀̕b, qa֮𞋮̀̕b, qa֮𞋮̀̕b, qa֮𞋮̀̕b);
+Test_N(qà֮𞋯̕b, qà֮𞋯̕b, qà֮𞋯̕b, qà֮𞋯̕b, qà֮𞋯̕b);
+Test_N(qa֮𞋯̀̕b, qa֮𞋯̀̕b, qa֮𞋯̀̕b, qa֮𞋯̀̕b, qa֮𞋯̀̕b);
+Test_N(qà̕𞓬͜b, qà̕𞓬͜b, qà̕𞓬͜b, qà̕𞓬͜b, qà̕𞓬͜b);
+Test_N(qà𞓬̕͜b, qà𞓬̕͜b, qà𞓬̕͜b, qà𞓬̕͜b, qà𞓬̕͜b);
+Test_N(qà̕𞓭͜b, qà̕𞓭͜b, qà̕𞓭͜b, qà̕𞓭͜b, qà̕𞓭͜b);
+Test_N(qà𞓭̕͜b, qà𞓭̕͜b, qà𞓭̕͜b, qà𞓭̕͜b, qà𞓭̕͜b);
+Test_N(qa᷺̖𞓮֚b, qa᷺̖𞓮֚b, qa᷺̖𞓮֚b, qa᷺̖𞓮֚b, qa᷺̖𞓮֚b);
+Test_N(qa᷺𞓮̖֚b, qa᷺𞓮̖֚b, qa᷺𞓮̖֚b, qa᷺𞓮̖֚b, qa᷺𞓮̖֚b);
+Test_N(qà֮𞓯̕b, qà֮𞓯̕b, qà֮𞓯̕b, qà֮𞓯̕b, qà֮𞓯̕b);
+Test_N(qa֮𞓯̀̕b, qa֮𞓯̀̕b, qa֮𞓯̀̕b, qa֮𞓯̀̕b, qa֮𞓯̀̕b);
+Test_N(qa᷺̖𞣐֚b, qa᷺̖𞣐֚b, qa᷺̖𞣐֚b, qa᷺̖𞣐֚b, qa᷺̖𞣐֚b);
+Test_N(qa᷺𞣐̖֚b, qa᷺𞣐̖֚b, qa᷺𞣐̖֚b, qa᷺𞣐̖֚b, qa᷺𞣐̖֚b);
+Test_N(qa᷺̖𞣑֚b, qa᷺̖𞣑֚b, qa᷺̖𞣑֚b, qa᷺̖𞣑֚b, qa᷺̖𞣑֚b);
+Test_N(qa᷺𞣑̖֚b, qa᷺𞣑̖֚b, qa᷺𞣑̖֚b, qa᷺𞣑̖֚b, qa᷺𞣑̖֚b);
+Test_N(qa᷺̖𞣒֚b, qa᷺̖𞣒֚b, qa᷺̖𞣒֚b, qa᷺̖𞣒֚b, qa᷺̖𞣒֚b);
+Test_N(qa᷺𞣒̖֚b, qa᷺𞣒̖֚b, qa᷺𞣒̖֚b, qa᷺𞣒̖֚b, qa᷺𞣒̖֚b);
+Test_N(qa᷺̖𞣓֚b, qa᷺̖𞣓֚b, qa᷺̖𞣓֚b, qa᷺̖𞣓֚b, qa᷺̖𞣓֚b);
+Test_N(qa᷺𞣓̖֚b, qa᷺𞣓̖֚b, qa᷺𞣓̖֚b, qa᷺𞣓̖֚b, qa᷺𞣓̖֚b);
+Test_N(qa᷺̖𞣔֚b, qa᷺̖𞣔֚b, qa᷺̖𞣔֚b, qa᷺̖𞣔֚b, qa᷺̖𞣔֚b);
+Test_N(qa᷺𞣔̖֚b, qa᷺𞣔̖֚b, qa᷺𞣔̖֚b, qa᷺𞣔̖֚b, qa᷺𞣔̖֚b);
+Test_N(qa᷺̖𞣕֚b, qa᷺̖𞣕֚b, qa᷺̖𞣕֚b, qa᷺̖𞣕֚b, qa᷺̖𞣕֚b);
+Test_N(qa᷺𞣕̖֚b, qa᷺𞣕̖֚b, qa᷺𞣕̖֚b, qa᷺𞣕̖֚b, qa᷺𞣕̖֚b);
+Test_N(qa᷺̖𞣖֚b, qa᷺̖𞣖֚b, qa᷺̖𞣖֚b, qa᷺̖𞣖֚b, qa᷺̖𞣖֚b);
+Test_N(qa᷺𞣖̖֚b, qa᷺𞣖̖֚b, qa᷺𞣖̖֚b, qa᷺𞣖̖֚b, qa᷺𞣖̖֚b);
+Test_N(qà֮𞥄̕b, qà֮𞥄̕b, qà֮𞥄̕b, qà֮𞥄̕b, qà֮𞥄̕b);
+Test_N(qa֮𞥄̀̕b, qa֮𞥄̀̕b, qa֮𞥄̀̕b, qa֮𞥄̀̕b, qa֮𞥄̀̕b);
+Test_N(qà֮𞥅̕b, qà֮𞥅̕b, qà֮𞥅̕b, qà֮𞥅̕b, qà֮𞥅̕b);
+Test_N(qa֮𞥅̀̕b, qa֮𞥅̀̕b, qa֮𞥅̀̕b, qa֮𞥅̀̕b, qa֮𞥅̀̕b);
+Test_N(qà֮𞥆̕b, qà֮𞥆̕b, qà֮𞥆̕b, qà֮𞥆̕b, qà֮𞥆̕b);
+Test_N(qa֮𞥆̀̕b, qa֮𞥆̀̕b, qa֮𞥆̀̕b, qa֮𞥆̀̕b, qa֮𞥆̀̕b);
+Test_N(qà֮𞥇̕b, qà֮𞥇̕b, qà֮𞥇̕b, qà֮𞥇̕b, qà֮𞥇̕b);
+Test_N(qa֮𞥇̀̕b, qa֮𞥇̀̕b, qa֮𞥇̀̕b, qa֮𞥇̀̕b, qa֮𞥇̀̕b);
+Test_N(qà֮𞥈̕b, qà֮𞥈̕b, qà֮𞥈̕b, qà֮𞥈̕b, qà֮𞥈̕b);
+Test_N(qa֮𞥈̀̕b, qa֮𞥈̀̕b, qa֮𞥈̀̕b, qa֮𞥈̀̕b, qa֮𞥈̀̕b);
+Test_N(qà֮𞥉̕b, qà֮𞥉̕b, qà֮𞥉̕b, qà֮𞥉̕b, qà֮𞥉̕b);
+Test_N(qa֮𞥉̀̕b, qa֮𞥉̀̕b, qa֮𞥉̀̕b, qa֮𞥉̀̕b, qa֮𞥉̀̕b);
+Test_N(qa𖿰़𞥊゙b, qa𖿰़𞥊゙b, qa𖿰़𞥊゙b, qa𖿰़𞥊゙b, qa𖿰़𞥊゙b);
+Test_N(qa𖿰𞥊़゙b, qa𖿰𞥊़゙b, qa𖿰𞥊़゙b, qa𖿰𞥊़゙b, qa𖿰𞥊़゙b);
+Test_N(qে̴া, qে̴া, qে̴া, qে̴া, qে̴া);
+Test_N(qে̴ৗ, qে̴ৗ, qে̴ৗ, qে̴ৗ, qে̴ৗ);
+Test_N(qେ̴ା, qେ̴ା, qେ̴ା, qେ̴ା, qେ̴ା);
+Test_N(qେ̴ୖ, qେ̴ୖ, qେ̴ୖ, qେ̴ୖ, qେ̴ୖ);
+Test_N(qେ̴ୗ, qେ̴ୗ, qେ̴ୗ, qେ̴ୗ, qେ̴ୗ);
+Test_N(qஒ̴ௗ, qஒ̴ௗ, qஒ̴ௗ, qஒ̴ௗ, qஒ̴ௗ);
+Test_N(qெ̴ா, qெ̴ா, qெ̴ா, qெ̴ா, qெ̴ா);
+Test_N(qெ̴ௗ, qெ̴ௗ, qெ̴ௗ, qெ̴ௗ, qெ̴ௗ);
+Test_N(qே̴ா, qே̴ா, qே̴ா, qே̴ா, qே̴ா);
+Test_N(qಿ̴ೕ, qಿ̴ೕ, qಿ̴ೕ, qಿ̴ೕ, qಿ̴ೕ);
+Test_N(qೆ̴ೂ, qೆ̴ೂ, qೆ̴ೂ, qೆ̴ೂ, qೆ̴ೂ);
+Test_N(qೆ̴ೕ, qೆ̴ೕ, qೆ̴ೕ, qೆ̴ೕ, qೆ̴ೕ);
+Test_N(qೆ̴ೖ, qೆ̴ೖ, qೆ̴ೖ, qೆ̴ೖ, qೆ̴ೖ);
+Test_N(qೊ̴ೕ, qೊ̴ೕ, qೊ̴ೕ, qೊ̴ೕ, qೊ̴ೕ);
+Test_N(qെ̴ാ, qെ̴ാ, qെ̴ാ, qെ̴ാ, qെ̴ാ);
+Test_N(qെ̴ൗ, qെ̴ൗ, qെ̴ൗ, qെ̴ൗ, qെ̴ൗ);
+Test_N(qേ̴ാ, qേ̴ാ, qേ̴ാ, qേ̴ാ, qേ̴ാ);
+Test_N(qෙ̴ා, qෙ̴ා, qෙ̴ා, qෙ̴ා, qෙ̴ා);
+Test_N(qෙ̴ෟ, qෙ̴ෟ, qෙ̴ෟ, qෙ̴ෟ, qෙ̴ෟ);
+Test_N(qཀ̴ྵ, qཀ̴ྵ, qཀ̴ྵ, qཀ̴ྵ, qཀ̴ྵ);
+Test_N(qག̴ྷ, qག̴ྷ, qག̴ྷ, qག̴ྷ, qག̴ྷ);
+Test_N(qཌ̴ྷ, qཌ̴ྷ, qཌ̴ྷ, qཌ̴ྷ, qཌ̴ྷ);
+Test_N(qད̴ྷ, qད̴ྷ, qད̴ྷ, qད̴ྷ, qད̴ྷ);
+Test_N(qབ̴ྷ, qབ̴ྷ, qབ̴ྷ, qབ̴ྷ, qབ̴ྷ);
+Test_N(qཛ̴ྷ, qཛ̴ྷ, qཛ̴ྷ, qཛ̴ྷ, qཛ̴ྷ);
+Test_N(qྐ̴ྵ, qྐ̴ྵ, qྐ̴ྵ, qྐ̴ྵ, qྐ̴ྵ);
+Test_N(qྒ̴ྷ, qྒ̴ྷ, qྒ̴ྷ, qྒ̴ྷ, qྒ̴ྷ);
+Test_N(qྜ̴ྷ, qྜ̴ྷ, qྜ̴ྷ, qྜ̴ྷ, qྜ̴ྷ);
+Test_N(qྡ̴ྷ, qྡ̴ྷ, qྡ̴ྷ, qྡ̴ྷ, qྡ̴ྷ);
+Test_N(qྦ̴ྷ, qྦ̴ྷ, qྦ̴ྷ, qྦ̴ྷ, qྦ̴ྷ);
+Test_N(qྫ̴ྷ, qྫ̴ྷ, qྫ̴ྷ, qྫ̴ྷ, qྫ̴ྷ);
+Test_N(qဥ̴ီ, qဥ̴ီ, qဥ̴ီ, qဥ̴ီ, qဥ̴ီ);
+Test_N(qᄀ̴ᅡ, qᄀ̴ᅡ, qᄀ̴ᅡ, qᄀ̴ᅡ, qᄀ̴ᅡ);
+Test_N(qᄀ̴ᅮ, qᄀ̴ᅮ, qᄀ̴ᅮ, qᄀ̴ᅮ, qᄀ̴ᅮ);
+Test_N(qᄁ̴ᅦ, qᄁ̴ᅦ, qᄁ̴ᅦ, qᄁ̴ᅦ, qᄁ̴ᅦ);
+Test_N(qᄁ̴ᅳ, qᄁ̴ᅳ, qᄁ̴ᅳ, qᄁ̴ᅳ, qᄁ̴ᅳ);
+Test_N(qᄂ̴ᅫ, qᄂ̴ᅫ, qᄂ̴ᅫ, qᄂ̴ᅫ, qᄂ̴ᅫ);
+Test_N(qᄃ̴ᅣ, qᄃ̴ᅣ, qᄃ̴ᅣ, qᄃ̴ᅣ, qᄃ̴ᅣ);
+Test_N(qᄃ̴ᅰ, qᄃ̴ᅰ, qᄃ̴ᅰ, qᄃ̴ᅰ, qᄃ̴ᅰ);
+Test_N(qᄄ̴ᅨ, qᄄ̴ᅨ, qᄄ̴ᅨ, qᄄ̴ᅨ, qᄄ̴ᅨ);
+Test_N(qᄄ̴ᅵ, qᄄ̴ᅵ, qᄄ̴ᅵ, qᄄ̴ᅵ, qᄄ̴ᅵ);
+Test_N(qᄅ̴ᅭ, qᄅ̴ᅭ, qᄅ̴ᅭ, qᄅ̴ᅭ, qᄅ̴ᅭ);
+Test_N(qᄆ̴ᅥ, qᄆ̴ᅥ, qᄆ̴ᅥ, qᄆ̴ᅥ, qᄆ̴ᅥ);
+Test_N(qᄆ̴ᅲ, qᄆ̴ᅲ, qᄆ̴ᅲ, qᄆ̴ᅲ, qᄆ̴ᅲ);
+Test_N(qᄇ̴ᅪ, qᄇ̴ᅪ, qᄇ̴ᅪ, qᄇ̴ᅪ, qᄇ̴ᅪ);
+Test_N(qᄈ̴ᅢ, qᄈ̴ᅢ, qᄈ̴ᅢ, qᄈ̴ᅢ, qᄈ̴ᅢ);
+Test_N(qᄈ̴ᅯ, qᄈ̴ᅯ, qᄈ̴ᅯ, qᄈ̴ᅯ, qᄈ̴ᅯ);
+Test_N(qᄉ̴ᅧ, qᄉ̴ᅧ, qᄉ̴ᅧ, qᄉ̴ᅧ, qᄉ̴ᅧ);
+Test_N(qᄉ̴ᅴ, qᄉ̴ᅴ, qᄉ̴ᅴ, qᄉ̴ᅴ, qᄉ̴ᅴ);
+Test_N(qᄊ̴ᅬ, qᄊ̴ᅬ, qᄊ̴ᅬ, qᄊ̴ᅬ, qᄊ̴ᅬ);
+Test_N(qᄋ̴ᅤ, qᄋ̴ᅤ, qᄋ̴ᅤ, qᄋ̴ᅤ, qᄋ̴ᅤ);
+Test_N(qᄋ̴ᅱ, qᄋ̴ᅱ, qᄋ̴ᅱ, qᄋ̴ᅱ, qᄋ̴ᅱ);
+Test_N(qᄌ̴ᅩ, qᄌ̴ᅩ, qᄌ̴ᅩ, qᄌ̴ᅩ, qᄌ̴ᅩ);
+Test_N(qᄍ̴ᅡ, qᄍ̴ᅡ, qᄍ̴ᅡ, qᄍ̴ᅡ, qᄍ̴ᅡ);
+Test_N(qᄍ̴ᅮ, qᄍ̴ᅮ, qᄍ̴ᅮ, qᄍ̴ᅮ, qᄍ̴ᅮ);
+Test_N(qᄎ̴ᅦ, qᄎ̴ᅦ, qᄎ̴ᅦ, qᄎ̴ᅦ, qᄎ̴ᅦ);
+Test_N(qᄎ̴ᅳ, qᄎ̴ᅳ, qᄎ̴ᅳ, qᄎ̴ᅳ, qᄎ̴ᅳ);
+Test_N(qᄏ̴ᅫ, qᄏ̴ᅫ, qᄏ̴ᅫ, qᄏ̴ᅫ, qᄏ̴ᅫ);
+Test_N(qᄐ̴ᅣ, qᄐ̴ᅣ, qᄐ̴ᅣ, qᄐ̴ᅣ, qᄐ̴ᅣ);
+Test_N(qᄐ̴ᅰ, qᄐ̴ᅰ, qᄐ̴ᅰ, qᄐ̴ᅰ, qᄐ̴ᅰ);
+Test_N(qᄑ̴ᅨ, qᄑ̴ᅨ, qᄑ̴ᅨ, qᄑ̴ᅨ, qᄑ̴ᅨ);
+Test_N(qᄑ̴ᅵ, qᄑ̴ᅵ, qᄑ̴ᅵ, qᄑ̴ᅵ, qᄑ̴ᅵ);
+Test_N(qᄒ̴ᅭ, qᄒ̴ᅭ, qᄒ̴ᅭ, qᄒ̴ᅭ, qᄒ̴ᅭ);
+Test_N(qᬅ̴ᬵ, qᬅ̴ᬵ, qᬅ̴ᬵ, qᬅ̴ᬵ, qᬅ̴ᬵ);
+Test_N(qᬇ̴ᬵ, qᬇ̴ᬵ, qᬇ̴ᬵ, qᬇ̴ᬵ, qᬇ̴ᬵ);
+Test_N(qᬉ̴ᬵ, qᬉ̴ᬵ, qᬉ̴ᬵ, qᬉ̴ᬵ, qᬉ̴ᬵ);
+Test_N(qᬋ̴ᬵ, qᬋ̴ᬵ, qᬋ̴ᬵ, qᬋ̴ᬵ, qᬋ̴ᬵ);
+Test_N(qᬍ̴ᬵ, qᬍ̴ᬵ, qᬍ̴ᬵ, qᬍ̴ᬵ, qᬍ̴ᬵ);
+Test_N(qᬑ̴ᬵ, qᬑ̴ᬵ, qᬑ̴ᬵ, qᬑ̴ᬵ, qᬑ̴ᬵ);
+Test_N(qᬺ̴ᬵ, qᬺ̴ᬵ, qᬺ̴ᬵ, qᬺ̴ᬵ, qᬺ̴ᬵ);
+Test_N(qᬼ̴ᬵ, qᬼ̴ᬵ, qᬼ̴ᬵ, qᬼ̴ᬵ, qᬼ̴ᬵ);
+Test_N(qᬾ̴ᬵ, qᬾ̴ᬵ, qᬾ̴ᬵ, qᬾ̴ᬵ, qᬾ̴ᬵ);
+Test_N(qᬿ̴ᬵ, qᬿ̴ᬵ, qᬿ̴ᬵ, qᬿ̴ᬵ, qᬿ̴ᬵ);
+Test_N(qᭂ̴ᬵ, qᭂ̴ᬵ, qᭂ̴ᬵ, qᭂ̴ᬵ, qᭂ̴ᬵ);
+Test_N(q걔̴ᆮ, q걔̴ᆮ, q걔̴ᆮ, q걔̴ᆮ, q걔̴ᆮ);
+Test_N(q겨̴ᆵ, q겨̴ᆵ, q겨̴ᆵ, q겨̴ᆵ, q겨̴ᆵ);
+Test_N(q과̴ᆼ, q과̴ᆼ, q과̴ᆼ, q과̴ᆼ, q과̴ᆼ);
+Test_N(q귀̴ᆮ, q귀̴ᆮ, q귀̴ᆮ, q귀̴ᆮ, q귀̴ᆮ);
+Test_N(q긔̴ᆵ, q긔̴ᆵ, q긔̴ᆵ, q긔̴ᆵ, q긔̴ᆵ);
+Test_N(q깨̴ᆼ, q깨̴ᆼ, q깨̴ᆼ, q깨̴ᆼ, q깨̴ᆼ);
+Test_N(q꼬̴ᆮ, q꼬̴ᆮ, q꼬̴ᆮ, q꼬̴ᆮ, q꼬̴ᆮ);
+Test_N(q꾀̴ᆵ, q꾀̴ᆵ, q꾀̴ᆵ, q꾀̴ᆵ, q꾀̴ᆵ);
+Test_N(q꿔̴ᆼ, q꿔̴ᆼ, q꿔̴ᆼ, q꿔̴ᆼ, q꿔̴ᆼ);
+Test_N(q나̴ᆮ, q나̴ᆮ, q나̴ᆮ, q나̴ᆮ, q나̴ᆮ);
+Test_N(q냬̴ᆵ, q냬̴ᆵ, q냬̴ᆵ, q냬̴ᆵ, q냬̴ᆵ);
+Test_N(q녀̴ᆼ, q녀̴ᆼ, q녀̴ᆼ, q녀̴ᆼ, q녀̴ᆼ);
+Test_N(q누̴ᆮ, q누̴ᆮ, q누̴ᆮ, q누̴ᆮ, q누̴ᆮ);
+Test_N(q뉘̴ᆵ, q뉘̴ᆵ, q뉘̴ᆵ, q뉘̴ᆵ, q뉘̴ᆵ);
+Test_N(q늬̴ᆼ, q늬̴ᆼ, q늬̴ᆼ, q늬̴ᆼ, q늬̴ᆼ);
+Test_N(q데̴ᆮ, q데̴ᆮ, q데̴ᆮ, q데̴ᆮ, q데̴ᆮ);
+Test_N(q도̴ᆵ, q도̴ᆵ, q도̴ᆵ, q도̴ᆵ, q도̴ᆵ);
+Test_N(q되̴ᆼ, q되̴ᆼ, q되̴ᆼ, q되̴ᆼ, q되̴ᆼ);
+Test_N(q드̴ᆮ, q드̴ᆮ, q드̴ᆮ, q드̴ᆮ, q드̴ᆮ);
+Test_N(q따̴ᆵ, q따̴ᆵ, q따̴ᆵ, q따̴ᆵ, q따̴ᆵ);
+Test_N(q떄̴ᆼ, q떄̴ᆼ, q떄̴ᆼ, q떄̴ᆼ, q떄̴ᆼ);
+Test_N(q뙈̴ᆮ, q뙈̴ᆮ, q뙈̴ᆮ, q뙈̴ᆮ, q뙈̴ᆮ);
+Test_N(q뚜̴ᆵ, q뚜̴ᆵ, q뚜̴ᆵ, q뚜̴ᆵ, q뚜̴ᆵ);
+Test_N(q뛰̴ᆼ, q뛰̴ᆼ, q뛰̴ᆼ, q뛰̴ᆼ, q뛰̴ᆼ);
+Test_N(q랴̴ᆮ, q랴̴ᆮ, q랴̴ᆮ, q랴̴ᆮ, q랴̴ᆮ);
+Test_N(q레̴ᆵ, q레̴ᆵ, q레̴ᆵ, q레̴ᆵ, q레̴ᆵ);
+Test_N(q로̴ᆼ, q로̴ᆼ, q로̴ᆼ, q로̴ᆼ, q로̴ᆼ);
+Test_N(q뤠̴ᆮ, q뤠̴ᆮ, q뤠̴ᆮ, q뤠̴ᆮ, q뤠̴ᆮ);
+Test_N(q르̴ᆵ, q르̴ᆵ, q르̴ᆵ, q르̴ᆵ, q르̴ᆵ);
+Test_N(q마̴ᆼ, q마̴ᆼ, q마̴ᆼ, q마̴ᆼ, q마̴ᆼ);
+Test_N(q몌̴ᆮ, q몌̴ᆮ, q몌̴ᆮ, q몌̴ᆮ, q몌̴ᆮ);
+Test_N(q뫠̴ᆵ, q뫠̴ᆵ, q뫠̴ᆵ, q뫠̴ᆵ, q뫠̴ᆵ);
+Test_N(q무̴ᆼ, q무̴ᆼ, q무̴ᆼ, q무̴ᆼ, q무̴ᆼ);
+Test_N(q미̴ᆮ, q미̴ᆮ, q미̴ᆮ, q미̴ᆮ, q미̴ᆮ);
+Test_N(q뱌̴ᆵ, q뱌̴ᆵ, q뱌̴ᆵ, q뱌̴ᆵ, q뱌̴ᆵ);
+Test_N(q베̴ᆼ, q베̴ᆼ, q베̴ᆼ, q베̴ᆼ, q베̴ᆼ);
+Test_N(q뵤̴ᆮ, q뵤̴ᆮ, q뵤̴ᆮ, q뵤̴ᆮ, q뵤̴ᆮ);
+Test_N(q붸̴ᆵ, q붸̴ᆵ, q붸̴ᆵ, q붸̴ᆵ, q붸̴ᆵ);
+Test_N(q브̴ᆼ, q브̴ᆼ, q브̴ᆼ, q브̴ᆼ, q브̴ᆼ);
+Test_N(q뻐̴ᆮ, q뻐̴ᆮ, q뻐̴ᆮ, q뻐̴ᆮ, q뻐̴ᆮ);
+Test_N(q뼤̴ᆵ, q뼤̴ᆵ, q뼤̴ᆵ, q뼤̴ᆵ, q뼤̴ᆵ);
+Test_N(q뽸̴ᆼ, q뽸̴ᆼ, q뽸̴ᆼ, q뽸̴ᆼ, q뽸̴ᆼ);
+Test_N(q쀼̴ᆮ, q쀼̴ᆮ, q쀼̴ᆮ, q쀼̴ᆮ, q쀼̴ᆮ);
+Test_N(q삐̴ᆵ, q삐̴ᆵ, q삐̴ᆵ, q삐̴ᆵ, q삐̴ᆵ);
+Test_N(q샤̴ᆼ, q샤̴ᆼ, q샤̴ᆼ, q샤̴ᆼ, q샤̴ᆼ);
+Test_N(q솨̴ᆮ, q솨̴ᆮ, q솨̴ᆮ, q솨̴ᆮ, q솨̴ᆮ);
+Test_N(q쇼̴ᆵ, q쇼̴ᆵ, q쇼̴ᆵ, q쇼̴ᆵ, q쇼̴ᆵ);
+Test_N(q쉐̴ᆼ, q쉐̴ᆼ, q쉐̴ᆼ, q쉐̴ᆼ, q쉐̴ᆼ);
+Test_N(q쌔̴ᆮ, q쌔̴ᆮ, q쌔̴ᆮ, q쌔̴ᆮ, q쌔̴ᆮ);
+Test_N(q써̴ᆵ, q써̴ᆵ, q써̴ᆵ, q써̴ᆵ, q써̴ᆵ);
+Test_N(q쎼̴ᆼ, q쎼̴ᆼ, q쎼̴ᆼ, q쎼̴ᆼ, q쎼̴ᆼ);
+Test_N(q쒀̴ᆮ, q쒀̴ᆮ, q쒀̴ᆮ, q쒀̴ᆮ, q쒀̴ᆮ);
+Test_N(q쓔̴ᆵ, q쓔̴ᆵ, q쓔̴ᆵ, q쓔̴ᆵ, q쓔̴ᆵ);
+Test_N(q씨̴ᆼ, q씨̴ᆼ, q씨̴ᆼ, q씨̴ᆼ, q씨̴ᆼ);
+Test_N(q여̴ᆮ, q여̴ᆮ, q여̴ᆮ, q여̴ᆮ, q여̴ᆮ);
+Test_N(q와̴ᆵ, q와̴ᆵ, q와̴ᆵ, q와̴ᆵ, q와̴ᆵ);
+Test_N(q요̴ᆼ, q요̴ᆼ, q요̴ᆼ, q요̴ᆼ, q요̴ᆼ);
+Test_N(q의̴ᆮ, q의̴ᆮ, q의̴ᆮ, q의̴ᆮ, q의̴ᆮ);
+Test_N(q재̴ᆵ, q재̴ᆵ, q재̴ᆵ, q재̴ᆵ, q재̴ᆵ);
+Test_N(q저̴ᆼ, q저̴ᆼ, q저̴ᆼ, q저̴ᆼ, q저̴ᆼ);
+Test_N(q죄̴ᆮ, q죄̴ᆮ, q죄̴ᆮ, q죄̴ᆮ, q죄̴ᆮ);
+Test_N(q줘̴ᆵ, q줘̴ᆵ, q줘̴ᆵ, q줘̴ᆵ, q줘̴ᆵ);
+Test_N(q쥬̴ᆼ, q쥬̴ᆼ, q쥬̴ᆼ, q쥬̴ᆼ, q쥬̴ᆼ);
+Test_N(q쨰̴ᆮ, q쨰̴ᆮ, q쨰̴ᆮ, q쨰̴ᆮ, q쨰̴ᆮ);
+Test_N(q쪄̴ᆵ, q쪄̴ᆵ, q쪄̴ᆵ, q쪄̴ᆵ, q쪄̴ᆵ);
+Test_N(q쫘̴ᆼ, q쫘̴ᆼ, q쫘̴ᆼ, q쫘̴ᆼ, q쫘̴ᆼ);
+Test_N(q쮜̴ᆮ, q쮜̴ᆮ, q쮜̴ᆮ, q쮜̴ᆮ, q쮜̴ᆮ);
+Test_N(q쯰̴ᆵ, q쯰̴ᆵ, q쯰̴ᆵ, q쯰̴ᆵ, q쯰̴ᆵ);
+Test_N(q채̴ᆼ, q채̴ᆼ, q채̴ᆼ, q채̴ᆼ, q채̴ᆼ);
+Test_N(q초̴ᆮ, q초̴ᆮ, q초̴ᆮ, q초̴ᆮ, q초̴ᆮ);
+Test_N(q최̴ᆵ, q최̴ᆵ, q최̴ᆵ, q최̴ᆵ, q최̴ᆵ);
+Test_N(q춰̴ᆼ, q춰̴ᆼ, q춰̴ᆼ, q춰̴ᆼ, q춰̴ᆼ);
+Test_N(q카̴ᆮ, q카̴ᆮ, q카̴ᆮ, q카̴ᆮ, q카̴ᆮ);
+Test_N(q컈̴ᆵ, q컈̴ᆵ, q컈̴ᆵ, q컈̴ᆵ, q컈̴ᆵ);
+Test_N(q켜̴ᆼ, q켜̴ᆼ, q켜̴ᆼ, q켜̴ᆼ, q켜̴ᆼ);
+Test_N(q쿠̴ᆮ, q쿠̴ᆮ, q쿠̴ᆮ, q쿠̴ᆮ, q쿠̴ᆮ);
+Test_N(q퀴̴ᆵ, q퀴̴ᆵ, q퀴̴ᆵ, q퀴̴ᆵ, q퀴̴ᆵ);
+Test_N(q킈̴ᆼ, q킈̴ᆼ, q킈̴ᆼ, q킈̴ᆼ, q킈̴ᆼ);
+Test_N(q테̴ᆮ, q테̴ᆮ, q테̴ᆮ, q테̴ᆮ, q테̴ᆮ);
+Test_N(q토̴ᆵ, q토̴ᆵ, q토̴ᆵ, q토̴ᆵ, q토̴ᆵ);
+Test_N(q퇴̴ᆼ, q퇴̴ᆼ, q퇴̴ᆼ, q퇴̴ᆼ, q퇴̴ᆼ);
+Test_N(q트̴ᆮ, q트̴ᆮ, q트̴ᆮ, q트̴ᆮ, q트̴ᆮ);
+Test_N(q파̴ᆵ, q파̴ᆵ, q파̴ᆵ, q파̴ᆵ, q파̴ᆵ);
+Test_N(q퍠̴ᆼ, q퍠̴ᆼ, q퍠̴ᆼ, q퍠̴ᆼ, q퍠̴ᆼ);
+Test_N(q퐤̴ᆮ, q퐤̴ᆮ, q퐤̴ᆮ, q퐤̴ᆮ, q퐤̴ᆮ);
+Test_N(q푸̴ᆵ, q푸̴ᆵ, q푸̴ᆵ, q푸̴ᆵ, q푸̴ᆵ);
+Test_N(q퓌̴ᆼ, q퓌̴ᆼ, q퓌̴ᆼ, q퓌̴ᆼ, q퓌̴ᆼ);
+Test_N(q햐̴ᆮ, q햐̴ᆮ, q햐̴ᆮ, q햐̴ᆮ, q햐̴ᆮ);
+Test_N(q헤̴ᆵ, q헤̴ᆵ, q헤̴ᆵ, q헤̴ᆵ, q헤̴ᆵ);
+Test_N(q호̴ᆼ, q호̴ᆼ, q호̴ᆼ, q호̴ᆼ, q호̴ᆼ);
+Test_N(q훼̴ᆮ, q훼̴ᆮ, q훼̴ᆮ, q훼̴ᆮ, q훼̴ᆮ);
+Test_N(q흐̴ᆵ, q흐̴ᆵ, q흐̴ᆵ, q흐̴ᆵ, q흐̴ᆵ);
+Test_N(q𑄱̴𑄧, q𑄱̴𑄧, q𑄱̴𑄧, q𑄱̴𑄧, q𑄱̴𑄧);
+Test_N(q𑄲̴𑄧, q𑄲̴𑄧, q𑄲̴𑄧, q𑄲̴𑄧, q𑄲̴𑄧);
+Test_N(q𑍇̴𑌾, q𑍇̴𑌾, q𑍇̴𑌾, q𑍇̴𑌾, q𑍇̴𑌾);
+Test_N(q𑍇̴𑍗, q𑍇̴𑍗, q𑍇̴𑍗, q𑍇̴𑍗, q𑍇̴𑍗);
+Test_N(q𑒹̴𑒰, q𑒹̴𑒰, q𑒹̴𑒰, q𑒹̴𑒰, q𑒹̴𑒰);
+Test_N(q𑒹̴𑒺, q𑒹̴𑒺, q𑒹̴𑒺, q𑒹̴𑒺, q𑒹̴𑒺);
+Test_N(q𑒹̴𑒽, q𑒹̴𑒽, q𑒹̴𑒽, q𑒹̴𑒽, q𑒹̴𑒽);
+Test_N(q𑖸̴𑖯, q𑖸̴𑖯, q𑖸̴𑖯, q𑖸̴𑖯, q𑖸̴𑖯);
+Test_N(q𑖹̴𑖯, q𑖹̴𑖯, q𑖹̴𑖯, q𑖹̴𑖯, q𑖹̴𑖯);
+Test_N(q𑤵̴𑤰, q𑤵̴𑤰, q𑤵̴𑤰, q𑤵̴𑤰, q𑤵̴𑤰);
+done_testing(); \ No newline at end of file
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl
index 9554f6d164..4d43c10f9d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -133,6 +133,7 @@ return <<'END';
616 61A 5.1
61B 1.1
61C 6.3
+61D 14.0
61E 4.1
61F 1.1
620 6.0
@@ -172,13 +173,18 @@ return <<'END';
840 85B 6.0
85E 6.0
860 86A 10.0
+870 88E 14.0
+890 891 14.0
+898 89F 14.0
8A0 6.1
8A1 7.0
8A2 8AC 6.1
8AD 8B2 7.0
8B3 8B4 8.0
+8B5 14.0
8B6 8BD 9.0
8BE 8C7 13.0
+8C8 8D2 14.0
8D3 11.0
8D4 8E2 9.0
8E3 8.0
@@ -313,6 +319,7 @@ C12 C28 1.1
C2A C33 1.1
C34 7.0
C35 C39 1.1
+C3C 14.0
C3D 5.1
C3E C44 1.1
C46 C48 1.1
@@ -320,6 +327,7 @@ C4A C4D 1.1
C55 C56 1.1
C58 C59 5.1
C5A 8.0
+C5D 14.0
C60 C61 1.1
C62 C63 5.1
C66 C6F 1.1
@@ -339,11 +347,13 @@ CBE CC4 1.1
CC6 CC8 1.1
CCA CCD 1.1
CD5 CD6 1.1
+CDD 14.0
CDE 1.1
CE0 CE1 1.1
CE2 CE3 5.0
CE6 CEF 1.1
CF1 CF2 5.0
+CF3 15.0
D00 10.0
D01 7.0
D02 D03 1.1
@@ -412,6 +422,7 @@ EBB EBD 1.1
EC0 EC4 1.1
EC6 1.1
EC8 ECD 1.1
+ECE 15.0
ED0 ED9 1.1
EDC EDD 1.1
EDE EDF 6.1
@@ -514,7 +525,10 @@ FD9 FDA 6.0
16A0 16F0 3.0
16F1 16F8 7.0
1700 170C 3.2
+170D 14.0
170E 1714 3.2
+1715 14.0
+171F 14.0
1720 1736 3.2
1740 1753 3.2
1760 176C 3.2
@@ -525,6 +539,7 @@ FD9 FDA 6.0
17E0 17E9 3.0
17F0 17F9 4.0
1800 180E 3.0
+180F 14.0
1810 1819 3.0
1820 1877 3.0
1878 11.0
@@ -554,8 +569,11 @@ FD9 FDA 6.0
1AA0 1AAD 5.2
1AB0 1ABE 7.0
1ABF 1AC0 13.0
+1AC1 1ACE 14.0
1B00 1B4B 5.0
+1B4C 14.0
1B50 1B7C 5.0
+1B7D 1B7E 14.0
1B80 1BAA 5.1
1BAB 1BAD 6.1
1BAE 1BB9 5.1
@@ -580,6 +598,7 @@ FD9 FDA 6.0
1DCB 1DE6 5.1
1DE7 1DF5 7.0
1DF6 1DF9 10.0
+1DFA 14.0
1DFB 9.0
1DFC 6.0
1DFD 5.2
@@ -635,6 +654,7 @@ FD9 FDA 6.0
20BB 20BD 7.0
20BE 8.0
20BF 10.0
+20C0 14.0
20D0 20E1 1.1
20E2 20E3 3.0
20E4 20EA 3.2
@@ -773,7 +793,9 @@ FD9 FDA 6.0
2BF0 2BFE 11.0
2BFF 12.0
2C00 2C2E 4.1
+2C2F 14.0
2C30 2C5E 4.1
+2C5F 14.0
2C60 2C6C 5.0
2C6D 2C6F 5.1
2C70 5.2
@@ -814,6 +836,7 @@ FD9 FDA 6.0
2E4A 2E4E 11.0
2E4F 12.0
2E50 2E52 13.0
+2E53 2E5D 14.0
2E80 2E99 3.0
2E9B 2EF3 3.0
2F00 2FD5 3.0
@@ -874,6 +897,7 @@ FD9 FDA 6.0
9FD6 9FEA 10.0
9FEB 9FEF 11.0
9FF0 9FFC 13.0
+9FFD 9FFF 14.0
A000 A48C 3.0
A490 A4A1 3.0
A4A2 A4A3 3.2
@@ -914,8 +938,13 @@ A7B0 A7B1 7.0
A7B2 A7B7 8.0
A7B8 A7B9 11.0
A7BA A7BF 12.0
+A7C0 A7C1 14.0
A7C2 A7C6 12.0
A7C7 A7CA 13.0
+A7D0 A7D1 14.0
+A7D3 14.0
+A7D5 A7D9 14.0
+A7F2 A7F4 14.0
A7F5 A7F6 13.0
A7F7 7.0
A7F8 A7F9 6.1
@@ -979,13 +1008,17 @@ FB40 FB41 1.1
FB43 FB44 1.1
FB46 FBB1 1.1
FBB2 FBC1 6.0
+FBC2 14.0
FBD3 FD3F 1.1
+FD40 FD4F 14.0
FD50 FD8F 1.1
FD92 FDC7 1.1
+FDCF 14.0
FDD0 FDEF 3.1
FDF0 FDFB 1.1
FDFC 3.2
FDFD 4.0
+FDFE FDFF 14.0
FE00 FE0F 3.2
FE10 FE19 4.1
FE20 FE23 1.1
@@ -1055,9 +1088,20 @@ FFFD FFFF 1.1
10500 10527 7.0
10530 10563 7.0
1056F 7.0
+10570 1057A 14.0
+1057C 1058A 14.0
+1058C 10592 14.0
+10594 10595 14.0
+10597 105A1 14.0
+105A3 105B1 14.0
+105B3 105B9 14.0
+105BB 105BC 14.0
10600 10736 7.0
10740 10755 7.0
10760 10767 7.0
+10780 10785 14.0
+10787 107B0 14.0
+107B2 107BA 14.0
10800 10805 4.0
10808 4.0
1080A 10835 4.0
@@ -1112,14 +1156,18 @@ FFFD FFFF 1.1
10E80 10EA9 13.0
10EAB 10EAD 13.0
10EB0 10EB1 13.0
+10EFD 10EFF 15.0
10F00 10F27 11.0
10F30 10F59 11.0
+10F70 10F89 14.0
10FB0 10FCB 13.0
10FE0 10FF6 12.0
11000 1104D 6.0
11052 1106F 6.0
+11070 11075 14.0
1107F 7.0
11080 110C1 5.2
+110C2 14.0
110CD 11.0
110D0 110E8 6.1
110F0 110F9 6.1
@@ -1139,6 +1187,7 @@ FFFD FFFF 1.1
11200 11211 7.0
11213 1123D 7.0
1123E 9.0
+1123F 11241 15.0
11280 11286 8.0
11288 8.0
1128A 1128D 8.0
@@ -1180,11 +1229,13 @@ FFFD FFFF 1.1
11660 1166C 9.0
11680 116B7 6.1
116B8 12.0
+116B9 14.0
116C0 116C9 6.1
11700 11719 8.0
1171A 11.0
1171D 1172B 8.0
11730 1173F 8.0
+11740 11746 14.0
11800 1183B 11.0
118A0 118F2 7.0
118FF 7.0
@@ -1205,7 +1256,9 @@ FFFD FFFF 1.1
11A86 11A9C 10.0
11A9D 11.0
11A9E 11AA2 10.0
+11AB0 11ABF 14.0
11AC0 11AF8 7.0
+11B00 11B09 15.0
11C00 11C08 9.0
11C0A 11C36 9.0
11C38 11C45 9.0
@@ -1227,6 +1280,9 @@ FFFD FFFF 1.1
11D93 11D98 11.0
11DA0 11DA9 11.0
11EE0 11EF8 11.0
+11F00 11F10 15.0
+11F12 11F3A 15.0
+11F3E 11F59 15.0
11FB0 13.0
11FC0 11FF1 12.0
11FFF 12.0
@@ -1238,13 +1294,18 @@ FFFD FFFF 1.1
12470 12473 5.0
12474 7.0
12480 12543 8.0
+12F90 12FF2 14.0
13000 1342E 5.2
+1342F 15.0
13430 13438 12.0
+13439 13455 15.0
14400 14646 8.0
16800 16A38 6.0
16A40 16A5E 7.0
16A60 16A69 7.0
16A6E 16A6F 7.0
+16A70 16ABE 14.0
+16AC0 16AC9 14.0
16AD0 16AED 7.0
16AF0 16AF5 7.0
16B00 16B45 7.0
@@ -1270,9 +1331,15 @@ FFFD FFFF 1.1
18800 18AF2 9.0
18AF3 18CD5 13.0
18D00 18D08 13.0
+1AFF0 1AFF3 14.0
+1AFF5 1AFFB 14.0
+1AFFD 1AFFE 14.0
1B000 1B001 6.0
1B002 1B11E 10.0
+1B11F 1B122 14.0
+1B132 15.0
1B150 1B152 12.0
+1B155 15.0
1B164 1B167 12.0
1B170 1B2FB 10.0
1BC00 1BC6A 7.0
@@ -1280,12 +1347,17 @@ FFFD FFFF 1.1
1BC80 1BC88 7.0
1BC90 1BC99 7.0
1BC9C 1BCA3 7.0
+1CF00 1CF2D 14.0
+1CF30 1CF46 14.0
+1CF50 1CFC3 14.0
1D000 1D0F5 3.1
1D100 1D126 3.1
1D129 5.1
1D12A 1D1DD 3.1
1D1DE 1D1E8 8.0
+1D1E9 1D1EA 14.0
1D200 1D245 4.1
+1D2C0 1D2D3 15.0
1D2E0 1D2F3 11.0
1D300 1D356 4.0
1D360 1D371 5.0
@@ -1318,17 +1390,27 @@ FFFD FFFF 1.1
1D800 1DA8B 8.0
1DA9B 1DA9F 8.0
1DAA1 1DAAF 8.0
+1DF00 1DF1E 14.0
+1DF25 1DF2A 15.0
1E000 1E006 9.0
1E008 1E018 9.0
1E01B 1E021 9.0
1E023 1E024 9.0
1E026 1E02A 9.0
+1E030 1E06D 15.0
+1E08F 15.0
1E100 1E12C 12.0
1E130 1E13D 12.0
1E140 1E149 12.0
1E14E 1E14F 12.0
+1E290 1E2AE 14.0
1E2C0 1E2F9 12.0
1E2FF 12.0
+1E4D0 1E4F9 15.0
+1E7E0 1E7E6 14.0
+1E7E8 1E7EB 14.0
+1E7ED 1E7EE 14.0
+1E7F0 1E7FE 14.0
1E800 1E8C4 7.0
1E8C7 1E8D6 7.0
1E900 1E94A 9.0
@@ -1499,6 +1581,8 @@ FFFD FFFF 1.1
1F6D3 1F6D4 10.0
1F6D5 12.0
1F6D6 1F6D7 13.0
+1F6DC 15.0
+1F6DD 1F6DF 14.0
1F6E0 1F6EC 7.0
1F6F0 1F6F3 7.0
1F6F4 1F6F6 9.0
@@ -1507,9 +1591,13 @@ FFFD FFFF 1.1
1F6FA 12.0
1F6FB 1F6FC 13.0
1F700 1F773 6.0
+1F774 1F776 15.0
+1F77B 1F77F 15.0
1F780 1F7D4 7.0
1F7D5 1F7D8 11.0
+1F7D9 15.0
1F7E0 1F7EB 12.0
+1F7F0 14.0
1F800 1F80B 7.0
1F810 1F847 7.0
1F850 1F859 7.0
@@ -1538,6 +1626,7 @@ FFFD FFFF 1.1
1F972 13.0
1F973 1F976 11.0
1F977 1F978 13.0
+1F979 14.0
1F97A 11.0
1F97B 12.0
1F97C 1F97F 11.0
@@ -1555,6 +1644,7 @@ FFFD FFFF 1.1
1F9C1 1F9C2 11.0
1F9C3 1F9CA 12.0
1F9CB 13.0
+1F9CC 14.0
1F9CD 1F9CF 12.0
1F9D0 1F9E6 10.0
1F9E7 1F9FF 11.0
@@ -1562,27 +1652,47 @@ FFFD FFFF 1.1
1FA60 1FA6D 11.0
1FA70 1FA73 12.0
1FA74 13.0
+1FA75 1FA77 15.0
1FA78 1FA7A 12.0
+1FA7B 1FA7C 14.0
1FA80 1FA82 12.0
1FA83 1FA86 13.0
+1FA87 1FA88 15.0
1FA90 1FA95 12.0
1FA96 1FAA8 13.0
+1FAA9 1FAAC 14.0
+1FAAD 1FAAF 15.0
1FAB0 1FAB6 13.0
+1FAB7 1FABA 14.0
+1FABB 1FABD 15.0
+1FABF 15.0
1FAC0 1FAC2 13.0
+1FAC3 1FAC5 14.0
+1FACE 1FACF 15.0
1FAD0 1FAD6 13.0
+1FAD7 1FAD9 14.0
+1FADA 1FADB 15.0
+1FAE0 1FAE7 14.0
+1FAE8 15.0
+1FAF0 1FAF6 14.0
+1FAF7 1FAF8 15.0
1FB00 1FB92 13.0
1FB94 1FBCA 13.0
1FBF0 1FBF9 13.0
1FFFE 1FFFF 2.0
20000 2A6D6 3.1
2A6D7 2A6DD 13.0
+2A6DE 2A6DF 14.0
2A700 2B734 5.2
+2B735 2B738 14.0
+2B739 15.0
2B740 2B81D 6.0
2B820 2CEA1 8.0
2CEB0 2EBE0 10.0
2F800 2FA1D 3.1
2FFFE 2FFFF 2.0
30000 3134A 13.0
+31350 323AF 15.0
3FFFE 3FFFF 2.0
4FFFE 4FFFF 2.0
5FFFE 5FFFF 2.0
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl
index 3025d6ec59..7fd6b768af 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -134,10 +134,12 @@ F7 ON
82E 858 R
859 85B NSM
85C 85F R
-860 86F AL
-870 89F R
-8A0 8D2 AL
-8D3 8E1 NSM
+860 88F AL
+890 891 AN
+892 897 AL
+898 89F NSM
+8A0 8C9 AL
+8CA 8E1 NSM
8E2 AN
8E3 902 NSM
93A NSM
@@ -185,6 +187,7 @@ BF9 ET
BFA ON
C00 NSM
C04 NSM
+C3C NSM
C3E C40 NSM
C46 C48 NSM
C4A C4D NSM
@@ -210,7 +213,7 @@ E3F ET
E47 E4E NSM
EB1 NSM
EB4 EBC NSM
-EC8 ECD NSM
+EC8 ECE NSM
F18 F19 NSM
F35 NSM
F37 NSM
@@ -239,7 +242,7 @@ FC6 NSM
1680 WS
169B 169C ON
1712 1714 NSM
-1732 1734 NSM
+1732 1733 NSM
1752 1753 NSM
1772 1773 NSM
17B4 17B5 NSM
@@ -252,6 +255,7 @@ FC6 NSM
1800 180A ON
180B 180D NSM
180E BN
+180F NSM
1885 1886 NSM
18A9 NSM
1920 1922 NSM
@@ -270,7 +274,7 @@ FC6 NSM
1A65 1A6C NSM
1A73 1A7C NSM
1A7F NSM
-1AB0 1AC0 NSM
+1AB0 1ACE NSM
1B00 1B03 NSM
1B34 NSM
1B36 1B3A NSM
@@ -293,8 +297,7 @@ FC6 NSM
1CED NSM
1CF4 NSM
1CF8 1CF9 NSM
-1DC0 1DF9 NSM
-1DFB 1DFF NSM
+1DC0 1DFF NSM
1FBD ON
1FBF 1FC1 ON
1FCD 1FCF ON
@@ -367,7 +370,7 @@ FC6 NSM
2CF9 2CFF ON
2D7F NSM
2DE0 2DFF NSM
-2E00 2E52 ON
+2E00 2E5D ON
2E80 2E99 ON
2E9B 2EF3 ON
2F00 2FD5 ON
@@ -444,12 +447,12 @@ FB1F FB28 R
FB29 ES
FB2A FB4F R
FB50 FD3D AL
-FD3E FD3F ON
-FD40 FDCF AL
+FD3E FD4F ON
+FD50 FDCE AL
+FDCF ON
FDD0 FDEF BN
FDF0 FDFC AL
-FDFD ON
-FDFE FDFF AL
+FDFD FDFF ON
FE00 FE0F NSM
FE10 FE19 ON
FE20 FE2F NSM
@@ -522,17 +525,25 @@ FFFE FFFF BN
10E60 10E7E AN
10E7F 10EAA R
10EAB 10EAC NSM
-10EAD 10F2F R
+10EAD 10EBF R
+10EC0 10EFC AL
+10EFD 10EFF NSM
+10F00 10F2F R
10F30 10F45 AL
10F46 10F50 NSM
10F51 10F6F AL
-10F70 10FFF R
+10F70 10F81 R
+10F82 10F85 NSM
+10F86 10FFF R
11001 NSM
11038 11046 NSM
11052 11065 ON
+11070 NSM
+11073 11074 NSM
1107F 11081 NSM
110B3 110B6 NSM
110B9 110BA NSM
+110C2 NSM
11100 11102 NSM
11127 1112B NSM
1112D 11134 NSM
@@ -545,6 +556,7 @@ FFFE FFFF BN
11234 NSM
11236 11237 NSM
1123E NSM
+11241 NSM
112DF NSM
112E3 112EA NSM
11300 11301 NSM
@@ -607,9 +619,15 @@ FFFE FFFF BN
11D95 NSM
11D97 NSM
11EF3 11EF4 NSM
+11F00 11F01 NSM
+11F36 11F3A NSM
+11F40 NSM
+11F42 NSM
11FD5 11FDC ON
11FDD 11FE0 ET
11FE1 11FF1 ON
+13440 NSM
+13447 13455 NSM
16AF0 16AF4 NSM
16B30 16B36 NSM
16F4F NSM
@@ -618,11 +636,14 @@ FFFE FFFF BN
16FE4 NSM
1BC9D 1BC9E NSM
1BCA0 1BCA3 BN
+1CF00 1CF2D NSM
+1CF30 1CF46 NSM
1D167 1D169 NSM
1D173 1D17A BN
1D17B 1D182 NSM
1D185 1D18B NSM
1D1AA 1D1AD NSM
+1D1E9 1D1EA ON
1D200 1D241 ON
1D242 1D244 NSM
1D245 ON
@@ -644,9 +665,12 @@ FFFE FFFF BN
1E01B 1E021 NSM
1E023 1E024 NSM
1E026 1E02A NSM
+1E08F NSM
1E130 1E136 NSM
+1E2AE NSM
1E2EC 1E2EF NSM
1E2FF ET
+1E4EC 1E4EF NSM
1E800 1E8CF R
1E8D0 1E8D6 NSM
1E8D7 1E943 R
@@ -673,28 +697,27 @@ FFFE FFFF BN
1F1AD ON
1F260 1F265 ON
1F300 1F6D7 ON
-1F6E0 1F6EC ON
+1F6DC 1F6EC ON
1F6F0 1F6FC ON
-1F700 1F773 ON
-1F780 1F7D8 ON
+1F700 1F776 ON
+1F77B 1F7D9 ON
1F7E0 1F7EB ON
+1F7F0 ON
1F800 1F80B ON
1F810 1F847 ON
1F850 1F859 ON
1F860 1F887 ON
1F890 1F8AD ON
1F8B0 1F8B1 ON
-1F900 1F978 ON
-1F97A 1F9CB ON
-1F9CD 1FA53 ON
+1F900 1FA53 ON
1FA60 1FA6D ON
-1FA70 1FA74 ON
-1FA78 1FA7A ON
-1FA80 1FA86 ON
-1FA90 1FAA8 ON
-1FAB0 1FAB6 ON
-1FAC0 1FAC2 ON
-1FAD0 1FAD6 ON
+1FA70 1FA7C ON
+1FA80 1FA88 ON
+1FA90 1FABD ON
+1FABF 1FAC5 ON
+1FACE 1FADB ON
+1FAE0 1FAE8 ON
+1FAF0 1FAF8 ON
1FB00 1FB92 ON
1FB94 1FBCA ON
1FBF0 1FBF9 EN
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl
index cf664fce2f..37e4c24cac 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -18,7 +18,7 @@
# the main body of the table, and what all code points missing from this file
# map to.
$Unicode::UCD::SwashInfo{'ToBmg'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToBmg'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToBmg'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
0028 0029
@@ -403,6 +403,14 @@ return <<'END';
2E27 2E26
2E28 2E29
2E29 2E28
+2E55 2E56
+2E56 2E55
+2E57 2E58
+2E58 2E57
+2E59 2E5A
+2E5A 2E59
+2E5B 2E5C
+2E5C 2E5B
3008 3009
3009 3008
300A 300B
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl
index 9900e91c57..a409d08757 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToBpb'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToBpb'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToBpb'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
28 0029
@@ -103,6 +103,14 @@ F3D 0F3C
2E27 2E26
2E28 2E29
2E29 2E28
+2E55 2E56
+2E56 2E55
+2E57 2E58
+2E58 2E57
+2E59 2E5A
+2E5A 2E59
+2E5B 2E5C
+2E5C 2E5B
3008 3009
3009 3008
300A 300B
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl
index 815b07d7dc..984a5d78c4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -17,124 +17,132 @@ $Unicode::UCD::SwashInfo{'ToBpt'}{'format'} = 's'; # string
$Unicode::UCD::SwashInfo{'ToBpt'}{'missing'} = 'n';
return <<'END';
-28 o
-29 c
-5B o
-5D c
-7B o
-7D c
-F3A o
-F3B c
-F3C o
-F3D c
-169B o
-169C c
-2045 o
-2046 c
-207D o
-207E c
-208D o
-208E c
-2308 o
-2309 c
-230A o
-230B c
-2329 o
-232A c
-2768 o
-2769 c
-276A o
-276B c
-276C o
-276D c
-276E o
-276F c
-2770 o
-2771 c
-2772 o
-2773 c
-2774 o
-2775 c
-27C5 o
-27C6 c
-27E6 o
-27E7 c
-27E8 o
-27E9 c
-27EA o
-27EB c
-27EC o
-27ED c
-27EE o
-27EF c
-2983 o
-2984 c
-2985 o
-2986 c
-2987 o
-2988 c
-2989 o
-298A c
-298B o
-298C c
-298D o
-298E c
-298F o
-2990 c
-2991 o
-2992 c
-2993 o
-2994 c
-2995 o
-2996 c
-2997 o
-2998 c
-29D8 o
-29D9 c
-29DA o
-29DB c
-29FC o
-29FD c
-2E22 o
-2E23 c
-2E24 o
-2E25 c
-2E26 o
-2E27 c
-2E28 o
-2E29 c
-3008 o
-3009 c
-300A o
-300B c
-300C o
-300D c
-300E o
-300F c
-3010 o
-3011 c
-3014 o
-3015 c
-3016 o
-3017 c
-3018 o
-3019 c
-301A o
-301B c
-FE59 o
-FE5A c
-FE5B o
-FE5C c
-FE5D o
-FE5E c
-FF08 o
-FF09 c
-FF3B o
-FF3D c
-FF5B o
-FF5D c
-FF5F o
-FF60 c
-FF62 o
-FF63 c
+28 O
+29 C
+5B O
+5D C
+7B O
+7D C
+F3A O
+F3B C
+F3C O
+F3D C
+169B O
+169C C
+2045 O
+2046 C
+207D O
+207E C
+208D O
+208E C
+2308 O
+2309 C
+230A O
+230B C
+2329 O
+232A C
+2768 O
+2769 C
+276A O
+276B C
+276C O
+276D C
+276E O
+276F C
+2770 O
+2771 C
+2772 O
+2773 C
+2774 O
+2775 C
+27C5 O
+27C6 C
+27E6 O
+27E7 C
+27E8 O
+27E9 C
+27EA O
+27EB C
+27EC O
+27ED C
+27EE O
+27EF C
+2983 O
+2984 C
+2985 O
+2986 C
+2987 O
+2988 C
+2989 O
+298A C
+298B O
+298C C
+298D O
+298E C
+298F O
+2990 C
+2991 O
+2992 C
+2993 O
+2994 C
+2995 O
+2996 C
+2997 O
+2998 C
+29D8 O
+29D9 C
+29DA O
+29DB C
+29FC O
+29FD C
+2E22 O
+2E23 C
+2E24 O
+2E25 C
+2E26 O
+2E27 C
+2E28 O
+2E29 C
+2E55 O
+2E56 C
+2E57 O
+2E58 C
+2E59 O
+2E5A C
+2E5B O
+2E5C C
+3008 O
+3009 C
+300A O
+300B C
+300C O
+300D C
+300E O
+300F C
+3010 O
+3011 C
+3014 O
+3015 C
+3016 O
+3017 C
+3018 O
+3019 C
+301A O
+301B C
+FE59 O
+FE5A C
+FE5B O
+FE5C C
+FE5D O
+FE5E C
+FF08 O
+FF09 C
+FF3B O
+FF3D C
+FF5B O
+FF5D C
+FF5F O
+FF60 C
+FF62 O
+FF63 C
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl
index e9c24e18d6..acc2e9062d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -620,7 +620,7 @@ D8 DE F8
2160 216F 2170
2183 2184
24B6 24CF 24D0
-2C00 2C2E 2C30
+2C00 2C2F 2C30
2C60 2C61
2C62 26B
2C63 1D7D
@@ -800,17 +800,25 @@ A7B8 A7B9
A7BA A7BB
A7BC A7BD
A7BE A7BF
+A7C0 A7C1
A7C2 A7C3
A7C4 A794
A7C5 282
A7C6 1D8E
A7C7 A7C8
A7C9 A7CA
+A7D0 A7D1
+A7D6 A7D7
+A7D8 A7D9
A7F5 A7F6
AB70 ABBF 13A0
FF21 FF3A FF41
10400 10427 10428
104B0 104D3 104D8
+10570 1057A 10597
+1057C 1058A 105A3
+1058C 10592 105B3
+10594 10595 105BB
10C80 10CB2 10CC0
118A0 118BF 118C0
16E40 16E5F 16E60
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Digit.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Digit.pl
deleted file mode 100644
index 967f41c727..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Digit.pl
+++ /dev/null
@@ -1,674 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
-
-# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
-
-# This file is for internal use by core Perl only. It is retained for
-# backwards compatibility with applications that may have come to rely on it,
-# 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') (Values for individual
-# code points can be retrieved via Unicode::UCD::charprop());
-
-
-
-# The name this table is to be known by, with the format of the mappings in
-# the main body of the table, and what all code points missing from this file
-# map to.
-$Unicode::UCD::SwashInfo{'ToDigit'}{'format'} = 'd'; # single decimal digit
-$Unicode::UCD::SwashInfo{'ToDigit'}{'missing'} = ''; # code point maps to the null string
-
-return <<'END';
-0030 0
-0031 1
-0032 2
-0033 3
-0034 4
-0035 5
-0036 6
-0037 7
-0038 8
-0039 9
-0660 0
-0661 1
-0662 2
-0663 3
-0664 4
-0665 5
-0666 6
-0667 7
-0668 8
-0669 9
-06F0 0
-06F1 1
-06F2 2
-06F3 3
-06F4 4
-06F5 5
-06F6 6
-06F7 7
-06F8 8
-06F9 9
-07C0 0
-07C1 1
-07C2 2
-07C3 3
-07C4 4
-07C5 5
-07C6 6
-07C7 7
-07C8 8
-07C9 9
-0966 0
-0967 1
-0968 2
-0969 3
-096A 4
-096B 5
-096C 6
-096D 7
-096E 8
-096F 9
-09E6 0
-09E7 1
-09E8 2
-09E9 3
-09EA 4
-09EB 5
-09EC 6
-09ED 7
-09EE 8
-09EF 9
-0A66 0
-0A67 1
-0A68 2
-0A69 3
-0A6A 4
-0A6B 5
-0A6C 6
-0A6D 7
-0A6E 8
-0A6F 9
-0AE6 0
-0AE7 1
-0AE8 2
-0AE9 3
-0AEA 4
-0AEB 5
-0AEC 6
-0AED 7
-0AEE 8
-0AEF 9
-0B66 0
-0B67 1
-0B68 2
-0B69 3
-0B6A 4
-0B6B 5
-0B6C 6
-0B6D 7
-0B6E 8
-0B6F 9
-0BE6 0
-0BE7 1
-0BE8 2
-0BE9 3
-0BEA 4
-0BEB 5
-0BEC 6
-0BED 7
-0BEE 8
-0BEF 9
-0C66 0
-0C67 1
-0C68 2
-0C69 3
-0C6A 4
-0C6B 5
-0C6C 6
-0C6D 7
-0C6E 8
-0C6F 9
-0CE6 0
-0CE7 1
-0CE8 2
-0CE9 3
-0CEA 4
-0CEB 5
-0CEC 6
-0CED 7
-0CEE 8
-0CEF 9
-0D66 0
-0D67 1
-0D68 2
-0D69 3
-0D6A 4
-0D6B 5
-0D6C 6
-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
-0E53 3
-0E54 4
-0E55 5
-0E56 6
-0E57 7
-0E58 8
-0E59 9
-0ED0 0
-0ED1 1
-0ED2 2
-0ED3 3
-0ED4 4
-0ED5 5
-0ED6 6
-0ED7 7
-0ED8 8
-0ED9 9
-0F20 0
-0F21 1
-0F22 2
-0F23 3
-0F24 4
-0F25 5
-0F26 6
-0F27 7
-0F28 8
-0F29 9
-1040 0
-1041 1
-1042 2
-1043 3
-1044 4
-1045 5
-1046 6
-1047 7
-1048 8
-1049 9
-1090 0
-1091 1
-1092 2
-1093 3
-1094 4
-1095 5
-1096 6
-1097 7
-1098 8
-1099 9
-17E0 0
-17E1 1
-17E2 2
-17E3 3
-17E4 4
-17E5 5
-17E6 6
-17E7 7
-17E8 8
-17E9 9
-1810 0
-1811 1
-1812 2
-1813 3
-1814 4
-1815 5
-1816 6
-1817 7
-1818 8
-1819 9
-1946 0
-1947 1
-1948 2
-1949 3
-194A 4
-194B 5
-194C 6
-194D 7
-194E 8
-194F 9
-19D0 0
-19D1 1
-19D2 2
-19D3 3
-19D4 4
-19D5 5
-19D6 6
-19D7 7
-19D8 8
-19D9 9
-1A80 0
-1A81 1
-1A82 2
-1A83 3
-1A84 4
-1A85 5
-1A86 6
-1A87 7
-1A88 8
-1A89 9
-1A90 0
-1A91 1
-1A92 2
-1A93 3
-1A94 4
-1A95 5
-1A96 6
-1A97 7
-1A98 8
-1A99 9
-1B50 0
-1B51 1
-1B52 2
-1B53 3
-1B54 4
-1B55 5
-1B56 6
-1B57 7
-1B58 8
-1B59 9
-1BB0 0
-1BB1 1
-1BB2 2
-1BB3 3
-1BB4 4
-1BB5 5
-1BB6 6
-1BB7 7
-1BB8 8
-1BB9 9
-1C40 0
-1C41 1
-1C42 2
-1C43 3
-1C44 4
-1C45 5
-1C46 6
-1C47 7
-1C48 8
-1C49 9
-1C50 0
-1C51 1
-1C52 2
-1C53 3
-1C54 4
-1C55 5
-1C56 6
-1C57 7
-1C58 8
-1C59 9
-A620 0
-A621 1
-A622 2
-A623 3
-A624 4
-A625 5
-A626 6
-A627 7
-A628 8
-A629 9
-A8D0 0
-A8D1 1
-A8D2 2
-A8D3 3
-A8D4 4
-A8D5 5
-A8D6 6
-A8D7 7
-A8D8 8
-A8D9 9
-A900 0
-A901 1
-A902 2
-A903 3
-A904 4
-A905 5
-A906 6
-A907 7
-A908 8
-A909 9
-A9D0 0
-A9D1 1
-A9D2 2
-A9D3 3
-A9D4 4
-A9D5 5
-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
-AA53 3
-AA54 4
-AA55 5
-AA56 6
-AA57 7
-AA58 8
-AA59 9
-ABF0 0
-ABF1 1
-ABF2 2
-ABF3 3
-ABF4 4
-ABF5 5
-ABF6 6
-ABF7 7
-ABF8 8
-ABF9 9
-FF10 0
-FF11 1
-FF12 2
-FF13 3
-FF14 4
-FF15 5
-FF16 6
-FF17 7
-FF18 8
-FF19 9
-104A0 0
-104A1 1
-104A2 2
-104A3 3
-104A4 4
-104A5 5
-104A6 6
-104A7 7
-104A8 8
-104A9 9
-10D30 0
-10D31 1
-10D32 2
-10D33 3
-10D34 4
-10D35 5
-10D36 6
-10D37 7
-10D38 8
-10D39 9
-11066 0
-11067 1
-11068 2
-11069 3
-1106A 4
-1106B 5
-1106C 6
-1106D 7
-1106E 8
-1106F 9
-110F0 0
-110F1 1
-110F2 2
-110F3 3
-110F4 4
-110F5 5
-110F6 6
-110F7 7
-110F8 8
-110F9 9
-11136 0
-11137 1
-11138 2
-11139 3
-1113A 4
-1113B 5
-1113C 6
-1113D 7
-1113E 8
-1113F 9
-111D0 0
-111D1 1
-111D2 2
-111D3 3
-111D4 4
-111D5 5
-111D6 6
-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
-11450 0
-11451 1
-11452 2
-11453 3
-11454 4
-11455 5
-11456 6
-11457 7
-11458 8
-11459 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
-116C3 3
-116C4 4
-116C5 5
-116C6 6
-116C7 7
-116C8 8
-116C9 9
-11730 0
-11731 1
-11732 2
-11733 3
-11734 4
-11735 5
-11736 6
-11737 7
-11738 8
-11739 9
-118E0 0
-118E1 1
-118E2 2
-118E3 3
-118E4 4
-118E5 5
-118E6 6
-118E7 7
-118E8 8
-118E9 9
-11950 0
-11951 1
-11952 2
-11953 3
-11954 4
-11955 5
-11956 6
-11957 7
-11958 8
-11959 9
-11C50 0
-11C51 1
-11C52 2
-11C53 3
-11C54 4
-11C55 5
-11C56 6
-11C57 7
-11C58 8
-11C59 9
-11D50 0
-11D51 1
-11D52 2
-11D53 3
-11D54 4
-11D55 5
-11D56 6
-11D57 7
-11D58 8
-11D59 9
-11DA0 0
-11DA1 1
-11DA2 2
-11DA3 3
-11DA4 4
-11DA5 5
-11DA6 6
-11DA7 7
-11DA8 8
-11DA9 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
-1D7D1 3
-1D7D2 4
-1D7D3 5
-1D7D4 6
-1D7D5 7
-1D7D6 8
-1D7D7 9
-1D7D8 0
-1D7D9 1
-1D7DA 2
-1D7DB 3
-1D7DC 4
-1D7DD 5
-1D7DE 6
-1D7DF 7
-1D7E0 8
-1D7E1 9
-1D7E2 0
-1D7E3 1
-1D7E4 2
-1D7E5 3
-1D7E6 4
-1D7E7 5
-1D7E8 6
-1D7E9 7
-1D7EA 8
-1D7EB 9
-1D7EC 0
-1D7ED 1
-1D7EE 2
-1D7EF 3
-1D7F0 4
-1D7F1 5
-1D7F2 6
-1D7F3 7
-1D7F4 8
-1D7F5 9
-1D7F6 0
-1D7F7 1
-1D7F8 2
-1D7F9 3
-1D7FA 4
-1D7FB 5
-1D7FC 6
-1D7FD 7
-1D7FE 8
-1D7FF 9
-1E140 0
-1E141 1
-1E142 2
-1E143 3
-1E144 4
-1E145 5
-1E146 6
-1E147 7
-1E148 8
-1E149 9
-1E2F0 0
-1E2F1 1
-1E2F2 2
-1E2F3 3
-1E2F4 4
-1E2F5 5
-1E2F6 6
-1E2F7 7
-1E2F8 8
-1E2F9 9
-1E950 0
-1E951 1
-1E952 2
-1E953 3
-1E954 4
-1E955 5
-1E956 6
-1E957 7
-1E958 8
-1E959 9
-1FBF0 0
-1FBF1 1
-1FBF2 2
-1FBF3 3
-1FBF4 4
-1FBF5 5
-1FBF6 6
-1FBF7 7
-1FBF8 8
-1FBF9 9
-END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl
index a8873a2420..d04bec3ff0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToEa'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToEa'}{'missing'} = 'Neutral';
+$Unicode::UCD::SwashInfo{'ToEa'}{'missing'} = 'N';
return <<'END';
20 7E Na
@@ -266,8 +266,13 @@ FFFD A
17000 187F7 W
18800 18CD5 W
18D00 18D08 W
-1B000 1B11E W
+1AFF0 1AFF3 W
+1AFF5 1AFFB W
+1AFFD 1AFFE W
+1B000 1B122 W
+1B132 W
1B150 1B152 W
+1B155 W
1B164 1B167 W
1B170 1B2FB W
1F004 W
@@ -307,21 +312,21 @@ FFFD A
1F6CC W
1F6D0 1F6D2 W
1F6D5 1F6D7 W
+1F6DC 1F6DF W
1F6EB 1F6EC W
1F6F4 1F6FC W
1F7E0 1F7EB W
+1F7F0 W
1F90C 1F93A W
1F93C 1F945 W
-1F947 1F978 W
-1F97A 1F9CB W
-1F9CD 1F9FF W
-1FA70 1FA74 W
-1FA78 1FA7A W
-1FA80 1FA86 W
-1FA90 1FAA8 W
-1FAB0 1FAB6 W
-1FAC0 1FAC2 W
-1FAD0 1FAD6 W
+1F947 1F9FF W
+1FA70 1FA7C W
+1FA80 1FA88 W
+1FA90 1FABD W
+1FABF 1FAC5 W
+1FACE 1FADB W
+1FAE0 1FAE8 W
+1FAF0 1FAF8 W
20000 2FFFD W
30000 3FFFD W
E0100 E01EF A
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl
index 89a0d73454..61889f8e99 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/EqUIdeo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToEqUIdeo'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToEqUIdeo'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToEqUIdeo'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
2E81 5382
@@ -36,7 +36,7 @@ return <<'END';
2E92 5DF3
2E93 5E7A
2E94 5F51
-2E95 5F50
+2E95 2B739
2E96 5FC4
2E97 5FC3
2E98 624C
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Fold.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Fold.pl
deleted file mode 100644
index 50846de8d9..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Fold.pl
+++ /dev/null
@@ -1,1553 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
-
-# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
-
-# This file is for internal use by core Perl only. It is retained for
-# backwards compatibility with applications that may have come to rely on it,
-# 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') (Values for individual
-# code points can be retrieved via Unicode::UCD::charprop());
-
-
-
-# The name this table is to be known by, with the format of the mappings in
-# the main body of the table, and what all code points missing from this file
-# map to.
-$Unicode::UCD::SwashInfo{'ToFold'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToFold'}{'specials_name'} = 'Unicode::UCD::ToSpecFold'; # Name of hash of special mappings
-$Unicode::UCD::SwashInfo{'ToFold'}{'missing'} = '<code point>'; # code point maps to itself
-
-# Some code points require special handling because their mappings are each to
-# multiple code points. These do not appear in the main body, but are defined
-# in the hash below.
-
-# Each key is the string of N bytes that together make up the UTF-8 encoding
-# for the code point. (i.e. the same as looking at the code point's UTF-8
-# under "use bytes"). Each value is the UTF-8 of the translation, for speed.
-%Unicode::UCD::ToSpecFold = (
-"\xC3\x9F" => "\x{0073}\x{0073}", # U+00DF => 0073 0073
-"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307
-"\xC5\x89" => "\x{02BC}\x{006E}", # U+0149 => 02BC 006E
-"\xC7\xB0" => "\x{006A}\x{030C}", # U+01F0 => 006A 030C
-"\xCE\x90" => "\x{03B9}\x{0308}\x{0301}", # U+0390 => 03B9 0308 0301
-"\xCE\xB0" => "\x{03C5}\x{0308}\x{0301}", # U+03B0 => 03C5 0308 0301
-"\xD6\x87" => "\x{0565}\x{0582}", # U+0587 => 0565 0582
-"\xE1\xBA\x96" => "\x{0068}\x{0331}", # U+1E96 => 0068 0331
-"\xE1\xBA\x97" => "\x{0074}\x{0308}", # U+1E97 => 0074 0308
-"\xE1\xBA\x98" => "\x{0077}\x{030A}", # U+1E98 => 0077 030A
-"\xE1\xBA\x99" => "\x{0079}\x{030A}", # U+1E99 => 0079 030A
-"\xE1\xBA\x9A" => "\x{0061}\x{02BE}", # U+1E9A => 0061 02BE
-"\xE1\xBA\x9E" => "\x{0073}\x{0073}", # U+1E9E => 0073 0073
-"\xE1\xBD\x90" => "\x{03C5}\x{0313}", # U+1F50 => 03C5 0313
-"\xE1\xBD\x92" => "\x{03C5}\x{0313}\x{0300}", # U+1F52 => 03C5 0313 0300
-"\xE1\xBD\x94" => "\x{03C5}\x{0313}\x{0301}", # U+1F54 => 03C5 0313 0301
-"\xE1\xBD\x96" => "\x{03C5}\x{0313}\x{0342}", # U+1F56 => 03C5 0313 0342
-"\xE1\xBE\x80" => "\x{1F00}\x{03B9}", # U+1F80 => 1F00 03B9
-"\xE1\xBE\x81" => "\x{1F01}\x{03B9}", # U+1F81 => 1F01 03B9
-"\xE1\xBE\x82" => "\x{1F02}\x{03B9}", # U+1F82 => 1F02 03B9
-"\xE1\xBE\x83" => "\x{1F03}\x{03B9}", # U+1F83 => 1F03 03B9
-"\xE1\xBE\x84" => "\x{1F04}\x{03B9}", # U+1F84 => 1F04 03B9
-"\xE1\xBE\x85" => "\x{1F05}\x{03B9}", # U+1F85 => 1F05 03B9
-"\xE1\xBE\x86" => "\x{1F06}\x{03B9}", # U+1F86 => 1F06 03B9
-"\xE1\xBE\x87" => "\x{1F07}\x{03B9}", # U+1F87 => 1F07 03B9
-"\xE1\xBE\x88" => "\x{1F00}\x{03B9}", # U+1F88 => 1F00 03B9
-"\xE1\xBE\x89" => "\x{1F01}\x{03B9}", # U+1F89 => 1F01 03B9
-"\xE1\xBE\x8A" => "\x{1F02}\x{03B9}", # U+1F8A => 1F02 03B9
-"\xE1\xBE\x8B" => "\x{1F03}\x{03B9}", # U+1F8B => 1F03 03B9
-"\xE1\xBE\x8C" => "\x{1F04}\x{03B9}", # U+1F8C => 1F04 03B9
-"\xE1\xBE\x8D" => "\x{1F05}\x{03B9}", # U+1F8D => 1F05 03B9
-"\xE1\xBE\x8E" => "\x{1F06}\x{03B9}", # U+1F8E => 1F06 03B9
-"\xE1\xBE\x8F" => "\x{1F07}\x{03B9}", # U+1F8F => 1F07 03B9
-"\xE1\xBE\x90" => "\x{1F20}\x{03B9}", # U+1F90 => 1F20 03B9
-"\xE1\xBE\x91" => "\x{1F21}\x{03B9}", # U+1F91 => 1F21 03B9
-"\xE1\xBE\x92" => "\x{1F22}\x{03B9}", # U+1F92 => 1F22 03B9
-"\xE1\xBE\x93" => "\x{1F23}\x{03B9}", # U+1F93 => 1F23 03B9
-"\xE1\xBE\x94" => "\x{1F24}\x{03B9}", # U+1F94 => 1F24 03B9
-"\xE1\xBE\x95" => "\x{1F25}\x{03B9}", # U+1F95 => 1F25 03B9
-"\xE1\xBE\x96" => "\x{1F26}\x{03B9}", # U+1F96 => 1F26 03B9
-"\xE1\xBE\x97" => "\x{1F27}\x{03B9}", # U+1F97 => 1F27 03B9
-"\xE1\xBE\x98" => "\x{1F20}\x{03B9}", # U+1F98 => 1F20 03B9
-"\xE1\xBE\x99" => "\x{1F21}\x{03B9}", # U+1F99 => 1F21 03B9
-"\xE1\xBE\x9A" => "\x{1F22}\x{03B9}", # U+1F9A => 1F22 03B9
-"\xE1\xBE\x9B" => "\x{1F23}\x{03B9}", # U+1F9B => 1F23 03B9
-"\xE1\xBE\x9C" => "\x{1F24}\x{03B9}", # U+1F9C => 1F24 03B9
-"\xE1\xBE\x9D" => "\x{1F25}\x{03B9}", # U+1F9D => 1F25 03B9
-"\xE1\xBE\x9E" => "\x{1F26}\x{03B9}", # U+1F9E => 1F26 03B9
-"\xE1\xBE\x9F" => "\x{1F27}\x{03B9}", # U+1F9F => 1F27 03B9
-"\xE1\xBE\xA0" => "\x{1F60}\x{03B9}", # U+1FA0 => 1F60 03B9
-"\xE1\xBE\xA1" => "\x{1F61}\x{03B9}", # U+1FA1 => 1F61 03B9
-"\xE1\xBE\xA2" => "\x{1F62}\x{03B9}", # U+1FA2 => 1F62 03B9
-"\xE1\xBE\xA3" => "\x{1F63}\x{03B9}", # U+1FA3 => 1F63 03B9
-"\xE1\xBE\xA4" => "\x{1F64}\x{03B9}", # U+1FA4 => 1F64 03B9
-"\xE1\xBE\xA5" => "\x{1F65}\x{03B9}", # U+1FA5 => 1F65 03B9
-"\xE1\xBE\xA6" => "\x{1F66}\x{03B9}", # U+1FA6 => 1F66 03B9
-"\xE1\xBE\xA7" => "\x{1F67}\x{03B9}", # U+1FA7 => 1F67 03B9
-"\xE1\xBE\xA8" => "\x{1F60}\x{03B9}", # U+1FA8 => 1F60 03B9
-"\xE1\xBE\xA9" => "\x{1F61}\x{03B9}", # U+1FA9 => 1F61 03B9
-"\xE1\xBE\xAA" => "\x{1F62}\x{03B9}", # U+1FAA => 1F62 03B9
-"\xE1\xBE\xAB" => "\x{1F63}\x{03B9}", # U+1FAB => 1F63 03B9
-"\xE1\xBE\xAC" => "\x{1F64}\x{03B9}", # U+1FAC => 1F64 03B9
-"\xE1\xBE\xAD" => "\x{1F65}\x{03B9}", # U+1FAD => 1F65 03B9
-"\xE1\xBE\xAE" => "\x{1F66}\x{03B9}", # U+1FAE => 1F66 03B9
-"\xE1\xBE\xAF" => "\x{1F67}\x{03B9}", # U+1FAF => 1F67 03B9
-"\xE1\xBE\xB2" => "\x{1F70}\x{03B9}", # U+1FB2 => 1F70 03B9
-"\xE1\xBE\xB3" => "\x{03B1}\x{03B9}", # U+1FB3 => 03B1 03B9
-"\xE1\xBE\xB4" => "\x{03AC}\x{03B9}", # U+1FB4 => 03AC 03B9
-"\xE1\xBE\xB6" => "\x{03B1}\x{0342}", # U+1FB6 => 03B1 0342
-"\xE1\xBE\xB7" => "\x{03B1}\x{0342}\x{03B9}", # U+1FB7 => 03B1 0342 03B9
-"\xE1\xBE\xBC" => "\x{03B1}\x{03B9}", # U+1FBC => 03B1 03B9
-"\xE1\xBF\x82" => "\x{1F74}\x{03B9}", # U+1FC2 => 1F74 03B9
-"\xE1\xBF\x83" => "\x{03B7}\x{03B9}", # U+1FC3 => 03B7 03B9
-"\xE1\xBF\x84" => "\x{03AE}\x{03B9}", # U+1FC4 => 03AE 03B9
-"\xE1\xBF\x86" => "\x{03B7}\x{0342}", # U+1FC6 => 03B7 0342
-"\xE1\xBF\x87" => "\x{03B7}\x{0342}\x{03B9}", # U+1FC7 => 03B7 0342 03B9
-"\xE1\xBF\x8C" => "\x{03B7}\x{03B9}", # U+1FCC => 03B7 03B9
-"\xE1\xBF\x92" => "\x{03B9}\x{0308}\x{0300}", # U+1FD2 => 03B9 0308 0300
-"\xE1\xBF\x93" => "\x{03B9}\x{0308}\x{0301}", # U+1FD3 => 03B9 0308 0301
-"\xE1\xBF\x96" => "\x{03B9}\x{0342}", # U+1FD6 => 03B9 0342
-"\xE1\xBF\x97" => "\x{03B9}\x{0308}\x{0342}", # U+1FD7 => 03B9 0308 0342
-"\xE1\xBF\xA2" => "\x{03C5}\x{0308}\x{0300}", # U+1FE2 => 03C5 0308 0300
-"\xE1\xBF\xA3" => "\x{03C5}\x{0308}\x{0301}", # U+1FE3 => 03C5 0308 0301
-"\xE1\xBF\xA4" => "\x{03C1}\x{0313}", # U+1FE4 => 03C1 0313
-"\xE1\xBF\xA6" => "\x{03C5}\x{0342}", # U+1FE6 => 03C5 0342
-"\xE1\xBF\xA7" => "\x{03C5}\x{0308}\x{0342}", # U+1FE7 => 03C5 0308 0342
-"\xE1\xBF\xB2" => "\x{1F7C}\x{03B9}", # U+1FF2 => 1F7C 03B9
-"\xE1\xBF\xB3" => "\x{03C9}\x{03B9}", # U+1FF3 => 03C9 03B9
-"\xE1\xBF\xB4" => "\x{03CE}\x{03B9}", # U+1FF4 => 03CE 03B9
-"\xE1\xBF\xB6" => "\x{03C9}\x{0342}", # U+1FF6 => 03C9 0342
-"\xE1\xBF\xB7" => "\x{03C9}\x{0342}\x{03B9}", # U+1FF7 => 03C9 0342 03B9
-"\xE1\xBF\xBC" => "\x{03C9}\x{03B9}", # U+1FFC => 03C9 03B9
-"\xEF\xAC\x80" => "\x{0066}\x{0066}", # U+FB00 => 0066 0066
-"\xEF\xAC\x81" => "\x{0066}\x{0069}", # U+FB01 => 0066 0069
-"\xEF\xAC\x82" => "\x{0066}\x{006C}", # U+FB02 => 0066 006C
-"\xEF\xAC\x83" => "\x{0066}\x{0066}\x{0069}", # U+FB03 => 0066 0066 0069
-"\xEF\xAC\x84" => "\x{0066}\x{0066}\x{006C}", # U+FB04 => 0066 0066 006C
-"\xEF\xAC\x85" => "\x{0073}\x{0074}", # U+FB05 => 0073 0074
-"\xEF\xAC\x86" => "\x{0073}\x{0074}", # U+FB06 => 0073 0074
-"\xEF\xAC\x93" => "\x{0574}\x{0576}", # U+FB13 => 0574 0576
-"\xEF\xAC\x94" => "\x{0574}\x{0565}", # U+FB14 => 0574 0565
-"\xEF\xAC\x95" => "\x{0574}\x{056B}", # U+FB15 => 0574 056B
-"\xEF\xAC\x96" => "\x{057E}\x{0576}", # U+FB16 => 057E 0576
-"\xEF\xAC\x97" => "\x{0574}\x{056D}", # U+FB17 => 0574 056D
-);
-
-return <<'END';
-0041 0061
-0042 0062
-0043 0063
-0044 0064
-0045 0065
-0046 0066
-0047 0067
-0048 0068
-0049 0069
-004A 006A
-004B 006B
-004C 006C
-004D 006D
-004E 006E
-004F 006F
-0050 0070
-0051 0071
-0052 0072
-0053 0073
-0054 0074
-0055 0075
-0056 0076
-0057 0077
-0058 0078
-0059 0079
-005A 007A
-00B5 03BC
-00C0 00E0
-00C1 00E1
-00C2 00E2
-00C3 00E3
-00C4 00E4
-00C5 00E5
-00C6 00E6
-00C7 00E7
-00C8 00E8
-00C9 00E9
-00CA 00EA
-00CB 00EB
-00CC 00EC
-00CD 00ED
-00CE 00EE
-00CF 00EF
-00D0 00F0
-00D1 00F1
-00D2 00F2
-00D3 00F3
-00D4 00F4
-00D5 00F5
-00D6 00F6
-00D8 00F8
-00D9 00F9
-00DA 00FA
-00DB 00FB
-00DC 00FC
-00DD 00FD
-00DE 00FE
-0100 0101
-0102 0103
-0104 0105
-0106 0107
-0108 0109
-010A 010B
-010C 010D
-010E 010F
-0110 0111
-0112 0113
-0114 0115
-0116 0117
-0118 0119
-011A 011B
-011C 011D
-011E 011F
-0120 0121
-0122 0123
-0124 0125
-0126 0127
-0128 0129
-012A 012B
-012C 012D
-012E 012F
-0132 0133
-0134 0135
-0136 0137
-0139 013A
-013B 013C
-013D 013E
-013F 0140
-0141 0142
-0143 0144
-0145 0146
-0147 0148
-014A 014B
-014C 014D
-014E 014F
-0150 0151
-0152 0153
-0154 0155
-0156 0157
-0158 0159
-015A 015B
-015C 015D
-015E 015F
-0160 0161
-0162 0163
-0164 0165
-0166 0167
-0168 0169
-016A 016B
-016C 016D
-016E 016F
-0170 0171
-0172 0173
-0174 0175
-0176 0177
-0178 00FF
-0179 017A
-017B 017C
-017D 017E
-017F 0073
-0181 0253
-0182 0183
-0184 0185
-0186 0254
-0187 0188
-0189 0256
-018A 0257
-018B 018C
-018E 01DD
-018F 0259
-0190 025B
-0191 0192
-0193 0260
-0194 0263
-0196 0269
-0197 0268
-0198 0199
-019C 026F
-019D 0272
-019F 0275
-01A0 01A1
-01A2 01A3
-01A4 01A5
-01A6 0280
-01A7 01A8
-01A9 0283
-01AC 01AD
-01AE 0288
-01AF 01B0
-01B1 028A
-01B2 028B
-01B3 01B4
-01B5 01B6
-01B7 0292
-01B8 01B9
-01BC 01BD
-01C4 01C6
-01C5 01C6
-01C7 01C9
-01C8 01C9
-01CA 01CC
-01CB 01CC
-01CD 01CE
-01CF 01D0
-01D1 01D2
-01D3 01D4
-01D5 01D6
-01D7 01D8
-01D9 01DA
-01DB 01DC
-01DE 01DF
-01E0 01E1
-01E2 01E3
-01E4 01E5
-01E6 01E7
-01E8 01E9
-01EA 01EB
-01EC 01ED
-01EE 01EF
-01F1 01F3
-01F2 01F3
-01F4 01F5
-01F6 0195
-01F7 01BF
-01F8 01F9
-01FA 01FB
-01FC 01FD
-01FE 01FF
-0200 0201
-0202 0203
-0204 0205
-0206 0207
-0208 0209
-020A 020B
-020C 020D
-020E 020F
-0210 0211
-0212 0213
-0214 0215
-0216 0217
-0218 0219
-021A 021B
-021C 021D
-021E 021F
-0220 019E
-0222 0223
-0224 0225
-0226 0227
-0228 0229
-022A 022B
-022C 022D
-022E 022F
-0230 0231
-0232 0233
-023A 2C65
-023B 023C
-023D 019A
-023E 2C66
-0241 0242
-0243 0180
-0244 0289
-0245 028C
-0246 0247
-0248 0249
-024A 024B
-024C 024D
-024E 024F
-0345 03B9
-0370 0371
-0372 0373
-0376 0377
-037F 03F3
-0386 03AC
-0388 03AD
-0389 03AE
-038A 03AF
-038C 03CC
-038E 03CD
-038F 03CE
-0391 03B1
-0392 03B2
-0393 03B3
-0394 03B4
-0395 03B5
-0396 03B6
-0397 03B7
-0398 03B8
-0399 03B9
-039A 03BA
-039B 03BB
-039C 03BC
-039D 03BD
-039E 03BE
-039F 03BF
-03A0 03C0
-03A1 03C1
-03A3 03C3
-03A4 03C4
-03A5 03C5
-03A6 03C6
-03A7 03C7
-03A8 03C8
-03A9 03C9
-03AA 03CA
-03AB 03CB
-03C2 03C3
-03CF 03D7
-03D0 03B2
-03D1 03B8
-03D5 03C6
-03D6 03C0
-03D8 03D9
-03DA 03DB
-03DC 03DD
-03DE 03DF
-03E0 03E1
-03E2 03E3
-03E4 03E5
-03E6 03E7
-03E8 03E9
-03EA 03EB
-03EC 03ED
-03EE 03EF
-03F0 03BA
-03F1 03C1
-03F4 03B8
-03F5 03B5
-03F7 03F8
-03F9 03F2
-03FA 03FB
-03FD 037B
-03FE 037C
-03FF 037D
-0400 0450
-0401 0451
-0402 0452
-0403 0453
-0404 0454
-0405 0455
-0406 0456
-0407 0457
-0408 0458
-0409 0459
-040A 045A
-040B 045B
-040C 045C
-040D 045D
-040E 045E
-040F 045F
-0410 0430
-0411 0431
-0412 0432
-0413 0433
-0414 0434
-0415 0435
-0416 0436
-0417 0437
-0418 0438
-0419 0439
-041A 043A
-041B 043B
-041C 043C
-041D 043D
-041E 043E
-041F 043F
-0420 0440
-0421 0441
-0422 0442
-0423 0443
-0424 0444
-0425 0445
-0426 0446
-0427 0447
-0428 0448
-0429 0449
-042A 044A
-042B 044B
-042C 044C
-042D 044D
-042E 044E
-042F 044F
-0460 0461
-0462 0463
-0464 0465
-0466 0467
-0468 0469
-046A 046B
-046C 046D
-046E 046F
-0470 0471
-0472 0473
-0474 0475
-0476 0477
-0478 0479
-047A 047B
-047C 047D
-047E 047F
-0480 0481
-048A 048B
-048C 048D
-048E 048F
-0490 0491
-0492 0493
-0494 0495
-0496 0497
-0498 0499
-049A 049B
-049C 049D
-049E 049F
-04A0 04A1
-04A2 04A3
-04A4 04A5
-04A6 04A7
-04A8 04A9
-04AA 04AB
-04AC 04AD
-04AE 04AF
-04B0 04B1
-04B2 04B3
-04B4 04B5
-04B6 04B7
-04B8 04B9
-04BA 04BB
-04BC 04BD
-04BE 04BF
-04C0 04CF
-04C1 04C2
-04C3 04C4
-04C5 04C6
-04C7 04C8
-04C9 04CA
-04CB 04CC
-04CD 04CE
-04D0 04D1
-04D2 04D3
-04D4 04D5
-04D6 04D7
-04D8 04D9
-04DA 04DB
-04DC 04DD
-04DE 04DF
-04E0 04E1
-04E2 04E3
-04E4 04E5
-04E6 04E7
-04E8 04E9
-04EA 04EB
-04EC 04ED
-04EE 04EF
-04F0 04F1
-04F2 04F3
-04F4 04F5
-04F6 04F7
-04F8 04F9
-04FA 04FB
-04FC 04FD
-04FE 04FF
-0500 0501
-0502 0503
-0504 0505
-0506 0507
-0508 0509
-050A 050B
-050C 050D
-050E 050F
-0510 0511
-0512 0513
-0514 0515
-0516 0517
-0518 0519
-051A 051B
-051C 051D
-051E 051F
-0520 0521
-0522 0523
-0524 0525
-0526 0527
-0528 0529
-052A 052B
-052C 052D
-052E 052F
-0531 0561
-0532 0562
-0533 0563
-0534 0564
-0535 0565
-0536 0566
-0537 0567
-0538 0568
-0539 0569
-053A 056A
-053B 056B
-053C 056C
-053D 056D
-053E 056E
-053F 056F
-0540 0570
-0541 0571
-0542 0572
-0543 0573
-0544 0574
-0545 0575
-0546 0576
-0547 0577
-0548 0578
-0549 0579
-054A 057A
-054B 057B
-054C 057C
-054D 057D
-054E 057E
-054F 057F
-0550 0580
-0551 0581
-0552 0582
-0553 0583
-0554 0584
-0555 0585
-0556 0586
-10A0 2D00
-10A1 2D01
-10A2 2D02
-10A3 2D03
-10A4 2D04
-10A5 2D05
-10A6 2D06
-10A7 2D07
-10A8 2D08
-10A9 2D09
-10AA 2D0A
-10AB 2D0B
-10AC 2D0C
-10AD 2D0D
-10AE 2D0E
-10AF 2D0F
-10B0 2D10
-10B1 2D11
-10B2 2D12
-10B3 2D13
-10B4 2D14
-10B5 2D15
-10B6 2D16
-10B7 2D17
-10B8 2D18
-10B9 2D19
-10BA 2D1A
-10BB 2D1B
-10BC 2D1C
-10BD 2D1D
-10BE 2D1E
-10BF 2D1F
-10C0 2D20
-10C1 2D21
-10C2 2D22
-10C3 2D23
-10C4 2D24
-10C5 2D25
-10C7 2D27
-10CD 2D2D
-13F8 13F0
-13F9 13F1
-13FA 13F2
-13FB 13F3
-13FC 13F4
-13FD 13F5
-1C80 0432
-1C81 0434
-1C82 043E
-1C83 0441
-1C84 0442
-1C85 0442
-1C86 044A
-1C87 0463
-1C88 A64B
-1C90 10D0
-1C91 10D1
-1C92 10D2
-1C93 10D3
-1C94 10D4
-1C95 10D5
-1C96 10D6
-1C97 10D7
-1C98 10D8
-1C99 10D9
-1C9A 10DA
-1C9B 10DB
-1C9C 10DC
-1C9D 10DD
-1C9E 10DE
-1C9F 10DF
-1CA0 10E0
-1CA1 10E1
-1CA2 10E2
-1CA3 10E3
-1CA4 10E4
-1CA5 10E5
-1CA6 10E6
-1CA7 10E7
-1CA8 10E8
-1CA9 10E9
-1CAA 10EA
-1CAB 10EB
-1CAC 10EC
-1CAD 10ED
-1CAE 10EE
-1CAF 10EF
-1CB0 10F0
-1CB1 10F1
-1CB2 10F2
-1CB3 10F3
-1CB4 10F4
-1CB5 10F5
-1CB6 10F6
-1CB7 10F7
-1CB8 10F8
-1CB9 10F9
-1CBA 10FA
-1CBD 10FD
-1CBE 10FE
-1CBF 10FF
-1E00 1E01
-1E02 1E03
-1E04 1E05
-1E06 1E07
-1E08 1E09
-1E0A 1E0B
-1E0C 1E0D
-1E0E 1E0F
-1E10 1E11
-1E12 1E13
-1E14 1E15
-1E16 1E17
-1E18 1E19
-1E1A 1E1B
-1E1C 1E1D
-1E1E 1E1F
-1E20 1E21
-1E22 1E23
-1E24 1E25
-1E26 1E27
-1E28 1E29
-1E2A 1E2B
-1E2C 1E2D
-1E2E 1E2F
-1E30 1E31
-1E32 1E33
-1E34 1E35
-1E36 1E37
-1E38 1E39
-1E3A 1E3B
-1E3C 1E3D
-1E3E 1E3F
-1E40 1E41
-1E42 1E43
-1E44 1E45
-1E46 1E47
-1E48 1E49
-1E4A 1E4B
-1E4C 1E4D
-1E4E 1E4F
-1E50 1E51
-1E52 1E53
-1E54 1E55
-1E56 1E57
-1E58 1E59
-1E5A 1E5B
-1E5C 1E5D
-1E5E 1E5F
-1E60 1E61
-1E62 1E63
-1E64 1E65
-1E66 1E67
-1E68 1E69
-1E6A 1E6B
-1E6C 1E6D
-1E6E 1E6F
-1E70 1E71
-1E72 1E73
-1E74 1E75
-1E76 1E77
-1E78 1E79
-1E7A 1E7B
-1E7C 1E7D
-1E7E 1E7F
-1E80 1E81
-1E82 1E83
-1E84 1E85
-1E86 1E87
-1E88 1E89
-1E8A 1E8B
-1E8C 1E8D
-1E8E 1E8F
-1E90 1E91
-1E92 1E93
-1E94 1E95
-1E9B 1E61
-1E9E 00DF
-1EA0 1EA1
-1EA2 1EA3
-1EA4 1EA5
-1EA6 1EA7
-1EA8 1EA9
-1EAA 1EAB
-1EAC 1EAD
-1EAE 1EAF
-1EB0 1EB1
-1EB2 1EB3
-1EB4 1EB5
-1EB6 1EB7
-1EB8 1EB9
-1EBA 1EBB
-1EBC 1EBD
-1EBE 1EBF
-1EC0 1EC1
-1EC2 1EC3
-1EC4 1EC5
-1EC6 1EC7
-1EC8 1EC9
-1ECA 1ECB
-1ECC 1ECD
-1ECE 1ECF
-1ED0 1ED1
-1ED2 1ED3
-1ED4 1ED5
-1ED6 1ED7
-1ED8 1ED9
-1EDA 1EDB
-1EDC 1EDD
-1EDE 1EDF
-1EE0 1EE1
-1EE2 1EE3
-1EE4 1EE5
-1EE6 1EE7
-1EE8 1EE9
-1EEA 1EEB
-1EEC 1EED
-1EEE 1EEF
-1EF0 1EF1
-1EF2 1EF3
-1EF4 1EF5
-1EF6 1EF7
-1EF8 1EF9
-1EFA 1EFB
-1EFC 1EFD
-1EFE 1EFF
-1F08 1F00
-1F09 1F01
-1F0A 1F02
-1F0B 1F03
-1F0C 1F04
-1F0D 1F05
-1F0E 1F06
-1F0F 1F07
-1F18 1F10
-1F19 1F11
-1F1A 1F12
-1F1B 1F13
-1F1C 1F14
-1F1D 1F15
-1F28 1F20
-1F29 1F21
-1F2A 1F22
-1F2B 1F23
-1F2C 1F24
-1F2D 1F25
-1F2E 1F26
-1F2F 1F27
-1F38 1F30
-1F39 1F31
-1F3A 1F32
-1F3B 1F33
-1F3C 1F34
-1F3D 1F35
-1F3E 1F36
-1F3F 1F37
-1F48 1F40
-1F49 1F41
-1F4A 1F42
-1F4B 1F43
-1F4C 1F44
-1F4D 1F45
-1F59 1F51
-1F5B 1F53
-1F5D 1F55
-1F5F 1F57
-1F68 1F60
-1F69 1F61
-1F6A 1F62
-1F6B 1F63
-1F6C 1F64
-1F6D 1F65
-1F6E 1F66
-1F6F 1F67
-1F88 1F80
-1F89 1F81
-1F8A 1F82
-1F8B 1F83
-1F8C 1F84
-1F8D 1F85
-1F8E 1F86
-1F8F 1F87
-1F98 1F90
-1F99 1F91
-1F9A 1F92
-1F9B 1F93
-1F9C 1F94
-1F9D 1F95
-1F9E 1F96
-1F9F 1F97
-1FA8 1FA0
-1FA9 1FA1
-1FAA 1FA2
-1FAB 1FA3
-1FAC 1FA4
-1FAD 1FA5
-1FAE 1FA6
-1FAF 1FA7
-1FB8 1FB0
-1FB9 1FB1
-1FBA 1F70
-1FBB 1F71
-1FBC 1FB3
-1FBE 03B9
-1FC8 1F72
-1FC9 1F73
-1FCA 1F74
-1FCB 1F75
-1FCC 1FC3
-1FD8 1FD0
-1FD9 1FD1
-1FDA 1F76
-1FDB 1F77
-1FE8 1FE0
-1FE9 1FE1
-1FEA 1F7A
-1FEB 1F7B
-1FEC 1FE5
-1FF8 1F78
-1FF9 1F79
-1FFA 1F7C
-1FFB 1F7D
-1FFC 1FF3
-2126 03C9
-212A 006B
-212B 00E5
-2132 214E
-2160 2170
-2161 2171
-2162 2172
-2163 2173
-2164 2174
-2165 2175
-2166 2176
-2167 2177
-2168 2178
-2169 2179
-216A 217A
-216B 217B
-216C 217C
-216D 217D
-216E 217E
-216F 217F
-2183 2184
-24B6 24D0
-24B7 24D1
-24B8 24D2
-24B9 24D3
-24BA 24D4
-24BB 24D5
-24BC 24D6
-24BD 24D7
-24BE 24D8
-24BF 24D9
-24C0 24DA
-24C1 24DB
-24C2 24DC
-24C3 24DD
-24C4 24DE
-24C5 24DF
-24C6 24E0
-24C7 24E1
-24C8 24E2
-24C9 24E3
-24CA 24E4
-24CB 24E5
-24CC 24E6
-24CD 24E7
-24CE 24E8
-24CF 24E9
-2C00 2C30
-2C01 2C31
-2C02 2C32
-2C03 2C33
-2C04 2C34
-2C05 2C35
-2C06 2C36
-2C07 2C37
-2C08 2C38
-2C09 2C39
-2C0A 2C3A
-2C0B 2C3B
-2C0C 2C3C
-2C0D 2C3D
-2C0E 2C3E
-2C0F 2C3F
-2C10 2C40
-2C11 2C41
-2C12 2C42
-2C13 2C43
-2C14 2C44
-2C15 2C45
-2C16 2C46
-2C17 2C47
-2C18 2C48
-2C19 2C49
-2C1A 2C4A
-2C1B 2C4B
-2C1C 2C4C
-2C1D 2C4D
-2C1E 2C4E
-2C1F 2C4F
-2C20 2C50
-2C21 2C51
-2C22 2C52
-2C23 2C53
-2C24 2C54
-2C25 2C55
-2C26 2C56
-2C27 2C57
-2C28 2C58
-2C29 2C59
-2C2A 2C5A
-2C2B 2C5B
-2C2C 2C5C
-2C2D 2C5D
-2C2E 2C5E
-2C60 2C61
-2C62 026B
-2C63 1D7D
-2C64 027D
-2C67 2C68
-2C69 2C6A
-2C6B 2C6C
-2C6D 0251
-2C6E 0271
-2C6F 0250
-2C70 0252
-2C72 2C73
-2C75 2C76
-2C7E 023F
-2C7F 0240
-2C80 2C81
-2C82 2C83
-2C84 2C85
-2C86 2C87
-2C88 2C89
-2C8A 2C8B
-2C8C 2C8D
-2C8E 2C8F
-2C90 2C91
-2C92 2C93
-2C94 2C95
-2C96 2C97
-2C98 2C99
-2C9A 2C9B
-2C9C 2C9D
-2C9E 2C9F
-2CA0 2CA1
-2CA2 2CA3
-2CA4 2CA5
-2CA6 2CA7
-2CA8 2CA9
-2CAA 2CAB
-2CAC 2CAD
-2CAE 2CAF
-2CB0 2CB1
-2CB2 2CB3
-2CB4 2CB5
-2CB6 2CB7
-2CB8 2CB9
-2CBA 2CBB
-2CBC 2CBD
-2CBE 2CBF
-2CC0 2CC1
-2CC2 2CC3
-2CC4 2CC5
-2CC6 2CC7
-2CC8 2CC9
-2CCA 2CCB
-2CCC 2CCD
-2CCE 2CCF
-2CD0 2CD1
-2CD2 2CD3
-2CD4 2CD5
-2CD6 2CD7
-2CD8 2CD9
-2CDA 2CDB
-2CDC 2CDD
-2CDE 2CDF
-2CE0 2CE1
-2CE2 2CE3
-2CEB 2CEC
-2CED 2CEE
-2CF2 2CF3
-A640 A641
-A642 A643
-A644 A645
-A646 A647
-A648 A649
-A64A A64B
-A64C A64D
-A64E A64F
-A650 A651
-A652 A653
-A654 A655
-A656 A657
-A658 A659
-A65A A65B
-A65C A65D
-A65E A65F
-A660 A661
-A662 A663
-A664 A665
-A666 A667
-A668 A669
-A66A A66B
-A66C A66D
-A680 A681
-A682 A683
-A684 A685
-A686 A687
-A688 A689
-A68A A68B
-A68C A68D
-A68E A68F
-A690 A691
-A692 A693
-A694 A695
-A696 A697
-A698 A699
-A69A A69B
-A722 A723
-A724 A725
-A726 A727
-A728 A729
-A72A A72B
-A72C A72D
-A72E A72F
-A732 A733
-A734 A735
-A736 A737
-A738 A739
-A73A A73B
-A73C A73D
-A73E A73F
-A740 A741
-A742 A743
-A744 A745
-A746 A747
-A748 A749
-A74A A74B
-A74C A74D
-A74E A74F
-A750 A751
-A752 A753
-A754 A755
-A756 A757
-A758 A759
-A75A A75B
-A75C A75D
-A75E A75F
-A760 A761
-A762 A763
-A764 A765
-A766 A767
-A768 A769
-A76A A76B
-A76C A76D
-A76E A76F
-A779 A77A
-A77B A77C
-A77D 1D79
-A77E A77F
-A780 A781
-A782 A783
-A784 A785
-A786 A787
-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
-A7AE 026A
-A7B0 029E
-A7B1 0287
-A7B2 029D
-A7B3 AB53
-A7B4 A7B5
-A7B6 A7B7
-A7B8 A7B9
-A7BA A7BB
-A7BC A7BD
-A7BE A7BF
-A7C2 A7C3
-A7C4 A794
-A7C5 0282
-A7C6 1D8E
-A7C7 A7C8
-A7C9 A7CA
-A7F5 A7F6
-AB70 13A0
-AB71 13A1
-AB72 13A2
-AB73 13A3
-AB74 13A4
-AB75 13A5
-AB76 13A6
-AB77 13A7
-AB78 13A8
-AB79 13A9
-AB7A 13AA
-AB7B 13AB
-AB7C 13AC
-AB7D 13AD
-AB7E 13AE
-AB7F 13AF
-AB80 13B0
-AB81 13B1
-AB82 13B2
-AB83 13B3
-AB84 13B4
-AB85 13B5
-AB86 13B6
-AB87 13B7
-AB88 13B8
-AB89 13B9
-AB8A 13BA
-AB8B 13BB
-AB8C 13BC
-AB8D 13BD
-AB8E 13BE
-AB8F 13BF
-AB90 13C0
-AB91 13C1
-AB92 13C2
-AB93 13C3
-AB94 13C4
-AB95 13C5
-AB96 13C6
-AB97 13C7
-AB98 13C8
-AB99 13C9
-AB9A 13CA
-AB9B 13CB
-AB9C 13CC
-AB9D 13CD
-AB9E 13CE
-AB9F 13CF
-ABA0 13D0
-ABA1 13D1
-ABA2 13D2
-ABA3 13D3
-ABA4 13D4
-ABA5 13D5
-ABA6 13D6
-ABA7 13D7
-ABA8 13D8
-ABA9 13D9
-ABAA 13DA
-ABAB 13DB
-ABAC 13DC
-ABAD 13DD
-ABAE 13DE
-ABAF 13DF
-ABB0 13E0
-ABB1 13E1
-ABB2 13E2
-ABB3 13E3
-ABB4 13E4
-ABB5 13E5
-ABB6 13E6
-ABB7 13E7
-ABB8 13E8
-ABB9 13E9
-ABBA 13EA
-ABBB 13EB
-ABBC 13EC
-ABBD 13ED
-ABBE 13EE
-ABBF 13EF
-FF21 FF41
-FF22 FF42
-FF23 FF43
-FF24 FF44
-FF25 FF45
-FF26 FF46
-FF27 FF47
-FF28 FF48
-FF29 FF49
-FF2A FF4A
-FF2B FF4B
-FF2C FF4C
-FF2D FF4D
-FF2E FF4E
-FF2F FF4F
-FF30 FF50
-FF31 FF51
-FF32 FF52
-FF33 FF53
-FF34 FF54
-FF35 FF55
-FF36 FF56
-FF37 FF57
-FF38 FF58
-FF39 FF59
-FF3A FF5A
-10400 10428
-10401 10429
-10402 1042A
-10403 1042B
-10404 1042C
-10405 1042D
-10406 1042E
-10407 1042F
-10408 10430
-10409 10431
-1040A 10432
-1040B 10433
-1040C 10434
-1040D 10435
-1040E 10436
-1040F 10437
-10410 10438
-10411 10439
-10412 1043A
-10413 1043B
-10414 1043C
-10415 1043D
-10416 1043E
-10417 1043F
-10418 10440
-10419 10441
-1041A 10442
-1041B 10443
-1041C 10444
-1041D 10445
-1041E 10446
-1041F 10447
-10420 10448
-10421 10449
-10422 1044A
-10423 1044B
-10424 1044C
-10425 1044D
-10426 1044E
-10427 1044F
-104B0 104D8
-104B1 104D9
-104B2 104DA
-104B3 104DB
-104B4 104DC
-104B5 104DD
-104B6 104DE
-104B7 104DF
-104B8 104E0
-104B9 104E1
-104BA 104E2
-104BB 104E3
-104BC 104E4
-104BD 104E5
-104BE 104E6
-104BF 104E7
-104C0 104E8
-104C1 104E9
-104C2 104EA
-104C3 104EB
-104C4 104EC
-104C5 104ED
-104C6 104EE
-104C7 104EF
-104C8 104F0
-104C9 104F1
-104CA 104F2
-104CB 104F3
-104CC 104F4
-104CD 104F5
-104CE 104F6
-104CF 104F7
-104D0 104F8
-104D1 104F9
-104D2 104FA
-104D3 104FB
-10C80 10CC0
-10C81 10CC1
-10C82 10CC2
-10C83 10CC3
-10C84 10CC4
-10C85 10CC5
-10C86 10CC6
-10C87 10CC7
-10C88 10CC8
-10C89 10CC9
-10C8A 10CCA
-10C8B 10CCB
-10C8C 10CCC
-10C8D 10CCD
-10C8E 10CCE
-10C8F 10CCF
-10C90 10CD0
-10C91 10CD1
-10C92 10CD2
-10C93 10CD3
-10C94 10CD4
-10C95 10CD5
-10C96 10CD6
-10C97 10CD7
-10C98 10CD8
-10C99 10CD9
-10C9A 10CDA
-10C9B 10CDB
-10C9C 10CDC
-10C9D 10CDD
-10C9E 10CDE
-10C9F 10CDF
-10CA0 10CE0
-10CA1 10CE1
-10CA2 10CE2
-10CA3 10CE3
-10CA4 10CE4
-10CA5 10CE5
-10CA6 10CE6
-10CA7 10CE7
-10CA8 10CE8
-10CA9 10CE9
-10CAA 10CEA
-10CAB 10CEB
-10CAC 10CEC
-10CAD 10CED
-10CAE 10CEE
-10CAF 10CEF
-10CB0 10CF0
-10CB1 10CF1
-10CB2 10CF2
-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
-16E40 16E60
-16E41 16E61
-16E42 16E62
-16E43 16E63
-16E44 16E64
-16E45 16E65
-16E46 16E66
-16E47 16E67
-16E48 16E68
-16E49 16E69
-16E4A 16E6A
-16E4B 16E6B
-16E4C 16E6C
-16E4D 16E6D
-16E4E 16E6E
-16E4F 16E6F
-16E50 16E70
-16E51 16E71
-16E52 16E72
-16E53 16E73
-16E54 16E74
-16E55 16E75
-16E56 16E76
-16E57 16E77
-16E58 16E78
-16E59 16E79
-16E5A 16E7A
-16E5B 16E7B
-16E5C 16E7C
-16E5D 16E7D
-16E5E 16E7E
-16E5F 16E7F
-1E900 1E922
-1E901 1E923
-1E902 1E924
-1E903 1E925
-1E904 1E926
-1E905 1E927
-1E906 1E928
-1E907 1E929
-1E908 1E92A
-1E909 1E92B
-1E90A 1E92C
-1E90B 1E92D
-1E90C 1E92E
-1E90D 1E92F
-1E90E 1E930
-1E90F 1E931
-1E910 1E932
-1E911 1E933
-1E912 1E934
-1E913 1E935
-1E914 1E936
-1E915 1E937
-1E916 1E938
-1E917 1E939
-1E918 1E93A
-1E919 1E93B
-1E91A 1E93C
-1E91B 1E93D
-1E91C 1E93E
-1E91D 1E93F
-1E91E 1E940
-1E91F 1E941
-1E920 1E942
-1E921 1E943
-END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl
index 34994b1f63..1fcfcc1740 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -54,7 +54,9 @@ AE ExtPict_XX
825 827 Extend
829 82D Extend
859 85B Extend
-8D3 8E1 Extend
+890 891 Prepend
+898 89F Extend
+8CA 8E1 Extend
8E2 Prepend
8E3 902 Extend
903 SpacingMark
@@ -124,6 +126,7 @@ BD7 Extend
C00 Extend
C01 C03 SpacingMark
C04 Extend
+C3C Extend
C3E C40 Extend
C41 C44 SpacingMark
C46 C48 Extend
@@ -144,6 +147,7 @@ CCA CCB SpacingMark
CCC CCD Extend
CD5 CD6 Extend
CE2 CE3 Extend
+CF3 SpacingMark
D00 D01 Extend
D02 D03 SpacingMark
D3B D3C Extend
@@ -173,7 +177,7 @@ E47 E4E Extend
EB1 Extend
EB3 SpacingMark
EB4 EBC Extend
-EC8 ECD Extend
+EC8 ECE Extend
F18 F19 Extend
F35 Extend
F37 Extend
@@ -206,7 +210,9 @@ FC6 Extend
11A8 11FF T
135D 135F Extend
1712 1714 Extend
-1732 1734 Extend
+1715 SpacingMark
+1732 1733 Extend
+1734 SpacingMark
1752 1753 Extend
1772 1773 Extend
17B4 17B5 Extend
@@ -219,6 +225,7 @@ FC6 Extend
17DD Extend
180B 180D Extend
180E Control
+180F Extend
1885 1886 Extend
18A9 Extend
1920 1922 Extend
@@ -242,7 +249,7 @@ FC6 Extend
1A6D 1A72 SpacingMark
1A73 1A7C Extend
1A7F Extend
-1AB0 1AC0 Extend
+1AB0 1ACE Extend
1B00 1B03 Extend
1B04 SpacingMark
1B34 1B3A Extend
@@ -280,8 +287,7 @@ FC6 Extend
1CF4 Extend
1CF7 SpacingMark
1CF8 1CF9 Extend
-1DC0 1DF9 Extend
-1DFB 1DFF Extend
+1DC0 1DFF Extend
200B Control
200C Extend
200D ZWJ
@@ -1214,11 +1220,15 @@ FFF0 FFFB Control
10AE5 10AE6 Extend
10D24 10D27 Extend
10EAB 10EAC Extend
+10EFD 10EFF Extend
10F46 10F50 Extend
+10F82 10F85 Extend
11000 SpacingMark
11001 Extend
11002 SpacingMark
11038 11046 Extend
+11070 Extend
+11073 11074 Extend
1107F 11081 Extend
11082 SpacingMark
110B0 110B2 SpacingMark
@@ -1226,6 +1236,7 @@ FFF0 FFFB Control
110B7 110B8 SpacingMark
110B9 110BA Extend
110BD Prepend
+110C2 Extend
110CD Prepend
11100 11102 Extend
11127 1112B Extend
@@ -1249,6 +1260,7 @@ FFF0 FFFB Control
11235 SpacingMark
11236 11237 Extend
1123E Extend
+11241 Extend
112DF Extend
112E0 112E2 SpacingMark
112E3 112EA Extend
@@ -1305,7 +1317,6 @@ FFF0 FFFB Control
116B6 SpacingMark
116B7 Extend
1171D 1171F Extend
-11720 11721 SpacingMark
11722 11725 Extend
11726 SpacingMark
11727 1172B Extend
@@ -1369,7 +1380,18 @@ FFF0 FFFB Control
11D97 Extend
11EF3 11EF4 Extend
11EF5 11EF6 SpacingMark
-13430 13438 Control
+11F00 11F01 Extend
+11F02 Prepend
+11F03 SpacingMark
+11F34 11F35 SpacingMark
+11F36 11F3A Extend
+11F3E 11F3F SpacingMark
+11F40 Extend
+11F41 SpacingMark
+11F42 Extend
+13430 1343F Control
+13440 Extend
+13447 13455 Extend
16AF0 16AF4 Extend
16B30 16B36 Extend
16F4F Extend
@@ -1379,6 +1401,8 @@ FFF0 FFFB Control
16FF0 16FF1 SpacingMark
1BC9D 1BC9E Extend
1BCA0 1BCA3 Control
+1CF00 1CF2D Extend
+1CF30 1CF46 Extend
1D165 Extend
1D166 SpacingMark
1D167 1D169 Extend
@@ -1400,8 +1424,11 @@ FFF0 FFFB Control
1E01B 1E021 Extend
1E023 1E024 Extend
1E026 1E02A Extend
+1E08F Extend
1E130 1E136 Extend
+1E2AE Extend
1E2EC 1E2EF Extend
+1E4EC 1E4EF Extend
1E8D0 1E8D6 Extend
1E944 1E94A Extend
1F000 1F0FF ExtPict_XX
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl
index b6772db84a..bff3acd746 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -667,7 +667,7 @@ F8 FF Ll
610 61A Mn
61B Po
61C Cf
-61E 61F Po
+61D 61F Po
620 63F Lo
640 Lm
641 64A Lo
@@ -723,9 +723,14 @@ F8 FF Ll
859 85B Mn
85E Po
860 86A Lo
-8A0 8B4 Lo
-8B6 8C7 Lo
-8D3 8E1 Mn
+870 887 Lo
+888 Sk
+889 88E Lo
+890 891 Cf
+898 89F Mn
+8A0 8C8 Lo
+8C9 Lm
+8CA 8E1 Mn
8E2 Cf
8E3 902 Mn
903 Mc
@@ -880,6 +885,7 @@ C05 C0C Lo
C0E C10 Lo
C12 C28 Lo
C2A C39 Lo
+C3C Mn
C3D Lo
C3E C40 Mn
C41 C44 Mc
@@ -887,6 +893,7 @@ C46 C48 Mn
C4A C4D Mn
C55 C56 Mn
C58 C5A Lo
+C5D Lo
C60 C61 Lo
C62 C63 Mn
C66 C6F Nd
@@ -912,11 +919,12 @@ CC7 CC8 Mc
CCA CCB Mc
CCC CCD Mn
CD5 CD6 Mc
-CDE Lo
+CDD CDE Lo
CE0 CE1 Lo
CE2 CE3 Mn
CE6 CEF Nd
CF1 CF2 Lo
+CF3 Mc
D00 D01 Mn
D02 D03 Mc
D04 D0C Lo
@@ -978,7 +986,7 @@ EB4 EBC Mn
EBD Lo
EC0 EC4 Lo
EC6 Lm
-EC8 ECD Mn
+EC8 ECE Mn
ED0 ED9 Nd
EDC EDF Lo
F00 Lo
@@ -1097,11 +1105,12 @@ FD9 FDA Po
16EB 16ED Po
16EE 16F0 Nl
16F1 16F8 Lo
-1700 170C Lo
-170E 1711 Lo
+1700 1711 Lo
1712 1714 Mn
-1720 1731 Lo
-1732 1734 Mn
+1715 Mc
+171F 1731 Lo
+1732 1733 Mn
+1734 Mc
1735 1736 Po
1740 1751 Lo
1752 1753 Mn
@@ -1129,6 +1138,7 @@ FD9 FDA Po
1807 180A Po
180B 180D Mn
180E Cf
+180F Mn
1810 1819 Nd
1820 1842 Lo
1843 Lm
@@ -1183,7 +1193,7 @@ FD9 FDA Po
1AA8 1AAD Po
1AB0 1ABD Mn
1ABE Me
-1ABF 1AC0 Mn
+1ABF 1ACE Mn
1B00 1B03 Mn
1B04 Mc
1B05 1B33 Lo
@@ -1195,12 +1205,13 @@ FD9 FDA Po
1B3D 1B41 Mc
1B42 Mn
1B43 1B44 Mc
-1B45 1B4B Lo
+1B45 1B4C Lo
1B50 1B59 Nd
1B5A 1B60 Po
1B61 1B6A So
1B6B 1B73 Mn
1B74 1B7C So
+1B7D 1B7E Po
1B80 1B81 Mn
1B82 Mc
1B83 1BA0 Lo
@@ -1257,8 +1268,7 @@ FD9 FDA Po
1D78 Lm
1D79 1D9A Ll
1D9B 1DBF Lm
-1DC0 1DF9 Mn
-1DFB 1DFF Mn
+1DC0 1DFF Mn
1E00 Lu
1E01 Ll
1E02 Lu
@@ -1599,7 +1609,7 @@ FD9 FDA Po
208D Ps
208E Pe
2090 209C Lm
-20A0 20BF Sc
+20A0 20C0 Sc
20D0 20DC Mn
20DD 20E0 Me
20E1 Mn
@@ -1772,8 +1782,8 @@ FD9 FDA Po
2B4D 2B73 So
2B76 2B95 So
2B97 2BFF So
-2C00 2C2E Lu
-2C30 2C5E Ll
+2C00 2C2F Lu
+2C30 2C5F Ll
2C60 Lu
2C61 Ll
2C62 2C64 Lu
@@ -1958,7 +1968,16 @@ FD9 FDA Po
2E42 Ps
2E43 2E4F Po
2E50 2E51 So
-2E52 Po
+2E52 2E54 Po
+2E55 Ps
+2E56 Pe
+2E57 Ps
+2E58 Pe
+2E59 Ps
+2E5A Pe
+2E5B Ps
+2E5C Pe
+2E5D Pd
2E80 2E99 So
2E9B 2EF3 So
2F00 2FD5 So
@@ -2034,8 +2053,7 @@ FD9 FDA Po
32C0 33FF So
3400 4DBF Lo
4DC0 4DFF So
-4E00 9FFC Lo
-A000 A014 Lo
+4E00 A014 Lo
A015 Lm
A016 A48C Lo
A490 A4C6 So
@@ -2275,12 +2293,23 @@ A7BC Lu
A7BD Ll
A7BE Lu
A7BF Ll
+A7C0 Lu
+A7C1 Ll
A7C2 Lu
A7C3 Ll
A7C4 A7C7 Lu
A7C8 Ll
A7C9 Lu
A7CA Ll
+A7D0 Lu
+A7D1 Ll
+A7D3 Ll
+A7D5 Ll
+A7D6 Lu
+A7D7 Ll
+A7D8 Lu
+A7D9 Ll
+A7F2 A7F4 Lm
A7F5 Lu
A7F6 Ll
A7F7 Lo
@@ -2430,15 +2459,17 @@ FB3E Lo
FB40 FB41 Lo
FB43 FB44 Lo
FB46 FBB1 Lo
-FBB2 FBC1 Sk
+FBB2 FBC2 Sk
FBD3 FD3D Lo
FD3E Pe
FD3F Ps
+FD40 FD4F So
FD50 FD8F Lo
FD92 FDC7 Lo
+FDCF So
FDF0 FDFB Lo
FDFC Sc
-FDFD So
+FDFD FDFF So
FE00 FE0F Mn
FE10 FE16 Po
FE17 Ps
@@ -2585,9 +2616,20 @@ FFFC FFFD So
10500 10527 Lo
10530 10563 Lo
1056F Po
+10570 1057A Lu
+1057C 1058A Lu
+1058C 10592 Lu
+10594 10595 Lu
+10597 105A1 Ll
+105A3 105B1 Ll
+105B3 105B9 Ll
+105BB 105BC Ll
10600 10736 Lo
10740 10755 Lo
10760 10767 Lo
+10780 10785 Lm
+10787 107B0 Lm
+107B2 107BA Lm
10800 10805 Lo
10808 Lo
1080A 10835 Lo
@@ -2657,6 +2699,7 @@ FFFC FFFD So
10EAB 10EAC Mn
10EAD Pd
10EB0 10EB1 Lo
+10EFD 10EFF Mn
10F00 10F1C Lo
10F1D 10F26 No
10F27 Lo
@@ -2664,6 +2707,9 @@ FFFC FFFD So
10F46 10F50 Mn
10F51 10F54 No
10F55 10F59 Po
+10F70 10F81 Lo
+10F82 10F85 Mn
+10F86 10F89 Po
10FB0 10FC4 Lo
10FC5 10FCB No
10FE0 10FF6 Lo
@@ -2675,6 +2721,10 @@ FFFC FFFD So
11047 1104D Po
11052 11065 No
11066 1106F Nd
+11070 Mn
+11071 11072 Lo
+11073 11074 Mn
+11075 Lo
1107F 11081 Mn
11082 Mc
11083 110AF Lo
@@ -2685,6 +2735,7 @@ FFFC FFFD So
110BB 110BC Po
110BD Cf
110BE 110C1 Po
+110C2 Mn
110CD Cf
110D0 110E8 Lo
110F0 110F9 Nd
@@ -2730,6 +2781,8 @@ FFFC FFFD So
11236 11237 Mn
11238 1123D Po
1123E Mn
+1123F 11240 Lo
+11241 Mn
11280 11286 Lo
11288 Lo
1128A 1128D Lo
@@ -2819,6 +2872,7 @@ FFFC FFFD So
116B6 Mc
116B7 Mn
116B8 Lo
+116B9 Po
116C0 116C9 Nd
11700 1171A Lo
1171D 1171F Mn
@@ -2830,6 +2884,7 @@ FFFC FFFD So
1173A 1173B No
1173C 1173E Po
1173F So
+11740 11746 Lo
11800 1182B Lo
1182C 1182E Mc
1182F 11837 Mn
@@ -2888,7 +2943,8 @@ FFFC FFFD So
11A9A 11A9C Po
11A9D Lo
11A9E 11AA2 Po
-11AC0 11AF8 Lo
+11AB0 11AF8 Lo
+11B00 11B09 Po
11C00 11C08 Lo
11C0A 11C2E Lo
11C2F Mc
@@ -2934,6 +2990,19 @@ FFFC FFFD So
11EF3 11EF4 Mn
11EF5 11EF6 Mc
11EF7 11EF8 Po
+11F00 11F01 Mn
+11F02 Lo
+11F03 Mc
+11F04 11F10 Lo
+11F12 11F33 Lo
+11F34 11F35 Mc
+11F36 11F3A Mn
+11F3E 11F3F Mc
+11F40 Mn
+11F41 Mc
+11F42 Mn
+11F43 11F4F Po
+11F50 11F59 Nd
11FB0 Lo
11FC0 11FD4 No
11FD5 11FDC So
@@ -2944,13 +3013,20 @@ FFFC FFFD So
12400 1246E Nl
12470 12474 Po
12480 12543 Lo
-13000 1342E Lo
-13430 13438 Cf
+12F90 12FF0 Lo
+12FF1 12FF2 Po
+13000 1342F Lo
+13430 1343F Cf
+13440 Mn
+13441 13446 Lo
+13447 13455 Mn
14400 14646 Lo
16800 16A38 Lo
16A40 16A5E Lo
16A60 16A69 Nd
16A6E 16A6F Po
+16A70 16ABE Lo
+16AC0 16AC9 Nd
16AD0 16AED Lo
16AF0 16AF4 Mn
16AF5 Po
@@ -2983,8 +3059,13 @@ FFFC FFFD So
17000 187F7 Lo
18800 18CD5 Lo
18D00 18D08 Lo
-1B000 1B11E Lo
+1AFF0 1AFF3 Lm
+1AFF5 1AFFB Lm
+1AFFD 1AFFE Lm
+1B000 1B122 Lo
+1B132 Lo
1B150 1B152 Lo
+1B155 Lo
1B164 1B167 Lo
1B170 1B2FB Lo
1BC00 1BC6A Lo
@@ -2995,6 +3076,9 @@ FFFC FFFD So
1BC9D 1BC9E Mn
1BC9F Po
1BCA0 1BCA3 Cf
+1CF00 1CF2D Mn
+1CF30 1CF46 Mn
+1CF50 1CFC3 So
1D000 1D0F5 So
1D100 1D126 So
1D129 1D164 So
@@ -3008,10 +3092,11 @@ FFFC FFFD So
1D185 1D18B Mn
1D18C 1D1A9 So
1D1AA 1D1AD Mn
-1D1AE 1D1E8 So
+1D1AE 1D1EA So
1D200 1D241 So
1D242 1D244 Mn
1D245 So
+1D2C0 1D2D3 No
1D2E0 1D2F3 No
1D300 1D356 So
1D360 1D378 No
@@ -3097,21 +3182,37 @@ FFFC FFFD So
1DA87 1DA8B Po
1DA9B 1DA9F Mn
1DAA1 1DAAF Mn
+1DF00 1DF09 Ll
+1DF0A Lo
+1DF0B 1DF1E Ll
+1DF25 1DF2A Ll
1E000 1E006 Mn
1E008 1E018 Mn
1E01B 1E021 Mn
1E023 1E024 Mn
1E026 1E02A Mn
+1E030 1E06D Lm
+1E08F Mn
1E100 1E12C Lo
1E130 1E136 Mn
1E137 1E13D Lm
1E140 1E149 Nd
1E14E Lo
1E14F So
+1E290 1E2AD Lo
+1E2AE Mn
1E2C0 1E2EB Lo
1E2EC 1E2EF Mn
1E2F0 1E2F9 Nd
1E2FF Sc
+1E4D0 1E4EA Lo
+1E4EB Lm
+1E4EC 1E4EF Mn
+1E4F0 1E4F9 Nd
+1E7E0 1E7E6 Lo
+1E7E8 1E7EB Lo
+1E7ED 1E7EE Lo
+1E7F0 1E7FE Lo
1E800 1E8C4 Lo
1E8C7 1E8CF No
1E8D0 1E8D6 Mn
@@ -3179,38 +3280,38 @@ FFFC FFFD So
1F300 1F3FA So
1F3FB 1F3FF Sk
1F400 1F6D7 So
-1F6E0 1F6EC So
+1F6DC 1F6EC So
1F6F0 1F6FC So
-1F700 1F773 So
-1F780 1F7D8 So
+1F700 1F776 So
+1F77B 1F7D9 So
1F7E0 1F7EB So
+1F7F0 So
1F800 1F80B So
1F810 1F847 So
1F850 1F859 So
1F860 1F887 So
1F890 1F8AD So
1F8B0 1F8B1 So
-1F900 1F978 So
-1F97A 1F9CB So
-1F9CD 1FA53 So
+1F900 1FA53 So
1FA60 1FA6D So
-1FA70 1FA74 So
-1FA78 1FA7A So
-1FA80 1FA86 So
-1FA90 1FAA8 So
-1FAB0 1FAB6 So
-1FAC0 1FAC2 So
-1FAD0 1FAD6 So
+1FA70 1FA7C So
+1FA80 1FA88 So
+1FA90 1FABD So
+1FABF 1FAC5 So
+1FACE 1FADB So
+1FAE0 1FAE8 So
+1FAF0 1FAF8 So
1FB00 1FB92 So
1FB94 1FBCA So
1FBF0 1FBF9 Nd
-20000 2A6DD Lo
-2A700 2B734 Lo
+20000 2A6DF Lo
+2A700 2B739 Lo
2B740 2B81D Lo
2B820 2CEA1 Lo
2CEB0 2EBE0 Lo
2F800 2FA1D Lo
30000 3134A Lo
+31350 323AF Lo
E0001 Cf
E0020 E007F Cf
E0100 E01EF Mn
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl
index 7d8e05a207..e89578f71d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identif2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identif2.pl
index 011d964d96..63c39b80f9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identif2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identif2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,7 +241,7 @@ F8 131 Recommended
610 61A Uncommon_Use
61B Not_XID
61C Default_Ignorable
-61E 61F Not_XID
+61D 61F Not_XID
620 63F Recommended
640 Obsolete
641 655 Recommended
@@ -288,12 +288,17 @@ F8 131 Recommended
840 85B Limited_Use
85E Limited_Use Not_XID
860 86A Limited_Use
+870 887 Recommended
+888 Not_XID
+889 88E Recommended
+890 891 Not_XID
+898 89F Uncommon_Use
8A0 8AC Recommended
8AD 8B1 Obsolete
8B2 Recommended
8B3 8B4 Uncommon_Use
-8B6 8C7 Recommended
-8D3 8E1 Uncommon_Use
+8B5 8C9 Recommended
+8CA 8E1 Uncommon_Use
8E2 Not_XID
8E3 900 Uncommon_Use
901 94D Recommended
@@ -411,12 +416,13 @@ C12 C28 Recommended
C2A C33 Recommended
C34 Obsolete
C35 C39 Recommended
-C3D C44 Recommended
+C3C C44 Recommended
C46 C48 Recommended
C4A C4D Recommended
C55 C56 Recommended
C58 C59 Obsolete
C5A Uncommon_Use
+C5D Recommended
C60 C61 Recommended
C62 C63 Uncommon_Use
C66 C6F Recommended
@@ -434,10 +440,11 @@ CBC CC4 Recommended
CC6 CC8 Recommended
CCA CCD Recommended
CD5 CD6 Recommended
+CDD Recommended
CDE Obsolete
CE0 CE3 Recommended
CE6 CEF Recommended
-CF1 CF2 Recommended
+CF1 CF3 Recommended
D00 Recommended
D01 Obsolete
D02 D03 Recommended
@@ -497,7 +504,7 @@ EB3 Not_NFKC
EB4 EBD Recommended
EC0 EC4 Recommended
EC6 Recommended
-EC8 ECD Recommended
+EC8 ECE Recommended
ED0 ED9 Recommended
EDC EDD Not_NFKC
EDE EDF Recommended
@@ -609,9 +616,8 @@ FCE FDA Not_XID
16A0 16EA Exclusion
16EB 16ED Not_XID
16EE 16F8 Exclusion
-1700 170C Exclusion
-170E 1714 Exclusion
-1720 1734 Exclusion
+1700 1715 Exclusion
+171F 1734 Exclusion
1735 1736 Exclusion Not_XID
1740 1753 Exclusion
1760 176C Exclusion
@@ -623,8 +629,9 @@ FCE FDA Not_XID
17A8 Obsolete
17A9 17B3 Recommended
17B4 17B5 Default_Ignorable
-17B6 17CA Recommended
-17CB 17D0 Technical
+17B6 17CD Recommended
+17CE 17CF Technical
+17D0 Recommended
17D1 Technical Obsolete
17D2 Recommended
17D3 Obsolete
@@ -637,7 +644,7 @@ FCE FDA Not_XID
17E0 17E9 Recommended
17F0 17F9 Not_XID
1800 180A Exclusion Not_XID
-180B 180E Default_Ignorable
+180B 180F Default_Ignorable
1810 1819 Exclusion
1820 1878 Exclusion
1880 18A8 Exclusion
@@ -668,11 +675,12 @@ FCE FDA Not_XID
1AB0 1ABD Obsolete
1ABE Not_XID
1ABF 1AC0 Technical
-1B00 1B4B Limited_Use
+1AC1 1ACE Uncommon_Use
+1B00 1B4C Limited_Use
1B50 1B59 Limited_Use
1B5A 1B6A Limited_Use Not_XID
-1B6B 1B73 Limited_Use
-1B74 1B7C Limited_Use Not_XID
+1B6B 1B73 Limited_Use Technical
+1B74 1B7E Limited_Use Not_XID
1B80 1BF3 Limited_Use
1BFC 1BFF Limited_Use Not_XID
1C00 1C37 Limited_Use
@@ -706,6 +714,7 @@ FCE FDA Not_XID
1DCF 1DD0 Technical
1DD1 1DE6 Technical Obsolete
1DE7 1DF9 Technical
+1DFA Limited_Use Technical
1DFB 1DFF Technical
1E00 1E99 Recommended
1E9A 1E9B Not_NFKC
@@ -767,9 +776,7 @@ FCE FDA Not_XID
1FFC Recommended
1FFD 1FFE Not_NFKC
2000 200A Not_NFKC
-200B Default_Ignorable
-200C 200D Inclusion
-200E 200F Default_Ignorable
+200B 200F Default_Ignorable
2010 Inclusion
2011 Not_NFKC
2012 2016 Not_XID
@@ -808,7 +815,7 @@ FCE FDA Not_XID
2090 209C Not_NFKC
20A0 20A7 Not_XID
20A8 Not_NFKC
-20A9 20BF Not_XID
+20A9 20C0 Not_XID
20D0 20DC Technical
20DD 20E0 Technical Not_XID
20E1 Technical
@@ -873,8 +880,7 @@ FCE FDA Not_XID
2B97 2BEB Not_XID
2BEC 2BEF Uncommon_Use Not_XID
2BF0 2BFF Not_XID
-2C00 2C2E Exclusion
-2C30 2C5E Exclusion
+2C00 2C5F Exclusion
2C60 2C67 Technical
2C68 2C6C Uncommon_Use
2C6D 2C76 Obsolete
@@ -912,7 +918,7 @@ FCE FDA Not_XID
2E35 Obsolete Not_XID
2E36 2E38 Not_XID
2E39 Obsolete Not_XID
-2E3A 2E52 Not_XID
+2E3A 2E5D Not_XID
2E80 2E99 Not_XID
2E9B 2E9E Not_XID
2E9F Not_NFKC
@@ -955,7 +961,7 @@ FCE FDA Not_XID
3192 319F Not_NFKC
31A0 31BF Recommended
31C0 31E3 Not_XID
-31F0 31FF Technical
+31F0 31FF Obsolete
3200 321E Not_NFKC
3220 3247 Not_NFKC
3248 324F Not_XID
@@ -964,7 +970,7 @@ FCE FDA Not_XID
3280 33FF Not_NFKC
3400 4DBF Recommended
4DC0 4DFF Technical Not_XID
-4E00 9FFC Recommended
+4E00 9FFF Recommended
A000 A48C Limited_Use
A490 A4C6 Limited_Use Not_XID
A4D0 A4FD Limited_Use
@@ -1012,7 +1018,11 @@ A7B0 A7B1 Obsolete
A7B2 A7B7 Uncommon_Use
A7B8 A7B9 Recommended
A7BA A7BF Technical
-A7C2 A7CA Recommended
+A7C0 A7CA Recommended
+A7D0 A7D1 Recommended
+A7D3 Recommended
+A7D5 A7D9 Recommended
+A7F2 A7F4 Not_NFKC
A7F5 A7F7 Obsolete
A7F8 A7F9 Not_NFKC
A7FA Technical
@@ -1105,13 +1115,14 @@ FB3E Not_NFKC
FB40 FB41 Not_NFKC
FB43 FB44 Not_NFKC
FB46 FBB1 Not_NFKC
-FBB2 FBC1 Technical Not_XID
+FBB2 FBC2 Technical Not_XID
FBD3 FD3D Not_NFKC
-FD3E FD3F Technical Not_XID
+FD3E FD4F Technical Not_XID
FD50 FD8F Not_NFKC
FD92 FDC7 Not_NFKC
+FDCF Technical Not_XID
FDF0 FDFC Not_NFKC
-FDFD Technical Not_XID
+FDFD FDFF Technical Not_XID
FE00 FE0F Default_Ignorable
FE10 FE19 Not_NFKC
FE20 FE2D Technical
@@ -1173,9 +1184,21 @@ FFF9 FFFD Not_XID
10500 10527 Exclusion
10530 10563 Exclusion
1056F Exclusion Not_XID
+10570 1057A Exclusion
+1057C 1058A Exclusion
+1058C 10592 Exclusion
+10594 10595 Exclusion
+10597 105A1 Exclusion
+105A3 105B1 Exclusion
+105B3 105B9 Exclusion
+105BB 105BC Exclusion
10600 10736 Exclusion
10740 10755 Exclusion
10760 10767 Exclusion
+10780 Uncommon_Use
+10781 10785 Not_NFKC
+10787 107B0 Not_NFKC
+107B2 107BA Not_NFKC
10800 10805 Exclusion
10808 Exclusion
1080A 10835 Exclusion
@@ -1237,20 +1260,24 @@ FFF9 FFFD Not_XID
10EAB 10EAC Exclusion
10EAD Exclusion Not_XID
10EB0 10EB1 Exclusion
+10EFD 10EFF Uncommon_Use
10F00 10F1C Exclusion
10F1D 10F26 Exclusion Not_XID
10F27 Exclusion
10F30 10F50 Exclusion
10F51 10F59 Exclusion Not_XID
+10F70 10F85 Exclusion
+10F86 10F89 Exclusion Not_XID
10FB0 10FC4 Exclusion
10FC5 10FCB Exclusion Not_XID
10FE0 10FF6 Exclusion
11000 11046 Exclusion
11047 1104D Exclusion Not_XID
11052 11065 Exclusion Not_XID
-11066 1106F Exclusion
+11066 11075 Exclusion
1107F 110BA Exclusion
110BB 110C1 Exclusion Not_XID
+110C2 Exclusion
110CD Exclusion Not_XID
110D0 110E8 Exclusion
110F0 110F9 Exclusion
@@ -1273,7 +1300,7 @@ FFF9 FFFD Not_XID
11200 11211 Exclusion
11213 11237 Exclusion
11238 1123D Exclusion Not_XID
-1123E Exclusion
+1123E 11241 Exclusion
11280 11286 Exclusion
11288 Exclusion
1128A 1128D Exclusion
@@ -1321,11 +1348,13 @@ FFF9 FFFD Not_XID
11650 11659 Exclusion
11660 1166C Exclusion Not_XID
11680 116B8 Exclusion
+116B9 Exclusion Not_XID
116C0 116C9 Exclusion
11700 1171A Exclusion
1171D 1172B Exclusion
11730 11739 Exclusion
1173A 1173F Exclusion Not_XID
+11740 11746 Exclusion
11800 1183A Exclusion
1183B Exclusion Not_XID
118A0 118E9 Exclusion
@@ -1351,7 +1380,9 @@ FFF9 FFFD Not_XID
11A9A 11A9C Exclusion Not_XID
11A9D Exclusion
11A9E 11AA2 Exclusion Not_XID
+11AB0 11ABF Limited_Use
11AC0 11AF8 Exclusion
+11B00 11B09 Not_XID
11C00 11C08 Exclusion
11C0A 11C36 Exclusion
11C38 11C40 Exclusion
@@ -1377,6 +1408,11 @@ FFF9 FFFD Not_XID
11DA0 11DA9 Limited_Use
11EE0 11EF6 Exclusion
11EF7 11EF8 Exclusion Not_XID
+11F00 11F10 Exclusion
+11F12 11F3A Exclusion
+11F3E 11F42 Exclusion
+11F43 11F4F Exclusion Not_XID
+11F50 11F59 Exclusion
11FB0 Limited_Use
11FC0 11FF1 Not_XID
11FFF Not_XID
@@ -1384,13 +1420,18 @@ FFF9 FFFD Not_XID
12400 1246E Exclusion
12470 12474 Exclusion Not_XID
12480 12543 Exclusion
-13000 1342E Exclusion
-13430 13438 Exclusion Not_XID
+12F90 12FF0 Exclusion
+12FF1 12FF2 Exclusion Not_XID
+13000 1342F Exclusion
+13430 1343F Exclusion Not_XID
+13440 13455 Exclusion
14400 14646 Exclusion
16800 16A38 Limited_Use
16A40 16A5E Uncommon_Use Exclusion
16A60 16A69 Uncommon_Use Exclusion
16A6E 16A6F Exclusion Not_XID
+16A70 16ABE Exclusion
+16AC0 16AC9 Exclusion
16AD0 16AED Exclusion
16AF0 16AF4 Exclusion
16AF5 Exclusion Not_XID
@@ -1415,8 +1456,14 @@ FFF9 FFFD Not_XID
17000 187F7 Exclusion
18800 18CD5 Exclusion
18D00 18D08 Exclusion
+1AFF0 1AFF3 Uncommon_Use
+1AFF5 1AFFB Uncommon_Use
+1AFFD 1AFFE Uncommon_Use
1B000 1B11E Obsolete
+1B11F 1B122 Recommended
+1B132 Recommended
1B150 1B152 Recommended
+1B155 Recommended
1B164 1B167 Recommended
1B170 1B2FB Exclusion
1BC00 1BC6A Exclusion
@@ -1427,6 +1474,9 @@ FFF9 FFFD Not_XID
1BC9D 1BC9E Exclusion
1BC9F Exclusion Not_XID
1BCA0 1BCA3 Default_Ignorable
+1CF00 1CF2D Technical
+1CF30 1CF46 Technical
+1CF50 1CFC3 Technical Not_XID
1D000 1D0F5 Technical Not_XID
1D100 1D126 Technical Not_XID
1D129 1D15D Technical Not_XID
@@ -1444,9 +1494,11 @@ FFF9 FFFD Not_XID
1D1BB 1D1C0 Not_NFKC
1D1C1 1D1DD Technical Not_XID
1D1DE 1D1E8 Uncommon_Use Technical Not_XID
+1D1E9 1D1EA Technical Not_XID
1D200 1D241 Obsolete Not_XID
1D242 1D244 Technical Obsolete
1D245 Obsolete Not_XID
+1D2C0 1D2D3 Not_XID
1D2E0 1D2F3 Not_XID
1D300 1D356 Technical Not_XID
1D360 1D378 Not_XID
@@ -1482,18 +1534,28 @@ FFF9 FFFD Not_XID
1DA85 1DA8B Exclusion Not_XID
1DA9B 1DA9F Exclusion
1DAA1 1DAAF Exclusion
+1DF00 1DF1E Recommended
+1DF25 1DF2A Recommended
1E000 1E006 Exclusion
1E008 1E018 Exclusion
1E01B 1E021 Exclusion
1E023 1E024 Exclusion
1E026 1E02A Exclusion
+1E030 1E06D Not_NFKC
+1E08F Recommended
1E100 1E12C Limited_Use
1E130 1E13D Limited_Use
1E140 1E149 Limited_Use
1E14E Limited_Use
1E14F Limited_Use Not_XID
+1E290 1E2AE Exclusion
1E2C0 1E2F9 Limited_Use
1E2FF Limited_Use Not_XID
+1E4D0 1E4F9 Exclusion
+1E7E0 1E7E6 Recommended
+1E7E8 1E7EB Recommended
+1E7ED 1E7EE Recommended
+1E7F0 1E7FE Recommended
1E800 1E8C4 Exclusion
1E8C7 1E8CF Exclusion Not_XID
1E8D0 1E8D6 Exclusion
@@ -1561,38 +1623,38 @@ FFF9 FFFD Not_XID
1F300 1F54E Not_XID
1F54F Uncommon_Use Not_XID
1F550 1F6D7 Not_XID
-1F6E0 1F6EC Not_XID
+1F6DC 1F6EC Not_XID
1F6F0 1F6FC Not_XID
-1F700 1F773 Not_XID
-1F780 1F7D8 Not_XID
+1F700 1F776 Not_XID
+1F77B 1F7D9 Not_XID
1F7E0 1F7EB Not_XID
+1F7F0 Not_XID
1F800 1F80B Not_XID
1F810 1F847 Not_XID
1F850 1F859 Not_XID
1F860 1F887 Not_XID
1F890 1F8AD Not_XID
1F8B0 1F8B1 Not_XID
-1F900 1F978 Not_XID
-1F97A 1F9CB Not_XID
-1F9CD 1FA53 Not_XID
+1F900 1FA53 Not_XID
1FA60 1FA6D Not_XID
-1FA70 1FA74 Not_XID
-1FA78 1FA7A Not_XID
-1FA80 1FA86 Not_XID
-1FA90 1FAA8 Not_XID
-1FAB0 1FAB6 Not_XID
-1FAC0 1FAC2 Not_XID
-1FAD0 1FAD6 Not_XID
+1FA70 1FA7C Not_XID
+1FA80 1FA88 Not_XID
+1FA90 1FABD Not_XID
+1FABF 1FAC5 Not_XID
+1FACE 1FADB Not_XID
+1FAE0 1FAE8 Not_XID
+1FAF0 1FAF8 Not_XID
1FB00 1FB92 Not_XID
1FB94 1FBCA Not_XID
1FBF0 1FBF9 Not_NFKC
-20000 2A6DD Recommended
-2A700 2B734 Recommended
+20000 2A6DF Recommended
+2A700 2B739 Recommended
2B740 2B81D Recommended
2B820 2CEA1 Recommended
2CEB0 2EBE0 Recommended
2F800 2FA1D Not_NFKC
30000 3134A Recommended
+31350 323AF Recommended
E0001 Deprecated
E0020 E007F Default_Ignorable
E0100 E01EF Default_Ignorable
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identifi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identifi.pl
index 1f2bb0f6f1..ae09174c37 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identifi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Identifi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -85,9 +85,11 @@ F8 131 Allowed
6E5 6E6 Allowed
6EE 6FF Allowed
750 7B1 Allowed
+870 887 Allowed
+889 88E Allowed
8A0 8AC Allowed
8B2 Allowed
-8B6 8C7 Allowed
+8B5 8C9 Allowed
901 94D Allowed
94F 950 Allowed
956 957 Allowed
@@ -172,10 +174,11 @@ C0E C10 Allowed
C12 C28 Allowed
C2A C33 Allowed
C35 C39 Allowed
-C3D C44 Allowed
+C3C C44 Allowed
C46 C48 Allowed
C4A C4D Allowed
C55 C56 Allowed
+C5D Allowed
C60 C61 Allowed
C66 C6F Allowed
C80 Allowed
@@ -189,9 +192,10 @@ CBC CC4 Allowed
CC6 CC8 Allowed
CCA CCD Allowed
CD5 CD6 Allowed
+CDD Allowed
CE0 CE3 Allowed
CE6 CEF Allowed
-CF1 CF2 Allowed
+CF1 CF3 Allowed
D00 Allowed
D02 D03 Allowed
D05 D0C Allowed
@@ -230,7 +234,7 @@ EA7 EB2 Allowed
EB4 EBD Allowed
EC0 EC4 Allowed
EC6 Allowed
-EC8 ECD Allowed
+EC8 ECE Allowed
ED0 ED9 Allowed
EDE EDF Allowed
F00 Allowed
@@ -287,7 +291,8 @@ FC6 Allowed
1780 17A2 Allowed
17A5 17A7 Allowed
17A9 17B3 Allowed
-17B6 17CA Allowed
+17B6 17CD Allowed
+17D0 Allowed
17D2 Allowed
17D7 Allowed
17DC Allowed
@@ -328,7 +333,6 @@ FC6 Allowed
1FF6 1FF8 Allowed
1FFA Allowed
1FFC Allowed
-200C 200D Allowed
2010 Allowed
2019 Allowed
2027 Allowed
@@ -352,7 +356,7 @@ FC6 Allowed
312F Allowed
31A0 31BF Allowed
3400 4DBF Allowed
-4E00 9FFC Allowed
+4E00 9FFF Allowed
A67F Allowed
A717 A71F Allowed
A788 Allowed
@@ -361,7 +365,10 @@ A792 A793 Allowed
A7AA Allowed
A7AE Allowed
A7B8 A7B9 Allowed
-A7C2 A7CA Allowed
+A7C0 A7CA Allowed
+A7D0 A7D1 Allowed
+A7D3 Allowed
+A7D5 A7D9 Allowed
A9E7 A9FE Allowed
AA60 AA76 Allowed
AA7A AA7F Allowed
@@ -383,12 +390,23 @@ FA27 FA29 Allowed
11303 Allowed
1133B 1133C Allowed
16FF0 16FF1 Allowed
+1B11F 1B122 Allowed
+1B132 Allowed
1B150 1B152 Allowed
+1B155 Allowed
1B164 1B167 Allowed
-20000 2A6DD Allowed
-2A700 2B734 Allowed
+1DF00 1DF1E Allowed
+1DF25 1DF2A Allowed
+1E08F Allowed
+1E7E0 1E7E6 Allowed
+1E7E8 1E7EB Allowed
+1E7ED 1E7EE Allowed
+1E7F0 1E7FE Allowed
+20000 2A6DF Allowed
+2A700 2B739 Allowed
2B740 2B81D Allowed
2B820 2CEA1 Allowed
2CEB0 2EBE0 Allowed
30000 3134A Allowed
+31350 323AF Allowed
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl
index 52501dcb76..fac7221551 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -33,7 +33,7 @@ return <<'END';
94F Right
951 Top
952 Bottom
-953 955 Top
+955 Top
956 957 Bottom
962 963 Bottom
981 Top
@@ -102,6 +102,7 @@ BD7 Right
C00 Top
C01 C03 Right
C04 Top
+C3C Bottom
C3E C40 Top
C41 C44 Right
C46 C47 Top
@@ -123,6 +124,7 @@ CCA CCB Top_And_Right
CCC CCD Top
CD5 CD6 Right
CE2 CE3 Bottom
+CF3 Right
D00 D01 Top
D02 D03 Right
D3B D3C Top
@@ -165,7 +167,7 @@ EB8 EBA Bottom
EBB Top
EBC Bottom
EC0 EC4 Visual_Order_Left
-EC8 ECD Top
+EC8 ECE Top
F18 F19 Bottom
F35 Bottom
F37 Bottom
@@ -215,8 +217,10 @@ FC6 Bottom
109D Top
1712 Top
1713 1714 Bottom
+1715 Right
1732 Top
-1733 1734 Bottom
+1733 Bottom
+1734 Right
1752 Top
1753 Bottom
1772 Top
@@ -345,6 +349,7 @@ A8C4 Bottom
A8C5 Top
A8E0 A8F1 Top
A8FF Top
+A926 A92A Top
A92B A92D Bottom
A947 A949 Bottom
A94A Top
@@ -418,6 +423,8 @@ ABED Bottom
11038 1103B Top
1103C 11041 Bottom
11042 11046 Top
+11070 Top
+11073 11074 Top
11080 11081 Top
11082 Right
110B0 Right
@@ -427,6 +434,7 @@ ABED Bottom
110B5 110B6 Top
110B7 110B8 Right
110B9 110BA Bottom
+110C2 Bottom
11100 11102 Top
11127 11129 Top
1112A 1112B Bottom
@@ -461,6 +469,7 @@ ABED Bottom
11235 Right
11236 11237 Top
1123E Top
+11241 Bottom
112DF Top
112E0 Right
112E1 Left
@@ -622,4 +631,12 @@ ABED Bottom
11EF4 Bottom
11EF5 Left
11EF6 Right
+11F00 11F02 Top
+11F03 Right
+11F34 11F35 Right
+11F36 11F37 Top
+11F38 11F3A Bottom
+11F3E 11F3F Left
+11F40 Top
+11F41 Right
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl
index 1c7cb8b328..9dff9c51c0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -108,7 +108,9 @@ AE0 AE1 Vowel_Independent
AE2 AE3 Vowel_Dependent
AE6 AEF Number
AF9 Consonant
-AFA AFC Cantillation_Mark
+AFA Cantillation_Mark
+AFB Gemination_Mark
+AFC Cantillation_Mark
AFD AFF Nukta
B01 B02 Bindu
B03 Visarga
@@ -158,6 +160,7 @@ C0E C10 Vowel_Independent
C12 C14 Vowel_Independent
C15 C28 Consonant
C2A C39 Consonant
+C3C Nukta
C3D Avagraha
C3E C44 Vowel_Dependent
C46 C48 Vowel_Dependent
@@ -165,6 +168,7 @@ C4A C4C Vowel_Dependent
C4D Virama
C55 C56 Vowel_Dependent
C58 C5A Consonant
+C5D Consonant_Dead
C60 C61 Vowel_Independent
C62 C63 Vowel_Dependent
C66 C6F Number
@@ -183,11 +187,13 @@ CC6 CC8 Vowel_Dependent
CCA CCC Vowel_Dependent
CCD Virama
CD5 CD6 Vowel_Dependent
+CDD Consonant_Dead
CDE Consonant
CE0 CE1 Vowel_Independent
CE2 CE3 Vowel_Dependent
CE6 CEF Number
CF1 CF2 Consonant_With_Stacker
+CF3 Bindu
D00 D02 Bindu
D03 Visarga
D04 Bindu
@@ -244,6 +250,7 @@ EBC EBD Consonant_Medial
EC0 EC4 Vowel_Dependent
EC8 ECB Tone_Mark
ECD Bindu
+ECE Syllable_Modifier
ED0 ED9 Number
EDC EDF Consonant
F20 F33 Number
@@ -299,10 +306,10 @@ FC6 Syllable_Modifier
109A 109B Tone_Mark
109C 109D Vowel_Dependent
1700 1702 Vowel_Independent
-1703 170C Consonant
-170E 1711 Consonant
+1703 1711 Consonant
1712 1713 Vowel_Dependent
-1714 Pure_Killer
+1714 1715 Pure_Killer
+171F Consonant
1720 1722 Vowel_Independent
1723 1731 Consonant
1732 1733 Vowel_Dependent
@@ -369,17 +376,17 @@ FC6 Syllable_Modifier
1A80 1A89 Number
1A90 1A99 Number
1B00 1B02 Bindu
-1B03 Consonant_Succeeding_Repha
+1B03 Consonant_Final
1B04 Visarga
1B05 1B12 Vowel_Independent
1B13 1B33 Consonant
1B34 Nukta
1B35 1B43 Vowel_Dependent
1B44 Virama
-1B45 1B4B Consonant
+1B45 1B4C Consonant
1B50 1B59 Number
1B80 Bindu
-1B81 Consonant_Succeeding_Repha
+1B81 Consonant_Final
1B82 Visarga
1B83 1B89 Vowel_Independent
1B8A 1BA0 Consonant
@@ -463,7 +470,7 @@ A947 A94E Vowel_Dependent
A94F A952 Consonant_Final
A953 Pure_Killer
A980 A981 Bindu
-A982 Consonant_Succeeding_Repha
+A982 Consonant_Final
A983 Visarga
A984 A988 Vowel_Independent
A989 A98B Consonant
@@ -532,6 +539,10 @@ ABF0 ABF9 Number
11046 Virama
11052 11065 Brahmi_Joining_Number
11066 1106F Number
+11070 Pure_Killer
+11071 11072 Vowel_Independent
+11073 11074 Vowel_Dependent
+11075 Consonant
1107F Number_Joiner
11080 11081 Bindu
11082 Visarga
@@ -540,6 +551,7 @@ ABF0 ABF9 Number
110B0 110B8 Vowel_Dependent
110B9 Virama
110BA Nukta
+110C2 Vowel_Dependent
11100 11101 Bindu
11102 Visarga
11103 11106 Vowel_Independent
@@ -578,6 +590,9 @@ ABF0 ABF9 Number
11236 Nukta
11237 Gemination_Mark
1123E Cantillation_Mark
+1123F Consonant
+11240 Vowel_Independent
+11241 Vowel_Dependent
11280 11283 Vowel_Independent
11284 11286 Consonant
11288 Consonant
@@ -665,6 +680,7 @@ ABF0 ABF9 Number
11720 1172A Vowel_Dependent
1172B Pure_Killer
11730 1173B Number
+11740 11746 Consonant
11800 11809 Vowel_Independent
1180A 1182B Consonant
1182C 11836 Vowel_Dependent
@@ -766,4 +782,14 @@ ABF0 ABF9 Number
11EE0 11EF1 Consonant
11EF2 Consonant_Placeholder
11EF3 11EF6 Vowel_Dependent
+11F00 11F01 Bindu
+11F02 Consonant_Preceding_Repha
+11F03 Visarga
+11F04 11F10 Vowel_Independent
+11F12 11F33 Consonant
+11F34 11F3A Vowel_Dependent
+11F3E 11F40 Vowel_Dependent
+11F41 Pure_Killer
+11F42 Invisible_Stacker
+11F50 11F59 Number
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl
index c9d9a6d0f4..6826a07a7a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToIsc'}{'format'} = 'd'; # single decimal digit
-$Unicode::UCD::SwashInfo{'ToIsc'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToIsc'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl
index b5b26e402a..ab615e0e37 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -154,6 +154,13 @@ return <<'END';
868 Malayalam_Lla
869 Malayalam_Llla
86A Malayalam_Ssa
+870 882 Alef
+886 Thin_Yeh
+889 Noon
+88A Hah
+88B 88C Tah
+88D Gaf
+88E Vertical_Tail
8A0 8A1 Beh
8A2 Hah
8A3 Tah
@@ -172,6 +179,7 @@ return <<'END';
8B2 Reh
8B3 Ain
8B4 Kaf
+8B5 Qaf
8B6 8B8 Beh
8B9 Reh
8BA Yeh
@@ -185,6 +193,7 @@ return <<'END';
8C4 African_Qaf
8C5 8C6 Hah
8C7 Lam
+8C8 Gaf
10AC0 Manichaean_Aleph
10AC1 10AC2 Manichaean_Beth
10AC3 10AC4 Manichaean_Gimel
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl
index 1b7beef77a..0c1614b861 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToJt'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToJt'}{'missing'} = 'Non_Joining';
+$Unicode::UCD::SwashInfo{'ToJt'}{'missing'} = 'U';
return <<'END';
AD T
@@ -117,16 +117,21 @@ AD T
867 R
868 D
869 86A R
+870 882 R
+883 885 C
+886 D
+889 88D D
+88E R
+898 89F T
8A0 8A9 D
8AA 8AC R
8AE R
8AF 8B0 D
8B1 8B2 R
-8B3 8B4 D
-8B6 8B8 D
+8B3 8B8 D
8B9 R
-8BA 8C7 D
-8D3 8E1 T
+8BA 8C8 D
+8CA 8E1 T
8E3 902 T
93A T
93C T
@@ -167,6 +172,7 @@ BC0 T
BCD T
C00 T
C04 T
+C3C T
C3E C40 T
C46 C48 T
C4A C4D T
@@ -192,7 +198,7 @@ E34 E3A T
E47 E4E T
EB1 T
EB4 EBC T
-EC8 ECD T
+EC8 ECE T
F18 F19 T
F35 T
F37 T
@@ -216,7 +222,7 @@ FC6 T
109D T
135D 135F T
1712 1714 T
-1732 1734 T
+1732 1733 T
1752 1753 T
1772 1773 T
17B4 17B5 T
@@ -227,6 +233,7 @@ FC6 T
1807 D
180A C
180B 180D T
+180F T
1820 1878 D
1885 1886 T
1887 18A8 D
@@ -245,7 +252,7 @@ FC6 T
1A65 1A6C T
1A73 1A7C T
1A7F T
-1AB0 1AC0 T
+1AB0 1ACE T
1B00 1B03 T
1B34 T
1B36 1B3A T
@@ -268,8 +275,7 @@ FC6 T
1CED T
1CF4 T
1CF8 1CF9 T
-1DC0 1DF9 T
-1DFB 1DFF T
+1DC0 1DFF T
200B T
200D C
200E 200F T
@@ -368,12 +374,17 @@ FFF9 FFFB T
10D23 D
10D24 10D27 T
10EAB 10EAC T
+10EFD 10EFF T
10F30 10F32 D
10F33 R
10F34 10F44 D
10F46 10F50 T
10F51 10F53 D
10F54 R
+10F70 10F73 D
+10F74 10F75 R
+10F76 10F81 D
+10F82 10F85 T
10FB0 D
10FB2 10FB3 D
10FB4 10FB6 R
@@ -390,9 +401,12 @@ FFF9 FFFB T
10FCB L
11001 T
11038 11046 T
+11070 T
+11073 11074 T
1107F 11081 T
110B3 110B6 T
110B9 110BA T
+110C2 T
11100 11102 T
11127 1112B T
1112D 11134 T
@@ -405,6 +419,7 @@ FFF9 FFFB T
11234 T
11236 11237 T
1123E T
+11241 T
112DF T
112E3 112EA T
11300 11301 T
@@ -466,7 +481,12 @@ FFF9 FFFB T
11D95 T
11D97 T
11EF3 11EF4 T
-13430 13438 T
+11F00 11F01 T
+11F36 11F3A T
+11F40 T
+11F42 T
+13430 13440 T
+13447 13455 T
16AF0 16AF4 T
16B30 16B36 T
16F4F T
@@ -474,6 +494,8 @@ FFF9 FFFB T
16FE4 T
1BC9D 1BC9E T
1BCA0 1BCA3 T
+1CF00 1CF2D T
+1CF30 1CF46 T
1D167 1D169 T
1D173 1D182 T
1D185 1D18B T
@@ -490,8 +512,11 @@ FFF9 FFFB T
1E01B 1E021 T
1E023 1E024 T
1E026 1E02A T
+1E08F T
1E130 1E136 T
+1E2AE T
1E2EC 1E2EF T
+1E4EC 1E4EF T
1E8D0 1E8D6 T
1E900 1E943 D
1E944 1E94B T
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl
index d2ef713190..fd5a8e8d81 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToLb'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToLb'}{'missing'} = 'Unknown';
+$Unicode::UCD::SwashInfo{'ToLb'}{'missing'} = 'XX';
return <<'END';
0 8 CM
@@ -135,7 +135,7 @@ F8 2C6 AL
610 61A CM
61B EX
61C CM
-61E 61F EX
+61D 61F EX
620 64A AL
64B 65F CM
660 669 NU
@@ -185,9 +185,11 @@ F8 2C6 AL
859 85B CM
85E AL
860 86A AL
-8A0 8B4 AL
-8B6 8C7 AL
-8D3 8E1 CM
+870 88E AL
+890 891 AL
+898 89F CM
+8A0 8C9 AL
+8CA 8E1 CM
8E2 AL
8E3 903 CM
904 939 AL
@@ -310,12 +312,14 @@ C05 C0C AL
C0E C10 AL
C12 C28 AL
C2A C39 AL
+C3C CM
C3D AL
C3E C44 CM
C46 C48 CM
C4A C4D CM
C55 C56 CM
C58 C5A AL
+C5D AL
C60 C61 AL
C62 C63 CM
C66 C6F NU
@@ -334,11 +338,12 @@ CBE CC4 CM
CC6 CC8 CM
CCA CCD CM
CD5 CD6 CM
-CDE AL
+CDD CDE AL
CE0 CE1 AL
CE2 CE3 CM
CE6 CEF NU
CF1 CF2 AL
+CF3 CM
D00 D03 CM
D04 D0C AL
D0E D10 AL
@@ -384,7 +389,7 @@ EA5 SA
EA7 EBD SA
EC0 EC4 SA
EC6 SA
-EC8 ECD SA
+EC8 ECE SA
ED0 ED9 NU
EDC EDF SA
F00 AL
@@ -481,10 +486,9 @@ FD9 FDA GL
16A0 16EA AL
16EB 16ED BA
16EE 16F8 AL
-1700 170C AL
-170E 1711 AL
-1712 1714 CM
-1720 1731 AL
+1700 1711 AL
+1712 1715 CM
+171F 1731 AL
1732 1734 CM
1735 1736 BA
1740 1751 AL
@@ -512,6 +516,7 @@ FD9 FDA GL
180A AL
180B 180D CM
180E GL
+180F CM
1810 1819 NU
1820 1878 AL
1880 1884 AL
@@ -542,11 +547,11 @@ FD9 FDA GL
1A80 1A89 NU
1A90 1A99 NU
1AA0 1AAD SA
-1AB0 1AC0 CM
+1AB0 1ACE CM
1B00 1B04 CM
1B05 1B33 AL
1B34 1B44 CM
-1B45 1B4B AL
+1B45 1B4C AL
1B50 1B59 NU
1B5A 1B5B BA
1B5C AL
@@ -554,6 +559,7 @@ FD9 FDA GL
1B61 1B6A AL
1B6B 1B73 CM
1B74 1B7C AL
+1B7D 1B7E BA
1B80 1B82 CM
1B83 1BA0 AL
1BA1 1BAD CM
@@ -583,8 +589,11 @@ FD9 FDA GL
1CF7 1CF9 CM
1CFA AL
1D00 1DBF AL
-1DC0 1DF9 CM
-1DFB 1DFF CM
+1DC0 1DCC CM
+1DCD GL
+1DCE 1DFB CM
+1DFC GL
+1DFD 1DFF CM
1E00 1F15 AL
1F18 1F1D AL
1F20 1F45 AL
@@ -640,7 +649,7 @@ FD9 FDA GL
2047 2049 NS
204A 2055 AL
2056 BA
-2057 AL
+2057 PO
2058 205B BA
205C AL
205D 205F BA
@@ -667,7 +676,9 @@ FD9 FDA GL
20BB PO
20BC 20BD PR
20BE PO
-20BF 20CF PR
+20BF PR
+20C0 PO
+20C1 20CF PR
20D0 20F0 CM
2100 2102 AL
2103 PO
@@ -947,9 +958,7 @@ FD9 FDA GL
2B55 2B59 AI
2B5A 2B73 AL
2B76 2B95 AL
-2B97 2C2E AL
-2C30 2C5E AL
-2C60 2CEE AL
+2B97 2CEE AL
2CEF 2CF1 CM
2CF2 2CF3 AL
2CF9 EX
@@ -1010,6 +1019,16 @@ FD9 FDA GL
2E4D AL
2E4E 2E4F BA
2E50 2E52 AL
+2E53 2E54 EX
+2E55 OP
+2E56 CL
+2E57 OP
+2E58 CL
+2E59 OP
+2E5A CL
+2E5B OP
+2E5C CL
+2E5D BA
2E80 2E99 ID
2E9B 2EF3 ID
2F00 2FD5 ID
@@ -1131,9 +1150,11 @@ A6A0 A6EF AL
A6F0 A6F1 CM
A6F2 AL
A6F3 A6F7 BA
-A700 A7BF AL
-A7C2 A7CA AL
-A7F5 A801 AL
+A700 A7CA AL
+A7D0 A7D1 AL
+A7D3 AL
+A7D5 A7D9 AL
+A7F2 A801 AL
A802 CM
A803 A805 AL
A806 CM
@@ -2020,15 +2041,16 @@ FB3E HL
FB40 FB41 HL
FB43 FB44 HL
FB46 FB4F HL
-FB50 FBC1 AL
+FB50 FBC2 AL
FBD3 FD3D AL
FD3E CL
FD3F OP
-FD50 FD8F AL
+FD40 FD8F AL
FD92 FDC7 AL
+FDCF AL
FDF0 FDFB AL
FDFC PO
-FDFD AL
+FDFD FDFF AL
FE00 FE0F CM
FE10 IS
FE11 FE12 CL
@@ -2159,10 +2181,20 @@ FFFD AI
104D8 104FB AL
10500 10527 AL
10530 10563 AL
-1056F AL
+1056F 1057A AL
+1057C 1058A AL
+1058C 10592 AL
+10594 10595 AL
+10597 105A1 AL
+105A3 105B1 AL
+105B3 105B9 AL
+105BB 105BC AL
10600 10736 AL
10740 10755 AL
10760 10767 AL
+10780 10785 AL
+10787 107B0 AL
+107B2 107BA AL
10800 10805 AL
10808 AL
1080A 10835 AL
@@ -2216,10 +2248,14 @@ FFFD AI
10EAB 10EAC CM
10EAD BA
10EB0 10EB1 AL
+10EFD 10EFF CM
10F00 10F27 AL
10F30 10F45 AL
10F46 10F50 CM
10F51 10F59 AL
+10F70 10F81 AL
+10F82 10F85 CM
+10F86 10F89 AL
10FB0 10FCB AL
10FE0 10FF6 AL
11000 11002 CM
@@ -2229,11 +2265,16 @@ FFFD AI
11049 1104D AL
11052 11065 AL
11066 1106F NU
+11070 CM
+11071 11072 AL
+11073 11074 CM
+11075 AL
1107F 11082 CM
11083 110AF AL
110B0 110BA CM
110BB 110BD AL
110BE 110C1 BA
+110C2 CM
110CD AL
110D0 110E8 AL
110F0 110F9 NU
@@ -2274,6 +2315,8 @@ FFFD AI
1123B 1123C BA
1123D AL
1123E CM
+1123F 11240 AL
+11241 CM
11280 11286 AL
11288 AL
1128A 1128D AL
@@ -2333,14 +2376,14 @@ FFFD AI
11660 1166C BB
11680 116AA AL
116AB 116B7 CM
-116B8 AL
+116B8 116B9 AL
116C0 116C9 NU
11700 1171A SA
1171D 1172B SA
11730 11739 NU
1173A 1173B SA
1173C 1173E BA
-1173F SA
+1173F 11746 SA
11800 1182B AL
1182C 1183A CM
1183B AL
@@ -2389,7 +2432,8 @@ FFFD AI
11A9D AL
11A9E 11AA0 BB
11AA1 11AA2 BA
-11AC0 11AF8 AL
+11AB0 11AF8 AL
+11B00 11B09 BB
11C00 11C08 AL
11C0A 11C2E AL
11C2F 11C36 CM
@@ -2424,6 +2468,16 @@ FFFD AI
11EE0 11EF2 AL
11EF3 11EF6 CM
11EF7 11EF8 AL
+11F00 11F01 CM
+11F02 AL
+11F03 CM
+11F04 11F10 AL
+11F12 11F33 AL
+11F34 11F3A CM
+11F3E 11F42 CM
+11F43 11F44 BA
+11F45 11F4F ID
+11F50 11F59 NU
11FB0 AL
11FC0 11FDC AL
11FDD 11FE0 PO
@@ -2433,6 +2487,7 @@ FFFD AI
12400 1246E AL
12470 12474 BA
12480 12543 AL
+12F90 12FF2 AL
13000 13257 AL
13258 1325A OP
1325B 1325D CL
@@ -2446,10 +2501,18 @@ FFFD AI
1328A 13378 AL
13379 OP
1337A 1337B CL
-1337C 1342E AL
+1337C 1342F AL
13430 13436 GL
13437 OP
13438 CL
+13439 1343B GL
+1343C OP
+1343D CL
+1343E OP
+1343F CL
+13440 CM
+13441 13446 AL
+13447 13455 CM
14400 145CD AL
145CE OP
145CF CL
@@ -2458,6 +2521,8 @@ FFFD AI
16A40 16A5E AL
16A60 16A69 NU
16A6E 16A6F BA
+16A70 16ABE AL
+16AC0 16AC9 NU
16AD0 16AED AL
16AF0 16AF4 CM
16AF5 BA
@@ -2487,8 +2552,13 @@ FFFD AI
18800 18AFF ID
18B00 18CD5 AL
18D00 18D08 ID
-1B000 1B11E ID
+1AFF0 1AFF3 AL
+1AFF5 1AFFB AL
+1AFFD 1AFFE AL
+1B000 1B122 ID
+1B132 CJ
1B150 1B152 CJ
+1B155 CJ
1B164 1B167 CJ
1B170 1B2FB ID
1BC00 1BC6A AL
@@ -2499,6 +2569,9 @@ FFFD AI
1BC9D 1BC9E CM
1BC9F BA
1BCA0 1BCA3 CM
+1CF00 1CF2D CM
+1CF30 1CF46 CM
+1CF50 1CFC3 AL
1D000 1D0F5 AL
1D100 1D126 AL
1D129 1D164 AL
@@ -2509,10 +2582,11 @@ FFFD AI
1D185 1D18B CM
1D18C 1D1A9 AL
1D1AA 1D1AD CM
-1D1AE 1D1E8 AL
+1D1AE 1D1EA AL
1D200 1D241 AL
1D242 1D244 CM
1D245 AL
+1D2C0 1D2D3 AL
1D2E0 1D2F3 AL
1D300 1D356 AL
1D360 1D378 AL
@@ -2550,20 +2624,33 @@ FFFD AI
1DA8B AL
1DA9B 1DA9F CM
1DAA1 1DAAF CM
+1DF00 1DF1E AL
+1DF25 1DF2A AL
1E000 1E006 CM
1E008 1E018 CM
1E01B 1E021 CM
1E023 1E024 CM
1E026 1E02A CM
+1E030 1E06D AL
+1E08F CM
1E100 1E12C AL
1E130 1E136 CM
1E137 1E13D AL
1E140 1E149 NU
1E14E 1E14F AL
+1E290 1E2AD AL
+1E2AE CM
1E2C0 1E2EB AL
1E2EC 1E2EF CM
1E2F0 1E2F9 NU
1E2FF PR
+1E4D0 1E4EB AL
+1E4EC 1E4EF CM
+1E4F0 1E4F9 NU
+1E7E0 1E7E6 AL
+1E7E8 1E7EB AL
+1E7ED 1E7EE AL
+1E7F0 1E7FE AL
1E800 1E8C4 AL
1E8C7 1E8CF AL
1E8D0 1E8D6 CM
@@ -2742,7 +2829,11 @@ FFFD AI
1F9D1 1F9DD EB
1F9DE 1F9FF ID
1FA00 1FA53 AL
-1FA54 1FAFF ID
+1FA54 1FAC2 ID
+1FAC3 1FAC5 EB
+1FAC6 1FAEF ID
+1FAF0 1FAF8 EB
+1FAF9 1FAFF ID
1FB00 1FB92 AL
1FB94 1FBCA AL
1FBF0 1FBF9 NU
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl
index 809c580eb7..b352454f1a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -498,7 +498,7 @@ D8 DE F8
2160 216F 2170
2183 2184
24B6 24CF 24D0
-2C00 2C2E 2C30
+2C00 2C2F 2C30
2C60 2C61
2C62 26B
2C63 1D7D
@@ -678,16 +678,24 @@ A7B8 A7B9
A7BA A7BB
A7BC A7BD
A7BE A7BF
+A7C0 A7C1
A7C2 A7C3
A7C4 A794
A7C5 282
A7C6 1D8E
A7C7 A7C8
A7C9 A7CA
+A7D0 A7D1
+A7D6 A7D7
+A7D8 A7D9
A7F5 A7F6
FF21 FF3A FF41
10400 10427 10428
104B0 104D3 104D8
+10570 1057A 10597
+1057C 1058A 105A3
+1058C 10592 105B3
+10594 10595 105BB
10C80 10CB2 10CC0
118A0 118BF 118C0
16E40 16E5F 16E60
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lower.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lower.pl
deleted file mode 100644
index 7bdaea94d6..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lower.pl
+++ /dev/null
@@ -1,1428 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
-
-# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
-
-# This file is for internal use by core Perl only. It is retained for
-# backwards compatibility with applications that may have come to rely on it,
-# 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') (Values for individual
-# code points can be retrieved via Unicode::UCD::charprop());
-
-
-
-# The name this table is to be known by, with the format of the mappings in
-# the main body of the table, and what all code points missing from this file
-# map to.
-$Unicode::UCD::SwashInfo{'ToLower'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToLower'}{'specials_name'} = 'Unicode::UCD::ToSpecLower'; # Name of hash of special mappings
-$Unicode::UCD::SwashInfo{'ToLower'}{'missing'} = '<code point>'; # code point maps to itself
-
-# Some code points require special handling because their mappings are each to
-# multiple code points. These do not appear in the main body, but are defined
-# in the hash below.
-
-# Each key is the string of N bytes that together make up the UTF-8 encoding
-# for the code point. (i.e. the same as looking at the code point's UTF-8
-# under "use bytes"). Each value is the UTF-8 of the translation, for speed.
-%Unicode::UCD::ToSpecLower = (
-"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307
-);
-
-return <<'END';
-0041 0061
-0042 0062
-0043 0063
-0044 0064
-0045 0065
-0046 0066
-0047 0067
-0048 0068
-0049 0069
-004A 006A
-004B 006B
-004C 006C
-004D 006D
-004E 006E
-004F 006F
-0050 0070
-0051 0071
-0052 0072
-0053 0073
-0054 0074
-0055 0075
-0056 0076
-0057 0077
-0058 0078
-0059 0079
-005A 007A
-00C0 00E0
-00C1 00E1
-00C2 00E2
-00C3 00E3
-00C4 00E4
-00C5 00E5
-00C6 00E6
-00C7 00E7
-00C8 00E8
-00C9 00E9
-00CA 00EA
-00CB 00EB
-00CC 00EC
-00CD 00ED
-00CE 00EE
-00CF 00EF
-00D0 00F0
-00D1 00F1
-00D2 00F2
-00D3 00F3
-00D4 00F4
-00D5 00F5
-00D6 00F6
-00D8 00F8
-00D9 00F9
-00DA 00FA
-00DB 00FB
-00DC 00FC
-00DD 00FD
-00DE 00FE
-0100 0101
-0102 0103
-0104 0105
-0106 0107
-0108 0109
-010A 010B
-010C 010D
-010E 010F
-0110 0111
-0112 0113
-0114 0115
-0116 0117
-0118 0119
-011A 011B
-011C 011D
-011E 011F
-0120 0121
-0122 0123
-0124 0125
-0126 0127
-0128 0129
-012A 012B
-012C 012D
-012E 012F
-0132 0133
-0134 0135
-0136 0137
-0139 013A
-013B 013C
-013D 013E
-013F 0140
-0141 0142
-0143 0144
-0145 0146
-0147 0148
-014A 014B
-014C 014D
-014E 014F
-0150 0151
-0152 0153
-0154 0155
-0156 0157
-0158 0159
-015A 015B
-015C 015D
-015E 015F
-0160 0161
-0162 0163
-0164 0165
-0166 0167
-0168 0169
-016A 016B
-016C 016D
-016E 016F
-0170 0171
-0172 0173
-0174 0175
-0176 0177
-0178 00FF
-0179 017A
-017B 017C
-017D 017E
-0181 0253
-0182 0183
-0184 0185
-0186 0254
-0187 0188
-0189 0256
-018A 0257
-018B 018C
-018E 01DD
-018F 0259
-0190 025B
-0191 0192
-0193 0260
-0194 0263
-0196 0269
-0197 0268
-0198 0199
-019C 026F
-019D 0272
-019F 0275
-01A0 01A1
-01A2 01A3
-01A4 01A5
-01A6 0280
-01A7 01A8
-01A9 0283
-01AC 01AD
-01AE 0288
-01AF 01B0
-01B1 028A
-01B2 028B
-01B3 01B4
-01B5 01B6
-01B7 0292
-01B8 01B9
-01BC 01BD
-01C4 01C6
-01C5 01C6
-01C7 01C9
-01C8 01C9
-01CA 01CC
-01CB 01CC
-01CD 01CE
-01CF 01D0
-01D1 01D2
-01D3 01D4
-01D5 01D6
-01D7 01D8
-01D9 01DA
-01DB 01DC
-01DE 01DF
-01E0 01E1
-01E2 01E3
-01E4 01E5
-01E6 01E7
-01E8 01E9
-01EA 01EB
-01EC 01ED
-01EE 01EF
-01F1 01F3
-01F2 01F3
-01F4 01F5
-01F6 0195
-01F7 01BF
-01F8 01F9
-01FA 01FB
-01FC 01FD
-01FE 01FF
-0200 0201
-0202 0203
-0204 0205
-0206 0207
-0208 0209
-020A 020B
-020C 020D
-020E 020F
-0210 0211
-0212 0213
-0214 0215
-0216 0217
-0218 0219
-021A 021B
-021C 021D
-021E 021F
-0220 019E
-0222 0223
-0224 0225
-0226 0227
-0228 0229
-022A 022B
-022C 022D
-022E 022F
-0230 0231
-0232 0233
-023A 2C65
-023B 023C
-023D 019A
-023E 2C66
-0241 0242
-0243 0180
-0244 0289
-0245 028C
-0246 0247
-0248 0249
-024A 024B
-024C 024D
-024E 024F
-0370 0371
-0372 0373
-0376 0377
-037F 03F3
-0386 03AC
-0388 03AD
-0389 03AE
-038A 03AF
-038C 03CC
-038E 03CD
-038F 03CE
-0391 03B1
-0392 03B2
-0393 03B3
-0394 03B4
-0395 03B5
-0396 03B6
-0397 03B7
-0398 03B8
-0399 03B9
-039A 03BA
-039B 03BB
-039C 03BC
-039D 03BD
-039E 03BE
-039F 03BF
-03A0 03C0
-03A1 03C1
-03A3 03C3
-03A4 03C4
-03A5 03C5
-03A6 03C6
-03A7 03C7
-03A8 03C8
-03A9 03C9
-03AA 03CA
-03AB 03CB
-03CF 03D7
-03D8 03D9
-03DA 03DB
-03DC 03DD
-03DE 03DF
-03E0 03E1
-03E2 03E3
-03E4 03E5
-03E6 03E7
-03E8 03E9
-03EA 03EB
-03EC 03ED
-03EE 03EF
-03F4 03B8
-03F7 03F8
-03F9 03F2
-03FA 03FB
-03FD 037B
-03FE 037C
-03FF 037D
-0400 0450
-0401 0451
-0402 0452
-0403 0453
-0404 0454
-0405 0455
-0406 0456
-0407 0457
-0408 0458
-0409 0459
-040A 045A
-040B 045B
-040C 045C
-040D 045D
-040E 045E
-040F 045F
-0410 0430
-0411 0431
-0412 0432
-0413 0433
-0414 0434
-0415 0435
-0416 0436
-0417 0437
-0418 0438
-0419 0439
-041A 043A
-041B 043B
-041C 043C
-041D 043D
-041E 043E
-041F 043F
-0420 0440
-0421 0441
-0422 0442
-0423 0443
-0424 0444
-0425 0445
-0426 0446
-0427 0447
-0428 0448
-0429 0449
-042A 044A
-042B 044B
-042C 044C
-042D 044D
-042E 044E
-042F 044F
-0460 0461
-0462 0463
-0464 0465
-0466 0467
-0468 0469
-046A 046B
-046C 046D
-046E 046F
-0470 0471
-0472 0473
-0474 0475
-0476 0477
-0478 0479
-047A 047B
-047C 047D
-047E 047F
-0480 0481
-048A 048B
-048C 048D
-048E 048F
-0490 0491
-0492 0493
-0494 0495
-0496 0497
-0498 0499
-049A 049B
-049C 049D
-049E 049F
-04A0 04A1
-04A2 04A3
-04A4 04A5
-04A6 04A7
-04A8 04A9
-04AA 04AB
-04AC 04AD
-04AE 04AF
-04B0 04B1
-04B2 04B3
-04B4 04B5
-04B6 04B7
-04B8 04B9
-04BA 04BB
-04BC 04BD
-04BE 04BF
-04C0 04CF
-04C1 04C2
-04C3 04C4
-04C5 04C6
-04C7 04C8
-04C9 04CA
-04CB 04CC
-04CD 04CE
-04D0 04D1
-04D2 04D3
-04D4 04D5
-04D6 04D7
-04D8 04D9
-04DA 04DB
-04DC 04DD
-04DE 04DF
-04E0 04E1
-04E2 04E3
-04E4 04E5
-04E6 04E7
-04E8 04E9
-04EA 04EB
-04EC 04ED
-04EE 04EF
-04F0 04F1
-04F2 04F3
-04F4 04F5
-04F6 04F7
-04F8 04F9
-04FA 04FB
-04FC 04FD
-04FE 04FF
-0500 0501
-0502 0503
-0504 0505
-0506 0507
-0508 0509
-050A 050B
-050C 050D
-050E 050F
-0510 0511
-0512 0513
-0514 0515
-0516 0517
-0518 0519
-051A 051B
-051C 051D
-051E 051F
-0520 0521
-0522 0523
-0524 0525
-0526 0527
-0528 0529
-052A 052B
-052C 052D
-052E 052F
-0531 0561
-0532 0562
-0533 0563
-0534 0564
-0535 0565
-0536 0566
-0537 0567
-0538 0568
-0539 0569
-053A 056A
-053B 056B
-053C 056C
-053D 056D
-053E 056E
-053F 056F
-0540 0570
-0541 0571
-0542 0572
-0543 0573
-0544 0574
-0545 0575
-0546 0576
-0547 0577
-0548 0578
-0549 0579
-054A 057A
-054B 057B
-054C 057C
-054D 057D
-054E 057E
-054F 057F
-0550 0580
-0551 0581
-0552 0582
-0553 0583
-0554 0584
-0555 0585
-0556 0586
-10A0 2D00
-10A1 2D01
-10A2 2D02
-10A3 2D03
-10A4 2D04
-10A5 2D05
-10A6 2D06
-10A7 2D07
-10A8 2D08
-10A9 2D09
-10AA 2D0A
-10AB 2D0B
-10AC 2D0C
-10AD 2D0D
-10AE 2D0E
-10AF 2D0F
-10B0 2D10
-10B1 2D11
-10B2 2D12
-10B3 2D13
-10B4 2D14
-10B5 2D15
-10B6 2D16
-10B7 2D17
-10B8 2D18
-10B9 2D19
-10BA 2D1A
-10BB 2D1B
-10BC 2D1C
-10BD 2D1D
-10BE 2D1E
-10BF 2D1F
-10C0 2D20
-10C1 2D21
-10C2 2D22
-10C3 2D23
-10C4 2D24
-10C5 2D25
-10C7 2D27
-10CD 2D2D
-13A0 AB70
-13A1 AB71
-13A2 AB72
-13A3 AB73
-13A4 AB74
-13A5 AB75
-13A6 AB76
-13A7 AB77
-13A8 AB78
-13A9 AB79
-13AA AB7A
-13AB AB7B
-13AC AB7C
-13AD AB7D
-13AE AB7E
-13AF AB7F
-13B0 AB80
-13B1 AB81
-13B2 AB82
-13B3 AB83
-13B4 AB84
-13B5 AB85
-13B6 AB86
-13B7 AB87
-13B8 AB88
-13B9 AB89
-13BA AB8A
-13BB AB8B
-13BC AB8C
-13BD AB8D
-13BE AB8E
-13BF AB8F
-13C0 AB90
-13C1 AB91
-13C2 AB92
-13C3 AB93
-13C4 AB94
-13C5 AB95
-13C6 AB96
-13C7 AB97
-13C8 AB98
-13C9 AB99
-13CA AB9A
-13CB AB9B
-13CC AB9C
-13CD AB9D
-13CE AB9E
-13CF AB9F
-13D0 ABA0
-13D1 ABA1
-13D2 ABA2
-13D3 ABA3
-13D4 ABA4
-13D5 ABA5
-13D6 ABA6
-13D7 ABA7
-13D8 ABA8
-13D9 ABA9
-13DA ABAA
-13DB ABAB
-13DC ABAC
-13DD ABAD
-13DE ABAE
-13DF ABAF
-13E0 ABB0
-13E1 ABB1
-13E2 ABB2
-13E3 ABB3
-13E4 ABB4
-13E5 ABB5
-13E6 ABB6
-13E7 ABB7
-13E8 ABB8
-13E9 ABB9
-13EA ABBA
-13EB ABBB
-13EC ABBC
-13ED ABBD
-13EE ABBE
-13EF ABBF
-13F0 13F8
-13F1 13F9
-13F2 13FA
-13F3 13FB
-13F4 13FC
-13F5 13FD
-1C90 10D0
-1C91 10D1
-1C92 10D2
-1C93 10D3
-1C94 10D4
-1C95 10D5
-1C96 10D6
-1C97 10D7
-1C98 10D8
-1C99 10D9
-1C9A 10DA
-1C9B 10DB
-1C9C 10DC
-1C9D 10DD
-1C9E 10DE
-1C9F 10DF
-1CA0 10E0
-1CA1 10E1
-1CA2 10E2
-1CA3 10E3
-1CA4 10E4
-1CA5 10E5
-1CA6 10E6
-1CA7 10E7
-1CA8 10E8
-1CA9 10E9
-1CAA 10EA
-1CAB 10EB
-1CAC 10EC
-1CAD 10ED
-1CAE 10EE
-1CAF 10EF
-1CB0 10F0
-1CB1 10F1
-1CB2 10F2
-1CB3 10F3
-1CB4 10F4
-1CB5 10F5
-1CB6 10F6
-1CB7 10F7
-1CB8 10F8
-1CB9 10F9
-1CBA 10FA
-1CBD 10FD
-1CBE 10FE
-1CBF 10FF
-1E00 1E01
-1E02 1E03
-1E04 1E05
-1E06 1E07
-1E08 1E09
-1E0A 1E0B
-1E0C 1E0D
-1E0E 1E0F
-1E10 1E11
-1E12 1E13
-1E14 1E15
-1E16 1E17
-1E18 1E19
-1E1A 1E1B
-1E1C 1E1D
-1E1E 1E1F
-1E20 1E21
-1E22 1E23
-1E24 1E25
-1E26 1E27
-1E28 1E29
-1E2A 1E2B
-1E2C 1E2D
-1E2E 1E2F
-1E30 1E31
-1E32 1E33
-1E34 1E35
-1E36 1E37
-1E38 1E39
-1E3A 1E3B
-1E3C 1E3D
-1E3E 1E3F
-1E40 1E41
-1E42 1E43
-1E44 1E45
-1E46 1E47
-1E48 1E49
-1E4A 1E4B
-1E4C 1E4D
-1E4E 1E4F
-1E50 1E51
-1E52 1E53
-1E54 1E55
-1E56 1E57
-1E58 1E59
-1E5A 1E5B
-1E5C 1E5D
-1E5E 1E5F
-1E60 1E61
-1E62 1E63
-1E64 1E65
-1E66 1E67
-1E68 1E69
-1E6A 1E6B
-1E6C 1E6D
-1E6E 1E6F
-1E70 1E71
-1E72 1E73
-1E74 1E75
-1E76 1E77
-1E78 1E79
-1E7A 1E7B
-1E7C 1E7D
-1E7E 1E7F
-1E80 1E81
-1E82 1E83
-1E84 1E85
-1E86 1E87
-1E88 1E89
-1E8A 1E8B
-1E8C 1E8D
-1E8E 1E8F
-1E90 1E91
-1E92 1E93
-1E94 1E95
-1E9E 00DF
-1EA0 1EA1
-1EA2 1EA3
-1EA4 1EA5
-1EA6 1EA7
-1EA8 1EA9
-1EAA 1EAB
-1EAC 1EAD
-1EAE 1EAF
-1EB0 1EB1
-1EB2 1EB3
-1EB4 1EB5
-1EB6 1EB7
-1EB8 1EB9
-1EBA 1EBB
-1EBC 1EBD
-1EBE 1EBF
-1EC0 1EC1
-1EC2 1EC3
-1EC4 1EC5
-1EC6 1EC7
-1EC8 1EC9
-1ECA 1ECB
-1ECC 1ECD
-1ECE 1ECF
-1ED0 1ED1
-1ED2 1ED3
-1ED4 1ED5
-1ED6 1ED7
-1ED8 1ED9
-1EDA 1EDB
-1EDC 1EDD
-1EDE 1EDF
-1EE0 1EE1
-1EE2 1EE3
-1EE4 1EE5
-1EE6 1EE7
-1EE8 1EE9
-1EEA 1EEB
-1EEC 1EED
-1EEE 1EEF
-1EF0 1EF1
-1EF2 1EF3
-1EF4 1EF5
-1EF6 1EF7
-1EF8 1EF9
-1EFA 1EFB
-1EFC 1EFD
-1EFE 1EFF
-1F08 1F00
-1F09 1F01
-1F0A 1F02
-1F0B 1F03
-1F0C 1F04
-1F0D 1F05
-1F0E 1F06
-1F0F 1F07
-1F18 1F10
-1F19 1F11
-1F1A 1F12
-1F1B 1F13
-1F1C 1F14
-1F1D 1F15
-1F28 1F20
-1F29 1F21
-1F2A 1F22
-1F2B 1F23
-1F2C 1F24
-1F2D 1F25
-1F2E 1F26
-1F2F 1F27
-1F38 1F30
-1F39 1F31
-1F3A 1F32
-1F3B 1F33
-1F3C 1F34
-1F3D 1F35
-1F3E 1F36
-1F3F 1F37
-1F48 1F40
-1F49 1F41
-1F4A 1F42
-1F4B 1F43
-1F4C 1F44
-1F4D 1F45
-1F59 1F51
-1F5B 1F53
-1F5D 1F55
-1F5F 1F57
-1F68 1F60
-1F69 1F61
-1F6A 1F62
-1F6B 1F63
-1F6C 1F64
-1F6D 1F65
-1F6E 1F66
-1F6F 1F67
-1F88 1F80
-1F89 1F81
-1F8A 1F82
-1F8B 1F83
-1F8C 1F84
-1F8D 1F85
-1F8E 1F86
-1F8F 1F87
-1F98 1F90
-1F99 1F91
-1F9A 1F92
-1F9B 1F93
-1F9C 1F94
-1F9D 1F95
-1F9E 1F96
-1F9F 1F97
-1FA8 1FA0
-1FA9 1FA1
-1FAA 1FA2
-1FAB 1FA3
-1FAC 1FA4
-1FAD 1FA5
-1FAE 1FA6
-1FAF 1FA7
-1FB8 1FB0
-1FB9 1FB1
-1FBA 1F70
-1FBB 1F71
-1FBC 1FB3
-1FC8 1F72
-1FC9 1F73
-1FCA 1F74
-1FCB 1F75
-1FCC 1FC3
-1FD8 1FD0
-1FD9 1FD1
-1FDA 1F76
-1FDB 1F77
-1FE8 1FE0
-1FE9 1FE1
-1FEA 1F7A
-1FEB 1F7B
-1FEC 1FE5
-1FF8 1F78
-1FF9 1F79
-1FFA 1F7C
-1FFB 1F7D
-1FFC 1FF3
-2126 03C9
-212A 006B
-212B 00E5
-2132 214E
-2160 2170
-2161 2171
-2162 2172
-2163 2173
-2164 2174
-2165 2175
-2166 2176
-2167 2177
-2168 2178
-2169 2179
-216A 217A
-216B 217B
-216C 217C
-216D 217D
-216E 217E
-216F 217F
-2183 2184
-24B6 24D0
-24B7 24D1
-24B8 24D2
-24B9 24D3
-24BA 24D4
-24BB 24D5
-24BC 24D6
-24BD 24D7
-24BE 24D8
-24BF 24D9
-24C0 24DA
-24C1 24DB
-24C2 24DC
-24C3 24DD
-24C4 24DE
-24C5 24DF
-24C6 24E0
-24C7 24E1
-24C8 24E2
-24C9 24E3
-24CA 24E4
-24CB 24E5
-24CC 24E6
-24CD 24E7
-24CE 24E8
-24CF 24E9
-2C00 2C30
-2C01 2C31
-2C02 2C32
-2C03 2C33
-2C04 2C34
-2C05 2C35
-2C06 2C36
-2C07 2C37
-2C08 2C38
-2C09 2C39
-2C0A 2C3A
-2C0B 2C3B
-2C0C 2C3C
-2C0D 2C3D
-2C0E 2C3E
-2C0F 2C3F
-2C10 2C40
-2C11 2C41
-2C12 2C42
-2C13 2C43
-2C14 2C44
-2C15 2C45
-2C16 2C46
-2C17 2C47
-2C18 2C48
-2C19 2C49
-2C1A 2C4A
-2C1B 2C4B
-2C1C 2C4C
-2C1D 2C4D
-2C1E 2C4E
-2C1F 2C4F
-2C20 2C50
-2C21 2C51
-2C22 2C52
-2C23 2C53
-2C24 2C54
-2C25 2C55
-2C26 2C56
-2C27 2C57
-2C28 2C58
-2C29 2C59
-2C2A 2C5A
-2C2B 2C5B
-2C2C 2C5C
-2C2D 2C5D
-2C2E 2C5E
-2C60 2C61
-2C62 026B
-2C63 1D7D
-2C64 027D
-2C67 2C68
-2C69 2C6A
-2C6B 2C6C
-2C6D 0251
-2C6E 0271
-2C6F 0250
-2C70 0252
-2C72 2C73
-2C75 2C76
-2C7E 023F
-2C7F 0240
-2C80 2C81
-2C82 2C83
-2C84 2C85
-2C86 2C87
-2C88 2C89
-2C8A 2C8B
-2C8C 2C8D
-2C8E 2C8F
-2C90 2C91
-2C92 2C93
-2C94 2C95
-2C96 2C97
-2C98 2C99
-2C9A 2C9B
-2C9C 2C9D
-2C9E 2C9F
-2CA0 2CA1
-2CA2 2CA3
-2CA4 2CA5
-2CA6 2CA7
-2CA8 2CA9
-2CAA 2CAB
-2CAC 2CAD
-2CAE 2CAF
-2CB0 2CB1
-2CB2 2CB3
-2CB4 2CB5
-2CB6 2CB7
-2CB8 2CB9
-2CBA 2CBB
-2CBC 2CBD
-2CBE 2CBF
-2CC0 2CC1
-2CC2 2CC3
-2CC4 2CC5
-2CC6 2CC7
-2CC8 2CC9
-2CCA 2CCB
-2CCC 2CCD
-2CCE 2CCF
-2CD0 2CD1
-2CD2 2CD3
-2CD4 2CD5
-2CD6 2CD7
-2CD8 2CD9
-2CDA 2CDB
-2CDC 2CDD
-2CDE 2CDF
-2CE0 2CE1
-2CE2 2CE3
-2CEB 2CEC
-2CED 2CEE
-2CF2 2CF3
-A640 A641
-A642 A643
-A644 A645
-A646 A647
-A648 A649
-A64A A64B
-A64C A64D
-A64E A64F
-A650 A651
-A652 A653
-A654 A655
-A656 A657
-A658 A659
-A65A A65B
-A65C A65D
-A65E A65F
-A660 A661
-A662 A663
-A664 A665
-A666 A667
-A668 A669
-A66A A66B
-A66C A66D
-A680 A681
-A682 A683
-A684 A685
-A686 A687
-A688 A689
-A68A A68B
-A68C A68D
-A68E A68F
-A690 A691
-A692 A693
-A694 A695
-A696 A697
-A698 A699
-A69A A69B
-A722 A723
-A724 A725
-A726 A727
-A728 A729
-A72A A72B
-A72C A72D
-A72E A72F
-A732 A733
-A734 A735
-A736 A737
-A738 A739
-A73A A73B
-A73C A73D
-A73E A73F
-A740 A741
-A742 A743
-A744 A745
-A746 A747
-A748 A749
-A74A A74B
-A74C A74D
-A74E A74F
-A750 A751
-A752 A753
-A754 A755
-A756 A757
-A758 A759
-A75A A75B
-A75C A75D
-A75E A75F
-A760 A761
-A762 A763
-A764 A765
-A766 A767
-A768 A769
-A76A A76B
-A76C A76D
-A76E A76F
-A779 A77A
-A77B A77C
-A77D 1D79
-A77E A77F
-A780 A781
-A782 A783
-A784 A785
-A786 A787
-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
-A7AE 026A
-A7B0 029E
-A7B1 0287
-A7B2 029D
-A7B3 AB53
-A7B4 A7B5
-A7B6 A7B7
-A7B8 A7B9
-A7BA A7BB
-A7BC A7BD
-A7BE A7BF
-A7C2 A7C3
-A7C4 A794
-A7C5 0282
-A7C6 1D8E
-A7C7 A7C8
-A7C9 A7CA
-A7F5 A7F6
-FF21 FF41
-FF22 FF42
-FF23 FF43
-FF24 FF44
-FF25 FF45
-FF26 FF46
-FF27 FF47
-FF28 FF48
-FF29 FF49
-FF2A FF4A
-FF2B FF4B
-FF2C FF4C
-FF2D FF4D
-FF2E FF4E
-FF2F FF4F
-FF30 FF50
-FF31 FF51
-FF32 FF52
-FF33 FF53
-FF34 FF54
-FF35 FF55
-FF36 FF56
-FF37 FF57
-FF38 FF58
-FF39 FF59
-FF3A FF5A
-10400 10428
-10401 10429
-10402 1042A
-10403 1042B
-10404 1042C
-10405 1042D
-10406 1042E
-10407 1042F
-10408 10430
-10409 10431
-1040A 10432
-1040B 10433
-1040C 10434
-1040D 10435
-1040E 10436
-1040F 10437
-10410 10438
-10411 10439
-10412 1043A
-10413 1043B
-10414 1043C
-10415 1043D
-10416 1043E
-10417 1043F
-10418 10440
-10419 10441
-1041A 10442
-1041B 10443
-1041C 10444
-1041D 10445
-1041E 10446
-1041F 10447
-10420 10448
-10421 10449
-10422 1044A
-10423 1044B
-10424 1044C
-10425 1044D
-10426 1044E
-10427 1044F
-104B0 104D8
-104B1 104D9
-104B2 104DA
-104B3 104DB
-104B4 104DC
-104B5 104DD
-104B6 104DE
-104B7 104DF
-104B8 104E0
-104B9 104E1
-104BA 104E2
-104BB 104E3
-104BC 104E4
-104BD 104E5
-104BE 104E6
-104BF 104E7
-104C0 104E8
-104C1 104E9
-104C2 104EA
-104C3 104EB
-104C4 104EC
-104C5 104ED
-104C6 104EE
-104C7 104EF
-104C8 104F0
-104C9 104F1
-104CA 104F2
-104CB 104F3
-104CC 104F4
-104CD 104F5
-104CE 104F6
-104CF 104F7
-104D0 104F8
-104D1 104F9
-104D2 104FA
-104D3 104FB
-10C80 10CC0
-10C81 10CC1
-10C82 10CC2
-10C83 10CC3
-10C84 10CC4
-10C85 10CC5
-10C86 10CC6
-10C87 10CC7
-10C88 10CC8
-10C89 10CC9
-10C8A 10CCA
-10C8B 10CCB
-10C8C 10CCC
-10C8D 10CCD
-10C8E 10CCE
-10C8F 10CCF
-10C90 10CD0
-10C91 10CD1
-10C92 10CD2
-10C93 10CD3
-10C94 10CD4
-10C95 10CD5
-10C96 10CD6
-10C97 10CD7
-10C98 10CD8
-10C99 10CD9
-10C9A 10CDA
-10C9B 10CDB
-10C9C 10CDC
-10C9D 10CDD
-10C9E 10CDE
-10C9F 10CDF
-10CA0 10CE0
-10CA1 10CE1
-10CA2 10CE2
-10CA3 10CE3
-10CA4 10CE4
-10CA5 10CE5
-10CA6 10CE6
-10CA7 10CE7
-10CA8 10CE8
-10CA9 10CE9
-10CAA 10CEA
-10CAB 10CEB
-10CAC 10CEC
-10CAD 10CED
-10CAE 10CEE
-10CAF 10CEF
-10CB0 10CF0
-10CB1 10CF1
-10CB2 10CF2
-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
-16E40 16E60
-16E41 16E61
-16E42 16E62
-16E43 16E63
-16E44 16E64
-16E45 16E65
-16E46 16E66
-16E47 16E67
-16E48 16E68
-16E49 16E69
-16E4A 16E6A
-16E4B 16E6B
-16E4C 16E6C
-16E4D 16E6D
-16E4E 16E6E
-16E4F 16E6F
-16E50 16E70
-16E51 16E71
-16E52 16E72
-16E53 16E73
-16E54 16E74
-16E55 16E75
-16E56 16E76
-16E57 16E77
-16E58 16E78
-16E59 16E79
-16E5A 16E7A
-16E5B 16E7B
-16E5C 16E7C
-16E5D 16E7D
-16E5E 16E7E
-16E5F 16E7F
-1E900 1E922
-1E901 1E923
-1E902 1E924
-1E903 1E925
-1E904 1E926
-1E905 1E927
-1E906 1E928
-1E907 1E929
-1E908 1E92A
-1E909 1E92B
-1E90A 1E92C
-1E90B 1E92D
-1E90C 1E92E
-1E90D 1E92F
-1E90E 1E930
-1E90F 1E931
-1E910 1E932
-1E911 1E933
-1E912 1E934
-1E913 1E935
-1E914 1E936
-1E915 1E937
-1E916 1E938
-1E917 1E939
-1E918 1E93A
-1E919 1E93B
-1E91A 1E93C
-1E91B 1E93D
-1E91C 1E93E
-1E91D 1E93F
-1E91E 1E940
-1E91F 1E941
-1E920 1E942
-1E921 1E943
-END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
index f92b8b9cd5..2f91591348 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
index 71e5f72b4f..9bc26f3637 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
index e064ae32e1..40804a29c7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -123,6 +123,7 @@ $Unicode::UCD::SwashInfo{'ToNFKCCF'}{'missing'} = '<code point>'; # code point m
"\xE1\xA0\x8C" => "", # U+180C =>
"\xE1\xA0\x8D" => "", # U+180D =>
"\xE1\xA0\x8E" => "", # U+180E =>
+"\xE1\xA0\x8F" => "", # U+180F =>
"\xE1\xBA\x9A" => "\x{0061}\x{02BE}", # U+1E9A => 0061 02BE
"\xE1\xBA\x9E" => "\x{0073}\x{0073}", # U+1E9E => 0073 0073
"\xE1\xBE\x80" => "\x{1F00}\x{03B9}", # U+1F80 => 1F00 03B9
@@ -6641,6 +6642,7 @@ return <<'END';
2C2C 2C5C
2C2D 2C5D
2C2E 2C5E
+2C2F 2C5F
2C60 2C61
2C62 026B
2C63 1D7D
@@ -7284,12 +7286,19 @@ A7B8 A7B9
A7BA A7BB
A7BC A7BD
A7BE A7BF
+A7C0 A7C1
A7C2 A7C3
A7C4 A794
A7C5 0282
A7C6 1D8E
A7C7 A7C8
A7C9 A7CA
+A7D0 A7D1
+A7D6 A7D7
+A7D8 A7D9
+A7F2 0063
+A7F3 0066
+A7F4 0071
A7F5 A7F6
A7F8 0127
A7F9 0153
@@ -8448,6 +8457,97 @@ FFEE 25CB
104D1 104F9
104D2 104FA
104D3 104FB
+10570 10597
+10571 10598
+10572 10599
+10573 1059A
+10574 1059B
+10575 1059C
+10576 1059D
+10577 1059E
+10578 1059F
+10579 105A0
+1057A 105A1
+1057C 105A3
+1057D 105A4
+1057E 105A5
+1057F 105A6
+10580 105A7
+10581 105A8
+10582 105A9
+10583 105AA
+10584 105AB
+10585 105AC
+10586 105AD
+10587 105AE
+10588 105AF
+10589 105B0
+1058A 105B1
+1058C 105B3
+1058D 105B4
+1058E 105B5
+1058F 105B6
+10590 105B7
+10591 105B8
+10592 105B9
+10594 105BB
+10595 105BC
+10781 02D0
+10782 02D1
+10783 00E6
+10784 0299
+10785 0253
+10787 02A3
+10788 AB66
+10789 02A5
+1078A 02A4
+1078B 0256
+1078C 0257
+1078D 1D91
+1078E 0258
+1078F 025E
+10790 02A9
+10791 0264
+10792 0262
+10793 0260
+10794 029B
+10795 0127
+10796 029C
+10797 0267
+10798 0284
+10799 02AA
+1079A 02AB
+1079B 026C
+1079C 1DF04
+1079D A78E
+1079E 026E
+1079F 1DF05
+107A0 028E
+107A1 1DF06
+107A2 00F8
+107A3 0276
+107A4 0277
+107A5 0071
+107A6 027A
+107A7 1DF08
+107A8 027D
+107A9 027E
+107AA 0280
+107AB 02A8
+107AC 02A6
+107AD AB67
+107AE 02A7
+107AF 0288
+107B0 2C71
+107B2 028F
+107B3 02A1
+107B4 02A2
+107B5 0298
+107B6 01C0
+107B7 01C1
+107B8 01C2
+107B9 1DF0A
+107BA 1DF1E
10C80 10CC0
10C81 10CC1
10C82 10CC2
@@ -9559,6 +9659,68 @@ FFEE 25CB
1D7FD 0037
1D7FE 0038
1D7FF 0039
+1E030 0430
+1E031 0431
+1E032 0432
+1E033 0433
+1E034 0434
+1E035 0435
+1E036 0436
+1E037 0437
+1E038 0438
+1E039 043A
+1E03A 043B
+1E03B 043C
+1E03C 043E
+1E03D 043F
+1E03E 0440
+1E03F 0441
+1E040 0442
+1E041 0443
+1E042 0444
+1E043 0445
+1E044 0446
+1E045 0447
+1E046 0448
+1E047 044B
+1E048 044D
+1E049 044E
+1E04A A689
+1E04B 04D9
+1E04C 0456
+1E04D 0458
+1E04E 04E9
+1E04F 04AF
+1E050 04CF
+1E051 0430
+1E052 0431
+1E053 0432
+1E054 0433
+1E055 0434
+1E056 0435
+1E057 0436
+1E058 0437
+1E059 0438
+1E05A 043A
+1E05B 043B
+1E05C 043E
+1E05D 043F
+1E05E 0441
+1E05F 0443
+1E060 0444
+1E061 0445
+1E062 0446
+1E063 0447
+1E064 0448
+1E065 044A
+1E066 044B
+1E067 0491
+1E068 0456
+1E069 0455
+1E06A 045F
+1E06B 04AB
+1E06C A651
+1E06D 04B1
1E900 1E922
1E901 1E923
1E902 1E924
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
index 999a0be1eb..65d188cfb9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -193,6 +193,7 @@ FB9 N
3280 33FF N
A69C A69D N
A770 N
+A7F2 A7F4 N
A7F8 A7F9 N
AB5C AB5F N
AB69 N
@@ -233,6 +234,9 @@ FFD2 FFD7 N
FFDA FFDC N
FFE0 FFE6 N
FFE8 FFEE N
+10781 10785 N
+10787 107B0 N
+107B2 107BA N
110BA M
11127 M
1133E M
@@ -265,6 +269,7 @@ FFE8 FFEE N
1D552 1D6A5 N
1D6A8 1D7CB N
1D7CE 1D7FF N
+1E030 1E06D N
1EE00 1EE03 N
1EE05 1EE1F N
1EE21 1EE22 N
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
index 4f044ba416..906a41d8c3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -292,6 +292,7 @@ FB9 N
3280 33FF N
A69C A69D N
A770 N
+A7F2 A7F4 N
A7F8 A7F9 N
AB5C AB5F N
AB69 N
@@ -333,6 +334,9 @@ FFD2 FFD7 N
FFDA FFDC N
FFE0 FFE6 N
FFE8 FFEE N
+10781 10785 N
+10787 107B0 N
+107B2 107BA N
1109A N
1109C N
110AB N
@@ -365,6 +369,7 @@ FFE8 FFEE N
1D552 1D6A5 N
1D6A8 1D7CB N
1D7CE 1D7FF N
+1E030 1E06D N
1EE00 1EE03 N
1EE05 1EE1F N
1EE21 1EE22 N
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl
index 20a292b876..003fafba10 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToNa1'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToNa1'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToNa1'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
0 NULL
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
index e7dbf4fc96..648e3c2b91 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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.
$Unicode::UCD::SwashInfo{'ToNameAlias'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToNameAlias'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToNameAlias'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
0 NULL: control
@@ -78,6 +78,7 @@ F SI: abbreviation
18 CAN: abbreviation
19 END OF MEDIUM: control
19 EOM: abbreviation
+19 EM: abbreviation
1A SUBSTITUTE: control
1A SUB: abbreviation
1B ESCAPE: control
@@ -178,6 +179,7 @@ AD SHY: abbreviation
1A2 LATIN CAPITAL LETTER GHA: correction
1A3 LATIN SMALL LETTER GHA: correction
34F CGJ: abbreviation
+616 ARABIC SMALL HIGH LIGATURE ALEF WITH YEH BARREE: correction
61C ALM: abbreviation
709 SYRIAC SUBLINEAR COLON SKEWED LEFT: correction
CDE KANNADA LETTER LLLA: correction
@@ -194,6 +196,8 @@ FD0 TIBETAN MARK BKA- SHOG GI MGO RGYAN: correction
180C FVS2: abbreviation
180D FVS3: abbreviation
180E MVS: abbreviation
+180F FVS4: abbreviation
+1BBD SUNDANESE LETTER ARCHAIC I: correction
200B ZWSP: abbreviation
200C ZWNJ: abbreviation
200D ZWJ: abbreviation
@@ -217,6 +221,7 @@ FD0 TIBETAN MARK BKA- SHOG GI MGO RGYAN: correction
2B7A LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE VERTICAL STROKE: correction
2B7C RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE VERTICAL STROKE: correction
A015 YI SYLLABLE ITERATION MARK: correction
+AA6E MYANMAR LETTER KHAMTI LLA: correction
FE00 VS1: abbreviation
FE01 VS2: abbreviation
FE02 VS3: abbreviation
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl
index 117fa60d0e..e56a1b53d1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -212,17 +212,21 @@ FF10 FF19 Decimal
11C5A 11C6C Numeric
11D50 11D59 Decimal
11DA0 11DA9 Decimal
+11F50 11F59 Decimal
11FC0 11FD4 Numeric
12400 1246E Numeric
16A60 16A69 Decimal
+16AC0 16AC9 Decimal
16B50 16B59 Decimal
16B5B 16B61 Numeric
16E80 16E96 Numeric
+1D2C0 1D2D3 Numeric
1D2E0 1D2F3 Numeric
1D360 1D378 Numeric
1D7CE 1D7FF Decimal
1E140 1E149 Decimal
1E2F0 1E2F9 Decimal
+1E4F0 1E4F9 Decimal
1E8C7 1E8CF Numeric
1E950 1E959 Decimal
1EC71 1ECAB Numeric
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl
index 4b30af2fc4..d4b26c1ba6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -584,6 +584,7 @@ FF10 FF19 0
11C6C 100
11D50 11D59 0
11DA0 11DA9 0
+11F50 11F59 0
11FC0 1/320
11FC1 1/160
11FC2 1/80
@@ -653,6 +654,7 @@ FF10 FF19 0
12468 50
12469 1246E 4
16A60 16A69 0
+16AC0 16AC9 0
16B50 16B59 0
16B5B 10
16B5C 100
@@ -663,6 +665,7 @@ FF10 FF19 0
16B61 1000000000000
16E80 16E93 0
16E94 16E96 1
+1D2C0 1D2D3 0
1D2E0 1D2F3 0
1D360 1D369 1
1D36A 20
@@ -683,6 +686,7 @@ FF10 FF19 0
1D7F6 1D7FF 0
1E140 1E149 0
1E2F0 1E2F9 0
+1E4F0 1E4F9 0
1E8C7 1E8CF 1
1E950 1E959 0
1EC71 1EC7A 1
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
index 48ff4beacf..c66d7b13b8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -16,7 +16,7 @@
# the main body of the table, and what all code points missing from this file
# map to.
$Unicode::UCD::SwashInfo{'ToPerlDecimalDigit'}{'format'} = 'a'; # some entries need adjustment
-$Unicode::UCD::SwashInfo{'ToPerlDecimalDigit'}{'missing'} = ''; # code point maps to the null string
+$Unicode::UCD::SwashInfo{'ToPerlDecimalDigit'}{'missing'} = ''; # code point maps to the empty string
return <<'END';
30 39 0
@@ -73,7 +73,9 @@ FF10 FF19 0
11C50 11C59 0
11D50 11D59 0
11DA0 11DA9 0
+11F50 11F59 0
16A60 16A69 0
+16AC0 16AC9 0
16B50 16B59 0
1D7CE 1D7D7 0
1D7D8 1D7E1 0
@@ -82,6 +84,7 @@ FF10 FF19 0
1D7F6 1D7FF 0
1E140 1E149 0
1E2F0 1E2F9 0
+1E4F0 1E4F9 0
1E950 1E959 0
1FBF0 1FBF9 0
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl
index 1587c17131..ac53157aed 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -609,7 +609,7 @@ F8 FF Lower
60C 60D SContinue
610 61A Extend
61C Format
-61E 61F STerm
+61D 61F STerm
620 64A OLetter
64B 65F Extend
660 669 Numeric
@@ -660,9 +660,12 @@ F8 FF Lower
840 858 OLetter
859 85B Extend
860 86A OLetter
-8A0 8B4 OLetter
-8B6 8C7 OLetter
-8D3 8E1 Extend
+870 887 OLetter
+889 88E OLetter
+890 891 Format
+898 89F Extend
+8A0 8C9 OLetter
+8CA 8E1 Extend
8E2 Format
8E3 903 Extend
904 939 OLetter
@@ -774,12 +777,14 @@ C05 C0C OLetter
C0E C10 OLetter
C12 C28 OLetter
C2A C39 OLetter
+C3C Extend
C3D OLetter
C3E C44 Extend
C46 C48 Extend
C4A C4D Extend
C55 C56 Extend
C58 C5A OLetter
+C5D OLetter
C60 C61 OLetter
C62 C63 Extend
C66 C6F Numeric
@@ -796,11 +801,12 @@ CBE CC4 Extend
CC6 CC8 Extend
CCA CCD Extend
CD5 CD6 Extend
-CDE OLetter
+CDD CDE OLetter
CE0 CE1 OLetter
CE2 CE3 Extend
CE6 CEF Numeric
CF1 CF2 OLetter
+CF3 Extend
D00 D03 Extend
D04 D0C OLetter
D0E D10 OLetter
@@ -848,7 +854,7 @@ EB4 EBC Extend
EBD OLetter
EC0 EC4 OLetter
EC6 OLetter
-EC8 ECD Extend
+EC8 ECE Extend
ED0 ED9 Numeric
EDC EDF OLetter
F00 OLetter
@@ -892,7 +898,8 @@ FC6 Extend
10C7 Upper
10CD Upper
10D0 10FA OLetter
-10FC 1248 OLetter
+10FC Lower
+10FD 1248 OLetter
124A 124D OLetter
1250 1256 OLetter
1258 OLetter
@@ -922,10 +929,9 @@ FC6 Extend
169B 169C Close
16A0 16EA OLetter
16EE 16F8 OLetter
-1700 170C OLetter
-170E 1711 OLetter
-1712 1714 Extend
-1720 1731 OLetter
+1700 1711 OLetter
+1712 1715 Extend
+171F 1731 OLetter
1732 1734 Extend
1735 1736 STerm
1740 1751 OLetter
@@ -945,6 +951,7 @@ FC6 Extend
1809 STerm
180B 180D Extend
180E Format
+180F Extend
1810 1819 Numeric
1820 1878 OLetter
1880 1884 OLetter
@@ -973,15 +980,16 @@ FC6 Extend
1A90 1A99 Numeric
1AA7 OLetter
1AA8 1AAB STerm
-1AB0 1AC0 Extend
+1AB0 1ACE Extend
1B00 1B04 Extend
1B05 1B33 OLetter
1B34 1B44 Extend
-1B45 1B4B OLetter
+1B45 1B4C OLetter
1B50 1B59 Numeric
1B5A 1B5B STerm
1B5E 1B5F STerm
1B6B 1B73 Extend
+1B7D 1B7E STerm
1B80 1B82 Extend
1B83 1BA0 OLetter
1BA1 1BAD Extend
@@ -1010,8 +1018,7 @@ FC6 Extend
1CF7 1CF9 Extend
1CFA OLetter
1D00 1DBF Lower
-1DC0 1DF9 Extend
-1DFB 1DFF Extend
+1DC0 1DFF Extend
1E00 Upper
1E01 Lower
1E02 Upper
@@ -1361,8 +1368,8 @@ FC6 Extend
2983 2998 Close
29D8 29DB Close
29FC 29FD Close
-2C00 2C2E Upper
-2C30 2C5E Lower
+2C00 2C2F Upper
+2C30 2C5F Lower
2C60 Upper
2C61 Lower
2C62 2C64 Upper
@@ -1509,6 +1516,8 @@ FC6 Extend
2E2F OLetter
2E3C STerm
2E42 Close
+2E53 2E54 STerm
+2E55 2E5C Close
3000 Sp
3001 SContinue
3002 STerm
@@ -1530,8 +1539,7 @@ FC6 Extend
31A0 31BF OLetter
31F0 31FF OLetter
3400 4DBF OLetter
-4E00 9FFC OLetter
-A000 A48C OLetter
+4E00 A48C OLetter
A4D0 A4FD OLetter
A4FF STerm
A500 A60C OLetter
@@ -1757,12 +1765,23 @@ A7BC Upper
A7BD Lower
A7BE Upper
A7BF Lower
+A7C0 Upper
+A7C1 Lower
A7C2 Upper
A7C3 Lower
A7C4 A7C7 Upper
A7C8 Lower
A7C9 Upper
A7CA Lower
+A7D0 Upper
+A7D1 Lower
+A7D3 Lower
+A7D5 Lower
+A7D6 Upper
+A7D7 Lower
+A7D8 Upper
+A7D9 Lower
+A7F2 A7F4 Lower
A7F5 Upper
A7F6 Lower
A7F7 OLetter
@@ -1840,8 +1859,7 @@ AB11 AB16 OLetter
AB20 AB26 OLetter
AB28 AB2E OLetter
AB30 AB5A Lower
-AB5C AB68 Lower
-AB69 OLetter
+AB5C AB69 Lower
AB70 ABBF Lower
ABC0 ABE2 OLetter
ABE3 ABEA Extend
@@ -1940,9 +1958,22 @@ FFF9 FFFB Format
104D8 104FB Lower
10500 10527 OLetter
10530 10563 OLetter
+10570 1057A Upper
+1057C 1058A Upper
+1058C 10592 Upper
+10594 10595 Upper
+10597 105A1 Lower
+105A3 105B1 Lower
+105B3 105B9 Lower
+105BB 105BC Lower
10600 10736 OLetter
10740 10755 OLetter
10760 10767 OLetter
+10780 Lower
+10781 10782 OLetter
+10783 10785 Lower
+10787 107B0 Lower
+107B2 107BA Lower
10800 10805 OLetter
10808 OLetter
1080A 10835 OLetter
@@ -1985,11 +2016,15 @@ FFF9 FFFB Format
10E80 10EA9 OLetter
10EAB 10EAC Extend
10EB0 10EB1 OLetter
+10EFD 10EFF Extend
10F00 10F1C OLetter
10F27 OLetter
10F30 10F45 OLetter
10F46 10F50 Extend
10F55 10F59 STerm
+10F70 10F81 OLetter
+10F82 10F85 Extend
+10F86 10F89 STerm
10FB0 10FC4 OLetter
10FE0 10FF6 OLetter
11000 11002 Extend
@@ -1997,11 +2032,16 @@ FFF9 FFFB Format
11038 11046 Extend
11047 11048 STerm
11066 1106F Numeric
+11070 Extend
+11071 11072 OLetter
+11073 11074 Extend
+11075 OLetter
1107F 11082 Extend
11083 110AF OLetter
110B0 110BA Extend
110BD Format
110BE 110C1 STerm
+110C2 Extend
110CD Format
110D0 110E8 OLetter
110F0 110F9 Numeric
@@ -2034,6 +2074,8 @@ FFF9 FFFB Format
11238 11239 STerm
1123B 1123C STerm
1123E Extend
+1123F 11240 OLetter
+11241 Extend
11280 11286 OLetter
11288 OLetter
1128A 1128D OLetter
@@ -2093,6 +2135,7 @@ FFF9 FFFB Format
1171D 1172B Extend
11730 11739 Numeric
1173C 1173E STerm
+11740 11746 OLetter
11800 1182B OLetter
1182C 1183A Extend
118A0 118BF Upper
@@ -2134,7 +2177,7 @@ FFF9 FFFB Format
11A8A 11A99 Extend
11A9B 11A9C STerm
11A9D OLetter
-11AC0 11AF8 OLetter
+11AB0 11AF8 OLetter
11C00 11C08 OLetter
11C0A 11C2E OLetter
11C2F 11C36 Extend
@@ -2166,17 +2209,32 @@ FFF9 FFFB Format
11EE0 11EF2 OLetter
11EF3 11EF6 Extend
11EF7 11EF8 STerm
+11F00 11F01 Extend
+11F02 OLetter
+11F03 Extend
+11F04 11F10 OLetter
+11F12 11F33 OLetter
+11F34 11F3A Extend
+11F3E 11F42 Extend
+11F43 11F44 STerm
+11F50 11F59 Numeric
11FB0 OLetter
12000 12399 OLetter
12400 1246E OLetter
12480 12543 OLetter
-13000 1342E OLetter
-13430 13438 Format
+12F90 12FF0 OLetter
+13000 1342F OLetter
+13430 1343F Format
+13440 Extend
+13441 13446 OLetter
+13447 13455 Extend
14400 14646 OLetter
16800 16A38 OLetter
16A40 16A5E OLetter
16A60 16A69 Numeric
16A6E 16A6F STerm
+16A70 16ABE OLetter
+16AC0 16AC9 Numeric
16AD0 16AED OLetter
16AF0 16AF4 Extend
16AF5 STerm
@@ -2204,8 +2262,13 @@ FFF9 FFFB Format
17000 187F7 OLetter
18800 18CD5 OLetter
18D00 18D08 OLetter
-1B000 1B11E OLetter
+1AFF0 1AFF3 OLetter
+1AFF5 1AFFB OLetter
+1AFFD 1AFFE OLetter
+1B000 1B122 OLetter
+1B132 OLetter
1B150 1B152 OLetter
+1B155 OLetter
1B164 1B167 OLetter
1B170 1B2FB OLetter
1BC00 1BC6A OLetter
@@ -2215,6 +2278,8 @@ FFF9 FFFB Format
1BC9D 1BC9E Extend
1BC9F STerm
1BCA0 1BCA3 Format
+1CF00 1CF2D Extend
+1CF30 1CF46 Extend
1D165 1D169 Extend
1D16D 1D172 Extend
1D173 1D17A Format
@@ -2289,19 +2354,34 @@ FFF9 FFFB Format
1DA88 STerm
1DA9B 1DA9F Extend
1DAA1 1DAAF Extend
+1DF00 1DF09 Lower
+1DF0A OLetter
+1DF0B 1DF1E Lower
+1DF25 1DF2A Lower
1E000 1E006 Extend
1E008 1E018 Extend
1E01B 1E021 Extend
1E023 1E024 Extend
1E026 1E02A Extend
+1E030 1E06D Lower
+1E08F Extend
1E100 1E12C OLetter
1E130 1E136 Extend
1E137 1E13D OLetter
1E140 1E149 Numeric
1E14E OLetter
+1E290 1E2AD OLetter
+1E2AE Extend
1E2C0 1E2EB OLetter
1E2EC 1E2EF Extend
1E2F0 1E2F9 Numeric
+1E4D0 1E4EB OLetter
+1E4EC 1E4EF Extend
+1E4F0 1E4F9 Numeric
+1E7E0 1E7E6 OLetter
+1E7E8 1E7EB OLetter
+1E7ED 1E7EE OLetter
+1E7F0 1E7FE OLetter
1E800 1E8C4 OLetter
1E8D0 1E8D6 Extend
1E900 1E921 Upper
@@ -2347,13 +2427,14 @@ FFF9 FFFB Format
1F170 1F189 Upper
1F676 1F678 Close
1FBF0 1FBF9 Numeric
-20000 2A6DD OLetter
-2A700 2B734 OLetter
+20000 2A6DF OLetter
+2A700 2B739 OLetter
2B740 2B81D OLetter
2B820 2CEA1 OLetter
2CEB0 2EBE0 OLetter
2F800 2FA1D OLetter
30000 3134A OLetter
+31350 323AF OLetter
E0001 Format
E0020 E007F Extend
E0100 E01EF Extend
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl
index ca3b314012..a8c268402b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -68,8 +68,7 @@ F8 2B8 Latin
60C Common
60D 61A Arabic
61B Common
-61C Arabic
-61E Arabic
+61C 61E Arabic
61F Common
620 63F Arabic
640 Common
@@ -92,9 +91,9 @@ F8 2B8 Latin
840 85B Mandaic
85E Mandaic
860 86A Syriac
-8A0 8B4 Arabic
-8B6 8C7 Arabic
-8D3 8E1 Arabic
+870 88E Arabic
+890 891 Arabic
+898 8E1 Arabic
8E2 Common
8E3 8FF Arabic
900 950 Devanagari
@@ -180,11 +179,12 @@ C00 C0C Telugu
C0E C10 Telugu
C12 C28 Telugu
C2A C39 Telugu
-C3D C44 Telugu
+C3C C44 Telugu
C46 C48 Telugu
C4A C4D Telugu
C55 C56 Telugu
C58 C5A Telugu
+C5D Telugu
C60 C63 Telugu
C66 C6F Telugu
C77 C7F Telugu
@@ -197,10 +197,10 @@ CBC CC4 Kannada
CC6 CC8 Kannada
CCA CCD Kannada
CD5 CD6 Kannada
-CDE Kannada
+CDD CDE Kannada
CE0 CE3 Kannada
CE6 CEF Kannada
-CF1 CF2 Kannada
+CF1 CF3 Kannada
D00 D0C Malayalam
D0E D10 Malayalam
D12 D44 Malayalam
@@ -231,7 +231,7 @@ EA5 Lao
EA7 EBD Lao
EC0 EC4 Lao
EC6 Lao
-EC8 ECD Lao
+EC8 ECE Lao
ED0 ED9 Lao
EDC EDF Lao
F00 F47 Tibetan
@@ -275,8 +275,8 @@ FD9 FDA Tibetan
16A0 16EA Runic
16EB 16ED Common
16EE 16F8 Runic
-1700 170C Tagalog
-170E 1714 Tagalog
+1700 1715 Tagalog
+171F Tagalog
1720 1734 Hanunoo
1735 1736 Common
1740 1753 Buhid
@@ -290,8 +290,7 @@ FD9 FDA Tibetan
1802 1803 Common
1804 Mongolian
1805 Common
-1806 180E Mongolian
-1810 1819 Mongolian
+1806 1819 Mongolian
1820 1878 Mongolian
1880 18AA Mongolian
18B0 18F5 Canadian_Aboriginal
@@ -314,9 +313,9 @@ FD9 FDA Tibetan
1A7F 1A89 Tai_Tham
1A90 1A99 Tai_Tham
1AA0 1AAD Tai_Tham
-1AB0 1AC0 Inherited
-1B00 1B4B Balinese
-1B50 1B7C Balinese
+1AB0 1ACE Inherited
+1B00 1B4C Balinese
+1B50 1B7E Balinese
1B80 1BBF Sundanese
1BC0 1BF3 Batak
1BFC 1BFF Batak
@@ -351,8 +350,7 @@ FD9 FDA Tibetan
1D78 Cyrillic
1D79 1DBE Latin
1DBF Greek
-1DC0 1DF9 Inherited
-1DFB 1DFF Inherited
+1DC0 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
1F18 1F1D Greek
@@ -379,7 +377,7 @@ FD9 FDA Tibetan
207F Latin
2080 208E Common
2090 209C Latin
-20A0 20BF Common
+20A0 20C0 Common
20D0 20F0 Inherited
2100 2125 Common
2126 Greek
@@ -399,8 +397,7 @@ FD9 FDA Tibetan
2900 2B73 Common
2B76 2B95 Common
2B97 2BFF Common
-2C00 2C2E Glagolitic
-2C30 2C5E Glagolitic
+2C00 2C5F Glagolitic
2C60 2C7F Latin
2C80 2CF3 Coptic
2CF9 2CFF Coptic
@@ -420,7 +417,7 @@ FD9 FDA Tibetan
2DD0 2DD6 Ethiopic
2DD8 2DDE Ethiopic
2DE0 2DFF Cyrillic
-2E00 2E52 Common
+2E00 2E5D Common
2E80 2E99 Han
2E9B 2EF3 Han
2F00 2FD5 Han
@@ -460,7 +457,7 @@ FD9 FDA Tibetan
3358 33FF Common
3400 4DBF Han
4DC0 4DFF Common
-4E00 9FFC Han
+4E00 9FFF Han
A000 A48C Yi
A490 A4C6 Yi
A4D0 A4FF Lisu
@@ -470,9 +467,11 @@ A6A0 A6F7 Bamum
A700 A721 Common
A722 A787 Latin
A788 A78A Common
-A78B A7BF Latin
-A7C2 A7CA Latin
-A7F5 A7FF Latin
+A78B A7CA Latin
+A7D0 A7D1 Latin
+A7D3 Latin
+A7D5 A7D9 Latin
+A7F2 A7FF Latin
A800 A82C Syloti_Nagri
A830 A839 Common
A840 A877 Phags_Pa
@@ -525,12 +524,13 @@ FB3E Hebrew
FB40 FB41 Hebrew
FB43 FB44 Hebrew
FB46 FB4F Hebrew
-FB50 FBC1 Arabic
+FB50 FBC2 Arabic
FBD3 FD3D Arabic
FD3E FD3F Common
-FD50 FD8F Arabic
+FD40 FD8F Arabic
FD92 FDC7 Arabic
-FDF0 FDFD Arabic
+FDCF Arabic
+FDF0 FDFF Arabic
FE00 FE0F Inherited
FE10 FE19 Common
FE20 FE2D Inherited
@@ -594,9 +594,20 @@ FFF9 FFFD Common
10500 10527 Elbasan
10530 10563 Caucasian_Albanian
1056F Caucasian_Albanian
+10570 1057A Vithkuqi
+1057C 1058A Vithkuqi
+1058C 10592 Vithkuqi
+10594 10595 Vithkuqi
+10597 105A1 Vithkuqi
+105A3 105B1 Vithkuqi
+105B3 105B9 Vithkuqi
+105BB 105BC Vithkuqi
10600 10736 Linear_A
10740 10755 Linear_A
10760 10767 Linear_A
+10780 10785 Latin
+10787 107B0 Latin
+107B2 107BA Latin
10800 10805 Cypriot
10808 Cypriot
1080A 10835 Cypriot
@@ -650,14 +661,16 @@ FFF9 FFFD Common
10E80 10EA9 Yezidi
10EAB 10EAD Yezidi
10EB0 10EB1 Yezidi
+10EFD 10EFF Arabic
10F00 10F27 Old_Sogdian
10F30 10F59 Sogdian
+10F70 10F89 Old_Uyghur
10FB0 10FCB Chorasmian
10FE0 10FF6 Elymaic
11000 1104D Brahmi
-11052 1106F Brahmi
+11052 11075 Brahmi
1107F Brahmi
-11080 110C1 Kaithi
+11080 110C2 Kaithi
110CD Kaithi
110D0 110E8 Sora_Sompeng
110F0 110F9 Sora_Sompeng
@@ -667,7 +680,7 @@ FFF9 FFFD Common
11180 111DF Sharada
111E1 111F4 Sinhala
11200 11211 Khojki
-11213 1123E Khojki
+11213 11241 Khojki
11280 11286 Multani
11288 Multani
1128A 1128D Multani
@@ -700,11 +713,11 @@ FFF9 FFFD Common
11600 11644 Modi
11650 11659 Modi
11660 1166C Mongolian
-11680 116B8 Takri
+11680 116B9 Takri
116C0 116C9 Takri
11700 1171A Ahom
1171D 1172B Ahom
-11730 1173F Ahom
+11730 11746 Ahom
11800 1183B Dogra
118A0 118F2 Warang_Citi
118FF Warang_Citi
@@ -721,7 +734,9 @@ FFF9 FFFD Common
119DA 119E4 Nandinagari
11A00 11A47 Zanabazar_Square
11A50 11AA2 Soyombo
+11AB0 11ABF Canadian_Aboriginal
11AC0 11AF8 Pau_Cin_Hau
+11B00 11B09 Devanagari
11C00 11C08 Bhaiksuki
11C0A 11C36 Bhaiksuki
11C38 11C45 Bhaiksuki
@@ -743,6 +758,9 @@ FFF9 FFFD Common
11D93 11D98 Gunjala_Gondi
11DA0 11DA9 Gunjala_Gondi
11EE0 11EF8 Makasar
+11F00 11F10 Kawi
+11F12 11F3A Kawi
+11F3E 11F59 Kawi
11FB0 Lisu
11FC0 11FF1 Tamil
11FFF Tamil
@@ -750,13 +768,15 @@ FFF9 FFFD Common
12400 1246E Cuneiform
12470 12474 Cuneiform
12480 12543 Cuneiform
-13000 1342E Egyptian_Hieroglyphs
-13430 13438 Egyptian_Hieroglyphs
+12F90 12FF2 Cypro_Minoan
+13000 13455 Egyptian_Hieroglyphs
14400 14646 Anatolian_Hieroglyphs
16800 16A38 Bamum
16A40 16A5E Mro
16A60 16A69 Mro
16A6E 16A6F Mro
+16A70 16ABE Tangsa
+16AC0 16AC9 Tangsa
16AD0 16AED Bassa_Vah
16AF0 16AF5 Bassa_Vah
16B00 16B45 Pahawh_Hmong
@@ -770,16 +790,22 @@ FFF9 FFFD Common
16F8F 16F9F Miao
16FE0 Tangut
16FE1 Nushu
-16FE2 16FE3 Common
+16FE2 16FE3 Han
16FE4 Khitan_Small_Script
16FF0 16FF1 Han
17000 187F7 Tangut
18800 18AFF Tangut
18B00 18CD5 Khitan_Small_Script
18D00 18D08 Tangut
+1AFF0 1AFF3 Katakana
+1AFF5 1AFFB Katakana
+1AFFD 1AFFE Katakana
1B000 Katakana
-1B001 1B11E Hiragana
+1B001 1B11F Hiragana
+1B120 1B122 Katakana
+1B132 Hiragana
1B150 1B152 Hiragana
+1B155 Katakana
1B164 1B167 Katakana
1B170 1B2FB Nushu
1BC00 1BC6A Duployan
@@ -788,6 +814,9 @@ FFF9 FFFD Common
1BC90 1BC99 Duployan
1BC9C 1BC9F Duployan
1BCA0 1BCA3 Common
+1CF00 1CF2D Inherited
+1CF30 1CF46 Inherited
+1CF50 1CFC3 Common
1D000 1D0F5 Common
1D100 1D126 Common
1D129 1D166 Common
@@ -798,8 +827,9 @@ FFF9 FFFD Common
1D185 1D18B Inherited
1D18C 1D1A9 Common
1D1AA 1D1AD Inherited
-1D1AE 1D1E8 Common
+1D1AE 1D1EA Common
1D200 1D245 Greek
+1D2C0 1D2D3 Common
1D2E0 1D2F3 Common
1D300 1D356 Common
1D360 1D378 Common
@@ -827,17 +857,27 @@ FFF9 FFFD Common
1D800 1DA8B SignWriting
1DA9B 1DA9F SignWriting
1DAA1 1DAAF SignWriting
+1DF00 1DF1E Latin
+1DF25 1DF2A Latin
1E000 1E006 Glagolitic
1E008 1E018 Glagolitic
1E01B 1E021 Glagolitic
1E023 1E024 Glagolitic
1E026 1E02A Glagolitic
+1E030 1E06D Cyrillic
+1E08F Cyrillic
1E100 1E12C Nyiakeng_Puachue_Hmong
1E130 1E13D Nyiakeng_Puachue_Hmong
1E140 1E149 Nyiakeng_Puachue_Hmong
1E14E 1E14F Nyiakeng_Puachue_Hmong
+1E290 1E2AE Toto
1E2C0 1E2F9 Wancho
1E2FF Wancho
+1E4D0 1E4F9 Nag_Mundari
+1E7E0 1E7E6 Ethiopic
+1E7E8 1E7EB Ethiopic
+1E7ED 1E7EE Ethiopic
+1E7F0 1E7FE Ethiopic
1E800 1E8C4 Mende_Kikakui
1E8C7 1E8D6 Mende_Kikakui
1E900 1E94B Adlam
@@ -894,38 +934,38 @@ FFF9 FFFD Common
1F250 1F251 Common
1F260 1F265 Common
1F300 1F6D7 Common
-1F6E0 1F6EC Common
+1F6DC 1F6EC Common
1F6F0 1F6FC Common
-1F700 1F773 Common
-1F780 1F7D8 Common
+1F700 1F776 Common
+1F77B 1F7D9 Common
1F7E0 1F7EB Common
+1F7F0 Common
1F800 1F80B Common
1F810 1F847 Common
1F850 1F859 Common
1F860 1F887 Common
1F890 1F8AD Common
1F8B0 1F8B1 Common
-1F900 1F978 Common
-1F97A 1F9CB Common
-1F9CD 1FA53 Common
+1F900 1FA53 Common
1FA60 1FA6D Common
-1FA70 1FA74 Common
-1FA78 1FA7A Common
-1FA80 1FA86 Common
-1FA90 1FAA8 Common
-1FAB0 1FAB6 Common
-1FAC0 1FAC2 Common
-1FAD0 1FAD6 Common
+1FA70 1FA7C Common
+1FA80 1FA88 Common
+1FA90 1FABD Common
+1FABF 1FAC5 Common
+1FACE 1FADB Common
+1FAE0 1FAE8 Common
+1FAF0 1FAF8 Common
1FB00 1FB92 Common
1FB94 1FBCA Common
1FBF0 1FBF9 Common
-20000 2A6DD Han
-2A700 2B734 Han
+20000 2A6DF Han
+2A700 2B739 Han
2B740 2B81D Han
2B820 2CEA1 Han
2CEB0 2EBE0 Han
2F800 2FA1D Han
30000 3134A Han
+31350 323AF Han
E0001 Common
E0020 E007F Common
E0100 E01EF Inherited
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl
index 964a32f6f5..21e58d82fe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -73,14 +73,14 @@ F8 2B8 Latin
600 604 Arabic
605 Common
606 60B Arabic
-60C Arabic Hanifi_Rohingya Syriac Thaana Yezidi
+60C Arabic Nko Hanifi_Rohingya Syriac Thaana Yezidi
60D 61A Arabic
-61B Arabic Hanifi_Rohingya Syriac Thaana Yezidi
+61B Arabic Nko Hanifi_Rohingya Syriac Thaana Yezidi
61C Arabic Syriac Thaana
-61E Arabic
-61F Arabic Hanifi_Rohingya Syriac Thaana Yezidi
+61D 61E Arabic
+61F Adlam Arabic Nko Hanifi_Rohingya Syriac Thaana Yezidi
620 63F Arabic
-640 Adlam Arabic Mandaic Manichaean Psalter_Pahlavi Hanifi_Rohingya Sogdian Syriac
+640 Adlam Arabic Mandaic Manichaean Old_Uyghur Psalter_Pahlavi Hanifi_Rohingya Sogdian Syriac
641 64A Arabic
64B 655 Arabic Syriac
656 65F Arabic
@@ -104,9 +104,9 @@ F8 2B8 Latin
840 85B Mandaic
85E Mandaic
860 86A Syriac
-8A0 8B4 Arabic
-8B6 8C7 Arabic
-8D3 8E1 Arabic
+870 88E Arabic
+890 891 Arabic
+898 8E1 Arabic
8E2 Common
8E3 8FF Arabic
900 950 Devanagari
@@ -200,11 +200,12 @@ C00 C0C Telugu
C0E C10 Telugu
C12 C28 Telugu
C2A C39 Telugu
-C3D C44 Telugu
+C3C C44 Telugu
C46 C48 Telugu
C4A C4D Telugu
C55 C56 Telugu
C58 C5A Telugu
+C5D Telugu
C60 C63 Telugu
C66 C6F Telugu
C77 C7F Telugu
@@ -217,10 +218,10 @@ CBC CC4 Kannada
CC6 CC8 Kannada
CCA CCD Kannada
CD5 CD6 Kannada
-CDE Kannada
+CDD CDE Kannada
CE0 CE3 Kannada
CE6 CEF Kannada Nandinagari
-CF1 CF2 Kannada
+CF1 CF3 Kannada
D00 D0C Malayalam
D0E D10 Malayalam
D12 D44 Malayalam
@@ -251,7 +252,7 @@ EA5 Lao
EA7 EBD Lao
EC0 EC4 Lao
EC6 Lao
-EC8 ECD Lao
+EC8 ECE Lao
ED0 ED9 Lao
EDC EDF Lao
F00 F47 Tibetan
@@ -297,8 +298,8 @@ FD9 FDA Tibetan
16A0 16EA Runic
16EB 16ED Common
16EE 16F8 Runic
-1700 170C Tagalog
-170E 1714 Tagalog
+1700 1715 Tagalog
+171F Tagalog
1720 1734 Hanunoo
1735 1736 Buhid Hanunoo Tagbanwa Tagalog
1740 1753 Buhid
@@ -312,8 +313,7 @@ FD9 FDA Tibetan
1802 1803 Mongolian Phags_Pa
1804 Mongolian
1805 Mongolian Phags_Pa
-1806 180E Mongolian
-1810 1819 Mongolian
+1806 1819 Mongolian
1820 1878 Mongolian
1880 18AA Mongolian
18B0 18F5 Canadian_Aboriginal
@@ -336,9 +336,9 @@ FD9 FDA Tibetan
1A7F 1A89 Tai_Tham
1A90 1A99 Tai_Tham
1AA0 1AAD Tai_Tham
-1AB0 1AC0 Inherited
-1B00 1B4B Balinese
-1B50 1B7C Balinese
+1AB0 1ACE Inherited
+1B00 1B4C Balinese
+1B50 1B7E Balinese
1B80 1BBF Sundanese
1BC0 1BF3 Batak
1BFC 1BFF Batak
@@ -392,6 +392,7 @@ FD9 FDA Tibetan
1DC2 1DF7 Inherited
1DF8 Cyrillic Syriac
1DF9 Inherited
+1DFA Syriac
1DFB 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
@@ -421,7 +422,7 @@ FD9 FDA Tibetan
207F Latin
2080 208E Common
2090 209C Latin
-20A0 20BF Common
+20A0 20C0 Common
20D0 20EF Inherited
20F0 Devanagari Grantha Latin
2100 2125 Common
@@ -442,8 +443,7 @@ FD9 FDA Tibetan
2900 2B73 Common
2B76 2B95 Common
2B97 2BFF Common
-2C00 2C2E Glagolitic
-2C30 2C5E Glagolitic
+2C00 2C5F Glagolitic
2C60 2C7F Latin
2C80 2CF3 Coptic
2CF9 2CFF Coptic
@@ -465,7 +465,7 @@ FD9 FDA Tibetan
2DE0 2DFF Cyrillic
2E00 2E42 Common
2E43 Cyrillic Glagolitic
-2E44 2E52 Common
+2E44 2E5D Common
2E80 2E99 Han
2E9B 2EF3 Han
2F00 2FD5 Han
@@ -525,7 +525,7 @@ FD9 FDA Tibetan
33FF Common
3400 4DBF Han
4DC0 4DFF Common
-4E00 9FFC Han
+4E00 9FFF Han
A000 A48C Yi
A490 A4C6 Yi
A4D0 A4FF Lisu
@@ -538,9 +538,11 @@ A700 A707 Han Latin
A708 A721 Common
A722 A787 Latin
A788 A78A Common
-A78B A7BF Latin
-A7C2 A7CA Latin
-A7F5 A7FF Latin
+A78B A7CA Latin
+A7D0 A7D1 Latin
+A7D3 Latin
+A7D5 A7D9 Latin
+A7F2 A7FF Latin
A800 A82C Syloti_Nagri
A830 A832 Devanagari Dogra Gujarati Gurmukhi Khojki Kannada Kaithi Mahajani Malayalam Modi Nandinagari Khudawadi Takri Tirhuta
A833 A835 Devanagari Dogra Gujarati Gurmukhi Khojki Kannada Kaithi Mahajani Modi Nandinagari Khudawadi Takri Tirhuta
@@ -599,15 +601,17 @@ FB3E Hebrew
FB40 FB41 Hebrew
FB43 FB44 Hebrew
FB46 FB4F Hebrew
-FB50 FBC1 Arabic
+FB50 FBC2 Arabic
FBD3 FD3D Arabic
-FD3E FD3F Common
-FD50 FD8F Arabic
+FD3E FD3F Arabic Nko
+FD40 FD8F Arabic
FD92 FDC7 Arabic
+FDCF Arabic
FDF0 FDF1 Arabic
FDF2 Arabic Thaana
FDF3 FDFC Arabic
FDFD Arabic Thaana
+FDFE FDFF Arabic
FE00 FE0F Inherited
FE10 FE19 Common
FE20 FE2D Inherited
@@ -645,7 +649,8 @@ FFF9 FFFD Common
1003F 1004D Linear_B
10050 1005D Linear_B
10080 100FA Linear_B
-10100 10102 Cypriot Linear_B
+10100 10101 Cypro_Minoan Cypriot Linear_B
+10102 Cypriot Linear_B
10107 10133 Cypriot Linear_A Linear_B
10137 1013F Cypriot Linear_B
10140 1018E Greek
@@ -673,9 +678,20 @@ FFF9 FFFD Common
10500 10527 Elbasan
10530 10563 Caucasian_Albanian
1056F Caucasian_Albanian
+10570 1057A Vithkuqi
+1057C 1058A Vithkuqi
+1058C 10592 Vithkuqi
+10594 10595 Vithkuqi
+10597 105A1 Vithkuqi
+105A3 105B1 Vithkuqi
+105B3 105B9 Vithkuqi
+105BB 105BC Vithkuqi
10600 10736 Linear_A
10740 10755 Linear_A
10760 10767 Linear_A
+10780 10785 Latin
+10787 107B0 Latin
+107B2 107BA Latin
10800 10805 Cypriot
10808 Cypriot
1080A 10835 Cypriot
@@ -709,7 +725,9 @@ FFF9 FFFD Common
10A60 10A7F Old_South_Arabian
10A80 10A9F Old_North_Arabian
10AC0 10AE6 Manichaean
-10AEB 10AF6 Manichaean
+10AEB 10AF1 Manichaean
+10AF2 Manichaean Old_Uyghur
+10AF3 10AF6 Manichaean
10B00 10B35 Avestan
10B39 10B3F Avestan
10B40 10B55 Inscriptional_Parthian
@@ -729,14 +747,16 @@ FFF9 FFFD Common
10E80 10EA9 Yezidi
10EAB 10EAD Yezidi
10EB0 10EB1 Yezidi
+10EFD 10EFF Arabic
10F00 10F27 Old_Sogdian
10F30 10F59 Sogdian
+10F70 10F89 Old_Uyghur
10FB0 10FCB Chorasmian
10FE0 10FF6 Elymaic
11000 1104D Brahmi
-11052 1106F Brahmi
+11052 11075 Brahmi
1107F Brahmi
-11080 110C1 Kaithi
+11080 110C2 Kaithi
110CD Kaithi
110D0 110E8 Sora_Sompeng
110F0 110F9 Sora_Sompeng
@@ -746,7 +766,7 @@ FFF9 FFFD Common
11180 111DF Sharada
111E1 111F4 Sinhala
11200 11211 Khojki
-11213 1123E Khojki
+11213 11241 Khojki
11280 11286 Multani
11288 Multani
1128A 1128D Multani
@@ -782,11 +802,11 @@ FFF9 FFFD Common
11600 11644 Modi
11650 11659 Modi
11660 1166C Mongolian
-11680 116B8 Takri
+11680 116B9 Takri
116C0 116C9 Takri
11700 1171A Ahom
1171D 1172B Ahom
-11730 1173F Ahom
+11730 11746 Ahom
11800 1183B Dogra
118A0 118F2 Warang_Citi
118FF Warang_Citi
@@ -803,7 +823,9 @@ FFF9 FFFD Common
119DA 119E4 Nandinagari
11A00 11A47 Zanabazar_Square
11A50 11AA2 Soyombo
+11AB0 11ABF Canadian_Aboriginal
11AC0 11AF8 Pau_Cin_Hau
+11B00 11B09 Devanagari
11C00 11C08 Bhaiksuki
11C0A 11C36 Bhaiksuki
11C38 11C45 Bhaiksuki
@@ -825,6 +847,9 @@ FFF9 FFFD Common
11D93 11D98 Gunjala_Gondi
11DA0 11DA9 Gunjala_Gondi
11EE0 11EF8 Makasar
+11F00 11F10 Kawi
+11F12 11F3A Kawi
+11F3E 11F59 Kawi
11FB0 Lisu
11FC0 11FCF Tamil
11FD0 11FD1 Grantha Tamil
@@ -836,13 +861,15 @@ FFF9 FFFD Common
12400 1246E Cuneiform
12470 12474 Cuneiform
12480 12543 Cuneiform
-13000 1342E Egyptian_Hieroglyphs
-13430 13438 Egyptian_Hieroglyphs
+12F90 12FF2 Cypro_Minoan
+13000 13455 Egyptian_Hieroglyphs
14400 14646 Anatolian_Hieroglyphs
16800 16A38 Bamum
16A40 16A5E Mro
16A60 16A69 Mro
16A6E 16A6F Mro
+16A70 16ABE Tangsa
+16AC0 16AC9 Tangsa
16AD0 16AED Bassa_Vah
16AF0 16AF5 Bassa_Vah
16B00 16B45 Pahawh_Hmong
@@ -856,16 +883,22 @@ FFF9 FFFD Common
16F8F 16F9F Miao
16FE0 Tangut
16FE1 Nushu
-16FE2 16FE3 Common
+16FE2 16FE3 Han
16FE4 Khitan_Small_Script
16FF0 16FF1 Han
17000 187F7 Tangut
18800 18AFF Tangut
18B00 18CD5 Khitan_Small_Script
18D00 18D08 Tangut
+1AFF0 1AFF3 Katakana
+1AFF5 1AFFB Katakana
+1AFFD 1AFFE Katakana
1B000 Katakana
-1B001 1B11E Hiragana
+1B001 1B11F Hiragana
+1B120 1B122 Katakana
+1B132 Hiragana
1B150 1B152 Hiragana
+1B155 Katakana
1B164 1B167 Katakana
1B170 1B2FB Nushu
1BC00 1BC6A Duployan
@@ -873,6 +906,9 @@ FFF9 FFFD Common
1BC80 1BC88 Duployan
1BC90 1BC99 Duployan
1BC9C 1BCA3 Duployan
+1CF00 1CF2D Inherited
+1CF30 1CF46 Inherited
+1CF50 1CFC3 Common
1D000 1D0F5 Common
1D100 1D126 Common
1D129 1D166 Common
@@ -883,8 +919,9 @@ FFF9 FFFD Common
1D185 1D18B Inherited
1D18C 1D1A9 Common
1D1AA 1D1AD Inherited
-1D1AE 1D1E8 Common
+1D1AE 1D1EA Common
1D200 1D245 Greek
+1D2C0 1D2D3 Common
1D2E0 1D2F3 Common
1D300 1D356 Common
1D360 1D371 Han
@@ -913,17 +950,27 @@ FFF9 FFFD Common
1D800 1DA8B SignWriting
1DA9B 1DA9F SignWriting
1DAA1 1DAAF SignWriting
+1DF00 1DF1E Latin
+1DF25 1DF2A Latin
1E000 1E006 Glagolitic
1E008 1E018 Glagolitic
1E01B 1E021 Glagolitic
1E023 1E024 Glagolitic
1E026 1E02A Glagolitic
+1E030 1E06D Cyrillic
+1E08F Cyrillic
1E100 1E12C Nyiakeng_Puachue_Hmong
1E130 1E13D Nyiakeng_Puachue_Hmong
1E140 1E149 Nyiakeng_Puachue_Hmong
1E14E 1E14F Nyiakeng_Puachue_Hmong
+1E290 1E2AE Toto
1E2C0 1E2F9 Wancho
1E2FF Wancho
+1E4D0 1E4F9 Nag_Mundari
+1E7E0 1E7E6 Ethiopic
+1E7E8 1E7EB Ethiopic
+1E7ED 1E7EE Ethiopic
+1E7F0 1E7FE Ethiopic
1E800 1E8C4 Mende_Kikakui
1E8C7 1E8D6 Mende_Kikakui
1E900 1E94B Adlam
@@ -980,38 +1027,38 @@ FFF9 FFFD Common
1F250 1F251 Han
1F260 1F265 Common
1F300 1F6D7 Common
-1F6E0 1F6EC Common
+1F6DC 1F6EC Common
1F6F0 1F6FC Common
-1F700 1F773 Common
-1F780 1F7D8 Common
+1F700 1F776 Common
+1F77B 1F7D9 Common
1F7E0 1F7EB Common
+1F7F0 Common
1F800 1F80B Common
1F810 1F847 Common
1F850 1F859 Common
1F860 1F887 Common
1F890 1F8AD Common
1F8B0 1F8B1 Common
-1F900 1F978 Common
-1F97A 1F9CB Common
-1F9CD 1FA53 Common
+1F900 1FA53 Common
1FA60 1FA6D Common
-1FA70 1FA74 Common
-1FA78 1FA7A Common
-1FA80 1FA86 Common
-1FA90 1FAA8 Common
-1FAB0 1FAB6 Common
-1FAC0 1FAC2 Common
-1FAD0 1FAD6 Common
+1FA70 1FA7C Common
+1FA80 1FA88 Common
+1FA90 1FABD Common
+1FABF 1FAC5 Common
+1FACE 1FADB Common
+1FAE0 1FAE8 Common
+1FAF0 1FAF8 Common
1FB00 1FB92 Common
1FB94 1FBCA Common
1FBF0 1FBF9 Common
-20000 2A6DD Han
-2A700 2B734 Han
+20000 2A6DF Han
+2A700 2B739 Han
2B740 2B81D Han
2B820 2CEA1 Han
2CEB0 2EBE0 Han
2F800 2FA1D Han
30000 3134A Han
+31350 323AF Han
E0001 Common
E0020 E007F Common
E0100 E01EF Inherited
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl
index b33f61afa2..8a09ce32c2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -573,7 +573,7 @@ FF 178
2170 217F 2160
2184 2183
24D0 24E9 24B6
-2C30 2C5E 2C00
+2C30 2C5F 2C00
2C61 2C60
2C65 23A
2C66 23E
@@ -740,15 +740,23 @@ A7B9 A7B8
A7BB A7BA
A7BD A7BC
A7BF A7BE
+A7C1 A7C0
A7C3 A7C2
A7C8 A7C7
A7CA A7C9
+A7D1 A7D0
+A7D7 A7D6
+A7D9 A7D8
A7F6 A7F5
AB53 A7B3
AB70 ABBF 13A0
FF41 FF5A FF21
10428 1044F 10400
104D8 104FB 104B0
+10597 105A1 10570
+105A3 105B1 1057C
+105B3 105B9 1058C
+105BB 105BC 10594
10CC0 10CF2 10C80
118C0 118DF 118A0
16E60 16E7F 16E40
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Title.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Title.pl
deleted file mode 100644
index bddf1e557a..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Title.pl
+++ /dev/null
@@ -1,1447 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
-
-# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
-
-# This file is for internal use by core Perl only. It is retained for
-# backwards compatibility with applications that may have come to rely on it,
-# 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') (Values for individual
-# code points can be retrieved via Unicode::UCD::charprop());
-
-
-
-# The name this table is to be known by, with the format of the mappings in
-# the main body of the table, and what all code points missing from this file
-# map to.
-$Unicode::UCD::SwashInfo{'ToTitle'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToTitle'}{'specials_name'} = 'Unicode::UCD::ToSpecTitle'; # Name of hash of special mappings
-$Unicode::UCD::SwashInfo{'ToTitle'}{'missing'} = '<code point>'; # code point maps to itself
-
-# Some code points require special handling because their mappings are each to
-# multiple code points. These do not appear in the main body, but are defined
-# in the hash below.
-
-# Each key is the string of N bytes that together make up the UTF-8 encoding
-# for the code point. (i.e. the same as looking at the code point's UTF-8
-# under "use bytes"). Each value is the UTF-8 of the translation, for speed.
-%Unicode::UCD::ToSpecTitle = (
-"\xC3\x9F" => "\x{0053}\x{0073}", # U+00DF => 0053 0073
-"\xC5\x89" => "\x{02BC}\x{004E}", # U+0149 => 02BC 004E
-"\xC7\xB0" => "\x{004A}\x{030C}", # U+01F0 => 004A 030C
-"\xCE\x90" => "\x{0399}\x{0308}\x{0301}", # U+0390 => 0399 0308 0301
-"\xCE\xB0" => "\x{03A5}\x{0308}\x{0301}", # U+03B0 => 03A5 0308 0301
-"\xD6\x87" => "\x{0535}\x{0582}", # U+0587 => 0535 0582
-"\xE1\xBA\x96" => "\x{0048}\x{0331}", # U+1E96 => 0048 0331
-"\xE1\xBA\x97" => "\x{0054}\x{0308}", # U+1E97 => 0054 0308
-"\xE1\xBA\x98" => "\x{0057}\x{030A}", # U+1E98 => 0057 030A
-"\xE1\xBA\x99" => "\x{0059}\x{030A}", # U+1E99 => 0059 030A
-"\xE1\xBA\x9A" => "\x{0041}\x{02BE}", # U+1E9A => 0041 02BE
-"\xE1\xBD\x90" => "\x{03A5}\x{0313}", # U+1F50 => 03A5 0313
-"\xE1\xBD\x92" => "\x{03A5}\x{0313}\x{0300}", # U+1F52 => 03A5 0313 0300
-"\xE1\xBD\x94" => "\x{03A5}\x{0313}\x{0301}", # U+1F54 => 03A5 0313 0301
-"\xE1\xBD\x96" => "\x{03A5}\x{0313}\x{0342}", # U+1F56 => 03A5 0313 0342
-"\xE1\xBE\xB2" => "\x{1FBA}\x{0345}", # U+1FB2 => 1FBA 0345
-"\xE1\xBE\xB4" => "\x{0386}\x{0345}", # U+1FB4 => 0386 0345
-"\xE1\xBE\xB6" => "\x{0391}\x{0342}", # U+1FB6 => 0391 0342
-"\xE1\xBE\xB7" => "\x{0391}\x{0342}\x{0345}", # U+1FB7 => 0391 0342 0345
-"\xE1\xBF\x82" => "\x{1FCA}\x{0345}", # U+1FC2 => 1FCA 0345
-"\xE1\xBF\x84" => "\x{0389}\x{0345}", # U+1FC4 => 0389 0345
-"\xE1\xBF\x86" => "\x{0397}\x{0342}", # U+1FC6 => 0397 0342
-"\xE1\xBF\x87" => "\x{0397}\x{0342}\x{0345}", # U+1FC7 => 0397 0342 0345
-"\xE1\xBF\x92" => "\x{0399}\x{0308}\x{0300}", # U+1FD2 => 0399 0308 0300
-"\xE1\xBF\x93" => "\x{0399}\x{0308}\x{0301}", # U+1FD3 => 0399 0308 0301
-"\xE1\xBF\x96" => "\x{0399}\x{0342}", # U+1FD6 => 0399 0342
-"\xE1\xBF\x97" => "\x{0399}\x{0308}\x{0342}", # U+1FD7 => 0399 0308 0342
-"\xE1\xBF\xA2" => "\x{03A5}\x{0308}\x{0300}", # U+1FE2 => 03A5 0308 0300
-"\xE1\xBF\xA3" => "\x{03A5}\x{0308}\x{0301}", # U+1FE3 => 03A5 0308 0301
-"\xE1\xBF\xA4" => "\x{03A1}\x{0313}", # U+1FE4 => 03A1 0313
-"\xE1\xBF\xA6" => "\x{03A5}\x{0342}", # U+1FE6 => 03A5 0342
-"\xE1\xBF\xA7" => "\x{03A5}\x{0308}\x{0342}", # U+1FE7 => 03A5 0308 0342
-"\xE1\xBF\xB2" => "\x{1FFA}\x{0345}", # U+1FF2 => 1FFA 0345
-"\xE1\xBF\xB4" => "\x{038F}\x{0345}", # U+1FF4 => 038F 0345
-"\xE1\xBF\xB6" => "\x{03A9}\x{0342}", # U+1FF6 => 03A9 0342
-"\xE1\xBF\xB7" => "\x{03A9}\x{0342}\x{0345}", # U+1FF7 => 03A9 0342 0345
-"\xEF\xAC\x80" => "\x{0046}\x{0066}", # U+FB00 => 0046 0066
-"\xEF\xAC\x81" => "\x{0046}\x{0069}", # U+FB01 => 0046 0069
-"\xEF\xAC\x82" => "\x{0046}\x{006C}", # U+FB02 => 0046 006C
-"\xEF\xAC\x83" => "\x{0046}\x{0066}\x{0069}", # U+FB03 => 0046 0066 0069
-"\xEF\xAC\x84" => "\x{0046}\x{0066}\x{006C}", # U+FB04 => 0046 0066 006C
-"\xEF\xAC\x85" => "\x{0053}\x{0074}", # U+FB05 => 0053 0074
-"\xEF\xAC\x86" => "\x{0053}\x{0074}", # U+FB06 => 0053 0074
-"\xEF\xAC\x93" => "\x{0544}\x{0576}", # U+FB13 => 0544 0576
-"\xEF\xAC\x94" => "\x{0544}\x{0565}", # U+FB14 => 0544 0565
-"\xEF\xAC\x95" => "\x{0544}\x{056B}", # U+FB15 => 0544 056B
-"\xEF\xAC\x96" => "\x{054E}\x{0576}", # U+FB16 => 054E 0576
-"\xEF\xAC\x97" => "\x{0544}\x{056D}", # U+FB17 => 0544 056D
-);
-
-return <<'END';
-0061 0041
-0062 0042
-0063 0043
-0064 0044
-0065 0045
-0066 0046
-0067 0047
-0068 0048
-0069 0049
-006A 004A
-006B 004B
-006C 004C
-006D 004D
-006E 004E
-006F 004F
-0070 0050
-0071 0051
-0072 0052
-0073 0053
-0074 0054
-0075 0055
-0076 0056
-0077 0057
-0078 0058
-0079 0059
-007A 005A
-00B5 039C
-00E0 00C0
-00E1 00C1
-00E2 00C2
-00E3 00C3
-00E4 00C4
-00E5 00C5
-00E6 00C6
-00E7 00C7
-00E8 00C8
-00E9 00C9
-00EA 00CA
-00EB 00CB
-00EC 00CC
-00ED 00CD
-00EE 00CE
-00EF 00CF
-00F0 00D0
-00F1 00D1
-00F2 00D2
-00F3 00D3
-00F4 00D4
-00F5 00D5
-00F6 00D6
-00F8 00D8
-00F9 00D9
-00FA 00DA
-00FB 00DB
-00FC 00DC
-00FD 00DD
-00FE 00DE
-00FF 0178
-0101 0100
-0103 0102
-0105 0104
-0107 0106
-0109 0108
-010B 010A
-010D 010C
-010F 010E
-0111 0110
-0113 0112
-0115 0114
-0117 0116
-0119 0118
-011B 011A
-011D 011C
-011F 011E
-0121 0120
-0123 0122
-0125 0124
-0127 0126
-0129 0128
-012B 012A
-012D 012C
-012F 012E
-0131 0049
-0133 0132
-0135 0134
-0137 0136
-013A 0139
-013C 013B
-013E 013D
-0140 013F
-0142 0141
-0144 0143
-0146 0145
-0148 0147
-014B 014A
-014D 014C
-014F 014E
-0151 0150
-0153 0152
-0155 0154
-0157 0156
-0159 0158
-015B 015A
-015D 015C
-015F 015E
-0161 0160
-0163 0162
-0165 0164
-0167 0166
-0169 0168
-016B 016A
-016D 016C
-016F 016E
-0171 0170
-0173 0172
-0175 0174
-0177 0176
-017A 0179
-017C 017B
-017E 017D
-017F 0053
-0180 0243
-0183 0182
-0185 0184
-0188 0187
-018C 018B
-0192 0191
-0195 01F6
-0199 0198
-019A 023D
-019E 0220
-01A1 01A0
-01A3 01A2
-01A5 01A4
-01A8 01A7
-01AD 01AC
-01B0 01AF
-01B4 01B3
-01B6 01B5
-01B9 01B8
-01BD 01BC
-01BF 01F7
-01C4 01C5
-01C6 01C5
-01C7 01C8
-01C9 01C8
-01CA 01CB
-01CC 01CB
-01CE 01CD
-01D0 01CF
-01D2 01D1
-01D4 01D3
-01D6 01D5
-01D8 01D7
-01DA 01D9
-01DC 01DB
-01DD 018E
-01DF 01DE
-01E1 01E0
-01E3 01E2
-01E5 01E4
-01E7 01E6
-01E9 01E8
-01EB 01EA
-01ED 01EC
-01EF 01EE
-01F1 01F2
-01F3 01F2
-01F5 01F4
-01F9 01F8
-01FB 01FA
-01FD 01FC
-01FF 01FE
-0201 0200
-0203 0202
-0205 0204
-0207 0206
-0209 0208
-020B 020A
-020D 020C
-020F 020E
-0211 0210
-0213 0212
-0215 0214
-0217 0216
-0219 0218
-021B 021A
-021D 021C
-021F 021E
-0223 0222
-0225 0224
-0227 0226
-0229 0228
-022B 022A
-022D 022C
-022F 022E
-0231 0230
-0233 0232
-023C 023B
-023F 2C7E
-0240 2C7F
-0242 0241
-0247 0246
-0249 0248
-024B 024A
-024D 024C
-024F 024E
-0250 2C6F
-0251 2C6D
-0252 2C70
-0253 0181
-0254 0186
-0256 0189
-0257 018A
-0259 018F
-025B 0190
-025C A7AB
-0260 0193
-0261 A7AC
-0263 0194
-0265 A78D
-0266 A7AA
-0268 0197
-0269 0196
-026A A7AE
-026B 2C62
-026C A7AD
-026F 019C
-0271 2C6E
-0272 019D
-0275 019F
-027D 2C64
-0280 01A6
-0282 A7C5
-0283 01A9
-0287 A7B1
-0288 01AE
-0289 0244
-028A 01B1
-028B 01B2
-028C 0245
-0292 01B7
-029D A7B2
-029E A7B0
-0345 0399
-0371 0370
-0373 0372
-0377 0376
-037B 03FD
-037C 03FE
-037D 03FF
-03AC 0386
-03AD 0388
-03AE 0389
-03AF 038A
-03B1 0391
-03B2 0392
-03B3 0393
-03B4 0394
-03B5 0395
-03B6 0396
-03B7 0397
-03B8 0398
-03B9 0399
-03BA 039A
-03BB 039B
-03BC 039C
-03BD 039D
-03BE 039E
-03BF 039F
-03C0 03A0
-03C1 03A1
-03C2 03A3
-03C3 03A3
-03C4 03A4
-03C5 03A5
-03C6 03A6
-03C7 03A7
-03C8 03A8
-03C9 03A9
-03CA 03AA
-03CB 03AB
-03CC 038C
-03CD 038E
-03CE 038F
-03D0 0392
-03D1 0398
-03D5 03A6
-03D6 03A0
-03D7 03CF
-03D9 03D8
-03DB 03DA
-03DD 03DC
-03DF 03DE
-03E1 03E0
-03E3 03E2
-03E5 03E4
-03E7 03E6
-03E9 03E8
-03EB 03EA
-03ED 03EC
-03EF 03EE
-03F0 039A
-03F1 03A1
-03F2 03F9
-03F3 037F
-03F5 0395
-03F8 03F7
-03FB 03FA
-0430 0410
-0431 0411
-0432 0412
-0433 0413
-0434 0414
-0435 0415
-0436 0416
-0437 0417
-0438 0418
-0439 0419
-043A 041A
-043B 041B
-043C 041C
-043D 041D
-043E 041E
-043F 041F
-0440 0420
-0441 0421
-0442 0422
-0443 0423
-0444 0424
-0445 0425
-0446 0426
-0447 0427
-0448 0428
-0449 0429
-044A 042A
-044B 042B
-044C 042C
-044D 042D
-044E 042E
-044F 042F
-0450 0400
-0451 0401
-0452 0402
-0453 0403
-0454 0404
-0455 0405
-0456 0406
-0457 0407
-0458 0408
-0459 0409
-045A 040A
-045B 040B
-045C 040C
-045D 040D
-045E 040E
-045F 040F
-0461 0460
-0463 0462
-0465 0464
-0467 0466
-0469 0468
-046B 046A
-046D 046C
-046F 046E
-0471 0470
-0473 0472
-0475 0474
-0477 0476
-0479 0478
-047B 047A
-047D 047C
-047F 047E
-0481 0480
-048B 048A
-048D 048C
-048F 048E
-0491 0490
-0493 0492
-0495 0494
-0497 0496
-0499 0498
-049B 049A
-049D 049C
-049F 049E
-04A1 04A0
-04A3 04A2
-04A5 04A4
-04A7 04A6
-04A9 04A8
-04AB 04AA
-04AD 04AC
-04AF 04AE
-04B1 04B0
-04B3 04B2
-04B5 04B4
-04B7 04B6
-04B9 04B8
-04BB 04BA
-04BD 04BC
-04BF 04BE
-04C2 04C1
-04C4 04C3
-04C6 04C5
-04C8 04C7
-04CA 04C9
-04CC 04CB
-04CE 04CD
-04CF 04C0
-04D1 04D0
-04D3 04D2
-04D5 04D4
-04D7 04D6
-04D9 04D8
-04DB 04DA
-04DD 04DC
-04DF 04DE
-04E1 04E0
-04E3 04E2
-04E5 04E4
-04E7 04E6
-04E9 04E8
-04EB 04EA
-04ED 04EC
-04EF 04EE
-04F1 04F0
-04F3 04F2
-04F5 04F4
-04F7 04F6
-04F9 04F8
-04FB 04FA
-04FD 04FC
-04FF 04FE
-0501 0500
-0503 0502
-0505 0504
-0507 0506
-0509 0508
-050B 050A
-050D 050C
-050F 050E
-0511 0510
-0513 0512
-0515 0514
-0517 0516
-0519 0518
-051B 051A
-051D 051C
-051F 051E
-0521 0520
-0523 0522
-0525 0524
-0527 0526
-0529 0528
-052B 052A
-052D 052C
-052F 052E
-0561 0531
-0562 0532
-0563 0533
-0564 0534
-0565 0535
-0566 0536
-0567 0537
-0568 0538
-0569 0539
-056A 053A
-056B 053B
-056C 053C
-056D 053D
-056E 053E
-056F 053F
-0570 0540
-0571 0541
-0572 0542
-0573 0543
-0574 0544
-0575 0545
-0576 0546
-0577 0547
-0578 0548
-0579 0549
-057A 054A
-057B 054B
-057C 054C
-057D 054D
-057E 054E
-057F 054F
-0580 0550
-0581 0551
-0582 0552
-0583 0553
-0584 0554
-0585 0555
-0586 0556
-13F8 13F0
-13F9 13F1
-13FA 13F2
-13FB 13F3
-13FC 13F4
-13FD 13F5
-1C80 0412
-1C81 0414
-1C82 041E
-1C83 0421
-1C84 0422
-1C85 0422
-1C86 042A
-1C87 0462
-1C88 A64A
-1D79 A77D
-1D7D 2C63
-1D8E A7C6
-1E01 1E00
-1E03 1E02
-1E05 1E04
-1E07 1E06
-1E09 1E08
-1E0B 1E0A
-1E0D 1E0C
-1E0F 1E0E
-1E11 1E10
-1E13 1E12
-1E15 1E14
-1E17 1E16
-1E19 1E18
-1E1B 1E1A
-1E1D 1E1C
-1E1F 1E1E
-1E21 1E20
-1E23 1E22
-1E25 1E24
-1E27 1E26
-1E29 1E28
-1E2B 1E2A
-1E2D 1E2C
-1E2F 1E2E
-1E31 1E30
-1E33 1E32
-1E35 1E34
-1E37 1E36
-1E39 1E38
-1E3B 1E3A
-1E3D 1E3C
-1E3F 1E3E
-1E41 1E40
-1E43 1E42
-1E45 1E44
-1E47 1E46
-1E49 1E48
-1E4B 1E4A
-1E4D 1E4C
-1E4F 1E4E
-1E51 1E50
-1E53 1E52
-1E55 1E54
-1E57 1E56
-1E59 1E58
-1E5B 1E5A
-1E5D 1E5C
-1E5F 1E5E
-1E61 1E60
-1E63 1E62
-1E65 1E64
-1E67 1E66
-1E69 1E68
-1E6B 1E6A
-1E6D 1E6C
-1E6F 1E6E
-1E71 1E70
-1E73 1E72
-1E75 1E74
-1E77 1E76
-1E79 1E78
-1E7B 1E7A
-1E7D 1E7C
-1E7F 1E7E
-1E81 1E80
-1E83 1E82
-1E85 1E84
-1E87 1E86
-1E89 1E88
-1E8B 1E8A
-1E8D 1E8C
-1E8F 1E8E
-1E91 1E90
-1E93 1E92
-1E95 1E94
-1E9B 1E60
-1EA1 1EA0
-1EA3 1EA2
-1EA5 1EA4
-1EA7 1EA6
-1EA9 1EA8
-1EAB 1EAA
-1EAD 1EAC
-1EAF 1EAE
-1EB1 1EB0
-1EB3 1EB2
-1EB5 1EB4
-1EB7 1EB6
-1EB9 1EB8
-1EBB 1EBA
-1EBD 1EBC
-1EBF 1EBE
-1EC1 1EC0
-1EC3 1EC2
-1EC5 1EC4
-1EC7 1EC6
-1EC9 1EC8
-1ECB 1ECA
-1ECD 1ECC
-1ECF 1ECE
-1ED1 1ED0
-1ED3 1ED2
-1ED5 1ED4
-1ED7 1ED6
-1ED9 1ED8
-1EDB 1EDA
-1EDD 1EDC
-1EDF 1EDE
-1EE1 1EE0
-1EE3 1EE2
-1EE5 1EE4
-1EE7 1EE6
-1EE9 1EE8
-1EEB 1EEA
-1EED 1EEC
-1EEF 1EEE
-1EF1 1EF0
-1EF3 1EF2
-1EF5 1EF4
-1EF7 1EF6
-1EF9 1EF8
-1EFB 1EFA
-1EFD 1EFC
-1EFF 1EFE
-1F00 1F08
-1F01 1F09
-1F02 1F0A
-1F03 1F0B
-1F04 1F0C
-1F05 1F0D
-1F06 1F0E
-1F07 1F0F
-1F10 1F18
-1F11 1F19
-1F12 1F1A
-1F13 1F1B
-1F14 1F1C
-1F15 1F1D
-1F20 1F28
-1F21 1F29
-1F22 1F2A
-1F23 1F2B
-1F24 1F2C
-1F25 1F2D
-1F26 1F2E
-1F27 1F2F
-1F30 1F38
-1F31 1F39
-1F32 1F3A
-1F33 1F3B
-1F34 1F3C
-1F35 1F3D
-1F36 1F3E
-1F37 1F3F
-1F40 1F48
-1F41 1F49
-1F42 1F4A
-1F43 1F4B
-1F44 1F4C
-1F45 1F4D
-1F51 1F59
-1F53 1F5B
-1F55 1F5D
-1F57 1F5F
-1F60 1F68
-1F61 1F69
-1F62 1F6A
-1F63 1F6B
-1F64 1F6C
-1F65 1F6D
-1F66 1F6E
-1F67 1F6F
-1F70 1FBA
-1F71 1FBB
-1F72 1FC8
-1F73 1FC9
-1F74 1FCA
-1F75 1FCB
-1F76 1FDA
-1F77 1FDB
-1F78 1FF8
-1F79 1FF9
-1F7A 1FEA
-1F7B 1FEB
-1F7C 1FFA
-1F7D 1FFB
-1F80 1F88
-1F81 1F89
-1F82 1F8A
-1F83 1F8B
-1F84 1F8C
-1F85 1F8D
-1F86 1F8E
-1F87 1F8F
-1F90 1F98
-1F91 1F99
-1F92 1F9A
-1F93 1F9B
-1F94 1F9C
-1F95 1F9D
-1F96 1F9E
-1F97 1F9F
-1FA0 1FA8
-1FA1 1FA9
-1FA2 1FAA
-1FA3 1FAB
-1FA4 1FAC
-1FA5 1FAD
-1FA6 1FAE
-1FA7 1FAF
-1FB0 1FB8
-1FB1 1FB9
-1FB3 1FBC
-1FBE 0399
-1FC3 1FCC
-1FD0 1FD8
-1FD1 1FD9
-1FE0 1FE8
-1FE1 1FE9
-1FE5 1FEC
-1FF3 1FFC
-214E 2132
-2170 2160
-2171 2161
-2172 2162
-2173 2163
-2174 2164
-2175 2165
-2176 2166
-2177 2167
-2178 2168
-2179 2169
-217A 216A
-217B 216B
-217C 216C
-217D 216D
-217E 216E
-217F 216F
-2184 2183
-24D0 24B6
-24D1 24B7
-24D2 24B8
-24D3 24B9
-24D4 24BA
-24D5 24BB
-24D6 24BC
-24D7 24BD
-24D8 24BE
-24D9 24BF
-24DA 24C0
-24DB 24C1
-24DC 24C2
-24DD 24C3
-24DE 24C4
-24DF 24C5
-24E0 24C6
-24E1 24C7
-24E2 24C8
-24E3 24C9
-24E4 24CA
-24E5 24CB
-24E6 24CC
-24E7 24CD
-24E8 24CE
-24E9 24CF
-2C30 2C00
-2C31 2C01
-2C32 2C02
-2C33 2C03
-2C34 2C04
-2C35 2C05
-2C36 2C06
-2C37 2C07
-2C38 2C08
-2C39 2C09
-2C3A 2C0A
-2C3B 2C0B
-2C3C 2C0C
-2C3D 2C0D
-2C3E 2C0E
-2C3F 2C0F
-2C40 2C10
-2C41 2C11
-2C42 2C12
-2C43 2C13
-2C44 2C14
-2C45 2C15
-2C46 2C16
-2C47 2C17
-2C48 2C18
-2C49 2C19
-2C4A 2C1A
-2C4B 2C1B
-2C4C 2C1C
-2C4D 2C1D
-2C4E 2C1E
-2C4F 2C1F
-2C50 2C20
-2C51 2C21
-2C52 2C22
-2C53 2C23
-2C54 2C24
-2C55 2C25
-2C56 2C26
-2C57 2C27
-2C58 2C28
-2C59 2C29
-2C5A 2C2A
-2C5B 2C2B
-2C5C 2C2C
-2C5D 2C2D
-2C5E 2C2E
-2C61 2C60
-2C65 023A
-2C66 023E
-2C68 2C67
-2C6A 2C69
-2C6C 2C6B
-2C73 2C72
-2C76 2C75
-2C81 2C80
-2C83 2C82
-2C85 2C84
-2C87 2C86
-2C89 2C88
-2C8B 2C8A
-2C8D 2C8C
-2C8F 2C8E
-2C91 2C90
-2C93 2C92
-2C95 2C94
-2C97 2C96
-2C99 2C98
-2C9B 2C9A
-2C9D 2C9C
-2C9F 2C9E
-2CA1 2CA0
-2CA3 2CA2
-2CA5 2CA4
-2CA7 2CA6
-2CA9 2CA8
-2CAB 2CAA
-2CAD 2CAC
-2CAF 2CAE
-2CB1 2CB0
-2CB3 2CB2
-2CB5 2CB4
-2CB7 2CB6
-2CB9 2CB8
-2CBB 2CBA
-2CBD 2CBC
-2CBF 2CBE
-2CC1 2CC0
-2CC3 2CC2
-2CC5 2CC4
-2CC7 2CC6
-2CC9 2CC8
-2CCB 2CCA
-2CCD 2CCC
-2CCF 2CCE
-2CD1 2CD0
-2CD3 2CD2
-2CD5 2CD4
-2CD7 2CD6
-2CD9 2CD8
-2CDB 2CDA
-2CDD 2CDC
-2CDF 2CDE
-2CE1 2CE0
-2CE3 2CE2
-2CEC 2CEB
-2CEE 2CED
-2CF3 2CF2
-2D00 10A0
-2D01 10A1
-2D02 10A2
-2D03 10A3
-2D04 10A4
-2D05 10A5
-2D06 10A6
-2D07 10A7
-2D08 10A8
-2D09 10A9
-2D0A 10AA
-2D0B 10AB
-2D0C 10AC
-2D0D 10AD
-2D0E 10AE
-2D0F 10AF
-2D10 10B0
-2D11 10B1
-2D12 10B2
-2D13 10B3
-2D14 10B4
-2D15 10B5
-2D16 10B6
-2D17 10B7
-2D18 10B8
-2D19 10B9
-2D1A 10BA
-2D1B 10BB
-2D1C 10BC
-2D1D 10BD
-2D1E 10BE
-2D1F 10BF
-2D20 10C0
-2D21 10C1
-2D22 10C2
-2D23 10C3
-2D24 10C4
-2D25 10C5
-2D27 10C7
-2D2D 10CD
-A641 A640
-A643 A642
-A645 A644
-A647 A646
-A649 A648
-A64B A64A
-A64D A64C
-A64F A64E
-A651 A650
-A653 A652
-A655 A654
-A657 A656
-A659 A658
-A65B A65A
-A65D A65C
-A65F A65E
-A661 A660
-A663 A662
-A665 A664
-A667 A666
-A669 A668
-A66B A66A
-A66D A66C
-A681 A680
-A683 A682
-A685 A684
-A687 A686
-A689 A688
-A68B A68A
-A68D A68C
-A68F A68E
-A691 A690
-A693 A692
-A695 A694
-A697 A696
-A699 A698
-A69B A69A
-A723 A722
-A725 A724
-A727 A726
-A729 A728
-A72B A72A
-A72D A72C
-A72F A72E
-A733 A732
-A735 A734
-A737 A736
-A739 A738
-A73B A73A
-A73D A73C
-A73F A73E
-A741 A740
-A743 A742
-A745 A744
-A747 A746
-A749 A748
-A74B A74A
-A74D A74C
-A74F A74E
-A751 A750
-A753 A752
-A755 A754
-A757 A756
-A759 A758
-A75B A75A
-A75D A75C
-A75F A75E
-A761 A760
-A763 A762
-A765 A764
-A767 A766
-A769 A768
-A76B A76A
-A76D A76C
-A76F A76E
-A77A A779
-A77C A77B
-A77F A77E
-A781 A780
-A783 A782
-A785 A784
-A787 A786
-A78C A78B
-A791 A790
-A793 A792
-A794 A7C4
-A797 A796
-A799 A798
-A79B A79A
-A79D A79C
-A79F A79E
-A7A1 A7A0
-A7A3 A7A2
-A7A5 A7A4
-A7A7 A7A6
-A7A9 A7A8
-A7B5 A7B4
-A7B7 A7B6
-A7B9 A7B8
-A7BB A7BA
-A7BD A7BC
-A7BF A7BE
-A7C3 A7C2
-A7C8 A7C7
-A7CA A7C9
-A7F6 A7F5
-AB53 A7B3
-AB70 13A0
-AB71 13A1
-AB72 13A2
-AB73 13A3
-AB74 13A4
-AB75 13A5
-AB76 13A6
-AB77 13A7
-AB78 13A8
-AB79 13A9
-AB7A 13AA
-AB7B 13AB
-AB7C 13AC
-AB7D 13AD
-AB7E 13AE
-AB7F 13AF
-AB80 13B0
-AB81 13B1
-AB82 13B2
-AB83 13B3
-AB84 13B4
-AB85 13B5
-AB86 13B6
-AB87 13B7
-AB88 13B8
-AB89 13B9
-AB8A 13BA
-AB8B 13BB
-AB8C 13BC
-AB8D 13BD
-AB8E 13BE
-AB8F 13BF
-AB90 13C0
-AB91 13C1
-AB92 13C2
-AB93 13C3
-AB94 13C4
-AB95 13C5
-AB96 13C6
-AB97 13C7
-AB98 13C8
-AB99 13C9
-AB9A 13CA
-AB9B 13CB
-AB9C 13CC
-AB9D 13CD
-AB9E 13CE
-AB9F 13CF
-ABA0 13D0
-ABA1 13D1
-ABA2 13D2
-ABA3 13D3
-ABA4 13D4
-ABA5 13D5
-ABA6 13D6
-ABA7 13D7
-ABA8 13D8
-ABA9 13D9
-ABAA 13DA
-ABAB 13DB
-ABAC 13DC
-ABAD 13DD
-ABAE 13DE
-ABAF 13DF
-ABB0 13E0
-ABB1 13E1
-ABB2 13E2
-ABB3 13E3
-ABB4 13E4
-ABB5 13E5
-ABB6 13E6
-ABB7 13E7
-ABB8 13E8
-ABB9 13E9
-ABBA 13EA
-ABBB 13EB
-ABBC 13EC
-ABBD 13ED
-ABBE 13EE
-ABBF 13EF
-FF41 FF21
-FF42 FF22
-FF43 FF23
-FF44 FF24
-FF45 FF25
-FF46 FF26
-FF47 FF27
-FF48 FF28
-FF49 FF29
-FF4A FF2A
-FF4B FF2B
-FF4C FF2C
-FF4D FF2D
-FF4E FF2E
-FF4F FF2F
-FF50 FF30
-FF51 FF31
-FF52 FF32
-FF53 FF33
-FF54 FF34
-FF55 FF35
-FF56 FF36
-FF57 FF37
-FF58 FF38
-FF59 FF39
-FF5A FF3A
-10428 10400
-10429 10401
-1042A 10402
-1042B 10403
-1042C 10404
-1042D 10405
-1042E 10406
-1042F 10407
-10430 10408
-10431 10409
-10432 1040A
-10433 1040B
-10434 1040C
-10435 1040D
-10436 1040E
-10437 1040F
-10438 10410
-10439 10411
-1043A 10412
-1043B 10413
-1043C 10414
-1043D 10415
-1043E 10416
-1043F 10417
-10440 10418
-10441 10419
-10442 1041A
-10443 1041B
-10444 1041C
-10445 1041D
-10446 1041E
-10447 1041F
-10448 10420
-10449 10421
-1044A 10422
-1044B 10423
-1044C 10424
-1044D 10425
-1044E 10426
-1044F 10427
-104D8 104B0
-104D9 104B1
-104DA 104B2
-104DB 104B3
-104DC 104B4
-104DD 104B5
-104DE 104B6
-104DF 104B7
-104E0 104B8
-104E1 104B9
-104E2 104BA
-104E3 104BB
-104E4 104BC
-104E5 104BD
-104E6 104BE
-104E7 104BF
-104E8 104C0
-104E9 104C1
-104EA 104C2
-104EB 104C3
-104EC 104C4
-104ED 104C5
-104EE 104C6
-104EF 104C7
-104F0 104C8
-104F1 104C9
-104F2 104CA
-104F3 104CB
-104F4 104CC
-104F5 104CD
-104F6 104CE
-104F7 104CF
-104F8 104D0
-104F9 104D1
-104FA 104D2
-104FB 104D3
-10CC0 10C80
-10CC1 10C81
-10CC2 10C82
-10CC3 10C83
-10CC4 10C84
-10CC5 10C85
-10CC6 10C86
-10CC7 10C87
-10CC8 10C88
-10CC9 10C89
-10CCA 10C8A
-10CCB 10C8B
-10CCC 10C8C
-10CCD 10C8D
-10CCE 10C8E
-10CCF 10C8F
-10CD0 10C90
-10CD1 10C91
-10CD2 10C92
-10CD3 10C93
-10CD4 10C94
-10CD5 10C95
-10CD6 10C96
-10CD7 10C97
-10CD8 10C98
-10CD9 10C99
-10CDA 10C9A
-10CDB 10C9B
-10CDC 10C9C
-10CDD 10C9D
-10CDE 10C9E
-10CDF 10C9F
-10CE0 10CA0
-10CE1 10CA1
-10CE2 10CA2
-10CE3 10CA3
-10CE4 10CA4
-10CE5 10CA5
-10CE6 10CA6
-10CE7 10CA7
-10CE8 10CA8
-10CE9 10CA9
-10CEA 10CAA
-10CEB 10CAB
-10CEC 10CAC
-10CED 10CAD
-10CEE 10CAE
-10CEF 10CAF
-10CF0 10CB0
-10CF1 10CB1
-10CF2 10CB2
-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
-16E60 16E40
-16E61 16E41
-16E62 16E42
-16E63 16E43
-16E64 16E44
-16E65 16E45
-16E66 16E46
-16E67 16E47
-16E68 16E48
-16E69 16E49
-16E6A 16E4A
-16E6B 16E4B
-16E6C 16E4C
-16E6D 16E4D
-16E6E 16E4E
-16E6F 16E4F
-16E70 16E50
-16E71 16E51
-16E72 16E52
-16E73 16E53
-16E74 16E54
-16E75 16E55
-16E76 16E56
-16E77 16E57
-16E78 16E58
-16E79 16E59
-16E7A 16E5A
-16E7B 16E5B
-16E7C 16E5C
-16E7D 16E5D
-16E7E 16E5E
-16E7F 16E5F
-1E922 1E900
-1E923 1E901
-1E924 1E902
-1E925 1E903
-1E926 1E904
-1E927 1E905
-1E928 1E906
-1E929 1E907
-1E92A 1E908
-1E92B 1E909
-1E92C 1E90A
-1E92D 1E90B
-1E92E 1E90C
-1E92F 1E90D
-1E930 1E90E
-1E931 1E90F
-1E932 1E910
-1E933 1E911
-1E934 1E912
-1E935 1E913
-1E936 1E914
-1E937 1E915
-1E938 1E916
-1E939 1E917
-1E93A 1E918
-1E93B 1E919
-1E93C 1E91A
-1E93D 1E91B
-1E93E 1E91C
-1E93F 1E91D
-1E940 1E91E
-1E941 1E91F
-1E942 1E920
-1E943 1E921
-END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl
index 23003e5ae3..f5f66a3ede 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -629,7 +629,7 @@ FF 178
2170 217F 2160
2184 2183
24D0 24E9 24B6
-2C30 2C5E 2C00
+2C30 2C5F 2C00
2C61 2C60
2C65 23A
2C66 23E
@@ -796,15 +796,23 @@ A7B9 A7B8
A7BB A7BA
A7BD A7BC
A7BF A7BE
+A7C1 A7C0
A7C3 A7C2
A7C8 A7C7
A7CA A7C9
+A7D1 A7D0
+A7D7 A7D6
+A7D9 A7D8
A7F6 A7F5
AB53 A7B3
AB70 ABBF 13A0
FF41 FF5A FF21
10428 1044F 10400
104D8 104FB 104B0
+10597 105A1 10570
+105A3 105B1 1057C
+105B3 105B9 1058C
+105BB 105BC 10594
10CC0 10CF2 10C80
118C0 118DF 118A0
16E60 16E7F 16E40
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Upper.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Upper.pl
deleted file mode 100644
index 99c8c57797..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Upper.pl
+++ /dev/null
@@ -1,1520 +0,0 @@
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
-
-# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
-
-# This file is for internal use by core Perl only. It is retained for
-# backwards compatibility with applications that may have come to rely on it,
-# 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') (Values for individual
-# code points can be retrieved via Unicode::UCD::charprop());
-
-
-
-# The name this table is to be known by, with the format of the mappings in
-# the main body of the table, and what all code points missing from this file
-# map to.
-$Unicode::UCD::SwashInfo{'ToUpper'}{'format'} = 'x'; # non-negative hex whole number; a code point
-$Unicode::UCD::SwashInfo{'ToUpper'}{'specials_name'} = 'Unicode::UCD::ToSpecUpper'; # Name of hash of special mappings
-$Unicode::UCD::SwashInfo{'ToUpper'}{'missing'} = '<code point>'; # code point maps to itself
-
-# Some code points require special handling because their mappings are each to
-# multiple code points. These do not appear in the main body, but are defined
-# in the hash below.
-
-# Each key is the string of N bytes that together make up the UTF-8 encoding
-# for the code point. (i.e. the same as looking at the code point's UTF-8
-# under "use bytes"). Each value is the UTF-8 of the translation, for speed.
-%Unicode::UCD::ToSpecUpper = (
-"\xC3\x9F" => "\x{0053}\x{0053}", # U+00DF => 0053 0053
-"\xC5\x89" => "\x{02BC}\x{004E}", # U+0149 => 02BC 004E
-"\xC7\xB0" => "\x{004A}\x{030C}", # U+01F0 => 004A 030C
-"\xCE\x90" => "\x{0399}\x{0308}\x{0301}", # U+0390 => 0399 0308 0301
-"\xCE\xB0" => "\x{03A5}\x{0308}\x{0301}", # U+03B0 => 03A5 0308 0301
-"\xD6\x87" => "\x{0535}\x{0552}", # U+0587 => 0535 0552
-"\xE1\xBA\x96" => "\x{0048}\x{0331}", # U+1E96 => 0048 0331
-"\xE1\xBA\x97" => "\x{0054}\x{0308}", # U+1E97 => 0054 0308
-"\xE1\xBA\x98" => "\x{0057}\x{030A}", # U+1E98 => 0057 030A
-"\xE1\xBA\x99" => "\x{0059}\x{030A}", # U+1E99 => 0059 030A
-"\xE1\xBA\x9A" => "\x{0041}\x{02BE}", # U+1E9A => 0041 02BE
-"\xE1\xBD\x90" => "\x{03A5}\x{0313}", # U+1F50 => 03A5 0313
-"\xE1\xBD\x92" => "\x{03A5}\x{0313}\x{0300}", # U+1F52 => 03A5 0313 0300
-"\xE1\xBD\x94" => "\x{03A5}\x{0313}\x{0301}", # U+1F54 => 03A5 0313 0301
-"\xE1\xBD\x96" => "\x{03A5}\x{0313}\x{0342}", # U+1F56 => 03A5 0313 0342
-"\xE1\xBE\x80" => "\x{1F08}\x{0399}", # U+1F80 => 1F08 0399
-"\xE1\xBE\x81" => "\x{1F09}\x{0399}", # U+1F81 => 1F09 0399
-"\xE1\xBE\x82" => "\x{1F0A}\x{0399}", # U+1F82 => 1F0A 0399
-"\xE1\xBE\x83" => "\x{1F0B}\x{0399}", # U+1F83 => 1F0B 0399
-"\xE1\xBE\x84" => "\x{1F0C}\x{0399}", # U+1F84 => 1F0C 0399
-"\xE1\xBE\x85" => "\x{1F0D}\x{0399}", # U+1F85 => 1F0D 0399
-"\xE1\xBE\x86" => "\x{1F0E}\x{0399}", # U+1F86 => 1F0E 0399
-"\xE1\xBE\x87" => "\x{1F0F}\x{0399}", # U+1F87 => 1F0F 0399
-"\xE1\xBE\x88" => "\x{1F08}\x{0399}", # U+1F88 => 1F08 0399
-"\xE1\xBE\x89" => "\x{1F09}\x{0399}", # U+1F89 => 1F09 0399
-"\xE1\xBE\x8A" => "\x{1F0A}\x{0399}", # U+1F8A => 1F0A 0399
-"\xE1\xBE\x8B" => "\x{1F0B}\x{0399}", # U+1F8B => 1F0B 0399
-"\xE1\xBE\x8C" => "\x{1F0C}\x{0399}", # U+1F8C => 1F0C 0399
-"\xE1\xBE\x8D" => "\x{1F0D}\x{0399}", # U+1F8D => 1F0D 0399
-"\xE1\xBE\x8E" => "\x{1F0E}\x{0399}", # U+1F8E => 1F0E 0399
-"\xE1\xBE\x8F" => "\x{1F0F}\x{0399}", # U+1F8F => 1F0F 0399
-"\xE1\xBE\x90" => "\x{1F28}\x{0399}", # U+1F90 => 1F28 0399
-"\xE1\xBE\x91" => "\x{1F29}\x{0399}", # U+1F91 => 1F29 0399
-"\xE1\xBE\x92" => "\x{1F2A}\x{0399}", # U+1F92 => 1F2A 0399
-"\xE1\xBE\x93" => "\x{1F2B}\x{0399}", # U+1F93 => 1F2B 0399
-"\xE1\xBE\x94" => "\x{1F2C}\x{0399}", # U+1F94 => 1F2C 0399
-"\xE1\xBE\x95" => "\x{1F2D}\x{0399}", # U+1F95 => 1F2D 0399
-"\xE1\xBE\x96" => "\x{1F2E}\x{0399}", # U+1F96 => 1F2E 0399
-"\xE1\xBE\x97" => "\x{1F2F}\x{0399}", # U+1F97 => 1F2F 0399
-"\xE1\xBE\x98" => "\x{1F28}\x{0399}", # U+1F98 => 1F28 0399
-"\xE1\xBE\x99" => "\x{1F29}\x{0399}", # U+1F99 => 1F29 0399
-"\xE1\xBE\x9A" => "\x{1F2A}\x{0399}", # U+1F9A => 1F2A 0399
-"\xE1\xBE\x9B" => "\x{1F2B}\x{0399}", # U+1F9B => 1F2B 0399
-"\xE1\xBE\x9C" => "\x{1F2C}\x{0399}", # U+1F9C => 1F2C 0399
-"\xE1\xBE\x9D" => "\x{1F2D}\x{0399}", # U+1F9D => 1F2D 0399
-"\xE1\xBE\x9E" => "\x{1F2E}\x{0399}", # U+1F9E => 1F2E 0399
-"\xE1\xBE\x9F" => "\x{1F2F}\x{0399}", # U+1F9F => 1F2F 0399
-"\xE1\xBE\xA0" => "\x{1F68}\x{0399}", # U+1FA0 => 1F68 0399
-"\xE1\xBE\xA1" => "\x{1F69}\x{0399}", # U+1FA1 => 1F69 0399
-"\xE1\xBE\xA2" => "\x{1F6A}\x{0399}", # U+1FA2 => 1F6A 0399
-"\xE1\xBE\xA3" => "\x{1F6B}\x{0399}", # U+1FA3 => 1F6B 0399
-"\xE1\xBE\xA4" => "\x{1F6C}\x{0399}", # U+1FA4 => 1F6C 0399
-"\xE1\xBE\xA5" => "\x{1F6D}\x{0399}", # U+1FA5 => 1F6D 0399
-"\xE1\xBE\xA6" => "\x{1F6E}\x{0399}", # U+1FA6 => 1F6E 0399
-"\xE1\xBE\xA7" => "\x{1F6F}\x{0399}", # U+1FA7 => 1F6F 0399
-"\xE1\xBE\xA8" => "\x{1F68}\x{0399}", # U+1FA8 => 1F68 0399
-"\xE1\xBE\xA9" => "\x{1F69}\x{0399}", # U+1FA9 => 1F69 0399
-"\xE1\xBE\xAA" => "\x{1F6A}\x{0399}", # U+1FAA => 1F6A 0399
-"\xE1\xBE\xAB" => "\x{1F6B}\x{0399}", # U+1FAB => 1F6B 0399
-"\xE1\xBE\xAC" => "\x{1F6C}\x{0399}", # U+1FAC => 1F6C 0399
-"\xE1\xBE\xAD" => "\x{1F6D}\x{0399}", # U+1FAD => 1F6D 0399
-"\xE1\xBE\xAE" => "\x{1F6E}\x{0399}", # U+1FAE => 1F6E 0399
-"\xE1\xBE\xAF" => "\x{1F6F}\x{0399}", # U+1FAF => 1F6F 0399
-"\xE1\xBE\xB2" => "\x{1FBA}\x{0399}", # U+1FB2 => 1FBA 0399
-"\xE1\xBE\xB3" => "\x{0391}\x{0399}", # U+1FB3 => 0391 0399
-"\xE1\xBE\xB4" => "\x{0386}\x{0399}", # U+1FB4 => 0386 0399
-"\xE1\xBE\xB6" => "\x{0391}\x{0342}", # U+1FB6 => 0391 0342
-"\xE1\xBE\xB7" => "\x{0391}\x{0342}\x{0399}", # U+1FB7 => 0391 0342 0399
-"\xE1\xBE\xBC" => "\x{0391}\x{0399}", # U+1FBC => 0391 0399
-"\xE1\xBF\x82" => "\x{1FCA}\x{0399}", # U+1FC2 => 1FCA 0399
-"\xE1\xBF\x83" => "\x{0397}\x{0399}", # U+1FC3 => 0397 0399
-"\xE1\xBF\x84" => "\x{0389}\x{0399}", # U+1FC4 => 0389 0399
-"\xE1\xBF\x86" => "\x{0397}\x{0342}", # U+1FC6 => 0397 0342
-"\xE1\xBF\x87" => "\x{0397}\x{0342}\x{0399}", # U+1FC7 => 0397 0342 0399
-"\xE1\xBF\x8C" => "\x{0397}\x{0399}", # U+1FCC => 0397 0399
-"\xE1\xBF\x92" => "\x{0399}\x{0308}\x{0300}", # U+1FD2 => 0399 0308 0300
-"\xE1\xBF\x93" => "\x{0399}\x{0308}\x{0301}", # U+1FD3 => 0399 0308 0301
-"\xE1\xBF\x96" => "\x{0399}\x{0342}", # U+1FD6 => 0399 0342
-"\xE1\xBF\x97" => "\x{0399}\x{0308}\x{0342}", # U+1FD7 => 0399 0308 0342
-"\xE1\xBF\xA2" => "\x{03A5}\x{0308}\x{0300}", # U+1FE2 => 03A5 0308 0300
-"\xE1\xBF\xA3" => "\x{03A5}\x{0308}\x{0301}", # U+1FE3 => 03A5 0308 0301
-"\xE1\xBF\xA4" => "\x{03A1}\x{0313}", # U+1FE4 => 03A1 0313
-"\xE1\xBF\xA6" => "\x{03A5}\x{0342}", # U+1FE6 => 03A5 0342
-"\xE1\xBF\xA7" => "\x{03A5}\x{0308}\x{0342}", # U+1FE7 => 03A5 0308 0342
-"\xE1\xBF\xB2" => "\x{1FFA}\x{0399}", # U+1FF2 => 1FFA 0399
-"\xE1\xBF\xB3" => "\x{03A9}\x{0399}", # U+1FF3 => 03A9 0399
-"\xE1\xBF\xB4" => "\x{038F}\x{0399}", # U+1FF4 => 038F 0399
-"\xE1\xBF\xB6" => "\x{03A9}\x{0342}", # U+1FF6 => 03A9 0342
-"\xE1\xBF\xB7" => "\x{03A9}\x{0342}\x{0399}", # U+1FF7 => 03A9 0342 0399
-"\xE1\xBF\xBC" => "\x{03A9}\x{0399}", # U+1FFC => 03A9 0399
-"\xEF\xAC\x80" => "\x{0046}\x{0046}", # U+FB00 => 0046 0046
-"\xEF\xAC\x81" => "\x{0046}\x{0049}", # U+FB01 => 0046 0049
-"\xEF\xAC\x82" => "\x{0046}\x{004C}", # U+FB02 => 0046 004C
-"\xEF\xAC\x83" => "\x{0046}\x{0046}\x{0049}", # U+FB03 => 0046 0046 0049
-"\xEF\xAC\x84" => "\x{0046}\x{0046}\x{004C}", # U+FB04 => 0046 0046 004C
-"\xEF\xAC\x85" => "\x{0053}\x{0054}", # U+FB05 => 0053 0054
-"\xEF\xAC\x86" => "\x{0053}\x{0054}", # U+FB06 => 0053 0054
-"\xEF\xAC\x93" => "\x{0544}\x{0546}", # U+FB13 => 0544 0546
-"\xEF\xAC\x94" => "\x{0544}\x{0535}", # U+FB14 => 0544 0535
-"\xEF\xAC\x95" => "\x{0544}\x{053B}", # U+FB15 => 0544 053B
-"\xEF\xAC\x96" => "\x{054E}\x{0546}", # U+FB16 => 054E 0546
-"\xEF\xAC\x97" => "\x{0544}\x{053D}", # U+FB17 => 0544 053D
-);
-
-return <<'END';
-0061 0041
-0062 0042
-0063 0043
-0064 0044
-0065 0045
-0066 0046
-0067 0047
-0068 0048
-0069 0049
-006A 004A
-006B 004B
-006C 004C
-006D 004D
-006E 004E
-006F 004F
-0070 0050
-0071 0051
-0072 0052
-0073 0053
-0074 0054
-0075 0055
-0076 0056
-0077 0057
-0078 0058
-0079 0059
-007A 005A
-00B5 039C
-00E0 00C0
-00E1 00C1
-00E2 00C2
-00E3 00C3
-00E4 00C4
-00E5 00C5
-00E6 00C6
-00E7 00C7
-00E8 00C8
-00E9 00C9
-00EA 00CA
-00EB 00CB
-00EC 00CC
-00ED 00CD
-00EE 00CE
-00EF 00CF
-00F0 00D0
-00F1 00D1
-00F2 00D2
-00F3 00D3
-00F4 00D4
-00F5 00D5
-00F6 00D6
-00F8 00D8
-00F9 00D9
-00FA 00DA
-00FB 00DB
-00FC 00DC
-00FD 00DD
-00FE 00DE
-00FF 0178
-0101 0100
-0103 0102
-0105 0104
-0107 0106
-0109 0108
-010B 010A
-010D 010C
-010F 010E
-0111 0110
-0113 0112
-0115 0114
-0117 0116
-0119 0118
-011B 011A
-011D 011C
-011F 011E
-0121 0120
-0123 0122
-0125 0124
-0127 0126
-0129 0128
-012B 012A
-012D 012C
-012F 012E
-0131 0049
-0133 0132
-0135 0134
-0137 0136
-013A 0139
-013C 013B
-013E 013D
-0140 013F
-0142 0141
-0144 0143
-0146 0145
-0148 0147
-014B 014A
-014D 014C
-014F 014E
-0151 0150
-0153 0152
-0155 0154
-0157 0156
-0159 0158
-015B 015A
-015D 015C
-015F 015E
-0161 0160
-0163 0162
-0165 0164
-0167 0166
-0169 0168
-016B 016A
-016D 016C
-016F 016E
-0171 0170
-0173 0172
-0175 0174
-0177 0176
-017A 0179
-017C 017B
-017E 017D
-017F 0053
-0180 0243
-0183 0182
-0185 0184
-0188 0187
-018C 018B
-0192 0191
-0195 01F6
-0199 0198
-019A 023D
-019E 0220
-01A1 01A0
-01A3 01A2
-01A5 01A4
-01A8 01A7
-01AD 01AC
-01B0 01AF
-01B4 01B3
-01B6 01B5
-01B9 01B8
-01BD 01BC
-01BF 01F7
-01C5 01C4
-01C6 01C4
-01C8 01C7
-01C9 01C7
-01CB 01CA
-01CC 01CA
-01CE 01CD
-01D0 01CF
-01D2 01D1
-01D4 01D3
-01D6 01D5
-01D8 01D7
-01DA 01D9
-01DC 01DB
-01DD 018E
-01DF 01DE
-01E1 01E0
-01E3 01E2
-01E5 01E4
-01E7 01E6
-01E9 01E8
-01EB 01EA
-01ED 01EC
-01EF 01EE
-01F2 01F1
-01F3 01F1
-01F5 01F4
-01F9 01F8
-01FB 01FA
-01FD 01FC
-01FF 01FE
-0201 0200
-0203 0202
-0205 0204
-0207 0206
-0209 0208
-020B 020A
-020D 020C
-020F 020E
-0211 0210
-0213 0212
-0215 0214
-0217 0216
-0219 0218
-021B 021A
-021D 021C
-021F 021E
-0223 0222
-0225 0224
-0227 0226
-0229 0228
-022B 022A
-022D 022C
-022F 022E
-0231 0230
-0233 0232
-023C 023B
-023F 2C7E
-0240 2C7F
-0242 0241
-0247 0246
-0249 0248
-024B 024A
-024D 024C
-024F 024E
-0250 2C6F
-0251 2C6D
-0252 2C70
-0253 0181
-0254 0186
-0256 0189
-0257 018A
-0259 018F
-025B 0190
-025C A7AB
-0260 0193
-0261 A7AC
-0263 0194
-0265 A78D
-0266 A7AA
-0268 0197
-0269 0196
-026A A7AE
-026B 2C62
-026C A7AD
-026F 019C
-0271 2C6E
-0272 019D
-0275 019F
-027D 2C64
-0280 01A6
-0282 A7C5
-0283 01A9
-0287 A7B1
-0288 01AE
-0289 0244
-028A 01B1
-028B 01B2
-028C 0245
-0292 01B7
-029D A7B2
-029E A7B0
-0345 0399
-0371 0370
-0373 0372
-0377 0376
-037B 03FD
-037C 03FE
-037D 03FF
-03AC 0386
-03AD 0388
-03AE 0389
-03AF 038A
-03B1 0391
-03B2 0392
-03B3 0393
-03B4 0394
-03B5 0395
-03B6 0396
-03B7 0397
-03B8 0398
-03B9 0399
-03BA 039A
-03BB 039B
-03BC 039C
-03BD 039D
-03BE 039E
-03BF 039F
-03C0 03A0
-03C1 03A1
-03C2 03A3
-03C3 03A3
-03C4 03A4
-03C5 03A5
-03C6 03A6
-03C7 03A7
-03C8 03A8
-03C9 03A9
-03CA 03AA
-03CB 03AB
-03CC 038C
-03CD 038E
-03CE 038F
-03D0 0392
-03D1 0398
-03D5 03A6
-03D6 03A0
-03D7 03CF
-03D9 03D8
-03DB 03DA
-03DD 03DC
-03DF 03DE
-03E1 03E0
-03E3 03E2
-03E5 03E4
-03E7 03E6
-03E9 03E8
-03EB 03EA
-03ED 03EC
-03EF 03EE
-03F0 039A
-03F1 03A1
-03F2 03F9
-03F3 037F
-03F5 0395
-03F8 03F7
-03FB 03FA
-0430 0410
-0431 0411
-0432 0412
-0433 0413
-0434 0414
-0435 0415
-0436 0416
-0437 0417
-0438 0418
-0439 0419
-043A 041A
-043B 041B
-043C 041C
-043D 041D
-043E 041E
-043F 041F
-0440 0420
-0441 0421
-0442 0422
-0443 0423
-0444 0424
-0445 0425
-0446 0426
-0447 0427
-0448 0428
-0449 0429
-044A 042A
-044B 042B
-044C 042C
-044D 042D
-044E 042E
-044F 042F
-0450 0400
-0451 0401
-0452 0402
-0453 0403
-0454 0404
-0455 0405
-0456 0406
-0457 0407
-0458 0408
-0459 0409
-045A 040A
-045B 040B
-045C 040C
-045D 040D
-045E 040E
-045F 040F
-0461 0460
-0463 0462
-0465 0464
-0467 0466
-0469 0468
-046B 046A
-046D 046C
-046F 046E
-0471 0470
-0473 0472
-0475 0474
-0477 0476
-0479 0478
-047B 047A
-047D 047C
-047F 047E
-0481 0480
-048B 048A
-048D 048C
-048F 048E
-0491 0490
-0493 0492
-0495 0494
-0497 0496
-0499 0498
-049B 049A
-049D 049C
-049F 049E
-04A1 04A0
-04A3 04A2
-04A5 04A4
-04A7 04A6
-04A9 04A8
-04AB 04AA
-04AD 04AC
-04AF 04AE
-04B1 04B0
-04B3 04B2
-04B5 04B4
-04B7 04B6
-04B9 04B8
-04BB 04BA
-04BD 04BC
-04BF 04BE
-04C2 04C1
-04C4 04C3
-04C6 04C5
-04C8 04C7
-04CA 04C9
-04CC 04CB
-04CE 04CD
-04CF 04C0
-04D1 04D0
-04D3 04D2
-04D5 04D4
-04D7 04D6
-04D9 04D8
-04DB 04DA
-04DD 04DC
-04DF 04DE
-04E1 04E0
-04E3 04E2
-04E5 04E4
-04E7 04E6
-04E9 04E8
-04EB 04EA
-04ED 04EC
-04EF 04EE
-04F1 04F0
-04F3 04F2
-04F5 04F4
-04F7 04F6
-04F9 04F8
-04FB 04FA
-04FD 04FC
-04FF 04FE
-0501 0500
-0503 0502
-0505 0504
-0507 0506
-0509 0508
-050B 050A
-050D 050C
-050F 050E
-0511 0510
-0513 0512
-0515 0514
-0517 0516
-0519 0518
-051B 051A
-051D 051C
-051F 051E
-0521 0520
-0523 0522
-0525 0524
-0527 0526
-0529 0528
-052B 052A
-052D 052C
-052F 052E
-0561 0531
-0562 0532
-0563 0533
-0564 0534
-0565 0535
-0566 0536
-0567 0537
-0568 0538
-0569 0539
-056A 053A
-056B 053B
-056C 053C
-056D 053D
-056E 053E
-056F 053F
-0570 0540
-0571 0541
-0572 0542
-0573 0543
-0574 0544
-0575 0545
-0576 0546
-0577 0547
-0578 0548
-0579 0549
-057A 054A
-057B 054B
-057C 054C
-057D 054D
-057E 054E
-057F 054F
-0580 0550
-0581 0551
-0582 0552
-0583 0553
-0584 0554
-0585 0555
-0586 0556
-10D0 1C90
-10D1 1C91
-10D2 1C92
-10D3 1C93
-10D4 1C94
-10D5 1C95
-10D6 1C96
-10D7 1C97
-10D8 1C98
-10D9 1C99
-10DA 1C9A
-10DB 1C9B
-10DC 1C9C
-10DD 1C9D
-10DE 1C9E
-10DF 1C9F
-10E0 1CA0
-10E1 1CA1
-10E2 1CA2
-10E3 1CA3
-10E4 1CA4
-10E5 1CA5
-10E6 1CA6
-10E7 1CA7
-10E8 1CA8
-10E9 1CA9
-10EA 1CAA
-10EB 1CAB
-10EC 1CAC
-10ED 1CAD
-10EE 1CAE
-10EF 1CAF
-10F0 1CB0
-10F1 1CB1
-10F2 1CB2
-10F3 1CB3
-10F4 1CB4
-10F5 1CB5
-10F6 1CB6
-10F7 1CB7
-10F8 1CB8
-10F9 1CB9
-10FA 1CBA
-10FD 1CBD
-10FE 1CBE
-10FF 1CBF
-13F8 13F0
-13F9 13F1
-13FA 13F2
-13FB 13F3
-13FC 13F4
-13FD 13F5
-1C80 0412
-1C81 0414
-1C82 041E
-1C83 0421
-1C84 0422
-1C85 0422
-1C86 042A
-1C87 0462
-1C88 A64A
-1D79 A77D
-1D7D 2C63
-1D8E A7C6
-1E01 1E00
-1E03 1E02
-1E05 1E04
-1E07 1E06
-1E09 1E08
-1E0B 1E0A
-1E0D 1E0C
-1E0F 1E0E
-1E11 1E10
-1E13 1E12
-1E15 1E14
-1E17 1E16
-1E19 1E18
-1E1B 1E1A
-1E1D 1E1C
-1E1F 1E1E
-1E21 1E20
-1E23 1E22
-1E25 1E24
-1E27 1E26
-1E29 1E28
-1E2B 1E2A
-1E2D 1E2C
-1E2F 1E2E
-1E31 1E30
-1E33 1E32
-1E35 1E34
-1E37 1E36
-1E39 1E38
-1E3B 1E3A
-1E3D 1E3C
-1E3F 1E3E
-1E41 1E40
-1E43 1E42
-1E45 1E44
-1E47 1E46
-1E49 1E48
-1E4B 1E4A
-1E4D 1E4C
-1E4F 1E4E
-1E51 1E50
-1E53 1E52
-1E55 1E54
-1E57 1E56
-1E59 1E58
-1E5B 1E5A
-1E5D 1E5C
-1E5F 1E5E
-1E61 1E60
-1E63 1E62
-1E65 1E64
-1E67 1E66
-1E69 1E68
-1E6B 1E6A
-1E6D 1E6C
-1E6F 1E6E
-1E71 1E70
-1E73 1E72
-1E75 1E74
-1E77 1E76
-1E79 1E78
-1E7B 1E7A
-1E7D 1E7C
-1E7F 1E7E
-1E81 1E80
-1E83 1E82
-1E85 1E84
-1E87 1E86
-1E89 1E88
-1E8B 1E8A
-1E8D 1E8C
-1E8F 1E8E
-1E91 1E90
-1E93 1E92
-1E95 1E94
-1E9B 1E60
-1EA1 1EA0
-1EA3 1EA2
-1EA5 1EA4
-1EA7 1EA6
-1EA9 1EA8
-1EAB 1EAA
-1EAD 1EAC
-1EAF 1EAE
-1EB1 1EB0
-1EB3 1EB2
-1EB5 1EB4
-1EB7 1EB6
-1EB9 1EB8
-1EBB 1EBA
-1EBD 1EBC
-1EBF 1EBE
-1EC1 1EC0
-1EC3 1EC2
-1EC5 1EC4
-1EC7 1EC6
-1EC9 1EC8
-1ECB 1ECA
-1ECD 1ECC
-1ECF 1ECE
-1ED1 1ED0
-1ED3 1ED2
-1ED5 1ED4
-1ED7 1ED6
-1ED9 1ED8
-1EDB 1EDA
-1EDD 1EDC
-1EDF 1EDE
-1EE1 1EE0
-1EE3 1EE2
-1EE5 1EE4
-1EE7 1EE6
-1EE9 1EE8
-1EEB 1EEA
-1EED 1EEC
-1EEF 1EEE
-1EF1 1EF0
-1EF3 1EF2
-1EF5 1EF4
-1EF7 1EF6
-1EF9 1EF8
-1EFB 1EFA
-1EFD 1EFC
-1EFF 1EFE
-1F00 1F08
-1F01 1F09
-1F02 1F0A
-1F03 1F0B
-1F04 1F0C
-1F05 1F0D
-1F06 1F0E
-1F07 1F0F
-1F10 1F18
-1F11 1F19
-1F12 1F1A
-1F13 1F1B
-1F14 1F1C
-1F15 1F1D
-1F20 1F28
-1F21 1F29
-1F22 1F2A
-1F23 1F2B
-1F24 1F2C
-1F25 1F2D
-1F26 1F2E
-1F27 1F2F
-1F30 1F38
-1F31 1F39
-1F32 1F3A
-1F33 1F3B
-1F34 1F3C
-1F35 1F3D
-1F36 1F3E
-1F37 1F3F
-1F40 1F48
-1F41 1F49
-1F42 1F4A
-1F43 1F4B
-1F44 1F4C
-1F45 1F4D
-1F51 1F59
-1F53 1F5B
-1F55 1F5D
-1F57 1F5F
-1F60 1F68
-1F61 1F69
-1F62 1F6A
-1F63 1F6B
-1F64 1F6C
-1F65 1F6D
-1F66 1F6E
-1F67 1F6F
-1F70 1FBA
-1F71 1FBB
-1F72 1FC8
-1F73 1FC9
-1F74 1FCA
-1F75 1FCB
-1F76 1FDA
-1F77 1FDB
-1F78 1FF8
-1F79 1FF9
-1F7A 1FEA
-1F7B 1FEB
-1F7C 1FFA
-1F7D 1FFB
-1FB0 1FB8
-1FB1 1FB9
-1FBE 0399
-1FD0 1FD8
-1FD1 1FD9
-1FE0 1FE8
-1FE1 1FE9
-1FE5 1FEC
-214E 2132
-2170 2160
-2171 2161
-2172 2162
-2173 2163
-2174 2164
-2175 2165
-2176 2166
-2177 2167
-2178 2168
-2179 2169
-217A 216A
-217B 216B
-217C 216C
-217D 216D
-217E 216E
-217F 216F
-2184 2183
-24D0 24B6
-24D1 24B7
-24D2 24B8
-24D3 24B9
-24D4 24BA
-24D5 24BB
-24D6 24BC
-24D7 24BD
-24D8 24BE
-24D9 24BF
-24DA 24C0
-24DB 24C1
-24DC 24C2
-24DD 24C3
-24DE 24C4
-24DF 24C5
-24E0 24C6
-24E1 24C7
-24E2 24C8
-24E3 24C9
-24E4 24CA
-24E5 24CB
-24E6 24CC
-24E7 24CD
-24E8 24CE
-24E9 24CF
-2C30 2C00
-2C31 2C01
-2C32 2C02
-2C33 2C03
-2C34 2C04
-2C35 2C05
-2C36 2C06
-2C37 2C07
-2C38 2C08
-2C39 2C09
-2C3A 2C0A
-2C3B 2C0B
-2C3C 2C0C
-2C3D 2C0D
-2C3E 2C0E
-2C3F 2C0F
-2C40 2C10
-2C41 2C11
-2C42 2C12
-2C43 2C13
-2C44 2C14
-2C45 2C15
-2C46 2C16
-2C47 2C17
-2C48 2C18
-2C49 2C19
-2C4A 2C1A
-2C4B 2C1B
-2C4C 2C1C
-2C4D 2C1D
-2C4E 2C1E
-2C4F 2C1F
-2C50 2C20
-2C51 2C21
-2C52 2C22
-2C53 2C23
-2C54 2C24
-2C55 2C25
-2C56 2C26
-2C57 2C27
-2C58 2C28
-2C59 2C29
-2C5A 2C2A
-2C5B 2C2B
-2C5C 2C2C
-2C5D 2C2D
-2C5E 2C2E
-2C61 2C60
-2C65 023A
-2C66 023E
-2C68 2C67
-2C6A 2C69
-2C6C 2C6B
-2C73 2C72
-2C76 2C75
-2C81 2C80
-2C83 2C82
-2C85 2C84
-2C87 2C86
-2C89 2C88
-2C8B 2C8A
-2C8D 2C8C
-2C8F 2C8E
-2C91 2C90
-2C93 2C92
-2C95 2C94
-2C97 2C96
-2C99 2C98
-2C9B 2C9A
-2C9D 2C9C
-2C9F 2C9E
-2CA1 2CA0
-2CA3 2CA2
-2CA5 2CA4
-2CA7 2CA6
-2CA9 2CA8
-2CAB 2CAA
-2CAD 2CAC
-2CAF 2CAE
-2CB1 2CB0
-2CB3 2CB2
-2CB5 2CB4
-2CB7 2CB6
-2CB9 2CB8
-2CBB 2CBA
-2CBD 2CBC
-2CBF 2CBE
-2CC1 2CC0
-2CC3 2CC2
-2CC5 2CC4
-2CC7 2CC6
-2CC9 2CC8
-2CCB 2CCA
-2CCD 2CCC
-2CCF 2CCE
-2CD1 2CD0
-2CD3 2CD2
-2CD5 2CD4
-2CD7 2CD6
-2CD9 2CD8
-2CDB 2CDA
-2CDD 2CDC
-2CDF 2CDE
-2CE1 2CE0
-2CE3 2CE2
-2CEC 2CEB
-2CEE 2CED
-2CF3 2CF2
-2D00 10A0
-2D01 10A1
-2D02 10A2
-2D03 10A3
-2D04 10A4
-2D05 10A5
-2D06 10A6
-2D07 10A7
-2D08 10A8
-2D09 10A9
-2D0A 10AA
-2D0B 10AB
-2D0C 10AC
-2D0D 10AD
-2D0E 10AE
-2D0F 10AF
-2D10 10B0
-2D11 10B1
-2D12 10B2
-2D13 10B3
-2D14 10B4
-2D15 10B5
-2D16 10B6
-2D17 10B7
-2D18 10B8
-2D19 10B9
-2D1A 10BA
-2D1B 10BB
-2D1C 10BC
-2D1D 10BD
-2D1E 10BE
-2D1F 10BF
-2D20 10C0
-2D21 10C1
-2D22 10C2
-2D23 10C3
-2D24 10C4
-2D25 10C5
-2D27 10C7
-2D2D 10CD
-A641 A640
-A643 A642
-A645 A644
-A647 A646
-A649 A648
-A64B A64A
-A64D A64C
-A64F A64E
-A651 A650
-A653 A652
-A655 A654
-A657 A656
-A659 A658
-A65B A65A
-A65D A65C
-A65F A65E
-A661 A660
-A663 A662
-A665 A664
-A667 A666
-A669 A668
-A66B A66A
-A66D A66C
-A681 A680
-A683 A682
-A685 A684
-A687 A686
-A689 A688
-A68B A68A
-A68D A68C
-A68F A68E
-A691 A690
-A693 A692
-A695 A694
-A697 A696
-A699 A698
-A69B A69A
-A723 A722
-A725 A724
-A727 A726
-A729 A728
-A72B A72A
-A72D A72C
-A72F A72E
-A733 A732
-A735 A734
-A737 A736
-A739 A738
-A73B A73A
-A73D A73C
-A73F A73E
-A741 A740
-A743 A742
-A745 A744
-A747 A746
-A749 A748
-A74B A74A
-A74D A74C
-A74F A74E
-A751 A750
-A753 A752
-A755 A754
-A757 A756
-A759 A758
-A75B A75A
-A75D A75C
-A75F A75E
-A761 A760
-A763 A762
-A765 A764
-A767 A766
-A769 A768
-A76B A76A
-A76D A76C
-A76F A76E
-A77A A779
-A77C A77B
-A77F A77E
-A781 A780
-A783 A782
-A785 A784
-A787 A786
-A78C A78B
-A791 A790
-A793 A792
-A794 A7C4
-A797 A796
-A799 A798
-A79B A79A
-A79D A79C
-A79F A79E
-A7A1 A7A0
-A7A3 A7A2
-A7A5 A7A4
-A7A7 A7A6
-A7A9 A7A8
-A7B5 A7B4
-A7B7 A7B6
-A7B9 A7B8
-A7BB A7BA
-A7BD A7BC
-A7BF A7BE
-A7C3 A7C2
-A7C8 A7C7
-A7CA A7C9
-A7F6 A7F5
-AB53 A7B3
-AB70 13A0
-AB71 13A1
-AB72 13A2
-AB73 13A3
-AB74 13A4
-AB75 13A5
-AB76 13A6
-AB77 13A7
-AB78 13A8
-AB79 13A9
-AB7A 13AA
-AB7B 13AB
-AB7C 13AC
-AB7D 13AD
-AB7E 13AE
-AB7F 13AF
-AB80 13B0
-AB81 13B1
-AB82 13B2
-AB83 13B3
-AB84 13B4
-AB85 13B5
-AB86 13B6
-AB87 13B7
-AB88 13B8
-AB89 13B9
-AB8A 13BA
-AB8B 13BB
-AB8C 13BC
-AB8D 13BD
-AB8E 13BE
-AB8F 13BF
-AB90 13C0
-AB91 13C1
-AB92 13C2
-AB93 13C3
-AB94 13C4
-AB95 13C5
-AB96 13C6
-AB97 13C7
-AB98 13C8
-AB99 13C9
-AB9A 13CA
-AB9B 13CB
-AB9C 13CC
-AB9D 13CD
-AB9E 13CE
-AB9F 13CF
-ABA0 13D0
-ABA1 13D1
-ABA2 13D2
-ABA3 13D3
-ABA4 13D4
-ABA5 13D5
-ABA6 13D6
-ABA7 13D7
-ABA8 13D8
-ABA9 13D9
-ABAA 13DA
-ABAB 13DB
-ABAC 13DC
-ABAD 13DD
-ABAE 13DE
-ABAF 13DF
-ABB0 13E0
-ABB1 13E1
-ABB2 13E2
-ABB3 13E3
-ABB4 13E4
-ABB5 13E5
-ABB6 13E6
-ABB7 13E7
-ABB8 13E8
-ABB9 13E9
-ABBA 13EA
-ABBB 13EB
-ABBC 13EC
-ABBD 13ED
-ABBE 13EE
-ABBF 13EF
-FF41 FF21
-FF42 FF22
-FF43 FF23
-FF44 FF24
-FF45 FF25
-FF46 FF26
-FF47 FF27
-FF48 FF28
-FF49 FF29
-FF4A FF2A
-FF4B FF2B
-FF4C FF2C
-FF4D FF2D
-FF4E FF2E
-FF4F FF2F
-FF50 FF30
-FF51 FF31
-FF52 FF32
-FF53 FF33
-FF54 FF34
-FF55 FF35
-FF56 FF36
-FF57 FF37
-FF58 FF38
-FF59 FF39
-FF5A FF3A
-10428 10400
-10429 10401
-1042A 10402
-1042B 10403
-1042C 10404
-1042D 10405
-1042E 10406
-1042F 10407
-10430 10408
-10431 10409
-10432 1040A
-10433 1040B
-10434 1040C
-10435 1040D
-10436 1040E
-10437 1040F
-10438 10410
-10439 10411
-1043A 10412
-1043B 10413
-1043C 10414
-1043D 10415
-1043E 10416
-1043F 10417
-10440 10418
-10441 10419
-10442 1041A
-10443 1041B
-10444 1041C
-10445 1041D
-10446 1041E
-10447 1041F
-10448 10420
-10449 10421
-1044A 10422
-1044B 10423
-1044C 10424
-1044D 10425
-1044E 10426
-1044F 10427
-104D8 104B0
-104D9 104B1
-104DA 104B2
-104DB 104B3
-104DC 104B4
-104DD 104B5
-104DE 104B6
-104DF 104B7
-104E0 104B8
-104E1 104B9
-104E2 104BA
-104E3 104BB
-104E4 104BC
-104E5 104BD
-104E6 104BE
-104E7 104BF
-104E8 104C0
-104E9 104C1
-104EA 104C2
-104EB 104C3
-104EC 104C4
-104ED 104C5
-104EE 104C6
-104EF 104C7
-104F0 104C8
-104F1 104C9
-104F2 104CA
-104F3 104CB
-104F4 104CC
-104F5 104CD
-104F6 104CE
-104F7 104CF
-104F8 104D0
-104F9 104D1
-104FA 104D2
-104FB 104D3
-10CC0 10C80
-10CC1 10C81
-10CC2 10C82
-10CC3 10C83
-10CC4 10C84
-10CC5 10C85
-10CC6 10C86
-10CC7 10C87
-10CC8 10C88
-10CC9 10C89
-10CCA 10C8A
-10CCB 10C8B
-10CCC 10C8C
-10CCD 10C8D
-10CCE 10C8E
-10CCF 10C8F
-10CD0 10C90
-10CD1 10C91
-10CD2 10C92
-10CD3 10C93
-10CD4 10C94
-10CD5 10C95
-10CD6 10C96
-10CD7 10C97
-10CD8 10C98
-10CD9 10C99
-10CDA 10C9A
-10CDB 10C9B
-10CDC 10C9C
-10CDD 10C9D
-10CDE 10C9E
-10CDF 10C9F
-10CE0 10CA0
-10CE1 10CA1
-10CE2 10CA2
-10CE3 10CA3
-10CE4 10CA4
-10CE5 10CA5
-10CE6 10CA6
-10CE7 10CA7
-10CE8 10CA8
-10CE9 10CA9
-10CEA 10CAA
-10CEB 10CAB
-10CEC 10CAC
-10CED 10CAD
-10CEE 10CAE
-10CEF 10CAF
-10CF0 10CB0
-10CF1 10CB1
-10CF2 10CB2
-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
-16E60 16E40
-16E61 16E41
-16E62 16E42
-16E63 16E43
-16E64 16E44
-16E65 16E45
-16E66 16E46
-16E67 16E47
-16E68 16E48
-16E69 16E49
-16E6A 16E4A
-16E6B 16E4B
-16E6C 16E4C
-16E6D 16E4D
-16E6E 16E4E
-16E6F 16E4F
-16E70 16E50
-16E71 16E51
-16E72 16E52
-16E73 16E53
-16E74 16E54
-16E75 16E55
-16E76 16E56
-16E77 16E57
-16E78 16E58
-16E79 16E59
-16E7A 16E5A
-16E7B 16E5B
-16E7C 16E5C
-16E7D 16E5D
-16E7E 16E5E
-16E7F 16E5F
-1E922 1E900
-1E923 1E901
-1E924 1E902
-1E925 1E903
-1E926 1E904
-1E927 1E905
-1E928 1E906
-1E929 1E907
-1E92A 1E908
-1E92B 1E909
-1E92C 1E90A
-1E92D 1E90B
-1E92E 1E90C
-1E92F 1E90D
-1E930 1E90E
-1E931 1E90F
-1E932 1E910
-1E933 1E911
-1E934 1E912
-1E935 1E913
-1E936 1E914
-1E937 1E915
-1E938 1E916
-1E939 1E917
-1E93A 1E918
-1E93B 1E919
-1E93C 1E91A
-1E93D 1E91B
-1E93E 1E91C
-1E93F 1E91D
-1E940 1E91E
-1E941 1E91F
-1E942 1E920
-1E943 1E921
-END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl
index 11b119733f..4df2da26cc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -18,21 +18,21 @@ $Unicode::UCD::SwashInfo{'ToVo'}{'missing'} = 'R';
return <<'END';
0 A6 Rotated
-A7 U
+A7 Upright
A8 Rotated
-A9 U
+A9 Upright
AA AD Rotated
-AE U
+AE Upright
AF B0 Rotated
-B1 U
+B1 Upright
B2 BB Rotated
-BC BE U
+BC BE Upright
BF D6 Rotated
-D7 U
+D7 Upright
D8 F6 Rotated
-F7 U
+F7 Upright
F8 2E9 Rotated
-2EA 2EB U
+2EA 2EB Upright
2EC 377 Rotated
37A 37F Rotated
384 38A Rotated
@@ -45,8 +45,7 @@ F8 2E9 Rotated
591 5C7 Rotated
5D0 5EA Rotated
5EF 5F4 Rotated
-600 61C Rotated
-61E 70D Rotated
+600 70D Rotated
70F 74A Rotated
74D 7B1 Rotated
7C0 7FA Rotated
@@ -55,9 +54,9 @@ F8 2E9 Rotated
840 85B Rotated
85E Rotated
860 86A Rotated
-8A0 8B4 Rotated
-8B6 8C7 Rotated
-8D3 983 Rotated
+870 88E Rotated
+890 891 Rotated
+898 983 Rotated
985 98C Rotated
98F 990 Rotated
993 9A8 Rotated
@@ -135,11 +134,12 @@ C00 C0C Rotated
C0E C10 Rotated
C12 C28 Rotated
C2A C39 Rotated
-C3D C44 Rotated
+C3C C44 Rotated
C46 C48 Rotated
C4A C4D Rotated
C55 C56 Rotated
C58 C5A Rotated
+C5D Rotated
C60 C63 Rotated
C66 C6F Rotated
C77 C8C Rotated
@@ -151,10 +151,10 @@ CBC CC4 Rotated
CC6 CC8 Rotated
CCA CCD Rotated
CD5 CD6 Rotated
-CDE Rotated
+CDD CDE Rotated
CE0 CE3 Rotated
CE6 CEF Rotated
-CF1 CF2 Rotated
+CF1 CF3 Rotated
D00 D0C Rotated
D0E D10 Rotated
D12 D44 Rotated
@@ -184,7 +184,7 @@ EA5 Rotated
EA7 EBD Rotated
EC0 EC4 Rotated
EC6 Rotated
-EC8 ECD Rotated
+EC8 ECE Rotated
ED0 ED9 Rotated
EDC EDF Rotated
F00 F47 Rotated
@@ -197,7 +197,7 @@ FCE FDA Rotated
10C7 Rotated
10CD Rotated
10D0 10FF Rotated
-1100 11FF U
+1100 11FF Upright
1200 1248 Rotated
124A 124D Rotated
1250 1256 Rotated
@@ -219,12 +219,11 @@ FCE FDA Rotated
13A0 13F5 Rotated
13F8 13FD Rotated
1400 Rotated
-1401 167F U
+1401 167F Upright
1680 169C Rotated
16A0 16F8 Rotated
-1700 170C Rotated
-170E 1714 Rotated
-1720 1736 Rotated
+1700 1715 Rotated
+171F 1736 Rotated
1740 1753 Rotated
1760 176C Rotated
176E 1770 Rotated
@@ -232,11 +231,10 @@ FCE FDA Rotated
1780 17DD Rotated
17E0 17E9 Rotated
17F0 17F9 Rotated
-1800 180E Rotated
-1810 1819 Rotated
+1800 1819 Rotated
1820 1878 Rotated
1880 18AA Rotated
-18B0 18FF U
+18B0 18FF Upright
1900 191E Rotated
1920 192B Rotated
1930 193B Rotated
@@ -252,9 +250,9 @@ FCE FDA Rotated
1A7F 1A89 Rotated
1A90 1A99 Rotated
1AA0 1AAD Rotated
-1AB0 1AC0 Rotated
-1B00 1B4B Rotated
-1B50 1B7C Rotated
+1AB0 1ACE Rotated
+1B00 1B4C Rotated
+1B50 1B7E Rotated
1B80 1BF3 Rotated
1BFC 1C37 Rotated
1C3B 1C49 Rotated
@@ -262,8 +260,7 @@ FCE FDA Rotated
1C90 1CBA Rotated
1CBD 1CC7 Rotated
1CD0 1CFA Rotated
-1D00 1DF9 Rotated
-1DFB 1F15 Rotated
+1D00 1F15 Rotated
1F18 1F1D Rotated
1F20 1F45 Rotated
1F48 1F4D Rotated
@@ -280,105 +277,103 @@ FCE FDA Rotated
1FF2 1FF4 Rotated
1FF6 1FFE Rotated
2000 2015 Rotated
-2016 U
+2016 Upright
2017 201F Rotated
-2020 2021 U
+2020 2021 Upright
2022 202F Rotated
-2030 2031 U
+2030 2031 Upright
2032 203A Rotated
-203B 203C U
+203B 203C Upright
203D 2041 Rotated
-2042 U
+2042 Upright
2043 2046 Rotated
-2047 2049 U
+2047 2049 Upright
204A 2050 Rotated
-2051 U
+2051 Upright
2052 2064 Rotated
-2065 U
+2065 Upright
2066 2071 Rotated
2074 208E Rotated
2090 209C Rotated
-20A0 20BF Rotated
+20A0 20C0 Rotated
20D0 20DC Rotated
-20DD 20E0 U
+20DD 20E0 Upright
20E1 Rotated
-20E2 20E4 U
+20E2 20E4 Upright
20E5 20F0 Rotated
-2100 2101 U
+2100 2101 Upright
2102 Rotated
-2103 2109 U
+2103 2109 Upright
210A 210E Rotated
-210F U
+210F Upright
2110 2112 Rotated
-2113 2114 U
+2113 2114 Upright
2115 Rotated
-2116 2117 U
+2116 2117 Upright
2118 211D Rotated
-211E 2123 U
+211E 2123 Upright
2124 Rotated
-2125 U
+2125 Upright
2126 Rotated
-2127 U
+2127 Upright
2128 Rotated
-2129 U
+2129 Upright
212A 212D Rotated
-212E U
+212E Upright
212F 2134 Rotated
-2135 213F U
+2135 213F Upright
2140 2144 Rotated
-2145 214A U
+2145 214A Upright
214B Rotated
-214C 214D U
+214C 214D Upright
214E Rotated
-214F 2189 U
+214F 2189 Upright
218A 218B Rotated
-218C 218F U
+218C 218F Upright
2190 221D Rotated
-221E U
+221E Upright
221F 2233 Rotated
-2234 2235 U
+2234 2235 Upright
2236 22FF Rotated
-2300 2307 U
+2300 2307 Upright
2308 230B Rotated
-230C 231F U
+230C 231F Upright
2320 2323 Rotated
-2324 2328 U
-2329 232A Tr
-232B U
+2324 2328 Upright
+2329 232A Transformed_Rotated
+232B Upright
232C 237C Rotated
-237D 239A U
+237D 239A Upright
239B 23BD Rotated
-23BE 23CD U
+23BE 23CD Upright
23CE Rotated
-23CF U
+23CF Upright
23D0 Rotated
-23D1 23DB U
+23D1 23DB Upright
23DC 23E1 Rotated
-23E2 2422 U
+23E2 2422 Upright
2423 Rotated
-2424 24FF U
+2424 24FF Upright
2500 259F Rotated
-25A0 2619 U
+25A0 2619 Upright
261A 261F Rotated
-2620 2767 U
+2620 2767 Upright
2768 2775 Rotated
-2776 2793 U
+2776 2793 Upright
2794 2B11 Rotated
-2B12 2B2F U
+2B12 2B2F Upright
2B30 2B4F Rotated
-2B50 2B59 U
+2B50 2B59 Upright
2B5A 2B73 Rotated
2B76 2B95 Rotated
-2B97 U
+2B97 Upright
2B98 2BB7 Rotated
-2BB8 2BD1 U
+2BB8 2BD1 Upright
2BD2 Rotated
-2BD3 2BEB U
+2BD3 2BEB Upright
2BEC 2BEF Rotated
-2BF0 2BFF U
-2C00 2C2E Rotated
-2C30 2C5E Rotated
-2C60 2CF3 Rotated
+2BF0 2BFF Upright
+2C00 2CF3 Rotated
2CF9 2D25 Rotated
2D27 Rotated
2D2D Rotated
@@ -394,86 +389,88 @@ FCE FDA Rotated
2DD0 2DD6 Rotated
2DD8 2DDE Rotated
2DE0 2E4F Rotated
-2E50 2E51 U
-2E52 Rotated
-2E80 3000 U
-3001 3002 Tu
-3003 3007 U
-3008 3011 Tr
-3012 3013 U
-3014 301F Tr
-3020 302F U
-3030 Tr
-3031 3040 U
-3041 Tu
-3042 U
-3043 Tu
-3044 U
-3045 Tu
-3046 U
-3047 Tu
-3048 U
-3049 Tu
-304A 3062 U
-3063 Tu
-3064 3082 U
-3083 Tu
-3084 U
-3085 Tu
-3086 U
-3087 Tu
-3088 308D U
-308E Tu
-308F 3094 U
-3095 3096 Tu
-3097 309A U
-309B 309C Tu
-309D 309F U
-30A0 Tr
-30A1 Tu
-30A2 U
-30A3 Tu
-30A4 U
-30A5 Tu
-30A6 U
-30A7 Tu
-30A8 U
-30A9 Tu
-30AA 30C2 U
-30C3 Tu
-30C4 30E2 U
-30E3 Tu
-30E4 U
-30E5 Tu
-30E6 U
-30E7 Tu
-30E8 30ED U
-30EE Tu
-30EF 30F4 U
-30F5 30F6 Tu
-30F7 30FB U
-30FC Tr
-30FD 3126 U
-3127 Tu
-3128 31EF U
-31F0 31FF Tu
-3200 32FE U
-32FF 3357 Tu
-3358 337A U
-337B 337F Tu
-3380 A4CF U
+2E50 2E51 Upright
+2E52 2E5D Rotated
+2E80 3000 Upright
+3001 3002 Transformed_Upright
+3003 3007 Upright
+3008 3011 Transformed_Rotated
+3012 3013 Upright
+3014 301F Transformed_Rotated
+3020 302F Upright
+3030 Transformed_Rotated
+3031 3040 Upright
+3041 Transformed_Upright
+3042 Upright
+3043 Transformed_Upright
+3044 Upright
+3045 Transformed_Upright
+3046 Upright
+3047 Transformed_Upright
+3048 Upright
+3049 Transformed_Upright
+304A 3062 Upright
+3063 Transformed_Upright
+3064 3082 Upright
+3083 Transformed_Upright
+3084 Upright
+3085 Transformed_Upright
+3086 Upright
+3087 Transformed_Upright
+3088 308D Upright
+308E Transformed_Upright
+308F 3094 Upright
+3095 3096 Transformed_Upright
+3097 309A Upright
+309B 309C Transformed_Upright
+309D 309F Upright
+30A0 Transformed_Rotated
+30A1 Transformed_Upright
+30A2 Upright
+30A3 Transformed_Upright
+30A4 Upright
+30A5 Transformed_Upright
+30A6 Upright
+30A7 Transformed_Upright
+30A8 Upright
+30A9 Transformed_Upright
+30AA 30C2 Upright
+30C3 Transformed_Upright
+30C4 30E2 Upright
+30E3 Transformed_Upright
+30E4 Upright
+30E5 Transformed_Upright
+30E6 Upright
+30E7 Transformed_Upright
+30E8 30ED Upright
+30EE Transformed_Upright
+30EF 30F4 Upright
+30F5 30F6 Transformed_Upright
+30F7 30FB Upright
+30FC Transformed_Rotated
+30FD 3126 Upright
+3127 Transformed_Upright
+3128 31EF Upright
+31F0 31FF Transformed_Upright
+3200 32FE Upright
+32FF 3357 Transformed_Upright
+3358 337A Upright
+337B 337F Transformed_Upright
+3380 A4CF Upright
A4D0 A62B Rotated
A640 A6F7 Rotated
-A700 A7BF Rotated
-A7C2 A7CA Rotated
-A7F5 A82C Rotated
+A700 A7CA Rotated
+A7D0 A7D1 Rotated
+A7D3 Rotated
+A7D5 A7D9 Rotated
+A7F2 A82C Rotated
A830 A839 Rotated
A840 A877 Rotated
A880 A8C5 Rotated
A8CE A8D9 Rotated
A8E0 A953 Rotated
A95F Rotated
-A960 A97F U
+A960 A97F Upright
A980 A9CD Rotated
A9CF A9D9 Rotated
A9DE A9FE Rotated
@@ -490,9 +487,9 @@ AB28 AB2E Rotated
AB30 AB6B Rotated
AB70 ABED Rotated
ABF0 ABF9 Rotated
-AC00 D7FF U
+AC00 D7FF Upright
D800 DFFF Rotated
-E000 FAFF U
+E000 FAFF Upright
FB00 FB06 Rotated
FB13 FB17 Rotated
FB1D FB36 Rotated
@@ -500,57 +497,56 @@ FB38 FB3C Rotated
FB3E Rotated
FB40 FB41 Rotated
FB43 FB44 Rotated
-FB46 FBC1 Rotated
-FBD3 FD3F Rotated
-FD50 FD8F Rotated
+FB46 FBC2 Rotated
+FBD3 FD8F Rotated
FD92 FDC7 Rotated
-FDF0 FDFD Rotated
-FE00 FE0F Rotated
-FE10 FE1F U
+FDCF Rotated
+FDF0 FE0F Rotated
+FE10 FE1F Upright
FE20 FE2F Rotated
-FE30 FE48 U
+FE30 FE48 Upright
FE49 FE4F Rotated
-FE50 FE52 Tu
-FE53 FE57 U
+FE50 FE52 Transformed_Upright
+FE53 FE57 Upright
FE58 Rotated
-FE59 FE5E Tr
-FE5F FE62 U
+FE59 FE5E Transformed_Rotated
+FE5F FE62 Upright
FE63 FE66 Rotated
-FE67 FE6F U
+FE67 FE6F Upright
FE70 FE74 Rotated
FE76 FEFC Rotated
FEFF Rotated
-FF01 Tu
-FF02 FF07 U
-FF08 FF09 Tr
-FF0A FF0B U
-FF0C Tu
+FF01 Transformed_Upright
+FF02 FF07 Upright
+FF08 FF09 Transformed_Rotated
+FF0A FF0B Upright
+FF0C Transformed_Upright
FF0D Rotated
-FF0E Tu
-FF0F FF19 U
-FF1A FF1B Tr
+FF0E Transformed_Upright
+FF0F FF19 Upright
+FF1A FF1B Transformed_Rotated
FF1C FF1E Rotated
-FF1F Tu
-FF20 FF3A U
-FF3B Tr
-FF3C U
-FF3D Tr
-FF3E U
-FF3F Tr
-FF40 FF5A U
-FF5B FF60 Tr
+FF1F Transformed_Upright
+FF20 FF3A Upright
+FF3B Transformed_Rotated
+FF3C Upright
+FF3D Transformed_Rotated
+FF3E Upright
+FF3F Transformed_Rotated
+FF40 FF5A Upright
+FF5B FF60 Transformed_Rotated
FF61 FFBE Rotated
FFC2 FFC7 Rotated
FFCA FFCF Rotated
FFD2 FFD7 Rotated
FFDA FFDC Rotated
-FFE0 FFE2 U
-FFE3 Tr
-FFE4 FFE7 U
+FFE0 FFE2 Upright
+FFE3 Transformed_Rotated
+FFE4 FFE7 Upright
FFE8 FFEE Rotated
-FFF0 FFF8 U
+FFF0 FFF8 Upright
FFF9 FFFB Rotated
-FFFC FFFD U
+FFFC FFFD Upright
10000 1000B Rotated
1000D 10026 Rotated
10028 1003A Rotated
@@ -579,10 +575,20 @@ FFFC FFFD U
104D8 104FB Rotated
10500 10527 Rotated
10530 10563 Rotated
-1056F Rotated
+1056F 1057A Rotated
+1057C 1058A Rotated
+1058C 10592 Rotated
+10594 10595 Rotated
+10597 105A1 Rotated
+105A3 105B1 Rotated
+105B3 105B9 Rotated
+105BB 105BC Rotated
10600 10736 Rotated
10740 10755 Rotated
10760 10767 Rotated
+10780 10785 Rotated
+10787 107B0 Rotated
+107B2 107BA Rotated
10800 10805 Rotated
10808 Rotated
1080A 10835 Rotated
@@ -596,7 +602,7 @@ FFFC FFFD U
108FB 1091B Rotated
1091F 10939 Rotated
1093F Rotated
-10980 1099F U
+10980 1099F Upright
109A0 109B7 Rotated
109BC 109CF Rotated
109D2 10A03 Rotated
@@ -625,13 +631,14 @@ FFFC FFFD U
10E80 10EA9 Rotated
10EAB 10EAD Rotated
10EB0 10EB1 Rotated
-10F00 10F27 Rotated
+10EFD 10F27 Rotated
10F30 10F59 Rotated
+10F70 10F89 Rotated
10FB0 10FCB Rotated
10FE0 10FF6 Rotated
11000 1104D Rotated
-11052 1106F Rotated
-1107F 110C1 Rotated
+11052 11075 Rotated
+1107F 110C2 Rotated
110CD Rotated
110D0 110E8 Rotated
110F0 110F9 Rotated
@@ -641,7 +648,7 @@ FFFC FFFD U
11180 111DF Rotated
111E1 111F4 Rotated
11200 11211 Rotated
-11213 1123E Rotated
+11213 11241 Rotated
11280 11286 Rotated
11288 Rotated
1128A 1128D Rotated
@@ -668,15 +675,15 @@ FFFC FFFD U
1145D 11461 Rotated
11480 114C7 Rotated
114D0 114D9 Rotated
-11580 115FF U
+11580 115FF Upright
11600 11644 Rotated
11650 11659 Rotated
11660 1166C Rotated
-11680 116B8 Rotated
+11680 116B9 Rotated
116C0 116C9 Rotated
11700 1171A Rotated
1171D 1172B Rotated
-11730 1173F Rotated
+11730 11746 Rotated
11800 1183B Rotated
118A0 118F2 Rotated
118FF 11906 Rotated
@@ -690,8 +697,9 @@ FFFC FFFD U
119A0 119A7 Rotated
119AA 119D7 Rotated
119DA 119E4 Rotated
-11A00 11AAF U
+11A00 11ABF Upright
11AC0 11AF8 Rotated
+11B00 11B09 Rotated
11C00 11C08 Rotated
11C0A 11C36 Rotated
11C38 11C45 Rotated
@@ -713,18 +721,23 @@ FFFC FFFD U
11D93 11D98 Rotated
11DA0 11DA9 Rotated
11EE0 11EF8 Rotated
+11F00 11F10 Rotated
+11F12 11F3A Rotated
+11F3E 11F59 Rotated
11FB0 Rotated
11FC0 11FF1 Rotated
11FFF 12399 Rotated
12400 1246E Rotated
12470 12474 Rotated
12480 12543 Rotated
-13000 1343F U
-14400 1467F U
+12F90 12FF2 Rotated
+13000 1345F Upright
+14400 1467F Upright
16800 16A38 Rotated
16A40 16A5E Rotated
16A60 16A69 Rotated
-16A6E 16A6F Rotated
+16A6E 16ABE Rotated
+16AC0 16AC9 Rotated
16AD0 16AED Rotated
16AF0 16AF5 Rotated
16B00 16B45 Rotated
@@ -736,16 +749,18 @@ FFFC FFFD U
16F00 16F4A Rotated
16F4F 16F87 Rotated
16F8F 16F9F Rotated
-16FE0 18D8F U
-1B000 1B2FF U
+16FE0 18D7F Upright
+1AFF0 1B2FF Upright
1BC00 1BC6A Rotated
1BC70 1BC7C Rotated
1BC80 1BC88 Rotated
1BC90 1BC99 Rotated
1BC9C 1BCA3 Rotated
-1D000 1D1FF U
+1CF00 1CFCF Upright
+1D000 1D1FF Upright
1D200 1D245 Rotated
-1D2E0 1D37F U
+1D2C0 1D2D3 Rotated
+1D2E0 1D37F Upright
1D400 1D454 Rotated
1D456 1D49C Rotated
1D49E 1D49F Rotated
@@ -767,18 +782,28 @@ FFFC FFFD U
1D552 1D6A5 Rotated
1D6A8 1D7CB Rotated
1D7CE 1D7FF Rotated
-1D800 1DAAF U
+1D800 1DAAF Upright
+1DF00 1DF1E Rotated
+1DF25 1DF2A Rotated
1E000 1E006 Rotated
1E008 1E018 Rotated
1E01B 1E021 Rotated
1E023 1E024 Rotated
1E026 1E02A Rotated
+1E030 1E06D Rotated
+1E08F Rotated
1E100 1E12C Rotated
1E130 1E13D Rotated
1E140 1E149 Rotated
1E14E 1E14F Rotated
+1E290 1E2AE Rotated
1E2C0 1E2F9 Rotated
1E2FF Rotated
+1E4D0 1E4F9 Rotated
+1E7E0 1E7E6 Rotated
+1E7E8 1E7EB Rotated
+1E7ED 1E7EE Rotated
+1E7F0 1E7FE Rotated
1E800 1E8C4 Rotated
1E8C7 1E8D6 Rotated
1E900 1E94B Rotated
@@ -820,24 +845,24 @@ FFFC FFFD U
1EEA5 1EEA9 Rotated
1EEAB 1EEBB Rotated
1EEF0 1EEF1 Rotated
-1F000 1F1FF U
-1F200 1F201 Tu
-1F202 1F7FF U
+1F000 1F1FF Upright
+1F200 1F201 Transformed_Upright
+1F202 1F7FF Upright
1F800 1F80B Rotated
1F810 1F847 Rotated
1F850 1F859 Rotated
1F860 1F887 Rotated
1F890 1F8AD Rotated
1F8B0 1F8B1 Rotated
-1F900 1FAFF U
+1F900 1FAFF Upright
1FB00 1FB92 Rotated
1FB94 1FBCA Rotated
1FBF0 1FBF9 Rotated
-20000 2FFFD U
-30000 3FFFD U
+20000 2FFFD Upright
+30000 3FFFD Upright
E0001 Rotated
E0020 E007F Rotated
E0100 E01EF Rotated
-F0000 FFFFD U
-100000 10FFFD U
+F0000 FFFFD Upright
+100000 10FFFD Upright
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl
index 853449eb29..a3c2fc5fc7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -125,9 +125,12 @@ F8 2D7 ALetter
840 858 ALetter
859 85B Extend
860 86A ALetter
-8A0 8B4 ALetter
-8B6 8C7 ALetter
-8D3 8E1 Extend
+870 887 ALetter
+889 88E ALetter
+890 891 Format
+898 89F Extend
+8A0 8C9 ALetter
+8CA 8E1 Extend
8E2 Format
8E3 903 Extend
904 939 ALetter
@@ -238,12 +241,14 @@ C05 C0C ALetter
C0E C10 ALetter
C12 C28 ALetter
C2A C39 ALetter
+C3C Extend
C3D ALetter
C3E C44 Extend
C46 C48 Extend
C4A C4D Extend
C55 C56 Extend
C58 C5A ALetter
+C5D ALetter
C60 C61 ALetter
C62 C63 Extend
C66 C6F Numeric
@@ -260,11 +265,12 @@ CBE CC4 Extend
CC6 CC8 Extend
CCA CCD Extend
CD5 CD6 Extend
-CDE ALetter
+CDD CDE ALetter
CE0 CE1 ALetter
CE2 CE3 Extend
CE6 CEF Numeric
CF1 CF2 ALetter
+CF3 Extend
D00 D03 Extend
D04 D0C ALetter
D0E D10 ALetter
@@ -299,7 +305,7 @@ E47 E4E Extend
E50 E59 Numeric
EB1 Extend
EB4 EBC Extend
-EC8 ECD Extend
+EC8 ECE Extend
ED0 ED9 Numeric
F00 ALetter
F18 F19 Extend
@@ -357,10 +363,9 @@ FC6 Extend
1681 169A ALetter
16A0 16EA ALetter
16EE 16F8 ALetter
-1700 170C ALetter
-170E 1711 ALetter
-1712 1714 Extend
-1720 1731 ALetter
+1700 1711 ALetter
+1712 1715 Extend
+171F 1731 ALetter
1732 1734 Extend
1740 1751 ALetter
1752 1753 Extend
@@ -372,6 +377,7 @@ FC6 Extend
17E0 17E9 Numeric
180B 180D Extend
180E Format
+180F Extend
1810 1819 Numeric
1820 1878 ALetter
1880 1884 ALetter
@@ -392,11 +398,11 @@ FC6 Extend
1A7F Extend
1A80 1A89 Numeric
1A90 1A99 Numeric
-1AB0 1AC0 Extend
+1AB0 1ACE Extend
1B00 1B04 Extend
1B05 1B33 ALetter
1B34 1B44 Extend
-1B45 1B4B ALetter
+1B45 1B4C ALetter
1B50 1B59 Numeric
1B6B 1B73 Extend
1B80 1B82 Extend
@@ -425,8 +431,7 @@ FC6 Extend
1CF7 1CF9 Extend
1CFA ALetter
1D00 1DBF ALetter
-1DC0 1DF9 Extend
-1DFB 1DFF Extend
+1DC0 1DFF Extend
1E00 1F15 ALetter
1F18 1F1D ALetter
1F20 1F45 ALetter
@@ -526,9 +531,7 @@ FC6 Extend
2B1B 2B1C ExtPict_XX
2B50 ExtPict_XX
2B55 ExtPict_XX
-2C00 2C2E ALetter
-2C30 2C5E ALetter
-2C60 2CE4 ALetter
+2C00 2CE4 ALetter
2CEB 2CEE ALetter
2CEF 2CF1 Extend
2CF2 2CF3 ALetter
@@ -581,9 +584,11 @@ A67F A69D ALetter
A69E A69F Extend
A6A0 A6EF ALetter
A6F0 A6F1 Extend
-A708 A7BF ALetter
-A7C2 A7CA ALetter
-A7F5 A801 ALetter
+A708 A7CA ALetter
+A7D0 A7D1 ALetter
+A7D3 ALetter
+A7D5 A7D9 ALetter
+A7F2 A801 ALetter
A802 Extend
A803 A805 ALetter
A806 Extend
@@ -718,9 +723,20 @@ FFF9 FFFB Format
104D8 104FB ALetter
10500 10527 ALetter
10530 10563 ALetter
+10570 1057A ALetter
+1057C 1058A ALetter
+1058C 10592 ALetter
+10594 10595 ALetter
+10597 105A1 ALetter
+105A3 105B1 ALetter
+105B3 105B9 ALetter
+105BB 105BC ALetter
10600 10736 ALetter
10740 10755 ALetter
10760 10767 ALetter
+10780 10785 ALetter
+10787 107B0 ALetter
+107B2 107BA ALetter
10800 10805 ALetter
10808 ALetter
1080A 10835 ALetter
@@ -762,20 +778,28 @@ FFF9 FFFB Format
10E80 10EA9 ALetter
10EAB 10EAC Extend
10EB0 10EB1 ALetter
+10EFD 10EFF Extend
10F00 10F1C ALetter
10F27 ALetter
10F30 10F45 ALetter
10F46 10F50 Extend
+10F70 10F81 ALetter
+10F82 10F85 Extend
10FB0 10FC4 ALetter
10FE0 10FF6 ALetter
11000 11002 Extend
11003 11037 ALetter
11038 11046 Extend
11066 1106F Numeric
+11070 Extend
+11071 11072 ALetter
+11073 11074 Extend
+11075 ALetter
1107F 11082 Extend
11083 110AF ALetter
110B0 110BA Extend
110BD Format
+110C2 Extend
110CD Format
110D0 110E8 ALetter
110F0 110F9 Numeric
@@ -802,6 +826,8 @@ FFF9 FFFB Format
11213 1122B ALetter
1122C 11237 Extend
1123E Extend
+1123F 11240 ALetter
+11241 Extend
11280 11286 ALetter
11288 ALetter
1128A 1128D ALetter
@@ -890,7 +916,7 @@ FFF9 FFFB Format
11A5C 11A89 ALetter
11A8A 11A99 Extend
11A9D ALetter
-11AC0 11AF8 ALetter
+11AB0 11AF8 ALetter
11C00 11C08 ALetter
11C0A 11C2E ALetter
11C2F 11C36 Extend
@@ -920,16 +946,30 @@ FFF9 FFFB Format
11DA0 11DA9 Numeric
11EE0 11EF2 ALetter
11EF3 11EF6 Extend
+11F00 11F01 Extend
+11F02 ALetter
+11F03 Extend
+11F04 11F10 ALetter
+11F12 11F33 ALetter
+11F34 11F3A Extend
+11F3E 11F42 Extend
+11F50 11F59 Numeric
11FB0 ALetter
12000 12399 ALetter
12400 1246E ALetter
12480 12543 ALetter
-13000 1342E ALetter
-13430 13438 Format
+12F90 12FF0 ALetter
+13000 1342F ALetter
+13430 1343F Format
+13440 Extend
+13441 13446 ALetter
+13447 13455 Extend
14400 14646 ALetter
16800 16A38 ALetter
16A40 16A5E ALetter
16A60 16A69 Numeric
+16A70 16ABE ALetter
+16AC0 16AC9 Numeric
16AD0 16AED ALetter
16AF0 16AF4 Extend
16B00 16B2F ALetter
@@ -949,7 +989,12 @@ FFF9 FFFB Format
16FE3 ALetter
16FE4 Extend
16FF0 16FF1 Extend
+1AFF0 1AFF3 Katakana
+1AFF5 1AFFB Katakana
+1AFFD 1AFFE Katakana
1B000 Katakana
+1B120 1B122 Katakana
+1B155 Katakana
1B164 1B167 Katakana
1BC00 1BC6A ALetter
1BC70 1BC7C ALetter
@@ -957,6 +1002,8 @@ FFF9 FFFB Format
1BC90 1BC99 ALetter
1BC9D 1BC9E Extend
1BCA0 1BCA3 Format
+1CF00 1CF2D Extend
+1CF30 1CF46 Extend
1D165 1D169 Extend
1D16D 1D172 Extend
1D173 1D17A Format
@@ -1001,19 +1048,32 @@ FFF9 FFFB Format
1DA84 Extend
1DA9B 1DA9F Extend
1DAA1 1DAAF Extend
+1DF00 1DF1E ALetter
+1DF25 1DF2A ALetter
1E000 1E006 Extend
1E008 1E018 Extend
1E01B 1E021 Extend
1E023 1E024 Extend
1E026 1E02A Extend
+1E030 1E06D ALetter
+1E08F Extend
1E100 1E12C ALetter
1E130 1E136 Extend
1E137 1E13D ALetter
1E140 1E149 Numeric
1E14E ALetter
+1E290 1E2AD ALetter
+1E2AE Extend
1E2C0 1E2EB ALetter
1E2EC 1E2EF Extend
1E2F0 1E2F9 Numeric
+1E4D0 1E4EB ALetter
+1E4EC 1E4EF Extend
+1E4F0 1E4F9 Numeric
+1E7E0 1E7E6 ALetter
+1E7E8 1E7EB ALetter
+1E7ED 1E7EE ALetter
+1E7F0 1E7FE ALetter
1E800 1E8C4 ALetter
1E8D0 1E8D6 Extend
1E900 1E943 ALetter
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
index 6d76f33964..7bc48d21e3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -86,7 +86,7 @@ BF Open_Punctuation
610 61A Combining_Mark
61B Exclamation
61C Combining_Mark
-61E 61F Exclamation
+61D 61F Exclamation
64B 65F Combining_Mark
660 669 Numeric
66A Postfix_Numeric
@@ -112,7 +112,8 @@ BF Open_Punctuation
825 827 Combining_Mark
829 82D Combining_Mark
859 85B Combining_Mark
-8D3 8E1 Combining_Mark
+898 89F Combining_Mark
+8CA 8E1 Combining_Mark
8E3 903 Combining_Mark
93A 93C Combining_Mark
93E 94F Combining_Mark
@@ -166,6 +167,7 @@ BD7 Combining_Mark
BE6 BEF Numeric
BF9 Prefix_Numeric
C00 C04 Combining_Mark
+C3C Combining_Mark
C3E C44 Combining_Mark
C46 C48 Combining_Mark
C4A C4D Combining_Mark
@@ -182,6 +184,7 @@ CCA CCD Combining_Mark
CD5 CD6 Combining_Mark
CE2 CE3 Combining_Mark
CE6 CEF Numeric
+CF3 Combining_Mark
D00 D03 Combining_Mark
D3B D3C Combining_Mark
D3E D44 Combining_Mark
@@ -206,7 +209,7 @@ E50 E59 Numeric
E5A E5B Break_After
EB1 Combining_Mark
EB4 EBC Combining_Mark
-EC8 ECD Combining_Mark
+EC8 ECE Combining_Mark
ED0 ED9 Numeric
F01 F04 Break_Before
F06 F07 Break_Before
@@ -263,7 +266,7 @@ FD9 FDA Glue
169B Open_Punctuation
169C Close_Punctuation
16EB 16ED Break_After
-1712 1714 Combining_Mark
+1712 1715 Combining_Mark
1732 1734 Combining_Mark
1735 1736 Break_After
1752 1753 Combining_Mark
@@ -282,6 +285,7 @@ FD9 FDA Glue
1808 1809 Exclamation
180B 180D Combining_Mark
180E Glue
+180F Combining_Mark
1810 1819 Numeric
1885 1886 Combining_Mark
18A9 Combining_Mark
@@ -296,13 +300,14 @@ FD9 FDA Glue
1A7F Combining_Mark
1A80 1A89 Numeric
1A90 1A99 Numeric
-1AB0 1AC0 Combining_Mark
+1AB0 1ACE Combining_Mark
1B00 1B04 Combining_Mark
1B34 1B44 Combining_Mark
1B50 1B59 Numeric
1B5A 1B5B Break_After
1B5D 1B60 Break_After
1B6B 1B73 Combining_Mark
+1B7D 1B7E Break_After
1B80 1B82 Combining_Mark
1BA1 1BAD Combining_Mark
1BB0 1BB9 Numeric
@@ -317,8 +322,11 @@ FD9 FDA Glue
1CED Combining_Mark
1CF4 Combining_Mark
1CF7 1CF9 Combining_Mark
-1DC0 1DF9 Combining_Mark
-1DFB 1DFF Combining_Mark
+1DC0 1DCC Combining_Mark
+1DCD Glue
+1DCE 1DFB Combining_Mark
+1DFC Glue
+1DFD 1DFF Combining_Mark
1FFD Break_Before
2000 2006 Break_After
2007 Glue
@@ -349,6 +357,7 @@ FD9 FDA Glue
2046 Close_Punctuation
2047 2049 Nonstarter
2056 Break_After
+2057 Postfix_Numeric
2058 205B Break_After
205D 205F Break_After
2060 Word_Joiner
@@ -365,7 +374,9 @@ FD9 FDA Glue
20BB Postfix_Numeric
20BC 20BD Prefix_Numeric
20BE Postfix_Numeric
-20BF 20CF Prefix_Numeric
+20BF Prefix_Numeric
+20C0 Postfix_Numeric
+20C1 20CF Prefix_Numeric
20D0 20F0 Combining_Mark
2103 Postfix_Numeric
2109 Postfix_Numeric
@@ -495,6 +506,16 @@ FD9 FDA Glue
2E43 2E4A Break_After
2E4C Break_After
2E4E 2E4F Break_After
+2E53 2E54 Exclamation
+2E55 Open_Punctuation
+2E56 Close_Punctuation
+2E57 Open_Punctuation
+2E58 Close_Punctuation
+2E59 Open_Punctuation
+2E5A Close_Punctuation
+2E5B Open_Punctuation
+2E5C Close_Punctuation
+2E5D Break_After
2E80 2E99 Ideographic
2E9B 2EF3 Ideographic
2F00 2FD5 Ideographic
@@ -1574,14 +1595,19 @@ FFFC Contingent_Break
10D30 10D39 Numeric
10EAB 10EAC Combining_Mark
10EAD Break_After
+10EFD 10EFF Combining_Mark
10F46 10F50 Combining_Mark
+10F82 10F85 Combining_Mark
11000 11002 Combining_Mark
11038 11046 Combining_Mark
11047 11048 Break_After
11066 1106F Numeric
+11070 Combining_Mark
+11073 11074 Combining_Mark
1107F 11082 Combining_Mark
110B0 110BA Combining_Mark
110BE 110C1 Break_After
+110C2 Combining_Mark
110F0 110F9 Numeric
11100 11102 Combining_Mark
11127 11134 Combining_Mark
@@ -1603,6 +1629,7 @@ FFFC Contingent_Break
11238 11239 Break_After
1123B 1123C Break_After
1123E Combining_Mark
+11241 Combining_Mark
112A9 Break_After
112DF 112EA Combining_Mark
112F0 112F9 Numeric
@@ -1663,6 +1690,7 @@ FFFC Contingent_Break
11A9A 11A9C Break_After
11A9E 11AA0 Break_Before
11AA1 11AA2 Break_After
+11B00 11B09 Break_Before
11C2F 11C36 Combining_Mark
11C38 11C3F Combining_Mark
11C41 11C45 Break_After
@@ -1682,6 +1710,13 @@ FFFC Contingent_Break
11D93 11D97 Combining_Mark
11DA0 11DA9 Numeric
11EF3 11EF6 Combining_Mark
+11F00 11F01 Combining_Mark
+11F03 Combining_Mark
+11F34 11F3A Combining_Mark
+11F3E 11F42 Combining_Mark
+11F43 11F44 Break_After
+11F45 11F4F Ideographic
+11F50 11F59 Numeric
11FDD 11FE0 Postfix_Numeric
11FFF Break_After
12470 12474 Break_After
@@ -1697,10 +1732,18 @@ FFFC Contingent_Break
13430 13436 Glue
13437 Open_Punctuation
13438 Close_Punctuation
+13439 1343B Glue
+1343C Open_Punctuation
+1343D Close_Punctuation
+1343E Open_Punctuation
+1343F Close_Punctuation
+13440 Combining_Mark
+13447 13455 Combining_Mark
145CE Open_Punctuation
145CF Close_Punctuation
16A60 16A69 Numeric
16A6E 16A6F Break_After
+16AC0 16AC9 Numeric
16AF0 16AF4 Combining_Mark
16AF5 Break_After
16B30 16B36 Combining_Mark
@@ -1717,13 +1760,17 @@ FFFC Contingent_Break
17000 187F7 Ideographic
18800 18AFF Ideographic
18D00 18D08 Ideographic
-1B000 1B11E Ideographic
+1B000 1B122 Ideographic
+1B132 Nonstarter
1B150 1B152 Nonstarter
+1B155 Nonstarter
1B164 1B167 Nonstarter
1B170 1B2FB Ideographic
1BC9D 1BC9E Combining_Mark
1BC9F Break_After
1BCA0 1BCA3 Combining_Mark
+1CF00 1CF2D Combining_Mark
+1CF30 1CF46 Combining_Mark
1D165 1D169 Combining_Mark
1D16D 1D182 Combining_Mark
1D185 1D18B Combining_Mark
@@ -1742,23 +1789,49 @@ FFFC Contingent_Break
1E01B 1E021 Combining_Mark
1E023 1E024 Combining_Mark
1E026 1E02A Combining_Mark
+1E08F Combining_Mark
1E130 1E136 Combining_Mark
1E140 1E149 Numeric
+1E2AE Combining_Mark
1E2EC 1E2EF Combining_Mark
1E2F0 1E2F9 Numeric
1E2FF Prefix_Numeric
+1E4EC 1E4EF Combining_Mark
+1E4F0 1E4F9 Numeric
1E8D0 1E8D6 Combining_Mark
1E944 1E94A Combining_Mark
1E950 1E959 Numeric
1E95E 1E95F Open_Punctuation
1ECAC Postfix_Numeric
1ECB0 Postfix_Numeric
-1F000 1F0FF Ideographic
+1F000 1F02B Ideographic
+1F02C 1F02F Unassigned_Extended_Pictographic_Ideographic
+1F030 1F093 Ideographic
+1F094 1F09F Unassigned_Extended_Pictographic_Ideographic
+1F0A0 1F0AE Ideographic
+1F0AF 1F0B0 Unassigned_Extended_Pictographic_Ideographic
+1F0B1 1F0BF Ideographic
+1F0C0 Unassigned_Extended_Pictographic_Ideographic
+1F0C1 1F0CF Ideographic
+1F0D0 Unassigned_Extended_Pictographic_Ideographic
+1F0D1 1F0F5 Ideographic
+1F0F6 1F0FF Unassigned_Extended_Pictographic_Ideographic
1F10D 1F10F Ideographic
1F16D 1F16F Ideographic
-1F1AD 1F1E5 Ideographic
+1F1AD Ideographic
+1F1AE 1F1E5 Unassigned_Extended_Pictographic_Ideographic
1F1E6 1F1FF Regional_Indicator
-1F200 1F384 Ideographic
+1F200 1F202 Ideographic
+1F203 1F20F Unassigned_Extended_Pictographic_Ideographic
+1F210 1F23B Ideographic
+1F23C 1F23F Unassigned_Extended_Pictographic_Ideographic
+1F240 1F248 Ideographic
+1F249 1F24F Unassigned_Extended_Pictographic_Ideographic
+1F250 1F251 Ideographic
+1F252 1F25F Unassigned_Extended_Pictographic_Ideographic
+1F260 1F265 Ideographic
+1F266 1F2FF Unassigned_Extended_Pictographic_Ideographic
+1F300 1F384 Ideographic
1F385 E_Base
1F386 1F39B Ideographic
1F39E 1F3B4 Ideographic
@@ -1821,14 +1894,28 @@ FFFC Contingent_Break
1F6C0 E_Base
1F6C1 1F6CB Ideographic
1F6CC E_Base
-1F6CD 1F6FF Ideographic
-1F774 1F77F Ideographic
-1F7D5 1F7FF Ideographic
-1F80C 1F80F Ideographic
-1F848 1F84F Ideographic
-1F85A 1F85F Ideographic
-1F888 1F88F Ideographic
-1F8AE 1F8FF Ideographic
+1F6CD 1F6D7 Ideographic
+1F6D8 1F6DB Unassigned_Extended_Pictographic_Ideographic
+1F6DC 1F6EC Ideographic
+1F6ED 1F6EF Unassigned_Extended_Pictographic_Ideographic
+1F6F0 1F6FC Ideographic
+1F6FD 1F6FF Unassigned_Extended_Pictographic_Ideographic
+1F774 1F776 Ideographic
+1F777 1F77A Unassigned_Extended_Pictographic_Ideographic
+1F77B 1F77F Ideographic
+1F7D5 1F7D9 Ideographic
+1F7DA 1F7DF Unassigned_Extended_Pictographic_Ideographic
+1F7E0 1F7EB Ideographic
+1F7EC 1F7EF Unassigned_Extended_Pictographic_Ideographic
+1F7F0 Ideographic
+1F7F1 1F7FF Unassigned_Extended_Pictographic_Ideographic
+1F80C 1F80F Unassigned_Extended_Pictographic_Ideographic
+1F848 1F84F Unassigned_Extended_Pictographic_Ideographic
+1F85A 1F85F Unassigned_Extended_Pictographic_Ideographic
+1F888 1F88F Unassigned_Extended_Pictographic_Ideographic
+1F8AE 1F8AF Unassigned_Extended_Pictographic_Ideographic
+1F8B0 1F8B1 Ideographic
+1F8B2 1F8FF Unassigned_Extended_Pictographic_Ideographic
1F90C E_Base
1F90D 1F90E Ideographic
1F90F E_Base
@@ -1853,9 +1940,26 @@ FFFC Contingent_Break
1F9D0 Ideographic
1F9D1 1F9DD E_Base
1F9DE 1F9FF Ideographic
-1FA54 1FAFF Ideographic
+1FA54 1FA5F Unassigned_Extended_Pictographic_Ideographic
+1FA60 1FA6D Ideographic
+1FA6E 1FA6F Unassigned_Extended_Pictographic_Ideographic
+1FA70 1FA7C Ideographic
+1FA7D 1FA7F Unassigned_Extended_Pictographic_Ideographic
+1FA80 1FA88 Ideographic
+1FA89 1FA8F Unassigned_Extended_Pictographic_Ideographic
+1FA90 1FABD Ideographic
+1FABE Unassigned_Extended_Pictographic_Ideographic
+1FABF 1FAC2 Ideographic
+1FAC3 1FAC5 E_Base
+1FAC6 1FACD Unassigned_Extended_Pictographic_Ideographic
+1FACE 1FADB Ideographic
+1FADC 1FADF Unassigned_Extended_Pictographic_Ideographic
+1FAE0 1FAE8 Ideographic
+1FAE9 1FAEF Unassigned_Extended_Pictographic_Ideographic
+1FAF0 1FAF8 E_Base
+1FAF9 1FAFF Unassigned_Extended_Pictographic_Ideographic
1FBF0 1FBF9 Numeric
-1FC00 1FFFD Ideographic
+1FC00 1FFFD Unassigned_Extended_Pictographic_Ideographic
20000 2FFFD Ideographic
30000 3FFFD Ideographic
E0001 Combining_Mark
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl
index 589b67633a..dd5dc29877 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -73,14 +73,14 @@ F8 2B8 Latin
600 604 Arabic
605 Common
606 60B Arabic
-60C Arabic Hanifi_Rohingya Syriac Thaana Yezidi
+60C Arabic Nko Hanifi_Rohingya Syriac Thaana Yezidi
60D 61A Arabic
-61B Arabic Hanifi_Rohingya Syriac Thaana Yezidi
+61B Arabic Nko Hanifi_Rohingya Syriac Thaana Yezidi
61C Arabic Syriac Thaana
-61E Arabic
-61F Arabic Hanifi_Rohingya Syriac Thaana Yezidi
+61D 61E Arabic
+61F Adlam Arabic Nko Hanifi_Rohingya Syriac Thaana Yezidi
620 63F Arabic
-640 Adlam Arabic Mandaic Manichaean Psalter_Pahlavi Hanifi_Rohingya Sogdian Syriac
+640 Adlam Arabic Mandaic Manichaean Old_Uyghur Psalter_Pahlavi Hanifi_Rohingya Sogdian Syriac
641 64A Arabic
64B 655 Arabic Syriac
656 65F Arabic
@@ -104,9 +104,9 @@ F8 2B8 Latin
840 85B Mandaic
85E Mandaic
860 86A Syriac
-8A0 8B4 Arabic
-8B6 8C7 Arabic
-8D3 8E1 Arabic
+870 88E Arabic
+890 891 Arabic
+898 8E1 Arabic
8E2 Common
8E3 8FF Arabic
900 950 Devanagari
@@ -200,11 +200,12 @@ C00 C0C Telugu
C0E C10 Telugu
C12 C28 Telugu
C2A C39 Telugu
-C3D C44 Telugu
+C3C C44 Telugu
C46 C48 Telugu
C4A C4D Telugu
C55 C56 Telugu
C58 C5A Telugu
+C5D Telugu
C60 C63 Telugu
C66 C6F Telugu
C77 C7F Telugu
@@ -217,10 +218,10 @@ CBC CC4 Kannada
CC6 CC8 Kannada
CCA CCD Kannada
CD5 CD6 Kannada
-CDE Kannada
+CDD CDE Kannada
CE0 CE3 Kannada
CE6 CEF Kannada Nandinagari
-CF1 CF2 Kannada
+CF1 CF3 Kannada
D00 D0C Malayalam
D0E D10 Malayalam
D12 D44 Malayalam
@@ -251,7 +252,7 @@ EA5 Lao
EA7 EBD Lao
EC0 EC4 Lao
EC6 Lao
-EC8 ECD Lao
+EC8 ECE Lao
ED0 ED9 Lao
EDC EDF Lao
F00 F47 Tibetan
@@ -297,8 +298,8 @@ FD9 FDA Tibetan
16A0 16EA Runic
16EB 16ED Common
16EE 16F8 Runic
-1700 170C Tagalog
-170E 1714 Tagalog
+1700 1715 Tagalog
+171F Tagalog
1720 1734 Hanunoo
1735 1736 Buhid Hanunoo Tagbanwa Tagalog
1740 1753 Buhid
@@ -312,8 +313,7 @@ FD9 FDA Tibetan
1802 1803 Mongolian Phags_Pa
1804 Mongolian
1805 Mongolian Phags_Pa
-1806 180E Mongolian
-1810 1819 Mongolian
+1806 1819 Mongolian
1820 1878 Mongolian
1880 18AA Mongolian
18B0 18F5 Canadian_Aboriginal
@@ -336,9 +336,9 @@ FD9 FDA Tibetan
1A7F 1A89 Tai_Tham
1A90 1A99 Tai_Tham
1AA0 1AAD Tai_Tham
-1AB0 1AC0 Inherited
-1B00 1B4B Balinese
-1B50 1B7C Balinese
+1AB0 1ACE Inherited
+1B00 1B4C Balinese
+1B50 1B7E Balinese
1B80 1BBF Sundanese
1BC0 1BF3 Batak
1BFC 1BFF Batak
@@ -392,6 +392,7 @@ FD9 FDA Tibetan
1DC2 1DF7 Inherited
1DF8 Cyrillic Syriac
1DF9 Inherited
+1DFA Syriac
1DFB 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
@@ -421,7 +422,7 @@ FD9 FDA Tibetan
207F Latin
2080 208E Common
2090 209C Latin
-20A0 20BF Common
+20A0 20C0 Common
20D0 20EF Inherited
20F0 Devanagari Grantha Latin
2100 2125 Common
@@ -442,8 +443,7 @@ FD9 FDA Tibetan
2900 2B73 Common
2B76 2B95 Common
2B97 2BFF Common
-2C00 2C2E Glagolitic
-2C30 2C5E Glagolitic
+2C00 2C5F Glagolitic
2C60 2C7F Latin
2C80 2CF3 Coptic
2CF9 2CFF Coptic
@@ -465,7 +465,7 @@ FD9 FDA Tibetan
2DE0 2DFF Cyrillic
2E00 2E42 Common
2E43 Cyrillic Glagolitic
-2E44 2E52 Common
+2E44 2E5D Common
2E80 2E99 Han Hanb Jpan Kore
2E9B 2EF3 Han Hanb Jpan Kore
2F00 2FD5 Han Hanb Jpan Kore
@@ -525,7 +525,7 @@ FD9 FDA Tibetan
33FF Common
3400 4DBF Han Hanb Jpan Kore
4DC0 4DFF Common
-4E00 9FFC Han Hanb Jpan Kore
+4E00 9FFF Han Hanb Jpan Kore
A000 A48C Yi
A490 A4C6 Yi
A4D0 A4FF Lisu
@@ -538,9 +538,11 @@ A700 A707 Han Hanb Jpan Kore Latin
A708 A721 Common
A722 A787 Latin
A788 A78A Common
-A78B A7BF Latin
-A7C2 A7CA Latin
-A7F5 A7FF Latin
+A78B A7CA Latin
+A7D0 A7D1 Latin
+A7D3 Latin
+A7D5 A7D9 Latin
+A7F2 A7FF Latin
A800 A82C Syloti_Nagri
A830 A832 Devanagari Dogra Gujarati Gurmukhi Khojki Kannada Kaithi Mahajani Malayalam Modi Nandinagari Khudawadi Takri Tirhuta
A833 A835 Devanagari Dogra Gujarati Gurmukhi Khojki Kannada Kaithi Mahajani Modi Nandinagari Khudawadi Takri Tirhuta
@@ -599,15 +601,17 @@ FB3E Hebrew
FB40 FB41 Hebrew
FB43 FB44 Hebrew
FB46 FB4F Hebrew
-FB50 FBC1 Arabic
+FB50 FBC2 Arabic
FBD3 FD3D Arabic
-FD3E FD3F Common
-FD50 FD8F Arabic
+FD3E FD3F Arabic Nko
+FD40 FD8F Arabic
FD92 FDC7 Arabic
+FDCF Arabic
FDF0 FDF1 Arabic
FDF2 Arabic Thaana
FDF3 FDFC Arabic
FDFD Arabic Thaana
+FDFE FDFF Arabic
FE00 FE0F Inherited
FE10 FE19 Common
FE20 FE2D Inherited
@@ -645,7 +649,8 @@ FFF9 FFFD Common
1003F 1004D Linear_B
10050 1005D Linear_B
10080 100FA Linear_B
-10100 10102 Cypriot Linear_B
+10100 10101 Cypro_Minoan Cypriot Linear_B
+10102 Cypriot Linear_B
10107 10133 Cypriot Linear_A Linear_B
10137 1013F Cypriot Linear_B
10140 1018E Greek
@@ -673,9 +678,20 @@ FFF9 FFFD Common
10500 10527 Elbasan
10530 10563 Caucasian_Albanian
1056F Caucasian_Albanian
+10570 1057A Vithkuqi
+1057C 1058A Vithkuqi
+1058C 10592 Vithkuqi
+10594 10595 Vithkuqi
+10597 105A1 Vithkuqi
+105A3 105B1 Vithkuqi
+105B3 105B9 Vithkuqi
+105BB 105BC Vithkuqi
10600 10736 Linear_A
10740 10755 Linear_A
10760 10767 Linear_A
+10780 10785 Latin
+10787 107B0 Latin
+107B2 107BA Latin
10800 10805 Cypriot
10808 Cypriot
1080A 10835 Cypriot
@@ -709,7 +725,9 @@ FFF9 FFFD Common
10A60 10A7F Old_South_Arabian
10A80 10A9F Old_North_Arabian
10AC0 10AE6 Manichaean
-10AEB 10AF6 Manichaean
+10AEB 10AF1 Manichaean
+10AF2 Manichaean Old_Uyghur
+10AF3 10AF6 Manichaean
10B00 10B35 Avestan
10B39 10B3F Avestan
10B40 10B55 Inscriptional_Parthian
@@ -729,14 +747,16 @@ FFF9 FFFD Common
10E80 10EA9 Yezidi
10EAB 10EAD Yezidi
10EB0 10EB1 Yezidi
+10EFD 10EFF Arabic
10F00 10F27 Old_Sogdian
10F30 10F59 Sogdian
+10F70 10F89 Old_Uyghur
10FB0 10FCB Chorasmian
10FE0 10FF6 Elymaic
11000 1104D Brahmi
-11052 1106F Brahmi
+11052 11075 Brahmi
1107F Brahmi
-11080 110C1 Kaithi
+11080 110C2 Kaithi
110CD Kaithi
110D0 110E8 Sora_Sompeng
110F0 110F9 Sora_Sompeng
@@ -746,7 +766,7 @@ FFF9 FFFD Common
11180 111DF Sharada
111E1 111F4 Sinhala
11200 11211 Khojki
-11213 1123E Khojki
+11213 11241 Khojki
11280 11286 Multani
11288 Multani
1128A 1128D Multani
@@ -782,11 +802,11 @@ FFF9 FFFD Common
11600 11644 Modi
11650 11659 Modi
11660 1166C Mongolian
-11680 116B8 Takri
+11680 116B9 Takri
116C0 116C9 Takri
11700 1171A Ahom
1171D 1172B Ahom
-11730 1173F Ahom
+11730 11746 Ahom
11800 1183B Dogra
118A0 118F2 Warang_Citi
118FF Warang_Citi
@@ -803,7 +823,9 @@ FFF9 FFFD Common
119DA 119E4 Nandinagari
11A00 11A47 Zanabazar_Square
11A50 11AA2 Soyombo
+11AB0 11ABF Canadian_Aboriginal
11AC0 11AF8 Pau_Cin_Hau
+11B00 11B09 Devanagari
11C00 11C08 Bhaiksuki
11C0A 11C36 Bhaiksuki
11C38 11C45 Bhaiksuki
@@ -825,6 +847,9 @@ FFF9 FFFD Common
11D93 11D98 Gunjala_Gondi
11DA0 11DA9 Gunjala_Gondi
11EE0 11EF8 Makasar
+11F00 11F10 Kawi
+11F12 11F3A Kawi
+11F3E 11F59 Kawi
11FB0 Lisu
11FC0 11FCF Tamil
11FD0 11FD1 Grantha Tamil
@@ -836,13 +861,15 @@ FFF9 FFFD Common
12400 1246E Cuneiform
12470 12474 Cuneiform
12480 12543 Cuneiform
-13000 1342E Egyptian_Hieroglyphs
-13430 13438 Egyptian_Hieroglyphs
+12F90 12FF2 Cypro_Minoan
+13000 13455 Egyptian_Hieroglyphs
14400 14646 Anatolian_Hieroglyphs
16800 16A38 Bamum
16A40 16A5E Mro
16A60 16A69 Mro
16A6E 16A6F Mro
+16A70 16ABE Tangsa
+16AC0 16AC9 Tangsa
16AD0 16AED Bassa_Vah
16AF0 16AF5 Bassa_Vah
16B00 16B45 Pahawh_Hmong
@@ -856,16 +883,22 @@ FFF9 FFFD Common
16F8F 16F9F Miao
16FE0 Tangut
16FE1 Nushu
-16FE2 16FE3 Common
+16FE2 16FE3 Han Hanb Jpan Kore
16FE4 Khitan_Small_Script
16FF0 16FF1 Han Hanb Jpan Kore
17000 187F7 Tangut
18800 18AFF Tangut
18B00 18CD5 Khitan_Small_Script
18D00 18D08 Tangut
+1AFF0 1AFF3 Katakana Jpan
+1AFF5 1AFFB Katakana Jpan
+1AFFD 1AFFE Katakana Jpan
1B000 Katakana Jpan
-1B001 1B11E Hiragana Jpan
+1B001 1B11F Hiragana Jpan
+1B120 1B122 Katakana Jpan
+1B132 Hiragana Jpan
1B150 1B152 Hiragana Jpan
+1B155 Katakana Jpan
1B164 1B167 Katakana Jpan
1B170 1B2FB Nushu
1BC00 1BC6A Duployan
@@ -873,6 +906,9 @@ FFF9 FFFD Common
1BC80 1BC88 Duployan
1BC90 1BC99 Duployan
1BC9C 1BCA3 Duployan
+1CF00 1CF2D Inherited
+1CF30 1CF46 Inherited
+1CF50 1CFC3 Common
1D000 1D0F5 Common
1D100 1D126 Common
1D129 1D166 Common
@@ -883,8 +919,9 @@ FFF9 FFFD Common
1D185 1D18B Inherited
1D18C 1D1A9 Common
1D1AA 1D1AD Inherited
-1D1AE 1D1E8 Common
+1D1AE 1D1EA Common
1D200 1D245 Greek
+1D2C0 1D2D3 Common
1D2E0 1D2F3 Common
1D300 1D356 Common
1D360 1D371 Han Hanb Jpan Kore
@@ -913,17 +950,27 @@ FFF9 FFFD Common
1D800 1DA8B SignWriting
1DA9B 1DA9F SignWriting
1DAA1 1DAAF SignWriting
+1DF00 1DF1E Latin
+1DF25 1DF2A Latin
1E000 1E006 Glagolitic
1E008 1E018 Glagolitic
1E01B 1E021 Glagolitic
1E023 1E024 Glagolitic
1E026 1E02A Glagolitic
+1E030 1E06D Cyrillic
+1E08F Cyrillic
1E100 1E12C Nyiakeng_Puachue_Hmong
1E130 1E13D Nyiakeng_Puachue_Hmong
1E140 1E149 Nyiakeng_Puachue_Hmong
1E14E 1E14F Nyiakeng_Puachue_Hmong
+1E290 1E2AE Toto
1E2C0 1E2F9 Wancho
1E2FF Wancho
+1E4D0 1E4F9 Nag_Mundari
+1E7E0 1E7E6 Ethiopic
+1E7E8 1E7EB Ethiopic
+1E7ED 1E7EE Ethiopic
+1E7F0 1E7FE Ethiopic
1E800 1E8C4 Mende_Kikakui
1E8C7 1E8D6 Mende_Kikakui
1E900 1E94B Adlam
@@ -980,38 +1027,38 @@ FFF9 FFFD Common
1F250 1F251 Han Hanb Jpan Kore
1F260 1F265 Common
1F300 1F6D7 Common
-1F6E0 1F6EC Common
+1F6DC 1F6EC Common
1F6F0 1F6FC Common
-1F700 1F773 Common
-1F780 1F7D8 Common
+1F700 1F776 Common
+1F77B 1F7D9 Common
1F7E0 1F7EB Common
+1F7F0 Common
1F800 1F80B Common
1F810 1F847 Common
1F850 1F859 Common
1F860 1F887 Common
1F890 1F8AD Common
1F8B0 1F8B1 Common
-1F900 1F978 Common
-1F97A 1F9CB Common
-1F9CD 1FA53 Common
+1F900 1FA53 Common
1FA60 1FA6D Common
-1FA70 1FA74 Common
-1FA78 1FA7A Common
-1FA80 1FA86 Common
-1FA90 1FAA8 Common
-1FAB0 1FAB6 Common
-1FAC0 1FAC2 Common
-1FAD0 1FAD6 Common
+1FA70 1FA7C Common
+1FA80 1FA88 Common
+1FA90 1FABD Common
+1FABF 1FAC5 Common
+1FACE 1FADB Common
+1FAE0 1FAE8 Common
+1FAF0 1FAF8 Common
1FB00 1FB92 Common
1FB94 1FBCA Common
1FBF0 1FBF9 Common
-20000 2A6DD Han Hanb Jpan Kore
-2A700 2B734 Han Hanb Jpan Kore
+20000 2A6DF Han Hanb Jpan Kore
+2A700 2B739 Han Hanb Jpan Kore
2B740 2B81D Han Hanb Jpan Kore
2B820 2CEA1 Han Hanb Jpan Kore
2CEB0 2EBE0 Han Hanb Jpan Kore
2F800 2FA1D Han Hanb Jpan Kore
30000 3134A Han Hanb Jpan Kore
+31350 323AF Han Hanb Jpan Kore
E0001 Common
E0020 E007F Common
E0100 E01EF Inherited
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl
index 84948a81d2..94943d54c9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -259,7 +259,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'V2
119149
119150',
-'V2
+'V4
+7674
+7675
12330
12331',
'V6
@@ -497,13 +499,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'V2
69759
69760',
-'V6
-2673
-2674
-70199
-70200
-72344
-72345',
'V4
3660
3661
@@ -521,13 +516,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'V2
3976
3981',
-'V6
-3406
-3407
-72001
-72002
-73030
-73031',
+'V2
+6092
+6093',
'V2
6746
6747',
@@ -554,13 +545,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
134
8232
8234',
-'V6
-6155
-6158
-65024
-65040
-917760
-918000',
'V2
34
35',
@@ -653,7 +637,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
42560',
'V2
71424
-71488',
+71504',
'V2
43520
43616',
@@ -661,6 +645,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
4352
4608',
'V2
+73472
+73568',
+'V2
42192
42240',
'V2
@@ -682,6 +669,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
3584
3712',
'V2
+123536
+123584',
+'V2
5120
5760',
'V2
@@ -808,6 +798,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
1792
1872',
'V2
+92784
+92880',
+'V2
94208
100352',
'V2
@@ -856,6 +849,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
196608
201552',
'V2
+201552
+205744',
+'V2
66560
66640',
'V2
@@ -1015,6 +1011,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
110848
110896',
'V2
+110576
+110592',
+'V2
12448
12544',
'V2
@@ -1036,12 +1035,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
11568
11648',
'V2
+72368
+72384',
+'V2
66432
66464',
'V2
7376
7424',
'V2
+66928
+67008',
+'V2
64336
65024',
'V2
@@ -1084,6 +1089,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
43824
43888',
'V2
+67456
+67520',
+'V2
+122624
+122880',
+'V2
3328
3456',
'V2
@@ -1105,6 +1116,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
68608
68688',
'V2
+69488
+69552',
+'V2
67680
67712',
'V2
@@ -1121,7 +1135,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
2160',
'V2
101632
-101776',
+101760',
'V2
128768
128896',
@@ -1129,6 +1143,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
2208
2304',
'V2
+2160
+2208',
+'V2
+69312
+69376',
+'V2
126464
126720',
'V2
@@ -1165,6 +1185,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
11008
11264',
'V2
+124112
+124160',
+'V2
66464
66528',
'V2
@@ -1204,6 +1227,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
119648
119680',
'V2
+77712
+77824',
+'V2
1280
1328',
'V2
@@ -1285,12 +1311,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
7296
7312',
'V2
+122928
+123024',
+'V2
768
880',
'V2
43776
43824',
'V2
+124896
+124928',
+'V2
73056
73136',
'V2
@@ -1348,6 +1380,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
65040
65056',
'V2
+118528
+118736',
+'V2
65936
66000',
'V2
@@ -1360,6 +1395,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
11904
12032',
'V2
+72448
+72544',
+'V2
68864
68928',
'V2
@@ -1435,6 +1473,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
43056
43072',
'V2
+119488
+119520',
+'V2
65664
65792',
'V2
@@ -1547,7 +1588,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
130048',
'V2
78896
-78912',
+78944',
'V6
188
191
@@ -1611,13 +1652,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'V2
1725
1726',
-'V6
-1591
-1593
-1695
-1696
-2211
-2212',
'V2
1836
1837',
@@ -1639,13 +1673,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
1895
2215
2216',
-'V6
-1606
-1607
-1721
-1725
-1895
-1898',
'V2
1833
1834',
@@ -1691,6 +1718,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
1827
1828',
'V2
+2182
+2183',
+'V2
1706
1707',
'V2
@@ -1775,6 +1805,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
68315
68317',
'V2
+2190
+2191',
+'V2
2153
2154',
'V2
@@ -2180,6 +2213,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
42125
42128
42183',
+'V4
+1984
+2043
+2045
+2048',
'V6
125184
125260
@@ -2215,6 +2253,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
11513
11520',
'V2
+77712
+77811',
+'V2
71680
71740',
'V2
@@ -2236,10 +2277,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
70144
70162
70163
-70207',
+70210',
'V4
69760
-69826
+69827
69837
69838',
'V6
@@ -2282,6 +2323,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
72154
72165',
'V2
+69488
+69514',
+'V2
66384
66427',
'V2
@@ -2319,7 +2363,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
6004',
'V4
71296
-71353
+71354
71360
71370',
'V4
@@ -2329,9 +2373,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
6517',
'V4
5888
-5901
-5902
-5909',
+5910
+5919
+5920',
'V2
1920
1970',
@@ -2354,11 +2398,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
92778
92782
92784',
-'V4
-1984
-2043
-2045
-2048',
'V2
42240
42540',
@@ -2373,7 +2412,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
71453
71468
71472
-71488',
+71495',
'V4
67648
67670
@@ -2386,9 +2425,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
68416',
'V4
6912
-6988
+6989
6992
-7037',
+7039',
'V4
42656
42744
@@ -2408,7 +2447,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
69632
69710
69714
-69744
+69750
69759
69760',
'V6
@@ -2423,11 +2462,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
5943
5952
5972',
-'V4
+'V6
5120
5760
6320
-6390',
+6390
+72368
+72384',
'V2
66208
66257',
@@ -2441,6 +2482,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'V2
69552
69580',
+'V4
+65792
+65794
+77712
+77811',
'V6
2404
2416
@@ -2448,11 +2494,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
43066
71680
71740',
-'V4
+'V2
77824
-78895
-78896
-78905',
+78934',
'V2
66816
66856',
@@ -2494,6 +2538,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
43482
43486
43488',
+'V6
+73472
+73489
+73490
+73531
+73534
+73562',
'V4
94180
94181
@@ -2586,6 +2637,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
44014
44016
44026',
+'V2
+124112
+124154',
'V4
67712
67743
@@ -2617,6 +2671,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
66718
66720
66730',
+'V6
+1600
+1601
+68338
+68339
+69488
+69514',
'V2
72384
72441',
@@ -2728,9 +2789,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
11648',
'V6
5888
-5901
-5902
-5909
+5910
+5919
+5920
5941
5943',
'V4
@@ -2739,6 +2800,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
3648
3676',
'V4
+92784
+92863
+92864
+92874',
+'V2
+123536
+123567',
+'V4
66432
66462
66463
@@ -2788,12 +2857,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=11.0' => 'Age/V110',
'age=12' => 'Age/V120',
'age=12.0' => 'Age/V120',
-'age=12.1' => '#/100',
+'age=12.1' => '#/98',
'age=13' => 'Age/V130',
'age=13.0' => 'Age/V130',
+'age=14' => 'Age/V140',
+'age=14.0' => 'Age/V140',
+'age=15' => 'Age/V150',
+'age=15.0' => 'Age/V150',
'age=2' => 'Age/V20',
'age=2.0' => 'Age/V20',
-'age=2.1' => '#/97',
+'age=2.1' => '#/95',
'age=3' => 'Age/V30',
'age=3.0' => 'Age/V30',
'age=3.1' => 'Age/V31',
@@ -2808,8 +2881,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=6' => 'Age/V60',
'age=6.0' => 'Age/V60',
'age=6.1' => 'Age/V61',
-'age=6.2' => '#/98',
-'age=6.3' => '#/99',
+'age=6.2' => '#/96',
+'age=6.3' => '#/97',
'age=7' => 'Age/V70',
'age=7.0' => 'Age/V70',
'age=8' => 'Age/V80',
@@ -2884,6 +2957,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'in=12.1' => 'In/12_1',
'in=13' => 'In/13_0',
'in=13.0' => 'In/13_0',
+'in=14' => 'In/14_0',
+'in=14.0' => 'In/14_0',
+'in=15' => 'In/15_0',
+'in=15.0' => 'In/15_0',
'in=2' => 'In/2_0',
'in=2.0' => 'In/2_0',
'in=2.1' => 'In/2_1',
@@ -2909,148 +2986,148 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'in=8.0' => 'In/8_0',
'in=9' => 'In/9_0',
'in=9.0' => 'In/9_0',
-'nv=-1/2' => '#/562',
+'nv=-1/2' => '#/579',
'nv=0' => 'Nv/0',
'nv=1' => 'Nv/1',
-'nv=1/10' => '#/563',
-'nv=1/12' => '#/564',
+'nv=1/10' => '#/580',
+'nv=1/12' => '#/581',
'nv=1/16' => 'Nv/1_16',
-'nv=1/160' => '#/579',
+'nv=1/160' => '#/596',
'nv=1/2' => 'Nv/1_2',
-'nv=1/20' => '#/565',
+'nv=1/20' => '#/582',
'nv=1/3' => 'Nv/1_3',
-'nv=1/32' => '#/566',
-'nv=1/320' => '#/580',
+'nv=1/32' => '#/583',
+'nv=1/320' => '#/597',
'nv=1/4' => 'Nv/1_4',
-'nv=1/40' => '#/567',
-'nv=1/5' => '#/548',
+'nv=1/40' => '#/584',
+'nv=1/5' => '#/565',
'nv=1/6' => 'Nv/1_6',
-'nv=1/64' => '#/568',
-'nv=1/7' => '#/549',
+'nv=1/64' => '#/585',
+'nv=1/7' => '#/566',
'nv=1/8' => 'Nv/1_8',
-'nv=1/80' => '#/569',
-'nv=1/9' => '#/550',
+'nv=1/80' => '#/586',
+'nv=1/9' => '#/567',
'nv=10' => 'Nv/10',
'nv=100' => 'Nv/100',
'nv=1000' => 'Nv/1000',
'nv=10000' => 'Nv/10000',
'nv=100000' => 'Nv/100000',
-'nv=1000000' => '#/592',
-'nv=10000000' => '#/593',
-'nv=100000000' => '#/595',
-'nv=10000000000' => '#/596',
-'nv=1000000000000' => '#/597',
+'nv=1000000' => '#/609',
+'nv=10000000' => '#/610',
+'nv=100000000' => '#/612',
+'nv=10000000000' => '#/613',
+'nv=1000000000000' => '#/614',
'nv=11' => 'Nv/11',
-'nv=11/12' => '#/581',
-'nv=11/2' => '#/570',
+'nv=11/12' => '#/598',
+'nv=11/2' => '#/587',
'nv=12' => 'Nv/12',
'nv=13' => 'Nv/13',
-'nv=13/2' => '#/571',
+'nv=13/2' => '#/588',
'nv=14' => 'Nv/14',
'nv=15' => 'Nv/15',
-'nv=15/2' => '#/572',
+'nv=15/2' => '#/589',
'nv=16' => 'Nv/16',
'nv=17' => 'Nv/17',
-'nv=17/2' => '#/573',
+'nv=17/2' => '#/590',
'nv=18' => 'Nv/18',
'nv=19' => 'Nv/19',
'nv=2' => 'Nv/2',
'nv=2/3' => 'Nv/2_3',
-'nv=2/5' => '#/551',
+'nv=2/5' => '#/568',
'nv=20' => 'Nv/20',
'nv=200' => 'Nv/200',
'nv=2000' => 'Nv/2000',
'nv=20000' => 'Nv/20000',
-'nv=200000' => '#/582',
-'nv=20000000' => '#/594',
-'nv=21' => '#/521',
-'nv=216000' => '#/583',
-'nv=22' => '#/522',
-'nv=23' => '#/523',
-'nv=24' => '#/524',
-'nv=25' => '#/525',
-'nv=26' => '#/526',
-'nv=27' => '#/527',
-'nv=28' => '#/528',
-'nv=29' => '#/529',
+'nv=200000' => '#/599',
+'nv=20000000' => '#/611',
+'nv=21' => '#/538',
+'nv=216000' => '#/600',
+'nv=22' => '#/539',
+'nv=23' => '#/540',
+'nv=24' => '#/541',
+'nv=25' => '#/542',
+'nv=26' => '#/543',
+'nv=27' => '#/544',
+'nv=28' => '#/545',
+'nv=29' => '#/546',
'nv=3' => 'Nv/3',
'nv=3/16' => 'Nv/3_16',
-'nv=3/2' => '#/552',
-'nv=3/20' => '#/574',
+'nv=3/2' => '#/569',
+'nv=3/20' => '#/591',
'nv=3/4' => 'Nv/3_4',
-'nv=3/5' => '#/553',
-'nv=3/64' => '#/575',
-'nv=3/8' => '#/554',
-'nv=3/80' => '#/576',
+'nv=3/5' => '#/570',
+'nv=3/64' => '#/592',
+'nv=3/8' => '#/571',
+'nv=3/80' => '#/593',
'nv=30' => 'Nv/30',
'nv=300' => 'Nv/300',
'nv=3000' => 'Nv/3000',
'nv=30000' => 'Nv/30000',
-'nv=300000' => '#/584',
-'nv=31' => '#/530',
-'nv=32' => '#/531',
-'nv=33' => '#/532',
-'nv=34' => '#/533',
-'nv=35' => '#/534',
-'nv=36' => '#/535',
-'nv=37' => '#/536',
-'nv=38' => '#/537',
-'nv=39' => '#/538',
+'nv=300000' => '#/601',
+'nv=31' => '#/547',
+'nv=32' => '#/548',
+'nv=33' => '#/549',
+'nv=34' => '#/550',
+'nv=35' => '#/551',
+'nv=36' => '#/552',
+'nv=37' => '#/553',
+'nv=38' => '#/554',
+'nv=39' => '#/555',
'nv=4' => 'Nv/4',
-'nv=4/5' => '#/555',
+'nv=4/5' => '#/572',
'nv=40' => 'Nv/40',
'nv=400' => 'Nv/400',
'nv=4000' => 'Nv/4000',
'nv=40000' => 'Nv/40000',
-'nv=400000' => '#/585',
-'nv=41' => '#/539',
-'nv=42' => '#/540',
-'nv=43' => '#/541',
-'nv=432000' => '#/586',
-'nv=44' => '#/542',
-'nv=45' => '#/543',
-'nv=46' => '#/544',
-'nv=47' => '#/545',
-'nv=48' => '#/546',
-'nv=49' => '#/547',
+'nv=400000' => '#/602',
+'nv=41' => '#/556',
+'nv=42' => '#/557',
+'nv=43' => '#/558',
+'nv=432000' => '#/603',
+'nv=44' => '#/559',
+'nv=45' => '#/560',
+'nv=46' => '#/561',
+'nv=47' => '#/562',
+'nv=48' => '#/563',
+'nv=49' => '#/564',
'nv=5' => 'Nv/5',
-'nv=5/12' => '#/577',
-'nv=5/2' => '#/556',
-'nv=5/6' => '#/557',
-'nv=5/8' => '#/558',
+'nv=5/12' => '#/594',
+'nv=5/2' => '#/573',
+'nv=5/6' => '#/574',
+'nv=5/8' => '#/575',
'nv=50' => 'Nv/50',
'nv=500' => 'Nv/500',
'nv=5000' => 'Nv/5000',
'nv=50000' => 'Nv/50000',
-'nv=500000' => '#/587',
+'nv=500000' => '#/604',
'nv=6' => 'Nv/6',
'nv=60' => 'Nv/60',
'nv=600' => 'Nv/600',
'nv=6000' => 'Nv/6000',
'nv=60000' => 'Nv/60000',
-'nv=600000' => '#/588',
+'nv=600000' => '#/605',
'nv=7' => 'Nv/7',
-'nv=7/12' => '#/578',
-'nv=7/2' => '#/559',
-'nv=7/8' => '#/560',
+'nv=7/12' => '#/595',
+'nv=7/2' => '#/576',
+'nv=7/8' => '#/577',
'nv=70' => 'Nv/70',
'nv=700' => 'Nv/700',
'nv=7000' => 'Nv/7000',
'nv=70000' => 'Nv/70000',
-'nv=700000' => '#/589',
+'nv=700000' => '#/606',
'nv=8' => 'Nv/8',
'nv=80' => 'Nv/80',
'nv=800' => 'Nv/800',
'nv=8000' => 'Nv/8000',
'nv=80000' => 'Nv/80000',
-'nv=800000' => '#/590',
+'nv=800000' => '#/607',
'nv=9' => 'Nv/9',
-'nv=9/2' => '#/561',
+'nv=9/2' => '#/578',
'nv=90' => 'Nv/90',
'nv=900' => 'Nv/900',
'nv=9000' => 'Nv/9000',
'nv=90000' => 'Nv/90000',
-'nv=900000' => '#/591',
+'nv=900000' => '#/608',
);
# Maps property, table to file for those using loose matching. For paths
@@ -3059,17 +3136,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
%Unicode::UCD::loose_to_file_of = (
'adlam' => 'Scx/Adlm',
'adlm' => 'Scx/Adlm',
-'aegeannumbers' => '#/343',
+'aegeannumbers' => '#/357',
'age=na' => 'Age/NA',
'age=unassigned' => 'Age/NA',
'age=v100' => 'Age/V100',
'age=v11' => 'Age/V11',
'age=v110' => 'Age/V110',
'age=v120' => 'Age/V120',
-'age=v121' => '#/100',
+'age=v121' => '#/98',
'age=v130' => 'Age/V130',
+'age=v140' => 'Age/V140',
+'age=v150' => 'Age/V150',
'age=v20' => 'Age/V20',
-'age=v21' => '#/97',
+'age=v21' => '#/95',
'age=v30' => 'Age/V30',
'age=v31' => 'Age/V31',
'age=v32' => 'Age/V32',
@@ -3080,12 +3159,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=v52' => 'Age/V52',
'age=v60' => 'Age/V60',
'age=v61' => 'Age/V61',
-'age=v62' => '#/98',
-'age=v63' => '#/99',
+'age=v62' => '#/96',
+'age=v63' => '#/97',
'age=v70' => 'Age/V70',
'age=v80' => 'Age/V80',
'age=v90' => 'Age/V90',
-'aghb' => '#/635',
+'aghb' => '#/654',
'ahex' => '#/60',
'ahex=f' => '#/!60',
'ahex=false' => '#/!60',
@@ -3095,9 +3174,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ahex=true' => '#/60',
'ahex=y' => '#/60',
'ahex=yes' => '#/60',
-'ahom' => '#/636',
-'alchemical' => '#/277',
-'alchemicalsymbols' => '#/277',
+'ahom' => '#/655',
+'alchemical' => '#/285',
+'alchemicalsymbols' => '#/285',
'all' => '#/1',
'alnum' => 'Perl/Alnum',
'alpha' => 'Alpha/Y',
@@ -3110,46 +3189,50 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'alpha=y' => 'Alpha/Y',
'alpha=yes' => 'Alpha/Y',
'alphabetic' => 'Alpha/Y',
-'alphabeticpf' => '#/326',
-'alphabeticpresentationforms' => '#/326',
-'anatolianhieroglyphs' => '#/657',
-'ancientgreekmusic' => '#/387',
-'ancientgreekmusicalnotation' => '#/387',
-'ancientgreeknumbers' => '#/398',
-'ancientsymbols' => '#/352',
+'alphabeticpf' => '#/338',
+'alphabeticpresentationforms' => '#/338',
+'anatolianhieroglyphs' => '#/677',
+'ancientgreekmusic' => '#/404',
+'ancientgreekmusicalnotation' => '#/404',
+'ancientgreeknumbers' => '#/415',
+'ancientsymbols' => '#/367',
'any' => '#/2',
'arab' => 'Scx/Arab',
'arabic' => 'Scx/Arab',
-'arabicexta' => '#/278',
-'arabicextendeda' => '#/278',
-'arabicmath' => '#/279',
-'arabicmathematicalalphabeticsymbols' => '#/279',
-'arabicpfa' => '#/250',
-'arabicpfb' => '#/251',
-'arabicpresentationformsa' => '#/250',
-'arabicpresentationformsb' => '#/251',
-'arabicsup' => '#/252',
-'arabicsupplement' => '#/252',
+'arabicexta' => '#/286',
+'arabicextb' => '#/287',
+'arabicextc' => '#/288',
+'arabicextendeda' => '#/286',
+'arabicextendedb' => '#/287',
+'arabicextendedc' => '#/288',
+'arabicmath' => '#/289',
+'arabicmathematicalalphabeticsymbols' => '#/289',
+'arabicpfa' => '#/255',
+'arabicpfb' => '#/256',
+'arabicpresentationformsa' => '#/255',
+'arabicpresentationformsb' => '#/256',
+'arabicsup' => '#/257',
+'arabicsupplement' => '#/257',
'armenian' => 'Scx/Armn',
-'armi' => '#/637',
+'armi' => '#/656',
'armn' => 'Scx/Armn',
'arrows' => '#/151',
'ascii' => '#/131',
'asciihexdigit' => '#/60',
'assigned' => 'Perl/Assigned',
-'avestan' => '#/638',
-'avst' => '#/638',
-'bali' => '#/639',
-'balinese' => '#/639',
-'bamu' => '#/640',
-'bamum' => '#/640',
-'bamumsup' => '#/223',
-'bamumsupplement' => '#/223',
+'avestan' => '#/657',
+'avst' => '#/657',
+'bali' => '#/658',
+'balinese' => '#/658',
+'bamu' => '#/659',
+'bamum' => '#/659',
+'bamumsup' => '#/225',
+'bamumsupplement' => '#/225',
'basiclatin' => '#/131',
-'bass' => '#/641',
-'bassavah' => '#/641',
-'batak' => '#/642',
-'batk' => '#/642',
+'bass' => '#/660',
+'bassavah' => '#/660',
+'batak' => '#/661',
+'batk' => '#/661',
'bc=al' => 'Bc/AL',
'bc=an' => 'Bc/AN',
'bc=arabicletter' => 'Bc/AL',
@@ -3165,35 +3248,35 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'bc=europeannumber' => 'Bc/EN',
'bc=europeanseparator' => 'Bc/ES',
'bc=europeanterminator' => 'Bc/ET',
-'bc=firststrongisolate' => '#/102',
-'bc=fsi' => '#/102',
+'bc=firststrongisolate' => '#/100',
+'bc=fsi' => '#/100',
'bc=l' => 'Bc/L',
'bc=lefttoright' => 'Bc/L',
-'bc=lefttorightembedding' => '#/103',
-'bc=lefttorightisolate' => '#/104',
-'bc=lefttorightoverride' => '#/105',
-'bc=lre' => '#/103',
-'bc=lri' => '#/104',
-'bc=lro' => '#/105',
+'bc=lefttorightembedding' => '#/101',
+'bc=lefttorightisolate' => '#/102',
+'bc=lefttorightoverride' => '#/103',
+'bc=lre' => '#/101',
+'bc=lri' => '#/102',
+'bc=lro' => '#/103',
'bc=nonspacingmark' => 'Bc/NSM',
'bc=nsm' => 'Bc/NSM',
'bc=on' => 'Bc/ON',
'bc=otherneutral' => 'Bc/ON',
'bc=paragraphseparator' => 'Bc/B',
-'bc=pdf' => '#/106',
-'bc=pdi' => '#/107',
-'bc=popdirectionalformat' => '#/106',
-'bc=popdirectionalisolate' => '#/107',
+'bc=pdf' => '#/104',
+'bc=pdi' => '#/105',
+'bc=popdirectionalformat' => '#/104',
+'bc=popdirectionalisolate' => '#/105',
'bc=r' => 'Bc/R',
'bc=righttoleft' => 'Bc/R',
-'bc=righttoleftembedding' => '#/108',
-'bc=righttoleftisolate' => '#/109',
-'bc=righttoleftoverride' => '#/110',
-'bc=rle' => '#/108',
-'bc=rli' => '#/109',
-'bc=rlo' => '#/110',
-'bc=s' => '#/101',
-'bc=segmentseparator' => '#/101',
+'bc=righttoleftembedding' => '#/106',
+'bc=righttoleftisolate' => '#/107',
+'bc=righttoleftoverride' => '#/108',
+'bc=rle' => '#/106',
+'bc=rli' => '#/107',
+'bc=rlo' => '#/108',
+'bc=s' => '#/99',
+'bc=segmentseparator' => '#/99',
'bc=whitespace' => 'Bc/WS',
'bc=ws' => 'Bc/WS',
'beng' => 'Scx/Beng',
@@ -3222,473 +3305,503 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'bidimirrored' => 'BidiM/Y',
'blank' => 'Perl/Blank',
'blk=adlam' => '#/132',
-'blk=aegeannumbers' => '#/343',
-'blk=ahom' => '#/120',
-'blk=alchemical' => '#/277',
-'blk=alchemicalsymbols' => '#/277',
-'blk=alphabeticpf' => '#/326',
-'blk=alphabeticpresentationforms' => '#/326',
-'blk=anatolianhieroglyphs' => '#/405',
-'blk=ancientgreekmusic' => '#/387',
-'blk=ancientgreekmusicalnotation' => '#/387',
-'blk=ancientgreeknumbers' => '#/398',
-'blk=ancientsymbols' => '#/352',
+'blk=aegeannumbers' => '#/357',
+'blk=ahom' => '#/118',
+'blk=alchemical' => '#/285',
+'blk=alchemicalsymbols' => '#/285',
+'blk=alphabeticpf' => '#/338',
+'blk=alphabeticpresentationforms' => '#/338',
+'blk=anatolianhieroglyphs' => '#/422',
+'blk=ancientgreekmusic' => '#/404',
+'blk=ancientgreekmusicalnotation' => '#/404',
+'blk=ancientgreeknumbers' => '#/415',
+'blk=ancientsymbols' => '#/367',
'blk=arabic' => '#/150',
-'blk=arabicexta' => '#/278',
-'blk=arabicextendeda' => '#/278',
-'blk=arabicmath' => '#/279',
-'blk=arabicmathematicalalphabeticsymbols' => '#/279',
-'blk=arabicpfa' => '#/250',
-'blk=arabicpfb' => '#/251',
-'blk=arabicpresentationformsa' => '#/250',
-'blk=arabicpresentationformsb' => '#/251',
-'blk=arabicsup' => '#/252',
-'blk=arabicsupplement' => '#/252',
-'blk=armenian' => '#/221',
+'blk=arabicexta' => '#/286',
+'blk=arabicextb' => '#/287',
+'blk=arabicextc' => '#/288',
+'blk=arabicextendeda' => '#/286',
+'blk=arabicextendedb' => '#/287',
+'blk=arabicextendedc' => '#/288',
+'blk=arabicmath' => '#/289',
+'blk=arabicmathematicalalphabeticsymbols' => '#/289',
+'blk=arabicpfa' => '#/255',
+'blk=arabicpfb' => '#/256',
+'blk=arabicpresentationformsa' => '#/255',
+'blk=arabicpresentationformsb' => '#/256',
+'blk=arabicsup' => '#/257',
+'blk=arabicsupplement' => '#/257',
+'blk=armenian' => '#/223',
'blk=arrows' => '#/151',
'blk=ascii' => '#/131',
-'blk=avestan' => '#/178',
-'blk=balinese' => '#/222',
+'blk=avestan' => '#/179',
+'blk=balinese' => '#/224',
'blk=bamum' => '#/133',
-'blk=bamumsup' => '#/223',
-'blk=bamumsupplement' => '#/223',
+'blk=bamumsup' => '#/225',
+'blk=bamumsupplement' => '#/225',
'blk=basiclatin' => '#/131',
-'blk=bassavah' => '#/224',
+'blk=bassavah' => '#/226',
'blk=batak' => '#/134',
-'blk=bengali' => '#/179',
-'blk=bhaiksuki' => '#/253',
-'blk=blockelements' => '#/344',
-'blk=bopomofo' => '#/225',
-'blk=bopomofoext' => '#/301',
-'blk=bopomofoextended' => '#/301',
-'blk=boxdrawing' => '#/280',
+'blk=bengali' => '#/180',
+'blk=bhaiksuki' => '#/258',
+'blk=blockelements' => '#/358',
+'blk=bopomofo' => '#/227',
+'blk=bopomofoext' => '#/312',
+'blk=bopomofoextended' => '#/312',
+'blk=boxdrawing' => '#/290',
'blk=brahmi' => '#/152',
-'blk=braille' => '#/180',
-'blk=braillepatterns' => '#/180',
-'blk=buginese' => '#/226',
+'blk=braille' => '#/181',
+'blk=braillepatterns' => '#/181',
+'blk=buginese' => '#/228',
'blk=buhid' => '#/135',
-'blk=byzantinemusic' => '#/353',
-'blk=byzantinemusicalsymbols' => '#/353',
+'blk=byzantinemusic' => '#/368',
+'blk=byzantinemusicalsymbols' => '#/368',
'blk=canadiansyllabics' => '#/130',
'blk=carian' => '#/153',
-'blk=caucasianalbanian' => '#/388',
+'blk=caucasianalbanian' => '#/405',
'blk=chakma' => '#/154',
-'blk=cham' => '#/121',
-'blk=cherokee' => '#/227',
-'blk=cherokeesup' => '#/302',
-'blk=cherokeesupplement' => '#/302',
-'blk=chesssymbols' => '#/327',
-'blk=chorasmian' => '#/283',
-'blk=cjk' => '#/112',
-'blk=cjkcompat' => '#/254',
-'blk=cjkcompatforms' => '#/354',
-'blk=cjkcompatibility' => '#/254',
-'blk=cjkcompatibilityforms' => '#/354',
-'blk=cjkcompatibilityideographs' => '#/399',
-'blk=cjkcompatibilityideographssupplement' => '#/410',
-'blk=cjkcompatideographs' => '#/399',
-'blk=cjkcompatideographssup' => '#/410',
-'blk=cjkexta' => '#/181',
-'blk=cjkextb' => '#/182',
-'blk=cjkextc' => '#/183',
-'blk=cjkextd' => '#/184',
-'blk=cjkexte' => '#/185',
-'blk=cjkextf' => '#/186',
-'blk=cjkextg' => '#/187',
-'blk=cjkradicalssup' => '#/355',
-'blk=cjkradicalssupplement' => '#/355',
-'blk=cjkstrokes' => '#/281',
-'blk=cjksymbols' => '#/282',
-'blk=cjksymbolsandpunctuation' => '#/282',
-'blk=cjkunifiedideographs' => '#/112',
-'blk=cjkunifiedideographsextensiona' => '#/181',
-'blk=cjkunifiedideographsextensionb' => '#/182',
-'blk=cjkunifiedideographsextensionc' => '#/183',
-'blk=cjkunifiedideographsextensiond' => '#/184',
-'blk=cjkunifiedideographsextensione' => '#/185',
-'blk=cjkunifiedideographsextensionf' => '#/186',
-'blk=cjkunifiedideographsextensiong' => '#/187',
-'blk=combiningdiacriticalmarks' => '#/331',
-'blk=combiningdiacriticalmarksextended' => '#/364',
-'blk=combiningdiacriticalmarksforsymbols' => '#/411',
-'blk=combiningdiacriticalmarkssupplement' => '#/365',
-'blk=combininghalfmarks' => '#/257',
-'blk=combiningmarksforsymbols' => '#/411',
-'blk=commonindicnumberforms' => '#/380',
-'blk=compatjamo' => '#/284',
-'blk=controlpictures' => '#/362',
+'blk=cham' => '#/119',
+'blk=cherokee' => '#/229',
+'blk=cherokeesup' => '#/313',
+'blk=cherokeesupplement' => '#/313',
+'blk=chesssymbols' => '#/339',
+'blk=chorasmian' => '#/293',
+'blk=cjk' => '#/110',
+'blk=cjkcompat' => '#/259',
+'blk=cjkcompatforms' => '#/369',
+'blk=cjkcompatibility' => '#/259',
+'blk=cjkcompatibilityforms' => '#/369',
+'blk=cjkcompatibilityideographs' => '#/416',
+'blk=cjkcompatibilityideographssupplement' => '#/427',
+'blk=cjkcompatideographs' => '#/416',
+'blk=cjkcompatideographssup' => '#/427',
+'blk=cjkexta' => '#/182',
+'blk=cjkextb' => '#/183',
+'blk=cjkextc' => '#/184',
+'blk=cjkextd' => '#/185',
+'blk=cjkexte' => '#/186',
+'blk=cjkextf' => '#/187',
+'blk=cjkextg' => '#/188',
+'blk=cjkexth' => '#/189',
+'blk=cjkradicalssup' => '#/370',
+'blk=cjkradicalssupplement' => '#/370',
+'blk=cjkstrokes' => '#/291',
+'blk=cjksymbols' => '#/292',
+'blk=cjksymbolsandpunctuation' => '#/292',
+'blk=cjkunifiedideographs' => '#/110',
+'blk=cjkunifiedideographsextensiona' => '#/182',
+'blk=cjkunifiedideographsextensionb' => '#/183',
+'blk=cjkunifiedideographsextensionc' => '#/184',
+'blk=cjkunifiedideographsextensiond' => '#/185',
+'blk=cjkunifiedideographsextensione' => '#/186',
+'blk=cjkunifiedideographsextensionf' => '#/187',
+'blk=cjkunifiedideographsextensiong' => '#/188',
+'blk=cjkunifiedideographsextensionh' => '#/189',
+'blk=combiningdiacriticalmarks' => '#/344',
+'blk=combiningdiacriticalmarksextended' => '#/380',
+'blk=combiningdiacriticalmarksforsymbols' => '#/428',
+'blk=combiningdiacriticalmarkssupplement' => '#/381',
+'blk=combininghalfmarks' => '#/262',
+'blk=combiningmarksforsymbols' => '#/428',
+'blk=commonindicnumberforms' => '#/396',
+'blk=compatjamo' => '#/294',
+'blk=controlpictures' => '#/378',
'blk=coptic' => '#/155',
-'blk=copticepactnumbers' => '#/393',
-'blk=countingrod' => '#/303',
-'blk=countingrodnumerals' => '#/303',
-'blk=cuneiform' => '#/255',
-'blk=cuneiformnumbers' => '#/375',
-'blk=cuneiformnumbersandpunctuation' => '#/375',
-'blk=currencysymbols' => '#/363',
-'blk=cypriotsyllabary' => '#/376',
-'blk=cyrillic' => '#/228',
-'blk=cyrillicexta' => '#/328',
-'blk=cyrillicextb' => '#/329',
-'blk=cyrillicextc' => '#/330',
-'blk=cyrillicextendeda' => '#/328',
-'blk=cyrillicextendedb' => '#/329',
-'blk=cyrillicextendedc' => '#/330',
-'blk=cyrillicsup' => '#/304',
-'blk=cyrillicsupplement' => '#/304',
-'blk=cyrillicsupplementary' => '#/304',
-'blk=deseret' => '#/188',
-'blk=devanagari' => '#/285',
-'blk=devanagariext' => '#/345',
-'blk=devanagariextended' => '#/345',
-'blk=diacriticals' => '#/331',
-'blk=diacriticalsext' => '#/364',
-'blk=diacriticalsforsymbols' => '#/411',
-'blk=diacriticalssup' => '#/365',
-'blk=dingbats' => '#/229',
-'blk=divesakuru' => '#/286',
+'blk=copticepactnumbers' => '#/410',
+'blk=countingrod' => '#/314',
+'blk=countingrodnumerals' => '#/314',
+'blk=cuneiform' => '#/260',
+'blk=cuneiformnumbers' => '#/391',
+'blk=cuneiformnumbersandpunctuation' => '#/391',
+'blk=currencysymbols' => '#/379',
+'blk=cypriotsyllabary' => '#/392',
+'blk=cyprominoan' => '#/315',
+'blk=cyrillic' => '#/230',
+'blk=cyrillicexta' => '#/340',
+'blk=cyrillicextb' => '#/341',
+'blk=cyrillicextc' => '#/342',
+'blk=cyrillicextd' => '#/343',
+'blk=cyrillicextendeda' => '#/340',
+'blk=cyrillicextendedb' => '#/341',
+'blk=cyrillicextendedc' => '#/342',
+'blk=cyrillicextendedd' => '#/343',
+'blk=cyrillicsup' => '#/316',
+'blk=cyrillicsupplement' => '#/316',
+'blk=cyrillicsupplementary' => '#/316',
+'blk=deseret' => '#/190',
+'blk=devanagari' => '#/295',
+'blk=devanagariext' => '#/359',
+'blk=devanagariexta' => '#/371',
+'blk=devanagariextended' => '#/359',
+'blk=devanagariextendeda' => '#/371',
+'blk=diacriticals' => '#/344',
+'blk=diacriticalsext' => '#/380',
+'blk=diacriticalsforsymbols' => '#/428',
+'blk=diacriticalssup' => '#/381',
+'blk=dingbats' => '#/231',
+'blk=divesakuru' => '#/296',
'blk=dogra' => '#/136',
'blk=domino' => '#/156',
'blk=dominotiles' => '#/156',
-'blk=duployan' => '#/230',
-'blk=earlydynasticcuneiform' => '#/412',
-'blk=egyptianhieroglyphformatcontrols' => '#/418',
-'blk=egyptianhieroglyphs' => '#/400',
-'blk=elbasan' => '#/189',
-'blk=elymaic' => '#/190',
-'blk=emoticons' => '#/256',
-'blk=enclosedalphanum' => '#/377',
-'blk=enclosedalphanumerics' => '#/377',
-'blk=enclosedalphanumericsupplement' => '#/401',
-'blk=enclosedalphanumsup' => '#/401',
-'blk=enclosedcjk' => '#/305',
-'blk=enclosedcjklettersandmonths' => '#/305',
-'blk=enclosedideographicsup' => '#/413',
-'blk=enclosedideographicsupplement' => '#/413',
-'blk=ethiopic' => '#/231',
-'blk=ethiopicext' => '#/306',
-'blk=ethiopicexta' => '#/332',
-'blk=ethiopicextended' => '#/306',
-'blk=ethiopicextendeda' => '#/332',
-'blk=ethiopicsup' => '#/307',
-'blk=ethiopicsupplement' => '#/307',
-'blk=generalpunctuation' => '#/320',
-'blk=geometricshapes' => '#/366',
-'blk=geometricshapesext' => '#/394',
-'blk=geometricshapesextended' => '#/394',
-'blk=georgian' => '#/232',
-'blk=georgianext' => '#/308',
-'blk=georgianextended' => '#/308',
-'blk=georgiansup' => '#/309',
-'blk=georgiansupplement' => '#/309',
-'blk=glagolitic' => '#/287',
-'blk=glagoliticsup' => '#/346',
-'blk=glagoliticsupplement' => '#/346',
+'blk=duployan' => '#/232',
+'blk=earlydynasticcuneiform' => '#/429',
+'blk=egyptianhieroglyphformatcontrols' => '#/435',
+'blk=egyptianhieroglyphs' => '#/417',
+'blk=elbasan' => '#/191',
+'blk=elymaic' => '#/192',
+'blk=emoticons' => '#/261',
+'blk=enclosedalphanum' => '#/393',
+'blk=enclosedalphanumerics' => '#/393',
+'blk=enclosedalphanumericsupplement' => '#/418',
+'blk=enclosedalphanumsup' => '#/418',
+'blk=enclosedcjk' => '#/317',
+'blk=enclosedcjklettersandmonths' => '#/317',
+'blk=enclosedideographicsup' => '#/430',
+'blk=enclosedideographicsupplement' => '#/430',
+'blk=ethiopic' => '#/233',
+'blk=ethiopicext' => '#/318',
+'blk=ethiopicexta' => '#/345',
+'blk=ethiopicextb' => '#/346',
+'blk=ethiopicextended' => '#/318',
+'blk=ethiopicextendeda' => '#/345',
+'blk=ethiopicextendedb' => '#/346',
+'blk=ethiopicsup' => '#/319',
+'blk=ethiopicsupplement' => '#/319',
+'blk=generalpunctuation' => '#/332',
+'blk=geometricshapes' => '#/382',
+'blk=geometricshapesext' => '#/411',
+'blk=geometricshapesextended' => '#/411',
+'blk=georgian' => '#/234',
+'blk=georgianext' => '#/320',
+'blk=georgianextended' => '#/320',
+'blk=georgiansup' => '#/321',
+'blk=georgiansupplement' => '#/321',
+'blk=glagolitic' => '#/297',
+'blk=glagoliticsup' => '#/360',
+'blk=glagoliticsupplement' => '#/360',
'blk=gothic' => '#/157',
-'blk=grantha' => '#/191',
+'blk=grantha' => '#/193',
'blk=greek' => '#/137',
'blk=greekandcoptic' => '#/137',
-'blk=greekext' => '#/233',
-'blk=greekextended' => '#/233',
-'blk=gujarati' => '#/234',
-'blk=gunjalagondi' => '#/333',
-'blk=gurmukhi' => '#/235',
-'blk=halfandfullforms' => '#/378',
-'blk=halfmarks' => '#/257',
-'blk=halfwidthandfullwidthforms' => '#/378',
+'blk=greekext' => '#/235',
+'blk=greekextended' => '#/235',
+'blk=gujarati' => '#/236',
+'blk=gunjalagondi' => '#/347',
+'blk=gurmukhi' => '#/237',
+'blk=halfandfullforms' => '#/394',
+'blk=halfmarks' => '#/262',
+'blk=halfwidthandfullwidthforms' => '#/394',
'blk=hangul' => '#/158',
-'blk=hangulcompatibilityjamo' => '#/284',
-'blk=hanguljamo' => '#/122',
-'blk=hanguljamoextendeda' => '#/237',
-'blk=hanguljamoextendedb' => '#/238',
+'blk=hangulcompatibilityjamo' => '#/294',
+'blk=hanguljamo' => '#/120',
+'blk=hanguljamoextendeda' => '#/239',
+'blk=hanguljamoextendedb' => '#/240',
'blk=hangulsyllables' => '#/158',
-'blk=hanifirohingya' => '#/356',
-'blk=hanunoo' => '#/192',
+'blk=hanifirohingya' => '#/372',
+'blk=hanunoo' => '#/194',
'blk=hatran' => '#/159',
'blk=hebrew' => '#/160',
-'blk=highprivateusesurrogates' => '#/379',
-'blk=highpusurrogates' => '#/379',
-'blk=highsurrogates' => '#/357',
-'blk=hiragana' => '#/236',
-'blk=idc' => '#/113',
-'blk=ideographicdescriptioncharacters' => '#/113',
-'blk=ideographicsymbols' => '#/395',
-'blk=ideographicsymbolsandpunctuation' => '#/395',
-'blk=imperialaramaic' => '#/367',
-'blk=indicnumberforms' => '#/380',
-'blk=indicsiyaqnumbers' => '#/389',
-'blk=inscriptionalpahlavi' => '#/406',
-'blk=inscriptionalparthian' => '#/408',
+'blk=highprivateusesurrogates' => '#/395',
+'blk=highpusurrogates' => '#/395',
+'blk=highsurrogates' => '#/373',
+'blk=hiragana' => '#/238',
+'blk=idc' => '#/111',
+'blk=ideographicdescriptioncharacters' => '#/111',
+'blk=ideographicsymbols' => '#/412',
+'blk=ideographicsymbolsandpunctuation' => '#/412',
+'blk=imperialaramaic' => '#/383',
+'blk=indicnumberforms' => '#/396',
+'blk=indicsiyaqnumbers' => '#/406',
+'blk=inscriptionalpahlavi' => '#/423',
+'blk=inscriptionalparthian' => '#/425',
'blk=ipaext' => '#/161',
'blk=ipaextensions' => '#/161',
-'blk=jamo' => '#/122',
-'blk=jamoexta' => '#/237',
-'blk=jamoextb' => '#/238',
-'blk=javanese' => '#/239',
+'blk=jamo' => '#/120',
+'blk=jamoexta' => '#/239',
+'blk=jamoextb' => '#/240',
+'blk=javanese' => '#/241',
'blk=kaithi' => '#/162',
-'blk=kanaexta' => '#/240',
-'blk=kanaextendeda' => '#/240',
-'blk=kanasup' => '#/193',
-'blk=kanasupplement' => '#/193',
+'blk=kaktoviknumerals' => '#/397',
+'blk=kanaexta' => '#/242',
+'blk=kanaextb' => '#/243',
+'blk=kanaextendeda' => '#/242',
+'blk=kanaextendedb' => '#/243',
+'blk=kanasup' => '#/195',
+'blk=kanasupplement' => '#/195',
'blk=kanbun' => '#/163',
'blk=kangxi' => '#/164',
'blk=kangxiradicals' => '#/164',
-'blk=kannada' => '#/194',
-'blk=katakana' => '#/241',
-'blk=katakanaext' => '#/310',
-'blk=katakanaphoneticextensions' => '#/310',
-'blk=kayahli' => '#/195',
-'blk=kharoshthi' => '#/288',
-'blk=khitansmallscript' => '#/390',
+'blk=kannada' => '#/196',
+'blk=katakana' => '#/244',
+'blk=katakanaext' => '#/322',
+'blk=katakanaphoneticextensions' => '#/322',
+'blk=kawi' => '#/121',
+'blk=kayahli' => '#/197',
+'blk=kharoshthi' => '#/298',
+'blk=khitansmallscript' => '#/407',
'blk=khmer' => '#/138',
-'blk=khmersymbols' => '#/334',
+'blk=khmersymbols' => '#/348',
'blk=khojki' => '#/165',
-'blk=khudawadi' => '#/258',
-'blk=lao' => '#/114',
+'blk=khudawadi' => '#/263',
+'blk=lao' => '#/112',
'blk=latin1' => '#/166',
'blk=latin1sup' => '#/166',
'blk=latin1supplement' => '#/166',
-'blk=latinexta' => '#/259',
-'blk=latinextadditional' => '#/396',
-'blk=latinextb' => '#/260',
-'blk=latinextc' => '#/261',
-'blk=latinextd' => '#/262',
-'blk=latinexte' => '#/263',
-'blk=latinextendeda' => '#/259',
-'blk=latinextendedadditional' => '#/396',
-'blk=latinextendedb' => '#/260',
-'blk=latinextendedc' => '#/261',
-'blk=latinextendedd' => '#/262',
-'blk=latinextendede' => '#/263',
+'blk=latinexta' => '#/264',
+'blk=latinextadditional' => '#/413',
+'blk=latinextb' => '#/265',
+'blk=latinextc' => '#/266',
+'blk=latinextd' => '#/267',
+'blk=latinexte' => '#/268',
+'blk=latinextendeda' => '#/264',
+'blk=latinextendedadditional' => '#/413',
+'blk=latinextendedb' => '#/265',
+'blk=latinextendedc' => '#/266',
+'blk=latinextendedd' => '#/267',
+'blk=latinextendede' => '#/268',
+'blk=latinextendedf' => '#/269',
+'blk=latinextendedg' => '#/270',
+'blk=latinextf' => '#/269',
+'blk=latinextg' => '#/270',
'blk=lepcha' => '#/167',
-'blk=letterlikesymbols' => '#/391',
+'blk=letterlikesymbols' => '#/408',
'blk=limbu' => '#/139',
-'blk=lineara' => '#/196',
-'blk=linearbideograms' => '#/381',
-'blk=linearbsyllabary' => '#/382',
-'blk=lisu' => '#/123',
-'blk=lisusup' => '#/197',
-'blk=lisusupplement' => '#/197',
-'blk=lowsurrogates' => '#/347',
+'blk=lineara' => '#/198',
+'blk=linearbideograms' => '#/398',
+'blk=linearbsyllabary' => '#/399',
+'blk=lisu' => '#/122',
+'blk=lisusup' => '#/199',
+'blk=lisusupplement' => '#/199',
+'blk=lowsurrogates' => '#/361',
'blk=lycian' => '#/168',
'blk=lydian' => '#/169',
-'blk=mahajani' => '#/242',
-'blk=mahjong' => '#/198',
-'blk=mahjongtiles' => '#/198',
-'blk=makasar' => '#/199',
-'blk=malayalam' => '#/264',
-'blk=mandaic' => '#/200',
-'blk=manichaean' => '#/289',
-'blk=marchen' => '#/201',
-'blk=masaramgondi' => '#/335',
-'blk=mathalphanum' => '#/336',
-'blk=mathematicalalphanumericsymbols' => '#/336',
-'blk=mathematicaloperators' => '#/348',
-'blk=mathoperators' => '#/348',
-'blk=mayannumerals' => '#/349',
-'blk=medefaidrin' => '#/311',
-'blk=meeteimayek' => '#/312',
-'blk=meeteimayekext' => '#/358',
-'blk=meeteimayekextensions' => '#/358',
-'blk=mendekikakui' => '#/337',
-'blk=meroiticcursive' => '#/368',
-'blk=meroitichieroglyphs' => '#/402',
-'blk=miao' => '#/124',
-'blk=miscarrows' => '#/290',
-'blk=miscellaneousmathematicalsymbolsa' => '#/383',
-'blk=miscellaneousmathematicalsymbolsb' => '#/384',
-'blk=miscellaneoussymbols' => '#/313',
-'blk=miscellaneoussymbolsandarrows' => '#/290',
-'blk=miscellaneoussymbolsandpictographs' => '#/369',
-'blk=miscellaneoustechnical' => '#/350',
-'blk=miscmathsymbolsa' => '#/383',
-'blk=miscmathsymbolsb' => '#/384',
-'blk=miscpictographs' => '#/369',
-'blk=miscsymbols' => '#/313',
-'blk=misctechnical' => '#/350',
-'blk=modi' => '#/125',
-'blk=modifierletters' => '#/370',
-'blk=modifiertoneletters' => '#/403',
-'blk=mongolian' => '#/265',
-'blk=mongoliansup' => '#/338',
-'blk=mongoliansupplement' => '#/338',
-'blk=mro' => '#/115',
-'blk=multani' => '#/202',
+'blk=mahajani' => '#/245',
+'blk=mahjong' => '#/200',
+'blk=mahjongtiles' => '#/200',
+'blk=makasar' => '#/201',
+'blk=malayalam' => '#/271',
+'blk=mandaic' => '#/202',
+'blk=manichaean' => '#/299',
+'blk=marchen' => '#/203',
+'blk=masaramgondi' => '#/349',
+'blk=mathalphanum' => '#/350',
+'blk=mathematicalalphanumericsymbols' => '#/350',
+'blk=mathematicaloperators' => '#/362',
+'blk=mathoperators' => '#/362',
+'blk=mayannumerals' => '#/363',
+'blk=medefaidrin' => '#/323',
+'blk=meeteimayek' => '#/324',
+'blk=meeteimayekext' => '#/374',
+'blk=meeteimayekextensions' => '#/374',
+'blk=mendekikakui' => '#/351',
+'blk=meroiticcursive' => '#/384',
+'blk=meroitichieroglyphs' => '#/419',
+'blk=miao' => '#/123',
+'blk=miscarrows' => '#/300',
+'blk=miscellaneousmathematicalsymbolsa' => '#/400',
+'blk=miscellaneousmathematicalsymbolsb' => '#/401',
+'blk=miscellaneoussymbols' => '#/325',
+'blk=miscellaneoussymbolsandarrows' => '#/300',
+'blk=miscellaneoussymbolsandpictographs' => '#/385',
+'blk=miscellaneoustechnical' => '#/364',
+'blk=miscmathsymbolsa' => '#/400',
+'blk=miscmathsymbolsb' => '#/401',
+'blk=miscpictographs' => '#/385',
+'blk=miscsymbols' => '#/325',
+'blk=misctechnical' => '#/364',
+'blk=modi' => '#/124',
+'blk=modifierletters' => '#/386',
+'blk=modifiertoneletters' => '#/420',
+'blk=mongolian' => '#/272',
+'blk=mongoliansup' => '#/352',
+'blk=mongoliansupplement' => '#/352',
+'blk=mro' => '#/113',
+'blk=multani' => '#/204',
'blk=music' => '#/140',
'blk=musicalsymbols' => '#/140',
-'blk=myanmar' => '#/203',
-'blk=myanmarexta' => '#/314',
-'blk=myanmarextb' => '#/315',
-'blk=myanmarextendeda' => '#/314',
-'blk=myanmarextendedb' => '#/315',
-'blk=nabataean' => '#/266',
-'blk=nandinagari' => '#/316',
+'blk=myanmar' => '#/205',
+'blk=myanmarexta' => '#/326',
+'blk=myanmarextb' => '#/327',
+'blk=myanmarextendeda' => '#/326',
+'blk=myanmarextendedb' => '#/327',
+'blk=nabataean' => '#/273',
+'blk=nagmundari' => '#/301',
+'blk=nandinagari' => '#/328',
'blk=nb' => 'Blk/NB',
-'blk=newa' => '#/126',
-'blk=newtailue' => '#/267',
-'blk=nko' => '#/116',
+'blk=newa' => '#/125',
+'blk=newtailue' => '#/274',
+'blk=nko' => '#/114',
'blk=noblock' => 'Blk/NB',
-'blk=numberforms' => '#/317',
+'blk=numberforms' => '#/329',
'blk=nushu' => '#/141',
-'blk=nyiakengpuachuehmong' => '#/407',
-'blk=ocr' => '#/117',
+'blk=nyiakengpuachuehmong' => '#/424',
+'blk=ocr' => '#/115',
'blk=ogham' => '#/142',
-'blk=olchiki' => '#/204',
-'blk=oldhungarian' => '#/339',
-'blk=olditalic' => '#/268',
-'blk=oldnortharabian' => '#/371',
-'blk=oldpermic' => '#/269',
-'blk=oldpersian' => '#/291',
-'blk=oldsogdian' => '#/292',
-'blk=oldsoutharabian' => '#/372',
-'blk=oldturkic' => '#/270',
-'blk=opticalcharacterrecognition' => '#/117',
+'blk=olchiki' => '#/206',
+'blk=oldhungarian' => '#/353',
+'blk=olditalic' => '#/275',
+'blk=oldnortharabian' => '#/387',
+'blk=oldpermic' => '#/276',
+'blk=oldpersian' => '#/302',
+'blk=oldsogdian' => '#/303',
+'blk=oldsoutharabian' => '#/388',
+'blk=oldturkic' => '#/277',
+'blk=olduyghur' => '#/278',
+'blk=opticalcharacterrecognition' => '#/115',
'blk=oriya' => '#/143',
-'blk=ornamentaldingbats' => '#/397',
+'blk=ornamentaldingbats' => '#/414',
'blk=osage' => '#/144',
-'blk=osmanya' => '#/205',
-'blk=ottomansiyaqnumbers' => '#/404',
-'blk=pahawhhmong' => '#/318',
-'blk=palmyrene' => '#/271',
-'blk=paucinhau' => '#/272',
-'blk=phagspa' => '#/206',
-'blk=phaistos' => '#/243',
-'blk=phaistosdisc' => '#/243',
-'blk=phoenician' => '#/293',
-'blk=phoneticext' => '#/319',
-'blk=phoneticextensions' => '#/319',
-'blk=phoneticextensionssupplement' => '#/359',
-'blk=phoneticextsup' => '#/359',
-'blk=playingcards' => '#/340',
-'blk=privateuse' => '#/118',
-'blk=privateusearea' => '#/118',
-'blk=psalterpahlavi' => '#/360',
-'blk=pua' => '#/118',
-'blk=punctuation' => '#/320',
+'blk=osmanya' => '#/207',
+'blk=ottomansiyaqnumbers' => '#/421',
+'blk=pahawhhmong' => '#/330',
+'blk=palmyrene' => '#/279',
+'blk=paucinhau' => '#/280',
+'blk=phagspa' => '#/208',
+'blk=phaistos' => '#/246',
+'blk=phaistosdisc' => '#/246',
+'blk=phoenician' => '#/304',
+'blk=phoneticext' => '#/331',
+'blk=phoneticextensions' => '#/331',
+'blk=phoneticextensionssupplement' => '#/375',
+'blk=phoneticextsup' => '#/375',
+'blk=playingcards' => '#/354',
+'blk=privateuse' => '#/116',
+'blk=privateusearea' => '#/116',
+'blk=psalterpahlavi' => '#/376',
+'blk=pua' => '#/116',
+'blk=punctuation' => '#/332',
'blk=rejang' => '#/170',
-'blk=rumi' => '#/127',
-'blk=ruminumeralsymbols' => '#/127',
+'blk=rumi' => '#/126',
+'blk=ruminumeralsymbols' => '#/126',
'blk=runic' => '#/145',
-'blk=samaritan' => '#/273',
-'blk=saurashtra' => '#/294',
-'blk=sharada' => '#/207',
-'blk=shavian' => '#/208',
-'blk=shorthandformatcontrols' => '#/414',
-'blk=siddham' => '#/209',
-'blk=sinhala' => '#/210',
-'blk=sinhalaarchaicnumbers' => '#/409',
-'blk=smallforms' => '#/295',
-'blk=smallformvariants' => '#/295',
-'blk=smallkanaext' => '#/341',
-'blk=smallkanaextension' => '#/341',
-'blk=sogdian' => '#/211',
-'blk=sorasompeng' => '#/321',
-'blk=soyombo' => '#/212',
-'blk=spacingmodifierletters' => '#/370',
-'blk=specials' => '#/244',
-'blk=sundanese' => '#/274',
-'blk=sundanesesup' => '#/342',
-'blk=sundanesesupplement' => '#/342',
-'blk=suparrowsa' => '#/296',
-'blk=suparrowsb' => '#/297',
-'blk=suparrowsc' => '#/298',
-'blk=superandsub' => '#/322',
-'blk=superscriptsandsubscripts' => '#/322',
-'blk=supmathoperators' => '#/385',
-'blk=supplementalarrowsa' => '#/296',
-'blk=supplementalarrowsb' => '#/297',
-'blk=supplementalarrowsc' => '#/298',
-'blk=supplementalmathematicaloperators' => '#/385',
-'blk=supplementalpunctuation' => '#/361',
-'blk=supplementalsymbolsandpictographs' => '#/415',
-'blk=supplementaryprivateuseareaa' => '#/213',
-'blk=supplementaryprivateuseareab' => '#/214',
-'blk=suppuaa' => '#/213',
-'blk=suppuab' => '#/214',
-'blk=suppunctuation' => '#/361',
-'blk=supsymbolsandpictographs' => '#/415',
-'blk=suttonsignwriting' => '#/392',
-'blk=sylotinagri' => '#/323',
-'blk=symbolsandpictographsexta' => '#/416',
-'blk=symbolsandpictographsextendeda' => '#/416',
-'blk=symbolsforlegacycomputing' => '#/417',
+'blk=samaritan' => '#/281',
+'blk=saurashtra' => '#/305',
+'blk=sharada' => '#/209',
+'blk=shavian' => '#/210',
+'blk=shorthandformatcontrols' => '#/431',
+'blk=siddham' => '#/211',
+'blk=sinhala' => '#/212',
+'blk=sinhalaarchaicnumbers' => '#/426',
+'blk=smallforms' => '#/306',
+'blk=smallformvariants' => '#/306',
+'blk=smallkanaext' => '#/355',
+'blk=smallkanaextension' => '#/355',
+'blk=sogdian' => '#/213',
+'blk=sorasompeng' => '#/333',
+'blk=soyombo' => '#/214',
+'blk=spacingmodifierletters' => '#/386',
+'blk=specials' => '#/247',
+'blk=sundanese' => '#/282',
+'blk=sundanesesup' => '#/356',
+'blk=sundanesesupplement' => '#/356',
+'blk=suparrowsa' => '#/307',
+'blk=suparrowsb' => '#/308',
+'blk=suparrowsc' => '#/309',
+'blk=superandsub' => '#/334',
+'blk=superscriptsandsubscripts' => '#/334',
+'blk=supmathoperators' => '#/402',
+'blk=supplementalarrowsa' => '#/307',
+'blk=supplementalarrowsb' => '#/308',
+'blk=supplementalarrowsc' => '#/309',
+'blk=supplementalmathematicaloperators' => '#/402',
+'blk=supplementalpunctuation' => '#/377',
+'blk=supplementalsymbolsandpictographs' => '#/432',
+'blk=supplementaryprivateuseareaa' => '#/215',
+'blk=supplementaryprivateuseareab' => '#/216',
+'blk=suppuaa' => '#/215',
+'blk=suppuab' => '#/216',
+'blk=suppunctuation' => '#/377',
+'blk=supsymbolsandpictographs' => '#/432',
+'blk=suttonsignwriting' => '#/409',
+'blk=sylotinagri' => '#/335',
+'blk=symbolsandpictographsexta' => '#/433',
+'blk=symbolsandpictographsextendeda' => '#/433',
+'blk=symbolsforlegacycomputing' => '#/434',
'blk=syriac' => '#/171',
-'blk=syriacsup' => '#/275',
-'blk=syriacsupplement' => '#/275',
-'blk=tagalog' => '#/215',
-'blk=tagbanwa' => '#/245',
-'blk=tags' => '#/128',
+'blk=syriacsup' => '#/283',
+'blk=syriacsupplement' => '#/283',
+'blk=tagalog' => '#/217',
+'blk=tagbanwa' => '#/248',
+'blk=tags' => '#/127',
'blk=taile' => '#/146',
-'blk=taitham' => '#/216',
-'blk=taiviet' => '#/217',
-'blk=taixuanjing' => '#/324',
-'blk=taixuanjingsymbols' => '#/324',
+'blk=taitham' => '#/218',
+'blk=taiviet' => '#/219',
+'blk=taixuanjing' => '#/336',
+'blk=taixuanjingsymbols' => '#/336',
'blk=takri' => '#/147',
'blk=tamil' => '#/148',
-'blk=tamilsup' => '#/246',
-'blk=tamilsupplement' => '#/246',
-'blk=tangut' => '#/172',
-'blk=tangutcomponents' => '#/386',
-'blk=tangutsup' => '#/276',
-'blk=tangutsupplement' => '#/276',
-'blk=telugu' => '#/173',
-'blk=thaana' => '#/174',
-'blk=thai' => '#/129',
-'blk=tibetan' => '#/218',
-'blk=tifinagh' => '#/247',
-'blk=tirhuta' => '#/219',
-'blk=transportandmap' => '#/373',
-'blk=transportandmapsymbols' => '#/373',
+'blk=tamilsup' => '#/249',
+'blk=tamilsupplement' => '#/249',
+'blk=tangsa' => '#/172',
+'blk=tangut' => '#/173',
+'blk=tangutcomponents' => '#/403',
+'blk=tangutsup' => '#/284',
+'blk=tangutsupplement' => '#/284',
+'blk=telugu' => '#/174',
+'blk=thaana' => '#/175',
+'blk=thai' => '#/128',
+'blk=tibetan' => '#/220',
+'blk=tifinagh' => '#/250',
+'blk=tirhuta' => '#/221',
+'blk=toto' => '#/129',
+'blk=transportandmap' => '#/389',
+'blk=transportandmapsymbols' => '#/389',
'blk=ucas' => '#/130',
-'blk=ucasext' => '#/220',
-'blk=ugaritic' => '#/248',
+'blk=ucasext' => '#/222',
+'blk=ucasexta' => '#/251',
+'blk=ugaritic' => '#/252',
'blk=unifiedcanadianaboriginalsyllabics' => '#/130',
-'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/220',
-'blk=vai' => '#/119',
-'blk=variationselectors' => '#/111',
+'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/222',
+'blk=unifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
+'blk=vai' => '#/117',
+'blk=variationselectors' => '#/109',
'blk=variationselectorssupplement' => '#/149',
-'blk=vedicext' => '#/249',
-'blk=vedicextensions' => '#/249',
-'blk=verticalforms' => '#/351',
-'blk=vs' => '#/111',
+'blk=vedicext' => '#/253',
+'blk=vedicextensions' => '#/253',
+'blk=verticalforms' => '#/365',
+'blk=vithkuqi' => '#/254',
+'blk=vs' => '#/109',
'blk=vssup' => '#/149',
-'blk=wancho' => '#/175',
-'blk=warangciti' => '#/299',
-'blk=yezidi' => '#/176',
-'blk=yijing' => '#/177',
-'blk=yijinghexagramsymbols' => '#/177',
-'blk=yiradicals' => '#/300',
-'blk=yisyllables' => '#/325',
-'blk=zanabazarsquare' => '#/374',
-'blockelements' => '#/344',
+'blk=wancho' => '#/176',
+'blk=warangciti' => '#/310',
+'blk=yezidi' => '#/177',
+'blk=yijing' => '#/178',
+'blk=yijinghexagramsymbols' => '#/178',
+'blk=yiradicals' => '#/311',
+'blk=yisyllables' => '#/337',
+'blk=zanabazarsquare' => '#/390',
+'blk=znamennymusic' => '#/366',
+'blk=znamennymusicalnotation' => '#/366',
+'blockelements' => '#/358',
'bopo' => 'Scx/Bopo',
'bopomofo' => 'Scx/Bopo',
-'bopomofoext' => '#/301',
-'bopomofoextended' => '#/301',
-'boxdrawing' => '#/280',
+'bopomofoext' => '#/312',
+'bopomofoextended' => '#/312',
+'boxdrawing' => '#/290',
'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' => '#/643',
-'brahmi' => '#/643',
-'brai' => '#/180',
-'braille' => '#/180',
-'braillepatterns' => '#/180',
-'bugi' => '#/644',
-'buginese' => '#/644',
-'buhd' => '#/645',
-'buhid' => '#/645',
-'byzantinemusic' => '#/353',
-'byzantinemusicalsymbols' => '#/353',
+'brah' => '#/662',
+'brahmi' => '#/662',
+'brai' => '#/181',
+'braille' => '#/181',
+'braillepatterns' => '#/181',
+'bugi' => '#/663',
+'buginese' => '#/663',
+'buhd' => '#/664',
+'buhid' => '#/664',
+'byzantinemusic' => '#/368',
+'byzantinemusicalsymbols' => '#/368',
'c' => 'Gc/C',
'cakm' => 'Scx/Cakm',
-'canadianaboriginal' => '#/646',
+'canadianaboriginal' => '#/665',
'canadiansyllabics' => '#/130',
-'cans' => '#/646',
-'cari' => '#/647',
-'carian' => '#/647',
+'cans' => '#/665',
+'cari' => '#/666',
+'carian' => '#/666',
'cased' => 'Cased/Y',
'cased=f' => '!Cased/Y',
'cased=false' => '!Cased/Y',
@@ -3700,8 +3813,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'cased=yes' => 'Cased/Y',
'casedletter' => 'Gc/LC',
'caseignorable' => 'CI/Y',
-'caucasianalbanian' => '#/635',
-'cc' => '#/422',
+'caucasianalbanian' => '#/654',
+'cc' => '#/439',
'ccc=a' => 'Ccc/A',
'ccc=above' => 'Ccc/A',
'ccc=aboveleft' => 'Ccc/AL',
@@ -3799,13 +3912,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'changeswhennfkccasefolded' => 'CWKCF/Y',
'changeswhentitlecased' => 'CWT/Y',
'changeswhenuppercased' => 'CWU/Y',
-'cher' => '#/648',
-'cherokee' => '#/648',
-'cherokeesup' => '#/302',
-'cherokeesupplement' => '#/302',
-'chesssymbols' => '#/327',
-'chorasmian' => '#/649',
-'chrs' => '#/649',
+'cher' => '#/667',
+'cherokee' => '#/667',
+'cherokeesup' => '#/313',
+'cherokeesupplement' => '#/313',
+'chesssymbols' => '#/339',
+'chorasmian' => '#/668',
+'chrs' => '#/668',
'ci' => 'CI/Y',
'ci=f' => '!CI/Y',
'ci=false' => '!CI/Y',
@@ -3815,49 +3928,51 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ci=true' => 'CI/Y',
'ci=y' => 'CI/Y',
'ci=yes' => 'CI/Y',
-'cjk' => '#/112',
-'cjkcompat' => '#/254',
-'cjkcompatforms' => '#/354',
-'cjkcompatibility' => '#/254',
-'cjkcompatibilityforms' => '#/354',
-'cjkcompatibilityideographs' => '#/399',
-'cjkcompatibilityideographssupplement' => '#/410',
-'cjkcompatideographs' => '#/399',
-'cjkcompatideographssup' => '#/410',
-'cjkexta' => '#/181',
-'cjkextb' => '#/182',
-'cjkextc' => '#/183',
-'cjkextd' => '#/184',
-'cjkexte' => '#/185',
-'cjkextf' => '#/186',
-'cjkextg' => '#/187',
-'cjkradicalssup' => '#/355',
-'cjkradicalssupplement' => '#/355',
-'cjkstrokes' => '#/281',
-'cjksymbols' => '#/282',
-'cjksymbolsandpunctuation' => '#/282',
-'cjkunifiedideographs' => '#/112',
-'cjkunifiedideographsextensiona' => '#/181',
-'cjkunifiedideographsextensionb' => '#/182',
-'cjkunifiedideographsextensionc' => '#/183',
-'cjkunifiedideographsextensiond' => '#/184',
-'cjkunifiedideographsextensione' => '#/185',
-'cjkunifiedideographsextensionf' => '#/186',
-'cjkunifiedideographsextensiong' => '#/187',
+'cjk' => '#/110',
+'cjkcompat' => '#/259',
+'cjkcompatforms' => '#/369',
+'cjkcompatibility' => '#/259',
+'cjkcompatibilityforms' => '#/369',
+'cjkcompatibilityideographs' => '#/416',
+'cjkcompatibilityideographssupplement' => '#/427',
+'cjkcompatideographs' => '#/416',
+'cjkcompatideographssup' => '#/427',
+'cjkexta' => '#/182',
+'cjkextb' => '#/183',
+'cjkextc' => '#/184',
+'cjkextd' => '#/185',
+'cjkexte' => '#/186',
+'cjkextf' => '#/187',
+'cjkextg' => '#/188',
+'cjkexth' => '#/189',
+'cjkradicalssup' => '#/370',
+'cjkradicalssupplement' => '#/370',
+'cjkstrokes' => '#/291',
+'cjksymbols' => '#/292',
+'cjksymbolsandpunctuation' => '#/292',
+'cjkunifiedideographs' => '#/110',
+'cjkunifiedideographsextensiona' => '#/182',
+'cjkunifiedideographsextensionb' => '#/183',
+'cjkunifiedideographsextensionc' => '#/184',
+'cjkunifiedideographsextensiond' => '#/185',
+'cjkunifiedideographsextensione' => '#/186',
+'cjkunifiedideographsextensionf' => '#/187',
+'cjkunifiedideographsextensiong' => '#/188',
+'cjkunifiedideographsextensionh' => '#/189',
'closepunctuation' => 'Gc/Pe',
'cn' => 'Gc/Cn',
-'cntrl' => '#/422',
-'co' => '#/423',
-'combiningdiacriticalmarks' => '#/331',
-'combiningdiacriticalmarksextended' => '#/364',
-'combiningdiacriticalmarksforsymbols' => '#/411',
-'combiningdiacriticalmarkssupplement' => '#/365',
-'combininghalfmarks' => '#/257',
+'cntrl' => '#/439',
+'co' => '#/440',
+'combiningdiacriticalmarks' => '#/344',
+'combiningdiacriticalmarksextended' => '#/380',
+'combiningdiacriticalmarksforsymbols' => '#/428',
+'combiningdiacriticalmarkssupplement' => '#/381',
+'combininghalfmarks' => '#/262',
'combiningmark' => 'Gc/M',
-'combiningmarksforsymbols' => '#/411',
+'combiningmarksforsymbols' => '#/428',
'common' => 'Scx/Zyyy',
-'commonindicnumberforms' => '#/380',
-'compatjamo' => '#/284',
+'commonindicnumberforms' => '#/396',
+'compatjamo' => '#/294',
'compex' => 'CompEx/Y',
'compex=f' => '!CompEx/Y',
'compex=false' => '!CompEx/Y',
@@ -3869,20 +3984,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'compex=yes' => 'CompEx/Y',
'compositionexclusion' => 'CE/Y',
'connectorpunctuation' => 'Gc/Pc',
-'control' => '#/422',
-'controlpictures' => '#/362',
+'control' => '#/439',
+'controlpictures' => '#/378',
'copt' => 'Scx/Copt',
'coptic' => 'Scx/Copt',
-'copticepactnumbers' => '#/393',
-'countingrod' => '#/303',
-'countingrodnumerals' => '#/303',
+'copticepactnumbers' => '#/410',
+'countingrod' => '#/314',
+'countingrodnumerals' => '#/314',
+'cpmn' => '#/669',
'cprt' => 'Scx/Cprt',
'cs' => '#/14',
'cuneiform' => 'Scx/Xsux',
-'cuneiformnumbers' => '#/375',
-'cuneiformnumbersandpunctuation' => '#/375',
+'cuneiformnumbers' => '#/391',
+'cuneiformnumbersandpunctuation' => '#/391',
'currencysymbol' => 'Gc/Sc',
-'currencysymbols' => '#/363',
+'currencysymbols' => '#/379',
'cwcf' => 'CWCF/Y',
'cwcf=f' => '!CWCF/Y',
'cwcf=false' => '!CWCF/Y',
@@ -3938,17 +4054,20 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'cwu=y' => 'CWU/Y',
'cwu=yes' => 'CWU/Y',
'cypriot' => 'Scx/Cprt',
-'cypriotsyllabary' => '#/376',
+'cypriotsyllabary' => '#/392',
+'cyprominoan' => '#/669',
'cyrillic' => 'Scx/Cyrl',
-'cyrillicexta' => '#/328',
-'cyrillicextb' => '#/329',
-'cyrillicextc' => '#/330',
-'cyrillicextendeda' => '#/328',
-'cyrillicextendedb' => '#/329',
-'cyrillicextendedc' => '#/330',
-'cyrillicsup' => '#/304',
-'cyrillicsupplement' => '#/304',
-'cyrillicsupplementary' => '#/304',
+'cyrillicexta' => '#/340',
+'cyrillicextb' => '#/341',
+'cyrillicextc' => '#/342',
+'cyrillicextd' => '#/343',
+'cyrillicextendeda' => '#/340',
+'cyrillicextendedb' => '#/341',
+'cyrillicextendedc' => '#/342',
+'cyrillicextendedd' => '#/343',
+'cyrillicsup' => '#/316',
+'cyrillicsupplement' => '#/316',
+'cyrillicsupplementary' => '#/316',
'cyrl' => 'Scx/Cyrl',
'dash' => 'Dash/Y',
'dash=f' => '!Dash/Y',
@@ -3972,11 +4091,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'dep=y' => 'Dep/Y',
'dep=yes' => 'Dep/Y',
'deprecated' => 'Dep/Y',
-'deseret' => '#/188',
+'deseret' => '#/190',
'deva' => 'Scx/Deva',
'devanagari' => 'Scx/Deva',
-'devanagariext' => '#/345',
-'devanagariextended' => '#/345',
+'devanagariext' => '#/359',
+'devanagariexta' => '#/371',
+'devanagariextended' => '#/359',
+'devanagariextendeda' => '#/371',
'di' => 'DI/Y',
'di=f' => '!DI/Y',
'di=false' => '!DI/Y',
@@ -3996,19 +4117,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'dia=y' => 'Dia/Y',
'dia=yes' => 'Dia/Y',
'diacritic' => 'Dia/Y',
-'diacriticals' => '#/331',
-'diacriticalsext' => '#/364',
-'diacriticalsforsymbols' => '#/411',
-'diacriticalssup' => '#/365',
+'diacriticals' => '#/344',
+'diacriticalsext' => '#/380',
+'diacriticalsforsymbols' => '#/428',
+'diacriticalssup' => '#/381',
'diak' => 'Scx/Diak',
'digit' => 'Gc/Nd',
-'dingbats' => '#/229',
+'dingbats' => '#/231',
'divesakuru' => 'Scx/Diak',
-'dogr' => '#/650',
-'dogra' => '#/650',
+'dogr' => '#/670',
+'dogra' => '#/670',
'domino' => '#/156',
'dominotiles' => '#/156',
-'dsrt' => '#/188',
+'dsrt' => '#/190',
'dt=can' => 'NFDQC/N',
'dt=canonical' => 'NFDQC/N',
'dt=circle' => 'Dt/Enc',
@@ -4018,8 +4139,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'dt=fin' => 'Dt/Fin',
'dt=final' => 'Dt/Fin',
'dt=font' => 'Dt/Font',
-'dt=fra' => '#/419',
-'dt=fraction' => '#/419',
+'dt=fra' => '#/436',
+'dt=fraction' => '#/436',
'dt=init' => 'Dt/Init',
'dt=initial' => 'Dt/Init',
'dt=iso' => 'Dt/Iso',
@@ -4033,8 +4154,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'dt=noncanon' => 'Dt/NonCanon',
'dt=noncanonical' => 'Dt/NonCanon',
'dt=none' => 'NFKDQC/Y',
-'dt=small' => '#/420',
-'dt=sml' => '#/420',
+'dt=small' => '#/437',
+'dt=sml' => '#/437',
'dt=sqr' => 'Dt/Sqr',
'dt=square' => 'Dt/Sqr',
'dt=sub' => 'Dt/Sub',
@@ -4042,13 +4163,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'dt=super' => 'Dt/Sup',
'dt=vert' => 'Dt/Vert',
'dt=vertical' => 'Dt/Vert',
-'dt=wide' => '#/421',
+'dt=wide' => '#/438',
'dupl' => 'Scx/Dupl',
'duployan' => 'Scx/Dupl',
'ea=a' => 'Ea/A',
'ea=ambiguous' => 'Ea/A',
-'ea=f' => '#/421',
-'ea=fullwidth' => '#/421',
+'ea=f' => '#/438',
+'ea=fullwidth' => '#/438',
'ea=h' => 'Ea/H',
'ea=halfwidth' => 'Ea/H',
'ea=n' => 'Ea/N',
@@ -4057,7 +4178,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ea=neutral' => 'Ea/N',
'ea=w' => 'Ea/W',
'ea=wide' => 'Ea/W',
-'earlydynasticcuneiform' => '#/412',
+'earlydynasticcuneiform' => '#/429',
'ebase' => 'EBase/Y',
'ebase=f' => '!EBase/Y',
'ebase=false' => '!EBase/Y',
@@ -4076,13 +4197,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ecomp=true' => 'EComp/Y',
'ecomp=y' => 'EComp/Y',
'ecomp=yes' => 'EComp/Y',
-'egyp' => '#/651',
-'egyptianhieroglyphformatcontrols' => '#/418',
-'egyptianhieroglyphs' => '#/651',
-'elba' => '#/652',
-'elbasan' => '#/652',
-'elym' => '#/653',
-'elymaic' => '#/653',
+'egyp' => '#/671',
+'egyptianhieroglyphformatcontrols' => '#/435',
+'egyptianhieroglyphs' => '#/671',
+'elba' => '#/672',
+'elbasan' => '#/672',
+'elym' => '#/673',
+'elymaic' => '#/673',
'emod' => '#/61',
'emod=f' => '#/!61',
'emod=false' => '#/!61',
@@ -4105,15 +4226,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'emojimodifier' => '#/61',
'emojimodifierbase' => 'EBase/Y',
'emojipresentation' => 'EPres/Y',
-'emoticons' => '#/256',
-'enclosedalphanum' => '#/377',
-'enclosedalphanumerics' => '#/377',
-'enclosedalphanumericsupplement' => '#/401',
-'enclosedalphanumsup' => '#/401',
-'enclosedcjk' => '#/305',
-'enclosedcjklettersandmonths' => '#/305',
-'enclosedideographicsup' => '#/413',
-'enclosedideographicsupplement' => '#/413',
+'emoticons' => '#/261',
+'enclosedalphanum' => '#/393',
+'enclosedalphanumerics' => '#/393',
+'enclosedalphanumericsupplement' => '#/418',
+'enclosedalphanumsup' => '#/418',
+'enclosedcjk' => '#/317',
+'enclosedcjklettersandmonths' => '#/317',
+'enclosedideographicsup' => '#/430',
+'enclosedideographicsupplement' => '#/430',
'enclosingmark' => 'Gc/Me',
'epres' => 'EPres/Y',
'epres=f' => '!EPres/Y',
@@ -4126,12 +4247,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'epres=yes' => 'EPres/Y',
'ethi' => 'Scx/Ethi',
'ethiopic' => 'Scx/Ethi',
-'ethiopicext' => '#/306',
-'ethiopicexta' => '#/332',
-'ethiopicextended' => '#/306',
-'ethiopicextendeda' => '#/332',
-'ethiopicsup' => '#/307',
-'ethiopicsupplement' => '#/307',
+'ethiopicext' => '#/318',
+'ethiopicexta' => '#/345',
+'ethiopicextb' => '#/346',
+'ethiopicextended' => '#/318',
+'ethiopicextendeda' => '#/345',
+'ethiopicextendedb' => '#/346',
+'ethiopicsup' => '#/319',
+'ethiopicsupplement' => '#/319',
'ext' => 'Ext/Y',
'ext=f' => '!Ext/Y',
'ext=false' => '!Ext/Y',
@@ -4157,15 +4280,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'fullcompositionexclusion' => 'CompEx/Y',
'gc=c' => 'Gc/C',
'gc=casedletter' => 'Gc/LC',
-'gc=cc' => '#/422',
+'gc=cc' => '#/439',
'gc=cf' => 'Gc/Cf',
'gc=closepunctuation' => 'Gc/Pe',
'gc=cn' => 'Gc/Cn',
-'gc=cntrl' => '#/422',
-'gc=co' => '#/423',
+'gc=cntrl' => '#/439',
+'gc=co' => '#/440',
'gc=combiningmark' => 'Gc/M',
'gc=connectorpunctuation' => 'Gc/Pc',
-'gc=control' => '#/422',
+'gc=control' => '#/439',
'gc=cs' => '#/14',
'gc=currencysymbol' => 'Gc/Sc',
'gc=dashpunctuation' => 'Gc/Pd',
@@ -4181,7 +4304,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gc=lc' => 'Gc/LC',
'gc=letter' => 'Gc/L',
'gc=letternumber' => 'Gc/Nl',
-'gc=lineseparator' => '#/424',
+'gc=lineseparator' => '#/441',
'gc=ll' => 'Gc/Ll',
'gc=lm' => 'Gc/Lm',
'gc=lo' => 'Gc/Lo',
@@ -4209,14 +4332,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gc=otherpunctuation' => 'Gc/Po',
'gc=othersymbol' => 'Gc/So',
'gc=p' => 'Gc/P',
-'gc=paragraphseparator' => '#/425',
+'gc=paragraphseparator' => '#/442',
'gc=pc' => 'Gc/Pc',
'gc=pd' => 'Gc/Pd',
'gc=pe' => 'Gc/Pe',
'gc=pf' => 'Gc/Pf',
'gc=pi' => 'Gc/Pi',
'gc=po' => 'Gc/Po',
-'gc=privateuse' => '#/423',
+'gc=privateuse' => '#/440',
'gc=ps' => 'Gc/Ps',
'gc=punct' => 'Gc/P',
'gc=punctuation' => 'Gc/P',
@@ -4234,8 +4357,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gc=unassigned' => 'Gc/Cn',
'gc=uppercaseletter' => 'Gc/Lu',
'gc=z' => 'Gc/Z',
-'gc=zl' => '#/424',
-'gc=zp' => '#/425',
+'gc=zl' => '#/441',
+'gc=zp' => '#/442',
'gc=zs' => 'Gc/Zs',
'gcb=cn' => 'GCB/CN',
'gcb=control' => 'GCB/CN',
@@ -4265,24 +4388,24 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gcb=v' => '#/65',
'gcb=xx' => 'GCB/XX',
'gcb=zwj' => '#/69',
-'generalpunctuation' => '#/320',
-'geometricshapes' => '#/366',
-'geometricshapesext' => '#/394',
-'geometricshapesextended' => '#/394',
+'generalpunctuation' => '#/332',
+'geometricshapes' => '#/382',
+'geometricshapesext' => '#/411',
+'geometricshapesextended' => '#/411',
'geor' => 'Scx/Geor',
'georgian' => 'Scx/Geor',
-'georgianext' => '#/308',
-'georgianextended' => '#/308',
-'georgiansup' => '#/309',
-'georgiansupplement' => '#/309',
+'georgianext' => '#/320',
+'georgianextended' => '#/320',
+'georgiansup' => '#/321',
+'georgiansupplement' => '#/321',
'glag' => 'Scx/Glag',
'glagolitic' => 'Scx/Glag',
-'glagoliticsup' => '#/346',
-'glagoliticsupplement' => '#/346',
+'glagoliticsup' => '#/360',
+'glagoliticsupplement' => '#/360',
'gong' => 'Scx/Gong',
'gonm' => 'Scx/Gonm',
-'goth' => '#/654',
-'gothic' => '#/654',
+'goth' => '#/674',
+'gothic' => '#/674',
'gran' => 'Scx/Gran',
'grantha' => 'Scx/Gran',
'graph' => 'Perl/Graph',
@@ -4299,8 +4422,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'grbase=yes' => 'GrBase/Y',
'greek' => 'Scx/Grek',
'greekandcoptic' => '#/137',
-'greekext' => '#/233',
-'greekextended' => '#/233',
+'greekext' => '#/235',
+'greekextended' => '#/235',
'grek' => 'Scx/Grek',
'grext' => 'GrExt/Y',
'grext=f' => '!GrExt/Y',
@@ -4316,23 +4439,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gunjalagondi' => 'Scx/Gong',
'gurmukhi' => 'Scx/Guru',
'guru' => 'Scx/Guru',
-'halfandfullforms' => '#/378',
-'halfmarks' => '#/257',
-'halfwidthandfullwidthforms' => '#/378',
+'halfandfullforms' => '#/394',
+'halfmarks' => '#/262',
+'halfwidthandfullwidthforms' => '#/394',
'han' => 'Scx/Han',
'hang' => 'Scx/Hang',
'hangul' => 'Scx/Hang',
-'hangulcompatibilityjamo' => '#/284',
-'hanguljamo' => '#/122',
-'hanguljamoextendeda' => '#/237',
-'hanguljamoextendedb' => '#/238',
+'hangulcompatibilityjamo' => '#/294',
+'hanguljamo' => '#/120',
+'hanguljamoextendeda' => '#/239',
+'hanguljamoextendedb' => '#/240',
'hangulsyllables' => '#/158',
'hani' => 'Scx/Han',
'hanifirohingya' => 'Scx/Rohg',
-'hano' => '#/655',
-'hanunoo' => '#/655',
-'hatr' => '#/656',
-'hatran' => '#/656',
+'hano' => '#/675',
+'hanunoo' => '#/675',
+'hatr' => '#/676',
+'hatran' => '#/676',
'hebr' => 'Scx/Hebr',
'hebrew' => 'Scx/Hebr',
'hex' => 'Hex/Y',
@@ -4345,12 +4468,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'hex=y' => 'Hex/Y',
'hex=yes' => 'Hex/Y',
'hexdigit' => 'Hex/Y',
-'highprivateusesurrogates' => '#/379',
-'highpusurrogates' => '#/379',
-'highsurrogates' => '#/357',
+'highprivateusesurrogates' => '#/395',
+'highpusurrogates' => '#/395',
+'highsurrogates' => '#/373',
'hira' => 'Scx/Hira',
'hiragana' => 'Scx/Hira',
-'hluw' => '#/657',
+'hluw' => '#/677',
'hmng' => 'Scx/Hmng',
'hmnp' => 'Scx/Hmnp',
'horizspace' => 'Perl/Blank',
@@ -4366,7 +4489,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'hst=trailingjamo' => '#/64',
'hst=v' => '#/65',
'hst=voweljamo' => '#/65',
-'hung' => '#/658',
+'hung' => '#/678',
'hyphen' => 'Hyphen/T',
'hyphen=f' => '!Hyphen/T',
'hyphen=false' => '!Hyphen/T',
@@ -4410,9 +4533,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ideo=y' => 'Ideo/Y',
'ideo=yes' => 'Ideo/Y',
'ideographic' => 'Ideo/Y',
-'ideographicdescriptioncharacters' => '#/113',
-'ideographicsymbols' => '#/395',
-'ideographicsymbolsandpunctuation' => '#/395',
+'ideographicdescriptioncharacters' => '#/111',
+'ideographicsymbols' => '#/412',
+'ideographicsymbolsandpunctuation' => '#/412',
'ids' => 'IDS/Y',
'ids=f' => '!IDS/Y',
'ids=false' => '!IDS/Y',
@@ -4443,13 +4566,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'idst=yes' => '#/72',
'idstart' => 'IDS/Y',
'idstrinaryoperator' => '#/72',
-'imperialaramaic' => '#/637',
+'imperialaramaic' => '#/656',
+'in=na' => 'Age/NA',
'in=unassigned' => 'Age/NA',
'in=v100' => 'In/10_0',
+'in=v11' => 'Age/V11',
'in=v110' => 'In/11_0',
'in=v120' => 'In/12_0',
'in=v121' => 'In/12_1',
'in=v130' => 'In/13_0',
+'in=v140' => 'In/14_0',
+'in=v150' => 'In/15_0',
'in=v20' => 'In/2_0',
'in=v21' => 'In/2_1',
'in=v30' => 'In/3_0',
@@ -4468,338 +4595,361 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'in=v80' => 'In/8_0',
'in=v90' => 'In/9_0',
'inadlam' => '#/132',
-'inaegeannumbers' => '#/343',
-'inahom' => '#/120',
-'inalchemical' => '#/277',
-'inalchemicalsymbols' => '#/277',
-'inalphabeticpf' => '#/326',
-'inalphabeticpresentationforms' => '#/326',
-'inanatolianhieroglyphs' => '#/405',
-'inancientgreekmusic' => '#/387',
-'inancientgreekmusicalnotation' => '#/387',
-'inancientgreeknumbers' => '#/398',
-'inancientsymbols' => '#/352',
+'inaegeannumbers' => '#/357',
+'inahom' => '#/118',
+'inalchemical' => '#/285',
+'inalchemicalsymbols' => '#/285',
+'inalphabeticpf' => '#/338',
+'inalphabeticpresentationforms' => '#/338',
+'inanatolianhieroglyphs' => '#/422',
+'inancientgreekmusic' => '#/404',
+'inancientgreekmusicalnotation' => '#/404',
+'inancientgreeknumbers' => '#/415',
+'inancientsymbols' => '#/367',
'inarabic' => '#/150',
-'inarabicexta' => '#/278',
-'inarabicextendeda' => '#/278',
-'inarabicmath' => '#/279',
-'inarabicmathematicalalphabeticsymbols' => '#/279',
-'inarabicpfa' => '#/250',
-'inarabicpfb' => '#/251',
-'inarabicpresentationformsa' => '#/250',
-'inarabicpresentationformsb' => '#/251',
-'inarabicsup' => '#/252',
-'inarabicsupplement' => '#/252',
-'inarmenian' => '#/221',
+'inarabicexta' => '#/286',
+'inarabicextb' => '#/287',
+'inarabicextc' => '#/288',
+'inarabicextendeda' => '#/286',
+'inarabicextendedb' => '#/287',
+'inarabicextendedc' => '#/288',
+'inarabicmath' => '#/289',
+'inarabicmathematicalalphabeticsymbols' => '#/289',
+'inarabicpfa' => '#/255',
+'inarabicpfb' => '#/256',
+'inarabicpresentationformsa' => '#/255',
+'inarabicpresentationformsb' => '#/256',
+'inarabicsup' => '#/257',
+'inarabicsupplement' => '#/257',
+'inarmenian' => '#/223',
'inarrows' => '#/151',
'inascii' => '#/131',
-'inavestan' => '#/178',
-'inbalinese' => '#/222',
+'inavestan' => '#/179',
+'inbalinese' => '#/224',
'inbamum' => '#/133',
-'inbamumsup' => '#/223',
-'inbamumsupplement' => '#/223',
+'inbamumsup' => '#/225',
+'inbamumsupplement' => '#/225',
'inbasiclatin' => '#/131',
-'inbassavah' => '#/224',
+'inbassavah' => '#/226',
'inbatak' => '#/134',
-'inbengali' => '#/179',
-'inbhaiksuki' => '#/253',
-'inblockelements' => '#/344',
-'inbopomofo' => '#/225',
-'inbopomofoext' => '#/301',
-'inbopomofoextended' => '#/301',
-'inboxdrawing' => '#/280',
+'inbengali' => '#/180',
+'inbhaiksuki' => '#/258',
+'inblockelements' => '#/358',
+'inbopomofo' => '#/227',
+'inbopomofoext' => '#/312',
+'inbopomofoextended' => '#/312',
+'inboxdrawing' => '#/290',
'inbrahmi' => '#/152',
-'inbraille' => '#/180',
-'inbraillepatterns' => '#/180',
-'inbuginese' => '#/226',
+'inbraille' => '#/181',
+'inbraillepatterns' => '#/181',
+'inbuginese' => '#/228',
'inbuhid' => '#/135',
-'inbyzantinemusic' => '#/353',
-'inbyzantinemusicalsymbols' => '#/353',
+'inbyzantinemusic' => '#/368',
+'inbyzantinemusicalsymbols' => '#/368',
'incanadiansyllabics' => '#/130',
'incarian' => '#/153',
-'incaucasianalbanian' => '#/388',
+'incaucasianalbanian' => '#/405',
'inchakma' => '#/154',
-'incham' => '#/121',
-'incherokee' => '#/227',
-'incherokeesup' => '#/302',
-'incherokeesupplement' => '#/302',
-'inchesssymbols' => '#/327',
-'inchorasmian' => '#/283',
-'incjk' => '#/112',
-'incjkcompat' => '#/254',
-'incjkcompatforms' => '#/354',
-'incjkcompatibility' => '#/254',
-'incjkcompatibilityforms' => '#/354',
-'incjkcompatibilityideographs' => '#/399',
-'incjkcompatibilityideographssupplement' => '#/410',
-'incjkcompatideographs' => '#/399',
-'incjkcompatideographssup' => '#/410',
-'incjkexta' => '#/181',
-'incjkextb' => '#/182',
-'incjkextc' => '#/183',
-'incjkextd' => '#/184',
-'incjkexte' => '#/185',
-'incjkextf' => '#/186',
-'incjkextg' => '#/187',
-'incjkradicalssup' => '#/355',
-'incjkradicalssupplement' => '#/355',
-'incjkstrokes' => '#/281',
-'incjksymbols' => '#/282',
-'incjksymbolsandpunctuation' => '#/282',
-'incjkunifiedideographs' => '#/112',
-'incjkunifiedideographsextensiona' => '#/181',
-'incjkunifiedideographsextensionb' => '#/182',
-'incjkunifiedideographsextensionc' => '#/183',
-'incjkunifiedideographsextensiond' => '#/184',
-'incjkunifiedideographsextensione' => '#/185',
-'incjkunifiedideographsextensionf' => '#/186',
-'incjkunifiedideographsextensiong' => '#/187',
-'incombiningdiacriticalmarks' => '#/331',
-'incombiningdiacriticalmarksextended' => '#/364',
-'incombiningdiacriticalmarksforsymbols' => '#/411',
-'incombiningdiacriticalmarkssupplement' => '#/365',
-'incombininghalfmarks' => '#/257',
-'incombiningmarksforsymbols' => '#/411',
-'incommonindicnumberforms' => '#/380',
-'incompatjamo' => '#/284',
-'incontrolpictures' => '#/362',
+'incham' => '#/119',
+'incherokee' => '#/229',
+'incherokeesup' => '#/313',
+'incherokeesupplement' => '#/313',
+'inchesssymbols' => '#/339',
+'inchorasmian' => '#/293',
+'incjk' => '#/110',
+'incjkcompat' => '#/259',
+'incjkcompatforms' => '#/369',
+'incjkcompatibility' => '#/259',
+'incjkcompatibilityforms' => '#/369',
+'incjkcompatibilityideographs' => '#/416',
+'incjkcompatibilityideographssupplement' => '#/427',
+'incjkcompatideographs' => '#/416',
+'incjkcompatideographssup' => '#/427',
+'incjkexta' => '#/182',
+'incjkextb' => '#/183',
+'incjkextc' => '#/184',
+'incjkextd' => '#/185',
+'incjkexte' => '#/186',
+'incjkextf' => '#/187',
+'incjkextg' => '#/188',
+'incjkexth' => '#/189',
+'incjkradicalssup' => '#/370',
+'incjkradicalssupplement' => '#/370',
+'incjkstrokes' => '#/291',
+'incjksymbols' => '#/292',
+'incjksymbolsandpunctuation' => '#/292',
+'incjkunifiedideographs' => '#/110',
+'incjkunifiedideographsextensiona' => '#/182',
+'incjkunifiedideographsextensionb' => '#/183',
+'incjkunifiedideographsextensionc' => '#/184',
+'incjkunifiedideographsextensiond' => '#/185',
+'incjkunifiedideographsextensione' => '#/186',
+'incjkunifiedideographsextensionf' => '#/187',
+'incjkunifiedideographsextensiong' => '#/188',
+'incjkunifiedideographsextensionh' => '#/189',
+'incombiningdiacriticalmarks' => '#/344',
+'incombiningdiacriticalmarksextended' => '#/380',
+'incombiningdiacriticalmarksforsymbols' => '#/428',
+'incombiningdiacriticalmarkssupplement' => '#/381',
+'incombininghalfmarks' => '#/262',
+'incombiningmarksforsymbols' => '#/428',
+'incommonindicnumberforms' => '#/396',
+'incompatjamo' => '#/294',
+'incontrolpictures' => '#/378',
'incoptic' => '#/155',
-'incopticepactnumbers' => '#/393',
-'incountingrod' => '#/303',
-'incountingrodnumerals' => '#/303',
-'incuneiform' => '#/255',
-'incuneiformnumbers' => '#/375',
-'incuneiformnumbersandpunctuation' => '#/375',
-'incurrencysymbols' => '#/363',
-'incypriotsyllabary' => '#/376',
-'incyrillic' => '#/228',
-'incyrillicexta' => '#/328',
-'incyrillicextb' => '#/329',
-'incyrillicextc' => '#/330',
-'incyrillicextendeda' => '#/328',
-'incyrillicextendedb' => '#/329',
-'incyrillicextendedc' => '#/330',
-'incyrillicsup' => '#/304',
-'incyrillicsupplement' => '#/304',
-'incyrillicsupplementary' => '#/304',
-'indeseret' => '#/188',
-'indevanagari' => '#/285',
-'indevanagariext' => '#/345',
-'indevanagariextended' => '#/345',
-'indiacriticals' => '#/331',
-'indiacriticalsext' => '#/364',
-'indiacriticalsforsymbols' => '#/411',
-'indiacriticalssup' => '#/365',
-'indicnumberforms' => '#/380',
-'indicsiyaqnumbers' => '#/389',
-'indingbats' => '#/229',
-'indivesakuru' => '#/286',
+'incopticepactnumbers' => '#/410',
+'incountingrod' => '#/314',
+'incountingrodnumerals' => '#/314',
+'incuneiform' => '#/260',
+'incuneiformnumbers' => '#/391',
+'incuneiformnumbersandpunctuation' => '#/391',
+'incurrencysymbols' => '#/379',
+'incypriotsyllabary' => '#/392',
+'incyprominoan' => '#/315',
+'incyrillic' => '#/230',
+'incyrillicexta' => '#/340',
+'incyrillicextb' => '#/341',
+'incyrillicextc' => '#/342',
+'incyrillicextd' => '#/343',
+'incyrillicextendeda' => '#/340',
+'incyrillicextendedb' => '#/341',
+'incyrillicextendedc' => '#/342',
+'incyrillicextendedd' => '#/343',
+'incyrillicsup' => '#/316',
+'incyrillicsupplement' => '#/316',
+'incyrillicsupplementary' => '#/316',
+'indeseret' => '#/190',
+'indevanagari' => '#/295',
+'indevanagariext' => '#/359',
+'indevanagariexta' => '#/371',
+'indevanagariextended' => '#/359',
+'indevanagariextendeda' => '#/371',
+'indiacriticals' => '#/344',
+'indiacriticalsext' => '#/380',
+'indiacriticalsforsymbols' => '#/428',
+'indiacriticalssup' => '#/381',
+'indicnumberforms' => '#/396',
+'indicsiyaqnumbers' => '#/406',
+'indingbats' => '#/231',
+'indivesakuru' => '#/296',
'indogra' => '#/136',
'indomino' => '#/156',
'indominotiles' => '#/156',
-'induployan' => '#/230',
-'inearlydynasticcuneiform' => '#/412',
-'inegyptianhieroglyphformatcontrols' => '#/418',
-'inegyptianhieroglyphs' => '#/400',
-'inelbasan' => '#/189',
-'inelymaic' => '#/190',
-'inemoticons' => '#/256',
-'inenclosedalphanum' => '#/377',
-'inenclosedalphanumerics' => '#/377',
-'inenclosedalphanumericsupplement' => '#/401',
-'inenclosedalphanumsup' => '#/401',
-'inenclosedcjk' => '#/305',
-'inenclosedcjklettersandmonths' => '#/305',
-'inenclosedideographicsup' => '#/413',
-'inenclosedideographicsupplement' => '#/413',
-'inethiopic' => '#/231',
-'inethiopicext' => '#/306',
-'inethiopicexta' => '#/332',
-'inethiopicextended' => '#/306',
-'inethiopicextendeda' => '#/332',
-'inethiopicsup' => '#/307',
-'inethiopicsupplement' => '#/307',
-'ingeneralpunctuation' => '#/320',
-'ingeometricshapes' => '#/366',
-'ingeometricshapesext' => '#/394',
-'ingeometricshapesextended' => '#/394',
-'ingeorgian' => '#/232',
-'ingeorgianext' => '#/308',
-'ingeorgianextended' => '#/308',
-'ingeorgiansup' => '#/309',
-'ingeorgiansupplement' => '#/309',
-'inglagolitic' => '#/287',
-'inglagoliticsup' => '#/346',
-'inglagoliticsupplement' => '#/346',
+'induployan' => '#/232',
+'inearlydynasticcuneiform' => '#/429',
+'inegyptianhieroglyphformatcontrols' => '#/435',
+'inegyptianhieroglyphs' => '#/417',
+'inelbasan' => '#/191',
+'inelymaic' => '#/192',
+'inemoticons' => '#/261',
+'inenclosedalphanum' => '#/393',
+'inenclosedalphanumerics' => '#/393',
+'inenclosedalphanumericsupplement' => '#/418',
+'inenclosedalphanumsup' => '#/418',
+'inenclosedcjk' => '#/317',
+'inenclosedcjklettersandmonths' => '#/317',
+'inenclosedideographicsup' => '#/430',
+'inenclosedideographicsupplement' => '#/430',
+'inethiopic' => '#/233',
+'inethiopicext' => '#/318',
+'inethiopicexta' => '#/345',
+'inethiopicextb' => '#/346',
+'inethiopicextended' => '#/318',
+'inethiopicextendeda' => '#/345',
+'inethiopicextendedb' => '#/346',
+'inethiopicsup' => '#/319',
+'inethiopicsupplement' => '#/319',
+'ingeneralpunctuation' => '#/332',
+'ingeometricshapes' => '#/382',
+'ingeometricshapesext' => '#/411',
+'ingeometricshapesextended' => '#/411',
+'ingeorgian' => '#/234',
+'ingeorgianext' => '#/320',
+'ingeorgianextended' => '#/320',
+'ingeorgiansup' => '#/321',
+'ingeorgiansupplement' => '#/321',
+'inglagolitic' => '#/297',
+'inglagoliticsup' => '#/360',
+'inglagoliticsupplement' => '#/360',
'ingothic' => '#/157',
-'ingrantha' => '#/191',
+'ingrantha' => '#/193',
'ingreek' => '#/137',
'ingreekandcoptic' => '#/137',
-'ingreekext' => '#/233',
-'ingreekextended' => '#/233',
-'ingujarati' => '#/234',
-'ingunjalagondi' => '#/333',
-'ingurmukhi' => '#/235',
-'inhalfandfullforms' => '#/378',
-'inhalfmarks' => '#/257',
-'inhalfwidthandfullwidthforms' => '#/378',
+'ingreekext' => '#/235',
+'ingreekextended' => '#/235',
+'ingujarati' => '#/236',
+'ingunjalagondi' => '#/347',
+'ingurmukhi' => '#/237',
+'inhalfandfullforms' => '#/394',
+'inhalfmarks' => '#/262',
+'inhalfwidthandfullwidthforms' => '#/394',
'inhangul' => '#/158',
-'inhangulcompatibilityjamo' => '#/284',
-'inhanguljamo' => '#/122',
-'inhanguljamoextendeda' => '#/237',
-'inhanguljamoextendedb' => '#/238',
+'inhangulcompatibilityjamo' => '#/294',
+'inhanguljamo' => '#/120',
+'inhanguljamoextendeda' => '#/239',
+'inhanguljamoextendedb' => '#/240',
'inhangulsyllables' => '#/158',
-'inhanifirohingya' => '#/356',
-'inhanunoo' => '#/192',
+'inhanifirohingya' => '#/372',
+'inhanunoo' => '#/194',
'inhatran' => '#/159',
'inhebrew' => '#/160',
'inherited' => 'Scx/Zinh',
-'inhighprivateusesurrogates' => '#/379',
-'inhighpusurrogates' => '#/379',
-'inhighsurrogates' => '#/357',
-'inhiragana' => '#/236',
-'inidc' => '#/113',
-'inideographicdescriptioncharacters' => '#/113',
-'inideographicsymbols' => '#/395',
-'inideographicsymbolsandpunctuation' => '#/395',
-'inimperialaramaic' => '#/367',
-'inindicnumberforms' => '#/380',
-'inindicsiyaqnumbers' => '#/389',
-'ininscriptionalpahlavi' => '#/406',
-'ininscriptionalparthian' => '#/408',
+'inhighprivateusesurrogates' => '#/395',
+'inhighpusurrogates' => '#/395',
+'inhighsurrogates' => '#/373',
+'inhiragana' => '#/238',
+'inidc' => '#/111',
+'inideographicdescriptioncharacters' => '#/111',
+'inideographicsymbols' => '#/412',
+'inideographicsymbolsandpunctuation' => '#/412',
+'inimperialaramaic' => '#/383',
+'inindicnumberforms' => '#/396',
+'inindicsiyaqnumbers' => '#/406',
+'ininscriptionalpahlavi' => '#/423',
+'ininscriptionalparthian' => '#/425',
'inipaext' => '#/161',
'inipaextensions' => '#/161',
'initialpunctuation' => 'Gc/Pi',
-'injamo' => '#/122',
-'injamoexta' => '#/237',
-'injamoextb' => '#/238',
-'injavanese' => '#/239',
+'injamo' => '#/120',
+'injamoexta' => '#/239',
+'injamoextb' => '#/240',
+'injavanese' => '#/241',
'inkaithi' => '#/162',
-'inkanaexta' => '#/240',
-'inkanaextendeda' => '#/240',
-'inkanasup' => '#/193',
-'inkanasupplement' => '#/193',
+'inkaktoviknumerals' => '#/397',
+'inkanaexta' => '#/242',
+'inkanaextb' => '#/243',
+'inkanaextendeda' => '#/242',
+'inkanaextendedb' => '#/243',
+'inkanasup' => '#/195',
+'inkanasupplement' => '#/195',
'inkanbun' => '#/163',
'inkangxi' => '#/164',
'inkangxiradicals' => '#/164',
-'inkannada' => '#/194',
-'inkatakana' => '#/241',
-'inkatakanaext' => '#/310',
-'inkatakanaphoneticextensions' => '#/310',
-'inkayahli' => '#/195',
-'inkharoshthi' => '#/288',
-'inkhitansmallscript' => '#/390',
+'inkannada' => '#/196',
+'inkatakana' => '#/244',
+'inkatakanaext' => '#/322',
+'inkatakanaphoneticextensions' => '#/322',
+'inkawi' => '#/121',
+'inkayahli' => '#/197',
+'inkharoshthi' => '#/298',
+'inkhitansmallscript' => '#/407',
'inkhmer' => '#/138',
-'inkhmersymbols' => '#/334',
+'inkhmersymbols' => '#/348',
'inkhojki' => '#/165',
-'inkhudawadi' => '#/258',
-'inlao' => '#/114',
+'inkhudawadi' => '#/263',
+'inlao' => '#/112',
'inlatin1' => '#/166',
'inlatin1sup' => '#/166',
'inlatin1supplement' => '#/166',
-'inlatinexta' => '#/259',
-'inlatinextadditional' => '#/396',
-'inlatinextb' => '#/260',
-'inlatinextc' => '#/261',
-'inlatinextd' => '#/262',
-'inlatinexte' => '#/263',
-'inlatinextendeda' => '#/259',
-'inlatinextendedadditional' => '#/396',
-'inlatinextendedb' => '#/260',
-'inlatinextendedc' => '#/261',
-'inlatinextendedd' => '#/262',
-'inlatinextendede' => '#/263',
+'inlatinexta' => '#/264',
+'inlatinextadditional' => '#/413',
+'inlatinextb' => '#/265',
+'inlatinextc' => '#/266',
+'inlatinextd' => '#/267',
+'inlatinexte' => '#/268',
+'inlatinextendeda' => '#/264',
+'inlatinextendedadditional' => '#/413',
+'inlatinextendedb' => '#/265',
+'inlatinextendedc' => '#/266',
+'inlatinextendedd' => '#/267',
+'inlatinextendede' => '#/268',
+'inlatinextendedf' => '#/269',
+'inlatinextendedg' => '#/270',
+'inlatinextf' => '#/269',
+'inlatinextg' => '#/270',
'inlepcha' => '#/167',
-'inletterlikesymbols' => '#/391',
+'inletterlikesymbols' => '#/408',
'inlimbu' => '#/139',
-'inlineara' => '#/196',
-'inlinearbideograms' => '#/381',
-'inlinearbsyllabary' => '#/382',
-'inlisu' => '#/123',
-'inlisusup' => '#/197',
-'inlisusupplement' => '#/197',
-'inlowsurrogates' => '#/347',
+'inlineara' => '#/198',
+'inlinearbideograms' => '#/398',
+'inlinearbsyllabary' => '#/399',
+'inlisu' => '#/122',
+'inlisusup' => '#/199',
+'inlisusupplement' => '#/199',
+'inlowsurrogates' => '#/361',
'inlycian' => '#/168',
'inlydian' => '#/169',
-'inmahajani' => '#/242',
-'inmahjong' => '#/198',
-'inmahjongtiles' => '#/198',
-'inmakasar' => '#/199',
-'inmalayalam' => '#/264',
-'inmandaic' => '#/200',
-'inmanichaean' => '#/289',
-'inmarchen' => '#/201',
-'inmasaramgondi' => '#/335',
-'inmathalphanum' => '#/336',
-'inmathematicalalphanumericsymbols' => '#/336',
-'inmathematicaloperators' => '#/348',
-'inmathoperators' => '#/348',
-'inmayannumerals' => '#/349',
-'inmedefaidrin' => '#/311',
-'inmeeteimayek' => '#/312',
-'inmeeteimayekext' => '#/358',
-'inmeeteimayekextensions' => '#/358',
-'inmendekikakui' => '#/337',
-'inmeroiticcursive' => '#/368',
-'inmeroitichieroglyphs' => '#/402',
-'inmiao' => '#/124',
-'inmiscarrows' => '#/290',
-'inmiscellaneousmathematicalsymbolsa' => '#/383',
-'inmiscellaneousmathematicalsymbolsb' => '#/384',
-'inmiscellaneoussymbols' => '#/313',
-'inmiscellaneoussymbolsandarrows' => '#/290',
-'inmiscellaneoussymbolsandpictographs' => '#/369',
-'inmiscellaneoustechnical' => '#/350',
-'inmiscmathsymbolsa' => '#/383',
-'inmiscmathsymbolsb' => '#/384',
-'inmiscpictographs' => '#/369',
-'inmiscsymbols' => '#/313',
-'inmisctechnical' => '#/350',
-'inmodi' => '#/125',
-'inmodifierletters' => '#/370',
-'inmodifiertoneletters' => '#/403',
-'inmongolian' => '#/265',
-'inmongoliansup' => '#/338',
-'inmongoliansupplement' => '#/338',
-'inmro' => '#/115',
-'inmultani' => '#/202',
+'inmahajani' => '#/245',
+'inmahjong' => '#/200',
+'inmahjongtiles' => '#/200',
+'inmakasar' => '#/201',
+'inmalayalam' => '#/271',
+'inmandaic' => '#/202',
+'inmanichaean' => '#/299',
+'inmarchen' => '#/203',
+'inmasaramgondi' => '#/349',
+'inmathalphanum' => '#/350',
+'inmathematicalalphanumericsymbols' => '#/350',
+'inmathematicaloperators' => '#/362',
+'inmathoperators' => '#/362',
+'inmayannumerals' => '#/363',
+'inmedefaidrin' => '#/323',
+'inmeeteimayek' => '#/324',
+'inmeeteimayekext' => '#/374',
+'inmeeteimayekextensions' => '#/374',
+'inmendekikakui' => '#/351',
+'inmeroiticcursive' => '#/384',
+'inmeroitichieroglyphs' => '#/419',
+'inmiao' => '#/123',
+'inmiscarrows' => '#/300',
+'inmiscellaneousmathematicalsymbolsa' => '#/400',
+'inmiscellaneousmathematicalsymbolsb' => '#/401',
+'inmiscellaneoussymbols' => '#/325',
+'inmiscellaneoussymbolsandarrows' => '#/300',
+'inmiscellaneoussymbolsandpictographs' => '#/385',
+'inmiscellaneoustechnical' => '#/364',
+'inmiscmathsymbolsa' => '#/400',
+'inmiscmathsymbolsb' => '#/401',
+'inmiscpictographs' => '#/385',
+'inmiscsymbols' => '#/325',
+'inmisctechnical' => '#/364',
+'inmodi' => '#/124',
+'inmodifierletters' => '#/386',
+'inmodifiertoneletters' => '#/420',
+'inmongolian' => '#/272',
+'inmongoliansup' => '#/352',
+'inmongoliansupplement' => '#/352',
+'inmro' => '#/113',
+'inmultani' => '#/204',
'inmusic' => '#/140',
'inmusicalsymbols' => '#/140',
-'inmyanmar' => '#/203',
-'inmyanmarexta' => '#/314',
-'inmyanmarextb' => '#/315',
-'inmyanmarextendeda' => '#/314',
-'inmyanmarextendedb' => '#/315',
-'innabataean' => '#/266',
-'innandinagari' => '#/316',
+'inmyanmar' => '#/205',
+'inmyanmarexta' => '#/326',
+'inmyanmarextb' => '#/327',
+'inmyanmarextendeda' => '#/326',
+'inmyanmarextendedb' => '#/327',
+'innabataean' => '#/273',
+'innagmundari' => '#/301',
+'innandinagari' => '#/328',
'innb' => 'Blk/NB',
-'innewa' => '#/126',
-'innewtailue' => '#/267',
-'innko' => '#/116',
+'innewa' => '#/125',
+'innewtailue' => '#/274',
+'innko' => '#/114',
'innoblock' => 'Blk/NB',
-'innumberforms' => '#/317',
+'innumberforms' => '#/329',
'innushu' => '#/141',
-'innyiakengpuachuehmong' => '#/407',
-'inocr' => '#/117',
+'innyiakengpuachuehmong' => '#/424',
+'inocr' => '#/115',
'inogham' => '#/142',
-'inolchiki' => '#/204',
-'inoldhungarian' => '#/339',
-'inolditalic' => '#/268',
-'inoldnortharabian' => '#/371',
-'inoldpermic' => '#/269',
-'inoldpersian' => '#/291',
-'inoldsogdian' => '#/292',
-'inoldsoutharabian' => '#/372',
-'inoldturkic' => '#/270',
-'inopticalcharacterrecognition' => '#/117',
+'inolchiki' => '#/206',
+'inoldhungarian' => '#/353',
+'inolditalic' => '#/275',
+'inoldnortharabian' => '#/387',
+'inoldpermic' => '#/276',
+'inoldpersian' => '#/302',
+'inoldsogdian' => '#/303',
+'inoldsoutharabian' => '#/388',
+'inoldturkic' => '#/277',
+'inolduyghur' => '#/278',
+'inopticalcharacterrecognition' => '#/115',
'inoriya' => '#/143',
-'inornamentaldingbats' => '#/397',
+'inornamentaldingbats' => '#/414',
'inosage' => '#/144',
-'inosmanya' => '#/205',
-'inottomansiyaqnumbers' => '#/404',
-'inpahawhhmong' => '#/318',
-'inpalmyrene' => '#/271',
-'inpaucinhau' => '#/272',
+'inosmanya' => '#/207',
+'inottomansiyaqnumbers' => '#/421',
+'inpahawhhmong' => '#/330',
+'inpalmyrene' => '#/279',
+'inpaucinhau' => '#/280',
'inpc=bottom' => 'InPC/Bottom',
'inpc=bottomandleft' => '#/74',
'inpc=bottomandright' => 'InPC/BottomAn',
@@ -4816,54 +4966,54 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'inpc=topandleftandright' => 'InPC/TopAndL2',
'inpc=topandright' => 'InPC/TopAndRi',
'inpc=visualorderleft' => 'InPC/VisualOr',
-'inphagspa' => '#/206',
-'inphaistos' => '#/243',
-'inphaistosdisc' => '#/243',
-'inphoenician' => '#/293',
-'inphoneticext' => '#/319',
-'inphoneticextensions' => '#/319',
-'inphoneticextensionssupplement' => '#/359',
-'inphoneticextsup' => '#/359',
-'inplayingcards' => '#/340',
-'inprivateuse' => '#/118',
-'inprivateusearea' => '#/118',
-'inpsalterpahlavi' => '#/360',
-'inpua' => '#/118',
-'inpunctuation' => '#/320',
+'inphagspa' => '#/208',
+'inphaistos' => '#/246',
+'inphaistosdisc' => '#/246',
+'inphoenician' => '#/304',
+'inphoneticext' => '#/331',
+'inphoneticextensions' => '#/331',
+'inphoneticextensionssupplement' => '#/375',
+'inphoneticextsup' => '#/375',
+'inplayingcards' => '#/354',
+'inprivateuse' => '#/116',
+'inprivateusearea' => '#/116',
+'inpsalterpahlavi' => '#/376',
+'inpua' => '#/116',
+'inpunctuation' => '#/332',
'inrejang' => '#/170',
-'inrumi' => '#/127',
-'inruminumeralsymbols' => '#/127',
+'inrumi' => '#/126',
+'inruminumeralsymbols' => '#/126',
'inrunic' => '#/145',
-'insamaritan' => '#/273',
-'insaurashtra' => '#/294',
+'insamaritan' => '#/281',
+'insaurashtra' => '#/305',
'insc=avagraha' => 'InSC/Avagraha',
'insc=bindu' => 'InSC/Bindu',
-'insc=brahmijoiningnumber' => '#/84',
+'insc=brahmijoiningnumber' => '#/83',
'insc=cantillationmark' => 'InSC/Cantilla',
'insc=consonant' => 'InSC/Consonan',
'insc=consonantdead' => 'InSC/Consona2',
'insc=consonantfinal' => 'InSC/Consona3',
-'insc=consonantheadletter' => '#/85',
-'insc=consonantinitialpostfixed' => '#/87',
-'insc=consonantkiller' => '#/81',
+'insc=consonantheadletter' => '#/84',
+'insc=consonantinitialpostfixed' => '#/86',
+'insc=consonantkiller' => '#/80',
'insc=consonantmedial' => 'InSC/Consona4',
'insc=consonantplaceholder' => 'InSC/Consona7',
-'insc=consonantprecedingrepha' => '#/86',
+'insc=consonantprecedingrepha' => 'InSC/Consona9',
'insc=consonantprefixed' => 'InSC/Consona5',
'insc=consonantsubjoined' => 'InSC/Consona6',
-'insc=consonantsucceedingrepha' => 'InSC/Consona9',
+'insc=consonantsucceedingrepha' => '#/85',
'insc=consonantwithstacker' => 'InSC/Consona8',
-'insc=geminationmark' => '#/80',
+'insc=geminationmark' => 'InSC/Geminati',
'insc=invisiblestacker' => 'InSC/Invisibl',
'insc=joiner' => '#/69',
-'insc=modifyingletter' => '#/82',
+'insc=modifyingletter' => '#/81',
'insc=nonjoiner' => '#/77',
'insc=nukta' => 'InSC/Nukta',
'insc=number' => 'InSC/Number',
'insc=numberjoiner' => '#/79',
'insc=other' => 'InSC/Other',
'insc=purekiller' => 'InSC/PureKill',
-'insc=registershifter' => '#/83',
+'insc=registershifter' => '#/82',
'insc=syllablemodifier' => 'InSC/Syllable',
'insc=toneletter' => '#/78',
'insc=tonemark' => 'InSC/ToneMark',
@@ -4872,151 +5022,162 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'insc=vowel' => 'InSC/Vowel',
'insc=voweldependent' => 'InSC/VowelDep',
'insc=vowelindependent' => 'InSC/VowelInd',
-'inscriptionalpahlavi' => '#/687',
-'inscriptionalparthian' => '#/689',
-'insharada' => '#/207',
-'inshavian' => '#/208',
-'inshorthandformatcontrols' => '#/414',
-'insiddham' => '#/209',
-'insinhala' => '#/210',
-'insinhalaarchaicnumbers' => '#/409',
-'insmallforms' => '#/295',
-'insmallformvariants' => '#/295',
-'insmallkanaext' => '#/341',
-'insmallkanaextension' => '#/341',
-'insogdian' => '#/211',
-'insorasompeng' => '#/321',
-'insoyombo' => '#/212',
-'inspacingmodifierletters' => '#/370',
-'inspecials' => '#/244',
-'insundanese' => '#/274',
-'insundanesesup' => '#/342',
-'insundanesesupplement' => '#/342',
-'insuparrowsa' => '#/296',
-'insuparrowsb' => '#/297',
-'insuparrowsc' => '#/298',
-'insuperandsub' => '#/322',
-'insuperscriptsandsubscripts' => '#/322',
-'insupmathoperators' => '#/385',
-'insupplementalarrowsa' => '#/296',
-'insupplementalarrowsb' => '#/297',
-'insupplementalarrowsc' => '#/298',
-'insupplementalmathematicaloperators' => '#/385',
-'insupplementalpunctuation' => '#/361',
-'insupplementalsymbolsandpictographs' => '#/415',
-'insupplementaryprivateuseareaa' => '#/213',
-'insupplementaryprivateuseareab' => '#/214',
-'insuppuaa' => '#/213',
-'insuppuab' => '#/214',
-'insuppunctuation' => '#/361',
-'insupsymbolsandpictographs' => '#/415',
-'insuttonsignwriting' => '#/392',
-'insylotinagri' => '#/323',
-'insymbolsandpictographsexta' => '#/416',
-'insymbolsandpictographsextendeda' => '#/416',
-'insymbolsforlegacycomputing' => '#/417',
+'inscriptionalpahlavi' => '#/710',
+'inscriptionalparthian' => '#/712',
+'insharada' => '#/209',
+'inshavian' => '#/210',
+'inshorthandformatcontrols' => '#/431',
+'insiddham' => '#/211',
+'insinhala' => '#/212',
+'insinhalaarchaicnumbers' => '#/426',
+'insmallforms' => '#/306',
+'insmallformvariants' => '#/306',
+'insmallkanaext' => '#/355',
+'insmallkanaextension' => '#/355',
+'insogdian' => '#/213',
+'insorasompeng' => '#/333',
+'insoyombo' => '#/214',
+'inspacingmodifierletters' => '#/386',
+'inspecials' => '#/247',
+'insundanese' => '#/282',
+'insundanesesup' => '#/356',
+'insundanesesupplement' => '#/356',
+'insuparrowsa' => '#/307',
+'insuparrowsb' => '#/308',
+'insuparrowsc' => '#/309',
+'insuperandsub' => '#/334',
+'insuperscriptsandsubscripts' => '#/334',
+'insupmathoperators' => '#/402',
+'insupplementalarrowsa' => '#/307',
+'insupplementalarrowsb' => '#/308',
+'insupplementalarrowsc' => '#/309',
+'insupplementalmathematicaloperators' => '#/402',
+'insupplementalpunctuation' => '#/377',
+'insupplementalsymbolsandpictographs' => '#/432',
+'insupplementaryprivateuseareaa' => '#/215',
+'insupplementaryprivateuseareab' => '#/216',
+'insuppuaa' => '#/215',
+'insuppuab' => '#/216',
+'insuppunctuation' => '#/377',
+'insupsymbolsandpictographs' => '#/432',
+'insuttonsignwriting' => '#/409',
+'insylotinagri' => '#/335',
+'insymbolsandpictographsexta' => '#/433',
+'insymbolsandpictographsextendeda' => '#/433',
+'insymbolsforlegacycomputing' => '#/434',
'insyriac' => '#/171',
-'insyriacsup' => '#/275',
-'insyriacsupplement' => '#/275',
-'intagalog' => '#/215',
-'intagbanwa' => '#/245',
-'intags' => '#/128',
+'insyriacsup' => '#/283',
+'insyriacsupplement' => '#/283',
+'intagalog' => '#/217',
+'intagbanwa' => '#/248',
+'intags' => '#/127',
'intaile' => '#/146',
-'intaitham' => '#/216',
-'intaiviet' => '#/217',
-'intaixuanjing' => '#/324',
-'intaixuanjingsymbols' => '#/324',
+'intaitham' => '#/218',
+'intaiviet' => '#/219',
+'intaixuanjing' => '#/336',
+'intaixuanjingsymbols' => '#/336',
'intakri' => '#/147',
'intamil' => '#/148',
-'intamilsup' => '#/246',
-'intamilsupplement' => '#/246',
-'intangut' => '#/172',
-'intangutcomponents' => '#/386',
-'intangutsup' => '#/276',
-'intangutsupplement' => '#/276',
-'intelugu' => '#/173',
-'inthaana' => '#/174',
-'inthai' => '#/129',
-'intibetan' => '#/218',
-'intifinagh' => '#/247',
-'intirhuta' => '#/219',
-'intransportandmap' => '#/373',
-'intransportandmapsymbols' => '#/373',
+'intamilsup' => '#/249',
+'intamilsupplement' => '#/249',
+'intangsa' => '#/172',
+'intangut' => '#/173',
+'intangutcomponents' => '#/403',
+'intangutsup' => '#/284',
+'intangutsupplement' => '#/284',
+'intelugu' => '#/174',
+'inthaana' => '#/175',
+'inthai' => '#/128',
+'intibetan' => '#/220',
+'intifinagh' => '#/250',
+'intirhuta' => '#/221',
+'intoto' => '#/129',
+'intransportandmap' => '#/389',
+'intransportandmapsymbols' => '#/389',
'inucas' => '#/130',
-'inucasext' => '#/220',
-'inugaritic' => '#/248',
+'inucasext' => '#/222',
+'inucasexta' => '#/251',
+'inugaritic' => '#/252',
'inunifiedcanadianaboriginalsyllabics' => '#/130',
-'inunifiedcanadianaboriginalsyllabicsextended' => '#/220',
-'invai' => '#/119',
-'invariationselectors' => '#/111',
+'inunifiedcanadianaboriginalsyllabicsextended' => '#/222',
+'inunifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
+'invai' => '#/117',
+'invariationselectors' => '#/109',
'invariationselectorssupplement' => '#/149',
-'invedicext' => '#/249',
-'invedicextensions' => '#/249',
-'inverticalforms' => '#/351',
-'invs' => '#/111',
+'invedicext' => '#/253',
+'invedicextensions' => '#/253',
+'inverticalforms' => '#/365',
+'invithkuqi' => '#/254',
+'invs' => '#/109',
'invssup' => '#/149',
-'inwancho' => '#/175',
-'inwarangciti' => '#/299',
-'inyezidi' => '#/176',
-'inyijing' => '#/177',
-'inyijinghexagramsymbols' => '#/177',
-'inyiradicals' => '#/300',
-'inyisyllables' => '#/325',
-'inzanabazarsquare' => '#/374',
+'inwancho' => '#/176',
+'inwarangciti' => '#/310',
+'inyezidi' => '#/177',
+'inyijing' => '#/178',
+'inyijinghexagramsymbols' => '#/178',
+'inyiradicals' => '#/311',
+'inyisyllables' => '#/337',
+'inzanabazarsquare' => '#/390',
+'inznamennymusic' => '#/366',
+'inznamennymusicalnotation' => '#/366',
'ipaext' => '#/161',
'ipaextensions' => '#/161',
'isadlam' => 'Scx/Adlm',
'isadlm' => 'Scx/Adlm',
-'isaegeannumbers' => '#/343',
-'isaghb' => '#/635',
+'isaegeannumbers' => '#/357',
+'isaghb' => '#/654',
'isahex' => '#/60',
-'isahom' => '#/636',
-'isalchemical' => '#/277',
-'isalchemicalsymbols' => '#/277',
+'isahom' => '#/655',
+'isalchemical' => '#/285',
+'isalchemicalsymbols' => '#/285',
'isall' => '#/1',
'isalnum' => 'Perl/Alnum',
'isalpha' => 'Alpha/Y',
'isalphabetic' => 'Alpha/Y',
-'isalphabeticpf' => '#/326',
-'isalphabeticpresentationforms' => '#/326',
-'isanatolianhieroglyphs' => '#/657',
-'isancientgreekmusic' => '#/387',
-'isancientgreekmusicalnotation' => '#/387',
-'isancientgreeknumbers' => '#/398',
-'isancientsymbols' => '#/352',
+'isalphabeticpf' => '#/338',
+'isalphabeticpresentationforms' => '#/338',
+'isanatolianhieroglyphs' => '#/677',
+'isancientgreekmusic' => '#/404',
+'isancientgreekmusicalnotation' => '#/404',
+'isancientgreeknumbers' => '#/415',
+'isancientsymbols' => '#/367',
'isany' => '#/2',
'isarab' => 'Scx/Arab',
'isarabic' => 'Scx/Arab',
-'isarabicexta' => '#/278',
-'isarabicextendeda' => '#/278',
-'isarabicmath' => '#/279',
-'isarabicmathematicalalphabeticsymbols' => '#/279',
-'isarabicpfa' => '#/250',
-'isarabicpfb' => '#/251',
-'isarabicpresentationformsa' => '#/250',
-'isarabicpresentationformsb' => '#/251',
-'isarabicsup' => '#/252',
-'isarabicsupplement' => '#/252',
+'isarabicexta' => '#/286',
+'isarabicextb' => '#/287',
+'isarabicextc' => '#/288',
+'isarabicextendeda' => '#/286',
+'isarabicextendedb' => '#/287',
+'isarabicextendedc' => '#/288',
+'isarabicmath' => '#/289',
+'isarabicmathematicalalphabeticsymbols' => '#/289',
+'isarabicpfa' => '#/255',
+'isarabicpfb' => '#/256',
+'isarabicpresentationformsa' => '#/255',
+'isarabicpresentationformsb' => '#/256',
+'isarabicsup' => '#/257',
+'isarabicsupplement' => '#/257',
'isarmenian' => 'Scx/Armn',
-'isarmi' => '#/637',
+'isarmi' => '#/656',
'isarmn' => 'Scx/Armn',
'isarrows' => '#/151',
'isascii' => '#/131',
'isasciihexdigit' => '#/60',
'isassigned' => 'Perl/Assigned',
-'isavestan' => '#/638',
-'isavst' => '#/638',
-'isbali' => '#/639',
-'isbalinese' => '#/639',
-'isbamu' => '#/640',
-'isbamum' => '#/640',
-'isbamumsup' => '#/223',
-'isbamumsupplement' => '#/223',
+'isavestan' => '#/657',
+'isavst' => '#/657',
+'isbali' => '#/658',
+'isbalinese' => '#/658',
+'isbamu' => '#/659',
+'isbamum' => '#/659',
+'isbamumsup' => '#/225',
+'isbamumsupplement' => '#/225',
'isbasiclatin' => '#/131',
-'isbass' => '#/641',
-'isbassavah' => '#/641',
-'isbatak' => '#/642',
-'isbatk' => '#/642',
+'isbass' => '#/660',
+'isbassavah' => '#/660',
+'isbatak' => '#/661',
+'isbatk' => '#/661',
'isbeng' => 'Scx/Beng',
'isbengali' => 'Scx/Beng',
'isbhaiksuki' => 'Scx/Bhks',
@@ -5026,35 +5187,35 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isbidim' => 'BidiM/Y',
'isbidimirrored' => 'BidiM/Y',
'isblank' => 'Perl/Blank',
-'isblockelements' => '#/344',
+'isblockelements' => '#/358',
'isbopo' => 'Scx/Bopo',
'isbopomofo' => 'Scx/Bopo',
-'isbopomofoext' => '#/301',
-'isbopomofoextended' => '#/301',
-'isboxdrawing' => '#/280',
-'isbrah' => '#/643',
-'isbrahmi' => '#/643',
-'isbrai' => '#/180',
-'isbraille' => '#/180',
-'isbraillepatterns' => '#/180',
-'isbugi' => '#/644',
-'isbuginese' => '#/644',
-'isbuhd' => '#/645',
-'isbuhid' => '#/645',
-'isbyzantinemusic' => '#/353',
-'isbyzantinemusicalsymbols' => '#/353',
+'isbopomofoext' => '#/312',
+'isbopomofoextended' => '#/312',
+'isboxdrawing' => '#/290',
+'isbrah' => '#/662',
+'isbrahmi' => '#/662',
+'isbrai' => '#/181',
+'isbraille' => '#/181',
+'isbraillepatterns' => '#/181',
+'isbugi' => '#/663',
+'isbuginese' => '#/663',
+'isbuhd' => '#/664',
+'isbuhid' => '#/664',
+'isbyzantinemusic' => '#/368',
+'isbyzantinemusicalsymbols' => '#/368',
'isc' => 'Gc/C',
'iscakm' => 'Scx/Cakm',
-'iscanadianaboriginal' => '#/646',
+'iscanadianaboriginal' => '#/665',
'iscanadiansyllabics' => '#/130',
-'iscans' => '#/646',
-'iscari' => '#/647',
-'iscarian' => '#/647',
+'iscans' => '#/665',
+'iscari' => '#/666',
+'iscarian' => '#/666',
'iscased' => 'Cased/Y',
'iscasedletter' => 'Gc/LC',
'iscaseignorable' => 'CI/Y',
-'iscaucasianalbanian' => '#/635',
-'iscc' => '#/422',
+'iscaucasianalbanian' => '#/654',
+'iscc' => '#/439',
'isce' => 'CE/Y',
'iscf' => 'Gc/Cf',
'ischakma' => 'Scx/Cakm',
@@ -5065,74 +5226,77 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ischangeswhennfkccasefolded' => 'CWKCF/Y',
'ischangeswhentitlecased' => 'CWT/Y',
'ischangeswhenuppercased' => 'CWU/Y',
-'ischer' => '#/648',
-'ischerokee' => '#/648',
-'ischerokeesup' => '#/302',
-'ischerokeesupplement' => '#/302',
-'ischesssymbols' => '#/327',
-'ischorasmian' => '#/649',
-'ischrs' => '#/649',
+'ischer' => '#/667',
+'ischerokee' => '#/667',
+'ischerokeesup' => '#/313',
+'ischerokeesupplement' => '#/313',
+'ischesssymbols' => '#/339',
+'ischorasmian' => '#/668',
+'ischrs' => '#/668',
'isci' => 'CI/Y',
-'iscjk' => '#/112',
-'iscjkcompat' => '#/254',
-'iscjkcompatforms' => '#/354',
-'iscjkcompatibility' => '#/254',
-'iscjkcompatibilityforms' => '#/354',
-'iscjkcompatibilityideographs' => '#/399',
-'iscjkcompatibilityideographssupplement' => '#/410',
-'iscjkcompatideographs' => '#/399',
-'iscjkcompatideographssup' => '#/410',
-'iscjkexta' => '#/181',
-'iscjkextb' => '#/182',
-'iscjkextc' => '#/183',
-'iscjkextd' => '#/184',
-'iscjkexte' => '#/185',
-'iscjkextf' => '#/186',
-'iscjkextg' => '#/187',
-'iscjkradicalssup' => '#/355',
-'iscjkradicalssupplement' => '#/355',
-'iscjkstrokes' => '#/281',
-'iscjksymbols' => '#/282',
-'iscjksymbolsandpunctuation' => '#/282',
-'iscjkunifiedideographs' => '#/112',
-'iscjkunifiedideographsextensiona' => '#/181',
-'iscjkunifiedideographsextensionb' => '#/182',
-'iscjkunifiedideographsextensionc' => '#/183',
-'iscjkunifiedideographsextensiond' => '#/184',
-'iscjkunifiedideographsextensione' => '#/185',
-'iscjkunifiedideographsextensionf' => '#/186',
-'iscjkunifiedideographsextensiong' => '#/187',
+'iscjk' => '#/110',
+'iscjkcompat' => '#/259',
+'iscjkcompatforms' => '#/369',
+'iscjkcompatibility' => '#/259',
+'iscjkcompatibilityforms' => '#/369',
+'iscjkcompatibilityideographs' => '#/416',
+'iscjkcompatibilityideographssupplement' => '#/427',
+'iscjkcompatideographs' => '#/416',
+'iscjkcompatideographssup' => '#/427',
+'iscjkexta' => '#/182',
+'iscjkextb' => '#/183',
+'iscjkextc' => '#/184',
+'iscjkextd' => '#/185',
+'iscjkexte' => '#/186',
+'iscjkextf' => '#/187',
+'iscjkextg' => '#/188',
+'iscjkexth' => '#/189',
+'iscjkradicalssup' => '#/370',
+'iscjkradicalssupplement' => '#/370',
+'iscjkstrokes' => '#/291',
+'iscjksymbols' => '#/292',
+'iscjksymbolsandpunctuation' => '#/292',
+'iscjkunifiedideographs' => '#/110',
+'iscjkunifiedideographsextensiona' => '#/182',
+'iscjkunifiedideographsextensionb' => '#/183',
+'iscjkunifiedideographsextensionc' => '#/184',
+'iscjkunifiedideographsextensiond' => '#/185',
+'iscjkunifiedideographsextensione' => '#/186',
+'iscjkunifiedideographsextensionf' => '#/187',
+'iscjkunifiedideographsextensiong' => '#/188',
+'iscjkunifiedideographsextensionh' => '#/189',
'isclosepunctuation' => 'Gc/Pe',
'iscn' => 'Gc/Cn',
-'iscntrl' => '#/422',
-'isco' => '#/423',
-'iscombiningdiacriticalmarks' => '#/331',
-'iscombiningdiacriticalmarksextended' => '#/364',
-'iscombiningdiacriticalmarksforsymbols' => '#/411',
-'iscombiningdiacriticalmarkssupplement' => '#/365',
-'iscombininghalfmarks' => '#/257',
+'iscntrl' => '#/439',
+'isco' => '#/440',
+'iscombiningdiacriticalmarks' => '#/344',
+'iscombiningdiacriticalmarksextended' => '#/380',
+'iscombiningdiacriticalmarksforsymbols' => '#/428',
+'iscombiningdiacriticalmarkssupplement' => '#/381',
+'iscombininghalfmarks' => '#/262',
'iscombiningmark' => 'Gc/M',
-'iscombiningmarksforsymbols' => '#/411',
+'iscombiningmarksforsymbols' => '#/428',
'iscommon' => 'Scx/Zyyy',
-'iscommonindicnumberforms' => '#/380',
-'iscompatjamo' => '#/284',
+'iscommonindicnumberforms' => '#/396',
+'iscompatjamo' => '#/294',
'iscompex' => 'CompEx/Y',
'iscompositionexclusion' => 'CE/Y',
'isconnectorpunctuation' => 'Gc/Pc',
-'iscontrol' => '#/422',
-'iscontrolpictures' => '#/362',
+'iscontrol' => '#/439',
+'iscontrolpictures' => '#/378',
'iscopt' => 'Scx/Copt',
'iscoptic' => 'Scx/Copt',
-'iscopticepactnumbers' => '#/393',
-'iscountingrod' => '#/303',
-'iscountingrodnumerals' => '#/303',
+'iscopticepactnumbers' => '#/410',
+'iscountingrod' => '#/314',
+'iscountingrodnumerals' => '#/314',
+'iscpmn' => '#/669',
'iscprt' => 'Scx/Cprt',
'iscs' => '#/14',
'iscuneiform' => 'Scx/Xsux',
-'iscuneiformnumbers' => '#/375',
-'iscuneiformnumbersandpunctuation' => '#/375',
+'iscuneiformnumbers' => '#/391',
+'iscuneiformnumbersandpunctuation' => '#/391',
'iscurrencysymbol' => 'Gc/Sc',
-'iscurrencysymbols' => '#/363',
+'iscurrencysymbols' => '#/379',
'iscwcf' => 'CWCF/Y',
'iscwcm' => 'CWCM/Y',
'iscwkcf' => 'CWKCF/Y',
@@ -5140,17 +5304,20 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'iscwt' => 'CWT/Y',
'iscwu' => 'CWU/Y',
'iscypriot' => 'Scx/Cprt',
-'iscypriotsyllabary' => '#/376',
+'iscypriotsyllabary' => '#/392',
+'iscyprominoan' => '#/669',
'iscyrillic' => 'Scx/Cyrl',
-'iscyrillicexta' => '#/328',
-'iscyrillicextb' => '#/329',
-'iscyrillicextc' => '#/330',
-'iscyrillicextendeda' => '#/328',
-'iscyrillicextendedb' => '#/329',
-'iscyrillicextendedc' => '#/330',
-'iscyrillicsup' => '#/304',
-'iscyrillicsupplement' => '#/304',
-'iscyrillicsupplementary' => '#/304',
+'iscyrillicexta' => '#/340',
+'iscyrillicextb' => '#/341',
+'iscyrillicextc' => '#/342',
+'iscyrillicextd' => '#/343',
+'iscyrillicextendeda' => '#/340',
+'iscyrillicextendedb' => '#/341',
+'iscyrillicextendedc' => '#/342',
+'iscyrillicextendedd' => '#/343',
+'iscyrillicsup' => '#/316',
+'iscyrillicsupplement' => '#/316',
+'iscyrillicsupplementary' => '#/316',
'iscyrl' => 'Scx/Cyrl',
'isdash' => 'Dash/Y',
'isdashpunctuation' => 'Gc/Pd',
@@ -5158,64 +5325,68 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isdefaultignorablecodepoint' => 'DI/Y',
'isdep' => 'Dep/Y',
'isdeprecated' => 'Dep/Y',
-'isdeseret' => '#/188',
+'isdeseret' => '#/190',
'isdeva' => 'Scx/Deva',
'isdevanagari' => 'Scx/Deva',
-'isdevanagariext' => '#/345',
-'isdevanagariextended' => '#/345',
+'isdevanagariext' => '#/359',
+'isdevanagariexta' => '#/371',
+'isdevanagariextended' => '#/359',
+'isdevanagariextendeda' => '#/371',
'isdi' => 'DI/Y',
'isdia' => 'Dia/Y',
'isdiacritic' => 'Dia/Y',
-'isdiacriticals' => '#/331',
-'isdiacriticalsext' => '#/364',
-'isdiacriticalsforsymbols' => '#/411',
-'isdiacriticalssup' => '#/365',
+'isdiacriticals' => '#/344',
+'isdiacriticalsext' => '#/380',
+'isdiacriticalsforsymbols' => '#/428',
+'isdiacriticalssup' => '#/381',
'isdiak' => 'Scx/Diak',
'isdigit' => 'Gc/Nd',
-'isdingbats' => '#/229',
+'isdingbats' => '#/231',
'isdivesakuru' => 'Scx/Diak',
-'isdogr' => '#/650',
-'isdogra' => '#/650',
+'isdogr' => '#/670',
+'isdogra' => '#/670',
'isdomino' => '#/156',
'isdominotiles' => '#/156',
-'isdsrt' => '#/188',
+'isdsrt' => '#/190',
'isdupl' => 'Scx/Dupl',
'isduployan' => 'Scx/Dupl',
-'isearlydynasticcuneiform' => '#/412',
+'isearlydynasticcuneiform' => '#/429',
'isebase' => 'EBase/Y',
'isecomp' => 'EComp/Y',
-'isegyp' => '#/651',
-'isegyptianhieroglyphformatcontrols' => '#/418',
-'isegyptianhieroglyphs' => '#/651',
-'iselba' => '#/652',
-'iselbasan' => '#/652',
-'iselym' => '#/653',
-'iselymaic' => '#/653',
+'isegyp' => '#/671',
+'isegyptianhieroglyphformatcontrols' => '#/435',
+'isegyptianhieroglyphs' => '#/671',
+'iselba' => '#/672',
+'iselbasan' => '#/672',
+'iselym' => '#/673',
+'iselymaic' => '#/673',
'isemod' => '#/61',
'isemoji' => 'Emoji/Y',
'isemojicomponent' => 'EComp/Y',
'isemojimodifier' => '#/61',
'isemojimodifierbase' => 'EBase/Y',
'isemojipresentation' => 'EPres/Y',
-'isemoticons' => '#/256',
-'isenclosedalphanum' => '#/377',
-'isenclosedalphanumerics' => '#/377',
-'isenclosedalphanumericsupplement' => '#/401',
-'isenclosedalphanumsup' => '#/401',
-'isenclosedcjk' => '#/305',
-'isenclosedcjklettersandmonths' => '#/305',
-'isenclosedideographicsup' => '#/413',
-'isenclosedideographicsupplement' => '#/413',
+'isemoticons' => '#/261',
+'isenclosedalphanum' => '#/393',
+'isenclosedalphanumerics' => '#/393',
+'isenclosedalphanumericsupplement' => '#/418',
+'isenclosedalphanumsup' => '#/418',
+'isenclosedcjk' => '#/317',
+'isenclosedcjklettersandmonths' => '#/317',
+'isenclosedideographicsup' => '#/430',
+'isenclosedideographicsupplement' => '#/430',
'isenclosingmark' => 'Gc/Me',
'isepres' => 'EPres/Y',
'isethi' => 'Scx/Ethi',
'isethiopic' => 'Scx/Ethi',
-'isethiopicext' => '#/306',
-'isethiopicexta' => '#/332',
-'isethiopicextended' => '#/306',
-'isethiopicextendeda' => '#/332',
-'isethiopicsup' => '#/307',
-'isethiopicsupplement' => '#/307',
+'isethiopicext' => '#/318',
+'isethiopicexta' => '#/345',
+'isethiopicextb' => '#/346',
+'isethiopicextended' => '#/318',
+'isethiopicextendeda' => '#/345',
+'isethiopicextendedb' => '#/346',
+'isethiopicsup' => '#/319',
+'isethiopicsupplement' => '#/319',
'isext' => 'Ext/Y',
'isextendedpictographic' => 'ExtPict/Y',
'isextender' => 'Ext/Y',
@@ -5223,24 +5394,24 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isfinalpunctuation' => 'Gc/Pf',
'isformat' => 'Gc/Cf',
'isfullcompositionexclusion' => 'CompEx/Y',
-'isgeneralpunctuation' => '#/320',
-'isgeometricshapes' => '#/366',
-'isgeometricshapesext' => '#/394',
-'isgeometricshapesextended' => '#/394',
+'isgeneralpunctuation' => '#/332',
+'isgeometricshapes' => '#/382',
+'isgeometricshapesext' => '#/411',
+'isgeometricshapesextended' => '#/411',
'isgeor' => 'Scx/Geor',
'isgeorgian' => 'Scx/Geor',
-'isgeorgianext' => '#/308',
-'isgeorgianextended' => '#/308',
-'isgeorgiansup' => '#/309',
-'isgeorgiansupplement' => '#/309',
+'isgeorgianext' => '#/320',
+'isgeorgianextended' => '#/320',
+'isgeorgiansup' => '#/321',
+'isgeorgiansupplement' => '#/321',
'isglag' => 'Scx/Glag',
'isglagolitic' => 'Scx/Glag',
-'isglagoliticsup' => '#/346',
-'isglagoliticsupplement' => '#/346',
+'isglagoliticsup' => '#/360',
+'isglagoliticsupplement' => '#/360',
'isgong' => 'Scx/Gong',
'isgonm' => 'Scx/Gonm',
-'isgoth' => '#/654',
-'isgothic' => '#/654',
+'isgoth' => '#/674',
+'isgothic' => '#/674',
'isgran' => 'Scx/Gran',
'isgrantha' => 'Scx/Gran',
'isgraph' => 'Perl/Graph',
@@ -5249,8 +5420,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isgrbase' => 'GrBase/Y',
'isgreek' => 'Scx/Grek',
'isgreekandcoptic' => '#/137',
-'isgreekext' => '#/233',
-'isgreekextended' => '#/233',
+'isgreekext' => '#/235',
+'isgreekextended' => '#/235',
'isgrek' => 'Scx/Grek',
'isgrext' => 'GrExt/Y',
'isgujarati' => 'Scx/Gujr',
@@ -5258,93 +5429,97 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isgunjalagondi' => 'Scx/Gong',
'isgurmukhi' => 'Scx/Guru',
'isguru' => 'Scx/Guru',
-'ishalfandfullforms' => '#/378',
-'ishalfmarks' => '#/257',
-'ishalfwidthandfullwidthforms' => '#/378',
+'ishalfandfullforms' => '#/394',
+'ishalfmarks' => '#/262',
+'ishalfwidthandfullwidthforms' => '#/394',
'ishan' => 'Scx/Han',
'ishang' => 'Scx/Hang',
'ishangul' => 'Scx/Hang',
-'ishangulcompatibilityjamo' => '#/284',
-'ishanguljamo' => '#/122',
-'ishanguljamoextendeda' => '#/237',
-'ishanguljamoextendedb' => '#/238',
+'ishangulcompatibilityjamo' => '#/294',
+'ishanguljamo' => '#/120',
+'ishanguljamoextendeda' => '#/239',
+'ishanguljamoextendedb' => '#/240',
'ishangulsyllables' => '#/158',
'ishani' => 'Scx/Han',
'ishanifirohingya' => 'Scx/Rohg',
-'ishano' => '#/655',
-'ishanunoo' => '#/655',
-'ishatr' => '#/656',
-'ishatran' => '#/656',
+'ishano' => '#/675',
+'ishanunoo' => '#/675',
+'ishatr' => '#/676',
+'ishatran' => '#/676',
'ishebr' => 'Scx/Hebr',
'ishebrew' => 'Scx/Hebr',
'ishex' => 'Hex/Y',
'ishexdigit' => 'Hex/Y',
-'ishighprivateusesurrogates' => '#/379',
-'ishighpusurrogates' => '#/379',
-'ishighsurrogates' => '#/357',
+'ishighprivateusesurrogates' => '#/395',
+'ishighpusurrogates' => '#/395',
+'ishighsurrogates' => '#/373',
'ishira' => 'Scx/Hira',
'ishiragana' => 'Scx/Hira',
-'ishluw' => '#/657',
+'ishluw' => '#/677',
'ishmng' => 'Scx/Hmng',
'ishmnp' => 'Scx/Hmnp',
'ishorizspace' => 'Perl/Blank',
-'ishung' => '#/658',
+'ishung' => '#/678',
'ishyphen' => 'Hyphen/T',
'isidc' => 'IDC/Y',
'isidcontinue' => 'IDC/Y',
'isideo' => 'Ideo/Y',
'isideographic' => 'Ideo/Y',
-'isideographicdescriptioncharacters' => '#/113',
-'isideographicsymbols' => '#/395',
-'isideographicsymbolsandpunctuation' => '#/395',
+'isideographicdescriptioncharacters' => '#/111',
+'isideographicsymbols' => '#/412',
+'isideographicsymbolsandpunctuation' => '#/412',
'isids' => 'IDS/Y',
'isidsb' => '#/70',
'isidsbinaryoperator' => '#/70',
'isidst' => '#/72',
'isidstart' => 'IDS/Y',
'isidstrinaryoperator' => '#/72',
-'isimperialaramaic' => '#/637',
-'isindicnumberforms' => '#/380',
-'isindicsiyaqnumbers' => '#/389',
+'isimperialaramaic' => '#/656',
+'isindicnumberforms' => '#/396',
+'isindicsiyaqnumbers' => '#/406',
'isinherited' => 'Scx/Zinh',
'isinitialpunctuation' => 'Gc/Pi',
-'isinscriptionalpahlavi' => '#/687',
-'isinscriptionalparthian' => '#/689',
+'isinscriptionalpahlavi' => '#/710',
+'isinscriptionalparthian' => '#/712',
'isipaext' => '#/161',
'isipaextensions' => '#/161',
-'isital' => '#/659',
-'isjamo' => '#/122',
-'isjamoexta' => '#/237',
-'isjamoextb' => '#/238',
-'isjava' => '#/660',
-'isjavanese' => '#/660',
-'isjoinc' => '#/88',
-'isjoincontrol' => '#/88',
+'isital' => '#/679',
+'isjamo' => '#/120',
+'isjamoexta' => '#/239',
+'isjamoextb' => '#/240',
+'isjava' => '#/680',
+'isjavanese' => '#/680',
+'isjoinc' => '#/87',
+'isjoincontrol' => '#/87',
'iskaithi' => 'Scx/Kthi',
-'iskali' => '#/195',
+'iskaktoviknumerals' => '#/397',
+'iskali' => '#/197',
'iskana' => 'Scx/Kana',
-'iskanaexta' => '#/240',
-'iskanaextendeda' => '#/240',
-'iskanasup' => '#/193',
-'iskanasupplement' => '#/193',
+'iskanaexta' => '#/242',
+'iskanaextb' => '#/243',
+'iskanaextendeda' => '#/242',
+'iskanaextendedb' => '#/243',
+'iskanasup' => '#/195',
+'iskanasupplement' => '#/195',
'iskanbun' => '#/163',
'iskangxi' => '#/164',
'iskangxiradicals' => '#/164',
'iskannada' => 'Scx/Knda',
'iskatakana' => 'Scx/Kana',
-'iskatakanaext' => '#/310',
-'iskatakanaphoneticextensions' => '#/310',
-'iskayahli' => '#/195',
+'iskatakanaext' => '#/322',
+'iskatakanaphoneticextensions' => '#/322',
+'iskawi' => '#/681',
+'iskayahli' => '#/197',
'iskhar' => 'Scx/Khar',
'iskharoshthi' => 'Scx/Khar',
-'iskhitansmallscript' => '#/661',
+'iskhitansmallscript' => '#/682',
'iskhmer' => 'Scx/Khmr',
-'iskhmersymbols' => '#/334',
+'iskhmersymbols' => '#/348',
'iskhmr' => 'Scx/Khmr',
'iskhoj' => 'Scx/Khoj',
'iskhojki' => 'Scx/Khoj',
'iskhudawadi' => 'Scx/Sind',
-'iskits' => '#/661',
+'iskits' => '#/682',
'isknda' => 'Scx/Knda',
'iskthi' => 'Scx/Kthi',
'isl' => 'Gc/L',
@@ -5357,24 +5532,28 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'islatin1' => '#/166',
'islatin1sup' => '#/166',
'islatin1supplement' => '#/166',
-'islatinexta' => '#/259',
-'islatinextadditional' => '#/396',
-'islatinextb' => '#/260',
-'islatinextc' => '#/261',
-'islatinextd' => '#/262',
-'islatinexte' => '#/263',
-'islatinextendeda' => '#/259',
-'islatinextendedadditional' => '#/396',
-'islatinextendedb' => '#/260',
-'islatinextendedc' => '#/261',
-'islatinextendedd' => '#/262',
-'islatinextendede' => '#/263',
+'islatinexta' => '#/264',
+'islatinextadditional' => '#/413',
+'islatinextb' => '#/265',
+'islatinextc' => '#/266',
+'islatinextd' => '#/267',
+'islatinexte' => '#/268',
+'islatinextendeda' => '#/264',
+'islatinextendedadditional' => '#/413',
+'islatinextendedb' => '#/265',
+'islatinextendedc' => '#/266',
+'islatinextendedd' => '#/267',
+'islatinextendede' => '#/268',
+'islatinextendedf' => '#/269',
+'islatinextendedg' => '#/270',
+'islatinextf' => '#/269',
+'islatinextg' => '#/270',
'islatn' => 'Scx/Latn',
'islc' => 'Gc/LC',
-'islepc' => '#/662',
-'islepcha' => '#/662',
+'islepc' => '#/683',
+'islepcha' => '#/683',
'isletter' => 'Gc/L',
-'isletterlikesymbols' => '#/391',
+'isletterlikesymbols' => '#/408',
'isletternumber' => 'Gc/Nl',
'islimb' => 'Scx/Limb',
'islimbu' => 'Scx/Limb',
@@ -5382,12 +5561,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'islinb' => 'Scx/Linb',
'islineara' => 'Scx/Lina',
'islinearb' => 'Scx/Linb',
-'islinearbideograms' => '#/381',
-'islinearbsyllabary' => '#/382',
-'islineseparator' => '#/424',
-'islisu' => '#/663',
-'islisusup' => '#/197',
-'islisusupplement' => '#/197',
+'islinearbideograms' => '#/398',
+'islinearbsyllabary' => '#/399',
+'islineseparator' => '#/441',
+'islisu' => '#/684',
+'islisusup' => '#/199',
+'islisusupplement' => '#/199',
'isll' => 'Gc/Ll',
'islm' => 'Gc/Lm',
'islo' => 'Gc/Lo',
@@ -5396,172 +5575,176 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'islower' => 'Lower/Y',
'islowercase' => 'Lower/Y',
'islowercaseletter' => 'Gc/Ll',
-'islowsurrogates' => '#/347',
+'islowsurrogates' => '#/361',
'islt' => 'Perl/Title',
'islu' => 'Gc/Lu',
-'islyci' => '#/664',
-'islycian' => '#/664',
-'islydi' => '#/665',
-'islydian' => '#/665',
+'islyci' => '#/685',
+'islycian' => '#/685',
+'islydi' => '#/686',
+'islydian' => '#/686',
'ism' => 'Gc/M',
-'ismahajani' => '#/666',
-'ismahj' => '#/666',
-'ismahjong' => '#/198',
-'ismahjongtiles' => '#/198',
-'ismaka' => '#/667',
-'ismakasar' => '#/667',
+'ismahajani' => '#/687',
+'ismahj' => '#/687',
+'ismahjong' => '#/200',
+'ismahjongtiles' => '#/200',
+'ismaka' => '#/688',
+'ismakasar' => '#/688',
'ismalayalam' => 'Scx/Mlym',
-'ismand' => '#/668',
-'ismandaic' => '#/668',
-'ismani' => '#/669',
-'ismanichaean' => '#/669',
-'ismarc' => '#/670',
-'ismarchen' => '#/670',
+'ismand' => '#/689',
+'ismandaic' => '#/689',
+'ismani' => '#/690',
+'ismanichaean' => '#/690',
+'ismarc' => '#/691',
+'ismarchen' => '#/691',
'ismark' => 'Gc/M',
'ismasaramgondi' => 'Scx/Gonm',
'ismath' => 'Math/Y',
-'ismathalphanum' => '#/336',
-'ismathematicalalphanumericsymbols' => '#/336',
-'ismathematicaloperators' => '#/348',
-'ismathoperators' => '#/348',
+'ismathalphanum' => '#/350',
+'ismathematicalalphanumericsymbols' => '#/350',
+'ismathematicaloperators' => '#/362',
+'ismathoperators' => '#/362',
'ismathsymbol' => 'Gc/Sm',
-'ismayannumerals' => '#/349',
+'ismayannumerals' => '#/363',
'ismc' => 'Gc/Mc',
'isme' => 'Gc/Me',
-'ismedefaidrin' => '#/671',
-'ismedf' => '#/671',
-'ismeeteimayek' => '#/676',
-'ismeeteimayekext' => '#/358',
-'ismeeteimayekextensions' => '#/358',
-'ismend' => '#/672',
-'ismendekikakui' => '#/672',
-'ismerc' => '#/673',
-'ismero' => '#/402',
-'ismeroiticcursive' => '#/673',
-'ismeroitichieroglyphs' => '#/402',
-'ismiao' => '#/674',
-'ismiscarrows' => '#/290',
-'ismiscellaneousmathematicalsymbolsa' => '#/383',
-'ismiscellaneousmathematicalsymbolsb' => '#/384',
-'ismiscellaneoussymbols' => '#/313',
-'ismiscellaneoussymbolsandarrows' => '#/290',
-'ismiscellaneoussymbolsandpictographs' => '#/369',
-'ismiscellaneoustechnical' => '#/350',
-'ismiscmathsymbolsa' => '#/383',
-'ismiscmathsymbolsb' => '#/384',
-'ismiscpictographs' => '#/369',
-'ismiscsymbols' => '#/313',
-'ismisctechnical' => '#/350',
+'ismedefaidrin' => '#/692',
+'ismedf' => '#/692',
+'ismeeteimayek' => '#/697',
+'ismeeteimayekext' => '#/374',
+'ismeeteimayekextensions' => '#/374',
+'ismend' => '#/693',
+'ismendekikakui' => '#/693',
+'ismerc' => '#/694',
+'ismero' => '#/419',
+'ismeroiticcursive' => '#/694',
+'ismeroitichieroglyphs' => '#/419',
+'ismiao' => '#/695',
+'ismiscarrows' => '#/300',
+'ismiscellaneousmathematicalsymbolsa' => '#/400',
+'ismiscellaneousmathematicalsymbolsb' => '#/401',
+'ismiscellaneoussymbols' => '#/325',
+'ismiscellaneoussymbolsandarrows' => '#/300',
+'ismiscellaneoussymbolsandpictographs' => '#/385',
+'ismiscellaneoustechnical' => '#/364',
+'ismiscmathsymbolsa' => '#/400',
+'ismiscmathsymbolsb' => '#/401',
+'ismiscpictographs' => '#/385',
+'ismiscsymbols' => '#/325',
+'ismisctechnical' => '#/364',
'ismlym' => 'Scx/Mlym',
'ismn' => 'Gc/Mn',
-'ismodi' => '#/675',
+'ismodi' => '#/696',
'ismodifierletter' => 'Gc/Lm',
-'ismodifierletters' => '#/370',
+'ismodifierletters' => '#/386',
'ismodifiersymbol' => 'Gc/Sk',
-'ismodifiertoneletters' => '#/403',
+'ismodifiertoneletters' => '#/420',
'ismong' => 'Scx/Mong',
'ismongolian' => 'Scx/Mong',
-'ismongoliansup' => '#/338',
-'ismongoliansupplement' => '#/338',
-'ismro' => '#/632',
-'ismroo' => '#/632',
-'ismtei' => '#/676',
+'ismongoliansup' => '#/352',
+'ismongoliansupplement' => '#/352',
+'ismro' => '#/652',
+'ismroo' => '#/652',
+'ismtei' => '#/697',
'ismult' => 'Scx/Mult',
'ismultani' => 'Scx/Mult',
'ismusic' => '#/140',
'ismusicalsymbols' => '#/140',
'ismyanmar' => 'Scx/Mymr',
-'ismyanmarexta' => '#/314',
-'ismyanmarextb' => '#/315',
-'ismyanmarextendeda' => '#/314',
-'ismyanmarextendedb' => '#/315',
+'ismyanmarexta' => '#/326',
+'ismyanmarextb' => '#/327',
+'ismyanmarextendeda' => '#/326',
+'ismyanmarextendedb' => '#/327',
'ismymr' => 'Scx/Mymr',
'isn' => 'Gc/N',
-'isnabataean' => '#/677',
+'isnabataean' => '#/699',
+'isnagm' => '#/698',
+'isnagmundari' => '#/698',
'isnand' => 'Scx/Nand',
'isnandinagari' => 'Scx/Nand',
-'isnarb' => '#/371',
+'isnarb' => '#/387',
'isnb' => 'Blk/NB',
-'isnbat' => '#/677',
+'isnbat' => '#/699',
'isnchar' => 'Perl/_PerlNch',
'isnd' => 'Gc/Nd',
-'isnewa' => '#/678',
+'isnewa' => '#/700',
'isnewtailue' => 'Scx/Talu',
-'isnko' => '#/633',
-'isnkoo' => '#/633',
+'isnko' => 'Scx/Nko',
+'isnkoo' => 'Scx/Nko',
'isnl' => 'Gc/Nl',
'isno' => 'Gc/No',
'isnoblock' => 'Blk/NB',
'isnoncharactercodepoint' => 'Perl/_PerlNch',
'isnonspacingmark' => 'Gc/Mn',
-'isnshu' => '#/679',
+'isnshu' => '#/701',
'isnumber' => 'Gc/N',
-'isnumberforms' => '#/317',
-'isnushu' => '#/679',
+'isnumberforms' => '#/329',
+'isnushu' => '#/701',
'isnyiakengpuachuehmong' => 'Scx/Hmnp',
-'isocr' => '#/117',
-'isogam' => '#/680',
-'isogham' => '#/680',
-'isolchiki' => '#/204',
-'isolck' => '#/204',
-'isoldhungarian' => '#/658',
-'isolditalic' => '#/659',
-'isoldnortharabian' => '#/371',
-'isoldpermic' => '#/685',
-'isoldpersian' => '#/710',
-'isoldsogdian' => '#/697',
-'isoldsoutharabian' => '#/372',
-'isoldturkic' => '#/681',
+'isocr' => '#/115',
+'isogam' => '#/702',
+'isogham' => '#/702',
+'isolchiki' => '#/206',
+'isolck' => '#/206',
+'isoldhungarian' => '#/678',
+'isolditalic' => '#/679',
+'isoldnortharabian' => '#/387',
+'isoldpermic' => '#/708',
+'isoldpersian' => '#/735',
+'isoldsogdian' => '#/720',
+'isoldsoutharabian' => '#/388',
+'isoldturkic' => '#/703',
+'isolduyghur' => '#/706',
'isopenpunctuation' => 'Gc/Ps',
-'isopticalcharacterrecognition' => '#/117',
+'isopticalcharacterrecognition' => '#/115',
'isoriya' => 'Scx/Orya',
-'isorkh' => '#/681',
-'isornamentaldingbats' => '#/397',
+'isorkh' => '#/703',
+'isornamentaldingbats' => '#/414',
'isorya' => 'Scx/Orya',
-'isosage' => '#/682',
-'isosge' => '#/682',
-'isosma' => '#/683',
-'isosmanya' => '#/683',
+'isosage' => '#/704',
+'isosge' => '#/704',
+'isosma' => '#/705',
+'isosmanya' => '#/705',
'isother' => 'Gc/C',
'isotherletter' => 'Gc/Lo',
'isothernumber' => 'Gc/No',
'isotherpunctuation' => 'Gc/Po',
'isothersymbol' => 'Gc/So',
-'isottomansiyaqnumbers' => '#/404',
+'isottomansiyaqnumbers' => '#/421',
+'isougr' => '#/706',
'isp' => 'Gc/P',
'ispahawhhmong' => 'Scx/Hmng',
-'ispalm' => '#/271',
-'ispalmyrene' => '#/271',
-'isparagraphseparator' => '#/425',
+'ispalm' => '#/279',
+'ispalmyrene' => '#/279',
+'isparagraphseparator' => '#/442',
'ispatsyn' => 'PatSyn/Y',
'ispatternsyntax' => 'PatSyn/Y',
'ispatternwhitespace' => 'Perl/_PerlPat',
'ispatws' => 'Perl/_PerlPat',
-'ispauc' => '#/684',
-'ispaucinhau' => '#/684',
+'ispauc' => '#/707',
+'ispaucinhau' => '#/707',
'ispc' => 'Gc/Pc',
'ispcm' => 'PCM/Y',
'ispd' => 'Gc/Pd',
'ispe' => 'Gc/Pe',
'isperlspace' => '#/3',
'isperlword' => 'Perl/PerlWord',
-'isperm' => '#/685',
+'isperm' => '#/708',
'ispf' => 'Gc/Pf',
-'isphag' => '#/686',
-'isphagspa' => '#/686',
-'isphaistos' => '#/243',
-'isphaistosdisc' => '#/243',
-'isphli' => '#/687',
+'isphag' => '#/709',
+'isphagspa' => '#/709',
+'isphaistos' => '#/246',
+'isphaistosdisc' => '#/246',
+'isphli' => '#/710',
'isphlp' => 'Scx/Phlp',
-'isphnx' => '#/688',
-'isphoenician' => '#/688',
-'isphoneticext' => '#/319',
-'isphoneticextensions' => '#/319',
-'isphoneticextensionssupplement' => '#/359',
-'isphoneticextsup' => '#/359',
+'isphnx' => '#/711',
+'isphoenician' => '#/711',
+'isphoneticext' => '#/331',
+'isphoneticextensions' => '#/331',
+'isphoneticextensionssupplement' => '#/375',
+'isphoneticextsup' => '#/375',
'ispi' => 'Gc/Pi',
-'isplayingcards' => '#/340',
-'isplrd' => '#/674',
+'isplayingcards' => '#/354',
+'isplrd' => '#/695',
'ispo' => 'Gc/Po',
'isposixalnum' => '#/5',
'isposixalpha' => '#/6',
@@ -5578,178 +5761,185 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isposixxdigit' => '#/60',
'isprependedconcatenationmark' => 'PCM/Y',
'isprint' => 'Perl/Print',
-'isprivateuse' => '#/423',
-'isprivateusearea' => '#/118',
-'isprti' => '#/689',
+'isprivateuse' => '#/440',
+'isprivateusearea' => '#/116',
+'isprti' => '#/712',
'isps' => 'Gc/Ps',
'ispsalterpahlavi' => 'Scx/Phlp',
-'ispua' => '#/118',
+'ispua' => '#/116',
'ispunct' => 'Gc/P',
'ispunctuation' => 'Gc/P',
'isqaac' => 'Scx/Copt',
'isqaai' => 'Scx/Zinh',
'isqmark' => 'QMark/Y',
'isquotationmark' => 'QMark/Y',
-'isradical' => '#/91',
+'isradical' => '#/90',
'isregionalindicator' => '#/68',
-'isrejang' => '#/690',
+'isrejang' => '#/713',
'isri' => '#/68',
-'isrjng' => '#/690',
+'isrjng' => '#/713',
'isrohg' => 'Scx/Rohg',
-'isrumi' => '#/127',
-'isruminumeralsymbols' => '#/127',
-'isrunic' => '#/691',
-'isrunr' => '#/691',
+'isrumi' => '#/126',
+'isruminumeralsymbols' => '#/126',
+'isrunic' => '#/714',
+'isrunr' => '#/714',
'iss' => 'Gc/S',
-'issamaritan' => '#/692',
-'issamr' => '#/692',
-'issarb' => '#/372',
-'issaur' => '#/693',
-'issaurashtra' => '#/693',
+'issamaritan' => '#/715',
+'issamr' => '#/715',
+'issarb' => '#/388',
+'issaur' => '#/716',
+'issaurashtra' => '#/716',
'issc' => 'Gc/Sc',
'issd' => 'SD/Y',
'issentenceterminal' => 'STerm/Y',
'isseparator' => 'Gc/Z',
-'issgnw' => '#/694',
+'issgnw' => '#/717',
'issharada' => 'Scx/Shrd',
-'isshavian' => '#/208',
-'isshaw' => '#/208',
-'isshorthandformatcontrols' => '#/414',
+'isshavian' => '#/210',
+'isshaw' => '#/210',
+'isshorthandformatcontrols' => '#/431',
'isshrd' => 'Scx/Shrd',
-'issidd' => '#/695',
-'issiddham' => '#/695',
-'issignwriting' => '#/694',
+'issidd' => '#/718',
+'issiddham' => '#/718',
+'issignwriting' => '#/717',
'issind' => 'Scx/Sind',
'issinh' => 'Scx/Sinh',
'issinhala' => 'Scx/Sinh',
-'issinhalaarchaicnumbers' => '#/409',
+'issinhalaarchaicnumbers' => '#/426',
'issk' => 'Gc/Sk',
'issm' => 'Gc/Sm',
-'issmallforms' => '#/295',
-'issmallformvariants' => '#/295',
-'issmallkanaext' => '#/341',
-'issmallkanaextension' => '#/341',
+'issmallforms' => '#/306',
+'issmallformvariants' => '#/306',
+'issmallkanaext' => '#/355',
+'issmallkanaextension' => '#/355',
'isso' => 'Gc/So',
'issoftdotted' => 'SD/Y',
-'issogd' => '#/696',
-'issogdian' => '#/696',
-'issogo' => '#/697',
-'issora' => '#/698',
-'issorasompeng' => '#/698',
-'issoyo' => '#/699',
-'issoyombo' => '#/699',
+'issogd' => '#/719',
+'issogdian' => '#/719',
+'issogo' => '#/720',
+'issora' => '#/721',
+'issorasompeng' => '#/721',
+'issoyo' => '#/722',
+'issoyombo' => '#/722',
'isspace' => 'Perl/SpacePer',
'isspaceperl' => 'Perl/SpacePer',
'isspaceseparator' => 'Gc/Zs',
'isspacingmark' => 'Gc/Mc',
-'isspacingmodifierletters' => '#/370',
-'isspecials' => '#/244',
+'isspacingmodifierletters' => '#/386',
+'isspecials' => '#/247',
'issterm' => 'STerm/Y',
-'issund' => '#/700',
-'issundanese' => '#/700',
-'issundanesesup' => '#/342',
-'issundanesesupplement' => '#/342',
-'issuparrowsa' => '#/296',
-'issuparrowsb' => '#/297',
-'issuparrowsc' => '#/298',
-'issuperandsub' => '#/322',
-'issuperscriptsandsubscripts' => '#/322',
-'issupmathoperators' => '#/385',
-'issupplementalarrowsa' => '#/296',
-'issupplementalarrowsb' => '#/297',
-'issupplementalarrowsc' => '#/298',
-'issupplementalmathematicaloperators' => '#/385',
-'issupplementalpunctuation' => '#/361',
-'issupplementalsymbolsandpictographs' => '#/415',
-'issupplementaryprivateuseareaa' => '#/213',
-'issupplementaryprivateuseareab' => '#/214',
-'issuppuaa' => '#/213',
-'issuppuab' => '#/214',
-'issuppunctuation' => '#/361',
-'issupsymbolsandpictographs' => '#/415',
+'issund' => '#/723',
+'issundanese' => '#/723',
+'issundanesesup' => '#/356',
+'issundanesesupplement' => '#/356',
+'issuparrowsa' => '#/307',
+'issuparrowsb' => '#/308',
+'issuparrowsc' => '#/309',
+'issuperandsub' => '#/334',
+'issuperscriptsandsubscripts' => '#/334',
+'issupmathoperators' => '#/402',
+'issupplementalarrowsa' => '#/307',
+'issupplementalarrowsb' => '#/308',
+'issupplementalarrowsc' => '#/309',
+'issupplementalmathematicaloperators' => '#/402',
+'issupplementalpunctuation' => '#/377',
+'issupplementalsymbolsandpictographs' => '#/432',
+'issupplementaryprivateuseareaa' => '#/215',
+'issupplementaryprivateuseareab' => '#/216',
+'issuppuaa' => '#/215',
+'issuppuab' => '#/216',
+'issuppunctuation' => '#/377',
+'issupsymbolsandpictographs' => '#/432',
'issurrogate' => '#/14',
-'issuttonsignwriting' => '#/392',
-'issylo' => '#/701',
-'issylotinagri' => '#/701',
+'issuttonsignwriting' => '#/409',
+'issylo' => '#/724',
+'issylotinagri' => '#/724',
'issymbol' => 'Gc/S',
-'issymbolsandpictographsexta' => '#/416',
-'issymbolsandpictographsextendeda' => '#/416',
-'issymbolsforlegacycomputing' => '#/417',
+'issymbolsandpictographsexta' => '#/433',
+'issymbolsandpictographsextendeda' => '#/433',
+'issymbolsforlegacycomputing' => '#/434',
'issyrc' => 'Scx/Syrc',
'issyriac' => 'Scx/Syrc',
-'issyriacsup' => '#/275',
-'issyriacsupplement' => '#/275',
-'istagalog' => '#/705',
+'issyriacsup' => '#/283',
+'issyriacsupplement' => '#/283',
+'istagalog' => '#/728',
'istagb' => 'Scx/Tagb',
'istagbanwa' => 'Scx/Tagb',
-'istags' => '#/128',
-'istaile' => '#/702',
+'istags' => '#/127',
+'istaile' => '#/725',
'istaitham' => 'Scx/Lana',
-'istaiviet' => '#/703',
-'istaixuanjing' => '#/324',
-'istaixuanjingsymbols' => '#/324',
+'istaiviet' => '#/726',
+'istaixuanjing' => '#/336',
+'istaixuanjingsymbols' => '#/336',
'istakr' => 'Scx/Takr',
'istakri' => 'Scx/Takr',
-'istale' => '#/702',
+'istale' => '#/725',
'istalu' => 'Scx/Talu',
'istamil' => 'Scx/Taml',
-'istamilsup' => '#/246',
-'istamilsupplement' => '#/246',
+'istamilsup' => '#/249',
+'istamilsupplement' => '#/249',
'istaml' => 'Scx/Taml',
'istang' => 'Scx/Tang',
+'istangsa' => '#/730',
'istangut' => 'Scx/Tang',
-'istangutcomponents' => '#/386',
-'istangutsup' => '#/276',
-'istangutsupplement' => '#/276',
-'istavt' => '#/703',
+'istangutcomponents' => '#/403',
+'istangutsup' => '#/284',
+'istangutsupplement' => '#/284',
+'istavt' => '#/726',
'istelu' => 'Scx/Telu',
'istelugu' => 'Scx/Telu',
'isterm' => 'Term/Y',
'isterminalpunctuation' => 'Term/Y',
-'istfng' => '#/704',
-'istglg' => '#/705',
+'istfng' => '#/727',
+'istglg' => '#/728',
'isthaa' => 'Scx/Thaa',
'isthaana' => 'Scx/Thaa',
-'isthai' => '#/706',
+'isthai' => '#/729',
'istibetan' => 'Scx/Tibt',
'istibt' => 'Scx/Tibt',
-'istifinagh' => '#/704',
+'istifinagh' => '#/727',
'istirh' => 'Scx/Tirh',
'istirhuta' => 'Scx/Tirh',
'istitle' => 'Perl/Title',
'istitlecase' => 'Perl/Title',
'istitlecaseletter' => 'Perl/Title',
-'istransportandmap' => '#/373',
-'istransportandmapsymbols' => '#/373',
+'istnsa' => '#/730',
+'istoto' => '#/731',
+'istransportandmap' => '#/389',
+'istransportandmapsymbols' => '#/389',
'isucas' => '#/130',
-'isucasext' => '#/220',
-'isugar' => '#/707',
-'isugaritic' => '#/707',
+'isucasext' => '#/222',
+'isucasexta' => '#/251',
+'isugar' => '#/732',
+'isugaritic' => '#/732',
'isuideo' => 'UIdeo/Y',
'isunassigned' => 'Gc/Cn',
'isunicode' => '#/2',
'isunifiedcanadianaboriginalsyllabics' => '#/130',
-'isunifiedcanadianaboriginalsyllabicsextended' => '#/220',
+'isunifiedcanadianaboriginalsyllabicsextended' => '#/222',
+'isunifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
'isunifiedideograph' => 'UIdeo/Y',
'isunknown' => 'Scx/Zzzz',
'isupper' => 'Upper/Y',
'isuppercase' => 'Upper/Y',
'isuppercaseletter' => 'Gc/Lu',
-'isvai' => '#/634',
-'isvaii' => '#/634',
-'isvariationselector' => '#/93',
-'isvariationselectors' => '#/111',
+'isvai' => '#/653',
+'isvaii' => '#/653',
+'isvariationselector' => 'VS/Y',
+'isvariationselectors' => '#/109',
'isvariationselectorssupplement' => '#/149',
-'isvedicext' => '#/249',
-'isvedicextensions' => '#/249',
-'isverticalforms' => '#/351',
+'isvedicext' => '#/253',
+'isvedicextensions' => '#/253',
+'isverticalforms' => '#/365',
'isvertspace' => '#/4',
-'isvs' => '#/93',
+'isvith' => 'Scx/Vith',
+'isvithkuqi' => 'Scx/Vith',
+'isvs' => 'VS/Y',
'isvssup' => '#/149',
-'iswancho' => '#/709',
-'iswara' => '#/708',
-'iswarangciti' => '#/708',
-'iswcho' => '#/709',
+'iswancho' => '#/734',
+'iswara' => '#/733',
+'iswarangciti' => '#/733',
+'iswcho' => '#/734',
'iswhitespace' => 'Perl/SpacePer',
'isword' => 'Perl/Word',
'iswspace' => 'Perl/SpacePer',
@@ -5758,12 +5948,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isxidcontinue' => 'XIDC/Y',
'isxids' => 'XIDS/Y',
'isxidstart' => 'XIDS/Y',
-'isxpeo' => '#/710',
+'isxpeo' => '#/735',
'isxperlspace' => 'Perl/SpacePer',
'isxposixalnum' => 'Perl/Alnum',
'isxposixalpha' => 'Alpha/Y',
'isxposixblank' => 'Perl/Blank',
-'isxposixcntrl' => '#/422',
+'isxposixcntrl' => '#/439',
'isxposixdigit' => 'Gc/Nd',
'isxposixgraph' => 'Perl/Graph',
'isxposixlower' => 'Lower/Y',
@@ -5778,138 +5968,142 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'isyezidi' => 'Scx/Yezi',
'isyi' => 'Scx/Yi',
'isyiii' => 'Scx/Yi',
-'isyijing' => '#/177',
-'isyijinghexagramsymbols' => '#/177',
-'isyiradicals' => '#/300',
-'isyisyllables' => '#/325',
+'isyijing' => '#/178',
+'isyijinghexagramsymbols' => '#/178',
+'isyiradicals' => '#/311',
+'isyisyllables' => '#/337',
'isz' => 'Gc/Z',
-'iszanabazarsquare' => '#/711',
-'iszanb' => '#/711',
+'iszanabazarsquare' => '#/736',
+'iszanb' => '#/736',
'iszinh' => 'Scx/Zinh',
-'iszl' => '#/424',
-'iszp' => '#/425',
+'iszl' => '#/441',
+'isznamennymusic' => '#/366',
+'isznamennymusicalnotation' => '#/366',
+'iszp' => '#/442',
'iszs' => 'Gc/Zs',
'iszyyy' => 'Scx/Zyyy',
'iszzzz' => 'Scx/Zzzz',
-'ital' => '#/659',
-'jamo' => '#/122',
-'jamoexta' => '#/237',
-'jamoextb' => '#/238',
-'java' => '#/660',
-'javanese' => '#/660',
-'jg=africanfeh' => '#/458',
-'jg=africannoon' => '#/464',
-'jg=africanqaf' => '#/459',
+'ital' => '#/679',
+'jamo' => '#/120',
+'jamoexta' => '#/239',
+'jamoextb' => '#/240',
+'java' => '#/680',
+'javanese' => '#/680',
+'jg=africanfeh' => '#/474',
+'jg=africannoon' => '#/480',
+'jg=africanqaf' => '#/475',
'jg=ain' => 'Jg/Ain',
-'jg=alaph' => '#/446',
+'jg=alaph' => '#/461',
'jg=alef' => 'Jg/Alef',
'jg=beh' => 'Jg/Beh',
-'jg=beth' => '#/436',
-'jg=burushaskiyehbarree' => '#/509',
+'jg=beth' => '#/452',
+'jg=burushaskiyehbarree' => '#/526',
'jg=dal' => 'Jg/Dal',
-'jg=dalathrish' => '#/460',
-'jg=e' => '#/426',
+'jg=dalathrish' => '#/476',
+'jg=e' => '#/443',
'jg=farsiyeh' => 'Jg/FarsiYeh',
-'jg=fe' => '#/427',
+'jg=fe' => '#/444',
'jg=feh' => 'Jg/Feh',
-'jg=finalsemkath' => '#/470',
+'jg=finalsemkath' => '#/486',
'jg=gaf' => 'Jg/Gaf',
-'jg=gamal' => '#/447',
+'jg=gamal' => '#/462',
'jg=hah' => 'Jg/Hah',
-'jg=hamzaonhehgoal' => '#/487',
+'jg=hamzaonhehgoal' => '#/504',
'jg=hanifirohingyakinnaya' => 'Jg/HanifiRo',
-'jg=hanifirohingyapa' => '#/501',
-'jg=he' => '#/428',
-'jg=heh' => '#/430',
-'jg=hehgoal' => '#/453',
-'jg=heth' => '#/437',
+'jg=hanifirohingyapa' => '#/518',
+'jg=he' => '#/445',
+'jg=heh' => '#/447',
+'jg=hehgoal' => '#/468',
+'jg=heth' => '#/453',
'jg=kaf' => 'Jg/Kaf',
-'jg=kaph' => '#/438',
-'jg=khaph' => '#/448',
-'jg=knottedheh' => '#/461',
+'jg=kaph' => '#/454',
+'jg=khaph' => '#/463',
+'jg=knottedheh' => '#/477',
'jg=lam' => 'Jg/Lam',
-'jg=lamadh' => '#/451',
-'jg=malayalambha' => '#/471',
-'jg=malayalamja' => '#/465',
-'jg=malayalamlla' => '#/472',
-'jg=malayalamllla' => '#/479',
-'jg=malayalamnga' => '#/473',
-'jg=malayalamnna' => '#/474',
-'jg=malayalamnnna' => '#/480',
-'jg=malayalamnya' => '#/475',
-'jg=malayalamra' => '#/466',
-'jg=malayalamssa' => '#/476',
-'jg=malayalamtta' => '#/477',
-'jg=manichaeanaleph' => '#/497',
-'jg=manichaeanayin' => '#/488',
-'jg=manichaeanbeth' => '#/489',
-'jg=manichaeandaleth' => '#/502',
-'jg=manichaeandhamedh' => '#/506',
-'jg=manichaeanfive' => '#/490',
-'jg=manichaeangimel' => '#/498',
-'jg=manichaeanheth' => '#/491',
-'jg=manichaeanhundred' => '#/507',
-'jg=manichaeankaph' => '#/492',
-'jg=manichaeanlamedh' => '#/503',
-'jg=manichaeanmem' => '#/481',
-'jg=manichaeannun' => '#/482',
-'jg=manichaeanone' => '#/483',
-'jg=manichaeanpe' => '#/478',
-'jg=manichaeanqoph' => '#/493',
-'jg=manichaeanresh' => '#/494',
-'jg=manichaeansadhe' => '#/499',
-'jg=manichaeansamekh' => '#/504',
-'jg=manichaeantaw' => '#/484',
-'jg=manichaeanten' => '#/485',
-'jg=manichaeanteth' => '#/495',
-'jg=manichaeanthamedh' => '#/508',
-'jg=manichaeantwenty' => '#/505',
-'jg=manichaeanwaw' => '#/486',
-'jg=manichaeanyodh' => '#/496',
-'jg=manichaeanzayin' => '#/500',
-'jg=meem' => '#/439',
-'jg=mim' => '#/431',
+'jg=lamadh' => '#/466',
+'jg=malayalambha' => '#/487',
+'jg=malayalamja' => '#/481',
+'jg=malayalamlla' => '#/488',
+'jg=malayalamllla' => '#/496',
+'jg=malayalamnga' => '#/489',
+'jg=malayalamnna' => '#/490',
+'jg=malayalamnnna' => '#/497',
+'jg=malayalamnya' => '#/491',
+'jg=malayalamra' => '#/482',
+'jg=malayalamssa' => '#/492',
+'jg=malayalamtta' => '#/493',
+'jg=manichaeanaleph' => '#/514',
+'jg=manichaeanayin' => '#/505',
+'jg=manichaeanbeth' => '#/506',
+'jg=manichaeandaleth' => '#/519',
+'jg=manichaeandhamedh' => '#/523',
+'jg=manichaeanfive' => '#/507',
+'jg=manichaeangimel' => '#/515',
+'jg=manichaeanheth' => '#/508',
+'jg=manichaeanhundred' => '#/524',
+'jg=manichaeankaph' => '#/509',
+'jg=manichaeanlamedh' => '#/520',
+'jg=manichaeanmem' => '#/498',
+'jg=manichaeannun' => '#/499',
+'jg=manichaeanone' => '#/500',
+'jg=manichaeanpe' => '#/494',
+'jg=manichaeanqoph' => '#/510',
+'jg=manichaeanresh' => '#/511',
+'jg=manichaeansadhe' => '#/516',
+'jg=manichaeansamekh' => '#/521',
+'jg=manichaeantaw' => '#/501',
+'jg=manichaeanten' => '#/502',
+'jg=manichaeanteth' => '#/512',
+'jg=manichaeanthamedh' => '#/525',
+'jg=manichaeantwenty' => '#/522',
+'jg=manichaeanwaw' => '#/503',
+'jg=manichaeanyodh' => '#/513',
+'jg=manichaeanzayin' => '#/517',
+'jg=meem' => '#/455',
+'jg=mim' => '#/448',
'jg=nojoininggroup' => 'Jg/NoJoinin',
-'jg=noon' => '#/440',
-'jg=nun' => '#/432',
-'jg=nya' => '#/433',
-'jg=pe' => '#/429',
+'jg=noon' => 'Jg/Noon',
+'jg=nun' => '#/449',
+'jg=nya' => '#/450',
+'jg=pe' => '#/446',
'jg=qaf' => 'Jg/Qaf',
-'jg=qaph' => '#/441',
+'jg=qaph' => '#/456',
'jg=reh' => 'Jg/Reh',
-'jg=reversedpe' => '#/462',
-'jg=rohingyayeh' => '#/467',
+'jg=reversedpe' => '#/478',
+'jg=rohingyayeh' => '#/483',
'jg=sad' => 'Jg/Sad',
-'jg=sadhe' => '#/449',
+'jg=sadhe' => '#/464',
'jg=seen' => 'Jg/Seen',
-'jg=semkath' => '#/454',
-'jg=shin' => '#/442',
-'jg=straightwaw' => '#/468',
-'jg=swashkaf' => '#/455',
-'jg=syriacwaw' => '#/456',
-'jg=tah' => '#/434',
-'jg=taw' => '#/435',
-'jg=tehmarbuta' => '#/463',
-'jg=tehmarbutagoal' => '#/487',
-'jg=teth' => '#/443',
+'jg=semkath' => '#/469',
+'jg=shin' => '#/457',
+'jg=straightwaw' => '#/484',
+'jg=swashkaf' => '#/471',
+'jg=syriacwaw' => '#/472',
+'jg=tah' => 'Jg/Tah',
+'jg=taw' => '#/451',
+'jg=tehmarbuta' => '#/479',
+'jg=tehmarbutagoal' => '#/504',
+'jg=teth' => '#/458',
+'jg=thinyeh' => '#/470',
+'jg=verticaltail' => '#/495',
'jg=waw' => 'Jg/Waw',
'jg=yeh' => 'Jg/Yeh',
-'jg=yehbarree' => '#/457',
-'jg=yehwithtail' => '#/469',
-'jg=yudh' => '#/444',
-'jg=yudhhe' => '#/452',
-'jg=zain' => '#/445',
-'jg=zhain' => '#/450',
-'joinc' => '#/88',
-'joinc=f' => '#/!88',
-'joinc=false' => '#/!88',
-'joinc=n' => '#/!88',
-'joinc=no' => '#/!88',
-'joinc=t' => '#/88',
-'joinc=true' => '#/88',
-'joinc=y' => '#/88',
-'joinc=yes' => '#/88',
-'joincontrol' => '#/88',
+'jg=yehbarree' => '#/473',
+'jg=yehwithtail' => '#/485',
+'jg=yudh' => '#/459',
+'jg=yudhhe' => '#/467',
+'jg=zain' => '#/460',
+'jg=zhain' => '#/465',
+'joinc' => '#/87',
+'joinc=f' => '#/!87',
+'joinc=false' => '#/!87',
+'joinc=n' => '#/!87',
+'joinc=no' => '#/!87',
+'joinc=t' => '#/87',
+'joinc=true' => '#/87',
+'joinc=y' => '#/87',
+'joinc=yes' => '#/87',
+'joincontrol' => '#/87',
'jt=c' => 'Jt/C',
'jt=d' => 'Jt/D',
'jt=dualjoining' => 'Jt/D',
@@ -5923,30 +6117,34 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'jt=transparent' => 'Jt/T',
'jt=u' => 'Jt/U',
'kaithi' => 'Scx/Kthi',
-'kali' => '#/195',
+'kaktoviknumerals' => '#/397',
+'kali' => '#/197',
'kana' => 'Scx/Kana',
-'kanaexta' => '#/240',
-'kanaextendeda' => '#/240',
-'kanasup' => '#/193',
-'kanasupplement' => '#/193',
+'kanaexta' => '#/242',
+'kanaextb' => '#/243',
+'kanaextendeda' => '#/242',
+'kanaextendedb' => '#/243',
+'kanasup' => '#/195',
+'kanasupplement' => '#/195',
'kanbun' => '#/163',
'kangxi' => '#/164',
'kangxiradicals' => '#/164',
'kannada' => 'Scx/Knda',
'katakana' => 'Scx/Kana',
-'katakanaext' => '#/310',
-'katakanaphoneticextensions' => '#/310',
-'kayahli' => '#/195',
+'katakanaext' => '#/322',
+'katakanaphoneticextensions' => '#/322',
+'kawi' => '#/681',
+'kayahli' => '#/197',
'khar' => 'Scx/Khar',
'kharoshthi' => 'Scx/Khar',
-'khitansmallscript' => '#/661',
+'khitansmallscript' => '#/682',
'khmer' => 'Scx/Khmr',
-'khmersymbols' => '#/334',
+'khmersymbols' => '#/348',
'khmr' => 'Scx/Khmr',
'khoj' => 'Scx/Khoj',
'khojki' => 'Scx/Khoj',
'khudawadi' => 'Scx/Sind',
-'kits' => '#/661',
+'kits' => '#/682',
'knda' => 'Scx/Knda',
'kthi' => 'Scx/Kthi',
'l' => 'Gc/L',
@@ -5959,43 +6157,47 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'latin1' => '#/166',
'latin1sup' => '#/166',
'latin1supplement' => '#/166',
-'latinexta' => '#/259',
-'latinextadditional' => '#/396',
-'latinextb' => '#/260',
-'latinextc' => '#/261',
-'latinextd' => '#/262',
-'latinexte' => '#/263',
-'latinextendeda' => '#/259',
-'latinextendedadditional' => '#/396',
-'latinextendedb' => '#/260',
-'latinextendedc' => '#/261',
-'latinextendedd' => '#/262',
-'latinextendede' => '#/263',
+'latinexta' => '#/264',
+'latinextadditional' => '#/413',
+'latinextb' => '#/265',
+'latinextc' => '#/266',
+'latinextd' => '#/267',
+'latinexte' => '#/268',
+'latinextendeda' => '#/264',
+'latinextendedadditional' => '#/413',
+'latinextendedb' => '#/265',
+'latinextendedc' => '#/266',
+'latinextendedd' => '#/267',
+'latinextendede' => '#/268',
+'latinextendedf' => '#/269',
+'latinextendedg' => '#/270',
+'latinextf' => '#/269',
+'latinextg' => '#/270',
'latn' => 'Scx/Latn',
'lb=ai' => 'Lb/AI',
'lb=al' => 'Lb/AL',
'lb=alphabetic' => 'Lb/AL',
'lb=ambiguous' => 'Lb/AI',
-'lb=b2' => '#/510',
+'lb=b2' => '#/527',
'lb=ba' => 'Lb/BA',
'lb=bb' => 'Lb/BB',
-'lb=bk' => '#/511',
+'lb=bk' => '#/528',
'lb=breakafter' => 'Lb/BA',
'lb=breakbefore' => 'Lb/BB',
-'lb=breakboth' => '#/510',
-'lb=breaksymbols' => '#/518',
+'lb=breakboth' => '#/527',
+'lb=breaksymbols' => '#/535',
'lb=carriagereturn' => '#/66',
-'lb=cb' => '#/512',
+'lb=cb' => '#/529',
'lb=cj' => 'Lb/CJ',
'lb=cl' => 'Lb/CL',
-'lb=closeparenthesis' => '#/513',
+'lb=closeparenthesis' => '#/530',
'lb=closepunctuation' => 'Lb/CL',
'lb=cm' => 'Lb/CM',
'lb=combiningmark' => 'Lb/CM',
'lb=complexcontext' => 'Lb/SA',
'lb=conditionaljapanesestarter' => 'Lb/CJ',
-'lb=contingentbreak' => '#/512',
-'lb=cp' => '#/513',
+'lb=contingentbreak' => '#/529',
+'lb=cp' => '#/530',
'lb=cr' => '#/66',
'lb=eb' => 'EBase/Y',
'lb=ebase' => 'EBase/Y',
@@ -6009,8 +6211,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'lb=h3' => 'GCB/LVT',
'lb=hebrewletter' => 'WB/HL',
'lb=hl' => 'WB/HL',
-'lb=hy' => '#/514',
-'lb=hyphen' => '#/514',
+'lb=hy' => '#/531',
+'lb=hyphen' => '#/531',
'lb=id' => 'Lb/ID',
'lb=ideographic' => 'Lb/ID',
'lb=in' => 'Lb/IN',
@@ -6023,9 +6225,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'lb=jv' => '#/65',
'lb=lf' => '#/67',
'lb=linefeed' => '#/67',
-'lb=mandatorybreak' => '#/511',
-'lb=nextline' => '#/515',
-'lb=nl' => '#/515',
+'lb=mandatorybreak' => '#/528',
+'lb=nextline' => '#/532',
+'lb=nl' => '#/532',
'lb=nonstarter' => 'Lb/NS',
'lb=ns' => 'Lb/NS',
'lb=nu' => 'Lb/NU',
@@ -6041,23 +6243,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'lb=regionalindicator' => '#/68',
'lb=ri' => '#/68',
'lb=sa' => 'Lb/SA',
-'lb=sg' => '#/516',
-'lb=sp' => '#/517',
-'lb=space' => '#/517',
-'lb=surrogate' => '#/516',
-'lb=sy' => '#/518',
+'lb=sg' => '#/533',
+'lb=sp' => '#/534',
+'lb=space' => '#/534',
+'lb=surrogate' => '#/533',
+'lb=sy' => '#/535',
'lb=unknown' => 'Lb/XX',
-'lb=wj' => '#/519',
-'lb=wordjoiner' => '#/519',
+'lb=wj' => '#/536',
+'lb=wordjoiner' => '#/536',
'lb=xx' => 'Lb/XX',
-'lb=zw' => '#/520',
+'lb=zw' => '#/537',
'lb=zwj' => '#/69',
-'lb=zwspace' => '#/520',
+'lb=zwspace' => '#/537',
'lc' => 'Gc/LC',
-'lepc' => '#/662',
-'lepcha' => '#/662',
+'lepc' => '#/683',
+'lepcha' => '#/683',
'letter' => 'Gc/L',
-'letterlikesymbols' => '#/391',
+'letterlikesymbols' => '#/408',
'letternumber' => 'Gc/Nl',
'limb' => 'Scx/Limb',
'limbu' => 'Scx/Limb',
@@ -6065,12 +6267,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'linb' => 'Scx/Linb',
'lineara' => 'Scx/Lina',
'linearb' => 'Scx/Linb',
-'linearbideograms' => '#/381',
-'linearbsyllabary' => '#/382',
-'lineseparator' => '#/424',
-'lisu' => '#/663',
-'lisusup' => '#/197',
-'lisusupplement' => '#/197',
+'linearbideograms' => '#/398',
+'linearbsyllabary' => '#/399',
+'lineseparator' => '#/441',
+'lisu' => '#/684',
+'lisusup' => '#/199',
+'lisusupplement' => '#/199',
'll' => 'Gc/Ll',
'lm' => 'Gc/Lm',
'lo' => 'Gc/Lo',
@@ -6095,27 +6297,27 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'lower=yes' => 'Lower/Y',
'lowercase' => 'Lower/Y',
'lowercaseletter' => 'Gc/Ll',
-'lowsurrogates' => '#/347',
+'lowsurrogates' => '#/361',
'lt' => 'Perl/Title',
'lu' => 'Gc/Lu',
-'lyci' => '#/664',
-'lycian' => '#/664',
-'lydi' => '#/665',
-'lydian' => '#/665',
+'lyci' => '#/685',
+'lycian' => '#/685',
+'lydi' => '#/686',
+'lydian' => '#/686',
'm' => 'Gc/M',
-'mahajani' => '#/666',
-'mahj' => '#/666',
-'mahjong' => '#/198',
-'mahjongtiles' => '#/198',
-'maka' => '#/667',
-'makasar' => '#/667',
+'mahajani' => '#/687',
+'mahj' => '#/687',
+'mahjong' => '#/200',
+'mahjongtiles' => '#/200',
+'maka' => '#/688',
+'makasar' => '#/688',
'malayalam' => 'Scx/Mlym',
-'mand' => '#/668',
-'mandaic' => '#/668',
-'mani' => '#/669',
-'manichaean' => '#/669',
-'marc' => '#/670',
-'marchen' => '#/670',
+'mand' => '#/689',
+'mandaic' => '#/689',
+'mani' => '#/690',
+'manichaean' => '#/690',
+'marc' => '#/691',
+'marchen' => '#/691',
'mark' => 'Gc/M',
'masaramgondi' => 'Scx/Gonm',
'math' => 'Math/Y',
@@ -6127,69 +6329,71 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'math=true' => 'Math/Y',
'math=y' => 'Math/Y',
'math=yes' => 'Math/Y',
-'mathalphanum' => '#/336',
-'mathematicalalphanumericsymbols' => '#/336',
-'mathematicaloperators' => '#/348',
-'mathoperators' => '#/348',
+'mathalphanum' => '#/350',
+'mathematicalalphanumericsymbols' => '#/350',
+'mathematicaloperators' => '#/362',
+'mathoperators' => '#/362',
'mathsymbol' => 'Gc/Sm',
-'mayannumerals' => '#/349',
+'mayannumerals' => '#/363',
'mc' => 'Gc/Mc',
'me' => 'Gc/Me',
-'medefaidrin' => '#/671',
-'medf' => '#/671',
-'meeteimayek' => '#/676',
-'meeteimayekext' => '#/358',
-'meeteimayekextensions' => '#/358',
-'mend' => '#/672',
-'mendekikakui' => '#/672',
-'merc' => '#/673',
-'mero' => '#/402',
-'meroiticcursive' => '#/673',
-'meroitichieroglyphs' => '#/402',
-'miao' => '#/674',
-'miscarrows' => '#/290',
-'miscellaneousmathematicalsymbolsa' => '#/383',
-'miscellaneousmathematicalsymbolsb' => '#/384',
-'miscellaneoussymbols' => '#/313',
-'miscellaneoussymbolsandarrows' => '#/290',
-'miscellaneoussymbolsandpictographs' => '#/369',
-'miscellaneoustechnical' => '#/350',
-'miscmathsymbolsa' => '#/383',
-'miscmathsymbolsb' => '#/384',
-'miscpictographs' => '#/369',
-'miscsymbols' => '#/313',
-'misctechnical' => '#/350',
+'medefaidrin' => '#/692',
+'medf' => '#/692',
+'meeteimayek' => '#/697',
+'meeteimayekext' => '#/374',
+'meeteimayekextensions' => '#/374',
+'mend' => '#/693',
+'mendekikakui' => '#/693',
+'merc' => '#/694',
+'mero' => '#/419',
+'meroiticcursive' => '#/694',
+'meroitichieroglyphs' => '#/419',
+'miao' => '#/695',
+'miscarrows' => '#/300',
+'miscellaneousmathematicalsymbolsa' => '#/400',
+'miscellaneousmathematicalsymbolsb' => '#/401',
+'miscellaneoussymbols' => '#/325',
+'miscellaneoussymbolsandarrows' => '#/300',
+'miscellaneoussymbolsandpictographs' => '#/385',
+'miscellaneoustechnical' => '#/364',
+'miscmathsymbolsa' => '#/400',
+'miscmathsymbolsb' => '#/401',
+'miscpictographs' => '#/385',
+'miscsymbols' => '#/325',
+'misctechnical' => '#/364',
'mlym' => 'Scx/Mlym',
'mn' => 'Gc/Mn',
-'modi' => '#/675',
+'modi' => '#/696',
'modifierletter' => 'Gc/Lm',
-'modifierletters' => '#/370',
+'modifierletters' => '#/386',
'modifiersymbol' => 'Gc/Sk',
-'modifiertoneletters' => '#/403',
+'modifiertoneletters' => '#/420',
'mong' => 'Scx/Mong',
'mongolian' => 'Scx/Mong',
-'mongoliansup' => '#/338',
-'mongoliansupplement' => '#/338',
-'mro' => '#/632',
-'mroo' => '#/632',
-'mtei' => '#/676',
+'mongoliansup' => '#/352',
+'mongoliansupplement' => '#/352',
+'mro' => '#/652',
+'mroo' => '#/652',
+'mtei' => '#/697',
'mult' => 'Scx/Mult',
'multani' => 'Scx/Mult',
'music' => '#/140',
'musicalsymbols' => '#/140',
'myanmar' => 'Scx/Mymr',
-'myanmarexta' => '#/314',
-'myanmarextb' => '#/315',
-'myanmarextendeda' => '#/314',
-'myanmarextendedb' => '#/315',
+'myanmarexta' => '#/326',
+'myanmarextb' => '#/327',
+'myanmarextendeda' => '#/326',
+'myanmarextendedb' => '#/327',
'mymr' => 'Scx/Mymr',
'n' => 'Gc/N',
-'nabataean' => '#/677',
+'nabataean' => '#/699',
+'nagm' => '#/698',
+'nagmundari' => '#/698',
'nand' => 'Scx/Nand',
'nandinagari' => 'Scx/Nand',
-'narb' => '#/371',
+'narb' => '#/387',
'nb' => 'Blk/NB',
-'nbat' => '#/677',
+'nbat' => '#/699',
'nchar' => 'Perl/_PerlNch',
'nchar=f' => '!Perl/_PerlNch',
'nchar=false' => '!Perl/_PerlNch',
@@ -6200,7 +6404,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'nchar=y' => 'Perl/_PerlNch',
'nchar=yes' => 'Perl/_PerlNch',
'nd' => 'Gc/Nd',
-'newa' => '#/678',
+'newa' => '#/700',
'newtailue' => 'Scx/Talu',
'nfcqc=m' => 'NFCQC/M',
'nfcqc=maybe' => 'NFCQC/M',
@@ -6222,14 +6426,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'nfkdqc=no' => 'NFKDQC/N',
'nfkdqc=y' => 'NFKDQC/Y',
'nfkdqc=yes' => 'NFKDQC/Y',
-'nko' => '#/633',
-'nkoo' => '#/633',
+'nko' => 'Scx/Nko',
+'nkoo' => 'Scx/Nko',
'nl' => 'Gc/Nl',
'no' => 'Gc/No',
'noblock' => 'Blk/NB',
'noncharactercodepoint' => 'Perl/_PerlNch',
'nonspacingmark' => 'Gc/Mn',
-'nshu' => '#/679',
+'nshu' => '#/701',
'nt=de' => 'Gc/Nd',
'nt=decimal' => 'Gc/Nd',
'nt=di' => 'Nt/Di',
@@ -6238,44 +6442,46 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'nt=nu' => 'Nt/Nu',
'nt=numeric' => 'Nt/Nu',
'number' => 'Gc/N',
-'numberforms' => '#/317',
-'nushu' => '#/679',
+'numberforms' => '#/329',
+'nushu' => '#/701',
'nv=nan' => 'Nt/None',
'nyiakengpuachuehmong' => 'Scx/Hmnp',
-'ocr' => '#/117',
-'ogam' => '#/680',
-'ogham' => '#/680',
-'olchiki' => '#/204',
-'olck' => '#/204',
-'oldhungarian' => '#/658',
-'olditalic' => '#/659',
-'oldnortharabian' => '#/371',
-'oldpermic' => '#/685',
-'oldpersian' => '#/710',
-'oldsogdian' => '#/697',
-'oldsoutharabian' => '#/372',
-'oldturkic' => '#/681',
+'ocr' => '#/115',
+'ogam' => '#/702',
+'ogham' => '#/702',
+'olchiki' => '#/206',
+'olck' => '#/206',
+'oldhungarian' => '#/678',
+'olditalic' => '#/679',
+'oldnortharabian' => '#/387',
+'oldpermic' => '#/708',
+'oldpersian' => '#/735',
+'oldsogdian' => '#/720',
+'oldsoutharabian' => '#/388',
+'oldturkic' => '#/703',
+'olduyghur' => '#/706',
'openpunctuation' => 'Gc/Ps',
-'opticalcharacterrecognition' => '#/117',
+'opticalcharacterrecognition' => '#/115',
'oriya' => 'Scx/Orya',
-'orkh' => '#/681',
-'ornamentaldingbats' => '#/397',
+'orkh' => '#/703',
+'ornamentaldingbats' => '#/414',
'orya' => 'Scx/Orya',
-'osage' => '#/682',
-'osge' => '#/682',
-'osma' => '#/683',
-'osmanya' => '#/683',
+'osage' => '#/704',
+'osge' => '#/704',
+'osma' => '#/705',
+'osmanya' => '#/705',
'other' => 'Gc/C',
'otherletter' => 'Gc/Lo',
'othernumber' => 'Gc/No',
'otherpunctuation' => 'Gc/Po',
'othersymbol' => 'Gc/So',
-'ottomansiyaqnumbers' => '#/404',
+'ottomansiyaqnumbers' => '#/421',
+'ougr' => '#/706',
'p' => 'Gc/P',
'pahawhhmong' => 'Scx/Hmng',
-'palm' => '#/271',
-'palmyrene' => '#/271',
-'paragraphseparator' => '#/425',
+'palm' => '#/279',
+'palmyrene' => '#/279',
+'paragraphseparator' => '#/442',
'patsyn' => 'PatSyn/Y',
'patsyn=f' => '!PatSyn/Y',
'patsyn=false' => '!PatSyn/Y',
@@ -6296,8 +6502,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'patws=true' => 'Perl/_PerlPat',
'patws=y' => 'Perl/_PerlPat',
'patws=yes' => 'Perl/_PerlPat',
-'pauc' => '#/684',
-'paucinhau' => '#/684',
+'pauc' => '#/707',
+'paucinhau' => '#/707',
'pc' => 'Gc/Pc',
'pcm' => 'PCM/Y',
'pcm=f' => '!PCM/Y',
@@ -6312,23 +6518,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'pe' => 'Gc/Pe',
'perlspace' => '#/3',
'perlword' => 'Perl/PerlWord',
-'perm' => '#/685',
+'perm' => '#/708',
'pf' => 'Gc/Pf',
-'phag' => '#/686',
-'phagspa' => '#/686',
-'phaistos' => '#/243',
-'phaistosdisc' => '#/243',
-'phli' => '#/687',
+'phag' => '#/709',
+'phagspa' => '#/709',
+'phaistos' => '#/246',
+'phaistosdisc' => '#/246',
+'phli' => '#/710',
'phlp' => 'Scx/Phlp',
-'phnx' => '#/688',
-'phoenician' => '#/688',
-'phoneticext' => '#/319',
-'phoneticextensions' => '#/319',
-'phoneticextensionssupplement' => '#/359',
-'phoneticextsup' => '#/359',
+'phnx' => '#/711',
+'phoenician' => '#/711',
+'phoneticext' => '#/331',
+'phoneticextensions' => '#/331',
+'phoneticextensionssupplement' => '#/375',
+'phoneticextsup' => '#/375',
'pi' => 'Gc/Pi',
-'playingcards' => '#/340',
-'plrd' => '#/674',
+'playingcards' => '#/354',
+'plrd' => '#/695',
'po' => 'Gc/Po',
'posixalnum' => '#/5',
'posixalpha' => '#/6',
@@ -6345,12 +6551,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'posixxdigit' => '#/60',
'prependedconcatenationmark' => 'PCM/Y',
'print' => 'Perl/Print',
-'privateuse' => '#/423',
-'privateusearea' => '#/118',
-'prti' => '#/689',
+'privateuse' => '#/440',
+'privateusearea' => '#/116',
+'prti' => '#/712',
'ps' => 'Gc/Ps',
'psalterpahlavi' => 'Scx/Phlp',
-'pua' => '#/118',
+'pua' => '#/116',
'punct' => 'Gc/P',
'punctuation' => 'Gc/P',
'qaac' => 'Scx/Copt',
@@ -6365,17 +6571,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'qmark=y' => 'QMark/Y',
'qmark=yes' => 'QMark/Y',
'quotationmark' => 'QMark/Y',
-'radical' => '#/91',
-'radical=f' => '#/!91',
-'radical=false' => '#/!91',
-'radical=n' => '#/!91',
-'radical=no' => '#/!91',
-'radical=t' => '#/91',
-'radical=true' => '#/91',
-'radical=y' => '#/91',
-'radical=yes' => '#/91',
+'radical' => '#/90',
+'radical=f' => '#/!90',
+'radical=false' => '#/!90',
+'radical=n' => '#/!90',
+'radical=no' => '#/!90',
+'radical=t' => '#/90',
+'radical=true' => '#/90',
+'radical=y' => '#/90',
+'radical=yes' => '#/90',
'regionalindicator' => '#/68',
-'rejang' => '#/690',
+'rejang' => '#/713',
'ri' => '#/68',
'ri=f' => '#/!68',
'ri=false' => '#/!68',
@@ -6385,18 +6591,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ri=true' => '#/68',
'ri=y' => '#/68',
'ri=yes' => '#/68',
-'rjng' => '#/690',
+'rjng' => '#/713',
'rohg' => 'Scx/Rohg',
-'rumi' => '#/127',
-'ruminumeralsymbols' => '#/127',
-'runic' => '#/691',
-'runr' => '#/691',
+'rumi' => '#/126',
+'ruminumeralsymbols' => '#/126',
+'runic' => '#/714',
+'runr' => '#/714',
's' => 'Gc/S',
-'samaritan' => '#/692',
-'samr' => '#/692',
-'sarb' => '#/372',
-'saur' => '#/693',
-'saurashtra' => '#/693',
+'samaritan' => '#/715',
+'samr' => '#/715',
+'sarb' => '#/388',
+'saur' => '#/716',
+'saurashtra' => '#/716',
'sb=at' => 'SB/AT',
'sb=aterm' => 'SB/AT',
'sb=cl' => 'SB/CL',
@@ -6416,8 +6622,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sb=other' => 'SB/XX',
'sb=sc' => 'SB/SC',
'sb=scontinue' => 'SB/SC',
-'sb=se' => '#/92',
-'sb=sep' => '#/92',
+'sb=se' => '#/91',
+'sb=sep' => '#/91',
'sb=sp' => 'SB/Sp',
'sb=st' => 'SB/ST',
'sb=sterm' => 'SB/ST',
@@ -6425,76 +6631,78 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sb=upper' => 'SB/UP',
'sb=xx' => 'SB/XX',
'sc' => 'Gc/Sc',
-'sc=adlam' => '#/599',
-'sc=adlm' => '#/599',
-'sc=aghb' => '#/635',
-'sc=ahom' => '#/636',
-'sc=anatolianhieroglyphs' => '#/657',
+'sc=adlam' => '#/617',
+'sc=adlm' => '#/617',
+'sc=aghb' => '#/654',
+'sc=ahom' => '#/655',
+'sc=anatolianhieroglyphs' => '#/677',
'sc=arab' => 'Sc/Arab',
'sc=arabic' => 'Sc/Arab',
'sc=armenian' => 'Scx/Armn',
-'sc=armi' => '#/637',
+'sc=armi' => '#/656',
'sc=armn' => 'Scx/Armn',
-'sc=avestan' => '#/638',
-'sc=avst' => '#/638',
-'sc=bali' => '#/639',
-'sc=balinese' => '#/639',
-'sc=bamu' => '#/640',
-'sc=bamum' => '#/640',
-'sc=bass' => '#/641',
-'sc=bassavah' => '#/641',
-'sc=batak' => '#/642',
-'sc=batk' => '#/642',
+'sc=avestan' => '#/657',
+'sc=avst' => '#/657',
+'sc=bali' => '#/658',
+'sc=balinese' => '#/658',
+'sc=bamu' => '#/659',
+'sc=bamum' => '#/659',
+'sc=bass' => '#/660',
+'sc=bassavah' => '#/660',
+'sc=batak' => '#/661',
+'sc=batk' => '#/661',
'sc=beng' => 'Sc/Beng',
'sc=bengali' => 'Sc/Beng',
'sc=bhaiksuki' => 'Scx/Bhks',
'sc=bhks' => 'Scx/Bhks',
-'sc=bopo' => '#/600',
-'sc=bopomofo' => '#/600',
-'sc=brah' => '#/643',
-'sc=brahmi' => '#/643',
-'sc=brai' => '#/180',
-'sc=braille' => '#/180',
-'sc=bugi' => '#/601',
-'sc=buginese' => '#/601',
-'sc=buhd' => '#/602',
-'sc=buhid' => '#/602',
-'sc=cakm' => '#/603',
-'sc=canadianaboriginal' => '#/646',
-'sc=cans' => '#/646',
-'sc=cari' => '#/647',
-'sc=carian' => '#/647',
-'sc=caucasianalbanian' => '#/635',
-'sc=chakma' => '#/603',
+'sc=bopo' => '#/618',
+'sc=bopomofo' => '#/618',
+'sc=brah' => '#/662',
+'sc=brahmi' => '#/662',
+'sc=brai' => '#/181',
+'sc=braille' => '#/181',
+'sc=bugi' => '#/619',
+'sc=buginese' => '#/619',
+'sc=buhd' => '#/620',
+'sc=buhid' => '#/620',
+'sc=cakm' => '#/621',
+'sc=canadianaboriginal' => '#/665',
+'sc=cans' => '#/665',
+'sc=cari' => '#/666',
+'sc=carian' => '#/666',
+'sc=caucasianalbanian' => '#/654',
+'sc=chakma' => '#/621',
'sc=cham' => 'Scx/Cham',
-'sc=cher' => '#/648',
-'sc=cherokee' => '#/648',
-'sc=chorasmian' => '#/649',
-'sc=chrs' => '#/649',
+'sc=cher' => '#/667',
+'sc=cherokee' => '#/667',
+'sc=chorasmian' => '#/668',
+'sc=chrs' => '#/668',
'sc=common' => 'Sc/Zyyy',
-'sc=copt' => '#/604',
-'sc=coptic' => '#/604',
+'sc=copt' => '#/622',
+'sc=coptic' => '#/622',
+'sc=cpmn' => '#/623',
'sc=cprt' => 'Sc/Cprt',
'sc=cuneiform' => 'Scx/Xsux',
'sc=cypriot' => 'Sc/Cprt',
+'sc=cyprominoan' => '#/623',
'sc=cyrillic' => 'Sc/Cyrl',
'sc=cyrl' => 'Sc/Cyrl',
-'sc=deseret' => '#/188',
+'sc=deseret' => '#/190',
'sc=deva' => 'Sc/Deva',
'sc=devanagari' => 'Sc/Deva',
'sc=diak' => 'Scx/Diak',
'sc=divesakuru' => 'Scx/Diak',
-'sc=dogr' => '#/605',
-'sc=dogra' => '#/605',
-'sc=dsrt' => '#/188',
+'sc=dogr' => '#/624',
+'sc=dogra' => '#/624',
+'sc=dsrt' => '#/190',
'sc=dupl' => 'Sc/Dupl',
'sc=duployan' => 'Sc/Dupl',
-'sc=egyp' => '#/651',
-'sc=egyptianhieroglyphs' => '#/651',
-'sc=elba' => '#/652',
-'sc=elbasan' => '#/652',
-'sc=elym' => '#/653',
-'sc=elymaic' => '#/653',
+'sc=egyp' => '#/671',
+'sc=egyptianhieroglyphs' => '#/671',
+'sc=elba' => '#/672',
+'sc=elbasan' => '#/672',
+'sc=elym' => '#/673',
+'sc=elymaic' => '#/673',
'sc=ethi' => 'Scx/Ethi',
'sc=ethiopic' => 'Scx/Ethi',
'sc=geor' => 'Sc/Geor',
@@ -6503,8 +6711,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=glagolitic' => 'Sc/Glag',
'sc=gong' => 'Sc/Gong',
'sc=gonm' => 'Sc/Gonm',
-'sc=goth' => '#/654',
-'sc=gothic' => '#/654',
+'sc=goth' => '#/674',
+'sc=gothic' => '#/674',
'sc=gran' => 'Sc/Gran',
'sc=grantha' => 'Sc/Gran',
'sc=greek' => 'Sc/Grek',
@@ -6518,293 +6726,305 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=hang' => 'Sc/Hang',
'sc=hangul' => 'Sc/Hang',
'sc=hani' => 'Sc/Han',
-'sc=hanifirohingya' => '#/621',
-'sc=hano' => '#/606',
-'sc=hanunoo' => '#/606',
-'sc=hatr' => '#/656',
-'sc=hatran' => '#/656',
+'sc=hanifirohingya' => '#/641',
+'sc=hano' => '#/625',
+'sc=hanunoo' => '#/625',
+'sc=hatr' => '#/676',
+'sc=hatran' => '#/676',
'sc=hebr' => 'Scx/Hebr',
'sc=hebrew' => 'Scx/Hebr',
'sc=hira' => 'Sc/Hira',
'sc=hiragana' => 'Sc/Hira',
-'sc=hluw' => '#/657',
+'sc=hluw' => '#/677',
'sc=hmng' => 'Scx/Hmng',
'sc=hmnp' => 'Scx/Hmnp',
-'sc=hung' => '#/658',
-'sc=imperialaramaic' => '#/637',
+'sc=hung' => '#/678',
+'sc=imperialaramaic' => '#/656',
'sc=inherited' => 'Sc/Zinh',
-'sc=inscriptionalpahlavi' => '#/687',
-'sc=inscriptionalparthian' => '#/689',
-'sc=ital' => '#/659',
-'sc=java' => '#/607',
-'sc=javanese' => '#/607',
-'sc=kaithi' => '#/610',
-'sc=kali' => '#/608',
+'sc=inscriptionalpahlavi' => '#/710',
+'sc=inscriptionalparthian' => '#/712',
+'sc=ital' => '#/679',
+'sc=java' => '#/626',
+'sc=javanese' => '#/626',
+'sc=kaithi' => '#/629',
+'sc=kali' => '#/627',
'sc=kana' => 'Sc/Kana',
'sc=kannada' => 'Sc/Knda',
'sc=katakana' => 'Sc/Kana',
-'sc=kayahli' => '#/608',
+'sc=kawi' => '#/681',
+'sc=kayahli' => '#/627',
'sc=khar' => 'Scx/Khar',
'sc=kharoshthi' => 'Scx/Khar',
-'sc=khitansmallscript' => '#/661',
+'sc=khitansmallscript' => '#/682',
'sc=khmer' => 'Scx/Khmr',
'sc=khmr' => 'Scx/Khmr',
-'sc=khoj' => '#/609',
-'sc=khojki' => '#/609',
-'sc=khudawadi' => '#/622',
-'sc=kits' => '#/661',
+'sc=khoj' => '#/628',
+'sc=khojki' => '#/628',
+'sc=khudawadi' => '#/642',
+'sc=kits' => '#/682',
'sc=knda' => 'Sc/Knda',
-'sc=kthi' => '#/610',
+'sc=kthi' => '#/629',
'sc=lana' => 'Scx/Lana',
'sc=lao' => 'Scx/Lao',
'sc=laoo' => 'Scx/Lao',
'sc=latin' => 'Sc/Latn',
'sc=latn' => 'Sc/Latn',
-'sc=lepc' => '#/662',
-'sc=lepcha' => '#/662',
+'sc=lepc' => '#/683',
+'sc=lepcha' => '#/683',
'sc=limb' => 'Sc/Limb',
'sc=limbu' => 'Sc/Limb',
-'sc=lina' => '#/611',
+'sc=lina' => '#/630',
'sc=linb' => 'Sc/Linb',
-'sc=lineara' => '#/611',
+'sc=lineara' => '#/630',
'sc=linearb' => 'Sc/Linb',
-'sc=lisu' => '#/663',
-'sc=lyci' => '#/664',
-'sc=lycian' => '#/664',
-'sc=lydi' => '#/665',
-'sc=lydian' => '#/665',
-'sc=mahajani' => '#/612',
-'sc=mahj' => '#/612',
-'sc=maka' => '#/667',
-'sc=makasar' => '#/667',
+'sc=lisu' => '#/684',
+'sc=lyci' => '#/685',
+'sc=lycian' => '#/685',
+'sc=lydi' => '#/686',
+'sc=lydian' => '#/686',
+'sc=mahajani' => '#/631',
+'sc=mahj' => '#/631',
+'sc=maka' => '#/688',
+'sc=makasar' => '#/688',
'sc=malayalam' => 'Sc/Mlym',
-'sc=mand' => '#/613',
-'sc=mandaic' => '#/613',
-'sc=mani' => '#/614',
-'sc=manichaean' => '#/614',
-'sc=marc' => '#/670',
-'sc=marchen' => '#/670',
+'sc=mand' => '#/632',
+'sc=mandaic' => '#/632',
+'sc=mani' => '#/633',
+'sc=manichaean' => '#/633',
+'sc=marc' => '#/691',
+'sc=marchen' => '#/691',
'sc=masaramgondi' => 'Sc/Gonm',
-'sc=medefaidrin' => '#/671',
-'sc=medf' => '#/671',
-'sc=meeteimayek' => '#/676',
-'sc=mend' => '#/672',
-'sc=mendekikakui' => '#/672',
-'sc=merc' => '#/673',
-'sc=mero' => '#/402',
-'sc=meroiticcursive' => '#/673',
-'sc=meroitichieroglyphs' => '#/402',
-'sc=miao' => '#/674',
+'sc=medefaidrin' => '#/692',
+'sc=medf' => '#/692',
+'sc=meeteimayek' => '#/697',
+'sc=mend' => '#/693',
+'sc=mendekikakui' => '#/693',
+'sc=merc' => '#/694',
+'sc=mero' => '#/419',
+'sc=meroiticcursive' => '#/694',
+'sc=meroitichieroglyphs' => '#/419',
+'sc=miao' => '#/695',
'sc=mlym' => 'Sc/Mlym',
-'sc=modi' => '#/615',
+'sc=modi' => '#/634',
'sc=mong' => 'Sc/Mong',
'sc=mongolian' => 'Sc/Mong',
-'sc=mro' => '#/632',
-'sc=mroo' => '#/632',
-'sc=mtei' => '#/676',
+'sc=mro' => '#/652',
+'sc=mroo' => '#/652',
+'sc=mtei' => '#/697',
'sc=mult' => 'Sc/Mult',
'sc=multani' => 'Sc/Mult',
-'sc=myanmar' => '#/616',
-'sc=mymr' => '#/616',
-'sc=nabataean' => '#/677',
-'sc=nand' => '#/617',
-'sc=nandinagari' => '#/617',
-'sc=narb' => '#/371',
-'sc=nbat' => '#/677',
-'sc=newa' => '#/678',
+'sc=myanmar' => '#/635',
+'sc=mymr' => '#/635',
+'sc=nabataean' => '#/699',
+'sc=nagm' => '#/698',
+'sc=nagmundari' => '#/698',
+'sc=nand' => '#/636',
+'sc=nandinagari' => '#/636',
+'sc=narb' => '#/387',
+'sc=nbat' => '#/699',
+'sc=newa' => '#/700',
'sc=newtailue' => 'Scx/Talu',
-'sc=nko' => '#/633',
-'sc=nkoo' => '#/633',
-'sc=nshu' => '#/679',
-'sc=nushu' => '#/679',
+'sc=nko' => '#/616',
+'sc=nkoo' => '#/616',
+'sc=nshu' => '#/701',
+'sc=nushu' => '#/701',
'sc=nyiakengpuachuehmong' => 'Scx/Hmnp',
-'sc=ogam' => '#/680',
-'sc=ogham' => '#/680',
-'sc=olchiki' => '#/204',
-'sc=olck' => '#/204',
-'sc=oldhungarian' => '#/658',
-'sc=olditalic' => '#/659',
-'sc=oldnortharabian' => '#/371',
-'sc=oldpermic' => '#/618',
-'sc=oldpersian' => '#/710',
-'sc=oldsogdian' => '#/697',
-'sc=oldsoutharabian' => '#/372',
-'sc=oldturkic' => '#/681',
+'sc=ogam' => '#/702',
+'sc=ogham' => '#/702',
+'sc=olchiki' => '#/206',
+'sc=olck' => '#/206',
+'sc=oldhungarian' => '#/678',
+'sc=olditalic' => '#/679',
+'sc=oldnortharabian' => '#/387',
+'sc=oldpermic' => '#/638',
+'sc=oldpersian' => '#/735',
+'sc=oldsogdian' => '#/720',
+'sc=oldsoutharabian' => '#/388',
+'sc=oldturkic' => '#/703',
+'sc=olduyghur' => '#/637',
'sc=oriya' => 'Sc/Orya',
-'sc=orkh' => '#/681',
+'sc=orkh' => '#/703',
'sc=orya' => 'Sc/Orya',
-'sc=osage' => '#/682',
-'sc=osge' => '#/682',
-'sc=osma' => '#/683',
-'sc=osmanya' => '#/683',
+'sc=osage' => '#/704',
+'sc=osge' => '#/704',
+'sc=osma' => '#/705',
+'sc=osmanya' => '#/705',
+'sc=ougr' => '#/637',
'sc=pahawhhmong' => 'Scx/Hmng',
-'sc=palm' => '#/271',
-'sc=palmyrene' => '#/271',
-'sc=pauc' => '#/684',
-'sc=paucinhau' => '#/684',
-'sc=perm' => '#/618',
-'sc=phag' => '#/619',
-'sc=phagspa' => '#/619',
-'sc=phli' => '#/687',
-'sc=phlp' => '#/620',
-'sc=phnx' => '#/688',
-'sc=phoenician' => '#/688',
-'sc=plrd' => '#/674',
-'sc=prti' => '#/689',
-'sc=psalterpahlavi' => '#/620',
-'sc=qaac' => '#/604',
+'sc=palm' => '#/279',
+'sc=palmyrene' => '#/279',
+'sc=pauc' => '#/707',
+'sc=paucinhau' => '#/707',
+'sc=perm' => '#/638',
+'sc=phag' => '#/639',
+'sc=phagspa' => '#/639',
+'sc=phli' => '#/710',
+'sc=phlp' => '#/640',
+'sc=phnx' => '#/711',
+'sc=phoenician' => '#/711',
+'sc=plrd' => '#/695',
+'sc=prti' => '#/712',
+'sc=psalterpahlavi' => '#/640',
+'sc=qaac' => '#/622',
'sc=qaai' => 'Sc/Zinh',
-'sc=rejang' => '#/690',
-'sc=rjng' => '#/690',
-'sc=rohg' => '#/621',
-'sc=runic' => '#/691',
-'sc=runr' => '#/691',
-'sc=samaritan' => '#/692',
-'sc=samr' => '#/692',
-'sc=sarb' => '#/372',
-'sc=saur' => '#/693',
-'sc=saurashtra' => '#/693',
-'sc=sgnw' => '#/694',
-'sc=sharada' => '#/207',
-'sc=shavian' => '#/208',
-'sc=shaw' => '#/208',
-'sc=shrd' => '#/207',
-'sc=sidd' => '#/695',
-'sc=siddham' => '#/695',
-'sc=signwriting' => '#/694',
-'sc=sind' => '#/622',
+'sc=rejang' => '#/713',
+'sc=rjng' => '#/713',
+'sc=rohg' => '#/641',
+'sc=runic' => '#/714',
+'sc=runr' => '#/714',
+'sc=samaritan' => '#/715',
+'sc=samr' => '#/715',
+'sc=sarb' => '#/388',
+'sc=saur' => '#/716',
+'sc=saurashtra' => '#/716',
+'sc=sgnw' => '#/717',
+'sc=sharada' => '#/209',
+'sc=shavian' => '#/210',
+'sc=shaw' => '#/210',
+'sc=shrd' => '#/209',
+'sc=sidd' => '#/718',
+'sc=siddham' => '#/718',
+'sc=signwriting' => '#/717',
+'sc=sind' => '#/642',
'sc=sinh' => 'Sc/Sinh',
'sc=sinhala' => 'Sc/Sinh',
-'sc=sogd' => '#/623',
-'sc=sogdian' => '#/623',
-'sc=sogo' => '#/697',
-'sc=sora' => '#/698',
-'sc=sorasompeng' => '#/698',
-'sc=soyo' => '#/699',
-'sc=soyombo' => '#/699',
-'sc=sund' => '#/700',
-'sc=sundanese' => '#/700',
-'sc=sylo' => '#/624',
-'sc=sylotinagri' => '#/624',
+'sc=sogd' => '#/643',
+'sc=sogdian' => '#/643',
+'sc=sogo' => '#/720',
+'sc=sora' => '#/721',
+'sc=sorasompeng' => '#/721',
+'sc=soyo' => '#/722',
+'sc=soyombo' => '#/722',
+'sc=sund' => '#/723',
+'sc=sundanese' => '#/723',
+'sc=sylo' => '#/644',
+'sc=sylotinagri' => '#/644',
'sc=syrc' => 'Sc/Syrc',
'sc=syriac' => 'Sc/Syrc',
-'sc=tagalog' => '#/628',
-'sc=tagb' => '#/625',
-'sc=tagbanwa' => '#/625',
-'sc=taile' => '#/627',
+'sc=tagalog' => '#/648',
+'sc=tagb' => '#/645',
+'sc=tagbanwa' => '#/645',
+'sc=taile' => '#/647',
'sc=taitham' => 'Scx/Lana',
-'sc=taiviet' => '#/703',
-'sc=takr' => '#/626',
-'sc=takri' => '#/626',
-'sc=tale' => '#/627',
+'sc=taiviet' => '#/726',
+'sc=takr' => '#/646',
+'sc=takri' => '#/646',
+'sc=tale' => '#/647',
'sc=talu' => 'Scx/Talu',
'sc=tamil' => 'Sc/Taml',
'sc=taml' => 'Sc/Taml',
'sc=tang' => 'Scx/Tang',
+'sc=tangsa' => '#/730',
'sc=tangut' => 'Scx/Tang',
-'sc=tavt' => '#/703',
+'sc=tavt' => '#/726',
'sc=telu' => 'Sc/Telu',
'sc=telugu' => 'Sc/Telu',
-'sc=tfng' => '#/704',
-'sc=tglg' => '#/628',
-'sc=thaa' => '#/629',
-'sc=thaana' => '#/629',
-'sc=thai' => '#/706',
+'sc=tfng' => '#/727',
+'sc=tglg' => '#/648',
+'sc=thaa' => '#/649',
+'sc=thaana' => '#/649',
+'sc=thai' => '#/729',
'sc=tibetan' => 'Scx/Tibt',
'sc=tibt' => 'Scx/Tibt',
-'sc=tifinagh' => '#/704',
-'sc=tirh' => '#/630',
-'sc=tirhuta' => '#/630',
-'sc=ugar' => '#/707',
-'sc=ugaritic' => '#/707',
+'sc=tifinagh' => '#/727',
+'sc=tirh' => '#/650',
+'sc=tirhuta' => '#/650',
+'sc=tnsa' => '#/730',
+'sc=toto' => '#/731',
+'sc=ugar' => '#/732',
+'sc=ugaritic' => '#/732',
'sc=unknown' => 'Scx/Zzzz',
-'sc=vai' => '#/634',
-'sc=vaii' => '#/634',
-'sc=wancho' => '#/709',
-'sc=wara' => '#/708',
-'sc=warangciti' => '#/708',
-'sc=wcho' => '#/709',
-'sc=xpeo' => '#/710',
+'sc=vai' => '#/653',
+'sc=vaii' => '#/653',
+'sc=vith' => 'Scx/Vith',
+'sc=vithkuqi' => 'Scx/Vith',
+'sc=wancho' => '#/734',
+'sc=wara' => '#/733',
+'sc=warangciti' => '#/733',
+'sc=wcho' => '#/734',
+'sc=xpeo' => '#/735',
'sc=xsux' => 'Scx/Xsux',
-'sc=yezi' => '#/631',
-'sc=yezidi' => '#/631',
-'sc=yi' => '#/598',
-'sc=yiii' => '#/598',
-'sc=zanabazarsquare' => '#/711',
-'sc=zanb' => '#/711',
+'sc=yezi' => '#/651',
+'sc=yezidi' => '#/651',
+'sc=yi' => '#/615',
+'sc=yiii' => '#/615',
+'sc=zanabazarsquare' => '#/736',
+'sc=zanb' => '#/736',
'sc=zinh' => 'Sc/Zinh',
'sc=zyyy' => 'Sc/Zyyy',
'sc=zzzz' => 'Scx/Zzzz',
'scx=adlam' => 'Scx/Adlm',
'scx=adlm' => 'Scx/Adlm',
-'scx=aghb' => '#/635',
-'scx=ahom' => '#/636',
-'scx=anatolianhieroglyphs' => '#/657',
+'scx=aghb' => '#/654',
+'scx=ahom' => '#/655',
+'scx=anatolianhieroglyphs' => '#/677',
'scx=arab' => 'Scx/Arab',
'scx=arabic' => 'Scx/Arab',
'scx=armenian' => 'Scx/Armn',
-'scx=armi' => '#/637',
+'scx=armi' => '#/656',
'scx=armn' => 'Scx/Armn',
-'scx=avestan' => '#/638',
-'scx=avst' => '#/638',
-'scx=bali' => '#/639',
-'scx=balinese' => '#/639',
-'scx=bamu' => '#/640',
-'scx=bamum' => '#/640',
-'scx=bass' => '#/641',
-'scx=bassavah' => '#/641',
-'scx=batak' => '#/642',
-'scx=batk' => '#/642',
+'scx=avestan' => '#/657',
+'scx=avst' => '#/657',
+'scx=bali' => '#/658',
+'scx=balinese' => '#/658',
+'scx=bamu' => '#/659',
+'scx=bamum' => '#/659',
+'scx=bass' => '#/660',
+'scx=bassavah' => '#/660',
+'scx=batak' => '#/661',
+'scx=batk' => '#/661',
'scx=beng' => 'Scx/Beng',
'scx=bengali' => 'Scx/Beng',
'scx=bhaiksuki' => 'Scx/Bhks',
'scx=bhks' => 'Scx/Bhks',
'scx=bopo' => 'Scx/Bopo',
'scx=bopomofo' => 'Scx/Bopo',
-'scx=brah' => '#/643',
-'scx=brahmi' => '#/643',
-'scx=brai' => '#/180',
-'scx=braille' => '#/180',
-'scx=bugi' => '#/644',
-'scx=buginese' => '#/644',
-'scx=buhd' => '#/645',
-'scx=buhid' => '#/645',
+'scx=brah' => '#/662',
+'scx=brahmi' => '#/662',
+'scx=brai' => '#/181',
+'scx=braille' => '#/181',
+'scx=bugi' => '#/663',
+'scx=buginese' => '#/663',
+'scx=buhd' => '#/664',
+'scx=buhid' => '#/664',
'scx=cakm' => 'Scx/Cakm',
-'scx=canadianaboriginal' => '#/646',
-'scx=cans' => '#/646',
-'scx=cari' => '#/647',
-'scx=carian' => '#/647',
-'scx=caucasianalbanian' => '#/635',
+'scx=canadianaboriginal' => '#/665',
+'scx=cans' => '#/665',
+'scx=cari' => '#/666',
+'scx=carian' => '#/666',
+'scx=caucasianalbanian' => '#/654',
'scx=chakma' => 'Scx/Cakm',
'scx=cham' => 'Scx/Cham',
-'scx=cher' => '#/648',
-'scx=cherokee' => '#/648',
-'scx=chorasmian' => '#/649',
-'scx=chrs' => '#/649',
+'scx=cher' => '#/667',
+'scx=cherokee' => '#/667',
+'scx=chorasmian' => '#/668',
+'scx=chrs' => '#/668',
'scx=common' => 'Scx/Zyyy',
'scx=copt' => 'Scx/Copt',
'scx=coptic' => 'Scx/Copt',
+'scx=cpmn' => '#/669',
'scx=cprt' => 'Scx/Cprt',
'scx=cuneiform' => 'Scx/Xsux',
'scx=cypriot' => 'Scx/Cprt',
+'scx=cyprominoan' => '#/669',
'scx=cyrillic' => 'Scx/Cyrl',
'scx=cyrl' => 'Scx/Cyrl',
-'scx=deseret' => '#/188',
+'scx=deseret' => '#/190',
'scx=deva' => 'Scx/Deva',
'scx=devanagari' => 'Scx/Deva',
'scx=diak' => 'Scx/Diak',
'scx=divesakuru' => 'Scx/Diak',
-'scx=dogr' => '#/650',
-'scx=dogra' => '#/650',
-'scx=dsrt' => '#/188',
+'scx=dogr' => '#/670',
+'scx=dogra' => '#/670',
+'scx=dsrt' => '#/190',
'scx=dupl' => 'Scx/Dupl',
'scx=duployan' => 'Scx/Dupl',
-'scx=egyp' => '#/651',
-'scx=egyptianhieroglyphs' => '#/651',
-'scx=elba' => '#/652',
-'scx=elbasan' => '#/652',
-'scx=elym' => '#/653',
-'scx=elymaic' => '#/653',
+'scx=egyp' => '#/671',
+'scx=egyptianhieroglyphs' => '#/671',
+'scx=elba' => '#/672',
+'scx=elbasan' => '#/672',
+'scx=elym' => '#/673',
+'scx=elymaic' => '#/673',
'scx=ethi' => 'Scx/Ethi',
'scx=ethiopic' => 'Scx/Ethi',
'scx=geor' => 'Scx/Geor',
@@ -6813,8 +7033,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=glagolitic' => 'Scx/Glag',
'scx=gong' => 'Scx/Gong',
'scx=gonm' => 'Scx/Gonm',
-'scx=goth' => '#/654',
-'scx=gothic' => '#/654',
+'scx=goth' => '#/674',
+'scx=gothic' => '#/674',
'scx=gran' => 'Scx/Gran',
'scx=grantha' => 'Scx/Gran',
'scx=greek' => 'Scx/Grek',
@@ -6829,40 +7049,41 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=hangul' => 'Scx/Hang',
'scx=hani' => 'Scx/Han',
'scx=hanifirohingya' => 'Scx/Rohg',
-'scx=hano' => '#/655',
-'scx=hanunoo' => '#/655',
-'scx=hatr' => '#/656',
-'scx=hatran' => '#/656',
+'scx=hano' => '#/675',
+'scx=hanunoo' => '#/675',
+'scx=hatr' => '#/676',
+'scx=hatran' => '#/676',
'scx=hebr' => 'Scx/Hebr',
'scx=hebrew' => 'Scx/Hebr',
'scx=hira' => 'Scx/Hira',
'scx=hiragana' => 'Scx/Hira',
-'scx=hluw' => '#/657',
+'scx=hluw' => '#/677',
'scx=hmng' => 'Scx/Hmng',
'scx=hmnp' => 'Scx/Hmnp',
-'scx=hung' => '#/658',
-'scx=imperialaramaic' => '#/637',
+'scx=hung' => '#/678',
+'scx=imperialaramaic' => '#/656',
'scx=inherited' => 'Scx/Zinh',
-'scx=inscriptionalpahlavi' => '#/687',
-'scx=inscriptionalparthian' => '#/689',
-'scx=ital' => '#/659',
-'scx=java' => '#/660',
-'scx=javanese' => '#/660',
+'scx=inscriptionalpahlavi' => '#/710',
+'scx=inscriptionalparthian' => '#/712',
+'scx=ital' => '#/679',
+'scx=java' => '#/680',
+'scx=javanese' => '#/680',
'scx=kaithi' => 'Scx/Kthi',
-'scx=kali' => '#/195',
+'scx=kali' => '#/197',
'scx=kana' => 'Scx/Kana',
'scx=kannada' => 'Scx/Knda',
'scx=katakana' => 'Scx/Kana',
-'scx=kayahli' => '#/195',
+'scx=kawi' => '#/681',
+'scx=kayahli' => '#/197',
'scx=khar' => 'Scx/Khar',
'scx=kharoshthi' => 'Scx/Khar',
-'scx=khitansmallscript' => '#/661',
+'scx=khitansmallscript' => '#/682',
'scx=khmer' => 'Scx/Khmr',
'scx=khmr' => 'Scx/Khmr',
'scx=khoj' => 'Scx/Khoj',
'scx=khojki' => 'Scx/Khoj',
'scx=khudawadi' => 'Scx/Sind',
-'scx=kits' => '#/661',
+'scx=kits' => '#/682',
'scx=knda' => 'Scx/Knda',
'scx=kthi' => 'Scx/Kthi',
'scx=lana' => 'Scx/Lana',
@@ -6870,178 +7091,187 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=laoo' => 'Scx/Lao',
'scx=latin' => 'Scx/Latn',
'scx=latn' => 'Scx/Latn',
-'scx=lepc' => '#/662',
-'scx=lepcha' => '#/662',
+'scx=lepc' => '#/683',
+'scx=lepcha' => '#/683',
'scx=limb' => 'Scx/Limb',
'scx=limbu' => 'Scx/Limb',
'scx=lina' => 'Scx/Lina',
'scx=linb' => 'Scx/Linb',
'scx=lineara' => 'Scx/Lina',
'scx=linearb' => 'Scx/Linb',
-'scx=lisu' => '#/663',
-'scx=lyci' => '#/664',
-'scx=lycian' => '#/664',
-'scx=lydi' => '#/665',
-'scx=lydian' => '#/665',
-'scx=mahajani' => '#/666',
-'scx=mahj' => '#/666',
-'scx=maka' => '#/667',
-'scx=makasar' => '#/667',
+'scx=lisu' => '#/684',
+'scx=lyci' => '#/685',
+'scx=lycian' => '#/685',
+'scx=lydi' => '#/686',
+'scx=lydian' => '#/686',
+'scx=mahajani' => '#/687',
+'scx=mahj' => '#/687',
+'scx=maka' => '#/688',
+'scx=makasar' => '#/688',
'scx=malayalam' => 'Scx/Mlym',
-'scx=mand' => '#/668',
-'scx=mandaic' => '#/668',
-'scx=mani' => '#/669',
-'scx=manichaean' => '#/669',
-'scx=marc' => '#/670',
-'scx=marchen' => '#/670',
+'scx=mand' => '#/689',
+'scx=mandaic' => '#/689',
+'scx=mani' => '#/690',
+'scx=manichaean' => '#/690',
+'scx=marc' => '#/691',
+'scx=marchen' => '#/691',
'scx=masaramgondi' => 'Scx/Gonm',
-'scx=medefaidrin' => '#/671',
-'scx=medf' => '#/671',
-'scx=meeteimayek' => '#/676',
-'scx=mend' => '#/672',
-'scx=mendekikakui' => '#/672',
-'scx=merc' => '#/673',
-'scx=mero' => '#/402',
-'scx=meroiticcursive' => '#/673',
-'scx=meroitichieroglyphs' => '#/402',
-'scx=miao' => '#/674',
+'scx=medefaidrin' => '#/692',
+'scx=medf' => '#/692',
+'scx=meeteimayek' => '#/697',
+'scx=mend' => '#/693',
+'scx=mendekikakui' => '#/693',
+'scx=merc' => '#/694',
+'scx=mero' => '#/419',
+'scx=meroiticcursive' => '#/694',
+'scx=meroitichieroglyphs' => '#/419',
+'scx=miao' => '#/695',
'scx=mlym' => 'Scx/Mlym',
-'scx=modi' => '#/675',
+'scx=modi' => '#/696',
'scx=mong' => 'Scx/Mong',
'scx=mongolian' => 'Scx/Mong',
-'scx=mro' => '#/632',
-'scx=mroo' => '#/632',
-'scx=mtei' => '#/676',
+'scx=mro' => '#/652',
+'scx=mroo' => '#/652',
+'scx=mtei' => '#/697',
'scx=mult' => 'Scx/Mult',
'scx=multani' => 'Scx/Mult',
'scx=myanmar' => 'Scx/Mymr',
'scx=mymr' => 'Scx/Mymr',
-'scx=nabataean' => '#/677',
+'scx=nabataean' => '#/699',
+'scx=nagm' => '#/698',
+'scx=nagmundari' => '#/698',
'scx=nand' => 'Scx/Nand',
'scx=nandinagari' => 'Scx/Nand',
-'scx=narb' => '#/371',
-'scx=nbat' => '#/677',
-'scx=newa' => '#/678',
+'scx=narb' => '#/387',
+'scx=nbat' => '#/699',
+'scx=newa' => '#/700',
'scx=newtailue' => 'Scx/Talu',
-'scx=nko' => '#/633',
-'scx=nkoo' => '#/633',
-'scx=nshu' => '#/679',
-'scx=nushu' => '#/679',
+'scx=nko' => 'Scx/Nko',
+'scx=nkoo' => 'Scx/Nko',
+'scx=nshu' => '#/701',
+'scx=nushu' => '#/701',
'scx=nyiakengpuachuehmong' => 'Scx/Hmnp',
-'scx=ogam' => '#/680',
-'scx=ogham' => '#/680',
-'scx=olchiki' => '#/204',
-'scx=olck' => '#/204',
-'scx=oldhungarian' => '#/658',
-'scx=olditalic' => '#/659',
-'scx=oldnortharabian' => '#/371',
-'scx=oldpermic' => '#/685',
-'scx=oldpersian' => '#/710',
-'scx=oldsogdian' => '#/697',
-'scx=oldsoutharabian' => '#/372',
-'scx=oldturkic' => '#/681',
+'scx=ogam' => '#/702',
+'scx=ogham' => '#/702',
+'scx=olchiki' => '#/206',
+'scx=olck' => '#/206',
+'scx=oldhungarian' => '#/678',
+'scx=olditalic' => '#/679',
+'scx=oldnortharabian' => '#/387',
+'scx=oldpermic' => '#/708',
+'scx=oldpersian' => '#/735',
+'scx=oldsogdian' => '#/720',
+'scx=oldsoutharabian' => '#/388',
+'scx=oldturkic' => '#/703',
+'scx=olduyghur' => '#/706',
'scx=oriya' => 'Scx/Orya',
-'scx=orkh' => '#/681',
+'scx=orkh' => '#/703',
'scx=orya' => 'Scx/Orya',
-'scx=osage' => '#/682',
-'scx=osge' => '#/682',
-'scx=osma' => '#/683',
-'scx=osmanya' => '#/683',
+'scx=osage' => '#/704',
+'scx=osge' => '#/704',
+'scx=osma' => '#/705',
+'scx=osmanya' => '#/705',
+'scx=ougr' => '#/706',
'scx=pahawhhmong' => 'Scx/Hmng',
-'scx=palm' => '#/271',
-'scx=palmyrene' => '#/271',
-'scx=pauc' => '#/684',
-'scx=paucinhau' => '#/684',
-'scx=perm' => '#/685',
-'scx=phag' => '#/686',
-'scx=phagspa' => '#/686',
-'scx=phli' => '#/687',
+'scx=palm' => '#/279',
+'scx=palmyrene' => '#/279',
+'scx=pauc' => '#/707',
+'scx=paucinhau' => '#/707',
+'scx=perm' => '#/708',
+'scx=phag' => '#/709',
+'scx=phagspa' => '#/709',
+'scx=phli' => '#/710',
'scx=phlp' => 'Scx/Phlp',
-'scx=phnx' => '#/688',
-'scx=phoenician' => '#/688',
-'scx=plrd' => '#/674',
-'scx=prti' => '#/689',
+'scx=phnx' => '#/711',
+'scx=phoenician' => '#/711',
+'scx=plrd' => '#/695',
+'scx=prti' => '#/712',
'scx=psalterpahlavi' => 'Scx/Phlp',
'scx=qaac' => 'Scx/Copt',
'scx=qaai' => 'Scx/Zinh',
-'scx=rejang' => '#/690',
-'scx=rjng' => '#/690',
+'scx=rejang' => '#/713',
+'scx=rjng' => '#/713',
'scx=rohg' => 'Scx/Rohg',
-'scx=runic' => '#/691',
-'scx=runr' => '#/691',
-'scx=samaritan' => '#/692',
-'scx=samr' => '#/692',
-'scx=sarb' => '#/372',
-'scx=saur' => '#/693',
-'scx=saurashtra' => '#/693',
-'scx=sgnw' => '#/694',
+'scx=runic' => '#/714',
+'scx=runr' => '#/714',
+'scx=samaritan' => '#/715',
+'scx=samr' => '#/715',
+'scx=sarb' => '#/388',
+'scx=saur' => '#/716',
+'scx=saurashtra' => '#/716',
+'scx=sgnw' => '#/717',
'scx=sharada' => 'Scx/Shrd',
-'scx=shavian' => '#/208',
-'scx=shaw' => '#/208',
+'scx=shavian' => '#/210',
+'scx=shaw' => '#/210',
'scx=shrd' => 'Scx/Shrd',
-'scx=sidd' => '#/695',
-'scx=siddham' => '#/695',
-'scx=signwriting' => '#/694',
+'scx=sidd' => '#/718',
+'scx=siddham' => '#/718',
+'scx=signwriting' => '#/717',
'scx=sind' => 'Scx/Sind',
'scx=sinh' => 'Scx/Sinh',
'scx=sinhala' => 'Scx/Sinh',
-'scx=sogd' => '#/696',
-'scx=sogdian' => '#/696',
-'scx=sogo' => '#/697',
-'scx=sora' => '#/698',
-'scx=sorasompeng' => '#/698',
-'scx=soyo' => '#/699',
-'scx=soyombo' => '#/699',
-'scx=sund' => '#/700',
-'scx=sundanese' => '#/700',
-'scx=sylo' => '#/701',
-'scx=sylotinagri' => '#/701',
+'scx=sogd' => '#/719',
+'scx=sogdian' => '#/719',
+'scx=sogo' => '#/720',
+'scx=sora' => '#/721',
+'scx=sorasompeng' => '#/721',
+'scx=soyo' => '#/722',
+'scx=soyombo' => '#/722',
+'scx=sund' => '#/723',
+'scx=sundanese' => '#/723',
+'scx=sylo' => '#/724',
+'scx=sylotinagri' => '#/724',
'scx=syrc' => 'Scx/Syrc',
'scx=syriac' => 'Scx/Syrc',
-'scx=tagalog' => '#/705',
+'scx=tagalog' => '#/728',
'scx=tagb' => 'Scx/Tagb',
'scx=tagbanwa' => 'Scx/Tagb',
-'scx=taile' => '#/702',
+'scx=taile' => '#/725',
'scx=taitham' => 'Scx/Lana',
-'scx=taiviet' => '#/703',
+'scx=taiviet' => '#/726',
'scx=takr' => 'Scx/Takr',
'scx=takri' => 'Scx/Takr',
-'scx=tale' => '#/702',
+'scx=tale' => '#/725',
'scx=talu' => 'Scx/Talu',
'scx=tamil' => 'Scx/Taml',
'scx=taml' => 'Scx/Taml',
'scx=tang' => 'Scx/Tang',
+'scx=tangsa' => '#/730',
'scx=tangut' => 'Scx/Tang',
-'scx=tavt' => '#/703',
+'scx=tavt' => '#/726',
'scx=telu' => 'Scx/Telu',
'scx=telugu' => 'Scx/Telu',
-'scx=tfng' => '#/704',
-'scx=tglg' => '#/705',
+'scx=tfng' => '#/727',
+'scx=tglg' => '#/728',
'scx=thaa' => 'Scx/Thaa',
'scx=thaana' => 'Scx/Thaa',
-'scx=thai' => '#/706',
+'scx=thai' => '#/729',
'scx=tibetan' => 'Scx/Tibt',
'scx=tibt' => 'Scx/Tibt',
-'scx=tifinagh' => '#/704',
+'scx=tifinagh' => '#/727',
'scx=tirh' => 'Scx/Tirh',
'scx=tirhuta' => 'Scx/Tirh',
-'scx=ugar' => '#/707',
-'scx=ugaritic' => '#/707',
+'scx=tnsa' => '#/730',
+'scx=toto' => '#/731',
+'scx=ugar' => '#/732',
+'scx=ugaritic' => '#/732',
'scx=unknown' => 'Scx/Zzzz',
-'scx=vai' => '#/634',
-'scx=vaii' => '#/634',
-'scx=wancho' => '#/709',
-'scx=wara' => '#/708',
-'scx=warangciti' => '#/708',
-'scx=wcho' => '#/709',
-'scx=xpeo' => '#/710',
+'scx=vai' => '#/653',
+'scx=vaii' => '#/653',
+'scx=vith' => 'Scx/Vith',
+'scx=vithkuqi' => 'Scx/Vith',
+'scx=wancho' => '#/734',
+'scx=wara' => '#/733',
+'scx=warangciti' => '#/733',
+'scx=wcho' => '#/734',
+'scx=xpeo' => '#/735',
'scx=xsux' => 'Scx/Xsux',
'scx=yezi' => 'Scx/Yezi',
'scx=yezidi' => 'Scx/Yezi',
'scx=yi' => 'Scx/Yi',
'scx=yiii' => 'Scx/Yi',
-'scx=zanabazarsquare' => '#/711',
-'scx=zanb' => '#/711',
+'scx=zanabazarsquare' => '#/736',
+'scx=zanb' => '#/736',
'scx=zinh' => 'Scx/Zinh',
'scx=zyyy' => 'Scx/Zyyy',
'scx=zzzz' => 'Scx/Zzzz',
@@ -7056,40 +7286,40 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sd=yes' => 'SD/Y',
'sentenceterminal' => 'STerm/Y',
'separator' => 'Gc/Z',
-'sgnw' => '#/694',
+'sgnw' => '#/717',
'sharada' => 'Scx/Shrd',
-'shavian' => '#/208',
-'shaw' => '#/208',
-'shorthandformatcontrols' => '#/414',
+'shavian' => '#/210',
+'shaw' => '#/210',
+'shorthandformatcontrols' => '#/431',
'shrd' => 'Scx/Shrd',
-'sidd' => '#/695',
-'siddham' => '#/695',
-'signwriting' => '#/694',
+'sidd' => '#/718',
+'siddham' => '#/718',
+'signwriting' => '#/717',
'sind' => 'Scx/Sind',
'sinh' => 'Scx/Sinh',
'sinhala' => 'Scx/Sinh',
-'sinhalaarchaicnumbers' => '#/409',
+'sinhalaarchaicnumbers' => '#/426',
'sk' => 'Gc/Sk',
'sm' => 'Gc/Sm',
-'smallforms' => '#/295',
-'smallformvariants' => '#/295',
-'smallkanaext' => '#/341',
-'smallkanaextension' => '#/341',
+'smallforms' => '#/306',
+'smallformvariants' => '#/306',
+'smallkanaext' => '#/355',
+'smallkanaextension' => '#/355',
'so' => 'Gc/So',
'softdotted' => 'SD/Y',
-'sogd' => '#/696',
-'sogdian' => '#/696',
-'sogo' => '#/697',
-'sora' => '#/698',
-'sorasompeng' => '#/698',
-'soyo' => '#/699',
-'soyombo' => '#/699',
+'sogd' => '#/719',
+'sogdian' => '#/719',
+'sogo' => '#/720',
+'sora' => '#/721',
+'sorasompeng' => '#/721',
+'soyo' => '#/722',
+'soyombo' => '#/722',
'space' => 'Perl/SpacePer',
'spaceperl' => 'Perl/SpacePer',
'spaceseparator' => 'Gc/Zs',
'spacingmark' => 'Gc/Mc',
-'spacingmodifierletters' => '#/370',
-'specials' => '#/244',
+'spacingmodifierletters' => '#/386',
+'specials' => '#/247',
'sterm' => 'STerm/Y',
'sterm=f' => '!STerm/Y',
'sterm=false' => '!STerm/Y',
@@ -7099,63 +7329,64 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sterm=true' => 'STerm/Y',
'sterm=y' => 'STerm/Y',
'sterm=yes' => 'STerm/Y',
-'sund' => '#/700',
-'sundanese' => '#/700',
-'sundanesesup' => '#/342',
-'sundanesesupplement' => '#/342',
-'suparrowsa' => '#/296',
-'suparrowsb' => '#/297',
-'suparrowsc' => '#/298',
-'superandsub' => '#/322',
-'superscriptsandsubscripts' => '#/322',
-'supmathoperators' => '#/385',
-'supplementalarrowsa' => '#/296',
-'supplementalarrowsb' => '#/297',
-'supplementalarrowsc' => '#/298',
-'supplementalmathematicaloperators' => '#/385',
-'supplementalpunctuation' => '#/361',
-'supplementalsymbolsandpictographs' => '#/415',
-'supplementaryprivateuseareaa' => '#/213',
-'supplementaryprivateuseareab' => '#/214',
-'suppuaa' => '#/213',
-'suppuab' => '#/214',
-'suppunctuation' => '#/361',
-'supsymbolsandpictographs' => '#/415',
+'sund' => '#/723',
+'sundanese' => '#/723',
+'sundanesesup' => '#/356',
+'sundanesesupplement' => '#/356',
+'suparrowsa' => '#/307',
+'suparrowsb' => '#/308',
+'suparrowsc' => '#/309',
+'superandsub' => '#/334',
+'superscriptsandsubscripts' => '#/334',
+'supmathoperators' => '#/402',
+'supplementalarrowsa' => '#/307',
+'supplementalarrowsb' => '#/308',
+'supplementalarrowsc' => '#/309',
+'supplementalmathematicaloperators' => '#/402',
+'supplementalpunctuation' => '#/377',
+'supplementalsymbolsandpictographs' => '#/432',
+'supplementaryprivateuseareaa' => '#/215',
+'supplementaryprivateuseareab' => '#/216',
+'suppuaa' => '#/215',
+'suppuab' => '#/216',
+'suppunctuation' => '#/377',
+'supsymbolsandpictographs' => '#/432',
'surrogate' => '#/14',
-'suttonsignwriting' => '#/392',
-'sylo' => '#/701',
-'sylotinagri' => '#/701',
+'suttonsignwriting' => '#/409',
+'sylo' => '#/724',
+'sylotinagri' => '#/724',
'symbol' => 'Gc/S',
-'symbolsandpictographsexta' => '#/416',
-'symbolsandpictographsextendeda' => '#/416',
-'symbolsforlegacycomputing' => '#/417',
+'symbolsandpictographsexta' => '#/433',
+'symbolsandpictographsextendeda' => '#/433',
+'symbolsforlegacycomputing' => '#/434',
'syrc' => 'Scx/Syrc',
'syriac' => 'Scx/Syrc',
-'syriacsup' => '#/275',
-'syriacsupplement' => '#/275',
-'tagalog' => '#/705',
+'syriacsup' => '#/283',
+'syriacsupplement' => '#/283',
+'tagalog' => '#/728',
'tagb' => 'Scx/Tagb',
'tagbanwa' => 'Scx/Tagb',
-'tags' => '#/128',
-'taile' => '#/702',
+'tags' => '#/127',
+'taile' => '#/725',
'taitham' => 'Scx/Lana',
-'taiviet' => '#/703',
-'taixuanjing' => '#/324',
-'taixuanjingsymbols' => '#/324',
+'taiviet' => '#/726',
+'taixuanjing' => '#/336',
+'taixuanjingsymbols' => '#/336',
'takr' => 'Scx/Takr',
'takri' => 'Scx/Takr',
-'tale' => '#/702',
+'tale' => '#/725',
'talu' => 'Scx/Talu',
'tamil' => 'Scx/Taml',
-'tamilsup' => '#/246',
-'tamilsupplement' => '#/246',
+'tamilsup' => '#/249',
+'tamilsupplement' => '#/249',
'taml' => 'Scx/Taml',
'tang' => 'Scx/Tang',
+'tangsa' => '#/730',
'tangut' => 'Scx/Tang',
-'tangutcomponents' => '#/386',
-'tangutsup' => '#/276',
-'tangutsupplement' => '#/276',
-'tavt' => '#/703',
+'tangutcomponents' => '#/403',
+'tangutsup' => '#/284',
+'tangutsupplement' => '#/284',
+'tavt' => '#/726',
'telu' => 'Scx/Telu',
'telugu' => 'Scx/Telu',
'term' => 'Term/Y',
@@ -7168,25 +7399,28 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'term=y' => 'Term/Y',
'term=yes' => 'Term/Y',
'terminalpunctuation' => 'Term/Y',
-'tfng' => '#/704',
-'tglg' => '#/705',
+'tfng' => '#/727',
+'tglg' => '#/728',
'thaa' => 'Scx/Thaa',
'thaana' => 'Scx/Thaa',
-'thai' => '#/706',
+'thai' => '#/729',
'tibetan' => 'Scx/Tibt',
'tibt' => 'Scx/Tibt',
-'tifinagh' => '#/704',
+'tifinagh' => '#/727',
'tirh' => 'Scx/Tirh',
'tirhuta' => 'Scx/Tirh',
'title' => 'Perl/Title',
'titlecase' => 'Perl/Title',
'titlecaseletter' => 'Perl/Title',
-'transportandmap' => '#/373',
-'transportandmapsymbols' => '#/373',
+'tnsa' => '#/730',
+'toto' => '#/731',
+'transportandmap' => '#/389',
+'transportandmapsymbols' => '#/389',
'ucas' => '#/130',
-'ucasext' => '#/220',
-'ugar' => '#/707',
-'ugaritic' => '#/707',
+'ucasext' => '#/222',
+'ucasexta' => '#/251',
+'ugar' => '#/732',
+'ugaritic' => '#/732',
'uideo' => 'UIdeo/Y',
'uideo=f' => '!UIdeo/Y',
'uideo=false' => '!UIdeo/Y',
@@ -7199,7 +7433,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'unassigned' => 'Gc/Cn',
'unicode' => '#/2',
'unifiedcanadianaboriginalsyllabics' => '#/130',
-'unifiedcanadianaboriginalsyllabicsextended' => '#/220',
+'unifiedcanadianaboriginalsyllabicsextended' => '#/222',
+'unifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
'unifiedideograph' => 'UIdeo/Y',
'unknown' => 'Scx/Zzzz',
'upper' => 'Upper/Y',
@@ -7213,15 +7448,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'upper=yes' => 'Upper/Y',
'uppercase' => 'Upper/Y',
'uppercaseletter' => 'Gc/Lu',
-'vai' => '#/634',
-'vaii' => '#/634',
-'variationselector' => '#/93',
-'variationselectors' => '#/111',
+'vai' => '#/653',
+'vaii' => '#/653',
+'variationselector' => 'VS/Y',
+'variationselectors' => '#/109',
'variationselectorssupplement' => '#/149',
-'vedicext' => '#/249',
-'vedicextensions' => '#/249',
-'verticalforms' => '#/351',
+'vedicext' => '#/253',
+'vedicextensions' => '#/253',
+'verticalforms' => '#/365',
'vertspace' => '#/4',
+'vith' => 'Scx/Vith',
+'vithkuqi' => 'Scx/Vith',
'vo=r' => 'Vo/R',
'vo=rotated' => 'Vo/R',
'vo=tr' => 'Vo/Tr',
@@ -7230,23 +7467,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'vo=tu' => 'Vo/Tu',
'vo=u' => 'Vo/U',
'vo=upright' => 'Vo/U',
-'vs' => '#/93',
-'vs=f' => '#/!93',
-'vs=false' => '#/!93',
-'vs=n' => '#/!93',
-'vs=no' => '#/!93',
-'vs=t' => '#/93',
-'vs=true' => '#/93',
-'vs=y' => '#/93',
-'vs=yes' => '#/93',
+'vs' => 'VS/Y',
+'vs=f' => '!VS/Y',
+'vs=false' => '!VS/Y',
+'vs=n' => '!VS/Y',
+'vs=no' => '!VS/Y',
+'vs=t' => 'VS/Y',
+'vs=true' => 'VS/Y',
+'vs=y' => 'VS/Y',
+'vs=yes' => 'VS/Y',
'vssup' => '#/149',
-'wancho' => '#/709',
-'wara' => '#/708',
-'warangciti' => '#/708',
+'wancho' => '#/734',
+'wara' => '#/733',
+'warangciti' => '#/733',
'wb=aletter' => 'WB/LE',
'wb=cr' => '#/66',
-'wb=doublequote' => '#/94',
-'wb=dq' => '#/94',
+'wb=doublequote' => '#/92',
+'wb=dq' => '#/92',
'wb=eb' => '#/0',
'wb=ebase' => '#/0',
'wb=ebasegaz' => '#/0',
@@ -7272,19 +7509,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'wb=midnumlet' => 'WB/MB',
'wb=ml' => 'WB/ML',
'wb=mn' => 'WB/MN',
-'wb=newline' => '#/95',
-'wb=nl' => '#/95',
+'wb=newline' => '#/93',
+'wb=nl' => '#/93',
'wb=nu' => 'WB/NU',
'wb=numeric' => 'WB/NU',
'wb=other' => 'WB/XX',
'wb=regionalindicator' => '#/68',
'wb=ri' => '#/68',
-'wb=singlequote' => '#/96',
-'wb=sq' => '#/96',
+'wb=singlequote' => '#/94',
+'wb=sq' => '#/94',
'wb=wsegspace' => 'WB/WSegSpac',
'wb=xx' => 'WB/XX',
'wb=zwj' => '#/69',
-'wcho' => '#/709',
+'wcho' => '#/734',
'whitespace' => 'Perl/SpacePer',
'word' => 'Perl/Word',
'wspace' => 'Perl/SpacePer',
@@ -7317,12 +7554,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'xids=y' => 'XIDS/Y',
'xids=yes' => 'XIDS/Y',
'xidstart' => 'XIDS/Y',
-'xpeo' => '#/710',
+'xpeo' => '#/735',
'xperlspace' => 'Perl/SpacePer',
'xposixalnum' => 'Perl/Alnum',
'xposixalpha' => 'Alpha/Y',
'xposixblank' => 'Perl/Blank',
-'xposixcntrl' => '#/422',
+'xposixcntrl' => '#/439',
'xposixdigit' => 'Gc/Nd',
'xposixgraph' => 'Perl/Graph',
'xposixlower' => 'Lower/Y',
@@ -7337,16 +7574,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'yezidi' => 'Scx/Yezi',
'yi' => 'Scx/Yi',
'yiii' => 'Scx/Yi',
-'yijing' => '#/177',
-'yijinghexagramsymbols' => '#/177',
-'yiradicals' => '#/300',
-'yisyllables' => '#/325',
+'yijing' => '#/178',
+'yijinghexagramsymbols' => '#/178',
+'yiradicals' => '#/311',
+'yisyllables' => '#/337',
'z' => 'Gc/Z',
-'zanabazarsquare' => '#/711',
-'zanb' => '#/711',
+'zanabazarsquare' => '#/736',
+'zanb' => '#/736',
'zinh' => 'Scx/Zinh',
-'zl' => '#/424',
-'zp' => '#/425',
+'zl' => '#/441',
+'znamennymusic' => '#/366',
+'znamennymusicalnotation' => '#/366',
+'zp' => '#/442',
'zs' => 'Gc/Zs',
'zyyy' => 'Scx/Zyyy',
'zzzz' => 'Scx/Zzzz',
@@ -7354,62 +7593,62 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
# Maps floating point to fractional form
%Unicode::UCD::nv_floating_to_rational = (
-'-5.00e-01' => '-1/2',
-'1.00e-01' => '1/10',
-'1.11e-01' => '1/9',
-'1.25e-01' => '1/8',
-'1.25e-02' => '1/80',
-'1.43e-01' => '1/7',
-'1.50e+00' => '3/2',
-'1.50e-01' => '3/20',
-'1.56e-02' => '1/64',
-'1.67e-01' => '1/6',
-'1.88e-01' => '3/16',
-'2.00e-01' => '1/5',
-'2.50e+00' => '5/2',
-'2.50e-01' => '1/4',
-'2.50e-02' => '1/40',
-'3.12e-02' => '1/32',
-'3.13e-02' => '1/32',
-'3.13e-03' => '1/320',
-'3.33e-01' => '1/3',
-'3.50e+00' => '7/2',
-'3.75e-01' => '3/8',
-'3.75e-02' => '3/80',
-'4.00e-01' => '2/5',
-'4.17e-01' => '5/12',
-'4.50e+00' => '9/2',
-'4.69e-02' => '3/64',
-'5.00e-01' => '1/2',
-'5.00e-02' => '1/20',
-'5.50e+00' => '11/2',
-'5.83e-01' => '7/12',
-'6.00e-01' => '3/5',
-'6.25e-01' => '5/8',
-'6.25e-02' => '1/16',
-'6.25e-03' => '1/160',
-'6.50e+00' => '13/2',
-'6.67e-01' => '2/3',
-'7.50e+00' => '15/2',
-'7.50e-01' => '3/4',
-'8.00e-01' => '4/5',
-'8.33e-01' => '5/6',
-'8.33e-02' => '1/12',
-'8.50e+00' => '17/2',
-'8.75e-01' => '7/8',
-'9.17e-01' => '11/12',
+'-5.000e-01' => '-1/2',
+'1.000e-01' => '1/10',
+'1.111e-01' => '1/9',
+'1.250e-01' => '1/8',
+'1.250e-02' => '1/80',
+'1.429e-01' => '1/7',
+'1.500e+00' => '3/2',
+'1.500e-01' => '3/20',
+'1.562e-02' => '1/64',
+'1.563e-02' => '1/64',
+'1.667e-01' => '1/6',
+'1.875e-01' => '3/16',
+'2.000e-01' => '1/5',
+'2.500e+00' => '5/2',
+'2.500e-01' => '1/4',
+'2.500e-02' => '1/40',
+'3.125e-02' => '1/32',
+'3.125e-03' => '1/320',
+'3.333e-01' => '1/3',
+'3.500e+00' => '7/2',
+'3.750e-01' => '3/8',
+'3.750e-02' => '3/80',
+'4.000e-01' => '2/5',
+'4.167e-01' => '5/12',
+'4.500e+00' => '9/2',
+'4.688e-02' => '3/64',
+'5.000e-01' => '1/2',
+'5.000e-02' => '1/20',
+'5.500e+00' => '11/2',
+'5.833e-01' => '7/12',
+'6.000e-01' => '3/5',
+'6.250e-01' => '5/8',
+'6.250e-02' => '1/16',
+'6.250e-03' => '1/160',
+'6.500e+00' => '13/2',
+'6.667e-01' => '2/3',
+'7.500e+00' => '15/2',
+'7.500e-01' => '3/4',
+'8.000e-01' => '4/5',
+'8.333e-01' => '5/6',
+'8.333e-02' => '1/12',
+'8.500e+00' => '17/2',
+'8.750e-01' => '7/8',
+'9.167e-01' => '11/12',
);
# If a %e floating point number doesn't have this number of digits in it after
# the decimal point to get this close to a fraction, it isn't considered to be
# that fraction even if all the digits it does have match.
-$Unicode::UCD::e_precision = 2;
+$Unicode::UCD::e_precision = 3;
# Deprecated tables to generate a warning for. The key is the file containing
# 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.
%Unicode::UCD::why_deprecated = (
-'#/516' => 'Surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
+'#/533' => 'Surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
'Hyphen/T' => 'Supplanted by Line_Break property values; see www.unicode.org/reports/tr14',
);
@@ -7611,6 +7850,8 @@ $Unicode::UCD::e_precision = 2;
'age=12.0' => '12.0',
'age=12.1' => '12.1',
'age=13.0' => '13.0',
+'age=14.0' => '14.0',
+'age=15.0' => '15.0',
'age=2.0' => '2.0',
'age=2.1' => '2.1',
'age=3.0' => '3.0',
@@ -7636,6 +7877,8 @@ $Unicode::UCD::e_precision = 2;
'age=v120' => '12.0',
'age=v121' => '12.1',
'age=v130' => '13.0',
+'age=v140' => '14.0',
+'age=v150' => '15.0',
'age=v20' => '2.0',
'age=v21' => '2.1',
'age=v30' => '3.0',
@@ -7745,7 +7988,11 @@ $Unicode::UCD::e_precision = 2;
'blk=ancientsymbols' => 'ancientsymbols',
'blk=arabic' => 'arabic',
'blk=arabicexta' => 'arabicexta',
+'blk=arabicextb' => 'arabicextb',
+'blk=arabicextc' => 'arabicextc',
'blk=arabicextendeda' => 'arabicexta',
+'blk=arabicextendedb' => 'arabicextb',
+'blk=arabicextendedc' => 'arabicextc',
'blk=arabicmath' => 'arabicmath',
'blk=arabicmathematicalalphabeticsymbols' => 'arabicmath',
'blk=arabicpfa' => 'arabicpfa',
@@ -7805,6 +8052,7 @@ $Unicode::UCD::e_precision = 2;
'blk=cjkexte' => 'cjkexte',
'blk=cjkextf' => 'cjkextf',
'blk=cjkextg' => 'cjkextg',
+'blk=cjkexth' => 'cjkexth',
'blk=cjkradicalssup' => 'cjkradicalssup',
'blk=cjkradicalssupplement' => 'cjkradicalssup',
'blk=cjkstrokes' => 'cjkstrokes',
@@ -7818,6 +8066,7 @@ $Unicode::UCD::e_precision = 2;
'blk=cjkunifiedideographsextensione' => 'cjkexte',
'blk=cjkunifiedideographsextensionf' => 'cjkextf',
'blk=cjkunifiedideographsextensiong' => 'cjkextg',
+'blk=cjkunifiedideographsextensionh' => 'cjkexth',
'blk=combiningdiacriticalmarks' => 'diacriticals',
'blk=combiningdiacriticalmarksextended' => 'diacriticalsext',
'blk=combiningdiacriticalmarksforsymbols' => 'diacriticalsforsymbols',
@@ -7836,20 +8085,25 @@ $Unicode::UCD::e_precision = 2;
'blk=cuneiformnumbersandpunctuation' => 'cuneiformnumbers',
'blk=currencysymbols' => 'currencysymbols',
'blk=cypriotsyllabary' => 'cypriotsyllabary',
+'blk=cyprominoan' => 'cyprominoan',
'blk=cyrillic' => 'cyrillic',
'blk=cyrillicexta' => 'cyrillicexta',
'blk=cyrillicextb' => 'cyrillicextb',
'blk=cyrillicextc' => 'cyrillicextc',
+'blk=cyrillicextd' => 'cyrillicextd',
'blk=cyrillicextendeda' => 'cyrillicexta',
'blk=cyrillicextendedb' => 'cyrillicextb',
'blk=cyrillicextendedc' => 'cyrillicextc',
+'blk=cyrillicextendedd' => 'cyrillicextd',
'blk=cyrillicsup' => 'cyrillicsup',
'blk=cyrillicsupplement' => 'cyrillicsup',
'blk=cyrillicsupplementary' => 'cyrillicsup',
'blk=deseret' => 'deseret',
'blk=devanagari' => 'devanagari',
'blk=devanagariext' => 'devanagariext',
+'blk=devanagariexta' => 'devanagariexta',
'blk=devanagariextended' => 'devanagariext',
+'blk=devanagariextendeda' => 'devanagariexta',
'blk=diacriticals' => 'diacriticals',
'blk=diacriticalsext' => 'diacriticalsext',
'blk=diacriticalsforsymbols' => 'diacriticalsforsymbols',
@@ -7877,8 +8131,10 @@ $Unicode::UCD::e_precision = 2;
'blk=ethiopic' => 'ethiopic',
'blk=ethiopicext' => 'ethiopicext',
'blk=ethiopicexta' => 'ethiopicexta',
+'blk=ethiopicextb' => 'ethiopicextb',
'blk=ethiopicextended' => 'ethiopicext',
'blk=ethiopicextendeda' => 'ethiopicexta',
+'blk=ethiopicextendedb' => 'ethiopicextb',
'blk=ethiopicsup' => 'ethiopicsup',
'blk=ethiopicsupplement' => 'ethiopicsup',
'blk=generalpunctuation' => 'punctuation',
@@ -7935,8 +8191,11 @@ $Unicode::UCD::e_precision = 2;
'blk=jamoextb' => 'jamoextb',
'blk=javanese' => 'javanese',
'blk=kaithi' => 'kaithi',
+'blk=kaktoviknumerals' => 'kaktoviknumerals',
'blk=kanaexta' => 'kanaexta',
+'blk=kanaextb' => 'kanaextb',
'blk=kanaextendeda' => 'kanaexta',
+'blk=kanaextendedb' => 'kanaextb',
'blk=kanasup' => 'kanasup',
'blk=kanasupplement' => 'kanasup',
'blk=kanbun' => 'kanbun',
@@ -7946,6 +8205,7 @@ $Unicode::UCD::e_precision = 2;
'blk=katakana' => 'katakana',
'blk=katakanaext' => 'katakanaext',
'blk=katakanaphoneticextensions' => 'katakanaext',
+'blk=kawi' => 'kawi',
'blk=kayahli' => 'kayahli',
'blk=kharoshthi' => 'kharoshthi',
'blk=khitansmallscript' => 'khitansmallscript',
@@ -7969,6 +8229,10 @@ $Unicode::UCD::e_precision = 2;
'blk=latinextendedc' => 'latinextc',
'blk=latinextendedd' => 'latinextd',
'blk=latinextendede' => 'latinexte',
+'blk=latinextendedf' => 'latinextf',
+'blk=latinextendedg' => 'latinextg',
+'blk=latinextf' => 'latinextf',
+'blk=latinextg' => 'latinextg',
'blk=lepcha' => 'lepcha',
'blk=letterlikesymbols' => 'letterlikesymbols',
'blk=limbu' => 'limbu',
@@ -8031,6 +8295,7 @@ $Unicode::UCD::e_precision = 2;
'blk=myanmarextendeda' => 'myanmarexta',
'blk=myanmarextendedb' => 'myanmarextb',
'blk=nabataean' => 'nabataean',
+'blk=nagmundari' => 'nagmundari',
'blk=nandinagari' => 'nandinagari',
'blk=nb' => 'nb',
'blk=newa' => 'newa',
@@ -8051,6 +8316,7 @@ $Unicode::UCD::e_precision = 2;
'blk=oldsogdian' => 'oldsogdian',
'blk=oldsoutharabian' => 'oldsoutharabian',
'blk=oldturkic' => 'oldturkic',
+'blk=olduyghur' => 'olduyghur',
'blk=opticalcharacterrecognition' => 'ocr',
'blk=oriya' => 'oriya',
'blk=ornamentaldingbats' => 'ornamentaldingbats',
@@ -8136,6 +8402,7 @@ $Unicode::UCD::e_precision = 2;
'blk=tamil' => 'tamil',
'blk=tamilsup' => 'tamilsup',
'blk=tamilsupplement' => 'tamilsup',
+'blk=tangsa' => 'tangsa',
'blk=tangut' => 'tangut',
'blk=tangutcomponents' => 'tangutcomponents',
'blk=tangutsup' => 'tangutsup',
@@ -8146,19 +8413,23 @@ $Unicode::UCD::e_precision = 2;
'blk=tibetan' => 'tibetan',
'blk=tifinagh' => 'tifinagh',
'blk=tirhuta' => 'tirhuta',
+'blk=toto' => 'toto',
'blk=transportandmap' => 'transportandmap',
'blk=transportandmapsymbols' => 'transportandmap',
'blk=ucas' => 'ucas',
'blk=ucasext' => 'ucasext',
+'blk=ucasexta' => 'ucasexta',
'blk=ugaritic' => 'ugaritic',
'blk=unifiedcanadianaboriginalsyllabics' => 'ucas',
'blk=unifiedcanadianaboriginalsyllabicsextended' => 'ucasext',
+'blk=unifiedcanadianaboriginalsyllabicsextendeda' => 'ucasexta',
'blk=vai' => 'vai',
'blk=variationselectors' => 'vs',
'blk=variationselectorssupplement' => 'vssup',
'blk=vedicext' => 'vedicext',
'blk=vedicextensions' => 'vedicext',
'blk=verticalforms' => 'verticalforms',
+'blk=vithkuqi' => 'vithkuqi',
'blk=vs' => 'vs',
'blk=vssup' => 'vssup',
'blk=wancho' => 'wancho',
@@ -8169,6 +8440,8 @@ $Unicode::UCD::e_precision = 2;
'blk=yiradicals' => 'yiradicals',
'blk=yisyllables' => 'yisyllables',
'blk=zanabazarsquare' => 'zanabazarsquare',
+'blk=znamennymusic' => 'znamennymusic',
+'blk=znamennymusicalnotation' => 'znamennymusic',
'bpt=c' => 'c',
'bpt=close' => 'c',
'bpt=n' => 'n',
@@ -8740,6 +9013,8 @@ $Unicode::UCD::e_precision = 2;
'in=12.0' => '12.0',
'in=12.1' => '12.1',
'in=13.0' => '13.0',
+'in=14.0' => '14.0',
+'in=15.0' => '15.0',
'in=2.0' => '2.0',
'in=2.1' => '2.1',
'in=3.0' => '3.0',
@@ -8757,12 +9032,16 @@ $Unicode::UCD::e_precision = 2;
'in=7.0' => '7.0',
'in=8.0' => '8.0',
'in=9.0' => '9.0',
+'in=na' => 'unassigned',
'in=unassigned' => 'unassigned',
'in=v100' => '10.0',
+'in=v11' => '1.1',
'in=v110' => '11.0',
'in=v120' => '12.0',
'in=v121' => '12.1',
'in=v130' => '13.0',
+'in=v140' => '14.0',
+'in=v150' => '15.0',
'in=v20' => '2.0',
'in=v21' => '2.1',
'in=v30' => '3.0',
@@ -8927,6 +9206,8 @@ $Unicode::UCD::e_precision = 2;
'jg=tehmarbuta' => 'tehmarbuta',
'jg=tehmarbutagoal' => 'tehmarbutagoal',
'jg=teth' => 'teth',
+'jg=thinyeh' => 'thinyeh',
+'jg=verticaltail' => 'verticaltail',
'jg=waw' => 'waw',
'jg=yeh' => 'yeh',
'jg=yehbarree' => 'yehbarree',
@@ -9362,9 +9643,11 @@ $Unicode::UCD::e_precision = 2;
'sc=common' => 'zyyy',
'sc=copt' => 'copt',
'sc=coptic' => 'copt',
+'sc=cpmn' => 'cpmn',
'sc=cprt' => 'cprt',
'sc=cuneiform' => 'xsux',
'sc=cypriot' => 'cprt',
+'sc=cyprominoan' => 'cpmn',
'sc=cyrillic' => 'cyrl',
'sc=cyrl' => 'cyrl',
'sc=deseret' => 'dsrt',
@@ -9431,6 +9714,7 @@ $Unicode::UCD::e_precision = 2;
'sc=kana' => 'kana',
'sc=kannada' => 'knda',
'sc=katakana' => 'kana',
+'sc=kawi' => 'kawi',
'sc=kayahli' => 'kali',
'sc=khar' => 'khar',
'sc=kharoshthi' => 'khar',
@@ -9495,6 +9779,8 @@ $Unicode::UCD::e_precision = 2;
'sc=myanmar' => 'mymr',
'sc=mymr' => 'mymr',
'sc=nabataean' => 'nbat',
+'sc=nagm' => 'nagm',
+'sc=nagmundari' => 'nagm',
'sc=nand' => 'nand',
'sc=nandinagari' => 'nand',
'sc=narb' => 'narb',
@@ -9518,6 +9804,7 @@ $Unicode::UCD::e_precision = 2;
'sc=oldsogdian' => 'sogo',
'sc=oldsoutharabian' => 'sarb',
'sc=oldturkic' => 'orkh',
+'sc=olduyghur' => 'ougr',
'sc=oriya' => 'orya',
'sc=orkh' => 'orkh',
'sc=orya' => 'orya',
@@ -9525,6 +9812,7 @@ $Unicode::UCD::e_precision = 2;
'sc=osge' => 'osge',
'sc=osma' => 'osma',
'sc=osmanya' => 'osma',
+'sc=ougr' => 'ougr',
'sc=pahawhhmong' => 'hmng',
'sc=palm' => 'palm',
'sc=palmyrene' => 'palm',
@@ -9589,6 +9877,7 @@ $Unicode::UCD::e_precision = 2;
'sc=tamil' => 'taml',
'sc=taml' => 'taml',
'sc=tang' => 'tang',
+'sc=tangsa' => 'tnsa',
'sc=tangut' => 'tang',
'sc=tavt' => 'tavt',
'sc=telu' => 'telu',
@@ -9603,11 +9892,15 @@ $Unicode::UCD::e_precision = 2;
'sc=tifinagh' => 'tfng',
'sc=tirh' => 'tirh',
'sc=tirhuta' => 'tirh',
+'sc=tnsa' => 'tnsa',
+'sc=toto' => 'toto',
'sc=ugar' => 'ugar',
'sc=ugaritic' => 'ugar',
'sc=unknown' => 'zzzz',
'sc=vai' => 'vaii',
'sc=vaii' => 'vaii',
+'sc=vith' => 'vith',
+'sc=vithkuqi' => 'vith',
'sc=wancho' => 'wcho',
'sc=wara' => 'wara',
'sc=warangciti' => 'wara',
@@ -9672,9 +9965,11 @@ $Unicode::UCD::e_precision = 2;
'scx=common' => 'zyyy',
'scx=copt' => 'copt',
'scx=coptic' => 'copt',
+'scx=cpmn' => 'cpmn',
'scx=cprt' => 'cprt',
'scx=cuneiform' => 'xsux',
'scx=cypriot' => 'cprt',
+'scx=cyprominoan' => 'cpmn',
'scx=cyrillic' => 'cyrl',
'scx=cyrl' => 'cyrl',
'scx=deseret' => 'dsrt',
@@ -9741,6 +10036,7 @@ $Unicode::UCD::e_precision = 2;
'scx=kana' => 'kana',
'scx=kannada' => 'knda',
'scx=katakana' => 'kana',
+'scx=kawi' => 'kawi',
'scx=kayahli' => 'kali',
'scx=khar' => 'khar',
'scx=kharoshthi' => 'khar',
@@ -9805,6 +10101,8 @@ $Unicode::UCD::e_precision = 2;
'scx=myanmar' => 'mymr',
'scx=mymr' => 'mymr',
'scx=nabataean' => 'nbat',
+'scx=nagm' => 'nagm',
+'scx=nagmundari' => 'nagm',
'scx=nand' => 'nand',
'scx=nandinagari' => 'nand',
'scx=narb' => 'narb',
@@ -9828,6 +10126,7 @@ $Unicode::UCD::e_precision = 2;
'scx=oldsogdian' => 'sogo',
'scx=oldsoutharabian' => 'sarb',
'scx=oldturkic' => 'orkh',
+'scx=olduyghur' => 'ougr',
'scx=oriya' => 'orya',
'scx=orkh' => 'orkh',
'scx=orya' => 'orya',
@@ -9835,6 +10134,7 @@ $Unicode::UCD::e_precision = 2;
'scx=osge' => 'osge',
'scx=osma' => 'osma',
'scx=osmanya' => 'osma',
+'scx=ougr' => 'ougr',
'scx=pahawhhmong' => 'hmng',
'scx=palm' => 'palm',
'scx=palmyrene' => 'palm',
@@ -9899,6 +10199,7 @@ $Unicode::UCD::e_precision = 2;
'scx=tamil' => 'taml',
'scx=taml' => 'taml',
'scx=tang' => 'tang',
+'scx=tangsa' => 'tnsa',
'scx=tangut' => 'tang',
'scx=tavt' => 'tavt',
'scx=telu' => 'telu',
@@ -9913,11 +10214,15 @@ $Unicode::UCD::e_precision = 2;
'scx=tifinagh' => 'tfng',
'scx=tirh' => 'tirh',
'scx=tirhuta' => 'tirh',
+'scx=tnsa' => 'tnsa',
+'scx=toto' => 'toto',
'scx=ugar' => 'ugar',
'scx=ugaritic' => 'ugar',
'scx=unknown' => 'zzzz',
'scx=vai' => 'vaii',
'scx=vaii' => 'vaii',
+'scx=vith' => 'vith',
+'scx=vithkuqi' => 'vith',
'scx=wancho' => 'wcho',
'scx=wara' => 'wara',
'scx=warangciti' => 'wara',
@@ -10880,6 +11185,16 @@ $Unicode::UCD::e_precision = 2;
'13.0',
'V13_0',
],
+'14.0' =>
+[
+'14.0',
+'V14_0',
+],
+'15.0' =>
+[
+'15.0',
+'V15_0',
+],
'2.0' =>
[
'2.0',
@@ -11207,6 +11522,16 @@ $Unicode::UCD::e_precision = 2;
'Arabic_Ext_A',
'Arabic_Extended_A',
],
+'arabicextb' =>
+[
+'Arabic_Ext_B',
+'Arabic_Extended_B',
+],
+'arabicextc' =>
+[
+'Arabic_Ext_C',
+'Arabic_Extended_C',
+],
'arabicmath' =>
[
'Arabic_Math',
@@ -11405,6 +11730,11 @@ $Unicode::UCD::e_precision = 2;
'CJK_Ext_G',
'CJK_Unified_Ideographs_Extension_G',
],
+'cjkexth' =>
+[
+'CJK_Ext_H',
+'CJK_Unified_Ideographs_Extension_H',
+],
'cjkradicalssup' =>
[
'CJK_Radicals_Sup',
@@ -11458,6 +11788,10 @@ $Unicode::UCD::e_precision = 2;
[
'Cypriot_Syllabary',
],
+'cyprominoan' =>
+[
+'Cypro_Minoan',
+],
'cyrillic' =>
[
'Cyrillic',
@@ -11477,6 +11811,11 @@ $Unicode::UCD::e_precision = 2;
'Cyrillic_Ext_C',
'Cyrillic_Extended_C',
],
+'cyrillicextd' =>
+[
+'Cyrillic_Ext_D',
+'Cyrillic_Extended_D',
+],
'cyrillicsup' =>
[
'Cyrillic_Sup',
@@ -11496,6 +11835,11 @@ $Unicode::UCD::e_precision = 2;
'Devanagari_Ext',
'Devanagari_Extended',
],
+'devanagariexta' =>
+[
+'Devanagari_Ext_A',
+'Devanagari_Extended_A',
+],
'diacriticals' =>
[
'Diacriticals',
@@ -11596,6 +11940,11 @@ $Unicode::UCD::e_precision = 2;
'Ethiopic_Ext_A',
'Ethiopic_Extended_A',
],
+'ethiopicextb' =>
+[
+'Ethiopic_Ext_B',
+'Ethiopic_Extended_B',
+],
'ethiopicsup' =>
[
'Ethiopic_Sup',
@@ -11766,11 +12115,20 @@ $Unicode::UCD::e_precision = 2;
[
'Kaithi',
],
+'kaktoviknumerals' =>
+[
+'Kaktovik_Numerals',
+],
'kanaexta' =>
[
'Kana_Ext_A',
'Kana_Extended_A',
],
+'kanaextb' =>
+[
+'Kana_Ext_B',
+'Kana_Extended_B',
+],
'kanasup' =>
[
'Kana_Sup',
@@ -11798,6 +12156,10 @@ $Unicode::UCD::e_precision = 2;
'Katakana_Ext',
'Katakana_Phonetic_Extensions',
],
+'kawi' =>
+[
+'Kawi',
+],
'kayahli' =>
[
'Kayah_Li',
@@ -11866,6 +12228,16 @@ $Unicode::UCD::e_precision = 2;
'Latin_Ext_E',
'Latin_Extended_E',
],
+'latinextf' =>
+[
+'Latin_Ext_F',
+'Latin_Extended_F',
+],
+'latinextg' =>
+[
+'Latin_Ext_G',
+'Latin_Extended_G',
+],
'lepcha' =>
[
'Lepcha',
@@ -12070,6 +12442,10 @@ $Unicode::UCD::e_precision = 2;
[
'Nabataean',
],
+'nagmundari' =>
+[
+'Nag_Mundari',
+],
'nandinagari' =>
[
'Nandinagari',
@@ -12148,6 +12524,10 @@ $Unicode::UCD::e_precision = 2;
[
'Old_Turkic',
],
+'olduyghur' =>
+[
+'Old_Uyghur',
+],
'oriya' =>
[
'Oriya',
@@ -12415,6 +12795,10 @@ $Unicode::UCD::e_precision = 2;
'Tamil_Sup',
'Tamil_Supplement',
],
+'tangsa' =>
+[
+'Tangsa',
+],
'tangut' =>
[
'Tangut',
@@ -12452,6 +12836,10 @@ $Unicode::UCD::e_precision = 2;
[
'Tirhuta',
],
+'toto' =>
+[
+'Toto',
+],
'transportandmap' =>
[
'Transport_And_Map',
@@ -12468,6 +12856,11 @@ $Unicode::UCD::e_precision = 2;
'UCAS_Ext',
'Unified_Canadian_Aboriginal_Syllabics_Extended',
],
+'ucasexta' =>
+[
+'UCAS_Ext_A',
+'Unified_Canadian_Aboriginal_Syllabics_Extended_A',
+],
'ugaritic' =>
[
'Ugaritic',
@@ -12485,6 +12878,10 @@ $Unicode::UCD::e_precision = 2;
[
'Vertical_Forms',
],
+'vithkuqi' =>
+[
+'Vithkuqi',
+],
'vs' =>
[
'VS',
@@ -12524,6 +12921,11 @@ $Unicode::UCD::e_precision = 2;
[
'Zanabazar_Square',
],
+'znamennymusic' =>
+[
+'Znamenny_Music',
+'Znamenny_Musical_Notation',
+],
},
'bpt' =>
{
@@ -13913,6 +14315,8 @@ $Unicode::UCD::e_precision = 2;
'1.1' =>
[
'1.1',
+'1.1',
+'V1_1',
],
'10.0' =>
[
@@ -13944,6 +14348,18 @@ $Unicode::UCD::e_precision = 2;
'13.0',
'V13_0',
],
+'14.0' =>
+[
+'14.0',
+'14.0',
+'V14_0',
+],
+'15.0' =>
+[
+'15.0',
+'15.0',
+'V15_0',
+],
'2.0' =>
[
'2.0',
@@ -14049,6 +14465,8 @@ $Unicode::UCD::e_precision = 2;
'unassigned' =>
[
'Unassigned',
+'Unassigned',
+'NA',
],
},
'inpc' =>
@@ -14644,6 +15062,14 @@ $Unicode::UCD::e_precision = 2;
[
'Teth',
],
+'thinyeh' =>
+[
+'Thin_Yeh',
+],
+'verticaltail' =>
+[
+'Vertical_Tail',
+],
'waw' =>
[
'Waw',
@@ -15971,6 +16397,11 @@ $Unicode::UCD::e_precision = 2;
'Coptic',
'Qaac',
],
+'cpmn' =>
+[
+'Cpmn',
+'Cypro_Minoan',
+],
'cprt' =>
[
'Cprt',
@@ -16146,6 +16577,10 @@ $Unicode::UCD::e_precision = 2;
'Kana',
'Katakana',
],
+'kawi' =>
+[
+'Kawi',
+],
'khar' =>
[
'Khar',
@@ -16304,6 +16739,11 @@ $Unicode::UCD::e_precision = 2;
'Mymr',
'Myanmar',
],
+'nagm' =>
+[
+'Nagm',
+'Nag_Mundari',
+],
'nand' =>
[
'Nand',
@@ -16363,6 +16803,11 @@ $Unicode::UCD::e_precision = 2;
'Osma',
'Osmanya',
],
+'ougr' =>
+[
+'Ougr',
+'Old_Uyghur',
+],
'palm' =>
[
'Palm',
@@ -16572,6 +17017,15 @@ $Unicode::UCD::e_precision = 2;
'Tirh',
'Tirhuta',
],
+'tnsa' =>
+[
+'Tnsa',
+'Tangsa',
+],
+'toto' =>
+[
+'Toto',
+],
'ugar' =>
[
'Ugar',
@@ -16582,6 +17036,11 @@ $Unicode::UCD::e_precision = 2;
'Vaii',
'Vai',
],
+'vith' =>
+[
+'Vith',
+'Vithkuqi',
+],
'wara' =>
[
'Wara',
@@ -16760,6 +17219,11 @@ $Unicode::UCD::e_precision = 2;
'Coptic',
'Qaac',
],
+'cpmn' =>
+[
+'Cpmn',
+'Cypro_Minoan',
+],
'cprt' =>
[
'Cprt',
@@ -16935,6 +17399,10 @@ $Unicode::UCD::e_precision = 2;
'Kana',
'Katakana',
],
+'kawi' =>
+[
+'Kawi',
+],
'khar' =>
[
'Khar',
@@ -17093,6 +17561,11 @@ $Unicode::UCD::e_precision = 2;
'Mymr',
'Myanmar',
],
+'nagm' =>
+[
+'Nagm',
+'Nag_Mundari',
+],
'nand' =>
[
'Nand',
@@ -17152,6 +17625,11 @@ $Unicode::UCD::e_precision = 2;
'Osma',
'Osmanya',
],
+'ougr' =>
+[
+'Ougr',
+'Old_Uyghur',
+],
'palm' =>
[
'Palm',
@@ -17361,6 +17839,15 @@ $Unicode::UCD::e_precision = 2;
'Tirh',
'Tirhuta',
],
+'tnsa' =>
+[
+'Tnsa',
+'Tangsa',
+],
+'toto' =>
+[
+'Toto',
+],
'ugar' =>
[
'Ugar',
@@ -17371,6 +17858,11 @@ $Unicode::UCD::e_precision = 2;
'Vaii',
'Vai',
],
+'vith' =>
+[
+'Vith',
+'Vithkuqi',
+],
'wara' =>
[
'Wara',
@@ -17725,7 +18217,7 @@ $Unicode::UCD::e_precision = 2;
'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
},
{
-'high' => 40956,
+'high' => 40959,
'low' => 19968,
'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
},
@@ -17765,12 +18257,12 @@ $Unicode::UCD::e_precision = 2;
'name' => 'NUSHU CHARACTER-<code point>',
},
{
-'high' => 173789,
+'high' => 173791,
'low' => 131072,
'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
},
{
-'high' => 177972,
+'high' => 177977,
'low' => 173824,
'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
},
@@ -17799,6 +18291,11 @@ $Unicode::UCD::e_precision = 2;
'low' => 196608,
'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
},
+{
+'high' => 205743,
+'low' => 201552,
+'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
+},
,
);
@@ -17972,6 +18469,7 @@ $Unicode::UCD::e_precision = 2;
'idst=false' => 1,
'idst=n' => 1,
'idst=no' => 1,
+'in=na' => 1,
'in=unassigned' => 1,
'innb' => 1,
'innoblock' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
index b13fc5847f..b1f3d8591e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1371
+V1429
888
890
896
@@ -35,8 +35,6 @@ V1371
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -54,11 +52,11 @@ V1371
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -214,7 +212,7 @@ V1371
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -224,6 +222,8 @@ V1371
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -246,14 +246,14 @@ V1371
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -313,7 +313,7 @@ V1371
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -381,10 +381,8 @@ V1371
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -401,8 +399,6 @@ V1371
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -441,11 +437,11 @@ V1371
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -461,8 +457,6 @@ V1371
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -503,7 +497,7 @@ V1371
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -517,10 +511,6 @@ V1371
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -551,7 +541,7 @@ V1371
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -575,8 +565,6 @@ V1371
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -585,10 +573,14 @@ V1371
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -659,16 +651,12 @@ V1371
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
-64976
-65022
-65024
+64975
65050
65056
65107
@@ -753,13 +741,33 @@ V1371
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -842,10 +850,12 @@ V1371
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -853,9 +863,9 @@ V1371
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -875,7 +885,7 @@ V1371
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -939,7 +949,7 @@ V1371
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -947,7 +957,7 @@ V1371
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -978,8 +988,10 @@ V1371
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1022,6 +1034,12 @@ V1371
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1034,10 +1052,10 @@ V1371
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1047,7 +1065,9 @@ V1371
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1080,10 +1100,20 @@ V1371
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1098,14 +1128,22 @@ V1371
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1158,6 +1196,10 @@ V1371
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1168,6 +1210,10 @@ V1371
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1176,10 +1222,22 @@ V1371
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1288,16 +1346,18 @@ V1371
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1311,27 +1371,23 @@ V1371
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1339,9 +1395,9 @@ V1371
130032
130042
131070
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1352,6 +1408,8 @@ V1371
195102
196606
201547
+201552
+205744
262142
262144
327678
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl
index d2e6312cd4..c63ce85f4c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
index d74d6f0104..61814ac231 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V110.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V110.pl
index 32fec71c8e..adac63d482 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V110.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V110.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V120.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V120.pl
index cd9df861c5..ee3c5d731c 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V120.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V120.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V130.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V130.pl
index dc8c8b1570..7b99b1a5ab 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V130.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V130.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V140.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V140.pl
new file mode 100755
index 0000000000..ae86eed287
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V140.pl
@@ -0,0 +1,170 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
+V156
+1565
+1566
+2160
+2191
+2192
+2194
+2200
+2208
+2229
+2230
+2248
+2259
+3132
+3133
+3165
+3166
+3293
+3294
+5901
+5902
+5909
+5910
+5919
+5920
+6159
+6160
+6849
+6863
+6988
+6989
+7037
+7039
+7674
+7675
+8384
+8385
+11311
+11312
+11359
+11360
+11859
+11870
+40957
+40960
+42944
+42946
+42960
+42962
+42963
+42964
+42965
+42970
+42994
+42997
+64450
+64451
+64832
+64848
+64975
+64976
+65022
+65024
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67456
+67462
+67463
+67505
+67506
+67515
+69488
+69514
+69744
+69750
+69826
+69827
+71353
+71354
+71488
+71495
+72368
+72384
+77712
+77811
+92784
+92863
+92864
+92874
+110576
+110580
+110581
+110588
+110589
+110591
+110879
+110883
+118528
+118574
+118576
+118599
+118608
+118724
+119273
+119275
+122624
+122655
+123536
+123567
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
+128733
+128736
+129008
+129009
+129401
+129402
+129484
+129485
+129659
+129661
+129705
+129709
+129719
+129723
+129731
+129734
+129751
+129754
+129760
+129768
+129776
+129783
+173790
+173792
+177973
+177977
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V150.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V150.pl
new file mode 100755
index 0000000000..fa77e24880
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V150.pl
@@ -0,0 +1,78 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
+V64
+3315
+3316
+3790
+3791
+69373
+69376
+70207
+70210
+72448
+72458
+73472
+73489
+73490
+73531
+73534
+73562
+78895
+78896
+78905
+78934
+110898
+110899
+110933
+110934
+119488
+119508
+122661
+122667
+122928
+122990
+123023
+123024
+124112
+124154
+128732
+128733
+128884
+128887
+128891
+128896
+128985
+128986
+129653
+129656
+129671
+129673
+129709
+129712
+129723
+129726
+129727
+129728
+129742
+129744
+129754
+129756
+129768
+129769
+129783
+129785
+177977
+177978
+201552
+205744
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
index fc785dcebf..732032af0d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
index f7d373f19b..9f895f9ec8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
index c18c260175..e1bf1091e4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
index 32ca259f53..642be656de 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
index d9864b80cf..90c533aca0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
index 69d0a21c7f..dc69514043 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
index 99e7622bd1..7fb9ba5016 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
index 013f3766e3..64a9cd86ec 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
index 5d65464812..40a8319354 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
index a232e4059b..979f79063e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
index f8c2d4ef74..30d4e6917c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
index e8d657fc55..9f804db174 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl
index e7025858ba..c4765268aa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl
index 313a399c4e..d3c21897ec 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
index 194d4ad869..b44836cf3c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1390
+V1464
65
91
97
@@ -115,10 +115,12 @@ V1390
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2260
2272
2275
@@ -278,8 +280,6 @@ V1390
3031
3032
3072
-3076
-3077
3085
3086
3089
@@ -297,6 +297,8 @@ V1390
3159
3160
3163
+3165
+3166
3168
3172
3200
@@ -319,12 +321,12 @@ V1390
3277
3285
3287
-3294
+3293
3295
3296
3300
3313
-3315
+3316
3328
3341
3342
@@ -400,7 +402,7 @@ V1390
3913
3949
3953
-3970
+3972
3976
3992
3993
@@ -472,10 +474,8 @@ V1390
5870
5881
5888
-5901
-5902
5908
-5920
+5919
5940
5952
5972
@@ -523,12 +523,14 @@ V1390
6824
6847
6849
+6860
+6863
6912
6964
6965
6980
6981
-6988
+6989
7040
7082
7084
@@ -636,10 +638,6 @@ V1390
9398
9450
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -704,8 +702,6 @@ V1390
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -726,10 +722,14 @@ V1390
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43014
43015
43048
@@ -893,12 +893,34 @@ V1390
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -973,14 +995,20 @@ V1390
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69632
69702
-69762
+69745
+69750
+69760
69817
+69826
+69827
69840
69865
69888
@@ -1008,7 +1036,7 @@ V1390
70199
70200
70206
-70207
+70210
70272
70279
70280
@@ -1081,6 +1109,8 @@ V1390
71451
71453
71467
+71488
+71495
71680
71737
71840
@@ -1119,7 +1149,7 @@ V1390
72344
72349
72350
-72384
+72368
72441
72704
72713
@@ -1165,6 +1195,12 @@ V1390
73113
73440
73463
+73472
+73489
+73490
+73531
+73534
+73537
73648
73649
73728
@@ -1173,14 +1209,20 @@ V1390
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1211,10 +1253,20 @@ V1390
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1289,6 +1341,10 @@ V1390
120771
120772
120780
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1299,14 +1355,30 @@ V1390
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1388,9 +1460,9 @@ V1390
127344
127370
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1401,4 +1473,6 @@ V1390
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
index 43b1f158d9..b1f8b704f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V56
+V58
1544
1545
1547
@@ -36,17 +36,17 @@ V56
1969
1984
2144
-2160
+2192
+2194
+2200
2208
-2259
+2250
64336
64830
-64832
-64976
+64848
+64975
65008
65021
-65022
-65024
65136
65279
68864
@@ -55,6 +55,8 @@ V56
68912
68922
68928
+69312
+69373
69424
69446
69457
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
index 2ecdc30b84..d1eea10f3c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
1536
1542
1632
@@ -19,6 +19,8 @@ V14
1645
1757
1758
+2192
+2194
2274
2275
68912
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
index 9b754a8554..56d40ad142 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
index ca471ac31a..d4a21a5484 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
index e2ee9a73f9..2b28f14390 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
index 6d8a78496e..d2cb785889 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
index 5d2e48424d..b87b6123d5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
index 93f3812de3..9df2695727 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
index 675f0c118a..b5ee734b19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V925
+V955
65
91
97
@@ -138,6 +138,8 @@ V925
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -189,7 +191,7 @@ V925
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -245,7 +247,7 @@ V925
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -265,7 +267,7 @@ V925
6128
6138
6144
-6159
+6160
6277
6279
6313
@@ -303,7 +305,7 @@ V925
6783
6784
6832
-6849
+6863
6912
6916
6964
@@ -349,8 +351,6 @@ V925
7416
7418
7616
-7674
-7675
7680
8125
8126
@@ -433,7 +433,7 @@ V925
11647
11648
11744
-11859
+11870
11904
11930
11931
@@ -606,12 +606,18 @@ V925
69703
69714
69734
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -636,6 +642,8 @@ V925
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -760,8 +768,20 @@ V925
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
73685
73714
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -778,6 +798,10 @@ V925
113823
113824
113828
+118528
+118574
+118576
+118599
119143
119146
119155
@@ -786,6 +810,8 @@ V925
119180
119210
119214
+119273
+119275
119296
119366
119552
@@ -824,12 +850,18 @@ V925
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
123647
123648
+124140
+124144
124928
127020
127024
@@ -854,16 +886,18 @@ V925
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -877,27 +911,23 @@ V925
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
index 8c9afe2019..63131e6aea 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V644
+V682
768
880
1155
@@ -59,7 +59,9 @@ V644
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2307
@@ -141,6 +143,8 @@ V644
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -188,7 +192,7 @@ V644
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -236,7 +240,7 @@ V644
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -253,6 +257,8 @@ V644
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -284,7 +290,7 @@ V644
6783
6784
6832
-6849
+6863
6912
6916
6964
@@ -330,8 +336,6 @@ V644
7416
7418
7616
-7674
-7675
7680
8400
8433
@@ -443,18 +447,28 @@ V644
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69633
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -479,6 +493,8 @@ V644
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -601,6 +617,18 @@ V644
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -613,6 +641,10 @@ V644
94181
113821
113823
+118528
+118574
+118576
+118599
119143
119146
119163
@@ -645,10 +677,16 @@ V644
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
index 044b72788c..707437c7a8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V376
+V378
33
35
38
@@ -174,7 +174,7 @@ V376
11513
11520
11776
-11859
+11870
11904
11930
11931
@@ -238,9 +238,11 @@ V376
43882
43884
64830
-64832
+64848
+64975
+64976
65021
-65022
+65024
65040
65050
65072
@@ -297,6 +299,8 @@ V376
73714
94178
94179
+119273
+119275
119296
119362
119365
@@ -339,16 +343,18 @@ V376
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -362,27 +368,23 @@ V376
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
index 628abd6269..a4eb32c46a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V78
+V80
1424
1425
1470
@@ -41,8 +41,6 @@ V78
2137
2140
2144
-2160
-2208
8207
8208
64285
@@ -74,8 +72,12 @@ V78
69247
69291
69293
+69312
+69376
69424
69488
+69506
+69510
69632
124928
125136
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
index 39eb1df3e1..aed6acb892 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
index 770ac42160..7d0a6f4004 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
index 817a86cb42..5c8cdf2114 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V228
40
42
60
@@ -201,6 +201,8 @@ V226
11806
11808
11818
+11861
+11869
12296
12306
12308
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
index 344bd8f294..5355e8ce70 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,18 +10,16 @@
return <<'END';
-V109
-2160
-2208
+V103
12256
12272
66048
66176
66528
66560
-66928
+67008
67072
-67456
+67520
67584
67760
67808
@@ -35,10 +33,6 @@ V109
68736
68928
69216
-69312
-69376
-69488
-69552
70224
70272
70528
@@ -47,54 +41,54 @@ V109
71040
71376
71424
-71488
+71504
71680
71760
71840
72032
72096
-72368
-72384
-72448
+72544
72704
72896
72960
73136
73440
-73472
+73568
73648
75088
-77824
-78912
+77712
+78944
82944
83584
92160
-92784
-92880
93072
93760
93856
93952
94112
94176
-101776
-110592
+101760
+110576
111360
113664
113840
+118528
+118736
118784
119376
-119520
+119488
119680
119808
121520
-122880
-122928
+122624
+123024
123136
123216
-123584
+123536
123648
-124928
+124112
+124160
+124896
125152
125184
125280
@@ -113,7 +107,7 @@ V109
194560
195104
196608
-201552
+205744
917504
917632
917760
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
index 19c07602db..a5ccbcd349 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V120
+V128
41
42
93
@@ -97,6 +97,14 @@ V120
11816
11817
11818
+11862
+11863
+11864
+11865
+11866
+11867
+11868
+11869
12297
12298
12299
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
index a5824e8b51..667fe2b71f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V59
+V61
0
40
42
@@ -50,6 +50,8 @@ V59
10750
11810
11818
+11861
+11869
12296
12306
12308
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
index af8fa080e3..aa7d9d3675 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V120
+V128
40
41
91
@@ -97,6 +97,14 @@ V120
11815
11816
11817
+11861
+11862
+11863
+11864
+11865
+11866
+11867
+11868
12296
12297
12298
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
index fe74428688..5e8d1845a3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
index 0569ff2d9d..55e309b887 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V820
+V874
39
40
46
@@ -95,7 +95,13 @@ V820
2094
2137
2140
-2259
+2184
+2185
+2192
+2194
+2200
+2208
+2249
2307
2362
2363
@@ -177,6 +183,8 @@ V820
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -230,7 +238,7 @@ V820
3782
3783
3784
-3790
+3791
3864
3866
3893
@@ -280,7 +288,7 @@ V820
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -298,7 +306,7 @@ V820
6109
6110
6155
-6159
+6160
6211
6212
6277
@@ -334,7 +342,7 @@ V820
6823
6824
6832
-6849
+6863
6912
6916
6964
@@ -386,8 +394,6 @@ V820
7544
7545
7579
-7674
-7675
7680
8125
8126
@@ -469,6 +475,8 @@ V820
42865
42888
42891
+42994
+42997
43000
43002
43010
@@ -548,7 +556,7 @@ V820
64286
64287
64434
-64450
+64451
65024
65040
65043
@@ -585,6 +593,12 @@ V820
66273
66422
66427
+67456
+67462
+67463
+67505
+67506
+67515
68097
68100
68101
@@ -601,12 +615,20 @@ V820
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69633
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
@@ -615,6 +637,8 @@ V820
69819
69821
69822
+69826
+69827
69837
69838
69888
@@ -641,6 +665,8 @@ V820
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -763,8 +789,18 @@ V820
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
78896
-78905
+78913
+78919
+78934
92912
92917
92976
@@ -779,10 +815,20 @@ V820
94178
94179
94181
+110576
+110580
+110581
+110588
+110589
+110591
113821
113823
113824
113828
+118528
+118574
+118576
+118599
119143
119146
119155
@@ -815,10 +861,18 @@ V820
122917
122918
122923
+122928
+122990
+123023
+123024
123184
123198
+123566
+123567
123628
123632
+124139
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
index 9bd24a5f47..ed050f57c6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1228
+V1244
65
91
181
@@ -882,7 +882,7 @@ V1228
9398
9424
11264
-11311
+11312
11360
11361
11362
@@ -1211,12 +1211,20 @@ V1228
42941
42942
42943
+42944
+42945
42946
42947
42948
42952
42953
42954
+42960
+42961
+42966
+42967
+42968
+42969
42997
42998
43888
@@ -1231,6 +1239,14 @@ V1228
66600
66736
66772
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
68736
68787
71840
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
index 0b33565d4e..104ca39a1b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V248
+V262
65
91
97
@@ -188,10 +188,6 @@ V248
9398
9450
11264
-11311
-11312
-11359
-11360
11377
11378
11380
@@ -226,9 +222,11 @@ V248
42902
42927
42928
-42944
-42946
42955
+42960
+42962
+42966
+42970
42997
42999
43859
@@ -249,6 +247,22 @@ V248
66772
66776
66812
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
68736
68787
68800
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
index 94cc5b2a08..873ea79c42 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1654
+V1678
65
91
160
@@ -652,7 +652,7 @@ V1654
6068
6070
6155
-6159
+6160
7296
7305
7312
@@ -1054,7 +1054,7 @@ V1654
10972
10973
11264
-11311
+11312
11360
11361
11362
@@ -1419,13 +1419,21 @@ V1654
42941
42942
42943
+42944
+42945
42946
42947
42948
42952
42953
42954
-42997
+42960
+42961
+42966
+42967
+42968
+42969
+42994
42998
43000
43002
@@ -1517,6 +1525,20 @@ V1654
66600
66736
66772
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+67457
+67462
+67463
+67505
+67506
+67515
68736
68787
71840
@@ -1573,6 +1595,8 @@ V1654
120780
120782
120832
+122928
+122990
125184
125218
126464
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
index 8a2661fedf..f5a79f04f8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1202
+V1218
65
91
192
@@ -862,7 +862,7 @@ V1202
9398
9424
11264
-11311
+11312
11360
11361
11362
@@ -1191,12 +1191,20 @@ V1202
42941
42942
42943
+42944
+42945
42946
42947
42948
42952
42953
42954
+42960
+42961
+42966
+42967
+42968
+42969
42997
42998
65313
@@ -1205,6 +1213,14 @@ V1202
66600
66736
66772
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
68736
68787
71840
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
index 412a23831d..033adb1639 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V1252
97
123
181
@@ -888,7 +888,7 @@ V1236
9424
9450
11312
-11359
+11360
11361
11362
11365
@@ -1217,12 +1217,20 @@ V1236
42942
42943
42944
+42945
+42946
42947
42948
42952
42953
42954
42955
+42961
+42962
+42967
+42968
+42969
+42970
42998
42999
43859
@@ -1239,6 +1247,14 @@ V1236
66640
66776
66812
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
68800
68851
71872
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
index ee2fa1ce64..b251ae6a40 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1238
+V1254
97
123
181
@@ -890,7 +890,7 @@ V1238
9424
9450
11312
-11359
+11360
11361
11362
11365
@@ -1219,12 +1219,20 @@ V1238
42942
42943
42944
+42945
+42946
42947
42948
42952
42953
42954
42955
+42961
+42962
+42967
+42968
+42969
+42970
42998
42999
43859
@@ -1241,6 +1249,14 @@ V1238
66640
66776
66812
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
68800
68851
71872
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
index f3a9b880ba..866044d9fa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V314
65
91
97
@@ -73,7 +73,7 @@ V282
4302
4304
4347
-4349
+4348
4352
5024
5110
@@ -166,10 +166,6 @@ V282
9398
9450
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -190,17 +186,21 @@ V282
42891
42895
42896
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
42999
43000
43003
43824
43867
43868
-43881
+43882
43888
43968
64256
@@ -217,6 +217,30 @@ V282
66772
66776
66812
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67456
+67457
+67459
+67462
+67463
+67505
+67506
+67515
68736
68787
68800
@@ -285,6 +309,14 @@ V282
120771
120772
120780
+122624
+122634
+122635
+122655
+122661
+122667
+122928
+122990
125184
125252
127280
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
index 9c845384f5..ccd05e3a32 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V236
+V258
768
789
829
@@ -93,6 +93,12 @@ V236
2088
2089
2094
+2200
+2201
+2204
+2208
+2250
+2255
2260
2274
2276
@@ -131,6 +137,12 @@ V236
6837
6843
6845
+6849
+6851
+6853
+6858
+6859
+6863
7019
7020
7021
@@ -215,6 +227,10 @@ V236
69451
69452
69453
+69506
+69507
+69508
+69509
69888
69891
70502
@@ -241,10 +257,16 @@ V236
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124143
+124144
125252
125258
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl
index bbd78bedb0..5bf4a14b19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
index 4c25ec739a..cfc3e845d9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
789
790
794
@@ -21,4 +21,6 @@ V10
7671
12332
12333
+124140
+124142
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
index 43d543a4a5..c5e45a40e4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
index cb77de7b67..93929488e6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V170
790
794
796
@@ -77,7 +77,9 @@ V156
2046
2137
2140
-2259
+2201
+2204
+2255
2260
2275
2276
@@ -115,6 +117,10 @@ V156
6846
6847
6849
+6851
+6853
+6858
+6859
7020
7021
7381
@@ -155,16 +161,24 @@ V156
68155
68326
68327
+69373
+69376
69446
69448
69451
69452
69453
69457
+69507
+69508
+69509
+69510
119163
119171
119178
119180
+124142
+124143
125136
125143
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
index 692fb7beca..908144143f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
index 0513b3e8d7..e3d2545e19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
index 369397c8ee..0bd933faa4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V50
+V52
2364
2365
2492
@@ -21,6 +21,8 @@ V50
2749
2876
2877
+3132
+3133
3260
3261
4151
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
index ff22c10e0d..f553952910 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V369
+V385
0
768
847
@@ -60,7 +60,9 @@ V369
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2304
@@ -90,6 +92,8 @@ V369
2894
3021
3022
+3132
+3133
3149
3150
3157
@@ -143,7 +147,7 @@ V369
4957
4960
5908
-5909
+5910
5940
5941
6098
@@ -165,7 +169,7 @@ V369
6832
6846
6847
-6849
+6863
6964
6965
6980
@@ -193,8 +197,6 @@ V369
7416
7418
7616
-7674
-7675
7680
8400
8413
@@ -274,10 +276,16 @@ V369
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69702
69703
+69744
+69745
69759
69760
69817
@@ -342,6 +350,8 @@ V369
73030
73111
73112
+73537
+73539
92912
92917
92976
@@ -372,10 +382,16 @@ V369
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
index 8b06e29aec..a5e1340fe4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
index 6f33402320..00274d8d86 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V108
+V112
2381
2382
2509
@@ -42,7 +42,7 @@ V108
4153
4155
5908
-5909
+5910
5940
5941
6098
@@ -75,6 +75,8 @@ V108
68160
69702
69703
+69744
+69745
69759
69760
69817
@@ -119,4 +121,6 @@ V108
73030
73111
73112
+73537
+73539
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
index a234d7b3ea..a1289b8d16 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
index 730ebc7b10..0b3c4b0145 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,7 +22,7 @@ V34
6068
6070
6155
-6159
+6160
8203
8208
8234
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
index 746ef828da..207f991898 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
45
46
1418
@@ -39,6 +39,8 @@ V44
11836
11840
11841
+11869
+11870
12316
12317
12336
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
index 3ae48eabdf..bcb727ef63 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
index f665e7e52f..4fd7eed824 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V352
+V390
94
95
96
@@ -67,6 +67,10 @@ V352
2038
2072
2074
+2200
+2208
+2249
+2259
2275
2303
2364
@@ -99,6 +103,8 @@ V352
2902
3021
3022
+3132
+3133
3149
3150
3260
@@ -151,6 +157,8 @@ V352
4252
4957
4960
+5908
+5910
6089
6100
6109
@@ -162,7 +170,9 @@ V352
6783
6784
6832
-6846
+6847
+6849
+6860
6964
6965
6980
@@ -188,8 +198,6 @@ V352
7620
7632
7669
-7674
-7677
7680
8125
8126
@@ -271,12 +279,26 @@ V352
65508
66272
66273
+67456
+67462
+67463
+67505
+67506
+67515
68325
68327
68898
68904
+69373
+69376
69446
69457
+69506
+69510
+69702
+69703
+69744
+69745
69817
69819
69939
@@ -335,6 +357,8 @@ V352
73030
73111
73112
+78919
+78934
92912
92917
92976
@@ -343,6 +367,16 @@ V352
94112
94192
94194
+110576
+110580
+110581
+110588
+110589
+110591
+118528
+118574
+118576
+118599
119143
119146
119149
@@ -353,8 +387,12 @@ V352
119180
119210
119214
+122928
+122990
123184
123191
+123566
+123567
123628
123632
125136
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
index 5ffefa0ab1..8d3028ea97 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
index ac2e24132d..42b70367b7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
index 9e35c365b8..ee4eb8c732 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
index 644da5e306..79ab6424be 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
index e4c2a1523e..9bc44532d1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
index 8347ec1249..2846a6290e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
index 7c4299c0f4..fcddf7d5a4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
index 9e84e4c2b2..1c42401c1c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
index 61bf62af5a..7e3bbbbe7c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
index 57526bc631..924fc608c0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V374
+V384
160
161
168
@@ -205,6 +205,8 @@ V374
42654
42864
42865
+42994
+42997
43000
43002
43868
@@ -257,6 +259,12 @@ V374
65511
65512
65519
+67457
+67462
+67463
+67505
+67506
+67515
119808
119893
119894
@@ -299,6 +307,8 @@ V374
120780
120782
120832
+122928
+122990
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
index 952128c13f..81fa2e80ea 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
index 2b4dcc50fb..bb0b26a1d3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
7522
7531
8320
@@ -19,4 +19,6 @@ V8
8349
11388
11389
+122961
+122987
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
index 5d133daa80..b01bff3fba 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V50
+V62
170
171
178
@@ -53,12 +53,24 @@ V50
42654
42864
42865
+42994
+42997
43000
43002
43868
43872
43881
43882
+67457
+67462
+67463
+67505
+67506
+67515
+122928
+122961
+122987
+122990
127338
127341
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
index 21ab03fa70..f138ae3141 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EBase/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EBase/Y.pl
index 449c246e5c..3785518ac6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EBase/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EBase/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V80
9757
9758
9977
@@ -87,4 +87,8 @@ V76
129488
129489
129502
+129731
+129734
+129776
+129785
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EComp/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EComp/Y.pl
index e0abdf60d4..f98616e959 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EComp/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EComp/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EPres/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EPres/Y.pl
index f898c9dcfb..edd01fb330 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EPres/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/EPres/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,34 +143,34 @@ V162
128723
128725
128728
+128732
+128736
128747
128749
128756
128765
128992
129004
+129008
+129009
129292
129339
129340
129350
129351
-129401
-129402
-129484
-129485
129536
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
index 92499cbefe..6d78bc259c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
index 18a6384cfe..365e725a38 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
index 64ef39b8a8..3c1cb7bf60 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V553
+V563
0
32
127
@@ -450,10 +450,20 @@ V553
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -524,36 +534,36 @@ V553
128723
128725
128728
+128732
+128736
128747
128749
128756
128765
128992
129004
+129008
+129009
129292
129339
129340
129350
129351
-129401
-129402
-129484
-129485
129536
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
131072
196606
196608
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
index a8f9c065a5..f5e9acc8ee 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
index a82c88c342..5f5b06168d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V238
4352
4448
8986
@@ -135,10 +135,20 @@ V228
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -205,36 +215,36 @@ V228
128723
128725
128728
+128732
+128736
128747
128749
128756
128765
128992
129004
+129008
+129009
129292
129339
129340
129350
129351
-129401
-129402
-129484
-129485
129536
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
131072
196606
196608
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Emoji/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Emoji/Y.pl
index e66f67d425..3cbbc91a83 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Emoji/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Emoji/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V304
+V302
35
36
42
@@ -279,7 +279,7 @@ V304
128723
128725
128728
-128736
+128732
128742
128745
128746
@@ -291,28 +291,26 @@ V304
128765
128992
129004
+129008
+129009
129292
129339
129340
129350
129351
-129401
-129402
-129484
-129485
129536
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
index e78c25f949..56501ad2b4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V64
+V66
183
184
720
@@ -59,6 +59,8 @@ V64
43765
65392
65393
+67457
+67459
70493
70494
71110
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/ExtPict/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/ExtPict/Y.pl
index f8d8fe5f94..90a9ed31e1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/ExtPict/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/ExtPict/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
index c462a462bd..d04a5de9cc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,7 +38,7 @@ V38
65520
65532
78896
-78905
+78912
113824
113828
119155
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
index 9895308bca..c66cd8f23f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V690
+V728
768
880
1155
@@ -59,7 +59,9 @@ V690
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2307
@@ -149,6 +151,8 @@ V690
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -212,7 +216,7 @@ V690
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -260,7 +264,7 @@ V690
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -277,6 +281,8 @@ V690
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -308,7 +314,7 @@ V690
6783
6784
6832
-6849
+6863
6912
6916
6964
@@ -352,8 +358,6 @@ V690
7416
7418
7616
-7674
-7675
7680
8204
8205
@@ -469,18 +473,28 @@ V690
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69633
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -505,6 +519,8 @@ V690
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -639,6 +655,18 @@ V690
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -651,6 +679,10 @@ V690
94181
113821
113823
+118528
+118574
+118576
+118599
119141
119142
119143
@@ -687,10 +719,16 @@ V690
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
index cea4314289..830579251b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
index 5afa4b1111..956bdc1f57 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl
index c3f1b20c2a..533245549e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V26
+V30
1536
1542
1757
1758
1807
1808
+2192
+2194
2274
2275
3406
@@ -37,4 +39,6 @@ V26
72330
73030
73031
+73474
+73475
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
index dff8c0cd99..5344eb51b6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V318
+V330
2307
2308
2363
@@ -73,6 +73,8 @@ V318
3273
3274
3276
+3315
+3316
3330
3332
3391
@@ -105,6 +107,10 @@ V318
4184
4228
4229
+5909
+5910
+5940
+5941
6070
6071
6078
@@ -273,8 +279,6 @@ V318
71344
71350
71351
-71456
-71458
71462
71463
71724
@@ -321,6 +325,14 @@ V318
73111
73461
73463
+73475
+73476
+73524
+73526
+73534
+73536
+73537
+73538
94033
94088
94192
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
index 33a0f547b9..d4ba53a832 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V619
+V657
32
127
160
@@ -70,7 +70,11 @@ V619
2094
2137
2140
-2259
+2192
+2194
+2200
+2208
+2250
2308
2362
2365
@@ -152,6 +156,8 @@ V619
3032
3072
3077
+3132
+3133
3134
3141
3142
@@ -176,6 +182,8 @@ V619
3287
3298
3300
+3315
+3316
3328
3332
3387
@@ -213,7 +221,7 @@ V619
3763
3773
3784
-3790
+3791
3864
3866
3893
@@ -257,7 +265,7 @@ V619
4957
4960
5906
-5909
+5910
5938
5941
5970
@@ -269,7 +277,7 @@ V619
6109
6110
6155
-6159
+6160
6277
6279
6313
@@ -291,7 +299,7 @@ V619
6783
6784
6832
-6849
+6863
6912
6917
6964
@@ -317,8 +325,6 @@ V619
7415
7418
7616
-7674
-7675
7680
8203
8208
@@ -442,18 +448,28 @@ V619
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69632
69635
69688
69703
+69744
+69745
+69747
+69749
69759
69763
69808
69819
69821
69822
+69826
+69827
69837
69838
69888
@@ -478,6 +494,8 @@ V619
70200
70206
70207
+70209
+70210
70367
70379
70400
@@ -515,6 +533,8 @@ V619
71339
71352
71453
+71456
+71458
71468
71724
71739
@@ -564,8 +584,16 @@ V619
73112
73459
73463
+73472
+73476
+73524
+73531
+73534
+73539
78896
-78905
+78913
+78919
+78934
92912
92917
92976
@@ -584,6 +612,10 @@ V619
113823
113824
113828
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -616,10 +648,16 @@ V619
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
index 97a931d064..9650f1bd8c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1357
+V1423
0
32
127
@@ -42,7 +42,7 @@ V1357
1525
1542
1564
-1566
+1565
1757
1758
1806
@@ -62,11 +62,9 @@ V1357
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2200
2274
2275
2436
@@ -224,7 +222,7 @@ V1357
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -234,6 +232,8 @@ V1357
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -256,14 +256,14 @@ V1357
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -323,7 +323,7 @@ V1357
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -391,10 +391,8 @@ V1357
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -412,7 +410,7 @@ V1357
6138
6144
6158
-6160
+6159
6170
6176
6265
@@ -451,11 +449,11 @@ V1357
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -471,8 +469,6 @@ V1357
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -517,7 +513,7 @@ V1357
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -531,10 +527,6 @@ V1357
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -565,7 +557,7 @@ V1357
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -589,8 +581,6 @@ V1357
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -599,10 +589,14 @@ V1357
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -673,16 +667,14 @@ V1357
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -767,13 +759,33 @@ V1357
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -856,10 +868,12 @@ V1357
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -867,11 +881,11 @@ V1357
69632
69710
69714
-69744
+69750
69759
69821
69822
-69826
+69827
69840
69865
69872
@@ -889,7 +903,7 @@ V1357
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -953,7 +967,7 @@ V1357
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -961,7 +975,7 @@ V1357
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -992,8 +1006,10 @@ V1357
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1036,6 +1052,12 @@ V1357
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1048,8 +1070,12 @@ V1357
74869
74880
75076
+77712
+77811
77824
-78895
+78896
+78912
+78934
82944
83527
92160
@@ -1059,7 +1085,9 @@ V1357
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1092,10 +1120,20 @@ V1357
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1110,6 +1148,12 @@ V1357
113818
113820
113824
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
@@ -1117,9 +1161,11 @@ V1357
119081
119155
119163
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1172,6 +1218,10 @@ V1357
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1182,6 +1232,10 @@ V1357
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1190,10 +1244,22 @@ V1357
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1302,16 +1368,18 @@ V1357
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1325,27 +1393,23 @@ V1357
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1353,9 +1417,9 @@ V1357
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1366,6 +1430,8 @@ V1357
195102
196608
201547
+201552
+205744
917760
918000
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
index 372239d751..6fc1e39481 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
173
174
1536
@@ -21,6 +21,8 @@ V40
1758
1807
1808
+2192
+2194
2274
2275
6158
@@ -42,7 +44,7 @@ V40
69837
69838
78896
-78905
+78912
113824
113828
119155
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
index 022f0ce12a..4a80089452 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1353
+V1413
888
890
896
@@ -35,8 +35,6 @@ V1353
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -54,11 +52,11 @@ V1353
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -214,7 +212,7 @@ V1353
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -224,6 +222,8 @@ V1353
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -246,14 +246,14 @@ V1353
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -313,7 +313,7 @@ V1353
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -381,10 +381,8 @@ V1353
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -401,8 +399,6 @@ V1353
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -441,11 +437,11 @@ V1353
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -461,8 +457,6 @@ V1353
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -503,7 +497,7 @@ V1353
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -517,10 +511,6 @@ V1353
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -551,7 +541,7 @@ V1353
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -575,8 +565,6 @@ V1353
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -585,10 +573,14 @@ V1353
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -659,16 +651,14 @@ V1353
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -755,13 +745,33 @@ V1353
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -844,10 +854,12 @@ V1353
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -855,9 +867,9 @@ V1353
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -877,7 +889,7 @@ V1353
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -941,7 +953,7 @@ V1353
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -949,7 +961,7 @@ V1353
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -980,8 +992,10 @@ V1353
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1024,6 +1038,12 @@ V1353
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1036,10 +1056,10 @@ V1353
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1049,7 +1069,9 @@ V1353
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1082,10 +1104,20 @@ V1353
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1100,14 +1132,22 @@ V1353
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1160,6 +1200,10 @@ V1353
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1170,6 +1214,10 @@ V1353
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1178,10 +1226,22 @@ V1353
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1290,16 +1350,18 @@ V1353
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1313,27 +1375,23 @@ V1353
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1341,9 +1399,9 @@ V1353
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1354,6 +1412,8 @@ V1353
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
index d3925eaa9a..1cb2028be5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1244
+V1318
65
91
97
@@ -109,10 +109,12 @@ V1244
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -241,6 +243,8 @@ V1244
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -257,7 +261,7 @@ V1244
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -400,10 +404,8 @@ V1244
5873
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -446,7 +448,7 @@ V1244
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -548,10 +550,6 @@ V1244
8579
8581
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -612,8 +610,6 @@ V1244
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -634,10 +630,14 @@ V1244
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -813,12 +813,34 @@ V1244
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -889,12 +911,18 @@ V1244
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -921,6 +949,8 @@ V1244
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -977,6 +1007,8 @@ V1244
71353
71424
71451
+71488
+71495
71680
71724
71840
@@ -1015,7 +1047,7 @@ V1244
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -1043,20 +1075,32 @@ V1244
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
74650
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1085,10 +1129,20 @@ V1244
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1161,14 +1215,32 @@ V1244
120771
120772
120780
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1242,9 +1314,9 @@ V1244
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1255,4 +1327,6 @@ V1244
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
index e3174282ba..57bffd596c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V264
+V286
65
91
97
@@ -150,10 +150,6 @@ V264
8579
8581
11264
-11311
-11312
-11359
-11360
11388
11390
11493
@@ -178,9 +174,13 @@ V264
42891
42895
42896
-42944
-42946
42955
+42960
+42962
+42963
+42964
+42965
+42970
42997
42999
43002
@@ -205,6 +205,22 @@ V264
66772
66776
66812
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
68736
68787
68800
@@ -273,6 +289,12 @@ V264
120771
120772
120780
+122624
+122634
+122635
+122655
+122661
+122667
125184
125252
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
index 493777b7c6..8d96b4cfd9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1290
+V1316
97
123
181
@@ -874,7 +874,7 @@ V1290
8580
8581
11312
-11359
+11360
11361
11362
11365
@@ -1211,12 +1211,24 @@ V1290
42942
42943
42944
+42945
+42946
42947
42948
42952
42953
42954
42955
+42961
+42962
+42963
+42964
+42965
+42966
+42967
+42968
+42969
+42970
42998
42999
43002
@@ -1237,6 +1249,14 @@ V1290
66640
66776
66812
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
68800
68851
71872
@@ -1299,6 +1319,12 @@ V1290
120778
120779
120780
+122624
+122634
+122635
+122655
+122661
+122667
125218
125252
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
index 03e3df8694..6098199ba7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V122
+V142
688
706
710
@@ -41,6 +41,8 @@ V122
2085
2088
2089
+2249
+2250
2417
2418
3654
@@ -101,6 +103,8 @@ V122
42865
42888
42889
+42994
+42997
43000
43002
43471
@@ -121,6 +125,12 @@ V122
65393
65438
65440
+67456
+67462
+67463
+67505
+67506
+67515
92992
92996
94099
@@ -129,8 +139,18 @@ V122
94178
94179
94180
+110576
+110580
+110581
+110588
+110589
+110591
+122928
+122990
123191
123198
+124139
+124140
125259
125260
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
index 679c431ca6..f940ff0b23 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V978
+V1020
170
171
186
@@ -57,10 +57,12 @@ V978
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2249
2308
2362
2365
@@ -189,6 +191,8 @@ V978
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -205,7 +209,7 @@ V978
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -334,10 +338,8 @@ V978
5873
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -378,7 +380,7 @@ V978
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -444,8 +446,6 @@ V978
13312
19904
19968
-40957
-40960
40981
40982
42125
@@ -701,12 +701,18 @@ V978
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -733,6 +739,8 @@ V978
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -789,6 +797,8 @@ V978
71353
71424
71451
+71488
+71495
71680
71724
71935
@@ -825,7 +835,7 @@ V978
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -853,20 +863,32 @@ V978
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
74650
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -886,9 +908,13 @@ V978
101632
101641
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -901,12 +927,26 @@ V978
113801
113808
113818
+122634
+122635
123136
123181
123214
123215
+123536
+123566
123584
123628
+124112
+124139
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
126464
@@ -976,9 +1016,9 @@ V978
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -989,4 +1029,6 @@ V978
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
index 10748eca7a..bbd5798a85 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1276
+V1292
65
91
192
@@ -874,7 +874,7 @@ V1276
8579
8580
11264
-11311
+11312
11360
11361
11362
@@ -1203,12 +1203,20 @@ V1276
42941
42942
42943
+42944
+42945
42946
42947
42948
42952
42953
42954
+42960
+42961
+42966
+42967
+42968
+42969
42997
42998
65313
@@ -1217,6 +1225,14 @@ V1276
66600
66736
66772
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
68736
68787
71840
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
index bf86b250aa..4eb46862d0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V580
+V620
768
880
1155
@@ -59,7 +59,9 @@ V580
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2308
@@ -143,6 +145,8 @@ V580
3032
3072
3077
+3132
+3133
3134
3141
3142
@@ -167,6 +171,8 @@ V580
3287
3298
3300
+3315
+3316
3328
3332
3387
@@ -204,7 +210,7 @@ V580
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -246,7 +252,7 @@ V580
4957
4960
5906
-5909
+5910
5938
5941
5970
@@ -259,6 +265,8 @@ V580
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -276,7 +284,7 @@ V580
6783
6784
6832
-6849
+6863
6912
6917
6964
@@ -302,8 +310,6 @@ V580
7415
7418
7616
-7674
-7675
7680
8400
8433
@@ -407,16 +413,26 @@ V580
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69632
69635
69688
69703
+69744
+69745
+69747
+69749
69759
69763
69808
69819
+69826
+69827
69888
69891
69927
@@ -437,6 +453,8 @@ V580
70200
70206
70207
+70209
+70210
70367
70379
70400
@@ -531,6 +549,18 @@ V580
73112
73459
73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -547,6 +577,10 @@ V580
94194
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -581,10 +615,16 @@ V580
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
index 0f909de4b5..66c279f640 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V350
+V364
2307
2308
2363
@@ -81,6 +81,8 @@ V350
3276
3285
3287
+3315
+3316
3330
3332
3390
@@ -125,6 +127,10 @@ V350
4240
4250
4253
+5909
+5910
+5940
+5941
6070
6071
6078
@@ -353,6 +359,14 @@ V350
73111
73461
73463
+73475
+73476
+73524
+73526
+73534
+73536
+73537
+73538
94033
94088
94192
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
index ed6d2a1e62..630c147dac 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
index 0d28589862..ce45d65c55 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V654
+V692
768
880
1155
@@ -59,7 +59,9 @@ V654
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2307
@@ -141,6 +143,8 @@ V654
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -192,7 +196,7 @@ V654
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -240,7 +244,7 @@ V654
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -257,6 +261,8 @@ V654
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -290,7 +296,7 @@ V654
6832
6846
6847
-6849
+6863
6912
6916
6964
@@ -336,8 +342,6 @@ V654
7416
7418
7616
-7674
-7675
7680
8400
8413
@@ -453,18 +457,28 @@ V654
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69633
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -489,6 +503,8 @@ V654
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -611,6 +627,18 @@ V654
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -623,6 +651,10 @@ V654
94181
113821
113823
+118528
+118574
+118576
+118599
119143
119146
119163
@@ -655,10 +687,16 @@ V654
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
index 0b375f0aba..a6f288a735 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V266
+V274
48
58
178
@@ -237,18 +237,24 @@ V266
73050
73120
73130
+73552
+73562
73664
73685
74752
74863
92768
92778
+92864
+92874
93008
93018
93019
93026
93824
93847
+119488
+119508
119520
119540
119648
@@ -259,6 +265,8 @@ V266
123210
123632
123642
+124144
+124154
125127
125136
125264
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
index d1944e7db6..cb2720ce19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V122
+V128
48
58
1632
@@ -119,8 +119,12 @@ V122
73050
73120
73130
+73552
+73562
92768
92778
+92864
+92874
93008
93018
120782
@@ -129,6 +133,8 @@ V122
123210
123632
123642
+124144
+124154
125264
125274
130032
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
index 5c27367bb8..a789beddaa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
index 4469849f77..8cd5709379 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V142
+V144
178
180
185
@@ -135,6 +135,8 @@ V142
93026
93824
93847
+119488
+119508
119520
119540
119648
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
index 73f049b058..1128e062e6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V370
+V382
33
36
37
@@ -65,7 +65,7 @@ V370
1550
1563
1564
-1566
+1565
1568
1642
1646
@@ -143,6 +143,8 @@ V370
6830
7002
7009
+7037
+7039
7164
7168
7227
@@ -192,7 +194,7 @@ V370
11824
11856
11858
-11859
+11870
12289
12292
12296
@@ -303,6 +305,8 @@ V370
69294
69461
69466
+69510
+69514
69703
69710
69819
@@ -339,6 +343,8 @@ V370
71236
71264
71277
+71353
+71354
71484
71487
71739
@@ -353,16 +359,22 @@ V370
72349
72350
72355
+72448
+72458
72769
72774
72816
72818
73463
73465
+73539
+73552
73727
73728
74864
74869
+77809
+77811
92782
92784
92917
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl
index 3d94225fd1..3b746053c5 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
index 7015f76bc0..7eb097a17b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
45
46
1418
@@ -31,6 +31,8 @@ V36
11836
11840
11841
+11869
+11870
12316
12317
12336
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
index 4faf9564bb..b264b0b969 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V144
+V152
41
42
93
@@ -97,6 +97,14 @@ V144
11816
11817
11818
+11862
+11863
+11864
+11865
+11866
+11867
+11868
+11869
12297
12298
12299
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
index ad6a05bf30..685dafd7d4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
index 6db03a5ec6..45200b5e95 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
index 5284babe84..4e9f5b15b3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V362
+V374
33
36
37
@@ -57,7 +57,7 @@ V362
1550
1563
1564
-1566
+1565
1568
1642
1646
@@ -131,6 +131,8 @@ V362
6830
7002
7009
+7037
+7039
7164
7168
7227
@@ -188,7 +190,7 @@ V362
11843
11856
11858
-11859
+11861
12289
12292
12349
@@ -295,6 +297,8 @@ V362
68509
69461
69466
+69510
+69514
69703
69710
69819
@@ -331,6 +335,8 @@ V362
71236
71264
71277
+71353
+71354
71484
71487
71739
@@ -345,16 +351,22 @@ V362
72349
72350
72355
+72448
+72458
72769
72774
72816
72818
73463
73465
+73539
+73552
73727
73728
74864
74869
+77809
+77811
92782
92784
92917
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
index a013ee0cb2..7a19c55c64 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V150
+V158
40
41
91
@@ -103,6 +103,14 @@ V150
11817
11842
11843
+11861
+11862
+11863
+11864
+11865
+11866
+11867
+11868
12296
12297
12298
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
index 0c3e8e29f5..1b83179cfa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V458
+V464
36
37
43
@@ -77,6 +77,8 @@ V458
2039
2046
2048
+2184
+2185
2546
2548
2554
@@ -154,7 +156,7 @@ V458
8330
8333
8352
-8384
+8385
8448
8450
8451
@@ -278,9 +280,13 @@ V458
64297
64298
64434
-64450
+64451
+64832
+64848
+64975
+64976
65020
-65022
+65024
65122
65123
65124
@@ -333,6 +339,8 @@ V458
92998
113820
113821
+118608
+118724
118784
119030
119040
@@ -346,7 +354,7 @@ V458
119180
119210
119214
-119273
+119275
119296
119362
119365
@@ -421,16 +429,18 @@ V458
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -444,27 +454,23 @@ V458
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
index 5b3ea3c067..bb55dea56d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,7 +34,7 @@ V42
6107
6108
8352
-8384
+8385
43064
43065
65020
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
index c6df18ac66..043f9d9269 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V62
94
95
96
@@ -37,6 +37,8 @@ V60
886
900
902
+2184
+2185
8125
8126
8127
@@ -62,7 +64,7 @@ V60
43882
43884
64434
-64450
+64451
65342
65343
65344
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
index acdafbcb73..61505c105f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
index b3a4f2937e..ae209c6197 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V364
+V368
166
167
169
@@ -225,8 +225,12 @@ V364
43066
43639
43642
+64832
+64848
+64975
+64976
65021
-65022
+65024
65508
65509
65512
@@ -263,6 +267,8 @@ V364
92998
113820
113821
+118608
+118724
118784
119030
119040
@@ -276,7 +282,7 @@ V364
119180
119210
119214
-119273
+119275
119296
119362
119365
@@ -327,16 +333,18 @@ V364
127995
128000
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -350,27 +358,23 @@ V364
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
index 2406913d85..c25818463a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
index 57a78cb913..2d009b2218 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
index 3786c9c34c..54f0b05933 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1668
+V1750
32
127
160
@@ -53,7 +53,7 @@ V1668
1552
1563
1564
-1566
+1565
1611
1632
1648
@@ -95,10 +95,10 @@ V1668
2143
2144
2155
+2160
+2191
2208
-2229
-2230
-2248
+2250
2307
2362
2363
@@ -275,6 +275,8 @@ V1668
3141
3160
3163
+3165
+3166
3168
3170
3174
@@ -301,14 +303,14 @@ V1668
3273
3274
3276
-3294
+3293
3295
3296
3298
3302
3312
3313
-3315
+3316
3330
3341
3342
@@ -480,12 +482,12 @@ V1668
5792
5881
5888
-5901
-5902
5906
-5920
+5909
+5910
+5919
5938
-5941
+5940
5943
5952
5970
@@ -570,11 +572,11 @@ V1668
6973
6978
6979
-6988
+6989
6992
7019
7028
-7037
+7039
7042
7074
7078
@@ -662,7 +664,7 @@ V1668
8336
8349
8352
-8384
+8385
8448
8588
8592
@@ -674,10 +676,6 @@ V1668
11126
11158
11159
-11311
-11312
-11359
-11360
11503
11506
11508
@@ -710,7 +708,7 @@ V1668
11736
11743
11776
-11859
+11870
11904
11930
11931
@@ -736,8 +734,6 @@ V1668
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -754,10 +750,14 @@ V1668
42738
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -878,15 +878,15 @@ V1668
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
+65024
65040
65050
65072
@@ -974,13 +974,33 @@ V1668
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1065,6 +1085,10 @@ V1668
69446
69457
69466
+69488
+69506
+69510
+69514
69552
69580
69600
@@ -1077,6 +1101,10 @@ V1668
69710
69714
69744
+69745
+69747
+69749
+69750
69762
69811
69815
@@ -1119,6 +1147,8 @@ V1668
70198
70200
70206
+70207
+70209
70272
70279
70280
@@ -1222,7 +1252,7 @@ V1668
71350
71351
71352
-71353
+71354
71360
71370
71424
@@ -1232,7 +1262,7 @@ V1668
71462
71463
71472
-71488
+71495
71680
71727
71736
@@ -1289,8 +1319,10 @@ V1668
72344
72346
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1337,6 +1369,16 @@ V1668
73459
73461
73465
+73474
+73489
+73490
+73526
+73534
+73536
+73537
+73538
+73539
+73562
73648
73649
73664
@@ -1349,8 +1391,12 @@ V1668
74869
74880
75076
+77712
+77811
77824
-78895
+78896
+78913
+78919
82944
83527
92160
@@ -1360,7 +1406,9 @@ V1668
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92917
@@ -1395,10 +1443,20 @@ V1668
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1415,6 +1473,8 @@ V1668
113821
113823
113824
+118608
+118724
118784
119030
119040
@@ -1430,11 +1490,13 @@ V1668
119180
119210
119214
-119273
+119275
119296
119362
119365
119366
+119488
+119508
119520
119540
119552
@@ -1491,6 +1553,12 @@ V1668
121476
121477
121484
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
@@ -1499,12 +1567,26 @@ V1668
123210
123214
123216
+123536
+123566
123584
123628
123632
123642
123647
123648
+124112
+124140
+124144
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1615,16 +1697,18 @@ V1668
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1638,27 +1722,23 @@ V1668
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1666,9 +1746,9 @@ V1668
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1679,4 +1759,6 @@ V1668
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrExt/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrExt/Y.pl
index 98b26f1249..71308b597d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrExt/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrExt/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V688
+V726
768
880
1155
@@ -59,7 +59,9 @@ V688
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2307
@@ -149,6 +151,8 @@ V688
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -212,7 +216,7 @@ V688
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -260,7 +264,7 @@ V688
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -277,6 +281,8 @@ V688
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -308,7 +314,7 @@ V688
6783
6784
6832
-6849
+6863
6912
6916
6964
@@ -352,8 +358,6 @@ V688
7416
7418
7616
-7674
-7675
7680
8204
8205
@@ -469,18 +473,28 @@ V688
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69633
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -505,6 +519,8 @@ V688
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -639,6 +655,18 @@ V688
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -651,6 +679,10 @@ V688
94181
113821
113823
+118528
+118574
+118576
+118599
119141
119142
119143
@@ -687,10 +719,16 @@ V688
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
index a28fd2ce43..e83f9d7348 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
index 2e089e14f6..227b4204b0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl
index 82920bccfb..35dae69096 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
index 94ce2aa67c..5b101dbd92 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1460
+V1536
48
58
65
@@ -113,11 +113,11 @@ V1460
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2200
2274
2275
2404
@@ -285,7 +285,7 @@ V1460
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -295,6 +295,8 @@ V1460
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -319,14 +321,14 @@ V1460
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -392,7 +394,7 @@ V1460
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -486,10 +488,8 @@ V1460
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -509,7 +509,7 @@ V1460
6122
6155
6158
-6160
+6159
6170
6176
6265
@@ -548,9 +548,9 @@ V1460
6832
6846
6847
-6849
+6863
6912
-6988
+6989
6992
7002
7019
@@ -574,8 +574,6 @@ V1460
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -656,10 +654,6 @@ V1460
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -720,8 +714,6 @@ V1460
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -740,10 +732,14 @@ V1460
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -921,12 +917,34 @@ V1460
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1001,12 +1019,14 @@ V1460
69293
69296
69298
-69376
+69373
69405
69415
69416
69424
69457
+69488
+69510
69552
69573
69600
@@ -1014,9 +1034,11 @@ V1460
69632
69703
69734
-69744
+69750
69759
69819
+69826
+69827
69840
69865
69872
@@ -1044,7 +1066,7 @@ V1460
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -1123,6 +1145,8 @@ V1460
71468
71472
71482
+71488
+71495
71680
71739
71840
@@ -1159,7 +1183,7 @@ V1460
72346
72349
72350
-72384
+72368
72441
72704
72713
@@ -1203,6 +1227,14 @@ V1460
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
73648
73649
73728
@@ -1211,8 +1243,12 @@ V1460
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78912
+78934
82944
83527
92160
@@ -1221,6 +1257,10 @@ V1460
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92912
@@ -1255,10 +1295,20 @@ V1460
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1273,6 +1323,10 @@ V1460
113818
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1359,6 +1413,10 @@ V1460
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1369,6 +1427,10 @@ V1460
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1377,8 +1439,20 @@ V1460
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
@@ -1456,9 +1530,9 @@ V1460
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1469,6 +1543,8 @@ V1460
195102
196608
201547
+201552
+205744
917760
918000
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
index ce633cb780..bb3b161f5a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1244
+V1318
65
91
97
@@ -109,10 +109,12 @@ V1244
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -241,6 +243,8 @@ V1244
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -257,7 +261,7 @@ V1244
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -400,10 +404,8 @@ V1244
5870
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -444,7 +446,7 @@ V1244
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -544,10 +546,6 @@ V1244
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -608,8 +606,6 @@ V1244
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -630,10 +626,14 @@ V1244
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -811,12 +811,34 @@ V1244
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -887,12 +909,18 @@ V1244
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -919,6 +947,8 @@ V1244
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -975,6 +1005,8 @@ V1244
71353
71424
71451
+71488
+71495
71680
71724
71840
@@ -1013,7 +1045,7 @@ V1244
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -1041,6 +1073,12 @@ V1244
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
@@ -1049,14 +1087,20 @@ V1244
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1085,10 +1129,20 @@ V1244
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1161,14 +1215,32 @@ V1244
120771
120772
120780
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1242,9 +1314,9 @@ V1244
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1255,4 +1327,6 @@ V1244
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Allowed.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Allowed.pl
index 14e60dcdbe..6afe2ebcda 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Allowed.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Allowed.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V748
+V784
39
40
45
@@ -147,12 +147,16 @@ V748
1792
1872
1970
+2160
+2184
+2185
+2191
2208
2221
2226
2227
-2230
-2248
+2229
+2250
2305
2382
2383
@@ -321,7 +325,7 @@ V748
3124
3125
3130
-3133
+3132
3141
3142
3145
@@ -329,6 +333,8 @@ V748
3150
3157
3159
+3165
+3166
3168
3170
3174
@@ -355,12 +361,14 @@ V748
3278
3285
3287
+3293
+3294
3296
3300
3302
3312
3313
-3315
+3316
3328
3329
3330
@@ -438,7 +446,7 @@ V748
3782
3783
3784
-3790
+3791
3792
3802
3806
@@ -552,7 +560,9 @@ V748
6057
6068
6070
-6091
+6094
+6096
+6097
6098
6099
6103
@@ -633,8 +643,6 @@ V748
8187
8188
8189
-8204
-8206
8208
8209
8217
@@ -682,7 +690,7 @@ V748
13312
19904
19968
-40957
+40960
42623
42624
42775
@@ -699,8 +707,14 @@ V748
42927
42936
42938
-42946
+42944
42955
+42960
+42962
+42963
+42964
+42965
+42970
43495
43519
43616
@@ -743,14 +757,34 @@ V748
70461
94192
94194
+110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
+122624
+122655
+122661
+122667
+123023
+123024
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -759,4 +793,6 @@ V748
191457
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Restrict.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Restrict.pl
index d94e6e00f6..dbd0e2b077 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Restrict.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdStatus/Restrict.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V749
+V785
0
39
40
@@ -148,12 +148,16 @@ V749
1792
1872
1970
+2160
+2184
+2185
+2191
2208
2221
2226
2227
-2230
-2248
+2229
+2250
2305
2382
2383
@@ -322,7 +326,7 @@ V749
3124
3125
3130
-3133
+3132
3141
3142
3145
@@ -330,6 +334,8 @@ V749
3150
3157
3159
+3165
+3166
3168
3170
3174
@@ -356,12 +362,14 @@ V749
3278
3285
3287
+3293
+3294
3296
3300
3302
3312
3313
-3315
+3316
3328
3329
3330
@@ -439,7 +447,7 @@ V749
3782
3783
3784
-3790
+3791
3792
3802
3806
@@ -553,7 +561,9 @@ V749
6057
6068
6070
-6091
+6094
+6096
+6097
6098
6099
6103
@@ -634,8 +644,6 @@ V749
8187
8188
8189
-8204
-8206
8208
8209
8217
@@ -683,7 +691,7 @@ V749
13312
19904
19968
-40957
+40960
42623
42624
42775
@@ -700,8 +708,14 @@ V749
42927
42936
42938
-42946
+42944
42955
+42960
+42962
+42963
+42964
+42965
+42970
43495
43519
43616
@@ -744,14 +758,34 @@ V749
70461
94192
94194
+110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
+122624
+122655
+122661
+122667
+123023
+123024
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -760,4 +794,6 @@ V749
191457
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/DefaultI.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/DefaultI.pl
index 9c40cdd527..be113b1269 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/DefaultI.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/DefaultI.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V36
173
174
847
@@ -22,10 +22,8 @@ V38
6068
6070
6155
-6159
+6160
8203
-8204
-8206
8208
8234
8239
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Exclusio.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Exclusio.pl
index df85468074..096300c62d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Exclusio.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Exclusio.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V424
+V448
994
1008
2048
@@ -24,10 +24,8 @@ V424
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -52,9 +50,7 @@ V424
7418
7419
11264
-11311
-11312
-11359
+11360
11392
11508
11513
@@ -112,7 +108,21 @@ V424
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
@@ -201,6 +211,8 @@ V424
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -208,9 +220,9 @@ V424
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -224,7 +236,7 @@ V424
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -286,7 +298,7 @@ V424
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -294,7 +306,7 @@ V424
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -357,6 +369,12 @@ V424
73050
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73728
74650
74752
@@ -365,10 +383,10 @@ V424
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92736
@@ -376,7 +394,9 @@ V424
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -431,6 +451,10 @@ V424
122917
122918
122923
+123536
+123567
+124112
+124154
124928
125125
125127
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Inclusio.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Inclusio.pl
index 1fd89f7c68..96c07ec067 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Inclusio.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Inclusio.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V28
39
40
45
@@ -29,8 +29,6 @@ V30
1791
3851
3852
-8204
-8206
8208
8209
8217
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/LimitedU.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/LimitedU.pl
index 556fd40a42..b34bb3f8de 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/LimitedU.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/LimitedU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V170
+V174
1792
1806
1807
@@ -66,9 +66,9 @@ V170
6816
6830
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -79,6 +79,8 @@ V170
7296
7360
7368
+7674
+7675
11568
11624
11632
@@ -141,6 +143,8 @@ V170
70748
70749
70754
+72368
+72384
73056
73062
73063
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotChara.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotChara.pl
index 9fd20f2dbb..27b453f983 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotChara.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotChara.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1357
+V1417
0
9
14
@@ -43,8 +43,6 @@ V1357
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -62,11 +60,11 @@ V1357
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -222,7 +220,7 @@ V1357
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -232,6 +230,8 @@ V1357
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -254,14 +254,14 @@ V1357
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -321,7 +321,7 @@ V1357
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -389,10 +389,8 @@ V1357
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -409,8 +407,6 @@ V1357
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -449,11 +445,11 @@ V1357
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -469,8 +465,6 @@ V1357
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -511,7 +505,7 @@ V1357
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -525,10 +519,6 @@ V1357
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -559,7 +549,7 @@ V1357
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -583,8 +573,6 @@ V1357
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -593,10 +581,14 @@ V1357
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -667,16 +659,14 @@ V1357
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -763,13 +753,33 @@ V1357
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -852,10 +862,12 @@ V1357
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -863,9 +875,9 @@ V1357
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -885,7 +897,7 @@ V1357
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -949,7 +961,7 @@ V1357
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -957,7 +969,7 @@ V1357
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -988,8 +1000,10 @@ V1357
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1032,6 +1046,12 @@ V1357
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1044,10 +1064,10 @@ V1357
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1057,7 +1077,9 @@ V1357
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1090,10 +1112,20 @@ V1357
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1108,14 +1140,22 @@ V1357
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1168,6 +1208,10 @@ V1357
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1178,6 +1222,10 @@ V1357
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1186,10 +1234,22 @@ V1357
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1298,16 +1358,18 @@ V1357
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1321,27 +1383,23 @@ V1357
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1349,9 +1407,9 @@ V1357
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1362,6 +1420,8 @@ V1357
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotNFKC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotNFKC.pl
index c4dd616ef6..28a397805b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotNFKC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotNFKC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V502
+V512
160
161
168
@@ -297,6 +297,8 @@ V502
42654
42864
42865
+42994
+42997
43000
43002
43868
@@ -379,6 +381,12 @@ V502
65511
65512
65519
+67457
+67462
+67463
+67505
+67506
+67515
119134
119141
119227
@@ -425,6 +433,8 @@ V502
120780
120782
120832
+122928
+122990
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotXID.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotXID.pl
index 6062142182..6e261f9958 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotXID.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/NotXID.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V690
+V708
9
14
32
@@ -85,7 +85,7 @@ V690
1552
1563
1564
-1566
+1565
1568
1642
1646
@@ -107,6 +107,10 @@ V690
2111
2142
2143
+2184
+2185
+2192
+2194
2274
2275
2404
@@ -216,7 +220,7 @@ V690
7002
7019
7028
-7037
+7039
7164
7168
7227
@@ -254,7 +258,7 @@ V690
8352
8360
8361
-8384
+8385
8413
8417
8418
@@ -316,7 +320,7 @@ V690
11632
11633
11776
-11859
+11870
11904
11930
11931
@@ -398,11 +402,13 @@ V690
44011
44012
64434
-64450
+64451
64830
-64832
+64848
+64975
+64976
65021
-65022
+65024
65093
65095
65529
@@ -483,6 +489,8 @@ V690
69415
69457
69466
+69510
+69514
69573
69580
69703
@@ -525,6 +533,8 @@ V690
71236
71264
71277
+71353
+71354
71482
71488
71739
@@ -541,6 +551,8 @@ V690
72349
72350
72355
+72448
+72458
72769
72774
72794
@@ -549,14 +561,18 @@ V690
72818
73463
73465
+73539
+73552
73664
73714
73727
73728
74864
74869
+77809
+77811
78896
-78905
+78912
92782
92784
92917
@@ -575,6 +591,8 @@ V690
113821
113823
113824
+118608
+118724
118784
119030
119040
@@ -590,11 +608,13 @@ V690
119214
119227
119233
-119273
+119275
119296
119362
119365
119366
+119488
+119508
119520
119540
119552
@@ -653,16 +673,18 @@ V690
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -676,27 +698,23 @@ V690
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Obsolete.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Obsolete.pl
index 2b38464600..911a870b38 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Obsolete.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Obsolete.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V206
+V208
397
398
426
@@ -161,6 +161,8 @@ V206
12336
12590
12591
+12784
+12800
42512
42515
42538
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Recommen.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Recommen.pl
index 4acf041e0d..d274d08eeb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Recommen.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Recommen.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V732
+V770
48
58
65
@@ -139,12 +139,16 @@ V732
1792
1872
1970
+2160
+2184
+2185
+2191
2208
2221
2226
2227
-2230
-2248
+2229
+2250
2305
2382
2383
@@ -313,7 +317,7 @@ V732
3124
3125
3130
-3133
+3132
3141
3142
3145
@@ -321,6 +325,8 @@ V732
3150
3157
3159
+3165
+3166
3168
3170
3174
@@ -347,12 +353,14 @@ V732
3278
3285
3287
+3293
+3294
3296
3300
3302
3312
3313
-3315
+3316
3328
3329
3330
@@ -430,7 +438,7 @@ V732
3782
3783
3784
-3790
+3791
3792
3802
3806
@@ -542,7 +550,9 @@ V732
6057
6068
6070
-6091
+6094
+6096
+6097
6098
6099
6103
@@ -666,7 +676,7 @@ V732
13312
19904
19968
-40957
+40960
42623
42624
42775
@@ -683,8 +693,14 @@ V732
42927
42936
42938
-42946
+42944
42955
+42960
+42962
+42963
+42964
+42965
+42970
43495
43519
43616
@@ -727,14 +743,34 @@ V732
70461
94192
94194
+110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
+122624
+122655
+122661
+122667
+123023
+123024
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -743,4 +779,6 @@ V732
191457
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Technica.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Technica.pl
index d1425ccbe3..4ededa855d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Technica.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Technica.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V190
+V198
384
385
397
@@ -95,12 +95,16 @@ V190
3572
3864
3866
-6091
+6094
+6096
+6097
6098
6109
6110
6847
6849
+7019
+7028
7424
7468
7471
@@ -114,8 +118,6 @@ V190
7545
7579
7616
-7674
-7675
7680
7836
7838
@@ -151,8 +153,6 @@ V190
12342
12347
12349
-12784
-12800
12927
12928
19904
@@ -174,17 +174,25 @@ V190
64286
64287
64434
-64450
+64451
64830
-64832
+64848
+64975
+64976
65021
-65022
+65024
65056
65072
65093
65095
65139
65140
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
@@ -196,7 +204,7 @@ V190
119163
119227
119233
-119273
+119275
119362
119365
119552
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Uncommon.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Uncommon.pl
index 1a0f653e7c..5e75d5cc65 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Uncommon.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IdType/Uncommon.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V166
385
397
398
@@ -89,9 +89,11 @@ V152
1769
1770
1774
+2200
+2208
2227
2229
-2259
+2250
2274
2275
2305
@@ -127,6 +129,8 @@ V152
3898
6313
6314
+6849
+6863
8276
8277
8586
@@ -155,10 +159,20 @@ V152
64287
65070
65072
+67456
+67457
+69373
+69376
92736
92767
92768
92778
+110576
+110580
+110581
+110588
+110589
+110591
119262
119273
128335
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
index b21cae170c..5b520f2694 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V40
12294
12296
12321
@@ -20,7 +20,7 @@ V38
13312
19904
19968
-40957
+40960
63744
64110
64112
@@ -36,9 +36,9 @@ V38
110960
111356
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -49,4 +49,6 @@ V38
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl
index 1ca2cf1427..3c0a25a7b1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/11_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/11_0.pl
index 019f761759..c5a6d97451 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/11_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/11_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_0.pl
index 84acb125f6..922eeddded 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_1.pl
index 380ac96022..0779479c83 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/12_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/13_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/13_0.pl
index 0d7d54f9cd..3899ade16b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/13_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/13_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/14_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/14_0.pl
new file mode 100755
index 0000000000..59f16fe18d
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/14_0.pl
@@ -0,0 +1,1426 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
+V1412
+0
+888
+890
+896
+900
+907
+908
+909
+910
+930
+931
+1328
+1329
+1367
+1369
+1419
+1421
+1424
+1425
+1480
+1488
+1515
+1519
+1525
+1536
+1806
+1807
+1867
+1869
+1970
+1984
+2043
+2045
+2094
+2096
+2111
+2112
+2140
+2142
+2143
+2144
+2155
+2160
+2191
+2192
+2194
+2200
+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
+2559
+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
+2679
+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
+2809
+2816
+2817
+2820
+2821
+2829
+2831
+2833
+2835
+2857
+2858
+2865
+2866
+2868
+2869
+2874
+2876
+2885
+2887
+2889
+2891
+2894
+2901
+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
+3085
+3086
+3089
+3090
+3113
+3114
+3130
+3132
+3141
+3142
+3145
+3146
+3150
+3157
+3159
+3160
+3163
+3165
+3166
+3168
+3172
+3174
+3184
+3191
+3213
+3214
+3217
+3218
+3241
+3242
+3252
+3253
+3258
+3260
+3269
+3270
+3273
+3274
+3278
+3285
+3287
+3293
+3295
+3296
+3300
+3302
+3312
+3313
+3315
+3328
+3341
+3342
+3345
+3346
+3397
+3398
+3401
+3402
+3408
+3412
+3428
+3430
+3456
+3457
+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
+3718
+3723
+3724
+3748
+3749
+3750
+3751
+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
+5110
+5112
+5118
+5120
+5789
+5792
+5881
+5888
+5910
+5919
+5943
+5952
+5972
+5984
+5997
+5998
+6001
+6002
+6004
+6016
+6110
+6112
+6122
+6128
+6138
+6144
+6170
+6176
+6265
+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
+6863
+6912
+6989
+6992
+7039
+7040
+7156
+7164
+7224
+7227
+7242
+7245
+7305
+7312
+7355
+7357
+7368
+7376
+7419
+7424
+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
+8385
+8400
+8433
+8448
+8588
+8592
+9255
+9280
+9291
+9312
+11124
+11126
+11158
+11159
+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
+11870
+11904
+11930
+11931
+12020
+12032
+12246
+12272
+12284
+12288
+12352
+12353
+12439
+12441
+12544
+12549
+12592
+12593
+12687
+12688
+12772
+12784
+12831
+12832
+42125
+42128
+42183
+42192
+42540
+42560
+42744
+42752
+42955
+42960
+42962
+42963
+42964
+42965
+42970
+42994
+43053
+43056
+43066
+43072
+43128
+43136
+43206
+43214
+43226
+43232
+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
+43884
+43888
+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
+64451
+64467
+64912
+64914
+64968
+64975
+65050
+65056
+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
+65935
+65936
+65949
+65952
+65953
+66000
+66046
+66176
+66205
+66208
+66257
+66272
+66300
+66304
+66340
+66349
+66379
+66384
+66427
+66432
+66462
+66463
+66500
+66504
+66518
+66560
+66718
+66720
+66730
+66736
+66772
+66776
+66812
+66816
+66856
+66864
+66916
+66927
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67072
+67383
+67392
+67414
+67424
+67432
+67456
+67462
+67463
+67505
+67506
+67515
+67584
+67590
+67592
+67593
+67594
+67638
+67639
+67641
+67644
+67645
+67647
+67670
+67671
+67743
+67751
+67760
+67808
+67827
+67828
+67830
+67835
+67868
+67871
+67898
+67903
+67904
+67968
+68024
+68028
+68048
+68050
+68100
+68101
+68103
+68108
+68116
+68117
+68120
+68121
+68150
+68152
+68155
+68159
+68169
+68176
+68185
+68192
+68256
+68288
+68327
+68331
+68343
+68352
+68406
+68409
+68438
+68440
+68467
+68472
+68498
+68505
+68509
+68521
+68528
+68608
+68681
+68736
+68787
+68800
+68851
+68858
+68904
+68912
+68922
+69216
+69247
+69248
+69290
+69291
+69294
+69296
+69298
+69376
+69416
+69424
+69466
+69488
+69514
+69552
+69580
+69600
+69623
+69632
+69710
+69714
+69750
+69759
+69827
+69837
+69838
+69840
+69865
+69872
+69882
+69888
+69941
+69942
+69960
+69968
+70007
+70016
+70112
+70113
+70133
+70144
+70162
+70163
+70207
+70272
+70279
+70280
+70281
+70282
+70286
+70287
+70302
+70303
+70314
+70320
+70379
+70384
+70394
+70400
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70459
+70469
+70471
+70473
+70475
+70478
+70480
+70481
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70656
+70748
+70749
+70754
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71134
+71168
+71237
+71248
+71258
+71264
+71277
+71296
+71354
+71360
+71370
+71424
+71451
+71453
+71468
+71472
+71495
+71680
+71740
+71840
+71923
+71935
+71943
+71945
+71946
+71948
+71956
+71957
+71959
+71960
+71990
+71991
+71993
+71995
+72007
+72016
+72026
+72096
+72104
+72106
+72152
+72154
+72165
+72192
+72264
+72272
+72355
+72368
+72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
+72960
+72967
+72968
+72970
+72971
+73015
+73018
+73019
+73020
+73022
+73023
+73032
+73040
+73050
+73056
+73062
+73063
+73065
+73066
+73103
+73104
+73106
+73107
+73113
+73120
+73130
+73440
+73465
+73648
+73649
+73664
+73714
+73727
+74650
+74752
+74863
+74864
+74869
+74880
+75076
+77712
+77811
+77824
+78895
+78896
+78905
+82944
+83527
+92160
+92729
+92736
+92767
+92768
+92778
+92782
+92863
+92864
+92874
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
+93760
+93851
+93952
+94027
+94031
+94088
+94095
+94112
+94176
+94181
+94192
+94194
+94208
+100344
+100352
+101590
+101632
+101641
+110576
+110580
+110581
+110588
+110589
+110591
+110592
+110883
+110928
+110931
+110948
+110952
+110960
+111356
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+118528
+118574
+118576
+118599
+118608
+118724
+118784
+119030
+119040
+119079
+119081
+119275
+119296
+119366
+119520
+119540
+119552
+119639
+119648
+119673
+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
+121484
+121499
+121504
+121505
+121520
+122624
+122655
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+123136
+123181
+123184
+123198
+123200
+123210
+123214
+123216
+123536
+123567
+123584
+123642
+123647
+123648
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
+124928
+125125
+125127
+125143
+125184
+125260
+125264
+125274
+125278
+125280
+126065
+126133
+126209
+126270
+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
+127406
+127462
+127491
+127504
+127548
+127552
+127561
+127568
+127570
+127584
+127590
+127744
+128728
+128733
+128749
+128752
+128765
+128768
+128884
+128896
+128985
+128992
+129004
+129008
+129009
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+129200
+129202
+129280
+129620
+129632
+129646
+129648
+129653
+129656
+129661
+129664
+129671
+129680
+129709
+129712
+129723
+129728
+129734
+129744
+129754
+129760
+129768
+129776
+129783
+129792
+129939
+129940
+129995
+130032
+130042
+131070
+173792
+173824
+177977
+177984
+178206
+178208
+183970
+183984
+191457
+194560
+195102
+196606
+201547
+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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/15_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/15_0.pl
new file mode 100755
index 0000000000..0f69a450cf
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/15_0.pl
@@ -0,0 +1,1444 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
+V1430
+0
+888
+890
+896
+900
+907
+908
+909
+910
+930
+931
+1328
+1329
+1367
+1369
+1419
+1421
+1424
+1425
+1480
+1488
+1515
+1519
+1525
+1536
+1806
+1807
+1867
+1869
+1970
+1984
+2043
+2045
+2094
+2096
+2111
+2112
+2140
+2142
+2143
+2144
+2155
+2160
+2191
+2192
+2194
+2200
+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
+2559
+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
+2679
+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
+2809
+2816
+2817
+2820
+2821
+2829
+2831
+2833
+2835
+2857
+2858
+2865
+2866
+2868
+2869
+2874
+2876
+2885
+2887
+2889
+2891
+2894
+2901
+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
+3085
+3086
+3089
+3090
+3113
+3114
+3130
+3132
+3141
+3142
+3145
+3146
+3150
+3157
+3159
+3160
+3163
+3165
+3166
+3168
+3172
+3174
+3184
+3191
+3213
+3214
+3217
+3218
+3241
+3242
+3252
+3253
+3258
+3260
+3269
+3270
+3273
+3274
+3278
+3285
+3287
+3293
+3295
+3296
+3300
+3302
+3312
+3313
+3316
+3328
+3341
+3342
+3345
+3346
+3397
+3398
+3401
+3402
+3408
+3412
+3428
+3430
+3456
+3457
+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
+3718
+3723
+3724
+3748
+3749
+3750
+3751
+3774
+3776
+3781
+3782
+3783
+3784
+3791
+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
+5110
+5112
+5118
+5120
+5789
+5792
+5881
+5888
+5910
+5919
+5943
+5952
+5972
+5984
+5997
+5998
+6001
+6002
+6004
+6016
+6110
+6112
+6122
+6128
+6138
+6144
+6170
+6176
+6265
+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
+6863
+6912
+6989
+6992
+7039
+7040
+7156
+7164
+7224
+7227
+7242
+7245
+7305
+7312
+7355
+7357
+7368
+7376
+7419
+7424
+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
+8385
+8400
+8433
+8448
+8588
+8592
+9255
+9280
+9291
+9312
+11124
+11126
+11158
+11159
+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
+11870
+11904
+11930
+11931
+12020
+12032
+12246
+12272
+12284
+12288
+12352
+12353
+12439
+12441
+12544
+12549
+12592
+12593
+12687
+12688
+12772
+12784
+12831
+12832
+42125
+42128
+42183
+42192
+42540
+42560
+42744
+42752
+42955
+42960
+42962
+42963
+42964
+42965
+42970
+42994
+43053
+43056
+43066
+43072
+43128
+43136
+43206
+43214
+43226
+43232
+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
+43884
+43888
+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
+64451
+64467
+64912
+64914
+64968
+64975
+65050
+65056
+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
+65935
+65936
+65949
+65952
+65953
+66000
+66046
+66176
+66205
+66208
+66257
+66272
+66300
+66304
+66340
+66349
+66379
+66384
+66427
+66432
+66462
+66463
+66500
+66504
+66518
+66560
+66718
+66720
+66730
+66736
+66772
+66776
+66812
+66816
+66856
+66864
+66916
+66927
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67072
+67383
+67392
+67414
+67424
+67432
+67456
+67462
+67463
+67505
+67506
+67515
+67584
+67590
+67592
+67593
+67594
+67638
+67639
+67641
+67644
+67645
+67647
+67670
+67671
+67743
+67751
+67760
+67808
+67827
+67828
+67830
+67835
+67868
+67871
+67898
+67903
+67904
+67968
+68024
+68028
+68048
+68050
+68100
+68101
+68103
+68108
+68116
+68117
+68120
+68121
+68150
+68152
+68155
+68159
+68169
+68176
+68185
+68192
+68256
+68288
+68327
+68331
+68343
+68352
+68406
+68409
+68438
+68440
+68467
+68472
+68498
+68505
+68509
+68521
+68528
+68608
+68681
+68736
+68787
+68800
+68851
+68858
+68904
+68912
+68922
+69216
+69247
+69248
+69290
+69291
+69294
+69296
+69298
+69373
+69416
+69424
+69466
+69488
+69514
+69552
+69580
+69600
+69623
+69632
+69710
+69714
+69750
+69759
+69827
+69837
+69838
+69840
+69865
+69872
+69882
+69888
+69941
+69942
+69960
+69968
+70007
+70016
+70112
+70113
+70133
+70144
+70162
+70163
+70210
+70272
+70279
+70280
+70281
+70282
+70286
+70287
+70302
+70303
+70314
+70320
+70379
+70384
+70394
+70400
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70459
+70469
+70471
+70473
+70475
+70478
+70480
+70481
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70656
+70748
+70749
+70754
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71134
+71168
+71237
+71248
+71258
+71264
+71277
+71296
+71354
+71360
+71370
+71424
+71451
+71453
+71468
+71472
+71495
+71680
+71740
+71840
+71923
+71935
+71943
+71945
+71946
+71948
+71956
+71957
+71959
+71960
+71990
+71991
+71993
+71995
+72007
+72016
+72026
+72096
+72104
+72106
+72152
+72154
+72165
+72192
+72264
+72272
+72355
+72368
+72441
+72448
+72458
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
+72960
+72967
+72968
+72970
+72971
+73015
+73018
+73019
+73020
+73022
+73023
+73032
+73040
+73050
+73056
+73062
+73063
+73065
+73066
+73103
+73104
+73106
+73107
+73113
+73120
+73130
+73440
+73465
+73472
+73489
+73490
+73531
+73534
+73562
+73648
+73649
+73664
+73714
+73727
+74650
+74752
+74863
+74864
+74869
+74880
+75076
+77712
+77811
+77824
+78934
+82944
+83527
+92160
+92729
+92736
+92767
+92768
+92778
+92782
+92863
+92864
+92874
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
+93760
+93851
+93952
+94027
+94031
+94088
+94095
+94112
+94176
+94181
+94192
+94194
+94208
+100344
+100352
+101590
+101632
+101641
+110576
+110580
+110581
+110588
+110589
+110591
+110592
+110883
+110898
+110899
+110928
+110931
+110933
+110934
+110948
+110952
+110960
+111356
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+118528
+118574
+118576
+118599
+118608
+118724
+118784
+119030
+119040
+119079
+119081
+119275
+119296
+119366
+119488
+119508
+119520
+119540
+119552
+119639
+119648
+119673
+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
+121484
+121499
+121504
+121505
+121520
+122624
+122655
+122661
+122667
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+122928
+122990
+123023
+123024
+123136
+123181
+123184
+123198
+123200
+123210
+123214
+123216
+123536
+123567
+123584
+123642
+123647
+123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
+124928
+125125
+125127
+125143
+125184
+125260
+125264
+125274
+125278
+125280
+126065
+126133
+126209
+126270
+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
+127406
+127462
+127491
+127504
+127548
+127552
+127561
+127568
+127570
+127584
+127590
+127744
+128728
+128732
+128749
+128752
+128765
+128768
+128887
+128891
+128986
+128992
+129004
+129008
+129009
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+129200
+129202
+129280
+129620
+129632
+129646
+129648
+129661
+129664
+129673
+129680
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
+129792
+129939
+129940
+129995
+130032
+130042
+131070
+173792
+173824
+177978
+177984
+178206
+178208
+183970
+183984
+191457
+194560
+195102
+196606
+201547
+201552
+205744
+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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
index c47f615796..2f746a7fc1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
index 41bbd3d875..53dfa4796c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
index 785b722751..c8a8fa53bd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
index 8f0e69c952..b844d54d9f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
index 696c056c2a..b749750b29 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
index 6a53024084..e2c2a268a6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
index 9bc13b25ad..7c5e00e300 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
index 68b801ca3d..55e40372ed 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
index abbc547f81..51323fabf6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
index 3375ecaa15..817ff3432b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
index daeeed6b3b..0246130b2b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
index 96203138ab..800cc29247 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
index 700be72c1d..52e02f68ea 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
index fffbd3387e..c9676b49f0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
index c6cea35813..1391d1b029 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl
index 756b9a4c34..1472821b6b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl
index 11b0565bbb..aba35ec0e1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl
index fff35c9947..633266d42f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V286
+V294
2364
2365
2369
@@ -57,6 +57,8 @@ V286
2894
2914
2916
+3132
+3133
3158
3159
3170
@@ -114,7 +116,7 @@ V286
5907
5909
5939
-5941
+5940
5971
5972
6003
@@ -203,6 +205,8 @@ V286
69813
69817
69819
+69826
+69827
69930
69932
69937
@@ -217,6 +221,8 @@ V286
70093
70191
70192
+70209
+70210
70371
70373
70377
@@ -297,4 +303,6 @@ V286
73032
73460
73461
+73528
+73531
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/BottomAn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/BottomAn.pl
index 183e283bfd..5b2d07f416 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/BottomAn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/BottomAn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl
index 4f1372119c..fa881aec5e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V94
+V96
2367
2368
2382
@@ -105,4 +105,6 @@ V94
72882
73461
73462
+73534
+73536
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl
index a0c538ee2f..ddbd187f41 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl
index 39610e61a4..b493295702 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V421
+V441
0
2304
2308
@@ -19,6 +19,8 @@ V421
2366
2384
2385
+2387
+2389
2392
2402
2404
@@ -94,6 +96,8 @@ V421
3032
3072
3077
+3132
+3133
3134
3141
3142
@@ -118,6 +122,8 @@ V421
3287
3298
3300
+3315
+3316
3328
3332
3387
@@ -155,7 +161,7 @@ V421
3776
3781
3784
-3790
+3791
3864
3866
3893
@@ -197,7 +203,7 @@ V421
4250
4254
5906
-5909
+5910
5938
5941
5970
@@ -274,7 +280,7 @@ V421
43250
43263
43264
-43307
+43302
43310
43335
43348
@@ -316,10 +322,16 @@ V421
69635
69688
69703
+69744
+69745
+69747
+69749
69760
69763
69808
69819
+69826
+69827
69888
69891
69927
@@ -344,6 +356,8 @@ V421
70200
70206
70207
+70209
+70210
70367
70379
70400
@@ -432,4 +446,10 @@ V421
73111
73459
73463
+73472
+73476
+73524
+73531
+73534
+73538
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl
index aac5cd4b2e..9141fde4f5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl
index 89668ac33e..e4d1c93eef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V328
+V340
2307
2308
2363
@@ -69,6 +69,8 @@ V328
3269
3285
3287
+3315
+3316
3330
3332
3390
@@ -119,6 +121,10 @@ V328
4240
4250
4253
+5909
+5910
+5940
+5941
6070
6071
6087
@@ -339,4 +345,10 @@ V328
73111
73462
73463
+73475
+73476
+73524
+73526
+73537
+73538
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl
index a7b112ed8e..2b8930241b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V386
+V398
2304
2307
2362
@@ -19,7 +19,7 @@ V386
2377
2385
2386
-2387
+2389
2390
2433
2434
@@ -98,7 +98,7 @@ V386
3771
3772
3784
-3790
+3791
3897
3898
3954
@@ -217,6 +217,8 @@ V386
43250
43263
43264
+43302
+43307
43338
43339
43343
@@ -269,6 +271,10 @@ V386
69692
69698
69703
+69744
+69745
+69747
+69749
69760
69762
69813
@@ -397,4 +403,10 @@ V386
73110
73459
73460
+73472
+73475
+73526
+73528
+73536
+73537
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl
index 58fe1391d8..2667dfadd5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl
index 5173a2a76e..8eb6f490b7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl
index 17001b49f3..a128d2a3ee 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl
index 0c82419f7c..bba1dc0e02 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl
index 4a2b7e0e19..bdddabb8f8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl
index 2002938c2e..8fee1ecf86 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl
index ad13ad476c..14cebb2b6e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V112
+V116
2304
2307
2433
@@ -33,6 +33,8 @@ V112
3077
3200
3203
+3315
+3316
3328
3331
3332
@@ -123,4 +125,6 @@ V112
73025
73109
73110
+73472
+73474
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl
index 63e351e0b1..4523746c9a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,12 +10,14 @@
return <<'END';
-V24
+V26
2385
2387
2641
2642
2810
+2811
+2812
2813
7376
7379
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl
index 47b0e31330..5754aefe62 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,13 @@
return <<'END';
-V8
+V12
2510
2511
+3165
+3166
+3293
+3294
3412
3415
3450
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl
index 8eee412e52..7717ebb3a4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
6448
6450
6451
@@ -19,6 +19,10 @@ V22
6600
6744
6746
+6915
+6916
+7041
+7042
7102
7104
7152
@@ -27,6 +31,8 @@ V22
7220
43343
43347
+43394
+43395
43584
43598
43995
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl
index a36e7bfef2..bab3f6d14d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl
index 6bed7b202e..0b507803bb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl
index eecd755079..64131f5673 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona7.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona7.pl
index e09f263e95..cb2f6754eb 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona7.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona7.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl
index 1b9baa0f92..02a0b14763 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl
index e246d9af01..3879723025 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona9.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,12 +11,12 @@
return <<'END';
V8
-6092
-6093
-6915
-6916
-7041
-7042
-43394
-43395
+3406
+3407
+72001
+72002
+73030
+73031
+73474
+73475
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
index 5e06ac5b03..d47db142a4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V314
2325
2362
2392
@@ -146,9 +146,9 @@ V306
4238
4239
5891
-5901
-5902
5906
+5919
+5920
5923
5938
5955
@@ -174,7 +174,7 @@ V306
6931
6964
6981
-6988
+6989
7050
7073
7086
@@ -243,6 +243,8 @@ V306
68150
69651
69688
+69749
+69750
69773
69808
69895
@@ -259,6 +261,8 @@ V306
70162
70163
70188
+70207
+70208
70276
70279
70280
@@ -293,6 +297,8 @@ V306
71353
71424
71451
+71488
+71495
71690
71724
71948
@@ -317,4 +323,6 @@ V306
73098
73440
73458
+73490
+73524
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Geminati.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Geminati.pl
new file mode 100755
index 0000000000..d72d407aca
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Geminati.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+2673
+2674
+2811
+2812
+70199
+70200
+72344
+72345
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
index b5db2b65c8..5b40feaf2b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
4153
4154
6098
@@ -35,4 +35,6 @@ V24
73030
73111
73112
+73538
+73539
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
index f4e4ce1dc9..ef2842290c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V52
+V54
2364
2365
2492
@@ -23,6 +23,8 @@ V52
2816
2876
2877
+3132
+3133
3260
3261
3897
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
index 990cf73c2a..3487e45684 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V90
+V92
48
58
2406
@@ -101,4 +101,6 @@ V90
73050
73120
73130
+73552
+73562
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl
index 14f476ca23..a4c617b267 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V643
+V655
0
45
46
@@ -190,7 +190,7 @@ V643
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -200,6 +200,8 @@ V643
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -224,14 +226,14 @@ V643
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -303,7 +305,7 @@ V643
3784
3788
3789
-3790
+3791
3792
3802
3804
@@ -337,10 +339,8 @@ V643
4176
4254
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -385,7 +385,7 @@ V643
6800
6810
6912
-6988
+6989
6992
7002
7040
@@ -479,9 +479,11 @@ V643
69632
69703
69714
-69744
+69750
69759
69819
+69826
+69827
69888
69941
69942
@@ -503,7 +505,7 @@ V643
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -576,6 +578,8 @@ V643
71468
71472
71484
+71488
+71495
71680
71739
71936
@@ -654,4 +658,12 @@ V643
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl
index 4c9067dc32..65474c2824 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V46
3387
3389
3642
@@ -24,7 +24,7 @@ V42
4154
4155
5908
-5909
+5910
5940
5941
6097
@@ -41,6 +41,8 @@ V42
43348
44013
44014
+69744
+69745
69940
69941
70378
@@ -53,4 +55,6 @@ V42
72245
73028
73029
+73537
+73538
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl
index 70ddf535c7..cd11e03e31 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,13 @@
return <<'END';
-V38
+V40
178
180
2558
2559
+3790
+3791
3893
3894
3895
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl
index 514cac05d9..d8d5dd2d47 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl
index cdc151e7ab..1ea7fc231f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl
index d3e7cd487d..6c8157f5f1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V72
2307
2308
2435
@@ -81,4 +81,6 @@ V70
73026
73110
73111
+73475
+73476
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl
index ca0c92501c..b075e70298 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl
index 172ff56864..9dd1a33fb0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V264
+V274
2362
2364
2366
@@ -191,8 +191,12 @@ V264
68110
69688
69702
+69747
+69749
69808
69817
+69826
+69827
69927
69939
69957
@@ -205,6 +209,8 @@ V264
70095
70188
70196
+70209
+70210
70368
70377
70462
@@ -275,4 +281,8 @@ V264
73109
73459
73463
+73524
+73531
+73534
+73537
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl
index 91f29bf01c..1e6cd0d2f1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V174
+V180
2308
2325
2400
@@ -123,6 +123,8 @@ V174
43986
69637
69651
+69745
+69747
69763
69773
69891
@@ -131,6 +133,8 @@ V174
70033
70144
70152
+70208
+70209
70272
70276
70320
@@ -185,4 +189,6 @@ V174
73065
73066
73068
+73476
+73489
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
index cf4027c365..ceab9a4a60 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
index 975d179a0b..51d6c84cd7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V12
+V14
1570
1572
1573
@@ -23,4 +23,6 @@ V12
1654
1907
1909
+2160
+2179
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
index df7a1439a8..1a47448520 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
index f96ee3a769..38a4640532 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
index fade2af331..c5b4649e30 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
index 4e2f0f0318..1ed996c4dc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
index 4ad8368f46..d06d5de9d5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V18
1595
1597
1705
@@ -21,8 +21,12 @@ V14
1717
1890
1893
+2189
+2190
2224
2225
2242
2243
+2248
+2249
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
index baeeba0f6a..3ead58f2db 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V22
1580
1583
1665
@@ -25,6 +25,8 @@ V20
1907
1916
1917
+2186
+2187
2210
2211
2241
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/HanifiRo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/HanifiRo.pl
index 180c6998e9..3cb15368e8 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/HanifiRo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/HanifiRo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
index 55a8756bc4..595c4af3c2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
index da02e5ac40..7737db49e4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
index c11890ed15..30c4c73561 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V61
+V65
0
1568
1569
@@ -40,12 +40,16 @@ V61
1920
2144
2155
+2160
+2179
+2182
+2183
+2185
+2191
2208
2221
2222
-2229
-2230
-2248
+2249
68288
68294
68295
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Noon.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Noon.pl
new file mode 100755
index 0000000000..bda148f0b9
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Noon.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+1606
+1607
+1721
+1725
+1895
+1898
+2185
+2186
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
index 4153598c27..2d5bbc8e38 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
1602
1603
1647
@@ -19,4 +19,6 @@ V8
1705
2213
2214
+2229
+2230
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
index 1a93c57c4b..01611a7231 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
index 243e777c70..75fff9dfc2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
index 7beca33355..356bce99c8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Tah.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Tah.pl
new file mode 100755
index 0000000000..67f3c2ede8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Tah.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+1591
+1593
+1695
+1696
+2187
+2189
+2211
+2212
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
index 0e7cca656d..cf469209ed 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
index 6d1f8d12df..4efa326642 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
index 27b259a749..088d552c5e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,13 @@
return <<'END';
-V8
+V10
1600
1601
2042
2043
+2179
+2182
6154
6155
8205
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
index 689e491842..0fe4284501 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V144
+V150
1568
1569
1574
@@ -83,16 +83,18 @@ V144
2150
2152
2153
+2182
+2183
+2185
+2190
2208
2218
2223
2225
2227
-2229
-2230
2233
2234
-2248
+2249
6151
6152
6176
@@ -137,6 +139,10 @@ V144
69445
69457
69460
+69488
+69492
+69494
+69506
69552
69553
69554
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/L.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/L.pl
index cbd2848547..b17ea2cbdb 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/L.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
index 604fe5bf06..6ccc29e3c5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V124
+V130
1570
1574
1575
@@ -81,6 +81,10 @@ V124
2152
2153
2155
+2160
+2179
+2190
+2191
2218
2221
2222
@@ -125,6 +129,8 @@ V124
69428
69460
69461
+69492
+69494
69556
69559
69561
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
index 9c1fe200a4..57c5c357de 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V676
+V712
173
174
768
@@ -65,7 +65,9 @@ V676
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2307
@@ -147,6 +149,8 @@ V676
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -198,7 +202,7 @@ V676
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -246,7 +250,7 @@ V676
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -263,6 +267,8 @@ V676
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -294,7 +300,7 @@ V676
6783
6784
6832
-6849
+6863
6912
6916
6964
@@ -340,8 +346,6 @@ V676
7416
7418
7616
-7674
-7675
7680
8203
8204
@@ -467,18 +471,28 @@ V676
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69633
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -503,6 +517,8 @@ V676
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -625,8 +641,18 @@ V676
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
78896
-78905
+78913
+78919
+78934
92912
92917
92976
@@ -641,6 +667,10 @@ V676
113823
113824
113828
+118528
+118574
+118576
+118599
119143
119146
119155
@@ -673,10 +703,16 @@ V676
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
index b2d5808b4f..422c27d387 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V727
+V763
0
173
174
@@ -80,13 +80,15 @@ V727
2150
2151
2155
-2208
+2160
+2183
+2185
+2191
+2200
2221
2222
-2229
-2230
-2248
-2259
+2249
+2250
2274
2275
2307
@@ -168,6 +170,8 @@ V727
3073
3076
3077
+3132
+3133
3134
3137
3142
@@ -219,7 +223,7 @@ V727
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -267,7 +271,7 @@ V727
5906
5909
5938
-5941
+5940
5970
5972
6002
@@ -286,6 +290,8 @@ V727
6152
6154
6158
+6159
+6160
6176
6265
6277
@@ -317,7 +323,7 @@ V727
6783
6784
6832
-6849
+6863
6912
6916
6964
@@ -363,8 +369,6 @@ V727
7416
7418
7616
-7674
-7675
7680
8203
8204
@@ -506,10 +510,14 @@ V727
68904
69291
69293
+69373
+69376
69424
69445
69446
69461
+69488
+69510
69552
69553
69554
@@ -524,12 +532,18 @@ V727
69634
69688
69703
+69744
+69745
+69747
+69749
69759
69762
69811
69815
69817
69819
+69826
+69827
69888
69891
69927
@@ -554,6 +568,8 @@ V727
70200
70206
70207
+70209
+70210
70367
70368
70371
@@ -676,8 +692,18 @@ V727
73112
73459
73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
78896
-78905
+78913
+78919
+78934
92912
92917
92976
@@ -692,6 +718,10 @@ V727
113823
113824
113828
+118528
+118574
+118576
+118599
119143
119146
119155
@@ -724,10 +754,16 @@ V727
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125184
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
index 35c6b2e882..49d1d48c2c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
index c0892f56de..c4cd1933ed 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1540
+V1612
35
36
38
@@ -131,10 +131,12 @@ V1540
2143
2144
2155
+2160
+2191
+2192
+2194
2208
-2229
-2230
-2248
+2250
2274
2275
2308
@@ -277,6 +279,8 @@ V1540
3134
3160
3163
+3165
+3166
3168
3170
3192
@@ -293,7 +297,7 @@ V1540
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -422,10 +426,8 @@ V1540
5870
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -464,7 +466,7 @@ V1540
6917
6964
6981
-6988
+6989
7004
7005
7009
@@ -545,8 +547,6 @@ V1540
8260
8266
8278
-8279
-8280
8284
8285
8289
@@ -762,10 +762,6 @@ V1540
11126
11158
11159
-11311
-11312
-11359
-11360
11503
11506
11508
@@ -840,10 +836,14 @@ V1540
42738
42739
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -914,17 +914,19 @@ V1540
64297
64298
64336
-64450
+64451
64467
64830
-64848
+64832
64912
64914
64968
+64975
+64976
65008
65020
65021
-65022
+65024
65136
65141
65142
@@ -986,13 +988,33 @@ V1540
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1073,6 +1095,10 @@ V1540
69446
69457
69466
+69488
+69506
+69510
+69514
69552
69580
69600
@@ -1083,6 +1109,10 @@ V1540
69710
69714
69734
+69745
+69747
+69749
+69750
69763
69808
69819
@@ -1125,6 +1155,8 @@ V1540
70203
70205
70206
+70207
+70209
70272
70279
70280
@@ -1182,7 +1214,7 @@ V1540
71296
71339
71352
-71353
+71354
71680
71724
71739
@@ -1229,7 +1261,7 @@ V1540
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -1261,6 +1293,12 @@ V1540
73459
73463
73465
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73664
@@ -1273,6 +1311,8 @@ V1540
74863
74880
75076
+77712
+77811
77824
78424
78430
@@ -1282,7 +1322,9 @@ V1540
78474
78713
78716
-78895
+78896
+78913
+78919
82944
83406
83408
@@ -1291,6 +1333,8 @@ V1540
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1317,6 +1361,12 @@ V1540
94112
101120
101590
+110576
+110580
+110581
+110588
+110589
+110591
113664
113771
113776
@@ -1327,6 +1377,8 @@ V1540
113818
113820
113821
+118608
+118724
118784
119030
119040
@@ -1340,11 +1392,13 @@ V1540
119180
119210
119214
-119273
+119275
119296
119362
119365
119366
+119488
+119508
119520
119540
119552
@@ -1403,14 +1457,32 @@ V1540
121479
121483
121484
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123216
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
index bec5b8206f..009d2d5cb1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V202
9
10
124
@@ -61,6 +61,8 @@ V196
7004
7005
7009
+7037
+7039
7227
7232
7294
@@ -109,6 +111,8 @@ V196
11853
11854
11856
+11869
+11870
12288
12289
42238
@@ -189,6 +193,8 @@ V196
72355
72769
72774
+73539
+73541
73727
73728
74864
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
index 3afcb0684d..4fc2d5b579 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V50
180
181
712
@@ -57,6 +57,8 @@ V48
72262
72350
72353
+72448
+72458
72816
72817
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
index 2b1340cf29..a14781e60a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V58
12353
12354
12355
@@ -61,8 +61,12 @@ V54
12800
65383
65393
+110898
+110899
110928
110931
+110933
+110934
110948
110952
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
index 10304223a4..61de894f2b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V166
+V178
125
126
3899
@@ -93,6 +93,14 @@ V166
11816
11817
11818
+11862
+11863
+11864
+11865
+11866
+11867
+11868
+11869
12289
12291
12297
@@ -175,6 +183,10 @@ V166
78716
78904
78905
+78909
+78910
+78911
+78912
83407
83408
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
index 547ebcb25e..251c2c003c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V556
+V600
0
9
14
@@ -73,7 +73,9 @@ V556
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2308
@@ -157,6 +159,8 @@ V556
3032
3072
3077
+3132
+3133
3134
3141
3142
@@ -181,6 +185,8 @@ V556
3287
3298
3300
+3315
+3316
3328
3332
3387
@@ -232,7 +238,7 @@ V556
4957
4960
5906
-5909
+5910
5938
5941
5970
@@ -241,6 +247,8 @@ V556
6004
6155
6158
+6159
+6160
6277
6279
6313
@@ -254,7 +262,7 @@ V556
6783
6784
6832
-6849
+6863
6912
6917
6964
@@ -280,8 +288,10 @@ V556
7415
7418
7616
-7674
-7675
+7629
+7630
+7676
+7677
7680
8204
8205
@@ -383,16 +393,26 @@ V556
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69632
69635
69688
69703
+69744
+69745
+69747
+69749
69759
69763
69808
69819
+69826
+69827
69888
69891
69927
@@ -413,6 +433,8 @@ V556
70200
70206
70207
+70209
+70210
70367
70379
70400
@@ -505,6 +527,18 @@ V556
73112
73459
73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -521,6 +555,10 @@ V556
113823
113824
113828
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -553,10 +591,16 @@ V556
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
index 562481ed5d..9cecf33c0f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V50
33
34
63
@@ -19,7 +19,7 @@ V48
1479
1563
1564
-1566
+1565
1568
1748
1749
@@ -43,6 +43,8 @@ V48
11519
11822
11823
+11859
+11861
42510
42511
43126
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
index 01ebaac91b..01830d9e5a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V32
160
161
847
@@ -27,6 +27,10 @@ V26
4059
6158
6159
+7629
+7630
+7676
+7677
8199
8200
8209
@@ -35,6 +39,8 @@ V26
8240
78896
78903
+78905
+78908
94180
94181
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
index 37b72d3796..372ccdc09f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V330
+V336
8986
8988
9200
@@ -201,6 +201,8 @@ V330
65501
65506
65509
+73541
+73552
94208
100344
100352
@@ -208,7 +210,7 @@ V330
101632
101641
110592
-110879
+110883
110960
111356
126976
@@ -334,6 +336,10 @@ V330
129502
129536
129620
+129731
+129734
+129776
+129785
129792
130048
131070
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl
index cd2c9100e3..812b75195f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
index 5a6ab6414b..f58f7cf647 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
index 1f35bd2bd8..c0a29b328e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NU.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NU.pl
index cd405ecadf..92874879af 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NU.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V122
+V128
48
58
1632
@@ -119,8 +119,12 @@ V122
73050
73120
73130
+73552
+73562
92768
92778
+92864
+92874
93008
93018
120782
@@ -129,6 +133,8 @@ V122
123210
123632
123642
+124144
+124154
125264
125274
130032
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
index f027fb3bca..f305eadaf2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V170
+V182
40
41
91
@@ -109,6 +109,14 @@ V170
11817
11842
11843
+11861
+11862
+11863
+11864
+11865
+11866
+11867
+11868
12296
12297
12298
@@ -177,6 +185,10 @@ V170
78714
78903
78904
+78908
+78909
+78910
+78911
83406
83407
125278
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
index 363a865e07..f727a57321 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V46
+V50
37
38
162
@@ -29,6 +29,8 @@ V46
3450
8240
8248
+8279
+8280
8359
8360
8374
@@ -37,6 +39,8 @@ V46
8380
8382
8383
+8384
+8385
8451
8452
8457
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
index b03c7e0006..36bcf96553 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V50
36
37
43
@@ -44,6 +44,8 @@ V48
8380
8382
8383
+8384
+8385
8400
8470
8471
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
index b9f5b412ee..96aeaffb24 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
index 23dd08138c..964d51f658 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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 @@ V70
3782
3783
3784
-3790
+3791
3804
3808
4096
@@ -80,5 +80,5 @@ V70
71482
71484
71487
-71488
+71495
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
index 7e20e4b791..958eeb67f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1265
+V1327
888
890
896
@@ -35,8 +35,6 @@ V1265
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -54,11 +52,11 @@ V1265
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -214,7 +212,7 @@ V1265
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -224,6 +222,8 @@ V1265
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -246,14 +246,14 @@ V1265
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -313,7 +313,7 @@ V1265
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -381,10 +381,8 @@ V1265
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -401,8 +399,6 @@ V1265
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -441,11 +437,11 @@ V1265
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -461,8 +457,6 @@ V1265
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -515,10 +509,6 @@ V1265
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -549,7 +539,7 @@ V1265
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -581,10 +571,14 @@ V1265
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -653,16 +647,14 @@ V1265
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -749,13 +741,33 @@ V1265
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -838,10 +850,12 @@ V1265
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -849,9 +863,9 @@ V1265
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -871,7 +885,7 @@ V1265
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -935,7 +949,7 @@ V1265
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -943,7 +957,7 @@ V1265
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -974,8 +988,10 @@ V1265
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1018,6 +1034,12 @@ V1265
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1030,10 +1052,10 @@ V1265
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1043,7 +1065,9 @@ V1265
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1076,10 +1100,20 @@ V1265
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1094,14 +1128,22 @@ V1265
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1154,6 +1196,10 @@ V1265
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1164,6 +1210,10 @@ V1265
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1172,10 +1222,22 @@ V1265
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
index aea247c739..88e8500394 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1304
+V1342
97
123
170
@@ -563,7 +563,7 @@ V1304
1417
4304
4347
-4349
+4348
4352
5112
5118
@@ -890,7 +890,7 @@ V1304
9424
9450
11312
-11359
+11360
11361
11362
11365
@@ -1225,12 +1225,26 @@ V1304
42942
42943
42944
+42945
+42946
42947
42948
42952
42953
42954
42955
+42961
+42962
+42963
+42964
+42965
+42966
+42967
+42968
+42969
+42970
+42994
+42997
42998
42999
43000
@@ -1238,7 +1252,7 @@ V1304
43824
43867
43868
-43881
+43882
43888
43968
64256
@@ -1251,6 +1265,22 @@ V1304
66640
66776
66812
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67456
+67457
+67459
+67462
+67463
+67505
+67506
+67515
68800
68851
71872
@@ -1313,6 +1343,14 @@ V1304
120778
120779
120780
+122624
+122634
+122635
+122655
+122661
+122667
+122928
+122990
125218
125252
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
index 5bf9d021d9..2328d0b20d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
index ec0922a509..acf7c30fbc 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
index b09ee7b01d..abad4361a4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
index 9b1ae9cf86..5f28e03d30 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
index 9c68a42f43..c3d63d4458 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
index 73843a54f4..9ecb1ce9eb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V500
+V510
160
161
168
@@ -297,6 +297,8 @@ V500
42654
42864
42865
+42994
+42997
43000
43002
43868
@@ -377,6 +379,12 @@ V500
65511
65512
65519
+67457
+67462
+67463
+67505
+67506
+67515
119134
119141
119227
@@ -423,6 +431,8 @@ V500
120780
120782
120832
+122928
+122990
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
index 7b1d529401..cc9c558e18 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V577
+V587
0
160
161
@@ -356,6 +356,8 @@ V577
42654
42864
42865
+42994
+42997
43000
43002
43868
@@ -436,6 +438,12 @@ V577
65511
65512
65519
+67457
+67462
+67463
+67505
+67506
+67515
69818
69819
69927
@@ -500,6 +508,8 @@ V577
120780
120782
120832
+122928
+122990
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
index fa39a4d766..96b6a2cfda 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V784
+V794
160
161
168
@@ -561,6 +561,8 @@ V784
42654
42864
42865
+42994
+42997
43000
43002
43868
@@ -643,6 +645,12 @@ V784
65511
65512
65519
+67457
+67462
+67463
+67505
+67506
+67515
69786
69787
69788
@@ -707,6 +715,8 @@ V784
120780
120782
120832
+122928
+122990
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
index 22db8e7d30..7fb8b1d5e4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V785
+V795
0
160
161
@@ -562,6 +562,8 @@ V785
42654
42864
42865
+42994
+42997
43000
43002
43868
@@ -644,6 +646,12 @@ V785
65511
65512
65519
+67457
+67462
+67463
+67505
+67506
+67515
69786
69787
69788
@@ -708,6 +716,8 @@ V785
120780
120782
120832
+122928
+122990
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
index 2004be11a6..daee828092 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
index 5162c4d3f6..d5590a4a82 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V411
+V419
0
48
58
@@ -350,18 +350,24 @@ V411
73050
73120
73130
+73552
+73562
73664
73685
74752
74863
92768
92778
+92864
+92874
93008
93018
93019
93026
93824
93847
+119488
+119508
119520
119540
119648
@@ -372,6 +378,8 @@ V411
123210
123632
123642
+124144
+124154
125127
125136
125264
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
index 744d33f0b8..2d38e33539 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V302
+V304
188
191
2548
@@ -263,6 +263,8 @@ V302
93026
93824
93847
+119488
+119508
119520
119540
119648
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
index 4cc2625bde..f62c286e13 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V162
+V170
48
49
1632
@@ -143,12 +143,18 @@ V162
73041
73120
73121
+73552
+73553
92768
92769
+92864
+92865
93008
93009
93824
93825
+119488
+119489
119520
119521
120782
@@ -165,6 +171,8 @@ V162
123201
123632
123633
+124144
+124145
125264
125265
127232
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
index a36c5f44e8..d247d553e7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V274
+V282
49
50
185
@@ -225,6 +225,8 @@ V274
73042
73121
73122
+73553
+73554
74773
74774
74782
@@ -239,12 +241,16 @@ V274
74841
92769
92770
+92865
+92866
93009
93010
93825
93826
93844
93845
+119489
+119490
119521
119522
119648
@@ -267,6 +273,8 @@ V274
123202
123633
123634
+124145
+124146
125127
125128
125265
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
index 6f9749008a..f5ace1d2af 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V116
+V118
3056
3057
3440
@@ -117,6 +117,8 @@ V116
93020
93834
93835
+119498
+119499
119530
119531
119657
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
index 8961331add..8b9ac1ccdf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
index cd12141feb..f0b01f9ed2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
index 4eee199e36..85a063df8b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100000.pl
index 463bd26b53..bfea46d6b1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
index a67e461f3b..f3b18d90f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
8554
8555
8570
@@ -25,6 +25,8 @@ V16
9452
93835
93836
+119499
+119500
119531
119532
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
index 3b413b3a35..8cce5daaad 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
8555
8556
8571
@@ -25,6 +25,8 @@ V16
9453
93836
93837
+119500
+119501
119532
119533
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
index 2ca151b986..09c3f9c6ce 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V12
+V14
9324
9325
9344
@@ -21,6 +21,8 @@ V12
9454
93837
93838
+119501
+119502
119533
119534
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
index 82247bde91..450d731692 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V12
+V14
9325
9326
9345
@@ -21,6 +21,8 @@ V12
9455
93838
93839
+119502
+119503
119534
119535
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
index 4f1d4b8954..db18fa938a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V12
+V14
9326
9327
9346
@@ -21,6 +21,8 @@ V12
9456
93839
93840
+119503
+119504
119535
119536
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
index d65ad08424..08ea7060c0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
2553
2554
9327
@@ -23,6 +23,8 @@ V14
9457
93840
93841
+119504
+119505
119536
119537
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
index 7558772bff..9f0e15db4f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
5870
5871
9328
@@ -23,6 +23,8 @@ V14
9458
93841
93842
+119505
+119506
119537
119538
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
index c29b4f4762..de0405acb3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
5871
5872
9329
@@ -23,6 +23,8 @@ V14
9459
93842
93843
+119506
+119507
119538
119539
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
index 187208023a..567ec88ffd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
5872
5873
9330
@@ -23,6 +23,8 @@ V14
9460
93843
93844
+119507
+119508
119539
119540
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl
index ebec8a4d8e..2ef2a4b12b 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
index fe17c84f64..7fbec06e2f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
index f6595926cb..e9f3fb8a15 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
index 4e6eab9470..5a55ccdf5c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_6.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_6.pl
index 0463b98896..8b9df8d9ed 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_6.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_6.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
index a127398a44..2850233c59 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
index 819c16f26f..86cc128a78 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V280
50
51
178
@@ -215,6 +215,8 @@ V272
73043
73122
73123
+73554
+73555
74752
74753
74774
@@ -237,12 +239,16 @@ V272
74842
92770
92771
+92866
+92867
93010
93011
93826
93827
93845
93846
+119490
+119491
119522
119523
119649
@@ -263,6 +269,8 @@ V272
123203
123634
123635
+124146
+124147
125128
125129
125266
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
index 52f56cc354..7635921b66 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl
index e396a86d34..cf541a9903 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2000.pl
index 707f4d5a93..de4e394b6e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20000.pl
index b7540ead58..5a1fd45174 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
index 30b781ab97..35473b681f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
index 79940a405b..63f184fd34 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V266
+V274
51
52
179
@@ -203,6 +203,8 @@ V266
73044
73123
73124
+73555
+73556
74753
74754
74760
@@ -227,12 +229,16 @@ V266
74840
92771
92772
+92867
+92868
93011
93012
93827
93828
93846
93847
+119491
+119492
119523
119524
119650
@@ -253,6 +259,8 @@ V266
123204
123635
123636
+124147
+124148
125129
125130
125267
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
index aa35f38deb..18fdf9e680 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
index 02bf3372f3..8c9bebb73a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3000.pl
index 60956c3c8f..ad540448b6 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30000.pl
index 8d1e2b9b84..92a7e34b7a 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl
index 9517618895..90abd9540e 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
index a8bee4d56a..2a4f282d36 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
index ab49ed2e03..235bdf8bc2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V260
52
53
1636
@@ -191,6 +191,8 @@ V252
73045
73124
73125
+73556
+73557
74754
74755
74761
@@ -217,10 +219,14 @@ V252
74858
92772
92773
+92868
+92869
93012
93013
93828
93829
+119492
+119493
119524
119525
119651
@@ -241,6 +247,8 @@ V252
123205
123636
123637
+124148
+124149
125130
125131
125268
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
index 37265d574c..c760fce91c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl
index 6e768e5874..8a0c75c69a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4000.pl
index e4c3a1584f..98d2246030 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40000.pl
index 4af84d36c1..a63c62d460 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
index b680b2713a..892169034a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V256
+V264
53
54
1637
@@ -199,6 +199,8 @@ V256
73046
73125
73126
+73557
+73558
74755
74756
74762
@@ -223,10 +225,14 @@ V256
74859
92773
92774
+92869
+92870
93013
93014
93829
93830
+119493
+119494
119525
119526
119652
@@ -249,6 +255,8 @@ V256
123206
123637
123638
+124149
+124150
125131
125132
125269
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
index 1878ff1df3..3743cbb830 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
index 286e6b3f0a..feb420110c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
index ad96662852..8dbbdfc916 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
index 5077a855a1..95dad7b382 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
index 1ccd994193..9c3d6d3ff6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
54
55
1638
@@ -179,6 +179,8 @@ V226
73047
73126
73127
+73558
+73559
74756
74757
74763
@@ -197,10 +199,14 @@ V226
74860
92774
92775
+92870
+92871
93014
93015
93830
93831
+119494
+119495
119526
119527
119653
@@ -219,6 +225,8 @@ V226
123207
123638
123639
+124150
+124151
125132
125133
125270
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
index 79146c1ce2..e2e6418ac2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl
index f23bbb1fd1..3477136297 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6000.pl
index fe0e58873f..5f7c7c0c6a 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60000.pl
index 7fdae87a1d..5df714356b 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
index 196c6d2e60..5455982a19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V220
+V228
55
56
1639
@@ -175,6 +175,8 @@ V220
73048
73127
73128
+73559
+73560
74757
74758
74764
@@ -191,10 +193,14 @@ V220
74861
92775
92776
+92871
+92872
93015
93016
93831
93832
+119495
+119496
119527
119528
119654
@@ -213,6 +219,8 @@ V220
123208
123639
123640
+124151
+124152
125133
125134
125271
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
index ae11d500c1..aae5acab5c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl
index 58a06e8cd5..2368e13379 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7000.pl
index 5efcae894b..1ead289b38 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70000.pl
index 18dd5818b6..cfe629c2ae 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
index 1208bfda54..afb33acc42 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V214
+V222
56
57
1640
@@ -171,6 +171,8 @@ V214
73049
73128
73129
+73560
+73561
74758
74759
74765
@@ -187,10 +189,14 @@ V214
74862
92776
92777
+92872
+92873
93016
93017
93832
93833
+119496
+119497
119528
119529
119655
@@ -209,6 +215,8 @@ V214
123209
123640
123641
+124152
+124153
125134
125135
125272
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
index 081f41e3d8..64bdf0831e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl
index d72cd4efc4..79fd008df3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8000.pl
index 5c12351995..e8acdb7cd0 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80000.pl
index a13be4a643..cbc0a065d7 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
index c14f29f733..a962a72d57 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V218
+V226
57
58
1641
@@ -173,6 +173,8 @@ V218
73050
73129
73130
+73561
+73562
74759
74760
74766
@@ -189,10 +191,14 @@ V218
74863
92777
92778
+92873
+92874
93017
93018
93833
93834
+119497
+119498
119529
119530
119656
@@ -211,6 +217,8 @@ V218
123210
123641
123642
+124153
+124154
125135
125136
125273
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
index de1d8d5c3d..32dd878b73 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
index 4b414aaa31..8dc7902550 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9000.pl
index 835dbcaf83..e1bac64384 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90000.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90000.pl
index 71feb7b418..8cb255afbc 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90000.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl
index 708b56dce7..cd0f22d41d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V12
+V14
1536
1542
1757
1758
1807
1808
+2192
+2194
2274
2275
69821
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
index ca460b60fe..a84cc9db06 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
index bb5ba4426a..826ed9eb57 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1464
+V1544
48
58
65
@@ -115,10 +115,12 @@ V1464
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2260
2272
2275
@@ -286,8 +288,6 @@ V1464
3046
3056
3072
-3076
-3077
3085
3086
3089
@@ -305,6 +305,8 @@ V1464
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -329,14 +331,14 @@ V1464
3277
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -422,7 +424,7 @@ V1464
3913
3949
3953
-3970
+3972
3976
3992
3993
@@ -492,10 +494,8 @@ V1464
5870
5881
5888
-5901
-5902
5908
-5920
+5919
5940
5952
5972
@@ -553,12 +553,14 @@ V1464
6824
6847
6849
+6860
+6863
6912
6964
6965
6980
6981
-6988
+6989
6992
7002
7040
@@ -666,10 +668,6 @@ V1464
9398
9450
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -734,8 +732,6 @@ V1464
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -754,10 +750,14 @@ V1464
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43014
43015
43048
@@ -927,12 +927,34 @@ V1464
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1009,6 +1031,8 @@ V1464
69416
69424
69446
+69488
+69506
69552
69573
69600
@@ -1017,8 +1041,12 @@ V1464
69702
69734
69744
-69762
+69745
+69750
+69760
69817
+69826
+69827
69840
69865
69872
@@ -1048,7 +1076,7 @@ V1464
70199
70200
70206
-70207
+70210
70272
70279
70280
@@ -1133,6 +1161,8 @@ V1464
71467
71472
71482
+71488
+71495
71680
71737
71840
@@ -1173,7 +1203,7 @@ V1464
72344
72349
72350
-72384
+72368
72441
72704
72713
@@ -1225,6 +1255,14 @@ V1464
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73537
+73552
+73562
73648
73649
73728
@@ -1233,8 +1271,12 @@ V1464
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
@@ -1243,6 +1285,10 @@ V1464
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92928
@@ -1275,10 +1321,20 @@ V1464
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1355,6 +1411,10 @@ V1464
120780
120782
120832
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1365,6 +1425,10 @@ V1464
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123191
@@ -1373,10 +1437,24 @@ V1464
123210
123214
123215
+123536
+123566
123584
123628
123632
123642
+124112
+124140
+124144
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1462,9 +1540,9 @@ V1464
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1475,4 +1553,6 @@ V1464
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
index 0083d8d560..adfcbdf421 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1354
+V1414
0
888
890
@@ -36,8 +36,6 @@ V1354
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -55,11 +53,11 @@ V1354
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -215,7 +213,7 @@ V1354
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -225,6 +223,8 @@ V1354
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -247,14 +247,14 @@ V1354
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -314,7 +314,7 @@ V1354
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -382,10 +382,8 @@ V1354
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -402,8 +400,6 @@ V1354
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -442,11 +438,11 @@ V1354
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -462,8 +458,6 @@ V1354
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -504,7 +498,7 @@ V1354
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -518,10 +512,6 @@ V1354
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -552,7 +542,7 @@ V1354
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -576,8 +566,6 @@ V1354
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -586,10 +574,14 @@ V1354
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -660,16 +652,14 @@ V1354
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -756,13 +746,33 @@ V1354
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -845,10 +855,12 @@ V1354
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -856,9 +868,9 @@ V1354
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -878,7 +890,7 @@ V1354
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -942,7 +954,7 @@ V1354
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -950,7 +962,7 @@ V1354
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -981,8 +993,10 @@ V1354
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1025,6 +1039,12 @@ V1354
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1037,10 +1057,10 @@ V1354
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1050,7 +1070,9 @@ V1354
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1083,10 +1105,20 @@ V1354
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1101,14 +1133,22 @@ V1354
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1161,6 +1201,10 @@ V1354
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1171,6 +1215,10 @@ V1354
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1179,10 +1227,22 @@ V1354
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1291,16 +1351,18 @@ V1354
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1314,27 +1376,23 @@ V1354
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1342,9 +1400,9 @@ V1354
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1355,6 +1413,8 @@ V1354
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
index 26d243fc60..df2e6601e5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
index e6ad4006ce..8f1b51cedb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1364
+V1424
33
127
161
@@ -38,8 +38,6 @@ V1364
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -57,11 +55,11 @@ V1364
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -217,7 +215,7 @@ V1364
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -227,6 +225,8 @@ V1364
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -249,14 +249,14 @@ V1364
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -316,7 +316,7 @@ V1364
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -386,10 +386,8 @@ V1364
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -406,8 +404,6 @@ V1364
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -446,11 +442,11 @@ V1364
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -466,8 +462,6 @@ V1364
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -514,7 +508,7 @@ V1364
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -528,10 +522,6 @@ V1364
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -562,7 +552,7 @@ V1364
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -586,8 +576,6 @@ V1364
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -596,10 +584,14 @@ V1364
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -670,16 +662,14 @@ V1364
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -766,13 +756,33 @@ V1364
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -855,10 +865,12 @@ V1364
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -866,9 +878,9 @@ V1364
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -888,7 +900,7 @@ V1364
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -952,7 +964,7 @@ V1364
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -960,7 +972,7 @@ V1364
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -991,8 +1003,10 @@ V1364
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1035,6 +1049,12 @@ V1364
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1047,10 +1067,10 @@ V1364
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1060,7 +1080,9 @@ V1364
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1093,10 +1115,20 @@ V1364
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1111,14 +1143,22 @@ V1364
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1171,6 +1211,10 @@ V1364
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1181,6 +1225,10 @@ V1364
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1189,10 +1237,22 @@ V1364
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1301,16 +1361,18 @@ V1364
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1324,27 +1386,23 @@ V1364
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1352,9 +1410,9 @@ V1364
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1365,6 +1423,8 @@ V1364
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
index 41848aa3c1..9c370c462e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
index 1e4aeee116..445fab8571 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
index 8f87891116..3788e04d21 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1358
+V1418
32
127
160
@@ -38,8 +38,6 @@ V1358
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -57,11 +55,11 @@ V1358
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -217,7 +215,7 @@ V1358
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -227,6 +225,8 @@ V1358
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -249,14 +249,14 @@ V1358
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -316,7 +316,7 @@ V1358
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -384,10 +384,8 @@ V1358
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -404,8 +402,6 @@ V1358
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -444,11 +440,11 @@ V1358
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -464,8 +460,6 @@ V1358
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -508,7 +502,7 @@ V1358
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -522,10 +516,6 @@ V1358
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -556,7 +546,7 @@ V1358
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -580,8 +570,6 @@ V1358
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -590,10 +578,14 @@ V1358
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -664,16 +656,14 @@ V1358
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -760,13 +750,33 @@ V1358
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -849,10 +859,12 @@ V1358
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -860,9 +872,9 @@ V1358
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -882,7 +894,7 @@ V1358
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -946,7 +958,7 @@ V1358
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -954,7 +966,7 @@ V1358
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -985,8 +997,10 @@ V1358
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1029,6 +1043,12 @@ V1358
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1041,10 +1061,10 @@ V1358
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1054,7 +1074,9 @@ V1358
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1087,10 +1109,20 @@ V1358
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1105,14 +1137,22 @@ V1358
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1165,6 +1205,10 @@ V1358
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1175,6 +1219,10 @@ V1358
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1183,10 +1231,22 @@ V1358
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1295,16 +1355,18 @@ V1358
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1318,27 +1380,23 @@ V1358
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1346,9 +1404,9 @@ V1358
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1359,6 +1417,8 @@ V1358
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
index 874977babf..a0a07789d7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
index 918ab48c15..f8993bd3df 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
index 6326cc4e4b..0a7183c9c1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1466
+V1542
48
58
65
@@ -111,11 +111,11 @@ V1466
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2200
2274
2275
2404
@@ -283,7 +283,7 @@ V1466
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -293,6 +293,8 @@ V1466
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -317,14 +319,14 @@ V1466
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -390,7 +392,7 @@ V1466
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -482,10 +484,8 @@ V1466
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -505,7 +505,7 @@ V1466
6122
6155
6158
-6160
+6159
6170
6176
6265
@@ -542,9 +542,9 @@ V1466
6823
6824
6832
-6849
+6863
6912
-6988
+6989
6992
7002
7019
@@ -568,8 +568,6 @@ V1466
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -652,10 +650,6 @@ V1466
9398
9450
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -720,8 +714,6 @@ V1466
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -740,10 +732,14 @@ V1466
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -921,12 +917,34 @@ V1466
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1001,12 +1019,14 @@ V1466
69293
69296
69298
-69376
+69373
69405
69415
69416
69424
69457
+69488
+69510
69552
69573
69600
@@ -1014,9 +1034,11 @@ V1466
69632
69703
69734
-69744
+69750
69759
69819
+69826
+69827
69840
69865
69872
@@ -1044,7 +1066,7 @@ V1466
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -1123,6 +1145,8 @@ V1466
71468
71472
71482
+71488
+71495
71680
71739
71840
@@ -1159,7 +1183,7 @@ V1466
72346
72349
72350
-72384
+72368
72441
72704
72713
@@ -1203,6 +1227,14 @@ V1466
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
73648
73649
73728
@@ -1211,8 +1243,12 @@ V1466
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78912
+78934
82944
83527
92160
@@ -1221,6 +1257,10 @@ V1466
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92912
@@ -1255,10 +1295,20 @@ V1466
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1273,6 +1323,10 @@ V1466
113818
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1359,6 +1413,10 @@ V1466
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1369,6 +1427,10 @@ V1466
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1377,8 +1439,20 @@ V1466
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
@@ -1462,9 +1536,9 @@ V1466
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1475,6 +1549,8 @@ V1466
195102
196608
201547
+201552
+205744
917760
918000
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
index 50ca614906..5d4a9d5f1c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V360
+V372
33
48
58
@@ -55,7 +55,7 @@ V360
1550
1563
1564
-1566
+1565
1568
1642
1646
@@ -133,6 +133,8 @@ V360
6830
7002
7009
+7037
+7039
7164
7168
7227
@@ -182,7 +184,7 @@ V360
11824
11856
11858
-11859
+11870
12289
12292
12296
@@ -293,6 +295,8 @@ V360
69294
69461
69466
+69510
+69514
69703
69710
69819
@@ -329,6 +333,8 @@ V360
71236
71264
71277
+71353
+71354
71484
71487
71739
@@ -343,16 +349,22 @@ V360
72349
72350
72355
+72448
+72458
72769
72774
72816
72818
73463
73465
+73539
+73552
73727
73728
74864
74869
+77809
+77811
92782
92784
92917
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
index 6168e7b6b7..49af76dd4f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V268
+V282
65
91
97
@@ -208,10 +208,6 @@ V268
9398
9450
11264
-11311
-11312
-11359
-11360
11377
11378
11380
@@ -246,9 +242,11 @@ V268
42902
42927
42928
-42944
-42946
42955
+42960
+42962
+42966
+42970
42997
42999
43859
@@ -269,6 +267,22 @@ V268
66772
66776
66812
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
68736
68787
68800
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
index 93d5c8a2fa..23437bdc0c 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1480
+V1556
32
33
40
@@ -119,11 +119,11 @@ V1480
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2200
2274
2275
2404
@@ -291,7 +291,7 @@ V1480
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -301,6 +301,8 @@ V1480
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -325,14 +327,14 @@ V1480
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -398,7 +400,7 @@ V1480
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -490,10 +492,8 @@ V1480
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -513,7 +513,7 @@ V1480
6122
6155
6158
-6160
+6159
6170
6176
6265
@@ -552,9 +552,9 @@ V1480
6832
6846
6847
-6849
+6863
6912
-6988
+6989
6992
7002
7019
@@ -578,8 +578,6 @@ V1480
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -662,10 +660,6 @@ V1480
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -728,8 +722,6 @@ V1480
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -748,10 +740,14 @@ V1480
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -941,12 +937,34 @@ V1480
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1021,12 +1039,14 @@ V1480
69293
69296
69298
-69376
+69373
69405
69415
69416
69424
69457
+69488
+69510
69552
69573
69600
@@ -1034,9 +1054,11 @@ V1480
69632
69703
69734
-69744
+69750
69759
69819
+69826
+69827
69840
69865
69872
@@ -1064,7 +1086,7 @@ V1480
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -1143,6 +1165,8 @@ V1480
71468
71472
71482
+71488
+71495
71680
71739
71840
@@ -1179,7 +1203,7 @@ V1480
72346
72349
72350
-72384
+72368
72441
72704
72713
@@ -1223,6 +1247,14 @@ V1480
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
73648
73649
73728
@@ -1231,8 +1263,12 @@ V1480
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78912
+78934
82944
83527
92160
@@ -1241,6 +1277,10 @@ V1480
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92912
@@ -1275,10 +1315,20 @@ V1480
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1293,6 +1343,10 @@ V1480
113818
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1379,6 +1433,10 @@ V1480
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1389,6 +1447,10 @@ V1480
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1397,8 +1459,20 @@ V1480
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
@@ -1476,9 +1550,9 @@ V1480
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1489,6 +1563,8 @@ V1480
195102
196608
201547
+201552
+205744
917760
918000
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
index 5aa4d66d8f..fa963e1304 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1256
+V1330
65
91
97
@@ -109,10 +109,12 @@ V1256
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -241,6 +243,8 @@ V1256
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -257,7 +261,7 @@ V1256
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -400,10 +404,8 @@ V1256
5873
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -446,7 +448,7 @@ V1256
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -548,10 +550,6 @@ V1256
8579
8581
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -610,8 +608,6 @@ V1256
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -632,10 +628,14 @@ V1256
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -825,12 +825,34 @@ V1256
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -901,12 +923,18 @@ V1256
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -933,6 +961,8 @@ V1256
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -989,6 +1019,8 @@ V1256
71353
71424
71451
+71488
+71495
71680
71724
71840
@@ -1027,7 +1059,7 @@ V1256
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -1055,20 +1087,32 @@ V1256
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
74650
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1097,10 +1141,20 @@ V1256
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1173,14 +1227,32 @@ V1256
120771
120772
120780
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1254,9 +1326,9 @@ V1256
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1267,4 +1339,6 @@ V1256
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
index 330ac0e943..59e197f951 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
index f20c5ce154..d91adae729 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1474
+V1550
48
58
65
@@ -113,11 +113,11 @@ V1474
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2200
2274
2275
2404
@@ -285,7 +285,7 @@ V1474
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -295,6 +295,8 @@ V1474
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -319,14 +321,14 @@ V1474
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -392,7 +394,7 @@ V1474
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -484,10 +486,8 @@ V1474
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -507,7 +507,7 @@ V1474
6122
6155
6158
-6160
+6159
6170
6176
6265
@@ -546,9 +546,9 @@ V1474
6832
6846
6847
-6849
+6863
6912
-6988
+6989
6992
7002
7019
@@ -572,8 +572,6 @@ V1474
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -656,10 +654,6 @@ V1474
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -722,8 +716,6 @@ V1474
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -742,10 +734,14 @@ V1474
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -935,12 +931,34 @@ V1474
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1015,12 +1033,14 @@ V1474
69293
69296
69298
-69376
+69373
69405
69415
69416
69424
69457
+69488
+69510
69552
69573
69600
@@ -1028,9 +1048,11 @@ V1474
69632
69703
69734
-69744
+69750
69759
69819
+69826
+69827
69840
69865
69872
@@ -1058,7 +1080,7 @@ V1474
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -1137,6 +1159,8 @@ V1474
71468
71472
71482
+71488
+71495
71680
71739
71840
@@ -1173,7 +1197,7 @@ V1474
72346
72349
72350
-72384
+72368
72441
72704
72713
@@ -1217,6 +1241,14 @@ V1474
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
73648
73649
73728
@@ -1225,8 +1257,12 @@ V1474
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78912
+78934
82944
83527
92160
@@ -1235,6 +1271,10 @@ V1474
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92912
@@ -1269,10 +1309,20 @@ V1474
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1287,6 +1337,10 @@ V1474
113818
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1373,6 +1427,10 @@ V1474
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1383,6 +1441,10 @@ V1474
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1391,8 +1453,20 @@ V1474
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
@@ -1470,9 +1544,9 @@ V1474
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1483,6 +1557,8 @@ V1474
195102
196608
201547
+201552
+205744
917760
918000
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
index 04fe229e45..869a725697 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1262
+V1336
65
91
95
@@ -111,10 +111,12 @@ V1262
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -243,6 +245,8 @@ V1262
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -259,7 +263,7 @@ V1262
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -402,10 +406,8 @@ V1262
5870
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -446,7 +448,7 @@ V1262
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -548,10 +550,6 @@ V1262
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -612,8 +610,6 @@ V1262
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -634,10 +630,14 @@ V1262
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -829,12 +829,34 @@ V1262
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -905,12 +927,18 @@ V1262
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -937,6 +965,8 @@ V1262
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -993,6 +1023,8 @@ V1262
71353
71424
71451
+71488
+71495
71680
71724
71840
@@ -1031,7 +1063,7 @@ V1262
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -1059,6 +1091,12 @@ V1262
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
@@ -1067,14 +1105,20 @@ V1262
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1103,10 +1147,20 @@ V1262
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1179,14 +1233,32 @@ V1262
120771
120772
120780
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1260,9 +1332,9 @@ V1262
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1273,4 +1345,6 @@ V1262
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIsI.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIsI.pl
index a375448bb8..59f0e01104 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIsI.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIsI.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl
index 313747f4cd..c147e0be55 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl
index b9494131e8..889fad77bb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
index 106890b368..af089ed408 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
index a599cce623..4106dcfe28 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
index e9cc05ef66..f108ec9d63 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -48,7 +48,7 @@ V78
6068
6070
6155
-6159
+6160
8192
8255
8257
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
index 700c8183af..cbd0224484 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
index 35a0b17385..acab4a94a9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
index 49af080d5e..7adfb7b90d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V88
+V90
34
35
39
@@ -67,6 +67,8 @@ V88
11818
11842
11843
+11861
+11869
12296
12306
12308
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
index 6b2d540504..d8c014ecd1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V586
+V626
768
880
1155
@@ -59,7 +59,9 @@ V586
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2308
@@ -143,6 +145,8 @@ V586
3032
3072
3077
+3132
+3133
3134
3141
3142
@@ -167,6 +171,8 @@ V586
3287
3298
3300
+3315
+3316
3328
3332
3387
@@ -204,7 +210,7 @@ V586
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -246,7 +252,7 @@ V586
4957
4960
5906
-5909
+5910
5938
5941
5970
@@ -259,6 +265,8 @@ V586
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -276,7 +284,7 @@ V586
6783
6784
6832
-6849
+6863
6912
6917
6964
@@ -302,8 +310,6 @@ V586
7415
7418
7616
-7674
-7675
7680
8204
8206
@@ -411,16 +417,26 @@ V586
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69632
69635
69688
69703
+69744
+69745
+69747
+69749
69759
69763
69808
69819
+69826
+69827
69888
69891
69927
@@ -441,6 +457,8 @@ V586
70200
70206
70207
+70209
+70210
70367
70379
70400
@@ -535,6 +553,18 @@ V586
73112
73459
73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -551,6 +581,10 @@ V586
94194
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -585,10 +619,16 @@ V586
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
index 5bae0936fa..8c0fca2bd2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
173
174
1536
@@ -21,6 +21,8 @@ V40
1758
1807
1808
+2192
+2194
2274
2275
6158
@@ -44,7 +46,7 @@ V40
69837
69838
78896
-78905
+78912
113824
113828
119155
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
index 462314b0c5..06bdbf13d1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1038
+V1086
443
444
448
@@ -75,10 +75,12 @@ V1038
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -207,6 +209,8 @@ V1038
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -223,7 +227,7 @@ V1038
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -311,7 +315,7 @@ V1038
4239
4304
4347
-4348
+4349
4681
4682
4686
@@ -356,10 +360,8 @@ V1038
5870
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -402,7 +404,7 @@ V1038
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -484,8 +486,6 @@ V1038
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -581,8 +581,6 @@ V1038
43815
43816
43823
-43881
-43882
43968
44003
44032
@@ -681,6 +679,8 @@ V1038
67414
67424
67432
+67457
+67459
67584
67590
67592
@@ -747,12 +747,18 @@ V1038
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -779,6 +785,8 @@ V1038
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -835,6 +843,8 @@ V1038
71353
71424
71451
+71488
+71495
71680
71724
71935
@@ -871,7 +881,7 @@ V1038
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -899,6 +909,12 @@ V1038
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
@@ -907,14 +923,20 @@ V1038
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -941,10 +963,20 @@ V1038
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -957,14 +989,28 @@ V1038
113801
113808
113818
+122634
+122635
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125259
@@ -1036,9 +1082,9 @@ V1038
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1049,4 +1095,6 @@ V1038
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
index 6f76823363..026ff33c4b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1298
+V1338
97
123
170
@@ -559,6 +559,8 @@ V1298
1328
1376
1417
+4348
+4349
5112
5118
7296
@@ -884,7 +886,7 @@ V1298
9424
9450
11312
-11359
+11360
11361
11362
11365
@@ -1219,12 +1221,26 @@ V1298
42942
42943
42944
+42945
+42946
42947
42948
42952
42953
42954
42955
+42961
+42962
+42963
+42964
+42965
+42966
+42967
+42968
+42969
+42970
+42994
+42997
42998
42999
43000
@@ -1232,7 +1248,7 @@ V1298
43824
43867
43868
-43881
+43882
43888
43968
64256
@@ -1245,6 +1261,22 @@ V1298
66640
66776
66812
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67456
+67457
+67459
+67462
+67463
+67505
+67506
+67515
68800
68851
71872
@@ -1307,6 +1339,14 @@ V1298
120778
120779
120780
+122624
+122634
+122635
+122655
+122661
+122667
+122928
+122990
125218
125252
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
index 35cbdb6323..1cf3fe4d2d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V124
+V130
48
58
1632
@@ -121,8 +121,12 @@ V124
73050
73120
73130
+73552
+73562
92768
92778
+92864
+92874
93008
93018
120782
@@ -131,6 +135,8 @@ V124
123210
123632
123642
+124144
+124154
125264
125274
130032
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
index db2d7e75be..9f1f0ddd4d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
index 9ce8fa2b66..15b2c4f6f9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,14 @@
return <<'END';
-V146
+V154
33
34
63
64
1417
1418
-1566
+1565
1568
1748
1749
@@ -55,6 +55,8 @@ V146
7004
7006
7008
+7037
+7039
7227
7229
7294
@@ -67,6 +69,8 @@ V146
11823
11836
11837
+11859
+11861
12290
12291
42239
@@ -103,6 +107,8 @@ V146
68184
69461
69466
+69510
+69514
69703
69705
69822
@@ -143,6 +149,8 @@ V146
72771
73463
73465
+73539
+73541
92782
92784
92917
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
index a46464d6f3..419813ceec 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
index c991375947..55ea74043e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1288
+V1304
65
91
192
@@ -880,7 +880,7 @@ V1288
9398
9424
11264
-11311
+11312
11360
11361
11362
@@ -1209,12 +1209,20 @@ V1288
42941
42942
42943
+42944
+42945
42946
42947
42948
42952
42953
42954
+42960
+42961
+42966
+42967
+42968
+42969
42997
42998
65313
@@ -1223,6 +1231,14 @@ V1288
66600
66736
66772
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
68736
68787
71840
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
index 4e233678bb..26b947f98d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1611
+V1681
0
9
14
@@ -109,8 +109,6 @@ V1611
1552
1563
1564
-1565
-1566
1642
1643
1645
@@ -144,11 +142,13 @@ V1611
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2192
+2194
+2200
2416
2417
2436
@@ -312,7 +312,7 @@ V1611
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -322,6 +322,8 @@ V1611
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -346,14 +348,14 @@ V1611
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -419,7 +421,7 @@ V1611
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -511,10 +513,8 @@ V1611
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -537,8 +537,6 @@ V1611
6152
6154
6155
-6159
-6160
6170
6176
6265
@@ -575,15 +573,17 @@ V1611
6823
6828
6832
-6849
+6863
6912
-6988
+6989
6992
7004
7006
7008
7019
7028
+7037
+7039
7040
7156
7168
@@ -603,8 +603,6 @@ V1611
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -721,10 +719,6 @@ V1611
10748
10750
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -768,6 +762,8 @@ V1611
11837
11842
11843
+11859
+11869
12288
12291
12293
@@ -803,8 +799,6 @@ V1611
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -827,10 +821,14 @@ V1611
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -1036,12 +1034,34 @@ V1611
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1118,7 +1138,7 @@ V1611
69293
69296
69298
-69376
+69373
69405
69415
69416
@@ -1126,6 +1146,8 @@ V1611
69457
69461
69466
+69488
+69514
69552
69573
69600
@@ -1133,11 +1155,11 @@ V1611
69632
69705
69734
-69744
+69750
69759
69819
69821
-69826
+69827
69837
69838
69840
@@ -1169,7 +1191,7 @@ V1611
70203
70205
70206
-70207
+70210
70272
70279
70280
@@ -1252,6 +1274,8 @@ V1611
71482
71484
71487
+71488
+71495
71680
71739
71840
@@ -1292,7 +1316,7 @@ V1611
72346
72347
72350
-72384
+72368
72441
72704
72713
@@ -1336,6 +1360,14 @@ V1611
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73541
+73552
+73562
73648
73649
73728
@@ -1344,10 +1376,10 @@ V1611
74863
74880
75076
+77712
+77809
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1357,7 +1389,9 @@ V1611
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1394,10 +1428,20 @@ V1611
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1412,6 +1456,10 @@ V1611
113818
113821
113828
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1498,6 +1546,10 @@ V1611
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1508,6 +1560,10 @@ V1611
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1516,8 +1572,20 @@ V1611
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
@@ -1603,9 +1671,9 @@ V1611
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1616,6 +1684,8 @@ V1611
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
index 589d695841..81375acde9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V68
105
107
303
@@ -73,4 +73,10 @@ V62
120416
120466
120468
+122650
+122651
+122956
+122958
+122984
+122985
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
index d49d31e84f..18fb183779 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V160
33
34
46
@@ -19,7 +19,7 @@ V152
64
1417
1418
-1566
+1565
1568
1748
1749
@@ -57,6 +57,8 @@ V152
7004
7006
7008
+7037
+7039
7227
7229
7294
@@ -69,6 +71,8 @@ V152
11823
11836
11837
+11859
+11861
12290
12291
42239
@@ -109,6 +113,8 @@ V152
68184
69461
69466
+69510
+69514
69703
69705
69822
@@ -149,6 +155,8 @@ V152
72771
73463
73465
+73539
+73541
92782
92784
92917
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
index f83fb3bfae..523b8e6fd8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V114
+V116
1536
1541
1542
@@ -18,8 +18,6 @@ V114
1549
1563
1564
-1565
-1566
1567
1568
1600
@@ -33,30 +31,34 @@ V114
1792
1872
1920
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2274
2275
2304
64336
-64450
+64451
64467
64830
-64848
+64832
64912
64914
64968
+64975
+64976
65008
-65022
+65024
65136
65141
65142
65277
69216
69247
+69373
+69376
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
index 82ffc6a5ab..d423e4ba2d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
index baf9108ca2..053e8cdc88 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
index 5f6d30917d..c9fbf849f4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V20
1024
1157
1159
@@ -27,4 +27,8 @@ V16
42656
65070
65072
+122928
+122990
+123023
+123024
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
index 2af2e8201c..79f7941adf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
2304
2385
2389
@@ -19,4 +19,6 @@ V8
2432
43232
43264
+72448
+72458
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
index 543632a6c4..549d81aae8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
index 0ab9000327..2af3388f8e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl
index d0aedac7ea..6a8441b435 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,9 @@
return <<'END';
-V14
+V12
11264
-11311
-11312
-11359
+11360
122880
122887
122888
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gong.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gong.pl
index 8a6dce273d..8d35984f59 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gong.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gonm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gonm.pl
index 48c4315472..e335eb046d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gonm.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gonm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
index 158008a87b..e83cfa9140 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
index cfeb16e277..ff120bffd5 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
index 877a92d184..25dae69d40 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
index a7a38e5c11..03a585e470 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
index dc97406224..a206d00258 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V42
11904
11930
11931
@@ -28,17 +28,19 @@ V38
13312
19904
19968
-40957
+40960
63744
64110
64112
64218
+94178
+94180
94192
94194
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -49,4 +51,6 @@ V38
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
index f6e3bbf71d..85ae402c43 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
index 27baa4ed16..65b5397440 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V10
+V12
12353
12439
12445
12448
110593
-110879
+110880
+110898
+110899
110928
110931
127488
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
index 122a83d766..92ccca861f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V28
12449
12539
12541
@@ -25,8 +25,18 @@ V18
65392
65393
65438
+110576
+110580
+110581
+110588
+110589
+110591
110592
110593
+110880
+110883
+110933
+110934
110948
110952
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
index ea8128b50b..e83f523f9f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -29,12 +29,12 @@ V26
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
index e5cb1f725b..8586470bcc 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V64
+V78
65
91
97
@@ -58,10 +58,14 @@ V64
42786
42888
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43008
43824
43867
@@ -75,4 +79,14 @@ V64
65339
65345
65371
+67456
+67462
+67463
+67505
+67506
+67515
+122624
+122655
+122661
+122667
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
index a86d41fac0..acf3732631 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
index 1216633da2..c8de163a6e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
index 4028a84c17..f99babc1f3 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
index b6a31f4370..92e58cd04e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V14
+V12
6144
6146
6148
6149
6150
-6159
-6160
6170
6176
6265
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl
index 4e829da4e5..e95045ef02 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
index 72435aad63..1aa15ca04a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
index 0d91976c45..a5043e4b8a 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl
index 93f273d744..d7d0912547 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
index 472fe413da..14ccba780f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
index 6810179789..3e35c0ab39 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
3072
3085
3086
@@ -19,7 +19,7 @@ V24
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -29,6 +29,8 @@ V24
3159
3160
3163
+3165
+3166
3168
3172
3174
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
index 05d7bdab17..977435b141 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V56
+V58
768
880
1157
@@ -22,7 +22,7 @@ V56
2385
2389
6832
-6849
+6863
7376
7379
7380
@@ -36,8 +36,6 @@ V56
7416
7418
7616
-7674
-7675
7680
8204
8206
@@ -57,6 +55,10 @@ V56
66273
70459
70460
+118528
+118574
+118576
+118599
119143
119146
119163
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
index fb12264702..be3a612bbf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -92,7 +92,7 @@ V346
8320
8335
8352
-8384
+8385
8448
8486
8487
@@ -118,7 +118,7 @@ V346
11159
11264
11776
-11859
+11870
12272
12284
12288
@@ -205,10 +205,10 @@ V346
66045
66273
66300
-94178
-94180
113824
113828
+118608
+118724
118784
119030
119040
@@ -222,7 +222,9 @@ V346
119180
119210
119214
-119273
+119275
+119488
+119508
119520
119540
119552
@@ -303,16 +305,18 @@ V346
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -326,27 +330,23 @@ V346
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl
index 90e9546584..62dc54e040 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V8
+V10
+1567
+1568
1600
1601
125184
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
index cf24bc25b1..d21af7d1fe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,31 +14,29 @@ V104
1536
1541
1542
-1565
-1566
1757
1758
1792
1872
1920
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2274
2275
2304
64336
-64450
+64451
64467
-64830
-64848
64912
64914
64968
+64975
+64976
65008
-65022
+65024
65136
65141
65142
@@ -47,6 +45,8 @@ V104
66300
69216
69247
+69373
+69376
126464
126468
126469
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
index 23bb84bd35..91e7e14f29 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
index a5e75333c1..1c08cb83f5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl
index 657f2f2f16..6039a77cc1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
index 8fb60c7446..fc3a0ef129 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
index 4417b76ae9..df3ceb7c19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl
index 8c544e7e83..8f1d6b67b4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
index c0753c6de9..716212ed87 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
index 9941e74289..537cb394aa 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
index d969c83171..4c3230ad5f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
1024
1328
7296
@@ -29,4 +29,8 @@ V18
42656
65070
65072
+122928
+122990
+123023
+123024
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
index ebf0f221d4..34a709cd1f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
2304
2387
2389
@@ -25,4 +25,6 @@ V14
43066
43232
43264
+72448
+72458
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Diak.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Diak.pl
index 29156f3a21..5f83a1334b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Diak.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Diak.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
index cc0d53d0e0..258e8c4382 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl
index 94bd4d1612..5c412534ee 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V64
+V72
4608
4681
4682
@@ -75,4 +75,12 @@ V64
43815
43816
43823
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
index 18764ad69e..b03abc802e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl
index 39f39e33ba..f7a166dd4a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V22
+V20
1156
1157
1159
1160
11264
-11311
-11312
-11359
+11360
11843
11844
42607
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gong.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gong.pl
index 385679934b..4e918fc8c8 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gong.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl
index 0ced9eb633..70ef95a703 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
index 0beee9c9d2..127d55f73a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
index 4d5285f887..5b0883e339 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
index ced330c0a2..00461f88f5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
index 4adb8cc433..c4dfe5b687 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
index a0200df9c2..1499c83514 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V76
11904
11930
11931
@@ -52,7 +52,7 @@ V72
13312
19904
19968
-40957
+40960
42752
42760
63744
@@ -63,6 +63,8 @@ V72
65095
65377
65382
+94178
+94180
94192
94194
119648
@@ -70,9 +72,9 @@ V72
127568
127570
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -83,4 +85,6 @@ V72
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
index 56f59308b9..9389e1a641 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl
index b388886051..dd26642607 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
index 1abcaa8bb1..de5c0dc38f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
12289
12292
12296
@@ -38,7 +38,9 @@ V32
65438
65440
110593
-110879
+110880
+110898
+110899
110928
110931
127488
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl
index 134bd8741b..a1096bbc0b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmnp.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmnp.pl
index 13e0d53224..ededb3ff62 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmnp.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmnp.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
index f8d6fcf76f..6b18961d7c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V40
12289
12292
12296
@@ -37,8 +37,18 @@ V30
65095
65377
65440
+110576
+110580
+110581
+110588
+110589
+110591
110592
110593
+110880
+110883
+110933
+110934
110948
110952
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl
index 67a48fe17c..052d1771fe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl
index bbe5d54da0..d27b7518b0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khoj.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khoj.pl
index fe903c114c..cd1676544d 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khoj.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khoj.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -18,5 +18,5 @@ V8
70144
70162
70163
-70207
+70210
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
index 63aeb19be4..1d2d7a46f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -33,14 +33,14 @@ V42
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
7376
7377
7378
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kthi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kthi.pl
index fcaeb51514..2db06dd3cd 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kthi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kthi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -16,7 +16,7 @@ V8
43056
43066
69760
-69826
+69827
69837
69838
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl
index eb1064e0bf..e9558592de 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl
index ad51d8c999..864afc7b6a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -28,7 +28,7 @@ V22
3782
3783
3784
-3790
+3791
3792
3802
3804
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
index b362575315..7d39e2fc5d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V80
+V94
65
91
97
@@ -72,10 +72,14 @@ V80
42786
42888
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43008
43310
43311
@@ -91,4 +95,14 @@ V80
65339
65345
65371
+67456
+67462
+67463
+67505
+67506
+67515
+122624
+122655
+122661
+122667
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
index 310e0e2ce4..35857f86dd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl
index 0772303f56..6d7f761df8 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
index 2a56ccb8a8..fe45b2288b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
index 712bd7008e..0f59127335 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
index 8ab88a8b03..20ddeab944 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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,8 @@
return <<'END';
-V12
+V10
6144
-6159
-6160
6170
6176
6265
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
index 8523308b18..bc8b3192e2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
index 6623d4e765..a7d11d057d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl
index 5a15b51f84..8630bf2b58 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nand.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nko.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nko.pl
new file mode 100755
index 0000000000..158b739839
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Nko.pl
@@ -0,0 +1,26 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+1548
+1549
+1563
+1564
+1567
+1568
+1984
+2043
+2045
+2048
+64830
+64832
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
index ae98ae8cb2..7b8a4e0a92 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
index c914e6a3b0..921dd7f109 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl
index 30ec4cf41f..09f4c7b488 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Rohg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl
index 0c9c8ef565..b5b5d38fa0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
index 8333debe80..98eb0c93d3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
index 555ef86447..709653ce6f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
index 0732e8a21f..d4f3f921be 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
1548
1549
1563
@@ -33,4 +33,6 @@ V22
2155
7672
7673
+7674
+7675
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
index d4cbb5c7fc..0a6494ff84 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
index eff60cf89e..5428ac972e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -16,7 +16,7 @@ V8
43056
43066
71296
-71353
+71354
71360
71370
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl
index 0639f977bd..8175e3f96b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
index f2c8f7ccb2..64c8557a1e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tang.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tang.pl
index 03c2e94002..7081152db6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tang.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
index 66bdaef974..7a8894dc16 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
2385
2387
2404
@@ -23,7 +23,7 @@ V32
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -33,6 +33,8 @@ V32
3159
3160
3163
+3165
+3166
3168
3172
3174
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
index d51742a816..373183a4cc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl
index 2586b488b9..a0454302fc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
index 6f98f5f735..9a250e130d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Vith.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Vith.pl
new file mode 100755
index 0000000000..52dd5af559
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Vith.pl
@@ -0,0 +1,30 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
+V16
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl
index 7f50c38cf5..315193f72c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl
index e124109b30..420f6640bc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yezi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
index 9fd51582d3..86613157c9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
index 1fd67acae9..ad07d5a395 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V40
768
834
835
@@ -20,7 +20,7 @@ V36
2387
2389
6832
-6849
+6863
7618
7672
7673
@@ -37,6 +37,10 @@ V36
65070
66045
66046
+118528
+118574
+118576
+118599
119143
119146
119163
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
index 40065f1c80..018a04d870 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V296
+V294
0
65
91
@@ -64,7 +64,7 @@ V296
8320
8335
8352
-8384
+8385
8448
8486
8487
@@ -92,7 +92,7 @@ V296
11776
11843
11844
-11859
+11870
12272
12284
12288
@@ -129,8 +129,6 @@ V296
43868
43882
43884
-64830
-64832
65040
65050
65072
@@ -159,8 +157,8 @@ V296
65949
66000
66045
-94178
-94180
+118608
+118724
118784
119030
119040
@@ -174,7 +172,9 @@ V296
119180
119210
119214
-119273
+119275
+119488
+119508
119520
119540
119552
@@ -253,16 +253,18 @@ V296
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -276,27 +278,23 @@ V296
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl
index 886b5bb6a3..5d6785bf52 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1349
+V1409
888
890
896
@@ -35,8 +35,6 @@ V1349
1519
1525
1536
-1565
-1566
1806
1807
1867
@@ -54,11 +52,11 @@ V1349
2143
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2191
+2192
+2194
+2200
2436
2437
2445
@@ -214,7 +212,7 @@ V1349
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -224,6 +222,8 @@ V1349
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -246,14 +246,14 @@ V1349
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -313,7 +313,7 @@ V1349
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -381,10 +381,8 @@ V1349
5792
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5943
5952
5972
@@ -401,8 +399,6 @@ V1349
6128
6138
6144
-6159
-6160
6170
6176
6265
@@ -441,11 +437,11 @@ V1349
6816
6830
6832
-6849
+6863
6912
-6988
+6989
6992
-7037
+7039
7040
7156
7164
@@ -461,8 +457,6 @@ V1349
7376
7419
7424
-7674
-7675
7958
7960
7966
@@ -503,7 +497,7 @@ V1349
8336
8349
8352
-8384
+8385
8400
8433
8448
@@ -517,10 +511,6 @@ V1349
11126
11158
11159
-11311
-11312
-11359
-11360
11508
11513
11558
@@ -551,7 +541,7 @@ V1349
11736
11743
11744
-11859
+11870
11904
11930
11931
@@ -575,8 +565,6 @@ V1349
12784
12831
12832
-40957
-40960
42125
42128
42183
@@ -585,10 +573,14 @@ V1349
42560
42744
42752
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43053
43056
43066
@@ -659,16 +651,14 @@ V1349
64323
64325
64326
-64450
+64451
64467
-64832
-64848
64912
64914
64968
+64975
+64976
65008
-65022
-65024
65050
65056
65107
@@ -755,13 +745,33 @@ V1349
66864
66916
66927
-66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -844,10 +854,12 @@ V1349
69294
69296
69298
-69376
+69373
69416
69424
69466
+69488
+69514
69552
69580
69600
@@ -855,9 +867,9 @@ V1349
69632
69710
69714
-69744
+69750
69759
-69826
+69827
69837
69838
69840
@@ -877,7 +889,7 @@ V1349
70144
70162
70163
-70207
+70210
70272
70279
70280
@@ -941,7 +953,7 @@ V1349
71264
71277
71296
-71353
+71354
71360
71370
71424
@@ -949,7 +961,7 @@ V1349
71453
71468
71472
-71488
+71495
71680
71740
71840
@@ -980,8 +992,10 @@ V1349
72264
72272
72355
-72384
+72368
72441
+72448
+72458
72704
72713
72714
@@ -1024,6 +1038,12 @@ V1349
73130
73440
73465
+73472
+73489
+73490
+73531
+73534
+73562
73648
73649
73664
@@ -1036,10 +1056,10 @@ V1349
74869
74880
75076
+77712
+77811
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1049,7 +1069,9 @@ V1349
92768
92778
92782
-92784
+92863
+92864
+92874
92880
92910
92912
@@ -1082,10 +1104,20 @@ V1349
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1100,14 +1132,22 @@ V1349
113818
113820
113828
+118528
+118574
+118576
+118599
+118608
+118724
118784
119030
119040
119079
119081
-119273
+119275
119296
119366
+119488
+119508
119520
119540
119552
@@ -1160,6 +1200,10 @@ V1349
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1170,6 +1214,10 @@ V1349
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1178,10 +1226,22 @@ V1349
123210
123214
123216
+123536
+123567
123584
123642
123647
123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125127
@@ -1290,16 +1350,18 @@ V1349
127590
127744
128728
-128736
+128732
128749
128752
128765
128768
-128884
-128896
-128985
+128887
+128891
+128986
128992
129004
+129008
+129009
129024
129036
129040
@@ -1313,27 +1375,23 @@ V1349
129200
129202
129280
-129401
-129402
-129484
-129485
129620
129632
129646
129648
-129653
-129656
-129659
+129661
129664
-129671
+129673
129680
-129705
-129712
-129719
-129728
-129731
-129744
-129751
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
129792
129939
129940
@@ -1341,9 +1399,9 @@ V1349
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1354,6 +1412,8 @@ V1349
195102
196608
201547
+201552
+205744
917505
917506
917536
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
index 6c333c18f3..8d6e48084d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V216
33
34
44
@@ -33,7 +33,7 @@ V208
1549
1563
1564
-1566
+1565
1568
1748
1749
@@ -81,6 +81,8 @@ V208
7004
7005
7008
+7037
+7039
7227
7232
7294
@@ -99,6 +101,8 @@ V208
11853
11854
11856
+11859
+11861
12289
12291
42238
@@ -159,6 +163,8 @@ V208
68509
69461
69466
+69510
+69514
69703
69710
69822
@@ -203,6 +209,8 @@ V208
72818
73463
73465
+73539
+73541
74864
74869
92782
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
index a7e3d53b8c..94f5107991 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V30
+V32
13312
19904
19968
-40957
+40960
64014
64016
64017
@@ -30,9 +30,9 @@ V30
64039
64042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -41,4 +41,6 @@ V30
191457
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
index 513828f982..99747897ac 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1286
+V1302
65
91
192
@@ -878,7 +878,7 @@ V1286
9398
9424
11264
-11311
+11312
11360
11361
11362
@@ -1207,12 +1207,20 @@ V1286
42941
42942
42943
+42944
+42945
42946
42947
42948
42952
42953
42954
+42960
+42961
+42966
+42967
+42968
+42969
42997
42998
65313
@@ -1221,6 +1229,14 @@ V1286
66600
66736
66772
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
68736
68787
71840
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/VS/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/VS/Y.pl
new file mode 100755
index 0000000000..8ce265cbd6
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/VS/Y.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+6155
+6158
+6159
+6160
+65024
+65040
+917760
+918000
+END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl
index b04eb88408..e6d603bfbb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V177
+V179
0
167
168
@@ -161,15 +161,17 @@ V177
71040
71168
72192
-72368
+72384
77824
-78912
+78944
82944
83584
94176
-101776
-110592
+101760
+110576
111360
+118528
+118736
118784
119296
119520
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl
index b561bc7733..4d07bc5ef6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl
index b675c6c938..c92f8c3b3a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl
index ab620d34f9..5362c78816 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V254
+V256
167
168
169
@@ -236,15 +236,17 @@ V254
71040
71168
72192
-72368
+72384
77824
-78912
+78944
82944
83584
94176
-101776
-110592
+101760
+110576
111360
+118528
+118736
118784
119296
119520
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
index 41598ace29..d7deb943e4 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl
index be89130054..6d27d5a127 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V588
+V628
768
880
1155
@@ -59,7 +59,9 @@ V588
2094
2137
2140
-2259
+2200
+2208
+2250
2274
2275
2308
@@ -143,6 +145,8 @@ V588
3032
3072
3077
+3132
+3133
3134
3141
3142
@@ -167,6 +171,8 @@ V588
3287
3298
3300
+3315
+3316
3328
3332
3387
@@ -204,7 +210,7 @@ V588
3764
3773
3784
-3790
+3791
3864
3866
3893
@@ -246,7 +252,7 @@ V588
4957
4960
5906
-5909
+5910
5938
5941
5970
@@ -259,6 +265,8 @@ V588
6110
6155
6158
+6159
+6160
6277
6279
6313
@@ -276,7 +284,7 @@ V588
6783
6784
6832
-6849
+6863
6912
6917
6964
@@ -302,8 +310,6 @@ V588
7415
7418
7616
-7674
-7675
7680
8204
8205
@@ -411,16 +417,26 @@ V588
68904
69291
69293
+69373
+69376
69446
69457
+69506
+69510
69632
69635
69688
69703
+69744
+69745
+69747
+69749
69759
69763
69808
69819
+69826
+69827
69888
69891
69927
@@ -441,6 +457,8 @@ V588
70200
70206
70207
+70209
+70210
70367
70379
70400
@@ -535,6 +553,18 @@ V588
73112
73459
73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
92912
92917
92976
@@ -551,6 +581,10 @@ V588
94194
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -585,10 +619,16 @@ V588
122917
122918
122923
+123023
+123024
123184
123191
+123566
+123567
123628
123632
+124140
+124144
125136
125143
125252
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
index 9120d2a724..e85ec30e41 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V40
173
174
1536
@@ -21,6 +21,8 @@ V38
1758
1807
1808
+2192
+2194
2274
2275
6158
@@ -42,7 +44,7 @@ V38
69837
69838
78896
-78905
+78912
113824
113828
119155
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
index e89cf0006e..0eb89ff47f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
index df97e09410..9bdb6a6731 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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
+V30
12337
12342
12443
@@ -27,8 +27,18 @@ V20
13144
65382
65438
+110576
+110580
+110581
+110588
+110589
+110591
110592
110593
+110880
+110883
+110933
+110934
110948
110952
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
index af77f592a7..db7122c969 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1094
+V1156
65
91
97
@@ -105,10 +105,12 @@ V1094
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -237,6 +239,8 @@ V1094
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -253,7 +257,7 @@ V1094
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -350,10 +354,8 @@ V1094
5870
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -378,7 +380,7 @@ V1094
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -482,10 +484,6 @@ V1094
9398
9450
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -548,10 +546,14 @@ V1094
42656
42736
42760
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -685,12 +687,34 @@ V1094
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -761,12 +785,18 @@ V1094
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -793,6 +823,8 @@ V1094
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -885,7 +917,7 @@ V1094
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -913,6 +945,12 @@ V1094
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
@@ -921,14 +959,20 @@ V1094
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1019,14 +1063,32 @@ V1094
120771
120772
120780
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
index 5799474139..2fa010ea2a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
index 6c1fd474f0..38388b69e7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
index f85128d635..e3c125e32b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
index 43307c3345..30f2dfa608 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V124
+V130
48
58
1632
@@ -121,8 +121,12 @@ V124
73050
73120
73130
+73552
+73562
92768
92778
+92864
+92874
93008
93018
120782
@@ -131,6 +135,8 @@ V124
123210
123632
123642
+124144
+124154
125264
125274
130032
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/WSegSpac.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/WSegSpac.pl
index cff15c0c75..1ef34890b9 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/WSegSpac.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/WSegSpac.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
index fcf3b70387..18a035e06b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1487
+V1557
0
10
14
@@ -128,11 +128,13 @@ V1487
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2192
+2194
+2200
2404
2406
2416
@@ -298,7 +300,7 @@ V1487
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -308,6 +310,8 @@ V1487
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -332,14 +336,14 @@ V1487
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -395,7 +399,7 @@ V1487
3764
3773
3784
-3790
+3791
3792
3802
3840
@@ -497,10 +501,8 @@ V1487
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -517,8 +519,6 @@ V1487
6112
6122
6155
-6159
-6160
6170
6176
6265
@@ -547,9 +547,9 @@ V1487
6800
6810
6832
-6849
+6863
6912
-6988
+6989
6992
7002
7019
@@ -573,8 +573,6 @@ V1487
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -673,10 +671,6 @@ V1487
9398
9450
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -755,10 +749,14 @@ V1487
42623
42738
42760
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -954,12 +952,34 @@ V1487
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1034,12 +1054,14 @@ V1487
69293
69296
69298
-69376
+69373
69405
69415
69416
69424
69457
+69488
+69510
69552
69573
69600
@@ -1047,11 +1069,13 @@ V1487
69632
69703
69734
-69744
+69750
69759
69819
69821
69822
+69826
+69827
69837
69838
69840
@@ -1081,7 +1105,7 @@ V1487
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -1194,7 +1218,7 @@ V1487
72346
72349
72350
-72384
+72368
72441
72704
72713
@@ -1238,6 +1262,14 @@ V1487
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
73648
73649
73728
@@ -1246,10 +1278,10 @@ V1487
74863
74880
75076
+77712
+77809
77824
-78895
-78896
-78905
+78934
82944
83527
92160
@@ -1258,6 +1290,10 @@ V1487
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92912
@@ -1286,8 +1322,18 @@ V1487
94181
94192
94194
+110576
+110580
+110581
+110588
+110589
+110591
110592
110593
+110880
+110883
+110933
+110934
110948
110952
113664
@@ -1302,6 +1348,10 @@ V1487
113823
113824
113828
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1386,6 +1436,10 @@ V1487
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1396,6 +1450,10 @@ V1487
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1404,8 +1462,20 @@ V1487
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
index 604fff8ae7..81dc96d8d4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1474
+V1550
48
58
65
@@ -113,11 +113,11 @@ V1474
2140
2144
2155
-2208
-2229
-2230
-2248
-2259
+2160
+2184
+2185
+2191
+2200
2274
2275
2404
@@ -285,7 +285,7 @@ V1474
3113
3114
3130
-3133
+3132
3141
3142
3145
@@ -295,6 +295,8 @@ V1474
3159
3160
3163
+3165
+3166
3168
3172
3174
@@ -319,14 +321,14 @@ V1474
3278
3285
3287
-3294
+3293
3295
3296
3300
3302
3312
3313
-3315
+3316
3328
3341
3342
@@ -392,7 +394,7 @@ V1474
3782
3783
3784
-3790
+3791
3792
3802
3804
@@ -486,10 +488,8 @@ V1474
5870
5881
5888
-5901
-5902
-5909
-5920
+5910
+5919
5941
5952
5972
@@ -509,7 +509,7 @@ V1474
6122
6155
6158
-6160
+6159
6170
6176
6265
@@ -548,9 +548,9 @@ V1474
6832
6846
6847
-6849
+6863
6912
-6988
+6989
6992
7002
7019
@@ -574,8 +574,6 @@ V1474
7380
7419
7424
-7674
-7675
7958
7960
7966
@@ -656,10 +654,6 @@ V1474
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11508
@@ -722,8 +716,6 @@ V1474
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -742,10 +734,14 @@ V1474
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43048
43052
43053
@@ -935,12 +931,34 @@ V1474
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -1015,12 +1033,14 @@ V1474
69293
69296
69298
-69376
+69373
69405
69415
69416
69424
69457
+69488
+69510
69552
69573
69600
@@ -1028,9 +1048,11 @@ V1474
69632
69703
69734
-69744
+69750
69759
69819
+69826
+69827
69840
69865
69872
@@ -1058,7 +1080,7 @@ V1474
70163
70200
70206
-70207
+70210
70272
70279
70280
@@ -1137,6 +1159,8 @@ V1474
71468
71472
71482
+71488
+71495
71680
71739
71840
@@ -1173,7 +1197,7 @@ V1474
72346
72349
72350
-72384
+72368
72441
72704
72713
@@ -1217,6 +1241,14 @@ V1474
73130
73440
73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
73648
73649
73728
@@ -1225,8 +1257,12 @@ V1474
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78912
+78934
82944
83527
92160
@@ -1235,6 +1271,10 @@ V1474
92767
92768
92778
+92784
+92863
+92864
+92874
92880
92910
92912
@@ -1269,10 +1309,20 @@ V1474
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1287,6 +1337,10 @@ V1474
113818
113821
113823
+118528
+118574
+118576
+118599
119141
119146
119149
@@ -1373,6 +1427,10 @@ V1474
121504
121505
121520
+122624
+122655
+122661
+122667
122880
122887
122888
@@ -1383,6 +1441,10 @@ V1474
122917
122918
122923
+122928
+122990
+123023
+123024
123136
123181
123184
@@ -1391,8 +1453,20 @@ V1474
123210
123214
123215
+123536
+123567
123584
123642
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125136
@@ -1470,9 +1544,9 @@ V1474
130032
130042
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1483,6 +1557,8 @@ V1474
195102
196608
201547
+201552
+205744
917760
918000
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
index 64b0fccb91..9753456dbd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 13.0.0. Any changes made here will be lost!
+# This file is machine-generated by mktables from the Unicode
+# database, Version 15.0.0. Any changes 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';
-V1258
+V1332
65
91
97
@@ -109,10 +109,12 @@ V1258
2137
2144
2155
+2160
+2184
+2185
+2191
2208
-2229
-2230
-2248
+2250
2308
2362
2365
@@ -241,6 +243,8 @@ V1258
3134
3160
3163
+3165
+3166
3168
3170
3200
@@ -257,7 +261,7 @@ V1258
3258
3261
3262
-3294
+3293
3295
3296
3298
@@ -400,10 +404,8 @@ V1258
5870
5881
5888
-5901
-5902
5906
-5920
+5919
5938
5952
5970
@@ -444,7 +446,7 @@ V1258
6917
6964
6981
-6988
+6989
7043
7073
7086
@@ -544,10 +546,6 @@ V1258
8544
8585
11264
-11311
-11312
-11359
-11360
11493
11499
11503
@@ -608,8 +606,6 @@ V1258
13312
19904
19968
-40957
-40960
42125
42192
42238
@@ -630,10 +626,14 @@ V1258
42786
42889
42891
-42944
-42946
42955
-42997
+42960
+42962
+42963
+42964
+42965
+42970
+42994
43010
43011
43014
@@ -825,12 +825,34 @@ V1258
66856
66864
66916
+66928
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
67072
67383
67392
67414
67424
67432
+67456
+67462
+67463
+67505
+67506
+67515
67584
67590
67592
@@ -901,12 +923,18 @@ V1258
69416
69424
69446
+69488
+69506
69552
69573
69600
69623
69635
69688
+69745
+69747
+69749
+69750
69763
69808
69840
@@ -933,6 +961,8 @@ V1258
70162
70163
70188
+70207
+70209
70272
70279
70280
@@ -989,6 +1019,8 @@ V1258
71353
71424
71451
+71488
+71495
71680
71724
71840
@@ -1027,7 +1059,7 @@ V1258
72330
72349
72350
-72384
+72368
72441
72704
72713
@@ -1055,6 +1087,12 @@ V1258
73113
73440
73459
+73474
+73475
+73476
+73489
+73490
+73524
73648
73649
73728
@@ -1063,14 +1101,20 @@ V1258
74863
74880
75076
+77712
+77809
77824
-78895
+78896
+78913
+78919
82944
83527
92160
92729
92736
92767
+92784
+92863
92880
92910
92928
@@ -1099,10 +1143,20 @@ V1258
101590
101632
101641
+110576
+110580
+110581
+110588
+110589
+110591
110592
-110879
+110883
+110898
+110899
110928
110931
+110933
+110934
110948
110952
110960
@@ -1175,14 +1229,32 @@ V1258
120771
120772
120780
+122624
+122655
+122661
+122667
+122928
+122990
123136
123181
123191
123198
123214
123215
+123536
+123566
123584
123628
+124112
+124140
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
124928
125125
125184
@@ -1256,9 +1328,9 @@ V1258
126635
126652
131072
-173790
+173792
173824
-177973
+177978
177984
178206
178208
@@ -1269,4 +1341,6 @@ V1258
195102
196608
201547
+201552
+205744
END
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/uni_keywords.pl b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/uni_keywords.pl
index 55f83eb156..4a9a72d043 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/uni_keywords.pl
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/uni_keywords.pl
@@ -1,22 +1,22 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is built by regen/mk_invlists.pl from Unicode::UCD.
# Any changes made here will be lost!
%Unicode::UCD::uni_prop_ptrs_indices = (
- '_perl_any_folds' => 1187,
- '_perl_charname_begin' => 1188,
- '_perl_charname_continue' => 1189,
- '_perl_folds_to_multi_char' => 1190,
- '_perl_idcont' => 1191,
- '_perl_idstart' => 1192,
- '_perl_is_in_multi_char_fold' => 1193,
- '_perl_nchar' => 1194,
- '_perl_patws' => 1195,
- '_perl_problematic_locale_foldeds_start' => 1196,
- '_perl_problematic_locale_folds' => 1197,
- '_perl_quotemeta' => 1198,
- '_perl_surrogate' => 1199,
+ '_perl_any_folds' => 1222,
+ '_perl_charname_begin' => 1223,
+ '_perl_charname_continue' => 1224,
+ '_perl_folds_to_multi_char' => 1225,
+ '_perl_idcont' => 1226,
+ '_perl_idstart' => 1227,
+ '_perl_is_in_multi_char_fold' => 1228,
+ '_perl_nchar' => 1229,
+ '_perl_patws' => 1230,
+ '_perl_problematic_locale_foldeds_start' => 1231,
+ '_perl_problematic_locale_folds' => 1232,
+ '_perl_quotemeta' => 1233,
+ '_perl_surrogate' => 1234,
'adlm' => 1,
'aegeannumbers' => 2,
'age=10' => 3,
@@ -24,1280 +24,1316 @@
'age=12' => 5,
'age=12.1' => 6,
'age=13' => 7,
- 'age=2' => 8,
- 'age=2.1' => 9,
- 'age=3' => 10,
- 'age=3.1' => 11,
- 'age=3.2' => 12,
- 'age=4' => 13,
- 'age=4.1' => 14,
- 'age=5' => 15,
- 'age=5.1' => 16,
- 'age=5.2' => 17,
- 'age=6' => 18,
- 'age=6.1' => 19,
- 'age=6.2' => 20,
- 'age=6.3' => 21,
- 'age=7' => 22,
- 'age=8' => 23,
- 'age=9' => 24,
- 'age=na' => 25,
- 'aghb' => 26,
- 'ahex' => 970,
- 'ahom' => 27,
- 'alchemical' => 28,
- 'all' => 29,
- 'alnum' => 1161,
- 'alpha' => 1162,
- 'alphabetic' => 1162,
- 'alphabeticpf' => 30,
- 'ancientgreekmusic' => 31,
- 'ancientgreeknumbers' => 32,
- 'ancientsymbols' => 33,
- 'any' => 34,
- 'arab' => 35,
- 'arabicexta' => 36,
- 'arabicmath' => 37,
- 'arabicpfa' => 38,
- 'arabicpfb' => 39,
- 'arabicsup' => 40,
- 'armi' => 41,
- 'armn' => 42,
- 'arrows' => 43,
- 'ascii' => 44,
- 'asciihexdigit' => 970,
- 'assigned' => 45,
- 'avst' => 46,
- 'bali' => 47,
- 'bamu' => 48,
- 'bamumsup' => 49,
- 'basiclatin' => 44,
- 'bass' => 50,
- 'batk' => 51,
- 'bc=al' => 52,
- 'bc=an' => 53,
- 'bc=b' => 54,
- 'bc=bn' => 55,
- 'bc=cs' => 56,
- 'bc=en' => 57,
- 'bc=es' => 58,
- 'bc=et' => 59,
- 'bc=fsi' => 60,
- 'bc=l' => 61,
- 'bc=lre' => 62,
- 'bc=lri' => 63,
- 'bc=lro' => 64,
- 'bc=nsm' => 65,
- 'bc=on' => 66,
- 'bc=pdf' => 67,
- 'bc=pdi' => 68,
- 'bc=r' => 69,
- 'bc=rle' => 70,
- 'bc=rli' => 71,
- 'bc=rlo' => 72,
- 'bc=s' => 73,
- 'bc=ws' => 74,
- 'beng' => 75,
- 'bhks' => 76,
- 'bidic' => 77,
- 'bidim' => 78,
- 'blank' => 1163,
- 'blockelements' => 79,
- 'bopo' => 80,
- 'bopomofoext' => 81,
- 'boxdrawing' => 82,
- 'bpt=c' => 83,
- 'bpt=n' => 84,
- 'bpt=o' => 85,
- 'brah' => 86,
- 'brai' => 87,
- 'bugi' => 88,
- 'buhd' => 89,
- 'byzantinemusic' => 90,
- 'c' => 91,
- 'cakm' => 92,
- 'cans' => 93,
- 'cari' => 94,
- 'cased' => 95,
- 'casedletter' => 96,
- 'cc' => 1164,
- 'ccc=0' => 97,
- 'ccc=1' => 98,
- 'ccc=10' => 99,
- 'ccc=103' => 100,
- 'ccc=107' => 101,
- 'ccc=11' => 102,
- 'ccc=118' => 103,
- 'ccc=12' => 104,
- 'ccc=122' => 105,
- 'ccc=129' => 106,
- 'ccc=13' => 107,
- 'ccc=130' => 108,
- 'ccc=132' => 109,
- 'ccc=14' => 110,
- 'ccc=15' => 111,
- 'ccc=16' => 112,
- 'ccc=17' => 113,
- 'ccc=18' => 114,
- 'ccc=19' => 115,
- 'ccc=20' => 116,
- 'ccc=202' => 117,
- 'ccc=21' => 118,
- 'ccc=214' => 119,
- 'ccc=216' => 120,
- 'ccc=22' => 121,
- 'ccc=23' => 122,
- 'ccc=24' => 123,
- 'ccc=25' => 124,
- 'ccc=26' => 125,
- 'ccc=27' => 126,
- 'ccc=28' => 127,
- 'ccc=29' => 128,
- 'ccc=30' => 129,
- 'ccc=31' => 130,
- 'ccc=32' => 131,
- 'ccc=33' => 132,
- 'ccc=34' => 133,
- 'ccc=35' => 134,
- 'ccc=36' => 135,
- 'ccc=6' => 136,
- 'ccc=7' => 137,
- 'ccc=8' => 138,
- 'ccc=84' => 139,
- 'ccc=9' => 140,
- 'ccc=91' => 141,
- 'ccc=a' => 142,
- 'ccc=al' => 143,
- 'ccc=ar' => 144,
- 'ccc=b' => 145,
- 'ccc=bl' => 146,
- 'ccc=br' => 147,
- 'ccc=da' => 148,
- 'ccc=db' => 149,
- 'ccc=is' => 150,
- 'ccc=l' => 151,
- 'ccc=r' => 152,
- 'ce' => 153,
- 'cf' => 154,
- 'cham' => 155,
- 'cher' => 156,
- 'cherokeesup' => 157,
- 'chesssymbols' => 158,
- 'chrs' => 159,
- 'ci' => 160,
- 'cjk' => 161,
- 'cjkcompat' => 162,
- 'cjkcompatforms' => 163,
- 'cjkcompatideographs' => 164,
- 'cjkcompatideographssup' => 165,
- 'cjkexta' => 166,
- 'cjkextb' => 167,
- 'cjkextc' => 168,
- 'cjkextd' => 169,
- 'cjkexte' => 170,
- 'cjkextf' => 171,
- 'cjkextg' => 172,
- 'cjkradicalssup' => 173,
- 'cjkstrokes' => 174,
- 'cjksymbols' => 175,
- 'cn' => 176,
- 'cntrl' => 1164,
- 'co' => 177,
- 'compatjamo' => 178,
- 'compex' => 179,
- 'control' => 1164,
- 'controlpictures' => 180,
- 'copt' => 181,
- 'copticepactnumbers' => 182,
- 'countingrod' => 183,
- 'cprt' => 184,
- 'cuneiformnumbers' => 185,
- 'currencysymbols' => 186,
- 'cwcf' => 187,
- 'cwcm' => 188,
- 'cwkcf' => 189,
- 'cwl' => 190,
- 'cwt' => 191,
- 'cwu' => 192,
- 'cypriotsyllabary' => 193,
- 'cyrillicexta' => 194,
- 'cyrillicextb' => 195,
- 'cyrillicextc' => 196,
- 'cyrillicsup' => 197,
- 'cyrl' => 198,
- 'dash' => 199,
- 'decimalnumber' => 1165,
- 'dep' => 200,
- 'deva' => 201,
- 'devanagariext' => 202,
- 'di' => 203,
- 'dia' => 204,
- 'diacriticals' => 205,
- 'diacriticalsext' => 206,
- 'diacriticalsforsymbols' => 207,
- 'diacriticalssup' => 208,
- 'diak' => 209,
- 'digit' => 1165,
- 'dingbats' => 210,
- 'dogr' => 211,
- 'domino' => 212,
- 'dsrt' => 213,
- 'dt=can' => 214,
- 'dt=com' => 215,
- 'dt=enc' => 216,
- 'dt=fin' => 217,
- 'dt=font' => 218,
- 'dt=fra' => 219,
- 'dt=init' => 220,
- 'dt=iso' => 221,
- 'dt=med' => 222,
- 'dt=nar' => 223,
- 'dt=nb' => 224,
- 'dt=noncanon' => 225,
- 'dt=none' => 226,
- 'dt=sml' => 227,
- 'dt=sqr' => 228,
- 'dt=sub' => 229,
- 'dt=sup' => 230,
- 'dt=vert' => 231,
- 'dupl' => 232,
- 'ea=a' => 234,
- 'ea=f' => 235,
- 'ea=h' => 236,
- 'ea=n' => 237,
- 'ea=na' => 238,
- 'ea=w' => 239,
- 'earlydynasticcuneiform' => 233,
- 'ebase' => 240,
- 'ecomp' => 241,
- 'egyp' => 242,
- 'egyptianhieroglyphformatcontrols' => 243,
- 'elba' => 244,
- 'elym' => 245,
- 'emod' => 246,
- 'emoji' => 247,
- 'emoticons' => 248,
- 'enclosedalphanum' => 249,
- 'enclosedalphanumsup' => 250,
- 'enclosedcjk' => 251,
- 'enclosedideographicsup' => 252,
- 'epres' => 253,
- 'ethi' => 254,
- 'ethiopicext' => 255,
- 'ethiopicexta' => 256,
- 'ethiopicsup' => 257,
- 'ext' => 258,
- 'extpict' => 259,
- 'gcb=cn' => 260,
- 'gcb=ex' => 261,
- 'gcb=l' => 262,
- 'gcb=pp' => 263,
- 'gcb=sm' => 264,
- 'gcb=t' => 265,
- 'gcb=v' => 266,
- 'gcb=xx' => 267,
- 'geometricshapes' => 268,
- 'geometricshapesext' => 269,
- 'geor' => 270,
- 'georgianext' => 271,
- 'georgiansup' => 272,
- 'glag' => 273,
- 'glagoliticsup' => 274,
- 'gong' => 275,
- 'gonm' => 276,
- 'goth' => 277,
- 'gran' => 278,
- 'graph' => 1166,
- 'grbase' => 279,
- 'greekext' => 280,
- 'grek' => 281,
- 'grext' => 282,
- 'gujr' => 283,
- 'guru' => 284,
- 'halfandfullforms' => 285,
- 'halfmarks' => 286,
- 'han' => 287,
- 'hang' => 288,
- 'hano' => 289,
- 'hatr' => 290,
- 'hebr' => 291,
- 'hex' => 1173,
- 'hexdigit' => 1173,
- 'highpusurrogates' => 292,
- 'highsurrogates' => 293,
- 'hira' => 294,
- 'hluw' => 295,
- 'hmng' => 296,
- 'hmnp' => 297,
- 'horizspace' => 1163,
- 'hst=na' => 298,
- 'hung' => 299,
- 'hyphen_perl_aux' => 300,
- 'idc' => 301,
- 'identifierstatus=allowed' => 302,
- 'identifierstatus=restricted' => 303,
- 'identifiertype=defaultignorable' => 304,
- 'identifiertype=exclusion' => 305,
- 'identifiertype=inclusion' => 306,
- 'identifiertype=limiteduse' => 307,
- 'identifiertype=notcharacter' => 308,
- 'identifiertype=notnfkc' => 309,
- 'identifiertype=notxid' => 310,
- 'identifiertype=obsolete' => 311,
- 'identifiertype=recommended' => 312,
- 'identifiertype=technical' => 313,
- 'identifiertype=uncommonuse' => 314,
- 'ideo' => 315,
- 'ideographicsymbols' => 316,
- 'ids' => 317,
- 'idsb' => 318,
- 'idst' => 319,
- 'in=1.1' => 517,
- 'in=10' => 512,
- 'in=11' => 513,
- 'in=12' => 514,
- 'in=12.1' => 515,
- 'in=13' => 516,
- 'in=2' => 518,
- 'in=2.1' => 519,
- 'in=3' => 520,
- 'in=3.1' => 521,
- 'in=3.2' => 522,
- 'in=4' => 523,
- 'in=4.1' => 524,
- 'in=5' => 525,
- 'in=5.1' => 526,
- 'in=5.2' => 527,
- 'in=6' => 528,
- 'in=6.1' => 529,
- 'in=6.2' => 530,
- 'in=6.3' => 531,
- 'in=7' => 532,
- 'in=8' => 533,
- 'in=9' => 534,
- 'inadlam' => 320,
- 'inahom' => 321,
- 'inanatolianhieroglyphs' => 322,
- 'inarabic' => 323,
- 'inarmenian' => 324,
- 'inavestan' => 325,
- 'inbalinese' => 326,
- 'inbamum' => 327,
- 'inbassavah' => 328,
- 'inbatak' => 329,
- 'inbengali' => 330,
- 'inbhaiksuki' => 331,
- 'inbopomofo' => 332,
- 'inbrahmi' => 333,
- 'inbuginese' => 334,
- 'inbuhid' => 335,
- 'incarian' => 336,
- 'incaucasianalbanian' => 337,
- 'inchakma' => 338,
- 'incham' => 339,
- 'incherokee' => 340,
- 'inchorasmian' => 341,
- 'incoptic' => 342,
- 'incuneiform' => 343,
- 'incyrillic' => 344,
- 'indevanagari' => 345,
- 'indicnumberforms' => 346,
- 'indicsiyaqnumbers' => 347,
- 'indivesakuru' => 348,
- 'indogra' => 349,
- 'induployan' => 350,
- 'inegyptianhieroglyphs' => 351,
- 'inelbasan' => 352,
- 'inelymaic' => 353,
- 'inethiopic' => 354,
- 'ingeorgian' => 355,
- 'inglagolitic' => 356,
- 'ingothic' => 357,
- 'ingrantha' => 358,
- 'ingreek' => 359,
- 'ingujarati' => 360,
- 'ingunjalagondi' => 361,
- 'ingurmukhi' => 362,
- 'inhangul' => 363,
- 'inhanifirohingya' => 364,
- 'inhanunoo' => 365,
- 'inhatran' => 366,
- 'inhebrew' => 367,
- 'inhiragana' => 368,
- 'inidc' => 369,
- 'inimperialaramaic' => 370,
- 'ininscriptionalpahlavi' => 371,
- 'ininscriptionalparthian' => 372,
- 'injavanese' => 373,
- 'inkaithi' => 374,
- 'inkannada' => 375,
- 'inkatakana' => 376,
- 'inkharoshthi' => 377,
- 'inkhitansmallscript' => 378,
- 'inkhmer' => 379,
- 'inkhojki' => 380,
- 'inkhudawadi' => 381,
- 'inlao' => 382,
- 'inlepcha' => 383,
- 'inlimbu' => 384,
- 'inlineara' => 385,
- 'inlisu' => 386,
- 'inlycian' => 387,
- 'inlydian' => 388,
- 'inmahajani' => 389,
- 'inmakasar' => 390,
- 'inmalayalam' => 391,
- 'inmandaic' => 392,
- 'inmanichaean' => 393,
- 'inmarchen' => 394,
- 'inmasaramgondi' => 395,
- 'inmedefaidrin' => 396,
- 'inmeeteimayek' => 397,
- 'inmendekikakui' => 398,
- 'inmeroiticcursive' => 399,
- 'inmiao' => 400,
- 'inmodi' => 401,
- 'inmongolian' => 402,
- 'inmro' => 403,
- 'inmultani' => 404,
- 'inmyanmar' => 405,
- 'innabataean' => 406,
- 'innandinagari' => 407,
- 'innewa' => 408,
- 'innewtailue' => 409,
- 'innko' => 410,
- 'innushu' => 411,
- 'innyiakengpuachuehmong' => 412,
- 'inogham' => 413,
- 'inoldhungarian' => 414,
- 'inolditalic' => 415,
- 'inoldpermic' => 416,
- 'inoldpersian' => 417,
- 'inoldsogdian' => 418,
- 'inoldturkic' => 419,
- 'inoriya' => 420,
- 'inosage' => 421,
- 'inosmanya' => 422,
- 'inpahawhhmong' => 423,
- 'inpaucinhau' => 424,
- 'inpc=bottom' => 425,
- 'inpc=bottomandleft' => 426,
- 'inpc=bottomandright' => 427,
- 'inpc=left' => 428,
- 'inpc=leftandright' => 429,
- 'inpc=na' => 430,
- 'inpc=overstruck' => 431,
- 'inpc=right' => 432,
- 'inpc=top' => 433,
- 'inpc=topandbottom' => 434,
- 'inpc=topandbottomandleft' => 435,
- 'inpc=topandbottomandright' => 436,
- 'inpc=topandleft' => 437,
- 'inpc=topandleftandright' => 438,
- 'inpc=topandright' => 439,
- 'inphagspa' => 440,
- 'inphoenician' => 441,
- 'inpsalterpahlavi' => 442,
- 'inpunctuation' => 443,
- 'inrejang' => 444,
- 'inrunic' => 445,
- 'insamaritan' => 446,
- 'insaurashtra' => 447,
- 'insc=avagraha' => 448,
- 'insc=bindu' => 449,
- 'insc=brahmijoiningnumber' => 450,
- 'insc=cantillationmark' => 451,
- 'insc=consonant' => 452,
- 'insc=consonantdead' => 453,
- 'insc=consonantfinal' => 454,
- 'insc=consonantheadletter' => 455,
- 'insc=consonantinitialpostfixed' => 456,
- 'insc=consonantkiller' => 457,
- 'insc=consonantmedial' => 458,
- 'insc=consonantplaceholder' => 459,
- 'insc=consonantprecedingrepha' => 460,
- 'insc=consonantprefixed' => 461,
- 'insc=consonantsubjoined' => 462,
- 'insc=consonantsucceedingrepha' => 463,
- 'insc=consonantwithstacker' => 464,
- 'insc=geminationmark' => 465,
- 'insc=invisiblestacker' => 466,
- 'insc=modifyingletter' => 467,
- 'insc=nonjoiner' => 468,
- 'insc=nukta' => 469,
- 'insc=number' => 470,
- 'insc=numberjoiner' => 471,
- 'insc=other' => 472,
- 'insc=purekiller' => 473,
- 'insc=registershifter' => 474,
- 'insc=syllablemodifier' => 475,
- 'insc=toneletter' => 476,
- 'insc=tonemark' => 477,
- 'insc=virama' => 478,
- 'insc=visarga' => 479,
- 'insc=vowel' => 480,
- 'insc=voweldependent' => 481,
- 'insc=vowelindependent' => 482,
- 'insiddham' => 483,
- 'insinhala' => 484,
- 'insogdian' => 485,
- 'insorasompeng' => 486,
- 'insoyombo' => 487,
- 'insundanese' => 488,
- 'insylotinagri' => 489,
- 'insyriac' => 490,
- 'intagalog' => 491,
- 'intagbanwa' => 492,
- 'intaile' => 493,
- 'intaitham' => 494,
- 'intaiviet' => 495,
- 'intakri' => 496,
- 'intamil' => 497,
- 'intangut' => 498,
- 'intelugu' => 499,
- 'inthaana' => 500,
- 'inthai' => 501,
- 'intibetan' => 502,
- 'intifinagh' => 503,
- 'intirhuta' => 504,
- 'inugaritic' => 505,
- 'invai' => 506,
- 'invs' => 507,
- 'inwancho' => 508,
- 'inwarangciti' => 509,
- 'inyezidi' => 510,
- 'inzanabazarsquare' => 511,
- 'ipaext' => 535,
- 'ital' => 536,
- 'jamo' => 537,
- 'jamoexta' => 538,
- 'jamoextb' => 539,
- 'java' => 540,
- 'jg=africanfeh' => 541,
- 'jg=africannoon' => 542,
- 'jg=africanqaf' => 543,
- 'jg=ain' => 544,
- 'jg=alaph' => 545,
- 'jg=alef' => 546,
- 'jg=beh' => 547,
- 'jg=beth' => 548,
- 'jg=burushaskiyehbarree' => 549,
- 'jg=dal' => 550,
- 'jg=dalathrish' => 551,
- 'jg=e' => 552,
- 'jg=farsiyeh' => 553,
- 'jg=fe' => 554,
- 'jg=feh' => 555,
- 'jg=finalsemkath' => 556,
- 'jg=gaf' => 557,
- 'jg=gamal' => 558,
- 'jg=hah' => 559,
- 'jg=hamzaonhehgoal' => 560,
- 'jg=hanifirohingyakinnaya' => 561,
- 'jg=hanifirohingyapa' => 562,
- 'jg=he' => 563,
- 'jg=heh' => 564,
- 'jg=hehgoal' => 565,
- 'jg=heth' => 566,
- 'jg=kaf' => 567,
- 'jg=kaph' => 568,
- 'jg=khaph' => 569,
- 'jg=knottedheh' => 570,
- 'jg=lam' => 571,
- 'jg=lamadh' => 572,
- 'jg=malayalambha' => 573,
- 'jg=malayalamja' => 574,
- 'jg=malayalamlla' => 575,
- 'jg=malayalamllla' => 576,
- 'jg=malayalamnga' => 577,
- 'jg=malayalamnna' => 578,
- 'jg=malayalamnnna' => 579,
- 'jg=malayalamnya' => 580,
- 'jg=malayalamra' => 581,
- 'jg=malayalamssa' => 582,
- 'jg=malayalamtta' => 583,
- 'jg=manichaeanaleph' => 584,
- 'jg=manichaeanayin' => 585,
- 'jg=manichaeanbeth' => 586,
- 'jg=manichaeandaleth' => 587,
- 'jg=manichaeandhamedh' => 588,
- 'jg=manichaeanfive' => 589,
- 'jg=manichaeangimel' => 590,
- 'jg=manichaeanheth' => 591,
- 'jg=manichaeanhundred' => 592,
- 'jg=manichaeankaph' => 593,
- 'jg=manichaeanlamedh' => 594,
- 'jg=manichaeanmem' => 595,
- 'jg=manichaeannun' => 596,
- 'jg=manichaeanone' => 597,
- 'jg=manichaeanpe' => 598,
- 'jg=manichaeanqoph' => 599,
- 'jg=manichaeanresh' => 600,
- 'jg=manichaeansadhe' => 601,
- 'jg=manichaeansamekh' => 602,
- 'jg=manichaeantaw' => 603,
- 'jg=manichaeanten' => 604,
- 'jg=manichaeanteth' => 605,
- 'jg=manichaeanthamedh' => 606,
- 'jg=manichaeantwenty' => 607,
- 'jg=manichaeanwaw' => 608,
- 'jg=manichaeanyodh' => 609,
- 'jg=manichaeanzayin' => 610,
- 'jg=meem' => 611,
- 'jg=mim' => 612,
- 'jg=nojoininggroup' => 613,
- 'jg=noon' => 614,
- 'jg=nun' => 615,
- 'jg=nya' => 616,
- 'jg=pe' => 617,
- 'jg=qaf' => 618,
- 'jg=qaph' => 619,
- 'jg=reh' => 620,
- 'jg=reversedpe' => 621,
- 'jg=rohingyayeh' => 622,
- 'jg=sad' => 623,
- 'jg=sadhe' => 624,
- 'jg=seen' => 625,
- 'jg=semkath' => 626,
- 'jg=shin' => 627,
- 'jg=straightwaw' => 628,
- 'jg=swashkaf' => 629,
- 'jg=syriacwaw' => 630,
- 'jg=tah' => 631,
- 'jg=taw' => 632,
- 'jg=tehmarbuta' => 633,
- 'jg=teth' => 634,
- 'jg=waw' => 635,
- 'jg=yeh' => 636,
- 'jg=yehbarree' => 637,
- 'jg=yehwithtail' => 638,
- 'jg=yudh' => 639,
- 'jg=yudhhe' => 640,
- 'jg=zain' => 641,
- 'jg=zhain' => 642,
- 'joinc' => 643,
- 'jt=c' => 644,
- 'jt=d' => 645,
- 'jt=l' => 646,
- 'jt=r' => 647,
- 'jt=t' => 648,
- 'jt=u' => 649,
- 'kali' => 650,
- 'kana' => 651,
- 'kanaexta' => 652,
- 'kanasup' => 653,
- 'kanbun' => 654,
- 'kangxi' => 655,
- 'katakanaext' => 656,
- 'khar' => 657,
- 'khmersymbols' => 658,
- 'khmr' => 659,
- 'khoj' => 660,
- 'kits' => 661,
- 'knda' => 662,
- 'kthi' => 663,
- 'l' => 664,
- 'l_' => 96,
- 'l_amp_' => 96,
- 'lana' => 665,
- 'lao' => 666,
- 'latin1' => 667,
- 'latinexta' => 668,
- 'latinextadditional' => 669,
- 'latinextb' => 670,
- 'latinextc' => 671,
- 'latinextd' => 672,
- 'latinexte' => 673,
- 'latn' => 674,
- 'lb=ai' => 675,
- 'lb=al' => 676,
- 'lb=b2' => 677,
- 'lb=ba' => 678,
- 'lb=bb' => 679,
- 'lb=bk' => 680,
- 'lb=cb' => 681,
- 'lb=cj' => 682,
- 'lb=cl' => 683,
- 'lb=cm' => 684,
- 'lb=cp' => 685,
- 'lb=cr' => 686,
- 'lb=ex' => 687,
- 'lb=gl' => 688,
- 'lb=h2' => 689,
- 'lb=h3' => 690,
- 'lb=hl' => 691,
- 'lb=hy' => 692,
- 'lb=id' => 693,
- 'lb=in' => 694,
- 'lb=is' => 695,
- 'lb=lf' => 696,
- 'lb=nl' => 697,
- 'lb=ns' => 698,
- 'lb=nu' => 699,
- 'lb=op' => 700,
- 'lb=po' => 701,
- 'lb=pr' => 702,
- 'lb=qu' => 703,
- 'lb=sa' => 704,
- 'lb=sg_perl_aux' => 705,
- 'lb=sp' => 706,
- 'lb=sy' => 707,
- 'lb=wj' => 708,
- 'lb=xx' => 709,
- 'lb=zw' => 710,
- 'lb=zwj' => 711,
- 'lc' => 96,
- 'lepc' => 712,
- 'letterlikesymbols' => 713,
- 'limb' => 714,
- 'lina' => 715,
- 'linb' => 716,
- 'linearbideograms' => 717,
- 'linearbsyllabary' => 718,
- 'lisu' => 719,
- 'lisusup' => 720,
- 'll' => 724,
- 'lm' => 721,
- 'lo' => 722,
- 'loe' => 723,
- 'lower' => 1167,
- 'lowercase' => 1167,
- 'lowercaseletter' => 724,
- 'lowsurrogates' => 725,
- 'lt' => 1124,
- 'lu' => 1130,
- 'lyci' => 726,
- 'lydi' => 727,
- 'm' => 728,
- 'mahj' => 729,
- 'mahjong' => 730,
- 'maka' => 731,
- 'mand' => 732,
- 'mani' => 733,
- 'marc' => 734,
- 'math' => 735,
- 'mathalphanum' => 736,
- 'mathoperators' => 737,
- 'mayannumerals' => 738,
- 'mc' => 739,
- 'me' => 740,
- 'medf' => 741,
- 'meeteimayekext' => 742,
- 'mend' => 743,
- 'merc' => 744,
- 'mero' => 745,
- 'miao' => 746,
- 'miscarrows' => 747,
- 'miscmathsymbolsa' => 748,
- 'miscmathsymbolsb' => 749,
- 'miscpictographs' => 750,
- 'miscsymbols' => 751,
- 'misctechnical' => 752,
- 'mlym' => 753,
- 'mn' => 754,
- 'modi' => 755,
- 'modifierletters' => 756,
- 'modifiertoneletters' => 757,
- 'mong' => 758,
- 'mongoliansup' => 759,
- 'mro' => 760,
- 'mtei' => 761,
- 'mult' => 762,
- 'music' => 763,
- 'myanmarexta' => 764,
- 'myanmarextb' => 765,
- 'mymr' => 766,
- 'n' => 767,
- 'nand' => 768,
- 'narb' => 769,
- 'nb' => 770,
- 'nbat' => 771,
- 'nd' => 1165,
- 'newa' => 772,
- 'nfcqc=m' => 773,
- 'nfcqc=y' => 774,
- 'nfdqc=y' => 775,
- 'nfkcqc=n' => 776,
- 'nfkcqc=y' => 777,
- 'nfkdqc=n' => 778,
- 'nko' => 779,
- 'nl' => 780,
- 'no' => 781,
- 'nshu' => 782,
- 'nt=di' => 783,
- 'nt=nu' => 784,
- 'numberforms' => 785,
- 'nv=0' => 786,
- 'nv=1' => 787,
- 'nv=1/10' => 812,
- 'nv=1/12' => 813,
- 'nv=1/16' => 814,
- 'nv=1/160' => 815,
- 'nv=1/2' => 816,
- 'nv=1/20' => 817,
- 'nv=1/3' => 818,
- 'nv=1/32' => 819,
- 'nv=1/320' => 820,
- 'nv=1/4' => 821,
- 'nv=1/40' => 822,
- 'nv=1/5' => 823,
- 'nv=1/6' => 824,
- 'nv=1/64' => 825,
- 'nv=1/7' => 826,
- 'nv=1/8' => 827,
- 'nv=1/80' => 828,
- 'nv=1/9' => 829,
- 'nv=10' => 788,
- 'nv=100' => 789,
- 'nv=1000' => 790,
- 'nv=10000' => 791,
- 'nv=100000' => 792,
- 'nv=1000000' => 793,
- 'nv=10000000' => 794,
- 'nv=100000000' => 795,
- 'nv=10000000000' => 796,
- 'nv=1000000000000' => 797,
- 'nv=11' => 798,
- 'nv=11/12' => 799,
- 'nv=11/2' => 800,
- 'nv=12' => 801,
- 'nv=13' => 802,
- 'nv=13/2' => 803,
- 'nv=14' => 804,
- 'nv=15' => 805,
- 'nv=15/2' => 806,
- 'nv=16' => 807,
- 'nv=17' => 808,
- 'nv=17/2' => 809,
- 'nv=18' => 810,
- 'nv=19' => 811,
- 'nv=2' => 830,
- 'nv=2/3' => 847,
- 'nv=2/5' => 848,
- 'nv=20' => 831,
- 'nv=200' => 832,
- 'nv=2000' => 833,
- 'nv=20000' => 834,
- 'nv=200000' => 835,
- 'nv=20000000' => 836,
- 'nv=21' => 837,
- 'nv=216000' => 838,
- 'nv=22' => 839,
- 'nv=23' => 840,
- 'nv=24' => 841,
- 'nv=25' => 842,
- 'nv=26' => 843,
- 'nv=27' => 844,
- 'nv=28' => 845,
- 'nv=29' => 846,
- 'nv=3' => 849,
- 'nv=3/16' => 864,
- 'nv=3/2' => 865,
- 'nv=3/20' => 866,
- 'nv=3/4' => 867,
- 'nv=3/5' => 868,
- 'nv=3/64' => 869,
- 'nv=3/8' => 870,
- 'nv=3/80' => 871,
- 'nv=30' => 850,
- 'nv=300' => 851,
- 'nv=3000' => 852,
- 'nv=30000' => 853,
- 'nv=300000' => 854,
- 'nv=31' => 855,
- 'nv=32' => 856,
- 'nv=33' => 857,
- 'nv=34' => 858,
- 'nv=35' => 859,
- 'nv=36' => 860,
- 'nv=37' => 861,
- 'nv=38' => 862,
- 'nv=39' => 863,
- 'nv=4' => 872,
- 'nv=4/5' => 888,
- 'nv=40' => 873,
- 'nv=400' => 874,
- 'nv=4000' => 875,
- 'nv=40000' => 876,
- 'nv=400000' => 877,
- 'nv=41' => 878,
- 'nv=42' => 879,
- 'nv=43' => 880,
- 'nv=432000' => 881,
- 'nv=44' => 882,
- 'nv=45' => 883,
- 'nv=46' => 884,
- 'nv=47' => 885,
- 'nv=48' => 886,
- 'nv=49' => 887,
- 'nv=5' => 889,
- 'nv=5/12' => 895,
- 'nv=5/2' => 896,
- 'nv=5/6' => 897,
- 'nv=5/8' => 898,
- 'nv=50' => 890,
- 'nv=500' => 891,
- 'nv=5000' => 892,
- 'nv=50000' => 893,
- 'nv=500000' => 894,
- 'nv=6' => 899,
- 'nv=60' => 900,
- 'nv=600' => 901,
- 'nv=6000' => 902,
- 'nv=60000' => 903,
- 'nv=600000' => 904,
- 'nv=7' => 905,
- 'nv=7/12' => 911,
- 'nv=7/2' => 912,
- 'nv=7/8' => 913,
- 'nv=70' => 906,
- 'nv=700' => 907,
- 'nv=7000' => 908,
- 'nv=70000' => 909,
- 'nv=700000' => 910,
- 'nv=8' => 914,
- 'nv=80' => 915,
- 'nv=800' => 916,
- 'nv=8000' => 917,
- 'nv=80000' => 918,
- 'nv=800000' => 919,
- 'nv=9' => 920,
- 'nv=9/2' => 926,
- 'nv=90' => 921,
- 'nv=900' => 922,
- 'nv=9000' => 923,
- 'nv=90000' => 924,
- 'nv=900000' => 925,
- 'nv=_minus_1/2' => 928,
- 'nv=nan' => 927,
- 'ocr' => 929,
- 'ogam' => 930,
- 'olck' => 931,
- 'orkh' => 932,
- 'ornamentaldingbats' => 933,
- 'orya' => 934,
- 'osge' => 935,
- 'osma' => 936,
- 'ottomansiyaqnumbers' => 937,
- 'p' => 938,
- 'palm' => 939,
- 'patsyn' => 940,
- 'pauc' => 941,
- 'pc' => 942,
- 'pcm' => 943,
- 'pd' => 944,
- 'pe' => 945,
- 'perlspace' => 967,
- 'perlword' => 969,
- 'perm' => 946,
- 'pf' => 947,
- 'phag' => 948,
- 'phaistos' => 949,
- 'phli' => 950,
- 'phlp' => 951,
- 'phnx' => 952,
- 'phoneticext' => 953,
- 'phoneticextsup' => 954,
- 'pi' => 955,
- 'playingcards' => 956,
- 'po' => 957,
- 'posixalnum' => 958,
- 'posixalpha' => 959,
- 'posixblank' => 960,
- 'posixcntrl' => 961,
- 'posixdigit' => 962,
- 'posixgraph' => 963,
- 'posixlower' => 964,
- 'posixprint' => 965,
- 'posixpunct' => 966,
- 'posixspace' => 967,
- 'posixupper' => 968,
- 'posixword' => 969,
- 'posixxdigit' => 970,
- 'print' => 1168,
- 'prti' => 971,
- 'ps' => 972,
- 'pua' => 973,
- 'qaai' => 974,
- 'qmark' => 975,
- 'radical' => 976,
- 'ri' => 977,
- 'rjng' => 978,
- 'rohg' => 979,
- 'rumi' => 980,
- 'runr' => 981,
- 's' => 982,
- 'samr' => 983,
- 'sarb' => 984,
- 'saur' => 985,
- 'sb=at' => 986,
- 'sb=cl' => 987,
- 'sb=ex' => 988,
- 'sb=fo' => 989,
- 'sb=le' => 990,
- 'sb=lo' => 991,
- 'sb=nu' => 992,
- 'sb=sc' => 993,
- 'sb=se' => 994,
- 'sb=sp' => 995,
- 'sb=st' => 996,
- 'sb=up' => 997,
- 'sb=xx' => 998,
- 'sc' => 999,
- 'sc=adlm' => 1000,
- 'sc=arab' => 1001,
- 'sc=beng' => 1002,
- 'sc=bopo' => 1003,
- 'sc=bugi' => 1004,
- 'sc=buhd' => 1005,
- 'sc=cakm' => 1006,
- 'sc=copt' => 1007,
- 'sc=cprt' => 1008,
- 'sc=cyrl' => 1009,
- 'sc=deva' => 1010,
- 'sc=dogr' => 1011,
- 'sc=dupl' => 1012,
- 'sc=geor' => 1013,
- 'sc=glag' => 1014,
- 'sc=gong' => 1015,
- 'sc=gonm' => 1016,
- 'sc=gran' => 1017,
- 'sc=grek' => 1018,
- 'sc=gujr' => 1019,
- 'sc=guru' => 1020,
- 'sc=han' => 1021,
- 'sc=hang' => 1022,
- 'sc=hano' => 1023,
- 'sc=hira' => 1024,
- 'sc=java' => 1025,
- 'sc=kali' => 1026,
- 'sc=kana' => 1027,
- 'sc=khoj' => 1028,
- 'sc=knda' => 1029,
- 'sc=kthi' => 1030,
- 'sc=latn' => 1031,
- 'sc=limb' => 1032,
- 'sc=lina' => 1033,
- 'sc=linb' => 1034,
- 'sc=mahj' => 1035,
- 'sc=mand' => 1036,
- 'sc=mani' => 1037,
- 'sc=mlym' => 1038,
- 'sc=modi' => 1039,
- 'sc=mong' => 1040,
- 'sc=mult' => 1041,
- 'sc=mymr' => 1042,
- 'sc=nand' => 1043,
- 'sc=orya' => 1044,
- 'sc=perm' => 1045,
- 'sc=phag' => 1046,
- 'sc=phlp' => 1047,
- 'sc=qaai' => 1048,
- 'sc=rohg' => 1049,
- 'sc=shrd' => 1050,
- 'sc=sind' => 1051,
- 'sc=sinh' => 1052,
- 'sc=sogd' => 1053,
- 'sc=sylo' => 1054,
- 'sc=syrc' => 1055,
- 'sc=tagb' => 1056,
- 'sc=takr' => 1057,
- 'sc=tale' => 1058,
- 'sc=taml' => 1059,
- 'sc=telu' => 1060,
- 'sc=tglg' => 1061,
- 'sc=thaa' => 1062,
- 'sc=tirh' => 1063,
- 'sc=yezi' => 1064,
- 'sc=yi' => 1065,
- 'sc=zyyy' => 1066,
- 'sd' => 1067,
- 'sgnw' => 1068,
- 'shaw' => 1069,
- 'shorthandformatcontrols' => 1070,
- 'shrd' => 1071,
- 'sidd' => 1072,
- 'sind' => 1073,
- 'sinh' => 1074,
- 'sinhalaarchaicnumbers' => 1075,
- 'sk' => 1076,
- 'sm' => 1077,
- 'smallforms' => 1078,
- 'smallkanaext' => 1079,
- 'so' => 1080,
- 'sogd' => 1081,
- 'sogo' => 1082,
- 'sora' => 1083,
- 'soyo' => 1084,
- 'space' => 1170,
- 'spaceperl' => 1170,
- 'specials' => 1085,
- 'sterm' => 1086,
- 'sund' => 1087,
- 'sundanesesup' => 1088,
- 'suparrowsa' => 1089,
- 'suparrowsb' => 1090,
- 'suparrowsc' => 1091,
- 'superandsub' => 1092,
- 'supmathoperators' => 1093,
- 'suppuaa' => 1094,
- 'suppuab' => 1095,
- 'suppunctuation' => 1096,
- 'supsymbolsandpictographs' => 1097,
- 'suttonsignwriting' => 1098,
- 'sylo' => 1099,
- 'symbolsandpictographsexta' => 1100,
- 'symbolsforlegacycomputing' => 1101,
- 'syrc' => 1102,
- 'syriacsup' => 1103,
- 'tagb' => 1104,
- 'tags' => 1105,
- 'taixuanjing' => 1106,
- 'takr' => 1107,
- 'tale' => 1108,
- 'talu' => 1109,
- 'tamilsup' => 1110,
- 'taml' => 1111,
- 'tang' => 1112,
- 'tangutcomponents' => 1113,
- 'tangutsup' => 1114,
- 'tavt' => 1115,
- 'telu' => 1116,
- 'term' => 1117,
- 'tfng' => 1118,
- 'tglg' => 1119,
- 'thaa' => 1120,
- 'thai' => 1121,
- 'tibt' => 1122,
- 'tirh' => 1123,
- 'title' => 1124,
- 'titlecase' => 1124,
- 'titlecaseletter' => 1124,
- 'transportandmap' => 1125,
- 'ucas' => 1126,
- 'ucasext' => 1127,
- 'ugar' => 1128,
- 'uideo' => 1129,
- 'upper' => 1171,
- 'uppercase' => 1171,
- 'uppercaseletter' => 1130,
- 'vai' => 1131,
- 'vedicext' => 1132,
- 'verticalforms' => 1133,
- 'vertspace' => 1134,
- 'vo=r' => 1135,
- 'vo=tr' => 1136,
- 'vo=tu' => 1137,
- 'vo=u' => 1138,
- 'vs' => 1139,
- 'vssup' => 1140,
- 'wara' => 1141,
- 'wb=dq' => 1142,
- 'wb=eb' => 1143,
- 'wb=ex' => 1144,
- 'wb=extend' => 1145,
- 'wb=fo' => 1146,
- 'wb=ka' => 1147,
- 'wb=le' => 1148,
- 'wb=mb' => 1149,
- 'wb=ml' => 1150,
- 'wb=mn' => 1151,
- 'wb=nl' => 1152,
- 'wb=nu' => 1153,
- 'wb=sq' => 1154,
- 'wb=wsegspace' => 1155,
- 'wb=xx' => 1156,
- 'wcho' => 1157,
- 'whitespace' => 1170,
- 'word' => 1172,
- 'wspace' => 1170,
- 'xdigit' => 1173,
- 'xidc' => 1158,
- 'xids' => 1159,
- 'xpeo' => 1160,
- 'xperlspace' => 1170,
- 'xposixalnum' => 1161,
- 'xposixalpha' => 1162,
- 'xposixblank' => 1163,
- 'xposixcntrl' => 1164,
- 'xposixdigit' => 1165,
- 'xposixgraph' => 1166,
- 'xposixlower' => 1167,
- 'xposixprint' => 1168,
- 'xposixpunct' => 1169,
- 'xposixspace' => 1170,
- 'xposixupper' => 1171,
- 'xposixword' => 1172,
- 'xposixxdigit' => 1173,
- 'xsux' => 1174,
- 'yezi' => 1175,
- 'yi' => 1176,
- 'yijing' => 1177,
- 'yiradicals' => 1178,
- 'yisyllables' => 1179,
- 'z' => 1180,
- 'zanb' => 1181,
- 'zl' => 1182,
- 'zp' => 1183,
- 'zs' => 1184,
- 'zyyy' => 1185,
- 'zzzz' => 1186,
+ 'age=14' => 8,
+ 'age=15' => 9,
+ 'age=2' => 10,
+ 'age=2.1' => 11,
+ 'age=3' => 12,
+ 'age=3.1' => 13,
+ 'age=3.2' => 14,
+ 'age=4' => 15,
+ 'age=4.1' => 16,
+ 'age=5' => 17,
+ 'age=5.1' => 18,
+ 'age=5.2' => 19,
+ 'age=6' => 20,
+ 'age=6.1' => 21,
+ 'age=6.2' => 22,
+ 'age=6.3' => 23,
+ 'age=7' => 24,
+ 'age=8' => 25,
+ 'age=9' => 26,
+ 'aghb' => 27,
+ 'ahex' => 997,
+ 'ahom' => 28,
+ 'alchemical' => 29,
+ 'all' => 30,
+ 'alnum' => 1195,
+ 'alpha' => 1196,
+ 'alphabetic' => 1196,
+ 'alphabeticpf' => 31,
+ 'ancientgreekmusic' => 32,
+ 'ancientgreeknumbers' => 33,
+ 'ancientsymbols' => 34,
+ 'any' => 35,
+ 'arab' => 36,
+ 'arabicexta' => 37,
+ 'arabicextb' => 38,
+ 'arabicextc' => 39,
+ 'arabicmath' => 40,
+ 'arabicpfa' => 41,
+ 'arabicpfb' => 42,
+ 'arabicsup' => 43,
+ 'armi' => 44,
+ 'armn' => 45,
+ 'arrows' => 46,
+ 'ascii' => 47,
+ 'asciihexdigit' => 997,
+ 'assigned' => 48,
+ 'avst' => 49,
+ 'bali' => 50,
+ 'bamu' => 51,
+ 'bamumsup' => 52,
+ 'basiclatin' => 47,
+ 'bass' => 53,
+ 'batk' => 54,
+ 'bc=al' => 55,
+ 'bc=an' => 56,
+ 'bc=b' => 57,
+ 'bc=bn' => 58,
+ 'bc=cs' => 59,
+ 'bc=en' => 60,
+ 'bc=es' => 61,
+ 'bc=et' => 62,
+ 'bc=fsi' => 63,
+ 'bc=l' => 64,
+ 'bc=lre' => 65,
+ 'bc=lri' => 66,
+ 'bc=lro' => 67,
+ 'bc=nsm' => 68,
+ 'bc=on' => 69,
+ 'bc=pdf' => 70,
+ 'bc=pdi' => 71,
+ 'bc=r' => 72,
+ 'bc=rle' => 73,
+ 'bc=rli' => 74,
+ 'bc=rlo' => 75,
+ 'bc=s' => 76,
+ 'bc=ws' => 77,
+ 'beng' => 78,
+ 'bhks' => 79,
+ 'bidic' => 80,
+ 'bidim' => 81,
+ 'blank' => 1197,
+ 'blockelements' => 82,
+ 'bopo' => 83,
+ 'bopomofoext' => 84,
+ 'boxdrawing' => 85,
+ 'bpt=c' => 86,
+ 'bpt=n' => 87,
+ 'bpt=o' => 88,
+ 'brah' => 89,
+ 'brai' => 90,
+ 'bugi' => 91,
+ 'buhd' => 92,
+ 'byzantinemusic' => 93,
+ 'c' => 94,
+ 'cakm' => 95,
+ 'cans' => 96,
+ 'cari' => 97,
+ 'cased' => 98,
+ 'casedletter' => 99,
+ 'cc' => 1198,
+ 'ccc=0' => 100,
+ 'ccc=1' => 101,
+ 'ccc=10' => 102,
+ 'ccc=103' => 103,
+ 'ccc=107' => 104,
+ 'ccc=11' => 105,
+ 'ccc=118' => 106,
+ 'ccc=12' => 107,
+ 'ccc=122' => 108,
+ 'ccc=129' => 109,
+ 'ccc=13' => 110,
+ 'ccc=130' => 111,
+ 'ccc=132' => 112,
+ 'ccc=14' => 113,
+ 'ccc=15' => 114,
+ 'ccc=16' => 115,
+ 'ccc=17' => 116,
+ 'ccc=18' => 117,
+ 'ccc=19' => 118,
+ 'ccc=20' => 119,
+ 'ccc=202' => 120,
+ 'ccc=21' => 121,
+ 'ccc=214' => 122,
+ 'ccc=216' => 123,
+ 'ccc=22' => 124,
+ 'ccc=23' => 125,
+ 'ccc=24' => 126,
+ 'ccc=25' => 127,
+ 'ccc=26' => 128,
+ 'ccc=27' => 129,
+ 'ccc=28' => 130,
+ 'ccc=29' => 131,
+ 'ccc=30' => 132,
+ 'ccc=31' => 133,
+ 'ccc=32' => 134,
+ 'ccc=33' => 135,
+ 'ccc=34' => 136,
+ 'ccc=35' => 137,
+ 'ccc=36' => 138,
+ 'ccc=6' => 139,
+ 'ccc=7' => 140,
+ 'ccc=8' => 141,
+ 'ccc=84' => 142,
+ 'ccc=9' => 143,
+ 'ccc=91' => 144,
+ 'ccc=a' => 145,
+ 'ccc=al' => 146,
+ 'ccc=ar' => 147,
+ 'ccc=b' => 148,
+ 'ccc=bl' => 149,
+ 'ccc=br' => 150,
+ 'ccc=da' => 151,
+ 'ccc=db' => 152,
+ 'ccc=is' => 153,
+ 'ccc=l' => 154,
+ 'ccc=r' => 155,
+ 'ce' => 156,
+ 'cf' => 157,
+ 'cham' => 158,
+ 'cher' => 159,
+ 'cherokeesup' => 160,
+ 'chesssymbols' => 161,
+ 'chrs' => 162,
+ 'ci' => 163,
+ 'cjk' => 164,
+ 'cjkcompat' => 165,
+ 'cjkcompatforms' => 166,
+ 'cjkcompatideographs' => 167,
+ 'cjkcompatideographssup' => 168,
+ 'cjkexta' => 169,
+ 'cjkextb' => 170,
+ 'cjkextc' => 171,
+ 'cjkextd' => 172,
+ 'cjkexte' => 173,
+ 'cjkextf' => 174,
+ 'cjkextg' => 175,
+ 'cjkexth' => 176,
+ 'cjkradicalssup' => 177,
+ 'cjkstrokes' => 178,
+ 'cjksymbols' => 179,
+ 'cn' => 180,
+ 'cntrl' => 1198,
+ 'co' => 181,
+ 'compatjamo' => 182,
+ 'compex' => 183,
+ 'control' => 1198,
+ 'controlpictures' => 184,
+ 'copt' => 185,
+ 'copticepactnumbers' => 186,
+ 'countingrod' => 187,
+ 'cpmn' => 188,
+ 'cprt' => 189,
+ 'cuneiformnumbers' => 190,
+ 'currencysymbols' => 191,
+ 'cwcf' => 192,
+ 'cwcm' => 193,
+ 'cwkcf' => 194,
+ 'cwl' => 195,
+ 'cwt' => 196,
+ 'cwu' => 197,
+ 'cypriotsyllabary' => 198,
+ 'cyrillicexta' => 199,
+ 'cyrillicextb' => 200,
+ 'cyrillicextc' => 201,
+ 'cyrillicextd' => 202,
+ 'cyrillicsup' => 203,
+ 'cyrl' => 204,
+ 'dash' => 205,
+ 'decimalnumber' => 1199,
+ 'dep' => 206,
+ 'deva' => 207,
+ 'devanagariext' => 208,
+ 'devanagariexta' => 209,
+ 'di' => 210,
+ 'dia' => 211,
+ 'diacriticals' => 212,
+ 'diacriticalsext' => 213,
+ 'diacriticalsforsymbols' => 214,
+ 'diacriticalssup' => 215,
+ 'diak' => 216,
+ 'digit' => 1199,
+ 'dingbats' => 217,
+ 'dogr' => 218,
+ 'domino' => 219,
+ 'dsrt' => 220,
+ 'dt=can' => 221,
+ 'dt=com' => 222,
+ 'dt=enc' => 223,
+ 'dt=fin' => 224,
+ 'dt=font' => 225,
+ 'dt=fra' => 226,
+ 'dt=init' => 227,
+ 'dt=iso' => 228,
+ 'dt=med' => 229,
+ 'dt=nar' => 230,
+ 'dt=nb' => 231,
+ 'dt=noncanon' => 232,
+ 'dt=none' => 233,
+ 'dt=sml' => 234,
+ 'dt=sqr' => 235,
+ 'dt=sub' => 236,
+ 'dt=sup' => 237,
+ 'dt=vert' => 238,
+ 'dupl' => 239,
+ 'ea=a' => 241,
+ 'ea=f' => 242,
+ 'ea=h' => 243,
+ 'ea=n' => 244,
+ 'ea=na' => 245,
+ 'ea=w' => 246,
+ 'earlydynasticcuneiform' => 240,
+ 'ebase' => 247,
+ 'ecomp' => 248,
+ 'egyp' => 249,
+ 'egyptianhieroglyphformatcontrols' => 250,
+ 'elba' => 251,
+ 'elym' => 252,
+ 'emod' => 253,
+ 'emoji' => 254,
+ 'emoticons' => 255,
+ 'enclosedalphanum' => 256,
+ 'enclosedalphanumsup' => 257,
+ 'enclosedcjk' => 258,
+ 'enclosedideographicsup' => 259,
+ 'epres' => 260,
+ 'ethi' => 261,
+ 'ethiopicext' => 262,
+ 'ethiopicexta' => 263,
+ 'ethiopicextb' => 264,
+ 'ethiopicsup' => 265,
+ 'ext' => 266,
+ 'extpict' => 267,
+ 'gcb=cn' => 268,
+ 'gcb=ex' => 269,
+ 'gcb=l' => 270,
+ 'gcb=pp' => 271,
+ 'gcb=sm' => 272,
+ 'gcb=t' => 273,
+ 'gcb=v' => 274,
+ 'gcb=xx' => 275,
+ 'geometricshapes' => 276,
+ 'geometricshapesext' => 277,
+ 'geor' => 278,
+ 'georgianext' => 279,
+ 'georgiansup' => 280,
+ 'glag' => 281,
+ 'glagoliticsup' => 282,
+ 'gong' => 283,
+ 'gonm' => 284,
+ 'goth' => 285,
+ 'gran' => 286,
+ 'graph' => 1200,
+ 'grbase' => 287,
+ 'greekext' => 288,
+ 'grek' => 289,
+ 'grext' => 290,
+ 'gujr' => 291,
+ 'guru' => 292,
+ 'halfandfullforms' => 293,
+ 'halfmarks' => 294,
+ 'han' => 295,
+ 'hang' => 296,
+ 'hano' => 297,
+ 'hatr' => 298,
+ 'hebr' => 299,
+ 'hex' => 1207,
+ 'hexdigit' => 1207,
+ 'highpusurrogates' => 300,
+ 'highsurrogates' => 301,
+ 'hira' => 302,
+ 'hluw' => 303,
+ 'hmng' => 304,
+ 'hmnp' => 305,
+ 'horizspace' => 1197,
+ 'hst=na' => 306,
+ 'hung' => 307,
+ 'hyphen_perl_aux' => 308,
+ 'idc' => 309,
+ 'identifierstatus=allowed' => 310,
+ 'identifierstatus=restricted' => 311,
+ 'identifiertype=defaultignorable' => 312,
+ 'identifiertype=exclusion' => 313,
+ 'identifiertype=inclusion' => 314,
+ 'identifiertype=limiteduse' => 315,
+ 'identifiertype=notcharacter' => 316,
+ 'identifiertype=notnfkc' => 317,
+ 'identifiertype=notxid' => 318,
+ 'identifiertype=obsolete' => 319,
+ 'identifiertype=recommended' => 320,
+ 'identifiertype=technical' => 321,
+ 'identifiertype=uncommonuse' => 322,
+ 'ideo' => 323,
+ 'ideographicsymbols' => 324,
+ 'ids' => 325,
+ 'idsb' => 326,
+ 'idst' => 327,
+ 'in=1.1' => 534,
+ 'in=10' => 527,
+ 'in=11' => 528,
+ 'in=12' => 529,
+ 'in=12.1' => 530,
+ 'in=13' => 531,
+ 'in=14' => 532,
+ 'in=15' => 533,
+ 'in=2' => 535,
+ 'in=2.1' => 536,
+ 'in=3' => 537,
+ 'in=3.1' => 538,
+ 'in=3.2' => 539,
+ 'in=4' => 540,
+ 'in=4.1' => 541,
+ 'in=5' => 542,
+ 'in=5.1' => 543,
+ 'in=5.2' => 544,
+ 'in=6' => 545,
+ 'in=6.1' => 546,
+ 'in=6.2' => 547,
+ 'in=6.3' => 548,
+ 'in=7' => 549,
+ 'in=8' => 550,
+ 'in=9' => 551,
+ 'in=na' => 552,
+ 'inadlam' => 328,
+ 'inahom' => 329,
+ 'inanatolianhieroglyphs' => 330,
+ 'inarabic' => 331,
+ 'inarmenian' => 332,
+ 'inavestan' => 333,
+ 'inbalinese' => 334,
+ 'inbamum' => 335,
+ 'inbassavah' => 336,
+ 'inbatak' => 337,
+ 'inbengali' => 338,
+ 'inbhaiksuki' => 339,
+ 'inbopomofo' => 340,
+ 'inbrahmi' => 341,
+ 'inbuginese' => 342,
+ 'inbuhid' => 343,
+ 'incarian' => 344,
+ 'incaucasianalbanian' => 345,
+ 'inchakma' => 346,
+ 'incham' => 347,
+ 'incherokee' => 348,
+ 'inchorasmian' => 349,
+ 'incoptic' => 350,
+ 'incuneiform' => 351,
+ 'incyprominoan' => 352,
+ 'incyrillic' => 353,
+ 'indevanagari' => 354,
+ 'indicnumberforms' => 355,
+ 'indicsiyaqnumbers' => 356,
+ 'indivesakuru' => 357,
+ 'indogra' => 358,
+ 'induployan' => 359,
+ 'inegyptianhieroglyphs' => 360,
+ 'inelbasan' => 361,
+ 'inelymaic' => 362,
+ 'inethiopic' => 363,
+ 'ingeorgian' => 364,
+ 'inglagolitic' => 365,
+ 'ingothic' => 366,
+ 'ingrantha' => 367,
+ 'ingreek' => 368,
+ 'ingujarati' => 369,
+ 'ingunjalagondi' => 370,
+ 'ingurmukhi' => 371,
+ 'inhangul' => 372,
+ 'inhanifirohingya' => 373,
+ 'inhanunoo' => 374,
+ 'inhatran' => 375,
+ 'inhebrew' => 376,
+ 'inhiragana' => 377,
+ 'inidc' => 378,
+ 'inimperialaramaic' => 379,
+ 'ininscriptionalpahlavi' => 380,
+ 'ininscriptionalparthian' => 381,
+ 'injavanese' => 382,
+ 'inkaithi' => 383,
+ 'inkannada' => 384,
+ 'inkatakana' => 385,
+ 'inkawi' => 386,
+ 'inkharoshthi' => 387,
+ 'inkhitansmallscript' => 388,
+ 'inkhmer' => 389,
+ 'inkhojki' => 390,
+ 'inkhudawadi' => 391,
+ 'inlao' => 392,
+ 'inlepcha' => 393,
+ 'inlimbu' => 394,
+ 'inlineara' => 395,
+ 'inlisu' => 396,
+ 'inlycian' => 397,
+ 'inlydian' => 398,
+ 'inmahajani' => 399,
+ 'inmakasar' => 400,
+ 'inmalayalam' => 401,
+ 'inmandaic' => 402,
+ 'inmanichaean' => 403,
+ 'inmarchen' => 404,
+ 'inmasaramgondi' => 405,
+ 'inmedefaidrin' => 406,
+ 'inmeeteimayek' => 407,
+ 'inmendekikakui' => 408,
+ 'inmeroiticcursive' => 409,
+ 'inmiao' => 410,
+ 'inmodi' => 411,
+ 'inmongolian' => 412,
+ 'inmro' => 413,
+ 'inmultani' => 414,
+ 'inmyanmar' => 415,
+ 'innabataean' => 416,
+ 'innagmundari' => 417,
+ 'innandinagari' => 418,
+ 'innewa' => 419,
+ 'innewtailue' => 420,
+ 'innko' => 421,
+ 'innushu' => 422,
+ 'innyiakengpuachuehmong' => 423,
+ 'inogham' => 424,
+ 'inoldhungarian' => 425,
+ 'inolditalic' => 426,
+ 'inoldpermic' => 427,
+ 'inoldpersian' => 428,
+ 'inoldsogdian' => 429,
+ 'inoldturkic' => 430,
+ 'inolduyghur' => 431,
+ 'inoriya' => 432,
+ 'inosage' => 433,
+ 'inosmanya' => 434,
+ 'inpahawhhmong' => 435,
+ 'inpaucinhau' => 436,
+ 'inpc=bottom' => 437,
+ 'inpc=bottomandleft' => 438,
+ 'inpc=bottomandright' => 439,
+ 'inpc=left' => 440,
+ 'inpc=leftandright' => 441,
+ 'inpc=na' => 442,
+ 'inpc=overstruck' => 443,
+ 'inpc=right' => 444,
+ 'inpc=top' => 445,
+ 'inpc=topandbottom' => 446,
+ 'inpc=topandbottomandleft' => 447,
+ 'inpc=topandbottomandright' => 448,
+ 'inpc=topandleft' => 449,
+ 'inpc=topandleftandright' => 450,
+ 'inpc=topandright' => 451,
+ 'inphagspa' => 452,
+ 'inphoenician' => 453,
+ 'inpsalterpahlavi' => 454,
+ 'inpunctuation' => 455,
+ 'inrejang' => 456,
+ 'inrunic' => 457,
+ 'insamaritan' => 458,
+ 'insaurashtra' => 459,
+ 'insc=avagraha' => 460,
+ 'insc=bindu' => 461,
+ 'insc=brahmijoiningnumber' => 462,
+ 'insc=cantillationmark' => 463,
+ 'insc=consonant' => 464,
+ 'insc=consonantdead' => 465,
+ 'insc=consonantfinal' => 466,
+ 'insc=consonantheadletter' => 467,
+ 'insc=consonantinitialpostfixed' => 468,
+ 'insc=consonantkiller' => 469,
+ 'insc=consonantmedial' => 470,
+ 'insc=consonantplaceholder' => 471,
+ 'insc=consonantprecedingrepha' => 472,
+ 'insc=consonantprefixed' => 473,
+ 'insc=consonantsubjoined' => 474,
+ 'insc=consonantsucceedingrepha' => 475,
+ 'insc=consonantwithstacker' => 476,
+ 'insc=geminationmark' => 477,
+ 'insc=invisiblestacker' => 478,
+ 'insc=modifyingletter' => 479,
+ 'insc=nonjoiner' => 480,
+ 'insc=nukta' => 481,
+ 'insc=number' => 482,
+ 'insc=numberjoiner' => 483,
+ 'insc=other' => 484,
+ 'insc=purekiller' => 485,
+ 'insc=registershifter' => 486,
+ 'insc=syllablemodifier' => 487,
+ 'insc=toneletter' => 488,
+ 'insc=tonemark' => 489,
+ 'insc=virama' => 490,
+ 'insc=visarga' => 491,
+ 'insc=vowel' => 492,
+ 'insc=voweldependent' => 493,
+ 'insc=vowelindependent' => 494,
+ 'insiddham' => 495,
+ 'insinhala' => 496,
+ 'insogdian' => 497,
+ 'insorasompeng' => 498,
+ 'insoyombo' => 499,
+ 'insundanese' => 500,
+ 'insylotinagri' => 501,
+ 'insyriac' => 502,
+ 'intagalog' => 503,
+ 'intagbanwa' => 504,
+ 'intaile' => 505,
+ 'intaitham' => 506,
+ 'intaiviet' => 507,
+ 'intakri' => 508,
+ 'intamil' => 509,
+ 'intangsa' => 510,
+ 'intangut' => 511,
+ 'intelugu' => 512,
+ 'inthaana' => 513,
+ 'inthai' => 514,
+ 'intibetan' => 515,
+ 'intifinagh' => 516,
+ 'intirhuta' => 517,
+ 'intoto' => 518,
+ 'inugaritic' => 519,
+ 'invai' => 520,
+ 'invithkuqi' => 521,
+ 'invs' => 522,
+ 'inwancho' => 523,
+ 'inwarangciti' => 524,
+ 'inyezidi' => 525,
+ 'inzanabazarsquare' => 526,
+ 'ipaext' => 553,
+ 'ital' => 554,
+ 'jamo' => 555,
+ 'jamoexta' => 556,
+ 'jamoextb' => 557,
+ 'java' => 558,
+ 'jg=africanfeh' => 559,
+ 'jg=africannoon' => 560,
+ 'jg=africanqaf' => 561,
+ 'jg=ain' => 562,
+ 'jg=alaph' => 563,
+ 'jg=alef' => 564,
+ 'jg=beh' => 565,
+ 'jg=beth' => 566,
+ 'jg=burushaskiyehbarree' => 567,
+ 'jg=dal' => 568,
+ 'jg=dalathrish' => 569,
+ 'jg=e' => 570,
+ 'jg=farsiyeh' => 571,
+ 'jg=fe' => 572,
+ 'jg=feh' => 573,
+ 'jg=finalsemkath' => 574,
+ 'jg=gaf' => 575,
+ 'jg=gamal' => 576,
+ 'jg=hah' => 577,
+ 'jg=hamzaonhehgoal' => 578,
+ 'jg=hanifirohingyakinnaya' => 579,
+ 'jg=hanifirohingyapa' => 580,
+ 'jg=he' => 581,
+ 'jg=heh' => 582,
+ 'jg=hehgoal' => 583,
+ 'jg=heth' => 584,
+ 'jg=kaf' => 585,
+ 'jg=kaph' => 586,
+ 'jg=khaph' => 587,
+ 'jg=knottedheh' => 588,
+ 'jg=lam' => 589,
+ 'jg=lamadh' => 590,
+ 'jg=malayalambha' => 591,
+ 'jg=malayalamja' => 592,
+ 'jg=malayalamlla' => 593,
+ 'jg=malayalamllla' => 594,
+ 'jg=malayalamnga' => 595,
+ 'jg=malayalamnna' => 596,
+ 'jg=malayalamnnna' => 597,
+ 'jg=malayalamnya' => 598,
+ 'jg=malayalamra' => 599,
+ 'jg=malayalamssa' => 600,
+ 'jg=malayalamtta' => 601,
+ 'jg=manichaeanaleph' => 602,
+ 'jg=manichaeanayin' => 603,
+ 'jg=manichaeanbeth' => 604,
+ 'jg=manichaeandaleth' => 605,
+ 'jg=manichaeandhamedh' => 606,
+ 'jg=manichaeanfive' => 607,
+ 'jg=manichaeangimel' => 608,
+ 'jg=manichaeanheth' => 609,
+ 'jg=manichaeanhundred' => 610,
+ 'jg=manichaeankaph' => 611,
+ 'jg=manichaeanlamedh' => 612,
+ 'jg=manichaeanmem' => 613,
+ 'jg=manichaeannun' => 614,
+ 'jg=manichaeanone' => 615,
+ 'jg=manichaeanpe' => 616,
+ 'jg=manichaeanqoph' => 617,
+ 'jg=manichaeanresh' => 618,
+ 'jg=manichaeansadhe' => 619,
+ 'jg=manichaeansamekh' => 620,
+ 'jg=manichaeantaw' => 621,
+ 'jg=manichaeanten' => 622,
+ 'jg=manichaeanteth' => 623,
+ 'jg=manichaeanthamedh' => 624,
+ 'jg=manichaeantwenty' => 625,
+ 'jg=manichaeanwaw' => 626,
+ 'jg=manichaeanyodh' => 627,
+ 'jg=manichaeanzayin' => 628,
+ 'jg=meem' => 629,
+ 'jg=mim' => 630,
+ 'jg=nojoininggroup' => 631,
+ 'jg=noon' => 632,
+ 'jg=nun' => 633,
+ 'jg=nya' => 634,
+ 'jg=pe' => 635,
+ 'jg=qaf' => 636,
+ 'jg=qaph' => 637,
+ 'jg=reh' => 638,
+ 'jg=reversedpe' => 639,
+ 'jg=rohingyayeh' => 640,
+ 'jg=sad' => 641,
+ 'jg=sadhe' => 642,
+ 'jg=seen' => 643,
+ 'jg=semkath' => 644,
+ 'jg=shin' => 645,
+ 'jg=straightwaw' => 646,
+ 'jg=swashkaf' => 647,
+ 'jg=syriacwaw' => 648,
+ 'jg=tah' => 649,
+ 'jg=taw' => 650,
+ 'jg=tehmarbuta' => 651,
+ 'jg=teth' => 652,
+ 'jg=thinyeh' => 653,
+ 'jg=verticaltail' => 654,
+ 'jg=waw' => 655,
+ 'jg=yeh' => 656,
+ 'jg=yehbarree' => 657,
+ 'jg=yehwithtail' => 658,
+ 'jg=yudh' => 659,
+ 'jg=yudhhe' => 660,
+ 'jg=zain' => 661,
+ 'jg=zhain' => 662,
+ 'joinc' => 663,
+ 'jt=c' => 664,
+ 'jt=d' => 665,
+ 'jt=l' => 666,
+ 'jt=r' => 667,
+ 'jt=t' => 668,
+ 'jt=u' => 669,
+ 'kaktoviknumerals' => 670,
+ 'kali' => 671,
+ 'kana' => 672,
+ 'kanaexta' => 673,
+ 'kanaextb' => 674,
+ 'kanasup' => 675,
+ 'kanbun' => 676,
+ 'kangxi' => 677,
+ 'katakanaext' => 678,
+ 'kawi' => 679,
+ 'khar' => 680,
+ 'khmersymbols' => 681,
+ 'khmr' => 682,
+ 'khoj' => 683,
+ 'kits' => 684,
+ 'knda' => 685,
+ 'kthi' => 686,
+ 'l' => 687,
+ 'l_' => 99,
+ 'l_amp_' => 99,
+ 'lana' => 688,
+ 'lao' => 689,
+ 'latin1' => 690,
+ 'latinexta' => 691,
+ 'latinextadditional' => 692,
+ 'latinextb' => 693,
+ 'latinextc' => 694,
+ 'latinextd' => 695,
+ 'latinexte' => 696,
+ 'latinextf' => 697,
+ 'latinextg' => 698,
+ 'latn' => 699,
+ 'lb=ai' => 700,
+ 'lb=al' => 701,
+ 'lb=b2' => 702,
+ 'lb=ba' => 703,
+ 'lb=bb' => 704,
+ 'lb=bk' => 705,
+ 'lb=cb' => 706,
+ 'lb=cj' => 707,
+ 'lb=cl' => 708,
+ 'lb=cm' => 709,
+ 'lb=cp' => 710,
+ 'lb=cr' => 711,
+ 'lb=ex' => 712,
+ 'lb=gl' => 713,
+ 'lb=h2' => 714,
+ 'lb=h3' => 715,
+ 'lb=hl' => 716,
+ 'lb=hy' => 717,
+ 'lb=id' => 718,
+ 'lb=in' => 719,
+ 'lb=is' => 720,
+ 'lb=lf' => 721,
+ 'lb=nl' => 722,
+ 'lb=ns' => 723,
+ 'lb=nu' => 724,
+ 'lb=op' => 725,
+ 'lb=po' => 726,
+ 'lb=pr' => 727,
+ 'lb=qu' => 728,
+ 'lb=sa' => 729,
+ 'lb=sg_perl_aux' => 730,
+ 'lb=sp' => 731,
+ 'lb=sy' => 732,
+ 'lb=wj' => 733,
+ 'lb=xx' => 734,
+ 'lb=zw' => 735,
+ 'lb=zwj' => 736,
+ 'lc' => 99,
+ 'lepc' => 737,
+ 'letterlikesymbols' => 738,
+ 'limb' => 739,
+ 'lina' => 740,
+ 'linb' => 741,
+ 'linearbideograms' => 742,
+ 'linearbsyllabary' => 743,
+ 'lisu' => 744,
+ 'lisusup' => 745,
+ 'll' => 749,
+ 'lm' => 746,
+ 'lo' => 747,
+ 'loe' => 748,
+ 'lower' => 1201,
+ 'lowercase' => 1201,
+ 'lowercaseletter' => 749,
+ 'lowsurrogates' => 750,
+ 'lt' => 1154,
+ 'lu' => 1163,
+ 'lyci' => 751,
+ 'lydi' => 752,
+ 'm' => 753,
+ 'mahj' => 754,
+ 'mahjong' => 755,
+ 'maka' => 756,
+ 'mand' => 757,
+ 'mani' => 758,
+ 'marc' => 759,
+ 'math' => 760,
+ 'mathalphanum' => 761,
+ 'mathoperators' => 762,
+ 'mayannumerals' => 763,
+ 'mc' => 764,
+ 'me' => 765,
+ 'medf' => 766,
+ 'meeteimayekext' => 767,
+ 'mend' => 768,
+ 'merc' => 769,
+ 'mero' => 770,
+ 'miao' => 771,
+ 'miscarrows' => 772,
+ 'miscmathsymbolsa' => 773,
+ 'miscmathsymbolsb' => 774,
+ 'miscpictographs' => 775,
+ 'miscsymbols' => 776,
+ 'misctechnical' => 777,
+ 'mlym' => 778,
+ 'mn' => 779,
+ 'modi' => 780,
+ 'modifierletters' => 781,
+ 'modifiertoneletters' => 782,
+ 'mong' => 783,
+ 'mongoliansup' => 784,
+ 'mro' => 785,
+ 'mtei' => 786,
+ 'mult' => 787,
+ 'music' => 788,
+ 'myanmarexta' => 789,
+ 'myanmarextb' => 790,
+ 'mymr' => 791,
+ 'n' => 792,
+ 'nagm' => 793,
+ 'nand' => 794,
+ 'narb' => 795,
+ 'nb' => 796,
+ 'nbat' => 797,
+ 'nd' => 1199,
+ 'newa' => 798,
+ 'nfcqc=m' => 799,
+ 'nfcqc=y' => 800,
+ 'nfdqc=y' => 801,
+ 'nfkcqc=n' => 802,
+ 'nfkcqc=y' => 803,
+ 'nfkdqc=n' => 804,
+ 'nko' => 805,
+ 'nl' => 806,
+ 'no' => 807,
+ 'nshu' => 808,
+ 'nt=di' => 809,
+ 'nt=nu' => 810,
+ 'numberforms' => 811,
+ 'nv=0' => 812,
+ 'nv=1' => 813,
+ 'nv=1/10' => 838,
+ 'nv=1/12' => 839,
+ 'nv=1/16' => 840,
+ 'nv=1/160' => 841,
+ 'nv=1/2' => 842,
+ 'nv=1/20' => 843,
+ 'nv=1/3' => 844,
+ 'nv=1/32' => 845,
+ 'nv=1/320' => 846,
+ 'nv=1/4' => 847,
+ 'nv=1/40' => 848,
+ 'nv=1/5' => 849,
+ 'nv=1/6' => 850,
+ 'nv=1/64' => 851,
+ 'nv=1/7' => 852,
+ 'nv=1/8' => 853,
+ 'nv=1/80' => 854,
+ 'nv=1/9' => 855,
+ 'nv=10' => 814,
+ 'nv=100' => 815,
+ 'nv=1000' => 816,
+ 'nv=10000' => 817,
+ 'nv=100000' => 818,
+ 'nv=1000000' => 819,
+ 'nv=10000000' => 820,
+ 'nv=100000000' => 821,
+ 'nv=10000000000' => 822,
+ 'nv=1000000000000' => 823,
+ 'nv=11' => 824,
+ 'nv=11/12' => 825,
+ 'nv=11/2' => 826,
+ 'nv=12' => 827,
+ 'nv=13' => 828,
+ 'nv=13/2' => 829,
+ 'nv=14' => 830,
+ 'nv=15' => 831,
+ 'nv=15/2' => 832,
+ 'nv=16' => 833,
+ 'nv=17' => 834,
+ 'nv=17/2' => 835,
+ 'nv=18' => 836,
+ 'nv=19' => 837,
+ 'nv=2' => 856,
+ 'nv=2/3' => 873,
+ 'nv=2/5' => 874,
+ 'nv=20' => 857,
+ 'nv=200' => 858,
+ 'nv=2000' => 859,
+ 'nv=20000' => 860,
+ 'nv=200000' => 861,
+ 'nv=20000000' => 862,
+ 'nv=21' => 863,
+ 'nv=216000' => 864,
+ 'nv=22' => 865,
+ 'nv=23' => 866,
+ 'nv=24' => 867,
+ 'nv=25' => 868,
+ 'nv=26' => 869,
+ 'nv=27' => 870,
+ 'nv=28' => 871,
+ 'nv=29' => 872,
+ 'nv=3' => 875,
+ 'nv=3/16' => 890,
+ 'nv=3/2' => 891,
+ 'nv=3/20' => 892,
+ 'nv=3/4' => 893,
+ 'nv=3/5' => 894,
+ 'nv=3/64' => 895,
+ 'nv=3/8' => 896,
+ 'nv=3/80' => 897,
+ 'nv=30' => 876,
+ 'nv=300' => 877,
+ 'nv=3000' => 878,
+ 'nv=30000' => 879,
+ 'nv=300000' => 880,
+ 'nv=31' => 881,
+ 'nv=32' => 882,
+ 'nv=33' => 883,
+ 'nv=34' => 884,
+ 'nv=35' => 885,
+ 'nv=36' => 886,
+ 'nv=37' => 887,
+ 'nv=38' => 888,
+ 'nv=39' => 889,
+ 'nv=4' => 898,
+ 'nv=4/5' => 914,
+ 'nv=40' => 899,
+ 'nv=400' => 900,
+ 'nv=4000' => 901,
+ 'nv=40000' => 902,
+ 'nv=400000' => 903,
+ 'nv=41' => 904,
+ 'nv=42' => 905,
+ 'nv=43' => 906,
+ 'nv=432000' => 907,
+ 'nv=44' => 908,
+ 'nv=45' => 909,
+ 'nv=46' => 910,
+ 'nv=47' => 911,
+ 'nv=48' => 912,
+ 'nv=49' => 913,
+ 'nv=5' => 915,
+ 'nv=5/12' => 921,
+ 'nv=5/2' => 922,
+ 'nv=5/6' => 923,
+ 'nv=5/8' => 924,
+ 'nv=50' => 916,
+ 'nv=500' => 917,
+ 'nv=5000' => 918,
+ 'nv=50000' => 919,
+ 'nv=500000' => 920,
+ 'nv=6' => 925,
+ 'nv=60' => 926,
+ 'nv=600' => 927,
+ 'nv=6000' => 928,
+ 'nv=60000' => 929,
+ 'nv=600000' => 930,
+ 'nv=7' => 931,
+ 'nv=7/12' => 937,
+ 'nv=7/2' => 938,
+ 'nv=7/8' => 939,
+ 'nv=70' => 932,
+ 'nv=700' => 933,
+ 'nv=7000' => 934,
+ 'nv=70000' => 935,
+ 'nv=700000' => 936,
+ 'nv=8' => 940,
+ 'nv=80' => 941,
+ 'nv=800' => 942,
+ 'nv=8000' => 943,
+ 'nv=80000' => 944,
+ 'nv=800000' => 945,
+ 'nv=9' => 946,
+ 'nv=9/2' => 952,
+ 'nv=90' => 947,
+ 'nv=900' => 948,
+ 'nv=9000' => 949,
+ 'nv=90000' => 950,
+ 'nv=900000' => 951,
+ 'nv=_minus_1/2' => 954,
+ 'nv=nan' => 953,
+ 'ocr' => 955,
+ 'ogam' => 956,
+ 'olck' => 957,
+ 'orkh' => 958,
+ 'ornamentaldingbats' => 959,
+ 'orya' => 960,
+ 'osge' => 961,
+ 'osma' => 962,
+ 'ottomansiyaqnumbers' => 963,
+ 'ougr' => 964,
+ 'p' => 965,
+ 'palm' => 966,
+ 'patsyn' => 967,
+ 'pauc' => 968,
+ 'pc' => 969,
+ 'pcm' => 970,
+ 'pd' => 971,
+ 'pe' => 972,
+ 'perlspace' => 994,
+ 'perlword' => 996,
+ 'perm' => 973,
+ 'pf' => 974,
+ 'phag' => 975,
+ 'phaistos' => 976,
+ 'phli' => 977,
+ 'phlp' => 978,
+ 'phnx' => 979,
+ 'phoneticext' => 980,
+ 'phoneticextsup' => 981,
+ 'pi' => 982,
+ 'playingcards' => 983,
+ 'po' => 984,
+ 'posixalnum' => 985,
+ 'posixalpha' => 986,
+ 'posixblank' => 987,
+ 'posixcntrl' => 988,
+ 'posixdigit' => 989,
+ 'posixgraph' => 990,
+ 'posixlower' => 991,
+ 'posixprint' => 992,
+ 'posixpunct' => 993,
+ 'posixspace' => 994,
+ 'posixupper' => 995,
+ 'posixword' => 996,
+ 'posixxdigit' => 997,
+ 'print' => 1202,
+ 'prti' => 998,
+ 'ps' => 999,
+ 'pua' => 1000,
+ 'qaai' => 1001,
+ 'qmark' => 1002,
+ 'radical' => 1003,
+ 'ri' => 1004,
+ 'rjng' => 1005,
+ 'rohg' => 1006,
+ 'rumi' => 1007,
+ 'runr' => 1008,
+ 's' => 1009,
+ 'samr' => 1010,
+ 'sarb' => 1011,
+ 'saur' => 1012,
+ 'sb=at' => 1013,
+ 'sb=cl' => 1014,
+ 'sb=ex' => 1015,
+ 'sb=fo' => 1016,
+ 'sb=le' => 1017,
+ 'sb=lo' => 1018,
+ 'sb=nu' => 1019,
+ 'sb=sc' => 1020,
+ 'sb=se' => 1021,
+ 'sb=sp' => 1022,
+ 'sb=st' => 1023,
+ 'sb=up' => 1024,
+ 'sb=xx' => 1025,
+ 'sc' => 1026,
+ 'sc=adlm' => 1027,
+ 'sc=arab' => 1028,
+ 'sc=beng' => 1029,
+ 'sc=bopo' => 1030,
+ 'sc=bugi' => 1031,
+ 'sc=buhd' => 1032,
+ 'sc=cakm' => 1033,
+ 'sc=copt' => 1034,
+ 'sc=cpmn' => 1035,
+ 'sc=cprt' => 1036,
+ 'sc=cyrl' => 1037,
+ 'sc=deva' => 1038,
+ 'sc=dogr' => 1039,
+ 'sc=dupl' => 1040,
+ 'sc=geor' => 1041,
+ 'sc=glag' => 1042,
+ 'sc=gong' => 1043,
+ 'sc=gonm' => 1044,
+ 'sc=gran' => 1045,
+ 'sc=grek' => 1046,
+ 'sc=gujr' => 1047,
+ 'sc=guru' => 1048,
+ 'sc=han' => 1049,
+ 'sc=hang' => 1050,
+ 'sc=hano' => 1051,
+ 'sc=hira' => 1052,
+ 'sc=java' => 1053,
+ 'sc=kali' => 1054,
+ 'sc=kana' => 1055,
+ 'sc=khoj' => 1056,
+ 'sc=knda' => 1057,
+ 'sc=kthi' => 1058,
+ 'sc=latn' => 1059,
+ 'sc=limb' => 1060,
+ 'sc=lina' => 1061,
+ 'sc=linb' => 1062,
+ 'sc=mahj' => 1063,
+ 'sc=mand' => 1064,
+ 'sc=mani' => 1065,
+ 'sc=mlym' => 1066,
+ 'sc=modi' => 1067,
+ 'sc=mong' => 1068,
+ 'sc=mult' => 1069,
+ 'sc=mymr' => 1070,
+ 'sc=nand' => 1071,
+ 'sc=nko' => 1072,
+ 'sc=orya' => 1073,
+ 'sc=ougr' => 1074,
+ 'sc=perm' => 1075,
+ 'sc=phag' => 1076,
+ 'sc=phlp' => 1077,
+ 'sc=qaai' => 1078,
+ 'sc=rohg' => 1079,
+ 'sc=shrd' => 1080,
+ 'sc=sind' => 1081,
+ 'sc=sinh' => 1082,
+ 'sc=sogd' => 1083,
+ 'sc=sylo' => 1084,
+ 'sc=syrc' => 1085,
+ 'sc=tagb' => 1086,
+ 'sc=takr' => 1087,
+ 'sc=tale' => 1088,
+ 'sc=taml' => 1089,
+ 'sc=telu' => 1090,
+ 'sc=tglg' => 1091,
+ 'sc=thaa' => 1092,
+ 'sc=tirh' => 1093,
+ 'sc=yezi' => 1094,
+ 'sc=yi' => 1095,
+ 'sc=zyyy' => 1096,
+ 'sd' => 1097,
+ 'sgnw' => 1098,
+ 'shaw' => 1099,
+ 'shorthandformatcontrols' => 1100,
+ 'shrd' => 1101,
+ 'sidd' => 1102,
+ 'sind' => 1103,
+ 'sinh' => 1104,
+ 'sinhalaarchaicnumbers' => 1105,
+ 'sk' => 1106,
+ 'sm' => 1107,
+ 'smallforms' => 1108,
+ 'smallkanaext' => 1109,
+ 'so' => 1110,
+ 'sogd' => 1111,
+ 'sogo' => 1112,
+ 'sora' => 1113,
+ 'soyo' => 1114,
+ 'space' => 1204,
+ 'spaceperl' => 1204,
+ 'specials' => 1115,
+ 'sterm' => 1116,
+ 'sund' => 1117,
+ 'sundanesesup' => 1118,
+ 'suparrowsa' => 1119,
+ 'suparrowsb' => 1120,
+ 'suparrowsc' => 1121,
+ 'superandsub' => 1122,
+ 'supmathoperators' => 1123,
+ 'suppuaa' => 1124,
+ 'suppuab' => 1125,
+ 'suppunctuation' => 1126,
+ 'supsymbolsandpictographs' => 1127,
+ 'suttonsignwriting' => 1128,
+ 'sylo' => 1129,
+ 'symbolsandpictographsexta' => 1130,
+ 'symbolsforlegacycomputing' => 1131,
+ 'syrc' => 1132,
+ 'syriacsup' => 1133,
+ 'tagb' => 1134,
+ 'tags' => 1135,
+ 'taixuanjing' => 1136,
+ 'takr' => 1137,
+ 'tale' => 1138,
+ 'talu' => 1139,
+ 'tamilsup' => 1140,
+ 'taml' => 1141,
+ 'tang' => 1142,
+ 'tangutcomponents' => 1143,
+ 'tangutsup' => 1144,
+ 'tavt' => 1145,
+ 'telu' => 1146,
+ 'term' => 1147,
+ 'tfng' => 1148,
+ 'tglg' => 1149,
+ 'thaa' => 1150,
+ 'thai' => 1151,
+ 'tibt' => 1152,
+ 'tirh' => 1153,
+ 'title' => 1154,
+ 'titlecase' => 1154,
+ 'titlecaseletter' => 1154,
+ 'tnsa' => 1155,
+ 'toto' => 1156,
+ 'transportandmap' => 1157,
+ 'ucas' => 1158,
+ 'ucasext' => 1159,
+ 'ucasexta' => 1160,
+ 'ugar' => 1161,
+ 'uideo' => 1162,
+ 'upper' => 1205,
+ 'uppercase' => 1205,
+ 'uppercaseletter' => 1163,
+ 'vai' => 1164,
+ 'vedicext' => 1165,
+ 'verticalforms' => 1166,
+ 'vertspace' => 1167,
+ 'vith' => 1168,
+ 'vo=r' => 1169,
+ 'vo=tr' => 1170,
+ 'vo=tu' => 1171,
+ 'vo=u' => 1172,
+ 'vs' => 1173,
+ 'vssup' => 1174,
+ 'wara' => 1175,
+ 'wb=dq' => 1176,
+ 'wb=eb' => 1177,
+ 'wb=ex' => 1178,
+ 'wb=extend' => 1179,
+ 'wb=fo' => 1180,
+ 'wb=ka' => 1181,
+ 'wb=le' => 1182,
+ 'wb=mb' => 1183,
+ 'wb=ml' => 1184,
+ 'wb=mn' => 1185,
+ 'wb=nl' => 1186,
+ 'wb=nu' => 1187,
+ 'wb=sq' => 1188,
+ 'wb=wsegspace' => 1189,
+ 'wb=xx' => 1190,
+ 'wcho' => 1191,
+ 'whitespace' => 1204,
+ 'word' => 1206,
+ 'wspace' => 1204,
+ 'xdigit' => 1207,
+ 'xidc' => 1192,
+ 'xids' => 1193,
+ 'xpeo' => 1194,
+ 'xperlspace' => 1204,
+ 'xposixalnum' => 1195,
+ 'xposixalpha' => 1196,
+ 'xposixblank' => 1197,
+ 'xposixcntrl' => 1198,
+ 'xposixdigit' => 1199,
+ 'xposixgraph' => 1200,
+ 'xposixlower' => 1201,
+ 'xposixprint' => 1202,
+ 'xposixpunct' => 1203,
+ 'xposixspace' => 1204,
+ 'xposixupper' => 1205,
+ 'xposixword' => 1206,
+ 'xposixxdigit' => 1207,
+ 'xsux' => 1208,
+ 'yezi' => 1209,
+ 'yi' => 1210,
+ 'yijing' => 1211,
+ 'yiradicals' => 1212,
+ 'yisyllables' => 1213,
+ 'z' => 1214,
+ 'zanb' => 1215,
+ 'zl' => 1216,
+ 'znamennymusic' => 1217,
+ 'zp' => 1218,
+ 'zs' => 1219,
+ 'zyyy' => 1220,
+ 'zzzz' => 1221,
);
1;
# Generated from:
-# d60b1a3dffe16c4aaaf3f00d21993bb320d05e9828b106182214764d4c69935c lib/Unicode/UCD.pm
-# ce96627d4fc91b4fd886c409caeb9b76cf7bd345e12f05c6701add7f233f6437 lib/unicore/ArabicShaping.txt
-# 0e69eef3da722cc104522d8372e86d5b86bb7afcc761b0c991e39e832294946d lib/unicore/BidiBrackets.txt
-# a00d9d21585106a52113fb7b1d3d0373a5835be72e76862fb559ebddd474d70e lib/unicore/BidiMirroring.txt
-# 81a82b6a9fcf1a9c12f588d7a1decd73a9afdc4cac95b0eb7e576e7942d6c19f lib/unicore/Blocks.txt
-# 99d231d7c91688bbe8ca8ccebcc2f46b5b222f844babe4827295bae11e2abe5f lib/unicore/CaseFolding.txt
-# 38badafd818d8405324fe298c0676be0c95186368c84b5368375fd871a645144 lib/unicore/CompositionExclusions.txt
-# e779a443d3aa2a3166a15becaa2b737c922480e32c0453d5956093633555078f lib/unicore/DAge.txt
-# a5d45f59b39deaab3c72ce8c1a2e212a5e086dff11b1f9d5bb0e352642e82248 lib/unicore/DCoreProperties.txt
-# 3ac44e11c84bdaf6b207d2c2c20eed857ae17052393fc7f71b0fe951186ba906 lib/unicore/DNormalizationProps.txt
-# 4f822ec7a9ebbb3138ad29bade8b9688d25b39c7a3c0b7431f01e7229e4fcb6e lib/unicore/EastAsianWidth.txt
-# fc535aa1047a70105ab9a22c2b4c3f363a2ff02fe48ebbc5eeb9873b2752ff0b lib/unicore/EquivalentUnifiedIdeograph.txt
-# b9c5158ce944d2fec57e0e4ecb716bdabfc3bdde73525f1772fe03f61a30d473 lib/unicore/HangulSyllableType.txt
-# 36c1b2a626ff1fb23b8b21e6ea8712698f8ce668dded1cb48b8ddf6a6a1b04e9 lib/unicore/IdStatus.txt
-# 4857c4ffa3898e6128b2d46b0a02e499a663fb91464a69ef3611096f01293acc lib/unicore/IdType.txt
-# 69197b019fa5f2fb0d8c6ed1ed8acb9f2e8b5b8f45a947953ffa652f3bf54983 lib/unicore/IndicPositionalCategory.txt
-# 6604e2f0fde7428675364aa0006bc686b79488dcc60ae8cb29800af2be3352e8 lib/unicore/IndicSyllabicCategory.txt
-# 84ead63924aaa74b988b2eaf254a8733276ed108633ce2ef77a9ee1de7818162 lib/unicore/Jamo.txt
-# d5abcd8f54c8a2aa912924c485ccf7f968ad98feaa303d8e9a29ad89172f1faf lib/unicore/LineBreak.txt
-# 985128e8c8b2540233331d9b27d897d2c23bd5bcf1d05da960befce6efc59542 lib/unicore/NameAliases.txt
-# 27282b8aa01d4d0c44aef436cb74195ae8639ffa187aeee4e6247af76febea76 lib/unicore/NamedSequences.txt
-# 485b5a3ed25dbf1f94dfa5a9b69d8b4550ffd0c33045ccc55ccfd7c80b2a40cf lib/unicore/PropList.txt
-# 6b3902e9268cd843fe65cbdea992108c9528343ec0679f800b96f356bb553e5a lib/unicore/PropValueAliases.txt
-# 2bd5777847e3d6add3c7e5c0d1393ddcab89e5a0ac3ff498cb0c53041f0b86e4 lib/unicore/PropertyAliases.txt
-# 03a61dc89422e44cc2b73e8e893321007880ab69e2a4d281c0f1bc29c602b9d0 lib/unicore/ScriptExtensions.txt
-# 9a5ed1ec9b5f0d7147e9371ad792ab39203611af7637cff2aa4a5c663b172cde lib/unicore/Scripts.txt
-# 6424312f1dc39b22e0ff9c0ffb13dfad424d9b03e6a6dc6bca941f6bf5ef1ffd lib/unicore/SpecialCasing.txt
-# bdbffbbfc8ad4d3a6d01b5891510458f3d36f7170422af4ea2bed3211a73e8bb lib/unicore/UnicodeData.txt
-# 160f41816234addb511901d5f21febd69574578dd93de6ef8153e35693325575 lib/unicore/VerticalOrientation.txt
-# 32dfb37d21db530529a6ec3dc13d96f21f8e7c7faf7ff3db8a9760cd76cec81d lib/unicore/auxiliary/GCBTest.txt
-# 2bd3c5e2d62701ff81fb3ec318e179a4618cabb1493b1e0dd2b4e7e56c5437c4 lib/unicore/auxiliary/GraphemeBreakProperty.txt
-# c51fbebfa82a0f36473b44bfd71d5ef6cb6a1f81fb313375dc9a1910d79bb2b6 lib/unicore/auxiliary/LBTest.txt
-# 80b0107750818d8f370bd120b6fe56b6855b60581f72affe8b60409a469b4b65 lib/unicore/auxiliary/SBTest.txt
-# 09e3166ebab166ac630a227f77f4e794ebd433271abd5588f5a67e7f199c71ee lib/unicore/auxiliary/SentenceBreakProperty.txt
-# bf5373ce28a5df06796c93dc159dd15a997bb2950c92704b40ae8190cfc3716d lib/unicore/auxiliary/WBTest.txt
-# a2b7373cf2fe3fa3b26dbb53405ca849985f771ff47f1c61743978003ff80499 lib/unicore/auxiliary/WordBreakProperty.txt
-# d2686f400a638c80775d7c662556fb8fa8dd3bbe4aa548d9d31624264c6e1bb1 lib/unicore/emoji/emoji.txt
-# b827ae5da8c2b08947cc9a120a7b7fd2f1676fb160b508df78075381635b127c lib/unicore/extracted/DBidiClass.txt
-# 6fdc5b5ef40444a8f0c772e6b67c00498d4216fe0c0fdf76744ce338f2ad3810 lib/unicore/extracted/DBinaryProperties.txt
-# e14928a5bf6ad5958a80332bd42e96e14420080a95c660e5da29384e496755d0 lib/unicore/extracted/DCombiningClass.txt
-# 579a03281fbe87b78d5d9a8523de4d255edd7e4ca6eab0e4c7729de97e9b89b1 lib/unicore/extracted/DDecompositionType.txt
-# ad83c59b257e9d480ffd3001d4ac240c5fed7cb1919453e1c4e8877035256bcd lib/unicore/extracted/DEastAsianWidth.txt
-# 4502f0969e4e6558c4b4c6ca4c23dad70b863d61dd3d5eed1a62a6c3c99fd570 lib/unicore/extracted/DGeneralCategory.txt
-# 00bb88b89e2adb646f3177f9444e2d3192386b81a5de9556104b338274b253e1 lib/unicore/extracted/DJoinGroup.txt
-# ac835b6e11a60c9820d3cf2d1cb0558dd68efb8f53f404a51632e4726690a6d7 lib/unicore/extracted/DJoinType.txt
-# baba9dfc133e3cb770a89aaf0973b1341fa61c2da6c176baf6428898b3b568d8 lib/unicore/extracted/DLineBreak.txt
-# 6d4a8c945dd7db83ed617cbb7d937de7f4ecf016ff22970d846e996a7c9a2a5d lib/unicore/extracted/DNumType.txt
-# 5b7c14380d5cceeaffcfbc18db1ed936391d2af2d51f5a41f1a17b692c77e59b lib/unicore/extracted/DNumValues.txt
-# 28076ceb3f4e2514ea9db243f4b918b9a7c2807b036237e2276b99b2659d9474 lib/unicore/mktables
-# 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version
-# 24120d5e0c9685c442c93bc1dbea9b85ef973bf8e9474baf0e55b160c288226b regen/charset_translations.pl
-# 9f74e34278592ddf58fef8c32236b294e94ea5e12627f911f4563e8040a07292 regen/mk_PL_charclass.pl
-# 5eb9e6c825496cc9aa705e3cd33bc6d5a9657dcca16d4c4acc4824ff30b34a26 regen/mk_invlists.pl
-# ex: set ro:
+# 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
+# eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+# 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+# b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+# 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+# cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+# 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+# 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+# d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+# d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+# 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+# f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+# 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+# 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+# 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+# 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+# ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+# 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+# 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+# 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+# 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+# fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+# e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+# 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+# e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+# 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+# cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+# 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+# 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+# ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+# 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+# 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+# 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+# f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+# 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+# 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+# 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+# 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+# 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+# f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+# ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+# db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+# d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+# fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+# e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+# c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+# 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+# 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+# 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+# f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+# 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
+# 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
+# c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl
+# cdbafee25193032242e77f2a6332b731d8392ce342fa616dbabc2c14c7b44eb6 regen/mk_invlists.pl
+# ex: set ro ft=perl:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/version b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/version
index 02161ca86e..94188a7483 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/version
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/version
@@ -1 +1 @@
-13.0.0
+15.0.0
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm
index 823193b8c1..c1f1680336 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm
@@ -5,7 +5,7 @@ use warnings;
our $hint_bits = 0x00800000;
-our $VERSION = '1.24';
+our $VERSION = '1.25';
our $AUTOLOAD;
sub import {
@@ -114,6 +114,8 @@ sequence in the native encoding (Latin-1 or EBCDIC) to UTF-8. The
logical character sequence itself is unchanged. If I<$string> is already
upgraded, then this is a no-op. Returns the
number of octets necessary to represent the string as UTF-8.
+Since Perl v5.38, if C<$string> is C<undef> no action is taken; prior to that,
+it would be converted to be defined and zero-length.
If your code needs to be compatible with versions of perl without
C<use feature 'unicode_strings';>, you can force Unicode semantics on
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm
index 5531d76428..3b9786c184 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm
@@ -8,7 +8,7 @@ if ($] >= 5.015) {
warnings::register_categories(qw/version/);
}
-our $VERSION = 0.9928;
+our $VERSION = 0.9929;
our $CLASS = 'version';
our (@ISA, $STRICT, $LAX);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/version/regex.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/version/regex.pm
index 3b221beba0..caaebe687c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/version/regex.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/version/regex.pm
@@ -2,7 +2,7 @@ package version::regex;
use strict;
-our $VERSION = 0.9928;
+our $VERSION = 0.9929;
#--------------------------------------------------------------------------#
# Version regexp components
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm
index a92d4904c2..f2d47ac0d8 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm
@@ -1,11 +1,11 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is built by regen/warnings.pl.
# Any changes made here will be lost!
package warnings;
-our $VERSION = "1.51";
+our $VERSION = "1.65";
# Verify that we're called correctly so that warnings will work.
# Can't use Carp, since Carp uses us!
@@ -68,213 +68,253 @@ our %Offsets = (
'imprecision' => 92,
'illegalproto' => 94,
+ # Warnings Categories added in Perl 5.011003
+ 'deprecated::goto_construct' => 96,
+ 'deprecated::unicode_property_name' => 98,
+
# Warnings Categories added in Perl 5.013
- 'non_unicode' => 96,
- 'nonchar' => 98,
- 'surrogate' => 100,
+ 'non_unicode' => 100,
+ 'nonchar' => 102,
+ 'surrogate' => 104,
# Warnings Categories added in Perl 5.017
- 'experimental' => 102,
- 'experimental::lexical_subs' => 104,
- 'experimental::regex_sets' => 106,
- 'experimental::smartmatch' => 108,
+ 'experimental' => 106,
+ 'experimental::regex_sets' => 108,
# Warnings Categories added in Perl 5.019
- 'experimental::postderef' => 110,
- 'experimental::signatures' => 112,
- 'syscalls' => 114,
+ 'syscalls' => 110,
# Warnings Categories added in Perl 5.021
- 'experimental::bitwise' => 116,
- 'experimental::const_attr' => 118,
- 'experimental::re_strict' => 120,
- 'experimental::refaliasing' => 122,
- 'experimental::win32_perlio' => 124,
- 'locale' => 126,
- 'missing' => 128,
- 'redundant' => 130,
+ 'experimental::const_attr' => 112,
+ 'experimental::re_strict' => 114,
+ 'experimental::refaliasing' => 116,
+ 'locale' => 118,
+ 'missing' => 120,
+ 'redundant' => 122,
# Warnings Categories added in Perl 5.025
- 'experimental::declared_refs' => 132,
+ 'experimental::declared_refs' => 124,
+
+ # Warnings Categories added in Perl 5.025011
+ 'deprecated::dot_in_inc' => 126,
# Warnings Categories added in Perl 5.027
- 'experimental::alpha_assertions' => 134,
- 'experimental::script_run' => 136,
- 'shadow' => 138,
+ 'shadow' => 128,
# Warnings Categories added in Perl 5.029
- 'experimental::private_use' => 140,
- 'experimental::uniprop_wildcards' => 142,
- 'experimental::vlb' => 144,
-
- # Warnings Categories added in Perl 5.031
- 'experimental::isa' => 146,
+ 'experimental::private_use' => 130,
+ 'experimental::uniprop_wildcards' => 132,
+ 'experimental::vlb' => 134,
# Warnings Categories added in Perl 5.033
- 'experimental::try' => 148,
+ 'experimental::try' => 136,
+
+ # Warnings Categories added in Perl 5.035
+ 'experimental::args_array_with_signatures'=> 138,
+ 'experimental::builtin' => 140,
+ 'experimental::defer' => 142,
+ 'experimental::extra_paired_delimiters'=> 144,
+ 'experimental::for_list' => 146,
+ 'scalar' => 148,
+
+ # Warnings Categories added in Perl 5.035009
+ 'deprecated::version_downgrade' => 150,
+
+ # Warnings Categories added in Perl 5.03501
+ 'deprecated::delimiter_will_be_paired'=> 152,
+
+ # Warnings Categories added in Perl 5.037
+ 'experimental::class' => 154,
+
+ # Warnings Categories added in Perl 5.037009
+ 'deprecated::apostrophe_as_package_separator'=> 156,
+
+ # Warnings Categories added in Perl 5.03701
+ 'deprecated::smartmatch' => 158,
);
our %Bits = (
- 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..75]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\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\x00\x00", # [30]
- 'closed' => "\x00\x10\x00\x00\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\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\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\x00\x00", # [2]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\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\x00\x00", # [7]
- 'exiting' => "\x40\x00\x00\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\x51\x15\x50\x51\x15", # [51..56,58..62,66..68,70..74]
- 'experimental::alpha_assertions' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [67]
- 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [58]
- 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [59]
- 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [66]
- 'experimental::isa' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [73]
- 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [52]
- 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [55]
- 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [70]
- 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [60]
- 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [61]
- 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [53]
- 'experimental::script_run' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [68]
- 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [56]
- 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [54]
- 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [74]
- 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [71]
- 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [72]
- 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [62]
- 'glob' => "\x00\x01\x00\x00\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\x00\x00", # [47]
- 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [46]
- 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\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\x00\x00", # [24]
- 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [5..11,57]
- 'layer' => "\x00\x00\x01\x00\x00\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\x40\x00\x00\x00", # [63]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\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\x00\x00", # [12]
- 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [64]
- 'newline' => "\x00\x00\x04\x00\x00\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\x00\x00", # [48]
- 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [49]
- 'numeric' => "\x00\x00\x00\x04\x00\x00\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\x00\x00", # [14]
- 'overflow' => "\x00\x00\x00\x40\x00\x00\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\x00\x00", # [16]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\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\x00\x00", # [10]
- 'portable' => "\x00\x00\x00\x00\x04\x00\x00\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\x00\x00", # [33]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\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\x00\x00", # [35]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\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\x00\x00", # [18]
- 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\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\x04\x00\x00", # [65]
- 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\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\x00\x00", # [37]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\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\x00\x00", # [21..25]
- 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [69]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\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\x00\x00", # [27]
- 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [50]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [28..38,47]
- 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [57]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\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\x00\x00", # [40]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\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\x00\x00", # [11]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\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\x00\x00", # [43]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\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\x00\x00", # [45]
+ 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..79]
+ 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\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\x00\x00\x00", # [30]
+ 'closed' => "\x00\x10\x00\x00\x00\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\x00\x00\x00", # [1]
+ 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\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\x05\x00\x00\x40\x00\x00\x40\x51", # [2,48,49,63,75,76,78,79]
+ 'deprecated::apostrophe_as_package_separator'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [78]
+ 'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [76]
+ 'deprecated::dot_in_inc' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [63]
+ 'deprecated::goto_construct' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [48]
+ 'deprecated::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [79]
+ 'deprecated::unicode_property_name' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [49]
+ 'deprecated::version_downgrade' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [75]
+ 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\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\x00\x00\x00", # [7]
+ 'exiting' => "\x40\x00\x00\x00\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\x00\x14\x15\x10\x54\x55\x05\x04", # [53,54,56..58,62,65..73,77]
+ 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [69]
+ 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [70]
+ 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [77]
+ 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [56]
+ 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [62]
+ 'experimental::defer' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [71]
+ 'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [72]
+ 'experimental::for_list' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [73]
+ 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [65]
+ 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [57]
+ 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [58]
+ 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [54]
+ 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [68]
+ 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [66]
+ 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [67]
+ 'glob' => "\x00\x01\x00\x00\x00\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\x00\x00\x00", # [47]
+ 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [46]
+ 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\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\x00\x00\x00", # [24]
+ 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [5..11,55]
+ 'layer' => "\x00\x00\x01\x00\x00\x00\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\x40\x00\x00\x00\x00\x00", # [59]
+ 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\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\x00\x00\x00", # [12]
+ 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [60]
+ 'newline' => "\x00\x00\x04\x00\x00\x00\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\x10\x00\x00\x00\x00\x00\x00\x00", # [50]
+ 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [51]
+ 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\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\x00\x00\x00", # [14]
+ 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\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\x00\x00\x00", # [16]
+ 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\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\x00\x00\x00", # [10]
+ 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\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\x00\x00\x00", # [33]
+ 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\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\x00\x00\x00", # [35]
+ 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\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\x00\x00\x00", # [18]
+ 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\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\x04\x00\x00\x00\x00", # [61]
+ 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\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\x00\x00\x00", # [37]
+ 'scalar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [74]
+ 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\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\x00\x00\x00", # [21..25]
+ 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [64]
+ 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\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\x00\x00\x00", # [27]
+ 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [52]
+ 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47]
+ 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [55]
+ 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\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\x00\x00\x00", # [40]
+ 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\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\x00\x00\x00", # [11]
+ 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\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\x00\x00\x00", # [43]
+ 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x50\x01\x00\x00\x00\x00\x00\x00", # [44,50..52]
+ 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\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\xaa\xaa", # [0..75]
- 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\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\x00\x00", # [30]
- 'closed' => "\x00\x20\x00\x00\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\x00\x00", # [1]
- 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\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\x00\x00", # [2]
- 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\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\x00\x00", # [7]
- 'exiting' => "\x80\x00\x00\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\xa2\x2a\xa0\xa2\x2a", # [51..56,58..62,66..68,70..74]
- 'experimental::alpha_assertions' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [67]
- 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [58]
- 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [59]
- 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [66]
- 'experimental::isa' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [73]
- 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [52]
- 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [55]
- 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [70]
- 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [60]
- 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [61]
- 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [53]
- 'experimental::script_run' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [68]
- 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [56]
- 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [54]
- 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [74]
- 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [71]
- 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [72]
- 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [62]
- 'glob' => "\x00\x02\x00\x00\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\x00\x00", # [47]
- 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [46]
- 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\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\x00\x00", # [24]
- 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [5..11,57]
- 'layer' => "\x00\x00\x02\x00\x00\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\x80\x00\x00\x00", # [63]
- 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\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\x00\x00", # [12]
- 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [64]
- 'newline' => "\x00\x00\x08\x00\x00\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\x00\x00", # [48]
- 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [49]
- 'numeric' => "\x00\x00\x00\x08\x00\x00\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\x00\x00", # [14]
- 'overflow' => "\x00\x00\x00\x80\x00\x00\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\x00\x00", # [16]
- 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\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\x00\x00", # [10]
- 'portable' => "\x00\x00\x00\x00\x08\x00\x00\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\x00\x00", # [33]
- 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\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\x00\x00", # [35]
- 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\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\x00\x00", # [18]
- 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\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\x08\x00\x00", # [65]
- 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\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\x00\x00", # [37]
- 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\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\x00\x00", # [21..25]
- 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [69]
- 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\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\x00\x00", # [27]
- 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [50]
- 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [28..38,47]
- 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [57]
- 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\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\x00\x00", # [40]
- 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\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\x00\x00", # [11]
- 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\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\x00\x00", # [43]
- 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\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\x00\x00", # [45]
+ 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..79]
+ 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\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\x00\x00\x00", # [30]
+ 'closed' => "\x00\x20\x00\x00\x00\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\x00\x00\x00", # [1]
+ 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\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\x0a\x00\x00\x80\x00\x00\x80\xa2", # [2,48,49,63,75,76,78,79]
+ 'deprecated::apostrophe_as_package_separator'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [78]
+ 'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [76]
+ 'deprecated::dot_in_inc' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [63]
+ 'deprecated::goto_construct' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [48]
+ 'deprecated::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [79]
+ 'deprecated::unicode_property_name' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [49]
+ 'deprecated::version_downgrade' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [75]
+ 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\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\x00\x00\x00", # [7]
+ 'exiting' => "\x80\x00\x00\x00\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\x00\x28\x2a\x20\xa8\xaa\x0a\x08", # [53,54,56..58,62,65..73,77]
+ 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [69]
+ 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [70]
+ 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [77]
+ 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [56]
+ 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [62]
+ 'experimental::defer' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [71]
+ 'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [72]
+ 'experimental::for_list' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [73]
+ 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [65]
+ 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [57]
+ 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [58]
+ 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [54]
+ 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [68]
+ 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [66]
+ 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [67]
+ 'glob' => "\x00\x02\x00\x00\x00\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\x00\x00\x00", # [47]
+ 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [46]
+ 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\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\x00\x00\x00", # [24]
+ 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [5..11,55]
+ 'layer' => "\x00\x00\x02\x00\x00\x00\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\x80\x00\x00\x00\x00\x00", # [59]
+ 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\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\x00\x00\x00", # [12]
+ 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [60]
+ 'newline' => "\x00\x00\x08\x00\x00\x00\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\x20\x00\x00\x00\x00\x00\x00\x00", # [50]
+ 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [51]
+ 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\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\x00\x00\x00", # [14]
+ 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\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\x00\x00\x00", # [16]
+ 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\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\x00\x00\x00", # [10]
+ 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\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\x00\x00\x00", # [33]
+ 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\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\x00\x00\x00", # [35]
+ 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\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\x00\x00\x00", # [18]
+ 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\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\x08\x00\x00\x00\x00", # [61]
+ 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\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\x00\x00\x00", # [37]
+ 'scalar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [74]
+ 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\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\x00\x00\x00", # [21..25]
+ 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [64]
+ 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\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\x00\x00\x00", # [27]
+ 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [52]
+ 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47]
+ 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [55]
+ 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\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\x00\x00\x00", # [40]
+ 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\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\x00\x00\x00", # [11]
+ 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\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\x00\x00\x00", # [43]
+ 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xa0\x02\x00\x00\x00\x00\x00\x00", # [44,50..52]
+ 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [45]
+);
+
+our %NoOp = (
+ 'experimental::alpha_assertions' => 1,
+ 'experimental::bitwise' => 1,
+ 'experimental::isa' => 1,
+ 'experimental::lexical_subs' => 1,
+ 'experimental::postderef' => 1,
+ 'experimental::script_run' => 1,
+ 'experimental::signatures' => 1,
+ 'experimental::smartmatch' => 1,
);
# 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\0\0";
-our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x51\x55\x50\x51\x15"; # [2,4,22,23,25,52..56,58..63,66..68,70..74]
-our $LAST_BIT = 150 ;
-our $BYTES = 19 ;
+our $NONE = "\0\0\0\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\x05\x00\x55\x50\x54\x55\x45\x55"; # [2,4,22,23,25,48,49,56..59,62,63,65..73,75..79]
+our $LAST_BIT = 160 ;
+our $BYTES = 20 ;
sub Croaker
{
@@ -311,6 +351,7 @@ sub _bits {
$mask = _expand_bits($mask);
foreach my $word ( @_ ) {
+ next if $NoOp{$word};
if ($word eq 'FATAL') {
$fatal = 1;
$no_fatal = 0;
@@ -372,6 +413,7 @@ sub unimport
$mask = _expand_bits($mask);
foreach my $word ( @_ ) {
+ next if $NoOp{$word};
if ($word eq 'FATAL') {
next;
}
@@ -432,7 +474,7 @@ sub __chk
unless defined $offset;
}
else {
- $category = (caller(1))[0] ;
+ $category = caller(1);
$offset = $Offsets{$category};
Croaker("package '$category' not registered for warnings")
unless defined $offset ;
@@ -583,6 +625,9 @@ warnings - Perl pragma to control optional warnings
use warnings;
no warnings;
+ # Standard warnings are enabled by use v5.35 or above
+ use v5.35;
+
use warnings "all";
no warnings "uninitialized";
@@ -648,6 +693,9 @@ block has them disabled. In this case that means the assignment to the
scalar C<$z> will trip the C<"Scalar value @x[0] better written as $x[0]">
warning, but the assignment to the scalar C<$y> will not.
+All warnings are enabled automatically within the scope of
+a C<L<use v5.35|perlfunc/use VERSION>> (or higher) declaration.
+
=head2 Default Warnings and Optional Warnings
Before the introduction of lexical warnings, Perl had two classes of
@@ -709,6 +757,13 @@ which is equivalent to:
no warnings 'experimental';
use warnings 'experimental::somefeature';
+As experimental features become regular features of Perl,
+the corresponding warnings are not printed anymore.
+They also stop being listed in the L</Category Hierarchy> below.
+
+It is still possible to request turning on or off these warnings,
+but doing so has no effect.
+
=head2 What's wrong with B<-w> and C<$^W>
Although very useful, the big problem with using B<-w> on the command
@@ -859,25 +914,41 @@ The current hierarchy is:
|
+- closure
|
- +- deprecated
+ +- deprecated ----+
+ | |
+ | +- deprecated::apostrophe_as_package_separator
+ | |
+ | +- deprecated::delimiter_will_be_paired
+ | |
+ | +- deprecated::dot_in_inc
+ | |
+ | +- deprecated::goto_construct
+ | |
+ | +- deprecated::smartmatch
+ | |
+ | +- deprecated::unicode_property_name
+ | |
+ | +- deprecated::version_downgrade
|
+- exiting
|
+- experimental --+
| |
- | +- experimental::alpha_assertions
+ | +- experimental::args_array_with_signatures
+ | |
+ | +- experimental::builtin
| |
- | +- experimental::bitwise
+ | +- experimental::class
| |
| +- experimental::const_attr
| |
| +- experimental::declared_refs
| |
- | +- experimental::isa
+ | +- experimental::defer
| |
- | +- experimental::lexical_subs
+ | +- experimental::extra_paired_delimiters
| |
- | +- experimental::postderef
+ | +- experimental::for_list
| |
| +- experimental::private_use
| |
@@ -887,19 +958,11 @@ The current hierarchy is:
| |
| +- experimental::regex_sets
| |
- | +- experimental::script_run
- | |
- | +- experimental::signatures
- | |
- | +- experimental::smartmatch
- | |
| +- experimental::try
| |
| +- experimental::uniprop_wildcards
| |
| +- experimental::vlb
- | |
- | +- experimental::win32_perlio
|
+- glob
|
@@ -945,6 +1008,8 @@ The current hierarchy is:
|
+- regexp
|
+ +- scalar
+ |
+- severe --------+
| |
| +- debugging
@@ -1128,7 +1193,7 @@ use:
use warnings 'FATAL'; # short form of "use warnings FATAL => 'all';"
However, you should still heed the guidance earlier in this section against
-using C<use warnings FATAL => 'all';>.
+using C<< use warnings FATAL => 'all'; >>.
If you want your program to be compatible with versions of Perl before
5.20, you must use C<< use warnings FATAL => 'all'; >> instead. (In
@@ -1427,4 +1492,4 @@ See also L<perlmodlib/Pragmatic Modules> and L<perldiag>.
=cut
-# ex: set ro:
+# ex: set ro ft=perl:
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings/register.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings/register.pm
index 0adf104af7..8bcb7a233e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings/register.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/warnings/register.pm
@@ -1,6 +1,5 @@
-package warnings::register;
+package warnings::register 1.05;
-our $VERSION = '1.04';
require warnings;
# left here as cruft in case other users were using this undocumented routine
@@ -19,7 +18,7 @@ sub import
shift;
my @categories = @_;
- my $package = (caller(0))[0];
+ my $package = caller;
warnings::register_categories($package);
warnings::register_categories($package . "::$_") for @categories;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove.pm
new file mode 100755
index 0000000000..a7230ddea7
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove.pm
@@ -0,0 +1,817 @@
+package App::Prove;
+
+use strict;
+use warnings;
+
+use TAP::Harness::Env;
+use Text::ParseWords qw(shellwords);
+use File::Spec;
+use Getopt::Long;
+use App::Prove::State;
+use Carp;
+
+use base 'TAP::Object';
+
+=head1 NAME
+
+App::Prove - Implements the C<prove> command.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+L<Test::Harness> provides a command, C<prove>, which runs a TAP based
+test suite and prints a report. The C<prove> command is a minimal
+wrapper around an instance of this module.
+
+=head1 SYNOPSIS
+
+ use App::Prove;
+
+ my $app = App::Prove->new;
+ $app->process_args(@ARGV);
+ $app->run;
+
+=cut
+
+use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
+use constant IS_VMS => $^O eq 'VMS';
+use constant IS_UNIXY => !( IS_VMS || IS_WIN32 );
+
+use constant STATE_FILE => IS_UNIXY ? '.prove' : '_prove';
+use constant RC_FILE => IS_UNIXY ? '.proverc' : '_proverc';
+
+use constant PLUGINS => 'App::Prove::Plugin';
+
+my @ATTR;
+
+BEGIN {
+ @ATTR = qw(
+ archive argv blib show_count color directives exec failures comments
+ formatter harness includes modules plugins jobs lib merge parse quiet
+ really_quiet recurse backwards shuffle taint_fail taint_warn timer
+ verbose warnings_fail warnings_warn show_help show_man show_version
+ state_class test_args state dry extensions ignore_exit rules state_manager
+ normalize sources tapversion trap
+ statefile
+ );
+ __PACKAGE__->mk_methods(@ATTR);
+}
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Create a new C<App::Prove>. Optionally a hash ref of attribute
+initializers may be passed.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my $self = shift;
+ my $args = shift || {};
+
+ my @is_array = qw(
+ argv rc_opts includes modules state plugins rules sources
+ );
+
+ # setup defaults:
+ for my $key (@is_array) {
+ $self->{$key} = [];
+ }
+
+ for my $attr (@ATTR) {
+ if ( exists $args->{$attr} ) {
+
+ # TODO: Some validation here
+ $self->{$attr} = $args->{$attr};
+ }
+ }
+
+ $self->state_class('App::Prove::State');
+ return $self;
+}
+
+=head3 C<state_class>
+
+Getter/setter for the name of the class used for maintaining state. This
+class should either subclass from C<App::Prove::State> or provide an identical
+interface.
+
+=head3 C<state_manager>
+
+Getter/setter for the instance of the C<state_class>.
+
+=cut
+
+=head3 C<add_rc_file>
+
+ $prove->add_rc_file('myproj/.proverc');
+
+Called before C<process_args> to prepend the contents of an rc file to
+the options.
+
+=cut
+
+sub add_rc_file {
+ my ( $self, $rc_file ) = @_;
+
+ local *RC;
+ open RC, "<$rc_file" or croak "Can't read $rc_file ($!)";
+ while ( defined( my $line = <RC> ) ) {
+ push @{ $self->{rc_opts} },
+ grep { defined and not /^#/ }
+ $line =~ m{ ' ([^']*) ' | " ([^"]*) " | (\#.*) | (\S+) }xg;
+ }
+ close RC;
+}
+
+=head3 C<process_args>
+
+ $prove->process_args(@args);
+
+Processes the command-line arguments. Attributes will be set
+appropriately. Any filenames may be found in the C<argv> attribute.
+
+Dies on invalid arguments.
+
+=cut
+
+sub process_args {
+ my $self = shift;
+
+ my @rc = RC_FILE;
+ unshift @rc, glob '~/' . RC_FILE if IS_UNIXY;
+
+ # Preprocess meta-args.
+ my @args;
+ while ( defined( my $arg = shift ) ) {
+ if ( $arg eq '--norc' ) {
+ @rc = ();
+ }
+ elsif ( $arg eq '--rc' ) {
+ defined( my $rc = shift )
+ or croak "Missing argument to --rc";
+ push @rc, $rc;
+ }
+ elsif ( $arg =~ m{^--rc=(.+)$} ) {
+ push @rc, $1;
+ }
+ else {
+ push @args, $arg;
+ }
+ }
+
+ # Everything after the arisdottle '::' gets passed as args to
+ # test programs.
+ if ( defined( my $stop_at = _first_pos( '::', @args ) ) ) {
+ my @test_args = splice @args, $stop_at;
+ shift @test_args;
+ $self->{test_args} = \@test_args;
+ }
+
+ # Grab options from RC files
+ $self->add_rc_file($_) for grep -f, @rc;
+ unshift @args, @{ $self->{rc_opts} };
+
+ if ( my @bad = map {"-$_"} grep {/^-(man|help)$/} @args ) {
+ die "Long options should be written with two dashes: ",
+ join( ', ', @bad ), "\n";
+ }
+
+ # And finally...
+
+ {
+ local @ARGV = @args;
+ Getopt::Long::Configure(qw(no_ignore_case bundling pass_through));
+
+ # Don't add coderefs to GetOptions
+ GetOptions(
+ 'v|verbose' => \$self->{verbose},
+ 'f|failures' => \$self->{failures},
+ 'o|comments' => \$self->{comments},
+ 'l|lib' => \$self->{lib},
+ 'b|blib' => \$self->{blib},
+ 's|shuffle' => \$self->{shuffle},
+ 'color!' => \$self->{color},
+ 'colour!' => \$self->{color},
+ 'count!' => \$self->{show_count},
+ 'c' => \$self->{color},
+ 'D|dry' => \$self->{dry},
+ 'ext=s@' => sub {
+ my ( $opt, $val ) = @_;
+
+ # Workaround for Getopt::Long 2.25 handling of
+ # multivalue options
+ push @{ $self->{extensions} ||= [] }, $val;
+ },
+ 'harness=s' => \$self->{harness},
+ 'ignore-exit' => \$self->{ignore_exit},
+ 'source=s@' => $self->{sources},
+ 'formatter=s' => \$self->{formatter},
+ 'r|recurse' => \$self->{recurse},
+ 'reverse' => \$self->{backwards},
+ 'p|parse' => \$self->{parse},
+ 'q|quiet' => \$self->{quiet},
+ 'Q|QUIET' => \$self->{really_quiet},
+ 'e|exec=s' => \$self->{exec},
+ 'm|merge' => \$self->{merge},
+ 'I=s@' => $self->{includes},
+ 'M=s@' => $self->{modules},
+ 'P=s@' => $self->{plugins},
+ 'state=s@' => $self->{state},
+ 'statefile=s' => \$self->{statefile},
+ 'directives' => \$self->{directives},
+ 'h|help|?' => \$self->{show_help},
+ 'H|man' => \$self->{show_man},
+ 'V|version' => \$self->{show_version},
+ 'a|archive=s' => \$self->{archive},
+ 'j|jobs=i' => \$self->{jobs},
+ 'timer' => \$self->{timer},
+ 'T' => \$self->{taint_fail},
+ 't' => \$self->{taint_warn},
+ 'W' => \$self->{warnings_fail},
+ 'w' => \$self->{warnings_warn},
+ 'normalize' => \$self->{normalize},
+ 'rules=s@' => $self->{rules},
+ 'tapversion=s' => \$self->{tapversion},
+ 'trap' => \$self->{trap},
+ ) or croak('Unable to continue');
+
+ # Stash the remainder of argv for later
+ $self->{argv} = [@ARGV];
+ }
+
+ return;
+}
+
+sub _first_pos {
+ my $want = shift;
+ for ( 0 .. $#_ ) {
+ return $_ if $_[$_] eq $want;
+ }
+ return;
+}
+
+sub _help {
+ my ( $self, $verbosity ) = @_;
+
+ eval('use Pod::Usage 1.12 ()');
+ if ( my $err = $@ ) {
+ die 'Please install Pod::Usage for the --help option '
+ . '(or try `perldoc prove`.)'
+ . "\n ($@)";
+ }
+
+ Pod::Usage::pod2usage( { -verbose => $verbosity } );
+
+ return;
+}
+
+sub _color_default {
+ my $self = shift;
+
+ return -t STDOUT && !$ENV{HARNESS_NOTTY};
+}
+
+sub _get_args {
+ my $self = shift;
+
+ my %args;
+
+ $args{trap} = 1 if $self->trap;
+
+ if ( defined $self->color ? $self->color : $self->_color_default ) {
+ $args{color} = 1;
+ }
+ if ( !defined $self->show_count ) {
+ $args{show_count} = 1;
+ }
+ else {
+ $args{show_count} = $self->show_count;
+ }
+
+ if ( $self->archive ) {
+ $self->require_harness( archive => 'TAP::Harness::Archive' );
+ $args{archive} = $self->archive;
+ }
+
+ if ( my $jobs = $self->jobs ) {
+ $args{jobs} = $jobs;
+ }
+
+ if ( my $harness_opt = $self->harness ) {
+ $self->require_harness( harness => $harness_opt );
+ }
+
+ if ( my $formatter = $self->formatter ) {
+ $args{formatter_class} = $formatter;
+ }
+
+ for my $handler ( @{ $self->sources } ) {
+ my ( $name, $config ) = $self->_parse_source($handler);
+ $args{sources}->{$name} = $config;
+ }
+
+ if ( $self->ignore_exit ) {
+ $args{ignore_exit} = 1;
+ }
+
+ if ( $self->taint_fail && $self->taint_warn ) {
+ die '-t and -T are mutually exclusive';
+ }
+
+ if ( $self->warnings_fail && $self->warnings_warn ) {
+ die '-w and -W are mutually exclusive';
+ }
+
+ for my $a (qw( lib switches )) {
+ my $method = "_get_$a";
+ my $val = $self->$method();
+ $args{$a} = $val if defined $val;
+ }
+
+ # Handle verbose, quiet, really_quiet flags
+ my %verb_map = ( verbose => 1, quiet => -1, really_quiet => -2, );
+
+ my @verb_adj = map { $self->$_() ? $verb_map{$_} : () }
+ keys %verb_map;
+
+ die "Only one of verbose, quiet or really_quiet should be specified\n"
+ if @verb_adj > 1;
+
+ $args{verbosity} = shift @verb_adj if @verb_adj;
+
+ for my $a (qw( merge failures comments timer directives normalize )) {
+ $args{$a} = 1 if $self->$a();
+ }
+
+ $args{errors} = 1 if $self->parse;
+
+ # defined but zero-length exec runs test files as binaries
+ $args{exec} = [ split( /\s+/, $self->exec ) ]
+ if ( defined( $self->exec ) );
+
+ $args{version} = $self->tapversion if defined( $self->tapversion );
+
+ if ( defined( my $test_args = $self->test_args ) ) {
+ $args{test_args} = $test_args;
+ }
+
+ if ( @{ $self->rules } ) {
+ my @rules;
+ for ( @{ $self->rules } ) {
+ if (/^par=(.*)/) {
+ push @rules, $1;
+ }
+ elsif (/^seq=(.*)/) {
+ push @rules, { seq => $1 };
+ }
+ }
+ $args{rules} = { par => [@rules] };
+ }
+ $args{harness_class} = $self->{harness_class} if $self->{harness_class};
+
+ return \%args;
+}
+
+sub _find_module {
+ my ( $self, $class, @search ) = @_;
+
+ croak "Bad module name $class"
+ unless $class =~ /^ \w+ (?: :: \w+ ) *$/x;
+
+ for my $pfx (@search) {
+ my $name = join( '::', $pfx, $class );
+ eval "require $name";
+ return $name unless $@;
+ }
+
+ eval "require $class";
+ return $class unless $@;
+ return;
+}
+
+sub _load_extension {
+ my ( $self, $name, @search ) = @_;
+
+ my @args = ();
+ if ( $name =~ /^(.*?)=(.*)/ ) {
+ $name = $1;
+ @args = split( /,/, $2 );
+ }
+
+ if ( my $class = $self->_find_module( $name, @search ) ) {
+ if ( $class->can('load') ) {
+ $class->load( { app_prove => $self, args => [@args] } );
+ }
+ }
+ else {
+ croak "Can't load module $name";
+ }
+}
+
+sub _load_extensions {
+ my ( $self, $ext, @search ) = @_;
+ $self->_load_extension( $_, @search ) for @$ext;
+}
+
+sub _parse_source {
+ my ( $self, $handler ) = @_;
+
+ # Load any options.
+ ( my $opt_name = lc $handler ) =~ s/::/-/g;
+ local @ARGV = @{ $self->{argv} };
+ my %config;
+ Getopt::Long::GetOptions(
+ "$opt_name-option=s%" => sub {
+ my ( $name, $k, $v ) = @_;
+ if ( $v =~ /(?<!\\)=/ ) {
+
+ # It's a hash option.
+ croak "Option $name must be consistently used as a hash"
+ if exists $config{$k} && ref $config{$k} ne 'HASH';
+ $config{$k} ||= {};
+ my ( $hk, $hv ) = split /(?<!\\)=/, $v, 2;
+ $config{$k}{$hk} = $hv;
+ }
+ else {
+ $v =~ s/\\=/=/g;
+ if ( exists $config{$k} ) {
+ $config{$k} = [ $config{$k} ]
+ unless ref $config{$k} eq 'ARRAY';
+ push @{ $config{$k} } => $v;
+ }
+ else {
+ $config{$k} = $v;
+ }
+ }
+ }
+ );
+ $self->{argv} = \@ARGV;
+ return ( $handler, \%config );
+}
+
+=head3 C<run>
+
+Perform whatever actions the command line args specified. The C<prove>
+command line tool consists of the following code:
+
+ use App::Prove;
+
+ my $app = App::Prove->new;
+ $app->process_args(@ARGV);
+ exit( $app->run ? 0 : 1 ); # if you need the exit code
+
+=cut
+
+sub run {
+ my $self = shift;
+
+ unless ( $self->state_manager ) {
+ $self->state_manager(
+ $self->state_class->new( { store => $self->statefile || STATE_FILE } ) );
+ }
+
+ if ( $self->show_help ) {
+ $self->_help(1);
+ }
+ elsif ( $self->show_man ) {
+ $self->_help(2);
+ }
+ elsif ( $self->show_version ) {
+ $self->print_version;
+ }
+ elsif ( $self->dry ) {
+ print "$_\n" for $self->_get_tests;
+ }
+ else {
+
+ $self->_load_extensions( $self->modules );
+ $self->_load_extensions( $self->plugins, PLUGINS );
+
+ local $ENV{TEST_VERBOSE} = 1 if $self->verbose;
+
+ return $self->_runtests( $self->_get_args, $self->_get_tests );
+ }
+
+ return 1;
+}
+
+sub _get_tests {
+ my $self = shift;
+
+ my $state = $self->state_manager;
+ my $ext = $self->extensions;
+ $state->extensions($ext) if defined $ext;
+ if ( defined( my $state_switch = $self->state ) ) {
+ $state->apply_switch(@$state_switch);
+ }
+
+ my @tests = $state->get_tests( $self->recurse, @{ $self->argv } );
+
+ $self->_shuffle(@tests) if $self->shuffle;
+ @tests = reverse @tests if $self->backwards;
+
+ return @tests;
+}
+
+sub _runtests {
+ my ( $self, $args, @tests ) = @_;
+ my $harness = TAP::Harness::Env->create($args);
+
+ my $state = $self->state_manager;
+
+ $harness->callback(
+ after_test => sub {
+ $state->observe_test(@_);
+ }
+ );
+
+ $harness->callback(
+ after_runtests => sub {
+ $state->commit(@_);
+ }
+ );
+
+ my $aggregator = $harness->runtests(@tests);
+
+ return !$aggregator->has_errors;
+}
+
+sub _get_switches {
+ my $self = shift;
+ my @switches;
+
+ # notes that -T or -t must be at the front of the switches!
+ if ( $self->taint_fail ) {
+ push @switches, '-T';
+ }
+ elsif ( $self->taint_warn ) {
+ push @switches, '-t';
+ }
+ if ( $self->warnings_fail ) {
+ push @switches, '-W';
+ }
+ elsif ( $self->warnings_warn ) {
+ push @switches, '-w';
+ }
+
+ return @switches ? \@switches : ();
+}
+
+sub _get_lib {
+ my $self = shift;
+ my @libs;
+ if ( $self->lib ) {
+ push @libs, 'lib';
+ }
+ if ( $self->blib ) {
+ push @libs, 'blib/lib', 'blib/arch';
+ }
+ if ( @{ $self->includes } ) {
+ push @libs, @{ $self->includes };
+ }
+
+ #24926
+ @libs = map { File::Spec->rel2abs($_) } @libs;
+
+ # Huh?
+ return @libs ? \@libs : ();
+}
+
+sub _shuffle {
+ my $self = shift;
+
+ # Fisher-Yates shuffle
+ my $i = @_;
+ while ($i) {
+ my $j = rand $i--;
+ @_[ $i, $j ] = @_[ $j, $i ];
+ }
+ return;
+}
+
+=head3 C<require_harness>
+
+Load a harness replacement class.
+
+ $prove->require_harness($for => $class_name);
+
+=cut
+
+sub require_harness {
+ my ( $self, $for, $class ) = @_;
+
+ my ($class_name) = $class =~ /^(\w+(?:::\w+)*)/;
+
+ # Emulate Perl's -MModule=arg1,arg2 behaviour
+ $class =~ s!^(\w+(?:::\w+)*)=(.*)$!$1 split(/,/,q{$2})!;
+
+ eval("use $class;");
+ die "$class_name is required to use the --$for feature: $@" if $@;
+
+ $self->{harness_class} = $class_name;
+
+ return;
+}
+
+=head3 C<print_version>
+
+Display the version numbers of the loaded L<TAP::Harness> and the
+current Perl.
+
+=cut
+
+sub print_version {
+ my $self = shift;
+ require TAP::Harness;
+ printf(
+ "TAP::Harness v%s and Perl v%vd\n",
+ $TAP::Harness::VERSION, $^V
+ );
+
+ return;
+}
+
+1;
+
+# vim:ts=4:sw=4:et:sta
+
+__END__
+
+=head2 Attributes
+
+After command line parsing the following attributes reflect the values
+of the corresponding command line switches. They may be altered before
+calling C<run>.
+
+=over
+
+=item C<archive>
+
+=item C<argv>
+
+=item C<backwards>
+
+=item C<blib>
+
+=item C<color>
+
+=item C<directives>
+
+=item C<dry>
+
+=item C<exec>
+
+=item C<extensions>
+
+=item C<failures>
+
+=item C<comments>
+
+=item C<formatter>
+
+=item C<harness>
+
+=item C<ignore_exit>
+
+=item C<includes>
+
+=item C<jobs>
+
+=item C<lib>
+
+=item C<merge>
+
+=item C<modules>
+
+=item C<parse>
+
+=item C<plugins>
+
+=item C<quiet>
+
+=item C<really_quiet>
+
+=item C<recurse>
+
+=item C<rules>
+
+=item C<show_count>
+
+=item C<show_help>
+
+=item C<show_man>
+
+=item C<show_version>
+
+=item C<shuffle>
+
+=item C<state>
+
+=item C<state_class>
+
+=item C<taint_fail>
+
+=item C<taint_warn>
+
+=item C<test_args>
+
+=item C<timer>
+
+=item C<verbose>
+
+=item C<warnings_fail>
+
+=item C<warnings_warn>
+
+=item C<tapversion>
+
+=item C<trap>
+
+=back
+
+=head1 PLUGINS
+
+C<App::Prove> provides support for 3rd-party plugins. These are currently
+loaded at run-time, I<after> arguments have been parsed (so you can not
+change the way arguments are processed, sorry), typically with the
+C<< -PI<plugin> >> switch, eg:
+
+ prove -PMyPlugin
+
+This will search for a module named C<App::Prove::Plugin::MyPlugin>, or failing
+that, C<MyPlugin>. If the plugin can't be found, C<prove> will complain & exit.
+
+You can pass an argument to your plugin by appending an C<=> after the plugin
+name, eg C<-PMyPlugin=foo>. You can pass multiple arguments using commas:
+
+ prove -PMyPlugin=foo,bar,baz
+
+These are passed in to your plugin's C<load()> class method (if it has one),
+along with a reference to the C<App::Prove> object that is invoking your plugin:
+
+ sub load {
+ my ($class, $p) = @_;
+
+ my @args = @{ $p->{args} };
+ # @args will contain ( 'foo', 'bar', 'baz' )
+ $p->{app_prove}->do_something;
+ ...
+ }
+
+=head2 Sample Plugin
+
+Here's a sample plugin, for your reference:
+
+ package App::Prove::Plugin::Foo;
+
+ # Sample plugin, try running with:
+ # prove -PFoo=bar -r -j3
+ # prove -PFoo -Q
+ # prove -PFoo=bar,My::Formatter
+
+ use strict;
+ use warnings;
+
+ sub load {
+ my ($class, $p) = @_;
+ my @args = @{ $p->{args} };
+ my $app = $p->{app_prove};
+
+ print "loading plugin: $class, args: ", join(', ', @args ), "\n";
+
+ # turn on verbosity
+ $app->verbose( 1 );
+
+ # set the formatter?
+ $app->formatter( $args[1] ) if @args > 1;
+
+ # print some of App::Prove's state:
+ for my $attr (qw( jobs quiet really_quiet recurse verbose )) {
+ my $val = $app->$attr;
+ $val = 'undef' unless defined( $val );
+ print "$attr: $val\n";
+ }
+
+ return 1;
+ }
+
+ 1;
+
+=head1 SEE ALSO
+
+L<prove>, L<TAP::Harness>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State.pm
new file mode 100755
index 0000000000..d4477e2b25
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State.pm
@@ -0,0 +1,548 @@
+package App::Prove::State;
+
+use strict;
+use warnings;
+
+use File::Find;
+use File::Spec;
+use Carp;
+
+use App::Prove::State::Result;
+use TAP::Parser::YAMLish::Reader ();
+use TAP::Parser::YAMLish::Writer ();
+use base 'TAP::Base';
+
+BEGIN {
+ __PACKAGE__->mk_methods('result_class');
+}
+
+use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
+use constant NEED_GLOB => IS_WIN32;
+
+=head1 NAME
+
+App::Prove::State - State storage for the C<prove> command.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+The C<prove> command supports a C<--state> option that instructs it to
+store persistent state across runs. This module implements that state
+and the operations that may be performed on it.
+
+=head1 SYNOPSIS
+
+ # Re-run failed tests
+ $ prove --state=failed,save -rbv
+
+=cut
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Accepts a hashref with the following key/value pairs:
+
+=over 4
+
+=item * C<store>
+
+The filename of the data store holding the data that App::Prove::State reads.
+
+=item * C<extensions> (optional)
+
+The test name extensions. Defaults to C<.t>.
+
+=item * C<result_class> (optional)
+
+The name of the C<result_class>. Defaults to C<App::Prove::State::Result>.
+
+=back
+
+=cut
+
+# override TAP::Base::new:
+sub new {
+ my $class = shift;
+ my %args = %{ shift || {} };
+
+ my $self = bless {
+ select => [],
+ seq => 1,
+ store => delete $args{store},
+ extensions => ( delete $args{extensions} || ['.t'] ),
+ result_class =>
+ ( delete $args{result_class} || 'App::Prove::State::Result' ),
+ }, $class;
+
+ $self->{_} = $self->result_class->new(
+ { tests => {},
+ generation => 1,
+ }
+ );
+ my $store = $self->{store};
+ $self->load($store)
+ if defined $store && -f $store;
+
+ return $self;
+}
+
+=head2 C<result_class>
+
+Getter/setter for the name of the class used for tracking test results. This
+class should either subclass from C<App::Prove::State::Result> or provide an
+identical interface.
+
+=cut
+
+=head2 C<extensions>
+
+Get or set the list of extensions that files must have in order to be
+considered tests. Defaults to ['.t'].
+
+=cut
+
+sub extensions {
+ my $self = shift;
+ $self->{extensions} = shift if @_;
+ return $self->{extensions};
+}
+
+=head2 C<results>
+
+Get the results of the last test run. Returns a C<result_class()> instance.
+
+=cut
+
+sub results {
+ my $self = shift;
+ $self->{_} || $self->result_class->new;
+}
+
+=head2 C<commit>
+
+Save the test results. Should be called after all tests have run.
+
+=cut
+
+sub commit {
+ my $self = shift;
+ if ( $self->{should_save} ) {
+ $self->save;
+ }
+}
+
+=head2 Instance Methods
+
+=head3 C<apply_switch>
+
+ $self->apply_switch('failed,save');
+
+Apply a list of switch options to the state, updating the internal
+object state as a result. Nothing is returned.
+
+Diagnostics:
+ - "Illegal state option: %s"
+
+=over
+
+=item C<last>
+
+Run in the same order as last time
+
+=item C<failed>
+
+Run only the failed tests from last time
+
+=item C<passed>
+
+Run only the passed tests from last time
+
+=item C<all>
+
+Run all tests in normal order
+
+=item C<hot>
+
+Run the tests that most recently failed first
+
+=item C<todo>
+
+Run the tests ordered by number of todos.
+
+=item C<slow>
+
+Run the tests in slowest to fastest order.
+
+=item C<fast>
+
+Run test tests in fastest to slowest order.
+
+=item C<new>
+
+Run the tests in newest to oldest order.
+
+=item C<old>
+
+Run the tests in oldest to newest order.
+
+=item C<save>
+
+Save the state on exit.
+
+=back
+
+=cut
+
+sub apply_switch {
+ my $self = shift;
+ my @opts = @_;
+
+ my $last_gen = $self->results->generation - 1;
+ my $last_run_time = $self->results->last_run_time;
+ my $now = $self->get_time;
+
+ my @switches = map { split /,/ } @opts;
+
+ my %handler = (
+ last => sub {
+ $self->_select(
+ limit => shift,
+ where => sub { $_->generation >= $last_gen },
+ order => sub { $_->sequence }
+ );
+ },
+ failed => sub {
+ $self->_select(
+ limit => shift,
+ where => sub { $_->result != 0 },
+ order => sub { -$_->result }
+ );
+ },
+ passed => sub {
+ $self->_select(
+ limit => shift,
+ where => sub { $_->result == 0 }
+ );
+ },
+ all => sub {
+ $self->_select( limit => shift );
+ },
+ todo => sub {
+ $self->_select(
+ limit => shift,
+ where => sub { $_->num_todo != 0 },
+ order => sub { -$_->num_todo; }
+ );
+ },
+ hot => sub {
+ $self->_select(
+ limit => shift,
+ where => sub { defined $_->last_fail_time },
+ order => sub { $now - $_->last_fail_time }
+ );
+ },
+ slow => sub {
+ $self->_select(
+ limit => shift,
+ order => sub { -$_->elapsed }
+ );
+ },
+ fast => sub {
+ $self->_select(
+ limit => shift,
+ order => sub { $_->elapsed }
+ );
+ },
+ new => sub {
+ $self->_select(
+ limit => shift,
+ order => sub { -$_->mtime }
+ );
+ },
+ old => sub {
+ $self->_select(
+ limit => shift,
+ order => sub { $_->mtime }
+ );
+ },
+ fresh => sub {
+ $self->_select(
+ limit => shift,
+ where => sub { $_->mtime >= $last_run_time }
+ );
+ },
+ save => sub {
+ $self->{should_save}++;
+ },
+ adrian => sub {
+ unshift @switches, qw( hot all save );
+ },
+ );
+
+ while ( defined( my $ele = shift @switches ) ) {
+ my ( $opt, $arg )
+ = ( $ele =~ /^([^:]+):(.*)/ )
+ ? ( $1, $2 )
+ : ( $ele, undef );
+ my $code = $handler{$opt}
+ || croak "Illegal state option: $opt";
+ $code->($arg);
+ }
+ return;
+}
+
+sub _select {
+ my ( $self, %spec ) = @_;
+ push @{ $self->{select} }, \%spec;
+}
+
+=head3 C<get_tests>
+
+Given a list of args get the names of tests that should run
+
+=cut
+
+sub get_tests {
+ my $self = shift;
+ my $recurse = shift;
+ my @argv = @_;
+ my %seen;
+
+ my @selected = $self->_query;
+
+ unless ( @argv || @{ $self->{select} } ) {
+ @argv = $recurse ? '.' : 't';
+ croak qq{No tests named and '@argv' directory not found}
+ unless -d $argv[0];
+ }
+
+ push @selected, $self->_get_raw_tests( $recurse, @argv ) if @argv;
+ return grep { !$seen{$_}++ } @selected;
+}
+
+sub _query {
+ my $self = shift;
+ if ( my @sel = @{ $self->{select} } ) {
+ warn "No saved state, selection will be empty\n"
+ unless $self->results->num_tests;
+ return map { $self->_query_clause($_) } @sel;
+ }
+ return;
+}
+
+sub _query_clause {
+ my ( $self, $clause ) = @_;
+ my @got;
+ my $results = $self->results;
+ my $where = $clause->{where} || sub {1};
+
+ # Select
+ for my $name ( $results->test_names ) {
+ next unless -f $name;
+ local $_ = $results->test($name);
+ push @got, $name if $where->();
+ }
+
+ # Sort
+ if ( my $order = $clause->{order} ) {
+ @got = map { $_->[0] }
+ sort {
+ ( defined $b->[1] <=> defined $a->[1] )
+ || ( ( $a->[1] || 0 ) <=> ( $b->[1] || 0 ) )
+ } map {
+ [ $_,
+ do { local $_ = $results->test($_); $order->() }
+ ]
+ } @got;
+ }
+
+ if ( my $limit = $clause->{limit} ) {
+ @got = splice @got, 0, $limit if @got > $limit;
+ }
+
+ return @got;
+}
+
+sub _get_raw_tests {
+ my $self = shift;
+ my $recurse = shift;
+ my @argv = @_;
+ my @tests;
+
+ # Do globbing on Win32.
+ if (NEED_GLOB) {
+ eval "use File::Glob::Windows"; # [49732]
+ @argv = map { glob "$_" } @argv;
+ }
+ my $extensions = $self->{extensions};
+
+ for my $arg (@argv) {
+ if ( '-' eq $arg ) {
+ push @argv => <STDIN>;
+ chomp(@argv);
+ next;
+ }
+
+ push @tests,
+ sort -d $arg
+ ? $recurse
+ ? $self->_expand_dir_recursive( $arg, $extensions )
+ : map { glob( File::Spec->catfile( $arg, "*$_" ) ) }
+ @{$extensions}
+ : $arg;
+ }
+ return @tests;
+}
+
+sub _expand_dir_recursive {
+ my ( $self, $dir, $extensions ) = @_;
+
+ my @tests;
+ my $ext_string = join( '|', map {quotemeta} @{$extensions} );
+
+ find(
+ { follow => 1, #21938
+ follow_skip => 2,
+ wanted => sub {
+ -f
+ && /(?:$ext_string)$/
+ && push @tests => $File::Find::name;
+ }
+ },
+ $dir
+ );
+ return @tests;
+}
+
+=head3 C<observe_test>
+
+Store the results of a test.
+
+=cut
+
+# Store:
+# last fail time
+# last pass time
+# last run time
+# most recent result
+# most recent todos
+# total failures
+# total passes
+# state generation
+# parser
+
+sub observe_test {
+
+ my ( $self, $test_info, $parser ) = @_;
+ my $name = $test_info->[0];
+ my $fail = scalar( $parser->failed ) + ( $parser->has_problems ? 1 : 0 );
+ my $todo = scalar( $parser->todo );
+ my $start_time = $parser->start_time;
+ my $end_time = $parser->end_time,
+
+ my $test = $self->results->test($name);
+
+ $test->sequence( $self->{seq}++ );
+ $test->generation( $self->results->generation );
+
+ $test->run_time($end_time);
+ $test->result($fail);
+ $test->num_todo($todo);
+ $test->elapsed( $end_time - $start_time );
+
+ $test->parser($parser);
+
+ if ($fail) {
+ $test->total_failures( $test->total_failures + 1 );
+ $test->last_fail_time($end_time);
+ }
+ else {
+ $test->total_passes( $test->total_passes + 1 );
+ $test->last_pass_time($end_time);
+ }
+}
+
+=head3 C<save>
+
+Write the state to a file.
+
+=cut
+
+sub save {
+ my ($self) = @_;
+
+ my $store = $self->{store} or return;
+ $self->results->last_run_time( $self->get_time );
+
+ my $writer = TAP::Parser::YAMLish::Writer->new;
+ local *FH;
+ open FH, ">$store" or croak "Can't write $store ($!)";
+ $writer->write( $self->results->raw, \*FH );
+ close FH;
+}
+
+=head3 C<load>
+
+Load the state from a file
+
+=cut
+
+sub load {
+ my ( $self, $name ) = @_;
+ my $reader = TAP::Parser::YAMLish::Reader->new;
+ local *FH;
+ open FH, "<$name" or croak "Can't read $name ($!)";
+
+ # XXX this is temporary
+ $self->{_} = $self->result_class->new(
+ $reader->read(
+ sub {
+ my $line = <FH>;
+ defined $line && chomp $line;
+ return $line;
+ }
+ )
+ );
+
+ # $writer->write( $self->{tests} || {}, \*FH );
+ close FH;
+ $self->_regen_seq;
+ $self->_prune_and_stamp;
+ $self->results->generation( $self->results->generation + 1 );
+}
+
+sub _prune_and_stamp {
+ my $self = shift;
+
+ my $results = $self->results;
+ my @tests = $self->results->tests;
+ for my $test (@tests) {
+ my $name = $test->name;
+ if ( my @stat = stat $name ) {
+ $test->mtime( $stat[9] );
+ }
+ else {
+ $results->remove($name);
+ }
+ }
+}
+
+sub _regen_seq {
+ my $self = shift;
+ for my $test ( $self->results->tests ) {
+ $self->{seq} = $test->sequence + 1
+ if defined $test->sequence && $test->sequence >= $self->{seq};
+ }
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result.pm
new file mode 100755
index 0000000000..38faf6f24d
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result.pm
@@ -0,0 +1,233 @@
+package App::Prove::State::Result;
+
+use strict;
+use warnings;
+use Carp 'croak';
+
+use App::Prove::State::Result::Test;
+
+use constant STATE_VERSION => 1;
+
+=head1 NAME
+
+App::Prove::State::Result - Individual test suite results.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+The C<prove> command supports a C<--state> option that instructs it to
+store persistent state across runs. This module encapsulates the results for a
+single test suite run.
+
+=head1 SYNOPSIS
+
+ # Re-run failed tests
+ $ prove --state=failed,save -rbv
+
+=cut
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $result = App::Prove::State::Result->new({
+ generation => $generation,
+ tests => \%tests,
+ });
+
+Returns a new C<App::Prove::State::Result> instance.
+
+=cut
+
+sub new {
+ my ( $class, $arg_for ) = @_;
+ $arg_for ||= {};
+ my %instance_data = %$arg_for; # shallow copy
+ $instance_data{version} = $class->state_version;
+ my $tests = delete $instance_data{tests} || {};
+ my $self = bless \%instance_data => $class;
+ $self->_initialize($tests);
+ return $self;
+}
+
+sub _initialize {
+ my ( $self, $tests ) = @_;
+ my %tests;
+ while ( my ( $name, $test ) = each %$tests ) {
+ $tests{$name} = $self->test_class->new(
+ { %$test,
+ name => $name
+ }
+ );
+ }
+ $self->tests( \%tests );
+ return $self;
+}
+
+=head2 C<state_version>
+
+Returns the current version of state storage.
+
+=cut
+
+sub state_version {STATE_VERSION}
+
+=head2 C<test_class>
+
+Returns the name of the class used for tracking individual tests. This class
+should either subclass from C<App::Prove::State::Result::Test> or provide an
+identical interface.
+
+=cut
+
+sub test_class {
+ return 'App::Prove::State::Result::Test';
+}
+
+my %methods = (
+ generation => { method => 'generation', default => 0 },
+ last_run_time => { method => 'last_run_time', default => undef },
+);
+
+while ( my ( $key, $description ) = each %methods ) {
+ my $default = $description->{default};
+ no strict 'refs';
+ *{ $description->{method} } = sub {
+ my $self = shift;
+ if (@_) {
+ $self->{$key} = shift;
+ return $self;
+ }
+ return $self->{$key} || $default;
+ };
+}
+
+=head3 C<generation>
+
+Getter/setter for the "generation" of the test suite run. The first
+generation is 1 (one) and subsequent generations are 2, 3, etc.
+
+=head3 C<last_run_time>
+
+Getter/setter for the time of the test suite run.
+
+=head3 C<tests>
+
+Returns the tests for a given generation. This is a hashref or a hash,
+depending on context called. The keys to the hash are the individual
+test names and the value is a hashref with various interesting values.
+Each k/v pair might resemble something like this:
+
+ 't/foo.t' => {
+ elapsed => '0.0428488254547119',
+ gen => '7',
+ last_pass_time => '1219328376.07815',
+ last_result => '0',
+ last_run_time => '1219328376.07815',
+ last_todo => '0',
+ mtime => '1191708862',
+ seq => '192',
+ total_passes => '6',
+ }
+
+=cut
+
+sub tests {
+ my $self = shift;
+ if (@_) {
+ $self->{tests} = shift;
+ return $self;
+ }
+ my %tests = %{ $self->{tests} };
+ my @tests = sort { $a->sequence <=> $b->sequence } values %tests;
+ return wantarray ? @tests : \@tests;
+}
+
+=head3 C<test>
+
+ my $test = $result->test('t/customer/create.t');
+
+Returns an individual C<App::Prove::State::Result::Test> instance for the
+given test name (usually the filename). Will return a new
+C<App::Prove::State::Result::Test> instance if the name is not found.
+
+=cut
+
+sub test {
+ my ( $self, $name ) = @_;
+ croak("test() requires a test name") unless defined $name;
+
+ my $tests = $self->{tests} ||= {};
+ if ( my $test = $tests->{$name} ) {
+ return $test;
+ }
+ else {
+ my $test = $self->test_class->new( { name => $name } );
+ $self->{tests}->{$name} = $test;
+ return $test;
+ }
+}
+
+=head3 C<test_names>
+
+Returns an list of test names, sorted by run order.
+
+=cut
+
+sub test_names {
+ my $self = shift;
+ return map { $_->name } $self->tests;
+}
+
+=head3 C<remove>
+
+ $result->remove($test_name); # remove the test
+ my $test = $result->test($test_name); # fatal error
+
+Removes a given test from results. This is a no-op if the test name is not
+found.
+
+=cut
+
+sub remove {
+ my ( $self, $name ) = @_;
+ delete $self->{tests}->{$name};
+ return $self;
+}
+
+=head3 C<num_tests>
+
+Returns the number of tests for a given test suite result.
+
+=cut
+
+sub num_tests { keys %{ shift->{tests} } }
+
+=head3 C<raw>
+
+Returns a hashref of raw results, suitable for serialization by YAML.
+
+=cut
+
+sub raw {
+ my $self = shift;
+ my %raw = %$self;
+
+ my %tests;
+ for my $test ( $self->tests ) {
+ $tests{ $test->name } = $test->raw;
+ }
+ $raw{tests} = \%tests;
+ return \%raw;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result/Test.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result/Test.pm
new file mode 100755
index 0000000000..61a5173cfa
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/App/Prove/State/Result/Test.pm
@@ -0,0 +1,152 @@
+package App::Prove::State::Result::Test;
+
+use strict;
+use warnings;
+
+=head1 NAME
+
+App::Prove::State::Result::Test - Individual test results.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+The C<prove> command supports a C<--state> option that instructs it to
+store persistent state across runs. This module encapsulates the results for a
+single test.
+
+=head1 SYNOPSIS
+
+ # Re-run failed tests
+ $ prove --state=failed,save -rbv
+
+=cut
+
+my %methods = (
+ name => { method => 'name' },
+ elapsed => { method => 'elapsed', default => 0 },
+ gen => { method => 'generation', default => 1 },
+ last_pass_time => { method => 'last_pass_time', default => undef },
+ last_fail_time => { method => 'last_fail_time', default => undef },
+ last_result => { method => 'result', default => 0 },
+ last_run_time => { method => 'run_time', default => undef },
+ last_todo => { method => 'num_todo', default => 0 },
+ mtime => { method => 'mtime', default => undef },
+ seq => { method => 'sequence', default => 1 },
+ total_passes => { method => 'total_passes', default => 0 },
+ total_failures => { method => 'total_failures', default => 0 },
+ parser => { method => 'parser' },
+);
+
+while ( my ( $key, $description ) = each %methods ) {
+ my $default = $description->{default};
+ no strict 'refs';
+ *{ $description->{method} } = sub {
+ my $self = shift;
+ if (@_) {
+ $self->{$key} = shift;
+ return $self;
+ }
+ return $self->{$key} || $default;
+ };
+}
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+=cut
+
+sub new {
+ my ( $class, $arg_for ) = @_;
+ $arg_for ||= {};
+ bless $arg_for => $class;
+}
+
+=head2 Instance Methods
+
+=head3 C<name>
+
+The name of the test. Usually a filename.
+
+=head3 C<elapsed>
+
+The total elapsed times the test took to run, in seconds from the epoch..
+
+=head3 C<generation>
+
+The number for the "generation" of the test run. The first generation is 1
+(one) and subsequent generations are 2, 3, etc.
+
+=head3 C<last_pass_time>
+
+The last time the test program passed, in seconds from the epoch.
+
+Returns C<undef> if the program has never passed.
+
+=head3 C<last_fail_time>
+
+The last time the test suite failed, in seconds from the epoch.
+
+Returns C<undef> if the program has never failed.
+
+=head3 C<mtime>
+
+Returns the mtime of the test, in seconds from the epoch.
+
+=head3 C<raw>
+
+Returns a hashref of raw test data, suitable for serialization by YAML.
+
+=head3 C<result>
+
+Currently, whether or not the test suite passed with no 'problems' (such as
+TODO passed).
+
+=head3 C<run_time>
+
+The total time it took for the test to run, in seconds. If C<Time::HiRes> is
+available, it will have finer granularity.
+
+=head3 C<num_todo>
+
+The number of tests with TODO directives.
+
+=head3 C<sequence>
+
+The order in which this test was run for the given test suite result.
+
+=head3 C<total_passes>
+
+The number of times the test has passed.
+
+=head3 C<total_failures>
+
+The number of times the test has failed.
+
+=head3 C<parser>
+
+The underlying parser object. This is useful if you need the full
+information for the test program.
+
+=cut
+
+sub raw {
+ my $self = shift;
+ my %raw = %$self;
+
+ # this is backwards-compatibility hack and is not guaranteed.
+ delete $raw{name};
+ delete $raw{parser};
+ return \%raw;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
index 49f15fcee2..887285846f 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
@@ -1,5 +1,5 @@
package Cpanel::JSON::XS;
-our $VERSION = '4.27';
+our $VERSION = '4.37';
our $XS_VERSION = $VERSION;
# $VERSION = eval $VERSION;
@@ -112,7 +112,10 @@ or L<https://rt.cpan.org/Public/Dist/Display.html?Queue=Cpanel-JSON-XS>
B<Changes to JSON::XS>
+- bare hashkeys are now checked for utf8. (GH #209)
+
- stricter decode_json() as documented. non-refs are disallowed.
+ safe by default.
added a 2nd optional argument. decode() honors now allow_nonref.
- fixed encode of numbers for dual-vars. Different string
@@ -157,8 +160,14 @@ B<Changes to JSON::XS>
- relaxed mode, allowing many popular extensions
+- protect our magic object from corruption by wrong or missing external
+ methods, like FREEZE/THAW or serialization with other methods.
+
- additional fixes for:
+ - #208 - no security-relevant out-of-bounds reading of module memory
+ when decoding hash keys without ending ':'
+
- [cpan #88061] AIX atof without USE_LONG_DOUBLE
- #10 unshare_hek crash
@@ -180,6 +189,8 @@ B<Changes to JSON::XS>
- #167 sort tied hashes with canonical.
+ - #212 fix utf8 object stringification
+
- public maintenance and bugtracker
- use ppport.h, sanify XS.xs comment styles, harness C coding style
@@ -187,15 +198,15 @@ B<Changes to JSON::XS>
- common::sense is optional. When available it is not used in the
published production module, just during development and testing.
-- extended testsuite, passes all http://seriot.ch/parsing_json.html
+- extended testsuite, passes all http://seriot.ch/projects/parsing_json.html
tests. In fact it is the only know JSON decoder which does so,
while also being the fastest.
- support many more options and methods from JSON::PP:
stringify_infnan, allow_unknown, allow_stringify, allow_barekey,
- encode_stringify, allow_bignum, allow_singlequote, sort_by
- (partially), escape_slash, convert_blessed, ... optional
- decode_json(, allow_nonref) arg.
+ encode_stringify, allow_bignum, allow_singlequote, dupkeys_as_arrayref,
+ sort_by (partially), escape_slash, convert_blessed, ...
+ optional decode_json(, allow_nonref) arg.
relaxed implements allow_dupkeys.
- support all 5 unicode L<BOM|/BOM>'s: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE,
@@ -659,13 +670,12 @@ L</allow_barekey> option.
=item * allow_dupkeys
Allow decoding of duplicate keys in hashes. By default duplicate keys are forbidden.
-See L<http://seriot.ch/parsing_json.php#24>:
+See L<http://seriot.ch/projects/parsing_json.php#24>:
RFC 7159 section 4: "The names within an object should be unique."
-See the L</allow_dupkeys> option.
+See the C<allow_dupkeys> option.
=back
-
=item $json = $json->canonical ([$enable])
=item $enabled = $json->get_canonical
@@ -880,9 +890,29 @@ disable it, however with Perl hashes they are impossible, parsing
JSON in Perl silently ignores duplicate names, using the last value
found.
-See L<http://seriot.ch/parsing_json.php#24>:
+See L<http://seriot.ch/projects/parsing_json.php#24>:
RFC 7159 section 4: "The names within an object should be unique."
+=item $json = $json->dupkeys_as_arrayref ([$enable])
+
+=item $enabled = $json->get_dupkeys_as_arrayref
+
+If enabled, allow decoding of duplicate keys in hashes and store the
+values as arrayref in the hash instead. By default duplicate keys are
+forbidden. Enabling this also enables the L</allow_dupkeys> option,
+but disabling this does not disable the L</allow_dupkeys> option.
+
+Example:
+
+ $json->dupkeys_as_arrayref;
+ print encode_json ($json->decode ('{"a":"b","a":"c"}'));
+
+ => {"a":["b","c"]}
+
+This changes the result structure, thus cannot be enabled by default.
+The client must be aware of it. The resulting arrayref is not yet marked somehow
+(blessed or such).
+
=item $json = $json->allow_blessed ([$enable])
=item $enabled = $json->get_allow_blessed
@@ -2063,7 +2093,7 @@ output (modulo bugs, but C<JSON::XS> has found more bugs in the
official JSON testsuite (1) than the official JSON testsuite has found
in C<JSON::XS> (0)).
C<Cpanel::JSON::XS> is currently the only known JSON decoder which passes all
-L<http://seriot.ch/parsing_json.html> tests, while being the fastest also.
+L<http://seriot.ch/projects/parsing_json.html> tests, while being the fastest also.
When you have trouble decoding JSON generated by this module using other
decoders, then it is very likely that you have an encoding mismatch or the
@@ -2315,10 +2345,18 @@ BEGIN {
require overload;
local $^W; # silence redefine warnings. no warnings 'redefine' does not help
- &overload::import( 'overload', # workaround 5.6 reserved keyword warning
- "0+" => sub { ${$_[0]} },
- "++" => sub { $_[0] = ${$_[0]} + 1 },
- "--" => sub { $_[0] = ${$_[0]} - 1 },
+ # These already come with JSON::PP::Boolean. Avoid redefine warning.
+ if (!defined $JSON::PP::Boolean::VERSION or $JSON::PP::VERSION lt '4.00') {
+ &overload::unimport( 'overload', '0+', '++', '--' );
+ &overload::import( 'overload',
+ "0+" => sub { ${$_[0]} },
+ "++" => sub { $_[0] = ${$_[0]} + 1 },
+ "--" => sub { $_[0] = ${$_[0]} - 1 },
+ );
+ }
+ # workaround 5.6 reserved keyword warning
+ &overload::unimport( 'overload', '""', 'eq', 'ne' );
+ &overload::import( 'overload',
'""' => sub { ${$_[0]} == 1 ? '1' : '0' }, # GH 29
'eq' => sub {
my ($obj, $op) = $_[2] ? ($_[1], $_[0]) : ($_[0], $_[1]);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Digest/SHA.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Digest/SHA.pm
index dccc0e7aeb..37a31e969a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Digest/SHA.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Digest/SHA.pm
@@ -6,9 +6,10 @@ use strict;
use warnings;
use vars qw($VERSION @ISA @EXPORT_OK $errmsg);
use Fcntl qw(O_RDONLY O_RDWR);
+use Cwd qw(getcwd);
use integer;
-$VERSION = '6.02';
+$VERSION = '6.04';
require Exporter;
@ISA = qw(Exporter);
@@ -120,9 +121,18 @@ sub addfile {
## by attempting to open with mode O_RDWR
local *FH;
- $file eq '-' and open(FH, '< -')
- or sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY)
+ if ($file eq '-') {
+ if (-d STDIN) {
+ sysopen(FH, getcwd(), O_RDWR)
+ or _bail('Open failed');
+ }
+ open(FH, '< -')
+ or _bail('Open failed');
+ }
+ else {
+ sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY)
or _bail('Open failed');
+ }
if ($BITS) {
my ($n, $buf) = (0, "");
@@ -810,7 +820,7 @@ darkness and moored it in so perfect a calm and in so brilliant a light"
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2003-2018 Mark Shelor
+Copyright (C) 2003-2022 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Config.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Config.pm
new file mode 100755
index 0000000000..64134c5a4b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Config.pm
@@ -0,0 +1,114 @@
+package ExtUtils::Config;
+$ExtUtils::Config::VERSION = '0.008';
+use strict;
+use warnings;
+use Config;
+use Data::Dumper ();
+
+sub new {
+ my ($pack, $args) = @_;
+ return bless {
+ values => ($args ? { %$args } : {}),
+ }, $pack;
+}
+
+sub get {
+ my ($self, $key) = @_;
+ return exists $self->{values}{$key} ? $self->{values}{$key} : $Config{$key};
+}
+
+sub exists {
+ my ($self, $key) = @_;
+ return exists $self->{values}{$key} || exists $Config{$key};
+}
+
+sub values_set {
+ my $self = shift;
+ return { %{$self->{values}} };
+}
+
+sub all_config {
+ my $self = shift;
+ return { %Config, %{ $self->{values}} };
+}
+
+sub serialize {
+ my $self = shift;
+ return $self->{serialized} ||= Data::Dumper->new([$self->values_set])->Terse(1)->Sortkeys(1)->Dump;
+}
+
+1;
+
+# ABSTRACT: A wrapper for perl's configuration
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+ExtUtils::Config - A wrapper for perl's configuration
+
+=head1 VERSION
+
+version 0.008
+
+=head1 SYNOPSIS
+
+ my $config = ExtUtils::Config->new();
+ $config->get('installsitelib');
+
+=head1 DESCRIPTION
+
+ExtUtils::Config is an abstraction around the %Config hash. By itself it is not a particularly interesting module by any measure, however it ties together a family of modern toolchain modules.
+
+=head1 METHODS
+
+=head2 new(\%config)
+
+Create a new ExtUtils::Config object. The values in C<\%config> are used to initialize the object.
+
+=head2 get($key)
+
+Get the value of C<$key>. If not overridden it will return the value in %Config.
+
+=head2 exists($key)
+
+Tests for the existence of $key.
+
+=head2 values_set()
+
+Get a hashref of all overridden values.
+
+=head2 all_config()
+
+Get a hashref of the complete configuration, including overrides.
+
+=head2 serialize()
+
+This method serializes the object to some kind of string.
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Ken Williams <kwilliams@cpan.org>
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2006 by Ken Williams, Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers.pm
new file mode 100755
index 0000000000..42c6cbfb92
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers.pm
@@ -0,0 +1,131 @@
+package ExtUtils::Helpers;
+$ExtUtils::Helpers::VERSION = '0.026';
+use strict;
+use warnings FATAL => 'all';
+use Exporter 5.57 'import';
+
+use Config;
+use File::Basename qw/basename/;
+use File::Spec::Functions qw/splitpath canonpath abs2rel splitdir/;
+use Text::ParseWords 3.24 ();
+
+our @EXPORT_OK = qw/make_executable split_like_shell man1_pagename man3_pagename detildefy/;
+
+BEGIN {
+ my %impl_for = ( MSWin32 => 'Windows', VMS => 'VMS');
+ my $package = 'ExtUtils::Helpers::' . ($impl_for{$^O} || 'Unix');
+ my $impl = $impl_for{$^O} || 'Unix';
+ require "ExtUtils/Helpers/$impl.pm";
+ "ExtUtils::Helpers::$impl"->import();
+}
+
+sub split_like_shell {
+ my ($string) = @_;
+
+ return if not defined $string;
+ $string =~ s/^\s+|\s+$//g;
+ return if not length $string;
+
+ return Text::ParseWords::shellwords($string);
+}
+
+sub man1_pagename {
+ my $filename = shift;
+ return basename($filename).".$Config{man1ext}";
+}
+
+my %separator = (
+ MSWin32 => '.',
+ VMS => '__',
+ os2 => '.',
+ cygwin => '.',
+);
+my $separator = $separator{$^O} || '::';
+
+sub man3_pagename {
+ my ($filename, $base) = @_;
+ $base ||= 'lib';
+ my ($vols, $dirs, $file) = splitpath(canonpath(abs2rel($filename, $base)));
+ $file = basename($file, qw/.pm .pod/);
+ my @dirs = grep { length } splitdir($dirs);
+ return join $separator, @dirs, "$file.$Config{man3ext}";
+}
+
+1;
+
+# ABSTRACT: Various portability utilities for module builders
+
+__END__
+
+=pod
+
+=encoding utf-8
+
+=head1 NAME
+
+ExtUtils::Helpers - Various portability utilities for module builders
+
+=head1 VERSION
+
+version 0.026
+
+=head1 SYNOPSIS
+
+ use ExtUtils::Helpers qw/make_executable split_like_shell/;
+
+ unshift @ARGV, split_like_shell($ENV{PROGRAM_OPTS});
+ write_script_to('Build');
+ make_executable('Build');
+
+=head1 DESCRIPTION
+
+This module provides various portable helper functions for module building modules.
+
+=head1 FUNCTIONS
+
+=head2 make_executable($filename)
+
+This makes a perl script executable.
+
+=head2 split_like_shell($string)
+
+This function splits a string the same way as the local platform does.
+
+=head2 detildefy($path)
+
+This function substitutes a tilde at the start of a path with the users homedir in an appropriate manner.
+
+=head2 man1_pagename($filename)
+
+Returns the man page filename for a script.
+
+=head2 man3_pagename($filename, $basedir)
+
+Returns the man page filename for a Perl library.
+
+=head1 ACKNOWLEDGEMENTS
+
+Olivier Mengué and Christian Walde made C<make_executable> work on Windows.
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Ken Williams <kwilliams@cpan.org>
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2004 by Ken Williams, Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Unix.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Unix.pm
new file mode 100755
index 0000000000..24f5d01549
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Unix.pm
@@ -0,0 +1,86 @@
+package ExtUtils::Helpers::Unix;
+$ExtUtils::Helpers::Unix::VERSION = '0.026';
+use strict;
+use warnings FATAL => 'all';
+
+use Exporter 5.57 'import';
+our @EXPORT = qw/make_executable detildefy/;
+
+use Carp qw/croak/;
+use Config;
+
+my $layer = $] >= 5.008001 ? ":raw" : "";
+
+sub make_executable {
+ my $filename = shift;
+ my $current_mode = (stat $filename)[2] + 0;
+ if (-T $filename) {
+ open my $fh, "<$layer", $filename;
+ my @lines = <$fh>;
+ if (@lines and $lines[0] =~ s{ \A \#! \s* (?:/\S+/)? perl \b (.*) \z }{$Config{startperl}$1}xms) {
+ open my $out, ">$layer", "$filename.new" or croak "Couldn't open $filename.new: $!";
+ print $out @lines;
+ close $out;
+ rename $filename, "$filename.bak" or croak "Couldn't rename $filename to $filename.bak";
+ rename "$filename.new", $filename or croak "Couldn't rename $filename.new to $filename";
+ unlink "$filename.bak";
+ }
+ }
+ chmod $current_mode | oct(111), $filename;
+ return;
+}
+
+sub detildefy {
+ my $value = shift;
+ # tilde with optional username
+ for ($value) {
+ s{ ^ ~ (?= /|$)} [ $ENV{HOME} || (getpwuid $>)[7] ]ex or # tilde without user name
+ s{ ^ ~ ([^/]+) (?= /|$) } { (getpwnam $1)[7] || "~$1" }ex; # tilde with user name
+ }
+ return $value;
+}
+
+1;
+
+# ABSTRACT: Unix specific helper bits
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+ExtUtils::Helpers::Unix - Unix specific helper bits
+
+=head1 VERSION
+
+version 0.026
+
+=for Pod::Coverage make_executable
+split_like_shell
+detildefy
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Ken Williams <kwilliams@cpan.org>
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2004 by Ken Williams, Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/VMS.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/VMS.pm
new file mode 100755
index 0000000000..cd0e210065
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/VMS.pm
@@ -0,0 +1,117 @@
+package ExtUtils::Helpers::VMS;
+$ExtUtils::Helpers::VMS::VERSION = '0.026';
+use strict;
+use warnings FATAL => 'all';
+
+use Exporter 5.57 'import';
+our @EXPORT = qw/make_executable detildefy/;
+
+use File::Copy qw/copy/;
+
+sub make_executable {
+ my $filename = shift;
+ my $batchname = "$filename.com";
+ copy($filename, $batchname);
+ ExtUtils::Helpers::Unix::make_executable($batchname);
+ return;
+}
+
+sub detildefy {
+ my $arg = shift;
+
+ # 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;
+}
+
+# ABSTRACT: VMS specific helper bits
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+ExtUtils::Helpers::VMS - VMS specific helper bits
+
+=head1 VERSION
+
+version 0.026
+
+=for Pod::Coverage make_executable
+detildefy
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Ken Williams <kwilliams@cpan.org>
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2004 by Ken Williams, Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Windows.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Windows.pm
new file mode 100755
index 0000000000..8b232e400a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/Helpers/Windows.pm
@@ -0,0 +1,70 @@
+package ExtUtils::Helpers::Windows;
+$ExtUtils::Helpers::Windows::VERSION = '0.026';
+use strict;
+use warnings FATAL => 'all';
+
+use Exporter 5.57 'import';
+our @EXPORT = qw/make_executable detildefy/;
+
+use Config;
+use Carp qw/carp croak/;
+use ExtUtils::PL2Bat 'pl2bat';
+
+sub make_executable {
+ my $script = shift;
+ if (-T $script && $script !~ / \. (?:bat|cmd) $ /x) {
+ pl2bat(in => $script, update => 1);
+ }
+ return;
+}
+
+sub detildefy {
+ my $value = shift;
+ $value =~ s{ ^ ~ (?= [/\\] | $ ) }[$ENV{USERPROFILE}]x if $ENV{USERPROFILE};
+ return $value;
+}
+
+1;
+
+# ABSTRACT: Windows specific helper bits
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+ExtUtils::Helpers::Windows - Windows specific helper bits
+
+=head1 VERSION
+
+version 0.026
+
+=for Pod::Coverage make_executable
+split_like_shell
+detildefy
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Ken Williams <kwilliams@cpan.org>
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2004 by Ken Williams, Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/InstallPaths.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/InstallPaths.pm
new file mode 100755
index 0000000000..d5bc16c2b8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/ExtUtils/InstallPaths.pm
@@ -0,0 +1,625 @@
+package ExtUtils::InstallPaths;
+$ExtUtils::InstallPaths::VERSION = '0.012';
+use 5.006;
+use strict;
+use warnings;
+
+use File::Spec ();
+use Carp ();
+use ExtUtils::Config 0.002;
+
+my %complex_accessors = map { $_ => 1 } qw/prefix_relpaths install_sets/;
+my %hash_accessors = map { $_ => 1 } qw/install_path install_base_relpaths original_prefix /;
+
+my %defaults = (
+ installdirs => 'site',
+ install_base => undef,
+ prefix => undef,
+ verbose => 0,
+ create_packlist => 1,
+ dist_name => undef,
+ module_name => undef,
+ destdir => undef,
+ install_path => sub { {} },
+ install_sets => \&_default_install_sets,
+ original_prefix => \&_default_original_prefix,
+ install_base_relpaths => \&_default_base_relpaths,
+ prefix_relpaths => \&_default_prefix_relpaths,
+);
+
+sub _merge_shallow {
+ my ($name, $filter) = @_;
+ return sub {
+ my ($override, $config) = @_;
+ my $defaults = $defaults{$name}->($config);
+ $filter->($_) for grep $filter, values %$override;
+ return { %$defaults, %$override };
+ }
+}
+
+sub _merge_deep {
+ my ($name, $filter) = @_;
+ return sub {
+ my ($override, $config) = @_;
+ my $defaults = $defaults{$name}->($config);
+ my $pair_for = sub {
+ my $key = shift;
+ my %override = %{ $override->{$key} || {} };
+ $filter && $filter->($_) for values %override;
+ return $key => { %{ $defaults->{$key} }, %override };
+ };
+ return { map { $pair_for->($_) } keys %$defaults };
+ }
+}
+
+my %allowed_installdir = map { $_ => 1 } qw/core site vendor/;
+my $must_be_relative = sub { Carp::croak('Value must be a relative path') if File::Spec->file_name_is_absolute($_[0]) };
+my %deep_filter = map { $_ => $must_be_relative } qw/install_base_relpaths prefix_relpaths/;
+my %filter = (
+ installdirs => sub {
+ my $value = shift;
+ $value = 'core', Carp::carp('Perhaps you meant installdirs to be "core" rather than "perl"?') if $value eq 'perl';
+ Carp::croak('installdirs must be one of "core", "site", or "vendor"') if not $allowed_installdir{$value};
+ return $value;
+ },
+ (map { $_ => _merge_shallow($_, $deep_filter{$_}) } qw/original_prefix install_base_relpaths/),
+ (map { $_ => _merge_deep($_, $deep_filter{$_}) } qw/install_sets prefix_relpaths/),
+);
+
+sub new {
+ my ($class, %args) = @_;
+ my $config = $args{config} || ExtUtils::Config->new;
+ my %self = (
+ config => $config,
+ map { $_ => exists $args{$_} ? $filter{$_} ? $filter{$_}->($args{$_}, $config) : $args{$_} : ref $defaults{$_} ? $defaults{$_}->($config) : $defaults{$_} } keys %defaults,
+ );
+ $self{module_name} ||= do { my $module_name = $self{dist_name}; $module_name =~ s/-/::/g; $module_name } if defined $self{dist_name};
+ return bless \%self, $class;
+}
+
+for my $attribute (keys %defaults) {
+ no strict qw/refs/;
+ *{$attribute} = $hash_accessors{$attribute} ?
+ sub {
+ my ($self, $key) = @_;
+ Carp::confess("$attribute needs key") if not defined $key;
+ return $self->{$attribute}{$key};
+ } :
+ $complex_accessors{$attribute} ?
+ sub {
+ my ($self, $installdirs, $key) = @_;
+ Carp::confess("$attribute needs installdir") if not defined $installdirs;
+ Carp::confess("$attribute needs key") if not defined $key;
+ return $self->{$attribute}{$installdirs}{$key};
+ } :
+ sub {
+ my $self = shift;
+ return $self->{$attribute};
+ };
+}
+
+my $script = $] > 5.008000 ? 'script' : 'bin';
+my @install_sets_keys = qw/lib arch bin script bindoc libdoc binhtml libhtml/;
+my @install_sets_tail = ('bin', $script, qw/man1dir man3dir html1dir html3dir/);
+my %install_sets_values = (
+ core => [ qw/privlib archlib /, @install_sets_tail ],
+ site => [ map { "site$_" } qw/lib arch/, @install_sets_tail ],
+ vendor => [ map { "vendor$_" } qw/lib arch/, @install_sets_tail ],
+);
+
+sub _default_install_sets {
+ my $c = shift;
+
+ my %ret;
+ for my $installdir (qw/core site vendor/) {
+ @{$ret{$installdir}}{@install_sets_keys} = map { $c->get("install$_") } @{ $install_sets_values{$installdir} };
+ }
+ return \%ret;
+}
+
+sub _default_base_relpaths {
+ my $config = shift;
+ return {
+ lib => ['lib', 'perl5'],
+ arch => ['lib', 'perl5', $config->get('archname')],
+ bin => ['bin'],
+ script => ['bin'],
+ bindoc => ['man', 'man1'],
+ libdoc => ['man', 'man3'],
+ binhtml => ['html'],
+ libhtml => ['html'],
+ };
+}
+
+my %common_prefix_relpaths = (
+ bin => ['bin'],
+ script => ['bin'],
+ bindoc => ['man', 'man1'],
+ libdoc => ['man', 'man3'],
+ binhtml => ['html'],
+ libhtml => ['html'],
+);
+
+sub _default_prefix_relpaths {
+ my $c = shift;
+
+ my @libstyle = $c->get('installstyle') ? File::Spec->splitdir($c->get('installstyle')) : qw(lib perl5);
+ my $arch = $c->get('archname');
+ my $version = $c->get('version');
+
+ return {
+ core => {
+ lib => [@libstyle],
+ arch => [@libstyle, $version, $arch],
+ %common_prefix_relpaths,
+ },
+ vendor => {
+ lib => [@libstyle],
+ arch => [@libstyle, $version, $arch],
+ %common_prefix_relpaths,
+ },
+ site => {
+ lib => [@libstyle, 'site_perl'],
+ arch => [@libstyle, 'site_perl', $version, $arch],
+ %common_prefix_relpaths,
+ },
+ };
+}
+
+sub _default_original_prefix {
+ my $c = shift;
+
+ my %ret = (
+ core => $c->get('installprefixexp'),
+ site => $c->get('siteprefixexp'),
+ vendor => $c->get('usevendorprefix') ? $c->get('vendorprefixexp') : '',
+ );
+
+ return \%ret;
+}
+
+sub _log_verbose {
+ my $self = shift;
+ print @_ if $self->verbose;
+ return;
+}
+
+# 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;
+ my $installable = $self->install_destination($type) && ( $self->install_path($type) || $self->install_sets($self->installdirs, $type));
+ return $installable ? 1 : 0;
+}
+
+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 File::Spec->catdir(@{$default});
+ }
+}
+
+# Translated from ExtUtils::MM_Unix::prefixify()
+sub _prefixify_novms {
+ 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 (not defined $path or 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 _catprefix_vms {
+ 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_vms {
+ my($self, $path, $sprefix, $type) = @_;
+ my $rprefix = $self->prefix;
+
+ return '' unless defined $path;
+
+ $self->_log_verbose(" prefixify $path from $sprefix to $rprefix\n");
+
+ require VMS::Filespec;
+ # 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->get('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_vms($rprefix, $path_dirs);
+ }
+ else {
+ $self->_log_verbose(" cannot prefixify.\n");
+ return File::Spec->catdir($self->prefix_relpaths($self->installdirs, $type));
+ }
+ }
+
+ $self->_log_verbose(" now $path\n");
+
+ return $path;
+}
+
+BEGIN { *_prefixify = $^O eq 'VMS' ? \&_prefixify_vms : \&_prefixify_novms }
+
+# Translated from ExtUtils::MM_Any::init_INSTALL_from_PREFIX
+sub prefix_relative {
+ my ($self, $installdirs, $type) = @_;
+
+ my $relpath = $self->install_sets($installdirs, $type);
+
+ return $self->_prefixify($relpath, $self->original_prefix($installdirs), $type);
+}
+
+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($self->installdirs, $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 = ( %{ $self->{install_path} },
+ $self->install_base ? %{ $self->{install_base_relpaths} }
+ : $self->prefix ? %{ $self->{prefix_relpaths}{ $self->installdirs } }
+ : %{ $self->{install_sets}{ $self->installdirs } });
+
+ return sort keys %types;
+}
+
+sub install_map {
+ my ($self, $dirs) = @_;
+
+ my %localdir_for;
+ if ($dirs && %$dirs) {
+ %localdir_for = %$dirs;
+ }
+ else {
+ foreach my $type ($self->install_types) {
+ $localdir_for{$type} = File::Spec->catdir('blib', $type);
+ }
+ }
+
+ my (%map, @skipping);
+ foreach my $type (keys %localdir_for) {
+ next if not -e $localdir_for{$type};
+ if (my $dest = $self->install_destination($type)) {
+ $map{$localdir_for{$type}} = $dest;
+ } else {
+ push @skipping, $type;
+ }
+ }
+
+ warn "WARNING: Can't figure out install path for types: @skipping\nFiles 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;
+}
+
+1;
+
+# ABSTRACT: Build.PL install path logic made easy
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+ExtUtils::InstallPaths - Build.PL install path logic made easy
+
+=head1 VERSION
+
+version 0.012
+
+=head1 SYNOPSIS
+
+ use ExtUtils::InstallPaths;
+ use ExtUtils::Install 'install';
+ GetOptions(\my %opt, 'install_base=s', 'install_path=s%', 'installdirs=s', 'destdir=s', 'prefix=s', 'uninst:1', 'verbose:1');
+ my $paths = ExtUtils::InstallPaths->new(%opt, dist_name => $dist_name);
+ install($paths->install_map, $opt{verbose}, 0, $opt{uninst});
+
+=head1 DESCRIPTION
+
+This module tries to make install path resolution as easy as possible.
+
+When you want to install a module, it needs to figure out where to install things. The nutshell version of how this works is that default installation locations are determined from L<ExtUtils::Config>, and they may be individually overridden by using the C<install_path> attribute. An C<install_base> attribute lets you specify an alternative installation root like F</home/foo> and C<prefix> does something similar in a rather different (and more complicated) way. C<destdir> lets you specify a temporary installation directory like F</tmp/install> in case you want to create bundled-up installable packages.
+
+The following types are supported by default.
+
+=over 4
+
+=item * lib
+
+Usually pure-Perl module files ending in F<.pm> or F<.pod>.
+
+=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, you may want 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. Unless explicitly set, this is only available on platforms supporting manpages.
+
+=item * libdoc
+
+Documentation for the stuff in C<lib> and C<arch>. This is usually generated from the POD in F<.pm> and F<.pod> files. Under Unix, these are manual pages belonging to the 'man3' category. Unless explicitly set, this is only available on platforms supporting manpages.
+
+=item * binhtml
+
+This is the same as C<bindoc> above, but applies to HTML documents. Unless explicitly set, this is only available when perl was configured to do so.
+
+=item * libhtml
+
+This is the same as C<libdoc> above, but applies to HTML documents. Unless explicitly set, this is only available when perl was configured to do so.
+
+=back
+
+=head1 ATTRIBUTES
+
+=head2 installdirs
+
+The default destinations for these installable things come from entries in your system's configuration. 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 ExtUtils::Config:
+
+ 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".
+
+=head2 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
+
+=head2 prefix
+
+This sets a prefix, identical to ExtUtils::MakeMaker's PREFIX option. This does something similar to C<install_base> in a much more complicated way.
+
+=head2 config()
+
+The L<ExtUtils::Config|ExtUtils::Config> object used for this object.
+
+=head2 verbose
+
+The verbosity of ExtUtils::InstallPaths. It defaults to 0
+
+=head2 create_packlist
+
+Together with C<module_name> this controls whether a packlist will be added; it defaults to 1.
+
+=head2 dist_name
+
+The name of the current module.
+
+=head2 module_name
+
+The name of the main module of the package. This is required for packlist creation, but in the future it may be replaced by dist_name. It defaults to C<dist_name =~ s/-/::/gr> if dist_name is set.
+
+=head2 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. E.g. Setting C<destdir> to C<"/tmp/foo"> 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.
+
+=head1 METHODS
+
+=head2 new
+
+Create a new ExtUtils::InstallPaths object. B<All attributes are valid arguments> to the constructor, as well as this:
+
+=over 4
+
+=item * install_path
+
+This must be a hashref with the type as keys and the destination as values.
+
+=item * install_base_relpaths
+
+This must be a hashref with types as keys and a path relative to the install_base as value.
+
+=item * prefix_relpaths
+
+This must be a hashref any of these three keys: core, vendor, site. Each of the values mush be a hashref with types as keys and a path relative to the prefix as value. You probably want to make these three hashrefs identical.
+
+=item * original_prefix
+
+This must be a hashref with the legal installdirs values as keys and the prefix directories as values.
+
+=item * install_sets
+
+This mush be a hashref with the legal installdirs are keys, and the values being hashrefs with types as keys and locations as values.
+
+=back
+
+=head2 install_map()
+
+Return a map suitable for use with L<ExtUtils::Install>. B<In most cases, this is the only method you'll need>.
+
+=head2 install_destination($type)
+
+Returns the destination of a certain type.
+
+=head2 install_types()
+
+Return a list of all supported install types in the current configuration.
+
+=head2 is_default_installable($type)
+
+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 the configuration object or set explicitly by the user via install_path.
+
+=head2 install_path($type)
+
+Gets the install path for a certain type.
+
+=head2 install_sets($installdirs, $type)
+
+Get the path for a certain C<$type> with a certain C<$installdirs>.
+
+=head2 install_base_relpaths($type, $relpath)
+
+Get the relative paths for use with install_base for a certain type.
+
+=head2 prefix_relative($installdirs, $type)
+
+Gets the path of a certain C<$type> and C<$installdirs> relative to the prefix.
+
+=head2 prefix_relpaths($install_dirs, $type)
+
+Get the default relative path to use in case the config install paths cannot be prefixified. You do not want to use this to get any relative path, but may require it to set it for custom types.
+
+=head2 original_prefix($installdirs)
+
+Get the original prefix for a certain type of $installdirs.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item * L<Build.PL spec|http://github.com/dagolden/cpan-api-buildpl/blob/master/lib/CPAN/API/BuildPL.pm>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Ken Williams <kwilliams@cpan.org>
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2011 by Ken Williams, Leon Timmermans.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/File/Listing.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/File/Listing.pm
index b94c5b3910..de1e9eb5db 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/File/Listing.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/File/Listing.pm
@@ -4,10 +4,10 @@ use strict;
use warnings;
use Carp ();
use HTTP::Date qw(str2time);
-use base qw( Exporter );
+use Exporter 5.57 qw( import );
# ABSTRACT: Parse directory listing
-our $VERSION = '6.14'; # VERSION
+our $VERSION = '6.16'; # VERSION
sub Version { $File::Listing::VERSION; }
@@ -121,7 +121,7 @@ sub parse
push(@files, $pkg->line($line, $tz, $error));
}
}
- wantarray ? @files : \@files; ## no critic (Freenode::Wantarray)
+ wantarray ? @files : \@files; ## no critic (Community::Wantarray)
}
@@ -246,10 +246,14 @@ sub line
my ($date, $size_or_dir, $name, $size);
+ # usual format:
# 02-05-96 10:48AM 1415 src.slf
# 09-10-96 09:18AM <DIR> sl_util
+ # alternative dos format with four-digit year:
+ # 02-05-2022 10:48AM 1415 src.slf
+ # 09-10-2022 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
+ /^(\d\d-\d\d-\d{2,4}\s+\d\d:\d\d\wM) # Date and time info
\s+ # Some space
(<\w{3}>|\d+) # Dir or Size
\s+ # Some more space
@@ -399,7 +403,7 @@ File::Listing - Parse directory listing
=head1 VERSION
-version 6.14
+version 6.16
=head1 SYNOPSIS
@@ -544,6 +548,8 @@ Gavin Peters
Graeme Thompson
+Grant Street Group
+
Hans-H. Froehlich
Ian Kilgore
@@ -608,7 +614,7 @@ uid39246
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 1996-2020 by Gisle Aas.
+This software is copyright (c) 1996-2022 by Gisle Aas.
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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Entities.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Entities.pm
index 15a85de001..306ac9761a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Entities.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Entities.pm
@@ -136,7 +136,7 @@ modify it under the same terms as Perl itself.
=cut
use strict;
-our $VERSION = '3.76';
+our $VERSION = '3.81';
our (%entity2char, %char2entity);
require 5.004;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Filter.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Filter.pm
index cf353714d6..5f4b7e8b6c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Filter.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Filter.pm
@@ -4,7 +4,7 @@ use strict;
require HTML::Parser;
our @ISA = qw(HTML::Parser);
-our $VERSION = '3.76';
+our $VERSION = '3.81';
sub declaration { $_[0]->output("<!$_[1]>") }
sub process { $_[0]->output($_[2]) }
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/HeadParser.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/HeadParser.pm
index 3128924f51..e3e6df5bab 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/HeadParser.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/HeadParser.pm
@@ -91,7 +91,7 @@ use HTML::Entities ();
use strict;
our $DEBUG;
#$DEBUG = 1;
-our $VERSION = '3.76';
+our $VERSION = '3.81';
=item $hp = HTML::HeadParser->new
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/LinkExtor.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/LinkExtor.pm
index 267cf5f5ab..e2a652a757 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/LinkExtor.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/LinkExtor.pm
@@ -2,7 +2,7 @@ package HTML::LinkExtor;
require HTML::Parser;
our @ISA = qw(HTML::Parser);
-our $VERSION = '3.76';
+our $VERSION = '3.81';
=head1 NAME
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Parser.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Parser.pm
index d44d0a2f57..c7579821df 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Parser.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/Parser.pm
@@ -2,7 +2,7 @@ package HTML::Parser;
use strict;
-our $VERSION = '3.76';
+our $VERSION = '3.81';
require HTML::Entities;
@@ -129,30 +129,32 @@ HTML::Parser - HTML parser class
=head1 SYNOPSIS
- use strict;
- use warnings;
- use HTML::Parser ();
-
- # Create parser object
- my $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);
- # ...
- # signal end of document
- $p->eof;
-
- # Parse directly from file
- $p->parse_file("foo.html");
- # or
- open(my $fh, "<:utf8", "foo.html") || die;
- $p->parse_file($fh);
+ use strict;
+ use warnings;
+ use HTML::Parser ();
+
+ # Create parser object
+ my $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);
+
+ # ...
+ # signal end of document
+ $p->eof;
+
+ # Parse directly from file
+ $p->parse_file("foo.html");
+
+ # or
+ open(my $fh, "<:utf8", "foo.html") || die;
+ $p->parse_file($fh);
=head1 DESCRIPTION
@@ -262,14 +264,14 @@ 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;
+ while (1) {
+ my $chunk = &$code_ref();
+ if (!defined($chunk) || !length($chunk)) {
+ $p->eof;
+ return $p;
+ }
+ $p->parse($chunk) || return undef;
}
- $p->parse($chunk) || return undef;
- }
But it is more efficient as this loop runs internally in XS code.
@@ -988,24 +990,24 @@ 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"
- );
+ $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.
@@ -1023,19 +1025,21 @@ 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 $!;
+ 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 $!;
+ 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.
@@ -1046,24 +1050,24 @@ 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"
- );
- }
+ 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";
+ 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
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/PullParser.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/PullParser.pm
index d7b4885fea..b5275633d4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/PullParser.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/PullParser.pm
@@ -4,7 +4,7 @@ use strict;
require HTML::Parser;
our @ISA = qw(HTML::Parser);
-our $VERSION = '3.76';
+our $VERSION = '3.81';
use Carp ();
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/TokeParser.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/TokeParser.pm
index 8a8239c3d0..90912a6e4b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/TokeParser.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTML/TokeParser.pm
@@ -4,7 +4,7 @@ use strict;
require HTML::PullParser;
our @ISA = qw(HTML::PullParser);
-our $VERSION = '3.76';
+our $VERSION = '3.81';
use Carp ();
use HTML::Entities qw(decode_entities);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies.pm
index 4f055d5b00..3e5b25639b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies.pm
@@ -5,7 +5,7 @@ use HTTP::Date qw(str2time parse_date time2str);
use HTTP::Headers::Util qw(_split_header_words join_header_words);
our $EPOCH_OFFSET;
-our $VERSION = '6.10';
+our $VERSION = '6.11';
# Legacy: because "use "HTTP::Cookies" used be the ONLY way
# to load the class HTTP::Cookies::Netscape.
@@ -682,7 +682,7 @@ HTTP::Cookies - HTTP cookie jars
=head1 VERSION
-version 6.10
+version 6.11
=head1 SYNOPSIS
@@ -803,7 +803,7 @@ attributes like "Comment" and "CommentURL".
=item $cookie_jar->save( file => $file, ignore_discard => $ignore_discard )
-This method file saves the state of the $cookie_jar to a file.
+This method 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 $ignore_discard value is true (or not specified,
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm
index 8f73ead280..caf912cf44 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm
@@ -2,7 +2,7 @@ package HTTP::Cookies::Microsoft;
use strict;
-our $VERSION = '6.10';
+our $VERSION = '6.11';
require HTTP::Cookies;
our @ISA=qw(HTTP::Cookies);
@@ -244,7 +244,7 @@ HTTP::Cookies::Microsoft - Access to Microsoft cookies files
=head1 VERSION
-version 6.10
+version 6.11
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm
index 15b34c0307..fb7a18d7f6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm
@@ -2,7 +2,7 @@ package HTTP::Cookies::Netscape;
use strict;
-our $VERSION = '6.10';
+our $VERSION = '6.11';
require HTTP::Cookies;
our @ISA=qw(HTTP::Cookies);
@@ -82,7 +82,7 @@ HTTP::Cookies::Netscape - Access to Netscape cookies files
=head1 VERSION
-version 6.10
+version 6.11
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Daemon.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Daemon.pm
index c14f498d03..f9b321671e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Daemon.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Daemon.pm
@@ -1,11 +1,11 @@
-package HTTP::Daemon; # git description: v6.13-4-ge6492b6
+package HTTP::Daemon; # git description: v6.15-4-gbab5825
# ABSTRACT: A simple http server class
use strict;
use warnings;
-our $VERSION = '6.14';
+our $VERSION = '6.16';
use Socket ();
use IO::Socket::IP;
@@ -192,9 +192,9 @@ READ_HEADER:
}
# 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');
+ my $tr_enc = $r->header('Transfer-Encoding');
+ my $ct_type = $r->header('Content-Type');
+ my $ct_len = $r->header('Content-Length');
# Act on the Expect header, if it's there
for my $e ($r->header('Expect')) {
@@ -209,7 +209,7 @@ READ_HEADER:
}
}
- if ($te && lc($te) eq 'chunked') {
+ if ($tr_enc && lc($tr_enc) eq 'chunked') {
# Handle chunked transfer encoding
my $body = "";
@@ -280,32 +280,60 @@ READ_HEADER:
$r->push_header($key, $val) if $key;
}
- elsif ($te) {
+ elsif ($tr_enc) {
$self->send_error(501); # Unknown transfer encoding
- $self->reason("Unknown transfer encoding '$te'");
+ $self->reason("Unknown transfer encoding '$tr_enc'");
return;
}
- elsif ($len) {
+ elsif ($ct_len) {
+
+ # After a security issue, we ensure we comply to
+ # RFC-7230 -- HTTP/1.1 Message Syntax and Routing
+ # section 3.3.2 -- Content-Length
+ # section 3.3.3 -- Message Body Length
+
+ # split and clean up Content-Length ', ' separated string
+ my @vals = map {my $str = $_; $str =~ s/^\s+//; $str =~ s/\s+$//; $str }
+ split ',', $ct_len;
+ # check that they are all numbers (RFC: Content-Length = 1*DIGIT)
+ my @nums = grep { /^[0-9]+$/} @vals;
+ unless (@vals == @nums) {
+ my $reason = "Content-Length value must be an unsigned integer";
+ $self->send_error(400, $reason);
+ $self->reason($reason);
+ return;
+ }
+ # check they are all the same
+ my $ct_len = shift @nums;
+ foreach (@nums) {
+ next if $_ == $ct_len;
+ my $reason = "Content-Length values are not the same";
+ $self->send_error(400, $reason);
+ $self->reason($reason);
+ return;
+ }
+ # ensure we have now a fixed header, with only 1 value
+ $r->header('Content-Length' => $ct_len);
# Plain body specified by "Content-Length"
- my $missing = $len - length($buf);
+ my $missing = $ct_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) = '';
+ if (length($buf) > $ct_len) {
+ $r->content(substr($buf, 0, $ct_len));
+ substr($buf, 0, $ct_len) = '';
}
else {
$r->content($buf);
$buf = '';
}
}
- elsif ($ct && $ct =~ m/^multipart\/\w+\s*;.*boundary\s*=\s*("?)(\w+)\1/i) {
+ elsif ($ct_type && $ct_type =~ m/^multipart\/\w+\s*;.*boundary\s*=\s*("?)(\w+)\1/i) {
# Handle multipart content type
my $boundary = "$CRLF--$2--";
@@ -497,8 +525,8 @@ sub send_redirect {
print $self "Location: $loc$CRLF";
if ($content) {
- my $ct = $content =~ /^\s*</ ? "text/html" : "text/plain";
- print $self "Content-Type: $ct$CRLF";
+ my $ct_type = $content =~ /^\s*</ ? "text/html" : "text/plain";
+ print $self "Content-Type: $ct_type$CRLF";
}
print $self $CRLF;
print $self $content if $content && !$self->head_request;
@@ -537,12 +565,12 @@ sub send_file_response {
local (*F);
sysopen(F, $file, 0) or return $self->send_error(RC_FORBIDDEN);
binmode(F);
- my ($ct, $ce) = guess_media_type($file);
+ my ($mime_type, $file_enc) = 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-Type: $mime_type$CRLF";
+ print $self "Content-Encoding: $file_enc$CRLF" if $file_enc;
print $self "Content-Length: $size$CRLF" if $size;
print $self "Last-Modified: ", time2str($mtime), "$CRLF" if $mtime;
print $self $CRLF;
@@ -603,7 +631,7 @@ HTTP::Daemon - A simple http server class
=head1 VERSION
-version 6.14
+version 6.16
=head1 SYNOPSIS
@@ -915,7 +943,7 @@ Gisle Aas <gisle@activestate.com>
=head1 CONTRIBUTORS
-=for stopwords Olaf Alders Ville Skyttä Karen Etheridge Mark Stosberg Shoichi Kaji Chase Whitener Slaven Rezic Petr Písař Zefram Alexey Tourbin Bron Gondwana Michal Josef Špaček Mike Schilli Tom Hukins Adam Kennedy Sjogren Alex Kapranoff amire80 Andreas J. Koenig Bill Mann Daniel Hedlund David E. Wheeler DAVIDRW Father Chrysostomos Ferenc Erki FWILES Gavin Peters Graeme Thompson Hans-H. Froehlich Ian Kilgore Jacob J jefflee john9art murphy Ondrej Hanak Perlover Peter Rabbitson phrstbrn Robert Stone Rolf Grossmann ruff sasao Sean M. Burke Spiros Denaxas Steve Hay Todd Lipcon Tony Finch Toru Yamaguchi Yuri Karaban
+=for stopwords Olaf Alders Ville Skyttä Graham Knop Karen Etheridge Mark Stosberg Shoichi Kaji Chase Whitener Theo van Hoesel Slaven Rezic Petr Písař Zefram Alexey Tourbin Bron Gondwana Michal Josef Špaček Mike Schilli Tom Hukins Adam Kennedy Sjogren Alex Kapranoff amire80 Andreas J. Koenig Bill Mann Daniel Hedlund David E. Wheeler DAVIDRW Father Chrysostomos Ferenc Erki FWILES Gavin Peters Graeme Thompson Hans-H. Froehlich Ian Kilgore Jacob J jefflee john9art murphy Ondrej Hanak Perlover Peter Rabbitson phrstbrn Robert Stone Rolf Grossmann ruff sasao Sean M. Burke Spiros Denaxas Steve Hay Todd Lipcon Tony Finch Toru Yamaguchi Yuri Karaban
=over 4
@@ -929,6 +957,10 @@ Ville Skyttä <ville.skytta@iki.fi>
=item *
+Graham Knop <haarg@haarg.org>
+
+=item *
+
Karen Etheridge <ether@cpan.org>
=item *
@@ -945,6 +977,10 @@ Chase Whitener <capoeirab@cpan.org>
=item *
+Theo van Hoesel <tvanhoesel@perceptyx.com>
+
+=item *
+
Slaven Rezic <slaven@rezic.de>
=item *
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Date.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Date.pm
index a57d0b8ded..53711c5865 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Date.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/HTTP/Date.pm
@@ -2,7 +2,7 @@ package HTTP::Date;
use strict;
-our $VERSION = '6.05';
+our $VERSION = '6.06';
require Exporter;
our @ISA = qw(Exporter);
@@ -179,7 +179,7 @@ sub parse_date ($) {
||
- # Windows 'dir' 11-12-96 03:52PM
+ # Windows 'dir': '11-12-96 03:52PM' and four-digit year variant
(
( $mon, $day, $yr, $hr, $min, $ampm )
= /^
@@ -187,7 +187,7 @@ sub parse_date ($) {
-
(\d{2}) # day
-
- (\d{2}) # year
+ (\d{2,4}) # year
\s+
(\d\d?):(\d\d)([APap][Mm]) # hour:min AM or PM
\s*$
@@ -289,7 +289,7 @@ HTTP::Date - HTTP::Date - date conversion routines
=head1 VERSION
-version 6.05
+version 6.06
=head1 SYNOPSIS
@@ -378,7 +378,8 @@ The function is able to parse the following formats:
"Feb 3 1994" -- Unix 'ls -l' format
"Feb 3 17:03" -- Unix 'ls -l' format
- "11-15-96 03:52PM" -- Windows 'dir' format
+ "11-15-96 03:52PM" -- Windows 'dir' format
+ "11-15-1996 03:52PM" -- Windows 'dir' format with four-digit year
The parser ignores leading and trailing whitespace. It also allow the
seconds to be missing and the month to be numerical in most formats.
@@ -410,7 +411,7 @@ Gisle Aas <gisle@activestate.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 1995-2019 by Gisle Aas.
+This software is copyright (c) 1995 by Gisle Aas.
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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP.pm
deleted file mode 100644
index 1db7504a6e..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP.pm
+++ /dev/null
@@ -1,671 +0,0 @@
-package LWP;
-
-our $VERSION = '6.61';
-
-require LWP::UserAgent; # this should load everything you need
-
-sub Version { $VERSION; }
-
-1;
-
-__END__
-
-=pod
-
-=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 C<http>, C<https>, C<gopher>,
-C<ftp>, C<news>, C<file>, and C<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
-L<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 L<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 L<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 L<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 L<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 L<HTTP::Request> object as
-argument and (eventually) returns a L<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 C<< <head> >> section of HTML documents.
-
-=item *
-
-B<proxy> and B<no_proxy> specify if and when to go through
-a proxy server. L<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
-L<LWP::UserAgent>. The library includes a
-sub-class, L<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 C<$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 C<< $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 an "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 L<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 C<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 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 L<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 L<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 L<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 L<URI>.
-You might want to set it to L<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 Guenther, Daniel 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
deleted file mode 100644
index 6af1441bdd..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
+++ /dev/null
@@ -1,86 +0,0 @@
-package LWP::Authen::Basic;
-
-use strict;
-
-our $VERSION = '6.61';
-
-require Encode;
-require MIME::Base64;
-
-sub auth_header {
- my($class, $user, $pass, $request, $ua, $h) = @_;
-
- my $userpass = "$user:$pass";
- # https://tools.ietf.org/html/rfc7617#section-2.1
- my $charset = uc($h->{auth_param}->{charset} || "");
- $userpass = Encode::encode($charset, $userpass)
- if ($charset eq "UTF-8");
-
- return "Basic " . MIME::Base64::encode($userpass, "");
-}
-
-sub _reauth_requested {
- return 0;
-}
-
-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;
-
- my $reauth_requested
- = $class->_reauth_requested($auth_param, $ua, $request, $auth_header);
- if ( !$proxy
- && (!$request->header($auth_header) || $reauth_requested)
- && $ua->credentials($host_port, $realm))
- {
- # we can make sure this handler applies and retry
- add_path($h, $url->path)
- unless $reauth_requested; # Do not clobber up path list for retries
- 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
deleted file mode 100644
index bb1d9ae3c8..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
+++ /dev/null
@@ -1,80 +0,0 @@
-package LWP::Authen::Digest;
-
-use strict;
-use parent 'LWP::Authen::Basic';
-
-our $VERSION = '6.61';
-
-require Digest::MD5;
-
-sub _reauth_requested {
- my ($class, $auth_param, $ua, $request, $auth_header) = @_;
- my $ret = defined($$auth_param{stale}) && lc($$auth_param{stale}) eq 'true';
- if ($ret) {
- my $hdr = $request->header($auth_header);
- $hdr =~ tr/,/;/; # "," is used to separate auth-params!!
- ($hdr) = HTTP::Headers::Util::split_header_words($hdr);
- my $nonce = {@$hdr}->{nonce};
- delete $$ua{authen_md5_nonce_count}{$nonce};
- }
- return $ret;
-}
-
-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 opaque);
- my @pairs;
- for (@order) {
- next unless defined $resp{$_};
-
- # RFC2617 says 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
deleted file mode 100644
index de745af6ac..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
+++ /dev/null
@@ -1,183 +0,0 @@
-package LWP::Authen::Ntlm;
-
-use strict;
-
-our $VERSION = '6.61';
-
-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;
-__END__
-
-=pod
-
-=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
-
-L<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 L<Mime::Base64>, which Bush's L<Authen::NTLM> makes use of. Therefore, it is
-necessary to ensure that your Mime::Base64 module supports exporting of the
-C<encode_base64> and C<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 C<< "keep_alive=>1" >> option to the L<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 L<HTTP::Request> object's C<authorization_basic()> method to set
-the credentials. Note, too, that the C<'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>.
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/ConnCache.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/ConnCache.pm
deleted file mode 100644
index 67dfff6f6c..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/ConnCache.pm
+++ /dev/null
@@ -1,350 +0,0 @@
-package LWP::ConnCache;
-
-use strict;
-
-our $VERSION = '6.61';
-our $DEBUG;
-
-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__
-
-=pod
-
-=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 L<LWP::UserAgent>.
-
-=head1 METHODS
-
-The following basic methods are provided:
-
-=head2 new
-
- my $cache = LWP::ConnCache->new( %options )
-
-This method constructs a new L<LWP::ConnCache> object. The only
-option currently accepted is C<total_capacity>. If specified it
-initializes the L<LWP::ConnCache/total_capacity> option. It defaults to C<1>.
-
-=head2 total_capacity
-
- my $cap = $cache->total_capacity;
- $cache->total_capacity(0); # drop all immediately
- $cache->total_capacity(undef); # no limit
- $cache->total_capacity($number);
-
-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.
-
-=head2 capacity
-
- my $http_capacity = $cache->capacity('http');
- $cache->capacity('http', 2 );
-
-Get/set a limit for the number of connections of the specified type
-that can be cached. The first parameter is a short string like
-C<"http"> or C<"ftp">.
-
-=head2 drop
-
- $cache->drop(); # Drop ALL connections
- # which is just a synonym for:
- $cache->drop(sub{1}); # Drop ALL connections
- # drop all connections older than 22 seconds and add a reason for it!
- $cache->drop(22, "Older than 22 secs dropped");
- # which is just a synonym for:
- $cache->drop(sub {
- my ($conn, $type, $key, $deposit_time) = @_;
- if ($deposit_time < 22) {
- # true values drop the connection
- return 1;
- }
- # false values don't drop the connection
- return 0;
- }, "Older than 22 secs dropped" );
-
-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 C<($conn, $type, $key, $deposit_time)> as arguments.
-
-Shortcuts: If the C<$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 C<reason> is passed on to the L<LWP::ConnCache/dropped> method.
-
-=head2 prune
-
- $cache->prune();
-
-Calling this method will drop all connections that are dead. This is
-tested by calling the L<LWP::ConnCache/ping> method on the connections. If
-the L<LWP::ConnCache/ping> method exists and returns a false value, then the
-connection is dropped.
-
-=head2 get_types
-
- my @types = $cache->get_types();
-
-This returns all the C<type> fields used for the currently cached
-connections.
-
-=head2 get_connections
-
- my @conns = $cache->get_connections(); # all connections
- my @conns = $cache->get_connections('http'); # connections for http
-
-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.
-
-=head1 PROTOCOL METHODS
-
-The following methods are called by low-level protocol modules to
-try to save away connections and to get them back.
-
-=head2 deposit
-
- $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 be added.
-
-=head2 withdraw
-
- my $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.
-
-=head1 INTERNAL METHODS
-
-The following methods are called internally. Subclasses might want to
-override them.
-
-=head2 enforce_limits
-
- $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.
-
-=head2 dropping
-
- $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
-C<$LWP::ConnCache::DEBUG> variable is set and nothing more.
-
-=head1 SUBCLASSING
-
-For specialized cache policy it makes sense to subclass
-C<LWP::ConnCache> and perhaps override the L<LWP::ConnCache/deposit>,
-L<LWP::ConnCache/enforce_limits>, and L<LWP::ConnCache/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.
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug.pm
deleted file mode 100644
index 1e2ea15d53..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug.pm
+++ /dev/null
@@ -1,112 +0,0 @@
-package LWP::Debug; # legacy
-
-our $VERSION = '6.61';
-
-require Exporter;
-our @ISA = qw(Exporter);
-our @EXPORT_OK = qw(level trace debug conns);
-
-use Carp ();
-
-my @levels = qw(trace debug conns);
-our %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__
-
-=pod
-
-=head1 NAME
-
-LWP::Debug - deprecated
-
-=head1 DESCRIPTION
-
-This module has been deprecated. Please see L<LWP::ConsoleLogger> for your
-debugging needs.
-
-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
-L<WireShark|http://www.wireshark.org/> program 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::ConsoleLogger>, L<LWP::ConsoleLogger::Everywhere>, L<LWP::UserAgent>
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
deleted file mode 100644
index a6cd44cbea..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
+++ /dev/null
@@ -1,29 +0,0 @@
-package LWP::Debug::TraceHTTP;
-
-# Just call:
-#
-# require LWP::Debug::TraceHTTP;
-# LWP::Protocol::implementor('http', 'LWP::Debug::TraceHTTP');
-#
-# to use this module to trace all calls to the HTTP socket object in
-# programs that use LWP.
-
-use strict;
-use parent 'LWP::Protocol::http';
-
-our $VERSION = '6.61';
-
-package # hide from PAUSE
- LWP::Debug::TraceHTTP::Socket;
-
-use Data::Dump 1.13;
-use Data::Dump::Trace qw(autowrap mcall);
-
-autowrap("LWP::Protocol::http::Socket" => "sock");
-
-sub new {
- my $class = shift;
- return mcall("LWP::Protocol::http::Socket" => "new", undef, @_);
-}
-
-1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/DebugFile.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/DebugFile.pm
deleted file mode 100644
index 27f3dbb228..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/DebugFile.pm
+++ /dev/null
@@ -1,7 +0,0 @@
-package LWP::DebugFile;
-
-our $VERSION = '6.61';
-
-# legacy stub
-
-1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
deleted file mode 100644
index a5a9e7599b..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
+++ /dev/null
@@ -1,48 +0,0 @@
-package LWP::MemberMixin;
-
-our $VERSION = '6.61';
-
-sub _elem {
- my $self = shift;
- my $elem = shift;
- my $old = $self->{$elem};
- $self->{$elem} = shift if @_;
- return $old;
-}
-
-1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-LWP::MemberMixin - Member access mixin class
-
-=head1 SYNOPSIS
-
- package Foo;
- use parent qw(LWP::MemberMixin);
-
-=head1 DESCRIPTION
-
-A mixin class to get methods that provide easy access to member
-variables in the C<%$self>.
-Ideally there should be better Perl language support for this.
-
-=head1 METHODS
-
-There is only one method provided:
-
-=head2 _elem
-
- _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.
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol.pm
deleted file mode 100644
index 1d656cf850..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol.pm
+++ /dev/null
@@ -1,313 +0,0 @@
-package LWP::Protocol;
-
-use parent 'LWP::MemberMixin';
-
-our $VERSION = '6.61';
-
-use strict;
-use Carp ();
-use HTTP::Status ();
-use HTTP::Response ();
-use Try::Tiny qw(try catch);
-
-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 =~ tr/.+-/_/; # 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
- try {
- (my $class = $ic) =~ s{::}{/}g;
- $class .= '.pm' unless $class =~ /\.pm$/;
- require $class;
- }
- catch {
- my $error = $_;
- if ($error =~ /Can't locate/) {
- $ic = '';
- }
- else {
- die "$error\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)};
-
- # This can't be moved to Try::Tiny due to the closures within causing
- # leaks on any version of Perl prior to 5.18.
- # https://perl5.git.perl.org/perl.git/commitdiff/a0d2bbd5c
- my $error = do { #catch
- local $@;
- local $\; # protect the print below from surprises
- eval { # try
- 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;
- }
- }
- 1;
- };
- $@;
- };
-
- if ($error) {
- chomp($error);
- $response->push_header('X-Died' => $error);
- $response->push_header("Client-Aborted", "die");
- };
- delete $response->{handlers}{response_data};
- delete $response->{handlers} unless %{$response->{handlers}};
- 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__
-
-=pod
-
-=head1 NAME
-
-LWP::Protocol - Base class for LWP protocols
-
-=head1 SYNOPSIS
-
- package LWP::Protocol::foo;
- use parent qw(LWP::Protocol);
-
-=head1 DESCRIPTION
-
-This class is used as 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
-L<LWP::Protocol/create> function calls the constructor for one of its
-subclasses.
-
-All derived C<LWP::Protocol> classes need to override the C<request()>
-method which is used to service a request. The overridden method can
-make use of the C<collect()> method to collect together chunks of data
-as it is received.
-
-=head1 METHODS
-
-The following methods and functions are provided:
-
-=head2 new
-
- my $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.
-
-=head2 create
-
- my $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.
-
-=head2 implementor
-
- my $class = LWP::Protocol::implementor($scheme, [$class])
-
-Get and/or set implementor class for a scheme. Returns C<''> if the
-specified scheme is not supported.
-
-=head2 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.
-
-=head2 collect
-
- my $res = $prot->collect(undef, $response, $collector); # stored in $response
- my $res = $prot->collect($filename, $response, $collector);
- my $res = $prot->collect(sub { ... }, $response, $collector);
-
-Collect the content of a request, and process it appropriately into a scalar,
-file, or by calling a callback. If the first parameter is undefined, then the
-content is stored within the C<$response>. If it's a simple scalar, then it's
-interpreted as a file name and the content is written to this file. If it's a
-code reference, 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 C<$collector> signals C<EOF> by returning a reference to an
-empty string.
-
-The return value is the L<HTTP::Response> object reference.
-
-B<Note:> We will only use the callback or file argument if
-C<< $response->is_success() >>. This avoids sending content data for
-redirects and authentication responses to the callback which would be
-confusing.
-
-=head2 collect_once
-
- $prot->collect_once($arg, $response, $content)
-
-Can be called when the whole response content is available as content. This
-will invoke L<LWP::Protocol/collect> with a collector callback that
-returns a reference to C<$content> the first time and an empty string the
-next.
-
-=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.
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
deleted file mode 100644
index 90ced43d06..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
+++ /dev/null
@@ -1,72 +0,0 @@
-package LWP::Protocol::cpan;
-
-use strict;
-
-use parent qw(LWP::Protocol);
-
-our $VERSION = '6.61';
-
-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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm
deleted file mode 100644
index a0461b5e41..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/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;
-
-our $VERSION = '6.61';
-
-require HTTP::Response;
-require HTTP::Status;
-
-use parent 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
deleted file mode 100644
index 37be55d76f..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
+++ /dev/null
@@ -1,147 +0,0 @@
-package LWP::Protocol::file;
-
-use parent qw(LWP::Protocol);
-
-use strict;
-
-our $VERSION = '6.61';
-
-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(my $fh, '<', $path) or return new
- HTTP::Response(HTTP::Status::RC_INTERNAL_SERVER_ERROR,
- "Cannot read file '$path': $!");
- binmode($fh);
- $response = $self->collect($arg, $response, sub {
- my $content = "";
- my $bytes = sysread($fh, $content, $size);
- return \$content if $bytes > 0;
- return \ "";
- });
- close($fh);
- }
-
- $response;
-}
-
-1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
deleted file mode 100644
index a82d527345..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
+++ /dev/null
@@ -1,555 +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 parent qw(LWP::Protocol);
-use strict;
-
-our $VERSION = '6.61';
-
-use Carp ();
-use HTTP::Status ();
-use HTTP::Negotiate ();
-use HTTP::Response ();
-use LWP::MediaTypes ();
-use File::Listing ();
-
-
-{
-
- package # hide from PAUSE
- LWP::Protocol::MyFTP;
-
- use strict;
- use parent 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;
- }
-}
-
-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");
- }
-
- 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm
deleted file mode 100644
index 1b46df4a07..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/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;
-
-our $VERSION = '6.61';
-
-require HTTP::Response;
-require HTTP::Status;
-require IO::Socket;
-require IO::Select;
-
-use parent 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 =~ tr/\015//d; # 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
deleted file mode 100644
index 88b4c60df3..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
+++ /dev/null
@@ -1,523 +0,0 @@
-package LWP::Protocol::http;
-
-use strict;
-
-our $VERSION = '6.61';
-
-require HTTP::Response;
-require HTTP::Status;
-require Net::HTTP;
-
-use parent qw(LWP::Protocol);
-
-our @EXTRA_SOCK_OPTS;
-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 => $self->{ua}{send_te},
- $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(nodename nor servname provided, or not known)\b/ ||
- $@ =~ /\b(certificate verify failed)\b/ ||
- $@ =~ /\b(Crypt-SSLeay can't verify hostnames)\b/
- ) {
- $status .= " ($1)";
- } elsif ($@) {
- $status .= " ($@)";
- }
- 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 immediately 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
- else {
- $socket->timeout($timeout);
- }
- }
- }
-
- 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 =~ tr/\n/ /;
- 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 # hide from PAUSE
- 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 # hide from PAUSE
- LWP::Protocol::http::Socket;
-
-use parent -norequire, qw(LWP::Protocol::http::SocketMethods Net::HTTP);
-
-1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
deleted file mode 100644
index a1b095ea70..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
+++ /dev/null
@@ -1,27 +0,0 @@
-package LWP::Protocol::loopback;
-
-use strict;
-
-our $VERSION = '6.61';
-
-require HTTP::Response;
-
-use parent 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
deleted file mode 100644
index 29f934bb26..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
+++ /dev/null
@@ -1,184 +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 HTTP::Request;
-require HTTP::Response;
-require HTTP::Status;
-
-use Carp;
-use strict;
-
-our $VERSION = '6.61';
-
-use parent qw(LWP::Protocol);
-our $SENDMAIL;
-
-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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
deleted file mode 100644
index 1042cd40c3..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
+++ /dev/null
@@ -1,150 +0,0 @@
-package LWP::Protocol::nntp;
-
-# Implementation of the Network News Transfer Protocol (RFC 977)
-
-use parent qw(LWP::Protocol);
-
-our $VERSION = '6.61';
-
-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;
- $response->code(HTTP::Status::RC_NOT_FOUND);
- $response->message($nntp->message);
- $nntp = undef;
- 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
deleted file mode 100644
index dcc54cfc7d..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
+++ /dev/null
@@ -1,25 +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;
-
-our $VERSION = '6.61';
-
-require HTTP::Response;
-require HTTP::Status;
-use parent 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/RobotUA.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/RobotUA.pm
deleted file mode 100644
index 028bdef7af..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/RobotUA.pm
+++ /dev/null
@@ -1,312 +0,0 @@
-package LWP::RobotUA;
-
-use parent qw(LWP::UserAgent);
-
-our $VERSION = '6.61';
-
-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__
-
-=pod
-
-=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
-L<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 L<LWP::UserAgent> and implements the
-same methods. In addition the following methods are provided:
-
-=head2 new
-
- my $ua = LWP::RobotUA->new( %options )
- my $ua = LWP::RobotUA->new( $agent, $from )
- my $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
-L<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.
-
-=head2 delay
-
- my $delay = $ua->delay;
- $ua->delay( $minutes );
-
-Get/set the minimum delay between requests to the same server, in
-I<minutes>. The default is C<1> minute. Note that this number doesn't
-have to be an integer; for example, this sets the delay to C<10> seconds:
-
- $ua->delay(10/60);
-
-=head2 use_sleep
-
- my $bool = $ua->use_sleep;
- $ua->use_sleep( $boolean );
-
-Get/set a value indicating whether the UA should L<LWP::RobotUA/sleep> if
-requests arrive too fast, defined as C<< $ua->delay >> minutes not passed since
-last request to the given server. The default is true. If this value is
-false then an internal C<SERVICE_UNAVAILABLE> response will be generated.
-It will have a C<Retry-After> header that indicates when it is OK to
-send another request to this server.
-
-=head2 rules
-
- my $rules = $ua->rules;
- $ua->rules( $rules );
-
-Set/get which I<WWW::RobotRules> object to use.
-
-=head2 no_visits
-
- my $num = $ua->no_visits( $netloc )
-
-Returns the number of documents fetched from this server host. Yeah I
-know, this method should probably have been named C<num_visits> or
-something like that. :-(
-
-=head2 host_wait
-
- my $num = $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.
-
-=head2 as_string
-
- my $string = $ua->as_string;
-
-Returns a string that describes the state of the UA.
-Mainly useful for debugging.
-
-=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.
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm
deleted file mode 100644
index d76d6afdfd..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm
+++ /dev/null
@@ -1,267 +0,0 @@
-package LWP::Simple;
-
-use strict;
-
-our $VERSION = '6.61';
-
-require Exporter;
-
-our @EXPORT = qw(get head getprint getstore mirror);
-our @EXPORT_OK = qw($ua);
-
-# I really hate this. It 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);
-
-sub import
-{
- my $pkg = shift;
- my $callpkg = caller;
- Exporter::export($pkg, $callpkg, @_);
-}
-
-use LWP::UserAgent ();
-use HTTP::Date ();
-
-our $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__
-
-=pod
-
-=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 L<LWP::UserAgent> module.
-
-The module will also export the L<LWP::UserAgent> object as C<$ua> if you
-ask for it explicitly.
-
-The user agent created by this module will identify itself as
-C<LWP::Simple/#.##>
-and will initialize its proxy defaults from the environment (by
-calling C<< $ua->env_proxy >>).
-
-=head1 FUNCTIONS
-
-The following functions are provided (and exported) by this module:
-
-=head2 get
-
- my $res = 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 C<$url> argument can
-be either a string or a reference to a L<URI> object.
-
-You will not be able to examine the response code or response headers
-(like C<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>).
-
-=head2 head
-
- my $res = 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.
-
-=head2 getprint
-
- my $code = 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.
-
-=head2 getstore
-
- my $code = getstore($url, $file)
-
-Gets a document identified by a URL and stores it in the file. The
-return value is the HTTP response code.
-
-=head2 mirror
-
- my $code = 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.
-
-=head1 STATUS CONSTANTS
-
-This module also exports the L<HTTP::Status> constants and procedures.
-You can use them when you check the response code from L<LWP::Simple/getprint>,
-L<LWP::Simple/getstore> or L<LWP::Simple/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
-
-=head1 CLASSIFICATION FUNCTIONS
-
-The L<HTTP::Status> classification functions are:
-
-=head2 is_success
-
- my $bool = is_success($rc);
-
-True if response code indicated a successful request.
-
-=head2 is_error
-
- my $bool = is_error($rc)
-
-True if response code indicated that an error occurred.
-
-=head1 CAVEAT
-
-Note that if you are using both LWP::Simple and the very popular L<CGI>
-module, you may be importing a C<head> function from each module,
-producing a warning like C<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>
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/UserAgent.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/UserAgent.pm
deleted file mode 100644
index a521f16529..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/UserAgent.pm
+++ /dev/null
@@ -1,2179 +0,0 @@
-package LWP::UserAgent;
-
-use strict;
-
-use parent qw(LWP::MemberMixin);
-
-use Carp ();
-use File::Copy ();
-use HTTP::Request ();
-use HTTP::Response ();
-use HTTP::Date ();
-
-use LWP ();
-use HTTP::Status ();
-use LWP::Protocol ();
-
-use Scalar::Util qw(blessed);
-use Try::Tiny qw(try catch);
-
-our $VERSION = '6.61';
-
-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 $send_te = delete $cnf{send_te};
- $send_te = 1 unless defined $send_te;
- 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 $no_proxy = exists $cnf{no_proxy} ? delete $cnf{no_proxy} : [];
- Carp::croak(qq{no_proxy must be an arrayref, not $no_proxy!}) if ref $no_proxy ne 'ARRAY';
-
- 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,
- # We set proxy later as we do validation on the values
- proxy => {},
- no_proxy => [ @{ $no_proxy } ],
- protocols_allowed => $protocols_allowed,
- protocols_forbidden => $protocols_forbidden,
- requests_redirectable => $requests_redirectable,
- send_te => $send_te,
- }, $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;
-
- if (exists $cnf{proxy}) {
- Carp::croak(qq{proxy must be an arrayref, not $cnf{proxy}!})
- if ref $cnf{proxy} ne 'ARRAY';
- $self->proxy($cnf{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) {
- try {
- $protocol = LWP::Protocol::create($scheme, $self);
- }
- catch {
- my $error = $_;
- $error =~ s/ at .* line \d+.*//s; # remove file/line number
- $response = _new_response($request, HTTP::Status::RC_NOT_IMPLEMENTED, $error);
- 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
- try {
- $response = $protocol->request($request, $proxy, $arg, $size, $self->{timeout}) || die "No response returned by $protocol";
- }
- catch {
- my $error = $_;
- if (blessed($error) && $error->isa("HTTP::Response")) {
- $response = $error;
- $response->request($request);
- }
- else {
- my $full = $error;
- (my $status = $error) =~ 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");
- }
-
- my $error;
- try {
- $request = $self->prepare_request($request);
- }
- catch {
- $error = $_;
- $error =~ s/ at .* line \d+.*//s; # remove file/line number
- };
-
- if ($error) {
- return _new_response($request, HTTP::Status::RC_BAD_REQUEST, $error);
- }
- 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}) {
- if ($response->header('Location')) {
- $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
- or $code == HTTP::Status::RC_PERMANENT_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 @challenges = $response->header($ch_header);
- unless (@challenges) {
- $response->header(
- "Client-Warning" => "Missing Authenticate header");
- return $response;
- }
-
- require HTTP::Headers::Util;
- CHALLENGE: for my $challenge (@challenges) {
- $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 =~ tr/-/_/;
-
- no strict 'refs';
- unless (%{"$class\::"}) {
- # try to load it
- my $error;
- try {
- (my $req = $class) =~ s{::}{/}g;
- $req .= '.pm' unless $req =~ /\.pm$/;
- require $req;
- }
- catch {
- $error = $_;
- };
- if ($error) {
- if ($error =~ /^Can\'t locate/) {
- $response->header("Client-Warning" =>
- "Unsupported authentication scheme '$scheme'");
- }
- else {
- $response->header("Client-Warning" => $error);
- }
- next CHALLENGE;
- }
- }
- unless ($class->can("authenticate")) {
- $response->header("Client-Warning" =>
- "Unsupported authentication scheme '$scheme'");
- next CHALLENGE;
- }
- my $re = $class->authenticate($self, $proxy, $challenge, $response,
- $request, $arg, $size);
-
- next CHALLENGE if $re->code == HTTP::Status::RC_UNAUTHORIZED;
- return $re;
- }
- 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 _maybe_copy_default_content_type {
- my $self = shift;
- my $req = shift;
-
- my $default_ct = $self->default_header('Content-Type');
- return unless defined $default_ct;
-
- # drop url
- shift;
-
- # adapted from HTTP::Request::Common::request_type_with_data
- my $content;
- $content = shift if @_ and ref $_[0];
-
- # We only care about the final value, really
- my $ct;
-
- my ($k, $v);
- while (($k, $v) = splice(@_, 0, 2)) {
- if (lc($k) eq 'content') {
- $content = $v;
- }
- elsif (lc($k) eq 'content-type') {
- $ct = $v;
- }
- }
-
- # Content-type provided and truthy? skip
- return if $ct;
-
- # Content is not just a string? Then it must be x-www-form-urlencoded
- return if defined $content && ref($content);
-
- # Provide default
- $req->header('Content-Type' => $default_ct);
-}
-
-sub post {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
- my $req = HTTP::Request::Common::POST(@parameters);
- $self->_maybe_copy_default_content_type($req, @parameters);
- return $self->request($req, @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 patch {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
-
- # this work-around is in place as HTTP::Request::Common
- # did not implement a patch convenience method until
- # version 6.12. Once we can bump the prereq to at least
- # that version, we can use ::PATCH instead of this hack
- my $req = HTTP::Request::Common::PUT(@parameters);
- $req->method('PATCH');
-
- $self->_maybe_copy_default_content_type($req, @parameters);
- return $self->request($req, @suff);
-}
-
-sub put {
- require HTTP::Request::Common;
- my($self, @parameters) = @_;
- my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
- my $req = HTTP::Request::Common::PUT(@parameters);
- $self->_maybe_copy_default_content_type($req, @parameters);
- return $self->request($req, @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 send_te { shift->_elem('send_te', @_); }
-
-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;
- }
-
- my @opts= sort keys %{$self->{ssl_opts}};
- return @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 {
- return if $_[0]->header("Cookie");
- $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/$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") {
- $spec{$_}= $init->{$_}
- for keys %$init;
- }
- $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) = @_;
-
- # here we pass $_[2] to the callbacks, instead of $o, so that they
- # can assign to it; e.g. request_prepare is documented to allow
- # that
- if (defined(wantarray)) {
- for my $h ($self->handlers($phase, $o)) {
- my $ret = $h->{callback}->($_[2], $self, $h);
- return $ret if $ret;
- }
- return undef;
- }
-
- for my $h ($self->handlers($phase, $o)) {
- $h->{callback}->($_[2], $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) = @_;
-
- die "Local file name is missing" unless defined $file && length $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) );
- }
- }
-
- require File::Temp;
- my ($tmpfh, $tmpfile) = File::Temp::tempfile("$file-XXXXXX");
- close($tmpfh) or die "Could not close tmpfile '$tmpfile': $!";
-
- my $response = $self->request($request, $tmpfile);
- if ( $response->header('X-Died') ) {
- unlink($tmpfile);
- die $response->header('X-Died');
- }
-
- # Only fetching a fresh copy of the file 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
- # File::Copy will attempt to do it atomically,
- # and fall back to a delete + copy if that fails.
- File::Copy::move( $tmpfile, $file )
- or die "Cannot rename '$tmpfile' to '$file': $!\n";
-
- # Set standard file permissions if umask is supported.
- # If not, leave what File::Temp created in effect.
- if ( defined(my $umask = umask()) ) {
- my $mode = 0666 &~ $umask;
- chmod $mode, $file
- or die sprintf("Cannot chmod %o '%s': %s\n", $mode, $file, $!);
- }
-
- # make sure the file has the same last modification time
- if ( my $lm = $response->last_modified ) {
- utime $lm, $lm, $file
- or warn "Cannot update modification time of '$file': $!\n";
- }
- }
- }
- # 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;
- if (!@_ && ref $key eq 'ARRAY') {
- die 'odd number of items in proxy arrayref!' unless @{$key} % 2 == 0;
-
- # This map reads the elements of $key 2 at a time
- return
- map { $self->proxy($key->[2 * $_], $key->[2 * $_ + 1]) }
- (0 .. @{$key} / 2 - 1);
- }
- 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 $env_request_method= $ENV{REQUEST_METHOD};
- my %seen;
- foreach my $k (sort keys %ENV) {
- my $real_key= $k;
- my $v= $ENV{$k}
- or next;
- 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);
- if (my $from_key= $seen{$k}) {
- warn "Environment contains multiple differing definitions for '$k'.\n".
- "Using value from '$from_key' ($ENV{$from_key}) and ignoring '$real_key' ($v)"
- if $v ne $ENV{$from_key};
- next;
- } else {
- $seen{$k}= $real_key;
- }
-
- 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__
-
-=pod
-
-=head1 NAME
-
-LWP::UserAgent - Web user agent class
-
-=head1 SYNOPSIS
-
- use strict;
- use warnings;
-
- use LWP::UserAgent ();
-
- my $ua = LWP::UserAgent->new(timeout => 10);
- $ua->env_proxy;
-
- my $response = $ua->get('http://example.com');
-
- if ($response->is_success) {
- print $response->decoded_content;
- }
- else {
- die $response->status_line;
- }
-
-Extra layers of security (note the C<cookie_jar> and C<protocols_allowed>):
-
- use strict;
- use warnings;
-
- use HTTP::CookieJar::LWP ();
- use LWP::UserAgent ();
-
- my $jar = HTTP::CookieJar::LWP->new;
- my $ua = LWP::UserAgent->new(
- cookie_jar => $jar,
- protocols_allowed => ['http', 'https'],
- timeout => 10,
- );
-
- $ua->env_proxy;
-
- my $response = $ua->get('http://example.com');
-
- if ($response->is_success) {
- print $response->decoded_content;
- }
- else {
- die $response->status_line;
- }
-
-=head1 DESCRIPTION
-
-The L<LWP::UserAgent> is a class implementing a web user agent.
-L<LWP::UserAgent> objects can be used to dispatch web requests.
-
-In normal use the application creates an L<LWP::UserAgent> object, and
-then configures it with values for timeouts, proxies, name, etc. It
-then creates an instance of L<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 L<HTTP::Response> object. There are
-convenience methods for sending the most common request types:
-L<LWP::UserAgent/get>, L<LWP::UserAgent/head>, L<LWP::UserAgent/post>,
-L<LWP::UserAgent/put> and L<LWP::UserAgent/delete>. When using these
-methods, 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
-L<HTTP::Request> objects and receive L<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, I<gopher> menus and
-file directories are converted to HTML documents.
-
-=head1 CONSTRUCTOR METHODS
-
-The following constructor methods are available:
-
-=head2 clone
-
- my $ua2 = $ua->clone;
-
-Returns a copy of the L<LWP::UserAgent> object.
-
-B<CAVEAT>: Please be aware that the clone method does not copy or clone your
-C<cookie_jar> attribute. Due to the limited restrictions on what can be used
-for your cookie jar, there is no way to clone the attribute. The C<cookie_jar>
-attribute will be C<undef> in the new object instance.
-
-=head2 new
-
- my $ua = LWP::UserAgent->new( %options )
-
-This method constructs a new L<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/#.###"
- conn_cache undef
- cookie_jar undef
- default_headers HTTP::Headers->new
- from undef
- local_address undef
- max_redirect 7
- max_size undef
- no_proxy []
- parse_head 1
- protocols_allowed undef
- protocols_forbidden undef
- proxy undef
- requests_redirectable ['GET', 'HEAD']
- ssl_opts { verify_hostname => 1 }
- 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 L<LWP::UserAgent/env_proxy>). If C<env_proxy> isn't provided, the
-C<PERL_LWP_ENV_PROXY> environment variable controls if
-L<LWP::UserAgent/env_proxy> is called during initialization. If the
-C<keep_alive> option value is defined and non-zero, then an C<LWP::ConnCache> is set up (see
-L<LWP::UserAgent/conn_cache>). The C<keep_alive> value is passed on as the
-C<total_capacity> for the connection cache.
-
-C<proxy> must be set as an arrayref of key/value pairs. C<no_proxy> takes an
-arrayref of domains.
-
-=head1 ATTRIBUTES
-
-The settings of the configuration attributes modify the behaviour of the
-L<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.
-
-=head2 agent
-
- my $agent = $ua->agent;
- $ua->agent('Checkbot/0.4 '); # append the default to the end
- $ua->agent('Mozilla/5.0');
- $ua->agent(""); # don't identify
-
-Get/set the product token that is used to identify the user agent on
-the network. The agent value is sent as the C<User-Agent> header in
-the requests.
-
-The default is a string of the form C<libwww-perl/#.###>, where C<#.###> is
-substituted with the version number of this library.
-
-If the provided string ends with space, the default C<libwww-perl/#.###>
-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 C</> character.
-
-=head2 conn_cache
-
- my $cache_obj = $ua->conn_cache;
- $ua->conn_cache( $cache_obj );
-
-Get/set the L<LWP::ConnCache> object to use. See L<LWP::ConnCache>
-for details.
-
-=head2 cookie_jar
-
- my $jar = $ua->cookie_jar;
- $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 C<extract_cookies($response)> and
-C<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 L<HTTP::Cookies> object or some
-subclass. You are, however, encouraged to use L<HTTP::CookieJar::LWP>
-instead. See L</"BEST PRACTICES"> for more information.
-
- use HTTP::CookieJar::LWP ();
-
- my $jar = HTTP::CookieJar::LWP->new;
- my $ua = LWP::UserAgent->new( cookie_jar => $jar );
-
- # or after object creation
- $ua->cookie_jar( $cookie_jar );
-
-The default is to have no cookie jar, i.e. never automatically add
-C<Cookie> headers to the requests.
-
-Shortcut: If a reference to a plain hash is passed in, it is replaced with an
-instance of L<HTTP::Cookies> that is initialized based on the hash. This form
-also automatically loads the L<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"));
-
-=head2 credentials
-
- my $creds = $ua->credentials();
- $ua->credentials( $netloc, $realm );
- $ua->credentials( $netloc, $realm, $uname, $pass );
- $ua->credentials("www.example.com:80", "Some Realm", "foo", "secret");
-
-Get/set the user name and password to be used for a realm.
-
-The C<$netloc> is a string of the form C<< <host>:<port> >>. The username and
-password will only be passed to this server.
-
-=head2 default_header
-
- $ua->default_header( $field );
- $ua->default_header( $field => $value );
- $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
- $ua->default_header('Accept-Language' => "no, en");
-
-This is just a shortcut for
-C<< $ua->default_headers->header( $field => $value ) >>.
-
-=head2 default_headers
-
- my $headers = $ua->default_headers;
- $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 L<HTTP::Headers>
-object.
-
-=head2 from
-
- my $from = $ua->from;
- $ua->from('foo@bar.com');
-
-Get/set the email address for the human user who controls
-the requesting user agent. The address should be machine-usable, as
-defined in L<RFC2822|https://tools.ietf.org/html/rfc2822>. The C<from> value
-is sent as the C<From> header in the requests.
-
-The default is to not send a C<From> header. See
-L<LWP::UserAgent/default_headers> for the more general interface that allow
-any header to be defaulted.
-
-
-=head2 local_address
-
- my $address = $ua->local_address;
- $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>.
-
-=head2 max_redirect
-
- my $max = $ua->max_redirect;
- $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 C<7>. This means that if you call L<LWP::UserAgent/request>
-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.
-
-=head2 max_size
-
- my $size = $ua->max_size;
- $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
-C<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 C<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) >>.
-
-=head2 parse_head
-
- my $bool = $ua->parse_head;
- $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. I<Do not turn this off> unless you know what you are doing.
-
-=head2 protocols_allowed
-
- my $aref = $ua->protocols_allowed; # get allowed protocols
- $ua->protocols_allowed( \@protocols ); # allow ONLY these
- $ua->protocols_allowed(undef); # delete the list
- $ua->protocols_allowed(['http',]); # ONLY allow http
-
-By default, an object has neither a C<protocols_allowed> list, nor a
-L<LWP::UserAgent/protocols_forbidden> list.
-
-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->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 C<ftp://...>) will result in a 500 error.
-
-Note that having a C<protocols_allowed> list causes any
-L<LWP::UserAgent/protocols_forbidden> list to be ignored.
-
-=head2 protocols_forbidden
-
- my $aref = $ua->protocols_forbidden; # get the forbidden list
- $ua->protocols_forbidden(\@protocols); # do not allow these
- $ua->protocols_forbidden(['http',]); # All http reqs get a 500
- $ua->protocols_forbidden(undef); # delete the list
-
-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->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.
-
-=head2 requests_redirectable
-
- my $aref = $ua->requests_redirectable;
- $ua->requests_redirectable( \@requests );
- $ua->requests_redirectable(['GET', 'HEAD',]); # the default
-
-This reads or sets the object's list of request names that
-L<LWP::UserAgent/redirect_ok> will allow redirection for. By default, this
-is C<['GET', 'HEAD']>, as per L<RFC 2616|https://tools.ietf.org/html/rfc2616>.
-To change to include C<POST>, consider:
-
- push @{ $ua->requests_redirectable }, 'POST';
-
-=head2 send_te
-
- my $bool = $ua->send_te;
- $ua->send_te( $boolean );
-
-If true, will send a C<TE> header along with the request. The default is
-true. Set it to false to disable the C<TE> header for systems who can't
-handle it.
-
-=head2 show_progress
-
- my $bool = $ua->show_progress;
- $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.
-
-=head2 ssl_opts
-
- my @keys = $ua->ssl_opts;
- my $val = $ua->ssl_opts( $key );
- $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 C<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.
-
-=head2 timeout
-
- my $secs = $ua->timeout;
- $ua->timeout( $secs );
-
-Get/set the timeout value in seconds. The default value is
-180 seconds, i.e. 3 minutes.
-
-The request 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 L<LWP::UserAgent/request> method to
-actually return might be longer.
-
-When a request times out, a response object is still returned. The response
-will have a standard HTTP Status Code (500). This response will have the
-"Client-Warning" header set to the value of "Internal response". See the
-L<LWP::UserAgent/get> method description below for further details.
-
-=head1 PROXY ATTRIBUTES
-
-The following methods set up when requests should be passed via a
-proxy server.
-
-=head2 env_proxy
-
- $ua->env_proxy;
-
-Load proxy settings from C<*_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 C<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.
-
-=head2 no_proxy
-
- $ua->no_proxy( @domains );
- $ua->no_proxy('localhost', 'example.com');
- $ua->no_proxy(); # clear the list
-
-Do not proxy requests to the given domains. Calling C<no_proxy> without
-any domains clears the list of domains.
-
-=head2 proxy
-
- $ua->proxy(\@schemes, $proxy_url)
- $ua->proxy(['http', 'ftp'], 'http://proxy.sn.no:8001/');
-
- # For a single scheme:
- $ua->proxy($scheme, $proxy_url)
- $ua->proxy('gopher', 'http://proxy.sn.no:8001/');
-
- # To set multiple proxies at once:
- $ua->proxy([
- ftp => 'http://ftp.example.com:8001/',
- [ 'http', 'https' ] => 'http://http.example.com:8001/',
- ]);
-
-Set/retrieve proxy URL for a scheme.
-
-The first form specifies that the URL is to be used as a proxy for
-access methods listed in the list in the first method argument,
-i.e. C<http> and C<ftp>.
-
-The second form shows a shorthand form for specifying
-proxy URL for a single access scheme.
-
-The third form demonstrates setting multiple proxies at once. This is also
-the only form accepted by the constructor.
-
-=head1 HANDLERS
-
-Handlers are code that injected at various phases during the
-processing of requests. The following methods are provided to manage
-the active handlers:
-
-=head2 add_handler
-
- $ua->add_handler( $phase => \&cb, %matchspec )
-
-Add handler to be invoked in the given processing phase. For how to
-specify C<%matchspec> see L<HTTP::Config/"Matching">.
-
-The possible values C<$phase> and the corresponding callback signatures are as
-follows. Note that the handlers are documented in the order in which they will
-be run, which is:
-
- request_preprepare
- request_prepare
- request_send
- response_header
- response_data
- response_done
- response_redirect
-
-=over
-
-=item request_preprepare => sub { my($request, $ua, $handler) = @_; ... }
-
-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, $handler) = @_; ... }
-
-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 C<$_[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, $handler) = @_; ... }
-
-This handler gets a chance of handling requests before they're sent to the
-protocol handlers. It should return an L<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, $handler) = @_; ... }
-
-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 C<< $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 C<< $ua->request() >> method
-was called with a C<$content_file> or C<$content_cb argument>; otherwise true.
-
-=item response_data => sub { my($response, $ua, $handler, $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, $handler) = @_; ... }
-
-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, $handler) = @_; ... }
-
-The handler is called in C<< $ua->request >> after C<response_done>. If the
-handler returns an L<HTTP::Request> object we'll start over with processing
-this request instead.
-
-=back
-
-For all of these, C<$handler> is a code reference to the handler that
-is currently being run.
-
-=head2 get_my_handler
-
- $ua->get_my_handler( $phase, %matchspec );
- $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 C<$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
-C<$init> is a hash reference, merge the hashes.
-
-=head2 handlers
-
- $ua->handlers( $phase, $request )
- $ua->handlers( $phase, $response )
-
-Returns the handlers that apply to the given request or response at
-the given processing phase.
-
-=head2 remove_handler
-
- $ua->remove_handler( undef, %matchspec );
- $ua->remove_handler( $phase, %matchspec );
- $ua->remove_handler(); # REMOVE ALL HANDLERS IN ALL PHASES
-
-Remove handlers that match the given C<%matchspec>. If C<$phase> is not
-provided, remove handlers from all phases.
-
-Be careful as calling this function with C<%matchspec> that is not
-specific enough can remove handlers not owned by you. It's probably
-better to use the L<LWP::UserAgent/set_my_handler> method instead.
-
-The removed handlers are returned.
-
-=head2 set_my_handler
-
- $ua->set_my_handler( $phase, $cb, %matchspec );
- $ua->set_my_handler($phase, undef); # remove handler for phase
-
-Set handlers private to the executing subroutine. Works by defaulting
-an C<owner> field to the C<%matchspec> that holds the name of the called
-subroutine. You might pass an explicit C<owner> to override this.
-
-If C<$cb> is passed as C<undef>, remove the handler.
-
-=head1 REQUEST METHODS
-
-The methods described in this section are used to dispatch requests
-via the user agent. The following request methods are provided:
-
-=head2 delete
-
- my $res = $ua->delete( $url );
- my $res = $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 L<LWP::UserAgent/get>
-method.
-
-This method will use the C<DELETE()> function from L<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.
-
-=head2 get
-
- my $res = $ua->get( $url );
- my $res = $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 C<$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. Note that errors
-writing to the content file (for example due to permission denied
-or the filesystem being full) will be reported via the C<Client-Aborted>
-or C<X-Died> response headers, and not the C<is_success> method.
-
-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 C<die()>. The
-exception message will show up as the "X-Died" header field in the
-response returned by the C<< $ua->get() >> method.
-
-=head2 head
-
- my $res = $ua->head( $url );
- my $res = $ua->head( $url , $field_name => $value, ... );
-
-This method will dispatch a C<HEAD> request on the given URL.
-Otherwise it works like the L<LWP::UserAgent/get> method described above.
-
-=head2 is_protocol_supported
-
- my $bool = $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 C<http> or
-C<ftp>) or it might be an L<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.
-
-=head2 is_online
-
- my $bool = $ua->is_online;
-
-Tries to determine if you have access to the Internet. Returns C<1> (true)
-if the built-in heuristics determine that the user agent is
-able to access the Internet (over HTTP) or C<0> (false).
-
-See also L<LWP::Online>.
-
-=head2 mirror
-
- my $res = $ua->mirror( $url, $filename );
-
-This method will get the document identified by URL and store it in
-file called C<$filename>. If the file already exists, then the request
-will contain an C<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.
-
-Uses L<File::Copy/move> to attempt to atomically replace the C<$filename>.
-
-The return value is an L<HTTP::Response> object.
-
-=head2 patch
-
- # Any version of HTTP::Message works with this form:
- my $res = $ua->patch( $url, $field_name => $value, Content => $content );
-
- # Using hash or array references requires HTTP::Message >= 6.12
- use HTTP::Request 6.12;
- my $res = $ua->patch( $url, \%form );
- my $res = $ua->patch( $url, \@form );
- my $res = $ua->patch( $url, \%form, $field_name => $value, ... );
- my $res = $ua->patch( $url, $field_name => $value, Content => \%form );
- my $res = $ua->patch( $url, $field_name => $value, Content => \@form );
-
-This method will dispatch a C<PATCH> request on the given URL, with
-C<%form> or C<@form> providing the key/value pairs for the fill-in form
-content. Additional headers and content options are the same as for
-the L<LWP::UserAgent/get> method.
-
-CAVEAT:
-
-This method can only accept content that is in key-value pairs when using
-L<HTTP::Request::Common> prior to version C<6.12>. Any use of hash or array
-references will result in an error prior to version C<6.12>.
-
-This method will use the C<PATCH> function from L<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.
-
-=head2 post
-
- my $res = $ua->post( $url, \%form );
- my $res = $ua->post( $url, \@form );
- my $res = $ua->post( $url, \%form, $field_name => $value, ... );
- my $res = $ua->post( $url, $field_name => $value, Content => \%form );
- my $res = $ua->post( $url, $field_name => $value, Content => \@form );
- my $res = $ua->post( $url, $field_name => $value, Content => $content );
-
-This method will dispatch a C<POST> request on the given URL, with
-C<%form> or C<@form> providing the key/value pairs for the fill-in form
-content. Additional headers and content options are the same as for
-the L<LWP::UserAgent/get> method.
-
-This method will use the C<POST> function from L<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.
-
-=head2 put
-
- # Any version of HTTP::Message works with this form:
- my $res = $ua->put( $url, $field_name => $value, Content => $content );
-
- # Using hash or array references requires HTTP::Message >= 6.07
- use HTTP::Request 6.07;
- my $res = $ua->put( $url, \%form );
- my $res = $ua->put( $url, \@form );
- my $res = $ua->put( $url, \%form, $field_name => $value, ... );
- my $res = $ua->put( $url, $field_name => $value, Content => \%form );
- my $res = $ua->put( $url, $field_name => $value, Content => \@form );
-
-This method will dispatch a C<PUT> request on the given URL, with
-C<%form> or C<@form> providing the key/value pairs for the fill-in form
-content. Additional headers and content options are the same as for
-the L<LWP::UserAgent/get> method.
-
-CAVEAT:
-
-This method can only accept content that is in key-value pairs when using
-L<HTTP::Request::Common> prior to version C<6.07>. Any use of hash or array
-references will result in an error prior to version C<6.07>.
-
-This method will use the C<PUT> function from L<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.
-
-=head2 request
-
- my $res = $ua->request( $request );
- my $res = $ua->request( $request, $content_file );
- my $res = $ua->request( $request, $content_cb );
- my $res = $ua->request( $request, $content_cb, $read_size_hint );
-
-This method will dispatch the given C<$request> object. Normally this
-will be an instance of the L<HTTP::Request> class, but any object with
-a similar interface will do. The return value is an L<HTTP::Response> object.
-
-The C<request> method will process redirects and authentication
-responses transparently. This means that it may actually send several
-simple requests via the L<LWP::UserAgent/simple_request> method described below.
-
-The request methods described above; L<LWP::UserAgent/get>, L<LWP::UserAgent/head>,
-L<LWP::UserAgent/post> and L<LWP::UserAgent/mirror> will all dispatch the request
-they build via this method. They are convenience methods that simply hide the
-creation of the request object for you.
-
-The C<$content_file>, C<$content_cb> and C<$read_size_hint> all correspond to
-options described with the L<LWP::UserAgent/get> method above. Note that errors
-writing to the content file (for example due to permission denied
-or the filesystem being full) will be reported via the C<Client-Aborted>
-or C<X-Died> response headers, and not the C<is_success> method.
-
-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.
-
-=head2 simple_request
-
- my $request = HTTP::Request->new( ... );
- my $res = $ua->simple_request( $request );
- my $res = $ua->simple_request( $request, $content_file );
- my $res = $ua->simple_request( $request, $content_cb );
- my $res = $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 the L<LWP::UserAgent/request> described above.
-
-The difference from L<LWP::UserAgent/request> is that C<simple_request> will not try to
-handle redirects or authentication responses. The L<LWP::UserAgent/request> method
-will, in fact, invoke this method for each simple request it sends.
-
-=head1 CALLBACK METHODS
-
-The following methods will be invoked as requests are processed. These
-methods are documented here because subclasses of L<LWP::UserAgent>
-might want to override their behaviour.
-
-=head2 get_basic_credentials
-
- # This checks wantarray and can either return an array:
- my ($user, $pass) = $ua->get_basic_credentials( $realm, $uri, $isproxy );
- # or a string that looks like "user:pass"
- my $creds = $ua->get_basic_credentials($realm, $uri, $isproxy);
-
-This is called by L<LWP::UserAgent/request> to retrieve credentials for documents
-protected by Basic or Digest Authentication. The arguments passed in
-is the C<$realm> provided by the server, the C<$uri> requested and a
-C<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 L<LWP::UserAgent/credentials> method.
-
-=head2 prepare_request
-
- $request = $ua->prepare_request( $request );
-
-This method is invoked by L<LWP::UserAgent/simple_request>. Its task is
-to modify the given C<$request> object by setting up various headers based
-on the attributes of the user agent. The return value should normally be the
-C<$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; C<User-Agent>,
-C<From>, C<Range> and C<Cookie>.
-
-=head2 progress
-
- my $prog = $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 C<$status>
-"begin" at the start of processing the request and with C<$state> "end"
-before the request method returns. In between these C<$status> will be
-the fraction of the response currently received or the string "tick"
-if the fraction can't be calculated.
-
-When C<$status> is "begin" the second argument is the L<HTTP::Request> object,
-otherwise it is the L<HTTP::Response> object.
-
-=head2 redirect_ok
-
- my $bool = $ua->redirect_ok( $prospective_request, $response );
-
-This method is called by L<LWP::UserAgent/request> before it tries to follow a
-redirection to the request in C<$response>. This should return a true
-value if this redirection is permissible. The C<$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 C<file://...>
-URL, and true otherwise.
-
-=head1 BEST PRACTICES
-
-The default settings can get you up and running quickly, but there are settings
-you can change in order to make your life easier.
-
-=head2 Handling Cookies
-
-You are encouraged to install L<Mozilla::PublicSuffix> and use
-L<HTTP::CookieJar::LWP> as your cookie jar. L<HTTP::CookieJar::LWP> provides a
-better security model matching that of current Web browsers when
-L<Mozilla::PublicSuffix> is installed.
-
- use HTTP::CookieJar::LWP ();
-
- my $jar = HTTP::CookieJar::LWP->new;
- my $ua = LWP::UserAgent->new( cookie_jar => $jar );
-
-See L</"cookie_jar"> for more information.
-
-=head2 Managing Protocols
-
-C<protocols_allowed> gives you the ability to allow arbitrary protocols.
-
- my $ua = LWP::UserAgent->new(
- protocols_allowed => [ 'http', 'https' ]
- );
-
-This will prevent you from inadvertently following URLs like
-C<file:///etc/passwd>. See L</"protocols_allowed">.
-
-C<protocols_forbidden> gives you the ability to deny arbitrary protocols.
-
- my $ua = LWP::UserAgent->new(
- protocols_forbidden => [ 'file', 'mailto', 'ssh', ]
- );
-
-This can also prevent you from inadvertently following URLs like
-C<file:///etc/passwd>. See L</protocols_forbidden>.
-
-=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 L<LWP::UserAgent>.
-
-=head1 COPYRIGHT AND LICENSE
-
-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.
-
-=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Math/Int64.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Math/Int64.pm
index 5cb6f5a45c..59b968af89 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Math/Int64.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Math/Int64.pm
@@ -4,7 +4,8 @@ use strict;
use warnings;
BEGIN {
-our $VERSION = '0.54';
+our $VERSION = '0.57';
+
require XSLoader;
XSLoader::load('Math::Int64', $VERSION);
}
@@ -20,6 +21,7 @@ our @ISA = qw(Exporter);
our @EXPORT_OK = qw(int64
int64_to_number
net_to_int64 int64_to_net
+ le_to_int64 int64_to_le
native_to_int64 int64_to_native
string_to_int64 hex_to_int64
BER_to_int64 int64_to_BER
@@ -29,6 +31,7 @@ our @EXPORT_OK = qw(int64
uint64
uint64_to_number
net_to_uint64 uint64_to_net
+ le_to_uint64 uint64_to_le
native_to_uint64 uint64_to_native
string_to_uint64 hex_to_uint64
BER_to_uint64 uint64_to_BER
@@ -209,13 +212,20 @@ 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.
+in network order (big endian).
=item native_to_int64($str)
=item int64_to_native($int64)
-similar to net_to_int64 and int64_to_net, but using the native CPU
+Similar to net_to_int64 and int64_to_net, but using the native CPU
+order.
+
+=item le_to_int64($str)
+
+=item int64_to_le($int64)
+
+Similar to net_to_int64 and int64_to_net, but using the little endian
order.
=item int64_to_number($int64)
@@ -324,6 +334,10 @@ C<$seed>, if given, should be a 2KB long string.
=item uint64_to_native
+=item le_to_uint64
+
+=item uint64_to_le
+
=item string_to_uint64
=item hex_to_uint64
@@ -577,7 +591,7 @@ L<Math::BigInt::GMP>.
=head1 COPYRIGHT AND LICENSE
-Copyright E<copy> 2007, 2009, 2011-2015 by Salvador Fandiño
+Copyright E<copy> 2007, 2009, 2011-2015, 2024 by Salvador Fandiño
(sfandino@yahoo.com)
Copyright E<copy> 2014-2015 by Dave Rolsky (autarch@urth.org)
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Module/Build/Tiny.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Module/Build/Tiny.pm
new file mode 100755
index 0000000000..752c784622
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Module/Build/Tiny.pm
@@ -0,0 +1,349 @@
+package Module::Build::Tiny;
+$Module::Build::Tiny::VERSION = '0.047';
+use strict;
+use warnings;
+use Exporter 5.57 'import';
+our @EXPORT = qw/Build Build_PL/;
+
+use CPAN::Meta;
+use ExtUtils::Config 0.003;
+use ExtUtils::Helpers 0.020 qw/make_executable split_like_shell man1_pagename man3_pagename detildefy/;
+use ExtUtils::Install qw/pm_to_blib install/;
+use ExtUtils::InstallPaths 0.002;
+use File::Basename qw/basename dirname/;
+use File::Find ();
+use File::Path qw/mkpath rmtree/;
+use File::Spec::Functions qw/catfile catdir rel2abs abs2rel splitdir curdir/;
+use Getopt::Long 2.36 qw/GetOptionsFromArray/;
+use JSON::PP 2 qw/encode_json decode_json/;
+
+sub write_file {
+ my ($filename, $content) = @_;
+ open my $fh, '>', $filename or die "Could not open $filename: $!\n";
+ print $fh $content;
+}
+sub read_file {
+ my ($filename) = @_;
+ open my $fh, '<', $filename or die "Could not open $filename: $!\n";
+ return do { local $/; <$fh> };
+}
+
+sub get_meta {
+ my ($metafile) = grep { -e $_ } qw/META.json META.yml/ or die "No META information provided\n";
+ return CPAN::Meta->load_file($metafile);
+}
+
+sub manify {
+ my ($input_file, $output_file, $section, $opts) = @_;
+ return if -e $output_file && -M $input_file <= -M $output_file;
+ my $dirname = dirname($output_file);
+ mkpath($dirname, $opts->{verbose}) if not -d $dirname;
+ require Pod::Man;
+ Pod::Man->new(section => $section)->parse_from_file($input_file, $output_file);
+ print "Manifying $output_file\n" if $opts->{verbose} && $opts->{verbose} > 0;
+ return;
+}
+
+sub process_xs {
+ my ($source, $options, $c_files) = @_;
+
+ die "Can't build xs files under --pureperl-only\n" if $options->{'pureperl-only'};
+ my (undef, @parts) = splitdir(dirname($source));
+ push @parts, my $file_base = basename($source, '.xs');
+ my $archdir = catdir(qw/blib arch auto/, @parts);
+ my $tempdir = 'temp';
+
+ my $c_file = catfile($tempdir, "$file_base.c");
+ require ExtUtils::ParseXS;
+ mkpath($tempdir, $options->{verbose}, oct '755');
+ ExtUtils::ParseXS::process_file(filename => $source, prototypes => 0, output => $c_file);
+
+ my $version = $options->{meta}->version;
+ require ExtUtils::CBuilder;
+ my $builder = ExtUtils::CBuilder->new(config => $options->{config}->values_set);
+ my @objects = $builder->compile(source => $c_file, defines => { VERSION => qq/"$version"/, XS_VERSION => qq/"$version"/ }, include_dirs => [ curdir, 'include', 'src', dirname($source) ]);
+
+ my $o = $options->{config}->get('_o');
+ for my $c_source (@{ $c_files }) {
+ my $o_file = catfile($tempdir, basename($c_source, '.c') . $o);
+ push @objects, $builder->compile(source => $c_source, include_dirs => [ curdir, 'include', 'src', dirname($c_source) ])
+ }
+
+ require DynaLoader;
+ my $mod2fname = defined &DynaLoader::mod2fname ? \&DynaLoader::mod2fname : sub { return $_[0][-1] };
+
+ mkpath($archdir, $options->{verbose}, oct '755') unless -d $archdir;
+ my $lib_file = catfile($archdir, $mod2fname->(\@parts) . '.' . $options->{config}->get('dlext'));
+ return $builder->link(objects => \@objects, lib_file => $lib_file, module_name => join '::', @parts);
+}
+
+sub find {
+ my ($pattern, $dir) = @_;
+ my @ret;
+ File::Find::find(sub { push @ret, $File::Find::name if /$pattern/ && -f }, $dir) if -d $dir;
+ return @ret;
+}
+
+sub contains_pod {
+ my ($file) = @_;
+ return unless -T $file;
+ return read_file($file) =~ /^\=(?:head|pod|item)/m;
+}
+
+my %actions = (
+ build => sub {
+ my %opt = @_;
+ for my $pl_file (find(qr/\.PL$/, 'lib')) {
+ (my $pm = $pl_file) =~ s/\.PL$//;
+ system $^X, $pl_file, $pm and die "$pl_file returned $?\n";
+ }
+ my %modules = map { $_ => catfile('blib', $_) } find(qr/\.pm$/, 'lib');
+ my %docs = map { $_ => catfile('blib', $_) } find(qr/\.pod$/, 'lib');
+ my %scripts = map { $_ => catfile('blib', $_) } find(qr/(?:)/, 'script');
+ my %sdocs = map { $_ => delete $scripts{$_} } grep { /.pod$/ } keys %scripts;
+ my %dist_shared = map { $_ => catfile(qw/blib lib auto share dist/, $opt{meta}->name, abs2rel($_, 'share')) } find(qr/(?:)/, 'share');
+ my %module_shared = map { $_ => catfile(qw/blib lib auto share module/, abs2rel($_, 'module-share')) } find(qr/(?:)/, 'module-share');
+ pm_to_blib({ %modules, %docs, %scripts, %dist_shared, %module_shared }, catdir(qw/blib lib auto/));
+ make_executable($_) for values %scripts;
+ mkpath(catdir(qw/blib arch/), $opt{verbose});
+ my $main_xs = join('/', 'lib', split /-/, $opt{meta}->name) . '.xs';
+ for my $xs (find(qr/.xs$/, 'lib')) {
+ my @c_files = $xs eq $main_xs ? find(qr/\.c$/, 'src') : ();
+ process_xs($xs, \%opt, \@c_files);
+ }
+
+ if ($opt{install_paths}->install_destination('bindoc') && $opt{install_paths}->is_default_installable('bindoc')) {
+ my $section = $opt{config}->get('man1ext');
+ for my $input (keys %scripts, keys %sdocs) {
+ next unless contains_pod($input);
+ my $output = catfile('blib', 'bindoc', man1_pagename($input));
+ manify($input, $output, $section, \%opt);
+ }
+ }
+ if ($opt{install_paths}->install_destination('libdoc') && $opt{install_paths}->is_default_installable('libdoc')) {
+ my $section = $opt{config}->get('man3ext');
+ for my $input (keys %modules, keys %docs) {
+ next unless contains_pod($input);
+ my $output = catfile('blib', 'libdoc', man3_pagename($input));
+ manify($input, $output, $section, \%opt);
+ }
+ }
+ return 0;
+ },
+ test => sub {
+ my %opt = @_;
+ die "Must run `./Build build` first\n" if not -d 'blib';
+ require TAP::Harness::Env;
+ my %test_args = (
+ (verbosity => $opt{verbose}) x!! exists $opt{verbose},
+ (jobs => $opt{jobs}) x!! exists $opt{jobs},
+ (color => 1) x !!-t STDOUT,
+ lib => [ map { rel2abs(catdir(qw/blib/, $_)) } qw/arch lib/ ],
+ );
+ my $tester = TAP::Harness::Env->create(\%test_args);
+ return $tester->runtests(sort +find(qr/\.t$/, 't'))->has_errors;
+ },
+ install => sub {
+ my %opt = @_;
+ die "Must run `./Build build` first\n" if not -d 'blib';
+ install($opt{install_paths}->install_map, @opt{qw/verbose dry_run uninst/});
+ return 0;
+ },
+ clean => sub {
+ my %opt = @_;
+ rmtree($_, $opt{verbose}) for qw/blib temp/;
+ return 0;
+ },
+ realclean => sub {
+ my %opt = @_;
+ rmtree($_, $opt{verbose}) for qw/blib temp Build _build_params MYMETA.yml MYMETA.json/;
+ return 0;
+ },
+);
+
+sub Build {
+ my $action = @ARGV && $ARGV[0] =~ /\A\w+\z/ ? shift @ARGV : 'build';
+ die "No such action '$action'\n" if not $actions{$action};
+ my($env, $bargv) = @{ decode_json(read_file('_build_params')) };
+ my %opt;
+ GetOptionsFromArray($_, \%opt, qw/install_base=s install_path=s% installdirs=s destdir=s prefix=s config=s% uninst:1 verbose:1 dry_run:1 pureperl-only:1 create_packlist=i jobs=i/) for ($env, $bargv, \@ARGV);
+ $_ = detildefy($_) for grep { defined } @opt{qw/install_base destdir prefix/}, values %{ $opt{install_path} };
+ @opt{ 'config', 'meta' } = (ExtUtils::Config->new($opt{config}), get_meta());
+ exit $actions{$action}->(%opt, install_paths => ExtUtils::InstallPaths->new(%opt, dist_name => $opt{meta}->name));
+}
+
+sub Build_PL {
+ my $meta = get_meta();
+ printf "Creating new 'Build' script for '%s' version '%s'\n", $meta->name, $meta->version;
+ my $dir = $meta->name eq 'Module-Build-Tiny' ? "use lib 'lib';" : '';
+ write_file('Build', "#!perl\n$dir\nuse Module::Build::Tiny;\nBuild();\n");
+ make_executable('Build');
+ my @env = defined $ENV{PERL_MB_OPT} ? split_like_shell($ENV{PERL_MB_OPT}) : ();
+ write_file('_build_params', encode_json([ \@env, \@ARGV ]));
+ $meta->save(@$_) for ['MYMETA.json'], [ 'MYMETA.yml' => { version => 1.4 } ];
+}
+
+1;
+
+#ABSTRACT: A tiny replacement for Module::Build
+
+
+# vi:noet:sts=4:sw=4:ts=4
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Module::Build::Tiny - A tiny replacement for Module::Build
+
+=head1 VERSION
+
+version 0.047
+
+=head1 SYNOPSIS
+
+ use Module::Build::Tiny;
+ Build_PL();
+
+=head1 DESCRIPTION
+
+Many Perl distributions use a Build.PL file instead of a Makefile.PL file
+to drive distribution configuration, build, test and installation.
+Traditionally, Build.PL uses Module::Build as the underlying build system.
+This module provides a simple, lightweight, drop-in replacement.
+
+Whereas Module::Build has over 6,700 lines of code; this module has less
+than 200, yet supports the features needed by most distributions.
+
+=head2 Supported
+
+=over 4
+
+=item * Pure Perl distributions
+
+=item * Building XS or C
+
+=item * Recursive test files
+
+=item * MYMETA
+
+=item * Man page generation
+
+=item * Generated code from PL files
+
+=item * Module sharedirs
+
+=back
+
+=head2 Not Supported
+
+=over 4
+
+=item * Dynamic prerequisites
+
+=item * HTML documentation generation
+
+=item * Extending Module::Build::Tiny
+
+=back
+
+=head2 Directory structure
+
+Your .pm, .xs and .pod files must be in F<lib/>. Any executables must be in
+F<script/>. Test files must be in F<t/>. Dist sharedirs must be in F<share/>,
+module sharedirs are under F<module-share> (e.g. F<module-share/Foo-Bar> for
+module C<Foo::Bar>).
+
+C<.c> files in the F<src/> are compiled together with the .xs file matching the
+distribution name.
+
+=head1 USAGE
+
+These all work pretty much like their Module::Build equivalents.
+
+=head2 perl Build.PL
+
+=head2 Build [ build ]
+
+=head2 Build test
+
+=head2 Build install
+
+This supports the following options:
+
+=over
+
+=item * verbose
+
+=item * install_base
+
+=item * installdirs
+
+=item * prefix
+
+=item * install_path
+
+=item * destdir
+
+=item * uninst
+
+=item * config
+
+=item * pure-perl
+
+=item * create_packlist
+
+=back
+
+=head1 AUTHORING
+
+This module doesn't support authoring. To develop modules using Module::Build::Tiny, usage of L<Dist::Zilla::Plugin::ModuleBuildTiny> or L<App::ModuleBuildTiny> is recommended.
+
+=head1 CONFIG FILE AND ENVIRONMENT
+
+Options can be provided in the C<PERL_MB_OPT> environment variable the same way they can with Module::Build. This should be done during the configuration stage.
+
+=head2 Incompatibilities
+
+=over 4
+
+=item * Argument parsing
+
+Module::Build has an extremely permissive way of argument handling, Module::Build::Tiny only supports a (sane) subset of that. In particular, C<./Build destdir=/foo> does not work, you will need to pass it as C<./Build --destdir=/foo>.
+
+=item * .modulebuildrc
+
+Module::Build::Tiny does not support .modulebuildrc files. In particular, this means that versions of local::lib older than 1.006008 may break with C<ERROR: Can't create /usr/local/somepath>. If the output of C<perl -Mlocal::lib> contains C<MODULEBUILDRC> but not C<PERL_MB_OPT >, you will need to upgrade it to resolve this issue.
+
+=back
+
+=head1 SEE ALSO
+
+L<Module::Build>
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Leon Timmermans <leont@cpan.org>
+
+=item *
+
+David Golden <dagolden@cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2011 by Leon Timmermans, 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.
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA.pm
index dbbc6268c8..63bbc83321 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA.pm
@@ -1,18 +1,15 @@
package Mozilla::CA;
-
use strict;
-our $VERSION = '20211001';
+use warnings;
+
+our $VERSION = '20231213';
-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;
+ return File::Spec->rel2abs($file);
}
1;
@@ -30,14 +27,14 @@ Mozilla::CA - Mozilla's CA cert bundle in PEM format
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(),
+ PeerHost => "$host:443",
+ SSL_verify_mode => 0x02,
+ SSL_ca_file => Mozilla::CA::SSL_ca_file(),
)
- || die "Can't connect: $@";
+ || die "Can't connect: $@";
$client->verify_hostname($host, "http")
- || die "hostname verification failure";
+ || die "hostname verification failure";
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem
index dcaeb7359d..6a898bb7c6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/CA/cacert.pem
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Fri Oct 1 13:46:52 2021 GMT
+## Certificate data from Mozilla as of: Wed Dec 13 16:41:47 2023 GMT
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -13,8 +13,8 @@
## 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.28.
-## SHA256: c8f6733d1ff4e6a4769c182971a1234f95ae079247a9c439a13423fe8ba5c24f
+## Conversion done with mk-ca-bundle.pl version 1.29.
+## SHA256: 1970dd65858925d68498d2356aea6d03f764422523c5887deca8ce3ba9e1f845
##
@@ -39,28 +39,6 @@ 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-----
-
Entrust.net Premium 2048 Secure Server CA
=========================================
-----BEGIN CERTIFICATE-----
@@ -222,27 +200,6 @@ 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-----
-
XRamp Global CA Root
====================
-----BEGIN CERTIFICATE-----
@@ -511,29 +468,6 @@ 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-----
-
COMODO ECC Certification Authority
==================================
-----BEGIN CERTIFICATE-----
@@ -573,28 +507,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
-----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-----
@@ -670,26 +582,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
-----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-----
@@ -756,39 +648,6 @@ 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-----
@@ -1037,60 +896,6 @@ 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-----
@@ -1382,40 +1187,6 @@ 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-----
@@ -1737,20 +1508,6 @@ HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
-----END CERTIFICATE-----
-GlobalSign ECC Root CA - R4
-===========================
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
-OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
-AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
-MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
-JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
------END CERTIFICATE-----
-
GlobalSign ECC Root CA - R5
===========================
-----BEGIN CERTIFICATE-----
@@ -1766,36 +1523,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
-----END CERTIFICATE-----
-Staat der Nederlanden EV Root CA
-================================
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
-MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
-cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
-SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
-O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
-0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
-Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
-XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
-08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
-0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
-74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
-fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
-ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
-c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
-5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
-b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
-f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
-5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
-WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
-DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
-eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
------END CERTIFICATE-----
-
IdenTrust Commercial Root CA 1
==============================
-----BEGIN CERTIFICATE-----
@@ -2247,87 +1974,6 @@ F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ
aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
-----END CERTIFICATE-----
-TrustCor RootCert CA-1
-======================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
-MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
-U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
-MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
-YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
-VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
-dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
-jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
-pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
-JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
-gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
-/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
-BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
-mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
-ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
-qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
-3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
------END CERTIFICATE-----
-
-TrustCor RootCert CA-2
-======================
------BEGIN CERTIFICATE-----
-MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
-DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
-eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
-eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
-MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
-bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
-cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
-IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
-ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
-RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
-oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
-XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
-/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
-jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
-eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
-rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
-8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
-2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
-Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
-kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
-2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
-S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
-PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
-DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
-RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
-xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
-RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
------END CERTIFICATE-----
-
-TrustCor ECA-1
-==============
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
-MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
-U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
-N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
-MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
-IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
-MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
-xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
-p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
-fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
-YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
-f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
-AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
-/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
-hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
-J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
-jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
------END CERTIFICATE-----
-
SSL.com Root Certification Authority RSA
========================================
-----BEGIN CERTIFICATE-----
@@ -2472,96 +2118,6 @@ AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk
AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
-----END CERTIFICATE-----
-GTS Root R1
-===========
------BEGIN CERTIFICATE-----
-MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG
-EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv
-b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG
-A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx
-9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r
-aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW
-r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM
-LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly
-4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr
-06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92
-wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om
-3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu
-JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM
-BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1
-d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv
-fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm
-ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b
-gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq
-4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr
-tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo
-pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0
-sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql
-CFF1pkgl
------END CERTIFICATE-----
-
-GTS Root R2
-===========
------BEGIN CERTIFICATE-----
-MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG
-EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv
-b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG
-A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk
-k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo
-7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI
-m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm
-dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu
-ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz
-cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW
-Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl
-aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy
-5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM
-BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT
-vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ
-+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw
-c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da
-WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r
-n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu
-Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ
-7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs
-gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld
-o/DUhgkC
------END CERTIFICATE-----
-
-GTS Root R3
-===========
------BEGIN CERTIFICATE-----
-MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
-UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
-UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
-ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq
-hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU
-Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej
-QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP
-0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0
-glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa
-KaqW04MjyaR7YbPMAuhd
------END CERTIFICATE-----
-
-GTS Root R4
-===========
------BEGIN CERTIFICATE-----
-MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
-UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
-UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
-ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq
-hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa
-6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj
-QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV
-2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI
-N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x
-zPKwTdb+mciUqXWi4w==
------END CERTIFICATE-----
-
UCA Global G2 Root
==================
-----BEGIN CERTIFICATE-----
@@ -3152,3 +2708,827 @@ WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj
OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck
bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
-----END CERTIFICATE-----
+
+TunTrust Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG
+A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj
+dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw
+NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD
+ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz
+2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b
+bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7
+NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd
+gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW
+VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f
+Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ
+juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas
+DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS
+VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI
+04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0
+90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl
+0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd
+Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY
+YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp
+adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x
+xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP
+jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM
+MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z
+ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r
+AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=
+-----END CERTIFICATE-----
+
+HARICA TLS RSA Root CA 2021
+===========================
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG
+EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
+cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz
+OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl
+bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB
+IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN
+JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu
+a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y
+Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K
+5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv
+dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR
+0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH
+GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm
+haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ
+CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU
+EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq
+QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD
+QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR
+j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5
+vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0
+qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6
+Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/
+PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn
+kf3/W9b3raYvAwtt41dU63ZTGI0RmLo=
+-----END CERTIFICATE-----
+
+HARICA TLS ECC Root CA 2021
+===========================
+-----BEGIN CERTIFICATE-----
+MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH
+UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD
+QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX
+DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj
+IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv
+b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l
+AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b
+ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW
+0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi
+rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw
+CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps
+-----END CERTIFICATE-----
+
+Autoridad de Certificacion Firmaprofesional CIF A62634068
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA
+BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
+MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw
+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+JIwuwIDAQABo4HvMIHsMB0GA1Ud
+DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w
+gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j
+b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A
+bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL
+4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb
+LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il
+I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP
+cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA
+LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A
+lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH
+9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf
+NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE
+ZycPvEJdvSRUDewdcAZfpLz6IHxV
+-----END CERTIFICATE-----
+
+vTrus ECC Root CA
+=================
+-----BEGIN CERTIFICATE-----
+MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE
+BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS
+b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa
+BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw
+EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c
+ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n
+TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT
+QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL
+YgmRWAD5Tfs0aNoJrSEGGJTO
+-----END CERTIFICATE-----
+
+vTrus Root CA
+=============
+-----BEGIN CERTIFICATE-----
+MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG
+A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv
+b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG
+A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots
+SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI
+ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF
+XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA
+YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70
+kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2
+AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu
+/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu
+1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO
+9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg
+scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC
+AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd
+nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr
+jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4
+8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn
+xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg
+icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4
+sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW
+nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc
+SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H
+l3s=
+-----END CERTIFICATE-----
+
+ISRG Root X2
+============
+-----BEGIN CERTIFICATE-----
+MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV
+UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT
+UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT
+MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS
+RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H
+ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb
+d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF
+cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5
+U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn
+-----END CERTIFICATE-----
+
+HiPKI Root CA - G1
+==================
+-----BEGIN CERTIFICATE-----
+MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG
+EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ
+IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT
+AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg
+Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0
+o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k
+wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE
+YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA
+GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd
+hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj
+1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4
+9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/
+Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF
+8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD
+AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi
+7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl
+tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE
+wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q
+JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv
+5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz
+jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg
+hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb
+yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/
+yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ==
+-----END CERTIFICATE-----
+
+GlobalSign ECC Root CA - R4
+===========================
+-----BEGIN CERTIFICATE-----
+MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i
+YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds
+b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i
+YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds
+b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW
+ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E
+BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI
+KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg
+UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm
+-----END CERTIFICATE-----
+
+GTS Root R1
+===========
+-----BEGIN CERTIFICATE-----
+MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV
+UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
+UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
+ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM
+f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0
+xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w
+B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW
+nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk
+9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq
+kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A
+K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX
+V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW
+cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD
+ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe
+QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi
+ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar
+J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci
+NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me
+LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF
+fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+
+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3
+FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3
+gm3c
+-----END CERTIFICATE-----
+
+GTS Root R2
+===========
+-----BEGIN CERTIFICATE-----
+MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV
+UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
+UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
+ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv
+CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl
+e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb
+a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS
++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M
+kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG
+r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q
+S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV
+J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL
+dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD
+ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8
+0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh
+swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel
+/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn
+jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5
+9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M
+7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8
+0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR
+WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW
+HYbL
+-----END CERTIFICATE-----
+
+GTS Root R3
+===========
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi
+MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw
+HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ
+R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO
+PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout
+736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq
+Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT
+L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV
+11RZt+cRLInUue4X
+-----END CERTIFICATE-----
+
+GTS Root R4
+===========
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi
+MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw
+HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ
+R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO
+PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu
+hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1
+PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C
+r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh
+4rsUecrNIdSUtUlD
+-----END CERTIFICATE-----
+
+Telia Root CA v2
+================
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT
+AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2
+MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK
+DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7
+6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q
+9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn
+pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl
+tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW
+5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr
+RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E
+BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4
+M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau
+BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W
+xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ
+8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5
+tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H
+eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C
+y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC
+QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15
+h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70
+sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9
+xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ
+raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc=
+-----END CERTIFICATE-----
+
+D-TRUST BR Root CA 1 2020
+=========================
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE
+RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy
+MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV
+BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG
+ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7
+dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu
+QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t
+MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu
+bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj
+dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP
+PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
+AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom
+AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87
+-----END CERTIFICATE-----
+
+D-TRUST EV Root CA 1 2020
+=========================
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE
+RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy
+MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV
+BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG
+ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8
+ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ
+raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL
+MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu
+bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj
+dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP
+PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
+AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR
+AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW
+-----END CERTIFICATE-----
+
+DigiCert TLS ECC P384 Root G5
+=============================
+-----BEGIN CERTIFICATE-----
+MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4
+NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg
+Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd
+lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj
+n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB
+/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds
+Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx
+AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA==
+-----END CERTIFICATE-----
+
+DigiCert TLS RSA4096 Root G5
+============================
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG
+EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0
+MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2
+IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8
+7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU
+AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces
+tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa
+zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV
+DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q
+TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy
+z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/
+MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk
+wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E
+FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w
+DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw
+GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN
+lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN
+MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/
+u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G
+OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh
+47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU
+FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ
+yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP
+bEtoL8pU9ozaMv7Da4M/OMZ+
+-----END CERTIFICATE-----
+
+Certainly Root R1
+=================
+-----BEGIN CERTIFICATE-----
+MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE
+BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN
+MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy
+dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O
+5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl
+8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl
+DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI
+XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN
+KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ
+AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb
+rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1
+VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS
+p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz
+HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d
+8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v
+MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB
+GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+
+gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH
+JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7
+fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw
+x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S
+X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8=
+-----END CERTIFICATE-----
+
+Certainly Root E1
+=================
+-----BEGIN CERTIFICATE-----
+MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV
+UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0
+MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu
+bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4
+fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9
+YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E
+AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
+rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
+-----END CERTIFICATE-----
+
+Security Communication RootCA3
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNVBAYTAkpQMSUw
+IwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScwJQYDVQQDEx5TZWN1cml0eSBD
+b21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQsw
+CQYDVQQGEwJKUDElMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UE
+AxMeU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4rCmDvu20r
+hvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzAlrenfna84xtSGc4RHwsE
+NPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MGTfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2
+/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF79+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGm
+npjKIG58u4iFW/vAEGK78vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtY
+XLVqAvO4g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3weGVPK
+p7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst+3A7caoreyYn8xrC
+3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M0V9hvqG8OmpI6iZVIhZdXw3/JzOf
+GAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQT9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0Vcw
+CBEF/VfR2ccCAwEAAaNCMEAwHQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB
+/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS
+YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PAFNr0Y/Dq9HHu
+Tofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd9XbXv8S2gVj/yP9kaWJ5rW4O
+H3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQIUYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASx
+YfQAW0q3nHE3GYV5v4GwxxMOdnE+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZ
+XSEIx2C/pHF7uNkegr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml
++LLfiAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUVnuiZIesn
+KwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD2NCcnWXL0CsnMQMeNuE9
+dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm
+6Vwdp6POXiUyK+OVrCoHzrQoeIY8LaadTdJ0MN1kURXbg4NR16/9M51NZg==
+-----END CERTIFICATE-----
+
+Security Communication ECC RootCA1
+==================================
+-----BEGIN CERTIFICATE-----
+MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD
+VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t
+dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL
+MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV
+BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo
+5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW
+BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK
+BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L
+snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e
+N9k=
+-----END CERTIFICATE-----
+
+BJCA Global Root CA1
+====================
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG
+EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK
+Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG
+A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD
+DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm
+CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS
+sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn
+P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW
+yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj
+eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn
+MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b
+OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh
+GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK
+H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB
+AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4
+YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ
+dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8
+60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh
+TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW
+4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp
+GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx
+4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps
+3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S
+SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI=
+-----END CERTIFICATE-----
+
+BJCA Global Root CA2
+====================
+-----BEGIN CERTIFICATE-----
+MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD
+TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg
+R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE
+BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC
+SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl
+SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK
+/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI
+1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8
+W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g
+UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==
+-----END CERTIFICATE-----
+
+Sectigo Public Server Authentication Root E46
+=============================================
+-----BEGIN CERTIFICATE-----
+MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH
+QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2
+ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5
+WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0
+aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr
+gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0
+NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud
+DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
+/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH
+lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U
+SAGKcw==
+-----END CERTIFICATE-----
+
+Sectigo Public Server Authentication Root R46
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG
+EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT
+ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1
+OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T
+ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3
+DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k
+1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf
+GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP
+FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu
+ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz
+Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A
+wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF
+plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ
+EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW
+6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI
+IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c
+mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp
+E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4
+exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M
+0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI
+84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m
+pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd
+Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b
+E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm
+J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL
+-----END CERTIFICATE-----
+
+SSL.com TLS RSA Root CA 2022
+============================
+-----BEGIN CERTIFICATE-----
+MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG
+EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg
+Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC
+VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv
+b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u
+9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y
+7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac
+oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M
+R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG
+D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW
+TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk
+8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq
+g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk
+7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud
+EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu
+N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt
+hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN
+j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by
+iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU
+o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo
+ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib
+MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi
+vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7
+P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0
+9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA=
+-----END CERTIFICATE-----
+
+SSL.com TLS ECC Root CA 2022
+============================
+-----BEGIN CERTIFICATE-----
+MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV
+UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v
+dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx
+GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg
+Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy
+JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1
+5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7
+81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG
+MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w
+7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5
+Zn6g6g==
+-----END CERTIFICATE-----
+
+Atos TrustedRoot Root CA ECC TLS 2021
+=====================================
+-----BEGIN CERTIFICATE-----
+MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB
+dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD
+VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg
+VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT
+AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K
+DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS
+b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX
+NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+
+uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY
+a3cpetskz2VAv9LcjBHo9H1/IISpQuQo
+-----END CERTIFICATE-----
+
+Atos TrustedRoot Root CA RSA TLS 2021
+=====================================
+-----BEGIN CERTIFICATE-----
+MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD
+DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw
+CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0
+b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV
+BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB
+l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG
+vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK
+ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt
+0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK
+PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY
+sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY
+Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+
+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa
+fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G
+CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS
+4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl
+Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX
+AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G
+slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt
+afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q
+TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj
+1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l
+PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W
+HYMfRsCbvUOZ58SWLs5fyQ==
+-----END CERTIFICATE-----
+
+TrustAsia Global Root CA G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG
+A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM
+G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw
+MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu
+MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz
+lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ
+Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V
+P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag
+dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm
+9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc
+D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg
+WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea
+mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF
+TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj
+7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E
+BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1
+D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T
+G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj
+duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl
+cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys
++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli
+2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y
+aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS
+ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR
+JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH
+-----END CERTIFICATE-----
+
+TrustAsia Global Root CA G4
+===========================
+-----BEGIN CERTIFICATE-----
+MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE
+BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry
+dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa
+MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw
+IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
+AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8
+m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF
+MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/
+pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA
+bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk
+dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA==
+-----END CERTIFICATE-----
+
+CommScope Public Trust ECC Root-01
+==================================
+-----BEGIN CERTIFICATE-----
+MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE
+BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz
+dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT
+AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg
+RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx
+eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot
+6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2
+Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW
+pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE=
+-----END CERTIFICATE-----
+
+CommScope Public Trust ECC Root-02
+==================================
+-----BEGIN CERTIFICATE-----
+MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE
+BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz
+dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT
+AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg
+RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M
+MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE
+SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9
+Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7
+3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag==
+-----END CERTIFICATE-----
+
+CommScope Public Trust RSA Root-01
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG
+A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU
+cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV
+BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1
+c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft
+nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6
+uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq
+ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs
+vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c
+Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif
+BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9
+lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo
+KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH
++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4
+5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6
+NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM
+3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck
+jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf
+Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W
+NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+
+o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/
+oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc
+1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM
+6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw
+-----END CERTIFICATE-----
+
+CommScope Public Trust RSA Root-02
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG
+A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU
+cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV
+BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1
+c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V
+rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx
+7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC
+e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W
+Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp
+M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf
+hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr
+eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE
+VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t
+Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx
+cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB
+KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF
+1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa
+MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd
+gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O
+HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm
+YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr
+dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ
+iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN
+lM47ni3niAIi9G7oyOzWPPO5std3eqx7
+-----END CERTIFICATE-----
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/mk-ca-bundle.pl b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/mk-ca-bundle.pl
deleted file mode 100644
index e5a7420c0e..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Mozilla/mk-ca-bundle.pl
+++ /dev/null
@@ -1,625 +0,0 @@
-#!/usr/bin/env perl
-# ***************************************************************************
-# * _ _ ____ _
-# * Project ___| | | | _ \| |
-# * / __| | | | |_) | |
-# * | (__| |_| | _ <| |___
-# * \___|\___/|_| \_\_____|
-# *
-# * Copyright (C) 1998 - 2021, 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 https://curl.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 Encode;
-use Getopt::Std;
-use MIME::Base64;
-use strict;
-use warnings;
-use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w);
-use List::Util;
-use Text::Wrap;
-use Time::Local;
-my $MOD_SHA = "Digest::SHA";
-eval "require $MOD_SHA";
-if ($@) {
- $MOD_SHA = "Digest::SHA::PurePerl";
- eval "require $MOD_SHA";
-}
-eval "require LWP::UserAgent";
-
-my %urls = (
- 'nss' =>
- 'https://hg.mozilla.org/projects/nss/raw-file/default/lib/ckfw/builtins/certdata.txt',
- 'central' =>
- 'https://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt',
- 'beta' =>
- 'https://hg.mozilla.org/releases/mozilla-beta/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt',
- 'release' =>
- 'https://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.28';
-
-$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:fhiklmnp: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;
-if(defined($urls{$opt_d})) {
- $url = $urls{$opt_d};
- if(!$opt_k && $url !~ /^https:\/\//i) {
- die "The URL for '$opt_d' is not HTTPS. Use -k to override (insecure).\n";
- }
-}
-else {
- $url = $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 "Encode::Encoding.pm Version : ${Encode::Encoding::VERSION}\n";
- print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n";
- print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n" if($LWP::UserAgent::VERSION);
- print "LWP.pm Version : ${LWP::VERSION}\n" if($LWP::VERSION);
- 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) If you use HTTP URLs they are subject to a man in the middle attack\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] [-k] [-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-k\tallow URLs other than HTTPS, enable HTTP fallback (insecure)\n";
- print "\t-l\tprint license info about certdata.txt\n";
- print "\t-m\tinclude meta data in output\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 report($@) {
- my $output = shift;
-
- print STDERR $output . "\n" unless $opt_q;
-}
-
-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 sha256 {
- 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(256)->addfile(*FILE)->hexdigest;
- close(FILE);
- } else {
- # Use OpenSSL command if Perl Digest::SHA modules not available
- $result = `"$openssl" dgst -r -sha256 "$_[0]"`;
- $result =~ s/^([0-9a-f]{64}) .+/$1/is;
- }
- return $result;
-}
-
-
-sub oldhash {
- my $hash = "";
- open(C, "<$_[0]") || return 0;
- while(<C>) {
- chomp;
- if($_ =~ /^\#\# SHA256: (.*)/) {
- $hash = $1;
- last;
- }
- }
- close(C);
- return $hash;
-}
-
-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 $oldhash = oldhash($crt);
-
-report "SHA256 of old file: $oldhash";
-
-if(!$opt_n) {
- report "Downloading $txt ...";
-
- # If we have an HTTPS URL then use curl
- if($url =~ /^https:\/\//i) {
- if($curl) {
- if($curl =~ /^Protocols:.* https( |$)/m) {
- report "Get certdata with curl!";
- my $proto = !$opt_k ? "--proto =https" : "";
- my $quiet = $opt_q ? "-s" : "";
- my @out = `curl -w %{response_code} $proto $quiet -o "$txt" "$url"`;
- if(!$? && @out && $out[0] == 200) {
- $fetched = 1;
- report "Downloaded $txt";
- }
- else {
- report "Failed downloading via HTTPS with curl";
- if(-e $txt && !unlink($txt)) {
- report "Failed to remove '$txt': $!";
- }
- }
- }
- else {
- report "curl lacks https support";
- }
- }
- else {
- report "curl not found";
- }
- }
-
- # If nothing was fetched then use LWP
- if(!$fetched) {
- if($url =~ /^https:\/\//i) {
- report "Falling back to HTTP";
- $url =~ s/^https:\/\//http:\/\//i;
- }
- if(!$opt_k) {
- report "URLs other than HTTPS are disabled by default, to enable use -k";
- exit 1;
- }
- report "Get certdata with LWP!";
- if(!defined(${LWP::UserAgent::VERSION})) {
- report "LWP is not available (LWP::UserAgent not found)";
- exit 1;
- }
- my $ua = new LWP::UserAgent(agent => "$0/$version");
- $ua->env_proxy();
- $resp = $ua->mirror($url, $txt);
- if($resp && $resp->code eq '304') {
- report "Not modified";
- exit 0 if -e $crt && !$opt_f;
- }
- else {
- $fetched = 1;
- report "Downloaded $txt";
- }
- if(!$resp || $resp->code !~ /^(?:200|304)$/) {
- report "Unable to download latest data: "
- . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed");
- 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 $newhash= sha256($txt);
-
-if(!$opt_f && $oldhash eq $newhash) {
- report "Downloaded file identical to previous run\'s source file. Exiting";
- if($opt_u && -e $txt && !unlink($txt)) {
- report "Failed to remove $txt: $!\n";
- }
- exit;
-}
-
-report "SHA256 of new file: $newhash";
-
-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} GMT
-##
-## 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.
-## SHA256: $newhash
-##
-
-EOT
-
-report "Processing '$txt' ...";
-my $caname;
-my $certnum = 0;
-my $skipnum = 0;
-my $start_of_cert = 0;
-my @precert;
-my $cka_value;
-my $valid = 1;
-
-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 \*\*\*\*\*/);
- }
- }
-# Not Valid After : Thu Sep 30 14:01:15 2021
- elsif(/^# Not Valid After : (.*)/) {
- my $stamp = $1;
- use Time::Piece;
- my $t = Time::Piece->strptime
- ($stamp, "%a %b %d %H:%M:%S %Y");
- my $delta = ($t->epoch - time()); # negative means no longer valid
- if($delta < 0) {
- $skipnum++;
- report "Skipping: $caname is not valid anymore" if ($opt_v);
- $valid = 0;
- }
- else {
- $valid = 1;
- }
- next;
- }
- elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) {
- push @precert, $_;
- next;
- }
- elsif(/^#|^\s*$/) {
- undef @precert;
- next;
- }
- chomp;
-
- # Example:
- # CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
- # \062\060\060\066\061\067\060\060\060\060\060\060\132
- # END
-
- if (/^CKA_NSS_SERVER_DISTRUST_AFTER (CK_BBOOL CK_FALSE|MULTILINE_OCTAL)/) {
- if($1 eq "MULTILINE_OCTAL") {
- my @timestamp;
- while (<TXT>) {
- last if (/^END/);
- chomp;
- my @octets = split(/\\/);
- shift @octets;
- for (@octets) {
- push @timestamp, chr(oct);
- }
- }
- # A trailing Z in the timestamp signifies UTC
- if($timestamp[12] ne "Z") {
- report "distrust date stamp is not using UTC";
- }
- # Example date: 200617000000Z
- # Means 2020-06-17 00:00:00 UTC
- my $distrustat =
- timegm($timestamp[10] . $timestamp[11], # second
- $timestamp[8] . $timestamp[9], # minute
- $timestamp[6] . $timestamp[7], # hour
- $timestamp[4] . $timestamp[5], # day
- ($timestamp[2] . $timestamp[3]) - 1, # month
- "20" . $timestamp[0] . $timestamp[1]); # year
- if(time >= $distrustat) {
- # not trusted anymore
- $skipnum++;
- report "Skipping: $caname is not trusted anymore" if ($opt_v);
- $valid = 0;
- }
- else {
- # still trusted
- }
- }
- next;
- }
-
- # 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/) {
- $cka_value="";
- while (<TXT>) {
- last if (/^END/);
- chomp;
- my @octets = split(/\\/);
- shift @octets;
- for (@octets) {
- $cka_value .= chr(oct);
- }
- }
- }
- if(/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/ && $valid) {
- # 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) ) {
- report "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2";
- } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) {
- report "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2";
- } else {
- push @{$trust_purposes_by_level{$2}}, $1;
- }
- }
- }
-
- if ( !should_output_cert(%trust_purposes_by_level) ) {
- $skipnum ++;
- report "Skipping: $caname" if ($opt_v);
- } else {
- my $data = $cka_value;
- $cka_value = "";
-
- if(!length($data)) {
- # if empty, skip
- next;
- }
- 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";
- print CRT @precert if($opt_m);
- my $maxStringLength = length(decode('UTF-8', $caname, Encode::FB_CROAK | Encode::LEAVE_SRC));
- if ($opt_t) {
- foreach my $key (sort 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.~: $!";
- }
- }
- report "Parsing: $caname" if ($opt_v);
- $certnum ++;
- $start_of_cert = 0;
- }
- undef @precert;
- }
-
-}
-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";
-}
-if($opt_u && -e $txt && !unlink($txt)) {
- report "Failed to remove $txt: $!\n";
-}
-report "Done ($certnum CA certs processed, $skipnum skipped).";
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP.pm
index c28f8bf95b..0f6fef8f2c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP.pm
@@ -1,5 +1,5 @@
package Net::HTTP;
-our $VERSION = '6.22';
+our $VERSION = '6.23';
use strict;
use warnings;
@@ -50,7 +50,7 @@ Net::HTTP - Low-level HTTP connection (client)
=head1 VERSION
-version 6.22
+version 6.23
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
index 940cdbccb2..69f4f014d0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
@@ -1,5 +1,5 @@
package Net::HTTP::Methods;
-our $VERSION = '6.22';
+our $VERSION = '6.23';
use strict;
use warnings;
use URI;
@@ -655,7 +655,7 @@ Net::HTTP::Methods - Methods shared by Net::HTTP and Net::HTTPS
=head1 VERSION
-version 6.22
+version 6.23
=head1 AUTHOR
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
index 52d5bc81bf..c3292d8544 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
@@ -1,5 +1,5 @@
package Net::HTTP::NB;
-our $VERSION = '6.22';
+our $VERSION = '6.23';
use strict;
use warnings;
@@ -60,7 +60,7 @@ Net::HTTP::NB - Non-blocking HTTP client
=head1 VERSION
-version 6.22
+version 6.23
=head1 SYNOPSIS
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTPS.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTPS.pm
index 4d58326253..08c3583598 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTPS.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Net/HTTPS.pm
@@ -1,5 +1,5 @@
package Net::HTTPS;
-our $VERSION = '6.22';
+our $VERSION = '6.23';
use strict;
use warnings;
@@ -90,7 +90,7 @@ Net::HTTPS - Low-level HTTP over SSL/TLS connection (client)
=head1 VERSION
-version 6.22
+version 6.23
=head1 DESCRIPTION
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Socket.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Socket.pm
new file mode 100755
index 0000000000..81a99f8fce
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Socket.pm
@@ -0,0 +1,1143 @@
+package Socket;
+
+use v5.6.1;
+use strict;
+
+our $VERSION = '2.037';
+
+=head1 NAME
+
+C<Socket> - networking constants and support functions
+
+=head1 SYNOPSIS
+
+C<Socket> a low-level module used by, among other things, the L<IO::Socket>
+family of modules. The following examples demonstrate some low-level uses but
+a practical program would likely use the higher-level API provided by
+C<IO::Socket> or similar instead.
+
+ use Socket qw(PF_INET SOCK_STREAM pack_sockaddr_in inet_aton);
+
+ socket(my $socket, PF_INET, SOCK_STREAM, 0)
+ or die "socket: $!";
+
+ my $port = getservbyname "echo", "tcp";
+ connect($socket, pack_sockaddr_in($port, inet_aton("localhost")))
+ or die "connect: $!";
+
+ print $socket "Hello, world!\n";
+ print <$socket>;
+
+See also the L</EXAMPLES> section.
+
+=head1 DESCRIPTION
+
+This module provides a variety of constants, structure manipulators and other
+functions related to socket-based networking. The values and functions
+provided are useful when used in conjunction with Perl core functions such as
+socket(), setsockopt() and bind(). It also provides several other support
+functions, mostly for dealing with conversions of network addresses between
+human-readable and native binary forms, and for hostname resolver operations.
+
+Some constants and functions are exported by default by this module; but for
+backward-compatibility any recently-added symbols are not exported by default
+and must be requested explicitly. When an import list is provided to the
+C<use Socket> line, the default exports are not automatically imported. It is
+therefore best practice to always to explicitly list all the symbols required.
+
+Also, some common socket "newline" constants are provided: the constants
+C<CR>, C<LF>, and C<CRLF>, as well as C<$CR>, C<$LF>, and C<$CRLF>, which map
+to C<\015>, C<\012>, and C<\015\012>. If you do not want to use the literal
+characters in your programs, then use the constants provided here. They are
+not exported by default, but can be imported individually, and with the
+C<:crlf> export tag:
+
+ use Socket qw(:DEFAULT :crlf);
+
+ $sock->print("GET / HTTP/1.0$CRLF");
+
+The entire getaddrinfo() subsystem can be exported using the tag C<:addrinfo>;
+this exports the getaddrinfo() and getnameinfo() functions, and all the
+C<AI_*>, C<NI_*>, C<NIx_*> and C<EAI_*> constants.
+
+=cut
+
+=head1 CONSTANTS
+
+In each of the following groups, there may be many more constants provided
+than just the ones given as examples in the section heading. If the heading
+ends C<...> then this means there are likely more; the exact constants
+provided will depend on the OS and headers found at compile-time.
+
+=cut
+
+=head2 PF_INET, PF_INET6, PF_UNIX, ...
+
+Protocol family constants to use as the first argument to socket() or the
+value of the C<SO_DOMAIN> or C<SO_FAMILY> socket option.
+
+=head2 AF_INET, AF_INET6, AF_UNIX, ...
+
+Address family constants used by the socket address structures, to pass to
+such functions as inet_pton() or getaddrinfo(), or are returned by such
+functions as sockaddr_family().
+
+=head2 SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, ...
+
+Socket type constants to use as the second argument to socket(), or the value
+of the C<SO_TYPE> socket option.
+
+=head2 SOCK_NONBLOCK. SOCK_CLOEXEC
+
+Linux-specific shortcuts to specify the C<O_NONBLOCK> and C<FD_CLOEXEC> flags
+during a C<socket(2)> call.
+
+ socket( my $sockh, PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, 0 )
+
+=head2 SOL_SOCKET
+
+Socket option level constant for setsockopt() and getsockopt().
+
+=head2 SO_ACCEPTCONN, SO_BROADCAST, SO_ERROR, ...
+
+Socket option name constants for setsockopt() and getsockopt() at the
+C<SOL_SOCKET> level.
+
+=head2 IP_OPTIONS, IP_TOS, IP_TTL, ...
+
+Socket option name constants for IPv4 socket options at the C<IPPROTO_IP>
+level.
+
+=head2 IP_PMTUDISC_WANT, IP_PMTUDISC_DONT, ...
+
+Socket option value constants for C<IP_MTU_DISCOVER> socket option.
+
+=head2 IPTOS_LOWDELAY, IPTOS_THROUGHPUT, IPTOS_RELIABILITY, ...
+
+Socket option value constants for C<IP_TOS> socket option.
+
+=head2 MSG_BCAST, MSG_OOB, MSG_TRUNC, ...
+
+Message flag constants for send() and recv().
+
+=head2 SHUT_RD, SHUT_RDWR, SHUT_WR
+
+Direction constants for shutdown().
+
+=head2 INADDR_ANY, INADDR_BROADCAST, INADDR_LOOPBACK, INADDR_NONE
+
+Constants giving the special C<AF_INET> addresses for wildcard, broadcast,
+local loopback, and invalid addresses.
+
+Normally equivalent to inet_aton('0.0.0.0'), inet_aton('255.255.255.255'),
+inet_aton('localhost') and inet_aton('255.255.255.255') respectively.
+
+=head2 IPPROTO_IP, IPPROTO_IPV6, IPPROTO_TCP, ...
+
+IP protocol constants to use as the third argument to socket(), the level
+argument to getsockopt() or setsockopt(), or the value of the C<SO_PROTOCOL>
+socket option.
+
+=head2 TCP_CORK, TCP_KEEPALIVE, TCP_NODELAY, ...
+
+Socket option name constants for TCP socket options at the C<IPPROTO_TCP>
+level.
+
+=head2 IN6ADDR_ANY, IN6ADDR_LOOPBACK
+
+Constants giving the special C<AF_INET6> addresses for wildcard and local
+loopback.
+
+Normally equivalent to inet_pton(AF_INET6, "::") and
+inet_pton(AF_INET6, "::1") respectively.
+
+=head2 IPV6_ADD_MEMBERSHIP, IPV6_MTU, IPV6_V6ONLY, ...
+
+Socket option name constants for IPv6 socket options at the C<IPPROTO_IPV6>
+level.
+
+=cut
+
+# Still undocumented: SCM_*, SOMAXCONN, IOV_MAX, UIO_MAXIOV
+
+=head1 STRUCTURE MANIPULATORS
+
+The following functions convert between lists of Perl values and packed binary
+strings representing structures.
+
+=cut
+
+=head2 $family = sockaddr_family $sockaddr
+
+Takes a packed socket address (as returned by pack_sockaddr_in(),
+pack_sockaddr_un() or the perl builtin functions getsockname() and
+getpeername()). Returns the address family tag. This will be one of the
+C<AF_*> constants, such as C<AF_INET> for a C<sockaddr_in> addresses or
+C<AF_UNIX> for a C<sockaddr_un>. It can be used to figure out what unpack to
+use for a sockaddr of unknown type.
+
+=head2 $sockaddr = pack_sockaddr_in $port, $ip_address
+
+Takes two arguments, a port number and an opaque string (as returned by
+inet_aton(), or a v-string). Returns the C<sockaddr_in> structure with those
+arguments packed in and C<AF_INET> filled in. For Internet domain sockets,
+this structure is normally what you need for the arguments in bind(),
+connect(), and send().
+
+An undefined $port argument is taken as zero; an undefined $ip_address is
+considered a fatal error.
+
+=head2 ($port, $ip_address) = unpack_sockaddr_in $sockaddr
+
+Takes a C<sockaddr_in> structure (as returned by pack_sockaddr_in(),
+getpeername() or recv()). Returns a list of two elements: the port and an
+opaque string representing the IP address (you can use inet_ntoa() to convert
+the address to the four-dotted numeric format). Will croak if the structure
+does not represent an C<AF_INET> address.
+
+In scalar context will return just the IP address.
+
+=head2 $sockaddr = sockaddr_in $port, $ip_address
+
+=head2 ($port, $ip_address) = sockaddr_in $sockaddr
+
+A wrapper of pack_sockaddr_in() or unpack_sockaddr_in(). In list context,
+unpacks its argument and returns a list consisting of the port and IP address.
+In scalar context, packs its port and IP address arguments as a C<sockaddr_in>
+and returns it.
+
+Provided largely for legacy compatibility; it is better to use
+pack_sockaddr_in() or unpack_sockaddr_in() explicitly.
+
+=head2 $sockaddr = pack_sockaddr_in6 $port, $ip6_address, [$scope_id, [$flowinfo]]
+
+Takes two to four arguments, a port number, an opaque string (as returned by
+inet_pton()), optionally a scope ID number, and optionally a flow label
+number. Returns the C<sockaddr_in6> structure with those arguments packed in
+and C<AF_INET6> filled in. IPv6 equivalent of pack_sockaddr_in().
+
+An undefined $port argument is taken as zero; an undefined $ip6_address is
+considered a fatal error.
+
+=head2 ($port, $ip6_address, $scope_id, $flowinfo) = unpack_sockaddr_in6 $sockaddr
+
+Takes a C<sockaddr_in6> structure. Returns a list of four elements: the port
+number, an opaque string representing the IPv6 address, the scope ID, and the
+flow label. (You can use inet_ntop() to convert the address to the usual
+string format). Will croak if the structure does not represent an C<AF_INET6>
+address.
+
+In scalar context will return just the IP address.
+
+=head2 $sockaddr = sockaddr_in6 $port, $ip6_address, [$scope_id, [$flowinfo]]
+
+=head2 ($port, $ip6_address, $scope_id, $flowinfo) = sockaddr_in6 $sockaddr
+
+A wrapper of pack_sockaddr_in6() or unpack_sockaddr_in6(). In list context,
+unpacks its argument according to unpack_sockaddr_in6(). In scalar context,
+packs its arguments according to pack_sockaddr_in6().
+
+Provided largely for legacy compatibility; it is better to use
+pack_sockaddr_in6() or unpack_sockaddr_in6() explicitly.
+
+=head2 $sockaddr = pack_sockaddr_un $path
+
+Takes one argument, a pathname. Returns the C<sockaddr_un> structure with that
+path packed in with C<AF_UNIX> filled in. For C<PF_UNIX> sockets, this
+structure is normally what you need for the arguments in bind(), connect(),
+and send().
+
+=head2 ($path) = unpack_sockaddr_un $sockaddr
+
+Takes a C<sockaddr_un> structure (as returned by pack_sockaddr_un(),
+getpeername() or recv()). Returns a list of one element: the pathname. Will
+croak if the structure does not represent an C<AF_UNIX> address.
+
+=head2 $sockaddr = sockaddr_un $path
+
+=head2 ($path) = sockaddr_un $sockaddr
+
+A wrapper of pack_sockaddr_un() or unpack_sockaddr_un(). In a list context,
+unpacks its argument and returns a list consisting of the pathname. In a
+scalar context, packs its pathname as a C<sockaddr_un> and returns it.
+
+Provided largely for legacy compatibility; it is better to use
+pack_sockaddr_un() or unpack_sockaddr_un() explicitly.
+
+These are only supported if your system has E<lt>F<sys/un.h>E<gt>.
+
+=head2 $ip_mreq = pack_ip_mreq $multiaddr, $interface
+
+Takes an IPv4 multicast address and optionally an interface address (or
+C<INADDR_ANY>). Returns the C<ip_mreq> structure with those arguments packed
+in. Suitable for use with the C<IP_ADD_MEMBERSHIP> and C<IP_DROP_MEMBERSHIP>
+sockopts.
+
+=head2 ($multiaddr, $interface) = unpack_ip_mreq $ip_mreq
+
+Takes an C<ip_mreq> structure. Returns a list of two elements; the IPv4
+multicast address and interface address.
+
+=head2 $ip_mreq_source = pack_ip_mreq_source $multiaddr, $source, $interface
+
+Takes an IPv4 multicast address, source address, and optionally an interface
+address (or C<INADDR_ANY>). Returns the C<ip_mreq_source> structure with those
+arguments packed in. Suitable for use with the C<IP_ADD_SOURCE_MEMBERSHIP>
+and C<IP_DROP_SOURCE_MEMBERSHIP> sockopts.
+
+=head2 ($multiaddr, $source, $interface) = unpack_ip_mreq_source $ip_mreq
+
+Takes an C<ip_mreq_source> structure. Returns a list of three elements; the
+IPv4 multicast address, source address and interface address.
+
+=head2 $ipv6_mreq = pack_ipv6_mreq $multiaddr6, $ifindex
+
+Takes an IPv6 multicast address and an interface number. Returns the
+C<ipv6_mreq> structure with those arguments packed in. Suitable for use with
+the C<IPV6_ADD_MEMBERSHIP> and C<IPV6_DROP_MEMBERSHIP> sockopts.
+
+=head2 ($multiaddr6, $ifindex) = unpack_ipv6_mreq $ipv6_mreq
+
+Takes an C<ipv6_mreq> structure. Returns a list of two elements; the IPv6
+address and an interface number.
+
+=cut
+
+=head1 FUNCTIONS
+
+=cut
+
+=head2 $ip_address = inet_aton $string
+
+Takes a string giving the name of a host, or a textual representation of an IP
+address and translates that to an packed binary address structure suitable to
+pass to pack_sockaddr_in(). If passed a hostname that cannot be resolved,
+returns C<undef>. For multi-homed hosts (hosts with more than one address),
+the first address found is returned.
+
+For portability do not assume that the result of inet_aton() is 32 bits wide,
+in other words, that it would contain only the IPv4 address in network order.
+
+This IPv4-only function is provided largely for legacy reasons. Newly-written
+code should use getaddrinfo() or inet_pton() instead for IPv6 support.
+
+=head2 $string = inet_ntoa $ip_address
+
+Takes a packed binary address structure such as returned by
+unpack_sockaddr_in() (or a v-string representing the four octets of the IPv4
+address in network order) and translates it into a string of the form
+C<d.d.d.d> where the C<d>s are numbers less than 256 (the normal
+human-readable four dotted number notation for Internet addresses).
+
+This IPv4-only function is provided largely for legacy reasons. Newly-written
+code should use getnameinfo() or inet_ntop() instead for IPv6 support.
+
+=head2 $address = inet_pton $family, $string
+
+Takes an address family (such as C<AF_INET> or C<AF_INET6>) and a string
+containing a textual representation of an address in that family and
+translates that to an packed binary address structure.
+
+See also getaddrinfo() for a more powerful and flexible function to look up
+socket addresses given hostnames or textual addresses.
+
+=head2 $string = inet_ntop $family, $address
+
+Takes an address family and a packed binary address structure and translates
+it into a human-readable textual representation of the address; typically in
+C<d.d.d.d> form for C<AF_INET> or C<hhhh:hhhh::hhhh> form for C<AF_INET6>.
+
+See also getnameinfo() for a more powerful and flexible function to turn
+socket addresses into human-readable textual representations.
+
+=head2 ($err, @result) = getaddrinfo $host, $service, [$hints]
+
+Given both a hostname and service name, this function attempts to resolve the
+host name into a list of network addresses, and the service name into a
+protocol and port number, and then returns a list of address structures
+suitable to connect() to it.
+
+Given just a host name, this function attempts to resolve it to a list of
+network addresses, and then returns a list of address structures giving these
+addresses.
+
+Given just a service name, this function attempts to resolve it to a protocol
+and port number, and then returns a list of address structures that represent
+it suitable to bind() to. This use should be combined with the C<AI_PASSIVE>
+flag; see below.
+
+Given neither name, it generates an error.
+
+If present, $hints should be a reference to a hash, where the following keys
+are recognised:
+
+=over 4
+
+=item flags => INT
+
+A bitfield containing C<AI_*> constants; see below.
+
+=item family => INT
+
+Restrict to only generating addresses in this address family
+
+=item socktype => INT
+
+Restrict to only generating addresses of this socket type
+
+=item protocol => INT
+
+Restrict to only generating addresses for this protocol
+
+=back
+
+The return value will be a list; the first value being an error indication,
+followed by a list of address structures (if no error occurred).
+
+The error value will be a dualvar; comparable to the C<EAI_*> error constants,
+or printable as a human-readable error message string. If no error occurred it
+will be zero numerically and an empty string.
+
+Each value in the results list will be a hash reference containing the following
+fields:
+
+=over 4
+
+=item family => INT
+
+The address family (e.g. C<AF_INET>)
+
+=item socktype => INT
+
+The socket type (e.g. C<SOCK_STREAM>)
+
+=item protocol => INT
+
+The protocol (e.g. C<IPPROTO_TCP>)
+
+=item addr => STRING
+
+The address in a packed string (such as would be returned by
+pack_sockaddr_in())
+
+=item canonname => STRING
+
+The canonical name for the host if the C<AI_CANONNAME> flag was provided, or
+C<undef> otherwise. This field will only be present on the first returned
+address.
+
+=back
+
+The following flag constants are recognised in the $hints hash. Other flag
+constants may exist as provided by the OS.
+
+=over 4
+
+=item AI_PASSIVE
+
+Indicates that this resolution is for a local bind() for a passive (i.e.
+listening) socket, rather than an active (i.e. connecting) socket.
+
+=item AI_CANONNAME
+
+Indicates that the caller wishes the canonical hostname (C<canonname>) field
+of the result to be filled in.
+
+=item AI_NUMERICHOST
+
+Indicates that the caller will pass a numeric address, rather than a hostname,
+and that getaddrinfo() must not perform a resolve operation on this name. This
+flag will prevent a possibly-slow network lookup operation, and instead return
+an error if a hostname is passed.
+
+=back
+
+=head2 ($err, $hostname, $servicename) = getnameinfo $sockaddr, [$flags, [$xflags]]
+
+Given a packed socket address (such as from getsockname(), getpeername(), or
+returned by getaddrinfo() in a C<addr> field), returns the hostname and
+symbolic service name it represents. $flags may be a bitmask of C<NI_*>
+constants, or defaults to 0 if unspecified.
+
+The return value will be a list; the first value being an error condition,
+followed by the hostname and service name.
+
+The error value will be a dualvar; comparable to the C<EAI_*> error constants,
+or printable as a human-readable error message string. The host and service
+names will be plain strings.
+
+The following flag constants are recognised as $flags. Other flag constants may
+exist as provided by the OS.
+
+=over 4
+
+=item NI_NUMERICHOST
+
+Requests that a human-readable string representation of the numeric address be
+returned directly, rather than performing a name resolve operation that may
+convert it into a hostname. This will also avoid potentially-blocking network
+IO.
+
+=item NI_NUMERICSERV
+
+Requests that the port number be returned directly as a number representation
+rather than performing a name resolve operation that may convert it into a
+service name.
+
+=item NI_NAMEREQD
+
+If a name resolve operation fails to provide a name, then this flag will cause
+getnameinfo() to indicate an error, rather than returning the numeric
+representation as a human-readable string.
+
+=item NI_DGRAM
+
+Indicates that the socket address relates to a C<SOCK_DGRAM> socket, for the
+services whose name differs between TCP and UDP protocols.
+
+=back
+
+The following constants may be supplied as $xflags.
+
+=over 4
+
+=item NIx_NOHOST
+
+Indicates that the caller is not interested in the hostname of the result, so
+it does not have to be converted. C<undef> will be returned as the hostname.
+
+=item NIx_NOSERV
+
+Indicates that the caller is not interested in the service name of the result,
+so it does not have to be converted. C<undef> will be returned as the service
+name.
+
+=back
+
+=head1 getaddrinfo() / getnameinfo() ERROR CONSTANTS
+
+The following constants may be returned by getaddrinfo() or getnameinfo().
+Others may be provided by the OS.
+
+=over 4
+
+=item EAI_AGAIN
+
+A temporary failure occurred during name resolution. The operation may be
+successful if it is retried later.
+
+=item EAI_BADFLAGS
+
+The value of the C<flags> hint to getaddrinfo(), or the $flags parameter to
+getnameinfo() contains unrecognised flags.
+
+=item EAI_FAMILY
+
+The C<family> hint to getaddrinfo(), or the family of the socket address
+passed to getnameinfo() is not supported.
+
+=item EAI_NODATA
+
+The host name supplied to getaddrinfo() did not provide any usable address
+data.
+
+=item EAI_NONAME
+
+The host name supplied to getaddrinfo() does not exist, or the address
+supplied to getnameinfo() is not associated with a host name and the
+C<NI_NAMEREQD> flag was supplied.
+
+=item EAI_SERVICE
+
+The service name supplied to getaddrinfo() is not available for the socket
+type given in the $hints.
+
+=back
+
+=cut
+
+=head1 EXAMPLES
+
+=head2 Lookup for connect()
+
+The getaddrinfo() function converts a hostname and a service name into a list
+of structures, each containing a potential way to connect() to the named
+service on the named host.
+
+ use IO::Socket;
+ use Socket qw(SOCK_STREAM getaddrinfo);
+
+ my %hints = (socktype => SOCK_STREAM);
+ my ($err, @res) = getaddrinfo("localhost", "echo", \%hints);
+ die "Cannot getaddrinfo - $err" if $err;
+
+ my $sock;
+
+ foreach my $ai (@res) {
+ my $candidate = IO::Socket->new();
+
+ $candidate->socket($ai->{family}, $ai->{socktype}, $ai->{protocol})
+ or next;
+
+ $candidate->connect($ai->{addr})
+ or next;
+
+ $sock = $candidate;
+ last;
+ }
+
+ die "Cannot connect to localhost:echo" unless $sock;
+
+ $sock->print("Hello, world!\n");
+ print <$sock>;
+
+Because a list of potential candidates is returned, the C<while> loop tries
+each in turn until it finds one that succeeds both the socket() and connect()
+calls.
+
+This function performs the work of the legacy functions gethostbyname(),
+getservbyname(), inet_aton() and pack_sockaddr_in().
+
+In practice this logic is better performed by L<IO::Socket::IP>.
+
+=head2 Making a human-readable string out of an address
+
+The getnameinfo() function converts a socket address, such as returned by
+getsockname() or getpeername(), into a pair of human-readable strings
+representing the address and service name.
+
+ use IO::Socket::IP;
+ use Socket qw(getnameinfo);
+
+ my $server = IO::Socket::IP->new(LocalPort => 12345, Listen => 1) or
+ die "Cannot listen - $@";
+
+ my $socket = $server->accept or die "accept: $!";
+
+ my ($err, $hostname, $servicename) = getnameinfo($socket->peername);
+ die "Cannot getnameinfo - $err" if $err;
+
+ print "The peer is connected from $hostname\n";
+
+Since in this example only the hostname was used, the redundant conversion of
+the port number into a service name may be omitted by passing the
+C<NIx_NOSERV> flag.
+
+ use Socket qw(getnameinfo NIx_NOSERV);
+
+ my ($err, $hostname) = getnameinfo($socket->peername, 0, NIx_NOSERV);
+
+This function performs the work of the legacy functions unpack_sockaddr_in(),
+inet_ntoa(), gethostbyaddr() and getservbyport().
+
+In practice this logic is better performed by L<IO::Socket::IP>.
+
+=head2 Resolving hostnames into IP addresses
+
+To turn a hostname into a human-readable plain IP address use getaddrinfo()
+to turn the hostname into a list of socket structures, then getnameinfo() on
+each one to make it a readable IP address again.
+
+ use Socket qw(:addrinfo SOCK_RAW);
+
+ my ($err, @res) = getaddrinfo($hostname, "", {socktype => SOCK_RAW});
+ die "Cannot getaddrinfo - $err" if $err;
+
+ while( my $ai = shift @res ) {
+ my ($err, $ipaddr) = getnameinfo($ai->{addr}, NI_NUMERICHOST, NIx_NOSERV);
+ die "Cannot getnameinfo - $err" if $err;
+
+ print "$ipaddr\n";
+ }
+
+The C<socktype> hint to getaddrinfo() filters the results to only include one
+socket type and protocol. Without this most OSes return three combinations,
+for C<SOCK_STREAM>, C<SOCK_DGRAM> and C<SOCK_RAW>, resulting in triplicate
+output of addresses. The C<NI_NUMERICHOST> flag to getnameinfo() causes it to
+return a string-formatted plain IP address, rather than reverse resolving it
+back into a hostname.
+
+This combination performs the work of the legacy functions gethostbyname()
+and inet_ntoa().
+
+=head2 Accessing socket options
+
+The many C<SO_*> and other constants provide the socket option names for
+getsockopt() and setsockopt().
+
+ use IO::Socket::INET;
+ use Socket qw(SOL_SOCKET SO_RCVBUF IPPROTO_IP IP_TTL);
+
+ my $socket = IO::Socket::INET->new(LocalPort => 0, Proto => 'udp')
+ or die "Cannot create socket: $@";
+
+ $socket->setsockopt(SOL_SOCKET, SO_RCVBUF, 64*1024) or
+ die "setsockopt: $!";
+
+ print "Receive buffer is ", $socket->getsockopt(SOL_SOCKET, SO_RCVBUF),
+ " bytes\n";
+
+ print "IP TTL is ", $socket->getsockopt(IPPROTO_IP, IP_TTL), "\n";
+
+As a convenience, L<IO::Socket>'s setsockopt() method will convert a number
+into a packed byte buffer, and getsockopt() will unpack a byte buffer of the
+correct size back into a number.
+
+=cut
+
+=head1 AUTHOR
+
+This module was originally maintained in Perl core by the Perl 5 Porters.
+
+It was extracted to dual-life on CPAN at version 1.95 by
+Paul Evans <leonerd@leonerd.org.uk>
+
+=cut
+
+use Carp;
+use warnings::register;
+
+require Exporter;
+require XSLoader;
+our @ISA = qw(Exporter);
+
+# <@Nicholas> you can't change @EXPORT without breaking the implicit API
+# Please put any new constants in @EXPORT_OK!
+
+# List re-ordered to match documentation above. Try to keep the ordering
+# consistent so it's easier to see which ones are or aren't documented.
+our @EXPORT = qw(
+ PF_802 PF_AAL PF_APPLETALK PF_CCITT PF_CHAOS PF_CTF PF_DATAKIT
+ PF_DECnet PF_DLI PF_ECMA PF_GOSIP PF_HYLINK PF_IMPLINK PF_INET PF_INET6
+ PF_ISO PF_KEY PF_LAST PF_LAT PF_LINK PF_MAX PF_NBS PF_NIT PF_NS PF_OSI
+ PF_OSINET PF_PUP PF_ROUTE PF_SNA PF_UNIX PF_UNSPEC PF_USER PF_WAN
+ PF_X25
+
+ AF_802 AF_AAL AF_APPLETALK AF_CCITT AF_CHAOS AF_CTF AF_DATAKIT
+ AF_DECnet AF_DLI AF_ECMA AF_GOSIP AF_HYLINK AF_IMPLINK AF_INET AF_INET6
+ AF_ISO AF_KEY AF_LAST AF_LAT AF_LINK AF_MAX AF_NBS AF_NIT AF_NS AF_OSI
+ AF_OSINET AF_PUP AF_ROUTE AF_SNA AF_UNIX AF_UNSPEC AF_USER AF_WAN
+ AF_X25
+
+ SOCK_DGRAM SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM
+
+ SOL_SOCKET
+
+ SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BROADCAST SO_CHAMELEON
+ SO_DEBUG SO_DETACH_FILTER SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER
+ SO_DONTROUTE SO_ERROR SO_FAMILY SO_KEEPALIVE SO_LINGER SO_OOBINLINE
+ SO_PASSCRED SO_PASSIFNAME SO_PEERCRED SO_PROTOCOL SO_PROTOTYPE
+ SO_RCVBUF SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT
+ SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK
+ SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
+ SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
+
+ IP_HDRINCL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS
+ IP_TTL
+
+ MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_CTRUNC MSG_DONTROUTE
+ MSG_DONTWAIT MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FASTOPEN MSG_FIN
+ MSG_MAXIOVLEN MSG_MCAST MSG_NOSIGNAL MSG_OOB MSG_PEEK MSG_PROXY MSG_RST
+ MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL MSG_WIRE
+
+ SHUT_RD SHUT_RDWR SHUT_WR
+
+ INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_NONE
+
+ SCM_CONNECT SCM_CREDENTIALS SCM_CREDS SCM_RIGHTS SCM_TIMESTAMP
+
+ SOMAXCONN
+
+ IOV_MAX
+ UIO_MAXIOV
+
+ sockaddr_family
+ pack_sockaddr_in unpack_sockaddr_in sockaddr_in
+ pack_sockaddr_in6 unpack_sockaddr_in6 sockaddr_in6
+ pack_sockaddr_un unpack_sockaddr_un sockaddr_un
+
+ inet_aton inet_ntoa
+);
+
+# List re-ordered to match documentation above. Try to keep the ordering
+# consistent so it's easier to see which ones are or aren't documented.
+our @EXPORT_OK = qw(
+ CR LF CRLF $CR $LF $CRLF
+
+ SOCK_NONBLOCK SOCK_CLOEXEC
+
+ IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_BIND_ADDRESS_NO_PORT
+ IP_DROP_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP IP_FREEBIND
+ IP_MULTICAST_ALL IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL
+ IP_MTU IP_MTU_DISCOVER IP_NODEFRAG IP_RECVERR IP_TRANSPARENT
+
+ IPPROTO_IP IPPROTO_IPV6 IPPROTO_RAW IPPROTO_ICMP IPPROTO_IGMP
+ IPPROTO_TCP IPPROTO_UDP IPPROTO_GRE IPPROTO_ESP IPPROTO_AH
+ IPPROTO_ICMPV6 IPPROTO_SCTP
+
+ IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_PROBE IP_PMTUDISC_WANT
+
+ IPTOS_LOWDELAY IPTOS_THROUGHPUT IPTOS_RELIABILITY IPTOS_MINCOST
+
+ TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT
+ TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT
+ TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG
+ TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK
+ TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_USER_TIMEOUT
+ TCP_WINDOW_CLAMP
+
+ IN6ADDR_ANY IN6ADDR_LOOPBACK
+
+ IPV6_ADDRFROM IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
+ IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS
+ IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT
+ IPV6_UNICAST_HOPS IPV6_V6ONLY
+
+ SO_INCOMING_CPU SO_INCOMING_NAPI_ID SO_LOCK_FILTER SO_RCVBUFFORCE
+ SO_SNDBUFFORCE
+
+ pack_ip_mreq unpack_ip_mreq pack_ip_mreq_source unpack_ip_mreq_source
+
+ pack_ipv6_mreq unpack_ipv6_mreq
+
+ inet_pton inet_ntop
+
+ getaddrinfo getnameinfo
+
+ AI_ADDRCONFIG AI_ALL AI_CANONIDN AI_CANONNAME AI_IDN
+ AI_IDN_ALLOW_UNASSIGNED AI_IDN_USE_STD3_ASCII_RULES AI_NUMERICHOST
+ AI_NUMERICSERV AI_PASSIVE AI_V4MAPPED
+
+ NI_DGRAM NI_IDN NI_IDN_ALLOW_UNASSIGNED NI_IDN_USE_STD3_ASCII_RULES
+ NI_NAMEREQD NI_NOFQDN NI_NUMERICHOST NI_NUMERICSERV
+
+ NIx_NOHOST NIx_NOSERV
+
+ EAI_ADDRFAMILY EAI_AGAIN EAI_BADFLAGS EAI_BADHINTS EAI_FAIL EAI_FAMILY
+ EAI_NODATA EAI_NONAME EAI_PROTOCOL EAI_SERVICE EAI_SOCKTYPE EAI_SYSTEM
+);
+
+our %EXPORT_TAGS = (
+ crlf => [qw(CR LF CRLF $CR $LF $CRLF)],
+ addrinfo => [qw(getaddrinfo getnameinfo), grep m/^(?:AI|NI|NIx|EAI)_/, @EXPORT_OK],
+ all => [@EXPORT, @EXPORT_OK],
+);
+
+BEGIN {
+ sub CR () {"\015"}
+ sub LF () {"\012"}
+ sub CRLF () {"\015\012"}
+
+ # These are not gni() constants; they're extensions for the perl API
+ # The definitions in Socket.pm and Socket.xs must match
+ sub NIx_NOHOST() {1 << 0}
+ sub NIx_NOSERV() {1 << 1}
+}
+
+*CR = \CR();
+*LF = \LF();
+*CRLF = \CRLF();
+
+# The four deprecated addrinfo constants
+foreach my $name (qw( AI_IDN_ALLOW_UNASSIGNED AI_IDN_USE_STD3_ASCII_RULES NI_IDN_ALLOW_UNASSIGNED NI_IDN_USE_STD3_ASCII_RULES )) {
+ no strict 'refs';
+ *$name = sub {
+ croak "The addrinfo constant $name is deprecated";
+ };
+}
+
+sub sockaddr_in {
+ if (@_ == 6 && !wantarray) { # perl5.001m compat; use this && die
+ my($af, $port, @quad) = @_;
+ warnings::warn "6-ARG sockaddr_in call is deprecated"
+ if warnings::enabled();
+ pack_sockaddr_in($port, inet_aton(join('.', @quad)));
+ } elsif (wantarray) {
+ croak "usage: (port,iaddr) = sockaddr_in(sin_sv)" unless @_ == 1;
+ unpack_sockaddr_in(@_);
+ } else {
+ croak "usage: sin_sv = sockaddr_in(port,iaddr))" unless @_ == 2;
+ pack_sockaddr_in(@_);
+ }
+}
+
+sub sockaddr_in6 {
+ if (wantarray) {
+ croak "usage: (port,in6addr,scope_id,flowinfo) = sockaddr_in6(sin6_sv)" unless @_ == 1;
+ unpack_sockaddr_in6(@_);
+ }
+ else {
+ croak "usage: sin6_sv = sockaddr_in6(port,in6addr,[scope_id,[flowinfo]])" unless @_ >= 2 and @_ <= 4;
+ pack_sockaddr_in6(@_);
+ }
+}
+
+sub sockaddr_un {
+ if (wantarray) {
+ croak "usage: (filename) = sockaddr_un(sun_sv)" unless @_ == 1;
+ unpack_sockaddr_un(@_);
+ } else {
+ croak "usage: sun_sv = sockaddr_un(filename)" unless @_ == 1;
+ pack_sockaddr_un(@_);
+ }
+}
+
+XSLoader::load(__PACKAGE__, $VERSION);
+
+my %errstr;
+
+if( defined &getaddrinfo ) {
+ # These are not part of the API, nothing uses them, and deleting them
+ # reduces the size of %Socket:: by about 12K
+ delete $Socket::{fake_getaddrinfo};
+ delete $Socket::{fake_getnameinfo};
+} else {
+ require Scalar::Util;
+
+ *getaddrinfo = \&fake_getaddrinfo;
+ *getnameinfo = \&fake_getnameinfo;
+
+ # These numbers borrowed from GNU libc's implementation, but since
+ # they're only used by our emulation, it doesn't matter if the real
+ # platform's values differ
+ my %constants = (
+ AI_PASSIVE => 1,
+ AI_CANONNAME => 2,
+ AI_NUMERICHOST => 4,
+ AI_V4MAPPED => 8,
+ AI_ALL => 16,
+ AI_ADDRCONFIG => 32,
+ # RFC 2553 doesn't define this but Linux does - lets be nice and
+ # provide it since we can
+ AI_NUMERICSERV => 1024,
+
+ EAI_BADFLAGS => -1,
+ EAI_NONAME => -2,
+ EAI_NODATA => -5,
+ EAI_FAMILY => -6,
+ EAI_SERVICE => -8,
+
+ NI_NUMERICHOST => 1,
+ NI_NUMERICSERV => 2,
+ NI_NOFQDN => 4,
+ NI_NAMEREQD => 8,
+ NI_DGRAM => 16,
+
+ # Constants we don't support. Export them, but croak if anyone tries to
+ # use them
+ AI_IDN => 64,
+ AI_CANONIDN => 128,
+ NI_IDN => 32,
+
+ # Error constants we'll never return, so it doesn't matter what value
+ # these have, nor that we don't provide strings for them
+ EAI_SYSTEM => -11,
+ EAI_BADHINTS => -1000,
+ EAI_PROTOCOL => -1001
+ );
+
+ foreach my $name ( keys %constants ) {
+ my $value = $constants{$name};
+
+ no strict 'refs';
+ defined &$name or *$name = sub () { $value };
+ }
+
+ %errstr = (
+ # These strings from RFC 2553
+ EAI_BADFLAGS() => "invalid value for ai_flags",
+ EAI_NONAME() => "nodename nor servname provided, or not known",
+ EAI_NODATA() => "no address associated with nodename",
+ EAI_FAMILY() => "ai_family not supported",
+ EAI_SERVICE() => "servname not supported for ai_socktype",
+ );
+}
+
+# The following functions are used if the system does not have a
+# getaddrinfo(3) function in libc; and are used to emulate it for the AF_INET
+# family
+
+# Borrowed from Regexp::Common::net
+my $REGEXP_IPv4_DECIMAL = qr/25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}/;
+my $REGEXP_IPv4_DOTTEDQUAD = qr/$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL/;
+
+sub fake_makeerr
+{
+ my ( $errno ) = @_;
+ my $errstr = $errno == 0 ? "" : ( $errstr{$errno} || $errno );
+ return Scalar::Util::dualvar( $errno, $errstr );
+}
+
+sub fake_getaddrinfo
+{
+ my ( $node, $service, $hints ) = @_;
+
+ $node = "" unless defined $node;
+
+ $service = "" unless defined $service;
+
+ my ( $family, $socktype, $protocol, $flags ) = @$hints{qw( family socktype protocol flags )};
+
+ $family ||= Socket::AF_INET(); # 0 == AF_UNSPEC, which we want too
+ $family == Socket::AF_INET() or return fake_makeerr( EAI_FAMILY() );
+
+ $socktype ||= 0;
+
+ $protocol ||= 0;
+
+ $flags ||= 0;
+
+ my $flag_passive = $flags & AI_PASSIVE(); $flags &= ~AI_PASSIVE();
+ my $flag_canonname = $flags & AI_CANONNAME(); $flags &= ~AI_CANONNAME();
+ my $flag_numerichost = $flags & AI_NUMERICHOST(); $flags &= ~AI_NUMERICHOST();
+ my $flag_numericserv = $flags & AI_NUMERICSERV(); $flags &= ~AI_NUMERICSERV();
+
+ # These constants don't apply to AF_INET-only lookups, so we might as well
+ # just ignore them. For AI_ADDRCONFIG we just presume the host has ability
+ # to talk AF_INET. If not we'd have to return no addresses at all. :)
+ $flags &= ~(AI_V4MAPPED()|AI_ALL()|AI_ADDRCONFIG());
+
+ $flags & (AI_IDN()|AI_CANONIDN()) and
+ croak "Socket::getaddrinfo() does not support IDN";
+
+ $flags == 0 or return fake_makeerr( EAI_BADFLAGS() );
+
+ $node eq "" and $service eq "" and return fake_makeerr( EAI_NONAME() );
+
+ my $canonname;
+ my @addrs;
+ if( $node ne "" ) {
+ return fake_makeerr( EAI_NONAME() ) if( $flag_numerichost and $node !~ m/^$REGEXP_IPv4_DOTTEDQUAD$/ );
+ ( $canonname, undef, undef, undef, @addrs ) = gethostbyname( $node );
+ defined $canonname or return fake_makeerr( EAI_NONAME() );
+
+ undef $canonname unless $flag_canonname;
+ }
+ else {
+ $addrs[0] = $flag_passive ? Socket::inet_aton( "0.0.0.0" )
+ : Socket::inet_aton( "127.0.0.1" );
+ }
+
+ my @ports; # Actually ARRAYrefs of [ socktype, protocol, port ]
+ my $protname = "";
+ if( $protocol ) {
+ $protname = eval { getprotobynumber( $protocol ) };
+ }
+
+ if( $service ne "" and $service !~ m/^\d+$/ ) {
+ return fake_makeerr( EAI_NONAME() ) if( $flag_numericserv );
+ getservbyname( $service, $protname ) or return fake_makeerr( EAI_SERVICE() );
+ }
+
+ foreach my $this_socktype ( Socket::SOCK_STREAM(), Socket::SOCK_DGRAM(), Socket::SOCK_RAW() ) {
+ next if $socktype and $this_socktype != $socktype;
+
+ my $this_protname = "raw";
+ $this_socktype == Socket::SOCK_STREAM() and $this_protname = "tcp";
+ $this_socktype == Socket::SOCK_DGRAM() and $this_protname = "udp";
+
+ next if $protname and $this_protname ne $protname;
+
+ my $port;
+ if( $service ne "" ) {
+ if( $service =~ m/^\d+$/ ) {
+ $port = "$service";
+ }
+ else {
+ ( undef, undef, $port, $this_protname ) = getservbyname( $service, $this_protname );
+ next unless defined $port;
+ }
+ }
+ else {
+ $port = 0;
+ }
+
+ push @ports, [ $this_socktype, eval { scalar getprotobyname( $this_protname ) } || 0, $port ];
+ }
+
+ my @ret;
+ foreach my $addr ( @addrs ) {
+ foreach my $portspec ( @ports ) {
+ my ( $socktype, $protocol, $port ) = @$portspec;
+ push @ret, {
+ family => $family,
+ socktype => $socktype,
+ protocol => $protocol,
+ addr => Socket::pack_sockaddr_in( $port, $addr ),
+ canonname => undef,
+ };
+ }
+ }
+
+ # Only supply canonname for the first result
+ if( defined $canonname ) {
+ $ret[0]->{canonname} = $canonname;
+ }
+
+ return ( fake_makeerr( 0 ), @ret );
+}
+
+sub fake_getnameinfo
+{
+ my ( $addr, $flags, $xflags ) = @_;
+
+ my ( $port, $inetaddr );
+ eval { ( $port, $inetaddr ) = Socket::unpack_sockaddr_in( $addr ) }
+ or return fake_makeerr( EAI_FAMILY() );
+
+ my $family = Socket::AF_INET();
+
+ $flags ||= 0;
+
+ my $flag_numerichost = $flags & NI_NUMERICHOST(); $flags &= ~NI_NUMERICHOST();
+ my $flag_numericserv = $flags & NI_NUMERICSERV(); $flags &= ~NI_NUMERICSERV();
+ my $flag_nofqdn = $flags & NI_NOFQDN(); $flags &= ~NI_NOFQDN();
+ my $flag_namereqd = $flags & NI_NAMEREQD(); $flags &= ~NI_NAMEREQD();
+ my $flag_dgram = $flags & NI_DGRAM() ; $flags &= ~NI_DGRAM();
+
+ $flags & NI_IDN() and
+ croak "Socket::getnameinfo() does not support IDN";
+
+ $flags == 0 or return fake_makeerr( EAI_BADFLAGS() );
+
+ $xflags ||= 0;
+
+ my $node;
+ if( $xflags & NIx_NOHOST ) {
+ $node = undef;
+ }
+ elsif( $flag_numerichost ) {
+ $node = Socket::inet_ntoa( $inetaddr );
+ }
+ else {
+ $node = gethostbyaddr( $inetaddr, $family );
+ if( !defined $node ) {
+ return fake_makeerr( EAI_NONAME() ) if $flag_namereqd;
+ $node = Socket::inet_ntoa( $inetaddr );
+ }
+ elsif( $flag_nofqdn ) {
+ my ( $shortname ) = split m/\./, $node;
+ my ( $fqdn ) = gethostbyname $shortname;
+ $node = $shortname if defined $fqdn and $fqdn eq $node;
+ }
+ }
+
+ my $service;
+ if( $xflags & NIx_NOSERV ) {
+ $service = undef;
+ }
+ elsif( $flag_numericserv ) {
+ $service = "$port";
+ }
+ else {
+ my $protname = $flag_dgram ? "udp" : "";
+ $service = getservbyport( $port, $protname );
+ if( !defined $service ) {
+ $service = "$port";
+ }
+ }
+
+ return ( fake_makeerr( 0 ), $node, $service );
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Base.pm
new file mode 100755
index 0000000000..502ad1d4a4
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Base.pm
@@ -0,0 +1,133 @@
+package TAP::Base;
+
+use strict;
+use warnings;
+
+use base 'TAP::Object';
+
+=head1 NAME
+
+TAP::Base - Base class that provides common functionality to L<TAP::Parser>
+and L<TAP::Harness>
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+use constant GOT_TIME_HIRES => do {
+ eval 'use Time::HiRes qw(time);';
+ $@ ? 0 : 1;
+};
+
+=head1 SYNOPSIS
+
+ package TAP::Whatever;
+
+ use base 'TAP::Base';
+
+ # ... later ...
+
+ my $thing = TAP::Whatever->new();
+
+ $thing->callback( event => sub {
+ # do something interesting
+ } );
+
+=head1 DESCRIPTION
+
+C<TAP::Base> provides callback management.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=cut
+
+sub _initialize {
+ my ( $self, $arg_for, $ok_callback ) = @_;
+
+ my %ok_map = map { $_ => 1 } @$ok_callback;
+
+ $self->{ok_callbacks} = \%ok_map;
+
+ if ( my $cb = delete $arg_for->{callbacks} ) {
+ while ( my ( $event, $callback ) = each %$cb ) {
+ $self->callback( $event, $callback );
+ }
+ }
+
+ return $self;
+}
+
+=head3 C<callback>
+
+Install a callback for a named event.
+
+=cut
+
+sub callback {
+ my ( $self, $event, $callback ) = @_;
+
+ my %ok_map = %{ $self->{ok_callbacks} };
+
+ $self->_croak('No callbacks may be installed')
+ unless %ok_map;
+
+ $self->_croak( "Callback $event is not supported. Valid callbacks are "
+ . join( ', ', sort keys %ok_map ) )
+ unless exists $ok_map{$event};
+
+ push @{ $self->{code_for}{$event} }, $callback;
+
+ return;
+}
+
+sub _has_callbacks {
+ my $self = shift;
+ return keys %{ $self->{code_for} } != 0;
+}
+
+sub _callback_for {
+ my ( $self, $event ) = @_;
+ return $self->{code_for}{$event};
+}
+
+sub _make_callback {
+ my $self = shift;
+ my $event = shift;
+
+ my $cb = $self->_callback_for($event);
+ return unless defined $cb;
+ return map { $_->(@_) } @$cb;
+}
+
+=head3 C<get_time>
+
+Return the current time using Time::HiRes if available.
+
+=cut
+
+sub get_time { return time() }
+
+=head3 C<time_is_hires>
+
+Return true if the time returned by get_time is high resolution (i.e. if Time::HiRes is available).
+
+=cut
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Base.pm
new file mode 100755
index 0000000000..f6efeaed63
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Base.pm
@@ -0,0 +1,490 @@
+package TAP::Formatter::Base;
+
+use strict;
+use warnings;
+use base 'TAP::Base';
+use POSIX qw(strftime);
+
+my $MAX_ERRORS = 5;
+my %VALIDATION_FOR;
+
+BEGIN {
+ %VALIDATION_FOR = (
+ directives => sub { shift; shift },
+ verbosity => sub { shift; shift },
+ normalize => sub { shift; shift },
+ timer => sub { shift; shift },
+ failures => sub { shift; shift },
+ comments => sub { shift; shift },
+ errors => sub { shift; shift },
+ color => sub { shift; shift },
+ jobs => sub { shift; shift },
+ show_count => sub { shift; shift },
+ stdout => sub {
+ my ( $self, $ref ) = @_;
+
+ $self->_croak("option 'stdout' needs a filehandle")
+ unless $self->_is_filehandle($ref);
+
+ return $ref;
+ },
+ );
+
+ sub _is_filehandle {
+ my ( $self, $ref ) = @_;
+
+ return 0 if !defined $ref;
+
+ return 1 if ref $ref eq 'GLOB'; # lexical filehandle
+ return 1 if !ref $ref && ref \$ref eq 'GLOB'; # bare glob like *STDOUT
+
+ return 1 if eval { $ref->can('print') };
+
+ return 0;
+ }
+
+ my @getter_setters = qw(
+ _longest
+ _printed_summary_header
+ _colorizer
+ );
+
+ __PACKAGE__->mk_methods( @getter_setters, keys %VALIDATION_FOR );
+}
+
+=head1 NAME
+
+TAP::Formatter::Base - Base class for harness output delegates
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This provides console orientated output formatting for TAP::Harness.
+
+=head1 SYNOPSIS
+
+ use TAP::Formatter::Console;
+ my $harness = TAP::Formatter::Console->new( \%args );
+
+=cut
+
+sub _initialize {
+ my ( $self, $arg_for ) = @_;
+ $arg_for ||= {};
+
+ $self->SUPER::_initialize($arg_for);
+ my %arg_for = %$arg_for; # force a shallow copy
+
+ $self->verbosity(0);
+
+ for my $name ( keys %VALIDATION_FOR ) {
+ my $property = delete $arg_for{$name};
+ if ( defined $property ) {
+ my $validate = $VALIDATION_FOR{$name};
+ $self->$name( $self->$validate($property) );
+ }
+ }
+
+ if ( my @props = keys %arg_for ) {
+ $self->_croak(
+ "Unknown arguments to " . __PACKAGE__ . "::new (@props)" );
+ }
+
+ $self->stdout( \*STDOUT ) unless $self->stdout;
+
+ if ( $self->color ) {
+ require TAP::Formatter::Color;
+ $self->_colorizer( TAP::Formatter::Color->new );
+ }
+
+ return $self;
+}
+
+sub verbose { shift->verbosity >= 1 }
+sub quiet { shift->verbosity <= -1 }
+sub really_quiet { shift->verbosity <= -2 }
+sub silent { shift->verbosity <= -3 }
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my %args = (
+ verbose => 1,
+ )
+ my $harness = TAP::Formatter::Console->new( \%args );
+
+The constructor returns a new C<TAP::Formatter::Console> object. If
+a L<TAP::Harness> is created with no C<formatter> a
+C<TAP::Formatter::Console> is automatically created. If any of the
+following options were given to TAP::Harness->new they well be passed to
+this constructor which accepts an optional hashref whose allowed keys are:
+
+=over 4
+
+=item * C<verbosity>
+
+Set the verbosity level.
+
+=item * C<verbose>
+
+Printing individual test results to STDOUT.
+
+=item * C<timer>
+
+Append run time for each test to output. Uses L<Time::HiRes> if available.
+
+=item * C<failures>
+
+Show test failures (this is a no-op if C<verbose> is selected).
+
+=item * C<comments>
+
+Show test comments (this is a no-op if C<verbose> is selected).
+
+=item * C<quiet>
+
+Suppressing some test output (mostly failures while tests are running).
+
+=item * C<really_quiet>
+
+Suppressing everything but the tests summary.
+
+=item * C<silent>
+
+Suppressing all output.
+
+=item * C<errors>
+
+If parse errors are found in the TAP output, a note of this will be made
+in the summary report. To see all of the parse errors, set this argument to
+true:
+
+ errors => 1
+
+=item * C<directives>
+
+If set to a true value, only test results with directives will be displayed.
+This overrides other settings such as C<verbose>, C<failures>, or C<comments>.
+
+=item * C<stdout>
+
+A filehandle for catching standard output.
+
+=item * C<color>
+
+If defined specifies whether color output is desired. If C<color> is not
+defined it will default to color output if color support is available on
+the current platform and output is not being redirected.
+
+=item * C<jobs>
+
+The number of concurrent jobs this formatter will handle.
+
+=item * C<show_count>
+
+Boolean value. If false, disables the C<X/Y> test count which shows up while
+tests are running.
+
+=back
+
+Any keys for which the value is C<undef> will be ignored.
+
+=cut
+
+# new supplied by TAP::Base
+
+=head3 C<prepare>
+
+Called by Test::Harness before any test output is generated.
+
+This is an advisory and may not be called in the case where tests are
+being supplied to Test::Harness by an iterator.
+
+=cut
+
+sub prepare {
+ my ( $self, @tests ) = @_;
+
+ my $longest = 0;
+
+ for my $test (@tests) {
+ $longest = length $test if length $test > $longest;
+ }
+
+ $self->_longest($longest);
+}
+
+sub _format_now { strftime "[%H:%M:%S]", localtime }
+
+sub _format_name {
+ my ( $self, $test ) = @_;
+ my $name = $test;
+ my $periods = '.' x ( $self->_longest + 2 - length $test );
+ $periods = " $periods ";
+
+ if ( $self->timer ) {
+ my $stamp = $self->_format_now();
+ return "$stamp $name$periods";
+ }
+ else {
+ return "$name$periods";
+ }
+
+}
+
+=head3 C<open_test>
+
+Called to create a new test session. A test session looks like this:
+
+ my $session = $formatter->open_test( $test, $parser );
+ while ( defined( my $result = $parser->next ) ) {
+ $session->result($result);
+ exit 1 if $result->is_bailout;
+ }
+ $session->close_test;
+
+=cut
+
+sub open_test {
+ die "Unimplemented.";
+}
+
+sub _output_success {
+ my ( $self, $msg ) = @_;
+ $self->_output($msg);
+}
+
+=head3 C<summary>
+
+ $harness->summary( $aggregate );
+
+C<summary> prints the summary report after all tests are run. The first
+argument is an aggregate to summarise. An optional second argument may
+be set to a true value to indicate that the summary is being output as a
+result of an interrupted test run.
+
+=cut
+
+sub summary {
+ my ( $self, $aggregate, $interrupted ) = @_;
+
+ return if $self->silent;
+
+ my @t = $aggregate->descriptions;
+ my $tests = \@t;
+
+ my $runtime = $aggregate->elapsed_timestr;
+
+ my $total = $aggregate->total;
+ my $passed = $aggregate->passed;
+
+ if ( $self->timer ) {
+ $self->_output( $self->_format_now(), "\n" );
+ }
+
+ $self->_failure_output("Test run interrupted!\n")
+ if $interrupted;
+
+ # TODO: Check this condition still works when all subtests pass but
+ # the exit status is nonzero
+
+ if ( $aggregate->all_passed ) {
+ $self->_output_success("All tests successful.\n");
+ }
+
+ # ~TODO option where $aggregate->skipped generates reports
+ if ( $total != $passed or $aggregate->has_problems ) {
+ $self->_output("\nTest Summary Report");
+ $self->_output("\n-------------------\n");
+ for my $test (@$tests) {
+ $self->_printed_summary_header(0);
+ my ($parser) = $aggregate->parsers($test);
+ $self->_output_summary_failure(
+ 'failed',
+ [ ' Failed test: ', ' Failed tests: ' ],
+ $test, $parser
+ );
+ $self->_output_summary_failure(
+ 'todo_passed',
+ " TODO passed: ", $test, $parser
+ );
+
+ # ~TODO this cannot be the default
+ #$self->_output_summary_failure( 'skipped', " Tests skipped: " );
+
+ if ( my $exit = $parser->exit ) {
+ $self->_summary_test_header( $test, $parser );
+ $self->_failure_output(" Non-zero exit status: $exit\n");
+ }
+ elsif ( my $wait = $parser->wait ) {
+ $self->_summary_test_header( $test, $parser );
+ $self->_failure_output(" Non-zero wait status: $wait\n");
+ }
+
+ if ( my @errors = $parser->parse_errors ) {
+ my $explain;
+ if ( @errors > $MAX_ERRORS && !$self->errors ) {
+ $explain
+ = "Displayed the first $MAX_ERRORS of "
+ . scalar(@errors)
+ . " TAP syntax errors.\n"
+ . "Re-run prove with the -p option to see them all.\n";
+ splice @errors, $MAX_ERRORS;
+ }
+ $self->_summary_test_header( $test, $parser );
+ $self->_failure_output(
+ sprintf " Parse errors: %s\n",
+ shift @errors
+ );
+ for my $error (@errors) {
+ my $spaces = ' ' x 16;
+ $self->_failure_output("$spaces$error\n");
+ }
+ $self->_failure_output($explain) if $explain;
+ }
+ }
+ }
+ my $files = @$tests;
+ $self->_output("Files=$files, Tests=$total, $runtime\n");
+ my $status = $aggregate->get_status;
+ $self->_output("Result: $status\n");
+}
+
+sub _output_summary_failure {
+ my ( $self, $method, $name, $test, $parser ) = @_;
+
+ # ugly hack. Must rethink this :(
+ my $output = $method eq 'failed' ? '_failure_output' : '_output';
+
+ if ( my @r = $parser->$method() ) {
+ $self->_summary_test_header( $test, $parser );
+ my ( $singular, $plural )
+ = 'ARRAY' eq ref $name ? @$name : ( $name, $name );
+ $self->$output( @r == 1 ? $singular : $plural );
+ my @results = $self->_balanced_range( 40, @r );
+ $self->$output( sprintf "%s\n" => shift @results );
+ my $spaces = ' ' x 16;
+ while (@results) {
+ $self->$output( sprintf "$spaces%s\n" => shift @results );
+ }
+ }
+}
+
+sub _summary_test_header {
+ my ( $self, $test, $parser ) = @_;
+ return if $self->_printed_summary_header;
+ my $spaces = ' ' x ( $self->_longest - length $test );
+ $spaces = ' ' unless $spaces;
+ my $output = $self->_get_output_method($parser);
+ my $wait = $parser->wait;
+
+ if (defined $wait) {
+ my $signum = $wait & 0x7f;
+
+ my $description;
+
+ if ($signum) {
+ require Config;
+ my @names = split ' ', $Config::Config{'sig_name'};
+ $description = "Signal: $names[$signum]";
+
+ my $dumped = $wait & 0x80;
+ $description .= ', dumped core' if $dumped;
+ }
+ elsif ($wait != 0) {
+ $description = sprintf 'exited %d', ($wait >> 8);
+ }
+
+ $wait .= " ($description)" if $wait != 0;
+ }
+ else {
+ $wait = '(none)';
+ }
+
+ $self->$output(
+ sprintf "$test$spaces(Wstat: %s Tests: %d Failed: %d)\n",
+ $wait, $parser->tests_run, scalar $parser->failed
+ );
+ $self->_printed_summary_header(1);
+}
+
+sub _output {
+ my $self = shift;
+
+ print { $self->stdout } @_;
+}
+
+sub _failure_output {
+ my $self = shift;
+
+ $self->_output(@_);
+}
+
+sub _balanced_range {
+ my ( $self, $limit, @range ) = @_;
+ @range = $self->_range(@range);
+ my $line = "";
+ my @lines;
+ my $curr = 0;
+ while (@range) {
+ if ( $curr < $limit ) {
+ my $range = ( shift @range ) . ", ";
+ $line .= $range;
+ $curr += length $range;
+ }
+ elsif (@range) {
+ $line =~ s/, $//;
+ push @lines => $line;
+ $line = '';
+ $curr = 0;
+ }
+ }
+ if ($line) {
+ $line =~ s/, $//;
+ push @lines => $line;
+ }
+ return @lines;
+}
+
+sub _range {
+ my ( $self, @numbers ) = @_;
+
+ # shouldn't be needed, but subclasses might call this
+ @numbers = sort { $a <=> $b } @numbers;
+ my ( $min, @range );
+
+ for my $i ( 0 .. $#numbers ) {
+ my $num = $numbers[$i];
+ my $next = $numbers[ $i + 1 ];
+ if ( defined $next && $next == $num + 1 ) {
+ if ( !defined $min ) {
+ $min = $num;
+ }
+ }
+ elsif ( defined $min ) {
+ push @range => "$min-$num";
+ undef $min;
+ }
+ else {
+ push @range => $num;
+ }
+ }
+ return @range;
+}
+
+sub _get_output_method {
+ my ( $self, $parser ) = @_;
+ return $parser->has_problems ? '_failure_output' : '_output';
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Color.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Color.pm
new file mode 100755
index 0000000000..873ff9680a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Color.pm
@@ -0,0 +1,116 @@
+package TAP::Formatter::Color;
+
+use strict;
+use warnings;
+
+use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
+
+use base 'TAP::Object';
+
+my $NO_COLOR;
+
+BEGIN {
+ $NO_COLOR = 0;
+
+ eval 'require Term::ANSIColor';
+ if ($@) {
+ $NO_COLOR = $@;
+ };
+ if (IS_WIN32) {
+ eval 'use Win32::Console::ANSI';
+ if ($@) {
+ $NO_COLOR = $@;
+ }
+ };
+
+ if ($NO_COLOR) {
+ *set_color = sub { };
+ } else {
+ *set_color = sub {
+ my ( $self, $output, $color ) = @_;
+ $output->( Term::ANSIColor::color($color) );
+ };
+ }
+}
+
+=head1 NAME
+
+TAP::Formatter::Color - Run Perl test scripts with color
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+Note that this harness is I<experimental>. You may not like the colors I've
+chosen and I haven't yet provided an easy way to override them.
+
+This test harness is the same as L<TAP::Harness>, but test results are output
+in color. Passing tests are printed in green. Failing tests are in red.
+Skipped tests are blue on a white background and TODO tests are printed in
+white.
+
+If L<Term::ANSIColor> cannot be found (and L<Win32::Console::ANSI> if running
+under Windows) tests will be run without color.
+
+=head1 SYNOPSIS
+
+ use TAP::Formatter::Color;
+ my $harness = TAP::Formatter::Color->new( \%args );
+ $harness->runtests(@tests);
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+The constructor returns a new C<TAP::Formatter::Color> object. If
+L<Term::ANSIColor> is not installed, returns undef.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my $self = shift;
+
+ if ($NO_COLOR) {
+
+ # shorten that message a bit
+ ( my $error = $NO_COLOR ) =~ s/ in \@INC .*//s;
+ warn "Note: Cannot run tests in color: $error\n";
+ return; # abort object construction
+ }
+
+ return $self;
+}
+
+##############################################################################
+
+=head3 C<can_color>
+
+ Test::Formatter::Color->can_color()
+
+Returns a boolean indicating whether or not this module can actually
+generate colored output. This will be false if it could not load the
+modules needed for the current platform.
+
+=cut
+
+sub can_color {
+ return !$NO_COLOR;
+}
+
+=head3 C<set_color>
+
+Set the output color.
+
+=cut
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console.pm
new file mode 100755
index 0000000000..dc7e0ddc64
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console.pm
@@ -0,0 +1,100 @@
+package TAP::Formatter::Console;
+
+use strict;
+use warnings;
+use base 'TAP::Formatter::Base';
+use POSIX qw(strftime);
+
+=head1 NAME
+
+TAP::Formatter::Console - Harness output delegate for default console output
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This provides console orientated output formatting for TAP::Harness.
+
+=head1 SYNOPSIS
+
+ use TAP::Formatter::Console;
+ my $harness = TAP::Formatter::Console->new( \%args );
+
+=head2 C<< open_test >>
+
+See L<TAP::Formatter::Base>
+
+=cut
+
+sub open_test {
+ my ( $self, $test, $parser ) = @_;
+
+ my $class
+ = $self->jobs > 1
+ ? 'TAP::Formatter::Console::ParallelSession'
+ : 'TAP::Formatter::Console::Session';
+
+ eval "require $class";
+ $self->_croak($@) if $@;
+
+ my $session = $class->new(
+ { name => $test,
+ formatter => $self,
+ parser => $parser,
+ show_count => $self->show_count,
+ }
+ );
+
+ $session->header;
+
+ return $session;
+}
+
+# Use _colorizer delegate to set output color. NOP if we have no delegate
+sub _set_colors {
+ my ( $self, @colors ) = @_;
+ if ( my $colorizer = $self->_colorizer ) {
+ my $output_func = $self->{_output_func} ||= sub {
+ $self->_output(@_);
+ };
+ $colorizer->set_color( $output_func, $_ ) for @colors;
+ }
+}
+
+sub _failure_color {
+ my ($self) = @_;
+
+ return $ENV{'HARNESS_SUMMARY_COLOR_FAIL'} || 'red';
+}
+
+sub _success_color {
+ my ($self) = @_;
+
+ return $ENV{'HARNESS_SUMMARY_COLOR_SUCCESS'} || 'green';
+}
+
+sub _output_success {
+ my ( $self, $msg ) = @_;
+ $self->_set_colors( $self->_success_color() );
+ $self->_output($msg);
+ $self->_set_colors('reset');
+}
+
+sub _failure_output {
+ my $self = shift;
+ $self->_set_colors( $self->_failure_color() );
+ my $out = join '', @_;
+ my $has_newline = chomp $out;
+ $self->_output($out);
+ $self->_set_colors('reset');
+ $self->_output($/)
+ if $has_newline;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/ParallelSession.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/ParallelSession.pm
new file mode 100755
index 0000000000..1ec9e8be9a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/ParallelSession.pm
@@ -0,0 +1,201 @@
+package TAP::Formatter::Console::ParallelSession;
+
+use strict;
+use warnings;
+use File::Spec;
+use File::Path;
+use Carp;
+
+use base 'TAP::Formatter::Console::Session';
+
+use constant WIDTH => 72; # Because Eric says
+
+my %shared;
+
+sub _initialize {
+ my ( $self, $arg_for ) = @_;
+
+ $self->SUPER::_initialize($arg_for);
+ my $formatter = $self->formatter;
+
+ # Horrid bodge. This creates our shared context per harness. Maybe
+ # TAP::Harness should give us this?
+ my $context = $shared{$formatter} ||= $self->_create_shared_context;
+ push @{ $context->{active} }, $self;
+
+ return $self;
+}
+
+sub _create_shared_context {
+ my $self = shift;
+ return {
+ active => [],
+ tests => 0,
+ fails => 0,
+ };
+}
+
+=head1 NAME
+
+TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel console output
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This provides console orientated output formatting for L<TAP::Harness>
+when run with multiple L<TAP::Harness/jobs>.
+
+=head1 SYNOPSIS
+
+=cut
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<header>
+
+Output test preamble
+
+=cut
+
+sub header {
+}
+
+sub _clear_ruler {
+ my $self = shift;
+ $self->formatter->_output( "\r" . ( ' ' x WIDTH ) . "\r" );
+}
+
+my $now = 0;
+my $start;
+
+my $trailer = '... )===';
+my $chop_length = WIDTH - length $trailer;
+
+sub _output_ruler {
+ my ( $self, $refresh ) = @_;
+ my $new_now = time;
+ return if $new_now == $now and !$refresh;
+ $now = $new_now;
+ $start ||= $now;
+ my $formatter = $self->formatter;
+ return if $formatter->really_quiet;
+
+ my $context = $shared{$formatter};
+
+ my $ruler = sprintf '===( %7d;%d ', $context->{tests}, $now - $start;
+
+ for my $active ( @{ $context->{active} } ) {
+ my $parser = $active->parser;
+ my $tests = $parser->tests_run;
+ my $planned = $parser->tests_planned || '?';
+
+ $ruler .= sprintf '%' . length($planned) . "d/$planned ", $tests;
+ }
+ chop $ruler; # Remove a trailing space
+ $ruler .= ')===';
+
+ if ( length $ruler > WIDTH ) {
+ $ruler =~ s/(.{$chop_length}).*/$1$trailer/o;
+ }
+ else {
+ $ruler .= '=' x ( WIDTH - length($ruler) );
+ }
+ $formatter->_output("\r$ruler");
+}
+
+=head3 C<result>
+
+ Called by the harness for each line of TAP it receives .
+
+=cut
+
+sub result {
+ my ( $self, $result ) = @_;
+ my $formatter = $self->formatter;
+
+ # my $really_quiet = $formatter->really_quiet;
+ # my $show_count = $self->_should_show_count;
+
+ if ( $result->is_test ) {
+ my $context = $shared{$formatter};
+ $context->{tests}++;
+
+ my $active = $context->{active};
+ if ( @$active == 1 ) {
+
+ # There is only one test, so use the serial output format.
+ return $self->SUPER::result($result);
+ }
+
+ $self->_output_ruler( $self->parser->tests_run == 1 );
+ }
+ elsif ( $result->is_bailout ) {
+ $formatter->_failure_output(
+ "Bailout called. Further testing stopped: "
+ . $result->explanation
+ . "\n" );
+ }
+}
+
+=head3 C<clear_for_close>
+
+=cut
+
+sub clear_for_close {
+ my $self = shift;
+ my $formatter = $self->formatter;
+ return if $formatter->really_quiet;
+ my $context = $shared{$formatter};
+ if ( @{ $context->{active} } == 1 ) {
+ $self->SUPER::clear_for_close;
+ }
+ else {
+ $self->_clear_ruler;
+ }
+}
+
+=head3 C<close_test>
+
+=cut
+
+sub close_test {
+ my $self = shift;
+ my $name = $self->name;
+ my $parser = $self->parser;
+ my $formatter = $self->formatter;
+ my $context = $shared{$formatter};
+
+ $self->SUPER::close_test;
+
+ my $active = $context->{active};
+
+ my @pos = grep { $active->[$_]->name eq $name } 0 .. $#$active;
+
+ die "Can't find myself" unless @pos;
+ splice @$active, $pos[0], 1;
+
+ if ( @$active > 1 ) {
+ $self->_output_ruler(1);
+ }
+ elsif ( @$active == 1 ) {
+
+ # Print out "test/name.t ...."
+ $active->[0]->SUPER::header;
+ }
+ else {
+
+ # $self->formatter->_output("\n");
+ delete $shared{$formatter};
+ }
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/Session.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/Session.pm
new file mode 100755
index 0000000000..53ad867387
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Console/Session.pm
@@ -0,0 +1,205 @@
+package TAP::Formatter::Console::Session;
+
+use strict;
+use warnings;
+
+use base 'TAP::Formatter::Session';
+
+my @ACCESSOR;
+
+BEGIN {
+ my @CLOSURE_BINDING = qw( header result clear_for_close close_test );
+
+ for my $method (@CLOSURE_BINDING) {
+ no strict 'refs';
+ *$method = sub {
+ my $self = shift;
+ return ( $self->{_closures} ||= $self->_closures )->{$method}
+ ->(@_);
+ };
+ }
+}
+
+=head1 NAME
+
+TAP::Formatter::Console::Session - Harness output delegate for default console output
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This provides console orientated output formatting for TAP::Harness.
+
+=cut
+
+sub _get_output_result {
+ my $self = shift;
+
+ my @color_map = (
+ { test => sub { $_->is_test && !$_->is_ok },
+ colors => ['red'],
+ },
+ { test => sub { $_->is_test && $_->has_skip },
+ colors => [
+ 'white',
+ 'on_blue'
+ ],
+ },
+ { test => sub { $_->is_test && $_->has_todo },
+ colors => ['yellow'],
+ },
+ );
+
+ my $formatter = $self->formatter;
+ my $parser = $self->parser;
+
+ return $formatter->_colorizer
+ ? sub {
+ my $result = shift;
+ for my $col (@color_map) {
+ local $_ = $result;
+ if ( $col->{test}->() ) {
+ $formatter->_set_colors( @{ $col->{colors} } );
+ last;
+ }
+ }
+ $formatter->_output( $self->_format_for_output($result) );
+ $formatter->_set_colors('reset');
+ }
+ : sub {
+ $formatter->_output( $self->_format_for_output(shift) );
+ };
+}
+
+sub _closures {
+ my $self = shift;
+
+ my $parser = $self->parser;
+ my $formatter = $self->formatter;
+ my $pretty = $formatter->_format_name( $self->name );
+ my $show_count = $self->show_count;
+
+ my $really_quiet = $formatter->really_quiet;
+ my $quiet = $formatter->quiet;
+ my $verbose = $formatter->verbose;
+ my $directives = $formatter->directives;
+ my $failures = $formatter->failures;
+ my $comments = $formatter->comments;
+
+ my $output_result = $self->_get_output_result;
+
+ my $output = '_output';
+ my $plan = '';
+ my $newline_printed = 0;
+
+ my $last_status_printed = 0;
+
+ return {
+ header => sub {
+ $formatter->_output($pretty)
+ unless $really_quiet;
+ },
+
+ result => sub {
+ my $result = shift;
+
+ if ( $result->is_bailout ) {
+ $formatter->_failure_output(
+ "Bailout called. Further testing stopped: "
+ . $result->explanation
+ . "\n" );
+ }
+
+ return if $really_quiet;
+
+ my $is_test = $result->is_test;
+
+ # These are used in close_test - but only if $really_quiet
+ # is false - so it's safe to only set them here unless that
+ # relationship changes.
+
+ if ( !$plan ) {
+ my $planned = $parser->tests_planned || '?';
+ $plan = "/$planned ";
+ }
+ $output = $formatter->_get_output_method($parser);
+
+ if ( $show_count and $is_test ) {
+ my $number = $result->number;
+ my $now = CORE::time;
+
+ # Print status roughly once per second.
+ # We will always get the first number as a side effect of
+ # $last_status_printed starting with the value 0, which $now
+ # will never be. (Unless someone sets their clock to 1970)
+ if ( $last_status_printed != $now ) {
+ $formatter->$output("\r$pretty$number$plan");
+ $last_status_printed = $now;
+ }
+ }
+
+ if (!$quiet
+ && ( $verbose
+ || ( $is_test && $failures && !$result->is_ok )
+ || ( $comments && $result->is_comment )
+ || ( $directives && $result->has_directive ) )
+ )
+ {
+ unless ($newline_printed) {
+ $formatter->_output("\n");
+ $newline_printed = 1;
+ }
+ $output_result->($result);
+ $formatter->_output("\n");
+ }
+ },
+
+ clear_for_close => sub {
+ my $spaces
+ = ' ' x length( '.' . $pretty . $plan . $parser->tests_run );
+ $formatter->$output("\r$spaces");
+ },
+
+ close_test => sub {
+ if ( $show_count && !$really_quiet ) {
+ $self->clear_for_close;
+ $formatter->$output("\r$pretty");
+ }
+
+ # Avoid circular references
+ $self->parser(undef);
+ $self->{_closures} = {};
+
+ return if $really_quiet;
+
+ if ( my $skip_all = $parser->skip_all ) {
+ $formatter->_output("skipped: $skip_all\n");
+ }
+ elsif ( $parser->has_problems ) {
+ $self->_output_test_failure($parser);
+ }
+ else {
+ my $time_report = $self->time_report($formatter, $parser);
+ $formatter->_output_success( $self->_make_ok_line($time_report) );
+ }
+ },
+ };
+}
+
+=head2 C<< clear_for_close >>
+
+=head2 C<< close_test >>
+
+=head2 C<< header >>
+
+=head2 C<< result >>
+
+=cut
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File.pm
new file mode 100755
index 0000000000..396b4074b3
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File.pm
@@ -0,0 +1,56 @@
+package TAP::Formatter::File;
+
+use strict;
+use warnings;
+use TAP::Formatter::File::Session;
+use POSIX qw(strftime);
+
+use base 'TAP::Formatter::Base';
+
+=head1 NAME
+
+TAP::Formatter::File - Harness output delegate for file output
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This provides file orientated output formatting for TAP::Harness.
+
+=head1 SYNOPSIS
+
+ use TAP::Formatter::File;
+ my $harness = TAP::Formatter::File->new( \%args );
+
+=head2 C<< open_test >>
+
+See L<TAP::Formatter::Base>
+
+=cut
+
+sub open_test {
+ my ( $self, $test, $parser ) = @_;
+
+ my $session = TAP::Formatter::File::Session->new(
+ { name => $test,
+ formatter => $self,
+ parser => $parser,
+ }
+ );
+
+ $session->header;
+
+ return $session;
+}
+
+sub _should_show_count {
+ return 0;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File/Session.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File/Session.pm
new file mode 100755
index 0000000000..210c9a47d3
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/File/Session.pm
@@ -0,0 +1,95 @@
+package TAP::Formatter::File::Session;
+
+use strict;
+use warnings;
+use base 'TAP::Formatter::Session';
+
+=head1 NAME
+
+TAP::Formatter::File::Session - Harness output delegate for file output
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This provides file orientated output formatting for L<TAP::Harness>.
+It is particularly important when running with parallel tests, as it
+ensures that test results are not interleaved, even when run
+verbosely.
+
+=cut
+
+=head1 METHODS
+
+=head2 result
+
+Stores results for later output, all together.
+
+=cut
+
+sub result {
+ my $self = shift;
+ my $result = shift;
+
+ my $parser = $self->parser;
+ my $formatter = $self->formatter;
+
+ if ( $result->is_bailout ) {
+ $formatter->_failure_output(
+ "Bailout called. Further testing stopped: "
+ . $result->explanation
+ . "\n" );
+ return;
+ }
+
+ if (!$formatter->quiet
+ && ( $formatter->verbose
+ || ( $result->is_test && $formatter->failures && !$result->is_ok )
+ || ( $formatter->comments && $result->is_comment )
+ || ( $result->has_directive && $formatter->directives ) )
+ )
+ {
+ $self->{results} .= $self->_format_for_output($result) . "\n";
+ }
+}
+
+=head2 close_test
+
+When the test file finishes, outputs the summary, together.
+
+=cut
+
+sub close_test {
+ my $self = shift;
+
+ # Avoid circular references
+ $self->parser(undef);
+
+ my $parser = $self->parser;
+ my $formatter = $self->formatter;
+ my $pretty = $formatter->_format_name( $self->name );
+
+ return if $formatter->really_quiet;
+ if ( my $skip_all = $parser->skip_all ) {
+ $formatter->_output( $pretty . "skipped: $skip_all\n" );
+ }
+ elsif ( $parser->has_problems ) {
+ $formatter->_output(
+ $pretty . ( $self->{results} ? "\n" . $self->{results} : "\n" ) );
+ $self->_output_test_failure($parser);
+ }
+ else {
+ my $time_report = $self->time_report( $formatter, $parser );
+ $formatter->_output(
+ $pretty . ( $self->{results} ? "\n" . $self->{results} : "" ) );
+ $formatter->_output_success( $self->_make_ok_line($time_report) );
+ }
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Session.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Session.pm
new file mode 100755
index 0000000000..5fb633b443
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Formatter/Session.pm
@@ -0,0 +1,220 @@
+package TAP::Formatter::Session;
+
+use strict;
+use warnings;
+
+use base 'TAP::Base';
+
+my @ACCESSOR;
+
+BEGIN {
+
+ @ACCESSOR = qw( name formatter parser show_count );
+
+ for my $method (@ACCESSOR) {
+ no strict 'refs';
+ *$method = sub { shift->{$method} };
+ }
+}
+
+=head1 NAME
+
+TAP::Formatter::Session - Abstract base class for harness output delegate
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my %args = (
+ formatter => $self,
+ )
+ my $harness = TAP::Formatter::Console::Session->new( \%args );
+
+The constructor returns a new C<TAP::Formatter::Console::Session> object.
+
+=over 4
+
+=item * C<formatter>
+
+=item * C<parser>
+
+=item * C<name>
+
+=item * C<show_count>
+
+=back
+
+=cut
+
+sub _initialize {
+ my ( $self, $arg_for ) = @_;
+ $arg_for ||= {};
+
+ $self->SUPER::_initialize($arg_for);
+ my %arg_for = %$arg_for; # force a shallow copy
+
+ for my $name (@ACCESSOR) {
+ $self->{$name} = delete $arg_for{$name};
+ }
+
+ if ( !defined $self->show_count ) {
+ $self->{show_count} = 1; # defaults to true
+ }
+ if ( $self->show_count ) { # but may be a damned lie!
+ $self->{show_count} = $self->_should_show_count;
+ }
+
+ if ( my @props = sort keys %arg_for ) {
+ $self->_croak(
+ "Unknown arguments to " . __PACKAGE__ . "::new (@props)" );
+ }
+
+ return $self;
+}
+
+=head3 C<header>
+
+Output test preamble
+
+=head3 C<result>
+
+Called by the harness for each line of TAP it receives.
+
+=head3 C<close_test>
+
+Called to close a test session.
+
+=head3 C<clear_for_close>
+
+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 { }
+
+sub result { }
+
+sub close_test { }
+
+sub clear_for_close { }
+
+sub _should_show_count {
+ my $self = shift;
+ return
+ !$self->formatter->verbose
+ && -t $self->formatter->stdout
+ && !$ENV{HARNESS_NOTTY};
+}
+
+sub _format_for_output {
+ my ( $self, $result ) = @_;
+ return $self->formatter->normalize ? $result->as_string : $result->raw;
+}
+
+sub _output_test_failure {
+ my ( $self, $parser ) = @_;
+ my $formatter = $self->formatter;
+ return if $formatter->really_quiet;
+
+ my $tests_run = $parser->tests_run;
+ my $tests_planned = $parser->tests_planned;
+
+ my $total
+ = defined $tests_planned
+ ? $tests_planned
+ : $tests_run;
+
+ my $passed = $parser->passed;
+
+ # The total number of fails includes any tests that were planned but
+ # didn't run
+ my $failed = $parser->failed + $total - $tests_run;
+ my $exit = $parser->exit;
+
+ if ( my $exit = $parser->exit ) {
+ my $wstat = $parser->wait;
+ my $status = sprintf( "%d (wstat %d, 0x%x)", $exit, $wstat, $wstat );
+ $formatter->_failure_output("Dubious, test returned $status\n");
+ }
+
+ if ( $failed == 0 ) {
+ $formatter->_failure_output(
+ $total
+ ? "All $total subtests passed "
+ : 'No subtests run '
+ );
+ }
+ else {
+ $formatter->_failure_output("Failed $failed/$total subtests ");
+ if ( !$total ) {
+ $formatter->_failure_output("\nNo tests run!");
+ }
+ }
+
+ if ( my $skipped = $parser->skipped ) {
+ $passed -= $skipped;
+ my $test = 'subtest' . ( $skipped != 1 ? 's' : '' );
+ $formatter->_output(
+ "\n\t(less $skipped skipped $test: $passed okay)");
+ }
+
+ if ( my $failed = $parser->todo_passed ) {
+ my $test = $failed > 1 ? 'tests' : 'test';
+ $formatter->_output(
+ "\n\t($failed TODO $test unexpectedly succeeded)");
+ }
+
+ $formatter->_output("\n");
+}
+
+sub _make_ok_line {
+ my ( $self, $suffix ) = @_;
+ 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness.pm
new file mode 100755
index 0000000000..4fbb045d11
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness.pm
@@ -0,0 +1,1072 @@
+package TAP::Harness;
+
+use strict;
+use warnings;
+use Carp;
+
+use File::Spec;
+use File::Path;
+use IO::Handle;
+
+use base 'TAP::Base';
+
+=head1 NAME
+
+TAP::Harness - Run test scripts with statistics
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+$ENV{HARNESS_ACTIVE} = 1;
+$ENV{HARNESS_VERSION} = $VERSION;
+
+END {
+
+ # For VMS.
+ delete $ENV{HARNESS_ACTIVE};
+ delete $ENV{HARNESS_VERSION};
+}
+
+=head1 DESCRIPTION
+
+This is a simple test harness which allows tests to be run and results
+automatically aggregated and output to STDOUT.
+
+=head1 SYNOPSIS
+
+ use TAP::Harness;
+ my $harness = TAP::Harness->new( \%args );
+ $harness->runtests(@tests);
+
+=cut
+
+my %VALIDATION_FOR;
+my @FORMATTER_ARGS;
+
+sub _error {
+ my $self = shift;
+ return $self->{error} unless @_;
+ $self->{error} = shift;
+}
+
+BEGIN {
+
+ @FORMATTER_ARGS = qw(
+ directives verbosity timer failures comments errors stdout color
+ show_count normalize
+ );
+
+ %VALIDATION_FOR = (
+ lib => sub {
+ my ( $self, $libs ) = @_;
+ $libs = [$libs] unless 'ARRAY' eq ref $libs;
+
+ return [ map {"-I$_"} @$libs ];
+ },
+ switches => sub { shift; shift },
+ exec => sub { shift; shift },
+ merge => sub { shift; shift },
+ aggregator_class => sub { shift; shift },
+ formatter_class => sub { shift; shift },
+ multiplexer_class => sub { shift; shift },
+ parser_class => sub { shift; shift },
+ scheduler_class => sub { shift; shift },
+ formatter => sub { shift; shift },
+ jobs => sub { shift; shift },
+ 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 },
+ );
+
+ for my $method ( sort keys %VALIDATION_FOR ) {
+ no strict 'refs';
+ if ( $method eq 'lib' || $method eq 'switches' ) {
+ *{$method} = sub {
+ my $self = shift;
+ unless (@_) {
+ $self->{$method} ||= [];
+ return wantarray
+ ? @{ $self->{$method} }
+ : $self->{$method};
+ }
+ $self->_croak("Too many arguments to method '$method'")
+ if @_ > 1;
+ my $args = shift;
+ $args = [$args] unless ref $args;
+ $self->{$method} = $args;
+ return $self;
+ };
+ }
+ else {
+ *{$method} = sub {
+ my $self = shift;
+ return $self->{$method} unless @_;
+ $self->{$method} = shift;
+ };
+ }
+ }
+
+ for my $method (@FORMATTER_ARGS) {
+ no strict 'refs';
+ *{$method} = sub {
+ my $self = shift;
+ return $self->formatter->$method(@_);
+ };
+ }
+}
+
+##############################################################################
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my %args = (
+ verbosity => 1,
+ lib => [ 'lib', 'blib/lib', 'blib/arch' ],
+ )
+ my $harness = TAP::Harness->new( \%args );
+
+The constructor returns a new C<TAP::Harness> object. It accepts an
+optional hashref whose allowed keys are:
+
+=over 4
+
+=item * C<verbosity>
+
+Set the verbosity level:
+
+ 1 verbose Print individual test results to STDOUT.
+ 0 normal
+ -1 quiet Suppress some test output (mostly failures
+ while tests are running).
+ -2 really quiet Suppress everything but the tests summary.
+ -3 silent Suppress everything.
+
+=item * C<timer>
+
+Append run time for each test to output. Uses L<Time::HiRes> if
+available.
+
+=item * C<failures>
+
+Show test failures (this is a no-op if C<verbose> is selected).
+
+=item * C<comments>
+
+Show test comments (this is a no-op if C<verbose> is selected).
+
+=item * C<show_count>
+
+Update the running test count during testing.
+
+=item * C<normalize>
+
+Set to a true value to normalize the TAP that is emitted in verbose modes.
+
+=item * C<lib>
+
+Accepts a scalar value or array ref of scalar values indicating which
+paths to allowed libraries should be included if Perl tests are
+executed. Naturally, this only makes sense in the context of tests
+written in Perl.
+
+=item * C<switches>
+
+Accepts a scalar value or array ref of scalar values indicating which
+switches should be included if Perl tests are executed. Naturally, this
+only makes sense in the context of tests written in Perl.
+
+=item * C<test_args>
+
+A reference to an C<@INC> style array of arguments to be passed to each
+test program.
+
+ test_args => ['foo', 'bar'],
+
+if you want to pass different arguments to each test then you should
+pass a hash of arrays, keyed by the alias for each test:
+
+ test_args => {
+ my_test => ['foo', 'bar'],
+ other_test => ['baz'],
+ }
+
+=item * C<color>
+
+Attempt to produce color output.
+
+=item * C<exec>
+
+Typically, Perl tests are run through this. However, anything which
+spits out TAP is fine. You can use this argument to specify the name of
+the program (and optional switches) to run your tests with:
+
+ exec => ['/usr/bin/ruby', '-w']
+
+You can also pass a subroutine reference in order to determine and
+return the proper program to run based on a given test script. The
+subroutine reference should expect the TAP::Harness object itself as the
+first argument, and the file name as the second argument. It should
+return an array reference containing the command to be run and including
+the test file name. It can also simply return C<undef>, in which case
+TAP::Harness will fall back on executing the test script in Perl:
+
+ exec => sub {
+ my ( $harness, $test_file ) = @_;
+
+ # Let Perl tests run.
+ return undef if $test_file =~ /[.]t$/;
+ return [ qw( /usr/bin/ruby -w ), $test_file ]
+ if $test_file =~ /[.]rb$/;
+ }
+
+If the subroutine returns a scalar with a newline or a filehandle, it
+will be interpreted as raw TAP or as a TAP stream, respectively.
+
+=item * C<merge>
+
+If C<merge> is true the harness will create parsers that merge STDOUT
+and STDERR together for any processes they start.
+
+=item * C<sources>
+
+I<NEW to 3.18>.
+
+If set, C<sources> must be a hashref containing the names of the
+L<TAP::Parser::SourceHandler>s to load and/or configure. The values are a
+hash of configuration that will be accessible to the source handlers via
+L<TAP::Parser::Source/config_for>.
+
+For example:
+
+ sources => {
+ Perl => { exec => '/path/to/custom/perl' },
+ File => { extensions => [ '.tap', '.txt' ] },
+ MyCustom => { some => 'config' },
+ }
+
+The C<sources> parameter affects how C<source>, C<tap> and C<exec> parameters
+are handled.
+
+For more details, see the C<sources> parameter in L<TAP::Parser/new>,
+L<TAP::Parser::Source>, and L<TAP::Parser::IteratorFactory>.
+
+=item * C<aggregator_class>
+
+The name of the class to use to aggregate test results. The default is
+L<TAP::Parser::Aggregator>.
+
+=item * C<version>
+
+I<NEW to 3.22>.
+
+Assume this TAP version for L<TAP::Parser> instead of default TAP
+version 12.
+
+=item * C<formatter_class>
+
+The name of the class to use to format output. The default is
+L<TAP::Formatter::Console>, or L<TAP::Formatter::File> if the output
+isn't a TTY.
+
+=item * C<multiplexer_class>
+
+The name of the class to use to multiplex tests during parallel testing.
+The default is L<TAP::Parser::Multiplexer>.
+
+=item * C<parser_class>
+
+The name of the class to use to parse TAP. The default is
+L<TAP::Parser>.
+
+=item * C<scheduler_class>
+
+The name of the class to use to schedule test execution. The default is
+L<TAP::Parser::Scheduler>.
+
+=item * C<formatter>
+
+If set C<formatter> must be an object that is capable of formatting the
+TAP output. See L<TAP::Formatter::Console> for an example.
+
+=item * C<errors>
+
+If parse errors are found in the TAP output, a note of this will be
+made in the summary report. To see all of the parse errors, set this
+argument to true:
+
+ errors => 1
+
+=item * C<directives>
+
+If set to a true value, only test results with directives will be
+displayed. This overrides other settings such as C<verbose> or
+C<failures>.
+
+=item * C<ignore_exit>
+
+If set to a true value instruct C<TAP::Parser> to ignore exit and wait
+status from test scripts.
+
+=item * C<jobs>
+
+The maximum number of parallel tests to run at any time. Which tests
+can be run in parallel is controlled by C<rules>. The default is to
+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 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">.
+
+ # Run all tests in sequence, except those starting with "p"
+ $harness->rules({
+ par => 't/p*.t'
+ });
+
+ # Equivalent YAML file
+ ---
+ par: t/p*.t
+
+ # Run all tests in parallel, except those starting with "p"
+ $harness->rules({
+ seq => [
+ { seq => 't/p*.t' },
+ { par => '**' },
+ ],
+ });
+
+ # 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({
+ seq => [
+ { seq => 't/startup/*.t' },
+ { par => ['t/a/*.t','t/b/*.t','t/c/*.t'], }
+ { seq => 't/shutdown/*.t' },
+ ],
+
+ });
+
+ # 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.
+
+=item * C<trap>
+
+Attempt to print summary information if run is interrupted by
+SIGINT (Ctrl-C).
+
+=back
+
+Any keys for which the value is C<undef> will be ignored.
+
+=cut
+
+# new supplied by TAP::Base
+
+{
+ my @legal_callback = qw(
+ parser_args
+ made_parser
+ before_runtests
+ after_runtests
+ after_test
+ );
+
+ my %default_class = (
+ aggregator_class => 'TAP::Parser::Aggregator',
+ formatter_class => 'TAP::Formatter::Console',
+ multiplexer_class => 'TAP::Parser::Multiplexer',
+ parser_class => 'TAP::Parser',
+ scheduler_class => 'TAP::Parser::Scheduler',
+ );
+
+ sub _initialize {
+ my ( $self, $arg_for ) = @_;
+ $arg_for ||= {};
+
+ $self->SUPER::_initialize( $arg_for, \@legal_callback );
+ my %arg_for = %$arg_for; # force a shallow copy
+
+ for my $name ( sort keys %VALIDATION_FOR ) {
+ my $property = delete $arg_for{$name};
+ if ( defined $property ) {
+ my $validate = $VALIDATION_FOR{$name};
+
+ my $value = $self->$validate($property);
+ if ( $self->_error ) {
+ $self->_croak;
+ }
+ $self->$name($value);
+ }
+ }
+
+ $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};
+
+ while ( my ( $attr, $class ) = each %default_class ) {
+ $self->$attr( $self->$attr() || $class );
+ }
+
+ unless ( $self->formatter ) {
+
+ # This is a little bodge to preserve legacy behaviour. It's
+ # pretty horrible that we know which args are destined for
+ # the formatter.
+ my %formatter_args = ( jobs => $self->jobs );
+ for my $name (@FORMATTER_ARGS) {
+ if ( defined( my $property = delete $arg_for{$name} ) ) {
+ $formatter_args{$name} = $property;
+ }
+ }
+
+ $self->formatter(
+ $self->_construct( $self->formatter_class, \%formatter_args )
+ );
+ }
+
+ if ( my @props = sort keys %arg_for ) {
+ $self->_croak("Unknown arguments to TAP::Harness::new (@props)");
+ }
+
+ 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;
+ }
+}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<runtests>
+
+ $harness->runtests(@tests);
+
+Accepts an array of C<@tests> to be run. This should generally be the
+names of test files, but this is not required. Each element in C<@tests>
+will be passed to C<TAP::Parser::new()> as a C<source>. See
+L<TAP::Parser> for more information.
+
+It is possible to provide aliases that will be displayed in place of the
+test name by supplying the test as a reference to an array containing
+C<< [ $test, $alias ] >>:
+
+ $harness->runtests( [ 't/foo.t', 'Foo Once' ],
+ [ 't/foo.t', 'Foo Twice' ] );
+
+Normally it is an error to attempt to run the same test twice. Aliases
+allow you to overcome this limitation by giving each run of the test a
+unique name.
+
+Tests will be run in the order found.
+
+If the environment variable C<PERL_TEST_HARNESS_DUMP_TAP> is defined it
+should name a directory into which a copy of the raw TAP for each test
+will be written. TAP is written to files named for each test.
+Subdirectories will be created as needed.
+
+Returns a L<TAP::Parser::Aggregator> containing the test results.
+
+=cut
+
+sub runtests {
+ my ( $self, @tests ) = @_;
+
+ my $aggregate = $self->_construct( $self->aggregator_class );
+
+ $self->_make_callback( 'before_runtests', $aggregate );
+ $aggregate->start;
+ my $finish = sub {
+ my $interrupted = shift;
+ $aggregate->stop;
+ $self->summary( $aggregate, $interrupted );
+ $self->_make_callback( 'after_runtests', $aggregate );
+ };
+ my $run = sub {
+ my $bailout;
+ eval { $self->aggregate_tests( $aggregate, @tests ); 1 }
+ or do { $bailout = $@ || 'unknown_error' };
+ $finish->();
+ die $bailout if defined $bailout;
+ };
+ $self->{bail_summary} = sub{
+ print "\n";
+ $finish->(1);
+ };
+
+ if ( $self->trap ) {
+ local $SIG{INT} = sub {
+ print "\n";
+ $finish->(1);
+ exit;
+ };
+ $run->();
+ }
+ else {
+ $run->();
+ }
+
+ return $aggregate;
+}
+
+=head3 C<summary>
+
+ $harness->summary( $aggregator );
+
+Output the summary for a L<TAP::Parser::Aggregator>.
+
+=cut
+
+sub summary {
+ my ( $self, @args ) = @_;
+ $self->formatter->summary(@args);
+}
+
+sub _after_test {
+ my ( $self, $aggregate, $job, $parser ) = @_;
+
+ $self->_make_callback( 'after_test', $job->as_array_ref, $parser );
+ $aggregate->add( $job->description, $parser );
+}
+
+sub _bailout {
+ my ( $self, $result, $parser, $session, $aggregate, $job ) = @_;
+
+ $self->finish_parser( $parser, $session );
+ $self->_after_test( $aggregate, $job, $parser );
+ $job->finish;
+
+ my $explanation = $result->explanation;
+ $self->{bail_summary}();
+ die "FAILED--Further testing stopped"
+ . ( $explanation ? ": $explanation\n" : ".\n" );
+}
+
+sub _aggregate_parallel {
+ my ( $self, $aggregate, $scheduler ) = @_;
+
+ my $jobs = $self->jobs;
+ my $mux = $self->_construct( $self->multiplexer_class );
+
+ RESULT: {
+
+ # Keep multiplexer topped up
+ FILL:
+ while ( $mux->parsers < $jobs ) {
+ my $job = $scheduler->get_job;
+
+ # If we hit a spinner stop filling and start running.
+ last FILL if !defined $job || $job->is_spinner;
+
+ my ( $parser, $session ) = $self->make_parser($job);
+ $mux->add( $parser, [ $session, $job ] );
+
+ # The job has started: begin the timers
+ $parser->start_time( $parser->get_time );
+ $parser->start_times( $parser->get_times );
+ }
+
+ if ( my ( $parser, $stash, $result ) = $mux->next ) {
+ my ( $session, $job ) = @$stash;
+ if ( defined $result ) {
+ $session->result($result);
+ $self->_bailout($result, $parser, $session, $aggregate, $job )
+ if $result->is_bailout;
+ }
+ else {
+
+ # End of parser. Automatically removed from the mux.
+ $self->finish_parser( $parser, $session );
+ $self->_after_test( $aggregate, $job, $parser );
+ $job->finish;
+ }
+ redo RESULT;
+ }
+ }
+
+ return;
+}
+
+sub _aggregate_single {
+ my ( $self, $aggregate, $scheduler ) = @_;
+
+ JOB:
+ while ( my $job = $scheduler->get_job ) {
+ next JOB if $job->is_spinner;
+
+ my ( $parser, $session ) = $self->make_parser($job);
+
+ while ( defined( my $result = $parser->next ) ) {
+ $session->result($result);
+ if ( $result->is_bailout ) {
+
+ # Keep reading until input is exhausted in the hope
+ # of allowing any pending diagnostics to show up.
+ 1 while $parser->next;
+ $self->_bailout($result, $parser, $session, $aggregate, $job );
+ }
+ }
+
+ $self->finish_parser( $parser, $session );
+ $self->_after_test( $aggregate, $job, $parser );
+ $job->finish;
+ }
+
+ return;
+}
+
+=head3 C<aggregate_tests>
+
+ $harness->aggregate_tests( $aggregate, @tests );
+
+Run the named tests and display a summary of result. Tests will be run
+in the order found.
+
+Test results will be added to the supplied L<TAP::Parser::Aggregator>.
+C<aggregate_tests> may be called multiple times to run several sets of
+tests. Multiple C<Test::Harness> instances may be used to pass results
+to a single aggregator so that different parts of a complex test suite
+may be run using different C<TAP::Harness> settings. This is useful, for
+example, in the case where some tests should run in parallel but others
+are unsuitable for parallel execution.
+
+ my $formatter = TAP::Formatter::Console->new;
+ my $ser_harness = TAP::Harness->new( { formatter => $formatter } );
+ my $par_harness = TAP::Harness->new(
+ { formatter => $formatter,
+ jobs => 9
+ }
+ );
+ my $aggregator = TAP::Parser::Aggregator->new;
+
+ $aggregator->start();
+ $ser_harness->aggregate_tests( $aggregator, @ser_tests );
+ $par_harness->aggregate_tests( $aggregator, @par_tests );
+ $aggregator->stop();
+ $formatter->summary($aggregator);
+
+Note that for simpler testing requirements it will often be possible to
+replace the above code with a single call to C<runtests>.
+
+Each element of the C<@tests> array is either:
+
+=over
+
+=item * the source name of a test to run
+
+=item * a reference to a [ source name, display name ] array
+
+=back
+
+In the case of a perl test suite, typically I<source names> are simply the file
+names of the test scripts to run.
+
+When you supply a separate display name it becomes possible to run a
+test more than once; the display name is effectively the alias by which
+the test is known inside the harness. The harness doesn't care if it
+runs the same test more than once when each invocation uses a
+different name.
+
+=cut
+
+sub aggregate_tests {
+ my ( $self, $aggregate, @tests ) = @_;
+
+ my $jobs = $self->jobs;
+ my $scheduler = $self->make_scheduler(@tests);
+
+ # #12458
+ local $ENV{HARNESS_IS_VERBOSE} = 1
+ if $self->formatter->verbosity > 0;
+
+ # Formatter gets only names.
+ $self->formatter->prepare( map { $_->description } $scheduler->get_all );
+
+ if ( $self->jobs > 1 ) {
+ $self->_aggregate_parallel( $aggregate, $scheduler );
+ }
+ else {
+ $self->_aggregate_single( $aggregate, $scheduler );
+ }
+
+ return;
+}
+
+sub _add_descriptions {
+ my $self = shift;
+
+ # Turn unwrapped scalars into anonymous arrays and copy the name as
+ # the description for tests that have only a name.
+ return map { @$_ == 1 ? [ $_->[0], $_->[0] ] : $_ }
+ map { 'ARRAY' eq ref $_ ? $_ : [$_] } @_;
+}
+
+=head3 C<make_scheduler>
+
+Called by the harness when it needs to create a
+L<TAP::Parser::Scheduler>. Override in a subclass to provide an
+alternative scheduler. C<make_scheduler> is passed the list of tests
+that was passed to C<aggregate_tests>.
+
+=cut
+
+sub make_scheduler {
+ my ( $self, @tests ) = @_;
+ return $self->_construct(
+ $self->scheduler_class,
+ tests => [ $self->_add_descriptions(@tests) ],
+ rules => $self->rules
+ );
+}
+
+=head3 C<jobs>
+
+Gets or sets the number of concurrent test runs the harness is
+handling. By default, this value is 1 -- for parallel testing, this
+should be set higher.
+
+=cut
+
+##############################################################################
+
+sub _get_parser_args {
+ my ( $self, $job ) = @_;
+ my $test_prog = $job->filename;
+ my %args = ();
+
+ $args{sources} = $self->sources if $self->sources;
+
+ my @switches;
+ @switches = $self->lib if $self->lib;
+ push @switches => $self->switches if $self->switches;
+ $args{switches} = \@switches;
+ $args{spool} = $self->_open_spool($test_prog);
+ $args{merge} = $self->merge;
+ $args{ignore_exit} = $self->ignore_exit;
+ $args{version} = $self->version if $self->version;
+
+ if ( my $exec = $self->exec ) {
+ $args{exec}
+ = ref $exec eq 'CODE'
+ ? $exec->( $self, $test_prog )
+ : [ @$exec, $test_prog ];
+ if ( not defined $args{exec} ) {
+ $args{source} = $test_prog;
+ }
+ elsif ( ( ref( $args{exec} ) || "" ) ne "ARRAY" ) {
+ $args{source} = delete $args{exec};
+ }
+ }
+ else {
+ $args{source} = $test_prog;
+ }
+
+ if ( defined( my $test_args = $self->test_args ) ) {
+
+ if ( ref($test_args) eq 'HASH' ) {
+
+ # different args for each test
+ if ( exists( $test_args->{ $job->description } ) ) {
+ $test_args = $test_args->{ $job->description };
+ }
+ else {
+ $self->_croak( "TAP::Harness Can't find test_args for "
+ . $job->description );
+ }
+ }
+
+ $args{test_args} = $test_args;
+ }
+
+ return \%args;
+}
+
+=head3 C<make_parser>
+
+Make a new parser and display formatter session. Typically used and/or
+overridden in subclasses.
+
+ my ( $parser, $session ) = $harness->make_parser;
+
+=cut
+
+sub make_parser {
+ my ( $self, $job ) = @_;
+
+ my $args = $self->_get_parser_args($job);
+ $self->_make_callback( 'parser_args', $args, $job->as_array_ref );
+ my $parser = $self->_construct( $self->parser_class, $args );
+
+ $self->_make_callback( 'made_parser', $parser, $job->as_array_ref );
+ my $session = $self->formatter->open_test( $job->description, $parser );
+
+ return ( $parser, $session );
+}
+
+=head3 C<finish_parser>
+
+Terminate use of a parser. Typically used and/or overridden in
+subclasses. The parser isn't destroyed as a result of this.
+
+=cut
+
+sub finish_parser {
+ my ( $self, $parser, $session ) = @_;
+
+ $session->close_test;
+ $self->_close_spool($parser);
+
+ return $parser;
+}
+
+sub _open_spool {
+ my $self = shift;
+ my $test = shift;
+
+ if ( my $spool_dir = $ENV{PERL_TEST_HARNESS_DUMP_TAP} ) {
+
+ my $spool = File::Spec->catfile( $spool_dir, $test );
+
+ # Make the directory
+ my ( $vol, $dir, undef ) = File::Spec->splitpath($spool);
+ my $path = File::Spec->catpath( $vol, $dir, '' );
+ eval { mkpath($path) };
+ $self->_croak($@) if $@;
+
+ my $spool_handle = IO::Handle->new;
+ open( $spool_handle, ">$spool" )
+ or $self->_croak(" Can't write $spool ( $! ) ");
+
+ return $spool_handle;
+ }
+
+ return;
+}
+
+sub _close_spool {
+ my $self = shift;
+ my ($parser) = @_;
+
+ if ( my $spool_handle = $parser->delete_spool ) {
+ close($spool_handle)
+ or $self->_croak(" Error closing TAP spool file( $! ) \n ");
+ }
+
+ return;
+}
+
+sub _croak {
+ my ( $self, $message ) = @_;
+ unless ($message) {
+ $message = $self->_error;
+ }
+ $self->SUPER::_croak($message);
+
+ return;
+}
+
+1;
+
+__END__
+
+##############################################################################
+
+=head1 CONFIGURING
+
+C<TAP::Harness> is designed to be easy to configure.
+
+=head2 Plugins
+
+C<TAP::Parser> plugins let you change the way TAP is I<input> to and I<output>
+from the parser.
+
+L<TAP::Parser::SourceHandler>s handle TAP I<input>. You can configure them
+and load custom handlers using the C<sources> parameter to L</new>.
+
+L<TAP::Formatter>s handle TAP I<output>. You can load custom formatters by
+using the C<formatter_class> parameter to L</new>. To configure a formatter,
+you currently need to instantiate it outside of L<TAP::Harness> and pass it in
+with the C<formatter> parameter to L</new>. This I<may> be addressed by adding
+a I<formatters> parameter to L</new> in the future.
+
+=head2 C<Module::Build>
+
+L<Module::Build> version C<0.30> supports C<TAP::Harness>.
+
+To load C<TAP::Harness> plugins, you'll need to use the C<tap_harness_args>
+parameter to C<new>, typically from your C<Build.PL>. For example:
+
+ Module::Build->new(
+ module_name => 'MyApp',
+ test_file_exts => [qw(.t .tap .txt)],
+ use_tap_harness => 1,
+ tap_harness_args => {
+ sources => {
+ MyCustom => {},
+ File => {
+ extensions => ['.tap', '.txt'],
+ },
+ },
+ formatter_class => 'TAP::Formatter::HTML',
+ },
+ build_requires => {
+ 'Module::Build' => '0.30',
+ 'TAP::Harness' => '3.18',
+ },
+ )->create_build_script;
+
+See L</new>
+
+=head2 C<ExtUtils::MakeMaker>
+
+L<ExtUtils::MakeMaker> does not support L<TAP::Harness> out-of-the-box.
+
+=head2 C<prove>
+
+L<prove> supports C<TAP::Harness> plugins, and has a plugin system of its
+own. See L<prove/FORMATTERS>, L<prove/SOURCE HANDLERS> and L<App::Prove>
+for more details.
+
+=head1 WRITING PLUGINS
+
+If you can't configure C<TAP::Harness> to do what you want, and you can't find
+an existing plugin, consider writing one.
+
+The two primary use cases supported by L<TAP::Harness> for plugins are I<input>
+and I<output>:
+
+=over 2
+
+=item Customize how TAP gets into the parser
+
+To do this, you can either extend an existing L<TAP::Parser::SourceHandler>,
+or write your own. It's a pretty simple API, and they can be loaded and
+configured using the C<sources> parameter to L</new>.
+
+=item Customize how TAP results are output from the parser
+
+To do this, you can either extend an existing L<TAP::Formatter>, or write your
+own. Writing formatters are a bit more involved than writing a
+I<SourceHandler>, as you'll need to understand the L<TAP::Parser> API. A
+good place to start is by understanding how L</aggregate_tests> works.
+
+Custom formatters can be loaded configured using the C<formatter_class>
+parameter to L</new>.
+
+=back
+
+=head1 SUBCLASSING
+
+If you can't configure C<TAP::Harness> to do exactly what you want, and writing
+a plugin isn't an option, consider extending it. It is designed to be (mostly)
+easy to subclass, though the cases when sub-classing is necessary should be few
+and far between.
+
+=head2 Methods
+
+The following methods are ones you may wish to override if you want to
+subclass C<TAP::Harness>.
+
+=over 4
+
+=item L</new>
+
+=item L</runtests>
+
+=item L</summary>
+
+=back
+
+=cut
+
+=head1 REPLACING
+
+If you like the C<prove> utility and L<TAP::Parser> but you want your
+own harness, all you need to do is write one and provide C<new> and
+C<runtests> methods. Then you can use the C<prove> utility like so:
+
+ prove --harness My::Test::Harness
+
+Note that while C<prove> accepts a list of tests (or things to be
+tested), C<new> has a fairly rich set of arguments. You'll probably want
+to read over this code carefully to see how all of them are being used.
+
+=head1 SEE ALSO
+
+L<Test::Harness>
+
+=cut
+
+# vim:ts=4:sw=4:et:sta
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Beyond.pod b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Beyond.pod
new file mode 100755
index 0000000000..989e2efc14
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Beyond.pod
@@ -0,0 +1,426 @@
+=head1 NAME
+
+Test::Harness::Beyond - Beyond make test
+
+=head1 Beyond make test
+
+Test::Harness is responsible for running test scripts, analysing
+their output and reporting success or failure. When I type
+F<make test> (or F<./Build test>) for a module, Test::Harness is usually
+used to run the tests (not all modules use Test::Harness but the
+majority do).
+
+To start exploring some of the features of Test::Harness I need to
+switch from F<make test> to the F<prove> command (which ships with
+Test::Harness). For the following examples I'll also need a recent
+version of Test::Harness installed; 3.14 is current as I write.
+
+For the examples I'm going to assume that we're working with a
+'normal' Perl module distribution. Specifically I'll assume that
+typing F<make> or F<./Build> causes the built, ready-to-install module
+code to be available below ./blib/lib and ./blib/arch and that
+there's a directory called 't' that contains our tests. Test::Harness
+isn't hardwired to that configuration but it saves me from explaining
+which files live where for each example.
+
+Back to F<prove>; like F<make test> it runs a test suite - but it
+provides far more control over which tests are executed, in what
+order and how their results are reported. Typically F<make test>
+runs all the test scripts below the 't' directory. To do the same
+thing with prove I type:
+
+ prove -rb t
+
+The switches here are -r to recurse into any directories below 't'
+and -b which adds ./blib/lib and ./blib/arch to Perl's include path
+so that the tests can find the code they will be testing. If I'm
+testing a module of which an earlier version is already installed
+I need to be careful about the include path to make sure I'm not
+running my tests against the installed version rather than the new
+one that I'm working on.
+
+Unlike F<make test>, typing F<prove> doesn't automatically rebuild
+my module. If I forget to make before prove I will be testing against
+older versions of those files - which inevitably leads to confusion.
+I either get into the habit of typing
+
+ make && prove -rb t
+
+or - if I have no XS code that needs to be built I use the modules
+below F<lib> instead
+
+ prove -Ilib -r t
+
+So far I've shown you nothing that F<make test> doesn't do. Let's
+fix that.
+
+=head2 Saved State
+
+If I have failing tests in a test suite that consists of more than
+a handful of scripts and takes more than a few seconds to run it
+rapidly becomes tedious to run the whole test suite repeatedly as
+I track down the problems.
+
+I can tell prove just to run the tests that are failing like this:
+
+ prove -b t/this_fails.t t/so_does_this.t
+
+That speeds things up but I have to make a note of which tests are
+failing and make sure that I run those tests. Instead I can use
+prove's --state switch and have it keep track of failing tests for
+me. First I do a complete run of the test suite and tell prove to
+save the results:
+
+ prove -rb --state=save t
+
+That stores a machine readable summary of the test run in a file
+called '.prove' in the current directory. If I have failures I can
+then run just the failing scripts like this:
+
+ prove -b --state=failed
+
+I can also tell prove to save the results again so that it updates
+its idea of which tests failed:
+
+ prove -b --state=failed,save
+
+As soon as one of my failing tests passes it will be removed from
+the list of failed tests. Eventually I fix them all and prove can
+find no failing tests to run:
+
+ Files=0, Tests=0, 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)
+ Result: NOTESTS
+
+As I work on a particular part of my module it's most likely that
+the tests that cover that code will fail. I'd like to run the whole
+test suite but have it prioritize these 'hot' tests. I can tell
+prove to do this:
+
+ prove -rb --state=hot,save t
+
+All the tests will run but those that failed most recently will be
+run first. If no tests have failed since I started saving state all
+tests will run in their normal order. This combines full test
+coverage with early notification of failures.
+
+The --state switch supports a number of options; for example to run
+failed tests first followed by all remaining tests ordered by the
+timestamps of the test scripts - and save the results - I can use
+
+ prove -rb --state=failed,new,save t
+
+See the prove documentation (type prove --man) for the full list
+of state options.
+
+When I tell prove to save state it writes a file called '.prove'
+('_prove' on Windows) in the current directory. It's a YAML document
+so it's quite easy to write tools of your own that work on the saved
+test state - but the format isn't officially documented so it might
+change without (much) warning in the future.
+
+=head2 Parallel Testing
+
+If my tests take too long to run I may be able to speed them up by
+running multiple test scripts in parallel. This is particularly
+effective if the tests are I/O bound or if I have multiple CPU
+cores. I tell prove to run my tests in parallel like this:
+
+ prove -rb -j 9 t
+
+The -j switch enables parallel testing; the number that follows it
+is the maximum number of tests to run in parallel. Sometimes tests
+that pass when run sequentially will fail when run in parallel. For
+example if two different test scripts use the same temporary file
+or attempt to listen on the same socket I'll have problems running
+them in parallel. If I see unexpected failures I need to check my
+tests to work out which of them are trampling on the same resource
+and rename temporary files or add locks as appropriate.
+
+To get the most performance benefit I want to have the test scripts
+that take the longest to run start first - otherwise I'll be waiting
+for the one test that takes nearly a minute to complete after all
+the others are done. I can use the --state switch to run the tests
+in slowest to fastest order:
+
+ prove -rb -j 9 --state=slow,save t
+
+=head2 Non-Perl Tests
+
+The Test Anything Protocol (http://testanything.org/) isn't just
+for Perl. Just about any language can be used to write tests that
+output TAP. There are TAP based testing libraries for C, C++, PHP,
+Python and many others. If I can't find a TAP library for my language
+of choice it's easy to generate valid TAP. It looks like this:
+
+ 1..3
+ ok 1 - init OK
+ ok 2 - opened file
+ not ok 3 - appended to file
+
+The first line is the plan - it specifies the number of tests I'm
+going to run so that it's easy to check that the test script didn't
+exit before running all the expected tests. The following lines are
+the test results - 'ok' for pass, 'not ok' for fail. Each test has
+a number and, optionally, a description. And that's it. Any language
+that can produce output like that on STDOUT can be used to write
+tests.
+
+Recently I've been rekindling a two-decades-old interest in Forth.
+Evidently I have a masochistic streak that even Perl can't satisfy.
+I want to write tests in Forth and run them using prove (you can
+find my gforth TAP experiments at
+https://svn.hexten.net/andy/Forth/Testing/). I can use the --exec
+switch to tell prove to run the tests using gforth like this:
+
+ prove -r --exec gforth t
+
+Alternately, if the language used to write my tests allows a shebang
+line I can use that to specify the interpreter. Here's a test written
+in PHP:
+
+ #!/usr/bin/php
+ <?php
+ print "1..2\n";
+ print "ok 1\n";
+ print "not ok 2\n";
+ ?>
+
+If I save that as t/phptest.t the shebang line will ensure that it
+runs correctly along with all my other tests.
+
+=head2 Mixing it up
+
+Subtle interdependencies between test programs can mask problems -
+for example an earlier test may neglect to remove a temporary file
+that affects the behaviour of a later test. To find this kind of
+problem I use the --shuffle and --reverse options to run my tests
+in random or reversed order.
+
+=head2 Rolling My Own
+
+If I need a feature that prove doesn't provide I can easily write my own.
+
+Typically you'll want to change how TAP gets I<input> into and I<output>
+from the parser. L<App::Prove> supports arbitrary plugins, and L<TAP::Harness>
+supports custom I<formatters> and I<source handlers> that you can load using
+either L<prove> or L<Module::Build>; there are many examples to base mine on.
+For more details see L<App::Prove>, L<TAP::Parser::SourceHandler>, and
+L<TAP::Formatter::Base>.
+
+If writing a plugin is not enough, you can write your own test harness; one of
+the motives for the 3.00 rewrite of Test::Harness was to make it easier to
+subclass and extend.
+
+The Test::Harness module is a compatibility wrapper around TAP::Harness.
+For new applications I should use TAP::Harness directly. As we'll
+see, prove uses TAP::Harness.
+
+When I run prove it processes its arguments, figures out which test
+scripts to run and then passes control to TAP::Harness to run the
+tests, parse, analyse and present the results. By subclassing
+TAP::Harness I can customise many aspects of the test run.
+
+I want to log my test results in a database so I can track them
+over time. To do this I override the summary method in TAP::Harness.
+I start with a simple prototype that dumps the results as a YAML
+document:
+
+ package My::TAP::Harness;
+
+ use base 'TAP::Harness';
+ use YAML;
+
+ sub summary {
+ my ( $self, $aggregate ) = @_;
+ print Dump( $aggregate );
+ $self->SUPER::summary( $aggregate );
+ }
+
+ 1;
+
+I need to tell prove to use my My::TAP::Harness. If My::TAP::Harness
+is on Perl's @INC include path I can
+
+ prove --harness=My::TAP::Harness -rb t
+
+If I don't have My::TAP::Harness installed on @INC I need to provide
+the correct path to perl when I run prove:
+
+ perl -Ilib `which prove` --harness=My::TAP::Harness -rb t
+
+I can incorporate these options into my own version of prove. It's
+pretty simple. Most of the work of prove is handled by App::Prove.
+The important code in prove is just:
+
+ use App::Prove;
+
+ my $app = App::Prove->new;
+ $app->process_args(@ARGV);
+ exit( $app->run ? 0 : 1 );
+
+If I write a subclass of App::Prove I can customise any aspect of
+the test runner while inheriting all of prove's behaviour. Here's
+myprove:
+
+ #!/usr/bin/env perl use lib qw( lib ); # Add ./lib to @INC
+ use App::Prove;
+
+ my $app = App::Prove->new;
+
+ # Use custom TAP::Harness subclass
+ $app->harness( 'My::TAP::Harness' );
+
+ $app->process_args( @ARGV ); exit( $app->run ? 0 : 1 );
+
+Now I can run my tests like this
+
+ ./myprove -rb t
+
+=head2 Deeper Customisation
+
+Now that I know how to subclass and replace TAP::Harness I can
+replace any other part of the harness. To do that I need to know
+which classes are responsible for which functionality. Here's a
+brief guided tour; the default class for each component is shown
+in parentheses. Normally any replacements I write will be subclasses
+of these default classes.
+
+When I run my tests TAP::Harness creates a scheduler
+(TAP::Parser::Scheduler) to work out the running order for the
+tests, an aggregator (TAP::Parser::Aggregator) to collect and analyse
+the test results and a formatter (TAP::Formatter::Console) to display
+those results.
+
+If I'm running my tests in parallel there may also be a multiplexer
+(TAP::Parser::Multiplexer) - the component that allows multiple
+tests to run simultaneously.
+
+Once it has created those helpers TAP::Harness starts running the
+tests. For each test it creates a new parser (TAP::Parser) which
+is responsible for running the test script and parsing its output.
+
+To replace any of these components I call one of these harness
+methods with the name of the replacement class:
+
+ aggregator_class
+ formatter_class
+ multiplexer_class
+ parser_class
+ scheduler_class
+
+For example, to replace the aggregator I would
+
+ $harness->aggregator_class( 'My::Aggregator' );
+
+Alternately I can supply the names of my substitute classes to the
+TAP::Harness constructor:
+
+ my $harness = TAP::Harness->new(
+ { aggregator_class => 'My::Aggregator' }
+ );
+
+If I need to reach even deeper into the internals of the harness I
+can replace the classes that TAP::Parser uses to execute test scripts
+and tokenise their output. Before running a test script TAP::Parser
+creates a grammar (TAP::Parser::Grammar) to decode the raw TAP into
+tokens, a result factory (TAP::Parser::ResultFactory) to turn the
+decoded TAP results into objects and, depending on whether it's
+running a test script or reading TAP from a file, scalar or array
+a source or an iterator (TAP::Parser::IteratorFactory).
+
+Each of these objects may be replaced by calling one of these parser
+methods:
+
+ source_class
+ perl_source_class
+ grammar_class
+ iterator_factory_class
+ result_factory_class
+
+=head2 Callbacks
+
+As an alternative to subclassing the components I need to change I
+can attach callbacks to the default classes. TAP::Harness exposes
+these callbacks:
+
+ parser_args Tweak the parameters used to create the parser
+ made_parser Just made a new parser
+ before_runtests About to run tests
+ after_runtests Have run all tests
+ after_test Have run an individual test script
+
+TAP::Parser also supports callbacks; bailout, comment, plan, test,
+unknown, version and yaml are called for the corresponding TAP
+result types, ALL is called for all results, ELSE is called for all
+results for which a named callback is not installed and EOF is
+called once at the end of each TAP stream.
+
+To install a callback I pass the name of the callback and a subroutine
+reference to TAP::Harness or TAP::Parser's callback method:
+
+ $harness->callback( after_test => sub {
+ my ( $script, $desc, $parser ) = @_;
+ } );
+
+I can also pass callbacks to the constructor:
+
+ my $harness = TAP::Harness->new({
+ callbacks => {
+ after_test => sub {
+ my ( $script, $desc, $parser ) = @_;
+ # Do something interesting here
+ }
+ }
+ });
+
+When it comes to altering the behaviour of the test harness there's
+more than one way to do it. Which way is best depends on my
+requirements. In general if I only want to observe test execution
+without changing the harness' behaviour (for example to log test
+results to a database) I choose callbacks. If I want to make the
+harness behave differently subclassing gives me more control.
+
+=head2 Parsing TAP
+
+Perhaps I don't need a complete test harness. If I already have a
+TAP test log that I need to parse all I need is TAP::Parser and the
+various classes it depends upon. Here's the code I need to run a
+test and parse its TAP output
+
+ use TAP::Parser;
+
+ my $parser = TAP::Parser->new( { source => 't/simple.t' } );
+ while ( my $result = $parser->next ) {
+ print $result->as_string, "\n";
+ }
+
+Alternately I can pass an open filehandle as source and have the
+parser read from that rather than attempting to run a test script:
+
+ open my $tap, '<', 'tests.tap'
+ or die "Can't read TAP transcript ($!)\n";
+ my $parser = TAP::Parser->new( { source => $tap } );
+ while ( my $result = $parser->next ) {
+ print $result->as_string, "\n";
+ }
+
+This approach is useful if I need to convert my TAP based test
+results into some other representation. See TAP::Convert::TET
+(http://search.cpan.org/dist/TAP-Convert-TET/) for an example of
+this approach.
+
+=head2 Getting Support
+
+The Test::Harness developers hang out on the tapx-dev mailing
+list[1]. For discussion of general, language independent TAP issues
+there's the tap-l[2] list. Finally there's a wiki dedicated to the
+Test Anything Protocol[3]. Contributions to the wiki, patches and
+suggestions are all welcome.
+
+=for comment
+ The URLs in [1] and [2] point to 404 pages. What are currently the
+ correct URLs?
+
+[1] L<http://www.hexten.net/mailman/listinfo/tapx-dev>
+[2] L<http://testanything.org/mailman/listinfo/tap-l>
+[3] L<http://testanything.org/>
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Env.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Env.pm
new file mode 100755
index 0000000000..8d46d3856b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Harness/Env.pm
@@ -0,0 +1,215 @@
+package TAP::Harness::Env;
+
+use strict;
+use warnings;
+
+use constant IS_VMS => ( $^O eq 'VMS' );
+use TAP::Object;
+use Text::ParseWords qw/shellwords/;
+
+our $VERSION = '3.48';
+
+# Get the parts of @INC which are changed from the stock list AND
+# preserve reordering of stock directories.
+sub _filtered_inc_vms {
+ my @inc = grep { !ref } @INC; #28567
+
+ # VMS has a 255-byte limit on the length of %ENV entries, so
+ # toss the ones that involve perl_root, the install location
+ @inc = grep { !/perl_root/i } @inc;
+
+ my @default_inc = _default_inc();
+
+ my @new_inc;
+ my %seen;
+ for my $dir (@inc) {
+ next if $seen{$dir}++;
+
+ if ( $dir eq ( $default_inc[0] || '' ) ) {
+ shift @default_inc;
+ }
+ else {
+ push @new_inc, $dir;
+ }
+
+ shift @default_inc while @default_inc and $seen{ $default_inc[0] };
+ }
+ return @new_inc;
+}
+
+# Cache this to avoid repeatedly shelling out to Perl.
+my @inc;
+
+sub _default_inc {
+ return @inc if @inc;
+
+ local $ENV{PERL5LIB};
+ local $ENV{PERLLIB};
+
+ my $perl = $ENV{HARNESS_PERL} || $^X;
+
+ # Avoid using -l for the benefit of Perl 6
+ chomp( @inc = `"$perl" -e "print join qq[\\n], \@INC, q[]"` );
+ return @inc;
+}
+
+sub create {
+ my $package = shift;
+ my %input = %{ shift || {} };
+
+ my @libs = @{ delete $input{lib} || [] };
+ my @raw_switches = @{ delete $input{switches} || [] };
+ my @opt
+ = ( @raw_switches, shellwords( $ENV{HARNESS_PERL_SWITCHES} || '' ) );
+ my @switches;
+ while ( my $opt = shift @opt ) {
+ if ( $opt =~ /^ -I (.*) $ /x ) {
+ push @libs, length($1) ? $1 : shift @opt;
+ }
+ else {
+ push @switches, $opt;
+ }
+ }
+
+ # Do things the old way on VMS...
+ push @libs, _filtered_inc_vms() if IS_VMS;
+
+ # If $Verbose isn't numeric default to 1. This helps core.
+ my $verbose
+ = $ENV{HARNESS_VERBOSE}
+ ? $ENV{HARNESS_VERBOSE} !~ /\d/
+ ? 1
+ : $ENV{HARNESS_VERBOSE}
+ : 0;
+
+ my %args = (
+ lib => \@libs,
+ timer => $ENV{HARNESS_TIMER} || 0,
+ switches => \@switches,
+ color => $ENV{HARNESS_COLOR} || 0,
+ verbosity => $verbose,
+ ignore_exit => $ENV{HARNESS_IGNORE_EXIT} || 0,
+ );
+
+ 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*)$/ ) {
+ $args{jobs} = $1 || 9;
+ }
+ elsif ( $opt eq 'c' ) {
+ $args{color} = 1;
+ }
+ elsif ( $opt =~ m/^f(.*)$/ ) {
+ my $fmt = $1;
+ $fmt =~ s/-/::/g;
+ $args{formatter_class} = $fmt;
+ }
+ elsif ( $opt =~ m/^a(.*)$/ ) {
+ my $archive = $1;
+ $class = 'TAP::Harness::Archive';
+ $args{archive} = $archive;
+ }
+ else {
+ die "Unknown HARNESS_OPTIONS item: $opt\n";
+ }
+ }
+ }
+ return TAP::Object->_construct($class, { %args, %input });
+}
+
+1;
+
+=head1 NAME
+
+TAP::Harness::Env - Parsing harness related environmental variables where appropriate
+
+=head1 VERSION
+
+Version 3.48
+
+=head1 SYNOPSIS
+
+ my $harness = TAP::Harness::Env->create(\%extra_args)
+
+=head1 DESCRIPTION
+
+This module implements the environmental variables that L<Test::Harness> uses with TAP::Harness, and instantiates the appropriate class with the appropriate arguments.
+
+=head1 METHODS
+
+=over 4
+
+=item * create( \%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 separated 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Object.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Object.pm
new file mode 100755
index 0000000000..a012b98a6c
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Object.pm
@@ -0,0 +1,155 @@
+package TAP::Object;
+
+use strict;
+use warnings;
+
+=head1 NAME
+
+TAP::Object - Base class that provides common functionality to all C<TAP::*> modules
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ package TAP::Whatever;
+
+ use strict;
+
+ use base 'TAP::Object';
+
+ # new() implementation by TAP::Object
+ sub _initialize {
+ my ( $self, @args) = @_;
+ # initialize your object
+ return $self;
+ }
+
+ # ... later ...
+ my $obj = TAP::Whatever->new(@args);
+
+=head1 DESCRIPTION
+
+C<TAP::Object> provides a default constructor and exception model for all
+C<TAP::*> classes. Exceptions are raised using L<Carp>.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Create a new object. Any arguments passed to C<new> will be passed on to the
+L</_initialize> method. Returns a new object.
+
+=cut
+
+sub new {
+ my $class = shift;
+ my $self = bless {}, $class;
+ return $self->_initialize(@_);
+}
+
+=head2 Instance Methods
+
+=head3 C<_initialize>
+
+Initializes a new object. This method is a stub by default, you should override
+it as appropriate.
+
+I<Note:> L</new> expects you to return C<$self> or raise an exception. See
+L</_croak>, and L<Carp>.
+
+=cut
+
+sub _initialize {
+ return $_[0];
+}
+
+=head3 C<_croak>
+
+Raise an exception using C<croak> from L<Carp>, eg:
+
+ $self->_croak( 'why me?', 'aaarrgh!' );
+
+May also be called as a I<class> method.
+
+ $class->_croak( 'this works too' );
+
+=cut
+
+sub _croak {
+ my $proto = shift;
+ require Carp;
+ Carp::croak(@_);
+ return;
+}
+
+=head3 C<_confess>
+
+Raise an exception using C<confess> from L<Carp>, eg:
+
+ $self->_confess( 'why me?', 'aaarrgh!' );
+
+May also be called as a I<class> method.
+
+ $class->_confess( 'this works too' );
+
+=cut
+
+sub _confess {
+ my $proto = shift;
+ require Carp;
+ Carp::confess(@_);
+ return;
+}
+
+=head3 C<_construct>
+
+Create a new instance of the specified class.
+
+=cut
+
+sub _construct {
+ my ( $self, $class, @args ) = @_;
+
+ $self->_croak("Bad module name $class")
+ unless $class =~ /^ \w+ (?: :: \w+ ) *$/x;
+
+ unless ( $class->can('new') ) {
+ local $@;
+ eval "require $class";
+ $self->_croak("Can't load $class: $@") if $@;
+ }
+
+ return $class->new(@args);
+}
+
+=head3 C<mk_methods>
+
+Create simple getter/setters.
+
+ __PACKAGE__->mk_methods(@method_names);
+
+=cut
+
+sub mk_methods {
+ my ( $class, @methods ) = @_;
+ for my $method_name (@methods) {
+ my $method = "${class}::$method_name";
+ no strict 'refs';
+ *$method = sub {
+ my $self = shift;
+ $self->{$method_name} = shift if @_;
+ return $self->{$method_name};
+ };
+ }
+}
+
+1;
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser.pm
new file mode 100755
index 0000000000..9283ac3d2f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser.pm
@@ -0,0 +1,1931 @@
+package TAP::Parser;
+
+use strict;
+use warnings;
+
+use TAP::Parser::Grammar ();
+use TAP::Parser::Result ();
+use TAP::Parser::ResultFactory ();
+use TAP::Parser::Source ();
+use TAP::Parser::Iterator ();
+use TAP::Parser::IteratorFactory ();
+use TAP::Parser::SourceHandler::Executable ();
+use TAP::Parser::SourceHandler::Perl ();
+use TAP::Parser::SourceHandler::File ();
+use TAP::Parser::SourceHandler::RawTAP ();
+use TAP::Parser::SourceHandler::Handle ();
+
+use Carp qw( confess );
+
+use base 'TAP::Base';
+
+=encoding utf8
+
+=head1 NAME
+
+TAP::Parser - Parse L<TAP|Test::Harness::TAP> output
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+my $DEFAULT_TAP_VERSION = 12;
+my $MAX_TAP_VERSION = 14;
+
+$ENV{TAP_VERSION} = $MAX_TAP_VERSION;
+
+END {
+
+ # For VMS.
+ delete $ENV{TAP_VERSION};
+}
+
+BEGIN { # making accessors
+ __PACKAGE__->mk_methods(
+ qw(
+ _iterator
+ _spool
+ exec
+ exit
+ is_good_plan
+ plan
+ tests_planned
+ tests_run
+ wait
+ version
+ in_todo
+ start_time
+ end_time
+ start_times
+ end_times
+ skip_all
+ grammar_class
+ result_factory_class
+ iterator_factory_class
+ )
+ );
+
+ sub _stream { # deprecated
+ my $self = shift;
+ $self->_iterator(@_);
+ }
+} # done making accessors
+
+=head1 SYNOPSIS
+
+ use TAP::Parser;
+
+ my $parser = TAP::Parser->new( { source => $source } );
+
+ while ( my $result = $parser->next ) {
+ print $result->as_string;
+ }
+
+=head1 DESCRIPTION
+
+C<TAP::Parser> is designed to produce a proper parse of TAP output. For
+an example of how to run tests through this module, see the simple
+harnesses C<examples/>.
+
+There's a wiki dedicated to the Test Anything Protocol:
+
+L<http://testanything.org>
+
+It includes the TAP::Parser Cookbook:
+
+L<http://testanything.org/testing-with-tap/perl/tap::parser-cookbook.html>
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $parser = TAP::Parser->new(\%args);
+
+Returns a new C<TAP::Parser> object.
+
+The arguments should be a hashref with I<one> of the following keys:
+
+=over 4
+
+=item * C<source>
+
+I<CHANGED in 3.18>
+
+This is the preferred method of passing input to the constructor.
+
+The C<source> is used to create a L<TAP::Parser::Source> that is passed to the
+L</iterator_factory_class> which in turn figures out how to handle the source and
+creates a <TAP::Parser::Iterator> for it. The iterator is used by the parser to
+read in the TAP stream.
+
+To configure the I<IteratorFactory> use the C<sources> parameter below.
+
+Note that C<source>, C<tap> and C<exec> are I<mutually exclusive>.
+
+=item * C<tap>
+
+I<CHANGED in 3.18>
+
+The value should be the complete TAP output.
+
+The I<tap> is used to create a L<TAP::Parser::Source> that is passed to the
+L</iterator_factory_class> which in turn figures out how to handle the source and
+creates a <TAP::Parser::Iterator> for it. The iterator is used by the parser to
+read in the TAP stream.
+
+To configure the I<IteratorFactory> use the C<sources> parameter below.
+
+Note that C<source>, C<tap> and C<exec> are I<mutually exclusive>.
+
+=item * C<exec>
+
+Must be passed an array reference.
+
+The I<exec> array ref is used to create a L<TAP::Parser::Source> that is passed
+to the L</iterator_factory_class> which in turn figures out how to handle the
+source and creates a <TAP::Parser::Iterator> for it. The iterator is used by
+the parser to read in the TAP stream.
+
+By default the L<TAP::Parser::SourceHandler::Executable> class will create a
+L<TAP::Parser::Iterator::Process> object to handle the source. This passes the
+array reference strings as command arguments to L<IPC::Open3::open3|IPC::Open3>:
+
+ exec => [ '/usr/bin/ruby', 't/my_test.rb' ]
+
+If any C<test_args> are given they will be appended to the end of the command
+argument list.
+
+To configure the I<IteratorFactory> use the C<sources> parameter below.
+
+Note that C<source>, C<tap> and C<exec> are I<mutually exclusive>.
+
+=back
+
+The following keys are optional.
+
+=over 4
+
+=item * C<sources>
+
+I<NEW to 3.18>.
+
+If set, C<sources> must be a hashref containing the names of the
+L<TAP::Parser::SourceHandler>s to load and/or configure. The values are a
+hash of configuration that will be accessible to the source handlers via
+L<TAP::Parser::Source/config_for>.
+
+For example:
+
+ sources => {
+ Perl => { exec => '/path/to/custom/perl' },
+ File => { extensions => [ '.tap', '.txt' ] },
+ MyCustom => { some => 'config' },
+ }
+
+This will cause C<TAP::Parser> to pass custom configuration to two of the built-
+in source handlers - L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::File> - and attempt to load the C<MyCustom>
+class. See L<TAP::Parser::IteratorFactory/load_handlers> for more detail.
+
+The C<sources> parameter affects how C<source>, C<tap> and C<exec> parameters
+are handled.
+
+See L<TAP::Parser::IteratorFactory>, L<TAP::Parser::SourceHandler> and subclasses for
+more details.
+
+=item * C<callback>
+
+If present, each callback corresponding to a given result type will be called
+with the result as the argument if the C<run> method is used:
+
+ my %callbacks = (
+ test => \&test_callback,
+ plan => \&plan_callback,
+ comment => \&comment_callback,
+ bailout => \&bailout_callback,
+ unknown => \&unknown_callback,
+ );
+
+ my $aggregator = TAP::Parser::Aggregator->new;
+ for my $file ( @test_files ) {
+ my $parser = TAP::Parser->new(
+ {
+ source => $file,
+ callbacks => \%callbacks,
+ }
+ );
+ $parser->run;
+ $aggregator->add( $file, $parser );
+ }
+
+=item * C<switches>
+
+If using a Perl file as a source, optional switches may be passed which will
+be used when invoking the perl executable.
+
+ my $parser = TAP::Parser->new( {
+ source => $test_file,
+ switches => [ '-Ilib' ],
+ } );
+
+=item * C<test_args>
+
+Used in conjunction with the C<source> and C<exec> option to supply a reference
+to an C<@ARGV> style array of arguments to pass to the test program.
+
+=item * C<spool>
+
+If passed a filehandle will write a copy of all parsed TAP to that handle.
+
+=item * C<merge>
+
+If false, STDERR is not captured (though it is 'relayed' to keep it
+somewhat synchronized with STDOUT.)
+
+If true, STDERR and STDOUT are the same filehandle. This may cause
+breakage if STDERR contains anything resembling TAP format, but does
+allow exact synchronization.
+
+Subtleties of this behavior may be platform-dependent and may change in
+the future.
+
+=item * C<grammar_class>
+
+This option was introduced to let you easily customize which I<grammar> class
+the parser should use. It defaults to L<TAP::Parser::Grammar>.
+
+See also L</make_grammar>.
+
+=item * C<result_factory_class>
+
+This option was introduced to let you easily customize which I<result>
+factory class the parser should use. It defaults to
+L<TAP::Parser::ResultFactory>.
+
+See also L</make_result>.
+
+=item * C<iterator_factory_class>
+
+I<CHANGED in 3.18>
+
+This option was introduced to let you easily customize which I<iterator>
+factory class the parser should use. It defaults to
+L<TAP::Parser::IteratorFactory>.
+
+=back
+
+=cut
+
+# new() implementation supplied by TAP::Base
+
+# This should make overriding behaviour of the Parser in subclasses easier:
+sub _default_grammar_class {'TAP::Parser::Grammar'}
+sub _default_result_factory_class {'TAP::Parser::ResultFactory'}
+sub _default_iterator_factory_class {'TAP::Parser::IteratorFactory'}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<next>
+
+ my $parser = TAP::Parser->new( { source => $file } );
+ while ( my $result = $parser->next ) {
+ print $result->as_string, "\n";
+ }
+
+This method returns the results of the parsing, one result at a time. Note
+that it is destructive. You can't rewind and examine previous results.
+
+If callbacks are used, they will be issued before this call returns.
+
+Each result returned is a subclass of L<TAP::Parser::Result>. See that
+module and related classes for more information on how to use them.
+
+=cut
+
+sub next {
+ my $self = shift;
+ return ( $self->{_iter} ||= $self->_iter )->();
+}
+
+##############################################################################
+
+=head3 C<run>
+
+ $parser->run;
+
+This method merely runs the parser and parses all of the TAP.
+
+=cut
+
+sub run {
+ my $self = shift;
+ while ( defined( my $result = $self->next ) ) {
+
+ # do nothing
+ }
+}
+
+##############################################################################
+
+=head3 C<make_grammar>
+
+Make a new L<TAP::Parser::Grammar> object and return it. Passes through any
+arguments given.
+
+The C<grammar_class> can be customized, as described in L</new>.
+
+=head3 C<make_result>
+
+Make a new L<TAP::Parser::Result> object using the parser's
+L<TAP::Parser::ResultFactory>, and return it. Passes through any arguments
+given.
+
+The C<result_factory_class> can be customized, as described in L</new>.
+
+=head3 C<make_iterator_factory>
+
+I<NEW to 3.18>.
+
+Make a new L<TAP::Parser::IteratorFactory> object and return it. Passes through
+any arguments given.
+
+C<iterator_factory_class> can be customized, as described in L</new>.
+
+=cut
+
+# This should make overriding behaviour of the Parser in subclasses easier:
+sub make_iterator_factory { shift->iterator_factory_class->new(@_); }
+sub make_grammar { shift->grammar_class->new(@_); }
+sub make_result { shift->result_factory_class->make_result(@_); }
+
+{
+
+ # of the following, anything beginning with an underscore is strictly
+ # internal and should not be exposed.
+ my %initialize = (
+ version => $DEFAULT_TAP_VERSION,
+ plan => '', # the test plan (e.g., 1..3)
+ tests_run => 0, # actual current test numbers
+ skipped => [], #
+ todo => [], #
+ passed => [], #
+ failed => [], #
+ actual_failed => [], # how many tests really failed
+ actual_passed => [], # how many tests really passed
+ todo_passed => [], # tests which unexpectedly succeed
+ parse_errors => [], # perfect TAP should have none
+ );
+
+ # We seem to have this list hanging around all over the place. We could
+ # probably get it from somewhere else to avoid the repetition.
+ my @legal_callback = qw(
+ test
+ version
+ plan
+ comment
+ bailout
+ unknown
+ yaml
+ ALL
+ ELSE
+ EOF
+ );
+
+ my @class_overrides = qw(
+ grammar_class
+ result_factory_class
+ iterator_factory_class
+ );
+
+ sub _initialize {
+ my ( $self, $arg_for ) = @_;
+
+ # everything here is basically designed to convert any TAP source to a
+ # TAP::Parser::Iterator.
+
+ # Shallow copy
+ my %args = %{ $arg_for || {} };
+
+ $self->SUPER::_initialize( \%args, \@legal_callback );
+
+ # get any class overrides out first:
+ for my $key (@class_overrides) {
+ my $default_method = "_default_$key";
+ my $val = delete $args{$key} || $self->$default_method();
+ $self->$key($val);
+ }
+
+ my $iterator = delete $args{iterator};
+ $iterator ||= delete $args{stream}; # deprecated
+ my $tap = delete $args{tap};
+ my $version = delete $args{version};
+ my $raw_source = delete $args{source};
+ my $sources = delete $args{sources};
+ my $exec = delete $args{exec};
+ my $merge = delete $args{merge};
+ my $spool = delete $args{spool};
+ my $switches = delete $args{switches};
+ my $ignore_exit = delete $args{ignore_exit};
+ my $test_args = delete $args{test_args} || [];
+
+ if ( 1 < grep {defined} $iterator, $tap, $raw_source, $exec ) {
+ $self->_croak(
+ "You may only choose one of 'exec', 'tap', 'source' or 'iterator'"
+ );
+ }
+
+ if ( my @excess = sort keys %args ) {
+ $self->_croak("Unknown options: @excess");
+ }
+
+ # convert $tap & $exec to $raw_source equiv.
+ my $type = '';
+ my $source = TAP::Parser::Source->new;
+ if ($tap) {
+ $type = 'raw TAP';
+ $source->raw( \$tap );
+ }
+ elsif ($exec) {
+ $type = 'exec ' . $exec->[0];
+ $source->raw( { exec => $exec } );
+ }
+ elsif ($raw_source) {
+ $type = 'source ' . ref($raw_source) || $raw_source;
+ $source->raw( ref($raw_source) ? $raw_source : \$raw_source );
+ }
+ elsif ($iterator) {
+ $type = 'iterator ' . ref($iterator);
+ }
+
+ if ( $source->raw ) {
+ my $src_factory = $self->make_iterator_factory($sources);
+ $source->merge($merge)->switches($switches)
+ ->test_args($test_args);
+ $iterator = $src_factory->make_iterator($source);
+ }
+
+ unless ($iterator) {
+ $self->_croak(
+ "PANIC: could not determine iterator for input $type");
+ }
+
+ while ( my ( $k, $v ) = each %initialize ) {
+ $self->{$k} = 'ARRAY' eq ref $v ? [] : $v;
+ }
+
+ $self->version($version) if $version;
+ $self->_iterator($iterator);
+ $self->_spool($spool);
+ $self->ignore_exit($ignore_exit);
+
+ return $self;
+ }
+}
+
+=head1 INDIVIDUAL RESULTS
+
+If you've read this far in the docs, you've seen this:
+
+ while ( my $result = $parser->next ) {
+ print $result->as_string;
+ }
+
+Each result returned is a L<TAP::Parser::Result> subclass, referred to as
+I<result types>.
+
+=head2 Result types
+
+Basically, you fetch individual results from the TAP. The six types, with
+examples of each, are as follows:
+
+=over 4
+
+=item * Version
+
+ TAP version 12
+
+=item * Plan
+
+ 1..42
+
+=item * Pragma
+
+ pragma +strict
+
+=item * Test
+
+ ok 3 - We should start with some foobar!
+
+=item * Comment
+
+ # Hope we don't use up the foobar.
+
+=item * Bailout
+
+ Bail out! We ran out of foobar!
+
+=item * Unknown
+
+ ... yo, this ain't TAP! ...
+
+=back
+
+Each result fetched is a result object of a different type. There are common
+methods to each result object and different types may have methods unique to
+their type. Sometimes a type method may be overridden in a subclass, but its
+use is guaranteed to be identical.
+
+=head2 Common type methods
+
+=head3 C<type>
+
+Returns the type of result, such as C<comment> or C<test>.
+
+=head3 C<as_string>
+
+Prints a string representation of the token. This might not be the exact
+output, however. Tests will have test numbers added if not present, TODO and
+SKIP directives will be capitalized and, in general, things will be cleaned
+up. If you need the original text for the token, see the C<raw> method.
+
+=head3 C<raw>
+
+Returns the original line of text which was parsed.
+
+=head3 C<is_plan>
+
+Indicates whether or not this is the test plan line.
+
+=head3 C<is_test>
+
+Indicates whether or not this is a test line.
+
+=head3 C<is_comment>
+
+Indicates whether or not this is a comment. Comments will generally only
+appear in the TAP stream if STDERR is merged to STDOUT. See the
+C<merge> option.
+
+=head3 C<is_bailout>
+
+Indicates whether or not this is bailout line.
+
+=head3 C<is_yaml>
+
+Indicates whether or not the current item is a YAML block.
+
+=head3 C<is_unknown>
+
+Indicates whether or not the current line could be parsed.
+
+=head3 C<is_ok>
+
+ if ( $result->is_ok ) { ... }
+
+Reports whether or not a given result has passed. Anything which is B<not> a
+test result returns true. This is merely provided as a convenient shortcut
+which allows you to do this:
+
+ my $parser = TAP::Parser->new( { source => $source } );
+ while ( my $result = $parser->next ) {
+ # only print failing results
+ print $result->as_string unless $result->is_ok;
+ }
+
+=head2 C<plan> methods
+
+ if ( $result->is_plan ) { ... }
+
+If the above evaluates as true, the following methods will be available on the
+C<$result> object.
+
+=head3 C<plan>
+
+ if ( $result->is_plan ) {
+ print $result->plan;
+ }
+
+This is merely a synonym for C<as_string>.
+
+=head3 C<directive>
+
+ my $directive = $result->directive;
+
+If a SKIP directive is included with the plan, this method will return it.
+
+ 1..0 # SKIP: why bother?
+
+=head3 C<explanation>
+
+ my $explanation = $result->explanation;
+
+If a SKIP directive was included with the plan, this method will return the
+explanation, if any.
+
+=head2 C<pragma> methods
+
+ if ( $result->is_pragma ) { ... }
+
+If the above evaluates as true, the following methods will be available on the
+C<$result> object.
+
+=head3 C<pragmas>
+
+Returns a list of pragmas each of which is a + or - followed by the
+pragma name.
+
+=head2 C<comment> methods
+
+ if ( $result->is_comment ) { ... }
+
+If the above evaluates as true, the following methods will be available on the
+C<$result> object.
+
+=head3 C<comment>
+
+ if ( $result->is_comment ) {
+ my $comment = $result->comment;
+ print "I have something to say: $comment";
+ }
+
+=head2 C<bailout> methods
+
+ if ( $result->is_bailout ) { ... }
+
+If the above evaluates as true, the following methods will be available on the
+C<$result> object.
+
+=head3 C<explanation>
+
+ if ( $result->is_bailout ) {
+ my $explanation = $result->explanation;
+ print "We bailed out because ($explanation)";
+ }
+
+If, and only if, a token is a bailout token, you can get an "explanation" via
+this method. The explanation is the text after the mystical "Bail out!" words
+which appear in the tap output.
+
+=head2 C<unknown> methods
+
+ if ( $result->is_unknown ) { ... }
+
+There are no unique methods for unknown results.
+
+=head2 C<test> methods
+
+ if ( $result->is_test ) { ... }
+
+If the above evaluates as true, the following methods will be available on the
+C<$result> object.
+
+=head3 C<ok>
+
+ my $ok = $result->ok;
+
+Returns the literal text of the C<ok> or C<not ok> status.
+
+=head3 C<number>
+
+ my $test_number = $result->number;
+
+Returns the number of the test, even if the original TAP output did not supply
+that number.
+
+=head3 C<description>
+
+ my $description = $result->description;
+
+Returns the description of the test, if any. This is the portion after the
+test number but before the directive.
+
+=head3 C<directive>
+
+ my $directive = $result->directive;
+
+Returns either C<TODO> or C<SKIP> if either directive was present for a test
+line.
+
+=head3 C<explanation>
+
+ my $explanation = $result->explanation;
+
+If a test had either a C<TODO> or C<SKIP> directive, this method will return
+the accompanying explanation, if present.
+
+ not ok 17 - 'Pigs can fly' # TODO not enough acid
+
+For the above line, the explanation is I<not enough acid>.
+
+=head3 C<is_ok>
+
+ if ( $result->is_ok ) { ... }
+
+Returns a boolean value indicating whether or not the test passed. Remember
+that for TODO tests, the test always passes.
+
+B<Note:> this was formerly C<passed>. The latter method is deprecated and
+will issue a warning.
+
+=head3 C<is_actual_ok>
+
+ if ( $result->is_actual_ok ) { ... }
+
+Returns a boolean value indicating whether or not the test passed, regardless
+of its TODO status.
+
+B<Note:> this was formerly C<actual_passed>. The latter method is deprecated
+and will issue a warning.
+
+=head3 C<is_unplanned>
+
+ if ( $test->is_unplanned ) { ... }
+
+If a test number is greater than the number of planned tests, this method will
+return true. Unplanned tests will I<always> return false for C<is_ok>,
+regardless of whether or not the test C<has_todo> (see
+L<TAP::Parser::Result::Test> for more information about this).
+
+=head3 C<has_skip>
+
+ if ( $result->has_skip ) { ... }
+
+Returns a boolean value indicating whether or not this test had a SKIP
+directive.
+
+=head3 C<has_todo>
+
+ if ( $result->has_todo ) { ... }
+
+Returns a boolean value indicating whether or not this test had a TODO
+directive.
+
+Note that TODO tests I<always> pass. If you need to know whether or not
+they really passed, check the C<is_actual_ok> method.
+
+=head3 C<in_todo>
+
+ if ( $parser->in_todo ) { ... }
+
+True while the most recent result was a TODO. Becomes true before the
+TODO result is returned and stays true until just before the next non-
+TODO test is returned.
+
+=head1 TOTAL RESULTS
+
+After parsing the TAP, there are many methods available to let you dig through
+the results and determine what is meaningful to you.
+
+=head2 Individual Results
+
+These results refer to individual tests which are run.
+
+=head3 C<passed>
+
+ my @passed = $parser->passed; # the test numbers which passed
+ my $passed = $parser->passed; # the number of tests which passed
+
+This method lets you know which (or how many) tests passed. If a test failed
+but had a TODO directive, it will be counted as a passed test.
+
+=cut
+
+sub passed {
+ return @{ $_[0]->{passed} }
+ if ref $_[0]->{passed};
+ return wantarray ? 1 .. $_[0]->{passed} : $_[0]->{passed};
+}
+
+=head3 C<failed>
+
+ my @failed = $parser->failed; # the test numbers which failed
+ my $failed = $parser->failed; # the number of tests which failed
+
+This method lets you know which (or how many) tests failed. If a test passed
+but had a TODO directive, it will B<NOT> be counted as a failed test.
+
+=cut
+
+sub failed { @{ shift->{failed} } }
+
+=head3 C<actual_passed>
+
+ # the test numbers which actually passed
+ my @actual_passed = $parser->actual_passed;
+
+ # the number of tests which actually passed
+ my $actual_passed = $parser->actual_passed;
+
+This method lets you know which (or how many) tests actually passed,
+regardless of whether or not a TODO directive was found.
+
+=cut
+
+sub actual_passed {
+ return @{ $_[0]->{actual_passed} }
+ if ref $_[0]->{actual_passed};
+ return wantarray ? 1 .. $_[0]->{actual_passed} : $_[0]->{actual_passed};
+}
+*actual_ok = \&actual_passed;
+
+=head3 C<actual_ok>
+
+This method is a synonym for C<actual_passed>.
+
+=head3 C<actual_failed>
+
+ # the test numbers which actually failed
+ my @actual_failed = $parser->actual_failed;
+
+ # the number of tests which actually failed
+ my $actual_failed = $parser->actual_failed;
+
+This method lets you know which (or how many) tests actually failed,
+regardless of whether or not a TODO directive was found.
+
+=cut
+
+sub actual_failed { @{ shift->{actual_failed} } }
+
+##############################################################################
+
+=head3 C<todo>
+
+ my @todo = $parser->todo; # the test numbers with todo directives
+ my $todo = $parser->todo; # the number of tests with todo directives
+
+This method lets you know which (or how many) tests had TODO directives.
+
+=cut
+
+sub todo { @{ shift->{todo} } }
+
+=head3 C<todo_passed>
+
+ # the test numbers which unexpectedly succeeded
+ my @todo_passed = $parser->todo_passed;
+
+ # the number of tests which unexpectedly succeeded
+ my $todo_passed = $parser->todo_passed;
+
+This method lets you know which (or how many) tests actually passed but were
+declared as "TODO" tests.
+
+=cut
+
+sub todo_passed { @{ shift->{todo_passed} } }
+
+##############################################################################
+
+=head3 C<todo_failed>
+
+ # deprecated in favor of 'todo_passed'. This method was horribly misnamed.
+
+This was a badly misnamed method. It indicates which TODO tests unexpectedly
+succeeded. Will now issue a warning and call C<todo_passed>.
+
+=cut
+
+sub todo_failed {
+ warn
+ '"todo_failed" is deprecated. Please use "todo_passed". See the docs.';
+ goto &todo_passed;
+}
+
+=head3 C<skipped>
+
+ my @skipped = $parser->skipped; # the test numbers with SKIP directives
+ my $skipped = $parser->skipped; # the number of tests with SKIP directives
+
+This method lets you know which (or how many) tests had SKIP directives.
+
+=cut
+
+sub skipped { @{ shift->{skipped} } }
+
+=head2 Pragmas
+
+=head3 C<pragma>
+
+Get or set a pragma. To get the state of a pragma:
+
+ if ( $p->pragma('strict') ) {
+ # be strict
+ }
+
+To set the state of a pragma:
+
+ $p->pragma('strict', 1); # enable strict mode
+
+=cut
+
+sub pragma {
+ my ( $self, $pragma ) = splice @_, 0, 2;
+
+ return $self->{pragma}->{$pragma} unless @_;
+
+ if ( my $state = shift ) {
+ $self->{pragma}->{$pragma} = 1;
+ }
+ else {
+ delete $self->{pragma}->{$pragma};
+ }
+
+ return;
+}
+
+=head3 C<pragmas>
+
+Get a list of all the currently enabled pragmas:
+
+ my @pragmas_enabled = $p->pragmas;
+
+=cut
+
+sub pragmas { sort keys %{ shift->{pragma} || {} } }
+
+=head2 Summary Results
+
+These results are "meta" information about the total results of an individual
+test program.
+
+=head3 C<plan>
+
+ my $plan = $parser->plan;
+
+Returns the test plan, if found.
+
+=head3 C<good_plan>
+
+Deprecated. Use C<is_good_plan> instead.
+
+=cut
+
+sub good_plan {
+ warn 'good_plan() is deprecated. Please use "is_good_plan()"';
+ goto &is_good_plan;
+}
+
+##############################################################################
+
+=head3 C<is_good_plan>
+
+ if ( $parser->is_good_plan ) { ... }
+
+Returns a boolean value indicating whether or not the number of tests planned
+matches the number of tests run.
+
+B<Note:> this was formerly C<good_plan>. The latter method is deprecated and
+will issue a warning.
+
+And since we're on that subject ...
+
+=head3 C<tests_planned>
+
+ print $parser->tests_planned;
+
+Returns the number of tests planned, according to the plan. For example, a
+plan of '1..17' will mean that 17 tests were planned.
+
+=head3 C<tests_run>
+
+ print $parser->tests_run;
+
+Returns the number of tests which actually were run. Hopefully this will
+match the number of C<< $parser->tests_planned >>.
+
+=head3 C<skip_all>
+
+Returns a true value (actually the reason for skipping) if all tests
+were skipped.
+
+=head3 C<start_time>
+
+Returns the wall-clock time when the Parser was created.
+
+=head3 C<end_time>
+
+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>
+
+ if ( $parser->has_problems ) {
+ ...
+ }
+
+This is a 'catch-all' method which returns true if any tests have currently
+failed, any TODO tests unexpectedly succeeded, or any parse errors occurred.
+
+=cut
+
+sub has_problems {
+ my $self = shift;
+ return
+ $self->failed
+ || $self->parse_errors
+ || ( !$self->ignore_exit && ( $self->wait || $self->exit ) );
+}
+
+=head3 C<version>
+
+ $parser->version;
+
+Once the parser is done, this will return the version number for the
+parsed TAP. Version numbers were introduced with TAP version 13 so if no
+version number is found version 12 is assumed.
+
+=head3 C<exit>
+
+ $parser->exit;
+
+Once the parser is done, this will return the exit status. If the parser ran
+an executable, it returns the exit status of the executable.
+
+=head3 C<wait>
+
+ $parser->wait;
+
+Once the parser is done, this will return the wait status. If the parser ran
+an executable, it returns the wait status of the executable. Otherwise, this
+merely returns the C<exit> status.
+
+=head2 C<ignore_exit>
+
+ $parser->ignore_exit(1);
+
+Tell the parser to ignore the exit status from the test when determining
+whether the test passed. Normally tests with non-zero exit status are
+considered to have failed even if all individual tests passed. In cases
+where it is not possible to control the exit value of the test script
+use this option to ignore it.
+
+=cut
+
+sub ignore_exit { shift->pragma( 'ignore_exit', @_ ) }
+
+=head3 C<parse_errors>
+
+ my @errors = $parser->parse_errors; # the parser errors
+ my $errors = $parser->parse_errors; # the number of parser_errors
+
+Fortunately, all TAP output is perfect. In the event that it is not, this
+method will return parser errors. Note that a junk line which the parser does
+not recognize is C<not> an error. This allows this parser to handle future
+versions of TAP. The following are all TAP errors reported by the parser:
+
+=over 4
+
+=item * Misplaced plan
+
+The plan (for example, '1..5'), must only come at the beginning or end of the
+TAP output.
+
+=item * No plan
+
+Gotta have a plan!
+
+=item * More than one plan
+
+ 1..3
+ ok 1 - input file opened
+ not ok 2 - first line of the input valid # todo some data
+ ok 3 read the rest of the file
+ 1..3
+
+Right. Very funny. Don't do that.
+
+=item * Test numbers out of sequence
+
+ 1..3
+ ok 1 - input file opened
+ not ok 2 - first line of the input valid # todo some data
+ ok 2 read the rest of the file
+
+That last test line above should have the number '3' instead of '2'.
+
+Note that it's perfectly acceptable for some lines to have test numbers and
+others to not have them. However, when a test number is found, it must be in
+sequence. The following is also an error:
+
+ 1..3
+ ok 1 - input file opened
+ not ok - first line of the input valid # todo some data
+ ok 2 read the rest of the file
+
+But this is not:
+
+ 1..3
+ ok - input file opened
+ not ok - first line of the input valid # todo some data
+ ok 3 read the rest of the file
+
+=back
+
+=cut
+
+sub parse_errors { @{ shift->{parse_errors} } }
+
+sub _add_error {
+ my ( $self, $error ) = @_;
+ push @{ $self->{parse_errors} } => $error;
+ return $self;
+}
+
+sub _make_state_table {
+ my $self = shift;
+ my %states;
+ my %planned_todo = ();
+
+ # These transitions are defaults for all states
+ my %state_globals = (
+ comment => {},
+ bailout => {},
+ yaml => {},
+ version => {
+ act => sub {
+ $self->_add_error(
+ 'If TAP version is present it must be the first line of output'
+ );
+ },
+ },
+ unknown => {
+ act => sub {
+ my $unk = shift;
+ if ( $self->pragma('strict') ) {
+ $self->_add_error(
+ 'Unknown TAP token: "' . $unk->raw . '"' );
+ }
+ },
+ },
+ pragma => {
+ act => sub {
+ my ($pragma) = @_;
+ for my $pr ( $pragma->pragmas ) {
+ if ( $pr =~ /^ ([-+])(\w+) $/x ) {
+ $self->pragma( $2, $1 eq '+' );
+ }
+ }
+ },
+ },
+ );
+
+ # Provides default elements for transitions
+ my %state_defaults = (
+ plan => {
+ act => sub {
+ my ($plan) = @_;
+ $self->tests_planned( $plan->tests_planned );
+ $self->plan( $plan->plan );
+ if ( $plan->has_skip ) {
+ $self->skip_all( $plan->explanation
+ || '(no reason given)' );
+ }
+
+ $planned_todo{$_}++ for @{ $plan->todo_list };
+ },
+ },
+ test => {
+ act => sub {
+ my ($test) = @_;
+
+ my ( $number, $tests_run )
+ = ( $test->number, ++$self->{tests_run} );
+
+ # Fake TODO state
+ if ( defined $number && delete $planned_todo{$number} ) {
+ $test->set_directive('TODO');
+ }
+
+ my $has_todo = $test->has_todo;
+
+ $self->in_todo($has_todo);
+ if ( defined( my $tests_planned = $self->tests_planned ) ) {
+ if ( $tests_run > $tests_planned ) {
+ $test->is_unplanned(1);
+ }
+ }
+
+ if ( defined $number ) {
+ if ( $number != $tests_run ) {
+ my $count = $tests_run;
+ $self->_add_error( "Tests out of sequence. Found "
+ . "($number) but expected ($count)" );
+ }
+ }
+ else {
+ $test->_number( $number = $tests_run );
+ }
+
+ push @{ $self->{todo} } => $number if $has_todo;
+ push @{ $self->{todo_passed} } => $number
+ if $test->todo_passed;
+ push @{ $self->{skipped} } => $number
+ if $test->has_skip;
+
+ push @{ $self->{ $test->is_ok ? 'passed' : 'failed' } } =>
+ $number;
+ push @{
+ $self->{
+ $test->is_actual_ok
+ ? 'actual_passed'
+ : 'actual_failed'
+ }
+ } => $number;
+ },
+ },
+ yaml => { act => sub { }, },
+ );
+
+ # Each state contains a hash the keys of which match a token type. For
+ # each token
+ # type there may be:
+ # act A coderef to run
+ # goto The new state to move to. Stay in this state if
+ # missing
+ # continue Goto the new state and run the new state for the
+ # current token
+ %states = (
+ INIT => {
+ version => {
+ act => sub {
+ my ($version) = @_;
+ my $ver_num = $version->version;
+ if ( $ver_num <= $DEFAULT_TAP_VERSION ) {
+ my $ver_min = $DEFAULT_TAP_VERSION + 1;
+ $self->_add_error(
+ "Explicit TAP version must be at least "
+ . "$ver_min. Got version $ver_num" );
+ $ver_num = $DEFAULT_TAP_VERSION;
+ }
+ if ( $ver_num > $MAX_TAP_VERSION ) {
+ $self->_add_error(
+ "TAP specified version $ver_num but "
+ . "we don't know about versions later "
+ . "than $MAX_TAP_VERSION" );
+ $ver_num = $MAX_TAP_VERSION;
+ }
+ $self->version($ver_num);
+ $self->_grammar->set_version($ver_num);
+ },
+ goto => 'PLAN'
+ },
+ plan => { goto => 'PLANNED' },
+ test => { goto => 'UNPLANNED' },
+ },
+ PLAN => {
+ plan => { goto => 'PLANNED' },
+ test => { goto => 'UNPLANNED' },
+ },
+ PLANNED => {
+ test => { goto => 'PLANNED_AFTER_TEST' },
+ plan => {
+ act => sub {
+ my ($version) = @_;
+ $self->_add_error(
+ 'More than one plan found in TAP output');
+ },
+ },
+ },
+ PLANNED_AFTER_TEST => {
+ test => { goto => 'PLANNED_AFTER_TEST' },
+ plan => { act => sub { }, continue => 'PLANNED' },
+ yaml => { goto => 'PLANNED' },
+ },
+ GOT_PLAN => {
+ test => {
+ act => sub {
+ my ($plan) = @_;
+ my $line = $self->plan;
+ $self->_add_error(
+ "Plan ($line) must be at the beginning "
+ . "or end of the TAP output" );
+ $self->is_good_plan(0);
+ },
+ continue => 'PLANNED'
+ },
+ plan => { continue => 'PLANNED' },
+ },
+ UNPLANNED => {
+ test => { goto => 'UNPLANNED_AFTER_TEST' },
+ plan => { goto => 'GOT_PLAN' },
+ },
+ UNPLANNED_AFTER_TEST => {
+ test => { act => sub { }, continue => 'UNPLANNED' },
+ plan => { act => sub { }, continue => 'UNPLANNED' },
+ yaml => { goto => 'UNPLANNED' },
+ },
+ );
+
+ # Apply globals and defaults to state table
+ for my $name ( keys %states ) {
+
+ # Merge with globals
+ my $st = { %state_globals, %{ $states{$name} } };
+
+ # Add defaults
+ for my $next ( sort keys %{$st} ) {
+ if ( my $default = $state_defaults{$next} ) {
+ for my $def ( sort keys %{$default} ) {
+ $st->{$next}->{$def} ||= $default->{$def};
+ }
+ }
+ }
+
+ # Stuff back in table
+ $states{$name} = $st;
+ }
+
+ return \%states;
+}
+
+=head3 C<get_select_handles>
+
+Get an a list of file handles which can be passed to C<select> to
+determine the readiness of this parser.
+
+=cut
+
+sub get_select_handles { shift->_iterator->get_select_handles }
+
+sub _grammar {
+ my $self = shift;
+ return $self->{_grammar} = shift if @_;
+
+ return $self->{_grammar} ||= $self->make_grammar(
+ { iterator => $self->_iterator,
+ parser => $self,
+ version => $self->version
+ }
+ );
+}
+
+sub _iter {
+ my $self = shift;
+ my $iterator = $self->_iterator;
+ my $grammar = $self->_grammar;
+ my $spool = $self->_spool;
+ my $state = 'INIT';
+ my $state_table = $self->_make_state_table;
+
+ $self->start_time( $self->get_time ) unless $self->{start_time};
+ $self->start_times( $self->get_times ) unless $self->{start_times};
+
+ # Make next_state closure
+ my $next_state = sub {
+ my $token = shift;
+ my $type = $token->type;
+ TRANS: {
+ my $state_spec = $state_table->{$state}
+ or die "Illegal state: $state";
+
+ if ( my $next = $state_spec->{$type} ) {
+ if ( my $act = $next->{act} ) {
+ $act->($token);
+ }
+ if ( my $cont = $next->{continue} ) {
+ $state = $cont;
+ redo TRANS;
+ }
+ elsif ( my $goto = $next->{goto} ) {
+ $state = $goto;
+ }
+ }
+ else {
+ confess("Unhandled token type: $type\n");
+ }
+ }
+ return $token;
+ };
+
+ # Handle end of stream - which means either pop a block or finish
+ my $end_handler = sub {
+ $self->exit( $iterator->exit );
+ $self->wait( $iterator->wait );
+ $self->_finish;
+ return;
+ };
+
+ # Finally make the closure that we return. For performance reasons
+ # there are two versions of the returned function: one that handles
+ # callbacks and one that does not.
+ if ( $self->_has_callbacks ) {
+ return sub {
+ my $result = eval { $grammar->tokenize };
+ $self->_add_error($@) if $@;
+
+ if ( defined $result ) {
+ $result = $next_state->($result);
+
+ if ( my $code = $self->_callback_for( $result->type ) ) {
+ $_->($result) for @{$code};
+ }
+ else {
+ $self->_make_callback( 'ELSE', $result );
+ }
+
+ $self->_make_callback( 'ALL', $result );
+
+ # Echo TAP to spool file
+ print {$spool} $result->raw, "\n" if $spool;
+ }
+ else {
+ $result = $end_handler->();
+ $self->_make_callback( 'EOF', $self )
+ unless defined $result;
+ }
+
+ return $result;
+ };
+ } # _has_callbacks
+ else {
+ return sub {
+ my $result = eval { $grammar->tokenize };
+ $self->_add_error($@) if $@;
+
+ if ( defined $result ) {
+ $result = $next_state->($result);
+
+ # Echo TAP to spool file
+ print {$spool} $result->raw, "\n" if $spool;
+ }
+ else {
+ $result = $end_handler->();
+ }
+
+ return $result;
+ };
+ } # no callbacks
+}
+
+sub _finish {
+ my $self = shift;
+
+ $self->end_time( $self->get_time );
+ $self->end_times( $self->get_times );
+
+ # Avoid leaks
+ $self->_iterator(undef);
+ $self->_grammar(undef);
+
+ # If we just delete the iter we won't get a fault if it's recreated.
+ # Instead we set it to a sub that returns an infinite
+ # stream of undef. This segfaults on 5.5.4, presumably because
+ # we're still executing the closure that gets replaced and it hasn't
+ # been protected with a refcount.
+ $self->{_iter} = sub {return}
+ if $] >= 5.006;
+
+ # sanity checks
+ if ( !$self->plan ) {
+ $self->_add_error('No plan found in TAP output');
+ }
+ else {
+ $self->is_good_plan(1) unless defined $self->is_good_plan;
+ }
+ if ( $self->tests_run != ( $self->tests_planned || 0 ) ) {
+ $self->is_good_plan(0);
+ if ( defined( my $planned = $self->tests_planned ) ) {
+ my $ran = $self->tests_run;
+ $self->_add_error(
+ "Bad plan. You planned $planned tests but ran $ran.");
+ }
+ }
+ if ( $self->tests_run != ( $self->passed + $self->failed ) ) {
+
+ # this should never happen
+ my $actual = $self->tests_run;
+ my $passed = $self->passed;
+ my $failed = $self->failed;
+ $self->_croak( "Panic: planned test count ($actual) did not equal "
+ . "sum of passed ($passed) and failed ($failed) tests!" );
+ }
+
+ $self->is_good_plan(0) unless defined $self->is_good_plan;
+
+ unless ( $self->parse_errors ) {
+ # Optimise storage where possible
+ if ( $self->tests_run == @{$self->{passed}} ) {
+ $self->{passed} = $self->tests_run;
+ }
+ if ( $self->tests_run == @{$self->{actual_passed}} ) {
+ $self->{actual_passed} = $self->tests_run;
+ }
+ }
+
+ return $self;
+}
+
+=head3 C<delete_spool>
+
+Delete and return the spool.
+
+ my $fh = $parser->delete_spool;
+
+=cut
+
+sub delete_spool {
+ my $self = shift;
+
+ return delete $self->{_spool};
+}
+
+##############################################################################
+
+=head1 CALLBACKS
+
+As mentioned earlier, a "callback" key may be added to the
+C<TAP::Parser> constructor. If present, each callback corresponding to a
+given result type will be called with the result as the argument if the
+C<run> method is used. The callback is expected to be a subroutine
+reference (or anonymous subroutine) which is invoked with the parser
+result as its argument.
+
+ my %callbacks = (
+ test => \&test_callback,
+ plan => \&plan_callback,
+ comment => \&comment_callback,
+ bailout => \&bailout_callback,
+ unknown => \&unknown_callback,
+ );
+
+ my $aggregator = TAP::Parser::Aggregator->new;
+ for my $file ( @test_files ) {
+ my $parser = TAP::Parser->new(
+ {
+ source => $file,
+ callbacks => \%callbacks,
+ }
+ );
+ $parser->run;
+ $aggregator->add( $file, $parser );
+ }
+
+Callbacks may also be added like this:
+
+ $parser->callback( test => \&test_callback );
+ $parser->callback( plan => \&plan_callback );
+
+The following keys allowed for callbacks. These keys are case-sensitive.
+
+=over 4
+
+=item * C<test>
+
+Invoked if C<< $result->is_test >> returns true.
+
+=item * C<version>
+
+Invoked if C<< $result->is_version >> returns true.
+
+=item * C<plan>
+
+Invoked if C<< $result->is_plan >> returns true.
+
+=item * C<comment>
+
+Invoked if C<< $result->is_comment >> returns true.
+
+=item * C<bailout>
+
+Invoked if C<< $result->is_unknown >> returns true.
+
+=item * C<yaml>
+
+Invoked if C<< $result->is_yaml >> returns true.
+
+=item * C<unknown>
+
+Invoked if C<< $result->is_unknown >> returns true.
+
+=item * C<ELSE>
+
+If a result does not have a callback defined for it, this callback will
+be invoked. Thus, if all of the previous result types are specified as
+callbacks, this callback will I<never> be invoked.
+
+=item * C<ALL>
+
+This callback will always be invoked and this will happen for each
+result after one of the above callbacks is invoked. For example, if
+L<Term::ANSIColor> is loaded, you could use the following to color your
+test output:
+
+ my %callbacks = (
+ test => sub {
+ my $test = shift;
+ if ( $test->is_ok && not $test->directive ) {
+ # normal passing test
+ print color 'green';
+ }
+ elsif ( !$test->is_ok ) { # even if it's TODO
+ print color 'white on_red';
+ }
+ elsif ( $test->has_skip ) {
+ print color 'white on_blue';
+
+ }
+ elsif ( $test->has_todo ) {
+ print color 'white';
+ }
+ },
+ ELSE => sub {
+ # plan, comment, and so on (anything which isn't a test line)
+ print color 'black on_white';
+ },
+ ALL => sub {
+ # now print them
+ print shift->as_string;
+ print color 'reset';
+ print "\n";
+ },
+ );
+
+=item * C<EOF>
+
+Invoked when there are no more lines to be parsed. Since there is no
+accompanying L<TAP::Parser::Result> object the C<TAP::Parser> object is
+passed instead.
+
+=back
+
+=head1 TAP GRAMMAR
+
+If you're looking for an EBNF grammar, see L<TAP::Parser::Grammar>.
+
+=head1 BACKWARDS COMPATIBILITY
+
+The Perl-QA list attempted to ensure backwards compatibility with
+L<Test::Harness>. However, there are some minor differences.
+
+=head2 Differences
+
+=over 4
+
+=item * TODO plans
+
+A little-known feature of L<Test::Harness> is that it supported TODO
+lists in the plan:
+
+ 1..2 todo 2
+ ok 1 - We have liftoff
+ not ok 2 - Anti-gravity device activated
+
+Under L<Test::Harness>, test number 2 would I<pass> because it was
+listed as a TODO test on the plan line. However, we are not aware of
+anyone actually using this feature and hard-coding test numbers is
+discouraged because it's very easy to add a test and break the test
+number sequence. This makes test suites very fragile. Instead, the
+following should be used:
+
+ 1..2
+ ok 1 - We have liftoff
+ not ok 2 - Anti-gravity device activated # TODO
+
+=item * 'Missing' tests
+
+It rarely happens, but sometimes a harness might encounter
+'missing tests:
+
+ ok 1
+ ok 2
+ ok 15
+ ok 16
+ ok 17
+
+L<Test::Harness> would report tests 3-14 as having failed. For the
+C<TAP::Parser>, these tests are not considered failed because they've
+never run. They're reported as parse failures (tests out of sequence).
+
+=back
+
+=head1 SUBCLASSING
+
+If you find you need to provide custom functionality (as you would have using
+L<Test::Harness::Straps>), you're in luck: C<TAP::Parser> and friends are
+designed to be easily plugged-into and/or subclassed.
+
+Before you start, it's important to know a few things:
+
+=over 2
+
+=item 1
+
+All C<TAP::*> objects inherit from L<TAP::Object>.
+
+=item 2
+
+Many C<TAP::*> classes have a I<SUBCLASSING> section to guide you.
+
+=item 3
+
+Note that C<TAP::Parser> is designed to be the central "maker" - ie: it is
+responsible for creating most new objects in the C<TAP::Parser::*> namespace.
+
+This makes it possible for you to have a single point of configuring what
+subclasses should be used, which means that in many cases you'll find
+you only need to sub-class one of the parser's components.
+
+The exception to this rule are I<SourceHandlers> & I<Iterators>, but those are
+both created with customizable I<IteratorFactory>.
+
+=item 4
+
+By subclassing, you may end up overriding undocumented methods. That's not
+a bad thing per se, but be forewarned that undocumented methods may change
+without warning from one release to the next - we cannot guarantee backwards
+compatibility. If any I<documented> method needs changing, it will be
+deprecated first, and changed in a later release.
+
+=back
+
+=head2 Parser Components
+
+=head3 Sources
+
+A TAP parser consumes input from a single I<raw source> of TAP, which could come
+from anywhere (a file, an executable, a database, an IO handle, a URI, etc..).
+The source gets bundled up in a L<TAP::Parser::Source> object which gathers some
+meta data about it. The parser then uses a L<TAP::Parser::IteratorFactory> to
+determine which L<TAP::Parser::SourceHandler> to use to turn the raw source
+into a stream of TAP by way of L</Iterators>.
+
+If you simply want C<TAP::Parser> to handle a new source of TAP you probably
+don't need to subclass C<TAP::Parser> itself. Rather, you'll need to create a
+new L<TAP::Parser::SourceHandler> class, and just plug it into the parser using
+the I<sources> param to L</new>. Before you start writing one, read through
+L<TAP::Parser::IteratorFactory> to get a feel for how the system works first.
+
+If you find you really need to use your own iterator factory you can still do
+so without sub-classing C<TAP::Parser> by setting L</iterator_factory_class>.
+
+If you just need to customize the objects on creation, subclass L<TAP::Parser>
+and override L</make_iterator_factory>.
+
+Note that C<make_source> & C<make_perl_source> have been I<DEPRECATED> and
+are now removed.
+
+=head3 Iterators
+
+A TAP parser uses I<iterators> to loop through the I<stream> of TAP read in
+from the I<source> it was given. There are a few types of Iterators available
+by default, all sub-classes of L<TAP::Parser::Iterator>. Choosing which
+iterator to use is the responsibility of the I<iterator factory>, though it
+simply delegates to the I<Source Handler> it uses.
+
+If you're writing your own L<TAP::Parser::SourceHandler>, you may need to
+create your own iterators too. If so you'll need to subclass
+L<TAP::Parser::Iterator>.
+
+Note that L</make_iterator> has been I<DEPRECATED> and is now removed.
+
+=head3 Results
+
+A TAP parser creates L<TAP::Parser::Result>s as it iterates through the
+input I<stream>. There are quite a few result types available; choosing
+which class to use is the responsibility of the I<result factory>.
+
+To create your own result types you have two options:
+
+=over 2
+
+=item option 1
+
+Subclass L<TAP::Parser::Result> and register your new result type/class with
+the default L<TAP::Parser::ResultFactory>.
+
+=item option 2
+
+Subclass L<TAP::Parser::ResultFactory> itself and implement your own
+L<TAP::Parser::Result> creation logic. Then you'll need to customize the
+class used by your parser by setting the C<result_factory_class> parameter.
+See L</new> for more details.
+
+=back
+
+If you need to customize the objects on creation, subclass L<TAP::Parser> and
+override L</make_result>.
+
+=head3 Grammar
+
+L<TAP::Parser::Grammar> is the heart of the parser. It tokenizes the TAP
+input I<stream> and produces results. If you need to customize its behaviour
+you should probably familiarize yourself with the source first. Enough
+lecturing.
+
+Subclass L<TAP::Parser::Grammar> and customize your parser by setting the
+C<grammar_class> parameter. See L</new> for more details.
+
+If you need to customize the objects on creation, subclass L<TAP::Parser> and
+override L</make_grammar>
+
+=head1 ACKNOWLEDGMENTS
+
+All of the following have helped. Bug reports, patches, (im)moral
+support, or just words of encouragement have all been forthcoming.
+
+=over 4
+
+=item * Michael Schwern
+
+=item * Andy Lester
+
+=item * chromatic
+
+=item * GEOFFR
+
+=item * Shlomi Fish
+
+=item * Torsten Schoenfeld
+
+=item * Jerry Gay
+
+=item * Aristotle
+
+=item * Adam Kennedy
+
+=item * Yves Orton
+
+=item * Adrian Howard
+
+=item * Sean & Lil
+
+=item * Andreas J. Koenig
+
+=item * Florian Ragwitz
+
+=item * Corion
+
+=item * Mark Stosberg
+
+=item * Matt Kraai
+
+=item * David Wheeler
+
+=item * Alex Vandiver
+
+=item * Cosimo Streppone
+
+=item * Ville Skyttä
+
+=back
+
+=head1 AUTHORS
+
+Curtis "Ovid" Poe <ovid@cpan.org>
+
+Andy Armstong <andy@hexten.net>
+
+Eric Wilhelm @ <ewilhelm at cpan dot org>
+
+Michael Peters <mpeters at plusthree dot com>
+
+Leif Eriksen <leif dot eriksen at bigpond dot com>
+
+Steve Purkis <spurkis@cpan.org>
+
+Nicholas Clark <nick@ccl4.org>
+
+Lee Johnson <notfadeaway at btinternet dot com>
+
+Philippe Bruhat <book@cpan.org>
+
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-test-harness@rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Harness>.
+We will be notified, and then you'll automatically be notified of
+progress on your bug as we make changes.
+
+Obviously, bugs which include patches are best. If you prefer, you can
+patch against bleed by via anonymous checkout of the latest version:
+
+ git clone git://github.com/Perl-Toolchain-Gang/Test-Harness.git
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2006-2008 Curtis "Ovid" Poe, 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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Aggregator.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Aggregator.pm
new file mode 100755
index 0000000000..dac0f9a43e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Aggregator.pm
@@ -0,0 +1,414 @@
+package TAP::Parser::Aggregator;
+
+use strict;
+use warnings;
+use Benchmark;
+
+use base 'TAP::Object';
+
+=head1 NAME
+
+TAP::Parser::Aggregator - Aggregate TAP::Parser results
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Aggregator;
+
+ my $aggregate = TAP::Parser::Aggregator->new;
+ $aggregate->add( 't/00-load.t', $load_parser );
+ $aggregate->add( 't/10-lex.t', $lex_parser );
+
+ my $summary = <<'END_SUMMARY';
+ Passed: %s
+ Failed: %s
+ Unexpectedly succeeded: %s
+ END_SUMMARY
+ printf $summary,
+ scalar $aggregate->passed,
+ scalar $aggregate->failed,
+ scalar $aggregate->todo_passed;
+
+=head1 DESCRIPTION
+
+C<TAP::Parser::Aggregator> collects parser objects and allows
+reporting/querying their aggregate results.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $aggregate = TAP::Parser::Aggregator->new;
+
+Returns a new C<TAP::Parser::Aggregator> object.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+my %SUMMARY_METHOD_FOR;
+
+BEGIN { # install summary methods
+ %SUMMARY_METHOD_FOR = map { $_ => $_ } qw(
+ failed
+ parse_errors
+ passed
+ skipped
+ todo
+ todo_passed
+ total
+ wait
+ exit
+ );
+ $SUMMARY_METHOD_FOR{total} = 'tests_run';
+ $SUMMARY_METHOD_FOR{planned} = 'tests_planned';
+
+ for my $method ( keys %SUMMARY_METHOD_FOR ) {
+ next if 'total' eq $method;
+ no strict 'refs';
+ *$method = sub {
+ my $self = shift;
+ return wantarray
+ ? @{ $self->{"descriptions_for_$method"} }
+ : $self->{$method};
+ };
+ }
+} # end install summary methods
+
+sub _initialize {
+ my ($self) = @_;
+ $self->{parser_for} = {};
+ $self->{parse_order} = [];
+ for my $summary ( keys %SUMMARY_METHOD_FOR ) {
+ $self->{$summary} = 0;
+ next if 'total' eq $summary;
+ $self->{"descriptions_for_$summary"} = [];
+ }
+ return $self;
+}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<add>
+
+ $aggregate->add( $description => $parser );
+
+The C<$description> is usually a test file name (but only by
+convention.) It is used as a unique identifier (see e.g.
+L<"parsers">.) Reusing a description is a fatal error.
+
+The C<$parser> is a L<TAP::Parser|TAP::Parser> object.
+
+=cut
+
+sub add {
+ my ( $self, $description, $parser ) = @_;
+ if ( exists $self->{parser_for}{$description} ) {
+ $self->_croak( "You already have a parser for ($description)."
+ . " Perhaps you have run the same test twice." );
+ }
+ push @{ $self->{parse_order} } => $description;
+ $self->{parser_for}{$description} = $parser;
+
+ while ( my ( $summary, $method ) = each %SUMMARY_METHOD_FOR ) {
+
+ # Slightly nasty. Instead we should maybe have 'cooked' accessors
+ # for results that may be masked by the parser.
+ next
+ if ( $method eq 'exit' || $method eq 'wait' )
+ && $parser->ignore_exit;
+
+ if ( my $count = $parser->$method() ) {
+ $self->{$summary} += $count;
+ push @{ $self->{"descriptions_for_$summary"} } => $description;
+ }
+ }
+
+ return $self;
+}
+
+##############################################################################
+
+=head3 C<parsers>
+
+ my $count = $aggregate->parsers;
+ my @parsers = $aggregate->parsers;
+ my @parsers = $aggregate->parsers(@descriptions);
+
+In scalar context without arguments, this method returns the number of parsers
+aggregated. In list context without arguments, returns the parsers in the
+order they were added.
+
+If C<@descriptions> is given, these correspond to the keys used in each
+call to the add() method. Returns an array of the requested parsers (in
+the requested order) in list context or an array reference in scalar
+context.
+
+Requesting an unknown identifier is a fatal error.
+
+=cut
+
+sub parsers {
+ my $self = shift;
+ return $self->_get_parsers(@_) if @_;
+ my $descriptions = $self->{parse_order};
+ my @parsers = @{ $self->{parser_for} }{@$descriptions};
+
+ # Note: Because of the way context works, we must assign the parsers to
+ # the @parsers array or else this method does not work as documented.
+ return @parsers;
+}
+
+sub _get_parsers {
+ my ( $self, @descriptions ) = @_;
+ my @parsers;
+ for my $description (@descriptions) {
+ $self->_croak("A parser for ($description) could not be found")
+ unless exists $self->{parser_for}{$description};
+ push @parsers => $self->{parser_for}{$description};
+ }
+ return wantarray ? @parsers : \@parsers;
+}
+
+=head3 C<descriptions>
+
+Get an array of descriptions in the order in which they were added to
+the aggregator.
+
+=cut
+
+sub descriptions { @{ shift->{parse_order} || [] } }
+
+=head3 C<start>
+
+Call C<start> immediately before adding any results to the aggregator.
+Among other times it records the start time for the test run.
+
+=cut
+
+sub start {
+ my $self = shift;
+ $self->{start_time} = Benchmark->new;
+}
+
+=head3 C<stop>
+
+Call C<stop> immediately after adding all test results to the aggregator.
+
+=cut
+
+sub stop {
+ my $self = shift;
+ $self->{end_time} = Benchmark->new;
+}
+
+=head3 C<elapsed>
+
+Elapsed returns a L<Benchmark> object that represents the running time
+of the aggregated tests. In order for C<elapsed> to be valid you must
+call C<start> before running the tests and C<stop> immediately
+afterwards.
+
+=cut
+
+sub elapsed {
+ my $self = shift;
+
+ require Carp;
+ Carp::croak
+ q{Can't call elapsed without first calling start and then stop}
+ unless defined $self->{start_time} && defined $self->{end_time};
+ return timediff( $self->{end_time}, $self->{start_time} );
+}
+
+=head3 C<elapsed_timestr>
+
+Returns a formatted string representing the runtime returned by
+C<elapsed()>. This lets the caller not worry about Benchmark.
+
+=cut
+
+sub elapsed_timestr {
+ my $self = shift;
+
+ my $elapsed = $self->elapsed;
+
+ return timestr($elapsed);
+}
+
+=head3 C<all_passed>
+
+Return true if all the tests passed and no parse errors were detected.
+
+=cut
+
+sub all_passed {
+ my $self = shift;
+ return
+ $self->total
+ && $self->total == $self->passed
+ && !$self->has_errors;
+}
+
+=head3 C<get_status>
+
+Get a single word describing the status of the aggregated tests.
+Depending on the outcome of the tests returns 'PASS', 'FAIL' or
+'NOTESTS'. This token is understood by L<CPAN::Reporter>.
+
+=cut
+
+sub get_status {
+ my $self = shift;
+
+ my $total = $self->total;
+ my $passed = $self->passed;
+
+ return
+ ( $self->has_errors || $total != $passed ) ? 'FAIL'
+ : $total ? 'PASS'
+ : 'NOTESTS';
+}
+
+##############################################################################
+
+=head2 Summary methods
+
+Each of the following methods will return the total number of corresponding
+tests if called in scalar context. If called in list context, returns the
+descriptions of the parsers which contain the corresponding tests (see C<add>
+for an explanation of description.
+
+=over 4
+
+=item * failed
+
+=item * parse_errors
+
+=item * passed
+
+=item * planned
+
+=item * skipped
+
+=item * todo
+
+=item * todo_passed
+
+=item * wait
+
+=item * exit
+
+=back
+
+For example, to find out how many tests unexpectedly succeeded (TODO tests
+which passed when they shouldn't):
+
+ my $count = $aggregate->todo_passed;
+ my @descriptions = $aggregate->todo_passed;
+
+Note that C<wait> and C<exit> are the totals of the wait and exit
+statuses of each of the tests. These values are totalled only to provide
+a true value if any of them are non-zero.
+
+=cut
+
+##############################################################################
+
+=head3 C<total>
+
+ my $tests_run = $aggregate->total;
+
+Returns the total number of tests run.
+
+=cut
+
+sub total { shift->{total} }
+
+##############################################################################
+
+=head3 C<has_problems>
+
+ if ( $parser->has_problems ) {
+ ...
+ }
+
+Identical to C<has_errors>, but also returns true if any TODO tests
+unexpectedly succeeded. This is more akin to "warnings".
+
+=cut
+
+sub has_problems {
+ my $self = shift;
+ return $self->todo_passed
+ || $self->has_errors;
+}
+
+##############################################################################
+
+=head3 C<has_errors>
+
+ if ( $parser->has_errors ) {
+ ...
+ }
+
+Returns true if I<any> of the parsers failed. This includes:
+
+=over 4
+
+=item * Failed tests
+
+=item * Parse errors
+
+=item * Bad exit or wait status
+
+=back
+
+=cut
+
+sub has_errors {
+ my $self = shift;
+ return
+ $self->failed
+ || $self->parse_errors
+ || $self->exit
+ || $self->wait;
+}
+
+##############################################################################
+
+=head3 C<todo_failed>
+
+ # deprecated in favor of 'todo_passed'. This method was horribly misnamed.
+
+This was a badly misnamed method. It indicates which TODO tests unexpectedly
+succeeded. Will now issue a warning and call C<todo_passed>.
+
+=cut
+
+sub todo_failed {
+ warn
+ '"todo_failed" is deprecated. Please use "todo_passed". See the docs.';
+ goto &todo_passed;
+}
+
+=head1 See Also
+
+L<TAP::Parser>
+
+L<TAP::Harness>
+
+=cut
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Grammar.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Grammar.pm
new file mode 100755
index 0000000000..0258ad3206
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Grammar.pm
@@ -0,0 +1,590 @@
+package TAP::Parser::Grammar;
+
+use strict;
+use warnings;
+
+use TAP::Parser::ResultFactory ();
+use TAP::Parser::YAMLish::Reader ();
+
+use base 'TAP::Object';
+
+=head1 NAME
+
+TAP::Parser::Grammar - A grammar for the Test Anything Protocol.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Grammar;
+ my $grammar = $self->make_grammar({
+ iterator => $tap_parser_iterator,
+ parser => $tap_parser,
+ version => 12,
+ });
+
+ my $result = $grammar->tokenize;
+
+=head1 DESCRIPTION
+
+C<TAP::Parser::Grammar> tokenizes lines from a L<TAP::Parser::Iterator> and
+constructs L<TAP::Parser::Result> subclasses to represent the tokens.
+
+Do not attempt to use this class directly. It won't make sense. It's mainly
+here to ensure that we will be able to have pluggable grammars when TAP is
+expanded at some future date (plus, this stuff was really cluttering the
+parser).
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $grammar = TAP::Parser::Grammar->new({
+ iterator => $iterator,
+ parser => $parser,
+ version => $version,
+ });
+
+Returns L<TAP::Parser> grammar object that will parse the TAP stream from the
+specified iterator. Both C<iterator> and C<parser> are required arguments.
+If C<version> is not set it defaults to C<12> (see L</set_version> for more
+details).
+
+=cut
+
+# new() implementation supplied by TAP::Object
+sub _initialize {
+ my ( $self, $args ) = @_;
+ $self->{iterator} = $args->{iterator}; # TODO: accessor
+ $self->{iterator} ||= $args->{stream}; # deprecated
+ $self->{parser} = $args->{parser}; # TODO: accessor
+ $self->set_version( $args->{version} || 12 );
+ return $self;
+}
+
+my %language_for;
+
+{
+
+ # XXX the 'not' and 'ok' might be on separate lines in VMS ...
+ my $ok = qr/(?:not )?ok\b/;
+ my $num = qr/\d+/;
+
+ my %v12 = (
+ version => {
+ syntax => qr/^TAP\s+version\s+(\d+)\s*\z/i,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my $version = $1;
+ return $self->_make_version_token( $line, $version, );
+ },
+ },
+ plan => {
+ syntax => qr/^1\.\.(\d+)\s*(.*)\z/,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my ( $tests_planned, $tail ) = ( $1, $2 );
+ my $explanation = undef;
+ my $skip = '';
+
+ if ( $tail =~ /^todo((?:\s+\d+)+)/ ) {
+ my @todo = split /\s+/, _trim($1);
+ return $self->_make_plan_token(
+ $line, $tests_planned, 'TODO',
+ '', \@todo
+ );
+ }
+ elsif ( 0 == $tests_planned ) {
+ $skip = 'SKIP';
+
+ # If we can't match # SKIP the directive should be undef.
+ ($explanation) = $tail =~ /^#\s*SKIP\S*\s+(.*)/i;
+ }
+ elsif ( $tail !~ /^\s*$/ ) {
+ return $self->_make_unknown_token($line);
+ }
+
+ $explanation = '' unless defined $explanation;
+
+ return $self->_make_plan_token(
+ $line, $tests_planned, $skip,
+ $explanation, []
+ );
+
+ },
+ },
+
+ # An optimization to handle the most common test lines without
+ # directives.
+ simple_test => {
+ syntax => qr/^($ok) \ ($num) (?:\ ([^#]+))? \z/x,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my ( $ok, $num, $desc ) = ( $1, $2, $3 );
+
+ return $self->_make_test_token(
+ $line, $ok, $num,
+ $desc
+ );
+ },
+ },
+ test => {
+ syntax => qr/^($ok) \s* ($num)? \s* (.*) \z/x,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my ( $ok, $num, $desc ) = ( $1, $2, $3 );
+ my ( $dir, $explanation ) = ( '', '' );
+ if ($desc =~ m/^ ( [^\\\#]* (?: \\. [^\\\#]* )* )
+ \# \s* (SKIP|TODO) \b \s* (.*) $/ix
+ )
+ {
+ ( $desc, $dir, $explanation ) = ( $1, $2, $3 );
+ }
+ return $self->_make_test_token(
+ $line, $ok, $num, $desc,
+ $dir, $explanation
+ );
+ },
+ },
+ comment => {
+ syntax => qr/^#(.*)/,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my $comment = $1;
+ return $self->_make_comment_token( $line, $comment );
+ },
+ },
+ bailout => {
+ syntax => qr/^\s*Bail out!\s*(.*)/,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my $explanation = $1;
+ return $self->_make_bailout_token(
+ $line,
+ $explanation
+ );
+ },
+ },
+ );
+
+ my %v13 = (
+ %v12,
+ plan => {
+ syntax => qr/^1\.\.(\d+)\s*(?:\s*#\s*SKIP\b(.*))?\z/i,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my ( $tests_planned, $explanation ) = ( $1, $2 );
+ my $skip
+ = ( 0 == $tests_planned || defined $explanation )
+ ? 'SKIP'
+ : '';
+ $explanation = '' unless defined $explanation;
+ return $self->_make_plan_token(
+ $line, $tests_planned, $skip,
+ $explanation, []
+ );
+ },
+ },
+ yaml => {
+ syntax => qr/^ (\s+) (---.*) $/x,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my ( $pad, $marker ) = ( $1, $2 );
+ return $self->_make_yaml_token( $pad, $marker );
+ },
+ },
+ pragma => {
+ syntax =>
+ qr/^ pragma \s+ ( [-+] \w+ \s* (?: , \s* [-+] \w+ \s* )* ) $/x,
+ handler => sub {
+ my ( $self, $line ) = @_;
+ my $pragmas = $1;
+ return $self->_make_pragma_token( $line, $pragmas );
+ },
+ },
+ );
+
+ %language_for = (
+ '12' => {
+ tokens => \%v12,
+ },
+ '13' => {
+ tokens => \%v13,
+ setup => sub {
+ shift->{iterator}->handle_unicode;
+ },
+ },
+ '14' => {
+ tokens => \%v13,
+ setup => sub {
+ shift->{iterator}->handle_unicode;
+ },
+ },
+ );
+}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<set_version>
+
+ $grammar->set_version(13);
+
+Tell the grammar which TAP syntax version to support. The lowest
+supported version is 12. Although 'TAP version' isn't valid version 12
+syntax it is accepted so that higher version numbers may be parsed.
+
+=cut
+
+sub set_version {
+ my $self = shift;
+ my $version = shift;
+
+ if ( my $language = $language_for{$version} ) {
+ $self->{version} = $version;
+ $self->{tokens} = $language->{tokens};
+
+ if ( my $setup = $language->{setup} ) {
+ $self->$setup();
+ }
+
+ $self->_order_tokens;
+ }
+ else {
+ require Carp;
+ Carp::croak("Unsupported syntax version: $version");
+ }
+}
+
+# Optimization to put the most frequent tokens first.
+sub _order_tokens {
+ my $self = shift;
+
+ my %copy = %{ $self->{tokens} };
+ my @ordered_tokens = grep {defined}
+ map { delete $copy{$_} } qw( simple_test test comment plan );
+ push @ordered_tokens, values %copy;
+
+ $self->{ordered_tokens} = \@ordered_tokens;
+}
+
+##############################################################################
+
+=head3 C<tokenize>
+
+ my $token = $grammar->tokenize;
+
+This method will return a L<TAP::Parser::Result> object representing the
+current line of TAP.
+
+=cut
+
+sub tokenize {
+ my $self = shift;
+
+ my $line = $self->{iterator}->next;
+ unless ( defined $line ) {
+ delete $self->{parser}; # break circular ref
+ return;
+ }
+
+ my $token;
+
+ for my $token_data ( @{ $self->{ordered_tokens} } ) {
+ if ( $line =~ $token_data->{syntax} ) {
+ my $handler = $token_data->{handler};
+ $token = $self->$handler($line);
+ last;
+ }
+ }
+
+ $token = $self->_make_unknown_token($line) unless $token;
+
+ return $self->{parser}->make_result($token);
+}
+
+##############################################################################
+
+=head3 C<token_types>
+
+ my @types = $grammar->token_types;
+
+Returns the different types of tokens which this grammar can parse.
+
+=cut
+
+sub token_types {
+ my $self = shift;
+ return keys %{ $self->{tokens} };
+}
+
+##############################################################################
+
+=head3 C<syntax_for>
+
+ my $syntax = $grammar->syntax_for($token_type);
+
+Returns a pre-compiled regular expression which will match a chunk of TAP
+corresponding to the token type. For example (not that you should really pay
+attention to this, C<< $grammar->syntax_for('comment') >> will return
+C<< qr/^#(.*)/ >>.
+
+=cut
+
+sub syntax_for {
+ my ( $self, $type ) = @_;
+ return $self->{tokens}->{$type}->{syntax};
+}
+
+##############################################################################
+
+=head3 C<handler_for>
+
+ my $handler = $grammar->handler_for($token_type);
+
+Returns a code reference which, when passed an appropriate line of TAP,
+returns the lexed token corresponding to that line. As a result, the basic
+TAP parsing loop looks similar to the following:
+
+ my @tokens;
+ my $grammar = TAP::Grammar->new;
+ LINE: while ( defined( my $line = $parser->_next_chunk_of_tap ) ) {
+ for my $type ( $grammar->token_types ) {
+ my $syntax = $grammar->syntax_for($type);
+ if ( $line =~ $syntax ) {
+ my $handler = $grammar->handler_for($type);
+ push @tokens => $grammar->$handler($line);
+ next LINE;
+ }
+ }
+ push @tokens => $grammar->_make_unknown_token($line);
+ }
+
+=cut
+
+sub handler_for {
+ my ( $self, $type ) = @_;
+ return $self->{tokens}->{$type}->{handler};
+}
+
+sub _make_version_token {
+ my ( $self, $line, $version ) = @_;
+ return {
+ type => 'version',
+ raw => $line,
+ version => $version,
+ };
+}
+
+sub _make_plan_token {
+ my ( $self, $line, $tests_planned, $directive, $explanation, $todo ) = @_;
+
+ if ( $directive eq 'SKIP'
+ && 0 != $tests_planned
+ && $self->{version} < 13 )
+ {
+ warn
+ "Specified SKIP directive in plan but more than 0 tests ($line)\n";
+ }
+
+ return {
+ type => 'plan',
+ raw => $line,
+ tests_planned => $tests_planned,
+ directive => $directive,
+ explanation => _trim($explanation),
+ todo_list => $todo,
+ };
+}
+
+sub _make_test_token {
+ my ( $self, $line, $ok, $num, $desc, $dir, $explanation ) = @_;
+ return {
+ ok => $ok,
+
+ # forcing this to be an integer (and not a string) reduces memory
+ # consumption. RT #84939
+ test_num => ( defined $num ? 0 + $num : undef ),
+ description => _trim($desc),
+ directive => ( defined $dir ? uc $dir : '' ),
+ explanation => _trim($explanation),
+ raw => $line,
+ type => 'test',
+ };
+}
+
+sub _make_unknown_token {
+ my ( $self, $line ) = @_;
+ return {
+ raw => $line,
+ type => 'unknown',
+ };
+}
+
+sub _make_comment_token {
+ my ( $self, $line, $comment ) = @_;
+ return {
+ type => 'comment',
+ raw => $line,
+ comment => _trim($comment)
+ };
+}
+
+sub _make_bailout_token {
+ my ( $self, $line, $explanation ) = @_;
+ return {
+ type => 'bailout',
+ raw => $line,
+ bailout => _trim($explanation)
+ };
+}
+
+sub _make_yaml_token {
+ my ( $self, $pad, $marker ) = @_;
+
+ my $yaml = TAP::Parser::YAMLish::Reader->new;
+
+ my $iterator = $self->{iterator};
+
+ # Construct a reader that reads from our input stripping leading
+ # spaces from each line.
+ my $leader = length($pad);
+ my $strip = qr{ ^ (\s{$leader}) (.*) $ }x;
+ my @extra = ($marker);
+ my $reader = sub {
+ return shift @extra if @extra;
+ my $line = $iterator->next;
+ return $2 if $line =~ $strip;
+ return;
+ };
+
+ my $data = $yaml->read($reader);
+
+ # Reconstitute input. This is convoluted. Maybe we should just
+ # record it on the way in...
+ chomp( my $raw = $yaml->get_raw );
+ $raw =~ s/^/$pad/mg;
+
+ return {
+ type => 'yaml',
+ raw => $raw,
+ data => $data
+ };
+}
+
+sub _make_pragma_token {
+ my ( $self, $line, $pragmas ) = @_;
+ return {
+ type => 'pragma',
+ raw => $line,
+ pragmas => [ split /\s*,\s*/, _trim($pragmas) ],
+ };
+}
+
+sub _trim {
+ my $data = shift;
+
+ return '' unless defined $data;
+
+ $data =~ s/^\s+//;
+ $data =~ s/\s+$//;
+ return $data;
+}
+
+1;
+
+=head1 TAP GRAMMAR
+
+B<NOTE:> This grammar is slightly out of date. There's still some discussion
+about it and a new one will be provided when we have things better defined.
+
+The L<TAP::Parser> does not use a formal grammar because TAP is essentially a
+stream-based protocol. In fact, it's quite legal to have an infinite stream.
+For the same reason that we don't apply regexes to streams, we're not using a
+formal grammar here. Instead, we parse the TAP in lines.
+
+For purposes for forward compatibility, any result which does not match the
+following grammar is currently referred to as
+L<TAP::Parser::Result::Unknown>. It is I<not> a parse error.
+
+A formal grammar would look similar to the following:
+
+ (*
+ For the time being, I'm cheating on the EBNF by allowing
+ certain terms to be defined by POSIX character classes by
+ using the following syntax:
+
+ digit ::= [:digit:]
+
+ As far as I am aware, that's not valid EBNF. Sue me. I
+ didn't know how to write "char" otherwise (Unicode issues).
+ Suggestions welcome.
+ *)
+
+ tap ::= version? { comment | unknown } leading_plan lines
+ |
+ lines trailing_plan {comment}
+
+ version ::= 'TAP version ' positiveInteger {positiveInteger} "\n"
+
+ leading_plan ::= plan skip_directive? "\n"
+
+ trailing_plan ::= plan "\n"
+
+ plan ::= '1..' nonNegativeInteger
+
+ lines ::= line {line}
+
+ line ::= (comment | test | unknown | bailout ) "\n"
+
+ test ::= status positiveInteger? description? directive?
+
+ status ::= 'not '? 'ok '
+
+ description ::= (character - (digit | '#')) {character - '#'}
+
+ directive ::= todo_directive | skip_directive
+
+ todo_directive ::= hash_mark 'TODO' ' ' {character}
+
+ skip_directive ::= hash_mark 'SKIP' ' ' {character}
+
+ comment ::= hash_mark {character}
+
+ hash_mark ::= '#' {' '}
+
+ bailout ::= 'Bail out!' {character}
+
+ unknown ::= { (character - "\n") }
+
+ (* POSIX character classes and other terminals *)
+
+ digit ::= [:digit:]
+ character ::= ([:print:] - "\n")
+ positiveInteger ::= ( digit - '0' ) {digit}
+ nonNegativeInteger ::= digit {digit}
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+If you I<really> want to subclass L<TAP::Parser>'s grammar the best thing to
+do is read through the code. There's no easy way of summarizing it here.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Iterator>,
+L<TAP::Parser::Result>,
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator.pm
new file mode 100755
index 0000000000..a1d66c6ef4
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator.pm
@@ -0,0 +1,162 @@
+package TAP::Parser::Iterator;
+
+use strict;
+use warnings;
+
+use base 'TAP::Object';
+
+=head1 NAME
+
+TAP::Parser::Iterator - Base class for TAP source iterators
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ # to subclass:
+ use TAP::Parser::Iterator ();
+ use base 'TAP::Parser::Iterator';
+ sub _initialize {
+ # see TAP::Object...
+ }
+
+ sub next_raw { ... }
+ sub wait { ... }
+ sub exit { ... }
+
+=head1 DESCRIPTION
+
+This is a simple iterator base class that defines L<TAP::Parser>'s iterator
+API. Iterators are typically created from L<TAP::Parser::SourceHandler>s.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Create an iterator. Provided by L<TAP::Object>.
+
+=head2 Instance Methods
+
+=head3 C<next>
+
+ while ( my $item = $iter->next ) { ... }
+
+Iterate through it, of course.
+
+=head3 C<next_raw>
+
+B<Note:> this method is abstract and should be overridden.
+
+ while ( my $item = $iter->next_raw ) { ... }
+
+Iterate raw input without applying any fixes for quirky input syntax.
+
+=cut
+
+sub next {
+ my $self = shift;
+ my $line = $self->next_raw;
+
+ # vms nit: When encountering 'not ok', vms often has the 'not' on a line
+ # by itself:
+ # not
+ # ok 1 - 'I hate VMS'
+ if ( defined($line) and $line =~ /^\s*not\s*$/ ) {
+ $line .= ( $self->next_raw || '' );
+ }
+
+ return $line;
+}
+
+sub next_raw {
+ require Carp;
+ my $msg = Carp::longmess('abstract method called directly!');
+ $_[0]->_croak($msg);
+}
+
+=head3 C<handle_unicode>
+
+If necessary switch the input stream to handle unicode. This only has
+any effect for I/O handle based streams.
+
+The default implementation does nothing.
+
+=cut
+
+sub handle_unicode { }
+
+=head3 C<get_select_handles>
+
+Return a list of filehandles that may be used upstream in a select()
+call to signal that this Iterator is ready. Iterators that are not
+handle-based should return an empty list.
+
+The default implementation does nothing.
+
+=cut
+
+sub get_select_handles {
+ return;
+}
+
+=head3 C<wait>
+
+B<Note:> this method is abstract and should be overridden.
+
+ my $wait_status = $iter->wait;
+
+Return the C<wait> status for this iterator.
+
+=head3 C<exit>
+
+B<Note:> this method is abstract and should be overridden.
+
+ my $wait_status = $iter->exit;
+
+Return the C<exit> status for this iterator.
+
+=cut
+
+sub wait {
+ require Carp;
+ my $msg = Carp::longmess('abstract method called directly!');
+ $_[0]->_croak($msg);
+}
+
+sub exit {
+ require Carp;
+ my $msg = Carp::longmess('abstract method called directly!');
+ $_[0]->_croak($msg);
+}
+
+1;
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+You must override the abstract methods as noted above.
+
+=head2 Example
+
+L<TAP::Parser::Iterator::Array> is probably the easiest example to follow.
+There's not much point repeating it here.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Iterator::Array>,
+L<TAP::Parser::Iterator::Stream>,
+L<TAP::Parser::Iterator::Process>,
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Array.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Array.pm
new file mode 100755
index 0000000000..ceb8198baf
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Array.pm
@@ -0,0 +1,100 @@
+package TAP::Parser::Iterator::Array;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Iterator';
+
+=head1 NAME
+
+TAP::Parser::Iterator::Array - Iterator for array-based TAP sources
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Iterator::Array;
+ my @data = ('foo', 'bar', baz');
+ my $it = TAP::Parser::Iterator::Array->new(\@data);
+ my $line = $it->next;
+
+=head1 DESCRIPTION
+
+This is a simple iterator wrapper for arrays of scalar content, used by
+L<TAP::Parser>. Unless you're writing a plugin or subclassing, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Create an iterator. Takes one argument: an C<$array_ref>
+
+=head2 Instance Methods
+
+=head3 C<next>
+
+Iterate through it, of course.
+
+=head3 C<next_raw>
+
+Iterate raw input without applying any fixes for quirky input syntax.
+
+=head3 C<wait>
+
+Get the wait status for this iterator. For an array iterator this will always
+be zero.
+
+=head3 C<exit>
+
+Get the exit status for this iterator. For an array iterator this will always
+be zero.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my ( $self, $thing ) = @_;
+ chomp @$thing;
+ $self->{idx} = 0;
+ $self->{array} = $thing;
+ $self->{exit} = undef;
+ return $self;
+}
+
+sub wait { shift->exit }
+
+sub exit {
+ my $self = shift;
+ return 0 if $self->{idx} >= @{ $self->{array} };
+ return;
+}
+
+sub next_raw {
+ my $self = shift;
+ return $self->{array}->[ $self->{idx}++ ];
+}
+
+1;
+
+=head1 ATTRIBUTION
+
+Originally ripped off from L<Test::Harness>.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Iterator>,
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Process.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Process.pm
new file mode 100755
index 0000000000..249ecde9a5
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Process.pm
@@ -0,0 +1,381 @@
+package TAP::Parser::Iterator::Process;
+
+use strict;
+use warnings;
+
+use Config;
+use IO::Handle;
+
+use base 'TAP::Parser::Iterator';
+
+my $IS_WIN32 = ( $^O =~ /^(MS)?Win32$/ );
+
+=head1 NAME
+
+TAP::Parser::Iterator::Process - Iterator for process-based TAP sources
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Iterator::Process;
+ my %args = (
+ command => ['python', 'setup.py', 'test'],
+ merge => 1,
+ setup => sub { ... },
+ teardown => sub { ... },
+ );
+ my $it = TAP::Parser::Iterator::Process->new(\%args);
+ my $line = $it->next;
+
+=head1 DESCRIPTION
+
+This is a simple iterator wrapper for executing external processes, used by
+L<TAP::Parser>. Unless you're writing a plugin or subclassing, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Create an iterator. Expects one argument containing a hashref of the form:
+
+ command => \@command_to_execute
+ merge => $attempt_merge_stderr_and_stdout?
+ setup => $callback_to_setup_command
+ teardown => $callback_to_teardown_command
+
+Tries to uses L<IPC::Open3> & L<IO::Select> to communicate with the spawned
+process if they are available. Falls back onto C<open()>.
+
+=head2 Instance Methods
+
+=head3 C<next>
+
+Iterate through the process output, of course.
+
+=head3 C<next_raw>
+
+Iterate raw input without applying any fixes for quirky input syntax.
+
+=head3 C<wait>
+
+Get the wait status for this iterator's process.
+
+=head3 C<exit>
+
+Get the exit status for this iterator's process.
+
+=cut
+
+{
+
+ no warnings 'uninitialized';
+ # get around a catch22 in the test suite that causes failures on Win32:
+ local $SIG{__DIE__} = undef;
+ eval { require POSIX; &POSIX::WEXITSTATUS(0) };
+ if ($@) {
+ *_wait2exit = sub { $_[1] >> 8 };
+ }
+ else {
+ *_wait2exit = sub { POSIX::WEXITSTATUS( $_[1] ) }
+ }
+}
+
+sub _use_open3 {
+ my $self = shift;
+ return unless $Config{d_fork} || $IS_WIN32;
+ for my $module (qw( IPC::Open3 IO::Select )) {
+ eval "use $module";
+ return if $@;
+ }
+ return 1;
+}
+
+{
+ my $got_unicode;
+
+ sub _get_unicode {
+ return $got_unicode if defined $got_unicode;
+ eval 'use Encode qw(decode_utf8);';
+ $got_unicode = $@ ? 0 : 1;
+
+ }
+}
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my ( $self, $args ) = @_;
+
+ my @command = @{ delete $args->{command} || [] }
+ or die "Must supply a command to execute";
+
+ $self->{command} = [@command];
+
+ # Private. Used to frig with chunk size during testing.
+ my $chunk_size = delete $args->{_chunk_size} || 65536;
+
+ my $merge = delete $args->{merge};
+ my ( $pid, $err, $sel );
+
+ if ( my $setup = delete $args->{setup} ) {
+ $setup->(@command);
+ }
+
+ my $out = IO::Handle->new;
+
+ if ( $self->_use_open3 ) {
+
+ # HOTPATCH {{{
+ my $xclose = \&IPC::Open3::xclose;
+ no warnings;
+ local *IPC::Open3::xclose = sub {
+ my $fh = shift;
+ no strict 'refs';
+ return if ( fileno($fh) == fileno(STDIN) );
+ $xclose->($fh);
+ };
+
+ # }}}
+
+ if ($IS_WIN32) {
+ $err = $merge ? '' : '>&STDERR';
+ eval {
+ $pid = open3(
+ '<&STDIN', $out, $merge ? '' : $err,
+ @command
+ );
+ };
+ die "Could not execute (@command): $@" if $@;
+ if ( $] >= 5.006 ) {
+ binmode($out, ":crlf");
+ }
+ }
+ else {
+ $err = $merge ? '' : IO::Handle->new;
+ eval { $pid = open3( '<&STDIN', $out, $err, @command ); };
+ die "Could not execute (@command): $@" if $@;
+ $sel = $merge ? undef : IO::Select->new( $out, $err );
+ }
+ }
+ else {
+ $err = '';
+ my $exec = shift @command;
+ $exec = qq{"$exec"} if $exec =~ /\s/ and -x $exec;
+ my $command
+ = join( ' ', $exec, map { $_ =~ /\s/ ? qq{"$_"} : $_ } @command );
+ open( $out, "$command|" )
+ or die "Could not execute ($command): $!";
+ }
+
+ $self->{out} = $out;
+ $self->{err} = $err;
+ $self->{sel} = $sel;
+ $self->{pid} = $pid;
+ $self->{exit} = undef;
+ $self->{chunk_size} = $chunk_size;
+
+ if ( my $teardown = delete $args->{teardown} ) {
+ $self->{teardown} = sub {
+ $teardown->(@command);
+ };
+ }
+
+ return $self;
+}
+
+=head3 C<handle_unicode>
+
+Upgrade the input stream to handle UTF8.
+
+=cut
+
+sub handle_unicode {
+ my $self = shift;
+
+ if ( $self->{sel} ) {
+ if ( _get_unicode() ) {
+
+ # Make sure our iterator has been constructed and...
+ my $next = $self->{_next} ||= $self->_next;
+
+ # ...wrap it to do UTF8 casting
+ $self->{_next} = sub {
+ my $line = $next->();
+ return decode_utf8($line) if defined $line;
+ return;
+ };
+ }
+ }
+ else {
+ if ( $] >= 5.008 ) {
+ eval 'binmode($self->{out}, ":utf8")';
+ }
+ }
+
+}
+
+##############################################################################
+
+sub wait { shift->{wait} }
+sub exit { shift->{exit} }
+
+sub _next {
+ my $self = shift;
+
+ if ( my $out = $self->{out} ) {
+ if ( my $sel = $self->{sel} ) {
+ my $err = $self->{err};
+ my @buf = ();
+ my $partial = ''; # Partial line
+ my $chunk_size = $self->{chunk_size};
+ return sub {
+ return shift @buf if @buf;
+
+ READ:
+ while ( my @ready = $sel->can_read ) {
+ for my $fh (@ready) {
+ my $got = sysread $fh, my ($chunk), $chunk_size;
+
+ if ( $got == 0 ) {
+ $sel->remove($fh);
+ }
+ elsif ( $fh == $err ) {
+ print STDERR $chunk; # echo STDERR
+ }
+ else {
+ $chunk = $partial . $chunk;
+ $partial = '';
+
+ # Make sure we have a complete line
+ unless ( substr( $chunk, -1, 1 ) eq "\n" ) {
+ my $nl = rindex $chunk, "\n";
+ if ( $nl == -1 ) {
+ $partial = $chunk;
+ redo READ;
+ }
+ else {
+ $partial = substr( $chunk, $nl + 1 );
+ $chunk = substr( $chunk, 0, $nl );
+ }
+ }
+
+ push @buf, split /\n/, $chunk;
+ return shift @buf if @buf;
+ }
+ }
+ }
+
+ # Return partial last line
+ if ( length $partial ) {
+ my $last = $partial;
+ $partial = '';
+ return $last;
+ }
+
+ $self->_finish;
+ return;
+ };
+ }
+ else {
+ return sub {
+ local $/ = "\n"; # to ensure lines
+ if ( defined( my $line = <$out> ) ) {
+ chomp $line;
+ return $line;
+ }
+ $self->_finish;
+ return;
+ };
+ }
+ }
+ else {
+ return sub {
+ $self->_finish;
+ return;
+ };
+ }
+}
+
+sub next_raw {
+ my $self = shift;
+ return ( $self->{_next} ||= $self->_next )->();
+}
+
+sub _finish {
+ my $self = shift;
+
+ my $status = $?;
+
+ # Avoid circular refs
+ $self->{_next} = sub {return}
+ if $] >= 5.006;
+
+ # If we have a subprocess we need to wait for it to terminate
+ if ( defined $self->{pid} ) {
+ if ( $self->{pid} == waitpid( $self->{pid}, 0 ) ) {
+ $status = $?;
+ }
+ }
+
+ ( delete $self->{out} )->close if $self->{out};
+
+ # If we have an IO::Select we also have an error handle to close.
+ if ( $self->{sel} ) {
+ ( delete $self->{err} )->close;
+ delete $self->{sel};
+ }
+ else {
+ $status = $?;
+ }
+
+ # Sometimes we get -1 on Windows. Presumably that means status not
+ # available.
+ $status = 0 if $IS_WIN32 && $status == -1;
+
+ $self->{wait} = $status;
+ $self->{exit} = $self->_wait2exit($status);
+
+ if ( my $teardown = $self->{teardown} ) {
+ $teardown->();
+ }
+
+ return $self;
+}
+
+=head3 C<get_select_handles>
+
+Return a list of filehandles that may be used upstream in a select()
+call to signal that this Iterator is ready. Iterators that are not
+handle based should return an empty list.
+
+=cut
+
+sub get_select_handles {
+ my $self = shift;
+ return grep $_, ( $self->{out}, $self->{err} );
+}
+
+1;
+
+=head1 ATTRIBUTION
+
+Originally ripped off from L<Test::Harness>.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Iterator>,
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Stream.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Stream.pm
new file mode 100755
index 0000000000..abee22906f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Iterator/Stream.pm
@@ -0,0 +1,116 @@
+package TAP::Parser::Iterator::Stream;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Iterator';
+
+=head1 NAME
+
+TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Iterator::Stream;
+ open( TEST, 'test.tap' );
+ my $it = TAP::Parser::Iterator::Stream->new(\*TEST);
+ my $line = $it->next;
+
+=head1 DESCRIPTION
+
+This is a simple iterator wrapper for reading from filehandles, used by
+L<TAP::Parser>. Unless you're writing a plugin or subclassing, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Create an iterator. Expects one argument containing a filehandle.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my ( $self, $thing ) = @_;
+ $self->{fh} = $thing;
+ return $self;
+}
+
+=head2 Instance Methods
+
+=head3 C<next>
+
+Iterate through it, of course.
+
+=head3 C<next_raw>
+
+Iterate raw input without applying any fixes for quirky input syntax.
+
+=head3 C<wait>
+
+Get the wait status for this iterator. Always returns zero.
+
+=head3 C<exit>
+
+Get the exit status for this iterator. Always returns zero.
+
+=cut
+
+sub wait { shift->exit }
+sub exit { shift->{fh} ? () : 0 }
+
+sub next_raw {
+ my $self = shift;
+ my $fh = $self->{fh};
+
+ if ( defined( my $line = <$fh> ) ) {
+ chomp $line;
+ return $line;
+ }
+ else {
+ $self->_finish;
+ return;
+ }
+}
+
+sub _finish {
+ my $self = shift;
+ close delete $self->{fh};
+}
+
+sub get_select_handles {
+ my $self = shift;
+
+ # return our handle in case it's a socket or pipe (select()-able)
+ return ( $self->{fh}, )
+ if (-S $self->{fh} || -p $self->{fh});
+
+ return;
+}
+
+1;
+
+=head1 ATTRIBUTION
+
+Originally ripped off from L<Test::Harness>.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Iterator>,
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/IteratorFactory.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/IteratorFactory.pm
new file mode 100755
index 0000000000..4353f0aa96
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/IteratorFactory.pm
@@ -0,0 +1,339 @@
+package TAP::Parser::IteratorFactory;
+
+use strict;
+use warnings;
+
+use Carp qw( confess );
+use File::Basename qw( fileparse );
+
+use base 'TAP::Object';
+
+use constant handlers => [];
+
+=head1 NAME
+
+TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use for a given Source
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::IteratorFactory;
+ my $factory = TAP::Parser::IteratorFactory->new({ %config });
+ my $iterator = $factory->make_iterator( $filename );
+
+=head1 DESCRIPTION
+
+This is a factory class that takes a L<TAP::Parser::Source> and runs it through all the
+registered L<TAP::Parser::SourceHandler>s to see which one should handle the source.
+
+If you're a plugin author, you'll be interested in how to L</register_handler>s,
+how L</detect_source> works.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Creates a new factory class:
+
+ my $sf = TAP::Parser::IteratorFactory->new( $config );
+
+C<$config> is optional. If given, sets L</config> and calls L</load_handlers>.
+
+=cut
+
+sub _initialize {
+ my ( $self, $config ) = @_;
+ $self->config( $config || {} )->load_handlers;
+ return $self;
+}
+
+=head3 C<register_handler>
+
+Registers a new L<TAP::Parser::SourceHandler> with this factory.
+
+ __PACKAGE__->register_handler( $handler_class );
+
+=head3 C<handlers>
+
+List of handlers that have been registered.
+
+=cut
+
+sub register_handler {
+ my ( $class, $dclass ) = @_;
+
+ confess("$dclass must implement can_handle & make_iterator methods!")
+ unless UNIVERSAL::can( $dclass, 'can_handle' )
+ && UNIVERSAL::can( $dclass, 'make_iterator' );
+
+ my $handlers = $class->handlers;
+ push @{$handlers}, $dclass
+ unless grep { $_ eq $dclass } @{$handlers};
+
+ return $class;
+}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<config>
+
+ my $cfg = $sf->config;
+ $sf->config({ Perl => { %config } });
+
+Chaining getter/setter for the configuration of the available source handlers.
+This is a hashref keyed on handler class whose values contain config to be passed
+onto the handlers during detection & creation. Class names may be fully qualified
+or abbreviated, eg:
+
+ # these are equivalent
+ $sf->config({ 'TAP::Parser::SourceHandler::Perl' => { %config } });
+ $sf->config({ 'Perl' => { %config } });
+
+=cut
+
+sub config {
+ my $self = shift;
+ return $self->{config} unless @_;
+ unless ( 'HASH' eq ref $_[0] ) {
+ $self->_croak('Argument to &config must be a hash reference');
+ }
+ $self->{config} = shift;
+ return $self;
+}
+
+sub _last_handler {
+ my $self = shift;
+ return $self->{last_handler} unless @_;
+ $self->{last_handler} = shift;
+ return $self;
+}
+
+sub _testing {
+ my $self = shift;
+ return $self->{testing} unless @_;
+ $self->{testing} = shift;
+ return $self;
+}
+
+##############################################################################
+
+=head3 C<load_handlers>
+
+ $sf->load_handlers;
+
+Loads the handler classes defined in L</config>. For example, given a config:
+
+ $sf->config({
+ MySourceHandler => { some => 'config' },
+ });
+
+C<load_handlers> will attempt to load the C<MySourceHandler> class by looking in
+C<@INC> for it in this order:
+
+ TAP::Parser::SourceHandler::MySourceHandler
+ MySourceHandler
+
+C<croak>s on error.
+
+=cut
+
+sub load_handlers {
+ my ($self) = @_;
+ for my $handler ( keys %{ $self->config } ) {
+ my $sclass = $self->_load_handler($handler);
+
+ # TODO: store which class we loaded anywhere?
+ }
+ return $self;
+}
+
+sub _load_handler {
+ my ( $self, $handler ) = @_;
+
+ my @errors;
+ for my $dclass ( "TAP::Parser::SourceHandler::$handler", $handler ) {
+ return $dclass
+ if UNIVERSAL::can( $dclass, 'can_handle' )
+ && UNIVERSAL::can( $dclass, 'make_iterator' );
+
+ eval "use $dclass";
+ if ( my $e = $@ ) {
+ push @errors, $e;
+ next;
+ }
+
+ return $dclass
+ if UNIVERSAL::can( $dclass, 'can_handle' )
+ && UNIVERSAL::can( $dclass, 'make_iterator' );
+ push @errors,
+ "handler '$dclass' does not implement can_handle & make_iterator";
+ }
+
+ $self->_croak(
+ "Cannot load handler '$handler': " . join( "\n", @errors ) );
+}
+
+##############################################################################
+
+=head3 C<make_iterator>
+
+ my $iterator = $src_factory->make_iterator( $source );
+
+Given a L<TAP::Parser::Source>, finds the most suitable L<TAP::Parser::SourceHandler>
+to use to create a L<TAP::Parser::Iterator> (see L</detect_source>). Dies on error.
+
+=cut
+
+sub make_iterator {
+ my ( $self, $source ) = @_;
+
+ $self->_croak('no raw source defined!') unless defined $source->raw;
+
+ $source->config( $self->config )->assemble_meta;
+
+ # is the raw source already an object?
+ return $source->raw
+ if ( $source->meta->{is_object}
+ && UNIVERSAL::isa( $source->raw, 'TAP::Parser::SourceHandler' ) );
+
+ # figure out what kind of source it is
+ my $sd_class = $self->detect_source($source);
+ $self->_last_handler($sd_class);
+
+ return if $self->_testing;
+
+ # create it
+ my $iterator = $sd_class->make_iterator($source);
+
+ return $iterator;
+}
+
+=head3 C<detect_source>
+
+Given a L<TAP::Parser::Source>, detects what kind of source it is and
+returns I<one> L<TAP::Parser::SourceHandler> (the most confident one). Dies
+on error.
+
+The detection algorithm works something like this:
+
+ for (@registered_handlers) {
+ # ask them how confident they are about handling this source
+ $confidence{$handler} = $handler->can_handle( $source )
+ }
+ # choose the most confident handler
+
+Ties are handled by choosing the first handler.
+
+=cut
+
+sub detect_source {
+ my ( $self, $source ) = @_;
+
+ confess('no raw source ref defined!') unless defined $source->raw;
+
+ # find a list of handlers that can handle this source:
+ my %confidence_for;
+ for my $handler ( @{ $self->handlers } ) {
+ my $confidence = $handler->can_handle($source);
+ # warn "handler: $handler: $confidence\n";
+ $confidence_for{$handler} = $confidence if $confidence;
+ }
+
+ if ( !%confidence_for ) {
+ # error: can't detect source
+ my $raw_source_short = substr( ${ $source->raw }, 0, 50 );
+ confess("Cannot detect source of '$raw_source_short'!");
+ return;
+ }
+
+ # if multiple handlers can handle it, choose the most confident one
+ my @handlers =
+ sort { $confidence_for{$b} <=> $confidence_for{$a} }
+ keys %confidence_for;
+
+ # Check for a tie.
+ if( @handlers > 1 &&
+ $confidence_for{$handlers[0]} == $confidence_for{$handlers[1]}
+ ) {
+ my $filename = $source->meta->{file}{basename};
+ die("There is a tie between $handlers[0] and $handlers[1].\n".
+ "Both voted $confidence_for{$handlers[0]} on $filename.\n");
+ }
+
+ # this is really useful for debugging handlers:
+ if ( $ENV{TAP_HARNESS_SOURCE_FACTORY_VOTES} ) {
+ warn(
+ "votes: ",
+ join( ', ', map {"$_: $confidence_for{$_}"} @handlers ),
+ "\n"
+ );
+ }
+
+ # return 1st
+ return $handlers[0];
+}
+
+1;
+
+__END__
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+=head2 Example
+
+If we've done things right, you'll probably want to write a new source,
+rather than sub-classing this (see L<TAP::Parser::SourceHandler> for that).
+
+But in case you find the need to...
+
+ package MyIteratorFactory;
+
+ use strict;
+
+ use base 'TAP::Parser::IteratorFactory';
+
+ # override source detection algorithm
+ sub detect_source {
+ my ($self, $raw_source_ref, $meta) = @_;
+ # do detective work, using $meta and whatever else...
+ }
+
+ 1;
+
+=head1 AUTHORS
+
+Steve Purkis
+
+=head1 ATTRIBUTION
+
+Originally ripped off from L<Test::Harness>.
+
+Moved out of L<TAP::Parser> & converted to a factory class to support
+extensible TAP source detective work by Steve Purkis.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::SourceHandler>,
+L<TAP::Parser::SourceHandler::File>,
+L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::RawTAP>,
+L<TAP::Parser::SourceHandler::Handle>,
+L<TAP::Parser::SourceHandler::Executable>
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Multiplexer.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Multiplexer.pm
new file mode 100755
index 0000000000..aa3e864d79
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Multiplexer.pm
@@ -0,0 +1,196 @@
+package TAP::Parser::Multiplexer;
+
+use strict;
+use warnings;
+
+use IO::Select;
+use Errno;
+
+use base 'TAP::Object';
+
+use constant IS_WIN32 => $^O =~ /^(MS)?Win32$/;
+use constant IS_VMS => $^O eq 'VMS';
+use constant SELECT_OK => !( IS_VMS || IS_WIN32 );
+
+=head1 NAME
+
+TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Multiplexer;
+
+ my $mux = TAP::Parser::Multiplexer->new;
+ $mux->add( $parser1, $stash1 );
+ $mux->add( $parser2, $stash2 );
+ while ( my ( $parser, $stash, $result ) = $mux->next ) {
+ # do stuff
+ }
+
+=head1 DESCRIPTION
+
+C<TAP::Parser::Multiplexer> gathers input from multiple TAP::Parsers.
+Internally it calls select on the input file handles for those parsers
+to wait for one or more of them to have input available.
+
+See L<TAP::Harness> for an example of its use.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $mux = TAP::Parser::Multiplexer->new;
+
+Returns a new C<TAP::Parser::Multiplexer> object.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my $self = shift;
+ $self->{select} = IO::Select->new;
+ $self->{avid} = []; # Parsers that can't select
+ $self->{count} = 0;
+ return $self;
+}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<add>
+
+ $mux->add( $parser, $stash );
+
+Add a TAP::Parser to the multiplexer. C<$stash> is an optional opaque
+reference that will be returned from C<next> along with the parser and
+the next result.
+
+=cut
+
+sub add {
+ my ( $self, $parser, $stash ) = @_;
+
+ if ( SELECT_OK && ( my @handles = $parser->get_select_handles ) ) {
+ my $sel = $self->{select};
+
+ # We have to turn handles into file numbers here because by
+ # the time we want to remove them from our IO::Select they
+ # will already have been closed by the iterator.
+ my @filenos = map { fileno $_ } @handles;
+ for my $h (@handles) {
+ $sel->add( [ $h, $parser, $stash, @filenos ] );
+ }
+
+ $self->{count}++;
+ }
+ else {
+ push @{ $self->{avid} }, [ $parser, $stash ];
+ }
+}
+
+=head3 C<parsers>
+
+ my $count = $mux->parsers;
+
+Returns the number of parsers. Parsers are removed from the multiplexer
+when their input is exhausted.
+
+=cut
+
+sub parsers {
+ my $self = shift;
+ return $self->{count} + scalar @{ $self->{avid} };
+}
+
+sub _iter {
+ my $self = shift;
+
+ my $sel = $self->{select};
+ my $avid = $self->{avid};
+ my @ready = ();
+
+ return sub {
+
+ # Drain all the non-selectable parsers first
+ if (@$avid) {
+ my ( $parser, $stash ) = @{ $avid->[0] };
+ my $result = $parser->next;
+ shift @$avid unless defined $result;
+ return ( $parser, $stash, $result );
+ }
+
+ until (@ready) {
+ return unless $sel->count;
+ @ready = $sel->can_read;
+ last if @ready || !$!{EINTR};
+ }
+
+ my ( $h, $parser, $stash, @handles ) = @{ shift @ready };
+ my $result = $parser->next;
+
+ unless ( defined $result ) {
+ $sel->remove(@handles);
+ $self->{count}--;
+
+ # Force another can_read - we may now have removed a handle
+ # thought to have been ready.
+ @ready = ();
+ }
+
+ return ( $parser, $stash, $result );
+ };
+}
+
+=head3 C<next>
+
+Return a result from the next available parser. Returns a list
+containing the parser from which the result came, the stash that
+corresponds with that parser and the result.
+
+ my ( $parser, $stash, $result ) = $mux->next;
+
+If C<$result> is undefined the corresponding parser has reached the end
+of its input (and will automatically be removed from the multiplexer).
+
+When all parsers are exhausted an empty list will be returned.
+
+ if ( my ( $parser, $stash, $result ) = $mux->next ) {
+ if ( ! defined $result ) {
+ # End of this parser
+ }
+ else {
+ # Process result
+ }
+ }
+ else {
+ # All parsers finished
+ }
+
+=cut
+
+sub next {
+ my $self = shift;
+ return ( $self->{_iter} ||= $self->_iter )->();
+}
+
+=head1 See Also
+
+L<TAP::Parser>
+
+L<TAP::Harness>
+
+=cut
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result.pm
new file mode 100755
index 0000000000..4083a29d09
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result.pm
@@ -0,0 +1,297 @@
+package TAP::Parser::Result;
+
+use strict;
+use warnings;
+
+use base 'TAP::Object';
+
+BEGIN {
+
+ # make is_* methods
+ my @attrs = qw( plan pragma test comment bailout version unknown yaml );
+ no strict 'refs';
+ for my $token (@attrs) {
+ my $method = "is_$token";
+ *$method = sub { return $token eq shift->type };
+ }
+}
+
+##############################################################################
+
+=head1 NAME
+
+TAP::Parser::Result - Base class for TAP::Parser output objects
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ # abstract class - not meant to be used directly
+ # see TAP::Parser::ResultFactory for preferred usage
+
+ # directly:
+ use TAP::Parser::Result;
+ my $token = {...};
+ my $result = TAP::Parser::Result->new( $token );
+
+=head2 DESCRIPTION
+
+This is a simple base class used by L<TAP::Parser> to store objects that
+represent the current bit of test output data from TAP (usually a single
+line). Unless you're subclassing, you probably won't need to use this module
+directly.
+
+=head2 METHODS
+
+=head3 C<new>
+
+ # see TAP::Parser::ResultFactory for preferred usage
+
+ # to use directly:
+ my $result = TAP::Parser::Result->new($token);
+
+Returns an instance the appropriate class for the test token passed in.
+
+=cut
+
+# new() implementation provided by TAP::Object
+
+sub _initialize {
+ my ( $self, $token ) = @_;
+ if ($token) {
+
+ # assign to a hash slice to make a shallow copy of the token.
+ # I guess we could assign to the hash as (by default) there are not
+ # contents, but that seems less helpful if someone wants to subclass us
+ @{$self}{ keys %$token } = values %$token;
+ }
+ return $self;
+}
+
+##############################################################################
+
+=head2 Boolean methods
+
+The following methods all return a boolean value and are to be overridden in
+the appropriate subclass.
+
+=over 4
+
+=item * C<is_plan>
+
+Indicates whether or not this is the test plan line.
+
+ 1..3
+
+=item * C<is_pragma>
+
+Indicates whether or not this is a pragma line.
+
+ pragma +strict
+
+=item * C<is_test>
+
+Indicates whether or not this is a test line.
+
+ ok 1 Is OK!
+
+=item * C<is_comment>
+
+Indicates whether or not this is a comment.
+
+ # this is a comment
+
+=item * C<is_bailout>
+
+Indicates whether or not this is bailout line.
+
+ Bail out! We're out of dilithium crystals.
+
+=item * C<is_version>
+
+Indicates whether or not this is a TAP version line.
+
+ TAP version 4
+
+=item * C<is_unknown>
+
+Indicates whether or not the current line could be parsed.
+
+ ... this line is junk ...
+
+=item * C<is_yaml>
+
+Indicates whether or not this is a YAML chunk.
+
+=back
+
+=cut
+
+##############################################################################
+
+=head3 C<raw>
+
+ print $result->raw;
+
+Returns the original line of text which was parsed.
+
+=cut
+
+sub raw { shift->{raw} }
+
+##############################################################################
+
+=head3 C<type>
+
+ my $type = $result->type;
+
+Returns the "type" of a token, such as C<comment> or C<test>.
+
+=cut
+
+sub type { shift->{type} }
+
+##############################################################################
+
+=head3 C<as_string>
+
+ print $result->as_string;
+
+Prints a string representation of the token. This might not be the exact
+output, however. Tests will have test numbers added if not present, TODO and
+SKIP directives will be capitalized and, in general, things will be cleaned
+up. If you need the original text for the token, see the C<raw> method.
+
+=cut
+
+sub as_string { shift->{raw} }
+
+##############################################################################
+
+=head3 C<is_ok>
+
+ if ( $result->is_ok ) { ... }
+
+Reports whether or not a given result has passed. Anything which is B<not> a
+test result returns true. This is merely provided as a convenient shortcut.
+
+=cut
+
+sub is_ok {1}
+
+##############################################################################
+
+=head3 C<passed>
+
+Deprecated. Please use C<is_ok> instead.
+
+=cut
+
+sub passed {
+ warn 'passed() is deprecated. Please use "is_ok()"';
+ shift->is_ok;
+}
+
+##############################################################################
+
+=head3 C<has_directive>
+
+ if ( $result->has_directive ) {
+ ...
+ }
+
+Indicates whether or not the given result has a TODO or SKIP directive.
+
+=cut
+
+sub has_directive {
+ my $self = shift;
+ return ( $self->has_todo || $self->has_skip );
+}
+
+##############################################################################
+
+=head3 C<has_todo>
+
+ if ( $result->has_todo ) {
+ ...
+ }
+
+Indicates whether or not the given result has a TODO directive.
+
+=cut
+
+sub has_todo { 'TODO' eq ( shift->{directive} || '' ) }
+
+##############################################################################
+
+=head3 C<has_skip>
+
+ if ( $result->has_skip ) {
+ ...
+ }
+
+Indicates whether or not the given result has a SKIP directive.
+
+=cut
+
+sub has_skip { 'SKIP' eq ( shift->{directive} || '' ) }
+
+=head3 C<set_directive>
+
+Set the directive associated with this token. Used internally to fake
+TODO tests.
+
+=cut
+
+sub set_directive {
+ my ( $self, $dir ) = @_;
+ $self->{directive} = $dir;
+}
+
+1;
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+Remember: if you want your subclass to be automatically used by the parser,
+you'll have to register it with L<TAP::Parser::ResultFactory/register_type>.
+
+If you're creating a completely new result I<type>, you'll probably need to
+subclass L<TAP::Parser::Grammar> too, or else it'll never get used.
+
+=head2 Example
+
+ package MyResult;
+
+ use strict;
+
+ use base 'TAP::Parser::Result';
+
+ # register with the factory:
+ TAP::Parser::ResultFactory->register_type( 'my_type' => __PACKAGE__ );
+
+ sub as_string { 'My results all look the same' }
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::ResultFactory>,
+L<TAP::Parser::Result::Bailout>,
+L<TAP::Parser::Result::Comment>,
+L<TAP::Parser::Result::Plan>,
+L<TAP::Parser::Result::Pragma>,
+L<TAP::Parser::Result::Test>,
+L<TAP::Parser::Result::Unknown>,
+L<TAP::Parser::Result::Version>,
+L<TAP::Parser::Result::YAML>,
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Bailout.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Bailout.pm
new file mode 100755
index 0000000000..9f676e629a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Bailout.pm
@@ -0,0 +1,62 @@
+package TAP::Parser::Result::Bailout;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Bailout - Bailout result token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a bail out line is encountered.
+
+ 1..5
+ ok 1 - woo hooo!
+ Bail out! Well, so much for "woo hooo!"
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+=back
+
+=cut
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<explanation>
+
+ if ( $result->is_bailout ) {
+ my $explanation = $result->explanation;
+ print "We bailed out because ($explanation)";
+ }
+
+If, and only if, a token is a bailout token, you can get an "explanation" via
+this method. The explanation is the text after the mystical "Bail out!" words
+which appear in the tap output.
+
+=cut
+
+sub explanation { shift->{bailout} }
+sub as_string { shift->{bailout} }
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Comment.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Comment.pm
new file mode 100755
index 0000000000..7e1a81ed7f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Comment.pm
@@ -0,0 +1,60 @@
+package TAP::Parser::Result::Comment;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Comment - Comment result token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a comment line is encountered.
+
+ 1..1
+ ok 1 - woo hooo!
+ # this is a comment
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+Note that this method merely returns the comment preceded by a '# '.
+
+=back
+
+=cut
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<comment>
+
+ if ( $result->is_comment ) {
+ my $comment = $result->comment;
+ print "I have something to say: $comment";
+ }
+
+=cut
+
+sub comment { shift->{comment} }
+sub as_string { shift->{raw} }
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Plan.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Plan.pm
new file mode 100755
index 0000000000..b8ae566d66
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Plan.pm
@@ -0,0 +1,119 @@
+package TAP::Parser::Result::Plan;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Plan - Plan result token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a plan line is encountered.
+
+ 1..1
+ ok 1 - woo hooo!
+
+C<1..1> is the plan. Gotta have a plan.
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+=item * C<raw>
+
+=back
+
+=cut
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<plan>
+
+ if ( $result->is_plan ) {
+ print $result->plan;
+ }
+
+This is merely a synonym for C<as_string>.
+
+=cut
+
+sub plan { '1..' . shift->{tests_planned} }
+
+##############################################################################
+
+=head3 C<tests_planned>
+
+ my $planned = $result->tests_planned;
+
+Returns the number of tests planned. For example, a plan of C<1..17> will
+cause this method to return '17'.
+
+=cut
+
+sub tests_planned { shift->{tests_planned} }
+
+##############################################################################
+
+=head3 C<directive>
+
+ my $directive = $plan->directive;
+
+If a SKIP directive is included with the plan, this method will return it.
+
+ 1..0 # SKIP: why bother?
+
+=cut
+
+sub directive { shift->{directive} }
+
+##############################################################################
+
+=head3 C<has_skip>
+
+ if ( $result->has_skip ) { ... }
+
+Returns a boolean value indicating whether or not this test has a SKIP
+directive.
+
+=head3 C<explanation>
+
+ my $explanation = $plan->explanation;
+
+If a SKIP directive was included with the plan, this method will return the
+explanation, if any.
+
+=cut
+
+sub explanation { shift->{explanation} }
+
+=head3 C<todo_list>
+
+ my $todo = $result->todo_list;
+ for ( @$todo ) {
+ ...
+ }
+
+=cut
+
+sub todo_list { shift->{todo_list} }
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Pragma.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Pragma.pm
new file mode 100755
index 0000000000..debc8a7626
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Pragma.pm
@@ -0,0 +1,62 @@
+package TAP::Parser::Result::Pragma;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Pragma - TAP pragma token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a pragma is encountered.
+
+ TAP version 13
+ pragma +strict, -foo
+
+Pragmas are only supported from TAP version 13 onwards.
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+=item * C<raw>
+
+=back
+
+=cut
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<pragmas>
+
+if ( $result->is_pragma ) {
+ @pragmas = $result->pragmas;
+}
+
+=cut
+
+sub pragmas {
+ my @pragmas = @{ shift->{pragmas} };
+ return wantarray ? @pragmas : \@pragmas;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Test.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Test.pm
new file mode 100755
index 0000000000..5e5ea395a2
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Test.pm
@@ -0,0 +1,271 @@
+package TAP::Parser::Result::Test;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Test - Test result token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a test line is encountered.
+
+ 1..1
+ ok 1 - woo hooo!
+
+=head1 OVERRIDDEN METHODS
+
+This class is the workhorse of the L<TAP::Parser> system. Most TAP lines will
+be test lines and if C<< $result->is_test >>, then you have a bunch of methods
+at your disposal.
+
+=head2 Instance Methods
+
+=cut
+
+##############################################################################
+
+=head3 C<ok>
+
+ my $ok = $result->ok;
+
+Returns the literal text of the C<ok> or C<not ok> status.
+
+=cut
+
+sub ok { shift->{ok} }
+
+##############################################################################
+
+=head3 C<number>
+
+ my $test_number = $result->number;
+
+Returns the number of the test, even if the original TAP output did not supply
+that number.
+
+=cut
+
+sub number { shift->{test_num} }
+
+sub _number {
+ my ( $self, $number ) = @_;
+ $self->{test_num} = $number;
+}
+
+##############################################################################
+
+=head3 C<description>
+
+ my $description = $result->description;
+
+Returns the description of the test, if any. This is the portion after the
+test number but before the directive.
+
+=cut
+
+sub description { shift->{description} }
+
+##############################################################################
+
+=head3 C<directive>
+
+ my $directive = $result->directive;
+
+Returns either C<TODO> or C<SKIP> if either directive was present for a test
+line.
+
+=cut
+
+sub directive { shift->{directive} }
+
+##############################################################################
+
+=head3 C<explanation>
+
+ my $explanation = $result->explanation;
+
+If a test had either a C<TODO> or C<SKIP> directive, this method will return
+the accompanying explanation, if present.
+
+ not ok 17 - 'Pigs can fly' # TODO not enough acid
+
+For the above line, the explanation is I<not enough acid>.
+
+=cut
+
+sub explanation { shift->{explanation} }
+
+##############################################################################
+
+=head3 C<is_ok>
+
+ if ( $result->is_ok ) { ... }
+
+Returns a boolean value indicating whether or not the test passed. Remember
+that for TODO tests, the test always passes.
+
+If the test is unplanned, this method will always return false. See
+C<is_unplanned>.
+
+=cut
+
+sub is_ok {
+ my $self = shift;
+
+ return if $self->is_unplanned;
+
+ # TODO directives reverse the sense of a test.
+ return $self->has_todo ? 1 : $self->ok !~ /not/;
+}
+
+##############################################################################
+
+=head3 C<is_actual_ok>
+
+ if ( $result->is_actual_ok ) { ... }
+
+Returns a boolean value indicating whether or not the test passed, regardless
+of its TODO status.
+
+=cut
+
+sub is_actual_ok {
+ my $self = shift;
+ return $self->{ok} !~ /not/;
+}
+
+##############################################################################
+
+=head3 C<actual_passed>
+
+Deprecated. Please use C<is_actual_ok> instead.
+
+=cut
+
+sub actual_passed {
+ warn 'actual_passed() is deprecated. Please use "is_actual_ok()"';
+ goto &is_actual_ok;
+}
+
+##############################################################################
+
+=head3 C<todo_passed>
+
+ if ( $test->todo_passed ) {
+ # test unexpectedly succeeded
+ }
+
+If this is a TODO test and an 'ok' line, this method returns true.
+Otherwise, it will always return false (regardless of passing status on
+non-todo tests).
+
+This is used to track which tests unexpectedly succeeded.
+
+=cut
+
+sub todo_passed {
+ my $self = shift;
+ return $self->has_todo && $self->is_actual_ok;
+}
+
+##############################################################################
+
+=head3 C<todo_failed>
+
+ # deprecated in favor of 'todo_passed'. This method was horribly misnamed.
+
+This was a badly misnamed method. It indicates which TODO tests unexpectedly
+succeeded. Will now issue a warning and call C<todo_passed>.
+
+=cut
+
+sub todo_failed {
+ warn 'todo_failed() is deprecated. Please use "todo_passed()"';
+ goto &todo_passed;
+}
+
+##############################################################################
+
+=head3 C<has_skip>
+
+ if ( $result->has_skip ) { ... }
+
+Returns a boolean value indicating whether or not this test has a SKIP
+directive.
+
+=head3 C<has_todo>
+
+ if ( $result->has_todo ) { ... }
+
+Returns a boolean value indicating whether or not this test has a TODO
+directive.
+
+=head3 C<as_string>
+
+ print $result->as_string;
+
+This method prints the test as a string. It will probably be similar, but
+not necessarily identical, to the original test line. Directives are
+capitalized, some whitespace may be trimmed and a test number will be added if
+it was not present in the original line. If you need the original text of the
+test line, use the C<raw> method.
+
+=cut
+
+sub as_string {
+ my $self = shift;
+ my $string = $self->ok . " " . $self->number;
+ if ( my $description = $self->description ) {
+ $string .= " $description";
+ }
+ if ( my $directive = $self->directive ) {
+ my $explanation = $self->explanation;
+ $string .= " # $directive $explanation";
+ }
+ return $string;
+}
+
+##############################################################################
+
+=head3 C<is_unplanned>
+
+ if ( $test->is_unplanned ) { ... }
+ $test->is_unplanned(1);
+
+If a test number is greater than the number of planned tests, this method will
+return true. Unplanned tests will I<always> return false for C<is_ok>,
+regardless of whether or not the test C<has_todo>.
+
+Note that if tests have a trailing plan, it is not possible to set this
+property for unplanned tests as we do not know it's unplanned until the plan
+is reached:
+
+ print <<'END';
+ ok 1
+ ok 2
+ 1..1
+ END
+
+=cut
+
+sub is_unplanned {
+ my $self = shift;
+ return ( $self->{unplanned} || '' ) unless @_;
+ $self->{unplanned} = !!shift;
+ return $self;
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Unknown.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Unknown.pm
new file mode 100755
index 0000000000..c46e8d9566
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Unknown.pm
@@ -0,0 +1,48 @@
+package TAP::Parser::Result::Unknown;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Unknown - Unknown result token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if the parser does not recognize the token line. For example:
+
+ 1..5
+ VERSION 7
+ ok 1 - woo hooo!
+ ... woo hooo! is cool!
+
+In the above "TAP", the second and fourth lines will generate "Unknown"
+tokens.
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+=item * C<raw>
+
+=back
+
+=cut
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Version.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Version.pm
new file mode 100755
index 0000000000..497c10d567
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/Version.pm
@@ -0,0 +1,62 @@
+package TAP::Parser::Result::Version;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::Version - TAP syntax version token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a version line is encountered.
+
+ TAP version 13
+ ok 1
+ not ok 2
+
+The first version of TAP to include an explicit version number is 13.
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+=item * C<raw>
+
+=back
+
+=cut
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<version>
+
+ if ( $result->is_version ) {
+ print $result->version;
+ }
+
+This is merely a synonym for C<as_string>.
+
+=cut
+
+sub version { shift->{version} }
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/YAML.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/YAML.pm
new file mode 100755
index 0000000000..e6ca7466e9
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Result/YAML.pm
@@ -0,0 +1,61 @@
+package TAP::Parser::Result::YAML;
+
+use strict;
+use warnings;
+
+use base 'TAP::Parser::Result';
+
+=head1 NAME
+
+TAP::Parser::Result::YAML - YAML result token.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 DESCRIPTION
+
+This is a subclass of L<TAP::Parser::Result>. A token of this class will be
+returned if a YAML block is encountered.
+
+ 1..1
+ ok 1 - woo hooo!
+
+C<1..1> is the plan. Gotta have a plan.
+
+=head1 OVERRIDDEN METHODS
+
+Mainly listed here to shut up the pitiful screams of the pod coverage tests.
+They keep me awake at night.
+
+=over 4
+
+=item * C<as_string>
+
+=item * C<raw>
+
+=back
+
+=cut
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<data>
+
+ if ( $result->is_yaml ) {
+ print $result->data;
+ }
+
+Return the parsed YAML data for this result
+
+=cut
+
+sub data { shift->{data} }
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/ResultFactory.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/ResultFactory.pm
new file mode 100755
index 0000000000..ff7ef4addb
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/ResultFactory.pm
@@ -0,0 +1,183 @@
+package TAP::Parser::ResultFactory;
+
+use strict;
+use warnings;
+
+use TAP::Parser::Result::Bailout ();
+use TAP::Parser::Result::Comment ();
+use TAP::Parser::Result::Plan ();
+use TAP::Parser::Result::Pragma ();
+use TAP::Parser::Result::Test ();
+use TAP::Parser::Result::Unknown ();
+use TAP::Parser::Result::Version ();
+use TAP::Parser::Result::YAML ();
+
+use base 'TAP::Object';
+
+##############################################################################
+
+=head1 NAME
+
+TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::ResultFactory;
+ my $token = {...};
+ my $factory = TAP::Parser::ResultFactory->new;
+ my $result = $factory->make_result( $token );
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head2 DESCRIPTION
+
+This is a simple factory class which returns a L<TAP::Parser::Result> subclass
+representing the current bit of test data from TAP (usually a single line).
+It is used primarily by L<TAP::Parser::Grammar>. Unless you're subclassing,
+you probably won't need to use this module directly.
+
+=head2 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+Creates a new factory class.
+I<Note:> You currently don't need to instantiate a factory in order to use it.
+
+=head3 C<make_result>
+
+Returns an instance the appropriate class for the test token passed in.
+
+ my $result = TAP::Parser::ResultFactory->make_result($token);
+
+Can also be called as an instance method.
+
+=cut
+
+sub make_result {
+ my ( $proto, $token ) = @_;
+ my $type = $token->{type};
+ return $proto->class_for($type)->new($token);
+}
+
+=head3 C<class_for>
+
+Takes one argument: C<$type>. Returns the class for this $type, or C<croak>s
+with an error.
+
+=head3 C<register_type>
+
+Takes two arguments: C<$type>, C<$class>
+
+This lets you override an existing type with your own custom type, or register
+a completely new type, eg:
+
+ # create a custom result type:
+ package MyResult;
+ use strict;
+ use base 'TAP::Parser::Result';
+
+ # register with the factory:
+ TAP::Parser::ResultFactory->register_type( 'my_type' => __PACKAGE__ );
+
+ # use it:
+ my $r = TAP::Parser::ResultFactory->( { type => 'my_type' } );
+
+Your custom type should then be picked up automatically by the L<TAP::Parser>.
+
+=cut
+
+our %CLASS_FOR = (
+ plan => 'TAP::Parser::Result::Plan',
+ pragma => 'TAP::Parser::Result::Pragma',
+ test => 'TAP::Parser::Result::Test',
+ comment => 'TAP::Parser::Result::Comment',
+ bailout => 'TAP::Parser::Result::Bailout',
+ version => 'TAP::Parser::Result::Version',
+ unknown => 'TAP::Parser::Result::Unknown',
+ yaml => 'TAP::Parser::Result::YAML',
+);
+
+sub class_for {
+ my ( $class, $type ) = @_;
+
+ # return target class:
+ return $CLASS_FOR{$type} if exists $CLASS_FOR{$type};
+
+ # or complain:
+ require Carp;
+ Carp::croak("Could not determine class for result type '$type'");
+}
+
+sub register_type {
+ my ( $class, $type, $rclass ) = @_;
+
+ # register it blindly, assume they know what they're doing
+ $CLASS_FOR{$type} = $rclass;
+ return $class;
+}
+
+1;
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+There are a few things to bear in mind when creating your own
+C<ResultFactory>:
+
+=over 4
+
+=item 1
+
+The factory itself is never instantiated (this I<may> change in the future).
+This means that C<_initialize> is never called.
+
+=item 2
+
+C<TAP::Parser::Result-E<gt>new> is never called, $tokens are reblessed.
+This I<will> change in a future version!
+
+=item 3
+
+L<TAP::Parser::Result> subclasses will register themselves with
+L<TAP::Parser::ResultFactory> directly:
+
+ package MyFooResult;
+ TAP::Parser::ResultFactory->register_type( foo => __PACKAGE__ );
+
+Of course, it's up to you to decide whether or not to ignore them.
+
+=back
+
+=head2 Example
+
+ package MyResultFactory;
+
+ use strict;
+
+ use MyResult;
+
+ use base 'TAP::Parser::ResultFactory';
+
+ # force all results to be 'MyResult'
+ sub class_for {
+ return 'MyResult';
+ }
+
+ 1;
+
+=head1 SEE ALSO
+
+L<TAP::Parser>,
+L<TAP::Parser::Result>,
+L<TAP::Parser::Grammar>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler.pm
new file mode 100755
index 0000000000..e7afbf6d62
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler.pm
@@ -0,0 +1,448 @@
+package TAP::Parser::Scheduler;
+
+use strict;
+use warnings;
+
+use Carp;
+use TAP::Parser::Scheduler::Job;
+use TAP::Parser::Scheduler::Spinner;
+
+=head1 NAME
+
+TAP::Parser::Scheduler - Schedule tests during parallel testing
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Scheduler;
+
+=head1 DESCRIPTION
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $sched = TAP::Parser::Scheduler->new(tests => \@tests);
+ my $sched = TAP::Parser::Scheduler->new(
+ tests => [ ['t/test_name.t','Test Description'], ... ],
+ rules => \%rules,
+ );
+
+Given 'tests' and optional 'rules' as input, returns a new
+C<TAP::Parser::Scheduler> object. Each member of C<@tests> should be either a
+a test file name, or a two element arrayref, where the first element is a test
+file name, and the second element is a test description. By default, we'll use
+the test name as the description.
+
+The optional C<rules> attribute provides direction on which tests should be run
+in parallel and which should be run sequentially. If no rule data structure is
+provided, a default data structure is used which makes every test eligible to
+be run in parallel:
+
+ { par => '**' },
+
+The rules data structure is documented more in the next section.
+
+=head2 Rules data structure
+
+The "C<rules>" data structure is the the heart of the scheduler. It allows you
+to express simple rules like "run all tests in sequence" or "run all tests in
+parallel except these five tests.". However, the rules structure also supports
+glob-style pattern matching and recursive definitions, so you can also express
+arbitarily complicated patterns.
+
+The rule must only have one top level key: either 'par' for "parallel" or 'seq'
+for "sequence".
+
+Values must be either strings with possible glob-style matching, or arrayrefs
+of strings or hashrefs which follow this pattern recursively.
+
+Every element in an arrayref directly below a 'par' key is eligible to be run
+in parallel, while vavalues directly below a 'seq' key must be run in sequence.
+
+=head3 Rules examples
+
+Here are some examples:
+
+ # All tests be run in parallel (the default rule)
+ { par => '**' },
+
+ # Run all tests in sequence, except those starting with "p"
+ { par => 't/p*.t' },
+
+ # Run all tests in parallel, except those starting with "p"
+ {
+ seq => [
+ { seq => 't/p*.t' },
+ { par => '**' },
+ ],
+ }
+
+ # Run some startup tests in sequence, then some parallel tests then some
+ # teardown tests in sequence.
+ {
+ seq => [
+ { seq => 't/startup/*.t' },
+ { par => ['t/a/*.t','t/b/*.t','t/c/*.t'], }
+ { seq => 't/shutdown/*.t' },
+ ],
+ },
+
+
+=head3 Rules resolution
+
+=over 4
+
+=item * By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one.
+
+=item * "First match wins". The first rule that matches a test will be the one that applies.
+
+=item * Any test which does not match a rule will be run in sequence at the end of the run.
+
+=item * The existence of a rule does not imply selecting a test. You must still specify the tests to run.
+
+=item * Specifying a rule to allow tests to run in parallel does not make the run in parallel. You still need specify the number of parallel C<jobs> in your Harness object.
+
+=back
+
+=head3 Glob-style pattern matching for rules
+
+We implement our own glob-style pattern matching. Here are the patterns it supports:
+
+ ** is any number of characters, including /, within a pathname
+ * is zero or more characters within a filename/directory name
+ ? is exactly one character within a filename/directory name
+ {foo,bar,baz} is any of foo, bar or baz.
+ \ is an escape character
+
+=cut
+
+sub new {
+ my $class = shift;
+
+ croak "Need a number of key, value pairs" if @_ % 2;
+
+ my %args = @_;
+ my $tests = delete $args{tests} || croak "Need a 'tests' argument";
+ my $rules = delete $args{rules} || { par => '**' };
+
+ croak "Unknown arg(s): ", join ', ', sort keys %args
+ if keys %args;
+
+ # Turn any simple names into a name, description pair. TODO: Maybe
+ # construct jobs here?
+ my $self = bless {}, $class;
+
+ $self->_set_rules( $rules, $tests );
+
+ return $self;
+}
+
+# Build the scheduler data structure.
+#
+# SCHEDULER-DATA ::= JOB
+# || ARRAY OF ARRAY OF SCHEDULER-DATA
+#
+# The nested arrays are the key to scheduling. The outer array contains
+# a list of things that may be executed in parallel. Whenever an
+# eligible job is sought any element of the outer array that is ready to
+# execute can be selected. The inner arrays represent sequential
+# execution. They can only proceed when the first job is ready to run.
+
+sub _set_rules {
+ my ( $self, $rules, $tests ) = @_;
+
+ # Convert all incoming tests to job objects.
+ # If no test description is provided use the file name as the description.
+ my @tests = map { TAP::Parser::Scheduler::Job->new(@$_) }
+ map { 'ARRAY' eq ref $_ ? $_ : [ $_, $_ ] } @$tests;
+ my $schedule = $self->_rule_clause( $rules, \@tests );
+
+ # If any tests are left add them as a sequential block at the end of
+ # the run.
+ $schedule = [ [ $schedule, @tests ] ] if @tests;
+
+ $self->{schedule} = $schedule;
+}
+
+sub _rule_clause {
+ my ( $self, $rule, $tests ) = @_;
+ croak 'Rule clause must be a hash'
+ unless 'HASH' eq ref $rule;
+
+ my @type = keys %$rule;
+ croak 'Rule clause must have exactly one key'
+ unless @type == 1;
+
+ my %handlers = (
+ par => sub {
+ [ map { [$_] } @_ ];
+ },
+ seq => sub { [ [@_] ] },
+ );
+
+ my $handler = $handlers{ $type[0] }
+ || croak 'Unknown scheduler type: ', $type[0];
+ my $val = $rule->{ $type[0] };
+
+ return $handler->(
+ map {
+ 'HASH' eq ref $_
+ ? $self->_rule_clause( $_, $tests )
+ : $self->_expand( $_, $tests )
+ } 'ARRAY' eq ref $val ? @$val : $val
+ );
+}
+
+sub _glob_to_regexp {
+ my ( $self, $glob ) = @_;
+ my $nesting;
+ my $pattern;
+
+ while (1) {
+ if ( $glob =~ /\G\*\*/gc ) {
+
+ # ** is any number of characters, including /, within a pathname
+ $pattern .= '.*?';
+ }
+ elsif ( $glob =~ /\G\*/gc ) {
+
+ # * is zero or more characters within a filename/directory name
+ $pattern .= '[^/]*';
+ }
+ elsif ( $glob =~ /\G\?/gc ) {
+
+ # ? is exactly one character within a filename/directory name
+ $pattern .= '[^/]';
+ }
+ elsif ( $glob =~ /\G\{/gc ) {
+
+ # {foo,bar,baz} is any of foo, bar or baz.
+ $pattern .= '(?:';
+ ++$nesting;
+ }
+ elsif ( $nesting and $glob =~ /\G,/gc ) {
+
+ # , is only special inside {}
+ $pattern .= '|';
+ }
+ elsif ( $nesting and $glob =~ /\G\}/gc ) {
+
+ # } that matches { is special. But unbalanced } are not.
+ $pattern .= ')';
+ --$nesting;
+ }
+ elsif ( $glob =~ /\G(\\.)/gc ) {
+
+ # A quoted literal
+ $pattern .= $1;
+ }
+ elsif ( $glob =~ /\G([\},])/gc ) {
+
+ # Sometimes meta characters
+ $pattern .= '\\' . $1;
+ }
+ else {
+
+ # Eat everything that is not a meta character.
+ $glob =~ /\G([^{?*\\\},]*)/gc;
+ $pattern .= quotemeta $1;
+ }
+ return $pattern if pos $glob == length $glob;
+ }
+}
+
+sub _expand {
+ my ( $self, $name, $tests ) = @_;
+
+ my $pattern = $self->_glob_to_regexp($name);
+ $pattern = qr/^ $pattern $/x;
+ my @match = ();
+
+ for ( my $ti = 0; $ti < @$tests; $ti++ ) {
+ if ( $tests->[$ti]->filename =~ $pattern ) {
+ push @match, splice @$tests, $ti, 1;
+ $ti--;
+ }
+ }
+
+ return @match;
+}
+
+=head2 Instance Methods
+
+=head3 C<get_all>
+
+Get a list of all remaining tests.
+
+=cut
+
+sub get_all {
+ my $self = shift;
+ my @all = $self->_gather( $self->{schedule} );
+ $self->{count} = @all;
+ @all;
+}
+
+sub _gather {
+ my ( $self, $rule ) = @_;
+ return unless defined $rule;
+ return $rule unless 'ARRAY' eq ref $rule;
+ return map { defined() ? $self->_gather($_) : () } map {@$_} @$rule;
+}
+
+=head3 C<get_job>
+
+Return the next available job as L<TAP::Parser::Scheduler::Job> object or
+C<undef> if none are available. Returns a L<TAP::Parser::Scheduler::Spinner> if
+the scheduler still has pending jobs but none are available to run right now.
+
+=cut
+
+sub get_job {
+ my $self = shift;
+ $self->{count} ||= $self->get_all;
+ my @jobs = $self->_find_next_job( $self->{schedule} );
+ if (@jobs) {
+ --$self->{count};
+ return $jobs[0];
+ }
+
+ return TAP::Parser::Scheduler::Spinner->new
+ if $self->{count};
+
+ return;
+}
+
+sub _not_empty {
+ my $ar = shift;
+ return 1 unless 'ARRAY' eq ref $ar;
+ for (@$ar) {
+ return 1 if _not_empty($_);
+ }
+ return;
+}
+
+sub _is_empty { !_not_empty(@_) }
+
+sub _find_next_job {
+ my ( $self, $rule ) = @_;
+
+ my @queue = ();
+ my $index = 0;
+ while ( $index < @$rule ) {
+ my $seq = $rule->[$index];
+
+ # Prune any exhausted items.
+ shift @$seq while @$seq && _is_empty( $seq->[0] );
+ if (@$seq) {
+ if ( defined $seq->[0] ) {
+ if ( 'ARRAY' eq ref $seq->[0] ) {
+ push @queue, $seq;
+ }
+ else {
+ my $job = splice @$seq, 0, 1, undef;
+ $job->on_finish( sub { shift @$seq } );
+ return $job;
+ }
+ }
+ ++$index;
+ }
+ else {
+
+ # Remove the empty sub-array from the array
+ splice @$rule, $index, 1;
+ }
+ }
+
+ for my $seq (@queue) {
+ if ( my @jobs = $self->_find_next_job( $seq->[0] ) ) {
+ return @jobs;
+ }
+ }
+
+ return;
+}
+
+=head3 C<as_string>
+
+Return a human readable representation of the scheduling tree.
+For example:
+
+ my @tests = (qw{
+ t/startup/foo.t
+ t/shutdown/foo.t
+
+ t/a/foo.t t/b/foo.t t/c/foo.t t/d/foo.t
+ });
+ my $sched = TAP::Parser::Scheduler->new(
+ tests => \@tests,
+ rules => {
+ seq => [
+ { seq => 't/startup/*.t' },
+ { par => ['t/a/*.t','t/b/*.t','t/c/*.t'] },
+ { seq => 't/shutdown/*.t' },
+ ],
+ },
+ );
+
+Produces:
+
+ par:
+ seq:
+ par:
+ seq:
+ par:
+ seq:
+ 't/startup/foo.t'
+ par:
+ seq:
+ 't/a/foo.t'
+ seq:
+ 't/b/foo.t'
+ seq:
+ 't/c/foo.t'
+ par:
+ seq:
+ 't/shutdown/foo.t'
+ 't/d/foo.t'
+
+
+=cut
+
+
+sub as_string {
+ my $self = shift;
+ return $self->_as_string( $self->{schedule} );
+}
+
+sub _as_string {
+ my ( $self, $rule, $depth ) = ( shift, shift, shift || 0 );
+ my $pad = ' ' x 2;
+ my $indent = $pad x $depth;
+ if ( !defined $rule ) {
+ return "$indent(undef)\n";
+ }
+ elsif ( 'ARRAY' eq ref $rule ) {
+ return unless @$rule;
+ my $type = ( 'par', 'seq' )[ $depth % 2 ];
+ return join(
+ '', "$indent$type:\n",
+ map { $self->_as_string( $_, $depth + 1 ) } @$rule
+ );
+ }
+ else {
+ return "$indent'" . $rule->filename . "'\n";
+ }
+}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Job.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Job.pm
new file mode 100755
index 0000000000..e05661d719
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Job.pm
@@ -0,0 +1,127 @@
+package TAP::Parser::Scheduler::Job;
+
+use strict;
+use warnings;
+use Carp;
+
+=head1 NAME
+
+TAP::Parser::Scheduler::Job - A single testing job.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Scheduler::Job;
+
+=head1 DESCRIPTION
+
+Represents a single test 'job'.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $job = TAP::Parser::Scheduler::Job->new(
+ $filename, $description
+ );
+
+Given the filename and description of a test as scalars, returns a new
+L<TAP::Parser::Scheduler::Job> object.
+
+=cut
+
+sub new {
+ my ( $class, $name, $desc, @ctx ) = @_;
+ return bless {
+ filename => $name,
+ description => $desc,
+ @ctx ? ( context => \@ctx ) : (),
+ }, $class;
+}
+
+=head2 Instance Methods
+
+=head3 C<on_finish>
+
+ $self->on_finish(\&method).
+
+Register a closure to be called when this job is destroyed. The callback
+will be passed the C<TAP::Parser::Scheduler::Job> object as it's only argument.
+
+=cut
+
+sub on_finish {
+ my ( $self, $cb ) = @_;
+ $self->{on_finish} = $cb;
+}
+
+=head3 C<finish>
+
+ $self->finish;
+
+Called when a job is complete to unlock it. If a callback has been registered
+with C<on_finish>, it calls it. Otherwise, it does nothing.
+
+=cut
+
+sub finish {
+ my $self = shift;
+ if ( my $cb = $self->{on_finish} ) {
+ $cb->($self);
+ }
+}
+
+=head2 Attributes
+
+ $self->filename;
+ $self->description;
+ $self->context;
+
+These are all "getters" which return the data set for these attributes during object construction.
+
+
+=head3 C<filename>
+
+=head3 C<description>
+
+=head3 C<context>
+
+=cut
+
+sub filename { shift->{filename} }
+sub description { shift->{description} }
+sub context { @{ shift->{context} || [] } }
+
+=head3 C<as_array_ref>
+
+For backwards compatibility in callbacks.
+
+=cut
+
+sub as_array_ref {
+ my $self = shift;
+ return [ $self->filename, $self->description, $self->{context} ||= [] ];
+}
+
+=head3 C<is_spinner>
+
+ $self->is_spinner;
+
+Returns false indicating that this is a real job rather than a
+'spinner'. Spinners are returned when the scheduler still has pending
+jobs but can't (because of locking) return one right now.
+
+=cut
+
+sub is_spinner {0}
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Spinner.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Spinner.pm
new file mode 100755
index 0000000000..3d8be9ee4d
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Scheduler/Spinner.pm
@@ -0,0 +1,61 @@
+package TAP::Parser::Scheduler::Spinner;
+
+use strict;
+use warnings;
+use Carp;
+
+=head1 NAME
+
+TAP::Parser::Scheduler::Spinner - A no-op job.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Scheduler::Spinner;
+
+=head1 DESCRIPTION
+
+A no-op job. Returned by C<TAP::Parser::Scheduler> as an instruction to
+the harness to spin (keep executing tests) while the scheduler can't
+return a real job.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $job = TAP::Parser::Scheduler::Spinner->new;
+
+Ignores any arguments and returns a new C<TAP::Parser::Scheduler::Spinner> object.
+
+=cut
+
+sub new { bless {}, shift }
+
+=head2 Instance Methods
+
+=head3 C<is_spinner>
+
+Returns true indicating that is a 'spinner' job. Spinners are returned
+when the scheduler still has pending jobs but can't (because of locking)
+return one right now.
+
+=cut
+
+sub is_spinner {1}
+
+=head1 SEE ALSO
+
+L<TAP::Parser::Scheduler>, L<TAP::Parser::Scheduler::Job>
+
+=cut
+
+1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Source.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Source.pm
new file mode 100755
index 0000000000..bed0e80d1f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/Source.pm
@@ -0,0 +1,381 @@
+package TAP::Parser::Source;
+
+use strict;
+use warnings;
+
+use File::Basename qw( fileparse );
+use base 'TAP::Object';
+
+use constant BLK_SIZE => 512;
+
+=head1 NAME
+
+TAP::Parser::Source - a TAP source & meta data about it
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Source;
+ my $source = TAP::Parser::Source->new;
+ $source->raw( \'reference to raw TAP source' )
+ ->config( \%config )
+ ->merge( $boolean )
+ ->switches( \@switches )
+ ->test_args( \@args )
+ ->assemble_meta;
+
+ do { ... } if $source->meta->{is_file};
+ # see assemble_meta for a full list of data available
+
+=head1 DESCRIPTION
+
+A TAP I<source> is something that produces a stream of TAP for the parser to
+consume, such as an executable file, a text file, an archive, an IO handle, a
+database, etc. C<TAP::Parser::Source>s encapsulate these I<raw> sources, and
+provide some useful meta data about them. They are used by
+L<TAP::Parser::SourceHandler>s, which do whatever is required to produce &
+capture a stream of TAP from the I<raw> source, and package it up in a
+L<TAP::Parser::Iterator> for the parser to consume.
+
+Unless you're writing a new L<TAP::Parser::SourceHandler>, a plugin or
+subclassing L<TAP::Parser>, you probably won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $source = TAP::Parser::Source->new;
+
+Returns a new C<TAP::Parser::Source> object.
+
+=cut
+
+# new() implementation supplied by TAP::Object
+
+sub _initialize {
+ my ($self) = @_;
+ $self->meta( {} );
+ $self->config( {} );
+ return $self;
+}
+
+##############################################################################
+
+=head2 Instance Methods
+
+=head3 C<raw>
+
+ my $raw = $source->raw;
+ $source->raw( $some_value );
+
+Chaining getter/setter for the raw TAP source. This is a reference, as it may
+contain large amounts of data (eg: raw TAP).
+
+=head3 C<meta>
+
+ my $meta = $source->meta;
+ $source->meta({ %some_value });
+
+Chaining getter/setter for meta data about the source. This defaults to an
+empty hashref. See L</assemble_meta> for more info.
+
+=head3 C<has_meta>
+
+True if the source has meta data.
+
+=head3 C<config>
+
+ my $config = $source->config;
+ $source->config({ %some_value });
+
+Chaining getter/setter for the source's configuration, if any has been provided
+by the user. How it's used is up to you. This defaults to an empty hashref.
+See L</config_for> for more info.
+
+=head3 C<merge>
+
+ my $merge = $source->merge;
+ $source->config( $bool );
+
+Chaining getter/setter for the flag that dictates whether STDOUT and STDERR
+should be merged (where appropriate). Defaults to undef.
+
+=head3 C<switches>
+
+ my $switches = $source->switches;
+ $source->config([ @switches ]);
+
+Chaining getter/setter for the list of command-line switches that should be
+passed to the source (where appropriate). Defaults to undef.
+
+=head3 C<test_args>
+
+ my $test_args = $source->test_args;
+ $source->config([ @test_args ]);
+
+Chaining getter/setter for the list of command-line arguments that should be
+passed to the source (where appropriate). Defaults to undef.
+
+=cut
+
+sub raw {
+ my $self = shift;
+ return $self->{raw} unless @_;
+ $self->{raw} = shift;
+ return $self;
+}
+
+sub meta {
+ my $self = shift;
+ return $self->{meta} unless @_;
+ $self->{meta} = shift;
+ return $self;
+}
+
+sub has_meta {
+ return scalar %{ shift->meta } ? 1 : 0;
+}
+
+sub config {
+ my $self = shift;
+ return $self->{config} unless @_;
+ $self->{config} = shift;
+ return $self;
+}
+
+sub merge {
+ my $self = shift;
+ return $self->{merge} unless @_;
+ $self->{merge} = shift;
+ return $self;
+}
+
+sub switches {
+ my $self = shift;
+ return $self->{switches} unless @_;
+ $self->{switches} = shift;
+ return $self;
+}
+
+sub test_args {
+ my $self = shift;
+ return $self->{test_args} unless @_;
+ $self->{test_args} = shift;
+ return $self;
+}
+
+=head3 C<assemble_meta>
+
+ my $meta = $source->assemble_meta;
+
+Gathers meta data about the L</raw> source, stashes it in L</meta> and returns
+it as a hashref. This is done so that the L<TAP::Parser::SourceHandler>s don't
+have to repeat common checks. Currently this includes:
+
+ is_scalar => $bool,
+ is_hash => $bool,
+ is_array => $bool,
+
+ # for scalars:
+ length => $n
+ has_newlines => $bool
+
+ # only done if the scalar looks like a filename
+ is_file => $bool,
+ is_dir => $bool,
+ is_symlink => $bool,
+ file => {
+ # only done if the scalar looks like a filename
+ basename => $string, # including ext
+ dir => $string,
+ ext => $string,
+ lc_ext => $string,
+ # system checks
+ exists => $bool,
+ stat => [ ... ], # perldoc -f stat
+ empty => $bool,
+ size => $n,
+ text => $bool,
+ binary => $bool,
+ read => $bool,
+ write => $bool,
+ execute => $bool,
+ setuid => $bool,
+ setgid => $bool,
+ sticky => $bool,
+ is_file => $bool,
+ is_dir => $bool,
+ is_symlink => $bool,
+ # only done if the file's a symlink
+ lstat => [ ... ], # perldoc -f lstat
+ # only done if the file's a readable text file
+ shebang => $first_line,
+ }
+
+ # for arrays:
+ size => $n,
+
+=cut
+
+sub assemble_meta {
+ my ($self) = @_;
+
+ return $self->meta if $self->has_meta;
+
+ my $meta = $self->meta;
+ my $raw = $self->raw;
+
+ # rudimentary is object test - if it's blessed it'll
+ # inherit from UNIVERSAL
+ $meta->{is_object} = UNIVERSAL::isa( $raw, 'UNIVERSAL' ) ? 1 : 0;
+
+ if ( $meta->{is_object} ) {
+ $meta->{class} = ref($raw);
+ }
+ else {
+ my $ref = lc( ref($raw) );
+ $meta->{"is_$ref"} = 1;
+ }
+
+ if ( $meta->{is_scalar} ) {
+ my $source = $$raw;
+ $meta->{length} = length($$raw);
+ $meta->{has_newlines} = $$raw =~ /\n/ ? 1 : 0;
+
+ # only do file checks if it looks like a filename
+ if ( !$meta->{has_newlines} and $meta->{length} < 1024 ) {
+ my $file = {};
+ $file->{exists} = -e $source ? 1 : 0;
+ if ( $file->{exists} ) {
+ $meta->{file} = $file;
+
+ # avoid extra system calls (see `perldoc -f -X`)
+ $file->{stat} = [ stat(_) ];
+ $file->{empty} = -z _ ? 1 : 0;
+ $file->{size} = -s _;
+ $file->{text} = -T _ ? 1 : 0;
+ $file->{binary} = -B _ ? 1 : 0;
+ $file->{read} = -r _ ? 1 : 0;
+ $file->{write} = -w _ ? 1 : 0;
+ $file->{execute} = -x _ ? 1 : 0;
+ $file->{setuid} = -u _ ? 1 : 0;
+ $file->{setgid} = -g _ ? 1 : 0;
+ $file->{sticky} = -k _ ? 1 : 0;
+
+ $meta->{is_file} = $file->{is_file} = -f _ ? 1 : 0;
+ $meta->{is_dir} = $file->{is_dir} = -d _ ? 1 : 0;
+
+ # symlink check requires another system call
+ $meta->{is_symlink} = $file->{is_symlink}
+ = -l $source ? 1 : 0;
+ if ( $file->{is_symlink} ) {
+ $file->{lstat} = [ lstat(_) ];
+ }
+
+ # put together some common info about the file
+ ( $file->{basename}, $file->{dir}, $file->{ext} )
+ = map { defined $_ ? $_ : '' }
+ fileparse( $source, qr/\.[^.]*/ );
+ $file->{lc_ext} = lc( $file->{ext} );
+ $file->{basename} .= $file->{ext} if $file->{ext};
+
+ if ( !$file->{is_dir} && $file->{read} ) {
+ eval { $file->{shebang} = $self->shebang($$raw); };
+ if ( my $e = $@ ) {
+ warn $e;
+ }
+ }
+ }
+ }
+ }
+ elsif ( $meta->{is_array} ) {
+ $meta->{size} = $#$raw + 1;
+ }
+ elsif ( $meta->{is_hash} ) {
+ ; # do nothing
+ }
+
+ return $meta;
+}
+
+=head3 C<shebang>
+
+Get the shebang line for a script file.
+
+ my $shebang = TAP::Parser::Source->shebang( $some_script );
+
+May be called as a class method
+
+=cut
+
+{
+
+ # Global shebang cache.
+ my %shebang_for;
+
+ sub _read_shebang {
+ my ( $class, $file ) = @_;
+ open my $fh, '<', $file or die "Can't read $file: $!\n";
+
+ # Might be a binary file - so read a fixed number of bytes.
+ my $got = read $fh, my ($buf), BLK_SIZE;
+ defined $got or die "I/O error: $!\n";
+ return $1 if $buf =~ /(.*)/;
+ return;
+ }
+
+ sub shebang {
+ my ( $class, $file ) = @_;
+ $shebang_for{$file} = $class->_read_shebang($file)
+ unless exists $shebang_for{$file};
+ return $shebang_for{$file};
+ }
+}
+
+=head3 C<config_for>
+
+ my $config = $source->config_for( $class );
+
+Returns L</config> for the $class given. Class names may be fully qualified
+or abbreviated, eg:
+
+ # these are equivalent
+ $source->config_for( 'Perl' );
+ $source->config_for( 'TAP::Parser::SourceHandler::Perl' );
+
+If a fully qualified $class is given, its abbreviated version is checked first.
+
+=cut
+
+sub config_for {
+ my ( $self, $class ) = @_;
+ my ($abbrv_class) = ( $class =~ /(?:\:\:)?(\w+)$/ );
+ my $config = $self->config->{$abbrv_class} || $self->config->{$class};
+ return $config;
+}
+
+1;
+
+__END__
+
+=head1 AUTHORS
+
+Steve Purkis.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::IteratorFactory>,
+L<TAP::Parser::SourceHandler>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler.pm
new file mode 100755
index 0000000000..4d537550c2
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler.pm
@@ -0,0 +1,191 @@
+package TAP::Parser::SourceHandler;
+
+use strict;
+use warnings;
+
+use TAP::Parser::Iterator ();
+use base 'TAP::Object';
+
+=head1 NAME
+
+TAP::Parser::SourceHandler - Base class for different TAP source handlers
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ # abstract class - don't use directly!
+ # see TAP::Parser::IteratorFactory for general usage
+
+ # must be sub-classed for use
+ package MySourceHandler;
+ use base 'TAP::Parser::SourceHandler';
+ sub can_handle { return $confidence_level }
+ sub make_iterator { return $iterator }
+
+ # see example below for more details
+
+=head1 DESCRIPTION
+
+This is an abstract base class for L<TAP::Parser::Source> handlers / handlers.
+
+A C<TAP::Parser::SourceHandler> does whatever is necessary to produce & capture
+a stream of TAP from the I<raw> source, and package it up in a
+L<TAP::Parser::Iterator> for the parser to consume.
+
+C<SourceHandlers> must implement the I<source detection & handling> interface
+used by L<TAP::Parser::IteratorFactory>. At 2 methods, the interface is pretty
+simple: L</can_handle> and L</make_source>.
+
+Unless you're writing a new L<TAP::Parser::SourceHandler>, a plugin, or
+subclassing L<TAP::Parser>, you probably won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<can_handle>
+
+I<Abstract method>.
+
+ my $vote = $class->can_handle( $source );
+
+C<$source> is a L<TAP::Parser::Source>.
+
+Returns a number between C<0> & C<1> reflecting how confidently the raw source
+can be handled. For example, C<0> means the source cannot handle it, C<0.5>
+means it may be able to, and C<1> means it definitely can. See
+L<TAP::Parser::IteratorFactory/detect_source> for details on how this is used.
+
+=cut
+
+sub can_handle {
+ my ( $class, $args ) = @_;
+ $class->_croak(
+ "Abstract method 'can_handle' not implemented for $class!");
+ return;
+}
+
+=head3 C<make_iterator>
+
+I<Abstract method>.
+
+ my $iterator = $class->make_iterator( $source );
+
+C<$source> is a L<TAP::Parser::Source>.
+
+Returns a new L<TAP::Parser::Iterator> object for use by the L<TAP::Parser>.
+C<croak>s on error.
+
+=cut
+
+sub make_iterator {
+ my ( $class, $args ) = @_;
+ $class->_croak(
+ "Abstract method 'make_iterator' not implemented for $class!");
+ return;
+}
+1;
+
+__END__
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview, and any
+of the subclasses that ship with this module as an example. What follows is
+a quick overview.
+
+Start by familiarizing yourself with L<TAP::Parser::Source> and
+L<TAP::Parser::IteratorFactory>. L<TAP::Parser::SourceHandler::RawTAP> is
+the easiest sub-class to use as an example.
+
+It's important to point out that if you want your subclass to be automatically
+used by L<TAP::Parser> you'll have to and make sure it gets loaded somehow.
+If you're using L<prove> you can write an L<App::Prove> plugin. If you're
+using L<TAP::Parser> or L<TAP::Harness> directly (e.g. through a custom script,
+L<ExtUtils::MakeMaker>, or L<Module::Build>) you can use the C<config> option
+which will cause L<TAP::Parser::IteratorFactory/load_sources> to load your
+subclass).
+
+Don't forget to register your class with
+L<TAP::Parser::IteratorFactory/register_handler>.
+
+=head2 Example
+
+ package MySourceHandler;
+
+ use strict;
+
+ use MySourceHandler; # see TAP::Parser::SourceHandler
+ use TAP::Parser::IteratorFactory;
+
+ use base 'TAP::Parser::SourceHandler';
+
+ TAP::Parser::IteratorFactory->register_handler( __PACKAGE__ );
+
+ sub can_handle {
+ my ( $class, $src ) = @_;
+ my $meta = $src->meta;
+ my $config = $src->config_for( $class );
+
+ if ($config->{accept_all}) {
+ return 1.0;
+ } elsif (my $file = $meta->{file}) {
+ return 0.0 unless $file->{exists};
+ return 1.0 if $file->{lc_ext} eq '.tap';
+ return 0.9 if $file->{shebang} && $file->{shebang} =~ /^#!.+tap/;
+ return 0.5 if $file->{text};
+ return 0.1 if $file->{binary};
+ } elsif ($meta->{scalar}) {
+ return 0.8 if $$raw_source_ref =~ /\d\.\.\d/;
+ return 0.6 if $meta->{has_newlines};
+ } elsif ($meta->{array}) {
+ return 0.8 if $meta->{size} < 5;
+ return 0.6 if $raw_source_ref->[0] =~ /foo/;
+ return 0.5;
+ } elsif ($meta->{hash}) {
+ return 0.6 if $raw_source_ref->{foo};
+ return 0.2;
+ }
+
+ return 0;
+ }
+
+ sub make_iterator {
+ my ($class, $source) = @_;
+ # this is where you manipulate the source and
+ # capture the stream of TAP in an iterator
+ # either pick a TAP::Parser::Iterator::* or write your own...
+ my $iterator = TAP::Parser::Iterator::Array->new([ 'foo', 'bar' ]);
+ return $iterator;
+ }
+
+ 1;
+
+=head1 AUTHORS
+
+TAPx Developers.
+
+Source detection stuff added by Steve Purkis
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Source>,
+L<TAP::Parser::Iterator>,
+L<TAP::Parser::IteratorFactory>,
+L<TAP::Parser::SourceHandler::Executable>,
+L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::File>,
+L<TAP::Parser::SourceHandler::Handle>,
+L<TAP::Parser::SourceHandler::RawTAP>
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Executable.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Executable.pm
new file mode 100755
index 0000000000..e191545732
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Executable.pm
@@ -0,0 +1,187 @@
+package TAP::Parser::SourceHandler::Executable;
+
+use strict;
+use warnings;
+
+use File::Spec;
+
+use TAP::Parser::IteratorFactory ();
+use TAP::Parser::Iterator::Process ();
+
+use base 'TAP::Parser::SourceHandler';
+
+TAP::Parser::IteratorFactory->register_handler(__PACKAGE__);
+
+=head1 NAME
+
+TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP source
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Source;
+ use TAP::Parser::SourceHandler::Executable;
+
+ my $source = TAP::Parser::Source->new->raw(['/usr/bin/ruby', 'mytest.rb']);
+ $source->assemble_meta;
+
+ my $class = 'TAP::Parser::SourceHandler::Executable';
+ my $vote = $class->can_handle( $source );
+ my $iter = $class->make_iterator( $source );
+
+=head1 DESCRIPTION
+
+This is an I<executable> L<TAP::Parser::SourceHandler> - it has 2 jobs:
+
+1. Figure out if the L<TAP::Parser::Source> it's given is an executable
+ command (L</can_handle>).
+
+2. Creates an iterator for executable commands (L</make_iterator>).
+
+Unless you're writing a plugin or subclassing L<TAP::Parser>, you
+probably won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<can_handle>
+
+ my $vote = $class->can_handle( $source );
+
+Only votes if $source looks like an executable file. Casts the
+following votes:
+
+ 0.9 if it's a hash with an 'exec' key
+ 0.8 if it's a .bat file
+ 0.75 if it's got an execute bit set
+
+=cut
+
+sub can_handle {
+ my ( $class, $src ) = @_;
+ my $meta = $src->meta;
+
+ if ( $meta->{is_file} ) {
+ my $file = $meta->{file};
+
+ return 0.85 if $file->{execute} && $file->{binary};
+ return 0.8 if $file->{lc_ext} eq '.bat';
+ return 0.25 if $file->{execute};
+ }
+ elsif ( $meta->{is_hash} ) {
+ return 0.9 if $src->raw->{exec};
+ }
+
+ return 0;
+}
+
+=head3 C<make_iterator>
+
+ my $iterator = $class->make_iterator( $source );
+
+Returns a new L<TAP::Parser::Iterator::Process> for the source.
+C<$source-E<gt>raw> must be in one of the following forms:
+
+ { exec => [ @exec ] }
+
+ [ @exec ]
+
+ $file
+
+C<croak>s on error.
+
+=cut
+
+sub make_iterator {
+ my ( $class, $source ) = @_;
+ my $meta = $source->meta;
+
+ my @command;
+ if ( $meta->{is_hash} ) {
+ @command = @{ $source->raw->{exec} || [] };
+ }
+ elsif ( $meta->{is_scalar} ) {
+ @command = File::Spec->rel2abs( ${ $source->raw } )
+ if ${ $source->raw };
+ }
+ elsif ( $meta->{is_array} ) {
+ @command = @{ $source->raw };
+ }
+
+ $class->_croak('No command found in $source->raw!') unless @command;
+
+ $class->_autoflush( \*STDOUT );
+ $class->_autoflush( \*STDERR );
+
+ push @command, @{ $source->test_args || [] };
+
+ return $class->iterator_class->new(
+ { command => \@command,
+ merge => $source->merge
+ }
+ );
+}
+
+=head3 C<iterator_class>
+
+The class of iterator to use, override if you're sub-classing. Defaults
+to L<TAP::Parser::Iterator::Process>.
+
+=cut
+
+use constant iterator_class => 'TAP::Parser::Iterator::Process';
+
+# Turns on autoflush for the handle passed
+sub _autoflush {
+ my ( $class, $flushed ) = @_;
+ my $old_fh = select $flushed;
+ $| = 1;
+ select $old_fh;
+}
+
+1;
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+=head2 Example
+
+ package MyRubySourceHandler;
+
+ use strict;
+
+ use Carp qw( croak );
+ use TAP::Parser::SourceHandler::Executable;
+
+ use base 'TAP::Parser::SourceHandler::Executable';
+
+ # expect $handler->(['mytest.rb', 'cmdline', 'args']);
+ sub make_iterator {
+ my ($self, $source) = @_;
+ my @test_args = @{ $source->test_args };
+ my $rb_file = $test_args[0];
+ croak("error: Ruby file '$rb_file' not found!") unless (-f $rb_file);
+ return $self->SUPER::raw_source(['/usr/bin/ruby', @test_args]);
+ }
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::IteratorFactory>,
+L<TAP::Parser::SourceHandler>,
+L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::File>,
+L<TAP::Parser::SourceHandler::Handle>,
+L<TAP::Parser::SourceHandler::RawTAP>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/File.pm
new file mode 100755
index 0000000000..9e9684e71f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/File.pm
@@ -0,0 +1,136 @@
+package TAP::Parser::SourceHandler::File;
+
+use strict;
+use warnings;
+
+use TAP::Parser::IteratorFactory ();
+use TAP::Parser::Iterator::Stream ();
+
+use base 'TAP::Parser::SourceHandler';
+
+TAP::Parser::IteratorFactory->register_handler(__PACKAGE__);
+
+=head1 NAME
+
+TAP::Parser::SourceHandler::File - Stream TAP from a text file.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Source;
+ use TAP::Parser::SourceHandler::File;
+
+ my $source = TAP::Parser::Source->new->raw( \'file.tap' );
+ $source->assemble_meta;
+
+ my $class = 'TAP::Parser::SourceHandler::File';
+ my $vote = $class->can_handle( $source );
+ my $iter = $class->make_iterator( $source );
+
+=head1 DESCRIPTION
+
+This is a I<raw TAP stored in a file> L<TAP::Parser::SourceHandler> - it has 2 jobs:
+
+1. Figure out if the I<raw> source it's given is a file containing raw TAP
+output. See L<TAP::Parser::IteratorFactory> for more details.
+
+2. Takes raw TAP from the text file given, and converts into an iterator.
+
+Unless you're writing a plugin or subclassing L<TAP::Parser>, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<can_handle>
+
+ my $vote = $class->can_handle( $source );
+
+Only votes if $source looks like a regular file. Casts the following votes:
+
+ 0.9 if it's a .tap file
+ 0.9 if it has an extension matching any given in user config.
+
+=cut
+
+sub can_handle {
+ my ( $class, $src ) = @_;
+ my $meta = $src->meta;
+ my $config = $src->config_for($class);
+
+ return 0 unless $meta->{is_file};
+ my $file = $meta->{file};
+ return 0.9 if $file->{lc_ext} eq '.tap';
+
+ if ( my $exts = $config->{extensions} ) {
+ my @exts = ref $exts eq 'ARRAY' ? @$exts : $exts;
+ return 0.9 if grep { lc($_) eq $file->{lc_ext} } @exts;
+ }
+
+ return 0;
+}
+
+=head3 C<make_iterator>
+
+ my $iterator = $class->make_iterator( $source );
+
+Returns a new L<TAP::Parser::Iterator::Stream> for the source. C<croak>s
+on error.
+
+=cut
+
+sub make_iterator {
+ my ( $class, $source ) = @_;
+
+ $class->_croak('$source->raw must be a scalar ref')
+ unless $source->meta->{is_scalar};
+
+ my $file = ${ $source->raw };
+ my $fh;
+ open( $fh, '<', $file )
+ or $class->_croak("error opening TAP source file '$file': $!");
+ return $class->iterator_class->new($fh);
+}
+
+=head3 C<iterator_class>
+
+The class of iterator to use, override if you're sub-classing. Defaults
+to L<TAP::Parser::Iterator::Stream>.
+
+=cut
+
+use constant iterator_class => 'TAP::Parser::Iterator::Stream';
+
+1;
+
+__END__
+
+=head1 CONFIGURATION
+
+ {
+ extensions => [ @case_insensitive_exts_to_match ]
+ }
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::SourceHandler>,
+L<TAP::Parser::SourceHandler::Executable>,
+L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::Handle>,
+L<TAP::Parser::SourceHandler::RawTAP>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Handle.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Handle.pm
new file mode 100755
index 0000000000..e01f8afa5b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Handle.pm
@@ -0,0 +1,124 @@
+package TAP::Parser::SourceHandler::Handle;
+
+use strict;
+use warnings;
+
+use TAP::Parser::IteratorFactory ();
+use TAP::Parser::Iterator::Stream ();
+
+use base 'TAP::Parser::SourceHandler';
+
+TAP::Parser::IteratorFactory->register_handler(__PACKAGE__);
+
+=head1 NAME
+
+TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Source;
+ use TAP::Parser::SourceHandler::Executable;
+
+ my $source = TAP::Parser::Source->new->raw( \*TAP_FILE );
+ $source->assemble_meta;
+
+ my $class = 'TAP::Parser::SourceHandler::Handle';
+ my $vote = $class->can_handle( $source );
+ my $iter = $class->make_iterator( $source );
+
+=head1 DESCRIPTION
+
+This is a I<raw TAP stored in an IO Handle> L<TAP::Parser::SourceHandler> class. It
+has 2 jobs:
+
+1. Figure out if the L<TAP::Parser::Source> it's given is an L<IO::Handle> or
+GLOB containing raw TAP output (L</can_handle>).
+
+2. Creates an iterator for IO::Handle's & globs (L</make_iterator>).
+
+Unless you're writing a plugin or subclassing L<TAP::Parser>, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<can_handle>
+
+ my $vote = $class->can_handle( $source );
+
+Casts the following votes:
+
+ 0.9 if $source is an IO::Handle
+ 0.8 if $source is a glob
+
+=cut
+
+sub can_handle {
+ my ( $class, $src ) = @_;
+ my $meta = $src->meta;
+
+ return 0.9
+ if $meta->{is_object}
+ && UNIVERSAL::isa( $src->raw, 'IO::Handle' );
+
+ return 0.8 if $meta->{is_glob};
+
+ return 0;
+}
+
+=head3 C<make_iterator>
+
+ my $iterator = $class->make_iterator( $source );
+
+Returns a new L<TAP::Parser::Iterator::Stream> for the source.
+
+=cut
+
+sub make_iterator {
+ my ( $class, $source ) = @_;
+
+ $class->_croak('$source->raw must be a glob ref or an IO::Handle')
+ unless $source->meta->{is_glob}
+ || UNIVERSAL::isa( $source->raw, 'IO::Handle' );
+
+ return $class->iterator_class->new( $source->raw );
+}
+
+=head3 C<iterator_class>
+
+The class of iterator to use, override if you're sub-classing. Defaults
+to L<TAP::Parser::Iterator::Stream>.
+
+=cut
+
+use constant iterator_class => 'TAP::Parser::Iterator::Stream';
+
+1;
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::Iterator>,
+L<TAP::Parser::Iterator::Stream>,
+L<TAP::Parser::IteratorFactory>,
+L<TAP::Parser::SourceHandler>,
+L<TAP::Parser::SourceHandler::Executable>,
+L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::File>,
+L<TAP::Parser::SourceHandler::RawTAP>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Perl.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Perl.pm
new file mode 100755
index 0000000000..6d9e91d0bd
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/Perl.pm
@@ -0,0 +1,372 @@
+package TAP::Parser::SourceHandler::Perl;
+
+use strict;
+use warnings;
+use Config;
+
+use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
+use constant IS_VMS => ( $^O eq 'VMS' );
+
+use TAP::Parser::IteratorFactory ();
+use TAP::Parser::Iterator::Process ();
+use Text::ParseWords qw(shellwords);
+
+use base 'TAP::Parser::SourceHandler::Executable';
+
+TAP::Parser::IteratorFactory->register_handler(__PACKAGE__);
+
+=head1 NAME
+
+TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Source;
+ use TAP::Parser::SourceHandler::Perl;
+
+ my $source = TAP::Parser::Source->new->raw( \'script.pl' );
+ $source->assemble_meta;
+
+ my $class = 'TAP::Parser::SourceHandler::Perl';
+ my $vote = $class->can_handle( $source );
+ my $iter = $class->make_iterator( $source );
+
+=head1 DESCRIPTION
+
+This is a I<Perl> L<TAP::Parser::SourceHandler> - it has 2 jobs:
+
+1. Figure out if the L<TAP::Parser::Source> it's given is actually a Perl
+script (L</can_handle>).
+
+2. Creates an iterator for Perl sources (L</make_iterator>).
+
+Unless you're writing a plugin or subclassing L<TAP::Parser>, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<can_handle>
+
+ my $vote = $class->can_handle( $source );
+
+Only votes if $source looks like a file. Casts the following votes:
+
+ 0.9 if it has a shebang ala "#!...perl"
+ 0.3 if it has any shebang
+ 0.8 if it's a .t file
+ 0.9 if it's a .pl file
+ 0.75 if it's in a 't' directory
+ 0.25 by default (backwards compat)
+
+=cut
+
+sub can_handle {
+ my ( $class, $source ) = @_;
+ my $meta = $source->meta;
+
+ return 0 unless $meta->{is_file};
+ my $file = $meta->{file};
+
+ my $shebang = $file->{shebang} || '';
+
+ if ( $shebang =~ /^#!/ ) {
+ return 0.9 if $shebang =~ /^#!.*\bperl/;
+
+ # We favour Perl as the interpreter for any shebang to preserve
+ # previous semantics: we used to execute everything via Perl and
+ # relied on it to pass the shebang off to the appropriate
+ # interpreter.
+ return 0.3;
+ }
+
+ return 0.8 if $file->{lc_ext} eq '.t'; # vote higher than Executable
+ return 0.9 if $file->{lc_ext} eq '.pl';
+
+ return 0.75 if $file->{dir} =~ /^t\b/; # vote higher than Executable
+
+ # backwards compat, always vote:
+ return 0.25;
+}
+
+=head3 C<make_iterator>
+
+ my $iterator = $class->make_iterator( $source );
+
+Constructs & returns a new L<TAP::Parser::Iterator::Process> for the source.
+Assumes C<$source-E<gt>raw> contains a reference to the perl script. C<croak>s
+if the file could not be found.
+
+The command to run is built as follows:
+
+ $perl @switches $perl_script @test_args
+
+The perl command to use is determined by L</get_perl>. The command generated
+is guaranteed to preserve:
+
+ PERL5LIB
+ PERL5OPT
+ Taint Mode, if set in the script's shebang
+
+I<Note:> the command generated will I<not> respect any shebang line defined in
+your Perl script. This is only a problem if you have compiled a custom version
+of Perl or if you want to use a specific version of Perl for one test and a
+different version for another, for example:
+
+ #!/path/to/a/custom_perl --some --args
+ #!/usr/local/perl-5.6/bin/perl -w
+
+Currently you need to write a plugin to get around this.
+
+=cut
+
+sub _autoflush_stdhandles {
+ my ($class) = @_;
+
+ $class->_autoflush( \*STDOUT );
+ $class->_autoflush( \*STDERR );
+}
+
+sub make_iterator {
+ my ( $class, $source ) = @_;
+ my $meta = $source->meta;
+ my $perl_script = ${ $source->raw };
+
+ $class->_croak("Cannot find ($perl_script)") unless $meta->{is_file};
+
+ # TODO: does this really need to be done here?
+ $class->_autoflush_stdhandles;
+
+ my ( $libs, $switches )
+ = $class->_mangle_switches(
+ $class->_filter_libs( $class->_switches($source) ) );
+
+ $class->_run( $source, $libs, $switches );
+}
+
+
+sub _has_taint_switch {
+ my( $class, $switches ) = @_;
+
+ my $has_taint = grep { $_ eq "-T" || $_ eq "-t" } @{$switches};
+ return $has_taint ? 1 : 0;
+}
+
+sub _mangle_switches {
+ my ( $class, $libs, $switches ) = @_;
+
+ # Taint mode ignores environment variables so we must retranslate
+ # PERL5LIB as -I switches and place PERL5OPT on the command line
+ # in order that it be seen.
+ if ( $class->_has_taint_switch($switches) ) {
+ my @perl5lib = defined $ENV{PERL5LIB} ? split /$Config{path_sep}/, $ENV{PERL5LIB} : ();
+ return (
+ $libs,
+ [ @{$switches},
+ $class->_libs2switches([@$libs, @perl5lib]),
+ defined $ENV{PERL5OPT} ? shellwords( $ENV{PERL5OPT} ) : ()
+ ],
+ );
+ }
+
+ return ( $libs, $switches );
+}
+
+sub _filter_libs {
+ my ( $class, @switches ) = @_;
+
+ my $path_sep = $Config{path_sep};
+ my $path_re = qr{$path_sep};
+
+ # Filter out any -I switches to be handled as libs later.
+ #
+ # Nasty kludge. It might be nicer if we got the libs separately
+ # although at least this way we find any -I switches that were
+ # supplied other then as explicit libs.
+ #
+ # We filter out any names containing colons because they will break
+ # PERL5LIB
+ my @libs;
+ my @filtered_switches;
+ for (@switches) {
+ if ( !/$path_re/ && m/ ^ ['"]? -I ['"]? (.*?) ['"]? $ /x ) {
+ push @libs, $1;
+ }
+ else {
+ push @filtered_switches, $_;
+ }
+ }
+
+ return \@libs, \@filtered_switches;
+}
+
+sub _iterator_hooks {
+ my ( $class, $source, $libs, $switches ) = @_;
+
+ my $setup = sub {
+ if ( @{$libs} and !$class->_has_taint_switch($switches) ) {
+ $ENV{PERL5LIB} = join(
+ $Config{path_sep}, grep {defined} @{$libs},
+ $ENV{PERL5LIB}
+ );
+ }
+ };
+
+ # VMS environment variables aren't guaranteed to reset at the end of
+ # the process, so we need to put PERL5LIB back.
+ my $previous = $ENV{PERL5LIB};
+ my $teardown = sub {
+ if ( defined $previous ) {
+ $ENV{PERL5LIB} = $previous;
+ }
+ else {
+ delete $ENV{PERL5LIB};
+ }
+ };
+
+ return ( $setup, $teardown );
+}
+
+sub _run {
+ my ( $class, $source, $libs, $switches ) = @_;
+
+ my @command = $class->_get_command_for_switches( $source, $switches )
+ or $class->_croak("No command found!");
+
+ my ( $setup, $teardown ) = $class->_iterator_hooks( $source, $libs, $switches );
+
+ return $class->_create_iterator( $source, \@command, $setup, $teardown );
+}
+
+sub _create_iterator {
+ my ( $class, $source, $command, $setup, $teardown ) = @_;
+
+ return TAP::Parser::Iterator::Process->new(
+ { command => $command,
+ merge => $source->merge,
+ setup => $setup,
+ teardown => $teardown,
+ }
+ );
+}
+
+sub _get_command_for_switches {
+ my ( $class, $source, $switches ) = @_;
+ my $file = ${ $source->raw };
+ my @args = @{ $source->test_args || [] };
+ my $command = $class->get_perl;
+
+ # XXX don't need to quote if we treat the parts as atoms (except maybe vms)
+ #$file = qq["$file"] if ( $file =~ /\s/ ) && ( $file !~ /^".*"$/ );
+ my @command = ( $command, @{$switches}, $file, @args );
+ return @command;
+}
+
+sub _libs2switches {
+ my $class = shift;
+ return map {"-I$_"} grep {$_} @{ $_[0] };
+}
+
+=head3 C<get_taint>
+
+Decode any taint switches from a Perl shebang line.
+
+ # $taint will be 't'
+ my $taint = TAP::Parser::SourceHandler::Perl->get_taint( '#!/usr/bin/perl -t' );
+
+ # $untaint will be undefined
+ my $untaint = TAP::Parser::SourceHandler::Perl->get_taint( '#!/usr/bin/perl' );
+
+=cut
+
+sub get_taint {
+ my ( $class, $shebang ) = @_;
+ return
+ unless defined $shebang
+ && $shebang =~ /^#!.*\bperl.*\s-\w*([Tt]+)/;
+ return $1;
+}
+
+sub _switches {
+ my ( $class, $source ) = @_;
+ my $file = ${ $source->raw };
+ my @switches = @{ $source->switches || [] };
+ my $shebang = $source->meta->{file}->{shebang};
+ return unless defined $shebang;
+
+ my $taint = $class->get_taint($shebang);
+ push @switches, "-$taint" if defined $taint;
+
+ # Quote the argument if we're VMS, since VMS will downcase anything
+ # not quoted.
+ if (IS_VMS) {
+ for (@switches) {
+ $_ = qq["$_"];
+ }
+ }
+
+ return @switches;
+}
+
+=head3 C<get_perl>
+
+Gets the version of Perl currently running the test suite.
+
+=cut
+
+sub get_perl {
+ my $class = shift;
+ return $ENV{HARNESS_PERL} if defined $ENV{HARNESS_PERL};
+ return qq["$^X"] if IS_WIN32 && ( $^X =~ /[^\w\.\/\\]/ );
+ return $^X;
+}
+
+1;
+
+__END__
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+=head2 Example
+
+ package MyPerlSourceHandler;
+
+ use strict;
+
+ use TAP::Parser::SourceHandler::Perl;
+
+ use base 'TAP::Parser::SourceHandler::Perl';
+
+ # use the version of perl from the shebang line in the test file
+ sub get_perl {
+ my $self = shift;
+ if (my $shebang = $self->shebang( $self->{file} )) {
+ $shebang =~ /^#!(.*\bperl.*?)(?:(?:\s)|(?:$))/;
+ return $1 if $1;
+ }
+ return $self->SUPER::get_perl(@_);
+ }
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::IteratorFactory>,
+L<TAP::Parser::SourceHandler>,
+L<TAP::Parser::SourceHandler::Executable>,
+L<TAP::Parser::SourceHandler::File>,
+L<TAP::Parser::SourceHandler::Handle>,
+L<TAP::Parser::SourceHandler::RawTAP>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/RawTAP.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/RawTAP.pm
new file mode 100755
index 0000000000..c861de2717
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/SourceHandler/RawTAP.pm
@@ -0,0 +1,130 @@
+package TAP::Parser::SourceHandler::RawTAP;
+
+use strict;
+use warnings;
+
+use TAP::Parser::IteratorFactory ();
+use TAP::Parser::Iterator::Array ();
+
+use base 'TAP::Parser::SourceHandler';
+
+TAP::Parser::IteratorFactory->register_handler(__PACKAGE__);
+
+=head1 NAME
+
+TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/array ref.
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::Source;
+ use TAP::Parser::SourceHandler::RawTAP;
+
+ my $source = TAP::Parser::Source->new->raw( \"1..1\nok 1\n" );
+ $source->assemble_meta;
+
+ my $class = 'TAP::Parser::SourceHandler::RawTAP';
+ my $vote = $class->can_handle( $source );
+ my $iter = $class->make_iterator( $source );
+
+=head1 DESCRIPTION
+
+This is a I<raw TAP output> L<TAP::Parser::SourceHandler> - it has 2 jobs:
+
+1. Figure out if the L<TAP::Parser::Source> it's given is raw TAP output
+(L</can_handle>).
+
+2. Creates an iterator for raw TAP output (L</make_iterator>).
+
+Unless you're writing a plugin or subclassing L<TAP::Parser>, you probably
+won't need to use this module directly.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<can_handle>
+
+ my $vote = $class->can_handle( $source );
+
+Only votes if $source is an array, or a scalar with newlines. Casts the
+following votes:
+
+ 0.9 if it's a scalar with '..' in it
+ 0.7 if it's a scalar with 'ok' in it
+ 0.3 if it's just a scalar with newlines
+ 0.5 if it's an array
+
+=cut
+
+sub can_handle {
+ my ( $class, $src ) = @_;
+ my $meta = $src->meta;
+
+ return 0 if $meta->{file};
+ if ( $meta->{is_scalar} ) {
+ return 0 unless $meta->{has_newlines};
+ return 0.9 if ${ $src->raw } =~ /\d\.\.\d/;
+ return 0.7 if ${ $src->raw } =~ /ok/;
+ return 0.3;
+ }
+ elsif ( $meta->{is_array} ) {
+ return 0.5;
+ }
+ return 0;
+}
+
+=head3 C<make_iterator>
+
+ my $iterator = $class->make_iterator( $source );
+
+Returns a new L<TAP::Parser::Iterator::Array> for the source.
+C<$source-E<gt>raw> must be an array ref, or a scalar ref.
+
+C<croak>s on error.
+
+=cut
+
+sub make_iterator {
+ my ( $class, $src ) = @_;
+ my $meta = $src->meta;
+
+ my $tap_array;
+ if ( $meta->{is_scalar} ) {
+ $tap_array = [ split "\n" => ${ $src->raw } ];
+ }
+ elsif ( $meta->{is_array} ) {
+ $tap_array = $src->raw;
+ }
+
+ $class->_croak('No raw TAP found in $source->raw')
+ unless scalar $tap_array;
+
+ return TAP::Parser::Iterator::Array->new($tap_array);
+}
+
+1;
+
+=head1 SUBCLASSING
+
+Please see L<TAP::Parser/SUBCLASSING> for a subclassing overview.
+
+=head1 SEE ALSO
+
+L<TAP::Object>,
+L<TAP::Parser>,
+L<TAP::Parser::IteratorFactory>,
+L<TAP::Parser::SourceHandler>,
+L<TAP::Parser::SourceHandler::Executable>,
+L<TAP::Parser::SourceHandler::Perl>,
+L<TAP::Parser::SourceHandler::File>,
+L<TAP::Parser::SourceHandler::Handle>
+
+=cut
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Reader.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Reader.pm
new file mode 100755
index 0000000000..0250ad2983
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Reader.pm
@@ -0,0 +1,347 @@
+package TAP::Parser::YAMLish::Reader;
+
+use strict;
+use warnings;
+
+use base 'TAP::Object';
+
+our $VERSION = '3.48';
+
+ # No EBCDIC support on early perls
+*to_native = (ord "A" == 65 || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::unicode_to_native(shift) };
+
+# TODO:
+# Handle blessed object syntax
+
+# Printable characters for escapes
+my %UNESCAPES = (
+ z => "\x00", a => "\a", t => "\t",
+ n => "\n", v => "\cK", f => "\f",
+ r => "\r", e => "\e", '\\' => '\\',
+);
+
+my $QQ_STRING = qr{ " (?:\\. | [^"])* " }x;
+my $HASH_LINE = qr{ ^ ($QQ_STRING|\S+) \s* : \s* (?: (.+?) \s* )? $ }x;
+my $IS_HASH_KEY = qr{ ^ [\w\'\"] }x;
+my $IS_END_YAML = qr{ ^ \.\.\. \s* $ }x;
+my $IS_QQ_STRING = qr{ ^ $QQ_STRING $ }x;
+my $IS_ARRAY_LINE = qr{ ^ - \s* ($QQ_STRING|\S+) }x;
+
+# new() implementation supplied by TAP::Object
+
+sub read {
+ my $self = shift;
+ my $obj = shift;
+
+ die "Must have a code reference to read input from"
+ unless ref $obj eq 'CODE';
+
+ $self->{reader} = $obj;
+ $self->{capture} = [];
+
+ # Prime the reader
+ $self->_next;
+ return unless $self->{next};
+
+ my $doc = $self->_read;
+
+ # The terminator is mandatory otherwise we'd consume a line from the
+ # iterator that doesn't belong to us. If we want to remove this
+ # restriction we'll have to implement look-ahead in the iterators.
+ # Which might not be a bad idea.
+ my $dots = $self->_peek;
+ die "Missing '...' at end of YAMLish"
+ unless defined $dots
+ and $dots =~ $IS_END_YAML;
+
+ delete $self->{reader};
+ delete $self->{next};
+
+ return $doc;
+}
+
+sub get_raw { join( "\n", grep defined, @{ shift->{capture} || [] } ) . "\n" }
+
+sub _peek {
+ my $self = shift;
+ return $self->{next} unless wantarray;
+ my $line = $self->{next};
+ $line =~ /^ (\s*) (.*) $ /x;
+ return ( $2, length $1 );
+}
+
+sub _next {
+ my $self = shift;
+ die "_next called with no reader"
+ unless $self->{reader};
+ my $line = $self->{reader}->();
+ $self->{next} = $line;
+ push @{ $self->{capture} }, $line;
+}
+
+sub _read {
+ my $self = shift;
+
+ my $line = $self->_peek;
+
+ # Do we have a document header?
+ if ( $line =~ /^ --- (?: \s* (.+?)? \s* )? $/x ) {
+ $self->_next;
+
+ return $self->_read_scalar($1) if defined $1; # Inline?
+
+ my ( $next, $indent ) = $self->_peek;
+
+ if ( $next =~ /^ - /x ) {
+ return $self->_read_array($indent);
+ }
+ elsif ( $next =~ $IS_HASH_KEY ) {
+ return $self->_read_hash( $next, $indent );
+ }
+ elsif ( $next =~ $IS_END_YAML ) {
+ die "Premature end of YAMLish";
+ }
+ else {
+ die "Unsupported YAMLish syntax: '$next'";
+ }
+ }
+ else {
+ die "YAMLish document header not found";
+ }
+}
+
+# Parse a double quoted string
+sub _read_qq {
+ my $self = shift;
+ my $str = shift;
+
+ unless ( $str =~ s/^ " (.*?) " $/$1/x ) {
+ die "Internal: not a quoted string";
+ }
+
+ $str =~ s/\\"/"/gx;
+ $str =~ s/ \\ ( [tartan\\favez] | x([0-9a-fA-F]{2}) )
+ / (length($1) > 1) ? pack("H2", to_native($2))
+ : $UNESCAPES{$1} /gex;
+ return $str;
+}
+
+# Parse a scalar string to the actual scalar
+sub _read_scalar {
+ my $self = shift;
+ my $string = shift;
+
+ return undef if $string eq '~';
+ return {} if $string eq '{}';
+ return [] if $string eq '[]';
+
+ if ( $string eq '>' || $string eq '|' ) {
+
+ my ( $line, $indent ) = $self->_peek;
+ die "Multi-line scalar content missing" unless defined $line;
+
+ my @multiline = ($line);
+
+ while (1) {
+ $self->_next;
+ my ( $next, $ind ) = $self->_peek;
+ last if $ind < $indent;
+
+ my $pad = $string eq '|' ? ( ' ' x ( $ind - $indent ) ) : '';
+ push @multiline, $pad . $next;
+ }
+
+ return join( ( $string eq '>' ? ' ' : "\n" ), @multiline ) . "\n";
+ }
+
+ if ( $string =~ /^ ' (.*) ' $/x ) {
+ ( my $rv = $1 ) =~ s/''/'/g;
+ return $rv;
+ }
+
+ if ( $string =~ $IS_QQ_STRING ) {
+ return $self->_read_qq($string);
+ }
+
+ if ( $string =~ /^['"]/ ) {
+
+ # A quote with folding... we don't support that
+ die __PACKAGE__ . " does not support multi-line quoted scalars";
+ }
+
+ # Regular unquoted string
+ return $string;
+}
+
+sub _read_nested {
+ my $self = shift;
+
+ my ( $line, $indent ) = $self->_peek;
+
+ if ( $line =~ /^ -/x ) {
+ return $self->_read_array($indent);
+ }
+ elsif ( $line =~ $IS_HASH_KEY ) {
+ return $self->_read_hash( $line, $indent );
+ }
+ else {
+ die "Unsupported YAMLish syntax: '$line'";
+ }
+}
+
+# Parse an array
+sub _read_array {
+ my ( $self, $limit ) = @_;
+
+ my $ar = [];
+
+ while (1) {
+ my ( $line, $indent ) = $self->_peek;
+ last
+ if $indent < $limit
+ || !defined $line
+ || $line =~ $IS_END_YAML;
+
+ if ( $indent > $limit ) {
+ die "Array line over-indented";
+ }
+
+ if ( $line =~ /^ (- \s+) \S+ \s* : (?: \s+ | $ ) /x ) {
+ $indent += length $1;
+ $line =~ s/-\s+//;
+ push @$ar, $self->_read_hash( $line, $indent );
+ }
+ elsif ( $line =~ /^ - \s* (.+?) \s* $/x ) {
+ die "Unexpected start of YAMLish" if $line =~ /^---/;
+ $self->_next;
+ push @$ar, $self->_read_scalar($1);
+ }
+ elsif ( $line =~ /^ - \s* $/x ) {
+ $self->_next;
+ push @$ar, $self->_read_nested;
+ }
+ elsif ( $line =~ $IS_HASH_KEY ) {
+ $self->_next;
+ push @$ar, $self->_read_hash( $line, $indent, );
+ }
+ else {
+ die "Unsupported YAMLish syntax: '$line'";
+ }
+ }
+
+ return $ar;
+}
+
+sub _read_hash {
+ my ( $self, $line, $limit ) = @_;
+
+ my $indent;
+ my $hash = {};
+
+ while (1) {
+ die "Badly formed hash line: '$line'"
+ unless $line =~ $HASH_LINE;
+
+ my ( $key, $value ) = ( $self->_read_scalar($1), $2 );
+ $self->_next;
+
+ my ( $next_line, $next_indent ) = $self->_peek;
+
+ if ( defined $value ) {
+ $hash->{$key} = $self->_read_scalar($value);
+ }
+ elsif (not defined $value # no explicit undef ("~") given
+ and $next_indent <= $limit # next line is same or less indentation
+ and $next_line !~ $IS_ARRAY_LINE) # arrays can start at same indent
+ {
+ $hash->{$key} = undef;
+ }
+ else {
+ $hash->{$key} = $self->_read_nested;
+ }
+
+ ( $line, $indent ) = $self->_peek;
+ last
+ if $indent < $limit
+ || !defined $line
+ || $line =~ $IS_END_YAML;
+ }
+
+ return $hash;
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator
+
+=head1 VERSION
+
+Version 3.48
+
+=head1 SYNOPSIS
+
+=head1 DESCRIPTION
+
+Note that parts of this code were derived from L<YAML::Tiny> with the
+permission of Adam Kennedy.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+The constructor C<new> creates and returns an empty
+C<TAP::Parser::YAMLish::Reader> object.
+
+ my $reader = TAP::Parser::YAMLish::Reader->new;
+
+=head2 Instance Methods
+
+=head3 C<read>
+
+ my $got = $reader->read($iterator);
+
+Read YAMLish from a L<TAP::Parser::Iterator> and return the data structure it
+represents.
+
+=head3 C<get_raw>
+
+ my $source = $reader->get_source;
+
+Return the raw YAMLish source from the most recent C<read>.
+
+=head1 AUTHOR
+
+Andy Armstrong, <andy@hexten.net>
+
+Adam Kennedy wrote L<YAML::Tiny> which provided the template and many of
+the YAML matching regular expressions for this module.
+
+=head1 SEE ALSO
+
+L<YAML::Tiny>, L<YAML>, L<YAML::Syck>, L<Config::Tiny>, L<CSS::Tiny>,
+L<http://use.perl.org/~Alias/journal/29427>
+
+=head1 COPYRIGHT
+
+Copyright 2007-2011 Andy Armstrong.
+
+Portions copyright 2006-2008 Adam Kennedy.
+
+This program is free software; you can redistribute
+it and/or modify it under the same terms as Perl itself.
+
+The full text of the license can be found in the
+LICENSE file included with this module.
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Writer.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Writer.pm
new file mode 100755
index 0000000000..a11a02a285
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/TAP/Parser/YAMLish/Writer.pm
@@ -0,0 +1,263 @@
+package TAP::Parser::YAMLish::Writer;
+
+use strict;
+use warnings;
+
+use base 'TAP::Object';
+
+our $VERSION = '3.48';
+
+ # No EBCDIC support on early perls
+*from_native = (ord "A" == 65 || $] < 5.008)
+ ? sub { return shift }
+ : sub { utf8::native_to_unicode(shift) };
+
+my $ESCAPE_CHAR = qr{ [ [:cntrl:] \" ] }x;
+my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x;
+
+my @UNPRINTABLE;
+$UNPRINTABLE[$_] = sprintf("x%02x", from_native($_)) for 0 .. ord(" ") - 1;
+$UNPRINTABLE[ord "\0"] = 'z';
+$UNPRINTABLE[ord "\a"] = 'a';
+$UNPRINTABLE[ord "\t"] = 't';
+$UNPRINTABLE[ord "\n"] = 'n';
+$UNPRINTABLE[ord "\cK"] = 'v';
+$UNPRINTABLE[ord "\f"] = 'f';
+$UNPRINTABLE[ord "\r"] = 'r';
+$UNPRINTABLE[ord "\e"] = 'e';
+
+# new() implementation supplied by TAP::Object
+
+sub write {
+ my $self = shift;
+
+ die "Need something to write"
+ unless @_;
+
+ my $obj = shift;
+ my $out = shift || \*STDOUT;
+
+ die "Need a reference to something I can write to"
+ unless ref $out;
+
+ $self->{writer} = $self->_make_writer($out);
+
+ $self->_write_obj( '---', $obj );
+ $self->_put('...');
+
+ delete $self->{writer};
+}
+
+sub _make_writer {
+ my $self = shift;
+ my $out = shift;
+
+ my $ref = ref $out;
+
+ if ( 'CODE' eq $ref ) {
+ return $out;
+ }
+ elsif ( 'ARRAY' eq $ref ) {
+ return sub { push @$out, shift };
+ }
+ elsif ( 'SCALAR' eq $ref ) {
+ return sub { $$out .= shift() . "\n" };
+ }
+ elsif ( 'GLOB' eq $ref || 'IO::Handle' eq $ref ) {
+ return sub { print $out shift(), "\n" };
+ }
+
+ die "Can't write to $out";
+}
+
+sub _put {
+ my $self = shift;
+ $self->{writer}->( join '', @_ );
+}
+
+sub _enc_scalar {
+ my $self = shift;
+ my $val = shift;
+ my $rule = shift;
+
+ return '~' unless defined $val;
+
+ if ( $val =~ /$rule/ ) {
+ $val =~ s/\\/\\\\/g;
+ $val =~ s/"/\\"/g;
+ $val =~ s/ ( [[:cntrl:]] ) / '\\' . $UNPRINTABLE[ ord($1) ] /gex;
+ return qq{"$val"};
+ }
+
+ if ( length($val) == 0 or $val =~ /\s/ ) {
+ $val =~ s/'/''/;
+ return "'$val'";
+ }
+
+ return $val;
+}
+
+sub _write_obj {
+ my $self = shift;
+ my $prefix = shift;
+ my $obj = shift;
+ my $indent = shift || 0;
+
+ if ( my $ref = ref $obj ) {
+ my $pad = ' ' x $indent;
+ if ( 'HASH' eq $ref ) {
+ if ( keys %$obj ) {
+ $self->_put($prefix);
+ for my $key ( sort keys %$obj ) {
+ my $value = $obj->{$key};
+ $self->_write_obj(
+ $pad . $self->_enc_scalar( $key, $ESCAPE_KEY ) . ':',
+ $value, $indent + 1
+ );
+ }
+ }
+ else {
+ $self->_put( $prefix, ' {}' );
+ }
+ }
+ elsif ( 'ARRAY' eq $ref ) {
+ if (@$obj) {
+ $self->_put($prefix);
+ for my $value (@$obj) {
+ $self->_write_obj(
+ $pad . '-', $value,
+ $indent + 1
+ );
+ }
+ }
+ else {
+ $self->_put( $prefix, ' []' );
+ }
+ }
+ else {
+ die "Don't know how to encode $ref";
+ }
+ }
+ else {
+ $self->_put( $prefix, ' ', $self->_enc_scalar( $obj, $ESCAPE_CHAR ) );
+ }
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+TAP::Parser::YAMLish::Writer - Write YAMLish data
+
+=head1 VERSION
+
+Version 3.48
+
+=head1 SYNOPSIS
+
+ use TAP::Parser::YAMLish::Writer;
+
+ my $data = {
+ one => 1,
+ two => 2,
+ three => [ 1, 2, 3 ],
+ };
+
+ my $yw = TAP::Parser::YAMLish::Writer->new;
+
+ # Write to an array...
+ $yw->write( $data, \@some_array );
+
+ # ...an open file handle...
+ $yw->write( $data, $some_file_handle );
+
+ # ...a string ...
+ $yw->write( $data, \$some_string );
+
+ # ...or a closure
+ $yw->write( $data, sub {
+ my $line = shift;
+ print "$line\n";
+ } );
+
+=head1 DESCRIPTION
+
+Encodes a scalar, hash reference or array reference as YAMLish.
+
+=head1 METHODS
+
+=head2 Class Methods
+
+=head3 C<new>
+
+ my $writer = TAP::Parser::YAMLish::Writer->new;
+
+The constructor C<new> creates and returns an empty
+C<TAP::Parser::YAMLish::Writer> object.
+
+=head2 Instance Methods
+
+=head3 C<write>
+
+ $writer->write($obj, $output );
+
+Encode a scalar, hash reference or array reference as YAML.
+
+ my $writer = sub {
+ my $line = shift;
+ print SOMEFILE "$line\n";
+ };
+
+ my $data = {
+ one => 1,
+ two => 2,
+ three => [ 1, 2, 3 ],
+ };
+
+ my $yw = TAP::Parser::YAMLish::Writer->new;
+ $yw->write( $data, $writer );
+
+
+The C< $output > argument may be:
+
+=over
+
+=item * a reference to a scalar to append YAML to
+
+=item * the handle of an open file
+
+=item * a reference to an array into which YAML will be pushed
+
+=item * a code reference
+
+=back
+
+If you supply a code reference the subroutine will be called once for
+each line of output with the line as its only argument. Passed lines
+will have no trailing newline.
+
+=head1 AUTHOR
+
+Andy Armstrong, <andy@hexten.net>
+
+=head1 SEE ALSO
+
+L<YAML::Tiny>, L<YAML>, L<YAML::Syck>, L<Config::Tiny>, L<CSS::Tiny>,
+L<http://use.perl.org/~Alias/journal/29427>
+
+=head1 COPYRIGHT
+
+Copyright 2007-2011 Andy Armstrong.
+
+This program is free software; you can redistribute
+it and/or modify it under the same terms as Perl itself.
+
+The full text of the license can be found in the
+LICENSE file included with this module.
+
+=cut
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Fatal.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Fatal.pm
index 4fd0e2f361..2d90b3a6ee 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Fatal.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Fatal.pm
@@ -2,7 +2,7 @@ use strict;
use warnings;
package Test::Fatal;
# ABSTRACT: incredibly simple helpers for testing code with exceptions
-$Test::Fatal::VERSION = '0.016';
+$Test::Fatal::VERSION = '0.017';
#pod =head1 SYNOPSIS
#pod
#pod use Test::More;
@@ -105,7 +105,7 @@ our @EXPORT_OK = qw(exception success dies_ok lives_ok);
#pod exception_like(sub { }, [ qr/foo/, 'foo appears in the exception' ] );
#pod
#pod To aid in avoiding the problem where the pattern is seen in the exception
-#pod because of the call stack, C<$Carp::MAxArgNums> is locally set to -1 when the
+#pod because of the call stack, C<$Carp::MaxArgNums> is locally set to -1 when the
#pod code block is called. If you really don't want that, set it back to whatever
#pod value you like at the beginning of the code block. Obviously, this solution
#pod doens't affect all possible ways that args of subroutines in the call stack
@@ -197,7 +197,7 @@ sub success (&;@) {
#pod =func lives_ok
#pod
#pod Exported only by request, these two functions run a given block of code, and
-#pod provide TAP output indicating if it did, or did not throw an exception.
+#pod provide TAP output indicating if it did, or did not throw an exception.
#pod These provide an easy upgrade path for replacing existing unit tests based on
#pod C<Test::Exception>.
#pod
@@ -270,7 +270,7 @@ Test::Fatal - incredibly simple helpers for testing code with exceptions
=head1 VERSION
-version 0.016
+version 0.017
=head1 SYNOPSIS
@@ -311,6 +311,16 @@ false positives if exceptions use stack traces that show arguments. For a more
magical approach involving globally overriding C<caller>, see
L<Test::Exception>.
+=head1 PERL VERSION
+
+This library should run on perls released even a long time ago. It should work
+on any version of perl released in the last five years.
+
+Although it may work on older versions of perl, no guarantee is made that the
+minimum required version will not be increased. The version may be increased
+for any reason, and there is no promise that patches will be accepted to lower
+the minimum required perl.
+
=head1 FUNCTIONS
=head2 exception
@@ -366,7 +376,7 @@ arguments in an array reference to hide the literal text from a stack trace:
exception_like(sub { }, [ qr/foo/, 'foo appears in the exception' ] );
To aid in avoiding the problem where the pattern is seen in the exception
-because of the call stack, C<$Carp::MAxArgNums> is locally set to -1 when the
+because of the call stack, C<$Carp::MaxArgNums> is locally set to -1 when the
code block is called. If you really don't want that, set it back to whatever
value you like at the beginning of the code block. Obviously, this solution
doens't affect all possible ways that args of subroutines in the call stack
@@ -407,7 +417,7 @@ success blocks may sometimes help organize complex testing.
=head2 lives_ok
Exported only by request, these two functions run a given block of code, and
-provide TAP output indicating if it did, or did not throw an exception.
+provide TAP output indicating if it did, or did not throw an exception.
These provide an easy upgrade path for replacing existing unit tests based on
C<Test::Exception>.
@@ -423,11 +433,11 @@ use Test::Fatal's C<exception> routine.
=head1 AUTHOR
-Ricardo Signes <rjbs@cpan.org>
+Ricardo Signes <cpan@semiotic.systems>
=head1 CONTRIBUTORS
-=for stopwords David Golden Graham Knop Jesse Luehrs Joel Bernstein Karen Etheridge
+=for stopwords David Golden Graham Knop Jesse Luehrs Joel Bernstein Karen Etheridge Ricardo Signes
=over 4
@@ -451,6 +461,10 @@ Joel Bernstein <joel@fysh.org>
Karen Etheridge <ether@cpan.org>
+=item *
+
+Ricardo Signes <rjbs@semiotic.systems>
+
=back
=head1 COPYRIGHT AND LICENSE
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/HACKING.pod b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/HACKING.pod
new file mode 100755
index 0000000000..91b33011a0
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/HACKING.pod
@@ -0,0 +1,264 @@
+
+# this is in pod format (try `perldoc HACKING.pod`)
+
+=pod
+
+=head1 NAME
+
+HACKING.pod - contributing to TAP::Harness
+
+=head1 ABOUT
+
+This is the guide for TAP::Harness internals contributors (developers,
+testers, documenters.)
+
+If you are looking for more information on how to I<use> TAP::Harness,
+you probably want
+L<http://testanything.org/testing-with-tap/perl/tap-parser-cookbook.html>
+instead.
+
+=head1 Getting Started
+
+See the resources section in I<META.yml> or I<Build.PL> for links to the
+project mailing list, bug tracker, svn repository, etc.
+
+For ease of reference, at the time of writing the SVN repository was at:
+
+ http://svn.hexten.net/tapx
+
+To get the latest version of trunk:
+
+ git clone git://github.com/Perl-Toolchain-Gang/Test-Harness.git
+
+For best results, read the rest of this file, check RT for bugs which
+scratch your itch, join the mailing list, etc.
+
+=head1 Formatting
+
+=head2 perltidy
+
+The project comes with a C<.perltidyrc>, which perltidy will
+automatically use if the project root is your working directory. This
+is setup by default to read and write the perl code on a pipe. To
+configure your editor:
+
+=over 4
+
+=item * vim
+
+In C<.vimrc>, you can add the following lines:
+
+ nnoremap <Leader>pt :%!perltidy -q<cr> " only work in 'normal' mode
+ vnoremap <Leader>pt :!perltidy -q<cr> " only work in 'visual' mode
+
+In other words, if your C<Leader> is a backslash, you can type C<\pt> to
+reformat the file using the C<.perltidyrc>. If you are in visual mode
+(selecting lines with shift-v), then only the code you have currently have
+selected will be reformatted.
+
+=item * emacs
+
+For emacs, you can use this snippet from Sam Tregar
+(L<http://use.perl.org/~samtregar/journal/30185>):
+
+ (defun perltidy-region ()
+ "Run perltidy on the current region."
+ (interactive)
+ (save-excursion
+ (shell-command-on-region (point) (mark) "perltidy -q" nil t)
+ (cperl-mode)))
+
+ (defun perltidy-all ()
+ "Run perltidy on the current region."
+ (interactive)
+ (let ((p (point)))
+ (save-excursion
+ (shell-command-on-region (point-min) (point-max) "perltidy -q" nil t)
+ )
+ (goto-char p)
+ (cperl-mode)))
+
+ (global-set-key "\M-t" `perltidy-region)
+ (global-set-key "\M-T" `perltidy-all)
+
+=back
+
+=head1 Tests and Coverage
+
+...
+
+=for eric_not_it
+ TODO link to a good guide on writing tests for TAP::Parser
+
+=head1 Writing for Compatibility
+
+...
+
+=for eric_not_it
+ TODO explain no bundling, PERL_CORE, etc
+
+=head1 Use TAP::Object
+
+TAP::Object is the common base class to all TAP::* modules, and should be for
+any that you write.
+
+=head1 Exception Handling
+
+Exceptions should be raised with L<Carp>:
+
+ require Carp;
+ Carp::croak("Unsupported syntax version: $version");
+
+ require Carp;
+ Carp::confess("Unsupported syntax version: $version");
+
+=head1 Deprecation cycle
+
+Any I<documented> sub that needs to be changed or removed (and would therefore
+cause a backwards-compat issue) must go through a deprecation cycle to give
+developers a chance to adjust:
+
+ 1. Document the deprecation
+ 2. Carp a suitable message
+ 3. Release
+ 4. Change the code
+ 5. Release
+
+=head1 Documentation
+
+The end-user and API documentation is all in the 'lib/' directory. In
+.pm files, the pod is "inline" to the code. See L<perlpod> for more
+about pod.
+
+=head2 Pod Commands
+
+For compatibility's sake, we do not use the =head3 and =head4 commands.
+
+=over
+
+=item C<=head1 SECTION>
+
+Sections begin with an C<=head1> command and are all-caps.
+
+=for eric_not_it
+ I guess... Mixed case messes with various pod hacking tools.
+
+ NAME
+ VERSION
+ SYNOPSIS
+ CONSTRUCTOR
+ METHODS
+ CLASS METHODS
+ SOME OTHER SORT OF METHODS
+ SEE ALSO
+
+=item C<=head2 method>
+
+=for eric_not_it
+ The following is how I would do it, but opposite of what we have.
+
+The C<=head2> command documents a method. The name of the method should have no adornment (e.g. don't CE<lt>method> or CE<lt>method($list, $of, $params)>.)
+
+These sections should begin with a short description of what the method
+does, followed by one or more examples of usage. If needed, elaborate
+on the subtleties of the parameters and context after (and/or between)
+the example(s).
+
+ =head2 this_method
+
+ This method does some blah blah blah.
+
+ my @answer = $thing->this_method(@arguments);
+
+ =head2 that_thing
+
+ Returns true if the thing is true.
+
+ if($thing->that_thing) {
+ ...
+ }
+
+=item C<=item parameter>
+
+Use C<=item> commands for method arguments and parameters (and etc.) In
+most html pod formatters, these I<do not> get added to the
+table-of-contents at the top of the page.
+
+=back
+
+=head2 Pod Formatting Codes
+
+=over
+
+=item LE<lt>Some::Module>
+
+Be careful of the wording of C<LE<lt>Some::ModuleE<gt>>. Older pod
+formatters would render this as "the Some::Module manpage", so it is
+best to either word your links as "C<(see E<lt>Some::ModuleE<gt> for
+details.)>" or use the "explicit rendering" form of
+"C<E<lt>Some::Module|Some::ModuleE<gt>>".
+
+=back
+
+=head2 VERSION
+
+The version numbers are updated by L<Perl::Version>.
+
+=head2 DEVELOPER DOCS/NOTES
+
+The following "formats" are used with C<=begin>/C<=end> and C<=for>
+commands for pod which is not part of the public end-user/API
+documentation.
+
+=over
+
+=item note
+
+Use this if you are uncertain about a change to some pod or think it
+needs work.
+
+ =head2 some_method
+
+ ...
+
+ =for note
+ This is either falsely documented or a bug -- see ...
+
+=item developer
+
+ =begin developer
+
+ Long-winded explanation of why some code is the way it is or various
+ other subtleties which might incite head-scratching and WTF'ing.
+
+ =end developer
+
+=item deprecated
+
+ =for deprecated
+ removed in 0.09, kill by ~0.25
+
+=back
+
+=head1 Committing to Subversion
+
+If you have commit access, please bear this in mind.
+
+Development is done either on trunk or a branch, as appropriate:
+
+If it's something that might be controversial, break the build or take a long
+time (more than a couple of weeks) to complete then it'd probably be
+appropriate to branch. Otherwise it can go in trunk.
+
+If in doubt discuss it on the mailing list before you commit.
+
+=cut
+
+=for developer
+... or whatever. I'm just making stuff up here. If any of this is
+wrong, please correct it. To the extent that there is an "official
+policy", it should be written down. --Eric
+
+=cut
+
+# vim:ts=2:sw=2:et:sta
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Harness.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Harness.pm
new file mode 100755
index 0000000000..33e57fcc84
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Harness.pm
@@ -0,0 +1,618 @@
+package Test::Harness;
+
+use 5.006;
+
+use strict;
+use warnings;
+
+use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
+use constant IS_VMS => ( $^O eq 'VMS' );
+
+use TAP::Harness ();
+use TAP::Parser::Aggregator ();
+use TAP::Parser::Source ();
+use TAP::Parser::SourceHandler::Perl ();
+
+use Text::ParseWords qw(shellwords);
+
+use Config;
+use base 'Exporter';
+
+# $ML $Last_ML_Print
+
+BEGIN {
+ eval q{use Time::HiRes 'time'};
+ our $has_time_hires = !$@;
+}
+
+=head1 NAME
+
+Test::Harness - Run Perl standard test scripts with statistics
+
+=head1 VERSION
+
+Version 3.48
+
+=cut
+
+our $VERSION = '3.48';
+
+# Backwards compatibility for exportable variable names.
+*verbose = *Verbose;
+*switches = *Switches;
+*debug = *Debug;
+
+$ENV{HARNESS_ACTIVE} = 1;
+$ENV{HARNESS_VERSION} = $VERSION;
+
+END {
+
+ # For VMS.
+ delete $ENV{HARNESS_ACTIVE};
+ delete $ENV{HARNESS_VERSION};
+}
+
+our @EXPORT = qw(&runtests);
+our @EXPORT_OK = qw(&execute_tests $verbose $switches);
+
+our $Verbose = $ENV{HARNESS_VERBOSE} || 0;
+our $Debug = $ENV{HARNESS_DEBUG} || 0;
+our $Switches = '-w';
+our $Columns = $ENV{HARNESS_COLUMNS} || $ENV{COLUMNS} || 80;
+$Columns--; # Some shells have trouble with a full line of text.
+our $Timer = $ENV{HARNESS_TIMER} || 0;
+our $Color = $ENV{HARNESS_COLOR} || 0;
+our $IgnoreExit = $ENV{HARNESS_IGNORE_EXIT} || 0;
+
+=head1 SYNOPSIS
+
+ use Test::Harness;
+
+ runtests(@test_files);
+
+=head1 DESCRIPTION
+
+Although, for historical reasons, the L<Test::Harness> distribution
+takes its name from this module it now exists only to provide
+L<TAP::Harness> with an interface that is somewhat backwards compatible
+with L<Test::Harness> 2.xx. If you're writing new code consider using
+L<TAP::Harness> directly instead.
+
+Emulation is provided for C<runtests> and C<execute_tests> but the
+pluggable 'Straps' interface that previous versions of L<Test::Harness>
+supported is not reproduced here. Straps is now available as a stand
+alone module: L<Test::Harness::Straps>.
+
+See L<TAP::Parser>, L<TAP::Harness> for the main documentation for this
+distribution.
+
+=head1 FUNCTIONS
+
+The following functions are available.
+
+=head2 runtests( @test_files )
+
+This runs all the given I<@test_files> and divines whether they passed
+or failed based on their output to STDOUT (details above). It prints
+out each individual test which failed along with a summary report and
+a how long it all took.
+
+It returns true if everything was ok. Otherwise it will C<die()> with
+one of the messages in the DIAGNOSTICS section.
+
+=cut
+
+sub _has_taint {
+ my $test = shift;
+ return TAP::Parser::SourceHandler::Perl->get_taint(
+ TAP::Parser::Source->shebang($test) );
+}
+
+sub _aggregate {
+ my ( $harness, $aggregate, @tests ) = @_;
+
+ # Don't propagate to our children
+ local $ENV{HARNESS_OPTIONS};
+
+ _apply_extra_INC($harness);
+ _aggregate_tests( $harness, $aggregate, @tests );
+}
+
+# Make sure the child sees all the extra junk in @INC
+sub _apply_extra_INC {
+ my $harness = shift;
+
+ $harness->callback(
+ parser_args => sub {
+ my ( $args, $test ) = @_;
+ push @{ $args->{switches} }, map {"-I$_"} _filtered_inc();
+ }
+ );
+}
+
+sub _aggregate_tests {
+ my ( $harness, $aggregate, @tests ) = @_;
+ $aggregate->start();
+ $harness->aggregate_tests( $aggregate, @tests );
+ $aggregate->stop();
+
+}
+
+sub runtests {
+ my @tests = @_;
+
+ # shield against -l
+ local ( $\, $, );
+
+ my $harness = _new_harness();
+ my $aggregate = TAP::Parser::Aggregator->new();
+
+ local $ENV{PERL_USE_UNSAFE_INC} = 1 if not exists $ENV{PERL_USE_UNSAFE_INC};
+ _aggregate( $harness, $aggregate, @tests );
+
+ $harness->formatter->summary($aggregate);
+
+ my $total = $aggregate->total;
+ my $passed = $aggregate->passed;
+ my $failed = $aggregate->failed;
+
+ my @parsers = $aggregate->parsers;
+
+ my $num_bad = 0;
+ for my $parser (@parsers) {
+ $num_bad++ if $parser->has_problems;
+ }
+
+ die(sprintf(
+ "Failed %d/%d test programs. %d/%d subtests failed.\n",
+ $num_bad, scalar @parsers, $failed, $total
+ )
+ ) if $num_bad;
+
+ return $total && $total == $passed;
+}
+
+sub _canon {
+ my @list = sort { $a <=> $b } @_;
+ my @ranges = ();
+ my $count = scalar @list;
+ my $pos = 0;
+
+ while ( $pos < $count ) {
+ my $end = $pos + 1;
+ $end++ while $end < $count && $list[$end] <= $list[ $end - 1 ] + 1;
+ push @ranges, ( $end == $pos + 1 )
+ ? $list[$pos]
+ : join( '-', $list[$pos], $list[ $end - 1 ] );
+ $pos = $end;
+ }
+
+ return join( ' ', @ranges );
+}
+
+sub _new_harness {
+ my $sub_args = shift || {};
+
+ my ( @lib, @switches );
+ my @opt = map { shellwords($_) } grep { defined } $Switches, $ENV{HARNESS_PERL_SWITCHES};
+ while ( my $opt = shift @opt ) {
+ if ( $opt =~ /^ -I (.*) $ /x ) {
+ push @lib, length($1) ? $1 : shift @opt;
+ }
+ else {
+ push @switches, $opt;
+ }
+ }
+
+ # Do things the old way on VMS...
+ push @lib, _filtered_inc() if IS_VMS;
+
+ # If $Verbose isn't numeric default to 1. This helps core.
+ my $verbosity = ( $Verbose ? ( $Verbose !~ /\d/ ) ? 1 : $Verbose : 0 );
+
+ my $args = {
+ timer => $Timer,
+ directives => our $Directives,
+ lib => \@lib,
+ switches => \@switches,
+ color => $Color,
+ verbosity => $verbosity,
+ ignore_exit => $IgnoreExit,
+ };
+
+ $args->{stdout} = $sub_args->{out}
+ if exists $sub_args->{out};
+
+ my $class = $ENV{HARNESS_SUBCLASS} || 'TAP::Harness';
+ if ( defined( my $env_opt = $ENV{HARNESS_OPTIONS} ) ) {
+ for my $opt ( split /:/, $env_opt ) {
+ if ( $opt =~ /^j(\d*)$/ ) {
+ $args->{jobs} = $1 || 9;
+ }
+ elsif ( $opt eq 'c' ) {
+ $args->{color} = 1;
+ }
+ elsif ( $opt =~ m/^f(.*)$/ ) {
+ my $fmt = $1;
+ $fmt =~ s/-/::/g;
+ $args->{formatter_class} = $fmt;
+ }
+ elsif ( $opt =~ m/^a(.*)$/ ) {
+ my $archive = $1;
+ $class = "TAP::Harness::Archive";
+ $args->{archive} = $archive;
+ }
+ else {
+ die "Unknown HARNESS_OPTIONS item: $opt\n";
+ }
+ }
+ }
+
+ return TAP::Harness->_construct( $class, $args );
+}
+
+# Get the parts of @INC which are changed from the stock list AND
+# preserve reordering of stock directories.
+sub _filtered_inc {
+ my @inc = grep { !ref } @INC; #28567
+
+ if (IS_VMS) {
+
+ # VMS has a 255-byte limit on the length of %ENV entries, so
+ # toss the ones that involve perl_root, the install location
+ @inc = grep !/perl_root/i, @inc;
+
+ }
+ elsif (IS_WIN32) {
+
+ # Lose any trailing backslashes in the Win32 paths
+ s/[\\\/]+$// for @inc;
+ }
+
+ my @default_inc = _default_inc();
+
+ my @new_inc;
+ my %seen;
+ for my $dir (@inc) {
+ next if $seen{$dir}++;
+
+ if ( $dir eq ( $default_inc[0] || '' ) ) {
+ shift @default_inc;
+ }
+ else {
+ push @new_inc, $dir;
+ }
+
+ shift @default_inc while @default_inc and $seen{ $default_inc[0] };
+ }
+
+ return @new_inc;
+}
+
+{
+
+ # Cache this to avoid repeatedly shelling out to Perl.
+ my @inc;
+
+ sub _default_inc {
+ return @inc if @inc;
+
+ local $ENV{PERL5LIB};
+ local $ENV{PERLLIB};
+
+ my $perl = $ENV{HARNESS_PERL} || $^X;
+
+ # Avoid using -l for the benefit of Perl 6
+ chomp( @inc = `"$perl" -e "print join qq[\\n], \@INC, q[]"` );
+ return @inc;
+ }
+}
+
+sub _check_sequence {
+ my @list = @_;
+ my $prev;
+ while ( my $next = shift @list ) {
+ return if defined $prev && $next <= $prev;
+ $prev = $next;
+ }
+
+ return 1;
+}
+
+sub execute_tests {
+ my %args = @_;
+
+ my $harness = _new_harness( \%args );
+ my $aggregate = TAP::Parser::Aggregator->new();
+
+ my %tot = (
+ bonus => 0,
+ max => 0,
+ ok => 0,
+ bad => 0,
+ good => 0,
+ files => 0,
+ tests => 0,
+ sub_skipped => 0,
+ todo => 0,
+ skipped => 0,
+ bench => undef,
+ );
+
+ # Install a callback so we get to see any plans the
+ # harness executes.
+ $harness->callback(
+ made_parser => sub {
+ my $parser = shift;
+ $parser->callback(
+ plan => sub {
+ my $plan = shift;
+ if ( $plan->directive eq 'SKIP' ) {
+ $tot{skipped}++;
+ }
+ }
+ );
+ }
+ );
+
+ local $ENV{PERL_USE_UNSAFE_INC} = 1 if not exists $ENV{PERL_USE_UNSAFE_INC};
+ _aggregate( $harness, $aggregate, @{ $args{tests} } );
+
+ $tot{bench} = $aggregate->elapsed;
+ my @tests = $aggregate->descriptions;
+
+ # TODO: Work out the circumstances under which the files
+ # and tests totals can differ.
+ $tot{files} = $tot{tests} = scalar @tests;
+
+ my %failedtests = ();
+ my %todo_passed = ();
+
+ for my $test (@tests) {
+ my ($parser) = $aggregate->parsers($test);
+
+ my @failed = $parser->failed;
+
+ my $wstat = $parser->wait;
+ my $estat = $parser->exit;
+ my $planned = $parser->tests_planned;
+ my @errors = $parser->parse_errors;
+ my $passed = $parser->passed;
+ my $actual_passed = $parser->actual_passed;
+
+ my $ok_seq = _check_sequence( $parser->actual_passed );
+
+ # Duplicate exit, wait status semantics of old version
+ $estat ||= '' unless $wstat;
+ $wstat ||= '';
+
+ $tot{max} += ( $planned || 0 );
+ $tot{bonus} += $parser->todo_passed;
+ $tot{ok} += $passed > $actual_passed ? $passed : $actual_passed;
+ $tot{sub_skipped} += $parser->skipped;
+ $tot{todo} += $parser->todo;
+
+ if ( @failed || $estat || @errors ) {
+ $tot{bad}++;
+
+ my $huh_planned = $planned ? undef : '??';
+ my $huh_errors = $ok_seq ? undef : '??';
+
+ $failedtests{$test} = {
+ 'canon' => $huh_planned
+ || $huh_errors
+ || _canon(@failed)
+ || '??',
+ 'estat' => $estat,
+ 'failed' => $huh_planned
+ || $huh_errors
+ || scalar @failed,
+ 'max' => $huh_planned || $planned,
+ 'name' => $test,
+ 'wstat' => $wstat
+ };
+ }
+ else {
+ $tot{good}++;
+ }
+
+ my @todo = $parser->todo_passed;
+ if (@todo) {
+ $todo_passed{$test} = {
+ 'canon' => _canon(@todo),
+ 'estat' => $estat,
+ 'failed' => scalar @todo,
+ 'max' => scalar $parser->todo,
+ 'name' => $test,
+ 'wstat' => $wstat
+ };
+ }
+ }
+
+ return ( \%tot, \%failedtests, \%todo_passed );
+}
+
+=head2 execute_tests( tests => \@test_files, out => \*FH )
+
+Runs all the given C<@test_files> (just like C<runtests()>) but
+doesn't generate the final report. During testing, progress
+information will be written to the currently selected output
+filehandle (usually C<STDOUT>), or to the filehandle given by the
+C<out> parameter. The I<out> is optional.
+
+Returns a list of two values, C<$total> and C<$failed>, describing the
+results. C<$total> is a hash ref summary of all the tests run. Its
+keys and values are this:
+
+ bonus Number of individual todo tests unexpectedly passed
+ max Number of individual tests ran
+ ok Number of individual tests passed
+ sub_skipped Number of individual tests skipped
+ todo Number of individual todo tests
+
+ files Number of test files ran
+ good Number of test files passed
+ bad Number of test files failed
+ tests Number of test files originally given
+ skipped Number of test files skipped
+
+If C<< $total->{bad} == 0 >> and C<< $total->{max} > 0 >>, you've
+got a successful test.
+
+C<$failed> is a hash ref of all the test scripts that failed. Each key
+is the name of a test script, each value is another hash representing
+how that script failed. Its keys are these:
+
+ name Name of the test which failed
+ estat Script's exit value
+ wstat Script's wait status
+ max Number of individual tests
+ failed Number which failed
+ canon List of tests which failed (as string).
+
+C<$failed> should be empty if everything passed.
+
+=cut
+
+1;
+__END__
+
+=head1 EXPORT
+
+C<&runtests> is exported by C<Test::Harness> by default.
+
+C<&execute_tests>, C<$verbose>, C<$switches> and C<$debug> are
+exported upon request.
+
+=head1 ENVIRONMENT VARIABLES THAT TAP::HARNESS::COMPATIBLE SETS
+
+C<Test::Harness> sets these before executing the individual tests.
+
+=over 4
+
+=item C<HARNESS_ACTIVE>
+
+This is set to a true value. It allows the tests to determine if they
+are being executed through the harness or by any other means.
+
+=item C<HARNESS_VERSION>
+
+This is the version of C<Test::Harness>.
+
+=back
+
+=head1 ENVIRONMENT VARIABLES THAT AFFECT TEST::HARNESS
+
+=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.
+
+C<-w> is always set. You can turn this off in the test with C<BEGIN {
+$^W = 0 }>.
+
+=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_VERBOSE>
+
+If true, C<Test::Harness> will output the verbose results of running
+its tests. Setting C<$Test::Harness::verbose> will override this,
+or you can use the C<-v> switch in the F<prove> utility.
+
+=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 separated by C<:>, we use C<-> instead.
+
+=back
+
+Multiple options may be separated by colons:
+
+ HARNESS_OPTIONS=j9:c make test
+
+=item C<HARNESS_SUBCLASS>
+
+Specifies a TAP::Harness subclass to be used in place of TAP::Harness.
+
+=item C<HARNESS_SUMMARY_COLOR_SUCCESS>
+
+Determines the L<Term::ANSIColor> for the summary in case it is successful.
+This color defaults to C<'green'>.
+
+=item C<HARNESS_SUMMARY_COLOR_FAIL>
+
+Determines the L<Term::ANSIColor> for the failure in case it is successful.
+This color defaults to C<'red'>.
+
+=back
+
+=head1 Taint Mode
+
+Normally when a Perl program is run in taint mode the contents of the
+C<PERL5LIB> environment variable do not appear in C<@INC>.
+
+Because C<PERL5LIB> is often used during testing to add build
+directories to C<@INC> C<Test::Harness> passes the names of any
+directories found in C<PERL5LIB> as -I switches. The net effect of this
+is that C<PERL5LIB> is honoured even in taint mode.
+
+=head1 SEE ALSO
+
+L<TAP::Harness>
+
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-test-harness at rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Harness>. I will be
+notified, and then you'll automatically be notified of progress on your bug
+as I make changes.
+
+=head1 AUTHORS
+
+Andy Armstrong C<< <andy@hexten.net> >>
+
+L<Test::Harness> 2.64 (maintained by Andy Lester and on which this
+module is based) has this attribution:
+
+ Either Tim Bunce or Andreas Koenig, we don't know. What we know for
+ sure is, that it was inspired by Larry Wall's F<TEST> script that came
+ with perl distributions for ages. Numerous anonymous contributors
+ exist. Andreas Koenig held the torch for many years, and then
+ Michael G Schwern.
+
+=head1 LICENCE AND COPYRIGHT
+
+Copyright (c) 2007-2011, Andy Armstrong C<< <andy@hexten.net> >>. All rights reserved.
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself. See L<perlartistic>.
+
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Needs.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Needs.pm
index 22660a154e..4f0e5956b0 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Needs.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Needs.pm
@@ -2,7 +2,7 @@ package Test::Needs;
use strict;
use warnings;
no warnings 'once';
-our $VERSION = '0.002009';
+our $VERSION = '0.002010';
$VERSION =~ tr/_//d;
BEGIN {
@@ -175,27 +175,29 @@ sub _fail_or_skip {
my $tb = Test::Builder->new;
my $has_plan = Test::Builder->can('has_plan') ? 'has_plan'
: sub { $_[0]->expected_tests || eval { $_[0]->current_test($_[0]->current_test); 'no_plan' } };
+ my $tests = $tb->current_test;
if ($fail) {
$tb->plan(tests => 1)
unless $tb->$has_plan;
+ $tests++;
$tb->ok(0, "Test::Needs modules available");
$tb->diag($message);
}
else {
my $plan = $tb->$has_plan;
- my $tests = $tb->current_test;
if ($plan || $tests) {
my $skips
= $plan && $plan ne 'no_plan' ? $plan - $tests : 1;
$tb->skip("Test::Needs modules not available")
for 1 .. $skips;
+ $tests += $skips;
Test::Builder->can('note') ? $tb->note($message) : print "# $message\n";
}
else {
$tb->skip_all($message);
}
}
- $tb->done_testing
+ $tb->done_testing($tests)
if Test::Builder->can('done_testing');
die bless {} => 'Test::Builder::Exception'
if Test::Builder->can('parent') && $tb->parent;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Warnings.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Warnings.pm
new file mode 100755
index 0000000000..d2dd6507e6
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/Test/Warnings.pm
@@ -0,0 +1,587 @@
+use strict;
+use warnings;
+package Test::Warnings; # git description: v0.032-4-ge6f3f36
+# vim: set ts=8 sts=2 sw=2 tw=100 et :
+# ABSTRACT: Test for warnings and the lack of them
+# KEYWORDS: testing tests warnings
+
+our $VERSION = '0.033';
+
+use parent 'Exporter';
+use Test::Builder;
+
+our @EXPORT_OK = qw(
+ allow_warnings allowing_warnings
+ had_no_warnings
+ warnings warning
+ allow_patterns
+ disallow_patterns
+);
+our %EXPORT_TAGS = ( all => \@EXPORT_OK );
+
+my $warnings_allowed;
+my $forbidden_warnings_found;
+my $done_testing_called;
+my $no_end_test;
+my $fail_on_warning;
+my $report_warnings;
+my @collected_warnings;
+my @allowed_patterns;
+
+sub import {
+ my $class = shift @_;
+
+ my %names; @names{@_} = ();
+ # END block will check for this status
+ $no_end_test = exists $names{':no_end_test'};
+ # __WARN__ handler will check for this status
+ $fail_on_warning = exists $names{':fail_on_warning'};
+ # Collect and report warnings at the end
+ $report_warnings = exists $names{':report_warnings'};
+
+ delete @names{qw(:no_end_test :fail_on_warning :report_warnings)};
+ __PACKAGE__->export_to_level(1, $class, keys %names);
+}
+
+# swap this out for testing this module only!
+my $tb;
+sub _builder(;$) {
+ if (not @_) {
+ $tb ||= Test::Builder->new;
+ return $tb;
+ }
+
+ $tb = shift;
+}
+
+my $_orig_warn_handler = $SIG{__WARN__};
+$SIG{__WARN__} = sub {
+ if ($warnings_allowed or grep +($_[0] =~ $_), @allowed_patterns) {
+ Test::Builder->new->note($_[0]);
+ }
+ else {
+ $forbidden_warnings_found++;
+ push @collected_warnings, $_[0] if $report_warnings;
+
+ # TODO: this doesn't handle blessed coderefs... does anyone care?
+ goto &$_orig_warn_handler if $_orig_warn_handler
+ and ( (ref $_orig_warn_handler eq 'CODE')
+ or ($_orig_warn_handler ne 'DEFAULT'
+ and $_orig_warn_handler ne 'IGNORE'
+ and defined &$_orig_warn_handler));
+
+ if ($_[0] =~ /\n$/) {
+ warn $_[0];
+ } else {
+ require Carp;
+ Carp::carp($_[0]);
+ }
+ _builder->ok(0, 'unexpected warning') if $fail_on_warning;
+ }
+};
+
+sub warnings(;&) {
+ # if someone manually does warnings->import in the same namespace this is
+ # imported into, this sub will be called. in that case, just return the
+ # string "warnings" so it calls the correct method.
+ if (!@_) {
+ return 'warnings';
+ }
+ my $code = shift;
+ my @warnings;
+ local $SIG{__WARN__} = sub {
+ push @warnings, shift;
+ };
+ $code->();
+ @warnings;
+}
+
+sub warning(&) {
+ my @warnings = &warnings(@_);
+ return @warnings == 1 ? $warnings[0] : \@warnings;
+}
+
+if (Test::Builder->can('done_testing')) {
+ # monkeypatch Test::Builder::done_testing:
+ # check for any forbidden warnings, and record that we have done so
+ # so we do not check again via END
+
+ no strict 'refs';
+ my $orig = *{'Test::Builder::done_testing'}{CODE};
+ no warnings 'redefine';
+ *{'Test::Builder::done_testing'} = sub {
+ # only do this at the end of all tests, not at the end of a subtest
+ my $builder = _builder;
+ my $in_subtest_sub = $builder->can('in_subtest');
+ if (not $no_end_test
+ and not ($in_subtest_sub ? $builder->$in_subtest_sub : $builder->parent)) {
+ local $Test::Builder::Level = $Test::Builder::Level + 3;
+ had_no_warnings('no (unexpected) warnings (via done_testing)');
+ $done_testing_called = 1;
+ }
+
+ $orig->(@_);
+ };
+}
+
+if ($INC{'Test2/Tools/Basic.pm'}) {
+ # monkeypatch Test2::Tools::Basic::done_testing:
+ # check for any forbidden warnings, and record that we have done so
+ # so we do not check again via END
+
+ no strict 'refs';
+ my $orig = *{'Test2::Tools::Basic::done_testing'}{CODE};
+ no warnings 'redefine';
+ *{'Test2::Tools::Basic::done_testing'} = sub {
+ if (not $no_end_test) {
+ # we could use $ctx to create the test, which means not having to adjust Level,
+ # but then we need to make _builder Test2-compatible, which seems like a PITA.
+ local $Test::Builder::Level = $Test::Builder::Level + 3;
+ had_no_warnings('no (unexpected) warnings (via done_testing)');
+ $done_testing_called = 1;
+ }
+
+ $orig->(@_);
+ };
+}
+
+END {
+ if (not $no_end_test
+ and not $done_testing_called
+ # skip this if there is no plan and no tests have been run (e.g.
+ # compilation tests of this module!)
+ and (_builder->expected_tests or _builder->current_test > 0)
+ ) {
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ had_no_warnings('no (unexpected) warnings (via END block)');
+ }
+}
+
+# setter
+sub allow_warnings(;$) {
+ $warnings_allowed = @_ || defined $_[0] ? $_[0] : 1;
+}
+
+# getter
+sub allowing_warnings() { $warnings_allowed }
+
+# call at any time to assert no (unexpected) warnings so far
+sub had_no_warnings(;$) {
+ if ($ENV{PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS}) {
+ $forbidden_warnings_found
+ and _builder->diag("Found $forbidden_warnings_found warnings but allowing them because PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS is set");
+ }
+ else {
+ _builder->ok(!$forbidden_warnings_found, shift || 'no (unexpected) warnings');
+ }
+ if (($report_warnings or $ENV{PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS})
+ and $forbidden_warnings_found) {
+ _builder->diag("Got the following unexpected warnings:");
+ for my $i (1 .. @collected_warnings) {
+ _builder->diag(" $i: $collected_warnings[ $i - 1 ]");
+ }
+ }
+}
+
+# pass one or more regexes (in qr format)
+# when called in void context, lasting effect is universal
+# otherwise, returns objects: when they go out of scope, the effect is removed
+# (warning disallowed again).
+sub allow_patterns(@) {
+ push @allowed_patterns, @_;
+ return if not defined wantarray;
+ return [ map +Test::Warnings::TemporaryWarning->new($_), @_ ];
+}
+
+sub disallow_patterns(@) {
+ foreach my $pattern (@_) {
+ @allowed_patterns = grep +($_ ne $pattern), @allowed_patterns;
+ }
+}
+
+package # hide from PAUSE
+ Test::Warnings::TemporaryWarning;
+
+sub new {
+ my ($class, $pattern) = @_;
+ bless \$pattern, $class;
+}
+
+sub DESTROY {
+ Test::Warnings::disallow_patterns(${$_[0]});
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test::Warnings - Test for warnings and the lack of them
+
+=head1 VERSION
+
+version 0.033
+
+=head1 SYNOPSIS
+
+ use Test::More;
+ use Test::Warnings;
+
+ pass('yay!');
+ done_testing;
+
+emits TAP:
+
+ ok 1 - yay!
+ ok 2 - no (unexpected) warnings (via done_testing)
+ 1..2
+
+and:
+
+ use Test::More tests => 3;
+ use Test::Warnings 0.005 ':all';
+
+ pass('yay!');
+ like(warning { warn "oh noes!" }, qr/^oh noes/, 'we warned');
+
+emits TAP:
+
+ ok 1 - yay!
+ ok 2 - we warned
+ ok 3 - no (unexpected) warnings (via END block)
+ 1..3
+
+=head1 DESCRIPTION
+
+If you've ever tried to use L<Test::NoWarnings> to confirm there are no warnings
+generated by your tests, combined with the convenience of C<done_testing> to
+not have to declare a
+L<test count|Test::More/I love it-when-a-plan-comes-together>,
+you'll have discovered that these two features do not play well together,
+as the test count will be calculated I<before> the warnings test is run,
+resulting in a TAP error. (See C<examples/test_nowarnings.pl> in this
+distribution for a demonstration.)
+
+This module is intended to be used as a drop-in replacement for
+L<Test::NoWarnings>: it also adds an extra test, but runs this test I<before>
+C<done_testing> calculates the test count, rather than after. It does this by
+hooking into C<done_testing> as well as via an C<END> block. You can declare
+a plan, or not, and things will still Just Work.
+
+It is actually equivalent to:
+
+ use Test::NoWarnings 1.04 ':early';
+
+as warnings are still printed normally as they occur. You are safe, and
+enthusiastically encouraged, to perform a global search-replace of the above
+with C<use Test::Warnings;> whether or not your tests have a plan.
+
+It can also be used as a replacement for L<Test::Warn>, if you wish to test
+the content of expected warnings; read on to find out how.
+
+=head1 FUNCTIONS
+
+The following functions are available for import (not included by default; you
+can also get all of them by importing the tag C<:all>):
+
+=head2 C<< allow_warnings([bool]) >> - EXPERIMENTAL - MAY BE REMOVED
+
+When passed a true value, or no value at all, subsequent warnings will not
+result in a test failure; when passed a false value, subsequent warnings will
+result in a test failure. Initial value is C<false>.
+
+When warnings are allowed, any warnings will instead be emitted via
+L<Test::Builder::note|Test::Builder/Output>.
+
+=head2 C<allowing_warnings> - EXPERIMENTAL - MAY BE REMOVED
+
+Returns whether we are currently allowing warnings (set by C<allow_warnings>
+as described above).
+
+=head2 C<< had_no_warnings(<optional test name>) >>
+
+Tests whether there have been any warnings so far, not preceded by an
+C<allowing_warnings> call. It is run
+automatically at the end of all tests, but can also be called manually at any
+time, as often as desired.
+
+=head2 C<< warnings( { code } ) >>
+
+Given a code block, runs the block and returns a list of all the
+(not previously allowed via C<allow_warnings>) warnings issued within. This
+lets you test for the presence of warnings that you not only would I<allow>,
+but I<must> be issued. Testing functions are not provided; given the strings
+returned, you can test these yourself using your favourite testing functions,
+such as L<Test::More::is|Test::More/is> or L<Test::Deep::cmp_deeply|Test::Deep/cmp_deeply>.
+
+You can use this construct as a replacement for
+L<Test::Warn::warnings_are|Test::Warn/warnings_are>:
+
+ is_deeply(
+ [ warnings { ... } ],
+ [
+ 'warning message 1',
+ 'warning message 2',
+ ],
+ 'got expected warnings',
+ );
+
+or, to replace L<Test::Warn::warnings_like|Test::Warn/warnings_like>:
+
+ cmp_deeply(
+ [ warnings { ... } ],
+ bag( # ordering of messages doesn't matter
+ re(qr/warning message 1/),
+ re(qr/warning message 2/),
+ ),
+ 'got expected warnings (in any order)',
+ );
+
+Warnings generated by this code block are I<NOT> propagated further. However,
+since they are returned from this function with their filename and line
+numbers intact, you can re-issue them yourself immediately after calling
+C<warnings(...)>, if desired.
+
+Note that C<use Test::Warnings 'warnings'> will give you a C<warnings>
+subroutine in your namespace (most likely C<main>, if you're writing a test),
+so you (or things you load) can't subsequently do C<< warnings->import >> --
+it will result in the error: "Not enough arguments for
+Test::Warnings::warnings at ..., near "warnings->import"". To work around
+this, either use the fully-qualified form (C<Test::warnings>) or make your
+calls to the C<warnings> package first.
+
+=head2 C<< warning( { code } ) >>
+
+Same as C<< warnings( { code } ) >>, except a scalar is always returned - the
+single warning produced, if there was one, or an arrayref otherwise -- which
+can be more convenient to use than C<warnings()> if you are expecting exactly
+one warning.
+
+However, you are advised to capture the result from C<warning()> into a temp
+variable so you can dump its value if it doesn't contain what you expect.
+e.g. with this test:
+
+ like(
+ warning { foo() },
+ qr/^this is a warning/,
+ 'got a warning from foo()',
+ );
+
+if you get two warnings (or none) back instead of one, you'll get an
+arrayref, which will result in an unhelpful test failure message like:
+
+ # Failed test 'got a warning from foo()'
+ # at t/mytest.t line 10.
+ # 'ARRAY(0xdeadbeef)'
+ # doesn't match '(?^:^this is a warning)'
+
+So instead, change your test to:
+
+ my $warning = warning { foo() };
+ like(
+ $warning,
+ qr/^this is a warning/,
+ 'got a warning from foo()',
+ ) or diag 'got warning(s): ', explain($warning);
+
+=head2 allow_patterns
+
+ allow_patterns(qr/always allow this warning/);
+ {
+ my $temp = allow_patterns(qr/only allow in this scope/, qr/another temporary warning/);
+ ... stuff ...
+ }
+
+Given one or more regular expressions, in C<qr/.../> form, add them to the allow-list (warnings will
+be emitted with C<note> rather than triggering the warning handler). If the return value is saved in
+a local variable, the warning exemption will only be in effect for that local scope (the addition is
+reversed at the end of the scope); otherwise, the effect is global.
+
+=head2 disallow_patterns
+
+Given one or more regular expressions, in C<qr/.../> form, remove it from the allow-list. The
+pattern must exactly match a pattern previously provided to L</allow_patterns>.
+
+=head1 IMPORT OPTIONS
+
+=head2 C<:all>
+
+Imports all functions listed above
+
+=head2 C<:no_end_test>
+
+Disables the addition of a C<had_no_warnings> test
+via C<END> or C<done_testing>
+
+=head2 C<:fail_on_warning>
+
+=for stopwords unexempted
+
+When used, fail immediately when an unexempted warning is generated (as opposed to waiting until
+L</had_no_warnings> or C<done_testing> is called).
+
+I recommend you only turn this option on when debugging a test, to see where a surprise warning is coming from,
+and rely on the end-of-tests check otherwise.
+
+=head2 C<:report_warnings>
+
+When used, C<had_no_warnings()> will print all the unexempted warning content, in case it had been suppressed
+earlier by other captures (such as L<Test::Output/stderr_like> or L<Capture::Tiny/capture>).
+
+=head1 OTHER OPTIONS
+
+You can temporarily turn off the failure behaviour of this module, swapping it out for reporting
+(see C<:report_warnings> above) with:
+
+ $ENV{PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS} = 1;
+
+This can be useful for working around problematic modules that have warnings in newer Perl versions.
+
+=head1 CAVEATS
+
+=for stopwords smartmatch TODO irc
+
+Sometimes new warnings can appear in Perl that should B<not> block
+installation -- for example, smartmatch was recently deprecated in
+perl 5.17.11, so now any distribution that uses smartmatch and also
+tests for warnings cannot be installed under 5.18.0. You might want to
+consider only making warnings fail tests in an author environment -- you can
+do this with the L<if> pragma:
+
+ use if $ENV{AUTHOR_TESTING} || $ENV{RELEASE_TESTING}, 'Test::Warnings';
+
+In future versions of this module, when interfaces are added to test the
+content of warnings, there will likely be additional sugar available to
+indicate that warnings should be checked only in author tests (or TODO when
+not in author testing), but will still provide exported subs. Comments are
+enthusiastically solicited - drop me an email, write up an RT ticket, or come
+by C<#perl-qa> on irc!
+
+=for stopwords Achtung
+
+B<Achtung!> This is not a great idea:
+
+ sub warning_like(&$;$) {
+ my ($code, $pattern, $name) = @_;
+ like( &warning($code), $pattern, $name );
+ }
+
+ warning_like( { ... }, qr/foo/, 'foo appears in the warning' );
+
+If the code in the C<{ ... }> is going to warn with a stack trace with the
+arguments to each subroutine in its call stack (for example via C<Carp::cluck>),
+the test name, "foo appears in the warning" will itself be matched by the
+regex (see F<examples/warning_like.t>). Instead, write this:
+
+ like( warning { ... }, qr/foo/, 'foo appears in the warning' );
+
+=head1 CAVEATS
+
+If you are using another module that sets its own warning handler (for example L<Devel::Confess> or
+L<diagnostics>) your results may be mixed, as those handlers will interfere with this module's
+ability to properly detect and capture warnings in their original form.
+
+=head1 TO DO (or: POSSIBLE FEATURES COMING IN FUTURE RELEASES)
+
+=over
+
+=item * C<< allow_warnings(qr/.../) >> - allow some warnings and not others
+
+=for stopwords subtest subtests
+
+=item * more sophisticated handling in subtests - if we save some state on the
+L<Test::Builder> object itself, we can allow warnings in a subtest and then
+the state will revert when the subtest ends, as well as check for warnings at
+the end of every subtest via C<done_testing>.
+
+=item * sugar for making failures TODO when testing outside an author
+environment
+
+=back
+
+=head1 SEE ALSO
+
+=for stopwords YANWT
+
+=over 4
+
+=item *
+
+L<Test::NoWarnings>
+
+=item *
+
+L<Test::FailWarnings>
+
+=item *
+
+L<blogs.perl.org: YANWT (Yet Another No-Warnings Tester)|http://blogs.perl.org/users/ether/2013/03/yanwt-yet-another-no-warnings-tester.html>
+
+=item *
+
+L<strictures> - which makes all warnings fatal in tests, hence lessening the need for special warning testing
+
+=item *
+
+L<Test::Warn>
+
+=item *
+
+L<Test::Fatal>
+
+=back
+
+=head1 SUPPORT
+
+Bugs may be submitted through L<the RT bug tracker|https://rt.cpan.org/Public/Dist/Display.html?Name=Test-Warnings>
+(or L<bug-Test-Warnings@rt.cpan.org|mailto:bug-Test-Warnings@rt.cpan.org>).
+
+There is also a mailing list available for users of this distribution, at
+L<http://lists.perl.org/list/perl-qa.html>.
+
+There is also an irc channel available for users of this distribution, at
+L<C<#perl> on C<irc.perl.org>|irc://irc.perl.org/#perl-qa>.
+
+I am also usually active on irc, as 'ether' at C<irc.perl.org> and C<irc.libera.chat>.
+
+=head1 AUTHOR
+
+Karen Etheridge <ether@cpan.org>
+
+=head1 CONTRIBUTORS
+
+=for stopwords Graham Knop A. Sinan Unur Leon Timmermans Tina Mueller
+
+=over 4
+
+=item *
+
+Graham Knop <haarg@haarg.org>
+
+=item *
+
+A. Sinan Unur <nanis@cpan.org>
+
+=item *
+
+Leon Timmermans <fawaka@gmail.com>
+
+=item *
+
+Tina Mueller <cpan2@tinita.de>
+
+=back
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2013 by Karen Etheridge.
+
+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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI.pm
index 9cde9dd113..c80cb43c7a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI.pm
@@ -3,7 +3,10 @@ package URI;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
+
+# 1=version 5.10 and earlier; 0=version 5.11 and later
+use constant HAS_RESERVED_SQUARE_BRACKETS => $ENV{URI_HAS_RESERVED_SQUARE_BRACKETS} ? 1 : 0;
our ($ABS_REMOTE_LEADING_DOTS, $ABS_ALLOW_RELATIVE_SCHEME, $DEFAULT_QUERY_FORM_DELIMITER);
@@ -11,13 +14,29 @@ my %implements; # mapping from scheme to implementor class
# Some "official" character classes
-our $reserved = q(;/?:@&=+$,[]);
+our $reserved = HAS_RESERVED_SQUARE_BRACKETS ? q(;/?:@&=+$,[]) : q(;/?:@&=+$,);
our $mark = q(-_.!~*'()); #'; emacs
our $unreserved = "A-Za-z0-9\Q$mark\E";
our $uric = quotemeta($reserved) . $unreserved . "%";
+our $uric4host = $uric . ( HAS_RESERVED_SQUARE_BRACKETS ? '' : quotemeta( q([]) ) );
+our $uric4user = quotemeta( q{!$'()*,;:._~%-+=%&} ) . "A-Za-z0-9" . ( HAS_RESERVED_SQUARE_BRACKETS ? quotemeta( q([]) ) : '' ); # RFC-3987: iuserinfo w/o UTF
our $scheme_re = '[a-zA-Z][a-zA-Z0-9.+\-]*';
+# These schemes don't have an IPv6+ address part.
+our $schemes_without_host_part_re = 'data|ldapi|urn|sqlite|sqlite3';
+
+# These schemes can have an IPv6+ authority part:
+# file, ftp, gopher, http, https, ldap, ldaps, mms, news, nntp, nntps, pop, rlogin, rtsp, rtspu, rsync, sip, sips, snews,
+# telnet, tn3270, ssh, sftp
+# (all DB URIs, i.e. cassandra, couch, couchdb, etc.), except 'sqlite:', 'sqlite3:'. Others?
+#MAINT: URI has no test coverage for DB schemes
+#MAINT: decoupling - perhaps let each class decide itself by defining a member function 'scheme_has_authority_part()'?
+
+#MAINT: 'mailto:' needs special treatment for IPv* addresses / RFC 5321 (4.1.3). Until then: restore all '[', ']'
+# These schemes need fallback to previous (<= 5.10) encoding until a specific handler is available.
+our $fallback_schemes_re = 'mailto';
+
use Carp ();
use URI::Escape ();
@@ -38,7 +57,7 @@ sub new
$uri = defined ($uri) ? "$uri" : ""; # stringify
# Get rid of potential wrapping
- $uri =~ s/^<(?:URL:)?(.*)>$/$1/; #
+ $uri =~ s/^<(?:URL:)?(.*)>$/$1/; #
$uri =~ s/^"(.*)"$/$1/;
$uri =~ s/^\s+//;
$uri =~ s/\s+$//;
@@ -86,10 +105,42 @@ sub _init
}
+#-- Version: 5.11+
+# Since the complete URI will be percent-encoded including '[' and ']',
+# we selectively unescape square brackets from the authority/host part of the URI.
+# Derived modules that implement _uric_escape() should take this into account
+# if they do not rely on URI::_uric_escape().
+# No unescaping is performed for the userinfo@ part of the authority part.
+sub _fix_uric_escape_for_host_part {
+ return if HAS_RESERVED_SQUARE_BRACKETS;
+ return if $_[0] !~ /%/;
+ return if $_[0] =~ m{^(?:$URI::schemes_without_host_part_re):}os;
+
+ # until a scheme specific handler is available, fall back to previous behavior of v5.10 (i.e. 'mailto:')
+ if ($_[0] =~ m{^(?:$URI::fallback_schemes_re):}os) {
+ $_[0] =~ s/\%5B/[/gi;
+ $_[0] =~ s/\%5D/]/gi;
+ return;
+ }
+
+ if ($_[0] =~ m{^((?:$URI::scheme_re:)?)//([^/?\#]+)(.*)$}os) {
+ my $orig = $2;
+ my ($user, $host) = $orig =~ /^(.*@)?([^@]*)$/;
+ $user ||= '';
+ my $port = $host =~ s/(:\d+)$// ? $1 : '';
+ #MAINT: die() here if scheme indicates TCP/UDP and port is out of range [0..65535] ?
+ $host =~ s/\%5B/[/gi;
+ $host =~ s/\%5D/]/gi;
+ $_[0] =~ s/\Q$orig\E/$user$host$port/;
+ }
+}
+
+
sub _uric_escape
{
my($class, $str) = @_;
$str =~ s*([^$uric\#])* URI::Escape::escape_char($1) *ego;
+ _fix_uric_escape_for_host_part( $str );
utf8::downgrade($str);
return $str;
}
@@ -130,6 +181,8 @@ sub implementor
# check we actually have one for the scheme:
unless (@{"${ic}::ISA"}) {
if (not exists $require_attempted{$ic}) {
+ $require_attempted{$ic} = 1;
+
# Try to load it
my $_old_error = $@;
eval "require $ic";
@@ -179,7 +232,7 @@ sub _scheme
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;
+ $$self = $$newself;
bless $self, ref($newself);
}
else {
@@ -708,8 +761,79 @@ 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 @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.
+
+Please note that you can supply multiple values to this method, but you cannot
+supply multiple keys.
+
+Do this:
+
+ $uri->query_param( widget_id => 1, 5, 9 );
+
+Do NOT do this:
+
+ $uri->query_param( widget_id => 1, frobnicator_id => 99 );
+
+=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.
=item $uri->query_keywords
@@ -754,7 +878,7 @@ every case where it has been used.
Sets and returns the unescaped hostname.
-If the $new_host string ends with a colon and a number, then this
+If the C<$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
@@ -762,9 +886,17 @@ 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.
+ my $uri = URI->new("http://www.\xC3\xBCri-sample/foo/bar.html");
+ print $u->host; # www.xn--ri-sample-fra0f
+
+
=item $uri->ihost
-Returns the host in Unicode form. Any IDNA A-labels are turned into U-labels.
+Returns the host in Unicode form. Any IDNA A-labels (encoded unicode chars with
+I<xn--> prefix) are turned into U-labels (unicode chars).
+
+ my $uri = URI->new("http://www.\xC3\xBCri-sample/foo/bar.html");
+ print $u->ihost; # www.\xC3\xBCri-sample
=item $uri->port
@@ -864,6 +996,30 @@ 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<geo>:
+
+The I<geo> URI scheme is specified in L<RFC 5870|http://tools.ietf.org/html/rfc5870>.
+The scheme is used to reference physical location in a two- or
+three-dimensional coordinate reference system in a compact, simple,
+human-readable, and protocol-independent way.
+
+C<URI> objects belonging to the geo scheme support the common methods.
+
+=item B<icap>:
+
+The I<icap> URI scheme is specified in L<RFC 3507|http://tools.ietf.org/html/rfc3507>.
+The scheme is used to reference resources hosted by ICAP servers.
+
+C<URI> objects belonging to the icap scheme support the common,
+generic and server methods.
+
+=item B<icaps>:
+
+The I<icaps> URI scheme is specified in L<RFC 3507|http://tools.ietf.org/html/rfc3507> as well.
+The scheme is used to reference ICAP servers through SSL
+connections. Its syntax is the same as icap, including the same
+default port.
+
=item B<ldap>:
The I<ldap> URI scheme is specified in RFC 2255. LDAP is the
@@ -1087,6 +1243,34 @@ delimited by ";" instead of "&" which is the default.
=back
+=head1 ENVIRONMENT VARIABLES
+
+=over 4
+
+=item URI_HAS_RESERVED_SQUARE_BRACKETS
+
+Before version 5.11, URI treated square brackets as reserved characters
+throughout the whole URI string. However, these brackets are reserved
+only within the authority/host part of the URI and nowhere else (RFC 3986).
+
+Starting with version 5.11, URI takes this distinction into account.
+Setting the environment variable C<URI_HAS_RESERVED_SQUARE_BRACKETS>
+(programmatically or via the shell), restores the old behavior.
+
+ #-- restore 5.10 behavior programmatically
+ BEGIN {
+ $ENV{URI_HAS_RESERVED_SQUARE_BRACKETS} = 1;
+ }
+ use URI ();
+
+I<Note>: This environment variable is just used during initialization and has to be set
+ I<before> module URI is used/required. Changing it at run time has no effect.
+
+Its value can be checked programmatically by accessing the constant
+C<URI::HAS_RESERVED_SQUARE_BRACKETS>.
+
+=back
+
=head1 BUGS
There are some things that are not quite right:
@@ -1129,7 +1313,7 @@ readable alternative.
=head1 SEE ALSO
-L<URI::file>, L<URI::WithBase>, L<URI::QueryParam>, L<URI::Escape>,
+L<URI::file>, L<URI::WithBase>, L<URI::Escape>,
L<URI::Split>, L<URI::Heuristic>
RFC 2396: "Uniform Resource Identifiers (URI): Generic Syntax",
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Escape.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Escape.pm
index 5760bb55b0..c784c81fe0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Escape.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Escape.pm
@@ -71,6 +71,13 @@ as the reserved characters. I.e. the default is:
"^A-Za-z0-9\-\._~"
+The second argument can also be specified as a regular expression object:
+
+ qr/[^A-Za-z]/
+
+Any strings matched by this regular expression will have all of their
+characters escaped.
+
=item uri_escape_utf8( $string )
=item uri_escape_utf8( $string, $unsafe )
@@ -141,7 +148,7 @@ use Exporter 5.57 'import';
our %escapes;
our @EXPORT = qw(uri_escape uri_unescape uri_escape_utf8);
our @EXPORT_OK = qw(%escapes);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use Carp ();
@@ -160,17 +167,37 @@ my %Unsafe = (
sub uri_escape {
my($text, $patn) = @_;
return undef unless defined $text;
+ my $re;
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 $@;
+ if (ref $patn eq 'Regexp') {
+ $text =~ s{($patn)}{
+ join('', map +($escapes{$_} || _fail_hi($_)), split //, "$1")
+ }ge;
+ return $text;
}
- &{$subst{$patn}}($text);
- } else {
- $text =~ s/($Unsafe{RFC3986})/$escapes{$1} || _fail_hi($1)/ge;
+ $re = $subst{$patn};
+ if (!defined $re) {
+ $re = $patn;
+ # we need to escape the [] characters, except for those used in
+ # posix classes. if they are prefixed by a backslash, allow them
+ # through unmodified.
+ $re =~ s{(\[:\w+:\])|(\\)?([\[\]]|\\\z)}{
+ defined $1 ? $1 : defined $2 ? "$2$3" : "\\$3"
+ }ge;
+ eval {
+ # disable the warnings here, since they will trigger later
+ # when used, and we only want them to appear once per call,
+ # but every time the same pattern is used.
+ no warnings 'regexp';
+ $re = $subst{$patn} = qr{[$re]};
+ 1;
+ } or Carp::croak("uri_escape: $@");
+ }
+ }
+ else {
+ $re = $Unsafe{RFC3986};
}
+ $text =~ s/($re)/$escapes{$1} || _fail_hi($1)/ge;
$text;
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Heuristic.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Heuristic.pm
index f2637a028b..bc775a53bc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Heuristic.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Heuristic.pm
@@ -91,7 +91,7 @@ use warnings;
use Exporter 5.57 'import';
our @EXPORT_OK = qw(uf_uri uf_uristr uf_url uf_urlstr);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
our ($MY_COUNTRY, $DEBUG);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/IRI.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/IRI.pm
index fd185a9e49..f62c77bdd5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/IRI.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/IRI.pm
@@ -8,7 +8,7 @@ use URI ();
use overload '""' => sub { shift->as_string };
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub new {
my($class, $uri, $scheme) = @_;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/QueryParam.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/QueryParam.pm
index c7ff25ed9f..de3c54cf18 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/QueryParam.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/QueryParam.pm
@@ -1,90 +1,8 @@
package URI::QueryParam;
-
use strict;
use warnings;
-our $VERSION = '5.10';
-
-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;
-}
+our $VERSION = '5.27';
1;
@@ -97,108 +15,16 @@ 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.
-
-Please note that you can supply multiple values to this method, but you cannot
-supply multiple keys.
-
-Do this:
-
- $uri->query_param( widget_id => 1, 5, 9 );
-
-Do NOT do this:
-
- $uri->query_param( widget_id => 1, frobnicator_id => 99 );
-
-=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>
+C<URI::QueryParam> used to provide the
+L<< query_form_hash|URI/$hashref = $u->query_form_hash >>,
+L<< query_param|URI/@keys = $u->query_param >>
+L<< query_param_append|URI/$u->query_param_append($key, $value,...) >>, and
+L<< query_param_delete|URI/ @values = $u->query_param_delete($key) >> methods
+on L<URI> objects. These methods have been merged into L<URI> itself, so this
+module is now a no-op.
=head1 COPYRIGHT
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Split.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Split.pm
index b31d8281ce..9ac3b15eaf 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Split.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/Split.pm
@@ -3,7 +3,7 @@ package URI::Split;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use Exporter 5.57 'import';
our @EXPORT_OK = qw(uri_split uri_join);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/URL.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/URL.pm
index 9591e9e76a..1b88311af4 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/URL.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/URL.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::WithBase';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
# Provide as much as possible of the old URI::URL interface for backwards
# compatibility...
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/WithBase.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/WithBase.pm
index 76c331b0af..29e76d4b2f 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/WithBase.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/WithBase.pm
@@ -6,7 +6,7 @@ use warnings;
use URI ();
use Scalar::Util qw(blessed);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use overload '""' => "as_string", fallback => 1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_foreign.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_foreign.pm
index bc44f4a059..7225450b19 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_foreign.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_foreign.pm
@@ -5,6 +5,6 @@ use warnings;
use parent 'URI::_generic';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_generic.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_generic.pm
index 9ff33b2142..50bc7d27df 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_generic.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_generic.pm
@@ -8,13 +8,33 @@ use parent qw(URI URI::_query);
use URI::Escape qw(uri_unescape);
use Carp ();
-our $VERSION = '5.10';
+our $VERSION = '5.27';
-my $ACHAR = $URI::uric; $ACHAR =~ s,\\[/?],,g;
-my $PCHAR = $URI::uric; $PCHAR =~ s,\\[?],,g;
+my $ACHAR = URI::HAS_RESERVED_SQUARE_BRACKETS ? $URI::uric : $URI::uric4host; $ACHAR =~ s,\\[/?],,g;
+my $PCHAR = $URI::uric; $PCHAR =~ s,\\[?],,g;
sub _no_scheme_ok { 1 }
+our $IPv6_re;
+
+sub _looks_like_raw_ip6_address {
+ my $addr = shift;
+
+ if ( !$IPv6_re ) { #-- lazy / runs once / use Regexp::IPv6 if installed
+ eval {
+ require Regexp::IPv6;
+ Regexp::IPv6->import( qw($IPv6_re) );
+ 1;
+ } || do { $IPv6_re = qr/[:0-9a-f]{3,}/; }; #-- fallback: unambitious guess
+ }
+
+ return 0 unless $addr;
+ return 0 if $addr =~ tr/:/:/ < 2; #-- fallback must not create false positive for IPv4:Port = 0:0
+ return 1 if $addr =~ /^$IPv6_re$/i;
+ return 0;
+}
+
+
sub authority
{
my $self = shift;
@@ -26,6 +46,13 @@ sub authority
my $rest = $3;
if (defined $auth) {
$auth =~ s/([^$ACHAR])/ URI::Escape::escape_char($1)/ego;
+ if ( my ($user, $host) = $auth =~ /^(.*@)?([^@]+)$/ ) { #-- special escape userinfo part
+ $user ||= '';
+ $user =~ s/([^$URI::uric4user])/ URI::Escape::escape_char($1)/ego;
+ $user =~ s/%40$/\@/; # recover final '@'
+ $host = "[$host]" if _looks_like_raw_ip6_address( $host );
+ $auth = $user . $host;
+ }
utf8::downgrade($auth);
$$self .= "//$auth";
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_idna.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_idna.pm
index 4292d3e982..f36e937983 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_idna.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_idna.pm
@@ -9,7 +9,7 @@ use warnings;
use URI::_punycode qw(decode_punycode encode_punycode);
use Carp qw(croak);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
BEGIN {
*URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = "$]" < 5.008_003
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_ldap.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_ldap.pm
index 43193b4c9d..d2b943a79d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_ldap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_ldap.pm
@@ -7,7 +7,7 @@ package URI::_ldap;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use URI::Escape qw(uri_unescape);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_login.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_login.pm
index c3d0583ccc..e930bf0886 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_login.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_login.pm
@@ -5,7 +5,7 @@ use warnings;
use parent qw(URI::_server URI::_userpass);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
# Generic terminal logins. This is used as a base class for 'telnet',
# 'tn3270', and 'rlogin' URL schemes.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_punycode.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_punycode.pm
index eeb3662e1f..697c1b7bf6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_punycode.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_punycode.pm
@@ -3,7 +3,7 @@ package URI::_punycode;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use Exporter 'import';
our @EXPORT = qw(encode_punycode decode_punycode);
@@ -25,7 +25,7 @@ my $BasicRE = qr/[\x00-\x7f]/;
sub _croak { require Carp; Carp::croak(@_); }
-sub digit_value {
+sub _digit_value {
my $code = shift;
return ord($code) - ord("A") if $code =~ /[A-Z]/;
return ord($code) - ord("a") if $code =~ /[a-z]/;
@@ -33,14 +33,14 @@ sub digit_value {
return;
}
-sub code_point {
+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 {
+sub _adapt {
my($delta, $numpoints, $firsttime) = @_;
$delta = $firsttime ? $delta / DAMP : $delta / 2;
$delta += $delta / $numpoints;
@@ -71,7 +71,7 @@ sub decode_punycode {
LOOP:
for (my $k = BASE; 1; $k += BASE) {
my $cp = substr($code, 0, 1, '');
- my $digit = digit_value($cp);
+ my $digit = _digit_value($cp);
defined $digit or return _croak("invalid punycode input");
$i += $digit * $w;
my $t = ($k <= $bias) ? TMIN
@@ -79,7 +79,7 @@ sub decode_punycode {
last LOOP if $digit < $t;
$w *= (BASE - $t);
}
- $bias = adapt($i - $oldi, @output + 1, $oldi == 0);
+ $bias = _adapt($i - $oldi, @output + 1, $oldi == 0);
warn "bias becomes $bias" if $DEBUG;
$n += $i / (@output + 1);
$i = $i % (@output + 1);
@@ -106,7 +106,7 @@ sub encode_punycode {
warn "basic codepoints: (@output)" if $DEBUG;
while ($h < @input) {
- my $m = min(grep { $_ >= $n } map ord, @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;
@@ -120,12 +120,12 @@ sub encode_punycode {
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)));
+ 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);
+ push @output, chr(_code_point($q));
+ $bias = _adapt($delta, $h + 1, $h == $b);
warn "bias becomes $bias" if $DEBUG;
$delta = 0;
$h++;
@@ -137,7 +137,7 @@ sub encode_punycode {
return join '', @output;
}
-sub min {
+sub _min {
my $min = shift;
for (@_) { $min = $_ if $_ <= $min }
return $min;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_query.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_query.pm
index b9b70c491d..f39f35749e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_query.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_query.pm
@@ -6,7 +6,7 @@ use warnings;
use URI ();
use URI::Escape qw(uri_unescape);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub query
{
@@ -51,10 +51,14 @@ sub query_form {
$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 (defined $val) {
+ $val =~ s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg;
+ $val =~ s/ /+/g;
+ push(@query, "$key=$val");
+ }
+ else {
+ push(@query, $key);
+ }
}
}
if (@query) {
@@ -70,8 +74,8 @@ sub query_form {
}
return if !defined($old) || !length($old) || !defined(wantarray);
return unless $old =~ /=/; # not a form
- map { s/\+/ /g; uri_unescape($_) }
- map { /=/ ? split(/=/, $_, 2) : ($_ => '')} split(/[&;]/, $old);
+ map { ( defined ) ? do { s/\+/ /g; uri_unescape($_) } : undef }
+ map { /=/ ? split(/=/, $_, 2) : ($_ => undef)} split(/[&;]/, $old);
}
# Handle ...?dog+bones type of query
@@ -94,4 +98,85 @@ sub query_keywords
# Some URI::URL compatibility stuff
sub equery { goto &query }
+sub 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 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 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 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;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_segment.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_segment.pm
index 364ca4857d..948e07b602 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_segment.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_segment.pm
@@ -11,7 +11,7 @@ use URI::Escape qw(uri_unescape);
use overload '""' => sub { $_[0]->[0] },
fallback => 1;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub new
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_server.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_server.pm
index fec55a4fe0..baaf8457bb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_server.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_server.pm
@@ -7,7 +7,7 @@ use parent 'URI::_generic';
use URI::Escape qw(uri_unescape);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub _uric_escape {
my($class, $str) = @_;
@@ -23,7 +23,8 @@ sub _uric_escape {
}
sub _host_escape {
- return unless $_[0] =~ /[^$URI::uric]/;
+ return if URI::HAS_RESERVED_SQUARE_BRACKETS and $_[0] !~ /[^$URI::uric]/;
+ return if !URI::HAS_RESERVED_SQUARE_BRACKETS and $_[0] !~ /[^$URI::uric4host]/;
eval {
require URI::_idna;
$_[0] = URI::_idna::encode($_[0]);
@@ -59,8 +60,8 @@ sub userinfo
$new =~ s/.*@//; # remove old stuff
my $ui = shift;
if (defined $ui) {
- $ui =~ s/@/%40/g; # protect @
- $new = "$ui\@$new";
+ $ui =~ s/([^$URI::uric4user])/ URI::Escape::escape_char($1)/ego;
+ $new = "$ui\@$new";
}
$self->authority($new);
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_userpass.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_userpass.pm
index acf571783a..5fd36a78a2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_userpass.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/_userpass.pm
@@ -5,7 +5,7 @@ use warnings;
use URI::Escape qw(uri_unescape);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub user
{
@@ -39,8 +39,8 @@ sub password
my $user = defined($info) ? $info : "";
$user =~ s/:.*//;
- if (!defined($new) && !length($user)) {
- $self->userinfo(undef);
+ if (!defined($new)) {
+ $self->userinfo(length $user ? $user : undef);
} else {
$new = "" unless defined($new);
$new =~ s/%/%25/g;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/data.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/data.pm
index 666ef38afb..2b87018b46 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/data.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/data.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use MIME::Base64 qw(decode_base64 encode_base64);
use URI::Escape qw(uri_unescape);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file.pm
index c9973ecce9..51f6431e8d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
use parent 'URI::_generic';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use URI::Escape qw(uri_unescape);
@@ -113,13 +113,13 @@ 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");
@@ -127,10 +127,8 @@ URI::file - URI that maps to local file names
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.
+found on various computer systems to the URI name space,
+see L<RFC 8089|https://www.rfc-editor.org/rfc/rfc8089.html>.
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>
@@ -200,8 +198,9 @@ suitable for the local system:
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
+when resolved using the generic algorithm for URIs (specified in L<RFC
+3986|https://www.rfc-editor.org/rfc/rfc3986.html>).
+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
@@ -301,11 +300,11 @@ 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
+This determines 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
+Setting this value to C<undef> forces 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.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Base.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Base.pm
index 5192f33a14..993e6946d5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Base.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Base.pm
@@ -5,7 +5,7 @@ use warnings;
use URI::Escape ();
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub new
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/FAT.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/FAT.pm
index 521c3a05a4..98b651666e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/FAT.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/FAT.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::file::Win32';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub fix_path
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Mac.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Mac.pm
index ee7bf57877..561982e93b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Mac.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Mac.pm
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub _file_extract_path
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/OS2.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/OS2.pm
index 14ec91570b..357e9a43f0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/OS2.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/OS2.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::file::Win32';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
# The Win32 version translates k:/foo to file://k:/foo (?!)
# We add an empty host
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/QNX.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/QNX.pm
index cb47809898..7c6463e2ff 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/QNX.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/QNX.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::file::Unix';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub _file_extract_path
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Unix.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Unix.pm
index fa226f7765..0c35e91d81 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Unix.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Unix.pm
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub _file_extract_path
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Win32.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Win32.pm
index bc1b373b4e..4a7f0f3bef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Win32.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/file/Win32.pm
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub _file_extract_authority
{
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ftp.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ftp.pm
index a6c12df271..d0ba16f754 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ftp.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ftp.pm
@@ -3,7 +3,7 @@ package URI::ftp;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent qw(URI::_server URI::_userpass);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/geo.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/geo.pm
new file mode 100755
index 0000000000..da2b9517ad
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/geo.pm
@@ -0,0 +1,418 @@
+package URI::geo;
+
+use warnings;
+use strict;
+
+use Carp;
+use URI::Split qw( uri_split uri_join );
+
+use base qw( URI );
+
+our $VERSION = '5.27';
+
+sub _MINIMUM_LATITUDE { return -90 }
+sub _MAXIMUM_LATITUDE { return 90 }
+sub _MINIMUM_LONGITUDE { return -180 }
+sub _MAXIMUM_LONGITUDE { return 180 }
+sub _MAX_POINTY_PARAMETERS { return 3 }
+
+sub _can {
+ my ($can_pt, @keys) = @_;
+ for my $key (@keys) {
+ return $key if $can_pt->can($key);
+ }
+ return;
+}
+
+sub _has {
+ my ($has_pt, @keys) = @_;
+ for my $key (@keys) {
+ return $key if exists $has_pt->{$key};
+ }
+ return;
+}
+
+# Try hard to extract location information from something. We handle lat,
+# lon, alt as scalars, arrays containing lat, lon, alt, hashes with
+# suitably named keys and objects with suitably named methods.
+
+sub _location_of_pointy_thing {
+ my ($class, @parameters) = @_;
+
+ my @lat = qw( lat latitude );
+ my @lon = qw( lon long longitude lng );
+ my @ele = qw( ele alt elevation altitude );
+
+ if (ref $parameters[0]) {
+ my $pt = shift @parameters;
+
+ if (@parameters) {
+ croak q[Too many arguments];
+ }
+
+ if (eval { $pt->can('can') }) {
+ for my $m (qw( location latlong )) {
+ return $pt->$m() if _can($pt, $m);
+ }
+
+ my $latk = _can($pt, @lat);
+ my $lonk = _can($pt, @lon);
+ my $elek = _can($pt, @ele);
+
+ if (defined $latk && defined $lonk) {
+ return $pt->$latk(), $pt->$lonk(),
+ defined $elek ? $pt->$elek() : undef;
+ }
+ }
+ elsif ('ARRAY' eq ref $pt) {
+ return $class->_location_of_pointy_thing(@{$pt});
+ }
+ elsif ('HASH' eq ref $pt) {
+
+ my $latk = _has($pt, @lat);
+ my $lonk = _has($pt, @lon);
+ my $elek = _has($pt, @ele);
+
+ if (defined $latk && defined $lonk) {
+ return $pt->{$latk}, $pt->{$lonk},
+ defined $elek ? $pt->{$elek} : undef;
+ }
+ }
+
+ croak q[Don't know how to convert point];
+ }
+ else {
+ croak q[Need lat, lon or lat, lon, alt]
+ if @parameters < 2 || @parameters > _MAX_POINTY_PARAMETERS();
+ return my ($lat, $lon, $alt) = @parameters;
+ }
+}
+
+sub _num {
+ my ($class, $n) = @_;
+ if (!defined $n) {
+ return q[];
+ }
+ (my $rep = sprintf '%f', $n) =~ s/[.]0*$//smx;
+ return $rep;
+}
+
+sub new {
+ my ($self, @parameters) = @_;
+ my $class = ref $self || $self;
+ my $uri = uri_join 'geo', undef, $class->_path(@parameters);
+ return bless \$uri, $class;
+}
+
+sub _init {
+ my ($class, $uri, $scheme) = @_;
+
+ my $self = $class->SUPER::_init($uri, $scheme);
+
+ # Normalise at poles.
+ my $lat = $self->latitude;
+ if ($lat == _MAXIMUM_LATITUDE() || $lat == _MINIMUM_LATITUDE()) {
+ $self->longitude(0);
+ }
+ return $self;
+}
+
+sub location {
+ my ($self, @parameters) = @_;
+
+ if (@parameters) {
+ my ($lat, $lon, $alt) = @parameters;
+ return $self->latitude($lat)->longitude($lon)->altitude($alt);
+ }
+
+ return $self->latitude, $self->longitude, $self->altitude;
+}
+
+sub latitude {
+ my ($self, @parameters) = @_;
+ return $self->field('latitude', @parameters);
+}
+
+sub longitude {
+ my ($self, @parameters) = @_;
+ return $self->field('longitude', @parameters);
+}
+
+sub altitude {
+ my ($self, @parameters) = @_;
+ return $self->field('altitude', @parameters);
+}
+
+sub crs {
+ my ($self, @parameters) = @_;
+ return $self->field('crs', @parameters);
+}
+
+sub uncertainty {
+ my ($self, @parameters) = @_;
+ return $self->field('uncertainty', @parameters);
+}
+
+sub field {
+ my ($self, $name, @remainder) = @_;
+ my ($scheme, $auth, $v, $query, $frag) = $self->_parse;
+
+ if (!exists $v->{$name}) {
+ croak "No such field: $name";
+ }
+ if (!@remainder) {
+ return $v->{$name};
+ }
+ $v->{$name} = shift @remainder;
+ ${$self} = uri_join $scheme, $auth, $self->_format($v), $query, $frag;
+ return $self;
+}
+
+{
+ my $pnum = qr{\d+(?:[.]\d+)?}smx;
+ my $num = qr{-?$pnum}smx;
+ my $crsp = qr{(?:;crs=(\w+))}smx;
+ my $uncp = qr{(?:;u=($pnum))}smx;
+ my $parm = qr{(?:;\w+=[^;]*)+}smx;
+
+ sub _parse {
+ my $self = shift;
+ my ($scheme, $auth, $path, $query, $frag) = uri_split ${$self};
+
+ $path =~ m{^ ($num), ($num) (?: , ($num) ) ?
+ (?: $crsp ) ?
+ (?: $uncp ) ?
+ ( $parm ) ?
+ $}smx or croak 'Badly formed geo uri';
+
+ # No named captures before 5.10.0
+ return $scheme, $auth,
+ {
+ latitude => $1,
+ longitude => $2,
+ altitude => $3,
+ crs => $4,
+ uncertainty => $5,
+ parameters => (defined $6 ? substr $6, 1 : undef),
+ },
+ $query, $frag;
+ }
+}
+
+sub _format {
+ my ($class, $v) = @_;
+ return join q[;],
+ (
+ join q[,],
+ map { $class->_num($_) } @{$v}{'latitude', 'longitude'},
+ (defined $v->{altitude} ? ($v->{altitude}) : ())
+ ),
+ (defined $v->{crs} ? ('crs=' . $class->_num($v->{crs})) : ()),
+ (
+ defined $v->{uncertainty}
+ ? ('u=' . $class->_num($v->{uncertainty}))
+ : ()), (defined $v->{parameters} ? ($v->{parameters}) : ());
+}
+
+sub _path {
+ my ($class, @parameters) = @_;
+ my ($lat, $lon, $alt) = $class->_location_of_pointy_thing(@parameters);
+ croak 'Latitude out of range'
+ if $lat < _MINIMUM_LATITUDE() || $lat > _MAXIMUM_LATITUDE();
+ croak 'Longitude out of range'
+ if $lon < _MINIMUM_LONGITUDE() || $lon > _MAXIMUM_LONGITUDE();
+ if ($lat == _MINIMUM_LATITUDE() || $lat == _MAXIMUM_LATITUDE()) {
+ $lat = 0;
+ }
+ return $class->_format(
+ {latitude => $lat, longitude => $lon, altitude => $alt});
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+URI::geo - URI scheme for geo Identifiers
+
+=head1 SYNOPSIS
+
+ use URI;
+
+ # Geo URI from textual uri
+ my $guri = URI->new( 'geo:54.786989,-2.344214' );
+
+ # From coordinates
+ my $guri = URI::geo->new( 54.786989, -2.344214 );
+
+ # Decode
+ my ( $lat, $lon, $alt ) = $guri->location;
+ my $latitude = $guri->latitude;
+
+ # Update
+ $guri->location( 55, -1 );
+ $guri->longitude( -43.23 );
+
+=head1 DESCRIPTION
+
+From L<http://geouri.org/>:
+
+ More and more protocols and data formats are being extended by methods
+ to add geographic information. However, all of those options are tied
+ to that specific protocol or data format.
+
+ A dedicated Uniform Resource Identifier (URI) scheme for geographic
+ locations would be independent from any protocol, usable by any
+ software/data format that can handle generich URIs. Like a "mailto:"
+ URI launches your favourite mail application today, a "geo:" URI could
+ soon launch your favourite mapping service, or queue that location for
+ a navigation device.
+
+=head1 SUBROUTINES/METHODS
+
+=head2 C<< new >>
+
+Create a new URI::geo. The arguments should be either
+
+=over
+
+=item * latitude, longitude and optionally altitude
+
+=item * a reference to an array containing lat, lon, alt
+
+=item * a reference to a hash with suitably named keys or
+
+=item * a reference to an object with suitably named accessors
+
+=back
+
+To maximize the likelihood that you can pass in some object that
+represents a geographical location and have URI::geo do the right thing
+we try a number of different accessor names.
+
+If the object has a C<latlong> method (e.g. L<Geo::Point>) we'll use that.
+If there's a C<location> method we call that. Otherwise we look for
+accessors called C<lat>, C<latitude>, C<lon>, C<long>, C<longitude>,
+C<ele>, C<alt>, C<elevation> or C<altitude> and use them.
+
+Often if you have an object or hash reference that represents a point
+you can pass it directly to C<new>; so for example this will work:
+
+ use URI::geo;
+ use Geo::Point;
+
+ my $pt = Geo::Point->latlong( 48.208333, 16.372778 );
+ my $guri = URI::geo->new( $pt );
+
+As will this:
+
+ my $guri = URI::geo->new( { lat => 55, lon => -1 } );
+
+and this:
+
+ my $guri = URI::geo->new( 55, -1 );
+
+Note that you can also create a new C<URI::geo> by passing a Geo URI to
+C<URI::new>:
+
+ use URI;
+
+ my $guri = URI->new( 'geo:55,-1' );
+
+=head2 C<location>
+
+Get or set the location of this geo URI.
+
+ my ( $lat, $lon, $alt ) = $guri->location;
+ $guri->location( 55.3, -3.7, 120 );
+
+When setting the location it is possible to pass any of the argument
+types that can be passed to C<new>.
+
+=head2 C<latitude>
+
+Get or set the latitude of this geo URI.
+
+=head2 C<longitude>
+
+Get or set the longitude of this geo URI.
+
+=head2 C<altitude>
+
+Get or set the L<altitude|https://en.wikipedia.org/wiki/Geo_URI_scheme#Altitude> of this geo URI. To delete the altitude set it to C<undef>.
+
+=head2 C<crs>
+
+Get or set the L<Coordinate Reference System|https://en.wikipedia.org/wiki/Geo_URI_scheme#Coordinate_reference_systems> of this geo URI. To delete the CRS set it to C<undef>.
+
+=head2 C<uncertainty>
+
+Get or set the L<uncertainty|https://en.wikipedia.org/wiki/Geo_URI_scheme#Uncertainty> of this geo URI. To delete the uncertainty set it to C<undef>.
+
+=head2 C<field>
+
+=head1 CONFIGURATION AND ENVIRONMENT
+
+URI::geo requires no configuration files or environment variables.
+
+=head1 DEPENDENCIES
+
+L<URI>
+
+=head1 DIAGNOSTICS
+
+=over
+
+=item C<< Too many arguments >>
+
+The L<new|/new> method can only accept three parameters; latitude, longitude and altitude.
+
+=item C<< Don't know how to convert point >>
+
+The L<new|/new> method doesn't know how to convert the supplied parameters into a URI::geo object.
+
+=item C<< Need lat, lon or lat, lon, alt >>
+
+The L<new|/new> method needs two (latitude and longitude) or three (latitude, longitude and altitude) parameters in a list. Any less or more than this is an error.
+
+=item C<< No such field: %s >>
+
+This field is not a known field for the L<URI::geo|URI::geo> object.
+
+=item C<< Badly formed geo uri >>
+
+The L<URI|URI> cannot be parsed as a URI
+
+=item C<< Badly formed geo uri >>
+
+The L<URI|URI> cannot be parsed as a URI
+
+=item C<< Latitude out of range >>
+
+Latitude may only be from -90 to +90
+
+=item C<< Longitude out of range >>
+
+Longitude may only be from -180 to +180
+
+=back
+
+=head1 INCOMPATIBILITIES
+
+None reported.
+
+=head1 BUGS AND LIMITATIONS
+
+To report a bug, or view the current list of bugs, please visit L<https://github.com/libwww-perl/URI/issues>
+
+=head1 AUTHOR
+
+Andy Armstrong C<< <andy@hexten.net> >>
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright (c) 2009, Andy Armstrong C<< <andy@hexten.net> >>.
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself. See L<perlartistic>.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/gopher.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/gopher.pm
index febd95c0ba..0ab8513eca 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/gopher.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/gopher.pm
@@ -3,7 +3,7 @@ package URI::gopher; # <draft-murali-url-gopher>, Dec 4, 1996
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_server';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/http.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/http.pm
index 50a09f0989..6f970bb034 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/http.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/http.pm
@@ -3,7 +3,7 @@ package URI::http;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_server';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/https.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/https.pm
index e3283e57c0..9b8c4c6b6c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/https.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/https.pm
@@ -3,7 +3,7 @@ package URI::https;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::http';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icap.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icap.pm
new file mode 100755
index 0000000000..674078dffe
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icap.pm
@@ -0,0 +1,76 @@
+package URI::icap;
+
+use strict;
+use warnings;
+use base qw(URI::http);
+
+our $VERSION = '5.27';
+
+sub default_port { return 1344 }
+
+1;
+__END__
+
+=head1 NAME
+
+URI::icap - URI scheme for ICAP Identifiers
+
+=head1 VERSION
+
+Version 5.20
+
+=head1 SYNOPSIS
+
+ use URI::icap;
+
+ my $uri = URI->new('icap://icap-proxy.example.com/');
+
+=head1 DESCRIPTION
+
+This module implements the C<icap:> URI scheme defined in L<RFC 3507|http://tools.ietf.org/html/rfc3507>, for the L<Internet Content Adaptation Protocol|https://en.wikipedia.org/wiki/Internet_Content_Adaptation_Protocol>.
+
+=head1 SUBROUTINES/METHODS
+
+This module inherits the behaviour of L<URI::http|URI::http> and overrides the L<default_port|URI#$uri->default_port> method.
+
+=head2 default_port
+
+The default port for icap servers is 1344
+
+=head1 DIAGNOSTICS
+
+See L<URI|URI>
+
+=head1 CONFIGURATION AND ENVIRONMENT
+
+See L<URI|URI#CONFIGURATION-VARIABLES> and L<URI|URI#ENVIRONMENT-VARIABLES>
+
+=head1 DEPENDENCIES
+
+None
+
+=head1 INCOMPATIBILITIES
+
+None reported
+
+=head1 BUGS AND LIMITATIONS
+
+See L<URI|URI#BUGS>
+
+=head1 SEE ALSO
+
+L<RFC 3507|http://tools.ietf.org/html/rfc3507>
+
+=head1 AUTHOR
+
+David Dick, C<< <ddick at cpan.org> >>
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright 2016 David Dick.
+
+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 L<http://dev.perl.org/licenses/> for more information.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icaps.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icaps.pm
new file mode 100755
index 0000000000..dd171439fe
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/icaps.pm
@@ -0,0 +1,76 @@
+package URI::icaps;
+
+use strict;
+use warnings;
+use base qw(URI::icap);
+
+our $VERSION = '5.27';
+
+sub secure { return 1 }
+
+1;
+__END__
+
+=head1 NAME
+
+URI::icaps - URI scheme for ICAPS Identifiers
+
+=head1 VERSION
+
+Version 5.20
+
+=head1 SYNOPSIS
+
+ use URI::icaps;
+
+ my $uri = URI->new('icaps://icap-proxy.example.com/');
+
+=head1 DESCRIPTION
+
+This module implements the C<icaps:> URI scheme defined in L<RFC 3507|http://tools.ietf.org/html/rfc3507>, for the L<Internet Content Adaptation Protocol|https://en.wikipedia.org/wiki/Internet_Content_Adaptation_Protocol>.
+
+=head1 SUBROUTINES/METHODS
+
+This module inherits the behaviour of L<URI::icap|URI::icap> and overrides the L<secure|URI#$uri->secure> method.
+
+=head2 secure
+
+returns 1 as icaps is a secure protocol
+
+=head1 DIAGNOSTICS
+
+See L<URI::icap|URI::icap>
+
+=head1 CONFIGURATION AND ENVIRONMENT
+
+See L<URI::icap|URI::icap>
+
+=head1 DEPENDENCIES
+
+None
+
+=head1 INCOMPATIBILITIES
+
+None reported
+
+=head1 BUGS AND LIMITATIONS
+
+See L<URI::icap|URI::icap>
+
+=head1 SEE ALSO
+
+L<RFC 3507|http://tools.ietf.org/html/rfc3507>
+
+=head1 AUTHOR
+
+David Dick, C<< <ddick at cpan.org> >>
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright 2016 David Dick.
+
+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 L<http://dev.perl.org/licenses/> for more information.
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldap.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldap.pm
index 2977954b5a..566f22c9cd 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldap.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldap.pm
@@ -7,7 +7,7 @@ package URI::ldap;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent qw(URI::_ldap URI::_server);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldapi.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldapi.pm
index e3bac5a860..d792d1f020 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldapi.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldapi.pm
@@ -3,7 +3,7 @@ package URI::ldapi;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent qw(URI::_ldap URI::_generic);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldaps.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldaps.pm
index 4d58c67e38..d79f504aac 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldaps.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ldaps.pm
@@ -3,7 +3,7 @@ package URI::ldaps;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::ldap';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mailto.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mailto.pm
index 5d6f241080..34215752cc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mailto.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mailto.pm
@@ -3,7 +3,7 @@ package URI::mailto; # RFC 2368
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent qw(URI URI::_query);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mms.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mms.pm
index 6a41297484..dfa02a2dfe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mms.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/mms.pm
@@ -3,7 +3,7 @@ package URI::mms;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::http';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/news.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/news.pm
index 4092981be0..19e3f2271d 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/news.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/news.pm
@@ -3,7 +3,7 @@ package URI::news; # draft-gilman-news-url-01
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_server';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntp.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntp.pm
index be276893d0..1386e9426b 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntp.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntp.pm
@@ -3,7 +3,7 @@ package URI::nntp; # draft-gilman-news-url-01
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::news';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntps.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntps.pm
index a10e99293a..d37fed6b3c 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntps.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/nntps.pm
@@ -3,7 +3,7 @@ package URI::nntps;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::nntp';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/pop.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/pop.pm
index accab911b4..0ac79d8409 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/pop.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/pop.pm
@@ -3,7 +3,7 @@ package URI::pop; # RFC 2384
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_server';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rlogin.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rlogin.pm
index 049ff4a026..a89ac837e1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rlogin.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rlogin.pm
@@ -3,7 +3,7 @@ package URI::rlogin;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_login';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rsync.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rsync.pm
index 164c6b7d55..166a1d4c6a 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rsync.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rsync.pm
@@ -5,7 +5,7 @@ package URI::rsync; # http://rsync.samba.org/
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent qw(URI::_server URI::_userpass);
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtsp.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtsp.pm
index 48429f7e1a..939e625fb6 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtsp.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtsp.pm
@@ -3,7 +3,7 @@ package URI::rtsp;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::http';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtspu.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtspu.pm
index c9bc64d49d..3af9fe4825 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtspu.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/rtspu.pm
@@ -3,7 +3,7 @@ package URI::rtspu;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::rtsp';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sftp.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sftp.pm
index 4c9a1f38bf..1af2e368d7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sftp.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sftp.pm
@@ -5,6 +5,6 @@ use warnings;
use parent 'URI::ssh';
-our $VERSION = '5.10';
+our $VERSION = '5.27';
1;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sip.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sip.pm
index a6aeb858ac..f3ce0f5c09 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sip.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sip.pm
@@ -14,7 +14,7 @@ use parent qw(URI::_server URI::_userpass);
use URI::Escape ();
-our $VERSION = '5.10';
+our $VERSION = '5.27';
sub default_port { 5060 }
@@ -22,37 +22,33 @@ sub authority
{
my $self = shift;
$$self =~ m,^($URI::scheme_re:)?([^;?]*)(.*)$,os or die;
- my $old = $2;
+ my $start = $1;
+ my $authoritystr = $2;
+ my $rest = $3;
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;
+ $authoritystr = shift;
+ $authoritystr =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego;
+ $$self = $start . $authoritystr . $rest;
}
- $old;
+ return $authoritystr;
}
sub params_form
{
my $self = shift;
$$self =~ m,^((?:$URI::scheme_re:)?)(?:([^;?]*))?(;[^?]*)?(.*)$,os or die;
+ my $start = $1 . $2;
my $paramstr = $3;
+ my $rest = $4;
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]");
+ my @paramarr;
+ for (my $i = 0; $i < @_; $i += 2) {
+ push(@paramarr, "$_[$i]=$_[$i+1]");
}
- $paramstr = join(";", @new);
- $$self .= ";" . $paramstr . $rest;
+ $paramstr = join(";", @paramarr);
+ $$self = $start . ";" . $paramstr . $rest;
}
$paramstr =~ s/^;//o;
return split(/[;=]/, $paramstr);
@@ -62,13 +58,13 @@ sub params
{
my $self = shift;
$$self =~ m,^((?:$URI::scheme_re:)?)(?:([^;?]*))?(;[^?]*)?(.*)$,os or die;
+ my $start = $1 . $2;
my $paramstr = $3;
+ my $rest = $4;
if (@_) {
- my $new = shift;
- $$self = $1 . $2;
- my $rest = $4;
- $$self .= $paramstr . $rest;
+ $paramstr = shift;
+ $$self = $start . ";" . $paramstr . $rest;
}
$paramstr =~ s/^;//o;
return $paramstr;
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sips.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sips.pm
index 3d7c2f2d6a..df6e75bd1e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sips.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/sips.pm
@@ -3,7 +3,7 @@ package URI::sips;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::sip';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/snews.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/snews.pm
index e541482125..2c862f51d2 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/snews.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/snews.pm
@@ -3,7 +3,7 @@ package URI::snews; # draft-gilman-news-url-01
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::news';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ssh.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ssh.pm
index 7273c2b1a5..58340f7189 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ssh.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/ssh.pm
@@ -3,7 +3,7 @@ package URI::ssh;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_login';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/telnet.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/telnet.pm
index 5d81650607..92db5d2533 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/telnet.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/telnet.pm
@@ -3,7 +3,7 @@ package URI::telnet;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_login';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/tn3270.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/tn3270.pm
index 53a341402e..2e9d8bc669 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/tn3270.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/tn3270.pm
@@ -3,7 +3,7 @@ package URI::tn3270;
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::_login';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn.pm
index 75f3a9b646..40d4a3e323 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn.pm
@@ -3,14 +3,13 @@ package URI::urn; # RFC 2141
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI';
use Carp qw(carp);
my %implementor;
-my %require_attempted;
sub _init {
my $class = shift;
@@ -30,13 +29,11 @@ sub _init {
$impclass = "URI::urn::$id";
no strict 'refs';
unless (@{"${impclass}::ISA"}) {
- if (not exists $require_attempted{$impclass}) {
# Try to load it
my $_old_error = $@;
eval "require $impclass";
die $@ if $@ && $@ !~ /Can\'t locate.*in \@INC/;
$@ = $_old_error;
- }
$impclass = "URI::urn" unless @{"${impclass}::ISA"};
}
}
@@ -44,7 +41,6 @@ sub _init {
carp("Illegal namespace identifier '$nid' for URN '$self'") if $^W;
}
$implementor{$nid} = $impclass;
-
return $impclass->_urn_init($self, $nid);
}
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/isbn.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/isbn.pm
index 4986d701f6..ee1abafad1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/isbn.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/isbn.pm
@@ -3,7 +3,7 @@ package URI::urn::isbn; # RFC 3187
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::urn';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/oid.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/oid.pm
index 5ba279f68c..30f42527ea 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/oid.pm
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/URI/urn/oid.pm
@@ -3,7 +3,7 @@ package URI::urn::oid; # RFC 2061
use strict;
use warnings;
-our $VERSION = '5.10';
+our $VERSION = '5.27';
use parent 'URI::urn';
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
index 228fdadd04..5fa2d1a6ac 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
@@ -1,6 +1,9 @@
-E:\tlperl\bin\cpanel_json_xs
-E:\tlperl\bin\cpanel_json_xs.bat
-E:\tlperl\site\lib\Cpanel\JSON\XS.pm
-E:\tlperl\site\lib\Cpanel\JSON\XS\Boolean.pm
-E:\tlperl\site\lib\Cpanel\JSON\XS\Type.pm
-E:\tlperl\site\lib\auto\Cpanel\JSON\XS\XS.dll
+D:\tlperl\bin\cpanel_json_xs
+D:\tlperl\bin\cpanel_json_xs.bat
+D:\tlperl\site\lib\Cpanel\JSON\XS.pm
+D:\tlperl\site\lib\Cpanel\JSON\XS\Boolean.pm
+D:\tlperl\site\lib\Cpanel\JSON\XS\Type.pm
+D:\tlperl\site\lib\auto\Cpanel\JSON\XS\XS.dll
+D:\tlperl\site\lib\auto\Cpanel\JSON\XS\XS.exp
+D:\tlperl\site\lib\auto\Cpanel\JSON\XS\XS.lib
+D:\tlperl\site\lib\auto\Cpanel\JSON\XS\XS.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
index a16a14e03a..0e8cf74584 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.exp
new file mode 100755
index 0000000000..0f5d42701b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.lib
new file mode 100755
index 0000000000..a784ed604a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.pdb
new file mode 100755
index 0000000000..5b88657d7b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
index 3ce2a50b44..9222d79bbb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
@@ -1,39 +1,39 @@
-E:\tlperl\site\lib\Date\Format.pm
-E:\tlperl\site\lib\Date\Language.pm
-E:\tlperl\site\lib\Date\Language\Afar.pm
-E:\tlperl\site\lib\Date\Language\Amharic.pm
-E:\tlperl\site\lib\Date\Language\Austrian.pm
-E:\tlperl\site\lib\Date\Language\Brazilian.pm
-E:\tlperl\site\lib\Date\Language\Bulgarian.pm
-E:\tlperl\site\lib\Date\Language\Chinese.pm
-E:\tlperl\site\lib\Date\Language\Chinese_GB.pm
-E:\tlperl\site\lib\Date\Language\Czech.pm
-E:\tlperl\site\lib\Date\Language\Danish.pm
-E:\tlperl\site\lib\Date\Language\Dutch.pm
-E:\tlperl\site\lib\Date\Language\English.pm
-E:\tlperl\site\lib\Date\Language\Finnish.pm
-E:\tlperl\site\lib\Date\Language\French.pm
-E:\tlperl\site\lib\Date\Language\Gedeo.pm
-E:\tlperl\site\lib\Date\Language\German.pm
-E:\tlperl\site\lib\Date\Language\Greek.pm
-E:\tlperl\site\lib\Date\Language\Hungarian.pm
-E:\tlperl\site\lib\Date\Language\Icelandic.pm
-E:\tlperl\site\lib\Date\Language\Italian.pm
-E:\tlperl\site\lib\Date\Language\Norwegian.pm
-E:\tlperl\site\lib\Date\Language\Occitan.pm
-E:\tlperl\site\lib\Date\Language\Oromo.pm
-E:\tlperl\site\lib\Date\Language\Romanian.pm
-E:\tlperl\site\lib\Date\Language\Russian.pm
-E:\tlperl\site\lib\Date\Language\Russian_cp1251.pm
-E:\tlperl\site\lib\Date\Language\Russian_koi8r.pm
-E:\tlperl\site\lib\Date\Language\Sidama.pm
-E:\tlperl\site\lib\Date\Language\Somali.pm
-E:\tlperl\site\lib\Date\Language\Spanish.pm
-E:\tlperl\site\lib\Date\Language\Swedish.pm
-E:\tlperl\site\lib\Date\Language\Tigrinya.pm
-E:\tlperl\site\lib\Date\Language\TigrinyaEritrean.pm
-E:\tlperl\site\lib\Date\Language\TigrinyaEthiopian.pm
-E:\tlperl\site\lib\Date\Language\Turkish.pm
-E:\tlperl\site\lib\Date\Parse.pm
-E:\tlperl\site\lib\TimeDate.pm
-E:\tlperl\site\lib\Time\Zone.pm
+D:\tlperl\site\lib\Date\Format.pm
+D:\tlperl\site\lib\Date\Language.pm
+D:\tlperl\site\lib\Date\Language\Afar.pm
+D:\tlperl\site\lib\Date\Language\Amharic.pm
+D:\tlperl\site\lib\Date\Language\Austrian.pm
+D:\tlperl\site\lib\Date\Language\Brazilian.pm
+D:\tlperl\site\lib\Date\Language\Bulgarian.pm
+D:\tlperl\site\lib\Date\Language\Chinese.pm
+D:\tlperl\site\lib\Date\Language\Chinese_GB.pm
+D:\tlperl\site\lib\Date\Language\Czech.pm
+D:\tlperl\site\lib\Date\Language\Danish.pm
+D:\tlperl\site\lib\Date\Language\Dutch.pm
+D:\tlperl\site\lib\Date\Language\English.pm
+D:\tlperl\site\lib\Date\Language\Finnish.pm
+D:\tlperl\site\lib\Date\Language\French.pm
+D:\tlperl\site\lib\Date\Language\Gedeo.pm
+D:\tlperl\site\lib\Date\Language\German.pm
+D:\tlperl\site\lib\Date\Language\Greek.pm
+D:\tlperl\site\lib\Date\Language\Hungarian.pm
+D:\tlperl\site\lib\Date\Language\Icelandic.pm
+D:\tlperl\site\lib\Date\Language\Italian.pm
+D:\tlperl\site\lib\Date\Language\Norwegian.pm
+D:\tlperl\site\lib\Date\Language\Occitan.pm
+D:\tlperl\site\lib\Date\Language\Oromo.pm
+D:\tlperl\site\lib\Date\Language\Romanian.pm
+D:\tlperl\site\lib\Date\Language\Russian.pm
+D:\tlperl\site\lib\Date\Language\Russian_cp1251.pm
+D:\tlperl\site\lib\Date\Language\Russian_koi8r.pm
+D:\tlperl\site\lib\Date\Language\Sidama.pm
+D:\tlperl\site\lib\Date\Language\Somali.pm
+D:\tlperl\site\lib\Date\Language\Spanish.pm
+D:\tlperl\site\lib\Date\Language\Swedish.pm
+D:\tlperl\site\lib\Date\Language\Tigrinya.pm
+D:\tlperl\site\lib\Date\Language\TigrinyaEritrean.pm
+D:\tlperl\site\lib\Date\Language\TigrinyaEthiopian.pm
+D:\tlperl\site\lib\Date\Language\Turkish.pm
+D:\tlperl\site\lib\Date\Parse.pm
+D:\tlperl\site\lib\TimeDate.pm
+D:\tlperl\site\lib\Time\Zone.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist
index 915cf6fc67..473f64cb86 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/.packlist
@@ -1,4 +1,7 @@
-E:\tlperl\bin\shasum
-E:\tlperl\bin\shasum.bat
-E:\tlperl\site\lib\Digest\SHA.pm
-E:\tlperl\site\lib\auto\Digest\SHA\SHA.dll
+D:\tlperl\bin\shasum
+D:\tlperl\bin\shasum.bat
+D:\tlperl\site\lib\Digest\SHA.pm
+D:\tlperl\site\lib\auto\Digest\SHA\SHA.dll
+D:\tlperl\site\lib\auto\Digest\SHA\SHA.exp
+D:\tlperl\site\lib\auto\Digest\SHA\SHA.lib
+D:\tlperl\site\lib\auto\Digest\SHA\SHA.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dll
index 10baceea13..806eb23096 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.exp
new file mode 100755
index 0000000000..0807b9236e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.lib
new file mode 100755
index 0000000000..1a7cb5daa3
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.pdb
new file mode 100755
index 0000000000..14c6d26556
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Digest/SHA/SHA.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
index 9fd84edc87..ab92a81c67 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\Encode\Locale.pm
+D:\tlperl\site\lib\Encode\Locale.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
index 60c4858995..1efa98462c 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
@@ -1,4 +1,4 @@
-E:\tlperl\site\lib\Encode\compat.pm
-E:\tlperl\site\lib\Encode\compat\5006001.pm
-E:\tlperl\site\lib\Encode\compat\Alias.pm
-E:\tlperl\site\lib\Encode\compat\common.pm
+D:\tlperl\site\lib\Encode\compat.pm
+D:\tlperl\site\lib\Encode\compat\5006001.pm
+D:\tlperl\site\lib\Encode\compat\Alias.pm
+D:\tlperl\site\lib\Encode\compat\common.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Config/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Config/.packlist
new file mode 100755
index 0000000000..8fa504b388
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Config/.packlist
@@ -0,0 +1 @@
+D:\tlperl\site\lib\ExtUtils\Config.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Helpers/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Helpers/.packlist
new file mode 100755
index 0000000000..0fdf7f1b60
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/Helpers/.packlist
@@ -0,0 +1,4 @@
+D:\tlperl\site\lib\ExtUtils\Helpers.pm
+D:\tlperl\site\lib\ExtUtils\Helpers\Unix.pm
+D:\tlperl\site\lib\ExtUtils\Helpers\VMS.pm
+D:\tlperl\site\lib\ExtUtils\Helpers\Windows.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/InstallPaths/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/InstallPaths/.packlist
new file mode 100755
index 0000000000..e63813e67c
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/ExtUtils/InstallPaths/.packlist
@@ -0,0 +1 @@
+D:\tlperl\site\lib\ExtUtils\InstallPaths.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
index 2a9f354284..e7f9804feb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\File\Listing.pm
+D:\tlperl\site\lib\File\Listing.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Which/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Which/.packlist
index 018541e49a..6071facafe 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Which/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/File/Which/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\File\Which.pm
+D:\tlperl\site\lib\File\Which.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
index ac6022d7d6..190d4b45d1 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
@@ -1,8 +1,11 @@
-E:\tlperl\site\lib\HTML\Entities.pm
-E:\tlperl\site\lib\HTML\Filter.pm
-E:\tlperl\site\lib\HTML\HeadParser.pm
-E:\tlperl\site\lib\HTML\LinkExtor.pm
-E:\tlperl\site\lib\HTML\Parser.pm
-E:\tlperl\site\lib\HTML\PullParser.pm
-E:\tlperl\site\lib\HTML\TokeParser.pm
-E:\tlperl\site\lib\auto\HTML\Parser\Parser.dll
+D:\tlperl\site\lib\HTML\Entities.pm
+D:\tlperl\site\lib\HTML\Filter.pm
+D:\tlperl\site\lib\HTML\HeadParser.pm
+D:\tlperl\site\lib\HTML\LinkExtor.pm
+D:\tlperl\site\lib\HTML\Parser.pm
+D:\tlperl\site\lib\HTML\PullParser.pm
+D:\tlperl\site\lib\HTML\TokeParser.pm
+D:\tlperl\site\lib\auto\HTML\Parser\Parser.dll
+D:\tlperl\site\lib\auto\HTML\Parser\Parser.exp
+D:\tlperl\site\lib\auto\HTML\Parser\Parser.lib
+D:\tlperl\site\lib\auto\HTML\Parser\Parser.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
index 4ec73a56f8..1808816ac7 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.exp
new file mode 100755
index 0000000000..68fbff39be
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.lib
new file mode 100755
index 0000000000..6969c45ab4
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.pdb
new file mode 100755
index 0000000000..88624beb94
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
index dab2adba68..0625f11b92 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\HTML\Tagset.pm
+D:\tlperl\site\lib\HTML\Tagset.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
index 3c859961d9..82eb84f3ef 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
@@ -1,3 +1,3 @@
-E:\tlperl\site\lib\HTTP\Cookies.pm
-E:\tlperl\site\lib\HTTP\Cookies\Microsoft.pm
-E:\tlperl\site\lib\HTTP\Cookies\Netscape.pm
+D:\tlperl\site\lib\HTTP\Cookies.pm
+D:\tlperl\site\lib\HTTP\Cookies\Microsoft.pm
+D:\tlperl\site\lib\HTTP\Cookies\Netscape.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
index 6a3e7177e9..8133238e5e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\HTTP\Daemon.pm
+D:\tlperl\site\lib\HTTP\Daemon.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist
index b1a8ab9044..78da80fb27 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\HTTP\Date.pm
+D:\tlperl\site\lib\HTTP\Date.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist
index 09b22f2e9a..71010b4ecc 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist
@@ -1,10 +1,10 @@
-E:\tlperl\site\lib\HTTP\Config.pm
-E:\tlperl\site\lib\HTTP\Headers.pm
-E:\tlperl\site\lib\HTTP\Headers\Auth.pm
-E:\tlperl\site\lib\HTTP\Headers\ETag.pm
-E:\tlperl\site\lib\HTTP\Headers\Util.pm
-E:\tlperl\site\lib\HTTP\Message.pm
-E:\tlperl\site\lib\HTTP\Request.pm
-E:\tlperl\site\lib\HTTP\Request\Common.pm
-E:\tlperl\site\lib\HTTP\Response.pm
-E:\tlperl\site\lib\HTTP\Status.pm
+D:\tlperl\site\lib\HTTP\Config.pm
+D:\tlperl\site\lib\HTTP\Headers.pm
+D:\tlperl\site\lib\HTTP\Headers\Auth.pm
+D:\tlperl\site\lib\HTTP\Headers\ETag.pm
+D:\tlperl\site\lib\HTTP\Headers\Util.pm
+D:\tlperl\site\lib\HTTP\Message.pm
+D:\tlperl\site\lib\HTTP\Request.pm
+D:\tlperl\site\lib\HTTP\Request\Common.pm
+D:\tlperl\site\lib\HTTP\Response.pm
+D:\tlperl\site\lib\HTTP\Status.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist
index 68a4a80368..b25f4bacca 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\HTTP\Negotiate.pm
+D:\tlperl\site\lib\HTTP\Negotiate.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist
index dbd37f98e3..647eea0824 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\IO\HTML.pm
+D:\tlperl\site\lib\IO\HTML.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/String/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/String/.packlist
index 6c34e39534..6e2e1666d0 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/String/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/IO/String/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\IO\String.pm
+D:\tlperl\site\lib\IO\String.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist
index 664b0def44..1033ee8cca 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\JSON\MaybeXS.pm
+D:\tlperl\site\lib\JSON\MaybeXS.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
index 4b70b3ba38..1fb51f2710 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
@@ -1,2 +1,2 @@
-E:\tlperl\site\lib\LWP\MediaTypes.pm
-E:\tlperl\site\lib\LWP\media.types
+D:\tlperl\site\lib\LWP\MediaTypes.pm
+D:\tlperl\site\lib\LWP\media.types
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
index 1faa7d92da..fe90d44cf9 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
@@ -1,5 +1,8 @@
-E:\tlperl\site\lib\Math\Int64.pm
-E:\tlperl\site\lib\Math\Int64\die_on_overflow.pm
-E:\tlperl\site\lib\Math\Int64\native_if_available.pm
-E:\tlperl\site\lib\Math\UInt64.pm
-E:\tlperl\site\lib\auto\Math\Int64\Int64.dll
+D:\tlperl\site\lib\Math\Int64.pm
+D:\tlperl\site\lib\Math\Int64\die_on_overflow.pm
+D:\tlperl\site\lib\Math\Int64\native_if_available.pm
+D:\tlperl\site\lib\Math\UInt64.pm
+D:\tlperl\site\lib\auto\Math\Int64\Int64.dll
+D:\tlperl\site\lib\auto\Math\Int64\Int64.exp
+D:\tlperl\site\lib\auto\Math\Int64\Int64.lib
+D:\tlperl\site\lib\auto\Math\Int64\Int64.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
index b5d3275271..4f5d4cf934 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.exp
new file mode 100755
index 0000000000..1a7d28f433
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.lib
new file mode 100755
index 0000000000..b47aed7aa0
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.pdb
new file mode 100755
index 0000000000..f68db9943c
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Module/Build/Tiny/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Module/Build/Tiny/.packlist
new file mode 100755
index 0000000000..96f44fbd9e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Module/Build/Tiny/.packlist
@@ -0,0 +1 @@
+D:\tlperl\site\lib\Module\Build\Tiny.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
index 15939f0e26..d91e999f29 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
@@ -1,3 +1,2 @@
-E:\tlperl\site\lib\Mozilla\CA.pm
-E:\tlperl\site\lib\Mozilla\CA\cacert.pem
-E:\tlperl\site\lib\Mozilla\mk-ca-bundle.pl
+D:\tlperl\site\lib\Mozilla\CA.pm
+D:\tlperl\site\lib\Mozilla\CA\cacert.pem
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
index 002dde0575..5bad66fceb 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
@@ -1,4 +1,4 @@
-E:\tlperl\site\lib\Net\HTTP.pm
-E:\tlperl\site\lib\Net\HTTPS.pm
-E:\tlperl\site\lib\Net\HTTP\Methods.pm
-E:\tlperl\site\lib\Net\HTTP\NB.pm
+D:\tlperl\site\lib\Net\HTTP.pm
+D:\tlperl\site\lib\Net\HTTPS.pm
+D:\tlperl\site\lib\Net\HTTP\Methods.pm
+D:\tlperl\site\lib\Net\HTTP\NB.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/.packlist
new file mode 100755
index 0000000000..4d1d3c2bef
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/.packlist
@@ -0,0 +1,5 @@
+D:\tlperl\site\lib\Socket.pm
+D:\tlperl\site\lib\auto\Socket\Socket.dll
+D:\tlperl\site\lib\auto\Socket\Socket.exp
+D:\tlperl\site\lib\auto\Socket\Socket.lib
+D:\tlperl\site\lib\auto\Socket\Socket.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
new file mode 100755
index 0000000000..554f694a9c
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.exp
new file mode 100755
index 0000000000..ccb9173d27
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.lib
new file mode 100755
index 0000000000..830a45002a
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.pdb
new file mode 100755
index 0000000000..25c72db2d5
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Socket/Socket.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
index 30a11b4e85..8ad2320ded 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\Test\Fatal.pm
+D:\tlperl\site\lib\Test\Fatal.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Harness/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Harness/.packlist
new file mode 100755
index 0000000000..6efc8c0195
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Harness/.packlist
@@ -0,0 +1,52 @@
+D:\tlperl\bin\prove
+D:\tlperl\bin\prove.bat
+D:\tlperl\site\lib\App\Prove.pm
+D:\tlperl\site\lib\App\Prove\State.pm
+D:\tlperl\site\lib\App\Prove\State\Result.pm
+D:\tlperl\site\lib\App\Prove\State\Result\Test.pm
+D:\tlperl\site\lib\TAP\Base.pm
+D:\tlperl\site\lib\TAP\Formatter\Base.pm
+D:\tlperl\site\lib\TAP\Formatter\Color.pm
+D:\tlperl\site\lib\TAP\Formatter\Console.pm
+D:\tlperl\site\lib\TAP\Formatter\Console\ParallelSession.pm
+D:\tlperl\site\lib\TAP\Formatter\Console\Session.pm
+D:\tlperl\site\lib\TAP\Formatter\File.pm
+D:\tlperl\site\lib\TAP\Formatter\File\Session.pm
+D:\tlperl\site\lib\TAP\Formatter\Session.pm
+D:\tlperl\site\lib\TAP\Harness.pm
+D:\tlperl\site\lib\TAP\Harness\Beyond.pod
+D:\tlperl\site\lib\TAP\Harness\Env.pm
+D:\tlperl\site\lib\TAP\Object.pm
+D:\tlperl\site\lib\TAP\Parser.pm
+D:\tlperl\site\lib\TAP\Parser\Aggregator.pm
+D:\tlperl\site\lib\TAP\Parser\Grammar.pm
+D:\tlperl\site\lib\TAP\Parser\Iterator.pm
+D:\tlperl\site\lib\TAP\Parser\IteratorFactory.pm
+D:\tlperl\site\lib\TAP\Parser\Iterator\Array.pm
+D:\tlperl\site\lib\TAP\Parser\Iterator\Process.pm
+D:\tlperl\site\lib\TAP\Parser\Iterator\Stream.pm
+D:\tlperl\site\lib\TAP\Parser\Multiplexer.pm
+D:\tlperl\site\lib\TAP\Parser\Result.pm
+D:\tlperl\site\lib\TAP\Parser\ResultFactory.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Bailout.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Comment.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Plan.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Pragma.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Test.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Unknown.pm
+D:\tlperl\site\lib\TAP\Parser\Result\Version.pm
+D:\tlperl\site\lib\TAP\Parser\Result\YAML.pm
+D:\tlperl\site\lib\TAP\Parser\Scheduler.pm
+D:\tlperl\site\lib\TAP\Parser\Scheduler\Job.pm
+D:\tlperl\site\lib\TAP\Parser\Scheduler\Spinner.pm
+D:\tlperl\site\lib\TAP\Parser\Source.pm
+D:\tlperl\site\lib\TAP\Parser\SourceHandler.pm
+D:\tlperl\site\lib\TAP\Parser\SourceHandler\Executable.pm
+D:\tlperl\site\lib\TAP\Parser\SourceHandler\File.pm
+D:\tlperl\site\lib\TAP\Parser\SourceHandler\Handle.pm
+D:\tlperl\site\lib\TAP\Parser\SourceHandler\Perl.pm
+D:\tlperl\site\lib\TAP\Parser\SourceHandler\RawTAP.pm
+D:\tlperl\site\lib\TAP\Parser\YAMLish\Reader.pm
+D:\tlperl\site\lib\TAP\Parser\YAMLish\Writer.pm
+D:\tlperl\site\lib\Test\HACKING.pod
+D:\tlperl\site\lib\Test\Harness.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
index 31bdc9e5bd..98a686ca44 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\Test\Needs.pm
+D:\tlperl\site\lib\Test\Needs.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
index b752d66bc1..e7d736e3b5 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\Test\RequiresInternet.pm
+D:\tlperl\site\lib\Test\RequiresInternet.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Warnings/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Warnings/.packlist
new file mode 100755
index 0000000000..a03fe58a66
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Test/Warnings/.packlist
@@ -0,0 +1 @@
+D:\tlperl\site\lib\Test\Warnings.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
index e0b49c463a..b101b6e842 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
@@ -1 +1 @@
-E:\tlperl\site\lib\Try\Tiny.pm
+D:\tlperl\site\lib\Try\Tiny.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/URI/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/URI/.packlist
index efacba2875..12a2b48943 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/URI/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/URI/.packlist
@@ -1,54 +1,57 @@
-E:\tlperl\site\lib\URI.pm
-E:\tlperl\site\lib\URI\Escape.pm
-E:\tlperl\site\lib\URI\Heuristic.pm
-E:\tlperl\site\lib\URI\IRI.pm
-E:\tlperl\site\lib\URI\QueryParam.pm
-E:\tlperl\site\lib\URI\Split.pm
-E:\tlperl\site\lib\URI\URL.pm
-E:\tlperl\site\lib\URI\WithBase.pm
-E:\tlperl\site\lib\URI\_foreign.pm
-E:\tlperl\site\lib\URI\_generic.pm
-E:\tlperl\site\lib\URI\_idna.pm
-E:\tlperl\site\lib\URI\_ldap.pm
-E:\tlperl\site\lib\URI\_login.pm
-E:\tlperl\site\lib\URI\_punycode.pm
-E:\tlperl\site\lib\URI\_query.pm
-E:\tlperl\site\lib\URI\_segment.pm
-E:\tlperl\site\lib\URI\_server.pm
-E:\tlperl\site\lib\URI\_userpass.pm
-E:\tlperl\site\lib\URI\data.pm
-E:\tlperl\site\lib\URI\file.pm
-E:\tlperl\site\lib\URI\file\Base.pm
-E:\tlperl\site\lib\URI\file\FAT.pm
-E:\tlperl\site\lib\URI\file\Mac.pm
-E:\tlperl\site\lib\URI\file\OS2.pm
-E:\tlperl\site\lib\URI\file\QNX.pm
-E:\tlperl\site\lib\URI\file\Unix.pm
-E:\tlperl\site\lib\URI\file\Win32.pm
-E:\tlperl\site\lib\URI\ftp.pm
-E:\tlperl\site\lib\URI\gopher.pm
-E:\tlperl\site\lib\URI\http.pm
-E:\tlperl\site\lib\URI\https.pm
-E:\tlperl\site\lib\URI\ldap.pm
-E:\tlperl\site\lib\URI\ldapi.pm
-E:\tlperl\site\lib\URI\ldaps.pm
-E:\tlperl\site\lib\URI\mailto.pm
-E:\tlperl\site\lib\URI\mms.pm
-E:\tlperl\site\lib\URI\news.pm
-E:\tlperl\site\lib\URI\nntp.pm
-E:\tlperl\site\lib\URI\nntps.pm
-E:\tlperl\site\lib\URI\pop.pm
-E:\tlperl\site\lib\URI\rlogin.pm
-E:\tlperl\site\lib\URI\rsync.pm
-E:\tlperl\site\lib\URI\rtsp.pm
-E:\tlperl\site\lib\URI\rtspu.pm
-E:\tlperl\site\lib\URI\sftp.pm
-E:\tlperl\site\lib\URI\sip.pm
-E:\tlperl\site\lib\URI\sips.pm
-E:\tlperl\site\lib\URI\snews.pm
-E:\tlperl\site\lib\URI\ssh.pm
-E:\tlperl\site\lib\URI\telnet.pm
-E:\tlperl\site\lib\URI\tn3270.pm
-E:\tlperl\site\lib\URI\urn.pm
-E:\tlperl\site\lib\URI\urn\isbn.pm
-E:\tlperl\site\lib\URI\urn\oid.pm
+D:\tlperl\site\lib\URI.pm
+D:\tlperl\site\lib\URI\Escape.pm
+D:\tlperl\site\lib\URI\Heuristic.pm
+D:\tlperl\site\lib\URI\IRI.pm
+D:\tlperl\site\lib\URI\QueryParam.pm
+D:\tlperl\site\lib\URI\Split.pm
+D:\tlperl\site\lib\URI\URL.pm
+D:\tlperl\site\lib\URI\WithBase.pm
+D:\tlperl\site\lib\URI\_foreign.pm
+D:\tlperl\site\lib\URI\_generic.pm
+D:\tlperl\site\lib\URI\_idna.pm
+D:\tlperl\site\lib\URI\_ldap.pm
+D:\tlperl\site\lib\URI\_login.pm
+D:\tlperl\site\lib\URI\_punycode.pm
+D:\tlperl\site\lib\URI\_query.pm
+D:\tlperl\site\lib\URI\_segment.pm
+D:\tlperl\site\lib\URI\_server.pm
+D:\tlperl\site\lib\URI\_userpass.pm
+D:\tlperl\site\lib\URI\data.pm
+D:\tlperl\site\lib\URI\file.pm
+D:\tlperl\site\lib\URI\file\Base.pm
+D:\tlperl\site\lib\URI\file\FAT.pm
+D:\tlperl\site\lib\URI\file\Mac.pm
+D:\tlperl\site\lib\URI\file\OS2.pm
+D:\tlperl\site\lib\URI\file\QNX.pm
+D:\tlperl\site\lib\URI\file\Unix.pm
+D:\tlperl\site\lib\URI\file\Win32.pm
+D:\tlperl\site\lib\URI\ftp.pm
+D:\tlperl\site\lib\URI\geo.pm
+D:\tlperl\site\lib\URI\gopher.pm
+D:\tlperl\site\lib\URI\http.pm
+D:\tlperl\site\lib\URI\https.pm
+D:\tlperl\site\lib\URI\icap.pm
+D:\tlperl\site\lib\URI\icaps.pm
+D:\tlperl\site\lib\URI\ldap.pm
+D:\tlperl\site\lib\URI\ldapi.pm
+D:\tlperl\site\lib\URI\ldaps.pm
+D:\tlperl\site\lib\URI\mailto.pm
+D:\tlperl\site\lib\URI\mms.pm
+D:\tlperl\site\lib\URI\news.pm
+D:\tlperl\site\lib\URI\nntp.pm
+D:\tlperl\site\lib\URI\nntps.pm
+D:\tlperl\site\lib\URI\pop.pm
+D:\tlperl\site\lib\URI\rlogin.pm
+D:\tlperl\site\lib\URI\rsync.pm
+D:\tlperl\site\lib\URI\rtsp.pm
+D:\tlperl\site\lib\URI\rtspu.pm
+D:\tlperl\site\lib\URI\sftp.pm
+D:\tlperl\site\lib\URI\sip.pm
+D:\tlperl\site\lib\URI\sips.pm
+D:\tlperl\site\lib\URI\snews.pm
+D:\tlperl\site\lib\URI\ssh.pm
+D:\tlperl\site\lib\URI\telnet.pm
+D:\tlperl\site\lib\URI\tn3270.pm
+D:\tlperl\site\lib\URI\urn.pm
+D:\tlperl\site\lib\URI\urn\isbn.pm
+D:\tlperl\site\lib\URI\urn\oid.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
index 25db7235d5..5d6442b9ba 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
@@ -1,2 +1,2 @@
-E:\tlperl\site\lib\WWW\RobotRules.pm
-E:\tlperl\site\lib\WWW\RobotRules\AnyDBM_File.pm
+D:\tlperl\site\lib\WWW\RobotRules.pm
+D:\tlperl\site\lib\WWW\RobotRules\AnyDBM_File.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
index 66ecb127f4..728be00618 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
@@ -1,7 +1,13 @@
-E:\tlperl\site\lib\Win32\API.pm
-E:\tlperl\site\lib\Win32\API\Callback.pm
-E:\tlperl\site\lib\Win32\API\Callback\IATPatch.pod
-E:\tlperl\site\lib\Win32\API\Struct.pm
-E:\tlperl\site\lib\Win32\API\Type.pm
-E:\tlperl\site\lib\auto\Win32\API\API.dll
-E:\tlperl\site\lib\auto\Win32\API\Callback\Callback.dll
+D:\tlperl\site\lib\Win32\API.pm
+D:\tlperl\site\lib\Win32\API\Callback.pm
+D:\tlperl\site\lib\Win32\API\Callback\IATPatch.pod
+D:\tlperl\site\lib\Win32\API\Struct.pm
+D:\tlperl\site\lib\Win32\API\Type.pm
+D:\tlperl\site\lib\auto\Win32\API\API.dll
+D:\tlperl\site\lib\auto\Win32\API\API.exp
+D:\tlperl\site\lib\auto\Win32\API\API.lib
+D:\tlperl\site\lib\auto\Win32\API\API.pdb
+D:\tlperl\site\lib\auto\Win32\API\Callback\Callback.dll
+D:\tlperl\site\lib\auto\Win32\API\Callback\Callback.exp
+D:\tlperl\site\lib\auto\Win32\API\Callback\Callback.lib
+D:\tlperl\site\lib\auto\Win32\API\Callback\Callback.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
index 418e12b928..9dc0a2d824 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.exp
new file mode 100755
index 0000000000..7097f1dd96
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.lib
new file mode 100755
index 0000000000..bbe7ccf1a6
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.pdb
new file mode 100755
index 0000000000..1bd45bbff1
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/API.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
index 8b381eeaf8..4489aef6a0 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.exp
new file mode 100755
index 0000000000..6f96b0325f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.lib
new file mode 100755
index 0000000000..9831683d6d
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.pdb
new file mode 100755
index 0000000000..3a741dd4a6
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
index e1b52bc9cd..8d0736ef4e 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
@@ -1,2 +1,5 @@
-E:\tlperl\site\lib\Win32\Console.pm
-E:\tlperl\site\lib\auto\Win32\Console\Console.dll
+D:\tlperl\site\lib\Win32\Console.pm
+D:\tlperl\site\lib\auto\Win32\Console\Console.dll
+D:\tlperl\site\lib\auto\Win32\Console\Console.exp
+D:\tlperl\site\lib\auto\Win32\Console\Console.lib
+D:\tlperl\site\lib\auto\Win32\Console\Console.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
index 263b6836c9..dc29960447 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.exp
new file mode 100755
index 0000000000..3a25a882c8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.lib
new file mode 100755
index 0000000000..28a54e76dc
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.pdb
new file mode 100755
index 0000000000..22e4d425e1
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
index 4adf837270..2219af8057 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
@@ -1,2 +1,5 @@
-E:\tlperl\site\lib\Win32\Shortcut.pm
-E:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.dll
+D:\tlperl\site\lib\Win32\Shortcut.pm
+D:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.dll
+D:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.exp
+D:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.lib
+D:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
index faa5713f05..838b68c4b1 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.exp
new file mode 100755
index 0000000000..1d6fe3db1f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.lib
new file mode 100755
index 0000000000..ff1422202f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.pdb
new file mode 100755
index 0000000000..782cdd8390
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
index e9917b3014..34633f64e3 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
@@ -1,2 +1,2 @@
-E:\tlperl\site\lib\Tie\Registry.pm
-E:\tlperl\site\lib\Win32\TieRegistry.pm
+D:\tlperl\site\lib\Tie\Registry.pm
+D:\tlperl\site\lib\Win32\TieRegistry.pm
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
index 2c7650348d..b300043df7 100644
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
@@ -1,3 +1,6 @@
-E:\tlperl\site\lib\Win32API\Registry.pm
-E:\tlperl\site\lib\Win32API\Registry\cRegistry.pc
-E:\tlperl\site\lib\auto\Win32API\Registry\Registry.dll
+D:\tlperl\site\lib\Win32API\Registry.pm
+D:\tlperl\site\lib\Win32API\Registry\cRegistry.pc
+D:\tlperl\site\lib\auto\Win32API\Registry\Registry.dll
+D:\tlperl\site\lib\auto\Win32API\Registry\Registry.exp
+D:\tlperl\site\lib\auto\Win32API\Registry\Registry.lib
+D:\tlperl\site\lib\auto\Win32API\Registry\Registry.pdb
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
index e8a71972a8..f7577cb5fd 100755
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.exp b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.exp
new file mode 100755
index 0000000000..ba9ae09ba0
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.exp
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.lib b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.lib
new file mode 100755
index 0000000000..4469532ac9
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.lib
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.pdb b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.pdb
new file mode 100755
index 0000000000..79b57c065e
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.pdb
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
deleted file mode 100644
index 2089a5a254..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
+++ /dev/null
@@ -1,33 +0,0 @@
-E:\tlperl\bin\lwp-download
-E:\tlperl\bin\lwp-download.bat
-E:\tlperl\bin\lwp-dump
-E:\tlperl\bin\lwp-dump.bat
-E:\tlperl\bin\lwp-mirror
-E:\tlperl\bin\lwp-mirror.bat
-E:\tlperl\bin\lwp-request
-E:\tlperl\bin\lwp-request.bat
-E:\tlperl\site\lib\LWP.pm
-E:\tlperl\site\lib\LWP\Authen\Basic.pm
-E:\tlperl\site\lib\LWP\Authen\Digest.pm
-E:\tlperl\site\lib\LWP\Authen\Ntlm.pm
-E:\tlperl\site\lib\LWP\ConnCache.pm
-E:\tlperl\site\lib\LWP\Debug.pm
-E:\tlperl\site\lib\LWP\DebugFile.pm
-E:\tlperl\site\lib\LWP\Debug\TraceHTTP.pm
-E:\tlperl\site\lib\LWP\MemberMixin.pm
-E:\tlperl\site\lib\LWP\Protocol.pm
-E:\tlperl\site\lib\LWP\Protocol\cpan.pm
-E:\tlperl\site\lib\LWP\Protocol\data.pm
-E:\tlperl\site\lib\LWP\Protocol\file.pm
-E:\tlperl\site\lib\LWP\Protocol\ftp.pm
-E:\tlperl\site\lib\LWP\Protocol\gopher.pm
-E:\tlperl\site\lib\LWP\Protocol\http.pm
-E:\tlperl\site\lib\LWP\Protocol\loopback.pm
-E:\tlperl\site\lib\LWP\Protocol\mailto.pm
-E:\tlperl\site\lib\LWP\Protocol\nntp.pm
-E:\tlperl\site\lib\LWP\Protocol\nogo.pm
-E:\tlperl\site\lib\LWP\RobotUA.pm
-E:\tlperl\site\lib\LWP\Simple.pm
-E:\tlperl\site\lib\LWP\UserAgent.pm
-E:\tlperl\site\lib\libwww\lwpcook.pod
-E:\tlperl\site\lib\libwww\lwptut.pod
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwpcook.pod b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwpcook.pod
deleted file mode 100644
index b4d4989a6a..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwpcook.pod
+++ /dev/null
@@ -1,310 +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 => 'https://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 'https://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. LWP doesn't
-provide a cookie jar itself, but if you install L<HTTP::CookieJar::LWP>,
-it can be used like this:
-
- use LWP::UserAgent;
- use HTTP::CookieJar::LWP;
-
- $ua = LWP::UserAgent->new(
- cookie_jar => HTTP::CookieJar::LWP->new,
- );
-
- # 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";
-
-=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/CPAN/authors/id/O/OA/OALDERS/libwww-perl-6.26.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.isc.org/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/systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwptut.pod b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwptut.pod
deleted file mode 100644
index f9f98a0f15..0000000000
--- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/libwww/lwptut.pod
+++ /dev/null
@@ -1,820 +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 commonly used 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 knows about. It can correspond to a
-file on disk or
-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:
-
- use HTTP::CookieJar::LWP;
- $browser->cookie_jar( HTTP::CookieJar::LWP->new );
-
-To save a cookie jar to disk, see L<< HTTP::CookieJar/dump_cookies >>.
-To load cookies from disk into a jar, see L<<
-HTTP::CookieJar/load_cookies >>.
-
-=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. Errors writing to the content file (for example due to
-permission denied or the filesystem being full) will be reported via
-the C<Client-Aborted> or C<X-Died> response headers, and not the
-C<is_success> method:
-
- if ($response->header('Client-Aborted') eq 'die') {
- # handle error ...
-
-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/systems/texlive/tlnet/tlpkg/tltcl/bin/tcl86.dll b/systems/texlive/tlnet/tlpkg/tltcl/bin/tcl86.dll
index b29cec2ed9..08a85a55b5 100755
--- a/systems/texlive/tlnet/tlpkg/tltcl/bin/tcl86.dll
+++ b/systems/texlive/tlnet/tlpkg/tltcl/bin/tcl86.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/bin/tk86.dll b/systems/texlive/tlnet/tlpkg/tltcl/bin/tk86.dll
index 64fba17dab..31f42eb7e6 100755
--- a/systems/texlive/tlnet/tlpkg/tltcl/bin/tk86.dll
+++ b/systems/texlive/tlnet/tlpkg/tltcl/bin/tk86.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/bin/zlib1.dll b/systems/texlive/tlnet/tlpkg/tltcl/bin/zlib1.dll
index 7e44ad11fd..35ed527c30 100755
--- a/systems/texlive/tlnet/tlpkg/tltcl/bin/zlib1.dll
+++ b/systems/texlive/tlnet/tlpkg/tltcl/bin/zlib1.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.a
new file mode 100644
index 0000000000..35d5d276d3
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/libtcldde14.dll.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/tcldde14.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/tcldde14.dll
index e01bcb05ac..e78ed6cdfc 100755
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/tcldde14.dll
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/dde1.4/tcldde14.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl422.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl422.dll
deleted file mode 100755
index bf25605665..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl422.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/pkgIndex.tcl
deleted file mode 100644
index d18d2cc519..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/pkgIndex.tcl
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- tcl -*-
-# Tcl package index file, version 1.1
-#
-
-if {![package vsatisfies [package provide Tcl] 8.6-]} {return}
-
-if {[package vsatisfies [package provide Tcl] 9.0-]} {
- package ifneeded itcl 4.2.2 \
- [list load [file join $dir tcl9itcl422.dll] Itcl]
-} else {
- package ifneeded itcl 4.2.2 \
- [list load [file join $dir itcl422.dll] Itcl]
-}
-package ifneeded Itcl 4.2.2 [list package require -exact itcl 4.2.2]
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl.tcl
index 15ca2200f4..15ca2200f4 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itcl.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl423.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl423.dll
new file mode 100755
index 0000000000..b5f698f7b1
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itcl423.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclConfig.sh b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclConfig.sh
index 00e147b870..94c22b7c66 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclConfig.sh
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclConfig.sh
@@ -12,56 +12,56 @@
# The information in this file is specific to a single platform.
# Itcl's version number.
-itcl_VERSION='4.2.2'
-ITCL_VERSION='4.2.2'
+itcl_VERSION='4.2.3'
+ITCL_VERSION='4.2.3'
# The name of the Itcl library (may be either a .a file or a shared library):
-itcl_LIB_FILE=itcl422.dll
-ITCL_LIB_FILE=itcl422.dll
+itcl_LIB_FILE=itcl423.dll
+ITCL_LIB_FILE=itcl423.dll
# String to pass to linker to pick up the Itcl library from its
# build directory.
-itcl_BUILD_LIB_SPEC='-L/tmp/siepo/tcl8.6.12/win/pkgs/itcl4.2.2 -litcl422'
-ITCL_BUILD_LIB_SPEC='-L/tmp/siepo/tcl8.6.12/win/pkgs/itcl4.2.2 -litcl422'
+itcl_BUILD_LIB_SPEC='-L/tmp/siepo/tcl8.6.13/win/pkgs/itcl4.2.3 -litcl423'
+ITCL_BUILD_LIB_SPEC='-L/tmp/siepo/tcl8.6.13/win/pkgs/itcl4.2.3 -litcl423'
# String to pass to linker to pick up the Itcl library from its
# installed directory.
-itcl_LIB_SPEC='-L/tmp/tltcl/lib/itcl4.2.2 -litcl422'
-ITCL_LIB_SPEC='-L/tmp/tltcl/lib/itcl4.2.2 -litcl422'
+itcl_LIB_SPEC='-L/home/siepo/tltcl/lib/itcl4.2.3 -litcl423'
+ITCL_LIB_SPEC='-L/home/siepo/tltcl/lib/itcl4.2.3 -litcl423'
# The name of the Itcl stub library (a .a file):
-itcl_STUB_LIB_FILE=libitclstub422.a
-ITCL_STUB_LIB_FILE=libitclstub422.a
+itcl_STUB_LIB_FILE=libitclstub423.a
+ITCL_STUB_LIB_FILE=libitclstub423.a
# String to pass to linker to pick up the Itcl stub library from its
# build directory.
-itcl_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tcl8.6.12/win/pkgs/itcl4.2.2 -litclstub422'
-ITCL_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tcl8.6.12/win/pkgs/itcl4.2.2 -litclstub422'
+itcl_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tcl8.6.13/win/pkgs/itcl4.2.3 -litclstub423'
+ITCL_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tcl8.6.13/win/pkgs/itcl4.2.3 -litclstub423'
# String to pass to linker to pick up the Itcl stub library from its
# installed directory.
-itcl_STUB_LIB_SPEC='-L/tmp/tltcl/lib/itcl4.2.2 -litclstub422'
-ITCL_STUB_LIB_SPEC='-L/tmp/tltcl/lib/itcl4.2.2 -litclstub422'
+itcl_STUB_LIB_SPEC='-L/home/siepo/tltcl/lib/itcl4.2.3 -litclstub423'
+ITCL_STUB_LIB_SPEC='-L/home/siepo/tltcl/lib/itcl4.2.3 -litclstub423'
# String to pass to linker to pick up the Itcl stub library from its
# build directory.
-itcl_BUILD_STUB_LIB_PATH='/tmp/siepo/tcl8.6.12/win/pkgs/itcl4.2.2/libitclstub422.a'
-ITCL_BUILD_STUB_LIB_PATH='/tmp/siepo/tcl8.6.12/win/pkgs/itcl4.2.2/libitclstub422.a'
+itcl_BUILD_STUB_LIB_PATH='/tmp/siepo/tcl8.6.13/win/pkgs/itcl4.2.3/libitclstub423.a'
+ITCL_BUILD_STUB_LIB_PATH='/tmp/siepo/tcl8.6.13/win/pkgs/itcl4.2.3/libitclstub423.a'
# String to pass to linker to pick up the Itcl stub library from its
# installed directory.
-itcl_STUB_LIB_PATH='/tmp/tltcl/lib/itcl4.2.2/libitclstub422.a'
-ITCL_STUB_LIB_PATH='/tmp/tltcl/lib/itcl4.2.2/libitclstub422.a'
+itcl_STUB_LIB_PATH='/home/siepo/tltcl/lib/itcl4.2.3/libitclstub423.a'
+ITCL_STUB_LIB_PATH='/home/siepo/tltcl/lib/itcl4.2.3/libitclstub423.a'
# Location of the top-level source directories from which [incr Tcl]
# was built. This is the directory that contains generic, unix, etc.
# If [incr Tcl] was compiled in a different place than the directory
# containing the source files, this points to the location of the sources,
# not the location where [incr Tcl] was compiled.
-itcl_SRC_DIR='/tmp/siepo/tcl8.6.12/pkgs/itcl4.2.2'
-ITCL_SRC_DIR='/tmp/siepo/tcl8.6.12/pkgs/itcl4.2.2'
+itcl_SRC_DIR='/tmp/siepo/tcl8.6.13/pkgs/itcl4.2.3'
+ITCL_SRC_DIR='/tmp/siepo/tcl8.6.13/pkgs/itcl4.2.3'
# String to pass to the compiler so that an extension can
# find installed Itcl headers.
-itcl_INCLUDE_SPEC='-I/tmp/siepo/tcl8.6.12/pkgs/itcl4.2.2/generic'
-ITCL_INCLUDE_SPEC='-I/tmp/siepo/tcl8.6.12/pkgs/itcl4.2.2/generic'
+itcl_INCLUDE_SPEC='-I/tmp/siepo/tcl8.6.13/pkgs/itcl4.2.3/generic'
+ITCL_INCLUDE_SPEC='-I/tmp/siepo/tcl8.6.13/pkgs/itcl4.2.3/generic'
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclHullCmds.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclHullCmds.tcl
index 282041187c..282041187c 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclHullCmds.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclHullCmds.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclWidget.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclWidget.tcl
index 5fcda510e0..5fcda510e0 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.2/itclWidget.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/itclWidget.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/libitclstub423.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/libitclstub423.a
new file mode 100644
index 0000000000..d04a03d1bf
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/libitclstub423.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/pkgIndex.tcl
new file mode 100644
index 0000000000..e06645f55b
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/itcl4.2.3/pkgIndex.tcl
@@ -0,0 +1,14 @@
+# -*- tcl -*-
+# Tcl package index file, version 1.1
+#
+
+if {![package vsatisfies [package provide Tcl] 8.6-]} {return}
+
+if {[package vsatisfies [package provide Tcl] 9.0-]} {
+ package ifneeded itcl 4.2.3 \
+ [list load [file join $dir tcl9itcl423.dll] Itcl]
+} else {
+ package ifneeded itcl 4.2.3 \
+ [list load [file join $dir itcl423.dll] Itcl]
+}
+package ifneeded Itcl 4.2.3 [list package require -exact itcl 4.2.3]
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/libtcl86.dll.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtcl86.dll.a
new file mode 100644
index 0000000000..b45c2045b9
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtcl86.dll.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/libtclstub86.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtclstub86.a
new file mode 100644
index 0000000000..7e7b41cb58
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtclstub86.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/libtk86.dll.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtk86.dll.a
new file mode 100644
index 0000000000..6586be7415
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtk86.dll.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/libtkstub86.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtkstub86.a
new file mode 100644
index 0000000000..7f57cccada
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/libtkstub86.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/libtclreg13.dll.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/libtclreg13.dll.a
new file mode 100644
index 0000000000..be9bed73f1
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/libtclreg13.dll.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/tclreg13.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/tclreg13.dll
index fff62045f8..5e61ea1774 100755
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/tclreg13.dll
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/reg1.3/tclreg13.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/pkgIndex.tcl
deleted file mode 100644
index d2e646eb0a..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/pkgIndex.tcl
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Tcl package index file
-#
-# Note sqlite*3* init specifically
-#
-if {[package vsatisfies [package provide Tcl] 9.0-]} {
- package ifneeded sqlite3 3.36.0 \
- [list load [file join $dir tcl9sqlite3360.dll] Sqlite3]
-} else {
- package ifneeded sqlite3 3.36.0 \
- [list load [file join $dir sqlite3360.dll] Sqlite3]
-}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/sqlite3360.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/sqlite3360.dll
deleted file mode 100755
index 5c67ccd6ba..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.36.0/sqlite3360.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/pkgIndex.tcl
new file mode 100644
index 0000000000..a94b132765
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/pkgIndex.tcl
@@ -0,0 +1,12 @@
+# -*- tcl -*-
+# Tcl package index file, version 1.1
+#
+# Note sqlite*3* init specifically
+#
+if {[package vsatisfies [package provide Tcl] 9.0-]} {
+ package ifneeded sqlite3 3.40.0 \
+ [list load [file join $dir tcl9sqlite3400.dll] Sqlite3]
+} else {
+ package ifneeded sqlite3 3.40.0 \
+ [list load [file join $dir sqlite3400.dll] Sqlite3]
+}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/sqlite3400.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/sqlite3400.dll
new file mode 100755
index 0000000000..13b0245c09
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/sqlite3.40.0/sqlite3400.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/init.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/init.tcl
index edf6bd58d0..0655dc87b8 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/init.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/init.tcl
@@ -16,7 +16,7 @@
if {[info commands package] == ""} {
error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]"
}
-package require -exact Tcl 8.6.12
+package require -exact Tcl 8.6.13
# Compute the auto path to use in this interpreter.
# The values on the path come from several locations:
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Bahia_Banderas b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Bahia_Banderas
index 8c40a0ed26..cdcc4b3c56 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Bahia_Banderas
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Bahia_Banderas
@@ -5,7 +5,7 @@ set TZData(:America/Bahia_Banderas) {
{-1514739600 -25200 0 MST}
{-1343066400 -21600 0 CST}
{-1234807200 -25200 0 MST}
- {-1220292000 -21600 0 CST}
+ {-1220292000 -21600 1 MDT}
{-1207159200 -25200 0 MST}
{-1191344400 -21600 0 CST}
{-873828000 -25200 0 MST}
@@ -65,158 +65,4 @@ set TZData(:America/Bahia_Banderas) {
{1635663600 -21600 0 CST}
{1648972800 -18000 1 CDT}
{1667113200 -21600 0 CST}
- {1680422400 -18000 1 CDT}
- {1698562800 -21600 0 CST}
- {1712476800 -18000 1 CDT}
- {1730012400 -21600 0 CST}
- {1743926400 -18000 1 CDT}
- {1761462000 -21600 0 CST}
- {1775376000 -18000 1 CDT}
- {1792911600 -21600 0 CST}
- {1806825600 -18000 1 CDT}
- {1824966000 -21600 0 CST}
- {1838275200 -18000 1 CDT}
- {1856415600 -21600 0 CST}
- {1869724800 -18000 1 CDT}
- {1887865200 -21600 0 CST}
- {1901779200 -18000 1 CDT}
- {1919314800 -21600 0 CST}
- {1933228800 -18000 1 CDT}
- {1950764400 -21600 0 CST}
- {1964678400 -18000 1 CDT}
- {1982818800 -21600 0 CST}
- {1996128000 -18000 1 CDT}
- {2014268400 -21600 0 CST}
- {2027577600 -18000 1 CDT}
- {2045718000 -21600 0 CST}
- {2059027200 -18000 1 CDT}
- {2077167600 -21600 0 CST}
- {2091081600 -18000 1 CDT}
- {2108617200 -21600 0 CST}
- {2122531200 -18000 1 CDT}
- {2140066800 -21600 0 CST}
- {2153980800 -18000 1 CDT}
- {2172121200 -21600 0 CST}
- {2185430400 -18000 1 CDT}
- {2203570800 -21600 0 CST}
- {2216880000 -18000 1 CDT}
- {2235020400 -21600 0 CST}
- {2248934400 -18000 1 CDT}
- {2266470000 -21600 0 CST}
- {2280384000 -18000 1 CDT}
- {2297919600 -21600 0 CST}
- {2311833600 -18000 1 CDT}
- {2329369200 -21600 0 CST}
- {2343283200 -18000 1 CDT}
- {2361423600 -21600 0 CST}
- {2374732800 -18000 1 CDT}
- {2392873200 -21600 0 CST}
- {2406182400 -18000 1 CDT}
- {2424322800 -21600 0 CST}
- {2438236800 -18000 1 CDT}
- {2455772400 -21600 0 CST}
- {2469686400 -18000 1 CDT}
- {2487222000 -21600 0 CST}
- {2501136000 -18000 1 CDT}
- {2519276400 -21600 0 CST}
- {2532585600 -18000 1 CDT}
- {2550726000 -21600 0 CST}
- {2564035200 -18000 1 CDT}
- {2582175600 -21600 0 CST}
- {2596089600 -18000 1 CDT}
- {2613625200 -21600 0 CST}
- {2627539200 -18000 1 CDT}
- {2645074800 -21600 0 CST}
- {2658988800 -18000 1 CDT}
- {2676524400 -21600 0 CST}
- {2690438400 -18000 1 CDT}
- {2708578800 -21600 0 CST}
- {2721888000 -18000 1 CDT}
- {2740028400 -21600 0 CST}
- {2753337600 -18000 1 CDT}
- {2771478000 -21600 0 CST}
- {2785392000 -18000 1 CDT}
- {2802927600 -21600 0 CST}
- {2816841600 -18000 1 CDT}
- {2834377200 -21600 0 CST}
- {2848291200 -18000 1 CDT}
- {2866431600 -21600 0 CST}
- {2879740800 -18000 1 CDT}
- {2897881200 -21600 0 CST}
- {2911190400 -18000 1 CDT}
- {2929330800 -21600 0 CST}
- {2942640000 -18000 1 CDT}
- {2960780400 -21600 0 CST}
- {2974694400 -18000 1 CDT}
- {2992230000 -21600 0 CST}
- {3006144000 -18000 1 CDT}
- {3023679600 -21600 0 CST}
- {3037593600 -18000 1 CDT}
- {3055734000 -21600 0 CST}
- {3069043200 -18000 1 CDT}
- {3087183600 -21600 0 CST}
- {3100492800 -18000 1 CDT}
- {3118633200 -21600 0 CST}
- {3132547200 -18000 1 CDT}
- {3150082800 -21600 0 CST}
- {3163996800 -18000 1 CDT}
- {3181532400 -21600 0 CST}
- {3195446400 -18000 1 CDT}
- {3212982000 -21600 0 CST}
- {3226896000 -18000 1 CDT}
- {3245036400 -21600 0 CST}
- {3258345600 -18000 1 CDT}
- {3276486000 -21600 0 CST}
- {3289795200 -18000 1 CDT}
- {3307935600 -21600 0 CST}
- {3321849600 -18000 1 CDT}
- {3339385200 -21600 0 CST}
- {3353299200 -18000 1 CDT}
- {3370834800 -21600 0 CST}
- {3384748800 -18000 1 CDT}
- {3402889200 -21600 0 CST}
- {3416198400 -18000 1 CDT}
- {3434338800 -21600 0 CST}
- {3447648000 -18000 1 CDT}
- {3465788400 -21600 0 CST}
- {3479702400 -18000 1 CDT}
- {3497238000 -21600 0 CST}
- {3511152000 -18000 1 CDT}
- {3528687600 -21600 0 CST}
- {3542601600 -18000 1 CDT}
- {3560137200 -21600 0 CST}
- {3574051200 -18000 1 CDT}
- {3592191600 -21600 0 CST}
- {3605500800 -18000 1 CDT}
- {3623641200 -21600 0 CST}
- {3636950400 -18000 1 CDT}
- {3655090800 -21600 0 CST}
- {3669004800 -18000 1 CDT}
- {3686540400 -21600 0 CST}
- {3700454400 -18000 1 CDT}
- {3717990000 -21600 0 CST}
- {3731904000 -18000 1 CDT}
- {3750044400 -21600 0 CST}
- {3763353600 -18000 1 CDT}
- {3781494000 -21600 0 CST}
- {3794803200 -18000 1 CDT}
- {3812943600 -21600 0 CST}
- {3826252800 -18000 1 CDT}
- {3844393200 -21600 0 CST}
- {3858307200 -18000 1 CDT}
- {3875842800 -21600 0 CST}
- {3889756800 -18000 1 CDT}
- {3907292400 -21600 0 CST}
- {3921206400 -18000 1 CDT}
- {3939346800 -21600 0 CST}
- {3952656000 -18000 1 CDT}
- {3970796400 -21600 0 CST}
- {3984105600 -18000 1 CDT}
- {4002246000 -21600 0 CST}
- {4016160000 -18000 1 CDT}
- {4033695600 -21600 0 CST}
- {4047609600 -18000 1 CDT}
- {4065145200 -21600 0 CST}
- {4079059200 -18000 1 CDT}
- {4096594800 -21600 0 CST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Chihuahua b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Chihuahua
index 5444930324..50cb9de0a9 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Chihuahua
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Chihuahua
@@ -5,7 +5,7 @@ set TZData(:America/Chihuahua) {
{-1514739600 -25200 0 MST}
{-1343066400 -21600 0 CST}
{-1234807200 -25200 0 MST}
- {-1220292000 -21600 0 CST}
+ {-1220292000 -21600 1 MDT}
{-1207159200 -25200 0 MST}
{-1191344400 -21600 0 CST}
{820476000 -21600 0 CST}
@@ -63,159 +63,5 @@ set TZData(:America/Chihuahua) {
{1617526800 -21600 1 MDT}
{1635667200 -25200 0 MST}
{1648976400 -21600 1 MDT}
- {1667116800 -25200 0 MST}
- {1680426000 -21600 1 MDT}
- {1698566400 -25200 0 MST}
- {1712480400 -21600 1 MDT}
- {1730016000 -25200 0 MST}
- {1743930000 -21600 1 MDT}
- {1761465600 -25200 0 MST}
- {1775379600 -21600 1 MDT}
- {1792915200 -25200 0 MST}
- {1806829200 -21600 1 MDT}
- {1824969600 -25200 0 MST}
- {1838278800 -21600 1 MDT}
- {1856419200 -25200 0 MST}
- {1869728400 -21600 1 MDT}
- {1887868800 -25200 0 MST}
- {1901782800 -21600 1 MDT}
- {1919318400 -25200 0 MST}
- {1933232400 -21600 1 MDT}
- {1950768000 -25200 0 MST}
- {1964682000 -21600 1 MDT}
- {1982822400 -25200 0 MST}
- {1996131600 -21600 1 MDT}
- {2014272000 -25200 0 MST}
- {2027581200 -21600 1 MDT}
- {2045721600 -25200 0 MST}
- {2059030800 -21600 1 MDT}
- {2077171200 -25200 0 MST}
- {2091085200 -21600 1 MDT}
- {2108620800 -25200 0 MST}
- {2122534800 -21600 1 MDT}
- {2140070400 -25200 0 MST}
- {2153984400 -21600 1 MDT}
- {2172124800 -25200 0 MST}
- {2185434000 -21600 1 MDT}
- {2203574400 -25200 0 MST}
- {2216883600 -21600 1 MDT}
- {2235024000 -25200 0 MST}
- {2248938000 -21600 1 MDT}
- {2266473600 -25200 0 MST}
- {2280387600 -21600 1 MDT}
- {2297923200 -25200 0 MST}
- {2311837200 -21600 1 MDT}
- {2329372800 -25200 0 MST}
- {2343286800 -21600 1 MDT}
- {2361427200 -25200 0 MST}
- {2374736400 -21600 1 MDT}
- {2392876800 -25200 0 MST}
- {2406186000 -21600 1 MDT}
- {2424326400 -25200 0 MST}
- {2438240400 -21600 1 MDT}
- {2455776000 -25200 0 MST}
- {2469690000 -21600 1 MDT}
- {2487225600 -25200 0 MST}
- {2501139600 -21600 1 MDT}
- {2519280000 -25200 0 MST}
- {2532589200 -21600 1 MDT}
- {2550729600 -25200 0 MST}
- {2564038800 -21600 1 MDT}
- {2582179200 -25200 0 MST}
- {2596093200 -21600 1 MDT}
- {2613628800 -25200 0 MST}
- {2627542800 -21600 1 MDT}
- {2645078400 -25200 0 MST}
- {2658992400 -21600 1 MDT}
- {2676528000 -25200 0 MST}
- {2690442000 -21600 1 MDT}
- {2708582400 -25200 0 MST}
- {2721891600 -21600 1 MDT}
- {2740032000 -25200 0 MST}
- {2753341200 -21600 1 MDT}
- {2771481600 -25200 0 MST}
- {2785395600 -21600 1 MDT}
- {2802931200 -25200 0 MST}
- {2816845200 -21600 1 MDT}
- {2834380800 -25200 0 MST}
- {2848294800 -21600 1 MDT}
- {2866435200 -25200 0 MST}
- {2879744400 -21600 1 MDT}
- {2897884800 -25200 0 MST}
- {2911194000 -21600 1 MDT}
- {2929334400 -25200 0 MST}
- {2942643600 -21600 1 MDT}
- {2960784000 -25200 0 MST}
- {2974698000 -21600 1 MDT}
- {2992233600 -25200 0 MST}
- {3006147600 -21600 1 MDT}
- {3023683200 -25200 0 MST}
- {3037597200 -21600 1 MDT}
- {3055737600 -25200 0 MST}
- {3069046800 -21600 1 MDT}
- {3087187200 -25200 0 MST}
- {3100496400 -21600 1 MDT}
- {3118636800 -25200 0 MST}
- {3132550800 -21600 1 MDT}
- {3150086400 -25200 0 MST}
- {3164000400 -21600 1 MDT}
- {3181536000 -25200 0 MST}
- {3195450000 -21600 1 MDT}
- {3212985600 -25200 0 MST}
- {3226899600 -21600 1 MDT}
- {3245040000 -25200 0 MST}
- {3258349200 -21600 1 MDT}
- {3276489600 -25200 0 MST}
- {3289798800 -21600 1 MDT}
- {3307939200 -25200 0 MST}
- {3321853200 -21600 1 MDT}
- {3339388800 -25200 0 MST}
- {3353302800 -21600 1 MDT}
- {3370838400 -25200 0 MST}
- {3384752400 -21600 1 MDT}
- {3402892800 -25200 0 MST}
- {3416202000 -21600 1 MDT}
- {3434342400 -25200 0 MST}
- {3447651600 -21600 1 MDT}
- {3465792000 -25200 0 MST}
- {3479706000 -21600 1 MDT}
- {3497241600 -25200 0 MST}
- {3511155600 -21600 1 MDT}
- {3528691200 -25200 0 MST}
- {3542605200 -21600 1 MDT}
- {3560140800 -25200 0 MST}
- {3574054800 -21600 1 MDT}
- {3592195200 -25200 0 MST}
- {3605504400 -21600 1 MDT}
- {3623644800 -25200 0 MST}
- {3636954000 -21600 1 MDT}
- {3655094400 -25200 0 MST}
- {3669008400 -21600 1 MDT}
- {3686544000 -25200 0 MST}
- {3700458000 -21600 1 MDT}
- {3717993600 -25200 0 MST}
- {3731907600 -21600 1 MDT}
- {3750048000 -25200 0 MST}
- {3763357200 -21600 1 MDT}
- {3781497600 -25200 0 MST}
- {3794806800 -21600 1 MDT}
- {3812947200 -25200 0 MST}
- {3826256400 -21600 1 MDT}
- {3844396800 -25200 0 MST}
- {3858310800 -21600 1 MDT}
- {3875846400 -25200 0 MST}
- {3889760400 -21600 1 MDT}
- {3907296000 -25200 0 MST}
- {3921210000 -21600 1 MDT}
- {3939350400 -25200 0 MST}
- {3952659600 -21600 1 MDT}
- {3970800000 -25200 0 MST}
- {3984109200 -21600 1 MDT}
- {4002249600 -25200 0 MST}
- {4016163600 -21600 1 MDT}
- {4033699200 -25200 0 MST}
- {4047613200 -21600 1 MDT}
- {4065148800 -25200 0 MST}
- {4079062800 -21600 1 MDT}
- {4096598400 -25200 0 MST}
+ {1667120400 -21600 0 CST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Hermosillo b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Hermosillo
index 779020e6ef..6576ad1381 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Hermosillo
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Hermosillo
@@ -5,7 +5,7 @@ set TZData(:America/Hermosillo) {
{-1514739600 -25200 0 MST}
{-1343066400 -21600 0 CST}
{-1234807200 -25200 0 MST}
- {-1220292000 -21600 0 CST}
+ {-1220292000 -21600 1 MDT}
{-1207159200 -25200 0 MST}
{-1191344400 -21600 0 CST}
{-873828000 -25200 0 MST}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Matamoros b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Matamoros
index 2b98652b1e..6ae2fb916c 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Matamoros
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Matamoros
@@ -1,7 +1,7 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Matamoros) {
- {-9223372036854775808 -24000 0 LMT}
+ {-9223372036854775808 -23400 0 LMT}
{-1514743200 -21600 0 CST}
{568015200 -21600 0 CST}
{576057600 -18000 1 CDT}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mazatlan b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mazatlan
index e56d7d0dc1..d9da09fd3d 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mazatlan
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mazatlan
@@ -5,7 +5,7 @@ set TZData(:America/Mazatlan) {
{-1514739600 -25200 0 MST}
{-1343066400 -21600 0 CST}
{-1234807200 -25200 0 MST}
- {-1220292000 -21600 0 CST}
+ {-1220292000 -21600 1 MDT}
{-1207159200 -25200 0 MST}
{-1191344400 -21600 0 CST}
{-873828000 -25200 0 MST}
@@ -65,158 +65,4 @@ set TZData(:America/Mazatlan) {
{1635667200 -25200 0 MST}
{1648976400 -21600 1 MDT}
{1667116800 -25200 0 MST}
- {1680426000 -21600 1 MDT}
- {1698566400 -25200 0 MST}
- {1712480400 -21600 1 MDT}
- {1730016000 -25200 0 MST}
- {1743930000 -21600 1 MDT}
- {1761465600 -25200 0 MST}
- {1775379600 -21600 1 MDT}
- {1792915200 -25200 0 MST}
- {1806829200 -21600 1 MDT}
- {1824969600 -25200 0 MST}
- {1838278800 -21600 1 MDT}
- {1856419200 -25200 0 MST}
- {1869728400 -21600 1 MDT}
- {1887868800 -25200 0 MST}
- {1901782800 -21600 1 MDT}
- {1919318400 -25200 0 MST}
- {1933232400 -21600 1 MDT}
- {1950768000 -25200 0 MST}
- {1964682000 -21600 1 MDT}
- {1982822400 -25200 0 MST}
- {1996131600 -21600 1 MDT}
- {2014272000 -25200 0 MST}
- {2027581200 -21600 1 MDT}
- {2045721600 -25200 0 MST}
- {2059030800 -21600 1 MDT}
- {2077171200 -25200 0 MST}
- {2091085200 -21600 1 MDT}
- {2108620800 -25200 0 MST}
- {2122534800 -21600 1 MDT}
- {2140070400 -25200 0 MST}
- {2153984400 -21600 1 MDT}
- {2172124800 -25200 0 MST}
- {2185434000 -21600 1 MDT}
- {2203574400 -25200 0 MST}
- {2216883600 -21600 1 MDT}
- {2235024000 -25200 0 MST}
- {2248938000 -21600 1 MDT}
- {2266473600 -25200 0 MST}
- {2280387600 -21600 1 MDT}
- {2297923200 -25200 0 MST}
- {2311837200 -21600 1 MDT}
- {2329372800 -25200 0 MST}
- {2343286800 -21600 1 MDT}
- {2361427200 -25200 0 MST}
- {2374736400 -21600 1 MDT}
- {2392876800 -25200 0 MST}
- {2406186000 -21600 1 MDT}
- {2424326400 -25200 0 MST}
- {2438240400 -21600 1 MDT}
- {2455776000 -25200 0 MST}
- {2469690000 -21600 1 MDT}
- {2487225600 -25200 0 MST}
- {2501139600 -21600 1 MDT}
- {2519280000 -25200 0 MST}
- {2532589200 -21600 1 MDT}
- {2550729600 -25200 0 MST}
- {2564038800 -21600 1 MDT}
- {2582179200 -25200 0 MST}
- {2596093200 -21600 1 MDT}
- {2613628800 -25200 0 MST}
- {2627542800 -21600 1 MDT}
- {2645078400 -25200 0 MST}
- {2658992400 -21600 1 MDT}
- {2676528000 -25200 0 MST}
- {2690442000 -21600 1 MDT}
- {2708582400 -25200 0 MST}
- {2721891600 -21600 1 MDT}
- {2740032000 -25200 0 MST}
- {2753341200 -21600 1 MDT}
- {2771481600 -25200 0 MST}
- {2785395600 -21600 1 MDT}
- {2802931200 -25200 0 MST}
- {2816845200 -21600 1 MDT}
- {2834380800 -25200 0 MST}
- {2848294800 -21600 1 MDT}
- {2866435200 -25200 0 MST}
- {2879744400 -21600 1 MDT}
- {2897884800 -25200 0 MST}
- {2911194000 -21600 1 MDT}
- {2929334400 -25200 0 MST}
- {2942643600 -21600 1 MDT}
- {2960784000 -25200 0 MST}
- {2974698000 -21600 1 MDT}
- {2992233600 -25200 0 MST}
- {3006147600 -21600 1 MDT}
- {3023683200 -25200 0 MST}
- {3037597200 -21600 1 MDT}
- {3055737600 -25200 0 MST}
- {3069046800 -21600 1 MDT}
- {3087187200 -25200 0 MST}
- {3100496400 -21600 1 MDT}
- {3118636800 -25200 0 MST}
- {3132550800 -21600 1 MDT}
- {3150086400 -25200 0 MST}
- {3164000400 -21600 1 MDT}
- {3181536000 -25200 0 MST}
- {3195450000 -21600 1 MDT}
- {3212985600 -25200 0 MST}
- {3226899600 -21600 1 MDT}
- {3245040000 -25200 0 MST}
- {3258349200 -21600 1 MDT}
- {3276489600 -25200 0 MST}
- {3289798800 -21600 1 MDT}
- {3307939200 -25200 0 MST}
- {3321853200 -21600 1 MDT}
- {3339388800 -25200 0 MST}
- {3353302800 -21600 1 MDT}
- {3370838400 -25200 0 MST}
- {3384752400 -21600 1 MDT}
- {3402892800 -25200 0 MST}
- {3416202000 -21600 1 MDT}
- {3434342400 -25200 0 MST}
- {3447651600 -21600 1 MDT}
- {3465792000 -25200 0 MST}
- {3479706000 -21600 1 MDT}
- {3497241600 -25200 0 MST}
- {3511155600 -21600 1 MDT}
- {3528691200 -25200 0 MST}
- {3542605200 -21600 1 MDT}
- {3560140800 -25200 0 MST}
- {3574054800 -21600 1 MDT}
- {3592195200 -25200 0 MST}
- {3605504400 -21600 1 MDT}
- {3623644800 -25200 0 MST}
- {3636954000 -21600 1 MDT}
- {3655094400 -25200 0 MST}
- {3669008400 -21600 1 MDT}
- {3686544000 -25200 0 MST}
- {3700458000 -21600 1 MDT}
- {3717993600 -25200 0 MST}
- {3731907600 -21600 1 MDT}
- {3750048000 -25200 0 MST}
- {3763357200 -21600 1 MDT}
- {3781497600 -25200 0 MST}
- {3794806800 -21600 1 MDT}
- {3812947200 -25200 0 MST}
- {3826256400 -21600 1 MDT}
- {3844396800 -25200 0 MST}
- {3858310800 -21600 1 MDT}
- {3875846400 -25200 0 MST}
- {3889760400 -21600 1 MDT}
- {3907296000 -25200 0 MST}
- {3921210000 -21600 1 MDT}
- {3939350400 -25200 0 MST}
- {3952659600 -21600 1 MDT}
- {3970800000 -25200 0 MST}
- {3984109200 -21600 1 MDT}
- {4002249600 -25200 0 MST}
- {4016163600 -21600 1 MDT}
- {4033699200 -25200 0 MST}
- {4047613200 -21600 1 MDT}
- {4065148800 -25200 0 MST}
- {4079062800 -21600 1 MDT}
- {4096598400 -25200 0 MST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Merida b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Merida
index ebf59277ba..d17431dd88 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Merida
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Merida
@@ -59,158 +59,4 @@ set TZData(:America/Merida) {
{1635663600 -21600 0 CST}
{1648972800 -18000 1 CDT}
{1667113200 -21600 0 CST}
- {1680422400 -18000 1 CDT}
- {1698562800 -21600 0 CST}
- {1712476800 -18000 1 CDT}
- {1730012400 -21600 0 CST}
- {1743926400 -18000 1 CDT}
- {1761462000 -21600 0 CST}
- {1775376000 -18000 1 CDT}
- {1792911600 -21600 0 CST}
- {1806825600 -18000 1 CDT}
- {1824966000 -21600 0 CST}
- {1838275200 -18000 1 CDT}
- {1856415600 -21600 0 CST}
- {1869724800 -18000 1 CDT}
- {1887865200 -21600 0 CST}
- {1901779200 -18000 1 CDT}
- {1919314800 -21600 0 CST}
- {1933228800 -18000 1 CDT}
- {1950764400 -21600 0 CST}
- {1964678400 -18000 1 CDT}
- {1982818800 -21600 0 CST}
- {1996128000 -18000 1 CDT}
- {2014268400 -21600 0 CST}
- {2027577600 -18000 1 CDT}
- {2045718000 -21600 0 CST}
- {2059027200 -18000 1 CDT}
- {2077167600 -21600 0 CST}
- {2091081600 -18000 1 CDT}
- {2108617200 -21600 0 CST}
- {2122531200 -18000 1 CDT}
- {2140066800 -21600 0 CST}
- {2153980800 -18000 1 CDT}
- {2172121200 -21600 0 CST}
- {2185430400 -18000 1 CDT}
- {2203570800 -21600 0 CST}
- {2216880000 -18000 1 CDT}
- {2235020400 -21600 0 CST}
- {2248934400 -18000 1 CDT}
- {2266470000 -21600 0 CST}
- {2280384000 -18000 1 CDT}
- {2297919600 -21600 0 CST}
- {2311833600 -18000 1 CDT}
- {2329369200 -21600 0 CST}
- {2343283200 -18000 1 CDT}
- {2361423600 -21600 0 CST}
- {2374732800 -18000 1 CDT}
- {2392873200 -21600 0 CST}
- {2406182400 -18000 1 CDT}
- {2424322800 -21600 0 CST}
- {2438236800 -18000 1 CDT}
- {2455772400 -21600 0 CST}
- {2469686400 -18000 1 CDT}
- {2487222000 -21600 0 CST}
- {2501136000 -18000 1 CDT}
- {2519276400 -21600 0 CST}
- {2532585600 -18000 1 CDT}
- {2550726000 -21600 0 CST}
- {2564035200 -18000 1 CDT}
- {2582175600 -21600 0 CST}
- {2596089600 -18000 1 CDT}
- {2613625200 -21600 0 CST}
- {2627539200 -18000 1 CDT}
- {2645074800 -21600 0 CST}
- {2658988800 -18000 1 CDT}
- {2676524400 -21600 0 CST}
- {2690438400 -18000 1 CDT}
- {2708578800 -21600 0 CST}
- {2721888000 -18000 1 CDT}
- {2740028400 -21600 0 CST}
- {2753337600 -18000 1 CDT}
- {2771478000 -21600 0 CST}
- {2785392000 -18000 1 CDT}
- {2802927600 -21600 0 CST}
- {2816841600 -18000 1 CDT}
- {2834377200 -21600 0 CST}
- {2848291200 -18000 1 CDT}
- {2866431600 -21600 0 CST}
- {2879740800 -18000 1 CDT}
- {2897881200 -21600 0 CST}
- {2911190400 -18000 1 CDT}
- {2929330800 -21600 0 CST}
- {2942640000 -18000 1 CDT}
- {2960780400 -21600 0 CST}
- {2974694400 -18000 1 CDT}
- {2992230000 -21600 0 CST}
- {3006144000 -18000 1 CDT}
- {3023679600 -21600 0 CST}
- {3037593600 -18000 1 CDT}
- {3055734000 -21600 0 CST}
- {3069043200 -18000 1 CDT}
- {3087183600 -21600 0 CST}
- {3100492800 -18000 1 CDT}
- {3118633200 -21600 0 CST}
- {3132547200 -18000 1 CDT}
- {3150082800 -21600 0 CST}
- {3163996800 -18000 1 CDT}
- {3181532400 -21600 0 CST}
- {3195446400 -18000 1 CDT}
- {3212982000 -21600 0 CST}
- {3226896000 -18000 1 CDT}
- {3245036400 -21600 0 CST}
- {3258345600 -18000 1 CDT}
- {3276486000 -21600 0 CST}
- {3289795200 -18000 1 CDT}
- {3307935600 -21600 0 CST}
- {3321849600 -18000 1 CDT}
- {3339385200 -21600 0 CST}
- {3353299200 -18000 1 CDT}
- {3370834800 -21600 0 CST}
- {3384748800 -18000 1 CDT}
- {3402889200 -21600 0 CST}
- {3416198400 -18000 1 CDT}
- {3434338800 -21600 0 CST}
- {3447648000 -18000 1 CDT}
- {3465788400 -21600 0 CST}
- {3479702400 -18000 1 CDT}
- {3497238000 -21600 0 CST}
- {3511152000 -18000 1 CDT}
- {3528687600 -21600 0 CST}
- {3542601600 -18000 1 CDT}
- {3560137200 -21600 0 CST}
- {3574051200 -18000 1 CDT}
- {3592191600 -21600 0 CST}
- {3605500800 -18000 1 CDT}
- {3623641200 -21600 0 CST}
- {3636950400 -18000 1 CDT}
- {3655090800 -21600 0 CST}
- {3669004800 -18000 1 CDT}
- {3686540400 -21600 0 CST}
- {3700454400 -18000 1 CDT}
- {3717990000 -21600 0 CST}
- {3731904000 -18000 1 CDT}
- {3750044400 -21600 0 CST}
- {3763353600 -18000 1 CDT}
- {3781494000 -21600 0 CST}
- {3794803200 -18000 1 CDT}
- {3812943600 -21600 0 CST}
- {3826252800 -18000 1 CDT}
- {3844393200 -21600 0 CST}
- {3858307200 -18000 1 CDT}
- {3875842800 -21600 0 CST}
- {3889756800 -18000 1 CDT}
- {3907292400 -21600 0 CST}
- {3921206400 -18000 1 CDT}
- {3939346800 -21600 0 CST}
- {3952656000 -18000 1 CDT}
- {3970796400 -21600 0 CST}
- {3984105600 -18000 1 CDT}
- {4002246000 -21600 0 CST}
- {4016160000 -18000 1 CDT}
- {4033695600 -21600 0 CST}
- {4047609600 -18000 1 CDT}
- {4065145200 -21600 0 CST}
- {4079059200 -18000 1 CDT}
- {4096594800 -21600 0 CST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mexico_City b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mexico_City
index 48462e49e7..2a0a5a828a 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mexico_City
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Mexico_City
@@ -5,7 +5,7 @@ set TZData(:America/Mexico_City) {
{-1514739600 -25200 0 MST}
{-1343066400 -21600 0 CST}
{-1234807200 -25200 0 MST}
- {-1220292000 -21600 0 CST}
+ {-1220292000 -21600 1 MDT}
{-1207159200 -25200 0 MST}
{-1191344400 -21600 0 CST}
{-975261600 -18000 1 CDT}
@@ -71,158 +71,4 @@ set TZData(:America/Mexico_City) {
{1635663600 -21600 0 CST}
{1648972800 -18000 1 CDT}
{1667113200 -21600 0 CST}
- {1680422400 -18000 1 CDT}
- {1698562800 -21600 0 CST}
- {1712476800 -18000 1 CDT}
- {1730012400 -21600 0 CST}
- {1743926400 -18000 1 CDT}
- {1761462000 -21600 0 CST}
- {1775376000 -18000 1 CDT}
- {1792911600 -21600 0 CST}
- {1806825600 -18000 1 CDT}
- {1824966000 -21600 0 CST}
- {1838275200 -18000 1 CDT}
- {1856415600 -21600 0 CST}
- {1869724800 -18000 1 CDT}
- {1887865200 -21600 0 CST}
- {1901779200 -18000 1 CDT}
- {1919314800 -21600 0 CST}
- {1933228800 -18000 1 CDT}
- {1950764400 -21600 0 CST}
- {1964678400 -18000 1 CDT}
- {1982818800 -21600 0 CST}
- {1996128000 -18000 1 CDT}
- {2014268400 -21600 0 CST}
- {2027577600 -18000 1 CDT}
- {2045718000 -21600 0 CST}
- {2059027200 -18000 1 CDT}
- {2077167600 -21600 0 CST}
- {2091081600 -18000 1 CDT}
- {2108617200 -21600 0 CST}
- {2122531200 -18000 1 CDT}
- {2140066800 -21600 0 CST}
- {2153980800 -18000 1 CDT}
- {2172121200 -21600 0 CST}
- {2185430400 -18000 1 CDT}
- {2203570800 -21600 0 CST}
- {2216880000 -18000 1 CDT}
- {2235020400 -21600 0 CST}
- {2248934400 -18000 1 CDT}
- {2266470000 -21600 0 CST}
- {2280384000 -18000 1 CDT}
- {2297919600 -21600 0 CST}
- {2311833600 -18000 1 CDT}
- {2329369200 -21600 0 CST}
- {2343283200 -18000 1 CDT}
- {2361423600 -21600 0 CST}
- {2374732800 -18000 1 CDT}
- {2392873200 -21600 0 CST}
- {2406182400 -18000 1 CDT}
- {2424322800 -21600 0 CST}
- {2438236800 -18000 1 CDT}
- {2455772400 -21600 0 CST}
- {2469686400 -18000 1 CDT}
- {2487222000 -21600 0 CST}
- {2501136000 -18000 1 CDT}
- {2519276400 -21600 0 CST}
- {2532585600 -18000 1 CDT}
- {2550726000 -21600 0 CST}
- {2564035200 -18000 1 CDT}
- {2582175600 -21600 0 CST}
- {2596089600 -18000 1 CDT}
- {2613625200 -21600 0 CST}
- {2627539200 -18000 1 CDT}
- {2645074800 -21600 0 CST}
- {2658988800 -18000 1 CDT}
- {2676524400 -21600 0 CST}
- {2690438400 -18000 1 CDT}
- {2708578800 -21600 0 CST}
- {2721888000 -18000 1 CDT}
- {2740028400 -21600 0 CST}
- {2753337600 -18000 1 CDT}
- {2771478000 -21600 0 CST}
- {2785392000 -18000 1 CDT}
- {2802927600 -21600 0 CST}
- {2816841600 -18000 1 CDT}
- {2834377200 -21600 0 CST}
- {2848291200 -18000 1 CDT}
- {2866431600 -21600 0 CST}
- {2879740800 -18000 1 CDT}
- {2897881200 -21600 0 CST}
- {2911190400 -18000 1 CDT}
- {2929330800 -21600 0 CST}
- {2942640000 -18000 1 CDT}
- {2960780400 -21600 0 CST}
- {2974694400 -18000 1 CDT}
- {2992230000 -21600 0 CST}
- {3006144000 -18000 1 CDT}
- {3023679600 -21600 0 CST}
- {3037593600 -18000 1 CDT}
- {3055734000 -21600 0 CST}
- {3069043200 -18000 1 CDT}
- {3087183600 -21600 0 CST}
- {3100492800 -18000 1 CDT}
- {3118633200 -21600 0 CST}
- {3132547200 -18000 1 CDT}
- {3150082800 -21600 0 CST}
- {3163996800 -18000 1 CDT}
- {3181532400 -21600 0 CST}
- {3195446400 -18000 1 CDT}
- {3212982000 -21600 0 CST}
- {3226896000 -18000 1 CDT}
- {3245036400 -21600 0 CST}
- {3258345600 -18000 1 CDT}
- {3276486000 -21600 0 CST}
- {3289795200 -18000 1 CDT}
- {3307935600 -21600 0 CST}
- {3321849600 -18000 1 CDT}
- {3339385200 -21600 0 CST}
- {3353299200 -18000 1 CDT}
- {3370834800 -21600 0 CST}
- {3384748800 -18000 1 CDT}
- {3402889200 -21600 0 CST}
- {3416198400 -18000 1 CDT}
- {3434338800 -21600 0 CST}
- {3447648000 -18000 1 CDT}
- {3465788400 -21600 0 CST}
- {3479702400 -18000 1 CDT}
- {3497238000 -21600 0 CST}
- {3511152000 -18000 1 CDT}
- {3528687600 -21600 0 CST}
- {3542601600 -18000 1 CDT}
- {3560137200 -21600 0 CST}
- {3574051200 -18000 1 CDT}
- {3592191600 -21600 0 CST}
- {3605500800 -18000 1 CDT}
- {3623641200 -21600 0 CST}
- {3636950400 -18000 1 CDT}
- {3655090800 -21600 0 CST}
- {3669004800 -18000 1 CDT}
- {3686540400 -21600 0 CST}
- {3700454400 -18000 1 CDT}
- {3717990000 -21600 0 CST}
- {3731904000 -18000 1 CDT}
- {3750044400 -21600 0 CST}
- {3763353600 -18000 1 CDT}
- {3781494000 -21600 0 CST}
- {3794803200 -18000 1 CDT}
- {3812943600 -21600 0 CST}
- {3826252800 -18000 1 CDT}
- {3844393200 -21600 0 CST}
- {3858307200 -18000 1 CDT}
- {3875842800 -21600 0 CST}
- {3889756800 -18000 1 CDT}
- {3907292400 -21600 0 CST}
- {3921206400 -18000 1 CDT}
- {3939346800 -21600 0 CST}
- {3952656000 -18000 1 CDT}
- {3970796400 -21600 0 CST}
- {3984105600 -18000 1 CDT}
- {4002246000 -21600 0 CST}
- {4016160000 -18000 1 CDT}
- {4033695600 -21600 0 CST}
- {4047609600 -18000 1 CDT}
- {4065145200 -21600 0 CST}
- {4079059200 -18000 1 CDT}
- {4096594800 -21600 0 CST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Monterrey b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Monterrey
index 4135884825..7471c6abf5 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Monterrey
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Monterrey
@@ -61,158 +61,4 @@ set TZData(:America/Monterrey) {
{1635663600 -21600 0 CST}
{1648972800 -18000 1 CDT}
{1667113200 -21600 0 CST}
- {1680422400 -18000 1 CDT}
- {1698562800 -21600 0 CST}
- {1712476800 -18000 1 CDT}
- {1730012400 -21600 0 CST}
- {1743926400 -18000 1 CDT}
- {1761462000 -21600 0 CST}
- {1775376000 -18000 1 CDT}
- {1792911600 -21600 0 CST}
- {1806825600 -18000 1 CDT}
- {1824966000 -21600 0 CST}
- {1838275200 -18000 1 CDT}
- {1856415600 -21600 0 CST}
- {1869724800 -18000 1 CDT}
- {1887865200 -21600 0 CST}
- {1901779200 -18000 1 CDT}
- {1919314800 -21600 0 CST}
- {1933228800 -18000 1 CDT}
- {1950764400 -21600 0 CST}
- {1964678400 -18000 1 CDT}
- {1982818800 -21600 0 CST}
- {1996128000 -18000 1 CDT}
- {2014268400 -21600 0 CST}
- {2027577600 -18000 1 CDT}
- {2045718000 -21600 0 CST}
- {2059027200 -18000 1 CDT}
- {2077167600 -21600 0 CST}
- {2091081600 -18000 1 CDT}
- {2108617200 -21600 0 CST}
- {2122531200 -18000 1 CDT}
- {2140066800 -21600 0 CST}
- {2153980800 -18000 1 CDT}
- {2172121200 -21600 0 CST}
- {2185430400 -18000 1 CDT}
- {2203570800 -21600 0 CST}
- {2216880000 -18000 1 CDT}
- {2235020400 -21600 0 CST}
- {2248934400 -18000 1 CDT}
- {2266470000 -21600 0 CST}
- {2280384000 -18000 1 CDT}
- {2297919600 -21600 0 CST}
- {2311833600 -18000 1 CDT}
- {2329369200 -21600 0 CST}
- {2343283200 -18000 1 CDT}
- {2361423600 -21600 0 CST}
- {2374732800 -18000 1 CDT}
- {2392873200 -21600 0 CST}
- {2406182400 -18000 1 CDT}
- {2424322800 -21600 0 CST}
- {2438236800 -18000 1 CDT}
- {2455772400 -21600 0 CST}
- {2469686400 -18000 1 CDT}
- {2487222000 -21600 0 CST}
- {2501136000 -18000 1 CDT}
- {2519276400 -21600 0 CST}
- {2532585600 -18000 1 CDT}
- {2550726000 -21600 0 CST}
- {2564035200 -18000 1 CDT}
- {2582175600 -21600 0 CST}
- {2596089600 -18000 1 CDT}
- {2613625200 -21600 0 CST}
- {2627539200 -18000 1 CDT}
- {2645074800 -21600 0 CST}
- {2658988800 -18000 1 CDT}
- {2676524400 -21600 0 CST}
- {2690438400 -18000 1 CDT}
- {2708578800 -21600 0 CST}
- {2721888000 -18000 1 CDT}
- {2740028400 -21600 0 CST}
- {2753337600 -18000 1 CDT}
- {2771478000 -21600 0 CST}
- {2785392000 -18000 1 CDT}
- {2802927600 -21600 0 CST}
- {2816841600 -18000 1 CDT}
- {2834377200 -21600 0 CST}
- {2848291200 -18000 1 CDT}
- {2866431600 -21600 0 CST}
- {2879740800 -18000 1 CDT}
- {2897881200 -21600 0 CST}
- {2911190400 -18000 1 CDT}
- {2929330800 -21600 0 CST}
- {2942640000 -18000 1 CDT}
- {2960780400 -21600 0 CST}
- {2974694400 -18000 1 CDT}
- {2992230000 -21600 0 CST}
- {3006144000 -18000 1 CDT}
- {3023679600 -21600 0 CST}
- {3037593600 -18000 1 CDT}
- {3055734000 -21600 0 CST}
- {3069043200 -18000 1 CDT}
- {3087183600 -21600 0 CST}
- {3100492800 -18000 1 CDT}
- {3118633200 -21600 0 CST}
- {3132547200 -18000 1 CDT}
- {3150082800 -21600 0 CST}
- {3163996800 -18000 1 CDT}
- {3181532400 -21600 0 CST}
- {3195446400 -18000 1 CDT}
- {3212982000 -21600 0 CST}
- {3226896000 -18000 1 CDT}
- {3245036400 -21600 0 CST}
- {3258345600 -18000 1 CDT}
- {3276486000 -21600 0 CST}
- {3289795200 -18000 1 CDT}
- {3307935600 -21600 0 CST}
- {3321849600 -18000 1 CDT}
- {3339385200 -21600 0 CST}
- {3353299200 -18000 1 CDT}
- {3370834800 -21600 0 CST}
- {3384748800 -18000 1 CDT}
- {3402889200 -21600 0 CST}
- {3416198400 -18000 1 CDT}
- {3434338800 -21600 0 CST}
- {3447648000 -18000 1 CDT}
- {3465788400 -21600 0 CST}
- {3479702400 -18000 1 CDT}
- {3497238000 -21600 0 CST}
- {3511152000 -18000 1 CDT}
- {3528687600 -21600 0 CST}
- {3542601600 -18000 1 CDT}
- {3560137200 -21600 0 CST}
- {3574051200 -18000 1 CDT}
- {3592191600 -21600 0 CST}
- {3605500800 -18000 1 CDT}
- {3623641200 -21600 0 CST}
- {3636950400 -18000 1 CDT}
- {3655090800 -21600 0 CST}
- {3669004800 -18000 1 CDT}
- {3686540400 -21600 0 CST}
- {3700454400 -18000 1 CDT}
- {3717990000 -21600 0 CST}
- {3731904000 -18000 1 CDT}
- {3750044400 -21600 0 CST}
- {3763353600 -18000 1 CDT}
- {3781494000 -21600 0 CST}
- {3794803200 -18000 1 CDT}
- {3812943600 -21600 0 CST}
- {3826252800 -18000 1 CDT}
- {3844393200 -21600 0 CST}
- {3858307200 -18000 1 CDT}
- {3875842800 -21600 0 CST}
- {3889756800 -18000 1 CDT}
- {3907292400 -21600 0 CST}
- {3921206400 -18000 1 CDT}
- {3939346800 -21600 0 CST}
- {3952656000 -18000 1 CDT}
- {3970796400 -21600 0 CST}
- {3984105600 -18000 1 CDT}
- {4002246000 -21600 0 CST}
- {4016160000 -18000 1 CDT}
- {4033695600 -21600 0 CST}
- {4047609600 -18000 1 CDT}
- {4065145200 -21600 0 CST}
- {4079059200 -18000 1 CDT}
- {4096594800 -21600 0 CST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Nipigon b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Nipigon
index 30690aac32..785a3a39e6 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Nipigon
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Nipigon
@@ -1,264 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Nipigon) {
- {-9223372036854775808 -21184 0 LMT}
- {-2366734016 -18000 0 EST}
- {-1632070800 -14400 1 EDT}
- {-1615140000 -18000 0 EST}
- {-923252400 -14400 1 EDT}
- {-880218000 -14400 0 EWT}
- {-769395600 -14400 1 EPT}
- {-765396000 -18000 0 EST}
- {136364400 -14400 1 EDT}
- {152085600 -18000 0 EST}
- {167814000 -14400 1 EDT}
- {183535200 -18000 0 EST}
- {199263600 -14400 1 EDT}
- {215589600 -18000 0 EST}
- {230713200 -14400 1 EDT}
- {247039200 -18000 0 EST}
- {262767600 -14400 1 EDT}
- {278488800 -18000 0 EST}
- {294217200 -14400 1 EDT}
- {309938400 -18000 0 EST}
- {325666800 -14400 1 EDT}
- {341388000 -18000 0 EST}
- {357116400 -14400 1 EDT}
- {372837600 -18000 0 EST}
- {388566000 -14400 1 EDT}
- {404892000 -18000 0 EST}
- {420015600 -14400 1 EDT}
- {436341600 -18000 0 EST}
- {452070000 -14400 1 EDT}
- {467791200 -18000 0 EST}
- {483519600 -14400 1 EDT}
- {499240800 -18000 0 EST}
- {514969200 -14400 1 EDT}
- {530690400 -18000 0 EST}
- {544604400 -14400 1 EDT}
- {562140000 -18000 0 EST}
- {576054000 -14400 1 EDT}
- {594194400 -18000 0 EST}
- {607503600 -14400 1 EDT}
- {625644000 -18000 0 EST}
- {638953200 -14400 1 EDT}
- {657093600 -18000 0 EST}
- {671007600 -14400 1 EDT}
- {688543200 -18000 0 EST}
- {702457200 -14400 1 EDT}
- {719992800 -18000 0 EST}
- {733906800 -14400 1 EDT}
- {752047200 -18000 0 EST}
- {765356400 -14400 1 EDT}
- {783496800 -18000 0 EST}
- {796806000 -14400 1 EDT}
- {814946400 -18000 0 EST}
- {828860400 -14400 1 EDT}
- {846396000 -18000 0 EST}
- {860310000 -14400 1 EDT}
- {877845600 -18000 0 EST}
- {891759600 -14400 1 EDT}
- {909295200 -18000 0 EST}
- {923209200 -14400 1 EDT}
- {941349600 -18000 0 EST}
- {954658800 -14400 1 EDT}
- {972799200 -18000 0 EST}
- {986108400 -14400 1 EDT}
- {1004248800 -18000 0 EST}
- {1018162800 -14400 1 EDT}
- {1035698400 -18000 0 EST}
- {1049612400 -14400 1 EDT}
- {1067148000 -18000 0 EST}
- {1081062000 -14400 1 EDT}
- {1099202400 -18000 0 EST}
- {1112511600 -14400 1 EDT}
- {1130652000 -18000 0 EST}
- {1143961200 -14400 1 EDT}
- {1162101600 -18000 0 EST}
- {1173596400 -14400 1 EDT}
- {1194156000 -18000 0 EST}
- {1205046000 -14400 1 EDT}
- {1225605600 -18000 0 EST}
- {1236495600 -14400 1 EDT}
- {1257055200 -18000 0 EST}
- {1268550000 -14400 1 EDT}
- {1289109600 -18000 0 EST}
- {1299999600 -14400 1 EDT}
- {1320559200 -18000 0 EST}
- {1331449200 -14400 1 EDT}
- {1352008800 -18000 0 EST}
- {1362898800 -14400 1 EDT}
- {1383458400 -18000 0 EST}
- {1394348400 -14400 1 EDT}
- {1414908000 -18000 0 EST}
- {1425798000 -14400 1 EDT}
- {1446357600 -18000 0 EST}
- {1457852400 -14400 1 EDT}
- {1478412000 -18000 0 EST}
- {1489302000 -14400 1 EDT}
- {1509861600 -18000 0 EST}
- {1520751600 -14400 1 EDT}
- {1541311200 -18000 0 EST}
- {1552201200 -14400 1 EDT}
- {1572760800 -18000 0 EST}
- {1583650800 -14400 1 EDT}
- {1604210400 -18000 0 EST}
- {1615705200 -14400 1 EDT}
- {1636264800 -18000 0 EST}
- {1647154800 -14400 1 EDT}
- {1667714400 -18000 0 EST}
- {1678604400 -14400 1 EDT}
- {1699164000 -18000 0 EST}
- {1710054000 -14400 1 EDT}
- {1730613600 -18000 0 EST}
- {1741503600 -14400 1 EDT}
- {1762063200 -18000 0 EST}
- {1772953200 -14400 1 EDT}
- {1793512800 -18000 0 EST}
- {1805007600 -14400 1 EDT}
- {1825567200 -18000 0 EST}
- {1836457200 -14400 1 EDT}
- {1857016800 -18000 0 EST}
- {1867906800 -14400 1 EDT}
- {1888466400 -18000 0 EST}
- {1899356400 -14400 1 EDT}
- {1919916000 -18000 0 EST}
- {1930806000 -14400 1 EDT}
- {1951365600 -18000 0 EST}
- {1962860400 -14400 1 EDT}
- {1983420000 -18000 0 EST}
- {1994310000 -14400 1 EDT}
- {2014869600 -18000 0 EST}
- {2025759600 -14400 1 EDT}
- {2046319200 -18000 0 EST}
- {2057209200 -14400 1 EDT}
- {2077768800 -18000 0 EST}
- {2088658800 -14400 1 EDT}
- {2109218400 -18000 0 EST}
- {2120108400 -14400 1 EDT}
- {2140668000 -18000 0 EST}
- {2152162800 -14400 1 EDT}
- {2172722400 -18000 0 EST}
- {2183612400 -14400 1 EDT}
- {2204172000 -18000 0 EST}
- {2215062000 -14400 1 EDT}
- {2235621600 -18000 0 EST}
- {2246511600 -14400 1 EDT}
- {2267071200 -18000 0 EST}
- {2277961200 -14400 1 EDT}
- {2298520800 -18000 0 EST}
- {2309410800 -14400 1 EDT}
- {2329970400 -18000 0 EST}
- {2341465200 -14400 1 EDT}
- {2362024800 -18000 0 EST}
- {2372914800 -14400 1 EDT}
- {2393474400 -18000 0 EST}
- {2404364400 -14400 1 EDT}
- {2424924000 -18000 0 EST}
- {2435814000 -14400 1 EDT}
- {2456373600 -18000 0 EST}
- {2467263600 -14400 1 EDT}
- {2487823200 -18000 0 EST}
- {2499318000 -14400 1 EDT}
- {2519877600 -18000 0 EST}
- {2530767600 -14400 1 EDT}
- {2551327200 -18000 0 EST}
- {2562217200 -14400 1 EDT}
- {2582776800 -18000 0 EST}
- {2593666800 -14400 1 EDT}
- {2614226400 -18000 0 EST}
- {2625116400 -14400 1 EDT}
- {2645676000 -18000 0 EST}
- {2656566000 -14400 1 EDT}
- {2677125600 -18000 0 EST}
- {2688620400 -14400 1 EDT}
- {2709180000 -18000 0 EST}
- {2720070000 -14400 1 EDT}
- {2740629600 -18000 0 EST}
- {2751519600 -14400 1 EDT}
- {2772079200 -18000 0 EST}
- {2782969200 -14400 1 EDT}
- {2803528800 -18000 0 EST}
- {2814418800 -14400 1 EDT}
- {2834978400 -18000 0 EST}
- {2846473200 -14400 1 EDT}
- {2867032800 -18000 0 EST}
- {2877922800 -14400 1 EDT}
- {2898482400 -18000 0 EST}
- {2909372400 -14400 1 EDT}
- {2929932000 -18000 0 EST}
- {2940822000 -14400 1 EDT}
- {2961381600 -18000 0 EST}
- {2972271600 -14400 1 EDT}
- {2992831200 -18000 0 EST}
- {3003721200 -14400 1 EDT}
- {3024280800 -18000 0 EST}
- {3035775600 -14400 1 EDT}
- {3056335200 -18000 0 EST}
- {3067225200 -14400 1 EDT}
- {3087784800 -18000 0 EST}
- {3098674800 -14400 1 EDT}
- {3119234400 -18000 0 EST}
- {3130124400 -14400 1 EDT}
- {3150684000 -18000 0 EST}
- {3161574000 -14400 1 EDT}
- {3182133600 -18000 0 EST}
- {3193023600 -14400 1 EDT}
- {3213583200 -18000 0 EST}
- {3225078000 -14400 1 EDT}
- {3245637600 -18000 0 EST}
- {3256527600 -14400 1 EDT}
- {3277087200 -18000 0 EST}
- {3287977200 -14400 1 EDT}
- {3308536800 -18000 0 EST}
- {3319426800 -14400 1 EDT}
- {3339986400 -18000 0 EST}
- {3350876400 -14400 1 EDT}
- {3371436000 -18000 0 EST}
- {3382930800 -14400 1 EDT}
- {3403490400 -18000 0 EST}
- {3414380400 -14400 1 EDT}
- {3434940000 -18000 0 EST}
- {3445830000 -14400 1 EDT}
- {3466389600 -18000 0 EST}
- {3477279600 -14400 1 EDT}
- {3497839200 -18000 0 EST}
- {3508729200 -14400 1 EDT}
- {3529288800 -18000 0 EST}
- {3540178800 -14400 1 EDT}
- {3560738400 -18000 0 EST}
- {3572233200 -14400 1 EDT}
- {3592792800 -18000 0 EST}
- {3603682800 -14400 1 EDT}
- {3624242400 -18000 0 EST}
- {3635132400 -14400 1 EDT}
- {3655692000 -18000 0 EST}
- {3666582000 -14400 1 EDT}
- {3687141600 -18000 0 EST}
- {3698031600 -14400 1 EDT}
- {3718591200 -18000 0 EST}
- {3730086000 -14400 1 EDT}
- {3750645600 -18000 0 EST}
- {3761535600 -14400 1 EDT}
- {3782095200 -18000 0 EST}
- {3792985200 -14400 1 EDT}
- {3813544800 -18000 0 EST}
- {3824434800 -14400 1 EDT}
- {3844994400 -18000 0 EST}
- {3855884400 -14400 1 EDT}
- {3876444000 -18000 0 EST}
- {3887334000 -14400 1 EDT}
- {3907893600 -18000 0 EST}
- {3919388400 -14400 1 EDT}
- {3939948000 -18000 0 EST}
- {3950838000 -14400 1 EDT}
- {3971397600 -18000 0 EST}
- {3982287600 -14400 1 EDT}
- {4002847200 -18000 0 EST}
- {4013737200 -14400 1 EDT}
- {4034296800 -18000 0 EST}
- {4045186800 -14400 1 EDT}
- {4065746400 -18000 0 EST}
- {4076636400 -14400 1 EDT}
- {4097196000 -18000 0 EST}
+if {![info exists TZData(America/Toronto)]} {
+ LoadTimeZoneFile America/Toronto
}
+set TZData(:America/Nipigon) $TZData(:America/Toronto)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Ojinaga b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Ojinaga
index 11727089cc..7102f73d6f 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Ojinaga
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Ojinaga
@@ -5,7 +5,7 @@ set TZData(:America/Ojinaga) {
{-1514739600 -25200 0 MST}
{-1343066400 -21600 0 CST}
{-1234807200 -25200 0 MST}
- {-1220292000 -21600 0 CST}
+ {-1220292000 -21600 1 MDT}
{-1207159200 -25200 0 MST}
{-1191344400 -21600 0 CST}
{820476000 -21600 0 CST}
@@ -64,159 +64,5 @@ set TZData(:America/Ojinaga) {
{1615712400 -21600 1 MDT}
{1636272000 -25200 0 MST}
{1647162000 -21600 1 MDT}
- {1667721600 -25200 0 MST}
- {1678611600 -21600 1 MDT}
- {1699171200 -25200 0 MST}
- {1710061200 -21600 1 MDT}
- {1730620800 -25200 0 MST}
- {1741510800 -21600 1 MDT}
- {1762070400 -25200 0 MST}
- {1772960400 -21600 1 MDT}
- {1793520000 -25200 0 MST}
- {1805014800 -21600 1 MDT}
- {1825574400 -25200 0 MST}
- {1836464400 -21600 1 MDT}
- {1857024000 -25200 0 MST}
- {1867914000 -21600 1 MDT}
- {1888473600 -25200 0 MST}
- {1899363600 -21600 1 MDT}
- {1919923200 -25200 0 MST}
- {1930813200 -21600 1 MDT}
- {1951372800 -25200 0 MST}
- {1962867600 -21600 1 MDT}
- {1983427200 -25200 0 MST}
- {1994317200 -21600 1 MDT}
- {2014876800 -25200 0 MST}
- {2025766800 -21600 1 MDT}
- {2046326400 -25200 0 MST}
- {2057216400 -21600 1 MDT}
- {2077776000 -25200 0 MST}
- {2088666000 -21600 1 MDT}
- {2109225600 -25200 0 MST}
- {2120115600 -21600 1 MDT}
- {2140675200 -25200 0 MST}
- {2152170000 -21600 1 MDT}
- {2172729600 -25200 0 MST}
- {2183619600 -21600 1 MDT}
- {2204179200 -25200 0 MST}
- {2215069200 -21600 1 MDT}
- {2235628800 -25200 0 MST}
- {2246518800 -21600 1 MDT}
- {2267078400 -25200 0 MST}
- {2277968400 -21600 1 MDT}
- {2298528000 -25200 0 MST}
- {2309418000 -21600 1 MDT}
- {2329977600 -25200 0 MST}
- {2341472400 -21600 1 MDT}
- {2362032000 -25200 0 MST}
- {2372922000 -21600 1 MDT}
- {2393481600 -25200 0 MST}
- {2404371600 -21600 1 MDT}
- {2424931200 -25200 0 MST}
- {2435821200 -21600 1 MDT}
- {2456380800 -25200 0 MST}
- {2467270800 -21600 1 MDT}
- {2487830400 -25200 0 MST}
- {2499325200 -21600 1 MDT}
- {2519884800 -25200 0 MST}
- {2530774800 -21600 1 MDT}
- {2551334400 -25200 0 MST}
- {2562224400 -21600 1 MDT}
- {2582784000 -25200 0 MST}
- {2593674000 -21600 1 MDT}
- {2614233600 -25200 0 MST}
- {2625123600 -21600 1 MDT}
- {2645683200 -25200 0 MST}
- {2656573200 -21600 1 MDT}
- {2677132800 -25200 0 MST}
- {2688627600 -21600 1 MDT}
- {2709187200 -25200 0 MST}
- {2720077200 -21600 1 MDT}
- {2740636800 -25200 0 MST}
- {2751526800 -21600 1 MDT}
- {2772086400 -25200 0 MST}
- {2782976400 -21600 1 MDT}
- {2803536000 -25200 0 MST}
- {2814426000 -21600 1 MDT}
- {2834985600 -25200 0 MST}
- {2846480400 -21600 1 MDT}
- {2867040000 -25200 0 MST}
- {2877930000 -21600 1 MDT}
- {2898489600 -25200 0 MST}
- {2909379600 -21600 1 MDT}
- {2929939200 -25200 0 MST}
- {2940829200 -21600 1 MDT}
- {2961388800 -25200 0 MST}
- {2972278800 -21600 1 MDT}
- {2992838400 -25200 0 MST}
- {3003728400 -21600 1 MDT}
- {3024288000 -25200 0 MST}
- {3035782800 -21600 1 MDT}
- {3056342400 -25200 0 MST}
- {3067232400 -21600 1 MDT}
- {3087792000 -25200 0 MST}
- {3098682000 -21600 1 MDT}
- {3119241600 -25200 0 MST}
- {3130131600 -21600 1 MDT}
- {3150691200 -25200 0 MST}
- {3161581200 -21600 1 MDT}
- {3182140800 -25200 0 MST}
- {3193030800 -21600 1 MDT}
- {3213590400 -25200 0 MST}
- {3225085200 -21600 1 MDT}
- {3245644800 -25200 0 MST}
- {3256534800 -21600 1 MDT}
- {3277094400 -25200 0 MST}
- {3287984400 -21600 1 MDT}
- {3308544000 -25200 0 MST}
- {3319434000 -21600 1 MDT}
- {3339993600 -25200 0 MST}
- {3350883600 -21600 1 MDT}
- {3371443200 -25200 0 MST}
- {3382938000 -21600 1 MDT}
- {3403497600 -25200 0 MST}
- {3414387600 -21600 1 MDT}
- {3434947200 -25200 0 MST}
- {3445837200 -21600 1 MDT}
- {3466396800 -25200 0 MST}
- {3477286800 -21600 1 MDT}
- {3497846400 -25200 0 MST}
- {3508736400 -21600 1 MDT}
- {3529296000 -25200 0 MST}
- {3540186000 -21600 1 MDT}
- {3560745600 -25200 0 MST}
- {3572240400 -21600 1 MDT}
- {3592800000 -25200 0 MST}
- {3603690000 -21600 1 MDT}
- {3624249600 -25200 0 MST}
- {3635139600 -21600 1 MDT}
- {3655699200 -25200 0 MST}
- {3666589200 -21600 1 MDT}
- {3687148800 -25200 0 MST}
- {3698038800 -21600 1 MDT}
- {3718598400 -25200 0 MST}
- {3730093200 -21600 1 MDT}
- {3750652800 -25200 0 MST}
- {3761542800 -21600 1 MDT}
- {3782102400 -25200 0 MST}
- {3792992400 -21600 1 MDT}
- {3813552000 -25200 0 MST}
- {3824442000 -21600 1 MDT}
- {3845001600 -25200 0 MST}
- {3855891600 -21600 1 MDT}
- {3876451200 -25200 0 MST}
- {3887341200 -21600 1 MDT}
- {3907900800 -25200 0 MST}
- {3919395600 -21600 1 MDT}
- {3939955200 -25200 0 MST}
- {3950845200 -21600 1 MDT}
- {3971404800 -25200 0 MST}
- {3982294800 -21600 1 MDT}
- {4002854400 -25200 0 MST}
- {4013744400 -21600 1 MDT}
- {4034304000 -25200 0 MST}
- {4045194000 -21600 1 MDT}
- {4065753600 -25200 0 MST}
- {4076643600 -21600 1 MDT}
- {4097203200 -25200 0 MST}
+ {1667120400 -21600 0 CST}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Punta_Arenas b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Punta_Arenas
index 5e8202a331..8b06e6a75f 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Punta_Arenas
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Punta_Arenas
@@ -2,12 +2,12 @@
set TZData(:America/Punta_Arenas) {
{-9223372036854775808 -17020 0 LMT}
- {-2524504580 -16966 0 SMT}
- {-1892661434 -18000 0 -05}
- {-1688410800 -16966 0 SMT}
- {-1619205434 -14400 0 -04}
- {-1593806400 -16966 0 SMT}
- {-1335986234 -18000 0 -05}
+ {-2524504580 -16965 0 SMT}
+ {-1892661435 -18000 0 -05}
+ {-1688410800 -16965 0 SMT}
+ {-1619205435 -14400 0 -04}
+ {-1593806400 -16965 0 SMT}
+ {-1335986235 -18000 0 -05}
{-1335985200 -14400 1 -05}
{-1317585600 -18000 0 -05}
{-1304362800 -14400 1 -05}
@@ -21,6 +21,7 @@ set TZData(:America/Punta_Arenas) {
{-1178132400 -14400 0 -04}
{-870552000 -18000 0 -05}
{-865278000 -14400 0 -04}
+ {-736632000 -14400 1 -04}
{-718056000 -18000 0 -05}
{-713649600 -14400 0 -04}
{-36619200 -10800 1 -04}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Rainy_River b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Rainy_River
index a2b11aa3fc..17fccb4a92 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Rainy_River
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Rainy_River
@@ -1,264 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Rainy_River) {
- {-9223372036854775808 -22696 0 LMT}
- {-2366732504 -21600 0 CST}
- {-1632067200 -18000 1 CDT}
- {-1615136400 -21600 0 CST}
- {-923248800 -18000 1 CDT}
- {-880214400 -18000 0 CWT}
- {-769395600 -18000 1 CPT}
- {-765392400 -21600 0 CST}
- {136368000 -18000 1 CDT}
- {152089200 -21600 0 CST}
- {167817600 -18000 1 CDT}
- {183538800 -21600 0 CST}
- {199267200 -18000 1 CDT}
- {215593200 -21600 0 CST}
- {230716800 -18000 1 CDT}
- {247042800 -21600 0 CST}
- {262771200 -18000 1 CDT}
- {278492400 -21600 0 CST}
- {294220800 -18000 1 CDT}
- {309942000 -21600 0 CST}
- {325670400 -18000 1 CDT}
- {341391600 -21600 0 CST}
- {357120000 -18000 1 CDT}
- {372841200 -21600 0 CST}
- {388569600 -18000 1 CDT}
- {404895600 -21600 0 CST}
- {420019200 -18000 1 CDT}
- {436345200 -21600 0 CST}
- {452073600 -18000 1 CDT}
- {467794800 -21600 0 CST}
- {483523200 -18000 1 CDT}
- {499244400 -21600 0 CST}
- {514972800 -18000 1 CDT}
- {530694000 -21600 0 CST}
- {544608000 -18000 1 CDT}
- {562143600 -21600 0 CST}
- {576057600 -18000 1 CDT}
- {594198000 -21600 0 CST}
- {607507200 -18000 1 CDT}
- {625647600 -21600 0 CST}
- {638956800 -18000 1 CDT}
- {657097200 -21600 0 CST}
- {671011200 -18000 1 CDT}
- {688546800 -21600 0 CST}
- {702460800 -18000 1 CDT}
- {719996400 -21600 0 CST}
- {733910400 -18000 1 CDT}
- {752050800 -21600 0 CST}
- {765360000 -18000 1 CDT}
- {783500400 -21600 0 CST}
- {796809600 -18000 1 CDT}
- {814950000 -21600 0 CST}
- {828864000 -18000 1 CDT}
- {846399600 -21600 0 CST}
- {860313600 -18000 1 CDT}
- {877849200 -21600 0 CST}
- {891763200 -18000 1 CDT}
- {909298800 -21600 0 CST}
- {923212800 -18000 1 CDT}
- {941353200 -21600 0 CST}
- {954662400 -18000 1 CDT}
- {972802800 -21600 0 CST}
- {986112000 -18000 1 CDT}
- {1004252400 -21600 0 CST}
- {1018166400 -18000 1 CDT}
- {1035702000 -21600 0 CST}
- {1049616000 -18000 1 CDT}
- {1067151600 -21600 0 CST}
- {1081065600 -18000 1 CDT}
- {1099206000 -21600 0 CST}
- {1112515200 -18000 1 CDT}
- {1130655600 -21600 0 CST}
- {1143964800 -18000 1 CDT}
- {1162105200 -21600 0 CST}
- {1173600000 -18000 1 CDT}
- {1194159600 -21600 0 CST}
- {1205049600 -18000 1 CDT}
- {1225609200 -21600 0 CST}
- {1236499200 -18000 1 CDT}
- {1257058800 -21600 0 CST}
- {1268553600 -18000 1 CDT}
- {1289113200 -21600 0 CST}
- {1300003200 -18000 1 CDT}
- {1320562800 -21600 0 CST}
- {1331452800 -18000 1 CDT}
- {1352012400 -21600 0 CST}
- {1362902400 -18000 1 CDT}
- {1383462000 -21600 0 CST}
- {1394352000 -18000 1 CDT}
- {1414911600 -21600 0 CST}
- {1425801600 -18000 1 CDT}
- {1446361200 -21600 0 CST}
- {1457856000 -18000 1 CDT}
- {1478415600 -21600 0 CST}
- {1489305600 -18000 1 CDT}
- {1509865200 -21600 0 CST}
- {1520755200 -18000 1 CDT}
- {1541314800 -21600 0 CST}
- {1552204800 -18000 1 CDT}
- {1572764400 -21600 0 CST}
- {1583654400 -18000 1 CDT}
- {1604214000 -21600 0 CST}
- {1615708800 -18000 1 CDT}
- {1636268400 -21600 0 CST}
- {1647158400 -18000 1 CDT}
- {1667718000 -21600 0 CST}
- {1678608000 -18000 1 CDT}
- {1699167600 -21600 0 CST}
- {1710057600 -18000 1 CDT}
- {1730617200 -21600 0 CST}
- {1741507200 -18000 1 CDT}
- {1762066800 -21600 0 CST}
- {1772956800 -18000 1 CDT}
- {1793516400 -21600 0 CST}
- {1805011200 -18000 1 CDT}
- {1825570800 -21600 0 CST}
- {1836460800 -18000 1 CDT}
- {1857020400 -21600 0 CST}
- {1867910400 -18000 1 CDT}
- {1888470000 -21600 0 CST}
- {1899360000 -18000 1 CDT}
- {1919919600 -21600 0 CST}
- {1930809600 -18000 1 CDT}
- {1951369200 -21600 0 CST}
- {1962864000 -18000 1 CDT}
- {1983423600 -21600 0 CST}
- {1994313600 -18000 1 CDT}
- {2014873200 -21600 0 CST}
- {2025763200 -18000 1 CDT}
- {2046322800 -21600 0 CST}
- {2057212800 -18000 1 CDT}
- {2077772400 -21600 0 CST}
- {2088662400 -18000 1 CDT}
- {2109222000 -21600 0 CST}
- {2120112000 -18000 1 CDT}
- {2140671600 -21600 0 CST}
- {2152166400 -18000 1 CDT}
- {2172726000 -21600 0 CST}
- {2183616000 -18000 1 CDT}
- {2204175600 -21600 0 CST}
- {2215065600 -18000 1 CDT}
- {2235625200 -21600 0 CST}
- {2246515200 -18000 1 CDT}
- {2267074800 -21600 0 CST}
- {2277964800 -18000 1 CDT}
- {2298524400 -21600 0 CST}
- {2309414400 -18000 1 CDT}
- {2329974000 -21600 0 CST}
- {2341468800 -18000 1 CDT}
- {2362028400 -21600 0 CST}
- {2372918400 -18000 1 CDT}
- {2393478000 -21600 0 CST}
- {2404368000 -18000 1 CDT}
- {2424927600 -21600 0 CST}
- {2435817600 -18000 1 CDT}
- {2456377200 -21600 0 CST}
- {2467267200 -18000 1 CDT}
- {2487826800 -21600 0 CST}
- {2499321600 -18000 1 CDT}
- {2519881200 -21600 0 CST}
- {2530771200 -18000 1 CDT}
- {2551330800 -21600 0 CST}
- {2562220800 -18000 1 CDT}
- {2582780400 -21600 0 CST}
- {2593670400 -18000 1 CDT}
- {2614230000 -21600 0 CST}
- {2625120000 -18000 1 CDT}
- {2645679600 -21600 0 CST}
- {2656569600 -18000 1 CDT}
- {2677129200 -21600 0 CST}
- {2688624000 -18000 1 CDT}
- {2709183600 -21600 0 CST}
- {2720073600 -18000 1 CDT}
- {2740633200 -21600 0 CST}
- {2751523200 -18000 1 CDT}
- {2772082800 -21600 0 CST}
- {2782972800 -18000 1 CDT}
- {2803532400 -21600 0 CST}
- {2814422400 -18000 1 CDT}
- {2834982000 -21600 0 CST}
- {2846476800 -18000 1 CDT}
- {2867036400 -21600 0 CST}
- {2877926400 -18000 1 CDT}
- {2898486000 -21600 0 CST}
- {2909376000 -18000 1 CDT}
- {2929935600 -21600 0 CST}
- {2940825600 -18000 1 CDT}
- {2961385200 -21600 0 CST}
- {2972275200 -18000 1 CDT}
- {2992834800 -21600 0 CST}
- {3003724800 -18000 1 CDT}
- {3024284400 -21600 0 CST}
- {3035779200 -18000 1 CDT}
- {3056338800 -21600 0 CST}
- {3067228800 -18000 1 CDT}
- {3087788400 -21600 0 CST}
- {3098678400 -18000 1 CDT}
- {3119238000 -21600 0 CST}
- {3130128000 -18000 1 CDT}
- {3150687600 -21600 0 CST}
- {3161577600 -18000 1 CDT}
- {3182137200 -21600 0 CST}
- {3193027200 -18000 1 CDT}
- {3213586800 -21600 0 CST}
- {3225081600 -18000 1 CDT}
- {3245641200 -21600 0 CST}
- {3256531200 -18000 1 CDT}
- {3277090800 -21600 0 CST}
- {3287980800 -18000 1 CDT}
- {3308540400 -21600 0 CST}
- {3319430400 -18000 1 CDT}
- {3339990000 -21600 0 CST}
- {3350880000 -18000 1 CDT}
- {3371439600 -21600 0 CST}
- {3382934400 -18000 1 CDT}
- {3403494000 -21600 0 CST}
- {3414384000 -18000 1 CDT}
- {3434943600 -21600 0 CST}
- {3445833600 -18000 1 CDT}
- {3466393200 -21600 0 CST}
- {3477283200 -18000 1 CDT}
- {3497842800 -21600 0 CST}
- {3508732800 -18000 1 CDT}
- {3529292400 -21600 0 CST}
- {3540182400 -18000 1 CDT}
- {3560742000 -21600 0 CST}
- {3572236800 -18000 1 CDT}
- {3592796400 -21600 0 CST}
- {3603686400 -18000 1 CDT}
- {3624246000 -21600 0 CST}
- {3635136000 -18000 1 CDT}
- {3655695600 -21600 0 CST}
- {3666585600 -18000 1 CDT}
- {3687145200 -21600 0 CST}
- {3698035200 -18000 1 CDT}
- {3718594800 -21600 0 CST}
- {3730089600 -18000 1 CDT}
- {3750649200 -21600 0 CST}
- {3761539200 -18000 1 CDT}
- {3782098800 -21600 0 CST}
- {3792988800 -18000 1 CDT}
- {3813548400 -21600 0 CST}
- {3824438400 -18000 1 CDT}
- {3844998000 -21600 0 CST}
- {3855888000 -18000 1 CDT}
- {3876447600 -21600 0 CST}
- {3887337600 -18000 1 CDT}
- {3907897200 -21600 0 CST}
- {3919392000 -18000 1 CDT}
- {3939951600 -21600 0 CST}
- {3950841600 -18000 1 CDT}
- {3971401200 -21600 0 CST}
- {3982291200 -18000 1 CDT}
- {4002850800 -21600 0 CST}
- {4013740800 -18000 1 CDT}
- {4034300400 -21600 0 CST}
- {4045190400 -18000 1 CDT}
- {4065750000 -21600 0 CST}
- {4076640000 -18000 1 CDT}
- {4097199600 -21600 0 CST}
+if {![info exists TZData(America/Winnipeg)]} {
+ LoadTimeZoneFile America/Winnipeg
}
+set TZData(:America/Rainy_River) $TZData(:America/Winnipeg)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Santiago b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Santiago
index 55212b9a1f..13b8b99225 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Santiago
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Santiago
@@ -1,13 +1,13 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Santiago) {
- {-9223372036854775808 -16966 0 LMT}
- {-2524504634 -16966 0 SMT}
- {-1892661434 -18000 0 -05}
- {-1688410800 -16966 0 SMT}
- {-1619205434 -14400 0 -04}
- {-1593806400 -16966 0 SMT}
- {-1335986234 -18000 0 -05}
+ {-9223372036854775808 -16965 0 LMT}
+ {-2524504635 -16965 0 SMT}
+ {-1892661435 -18000 0 -05}
+ {-1688410800 -16965 0 SMT}
+ {-1619205435 -14400 0 -04}
+ {-1593806400 -16965 0 SMT}
+ {-1335986235 -18000 0 -05}
{-1335985200 -14400 1 -05}
{-1317585600 -18000 0 -05}
{-1304362800 -14400 1 -05}
@@ -22,7 +22,7 @@ set TZData(:America/Santiago) {
{-870552000 -18000 0 -05}
{-865278000 -14400 0 -04}
{-740520000 -10800 1 -03}
- {-736376400 -14400 0 -04}
+ {-736635600 -14400 1 -04}
{-718056000 -18000 0 -05}
{-713649600 -14400 0 -04}
{-36619200 -10800 1 -04}
@@ -131,7 +131,7 @@ set TZData(:America/Santiago) {
{1617505200 -14400 0 -04}
{1630814400 -10800 1 -04}
{1648954800 -14400 0 -04}
- {1662264000 -10800 1 -04}
+ {1662868800 -10800 1 -04}
{1680404400 -14400 0 -04}
{1693713600 -10800 1 -04}
{1712458800 -14400 0 -04}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Thunder_Bay b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Thunder_Bay
index 8a454be180..4761beb636 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Thunder_Bay
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Thunder_Bay
@@ -1,272 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Thunder_Bay) {
- {-9223372036854775808 -21420 0 LMT}
- {-2366733780 -21600 0 CST}
- {-1893434400 -18000 0 EST}
- {-883594800 -18000 0 EST}
- {-880218000 -14400 1 EWT}
- {-769395600 -14400 1 EPT}
- {-765396000 -18000 0 EST}
- {18000 -18000 0 EST}
- {9961200 -14400 1 EDT}
- {25682400 -18000 0 EST}
- {41410800 -14400 1 EDT}
- {57736800 -18000 0 EST}
- {73465200 -14400 1 EDT}
- {89186400 -18000 0 EST}
- {94712400 -18000 0 EST}
- {126248400 -18000 0 EST}
- {136364400 -14400 1 EDT}
- {152085600 -18000 0 EST}
- {167814000 -14400 1 EDT}
- {183535200 -18000 0 EST}
- {199263600 -14400 1 EDT}
- {215589600 -18000 0 EST}
- {230713200 -14400 1 EDT}
- {247039200 -18000 0 EST}
- {262767600 -14400 1 EDT}
- {278488800 -18000 0 EST}
- {294217200 -14400 1 EDT}
- {309938400 -18000 0 EST}
- {325666800 -14400 1 EDT}
- {341388000 -18000 0 EST}
- {357116400 -14400 1 EDT}
- {372837600 -18000 0 EST}
- {388566000 -14400 1 EDT}
- {404892000 -18000 0 EST}
- {420015600 -14400 1 EDT}
- {436341600 -18000 0 EST}
- {452070000 -14400 1 EDT}
- {467791200 -18000 0 EST}
- {483519600 -14400 1 EDT}
- {499240800 -18000 0 EST}
- {514969200 -14400 1 EDT}
- {530690400 -18000 0 EST}
- {544604400 -14400 1 EDT}
- {562140000 -18000 0 EST}
- {576054000 -14400 1 EDT}
- {594194400 -18000 0 EST}
- {607503600 -14400 1 EDT}
- {625644000 -18000 0 EST}
- {638953200 -14400 1 EDT}
- {657093600 -18000 0 EST}
- {671007600 -14400 1 EDT}
- {688543200 -18000 0 EST}
- {702457200 -14400 1 EDT}
- {719992800 -18000 0 EST}
- {733906800 -14400 1 EDT}
- {752047200 -18000 0 EST}
- {765356400 -14400 1 EDT}
- {783496800 -18000 0 EST}
- {796806000 -14400 1 EDT}
- {814946400 -18000 0 EST}
- {828860400 -14400 1 EDT}
- {846396000 -18000 0 EST}
- {860310000 -14400 1 EDT}
- {877845600 -18000 0 EST}
- {891759600 -14400 1 EDT}
- {909295200 -18000 0 EST}
- {923209200 -14400 1 EDT}
- {941349600 -18000 0 EST}
- {954658800 -14400 1 EDT}
- {972799200 -18000 0 EST}
- {986108400 -14400 1 EDT}
- {1004248800 -18000 0 EST}
- {1018162800 -14400 1 EDT}
- {1035698400 -18000 0 EST}
- {1049612400 -14400 1 EDT}
- {1067148000 -18000 0 EST}
- {1081062000 -14400 1 EDT}
- {1099202400 -18000 0 EST}
- {1112511600 -14400 1 EDT}
- {1130652000 -18000 0 EST}
- {1143961200 -14400 1 EDT}
- {1162101600 -18000 0 EST}
- {1173596400 -14400 1 EDT}
- {1194156000 -18000 0 EST}
- {1205046000 -14400 1 EDT}
- {1225605600 -18000 0 EST}
- {1236495600 -14400 1 EDT}
- {1257055200 -18000 0 EST}
- {1268550000 -14400 1 EDT}
- {1289109600 -18000 0 EST}
- {1299999600 -14400 1 EDT}
- {1320559200 -18000 0 EST}
- {1331449200 -14400 1 EDT}
- {1352008800 -18000 0 EST}
- {1362898800 -14400 1 EDT}
- {1383458400 -18000 0 EST}
- {1394348400 -14400 1 EDT}
- {1414908000 -18000 0 EST}
- {1425798000 -14400 1 EDT}
- {1446357600 -18000 0 EST}
- {1457852400 -14400 1 EDT}
- {1478412000 -18000 0 EST}
- {1489302000 -14400 1 EDT}
- {1509861600 -18000 0 EST}
- {1520751600 -14400 1 EDT}
- {1541311200 -18000 0 EST}
- {1552201200 -14400 1 EDT}
- {1572760800 -18000 0 EST}
- {1583650800 -14400 1 EDT}
- {1604210400 -18000 0 EST}
- {1615705200 -14400 1 EDT}
- {1636264800 -18000 0 EST}
- {1647154800 -14400 1 EDT}
- {1667714400 -18000 0 EST}
- {1678604400 -14400 1 EDT}
- {1699164000 -18000 0 EST}
- {1710054000 -14400 1 EDT}
- {1730613600 -18000 0 EST}
- {1741503600 -14400 1 EDT}
- {1762063200 -18000 0 EST}
- {1772953200 -14400 1 EDT}
- {1793512800 -18000 0 EST}
- {1805007600 -14400 1 EDT}
- {1825567200 -18000 0 EST}
- {1836457200 -14400 1 EDT}
- {1857016800 -18000 0 EST}
- {1867906800 -14400 1 EDT}
- {1888466400 -18000 0 EST}
- {1899356400 -14400 1 EDT}
- {1919916000 -18000 0 EST}
- {1930806000 -14400 1 EDT}
- {1951365600 -18000 0 EST}
- {1962860400 -14400 1 EDT}
- {1983420000 -18000 0 EST}
- {1994310000 -14400 1 EDT}
- {2014869600 -18000 0 EST}
- {2025759600 -14400 1 EDT}
- {2046319200 -18000 0 EST}
- {2057209200 -14400 1 EDT}
- {2077768800 -18000 0 EST}
- {2088658800 -14400 1 EDT}
- {2109218400 -18000 0 EST}
- {2120108400 -14400 1 EDT}
- {2140668000 -18000 0 EST}
- {2152162800 -14400 1 EDT}
- {2172722400 -18000 0 EST}
- {2183612400 -14400 1 EDT}
- {2204172000 -18000 0 EST}
- {2215062000 -14400 1 EDT}
- {2235621600 -18000 0 EST}
- {2246511600 -14400 1 EDT}
- {2267071200 -18000 0 EST}
- {2277961200 -14400 1 EDT}
- {2298520800 -18000 0 EST}
- {2309410800 -14400 1 EDT}
- {2329970400 -18000 0 EST}
- {2341465200 -14400 1 EDT}
- {2362024800 -18000 0 EST}
- {2372914800 -14400 1 EDT}
- {2393474400 -18000 0 EST}
- {2404364400 -14400 1 EDT}
- {2424924000 -18000 0 EST}
- {2435814000 -14400 1 EDT}
- {2456373600 -18000 0 EST}
- {2467263600 -14400 1 EDT}
- {2487823200 -18000 0 EST}
- {2499318000 -14400 1 EDT}
- {2519877600 -18000 0 EST}
- {2530767600 -14400 1 EDT}
- {2551327200 -18000 0 EST}
- {2562217200 -14400 1 EDT}
- {2582776800 -18000 0 EST}
- {2593666800 -14400 1 EDT}
- {2614226400 -18000 0 EST}
- {2625116400 -14400 1 EDT}
- {2645676000 -18000 0 EST}
- {2656566000 -14400 1 EDT}
- {2677125600 -18000 0 EST}
- {2688620400 -14400 1 EDT}
- {2709180000 -18000 0 EST}
- {2720070000 -14400 1 EDT}
- {2740629600 -18000 0 EST}
- {2751519600 -14400 1 EDT}
- {2772079200 -18000 0 EST}
- {2782969200 -14400 1 EDT}
- {2803528800 -18000 0 EST}
- {2814418800 -14400 1 EDT}
- {2834978400 -18000 0 EST}
- {2846473200 -14400 1 EDT}
- {2867032800 -18000 0 EST}
- {2877922800 -14400 1 EDT}
- {2898482400 -18000 0 EST}
- {2909372400 -14400 1 EDT}
- {2929932000 -18000 0 EST}
- {2940822000 -14400 1 EDT}
- {2961381600 -18000 0 EST}
- {2972271600 -14400 1 EDT}
- {2992831200 -18000 0 EST}
- {3003721200 -14400 1 EDT}
- {3024280800 -18000 0 EST}
- {3035775600 -14400 1 EDT}
- {3056335200 -18000 0 EST}
- {3067225200 -14400 1 EDT}
- {3087784800 -18000 0 EST}
- {3098674800 -14400 1 EDT}
- {3119234400 -18000 0 EST}
- {3130124400 -14400 1 EDT}
- {3150684000 -18000 0 EST}
- {3161574000 -14400 1 EDT}
- {3182133600 -18000 0 EST}
- {3193023600 -14400 1 EDT}
- {3213583200 -18000 0 EST}
- {3225078000 -14400 1 EDT}
- {3245637600 -18000 0 EST}
- {3256527600 -14400 1 EDT}
- {3277087200 -18000 0 EST}
- {3287977200 -14400 1 EDT}
- {3308536800 -18000 0 EST}
- {3319426800 -14400 1 EDT}
- {3339986400 -18000 0 EST}
- {3350876400 -14400 1 EDT}
- {3371436000 -18000 0 EST}
- {3382930800 -14400 1 EDT}
- {3403490400 -18000 0 EST}
- {3414380400 -14400 1 EDT}
- {3434940000 -18000 0 EST}
- {3445830000 -14400 1 EDT}
- {3466389600 -18000 0 EST}
- {3477279600 -14400 1 EDT}
- {3497839200 -18000 0 EST}
- {3508729200 -14400 1 EDT}
- {3529288800 -18000 0 EST}
- {3540178800 -14400 1 EDT}
- {3560738400 -18000 0 EST}
- {3572233200 -14400 1 EDT}
- {3592792800 -18000 0 EST}
- {3603682800 -14400 1 EDT}
- {3624242400 -18000 0 EST}
- {3635132400 -14400 1 EDT}
- {3655692000 -18000 0 EST}
- {3666582000 -14400 1 EDT}
- {3687141600 -18000 0 EST}
- {3698031600 -14400 1 EDT}
- {3718591200 -18000 0 EST}
- {3730086000 -14400 1 EDT}
- {3750645600 -18000 0 EST}
- {3761535600 -14400 1 EDT}
- {3782095200 -18000 0 EST}
- {3792985200 -14400 1 EDT}
- {3813544800 -18000 0 EST}
- {3824434800 -14400 1 EDT}
- {3844994400 -18000 0 EST}
- {3855884400 -14400 1 EDT}
- {3876444000 -18000 0 EST}
- {3887334000 -14400 1 EDT}
- {3907893600 -18000 0 EST}
- {3919388400 -14400 1 EDT}
- {3939948000 -18000 0 EST}
- {3950838000 -14400 1 EDT}
- {3971397600 -18000 0 EST}
- {3982287600 -14400 1 EDT}
- {4002847200 -18000 0 EST}
- {4013737200 -14400 1 EDT}
- {4034296800 -18000 0 EST}
- {4045186800 -14400 1 EDT}
- {4065746400 -18000 0 EST}
- {4076636400 -14400 1 EDT}
- {4097196000 -18000 0 EST}
+if {![info exists TZData(America/Toronto)]} {
+ LoadTimeZoneFile America/Toronto
}
+set TZData(:America/Thunder_Bay) $TZData(:America/Toronto)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Tijuana b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Tijuana
index 4b7ebe78eb..186fe7d0f3 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Tijuana
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/America/Tijuana
@@ -2,7 +2,7 @@
set TZData(:America/Tijuana) {
{-9223372036854775808 -28084 0 LMT}
- {-1514736000 -25200 0 MST}
+ {-1514739600 -25200 0 MST}
{-1451667600 -28800 0 PST}
{-1343062800 -25200 0 MST}
{-1234803600 -28800 0 PST}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Antarctica/Vostok b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Antarctica/Vostok
index 7f345a2155..1a19a5dfb9 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Antarctica/Vostok
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Antarctica/Vostok
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Antarctica/Vostok) {
- {-9223372036854775808 0 0 -00}
- {-380073600 21600 0 +06}
+if {![info exists TZData(Asia/Urumqi)]} {
+ LoadTimeZoneFile Asia/Urumqi
}
+set TZData(:Antarctica/Vostok) $TZData(:Asia/Urumqi)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Arctic/Longyearbyen b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Arctic/Longyearbyen
index 51f83dca0e..4b52387a56 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Arctic/Longyearbyen
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Arctic/Longyearbyen
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Europe/Oslo)]} {
- LoadTimeZoneFile Europe/Oslo
+if {![info exists TZData(Europe/Berlin)]} {
+ LoadTimeZoneFile Europe/Berlin
}
-set TZData(:Arctic/Longyearbyen) $TZData(:Europe/Oslo)
+set TZData(:Arctic/Longyearbyen) $TZData(:Europe/Berlin)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Amman b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Amman
index 242a0c5e91..05cba696d3 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Amman
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Amman
@@ -88,159 +88,5 @@ set TZData(:Asia/Amman) {
{1616709600 10800 1 EEST}
{1635458400 7200 0 EET}
{1645740000 10800 1 EEST}
- {1666908000 7200 0 EET}
- {1677189600 10800 1 EEST}
- {1698357600 7200 0 EET}
- {1709244000 10800 1 EEST}
- {1729807200 7200 0 EET}
- {1740693600 10800 1 EEST}
- {1761861600 7200 0 EET}
- {1772143200 10800 1 EEST}
- {1793311200 7200 0 EET}
- {1803592800 10800 1 EEST}
- {1824760800 7200 0 EET}
- {1835042400 10800 1 EEST}
- {1856210400 7200 0 EET}
- {1866492000 10800 1 EEST}
- {1887660000 7200 0 EET}
- {1898546400 10800 1 EEST}
- {1919109600 7200 0 EET}
- {1929996000 10800 1 EEST}
- {1951164000 7200 0 EET}
- {1961445600 10800 1 EEST}
- {1982613600 7200 0 EET}
- {1992895200 10800 1 EEST}
- {2014063200 7200 0 EET}
- {2024344800 10800 1 EEST}
- {2045512800 7200 0 EET}
- {2055794400 10800 1 EEST}
- {2076962400 7200 0 EET}
- {2087848800 10800 1 EEST}
- {2109016800 7200 0 EET}
- {2119298400 10800 1 EEST}
- {2140466400 7200 0 EET}
- {2150748000 10800 1 EEST}
- {2171916000 7200 0 EET}
- {2182197600 10800 1 EEST}
- {2203365600 7200 0 EET}
- {2213647200 10800 1 EEST}
- {2234815200 7200 0 EET}
- {2245701600 10800 1 EEST}
- {2266264800 7200 0 EET}
- {2277151200 10800 1 EEST}
- {2298319200 7200 0 EET}
- {2308600800 10800 1 EEST}
- {2329768800 7200 0 EET}
- {2340050400 10800 1 EEST}
- {2361218400 7200 0 EET}
- {2371500000 10800 1 EEST}
- {2392668000 7200 0 EET}
- {2402949600 10800 1 EEST}
- {2424117600 7200 0 EET}
- {2435004000 10800 1 EEST}
- {2455567200 7200 0 EET}
- {2466453600 10800 1 EEST}
- {2487621600 7200 0 EET}
- {2497903200 10800 1 EEST}
- {2519071200 7200 0 EET}
- {2529352800 10800 1 EEST}
- {2550520800 7200 0 EET}
- {2560802400 10800 1 EEST}
- {2581970400 7200 0 EET}
- {2592856800 10800 1 EEST}
- {2613420000 7200 0 EET}
- {2624306400 10800 1 EEST}
- {2645474400 7200 0 EET}
- {2655756000 10800 1 EEST}
- {2676924000 7200 0 EET}
- {2687205600 10800 1 EEST}
- {2708373600 7200 0 EET}
- {2718655200 10800 1 EEST}
- {2739823200 7200 0 EET}
- {2750104800 10800 1 EEST}
- {2771272800 7200 0 EET}
- {2782159200 10800 1 EEST}
- {2802722400 7200 0 EET}
- {2813608800 10800 1 EEST}
- {2834776800 7200 0 EET}
- {2845058400 10800 1 EEST}
- {2866226400 7200 0 EET}
- {2876508000 10800 1 EEST}
- {2897676000 7200 0 EET}
- {2907957600 10800 1 EEST}
- {2929125600 7200 0 EET}
- {2939407200 10800 1 EEST}
- {2960575200 7200 0 EET}
- {2971461600 10800 1 EEST}
- {2992629600 7200 0 EET}
- {3002911200 10800 1 EEST}
- {3024079200 7200 0 EET}
- {3034360800 10800 1 EEST}
- {3055528800 7200 0 EET}
- {3065810400 10800 1 EEST}
- {3086978400 7200 0 EET}
- {3097260000 10800 1 EEST}
- {3118428000 7200 0 EET}
- {3129314400 10800 1 EEST}
- {3149877600 7200 0 EET}
- {3160764000 10800 1 EEST}
- {3181932000 7200 0 EET}
- {3192213600 10800 1 EEST}
- {3213381600 7200 0 EET}
- {3223663200 10800 1 EEST}
- {3244831200 7200 0 EET}
- {3255112800 10800 1 EEST}
- {3276280800 7200 0 EET}
- {3286562400 10800 1 EEST}
- {3307730400 7200 0 EET}
- {3318616800 10800 1 EEST}
- {3339180000 7200 0 EET}
- {3350066400 10800 1 EEST}
- {3371234400 7200 0 EET}
- {3381516000 10800 1 EEST}
- {3402684000 7200 0 EET}
- {3412965600 10800 1 EEST}
- {3434133600 7200 0 EET}
- {3444415200 10800 1 EEST}
- {3465583200 7200 0 EET}
- {3476469600 10800 1 EEST}
- {3497032800 7200 0 EET}
- {3507919200 10800 1 EEST}
- {3529087200 7200 0 EET}
- {3539368800 10800 1 EEST}
- {3560536800 7200 0 EET}
- {3570818400 10800 1 EEST}
- {3591986400 7200 0 EET}
- {3602268000 10800 1 EEST}
- {3623436000 7200 0 EET}
- {3633717600 10800 1 EEST}
- {3654885600 7200 0 EET}
- {3665772000 10800 1 EEST}
- {3686335200 7200 0 EET}
- {3697221600 10800 1 EEST}
- {3718389600 7200 0 EET}
- {3728671200 10800 1 EEST}
- {3749839200 7200 0 EET}
- {3760120800 10800 1 EEST}
- {3781288800 7200 0 EET}
- {3791570400 10800 1 EEST}
- {3812738400 7200 0 EET}
- {3823020000 10800 1 EEST}
- {3844188000 7200 0 EET}
- {3855074400 10800 1 EEST}
- {3876242400 7200 0 EET}
- {3886524000 10800 1 EEST}
- {3907692000 7200 0 EET}
- {3917973600 10800 1 EEST}
- {3939141600 7200 0 EET}
- {3949423200 10800 1 EEST}
- {3970591200 7200 0 EET}
- {3980872800 10800 1 EEST}
- {4002040800 7200 0 EET}
- {4012927200 10800 1 EEST}
- {4033490400 7200 0 EET}
- {4044376800 10800 1 EEST}
- {4065544800 7200 0 EET}
- {4075826400 10800 1 EEST}
- {4096994400 7200 0 EET}
+ {1666908000 10800 0 +03}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Brunei b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Brunei
index e8cc8c3f39..ec1a78d94a 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Brunei
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Brunei
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Brunei) {
- {-9223372036854775808 27580 0 LMT}
- {-1383464380 27000 0 +0730}
- {-1167636600 28800 0 +08}
+if {![info exists TZData(Asia/Kuching)]} {
+ LoadTimeZoneFile Asia/Kuching
}
+set TZData(:Asia/Brunei) $TZData(:Asia/Kuching)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Damascus b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Damascus
index fafef49dca..92ac4f5e90 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Damascus
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Damascus
@@ -122,159 +122,5 @@ set TZData(:Asia/Damascus) {
{1616709600 10800 1 EEST}
{1635454800 7200 0 EET}
{1648159200 10800 1 EEST}
- {1666904400 7200 0 EET}
- {1680213600 10800 1 EEST}
- {1698354000 7200 0 EET}
- {1711663200 10800 1 EEST}
- {1729803600 7200 0 EET}
- {1743112800 10800 1 EEST}
- {1761858000 7200 0 EET}
- {1774562400 10800 1 EEST}
- {1793307600 7200 0 EET}
- {1806012000 10800 1 EEST}
- {1824757200 7200 0 EET}
- {1838066400 10800 1 EEST}
- {1856206800 7200 0 EET}
- {1869516000 10800 1 EEST}
- {1887656400 7200 0 EET}
- {1900965600 10800 1 EEST}
- {1919106000 7200 0 EET}
- {1932415200 10800 1 EEST}
- {1951160400 7200 0 EET}
- {1963864800 10800 1 EEST}
- {1982610000 7200 0 EET}
- {1995314400 10800 1 EEST}
- {2014059600 7200 0 EET}
- {2027368800 10800 1 EEST}
- {2045509200 7200 0 EET}
- {2058818400 10800 1 EEST}
- {2076958800 7200 0 EET}
- {2090268000 10800 1 EEST}
- {2109013200 7200 0 EET}
- {2121717600 10800 1 EEST}
- {2140462800 7200 0 EET}
- {2153167200 10800 1 EEST}
- {2171912400 7200 0 EET}
- {2184616800 10800 1 EEST}
- {2203362000 7200 0 EET}
- {2216671200 10800 1 EEST}
- {2234811600 7200 0 EET}
- {2248120800 10800 1 EEST}
- {2266261200 7200 0 EET}
- {2279570400 10800 1 EEST}
- {2298315600 7200 0 EET}
- {2311020000 10800 1 EEST}
- {2329765200 7200 0 EET}
- {2342469600 10800 1 EEST}
- {2361214800 7200 0 EET}
- {2374524000 10800 1 EEST}
- {2392664400 7200 0 EET}
- {2405973600 10800 1 EEST}
- {2424114000 7200 0 EET}
- {2437423200 10800 1 EEST}
- {2455563600 7200 0 EET}
- {2468872800 10800 1 EEST}
- {2487618000 7200 0 EET}
- {2500322400 10800 1 EEST}
- {2519067600 7200 0 EET}
- {2531772000 10800 1 EEST}
- {2550517200 7200 0 EET}
- {2563826400 10800 1 EEST}
- {2581966800 7200 0 EET}
- {2595276000 10800 1 EEST}
- {2613416400 7200 0 EET}
- {2626725600 10800 1 EEST}
- {2645470800 7200 0 EET}
- {2658175200 10800 1 EEST}
- {2676920400 7200 0 EET}
- {2689624800 10800 1 EEST}
- {2708370000 7200 0 EET}
- {2721679200 10800 1 EEST}
- {2739819600 7200 0 EET}
- {2753128800 10800 1 EEST}
- {2771269200 7200 0 EET}
- {2784578400 10800 1 EEST}
- {2802718800 7200 0 EET}
- {2816028000 10800 1 EEST}
- {2834773200 7200 0 EET}
- {2847477600 10800 1 EEST}
- {2866222800 7200 0 EET}
- {2878927200 10800 1 EEST}
- {2897672400 7200 0 EET}
- {2910981600 10800 1 EEST}
- {2929122000 7200 0 EET}
- {2942431200 10800 1 EEST}
- {2960571600 7200 0 EET}
- {2973880800 10800 1 EEST}
- {2992626000 7200 0 EET}
- {3005330400 10800 1 EEST}
- {3024075600 7200 0 EET}
- {3036780000 10800 1 EEST}
- {3055525200 7200 0 EET}
- {3068229600 10800 1 EEST}
- {3086974800 7200 0 EET}
- {3100284000 10800 1 EEST}
- {3118424400 7200 0 EET}
- {3131733600 10800 1 EEST}
- {3149874000 7200 0 EET}
- {3163183200 10800 1 EEST}
- {3181928400 7200 0 EET}
- {3194632800 10800 1 EEST}
- {3213378000 7200 0 EET}
- {3226082400 10800 1 EEST}
- {3244827600 7200 0 EET}
- {3258136800 10800 1 EEST}
- {3276277200 7200 0 EET}
- {3289586400 10800 1 EEST}
- {3307726800 7200 0 EET}
- {3321036000 10800 1 EEST}
- {3339176400 7200 0 EET}
- {3352485600 10800 1 EEST}
- {3371230800 7200 0 EET}
- {3383935200 10800 1 EEST}
- {3402680400 7200 0 EET}
- {3415384800 10800 1 EEST}
- {3434130000 7200 0 EET}
- {3447439200 10800 1 EEST}
- {3465579600 7200 0 EET}
- {3478888800 10800 1 EEST}
- {3497029200 7200 0 EET}
- {3510338400 10800 1 EEST}
- {3529083600 7200 0 EET}
- {3541788000 10800 1 EEST}
- {3560533200 7200 0 EET}
- {3573237600 10800 1 EEST}
- {3591982800 7200 0 EET}
- {3605292000 10800 1 EEST}
- {3623432400 7200 0 EET}
- {3636741600 10800 1 EEST}
- {3654882000 7200 0 EET}
- {3668191200 10800 1 EEST}
- {3686331600 7200 0 EET}
- {3699640800 10800 1 EEST}
- {3718386000 7200 0 EET}
- {3731090400 10800 1 EEST}
- {3749835600 7200 0 EET}
- {3762540000 10800 1 EEST}
- {3781285200 7200 0 EET}
- {3794594400 10800 1 EEST}
- {3812734800 7200 0 EET}
- {3826044000 10800 1 EEST}
- {3844184400 7200 0 EET}
- {3857493600 10800 1 EEST}
- {3876238800 7200 0 EET}
- {3888943200 10800 1 EEST}
- {3907688400 7200 0 EET}
- {3920392800 10800 1 EEST}
- {3939138000 7200 0 EET}
- {3951842400 10800 1 EEST}
- {3970587600 7200 0 EET}
- {3983896800 10800 1 EEST}
- {4002037200 7200 0 EET}
- {4015346400 10800 1 EEST}
- {4033486800 7200 0 EET}
- {4046796000 10800 1 EEST}
- {4065541200 7200 0 EET}
- {4078245600 10800 1 EEST}
- {4096990800 7200 0 EET}
+ {1666908000 10800 0 +03}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Gaza b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Gaza
index 86282fa859..1ceb68008b 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Gaza
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Gaza
@@ -125,160 +125,160 @@ set TZData(:Asia/Gaza) {
{1603490400 7200 0 EET}
{1616796000 10800 1 EEST}
{1635458400 7200 0 EET}
- {1648245600 10800 1 EEST}
- {1666908000 7200 0 EET}
- {1679695200 10800 1 EEST}
- {1698357600 7200 0 EET}
- {1711749600 10800 1 EEST}
- {1729807200 7200 0 EET}
- {1743199200 10800 1 EEST}
- {1761861600 7200 0 EET}
- {1774648800 10800 1 EEST}
- {1793311200 7200 0 EET}
- {1806098400 10800 1 EEST}
- {1824760800 7200 0 EET}
- {1837548000 10800 1 EEST}
- {1856210400 7200 0 EET}
- {1868997600 10800 1 EEST}
- {1887660000 7200 0 EET}
- {1901052000 10800 1 EEST}
- {1919109600 7200 0 EET}
- {1932501600 10800 1 EEST}
- {1951164000 7200 0 EET}
- {1963951200 10800 1 EEST}
- {1982613600 7200 0 EET}
- {1995400800 10800 1 EEST}
- {2014063200 7200 0 EET}
- {2026850400 10800 1 EEST}
- {2045512800 7200 0 EET}
- {2058300000 10800 1 EEST}
- {2076962400 7200 0 EET}
- {2090354400 10800 1 EEST}
- {2109016800 7200 0 EET}
- {2121804000 10800 1 EEST}
- {2140466400 7200 0 EET}
- {2153253600 10800 1 EEST}
- {2171916000 7200 0 EET}
- {2184703200 10800 1 EEST}
- {2203365600 7200 0 EET}
- {2216152800 10800 1 EEST}
- {2234815200 7200 0 EET}
- {2248207200 10800 1 EEST}
- {2266264800 7200 0 EET}
- {2279656800 10800 1 EEST}
- {2298319200 7200 0 EET}
- {2311106400 10800 1 EEST}
- {2329768800 7200 0 EET}
- {2342556000 10800 1 EEST}
- {2361218400 7200 0 EET}
- {2374005600 10800 1 EEST}
- {2392668000 7200 0 EET}
- {2405455200 10800 1 EEST}
- {2424117600 7200 0 EET}
- {2437509600 10800 1 EEST}
- {2455567200 7200 0 EET}
- {2468959200 10800 1 EEST}
- {2487621600 7200 0 EET}
- {2500408800 10800 1 EEST}
- {2519071200 7200 0 EET}
- {2531858400 10800 1 EEST}
- {2550520800 7200 0 EET}
- {2563308000 10800 1 EEST}
- {2581970400 7200 0 EET}
- {2595362400 10800 1 EEST}
- {2613420000 7200 0 EET}
- {2626812000 10800 1 EEST}
- {2645474400 7200 0 EET}
- {2658261600 10800 1 EEST}
- {2676924000 7200 0 EET}
- {2689711200 10800 1 EEST}
- {2708373600 7200 0 EET}
- {2721160800 10800 1 EEST}
- {2739823200 7200 0 EET}
- {2752610400 10800 1 EEST}
- {2771272800 7200 0 EET}
- {2784664800 10800 1 EEST}
- {2802722400 7200 0 EET}
- {2816114400 10800 1 EEST}
- {2834776800 7200 0 EET}
- {2847564000 10800 1 EEST}
- {2866226400 7200 0 EET}
- {2879013600 10800 1 EEST}
- {2897676000 7200 0 EET}
- {2910463200 10800 1 EEST}
- {2929125600 7200 0 EET}
- {2941912800 10800 1 EEST}
- {2960575200 7200 0 EET}
- {2973967200 10800 1 EEST}
- {2992629600 7200 0 EET}
- {3005416800 10800 1 EEST}
- {3024079200 7200 0 EET}
- {3036866400 10800 1 EEST}
- {3055528800 7200 0 EET}
- {3068316000 10800 1 EEST}
- {3086978400 7200 0 EET}
- {3099765600 10800 1 EEST}
- {3118428000 7200 0 EET}
- {3131820000 10800 1 EEST}
- {3149877600 7200 0 EET}
- {3163269600 10800 1 EEST}
- {3181932000 7200 0 EET}
- {3194719200 10800 1 EEST}
- {3213381600 7200 0 EET}
- {3226168800 10800 1 EEST}
- {3244831200 7200 0 EET}
- {3257618400 10800 1 EEST}
- {3276280800 7200 0 EET}
- {3289068000 10800 1 EEST}
- {3307730400 7200 0 EET}
- {3321122400 10800 1 EEST}
- {3339180000 7200 0 EET}
- {3352572000 10800 1 EEST}
- {3371234400 7200 0 EET}
- {3384021600 10800 1 EEST}
- {3402684000 7200 0 EET}
- {3415471200 10800 1 EEST}
- {3434133600 7200 0 EET}
- {3446920800 10800 1 EEST}
- {3465583200 7200 0 EET}
- {3478975200 10800 1 EEST}
- {3497032800 7200 0 EET}
- {3510424800 10800 1 EEST}
- {3529087200 7200 0 EET}
- {3541874400 10800 1 EEST}
- {3560536800 7200 0 EET}
- {3573324000 10800 1 EEST}
- {3591986400 7200 0 EET}
- {3604773600 10800 1 EEST}
- {3623436000 7200 0 EET}
- {3636223200 10800 1 EEST}
- {3654885600 7200 0 EET}
- {3668277600 10800 1 EEST}
- {3686335200 7200 0 EET}
- {3699727200 10800 1 EEST}
- {3718389600 7200 0 EET}
- {3731176800 10800 1 EEST}
- {3749839200 7200 0 EET}
- {3762626400 10800 1 EEST}
- {3781288800 7200 0 EET}
- {3794076000 10800 1 EEST}
- {3812738400 7200 0 EET}
- {3825525600 10800 1 EEST}
- {3844188000 7200 0 EET}
- {3857580000 10800 1 EEST}
- {3876242400 7200 0 EET}
- {3889029600 10800 1 EEST}
- {3907692000 7200 0 EET}
- {3920479200 10800 1 EEST}
- {3939141600 7200 0 EET}
- {3951928800 10800 1 EEST}
- {3970591200 7200 0 EET}
- {3983378400 10800 1 EEST}
- {4002040800 7200 0 EET}
- {4015432800 10800 1 EEST}
- {4033490400 7200 0 EET}
- {4046882400 10800 1 EEST}
- {4065544800 7200 0 EET}
- {4078332000 10800 1 EEST}
- {4096994400 7200 0 EET}
+ {1648332000 10800 1 EEST}
+ {1666998000 7200 0 EET}
+ {1679702400 10800 1 EEST}
+ {1698447600 7200 0 EET}
+ {1711756800 10800 1 EEST}
+ {1729897200 7200 0 EET}
+ {1743206400 10800 1 EEST}
+ {1761346800 7200 0 EET}
+ {1774656000 10800 1 EEST}
+ {1792796400 7200 0 EET}
+ {1806105600 10800 1 EEST}
+ {1824850800 7200 0 EET}
+ {1837555200 10800 1 EEST}
+ {1856300400 7200 0 EET}
+ {1869004800 10800 1 EEST}
+ {1887750000 7200 0 EET}
+ {1901059200 10800 1 EEST}
+ {1919199600 7200 0 EET}
+ {1932508800 10800 1 EEST}
+ {1950649200 7200 0 EET}
+ {1963958400 10800 1 EEST}
+ {1982703600 7200 0 EET}
+ {1995408000 10800 1 EEST}
+ {2014153200 7200 0 EET}
+ {2026857600 10800 1 EEST}
+ {2045602800 7200 0 EET}
+ {2058307200 10800 1 EEST}
+ {2077052400 7200 0 EET}
+ {2090361600 10800 1 EEST}
+ {2108502000 7200 0 EET}
+ {2121811200 10800 1 EEST}
+ {2139951600 7200 0 EET}
+ {2153260800 10800 1 EEST}
+ {2172006000 7200 0 EET}
+ {2184710400 10800 1 EEST}
+ {2203455600 7200 0 EET}
+ {2216160000 10800 1 EEST}
+ {2234905200 7200 0 EET}
+ {2248214400 10800 1 EEST}
+ {2266354800 7200 0 EET}
+ {2279664000 10800 1 EEST}
+ {2297804400 7200 0 EET}
+ {2311113600 10800 1 EEST}
+ {2329254000 7200 0 EET}
+ {2342563200 10800 1 EEST}
+ {2361308400 7200 0 EET}
+ {2374012800 10800 1 EEST}
+ {2392758000 7200 0 EET}
+ {2405462400 10800 1 EEST}
+ {2424207600 7200 0 EET}
+ {2437516800 10800 1 EEST}
+ {2455657200 7200 0 EET}
+ {2468966400 10800 1 EEST}
+ {2487106800 7200 0 EET}
+ {2500416000 10800 1 EEST}
+ {2519161200 7200 0 EET}
+ {2531865600 10800 1 EEST}
+ {2550610800 7200 0 EET}
+ {2563315200 10800 1 EEST}
+ {2582060400 7200 0 EET}
+ {2595369600 10800 1 EEST}
+ {2613510000 7200 0 EET}
+ {2626819200 10800 1 EEST}
+ {2644959600 7200 0 EET}
+ {2658268800 10800 1 EEST}
+ {2676409200 7200 0 EET}
+ {2689718400 10800 1 EEST}
+ {2708463600 7200 0 EET}
+ {2721168000 10800 1 EEST}
+ {2739913200 7200 0 EET}
+ {2752617600 10800 1 EEST}
+ {2771362800 7200 0 EET}
+ {2784672000 10800 1 EEST}
+ {2802812400 7200 0 EET}
+ {2816121600 10800 1 EEST}
+ {2834262000 7200 0 EET}
+ {2847571200 10800 1 EEST}
+ {2866316400 7200 0 EET}
+ {2879020800 10800 1 EEST}
+ {2897766000 7200 0 EET}
+ {2910470400 10800 1 EEST}
+ {2929215600 7200 0 EET}
+ {2941920000 10800 1 EEST}
+ {2960665200 7200 0 EET}
+ {2973974400 10800 1 EEST}
+ {2992114800 7200 0 EET}
+ {3005424000 10800 1 EEST}
+ {3023564400 7200 0 EET}
+ {3036873600 10800 1 EEST}
+ {3055618800 7200 0 EET}
+ {3068323200 10800 1 EEST}
+ {3087068400 7200 0 EET}
+ {3099772800 10800 1 EEST}
+ {3118518000 7200 0 EET}
+ {3131827200 10800 1 EEST}
+ {3149967600 7200 0 EET}
+ {3163276800 10800 1 EEST}
+ {3181417200 7200 0 EET}
+ {3194726400 10800 1 EEST}
+ {3212866800 7200 0 EET}
+ {3226176000 10800 1 EEST}
+ {3244921200 7200 0 EET}
+ {3257625600 10800 1 EEST}
+ {3276370800 7200 0 EET}
+ {3289075200 10800 1 EEST}
+ {3307820400 7200 0 EET}
+ {3321129600 10800 1 EEST}
+ {3339270000 7200 0 EET}
+ {3352579200 10800 1 EEST}
+ {3370719600 7200 0 EET}
+ {3384028800 10800 1 EEST}
+ {3402774000 7200 0 EET}
+ {3415478400 10800 1 EEST}
+ {3434223600 7200 0 EET}
+ {3446928000 10800 1 EEST}
+ {3465673200 7200 0 EET}
+ {3478982400 10800 1 EEST}
+ {3497122800 7200 0 EET}
+ {3510432000 10800 1 EEST}
+ {3528572400 7200 0 EET}
+ {3541881600 10800 1 EEST}
+ {3560022000 7200 0 EET}
+ {3573331200 10800 1 EEST}
+ {3592076400 7200 0 EET}
+ {3604780800 10800 1 EEST}
+ {3623526000 7200 0 EET}
+ {3636230400 10800 1 EEST}
+ {3654975600 7200 0 EET}
+ {3668284800 10800 1 EEST}
+ {3686425200 7200 0 EET}
+ {3699734400 10800 1 EEST}
+ {3717874800 7200 0 EET}
+ {3731184000 10800 1 EEST}
+ {3749929200 7200 0 EET}
+ {3762633600 10800 1 EEST}
+ {3781378800 7200 0 EET}
+ {3794083200 10800 1 EEST}
+ {3812828400 7200 0 EET}
+ {3825532800 10800 1 EEST}
+ {3844278000 7200 0 EET}
+ {3857587200 10800 1 EEST}
+ {3875727600 7200 0 EET}
+ {3889036800 10800 1 EEST}
+ {3907177200 7200 0 EET}
+ {3920486400 10800 1 EEST}
+ {3939231600 7200 0 EET}
+ {3951936000 10800 1 EEST}
+ {3970681200 7200 0 EET}
+ {3983385600 10800 1 EEST}
+ {4002130800 7200 0 EET}
+ {4015440000 10800 1 EEST}
+ {4033580400 7200 0 EET}
+ {4046889600 10800 1 EEST}
+ {4065030000 7200 0 EET}
+ {4078339200 10800 1 EEST}
+ {4096479600 7200 0 EET}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Hebron b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Hebron
index 7559347b2a..b92db8da9f 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Hebron
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Hebron
@@ -124,160 +124,160 @@ set TZData(:Asia/Hebron) {
{1603490400 7200 0 EET}
{1616796000 10800 1 EEST}
{1635458400 7200 0 EET}
- {1648245600 10800 1 EEST}
- {1666908000 7200 0 EET}
- {1679695200 10800 1 EEST}
- {1698357600 7200 0 EET}
- {1711749600 10800 1 EEST}
- {1729807200 7200 0 EET}
- {1743199200 10800 1 EEST}
- {1761861600 7200 0 EET}
- {1774648800 10800 1 EEST}
- {1793311200 7200 0 EET}
- {1806098400 10800 1 EEST}
- {1824760800 7200 0 EET}
- {1837548000 10800 1 EEST}
- {1856210400 7200 0 EET}
- {1868997600 10800 1 EEST}
- {1887660000 7200 0 EET}
- {1901052000 10800 1 EEST}
- {1919109600 7200 0 EET}
- {1932501600 10800 1 EEST}
- {1951164000 7200 0 EET}
- {1963951200 10800 1 EEST}
- {1982613600 7200 0 EET}
- {1995400800 10800 1 EEST}
- {2014063200 7200 0 EET}
- {2026850400 10800 1 EEST}
- {2045512800 7200 0 EET}
- {2058300000 10800 1 EEST}
- {2076962400 7200 0 EET}
- {2090354400 10800 1 EEST}
- {2109016800 7200 0 EET}
- {2121804000 10800 1 EEST}
- {2140466400 7200 0 EET}
- {2153253600 10800 1 EEST}
- {2171916000 7200 0 EET}
- {2184703200 10800 1 EEST}
- {2203365600 7200 0 EET}
- {2216152800 10800 1 EEST}
- {2234815200 7200 0 EET}
- {2248207200 10800 1 EEST}
- {2266264800 7200 0 EET}
- {2279656800 10800 1 EEST}
- {2298319200 7200 0 EET}
- {2311106400 10800 1 EEST}
- {2329768800 7200 0 EET}
- {2342556000 10800 1 EEST}
- {2361218400 7200 0 EET}
- {2374005600 10800 1 EEST}
- {2392668000 7200 0 EET}
- {2405455200 10800 1 EEST}
- {2424117600 7200 0 EET}
- {2437509600 10800 1 EEST}
- {2455567200 7200 0 EET}
- {2468959200 10800 1 EEST}
- {2487621600 7200 0 EET}
- {2500408800 10800 1 EEST}
- {2519071200 7200 0 EET}
- {2531858400 10800 1 EEST}
- {2550520800 7200 0 EET}
- {2563308000 10800 1 EEST}
- {2581970400 7200 0 EET}
- {2595362400 10800 1 EEST}
- {2613420000 7200 0 EET}
- {2626812000 10800 1 EEST}
- {2645474400 7200 0 EET}
- {2658261600 10800 1 EEST}
- {2676924000 7200 0 EET}
- {2689711200 10800 1 EEST}
- {2708373600 7200 0 EET}
- {2721160800 10800 1 EEST}
- {2739823200 7200 0 EET}
- {2752610400 10800 1 EEST}
- {2771272800 7200 0 EET}
- {2784664800 10800 1 EEST}
- {2802722400 7200 0 EET}
- {2816114400 10800 1 EEST}
- {2834776800 7200 0 EET}
- {2847564000 10800 1 EEST}
- {2866226400 7200 0 EET}
- {2879013600 10800 1 EEST}
- {2897676000 7200 0 EET}
- {2910463200 10800 1 EEST}
- {2929125600 7200 0 EET}
- {2941912800 10800 1 EEST}
- {2960575200 7200 0 EET}
- {2973967200 10800 1 EEST}
- {2992629600 7200 0 EET}
- {3005416800 10800 1 EEST}
- {3024079200 7200 0 EET}
- {3036866400 10800 1 EEST}
- {3055528800 7200 0 EET}
- {3068316000 10800 1 EEST}
- {3086978400 7200 0 EET}
- {3099765600 10800 1 EEST}
- {3118428000 7200 0 EET}
- {3131820000 10800 1 EEST}
- {3149877600 7200 0 EET}
- {3163269600 10800 1 EEST}
- {3181932000 7200 0 EET}
- {3194719200 10800 1 EEST}
- {3213381600 7200 0 EET}
- {3226168800 10800 1 EEST}
- {3244831200 7200 0 EET}
- {3257618400 10800 1 EEST}
- {3276280800 7200 0 EET}
- {3289068000 10800 1 EEST}
- {3307730400 7200 0 EET}
- {3321122400 10800 1 EEST}
- {3339180000 7200 0 EET}
- {3352572000 10800 1 EEST}
- {3371234400 7200 0 EET}
- {3384021600 10800 1 EEST}
- {3402684000 7200 0 EET}
- {3415471200 10800 1 EEST}
- {3434133600 7200 0 EET}
- {3446920800 10800 1 EEST}
- {3465583200 7200 0 EET}
- {3478975200 10800 1 EEST}
- {3497032800 7200 0 EET}
- {3510424800 10800 1 EEST}
- {3529087200 7200 0 EET}
- {3541874400 10800 1 EEST}
- {3560536800 7200 0 EET}
- {3573324000 10800 1 EEST}
- {3591986400 7200 0 EET}
- {3604773600 10800 1 EEST}
- {3623436000 7200 0 EET}
- {3636223200 10800 1 EEST}
- {3654885600 7200 0 EET}
- {3668277600 10800 1 EEST}
- {3686335200 7200 0 EET}
- {3699727200 10800 1 EEST}
- {3718389600 7200 0 EET}
- {3731176800 10800 1 EEST}
- {3749839200 7200 0 EET}
- {3762626400 10800 1 EEST}
- {3781288800 7200 0 EET}
- {3794076000 10800 1 EEST}
- {3812738400 7200 0 EET}
- {3825525600 10800 1 EEST}
- {3844188000 7200 0 EET}
- {3857580000 10800 1 EEST}
- {3876242400 7200 0 EET}
- {3889029600 10800 1 EEST}
- {3907692000 7200 0 EET}
- {3920479200 10800 1 EEST}
- {3939141600 7200 0 EET}
- {3951928800 10800 1 EEST}
- {3970591200 7200 0 EET}
- {3983378400 10800 1 EEST}
- {4002040800 7200 0 EET}
- {4015432800 10800 1 EEST}
- {4033490400 7200 0 EET}
- {4046882400 10800 1 EEST}
- {4065544800 7200 0 EET}
- {4078332000 10800 1 EEST}
- {4096994400 7200 0 EET}
+ {1648332000 10800 1 EEST}
+ {1666998000 7200 0 EET}
+ {1679702400 10800 1 EEST}
+ {1698447600 7200 0 EET}
+ {1711756800 10800 1 EEST}
+ {1729897200 7200 0 EET}
+ {1743206400 10800 1 EEST}
+ {1761346800 7200 0 EET}
+ {1774656000 10800 1 EEST}
+ {1792796400 7200 0 EET}
+ {1806105600 10800 1 EEST}
+ {1824850800 7200 0 EET}
+ {1837555200 10800 1 EEST}
+ {1856300400 7200 0 EET}
+ {1869004800 10800 1 EEST}
+ {1887750000 7200 0 EET}
+ {1901059200 10800 1 EEST}
+ {1919199600 7200 0 EET}
+ {1932508800 10800 1 EEST}
+ {1950649200 7200 0 EET}
+ {1963958400 10800 1 EEST}
+ {1982703600 7200 0 EET}
+ {1995408000 10800 1 EEST}
+ {2014153200 7200 0 EET}
+ {2026857600 10800 1 EEST}
+ {2045602800 7200 0 EET}
+ {2058307200 10800 1 EEST}
+ {2077052400 7200 0 EET}
+ {2090361600 10800 1 EEST}
+ {2108502000 7200 0 EET}
+ {2121811200 10800 1 EEST}
+ {2139951600 7200 0 EET}
+ {2153260800 10800 1 EEST}
+ {2172006000 7200 0 EET}
+ {2184710400 10800 1 EEST}
+ {2203455600 7200 0 EET}
+ {2216160000 10800 1 EEST}
+ {2234905200 7200 0 EET}
+ {2248214400 10800 1 EEST}
+ {2266354800 7200 0 EET}
+ {2279664000 10800 1 EEST}
+ {2297804400 7200 0 EET}
+ {2311113600 10800 1 EEST}
+ {2329254000 7200 0 EET}
+ {2342563200 10800 1 EEST}
+ {2361308400 7200 0 EET}
+ {2374012800 10800 1 EEST}
+ {2392758000 7200 0 EET}
+ {2405462400 10800 1 EEST}
+ {2424207600 7200 0 EET}
+ {2437516800 10800 1 EEST}
+ {2455657200 7200 0 EET}
+ {2468966400 10800 1 EEST}
+ {2487106800 7200 0 EET}
+ {2500416000 10800 1 EEST}
+ {2519161200 7200 0 EET}
+ {2531865600 10800 1 EEST}
+ {2550610800 7200 0 EET}
+ {2563315200 10800 1 EEST}
+ {2582060400 7200 0 EET}
+ {2595369600 10800 1 EEST}
+ {2613510000 7200 0 EET}
+ {2626819200 10800 1 EEST}
+ {2644959600 7200 0 EET}
+ {2658268800 10800 1 EEST}
+ {2676409200 7200 0 EET}
+ {2689718400 10800 1 EEST}
+ {2708463600 7200 0 EET}
+ {2721168000 10800 1 EEST}
+ {2739913200 7200 0 EET}
+ {2752617600 10800 1 EEST}
+ {2771362800 7200 0 EET}
+ {2784672000 10800 1 EEST}
+ {2802812400 7200 0 EET}
+ {2816121600 10800 1 EEST}
+ {2834262000 7200 0 EET}
+ {2847571200 10800 1 EEST}
+ {2866316400 7200 0 EET}
+ {2879020800 10800 1 EEST}
+ {2897766000 7200 0 EET}
+ {2910470400 10800 1 EEST}
+ {2929215600 7200 0 EET}
+ {2941920000 10800 1 EEST}
+ {2960665200 7200 0 EET}
+ {2973974400 10800 1 EEST}
+ {2992114800 7200 0 EET}
+ {3005424000 10800 1 EEST}
+ {3023564400 7200 0 EET}
+ {3036873600 10800 1 EEST}
+ {3055618800 7200 0 EET}
+ {3068323200 10800 1 EEST}
+ {3087068400 7200 0 EET}
+ {3099772800 10800 1 EEST}
+ {3118518000 7200 0 EET}
+ {3131827200 10800 1 EEST}
+ {3149967600 7200 0 EET}
+ {3163276800 10800 1 EEST}
+ {3181417200 7200 0 EET}
+ {3194726400 10800 1 EEST}
+ {3212866800 7200 0 EET}
+ {3226176000 10800 1 EEST}
+ {3244921200 7200 0 EET}
+ {3257625600 10800 1 EEST}
+ {3276370800 7200 0 EET}
+ {3289075200 10800 1 EEST}
+ {3307820400 7200 0 EET}
+ {3321129600 10800 1 EEST}
+ {3339270000 7200 0 EET}
+ {3352579200 10800 1 EEST}
+ {3370719600 7200 0 EET}
+ {3384028800 10800 1 EEST}
+ {3402774000 7200 0 EET}
+ {3415478400 10800 1 EEST}
+ {3434223600 7200 0 EET}
+ {3446928000 10800 1 EEST}
+ {3465673200 7200 0 EET}
+ {3478982400 10800 1 EEST}
+ {3497122800 7200 0 EET}
+ {3510432000 10800 1 EEST}
+ {3528572400 7200 0 EET}
+ {3541881600 10800 1 EEST}
+ {3560022000 7200 0 EET}
+ {3573331200 10800 1 EEST}
+ {3592076400 7200 0 EET}
+ {3604780800 10800 1 EEST}
+ {3623526000 7200 0 EET}
+ {3636230400 10800 1 EEST}
+ {3654975600 7200 0 EET}
+ {3668284800 10800 1 EEST}
+ {3686425200 7200 0 EET}
+ {3699734400 10800 1 EEST}
+ {3717874800 7200 0 EET}
+ {3731184000 10800 1 EEST}
+ {3749929200 7200 0 EET}
+ {3762633600 10800 1 EEST}
+ {3781378800 7200 0 EET}
+ {3794083200 10800 1 EEST}
+ {3812828400 7200 0 EET}
+ {3825532800 10800 1 EEST}
+ {3844278000 7200 0 EET}
+ {3857587200 10800 1 EEST}
+ {3875727600 7200 0 EET}
+ {3889036800 10800 1 EEST}
+ {3907177200 7200 0 EET}
+ {3920486400 10800 1 EEST}
+ {3939231600 7200 0 EET}
+ {3951936000 10800 1 EEST}
+ {3970681200 7200 0 EET}
+ {3983385600 10800 1 EEST}
+ {4002130800 7200 0 EET}
+ {4015440000 10800 1 EEST}
+ {4033580400 7200 0 EET}
+ {4046889600 10800 1 EEST}
+ {4065030000 7200 0 EET}
+ {4078339200 10800 1 EEST}
+ {4096479600 7200 0 EET}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Ho_Chi_Minh b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Ho_Chi_Minh
index b4e749b8c5..4689516725 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Ho_Chi_Minh
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Ho_Chi_Minh
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Ho_Chi_Minh) {
- {-9223372036854775808 25600 0 LMT}
- {-2004073600 25590 0 PLMT}
+ {-9223372036854775808 25590 0 LMT}
+ {-2004073590 25590 0 PLMT}
{-1851577590 25200 0 +07}
{-852105600 28800 0 +08}
{-782643600 32400 0 +09}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Kuala_Lumpur b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Kuala_Lumpur
index 84eae1d8a1..177539aba2 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Kuala_Lumpur
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Kuala_Lumpur
@@ -1,13 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Kuala_Lumpur) {
- {-9223372036854775808 24406 0 LMT}
- {-2177477206 24925 0 SMT}
- {-2038200925 25200 0 +07}
- {-1167634800 26400 1 +0720}
- {-1073028000 26400 0 +0720}
- {-894180000 27000 0 +0730}
- {-879665400 32400 0 +09}
- {-767005200 27000 0 +0730}
- {378664200 28800 0 +08}
+if {![info exists TZData(Asia/Singapore)]} {
+ LoadTimeZoneFile Asia/Singapore
}
+set TZData(:Asia/Kuala_Lumpur) $TZData(:Asia/Singapore)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Tehran b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Tehran
index 45155231c1..c453c4824b 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Tehran
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Asia/Tehran
@@ -3,12 +3,13 @@
set TZData(:Asia/Tehran) {
{-9223372036854775808 12344 0 LMT}
{-1704165944 12344 0 TMT}
- {-757394744 12600 0 +0330}
- {247177800 14400 0 +04}
- {259272000 18000 1 +04}
- {277758000 14400 0 +04}
+ {-1090466744 12600 0 +0330}
+ {227820600 16200 1 +0330}
+ {246227400 14400 0 +04}
+ {259617600 18000 1 +04}
+ {271108800 14400 0 +04}
{283982400 12600 0 +0330}
- {290809800 16200 1 +0330}
+ {296598600 16200 1 +0330}
{306531000 12600 0 +0330}
{322432200 16200 1 +0330}
{338499000 12600 0 +0330}
@@ -72,158 +73,4 @@ set TZData(:Asia/Tehran) {
{1632252600 12600 0 +0330}
{1647894600 16200 1 +0330}
{1663788600 12600 0 +0330}
- {1679430600 16200 1 +0330}
- {1695324600 12600 0 +0330}
- {1710966600 16200 1 +0330}
- {1726860600 12600 0 +0330}
- {1742589000 16200 1 +0330}
- {1758483000 12600 0 +0330}
- {1774125000 16200 1 +0330}
- {1790019000 12600 0 +0330}
- {1805661000 16200 1 +0330}
- {1821555000 12600 0 +0330}
- {1837197000 16200 1 +0330}
- {1853091000 12600 0 +0330}
- {1868733000 16200 1 +0330}
- {1884627000 12600 0 +0330}
- {1900355400 16200 1 +0330}
- {1916249400 12600 0 +0330}
- {1931891400 16200 1 +0330}
- {1947785400 12600 0 +0330}
- {1963427400 16200 1 +0330}
- {1979321400 12600 0 +0330}
- {1994963400 16200 1 +0330}
- {2010857400 12600 0 +0330}
- {2026585800 16200 1 +0330}
- {2042479800 12600 0 +0330}
- {2058121800 16200 1 +0330}
- {2074015800 12600 0 +0330}
- {2089657800 16200 1 +0330}
- {2105551800 12600 0 +0330}
- {2121193800 16200 1 +0330}
- {2137087800 12600 0 +0330}
- {2152816200 16200 1 +0330}
- {2168710200 12600 0 +0330}
- {2184352200 16200 1 +0330}
- {2200246200 12600 0 +0330}
- {2215888200 16200 1 +0330}
- {2231782200 12600 0 +0330}
- {2247424200 16200 1 +0330}
- {2263318200 12600 0 +0330}
- {2279046600 16200 1 +0330}
- {2294940600 12600 0 +0330}
- {2310582600 16200 1 +0330}
- {2326476600 12600 0 +0330}
- {2342118600 16200 1 +0330}
- {2358012600 12600 0 +0330}
- {2373654600 16200 1 +0330}
- {2389548600 12600 0 +0330}
- {2405277000 16200 1 +0330}
- {2421171000 12600 0 +0330}
- {2436813000 16200 1 +0330}
- {2452707000 12600 0 +0330}
- {2468349000 16200 1 +0330}
- {2484243000 12600 0 +0330}
- {2499885000 16200 1 +0330}
- {2515779000 12600 0 +0330}
- {2531507400 16200 1 +0330}
- {2547401400 12600 0 +0330}
- {2563043400 16200 1 +0330}
- {2578937400 12600 0 +0330}
- {2594579400 16200 1 +0330}
- {2610473400 12600 0 +0330}
- {2626115400 16200 1 +0330}
- {2642009400 12600 0 +0330}
- {2657737800 16200 1 +0330}
- {2673631800 12600 0 +0330}
- {2689273800 16200 1 +0330}
- {2705167800 12600 0 +0330}
- {2720809800 16200 1 +0330}
- {2736703800 12600 0 +0330}
- {2752345800 16200 1 +0330}
- {2768239800 12600 0 +0330}
- {2783968200 16200 1 +0330}
- {2799862200 12600 0 +0330}
- {2815504200 16200 1 +0330}
- {2831398200 12600 0 +0330}
- {2847040200 16200 1 +0330}
- {2862934200 12600 0 +0330}
- {2878576200 16200 1 +0330}
- {2894470200 12600 0 +0330}
- {2910112200 16200 1 +0330}
- {2926006200 12600 0 +0330}
- {2941734600 16200 1 +0330}
- {2957628600 12600 0 +0330}
- {2973270600 16200 1 +0330}
- {2989164600 12600 0 +0330}
- {3004806600 16200 1 +0330}
- {3020700600 12600 0 +0330}
- {3036342600 16200 1 +0330}
- {3052236600 12600 0 +0330}
- {3067965000 16200 1 +0330}
- {3083859000 12600 0 +0330}
- {3099501000 16200 1 +0330}
- {3115395000 12600 0 +0330}
- {3131037000 16200 1 +0330}
- {3146931000 12600 0 +0330}
- {3162573000 16200 1 +0330}
- {3178467000 12600 0 +0330}
- {3194195400 16200 1 +0330}
- {3210089400 12600 0 +0330}
- {3225731400 16200 1 +0330}
- {3241625400 12600 0 +0330}
- {3257267400 16200 1 +0330}
- {3273161400 12600 0 +0330}
- {3288803400 16200 1 +0330}
- {3304697400 12600 0 +0330}
- {3320425800 16200 1 +0330}
- {3336319800 12600 0 +0330}
- {3351961800 16200 1 +0330}
- {3367855800 12600 0 +0330}
- {3383497800 16200 1 +0330}
- {3399391800 12600 0 +0330}
- {3415033800 16200 1 +0330}
- {3430927800 12600 0 +0330}
- {3446656200 16200 1 +0330}
- {3462550200 12600 0 +0330}
- {3478192200 16200 1 +0330}
- {3494086200 12600 0 +0330}
- {3509728200 16200 1 +0330}
- {3525622200 12600 0 +0330}
- {3541264200 16200 1 +0330}
- {3557158200 12600 0 +0330}
- {3572886600 16200 1 +0330}
- {3588780600 12600 0 +0330}
- {3604422600 16200 1 +0330}
- {3620316600 12600 0 +0330}
- {3635958600 16200 1 +0330}
- {3651852600 12600 0 +0330}
- {3667494600 16200 1 +0330}
- {3683388600 12600 0 +0330}
- {3699117000 16200 1 +0330}
- {3715011000 12600 0 +0330}
- {3730653000 16200 1 +0330}
- {3746547000 12600 0 +0330}
- {3762189000 16200 1 +0330}
- {3778083000 12600 0 +0330}
- {3793725000 16200 1 +0330}
- {3809619000 12600 0 +0330}
- {3825261000 16200 1 +0330}
- {3841155000 12600 0 +0330}
- {3856883400 16200 1 +0330}
- {3872777400 12600 0 +0330}
- {3888419400 16200 1 +0330}
- {3904313400 12600 0 +0330}
- {3919955400 16200 1 +0330}
- {3935849400 12600 0 +0330}
- {3951491400 16200 1 +0330}
- {3967385400 12600 0 +0330}
- {3983113800 16200 1 +0330}
- {3999007800 12600 0 +0330}
- {4014649800 16200 1 +0330}
- {4030543800 12600 0 +0330}
- {4046185800 16200 1 +0330}
- {4062079800 12600 0 +0330}
- {4077721800 16200 1 +0330}
- {4093615800 12600 0 +0330}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Jan_Mayen b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Jan_Mayen
index e5921878f8..468d81983e 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Jan_Mayen
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Jan_Mayen
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Europe/Oslo)]} {
- LoadTimeZoneFile Europe/Oslo
+if {![info exists TZData(Europe/Berlin)]} {
+ LoadTimeZoneFile Europe/Berlin
}
-set TZData(:Atlantic/Jan_Mayen) $TZData(:Europe/Oslo)
+set TZData(:Atlantic/Jan_Mayen) $TZData(:Europe/Berlin)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Reykjavik b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Reykjavik
index 6270572f69..3c4a13340d 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Reykjavik
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Atlantic/Reykjavik
@@ -1,73 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Atlantic/Reykjavik) {
- {-9223372036854775808 -5280 0 LMT}
- {-1956609120 -3600 0 -01}
- {-1668211200 0 1 -01}
- {-1647212400 -3600 0 -01}
- {-1636675200 0 1 -01}
- {-1613430000 -3600 0 -01}
- {-1605139200 0 1 -01}
- {-1581894000 -3600 0 -01}
- {-1539561600 0 1 -01}
- {-1531350000 -3600 0 -01}
- {-968025600 0 1 -01}
- {-952293600 -3600 0 -01}
- {-942008400 0 1 -01}
- {-920239200 -3600 0 -01}
- {-909957600 0 1 -01}
- {-888789600 -3600 0 -01}
- {-877903200 0 1 -01}
- {-857944800 -3600 0 -01}
- {-846453600 0 1 -01}
- {-826495200 -3600 0 -01}
- {-815004000 0 1 -01}
- {-795045600 -3600 0 -01}
- {-783554400 0 1 -01}
- {-762991200 -3600 0 -01}
- {-752104800 0 1 -01}
- {-731541600 -3600 0 -01}
- {-717631200 0 1 -01}
- {-700092000 -3600 0 -01}
- {-686181600 0 1 -01}
- {-668642400 -3600 0 -01}
- {-654732000 0 1 -01}
- {-636588000 -3600 0 -01}
- {-623282400 0 1 -01}
- {-605743200 -3600 0 -01}
- {-591832800 0 1 -01}
- {-573688800 -3600 0 -01}
- {-559778400 0 1 -01}
- {-542239200 -3600 0 -01}
- {-528328800 0 1 -01}
- {-510789600 -3600 0 -01}
- {-496879200 0 1 -01}
- {-479340000 -3600 0 -01}
- {-465429600 0 1 -01}
- {-447890400 -3600 0 -01}
- {-433980000 0 1 -01}
- {-415836000 -3600 0 -01}
- {-401925600 0 1 -01}
- {-384386400 -3600 0 -01}
- {-370476000 0 1 -01}
- {-352936800 -3600 0 -01}
- {-339026400 0 1 -01}
- {-321487200 -3600 0 -01}
- {-307576800 0 1 -01}
- {-290037600 -3600 0 -01}
- {-276127200 0 1 -01}
- {-258588000 -3600 0 -01}
- {-244677600 0 1 -01}
- {-226533600 -3600 0 -01}
- {-212623200 0 1 -01}
- {-195084000 -3600 0 -01}
- {-181173600 0 1 -01}
- {-163634400 -3600 0 -01}
- {-149724000 0 1 -01}
- {-132184800 -3600 0 -01}
- {-118274400 0 1 -01}
- {-100735200 -3600 0 -01}
- {-86824800 0 1 -01}
- {-68680800 -3600 0 -01}
- {-54770400 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Atlantic/Reykjavik) $TZData(:Africa/Abidjan)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/East-Saskatchewan b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/East-Saskatchewan
deleted file mode 100644
index f7e500c305..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Canada/East-Saskatchewan
+++ /dev/null
@@ -1,5 +0,0 @@
-# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Regina)]} {
- LoadTimeZoneFile America/Regina
-}
-set TZData(:Canada/East-Saskatchewan) $TZData(:America/Regina)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Amsterdam b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Amsterdam
index b683c999db..7fbe3aa4c4 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Amsterdam
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Amsterdam
@@ -1,310 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Amsterdam) {
- {-9223372036854775808 1172 0 LMT}
- {-4260212372 1172 0 AMT}
- {-1693700372 4772 1 NST}
- {-1680484772 1172 0 AMT}
- {-1663453172 4772 1 NST}
- {-1650147572 1172 0 AMT}
- {-1633213172 4772 1 NST}
- {-1617488372 1172 0 AMT}
- {-1601158772 4772 1 NST}
- {-1586038772 1172 0 AMT}
- {-1569709172 4772 1 NST}
- {-1554589172 1172 0 AMT}
- {-1538259572 4772 1 NST}
- {-1523139572 1172 0 AMT}
- {-1507501172 4772 1 NST}
- {-1490566772 1172 0 AMT}
- {-1470176372 4772 1 NST}
- {-1459117172 1172 0 AMT}
- {-1443997172 4772 1 NST}
- {-1427667572 1172 0 AMT}
- {-1406672372 4772 1 NST}
- {-1396217972 1172 0 AMT}
- {-1376950772 4772 1 NST}
- {-1364768372 1172 0 AMT}
- {-1345414772 4772 1 NST}
- {-1333318772 1172 0 AMT}
- {-1313792372 4772 1 NST}
- {-1301264372 1172 0 AMT}
- {-1282256372 4772 1 NST}
- {-1269814772 1172 0 AMT}
- {-1250720372 4772 1 NST}
- {-1238365172 1172 0 AMT}
- {-1219184372 4772 1 NST}
- {-1206915572 1172 0 AMT}
- {-1186957172 4772 1 NST}
- {-1175465972 1172 0 AMT}
- {-1156025972 4772 1 NST}
- {-1143411572 1172 0 AMT}
- {-1124489972 4772 1 NST}
- {-1111961972 1172 0 AMT}
- {-1092953972 4772 1 NST}
- {-1080512372 1172 0 AMT}
- {-1061331572 4772 1 NST}
- {-1049062772 1172 0 AMT}
- {-1029190772 4772 1 NST}
- {-1025741972 4800 0 +0120}
- {-1017613200 1200 0 +0020}
- {-998259600 4800 1 +0120}
- {-986163600 1200 0 +0020}
- {-966723600 4800 1 +0120}
- {-954109200 1200 0 +0020}
- {-935022000 7200 0 CEST}
- {-857257200 3600 0 CET}
- {-844556400 7200 1 CEST}
- {-828226800 3600 0 CET}
- {-812502000 7200 1 CEST}
- {-796777200 3600 0 CET}
- {-781052400 7200 0 CEST}
- {-766623600 3600 0 CET}
- {220921200 3600 0 CET}
- {228877200 7200 1 CEST}
- {243997200 3600 0 CET}
- {260326800 7200 1 CEST}
- {276051600 3600 0 CET}
- {291776400 7200 1 CEST}
- {307501200 3600 0 CET}
- {323830800 7200 1 CEST}
- {338950800 3600 0 CET}
- {354675600 7200 1 CEST}
- {370400400 3600 0 CET}
- {386125200 7200 1 CEST}
- {401850000 3600 0 CET}
- {417574800 7200 1 CEST}
- {433299600 3600 0 CET}
- {449024400 7200 1 CEST}
- {465354000 3600 0 CET}
- {481078800 7200 1 CEST}
- {496803600 3600 0 CET}
- {512528400 7200 1 CEST}
- {528253200 3600 0 CET}
- {543978000 7200 1 CEST}
- {559702800 3600 0 CET}
- {575427600 7200 1 CEST}
- {591152400 3600 0 CET}
- {606877200 7200 1 CEST}
- {622602000 3600 0 CET}
- {638326800 7200 1 CEST}
- {654656400 3600 0 CET}
- {670381200 7200 1 CEST}
- {686106000 3600 0 CET}
- {701830800 7200 1 CEST}
- {717555600 3600 0 CET}
- {733280400 7200 1 CEST}
- {749005200 3600 0 CET}
- {764730000 7200 1 CEST}
- {780454800 3600 0 CET}
- {796179600 7200 1 CEST}
- {811904400 3600 0 CET}
- {828234000 7200 1 CEST}
- {846378000 3600 0 CET}
- {859683600 7200 1 CEST}
- {877827600 3600 0 CET}
- {891133200 7200 1 CEST}
- {909277200 3600 0 CET}
- {922582800 7200 1 CEST}
- {941331600 3600 0 CET}
- {954032400 7200 1 CEST}
- {972781200 3600 0 CET}
- {985482000 7200 1 CEST}
- {1004230800 3600 0 CET}
- {1017536400 7200 1 CEST}
- {1035680400 3600 0 CET}
- {1048986000 7200 1 CEST}
- {1067130000 3600 0 CET}
- {1080435600 7200 1 CEST}
- {1099184400 3600 0 CET}
- {1111885200 7200 1 CEST}
- {1130634000 3600 0 CET}
- {1143334800 7200 1 CEST}
- {1162083600 3600 0 CET}
- {1174784400 7200 1 CEST}
- {1193533200 3600 0 CET}
- {1206838800 7200 1 CEST}
- {1224982800 3600 0 CET}
- {1238288400 7200 1 CEST}
- {1256432400 3600 0 CET}
- {1269738000 7200 1 CEST}
- {1288486800 3600 0 CET}
- {1301187600 7200 1 CEST}
- {1319936400 3600 0 CET}
- {1332637200 7200 1 CEST}
- {1351386000 3600 0 CET}
- {1364691600 7200 1 CEST}
- {1382835600 3600 0 CET}
- {1396141200 7200 1 CEST}
- {1414285200 3600 0 CET}
- {1427590800 7200 1 CEST}
- {1445734800 3600 0 CET}
- {1459040400 7200 1 CEST}
- {1477789200 3600 0 CET}
- {1490490000 7200 1 CEST}
- {1509238800 3600 0 CET}
- {1521939600 7200 1 CEST}
- {1540688400 3600 0 CET}
- {1553994000 7200 1 CEST}
- {1572138000 3600 0 CET}
- {1585443600 7200 1 CEST}
- {1603587600 3600 0 CET}
- {1616893200 7200 1 CEST}
- {1635642000 3600 0 CET}
- {1648342800 7200 1 CEST}
- {1667091600 3600 0 CET}
- {1679792400 7200 1 CEST}
- {1698541200 3600 0 CET}
- {1711846800 7200 1 CEST}
- {1729990800 3600 0 CET}
- {1743296400 7200 1 CEST}
- {1761440400 3600 0 CET}
- {1774746000 7200 1 CEST}
- {1792890000 3600 0 CET}
- {1806195600 7200 1 CEST}
- {1824944400 3600 0 CET}
- {1837645200 7200 1 CEST}
- {1856394000 3600 0 CET}
- {1869094800 7200 1 CEST}
- {1887843600 3600 0 CET}
- {1901149200 7200 1 CEST}
- {1919293200 3600 0 CET}
- {1932598800 7200 1 CEST}
- {1950742800 3600 0 CET}
- {1964048400 7200 1 CEST}
- {1982797200 3600 0 CET}
- {1995498000 7200 1 CEST}
- {2014246800 3600 0 CET}
- {2026947600 7200 1 CEST}
- {2045696400 3600 0 CET}
- {2058397200 7200 1 CEST}
- {2077146000 3600 0 CET}
- {2090451600 7200 1 CEST}
- {2108595600 3600 0 CET}
- {2121901200 7200 1 CEST}
- {2140045200 3600 0 CET}
- {2153350800 7200 1 CEST}
- {2172099600 3600 0 CET}
- {2184800400 7200 1 CEST}
- {2203549200 3600 0 CET}
- {2216250000 7200 1 CEST}
- {2234998800 3600 0 CET}
- {2248304400 7200 1 CEST}
- {2266448400 3600 0 CET}
- {2279754000 7200 1 CEST}
- {2297898000 3600 0 CET}
- {2311203600 7200 1 CEST}
- {2329347600 3600 0 CET}
- {2342653200 7200 1 CEST}
- {2361402000 3600 0 CET}
- {2374102800 7200 1 CEST}
- {2392851600 3600 0 CET}
- {2405552400 7200 1 CEST}
- {2424301200 3600 0 CET}
- {2437606800 7200 1 CEST}
- {2455750800 3600 0 CET}
- {2469056400 7200 1 CEST}
- {2487200400 3600 0 CET}
- {2500506000 7200 1 CEST}
- {2519254800 3600 0 CET}
- {2531955600 7200 1 CEST}
- {2550704400 3600 0 CET}
- {2563405200 7200 1 CEST}
- {2582154000 3600 0 CET}
- {2595459600 7200 1 CEST}
- {2613603600 3600 0 CET}
- {2626909200 7200 1 CEST}
- {2645053200 3600 0 CET}
- {2658358800 7200 1 CEST}
- {2676502800 3600 0 CET}
- {2689808400 7200 1 CEST}
- {2708557200 3600 0 CET}
- {2721258000 7200 1 CEST}
- {2740006800 3600 0 CET}
- {2752707600 7200 1 CEST}
- {2771456400 3600 0 CET}
- {2784762000 7200 1 CEST}
- {2802906000 3600 0 CET}
- {2816211600 7200 1 CEST}
- {2834355600 3600 0 CET}
- {2847661200 7200 1 CEST}
- {2866410000 3600 0 CET}
- {2879110800 7200 1 CEST}
- {2897859600 3600 0 CET}
- {2910560400 7200 1 CEST}
- {2929309200 3600 0 CET}
- {2942010000 7200 1 CEST}
- {2960758800 3600 0 CET}
- {2974064400 7200 1 CEST}
- {2992208400 3600 0 CET}
- {3005514000 7200 1 CEST}
- {3023658000 3600 0 CET}
- {3036963600 7200 1 CEST}
- {3055712400 3600 0 CET}
- {3068413200 7200 1 CEST}
- {3087162000 3600 0 CET}
- {3099862800 7200 1 CEST}
- {3118611600 3600 0 CET}
- {3131917200 7200 1 CEST}
- {3150061200 3600 0 CET}
- {3163366800 7200 1 CEST}
- {3181510800 3600 0 CET}
- {3194816400 7200 1 CEST}
- {3212960400 3600 0 CET}
- {3226266000 7200 1 CEST}
- {3245014800 3600 0 CET}
- {3257715600 7200 1 CEST}
- {3276464400 3600 0 CET}
- {3289165200 7200 1 CEST}
- {3307914000 3600 0 CET}
- {3321219600 7200 1 CEST}
- {3339363600 3600 0 CET}
- {3352669200 7200 1 CEST}
- {3370813200 3600 0 CET}
- {3384118800 7200 1 CEST}
- {3402867600 3600 0 CET}
- {3415568400 7200 1 CEST}
- {3434317200 3600 0 CET}
- {3447018000 7200 1 CEST}
- {3465766800 3600 0 CET}
- {3479072400 7200 1 CEST}
- {3497216400 3600 0 CET}
- {3510522000 7200 1 CEST}
- {3528666000 3600 0 CET}
- {3541971600 7200 1 CEST}
- {3560115600 3600 0 CET}
- {3573421200 7200 1 CEST}
- {3592170000 3600 0 CET}
- {3604870800 7200 1 CEST}
- {3623619600 3600 0 CET}
- {3636320400 7200 1 CEST}
- {3655069200 3600 0 CET}
- {3668374800 7200 1 CEST}
- {3686518800 3600 0 CET}
- {3699824400 7200 1 CEST}
- {3717968400 3600 0 CET}
- {3731274000 7200 1 CEST}
- {3750022800 3600 0 CET}
- {3762723600 7200 1 CEST}
- {3781472400 3600 0 CET}
- {3794173200 7200 1 CEST}
- {3812922000 3600 0 CET}
- {3825622800 7200 1 CEST}
- {3844371600 3600 0 CET}
- {3857677200 7200 1 CEST}
- {3875821200 3600 0 CET}
- {3889126800 7200 1 CEST}
- {3907270800 3600 0 CET}
- {3920576400 7200 1 CEST}
- {3939325200 3600 0 CET}
- {3952026000 7200 1 CEST}
- {3970774800 3600 0 CET}
- {3983475600 7200 1 CEST}
- {4002224400 3600 0 CET}
- {4015530000 7200 1 CEST}
- {4033674000 3600 0 CET}
- {4046979600 7200 1 CEST}
- {4065123600 3600 0 CET}
- {4078429200 7200 1 CEST}
- {4096573200 3600 0 CET}
+if {![info exists TZData(Europe/Brussels)]} {
+ LoadTimeZoneFile Europe/Brussels
}
+set TZData(:Europe/Amsterdam) $TZData(:Europe/Brussels)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Copenhagen b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Copenhagen
index c747e58a06..1b144d1247 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Copenhagen
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Copenhagen
@@ -1,264 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Copenhagen) {
- {-9223372036854775808 3020 0 LMT}
- {-2524524620 3020 0 CMT}
- {-2398294220 3600 0 CET}
- {-1692496800 7200 1 CEST}
- {-1680490800 3600 0 CET}
- {-935110800 7200 1 CEST}
- {-857257200 3600 0 CET}
- {-844556400 7200 1 CEST}
- {-828226800 3600 0 CET}
- {-812502000 7200 1 CEST}
- {-796777200 3600 0 CET}
- {-781052400 7200 0 CEST}
- {-769388400 3600 0 CET}
- {-747010800 7200 1 CEST}
- {-736383600 3600 0 CET}
- {-715215600 7200 1 CEST}
- {-706748400 3600 0 CET}
- {-683161200 7200 1 CEST}
- {-675298800 3600 0 CET}
- {315529200 3600 0 CET}
- {323830800 7200 1 CEST}
- {338950800 3600 0 CET}
- {354675600 7200 1 CEST}
- {370400400 3600 0 CET}
- {386125200 7200 1 CEST}
- {401850000 3600 0 CET}
- {417574800 7200 1 CEST}
- {433299600 3600 0 CET}
- {449024400 7200 1 CEST}
- {465354000 3600 0 CET}
- {481078800 7200 1 CEST}
- {496803600 3600 0 CET}
- {512528400 7200 1 CEST}
- {528253200 3600 0 CET}
- {543978000 7200 1 CEST}
- {559702800 3600 0 CET}
- {575427600 7200 1 CEST}
- {591152400 3600 0 CET}
- {606877200 7200 1 CEST}
- {622602000 3600 0 CET}
- {638326800 7200 1 CEST}
- {654656400 3600 0 CET}
- {670381200 7200 1 CEST}
- {686106000 3600 0 CET}
- {701830800 7200 1 CEST}
- {717555600 3600 0 CET}
- {733280400 7200 1 CEST}
- {749005200 3600 0 CET}
- {764730000 7200 1 CEST}
- {780454800 3600 0 CET}
- {796179600 7200 1 CEST}
- {811904400 3600 0 CET}
- {828234000 7200 1 CEST}
- {846378000 3600 0 CET}
- {859683600 7200 1 CEST}
- {877827600 3600 0 CET}
- {891133200 7200 1 CEST}
- {909277200 3600 0 CET}
- {922582800 7200 1 CEST}
- {941331600 3600 0 CET}
- {954032400 7200 1 CEST}
- {972781200 3600 0 CET}
- {985482000 7200 1 CEST}
- {1004230800 3600 0 CET}
- {1017536400 7200 1 CEST}
- {1035680400 3600 0 CET}
- {1048986000 7200 1 CEST}
- {1067130000 3600 0 CET}
- {1080435600 7200 1 CEST}
- {1099184400 3600 0 CET}
- {1111885200 7200 1 CEST}
- {1130634000 3600 0 CET}
- {1143334800 7200 1 CEST}
- {1162083600 3600 0 CET}
- {1174784400 7200 1 CEST}
- {1193533200 3600 0 CET}
- {1206838800 7200 1 CEST}
- {1224982800 3600 0 CET}
- {1238288400 7200 1 CEST}
- {1256432400 3600 0 CET}
- {1269738000 7200 1 CEST}
- {1288486800 3600 0 CET}
- {1301187600 7200 1 CEST}
- {1319936400 3600 0 CET}
- {1332637200 7200 1 CEST}
- {1351386000 3600 0 CET}
- {1364691600 7200 1 CEST}
- {1382835600 3600 0 CET}
- {1396141200 7200 1 CEST}
- {1414285200 3600 0 CET}
- {1427590800 7200 1 CEST}
- {1445734800 3600 0 CET}
- {1459040400 7200 1 CEST}
- {1477789200 3600 0 CET}
- {1490490000 7200 1 CEST}
- {1509238800 3600 0 CET}
- {1521939600 7200 1 CEST}
- {1540688400 3600 0 CET}
- {1553994000 7200 1 CEST}
- {1572138000 3600 0 CET}
- {1585443600 7200 1 CEST}
- {1603587600 3600 0 CET}
- {1616893200 7200 1 CEST}
- {1635642000 3600 0 CET}
- {1648342800 7200 1 CEST}
- {1667091600 3600 0 CET}
- {1679792400 7200 1 CEST}
- {1698541200 3600 0 CET}
- {1711846800 7200 1 CEST}
- {1729990800 3600 0 CET}
- {1743296400 7200 1 CEST}
- {1761440400 3600 0 CET}
- {1774746000 7200 1 CEST}
- {1792890000 3600 0 CET}
- {1806195600 7200 1 CEST}
- {1824944400 3600 0 CET}
- {1837645200 7200 1 CEST}
- {1856394000 3600 0 CET}
- {1869094800 7200 1 CEST}
- {1887843600 3600 0 CET}
- {1901149200 7200 1 CEST}
- {1919293200 3600 0 CET}
- {1932598800 7200 1 CEST}
- {1950742800 3600 0 CET}
- {1964048400 7200 1 CEST}
- {1982797200 3600 0 CET}
- {1995498000 7200 1 CEST}
- {2014246800 3600 0 CET}
- {2026947600 7200 1 CEST}
- {2045696400 3600 0 CET}
- {2058397200 7200 1 CEST}
- {2077146000 3600 0 CET}
- {2090451600 7200 1 CEST}
- {2108595600 3600 0 CET}
- {2121901200 7200 1 CEST}
- {2140045200 3600 0 CET}
- {2153350800 7200 1 CEST}
- {2172099600 3600 0 CET}
- {2184800400 7200 1 CEST}
- {2203549200 3600 0 CET}
- {2216250000 7200 1 CEST}
- {2234998800 3600 0 CET}
- {2248304400 7200 1 CEST}
- {2266448400 3600 0 CET}
- {2279754000 7200 1 CEST}
- {2297898000 3600 0 CET}
- {2311203600 7200 1 CEST}
- {2329347600 3600 0 CET}
- {2342653200 7200 1 CEST}
- {2361402000 3600 0 CET}
- {2374102800 7200 1 CEST}
- {2392851600 3600 0 CET}
- {2405552400 7200 1 CEST}
- {2424301200 3600 0 CET}
- {2437606800 7200 1 CEST}
- {2455750800 3600 0 CET}
- {2469056400 7200 1 CEST}
- {2487200400 3600 0 CET}
- {2500506000 7200 1 CEST}
- {2519254800 3600 0 CET}
- {2531955600 7200 1 CEST}
- {2550704400 3600 0 CET}
- {2563405200 7200 1 CEST}
- {2582154000 3600 0 CET}
- {2595459600 7200 1 CEST}
- {2613603600 3600 0 CET}
- {2626909200 7200 1 CEST}
- {2645053200 3600 0 CET}
- {2658358800 7200 1 CEST}
- {2676502800 3600 0 CET}
- {2689808400 7200 1 CEST}
- {2708557200 3600 0 CET}
- {2721258000 7200 1 CEST}
- {2740006800 3600 0 CET}
- {2752707600 7200 1 CEST}
- {2771456400 3600 0 CET}
- {2784762000 7200 1 CEST}
- {2802906000 3600 0 CET}
- {2816211600 7200 1 CEST}
- {2834355600 3600 0 CET}
- {2847661200 7200 1 CEST}
- {2866410000 3600 0 CET}
- {2879110800 7200 1 CEST}
- {2897859600 3600 0 CET}
- {2910560400 7200 1 CEST}
- {2929309200 3600 0 CET}
- {2942010000 7200 1 CEST}
- {2960758800 3600 0 CET}
- {2974064400 7200 1 CEST}
- {2992208400 3600 0 CET}
- {3005514000 7200 1 CEST}
- {3023658000 3600 0 CET}
- {3036963600 7200 1 CEST}
- {3055712400 3600 0 CET}
- {3068413200 7200 1 CEST}
- {3087162000 3600 0 CET}
- {3099862800 7200 1 CEST}
- {3118611600 3600 0 CET}
- {3131917200 7200 1 CEST}
- {3150061200 3600 0 CET}
- {3163366800 7200 1 CEST}
- {3181510800 3600 0 CET}
- {3194816400 7200 1 CEST}
- {3212960400 3600 0 CET}
- {3226266000 7200 1 CEST}
- {3245014800 3600 0 CET}
- {3257715600 7200 1 CEST}
- {3276464400 3600 0 CET}
- {3289165200 7200 1 CEST}
- {3307914000 3600 0 CET}
- {3321219600 7200 1 CEST}
- {3339363600 3600 0 CET}
- {3352669200 7200 1 CEST}
- {3370813200 3600 0 CET}
- {3384118800 7200 1 CEST}
- {3402867600 3600 0 CET}
- {3415568400 7200 1 CEST}
- {3434317200 3600 0 CET}
- {3447018000 7200 1 CEST}
- {3465766800 3600 0 CET}
- {3479072400 7200 1 CEST}
- {3497216400 3600 0 CET}
- {3510522000 7200 1 CEST}
- {3528666000 3600 0 CET}
- {3541971600 7200 1 CEST}
- {3560115600 3600 0 CET}
- {3573421200 7200 1 CEST}
- {3592170000 3600 0 CET}
- {3604870800 7200 1 CEST}
- {3623619600 3600 0 CET}
- {3636320400 7200 1 CEST}
- {3655069200 3600 0 CET}
- {3668374800 7200 1 CEST}
- {3686518800 3600 0 CET}
- {3699824400 7200 1 CEST}
- {3717968400 3600 0 CET}
- {3731274000 7200 1 CEST}
- {3750022800 3600 0 CET}
- {3762723600 7200 1 CEST}
- {3781472400 3600 0 CET}
- {3794173200 7200 1 CEST}
- {3812922000 3600 0 CET}
- {3825622800 7200 1 CEST}
- {3844371600 3600 0 CET}
- {3857677200 7200 1 CEST}
- {3875821200 3600 0 CET}
- {3889126800 7200 1 CEST}
- {3907270800 3600 0 CET}
- {3920576400 7200 1 CEST}
- {3939325200 3600 0 CET}
- {3952026000 7200 1 CEST}
- {3970774800 3600 0 CET}
- {3983475600 7200 1 CEST}
- {4002224400 3600 0 CET}
- {4015530000 7200 1 CEST}
- {4033674000 3600 0 CET}
- {4046979600 7200 1 CEST}
- {4065123600 3600 0 CET}
- {4078429200 7200 1 CEST}
- {4096573200 3600 0 CET}
+if {![info exists TZData(Europe/Berlin)]} {
+ LoadTimeZoneFile Europe/Berlin
}
+set TZData(:Europe/Copenhagen) $TZData(:Europe/Berlin)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Dublin b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Dublin
index 56afc93fb2..eb0d182f31 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Dublin
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Dublin
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Europe/Dublin) {
- {-9223372036854775808 -1500 0 LMT}
- {-2821649700 -1521 0 DMT}
+ {-9223372036854775808 -1521 0 LMT}
+ {-2821649679 -1521 0 DMT}
{-1691962479 2079 1 IST}
{-1680471279 0 0 GMT}
{-1664143200 3600 1 BST}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev
index 55015fac7b..ac5e50a61c 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kiev
@@ -1,251 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Kiev) {
- {-9223372036854775808 7324 0 LMT}
- {-2840148124 7324 0 KMT}
- {-1441159324 7200 0 EET}
- {-1247536800 10800 0 MSK}
- {-892522800 3600 0 CET}
- {-857257200 3600 0 CET}
- {-844556400 7200 1 CEST}
- {-828226800 3600 0 CET}
- {-825382800 10800 0 MSD}
- {354920400 14400 1 MSD}
- {370728000 10800 0 MSK}
- {386456400 14400 1 MSD}
- {402264000 10800 0 MSK}
- {417992400 14400 1 MSD}
- {433800000 10800 0 MSK}
- {449614800 14400 1 MSD}
- {465346800 10800 0 MSK}
- {481071600 14400 1 MSD}
- {496796400 10800 0 MSK}
- {512521200 14400 1 MSD}
- {528246000 10800 0 MSK}
- {543970800 14400 1 MSD}
- {559695600 10800 0 MSK}
- {575420400 14400 1 MSD}
- {591145200 10800 0 MSK}
- {606870000 14400 1 MSD}
- {622594800 10800 0 MSK}
- {638319600 14400 1 MSD}
- {646786800 10800 1 EEST}
- {686102400 7200 0 EET}
- {701820000 10800 1 EEST}
- {717541200 7200 0 EET}
- {733269600 10800 1 EEST}
- {748990800 7200 0 EET}
- {764719200 10800 1 EEST}
- {780440400 7200 0 EET}
- {788911200 7200 0 EET}
- {796179600 10800 1 EEST}
- {811904400 7200 0 EET}
- {828234000 10800 1 EEST}
- {846378000 7200 0 EET}
- {859683600 10800 1 EEST}
- {877827600 7200 0 EET}
- {891133200 10800 1 EEST}
- {909277200 7200 0 EET}
- {922582800 10800 1 EEST}
- {941331600 7200 0 EET}
- {954032400 10800 1 EEST}
- {972781200 7200 0 EET}
- {985482000 10800 1 EEST}
- {1004230800 7200 0 EET}
- {1017536400 10800 1 EEST}
- {1035680400 7200 0 EET}
- {1048986000 10800 1 EEST}
- {1067130000 7200 0 EET}
- {1080435600 10800 1 EEST}
- {1099184400 7200 0 EET}
- {1111885200 10800 1 EEST}
- {1130634000 7200 0 EET}
- {1143334800 10800 1 EEST}
- {1162083600 7200 0 EET}
- {1174784400 10800 1 EEST}
- {1193533200 7200 0 EET}
- {1206838800 10800 1 EEST}
- {1224982800 7200 0 EET}
- {1238288400 10800 1 EEST}
- {1256432400 7200 0 EET}
- {1269738000 10800 1 EEST}
- {1288486800 7200 0 EET}
- {1301187600 10800 1 EEST}
- {1319936400 7200 0 EET}
- {1332637200 10800 1 EEST}
- {1351386000 7200 0 EET}
- {1364691600 10800 1 EEST}
- {1382835600 7200 0 EET}
- {1396141200 10800 1 EEST}
- {1414285200 7200 0 EET}
- {1427590800 10800 1 EEST}
- {1445734800 7200 0 EET}
- {1459040400 10800 1 EEST}
- {1477789200 7200 0 EET}
- {1490490000 10800 1 EEST}
- {1509238800 7200 0 EET}
- {1521939600 10800 1 EEST}
- {1540688400 7200 0 EET}
- {1553994000 10800 1 EEST}
- {1572138000 7200 0 EET}
- {1585443600 10800 1 EEST}
- {1603587600 7200 0 EET}
- {1616893200 10800 1 EEST}
- {1635642000 7200 0 EET}
- {1648342800 10800 1 EEST}
- {1667091600 7200 0 EET}
- {1679792400 10800 1 EEST}
- {1698541200 7200 0 EET}
- {1711846800 10800 1 EEST}
- {1729990800 7200 0 EET}
- {1743296400 10800 1 EEST}
- {1761440400 7200 0 EET}
- {1774746000 10800 1 EEST}
- {1792890000 7200 0 EET}
- {1806195600 10800 1 EEST}
- {1824944400 7200 0 EET}
- {1837645200 10800 1 EEST}
- {1856394000 7200 0 EET}
- {1869094800 10800 1 EEST}
- {1887843600 7200 0 EET}
- {1901149200 10800 1 EEST}
- {1919293200 7200 0 EET}
- {1932598800 10800 1 EEST}
- {1950742800 7200 0 EET}
- {1964048400 10800 1 EEST}
- {1982797200 7200 0 EET}
- {1995498000 10800 1 EEST}
- {2014246800 7200 0 EET}
- {2026947600 10800 1 EEST}
- {2045696400 7200 0 EET}
- {2058397200 10800 1 EEST}
- {2077146000 7200 0 EET}
- {2090451600 10800 1 EEST}
- {2108595600 7200 0 EET}
- {2121901200 10800 1 EEST}
- {2140045200 7200 0 EET}
- {2153350800 10800 1 EEST}
- {2172099600 7200 0 EET}
- {2184800400 10800 1 EEST}
- {2203549200 7200 0 EET}
- {2216250000 10800 1 EEST}
- {2234998800 7200 0 EET}
- {2248304400 10800 1 EEST}
- {2266448400 7200 0 EET}
- {2279754000 10800 1 EEST}
- {2297898000 7200 0 EET}
- {2311203600 10800 1 EEST}
- {2329347600 7200 0 EET}
- {2342653200 10800 1 EEST}
- {2361402000 7200 0 EET}
- {2374102800 10800 1 EEST}
- {2392851600 7200 0 EET}
- {2405552400 10800 1 EEST}
- {2424301200 7200 0 EET}
- {2437606800 10800 1 EEST}
- {2455750800 7200 0 EET}
- {2469056400 10800 1 EEST}
- {2487200400 7200 0 EET}
- {2500506000 10800 1 EEST}
- {2519254800 7200 0 EET}
- {2531955600 10800 1 EEST}
- {2550704400 7200 0 EET}
- {2563405200 10800 1 EEST}
- {2582154000 7200 0 EET}
- {2595459600 10800 1 EEST}
- {2613603600 7200 0 EET}
- {2626909200 10800 1 EEST}
- {2645053200 7200 0 EET}
- {2658358800 10800 1 EEST}
- {2676502800 7200 0 EET}
- {2689808400 10800 1 EEST}
- {2708557200 7200 0 EET}
- {2721258000 10800 1 EEST}
- {2740006800 7200 0 EET}
- {2752707600 10800 1 EEST}
- {2771456400 7200 0 EET}
- {2784762000 10800 1 EEST}
- {2802906000 7200 0 EET}
- {2816211600 10800 1 EEST}
- {2834355600 7200 0 EET}
- {2847661200 10800 1 EEST}
- {2866410000 7200 0 EET}
- {2879110800 10800 1 EEST}
- {2897859600 7200 0 EET}
- {2910560400 10800 1 EEST}
- {2929309200 7200 0 EET}
- {2942010000 10800 1 EEST}
- {2960758800 7200 0 EET}
- {2974064400 10800 1 EEST}
- {2992208400 7200 0 EET}
- {3005514000 10800 1 EEST}
- {3023658000 7200 0 EET}
- {3036963600 10800 1 EEST}
- {3055712400 7200 0 EET}
- {3068413200 10800 1 EEST}
- {3087162000 7200 0 EET}
- {3099862800 10800 1 EEST}
- {3118611600 7200 0 EET}
- {3131917200 10800 1 EEST}
- {3150061200 7200 0 EET}
- {3163366800 10800 1 EEST}
- {3181510800 7200 0 EET}
- {3194816400 10800 1 EEST}
- {3212960400 7200 0 EET}
- {3226266000 10800 1 EEST}
- {3245014800 7200 0 EET}
- {3257715600 10800 1 EEST}
- {3276464400 7200 0 EET}
- {3289165200 10800 1 EEST}
- {3307914000 7200 0 EET}
- {3321219600 10800 1 EEST}
- {3339363600 7200 0 EET}
- {3352669200 10800 1 EEST}
- {3370813200 7200 0 EET}
- {3384118800 10800 1 EEST}
- {3402867600 7200 0 EET}
- {3415568400 10800 1 EEST}
- {3434317200 7200 0 EET}
- {3447018000 10800 1 EEST}
- {3465766800 7200 0 EET}
- {3479072400 10800 1 EEST}
- {3497216400 7200 0 EET}
- {3510522000 10800 1 EEST}
- {3528666000 7200 0 EET}
- {3541971600 10800 1 EEST}
- {3560115600 7200 0 EET}
- {3573421200 10800 1 EEST}
- {3592170000 7200 0 EET}
- {3604870800 10800 1 EEST}
- {3623619600 7200 0 EET}
- {3636320400 10800 1 EEST}
- {3655069200 7200 0 EET}
- {3668374800 10800 1 EEST}
- {3686518800 7200 0 EET}
- {3699824400 10800 1 EEST}
- {3717968400 7200 0 EET}
- {3731274000 10800 1 EEST}
- {3750022800 7200 0 EET}
- {3762723600 10800 1 EEST}
- {3781472400 7200 0 EET}
- {3794173200 10800 1 EEST}
- {3812922000 7200 0 EET}
- {3825622800 10800 1 EEST}
- {3844371600 7200 0 EET}
- {3857677200 10800 1 EEST}
- {3875821200 7200 0 EET}
- {3889126800 10800 1 EEST}
- {3907270800 7200 0 EET}
- {3920576400 10800 1 EEST}
- {3939325200 7200 0 EET}
- {3952026000 10800 1 EEST}
- {3970774800 7200 0 EET}
- {3983475600 10800 1 EEST}
- {4002224400 7200 0 EET}
- {4015530000 10800 1 EEST}
- {4033674000 7200 0 EET}
- {4046979600 10800 1 EEST}
- {4065123600 7200 0 EET}
- {4078429200 10800 1 EEST}
- {4096573200 7200 0 EET}
+if {![info exists TZData(Europe/Kyiv)]} {
+ LoadTimeZoneFile Europe/Kyiv
}
+set TZData(:Europe/Kiev) $TZData(:Europe/Kyiv)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kyiv b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kyiv
new file mode 100644
index 0000000000..c7c0e2f925
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Kyiv
@@ -0,0 +1,251 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:Europe/Kyiv) {
+ {-9223372036854775808 7324 0 LMT}
+ {-2840148124 7324 0 KMT}
+ {-1441159324 7200 0 EET}
+ {-1247536800 10800 0 MSK}
+ {-892522800 3600 0 CET}
+ {-857257200 3600 0 CET}
+ {-844556400 7200 1 CEST}
+ {-828226800 3600 0 CET}
+ {-825382800 10800 0 MSD}
+ {354920400 14400 1 MSD}
+ {370728000 10800 0 MSK}
+ {386456400 14400 1 MSD}
+ {402264000 10800 0 MSK}
+ {417992400 14400 1 MSD}
+ {433800000 10800 0 MSK}
+ {449614800 14400 1 MSD}
+ {465346800 10800 0 MSK}
+ {481071600 14400 1 MSD}
+ {496796400 10800 0 MSK}
+ {512521200 14400 1 MSD}
+ {528246000 10800 0 MSK}
+ {543970800 14400 1 MSD}
+ {559695600 10800 0 MSK}
+ {575420400 14400 1 MSD}
+ {591145200 10800 0 MSK}
+ {606870000 14400 1 MSD}
+ {622594800 10800 0 MSK}
+ {638319600 14400 1 MSD}
+ {646786800 10800 1 EEST}
+ {686102400 7200 0 EET}
+ {701827200 10800 1 EEST}
+ {717552000 7200 0 EET}
+ {733276800 10800 1 EEST}
+ {749001600 7200 0 EET}
+ {764726400 10800 1 EEST}
+ {780451200 7200 0 EET}
+ {796176000 10800 1 EEST}
+ {811900800 7200 0 EET}
+ {828230400 10800 1 EEST}
+ {831938400 10800 0 EEST}
+ {846378000 7200 0 EET}
+ {859683600 10800 1 EEST}
+ {877827600 7200 0 EET}
+ {891133200 10800 1 EEST}
+ {909277200 7200 0 EET}
+ {922582800 10800 1 EEST}
+ {941331600 7200 0 EET}
+ {954032400 10800 1 EEST}
+ {972781200 7200 0 EET}
+ {985482000 10800 1 EEST}
+ {1004230800 7200 0 EET}
+ {1017536400 10800 1 EEST}
+ {1035680400 7200 0 EET}
+ {1048986000 10800 1 EEST}
+ {1067130000 7200 0 EET}
+ {1080435600 10800 1 EEST}
+ {1099184400 7200 0 EET}
+ {1111885200 10800 1 EEST}
+ {1130634000 7200 0 EET}
+ {1143334800 10800 1 EEST}
+ {1162083600 7200 0 EET}
+ {1174784400 10800 1 EEST}
+ {1193533200 7200 0 EET}
+ {1206838800 10800 1 EEST}
+ {1224982800 7200 0 EET}
+ {1238288400 10800 1 EEST}
+ {1256432400 7200 0 EET}
+ {1269738000 10800 1 EEST}
+ {1288486800 7200 0 EET}
+ {1301187600 10800 1 EEST}
+ {1319936400 7200 0 EET}
+ {1332637200 10800 1 EEST}
+ {1351386000 7200 0 EET}
+ {1364691600 10800 1 EEST}
+ {1382835600 7200 0 EET}
+ {1396141200 10800 1 EEST}
+ {1414285200 7200 0 EET}
+ {1427590800 10800 1 EEST}
+ {1445734800 7200 0 EET}
+ {1459040400 10800 1 EEST}
+ {1477789200 7200 0 EET}
+ {1490490000 10800 1 EEST}
+ {1509238800 7200 0 EET}
+ {1521939600 10800 1 EEST}
+ {1540688400 7200 0 EET}
+ {1553994000 10800 1 EEST}
+ {1572138000 7200 0 EET}
+ {1585443600 10800 1 EEST}
+ {1603587600 7200 0 EET}
+ {1616893200 10800 1 EEST}
+ {1635642000 7200 0 EET}
+ {1648342800 10800 1 EEST}
+ {1667091600 7200 0 EET}
+ {1679792400 10800 1 EEST}
+ {1698541200 7200 0 EET}
+ {1711846800 10800 1 EEST}
+ {1729990800 7200 0 EET}
+ {1743296400 10800 1 EEST}
+ {1761440400 7200 0 EET}
+ {1774746000 10800 1 EEST}
+ {1792890000 7200 0 EET}
+ {1806195600 10800 1 EEST}
+ {1824944400 7200 0 EET}
+ {1837645200 10800 1 EEST}
+ {1856394000 7200 0 EET}
+ {1869094800 10800 1 EEST}
+ {1887843600 7200 0 EET}
+ {1901149200 10800 1 EEST}
+ {1919293200 7200 0 EET}
+ {1932598800 10800 1 EEST}
+ {1950742800 7200 0 EET}
+ {1964048400 10800 1 EEST}
+ {1982797200 7200 0 EET}
+ {1995498000 10800 1 EEST}
+ {2014246800 7200 0 EET}
+ {2026947600 10800 1 EEST}
+ {2045696400 7200 0 EET}
+ {2058397200 10800 1 EEST}
+ {2077146000 7200 0 EET}
+ {2090451600 10800 1 EEST}
+ {2108595600 7200 0 EET}
+ {2121901200 10800 1 EEST}
+ {2140045200 7200 0 EET}
+ {2153350800 10800 1 EEST}
+ {2172099600 7200 0 EET}
+ {2184800400 10800 1 EEST}
+ {2203549200 7200 0 EET}
+ {2216250000 10800 1 EEST}
+ {2234998800 7200 0 EET}
+ {2248304400 10800 1 EEST}
+ {2266448400 7200 0 EET}
+ {2279754000 10800 1 EEST}
+ {2297898000 7200 0 EET}
+ {2311203600 10800 1 EEST}
+ {2329347600 7200 0 EET}
+ {2342653200 10800 1 EEST}
+ {2361402000 7200 0 EET}
+ {2374102800 10800 1 EEST}
+ {2392851600 7200 0 EET}
+ {2405552400 10800 1 EEST}
+ {2424301200 7200 0 EET}
+ {2437606800 10800 1 EEST}
+ {2455750800 7200 0 EET}
+ {2469056400 10800 1 EEST}
+ {2487200400 7200 0 EET}
+ {2500506000 10800 1 EEST}
+ {2519254800 7200 0 EET}
+ {2531955600 10800 1 EEST}
+ {2550704400 7200 0 EET}
+ {2563405200 10800 1 EEST}
+ {2582154000 7200 0 EET}
+ {2595459600 10800 1 EEST}
+ {2613603600 7200 0 EET}
+ {2626909200 10800 1 EEST}
+ {2645053200 7200 0 EET}
+ {2658358800 10800 1 EEST}
+ {2676502800 7200 0 EET}
+ {2689808400 10800 1 EEST}
+ {2708557200 7200 0 EET}
+ {2721258000 10800 1 EEST}
+ {2740006800 7200 0 EET}
+ {2752707600 10800 1 EEST}
+ {2771456400 7200 0 EET}
+ {2784762000 10800 1 EEST}
+ {2802906000 7200 0 EET}
+ {2816211600 10800 1 EEST}
+ {2834355600 7200 0 EET}
+ {2847661200 10800 1 EEST}
+ {2866410000 7200 0 EET}
+ {2879110800 10800 1 EEST}
+ {2897859600 7200 0 EET}
+ {2910560400 10800 1 EEST}
+ {2929309200 7200 0 EET}
+ {2942010000 10800 1 EEST}
+ {2960758800 7200 0 EET}
+ {2974064400 10800 1 EEST}
+ {2992208400 7200 0 EET}
+ {3005514000 10800 1 EEST}
+ {3023658000 7200 0 EET}
+ {3036963600 10800 1 EEST}
+ {3055712400 7200 0 EET}
+ {3068413200 10800 1 EEST}
+ {3087162000 7200 0 EET}
+ {3099862800 10800 1 EEST}
+ {3118611600 7200 0 EET}
+ {3131917200 10800 1 EEST}
+ {3150061200 7200 0 EET}
+ {3163366800 10800 1 EEST}
+ {3181510800 7200 0 EET}
+ {3194816400 10800 1 EEST}
+ {3212960400 7200 0 EET}
+ {3226266000 10800 1 EEST}
+ {3245014800 7200 0 EET}
+ {3257715600 10800 1 EEST}
+ {3276464400 7200 0 EET}
+ {3289165200 10800 1 EEST}
+ {3307914000 7200 0 EET}
+ {3321219600 10800 1 EEST}
+ {3339363600 7200 0 EET}
+ {3352669200 10800 1 EEST}
+ {3370813200 7200 0 EET}
+ {3384118800 10800 1 EEST}
+ {3402867600 7200 0 EET}
+ {3415568400 10800 1 EEST}
+ {3434317200 7200 0 EET}
+ {3447018000 10800 1 EEST}
+ {3465766800 7200 0 EET}
+ {3479072400 10800 1 EEST}
+ {3497216400 7200 0 EET}
+ {3510522000 10800 1 EEST}
+ {3528666000 7200 0 EET}
+ {3541971600 10800 1 EEST}
+ {3560115600 7200 0 EET}
+ {3573421200 10800 1 EEST}
+ {3592170000 7200 0 EET}
+ {3604870800 10800 1 EEST}
+ {3623619600 7200 0 EET}
+ {3636320400 10800 1 EEST}
+ {3655069200 7200 0 EET}
+ {3668374800 10800 1 EEST}
+ {3686518800 7200 0 EET}
+ {3699824400 10800 1 EEST}
+ {3717968400 7200 0 EET}
+ {3731274000 10800 1 EEST}
+ {3750022800 7200 0 EET}
+ {3762723600 10800 1 EEST}
+ {3781472400 7200 0 EET}
+ {3794173200 10800 1 EEST}
+ {3812922000 7200 0 EET}
+ {3825622800 10800 1 EEST}
+ {3844371600 7200 0 EET}
+ {3857677200 10800 1 EEST}
+ {3875821200 7200 0 EET}
+ {3889126800 10800 1 EEST}
+ {3907270800 7200 0 EET}
+ {3920576400 10800 1 EEST}
+ {3939325200 7200 0 EET}
+ {3952026000 10800 1 EEST}
+ {3970774800 7200 0 EET}
+ {3983475600 10800 1 EEST}
+ {4002224400 7200 0 EET}
+ {4015530000 10800 1 EEST}
+ {4033674000 7200 0 EET}
+ {4046979600 10800 1 EEST}
+ {4065123600 7200 0 EET}
+ {4078429200 10800 1 EEST}
+ {4096573200 7200 0 EET}
+}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Luxembourg b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Luxembourg
index 2a88c4b0d8..da3ebe294d 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Luxembourg
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Luxembourg
@@ -1,313 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Luxembourg) {
- {-9223372036854775808 1476 0 LMT}
- {-2069713476 3600 0 CET}
- {-1692496800 7200 1 CEST}
- {-1680483600 3600 0 CET}
- {-1662343200 7200 1 CEST}
- {-1650157200 3600 0 CET}
- {-1632006000 7200 1 CEST}
- {-1618700400 3600 0 CET}
- {-1612659600 0 0 WET}
- {-1604278800 3600 1 WEST}
- {-1585519200 0 0 WET}
- {-1574038800 3600 1 WEST}
- {-1552258800 0 0 WET}
- {-1539997200 3600 1 WEST}
- {-1520550000 0 0 WET}
- {-1507510800 3600 1 WEST}
- {-1490572800 0 0 WET}
- {-1473642000 3600 1 WEST}
- {-1459119600 0 0 WET}
- {-1444006800 3600 1 WEST}
- {-1427673600 0 0 WET}
- {-1411866000 3600 1 WEST}
- {-1396224000 0 0 WET}
- {-1379293200 3600 1 WEST}
- {-1364774400 0 0 WET}
- {-1348448400 3600 1 WEST}
- {-1333324800 0 0 WET}
- {-1316394000 3600 1 WEST}
- {-1301270400 0 0 WET}
- {-1284339600 3600 1 WEST}
- {-1269813600 0 0 WET}
- {-1253484000 3600 1 WEST}
- {-1238364000 0 0 WET}
- {-1221429600 3600 1 WEST}
- {-1206914400 0 0 WET}
- {-1191189600 3600 1 WEST}
- {-1175464800 0 0 WET}
- {-1160344800 3600 1 WEST}
- {-1143410400 0 0 WET}
- {-1127685600 3600 1 WEST}
- {-1111960800 0 0 WET}
- {-1096840800 3600 1 WEST}
- {-1080511200 0 0 WET}
- {-1063576800 3600 1 WEST}
- {-1049061600 0 0 WET}
- {-1033336800 3600 1 WEST}
- {-1017612000 0 0 WET}
- {-1002492000 3600 1 WEST}
- {-986162400 0 0 WET}
- {-969228000 3600 1 WEST}
- {-950479200 0 0 WET}
- {-942012000 3600 1 WEST}
- {-935186400 7200 0 WEST}
- {-857257200 3600 0 WET}
- {-844556400 7200 1 WEST}
- {-828226800 3600 0 WET}
- {-812502000 7200 1 WEST}
- {-797983200 3600 0 CET}
- {-781052400 7200 1 CEST}
- {-766623600 3600 0 CET}
- {-745455600 7200 1 CEST}
- {-733273200 3600 0 CET}
- {220921200 3600 0 CET}
- {228877200 7200 1 CEST}
- {243997200 3600 0 CET}
- {260326800 7200 1 CEST}
- {276051600 3600 0 CET}
- {291776400 7200 1 CEST}
- {307501200 3600 0 CET}
- {323830800 7200 1 CEST}
- {338950800 3600 0 CET}
- {354675600 7200 1 CEST}
- {370400400 3600 0 CET}
- {386125200 7200 1 CEST}
- {401850000 3600 0 CET}
- {417574800 7200 1 CEST}
- {433299600 3600 0 CET}
- {449024400 7200 1 CEST}
- {465354000 3600 0 CET}
- {481078800 7200 1 CEST}
- {496803600 3600 0 CET}
- {512528400 7200 1 CEST}
- {528253200 3600 0 CET}
- {543978000 7200 1 CEST}
- {559702800 3600 0 CET}
- {575427600 7200 1 CEST}
- {591152400 3600 0 CET}
- {606877200 7200 1 CEST}
- {622602000 3600 0 CET}
- {638326800 7200 1 CEST}
- {654656400 3600 0 CET}
- {670381200 7200 1 CEST}
- {686106000 3600 0 CET}
- {701830800 7200 1 CEST}
- {717555600 3600 0 CET}
- {733280400 7200 1 CEST}
- {749005200 3600 0 CET}
- {764730000 7200 1 CEST}
- {780454800 3600 0 CET}
- {796179600 7200 1 CEST}
- {811904400 3600 0 CET}
- {828234000 7200 1 CEST}
- {846378000 3600 0 CET}
- {859683600 7200 1 CEST}
- {877827600 3600 0 CET}
- {891133200 7200 1 CEST}
- {909277200 3600 0 CET}
- {922582800 7200 1 CEST}
- {941331600 3600 0 CET}
- {954032400 7200 1 CEST}
- {972781200 3600 0 CET}
- {985482000 7200 1 CEST}
- {1004230800 3600 0 CET}
- {1017536400 7200 1 CEST}
- {1035680400 3600 0 CET}
- {1048986000 7200 1 CEST}
- {1067130000 3600 0 CET}
- {1080435600 7200 1 CEST}
- {1099184400 3600 0 CET}
- {1111885200 7200 1 CEST}
- {1130634000 3600 0 CET}
- {1143334800 7200 1 CEST}
- {1162083600 3600 0 CET}
- {1174784400 7200 1 CEST}
- {1193533200 3600 0 CET}
- {1206838800 7200 1 CEST}
- {1224982800 3600 0 CET}
- {1238288400 7200 1 CEST}
- {1256432400 3600 0 CET}
- {1269738000 7200 1 CEST}
- {1288486800 3600 0 CET}
- {1301187600 7200 1 CEST}
- {1319936400 3600 0 CET}
- {1332637200 7200 1 CEST}
- {1351386000 3600 0 CET}
- {1364691600 7200 1 CEST}
- {1382835600 3600 0 CET}
- {1396141200 7200 1 CEST}
- {1414285200 3600 0 CET}
- {1427590800 7200 1 CEST}
- {1445734800 3600 0 CET}
- {1459040400 7200 1 CEST}
- {1477789200 3600 0 CET}
- {1490490000 7200 1 CEST}
- {1509238800 3600 0 CET}
- {1521939600 7200 1 CEST}
- {1540688400 3600 0 CET}
- {1553994000 7200 1 CEST}
- {1572138000 3600 0 CET}
- {1585443600 7200 1 CEST}
- {1603587600 3600 0 CET}
- {1616893200 7200 1 CEST}
- {1635642000 3600 0 CET}
- {1648342800 7200 1 CEST}
- {1667091600 3600 0 CET}
- {1679792400 7200 1 CEST}
- {1698541200 3600 0 CET}
- {1711846800 7200 1 CEST}
- {1729990800 3600 0 CET}
- {1743296400 7200 1 CEST}
- {1761440400 3600 0 CET}
- {1774746000 7200 1 CEST}
- {1792890000 3600 0 CET}
- {1806195600 7200 1 CEST}
- {1824944400 3600 0 CET}
- {1837645200 7200 1 CEST}
- {1856394000 3600 0 CET}
- {1869094800 7200 1 CEST}
- {1887843600 3600 0 CET}
- {1901149200 7200 1 CEST}
- {1919293200 3600 0 CET}
- {1932598800 7200 1 CEST}
- {1950742800 3600 0 CET}
- {1964048400 7200 1 CEST}
- {1982797200 3600 0 CET}
- {1995498000 7200 1 CEST}
- {2014246800 3600 0 CET}
- {2026947600 7200 1 CEST}
- {2045696400 3600 0 CET}
- {2058397200 7200 1 CEST}
- {2077146000 3600 0 CET}
- {2090451600 7200 1 CEST}
- {2108595600 3600 0 CET}
- {2121901200 7200 1 CEST}
- {2140045200 3600 0 CET}
- {2153350800 7200 1 CEST}
- {2172099600 3600 0 CET}
- {2184800400 7200 1 CEST}
- {2203549200 3600 0 CET}
- {2216250000 7200 1 CEST}
- {2234998800 3600 0 CET}
- {2248304400 7200 1 CEST}
- {2266448400 3600 0 CET}
- {2279754000 7200 1 CEST}
- {2297898000 3600 0 CET}
- {2311203600 7200 1 CEST}
- {2329347600 3600 0 CET}
- {2342653200 7200 1 CEST}
- {2361402000 3600 0 CET}
- {2374102800 7200 1 CEST}
- {2392851600 3600 0 CET}
- {2405552400 7200 1 CEST}
- {2424301200 3600 0 CET}
- {2437606800 7200 1 CEST}
- {2455750800 3600 0 CET}
- {2469056400 7200 1 CEST}
- {2487200400 3600 0 CET}
- {2500506000 7200 1 CEST}
- {2519254800 3600 0 CET}
- {2531955600 7200 1 CEST}
- {2550704400 3600 0 CET}
- {2563405200 7200 1 CEST}
- {2582154000 3600 0 CET}
- {2595459600 7200 1 CEST}
- {2613603600 3600 0 CET}
- {2626909200 7200 1 CEST}
- {2645053200 3600 0 CET}
- {2658358800 7200 1 CEST}
- {2676502800 3600 0 CET}
- {2689808400 7200 1 CEST}
- {2708557200 3600 0 CET}
- {2721258000 7200 1 CEST}
- {2740006800 3600 0 CET}
- {2752707600 7200 1 CEST}
- {2771456400 3600 0 CET}
- {2784762000 7200 1 CEST}
- {2802906000 3600 0 CET}
- {2816211600 7200 1 CEST}
- {2834355600 3600 0 CET}
- {2847661200 7200 1 CEST}
- {2866410000 3600 0 CET}
- {2879110800 7200 1 CEST}
- {2897859600 3600 0 CET}
- {2910560400 7200 1 CEST}
- {2929309200 3600 0 CET}
- {2942010000 7200 1 CEST}
- {2960758800 3600 0 CET}
- {2974064400 7200 1 CEST}
- {2992208400 3600 0 CET}
- {3005514000 7200 1 CEST}
- {3023658000 3600 0 CET}
- {3036963600 7200 1 CEST}
- {3055712400 3600 0 CET}
- {3068413200 7200 1 CEST}
- {3087162000 3600 0 CET}
- {3099862800 7200 1 CEST}
- {3118611600 3600 0 CET}
- {3131917200 7200 1 CEST}
- {3150061200 3600 0 CET}
- {3163366800 7200 1 CEST}
- {3181510800 3600 0 CET}
- {3194816400 7200 1 CEST}
- {3212960400 3600 0 CET}
- {3226266000 7200 1 CEST}
- {3245014800 3600 0 CET}
- {3257715600 7200 1 CEST}
- {3276464400 3600 0 CET}
- {3289165200 7200 1 CEST}
- {3307914000 3600 0 CET}
- {3321219600 7200 1 CEST}
- {3339363600 3600 0 CET}
- {3352669200 7200 1 CEST}
- {3370813200 3600 0 CET}
- {3384118800 7200 1 CEST}
- {3402867600 3600 0 CET}
- {3415568400 7200 1 CEST}
- {3434317200 3600 0 CET}
- {3447018000 7200 1 CEST}
- {3465766800 3600 0 CET}
- {3479072400 7200 1 CEST}
- {3497216400 3600 0 CET}
- {3510522000 7200 1 CEST}
- {3528666000 3600 0 CET}
- {3541971600 7200 1 CEST}
- {3560115600 3600 0 CET}
- {3573421200 7200 1 CEST}
- {3592170000 3600 0 CET}
- {3604870800 7200 1 CEST}
- {3623619600 3600 0 CET}
- {3636320400 7200 1 CEST}
- {3655069200 3600 0 CET}
- {3668374800 7200 1 CEST}
- {3686518800 3600 0 CET}
- {3699824400 7200 1 CEST}
- {3717968400 3600 0 CET}
- {3731274000 7200 1 CEST}
- {3750022800 3600 0 CET}
- {3762723600 7200 1 CEST}
- {3781472400 3600 0 CET}
- {3794173200 7200 1 CEST}
- {3812922000 3600 0 CET}
- {3825622800 7200 1 CEST}
- {3844371600 3600 0 CET}
- {3857677200 7200 1 CEST}
- {3875821200 3600 0 CET}
- {3889126800 7200 1 CEST}
- {3907270800 3600 0 CET}
- {3920576400 7200 1 CEST}
- {3939325200 3600 0 CET}
- {3952026000 7200 1 CEST}
- {3970774800 3600 0 CET}
- {3983475600 7200 1 CEST}
- {4002224400 3600 0 CET}
- {4015530000 7200 1 CEST}
- {4033674000 3600 0 CET}
- {4046979600 7200 1 CEST}
- {4065123600 3600 0 CET}
- {4078429200 7200 1 CEST}
- {4096573200 3600 0 CET}
+if {![info exists TZData(Europe/Brussels)]} {
+ LoadTimeZoneFile Europe/Brussels
}
+set TZData(:Europe/Luxembourg) $TZData(:Europe/Brussels)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Monaco b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Monaco
index 7428b2ffee..54f9d27708 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Monaco
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Monaco
@@ -1,315 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Monaco) {
- {-9223372036854775808 1772 0 LMT}
- {-2448318572 561 0 PMT}
- {-1854403761 0 0 WET}
- {-1689814800 3600 1 WEST}
- {-1680397200 0 0 WET}
- {-1665363600 3600 1 WEST}
- {-1648342800 0 0 WET}
- {-1635123600 3600 1 WEST}
- {-1616893200 0 0 WET}
- {-1604278800 3600 1 WEST}
- {-1585443600 0 0 WET}
- {-1574038800 3600 1 WEST}
- {-1552266000 0 0 WET}
- {-1539997200 3600 1 WEST}
- {-1520557200 0 0 WET}
- {-1507510800 3600 1 WEST}
- {-1490576400 0 0 WET}
- {-1470618000 3600 1 WEST}
- {-1459126800 0 0 WET}
- {-1444006800 3600 1 WEST}
- {-1427677200 0 0 WET}
- {-1411952400 3600 1 WEST}
- {-1396227600 0 0 WET}
- {-1379293200 3600 1 WEST}
- {-1364778000 0 0 WET}
- {-1348448400 3600 1 WEST}
- {-1333328400 0 0 WET}
- {-1316394000 3600 1 WEST}
- {-1301274000 0 0 WET}
- {-1284339600 3600 1 WEST}
- {-1269824400 0 0 WET}
- {-1253494800 3600 1 WEST}
- {-1238374800 0 0 WET}
- {-1221440400 3600 1 WEST}
- {-1206925200 0 0 WET}
- {-1191200400 3600 1 WEST}
- {-1175475600 0 0 WET}
- {-1160355600 3600 1 WEST}
- {-1143421200 0 0 WET}
- {-1127696400 3600 1 WEST}
- {-1111971600 0 0 WET}
- {-1096851600 3600 1 WEST}
- {-1080522000 0 0 WET}
- {-1063587600 3600 1 WEST}
- {-1049072400 0 0 WET}
- {-1033347600 3600 1 WEST}
- {-1017622800 0 0 WET}
- {-1002502800 3600 1 WEST}
- {-986173200 0 0 WET}
- {-969238800 3600 1 WEST}
- {-950490000 0 0 WET}
- {-942012000 3600 1 WEST}
- {-904438800 7200 1 WEMT}
- {-891136800 3600 1 WEST}
- {-877827600 7200 1 WEMT}
- {-857257200 3600 1 WEST}
- {-844556400 7200 1 WEMT}
- {-828226800 3600 1 WEST}
- {-812502000 7200 1 WEMT}
- {-796266000 3600 1 WEST}
- {-781052400 7200 1 WEMT}
- {-766616400 3600 0 CET}
- {196819200 7200 1 CEST}
- {212540400 3600 0 CET}
- {220921200 3600 0 CET}
- {228877200 7200 1 CEST}
- {243997200 3600 0 CET}
- {260326800 7200 1 CEST}
- {276051600 3600 0 CET}
- {291776400 7200 1 CEST}
- {307501200 3600 0 CET}
- {323830800 7200 1 CEST}
- {338950800 3600 0 CET}
- {354675600 7200 1 CEST}
- {370400400 3600 0 CET}
- {386125200 7200 1 CEST}
- {401850000 3600 0 CET}
- {417574800 7200 1 CEST}
- {433299600 3600 0 CET}
- {449024400 7200 1 CEST}
- {465354000 3600 0 CET}
- {481078800 7200 1 CEST}
- {496803600 3600 0 CET}
- {512528400 7200 1 CEST}
- {528253200 3600 0 CET}
- {543978000 7200 1 CEST}
- {559702800 3600 0 CET}
- {575427600 7200 1 CEST}
- {591152400 3600 0 CET}
- {606877200 7200 1 CEST}
- {622602000 3600 0 CET}
- {638326800 7200 1 CEST}
- {654656400 3600 0 CET}
- {670381200 7200 1 CEST}
- {686106000 3600 0 CET}
- {701830800 7200 1 CEST}
- {717555600 3600 0 CET}
- {733280400 7200 1 CEST}
- {749005200 3600 0 CET}
- {764730000 7200 1 CEST}
- {780454800 3600 0 CET}
- {796179600 7200 1 CEST}
- {811904400 3600 0 CET}
- {828234000 7200 1 CEST}
- {846378000 3600 0 CET}
- {859683600 7200 1 CEST}
- {877827600 3600 0 CET}
- {891133200 7200 1 CEST}
- {909277200 3600 0 CET}
- {922582800 7200 1 CEST}
- {941331600 3600 0 CET}
- {954032400 7200 1 CEST}
- {972781200 3600 0 CET}
- {985482000 7200 1 CEST}
- {1004230800 3600 0 CET}
- {1017536400 7200 1 CEST}
- {1035680400 3600 0 CET}
- {1048986000 7200 1 CEST}
- {1067130000 3600 0 CET}
- {1080435600 7200 1 CEST}
- {1099184400 3600 0 CET}
- {1111885200 7200 1 CEST}
- {1130634000 3600 0 CET}
- {1143334800 7200 1 CEST}
- {1162083600 3600 0 CET}
- {1174784400 7200 1 CEST}
- {1193533200 3600 0 CET}
- {1206838800 7200 1 CEST}
- {1224982800 3600 0 CET}
- {1238288400 7200 1 CEST}
- {1256432400 3600 0 CET}
- {1269738000 7200 1 CEST}
- {1288486800 3600 0 CET}
- {1301187600 7200 1 CEST}
- {1319936400 3600 0 CET}
- {1332637200 7200 1 CEST}
- {1351386000 3600 0 CET}
- {1364691600 7200 1 CEST}
- {1382835600 3600 0 CET}
- {1396141200 7200 1 CEST}
- {1414285200 3600 0 CET}
- {1427590800 7200 1 CEST}
- {1445734800 3600 0 CET}
- {1459040400 7200 1 CEST}
- {1477789200 3600 0 CET}
- {1490490000 7200 1 CEST}
- {1509238800 3600 0 CET}
- {1521939600 7200 1 CEST}
- {1540688400 3600 0 CET}
- {1553994000 7200 1 CEST}
- {1572138000 3600 0 CET}
- {1585443600 7200 1 CEST}
- {1603587600 3600 0 CET}
- {1616893200 7200 1 CEST}
- {1635642000 3600 0 CET}
- {1648342800 7200 1 CEST}
- {1667091600 3600 0 CET}
- {1679792400 7200 1 CEST}
- {1698541200 3600 0 CET}
- {1711846800 7200 1 CEST}
- {1729990800 3600 0 CET}
- {1743296400 7200 1 CEST}
- {1761440400 3600 0 CET}
- {1774746000 7200 1 CEST}
- {1792890000 3600 0 CET}
- {1806195600 7200 1 CEST}
- {1824944400 3600 0 CET}
- {1837645200 7200 1 CEST}
- {1856394000 3600 0 CET}
- {1869094800 7200 1 CEST}
- {1887843600 3600 0 CET}
- {1901149200 7200 1 CEST}
- {1919293200 3600 0 CET}
- {1932598800 7200 1 CEST}
- {1950742800 3600 0 CET}
- {1964048400 7200 1 CEST}
- {1982797200 3600 0 CET}
- {1995498000 7200 1 CEST}
- {2014246800 3600 0 CET}
- {2026947600 7200 1 CEST}
- {2045696400 3600 0 CET}
- {2058397200 7200 1 CEST}
- {2077146000 3600 0 CET}
- {2090451600 7200 1 CEST}
- {2108595600 3600 0 CET}
- {2121901200 7200 1 CEST}
- {2140045200 3600 0 CET}
- {2153350800 7200 1 CEST}
- {2172099600 3600 0 CET}
- {2184800400 7200 1 CEST}
- {2203549200 3600 0 CET}
- {2216250000 7200 1 CEST}
- {2234998800 3600 0 CET}
- {2248304400 7200 1 CEST}
- {2266448400 3600 0 CET}
- {2279754000 7200 1 CEST}
- {2297898000 3600 0 CET}
- {2311203600 7200 1 CEST}
- {2329347600 3600 0 CET}
- {2342653200 7200 1 CEST}
- {2361402000 3600 0 CET}
- {2374102800 7200 1 CEST}
- {2392851600 3600 0 CET}
- {2405552400 7200 1 CEST}
- {2424301200 3600 0 CET}
- {2437606800 7200 1 CEST}
- {2455750800 3600 0 CET}
- {2469056400 7200 1 CEST}
- {2487200400 3600 0 CET}
- {2500506000 7200 1 CEST}
- {2519254800 3600 0 CET}
- {2531955600 7200 1 CEST}
- {2550704400 3600 0 CET}
- {2563405200 7200 1 CEST}
- {2582154000 3600 0 CET}
- {2595459600 7200 1 CEST}
- {2613603600 3600 0 CET}
- {2626909200 7200 1 CEST}
- {2645053200 3600 0 CET}
- {2658358800 7200 1 CEST}
- {2676502800 3600 0 CET}
- {2689808400 7200 1 CEST}
- {2708557200 3600 0 CET}
- {2721258000 7200 1 CEST}
- {2740006800 3600 0 CET}
- {2752707600 7200 1 CEST}
- {2771456400 3600 0 CET}
- {2784762000 7200 1 CEST}
- {2802906000 3600 0 CET}
- {2816211600 7200 1 CEST}
- {2834355600 3600 0 CET}
- {2847661200 7200 1 CEST}
- {2866410000 3600 0 CET}
- {2879110800 7200 1 CEST}
- {2897859600 3600 0 CET}
- {2910560400 7200 1 CEST}
- {2929309200 3600 0 CET}
- {2942010000 7200 1 CEST}
- {2960758800 3600 0 CET}
- {2974064400 7200 1 CEST}
- {2992208400 3600 0 CET}
- {3005514000 7200 1 CEST}
- {3023658000 3600 0 CET}
- {3036963600 7200 1 CEST}
- {3055712400 3600 0 CET}
- {3068413200 7200 1 CEST}
- {3087162000 3600 0 CET}
- {3099862800 7200 1 CEST}
- {3118611600 3600 0 CET}
- {3131917200 7200 1 CEST}
- {3150061200 3600 0 CET}
- {3163366800 7200 1 CEST}
- {3181510800 3600 0 CET}
- {3194816400 7200 1 CEST}
- {3212960400 3600 0 CET}
- {3226266000 7200 1 CEST}
- {3245014800 3600 0 CET}
- {3257715600 7200 1 CEST}
- {3276464400 3600 0 CET}
- {3289165200 7200 1 CEST}
- {3307914000 3600 0 CET}
- {3321219600 7200 1 CEST}
- {3339363600 3600 0 CET}
- {3352669200 7200 1 CEST}
- {3370813200 3600 0 CET}
- {3384118800 7200 1 CEST}
- {3402867600 3600 0 CET}
- {3415568400 7200 1 CEST}
- {3434317200 3600 0 CET}
- {3447018000 7200 1 CEST}
- {3465766800 3600 0 CET}
- {3479072400 7200 1 CEST}
- {3497216400 3600 0 CET}
- {3510522000 7200 1 CEST}
- {3528666000 3600 0 CET}
- {3541971600 7200 1 CEST}
- {3560115600 3600 0 CET}
- {3573421200 7200 1 CEST}
- {3592170000 3600 0 CET}
- {3604870800 7200 1 CEST}
- {3623619600 3600 0 CET}
- {3636320400 7200 1 CEST}
- {3655069200 3600 0 CET}
- {3668374800 7200 1 CEST}
- {3686518800 3600 0 CET}
- {3699824400 7200 1 CEST}
- {3717968400 3600 0 CET}
- {3731274000 7200 1 CEST}
- {3750022800 3600 0 CET}
- {3762723600 7200 1 CEST}
- {3781472400 3600 0 CET}
- {3794173200 7200 1 CEST}
- {3812922000 3600 0 CET}
- {3825622800 7200 1 CEST}
- {3844371600 3600 0 CET}
- {3857677200 7200 1 CEST}
- {3875821200 3600 0 CET}
- {3889126800 7200 1 CEST}
- {3907270800 3600 0 CET}
- {3920576400 7200 1 CEST}
- {3939325200 3600 0 CET}
- {3952026000 7200 1 CEST}
- {3970774800 3600 0 CET}
- {3983475600 7200 1 CEST}
- {4002224400 3600 0 CET}
- {4015530000 7200 1 CEST}
- {4033674000 3600 0 CET}
- {4046979600 7200 1 CEST}
- {4065123600 3600 0 CET}
- {4078429200 7200 1 CEST}
- {4096573200 3600 0 CET}
+if {![info exists TZData(Europe/Paris)]} {
+ LoadTimeZoneFile Europe/Paris
}
+set TZData(:Europe/Monaco) $TZData(:Europe/Paris)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Oslo b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Oslo
index 6787c1eb01..d6d564dafc 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Oslo
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Oslo
@@ -1,271 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Oslo) {
- {-9223372036854775808 2580 0 LMT}
- {-2366757780 3600 0 CET}
- {-1691884800 7200 1 CEST}
- {-1680573600 3600 0 CET}
- {-927511200 7200 0 CEST}
- {-857257200 3600 0 CET}
- {-844556400 7200 1 CEST}
- {-828226800 3600 0 CET}
- {-812502000 7200 1 CEST}
- {-796777200 3600 0 CET}
- {-781052400 7200 0 CEST}
- {-765327600 3600 0 CET}
- {-340844400 7200 1 CEST}
- {-324514800 3600 0 CET}
- {-308790000 7200 1 CEST}
- {-293065200 3600 0 CET}
- {-277340400 7200 1 CEST}
- {-261615600 3600 0 CET}
- {-245890800 7200 1 CEST}
- {-230166000 3600 0 CET}
- {-214441200 7200 1 CEST}
- {-198716400 3600 0 CET}
- {-182991600 7200 1 CEST}
- {-166662000 3600 0 CET}
- {-147913200 7200 1 CEST}
- {-135212400 3600 0 CET}
- {315529200 3600 0 CET}
- {323830800 7200 1 CEST}
- {338950800 3600 0 CET}
- {354675600 7200 1 CEST}
- {370400400 3600 0 CET}
- {386125200 7200 1 CEST}
- {401850000 3600 0 CET}
- {417574800 7200 1 CEST}
- {433299600 3600 0 CET}
- {449024400 7200 1 CEST}
- {465354000 3600 0 CET}
- {481078800 7200 1 CEST}
- {496803600 3600 0 CET}
- {512528400 7200 1 CEST}
- {528253200 3600 0 CET}
- {543978000 7200 1 CEST}
- {559702800 3600 0 CET}
- {575427600 7200 1 CEST}
- {591152400 3600 0 CET}
- {606877200 7200 1 CEST}
- {622602000 3600 0 CET}
- {638326800 7200 1 CEST}
- {654656400 3600 0 CET}
- {670381200 7200 1 CEST}
- {686106000 3600 0 CET}
- {701830800 7200 1 CEST}
- {717555600 3600 0 CET}
- {733280400 7200 1 CEST}
- {749005200 3600 0 CET}
- {764730000 7200 1 CEST}
- {780454800 3600 0 CET}
- {796179600 7200 1 CEST}
- {811904400 3600 0 CET}
- {828234000 7200 1 CEST}
- {846378000 3600 0 CET}
- {859683600 7200 1 CEST}
- {877827600 3600 0 CET}
- {891133200 7200 1 CEST}
- {909277200 3600 0 CET}
- {922582800 7200 1 CEST}
- {941331600 3600 0 CET}
- {954032400 7200 1 CEST}
- {972781200 3600 0 CET}
- {985482000 7200 1 CEST}
- {1004230800 3600 0 CET}
- {1017536400 7200 1 CEST}
- {1035680400 3600 0 CET}
- {1048986000 7200 1 CEST}
- {1067130000 3600 0 CET}
- {1080435600 7200 1 CEST}
- {1099184400 3600 0 CET}
- {1111885200 7200 1 CEST}
- {1130634000 3600 0 CET}
- {1143334800 7200 1 CEST}
- {1162083600 3600 0 CET}
- {1174784400 7200 1 CEST}
- {1193533200 3600 0 CET}
- {1206838800 7200 1 CEST}
- {1224982800 3600 0 CET}
- {1238288400 7200 1 CEST}
- {1256432400 3600 0 CET}
- {1269738000 7200 1 CEST}
- {1288486800 3600 0 CET}
- {1301187600 7200 1 CEST}
- {1319936400 3600 0 CET}
- {1332637200 7200 1 CEST}
- {1351386000 3600 0 CET}
- {1364691600 7200 1 CEST}
- {1382835600 3600 0 CET}
- {1396141200 7200 1 CEST}
- {1414285200 3600 0 CET}
- {1427590800 7200 1 CEST}
- {1445734800 3600 0 CET}
- {1459040400 7200 1 CEST}
- {1477789200 3600 0 CET}
- {1490490000 7200 1 CEST}
- {1509238800 3600 0 CET}
- {1521939600 7200 1 CEST}
- {1540688400 3600 0 CET}
- {1553994000 7200 1 CEST}
- {1572138000 3600 0 CET}
- {1585443600 7200 1 CEST}
- {1603587600 3600 0 CET}
- {1616893200 7200 1 CEST}
- {1635642000 3600 0 CET}
- {1648342800 7200 1 CEST}
- {1667091600 3600 0 CET}
- {1679792400 7200 1 CEST}
- {1698541200 3600 0 CET}
- {1711846800 7200 1 CEST}
- {1729990800 3600 0 CET}
- {1743296400 7200 1 CEST}
- {1761440400 3600 0 CET}
- {1774746000 7200 1 CEST}
- {1792890000 3600 0 CET}
- {1806195600 7200 1 CEST}
- {1824944400 3600 0 CET}
- {1837645200 7200 1 CEST}
- {1856394000 3600 0 CET}
- {1869094800 7200 1 CEST}
- {1887843600 3600 0 CET}
- {1901149200 7200 1 CEST}
- {1919293200 3600 0 CET}
- {1932598800 7200 1 CEST}
- {1950742800 3600 0 CET}
- {1964048400 7200 1 CEST}
- {1982797200 3600 0 CET}
- {1995498000 7200 1 CEST}
- {2014246800 3600 0 CET}
- {2026947600 7200 1 CEST}
- {2045696400 3600 0 CET}
- {2058397200 7200 1 CEST}
- {2077146000 3600 0 CET}
- {2090451600 7200 1 CEST}
- {2108595600 3600 0 CET}
- {2121901200 7200 1 CEST}
- {2140045200 3600 0 CET}
- {2153350800 7200 1 CEST}
- {2172099600 3600 0 CET}
- {2184800400 7200 1 CEST}
- {2203549200 3600 0 CET}
- {2216250000 7200 1 CEST}
- {2234998800 3600 0 CET}
- {2248304400 7200 1 CEST}
- {2266448400 3600 0 CET}
- {2279754000 7200 1 CEST}
- {2297898000 3600 0 CET}
- {2311203600 7200 1 CEST}
- {2329347600 3600 0 CET}
- {2342653200 7200 1 CEST}
- {2361402000 3600 0 CET}
- {2374102800 7200 1 CEST}
- {2392851600 3600 0 CET}
- {2405552400 7200 1 CEST}
- {2424301200 3600 0 CET}
- {2437606800 7200 1 CEST}
- {2455750800 3600 0 CET}
- {2469056400 7200 1 CEST}
- {2487200400 3600 0 CET}
- {2500506000 7200 1 CEST}
- {2519254800 3600 0 CET}
- {2531955600 7200 1 CEST}
- {2550704400 3600 0 CET}
- {2563405200 7200 1 CEST}
- {2582154000 3600 0 CET}
- {2595459600 7200 1 CEST}
- {2613603600 3600 0 CET}
- {2626909200 7200 1 CEST}
- {2645053200 3600 0 CET}
- {2658358800 7200 1 CEST}
- {2676502800 3600 0 CET}
- {2689808400 7200 1 CEST}
- {2708557200 3600 0 CET}
- {2721258000 7200 1 CEST}
- {2740006800 3600 0 CET}
- {2752707600 7200 1 CEST}
- {2771456400 3600 0 CET}
- {2784762000 7200 1 CEST}
- {2802906000 3600 0 CET}
- {2816211600 7200 1 CEST}
- {2834355600 3600 0 CET}
- {2847661200 7200 1 CEST}
- {2866410000 3600 0 CET}
- {2879110800 7200 1 CEST}
- {2897859600 3600 0 CET}
- {2910560400 7200 1 CEST}
- {2929309200 3600 0 CET}
- {2942010000 7200 1 CEST}
- {2960758800 3600 0 CET}
- {2974064400 7200 1 CEST}
- {2992208400 3600 0 CET}
- {3005514000 7200 1 CEST}
- {3023658000 3600 0 CET}
- {3036963600 7200 1 CEST}
- {3055712400 3600 0 CET}
- {3068413200 7200 1 CEST}
- {3087162000 3600 0 CET}
- {3099862800 7200 1 CEST}
- {3118611600 3600 0 CET}
- {3131917200 7200 1 CEST}
- {3150061200 3600 0 CET}
- {3163366800 7200 1 CEST}
- {3181510800 3600 0 CET}
- {3194816400 7200 1 CEST}
- {3212960400 3600 0 CET}
- {3226266000 7200 1 CEST}
- {3245014800 3600 0 CET}
- {3257715600 7200 1 CEST}
- {3276464400 3600 0 CET}
- {3289165200 7200 1 CEST}
- {3307914000 3600 0 CET}
- {3321219600 7200 1 CEST}
- {3339363600 3600 0 CET}
- {3352669200 7200 1 CEST}
- {3370813200 3600 0 CET}
- {3384118800 7200 1 CEST}
- {3402867600 3600 0 CET}
- {3415568400 7200 1 CEST}
- {3434317200 3600 0 CET}
- {3447018000 7200 1 CEST}
- {3465766800 3600 0 CET}
- {3479072400 7200 1 CEST}
- {3497216400 3600 0 CET}
- {3510522000 7200 1 CEST}
- {3528666000 3600 0 CET}
- {3541971600 7200 1 CEST}
- {3560115600 3600 0 CET}
- {3573421200 7200 1 CEST}
- {3592170000 3600 0 CET}
- {3604870800 7200 1 CEST}
- {3623619600 3600 0 CET}
- {3636320400 7200 1 CEST}
- {3655069200 3600 0 CET}
- {3668374800 7200 1 CEST}
- {3686518800 3600 0 CET}
- {3699824400 7200 1 CEST}
- {3717968400 3600 0 CET}
- {3731274000 7200 1 CEST}
- {3750022800 3600 0 CET}
- {3762723600 7200 1 CEST}
- {3781472400 3600 0 CET}
- {3794173200 7200 1 CEST}
- {3812922000 3600 0 CET}
- {3825622800 7200 1 CEST}
- {3844371600 3600 0 CET}
- {3857677200 7200 1 CEST}
- {3875821200 3600 0 CET}
- {3889126800 7200 1 CEST}
- {3907270800 3600 0 CET}
- {3920576400 7200 1 CEST}
- {3939325200 3600 0 CET}
- {3952026000 7200 1 CEST}
- {3970774800 3600 0 CET}
- {3983475600 7200 1 CEST}
- {4002224400 3600 0 CET}
- {4015530000 7200 1 CEST}
- {4033674000 3600 0 CET}
- {4046979600 7200 1 CEST}
- {4065123600 3600 0 CET}
- {4078429200 7200 1 CEST}
- {4096573200 3600 0 CET}
+if {![info exists TZData(Europe/Berlin)]} {
+ LoadTimeZoneFile Europe/Berlin
}
+set TZData(:Europe/Oslo) $TZData(:Europe/Berlin)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Simferopol b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Simferopol
index 3e4b60aae2..4a5a77f44b 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Simferopol
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Simferopol
@@ -31,18 +31,18 @@ set TZData(:Europe/Simferopol) {
{622594800 10800 0 MSK}
{631141200 10800 0 MSK}
{646786800 7200 0 EET}
- {694216800 7200 0 EET}
- {701820000 10800 1 EEST}
- {717541200 7200 0 EET}
- {733269600 10800 1 EEST}
- {748990800 7200 0 EET}
- {764719200 10800 1 EEST}
+ {701042400 7200 0 EET}
+ {701827200 10800 1 EEST}
+ {717552000 7200 0 EET}
+ {733276800 10800 1 EEST}
+ {749001600 7200 0 EET}
+ {764726400 10800 1 EEST}
{767743200 14400 0 MSD}
- {780436800 10800 0 MSK}
- {796165200 14400 1 MSD}
- {811886400 10800 0 MSK}
+ {780447600 10800 0 MSK}
+ {796172400 14400 1 MSD}
+ {811897200 10800 0 MSK}
{828219600 14400 1 MSD}
- {852066000 10800 0 MSK}
+ {846374400 10800 0 MSK}
{859683600 10800 0 EEST}
{877827600 7200 0 EET}
{891133200 10800 1 EEST}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Stockholm b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Stockholm
index b74d327572..6b5c55a76b 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Stockholm
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Stockholm
@@ -1,250 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Stockholm) {
- {-9223372036854775808 4332 0 LMT}
- {-2871681132 3614 0 SET}
- {-2208992414 3600 0 CET}
- {-1692496800 7200 1 CEST}
- {-1680483600 3600 0 CET}
- {315529200 3600 0 CET}
- {323830800 7200 1 CEST}
- {338950800 3600 0 CET}
- {354675600 7200 1 CEST}
- {370400400 3600 0 CET}
- {386125200 7200 1 CEST}
- {401850000 3600 0 CET}
- {417574800 7200 1 CEST}
- {433299600 3600 0 CET}
- {449024400 7200 1 CEST}
- {465354000 3600 0 CET}
- {481078800 7200 1 CEST}
- {496803600 3600 0 CET}
- {512528400 7200 1 CEST}
- {528253200 3600 0 CET}
- {543978000 7200 1 CEST}
- {559702800 3600 0 CET}
- {575427600 7200 1 CEST}
- {591152400 3600 0 CET}
- {606877200 7200 1 CEST}
- {622602000 3600 0 CET}
- {638326800 7200 1 CEST}
- {654656400 3600 0 CET}
- {670381200 7200 1 CEST}
- {686106000 3600 0 CET}
- {701830800 7200 1 CEST}
- {717555600 3600 0 CET}
- {733280400 7200 1 CEST}
- {749005200 3600 0 CET}
- {764730000 7200 1 CEST}
- {780454800 3600 0 CET}
- {796179600 7200 1 CEST}
- {811904400 3600 0 CET}
- {828234000 7200 1 CEST}
- {846378000 3600 0 CET}
- {859683600 7200 1 CEST}
- {877827600 3600 0 CET}
- {891133200 7200 1 CEST}
- {909277200 3600 0 CET}
- {922582800 7200 1 CEST}
- {941331600 3600 0 CET}
- {954032400 7200 1 CEST}
- {972781200 3600 0 CET}
- {985482000 7200 1 CEST}
- {1004230800 3600 0 CET}
- {1017536400 7200 1 CEST}
- {1035680400 3600 0 CET}
- {1048986000 7200 1 CEST}
- {1067130000 3600 0 CET}
- {1080435600 7200 1 CEST}
- {1099184400 3600 0 CET}
- {1111885200 7200 1 CEST}
- {1130634000 3600 0 CET}
- {1143334800 7200 1 CEST}
- {1162083600 3600 0 CET}
- {1174784400 7200 1 CEST}
- {1193533200 3600 0 CET}
- {1206838800 7200 1 CEST}
- {1224982800 3600 0 CET}
- {1238288400 7200 1 CEST}
- {1256432400 3600 0 CET}
- {1269738000 7200 1 CEST}
- {1288486800 3600 0 CET}
- {1301187600 7200 1 CEST}
- {1319936400 3600 0 CET}
- {1332637200 7200 1 CEST}
- {1351386000 3600 0 CET}
- {1364691600 7200 1 CEST}
- {1382835600 3600 0 CET}
- {1396141200 7200 1 CEST}
- {1414285200 3600 0 CET}
- {1427590800 7200 1 CEST}
- {1445734800 3600 0 CET}
- {1459040400 7200 1 CEST}
- {1477789200 3600 0 CET}
- {1490490000 7200 1 CEST}
- {1509238800 3600 0 CET}
- {1521939600 7200 1 CEST}
- {1540688400 3600 0 CET}
- {1553994000 7200 1 CEST}
- {1572138000 3600 0 CET}
- {1585443600 7200 1 CEST}
- {1603587600 3600 0 CET}
- {1616893200 7200 1 CEST}
- {1635642000 3600 0 CET}
- {1648342800 7200 1 CEST}
- {1667091600 3600 0 CET}
- {1679792400 7200 1 CEST}
- {1698541200 3600 0 CET}
- {1711846800 7200 1 CEST}
- {1729990800 3600 0 CET}
- {1743296400 7200 1 CEST}
- {1761440400 3600 0 CET}
- {1774746000 7200 1 CEST}
- {1792890000 3600 0 CET}
- {1806195600 7200 1 CEST}
- {1824944400 3600 0 CET}
- {1837645200 7200 1 CEST}
- {1856394000 3600 0 CET}
- {1869094800 7200 1 CEST}
- {1887843600 3600 0 CET}
- {1901149200 7200 1 CEST}
- {1919293200 3600 0 CET}
- {1932598800 7200 1 CEST}
- {1950742800 3600 0 CET}
- {1964048400 7200 1 CEST}
- {1982797200 3600 0 CET}
- {1995498000 7200 1 CEST}
- {2014246800 3600 0 CET}
- {2026947600 7200 1 CEST}
- {2045696400 3600 0 CET}
- {2058397200 7200 1 CEST}
- {2077146000 3600 0 CET}
- {2090451600 7200 1 CEST}
- {2108595600 3600 0 CET}
- {2121901200 7200 1 CEST}
- {2140045200 3600 0 CET}
- {2153350800 7200 1 CEST}
- {2172099600 3600 0 CET}
- {2184800400 7200 1 CEST}
- {2203549200 3600 0 CET}
- {2216250000 7200 1 CEST}
- {2234998800 3600 0 CET}
- {2248304400 7200 1 CEST}
- {2266448400 3600 0 CET}
- {2279754000 7200 1 CEST}
- {2297898000 3600 0 CET}
- {2311203600 7200 1 CEST}
- {2329347600 3600 0 CET}
- {2342653200 7200 1 CEST}
- {2361402000 3600 0 CET}
- {2374102800 7200 1 CEST}
- {2392851600 3600 0 CET}
- {2405552400 7200 1 CEST}
- {2424301200 3600 0 CET}
- {2437606800 7200 1 CEST}
- {2455750800 3600 0 CET}
- {2469056400 7200 1 CEST}
- {2487200400 3600 0 CET}
- {2500506000 7200 1 CEST}
- {2519254800 3600 0 CET}
- {2531955600 7200 1 CEST}
- {2550704400 3600 0 CET}
- {2563405200 7200 1 CEST}
- {2582154000 3600 0 CET}
- {2595459600 7200 1 CEST}
- {2613603600 3600 0 CET}
- {2626909200 7200 1 CEST}
- {2645053200 3600 0 CET}
- {2658358800 7200 1 CEST}
- {2676502800 3600 0 CET}
- {2689808400 7200 1 CEST}
- {2708557200 3600 0 CET}
- {2721258000 7200 1 CEST}
- {2740006800 3600 0 CET}
- {2752707600 7200 1 CEST}
- {2771456400 3600 0 CET}
- {2784762000 7200 1 CEST}
- {2802906000 3600 0 CET}
- {2816211600 7200 1 CEST}
- {2834355600 3600 0 CET}
- {2847661200 7200 1 CEST}
- {2866410000 3600 0 CET}
- {2879110800 7200 1 CEST}
- {2897859600 3600 0 CET}
- {2910560400 7200 1 CEST}
- {2929309200 3600 0 CET}
- {2942010000 7200 1 CEST}
- {2960758800 3600 0 CET}
- {2974064400 7200 1 CEST}
- {2992208400 3600 0 CET}
- {3005514000 7200 1 CEST}
- {3023658000 3600 0 CET}
- {3036963600 7200 1 CEST}
- {3055712400 3600 0 CET}
- {3068413200 7200 1 CEST}
- {3087162000 3600 0 CET}
- {3099862800 7200 1 CEST}
- {3118611600 3600 0 CET}
- {3131917200 7200 1 CEST}
- {3150061200 3600 0 CET}
- {3163366800 7200 1 CEST}
- {3181510800 3600 0 CET}
- {3194816400 7200 1 CEST}
- {3212960400 3600 0 CET}
- {3226266000 7200 1 CEST}
- {3245014800 3600 0 CET}
- {3257715600 7200 1 CEST}
- {3276464400 3600 0 CET}
- {3289165200 7200 1 CEST}
- {3307914000 3600 0 CET}
- {3321219600 7200 1 CEST}
- {3339363600 3600 0 CET}
- {3352669200 7200 1 CEST}
- {3370813200 3600 0 CET}
- {3384118800 7200 1 CEST}
- {3402867600 3600 0 CET}
- {3415568400 7200 1 CEST}
- {3434317200 3600 0 CET}
- {3447018000 7200 1 CEST}
- {3465766800 3600 0 CET}
- {3479072400 7200 1 CEST}
- {3497216400 3600 0 CET}
- {3510522000 7200 1 CEST}
- {3528666000 3600 0 CET}
- {3541971600 7200 1 CEST}
- {3560115600 3600 0 CET}
- {3573421200 7200 1 CEST}
- {3592170000 3600 0 CET}
- {3604870800 7200 1 CEST}
- {3623619600 3600 0 CET}
- {3636320400 7200 1 CEST}
- {3655069200 3600 0 CET}
- {3668374800 7200 1 CEST}
- {3686518800 3600 0 CET}
- {3699824400 7200 1 CEST}
- {3717968400 3600 0 CET}
- {3731274000 7200 1 CEST}
- {3750022800 3600 0 CET}
- {3762723600 7200 1 CEST}
- {3781472400 3600 0 CET}
- {3794173200 7200 1 CEST}
- {3812922000 3600 0 CET}
- {3825622800 7200 1 CEST}
- {3844371600 3600 0 CET}
- {3857677200 7200 1 CEST}
- {3875821200 3600 0 CET}
- {3889126800 7200 1 CEST}
- {3907270800 3600 0 CET}
- {3920576400 7200 1 CEST}
- {3939325200 3600 0 CET}
- {3952026000 7200 1 CEST}
- {3970774800 3600 0 CET}
- {3983475600 7200 1 CEST}
- {4002224400 3600 0 CET}
- {4015530000 7200 1 CEST}
- {4033674000 3600 0 CET}
- {4046979600 7200 1 CEST}
- {4065123600 3600 0 CET}
- {4078429200 7200 1 CEST}
- {4096573200 3600 0 CET}
+if {![info exists TZData(Europe/Berlin)]} {
+ LoadTimeZoneFile Europe/Berlin
}
+set TZData(:Europe/Stockholm) $TZData(:Europe/Berlin)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Uzhgorod b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Uzhgorod
index f6e580b05f..2a0f450dac 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Uzhgorod
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Uzhgorod
@@ -1,254 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Uzhgorod) {
- {-9223372036854775808 5352 0 LMT}
- {-2500939752 3600 0 CET}
- {-946774800 3600 0 CET}
- {-938905200 7200 1 CEST}
- {-857257200 3600 0 CET}
- {-844556400 7200 1 CEST}
- {-828226800 3600 0 CET}
- {-812502000 7200 1 CEST}
- {-796870800 7200 1 CEST}
- {-794714400 3600 0 CET}
- {-773456400 10800 0 MSD}
- {354920400 14400 1 MSD}
- {370728000 10800 0 MSK}
- {386456400 14400 1 MSD}
- {402264000 10800 0 MSK}
- {417992400 14400 1 MSD}
- {433800000 10800 0 MSK}
- {449614800 14400 1 MSD}
- {465346800 10800 0 MSK}
- {481071600 14400 1 MSD}
- {496796400 10800 0 MSK}
- {512521200 14400 1 MSD}
- {528246000 10800 0 MSK}
- {543970800 14400 1 MSD}
- {559695600 10800 0 MSK}
- {575420400 14400 1 MSD}
- {591145200 10800 0 MSK}
- {606870000 14400 1 MSD}
- {622594800 10800 0 MSK}
- {631141200 10800 0 MSK}
- {646786800 3600 0 CET}
- {670384800 7200 0 EET}
- {694216800 7200 0 EET}
- {701820000 10800 1 EEST}
- {717541200 7200 0 EET}
- {733269600 10800 1 EEST}
- {748990800 7200 0 EET}
- {764719200 10800 1 EEST}
- {780440400 7200 0 EET}
- {788911200 7200 0 EET}
- {796179600 10800 1 EEST}
- {811904400 7200 0 EET}
- {828234000 10800 1 EEST}
- {846378000 7200 0 EET}
- {859683600 10800 1 EEST}
- {877827600 7200 0 EET}
- {891133200 10800 1 EEST}
- {909277200 7200 0 EET}
- {922582800 10800 1 EEST}
- {941331600 7200 0 EET}
- {954032400 10800 1 EEST}
- {972781200 7200 0 EET}
- {985482000 10800 1 EEST}
- {1004230800 7200 0 EET}
- {1017536400 10800 1 EEST}
- {1035680400 7200 0 EET}
- {1048986000 10800 1 EEST}
- {1067130000 7200 0 EET}
- {1080435600 10800 1 EEST}
- {1099184400 7200 0 EET}
- {1111885200 10800 1 EEST}
- {1130634000 7200 0 EET}
- {1143334800 10800 1 EEST}
- {1162083600 7200 0 EET}
- {1174784400 10800 1 EEST}
- {1193533200 7200 0 EET}
- {1206838800 10800 1 EEST}
- {1224982800 7200 0 EET}
- {1238288400 10800 1 EEST}
- {1256432400 7200 0 EET}
- {1269738000 10800 1 EEST}
- {1288486800 7200 0 EET}
- {1301187600 10800 1 EEST}
- {1319936400 7200 0 EET}
- {1332637200 10800 1 EEST}
- {1351386000 7200 0 EET}
- {1364691600 10800 1 EEST}
- {1382835600 7200 0 EET}
- {1396141200 10800 1 EEST}
- {1414285200 7200 0 EET}
- {1427590800 10800 1 EEST}
- {1445734800 7200 0 EET}
- {1459040400 10800 1 EEST}
- {1477789200 7200 0 EET}
- {1490490000 10800 1 EEST}
- {1509238800 7200 0 EET}
- {1521939600 10800 1 EEST}
- {1540688400 7200 0 EET}
- {1553994000 10800 1 EEST}
- {1572138000 7200 0 EET}
- {1585443600 10800 1 EEST}
- {1603587600 7200 0 EET}
- {1616893200 10800 1 EEST}
- {1635642000 7200 0 EET}
- {1648342800 10800 1 EEST}
- {1667091600 7200 0 EET}
- {1679792400 10800 1 EEST}
- {1698541200 7200 0 EET}
- {1711846800 10800 1 EEST}
- {1729990800 7200 0 EET}
- {1743296400 10800 1 EEST}
- {1761440400 7200 0 EET}
- {1774746000 10800 1 EEST}
- {1792890000 7200 0 EET}
- {1806195600 10800 1 EEST}
- {1824944400 7200 0 EET}
- {1837645200 10800 1 EEST}
- {1856394000 7200 0 EET}
- {1869094800 10800 1 EEST}
- {1887843600 7200 0 EET}
- {1901149200 10800 1 EEST}
- {1919293200 7200 0 EET}
- {1932598800 10800 1 EEST}
- {1950742800 7200 0 EET}
- {1964048400 10800 1 EEST}
- {1982797200 7200 0 EET}
- {1995498000 10800 1 EEST}
- {2014246800 7200 0 EET}
- {2026947600 10800 1 EEST}
- {2045696400 7200 0 EET}
- {2058397200 10800 1 EEST}
- {2077146000 7200 0 EET}
- {2090451600 10800 1 EEST}
- {2108595600 7200 0 EET}
- {2121901200 10800 1 EEST}
- {2140045200 7200 0 EET}
- {2153350800 10800 1 EEST}
- {2172099600 7200 0 EET}
- {2184800400 10800 1 EEST}
- {2203549200 7200 0 EET}
- {2216250000 10800 1 EEST}
- {2234998800 7200 0 EET}
- {2248304400 10800 1 EEST}
- {2266448400 7200 0 EET}
- {2279754000 10800 1 EEST}
- {2297898000 7200 0 EET}
- {2311203600 10800 1 EEST}
- {2329347600 7200 0 EET}
- {2342653200 10800 1 EEST}
- {2361402000 7200 0 EET}
- {2374102800 10800 1 EEST}
- {2392851600 7200 0 EET}
- {2405552400 10800 1 EEST}
- {2424301200 7200 0 EET}
- {2437606800 10800 1 EEST}
- {2455750800 7200 0 EET}
- {2469056400 10800 1 EEST}
- {2487200400 7200 0 EET}
- {2500506000 10800 1 EEST}
- {2519254800 7200 0 EET}
- {2531955600 10800 1 EEST}
- {2550704400 7200 0 EET}
- {2563405200 10800 1 EEST}
- {2582154000 7200 0 EET}
- {2595459600 10800 1 EEST}
- {2613603600 7200 0 EET}
- {2626909200 10800 1 EEST}
- {2645053200 7200 0 EET}
- {2658358800 10800 1 EEST}
- {2676502800 7200 0 EET}
- {2689808400 10800 1 EEST}
- {2708557200 7200 0 EET}
- {2721258000 10800 1 EEST}
- {2740006800 7200 0 EET}
- {2752707600 10800 1 EEST}
- {2771456400 7200 0 EET}
- {2784762000 10800 1 EEST}
- {2802906000 7200 0 EET}
- {2816211600 10800 1 EEST}
- {2834355600 7200 0 EET}
- {2847661200 10800 1 EEST}
- {2866410000 7200 0 EET}
- {2879110800 10800 1 EEST}
- {2897859600 7200 0 EET}
- {2910560400 10800 1 EEST}
- {2929309200 7200 0 EET}
- {2942010000 10800 1 EEST}
- {2960758800 7200 0 EET}
- {2974064400 10800 1 EEST}
- {2992208400 7200 0 EET}
- {3005514000 10800 1 EEST}
- {3023658000 7200 0 EET}
- {3036963600 10800 1 EEST}
- {3055712400 7200 0 EET}
- {3068413200 10800 1 EEST}
- {3087162000 7200 0 EET}
- {3099862800 10800 1 EEST}
- {3118611600 7200 0 EET}
- {3131917200 10800 1 EEST}
- {3150061200 7200 0 EET}
- {3163366800 10800 1 EEST}
- {3181510800 7200 0 EET}
- {3194816400 10800 1 EEST}
- {3212960400 7200 0 EET}
- {3226266000 10800 1 EEST}
- {3245014800 7200 0 EET}
- {3257715600 10800 1 EEST}
- {3276464400 7200 0 EET}
- {3289165200 10800 1 EEST}
- {3307914000 7200 0 EET}
- {3321219600 10800 1 EEST}
- {3339363600 7200 0 EET}
- {3352669200 10800 1 EEST}
- {3370813200 7200 0 EET}
- {3384118800 10800 1 EEST}
- {3402867600 7200 0 EET}
- {3415568400 10800 1 EEST}
- {3434317200 7200 0 EET}
- {3447018000 10800 1 EEST}
- {3465766800 7200 0 EET}
- {3479072400 10800 1 EEST}
- {3497216400 7200 0 EET}
- {3510522000 10800 1 EEST}
- {3528666000 7200 0 EET}
- {3541971600 10800 1 EEST}
- {3560115600 7200 0 EET}
- {3573421200 10800 1 EEST}
- {3592170000 7200 0 EET}
- {3604870800 10800 1 EEST}
- {3623619600 7200 0 EET}
- {3636320400 10800 1 EEST}
- {3655069200 7200 0 EET}
- {3668374800 10800 1 EEST}
- {3686518800 7200 0 EET}
- {3699824400 10800 1 EEST}
- {3717968400 7200 0 EET}
- {3731274000 10800 1 EEST}
- {3750022800 7200 0 EET}
- {3762723600 10800 1 EEST}
- {3781472400 7200 0 EET}
- {3794173200 10800 1 EEST}
- {3812922000 7200 0 EET}
- {3825622800 10800 1 EEST}
- {3844371600 7200 0 EET}
- {3857677200 10800 1 EEST}
- {3875821200 7200 0 EET}
- {3889126800 10800 1 EEST}
- {3907270800 7200 0 EET}
- {3920576400 10800 1 EEST}
- {3939325200 7200 0 EET}
- {3952026000 10800 1 EEST}
- {3970774800 7200 0 EET}
- {3983475600 10800 1 EEST}
- {4002224400 7200 0 EET}
- {4015530000 10800 1 EEST}
- {4033674000 7200 0 EET}
- {4046979600 10800 1 EEST}
- {4065123600 7200 0 EET}
- {4078429200 10800 1 EEST}
- {4096573200 7200 0 EET}
+if {![info exists TZData(Europe/Kyiv)]} {
+ LoadTimeZoneFile Europe/Kyiv
}
+set TZData(:Europe/Uzhgorod) $TZData(:Europe/Kyiv)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Zaporozhye b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Zaporozhye
index 478a61c9f7..385d8628db 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Zaporozhye
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Europe/Zaporozhye
@@ -1,252 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Europe/Zaporozhye) {
- {-9223372036854775808 8440 0 LMT}
- {-2840149240 8400 0 +0220}
- {-1441160400 7200 0 EET}
- {-1247536800 10800 0 MSK}
- {-894769200 3600 0 CET}
- {-857257200 3600 0 CET}
- {-844556400 7200 1 CEST}
- {-828226800 3600 0 CET}
- {-826419600 10800 0 MSD}
- {354920400 14400 1 MSD}
- {370728000 10800 0 MSK}
- {386456400 14400 1 MSD}
- {402264000 10800 0 MSK}
- {417992400 14400 1 MSD}
- {433800000 10800 0 MSK}
- {449614800 14400 1 MSD}
- {465346800 10800 0 MSK}
- {481071600 14400 1 MSD}
- {496796400 10800 0 MSK}
- {512521200 14400 1 MSD}
- {528246000 10800 0 MSK}
- {543970800 14400 1 MSD}
- {559695600 10800 0 MSK}
- {575420400 14400 1 MSD}
- {591145200 10800 0 MSK}
- {606870000 14400 1 MSD}
- {622594800 10800 0 MSK}
- {638319600 14400 1 MSD}
- {654649200 10800 0 MSK}
- {670374000 10800 0 EEST}
- {686091600 7200 0 EET}
- {701820000 10800 1 EEST}
- {717541200 7200 0 EET}
- {733269600 10800 1 EEST}
- {748990800 7200 0 EET}
- {764719200 10800 1 EEST}
- {780440400 7200 0 EET}
- {788911200 7200 0 EET}
- {796179600 10800 1 EEST}
- {811904400 7200 0 EET}
- {828234000 10800 1 EEST}
- {846378000 7200 0 EET}
- {859683600 10800 1 EEST}
- {877827600 7200 0 EET}
- {891133200 10800 1 EEST}
- {909277200 7200 0 EET}
- {922582800 10800 1 EEST}
- {941331600 7200 0 EET}
- {954032400 10800 1 EEST}
- {972781200 7200 0 EET}
- {985482000 10800 1 EEST}
- {1004230800 7200 0 EET}
- {1017536400 10800 1 EEST}
- {1035680400 7200 0 EET}
- {1048986000 10800 1 EEST}
- {1067130000 7200 0 EET}
- {1080435600 10800 1 EEST}
- {1099184400 7200 0 EET}
- {1111885200 10800 1 EEST}
- {1130634000 7200 0 EET}
- {1143334800 10800 1 EEST}
- {1162083600 7200 0 EET}
- {1174784400 10800 1 EEST}
- {1193533200 7200 0 EET}
- {1206838800 10800 1 EEST}
- {1224982800 7200 0 EET}
- {1238288400 10800 1 EEST}
- {1256432400 7200 0 EET}
- {1269738000 10800 1 EEST}
- {1288486800 7200 0 EET}
- {1301187600 10800 1 EEST}
- {1319936400 7200 0 EET}
- {1332637200 10800 1 EEST}
- {1351386000 7200 0 EET}
- {1364691600 10800 1 EEST}
- {1382835600 7200 0 EET}
- {1396141200 10800 1 EEST}
- {1414285200 7200 0 EET}
- {1427590800 10800 1 EEST}
- {1445734800 7200 0 EET}
- {1459040400 10800 1 EEST}
- {1477789200 7200 0 EET}
- {1490490000 10800 1 EEST}
- {1509238800 7200 0 EET}
- {1521939600 10800 1 EEST}
- {1540688400 7200 0 EET}
- {1553994000 10800 1 EEST}
- {1572138000 7200 0 EET}
- {1585443600 10800 1 EEST}
- {1603587600 7200 0 EET}
- {1616893200 10800 1 EEST}
- {1635642000 7200 0 EET}
- {1648342800 10800 1 EEST}
- {1667091600 7200 0 EET}
- {1679792400 10800 1 EEST}
- {1698541200 7200 0 EET}
- {1711846800 10800 1 EEST}
- {1729990800 7200 0 EET}
- {1743296400 10800 1 EEST}
- {1761440400 7200 0 EET}
- {1774746000 10800 1 EEST}
- {1792890000 7200 0 EET}
- {1806195600 10800 1 EEST}
- {1824944400 7200 0 EET}
- {1837645200 10800 1 EEST}
- {1856394000 7200 0 EET}
- {1869094800 10800 1 EEST}
- {1887843600 7200 0 EET}
- {1901149200 10800 1 EEST}
- {1919293200 7200 0 EET}
- {1932598800 10800 1 EEST}
- {1950742800 7200 0 EET}
- {1964048400 10800 1 EEST}
- {1982797200 7200 0 EET}
- {1995498000 10800 1 EEST}
- {2014246800 7200 0 EET}
- {2026947600 10800 1 EEST}
- {2045696400 7200 0 EET}
- {2058397200 10800 1 EEST}
- {2077146000 7200 0 EET}
- {2090451600 10800 1 EEST}
- {2108595600 7200 0 EET}
- {2121901200 10800 1 EEST}
- {2140045200 7200 0 EET}
- {2153350800 10800 1 EEST}
- {2172099600 7200 0 EET}
- {2184800400 10800 1 EEST}
- {2203549200 7200 0 EET}
- {2216250000 10800 1 EEST}
- {2234998800 7200 0 EET}
- {2248304400 10800 1 EEST}
- {2266448400 7200 0 EET}
- {2279754000 10800 1 EEST}
- {2297898000 7200 0 EET}
- {2311203600 10800 1 EEST}
- {2329347600 7200 0 EET}
- {2342653200 10800 1 EEST}
- {2361402000 7200 0 EET}
- {2374102800 10800 1 EEST}
- {2392851600 7200 0 EET}
- {2405552400 10800 1 EEST}
- {2424301200 7200 0 EET}
- {2437606800 10800 1 EEST}
- {2455750800 7200 0 EET}
- {2469056400 10800 1 EEST}
- {2487200400 7200 0 EET}
- {2500506000 10800 1 EEST}
- {2519254800 7200 0 EET}
- {2531955600 10800 1 EEST}
- {2550704400 7200 0 EET}
- {2563405200 10800 1 EEST}
- {2582154000 7200 0 EET}
- {2595459600 10800 1 EEST}
- {2613603600 7200 0 EET}
- {2626909200 10800 1 EEST}
- {2645053200 7200 0 EET}
- {2658358800 10800 1 EEST}
- {2676502800 7200 0 EET}
- {2689808400 10800 1 EEST}
- {2708557200 7200 0 EET}
- {2721258000 10800 1 EEST}
- {2740006800 7200 0 EET}
- {2752707600 10800 1 EEST}
- {2771456400 7200 0 EET}
- {2784762000 10800 1 EEST}
- {2802906000 7200 0 EET}
- {2816211600 10800 1 EEST}
- {2834355600 7200 0 EET}
- {2847661200 10800 1 EEST}
- {2866410000 7200 0 EET}
- {2879110800 10800 1 EEST}
- {2897859600 7200 0 EET}
- {2910560400 10800 1 EEST}
- {2929309200 7200 0 EET}
- {2942010000 10800 1 EEST}
- {2960758800 7200 0 EET}
- {2974064400 10800 1 EEST}
- {2992208400 7200 0 EET}
- {3005514000 10800 1 EEST}
- {3023658000 7200 0 EET}
- {3036963600 10800 1 EEST}
- {3055712400 7200 0 EET}
- {3068413200 10800 1 EEST}
- {3087162000 7200 0 EET}
- {3099862800 10800 1 EEST}
- {3118611600 7200 0 EET}
- {3131917200 10800 1 EEST}
- {3150061200 7200 0 EET}
- {3163366800 10800 1 EEST}
- {3181510800 7200 0 EET}
- {3194816400 10800 1 EEST}
- {3212960400 7200 0 EET}
- {3226266000 10800 1 EEST}
- {3245014800 7200 0 EET}
- {3257715600 10800 1 EEST}
- {3276464400 7200 0 EET}
- {3289165200 10800 1 EEST}
- {3307914000 7200 0 EET}
- {3321219600 10800 1 EEST}
- {3339363600 7200 0 EET}
- {3352669200 10800 1 EEST}
- {3370813200 7200 0 EET}
- {3384118800 10800 1 EEST}
- {3402867600 7200 0 EET}
- {3415568400 10800 1 EEST}
- {3434317200 7200 0 EET}
- {3447018000 10800 1 EEST}
- {3465766800 7200 0 EET}
- {3479072400 10800 1 EEST}
- {3497216400 7200 0 EET}
- {3510522000 10800 1 EEST}
- {3528666000 7200 0 EET}
- {3541971600 10800 1 EEST}
- {3560115600 7200 0 EET}
- {3573421200 10800 1 EEST}
- {3592170000 7200 0 EET}
- {3604870800 10800 1 EEST}
- {3623619600 7200 0 EET}
- {3636320400 10800 1 EEST}
- {3655069200 7200 0 EET}
- {3668374800 10800 1 EEST}
- {3686518800 7200 0 EET}
- {3699824400 10800 1 EEST}
- {3717968400 7200 0 EET}
- {3731274000 10800 1 EEST}
- {3750022800 7200 0 EET}
- {3762723600 10800 1 EEST}
- {3781472400 7200 0 EET}
- {3794173200 10800 1 EEST}
- {3812922000 7200 0 EET}
- {3825622800 10800 1 EEST}
- {3844371600 7200 0 EET}
- {3857677200 10800 1 EEST}
- {3875821200 7200 0 EET}
- {3889126800 10800 1 EEST}
- {3907270800 7200 0 EET}
- {3920576400 10800 1 EEST}
- {3939325200 7200 0 EET}
- {3952026000 10800 1 EEST}
- {3970774800 7200 0 EET}
- {3983475600 10800 1 EEST}
- {4002224400 7200 0 EET}
- {4015530000 10800 1 EEST}
- {4033674000 7200 0 EET}
- {4046979600 10800 1 EEST}
- {4065123600 7200 0 EET}
- {4078429200 10800 1 EEST}
- {4096573200 7200 0 EET}
+if {![info exists TZData(Europe/Kyiv)]} {
+ LoadTimeZoneFile Europe/Kyiv
}
+set TZData(:Europe/Zaporozhye) $TZData(:Europe/Kyiv)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Iceland b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Iceland
index eb3f3eb297..3e7cd0ca83 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Iceland
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Iceland
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Atlantic/Reykjavik)]} {
- LoadTimeZoneFile Atlantic/Reykjavik
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
-set TZData(:Iceland) $TZData(:Atlantic/Reykjavik)
+set TZData(:Iceland) $TZData(:Africa/Abidjan)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Christmas b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Christmas
index 76f8cbe838..dea9f9023c 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Christmas
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Christmas
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Christmas) {
- {-9223372036854775808 25372 0 LMT}
- {-2364102172 25200 0 +07}
+if {![info exists TZData(Asia/Bangkok)]} {
+ LoadTimeZoneFile Asia/Bangkok
}
+set TZData(:Indian/Christmas) $TZData(:Asia/Bangkok)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Cocos b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Cocos
index 833eb209ee..cb474c9e5d 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Cocos
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Cocos
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Cocos) {
- {-9223372036854775808 23260 0 LMT}
- {-2209012060 23400 0 +0630}
+if {![info exists TZData(Asia/Yangon)]} {
+ LoadTimeZoneFile Asia/Yangon
}
+set TZData(:Indian/Cocos) $TZData(:Asia/Yangon)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Kerguelen b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Kerguelen
index 93f2d94c8f..b3cbeeead9 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Kerguelen
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Kerguelen
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Kerguelen) {
- {-9223372036854775808 0 0 -00}
- {-631152000 18000 0 +05}
+if {![info exists TZData(Indian/Maldives)]} {
+ LoadTimeZoneFile Indian/Maldives
}
+set TZData(:Indian/Kerguelen) $TZData(:Indian/Maldives)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Mahe b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Mahe
index dcafc360f5..3c728d2930 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Mahe
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Mahe
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Mahe) {
- {-9223372036854775808 13308 0 LMT}
- {-1988163708 14400 0 +04}
+if {![info exists TZData(Asia/Dubai)]} {
+ LoadTimeZoneFile Asia/Dubai
}
+set TZData(:Indian/Mahe) $TZData(:Asia/Dubai)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Reunion b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Reunion
index aa78dec7f5..14f232074a 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Reunion
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Indian/Reunion
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Reunion) {
- {-9223372036854775808 13312 0 LMT}
- {-1848886912 14400 0 +04}
+if {![info exists TZData(Asia/Dubai)]} {
+ LoadTimeZoneFile Asia/Dubai
}
+set TZData(:Indian/Reunion) $TZData(:Asia/Dubai)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Chuuk b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Chuuk
index ea1cba29cd..5e2960c933 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Chuuk
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Chuuk
@@ -1,11 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Chuuk) {
- {-9223372036854775808 -49972 0 LMT}
- {-3944628428 36428 0 LMT}
- {-2177489228 36000 0 +10}
- {-1743674400 32400 0 +09}
- {-1606813200 36000 0 +10}
- {-907408800 32400 0 +09}
- {-770634000 36000 0 +10}
+if {![info exists TZData(Pacific/Port_Moresby)]} {
+ LoadTimeZoneFile Pacific/Port_Moresby
}
+set TZData(:Pacific/Chuuk) $TZData(:Pacific/Port_Moresby)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Easter b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Easter
index 7a8d52515d..97e1f4fdf8 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Easter
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Easter
@@ -110,7 +110,7 @@ set TZData(:Pacific/Easter) {
{1617505200 -21600 0 -06}
{1630814400 -18000 1 -06}
{1648954800 -21600 0 -06}
- {1662264000 -18000 1 -06}
+ {1662868800 -18000 1 -06}
{1680404400 -21600 0 -06}
{1693713600 -18000 1 -06}
{1712458800 -21600 0 -06}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Fiji b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Fiji
index 67a1f0010c..c1d748b0b4 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Fiji
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Fiji
@@ -31,159 +31,4 @@ set TZData(:Pacific/Fiji) {
{1578751200 43200 0 +12}
{1608386400 46800 1 +12}
{1610805600 43200 0 +12}
- {1668261600 46800 1 +12}
- {1673704800 43200 0 +12}
- {1699711200 46800 1 +12}
- {1705154400 43200 0 +12}
- {1731160800 46800 1 +12}
- {1736604000 43200 0 +12}
- {1762610400 46800 1 +12}
- {1768658400 43200 0 +12}
- {1794060000 46800 1 +12}
- {1800108000 43200 0 +12}
- {1826114400 46800 1 +12}
- {1831557600 43200 0 +12}
- {1857564000 46800 1 +12}
- {1863007200 43200 0 +12}
- {1889013600 46800 1 +12}
- {1894456800 43200 0 +12}
- {1920463200 46800 1 +12}
- {1925906400 43200 0 +12}
- {1951912800 46800 1 +12}
- {1957960800 43200 0 +12}
- {1983967200 46800 1 +12}
- {1989410400 43200 0 +12}
- {2015416800 46800 1 +12}
- {2020860000 43200 0 +12}
- {2046866400 46800 1 +12}
- {2052309600 43200 0 +12}
- {2078316000 46800 1 +12}
- {2083759200 43200 0 +12}
- {2109765600 46800 1 +12}
- {2115813600 43200 0 +12}
- {2141215200 46800 1 +12}
- {2147263200 43200 0 +12}
- {2173269600 46800 1 +12}
- {2178712800 43200 0 +12}
- {2204719200 46800 1 +12}
- {2210162400 43200 0 +12}
- {2236168800 46800 1 +12}
- {2241612000 43200 0 +12}
- {2267618400 46800 1 +12}
- {2273061600 43200 0 +12}
- {2299068000 46800 1 +12}
- {2305116000 43200 0 +12}
- {2330517600 46800 1 +12}
- {2336565600 43200 0 +12}
- {2362572000 46800 1 +12}
- {2368015200 43200 0 +12}
- {2394021600 46800 1 +12}
- {2399464800 43200 0 +12}
- {2425471200 46800 1 +12}
- {2430914400 43200 0 +12}
- {2456920800 46800 1 +12}
- {2462364000 43200 0 +12}
- {2488370400 46800 1 +12}
- {2494418400 43200 0 +12}
- {2520424800 46800 1 +12}
- {2525868000 43200 0 +12}
- {2551874400 46800 1 +12}
- {2557317600 43200 0 +12}
- {2583324000 46800 1 +12}
- {2588767200 43200 0 +12}
- {2614773600 46800 1 +12}
- {2620216800 43200 0 +12}
- {2646223200 46800 1 +12}
- {2652271200 43200 0 +12}
- {2677672800 46800 1 +12}
- {2683720800 43200 0 +12}
- {2709727200 46800 1 +12}
- {2715170400 43200 0 +12}
- {2741176800 46800 1 +12}
- {2746620000 43200 0 +12}
- {2772626400 46800 1 +12}
- {2778069600 43200 0 +12}
- {2804076000 46800 1 +12}
- {2809519200 43200 0 +12}
- {2835525600 46800 1 +12}
- {2841573600 43200 0 +12}
- {2867580000 46800 1 +12}
- {2873023200 43200 0 +12}
- {2899029600 46800 1 +12}
- {2904472800 43200 0 +12}
- {2930479200 46800 1 +12}
- {2935922400 43200 0 +12}
- {2961928800 46800 1 +12}
- {2967372000 43200 0 +12}
- {2993378400 46800 1 +12}
- {2999426400 43200 0 +12}
- {3024828000 46800 1 +12}
- {3030876000 43200 0 +12}
- {3056882400 46800 1 +12}
- {3062325600 43200 0 +12}
- {3088332000 46800 1 +12}
- {3093775200 43200 0 +12}
- {3119781600 46800 1 +12}
- {3125224800 43200 0 +12}
- {3151231200 46800 1 +12}
- {3156674400 43200 0 +12}
- {3182680800 46800 1 +12}
- {3188728800 43200 0 +12}
- {3214130400 46800 1 +12}
- {3220178400 43200 0 +12}
- {3246184800 46800 1 +12}
- {3251628000 43200 0 +12}
- {3277634400 46800 1 +12}
- {3283077600 43200 0 +12}
- {3309084000 46800 1 +12}
- {3314527200 43200 0 +12}
- {3340533600 46800 1 +12}
- {3345976800 43200 0 +12}
- {3371983200 46800 1 +12}
- {3378031200 43200 0 +12}
- {3404037600 46800 1 +12}
- {3409480800 43200 0 +12}
- {3435487200 46800 1 +12}
- {3440930400 43200 0 +12}
- {3466936800 46800 1 +12}
- {3472380000 43200 0 +12}
- {3498386400 46800 1 +12}
- {3503829600 43200 0 +12}
- {3529836000 46800 1 +12}
- {3535884000 43200 0 +12}
- {3561285600 46800 1 +12}
- {3567333600 43200 0 +12}
- {3593340000 46800 1 +12}
- {3598783200 43200 0 +12}
- {3624789600 46800 1 +12}
- {3630232800 43200 0 +12}
- {3656239200 46800 1 +12}
- {3661682400 43200 0 +12}
- {3687688800 46800 1 +12}
- {3693132000 43200 0 +12}
- {3719138400 46800 1 +12}
- {3725186400 43200 0 +12}
- {3751192800 46800 1 +12}
- {3756636000 43200 0 +12}
- {3782642400 46800 1 +12}
- {3788085600 43200 0 +12}
- {3814092000 46800 1 +12}
- {3819535200 43200 0 +12}
- {3845541600 46800 1 +12}
- {3850984800 43200 0 +12}
- {3876991200 46800 1 +12}
- {3883039200 43200 0 +12}
- {3908440800 46800 1 +12}
- {3914488800 43200 0 +12}
- {3940495200 46800 1 +12}
- {3945938400 43200 0 +12}
- {3971944800 46800 1 +12}
- {3977388000 43200 0 +12}
- {4003394400 46800 1 +12}
- {4008837600 43200 0 +12}
- {4034844000 46800 1 +12}
- {4040287200 43200 0 +12}
- {4066293600 46800 1 +12}
- {4072341600 43200 0 +12}
- {4097743200 46800 1 +12}
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Funafuti b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Funafuti
index d80652539e..d932469d1a 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Funafuti
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Funafuti
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Funafuti) {
- {-9223372036854775808 43012 0 LMT}
- {-2177495812 43200 0 +12}
+if {![info exists TZData(Pacific/Tarawa)]} {
+ LoadTimeZoneFile Pacific/Tarawa
}
+set TZData(:Pacific/Funafuti) $TZData(:Pacific/Tarawa)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Majuro b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Majuro
index a263a62a23..b30f4940ff 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Majuro
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Majuro
@@ -1,12 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Majuro) {
- {-9223372036854775808 41088 0 LMT}
- {-2177493888 39600 0 +11}
- {-1743678000 32400 0 +09}
- {-1606813200 39600 0 +11}
- {-1041418800 36000 0 +10}
- {-907408800 32400 0 +09}
- {-818067600 39600 0 +11}
- {-7988400 43200 0 +12}
+if {![info exists TZData(Pacific/Tarawa)]} {
+ LoadTimeZoneFile Pacific/Tarawa
}
+set TZData(:Pacific/Majuro) $TZData(:Pacific/Tarawa)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Pohnpei b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Pohnpei
index 7d0adf3fd1..a8d9779b4e 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Pohnpei
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Pohnpei
@@ -1,12 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Pohnpei) {
- {-9223372036854775808 -48428 0 LMT}
- {-3944629972 37972 0 LMT}
- {-2177490772 39600 0 +11}
- {-1743678000 32400 0 +09}
- {-1606813200 39600 0 +11}
- {-1041418800 36000 0 +10}
- {-907408800 32400 0 +09}
- {-770634000 39600 0 +11}
+if {![info exists TZData(Pacific/Guadalcanal)]} {
+ LoadTimeZoneFile Pacific/Guadalcanal
}
+set TZData(:Pacific/Pohnpei) $TZData(:Pacific/Guadalcanal)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Ponape b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Ponape
index 89644f7fc2..1211f140ef 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Ponape
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Ponape
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Pacific/Pohnpei)]} {
- LoadTimeZoneFile Pacific/Pohnpei
+if {![info exists TZData(Pacific/Guadalcanal)]} {
+ LoadTimeZoneFile Pacific/Guadalcanal
}
-set TZData(:Pacific/Ponape) $TZData(:Pacific/Pohnpei)
+set TZData(:Pacific/Ponape) $TZData(:Pacific/Guadalcanal)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Truk b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Truk
index c9b1894935..7ddbad7ea8 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Truk
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Truk
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Pacific/Chuuk)]} {
- LoadTimeZoneFile Pacific/Chuuk
+if {![info exists TZData(Pacific/Port_Moresby)]} {
+ LoadTimeZoneFile Pacific/Port_Moresby
}
-set TZData(:Pacific/Truk) $TZData(:Pacific/Chuuk)
+set TZData(:Pacific/Truk) $TZData(:Pacific/Port_Moresby)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wake b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wake
index 67eab37fd3..945a863515 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wake
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wake
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Wake) {
- {-9223372036854775808 39988 0 LMT}
- {-2177492788 43200 0 +12}
+if {![info exists TZData(Pacific/Tarawa)]} {
+ LoadTimeZoneFile Pacific/Tarawa
}
+set TZData(:Pacific/Wake) $TZData(:Pacific/Tarawa)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wallis b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wallis
index 152e6af685..92748f4957 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wallis
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Wallis
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Wallis) {
- {-9223372036854775808 44120 0 LMT}
- {-2177496920 43200 0 +12}
+if {![info exists TZData(Pacific/Tarawa)]} {
+ LoadTimeZoneFile Pacific/Tarawa
}
+set TZData(:Pacific/Wallis) $TZData(:Pacific/Tarawa)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Yap b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Yap
index 49310306d2..f0b6ae72ca 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Yap
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/Pacific/Yap
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Pacific/Chuuk)]} {
- LoadTimeZoneFile Pacific/Chuuk
+if {![info exists TZData(Pacific/Port_Moresby)]} {
+ LoadTimeZoneFile Pacific/Port_Moresby
}
-set TZData(:Pacific/Yap) $TZData(:Pacific/Chuuk)
+set TZData(:Pacific/Yap) $TZData(:Pacific/Port_Moresby)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific-New b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific-New
deleted file mode 100644
index 2eb30f85fd..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8.6/tzdata/US/Pacific-New
+++ /dev/null
@@ -1,5 +0,0 @@
-# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Los_Angeles)]} {
- LoadTimeZoneFile America/Los_Angeles
-}
-set TZData(:US/Pacific-New) $TZData(:America/Los_Angeles)
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.18.tm b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.19.tm
index 752f069326..acaebf2684 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.18.tm
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.4/platform-1.0.19.tm
@@ -364,6 +364,17 @@ proc ::platform::patterns {id} {
foreach {major minor} [split $v .] break
set res {}
+ if {$major eq 13} {
+ # Add 13.0 to 13.minor to patterns.
+ for {set j $minor} {$j >= 0} {incr j -1} {
+ lappend res macosx${major}.${j}-${cpu}
+ foreach a $alt {
+ lappend res macosx${major}.${j}-$a
+ }
+ }
+ set major 12
+ set minor 5
+ }
if {$major eq 12} {
# Add 12.0 to 12.minor to patterns.
for {set j $minor} {$j >= 0} {incr j -1} {
@@ -420,7 +431,7 @@ proc ::platform::patterns {id} {
# ### ### ### ######### ######### #########
## Ready
-package provide platform 1.0.18
+package provide platform 1.0.19
# ### ### ### ######### ######### #########
## Demo application
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.3.tm b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.5.tm
index dedcd7ac16..7344f9f168 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.3.tm
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.5/tcltest-2.5.5.tm
@@ -10,9 +10,9 @@
# initially implemented by Mary Ann May-Pumphrey of Sun
# Microsystems.
#
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 Scriptics Corporation.
-# Copyright (c) 2000 Ajuba Solutions
+# Copyright © 1994-1997 Sun Microsystems, Inc.
+# Copyright © 1998-1999 Scriptics Corporation.
+# Copyright © 2000 Ajuba Solutions
# Contributions from Don Porter, NIST, 2002. (not subject to US copyright)
# All rights reserved.
@@ -22,7 +22,7 @@ namespace eval tcltest {
# When the version number changes, be sure to update the pkgIndex.tcl file,
# and the install directory in the Makefiles. When the minor version
# changes (new feature) be sure to update the man page as well.
- variable Version 2.5.3
+ variable Version 2.5.5
# Compatibility support for dumb variables defined in tcltest 1
# Do not use these. Call [package provide Tcl] and [info patchlevel]
@@ -399,6 +399,9 @@ namespace eval tcltest {
}
default {
set outputChannel [open $filename a]
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $outputChannel -encoding utf-8
+ }
set ChannelsWeOpened($outputChannel) 1
# If we created the file in [temporaryDirectory], then
@@ -443,6 +446,9 @@ namespace eval tcltest {
}
default {
set errorChannel [open $filename a]
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $errorChannel -encoding utf-8
+ }
set ChannelsWeOpened($errorChannel) 1
# If we created the file in [temporaryDirectory], then
@@ -785,6 +791,9 @@ namespace eval tcltest {
variable Option
if {$Option(-loadfile) eq {}} {return}
set tmp [open $Option(-loadfile) r]
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $tmp -encoding utf-8
+ }
loadScript [read $tmp]
close $tmp
}
@@ -1330,6 +1339,9 @@ proc tcltest::DefineConstraintInitializers {} {
ConstraintInitializer stdio {
set code 0
if {![catch {set f [open "|[list [interpreter]]" w]}]} {
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $f -encoding utf-8
+ }
if {![catch {puts $f exit}]} {
if {![catch {close $f}]} {
set code 1
@@ -2129,7 +2141,7 @@ proc tcltest::test {name description args} {
if {[IsVerbose msec] || [IsVerbose usec]} {
set t [expr {[clock microseconds] - $timeStart}]
if {[IsVerbose usec]} {
- puts [outputChannel] "++++ $name took $t μs"
+ puts [outputChannel] "++++ $name took $t \xB5s"
}
if {[IsVerbose msec]} {
puts [outputChannel] "++++ $name took [expr {round($t/1000.)}] ms"
@@ -2177,6 +2189,9 @@ proc tcltest::test {name description args} {
set testFile [file normalize [uplevel 1 {info script}]]
if {[file readable $testFile]} {
set testFd [open $testFile r]
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $testFd -encoding utf-8
+ }
set testLine [expr {[lsearch -regexp \
[split [read $testFd] "\n"] \
"^\[ \t\]*test [string map {. \\.} $name] "] + 1}]
@@ -2885,6 +2900,9 @@ proc tcltest::runAllTests { {shell ""} } {
if {[catch {
incr numTestFiles
set pipeFd [open $cmd "r"]
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $pipeFd -encoding utf-8
+ }
while {[gets $pipeFd line] >= 0} {
if {[regexp [join {
{^([^:]+):\t}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/http-2.9.5.tm b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/http-2.9.8.tm
index b0f87de4ef..5a09bb8b35 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/http-2.9.5.tm
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/http-2.9.8.tm
@@ -11,7 +11,7 @@
package require Tcl 8.6-
# Keep this in sync with pkgIndex.tcl and with the install directories in
# Makefiles
-package provide http 2.9.5
+package provide http 2.9.8
namespace eval http {
# Allow resourcing to not clobber existing data
@@ -255,11 +255,35 @@ proc http::Finish {token {errormsg ""} {skipCB 0}} {
if {[info commands ${token}EventCoroutine] ne {}} {
rename ${token}EventCoroutine {}
}
+
+ # Is this an upgrade request/response?
+ set upgradeResponse \
+ [expr { [info exists state(upgradeRequest)] && $state(upgradeRequest)
+ && [info exists state(http)] && [ncode $token] eq {101}
+ && [info exists state(connection)] && "upgrade" in $state(connection)
+ && [info exists state(upgrade)] && "" ne $state(upgrade)}]
+
if { ($state(status) eq "timeout")
|| ($state(status) eq "error")
|| ($state(status) eq "eof")
- || ([info exists state(-keepalive)] && !$state(-keepalive))
- || ([info exists state(connection)] && ($state(connection) eq "close"))
+ } {
+ set closeQueue 1
+ set connId $state(socketinfo)
+ set sock $state(sock)
+ CloseSocket $state(sock) $token
+ } elseif {$upgradeResponse} {
+ # Special handling for an upgrade request/response.
+ # - geturl ensures that this is not a "persistent" socket used for
+ # multiple HTTP requests, so a call to KeepSocket is not needed.
+ # - Leave socket open, so a call to CloseSocket is not needed either.
+ # - Remove fileevent bindings. The caller will set its own bindings.
+ # - THE CALLER MUST PROCESS THE UPGRADED SOCKET IN THE CALLBACK COMMAND
+ # PASSED TO http::geturl AS -command callback.
+ catch {fileevent $state(sock) readable {}}
+ catch {fileevent $state(sock) writable {}}
+ } elseif {
+ ([info exists state(-keepalive)] && !$state(-keepalive))
+ || ([info exists state(connection)] && ("close" in $state(connection)))
} {
set closeQueue 1
set connId $state(socketinfo)
@@ -267,7 +291,7 @@ proc http::Finish {token {errormsg ""} {skipCB 0}} {
CloseSocket $state(sock) $token
} elseif {
([info exists state(-keepalive)] && $state(-keepalive))
- && ([info exists state(connection)] && ($state(connection) ne "close"))
+ && ([info exists state(connection)] && ("close" ni $state(connection)))
} {
KeepSocket $token
}
@@ -298,7 +322,7 @@ proc http::Finish {token {errormsg ""} {skipCB 0}} {
# queued task if possible. Otherwise leave it idle and ready for its next
# use.
#
-# If $socketClosing(*), then ($state(connection) eq "close") and therefore
+# If $socketClosing(*), then ("close" in $state(connection)) and therefore
# this command will not be called by Finish.
#
# Arguments:
@@ -447,7 +471,7 @@ proc http::KeepSocket {token} {
(!$state(-pipeline))
&& [info exists socketWrQueue($connId)]
&& [llength $socketWrQueue($connId)]
- && ($state(connection) ne "close")
+ && ("close" ni $state(connection))
} {
# If not pipelined, (socketRdState eq Rready) tells us that we are
# ready for the next write - there is no need to check
@@ -733,7 +757,7 @@ proc http::geturl {url args} {
-strict boolean
-timeout integer
-validate boolean
- -headers dict
+ -headers list
}
set state(charset) $defaultCharset
set options {
@@ -747,13 +771,18 @@ proc http::geturl {url args} {
foreach {flag value} $args {
if {[regexp -- $pat $flag]} {
# Validate numbers
- if {($flag eq "-headers") ? [catch {dict size $value}] :
- ([info exists type($flag)] && ![string is $type($flag) -strict $value])
+ if { [info exists type($flag)]
+ && (![string is $type($flag) -strict $value])
} {
unset $token
return -code error \
"Bad value for $flag ($value), must be $type($flag)"
}
+ if {($flag eq "-headers") && ([llength $value] % 2 != 0)} {
+ unset $token
+ return -code error \
+ "Bad value for $flag ($value), number of list elements must be even"
+ }
set state($flag) $value
} else {
unset $token
@@ -892,8 +921,12 @@ proc http::geturl {url args} {
}
return -code error "Illegal characters in URL path"
}
+ if {![regexp {^[^?#]+} $srvurl state(path)]} {
+ set state(path) /
+ }
} else {
set srvurl /
+ set state(path) /
}
if {$proto eq ""} {
set proto http
@@ -946,6 +979,15 @@ proc http::geturl {url args} {
# c11a51c482]
set state(accept-types) $http(-accept)
+ # Check whether this is an Upgrade request.
+ set connectionValues [SplitCommaSeparatedFieldValue \
+ [GetFieldValue $state(-headers) Connection]]
+ set connectionValues [string tolower $connectionValues]
+ set upgradeValues [SplitCommaSeparatedFieldValue \
+ [GetFieldValue $state(-headers) Upgrade]]
+ set state(upgradeRequest) [expr { "upgrade" in $connectionValues
+ && [llength $upgradeValues] >= 1}]
+
if {$isQuery || $isQueryChannel} {
# It's a POST.
# A client wishing to send a non-idempotent request SHOULD wait to send
@@ -961,8 +1003,13 @@ proc http::geturl {url args} {
# There is a small risk of a race against server timeout.
set state(-pipeline) 0
}
+ } elseif {$state(upgradeRequest)} {
+ # It's an upgrade request. Method must be GET (untested).
+ # Force -keepalive to 0 so the connection is not made over a persistent
+ # socket, i.e. one used for multiple HTTP requests.
+ set state(-keepalive) 0
} else {
- # It's a GET or HEAD.
+ # It's a non-upgrade GET or HEAD.
set state(-pipeline) $http(-pipeline)
}
@@ -1310,8 +1357,7 @@ proc http::Connected {token proto phost srvurl} {
set sock $state(sock)
set isQueryChannel [info exists state(-querychannel)]
set isQuery [info exists state(-query)]
- set host [lindex [split $state(socketinfo) :] 0]
- set port [lindex [split $state(socketinfo) :] 1]
+ regexp {^(.+):([^:]+)$} $state(socketinfo) {} host port
set lower [string tolower $proto]
set defport [lindex $urlTypes($lower) 0]
@@ -1357,14 +1403,18 @@ proc http::Connected {token proto phost srvurl} {
if {[catch {
set state(method) $how
puts $sock "$how $srvurl HTTP/$state(-protocol)"
- if {[dict exists $state(-headers) Host]} {
+ set hostValue [GetFieldValue $state(-headers) Host]
+ if {$hostValue ne {}} {
# Allow Host spoofing. [Bug 928154]
- puts $sock "Host: [dict get $state(-headers) Host]"
+ regexp {^[^:]+} $hostValue state(host)
+ puts $sock "Host: $hostValue"
} elseif {$port == $defport} {
# Don't add port in this case, to handle broken servers. [Bug
# #504508]
+ set state(host) $host
puts $sock "Host: $host"
} else {
+ set state(host) $host
puts $sock "Host: $host:$port"
}
puts $sock "User-Agent: $http(-useragent)"
@@ -1389,7 +1439,7 @@ proc http::Connected {token proto phost srvurl} {
# Proxy-Connection header field in any requests"
set accept_encoding_seen 0
set content_type_seen 0
- dict for {key value} $state(-headers) {
+ foreach {key value} $state(-headers) {
set value [string map [list \n "" \r ""] $value]
set key [string map {" " -} [string trim $key]]
if {[string equal -nocase $key "host"]} {
@@ -2586,7 +2636,7 @@ proc http::Event {sock token} {
if { ([info exists state(connection)])
&& ([info exists socketMapping($state(socketinfo))])
- && ($state(connection) eq "keep-alive")
+ && ("keep-alive" in $state(connection))
&& ($state(-keepalive))
&& (!$state(reusing))
&& ($state(-pipeline))
@@ -2608,7 +2658,7 @@ proc http::Event {sock token} {
if { ([info exists state(connection)])
&& ([info exists socketMapping($state(socketinfo))])
- && ($state(connection) eq "close")
+ && ("close" in $state(connection))
&& ($state(-keepalive))
} {
# The server warns that it will close the socket after this
@@ -2656,6 +2706,19 @@ proc http::Event {sock token} {
set state(state) body
+ # According to
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Connection
+ # any comma-separated "Connection:" list implies keep-alive, but I
+ # don't see this in the RFC so we'll play safe and
+ # scan any list for "close".
+ # Done here to support combining duplicate header field's values.
+ if { [info exists state(connection)]
+ && ("close" ni $state(connection))
+ && ("keep-alive" ni $state(connection))
+ } {
+ lappend state(connection) "keep-alive"
+ }
+
# If doing a HEAD, then we won't get any body
if {$state(-validate)} {
Log ^F$tk end of response for HEAD request - token $token
@@ -2679,7 +2742,7 @@ proc http::Event {sock token} {
# (totalsize == 0).
if { (!( [info exists state(connection)]
- && ($state(connection) eq "close")
+ && ("close" in $state(connection))
)
)
&& (![info exists state(transfer)])
@@ -2745,32 +2808,14 @@ proc http::Event {sock token} {
}
proxy-connection -
connection {
- set tmpHeader [string trim [string tolower $value]]
# RFC 7230 Section 6.1 states that a comma-separated
- # list is an acceptable value. According to
- # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Connection
- # any comma-separated list implies keep-alive, but I
- # don't see this in the RFC so we'll play safe and
- # scan any list for "close".
- if {$tmpHeader in {close keep-alive}} {
- # The common cases, continue.
- } elseif {[string first , $tmpHeader] < 0} {
- # Not a comma-separated list, not "close",
- # therefore "keep-alive".
- set tmpHeader keep-alive
- } else {
- set tmpResult keep-alive
- set tmpCsl [split $tmpHeader ,]
- # Optional whitespace either side of separator.
- foreach el $tmpCsl {
- if {[string trim $el] eq {close}} {
- set tmpResult close
- break
- }
- }
- set tmpHeader $tmpResult
+ # list is an acceptable value.
+ foreach el [SplitCommaSeparatedFieldValue $value] {
+ lappend state(connection) [string tolower $el]
}
- set state(connection) $tmpHeader
+ }
+ upgrade {
+ set state(upgrade) [string trim $value]
}
}
lappend state(meta) $key [string trim $value]
@@ -3125,7 +3170,7 @@ proc http::BlockingGets {sock} {
while 1 {
set count [gets $sock line]
set eof [eof $sock]
- if {$count > -1 || $eof} {
+ if {$count >= 0 || $eof} {
return $line
} else {
yield
@@ -3421,7 +3466,7 @@ proc http::CharsetToEncoding {charset} {
set encoding "iso8859-$num"
} elseif {[regexp {iso-?2022-(jp|kr)} $charset -> ext]} {
set encoding "iso2022-$ext"
- } elseif {[regexp {shift[-_]?js} $charset]} {
+ } elseif {[regexp {shift[-_]?jis} $charset]} {
set encoding "shiftjis"
} elseif {[regexp {(?:windows|cp)-?([0-9]+)} $charset -> num]} {
set encoding "cp$num"
@@ -3433,6 +3478,9 @@ proc http::CharsetToEncoding {charset} {
1 - 2 - 3 {
set encoding "iso8859-$num"
}
+ default {
+ set encoding "binary"
+ }
}
} else {
# other charset, like euc-xx, utf-8,... may directly map to encoding
@@ -3457,8 +3505,12 @@ proc http::ContentEncoding {token} {
gzip - x-gzip { lappend r gunzip }
compress - x-compress { lappend r decompress }
identity {}
+ br {
+ return -code error\
+ "content-encoding \"br\" not implemented"
+ }
default {
- return -code error "unsupported content-encoding \"$coding\""
+ Log "unknown content-encoding \"$coding\" ignored"
}
}
}
@@ -3496,6 +3548,52 @@ proc http::ReceiveChunked {chan command} {
}
}
+# http::SplitCommaSeparatedFieldValue --
+# Return the individual values of a comma-separated field value.
+#
+# Arguments:
+# fieldValue Comma-separated header field value.
+#
+# Results:
+# List of values.
+proc http::SplitCommaSeparatedFieldValue {fieldValue} {
+ set r {}
+ foreach el [split $fieldValue ,] {
+ lappend r [string trim $el]
+ }
+ return $r
+}
+
+
+# http::GetFieldValue --
+# Return the value of a header field.
+#
+# Arguments:
+# headers Headers key-value list
+# fieldName Name of header field whose value to return.
+#
+# Results:
+# The value of the fieldName header field
+#
+# Field names are matched case-insensitively (RFC 7230 Section 3.2).
+#
+# If the field is present multiple times, it is assumed that the field is
+# defined as a comma-separated list and the values are combined (by separating
+# them with commas, see RFC 7230 Section 3.2.2) and returned at once.
+proc http::GetFieldValue {headers fieldName} {
+ set r {}
+ foreach {field value} $headers {
+ if {[string equal -nocase $fieldName $field]} {
+ if {$r eq {}} {
+ set r $value
+ } else {
+ append r ", $value"
+ }
+ }
+ }
+ return $r
+}
+
proc http::make-transformation-chunked {chan command} {
coroutine [namespace current]::dechunk$chan ::http::ReceiveChunked $chan $command
chan event $chan readable [namespace current]::dechunk$chan
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.3.tm b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.5.tm
index 1794f07409..334dbcd74e 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.3.tm
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tcl8/8.6/tdbc/sqlite3-1.1.5.tm
@@ -13,7 +13,7 @@
package require tdbc
package require sqlite3
-package provide tdbc::sqlite3 1.1.3
+package provide tdbc::sqlite3 1.1.5
namespace eval tdbc::sqlite3 {
namespace export connection
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tclConfig.sh b/systems/texlive/tlnet/tlpkg/tltcl/lib/tclConfig.sh
index 038e31a22d..f968bb8048 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tclConfig.sh
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tclConfig.sh
@@ -15,7 +15,7 @@ TCL_DLL_FILE="tcl86.dll"
TCL_VERSION='8.6'
TCL_MAJOR_VERSION='8'
TCL_MINOR_VERSION='6'
-TCL_PATCH_LEVEL='.12'
+TCL_PATCH_LEVEL='.13'
# C compiler to use for compilation.
TCL_CC='x86_64-w64-mingw32-gcc'
@@ -55,11 +55,11 @@ TCL_LIBS='-lnetapi32 -lkernel32 -luser32 -ladvapi32 -luserenv -lws2_32'
# Top-level directory in which Tcl's platform-independent files are
# installed.
-TCL_PREFIX='/tmp/tltcl'
+TCL_PREFIX='/home/siepo/tltcl'
# Top-level directory in which Tcl's platform-specific files (e.g.
# executables) are installed.
-TCL_EXEC_PREFIX='/tmp/tltcl'
+TCL_EXEC_PREFIX='/home/siepo/tltcl'
# Flags to pass to cc when compiling the components of a shared library:
TCL_SHLIB_CFLAGS=''
@@ -68,7 +68,7 @@ TCL_SHLIB_CFLAGS=''
TCL_CFLAGS_WARNING='-Wall -Wpointer-arith -Wdeclaration-after-statement'
# Extra flags to pass to cc:
-TCL_EXTRA_CFLAGS='-pipe'
+TCL_EXTRA_CFLAGS='-pipe -DHAVE_CPUID=1'
# Base command to use for combining object files into a shared library:
TCL_SHLIB_LD='${CC} -shared'
@@ -111,15 +111,15 @@ TCL_LIB_FLAG=''
# String to pass to linker to pick up the Tcl library from its
# build directory.
-TCL_BUILD_LIB_SPEC='-L/tmp/siepo/tcl8.6.12/win -ltcl86'
+TCL_BUILD_LIB_SPEC='-L/tmp/siepo/tcl8.6.13/win -ltcl86'
# String to pass to linker to pick up the Tcl library from its
# installed directory.
-TCL_LIB_SPEC='-L/tmp/tltcl/lib -ltcl86'
+TCL_LIB_SPEC='-L/home/siepo/tltcl/lib -ltcl86'
# String to pass to the compiler so that an extension can
# find installed Tcl headers.
-TCL_INCLUDE_SPEC='-I/tmp/tltcl/include'
+TCL_INCLUDE_SPEC='-I/home/siepo/tltcl/include'
# Indicates whether a version numbers should be used in -l switches
# ("ok" means it's safe to use switches like -ltcl7.5; "nodots" means
@@ -146,12 +146,12 @@ TCL_UNSHARED_LIB_SUFFIX='${NODOT_VERSION}.a'
# different place than the directory containing the source files, this
# points to the location of the sources, not the location where Tcl was
# compiled.
-TCL_SRC_DIR='/tmp/siepo/tcl8.6.12'
+TCL_SRC_DIR='/tmp/siepo/tcl8.6.13'
# List of standard directories in which to look for packages during
# "package require" commands. Contains the "prefix" directory plus also
# the "exec_prefix" directory, if it is different.
-TCL_PACKAGE_PATH='{/tmp/tltcl/lib}'
+TCL_PACKAGE_PATH='{/home/siepo/tltcl/lib}'
# Tcl supports stub.
TCL_SUPPORTS_STUBS=1
@@ -164,17 +164,17 @@ TCL_STUB_LIB_FLAG='-ltclstub86'
# String to pass to linker to pick up the Tcl stub library from its
# build directory.
-TCL_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tcl8.6.12/win -ltclstub86'
+TCL_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tcl8.6.13/win -ltclstub86'
# String to pass to linker to pick up the Tcl stub library from its
# installed directory.
-TCL_STUB_LIB_SPEC='-L/tmp/tltcl/lib -ltclstub86'
+TCL_STUB_LIB_SPEC='-L/home/siepo/tltcl/lib -ltclstub86'
# Path to the Tcl stub library in the build directory.
-TCL_BUILD_STUB_LIB_PATH='/tmp/siepo/tcl8.6.12/win/libtclstub86.a'
+TCL_BUILD_STUB_LIB_PATH='/tmp/siepo/tcl8.6.13/win/libtclstub86.a'
# Path to the Tcl stub library in the install directory.
-TCL_STUB_LIB_PATH='/tmp/tltcl/lib/libtclstub86.a'
+TCL_STUB_LIB_PATH='/home/siepo/tltcl/lib/libtclstub86.a'
# Flag, 1: we built Tcl with threads enabled, 0 we didn't
TCL_THREADS=1
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc113.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc113.dll
deleted file mode 100755
index 5661dac889..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc113.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/libtdbcstub115.a b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/libtdbcstub115.a
new file mode 100644
index 0000000000..b88e751604
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/libtdbcstub115.a
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/pkgIndex.tcl
index d8c2515c3d..19a11599a1 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/pkgIndex.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/pkgIndex.tcl
@@ -13,14 +13,14 @@ apply {{dir} {
set libraryfile [file join $::env(TDBC_LIBRARY) tdbc.tcl]
}
if {[package vsatisfies [package provide Tcl] 9.0-]} {
- package ifneeded tdbc 1.1.3 \
+ package ifneeded tdbc 1.1.5 \
"package require TclOO;\
- [list load [file join $dir tcl9tdbc113.dll] [string totitle tdbc]]\;\
+ [list load [file join $dir tcl9tdbc115.dll] [string totitle tdbc]]\;\
[list source $libraryfile]"
} else {
- package ifneeded tdbc 1.1.3 \
+ package ifneeded tdbc 1.1.5 \
"package require TclOO;\
- [list load [file join $dir tdbc113.dll] [string totitle tdbc]]\;\
+ [list load [file join $dir tdbc115.dll] [string totitle tdbc]]\;\
[list source $libraryfile]"
}
}} $dir
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc.tcl
index f536131e80..f536131e80 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbc.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc115.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc115.dll
new file mode 100755
index 0000000000..3e495941db
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbc115.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbcConfig.sh b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbcConfig.sh
index 4895a43c02..a844a83063 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.3/tdbcConfig.sh
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbc1.1.5/tdbcConfig.sh
@@ -11,69 +11,69 @@
# RCS: @(#) $Id$
# TDBC's version number
-tdbc_VERSION=1.1.3
-TDBC_VERSION=1.1.3
+tdbc_VERSION=1.1.5
+TDBC_VERSION=1.1.5
# Name of the TDBC library - may be either a static or shared library
-tdbc_LIB_FILE=tdbc113.dll
-TDBC_LIB_FILE=tdbc113.dll
+tdbc_LIB_FILE=tdbc115.dll
+TDBC_LIB_FILE=tdbc115.dll
# String to pass to the linker to pick up the TDBC library from its build dir
-tdbc_BUILD_LIB_SPEC="-L/tmp/siepo/tcl8.6.12/win/pkgs/tdbc1.1.3 -ltdbc113"
-TDBC_BUILD_LIB_SPEC="-L/tmp/siepo/tcl8.6.12/win/pkgs/tdbc1.1.3 -ltdbc113"
+tdbc_BUILD_LIB_SPEC="-L/tmp/siepo/tcl8.6.13/win/pkgs/tdbc1.1.5 -ltdbc115"
+TDBC_BUILD_LIB_SPEC="-L/tmp/siepo/tcl8.6.13/win/pkgs/tdbc1.1.5 -ltdbc115"
# String to pass to the linker to pick up the TDBC library from its installed
# dir.
-tdbc_LIB_SPEC="-L/tmp/tltcl/lib/tdbc1.1.3 -ltdbc113"
-TDBC_LIB_SPEC="-L/tmp/tltcl/lib/tdbc1.1.3 -ltdbc113"
+tdbc_LIB_SPEC="-L/home/siepo/tltcl/lib/tdbc1.1.5 -ltdbc115"
+TDBC_LIB_SPEC="-L/home/siepo/tltcl/lib/tdbc1.1.5 -ltdbc115"
# Name of the TBDC stub library
-tdbc_STUB_LIB_FILE="libtdbcstub113.a"
-TDBC_STUB_LIB_FILE="libtdbcstub113.a"
+tdbc_STUB_LIB_FILE="libtdbcstub115.a"
+TDBC_STUB_LIB_FILE="libtdbcstub115.a"
# String to pass to the linker to pick up the TDBC stub library from its
# build directory
-tdbc_BUILD_STUB_LIB_SPEC="-L/tmp/siepo/tcl8.6.12/win/pkgs/tdbc1.1.3 -ltdbcstub113"
-TDBC_BUILD_STUB_LIB_SPEC="-L/tmp/siepo/tcl8.6.12/win/pkgs/tdbc1.1.3 -ltdbcstub113"
+tdbc_BUILD_STUB_LIB_SPEC="-L/tmp/siepo/tcl8.6.13/win/pkgs/tdbc1.1.5 -ltdbcstub115"
+TDBC_BUILD_STUB_LIB_SPEC="-L/tmp/siepo/tcl8.6.13/win/pkgs/tdbc1.1.5 -ltdbcstub115"
# String to pass to the linker to pick up the TDBC stub library from its
# installed directory
-tdbc_STUB_LIB_SPEC="-L/tmp/tltcl/lib/tdbc1.1.3 -ltdbcstub113"
-TDBC_STUB_LIB_SPEC="-L/tmp/tltcl/lib/tdbc1.1.3 -ltdbcstub113"
+tdbc_STUB_LIB_SPEC="-L/home/siepo/tltcl/lib/tdbc1.1.5 -ltdbcstub115"
+TDBC_STUB_LIB_SPEC="-L/home/siepo/tltcl/lib/tdbc1.1.5 -ltdbcstub115"
# Path name of the TDBC stub library in its build directory
-tdbc_BUILD_STUB_LIB_PATH="/tmp/siepo/tcl8.6.12/win/pkgs/tdbc1.1.3/libtdbcstub113.a"
-TDBC_BUILD_STUB_LIB_PATH="/tmp/siepo/tcl8.6.12/win/pkgs/tdbc1.1.3/libtdbcstub113.a"
+tdbc_BUILD_STUB_LIB_PATH="/tmp/siepo/tcl8.6.13/win/pkgs/tdbc1.1.5/libtdbcstub115.a"
+TDBC_BUILD_STUB_LIB_PATH="/tmp/siepo/tcl8.6.13/win/pkgs/tdbc1.1.5/libtdbcstub115.a"
# Path name of the TDBC stub library in its installed directory
-tdbc_STUB_LIB_PATH="/tmp/tltcl/lib/tdbc1.1.3/libtdbcstub113.a"
-TDBC_STUB_LIB_PATH="/tmp/tltcl/lib/tdbc1.1.3/libtdbcstub113.a"
+tdbc_STUB_LIB_PATH="/home/siepo/tltcl/lib/tdbc1.1.5/libtdbcstub115.a"
+TDBC_STUB_LIB_PATH="/home/siepo/tltcl/lib/tdbc1.1.5/libtdbcstub115.a"
# Location of the top-level source directories from which TDBC was built.
# This is the directory that contains doc/, generic/ and so on. If TDBC
# was compiled in a directory other than the source directory, this still
# points to the location of the sources, not the location where TDBC was
# compiled.
-tdbc_SRC_DIR="/tmp/siepo/tcl8.6.12/pkgs/tdbc1.1.3"
-TDBC_SRC_DIR="/tmp/siepo/tcl8.6.12/pkgs/tdbc1.1.3"
+tdbc_SRC_DIR="/tmp/siepo/tcl8.6.13/pkgs/tdbc1.1.5"
+TDBC_SRC_DIR="/tmp/siepo/tcl8.6.13/pkgs/tdbc1.1.5"
# String to pass to the compiler so that an extension can find installed TDBC
# headers
-tdbc_INCLUDE_SPEC="-I/tmp/tltcl/include"
-TDBC_INCLUDE_SPEC="-I/tmp/tltcl/include"
+tdbc_INCLUDE_SPEC="-I/home/siepo/tltcl/include"
+TDBC_INCLUDE_SPEC="-I/home/siepo/tltcl/include"
# String to pass to the compiler so that an extension can find TDBC headers
# in the source directory
-tdbc_BUILD_INCLUDE_SPEC="-I/tmp/siepo/tcl8.6.12/pkgs/tdbc1.1.3/generic"
-TDBC_BUILD_INCLUDE_SPEC="-I/tmp/siepo/tcl8.6.12/pkgs/tdbc1.1.3/generic"
+tdbc_BUILD_INCLUDE_SPEC="-I/tmp/siepo/tcl8.6.13/pkgs/tdbc1.1.5/generic"
+TDBC_BUILD_INCLUDE_SPEC="-I/tmp/siepo/tcl8.6.13/pkgs/tdbc1.1.5/generic"
# Path name where .tcl files in the tdbc package appear at run time.
-tdbc_LIBRARY_PATH="/tmp/tltcl/lib/tdbc1.1.3"
-TDBC_LIBRARY_PATH="/tmp/tltcl/lib/tdbc1.1.3"
+tdbc_LIBRARY_PATH="/home/siepo/tltcl/lib/tdbc1.1.5"
+TDBC_LIBRARY_PATH="/home/siepo/tltcl/lib/tdbc1.1.5"
# Path name where .tcl files in the tdbc package appear at build time.
-tdbc_BUILD_LIBRARY_PATH="/tmp/siepo/tcl8.6.12/pkgs/tdbc1.1.3/library"
-TDBC_BUILD_LIBRARY_PATH="/tmp/siepo/tcl8.6.12/pkgs/tdbc1.1.3/library"
+tdbc_BUILD_LIBRARY_PATH="/tmp/siepo/tcl8.6.13/pkgs/tdbc1.1.5/library"
+TDBC_BUILD_LIBRARY_PATH="/tmp/siepo/tcl8.6.13/pkgs/tdbc1.1.5/library"
# Additional flags that must be passed to the C compiler to use tdbc
tdbc_CFLAGS=
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql113.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql113.dll
deleted file mode 100755
index 8efbb41702..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql113.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/pkgIndex.tcl
index 6ce12b61a8..1630e7a201 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/pkgIndex.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/pkgIndex.tcl
@@ -4,11 +4,11 @@ if {![package vsatisfies [package provide Tcl] 8.6-]} {
return
}
if {[package vsatisfies [package provide Tcl] 9.0-]} {
- package ifneeded tdbc::mysql 1.1.3 \
+ package ifneeded tdbc::mysql 1.1.5 \
"[list source [file join $dir tdbcmysql.tcl]]\;\
- [list load [file join $dir tcl9tdbcmysql113.dll] [string totitle tdbcmysql]]"
+ [list load [file join $dir tcl9tdbcmysql115.dll] [string totitle tdbcmysql]]"
} else {
- package ifneeded tdbc::mysql 1.1.3 \
+ package ifneeded tdbc::mysql 1.1.5 \
"[list source [file join $dir tdbcmysql.tcl]]\;\
- [list load [file join $dir tdbcmysql113.dll] [string totitle tdbcmysql]]"
+ [list load [file join $dir tdbcmysql115.dll] [string totitle tdbcmysql]]"
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql.tcl
index caa334c470..caa334c470 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.3/tdbcmysql.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql115.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql115.dll
new file mode 100755
index 0000000000..13809a67e3
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcmysql1.1.5/tdbcmysql115.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc113.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc113.dll
deleted file mode 100755
index 9d0a955adb..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc113.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/pkgIndex.tcl
index f672dd7a20..48c49c6875 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/pkgIndex.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/pkgIndex.tcl
@@ -4,11 +4,11 @@ if {![package vsatisfies [package provide Tcl] 8.6-]} {
return
}
if {[package vsatisfies [package provide Tcl] 9.0-]} {
- package ifneeded tdbc::odbc 1.1.3 \
+ package ifneeded tdbc::odbc 1.1.5 \
"[list source [file join $dir tdbcodbc.tcl]]\;\
- [list load [file join $dir tcl9tdbcodbc113.dll] [string totitle tdbcodbc]]"
+ [list load [file join $dir tcl9tdbcodbc115.dll] [string totitle tdbcodbc]]"
} else {
- package ifneeded tdbc::odbc 1.1.3 \
+ package ifneeded tdbc::odbc 1.1.5 \
"[list source [file join $dir tdbcodbc.tcl]]\;\
- [list load [file join $dir tdbcodbc113.dll] [string totitle tdbcodbc]]"
+ [list load [file join $dir tdbcodbc115.dll] [string totitle tdbcodbc]]"
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc.tcl
index 0b19a4b891..7bc68ba323 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.3/tdbcodbc.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc.tcl
@@ -221,6 +221,19 @@ package require tdbc
return -level 0 -options $options $result
}
+ # The 'evaldirect' evaluates driver-native SQL code without preparing it,
+ # and returns a list of dicts (similar to '$connection allrows -as dicts').
+
+ method evaldirect {sqlStatement} {
+ set stmt [::tdbc::odbc::evaldirectStatement create \
+ Stmt::[incr statementSeq] [self] $sqlStatement]
+ set status [catch {
+ $stmt allrows -as dicts
+ } result options]
+ catch {rename $stmt {}}
+ return -level 0 -options $options $result
+ }
+
# The 'prepareCall' method gives a portable interface to prepare
# calls to stored procedures. It delegates to 'prepare' to do the
# actual work.
@@ -453,6 +466,32 @@ oo::class create ::tdbc::odbc::foreignkeysStatement {
#------------------------------------------------------------------------------
#
+# tdbc::odbc::evaldirectStatement --
+#
+# The class 'tdbc::odbc::evaldirectStatement' provides a mechanism to
+# execute driver-name SQL code through an ODBC connection. The SQL code
+# is not prepared and no tokenization or variable substitution is done.
+#
+#------------------------------------------------------------------------------
+
+oo::class create ::tdbc::odbc::evaldirectStatement {
+
+ superclass ::tdbc::statement
+
+ # The constructor is written in C. It accepts the handle to the
+ # connection and a SQL statement. It works in all
+ # ways like the constructor of the 'statement' class except that
+ # its 'init' method does not tokenize or prepare the SQL statement, and
+ # sets up to run the SQL query without performing variable substitution.
+
+ # The 'resultSetCreate' method forwards to the result set constructor
+
+ forward resultSetCreate ::tdbc::odbc::resultset create
+
+}
+
+#------------------------------------------------------------------------------
+#
# tdbc::odbc::typesStatement --
#
# The class 'tdbc::odbc::typesStatement' represents the special
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc115.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc115.dll
new file mode 100755
index 0000000000..1dabdc48b8
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcodbc1.1.5/tdbcodbc115.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres113.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres113.dll
deleted file mode 100755
index 42b2e23f88..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres113.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/pkgIndex.tcl
index fe16e4a896..96b6ab5777 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/pkgIndex.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/pkgIndex.tcl
@@ -4,11 +4,11 @@ if {![package vsatisfies [package provide Tcl] 8.6-]} {
return
}
if {[package vsatisfies [package provide Tcl] 9.0-]} {
- package ifneeded tdbc::postgres 1.1.3 \
+ package ifneeded tdbc::postgres 1.1.5 \
"[list source [file join $dir tdbcpostgres.tcl]]\;\
- [list load [file join $dir tcl9tdbcpostgres113.dll] [string totitle tdbcpostgres]]"
+ [list load [file join $dir tcl9tdbcpostgres115.dll] [string totitle tdbcpostgres]]"
} else {
- package ifneeded tdbc::postgres 1.1.3 \
+ package ifneeded tdbc::postgres 1.1.5 \
"[list source [file join $dir tdbcpostgres.tcl]]\;\
- [list load [file join $dir tdbcpostgres113.dll] [string totitle tdbcpostgres]]"
+ [list load [file join $dir tdbcpostgres115.dll] [string totitle tdbcpostgres]]"
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres.tcl
index c5c4ef0f85..c5c4ef0f85 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.3/tdbcpostgres.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres115.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres115.dll
new file mode 100755
index 0000000000..bc2f15e7e6
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tdbcpostgres1.1.5/tdbcpostgres115.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/thread287.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/thread287.dll
deleted file mode 100755
index 683ce2f927..0000000000
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/thread287.dll
+++ /dev/null
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/pkgIndex.tcl
index 795359dd9b..c876ed57a0 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/pkgIndex.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/pkgIndex.tcl
@@ -11,7 +11,7 @@ if {![package vsatisfies [package provide Tcl] 8.4]} {
}
}
-# All Tcl 8.4+ interps can [load] Thread 2.8.7
+# All Tcl 8.4+ interps can [load] Thread 2.8.8
#
# For interps that are not thread-enabled, we still call [package ifneeded].
# This is contrary to the usual convention, but is a good idea because we
@@ -23,13 +23,13 @@ if {![package vsatisfies [package provide Tcl] 8.4]} {
# about a thread-disabled interp, instead of the message
# "can't find package Thread".
-package ifneeded Thread 2.8.7 [list load [file join $dir thread287.dll] [string totitle thread]]
+package ifneeded Thread 2.8.8 [list load [file join $dir thread288.dll] [string totitle thread]]
# package Ttrace uses some support machinery.
# In Tcl 8.4 interps we use some older interfaces
if {![package vsatisfies [package provide Tcl] 8.5]} {
- package ifneeded Ttrace 2.8.7 "
+ package ifneeded Ttrace 2.8.8 "
[list proc thread_source {dir} {
if {[info exists ::env(TCL_THREAD_LIBRARY)] &&
[file readable $::env(TCL_THREAD_LIBRARY)/ttrace.tcl]} {
@@ -50,7 +50,7 @@ if {![package vsatisfies [package provide Tcl] 8.5]} {
# In Tcl 8.5+ interps; use [::apply]
-package ifneeded Ttrace 2.8.7 [list ::apply {{dir} {
+package ifneeded Ttrace 2.8.8 [list ::apply {{dir} {
if {[info exists ::env(TCL_THREAD_LIBRARY)] &&
[file readable $::env(TCL_THREAD_LIBRARY)/ttrace.tcl]} {
source $::env(TCL_THREAD_LIBRARY)/ttrace.tcl
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/thread288.dll b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/thread288.dll
new file mode 100755
index 0000000000..a79ca08a80
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/thread288.dll
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/ttrace.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/ttrace.tcl
index 98a9c26191..01cecc6675 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.7/ttrace.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/thread2.8.8/ttrace.tcl
@@ -73,7 +73,7 @@ namespace eval ttrace {
}
# Keep in sync with the Thread package
- package provide Ttrace 2.8.7
+ package provide Ttrace 2.8.8
# Package variables
variable resolvers "" ; # List of registered resolvers
@@ -195,7 +195,7 @@ namespace eval ttrace {
}
variable epoch $from
}
- uplevel [getscript]
+ uplevel 1 [getscript]
}
proc getscript {} {
@@ -218,7 +218,7 @@ namespace eval ttrace {
proc cleanup {args} {
foreach cmd [info commands resolve::cleaner_*] {
- uplevel $cmd $args
+ uplevel 1 $cmd $args
}
}
@@ -322,10 +322,10 @@ namespace eval ttrace {
proc unknown {args} {
set cmd [lindex $args 0]
- if {[uplevel ttrace::_resolve [list $cmd]]} {
- set c [catch {uplevel $cmd [lrange $args 1 end]} r]
+ if {[uplevel 1 ttrace::_resolve [list $cmd]]} {
+ set c [catch {uplevel 1 $cmd [lrange $args 1 end]} r]
} else {
- set c [catch {::eval ::tcl::unknown $args} r]
+ set c [catch {uplevel 1 ::tcl::unknown $args} r]
}
return -code $c -errorcode $::errorCode -errorinfo $::errorInfo $r
}
@@ -333,7 +333,7 @@ namespace eval ttrace {
proc _resolve {cmd} {
variable resolvers
foreach resolver $resolvers {
- if {[uplevel [info comm resolve::$resolver] [list $cmd]]} {
+ if {[uplevel 1 [info comm resolve::$resolver] [list $cmd]]} {
return 1
}
}
@@ -542,7 +542,7 @@ eval {
return
}
set nop [lindex $cmdline 1]
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
if {$cns == "::"} {
set cns ""
}
@@ -614,7 +614,7 @@ eval {
}
set opts [lrange $cmdline 1 end]
if {[llength $opts]} {
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
if {$cns == "::"} {
set cns ""
}
@@ -662,7 +662,7 @@ eval {
if {$code != 0} {
return
}
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
if {$cns == "::"} {
set cns ""
}
@@ -707,7 +707,7 @@ eval {
if {$code != 0} {
return
}
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
if {$cns == "::"} {
set cns ""
}
@@ -747,15 +747,15 @@ eval {
set cmd [lindex $args 0]
set hit [lsearch -glob {commands procs args default body} $cmd*]
if {$hit > 1} {
- if {[catch {uplevel ::tcl::info $args}]} {
- uplevel ttrace::_resolve [list [lindex $args 1]]
+ if {[catch {uplevel 1 ::tcl::info $args}]} {
+ uplevel 1 ttrace::_resolve [list [lindex $args 1]]
}
- return [uplevel ::tcl::info $args]
+ return [uplevel 1 ::tcl::info $args]
}
if {$hit == -1} {
- return [uplevel ::tcl::info $args]
+ return [uplevel 1 ::tcl::info $args]
}
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
if {$cns == "::"} {
set cns ""
}
@@ -774,7 +774,7 @@ eval {
set lazy([namespace tail $entry]) 1
}
}
- foreach entry [uplevel ::tcl::info $args] {
+ foreach entry [uplevel 1 ::tcl::info $args] {
set lazy($entry) 1
}
array names lazy
@@ -789,7 +789,7 @@ eval {
#
ttrace::addresolver resolveprocs {cmd {export 0}} {
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
set name [namespace tail $cmd]
if {$cns == "::"} {
set cns ""
@@ -879,7 +879,7 @@ eval {
}
set resolver [ttrace::addresolver resolveclasses {classname} {
- set cns [uplevel namespace current]
+ set cns [uplevel 1 namespace current]
set script [ttrace::getentry xotcl $classname]
if {$script == ""} {
set name [namespace tail $classname]
@@ -895,7 +895,7 @@ eval {
return 0
}
}
- uplevel [list namespace eval $cns $script]
+ uplevel 1 [list namespace eval $cns $script]
return 1
}]
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/clrpick.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/clrpick.tcl
index e408d037ed..d67c67fd4e 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/clrpick.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/clrpick.tcl
@@ -316,7 +316,7 @@ proc ::tk::dialog::color::BuildDialog {w} {
# Accelerator bindings
bind $lab <<AltUnderlined>> [list focus $ent]
- bind $w <KeyPress-Escape> [list tk::ButtonInvoke $data(cancelBtn)]
+ bind $w <Escape> [list tk::ButtonInvoke $data(cancelBtn)]
bind $w <Alt-Key> [list tk::AltKeyInDialog $w %A]
wm protocol $w WM_DELETE_WINDOW [list tk::dialog::color::CancelCmd $w]
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/console.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/console.tcl
index 30c4d88305..83723f15f2 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/console.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/console.tcl
@@ -91,29 +91,29 @@ proc ::tk::ConsoleInit {} {
AmpMenuArgs .menubar.edit add separator
if {$::tk::console::useFontchooser} {
- if {[tk windowingsystem] eq "aqua"} {
- .menubar.edit add command -label tk_choose_font_marker
- set index [.menubar.edit index tk_choose_font_marker]
- .menubar.edit entryconfigure $index \
- -label [mc "Show Fonts"]\
- -accelerator "$mod-T"\
- -command [list ::tk::console::FontchooserToggle]
- bind Console <<TkFontchooserVisibility>> \
- [list ::tk::console::FontchooserVisibility $index]
+ if {[tk windowingsystem] eq "aqua"} {
+ .menubar.edit add command -label tk_choose_font_marker
+ set index [.menubar.edit index tk_choose_font_marker]
+ .menubar.edit entryconfigure $index \
+ -label [mc "Show Fonts"]\
+ -accelerator "$mod-T"\
+ -command [list ::tk::console::FontchooserToggle]
+ bind Console <<TkFontchooserVisibility>> \
+ [list ::tk::console::FontchooserVisibility $index]
::tk::console::FontchooserVisibility $index
- } else {
- AmpMenuArgs .menubar.edit add command -label [mc "&Font..."] \
- -command [list ::tk::console::FontchooserToggle]
- }
+ } else {
+ AmpMenuArgs .menubar.edit add command -label [mc "&Font..."] \
+ -command [list ::tk::console::FontchooserToggle]
+ }
bind Console <FocusIn> [list ::tk::console::FontchooserFocus %W 1]
bind Console <FocusOut> [list ::tk::console::FontchooserFocus %W 0]
}
AmpMenuArgs .menubar.edit add command -label [mc "&Increase Font Size"] \
- -accel "$mod++" -command {event generate .console <<Console_FontSizeIncr>>}
+ -accel "$mod++" -command {event generate .console <<Console_FontSizeIncr>>}
AmpMenuArgs .menubar.edit add command -label [mc "&Decrease Font Size"] \
- -accel "$mod+-" -command {event generate .console <<Console_FontSizeDecr>>}
+ -accel "$mod+-" -command {event generate .console <<Console_FontSizeDecr>>}
AmpMenuArgs .menubar.edit add command -label [mc "Fit To Screen Width"] \
- -command {event generate .console <<Console_FitScreenWidth>>}
+ -command {event generate .console <<Console_FitScreenWidth>>}
if {[tk windowingsystem] eq "aqua"} {
.menubar add cascade -label [mc Window] -menu [menu .menubar.window]
@@ -126,31 +126,31 @@ proc ::tk::ConsoleInit {} {
catch {font create TkConsoleFont {*}[font configure TkFixedFont]}
set families [font families]
switch -exact -- [tk windowingsystem] {
- aqua { set preferred {Monaco 10} }
- win32 { set preferred {ProFontWindows 8 Consolas 8} }
- default { set preferred {} }
+ aqua { set preferred {Monaco 10} }
+ win32 { set preferred {ProFontWindows 8 Consolas 8} }
+ default { set preferred {} }
}
foreach {family size} $preferred {
- if {$family in $families} {
- font configure TkConsoleFont -family $family -size $size
- break
- }
+ if {$family in $families} {
+ font configure TkConsoleFont -family $family -size $size
+ break
+ }
}
# Provide the right border for the text widget (platform dependent).
::ttk::style layout ConsoleFrame {
- Entry.field -sticky news -border 1 -children {
- ConsoleFrame.padding -sticky news
- }
+ Entry.field -sticky news -border 1 -children {
+ ConsoleFrame.padding -sticky news
+ }
}
::ttk::frame .consoleframe -style ConsoleFrame
set con [text .console -yscrollcommand [list .sb set] -setgrid true \
- -borderwidth 0 -highlightthickness 0 -font TkConsoleFont]
+ -borderwidth 0 -highlightthickness 0 -font TkConsoleFont]
if {[tk windowingsystem] eq "aqua"} {
- scrollbar .sb -command [list $con yview]
+ scrollbar .sb -command [list $con yview]
} else {
- ::ttk::scrollbar .sb -command [list $con yview]
+ ::ttk::scrollbar .sb -command [list $con yview]
}
pack .sb -in .consoleframe -fill both -side right -padx 1 -pady 1
pack $con -in .consoleframe -fill both -expand 1 -side left -padx 1 -pady 1
@@ -215,7 +215,7 @@ proc ::tk::ConsoleSource {} {
[list [mc "Tcl Scripts"] .tcl] \
[list [mc "All Files"] *]]]
if {$filename ne ""} {
- set cmd [list source $filename]
+ set cmd [list source $filename]
if {[catch {consoleinterp eval $cmd} result]} {
ConsoleOutput stderr "$result\n"
}
@@ -273,22 +273,22 @@ proc ::tk::ConsoleHistory {cmd} {
variable HistNum
switch $cmd {
- prev {
+ prev {
incr HistNum -1
if {$HistNum == 0} {
set cmd {history event [expr {[history nextid] -1}]}
} else {
set cmd "history event $HistNum"
}
- if {[catch {consoleinterp eval $cmd} cmd]} {
- incr HistNum
- return
- }
+ if {[catch {consoleinterp eval $cmd} cmd]} {
+ incr HistNum
+ return
+ }
.console delete promptEnd end
- .console insert promptEnd $cmd {input stdin}
+ .console insert promptEnd $cmd {input stdin}
.console see end
- }
- next {
+ }
+ next {
incr HistNum
if {$HistNum == 0} {
set cmd {history event [expr {[history nextid] -1}]}
@@ -304,10 +304,10 @@ proc ::tk::ConsoleHistory {cmd} {
.console delete promptEnd end
.console insert promptEnd $cmd {input stdin}
.console see end
- }
- reset {
- set HistNum 1
- }
+ }
+ reset {
+ set HistNum 1
+ }
}
}
@@ -324,19 +324,19 @@ proc ::tk::ConsolePrompt {{partial normal}} {
if {$partial eq "normal"} {
set temp [$w index "end - 1 char"]
$w mark set output end
- if {[consoleinterp eval "info exists tcl_prompt1"]} {
- consoleinterp eval "eval \[set tcl_prompt1\]"
- } else {
- puts -nonewline [EvalAttached $::tk::console::defaultPrompt]
- }
+ if {[consoleinterp eval "info exists tcl_prompt1"]} {
+ consoleinterp eval "eval \[set tcl_prompt1\]"
+ } else {
+ puts -nonewline [EvalAttached $::tk::console::defaultPrompt]
+ }
} else {
set temp [$w index output]
$w mark set output end
- if {[consoleinterp eval "info exists tcl_prompt2"]} {
- consoleinterp eval "eval \[set tcl_prompt2\]"
- } else {
+ if {[consoleinterp eval "info exists tcl_prompt2"]} {
+ consoleinterp eval "eval \[set tcl_prompt2\]"
+ } else {
puts -nonewline "> "
- }
+ }
}
flush stdout
$w mark set output $temp
@@ -350,33 +350,33 @@ proc ::tk::ConsolePrompt {{partial normal}} {
# Copy selected text from the console
proc ::tk::console::Copy {w} {
if {![catch {set data [$w get sel.first sel.last]}]} {
- clipboard clear -displayof $w
- clipboard append -displayof $w $data
+ clipboard clear -displayof $w
+ clipboard append -displayof $w $data
}
}
# Copies selected text. If the selection is within the current active edit
# region then it will be cut, if not it is only copied.
proc ::tk::console::Cut {w} {
if {![catch {set data [$w get sel.first sel.last]}]} {
- clipboard clear -displayof $w
- clipboard append -displayof $w $data
- if {[$w compare sel.first >= output]} {
- $w delete sel.first sel.last
+ clipboard clear -displayof $w
+ clipboard append -displayof $w $data
+ if {[$w compare sel.first >= output]} {
+ $w delete sel.first sel.last
}
}
}
# Paste text from the clipboard
proc ::tk::console::Paste {w} {
catch {
- set clip [::tk::GetSelection $w CLIPBOARD]
- set list [split $clip \n\r]
- tk::ConsoleInsert $w [lindex $list 0]
- foreach x [lrange $list 1 end] {
- $w mark set insert {end - 1c}
- tk::ConsoleInsert $w "\n"
- tk::ConsoleInvoke
- tk::ConsoleInsert $w $x
- }
+ set clip [::tk::GetSelection $w CLIPBOARD]
+ set list [split $clip \n\r]
+ tk::ConsoleInsert $w [lindex $list 0]
+ foreach x [lrange $list 1 end] {
+ $w mark set insert {end - 1c}
+ tk::ConsoleInsert $w "\n"
+ tk::ConsoleInvoke
+ tk::ConsoleInsert $w $x
+ }
}
}
@@ -388,14 +388,14 @@ proc ::tk::console::FitScreenWidth {w} {
set fit 0
array set fi [font configure TkConsoleFont]
while {$s < 0} {
- set fi(-size) $s
- set f [font create {*}[array get fi]]
- set c [font measure $f "eM"]
- font delete $f
- if {$c * $cwidth < 1.667 * $width} {
- font configure TkConsoleFont -size $s
- break
- }
+ set fi(-size) $s
+ set f [font create {*}[array get fi]]
+ set c [font measure $f "eM"]
+ font delete $f
+ if {$c * $cwidth < 1.667 * $width} {
+ font configure TkConsoleFont -size $s
+ break
+ }
incr s 2
}
}
@@ -416,60 +416,64 @@ proc ::tk::ConsoleBind {w} {
bind Console $ev [bind Text $ev]
}
## We really didn't want the newline insertion...
- bind Console <Control-Key-o> {}
+ bind Console <Control-o> {}
## ...or any Control-v binding (would block <<Paste>>)
- bind Console <Control-Key-v> {}
+ bind Console <Control-v> {}
# For the moment, transpose isn't enabled until the console
# gets and overhaul of how it handles input -- hobbs
- bind Console <Control-Key-t> {}
+ bind Console <Control-t> {}
# 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.
- bind Console <Alt-KeyPress> {# nothing }
- bind Console <Meta-KeyPress> {# nothing}
- bind Console <Control-KeyPress> {# nothing}
+ bind Console <Alt-Key> {# nothing }
+ bind Console <Meta-Key> {# nothing}
+ bind Console <Control-Key> {# nothing}
+ if {[tk windowingsystem] eq "aqua"} {
+ bind Console <Command-Key> {# nothing}
+ bind Console <Mod4-Key> {# nothing}
+ }
foreach {ev key} {
- <<Console_NextImmediate>> <Control-Key-n>
- <<Console_PrevImmediate>> <Control-Key-p>
- <<Console_PrevSearch>> <Control-Key-r>
- <<Console_NextSearch>> <Control-Key-s>
-
- <<Console_Expand>> <Key-Tab>
- <<Console_Expand>> <Key-Escape>
- <<Console_ExpandFile>> <Control-Shift-Key-F>
- <<Console_ExpandProc>> <Control-Shift-Key-P>
- <<Console_ExpandVar>> <Control-Shift-Key-V>
- <<Console_Tab>> <Control-Key-i>
- <<Console_Tab>> <Meta-Key-i>
- <<Console_Eval>> <Key-Return>
- <<Console_Eval>> <Key-KP_Enter>
-
- <<Console_Clear>> <Control-Key-l>
- <<Console_KillLine>> <Control-Key-k>
- <<Console_Transpose>> <Control-Key-t>
- <<Console_ClearLine>> <Control-Key-u>
- <<Console_SaveCommand>> <Control-Key-z>
- <<Console_FontSizeIncr>> <Control-Key-plus>
- <<Console_FontSizeDecr>> <Control-Key-minus>
+ <<Console_NextImmediate>> <Control-n>
+ <<Console_PrevImmediate>> <Control-p>
+ <<Console_PrevSearch>> <Control-r>
+ <<Console_NextSearch>> <Control-s>
+
+ <<Console_Expand>> <Tab>
+ <<Console_Expand>> <Escape>
+ <<Console_ExpandFile>> <Control-Shift-F>
+ <<Console_ExpandProc>> <Control-Shift-P>
+ <<Console_ExpandVar>> <Control-Shift-V>
+ <<Console_Tab>> <Control-i>
+ <<Console_Tab>> <Meta-i>
+ <<Console_Eval>> <Return>
+ <<Console_Eval>> <KP_Enter>
+
+ <<Console_Clear>> <Control-l>
+ <<Console_KillLine>> <Control-k>
+ <<Console_Transpose>> <Control-t>
+ <<Console_ClearLine>> <Control-u>
+ <<Console_SaveCommand>> <Control-z>
+ <<Console_FontSizeIncr>> <Control-plus>
+ <<Console_FontSizeDecr>> <Control-minus>
} {
event add $ev $key
bind Console $key {}
}
if {[tk windowingsystem] eq "aqua"} {
foreach {ev key} {
- <<Console_FontSizeIncr>> <Command-Key-plus>
- <<Console_FontSizeDecr>> <Command-Key-minus>
+ <<Console_FontSizeIncr>> <Command-plus>
+ <<Console_FontSizeDecr>> <Command-minus>
} {
event add $ev $key
bind Console $key {}
}
if {$::tk::console::useFontchooser} {
- bind Console <Command-Key-t> [list ::tk::console::FontchooserToggle]
+ bind Console <Command-t> [list ::tk::console::FontchooserToggle]
}
}
bind Console <<Console_Expand>> {
@@ -587,7 +591,7 @@ proc ::tk::ConsoleBind {w} {
bind Console <Insert> {
catch {tk::ConsoleInsert %W [::tk::GetSelection %W PRIMARY]}
}
- bind Console <KeyPress> {
+ bind Console <Key> {
tk::ConsoleInsert %W %A
}
bind Console <F9> {
@@ -604,20 +608,20 @@ proc ::tk::ConsoleBind {w} {
bind Console <<Paste>> { ::tk::console::Paste %W }
bind Console <<Console_FontSizeIncr>> {
- set size [font configure TkConsoleFont -size]
- if {$size < 0} {set sign -1} else {set sign 1}
- set size [expr {(abs($size) + 1) * $sign}]
- font configure TkConsoleFont -size $size
+ set size [font configure TkConsoleFont -size]
+ if {$size < 0} {set sign -1} else {set sign 1}
+ set size [expr {(abs($size) + 1) * $sign}]
+ font configure TkConsoleFont -size $size
if {$::tk::console::useFontchooser} {
tk fontchooser configure -font TkConsoleFont
}
}
bind Console <<Console_FontSizeDecr>> {
- set size [font configure TkConsoleFont -size]
- if {abs($size) < 2} { return }
- if {$size < 0} {set sign -1} else {set sign 1}
- set size [expr {(abs($size) - 1) * $sign}]
- font configure TkConsoleFont -size $size
+ set size [font configure TkConsoleFont -size]
+ if {abs($size) < 2} { return }
+ if {$size < 0} {set sign -1} else {set sign 1}
+ set size [expr {(abs($size) - 1) * $sign}]
+ font configure TkConsoleFont -size $size
if {$::tk::console::useFontchooser} {
tk fontchooser configure -font TkConsoleFont
}
@@ -629,28 +633,28 @@ proc ::tk::ConsoleBind {w} {
##
## Bindings for doing special things based on certain keys
##
- bind PostConsole <Key-parenright> {
+ bind PostConsole <parenright> {
if {"\\" ne [%W get insert-2c]} {
::tk::console::MatchPair %W \( \) promptEnd
}
}
- bind PostConsole <Key-bracketright> {
+ bind PostConsole <bracketright> {
if {"\\" ne [%W get insert-2c]} {
::tk::console::MatchPair %W \[ \] promptEnd
}
}
- bind PostConsole <Key-braceright> {
+ bind PostConsole <braceright> {
if {"\\" ne [%W get insert-2c]} {
::tk::console::MatchPair %W \{ \} promptEnd
}
}
- bind PostConsole <Key-quotedbl> {
+ bind PostConsole <quotedbl> {
if {"\\" ne [%W get insert-2c]} {
::tk::console::MatchQuote %W promptEnd
}
}
- bind PostConsole <KeyPress> {
+ bind PostConsole <Key> {
if {"%A" ne ""} {
::tk::console::TagProc %W
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/cscroll.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/cscroll.tcl
index c88bfa9fc3..98a4be2b5b 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/cscroll.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/cscroll.tcl
@@ -25,7 +25,7 @@ set btns [addSeeDismiss $w.buttons $w]
pack $btns -side bottom -fill x
frame $w.grid
-scrollbar $w.hscroll -orient horiz -command "$c xview"
+scrollbar $w.hscroll -orient horizontal -command "$c xview"
scrollbar $w.vscroll -command "$c yview"
canvas $c -relief sunken -borderwidth 2 -scrollregion {-11c -11c 50c 20c} \
-xscrollcommand "$w.hscroll set" \
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/entry2.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/entry2.tcl
index 6405d8518d..a4009a745d 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/entry2.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/entry2.tcl
@@ -27,15 +27,15 @@ frame $w.frame -borderwidth 10
pack $w.frame -side top -fill x -expand 1
entry $w.frame.e1 -xscrollcommand "$w.frame.s1 set"
-ttk::scrollbar $w.frame.s1 -orient horiz -command \
+ttk::scrollbar $w.frame.s1 -orient horizontal -command \
"$w.frame.e1 xview"
frame $w.frame.spacer1 -width 20 -height 10
entry $w.frame.e2 -xscrollcommand "$w.frame.s2 set"
-ttk::scrollbar $w.frame.s2 -orient horiz -command \
+ttk::scrollbar $w.frame.s2 -orient horizontal -command \
"$w.frame.e2 xview"
frame $w.frame.spacer2 -width 20 -height 10
entry $w.frame.e3 -xscrollcommand "$w.frame.s3 set"
-ttk::scrollbar $w.frame.s3 -orient horiz -command \
+ttk::scrollbar $w.frame.s3 -orient horizontal -command \
"$w.frame.e3 xview"
pack $w.frame.e1 $w.frame.s1 $w.frame.spacer1 $w.frame.e2 $w.frame.s2 \
$w.frame.spacer2 $w.frame.e3 $w.frame.s3 -side top -fill x
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/floor.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/floor.tcl
index eb2ea7f289..7d0ad3bd39 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/floor.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/floor.tcl
@@ -333,195 +333,195 @@ proc bg3 {w fill outline} {
proc fg1 {w color} {
global floorLabels floorItems
- set i [$w create polygon 375 246 375 172 341 172 341 246 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 101
set {floorItems(101)} $i
$w create text 358 209 -text 101 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 307 240 339 240 339 206 307 206 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) {Pub Lift1}
set {floorItems(Pub Lift1)} $i
$w create text 323 223 -text {Pub Lift1} -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 339 205 307 205 307 171 339 171 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) {Priv Lift1}
set {floorItems(Priv Lift1)} $i
$w create text 323 188 -text {Priv Lift1} -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 42 389 42 337 1 337 1 389 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 42 389 42 337 1 337 1 389 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 110
set {floorItems(110)} $i
$w create text 21.5 363 -text 110 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 59 389 59 385 90 385 90 337 44 337 44 389 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 59 389 59 385 90 385 90 337 44 337 44 389 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 109
set {floorItems(109)} $i
$w create text 67 363 -text 109 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 51 300 51 253 6 253 6 300 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 51 300 51 253 6 253 6 300 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 111
set {floorItems(111)} $i
$w create text 28.5 276.5 -text 111 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 98 248 98 309 79 309 79 248 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 98 248 98 309 79 309 79 248 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 117B
set {floorItems(117B)} $i
$w create text 88.5 278.5 -text 117B -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 51 251 51 204 6 204 6 251 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 51 251 51 204 6 204 6 251 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 112
set {floorItems(112)} $i
$w create text 28.5 227.5 -text 112 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 6 156 51 156 51 203 6 203 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 6 156 51 156 51 203 6 203 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 113
set {floorItems(113)} $i
$w create text 28.5 179.5 -text 113 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 85 169 79 169 79 192 85 192 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 85 169 79 169 79 192 85 192 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 117A
set {floorItems(117A)} $i
$w create text 82 180.5 -text 117A -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 77 302 77 168 53 168 53 302 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 77 302 77 168 53 168 53 302 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 117
set {floorItems(117)} $i
$w create text 65 235 -text 117 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 51 155 51 115 6 115 6 155 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 51 155 51 115 6 115 6 155 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 114
set {floorItems(114)} $i
$w create text 28.5 135 -text 114 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 95 115 53 115 53 168 95 168 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 95 115 53 115 53 168 95 168 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 115
set {floorItems(115)} $i
$w create text 74 141.5 -text 115 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 87 113 87 27 10 27 10 113 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 87 113 87 27 10 27 10 113 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 116
set {floorItems(116)} $i
$w create text 48.5 70 -text 116 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 89 91 128 91 128 113 89 113 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 89 91 128 91 128 113 89 113 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 118
set {floorItems(118)} $i
$w create text 108.5 102 -text 118 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 178 128 178 132 216 132 216 91 163 91 163 112 149 112 149 128 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 178 128 178 132 216 132 216 91 163 91 163 112 149 112 149 128 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 120
set {floorItems(120)} $i
$w create text 189.5 111.5 -text 120 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 79 193 87 193 87 169 136 169 136 192 156 192 156 169 175 169 175 246 79 246 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 79 193 87 193 87 169 136 169 136 192 156 192 156 169 175 169 175 246 79 246 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 122
set {floorItems(122)} $i
$w create text 131 207.5 -text 122 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 138 169 154 169 154 191 138 191 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 138 169 154 169 154 191 138 191 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 121
set {floorItems(121)} $i
$w create text 146 180 -text 121 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 99 300 126 300 126 309 99 309 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 99 300 126 300 126 309 99 309 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 106A
set {floorItems(106A)} $i
$w create text 112.5 304.5 -text 106A -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 128 299 128 309 150 309 150 248 99 248 99 299 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 128 299 128 309 150 309 150 248 99 248 99 299 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 105
set {floorItems(105)} $i
$w create text 124.5 278.5 -text 105 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 174 309 174 300 152 300 152 309 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 174 309 174 300 152 300 152 309 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 106B
set {floorItems(106B)} $i
$w create text 163 304.5 -text 106B -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 176 299 176 309 216 309 216 248 152 248 152 299 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 176 299 176 309 216 309 216 248 152 248 152 299 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 104
set {floorItems(104)} $i
$w create text 184 278.5 -text 104 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 138 385 138 337 91 337 91 385 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 138 385 138 337 91 337 91 385 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 108
set {floorItems(108)} $i
$w create text 114.5 361 -text 108 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 256 337 140 337 140 385 256 385 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 256 337 140 337 140 385 256 385 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 107
set {floorItems(107)} $i
$w create text 198 361 -text 107 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 300 353 300 329 260 329 260 353 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 300 353 300 329 260 329 260 353 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) Smoking
set {floorItems(Smoking)} $i
$w create text 280 341 -text Smoking -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 314 135 314 170 306 170 306 246 177 246 177 135 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 314 135 314 170 306 170 306 246 177 246 177 135 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 123
set {floorItems(123)} $i
$w create text 245.5 190.5 -text 123 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 217 248 301 248 301 326 257 326 257 310 217 310 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 217 248 301 248 301 326 257 326 257 310 217 310 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 103
set {floorItems(103)} $i
$w create text 259 287 -text 103 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 396 188 377 188 377 169 316 169 316 131 396 131 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 396 188 377 188 377 169 316 169 316 131 396 131 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 124
set {floorItems(124)} $i
$w create text 356 150 -text 124 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 397 226 407 226 407 189 377 189 377 246 397 246 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 397 226 407 226 407 189 377 189 377 246 397 246 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 125
set {floorItems(125)} $i
$w create text 392 217.5 -text 125 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 399 187 409 187 409 207 474 207 474 164 399 164 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 399 187 409 187 409 207 474 207 474 164 399 164 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 126
set {floorItems(126)} $i
$w create text 436.5 185.5 -text 126 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 409 209 409 229 399 229 399 253 486 253 486 239 474 239 474 209 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 409 209 409 229 399 229 399 253 486 253 486 239 474 239 474 209 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 127
set {floorItems(127)} $i
$w create text 436.5 231 -text 127 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 501 164 501 174 495 174 495 188 490 188 490 204 476 204 476 164 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 501 164 501 174 495 174 495 188 490 188 490 204 476 204 476 164 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) MShower
set {floorItems(MShower)} $i
$w create text 488.5 184 -text MShower -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 497 176 513 176 513 204 492 204 492 190 497 190 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 497 176 513 176 513 204 492 204 492 190 497 190 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) Closet
set {floorItems(Closet)} $i
$w create text 502.5 190 -text Closet -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 476 237 476 206 513 206 513 254 488 254 488 237 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 476 237 476 206 513 206 513 254 488 254 488 237 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) WShower
set {floorItems(WShower)} $i
$w create text 494.5 230 -text WShower -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 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 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) 130
set {floorItems(130)} $i
$w create text 638.5 205 -text 130 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 308 242 339 242 339 248 342 248 342 246 397 246 397 276 393 276 393 309 300 309 300 248 308 248 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) 102
set {floorItems(102)} $i
$w create text 367.5 278.5 -text 102 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 397 255 486 255 486 276 397 276 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 397 255 486 255 486 276 397 276 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 128
set {floorItems(128)} $i
$w create text 441.5 265.5 -text 128 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 510 309 486 309 486 255 530 255 552 277 561 277 561 325 510 325 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 510 309 486 309 486 255 530 255 552 277 561 277 561 325 510 325 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 129
set {floorItems(129)} $i
$w create text 535.5 293 -text 129 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 696 281 740 281 740 387 642 387 642 389 561 389 561 277 696 277 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 696 281 740 281 740 387 642 387 642 389 561 389 561 277 696 277 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 133
set {floorItems(133)} $i
$w create text 628.5 335 -text 133 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 742 387 742 281 800 281 800 387 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 742 387 742 281 800 281 800 387 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 132
set {floorItems(132)} $i
$w create text 771 334 -text 132 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 800 168 800 280 699 280 699 168 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 800 168 800 280 699 280 699 168 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 134
set {floorItems(134)} $i
$w create text 749.5 224 -text 134 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 726 131 726 166 800 166 800 131 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 726 131 726 166 800 166 800 131 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 135
set {floorItems(135)} $i
$w create text 763 148.5 -text 135 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 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 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) {Ramona Stair}
set {floorItems(Ramona Stair)} $i
$w create text 368 323 -text {Ramona Stair} -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 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 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) {University Stair}
set {floorItems(University Stair)} $i
$w create text 155 77.5 -text {University Stair} -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 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 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) {Plaza Stair}
set {floorItems(Plaza Stair)} $i
$w create text 317.5 28.5 -text {Plaza Stair} -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 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 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) {Plaza Deck}
set {floorItems(Plaza Deck)} $i
$w create text 303 81 -text {Plaza Deck} -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 257 336 77 336 6 336 6 301 77 301 77 310 257 310 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 257 336 77 336 6 336 6 301 77 301 77 310 257 310 -fill {} -outline {} -tags {floor1 room}]
set floorLabels($i) 106
set {floorItems(106)} $i
$w create text 131.5 318.5 -text 106 -fill $color -anchor c -tags {floor1 label}
- set i [$w create polygon 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 -outline {} -tags {floor1 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor1 room}]
set floorLabels($i) 119
set {floorItems(119)} $i
$w create text 143.5 133 -text 119 -fill $color -anchor c -tags {floor1 label}
@@ -696,207 +696,207 @@ proc fg1 {w color} {
proc fg2 {w color} {
global floorLabels floorItems
- set i [$w create polygon 748 188 755 188 755 205 758 205 758 222 800 222 800 168 748 168 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 748 188 755 188 755 205 758 205 758 222 800 222 800 168 748 168 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 238
set {floorItems(238)} $i
$w create text 774 195 -text 238 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 726 188 746 188 746 166 800 166 800 131 726 131 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 726 188 746 188 746 166 800 166 800 131 726 131 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 237
set {floorItems(237)} $i
$w create text 763 148.5 -text 237 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 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 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor2 room}]
set floorLabels($i) 246
set {floorItems(246)} $i
$w create text 600 264 -text 246 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 694 279 643 279 643 314 694 314 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 694 279 643 279 643 314 694 314 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 247
set {floorItems(247)} $i
$w create text 668.5 296.5 -text 247 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 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 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor2 room}]
set floorLabels($i) 202
set {floorItems(202)} $i
$w create text 285.5 260 -text 202 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 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 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor2 room}]
set floorLabels($i) 206
set {floorItems(206)} $i
$w create text 143 267 -text 206 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 51 277 6 277 6 338 51 338 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 51 277 6 277 6 338 51 338 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 212
set {floorItems(212)} $i
$w create text 28.5 307.5 -text 212 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 557 276 486 276 486 309 510 309 510 325 557 325 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 557 276 486 276 486 309 510 309 510 325 557 325 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 245
set {floorItems(245)} $i
$w create text 521.5 300.5 -text 245 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 560 389 599 389 599 326 560 326 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 560 389 599 389 599 326 560 326 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 244
set {floorItems(244)} $i
$w create text 579.5 357.5 -text 244 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 601 389 601 326 643 326 643 389 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 601 389 601 326 643 326 643 389 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 243
set {floorItems(243)} $i
$w create text 622 357.5 -text 243 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 688 316 645 316 645 365 688 365 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 688 316 645 316 645 365 688 365 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 242
set {floorItems(242)} $i
$w create text 666.5 340.5 -text 242 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 802 367 759 367 759 226 802 226 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 802 367 759 367 759 226 802 226 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) {Barbecue Deck}
set {floorItems(Barbecue Deck)} $i
$w create text 780.5 296.5 -text {Barbecue Deck} -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 755 262 755 314 717 314 717 262 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 755 262 755 314 717 314 717 262 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 240
set {floorItems(240)} $i
$w create text 736 288 -text 240 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 755 316 689 316 689 365 755 365 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 755 316 689 316 689 365 755 365 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 241
set {floorItems(241)} $i
$w create text 722 340.5 -text 241 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 755 206 717 206 717 261 755 261 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 755 206 717 206 717 261 755 261 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 239
set {floorItems(239)} $i
$w create text 736 233.5 -text 239 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 695 277 643 277 643 206 695 206 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 695 277 643 277 643 206 695 206 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 248
set {floorItems(248)} $i
$w create text 669 241.5 -text 248 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 676 135 676 185 724 185 724 135 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 676 135 676 185 724 185 724 135 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 236
set {floorItems(236)} $i
$w create text 700 160 -text 236 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 675 135 635 135 635 145 628 145 628 185 675 185 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 675 135 635 135 635 145 628 145 628 185 675 185 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 235
set {floorItems(235)} $i
$w create text 651.5 160 -text 235 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 626 143 633 143 633 135 572 135 572 143 579 143 579 185 626 185 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 626 143 633 143 633 135 572 135 572 143 579 143 579 185 626 185 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 234
set {floorItems(234)} $i
$w create text 606 160 -text 234 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 557 135 571 135 571 145 578 145 578 185 527 185 527 131 557 131 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 557 135 571 135 571 145 578 145 578 185 527 185 527 131 557 131 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 233
set {floorItems(233)} $i
$w create text 552.5 158 -text 233 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 476 249 557 249 557 205 476 205 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 476 249 557 249 557 205 476 205 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 230
set {floorItems(230)} $i
$w create text 516.5 227 -text 230 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 476 164 486 164 486 131 525 131 525 185 476 185 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 476 164 486 164 486 131 525 131 525 185 476 185 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 232
set {floorItems(232)} $i
$w create text 500.5 158 -text 232 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 476 186 495 186 495 204 476 204 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 476 186 495 186 495 204 476 204 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 229
set {floorItems(229)} $i
$w create text 485.5 195 -text 229 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 474 207 409 207 409 187 399 187 399 164 474 164 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 474 207 409 207 409 187 399 187 399 164 474 164 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 227
set {floorItems(227)} $i
$w create text 436.5 185.5 -text 227 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 399 228 399 253 474 253 474 209 409 209 409 228 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 399 228 399 253 474 253 474 209 409 209 409 228 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 228
set {floorItems(228)} $i
$w create text 436.5 231 -text 228 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 397 246 397 226 407 226 407 189 377 189 377 246 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 397 246 397 226 407 226 407 189 377 189 377 246 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 226
set {floorItems(226)} $i
$w create text 392 217.5 -text 226 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 377 169 316 169 316 131 397 131 397 188 377 188 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 377 169 316 169 316 131 397 131 397 188 377 188 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 225
set {floorItems(225)} $i
$w create text 356.5 150 -text 225 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 234 198 306 198 306 249 234 249 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 234 198 306 198 306 249 234 249 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 224
set {floorItems(224)} $i
$w create text 270 223.5 -text 224 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 270 179 306 179 306 170 314 170 314 135 270 135 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 270 179 306 179 306 170 314 170 314 135 270 135 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 223
set {floorItems(223)} $i
$w create text 292 157 -text 223 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 268 179 221 179 221 135 268 135 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 268 179 221 179 221 135 268 135 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 222
set {floorItems(222)} $i
$w create text 244.5 157 -text 222 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 177 179 219 179 219 135 177 135 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 177 179 219 179 219 135 177 135 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 221
set {floorItems(221)} $i
$w create text 198 157 -text 221 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 299 327 349 327 349 284 341 284 341 276 299 276 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 299 327 349 327 349 284 341 284 341 276 299 276 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 204
set {floorItems(204)} $i
$w create text 324 301.5 -text 204 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 234 276 297 276 297 327 257 327 257 338 234 338 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 234 276 297 276 297 327 257 327 257 338 234 338 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 205
set {floorItems(205)} $i
$w create text 265.5 307 -text 205 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 256 385 256 340 212 340 212 385 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 256 385 256 340 212 340 212 385 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 207
set {floorItems(207)} $i
$w create text 234 362.5 -text 207 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 210 340 164 340 164 385 210 385 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 210 340 164 340 164 385 210 385 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 208
set {floorItems(208)} $i
$w create text 187 362.5 -text 208 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 115 340 162 340 162 385 115 385 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 115 340 162 340 162 385 115 385 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 209
set {floorItems(209)} $i
$w create text 138.5 362.5 -text 209 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 89 228 89 156 53 156 53 228 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 89 228 89 156 53 156 53 228 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 217
set {floorItems(217)} $i
$w create text 71 192 -text 217 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 89 169 97 169 97 190 89 190 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 89 169 97 169 97 190 89 190 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 217A
set {floorItems(217A)} $i
$w create text 93 179.5 -text 217A -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 89 156 89 168 95 168 95 135 53 135 53 156 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 89 156 89 168 95 168 95 135 53 135 53 156 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 216
set {floorItems(216)} $i
$w create text 71 145.5 -text 216 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 51 179 51 135 6 135 6 179 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 51 179 51 135 6 135 6 179 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 215
set {floorItems(215)} $i
$w create text 28.5 157 -text 215 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 51 227 6 227 6 180 51 180 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 51 227 6 227 6 180 51 180 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 214
set {floorItems(214)} $i
$w create text 28.5 203.5 -text 214 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 51 275 6 275 6 229 51 229 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 51 275 6 275 6 229 51 229 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 213
set {floorItems(213)} $i
$w create text 28.5 252 -text 213 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 114 340 67 340 67 385 114 385 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 114 340 67 340 67 385 114 385 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 210
set {floorItems(210)} $i
$w create text 90.5 362.5 -text 210 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 59 389 59 385 65 385 65 340 1 340 1 389 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 59 389 59 385 65 385 65 340 1 340 1 389 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 211
set {floorItems(211)} $i
$w create text 33 364.5 -text 211 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 393 309 350 309 350 282 342 282 342 276 393 276 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 393 309 350 309 350 282 342 282 342 276 393 276 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 203
set {floorItems(203)} $i
$w create text 367.5 292.5 -text 203 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 99 191 91 191 91 226 174 226 174 198 154 198 154 192 109 192 109 169 99 169 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 99 191 91 191 91 226 174 226 174 198 154 198 154 192 109 192 109 169 99 169 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 220
set {floorItems(220)} $i
$w create text 132.5 208.5 -text 220 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 339 205 307 205 307 171 339 171 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) {Priv Lift2}
set {floorItems(Priv Lift2)} $i
$w create text 323 188 -text {Priv Lift2} -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 307 240 339 240 339 206 307 206 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) {Pub Lift 2}
set {floorItems(Pub Lift 2)} $i
$w create text 323 223 -text {Pub Lift 2} -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 175 168 97 168 97 131 175 131 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 175 168 97 168 97 131 175 131 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 218
set {floorItems(218)} $i
$w create text 136 149.5 -text 218 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 154 191 111 191 111 169 154 169 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 154 191 111 191 111 169 154 169 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 219
set {floorItems(219)} $i
$w create text 132.5 180 -text 219 -fill $color -anchor c -tags {floor2 label}
- set i [$w create polygon 375 246 375 172 341 172 341 246 -outline {} -tags {floor2 room}]
+ set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -outline {} -tags {floor2 room}]
set floorLabels($i) 201
set {floorItems(201)} $i
$w create text 358 209 -text 201 -fill $color -anchor c -tags {floor2 label}
@@ -1066,135 +1066,135 @@ proc fg2 {w color} {
proc fg3 {w color} {
global floorLabels floorItems
- set i [$w create polygon 89 228 89 180 70 180 70 228 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 89 228 89 180 70 180 70 228 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 316
set {floorItems(316)} $i
$w create text 79.5 204 -text 316 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 115 368 162 368 162 323 115 323 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 115 368 162 368 162 323 115 323 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 309
set {floorItems(309)} $i
$w create text 138.5 345.5 -text 309 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 164 323 164 368 211 368 211 323 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 164 323 164 368 211 368 211 323 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 308
set {floorItems(308)} $i
$w create text 187.5 345.5 -text 308 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 256 368 212 368 212 323 256 323 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 256 368 212 368 212 323 256 323 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 307
set {floorItems(307)} $i
$w create text 234 345.5 -text 307 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 244 276 297 276 297 327 260 327 260 321 244 321 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 244 276 297 276 297 327 260 327 260 321 244 321 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 305
set {floorItems(305)} $i
$w create text 270.5 301.5 -text 305 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 251 219 251 203 244 203 244 219 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 251 219 251 203 244 203 244 219 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 324B
set {floorItems(324B)} $i
$w create text 247.5 211 -text 324B -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 251 249 244 249 244 232 251 232 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 251 249 244 249 244 232 251 232 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 324A
set {floorItems(324A)} $i
$w create text 247.5 240.5 -text 324A -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 223 135 223 179 177 179 177 135 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 223 135 223 179 177 179 177 135 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 320
set {floorItems(320)} $i
$w create text 200 157 -text 320 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 114 368 114 323 67 323 67 368 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 114 368 114 323 67 323 67 368 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 310
set {floorItems(310)} $i
$w create text 90.5 345.5 -text 310 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 23 277 23 321 68 321 68 277 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 23 277 23 321 68 321 68 277 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 312
set {floorItems(312)} $i
$w create text 45.5 299 -text 312 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 23 229 68 229 68 275 23 275 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 23 229 68 229 68 275 23 275 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 313
set {floorItems(313)} $i
$w create text 45.5 252 -text 313 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 68 227 23 227 23 180 68 180 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 68 227 23 227 23 180 68 180 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 314
set {floorItems(314)} $i
$w create text 45.5 203.5 -text 314 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 95 179 95 135 23 135 23 179 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 95 179 95 135 23 135 23 179 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 315
set {floorItems(315)} $i
$w create text 59 157 -text 315 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 99 226 99 204 91 204 91 226 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 99 226 99 204 91 204 91 226 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 316B
set {floorItems(316B)} $i
$w create text 95 215 -text 316B -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 91 202 99 202 99 180 91 180 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 91 202 99 202 99 180 91 180 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 316A
set {floorItems(316A)} $i
$w create text 95 191 -text 316A -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 97 169 109 169 109 192 154 192 154 198 174 198 174 226 101 226 101 179 97 179 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 97 169 109 169 109 192 154 192 154 198 174 198 174 226 101 226 101 179 97 179 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 319
set {floorItems(319)} $i
$w create text 141.5 209 -text 319 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 65 368 58 368 58 389 1 389 1 333 23 333 23 323 65 323 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 65 368 58 368 58 389 1 389 1 333 23 333 23 323 65 323 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 311
set {floorItems(311)} $i
$w create text 29.5 361 -text 311 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 154 191 111 191 111 169 154 169 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 154 191 111 191 111 169 154 169 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 318
set {floorItems(318)} $i
$w create text 132.5 180 -text 318 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 175 168 97 168 97 131 175 131 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 175 168 97 168 97 131 175 131 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 317
set {floorItems(317)} $i
$w create text 136 149.5 -text 317 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 274 194 274 221 306 221 306 194 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 274 194 274 221 306 221 306 194 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 323
set {floorItems(323)} $i
$w create text 290 207.5 -text 323 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 306 222 274 222 274 249 306 249 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 306 222 274 222 274 249 306 249 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 325
set {floorItems(325)} $i
$w create text 290 235.5 -text 325 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 263 179 224 179 224 135 263 135 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 263 179 224 179 224 135 263 135 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 321
set {floorItems(321)} $i
$w create text 243.5 157 -text 321 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 314 169 306 169 306 192 273 192 264 181 264 135 314 135 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 314 169 306 169 306 192 273 192 264 181 264 135 314 135 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 322
set {floorItems(322)} $i
$w create text 293.5 163.5 -text 322 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 307 240 339 240 339 206 307 206 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) {Pub Lift3}
set {floorItems(Pub Lift3)} $i
$w create text 323 223 -text {Pub Lift3} -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 339 205 307 205 307 171 339 171 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) {Priv Lift3}
set {floorItems(Priv Lift3)} $i
$w create text 323 188 -text {Priv Lift3} -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 350 284 376 284 376 276 397 276 397 309 350 309 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 350 284 376 284 376 276 397 276 397 309 350 309 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 303
set {floorItems(303)} $i
$w create text 373.5 292.5 -text 303 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 272 203 272 249 252 249 252 230 244 230 244 221 252 221 252 203 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 272 203 272 249 252 249 252 230 244 230 244 221 252 221 252 203 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 324
set {floorItems(324)} $i
$w create text 262 226 -text 324 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 299 276 299 327 349 327 349 284 341 284 341 276 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 299 276 299 327 349 327 349 284 341 284 341 276 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 304
set {floorItems(304)} $i
$w create text 324 301.5 -text 304 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 375 246 375 172 341 172 341 246 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 301
set {floorItems(301)} $i
$w create text 358 209 -text 301 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 397 246 377 246 377 185 397 185 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 397 246 377 246 377 185 397 185 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 327
set {floorItems(327)} $i
$w create text 387 215.5 -text 327 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 316 131 316 169 377 169 377 185 397 185 397 131 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 316 131 316 169 377 169 377 185 397 185 397 131 -fill {} -outline {} -tags {floor3 room}]
set floorLabels($i) 326
set {floorItems(326)} $i
$w create text 356.5 150 -text 326 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 308 251 242 251 242 274 342 274 342 282 375 282 375 274 397 274 397 248 339 248 339 242 308 242 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor3 room}]
set floorLabels($i) 302
set {floorItems(302)} $i
$w create text 319.5 261 -text 302 -fill $color -anchor c -tags {floor3 label}
- set i [$w create polygon 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 -outline {} -tags {floor3 room}]
+ set i [$w create polygon 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 {} -outline {} -tags {floor3 room}]
set floorLabels($i) 306
set {floorItems(306)} $i
$w create text 200.5 284.5 -text 306 -fill $color -anchor c -tags {floor3 label}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/goldberg.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/goldberg.tcl
index 1cc52c62a8..90815fbd7f 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/goldberg.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/goldberg.tcl
@@ -77,7 +77,6 @@ set S(mode) $::MSTART
# Colors for everything
set C(fg) black
-set C(bg) gray75
set C(bg) cornflowerblue
set C(0) white; set C(1a) darkgreen; set C(1b) yellow
@@ -92,6 +91,7 @@ set C(17) \#A65353; set C(18) $C(fg); set C(19) gray50
set C(20) cyan; set C(21) gray65; set C(22) $C(20)
set C(23a) blue; set C(23b) red; set C(23c) yellow
set C(24a) red; set C(24b) white;
+set C(24c) black; set C(26) $C(0);
proc DoDisplay {w} {
global S C
@@ -136,7 +136,7 @@ proc DoCtrlFrame {w} {
ttk::labelframe $w.message -text "Message"
ttk::entry $w.message.e -textvariable S(message) -justify center
ttk::labelframe $w.speed -text "Speed: 0"
- ttk::scale $w.speed.scale -orient h -from 1 -to 10 -variable S(speed)
+ ttk::scale $w.speed.scale -orient horizontal -from 1 -to 10 -variable S(speed)
ttk::button $w.about -text About -command [list About $w]
grid $w.start -in $w.ctrl -row 0 -sticky ew
@@ -1586,6 +1586,7 @@ proc Move24 {w {step {}}} {
-width 10 -smooth 1
set msg [subst $S(message)]
$w.c create text [Centroid $w I24] -text $msg -tag {I24 I24t} \
+ -fill $::C(24c) \
-justify center -font {{Times Roman} 18 bold}
return 1
}
@@ -1619,6 +1620,7 @@ proc Move26 {w {step {}}} {
if {$step >= 3} {
$w.c delete I24 I26
$w.c create text 430 755 -anchor s -tag I26 \
+ -fill $::C(26) \
-text "click to continue" -font {{Times Roman} 24 bold}
bind $w.c <Button-1> [list Reset $w]
return 4
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/images/earth.gif b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/images/earth.gif
index 2c229eb110..d667244050 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/images/earth.gif
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/images/earth.gif
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/items.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/items.tcl
index 1297046113..19cd4f4313 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/items.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/items.tcl
@@ -32,7 +32,7 @@ canvas $c -scrollregion {0c 0c 30c 24c} -width 15c -height 10c \
-xscrollcommand "$w.frame.hscroll set" \
-yscrollcommand "$w.frame.vscroll set"
ttk::scrollbar $w.frame.vscroll -command "$c yview"
-ttk::scrollbar $w.frame.hscroll -orient horiz -command "$c xview"
+ttk::scrollbar $w.frame.hscroll -orient horizontal -command "$c xview"
grid $c -in $w.frame \
-row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menu.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menu.tcl
index 244361d04a..4f5d703fbb 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menu.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menu.tcl
@@ -18,7 +18,6 @@ positionWindow $w
label $w.msg -font $font -wraplength 4i -justify left
if {[tk windowingsystem] eq "aqua"} {
- catch {set origUseCustomMDEF $::tk::mac::useCustomMDEF; set ::tk::mac::useCustomMDEF 1}
$w.msg configure -text "This window has 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 selecting the first item in the menu."
} else {
$w.msg configure -text "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."
@@ -56,7 +55,7 @@ menu $m -tearoff 0
$m add command -label "Long entry that does nothing"
if {[tk windowingsystem] eq "aqua"} {
set modifier Command
-} elseif {[tk windowingsystem] == "win32"} {
+} elseif {[tk windowingsystem] eq "win32"} {
set modifier Control
} else {
set modifier Meta
@@ -176,5 +175,3 @@ bind Menu <<MenuSelect>> {
set menustatus $label
update idletasks
}
-
-if {[tk windowingsystem] eq "aqua"} {catch {set ::tk::mac::useCustomMDEF $origUseCustomMDEF}}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menubu.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menubu.tcl
index 96e3b15be2..453b05c421 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menubu.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/menubu.tcl
@@ -18,7 +18,6 @@ positionWindow $w
frame $w.body
pack $w.body -expand 1 -fill both
-if {[tk windowingsystem] eq "aqua"} {catch {set origUseCustomMDEF $::tk::mac::useCustomMDEF; set ::tk::mac::useCustomMDEF 1}}
menubutton $w.body.below -text "Below" -underline 0 -direction below -menu $w.body.below.m -relief raised
menu $w.body.below.m -tearoff 0
@@ -86,5 +85,3 @@ foreach i {Black gray75 gray50 White} {
}
pack $body.buttons.colors -side left -padx 25 -pady 25
-
-if {[tk windowingsystem] eq "aqua"} {catch {set ::tk::mac::useCustomMDEF $origUseCustomMDEF}}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/puzzle.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/puzzle.tcl
index eebe87a129..f06de5d2ae 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/puzzle.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/demos/puzzle.tcl
@@ -11,7 +11,7 @@ package require Tk
# puzzleSwitch --
# This procedure is invoked when the user clicks on a particular button;
-# if the button is next to the empty space, it moves the button into th
+# if the button is next to the empty space, it moves the button into the
# empty space.
proc puzzleSwitch {w num} {
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/entry.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/entry.tcl
index 6539af777d..4140c92f73 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/entry.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/entry.tcl
@@ -211,6 +211,7 @@ bind Entry <Prior> {# nothing}
bind Entry <Next> {# nothing}
if {[tk windowingsystem] eq "aqua"} {
bind Entry <Command-Key> {# nothing}
+ bind Entry <Mod4-Key> {# nothing}
}
# Tk-on-Cocoa generates characters for these two keys. [Bug 2971663]
bind Entry <<NextLine>> {# nothing}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/fontchooser.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/fontchooser.tcl
index fb6c6d3b26..27c8deffdc 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/fontchooser.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/fontchooser.tcl
@@ -12,34 +12,48 @@ namespace eval ::tk::fontchooser {
variable S
set S(W) .__tk__fontchooser
- set S(fonts) [lsort -dictionary [font families]]
+ set S(fonts) [lsort -dictionary -unique [font families]]
set S(styles) [list \
- [::msgcat::mc "Regular"] \
- [::msgcat::mc "Italic"] \
- [::msgcat::mc "Bold"] \
- [::msgcat::mc "Bold Italic"] \
+ [::msgcat::mc Regular] \
+ [::msgcat::mc Italic] \
+ [::msgcat::mc Bold] \
+ [::msgcat::mc {Bold Italic}] \
]
-
set S(sizes) {8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72}
set S(strike) 0
set S(under) 0
set S(first) 1
- set S(sampletext) [::msgcat::mc "AaBbYyZz01"]
set S(-parent) .
- set S(-title) [::msgcat::mc "Font"]
+ set S(-title) {}
set S(-command) ""
set S(-font) TkDefaultFont
+ set S(bad) [list ]
}
-proc ::tk::fontchooser::Setup {} {
+proc ::tk::fontchooser::Canonical {} {
variable S
+ foreach style $S(styles) {
+ lappend S(styles,lcase) [string tolower $style]
+ }
+ set S(sizes,lcase) $S(sizes)
+ set S(sampletext) [::msgcat::mc "AaBbYyZz01"]
+
# Canonical versions of font families, styles, etc. for easier searching
set S(fonts,lcase) {}
- foreach font $S(fonts) {lappend S(fonts,lcase) [string tolower $font]}
+ foreach font $S(fonts) {
+ lappend S(fonts,lcase) [string tolower $font]
+ }
set S(styles,lcase) {}
- foreach style $S(styles) {lappend S(styles,lcase) [string tolower $style]}
- set S(sizes,lcase) $S(sizes)
+ foreach style $S(styles) {
+ lappend S(styles,lcase) [string tolower $style]
+ }
+}
+
+proc ::tk::fontchooser::Setup {} {
+ variable S
+
+ Canonical
::ttk::style layout FontchooserFrame {
Entry.field -sticky news -border true -children {
@@ -47,8 +61,8 @@ proc ::tk::fontchooser::Setup {} {
}
}
bind [winfo class .] <<ThemeChanged>> \
- [list +ttk::style layout FontchooserFrame \
- [ttk::style layout FontchooserFrame]]
+ [list +ttk::style layout FontchooserFrame \
+ [ttk::style layout FontchooserFrame]]
namespace ensemble create -map {
show ::tk::fontchooser::Show
@@ -60,14 +74,24 @@ proc ::tk::fontchooser::Setup {} {
proc ::tk::fontchooser::Show {} {
variable S
+
+ Canonical
+
if {![winfo exists $S(W)]} {
Create
wm transient $S(W) [winfo toplevel $S(-parent)]
tk::PlaceWindow $S(W) widget $S(-parent)
+ if {[string trim $S(-title)] eq ""} {
+ wm title $S(W) [::msgcat::mc "Font"]
+ } else {
+ wm title $S(W) $S(-title)
+ }
}
- set S(fonts) [lsort -dictionary [font families]]
+ set S(fonts) [lsort -dictionary -unique [font families]]
set S(fonts,lcase) {}
- foreach font $S(fonts) { lappend S(fonts,lcase) [string tolower $font]}
+ foreach font $S(fonts) {
+ lappend S(fonts,lcase) [string tolower $font]
+ }
wm deiconify $S(W)
}
@@ -91,10 +115,10 @@ proc ::tk::fontchooser::Configure {args} {
foreach spec $specs {
foreach {name xx yy default} $spec break
lappend result $name \
- [expr {[info exists S($name)] ? $S($name) : $default}]
+ [expr {[info exists S($name)] ? $S($name) : $default}]
}
lappend result -visible \
- [expr {[winfo exists $S(W)] && [winfo ismapped $S(W)]}]
+ [expr {[winfo exists $S(W)] && [winfo ismapped $S(W)]}]
return $result
}
if {[llength $args] == 1} {
@@ -105,25 +129,32 @@ proc ::tk::fontchooser::Configure {args} {
return $S($option)
}
return -code error -errorcode [list TK LOOKUP OPTION $option] \
- "bad option \"$option\": must be\
- -command, -font, -parent, -title or -visible"
+ "bad option \"$option\": must be\
+ -command, -font, -parent, -title or -visible"
}
-
set cache [dict create -parent $S(-parent) -title $S(-title) \
- -font $S(-font) -command $S(-command)]
+ -font $S(-font) -command $S(-command)]
set r [tclParseConfigSpec [namespace which -variable S] $specs DONTSETDEFAULTS $args]
if {![winfo exists $S(-parent)]} {
- set code [list TK LOOKUP WINDOW $S(-parent)]
+ set code [list TK LOOKUP WINDOW $S(-parent)]
set err "bad window path name \"$S(-parent)\""
array set S $cache
return -code error -errorcode $code $err
}
- if {[string trim $S(-title)] eq ""} {
- set S(-title) [::msgcat::mc "Font"]
- }
- if {[winfo exists $S(W)] && ("-font" in $args)} {
- Init $S(-font)
- event generate $S(-parent) <<TkFontchooserFontChanged>>
+
+ if {[winfo exists $S(W)]} {
+ if {{-font} in $args} {
+ Init $S(-font)
+ event generate $S(-parent) <<TkFontchooserFontChanged>>
+ }
+
+ if {[string trim $S(-title)] eq {}} {
+ wm title $S(W) [::msgcat::mc Font]
+ } else {
+ wm title $S(W) $S(-title)
+ }
+ $S(W).ok configure -state $S(nstate)
+ $S(W).apply configure -state $S(nstate)
}
return $r
}
@@ -140,7 +171,9 @@ proc ::tk::fontchooser::Create {} {
# Now build the dialog
if {![winfo exists $S(W)]} {
toplevel $S(W) -class TkFontDialog
- if {[package provide tcltest] ne {}} {set ::tk_dialog $S(W)}
+ if {[package provide tcltest] ne {}} {
+ set ::tk_dialog $S(W)
+ }
wm withdraw $S(W)
wm title $S(W) $S(-title)
wm transient $S(W) [winfo toplevel $S(-parent)]
@@ -153,40 +186,40 @@ proc ::tk::fontchooser::Create {} {
::tk::AmpWidget ::ttk::label $S(W).style -text [::msgcat::mc "Font st&yle:"]
::tk::AmpWidget ::ttk::label $S(W).size -text [::msgcat::mc "&Size:"] -width $sizeWidth
ttk::entry $S(W).efont -width 18 \
- -textvariable [namespace which -variable S](font)
+ -textvariable [namespace which -variable S](font)
ttk::entry $S(W).estyle -width 10 \
- -textvariable [namespace which -variable S](style)
+ -textvariable [namespace which -variable S](style)
ttk::entry $S(W).esize -textvariable [namespace which -variable S](size) \
- -width 3 -validate key -validatecommand {string is double %P}
+ -width 3 -validate key -validatecommand {regexp -- {^-*[0-9]*$} %P}
ttk_slistbox $S(W).lfonts -height 7 -exportselection 0 \
- -selectmode browse -activestyle none \
- -listvariable [namespace which -variable S](fonts)
+ -selectmode browse -activestyle none \
+ -listvariable [namespace which -variable S](fonts)
ttk_slistbox $S(W).lstyles -width 5 -height 7 -exportselection 0 \
- -selectmode browse -activestyle none \
- -listvariable [namespace which -variable S](styles)
+ -selectmode browse -activestyle none \
+ -listvariable [namespace which -variable S](styles)
ttk_slistbox $S(W).lsizes -width 4 -height 7 -exportselection 0 \
- -selectmode browse -activestyle none \
- -listvariable [namespace which -variable S](sizes)
+ -selectmode browse -activestyle none \
+ -listvariable [namespace which -variable S](sizes)
set WE $S(W).effects
::ttk::labelframe $WE -text [::msgcat::mc "Effects"]
::tk::AmpWidget ::ttk::checkbutton $WE.strike \
- -variable [namespace which -variable S](strike) \
- -text [::msgcat::mc "Stri&keout"] \
- -command [namespace code [list Click strike]]
+ -variable [namespace which -variable S](strike) \
+ -text [::msgcat::mc "Stri&keout"] \
+ -command [namespace code [list Click strike]]
::tk::AmpWidget ::ttk::checkbutton $WE.under \
- -variable [namespace which -variable S](under) \
- -text [::msgcat::mc "&Underline"] \
- -command [namespace code [list Click under]]
+ -variable [namespace which -variable S](under) \
+ -text [::msgcat::mc "&Underline"] \
+ -command [namespace code [list Click under]]
set bbox [::ttk::frame $S(W).bbox]
::ttk::button $S(W).ok -text [::msgcat::mc OK] -default active\
- -command [namespace code [list Done 1]]
+ -command [namespace code [list Done 1]]
::ttk::button $S(W).cancel -text [::msgcat::mc Cancel] \
- -command [namespace code [list Done 0]]
+ -command [namespace code [list Done 0]]
::tk::AmpWidget ::ttk::button $S(W).apply -text [::msgcat::mc "&Apply"] \
- -command [namespace code [list Apply]]
+ -command [namespace code [list Apply]]
wm protocol $S(W) WM_DELETE_WINDOW [namespace code [list Done 0]]
# Calculate minimum sizes
@@ -196,13 +229,15 @@ proc ::tk::fontchooser::Create {} {
set minsize(gap) 10
set minsize(bbox) [winfo reqwidth $S(W).ok]
set minsize(fonts) \
- [expr {[font measure TkDefaultFont "Helvetica"] + $scroll_width}]
+ [expr {[font measure TkDefaultFont "Helvetica"] + $scroll_width}]
set minsize(styles) \
- [expr {[font measure TkDefaultFont "Bold Italic"] + $scroll_width}]
+ [expr {[font measure TkDefaultFont "Bold Italic"] + $scroll_width}]
set minsize(sizes) \
- [expr {[font measure TkDefaultFont "-99"] + $scroll_width}]
+ [expr {[font measure TkDefaultFont "-99"] + $scroll_width}]
set min [expr {$minsize(gap) * 4}]
- foreach {what width} [array get minsize] {incr min $width}
+ foreach {what width} [array get minsize] {
+ incr min $width
+ }
wm minsize $S(W) $min 260
bind $S(W) <Return> [namespace code [list Done 1]]
@@ -224,7 +259,7 @@ proc ::tk::fontchooser::Create {} {
set WS $S(W).sample
::ttk::labelframe $WS -text [::msgcat::mc "Sample"]
::ttk::label $WS.sample -relief sunken -anchor center \
- -textvariable [namespace which -variable S](sampletext)
+ -textvariable [namespace which -variable S](sampletext)
set S(sample) $WS.sample
grid $WS.sample -sticky news -padx 6 -pady 4
grid rowconfigure $WS 0 -weight 1
@@ -233,9 +268,7 @@ proc ::tk::fontchooser::Create {} {
grid $S(W).ok -in $bbox -sticky new -pady {0 2}
grid $S(W).cancel -in $bbox -sticky new -pady 2
- if {$S(-command) ne ""} {
- grid $S(W).apply -in $bbox -sticky new -pady 2
- }
+ grid $S(W).apply -in $bbox -sticky new -pady 2
grid columnconfigure $bbox 0 -weight 1
grid $WE.strike -sticky w -padx 10
@@ -262,15 +295,19 @@ proc ::tk::fontchooser::Create {} {
Init $S(-font)
trace add variable [namespace which -variable S](size) \
- write [namespace code [list Tracer]]
+ write [namespace code [list Tracer]]
trace add variable [namespace which -variable S](style) \
- write [namespace code [list Tracer]]
+ write [namespace code [list Tracer]]
trace add variable [namespace which -variable S](font) \
- write [namespace code [list Tracer]]
- } else {
- Init $S(-font)
+ write [namespace code [list Tracer]]
+ trace add variable [namespace which -variable S](strike) \
+ write [namespace code [list Tracer]]
+ trace add variable [namespace which -variable S](under) \
+ write [namespace code [list Tracer]]
}
+ Init $S(-font)
+
return
}
@@ -290,9 +327,14 @@ proc ::tk::fontchooser::Done {ok} {
trace vdelete S(size) w [namespace code [list Tracer]]
trace vdelete S(style) w [namespace code [list Tracer]]
trace vdelete S(font) w [namespace code [list Tracer]]
+ trace vdelete S(strike) w [namespace code [list Tracer]]
+ trace vdelete S(under) w [namespace code [list Tracer]]
destroy $S(W)
- if {$ok && $S(-command) ne ""} {
- uplevel #0 $S(-command) [list $S(result)]
+ if {$ok} {
+ if {$S(-command) ne ""} {
+ uplevel #0 $S(-command) [list $S(result)]
+ }
+ event generate $S(-parent) <<TkFontchooserFontChanged>>
}
}
@@ -322,16 +364,17 @@ proc ::tk::fontchooser::Init {{defaultFont ""}} {
variable S
if {$S(first) || $defaultFont ne ""} {
+ Canonical
if {$defaultFont eq ""} {
set defaultFont [[entry .___e] cget -font]
destroy .___e
}
array set F [font actual $defaultFont]
set S(font) $F(-family)
+ set S(style) [::msgcat::mc "Regular"]
set S(size) $F(-size)
set S(strike) $F(-overstrike)
set S(under) $F(-underline)
- set S(style) [::msgcat::mc "Regular"]
if {$F(-weight) eq "bold" && $F(-slant) eq "italic"} {
set S(style) [::msgcat::mc "Bold Italic"]
} elseif {$F(-weight) eq "bold"} {
@@ -339,12 +382,8 @@ proc ::tk::fontchooser::Init {{defaultFont ""}} {
} elseif {$F(-slant) eq "italic"} {
set S(style) [::msgcat::mc "Italic"]
}
-
set S(first) 0
}
-
- Tracer a b c
- Update
}
# ::tk::fontchooser::Click --
@@ -356,7 +395,6 @@ proc ::tk::fontchooser::Init {{defaultFont ""}} {
#
proc ::tk::fontchooser::Click {who} {
variable S
-
if {$who eq "font"} {
set S(font) [$S(W).lfonts get [$S(W).lfonts curselection]]
} elseif {$who eq "style"} {
@@ -364,7 +402,6 @@ proc ::tk::fontchooser::Click {who} {
} elseif {$who eq "size"} {
set S(size) [$S(W).lsizes get [$S(W).lsizes curselection]]
}
- Update
}
# ::tk::fontchooser::Tracer --
@@ -376,32 +413,43 @@ proc ::tk::fontchooser::Click {who} {
#
proc ::tk::fontchooser::Tracer {var1 var2 op} {
variable S
-
- set bad 0
- set nstate normal
- # Make selection in each listbox
- foreach var {font style size} {
- set value [string tolower $S($var)]
- $S(W).l${var}s selection clear 0 end
- set n [lsearch -exact $S(${var}s,lcase) $value]
- $S(W).l${var}s selection set $n
+ # We don't need to process strike and under
+ if {$var2 ni [list strike under]} {
+ # Make selection in listbox
+ set value [string tolower $S($var2)]
+ $S(W).l${var2}s selection clear 0 end
+ set n [lsearch -exact $S(${var2}s,lcase) $value]
+ $S(W).l${var2}s selection set $n
if {$n >= 0} {
- set S($var) [lindex $S(${var}s) $n]
- $S(W).e$var icursor end
- $S(W).e$var selection clear
- } else { ;# No match, try prefix
- # Size is weird: valid numbers are legal but don't display
- # unless in the font size list
- set n [lsearch -glob $S(${var}s,lcase) "$value*"]
- set bad 1
- if {$var ne "size" || ! [string is double -strict $value]} {
- set nstate disabled
+ set S($var2) [lindex $S(${var2}s) $n]
+ $S(W).e$var2 icursor end
+ $S(W).e$var2 selection clear
+ if {[set i [lsearch $S(bad) $var2]] >= 0} {
+ set S(bad) [lreplace $S(bad) $i $i]
+ }
+ } else {
+ # No match, try prefix
+ set n [lsearch -glob $S(${var2}s,lcase) "$value*"]
+ if {$var2 ne "size" || !([regexp -- {^(-[0-9]+|[0-9]+)$} $value] && $value >= -4096 && $value <= 4096)} {
+ if {[lsearch $S(bad) $var2] < 0} {
+ lappend S(bad) $var2
+ }
+ } else {
+ if {[set i [lsearch $S(bad) $var2]] >= 0} {
+ set S(bad) [lreplace $S(bad) $i $i]
+ }
}
}
- $S(W).l${var}s see $n
+ $S(W).l${var2}s see $n
+ }
+ if {[llength $S(bad)] == 0} {
+ set S(nstate) normal
+ Update
+ } else {
+ set S(nstate) disabled
}
- if {!$bad} {Update}
- $S(W).ok configure -state $nstate
+ $S(W).ok configure -state $S(nstate)
+ $S(W).apply configure -state $S(nstate)
}
# ::tk::fontchooser::Update --
@@ -412,13 +460,24 @@ proc ::tk::fontchooser::Update {} {
variable S
set S(result) [list $S(font) $S(size)]
- if {$S(style) eq [::msgcat::mc "Bold"]} {lappend S(result) bold}
- if {$S(style) eq [::msgcat::mc "Italic"]} {lappend S(result) italic}
- if {$S(style) eq [::msgcat::mc "Bold Italic"]} {lappend S(result) bold italic}
- if {$S(strike)} {lappend S(result) overstrike}
- if {$S(under)} {lappend S(result) underline}
+ if {$S(style) eq [::msgcat::mc "Bold"]} {
+ lappend S(result) bold
+ }
+ if {$S(style) eq [::msgcat::mc "Italic"]} {
+ lappend S(result) italic
+ }
+ if {$S(style) eq [::msgcat::mc "Bold Italic"]} {
+ lappend S(result) bold italic
+ }
+ if {$S(strike)} {
+ lappend S(result) overstrike
+ }
+ if {$S(under)} {
+ lappend S(result) underline
+ }
$S(sample) configure -font $S(result)
+ set S(-font) $S(result)
}
# ::tk::fontchooser::Visibility --
@@ -432,7 +491,7 @@ proc ::tk::fontchooser::Visibility {w visible} {
}
}
-# ::tk::fontchooser::ttk_listbox --
+# ::tk::fontchooser::ttk_slistbox --
#
# Create a properly themed scrolled listbox.
# This is exactly right on XP but may need adjusting on other platforms.
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/iconlist.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/iconlist.tcl
index 34b19d0266..6f46ba4f67 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/iconlist.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/iconlist.tcl
@@ -338,8 +338,8 @@ package require Tk
set i_dy [expr {($dy - $iH)/2}]
set t_dy [expr {($dy - $tH)/2}]
- $canvas coords $iTag $x [expr {$y + $i_dy}]
- $canvas coords $tTag [expr {$x + $shift}] [expr {$y + $t_dy}]
+ $canvas coords $iTag $x [expr {$y + $i_dy}]
+ $canvas coords $tTag [expr {$x + $shift}] [expr {$y + $t_dy}]
$canvas coords $rTag $x $y [expr {$x+$dx}] [expr {$y+$dy}]
incr y $dy
@@ -433,11 +433,11 @@ package require Tk
#
bind $canvas <Configure> [namespace code {my WhenIdle Arrange}]
- bind $canvas <1> [namespace code {my Btn1 %x %y}]
+ bind $canvas <Button-1> [namespace code {my Btn1 %x %y}]
bind $canvas <B1-Motion> [namespace code {my Motion1 %x %y}]
bind $canvas <B1-Leave> [namespace code {my Leave1 %x %y}]
- bind $canvas <Control-1> [namespace code {my CtrlBtn1 %x %y}]
- bind $canvas <Shift-1> [namespace code {my ShiftBtn1 %x %y}]
+ bind $canvas <Control-Button-1> [namespace code {my CtrlBtn1 %x %y}]
+ bind $canvas <Shift-Button-1> [namespace code {my ShiftBtn1 %x %y}]
bind $canvas <B1-Enter> [list tk::CancelRepeat]
bind $canvas <ButtonRelease-1> [list tk::CancelRepeat]
bind $canvas <Double-ButtonRelease-1> \
@@ -449,12 +449,14 @@ package require Tk
if {[tk windowingsystem] eq "aqua"} {
bind $canvas <Shift-MouseWheel> [namespace code {my MouseWheel [expr {40 * (%D)}]}]
bind $canvas <Option-Shift-MouseWheel> [namespace code {my MouseWheel [expr {400 * (%D)}]}]
+ bind $canvas <Command-Key> {# nothing}
+ bind $canvas <Mod4-Key> {# nothing}
} else {
bind $canvas <Shift-MouseWheel> [namespace code {my MouseWheel %D}]
}
if {[tk windowingsystem] eq "x11"} {
- bind $canvas <Shift-4> [namespace code {my MouseWheel 120}]
- bind $canvas <Shift-5> [namespace code {my MouseWheel -120}]
+ bind $canvas <Shift-Button-4> [namespace code {my MouseWheel 120}]
+ bind $canvas <Shift-Button-5> [namespace code {my MouseWheel -120}]
}
bind $canvas <<PrevLine>> [namespace code {my UpDown -1}]
@@ -462,9 +464,10 @@ package require Tk
bind $canvas <<PrevChar>> [namespace code {my LeftRight -1}]
bind $canvas <<NextChar>> [namespace code {my LeftRight 1}]
bind $canvas <Return> [namespace code {my ReturnKey}]
- bind $canvas <KeyPress> [namespace code {my KeyPress %A}]
- bind $canvas <Control-KeyPress> ";"
- bind $canvas <Alt-KeyPress> ";"
+ bind $canvas <Key> [namespace code {my KeyPress %A}]
+ bind $canvas <Alt-Key> {# nothing}
+ bind $canvas <Meta-Key> {# nothing}
+ bind $canvas <Control-Key> {# nothing}
bind $canvas <FocusIn> [namespace code {my FocusIn}]
bind $canvas <FocusOut> [namespace code {my FocusOut}]
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/menu.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/menu.tcl
index 823fd69323..deca4858e4 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/menu.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/menu.tcl
@@ -168,7 +168,7 @@ bind Menu <<PrevLine>> {
bind Menu <<NextLine>> {
tk::MenuDownArrow %W
}
-bind Menu <KeyPress> {
+bind Menu <Key> {
tk::TraverseWithinMenu %W %A
break
}
@@ -177,7 +177,7 @@ bind Menu <KeyPress> {
# implement keyboard menu traversal.
if {[tk windowingsystem] eq "x11"} {
- bind all <Alt-KeyPress> {
+ bind all <Alt-Key> {
tk::TraverseToMenu %W %A
}
@@ -185,7 +185,7 @@ if {[tk windowingsystem] eq "x11"} {
tk::FirstMenu %W
}
} else {
- bind Menubutton <Alt-KeyPress> {
+ bind Menubutton <Alt-Key> {
tk::TraverseToMenu %W %A
}
@@ -285,7 +285,7 @@ proc ::tk::MbPost {w {x {}} {y {}}} {
GenerateMenuSelect $menu
update idletasks
- if {[catch {PostMenubuttonMenu $w $menu} msg opt]} {
+ if {[catch {PostMenubuttonMenu $w $menu $x $y} msg opt]} {
# Error posting menu (e.g. bogus -postcommand). Unpost it and
# reflect the error.
MenuUnpost {}
@@ -1138,7 +1138,7 @@ proc ::tk::MenuFindName {menu s} {
# side. On other platforms the entry is centered over the button.
if {[tk windowingsystem] eq "aqua"} {
- proc ::tk::PostMenubuttonMenu {button menu} {
+ proc ::tk::PostMenubuttonMenu {button menu cx cy} {
set entry ""
if {[$button cget -indicatoron]} {
set entry [MenuFindName $menu [$button cget -text]]
@@ -1163,14 +1163,14 @@ if {[tk windowingsystem] eq "aqua"} {
right {
incr x [winfo width $button]
}
- default {
+ default { # flush
incr x [expr {[winfo width $button] - [winfo reqwidth $menu] - 5}]
}
}
PostOverPoint $menu $x $y $entry
}
} else {
- proc ::tk::PostMenubuttonMenu {button menu} {
+ proc ::tk::PostMenubuttonMenu {button menu cx cy} {
set entry ""
if {[$button cget -indicatoron]} {
set entry [MenuFindName $menu [$button cget -text]]
@@ -1201,22 +1201,24 @@ if {[tk windowingsystem] eq "aqua"} {
set entry {}
}
left {
- # It is not clear why this is needed.
- if {[tk windowingsystem] eq "win32"} {
- incr x [expr {-4 - [winfo reqwidth $button] / 2}]
- }
incr x [expr {- [winfo reqwidth $menu]}]
}
right {
incr x [expr {[winfo width $button]}]
}
- default {
- if {[$button cget -indicatoron]} {
- incr x [expr {([winfo width $button] - \
- [winfo reqwidth $menu])/ 2}]
- } else {
- incr y [winfo height $button]
- }
+ default { # flush
+ if {[$button cget -indicatoron]} {
+ if {$cx ne ""} {
+ set x [expr {$cx - [winfo reqwidth $menu] / 2}]
+ set l [font metrics [$menu cget -font] -linespace]
+ set y [expr {$cy - $l/2 - 2}]
+ } else {
+ incr x [expr {([winfo width $button] - \
+ [winfo reqwidth $menu])/ 2}]
+ }
+ } else {
+ incr y [winfo height $button]
+ }
}
}
PostOverPoint $menu $x $y $entry
@@ -1242,7 +1244,8 @@ if {[tk windowingsystem] ne "win32"} {
proc ::tk::PostOverPoint {menu x y {entry {}}} {
if {$entry ne ""} {
$menu post $x $y $entry
- if {[$menu entrycget $entry -state] ne "disabled"} {
+ if {[$menu type $entry] ni {separator tearoff} &&
+ [$menu entrycget $entry -state] ne "disabled"} {
$menu activate $entry
GenerateMenuSelect $menu
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/eo.msg b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/eo.msg
index 3645630b1f..a096b622fc 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/eo.msg
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/eo.msg
@@ -1,20 +1,20 @@
namespace eval ::tk {
- ::msgcat::mcset eo "&Abort" "&\u0108esigo"
+ ::msgcat::mcset eo "&Abort" "&\u0108esigu"
::msgcat::mcset eo "&About..." "Pri..."
- ::msgcat::mcset eo "All Files" "\u0108ioj dosieroj"
- ::msgcat::mcset eo "Application Error" "Aplikoerraro"
+ ::msgcat::mcset eo "All Files" "\u0108iuj dosieroj"
+ ::msgcat::mcset eo "Application Error" "Aplikoeraro"
::msgcat::mcset eo "&Blue" "&Blua"
::msgcat::mcset eo "Cancel" "Rezignu"
::msgcat::mcset eo "&Cancel" "&Rezignu"
- ::msgcat::mcset eo "Cannot change to the directory \"%1\$s\".\nPermission denied." "Neeble \u0109angi al dosierulon \"%1\$s\".\nVi ne rajtas tion."
- ::msgcat::mcset eo "Choose Directory" "Elektu Dosierujo"
- ::msgcat::mcset eo "Cl&ear" "&Klaru"
- ::msgcat::mcset eo "&Clear Console" "&Klaru konzolon"
- ::msgcat::mcset eo "Color" "Farbo"
+ ::msgcat::mcset eo "Cannot change to the directory \"%1\$s\".\nPermission denied." "Neeble \u015dan\u011di al dosierujo \"%1\$s\".\nVi ne rajtas tion."
+ ::msgcat::mcset eo "Choose Directory" "Elektu Dosierujon"
+ ::msgcat::mcset eo "Cl&ear" "&Vakigu"
+ ::msgcat::mcset eo "&Clear Console" "&Vakigu konzolon"
+ ::msgcat::mcset eo "Color" "Koloro"
::msgcat::mcset eo "Console" "Konzolo"
::msgcat::mcset eo "&Copy" "&Kopiu"
- ::msgcat::mcset eo "Cu&t" "&Enpo\u015digu"
- ::msgcat::mcset eo "&Delete" "&Forprenu"
+ ::msgcat::mcset eo "Cu&t" "&Eltondu"
+ ::msgcat::mcset eo "&Delete" "&Forigu"
::msgcat::mcset eo "Details >>" "Detaloj >>"
::msgcat::mcset eo "Directory \"%1\$s\" does not exist." "La dosierujo \"%1\$s\" ne ekzistas."
::msgcat::mcset eo "&Directory:" "&Dosierujo:"
@@ -22,12 +22,12 @@ namespace eval ::tk {
::msgcat::mcset eo "Error: %1\$s" "Eraro: %1\$s"
::msgcat::mcset eo "E&xit" "&Eliru"
::msgcat::mcset eo "&File" "&Dosiero"
- ::msgcat::mcset eo "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "La dosiero \"%1\$s\" jam ekzistas.\n\u0108u vi volas anstata\u00fbigi la dosieron?"
- ::msgcat::mcset eo "File \"%1\$s\" already exists.\n\n" "La dosiero \"%1\$s\" jam egzistas. \n\n"
- ::msgcat::mcset eo "File \"%1\$s\" does not exist." "La dosierp \"%1\$s\" ne estas."
+ ::msgcat::mcset eo "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "La dosiero \"%1\$s\" jam ekzistas.\n\u0108u vi volas anstata\u016digi la dosieron?"
+ ::msgcat::mcset eo "File \"%1\$s\" already exists.\n\n" "La dosiero \"%1\$s\" jam ekzistas. \n\n"
+ ::msgcat::mcset eo "File \"%1\$s\" does not exist." "La dosiero \"%1\$s\" ne ekzistas."
::msgcat::mcset eo "File &name:" "Dosiero&nomo:"
::msgcat::mcset eo "File &names:" "Dosiero&nomoj:"
- ::msgcat::mcset eo "Files of &type:" "Dosieroj de &Typo:"
+ ::msgcat::mcset eo "Files of &type:" "Dosieroj de &Tipo:"
::msgcat::mcset eo "Fi&les:" "Do&sieroj:"
::msgcat::mcset eo "&Filter" "&Filtrilo"
::msgcat::mcset eo "Fil&ter:" "&Filtrilo:"
@@ -37,39 +37,39 @@ namespace eval ::tk {
::msgcat::mcset eo "&Hide Console" "&Ka\u015du konzolon"
::msgcat::mcset eo "&Ignore" "&Ignoru"
::msgcat::mcset eo "Invalid file name \"%1\$s\"." "Malvalida dosieronomo \"%1\$s\"."
- ::msgcat::mcset eo "Log Files" "Protokolo"
+ ::msgcat::mcset eo "Log Files" "Protokolaj dosieroj"
::msgcat::mcset eo "&No" "&Ne"
- ::msgcat::mcset eo "&OK"
- ::msgcat::mcset eo "OK"
- ::msgcat::mcset eo "Ok"
+ ::msgcat::mcset eo "&OK" "&Bone"
+ ::msgcat::mcset eo "OK" "Bone"
+ ::msgcat::mcset eo "Ok" "Bone"
::msgcat::mcset eo "Open" "Malfermu"
::msgcat::mcset eo "&Open" "&Malfermu"
- ::msgcat::mcset eo "Open Multiple Files" "Melfermu multan dosierojn"
- ::msgcat::mcset eo "P&aste" "&Elpo\u015digi"
- ::msgcat::mcset eo "&Quit" "&Finigu"
- ::msgcat::mcset eo "&Red" "&Rosa"
- ::msgcat::mcset eo "Replace existing file?" "\u0108u anstata\u00fbu ekzistantan dosieron?"
- ::msgcat::mcset eo "&Retry" "&Ripetu"
- ::msgcat::mcset eo "&Save" "&Savu"
- ::msgcat::mcset eo "Save As" "Savu kiel"
- ::msgcat::mcset eo "Save To Log" "Savu en protokolon"
+ ::msgcat::mcset eo "Open Multiple Files" "Malfermu plurajn dosierojn"
+ ::msgcat::mcset eo "P&aste" "&Algluu"
+ ::msgcat::mcset eo "&Quit" "&Forlasu"
+ ::msgcat::mcset eo "&Red" "&Ru\u011da"
+ ::msgcat::mcset eo "Replace existing file?" "\u0108u anstata\u016digi ekzistantan dosieron?"
+ ::msgcat::mcset eo "&Retry" "&Reprovu"
+ ::msgcat::mcset eo "&Save" "&Konservu"
+ ::msgcat::mcset eo "Save As" "Konservu kiel"
+ ::msgcat::mcset eo "Save To Log" "Konservu en protokolon"
::msgcat::mcset eo "Select Log File" "Elektu prokolodosieron"
::msgcat::mcset eo "Select a file to source" "Elektu dosieron por interpreti"
::msgcat::mcset eo "&Selection:" "&Elekto:"
- ::msgcat::mcset eo "Skip Messages" "transsaltu pluajn mesa\u011dojn"
+ ::msgcat::mcset eo "Skip Messages" "transsaltu mesa\u011dojn"
::msgcat::mcset eo "&Source..." "&Fontoprogramo..."
::msgcat::mcset eo "Tcl Scripts" "Tcl-skriptoj"
- ::msgcat::mcset eo "Tcl for Windows" "Tcl por vindoso"
- ::msgcat::mcset eo "Text Files" "Tekstodosierojn"
+ ::msgcat::mcset eo "Tcl for Windows" "Tcl por Vindozo"
+ ::msgcat::mcset eo "Text Files" "Tekstodosieroj"
::msgcat::mcset eo "&Yes" "&Jes"
- ::msgcat::mcset eo "abort" "\u0109esigo"
+ ::msgcat::mcset eo "abort" "\u0109esigu"
::msgcat::mcset eo "blue" "blua"
::msgcat::mcset eo "cancel" "rezignu"
- ::msgcat::mcset eo "extension" "ekspansio"
- ::msgcat::mcset eo "extensions" "ekspansioj"
+ ::msgcat::mcset eo "extension" "kromprogramo"
+ ::msgcat::mcset eo "extensions" "kromprogramoj"
::msgcat::mcset eo "green" "verda"
- ::msgcat::mcset eo "ignore" "ignorieren"
+ ::msgcat::mcset eo "ignore" "ignoru"
::msgcat::mcset eo "red" "ru\u011da"
- ::msgcat::mcset eo "retry" "ripetu"
+ ::msgcat::mcset eo "retry" "reprovu"
::msgcat::mcset eo "yes" "jes"
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/fi.msg b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/fi.msg
new file mode 100644
index 0000000000..e014cce6ba
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/fi.msg
@@ -0,0 +1,89 @@
+namespace eval ::tk {
+ ::msgcat::mcset fi "&Abort" "&Keskeyt\u00e4"
+ ::msgcat::mcset fi "&About..." "&Tietoja..."
+ ::msgcat::mcset fi "All Files" "Kaikki tiedostot"
+ ::msgcat::mcset fi "Application Error" "Ohjelmavirhe"
+ ::msgcat::mcset fi "&Apply" "K\u00e4&yt\u00e4"
+ ::msgcat::mcset fi "Bold" "Lihavoitu"
+ ::msgcat::mcset fi "Bold Italic" "Lihavoitu, kursivoitu"
+ ::msgcat::mcset fi "&Blue" "&Sininen"
+ ::msgcat::mcset fi "Cancel" "Peruuta"
+ ::msgcat::mcset fi "&Cancel" "&Peruuta"
+ ::msgcat::mcset fi "Cannot change to the directory \"%1\$s\".\nPermission denied." "Ei voitu vaihtaa hakemistoon \"%1\$s\".\nLupa ev\u00e4tty."
+ ::msgcat::mcset fi "Choose Directory" "Valitse hakemisto"
+ ::msgcat::mcset fi "Cl&ear" "&Tyhjenn\u00e4"
+ ::msgcat::mcset fi "&Clear Console" "&Tyhjenn\u00e4 konsoli"
+ ::msgcat::mcset fi "Color" "V\u00e4ri"
+ ::msgcat::mcset fi "Console" "Konsoli"
+ ::msgcat::mcset fi "&Copy" "K&opioi"
+ ::msgcat::mcset fi "Cu&t" "&Leikkaa"
+ ::msgcat::mcset fi "&Delete" "&Poista"
+ ::msgcat::mcset fi "Details >>" "Lis\u00e4tiedot >>"
+ ::msgcat::mcset fi "Directory \"%1\$s\" does not exist." "Hakemistoa \"%1\$s\" ei ole olemassa."
+ ::msgcat::mcset fi "&Directory:" "&Hakemisto:"
+ ::msgcat::mcset fi "&Edit" "&Muokkaa"
+ ::msgcat::mcset fi "Effects" "Tehosteet"
+ ::msgcat::mcset fi "Error: %1\$s" "Virhe: %1\$s"
+ ::msgcat::mcset fi "E&xit" "&Lopeta"
+ ::msgcat::mcset fi "&File" "&Tiedosto"
+ ::msgcat::mcset fi "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Tiedosto \"%1\$s\" on jo olemassa.\nHaluatko korvata sen?"
+ ::msgcat::mcset fi "File \"%1\$s\" already exists.\n\n" "Tiedosto \"%1\$s\" on jo olemassa.\n\n"
+ ::msgcat::mcset fi "File \"%1\$s\" does not exist." "Tiedostoa \"%1\$s\" ei ole olemassa."
+ ::msgcat::mcset fi "File &name:" "Tiedosto&nimi:"
+ ::msgcat::mcset fi "File &names:" "Tiedosto&nimet:"
+ ::msgcat::mcset fi "Files of &type:" "T&yyppi:"
+ ::msgcat::mcset fi "Fi&les:" "Ti&edostot:"
+ ::msgcat::mcset fi "&Filter" "&Suodata"
+ ::msgcat::mcset fi "Fil&ter:" "Suo&data:"
+ ::msgcat::mcset fi "Font" "Kirjasin"
+ ::msgcat::mcset fi "&Font:" "&Kirjasin:"
+ ::msgcat::mcset fi "Font st&yle:" "Kirjasint&yyli:"
+ ::msgcat::mcset fi "&Green" "&Vihre\u00e4"
+ ::msgcat::mcset fi "&Help" "&Ohje"
+ ::msgcat::mcset fi "Hi" "Hei"
+ ::msgcat::mcset fi "&Hide Console" "P&iilota konsoli"
+ ::msgcat::mcset fi "&Ignore" "&Ohita"
+ ::msgcat::mcset fi "Invalid file name \"%1\$s\"." "Virheellinen tiedostonimi \"%1\$s\"."
+ ::msgcat::mcset fi "Italic" "Kursivoitu"
+ ::msgcat::mcset fi "Log Files" "Lokitiedostot"
+ ::msgcat::mcset fi "&No" "&Ei"
+ ::msgcat::mcset fi "&OK"
+ ::msgcat::mcset fi "OK"
+ ::msgcat::mcset fi "Ok" "OK"
+ ::msgcat::mcset fi "Open" "Avaa"
+ ::msgcat::mcset fi "&Open" "&Avaa"
+ ::msgcat::mcset fi "Open Multiple Files" "Avaa monta tiedostoa"
+ ::msgcat::mcset fi "P&aste" "L&iit\u00e4"
+ ::msgcat::mcset fi "&Quit" "&Lopeta"
+ ::msgcat::mcset fi "&Red" "&Punainen"
+ ::msgcat::mcset fi "Regular" "Tavallinen"
+ ::msgcat::mcset fi "Replace existing file?" "Korvataanko olemassaoleva tiedosto?"
+ ::msgcat::mcset fi "&Retry" "&Yrit\u00e4 uudelleen"
+ ::msgcat::mcset fi "Sample" "Malli"
+ ::msgcat::mcset fi "&Save" "&Tallenna"
+ ::msgcat::mcset fi "Save As" "Tallenna nimell\u00e4"
+ ::msgcat::mcset fi "Save To Log" "Tallenna lokiin"
+ ::msgcat::mcset fi "Select Log File" "Valitse lokitiedosto"
+ ::msgcat::mcset fi "Select a file to source" "Valitse l\u00e4hdetiedosto"
+ ::msgcat::mcset fi "&Selection:" "&Valinta:"
+ ::msgcat::mcset fi "&Size:" "K&oko:"
+ ::msgcat::mcset fi "Skip Messages" "J\u00e4t\u00e4 viestit huomiotta"
+ ::msgcat::mcset fi "&Source..." "L&\u00e4hde..."
+ ::msgcat::mcset fi "Stri&keout" "&Yliviivaa"
+ ::msgcat::mcset fi "Tcl Scripts" "Tcl-skriptit"
+ ::msgcat::mcset fi "Tcl for Windows" "Tcl Windowsille"
+ ::msgcat::mcset fi "Text Files" "Tekstitiedostot"
+ ::msgcat::mcset fi "&Underline" "&Alleviivaa"
+ ::msgcat::mcset fi "&Yes" "&Kyll\u00e4"
+ ::msgcat::mcset fi "abort" "keskeyt\u00e4"
+ ::msgcat::mcset fi "blue" "sininen"
+ ::msgcat::mcset fi "cancel" "peruuta"
+ ::msgcat::mcset fi "extension" "lis\u00e4osa"
+ ::msgcat::mcset fi "extensions" "lis\u00e4osat"
+ ::msgcat::mcset fi "green" "vihre\u00e4"
+ ::msgcat::mcset fi "ignore" "ohita"
+ ::msgcat::mcset fi "ok"
+ ::msgcat::mcset fi "red" "punainen"
+ ::msgcat::mcset fi "retry" "yrit\u00e4 uudelleen"
+ ::msgcat::mcset fi "yes" "kyll\u00e4"
+}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/ru.msg b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/ru.msg
index 2aac5bbf40..d7ad8b14fb 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/ru.msg
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/ru.msg
@@ -3,13 +3,17 @@ namespace eval ::tk {
::msgcat::mcset ru "&About..." "\u041f\u0440\u043e..."
::msgcat::mcset ru "All Files" "\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b"
::msgcat::mcset ru "Application Error" "\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435"
+ ::msgcat::mcset ru "&Apply" "&\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c"
+ ::msgcat::mcset ru "Bold" "Bold"
+ ::msgcat::mcset ru "Bold Italic" "Bold Italic"
::msgcat::mcset ru "&Blue" " &\u0413\u043e\u043b\u0443\u0431\u043e\u0439"
- ::msgcat::mcset ru "Cancel" "\u041e\u0442&\u043c\u0435\u043d\u0430"
+ ::msgcat::mcset ru "Cancel" "\u041e\u0442\u043c\u0435\u043d\u0430"
::msgcat::mcset ru "&Cancel" "\u041e\u0442&\u043c\u0435\u043d\u0430"
::msgcat::mcset ru "Cannot change to the directory \"%1\$s\".\nPermission denied." \
"\u041d\u0435 \u043c\u043e\u0433\u0443 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \"%1\$s\".\n\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430"
::msgcat::mcset ru "Choose Directory" "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433"
::msgcat::mcset ru "Cl&ear" "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c"
+ ::msgcat::mcset ru "&Clear Console" "&Clear Console"
::msgcat::mcset ru "Color" "\u0426\u0432\u0435\u0442"
::msgcat::mcset ru "Console" "\u041a\u043e\u043d\u0441\u043e\u043b\u044c"
::msgcat::mcset ru "&Copy" "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c"
@@ -18,8 +22,11 @@ namespace eval ::tk {
::msgcat::mcset ru "Details >>" "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 >>"
::msgcat::mcset ru "Directory \"%1\$s\" does not exist." "\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \"%1\$s\" \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442."
::msgcat::mcset ru "&Directory:" "&\u041a\u0430\u0442\u0430\u043b\u043e\u0433:"
+ ::msgcat::mcset ru "&Edit" "&Edit"
+ ::msgcat::mcset ru "Effects" "\u042d\u0444\u0444\u0435\u043a\u0442\u044b"
::msgcat::mcset ru "Error: %1\$s" "\u041e\u0448\u0438\u0431\u043a\u0430: %1\$s"
::msgcat::mcset ru "E&xit" "\u0412\u044b\u0445\u043e\u0434"
+ ::msgcat::mcset ru "&File" "&File"
::msgcat::mcset ru "File \"%1\$s\" already exists.\nDo you want to overwrite it?" \
"\u0424\u0430\u0439\u043b \"%1\$s\" \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.\n\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e?"
::msgcat::mcset ru "File \"%1\$s\" already exists.\n\n" "\u0424\u0430\u0439\u043b \"%1\$s\" \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.\n\n"
@@ -30,11 +37,16 @@ namespace eval ::tk {
::msgcat::mcset ru "Fi&les:" "\u0424\u0430\u0439&\u043b\u044b:"
::msgcat::mcset ru "&Filter" "&\u0424\u0438\u043b\u044c\u0442\u0440"
::msgcat::mcset ru "Fil&ter:" "\u0424\u0438\u043b\u044c&\u0442\u0440:"
+ ::msgcat::mcset ru "Font" "\u0428\u0440\u0438\u0444\u0442"
+ ::msgcat::mcset ru "&Font:" "&\u0428\u0440\u0438\u0444\u0442"
+ ::msgcat::mcset ru "Font st&yle:" "&\u0421\u0442\u0438\u043b\u044c \u0448\u0440\u0438\u0444\u0442\u0430:"
::msgcat::mcset ru "&Green" " &\u0417\u0435\u043b\u0435\u043d\u044b\u0439"
+ ::msgcat::mcset ru "&Help" "&Help"
::msgcat::mcset ru "Hi" "\u041f\u0440\u0438\u0432\u0435\u0442"
::msgcat::mcset ru "&Hide Console" "\u0421\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c"
::msgcat::mcset ru "&Ignore" "&\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c"
::msgcat::mcset ru "Invalid file name \"%1\$s\"." "\u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \"%1\$s\"."
+ ::msgcat::mcset ru "Italic" "Italic"
::msgcat::mcset ru "Log Files" "\u0424\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u0430"
::msgcat::mcset ru "&No" "&\u041d\u0435\u0442"
::msgcat::mcset ru "&OK" "&\u041e\u041a"
@@ -46,19 +58,26 @@ namespace eval ::tk {
::msgcat::mcset ru "P&aste" "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c"
::msgcat::mcset ru "&Quit" "\u0412\u044b\u0445\u043e\u0434"
::msgcat::mcset ru "&Red" " &\u041a\u0440\u0430\u0441\u043d\u044b\u0439"
+ ::msgcat::mcset ru "Regular" "Regular"
::msgcat::mcset ru "Replace existing file?" "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b?"
::msgcat::mcset ru "&Retry" "&\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c"
+ ::msgcat::mcset ru "Sample" "\u041f\u0440\u0438\u043c\u0435\u0440"
::msgcat::mcset ru "&Save" "&\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c"
::msgcat::mcset ru "Save As" "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a"
::msgcat::mcset ru "Save To Log" "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0436\u0443\u0440\u043d\u0430\u043b"
::msgcat::mcset ru "Select Log File" "\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b"
::msgcat::mcset ru "Select a file to source" "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438"
- ::msgcat::mcset ru "&Selection:"
+ ::msgcat::mcset ru "&Selection:" "&Selection:"
+ ::msgcat::mcset ru "&Size:" "&\u0420\u0430\u0437\u043c\u0435\u0440:"
+ ::msgcat::mcset ru "Show &Hidden Directories" "Show &Hidden Directories"
+ ::msgcat::mcset ru "Show &Hidden Files and Directories" "Show &Hidden Files and Directories"
::msgcat::mcset ru "Skip Messages" "\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f"
::msgcat::mcset ru "&Source..." "\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b..."
+ ::msgcat::mcset ru "Stri&keout" "\u041f&\u0435\u0440\u0435\u0447\u0451\u0440\u043a\u043d\u0443\u0442\u044b\u0439"
::msgcat::mcset ru "Tcl Scripts" "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 TCL"
::msgcat::mcset ru "Tcl for Windows" "TCL \u0434\u043b\u044f Windows"
::msgcat::mcset ru "Text Files" "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b"
+ ::msgcat::mcset ru "&Underline" "\u041f\u043e&\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439"
::msgcat::mcset ru "&Yes" "&\u0414\u0430"
::msgcat::mcset ru "abort" "\u043e\u0442\u043c\u0435\u043d\u0430"
::msgcat::mcset ru "blue" " \u0433\u043e\u043b\u0443\u0431\u043e\u0439"
@@ -72,4 +91,3 @@ namespace eval ::tk {
::msgcat::mcset ru "retry" "\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c"
::msgcat::mcset ru "yes" "\u0434\u0430"
}
-
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/zh_cn.msg b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/zh_cn.msg
new file mode 100644
index 0000000000..9a728b7b21
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/msgs/zh_cn.msg
@@ -0,0 +1,92 @@
+namespace eval ::tk {
+ ::msgcat::mcset zh_cn "&Abort" "&中止"
+ ::msgcat::mcset zh_cn "&About..." "&关于……"
+ ::msgcat::mcset zh_cn "All Files" "所有文件"
+ ::msgcat::mcset zh_cn "Application Error" "应用程序错误"
+ ::msgcat::mcset zh_cn "&Apply" "&添加"
+ ::msgcat::mcset zh_cn "Bold" "粗体"
+ ::msgcat::mcset zh_cn "Bold Italic" "加粗斜体"
+ ::msgcat::mcset zh_cn "&Blue" "&蓝色"
+ ::msgcat::mcset zh_cn "Cancel" "取消"
+ ::msgcat::mcset zh_cn "&Cancel" "&取消"
+ ::msgcat::mcset zh_cn "Cannot change to the directory \"%1\$s\".\nPermission denied." "无法更改目录 \"%1\$s\"。\n访问被拒绝。"
+ ::msgcat::mcset zh_cn "Choose Directory" "选择文件夹"
+ ::msgcat::mcset zh_cn "Cl&ear" "清&除"
+ ::msgcat::mcset zh_cn "&Clear Console" "&清除终端"
+ ::msgcat::mcset zh_cn "Color" "颜色"
+ ::msgcat::mcset zh_cn "Console" "终端"
+ ::msgcat::mcset zh_cn "&Copy" "&复制"
+ ::msgcat::mcset zh_cn "Cu&t" "剪&切"
+ ::msgcat::mcset zh_cn "&Delete" "&删除"
+ ::msgcat::mcset zh_cn "Details >>" "详细信息 >>"
+ ::msgcat::mcset zh_cn "Directory \"%1\$s\" does not exist." "目录 \"%1\$s\" 不存在。"
+ ::msgcat::mcset zh_cn "&Directory:" "&目录:"
+ ::msgcat::mcset zh_cn "&Edit" "&编辑"
+ ::msgcat::mcset zh_cn "Effects" "效果"
+ ::msgcat::mcset zh_cn "Error: %1\$s" "错误: %1\$s"
+ ::msgcat::mcset zh_cn "E&xit" "退&出"
+ ::msgcat::mcset zh_cn "&File" "&文件"
+ ::msgcat::mcset zh_cn "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "文件 \"%1\$s\" 已经存在。\n您想要覆盖它吗?"
+ ::msgcat::mcset zh_cn "File \"%1\$s\" already exists.\n\n" "文件 \"%1\$s\" 已经存在。\n\n"
+ ::msgcat::mcset zh_cn "File \"%1\$s\" does not exist." "文件 \"%1\$s\" 不存在。"
+ ::msgcat::mcset zh_cn "File &name:" "文件&名:"
+ ::msgcat::mcset zh_cn "File &names:" "文件&名:"
+ ::msgcat::mcset zh_cn "Files of &type:" "文件&类型:"
+ ::msgcat::mcset zh_cn "Fi&les:" "文&件:"
+ ::msgcat::mcset zh_cn "&Filter" "&过滤"
+ ::msgcat::mcset zh_cn "Fil&ter:" "过&滤:"
+ ::msgcat::mcset zh_cn "Font" "字体"
+ ::msgcat::mcset zh_cn "&Font:" "&字体:"
+ ::msgcat::mcset zh_cn "Font st&yle:" "字体&样式:"
+ ::msgcat::mcset zh_cn "&Green" "&绿色"
+ ::msgcat::mcset zh_cn "&Help" "&帮助"
+ ::msgcat::mcset zh_cn "Hi" "你好"
+ ::msgcat::mcset zh_cn "&Hide Console" "&隐藏终端"
+ ::msgcat::mcset zh_cn "&Ignore" "&忽略"
+ ::msgcat::mcset zh_cn "Invalid file name \"%1\$s\"." "无效的文件名 \"%1\$s\"。"
+ ::msgcat::mcset zh_cn "Italic" "斜体"
+ ::msgcat::mcset zh_cn "Log Files" "日志文件"
+ ::msgcat::mcset zh_cn "&No" "&取消"
+ ::msgcat::mcset zh_cn "&OK" "&确定"
+ ::msgcat::mcset zh_cn "OK" "确定"
+ ::msgcat::mcset zh_cn "Ok" "确定"
+ ::msgcat::mcset zh_cn "Open" "打开"
+ ::msgcat::mcset zh_cn "&Open" "&打开"
+ ::msgcat::mcset zh_cn "Open Multiple Files" "打开多个文件"
+ ::msgcat::mcset zh_cn "P&aste" "粘&贴"
+ ::msgcat::mcset zh_cn "&Quit" "&退出"
+ ::msgcat::mcset zh_cn "&Red" "红色"
+ ::msgcat::mcset zh_cn "Regular" "规则"
+ ::msgcat::mcset zh_cn "Replace existing file?" "替换已有文件?"
+ ::msgcat::mcset zh_cn "&Retry" "&重试"
+ ::msgcat::mcset zh_cn "Sample" "样式"
+ ::msgcat::mcset zh_cn "&Save" "&保存"
+ ::msgcat::mcset zh_cn "Save As" "另存为"
+ ::msgcat::mcset zh_cn "Save To Log" "保存到日志"
+ ::msgcat::mcset zh_cn "Select Log File" "选择日志文件"
+ ::msgcat::mcset zh_cn "Select a file to source" "选择一个源文件"
+ ::msgcat::mcset zh_cn "&Selection:" "&选择:"
+ ::msgcat::mcset zh_cn "&Size:" "&大小:"
+ ::msgcat::mcset zh_cn "Show &Hidden Directories" "显示&隐藏目录"
+ ::msgcat::mcset zh_cn "Show &Hidden Files and Directories" "显示&隐藏文件和目录"
+ ::msgcat::mcset zh_cn "Skip Messages" "跳过信息"
+ ::msgcat::mcset zh_cn "&Source..." "&来源……"
+ ::msgcat::mcset zh_cn "Stri&keout" "删&除线"
+ ::msgcat::mcset zh_cn "Tcl Scripts" "Tcl脚本"
+ ::msgcat::mcset zh_cn "Tcl for Windows" "适用于Windows的Tcl"
+ ::msgcat::mcset zh_cn "Text Files" "文本文档"
+ ::msgcat::mcset zh_cn "&Underline" "&下划线"
+ ::msgcat::mcset zh_cn "&Yes" "&确定"
+ ::msgcat::mcset zh_cn "abort" "中止"
+ ::msgcat::mcset zh_cn "blue" "蓝色"
+ ::msgcat::mcset zh_cn "cancel" "取消"
+ ::msgcat::mcset zh_cn "extension" "拓展"
+ ::msgcat::mcset zh_cn "extensions" "拓展"
+ ::msgcat::mcset zh_cn "green" "绿色"
+ ::msgcat::mcset zh_cn "ignore" "忽略"
+ ::msgcat::mcset zh_cn "ok" "确定"
+ ::msgcat::mcset zh_cn "red" "红色"
+ ::msgcat::mcset zh_cn "retry" "重试"
+ ::msgcat::mcset zh_cn "yes" "确认"
+}
+
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/pkgIndex.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/pkgIndex.tcl
index 0e4a3e37ed..5c7dfbf946 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/pkgIndex.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/pkgIndex.tcl
@@ -1,7 +1,7 @@
if {![package vsatisfies [package provide Tcl] 8.6.0]} return
if {($::tcl_platform(platform) eq "unix") && ([info exists ::env(DISPLAY)]
|| ([info exists ::argv] && ("-display" in $::argv)))} {
- package ifneeded Tk 8.6.12 [list load [file normalize [file join $dir .. .. bin libtk8.6.dll]]]
+ package ifneeded Tk 8.6.13 [list load [file normalize [file join $dir .. .. bin libtk8.6.dll]]]
} else {
- package ifneeded Tk 8.6.12 [list load [file normalize [file join $dir .. .. bin tk86.dll]]]
+ package ifneeded Tk 8.6.13 [list load [file normalize [file join $dir .. .. bin tk86.dll]]]
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/scale.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/scale.tcl
index fb9b81b26b..466a3ce6aa 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/scale.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/scale.tcl
@@ -210,7 +210,20 @@ proc ::tk::ScaleEndDrag {w} {
proc ::tk::ScaleIncrement {w dir big repeat} {
variable ::tk::Priv
+
if {![winfo exists $w]} return
+
+ # give the cancel callback a chance to be serviced if the execution time of
+ # the -command script lasts longer than -repeatdelay
+ set clockms [clock milliseconds]
+ if {$repeat eq "again" &&
+ [expr {$clockms - $Priv(clockms)}] > [expr {[$w cget -repeatinterval] * 1.1}]} {
+ set Priv(clockms) $clockms
+ set Priv(afterId) [after [$w cget -repeatinterval] \
+ [list tk::ScaleIncrement $w $dir $big again]]
+ return
+ }
+
if {$big eq "big"} {
set inc [$w cget -bigincrement]
if {$inc == 0} {
@@ -231,14 +244,18 @@ proc ::tk::ScaleIncrement {w dir big repeat} {
set inc [expr {-$inc}]
}
}
+ # this will run the -command script (if any) during the redrawing
+ # of the scale at idle time
$w set [expr {[$w get] + $inc}]
if {$repeat eq "again"} {
+ set Priv(clockms) $clockms
set Priv(afterId) [after [$w cget -repeatinterval] \
[list tk::ScaleIncrement $w $dir $big again]]
} elseif {$repeat eq "initial"} {
set delay [$w cget -repeatdelay]
if {$delay > 0} {
+ set Priv(clockms) $clockms
set Priv(afterId) [after $delay \
[list tk::ScaleIncrement $w $dir $big again]]
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/spinbox.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/spinbox.tcl
index 2b387d2afa..0e26644a7e 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/spinbox.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/spinbox.tcl
@@ -200,18 +200,18 @@ bind Spinbox <<SelectAll>> {
bind Spinbox <<SelectNone>> {
%W selection clear
}
-bind Spinbox <KeyPress> {
+bind Spinbox <Key> {
::tk::EntryInsert %W %A
}
-# Ignore all Alt, Meta, and Control keypresses unless explicitly bound.
+# Ignore all Alt, Meta, Control, and Mod4 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,
+# <Key> class binding will also fire and insert the character,
# which is wrong. Ditto for Escape, Return, and Tab.
-bind Spinbox <Alt-KeyPress> {# nothing}
-bind Spinbox <Meta-KeyPress> {# nothing}
-bind Spinbox <Control-KeyPress> {# nothing}
+bind Spinbox <Alt-Key> {# nothing}
+bind Spinbox <Meta-Key> {# nothing}
+bind Spinbox <Control-Key> {# nothing}
bind Spinbox <Escape> {# nothing}
bind Spinbox <Return> {# nothing}
bind Spinbox <KP_Enter> {# nothing}
@@ -219,7 +219,8 @@ bind Spinbox <Tab> {# nothing}
bind Spinbox <Prior> {# nothing}
bind Spinbox <Next> {# nothing}
if {[tk windowingsystem] eq "aqua"} {
- bind Spinbox <Command-KeyPress> {# nothing}
+ bind Spinbox <Command-Key> {# nothing}
+ bind Spinbox <Mod4-Key> {# nothing}
}
# On Windows, paste is done using Shift-Insert. Shift-Insert already
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/text.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/text.tcl
index d1f9b8648e..6cfe9d0e9b 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/text.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/text.tcl
@@ -292,22 +292,23 @@ bind Text <<PasteSelection>> {
bind Text <Insert> {
catch {tk::TextInsert %W [::tk::GetSelection %W PRIMARY]}
}
-bind Text <KeyPress> {
+bind Text <Key> {
tk::TextInsert %W %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,
+# <Key> class binding will also fire and insert the character,
# which is wrong. Ditto for <Escape>.
-bind Text <Alt-KeyPress> {# nothing }
-bind Text <Meta-KeyPress> {# nothing}
-bind Text <Control-KeyPress> {# nothing}
+bind Text <Alt-Key> {# nothing }
+bind Text <Meta-Key> {# nothing}
+bind Text <Control-Key> {# nothing}
bind Text <Escape> {# nothing}
bind Text <KP_Enter> {# nothing}
if {[tk windowingsystem] eq "aqua"} {
- bind Text <Command-KeyPress> {# nothing}
+ bind Text <Command-Key> {# nothing}
+ bind Text <Mod4-Key> {# nothing}
}
# Additional emacs-like bindings:
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tk.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tk.tcl
index 5bb3be71aa..89267d66cc 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tk.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tk.tcl
@@ -11,7 +11,7 @@
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
# Verify that we have Tk binary and script components from the same release
-package require -exact Tk 8.6.12
+package require -exact Tk 8.6.13
# Create a ::tk namespace
namespace eval ::tk {
@@ -675,15 +675,6 @@ proc ::tk::mcmaxamp {args} {
return $maxlen
}
-# For now, turn off the custom mdef proc for the Mac:
-
-if {[tk windowingsystem] eq "aqua"} {
- namespace eval ::tk::mac {
- set useCustomMDEF 0
- }
-}
-
-
if {[tk windowingsystem] eq "aqua"} {
#stub procedures to respond to "do script" Apple Events
proc ::tk::mac::DoScriptFile {file} {
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tkfbox.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tkfbox.tcl
index f73fdc5c84..0c3cc0c3f6 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tkfbox.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/tkfbox.tcl
@@ -463,7 +463,7 @@ proc ::tk::dialog::file::Create {w class} {
wm protocol $w WM_DELETE_WINDOW [list ::tk::dialog::file::CancelCmd $w]
$data(upBtn) configure -command [list ::tk::dialog::file::UpDirCmd $w]
$data(cancelBtn) configure -command [list ::tk::dialog::file::CancelCmd $w]
- bind $w <KeyPress-Escape> [list $data(cancelBtn) invoke]
+ bind $w <Escape> [list $data(cancelBtn) invoke]
bind $w <Alt-Key> [list tk::AltKeyInDialog $w %A]
# Set up event handlers specific to File or Directory Dialogs
@@ -581,9 +581,9 @@ proc ::tk::dialog::file::Update {w} {
# so the user may still click and cause havoc ...
#
set entCursor [$data(ent) cget -cursor]
- set dlgCursor [$w cget -cursor]
+ set dlgCursor [$w cget -cursor]
$data(ent) configure -cursor watch
- $w configure -cursor watch
+ $w configure -cursor watch
update idletasks
$data(icons) deleteall
@@ -633,7 +633,7 @@ proc ::tk::dialog::file::Update {w} {
# turn off the busy cursor.
#
$data(ent) configure -cursor $entCursor
- $w configure -cursor $dlgCursor
+ $w configure -cursor $dlgCursor
}
# ::tk::dialog::file::SetPathSilently --
@@ -909,15 +909,15 @@ proc ::tk::dialog::file::VerifyFileName {w filename} {
}
}
PATH {
- tk_messageBox -icon warning -type ok -parent $w \
- -message [mc "Directory \"%1\$s\" does not exist." $path]
+ tk_messageBox -icon warning -type ok -parent $w -message \
+ [mc "Directory \"%1\$s\" does not exist." $path]
$data(ent) selection range 0 end
$data(ent) icursor end
}
CHDIR {
tk_messageBox -type ok -parent $w -icon warning -message \
- [mc "Cannot change to the directory\
- \"%1\$s\".\nPermission denied." $path]
+ [mc "Cannot change to the directory\
+ \"%1\$s\".\nPermission denied." $path]
$data(ent) selection range 0 end
$data(ent) icursor end
}
@@ -1121,8 +1121,7 @@ proc ::tk::dialog::file::Done {w {selectFilePath ""}} {
} then {
upvar #0 $data(-typevariable) typeVariable
set typeVariable [lindex $data(origfiletypes) \
- [lsearch -exact $data(-filetypes) $data(filterType)] 0]
-
+ [lsearch -exact $data(-filetypes) $data(filterType)] 0]
}
}
bind $data(okBtn) <Destroy> {}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/cursors.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/cursors.tcl
index f1f9fa1633..9d1e1aef31 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/cursors.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/cursors.tcl
@@ -99,23 +99,20 @@ namespace eval ttk {
}
"aqua" {
- if {[package vsatisfies [package provide Tk] 8.5]} {
- # appeared 2007-04-23, Tk 8.5a6
- array set Cursors {
- standard arrow
- text ibeam
- link pointinghand
- crosshair crosshair
- busy watch
- forbidden notallowed
-
- hresize resizeleftright
- vresize resizeupdown
- nresize resizeup
- sresize resizedown
- wresize resizeleft
- eresize resizeright
- }
+ array set Cursors {
+ standard arrow
+ text ibeam
+ link pointinghand
+ crosshair crosshair
+ busy watch
+ forbidden notallowed
+
+ hresize resizeleftright
+ vresize resizeupdown
+ nresize resizeup
+ sresize resizedown
+ wresize resizeleft
+ eresize resizeright
}
}
}
@@ -201,7 +198,7 @@ proc ttk::CursorSampler {f} {
if {[info exists argv0] && $argv0 eq [info script]} {
wm title . "[array size ::ttk::Cursors] cursors"
pack [ttk::CursorSampler .f] -expand true -fill both
- bind . <KeyPress-Escape> [list destroy .]
+ bind . <Escape> [list destroy .]
focus .f
}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/entry.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/entry.tcl
index 4cdb5acbfb..12080a3bec 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/entry.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/entry.tcl
@@ -141,6 +141,7 @@ bind TEntry <Tab> {# nothing}
# as a Command modifier.
if {[tk windowingsystem] eq "aqua"} {
bind TEntry <Command-Key> {# nothing}
+ bind TEntry <Mod4-Key> {# nothing}
}
# Tk-on-Cocoa generates characters for these two keys. [Bug 2971663]
bind TEntry <<PrevLine>> {# nothing}
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/menubutton.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/menubutton.tcl
index a0f70c99d0..fc0ea023de 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/menubutton.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/menubutton.tcl
@@ -82,7 +82,6 @@ if {[tk windowingsystem] eq "aqua"} {
set bbh [expr {[winfo height $mb]} + $bevelPad]
set mw [winfo reqwidth $menu]
set bw [winfo width $mb]
- set dF [expr {[winfo width $mb] - [winfo reqwidth $menu] - $menuPad}]
set entry [::tk::MenuFindName $menu [$mb cget -text]]
if {$entry < 0} {
set entry 0
@@ -106,7 +105,7 @@ if {[tk windowingsystem] eq "aqua"} {
incr y $menuPad
incr x $bw
}
- default {
+ default { # flush
incr y $bbh
}
}
@@ -118,7 +117,6 @@ if {[tk windowingsystem] eq "aqua"} {
set bh [expr {[winfo height $mb]}]
set mw [expr {[winfo reqwidth $menu]}]
set bw [expr {[winfo width $mb]}]
- set dF [expr {[winfo width $mb] - [winfo reqwidth $menu]}]
if {[tk windowingsystem] eq "win32"} {
incr mh 6
incr mw 16
@@ -154,13 +152,8 @@ if {[tk windowingsystem] eq "aqua"} {
right {
incr x $bw
}
- default {
- if {[$mb cget -style] eq ""} {
- incr x [expr {([winfo width $mb] - \
- [winfo reqwidth $menu])/ 2}]
- } else {
- incr y $bh
- }
+ default { # flush
+ incr x [expr {([winfo width $mb] - [winfo reqwidth $menu])/ 2}]
}
}
return [list $x $y $entry]
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/panedwindow.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/panedwindow.tcl
index 0fd9bd7563..1989b8955c 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/panedwindow.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/panedwindow.tcl
@@ -45,9 +45,9 @@ proc ttk::panedwindow::Press {w x y} {
proc ttk::panedwindow::Drag {w x y} {
variable State
if {!$State(pressed)} { return }
- switch -- [$w cget -orient] {
- horizontal { set delta [expr {$x - $State(pressX)}] }
- vertical { set delta [expr {$y - $State(pressY)}] }
+ switch -glob -- [$w cget -orient] {
+ h* { set delta [expr {$x - $State(pressX)}] }
+ v* { set delta [expr {$y - $State(pressY)}] }
}
$w sashpos $State(sash) [expr {$State(sashPos) + $delta}]
}
@@ -80,9 +80,9 @@ proc ttk::panedwindow::SetCursor {w x y} {
set cursor $State(userConfCursor)
if {[llength [$w identify $x $y]]} {
# Assume we're over a sash.
- switch -- [$w cget -orient] {
- horizontal { set cursor hresize }
- vertical { set cursor vresize }
+ switch -glob -- [$w cget -orient] {
+ h* { set cursor hresize }
+ v* { set cursor vresize }
}
}
ttk::setCursor $w $cursor
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/utils.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/utils.tcl
index 257191493e..3d90880044 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/utils.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/ttk/utils.tcl
@@ -236,8 +236,8 @@ proc ttk::Repeatedly {args} {
after cancel $Repeat(timer)
set script [uplevel 1 [list namespace code $args]]
set Repeat(script) $script
- uplevel #0 $script
set Repeat(timer) [after $Repeat(delay) ttk::Repeat]
+ uplevel #0 $script
}
## Repeat --
@@ -245,8 +245,8 @@ proc ttk::Repeatedly {args} {
#
proc ttk::Repeat {} {
variable Repeat
- uplevel #0 $Repeat(script)
set Repeat(timer) [after $Repeat(interval) ttk::Repeat]
+ uplevel #0 $Repeat(script)
}
## ttk::CancelRepeat --
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/xmfbox.tcl b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/xmfbox.tcl
index 14d2be5af6..c26164a3dd 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/xmfbox.tcl
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tk8.6/xmfbox.tcl
@@ -83,9 +83,9 @@ proc ::tk::MotifFDialog_Create {dataName type argList} {
MotifFDialog_Config $dataName $type $argList
if {$data(-parent) eq "."} {
- set w .$dataName
+ set w .$dataName
} else {
- set w $data(-parent).$dataName
+ set w $data(-parent).$dataName
}
# (re)create the dialog box if necessary
@@ -549,7 +549,7 @@ proc ::tk::MotifFDialog_Update {w} {
$data(fEnt) delete 0 end
$data(fEnt) insert 0 \
- [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)]
+ [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)]
$data(sEnt) delete 0 end
$data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \
$data(selectFile)]
@@ -597,15 +597,15 @@ proc ::tk::MotifFDialog_LoadFiles {w} {
if {[file isdir ./$f]} {
lappend dlist $f
} else {
- foreach pat $data(filter) {
- if {[string match $pat $f]} {
+ foreach pat $data(filter) {
+ if {[string match $pat $f]} {
if {[string match .* $f]} {
incr top
}
lappend flist $f
- break
+ break
}
- }
+ }
}
}
eval [list $data(dList) insert end] [lsort -dictionary $dlist]
@@ -907,9 +907,9 @@ proc ::tk::MotifFDialog_CancelCmd {w} {
}
proc ::tk::ListBoxKeyAccel_Set {w} {
- bind Listbox <Any-KeyPress> ""
+ bind Listbox <Any-Key> ""
bind $w <Destroy> [list tk::ListBoxKeyAccel_Unset $w]
- bind $w <Any-KeyPress> [list tk::ListBoxKeyAccel_Key $w %A]
+ bind $w <Any-Key> [list tk::ListBoxKeyAccel_Key $w %A]
}
proc ::tk::ListBoxKeyAccel_Unset {w} {
diff --git a/systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh b/systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh
index 6de9e0472a..e02e0c4105 100644
--- a/systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh
+++ b/systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh
@@ -17,7 +17,7 @@ TK_DLL_FILE="tk86.dll"
TK_VERSION='8.6'
TK_MAJOR_VERSION='8'
TK_MINOR_VERSION='6'
-TK_PATCH_LEVEL='.12'
+TK_PATCH_LEVEL='.13'
# -D flags for use with the C compiler.
TK_DEFS='-DPACKAGE_NAME=\"tk\" -DPACKAGE_TARNAME=\"tk\" -DPACKAGE_VERSION=\"8.6\" -DPACKAGE_STRING=\"tk\ 8.6\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -DMODULE_SCOPE=extern -DTCL_CFG_DO64BIT=1 -DHAVE_NO_SEH=1 -DHAVE_CAST_TO_UNION=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_INTPTR_T=1 -DHAVE_UINTPTR_T=1 -DHAVE_UXTHEME_H=1 -DHAVE_VSSYM32_H=1 -DNDEBUG=1 -DTCL_CFG_OPTIMIZED=1 '
@@ -36,22 +36,22 @@ TK_LIBS='-lnetapi32 -lkernel32 -luser32 -ladvapi32 -luserenv -lws2_32 -lgdi32 -l
# Top-level directory in which Tcl's platform-independent files are
# installed.
-TK_PREFIX='/tmp/tltcl'
+TK_PREFIX='/home/siepo/tltcl'
# Top-level directory in which Tcl's platform-specific files (e.g.
# executables) are installed.
-TK_EXEC_PREFIX='/tmp/tltcl'
+TK_EXEC_PREFIX='/home/siepo/tltcl'
# -l flag to pass to the linker to pick up the Tcl library
TK_LIB_FLAG='-ltk86'
# String to pass to linker to pick up the Tk library from its
# build directory.
-TK_BUILD_LIB_SPEC='-L/tmp/siepo/tk8.6.12/win -ltk86'
+TK_BUILD_LIB_SPEC='-L/tmp/siepo/tk8.6.13/win -ltk86'
# String to pass to linker to pick up the Tk library from its
# installed directory.
-TK_LIB_SPEC='-L/tmp/tltcl/lib -ltk86'
+TK_LIB_SPEC='-L/home/siepo/tltcl/lib -ltk86'
# Location of the top-level source directory from which Tk was built.
# This is the directory that contains a README file as well as
@@ -59,7 +59,7 @@ TK_LIB_SPEC='-L/tmp/tltcl/lib -ltk86'
# different place than the directory containing the source files, this
# points to the location of the sources, not the location where Tk was
# compiled.
-TK_SRC_DIR='/tmp/siepo/tk8.6.12'
+TK_SRC_DIR='/tmp/siepo/tk8.6.13'
# Needed if you want to make a 'fat' shared library library
# containing tk objects or link a different wish.
@@ -74,14 +74,14 @@ TK_STUB_LIB_FLAG='-ltkstub86'
# String to pass to linker to pick up the Tk stub library from its
# build directory.
-TK_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tk8.6.12/win -ltkstub86'
+TK_BUILD_STUB_LIB_SPEC='-L/tmp/siepo/tk8.6.13/win -ltkstub86'
# String to pass to linker to pick up the Tk stub library from its
# installed directory.
-TK_STUB_LIB_SPEC='-L/tmp/tltcl/lib -ltkstub86'
+TK_STUB_LIB_SPEC='-L/home/siepo/tltcl/lib -ltkstub86'
# Path to the Tk stub library in the build directory.
-TK_BUILD_STUB_LIB_PATH='/tmp/siepo/tk8.6.12/win/libtkstub86.a'
+TK_BUILD_STUB_LIB_PATH='/tmp/siepo/tk8.6.13/win/libtkstub86.a'
# Path to the Tk stub library in the install directory.
-TK_STUB_LIB_PATH='/tmp/tltcl/lib/libtkstub86.a'
+TK_STUB_LIB_PATH='/home/siepo/tltcl/lib/libtkstub86.a'
diff --git a/systems/texlive/tlnet/tlpkg/translations/cs.po b/systems/texlive/tlnet/tlpkg/translations/cs.po
index d009fb49f3..14fa937c15 100644
--- a/systems/texlive/tlnet/tlpkg/translations/cs.po
+++ b/systems/texlive/tlnet/tlpkg/translations/cs.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2022-03-21 13:54+0100\n"
"Last-Translator: Petr Sojka <sojka@fi.muni.cz>\n"
"Language-Team: Czech <>\n"
@@ -37,8 +37,8 @@ msgstr "Jen nové"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Všechny"
@@ -153,7 +153,7 @@ msgid "Display configuration"
msgstr "Zobrazit konfiguraci"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Stav"
@@ -231,12 +231,12 @@ msgid "Package name"
msgstr "Název balíku"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokální revize (verze)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Vzdálená revize (verze)"
@@ -276,19 +276,19 @@ msgstr "Zálohuj"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Volby"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Akce"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Pomoc"
@@ -310,7 +310,7 @@ msgstr "Načíst další instalační zdroj ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Ukončit"
@@ -319,7 +319,7 @@ msgid "General ..."
msgstr "Obecné ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papír ..."
@@ -426,8 +426,8 @@ msgstr "Manuál"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "O programu"
@@ -1089,7 +1089,7 @@ msgid "Not enough room"
msgstr "Nedostatek místa"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Jazyk grafického uživatelského rozhraní"
@@ -1099,7 +1099,7 @@ msgstr "Změna velikosti písma"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Aktuální:"
@@ -1109,7 +1109,7 @@ msgid "TeX Live %s Installer"
msgstr "Instalační program TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Pokročilý"
@@ -1145,7 +1145,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Platformy"
@@ -1276,7 +1276,7 @@ msgstr "Běžící"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Čekající"
@@ -1289,7 +1289,7 @@ msgid "Up to date"
msgstr "Je aktuální"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Neznámý"
@@ -1304,8 +1304,8 @@ msgstr ""
"jiné úložiště."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Zdroje"
@@ -1406,7 +1406,7 @@ msgid "platform"
msgstr "platforma"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Chyba"
@@ -1442,7 +1442,7 @@ msgid "No packages in backup directory %s"
msgstr "Žádný balík v záložním adresáři %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Obnov ze zálohy"
@@ -1528,7 +1528,11 @@ msgstr "Smazání některých závislosti %s. Pokračovat?"
msgid "Info"
msgstr "Informace"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1536,7 +1540,7 @@ msgstr ""
"GUI rozhraní pro TeX Live Manager\n"
"Implementované v Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1549,7 +1553,7 @@ msgstr ""
"uživatelský režim ani zálohování a obnovování,\n"
"Pro úplnou dokumentaci samotného programu tlmgr použijte 'Nápovědu tlmgr'."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1558,185 +1562,185 @@ msgstr ""
"%s není lokální ani vzdálené úložiště.\n"
"Nakonfigurujte, prosím, platný repozitář"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Soubor"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Načíst úložiště"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Konec"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Přegeneruj databázi souborů"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Přegenerovávám databázi souborů..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Přegeneruj formáty"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Přegenerování formátů..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Přegeneruj soubory fontmaps"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Přestavba souborů fontmap ..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Přidat/nahradit 64bitové binární soubory"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Přidat/nahradit z místního souboru"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Znovu synchronizujte s 32bitovou verzí"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Odebrat 64bitové binární soubory"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Zmena velikosti písma grafického uživatelského rozhraní"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Nápověda TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Nápověda Tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Restartuj se"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Restart tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Ukaž logovací soubory"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL Manager aktualizovat?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Poslední tlmgr příkaz:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Root v %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Seznam balíků"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Instalováno"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Nenainstalováno"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Aktualizovatelné"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detailní >> Globální"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Kolekce a schémata"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Pouze schémata"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Hledat"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Podle jména"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Podle jména a popisu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Instalace označeného"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Aktualizovat označené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Odstranit označené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Aktualizovat tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Aktualizovat vše"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Označit vše zobrazené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Odznačit vše"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Zobrazeny jsou pouze balíčky pro nainstalované platformy"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Jméno"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Popis"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Víceuživatelská"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Jednouživatelská"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1745,224 +1749,224 @@ msgstr ""
"do %s nelze zapisovat. Pravděpodobně toho moc neuděláte.\n"
"Jste si jistý, že chcete pokračovat?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Viz interní nápovědu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "základní schéma (plain a latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schéma ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "úplné schéma (všechno)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schéma GUST TeX Live"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "pouze infrastukturní schéma (vůbec žádný TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "střední schéma (malé + více balíků a jazyků)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimální schéma (pouze plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "malé schéma (základní + xetex, metapost, několik jazyků)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schéma teTeX (více než střední, ale zdaleka ne úplné)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Nezbytné programy a soubory"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Dodatečné styly pro BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Pomocné programy pro TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt a balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Dodatečné fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Doporučené fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utility pro práci s grafikou a fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Dodatečné formáty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Sazba her"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Balíky pro humanitní obory"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Čínština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Čínština/Japonština/Korejština (základ)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cyrilice"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Čeština/slovenština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angličtina, US a UK"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Ostatní evropské jazyky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francouzština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Němčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Řečtina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Korejština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ostatní jazyky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugalština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Španělština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Základní balíky pro LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Dodatečné balíky pro LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Doporučené balíky pro LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Balíky pro LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Matematické, přírodovědní a informatické balíčky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Balíky pro MetaPost a Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Balíky pro sazbu hudby"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafika, obrázky, diagramy"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Základní (La)TeXové balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Nakladatelské styly, disertace atd."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL obsahuje pouze binárku pro Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Podpůrné programy výhradně pro Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX a balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Vítejte v TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1971,7 +1975,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/da.po b/systems/texlive/tlnet/tlpkg/translations/da.po
index bc79756176..d2970af6cc 100644
--- a/systems/texlive/tlnet/tlpkg/translations/da.po
+++ b/systems/texlive/tlnet/tlpkg/translations/da.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2021\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2021-05-05 10:13+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -38,8 +38,8 @@ msgstr "Kun nye"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Alle"
@@ -155,7 +155,7 @@ msgid "Display configuration"
msgstr "Vis konfiguration"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Status"
@@ -233,12 +233,12 @@ msgid "Package name"
msgstr "Pakkenavn"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokal rev. (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Fjernrev. (ver.)"
@@ -278,19 +278,19 @@ msgstr "Backup"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Valgmuligheder"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Handlinger"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Hjælp"
@@ -312,7 +312,7 @@ msgstr "Indlæs andet datalager..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Afslut"
@@ -321,7 +321,7 @@ msgid "General ..."
msgstr "Almen..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papir..."
@@ -428,8 +428,8 @@ msgstr "Vejledning"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Om"
@@ -1089,7 +1089,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Sprog i GUI"
@@ -1099,7 +1099,7 @@ msgstr "Skalering af skrifttyper"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Aktuel:"
@@ -1109,7 +1109,7 @@ msgid "TeX Live %s Installer"
msgstr "TeX Live %s-installationsprogram"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Avanceret"
@@ -1145,7 +1145,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Platforme"
@@ -1276,7 +1276,7 @@ msgstr "Kører"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Inaktiv"
@@ -1289,7 +1289,7 @@ msgid "Up to date"
msgstr "Opdaterede"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Ukendt"
@@ -1304,8 +1304,8 @@ msgstr ""
"datalager."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Datalagre"
@@ -1406,7 +1406,7 @@ msgid "platform"
msgstr "platform"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Fejl"
@@ -1442,7 +1442,7 @@ msgid "No packages in backup directory %s"
msgstr "Ingen pakker i backup-biblioteket %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Gendan fra backup"
@@ -1528,7 +1528,11 @@ msgstr "Fjerner nogle afhængigheder %s alligevel. Fortsæt?"
msgid "Info"
msgstr "Info"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1536,7 +1540,7 @@ msgstr ""
"GUI-grænseflade for TeX Live Manager\n"
"Implementeret i Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1548,7 +1552,7 @@ msgstr ""
"i særdeleshed brugertilstand, backup og gendannelse.\n"
"Tilgå menuen 'Hjælp til tlmgr' for den fulde dokumentation af selve tlmgr."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1557,185 +1561,185 @@ msgstr ""
"%s er ikke et lokalt eller datalager.\n"
"Konfigurer et gyldigt datalager"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Fil"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Indlæs datalager"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Afslut"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Gendan filnavnsdatabase"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Gendan filnavnsdatabase..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Gendan formater"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Gendan formater..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Gendan Gendanner skrifttypeafbildninger"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Gendanner skrifttypeafbildningsfiler..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Skalering af skrifttyper i GUI"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Hjælp til TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Hjælp til tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Genstart sig selv"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Genstart tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Vis log-filer"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Er TL Manager opdateret?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Seneste tlmgr-kommando:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Rod ved %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Pakkeliste"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Installeret"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Ikke installeret"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Kan opdateres"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detaljeret>>Globalt"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Samlinger og planer"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Kun planer"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Søg"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Efter navn"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Efter navn og beskrivelse"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Installer markerede"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Opdater markerede"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Fjern markerede"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Opdater tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Opdater alt"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Markér alle viste"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Markér ingen"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Kun pakker til installerede platforme vises"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Navn"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Beskrivelse"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Mangebruger"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Enkeltbruger"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1745,225 +1749,225 @@ msgstr ""
"meget.\n"
"Er du sikker på, at du vil fortsætte?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "basal plan (plain og latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt-plan"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "fuld plan (alt)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST's TeX Live plan"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "plan kun med infrastruktur (ingen TeX overhovedet)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "medium plan (lille plan samt ekstra pakker og sprog)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimal plan (kun plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "lille plan (basal + xetes, metapost samt nogle få sprog)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX plan (mere end medium, men ingenlunde fuld plan)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Essentielle programmer og filer"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Yderligere stilarter til BiBTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Hjælpeprogrammer til TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt med pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Yderligere skrifttyper"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Anbefalede skrifttyper"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Værktøjer til grafik og skrifttyper"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Yderligere formater"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Typesetting af spil"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakker til humaniora"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabisk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Kinesisk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Kinesisk/Japansk/Koreansk (basis)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Kyrillisk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tjekkisk/Slovakisk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Amerikansk og Britisk Engelsk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Øvrige Europæiske sprog"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Fransk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Tysk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Græsk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiensk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japansk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Koreansk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Øvrige sprog"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polsk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugisisk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spansk"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Grundlæggende LaTeX-pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Yderligere LaTeX-pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Anbefalede LaTeX-pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX-pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakker til matematik, naturvidenskab og datalogi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pakker til MetaPost og Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pakker til musik"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafik, billeder og diagrammer"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Simple (La)TeX-pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Udgiver-pakker, afhandlinger mv."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
"Redigeringsværktøjet TeXworks; TL includerer kun de binære filer til Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programmer, der kun understøttes på Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX med pakker"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Velkommen til TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1972,7 +1976,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/de.po b/systems/texlive/tlnet/tlpkg/translations/de.po
index 27ac9499d7..d251d7c202 100644
--- a/systems/texlive/tlnet/tlpkg/translations/de.po
+++ b/systems/texlive/tlnet/tlpkg/translations/de.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
-"PO-Revision-Date: 2023-03-16 22:21+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
+"PO-Revision-Date: 2024-03-13 06:07+0100\n"
"Last-Translator: Uwe Ziegenhagen <ziegenhagen@gmail.com>\n"
"Language-Team: TL German Translation Team <tex-live@tug.org>\n"
"Language: de\n"
@@ -33,8 +33,8 @@ msgstr "Nur neue"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Alle"
@@ -148,7 +148,7 @@ msgid "Display configuration"
msgstr "Zeige Konfiguration"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Status"
@@ -226,12 +226,12 @@ msgid "Package name"
msgstr "Paketname"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokale rev. (vers.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Server rev. (vers.)"
@@ -271,19 +271,19 @@ msgstr "Backup"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Optionen"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Aktionen"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Hilfe"
@@ -305,7 +305,7 @@ msgstr "Laden einer anderen Installationsquelle ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Beenden"
@@ -314,7 +314,7 @@ msgid "General ..."
msgstr "Allgemein ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papierformat ..."
@@ -421,8 +421,8 @@ msgstr "Dokumentation"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Über TeX Live Manager (tlmgr)"
@@ -793,8 +793,8 @@ msgstr ""
"Der TeX Live Manager (die Software, die gerade läuft)\n"
"muss aktualisiert werden, bevor weitere Updates eingespielt werden können.\n"
"\n"
-"Bitte tun sie dies durch das Klicken des \"Aktualisiere den TeX Live Manager"
-"\" Buttons,\n"
+"Bitte tun sie dies durch das Klicken des \"Aktualisiere den TeX Live "
+"Manager\" Buttons,\n"
"nachdem Sie diesen Dialog hier geschlossen haben.\n"
"\n"
"Nach dem Update wird der TeX Live Manager beendet.\n"
@@ -1082,7 +1082,7 @@ msgid "Not enough room"
msgstr "Nicht genug Speicherplatz"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "GUI Sprache"
@@ -1092,7 +1092,7 @@ msgstr "Font-Skalierung"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Aktuell:"
@@ -1102,7 +1102,7 @@ msgid "TeX Live %s Installer"
msgstr "TeX Live %s Installationsprogramm"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Fortgeschritten"
@@ -1138,7 +1138,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Plattformen"
@@ -1269,7 +1269,7 @@ msgstr "Läuft"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Bereit"
@@ -1282,7 +1282,7 @@ msgid "Up to date"
msgstr "Aktuell"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Unbekannt"
@@ -1297,8 +1297,8 @@ msgstr ""
"Repository."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Repositories"
@@ -1399,7 +1399,7 @@ msgid "platform"
msgstr "Plattform"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Fehler"
@@ -1435,7 +1435,7 @@ msgid "No packages in backup directory %s"
msgstr "Keine Pakete im Backup-Verzeichnis %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Restore aus Backup"
@@ -1521,7 +1521,11 @@ msgstr "Entferne sowieso einige Abhängigkeiten %s. Weitermachen?"
msgid "Info"
msgstr "Info"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1529,7 +1533,7 @@ msgstr ""
"Grafische Nutzeroberflöche für TeX Live Manager\n"
"Implementiert in Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1541,7 +1545,7 @@ msgstr ""
"insbesondere in Bezug auf den User Modus, Backup und Restore. Schauen Sie in "
"die tlmgr Hilfe für die Komplett-Dokumentation von tlmgr."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1550,185 +1554,185 @@ msgstr ""
"%s ist kein lokales oder remote Repository.\n"
"Bitte wählen Sie ein valides Repository"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Datei"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Lade das Repository"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Beenden"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Aktualisiere Dateinamen-Datenbank"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Aktualisiere Dateinamen-Datenbank..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Erzeuge Formate neu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Erzeuge Formate neu..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Erzeuge Font-Maps"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Erzeuge Fontmap-Dateien..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Füge hinzu/ersetze 64-Bit Binärdateien"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Füge hinzu/ersetze aus lokalem Verzeichnis"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Synchronisiere wieder mit 32-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Entferne 64-Bit Binärdateien"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "GUI Font Skalierung"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "TLShell Hilfe"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Tlmgr Hilfe"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Starte neu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Starte tlmgr neu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Zeige Logs"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL Manager aktuell?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Letzter tlmgr Befehl:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Wurzel bei %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Paketliste"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Installiert"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Nicht installiert"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Aktualisierbar"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detail >> Global"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Sammlungen und Schemata"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Nur Schemata"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Suche"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Nach Namen"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Nach Name und Beschreibung"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Installiere markierte"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Aktualisiere markierte"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Entferne markierte"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Aktualisiere tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Aktualisieren aller Pakete"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Markiere alle angezeigten"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Keine markieren"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Nur Pakete für installierte Plattformen werden angezeigt"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Name"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Beschreibung"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Multi-User"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Single-User"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1737,224 +1741,224 @@ msgstr ""
"Pfad %s ist nicht beschreibbar, geht halt nicht.\n"
"Wollen Sie wirklich weitermachen?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Siehe die interne Hilfe"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "Basis Scheme (Plain und LaTeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr "Schema für Buchveröffentlichungen (Kern-LaTeX und Zusatzpakete)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt scheme"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "Full scheme (alles)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live scheme"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "nur die Infrastruktur (kein TeX etc.)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "Medium (\"small\" + mehr Pakete und Sprachen)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "Minimal Scheme (nur plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "Small Scheme (Basis + XeTeX, Metapost, einige Sprachen)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX scheme (mehr als 'medium', aber nicht 'full')"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Grundlegende Programme und Dateien"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "BibTeX Zusatzstile"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX Hilfsprogramme"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt und Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Zusätzliche Fonts"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Empfohlene Schriftarten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Grafik- und Font-Werkzeuge"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Zusätzliche Formate"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Satz von Spielen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakete für die Geisteswissenschaften"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinesisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinesisch/Japanisch/Koreanisch (Basis)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Kyrillisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tschechisch/Slowakisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "US und UK Englisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Andere europäische Sprachen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Französisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Deutsch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Griechisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italienisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japanisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Koreanisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Andere Sprachen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polnisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugiesisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spanisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX grundlegende Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "LaTeX: zusätzliche Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX: empfohlene Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Mathematik, Natur- und Computerwissenschaftliche Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPost und Metafont Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Musikpakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafik, Bilder, Diagramme"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Verlagsstile, Abschlussarbeiten, etc."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks Editor; TL enthält nur Binaries für Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Zusatzprogramme (nur-Windows)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX und XeTeX-Pakete"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Willkommen bei TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
-msgstr ""
+msgstr "Siehe %s/index.html für Links zur Dokumatation.\n"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1962,8 +1966,14 @@ msgid ""
"best for you. The list of groups is available on the web\n"
"at https://tug.org/usergroups.html.\n"
msgstr ""
-
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+"Die TeX Live Webseite (https://tug.org/texlive/) stellt alle Updates\n"
+"und Korrekturen bereit. TeX Live ist ein gemeinsames Projekt der TeX user "
+"groups\n"
+"auf der ganzen Welt; bitte unterstützen Sie es, indem Sie einer der Gruppen "
+"beitreten.\n"
+"Die Liste der Gruppen finden Sie unter https://tug.org/usergroups.html.\n"
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
@@ -1971,6 +1981,10 @@ msgid ""
"Most importantly, add %s/bin/%s\n"
"to your PATH for current and future sessions.\n"
msgstr ""
+"Füge %s/texmf-dist/doc/man dem MANPATH hinzu.\n"
+"Füge %s/texmf-dist/doc/info dem INFOPATH hinzu.\n"
+"Und am wichtigsten: füge %s/bin/%s\n"
+"zum PATH hinzu für die aktuelle und zukünftige Sessions.\n"
#~ msgid ""
#~ "See %s/index.html for links to documentation.\n"
@@ -2836,8 +2850,8 @@ msgstr ""
#~ "Then you can restart the program for further updates."
#~ msgstr ""
#~ "Aktualisierungen des TeX Live Managers stehen bereit.\n"
-#~ "Installation und Aktualisierungen anderer Pakete nur mit der \"erzwingen"
-#~ "\" Option möglich.\n"
+#~ "Installation und Aktualisierungen anderer Pakete nur mit der "
+#~ "\"erzwingen\" Option möglich.\n"
#~ "Bitte drücken Sie \"Aktualisieren aller Pakete\".\n"
#~ "Das Programm beendet sich nach der Aktualisierung.\n"
#~ "Danach können Sie das Programm neu starten für weitere Aktualisierungen."
@@ -2946,8 +2960,8 @@ msgstr ""
#~ msgstr ""
#~ "Die Datenbank der aktuellen Installationsquelle wurde nicht geladen.\n"
#~ "\n"
-#~ "Bitte durch betätigen der \"Lade\"- (und gegebenenfalls zuvor der \"Ändern"
-#~ "\"-) Schaltfläche nachholen."
+#~ "Bitte durch betätigen der \"Lade\"- (und gegebenenfalls zuvor der "
+#~ "\"Ändern\"-) Schaltfläche nachholen."
#~ msgid "Updating packages"
#~ msgstr "Aktualisieren von Paketen"
@@ -2975,8 +2989,8 @@ msgstr ""
#~ "Your installation is set up to look on the disk for updates.\n"
#~ "\n"
#~ "If you want to install from the Internet for this one time only, click on "
-#~ "the \"Change\" button above and select \"Default net package repository"
-#~ "\" (or any other package repository you know to be working).\n"
+#~ "the \"Change\" button above and select \"Default net package "
+#~ "repository\" (or any other package repository you know to be working).\n"
#~ "\n"
#~ "If you want to change it permanently, go to the \"Configuration\" Tab and "
#~ "change the default package repository."
@@ -3004,8 +3018,8 @@ msgstr ""
#~ "Then you can restart the program for further updates."
#~ msgstr ""
#~ "Aktualisierungen des TeX Live Managers stehen bereit.\n"
-#~ "Installation und Aktualisierungen anderer Pakete nur mit der \"erzwingen"
-#~ "\" Option möglich.\n"
+#~ "Installation und Aktualisierungen anderer Pakete nur mit der "
+#~ "\"erzwingen\" Option möglich.\n"
#~ "Bitte gehen Sie zur Aktualisierungsseite und drücken Sie \"Aktualisieren "
#~ "aller Pakete\".\n"
#~ "Das Programm beendet sich nach der Aktualisierung.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/es.po b/systems/texlive/tlnet/tlpkg/translations/es.po
index d69353212d..4af638504a 100644
--- a/systems/texlive/tlnet/tlpkg/translations/es.po
+++ b/systems/texlive/tlnet/tlpkg/translations/es.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2019-03-30 17:58-0400\n"
"Last-Translator: linguafalsa <linguafalsa@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -35,8 +35,8 @@ msgstr "Sólo nuevas"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Todas"
@@ -151,7 +151,7 @@ msgid "Display configuration"
msgstr "Mostrar configuración"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Estatus"
@@ -229,12 +229,12 @@ msgid "Package name"
msgstr "Nombre del paquete"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Rev. local (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Rev. remota (ver.)"
@@ -274,19 +274,19 @@ msgstr "Copia de reserva"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Opciones"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Acciones"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Ayuda"
@@ -308,7 +308,7 @@ msgstr "Cargar otro repositorio..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Salir"
@@ -317,7 +317,7 @@ msgid "General ..."
msgstr "General..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papel ..."
@@ -424,8 +424,8 @@ msgstr "Manual"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Acerca de"
@@ -1095,7 +1095,7 @@ msgid "Not enough room"
msgstr "No hay suficiente espacio"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Idioma del Interfaz Gráfico de Usuario"
@@ -1105,7 +1105,7 @@ msgstr "Ajustes para la fuente"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Actual:"
@@ -1115,7 +1115,7 @@ msgid "TeX Live %s Installer"
msgstr "Instalador de TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Avanzado"
@@ -1151,7 +1151,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Plataformas"
@@ -1285,7 +1285,7 @@ msgstr "Operando"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Reposando"
@@ -1298,7 +1298,7 @@ msgid "Up to date"
msgstr "Actualizado"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Desconocido"
@@ -1313,8 +1313,8 @@ msgstr ""
"y escoja otro repositorio."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Repositorios"
@@ -1415,7 +1415,7 @@ msgid "platform"
msgstr "plataforma"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Error"
@@ -1451,7 +1451,7 @@ msgid "No packages in backup directory %s"
msgstr "No hay paquetes en el directorio de reserva %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Restaurar mediante la copia de reserva"
@@ -1534,7 +1534,11 @@ msgstr "Removiendo algunas dependencias %s de todas formas. ¿Continuar?"
msgid "Info"
msgstr "Información"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1542,7 +1546,7 @@ msgstr ""
"Interfaz Gráfica GUI para TeX Live Manager\n"
"Implementado en Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1550,7 +1554,7 @@ msgid ""
"Consult the 'Tlmgr Help' menu for full documentation on tlmgr itself."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1559,185 +1563,185 @@ msgstr ""
"%s no es un repositorio local o remoto.\n"
"Por favor, configure un repositorio válido"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Archivo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Cargue repositorio"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Salida"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Regenerar la base de datos de nombres de archivos"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Regenerando la base de datos de nombres de archivos..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Regenerar formatos"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Reedificando formatos..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Regenerar mapas de las fuentes"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Reedificando archivos de los mapas de las fuentes..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Añádir/reemplazar binarios de 64-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Añada/reemplace de archivo local"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Resincronizar con 32-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Remueva binarios de 64-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Ajustes de fuente de GUI"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "TLShell Help"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Tlmgr Help"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Reiniciar por si mismo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Reiniciar tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Mostrar archivo de registro"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "¿TL Manager está actualizado?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Último comando de tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Raíz en %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Lista de paquetes"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Instalado"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "No instalado"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Actualizable"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detalle >> Global"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Colecciones y esquemas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Solamente esquemas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Buscar"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Por nombre"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Por nombre y descripción"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Instalación marcada"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Actualización marcada"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Remover marcado"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Actualizar tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Actualizar todo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Seleccione todos los que se muestra"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Seleccione ninguno"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Solamente paquetes para plataformas instaladas se muestran"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Nombre"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Descripción"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Multi-usuario"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Único-usuario"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1746,226 +1750,226 @@ msgstr ""
"%s no es grabable. Posiblemente no pueda hacer mucho.\n"
"\tEstá seguro que desea continuar?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Ver ayuda interna"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "esquema básico (TeX básico y LaTeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
"esquema de publicación de libros (core-LaTeX y otros programas\n"
"complementarios."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Esquema de ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "esquema completo (todo)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Esquema de TeX Live de GUST"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "esquema de infraestructura solamente (nada de TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "esquema mediano (pequeño + más paquetes y lenguajes)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "esquema mínimo (TeX básico solamente)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "esquema pequeño (básico + xetex, metapost, y unos cuantos idiomas)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "esquema de teTeX (más que mediano, pero no del todo lleno)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programas y archivos esenciales"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Estilos adicionales de BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programas auxiliares de TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt y paquetes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Fuentes adicionales"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Fuentes recomendables"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilidades para gráficos y para fuentes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formatos adicionales"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Juegos tipográficos"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Paquetes de humanidades"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Árabe"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chino"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chino/Japonés/Coreano (base)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirílico"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Checoslovaco/Eslovaco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Inglés de US y UK"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Otros idiomas Europeos"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francés"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Alemán"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Griego"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonés"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Otros idiomas"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polaco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugués"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Español"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Paquetes fundamentales de LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Paquetes adicionales de LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Paquetes recomendados de LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Paquetes de LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Paquetes para matemáticas, ciencias naturales, y computación"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Paquetes de Metapost y Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Paquetes para música"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Gráficas, imágenes, diagramas"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Paquetes básicos para (La)TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Estilos para publicistas, tesis, etc."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor de TeXWorks: TL incluye solamente el binario de Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programas de respaldo solamente para Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX y paquetes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "¡Bienvenido a Tex Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1974,7 +1978,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/fr.po b/systems/texlive/tlnet/tlpkg/translations/fr.po
index b4c106caf2..0e51cada15 100644
--- a/systems/texlive/tlnet/tlpkg/translations/fr.po
+++ b/systems/texlive/tlnet/tlpkg/translations/fr.po
@@ -1,14 +1,14 @@
#
#
#
-# Denis Bitouzé <denis.bitouze@univ-littoral.fr>, 2013-2018, 2019, 2022, 2023.
+# Denis Bitouzé <denis.bitouze@univ-littoral.fr>, 2013-2018, 2019, 2022, 2023, 2024.
# Manuel Pégourié-Gonnard <mpg@elzevir.fr>, 2010, 2011, 2012, 2013, 2015.
msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
-"PO-Revision-Date: 2023-03-03 11:44+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
+"PO-Revision-Date: 2024-02-22 22:35+0100\n"
"Last-Translator: Denis Bitouzé <denis.bitouze@univ-littoral.fr>\n"
"Language-Team: French <kde-i18n-doc@kde.org>\n"
"Language: fr\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n"
"Plural-Forms: s;\n"
-"X-Generator: Lokalize 20.12.0\n"
+"X-Generator: Lokalize 23.04.1\n"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:137
#: tlpkg/installer/install-menu-text.pl:37
@@ -39,8 +39,8 @@ msgstr "Seulement les nouveaux"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Tous"
@@ -154,7 +154,7 @@ msgid "Display configuration"
msgstr "Afficher la configuration"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Statut"
@@ -232,12 +232,12 @@ msgid "Package name"
msgstr "Nom du package"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Version locale"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Version distante"
@@ -277,19 +277,19 @@ msgstr "Sauvegarde"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Options"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Actions"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Aide"
@@ -311,7 +311,7 @@ msgstr "Charger un autre dépôt..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Quitter"
@@ -320,7 +320,7 @@ msgid "General ..."
msgstr "Options générales..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papier..."
@@ -427,8 +427,8 @@ msgstr "Manuel"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "À propos"
@@ -1095,7 +1095,7 @@ msgid "Not enough room"
msgstr "Pas assez de place"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Langue de l'interface graphique"
@@ -1105,7 +1105,7 @@ msgstr "Taille de la police"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Courant :"
@@ -1115,7 +1115,7 @@ msgid "TeX Live %s Installer"
msgstr "Installateur de la TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Avancé"
@@ -1151,7 +1151,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Plates-formes"
@@ -1283,7 +1283,7 @@ msgstr "En cours d'exécution"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Inactif"
@@ -1296,7 +1296,7 @@ msgid "Up to date"
msgstr "À jour"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Inconnu"
@@ -1310,8 +1310,8 @@ msgstr ""
"Si c'est trop long, cliquez sur « Annuler » et choisissez un autre dépôt."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Dépôts"
@@ -1412,7 +1412,7 @@ msgid "platform"
msgstr "plates-forme"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Erreur"
@@ -1448,7 +1448,7 @@ msgid "No packages in backup directory %s"
msgstr "Aucun package dans le répertoire de sauvegarde %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Restaurer depuis la sauvegarde"
@@ -1534,7 +1534,11 @@ msgstr "Suppression de dépendances %s malgré tout. Continuer ?"
msgid "Info"
msgstr "Information"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1542,7 +1546,7 @@ msgstr ""
"Interface graphique pour le TeX Live Manager\n"
"Implémenté en Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1556,7 +1560,7 @@ msgstr ""
"Pour une documentation complète sur le tlmgr lui-même, consultez le menu « "
"Aide du tlmgr »."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1565,185 +1569,185 @@ msgstr ""
"%s n'est pas un dépôt local ou distant.\n"
"Veuillez configurer un dépôt valide"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Fichier"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Chargement le dépôt"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Quitter"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Régénération de la base de noms de fichiers"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Régénération de la base de noms de fichiers en cours..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Régénération des formats"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Reconstruction des formats..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Régénération du mappage des polices"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Reconstruction du mappage des polices..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Ajouter/remplacer les binaires 64-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Ajouter/remplacer à partir d'un fichier local"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Resynchroniser avec 32-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Supprimer les binaires 64-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Taille de la police de l'interface"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Aide du tlshell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Aide du tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Auto redémarrage"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Redémarrage du tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Afficher les logs"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL manager (tlmgr) à jour ?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Dernière commande tlmgr :"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Répertoire racine en %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Liste des packages"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Installé"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Non installés"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Mise à jour possible"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Détail >> Global"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Collections et schémas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Schémas seulement"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Rechercher"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Par nom"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Par nom et description"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Installer ce qui est sélectionné"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Mettre à jour ce qui est sélectionné"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Supprimer ce qui est sélectionné"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Mise à jour du tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Tout mettre à jour"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Marquer tout ce qui est affiché"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Ne rien sélectionner"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Seuls les packages pour les plates-formes installées sont affichés"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Nom"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Description"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Utilisateurs multiples"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Utilisateur unique"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1752,226 +1756,226 @@ msgstr ""
"%s n'est pas accessible en écriture. Du coup, cette action ne servira\n"
"probablement pas à grand chose. Êtes-vous sûr de vouloir continuer ?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Voir l'aide interne"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "Schéma de base (plain et latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
"Schéma pour publication de livres (LaTeX de base et modules complémentaires)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schéma pour ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "Schéma complet (absolument tout)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schéma TeX Live du GUST"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "Schéma d'infrastructure (aucun TeX là-dedans)."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "Schéma moyen (petit avec plus de packages et langues)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "Schéma minimal (Plain seulement)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "Schéma petit (de base + xetex, metapost, quelques langues)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "Schéma teTeX (plus gros que moyen, mais encore loin d'être complet)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programmes et fichiers essentiels"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Styles BibTeX additionnels"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programmes auxiliaires pour TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt et packages associés"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Fontes additionnelles"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Fontes recommandées"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilitaires pour les graphiques et les fontes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formats additionnels"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Composition des jeux"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Packages pour les sciences humaines"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabe"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinois"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinois/Japonais/Coréen (base)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cyrillique"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tchèque et slovaque"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Anglais britannique et américain"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Autres langues européennes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Français"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Allemand"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grec"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italien"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coréen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Autres langues"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polonais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portuguais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Espagnol"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Packages LaTeX essentiels"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Packages LaTeX additionnels"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Packages LaTeX recommandés"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Packages LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
"Packages pour les mathématiques, les sciences naturelles et l'informatique"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Packages pour MetaPost et Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Packages pour la musique"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Graphiques, images, diagrammes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Packages plain (La)TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Styles de maisons d'édition, de thèses, etc."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Éditeur TeXworks ; la TL n'inclut que les binaires pour Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programmes pour le support de Windows seulement"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX et packages associés"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Bienvenue sous TeX Live !"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
-msgstr ""
+msgstr "Voir %s/index.html pour les liens vers la documentation.\n"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1979,8 +1983,16 @@ msgid ""
"best for you. The list of groups is available on the web\n"
"at https://tug.org/usergroups.html.\n"
msgstr ""
-
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+"Le site web TeX Live (https://tug.org/texlive/) fournit toutes les mises à "
+"jour et corrections.\n"
+"TeX Live est un projet commun des groupes d'utilisateurs de TeX dans le "
+"monde entier ;\n"
+"veuillez envisager de le soutenir en rejoignant le groupe qui vous convient "
+"le mieux.\n"
+".La liste des groupes est disponible sur le Web à l'adresse https://tug.org/"
+"usergroups.html.\n"
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
@@ -1988,6 +2000,10 @@ msgid ""
"Most importantly, add %s/bin/%s\n"
"to your PATH for current and future sessions.\n"
msgstr ""
+"Ajouter %s/texmf-dist/doc/man à MANPATH.\n"
+"Ajoutez %s/texmf-dist/doc/info à INFOPATH.\n"
+"Plus important encore, ajoutez %s/bin/%s\n"
+"à votre PATH pour les sessions actuelles et futures."
#~ msgid ""
#~ "See %s/index.html for links to documentation.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/it.po b/systems/texlive/tlnet/tlpkg/translations/it.po
index 1dc2f626e4..c8509ac510 100644
--- a/systems/texlive/tlnet/tlpkg/translations/it.po
+++ b/systems/texlive/tlnet/tlpkg/translations/it.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Tex Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2021-03-22 06:20+0100\n"
"Last-Translator: Marco Pallante\n"
"Language-Team: <>\n"
@@ -32,8 +32,8 @@ msgstr "Solo nuovi"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Tutti"
@@ -148,7 +148,7 @@ msgid "Display configuration"
msgstr "Impostazioni di visualizzazione"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Stato"
@@ -226,12 +226,12 @@ msgid "Package name"
msgstr "Nome pacchetto"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Rev. locale (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Rev. remota (ver.)"
@@ -271,19 +271,19 @@ msgstr "Backup"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Opzioni"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Azioni"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Aiuto"
@@ -305,7 +305,7 @@ msgstr "Carica un altro archivio ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Esci"
@@ -314,7 +314,7 @@ msgid "General ..."
msgstr "Generale ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Carta ..."
@@ -421,8 +421,8 @@ msgstr "Manuale"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Informazioni"
@@ -1084,7 +1084,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Lingua della GUI"
@@ -1094,7 +1094,7 @@ msgstr "Scalatura font"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Attuale:"
@@ -1104,7 +1104,7 @@ msgid "TeX Live %s Installer"
msgstr "Installazione di TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Avanzate"
@@ -1140,7 +1140,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Piattaforme"
@@ -1274,7 +1274,7 @@ msgstr "In esecuzione"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "In attesa"
@@ -1287,7 +1287,7 @@ msgid "Up to date"
msgstr "Aggiornato"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Sconosciuto"
@@ -1302,8 +1302,8 @@ msgstr ""
"archivio."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Repository"
@@ -1404,7 +1404,7 @@ msgid "platform"
msgstr "piattaforma"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Errore"
@@ -1440,7 +1440,7 @@ msgid "No packages in backup directory %s"
msgstr "Nessun pacchetto nella cartelle di backup %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Ripristina dal backup"
@@ -1526,7 +1526,11 @@ msgstr "Rimuovo comunque alcune dipendenze %s. Continuo?"
msgid "Info"
msgstr "Informazioni"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1534,7 +1538,7 @@ msgstr ""
"Interfaccia GUI per TeX Live Manager\n"
"Implementata in Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1548,7 +1552,7 @@ msgstr ""
"Consulta il menu 'Aiuto Tlmgr' per la documentazione completa di tlmgr "
"stesso."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1557,185 +1561,185 @@ msgstr ""
"%s non è un archivio locale o remoto.\n"
"Configura un archivio valido"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "File"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Carica archivio"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Esci"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Sto rigenerando il database dei nomi di file"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Sto rigenerando il database dei nomi di file…"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Rigenera i formati"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Sto ricostruendo i formati…"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Rigenera le mappe dei font"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Sto ricostruendo le mappe dei font…"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Scalatura font GUI"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Aiuto TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Aiuto Tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Riavvia per l'autoaggiornamento"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Riavvia tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Mostra i log"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Il gestore di TL è aggiornato?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Ultimo comando di tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Posizione su %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Elenco dei pacchetti"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Installato"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Non installato"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Aggiornabile"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Dettagli >> Globali"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Collezioni e schemi"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Solo schemi"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Cerca"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Per nome"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Per nome e descrizione"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Installa i segnati"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Aggiorna i segnati"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Rimuovi i segnati"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Aggiorna tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Aggiorna tutti"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Segna tutti i mostrati"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Segna nessuno"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Solo i pacchetti per le piattaforme installate sono mostrati"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Nome"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Descrizione"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Multi-utente"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Utente singolo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1744,224 +1748,224 @@ msgstr ""
"Impossibile scrivere su %s. Probabilmente non potrai fare molto.\n"
" Sei sicuro di voler continuare?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "schema base (plain e latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schema ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "schema completo (installa tutto)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schema GUST TeX Live"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "schema solo-infrastruttura (niente TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "schema medio (ridotto + altri pacchetti e lingue)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "schema minimo (solo plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "schema ridotto (base + xetex, metapost, alcune lingue)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schema teTeX (più dell'intermedio, ma per niente completo)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programmi e file essenziali"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Stili BibTeX aggiuntivi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programmi ausiliari per TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt e pacchetti"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Font aggiuntivi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Font raccomandati"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilità per font e grafica"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formati aggiuntivi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Composizione tipografica per giochi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pacchetti per discipline umanistiche"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabo"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Cinese"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Cinese/giapponese/coreano (base)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirillico"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Ceco/slovacco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Inglese USA/Regno Unito"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Altre lingue europee"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francese"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Tedesco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Greco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Giapponese"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Altre lingue"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polacco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portoghese"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spagnolo"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Pacchetti LaTeX fondamentali"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Pacchetti LaTeX aggiuntivi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Pacchetti LaTeX raccomandati"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Pacchetti LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pacchetti per matematica, scienze naturali, informatica"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pacchetti per MetaPost e Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pacchetti per la musica"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafica, immagini, diagrammi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Pacchetti Plain TeX e LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Stili di editori, tesi, ecc."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL include solo i binari per Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programmi di supporto solo per Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX e pacchetti"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Benvenuto in TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1970,7 +1974,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/ja.po b/systems/texlive/tlnet/tlpkg/translations/ja.po
index c327482e0e..d9075366ea 100644
--- a/systems/texlive/tlnet/tlpkg/translations/ja.po
+++ b/systems/texlive/tlnet/tlpkg/translations/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2024-02-04 15:32+0900\n"
"Last-Translator: Takuto Asakura <tkt.asakura@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -37,8 +37,8 @@ msgstr "新規のみ"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "すべて"
@@ -153,7 +153,7 @@ msgid "Display configuration"
msgstr "表示設定"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "状態"
@@ -231,12 +231,12 @@ msgid "Package name"
msgstr "パッケージ名"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "ローカルのリビジョン"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "リモートのリビジョン"
@@ -276,19 +276,19 @@ msgstr "バックアップ"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "オプション"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "アクション"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "ヘルプ"
@@ -310,7 +310,7 @@ msgstr "他のレポジトリを読み込む…"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "終了"
@@ -319,7 +319,7 @@ msgid "General ..."
msgstr "一般…"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "用紙…"
@@ -426,8 +426,8 @@ msgstr "マニュアル"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "このプログラムについて"
@@ -1086,7 +1086,7 @@ msgid "Not enough room"
msgstr "空きスペースが不足しています"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "GUI言語"
@@ -1096,7 +1096,7 @@ msgstr "フォントスケーリング"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "現在:"
@@ -1106,7 +1106,7 @@ msgid "TeX Live %s Installer"
msgstr "TeX Live %sインストーラ"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "高度な設定"
@@ -1142,7 +1142,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "プラットフォーム"
@@ -1273,7 +1273,7 @@ msgstr "実行中"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "待機中"
@@ -1286,7 +1286,7 @@ msgid "Up to date"
msgstr "最新の状態です"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "不明"
@@ -1301,8 +1301,8 @@ msgstr ""
"い。"
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "リポジトリ"
@@ -1403,7 +1403,7 @@ msgid "platform"
msgstr "プラットフォーム"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "エラー"
@@ -1439,7 +1439,7 @@ msgid "No packages in backup directory %s"
msgstr "バックアップディレクトリ%sにパッケージがありません"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "バックアップから復元"
@@ -1525,7 +1525,11 @@ msgstr "依存パッケージ%sをアンインストールします。続行し
msgid "Info"
msgstr "情報"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1533,7 +1537,7 @@ msgstr ""
"GUI版TeX Liveマネージャ\n"
"Tcl/Tk実装"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1545,7 +1549,7 @@ msgstr ""
"特にユーザモードとバックアップ機能はサポートしていません。\n"
"tlmgr自体のマニュアルについては「tlmgrヘルプ」メニューを確認してください。"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1554,185 +1558,185 @@ msgstr ""
"%sはローカルリポジトリでもリモートリポジトリでもありません。\n"
"有効なリポジトリを設定してください"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "ファイル"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "リポジトリを読み込む"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "終了"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "ファイル名データベースを再生成"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "ファイル名データベースを再生成中……"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "フォーマットを再生成"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "フォーマットを再生成中……"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "フォントマップを再生成"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "フォントマップを再生成中……"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "64-bit バイナリを追加/置換"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "ローカルファイルから追加/置換"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "32-bitで再同期"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "64-bitバイナリを削除"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "GUIフォントスケーリング"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "tlshellヘルプ"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "tlmgrヘルプ"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "tlshellを再起動"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "tlmgrを再起動"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "ログを表示"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "tlmgrは最新版?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "tlmgrコマンド:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "ルートは%sです"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "パッケージリスト"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "インストール済み"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "未インストール"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "アップデート可能"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "詳細 >> グローバル"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "コレクションとスキーム"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "スキームのみ"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "検索"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "名称でソート"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "名称と説明でソート"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "選択項目をインストール"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "選択項目をアップデート"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "選択項目をアンインストール"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "tlmgrをアップデート"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "すべてアップデート"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "表示をすべて選択"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "すべて選択解除"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "お使いのプラットフォームに対応するパッケージのみが表示されています"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "名称"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "説明"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "マルチユーザ"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "シングルユーザ"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1741,226 +1745,226 @@ msgstr ""
"%sは書き込み不能です。多くの処理が完了できない可能性があります。\n"
" それでも続行しますか?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "内部ヘルプを参照してください"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "basicスキーム(plainおよびlatex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr "書籍出版スキーム(LaTeX本体およびアドオン)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXtスキーム"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "fullスキーム(すべて)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Liveスキーム"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "infrastructure-onlyスキーム(TeX 処理系は一切含みません)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "midiumスキーム(smallスキーム+欧州の主要言語サポート)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimalスキーム(plainのみ)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"smallスキーム(basicスキーム+XeTeX+MetaPostといくつかの言語サポート)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
"teTeXスキーム(mediumスキームよりも大きいが、fullスキームには及ばない)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "必須プログラムとファイル"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "BibTeXの追加スタイル"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX外部プログラム"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXtとパッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "追加フォント"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "推奨フォント"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "画像およびフォントのユーティリティ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "追加フォーマット"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "ゲーム組版"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "人文科学パッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "アラビア語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "中国語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "日中韓(基本)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "キリル文字"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "チェコ・スロバキア語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "英語・米語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "その他の欧州言語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "フランス語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "ドイツ語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "ギリシア語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "イタリア語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "日本語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "韓国語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "他の言語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "ポーランド語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "ポルトガル語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "スペイン語"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX基本パッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "LaTeX追加パッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX推奨パッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeXパッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "数学、自然科学、計算機科学パッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPostおよびMetafontパッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "音楽パッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "画像と図表"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeXパッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "出版社スタイルや学位論文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks(Windows版のみ)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Windows専用プログラム"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeXとパッケージ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "TeX Liveへようこそ!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr "ドキュメントの一覧は%s/index.htmlをご覧ください。\n"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1974,7 +1978,7 @@ msgstr ""
"なTeXユーザ会に入会することをご検討ください。TeXユーザ会の一覧はhttps://tug."
"org/usergroups.htmlでご確認いただけます。\n"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/messages.pot b/systems/texlive/tlnet/tlpkg/translations/messages.pot
index 287189dbb2..55f7e3ccb4 100644
--- a/systems/texlive/tlnet/tlpkg/translations/messages.pot
+++ b/systems/texlive/tlnet/tlpkg/translations/messages.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: TeX Live 2023\n"
+"Project-Id-Version: TeX Live 2024\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,8 +37,8 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr ""
@@ -147,7 +147,7 @@ msgid "Display configuration"
msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr ""
@@ -225,12 +225,12 @@ msgid "Package name"
msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr ""
@@ -270,19 +270,19 @@ msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr ""
@@ -304,7 +304,7 @@ msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr ""
@@ -313,7 +313,7 @@ msgid "General ..."
msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr ""
@@ -418,8 +418,8 @@ msgstr ""
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr ""
@@ -1052,7 +1052,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr ""
@@ -1062,7 +1062,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr ""
@@ -1072,7 +1072,7 @@ msgid "TeX Live %s Installer"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr ""
@@ -1105,7 +1105,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr ""
@@ -1236,7 +1236,7 @@ msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr ""
@@ -1249,7 +1249,7 @@ msgid "Up to date"
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr ""
@@ -1262,8 +1262,8 @@ msgid "If loading takes too long, press Abort and choose another repository."
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr ""
@@ -1364,7 +1364,7 @@ msgid "platform"
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr ""
@@ -1400,7 +1400,7 @@ msgid "No packages in backup directory %s"
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr ""
@@ -1477,13 +1477,17 @@ msgstr ""
msgid "Info"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1491,416 +1495,416 @@ msgid ""
"Consult the 'Tlmgr Help' menu for full documentation on tlmgr itself."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
"Please configure a valid repository"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
" Are you sure you want to continue?"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1909,7 +1913,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/nl.po b/systems/texlive/tlnet/tlpkg/translations/nl.po
index 7b26d168f0..841eb37442 100644
--- a/systems/texlive/tlnet/tlpkg/translations/nl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/nl.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2023-03-10 09:39+0100\n"
"Last-Translator: Siep Kroonenberg <siepo@bitmuis.nl>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -33,8 +33,8 @@ msgstr "Alleen nieuw"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Alle"
@@ -149,7 +149,7 @@ msgid "Display configuration"
msgstr "Laat instellingen zien"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Status"
@@ -227,12 +227,12 @@ msgid "Package name"
msgstr "Naam van pakket"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokale rev. (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Online rev. (ver.)"
@@ -272,19 +272,19 @@ msgstr "Maak reserve-kopie"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Opties"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Akties"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Help"
@@ -306,7 +306,7 @@ msgstr "Laad andere bron ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Stoppen"
@@ -315,7 +315,7 @@ msgid "General ..."
msgstr "Algemeen ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papier ..."
@@ -424,8 +424,8 @@ msgstr "Handleiding"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Info"
@@ -1084,7 +1084,7 @@ msgid "Not enough room"
msgstr "Niet genoeg ruimte"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "GUI taal"
@@ -1094,7 +1094,7 @@ msgstr "Font grootte"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Huidig:"
@@ -1104,7 +1104,7 @@ msgid "TeX Live %s Installer"
msgstr "TeX Live %s Installatie"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Geavanceerd"
@@ -1140,7 +1140,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Platforms"
@@ -1271,7 +1271,7 @@ msgstr "Bezig"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Inactief"
@@ -1284,7 +1284,7 @@ msgid "Up to date"
msgstr "Up to date"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Onbekend"
@@ -1299,8 +1299,8 @@ msgstr ""
"bron."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Installatie-bronnen"
@@ -1401,7 +1401,7 @@ msgid "platform"
msgstr "platform"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Fout"
@@ -1437,7 +1437,7 @@ msgid "No packages in backup directory %s"
msgstr "Geen pakketten in folder %s voor reserve-kopieën"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Herinstalleer vanaf reserve-kopie"
@@ -1524,7 +1524,11 @@ msgstr "Verwijder toch enkele afhankelijkheden: %s. Doorgaan?"
msgid "Info"
msgstr "Info"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1532,7 +1536,7 @@ msgstr ""
"GUI interface voor TeX Live Manager\n"
"Geschreven in Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1546,7 +1550,7 @@ msgstr ""
"Raadpleeg het 'Tlmgr Help' menu item voor volledige dokumentatie van tlmgr "
"zelf."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1555,185 +1559,185 @@ msgstr ""
"%s is niet een lokale of online installatie-bron.\n"
"Configureer a.u.b een geldige installatie-bron"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Archief"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Laad installatie-bron"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Einde"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Ververs database van bestandsnamen"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Bezig met verversen database..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Ververs formaten"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Bezig formaten te verversen..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Ververs fontmaps"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Bezig fontmaps te verversen.."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "64-bit programma's toevoegen of vervangen"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Toevoegen of vervangen vanuit een lokaal bestand"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Her-synchroniseer met 32-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Verwijder 64-bit programma's"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "GUI font grootte"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "TLShell Help"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Tlmgr Help"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Herstart zelf"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Herstart tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Toon logs"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL Manager up to date?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Laatste tlmgr opdracht:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Root: %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Lijst van pakketten"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Geïnstalleerd"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Niet geïnstalleerd"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Nieuwe versie"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detail >> Globaal"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Collecties en schemas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Alleen schemas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Zoek"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Op naam"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Op naam en beschrijving"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Installeer selektie"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Werk selektie bij"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Verwijder selektie"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Werk tlmgr bij"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Alles bijwerken"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Markeer alle weergegeven elementen"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Kies niets"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Alleen pakketten voor geïnstalleerde platforms zijn weergegeven"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Naam"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Beschrijving"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Voor alle gebruikers"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Alleen voor uzelf"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1742,224 +1746,224 @@ msgstr ""
"%s is niet schrijfbaar. Waarschijnlijk kunt u niet veel doen.\n"
" Weet u zeker dat u wilt doorgaan?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Zie interne help"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "basis-schema (Plain en latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr "boek-publikatie schema (LaTeX kern en toevoegingen)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt schema"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "volledig schema (alles)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live schema"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "alleen infrastruktuur (helemaal geen TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "medium schema (klein + meer pakketten en taken)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimum schema (alleen plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "klein schema (basis + xetex, metapost, enkele talen)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX schema (meer dan medium, maar lang niet alles)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Essentiële programma's en bestanden"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Extra stijlen voor BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX hulpprogramma's"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt en pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Extra lettertypen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Aanbevolen lettertypen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Hulpprogramma's voor figuren en lettertypen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Extra formaten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Spellen typesetten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakketten voor humaniora"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinees"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chiness/Japans/Koreaans (basis)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cyrillisch"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tsjechisch/Slovaaks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Amerikaans en Brits Engels"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Andere Europese talen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Frans"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Duits"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grieks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiaans"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japans"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Koreaans"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Andere talen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Pools"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugees"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spaans"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX basis-pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Extra LaTeX pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX aanbevolen pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakketten voor wiskunde, natuurwetenschappen en informatica"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPost- en Metafont pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Muziek pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafieken, figuren, diagrammen"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Stijlen voor uitgevers, proefschriften etc."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks editor; TL bevat alleen de Windows versie"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Ondersteunende programma's specifiek voor Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX en bijbehorende pakketten"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Welkom bij TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1968,7 +1972,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/pl.po b/systems/texlive/tlnet/tlpkg/translations/pl.po
index 4886d3f596..675ed19b65 100644
--- a/systems/texlive/tlnet/tlpkg/translations/pl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2023\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2023-03-18 16:47+0100\n"
"Last-Translator: Zofia Walczak <zofia.walczak@wmii.uni.lodz.pl>\n"
"Language-Team: \n"
@@ -39,8 +39,8 @@ msgstr "Tylko nowe"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Wszystkie"
@@ -154,7 +154,7 @@ msgid "Display configuration"
msgstr "Wyświetl konfigurację"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Status"
@@ -232,12 +232,12 @@ msgid "Package name"
msgstr "Nazwa pakietu"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokalna wer. (wyd.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Dostępna zdalnie wer. (wyd.)"
@@ -277,19 +277,19 @@ msgstr "Kopia zapasowa pakietów"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Opcje"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Zadania"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Pomoc"
@@ -311,7 +311,7 @@ msgstr "Wczytaj inne repozytorium ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Zakończ"
@@ -320,7 +320,7 @@ msgid "General ..."
msgstr "Ogólne ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Format papieru ..."
@@ -428,8 +428,8 @@ msgstr "Podręcznik"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Informacje"
@@ -1092,7 +1092,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Język GUI"
@@ -1102,7 +1102,7 @@ msgstr "Rozmiar czcionki"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Bieżący:"
@@ -1112,7 +1112,7 @@ msgid "TeX Live %s Installer"
msgstr "Instalator TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Zaawansowane"
@@ -1148,7 +1148,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Systemy operacyjne"
@@ -1279,7 +1279,7 @@ msgstr "Uruchomiony"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Bezczynny"
@@ -1292,7 +1292,7 @@ msgid "Up to date"
msgstr "Aktualny"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Nieznany"
@@ -1307,8 +1307,8 @@ msgstr ""
"repozytorium."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Repozytoria"
@@ -1409,7 +1409,7 @@ msgid "platform"
msgstr "system"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Błąd"
@@ -1445,7 +1445,7 @@ msgid "No packages in backup directory %s"
msgstr "Brak pakietów w katalogu kopii zapasowej %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Przywróć z kopii zapasowej"
@@ -1531,13 +1531,17 @@ msgstr "Usuwanie niektórych zależności %s mimo wszystko. Kontynuować?"
msgid "Info"
msgstr "Info"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
msgstr "Interfejs graficzny (GUI) dla TeX Live Manager w Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1550,7 +1554,7 @@ msgstr ""
"bezpieczeństwa (backup/restore)\n"
"Pełna dokumentacja tlmgr jest dostępna w \\\"Pomoc tlmgr\\\" w menu."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1559,185 +1563,185 @@ msgstr ""
"%s nie jest lokalnym ani zdalnym repozytorium.\n"
"proszę skonfigurować poprawne repozytorium"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Plik"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Wczytaj repozytorium"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Wyjście"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Powtórne generowanie bazy danych"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Powtórne generowanie bazy nazw plików..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Powtórne generowanie formatów"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Odbudowywanie formatów..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Powtórne generowanie map fontowych"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Odbudowywanie map fontowych..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Dodawanie/zastępowanie 64-bitowych binariów"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Dodawanie/zastępowanie z pliku lokalnego"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Ponownie zsynchronizuj z 32-bitowym"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Usuń binaria 64-bitowe"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Skalowanie fontu GUI"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Pomoc TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Pomoc tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Zrestartuj się"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Zrestartuj tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Pokaż pliki log"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL Manager jest aktualny?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Ostatnie polecenie tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Katalog główny w %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Lista pakietów"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Zainstalowany"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Niezainstalowany"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Istnieje nowsza wersja"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detail >> Global"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Kolekcje i schematy"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Tylko schematy"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Szukaj"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Po nazwie"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Po nazwie i opisie"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Zainstaluj zaznaczone"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Aktualizuj zaznaczone"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Usuń zaznaczone"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Aktualizuj tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Aktualizuj wszystko"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Zaznacz wszystkie pokazane"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Odznacz wszystko"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Wyświetlane są tylko pakiety dla zainstalowanych platform"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Nazwa"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Opis"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Wielu użytkowników"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Jeden użytkownik"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1746,226 +1750,226 @@ msgstr ""
"%s jest niedostępny dla zapisu. Niewiele możesz zrobić.\n"
"Jesteś pewny, że chcesz kontynuować?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "schemat podstawowy (plain i latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schemat ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "schemat pełny (wszystko)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schemat GUST"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "wyłącznie schemat plików (w ogóle bez TeX-a):"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "schemat typowy (skromny + wybrane dodatkowe pakiety i języki):"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "schemat minimalny (tylko plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"schemat skromny (podstawowy + xetex, metapost oraz wzorce przenoszenia kilku "
"języków):"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schemat teTeX (obszerniejszy niż typowy, ale mniejszy od pełnego)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Podstawowe programy i pliki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Dodatkowe style BibTeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Dodatkowe programy pomocnicze TeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt i jego pakiety"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Dodatkowe fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Rekomendowne fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Narzędzia do grafiki i fontów"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Dodatkowe formaty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Zapis gier"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakiety dla humanistów"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Język arabski"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Język chiński"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Języki chiński/japoński/koreański (podstawa)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Język cyryliczny"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Języki czeski/słowacki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angielski brytyjski i amerykański"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Inne języki europejskie"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Język francuski"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Język niemiecki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Język grecki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Język włoski"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Język japoński"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Język koreański"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Inne języki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Język polski"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Język portugalski"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Język hiszpański"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Podstawowe pakiety LaTeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Dodatkowe pakiety LaTeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Polecane pakiety LaTeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Pakiety LuaTeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakiety do składu matematyki, nauk przyrodniczych i informatyki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pakiety MetaPosta i Metafonta"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pakiety do składania nut"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Pakiety do grafiki, rysunków, diagramów"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Pakiety dla plain (La)TeX-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Style wydawców, publikacji konferencyjnych itp."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Edytor TeXworks; binaria tylko dla systemu Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Dodatkowe programy tylko dla Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX i pakiety"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Witamy w TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1974,7 +1978,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/pt_BR.po b/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
index eb542dcd8c..c0f259488c 100644
--- a/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
+++ b/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2022-02-21 07:43-0300\n"
"Last-Translator: Paulo Roberto Massa Cereda <cereda.paulo@gmail.com>\n"
"Language-Team: Paulo Roberto Massa Cereda <cereda.paulo@gmail.com>\n"
@@ -34,8 +34,8 @@ msgstr "Apenas novos"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Todos"
@@ -150,7 +150,7 @@ msgid "Display configuration"
msgstr "Exibir configuração"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Situação"
@@ -228,12 +228,12 @@ msgid "Package name"
msgstr "Nome do pacote"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Revisão local (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Revisão remota (ver.)"
@@ -273,19 +273,19 @@ msgstr "Cópia de segurança"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Opções"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Ações"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Ajuda"
@@ -307,7 +307,7 @@ msgstr "Carregar outro repositório..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Sair"
@@ -316,7 +316,7 @@ msgid "General ..."
msgstr "Geral..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papel..."
@@ -424,8 +424,8 @@ msgstr "Manual"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Sobre"
@@ -1090,7 +1090,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Idioma da interface gráfica"
@@ -1100,7 +1100,7 @@ msgstr "Escala de fonte"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Corrente:"
@@ -1110,7 +1110,7 @@ msgid "TeX Live %s Installer"
msgstr "Instalador TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Avançado"
@@ -1146,7 +1146,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Plataformas"
@@ -1277,7 +1277,7 @@ msgstr "Executando"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Em espera"
@@ -1290,7 +1290,7 @@ msgid "Up to date"
msgstr "Atualizado"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Desconhecido"
@@ -1305,8 +1305,8 @@ msgstr ""
"repositório."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Repositórios"
@@ -1407,7 +1407,7 @@ msgid "platform"
msgstr "plataforma"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Erro"
@@ -1443,7 +1443,7 @@ msgid "No packages in backup directory %s"
msgstr "Não há pacotes no diretório de backup %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Restaurar a partir do backup"
@@ -1529,7 +1529,11 @@ msgstr "Removendo algumas dependências %s de qualquer forma. Continuar?"
msgid "Info"
msgstr "Informação"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1537,7 +1541,7 @@ msgstr ""
"Interface GUI para o gerenciador TeX Live\n"
"Implementada em Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1549,7 +1553,7 @@ msgstr ""
"Particularmente, não cobre o modo de usuário ou backup e restauração.\n"
"Consulte o menu 'Ajuda do tlmgr' para a documentação completa do tlmgr."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1558,185 +1562,185 @@ msgstr ""
"%s não é um repositório local ou remoto.\n"
"Por favor, configure um repositório válido."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Arquivo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Carregar repositório"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Sair"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Recriar o banco de dados de nomes de arquivos"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Recriando o bando de dados de nomes de arquivos..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Recriar formatos"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Reconstruindo formatos..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Recriar mapas de fontes"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Reconstruindo arquivos de mapas de fontes..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Adicionar/substituir binários 64-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Adicionar/substituir a partir de um arquivo local"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Ressincronizar com 32-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Remover binários 64-bit"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Escala de fonte da interface gráfica"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Ajuda do TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Ajuda do tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Auto-reiniciar"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Reiniciar tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Exibir registros"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "O gerenciador TL está atualizado?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Último comando tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Raiz em %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Lista de pacotes"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Instalado"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Não instalado"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Atualizável"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detalhes >> Global"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Coleções e esquemas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Apenas esquemas"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Procurar"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Por nome"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Por nome e descrição"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Instalar marcados"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Atualizar marcados"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Remover marcados"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Atualizar tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Atualizar tudo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Marcar todos os visualizados"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Desmarcar todos"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Apenas pacotes para as plataformas instaladas são visualizados"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Nome"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Descrição"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Multiusuário"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Usuário único"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1746,226 +1750,226 @@ msgstr ""
"muita coisa.\n"
"Você tem certeza que quer continuar?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "esquema básico (plain e latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "esquema ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "esquema completo (tudo)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "esquema GUST TeX Live"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "esquema com apenas infraestrutura (sem TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "esquema médio (pequeno + pacotes extras e idiomas)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "esquema mínimo (apenas plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "esquema pequeno (básico + xetex, metapost, alguns idiomas)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
"esquema teTeX (mais do que o esquema médio, mas nada que se aproxime do "
"esquema completo)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programas e arquivos essenciais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Estilos BibTeX adicionais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programas auxiliares TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt e pacotes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Fontes adicionais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Fontes recomendadas"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilitários para gráficos e fontes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formatos adicionais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Escrita de jogos"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pacotes da área de Humanas"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Árabe"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinês"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinês/Japonês/Coreano (base)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirílico"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tcheco/Eslovaco"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Inglês Americano e Britânico"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Outros idiomas europeus"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francês"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Alemão"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grego"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonês"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Outros idiomas"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polonês"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Português"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Espanhol"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Pacotes LaTeX fundamentais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Pacotes LaTeX adicionais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Pacotes LaTeX recomendados"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Pacotes LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pacotes de matemática, ciências naturais e ciência da computação"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pacotes MetaPost e Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pacotes musicais"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Gráficos, imagens, diagramas"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Pacotes plain (La)TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Estilos de editoras, teses, etc."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "editor TeXworks; TL inclui apenas o binário para Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programas de suporte exclusivos para Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX e pacotes"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Bem-vindo ao TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1974,7 +1978,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/ru.po b/systems/texlive/tlnet/tlpkg/translations/ru.po
index 63dcea7007..8da94329e8 100644
--- a/systems/texlive/tlnet/tlpkg/translations/ru.po
+++ b/systems/texlive/tlnet/tlpkg/translations/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2022-03-23 09:50+0800\n"
"Last-Translator: Vladimir Lomov <irk.translator@yandex.ru>\n"
"Language-Team: Russian <tldoc@tug.org>\n"
@@ -39,8 +39,8 @@ msgstr "Только новые"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Все"
@@ -155,7 +155,7 @@ msgid "Display configuration"
msgstr "Настройка отображения"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Статус"
@@ -234,12 +234,12 @@ msgid "Package name"
msgstr "Название пакета"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Локальная рев. (вер.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Сетевая рев. (вер.)"
@@ -279,19 +279,19 @@ msgstr "Архивировать"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Параметры"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Действия"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Справка"
@@ -313,7 +313,7 @@ msgstr "Загрузить другой репозиторий ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Выход"
@@ -322,7 +322,7 @@ msgid "General ..."
msgstr "Общие ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Размер листа ..."
@@ -429,8 +429,8 @@ msgstr "Руководство"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "О программе"
@@ -1091,7 +1091,7 @@ msgid "Not enough room"
msgstr "Не достаточно места"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Язык оболочки"
@@ -1101,7 +1101,7 @@ msgstr "Масштаб шрифта"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Текущий:"
@@ -1111,7 +1111,7 @@ msgid "TeX Live %s Installer"
msgstr "Программа установки TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Дополнительно"
@@ -1147,7 +1147,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Платформы"
@@ -1278,7 +1278,7 @@ msgstr "Выполнение"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Нет заданий"
@@ -1291,7 +1291,7 @@ msgid "Up to date"
msgstr "Всё обновлено"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Неизвестно"
@@ -1306,8 +1306,8 @@ msgstr ""
"репозиторий."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Репозитории"
@@ -1408,7 +1408,7 @@ msgid "platform"
msgstr "платформа"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Ошибка"
@@ -1444,7 +1444,7 @@ msgid "No packages in backup directory %s"
msgstr "Нет пакетов в каталоге %s для резервного копирования"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Восстановить их резервных копий"
@@ -1530,7 +1530,11 @@ msgstr "Всё же потребуется удалить некоторые з
msgid "Info"
msgstr "Информация"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1538,7 +1542,7 @@ msgstr ""
"Графический интерфейс для диспетчера TeX Live\n"
"Реализовано на Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1551,7 +1555,7 @@ msgstr ""
"Посмотрите пункт меню «Справка по Tlmgr» чтобы посмтреть всю документацию по "
"tlmgr."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1560,185 +1564,185 @@ msgstr ""
"%s не является ни локальным, ни удалённым репозиторием.\n"
"Выберите правильный репозиторий"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Файл"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Загрузить репозиторий"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Выход"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Пересоздать базу данных имён файлов"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Пересоздание базы данных имён файлов..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Пересоздать форматы"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Пересоздание форматов..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Пересоздать fontmaps"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Пересоздание файлов fontmap..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Добавить/заменить 64-битные программы"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Добавить/заменить из локального файла"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Синхронизировать с 32-битной"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Удалить 64-битные программы"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Шрифт"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Справка по TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Справка по Tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Перезапустить программу"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Перезапустить tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Показать журнал"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Менеджер TL обновлён?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Последняя команда tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Корневой каталог в %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Список пакетов"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Установленные"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Не установленные"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Есть обновления"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Детали >> Общие"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Коллекции и схемы"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Только схемы"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Найти"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "По названию"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "По названию и описанию"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Установить выделенные"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Обновить выделенные"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Удалить выделенные"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Обновить tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Обновить все"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Выделить все показанные"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Снять выделение"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Показаны только пакеты для установленных платформ"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Название"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Описание"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Для всех пользователей"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Для одного пользователя"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1747,224 +1751,224 @@ msgstr ""
"%s не доступен на запись. Возможно у вас нет достаточных прав.\n"
" Вы уверены, что хотите продолжить?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Посмотреть встроенную справку"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "базовая схема (plain и latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "схема ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "полная схема (включает всё)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "схема GUST TeX Live"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "схема только с инфраструктурой (совсем без TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "средняя схема (малая + больше пакетов и языков)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "минимальная схема (только plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "малая схема (базовая + xetex, metapost и пара языков)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "схема teTeX (больше чем средняя, но не сравнится с полной)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Важные программы и файлы"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Дополнительные стили BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Вспомогательные программы TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt и пакеты"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Дополнительные шрифты"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Рекомендованные шрифты"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Инструменты для работы с графикой и шрифтами"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Дополнительные форматы"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Для вёрстки игр"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Пакеты для гуманитарных наук"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Арабский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Китайский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Китайский/Японский/Корейский (базовая поддержка)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Кириллица"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Чешский/Словацкий"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Английский США и Великобритании"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Другие европейские языки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Французский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Немецкий"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Греческий"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Итальянский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Японский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Корейский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Другие языки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Польский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Португальский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Испанский"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Базовые пакеты LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Дополнительные пакеты LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Рекомендованные пакеты LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Пакеты LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Пакеты для математики, естественных наук, программирования"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Пакеты для MetaPost и Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Пакеты для музыки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Графики, рисунки, диаграммы"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Простые (La)TeX пакеты"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Стили издательств, сборников тезисов и пр."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Редактор TeXworks; TL предоставляет программу только для Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Вспомогательные программы, только для Windows ОС"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX и пакеты"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Вас приветствует TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1973,7 +1977,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sk.po b/systems/texlive/tlnet/tlpkg/translations/sk.po
index 4a859788dd..676a0d93c3 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sk.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sk.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2022-03-21 13:59+0100\n"
"Last-Translator: Ján Buša <jan.busa@tuke.sk>\n"
"Language-Team: tex-live@tug.org\n"
@@ -33,8 +33,8 @@ msgstr "Len nové"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Všetky"
@@ -149,7 +149,7 @@ msgid "Display configuration"
msgstr "Zobraziť konfiguráciu"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Stav"
@@ -227,12 +227,12 @@ msgid "Package name"
msgstr "Názov balíka"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokálna rev. (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Vzdialená rev. (ver.)"
@@ -272,19 +272,19 @@ msgstr "Záloha"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Voľby"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Činnosti"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Pomoc"
@@ -306,7 +306,7 @@ msgstr "Načítať inú schránku ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Ukončiť"
@@ -315,7 +315,7 @@ msgid "General ..."
msgstr "Všeobecné ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Papier ..."
@@ -422,8 +422,8 @@ msgstr "Príručka"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "O programe"
@@ -1086,7 +1086,7 @@ msgid "Not enough room"
msgstr "Nedostatok miesta"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Jazyk grafického používateľského rozhrania"
@@ -1096,7 +1096,7 @@ msgstr "Škálovanie písem"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Aktuálny:"
@@ -1106,7 +1106,7 @@ msgid "TeX Live %s Installer"
msgstr "Inštalátor TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Pokročilé"
@@ -1142,7 +1142,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Platformy"
@@ -1276,7 +1276,7 @@ msgstr "Prebieha"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Nečinný"
@@ -1289,7 +1289,7 @@ msgid "Up to date"
msgstr "Aktuálny"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Neznámy"
@@ -1304,8 +1304,8 @@ msgstr ""
"schránku."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Schránky"
@@ -1406,7 +1406,7 @@ msgid "platform"
msgstr "platforma"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Chyba"
@@ -1442,7 +1442,7 @@ msgid "No packages in backup directory %s"
msgstr "V záložnom adresári %s nie sú žiadne balíky"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Obnoviť zo zálohy"
@@ -1528,7 +1528,11 @@ msgstr "V každom prípade odstrániť závislosti %s. Pokračovať?"
msgid "Info"
msgstr "Informácie"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1536,7 +1540,7 @@ msgstr ""
"Grafické používateľské rozhranie pre TeX Live Manager\n"
"realizované v Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1550,7 +1554,7 @@ msgstr ""
"Pre úplnú dokumentáciu samotného programu tlmgr si pozrite ponuku 'Pomocník "
"tlmgr'."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1559,185 +1563,185 @@ msgstr ""
"%s nie je lokálne alebo vzdialené úložisko.\n"
"Nakonfigurujte si platné úložisko, prosím"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Súbor"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Načítať schránku"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Koniec"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Znovu vytvoriť databázu názvov súborov"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Znovuvytvorenie databázy názvov súborov..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Znovu vytvoriť formáty"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Znovuvybudovanie formátov..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Znovu vygenerovať mapy fontov"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Znovuvybudovanie súborov fontových máp..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "Pridať/zameniť 64-bitové binárky"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "Pridať/nahradiť z lokálneho súboru"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "Zosúladiť s 32-bitovými"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Odstrániť 64-bitové binárky"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Škálovanie písem grafického používateľského rozhrania"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Pomocník tlshell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Pomocník tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Vlastný reštart"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Reštartovať tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Ukáž záznamy"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Je TL Manager aktualizovaný?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Ostatný príkaz tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Root na %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Zoznam balíkov"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Nainštalované"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Nenainštalované"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Aktualizovateľné"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Detailný >> Globálny"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Zbierky a schémy"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Iba schémy"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Hľadať"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Podľa názvu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Podľa názvu a popisu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Nainštalovať označené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Aktualizovať označené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Odstrániť označené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Aktualizovať tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Aktualizovať všetko"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Označiť všetky zobrazené"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Neoznačiť ani jeden"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Zobrazené sú len balíky nainštalovaných platforiem"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Názov"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Popis"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Viacpoužívateľská"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Jednoužívateľská"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1746,224 +1750,224 @@ msgstr ""
"%s je chránený proti zápisu. Pravdepodobne toho veľa nenarobíte. \n"
"Ste si istý, že chcete pokračovať?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Pozri vnútornú nápovedu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "základná schéma (plain a latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schéma ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "úplná schéma (všetko)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schéma GUST TeXlive"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "schéma len-infraštruktúra (vôbec žiaden TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "stredná schéma (malá + viac balíkov a jazykov)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimálna schéma (len plainTeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "malá schéma (základ + xetex, metapost a niektoré jazyky)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schéma teTeX (o niečo väčšia než stredne veľká, ale ďaleko od úplnej)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Dôležité programy a súbory"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Ďalšie štýly BibTeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Pomocné programy TeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt a balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Ďalšie fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Odporúčané fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Pomocné programy pre grafiku a fonty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Ďalšie formáty"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Sadzba hier"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Balíky pre humanitné odbory"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Čínština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Čínština/japončina/kórejčina (základ)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Ruština, ukrajinčina (azbuka)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Čeština/slovenčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angličtina (US a UK)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Ďalšie európske jazyky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francúzština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Nemčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Gréčtina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Taliančina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japončina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Kórejčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ďalšie jazyky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Poľština"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugalčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Španielčina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Základné balíky LaTeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Ďalšie balíky LaTeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Odporúčané balíky LaTeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Balíky LuaTeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Matematické, prírodovedné a informatické balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Balíky MetaPostu a Metafontu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Hudobné balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafika, obrázky, diagramy"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Balíky Plain (La)TeXu"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Štýly vydavateľstiev, záverečné práce atď."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL zahŕňa len binárky pre Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Podporné programy len pre Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX a balíky"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Vitajte vo svete TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1972,7 +1976,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sl.po b/systems/texlive/tlnet/tlpkg/translations/sl.po
index 8eaac5f1fd..a6c96d9516 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sl.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2022-03-21 13:45+0100\n"
"Last-Translator: Mojca Miklavec <mojca.miklavec.lists@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -35,8 +35,8 @@ msgstr "Samo nove"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Vse"
@@ -154,7 +154,7 @@ msgid "Display configuration"
msgstr "Kriteriji za prikaz paketov"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Status"
@@ -240,12 +240,12 @@ msgid "Package name"
msgstr "Ime paketa"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Lokalna rev. (ver.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Oddaljena rev. (ver.)"
@@ -287,20 +287,20 @@ msgstr "Naredi varnostno kopijo"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Možnosti"
# Prej je bilo prevedeno v Naloge
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Akcije"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Pomoč"
@@ -325,7 +325,7 @@ msgstr "Naloži drugi repozitorij …"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Izhod"
@@ -335,7 +335,7 @@ msgstr "Splošno ..."
# Je to papir ali format papirja?
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Format papirja ..."
@@ -451,8 +451,8 @@ msgstr "Priročnik"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "O programu"
@@ -1145,7 +1145,7 @@ msgid "Not enough room"
msgstr "Ni dovolj prostora"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Jezik grafičnega vmesnika"
@@ -1155,7 +1155,7 @@ msgstr "Povečava pisave"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Trenutni:"
@@ -1165,7 +1165,7 @@ msgid "TeX Live %s Installer"
msgstr "Namestitev za TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Napredno"
@@ -1202,7 +1202,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Platforme"
@@ -1342,7 +1342,7 @@ msgstr "V teku"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
#, fuzzy
msgid "Idle"
msgstr "Brez dela"
@@ -1356,7 +1356,7 @@ msgid "Up to date"
msgstr "Posodobljeno"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
#, fuzzy
msgid "Unknown"
msgstr "Neznano"
@@ -1372,8 +1372,8 @@ msgstr ""
"Če nalaganje traja predolgo, prekini proces ali izberi drug repozitorij."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Repozitoriji"
@@ -1482,7 +1482,7 @@ msgid "platform"
msgstr "platforma"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Napaka"
@@ -1519,7 +1519,7 @@ msgid "No packages in backup directory %s"
msgstr "V mapi za varnostne kopije (%s) ni nobenega paketa"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Obnovi iz varnostnih kopij"
@@ -1606,7 +1606,11 @@ msgstr "Nekateri odvisni paketi (%s) bodo vseeno odstranjeni. Nadaljujem?"
msgid "Info"
msgstr "Info"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1614,7 +1618,7 @@ msgstr ""
"Grafični vmesnik za TeX Live Manager\n"
"Spisan v jeziku Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
#, fuzzy
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
@@ -1628,7 +1632,7 @@ msgstr ""
"enouporabniški način ali shranjevanje varnostnih kopij.\n"
"Za celotno dokumentacijo tlmgr-ja uporabite meni 'Pomoč za Tlmgr'."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1637,191 +1641,191 @@ msgstr ""
"%s ni veljaven lokalen ali oddaljen repozitorij.\n"
"Prosimo nastavite veljaven repozitorij"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Datoteka"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Naloži repozitorij"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Izhod"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Posodobi bazo imen datotek"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Posodabljam bazo imen datotek …"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Posodobi formate"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Posodabljam formate …"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Posodobi mapiranje pisav"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Posodabljam mapiranje pisav …"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
#, fuzzy
msgid "Add/replace 64-bit binaries"
msgstr "Dodaj/zamenjaj 64-bitne programe"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
#, fuzzy
msgid "Add/replace from local file"
msgstr "Dodaj/zamenjaj iz lokalne datoteke"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
#, fuzzy
msgid "Resynchronize with 32-bit"
msgstr "Ponovno sinhroniziraj z 32-bitno verzijo"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "Odstrani 64-bitne programe"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Povečava pisave za GUI"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Pomoč za TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Pomoč za Tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Ponovno zaženi"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Ponovno zaženi tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Prikaži dnevnik (log)"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Je TL Manager posodobljen?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Zadnji klic tlmgr-ja:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, fuzzy, tcl-format
msgid "Root at %s"
msgstr "Korenski imenik v %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Seznam paketov"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Nameščene"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Ni nameščen"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
#, fuzzy
msgid "Updatable"
msgstr "Na voljo posodobitev"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
#, fuzzy
msgid "Detail >> Global"
msgstr "Zelo podrobno >> manj podrobno"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Zbirke in sheme"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Samo sheme"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Išči"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Po imenu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Po imenu in opisu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Namesti izbrane"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Posodobi izbrane"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Odstrani izbrane"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Posodobil tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Posodobi vse"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Označi vse prikazane"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
#, fuzzy
msgid "Mark none"
msgstr "Odznači vse"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Prikazani so samo paketi za nameščene platforme"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Ime"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Opis"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Za več uporabnikov"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Za enega uporabnika"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, fuzzy, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1830,226 +1834,226 @@ msgstr ""
"V mapo %s nimate pravice pisati.\n"
" Ste prepričani, da želite nadaljevati?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "Poglej interno pomoč"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "Osnovna namestitev (plain TeX in LaTeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Namestitev ConTeXt-a"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "Polna namestitev"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Poljski GUST TeX Live"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "Samo infrastruktura (brez TeX-a)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "Srednje velika namestitev (majhna nam. z dodatnimi paketi in jeziki)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "Minimalna namestitev (samo plain TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"Majhna namestitev (osnovna orodja, XeTeX, metapost, podpora za nekaj jezikov)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "Shema, podobna teTeX-u (med srednje veliko in polno)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Osnovni programi in datoteke"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Dodatni slogi za BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Pomožni programi za TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt s paketi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Dodatne pisave"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Priporočene pisave"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Orodja za grafiko in pisave"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Dodatni formati"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Stavljenje iger"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Paketi za družboslovce"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabske pisave"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Kitajščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Kitajščina, japonščina, korejščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirilica"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Češčina in slovaščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angleščina & angl. priročniki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Ostali evropski jeziki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francoščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Nemščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italijanščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Korejščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ostali jeziki"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Poljščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugalščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Španščina"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Osnovni paketi za LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Dodatni paketi za LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Priporočeni paketi za LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Paketi za LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Paketi za matematiko, naravoslovje in računalništvo"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Paketi za MetaPost in MetaFont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Paketi za stavljenje glasbe"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Slike in diagrami"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
#, fuzzy
msgid "Plain (La)TeX packages"
msgstr "Paketi za plain (La)TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Slogi za založnike, dizertacije ipd."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Urejevalnik TeXworks (za Windows)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programi za MS Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX s paketi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Dobrodošli v TeX Live-u!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -2058,7 +2062,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sr.po b/systems/texlive/tlnet/tlpkg/translations/sr.po
index f286ec293f..3143e71f5a 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sr.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2019-10-23 02:13+0300\n"
"Last-Translator: Nikola Lečić <nikola.lecic@anthesphoria.net>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -38,8 +38,8 @@ msgstr "само нови"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "све"
@@ -154,7 +154,7 @@ msgid "Display configuration"
msgstr "Параметри приказа"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Статус"
@@ -232,12 +232,12 @@ msgid "Package name"
msgstr "Назив пакета"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Локална рев. (вер.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Удаљена рев. (вер.)"
@@ -277,19 +277,19 @@ msgstr "Бекап"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Подешавања"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Акције"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Помоћ"
@@ -311,7 +311,7 @@ msgstr "Учитај неки други репозиторијум ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Напусти програм"
@@ -320,7 +320,7 @@ msgid "General ..."
msgstr "Општи параметри ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Папир ..."
@@ -428,8 +428,8 @@ msgstr "Приручник"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "О програму"
@@ -1092,7 +1092,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr ""
@@ -1102,7 +1102,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Тренутни:"
@@ -1112,7 +1112,7 @@ msgid "TeX Live %s Installer"
msgstr "TeX Live %s инсталер"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Напредно"
@@ -1148,7 +1148,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Платформе"
@@ -1279,7 +1279,7 @@ msgstr "Извршавање"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Слободан"
@@ -1292,7 +1292,7 @@ msgid "Up to date"
msgstr "Свеж"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Непознато"
@@ -1307,8 +1307,8 @@ msgstr ""
"репозиторијум."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Репозиторијуми"
@@ -1409,7 +1409,7 @@ msgid "platform"
msgstr "платформа"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Грешка"
@@ -1445,7 +1445,7 @@ msgid "No packages in backup directory %s"
msgstr "У директоријуму за резервне копије %s нема пакета"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Повратити из резервне копије"
@@ -1531,7 +1531,11 @@ msgstr "У сваком случају неки повезани пакети %s
msgid "Info"
msgstr "Информације"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1539,7 +1543,7 @@ msgstr ""
"Графички интерфејс за TeX Live Manager\n"
"Написан у Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1547,7 +1551,7 @@ msgid ""
"Consult the 'Tlmgr Help' menu for full documentation on tlmgr itself."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1556,185 +1560,185 @@ msgstr ""
"%s није ни локални ни удаљено репозиторијум.\n"
"Правилно задајте репозиторјум"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Фајл"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Учитати репозиторијум"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Изаћи"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Освежити базу података са именима"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Освежавање базе података са именима"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Освежити формате"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Освежавање формата"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Освежити fontmaps"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Поновно саздавање fontmap фајлова"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Поновно покретање"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Поновно покретање tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Показати logs"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL Manager свеж?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Последња команда из tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Корен у %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Списак пакета"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Инсталирани"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Постоји надоградња"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Детаљи >> Глобално"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Колекције и шеме"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Само шеме"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Тражи"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "По имену"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "По имену и опису"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Инсталирај означене"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Надогради означене"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Обриши означене"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Надогради tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Надогради све"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Не означи ништа"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Име"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Опис"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Више корисника"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Један корисник"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1743,224 +1747,224 @@ msgstr ""
"У %s није могуће уписивање, и већи део посла ће остати неурађен.\n"
"Јесте ли сигурни да желите да продужите?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "основна шема (чист [plain] TeX и latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt шема"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "пуна шема (све)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live шема"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "инфраструктурна шема (без TeX-а)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "средња шема (мала шема + већи број пакета и боља језичка подршка)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "минимална шема (само чист [plain] TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "мала шема (основна шема + xetex, metapost, подршка за неколико језика)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX шема (више од средње шеме, али доста мање од целине)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Најважнији програми и фајлови"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Додатни стилови за BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Помоћни TeX програми"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt и повезани пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Додатни фонтови"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Препоручени фонтови"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Програми за рад са графиком и фонтовима"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Додатни формати"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Припрема докумената везаних за игре"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Пакети за рад у друштвеним наукама"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Арапски"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Кинески"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Кинески, јапански, корејски (основно)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Ћирилица"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Чешки и словачки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Амерички и британски енглески"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Остали европски језици"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Француски"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Немачки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Грчки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Италијански"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Јапански"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Корејски"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Остали језици"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Пољски"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Португалски"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Шпански"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Основни LaTeX пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Додатни LaTeX пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Препоручени LaTeX пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Математички, природнонаучни и компјутерски пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Пакети за MetaPost и Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Пакети за рад са музиком"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Пакети за рад са графиком, сликама и дијаграмима"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (чисти) (La)TeX пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Стилови за издаваштво, дисертације итд."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Едитор TeXworks (само за Windows)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Помоћни програми за Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX и повезани пакети"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Добродошли у TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1969,7 +1973,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/uk.po b/systems/texlive/tlnet/tlpkg/translations/uk.po
index 428322d23a..535f886d30 100644
--- a/systems/texlive/tlnet/tlpkg/translations/uk.po
+++ b/systems/texlive/tlnet/tlpkg/translations/uk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2010\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2019-03-23 09:02+0200\n"
"Last-Translator: Andriy Bandura <andriykopanytsia@gmail.com>\n"
"Language-Team: Ukrainian <andriykopanytsia@gmail.com>\n"
@@ -38,8 +38,8 @@ msgstr "Тільки нові"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Усі"
@@ -154,7 +154,7 @@ msgid "Display configuration"
msgstr "Налаштування відображення"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Статус"
@@ -232,12 +232,12 @@ msgid "Package name"
msgstr "Назва пакунку"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Локальна рев. (вер.)"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Мережне рев. (вер.)"
@@ -277,19 +277,19 @@ msgstr "Резервувати"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Параметри"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Дії"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Довідка"
@@ -311,7 +311,7 @@ msgstr "Завантажити інше сховище:"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Вийти"
@@ -320,7 +320,7 @@ msgid "General ..."
msgstr "Загальні…"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Папір…"
@@ -427,8 +427,8 @@ msgstr "Підручник"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Про"
@@ -1082,7 +1082,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr ""
@@ -1092,7 +1092,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Поточне:"
@@ -1102,7 +1102,7 @@ msgid "TeX Live %s Installer"
msgstr "Встановлювач TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Додатково"
@@ -1138,7 +1138,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Платформи"
@@ -1269,7 +1269,7 @@ msgstr "Виконується"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Простоює"
@@ -1282,7 +1282,7 @@ msgid "Up to date"
msgstr "Усе оновлено"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Невідомо"
@@ -1295,8 +1295,8 @@ msgid "If loading takes too long, press Abort and choose another repository."
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Сховища"
@@ -1397,7 +1397,7 @@ msgid "platform"
msgstr "платформа"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr ""
@@ -1433,7 +1433,7 @@ msgid "No packages in backup directory %s"
msgstr "Немає пакунків у каталозі %s для резервних копій"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Відновити з резервної копії"
@@ -1519,7 +1519,11 @@ msgstr "Вилучаються деякі залежності %s попри в
msgid "Info"
msgstr "Інформація"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1527,7 +1531,7 @@ msgstr ""
"Графічний інтерфейс для менеджера TeX Live\n"
"Втілений за допомогою Tcl/Tk"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1535,416 +1539,416 @@ msgid ""
"Consult the 'Tlmgr Help' menu for full documentation on tlmgr itself."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
"Please configure a valid repository"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Файл"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Вихід"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Повторно створити базу даних файлів"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Повторно створюється база даних файлів..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Повторно створити формати"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Перебудова форматів..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Повторно створити мапу шрифтів"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Перебудова файлів мапи шрифтів..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Перезапустити програму"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Перезапустити tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Показати журнали"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Менеджер TL оновлений?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Остання команда tlmgr:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Список пакунків"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Встановлено"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Наявні оновлення"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Деталі >> Глобально"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Збірки та схеми"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Тільки схеми"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Пошук"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "За назвою"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "За назвою та описом"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Встановити позначене"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Оновити позначене"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Вилучити позначене"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Оновити tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Оновити усе"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Зняти позначення"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Назва"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Опис"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
" Are you sure you want to continue?"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "основна схема (plain та latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "схема ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "повна схема (включає усе)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "схема GUST TeX Live"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "схема тільки з інфраструктурою (без TeX зовсім)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "середня схема (мала + більше пакунків та мов)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "мінімальна схема (лише plain)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "мала схема (основна + xetex, metapost, кілька мов)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "схема teTeX (більша за середню, але не дотягає до повної)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Важливі програми і файли"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Додаткові стилі BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Допоміжні програми TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt і пакунки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Додаткові шрифти"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Рекомендовані шрифти"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Утиліти для графіки та шрифтів"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Додаткові формати"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Верстка запису ігор"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Пакунки для гуманітарних наук"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Арабська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Китайська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Китайська/японська/корейська (базова)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Кирилиця"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Чеська/словацька"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Англійська США та Великобританії"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Інші європейські мови"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Французька"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Німецька"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Грецька"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Італійська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Японська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Корейська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Інші мови"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Польська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Португальська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Іспанська"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Основні пакунки LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Додаткові пакунки LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Рекомендовані пакунки LaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Пакунки LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Пакунки для математики, природничих та комп'ютерних наук"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Пакунки MetaPost та Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Музичні пакунки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Графіки, рисунки та діаграми"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Пакунки простого (La)TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Стилі для видавництв, тез конференцій і т.п."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Редактор TeXworks; TL містить програму лише для Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Додаткові програми лише під Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX та пакунки"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Ласкаво просимо до TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1953,7 +1957,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/vi.po b/systems/texlive/tlnet/tlpkg/translations/vi.po
index df49a3b923..613f27e8f5 100644
--- a/systems/texlive/tlnet/tlpkg/translations/vi.po
+++ b/systems/texlive/tlnet/tlpkg/translations/vi.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2021-03-13 11:02+0100\n"
"Last-Translator: Anh K. Huỳnh <kyanh@viettug.org>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -36,8 +36,8 @@ msgstr "Chỉ cái mới"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "Tất cả"
@@ -152,7 +152,7 @@ msgid "Display configuration"
msgstr "Cấu hình thể hiện"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "Trạng thái"
@@ -230,12 +230,12 @@ msgid "Package name"
msgstr "Tên gói"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "Phiên bản đang có"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "Phiên bản trên mạng"
@@ -275,19 +275,19 @@ msgstr "Sao lưu"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "Tùy chọn"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "Hành động"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "Giúp đỡ"
@@ -309,7 +309,7 @@ msgstr "Nạp nguồn cài đặt khác ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "Thoát"
@@ -318,7 +318,7 @@ msgid "General ..."
msgstr "Tổng quan ..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "Kiểu giấy ..."
@@ -425,8 +425,8 @@ msgstr "Tài liệu hướng dẫn"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "Giới thiệu"
@@ -1087,7 +1087,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "Ngôn ngữ giao diện đồ họa"
@@ -1097,7 +1097,7 @@ msgstr "Co dãn font chữ"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "Hiện tại:"
@@ -1107,7 +1107,7 @@ msgid "TeX Live %s Installer"
msgstr "Chương trình cài đặt TeX Live %s"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "Nâng cao"
@@ -1143,7 +1143,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "Kiến trúc"
@@ -1274,7 +1274,7 @@ msgstr "Đang chạy"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "Đang treo"
@@ -1287,7 +1287,7 @@ msgid "Up to date"
msgstr "Mới nhất"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "Không biết"
@@ -1300,8 +1300,8 @@ msgid "If loading takes too long, press Abort and choose another repository."
msgstr "Nếu việc tải quá lâu, hãy chọn bỏ (Abort) và chọn kho khác."
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "Các kho cài đặt"
@@ -1402,7 +1402,7 @@ msgid "platform"
msgstr "kiến trúc"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "Lỗi"
@@ -1438,7 +1438,7 @@ msgid "No packages in backup directory %s"
msgstr "Không có gói nào trong thư mục sao lưu %s"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "Khôi phục từ bộ sao lưu"
@@ -1524,13 +1524,17 @@ msgstr "Gói phụ thuộc bị ép phải gỡ bỏ: %s. Tiếp tục?"
msgid "Info"
msgstr "Thông tin"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
msgstr "Giao diện đồ họa viết bằng Tcl/Tk cho chương trình quản lý TeX Live"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1542,7 +1546,7 @@ msgstr ""
"trợ cài đặt riêng cho người dùng, không sao lưu hay phục hồi.\n"
"Bạn vui lòng xem tài liệu đầy đủ của tlmgr bằng Menu \"Trợ giúp về Tlmgr'."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1551,185 +1555,185 @@ msgstr ""
"%s không phải kho dưới máy hay trên mạng.\n"
"Vui lòng chọn kho phù hợp"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "Tập tin"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "Nạp kho"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "Thoát"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "Phát sinh lại dữ liệu tập tin"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "Đang phát sinh lại dữ liệu tập tin..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "Phát sinh các định dạng"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "Đang phát sinh lại các định dạng..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "Phát sinh lại ánh xạ font"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "Đang phát sinh lại các ánh xạ font..."
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "Co dãn font chữ giao diện đồ họa"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "Trợ giúp về TLShell"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Trợ giúp về Tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "Tự khởi động lại"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "Khởi động lại tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "Hiển thị nội dung xuất ra từ chương trình"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "Liệu chương trình quản lý TeX Live đã mới nhất?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "Lệnh tlmgr cuối cùng:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "Gốc ở %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "Danh sách gói"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "Đã cài đặt"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "Không được cài"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "Có thể cập nhật"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr "Chi tiết >> Toàn cục"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "Nhóm và kiểu cài đặt"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "Chỉ các kiểu mẫu"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "Tìm kiếm"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "Theo tên"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "Theo tên và mô tả"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "Cài đặt phần đã chọn"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "Cập nhật phần đã chọn"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "Gỡ bỏ phần đã chọn"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "Cập nhật tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "Cập nhật tất cả"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "Đánh dấu chọn tất cả gói được hiển thị"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "Bỏ chọn tất cả"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "Chỉ hiện ra các gói của hệ thống (platform) đã cài"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "Tên"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "Mô tả"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "Nhiều người dùng"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "Một người dùng"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1738,224 +1742,224 @@ msgstr ""
"Không ghi vào %s được. Khó có thể làm thêm được gì.\n"
"Bạn thật sự muốn tiếp tục?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "bộ cài cơ bản (plain và latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Nhóm ConTeXt"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "bộ cài đầy đủ mọi thứ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Bộ cài TeX Live GUST"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "cài đặt kiến trúc chung (không có gì liên quan TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "bộ cài vừa (nhỏ + thêm các ngôn ngữ và gói bổ sung)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "nhóm tối thiểu (chỉ có \"plain TeX\")"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "bộ cài nhỏ (cơ bản, xtex, metapost, vài ngôn ngữ)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "nhóm teTeX (nhiều gói hơn nhóm trung bình, nhưng chưa phải là đầy đủ)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Các thứ bắt buộc"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Kiểu bổ sung cho BibTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Các chương trình hỗ trợ cho TeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt và các gói của nó"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Các font bổ sung"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Phông chữ nên dùng"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Tiện ích đồ họa và phông chữ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Các định dạng bổ sung"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Sắp chữ trong các trò chơi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Gói cho khoa học nhân văn"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Tiếng Ả rập"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Tiếng Trung"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Tiếng Trung/Nhật/Hàn (phần cơ sở)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Kiểu chữ Kirin"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Czech/Slovka"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Tiếng Anh (US, UK)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Các ngôn ngữ châu Âu khác"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Tiếng Pháp"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Tiếng Đức"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Hy Lạp"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Tiếng Ý"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Tiếng Nhật"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Tiếng Hàn"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ngôn ngữ khác"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Tiếng Ba Lan"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Tiếng Thổ Nhĩ Kỳ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Tiếng Bồ Đào Nha"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Các gói LaTeX cốt lõi"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Các gói LaTeX bổ sung"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Gói LaTeX nên dùng"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Gói cho LuaTeX"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Toán, khoa học tự nhiên, khoa học máy tính"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPOST, Metafont"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Gói âm nhạc"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Đồ họa, hình ảnh, sơ đồ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Các gói (La)TeX nguyên sơ"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PStricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Kiểu luận văn hay của một số nhà xuất bản,..."
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Chương trình soạn thảo TeXworks (chỉ có cho Windows)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Các chương trình chỉ cho Windows"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX và các gói của nó"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "Chào mừng đến với TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1964,7 +1968,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/zh_CN.po b/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
index 4660ca2d44..1ede71214d 100644
--- a/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
+++ b/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2009-09-22 12:54+0800\n"
"Last-Translator: Jiang Jiang <gzjjgod@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -32,8 +32,8 @@ msgstr "只有新的"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "全部的"
@@ -142,7 +142,7 @@ msgid "Display configuration"
msgstr "显示配置"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "状态"
@@ -221,12 +221,12 @@ msgid "Package name"
msgstr "软件包名称"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "本地版本"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "远程版本"
@@ -266,19 +266,19 @@ msgstr "备份"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "选项"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "操作"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "帮助"
@@ -300,7 +300,7 @@ msgstr "载入其他仓库"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "退出"
@@ -309,7 +309,7 @@ msgid "General ..."
msgstr "通用..."
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "纸张..."
@@ -417,8 +417,8 @@ msgstr "手册"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "关于"
@@ -1055,7 +1055,7 @@ msgid "Not enough room"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr ""
@@ -1065,7 +1065,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr ""
@@ -1075,7 +1075,7 @@ msgid "TeX Live %s Installer"
msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr ""
@@ -1108,7 +1108,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr ""
@@ -1253,7 +1253,7 @@ msgid "Up to date"
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr ""
@@ -1266,8 +1266,8 @@ msgid "If loading takes too long, press Abort and choose another repository."
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr ""
@@ -1368,7 +1368,7 @@ msgid "platform"
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr ""
@@ -1404,7 +1404,7 @@ msgid "No packages in backup directory %s"
msgstr ""
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr ""
@@ -1481,13 +1481,17 @@ msgstr ""
msgid "Info"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1495,416 +1499,416 @@ msgid ""
"Consult the 'Tlmgr Help' menu for full documentation on tlmgr itself."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
"Please configure a valid repository"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "搜索"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "更新全部"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
" Are you sure you want to continue?"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "欢迎进入 TeX Live 的世界!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1913,7 +1917,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/zh_TW.po b/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
index 5c478a984b..5ea77e84e4 100644
--- a/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
+++ b/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2024-02-11 03:27+0100\n"
+"POT-Creation-Date: 2024-03-06 01:44+0100\n"
"PO-Revision-Date: 2023-03-02 16:26+0800\n"
"Last-Translator: Kung-chih Jen <kaitul@outlook.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -33,8 +33,8 @@ msgstr "僅限新的"
#: tlpkg/installer/install-tl-gui.tcl:1050
#: tlpkg/installer/install-tl-gui.tcl:1698
#: texmf-dist/scripts/tlshell/tlshell.tcl:1653
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2877
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2895
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2880
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2898
msgid "All"
msgstr "所有"
@@ -148,7 +148,7 @@ msgid "Display configuration"
msgstr "顯示組態"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:315
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2869
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
msgid "Status"
msgstr "狀態"
@@ -226,12 +226,12 @@ msgid "Package name"
msgstr "套件名稱"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2964
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2967
msgid "Local rev. (ver.)"
msgstr "本機版本"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:412
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2965
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2968
msgid "Remote rev. (ver.)"
msgstr "遠端版本"
@@ -271,19 +271,19 @@ msgstr "備份"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:507
#: tlpkg/installer/install-tl-gui.tcl:1621
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2688
msgid "Options"
msgstr "選項"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:509
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2675
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
msgid "Actions"
msgstr "動作"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:513
#: texmf-dist/scripts/texlive/tlmgrgui.pl:2688
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2772
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
msgid "Help"
msgstr "說明"
@@ -305,7 +305,7 @@ msgstr "載入其他存放庫…"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:538
#: tlpkg/installer/install-tl-gui.tcl:1406
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2793
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2796
msgid "Quit"
msgstr "退出"
@@ -314,7 +314,7 @@ msgid "General ..."
msgstr "一般…"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:546
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2697
msgid "Paper ..."
msgstr "紙張…"
@@ -421,8 +421,8 @@ msgstr "手冊"
#: texmf-dist/scripts/texlive/tlmgrgui.pl:644
#: texmf-dist/scripts/texlive/tlmgrgui.pl:646
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2717
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2774
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2720
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2777
msgid "About"
msgstr "關於"
@@ -1077,7 +1077,7 @@ msgid "Not enough room"
msgstr "空間不足"
#: tlpkg/installer/install-tl-gui.tcl:1356
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2735
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2738
msgid "GUI language"
msgstr "GUI 語言"
@@ -1087,7 +1087,7 @@ msgstr "字型縮放"
#: tlpkg/installer/install-tl-gui.tcl:1370
#: texmf-dist/scripts/tlshell/tlshell.tcl:1327
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2753
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2756
msgid "Current:"
msgstr "目前:"
@@ -1097,7 +1097,7 @@ msgid "TeX Live %s Installer"
msgstr "TeX Live %s 安裝程式"
#: tlpkg/installer/install-tl-gui.tcl:1411
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2702
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2705
msgid "Advanced"
msgstr "進階"
@@ -1133,7 +1133,7 @@ msgstr ""
#: tlpkg/installer/install-tl-gui.tcl:1542
#: texmf-dist/scripts/tlshell/tlshell.tcl:1473
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2709
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2712
msgid "Platforms"
msgstr "平台"
@@ -1264,7 +1264,7 @@ msgstr "正在執行"
#: texmf-dist/scripts/tlshell/tlshell.tcl:387
#: texmf-dist/scripts/tlshell/tlshell.tcl:548
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3018
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3021
msgid "Idle"
msgstr "閒置"
@@ -1277,7 +1277,7 @@ msgid "Up to date"
msgstr "已是最新"
#: texmf-dist/scripts/tlshell/tlshell.tcl:658
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2823
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
msgid "Unknown"
msgstr "不明"
@@ -1290,8 +1290,8 @@ msgid "If loading takes too long, press Abort and choose another repository."
msgstr "若載入消耗太多時間,請按下「中止」或選擇其他存放庫。"
#: texmf-dist/scripts/tlshell/tlshell.tcl:880
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2329
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2691
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2332
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2694
msgid "Repositories"
msgstr "存放庫"
@@ -1392,7 +1392,7 @@ msgid "platform"
msgstr "平台"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1624
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2333
msgid "Error"
msgstr "錯誤"
@@ -1428,7 +1428,7 @@ msgid "No packages in backup directory %s"
msgstr "備份目錄 %s 中沒有套件"
#: texmf-dist/scripts/tlshell/tlshell.tcl:1809
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2936
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2939
msgid "Restore from backup"
msgstr "從備份還原"
@@ -1514,7 +1514,11 @@ msgstr "無論如何都要移除一些相依性 %s。要繼續嗎?"
msgid "Info"
msgstr "資訊"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2287
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2218
+msgid "Reporting bugs"
+msgstr ""
+
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2290
msgid ""
"GUI interface for TeX Live Manager\n"
"Implemented in Tcl/Tk"
@@ -1522,7 +1526,7 @@ msgstr ""
"TeX Live 管理員的 GUI 界面\n"
"已在 Tcl/Tk 中實作"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2293
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2296
msgid ""
"This TeX Live Manager front-end should be pretty self-explanatory.\n"
"Note that it does not cover the full functionality of tlmgr. Notably, it "
@@ -1534,7 +1538,7 @@ msgstr ""
"還原。\n"
"有關 tlmgr 本身的完整文件,請參閱「Tlmgr 說明」選單。"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2327
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2330
#, tcl-format
msgid ""
"%s is not a local or remote repository.\n"
@@ -1543,185 +1547,185 @@ msgstr ""
"%s 不是本機或遠端存放庫。\n"
"請設定有效的存放庫"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2647
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2669
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2650
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2672
msgid "File"
msgstr "檔案"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2671
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2674
msgid "Load repository"
msgstr "載入存放庫"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2673
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2676
msgid "Exit"
msgstr "離開"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2677
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
msgid "Regenerate filename database"
msgstr "重新產生檔案名稱資料庫"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2678
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
msgid "Regenerating filename database..."
msgstr "正在重新產生檔案名稱資料庫…"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2679
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
msgid "Regenerate formats"
msgstr "重新產生格式"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2680
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2683
msgid "Rebuilding formats..."
msgstr "正在重新建置格式…"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2681
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2684
msgid "Regenerate fontmaps"
msgstr "重新產生字型對應"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2682
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2685
msgid "Rebuilding fontmap files..."
msgstr "正在重新建置字型對應檔案…"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2719
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
msgid "Add/replace 64-bit binaries"
msgstr "新增/取代 64 位元二進位檔案"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2722
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2725
msgid "Add/replace from local file"
msgstr "從本機檔案新增/取代"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2726
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2729
msgid "Resynchronize with 32-bit"
msgstr "重新同步處理 32 位元"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2730
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2733
msgid "Remove 64-bit binaries"
msgstr "移除 64 位元二進位檔案"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2749
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2752
msgid "GUI font scaling"
msgstr "GUI 字型縮放"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2775
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2778
msgid "TLShell Help"
msgstr "TLShell 說明"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2776
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2779
msgid "Tlmgr Help"
msgstr "Tlmgr 說明"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2795
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2798
msgid "Restart self"
msgstr "自我重啟"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2797
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
msgid "Restart tlmgr"
msgstr "重啟 tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2800
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2803
msgid "Show logs"
msgstr "顯示記錄"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2821
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2824
msgid "TL Manager up to date?"
msgstr "TL 管理員已是最新?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2826
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2829
msgid "Last tlmgr command:"
msgstr "最新 tlmgr 命令:"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2839
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2842
#, tcl-format
msgid "Root at %s"
msgstr "根位於 %s"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2852
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2855
msgid "Package list"
msgstr "套件清單"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2870
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2873
msgid "Installed"
msgstr "已安裝"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2872
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2875
msgid "Not installed"
msgstr "未安裝"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2882
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2885
msgid "Updatable"
msgstr "可更新"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2894
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
msgid "Detail >> Global"
msgstr ""
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2897
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2900
msgid "Collections and schemes"
msgstr "收藏和配置"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2899
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2902
msgid "Only schemes"
msgstr "僅配置"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2907
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
msgid "Search"
msgstr "搜尋"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2910
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2913
msgid "By name"
msgstr "依名稱"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2912
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2915
msgid "By name and description"
msgstr "依名稱和描述"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2926
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
msgid "Install marked"
msgstr "安裝已標示項目"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2929
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
msgid "Update marked"
msgstr "更新已標示項目"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2932
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2935
msgid "Remove marked"
msgstr "移除已標示項目"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2940
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2943
msgid "Update tlmgr"
msgstr "更新 tlmgr"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2942
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2945
msgid "Update all"
msgstr "全部更新"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2948
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2951
msgid "Mark all displayed"
msgstr "標示所有已顯示項目"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2950
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
msgid "Mark none"
msgstr "全部取消標示"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2953
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2956
msgid "Only packages for installed platforms are displayed"
msgstr "僅有已安裝平台的套件才會顯示"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2963
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
msgid "Name"
msgstr "名稱"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:2966
+#: texmf-dist/scripts/tlshell/tlshell.tcl:2969
msgid "Description"
msgstr "描述"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Multi-user"
msgstr "多重使用者"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3001
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3004
msgid "Single-user"
msgstr "單一使用者"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3086
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3089
#, tcl-format
msgid ""
"%s is not writable. You can probably not do much.\n"
@@ -1730,224 +1734,224 @@ msgstr ""
"%s 無法寫入。你可能做不了太多。\n"
" 您確定你要繼續嗎?"
-#: texmf-dist/scripts/tlshell/tlshell.tcl:3098
+#: texmf-dist/scripts/tlshell/tlshell.tcl:3101
msgid "See internal help"
msgstr "查看內部說明"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:1
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:1
msgid "basic scheme (plain and latex)"
msgstr "基本配置 (純文字和 latex)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr "書籍出版配置 (核心 LaTeX 和附加元件)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt 配置"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "完整配置 (所有項目)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live 配置"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "僅基礎結構配置 (全無 TeX)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "中等配置 (小 + 更多套件和語言)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "最小配置 (僅純文字)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "小型配置 (基本 + xetex,metapost,少數語言)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX 配置 (多於中等,但不完整)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "基本程式和檔案"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "BibTeX 額外樣式"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX 輔助程式"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt 和套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "額外字型"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "建議字型"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "圖形和字型公用程式"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "額外格式"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "遊戲排版"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "人文套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "阿拉伯文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "中文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "中文/日文/韓文 (基本)"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "斯拉夫文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "捷克文/斯洛伐克文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "美式英文/英式英文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "其他歐洲語言"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "法文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "德文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "希臘文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "義大利文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "日文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "韓文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "其他語言"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "波蘭文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "葡萄牙文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "西班牙文"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX 基本套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "LaTeX 額外套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX 建議套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX 套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "數學,自然科學,電腦科學套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPost 和 Metafont 套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "音樂套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "圖形,圖片,圖表"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "純文字 (La)TeX 套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "出版社樣式,論文等。"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks 編輯器;TL 僅包含 Windows 二進位"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "僅 Windows 支援程式"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:51
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX 和套件"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2866
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2866
msgid "Welcome to TeX Live!"
msgstr "歡迎使用 TeX Live!"
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2867
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2867
#, perl-format
msgid "See %s/index.html for links to documentation.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2869
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2869
msgid ""
"The TeX Live web site (https://tug.org/texlive/) provides all updates\n"
"and corrections. TeX Live is a joint project of the TeX user groups\n"
@@ -1956,7 +1960,7 @@ msgid ""
"at https://tug.org/usergroups.html.\n"
msgstr ""
-#: /home/texlive/branch/Master/tlpkg/translations/shortdesc.pl:2877
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2877
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"